Poslední příspěvky

Stran: [1] 2 3 ... 10
1
Sítě / Re:Optický kabel - obecný souhlas
« Poslední příspěvek od Martin Poljak kdy Dnes v 12:12:02 »
Taková domluva, že k hraně pozemku, dál si to udělám sám, to se dá domluvit s menším subjektem okresního/krajského formátu...

Jaká domluva? To je snad na mě, kde mi přípojku ukončí, ne? Pokud jde o mojí nemovitost. Vždyť to je jako by mi řekli, že mě připojí jen za předpokladu, že budu mít přípojku v betonovém sloupku uprostřed obývacího pokoje...
2
Sítě / Re:Optický kabel - obecný souhlas
« Poslední příspěvek od M_D kdy Dnes v 11:37:23 »
vybihal: A co je v tom souhlasu napsáno? Pokud se odvolává na ZoEK 27/2005 Sb., §104, 2a, tak je to souhlas s ukončením veřejné sítě a koncového bodu uvnitř v baráku. Takový souhlas zákon přípouští. Na základě toho papíru ti nemohou na barák postavit vysílač. K tomu pozřebují trochu jiný papír.
Pokud nebudeš souhlasit, tak tvůj barák vynechají a budeš mít problém ho nechat připojit později. Buď tě pošlou k šípku, že tam síť nevede nebo to budou chtít zaplatit v šestimístné častce. Pokud takových bude v ulici víc, tak vynechají celou ulici...

Jinak, legislativně, můžou to tam dát i přes tvůj nesouhlas, mají k tomu oprávnění v zákonu přes provedení vyvlastnění. Klid, to na rodinném baráku nikdo dělat nebude. To je tak na panelák o sto bytech, kde zmantená většina důchodců v SVJ bude klást odpor...
Taková domluva, že k hraně pozemku, dál si to udělám sám, to se dá domluvit s menším subjektem okresního/krajského formátu...

neregistrovany: Důvod služebnosti/věcného břemene u novostaveb bytových domů pro vnitřní rozvody plyne z novějších technických požadavků na výstavbu (zákon o elektronickcý komunikacích ho nepožaduje, tomu stačí ten souhlas výše), protože bez něj vnitřní telko rozvod se stává automaticky majetkem toho SVJ/domu. Proto se ještě před jeho realizací píše ta smlouva o vyloučení z majetku/služebnost, aby to zůstalo v majetku daného ISP. Tímto zůstane ten rozvod navždy v majetku oeprátora místo SVJ. Zákon u urychlení výstavby sítí toto řeší a takový koncový rozvod za určitých podmínek jiní ISP použít mohou ze zákona, je tam povinnost umožnit sdílet infrastrukturu mezi operátory (proti tomu, kdyby ten vnitřní rozvod patřil SVJ a to nesouhlasilo, tak jiný ISP jej použít nesmí, takové oprávnění může použít jen proti jinému ISP).
3
Vývoj / Re:Skript pro míchání zvuků a mikrofonu v Audacity
« Poslední příspěvek od exkalibr kdy Dnes v 11:16:49 »
Dodal jsem to GPT po krokách:
$ pactl list short sources
133   alsa_output.pci-0000_00_1b.0.pro-output-0.monitor   PipeWire   s32le 2 ch 48000 Hz   SUSPENDED
134   alsa_output.pci-0000_00_1b.0.pro-output-3.monitor   PipeWire   s32le 8 ch 48000 Hz   SUSPENDED
135   alsa_input.pci-0000_00_1b.0.pro-input-0   PipeWire   s32le 2 ch 48000 Hz   RUNNING
user@Toshi:~/Bash$ pactl list short sinks
133   alsa_output.pci-0000_00_1b.0.pro-output-0   PipeWire   s32le 2 ch 48000 Hz   SUSPENDED
134   alsa_output.pci-0000_00_1b.0.pro-output-3   PipeWire   s32le 8 ch 48000 Hz   SUSPENDED

plus případné chybové hlášky.

