253 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			253 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
#
 | 
						|
# Salt's Sway configuration file
 | 
						|
# Licensed under the terms of the MIT License
 | 
						|
#
 | 
						|
 | 
						|
# Configs
 | 
						|
set $term foot
 | 
						|
 | 
						|
## WORKSPACES
 | 
						|
set $w1 1
 | 
						|
set $w2 2
 | 
						|
set $w3 3
 | 
						|
set $w4 4
 | 
						|
set $w5 5
 | 
						|
set $w6 6
 | 
						|
set $w7 7
 | 
						|
set $w8 8
 | 
						|
set $w9 9
 | 
						|
set $w10 10
 | 
						|
# Workspace setup for my desktop
 | 
						|
# Defaults to whatever on my laptop and on other machines
 | 
						|
set $monprim DisplayPort-0
 | 
						|
set $monsec HDMI-A-0
 | 
						|
workspace $w1 output $monprim
 | 
						|
workspace $w2 output $monprim
 | 
						|
workspace $w3 output $monprim
 | 
						|
workspace $w4 output $monprim
 | 
						|
workspace $w5 output $monprim
 | 
						|
workspace $w6 output $monprim
 | 
						|
workspace $w7 output $monprim
 | 
						|
# Putting 10 here first so it's the default for my secondary
 | 
						|
workspace $w10 output $monsec
 | 
						|
workspace $w8 output $monsec
 | 
						|
workspace $w9 output $monsec
 | 
						|
 | 
						|
## WINDOW RULES
 | 
						|
for_window {
 | 
						|
	[app_id="firefox"]			move container to workspace $w1
 | 
						|
	[app_id="org.keepassxc.KeePassXC"]	move container to workspace $w7
 | 
						|
	[app_id="thunderbird"]			move container to workspace $w8
 | 
						|
	[class="discord"]			move container to workspace $w9
 | 
						|
	[app_id="Element"]			move container to workspace $w9
 | 
						|
	[class="Spotify"]			move container to workspace $w10
 | 
						|
}
 | 
						|
 | 
						|
## COSMETICS
 | 
						|
font pango:IBM Plex Sans 12
 | 
						|
default_border pixel 4
 | 
						|
focus_on_window_activation none
 | 
						|
gaps inner 8
 | 
						|
 | 
						|
set $red #fb4934
 | 
						|
set $green #b8bb26
 | 
						|
set $yellow #fabd2f
 | 
						|
set $blue #83a598
 | 
						|
set $magenta #de869b
 | 
						|
set $cyan #8ec07c
 | 
						|
set $white #ebdbb2
 | 
						|
set $black #282828
 | 
						|
set $gray #32302f
 | 
						|
 | 
						|
#	<colorclass>		<brd>	<bg>	<text>	<ind>	<chld>
 | 
						|
	client.focused		$blue	$black	$white	$gray	$blue
 | 
						|
	client.focused_inactive	$gray	$black	$white	$gray	$gray
 | 
						|
	client.unfocused	$gray	$black	$white	$gray	$gray
 | 
						|
	client.urgent		$yellow	$black	$white	$gray	$yellow
 | 
						|
	client.placeholder	$magenta $black	$white	$gray	$magenta
 | 
						|
	client.background	$bg
 | 
						|
 | 
						|
## KEYBINDINGS
 | 
						|
# Set modifiers
 | 
						|
set $mod Mod1
 | 
						|
set $sup Mod4
 | 
						|
set $ctl Ctrl
 | 
						|
set $shift Shift
 | 
						|
 | 
						|
# Use Mouse+$mod to drag floating windows to their wanted position
 | 
						|
floating_modifier $mod
 | 
						|
 | 
						|
# Program opening and closing
 | 
						|
bindsym $mod+Return exec "$term"
 | 
						|
bindsym $mod+q kill
 | 
						|
bindsym $mod+space exec "rofi -show drun"
 | 
						|
bindsym $mod+backslash exec "rofi -show ssh"
 | 
						|
bindsym $mod+Tab exec "rofi -show window"
 | 
						|
 | 
						|
# Dunst management
 | 
						|
bindsym $mod+$shift+space exec dunstctl close
 | 
						|
