########################
### Controlling Sway ###
########################

# Use Windows key to talk to Sway
set $mod Mod4

# Reload configuration
bindsym $mod+Shift+c reload
# Exit Sway back to TTY
bindsym $mod+Shift+e exit


##################
### Aesthetics ###
##################

# Desktop background
output "REDACTED" bg ~/.config/sway/Whirlpool_7740x3240.jpg fill
output "REDACTED" adaptive_sync on

# Window titlebars
font pango:Noto Sans 11.5
title_align center
titlebar_padding 4
titlebar_border_thickness 4

# Window borders
default_border pixel 4
default_floating_border pixel 4
hide_edge_borders smart

# Window decorations (e6 = 90% opacity)
# class                  border    backgr    text      indic     child_border
client.focused           #960000e6 #960000e6 #ffffffff #c86400e6 #960000e6
client.focused_tab_title #960000e6 #960000e6 #ffffffff #c86400e6 #960000e6
client.focused_inactive  #320000e6 #320000e6 #ffffffff #000000e6 #000000ff
client.unfocused         #320000e6 #000000e6 #ffffffff #000000e6 #000000ff
client.urgent            #ffffffe6 #ffffffe6 #000000ff #ffffffe6 #ffffffe6

# Status bar (swaybar)
bar {
	# Only show bar while $mod is pressed
	mode hide
	hidden_state hide
	modifier $mod

	# General dimensions
	position bottom
	height 30
	status_padding 4
	font pango:Noto Sans 12

	# Workspace buttons on the left
	workspace_min_width 30
	colors {
		# class            border  backgr  text
		focused_workspace  #960000 #960000 #ffffff
		active_workspace   #320000 #320000 #ffffff
		inactive_workspace #000000 #000000 #ffffff
		urgent_workspace   #ffffff #ffffff #000000
	}

	# Other information on the right
	status_command i3status-rs
}


####################
### Applications ###
####################

# Kill focused window
bindsym $mod+Shift+q kill

# Start a terminal
bindsym $mod+Return exec alacritty

# Start bemenu (program launcher)
bindsym $mod+d exec bemenu-run \
	--tf "#ffffff" --tb "#960000" \
	--ff "#ffffff" --fb "#000000" \
	--nf "#ffffff" --nb "#000000" \
	--af "#ffffff" --ab "#000000" \
	--hf "#ffffff" --hb "#960000" \
	--fn "Noto Sans 12" \
	--line-height "30"


#######################
### Layout controls ###
#######################

# Open new windows horizontally/vertically
bindsym $mod+b split horizontal
bindsym $mod+v split vertical

# Set layout mode
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split

# Toggle fullscreen mode for current window
bindsym $mod+f fullscreen toggle

# Toggle floating mode for current window
bindsym $mod+Shift+space floating toggle
# Manipulate floating windows with Mouse+$mod
floating_modifier $mod
# Switch focus between tiling/floating layer
bindsym $mod+space focus mode_toggle


######################
### Changing focus ###
######################

# Change focus
bindsym $mod+h     focus left
bindsym $mod+j     focus down
bindsym $mod+k     focus up
bindsym $mod+l     focus right
bindsym $mod+Left  focus left
bindsym $mod+Down  focus down
bindsym $mod+Up    focus up
bindsym $mod+Right focus right

# Focus on parent/child
bindsym $mod+a focus parent
bindsym $mod+z focus child

# Move focused window
bindsym $mod+Shift+h     move left
bindsym $mod+Shift+j     move down
bindsym $mod+Shift+k     move up
bindsym $mod+Shift+l     move right
bindsym $mod+Shift+Left  move left
bindsym $mod+Shift+Down  move down
bindsym $mod+Shift+Up    move up
bindsym $mod+Shift+Right move right


########################
### Using workspaces ###
########################

# Workspace names
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"

# Switch between workspaces
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

# Page Up/Down keys (bound to mouse fin)
bindsym $mod+Next  workspace next_on_output
bindsym $mod+Prior workspace prev_on_output

# Move focused window to workspace
bindsym $mod+Shift+1 move window to workspace $ws1
bindsym $mod+Shift+2 move window to workspace $ws2
bindsym $mod+Shift+3 move window to workspace $ws3
bindsym $mod+Shift+4 move window to workspace $ws4
bindsym $mod+Shift+5 move window to workspace $ws5
bindsym $mod+Shift+6 move window to workspace $ws6
bindsym $mod+Shift+7 move window to workspace $ws7
bindsym $mod+Shift+8 move window to workspace $ws8
bindsym $mod+Shift+9 move window to workspace $ws9

# Store windows in the "scratchpad", a hidden workspace
bindsym $mod+0 scratchpad show
bindsym $mod+Shift+0 move window to scratchpad