Left to its own devices, my TV will default to a mode that runs at 59Hz. This can, in some situations, cause really weird input latency issues on both displays as they're running at different refresh rates. So this forces my TV to 60Hz to match my main displays. This is system-specific and should possibly go into some imported "local" file but meh.
205 lines
6.3 KiB
Text
205 lines
6.3 KiB
Text
# base16 color scheme
|
||
# %%base16_template: i3##colors %%
|
||
set $base00 #000000
|
||
set $base01 #202020
|
||
set $base02 #311647
|
||
set $base03 #606060
|
||
set $base04 #b0b0b0
|
||
set $base05 #f0f0f0
|
||
set $base06 #c0c0c0
|
||
set $base07 #ffffff
|
||
set $base08 #ed008c
|
||
set $base09 #f7941d
|
||
set $base0A #f7c61d
|
||
set $base0B #8dc73f
|
||
set $base0C #65cdcd
|
||
set $base0D #3f7fff
|
||
set $base0E #9f4fdf
|
||
set $base0F #a16946
|
||
# %%base16_template_end%%
|
||
|
||
# Global font config
|
||
font monospace 11
|
||
|
||
# Property Name Border BG Text Indicator Child Border
|
||
client.focused $base00 $base02 $base05 $base0D $base02
|
||
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
|
||
|
||
# Set mod key to Win key
|
||
set $mod Mod4
|
||
|
||
# status bar declarations
|
||
bar swaybar_command waybar
|
||
|
||
# start a terminal
|
||
bindsym $mod+Return exec x-terminal-emulator
|
||
|
||
# screenshot on win+shift+s
|
||
bindsym $mod+Shift+s exec "~/bin/screenshot"
|
||
|
||
# open the front door camera on win+shift+f
|
||
bindsym $mod+Shift+f exec "~/bin/view_frontdoor"
|
||
|
||
# kill focused window
|
||
bindsym $mod+Shift+q kill
|
||
|
||
# kill on titlebar midclick
|
||
bindsym button3 kill
|
||
|
||
# rofi launcher
|
||
bindsym $mod+space exec "rofi -m HDMI-A-2 -show run"
|
||
|
||
# thunar -- file manager
|
||
bindsym $mod+Shift+Return exec "thunar"
|
||
|
||
# open clipboard selection in mpv, for grabbng links from chat/email
|
||
bindsym $mod+m exec "mpv --loop --wayland-app-id=mpv__tv --image-display-duration=inf --force-window --title=`wl-paste` `wl-paste`"
|
||
|
||
# change focus
|
||
bindsym $mod+Left focus left
|
||
bindsym $mod+Down focus down
|
||
bindsym $mod+Up focus up
|
||
bindsym $mod+Right focus right
|
||
|
||
# move focused window
|
||
bindsym $mod+Shift+Left move left
|
||
bindsym $mod+Shift+Down move down
|
||
bindsym $mod+Shift+Up move up
|
||
bindsym $mod+Shift+Right move right
|
||
|
||
# split in horizontal orientation
|
||
bindsym $mod+h split h
|
||
|
||
# split in vertical orientation
|
||
bindsym $mod+v split v
|
||
|
||
# enter fullscreen mode for the focused container
|
||
bindsym $mod+f fullscreen toggle
|
||
|
||
# change container layout (stacked, tabbed, toggle split)
|
||
bindsym $mod+s layout stacking
|
||
bindsym $mod+w layout tabbed
|
||
bindsym $mod+e layout toggle split
|
||
|
||
# toggle tiling / floating
|
||
bindsym $mod+Shift+space floating toggle
|
||
|
||
# toggle sticky (I always call this 'pinned' so I use P)
|
||
bindsym $mod+p sticky toggle
|
||
|
||
# focus the parent container
|
||
bindsym $mod+a focus parent
|
||
|
||
# focus the child container
|
||
bindsym $mod+d focus child
|
||
|
||
# Define names for default workspaces for which we configure key bindings later on.
|
||
# We use variables to avoid repeating the names in multiple places.
|
||
set $ws1 "1"
|
||
set $ws2 "2"
|
||
set $ws3 "3"
|
||
set $ws4 "4"
|
||
set $ws5 "5"
|
||
set $ws6 "6"
|
||
set $ws7 "7"
|
||
set $ws8 "8"
|
||
set $ws9 "9"
|
||
set $ws10 "10"
|
||
|
||
# switch to workspace
|
||
bindsym $mod+1 workspace $ws1
|
||
bindsym $mod+2 workspace $ws2
|
||
bindsym $mod+3 workspace $ws3
|
||
bindsym $mod+4 workspace $ws4
|
||
bindsym $mod+5 workspace $ws5
|
||
bindsym $mod+6 workspace $ws6
|
||
bindsym $mod+7 workspace $ws7
|
||
bindsym $mod+8 workspace $ws8
|
||
bindsym $mod+9 workspace $ws9
|
||
bindsym $mod+0 workspace $ws10
|
||
|
||
# tilda replacement: workspace 10 is a full screen terminal
|
||
# menu key (old tilda hotkey) just swaps to it
|
||
bindsym Menu workspace $ws10
|
||
|
||
# move focused container to workspace
|
||
bindsym $mod+Shift+1 move container to workspace $ws1
|
||
bindsym $mod+Shift+2 move container to workspace $ws2
|
||
bindsym $mod+Shift+3 move container to workspace $ws3
|
||
bindsym $mod+Shift+4 move container to workspace $ws4
|
||
bindsym $mod+Shift+5 move container to workspace $ws5
|
||
bindsym $mod+Shift+6 move container to workspace $ws6
|
||
bindsym $mod+Shift+7 move container to workspace $ws7
|
||
bindsym $mod+Shift+8 move container to workspace $ws8
|
||
bindsym $mod+Shift+9 move container to workspace $ws9
|
||
bindsym $mod+Shift+0 move container to workspace $ws10
|
||
|
||
# reload the configuration file
|
||
bindsym $mod+Shift+c reload
|
||
# exit sway (logs you out of your X 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'
|
||
|
||
# Cycle windows in and out of scratchpad
|
||
bindsym $mod+Shift+minus move scratchpad
|
||
bindsym $mod+minus scratchpad show
|
||
|
||
# resize window (you can also use the mouse for that)
|
||
mode "resize" {
|
||
# These bindings trigger as soon as you enter the resize mode
|
||
|
||
# Pressing left will shrink the window’s width.
|
||
# Pressing right will grow the window’s width.
|
||
# Pressing up will shrink the window’s height.
|
||
# Pressing down will grow the window’s height.
|
||
bindsym j resize shrink width 10 px or 10 ppt
|
||
bindsym k resize grow height 10 px or 10 ppt
|
||
bindsym l resize shrink height 10 px or 10 ppt
|
||
bindsym semicolon resize grow width 10 px or 10 ppt
|
||
|
||
# same bindings, but for the arrow keys
|
||
bindsym Left resize shrink width 1 px or 1 ppt
|
||
bindsym Down resize grow height 1 px or 1 ppt
|
||
bindsym Up resize shrink height 1 px or 1 ppt
|
||
bindsym Right resize grow width 1 px or 1 ppt
|
||
|
||
# back to normal: Enter or Escape or $mod+r
|
||
bindsym Return mode "default"
|
||
bindsym Escape mode "default"
|
||
bindsym $mod+r mode "default"
|
||
}
|
||
|
||
bindsym $mod+r mode "resize"
|
||
|
||
# remove extraneous borders
|
||
hide_edge_borders both
|
||
|
||
# allow workspace swap keys to toggle back and forth with prior workspace
|
||
workspace_auto_back_and_forth yes
|
||
|
||
# Make windows created with a special floating class float
|
||
for_window [app_id=".*__user_requests_float"] floating enable, border pixel 1, resize set 800 600
|
||
|
||
# Make mpv earmarked for the TV go to workspace 9, have no decorations and not steal focus
|
||
for_window [app_id="mpv__tv"] border none
|
||
assign [app_id="mpv__tv"] workspace number 9
|
||
no_focus [app_id="mpv__tv"]
|
||
|
||
# Set mouse acceleration to 0 in Sway
|
||
input * {
|
||
accel_profile "flat"
|
||
pointer_accel 0.0
|
||
}
|
||
|
||
# Set up displays (main desktop, main and TV)
|
||
output "Samsung Electric Company T24B350 Unknown" pos -1920 0
|
||
output "Ancor Communications Inc VE247 G6LMQS117385" transform 270 pos 0 0
|
||
output "Synaptics Inc 232-S13 0x000001B0" pos 1080 0 mode 1280x720@60.000Hz
|
||
|
||
# Execute dbus environment stuff
|
||
# This makes the user keychain work among other things
|
||
exec systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP
|
||
exec hash dbus-update-activation-environment 2>/dev/null && dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP
|