#n

165 posts· Last used 1d

Piteås nya näringslivsprogram för 2026–2030 syftar till att stärka företagande, attrahera människor och stödja innovativa idéer. Programmet är utvecklat i samarbete med lokala aktörer och fokuserar på fem tillväxtområden för att möta framtida utmaningar.#näringsliv Nytt näringslivsprogram tar sikte på Piteås framtid
0
0
0
0
A pure wireplumber way to switch audio devices, no pactl $sinkswitch = bash -c 'set -euo pipefail; declare -A m=(); declare -a n=(); ex="^(easyeffects_sink|filter-chain|loopback|null-sink)([-_.].*)?$"; exec 3< <(pw-cli ls Node 2>/dev/null); exec 4< <(pw-metadata -n default 0 default.audio.sink 2>/dev/null); cur=; while IFS= read -r l <&4; do case $l in *"default.audio.sink"*) cur=${l##*\"name\":\"}; cur=${cur%%\"*}; break;; esac; done; id= desc= name= cls=; add(){ [[ $cls == "Audio/Sink" && -n $name ]] || return 0; [[ $name =~ $ex || $name == "$cur" ]] && return 0; local l=$desc; [[ -n ${m[$l]+x} ]] && l+=" [$id]"; m[$l]=$name; n+=("$l"); }; while IFS= read -r l <&3; do case $l in *"id "[0-9]*", type PipeWire:Interface:Node"*) add; id=${l##*id }; id=${id%%,*}; desc= name= cls=;; *"node.description = "*) desc=${l##* = \"}; desc=${desc%\"};; *"node.name = "*) name=${l##* = \"}; name=${name%\"};; *"media.class = "*) cls=${l##* = \"}; cls=${cls%\"};; esac; done; add; ((${##n[@]})) || exit 0; if ((${##n[@]}==1)); then c=${n[0]}; else c=$(printf "%s\n" "${n[@]}" | walker -d --minheight 1 -p "Audio output: " | head -n1 || true); fi; [[ -n $c ]] || exit 0; name=${m[$c]:-}; [[ -n $name ]] || exit 1; pw-metadata -n default 0 default.configured.audio.sink "{\"name\":\"$name\"}" Spa:String:JSON >/dev/null & s=/run/current-system/sw/share/sounds/freedesktop/stereo/audio-volume-change.oga; [[ -r $s ]] && pw-play --volume=0.2 "$s" >/dev/null 2>&1 & notify-send -u low -i /run/current-system/sw/share/icons/Flat-Remix-Red-Dark/panel/audio-volume-high-symbolic.svg "${c% \[*\]}" -h string:x-canonical-private-synchronous:sink-state >/dev/null 2>&1 &' or, escaped for waybar: "on-click-middle": "bash -c 'set -euo pipefail; declare -A m=(); declare -a n=(); ex=\"^(easyeffects_sink|filter-chain|loopback|null-sink)([-_.].*)?$\"; exec 3< <(pw-cli ls Node 2>/dev/null); exec 4< <(pw-metadata -n default 0 default.audio.sink 2>/dev/null); cur=; while IFS= read -r l <&4; do case $l in *\"default.audio.sink\"*) cur=${l##*\\\"name\\\":\\\"}; cur=${cur%%\\\"*}; break;; esac; done; id= desc= name= cls=; add(){ [[ $cls == \"Audio/Sink\" && -n $name ]] || return 0; [[ $name =~ $ex || $name == \"$cur\" ]] && return 0; local l=$desc; [[ -n ${m[$l]+x} ]] && l+=\" [$id]\"; m[$l]=$name; n+=(\"$l\"); }; while IFS= read -r l <&3; do case $l in *\"id \"[0-9]*\", type PipeWire:Interface:Node\"*) add; id=${l#*id }; id=${id%%,*}; desc= name= cls=;; *\"node.description = \"*) desc=${l#* = \\\"}; desc=${desc%\\\"};; *\"node.name = \"*) name=${l#* = \\\"}; name=${name%\\\"};; *\"media.class = \"*) cls=${l#* = \\\"}; cls=${cls%\\\"};; esac; done; add; ((${#n[@]})) || exit 0; if ((${#n[@]}==1)); then c=${n[0]}; else c=$(printf \"%s\\n\" \"${n[@]}\" | walker -d --minheight 1 -p \"Audio output: \" | head -n1 || true); fi; [[ -n $c ]] || exit 0; name=${m[$c]:-}; [[ -n $name ]] || exit 1; pw-metadata -n default 0 default.configured.audio.sink \"{\\\"name\\\":\\\"$name\\\"}\" Spa:String:JSON >/dev/null & s=/run/current-system/sw/share/sounds/freedesktop/stereo/audio-volume-change.oga; [[ -r $s ]] && pw-play --volume=0.2 \"$s\" >/dev/null 2>&1 & notify-send -u low -i /run/current-system/sw/share/icons/Flat-Remix-Red-Dark/panel/audio-volume-high-symbolic.svg \"${c% \\[*\\]}\" -h string:x-canonical-private-synchronous:sink-state >/dev/null 2>&1 &'", there’s probably a lot to improve here, took forever to get this working, did not do a cleanup pass, jfc this took forever, replace walker with your menu of choice, thought people should have this. wishlist: change the icon based on volume level edit: updated to a script that’s basically a million times faster old version: real 0m0.050s user 0m0.043s sys 0m0.037s new version: real 0m0.021s user 0m0.013s sys 0m0.012s
50
18
0
0
Ota kuva läppärisi/tablettisi/puhelimesi kannesta ja julkaise se tässä ketjussa. Samalla voit kertoa koneestasi jotain, jos haluat. Boostauksia arvostetaan! Oma läppärini on oikea kiertopalkinto. Sain sen äidiltäni, jolle veljeni ystävä oli sen joskus lahjoittanut. Kone jäi äidiltäni kun ei enää pyörittänyt winkkaa. No, laitoin tilalle Mintin ja hyvin pyörii edelleen vaikka ikää on 14 vuotta. Tarrat ovat myös perintöä edellisiltä käyttäjiltä. En ole vieläkään uusia lisännyt mutta keskellä oleva tarraliimajälki on omppulogosta, jonka halusin pois. Pitäis löytää jotain kivaa peittämään liimajälki. Edit: lisäsin läppärin lisäksi myös tabletin ja puhelimen. #tarrataide #nörttikulttuuri #läppäri
29
2
29
0
G'day, folks! Jetzt möchte ich mich mal richtig vorstellen. Da bin ich also. Ich bin Occa, der Quokka, und komme aus'm Berliner Hauptbahnhof, wo ich, glaube ich, mal mit dem Zug aus Down Under angekommen bin. Mit Verspätung. Diese Menschy hat mich schon zweimal übersehen (naja, sie sieht ja auch schlecht), und heute hat sie mich endlich mitgenommen. Ich mag #keksamine und #Pflanzen. Und #Nüffe.
19
1
4
0
Amsterdam'da #YılbaşıGecesi 2027, Museumplein'de lazer ve ışık gösterileriyle bambaşka bir hale bürünüyor! 🎆 Gece yarısının heyecanını yaşamadan önce, sıcak bir içecekle kanal kenarında #Amsterdam'ın kış büyüsüne dalmış olun – şehrin efsanevi kutlamalarından çok daha keyifli bir başlangıç. Yılbaşı partileri, özel turlar ve romantik restoranlarla dolu bu gece, tek bir anın değil, baştan sona yaşanması gereken bir #Avrupa macerası. ✨ #NöelveYılbaş... https://europa.tips/tr/amsterdam-yilbasi-programi
0
0
0
0