Reworked sway config to be the correct amount of modular

This commit is contained in:
Ezri Brimhall 2024-03-07 11:11:32 -07:00
parent 147d46b91e
commit 6988108459
Signed by: ezri
GPG Key ID: D4EE46AFBD899DB5
18 changed files with 302 additions and 659 deletions

View File

@ -1,19 +1,224 @@
### ###
# Tycho Station Sway Config #
### ###
#### -*-conf-space-*- ####
## Global Sway Config File ##
#### ####
# This config file is modular. Set variables here, then use them in
# drop-in config files located in ~/.config/sway/config.d/
# This config file is global, anything in this file should work on all devices.
# Any device-specific configuration should be placed in one of these drop-in
# locations:
# - `display-arrangement.conf` -- display arrangement
# - `workspace-arrangement.conf` -- workspace arrangement
# - `local-config.d/*.conf` -- additional device-specific configuration files
# These files should be symlinks managed by `yadm`.
### ###
# Set Variables #
### ###
set $mod Mod4
set $alt Mod1
set $colors.primary '#815986'
set $colors.background '#2d272f'
set $colorprimary '#815986'
set $colorbackground '#2d272f'
set $colorwallpaper '#1e1e1e'
### ###
# HERE BE DRAGONS #
### ###
## ##
# Configure displays and workspaces #
## ##
# Do not edit anything below these comments. You have been warned.
include ~/.config/sway/config.d/*.conf
## Set Background
output * bg '#1e1e1e' solid_color
## Include Device-Specific Configs
include display-arrangement.conf
include workspace-arrangement.conf
### ###
# Window Management Keybinds #
### ###
floating_modifier $mod
## Resize Mode
mode "resize" {
bindsym {
# Arrow key bindings
Left resize shrink width 10 px or 1 ppt
Right resize grow width 10 px or 1 ppt
Up resize shrink height 10 px or 1 ppt
Down resize grow height 10 px or 1 ppt
# Emacs bindings
$mod+b resize shrink width 10 px or 1 ppt
$mod+f resize grow width 10 px or 1 ppt
$mod+p resize shrink height 10 px or 1 ppt
$mod+n resize grow height 10 px or 1 ppt
# Escape bindings
Return mode "default"
Escape mode "default"
$mod+r mode "default"
}
}
## Moving Windows
bindsym {
# Arrow key bindings
$mod+Shift+Left move left
$mod+Shift+Right move right
$mod+Shift+Up move up
$mod+Shift+Down move down
# Emacs bindings
$mod+Shift+b move left
$mod+Shift+f move right
$mod+Shift+p move up
$mod+Shift+n move down
}
## Shifting Focus
bindsym {
# Arrow key bindings
$mod+Left focus left
$mod+Right focus right
$mod+Up focus up
$mod+Down focus down
# Emacs bindings
$mod+b focus left
$mod+f focus right
$mod+p focus up
$mod+n focus down
}
## Containers
bindsym {
# Create new containers
$mod+h split h
$mod+v split v
# Rearrange current container
$mod+e layout toggle split
$mod+t layout tabbed
$mod+s layout stacking
}
## Close focused window
bindsym $mod+Shift+q kill
### ###
# Style Configuration #
### ###
## Font
font pango:JetBrainsMono Nerd Font 8
## Borders
default_border pixel 1
## Colors
client.focused $colorprimary $colorbackground $colorprimary $colorprimary $colorprimary
client.focused_inactive $colorbackground $colorbackground $colorprimary $colorbackground $colorbackground
client.unfocused $colorwallpaper $colorwallpaper $colorprimary $colorbackground $colorbackground
## Window gaps
gaps inner 10
## GTK theme
exec_always gsettings set org.gnome.desktop.interface {
gtk-theme 'Nordic-darker'
icon-theme 'ePapirus-dark'
font-name 'JetBrainsMono NF:12'
text-scaling-factor 1
}
## Terminals
for_window [app_id="Alacritty"] {
border normal 1
client.focused $colorprimary $colorbackground $colorprimary $colorprimary $colorprimary
client.focused_inactive $colorbackground $colorbackground $colorprimary $colorbackground $colorbackground
client.unfocused $colorbackground $colorwallpaper $colorprimary $colorbackground $colorbackground
}
### ###
# Application Keybinds #
### ###
## Reload Sway
bindsym $mod+Shift+r reload
## Default Application Launcher
bindsym $mod+Return exec default-application-launcher
## Terminal Launcher
bindsym $mod+Shift+Return exec alacritty msg create-window || alacritty
## Program Menu
bindsym $mod+d exec wofi --show drun
## Media Controls
bindsym --locked {
XF86AudioPlay exec playerctl play-pause
XF86AudioNext exec playerctl next
XF86AudioPrev exec playerctl previous
}
## Screen Locking
bindsym $mod+l exec loginctl lock-session
## Notifications
bindsym $mod+Ctrl+Space exec swaync-client --hide-latest
bindsym Ctrl+Shift+Space exec swaync-client -t
## Screenshotting
bindsym {
Shift+Print exec grimshot copy window && notify-send -a 'Screenshot' -u low 'Screenshot taken' 'An image of the selected window has been copied to clipboard'
Ctrl+Print exec grimshot copy area && notify-send -a 'Screenshot' -u low 'Screenshot taken' 'An image of the selected area has been copied to clipboard'
Print exec grimshot copy screen && notify-send -a 'Screenshot' -u low 'Screenshot taken' 'An image of the entire screen has been copied to clipboard'
Mod1+Print exec grimshot copy output && notify-send -a 'Screenshot' -u low 'Screenshot taken' 'An image of the focused output has been copied to clipboard'
}
### ###
# Input Configuration #
### ###
## Keyboard Settings
input type:keyboard {
xkb_numlock enabled
xkb_options compose:caps
xkb_file ~/.config/sway/keymap.xkb
}
## Touchpad Settings
input type:touchpad {
tap enabled
natural_scroll enabled
dwt disabled
drag enabled
accel_profile adaptive
}
## Mouse Settings
input type:pointer {
accel_profile flat
natural_scroll disabled
}
### ###
# Service Management #
### ###
## Import Environment Variables
exec_always XDG_CURRENT_DESKTOP=sway {
systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP PATH ASDF_DATA_DIR
dbus-update-activation-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP PATH ASDF_DATA_DIR
}
## Start Session Target
exec_always systemctl --user start sway-session.target
### ###
# Generic Local Configuration #
### ###
## Include any relevant files from local-config.d/
include local-config.d/*.conf

View File

@ -1,9 +0,0 @@
### ###
# Controls for Sway #
### ###
# This file includes "meta" controls, that is, keybinds
# for sway itself.
bindsym $mod+Shift+r reload
bindsym $mod+Shift+e exit

View File

@ -1,9 +0,0 @@
# Display Arrangement #
set $leftdisplay 'HDMI-A-1'
set $centerdisplay 'DP-2'
output {
$leftdisplay pos 0 0 mode 1920x1200
$centerdisplay pos 1920 0 mode 1920x1200
}

View File

@ -1,7 +0,0 @@
set $leftdisplay 'Hewlett Packard HP Z24n CN47090537'
set $centerdisplay 'Hewlett Packard HP Z24n CN4709053L'
output {
$leftdisplay pos 0 0 mode 1920x1200
$centerdisplay pos 1920 0 mode 1920x1200
}

View File

@ -1,80 +0,0 @@
### ###
# Display Settings #
### ###
output * bg '#1e1e1e' solid_color
mode "output-switching" {
bindsym 1 mode output-1
bindsym 2 mode output-2
# bindsym 3 mode output-3
}
mode "output-1" {
## Focus output
bindsym Return exec swaymsg focus output $leftdisplay && swaymsg mode default
## Focus workspace on another output
bindsym 1 exec swaymsg workspace 1 && swaymsg mode default
bindsym 2 exec swaymsg workspace 2 && swaymsg mode default
bindsym 3 exec swaymsg workspace 3 && swaymsg mode default
bindsym 4 exec swaymsg workspace 4 && swaymsg mode default
bindsym 5 exec swaymsg workspace 5 && swaymsg mode default
bindsym 6 exec swaymsg workspace 6 && swaymsg mode default
bindsym 7 exec swaymsg workspace 7 && swaymsg mode default
bindsym 8 exec swaymsg workspace 8 && swaymsg mode default
bindsym 9 exec swaymsg workspace 9 && swaymsg mode default
bindsym 0 exec swaymsg workspace 10 && swaymsg mode default
## Move container to focused workspace on other output
bindsym Shift+Return exec swaymsg move container to output $leftdisplay && swaymsg mode default
## Move container to workspace on another output
bindsym Shift+1 exec swaymsg move container to workspace 1 && swaymsg mode default
bindsym Shift+2 exec swaymsg move container to workspace 2 && swaymsg mode default
bindsym Shift+3 exec swaymsg move container to workspace 3 && swaymsg mode default
bindsym Shift+4 exec swaymsg move container to workspace 4 && swaymsg mode default
bindsym Shift+5 exec swaymsg move container to workspace 5 && swaymsg mode default
bindsym Shift+6 exec swaymsg move container to workspace 6 && swaymsg mode default
bindsym Shift+7 exec swaymsg move container to workspace 7 && swaymsg mode default
bindsym Shift+8 exec swaymsg move container to workspace 8 && swaymsg mode default
bindsym Shift+9 exec swaymsg move container to workspace 9 && swaymsg mode default
bindsym Shift+0 exec swaymsg move container to workspace 10 && swaymsg mode default
}
mode "output-2" {
## Focus output
bindsym Return exec swaymsg focus output $centerdisplay && swaymsg mode default
## Focus workspace on another output
bindsym 1 exec swaymsg workspace 11 && swaymsg mode default
bindsym 2 exec swaymsg workspace 12 && swaymsg mode default
bindsym 3 exec swaymsg workspace 13 && swaymsg mode default
bindsym 4 exec swaymsg workspace 14 && swaymsg mode default
bindsym 5 exec swaymsg workspace 15 && swaymsg mode default
bindsym 6 exec swaymsg workspace 16 && swaymsg mode default
bindsym 7 exec swaymsg workspace 17 && swaymsg mode default
bindsym 8 exec swaymsg workspace 18 && swaymsg mode default
bindsym 9 exec swaymsg workspace 19 && swaymsg mode default
bindsym 0 exec swaymsg workspace 20 && swaymsg mode default
## Move container to focused workspace on other output
bindsym Shift+Return exec swaymsg move container to output $centerdisplay && swaymsg mode default
## Move container to workspace on another output
bindsym Shift+1 exec swaymsg move container to workspace 11 && swaymsg mode default
bindsym Shift+2 exec swaymsg move container to workspace 12 && swaymsg mode default
bindsym Shift+3 exec swaymsg move container to workspace 13 && swaymsg mode default
bindsym Shift+4 exec swaymsg move container to workspace 14 && swaymsg mode default
bindsym Shift+5 exec swaymsg move container to workspace 15 && swaymsg mode default
bindsym Shift+6 exec swaymsg move container to workspace 16 && swaymsg mode default
bindsym Shift+7 exec swaymsg move container to workspace 17 && swaymsg mode default
bindsym Shift+8 exec swaymsg move container to workspace 18 && swaymsg mode default
bindsym Shift+9 exec swaymsg move container to workspace 19 && swaymsg mode default
bindsym Shift+0 exec swaymsg move container to workspace 10 && swaymsg mode default
}
bindsym $mod+O mode output-switching

View File

@ -1,66 +0,0 @@
### ###
# Workspaces #
### ###
# This section defines the workspaces and creates keybinds to switch
# between them. It relies on an `i3-sensible-workspaces' command
# which prints the name of the workspace to target when given a
# workspace index
## Define Workspaces
workspace {
# Left monitor workspaces
1 output $leftdisplay
2 output $leftdisplay
3 output $leftdisplay
4 output $leftdisplay
5 output $leftdisplay
6 output $leftdisplay
7 output $leftdisplay
8 output $leftdisplay
9 output $leftdisplay
10 output $leftdisplay
# Right monitor workspaces
11 output $centerdisplay
12 output $centerdisplay
13 output $centerdisplay
14 output $centerdisplay
15 output $centerdisplay
16 output $centerdisplay
17 output $centerdisplay
18 output $centerdisplay
19 output $centerdisplay
20 output $centerdisplay
}
## Workspace Switching Keybinds
bindsym {
$mod+1 exec swaymsg workspace $(i3-sensible-workspaces 1 )
$mod+2 exec swaymsg workspace $(i3-sensible-workspaces 2 )
$mod+3 exec swaymsg workspace $(i3-sensible-workspaces 3 )
$mod+4 exec swaymsg workspace $(i3-sensible-workspaces 4 )
$mod+5 exec swaymsg workspace $(i3-sensible-workspaces 5 )
$mod+6 exec swaymsg workspace $(i3-sensible-workspaces 6 )
$mod+7 exec swaymsg workspace $(i3-sensible-workspaces 7 )
$mod+8 exec swaymsg workspace $(i3-sensible-workspaces 8 )
$mod+9 exec swaymsg workspace $(i3-sensible-workspaces 9 )
$mod+0 exec swaymsg workspace $(i3-sensible-workspaces 10)
}
## Window Reassignment Keybinds
bindsym {
$mod+Shift+1 exec swaymsg move container to workspace $(i3-sensible-workspaces 1 )
$mod+Shift+2 exec swaymsg move container to workspace $(i3-sensible-workspaces 2 )
$mod+Shift+3 exec swaymsg move container to workspace $(i3-sensible-workspaces 3 )
$mod+Shift+4 exec swaymsg move container to workspace $(i3-sensible-workspaces 4 )
$mod+Shift+5 exec swaymsg move container to workspace $(i3-sensible-workspaces 5 )
$mod+Shift+6 exec swaymsg move container to workspace $(i3-sensible-workspaces 6 )
$mod+Shift+7 exec swaymsg move container to workspace $(i3-sensible-workspaces 7 )
$mod+Shift+8 exec swaymsg move container to workspace $(i3-sensible-workspaces 8 )
$mod+Shift+9 exec swaymsg move container to workspace $(i3-sensible-workspaces 9 )
$mod+Shift+0 exec swaymsg move container to workspace $(i3-sensible-workspaces 10)
}

View File

@ -1,71 +0,0 @@
### ###
# Window Management #
### ###
# This file contains settings and keybinds related to window
# management
## Allow dragging of floating windows whilst holding $mod
floating_modifier $mod
## Define a window resizing mode
mode "resize" {
bindsym {
Left resize shrink width 10 px or 1 ppt
Right resize grow width 10 px or 1 ppt
Up resize shrink height 10 px or 1 ppt
Down resize grow height 10 px or 1 ppt
Return mode "default"
Escape mode "default"
$mod+r mode "default"
}
}
bindsym $mod+r mode "resize"
## Moving windows
bindsym {
$mod+Shift+b move left
$mod+Shift+f move right
$mod+Shift+p move up
$mod+Shift+n move down
$mod+Shift+Left move left
$mod+Shift+Right move right
$mod+Shift+Up move up
$mod+Shift+Down move down
}
## Shifting focus
bindsym {
$mod+b focus left
$mod+f focus right
$mod+p focus up
$mod+n focus down
$mod+Left focus left
$mod+Right focus right
$mod+Up focus up
$mod+Down focus down
$mod+a focus parent
$mod+space focus mode_toggle
}
## Creating and rearranging containers
bindsym {
# Create new split-view containers
$mod+h split h
$mod+v split v
# Rearrange focused container
$mod+e layout toggle split
$mod+t layout tabbed
$mod+s layout stacking
# Toggle floating of focused container
$mod+Shift+space floating toggle
}
## Close focused window
bindsym $mod+Shift+q kill

View File

@ -1,36 +0,0 @@
### ###
# Style configuration #
### ###
## Window-manager Font
font pango:JetBrainsMono Nerd Font 8
## One-pixel borders around windows
default_border pixel 1
set $colorprimary '#815986'
set $colorbackground '#2d272f'
set $colorwallpaper '#1e1e1e'
## Colors (define these in the main config file
client.focused $colorprimary $colorbackground $colorprimary $colorprimary $colorprimary
client.focused_inactive $colorbackground $colorbackground $colorprimary $colorbackground $colorbackground
client.unfocused $colorwallpaper $colorwallpaper $colorprimary $colorbackground $colorbackground
## Window gaps
gaps inner 10
## GTK theme
exec_always gsettings set org.gnome.desktop.interface {
gtk-theme 'Nordic-darker'
icon-theme 'ePapirus-dark'
font-name 'Source Sans Pro:12'
text-scaling-factor 1
}
for_window [app_id="Alacritty"] {
border normal 1
client.focused $colorprimary $colorbackground $colorprimary $colorprimary $colorprimary
client.focused_inactive $colorbackground $colorbackground $colorprimary $colorbackground $colorbackground
client.unfocusd $colorbackground $colorwallpaper $colorprimary $colorbackground $colorbackground
}

View File

@ -1,51 +0,0 @@
### ###
# Desktop QoL Features #
### ###
# This file includes common desktop features such as application
# launching keybinds, alongside quality-of-life things such as media
# controls.
## Application 'sensible' launcher.
# Relies on an `i3-sensible-launcher' script, intended to launch
# specific programs based on environment data, such as the current
# workspace.
bindsym $mod+Return exec i3-sensible-launcher
## Terminal launch override
# Quick keybind to launch a terminal on any workspace, ignoring the
# normal default.
bindsym $mod+Shift+Return exec alacritty msg create-window || alacritty
## Program menu
bindsym $mod+d exec wofi --show drun
## Media controls
# Relies on the `playerctl' command, will not function without it.
# Security note: these keybinds will function while screen is locked
bindsym --locked {
XF86AudioPlay exec playerctl play-pause
XF86AudioNext exec playerctl next
XF86AudioPrev exec playerctl previous
Ctrl+F7 exec playerctl previous
Ctrl+F8 exec playerctl play-pause
Ctrl+F9 exec playerctl next
}
## Screen locking
# This depends on a running screen-locking agent (ideally `swayidle')
bindsym $mod+l exec loginctl lock-session
## Notification management
# This depends on the `dunst' notification daemon
bindsym $mod+Ctrl+Space exec swaync-client --hide-latest
bindsym Ctrl+Shift+Space exec swaync-client -t
## Screenshotting
bindsym {
Shift+Print exec grimshot copy window && notify-send -a 'Screenshot' -u low 'Screenshot taken' 'An image of the focused window has been copied to clipboard'
Ctrl+Print exec grimshot copy area && notify-send -a 'Screenshot' -u low 'Screenshot taken' 'An image of the selected area has been copied to clipboard'
Print exec grimshot copy screen && notify-send -a 'Screenshot' -u low 'Screenshot taken' 'An image of the entire screen has been copied to clipboard'
Mod1+Print exec grimshot copy output && notify-send -a 'Screenshot' -u low 'Screenshot taken' 'An image of the focused display has been copied to clipboard'
}

View File

@ -1,21 +0,0 @@
### ###
# Input Configuration #
### ###
# Includes configuration for input devices (keyboards, mice,
# trackpads, etc.)
## Keyboard settings
# Enables numlock, makes capslock into a compose key, and loads custom
# keymap
input * {
xkb_numlock enabled
xkb_options compose:caps
xkb_file ~/.config/sway/keymap.xkb
}
## Touchpad settings
# Enables tap-to-click
input type:touchpad {
tap enabled
}

View File

@ -1,14 +0,0 @@
### ###
# Service Management #
### ###
# This file interacts with SystemD to activate services
## Import activation environment
exec_always XDG_CURRENT_DESKTOP=sway {
systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP PATH ASDF_DATA_DIR
dbus-update-activation-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP PATH ASDF_DATA_DIR
}
## Start the session target
exec_always systemctl --user start sway-session.target

View File

@ -1,19 +0,0 @@
### ###
# Tycho Station Sway Config #
### ###
# This config file is modular. Set variables here, then use them in
# drop-in config files located in ~/.config/sway/config.d/
set $mod Mod4
set $alt Mod1
set $leftdisplay DP-1
set $rightdisplay DP-2
### ###
# HERE BE DRAGONS #
### ###
# Do not edit anything below these comments. You have been warned.
include ~/.config/sway/config.d/*.conf

View File

@ -1,264 +0,0 @@
#### ####
## Tycho Station sway Config File ##
#### ####
### ###
# Display settings #
### ###
# This section controls how connected displays are treated
# Set monitor vars
set $leftdisplay DP-1
set $rightdisplay DP-2
output {
$leftdisplay pos 0 0 mode 1920x1200
$rightdisplay pos 1920 0 mode 1920x1200
* bg '#1e1e1e' solid_color
}
### ###
# Window Manager settings #
### ###
# This section controls how the window manager functions. It does
# not include keybinds that are not directly related to the window
# manager's window management functions.
set $mod Mod4
set $alt Mod1
# Set font
font pango:Source Code Pro 8
# Reload configuration
bindsym $mod+Shift+r reload
# Exit
bindsym $mod+Shift+e exit
### ###
# Window Management Settings #
### ###
# This section controls window behavior and management keybinds.
# It also includes the resize mode.
# Set keybinds to switch workspaces
bindsym $mod+1 exec swaymsg workspace $(i3-sensible-workspaces 1 )
bindsym $mod+2 exec swaymsg workspace $(i3-sensible-workspaces 2 )
bindsym $mod+3 exec swaymsg workspace $(i3-sensible-workspaces 3 )
bindsym $mod+4 exec swaymsg workspace $(i3-sensible-workspaces 4 )
bindsym $mod+5 exec swaymsg workspace $(i3-sensible-workspaces 5 )
bindsym $mod+6 exec swaymsg workspace $(i3-sensible-workspaces 6 )
bindsym $mod+7 exec swaymsg workspace $(i3-sensible-workspaces 7 )
bindsym $mod+8 exec swaymsg workspace $(i3-sensible-workspaces 8 )
bindsym $mod+9 exec swaymsg workspace $(i3-sensible-workspaces 9 )
bindsym $mod+0 exec swaymsg workspace $(i3-sensible-workspaces 10)
# Set keybinds to move windows between workspaces
bindsym $mod+Shift+1 exec swaymsg move container to workspace $(i3-sensible-workspaces 1 )
bindsym $mod+Shift+2 exec swaymsg move container to workspace $(i3-sensible-workspaces 2 )
bindsym $mod+Shift+3 exec swaymsg move container to workspace $(i3-sensible-workspaces 3 )
bindsym $mod+Shift+4 exec swaymsg move container to workspace $(i3-sensible-workspaces 4 )
bindsym $mod+Shift+5 exec swaymsg move container to workspace $(i3-sensible-workspaces 5 )
bindsym $mod+Shift+6 exec swaymsg move container to workspace $(i3-sensible-workspaces 6 )
bindsym $mod+Shift+7 exec swaymsg move container to workspace $(i3-sensible-workspaces 7 )
bindsym $mod+Shift+8 exec swaymsg move container to workspace $(i3-sensible-workspaces 8 )
bindsym $mod+Shift+9 exec swaymsg move container to workspace $(i3-sensible-workspaces 9 )
bindsym $mod+Shift+0 exec swaymsg move container to workspace $(i3-sensible-workspaces 10)
# Bind workspaces to monitors
workspace 1 output $leftdisplay
workspace 2 output $leftdisplay
workspace 3 output $leftdisplay
workspace 4 output $leftdisplay
workspace 5 output $leftdisplay
workspace 6 output $leftdisplay
workspace 7 output $leftdisplay
workspace 8 output $leftdisplay
workspace 9 output $leftdisplay
workspace 10 output $leftdisplay
workspace 11 output $rightdisplay
workspace 12 output $rightdisplay
workspace 13 output $rightdisplay
workspace 14 output $rightdisplay
workspace 15 output $rightdisplay
workspace 16 output $rightdisplay
workspace 17 output $rightdisplay
workspace 18 output $rightdisplay
workspace 19 output $rightdisplay
workspace 20 output $rightdisplay
# Allow dragging of floating windows whilst holding $mod
floating_modifier $mod
# Resize mode
mode "resize" {
bindsym Left resize shrink width 10 px or 1 ppt
bindsym Down resize grow height 10 px or 1 ppt
bindsym Up resize shrink height 10 px or 1 ppt
bindsym f resize grow width 10 px or 1 ppt
# Exit resize mode
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+r mode "default"
}
bindsym $mod+r mode "resize"
bindsym {
# Move windows
$mod+Shift+b move left
$mod+Shift+f move right
$mod+Shift+p move up
$mod+Shift+n move down
$mod+Shift+Left move left
$mod+Shift+Right move right
$mod+Shift+Up move up
$mod+Shift+Down move down
# Shift focus
$mod+b focus left
$mod+f focus right
$mod+p focus up
$mod+n focus down
$mod+a focus parent
# Splits
$mod+h split h
$mod+v split v
# Fullscreen
$mod+$alt+f fullscreen toggle
# Floating
$mod+Shift+space floating toggle
$mod+space focus mode_toggle
# Close window
$mod+Shift+q kill
# Change window arrangement
$mod+e layout toggle split
$mod+t layout tabbed
$mod+s layout stacking
}
### ###
# Appearance #
### ###
default_border pixel 1
# Colors
set $blue #5E81AC
set $orange #D08770
set $grey #2E3440
set $wallpaper #242933
set $primary '#815986'
set $background '#2d272f'
set $wallpaper '#242933'
client.focused $primary $background $primary $primary $primary
client.focused_inactive $primary $background $primary $background $background
client.unfocused $background $background $primary $background $background
# client.focused $blue $grey $blue $blue $blue
# client.focused_inactive $grey $grey $blue $blue $grey
# client.unfocused $grey $grey $blue $blue $grey
# client.urgent $orange $wallpaper $orange $orange $orange
# Gaps
gaps inner 10
# Themes
set $gnome-schema org.gnome.desktop.interface
exec_always {
gsettings set $gnome-schema gtk-theme 'Nordic-darker'
gsettings set $gnome-schema icon-theme 'ePapirus-Dark'
gsettings set $gnome-schema font-name 'Source Sans Pro:12'
gsettings set $gnome-schema text-scaling-factor 1
}
### ###
# Desktop Features #
### ###
# This section includes basic desktop features, such as
# the ability to launch programs and functional media keys
# Sensible launcher (launches program based on workspace)
bindsym $mod+Return exec i3-sensible-launcher
# Terminal launch override
bindsym $mod+Shift+Return exec alacritty
# Program menu
bindsym $mod+d exec wofi --show drun
# Media keys
bindsym --locked {
XF86AudioPlay exec playerctl play-pause
XF86AudioNext exec playerctl next
XF86AudioPrev exec playerctl previous
}
# Volume keys (disabled)
# bindsym --locked {
# XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +1%
# XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -1%
# XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
# }
# Backlight
bindsym --locked {
XF86MonBrightnessUp exec light -A 5
XF86MonBrightnessDown exec light -U 5
}
# Lock screen
bindsym $mod+l exec loginctl lock-session
bindsym $mod+Shift+l exec aggietimed -s /run/user/1000/aggietimed.sock --action clock-out && loginctl lock-session
# Notification management
bindsym $mod+Ctrl+Space exec dunstctl close
# Screenshot bindings
bindsym {
Shift+Print exec grimshot copy area
Ctrl+Print exec grimshot copy window
Print exec grimshot copy screen
Mod1+Print exec grimshot copy output
}
# Start daemons
#include /etc/sway/config.d/50-systemd-user.conf
exec_always env ASDF_DATA_DIR=/home/ezri/.local/share/asdf-vm XDG_CURRENT_DESKTOP=sway {
systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP PATH ASDF_DATA_DIR
dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP PATH ASDF_DATA_DIR
}
exec_always /usr/bin/systemctl --user start sway-session.target
# Start status bars
exec systemd-cat -t eww -p info --stderr-priority=notice eww daemon; sleep 1; eww open-many leftbar rightbar
# Keyboard settings
input * {
xkb_numlock enabled
xkb_options compose:caps
xkb_file ~/.config/sway/keymap.xkb
}
input type:touchpad {
tap enabled
}

View File

@ -0,0 +1,11 @@
### -*-conf-space-*- ###
# S.S.V. Normandy Display Config #
### ###
set $leftdisplay 'HDMI-A-1'
set $centerdisplay 'DP-2'
output {
$leftdisplay pos 0 0 mode --custom 1920x1080@75Hz
$centerdisplay pos 1920 0 mode --custom 1920x1080@75Hz
}

View File

@ -0,0 +1,11 @@
### -*-conf-space-*- ###
# Tycho Station Display Config #
### ###
set $leftdisplay 'Hewlett Packard HP Z24n CN47090537'
set $centerdisplay 'Hewlett Packard HP Z24n CN4709053L'
output {
$leftdisplay pos 0 0 mode 1920x1200
$centerdisplay pos 1920 0 mode 1920x1200
}

View File

@ -0,0 +1,63 @@
### -*-conf-space-*- ###
# Dual-Monitor Workspace Settings #
### ###
# This file defines the workspaces and creates the keybinds to switch
# between them and move containers around between them. This version
# is for dual-monitor systems. The host-specific display-arrangement.conf
# file should declare the $leftdisplay and $rightdisplay variables used
# here.
workspace {
# Left monitor workspaces
1 output $leftdisplay
2 output $leftdisplay
3 output $leftdisplay
4 output $leftdisplay
5 output $leftdisplay
6 output $leftdisplay
7 output $leftdisplay
8 output $leftdisplay
9 output $leftdisplay
10 output $leftdisplay
# Right monitor workspaces
11 output $rightdisplay
12 output $rightdisplay
13 output $rightdisplay
14 output $rightdisplay
15 output $rightdisplay
16 output $rightdisplay
17 output $rightdisplay
18 output $rightdisplay
19 output $rightdisplay
20 output $rightdisplay
}
## Workspace Switching Keybinds
bindsym {
$mod+1 exec swaymsg workspace $(sway-find-workspace 1 )
$mod+2 exec swaymsg workspace $(sway-find-workspace 2 )
$mod+3 exec swaymsg workspace $(sway-find-workspace 3 )
$mod+4 exec swaymsg workspace $(sway-find-workspace 4 )
$mod+5 exec swaymsg workspace $(sway-find-workspace 5 )
$mod+6 exec swaymsg workspace $(sway-find-workspace 6 )
$mod+7 exec swaymsg workspace $(sway-find-workspace 7 )
$mod+8 exec swaymsg workspace $(sway-find-workspace 8 )
$mod+9 exec swaymsg workspace $(sway-find-workspace 9 )
$mod+0 exec swaymsg workspace $(sway-find-workspace 10)
}
## Window Reassignment Keybinds
bindsym {
$mod+Shift+1 exec swaymsg move container to workspace $(sway-find-workspace 1 )
$mod+Shift+2 exec swaymsg move container to workspace $(sway-find-workspace 2 )
$mod+Shift+3 exec swaymsg move container to workspace $(sway-find-workspace 3 )
$mod+Shift+4 exec swaymsg move container to workspace $(sway-find-workspace 4 )
$mod+Shift+5 exec swaymsg move container to workspace $(sway-find-workspace 5 )
$mod+Shift+6 exec swaymsg move container to workspace $(sway-find-workspace 6 )
$mod+Shift+7 exec swaymsg move container to workspace $(sway-find-workspace 7 )
$mod+Shift+8 exec swaymsg move container to workspace $(sway-find-workspace 8 )
$mod+Shift+9 exec swaymsg move container to workspace $(sway-find-workspace 9 )
$mod+Shift+0 exec swaymsg move container to workspace $(sway-find-workspace 10)
}