diff options
| author | jason | 2021-07-07 09:30:23 -0600 |
|---|---|---|
| committer | jason | 2021-07-07 09:30:23 -0600 |
| commit | b1fbab2e4e3e89cd0d2083c70e18b6cb95d5d788 (patch) | |
| tree | 73998b4df906bc541a2639e8dcf9ab22b7d93fae | |
| parent | 5ffa2945a5287d69c74938781257a246d50d777d (diff) | |
| download | dotfiles-b1fbab2e4e3e89cd0d2083c70e18b6cb95d5d788.tar.gz dotfiles-b1fbab2e4e3e89cd0d2083c70e18b6cb95d5d788.zip | |
add configs for running sway
| -rw-r--r-- | sway/.config/kanshi/config | 12 | ||||
| -rw-r--r-- | sway/.config/mako/config | 4 | ||||
| -rw-r--r-- | sway/.config/sway/config | 283 | ||||
| -rw-r--r-- | sway/.config/sway/scripts/statusbar.sh | 33 | ||||
| -rw-r--r-- | sway/.config/sway/scripts/volume_down.sh | 8 | ||||
| -rw-r--r-- | sway/.config/sway/scripts/volume_up.sh | 8 | ||||
| -rw-r--r-- | sway/.config/sway/scripts/wobwrapper.sh | 26 | ||||
| -rw-r--r-- | sway/.config/waybar/config | 154 | ||||
| -rw-r--r-- | sway/.config/waybar/style.css | 69 | ||||
| -rw-r--r-- | sway/.config/wofi/config | 11 | ||||
| -rw-r--r-- | sway/.config/wofi/style.css | 27 |
11 files changed, 635 insertions, 0 deletions
diff --git a/sway/.config/kanshi/config b/sway/.config/kanshi/config new file mode 100644 index 0000000..c4b98fa --- /dev/null +++ b/sway/.config/kanshi/config | |||
| @@ -0,0 +1,12 @@ | |||
| 1 | profile { | ||
| 2 | output "Lenovo Group Limited Q24i-10 0x00000101" mode 1920x1080 position 0,0 | ||
| 3 | output eDP-1 mode 1920x1080 position 0,1080 | ||
| 4 | } | ||
| 5 | |||
| 6 | |||
| 7 | # fieldeye slc wework | ||
| 8 | profile { | ||
| 9 | output "Dell Inc. DELL U2718Q 4K8X78C903LL" scale 2 mode 3840x2160 position 0,0 | ||
| 10 | output eDP-1 mode 1920x1080 position 0,1080 | ||
| 11 | } | ||
| 12 | |||
diff --git a/sway/.config/mako/config b/sway/.config/mako/config new file mode 100644 index 0000000..5e290a0 --- /dev/null +++ b/sway/.config/mako/config | |||
| @@ -0,0 +1,4 @@ | |||
| 1 | default-timeout=3000 | ||
| 2 | |||
| 3 | [app-name=Keybase] | ||
| 4 | max-visible=0 | ||
diff --git a/sway/.config/sway/config b/sway/.config/sway/config new file mode 100644 index 0000000..8cd1340 --- /dev/null +++ b/sway/.config/sway/config | |||
| @@ -0,0 +1,283 @@ | |||
| 1 | # Default config for sway | ||
| 2 | # | ||
| 3 | # Copy this to ~/.config/sway/config and edit it to your liking. | ||
| 4 | # | ||
| 5 | # Read `man 5 sway` for a complete reference. | ||
| 6 | |||
| 7 | ### Variables | ||
| 8 | # | ||
| 9 | # Logo key. Use Mod1 for Alt. | ||
| 10 | set $mod Mod4 | ||
| 11 | set $alt Mod1 | ||
| 12 | |||
| 13 | # Home row direction keys, like vim | ||
| 14 | set $left h | ||
| 15 | set $down j | ||
| 16 | set $up k | ||
| 17 | set $right l | ||
| 18 | # Your preferred terminal emulator | ||
| 19 | set $term alacritty | ||
| 20 | # Your preferred application launcher | ||
| 21 | # Note: pass the final command to swaymsg so that the resulting window can be opened | ||
| 22 | # on the original workspace that the command was run on. | ||
| 23 | # set $menu dmenu_path | dmenu | xargs swaymsg exec -- | ||
| 24 | |||
| 25 | # set $menu wofi | ||
| 26 | #set $menu dmenu_run | xargs swaymsg exec -- | ||
| 27 | |||
| 28 | set $menu exec $term --class=launcher -e bash -c 'compgen -c | grep -v fzf | sort -u | fzf --layout=reverse | xargs -r swaymsg -t command exec' | ||
| 29 | for_window [app_id="^launcher$"] floating enable, border none, opacity 0.8 | ||
| 30 | |||
| 31 | ### Output configuration | ||
| 32 | # | ||
| 33 | # Default wallpaper (more resolutions are available in @datadir@/backgrounds/sway/) | ||
| 34 | # output * bg @datadir@/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill | ||
| 35 | # | ||
| 36 | # Example configuration: | ||
| 37 | # | ||
| 38 | # output HDMI-A-1 resolution 1920x1080 position 1920,0 | ||
| 39 | # | ||
| 40 | # You can get the names of your outputs by running: swaymsg -t get_outputs | ||
| 41 | # output eDP-1 pos 0 0 res 3840x2160 | ||
| 42 | # output eDP-1 scale 2 | ||
| 43 | # output DP-2 pos 0 1080 res 3840x1100 | ||
| 44 | # output DP-2 scale 2 | ||
| 45 | |||
| 46 | # move windows across outputs outputs | ||
| 47 | bindsym $mod+x move workspace to output right | ||
| 48 | bindsym $mod+u move workspace to output up | ||
| 49 | |||
| 50 | |||
| 51 | xwayland enable | ||
| 52 | |||
| 53 | ### Idle configuration | ||
| 54 | # This will lock your screen after 300 seconds of inactivity, then turn off | ||
| 55 | # your displays after another 300 seconds, and turn your screens back on when | ||
| 56 | # resumed. It will also lock your screen before your computer goes to sleep. | ||
| 57 | |||
| 58 | exec swayidle -w \ | ||
| 59 | timeout 300 'swaylock -f -c 000000' \ | ||
| 60 | timeout 600 'swaymsg "output * dpms off"' \ | ||
| 61 | resume 'swaymsg "output * dpms on"' \ | ||
| 62 | before-sleep 'swaylock -f -c 000000' | ||
| 63 | # Inhibit Idle if a window is fullscreen | ||
| 64 | for_window [class="^.*"] inhibit_idle fullscreen for_window [app_id="^.*"] inhibit_idle fullscreen | ||
| 65 | |||
| 66 | ### Input configuration | ||
| 67 | # | ||
| 68 | # Example configuration: | ||
| 69 | # | ||
| 70 | # input "2:14:SynPS/2_Synaptics_TouchPad" { | ||
| 71 | # dwt enabled | ||
| 72 | # tap enabled | ||
| 73 | # natural_scroll enabled | ||
| 74 | # middle_emulation enabled | ||
| 75 | # } | ||
| 76 | # | ||
| 77 | # You can get the names of your inputs by running: swaymsg -t get_inputs | ||
| 78 | # Read `man 5 sway-input` for more information about this section. | ||
| 79 | input type:keyboard { | ||
| 80 | xkb_options ctrl:nocaps | ||
| 81 | } | ||
| 82 | ### Key bindings | ||
| 83 | # | ||
| 84 | # Basics: | ||
| 85 | # | ||
| 86 | # Start a terminal | ||
| 87 | bindsym $mod+Return exec $term | ||
| 88 | |||
| 89 | # Kill focused window | ||
| 90 | bindsym $mod+Shift+q kill | ||
| 91 | |||
| 92 | # Start your launcher | ||
| 93 | bindsym $mod+d exec $menu | ||
| 94 | |||
| 95 | # Drag floating windows by holding down $mod and left mouse button. | ||
| 96 | # Resize them with right mouse button + $mod. | ||
| 97 | # Despite the name, also works for non-floating windows. | ||
| 98 | # Change normal to inverse to use left mouse button for resizing and right | ||
| 99 | # mouse button for dragging. | ||
| 100 | floating_modifier $mod normal | ||
| 101 | |||
| 102 | # Reload the configuration file | ||
| 103 | # bindsym $mod+Shift+c reload # I think this causes sway to run out of IPC fds | ||
| 104 | #bindsym $mod+Shift+r restart | ||
| 105 | |||
| 106 | # Exit sway (logs you out of your Wayland session) | ||
| 107 | bindsym $mod+Shift+e exec swaynag -t warning -m 'Do you really want to exit sway?' -b 'Yes, exit sway' 'swaymsg exit' | ||
| 108 | |||
| 109 | # Screenshot a region | ||
| 110 | bindsym $alt+Shift+4 exec grim -g "$(slurp)" - | wl-copy | ||
| 111 | |||
| 112 | # Volume Control | ||
| 113 | bindsym XF86AudioLowerVolume exec ~/.config/sway/scripts/volume_down.sh | ||
| 114 | bindsym XF86AudioRaiseVolume exec ~/.config/sway/scripts/volume_up.sh | ||
| 115 | bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle && pactl list sinks | grep '^[[:space:]]Volume:' | head -n $(( $( pactl list short sinks | sed -e 's,^\([0-9][0-9]*\)[^0-9].*,\1,' | head -n 1 ) + 1 )) | tail -n 1 | sed -e 's,.* \([0-9][0-9]*\)%.*,\1,' > $SWAYSOCK.wob | ||
| 116 | # | ||
| 117 | # Moving around: | ||
| 118 | # | ||
| 119 | # Move your focus around | ||
| 120 | bindsym $mod+$left focus left | ||
| 121 | bindsym $mod+$down focus down | ||
| 122 | bindsym $mod+$up focus up | ||
| 123 | bindsym $mod+$right focus right | ||
| 124 | # Or use $mod+[up|down|left|right] | ||
| 125 | bindsym $mod+Left focus left | ||
| 126 | bindsym $mod+Down focus down | ||
| 127 | bindsym $mod+Up focus up | ||
| 128 | bindsym $mod+Right focus right | ||
| 129 | |||
| 130 | # Move the focused window with the same, but add Shift | ||
| 131 | bindsym $mod+Shift+$left move left | ||
| 132 | bindsym $mod+Shift+$down move down | ||
| 133 | bindsym $mod+Shift+$up move up | ||
| 134 | bindsym $mod+Shift+$right move right | ||
| 135 | # Ditto, with arrow keys | ||
| 136 | bindsym $mod+Shift+Left move left | ||
| 137 | bindsym $mod+Shift+Down move down | ||
| 138 | bindsym $mod+Shift+Up move up | ||
| 139 | bindsym $mod+Shift+Right move right | ||
| 140 | # | ||
| 141 | # Workspaces: | ||
| 142 | # | ||
| 143 | # Switch to workspace | ||
| 144 | bindsym $mod+1 workspace 1 | ||
| 145 | bindsym $mod+2 workspace 2 | ||
| 146 | bindsym $mod+3 workspace 3 | ||
| 147 | bindsym $mod+4 workspace 4 | ||
| 148 | bindsym $mod+5 workspace 5 | ||
| 149 | bindsym $mod+6 workspace 6 | ||
| 150 | bindsym $mod+7 workspace 7 | ||
| 151 | bindsym $mod+8 workspace 8 | ||
| 152 | bindsym $mod+9 workspace 9 | ||
| 153 | bindsym $mod+0 workspace 10 | ||
| 154 | # Move focused container to workspace | ||
| 155 | bindsym $mod+Shift+1 move container to workspace 1 | ||
| 156 | bindsym $mod+Shift+2 move container to workspace 2 | ||
| 157 | bindsym $mod+Shift+3 move container to workspace 3 | ||
| 158 | bindsym $mod+Shift+4 move container to workspace 4 | ||
| 159 | bindsym $mod+Shift+5 move container to workspace 5 | ||
| 160 | bindsym $mod+Shift+6 move container to workspace 6 | ||
| 161 | bindsym $mod+Shift+7 move container to workspace 7 | ||
| 162 | bindsym $mod+Shift+8 move container to workspace 8 | ||
| 163 | bindsym $mod+Shift+9 move container to workspace 9 | ||
| 164 | bindsym $mod+Shift+0 move container to workspace 10 | ||
| 165 | # Note: workspaces can have any name you want, not just numbers. | ||
| 166 | # We just use 1-10 as the default. | ||
| 167 | |||
| 168 | # | ||
| 169 | # Layout stuff: | ||
| 170 | # | ||
| 171 | # You can "split" the current object of your focus with | ||
| 172 | # $mod+b or $mod+v, for horizontal and vertical splits | ||
| 173 | # respectively. | ||
| 174 | bindsym $mod+b splith | ||
| 175 | bindsym $mod+v splitv | ||
| 176 | |||
| 177 | # Switch the current container between different layout styles | ||
| 178 | bindsym $mod+s layout stacking | ||
| 179 | bindsym $mod+w layout tabbed | ||
| 180 | bindsym $mod+e layout toggle split | ||
| 181 | |||
| 182 | # Make the current focus fullscreen | ||
| 183 | bindsym $mod+f fullscreen | ||
| 184 | |||
| 185 | # Toggle the current focus between tiling and floating mode | ||
| 186 | bindsym $mod+Shift+space floating toggle | ||
| 187 | |||
| 188 | # Swap focus between the tiling area and the floating area | ||
| 189 | bindsym $mod+space focus mode_toggle | ||
| 190 | |||
| 191 | # Move focus to the parent container | ||
| 192 | bindsym $mod+a focus parent | ||
| 193 | # | ||
| 194 | # Scratchpad: | ||
| 195 | # | ||
| 196 | # Sway has a "scratchpad", which is a bag of holding for windows. | ||
| 197 | # You can send windows there and get them back later. | ||
| 198 | |||
| 199 | # Move the currently focused window to the scratchpad | ||
| 200 | bindsym $mod+Shift+minus move scratchpad | ||
| 201 | |||
| 202 | # Show the next scratchpad window or hide the focused scratchpad window. | ||
| 203 | # If there are multiple scratchpad windows, this command cycles through them. | ||
| 204 | bindsym $mod+minus scratchpad show | ||
| 205 | # | ||
| 206 | # Resizing containers: | ||
| 207 | # | ||
| 208 | mode "resize" { | ||
| 209 | # left will shrink the containers width | ||
| 210 | # right will grow the containers width | ||
| 211 | # up will shrink the containers height | ||
| 212 | # down will grow the containers height | ||
| 213 | bindsym $left resize shrink width 10px | ||
| 214 | bindsym $down resize grow height 10px | ||
| 215 | bindsym $up resize shrink height 10px | ||
| 216 | bindsym $right resize grow width 10px | ||
| 217 | |||
| 218 | # Ditto, with arrow keys | ||
| 219 | bindsym Left resize shrink width 10px | ||
| 220 | bindsym Down resize grow height 10px | ||
| 221 | bindsym Up resize shrink height 10px | ||
| 222 | bindsym Right resize grow width 10px | ||
| 223 | |||
| 224 | # Return to default mode | ||
| 225 | bindsym Return mode "default" | ||
| 226 | bindsym Escape mode "default" | ||
| 227 | } | ||
| 228 | bindsym $mod+r mode "resize" | ||
| 229 | |||
| 230 | # | ||
| 231 | # Status Bar: | ||
| 232 | # | ||
| 233 | # Read `man 5 sway-bar` for more information about this section. | ||
| 234 | bar { | ||
| 235 | position bottom | ||
| 236 | |||
| 237 | # When the status_command prints a new line to stdout, swaybar updates. | ||
| 238 | # The default just shows the current date and time. | ||
| 239 | # status_command while ~/.config/sway/scripts/statusbar.sh; do sleep 10; done | ||
| 240 | # colors { | ||
| 241 | # statusline #ffffff | ||
| 242 | # background #323232 | ||
| 243 | # inactive_workspace #32323200 #32323200 #5c5c5c | ||
| 244 | # } | ||
| 245 | swaybar_command waybar | ||
| 246 | } | ||
| 247 | |||
| 248 | # | ||
| 249 | # App Configuration: | ||
| 250 | # | ||
| 251 | # Float the Intellij splash screen | ||
| 252 | for_window [class="jetbrains-idea" title="win0"] floating enable; | ||
| 253 | # for_window [class="^jetbrains-.+"][window_type=dialog] focus | ||
| 254 | for_window [class="^jetbrains-idea"][window_type="floating_con"] focus | ||
| 255 | for_window [instance="sun-awt-X11-XWindowPeer"] border pixel 0 | ||
| 256 | |||
| 257 | # Fix the cursor theme in Firefox | ||
| 258 | exec_always gsettings set org.gnome.desktop.interface cursor-theme "Pop" | ||
| 259 | # Fix the giant mic sharing indicator by making it small and sticky until | ||
| 260 | # it's fixed in firefox | ||
| 261 | for_window [title="\ -\ Sharing\ Indicator$"] floating enable, sticky enable | ||
| 262 | |||
| 263 | # Fix issue with GPG pinentry | ||
| 264 | #exec_always dbus-update-activation-environment DISPLAY XAUTHORITY | ||
| 265 | # Fix slow loading GTK+ apps, waybar, and GPG pinentry | ||
| 266 | exec systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK | ||
| 267 | exec hash dbus-update-activation-environment 2>/dev/null && \ | ||
| 268 | dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK XAUTHORITY | ||
| 269 | |||
| 270 | exec nm-applet | ||
| 271 | exec blueman-applet | ||
| 272 | #exec run_keybase -a | ||
| 273 | exec sleep 1 && keepassxc | ||
| 274 | #exec pasystray | ||
| 275 | exec mako # notifications | ||
| 276 | exec kanshi # autorandr | ||
| 277 | # Clipboard manager with wofi | ||
| 278 | # Broken until wlroots 0.13.0 (libwlroots8) | ||
| 279 | # https://github.com/swaywm/wlroots/pull/2739/files | ||
| 280 | exec wl-paste -t text --watch clipman store | ||
| 281 | bindsym $alt+Ctrl+v exec clipman pick -t wofi | ||
| 282 | |||
| 283 | include @sysconfdir@/sway/config.d/* | ||
diff --git a/sway/.config/sway/scripts/statusbar.sh b/sway/.config/sway/scripts/statusbar.sh new file mode 100644 index 0000000..de582f7 --- /dev/null +++ b/sway/.config/sway/scripts/statusbar.sh | |||
| @@ -0,0 +1,33 @@ | |||
| 1 | #!/usr/bin/env bash | ||
| 2 | |||
| 3 | # Date and time | ||
| 4 | DATE_LOCAL=$(date "+%Y-%m-%d (w%-V) %H:%M:%S %Z") | ||
| 5 | DATE_UTC=$(date -u "+%Y-%m-%d %H:%M:%S %Z") | ||
| 6 | |||
| 7 | # Battery status | ||
| 8 | # You can get the battery from this command (or even embed it): upower --enumerate | grep BAT | ||
| 9 | BATTERY_DEV=/sys/class/power_supply/BAT0 | ||
| 10 | BATTERY_STATUS=$(cat $BATTERY_DEV/status) | ||
| 11 | BATTERY_ENERGY_NOW=$(cat $BATTERY_DEV/energy_now) | ||
| 12 | BATTERY_ENERGY_TOTAL=$(cat $BATTERY_DEV/energy_full_design) | ||
| 13 | |||
| 14 | BATTERY_PCT=$(echo "scale=4; ${BATTERY_ENERGY_NOW}/${BATTERY_ENERGY_TOTAL}*100" | bc -l) | ||
| 15 | BATTERY_PCT=$(printf "%.2f%%" $BATTERY_PCT) | ||
| 16 | |||
| 17 | # IFS= | ||
| 18 | # BATTERY_INFO=$(upower --show-info /org/freedesktop/UPower/devices/battery_BAT0 | grep -E "icon-name|percentage|state|time\ to|native-path") | ||
| 19 | |||
| 20 | # echo -e $BATTERY_INFO > debug.log | ||
| 21 | |||
| 22 | # BATTERY_STATE=$(echo -e $BATTERY_INFO | grep state |awk -F ':' '{print $2}' | awk '{$1=$1};1') | ||
| 23 | # BATTERY_TIME=$(echo $BATTERY_INFO | grep 'time to' | awk -F ':' '{print $2}' | awk '{$1=$1};1') | ||
| 24 | # BATTERY_PCT=$(echo $BATTERY_INFO| grep percentage | awk -F ':' '{print $2}' | awk '{$1=$1};1') | ||
| 25 | |||
| 26 | if [[ ${BATTERY_STATUS} == "Charging" ]]; then | ||
| 27 | BATTERY_STATE="⚡" | ||
| 28 | elif [[ ${BATTERY_STATUS} == "Discharging" ]]; then | ||
| 29 | BATTERY_STATE="🔋" | ||
| 30 | else | ||
| 31 | BATTERY_STATE="🔌" | ||
| 32 | fi | ||
| 33 | echo "${BATTERY_STATE}${BATTERY_PCT} | $DATE_UTC | $DATE_LOCAL " | ||
diff --git a/sway/.config/sway/scripts/volume_down.sh b/sway/.config/sway/scripts/volume_down.sh new file mode 100644 index 0000000..919e997 --- /dev/null +++ b/sway/.config/sway/scripts/volume_down.sh | |||
| @@ -0,0 +1,8 @@ | |||
| 1 | #!/usr/bin/env bash | ||
| 2 | SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" | ||
| 3 | pactl set-sink-volume @DEFAULT_SINK@ -2% | ||
| 4 | SINK=$( pactl list short sinks | sed -e 's,^\([0-9][0-9]*\)[^0-9].*,\1,' | head -n 1 ) | ||
| 5 | VOLUME=$( pactl list sinks | grep '^[[:space:]]Volume:' | head -n $(( $SINK + 1 )) | tail -n 1 | sed -e 's,.* \([0-9][0-9]*\)%.*,\1,' ) | ||
| 6 | |||
| 7 | [[ $VOLUME -lt 0 ]] && VOLUME=0 | ||
| 8 | exec ${SCRIPT_DIR}/wobwrapper.sh ${VOLUME} | ||
diff --git a/sway/.config/sway/scripts/volume_up.sh b/sway/.config/sway/scripts/volume_up.sh new file mode 100644 index 0000000..6fa3c27 --- /dev/null +++ b/sway/.config/sway/scripts/volume_up.sh | |||
| @@ -0,0 +1,8 @@ | |||
| 1 | #!/usr/bin/env bash | ||
| 2 | SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" | ||
| 3 | pactl set-sink-volume @DEFAULT_SINK@ +2% | ||
| 4 | SINK=$( pactl list short sinks | sed -e 's,^\([0-9][0-9]*\)[^0-9].*,\1,' | head -n 1 ) | ||
| 5 | VOLUME=$( pactl list sinks | grep '^[[:space:]]Volume:' | head -n $(( $SINK + 1 )) | tail -n 1 | sed -e 's,.* \([0-9][0-9]*\)%.*,\1,' ) | ||
| 6 | |||
| 7 | [[ $VOLUME -gt 100 ]] && VOLUME=100 | ||
| 8 | exec ${SCRIPT_DIR}/wobwrapper.sh ${VOLUME} | ||
diff --git a/sway/.config/sway/scripts/wobwrapper.sh b/sway/.config/sway/scripts/wobwrapper.sh new file mode 100644 index 0000000..464f819 --- /dev/null +++ b/sway/.config/sway/scripts/wobwrapper.sh | |||
| @@ -0,0 +1,26 @@ | |||
| 1 | #!/usr/bin/env bash | ||
| 2 | |||
| 3 | # returns 0 (success) if $1 is running and is attached to this sway session; else 1 | ||
| 4 | is_running_on_this_screen() { | ||
| 5 | pkill -0 $1 || return 1 | ||
| 6 | for pid in $( pgrep $1 ); do | ||
| 7 | WOB_SWAYSOCK="$( tr '\0' '\n' < /proc/$pid/environ | awk -F'=' '/^SWAYSOCK/ {print $2}' )" | ||
| 8 | if [[ "$WOB_SWAYSOCK" == "$SWAYSOCK" ]]; then | ||
| 9 | return 0 | ||
| 10 | fi | ||
| 11 | done | ||
| 12 | return 1 | ||
| 13 | } | ||
| 14 | |||
| 15 | new_value=$1 # null or a percent; no checking!! | ||
| 16 | |||
| 17 | wob_pipe=~/.cache/$( basename $SWAYSOCK ).wob | ||
| 18 | |||
| 19 | [[ -p $wob_pipe ]] || mkfifo $wob_pipe | ||
| 20 | |||
| 21 | # wob does not appear in $(swaymsg -t get_msg), so: | ||
| 22 | is_running_on_this_screen wob || { | ||
| 23 | tail -f $wob_pipe | wob & | ||
| 24 | } | ||
| 25 | |||
| 26 | [[ "$new_value" ]] && echo $new_value > $wob_pipe | ||
diff --git a/sway/.config/waybar/config b/sway/.config/waybar/config new file mode 100644 index 0000000..d541cfa --- /dev/null +++ b/sway/.config/waybar/config | |||
| @@ -0,0 +1,154 @@ | |||
| 1 | { | ||
| 2 | "layer": "top", // Waybar at top layer | ||
| 3 | "position": "bottom", // Waybar position (top|bottom|left|right) | ||
| 4 | "height": 25, // Waybar height (to be removed for auto height) | ||
| 5 | // "width": 1280, // Waybar width | ||
| 6 | // Choose the order of the modules | ||
| 7 | "modules-left": ["sway/workspaces"], | ||
| 8 | //"modules-center": ["sway/window"], | ||
| 9 | "modules-center": ["mpd"], | ||
| 10 | "modules-right": ["pulseaudio", "battery", "idle_inhibitor", "tray", "clock"], | ||
| 11 | // "modules-right": ["mpd", "idle_inhibitor", "pulseaudio", "cpu", "memory", "temperature", "battery", "backlight", "clock", "tray"], | ||
| 12 | // Modules configuration | ||
| 13 | "sway/workspaces": { | ||
| 14 | "disable-scroll": true, | ||
| 15 | "all-outputs": false, | ||
| 16 | "format": "{name}: {icon}", | ||
| 17 | "format-icons": { | ||
| 18 | "1": "", | ||
| 19 | "2": "", | ||
| 20 | "7": "", | ||
| 21 | "10": "", | ||
| 22 | "urgent": "", | ||
| 23 | "focused": "", | ||
| 24 | "default": "" | ||
| 25 | } | ||
| 26 | }, | ||
| 27 | "sway/mode": { | ||
| 28 | "format": "<span style=\"italic\">{}</span>" | ||
| 29 | }, | ||
| 30 | "mpd": { | ||
| 31 | "format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ", | ||
| 32 | "format-disconnected": "Disconnected ", | ||
| 33 | "format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ", | ||
| 34 | "unknown-tag": "N/A", | ||
| 35 | "interval": 2, | ||
| 36 | "consume-icons": { | ||
| 37 | "on": " " | ||
| 38 | }, | ||
| 39 | "random-icons": { | ||
| 40 | "off": "<span color=\"#f53c3c\"></span> ", | ||
| 41 | "on": " " | ||
| 42 | }, | ||
| 43 | "repeat-icons": { | ||
| 44 | "on": " " | ||
| 45 | }, | ||
| 46 | "single-icons": { | ||
| 47 | "on": "1 " | ||
| 48 | }, | ||
| 49 | "state-icons": { | ||
| 50 | "paused": "", | ||
| 51 | "playing": "" | ||
| 52 | }, | ||
| 53 | "tooltip-format": "MPD (connected)", | ||
| 54 | "tooltip-format-disconnected": "MPD (disconnected)" | ||
| 55 | }, | ||
| 56 | "idle_inhibitor": { | ||
| 57 | "format": "{icon}", | ||
| 58 | "format-icons": { | ||
| 59 | "activated": "", | ||
| 60 | "deactivated": "" | ||
| 61 | } | ||
| 62 | }, | ||
| 63 | "tray": { | ||
| 64 | "icon-size": 21, | ||
| 65 | "spacing": 10 | ||
| 66 | }, | ||
| 67 | //"custom/clock": { | ||
| 68 | // "exec": "date +'%a, %b %d %H:%M:%S %Z'", | ||
| 69 | // "interval": 10 | ||
| 70 | //}, | ||
| 71 | "clock": { | ||
| 72 | "interval": 60, | ||
| 73 | "format": "{:%a, %b %d %H:%M %Z}", | ||
| 74 | "max-length": 25 | ||
| 75 | }, | ||
| 76 | "cpu": { | ||
| 77 | "format": "{usage}% ", | ||
| 78 | "tooltip": false | ||
| 79 | }, | ||
| 80 | "memory": { | ||
| 81 | "format": "{}% " | ||
| 82 | }, | ||
| 83 | "temperature": { | ||
| 84 | // "thermal-zone": 2, | ||
| 85 | // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input", | ||
| 86 | "critical-threshold": 80, | ||
| 87 | // "format-critical": "{temperatureC}°C {icon}", | ||
| 88 | "format": "{temperatureC}°C {icon}", | ||
| 89 | "format-icons": ["", "", ""] | ||
| 90 | }, | ||
| 91 | "backlight": { | ||
| 92 | // "device": "acpi_video1", | ||
| 93 | "format": "{percent}% {icon}", | ||
| 94 | "format-icons": ["", ""] | ||
| 95 | }, | ||
| 96 | "battery": { | ||
| 97 | "bat": "BAT0", | ||
| 98 | //"adapter": "AC", | ||
| 99 | "states": { | ||
| 100 | // "good": 95, | ||
| 101 | "warning": 30, | ||
| 102 | "critical": 15 | ||
| 103 | }, | ||
| 104 | "format": "{capacity}% {icon}", | ||
| 105 | "format-charging": "{capacity}% ", | ||
| 106 | "format-plugged": "{capacity}% ", | ||
| 107 | "format-alt": "{time} {icon}", | ||
| 108 | // "format-good": "", // An empty format will hide the module | ||
| 109 | // "format-full": "", | ||
| 110 | "format-icons": ["", "", "", "", ""] | ||
| 111 | }, | ||
| 112 | "battery#bat2": { | ||
| 113 | "bat": "BAT2" | ||
| 114 | }, | ||
| 115 | "network": { | ||
| 116 | // "interface": "wlp2*", // (Optional) To force the use of this interface | ||
| 117 | "format-wifi": "{essid} ({signalStrength}%) ", | ||
| 118 | "format-ethernet": "{ifname}: {ipaddr}/{cidr} ", | ||
| 119 | "format-linked": "{ifname} (No IP) ", | ||
| 120 | "format-disconnected": "Disconnected ⚠", | ||
| 121 | "format-alt": "{ifname}: {ipaddr}/{cidr}" | ||
| 122 | }, | ||
| 123 | "pulseaudio": { | ||
| 124 | // "scroll-step": 1, // %, can be a float | ||
| 125 | "format": "{volume}% {icon} {format_source}", | ||
| 126 | "format-bluetooth": "{volume}% {icon} {format_source}", | ||
| 127 | "format-bluetooth-muted": " {icon} {format_source}", | ||
| 128 | "format-muted": " {format_source}", | ||
| 129 | "format-source": "{volume}% ", | ||
| 130 | "format-source-muted": "", | ||
| 131 | "format-icons": { | ||
| 132 | "headphone": "", | ||
| 133 | "hands-free": "", | ||
| 134 | "headset": "", | ||
| 135 | "phone": "", | ||
| 136 | "portable": "", | ||
| 137 | "car": "", | ||
| 138 | "default": ["", "", ""] | ||
| 139 | }, | ||
| 140 | "on-click": "pavucontrol" | ||
| 141 | }, | ||
| 142 | "custom/media": { | ||
| 143 | "format": "{icon} {}", | ||
| 144 | "return-type": "json", | ||
| 145 | "max-length": 40, | ||
| 146 | "format-icons": { | ||
| 147 | "spotify": "", | ||
| 148 | "default": "🎜" | ||
| 149 | }, | ||
| 150 | "escape": true, | ||
| 151 | "exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder | ||
| 152 | // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name | ||
| 153 | } | ||
| 154 | } | ||
diff --git a/sway/.config/waybar/style.css b/sway/.config/waybar/style.css new file mode 100644 index 0000000..b76297f --- /dev/null +++ b/sway/.config/waybar/style.css | |||
| @@ -0,0 +1,69 @@ | |||
| 1 | * { | ||
| 2 | border: none; | ||
| 3 | border-radius: 0; | ||
| 4 | font-family: "Noto Sans Mono", "Font Awesome 5 Free", "Font Awesome 5 Brands"; | ||
| 5 | font-size: 14px; | ||
| 6 | min-height: 0; | ||
| 7 | } | ||
| 8 | |||
| 9 | window#waybar { | ||
| 10 | background: rgba(43, 48, 59, 0.5); | ||
| 11 | border-bottom: 3px solid rgba(100, 114, 125, 0.5); | ||
| 12 | color: white; | ||
| 13 | } | ||
| 14 | |||
| 15 | #workspaces button { | ||
| 16 | padding: 0 5px; | ||
| 17 | background: transparent; | ||
| 18 | color: white; | ||
| 19 | border-bottom: 3px solid transparent; | ||
| 20 | } | ||
| 21 | |||
| 22 | #workspaces button.focused { | ||
| 23 | background: #64727D; | ||
| 24 | border-bottom: 3px solid white; | ||
| 25 | } | ||
| 26 | |||
| 27 | #mode, #clock, #custom-clock, #battery { | ||
| 28 | padding: 0 10px; | ||
| 29 | margin: 0 5px; | ||
| 30 | } | ||
| 31 | #network, #pulseaudio, #backlight, #temperature, #memory, #cpu, #idle_inhibitor { | ||
| 32 | padding: 0 7px; | ||
| 33 | } | ||
| 34 | |||
| 35 | #mode { | ||
| 36 | background: #64727D; | ||
| 37 | border-bottom: 3px solid white; | ||
| 38 | } | ||
| 39 | |||
| 40 | #custom-clock, #clock { | ||
| 41 | background-color: #64727D; | ||
| 42 | } | ||
| 43 | |||
| 44 | /*#battery { | ||
| 45 | background-color: #ffffff; | ||
| 46 | color: black; | ||
| 47 | }*/ | ||
| 48 | |||
| 49 | #battery.charging { | ||
| 50 | color: white; | ||
| 51 | background-color: #26A65B; | ||
| 52 | } | ||
| 53 | |||
| 54 | @keyframes blink { | ||
| 55 | to { | ||
| 56 | background-color: #ffffff; | ||
| 57 | color: black; | ||
| 58 | } | ||
| 59 | } | ||
| 60 | |||
| 61 | #battery.warning:not(.charging) { | ||
| 62 | background: #f53c3c; | ||
| 63 | color: white; | ||
| 64 | animation-name: blink; | ||
| 65 | animation-duration: 0.5s; | ||
| 66 | animation-timing-function: linear; | ||
| 67 | animation-iteration-count: infinite; | ||
| 68 | animation-direction: alternate; | ||
| 69 | } | ||
diff --git a/sway/.config/wofi/config b/sway/.config/wofi/config new file mode 100644 index 0000000..e6ce892 --- /dev/null +++ b/sway/.config/wofi/config | |||
| @@ -0,0 +1,11 @@ | |||
| 1 | width=600 | ||
| 2 | height=400 | ||
| 3 | mode=run | ||
| 4 | colors=colors | ||
| 5 | filter_rate=100 | ||
| 6 | allow_markup=true | ||
| 7 | no_actions=true | ||
| 8 | halign=fill | ||
| 9 | orientation=vertical | ||
| 10 | content_halign=fill | ||
| 11 | term=alacritty | ||
diff --git a/sway/.config/wofi/style.css b/sway/.config/wofi/style.css new file mode 100644 index 0000000..02736b6 --- /dev/null +++ b/sway/.config/wofi/style.css | |||
| @@ -0,0 +1,27 @@ | |||
| 1 | window { | ||
| 2 | margin: 5px; | ||
| 3 | background-color: rgba(0,0,0,0); | ||
| 4 | } | ||
| 5 | |||
| 6 | #input { | ||
| 7 | margin: 5px; | ||
| 8 | } | ||
| 9 | |||
| 10 | #inner-box { | ||
| 11 | border-radius: 3px 3px 3px 3px; | ||
| 12 | background-color: #303030; | ||
| 13 | border: 1px solid #404040; | ||
| 14 | } | ||
| 15 | |||
| 16 | #outer-box { | ||
| 17 | margin: 5px; | ||
| 18 | } | ||
| 19 | |||
| 20 | #scroll { | ||
| 21 | margin: 5px; | ||
| 22 | } | ||
| 23 | |||
| 24 | #text { | ||
| 25 | margin: 5px; | ||
| 26 | color: #e1f2f5; | ||
| 27 | } | ||