diff --git a/desktop-gruvbox-sway/.config/sway/config b/desktop-gruvbox-sway/.config/sway/config
new file mode 100644
index 00000000..62dee9de
--- /dev/null
+++ b/desktop-gruvbox-sway/.config/sway/config
@@ -0,0 +1,192 @@
+#
+# Salt's Sway configuration file
+# Licensed under the terms of the MIT License
+#
+
+## 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
+
+## COSMETICS
+font pango:Roboto 10
+default_border pixel 4
+focus_on_window_activation none
+gaps inner 6
+
+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 "konsole"
+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"
+
+# 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 "~/.bin/i3lock-custom"
+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
+
+## INPUTS
+# Touchpad
+input "type:touchpad" {
+	accel_profile		flat	# Disables mouse acceleration
+	drag			enabled	# Enable tap-dragging
+	dwt			enabled	# Disable device while typing
+	pointer_accel		0	# REALLY disable mouse accel
+	tap			enabled	# Enable tapping
+	tap_button_map		lrm	# 1/2/3-finger tap (left, right, middle)
+}
+
+## 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"
+}
diff --git a/desktop-gruvbox-sway/.config/waybar/config b/desktop-gruvbox-sway/.config/waybar/config
new file mode 100644
index 00000000..02cc6227
--- /dev/null
+++ b/desktop-gruvbox-sway/.config/waybar/config
@@ -0,0 +1,49 @@
+{
+	"layer": "top", // Waybar at top layer
+	"height": 40, // Waybar height (to be removed for auto height)
+	"modules-left": ["sway/workspaces", "sway/mode", "custom/media"],
+	"modules-center": ["tray"],
+	"modules-right": ["pulseaudio", "battery", "clock"],
+	"sway/workspaces": {
+		"disable-scroll": true
+	},
+	"tray": {
+		"icon-size": 16,
+		"spacing": 10
+	},
+	"clock": {
+		"format": "{:%a %b %d %I:%M %p}",
+		"format-alt": "{:%Y-%m-%d}",
+		"tooltip": false
+	},
+	"battery": {
+		"states": {
+			// "good": 95,
+			"warning": 30,
+			"critical": 15
+		},
+		"format": "{icon}",
+		"format-charging": "{icon}",
+		"format-plugged": "{icon}",
+		"format-icons": ["", "", "", "", ""]
+	},
+	"pulseaudio": {
+		"scroll-step": 0,
+		"format": "{volume}% {icon} {format_source}",
+		"format-bluetooth": "{volume}% {icon} {format_source}",
+		"format-bluetooth-muted": " {icon} {format_source}",
+		"format-muted": " {format_source}",
+		"format-source": "{volume}% ",
+		"format-source-muted": "",
+		"format-icons": {
+			"headphones": "",
+			"handsfree": "",
+			"headset": "",
+			"phone": "",
+			"portable": "",
+			"car": "",
+			"default": ["", "", ""]
+		},
+		"on-click": "pavucontrol-qt"
+	}
+}
diff --git a/desktop-gruvbox-sway/.config/waybar/style.css b/desktop-gruvbox-sway/.config/waybar/style.css
new file mode 100644
index 00000000..a87c4e84
--- /dev/null
+++ b/desktop-gruvbox-sway/.config/waybar/style.css
@@ -0,0 +1,58 @@
+/*
+ * style.css
+ * Copyright (C) 2021 Vintage Salt
+ *
+ * Distributed under terms of the MIT license.
+ */
+
+* {
+	border: none;
+	border-radius: 0;
+	font-family: IBM Plex Sans Medium;
+	font-size: 13px;
+}
+
+window#waybar {
+	background: @theme_base_color;
+	border-bottom: 4px solid #32302f;
+}
+
+/* swaywm stuff */
+#workspaces {
+	padding: 0 6px;
+}
+#workspaces button {
+	background: transparent;
+	padding: 0 0.9em;
+}
+#workspaces button.focused {
+	background: #83a598;
+	color: @theme_base_color;
+}
+#mode {
+	background: #fb4934;
+	color: @theme_base_color;
+	padding: 0 1em;
+}
+
+/* widgets */
+#pulseaudio {
+	padding: 0 1em;
+}
+#battery {
+	padding: 0 1em;
+	font-size: 16px;
+}
+#battery.charging {
+	color: #b8bb26;
+}
+#battery.warning {
+	color: #fabd2f;
+}
+#battery.criticcal {
+	color: #fb4934;
+}
+#clock {
+	border-left: 1px solid #32302f;
+	padding: 0 1em;
+}