Skip to content

Latest commit

 

History

History
346 lines (309 loc) · 10.6 KB

sway.org

File metadata and controls

346 lines (309 loc) · 10.6 KB

Sway

Tiling Wayland compositor and replacement for the i3 window manager

Variables

Logo key. Use Mod1 for Alt.

set $mod Mod4

Home row direction keys, like vim

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

Shortcut for opening applications

set $open exec <<launcher>>

IO

Set keyboard layout:

input * {
    xkb_layout cz
    xkb_variant coder
    xkb_numlock enabled
    xkb_options ctrl:nocaps,compose:rctrl

Setup touchpad:

    dwt enabled
    tap enabled
    natural_scroll enabled
    middle_emulation enabled
}

Hide the cursor after timeout:

seat * {
    hide_cursor 5000
}

Key bindings

Basics

start a Distrobox in terminal

bindsym $mod+Return exec <<terminal>> distrobox enter termbox

start a terminal

bindsym $mod+t exec <<terminal>>

kill focused window

bindsym $mod+Shift+q kill

start your web browser

bindsym $mod+w $open <<web_browser>>

start your file browser

bindsym $mod+f $open <<file_browser>>

start emacs

bindsym $mod+e exec flatpak run --command=emacsclient org.gnu.emacs -n -c -a emacs

open org-agenda

bindsym $mod+a exec flatpak run --command=emacsclient org.gnu.emacs -ce '(my-org-agenda)'

start YouTube player

bindsym $mod+y exec freetube

attach tmux session with music player

bindsym $mod+m exec sh ~/bin/mplayer

Drag floating windows by holding down $mod and left mouse button. Resize them with right mouse button + $mod. Despite the name, also works for non-floating windows. Change normal to inverse to use left mouse button for resizing and right mouse button for dragging.

floating_modifier $mod normal

reload the configuration file

bindsym $mod+Shift+c reload

print screen

bindsym Print exec grim ~/Pictures/screen-shots/$(date +%F-%H:%M-%S).png

exit sway (logs you out of your Wayland session)

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'

bindsym $mod+Shift+p exec swaynag -t warning -m 'Power-off?' -b 'Yes' 'shutdown -P "now"'

bindsym $mod+Shift+r exec swaynag -t warning -m 'Reboot?' -b 'Yes' 'shutdown -r "now"'

lock screen

bindsym $mod+Shift+s exec sh ~/.config/swaylock/lock.sh

App launcher

start your app launcher

bindsym $mod+f1 exec fuzzel

Moving around

Move your focus around

bindsym $mod+$left focus left
bindsym $mod+$down focus down
bindsym $mod+$up focus up
bindsym $mod+$right focus right

or use $mod+[up|down|left|right]

bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right

move the focused window with the same, but add Shift

bindsym $mod+Shift+$left move left
bindsym $mod+Shift+$down move down
bindsym $mod+Shift+$up move up
bindsym $mod+Shift+$right move right

ditto, with arrow keys

bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right

switch output

bindsym $mod+space focus output right

Workspaces

switch to 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 10

move focused container 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 10

Note: workspaces can have any name you want, not just numbers. We just use 1-10 as the default.

Layout stuff:

You can “split” the current object of your focus with $mod+b or $mod+v, for horizontal and vertical splits respectively.

bindsym $mod+b splith
bindsym $mod+v splitv

Switch the current container between different layout styles

#bindsym $mod+s layout stacking
#bindsym $mod+c layout toggle split

Make the current focus fullscreen

bindsym $mod+Shift+f fullscreen

Toggle the current focus between tiling and floating mode

#bindsym $mod+Shift+space floating toggle

Swap focus between the tiling area and the floating area

#bindsym $mod+space focus mode_toggle

move focus to the parent container

#bindsym $mod+p focus parent

Scratchpad

Sway has a “scratchpad”, which is a bag of holding for windows. You can send windows there and get them back later.

Move the currently focused window to the scratchpad

bindsym $mod+Shift+minus move scratchpad

Show the next scratchpad window or hide the focused scratchpad window. If there are multiple scratchpad windows, this command cycles through them.

bindsym $mod+minus scratchpad show

Resizing containers:

mode "resize" {

left will shrink the containers width right will grow the containers width up will shrink the containers height down will grow the containers height

bindsym $left resize shrink width 10px
bindsym $down resize grow height 10px
bindsym $up resize shrink height 10px
bindsym $right resize grow width 10px

ditto, with arrow keys

bindsym Left resize shrink width 10px
bindsym Down resize grow height 10px
bindsym Up resize shrink height 10px
bindsym Right resize grow width 10px

return to default mode

    bindsym Return mode "default"
    bindsym Escape mode "default"
}

enter resize mode

bindsym $mod+r mode "resize"

Fn keys

Create fifo for wob:

set $WOBSOCK $XDG_RUNTIME_DIR/wob.sock

Audio

set $wob_volume wpctl get-volume @DEFAULT_AUDIO_SINK@ | sed 's/^Volume: \([01]\)\.\(.*\).*$/\1\2/;s/\[MUTED\]/muted/' > $WOBSOCK
bindsym --locked XF86AudioRaiseVolume exec wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ && $wob_volume
bindsym --locked XF86AudioLowerVolume exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- && $wob_volume
bindsym --locked XF86AudioMute exec wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && $wob_volume
# wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle

Monitor brightness (https://github.com/haikarainen/light)

bindsym XF86MonBrightnessUp exec light -A 10 & light & light -G | cut -d'.' -f1 > $WOBSOCK
bindsym XF86MonBrightnessDown exec light -U 10 & light & light -G | cut -d'.' -f1 > $WOBSOCK

Keyboard brightness

#bindsym XF86KbdBrightnessUp exec light -s 'sysfs/leds/asus::kbd_backlight' -A 40 & light & light -s 'sysfs/leds/asus::kbd_backlight' -G | cut -d'.' -f1 > $SWAYSOCK.wob
#bindsym XF86KbdBrightnessDown exec light -s 'sysfs/leds/asus::kbd_backlight' -U 40 & light & light -s 'sysfs/leds/asus::kbd_backlight' -G | cut -d'.' -f1 > $SWAYSOCK.wob

Appearance

Colors

Set background color

output * bg #<<base03>> solid_color
# Property Name         Border  BG      Text    Indicator Child Border
client.focused          #<<base05>> #<<base0D>> #<<base00>> #<<base0D>> #<<base0D>>
client.focused_inactive #<<base01>> #<<base01>> #<<base05>> #<<base03>> #<<base01>>
client.unfocused        #<<base01>> #<<base00>> #<<base05>> #<<base01>> #<<base01>>
client.urgent           #<<base08>> #<<base08>> #<<base00>> #<<base08>> #<<base08>>
client.placeholder      #<<base00>> #<<base00>> #<<base05>> #<<base00>> #<<base00>>
client.background       #<<base07>>

Basics

smart_borders on
default_border pixel 5
font <<font>> 12

Gaps

gaps inner 5
smart_gaps on

Daemons

Start the sway-session.target which will trigger the execution of daemons related to Sway.

exec "systemctl --user import-environment; systemctl --user start sway-session.target"

Imports

include ~/.config/sway/config.d/*.conf