blob: b8c10c7b6df2c31a1fb39d943b83029df6b25434 (
plain) (
blame)
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
|
# ── Variables ─────────────────────────────────────────────────────────────────
set $mod Mod4
set $term ghostty
set $menu fuzzel
# ── Appearance ────────────────────────────────────────────────────────────────
font mono 8
default_border pixel 1
default_floating_border pixel 1
gaps inner 0
gaps outer 0
# Gruvbox dark colors
# class border bg text indicator child_border
client.focused #fabd2f #282828 #ebdbb2 #fabd2f #fabd2f
client.focused_inactive #3c3836 #282828 #928374 #3c3836 #3c3836
client.unfocused #3c3836 #282828 #928374 #3c3836 #3c3836
client.urgent #fb4934 #282828 #ebdbb2 #fb4934 #fb4934
# ── Input ─────────────────────────────────────────────────────────────────────
input type:keyboard {
xkb_layout us
xkb_options caps:escape
repeat_delay 300
repeat_rate 50
}
input type:touchpad {
tap enabled
natural_scroll enabled
dwt enabled
}
# ── Behavior ──────────────────────────────────────────────────────────────────
focus_follows_mouse yes
seat * hide_cursor 3000
# ── Output ────────────────────────────────────────────────────────────────────
output * bg #282828 solid_color
output * pos 0 0
# ── Window rules ──────────────────────────────────────────────────────────────
for_window [class="feh"] floating enable
for_window [app_id="imv"] floating enable
for_window [class="Tor Browser"] floating enable
# ── Standard keybinds (sway defaults) ─────────────────────────────────────────
bindsym $mod+Return exec $term
bindsym $mod+Shift+q kill
bindsym $mod+d exec $menu
# Navigation
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right
# Move windows
bindsym $mod+Shift+h move left
bindsym $mod+Shift+j move down
bindsym $mod+Shift+k move up
bindsym $mod+Shift+l move right
# Workspaces
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 10
bindsym $mod+Shift+1 move container to workspace number 1
bindsym $mod+Shift+2 move container to workspace number 2
bindsym $mod+Shift+3 move container to workspace number 3
bindsym $mod+Shift+4 move container to workspace number 4
bindsym $mod+Shift+5 move container to workspace number 5
bindsym $mod+Shift+6 move container to workspace number 6
bindsym $mod+Shift+7 move container to workspace number 7
bindsym $mod+Shift+8 move container to workspace number 8
bindsym $mod+Shift+9 move container to workspace number 9
bindsym $mod+Shift+0 move container to workspace number 10
# Layout
bindsym $mod+b splith
bindsym $mod+v splitv
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
bindsym $mod+f fullscreen
bindsym $mod+Shift+space floating toggle
bindsym $mod+space focus mode_toggle
bindsym $mod+a focus parent
# Scratchpad
bindsym $mod+Shift+minus move scratchpad
bindsym $mod+minus scratchpad show
# Resize mode
mode "resize" {
bindsym h resize shrink width 10px
bindsym j resize grow height 10px
bindsym k resize shrink height 10px
bindsym l resize grow width 10px
bindsym Escape mode "default"
bindsym Return mode "default"
}
bindsym $mod+r mode "resize"
# Reload / exit
bindsym $mod+Shift+c reload
bindsym $mod+Shift+e exec swaynag -t warning -m 'Exit sway?' -B 'Yes' 'swaymsg exit'
# ── Personal keybinds ─────────────────────────────────────────────────────────
# Workspace cycling
bindsym $mod+Tab workspace next_on_output
bindsym $mod+Shift+Tab workspace prev_on_output
# Volume
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%
bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%
bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
bindsym $mod+Shift+m exec pactl set-sink-mute @DEFAULT_SINK@ toggle
bindsym $mod+m exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
# Media
bindsym XF86AudioPlay exec playerctl play-pause
bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous
# Screenshots
bindsym Print exec grim -g "$(slurp)" ~/pics/screenshots/$(date +%Y-%m-%d-%H-%M-%S).png
bindsym Shift+Print exec grim ~/pics/screenshots/$(date +%Y-%m-%d-%H-%M-%S).png
# Lock & pause
bindsym $mod+Shift+s exec "playerctl -a pause; swaylock -f -c 282828"
# Notifications
bindsym $mod+n exec makoctl dismiss
bindsym $mod+Shift+n exec makoctl dismiss --all
# Display mode switching
bindsym F7 exec ~/.config/sway/display-toggle.sh
# ── Bar ───────────────────────────────────────────────────────────────────────
bar {
swaybar_command waybar
}
# ── Autostart ─────────────────────────────────────────────────────────────────
exec systemctl --user import-environment WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP
exec dbus-update-activation-environment --systemd WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP
exec mako
|