small pixel drawing of a pufferfish dotfiles

.config/sway/config

# vars
set $mod Mod4
set $left h
set $down j
set $up k
set $right l
set $term foot

set $wssteam "steam"
set $wsdota2 "dota2"
set $wssuperautopets "super auto pets"

output DP-1 disable
# qweh?
# output HDMI-A-2 position 1920,215 resolution 2560x1440@170hz
# output HDMI-A-1 position 0,395 resolution 1920x1080@74hz
# output HDMI-A-2 position 4480,0 resolution 1920x1080@74hz transform 90

input "type:keyboard" {
    xkb_layout us
    xkb_options ctrl:nocaps
}

input "1149:4128:Kensington_Expert_Mouse" {
    scroll_method on_button_down
    scroll_button 275
}

# default workspaces
assign [class="^Steam$"] $wssteam
assign [class="^dota2$"] $wsdota2
assign [class="^superautopets.x86_64$"] $wssuperautopets

# layout options
for_window [title="^weallfloatdownhere$"] floating enable, border pixel

# fixes chromium apps devouring super
for_window [app_id="^chrome-.*-.*$"] shortcuts_inhibitor disable

for_window [class="^Steam$"] layout tabbed
for_window [title="Virtual Machine Manager"] layout tabbed

for_window [title="Firefox — Sharing Indicator"] floating enable
for_window [title="Firefox — Sharing Indicator"] kill

### keybinds ###
bindsym $mod+Return exec $term
bindsym $mod+Shift+Return exec $term --title 'weallfloatdownhere'
bindsym $mod+Shift+q kill
bindsym $mod+Home exec swaylock
bindsym Delete exec makoctl dismiss
bindsym $mod+Delete exec makoctl dismiss --all
bindsym Mod1+Shift+Return Return
bindsym $mod+d exec bemenu-run -l 20 -c -W 0.2
bindsym $mod+Shift+p exec --no-startup-id pa-bemenu
bindsym $mod+Shift+o exec --no-startup-id shmoji bemenu
bindsym $mod+Shift+c reload

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'

floating_modifier $mod normal

#
# 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
#
# 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

    # volume control, obviously
    bindsym XF86AudioLowerVolume exec vol down 10
    bindsym XF86AudioRaiseVolume exec vol up 10

    # Switch the current container between different layout styles
    # bindsym $mod+s layout stacking
    bindsym $mod+w layout tabbed
    # bindsym $mod+e layout toggle split
    default_border pixel

    # Make the current focus fullscreen
    bindsym $mod+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+a focus parent

    # Float config
    # use swaymsg -t get_tree to find class or app_id
#    for_window [class="Dota 2"] floating enable, border none
#
# 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

#
# Misc
#

bindsym $mod+Shift+s exec grim -g "$(slurp)" - | wl-copy

include colorscheme
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

bar {
    position top

    # When the status_command prints a new line to stdout, swaybar updates.
    # The default just shows the current date and time.
    status_command statusbar
    pango_markup enabled

    colors {
        background $base00
        separator  $base01
        statusline $base04

        # State             Border  BG      Text
        focused_workspace   $base05 $base0D $base00
        active_workspace    $base05 $base03 $base00
        inactive_workspace  $base03 $base01 $base05
        urgent_workspace    $base08 $base08 $base00
        binding_mode        $base00 $base0A $base00
    }
}

include /etc/sway/config.d/*
include ~/.config/sway/`hostname`