bindsym $mod+$shift+Return exec dunstctl close-all
 | 
						|
bindsym $mod+$shift+d exec dunstctl history-pop
 | 
						|
bindsym $mod+$shift+o exec dunstctl context
 | 
						|
 | 
						|
# Pulse controls
 | 
						|
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +5% #increase sound volume
 | 
						|
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -5% #decrease sound volume
 | 
						|
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle # mute sound
 | 
						|
 | 
						|
# Brightness controls
 | 
						|
#bindsym XF86MonBrightnessUp exec xbacklight -inc 5 # increase screen brightness
 | 
						|
#bindsym XF86MonBrightnessDown exec xbacklight -dec 5 # decrease screen brightness
 | 
						|
 | 
						|
# pavucontrol-qt controls
 | 
						|
bindsym $mod+p exec --no-startup-id "pgrep pavucontrol-qt || pavucontrol-qt"
 | 
						|
bindsym $mod+$shift+p exec --no-startup-id "pkill pavucontrol-qt"
 | 
						|
 | 
						|
# i3-settree
 | 
						|
bindsym $mod+o exec --no-startup-id "~/.bin/i3-settree"
 | 
						|
 | 
						|
# Miscellaneous non-movement hotkeys
 | 
						|
bindsym $ctl+$mod+l exec --no-startup-id "loginctl lock-session"
 | 
						|
bindsym $mod+$shift+c reload
 | 
						|
bindsym $mod+$shift+r restart
 | 
						|
 | 
						|
# change focus
 | 
						|
bindsym $mod+h focus left
 | 
						|
bindsym $mod+j focus down
 | 
						|
bindsym $mod+k focus up
 | 
						|
bindsym $mod+l focus right
 | 
						|
 | 
						|
# 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
 | 
						|
 | 
						|
# move focused workspace between monitors
 | 
						|
bindsym $sup+h move workspace to output left
 | 
						|
bindsym $sup+j move workspace to output down
 | 
						|
bindsym $sup+k move workspace to output up
 | 
						|
bindsym $sup+l move workspace to output right
 | 
						|
 | 
						|
# split in horizontal orientation
 | 
						|
bindsym $mod+semicolon split h
 | 
						|
 | 
						|
# split in vertical orientation
 | 
						|
bindsym $mod+v split v
 | 
						|
 | 
						|
# toggle tiling / floating
 | 
						|
bindsym $mod+f floating toggle
 | 
						|
 | 
						|
# enter fullscreen mode for the focused container
 | 
						|
bindsym $mod+$shift+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
 | 
						|
 | 
						|
# focus the parent container
 | 
						|
bindsym $mod+a focus parent
 | 
						|
 | 
						|
# focus the child container
 | 
						|
bindsym $mod+d focus child
 | 
						|
 | 
						|
# switch to workspace
 | 
						|
bindsym $mod+1 workspace $w1
 | 
						|
bindsym $mod+2 workspace $w2
 | 
						|
bindsym $mod+3 workspace $w3
 | 
						|
bindsym $mod+4 workspace $w4
 | 
						|
bindsym $mod+5 workspace $w5
 | 
						|
bindsym $mod+6 workspace $w6
 | 
						|
bindsym $mod+7 workspace $w7
 | 
						|
bindsym $mod+8 workspace $w8
 | 
						|
bindsym $mod+9 workspace $w9
 | 
						|
bindsym $mod+0 workspace $w10
 | 
						|
 | 
						|
# switch to next and previous workspaces
 | 
						|
bindsym $mod+period workspace next
 | 
						|
bindsym $mod+comma workspace prev
 | 
						|
 | 
						|
# move focused container to workspace
 | 
						|
bindsym $mod+$shift+1 move container to workspace $w1
 | 
						|
bindsym $mod+$shift+2 move container to workspace $w2
 | 
						|
bindsym $mod+$shift+3 move container to workspace $w3
 | 
						|
bindsym $mod+$shift+4 move container to workspace $w4
 | 
						|
bindsym $mod+$shift+5 move container to workspace $w5
 | 
						|
bindsym $mod+$shift+6 move container to workspace $w6
 | 
						|
bindsym $mod+$shift+7 move container to workspace $w7
 | 
						|