Když se to spustí:
$ ./pulse-zeslab.sh
Fyzický výstup (selected): alsa_output.pci-0000_00_1b.0.pro-output-0
Mikrofon (selected): alsa_input.pci-0000_00_1b.0.pro-input-0
alsa_output.pci-0000_00_1b.0.pro-output-0.monitor
Odstraňuji předchozí modul-loopback / MixSink / MixSource (pokud existují)...
Null-sink MixSink existuje (nebudu znovu vytvářet).
MixSink index: <unknown>
Vytvářím loopback: alsa_input.pci-0000_00_1b.0.pro-input-0
alsa_output.pci-0000_00_1b.0.pro-output-0.monitor -> MixSink ...
Record loop module id: 536870913
Spuštěn temporary parec pid=2150404
Poznámka: record sink-input zatím nevznikl (Audacity při spuštění nahrávání ho probudí).
Vytvářím monitor loopback: alsa_input.pci-0000_00_1b.0.pro-input-0
alsa_output.pci-0000_00_1b.0.pro-output-0.monitor -> alsa_output.pci-0000_00_1b.0.pro-output-0 (attenuated monitoring)...
Monitor loop module id: 536870914
Poznámka: monitor sink-input nevznikl — probuď mic nahráváním v Audacity a pak spusť 'pactl list short sink-inputs' pro nastavení.
Virtual source MixSource již existuje.
Virtual source index: <unknown>

HOTOVO: Audacity vyber zdroj 'MixSource' (Mix of system apps + mic at full volume).
Pro zahrnutí VLC do záznamu: přesuň jeho sink-input do MixSink nebo duplikuj fyzický monitor do MixSink.


V Pavucntrol nahrávání vidím že tam vznikly dva loopbacky pro vstup.
Na vstupní kartě vidím Build in Audio pro jak kdyby tam běžel nějaký šum nebo co. Mám sice zapojený mic ale tento indikátor "Ticho" nereaguje pokud mluvím, takže asi šum - ale toto tam vlastně vidím defaultně i po restartu pulse.

Ale nejde to audacity spustit nebo to krachuje, musím opravit zvuk, vše vrátit jinak audacity ani nespustím.
4
Sítě / Re:Optický kabel - obecný souhlas
« Poslední příspěvek od neregistrovany kdy Dnes v 11:06:22 »
V novostavbách si operátoři nezřídka na optiku zapisuje věcné břemeno až do bytu (kam nic jiného nevede), byt se kupuje už s tímto břemenem ve smlouvě. Cílem je, aby si časem další opetátor nemohl dotáhnout do sklepa svou optiku a přepojovat na ní barákové přípojky. Takhle je ten kabel až do vašeho bytu NAVŽDY majetkem operátora.
5
Desktop / Re:Doporučte vysouvací konzoli à la Yakuake
« Poslední příspěvek od kopevi2 kdy Dnes v 10:44:28 »
Děkuji za tipy, dal jsem si ten fish shell a je super a zjistil jsem zkratku ctrl+R , která splňuje požadavek na výběr použitých příkazů, i to fzf se bude hodit...
6
Vývoj / Re:Skript pro míchání zvuků a mikrofonu v Audacity
« Poslední příspěvek od redustin kdy Dnes v 10:24:29 »
Nelze očekávat, že AI dá na první dobrou skript, který složitě parsuje textové výstupy nějakých utilitek. Např. tohle peklo:

pactl list short modules | awk -v n1="$NULL_SINK_NAME" -v n2="$VIRTUAL_SRC_NAME" '$0 ~ n1 || $0 ~ n2 {print $1}' \
  | xargs -r -n1 -I{} pactl unload-module {} >/dev/null 2>&1 || true

Opravdu myslíš, že tu budou lidi ručně kontrolovat, zda je taková pipeline vygenerovaná správně?

Pokud to po AI chceš, pak jí musíš dodat kvalitní podklady, ze kterých může vycházet se svými znalostmi. Minimálně konkrétní texty výstupů těch volání pactl. Samozřejmě záleží na LLM modelu, zda to vůbec umí.

Rovněž bych po AI chtěl, aby napsala skript tak, aby když přidáš parametr bashe -x a nakopíruješ do ní výsledný debug výstup skriptu, aby z toho dokázala po  sobě zkontrolovat správnou funkci, příp. najít chybu.

Věřím, že dobrý LLM model s dobrým vedením takový skript napíše bez problémů, ale musí se držet pod kontrolou a musí mít k dispozici vhodné vstupní podklady.

