diff --git a/home/common/optional/desktop/wayland/default.nix b/home/common/optional/desktop/common/wayland/default.nix similarity index 100% rename from home/common/optional/desktop/wayland/default.nix rename to home/common/optional/desktop/common/wayland/default.nix diff --git a/home/common/optional/desktop/wayland/mako.nix b/home/common/optional/desktop/common/wayland/mako.nix similarity index 100% rename from home/common/optional/desktop/wayland/mako.nix rename to home/common/optional/desktop/common/wayland/mako.nix diff --git a/home/common/optional/desktop/wayland/swww-wallpaper-changer.nix b/home/common/optional/desktop/common/wayland/swww-wallpaper-changer.nix similarity index 100% rename from home/common/optional/desktop/wayland/swww-wallpaper-changer.nix rename to home/common/optional/desktop/common/wayland/swww-wallpaper-changer.nix diff --git a/home/common/optional/desktop/wayland/waybar.nix b/home/common/optional/desktop/common/wayland/waybar.nix similarity index 100% rename from home/common/optional/desktop/wayland/waybar.nix rename to home/common/optional/desktop/common/wayland/waybar.nix diff --git a/home/common/optional/desktop/x11/default.nix b/home/common/optional/desktop/common/x11/default.nix similarity index 90% rename from home/common/optional/desktop/x11/default.nix rename to home/common/optional/desktop/common/x11/default.nix index 8273529..8c9fb7a 100644 --- a/home/common/optional/desktop/x11/default.nix +++ b/home/common/optional/desktop/common/x11/default.nix @@ -2,6 +2,7 @@ { imports = [ ./feh-wallpaper-changer.nix + ./scripts/dunstify-volume-notification.nix ]; home.packages = [ @@ -12,7 +13,6 @@ pkgs.picom pkgs.xclip - (pkgs.writeShellScriptBin "dunstify-volume-notification" (builtins.readFile ./scripts/dunstify-volume-notification.sh)) ]; home.file.".Xresources" = { diff --git a/home/common/optional/desktop/x11/feh-wallpaper-changer.nix b/home/common/optional/desktop/common/x11/feh-wallpaper-changer.nix similarity index 100% rename from home/common/optional/desktop/x11/feh-wallpaper-changer.nix rename to home/common/optional/desktop/common/x11/feh-wallpaper-changer.nix diff --git a/home/common/optional/desktop/common/x11/scripts/dunstify-volume-notification.nix b/home/common/optional/desktop/common/x11/scripts/dunstify-volume-notification.nix new file mode 100644 index 0000000..612e26d --- /dev/null +++ b/home/common/optional/desktop/common/x11/scripts/dunstify-volume-notification.nix @@ -0,0 +1,30 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + (writeShellScriptBin "dunstify-volume-notification" '' + mute_test=$(pamixer --get-mute) + mic_mute_test=$(pamixer --default-source --get-mute) + + mute="" + if [ "$mute_test" == true ]; + then + mute="(Speakers Muted)" + fi + + if [ "$mic_mute_test" == true ]; + then + mute="(Mic Muted)" + fi + + if [ "$mute_test" == true ] && [ "$mic_mute_test" == true ]; + then + mute="(Speakers Muted & Mic Muted)" + fi + + volume=$(pamixer --get-volume) + + msgTag="volume-notify" + dunstify -a "changeVolume" -u low -i audio-volume-high -h string:x-dunst-stack-tag:$msgTag "Volume" "''${volume} ''${mute}" -t 2000 + '') + ]; +} diff --git a/home/common/optional/desktop/dwm/default.nix b/home/common/optional/desktop/dwm/default.nix index 8f130e6..ee33da3 100644 --- a/home/common/optional/desktop/dwm/default.nix +++ b/home/common/optional/desktop/dwm/default.nix @@ -3,18 +3,18 @@ imports = [ ../common - ../x11 + ../common/x11 + + # Status bar scripts + ./scripts/sb-cpu-pct.nix + ./scripts/sb-mem-pct.nix + ./scripts/sb-volume.nix + ./scripts/sb-network-status.nix + ./scripts/sb-updates.nix ]; home.packages = [ pkgs.dwmblocks - - # Status bar - (pkgs.writeShellScriptBin "sb-cpu-pct" (builtins.readFile ./scripts/sb-cpu-pct.sh)) - (pkgs.writeShellScriptBin "sb-mem-pct" (builtins.readFile ./scripts/sb-mem-pct.sh)) - (pkgs.writeShellScriptBin "sb-volume" (builtins.readFile ./scripts/sb-volume.sh)) - (pkgs.writeShellScriptBin "sb-network-status" (builtins.readFile ./scripts/sb-network-status.sh)) - (pkgs.writeShellScriptBin "sb-updates" (builtins.readFile ./scripts/sb-updates.sh)) ]; # TODO configure x11 to look in .config/x11 diff --git a/home/common/optional/desktop/dwm/scripts/sb-cpu-pct.nix b/home/common/optional/desktop/dwm/scripts/sb-cpu-pct.nix new file mode 100644 index 0000000..b2117a0 --- /dev/null +++ b/home/common/optional/desktop/dwm/scripts/sb-cpu-pct.nix @@ -0,0 +1,8 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + (writeShellScriptBin "sb-cpu-pct" '' + echo $(top -bn 1 |grep "Cpu(s)" | awk '{print $2+$6 "%"}' | sed "s/\..//g") + '') + ]; +} diff --git a/home/common/optional/desktop/dwm/scripts/sb-cpu-pct.sh b/home/common/optional/desktop/dwm/scripts/sb-cpu-pct.sh deleted file mode 100644 index ab61fb9..0000000 --- a/home/common/optional/desktop/dwm/scripts/sb-cpu-pct.sh +++ /dev/null @@ -1 +0,0 @@ -echo $(top -bn 1 |grep "Cpu(s)" | awk '{print $2+$6 "%"}' | sed "s/\..//g") diff --git a/home/common/optional/desktop/dwm/scripts/sb-mem-pct.nix b/home/common/optional/desktop/dwm/scripts/sb-mem-pct.nix new file mode 100644 index 0000000..780afe1 --- /dev/null +++ b/home/common/optional/desktop/dwm/scripts/sb-mem-pct.nix @@ -0,0 +1,9 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + (writeShellScriptBin "sb-mem-pct" '' + # Gets current ram percent utilisation + echo $(free | awk '/^Mem/ {print "100*" $3 " / " $2 }' | bc | awk '{print $1"%"}') + '') + ]; +} diff --git a/home/common/optional/desktop/dwm/scripts/sb-mem-pct.sh b/home/common/optional/desktop/dwm/scripts/sb-mem-pct.sh deleted file mode 100644 index 158d95b..0000000 --- a/home/common/optional/desktop/dwm/scripts/sb-mem-pct.sh +++ /dev/null @@ -1,3 +0,0 @@ -# Gets current ram percent utilisation - -echo $(free | awk '/^Mem/ {print "100*" $3 " / " $2 }' | bc | awk '{print $1"%"}') diff --git a/home/common/optional/desktop/dwm/scripts/sb-network-status.nix b/home/common/optional/desktop/dwm/scripts/sb-network-status.nix new file mode 100644 index 0000000..9ce8a4a --- /dev/null +++ b/home/common/optional/desktop/dwm/scripts/sb-network-status.nix @@ -0,0 +1,52 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + (writeShellScriptBin "sb-network-status" '' + # Nerd Font Symbols + wifi_symbol=" " + lan_symbol="󰌗 " + disconnected_symbol="󰲜 " + vpn_symbol="󰖂 " + internet="󰞉 " + internet_disconnected="󰪎 " + + # Get the network status + DEFAULT_INTERFACE=$(ip route | grep '^default' | awk '{print $5}' | uniq) + IP_ADDRESS=$(ip -o route get to 8.8.8.8 | sed -n 's/.*src \([0-9.]\+\).*/\1/p') + + if [ -z "$DEFAULT_INTERFACE" ]; then + network_symbol="$disconnected_symbol" + else + # Check if it is a wireless interface (wlan*) + if [[ $DEFAULT_INTERFACE == wl* ]]; then + network_symbol="$wifi_symbol" + else + network_symbol="$lan_symbol" + fi + fi + + # Check internet connectivity + if ! ping -c 1 8.8.8.8 &> /dev/null; + then + network_symbol="$network_symbol $internet_disconnected" + else + network_symbol="$network_symbol $internet" + fi + + if ip addr show tun0 > /dev/null 2>&1; then + network_symbol="$network_symbol $vpn_symbol" + else + network_symbol="$network_symbol" + fi + + if [ -z "$IP_ADDRESS" ]; + then + printf "$network_symbol" + else + printf "$network_symbol|$IP_ADDRESS" + fi + '') + ]; +} + + diff --git a/home/common/optional/desktop/dwm/scripts/sb-network-status.sh b/home/common/optional/desktop/dwm/scripts/sb-network-status.sh deleted file mode 100644 index d8e09ef..0000000 --- a/home/common/optional/desktop/dwm/scripts/sb-network-status.sh +++ /dev/null @@ -1,43 +0,0 @@ -# Nerd Font Symbols -wifi_symbol=" " -lan_symbol="󰌗 " -disconnected_symbol="󰲜 " -vpn_symbol="󰖂 " -internet="󰞉 " -internet_disconnected="󰪎 " - -# Get the network status -DEFAULT_INTERFACE=$(ip route | grep '^default' | awk '{print $5}' | uniq) -IP_ADDRESS=$(ip -o route get to 8.8.8.8 | sed -n 's/.*src \([0-9.]\+\).*/\1/p') - -if [ -z "$DEFAULT_INTERFACE" ]; then - network_symbol="$disconnected_symbol" -else - # Check if it is a wireless interface (wlan*) - if [[ $DEFAULT_INTERFACE == wl* ]]; then - network_symbol="$wifi_symbol" - else - network_symbol="$lan_symbol" - fi -fi - -# Check internet connectivity -if ! ping -c 1 8.8.8.8 &> /dev/null; -then - network_symbol="$network_symbol $internet_disconnected" -else - network_symbol="$network_symbol $internet" -fi - -if ip addr show tun0 > /dev/null 2>&1; then - network_symbol="$network_symbol $vpn_symbol" -else - network_symbol="$network_symbol" -fi - -if [ -z "$IP_ADDRESS" ]; -then - printf "$network_symbol" -else -printf "$network_symbol|$IP_ADDRESS" -fi diff --git a/home/common/optional/desktop/dwm/scripts/sb-updates.nix b/home/common/optional/desktop/dwm/scripts/sb-updates.nix new file mode 100644 index 0000000..e20b521 --- /dev/null +++ b/home/common/optional/desktop/dwm/scripts/sb-updates.nix @@ -0,0 +1,14 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + (writeShellScriptBin "sb-updates" '' + # Gets number of flake inputs that are ready for update + # Checks every 60 minutes + inputs=$(cd /etc/nixos && + nix flake update --output-lock-file <(cat flake.nix) 2> /tmp/update && + cat /tmp/update | grep -c Update) + printf " $inputs" + '') + ]; +} + diff --git a/home/common/optional/desktop/dwm/scripts/sb-updates.sh b/home/common/optional/desktop/dwm/scripts/sb-updates.sh deleted file mode 100644 index 80bb055..0000000 --- a/home/common/optional/desktop/dwm/scripts/sb-updates.sh +++ /dev/null @@ -1,6 +0,0 @@ -# Gets number of flake inputs that are ready for update -# Checks every 60 minutes -inputs=$(cd /etc/nixos && - nix flake update --output-lock-file <(cat flake.nix) 2> /tmp/update && - cat /tmp/update | grep -c Update) -printf " $inputs" diff --git a/home/common/optional/desktop/dwm/scripts/sb-volume.nix b/home/common/optional/desktop/dwm/scripts/sb-volume.nix new file mode 100644 index 0000000..6d69509 --- /dev/null +++ b/home/common/optional/desktop/dwm/scripts/sb-volume.nix @@ -0,0 +1,49 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + (writeShellScriptBin "sb-volume" '' + # Prints the current volume or 婢 if muted. + + case $BLOCK_BUTTON in + 1) setsid -f "$TERMINAL" -e pulsemixer ;; + 2) pamixer -t && pkill -RTMIN+10 dwmblocks && exit 1 ;; + 4) pamixer --set-limit 150 --allow-boost -i 1 && pkill -RTMIN+10 dwmblocks && exit 1 ;; + 5) pamixer --set-limit 150 --allow-boost -d 1 && pkill -RTMIN+10 dwmblocks && exit 1 ;; + 3) notify-send "Volume module" "\- Shows volume , 婢 if muted. + - Middle click to mute. + - Scroll to change." ;; + 6) "$TERMINAL" -e "$EDITOR" "$0" ;; + esac + + get_mic_status=$(pamixer --default-source --get-mute) + vol="$(pamixer --get-volume)" + + if [ $get_mic_status == false ]; then + mic_status="" + else + mic_status="" + fi + + if [ "$vol" -gt "90" ]; then + icon="" + elif [ "$vol" -gt "50" ]; then + icon="󰕾" + elif [ "$vol" -gt "30" ]; then + icon="" + elif [ "$vol" -gt "0" ]; then + icon="󰕿" + else + icon="󰝟" + fi + + if [ $(pamixer --get-mute) = true ]; then + icon="󰸈" + vol="0" + fi + + print_string="$mic_status $icon $vol%" + printf '%s' "''${print_string}" + '') + ]; +} + diff --git a/home/common/optional/desktop/dwm/scripts/sb-volume.sh b/home/common/optional/desktop/dwm/scripts/sb-volume.sh deleted file mode 100644 index 1da6af3..0000000 --- a/home/common/optional/desktop/dwm/scripts/sb-volume.sh +++ /dev/null @@ -1,41 +0,0 @@ -# Prints the current volume or 婢 if muted. - -case $BLOCK_BUTTON in - 1) setsid -f "$TERMINAL" -e pulsemixer ;; - 2) pamixer -t && pkill -RTMIN+10 dwmblocks && exit 1 ;; - 4) pamixer --set-limit 150 --allow-boost -i 1 && pkill -RTMIN+10 dwmblocks && exit 1 ;; - 5) pamixer --set-limit 150 --allow-boost -d 1 && pkill -RTMIN+10 dwmblocks && exit 1 ;; - 3) notify-send "Volume module" "\- Shows volume , 婢 if muted. -- Middle click to mute. -- Scroll to change." ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; -esac - -get_mic_status=$(pamixer --default-source --get-mute) -vol="$(pamixer --get-volume)" - -if [ $get_mic_status == false ]; then - mic_status="" -else - mic_status="" -fi - -if [ "$vol" -gt "90" ]; then - icon="" -elif [ "$vol" -gt "50" ]; then - icon="󰕾" -elif [ "$vol" -gt "30" ]; then - icon="" -elif [ "$vol" -gt "0" ]; then - icon="󰕿" -else - icon="󰝟" -fi - -if [ $(pamixer --get-mute) = true ]; then - icon="󰸈" - vol="0" -fi - -print_string="$mic_status $icon $vol%" -printf '%s' "${print_string}" diff --git a/home/common/optional/desktop/hyprland/default.nix b/home/common/optional/desktop/hyprland/default.nix index eac93c1..dd0c11e 100644 --- a/home/common/optional/desktop/hyprland/default.nix +++ b/home/common/optional/desktop/hyprland/default.nix @@ -5,7 +5,7 @@ imports = [ ../common - ../wayland + ../common/wayland ./pyprland.nix ]; wayland.windowManager.hyprland = { diff --git a/home/common/optional/desktop/x11/scripts/dunstify-volume-notification.sh b/home/common/optional/desktop/x11/scripts/dunstify-volume-notification.sh deleted file mode 100644 index 3753329..0000000 --- a/home/common/optional/desktop/x11/scripts/dunstify-volume-notification.sh +++ /dev/null @@ -1,23 +0,0 @@ -mute_test=$(pamixer --get-mute) -mic_mute_test=$(pamixer --default-source --get-mute) - -mute="" -if [ "$mute_test" == true ]; - then - mute="(Speakers Muted)" -fi - -if [ "$mic_mute_test" == true ]; - then - mute="(Mic Muted)" -fi - -if [ "$mute_test" == true ] && [ "$mic_mute_test" == true ]; - then - mute="(Speakers Muted & Mic Muted)" -fi - -volume=$(pamixer --get-volume) - -msgTag="volume-notify" -dunstify -a "changeVolume" -u low -i audio-volume-high -h string:x-dunst-stack-tag:$msgTag "Volume" "${volume} ${mute}" -t 2000