bindsym $mod+$shift+8 move container to workspace $w8
 | 
						|
bindsym $mod+$shift+9 move container to workspace $w9
 | 
						|
bindsym $mod+$shift+0 move container to workspace $w10
 | 
						|
 | 
						|
## BARS
 | 
						|
# Main bar
 | 
						|
#bar {
 | 
						|
#	swaybar_command waybar
 | 
						|
#}
 | 
						|
 | 
						|
## INPUTS
 | 
						|
# Touchpad
 | 
						|
input "type:touchpad" {
 | 
						|
	accel_profile		flat	# Disables mouse acceleration
 | 
						|
	drag			enabled	# Enable tap-dragging
 | 
						|
	dwt			enabled	# Disable device while typing
 | 
						|
	pointer_accel		1	# REALLY disable mouse accel
 | 
						|
	tap			enabled	# Enable tapping
 | 
						|
	tap_button_map		lrm	# 1/2/3-finger tap (left, right, middle)
 | 
						|
}
 | 
						|
 | 
						|
## OUTPUTS
 | 
						|
# Wallpaper
 | 
						|
output * bg ~/Pictures/Wallpapers/.current fill
 | 
						|
# Laptop display
 | 
						|
output eDP-1 scale 1.5
 | 
						|
 | 
						|
## MODES
 | 
						|
# Resize
 | 
						|
bindsym $mod+r mode "resize"
 | 
						|
mode "resize" {
 | 
						|
	bindsym h resize shrink width 10 px or 10 ppt
 | 
						|
	bindsym j resize grow height 10 px or 10 ppt
 | 
						|
	bindsym k resize shrink height 10 px or 10 ppt
 | 
						|
	bindsym l resize grow width 10 px or 10 ppt
 | 
						|
 | 
						|
	bindsym Left resize shrink width 10 px or 10 ppt
 | 
						|
	bindsym Down resize grow height 10 px or 10 ppt
 | 
						|
	bindsym Up resize shrink height 10 px or 10 ppt
 | 
						|
	bindsym Right resize grow width 10 px or 10 ppt
 | 
						|
 | 
						|
	bindsym Return mode "default"
 | 
						|
	bindsym Escape mode "default"
 | 
						|
	bindsym $mod+r mode "default"
 | 
						|
}
 | 
						|
 | 
						|
## STARTUP APPLICATIONS
 | 
						|
# Put them here
 | 
						|
 | 
						|
## OS-SPECIFIC INCLUDES
 | 
						|
# Lifted from Fedora
 | 
						|
# ---
 | 
						|
# Include configs from 3 locations:
 | 
						|
#  - /usr/share/sway/config.d
 | 
						|
#  - /etc/sway/config.d
 | 
						|
#  - $XDG_CONFIG_HOME/sway/config.d ($HOME/.config/sway/config.d)
 | 
						|
#
 | 
						|
# If multiple directories contain the files with the same name, the later
 | 
						|
# directory takes precedence; `$XDG_CONFIG_HOME/sway/config.d/20-swayidle.conf`
 | 
						|
# will always be loaded instead of `/usr/share/sway/config.d/20-swayidle.conf`
 | 
						|
# or `/etc/sway/config.d/20-swayidle.conf`
 | 
						|
#
 | 
						|
# This mechanism permits overriding our default configuration per-system
 | 
						|
# (/etc) or per-user ($XDG_CONFIG_HOME) basis. Just create the file you
 | 
						|
# want to modify/override in the higher-level directory.
 | 
						|
#
 | 
						|
# For example, to disable the default bar from Fedora configs, you'll need to
 | 
						|
#     $ echo -n > "$HOME/.config/sway/config.d/90-bar.conf"
 | 
						|
#
 | 
						|
# Note the quoting, the $() and the arguments quoting. All the parts are equally
 | 
						|
# important to make the magic work. And if you want to learn the secret behind
 | 
						|
# the trick, it's all in the `wordexp(3)`.
 | 
						|
#
 | 
						|
include '$(/usr/libexec/sway/layered-include "/usr/share/sway/config.d/*.conf" "/etc/sway/config.d/*.conf" "${XDG_CONFIG_HOME:-$HOME/.config}/sway/config.d/*.conf")'
 |