]> git.r.bdr.sh - rbdr/dotfiles/blob - config/sway/config
Start replacing CoC with neovim's LSP support
[rbdr/dotfiles] / 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 kitty
18
19 # Theme Variables
20 set $font "Input Mono Light 12"
21 set $highlight #00FFFF
22 set $prompt #00FF00
23
24 # Font
25 font pango:Input Mono Light 12
26
27 # class / border / bg / fg / indicator / child_border
28 client.focused #00FFFF #000000 #FFFFFF #00FF00 #00FFFF
29 client.focused_inactive #00FFFF #000000 #666666 #00FF00 #00FFFF
30 client.unfocused #666666 #000000 #888888 #666666 #666666
31 client.urgent #FF00FF #000000 #FFFFFF #00FF00 #FF00FF
32
33 # Your preferred application launcher
34 # Note: pass the final command to swaymsg so that the resulting window can be opened
35 # on the original workspace that the command was run on.
36 set $menu bemenu-run --fn $font -b -p "$" --tf "$prompt" --hf "$highlight" --sf "$highlight" --scf "$highlight" | xargs swaymsg exec
37
38 ### Output configuration
39 #
40 # Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
41 output * bg ~/Pictures/lisa-congdon/BrightSpots_800x800.webp tile #000000
42 # output HDMI-A-1 resolution 1920x1080 position 1920,0
43 #
44 # You can get the names of your outputs by running: swaymsg -t get_outputs
45
46 ### Idle configuration
47 #
48 # Example configuration:
49 #
50 # exec swayidle -w \
51 # timeout 300 'swaylock -f -c 000000' \
52 # timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \
53 # before-sleep 'swaylock -f -c 000000'
54 #
55 # This will lock your screen after 300 seconds of inactivity, then turn off
56 # your displays after another 300 seconds, and turn your screens back on when
57 # resumed. It will also lock your screen before your computer goes to sleep.
58
59 ### Input configuration
60 #
61 # Example configuration:
62 #
63 # input "2:14:SynPS/2_Synaptics_TouchPad" {
64 # dwt enabled
65 # tap enabled
66 # natural_scroll enabled
67 # middle_emulation enabled
68 # }
69 #
70 # You can get the names of your inputs by running: swaymsg -t get_inputs
71 # Read `man 5 sway-input` for more information about this section.
72
73 input * {
74 xkb_options ctrl:nocaps
75 }
76
77 ### Key bindings
78 #
79 # Basics:
80 #
81 # Start a terminal
82 bindsym $mod+Return exec $term
83
84 # Kill focused window
85 bindsym $mod+Shift+q kill
86
87 # Start your launcher
88 bindsym $mod+d exec $menu
89
90 # Drag floating windows by holding down $mod and left mouse button.
91 # Resize them with right mouse button + $mod.
92 # Despite the name, also works for non-floating windows.
93 # Change normal to inverse to use left mouse button for resizing and right
94 # mouse button for dragging.
95 floating_modifier $mod normal
96
97 # Reload the configuration file
98 bindsym $mod+Shift+c reload
99
100 # Exit sway (logs you out of your Wayland session)
101 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'
102 #
103 # Moving around:
104 #
105 # Move your focus around
106 bindsym $mod+$left focus left
107 bindsym $mod+$down focus down
108 bindsym $mod+$up focus up
109 bindsym $mod+$right focus right
110 # Or use $mod+[up|down|left|right]
111 bindsym $mod+Left focus left
112 bindsym $mod+Down focus down
113 bindsym $mod+Up focus up
114 bindsym $mod+Right focus right
115
116 # Move the focused window with the same, but add Shift
117 bindsym $mod+Shift+$left move left
118 bindsym $mod+Shift+$down move down
119 bindsym $mod+Shift+$up move up
120 bindsym $mod+Shift+$right move right
121 # Ditto, with arrow keys
122 bindsym $mod+Shift+Left move left
123 bindsym $mod+Shift+Down move down
124 bindsym $mod+Shift+Up move up
125 bindsym $mod+Shift+Right move right
126 #
127 # Workspaces:
128 #
129 # Switch to workspace
130 bindsym $mod+1 workspace number 1
131 bindsym $mod+2 workspace number 2
132 bindsym $mod+3 workspace number 3
133 bindsym $mod+4 workspace number 4
134 bindsym $mod+5 workspace number 5
135 bindsym $mod+6 workspace number 6
136 bindsym $mod+7 workspace number 7
137 bindsym $mod+8 workspace number 8
138 bindsym $mod+9 workspace number 9
139 bindsym $mod+0 workspace number 10
140 # Move focused container to workspace
141 bindsym $mod+Shift+1 move container to workspace number 1
142 bindsym $mod+Shift+2 move container to workspace number 2
143 bindsym $mod+Shift+3 move container to workspace number 3
144 bindsym $mod+Shift+4 move container to workspace number 4
145 bindsym $mod+Shift+5 move container to workspace number 5
146 bindsym $mod+Shift+6 move container to workspace number 6
147 bindsym $mod+Shift+7 move container to workspace number 7
148 bindsym $mod+Shift+8 move container to workspace number 8
149 bindsym $mod+Shift+9 move container to workspace number 9
150 bindsym $mod+Shift+0 move container to workspace number 10
151 # Note: workspaces can have any name you want, not just numbers.
152 # We just use 1-10 as the default.
153 #
154 # Layout stuff:
155 #
156 # You can "split" the current object of your focus with
157 # $mod+b or $mod+v, for horizontal and vertical splits
158 # respectively.
159 bindsym $mod+b splith
160 bindsym $mod+v splitv
161
162 # Switch the current container between different layout styles
163 bindsym $mod+s layout stacking
164 bindsym $mod+w layout tabbed
165 bindsym $mod+e layout toggle split
166
167 # Make the current focus fullscreen
168 bindsym $mod+f fullscreen
169
170 # Toggle the current focus between tiling and floating mode
171 bindsym $mod+Shift+space floating toggle
172
173 # Swap focus between the tiling area and the floating area
174 bindsym $mod+space focus mode_toggle
175
176 # Move focus to the parent container
177 bindsym $mod+a focus parent
178 #
179 # Scratchpad:
180 #
181 # Sway has a "scratchpad", which is a bag of holding for windows.
182 # You can send windows there and get them back later.
183
184 # Move the currently focused window to the scratchpad
185 bindsym $mod+Shift+minus move scratchpad
186
187 # Show the next scratchpad window or hide the focused scratchpad window.
188 # If there are multiple scratchpad windows, this command cycles through them.
189 bindsym $mod+minus scratchpad show
190 #
191 # Resizing containers:
192 #
193 mode "resize" {
194 # left will shrink the containers width
195 # right will grow the containers width
196 # up will shrink the containers height
197 # down will grow the containers height
198 bindsym $left resize shrink width 10px
199 bindsym $down resize grow height 10px
200 bindsym $up resize shrink height 10px
201 bindsym $right resize grow width 10px
202
203 # Ditto, with arrow keys
204 bindsym Left resize shrink width 10px
205 bindsym Down resize grow height 10px
206 bindsym Up resize shrink height 10px
207 bindsym Right resize grow width 10px
208
209 # Return to default mode
210 bindsym Return mode "default"
211 bindsym Escape mode "default"
212 }
213 bindsym $mod+r mode "resize"
214
215 #
216 # Status Bar:
217 #
218 # Read `man 5 sway-bar` for more information about this section.
219 bar {
220 position top
221
222 # When the status_command prints a new line to stdout, swaybar updates.
223 # The default just shows the current date and time.
224 status_command while ~/.config/sway/status.sh; do sleep 1; done
225
226 colors {
227 statusline #ffffff
228 background #000000
229 # class / border / bg / fg
230 focused_workspace #00FFFF #00FFFF #000000
231 inactive_workspace #666666 #000000 #666666
232 active_workspace #00FF00 #000000 #00FF00
233 urgent_workspace #FF00FF #FF00FF #000000
234 }
235 }
236
237 include /etc/sway/config.d/*