summaryrefslogtreecommitdiff
path: root/config
blob: 4e84c07419ea61227d0bb0cf62be3ab8623b2d91 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
#
# SWAY
#

# Requirements
# swaybg wmenu foot waybar

# Environment Fixes
#exec export SWAYSOCK="$(ls /run/user/1000/sway-ipc.* | head -n 1)"
exec dbus-update-activation-environment WAYLAND_DISPLAY DISPLAY XDG_CURRENT_DESKTOP=sway SWAYSOCK I3SOCK XCURSOR_SIZE XCURSOR_THEME

# Variables
set $mod Mod4

set $up j
set $down k
set $left l
set $right semicolon

set $menu wmenu-run -b -p "Run:" \
	-f "Hack Nerd Font 16" \
	-M 00ffff -m 000000 \
	-N 000000 -n aaaaaa \
	-S 00ffff -s 000000
set $filebrowser thunar
set $term foot

set $igap 40
set $ogap 40
set $focuscol "#aaaaaa"
set $inactcol "#444444"

# Commands
set $exit swaynag -t warning -m 'Exit Sway?' -B 'Exit Sway' 'swaymsg exit'

set $audio_play exec playerctl play-pause
set $audio_next exec playerctl next
set $audio_prev exec playerctl previous

set $volup exec wpctl set-volume --limit 1.0 @DEFAULT_SINK@ 5%+
set $voldown exec wpctl set-volume @DEFAULT_SINK@ 5%-
set $mute exec wpctl set-mute @DEFAULT_SINK@ toggle
set $mutemic exec wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle

# Wallpaper
exec_always [ -f ~/.cache/wallpaper ] \
|| cp /usr/share/backgrounds/sway/*_1920x1080.png ~/.cache/wallpaper

exec_always [ -f ~/.cache/lockwallpaper ] \
|| cp ~/.cache/wallpaper ~/.cache/lockwallpaper

# Output
output * bg ~/.cache/wallpaper fill #123456

# Monitor 1
output 'Microstep MAG274QRF-QD CA8A391600566' {
	resolution 3840x2160@60Hz
	scale 2
	position 0 0
}

# Monitor 2
output 'Samsung Electric Company SyncMaster H9XB215463' {
	resolution 1920x1200@59.950Hz
	transform  270
	scale 1
	# position must be x/2 and y/2 of monitor 1
	position 1920 0
}

# Workspace assignment
workspace 1 output DP-3
workspace 0 output HDMI-A-1

# Input
seat * hide_cursor when-typing enable
seat * xcursor_theme Adwaita 30

input type:touchpad {
  dwt enable
  tap enable
  natural_scroll disable
  middle_emulation enable
}

input type:keyboard {
    xkb_layout gb
    xkb_options caps:ctrl_modifier
}

# Gaps
gaps inner $igap
gaps outer $ogap
gaps horizontal 60
gaps vertical 60

# Borders
smart_borders off
default_border pixel 2
client.focused $focuscol $focuscol #000000 $focuscol
client.unfocused $inactcol $inactcol #000000 $inactcol
client.focused_inactive $inactcol $inactcol #000000 $inactcol

# Waybar
bindsym $mod+b exec pkill -10 waybar

# Actions
bindsym $mod+q kill
bindsym $mod+r reload
bindsym $mod+Escape exit

bindsym $mod+Return exec $term
bindsym $mod+Space exec $menu
bindsym $mod+Shift+e exec $exit
bindsym $mod+i exec $term vim
bindsym $mod+n exec makoctl dismiss
bindsym $mod+u exec swayimg -g ~/images/wallpaper
bindsym $mod+d exec swaymsg 'output "*" power toggle'
bindsym $mod+e exec $filebrowser

# Layout
bindsym $mod+h splith
bindsym $mod+v splitv

bindsym $mod+equal layout toggle stacking split
bindsym $mod+t layout toggle tabbed split
bindsym $mod+s layout toggle split
bindsym $mod+f fullscreen
bindsym $mod+m \
	gaps inner current toggle $igap, \
	gaps outer current toggle $ogap

bindsym $mod+Tab floating toggle
bindsym $mod+Control+Tab focus mode_toggle
bindsym $mod+y sticky toggle

bindsym $mod+Shift+Grave move scratchpad
bindsym $mod+Grave scratchpad show

# Gaps
bindsym $mod+g gaps inner current toggle $igap, gaps outer current toggle $ogap
bindsym $mod+Ctrl+g gaps inner current plus 10, gaps outer current plus 10
bindsym $mod+Shift+g gaps inner current minus 10, gaps outer current minus 10
bindsym $mod+Shift+Ctrl+g gaps inner all set $igap, gaps outer all set $ogap

# Inner gaps
bindsym $mod+Ctrl+i gaps inner current plus 10, gaps vertical current plus 10
bindsym $mod+Shift+i gaps inner current minus 10, gaps vertical current minus 10
bindsym $mod+Shift+Ctrl+i gaps inner all set $igap

# Outer gaps
bindsym $mod+Ctrl+o gaps outer current plus 10, gaps vertical current plus 10
bindsym $mod+Shift+o gaps outer current minus 10, gaps vertical current minus 10
bindsym $mod+Shift+Ctrl+o gaps outer all set $ogap

# Focus
bindsym $mod+$up focus up
bindsym $mod+$down focus down
bindsym $mod+$left focus left
bindsym $mod+$right focus right
bindsym $mod+a focus parent
bindsym $mod+Ctrl+a focus child

# Move window
bindsym $mod+Shift+$up move up 20px
bindsym $mod+Shift+$down move down 20px
bindsym $mod+Shift+$left move left 20px
bindsym $mod+Shift+$right move right 20px

# Resize window
bindsym $mod+Shift+Equal resize grow height 20px
bindsym $mod+Shift+Minus resize shrink height 20px
bindsym $mod+Control+Minus resize shrink width 20px
bindsym $mod+Control+Equal resize grow width 20px

bindsym $mod+z mode "resize"

mode "resize" {
    bindsym $up resize grow height 10px
    bindsym $down resize shrink height 10px
    bindsym $left resize shrink width 10px
    bindsym $right resize grow width 10px
    bindsym Return mode "default"
    bindsym Escape mode "default"
}

# Workspace
bindsym $mod+1 workspace number 1
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 0

# Move window 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 0

# Function
bindsym --locked XF86AudioRaiseVolume $volup
bindsym --locked XF86AudioLowerVolume $voldown
bindsym --locked XF86AudioMute $mute
bindsym --locked XF86AudioMicMute $mutemic

bindsym --locked XF86AudioPlay $audio_play
bindsym --locked XF86AudioNext $audio_next
bindsym --locked XF86AudioPrev $audio_prev

#bindsym --locked XF86MonBrightnessUp exec brightnessctl -s set +10%
#bindsym --locked XF86MonBrightnessDown exec brightnessctl -s -n10 set 10%-

# Window Rules
# Float all, manually disable floating for windows
#for_window [title="."] floating enable
#for_window [app_id="$term"] floating disable
#for_window [app_id="firefox|librewolf"] floating disable
for_window [title="Save Image"] float enable

# Picture-in-picture window
for_window [title="Picture-in-Picture"] \
	floating enable, \
	sticky enable, \
	move position 1470 750, \
	border none

# Don't lock the screen if program is running in fullscreen
for_window [app_id="^.*"] inhibit_idle fullscreen

# Start-up apps
assign [app_id=$term title="btop|log"] "0"
exec $term -Tbtop btop
exec $term -Tlog tail -f /var/log/messages

# Services
exec ~/.config/sway/services