diff options
| author | Justine Smithies <justine@smithies.me.uk> | 2024-05-10 19:49:57 +0100 | 
|---|---|---|
| committer | Justine Smithies <justine@smithies.me.uk> | 2024-05-10 19:49:57 +0100 | 
| commit | ccb081f4f40f71e5db09be082e69af9e25e84e41 (patch) | |
| tree | 629268600e4eaad968886fc29f6dc012a68a210d /.config | |
| parent | fb3afe0023747f7f7f8f85dfa0a38baf61cbfb71 (diff) | |
Updates for using eww as the bar for sway
Diffstat (limited to '.config')
| -rw-r--r-- | .config/eww/eww.scss | 10 | ||||
| -rw-r--r-- | .config/eww/eww.yuck | 10 | ||||
| -rwxr-xr-x | .config/eww/scripts/arch-updates.sh | 9 | ||||
| -rwxr-xr-x | .config/eww/scripts/bar-toggle.sh | 9 | ||||
| -rwxr-xr-x | .config/eww/scripts/brightnesscontrol | 14 | ||||
| -rwxr-xr-x | .config/eww/scripts/calendar.sh | 2 | ||||
| -rwxr-xr-x | .config/eww/scripts/idleinhibit.sh | 48 | ||||
| -rwxr-xr-x | .config/eww/scripts/scratchpad-indicator.sh | 9 | ||||
| -rwxr-xr-x | .config/eww/scripts/start.sh | 13 | ||||
| -rwxr-xr-x | .config/eww/scripts/void-updates.sh | 39 | ||||
| -rwxr-xr-x | .config/eww/scripts/volumecontrol | 77 | ||||
| -rw-r--r-- | .config/sway/config | 380 | 
12 files changed, 327 insertions, 293 deletions
diff --git a/.config/eww/eww.scss b/.config/eww/eww.scss index 6ac2238..e9588af 100644 --- a/.config/eww/eww.scss +++ b/.config/eww/eww.scss @@ -12,9 +12,9 @@  .bar {  	background-color: rgba(0, 0, 0, 0.7); -	box-shadow: 2px 4px 2px 1px rgba(0, 0, 0, 0.5); -	margin: 2px 10px 4px 10px; -	border-radius: 5px; +	// box-shadow: 2px 4px 2px 1px rgba(0, 0, 0, 0.5); +	margin: 2px 10px 0px 10px; +	border-radius: 0px;  }  // Styles on classes (see eww.yuck for more information) @@ -38,12 +38,12 @@    padding-right: 10px;  } -.paru { +.xbps {    color: #98971a;    padding-right: 10px;  } -.paru-empty { +.xbps-empty {    color: #98971a;    padding-right: 0px;  } diff --git a/.config/eww/eww.yuck b/.config/eww/eww.yuck index 85c00c8..9d1f4dc 100644 --- a/.config/eww/eww.yuck +++ b/.config/eww/eww.yuck @@ -92,15 +92,15 @@  (defwidget updates []    (box  -       :class "${matches(arch-updates, '^\s*$')?'paru-empty':'paru'}" +       :class "${matches(void-updates, '^\s*$')?'xbps-empty':'xbps'}"         :orientation "h"         :space-evenly false         :halign "end"         :spacing 10      (button          :class "" -	:onclick "foot bash -c 'paru; ~/.config/eww/scripts/arch-updates.sh Refresh'&" -        arch-updates) +	:onclick "foot bash -c 'sudo xbps-install -Suv; ~/.config/eww/scripts/void-updates.sh Refresh'&" +        void-updates)  ))  (defwidget scratchpad-indicator [] @@ -169,8 +169,8 @@  (defpoll idle :interval "1s"    "scripts/idleinhibit.sh") -(defpoll arch-updates :interval "600s" -  "scripts/arch-updates.sh") +(defpoll void-updates :interval "600s" +  "scripts/void-updates.sh")  (defpoll volume :interval "1s"    "scripts/volumecontrol") diff --git a/.config/eww/scripts/arch-updates.sh b/.config/eww/scripts/arch-updates.sh index 62bfe4a..e3da71f 100755 --- a/.config/eww/scripts/arch-updates.sh +++ b/.config/eww/scripts/arch-updates.sh @@ -1,10 +1,9 @@  #!/bin/bash  function CheckUpdates() { -updates="$(checkupdates;paru -Qum)" -arch="$(checkupdates | wc -l)" -aur="$(paru -Qum | wc -l)" -number=$((arch+aur)) +xbps-install -Mun 1> /tmp/void-updates +updates="$(cat /tmp/void-updates | awk '{ print $1 }')" +number=$(cat /tmp/void-updates | wc -l)  if [ "$number" -gt 0 ]; then      text=" $number" @@ -21,7 +20,7 @@ function RefreshUpdates() {  }  function Update() { -	foot 'paru' +	foot bash -c 'sudo xbps-install -Suv'  	RefreshUpdates  } diff --git a/.config/eww/scripts/bar-toggle.sh b/.config/eww/scripts/bar-toggle.sh index aedc8fd..74b1819 100755 --- a/.config/eww/scripts/bar-toggle.sh +++ b/.config/eww/scripts/bar-toggle.sh @@ -1,8 +1,9 @@  #!/bin/bash -monitors=$(hyprctl monitors -j | jq '.[] | .id') -for i in ${monitors}; -do -	active_monitor=$(hyprctl -j activeworkspace | grep 'monitorID' | tr -dc '0-9\n') +monitors=$(swaymsg -t get_outputs -r | jq -r -c '.[] | .name' | wc -l) + +for ((i = 0 ; i < $monitors ; i++)); do +	echo $i +	active_monitor=$(swaymsg -t get_outputs | jq 'map(.focused)|to_entries|.[]|select(.value)|.key')  	bar=$(eww active-windows | grep "bar$i")  	if [ "$active_monitor" == "$i" ] && [ "$bar" == "bar$i: bar$i" ]; then  		eww close bar$i diff --git a/.config/eww/scripts/brightnesscontrol b/.config/eww/scripts/brightnesscontrol index 1f66f9d..2b51c75 100755 --- a/.config/eww/scripts/brightnesscontrol +++ b/.config/eww/scripts/brightnesscontrol @@ -9,14 +9,15 @@  # https://gist.github.com/sebastiencs/5d7227f388d93374cebdf72e783fbd6a  function send_notification { -  icon=/usr/share/icons/Papirus-Dark/16x16/actions/brightnesssettings.svg -  brightness=$(brightnessctl -P g) +  icon=/usr/share/icons/Adwaita/symbolic/status/daytime-sunrise-symbolic.svg +  brightness=$(brightnessctl g) +  brightness=$((brightness *100 / 255 ))    brightness=$(echo "$brightness" | awk '{print ($0-int($0)<0.499)?int($0):int($0)+1}')    # Make the bar with the special character ─ (it's not dash -)    # https://en.wikipedia.org/wiki/Box-drawing_character    bar=$(seq -s "─" 0 $((brightness / 10 )) | sed 's/[0-9]//g')    # Send the notification -  notify-send -i "$icon" -r 5555 -u normal "$bar  $brightness" +  notify-send -i "$icon" --hint=string:x-canonical-private-synchronous:brightness -u normal "$bar  $brightness"  }  case $1 in @@ -24,16 +25,17 @@ case $1 in      # increase the backlight by 5%      brightnessctl s +5%      send_notification -    canberra-gtk-play -i audio-volume-change +    # canberra-gtk-play -i audio-volume-change      ;;    down)      # decrease the backlight by 5%      brightnessctl s 5%-      send_notification -    canberra-gtk-play -i audio-volume-change +    # canberra-gtk-play -i audio-volume-change      ;;    *) -    brightness=$(brightnessctl -P g) +    brightness=$(brightnessctl g) +    brightness=$((brightness *100 / 255 ))      brightness=$(echo "$brightness" | awk '{print ($0-int($0)<0.499)?int($0):int($0)+1}')      icon=""      printf "%s" "$icon $brightness" "%" diff --git a/.config/eww/scripts/calendar.sh b/.config/eww/scripts/calendar.sh index 3c6b16f..f077c59 100755 --- a/.config/eww/scripts/calendar.sh +++ b/.config/eww/scripts/calendar.sh @@ -3,7 +3,7 @@  # Calendar script  function ShowCalendar() { -	notify-send -i "calendar"  "    📅 Calendar" "$(cal --color=always | sed "s/..7m/<b><span color=\"#fabd2f\">/;s/..0m/<\/span><\/b>/")" -r 124 +	notify-send --hint=string:x-canonical-private-synchronous:calendar -u normal -i "calendar"  "    📅 Calendar" "$(cal --color=always | sed "s/..7m/<b><span color=\"#fabd2f\">/;s/..0m/<\/span><\/b>/")"  }  function EditCalendar() { diff --git a/.config/eww/scripts/idleinhibit.sh b/.config/eww/scripts/idleinhibit.sh index 79f9ef0..f606ad5 100755 --- a/.config/eww/scripts/idleinhibit.sh +++ b/.config/eww/scripts/idleinhibit.sh @@ -1,42 +1,20 @@  #!/bin/bash  # Swayidle toggle -# function toggle { -# 	if pgrep "swayidle" > /dev/null -# 	then -# 		pkill swayidle -# 		notify-send -r 5556 -u normal "  Swayidle Inactive" -# 	else -# 		swayidle timeout 300 'swaylock -F -i ~/.cache/wallpaper --effect-blur 10x5 --clock --indicator' timeout 600 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on' & -# 		notify-send -r 5556 -u normal "  Swayidle Active" -# 	fi -# } -# -# case $1 in -# 	toggle) -# 		toggle -# 		;; -# 	*) -# 		if pgrep "swayidle" > /dev/null -# 		then -# 			icon="" -# 		else -# 			icon="" -# 		fi -# 		printf "%s" "$icon " -# 		;; -# esac - -# Hypridle toggle  function toggle { -	if pgrep "hypridle" > /dev/null +	if pgrep "swayidle" > /dev/null  	then -		pkill hypridle -		notify-send -r 5556 -u normal "   Hypridle Inactive" -	else -		hypridle & -		notify-send -r 5556 -u normal "   Hypridle Active" -	fi +		pkill swayidle +		notify-send --hint=string:x-canonical-private-synchronous:idleinhibit -u normal "   Swayidle Inactive" +else +	read -r wallpaper<~/.cache/wallpaper +	export wallpaper=$( echo $wallpaper) +	swayidle -w \ +	timeout 300 'swaylock -f -i $wallpaper' \ +	timeout 600 'wlopm --off \*;swaylock -F -i $wallpaper' resume 'wlopm --on \*' \ +	before-sleep 'swaylock -f -i $wallpaper' & +	notify-send --hint=string:x-canonical-private-synchronous:idleinhibit -u normal "  Swayidle Active" +fi  }  case $1 in @@ -44,7 +22,7 @@ case $1 in  		toggle  		;;  	*) -		if pgrep "hypridle" > /dev/null +		if pgrep "swayidle" > /dev/null  		then  			icon=""  		else diff --git a/.config/eww/scripts/scratchpad-indicator.sh b/.config/eww/scripts/scratchpad-indicator.sh index b0911d9..8fd06f4 100755 --- a/.config/eww/scripts/scratchpad-indicator.sh +++ b/.config/eww/scripts/scratchpad-indicator.sh @@ -1,9 +1,8 @@  #!/bin/bash -# Scratchpad indicator for Hyprland +# Scratchpad indicator for Sway -output="$(hyprctl clients -j | jq -r '.[] | select(.workspace.id==-99) |"<b>"+.class+"</b> : <i>"+.title+"</i>"')" -number="$(hyprctl clients -j | jq -r '.[] | select(.workspace.id==-99) | (tostring)' | wc -l)" -file=~/.config/eww/eww.scss +output="$(swaymsg -t get_tree | jq -r 'recurse(.nodes[]?)|recurse(.floating_nodes[]?)|select(.name == "__i3_scratch").floating_nodes[]|"`<b>"+.name+"`</b> - "+.app_id+" "+(.id|tostring)')" +number="$(swaymsg -r -t get_tree | jq -r 'recurse(.nodes[]) | first(select(.name=="__i3_scratch")) | .floating_nodes | length')"  if [ "$number" -gt 0 ]; then      text=" $number" @@ -21,7 +20,7 @@ function ShowInfo() {  		exit  	else  	tooltip="$(echo -e $tooltip)" -	notify-send "  Scratchpad" "$tooltip" -r 123 +	notify-send --hint=string:x-canonical-private-synchronous:scratchpad -u normal "  Scratchpad" "$tooltip"  	fi  } diff --git a/.config/eww/scripts/start.sh b/.config/eww/scripts/start.sh index f464058..1e5c023 100755 --- a/.config/eww/scripts/start.sh +++ b/.config/eww/scripts/start.sh @@ -4,16 +4,9 @@  eww kill  # start a bar for each monitor -monitors=$(hyprctl monitors -j | jq '.[] | .id') -# monitors=$(hyprctl monitors -j | jq '.[] | .id' | wc -l) +monitors=$(wlr-randr | grep "^[^ ]" | awk '{ print$1 }' | wc -l) -for monitor in ${monitors}; do -    eww open bar${monitor} +for ((i = 0 ; i < $monitors ; i++)); do  +	eww open bar${i}  done -# eww open bar0 -# if [ $monitors -gt 1 ]; then -# 	for ((i = 1 ; i <= $monitors ; i++)); do -# 		eww open bar${i} -# 	done -# fi diff --git a/.config/eww/scripts/void-updates.sh b/.config/eww/scripts/void-updates.sh new file mode 100755 index 0000000..b004735 --- /dev/null +++ b/.config/eww/scripts/void-updates.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +function CheckUpdates() { +xbps-install -Mun 1> /tmp/void-updates +updates="$(cat /tmp/void-updates | awk '{ print $1 }')" +number=$(cat /tmp/void-updates | wc -l) + +if [ "$number" -gt 0 ]; then +    text=" $number" +else +    text="" +fi + +echo "$text" +} + +function RefreshUpdates() { +  value="$(CheckUpdates)" +  eww update void-updates="$value" +} + +function Update() { +	foot bash -c 'sudo xbps-install -Suv' +	RefreshUpdates +} + +case "$1" in +        Refresh) +            RefreshUpdates +	    exit 0 +            ;; +	Update) +            Update +	    exit 0 +	    ;; +        *) +            CheckUpdates +            exit 0  +esac diff --git a/.config/eww/scripts/volumecontrol b/.config/eww/scripts/volumecontrol index 4d24d29..60a5b83 100755 --- a/.config/eww/scripts/volumecontrol +++ b/.config/eww/scripts/volumecontrol @@ -6,64 +6,79 @@  # volumecontrol mute  function get_volume { -    amixer get Master | grep '%' | head -n 1 | cut -d '[' -f 2 | cut -d '%' -f 1 +    # amixer get Master | grep '%' | head -n 1 | cut -d '[' -f 2 | cut -d '%' -f 1 +    pactl get-sink-volume @DEFAULT_SINK@ | grep -Po '\d+(?=%)' | head -n 1  }  function is_mute { -    amixer get Master | grep '%' | grep -oE '[^ ]+$' | grep off > /dev/null +    # amixer get Master | grep '%' | grep -oE '[^ ]+$' | grep off > /dev/null +    pactl get-sink-mute @DEFAULT_SINK@ | grep 'Mute: yes' >> /dev/null  }  function send_notification {  	volume=$(get_volume)      # Make the bar with the special character ─ (it's not dash -)      # https://en.wikipedia.org/wiki/Box-drawing_character -if [ "$volume" = "0" ]; then -        icon_name="/usr/share/icons/Adwaita/16x16/legacy/audio-volume-muted.png" -notify-send -i "$icon_name" -r 5556 -u normal "$volume" -    else -	if [  "$volume" -lt "10" ]; then -	     icon_name="/usr/share/icons/Adwaita/16x16/legacy/audio-volume-low.png" -notify-send -i "$icon_name" -r 5556 -u normal "$volume" -    else -        if [ "$volume" -lt "30" ]; then -            icon_name="/usr/share/icons/Adwaita/16x16/legacy/audio-volume-low.png" -        else -            if [ "$volume" -lt "70" ]; then -                icon_name="/usr/share/icons/Adwaita/16x16/legacy/audio-volume-medium.png" -            else -                icon_name="/usr/share/icons/Adwaita/16x16/legacy/audio-volume-high.png" -            fi -        fi -    fi -fi +	if [[ $volume == "100" ]]; then +		icon="" +	elif [[ $volume -ge "89" && $volume -le "100" ]]; then +		icon="" +	elif [[ $volume -ge "79" && $volume -le "90" ]]; then +		icon="" +	elif [[ $volume -ge "69" && $volume -le "80" ]]; then +		icon="" +	elif [[ $volume -ge "59" && $volume -le "70" ]]; then +		icon="" +	elif [[ $volume -ge "49" && $volume -le "60" ]]; then +		icon="" +	elif [[ $volume -ge "39" && $volume -le "50" ]]; then +		icon="" +	elif [[ $volume -ge "29" && $volume -le "40" ]]; then +		icon="" +	elif [[ $volume -ge "19" && $volume -le "30" ]]; then +		icon="" +	elif [[ $volume -ge "9" && $volume -le "20" ]]; then +		icon="" +	elif [[ $volume -gt "0" && $volume -le "10" ]]; then +		icon="" +	elif [[ $volume -eq "0" ]]; then +		icon="" +		# volume="M " +	fi  bar=$(seq -s "─" $(($volume/5)) | sed 's/[0-9]//g')  # Send the notification -notify-send -i "$icon_name" -r 5556 -u normal "$bar  $volume" +notify-send --hint=string:x-canonical-private-synchronous:volumecontrol -u normal "$icon  $bar  $volume"  }  case $1 in      up)  	# Set the volume on (if it was muted) -	amixer set Master on > /dev/null +	# amixer set Master on > /dev/null +	pactl set-sink-mute @DEFAULT_SINK@ 0  	# Up the volume (+ 2%) -	amixer sset Master 2%+ > /dev/null +	# amixer sset Master 2%+ > /dev/null +	pactl set-sink-volume @DEFAULT_SINK@ +2%  	send_notification -	canberra-gtk-play -i audio-volume-change +	# canberra-gtk-play -i audio-volume-change  	;;      down) -	amixer set Master on > /dev/null -	amixer sset Master 2%- > /dev/null +	# amixer set Master on > /dev/null +	pactl set-sink-mute @DEFAULT_SINK@ 0 +	# amixer sset Master 2%- > /dev/null +	pactl set-sink-volume @DEFAULT_SINK@ -2%  	send_notification -	canberra-gtk-play -i audio-volume-change +	# canberra-gtk-play -i audio-volume-change  	;;      mute)      	# Toggle mute -	amixer set Master 1+ toggle > /dev/null +	# amixer set Master 1+ toggle > /dev/null +	pactl set-sink-mute @DEFAULT_SINK@ toggle  	if is_mute ; then -	notify-send -i "/usr/share/icons/Adwaita/16x16/legacy/audio-volume-muted.png" -r 5556 -u normal "$bar Audio Muted" +	icon="" +	notify-send --hint=string:x-canonical-private-synchronous:volumecontrol -u normal "$icon  Audio Muted"  	else  	    send_notification -	    canberra-gtk-play -i audio-volume-change +	    # canberra-gtk-play -i audio-volume-change  	fi  	;;      *) diff --git a/.config/sway/config b/.config/sway/config index fa5e485..400d700 100644 --- a/.config/sway/config +++ b/.config/sway/config @@ -1,46 +1,58 @@ -### Variables -# -# Logo key. Use Mod1 for Alt. -set $mod Mod4 -# Home row direction keys, like vim -set $left h -set $down j -set $up k -set $right l -# Your preferred terminal emulator -set $term foot -# Your preferred application launcher -# Note: pass the final command to swaymsg so that the resulting window can be opened -# on the original workspace that the command was run on. - -set $menu dmenu_path | fuzzel | xargs swaymsg exec -- - -# Wallpaper is set by imv Shift+W -# exec ~/.config/hypr/scripts/wallpaper.sh -set $wallpaper $(cat ~/.cache/wallpaper) - -# Start Polkit -exec /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 +set { +    ### Variables +    # +    # Logo key. Use Mod1 for Alt. +    $mod Mod4 +    # Home row direction keys, like vim +    $left h +    $down j +    $up k +    $right l +    # Your preferred terminal emulator +    $term foot +    # Your preferred application launcher +    # Note: pass the final command to swaymsg so that the resulting window can be opened +    # on the original workspace that the command was run on. +    $menu dmenu_path | fuzzel | xargs swaymsg exec -- + +    # Wallpaper is set by lf BG or imv Shift+W +    $wallpaper $(cat ~/.cache/wallpaper) +} -# Check clamshell mode on reload  -# exec_always ~/.local/bin/clamshell-mode.sh +exec { +    # Start Polkit +    /usr/libexec/polkit-gnome/polkit-gnome-authentication-agent-1 -# exec_always bash -c "pkill kanshi; exec kanshi" +    dbus-run-session pipewire + +    # Start Dunst +    mako + +    # Start wlsunset +    wlsunset -l 57.4 -L -1.9 -# Start Dunst -exec_always dunst +    # At startup focus on workspace 1 +    swaymsg "workspace 1;" -# Start wlsunset -exec wlsunset -l 57.4 -L -1.9 +    ### Idle configuration +    exec swayidle -w \ +            timeout 300 'swaylock -f -i $wallpaper' \ +            timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \ +            before-sleep 'swaylock -f -i $wallpaper' + +    # This will lock your screen after 300 seconds of inactivity, then turn off +    # your displays after another 300 seconds, and turn your screens back on when +    # resumed. It will also lock your screen before your computer goes to sleep. +} -# At startup focus on workspace 1 -exec swaymsg "workspace 1;" +exec_always { +    ~/.config/eww/scripts/start.sh +} -# bindsym $mod+g exec env RUST_BACKTRACE=1 \ -#     swayr switch-window >> /tmp/swayr.log 2>&1 +# Check clamshell mode on reload  +# exec_always ~/.local/bin/clamshell-mode.sh -# Start swayr daemon  -# exec env RUST_BACKTRACE=1 swayrd > /tmp/swayrd.log 2>&1 +# exec_always bash -c "pkill kanshi; exec kanshi"  # Hide mouse cursor after a period of inactivity.  seat * hide_cursor 4000 @@ -48,8 +60,10 @@ seat * hide_cursor 4000  # Gaps Settings  default_border pixel 2 -gaps top 4 -gaps inner 10 +gaps { +    top 4 +    inner 10 +}  #client.<class>         <border>  <background>    <text>      <indicator>   <child_border>  @@ -62,7 +76,8 @@ client.unfocused        "#666666" "#fff5e5"      "#666666"   "#000000"     "#595  ### Output configuration  #  # Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/) -output * bg $wallpaper fill +output { +    * bg $wallpaper fill  #  # Example configuration:  # @@ -70,22 +85,14 @@ output * bg $wallpaper fill  #  # You can get the names of your outputs by running: swaymsg -t get_outputs -output HDMI-A-1 pos 0 0 res 1920x1080 -output eDP-1 pos 1920 0 res 1920x1080 - -bindswitch --reload --locked lid:on output eDP-1 disable -bindswitch --reload --locked lid:off output eDP-1 enable - -### Idle configuration -# -exec swayidle -w \ -        timeout 300 'swaylock -f -i $wallpaper --effect-blur 10x5 --clock --datestr "%a %d %b %Y" --indicator' \ -        timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \ -        before-sleep 'swaylock -f -i $wallpaper --effect-blur 10x5 --clock ---datestr "%a %d %b %Y" -indicator' +    HDMI-A-1 pos 0 0 res 1920x1080 +    eDP-1 pos 1920 0 res 1920x1080 +} -# This will lock your screen after 300 seconds of inactivity, then turn off -# your displays after another 300 seconds, and turn your screens back on when -# resumed. It will also lock your screen before your computer goes to sleep. +bindswitch { +    --reload --locked lid:on output eDP-1 disable +    --reload --locked lid:off output eDP-1 enable +}  ### Input configuration  # @@ -106,173 +113,157 @@ input "type:keyboard" {      xkb_options grp:shift_caps_toggle  } -### Key bindings -# -# Basics: -# +bindsym { +    ### Key bindings +      # Start a terminal -    bindsym $mod+Return exec $term +    $mod+Return exec $term      # Kill focused window -    bindsym $mod+Shift+q kill +    $mod+Shift+q kill      # Start your launcher -    bindsym $mod+d exec $menu - -    # Drag floating windows by holding down $mod and left mouse button. -    # Resize them with right mouse button + $mod. -    # Despite the name, also works for non-floating windows. -    # Change normal to inverse to use left mouse button for resizing and right -    # mouse button for dragging. -    floating_modifier $mod normal +    $mod+d exec $menu      # Reload the configuration file -    bindsym $mod+Shift+c reload +    $mod+Shift+c reload      # Exit sway (logs you out of your Wayland session) -    bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit' +    $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit' -    bindsym XF86MonBrightnessUp exec ~/.local/bin/statusbar/brightnesscontrol up -    bindsym XF86MonBrightnessDown exec ~/.local/bin/statusbar/brightnesscontrol down +    XF86MonBrightnessUp exec ~/.local/bin/statusbar/brightnesscontrol up +    XF86MonBrightnessDown exec ~/.local/bin/statusbar/brightnesscontrol down -    bindsym XF86AudioRaiseVolume exec ~/.local/bin/statusbar/volumecontrol up -    bindsym XF86AudioLowerVolume exec ~/.local/bin/statusbar/volumecontrol down -    bindsym XF86AudioMute exec ~/.local/bin/statusbar/volumecontrol mute +    XF86AudioRaiseVolume exec ~/.local/bin/statusbar/volumecontrol up +    XF86AudioLowerVolume exec ~/.local/bin/statusbar/volumecontrol down +    XF86AudioMute exec ~/.local/bin/statusbar/volumecontrol mute      # Take a screenshot of the focused output and save it into screenshots -    bindsym Print exec grim -o $(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name') -t jpeg ~/Pictures/Screenshots/$(date +%Y-%m-%d_%H-%m-%s).jpg +    Print exec grim -o $(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name') -t jpeg ~/Pictures/Screenshots/$(date +%Y-%m-%d_%H-%m-%s).jpg      # Take a screenshot of the selected region -    bindsym $mod+Print exec grim -t jpeg -g "$(slurp)" ~/Pictures/Screenshots/$(date +%Y-%m-%d_%H-%m-%s).jpg +    $mod+Print exec grim -t jpeg -g "$(slurp)" ~/Pictures/Screenshots/$(date +%Y-%m-%d_%H-%m-%s).jpg      # Take a screenshot and save it to the clipboard -    bindsym $mod+Shift+Print exec grim -g "$(slurp -d)" - | wl-copy +    $mod+Shift+Print exec grim -g "$(slurp -d)" - | wl-copy      # Open power menu -    bindsym Shift+$mod+p exec ~/.local/bin/powermenu -    bindsym Shift+$mod+z exec ~/.local/bin/emoji-menu -# -# Moving around: -# +    Shift+$mod+p exec ~/.local/bin/powermenu +    Shift+$mod+z exec ~/.local/bin/emoji-menu + +    # Moving around: +      # Move your focus around -    bindsym $mod+$left focus left -    bindsym $mod+$down focus down -    bindsym $mod+$up focus up -    bindsym $mod+$right focus right +    $mod+$left focus left +    $mod+$down focus down +    $mod+$up focus up +    $mod+$right focus right      # Or use $mod+[up|down|left|right] -    bindsym $mod+Left focus left -    bindsym $mod+Down focus down -    bindsym $mod+Up focus up -    bindsym $mod+Right focus right +    $mod+Left focus left +    $mod+Down focus down +    $mod+Up focus up +    $mod+Right focus right      # Move the focused window with the same, but add Shift -    bindsym $mod+Shift+$left move left -    bindsym $mod+Shift+$down move down -    bindsym $mod+Shift+$up move up -    bindsym $mod+Shift+$right move right +    $mod+Shift+$left move left +    $mod+Shift+$down move down +    $mod+Shift+$up move up +    $mod+Shift+$right move right      # Ditto, with arrow keys -    bindsym $mod+Shift+Left move left -    bindsym $mod+Shift+Down move down -    bindsym $mod+Shift+Up move up -    bindsym $mod+Shift+Right move right -# -# Workspaces: -# +    $mod+Shift+Left move left +    $mod+Shift+Down move down +    $mod+Shift+Up move up +    $mod+Shift+Right move right + +    # Workspaces: +      # Switch to workspace -    # bindsym $mod+1 workspace number 1 -    bindsym $mod+1 [workspace="^1$"] move workspace to output current; workspace number 1 -    bindsym $mod+2 [workspace="^2$"] move workspace to output current; workspace number 2 -    bindsym $mod+3 [workspace="^3$"] move workspace to output current; workspace number 3 -    bindsym $mod+4 [workspace="^4$"] move workspace to output current; workspace number 4 -    bindsym $mod+5 [workspace="^5$"] move workspace to output current; workspace number 5 -    bindsym $mod+6 [workspace="^6$"] move workspace to output current; workspace number 6 -    bindsym $mod+7 [workspace="^7$"] move workspace to output current; workspace number 7 -    bindsym $mod+8 [workspace="^8$"] move workspace to output current; workspace number 8 -    bindsym $mod+9 [workspace="^9$"] move workspace to output current; workspace number 9 -    bindsym $mod+0 [workspace="^10$"] move workspace to output current; workspace number 10 -    # bindsym $mod+2 workspace number 2 -    # bindsym $mod+3 workspace number 3 -    # bindsym $mod+4 workspace number 4 -    # bindsym $mod+5 workspace number 5 -    # bindsym $mod+6 workspace number 6 -    # bindsym $mod+7 workspace number 7 -    # bindsym $mod+8 workspace number 8 -    # bindsym $mod+9 workspace number 9 -    # bindsym $mod+0 workspace number 10 +    # $mod+1 workspace number 1 +    # $mod+1 [workspace="^1$"] move workspace to output current; workspace number 1 +    # $mod+2 [workspace="^2$"] move workspace to output current; workspace number 2 +    # $mod+3 [workspace="^3$"] move workspace to output current; workspace number 3 +    # $mod+4 [workspace="^4$"] move workspace to output current; workspace number 4 +    # $mod+5 [workspace="^5$"] move workspace to output current; workspace number 5 +    # $mod+6 [workspace="^6$"] move workspace to output current; workspace number 6 +    # $mod+7 [workspace="^7$"] move workspace to output current; workspace number 7 +    # $mod+8 [workspace="^8$"] move workspace to output current; workspace number 8 +    # $mod+9 [workspace="^9$"] move workspace to output current; workspace number 9 +    # $mod+0 [workspace="^10$"] move workspace to output current; workspace number 10 +    $mod+1 exec sh -c "$HOME/.config/eww/scripts/dispatch.sh 1" +    $mod+2 exec sh -c "$HOME/.config/eww/scripts/dispatch.sh 2" +    $mod+3 exec sh -c "$HOME/.config/eww/scripts/dispatch.sh 3" +    $mod+4 exec sh -c "$HOME/.config/eww/scripts/dispatch.sh 4" +    $mod+5 exec sh -c "$HOME/.config/eww/scripts/dispatch.sh 5" +    $mod+6 exec sh -c "$HOME/.config/eww/scripts/dispatch.sh 6" +    $mod+7 exec sh -c "$HOME/.config/eww/scripts/dispatch.sh 7" +    $mod+8 exec sh -c "$HOME/.config/eww/scripts/dispatch.sh 8" +    $mod+9 exec sh -c "$HOME/.config/eww/scripts/dispatch.sh 9" +    $mod+0 exec sh -c "$HOME/.config/eww/scripts/dispatch.sh 10"      # Move focused container to workspace -    bindsym $mod+Shift+1 move container to workspace number 1 -    bindsym $mod+Shift+2 move container to workspace number 2 -    bindsym $mod+Shift+3 move container to workspace number 3 -    bindsym $mod+Shift+4 move container to workspace number 4 -    bindsym $mod+Shift+5 move container to workspace number 5 -    bindsym $mod+Shift+6 move container to workspace number 6 -    bindsym $mod+Shift+7 move container to workspace number 7 -    bindsym $mod+Shift+8 move container to workspace number 8 -    bindsym $mod+Shift+9 move container to workspace number 9 -    bindsym $mod+Shift+0 move container to workspace number 10 +    $mod+Shift+1 move container to workspace number 1 +    $mod+Shift+2 move container to workspace number 2 +    $mod+Shift+3 move container to workspace number 3 +    $mod+Shift+4 move container to workspace number 4 +    $mod+Shift+5 move container to workspace number 5 +    $mod+Shift+6 move container to workspace number 6 +    $mod+Shift+7 move container to workspace number 7 +    $mod+Shift+8 move container to workspace number 8 +    $mod+Shift+9 move container to workspace number 9 +    $mod+Shift+0 move container to workspace number 10      # Note: workspaces can have any name you want, not just numbers.      # We just use 1-10 as the default. -# Define outputs -    # set $output-primary HDMI-A-1 -    # set $output-secondary eDP-1 - -# workspace to displays -    # workspace 1 output $output-primary -    # workspace 2 output $output-primary -    # workspace 3 output $output-primary -    # workspace 4 output $output-primary -    # workspace 5 output $output-primary -    # -    # workspace 6 output $output-primary -    # workspace 7 output $output-primary -    # workspace 8 output $output-primary -    # workspace 9 output $output-primary -    # workspace 10 output $output-secondary +    # Layout stuff: -# -# Layout stuff: -#      # You can "split" the current object of your focus with      # $mod+b or $mod+v, for horizontal and vertical splits      # respectively. -    bindsym $mod+b splith -    bindsym $mod+v splitv +    $mod+b splith +    $mod+v splitv      # Switch the current container between different layout styles -    bindsym $mod+s layout stacking -    bindsym $mod+w layout tabbed -    bindsym $mod+e layout toggle split +    $mod+s layout stacking +    $mod+w layout tabbed +    $mod+e layout toggle split      # Make the current focus fullscreen -    bindsym $mod+f fullscreen +    $mod+f fullscreen      # Toggle Waybar -    bindsym $mod+x exec killall -SIGUSR1 waybar +    $mod+x exec "~/.config/eww/scripts/bar-toggle.sh"      # Toggle the current focus between tiling and floating mode -    bindsym $mod+Shift+space floating toggle +    $mod+Shift+space floating toggle      # Swap focus between the tiling area and the floating area -    bindsym $mod+space focus mode_toggle +    $mod+space focus mode_toggle      # Move focus to the parent container -    bindsym $mod+a focus parent -# -# Scratchpad: -# +    $mod+a focus parent + +    # Scratchpad:      # Sway has a "scratchpad", which is a bag of holding for windows.      # You can send windows there and get them back later.      # Move the currently focused window to the scratchpad -    bindsym $mod+Shift+minus move scratchpad +    $mod+Shift+minus move scratchpad      # Show the next scratchpad window or hide the focused scratchpad window.      # If there are multiple scratchpad windows, this command cycles through them. -    bindsym $mod+minus scratchpad show -# -# Resizing containers: -# +    $mod+minus scratchpad show + +    # Resizing containers: +    $mod+r mode "resize" + +    # Move workspace to output left or right +    $mod+Control+Right move workspace to output right +    $mod+Control+Left move workspace to output left + +    # Move container to output left or right +    $mod+Control+Shift+Right move container to output right +    $mod+Control+Shift+Left move container to output left +} +  mode "resize" {      # left will shrink the containers width      # right will grow the containers width @@ -293,35 +284,52 @@ mode "resize" {      bindsym Return mode "default"      bindsym Escape mode "default"  } -bindsym $mod+r mode "resize" -# Move workspace to output left or right -bindsym $mod+Control+Right move workspace to output right -bindsym $mod+Control+Left move workspace to output left +# Drag floating windows by holding down $mod and left mouse button. +# Resize them with right mouse button + $mod. +# Despite the name, also works for non-floating windows. +# Change normal to inverse to use left mouse button for resizing and right +# mouse button for dragging. +floating_modifier $mod normal -# Move container to output left or right -bindsym $mod+Control+Shift+Right move container to output right -bindsym $mod+Control+Shift+Left move container to output left +# Define outputs +    # set $output-primary HDMI-A-1 +    # set $output-secondary eDP-1 -# Window rules -for_window [app_id="mpv"] floating enable, resize set width 640 height 360, move position 1200 650, focus +# workspace to displays +    # workspace 1 output $output-primary +    # workspace 2 output $output-primary +    # workspace 3 output $output-primary +    # workspace 4 output $output-primary +    # workspace 5 output $output-primary +    # +    # workspace 6 output $output-primary +    # workspace 7 output $output-primary +    # workspace 8 output $output-primary +    # workspace 9 output $output-primary +    # workspace 10 output $output-secondary  focus_on_window_activation focus -# Assign applications to specific workspaces -for_window [app_id="kitty"] move window to workspace 2, focus -for_window [class="Spotify"] move window to workspace 6, focus -for_window [app_id="gimp-*"] move window to workspace 5, focus -for_window [app_id="newsboat"] move window to workspace 8, focus -for_window [app_id="nvim"] move window to workspace 3, focus -for_window [app_id="weechat"] move window to workspace 4, focus +# Window rules +for_window { +    [app_id="mpv"] floating enable, resize set width 640 height 360, move position 1200 650, focus + +    # Assign applications to specific workspaces +    [app_id="kitty"] move window to workspace 2, focus +    [class="Spotify"] move window to workspace 6, focus +    [app_id="gimp-*"] move window to workspace 5, focus +    [app_id="newsboat"] move window to workspace 8, focus +    [app_id="nvim"] move window to workspace 3, focus +    [app_id="weechat"] move window to workspace 4, focus +}  #  # Status Bar:  #  # Read `man 5 sway-bar` for more information about this section.  bar { -    swaybar_command waybar +    # swaybar_command waybar  }  include /etc/sway/config.d/*  | 
