diff --git a/jaci/desktop-configuration.nix b/jaci/desktop-configuration.nix
index 97b1423..369010a 100644
--- a/jaci/desktop-configuration.nix
+++ b/jaci/desktop-configuration.nix
@@ -28,7 +28,7 @@ in
 
    imports = [
      modules/user/main_user.nix
-     modules/kde/kde_conf.nix
+     modules/labwc/labwc_conf.nix
    ];
 
    config = {
@@ -51,7 +51,7 @@ in
     # Use the systemd-boot EFI boot loader.
     boot.loader.systemd-boot.enable = true;
     boot.loader.efi.canTouchEfiVariables = true;
-    boot.plymouth.enable = true;
+    # boot.plymouth.enable = true;
 
     networking.hostName = deskCfg.hostName; # Define your hostname.
     networking.networkmanager.enable = true;  # Easiest to use and most distros use this by default.
@@ -79,7 +79,7 @@ in
     #   isDesktopUser = true;
     # };
     
-    kde = {
+    labwc = {
         enable = true;
         useNonFree = true;
         installGaming = deskCfg.installGaming;
diff --git a/jaci/dotfiles/labwc/autostart b/jaci/dotfiles/labwc/autostart
new file mode 100644
index 0000000..023e367
--- /dev/null
+++ b/jaci/dotfiles/labwc/autostart
@@ -0,0 +1,29 @@
+#!/bin/dash
+
+# Autostart Apps
+xset +fp ~/.fonts/misc/
+xset b off
+xset r rate 250 25
+xbacklight -set 5
+/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1 &
+pcmanfm -d &
+compton -b
+hsetroot -tile ~/.wallpaper.png
+xsettingsd &
+dunst -geometry "300x60-28+56" &
+
+# Touchpad settings
+synclient \
+VertEdgeScroll=0 HorizEdgeScroll=0 \
+VertTwoFingerScroll=1 HorizTwoFingerScroll=1 \
+VertScrollDelta=320 HorizScrollDelta=320 \
+MinSpeed=0.05 MaxSpeed=1.2 \
+AccelFactor=0.04 CoastingSpeed=10 \
+TapButton1=0 TapButton2=0 TapButton3=0
+
+# Panel
+panel &
+trayer \
+--align right --widthtype request --heighttype pixel --height 28 \
+--transparent true --alpha 255 &
+
diff --git a/jaci/dotfiles/labwc/bullet.xbm b/jaci/dotfiles/labwc/bullet.xbm
new file mode 100644
index 0000000..79432ba
--- /dev/null
+++ b/jaci/dotfiles/labwc/bullet.xbm
@@ -0,0 +1,5 @@
+#define bullet_width 9
+#define bullet_height 9
+static unsigned char bullet_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x20, 0x00,
+   0x10, 0x00, 0x00, 0x00, 0x00, 0x00 };
diff --git a/jaci/dotfiles/labwc/close.xbm b/jaci/dotfiles/labwc/close.xbm
new file mode 100644
index 0000000..6677987
--- /dev/null
+++ b/jaci/dotfiles/labwc/close.xbm
@@ -0,0 +1,5 @@
+#define close_width 12
+#define close_height 12
+static unsigned char close_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x01, 0x90, 0x00, 0x60, 0x00,
+   0x60, 0x00, 0x90, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
diff --git a/jaci/dotfiles/labwc/desk.xbm b/jaci/dotfiles/labwc/desk.xbm
new file mode 100644
index 0000000..a9498e4
--- /dev/null
+++ b/jaci/dotfiles/labwc/desk.xbm
@@ -0,0 +1,5 @@
+#define desk_width 12
+#define desk_height 12
+static unsigned char desk_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x01, 0x98, 0x01, 0x00, 0x00,
+   0x00, 0x00, 0x98, 0x01, 0x98, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
diff --git a/jaci/dotfiles/labwc/desk_toggled.xbm b/jaci/dotfiles/labwc/desk_toggled.xbm
new file mode 100644
index 0000000..02ada31
--- /dev/null
+++ b/jaci/dotfiles/labwc/desk_toggled.xbm
@@ -0,0 +1,5 @@
+#define desk_toggled_width 12
+#define desk_toggled_height 12
+static unsigned char desk_toggled_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x01, 0x98, 0x01, 0x60, 0x00,
+   0x60, 0x00, 0x98, 0x01, 0x98, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
diff --git a/jaci/dotfiles/labwc/iconify.xbm b/jaci/dotfiles/labwc/iconify.xbm
new file mode 100644
index 0000000..8689c16
--- /dev/null
+++ b/jaci/dotfiles/labwc/iconify.xbm
@@ -0,0 +1,5 @@
+#define iconify_width 12
+#define iconify_height 12
+static unsigned char iconify_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
diff --git a/jaci/dotfiles/labwc/max.xbm b/jaci/dotfiles/labwc/max.xbm
new file mode 100644
index 0000000..d7e925e
--- /dev/null
+++ b/jaci/dotfiles/labwc/max.xbm
@@ -0,0 +1,5 @@
+#define max_width 12
+#define max_height 12
+static unsigned char max_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x01, 0x40, 0x01,
+   0x28, 0x00, 0x18, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
diff --git a/jaci/dotfiles/labwc/max_disabled.xbm b/jaci/dotfiles/labwc/max_disabled.xbm
new file mode 100644
index 0000000..4ff5bce
--- /dev/null
+++ b/jaci/dotfiles/labwc/max_disabled.xbm
@@ -0,0 +1,5 @@
+#define max_disabled_width 12
+#define max_disabled_height 12
+static unsigned char max_disabled_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x01, 0x40, 0x01,
+   0x28, 0x00, 0x18, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
diff --git a/jaci/dotfiles/labwc/max_toggled.xbm b/jaci/dotfiles/labwc/max_toggled.xbm
new file mode 100644
index 0000000..272bba8
--- /dev/null
+++ b/jaci/dotfiles/labwc/max_toggled.xbm
@@ -0,0 +1,5 @@
+#define max_toggled_width 12
+#define max_toggled_height 12
+static unsigned char max_toggled_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x01, 0x40, 0x01,
+   0x28, 0x00, 0x18, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
diff --git a/jaci/dotfiles/labwc/menu.xml b/jaci/dotfiles/labwc/menu.xml
new file mode 100644
index 0000000..deeef9b
--- /dev/null
+++ b/jaci/dotfiles/labwc/menu.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<openbox_menu
+	xmlns="http://openbox.org/"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://openbox.org/
+	file:///usr/share/openbox/menu.xsd">
+	<menu id="root-menu" label="Openbox 3">
+		<item label="Terminal emulator">
+			<action name="Execute">
+				<execute>x-terminal-emulator</execute>
+			</action>
+		</item>
+		<item label="Web browser">
+			<action name="Execute">
+				<execute>x-www-browser</execute>
+			</action>
+		</item>
+		<separator />
+		<menu execute="openbox-menu lxde-applications.menu" id="apps" label="Applications"/>
+		<menu id="client-list-menu" />
+		<separator />
+		<item label="Configurations">
+			<action name="Execute">
+				<execute>obconf</execute>
+			</action>
+		</item>
+		<item label="Reconfigure">
+			<action name="Reconfigure" />
+		</item>
+		<separator />
+		<menu id="exit" label="Exit" >
+			<item label="Logout">
+				<action name="Exit" />
+			</item>
+			<item label="Suspend">
+				<action name="Execute">
+					<execute>systemctl suspend</execute>
+				</action>
+			</item>
+			<item label="Reboot">
+				<action name="Execute">
+					<execute>systemctl reboot</execute>
+				</action>
+			</item>
+			<item label="Shutdown">
+				<action name="Execute">
+					<execute>systemctl poweroff</execute>
+				</action>
+			</item>
+		</menu>
+	</menu>
+</openbox_menu>
diff --git a/jaci/dotfiles/labwc/rc.xml b/jaci/dotfiles/labwc/rc.xml
new file mode 100644
index 0000000..668eda0
--- /dev/null
+++ b/jaci/dotfiles/labwc/rc.xml
@@ -0,0 +1,774 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<openbox_config xmlns="http://openbox.org/3.4/rc" xmlns:xi="http://www.w3.org/2001/XInclude">
+	<resistance>
+		<strength>10</strength>
+		<screen_edge_strength>20</screen_edge_strength>
+	</resistance>
+	<focus>
+		<focusNew>yes</focusNew>
+		<!-- Always try to focus new windows when they appear. other rules do apply -->
+		<followMouse>no</followMouse>
+		<!-- Move focus to a window when you move the mouse into it -->
+		<focusLast>yes</focusLast>
+		<!-- Focus the last used window when changing desktops, instead of the one 
+		under the mouse pointer. when followMouse is enabled -->
+		<underMouse>no</underMouse>
+		<!-- Move focus under the mouse, even when the mouse is not moving -->
+		<focusDelay>200</focusDelay>
+		<!-- When followMouse is enabled, the mouse must be inside the window for
+		this many milliseconds (1000 = 1 sec) before moving focus to it -->
+		<raiseOnFocus>no</raiseOnFocus>
+		<!-- When followMouse is enabled, and a window is given focus by moving the 
+		mouse into it, also raise the window -->
+	</focus>
+	<placement>
+		<policy>Smart</policy>
+		<!-- 'Smart' or 'UnderMouse' -->
+		<center>yes</center>
+		<!-- Whether to place windows in the center of the free area found or 
+		the top left corner -->
+		<monitor>Primary</monitor>
+		<!-- With Smart placement on a multi-monitor system, try to place new windows 
+		on: 'Any' - any monitor, 'Mouse' - where the mouse is, 'Active' - where 
+		the active window is, 'Primary' - only on the primary monitor -->
+		<primaryMonitor>1</primaryMonitor>
+		<!-- The monitor where Openbox should place popup dialogs such as the 
+		focus cycling popup, or the desktop switch popup.	It can be an index 
+		from 1, specifying a particular monitor.	Or it can be one of the 
+		following: 'Mouse' - where the mouse is, or 'Active' - where 
+		the active window is -->
+	</placement>
+	<theme>
+		<name>Adiantum</name>
+		<titleLayout>CLM</titleLayout>
+		<!--
+		Available characters are NDSLIMC, each can occur at most once.
+		N: window icon
+		L: window label (AKA title).
+		I: iconify
+		M: maximize
+		C: close
+		S: shade (roll up/down)
+		D: omnipresent (on all desktops).
+		-->
+		<keepBorder>yes</keepBorder>
+		<animateIconify>yes</animateIconify>
+		<font place="ActiveWindow">
+			<name>cinnamonroll</name>
+			<size>8</size>
+			<!-- font size in points -->
+			<weight>Normal</weight>
+			<!-- 'bold' or 'normal' -->
+			<slant>Normal</slant>
+			<!-- 'italic' or 'normal' -->
+		</font>
+		<font place="InactiveWindow">
+			<name>cinnamonroll</name>
+			<size>8</size>
+			<!-- font size in points -->
+			<weight>Normal</weight>
+			<!-- 'bold' or 'normal' -->
+			<slant>Normal</slant>
+			<!-- 'italic' or 'normal' -->
+		</font>
+		<font place="MenuHeader">
+			<name>cinnamonroll</name>
+			<size>8</size>
+			<!-- font size in points -->
+			<weight>Normal</weight>
+			<!-- 'bold' or 'normal' -->
+			<slant>Normal</slant>
+			<!-- 'italic' or 'normal' -->
+		</font>
+		<font place="MenuItem">
+			<name>cinnamonroll</name>
+			<size>8</size>
+			<!-- font size in points -->
+			<weight>Normal</weight>
+			<!-- 'bold' or 'normal' -->
+			<slant>Normal</slant>
+			<!-- 'italic' or 'normal' -->
+		</font>
+		<font place="ActiveOnScreenDisplay">
+			<name>cinnamonroll</name>
+			<size>8</size>
+			<!-- font size in points -->
+			<weight>Normal</weight>
+			<!-- 'bold' or 'normal' -->
+			<slant>Normal</slant>
+			<!-- 'italic' or 'normal' -->
+		</font>
+		<font place="InactiveOnScreenDisplay">
+			<name>cinnamonroll</name>
+			<size>8</size>
+			<!-- font size in points -->
+			<weight>Normal</weight>
+			<!-- 'bold' or 'normal' -->
+			<slant>Normal</slant>
+			<!-- 'italic' or 'normal' -->
+		</font>
+	</theme>
+	<desktops>
+		<!-- this stuff is only used at startup, pagers allow you to change them
+		during a session. these are default values to use when other ones are not
+		already set by other applications, or saved in your session.
+		Use obconf if you want to change these without having to log out
+		and back in -->
+		<number>4</number>
+		<firstdesk>1</firstdesk>
+		<names>
+			<name>1</name>
+			<name>2</name>
+			<name>3</name>
+			<name>4</name>
+		</names>
+		<popupTime>1000</popupTime>
+		<!-- The number of milliseconds to show the popup for when switching
+		desktops. Set this to 0 to disable the popup. -->
+	</desktops>
+	<resize>
+		<drawContents>yes</drawContents>
+		<popupShow>Nonpixel</popupShow>
+		<!-- 'Always', 'Never', or 'Nonpixel' (xterms and such) -->
+		<popupPosition>Center</popupPosition>
+		<!-- 'Center', 'Top', or 'Fixed' -->
+		<popupFixedPosition>
+			<!-- these are used if popupPosition is set to 'Fixed' -->
+			<x>10</x>
+			<!-- positive number for distance from left edge, negative number for
+			distance from right edge, or 'Center' -->
+			<y>10</y>
+			<!-- positive number for distance from top edge, negative number for
+			distance from bottom edge, or 'Center' -->
+		</popupFixedPosition>
+	</resize>
+	<!-- You can reserve a portion of your screen where windows will not cover when
+	they are maximized, or when they are initially placed.
+	Many programs reserve space automatically, but you can use this in other
+	cases. -->
+	<margins>
+		<top>48</top>
+		<bottom>16</bottom>
+		<left>16</left>
+		<right>16</right>
+	</margins>
+	<dock>
+		<position>TopLeft</position>
+		<!-- (Top|Bottom)(Left|Right|)|Top|Bottom|Left|Right|Floating -->
+		<floatingX>0</floatingX>
+		<floatingY>0</floatingY>
+		<noStrut>no</noStrut>
+		<stacking>Above</stacking>
+		<!-- 'Above', 'Normal', or 'Below' -->
+		<direction>Vertical</direction>
+		<!-- 'Vertical' or 'Horizontal' -->
+		<autoHide>no</autoHide>
+		<hideDelay>300</hideDelay>
+		<!-- in milliseconds (1000 = 1 second) -->
+		<showDelay>300</showDelay>
+		<!-- in milliseconds (1000 = 1 second) -->
+		<moveButton>Middle</moveButton>
+		<!-- 'Left', 'Middle', 'Right' -->
+	</dock>
+	<keyboard>
+		<chainQuitKey>C-g</chainQuitKey>
+		<!-- Keybindings for desktop switching -->
+		<keybind key="C-A-Left">
+			<action name="GoToDesktop">
+				<to>left</to>
+				<wrap>no</wrap>
+			</action>
+		</keybind>
+		<keybind key="C-A-Right">
+			<action name="GoToDesktop">
+				<to>right</to>
+				<wrap>no</wrap>
+			</action>
+		</keybind>
+		<!-- Sent window to next or previous workspace -->
+		<keybind key="W-S-Left">
+			<action name="SendToDesktop">
+				<to>left</to>
+				<wrap>no</wrap>
+			</action>
+		</keybind>
+		<keybind key="W-S-Right">
+			<action name="SendToDesktop">
+				<to>right</to>
+				<wrap>no</wrap>
+			</action>
+		</keybind>
+		<!-- Switch to another workspace -->
+		<keybind key="W-1">
+			<action name="GoToDesktop">
+				<to>1</to>
+			</action>
+		</keybind>
+		<keybind key="W-2">
+			<action name="GoToDesktop">
+				<to>2</to>
+			</action>
+		</keybind>
+		<keybind key="W-3">
+			<action name="GoToDesktop">
+				<to>3</to>
+			</action>
+		</keybind>
+		<keybind key="W-4">
+			<action name="GoToDesktop">
+				<to>4</to>
+			</action>
+		</keybind>
+		<!-- Sent window to worspace number -->
+		<keybind key="W-S-1">
+			<action name="SendToDesktop">
+				<to>1</to>
+				<wrap>no</wrap>
+			</action>
+		</keybind>
+		<keybind key="W-S-2">
+			<action name="SendToDesktop">
+				<to>2</to>
+				<wrap>no</wrap>
+			</action>
+		</keybind>
+		<keybind key="W-S-3">
+			<action name="SendToDesktop">
+				<to>3</to>
+				<wrap>no</wrap>
+			</action>
+		</keybind>
+		<keybind key="W-S-4">
+			<action name="SendToDesktop">
+				<to>4</to>
+				<wrap>no</wrap>
+			</action>
+		</keybind>
+		<!-- Keybindings for Aero Snap -->
+		<keybind key="W-Right">
+			<action name="UnmaximizeFull"/>
+			<action name="MoveResizeTo">
+				<x>-0</x>
+				<y>+0</y>
+				<width>50/100</width>
+				<height>100/100</height>
+			</action>
+		</keybind>
+		<keybind key="W-Left">
+			<action name="UnmaximizeFull"/>
+			<action name="MoveResizeTo">
+				<x>+0</x>
+				<y>+0</y>
+				<width>50/100</width>
+				<height>100/100</height>
+			</action>
+		</keybind>
+		<keybind key="W-Up">
+			<action name="UnmaximizeFull"/>
+			<action name="MoveResizeTo">
+				<width>75/100</width>
+				<height>75/100</height>
+			</action>
+			<action name="MoveToCenter"/>
+		</keybind>
+		<keybind key="W-Down">
+			<action name="UnmaximizeFull"/>
+			<action name="MoveResizeTo">
+				<width>50/100</width>
+				<height>50/100</height>
+			</action>
+			<action name="MoveToCenter"/>
+		</keybind>
+		<keybind key="W-S-Up">
+			<action name="UnmaximizeFull"/>
+			<action name="MoveResizeTo">
+				<width>75/100</width>
+				<height>75/100</height>
+			</action>
+			<action name="MoveToCenter"/>
+		</keybind>
+		<!-- Keybindings for moving window to edge -->
+		<keybind key="W-C-Right">
+			<action name="MoveToEdge">
+				<direction>east</direction>
+			</action>
+		</keybind>
+		<keybind key="W-C-Left">
+			<action name="MoveToEdge">
+				<direction>west</direction>
+			</action>
+		</keybind>
+		<keybind key="W-C-Up">
+			<action name="MoveToEdge">
+				<direction>north</direction>
+			</action>
+		</keybind>
+		<keybind key="W-C-Down">
+			<action name="MoveToEdge">
+				<direction>south</direction>
+			</action>
+		</keybind>
+		<keybind key="W-a">
+			<action name="MoveToCenter"/>
+		</keybind>
+		<!-- Keybindings for undecorate, fullscreen, minimize,
+		roll-up, stick, resize, move, close, and window menu -->
+		<keybind key="W-t">
+			<action name="ToggleDecorations"/>
+		</keybind>
+		<keybind key="W-f">
+			<action name="ToggleMaximize"/>
+		</keybind>
+		<keybind key="W-z">
+			<action name="Iconify"/>
+		</keybind>
+		<keybind key="W-u">
+			<action name="ToggleShade"/>
+		</keybind>
+		<keybind key="W-s">
+			<action name="ToggleOmnipresent"/>
+		</keybind>
+		<keybind key="W-r">
+			<action name="Resize"/>
+		</keybind>
+		<keybind key="W-m">
+			<action name="Move"/>
+		</keybind>
+		<keybind key="A-F4">
+			<action name="Close"/>
+		</keybind>
+		<keybind key="W-c">
+			<action name="Close"/>
+		</keybind>
+		<keybind key="A-space">
+			<action name="ShowMenu">
+				<menu>client-menu</menu>
+			</action>
+		</keybind>
+		<!-- Keybindings for window switching -->
+		<keybind key="A-Tab">
+			<action name="NextWindow">
+				<dialog>list</dialog>
+				<bar>no</bar>
+				<finalactions>
+					<action name="Focus"/>
+					<action name="Raise"/>
+					<action name="Unshade"/>
+				</finalactions>
+			</action>
+		</keybind>
+		<keybind key="A-S-Tab">
+			<action name="PreviousWindow">
+				<dialog>list</dialog>
+				<bar>no</bar>
+				<finalactions>
+					<action name="Focus"/>
+					<action name="Raise"/>
+					<action name="Unshade"/>
+				</finalactions>
+			</action>
+		</keybind>
+		<keybind key="C-A-Down">
+			<action name="NextWindow">
+				<dialog>list</dialog>
+				<bar>yes</bar>
+				<raise>yes</raise>
+				<finalactions>
+					<action name="Focus"/>
+					<action name="Raise"/>
+					<action name="Unshade"/>
+				</finalactions>
+			</action>
+		</keybind>
+		<keybind key="C-A-Up">
+			<action name="NextWindow">
+				<dialog>list</dialog>
+				<bar>yes</bar>
+				<raise>yes</raise>
+				<finalactions>
+					<action name="Focus"/>
+					<action name="Raise"/>
+					<action name="Unshade"/>
+				</finalactions>
+			</action>
+		</keybind>
+		<!-- Keybindings for window switching with the arrow keys -->
+		<keybind key="W-A-Right">
+			<action name="DirectionalCycleWindows">
+				<direction>right</direction>
+				<dialog>no</dialog>
+			</action>
+		</keybind>
+		<keybind key="W-A-Left">
+			<action name="DirectionalCycleWindows">
+				<direction>left</direction>
+				<dialog>no</dialog>
+			</action>
+		</keybind>
+		<keybind key="W-A-Up">
+			<action name="DirectionalCycleWindows">
+				<direction>up</direction>
+				<dialog>no</dialog>
+			</action>
+		</keybind>
+		<keybind key="W-A-Down">
+			<action name="DirectionalCycleWindows">
+				<direction>down</direction>
+				<dialog>no</dialog>
+			</action>
+		</keybind>
+		<!-- Keybindings for startmenu	-->
+		<keybind key="W-d">
+			<action name="Execute">
+				<command>launch</command>
+			</action>
+		</keybind>
+		<keybind key="W-Tab">
+			<action name="ShowMenu">
+				<menu>client-list-combined-menu</menu>
+			</action>
+		</keybind>
+		<keybind key="W-space">
+			<action name="ShowMenu">
+				<menu>root-menu</menu>
+			</action>
+		</keybind>
+		<!-- Keybindings for running applications -->
+		<keybind key="W-Return">
+			<action name="Execute">
+				<command>x-terminal-emulator</command>
+			</action>
+		</keybind>
+		<keybind key="W-w">
+			<action name="Execute">
+				<command>x-www-browser</command>
+			</action>
+		</keybind>
+		<keybind key="W-e">
+			<action name="Execute">
+				<command>pcmanfm</command>
+			</action>
+		</keybind>
+		<keybind key="W-g">
+			<action name="Execute">
+				<command>geany</command>
+			</action>
+		</keybind>
+		<keybind key="W-v">
+			<action name="Execute">
+				<command>pavucontrol</command>
+			</action>
+		</keybind>
+		<!-- Take a screenshot, say "Cheeeese!" -->
+		<keybind key="Print">
+			<action name="Execute">
+				<command>screeny</command>
+			</action>
+		</keybind>
+		<keybind key="A-Print">
+			<action name="Execute">
+				<command>screeny -f</command>
+			</action>
+		</keybind>
+		<keybind key="C-Print">
+			<action name="Execute">
+				<command>screeny -s</command>
+			</action>
+		</keybind>
+		<!-- Multimedia keys-->
+		<keybind key="XF86AudioStop">
+			<action name="Execute">
+				<command>mpc stop</command>
+			</action>
+		</keybind>
+		<keybind key="XF86AudioPlay">
+			<action name="Execute">
+				<command>mpc toggle</command>
+			</action>
+		</keybind>
+		<keybind key="XF86AudioPrev">
+			<action name="Execute">
+				<command>mpc prev</command>
+			</action>
+		</keybind>
+		<keybind key="XF86AudioNext">
+			<action name="Execute">
+				<command>mpc next</command>
+			</action>
+		</keybind>
+		<keybind key="XF86MonBrightnessDown">
+			<action name="Execute">
+				<command>xbacklight -dec 5</command>
+			</action>
+		</keybind>
+		<keybind key="XF86MonBrightnessUp">
+			<action name="Execute">
+				<command>xbacklight -inc 5</command>
+			</action>
+		</keybind>
+		<!-- I'm not satisfied with PulseAudio default volume controller. 
+		So, I use custom script instead -->
+		<keybind key="XF86AudioRaiseVolume">
+			<action name="Execute">
+				<command>pulsevol --up</command>
+			</action>
+		</keybind>
+		<keybind key="XF86AudioLowerVolume">
+			<action name="Execute">
+				<command>pulsevol --down</command>
+			</action>
+		</keybind>
+		<keybind key="XF86AudioMute">
+			<action name="Execute">
+				<command>pulsevol --mute</command>
+			</action>
+		</keybind>
+		<!-- Reload and Exit keybinds -->
+		<keybind key="W-S-BackSpace">
+			<action name="Restart"/>
+		</keybind>
+		<keybind key="W-S-r">
+			<action name="Reconfigure"/>
+		</keybind>
+		<keybind key="W-S-q">
+			<action name="Exit"/>
+		</keybind>
+	</keyboard>
+	<mouse>
+		<dragThreshold>1</dragThreshold>
+		<!-- number of pixels the mouse must move before a drag begins -->
+		<doubleClickTime>500</doubleClickTime>
+		<!-- in milliseconds (1000 = 1 second) -->
+		<screenEdgeWarpTime>0</screenEdgeWarpTime>
+		<!-- Time before changing desktops when the pointer touches the edge of the
+		screen while moving a window, in milliseconds (1000 = 1 second).
+		Set this to 0 to disable warping -->
+		<screenEdgeWarpMouse>false</screenEdgeWarpMouse>
+		<!-- Set this to TRUE to move the mouse pointer across the desktop when
+		switching due to hitting the edge of the screen -->
+		<context name="Desktop">
+			<mousebind button="W-Down" action="Click">
+				<action name="GoToDesktop">
+				<to>right</to>
+				<wrap>no</wrap>
+			</action>
+			</mousebind>
+			<mousebind button="W-Up" action="Click">
+				<action name="GoToDesktop">
+				<to>left</to>
+				<wrap>no</wrap>
+			</action>
+			</mousebind>
+		</context>
+		<context name="Frame">
+			<mousebind button="W-Down" action="Click">
+				<action name="GoToDesktop">
+				<to>right</to>
+				<wrap>no</wrap>
+			</action>
+			</mousebind>
+			<mousebind button="W-Up" action="Click">
+				<action name="GoToDesktop">
+				<to>left</to>
+				<wrap>no</wrap>
+			</action>
+			</mousebind>
+		</context>
+		<context name="Frame">
+			<mousebind button="W-Left" action="Drag">
+				<action name="Move"/>
+			</mousebind>
+		</context>
+		<context name="Titlebar">
+			<mousebind button="Left" action="Drag">
+				<action name="Move"/>
+			</mousebind>
+			<mousebind button="Left" action="DoubleClick">
+				<action name="ToggleMaximizeFull"/>
+			</mousebind>
+			<mousebind button="Up" action="Click">
+				<action name="if">
+					<shaded>no</shaded>
+					<then>
+						<action name="Shade"/>
+					</then>
+				</action>
+			</mousebind>
+			<mousebind button="Down" action="Click">
+				<action name="if">
+					<shaded>yes</shaded>
+					<then>
+						<action name="Unshade"/>
+						<action name="Raise"/>
+					</then>
+				</action>
+			</mousebind>
+		</context>
+		<context name="Titlebar Top Right Bottom Left TLCorner TRCorner BRCorner BLCorner">
+			<mousebind button="Left" action="Press">
+				<action name="Focus"/>
+				<action name="Raise"/>
+			</mousebind>
+			<mousebind button="Right" action="Press">
+				<action name="Focus"/>
+				<action name="Raise"/>
+				<action name="ShowMenu">
+					<menu>client-menu</menu>
+				</action>
+			</mousebind>
+		</context>
+		<context name="Top">
+			<mousebind button="Left" action="Drag">
+				<action name="Resize">
+					<edge>top</edge>
+				</action>
+			</mousebind>
+		</context>
+		<context name="Left">
+			<mousebind button="Left" action="Drag">
+				<action name="Resize">
+					<edge>left</edge>
+				</action>
+			</mousebind>
+		</context>
+		<context name="Right">
+			<mousebind button="Left" action="Drag">
+				<action name="Resize">
+					<edge>right</edge>
+				</action>
+			</mousebind>
+		</context>
+		<context name="Bottom">
+			<mousebind button="Left" action="Drag">
+				<action name="Resize">
+					<edge>bottom</edge>
+				</action>
+			</mousebind>
+			<mousebind button="Right" action="Press">
+				<action name="Focus"/>
+				<action name="Raise"/>
+				<action name="ShowMenu">
+					<menu>client-menu</menu>
+				</action>
+			</mousebind>
+		</context>
+		<context name="TRCorner BRCorner TLCorner BLCorner">
+			<mousebind button="Left" action="Press">
+				<action name="Focus"/>
+				<action name="Raise"/>
+				<action name="Unshade"/>
+			</mousebind>
+			<mousebind button="Left" action="Drag">
+				<action name="Resize"/>
+			</mousebind>
+		</context>
+		<context name="Client">
+			<mousebind button="Left" action="Press">
+				<action name="Focus"/>
+				<action name="Raise"/>
+			</mousebind>
+			<mousebind button="Right" action="Press">
+				<action name="Focus"/>
+				<action name="Raise"/>
+			</mousebind>
+		</context>
+		<context name="Icon">
+			<mousebind button="Left" action="Press">
+				<action name="Focus"/>
+				<action name="Raise"/>
+				<action name="Unshade"/>
+				<action name="ShowMenu">
+					<menu>client-menu</menu>
+				</action>
+			</mousebind>
+			<mousebind button="Right" action="Press">
+				<action name="Focus"/>
+				<action name="Raise"/>
+				<action name="ShowMenu">
+					<menu>client-menu</menu>
+				</action>
+			</mousebind>
+		</context>
+		<context name="AllDesktops">
+			<mousebind button="Left" action="Press">
+				<action name="Focus"/>
+				<action name="Raise"/>
+				<action name="Unshade"/>
+			</mousebind>
+			<mousebind button="Left" action="Click">
+				<action name="ToggleOmnipresent"/>
+			</mousebind>
+		</context>
+		<context name="Shade">
+			<mousebind button="Left" action="Press">
+				<action name="Focus"/>
+				<action name="Raise"/>
+			</mousebind>
+			<mousebind button="Left" action="Click">
+				<action name="ToggleShade"/>
+			</mousebind>
+		</context>
+		<context name="Iconify">
+			<mousebind button="Left" action="Press">
+				<action name="Focus"/>
+				<action name="Raise"/>
+			</mousebind>
+			<mousebind button="Left" action="Click">
+				<action name="Iconify"/>
+			</mousebind>
+		</context>
+		<context name="Maximize">
+			<mousebind button="Left" action="Press">
+				<action name="Focus"/>
+				<action name="Raise"/>
+				<action name="Unshade"/>
+			</mousebind>
+			<mousebind button="Left" action="Click">
+				<action name="ToggleMaximize"/>
+			</mousebind>
+		</context>
+		<context name="Close">
+			<mousebind button="Left" action="Press">
+				<action name="Focus"/>
+				<action name="Raise"/>
+				<action name="Unshade"/>
+			</mousebind>
+			<mousebind button="Left" action="Click">
+				<action name="Close"/>
+			</mousebind>
+		</context>
+		<context name="Root">
+			<!-- Menus -->
+			<mousebind button="Right" action="Press">
+				<action name="ShowMenu">
+					<menu>root-menu</menu>
+				</action>
+			</mousebind>
+			<mousebind button="Left" action="DoubleClick">
+				<action name="ShowMenu">
+					<menu>client-list-combined-menu</menu>
+				</action>
+			</mousebind>
+		</context>
+	</mouse>
+	<menu>
+		<file>menu.xml</file>
+		<hideDelay>200</hideDelay>
+		<!-- if a press-release lasts longer than this setting (in milliseconds), 
+		the menu is hidden again -->
+		<middle>no</middle>
+		<!-- center submenus vertically about the parent entry -->
+		<submenuShowDelay>100</submenuShowDelay>
+		<!-- time to delay before showing a submenu after hovering over the parent entry.
+		if this is a negative value, then the delay is infinite and the
+		submenu will not be shown until it is clicked on -->
+		<submenuHideDelay>400</submenuHideDelay>
+		<!-- time to delay before hiding a submenu when selecting another entry in parent menu
+		if this is a negative value, then the delay is infinite and the
+		submenu will not be hidden until a different submenu is opened -->
+		<showIcons>no</showIcons>
+		<!-- controls if icons appear in the client-list-(combined-)menu -->
+		<manageDesktops>yes</manageDesktops>
+		<!-- show the manage desktops section in the client-list-(combined-)menu -->
+	</menu>
+</openbox_config>
diff --git a/jaci/dotfiles/labwc/shade.xbm b/jaci/dotfiles/labwc/shade.xbm
new file mode 100644
index 0000000..b24c8d3
--- /dev/null
+++ b/jaci/dotfiles/labwc/shade.xbm
@@ -0,0 +1,5 @@
+#define shade_width 12
+#define shade_height 12
+static unsigned char shade_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
diff --git a/jaci/dotfiles/labwc/shade_toggled.xbm b/jaci/dotfiles/labwc/shade_toggled.xbm
new file mode 100644
index 0000000..6eed12e
--- /dev/null
+++ b/jaci/dotfiles/labwc/shade_toggled.xbm
@@ -0,0 +1,5 @@
+#define shade_toggled_width 12
+#define shade_toggled_height 12
+static unsigned char shade_toggled_bits[] = {
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
diff --git a/jaci/dotfiles/labwc/themerc b/jaci/dotfiles/labwc/themerc
new file mode 100644
index 0000000..e941218
--- /dev/null
+++ b/jaci/dotfiles/labwc/themerc
@@ -0,0 +1,70 @@
+!! Menu
+menu.border.width: 8
+menu.border.color: #f9faf4
+menu.overlap.x: -10
+menu.title.bg: flat
+menu.title.bg.color: #f9faf4
+menu.title.text.color: #947e7b
+menu.title.text.justify: center
+menu.items.bg: flat
+menu.items.bg.color: #f9faf4
+menu.items.text.color: #947e7b
+menu.items.active.bg: flat
+menu.items.active.bg.color: #aecdad
+menu.items.active.text.color: #526b6e
+menu.items.disabled.text.color: #4d5066
+menu.items.justify: left
+menu.separator.padding.height: 2
+menu.separator.color: #f9faf4
+
+!! Titlebar
+window.*.title.bg: flat
+window.*.label.bg: parentrelative
+window.active.title.bg.color: #e7e8eb
+window.active.label.text.color: #70788d
+window.inactive.title.bg.color: #e7e8eb
+window.inactive.label.text.color: #d3d3d6
+window.label.text.justify: center
+
+!! Titlebar buttons
+window.*.button.*.bg: parentrelative
+window.*.button.*.pressed.bg: flat
+window.active.button.*.image.color: #70788d
+window.active.button.*.hover.image.color: #aecdad
+window.active.button.*.pressed.bg.color: #aecdad
+window.active.button.disabled.image.color: #d3d3d6
+window.inactive.button.*.image.color: #d3d3d6
+window.inactive.button.disabled.image.color: #d3d3d6
+
+!! Borders
+border.width: 0
+padding.width: 12
+padding.height: 8
+window.client.padding.width: 0
+window.client.padding.height: 0
+window.handle.width: 2
+window.active.border.color: #e7e8eb
+window.active.client.color:  #e7e8eb
+window.active.handle.bg: flat
+window.active.handle.bg.color: #e7e8eb
+window.active.grip.bg: flat
+window.active.grip.bg.color: #e7e8eb
+window.inactive.grip.bg: flat
+window.inactive.grip.bg.color: #e7e8eb
+window.inactive.border.color: #e7e8eb
+window.inactive.handle.bg: flat
+window.inactive.handle.bg.color: #e7e8eb
+window.inactive.client.color: #e7e8eb
+
+!! OSD
+osd.border.width: 1
+osd.border.color: #e7e8eb
+osd.label.text.color: #5c616c
+osd.bg: flat
+osd.bg.color: #e7e8eb
+osd.label.bg: flat
+osd.label.bg.color: #e7e8eb
+osd.hilight.bg: flat
+osd.hilight.bg.color: #aecdad
+osd.unhilight.bg: flat solid
+osd.unhilight.bg.color: #70788d
diff --git a/jaci/dotfiles/paper-openbox-200409.zip b/jaci/dotfiles/paper-openbox-200409.zip
new file mode 100644
index 0000000..29037bc
Binary files /dev/null and b/jaci/dotfiles/paper-openbox-200409.zip differ
diff --git a/jaci/modules/home-manager/home.nix b/jaci/modules/home-manager/home.nix
index 33e6867..7e24b75 100644
--- a/jaci/modules/home-manager/home.nix
+++ b/jaci/modules/home-manager/home.nix
@@ -108,20 +108,20 @@
 
   # Home Manager is pretty good at managing dotfiles. The primary way to manage
   # plain files is through 'home.file'.
-  # home.file."${config.xdg.configHome}" = {
+  home.file."${config.xdg.configHome}" = {
     # # Building this configuration will create a copy of 'dotfiles/screenrc' in
     # # the Nix store. Activating the configuration will then make '~/.screenrc' a
     # # symlink to the Nix store copy.
     # ".screenrc".source = dotfiles/screenrc;
-    # source = ../../dotfiles;
-    # recursive = true;
+    source = ../../dotfiles;
+    recursive = true;
 
     # # You can also set the file content immediately.
     # ".gradle/gradle.properties".text = ''
     #   org.gradle.console=verbose
     #   org.gradle.daemon.idletimeout=3600000
     # '';
-  # };
+  };
 
 
   # Home Manager can also manage your environment variables through
diff --git a/jaci/modules/kde/kde_conf.nix b/jaci/modules/kde/kde_conf.nix
deleted file mode 100644
index aba5507..0000000
--- a/jaci/modules/kde/kde_conf.nix
+++ /dev/null
@@ -1,69 +0,0 @@
-{ lib, config, pkgs, ... }:
-{
-    options.kde = {
-        enable = lib.mkEnableOption "Enable kde.";
-        useNonFree = lib.mkOption {
-            default = false;
-            example = true;
-            description = "Whether to enable non-free software in the kde config";
-        };
-        installGaming = lib.mkOption {
-            default = false;
-            example = true;
-            description = "Whether to install gaming software on the system.";
-        };
-        systemPackages = lib.mkOption {
-            default = [];
-            description = "Add any additional packages desired. Merged with kde defaults.";
-        };
-
-    };
-
-    ###
-    ##  Configuration
-    ###
-    config = lib.mkIf config.kde.enable {
-
-        nixpkgs.config.allowUnfree = config.kde.useNonFree;
-
-        ###
-        ##  System Packages
-        ###
-        environment.systemPackages = with pkgs; lib.lists.flatten [
-             [
-                bash
-                git
-                glib # gsettings
-                ncspot
-                zsh
-             ]
-            config.kde.systemPackages
-        ];
-
-        programs.zsh.enable = true;
-        programs.steam.enable = config.kde.installGaming;
-
-        # kdeconnect setup
-        programs.kdeconnect.enable = true;
-
-        ###
-        ##  Services
-        ###
-        services.openssh.enable = true;
-        # services.dbus.enable = true;
-        # enabling kde
-        services.xserver.enable = true;
-        services.xserver.displayManager.defaultSession = "plasmawayland";
-        services.xserver.displayManager.sddm.enable = true;
-        services.xserver.desktopManager.plasma5.enable = true;
-        ###
-        ##  Misc
-        ###
-        sound.enable = true;
-
-        hardware.opengl = {
-            enable = true;
-            driSupport = true;
-        };
-    };
-}
diff --git a/jaci/modules/labwc/labwc_conf.nix b/jaci/modules/labwc/labwc_conf.nix
new file mode 100644
index 0000000..33d7ccb
--- /dev/null
+++ b/jaci/modules/labwc/labwc_conf.nix
@@ -0,0 +1,132 @@
+{ lib, config, pkgs, ... }:
+{
+    options.labwc = {
+        enable = lib.mkEnableOption "Enable labwc window manager.";
+        useNonFree = lib.mkOption {
+            default = false;
+            example = true;
+            description = "Whether to enable non-free software in the labwc config";
+        };
+        installGaming = lib.mkOption {
+            default = false;
+            example = true;
+            description = "Whether to install gaming software on the system.";
+        };
+        systemPackages = lib.mkOption {
+            default = [];
+            description = "Add any additional packages desired. Merged with labwc defaults.";
+        };
+
+    };
+
+    ###
+    ##  Configuration
+    ###
+    config = lib.mkIf config.labwc.enable {
+
+        programs.sway.enable = true;
+
+        nixpkgs.config.allowUnfree = config.labwc.useNonFree;
+        # For R2ModMan
+        # nixpkgs.config.permittedInsecurePackages = [
+        #     "electron-25.9.0"
+        # ];
+        
+        ###
+        ##  XDG portal setup
+        ###
+        xdg.portal = {
+            config = {
+                common = {
+                  default = [
+                    "wlr"
+                  ];
+                };
+            };
+            extraPortals = with pkgs; [
+                xdg-desktop-portal-gtk
+            ];
+            wlr.enable = true;
+            enable = true;
+        };
+        xdg.sounds.enable = true;
+
+        ###
+        ##  System Packages
+        ###
+        environment.systemPackages = with pkgs; lib.lists.flatten [
+             [
+                bash
+                foot
+                git
+                glib # gsettings
+                grim
+                labwc
+                libnotify
+                mako
+                ncspot
+                networkmanagerapplet
+                pavucontrol
+                slurp
+                swaylock
+                swayidle
+                swww
+                wl-clipboard
+                waybar
+                wdisplays
+                wofi
+                xdg-utils
+                zsh
+                # Fonts
+             ]
+            config.labwc.systemPackages
+            # (lib.mkIf config.labwc.installGaming [
+            #     pkgs.lutris
+            # ])
+        ];
+
+        environment.loginShellInit = ''
+            [[ "$(tty)" == /dev/tty1 ]] && labwc
+        '';
+        # Thunar config
+        programs.thunar = {
+            enable = true;
+            plugins = with pkgs.xfce; [
+                thunar-archive-plugin
+                thunar-volman
+            ];
+        };
+        programs.file-roller.enable = true;
+        programs.xfconf.enable = true;
+
+        programs.zsh.enable = true;
+        programs.steam.enable = config.labwc.installGaming;
+
+        # kdeconnect setup
+        programs.kdeconnect.enable = true;
+
+        ###
+        ##  Services
+        ###
+        services.gvfs.enable = true;  # thunar functionalities
+        services.openssh.enable = true;
+        services.dbus.enable = true;
+        services.pipewire = {
+          enable = true;
+          alsa.enable = true;
+          pulse.enable = true;
+        };
+
+        ###
+        ##  Misc
+        ###
+        sound.enable = true;
+        # Necessary for home-manager labwc setup
+        security.polkit.enable = true;
+
+        hardware.opengl = {
+            enable = true;
+            driSupport = true;
+        };
+    };
+}
diff --git a/nate/desktop-configuration.nix b/nate/desktop-configuration.nix
index 31fb333..413b473 100644
--- a/nate/desktop-configuration.nix
+++ b/nate/desktop-configuration.nix
@@ -54,7 +54,7 @@ in
     # Use the systemd-boot EFI boot loader.
     boot.loader.systemd-boot.enable = true;
     boot.loader.efi.canTouchEfiVariables = true;
-    boot.plymouth.enable = true;
+    # boot.plymouth.enable = true;
   
     networking.hostName = deskCfg.hostName; # Define your hostname.
     networking.networkmanager.enable = true;  # Easiest to use and most distros use this by default.
diff --git a/nate/modules/apps/firefox/firefox.nix b/nate/modules/apps/firefox/firefox.nix
index 1b9dae5..27a813a 100644
--- a/nate/modules/apps/firefox/firefox.nix
+++ b/nate/modules/apps/firefox/firefox.nix
@@ -38,6 +38,7 @@ in
                     settings = {
                        "browser.startup.blankWindow" = true;
                        "browser.startup.homepage" = "about:blank";
+                       "browser.newtabpage.enabled" = false;
                        "browser.search.region" = "US";
                        "browser.search.isUS" = true;
                        "distribution.searchplugins.defaultLocale" = "en-US";
diff --git a/nate/modules/home-manager/home.nix b/nate/modules/home-manager/home.nix
index a7fcb33..321dfad 100644
--- a/nate/modules/home-manager/home.nix
+++ b/nate/modules/home-manager/home.nix
@@ -74,6 +74,8 @@
     ripgrep
     tre-command
     gtop
+    # Normies
+    unzip
 
     #
     # Photo / Video
diff --git a/nate/modules/sway/sway_conf.nix b/nate/modules/sway/sway_conf.nix
index 30a9201..efc8924 100644
--- a/nate/modules/sway/sway_conf.nix
+++ b/nate/modules/sway/sway_conf.nix
@@ -125,8 +125,12 @@
         # Necessary for home-manager sway setup
         security.polkit.enable = true;
 
+        # Use amdgpu-pro drivers for davinci
+        # services.xserver.videoDrivers = [ "amdgpu-pro" ];
         hardware.opengl = {
+            # Mesa
             enable = true;
+            # Vulkan
             driSupport = true;
         };
     };
diff --git a/nate/nixos/hardware-configuration.nix b/nate/nixos/hardware-configuration.nix
index 31e746e..29201f6 100644
--- a/nate/nixos/hardware-configuration.nix
+++ b/nate/nixos/hardware-configuration.nix
@@ -9,7 +9,7 @@
     ];
 
   boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "uas" "usb_storage" "sd_mod" ];
-  boot.initrd.kernelModules = [ ];
+  boot.initrd.kernelModules = [ "amdgpu" ];
   boot.kernelModules = [ "kvm-amd" ];
   boot.extraModulePackages = [ ];