├── .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 | 
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/*
--------------------------------------------------------------------------------