A nebo po AI chtěj jen jednotlivé bloky/klíčové řádky a skládej si to do skriptu sám, samozřejmě po ručním otestování každého bloku.
7
Vývoj / Skript pro míchání zvuků a mikrofonu v Audacity
« Poslední příspěvek od exkalibr kdy Dnes v 09:50:46 »
Dobrý den,
snažil jsem se včera, a dnes ráno rozjet skript, protože chci v audacity zaznamenat svůj rozhovor s GPT. Ale marně, nepodařilo se mi to. Včera se mi akorád povedlo slyšet svůj hlas ve sluchátkách a donutit GPT, aby dal příkaz jak to zeslabit na cca 42%. Nahrával se zvuk z přehrávané písničky ve vlc ale písničku jsem neslyšel během toho aktuálního přehrávání přes vlc. Myslím nefungovaly nahlas ty systémové zvuky abych to slyšel ve sluchátkách. A můj hlas se nepovedlo nahrát.

Mám Mint 21.3 xFce.
 
Skript co jsem od něho dostal:
Kód: [Vybrat]
#!/usr/bin/env bash
set -euo pipefail

# ====== CONFIG ======
MIC_PATTERN='input'              # pattern (lowercase) který hledá v 2. sloupci sources
NULL_SINK_NAME='MixSink'         # null-sink pro nahrávání (mix)
VIRTUAL_SRC_NAME='MixSource'     # virtuální zdroj pro Audacity (monitor null-sinku)
MONITOR_ATTEN='42%'              # poslechová hlasitost mikrofonu pro sluchátka
ACTIVATE_TRIES=60                # kolikrát čekat na vznik sink-input (0.1s krok)
SLEEP_STEP=0.1

# ====== helper ======
cmd_exists() { command -v "$1" >/dev/null 2>&1; }

# ====== najdi fyzický sink (prefer RUNNING, jinak první) ======
DEFAULT_SINK=$(pactl list short sinks \
  | sed -E 's/[[:space:]]+/ /g' \
  | awk '{
      if($4=="RUNNING" && !found){ print $2; found=1; next }
      if(!first) first=$2
    }
    END{ if(!found) print first }' \
  || true)

if [ -z "$DEFAULT_SINK" ]; then
  echo "Nelze zjistit fyzický sink." >&2
  exit 1
fi

