diff --git a/overlays/sway/etc/greetd/sway b/overlays/sway/etc/greetd/sway
index f974acdad702b290a257cb271f542fdccafcee53..6cf7cf53a335b757039358906e5e3c541e3a61e6 100644
--- a/overlays/sway/etc/greetd/sway
+++ b/overlays/sway/etc/greetd/sway
@@ -1,13 +1,8 @@
 # global variables
-include /etc/sway/config.d/00-global-definitions
+include /etc/sway/definitions
 
-include /etc/sway/inputs/default-touchpad
-include /etc/sway/inputs/default-keyboard-ansi
-include /etc/sway/outputs/default
-
-# colorscheme
-include /etc/sway/themes/matcha-theme
-include /etc/sway/config.d/10-ui-settings
+include /etc/sway/inputs/*
+include /etc/sway/outputs/*
 
 exec "gtkgreet -l -c sway; swaymsg exit"
 bindsym $mod+Shift+e exec wlogout --layout /etc/wlogout/user-loggedout --buttons-per-row 3
diff --git a/overlays/sway/etc/sway/config b/overlays/sway/etc/sway/config
index 1082fb1dd8d4169bf84880435d8ce8ba2298d619..fa575b3d51855cf30a12039fcd8519c20fb6f91b 100644
--- a/overlays/sway/etc/sway/config
+++ b/overlays/sway/etc/sway/config
@@ -5,20 +5,16 @@
 # Read `man 5 sway` for a complete reference.
 
 # global variables
-include /etc/sway/config.d/00-global-definitions
+include /etc/sway/definitions
 
-include /etc/sway/inputs/default-touchpad
-include /etc/sway/inputs/default-keyboard-ansi
-include /etc/sway/outputs/default
-
-# colorscheme
-include /etc/sway/themes/matcha-theme
-include /etc/sway/config.d/10-ui-settings
+include /etc/sway/inputs/*
+include /etc/sway/outputs/*
 
 # enable modes
-include /etc/sway/config.d/20-normal-mode
-include /etc/sway/config.d/30-scratchpad-mode
-include /etc/sway/config.d/40-resize-mode
+include /etc/sway/modes/*
+
+# only enable this if every app you use is compatible with wayland
+# xwayland disable
 
-# autostart applications
-include /etc/sway/config.d/99-autostart-applications
+# include additional configs e.g. to autostart applications
+include /etc/sway/config.d/*
diff --git a/overlays/sway/etc/sway/config.d/30-scratchpad-mode b/overlays/sway/etc/sway/config.d/30-scratchpad-mode
deleted file mode 100644
index a99f80bcd56e9c27268fc7cd186af1bcb78154be..0000000000000000000000000000000000000000
--- a/overlays/sway/etc/sway/config.d/30-scratchpad-mode
+++ /dev/null
@@ -1,13 +0,0 @@
-#
-# Scratchpad:
-#
-    # Sway has a "scratchpad", which is a bag of holding for windows.
-    # You can send windows there and get them back later.
-
-    # Move the currently focused window to the scratchpad
-    bindsym $mod+Shift+minus move scratchpad
-
-    # Show the next scratchpad window or hide the focused scratchpad window.
-    # If there are multiple scratchpad windows, this command cycles through them.
-    bindsym $mod+minus scratchpad show
-
diff --git a/overlays/sway/etc/sway/config.d/99-autostart-applications b/overlays/sway/etc/sway/config.d/99-autostart-applications
index 17b19d5b995233889ea4f2355cddb61cc2ef1e7d..e301f5604ad692cdcd37df4e592da1c7de3697ba 100644
--- a/overlays/sway/etc/sway/config.d/99-autostart-applications
+++ b/overlays/sway/etc/sway/config.d/99-autostart-applications
@@ -1,5 +1,5 @@
 exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
-exec --no-startup-id mako --default-timeout 5000 --icons 1  --markup 1 --actions 1 --background-color $base07
+exec --no-startup-id mako --default-timeout 5000 --icons 1  --markup 1 --actions 1
 exec --no-startup-id pamac-tray-appindicator
 exec --no-startup-id nm-applet --indicator
 exec --no-startup-id blueman-applet
diff --git a/overlays/sway/etc/sway/config.d/00-global-definitions b/overlays/sway/etc/sway/definitions
similarity index 89%
rename from overlays/sway/etc/sway/config.d/00-global-definitions
rename to overlays/sway/etc/sway/definitions
index 149b4707a904214f499e1cd9e25c6ca6ad5e9d8b..c8da62f07fefddb4afa78b0da244caa973d0fe43 100644
--- a/overlays/sway/etc/sway/config.d/00-global-definitions
+++ b/overlays/sway/etc/sway/definitions
@@ -9,8 +9,12 @@ set $down j
 set $up k
 set $right l
 
+# styles
+set $theme matcha
+set $background /usr/share/wallpapers/manjaro-arm/generic/manjaro-arm2.png
+
 # Your preferred terminal emulator
-set $term termite --config /etc/termite/config
+set $term termite
 
 # Your preferred application launcher
 # Note: pass the final command to swaymsg so that the resulting window can be opened
diff --git a/overlays/sway/etc/sway/inputs/default-keyboard-ansi b/overlays/sway/etc/sway/inputs/default-keyboard
similarity index 56%
rename from overlays/sway/etc/sway/inputs/default-keyboard-ansi
rename to overlays/sway/etc/sway/inputs/default-keyboard
index 2e487f806e89b55f49e3ddf2bced5ef89446d4f8..eee51da8613516dd2afc6d015d669af7bb74d443 100644
--- a/overlays/sway/etc/sway/inputs/default-keyboard-ansi
+++ b/overlays/sway/etc/sway/inputs/default-keyboard
@@ -1,18 +1,8 @@
 ### Input configuration
 #
-# Example configuration:
-#
-#   input "2:14:SynPS/2_Synaptics_TouchPad" {
-#       dwt enabled
-#       tap enabled
-#       natural_scroll enabled
-#       middle_emulation enabled
-#   }
-#
 # You can get the names of your inputs by running: swaymsg -t get_inputs
 # Read `man 5 sway-input` for more information about this section.
 input type:keyboard {
     xkb_layout us
     #xkb_options ctrl:nocaps
 }
-
diff --git a/overlays/sway/etc/sway/inputs/default-keyboard-iso b/overlays/sway/etc/sway/inputs/default-keyboard-iso
deleted file mode 100644
index 7fe675a055bfc0f00ae6e88b4e0025bb4b4d3b44..0000000000000000000000000000000000000000
--- a/overlays/sway/etc/sway/inputs/default-keyboard-iso
+++ /dev/null
@@ -1,18 +0,0 @@
-### Input configuration
-#
-# Example configuration:
-#
-#   input "2:14:SynPS/2_Synaptics_TouchPad" {
-#       dwt enabled
-#       tap enabled
-#       natural_scroll enabled
-#       middle_emulation enabled
-#   }
-#
-# You can get the names of your inputs by running: swaymsg -t get_inputs
-# Read `man 5 sway-input` for more information about this section.
-input type:keyboard {
-    xkb_layout gb
-    #xkb_options ctrl:nocaps
-}
-
diff --git a/overlays/sway/etc/sway/inputs/default-touchpad b/overlays/sway/etc/sway/inputs/default-touchpad
index 51391b70ff72bbefc326ab5def33093eee6876d8..6c0f136b30b19ee2b9fe2ff582b3757e09026bd9 100644
--- a/overlays/sway/etc/sway/inputs/default-touchpad
+++ b/overlays/sway/etc/sway/inputs/default-touchpad
@@ -1,14 +1,5 @@
 ### Input configuration
 #
-# Example configuration:
-#
-#   input "2:14:SynPS/2_Synaptics_TouchPad" {
-#       dwt enabled
-#       tap enabled
-#       natural_scroll enabled
-#       middle_emulation enabled
-#   }
-#
 # You can get the names of your inputs by running: swaymsg -t get_inputs
 # Read `man 5 sway-input` for more information about this section.
 input type:touchpad {
diff --git a/overlays/sway/etc/sway/config.d/20-normal-mode b/overlays/sway/etc/sway/modes/normal-mode
similarity index 100%
rename from overlays/sway/etc/sway/config.d/20-normal-mode
rename to overlays/sway/etc/sway/modes/normal-mode
diff --git a/overlays/sway/etc/sway/config.d/40-resize-mode b/overlays/sway/etc/sway/modes/resize-mode
similarity index 100%
rename from overlays/sway/etc/sway/config.d/40-resize-mode
rename to overlays/sway/etc/sway/modes/resize-mode
diff --git a/overlays/sway/etc/sway/modes/scratchpad-mode b/overlays/sway/etc/sway/modes/scratchpad-mode
new file mode 100644
index 0000000000000000000000000000000000000000..5edd4bf882a62e4a1730803d0b97077f0f12fa5a
--- /dev/null
+++ b/overlays/sway/etc/sway/modes/scratchpad-mode
@@ -0,0 +1,13 @@
+#
+# Scratchpad:
+#
+# Sway has a "scratchpad", which is a bag of holding for windows.
+# You can send windows there and get them back later.
+
+# Move the currently focused window to the scratchpad
+bindsym $mod+Shift+minus move scratchpad
+
+# Show the next scratchpad window or hide the focused scratchpad window.
+# If there are multiple scratchpad windows, this command cycles through them.
+bindsym $mod+minus scratchpad show
+
diff --git a/overlays/sway/etc/sway/outputs/default b/overlays/sway/etc/sway/outputs/default
index 96964335977c9434758b5aec46c4d43a38beca92..47766980febf06403fface3999fb22013d3bb991 100644
--- a/overlays/sway/etc/sway/outputs/default
+++ b/overlays/sway/etc/sway/outputs/default
@@ -1,11 +1,13 @@
 ### Output configuration
 #
-#
 # Example configuration:
 #
 #   output HDMI-A-1 resolution 1920x1080 position 1920,0
 #
 # You can get the names of your outputs by running: swaymsg -t get_outputs
 
+# import theme
+include /etc/sway/themes/$theme
+
 # Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
-output * bg /usr/share/wallpapers/manjaro-arm/generic/manjaro-arm2.png fill
+output * bg $background fill
diff --git a/overlays/sway/etc/sway/config.d/10-ui-settings b/overlays/sway/etc/sway/themes/matcha
similarity index 58%
rename from overlays/sway/etc/sway/config.d/10-ui-settings
rename to overlays/sway/etc/sway/themes/matcha
index 0dd718bf26ea676fd90dee887bfdcb137bb10936..74c3de3575291190cc37ddec3ad8cc1d40fa85da 100644
--- a/overlays/sway/etc/sway/config.d/10-ui-settings
+++ b/overlays/sway/etc/sway/themes/matcha
@@ -1,3 +1,22 @@
+# based on Base16 Solar Flare by Chuck Harmston (https://chuck.harmston.ch)
+
+set $base00 #1B2224
+set $base01 #222E38
+set $base02 #586875
+set $base03 #667581
+set $base04 #85939E
+set $base05 #A6AFB8
+set $base06 #E8E9ED
+set $base07 #F5F7FA
+set $base08 #EF5253
+set $base09 #E66B2B
+set $base0A #E4B51C
+set $base0B #7CC844
+set $base0C #52CBB0
+set $base0D #33B5E1
+set $base0E #A363D5
+set $base0F #D73C9A
+
 default_border pixel 1
 hide_edge_borders smart
 
@@ -9,7 +28,3 @@ client.unfocused        $base01 $base00 $base05 $base01 $base01
 client.urgent           $base08 $base08 $base00 $base08 $base08
 client.placeholder      $base00 $base00 $base05 $base00 $base00
 client.background       $base07
-
-# only enable this if every app you use is compatible with wayland
-# xwayland disable
-
diff --git a/overlays/sway/etc/sway/themes/matcha-theme b/overlays/sway/etc/sway/themes/matcha-theme
deleted file mode 100644
index e67454845b867b8206f77b58f643aeda7d6a925b..0000000000000000000000000000000000000000
--- a/overlays/sway/etc/sway/themes/matcha-theme
+++ /dev/null
@@ -1,18 +0,0 @@
-## based on Base16 Solar Flare by Chuck Harmston (https://chuck.harmston.ch)
-
-set $base00 #1B2224
-set $base01 #222E38
-set $base02 #586875
-set $base03 #667581
-set $base04 #85939E
-set $base05 #A6AFB8
-set $base06 #E8E9ED
-set $base07 #F5F7FA
-set $base08 #EF5253
-set $base09 #E66B2B
-set $base0A #E4B51C
-set $base0B #7CC844
-set $base0C #52CBB0
-set $base0D #33B5E1
-set $base0E #A363D5
-set $base0F #D73C9A