Swayscript: Rewrite to replaceVars.
This commit is contained in:
parent
0163b0534c
commit
b05a3504a4
|
@ -1,2 +1,23 @@
|
||||||
{ pkgs, util, ... }@args:
|
{
|
||||||
pkgs.writeShellScriptBin "swayscript" (util.catText (util.ls ./script) args + "\${@}")
|
__findFile,
|
||||||
|
pkgs,
|
||||||
|
util,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
pipewire = pkgs.pipewire;
|
||||||
|
longogg = <static/Long.ogg>;
|
||||||
|
notificationogg = <static/Notification.ogg>;
|
||||||
|
shortogg = <static/Short.ogg>;
|
||||||
|
|
||||||
|
raw = pkgs.writeText "swayscript-raw" (util.catContent (util.ls ./script));
|
||||||
|
script = pkgs.replaceVars raw {
|
||||||
|
inherit
|
||||||
|
pipewire
|
||||||
|
longogg
|
||||||
|
notificationogg
|
||||||
|
shortogg
|
||||||
|
;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
pkgs.writeShellScriptBin "swayscript" (builtins.readFile script + "\n\${@}")
|
||||||
|
|
|
@ -1,126 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
text = ''
|
|
||||||
function monitor() {
|
|
||||||
notify_short
|
|
||||||
toggle() {
|
|
||||||
local output=$(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name')
|
|
||||||
local state=$(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .power')
|
|
||||||
|
|
||||||
if ''${state}; then
|
|
||||||
swaymsg "output \"''${output}\" power off"
|
|
||||||
else
|
|
||||||
swaymsg "output \"''${output}\" power on"
|
|
||||||
fi
|
|
||||||
|
|
||||||
pkill -RTMIN+4 waybar
|
|
||||||
}
|
|
||||||
_sway_iterate_sockets toggle
|
|
||||||
}
|
|
||||||
|
|
||||||
function monitorreset() {
|
|
||||||
swaymsg 'output * power on'
|
|
||||||
pkill -RTMIN+4 waybar
|
|
||||||
}
|
|
||||||
|
|
||||||
function gaming() {
|
|
||||||
notify_short
|
|
||||||
toggle() {
|
|
||||||
local output=$(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name')
|
|
||||||
local state=$(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .adaptive_sync_status')
|
|
||||||
|
|
||||||
if [[ "''${state}" = "disabled" ]]; then
|
|
||||||
swaymsg "output \"''${output}\" adaptive_sync on"
|
|
||||||
else
|
|
||||||
swaymsg "output \"''${output}\" adaptive_sync off"
|
|
||||||
fi
|
|
||||||
|
|
||||||
pkill -RTMIN+4 waybar
|
|
||||||
}
|
|
||||||
_sway_iterate_sockets toggle
|
|
||||||
}
|
|
||||||
|
|
||||||
function gamingreset() {
|
|
||||||
swaymsg 'output * adaptive_sync off'
|
|
||||||
pkill -RTMIN+4 waybar
|
|
||||||
}
|
|
||||||
|
|
||||||
function dnd() {
|
|
||||||
toggle() {
|
|
||||||
local state=$(makoctl mode)
|
|
||||||
|
|
||||||
if [[ "''${state}" = "dnd" ]]; then
|
|
||||||
makoctl mode -s default
|
|
||||||
notify_short
|
|
||||||
else
|
|
||||||
notify_short
|
|
||||||
makoctl mode -s dnd
|
|
||||||
fi
|
|
||||||
|
|
||||||
pkill -RTMIN+4 waybar
|
|
||||||
}
|
|
||||||
_sway_iterate_sockets toggle
|
|
||||||
}
|
|
||||||
|
|
||||||
# Reset the state of everything.
|
|
||||||
function displayreset() {
|
|
||||||
notify_long
|
|
||||||
[[ "''$(monitorstate)" = "Y" ]] && monitorreset
|
|
||||||
[[ "''$(gamingstate)" = "Y" ]] && gamingreset
|
|
||||||
[[ "''$(recordingstate)" = "Y" ]] && pkill wf-recorder
|
|
||||||
[[ "''$(dndstate)" = "Y" ]] && dnd
|
|
||||||
true
|
|
||||||
}
|
|
||||||
|
|
||||||
# Waybar output.
|
|
||||||
function displaywidget() {
|
|
||||||
local _monitorstate=$(monitorstate)
|
|
||||||
local _gamingstate=$(gamingstate)
|
|
||||||
local _recordingstate=$(recordingstate)
|
|
||||||
local _dndstate=$(dndstate)
|
|
||||||
local class=""
|
|
||||||
|
|
||||||
if [[ "''${_monitorstate}" = "Y" ]] || [[ "''${_gamingstate}" = "Y" ]] || [[ "''${_recordingstate}" = "Y" ]] || [[ "''${_dndstate}" = "Y" ]]; then
|
|
||||||
class="modified"
|
|
||||||
fi
|
|
||||||
|
|
||||||
printf "%s" "{\"text\": \"\", \"tooltip\": \" ''${_dndstate}\\t ''${_monitorstate}\\n ''${_gamingstate}\\t ''${_recordingstate}\", \"class\": \"''${class}\"}\n"
|
|
||||||
}
|
|
||||||
|
|
||||||
function monitorstate() {
|
|
||||||
local outputs=($(swaymsg -t get_outputs | jq -r '.[] | .power'))
|
|
||||||
|
|
||||||
for state in "''${outputs[@]}"; do
|
|
||||||
''${state} || {
|
|
||||||
printf "%s" Y
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
done
|
|
||||||
|
|
||||||
printf "%s" n
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
function recordingstate() {
|
|
||||||
[[ "$(ps cax | rg wf-recorder)" = "" ]] && printf "%s" n || printf "%s" Y
|
|
||||||
}
|
|
||||||
|
|
||||||
function dndstate() {
|
|
||||||
[[ "$(makoctl mode)" = "dnd" ]] && printf "%s" Y || printf "%s" n
|
|
||||||
}
|
|
||||||
|
|
||||||
function gamingstate() {
|
|
||||||
local outputs=($(swaymsg -t get_outputs | jq -r '.[] | .adaptive_sync_status'))
|
|
||||||
|
|
||||||
for state in "''${outputs[@]}"; do
|
|
||||||
[[ "''${state}" = "disabled" ]] || {
|
|
||||||
printf "%s" Y
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
done
|
|
||||||
|
|
||||||
printf "%s" n
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
}
|
|
121
package/swayscript/script/DisplayWidget.sh
Normal file
121
package/swayscript/script/DisplayWidget.sh
Normal file
|
@ -0,0 +1,121 @@
|
||||||
|
function monitor() {
|
||||||
|
notify_short
|
||||||
|
toggle() {
|
||||||
|
local output=$(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name')
|
||||||
|
local state=$(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .power')
|
||||||
|
|
||||||
|
if ${state}; then
|
||||||
|
swaymsg "output \"${output}\" power off"
|
||||||
|
else
|
||||||
|
swaymsg "output \"${output}\" power on"
|
||||||
|
fi
|
||||||
|
|
||||||
|
pkill -RTMIN+4 waybar
|
||||||
|
}
|
||||||
|
_sway_iterate_sockets toggle
|
||||||
|
}
|
||||||
|
|
||||||
|
function monitorreset() {
|
||||||
|
swaymsg 'output * power on'
|
||||||
|
pkill -RTMIN+4 waybar
|
||||||
|
}
|
||||||
|
|
||||||
|
function gaming() {
|
||||||
|
notify_short
|
||||||
|
toggle() {
|
||||||
|
local output=$(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name')
|
||||||
|
local state=$(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .adaptive_sync_status')
|
||||||
|
|
||||||
|
if [[ ${state} == "disabled" ]]; then
|
||||||
|
swaymsg "output \"${output}\" adaptive_sync on"
|
||||||
|
else
|
||||||
|
swaymsg "output \"${output}\" adaptive_sync off"
|
||||||
|
fi
|
||||||
|
|
||||||
|
pkill -RTMIN+4 waybar
|
||||||
|
}
|
||||||
|
_sway_iterate_sockets toggle
|
||||||
|
}
|
||||||
|
|
||||||
|
function gamingreset() {
|
||||||
|
swaymsg 'output * adaptive_sync off'
|
||||||
|
pkill -RTMIN+4 waybar
|
||||||
|
}
|
||||||
|
|
||||||
|
function dnd() {
|
||||||
|
toggle() {
|
||||||
|
local state=$(makoctl mode)
|
||||||
|
|
||||||
|
if [[ ${state} == "dnd" ]]; then
|
||||||
|
makoctl mode -s default
|
||||||
|
notify_short
|
||||||
|
else
|
||||||
|
notify_short
|
||||||
|
makoctl mode -s dnd
|
||||||
|
fi
|
||||||
|
|
||||||
|
pkill -RTMIN+4 waybar
|
||||||
|
}
|
||||||
|
_sway_iterate_sockets toggle
|
||||||
|
}
|
||||||
|
|
||||||
|
# Reset the state of everything.
|
||||||
|
function displayreset() {
|
||||||
|
notify_long
|
||||||
|
[[ "$(monitorstate)" == "Y" ]] && monitorreset
|
||||||
|
[[ "$(gamingstate)" == "Y" ]] && gamingreset
|
||||||
|
[[ "$(recordingstate)" == "Y" ]] && pkill wf-recorder
|
||||||
|
[[ "$(dndstate)" == "Y" ]] && dnd
|
||||||
|
true
|
||||||
|
}
|
||||||
|
|
||||||
|
# Waybar output.
|
||||||
|
function displaywidget() {
|
||||||
|
local _monitorstate=$(monitorstate)
|
||||||
|
local _gamingstate=$(gamingstate)
|
||||||
|
local _recordingstate=$(recordingstate)
|
||||||
|
local _dndstate=$(dndstate)
|
||||||
|
local class=""
|
||||||
|
|
||||||
|
if [[ ${_monitorstate} == "Y" ]] || [[ ${_gamingstate} == "Y" ]] || [[ ${_recordingstate} == "Y" ]] || [[ ${_dndstate} == "Y" ]]; then
|
||||||
|
class="modified"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "%s" "{\"text\": \"\", \"tooltip\": \" ${_dndstate}\\t ${_monitorstate}\\n ${_gamingstate}\\t ${_recordingstate}\", \"class\": \"${class}\"}\n"
|
||||||
|
}
|
||||||
|
|
||||||
|
function monitorstate() {
|
||||||
|
local outputs=($(swaymsg -t get_outputs | jq -r '.[] | .power'))
|
||||||
|
|
||||||
|
for state in "${outputs[@]}"; do
|
||||||
|
${state} || {
|
||||||
|
printf "%s" Y
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
done
|
||||||
|
|
||||||
|
printf "%s" n
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
function recordingstate() {
|
||||||
|
[[ "$(ps cax | rg wf-recorder)" == "" ]] && printf "%s" n || printf "%s" Y
|
||||||
|
}
|
||||||
|
|
||||||
|
function dndstate() {
|
||||||
|
[[ "$(makoctl mode)" == "dnd" ]] && printf "%s" Y || printf "%s" n
|
||||||
|
}
|
||||||
|
|
||||||
|
function gamingstate() {
|
||||||
|
local outputs=($(swaymsg -t get_outputs | jq -r '.[] | .adaptive_sync_status'))
|
||||||
|
|
||||||
|
for state in "${outputs[@]}"; do
|
||||||
|
[[ ${state} == "disabled" ]] || {
|
||||||
|
printf "%s" Y
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
done
|
||||||
|
|
||||||
|
printf "%s" n
|
||||||
|
return 0
|
||||||
|
}
|
|
@ -1,80 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
text = ''
|
|
||||||
# Waybar output.
|
|
||||||
function networkwidget() {
|
|
||||||
local IFS=$'\n'
|
|
||||||
local internet=$(nmcli networking connectivity check)
|
|
||||||
local _ethernets=($(nmcli connection show --active | rg ethernet | sed "s/ .*//"))
|
|
||||||
local _vpns=($(nmcli connection show --active | rg vpn | sed "s/ .*//"))
|
|
||||||
local _wifis=($(nmcli connection show --active | rg wifi | sed "s/ .*//"))
|
|
||||||
local _bts_raw=($(bluetoothctl devices Connected))
|
|
||||||
local _bts=()
|
|
||||||
local _bt_lowest=100
|
|
||||||
local icon=""
|
|
||||||
local class=""
|
|
||||||
|
|
||||||
for bt in ''${_bts_raw[@]}; do
|
|
||||||
local name=$(printf "%s" ''${bt} | cut -d\ -f3)
|
|
||||||
local mac=$(printf "%s" ''${bt} | cut -d\ -f2 | sed -e "s/:/_/g")
|
|
||||||
local bat=$(dbus-send --print-reply=literal --system --dest=org.bluez /org/bluez/hci0/dev_''${mac} org.freedesktop.DBus.Properties.Get string:"org.bluez.Battery1" string:"Percentage" 2> /dev/null | cut -d\ -f12)
|
|
||||||
local btinfo="''${name}"
|
|
||||||
|
|
||||||
if [[ "''${bat}" != "" ]]; then
|
|
||||||
btinfo+=" ''${bat}%"
|
|
||||||
[[ ''${bat} -lt ''${_bt_lowest} ]] && _bt_lowest=bat
|
|
||||||
fi
|
|
||||||
|
|
||||||
_bts+=("''${btinfo}")
|
|
||||||
done
|
|
||||||
|
|
||||||
if [[ "''${_bts}" != "" ]]; then
|
|
||||||
icon=""
|
|
||||||
|
|
||||||
if [[ "''${_bt_lowest}" != "" ]] && [[ ''${_bt_lowest} -lt 21 ]]; then
|
|
||||||
class="btlow"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "''${_vpns}" != "" ]]; then
|
|
||||||
class="vpn"
|
|
||||||
icon=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "''${internet}" != "full" ]]; then
|
|
||||||
class="issue"
|
|
||||||
icon=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
for net in ''${_vpns[@]}; do
|
|
||||||
networks+=" ''${net}\\n"
|
|
||||||
done
|
|
||||||
|
|
||||||
for net in ''${_ethernets[@]}; do
|
|
||||||
networks+=" ''${net}\\n"
|
|
||||||
done
|
|
||||||
|
|
||||||
for net in ''${_wifis[@]}; do
|
|
||||||
networks+=" ''${net}\\n"
|
|
||||||
done
|
|
||||||
|
|
||||||
for bt in ''${_bts[@]}; do
|
|
||||||
networks+=" ''${bt}\\n"
|
|
||||||
done
|
|
||||||
|
|
||||||
networks=''${networks%\\n}
|
|
||||||
printf "%s" "{\"text\": \"''${icon}\", \"tooltip\": \"''${networks}\", \"class\": \"''${class}\"}\n"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Toggle network.
|
|
||||||
function network() {
|
|
||||||
notify_short
|
|
||||||
local state=$(nmcli networking)
|
|
||||||
if [[ "''${state}" = "enabled" ]]; then
|
|
||||||
nmcli networking off
|
|
||||||
else
|
|
||||||
nmcli networking on
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
}
|
|
75
package/swayscript/script/NetworkWidget.sh
Normal file
75
package/swayscript/script/NetworkWidget.sh
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
# Waybar output.
|
||||||
|
function networkwidget() {
|
||||||
|
local IFS=$'\n'
|
||||||
|
local internet=$(nmcli networking connectivity check)
|
||||||
|
local _ethernets=($(nmcli connection show --active | rg ethernet | sed "s/ .*//"))
|
||||||
|
local _vpns=($(nmcli connection show --active | rg vpn | sed "s/ .*//"))
|
||||||
|
local _wifis=($(nmcli connection show --active | rg wifi | sed "s/ .*//"))
|
||||||
|
local _bts_raw=($(bluetoothctl devices Connected))
|
||||||
|
local _bts=()
|
||||||
|
local _bt_lowest=100
|
||||||
|
local icon=""
|
||||||
|
local class=""
|
||||||
|
|
||||||
|
for bt in ${_bts_raw[@]}; do
|
||||||
|
local name=$(printf "%s" ${bt} | cut -d\ -f3)
|
||||||
|
local mac=$(printf "%s" ${bt} | cut -d\ -f2 | sed -e "s/:/_/g")
|
||||||
|
local bat=$(dbus-send --print-reply=literal --system --dest=org.bluez /org/bluez/hci0/dev_${mac} org.freedesktop.DBus.Properties.Get string:"org.bluez.Battery1" string:"Percentage" 2>/dev/null | cut -d\ -f12)
|
||||||
|
local btinfo="${name}"
|
||||||
|
|
||||||
|
if [[ ${bat} != "" ]]; then
|
||||||
|
btinfo+=" ${bat}%"
|
||||||
|
[[ ${bat} -lt ${_bt_lowest} ]] && _bt_lowest=bat
|
||||||
|
fi
|
||||||
|
|
||||||
|
_bts+=("${btinfo}")
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ ${_bts} != "" ]]; then
|
||||||
|
icon=""
|
||||||
|
|
||||||
|
if [[ ${_bt_lowest} != "" ]] && [[ ${_bt_lowest} -lt 21 ]]; then
|
||||||
|
class="btlow"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ${_vpns} != "" ]]; then
|
||||||
|
class="vpn"
|
||||||
|
icon=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ${internet} != "full" ]]; then
|
||||||
|
class="issue"
|
||||||
|
icon=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
for net in ${_vpns[@]}; do
|
||||||
|
networks+=" ${net}\\n"
|
||||||
|
done
|
||||||
|
|
||||||
|
for net in ${_ethernets[@]}; do
|
||||||
|
networks+=" ${net}\\n"
|
||||||
|
done
|
||||||
|
|
||||||
|
for net in ${_wifis[@]}; do
|
||||||
|
networks+=" ${net}\\n"
|
||||||
|
done
|
||||||
|
|
||||||
|
for bt in ${_bts[@]}; do
|
||||||
|
networks+=" ${bt}\\n"
|
||||||
|
done
|
||||||
|
|
||||||
|
networks=${networks%\\n}
|
||||||
|
printf "%s" "{\"text\": \"${icon}\", \"tooltip\": \"${networks}\", \"class\": \"${class}\"}\n"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Toggle network.
|
||||||
|
function network() {
|
||||||
|
notify_short
|
||||||
|
local state=$(nmcli networking)
|
||||||
|
if [[ ${state} == "enabled" ]]; then
|
||||||
|
nmcli networking off
|
||||||
|
else
|
||||||
|
nmcli networking on
|
||||||
|
fi
|
||||||
|
}
|
|
@ -1,19 +0,0 @@
|
||||||
{ __findFile, pkgs, ... }:
|
|
||||||
{
|
|
||||||
text = ''
|
|
||||||
function notify() {
|
|
||||||
[[ "''$(dndstate)" = "Y" ]] && return
|
|
||||||
${pkgs.pipewire}/bin/pw-cat -p ${<static/Notification.ogg>} &
|
|
||||||
}
|
|
||||||
|
|
||||||
function notify_short() {
|
|
||||||
[[ "''$(dndstate)" = "Y" ]] && return
|
|
||||||
${pkgs.pipewire}/bin/pw-cat -p ${<static/Short.ogg>} &
|
|
||||||
}
|
|
||||||
|
|
||||||
function notify_long() {
|
|
||||||
[[ "''$(dndstate)" = "Y" ]] && return
|
|
||||||
${pkgs.pipewire}/bin/pw-cat -p ${<static/Long.ogg>} &
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
}
|
|
14
package/swayscript/script/Notify.sh
Normal file
14
package/swayscript/script/Notify.sh
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
function notify() {
|
||||||
|
[[ "$(dndstate)" == "Y" ]] && return
|
||||||
|
@pipewire@/bin/pw-cat -p @notificationogg@ &
|
||||||
|
}
|
||||||
|
|
||||||
|
function notify_short() {
|
||||||
|
[[ "$(dndstate)" == "Y" ]] && return
|
||||||
|
@pipewire@/bin/pw-cat -p @shortogg@ &
|
||||||
|
}
|
||||||
|
|
||||||
|
function notify_long() {
|
||||||
|
[[ "$(dndstate)" == "Y" ]] && return
|
||||||
|
@pipewire@/bin/pw-cat -p @longogg@ &
|
||||||
|
}
|
|
@ -1,31 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
text = ''
|
|
||||||
# Reload.
|
|
||||||
function reload() {
|
|
||||||
# notify_long
|
|
||||||
re() {
|
|
||||||
# Sway.
|
|
||||||
swaymsg reload
|
|
||||||
|
|
||||||
# Waybar.
|
|
||||||
pkill waybar
|
|
||||||
swaymsg exec waybar
|
|
||||||
|
|
||||||
# Tmux.
|
|
||||||
tmux source-file ~/.config/tmux/tmux.conf
|
|
||||||
|
|
||||||
# Bash.
|
|
||||||
pkill -SIGUSR1 bash
|
|
||||||
|
|
||||||
# Notifications.
|
|
||||||
makoctl reload
|
|
||||||
|
|
||||||
# Reset displays.
|
|
||||||
displayreset
|
|
||||||
}
|
|
||||||
|
|
||||||
_sway_iterate_sockets re
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
}
|
|
26
package/swayscript/script/Reload.sh
Normal file
26
package/swayscript/script/Reload.sh
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
# Reload.
|
||||||
|
function reload() {
|
||||||
|
# notify_long
|
||||||
|
re() {
|
||||||
|
# Sway.
|
||||||
|
swaymsg reload
|
||||||
|
|
||||||
|
# Waybar.
|
||||||
|
pkill waybar
|
||||||
|
swaymsg exec waybar
|
||||||
|
|
||||||
|
# Tmux.
|
||||||
|
tmux source-file ~/.config/tmux/tmux.conf
|
||||||
|
|
||||||
|
# Bash.
|
||||||
|
pkill -SIGUSR1 bash
|
||||||
|
|
||||||
|
# Notifications.
|
||||||
|
makoctl reload
|
||||||
|
|
||||||
|
# Reset displays.
|
||||||
|
displayreset
|
||||||
|
}
|
||||||
|
|
||||||
|
_sway_iterate_sockets re
|
||||||
|
}
|
|
@ -1,15 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
text = ''
|
|
||||||
# Kill all windows in Sway scratchpad.
|
|
||||||
function scratchpad_kill() {
|
|
||||||
# notify_short
|
|
||||||
kill() {
|
|
||||||
for window in $(swaymsg -t get_tree | jq -r 'recurse(.nodes[]?) | select(.name == "__i3_scratch").floating_nodes[].id'); do
|
|
||||||
swaymsg [ con_id="$window" ] kill
|
|
||||||
done
|
|
||||||
}
|
|
||||||
_sway_iterate_sockets kill
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
}
|
|
10
package/swayscript/script/Scratchpad.sh
Normal file
10
package/swayscript/script/Scratchpad.sh
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
# Kill all windows in Sway scratchpad.
|
||||||
|
function scratchpad_kill() {
|
||||||
|
# notify_short
|
||||||
|
kill() {
|
||||||
|
for window in $(swaymsg -t get_tree | jq -r 'recurse(.nodes[]?) | select(.name == "__i3_scratch").floating_nodes[].id'); do
|
||||||
|
swaymsg [ con_id="$window" ] kill
|
||||||
|
done
|
||||||
|
}
|
||||||
|
_sway_iterate_sockets kill
|
||||||
|
}
|
|
@ -1,18 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
text = ''
|
|
||||||
function sound_output_cycle() {
|
|
||||||
notify_short
|
|
||||||
local IFS=$'\n'
|
|
||||||
local current=$(pactl get-default-sink)
|
|
||||||
local all=($(pactl list short sinks | cut -f2))
|
|
||||||
local i_current=$(_index_of ''${current} ''${all[@]})
|
|
||||||
local i_total=''${#all[@]}; ((i_total--))
|
|
||||||
local i_target=0
|
|
||||||
|
|
||||||
[[ "''${i_current}" -lt "''${i_total}" ]] && i_target=$((i_current+1))
|
|
||||||
|
|
||||||
pactl set-default-sink ''${all[''${i_target}]}
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
}
|
|
14
package/swayscript/script/Sound.sh
Normal file
14
package/swayscript/script/Sound.sh
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
function sound_output_cycle() {
|
||||||
|
notify_short
|
||||||
|
local IFS=$'\n'
|
||||||
|
local current=$(pactl get-default-sink)
|
||||||
|
local all=($(pactl list short sinks | cut -f2))
|
||||||
|
local i_current=$(_index_of ${current} ${all[@]})
|
||||||
|
local i_total=${#all[@]}
|
||||||
|
((i_total--))
|
||||||
|
local i_target=0
|
||||||
|
|
||||||
|
[[ ${i_current} -lt ${i_total} ]] && i_target=$((i_current + 1))
|
||||||
|
|
||||||
|
pactl set-default-sink ${all[${i_target}]}
|
||||||
|
}
|
|
@ -1,16 +0,0 @@
|
||||||
{ __findFile, ... }:
|
|
||||||
{
|
|
||||||
text = ''
|
|
||||||
# Find currently active SWAYSOCK paths.
|
|
||||||
function _sway_find_sockets() {
|
|
||||||
ls /run/user/''${UID}/sway-ipc.''${UID}.*.sock
|
|
||||||
}
|
|
||||||
|
|
||||||
function _sway_iterate_sockets() {
|
|
||||||
local IFS=$'\n'
|
|
||||||
for socket in $(_sway_find_sockets); do
|
|
||||||
SWAYSOCK="''${socket}" ''${1}
|
|
||||||
done
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
}
|
|
11
package/swayscript/script/Util.sh
Normal file
11
package/swayscript/script/Util.sh
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
# Find currently active SWAYSOCK paths.
|
||||||
|
function _sway_find_sockets() {
|
||||||
|
ls /run/user/${UID}/sway-ipc.${UID}.*.sock
|
||||||
|
}
|
||||||
|
|
||||||
|
function _sway_iterate_sockets() {
|
||||||
|
local IFS=$'\n'
|
||||||
|
for socket in $(_sway_find_sockets); do
|
||||||
|
SWAYSOCK="${socket}" ${1}
|
||||||
|
done
|
||||||
|
}
|
|
@ -1,19 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
text = ''
|
|
||||||
# Toggle vpn.
|
|
||||||
function vpn() {
|
|
||||||
notify_short
|
|
||||||
if [[ "$(_vpn)" = "on" ]]; then
|
|
||||||
nmcli connection down Vpn
|
|
||||||
else
|
|
||||||
nmcli connection up Vpn
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function _vpn() {
|
|
||||||
local state=$(nmcli connection show Vpn | rg -i state.*activated)
|
|
||||||
[ "''${state}" != "" ] && printf on || printf off
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
}
|
|
14
package/swayscript/script/Vpn.sh
Normal file
14
package/swayscript/script/Vpn.sh
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
# Toggle vpn.
|
||||||
|
function vpn() {
|
||||||
|
notify_short
|
||||||
|
if [[ "$(_vpn)" == "on" ]]; then
|
||||||
|
nmcli connection down Vpn
|
||||||
|
else
|
||||||
|
nmcli connection up Vpn
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function _vpn() {
|
||||||
|
local state=$(nmcli connection show Vpn | rg -i state.*activated)
|
||||||
|
[ "${state}" != "" ] && printf on || printf off
|
||||||
|
}
|
Loading…
Reference in a new issue