# ====== najdi mikrofon (preferuj sources, 2. sloupec obsahuje 'input') ======
MIC_SRC=$(pactl list short sources \
  | sed -E 's/[[:space:]]+/ /g' \
  | awk -v pat="$MIC_PATTERN" 'BEGIN{lc_pat=tolower(pat)}
      {
        s=tolower($2)
        if(s ~ lc_pat){ print $2; exit }
        if(!first) first=$2
      }
      END{ if(NR>0 && !found) print first }' \
  || true)

if [ -z "$MIC_SRC" ]; then
  echo "Nenalezen source mikrofonu (pattern: $MIC_PATTERN)." >&2
  exit 1
fi

echo "Fyzický výstup (selected): $DEFAULT_SINK"
echo "Mikrofon (selected): $MIC_SRC"

# ====== cleanup předchozích modulů vztahujících se k našim jménům / mic ======
echo "Odstraňuji předchozí modul-loopback / MixSink / MixSource (pokud existují)..."
pactl list short modules | while read -r id name rest; do
  if [ "$name" = "module-loopback" ] && echo "$rest" | grep -q -F "$MIC_SRC"; then
    echo "  unload-module $id (loopback referející mic)"
    pactl unload-module "$id" || true
  elif echo "$rest" | grep -q -F "$NULL_SINK_NAME"; then
    echo "  unload-module $id (referuje $NULL_SINK_NAME)"
    pactl unload-module "$id" || true
  elif echo "$rest" | grep -q -F "$VIRTUAL_SRC_NAME"; then
    echo "  unload-module $id (referuje $VIRTUAL_SRC_NAME)"
    pactl unload-module "$id" || true
  fi
done

# také pro jistotu odpojit moduly přes přesný řetězec jména
pactl list short modules | awk -v n1="$NULL_SINK_NAME" -v n2="$VIRTUAL_SRC_NAME" '$0 ~ n1 || $0 ~ n2 {print $1}' \
  | xargs -r -n1 -I{} pactl unload-module {} >/dev/null 2>&1 || true

# ====== vytvoř null-sink MixSink pokud neexistuje ======
if pactl list short sinks | sed -E 's/[[:space:]]+/ /g' | awk -v n="$NULL_SINK_NAME" '$2==n{print; exit}' >/dev/null 2>&1; then
  echo "Null-sink $NULL_SINK_NAME existuje (nebudu znovu vytvářet)."
else
  echo "Vytvářím null-sink $NULL_SINK_NAME..."
  pactl load-module module-null-sink sink_name="$NULL_SINK_NAME" sink_properties=device.description="$NULL_SINK_NAME"
fi

NULL_SINK_IDX=$(pactl list short sinks | sed -E 's/[[:space:]]+/ /g' | awk -v n="$NULL_SINK_NAME" '$2==n{print $1; exit}' || true)
echo "MixSink index: ${NULL_SINK_IDX:-<unknown>}"

# ====== vytvoř loopback mikrofon -> MixSink (pro nahrávání Audacity) ======
echo "Vytvářím loopback: $MIC_SRC -> $NULL_SINK_NAME ..."
RECORD_LOOP_MOD=$(pactl load-module module-loopback source="$MIC_SRC" sink="$NULL_SINK_NAME" latency_msec=1 || true)
if [ -z "$RECORD_LOOP_MOD" ]; then
  echo "Chyba: nelze vytvořit record-loop." >&2
  exit 1
fi
echo "Record loop module id: $RECORD_LOOP_MOD"

# ====== probuď mic dočasným čtením (pokud dostupné) ======
ACT_PID=""
if cmd_exists parec; then
  parec -d "$MIC_SRC" >/dev/null 2>&1 &
  ACT_PID=$!
  echo "Spuštěn temporary parec pid=$ACT_PID"
elif cmd_exists pw-cat; then
  pw-cat -d "$MIC_SRC" >/dev/null 2>&1 &
  ACT_PID=$!
  echo "Spuštěn temporary pw-cat pid=$ACT_PID"
else
  echo "parec/pw-cat nenalezeny — pokud bude MIC SUSPENDED, nahrávání ho probudí."
fi

# ====== počkej na sink-input pro record loop (nezbytné pro případné nastavení) ======
REC_SINK_INPUT=""
for i in $(seq 1 $ACTIVATE_TRIES); do
  REC_SINK_INPUT=$(pactl list short sink-inputs | sed -E 's/[[:space:]]+/ /g' | awk -v m="$RECORD_LOOP_MOD" '$3==m{print $1; exit}' || true)
  if [ -n "$REC_SINK_INPUT" ]; then break; fi
  sleep "$SLEEP_STEP"
done

if [ -n "$REC_SINK_INPUT" ]; then
  echo "Record sink-input id: $REC_SINK_INPUT"
else
  echo "Poznámka: record sink-input zatím nevznikl (Audacity při spuštění nahrávání ho probudí)."
fi

# ====== vytvoř monitorovací loopback: mic -> fyzický sink (pro poslech), a ztlum jej ======
echo "Vytvářím monitor loopback: $MIC_SRC -> $DEFAULT_SINK (attenuated monitoring)..."
MON_LOOP_MOD=$(pactl load-module module-loopback source="$MIC_SRC" sink="$DEFAULT_SINK" latency_msec=1 || true)
if [ -n "$MON_LOOP_MOD" ]; then
  echo "Monitor loop module id: $MON_LOOP_MOD"
  MON_SINK_INPUT=""
  for i in $(seq 1 $ACTIVATE_TRIES); do
    MON_SINK_INPUT=$(pactl list short sink-inputs | sed -E 's/[[:space:]]+/ /g' | awk -v m="$MON_LOOP_MOD" '$3==m{print $1; exit}' || true)
    if [ -n "$MON_SINK_INPUT" ]; then
      pactl set-sink-input-volume "$MON_SINK_INPUT" "$MONITOR_ATTEN"
      echo "Monitor sink-input $MON_SINK_INPUT nastavena na $MONITOR_ATTEN"
      break
    fi
    sleep "$SLEEP_STEP"
  done
  if [ -z "$MON_SINK_INPUT" ]; then
    echo "Poznámka: monitor sink-input nevznikl — probuď mic nahráváním v Audacity a pak spusť 'pactl list short sink-inputs' pro nastavení."
  fi
else
  echo "Nepodařilo se vytvořit monitor loopback." >&2
fi

# ====== vytvoř virtuální zdroj (monitor MixSink) pro Audacity ======
if pactl list short sources | sed -E 's/[[:space:]]+/ /g' | awk -v n="$VIRTUAL_SRC_NAME" '$2==n{print $2; exit}'; then
  echo "Virtual source $VIRTUAL_SRC_NAME již existuje."
else
  echo "Vytvářím virtual source $VIRTUAL_SRC_NAME z $NULL_SINK_NAME.monitor..."
  pactl load-module module-virtual-source source_name="$VIRTUAL_SRC_NAME" source_properties=device.description="$VIRTUAL_SRC_NAME" master="$NULL_SINK_NAME.monitor"
fi

VIRT_SRC_IDX=$(pactl list short sources | sed -E 's/[[:space:]]+/ /g' | awk -v n="$VIRTUAL_SRC_NAME" '$2==n{print $1; exit}' || true)
echo "Virtual source index: ${VIRT_SRC_IDX:-<unknown>}"

# ====== cleanup activator ======
if [ -n "${ACT_PID:-}" ]; then
  sleep 0.1
  kill "$ACT_PID" >/dev/null 2>&1 || true
fi

echo
echo "HOTOVO: Audacity vyber zdroj '$VIRTUAL_SRC_NAME' (Mix of system apps + mic at full volume)."
echo "Pro zahrnutí VLC do záznamu: přesuň jeho sink-input do $NULL_SINK_NAME nebo duplikuj fyzický monitor do MixSink."

Skript pro unload
Kód: [Vybrat]
#!/usr/bin/env bash
set -euo pipefail

# ===== Nastavení =====
VIRTUAL_SRC_NAME='MixSource'   # virtuální zdroj pro Audacity
NULL_SINK_NAME='MixSink'       # null-sink pro smíchání zvuků

# ===== Odpojit všechny loopback moduly =====
echo "Odpojuji všechny loopbacky..."
while IFS= read -r id; do
    if pactl unload-module "$id"; then
        echo "Odpojen loopback modul $id"
    else
        echo "Chyba při odpojování loopback modulu $id" >&2
    fi
done < <(pactl list short modules | awk '/module-loopback/ {print $1}')

# ===== Odstranit virtuální zdroj =====
if pactl list short sources | awk '{print $2}' | grep -Fxq "$VIRTUAL_SRC_NAME"; then
    echo "Odstraňuji virtuální zdroj '$VIRTUAL_SRC_NAME'..."
    MODULE_ID=$(pactl list short modules | awk -v src="$VIRTUAL_SRC_NAME" '$0 ~ src {print $1; exit}')
    if [ -n "$MODULE_ID" ]; then
        pactl unload-module "$MODULE_ID" && echo "Odpojen virtuální zdroj '$VIRTUAL_SRC_NAME'"
    fi
fi

# ===== Odstranit null-sink =====
if pactl list short sinks | awk '{print $2}' | grep -Fxq "$NULL_SINK_NAME"; then
    echo "Odstraňuji null-sink '$NULL_SINK_NAME'..."
    MODULE_ID=$(pactl list short modules | awk -v sink="$NULL_SINK_NAME" '$0 ~ sink {print $1; exit}')
    if [ -n "$MODULE_ID" ]; then
        pactl unload-module "$MODULE_ID" && echo "Odpojen null-sink '$NULL_SINK_NAME'"
    fi
fi

echo "Hotovo. Všechny loopbacky, virtuální zdroje a null-sinky odstraněny."

A protože přestaly fungovat zvuky - přehrávání, tak je ještě třeba to opravit
Kód: [Vybrat]
systemctl --user restart pipewire pipewire-pulse wireplumber || systemctl --user restart pipewire pipewire-pulse pulseaudio || true

Pomůžete mi s tím prosím?
8
Desktop / Re:Doporučte vysouvací konzoli à la Yakuake
« Poslední příspěvek od tecka kdy Dnes v 04:17:23 »
Odpověděl bych odbočkou. Možná ti bude stačit jednorázově vyvolatelné menu s historií, což podle mě docela pěkně řeší třeba "fzf".
9
Sítě / Re:Optický kabel - obecný souhlas
« Poslední příspěvek od 🇺🇦 GPU kdy Dnes v 03:01:47 »
Problem je v definici toho, co tam poskytovatel muze umistit a k cemu to slouzi. Pripojka k siti je urcite trochu neco jineho, nez samotna sit. Pod takto vagni definici se schova i 30m vysilac...

Chapu, ze opticky internet je lakavy, ale na tohle bych nekyvl.
10
Desktop / Re:Doporučte vysouvací konzoli à la Yakuake
« Poslední příspěvek od kneziX kdy Dnes v 00:02:58 »
Vím, že to není úplně odpověď, ale doporučuji nejdříve mrknout na nějakou úpravu shellu. Za mě doporučuji fish. Umí to procházet a našeptávat historii, dokonce i jen části příkazů a vše je interaktivní. Je to hodně efektivní a dost návykové. S běžným bashem se to nedá srovnat.
Stran: [1] 2 3 ... 10