├── .config ├── mako │ └── config ├── waybar │ ├── custom_modules │ │ ├── cpugovernor.sh │ │ └── custom-gpu.sh │ ├── style.css │ └── config ├── swaylock │ └── config └── sway │ └── config ├── screenshot.png └── README.md /.config/mako/config: -------------------------------------------------------------------------------- 1 | /home/pipshag/Documents/Mackup/.config/mako/config -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pipshag/dotfiles_nord/HEAD/screenshot.png -------------------------------------------------------------------------------- /.config/waybar/custom_modules/cpugovernor.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | if [ `cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor`="performance" ]; then 3 | echo '{"text": "perf", "alt": "perf", "class": "performance", "tooltip": "Governor Performance"}' 4 | #echo '' 5 | elif [ `cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor`="schedutil" ]; then 6 | echo '{"text": "sched", "class": "schedutil", "tooltip": "Governor Schedutil"}' 7 | fi -------------------------------------------------------------------------------- /.config/swaylock/config: -------------------------------------------------------------------------------- 1 | ignore-empty-password 2 | disable-caps-lock-text 3 | font=Cantarelle Regular 4 | #font-size=9 5 | 6 | effect-blur=7x5 7 | indicator 8 | indicator-radius=120 9 | indicator-thickness=20 10 | clock 11 | timestr=%I:%M %p 12 | datestr=%A, %d %B 13 | ring-color=4C566A 14 | key-hl-color=A3BE8C 15 | line-color=2E3440 16 | separator-color=3B4252 17 | inside-color=3B4252 18 | bs-hl-color=A3BE8C 19 | layout-bg-color=3B4252 20 | layout-border-color=4C566A 21 | layout-text-color=D8DEE9 22 | text-color=D8DEE9 -------------------------------------------------------------------------------- /.config/waybar/custom_modules/custom-gpu.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | raw_clock=$(cat /sys/class/drm/card0/device/pp_dpm_sclk | egrep -o '[0-9]{0,4}Mhz \W' | sed "s/Mhz \*//") 4 | clock=$(echo "scale=1;$raw_clock/1000" | bc | sed -e 's/^-\./-0./' -e 's/^\./0./') 5 | 6 | raw_temp=$(cat /sys/class/drm/card0/device/hwmon/hwmon5/temp1_input) 7 | temperature=$(($raw_temp/1000)) 8 | busypercent=$(cat /sys/class/hwmon/hwmon5/device/gpu_busy_percent) 9 | deviceinfo=$(glxinfo -B | grep 'Device:' | sed 's/^.*: //') 10 | driverinfo=$(glxinfo -B | grep "OpenGL version") 11 | 12 | echo '{"text": "'$clock'GHz |  '$temperature'°C | '$busypercent'%", "class": "custom-gpu", "tooltip": "'$deviceinfo'\n'$driverinfo'"}' -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Personal Dotfiles 2 | Here is a collection of my dotfiles that tries to integrate the Nord-theme as much as possible. At the moment only the [Waybar](https://github.com/Alexays/Waybar) configuration is publicly released, hopefully the rest will follow as well. EDIT: I also uploaded configuration files for, and, related to sway but they rely on a specific set of appliations. Feel free to use what you like. 3 | 4 | ### Screenshots 5 | 6 | **Waybar** 7 | 8 | ![Screenshot of waybar](/screenshot.png?raw=true) 9 | 10 | ## Waybar config 11 | What is waybar? 12 | >Highly customizable Wayland bar for Sway and Wlroots based compositors. 13 | Available in Arch community or AUR, openSUSE, and Alpine Linux 14 | 15 | I've configured waybar with the Nord-theme in mind as well as trying to take vital information and make it as easy as possible to take in. There is also a script for the custom-module part which simply shows the current cpugovernor (only supports Performance or Schedutil at the moment). Another module just added is for monitoring the GPU. Both of the scripts are very hacky but do the job for me. 16 | Screenshot follows after list of items in the bar left to right. 17 | 18 | ### Left 19 | * Clock and date, with **gnome-calendar** open on left-click 20 | * Input language indicator 21 | * Scratchpad widget, **cycles** contents or **sends** to scratch 22 | * Pacman available updates indicator 23 | * Idle-inhibitor 24 | ### Middle 25 | * Workspaces, minimalistic. Configure icons in config 26 | #### Right 27 | * CPU Governor indicator, script in **custom_modules** can be extended 28 | * CPU max frequency and usage in percent 29 | * CPU temperature with warning. Opens **htop** in term on click 30 | * GPU monitoring with frequency, temperature and utilization percentage. Opens [powerupp](https://github.com/azeam/powerupp) on click. Tooltip shows GPU info and Mesa version (from glxinfo). 31 | * Pulseaudio control. Scroll for volume increase/decrease, click for **pavucontrol** or right-click to quickly **mute** microphone. 32 | * Bluetooth indicator, opens **blueberry** on click 33 | * Network indicator with mouse-over info (Strength, IP, Frequency, Speed etc) 34 | * Tray to keep icons 35 | 36 | 37 | -------------------------------------------------------------------------------- /.config/waybar/style.css: -------------------------------------------------------------------------------- 1 | 2 | @keyframes blink-warning { 3 | 70% { 4 | color: @light; 5 | } 6 | 7 | to { 8 | color: @light; 9 | background-color: @warning; 10 | } 11 | } 12 | 13 | @keyframes blink-critical { 14 | 70% { 15 | color: @light; 16 | } 17 | 18 | to { 19 | color: @light; 20 | background-color: @critical; 21 | } 22 | } 23 | 24 | 25 | /* ----------------------------------------------------------------------------- 26 | * Styles 27 | * -------------------------------------------------------------------------- */ 28 | 29 | /* COLORS */ 30 | 31 | /* Nord */ 32 | @define-color bg #2E3440; 33 | /*@define-color bg #353C4A;*/ 34 | @define-color light #D8DEE9; 35 | /*@define-color dark @nord_dark_font;*/ 36 | @define-color warning #ebcb8b; 37 | @define-color critical #BF616A; 38 | @define-color mode #434C5E; 39 | /*@define-color workspaces @bg;*/ 40 | /*@define-color workspaces @nord_dark_font;*/ 41 | /*@define-color workspacesfocused #434C5E;*/ 42 | @define-color workspacesfocused #4C566A; 43 | @define-color tray @workspacesfocused; 44 | @define-color sound #EBCB8B; 45 | @define-color network #5D7096; 46 | @define-color memory #546484; 47 | @define-color cpu #596A8D; 48 | @define-color temp #4D5C78; 49 | @define-color layout #5e81ac; 50 | @define-color battery #88c0d0; 51 | @define-color date #434C5E; 52 | @define-color time #434C5E; 53 | @define-color backlight #434C5E; 54 | @define-color nord_bg #434C5E; 55 | @define-color nord_bg_blue #546484; 56 | @define-color nord_light #D8DEE9; 57 | @define-color nord_light_font #D8DEE9; 58 | @define-color nord_dark_font #434C5E; 59 | 60 | /* Reset all styles */ 61 | * { 62 | border: none; 63 | border-radius: 3px; 64 | min-height: 0; 65 | margin: 0.2em 0.3em 0.2em 0.3em; 66 | } 67 | 68 | /* The whole bar */ 69 | #waybar { 70 | background: @bg; 71 | color: @light; 72 | font-family: "Cantarell", "Font Awesome 5 Pro"; 73 | font-size: 12px; 74 | font-weight: bold; 75 | } 76 | 77 | /* Each module */ 78 | #battery, 79 | #clock, 80 | #cpu, 81 | #custom-layout, 82 | #memory, 83 | #mode, 84 | #network, 85 | #pulseaudio, 86 | #temperature, 87 | #custom-alsa, 88 | #custom-pacman, 89 | #custom-weather, 90 | #custom-gpu, 91 | #tray, 92 | #backlight, 93 | #language, 94 | #custom-cpugovernor { 95 | padding-left: 0.6em; 96 | padding-right: 0.6em; 97 | } 98 | 99 | /* Each module that should blink */ 100 | #mode, 101 | #memory, 102 | #temperature, 103 | #battery { 104 | animation-timing-function: linear; 105 | animation-iteration-count: infinite; 106 | animation-direction: alternate; 107 | } 108 | 109 | /* Each critical module */ 110 | #memory.critical, 111 | #cpu.critical, 112 | #temperature.critical, 113 | #battery.critical { 114 | color: @critical; 115 | } 116 | 117 | /* Each critical that should blink */ 118 | #mode, 119 | #memory.critical, 120 | #temperature.critical, 121 | #battery.critical.discharging { 122 | animation-name: blink-critical; 123 | animation-duration: 2s; 124 | } 125 | 126 | /* Each warning */ 127 | #network.disconnected, 128 | #memory.warning, 129 | #cpu.warning, 130 | #temperature.warning, 131 | #battery.warning { 132 | background: @warning; 133 | color: @nord_dark_font; 134 | } 135 | 136 | /* Each warning that should blink */ 137 | #battery.warning.discharging { 138 | animation-name: blink-warning; 139 | animation-duration: 3s; 140 | } 141 | 142 | /* And now modules themselves in their respective order */ 143 | 144 | #mode { /* Shown current Sway mode (resize etc.) */ 145 | color: @light; 146 | background: @mode; 147 | } 148 | 149 | /* Workspaces stuff */ 150 | 151 | #workspaces { 152 | /* color: #D8DEE9; 153 | margin-right: 10px;*/ 154 | } 155 | 156 | #workspaces button { 157 | font-weight: bold; /* Somewhy the bar-wide setting is ignored*/ 158 | padding: 0; 159 | /*color: #999;*/ 160 | opacity: 0.3; 161 | background: none; 162 | font-size: 1em; 163 | } 164 | 165 | #workspaces button.focused { 166 | background: @workspacesfocused; 167 | color: #D8DEE9; 168 | opacity: 1; 169 | padding: 0 0.4em; 170 | } 171 | 172 | #workspaces button.urgent { 173 | border-color: #c9545d; 174 | color: #c9545d; 175 | opacity: 1; 176 | } 177 | 178 | #window { 179 | margin-right: 40px; 180 | margin-left: 40px; 181 | font-weight: normal; 182 | } 183 | #bluetooth { 184 | background: @nord_bg_blue; 185 | font-size: 1.2em; 186 | font-weight: bold; 187 | padding: 0 0.6em; 188 | } 189 | #custom-gpu { 190 | background: @nord_bg; 191 | font-weight: bold; 192 | padding: 0 0.6em; 193 | } 194 | #custom-weather { 195 | background: @mode; 196 | font-weight: bold; 197 | padding: 0 0.6em; 198 | } 199 | #custom-pacman { 200 | background: @nord_light; 201 | color: @nord_dark_font; 202 | font-weight: bold; 203 | padding: 0 0.6em; 204 | } 205 | #custom-scratchpad-indicator { 206 | background: @nord_light; 207 | color: @nord_dark_font; 208 | font-weight: bold; 209 | padding: 0 0.6em; 210 | } 211 | #idle_inhibitor { 212 | background: @mode; 213 | /*font-size: 1.6em;*/ 214 | font-weight: bold; 215 | padding: 0 0.6em; 216 | } 217 | #custom-alsa { 218 | background: @sound; 219 | } 220 | 221 | #network { 222 | background: @nord_bg_blue; 223 | } 224 | 225 | #memory { 226 | background: @memory; 227 | } 228 | 229 | #cpu { 230 | background: @nord_bg; 231 | color: #D8DEE9; 232 | } 233 | #cpu.critical { 234 | color: @nord_dark_font; 235 | } 236 | #language { 237 | background: @nord_bg_blue; 238 | color: #D8DEE9; 239 | padding: 0 0.4em; 240 | } 241 | #custom-cpugovernor { 242 | background-color: @nord_light; 243 | color: @nord_dark_font; 244 | } 245 | #custom-cpugovernor.perf { 246 | 247 | } 248 | #temperature { 249 | background-color: @nord_bg; 250 | color: #D8DEE9; 251 | } 252 | #temperature.critical { 253 | background: @critical; 254 | } 255 | #custom-layout { 256 | background: @layout; 257 | } 258 | 259 | #battery { 260 | background: @battery; 261 | } 262 | 263 | #backlight { 264 | background: @backlight; 265 | } 266 | 267 | #clock { 268 | background: @nord_bg_blue; 269 | color: #D8DEE9; 270 | } 271 | #clock.date { 272 | background: @date; 273 | } 274 | 275 | #clock.time { 276 | background: @mode; 277 | } 278 | 279 | #pulseaudio { /* Unsused but kept for those who needs it */ 280 | background: @nord_bg_blue; 281 | color: #D8DEE9; 282 | } 283 | 284 | #pulseaudio.muted { 285 | background: #BF616A; 286 | color: #BF616A; 287 | /* No styles */ 288 | } 289 | #pulseaudio.source-muted { 290 | background: #D08770; 291 | color: #D8DEE9; 292 | /* No styles */ 293 | } 294 | #tray { 295 | background: #434C5E; 296 | } 297 | -------------------------------------------------------------------------------- /.config/waybar/config: -------------------------------------------------------------------------------- 1 | { 2 | "layer": "top", // Waybar at top layer 3 | "position": "top", // Waybar position (top|bottom|left|right) 4 | // "height": 36, // Waybar height (to be removed for auto height) 5 | // Archived modules 6 | // "custom/gpu", "bluetooth", "custom/weather", "temperature", "sway/window" 7 | // Choose the order of the modules 8 | "modules-left": [ "clock", "sway/language", "custom/scratchpad-indicator", "custom/pacman", "sway/mode", "idle_inhibitor", "custom/media"], 9 | "modules-center": ["sway/workspaces"], 10 | "modules-right": [ "custom/cpugovernor", "cpu", "temperature", "custom/gpu", "pulseaudio", "bluetooth", "network", "tray"], 11 | // Modules configuration 12 | "sway/workspaces": { 13 | "disable-scroll": true, 14 | "all-outputs": true, 15 | "format": "{icon}", 16 | "format-icons": { 17 | "1": "", 18 | "2": "", 19 | "3": "", 20 | "4": "", 21 | "urgent": "", 22 | "focused": "", 23 | "default": "" 24 | } 25 | }, 26 | "sway/mode": { 27 | "format": "{}" 28 | }, 29 | "sway/window": { 30 | "format": "{}", 31 | "max-length": 50, 32 | "tooltip": false 33 | }, 34 | "bluetooth": { 35 | "interval": 30, 36 | "format": "{icon}", 37 | // "format-alt": "{status}", 38 | "format-icons": { 39 | "enabled": "", 40 | "disabled": "" 41 | }, 42 | "on-click": "blueberry" 43 | }, 44 | "sway/language": { 45 | "format": " {}", 46 | "max-length": 5, 47 | "min-length": 5, 48 | }, 49 | "idle_inhibitor": { 50 | "format": "{icon}", 51 | "format-icons": { 52 | "activated": "", 53 | "deactivated": "" 54 | }, 55 | "tooltip": "true" 56 | }, 57 | "tray": { 58 | //"icon-size": 11, 59 | "spacing": 5 60 | }, 61 | "clock": { 62 | "format": " {:%H:%M  %e %b}", 63 | "tooltip-format": "{:%Y %B}\n{calendar}", 64 | "today-format": "{}", 65 | "on-click": "gnome-calendar" 66 | }, 67 | "cpu": { 68 | "interval": "1", 69 | "format": " {max_frequency}GHz | {usage}%", 70 | "max-length": 13, 71 | "min-length": 13, 72 | "on-click": "kitty -e htop --sort-key PERCENT_CPU", 73 | "tooltip": false 74 | }, 75 | "temperature": { 76 | //"thermal-zone": 1, 77 | "interval": "4", 78 | "hwmon-path": "/sys/class/hwmon/hwmon3/temp1_input", 79 | "critical-threshold": 74, 80 | "format-critical": " {temperatureC}°C", 81 | "format": "{icon} {temperatureC}°C", 82 | "format-icons": ["", "", ""], 83 | "max-length": 7, 84 | "min-length": 7 85 | }, 86 | "network": { 87 | // "interface": "wlan0", // (Optional) To force the use of this interface, 88 | "format-wifi": " {essid}", 89 | "format-ethernet": "{ifname}: {ipaddr}/{cidr} ", 90 | "format-linked": "{ifname} (No IP) ", 91 | "format-disconnected": "", 92 | "format-alt": "{ifname}: {ipaddr}/{cidr}", 93 | "family": "ipv4", 94 | "tooltip-format-wifi": " {ifname} @ {essid}\nIP: {ipaddr}\nStrength: {signalStrength}%\nFreq: {frequency}MHz\n {bandwidthUpBits}  {bandwidthDownBits}", 95 | "tooltip-format-ethernet": " {ifname}\nIP: {ipaddr}\n {bandwidthUpBits}  {bandwidthDownBits}" 96 | }, 97 | "pulseaudio": { 98 | "scroll-step": 3, // %, can be a float 99 | "format": "{icon} {volume}% {format_source}", 100 | "format-bluetooth": "{volume}% {icon} {format_source}", 101 | "format-bluetooth-muted": " {icon} {format_source}", 102 | "format-muted": " {format_source}", 103 | //"format-source": "{volume}% ", 104 | //"format-source-muted": "", 105 | "format-source": "", 106 | "format-source-muted": "", 107 | "format-icons": { 108 | "headphone": "", 109 | "hands-free": "", 110 | "headset": "", 111 | "phone": "", 112 | "portable": "", 113 | "car": "", 114 | "default": ["", "", ""] 115 | }, 116 | "on-click": "pavucontrol", 117 | "on-click-right": "pactl set-source-mute @DEFAULT_SOURCE@ toggle" 118 | }, 119 | "custom/pacman": { 120 | "format": "􏆲 {}", 121 | "interval": 3600, // every hour 122 | "exec": "checkupdates | wc -l", // # of updates 123 | "exec-if": "exit 0", // always run; consider advanced run conditions 124 | "on-click": "kitty -e 'yay'; pkill -SIGRTMIN+8 waybar", // update system 125 | "signal": 8, 126 | "max-length": 5, 127 | "min-length": 3 128 | }, 129 | "custom/weather": { 130 | "exec": "curl 'https://wttr.in/?format=1'", 131 | "interval": 3600 132 | }, 133 | "custom/gpu": { 134 | "exec": "$HOME/.config/waybar/custom_modules/custom-gpu.sh", 135 | "return-type": "json", 136 | "format": "  {}", 137 | "interval": 2, 138 | "tooltip": "{tooltip}", 139 | "max-length": 19, 140 | "min-length": 19, 141 | "on-click": "powerupp" 142 | 143 | }, 144 | "custom/cpugovernor": { 145 | "format": "{icon}", 146 | "interval": "30", 147 | "return-type": "json", 148 | "exec": "$HOME/.config/waybar/custom_modules/cpugovernor.sh", 149 | "min-length": 2, 150 | "max-length": 2, 151 | "format-icons": { 152 | "perf": "", 153 | "sched": "" 154 | }, 155 | }, 156 | "custom/media": { 157 | "format": "{icon} {}", 158 | "return-type": "json", 159 | "max-length": 40, 160 | "format-icons": { 161 | "spotify": "", 162 | "default": "🎜" 163 | }, 164 | "escape": true, 165 | "exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder 166 | // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name 167 | }, 168 | "custom/scratchpad-indicator": { 169 | "interval": 3, 170 | "return-type": "json", 171 | "exec": "swaymsg -t get_tree | jq --unbuffered --compact-output '( select(.name == \"root\") | .nodes[] | select(.name == \"__i3\") | .nodes[] | select(.name == \"__i3_scratch\") | .focus) as $scratch_ids | [.. | (.nodes? + .floating_nodes?) // empty | .[] | select(.id |IN($scratch_ids[]))] as $scratch_nodes | { text: \"\\($scratch_nodes | length)\", tooltip: $scratch_nodes | map(\"\\(.app_id // .window_properties.class) (\\(.id)): \\(.name)\") | join(\"\\n\") }'", 172 | "format": "{} 􏠜", 173 | "on-click": "exec swaymsg 'scratchpad show'", 174 | "on-click-right": "exec swaymsg 'move scratchpad'" 175 | } 176 | } -------------------------------------------------------------------------------- /.config/sway/config: -------------------------------------------------------------------------------- 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 | # Home row direction keys, like vim 12 | set $left h 13 | set $down j 14 | set $up k 15 | set $right l 16 | # Your preferred terminal emulator 17 | #set $term alacritty 18 | 19 | 20 | ##################### 21 | ### PIPSHAG EDITS ### 22 | ##################### 23 | 24 | input "3141:30264:AKKO_AKKO_3084BT" { 25 | xkb_layout us,se 26 | xkb_options caps:escape,grp:alt_caps_toggle 27 | xkb_numlock enable 28 | repeat_delay 200 29 | repeat_rate 65 30 | } 31 | 32 | # Set pointer scroll factor 33 | input "type:pointer" { 34 | scroll_factor 3 35 | } 36 | 37 | # Set Displays 38 | set $bg ~/Pictures/background_sway.png 39 | set $bg_animated ~/Videos/space.mp4 40 | set $lock_bg ~/Pictures/BgCorrupted.png 41 | set $lock_opts '--effect-pixelate 10 --indicator --ring-color 4C566A --key-hl-color 4C566A --line-color 2E3440 --separator-color 5E81AC' 42 | 43 | # Refresh and VRR 44 | output DP-1 { 45 | scale 1 46 | pos 0 0 47 | res 2560x1440@144.000Hz 48 | adaptive_sync on 49 | subpixel none 50 | } 51 | 52 | ## Background 53 | # Static 54 | output * bg $bg fill 55 | 56 | # Animated BG manager 57 | #exec mpvpaper -o "no-audio" DP-1 $bg_animated 58 | #swaybg_command - 59 | 60 | # Terminal 61 | set $term kitty 62 | 63 | # App Launcher 64 | set $menu ulauncher 65 | 66 | # Add alt tab 67 | bindsym $mod+tab workspace back_and_forth 68 | 69 | # Add screenshot capability 70 | # Region-select-screenshot to file 71 | bindsym ctrl+shift+Print exec grimshot --notify save area 72 | # Region-select-screenshot to file 73 | bindsym shift+Print exec grimshot --notify copy area 74 | # Region-select-video to file 75 | bindsym alt+shift+Print exec wf-recorder -g "$(slurp)" 76 | 77 | # Add section for handling locking and sleeping 78 | bindsym Alt+l exec 'swaylock -i $lock_bg' 79 | 80 | exec swayidle -w \ 81 | timeout 300 'swaymsg "output * dpms off"' \ 82 | resume 'swaymsg "output * dpms on"' \ 83 | timeout 600 'systemctl suspend' \ 84 | before-sleep 'swaylock -f -i $lock_bg' 85 | 86 | # Handle waybar 87 | bar { 88 | swaybar_command waybar 89 | } 90 | 91 | # Quality of life 92 | 93 | # Drag floating windows by holding down $mod and left mouse button. 94 | # Resize them with right mouse button + $mod. 95 | # Despite the name, also works for non-floating windows. 96 | # Change normal to inverse to use left mouse button for resizing and right 97 | # mouse button for dragging. 98 | floating_modifier $mod normal 99 | 100 | # Font, borders, and gaps 101 | font pango:Cantarell 10 102 | gaps inner 4 103 | gaps outer -4 104 | gaps top -2 105 | gaps bottom 0 106 | default_border pixel 2 107 | default_floating_border pixel 2 108 | 109 | # Colours 110 | client.background n/a #434c5e n/a 111 | client.focused #4C566A #434c5e #eceff4 #434c5e #434c5e 112 | client.focused_inactive #3b4252 #3b4252 #eceff4 #3b4252 #3b4252 113 | client.unfocused #3b4252 #3b4252 #eceff4 #3b4252 #3b4252 114 | client.urgent #4C566A #434c5e #eceff4 #434c5e #434c5e 115 | 116 | # Hotkeys 117 | ## Special keys 118 | # Replacing multimedia for overlay 119 | bindsym --locked { 120 | ## Volume Control 121 | # Support for wob 122 | XF86AudioRaiseVolume exec pamixer -ui 5 && pamixer --get-volume > /tmp/wobpipe 123 | XF86AudioLowerVolume exec pamixer -ud 5 && pamixer --get-volume > /tmp/wobpipe 124 | XF86AudioMute exec pamixer --toggle-mute && ( pamixer --get-mute && echo 0 > /tmp/wobpipe ) || pamixer --get-volume > /tmp/wobpipe 125 | 126 | ## Volume Control 127 | # No OSD 128 | #XF86AudioRaiseVolume exec sh -c "pactl set-sink-mute 0 false ; pactl set-sink-volume 0 +5%" 129 | #XF86AudioLowerVolume exec sh -c "pactl set-sink-mute 0 false ; pactl set-sink-volume 0 -5%" 130 | #$mod+F12 exec pactl set-source-mute @DEFAULT_SOURCE@ toggle 131 | } 132 | 133 | ## Dismiss notifications 134 | bindsym $mod+n exec "makoctl dismiss" 135 | bindsym $mod+Shift+n exec "makoctl dismiss -a" 136 | 137 | ## Easier kill switch 138 | bindsym $mod+q kill 139 | 140 | ## Toggle floating 141 | bindsym $mod+Shift+space floating toggle 142 | 143 | ## Add floating windows and inhibit idle 144 | # Get app_id or class with 145 | # swaymsg -t get_tree | grep 146 | for_window [app_id="gnome-calculator"] floating enable 147 | for_window [app_id="org.gnome.Nautilus"] floating enable 148 | for_window [app_id="org.keepassxc.KeePassXC"] floating enable 149 | for_window [class="KeePassXC"] floating enable 150 | for_window [class="GitKraken"] floating enable 151 | for_window [app_id="gnome-calendar"] floating enable 152 | for_window [app_id="gnome-control-center"] floating enable 153 | for_window [app_id="blueberry.py"] floating enable 154 | for_window [app_id="ulauncher"] floating enable, border none 155 | for_window [app_id="mpv"] floating enable, inhibit_idle visible 156 | for_window [class="Steam"] floating enable 157 | for_window [class="steam_app*"] inhibit_idle focus 158 | 159 | ## Assign Workspace opens 160 | assign [class="jetbrains-idea"] → workspace 2 161 | assign [class="jetbrains-datagrip"] → workspace 2 162 | 163 | ## Add opacity to unmanaged applications 164 | for_window [app_id="subl"] opacity 0.9 165 | 166 | # Autostart applications per workspace 167 | exec swaymsg "workspace 3; exec spotify;" 168 | exec swaymsg "workspace 1; exec google-chrome-stable;" 169 | exec swaymsg "workspace 1; exec subl;" 170 | exec swaymsg "workspace 1; exec kitty;" 171 | exec swaymsg "workspace 1; exec keepassxc;" 172 | 173 | ## Run software 174 | exec wl-paste -t text --watch clipman store 175 | exec /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 176 | exec systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK 177 | exec_always rm /tmp/wobpipe && mkfifo /tmp/wobpipe && tail -f /tmp/wobpipe | wob --bar-color=#FFA3BE8C --background-color=#FF3B4252 --border-color=#FF8FBCBB --anchor=bottom --width=600 --height=50 --border=5 --offset=0 --padding=5 --margin=60 178 | exec udiskie 179 | exec autotiling 180 | exec_always mako 181 | exec_always nm-applet --indicator 182 | exec openrgb --startminimized --profile default 183 | exec kdeconnect-indicator 184 | 185 | ##################### 186 | ##################### 187 | ##################### 188 | 189 | ### Key bindings 190 | # 191 | # Basics: 192 | # 193 | # Start a terminal 194 | bindsym $mod+Return exec $term 195 | 196 | # Kill focused window 197 | #bindsym $mod+Shift+q kill 198 | 199 | # Start your launcher 200 | bindsym $mod+d exec $menu 201 | bindsym Control+space exec $menu 202 | 203 | # Drag floating windows by holding down $mod and left mouse button. 204 | # Resize them with right mouse button + $mod. 205 | # Despite the name, also works for non-floating windows. 206 | # Change normal to inverse to use left mouse button for resizing and right 207 | # mouse button for dragging. 208 | floating_modifier $mod normal 209 | 210 | # Reload the configuration file 211 | bindsym $mod+Shift+c reload 212 | 213 | # Exit sway (logs you out of your Wayland session) 214 | 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' 215 | # 216 | # Moving around: 217 | # 218 | # Move your focus around 219 | #bindsym $mod+$left focus left 220 | #bindsym $mod+$down focus down 221 | #bindsym $mod+$up focus up 222 | #bindsym $mod+$right focus right 223 | # Or use $mod+[up|down|left|right] 224 | bindsym $mod+Left focus left 225 | bindsym $mod+Down focus down 226 | bindsym $mod+Up focus up 227 | bindsym $mod+Right focus right 228 | 229 | # Move the focused window with the same, but add Shift 230 | #bindsym $mod+Shift+$left move left 231 | #bindsym $mod+Shift+$down move down 232 | #bindsym $mod+Shift+$up move up 233 | #bindsym $mod+Shift+$right move right 234 | # Ditto, with arrow keys 235 | bindsym $mod+Shift+Left move left 236 | bindsym $mod+Shift+Down move down 237 | bindsym $mod+Shift+Up move up 238 | bindsym $mod+Shift+Right move right 239 | 240 | # Workspaces: 241 | # 242 | # Switch to workspace 243 | bindsym $mod+1 workspace number 1 244 | bindsym $mod+2 workspace number 2 245 | bindsym $mod+3 workspace number 3 246 | bindsym $mod+4 workspace number 4 247 | bindsym $mod+5 workspace number 5 248 | bindsym $mod+6 workspace number 6 249 | bindsym $mod+7 workspace number 7 250 | bindsym $mod+8 workspace number 8 251 | bindsym $mod+9 workspace number 9 252 | bindsym $mod+0 workspace number 10 253 | # Move focused container to workspace 254 | bindsym $mod+Shift+1 move container to workspace number 1 255 | bindsym $mod+Shift+2 move container to workspace number 2 256 | bindsym $mod+Shift+3 move container to workspace number 3 257 | bindsym $mod+Shift+4 move container to workspace number 4 258 | bindsym $mod+Shift+5 move container to workspace number 5 259 | bindsym $mod+Shift+6 move container to workspace number 6 260 | bindsym $mod+Shift+7 move container to workspace number 7 261 | bindsym $mod+Shift+8 move container to workspace number 8 262 | bindsym $mod+Shift+9 move container to workspace number 9 263 | bindsym $mod+Shift+0 move container to workspace number 10 264 | # Note: workspaces can have any name you want, not just numbers. 265 | # We just use 1-10 as the default. 266 | # 267 | # Layout stuff: 268 | # 269 | # You can "split" the current object of your focus with 270 | # $mod+b or $mod+v, for horizontal and vertical splits 271 | # respectively. 272 | bindsym $mod+b splith 273 | bindsym $mod+v splitv 274 | 275 | # Switch the current container between different layout styles 276 | bindsym $mod+s layout stacking 277 | bindsym $mod+w layout tabbed 278 | bindsym $mod+e layout toggle split 279 | 280 | # Make the current focus fullscreen 281 | bindsym $mod+f fullscreen 282 | 283 | # Toggle the current focus between tiling and floating mode 284 | 285 | 286 | # Swap focus between the tiling area and the floating area 287 | bindsym $mod+space focus mode_toggle 288 | 289 | # Move focus to the parent container 290 | bindsym $mod+a focus parent 291 | # 292 | # Scratchpad: 293 | # 294 | # Sway has a "scratchpad", which is a bag of holding for windows. 295 | # You can send windows there and get them back later. 296 | 297 | # Move the currently focused window to the scratchpad 298 | bindsym $mod+Shift+minus move scratchpad 299 | 300 | # Show the next scratchpad window or hide the focused scratchpad window. 301 | # If there are multiple scratchpad windows, this command cycles through them. 302 | bindsym $mod+minus scratchpad show 303 | # 304 | # Resizing containers: 305 | # 306 | mode "resize" { 307 | # left will shrink the containers width 308 | # right will grow the containers width 309 | # up will shrink the containers height 310 | # down will grow the containers height 311 | bindsym $left resize shrink width 10px 312 | bindsym $down resize grow height 10px 313 | bindsym $up resize shrink height 10px 314 | bindsym $right resize grow width 10px 315 | 316 | # Ditto, with arrow keys 317 | bindsym Left resize shrink width 10px 318 | bindsym Down resize grow height 10px 319 | bindsym Up resize shrink height 10px 320 | bindsym Right resize grow width 10px 321 | 322 | # Return to default mode 323 | bindsym Return mode "default" 324 | bindsym Escape mode "default" 325 | } 326 | bindsym $mod+r rmode "resize" 327 | 328 | include /etc/sway/config.d/* --------------------------------------------------------------------------------