diff --git a/leftwm/config.ron b/leftwm/config.ron
new file mode 100644
index 0000000..23b9f21
--- /dev/null
+++ b/leftwm/config.ron
@@ -0,0 +1,156 @@
+// _ ___ ___ _
+// | | / __)_ / __|_)
+// | | ____| |__| |_ _ _ _ ____ ____ ___ ____ | |__ _ ____ ____ ___ ____
+// | |/ _ ) __) _) | | | \ / ___) _ \| _ \| __) |/ _ | / ___) _ \| _ \
+// | ( (/ /| | | |_| | | | | | | ( (__| |_| | | | | | | ( ( | |_| | | |_| | | | |
+// |_|\____)_| \___)____|_|_|_| \____)___/|_| |_|_| |_|\_|| (_)_| \___/|_| |_|
+// A WindowManager for Adventurers (____/
+// For info about configuration please visit https://github.com/leftwm/leftwm/wiki
+
+#![enable(implicit_some)]
+#![enable(unwrap_newtypes)]
+(
+ modkey: "Mod4",
+ mousekey: "Mod4",
+ workspaces: [],
+ tags: [
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ ],
+ max_window_width: None,
+ layouts: [
+ "EvenHorizontal",
+ "EvenVertical",
+ "Monocle",
+ "Grid",
+ "MainAndVertStack",
+ "MainAndHorizontalStack",
+ "RightMainAndVertStack",
+ "Fibonacci",
+ "Dwindle",
+ "MainAndDeck",
+ "CenterMain",
+ "CenterMainBalanced",
+ "CenterMainFluid",
+ ],
+ layout_definitions: [
+ (name: "EvenHorizontal", flip: None, rotate: North, reserve: None, columns: (flip: None, rotate: North, main: None, stack: (flip: None, rotate: North, split: Vertical), second_stack: None)),
+ (name: "EvenVertical", flip: None, rotate: North, reserve: None, columns: (flip: None, rotate: North, main: None, stack: (flip: None, rotate: North, split: Horizontal), second_stack: None)),
+ (name: "Monocle", flip: None, rotate: North, reserve: None, columns: (flip: None, rotate: North, main: None, stack: (flip: None, rotate: North, split: None), second_stack: None)),
+ (name: "Grid", flip: None, rotate: North, reserve: None, columns: (flip: None, rotate: North, main: None, stack: (flip: None, rotate: North, split: Grid), second_stack: None)),
+ (name: "MainAndVertStack", flip: None, rotate: North, reserve: None, columns: (flip: None, rotate: North, main: (count: 1, size: 0.5, flip: None, rotate: North, split: Vertical), stack: (flip: None, rotate: North, split: Horizontal), second_stack: None)),
+ (name: "MainAndHorizontalStack", flip: None, rotate: North, reserve: None, columns: (flip: None, rotate: North, main: (count: 1, size: 0.5, flip: None, rotate: North, split: Vertical), stack: (flip: None, rotate: North, split: Vertical), second_stack: None)),
+ (name: "RightMainAndVertStack", flip: None, rotate: North, reserve: None, columns: (flip: None, rotate: South, main: (count: 1, size: 0.5, flip: None, rotate: North, split: Vertical), stack: (flip: None, rotate: North, split: Horizontal), second_stack: None)),
+ (name: "Fibonacci", flip: None, rotate: North, reserve: None, columns: (flip: None, rotate: North, main: (count: 1, size: 0.5, flip: None, rotate: North, split: Vertical), stack: (flip: None, rotate: North, split: Fibonacci), second_stack: None)),
+ (name: "Dwindle", flip: None, rotate: North, reserve: None, columns: (flip: None, rotate: North, main: (count: 1, size: 0.5, flip: None, rotate: North, split: Vertical), stack: (flip: None, rotate: North, split: Dwindle), second_stack: None)),
+ (name: "MainAndDeck", flip: None, rotate: North, reserve: None, columns: (flip: None, rotate: North, main: (count: 1, size: 0.5, flip: None, rotate: North, split: None), stack: (flip: None, rotate: North, split: None), second_stack: None)),
+ (name: "CenterMain", flip: None, rotate: North, reserve: None, columns: (flip: None, rotate: North, main: (count: 1, size: 0.5, flip: None, rotate: North, split: Vertical), stack: (flip: None, rotate: North, split: None), second_stack: (flip: None, rotate: North, split: Horizontal))),
+ (name: "CenterMainBalanced", flip: None, rotate: North, reserve: None, columns: (flip: None, rotate: North, main: (count: 1, size: 0.5, flip: None, rotate: North, split: Vertical), stack: (flip: None, rotate: North, split: Dwindle), second_stack: (flip: None, rotate: North, split: Dwindle))),
+ (name: "CenterMainFluid", flip: None, rotate: North, reserve: Reserve, columns: (flip: None, rotate: North, main: (count: 1, size: 0.5, flip: None, rotate: North, split: Vertical), stack: (flip: None, rotate: North, split: None), second_stack: (flip: None, rotate: North, split: Horizontal))),
+ ],
+ layout_mode: Tag,
+ insert_behavior: Bottom,
+ scratchpad: [
+ (name: "Alacritty", value: "alacritty -o window.opacity=0.8 -e ~/.config/bin/z", x: 0, y: 0, height: 1474, width: 2256),
+ ],
+ window_rules: [
+ // (window_title: ".*Zellij.*", spawn_fullscreen: true),
+ // (window_class: ".*Alacritty.*", spawn_fullscreen: true),
+ (window_class: ".*Alacritty.*", spawn_floating: true),
+ (window_class: "firefox", spawn_on_tag: 1),
+ (window_title: "Dino", spawn_on_tag: 2),
+
+ // kde stuff https://userbase.kde.org/Tutorials/Using_Other_Window_Managers_with_Plasma#Single_User:_Using_System_Settings
+ (window_title: "Desktop.*Plasma", spawn_floating: true),
+ (window_title: "plasma-desktop", spawn_floating: true),
+ (window_class: "yakuake", spawn_floating: true),
+ (window_class: "plasmashell", spawn_floating: true),
+ (window_class: "Plasma", spawn_floating: true),
+ (window_class: "krunner", spawn_floating: true),
+ (window_class: "Kmix", spawn_floating: true),
+ (window_class: "Klipper", spawn_floating: true),
+ (window_class: "Plasmoidviewer", spawn_floating: true),
+ (window_class: "(?i).*nextcloud.*", spawn_floating: true),
+ ],
+ disable_current_tag_swap: false,
+ disable_tile_drag: false,
+ disable_window_snap: true,
+ focus_behaviour: Sloppy,
+ focus_new_windows: true,
+ single_window_border: true,
+ sloppy_mouse_follows_focus: true,
+ create_follows_cursor: None,
+ auto_derive_workspaces: true,
+ disable_cursor_reposition_on_resize: false,
+ keybind: [
+ (command: Execute, value: "pactl set-sink-volume @DEFAULT_SINK@ +10%", modifier: [], key: "XF86AudioRaiseVolume"),
+ (command: Execute, value: "pactl set-sink-volume @DEFAULT_SINK@ -10%", modifier: [], key: "XF86AudioLowerVolume"),
+ (command: Execute, value: "pactl set-sink-mute @DEFAULT_SINK@ toggle", modifier: [], key: "XF86AudioMute"),
+ (command: Execute, value: "pactl set-source-mute @DEFAULT_SOURCE@ toggle", modifier: [], key: "XF86AudioMicMute"),
+ // (command: Execute, value: "", modifier: [], key: ""),
+
+ (command: Execute, value: "rofi -show run", modifier: ["modkey"], key: "space"),
+ // (command: Execute, value: "tdrop -ma -h '100%' alacritty -o window.opacity=0.8 -e ~/.config/bin/z", modifier: [], key: "F12"),
+ (command: ToggleScratchPad, value: "Alacritty", modifier: [], key: "F12"),
+ (command: CloseWindow, value: "", modifier: ["modkey"], key: "q"),
+ (command: Execute, value: "physlock -s", modifier: ["modkey", "Control"], key: "l"),
+ (command: HardReload, modifier: ["modkey", "Shift"], key: "b"),
+ (command: ToggleFullScreen, modifier: ["modkey"], key: "f"),
+ (command: ToggleFloating, modifier: ["modkey", "Control"], key: "f"),
+ (command: ToggleSticky, modifier: ["modkey"], key: "v"),
+ // custom are above
+ (command: Execute, value: "dmenu_run", modifier: ["modkey"], key: "p"),
+ (command: Execute, value: "alacritty", modifier: ["modkey", "Shift"], key: "Return"),
+ // (command: CloseWindow, value: "", modifier: ["modkey", "Shift"], key: "q"),
+ (command: SoftReload, value: "", modifier: ["modkey", "Shift"], key: "r"),
+ (command: Execute, value: "loginctl kill-session $XDG_SESSION_ID", modifier: ["modkey", "Shift"], key: "x"),
+ // (command: Execute, value: "slock", modifier: ["modkey", "Control"], key: "l"),
+ (command: MoveToLastWorkspace, value: "", modifier: ["modkey", "Shift"], key: "w"),
+ (command: SwapTags, value: "", modifier: ["modkey"], key: "w"),
+ (command: MoveWindowUp, value: "", modifier: ["modkey", "Shift"], key: "k"),
+ (command: MoveWindowDown, value: "", modifier: ["modkey", "Shift"], key: "j"),
+ (command: MoveWindowTop, value: "", modifier: ["modkey"], key: "Return"),
+ (command: FocusWindowUp, value: "", modifier: ["modkey"], key: "k"),
+ (command: FocusWindowDown, value: "", modifier: ["modkey"], key: "j"),
+ (command: NextLayout, value: "", modifier: ["modkey", "Control"], key: "k"),
+ (command: PreviousLayout, value: "", modifier: ["modkey", "Control"], key: "j"),
+ (command: FocusWorkspaceNext, value: "", modifier: ["modkey"], key: "l"),
+ (command: FocusWorkspacePrevious, value: "", modifier: ["modkey"], key: "h"),
+ (command: MoveWindowUp, value: "", modifier: ["modkey", "Shift"], key: "Up"),
+ (command: MoveWindowDown, value: "", modifier: ["modkey", "Shift"], key: "Down"),
+ (command: FocusWindowUp, value: "", modifier: ["modkey"], key: "Up"),
+ (command: FocusWindowDown, value: "", modifier: ["modkey"], key: "Down"),
+ (command: NextLayout, value: "", modifier: ["modkey", "Control"], key: "Up"),
+ (command: PreviousLayout, value: "", modifier: ["modkey", "Control"], key: "Down"),
+ // (command: FocusWorkspaceNext, value: "", modifier: ["modkey"], key: "Right"),
+ // (command: FocusWorkspacePrevious, value: "", modifier: ["modkey"], key: "Left"),
+ (command: FocusNextTag, value: "", modifier: ["modkey"], key: "Right"),
+ (command: FocusPreviousTag, value: "", modifier: ["modkey"], key: "Left"),
+ (command: GotoTag, value: "1", modifier: ["modkey"], key: "1"),
+ (command: GotoTag, value: "2", modifier: ["modkey"], key: "2"),
+ (command: GotoTag, value: "3", modifier: ["modkey"], key: "3"),
+ (command: GotoTag, value: "4", modifier: ["modkey"], key: "4"),
+ (command: GotoTag, value: "5", modifier: ["modkey"], key: "5"),
+ (command: GotoTag, value: "6", modifier: ["modkey"], key: "6"),
+ (command: GotoTag, value: "7", modifier: ["modkey"], key: "7"),
+ (command: GotoTag, value: "8", modifier: ["modkey"], key: "8"),
+ (command: GotoTag, value: "9", modifier: ["modkey"], key: "9"),
+ (command: MoveToTag, value: "1", modifier: ["modkey", "Shift"], key: "1"),
+ (command: MoveToTag, value: "2", modifier: ["modkey", "Shift"], key: "2"),
+ (command: MoveToTag, value: "3", modifier: ["modkey", "Shift"], key: "3"),
+ (command: MoveToTag, value: "4", modifier: ["modkey", "Shift"], key: "4"),
+ (command: MoveToTag, value: "5", modifier: ["modkey", "Shift"], key: "5"),
+ (command: MoveToTag, value: "6", modifier: ["modkey", "Shift"], key: "6"),
+ (command: MoveToTag, value: "7", modifier: ["modkey", "Shift"], key: "7"),
+ (command: MoveToTag, value: "8", modifier: ["modkey", "Shift"], key: "8"),
+ (command: MoveToTag, value: "9", modifier: ["modkey", "Shift"], key: "9"),
+ ],
+ state_path: None,
+)
diff --git a/leftwm/down b/leftwm/down
new file mode 100755
index 0000000..cb40405
--- /dev/null
+++ b/leftwm/down
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+
+SCRIPTPATH="$( cd "$(dirname "$0")" || return ; pwd -P )"
+
+pkill firefox
+pkill dino
+
diff --git a/leftwm/themes.toml b/leftwm/themes.toml
new file mode 100644
index 0000000..5010bfe
--- /dev/null
+++ b/leftwm/themes.toml
@@ -0,0 +1,272 @@
+[[repos]]
+url = "https://raw.githubusercontent.com/leftwm/leftwm-community-themes/master/known.toml"
+name = "community"
+definitions_version = 1
+
+[[repos.themes]]
+name = "Amber"
+repository = "https://github.com/di-effe/amber"
+commit = "*"
+version = "0.2.2"
+leftwm_versions = ">0.2.10, <0.3.0"
+current = false
+
+[[repos.themes]]
+name = "arch-one-dark"
+repository = "https://github.com/jamesbaker1901/leftwm-arch-one-dark/"
+commit = "*"
+version = "1.0.0"
+leftwm_versions = "^0.3.0"
+current = false
+
+[[repos.themes]]
+name = "Ascent"
+directory = "/home/mopar/.config/leftwm/themes/Ascent"
+repository = "https://gitlab.com/mWalrus/ascent"
+commit = "*"
+version = "1.0.0"
+leftwm_versions = ">0.2.7"
+current = false
+
+[[repos.themes]]
+name = "Blue Coffee"
+repository = "https://github.com/Qwart376/Blue-Coffee/"
+commit = "*"
+version = "0.0.1"
+leftwm_versions = "<0.3.0"
+current = false
+
+[[repos.themes]]
+name = "Bumblebee"
+repository = "https://github.com/mfdorst/leftwm-bumblebee/"
+commit = "*"
+version = "0.0.1"
+leftwm_versions = "^0.2.8, <0.3.0"
+current = false
+
+[[repos.themes]]
+name = "Catppuccin"
+repository = "https://github.com/di-effe/catppuccin"
+commit = "*"
+version = "0.1.1"
+leftwm_versions = ">0.2.10, <0.3.0"
+current = false
+
+[[repos.themes]]
+name = "Coffee"
+repository = "https://github.com/lex148/leftwm-coffee/"
+commit = "*"
+version = "0.0.1"
+leftwm_versions = "<0.3.0"
+current = false
+
+[[repos.themes]]
+name = "Dementive"
+repository = "https://github.com/dementive/leftwm-dementive"
+commit = "*"
+version = "0.1"
+leftwm_versions = "^0.4.0"
+current = false
+
+[[repos.themes]]
+name = "Desire"
+repository = "https://github.com/copypasteonly/Desire"
+commit = "*"
+version = "0.1"
+leftwm_versions = "^0.4.0"
+current = false
+
+[[repos.themes]]
+name = "Double Bar"
+repository = "https://github.com/PeterDauwe/doublebar/"
+commit = "*"
+version = "0.0.2"
+leftwm_versions = "^0.3.0"
+current = false
+
+[[repos.themes]]
+name = "Dracula Rounded"
+repository = "https://github.com/AethanFoot/leftwm-theme-dracula-rounded/"
+commit = "*"
+version = "0.0.3"
+leftwm_versions = "^0.3.0"
+current = false
+
+[[repos.themes]]
+name = "Epitaph"
+directory = "/home/mopar/.config/leftwm/themes/Epitaph"
+repository = "https://github.com/VentGrey/Epitaph"
+commit = "*"
+version = "0.0.2"
+leftwm_versions = "*"
+current = false
+
+[[repos.themes]]
+name = "Flamingo"
+repository = "https://github.com/necaris/leftwm-theme-flamingo"
+commit = "*"
+version = "0.0.1"
+leftwm_versions = ">0.2.7, <0.3.0"
+current = false
+
+[[repos.themes]]
+name = "Forest"
+repository = "https://github.com/lex148/forest/"
+commit = "*"
+version = "0.0.1"
+leftwm_versions = "^0.3.0"
+current = false
+
+[[repos.themes]]
+name = "Garden"
+directory = "/home/mopar/.config/leftwm/themes/Garden"
+repository = "https://github.com/taylor85345/leftwm-theme-garden"
+commit = "*"
+version = "0.0.4"
+leftwm_versions = ">0.2.7"
+current = false
+
+[[repos.themes]]
+name = "Ground Zero"
+repository = "https://github.com/Qwart376/Ground-Zero/"
+commit = "*"
+version = "0.0.1"
+leftwm_versions = "<0.3.0"
+current = false
+
+[[repos.themes]]
+name = "minimal-solarized"
+repository = "https://github.com/minda1975/minimal_solarized"
+commit = "*"
+version = "0.1.0"
+leftwm_versions = "^0.3.0"
+current = false
+
+[[repos.themes]]
+name = "Molese"
+repository = "https://github.com/m0lese/leftwm-config"
+commit = "*"
+version = "2.1.0"
+leftwm_versions = ">0.2.10, <0.3.0"
+current = false
+
+[[repos.themes]]
+name = "Ocean-night"
+directory = "/home/mopar/.config/leftwm/themes/Ocean-night"
+repository = "https://github.com/TheRoniOne/ocean-night"
+commit = "*"
+version = "0.0.1"
+leftwm_versions = "*"
+current = false
+
+[[repos.themes]]
+name = "Orange Forest"
+repository = "https://github.com/PVautour/leftwm-theme-orange-forest/"
+commit = "*"
+version = "0.0.2"
+leftwm_versions = "^0.3.0"
+current = false
+
+[[repos.themes]]
+name = "plan9"
+repository = "https://github.com/seabassapologist/leftwm-theme-plan9"
+commit = "*"
+version = "0.1.0"
+leftwm_versions = "^0.3.0"
+current = false
+
+[[repos.themes]]
+name = "Red Moon"
+repository = "https://github.com/Qwart376/Red-Moon"
+commit = "*"
+version = "0.0.1"
+leftwm_versions = "<0.3.0"
+current = false
+
+[[repos.themes]]
+name = "Serika"
+repository = "https://github.com/VuiMuich/leftwm-theme-serika.git"
+commit = "*"
+version = "0.0.1"
+leftwm_versions = ">=0.3.0"
+current = false
+
+[[repos.themes]]
+name = "Soothe"
+repository = "https://github.com/b4skyx/leftwm-soothe/"
+commit = "*"
+version = "0.0.1"
+leftwm_versions = "<0.3.0"
+current = false
+relative_directory = "theme/"
+
+[[repos.themes]]
+name = "SpaceJelly"
+repository = "https://gitlab.com/leftwmthemes/space_jelly"
+commit = "*"
+version = "1.0.0"
+leftwm_versions = ">0.2.10, <0.3.0"
+current = false
+
+[[repos.themes]]
+name = "sunflower"
+repository = "https://github.com/mautamu/leftwm-sunflower/"
+commit = "*"
+version = "0.1.2"
+leftwm_versions = "^0.2.11, <0.3.0"
+current = false
+
+[[repos.themes]]
+name = "Sunset"
+repository = "https://github.com/Syudagye/leftwm-sunset"
+commit = "*"
+version = "0.0.1"
+leftwm_versions = "<0.3.0"
+current = false
+
+[[repos.themes]]
+name = "TNG"
+repository = "https://github.com/lex148/leftwm-tng/"
+commit = "*"
+version = "0.0.1"
+leftwm_versions = "<0.3.0"
+current = false
+
+[[repos.themes]]
+name = "Windows XP"
+repository = "https://github.com/lex148/leftwm-windowsxp/"
+commit = "*"
+version = "0.0.1"
+leftwm_versions = "<0.3.0"
+current = false
+
+[[repos.themes]]
+name = "Zexanima"
+repository = "https://github.com/calebgasser/zexanima-leftwm-theme/tree/develop"
+commit = "*"
+version = "0.0.1"
+leftwm_versions = ">0.3.0"
+current = false
+
+[[repos.themes]]
+name = "Blood-Moon"
+repository = "https://github.com/zawesomekid/Blood-Moon-leftwm-theme"
+commit = "*"
+version = "0.0.1"
+leftwm_versions = ">0.3.0"
+current = false
+
+[[repos.themes]]
+name = "Late-Night"
+directory = "/home/mopar/.config/leftwm/themes/Late-Night"
+repository = "https://github.com/JacoMalan1/LateNight"
+commit = "*"
+version = "0.0.2"
+leftwm_versions = ">0.3.0"
+current = true
+
+[[repos]]
+url = "localhost"
+name = "LOCAL"
+definitions_version = 1
+themes = []
diff --git a/leftwm/themes/current b/leftwm/themes/current
new file mode 120000
index 0000000..0aa98b3
--- /dev/null
+++ b/leftwm/themes/current
@@ -0,0 +1 @@
+moparisthebest
\ No newline at end of file
diff --git a/leftwm/themes/moparisthebest/LICENSE b/leftwm/themes/moparisthebest/LICENSE
new file mode 100644
index 0000000..261eeb9
--- /dev/null
+++ b/leftwm/themes/moparisthebest/LICENSE
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/leftwm/themes/moparisthebest/README.md b/leftwm/themes/moparisthebest/README.md
new file mode 100644
index 0000000..7d75611
--- /dev/null
+++ b/leftwm/themes/moparisthebest/README.md
@@ -0,0 +1,20 @@
+# LeftWM Theme - LateNight
+
+A LeftWM theme for those late night coding sessions.
+
+## Screenshots
+![Screenshot](./screenshots/screenshot_1.png)
+
+## Installation
+ 1. Clone the repository to your LeftWM config folder: `git clone https://github.com/JacoMalan1/LateNight $HOME/.config/leftwm/themes/LateNight`
+ 2. Apply theme: `ln -s $HOME/.config/leftwm/themes/LateNight $HOME/.config/leftwm/themes/current`
+ 3. Reload LeftWM
+
+## Dependencies
+ - leftwm
+ - feh
+ - polybar
+ - dunst
+
+## Attribution
+The [wallpaper photo](https://unsplash.com/photos/cXU6tNxhub0) was taken by Andre Benz and is to be used under the [Unsplash License](https://unsplash.com/license).
diff --git a/leftwm/themes/moparisthebest/down b/leftwm/themes/moparisthebest/down
new file mode 100755
index 0000000..56e4b40
--- /dev/null
+++ b/leftwm/themes/moparisthebest/down
@@ -0,0 +1,16 @@
+#!/usr/bin/env bash
+
+leftwm command "UnloadTheme"
+
+pkill polybar
+pkill dunst
+pkill feh
+pkill compton
+
+# Restore old dunst config
+if [ -e $HOME/.config/dunstrc.bak ]; then
+ rm $HOME/.config/dunst/dunstrc
+ mv $HOME/.config/dunst/dunstrc.bak $HOME/.config/dunst/dunstrc
+fi
+
+pkill polybar
diff --git a/leftwm/themes/moparisthebest/dunstrc b/leftwm/themes/moparisthebest/dunstrc
new file mode 100644
index 0000000..fcb865e
--- /dev/null
+++ b/leftwm/themes/moparisthebest/dunstrc
@@ -0,0 +1,493 @@
+# -------------------------------------------------------------------------------
+# Copyright © 2013, Sascha Kruse and contributors
+# All rights reserved.
+#
+# All files (unless otherwise noted) are licensed under the BSD license:
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# * Neither the name of Sascha Kruse nor the
+# names of contributors may be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY Sascha Kruse ''AS IS'' AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL Sascha Kruse BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# -------------------------------------------------------------------------------
+# Note: The above copyright disclaimer only applies to this file
+# -------------------------------------------------------------------------------
+
+# See dunst(5) for all configuration options
+
+[global]
+ ### Display ###
+
+ # Which monitor should the notifications be displayed on.
+ monitor = 0
+
+ # Display notification on focused monitor. Possible modes are:
+ # mouse: follow mouse pointer
+ # keyboard: follow window with keyboard focus
+ # none: don't follow anything
+ #
+ # "keyboard" needs a window manager that exports the
+ # _NET_ACTIVE_WINDOW property.
+ # This should be the case for almost all modern window managers.
+ #
+ # If this option is set to mouse or keyboard, the monitor option
+ # will be ignored.
+ follow = none
+
+ ### Geometry ###
+
+ # dynamic width from 0 to 300
+ # width = (0, 300)
+ # constant width of 300
+ width = 300
+
+ # The maximum height of a single notification, excluding the frame.
+ height = 300
+
+ # Position the notification in the top right corner
+ origin = top-right
+
+ # Offset from the origin
+ offset = 10x50
+
+ # Scale factor. It is auto-detected if value is 0.
+ scale = 0
+
+ # Maximum number of notification (0 means no limit)
+ notification_limit = 20
+
+ ### Progress bar ###
+
+ # Turn on the progess bar. It appears when a progress hint is passed with
+ # for example dunstify -h int:value:12
+ progress_bar = true
+
+ # Set the progress bar height. This includes the frame, so make sure
+ # it's at least twice as big as the frame width.
+ progress_bar_height = 10
+
+ # Set the frame width of the progress bar
+ progress_bar_frame_width = 1
+
+ # Set the minimum width for the progress bar
+ progress_bar_min_width = 150
+
+ # Set the maximum width for the progress bar
+ progress_bar_max_width = 300
+
+ # Corner radius for the progress bar. 0 disables rounded corners.
+ progress_bar_corner_radius = 0
+
+ # Corner radius for the icon image.
+ icon_corner_radius = 0
+
+ # Show how many messages are currently hidden (because of
+ # notification_limit).
+ indicate_hidden = yes
+
+ # The transparency of the window. Range: [0; 100].
+ # This option will only work if a compositing window manager is
+ # present (e.g. xcompmgr, compiz, etc.). (X11 only)
+ transparency = 0
+
+ # Draw a line of "separator_height" pixel height between two
+ # notifications.
+ # Set to 0 to disable.
+ # If gap_size is greater than 0, this setting will be ignored.
+ separator_height = 2
+
+ # Padding between text and separator.
+ padding = 8
+
+ # Horizontal padding.
+ horizontal_padding = 8
+
+ # Padding between text and icon.
+ text_icon_padding = 0
+
+ # Defines width in pixels of frame around the notification window.
+ # Set to 0 to disable.
+ frame_width = 3
+
+ # Defines color of the frame around the notification window.
+ frame_color = "#aaaaaa"
+
+ # Size of gap to display between notifications - requires a compositor.
+ # If value is greater than 0, separator_height will be ignored and a border
+ # of size frame_width will be drawn around each notification instead.
+ # Click events on gaps do not currently propagate to applications below.
+ gap_size = 0
+
+ # Define a color for the separator.
+ # possible values are:
+ # * auto: dunst tries to find a color fitting to the background;
+ # * foreground: use the same color as the foreground;
+ # * frame: use the same color as the frame;
+ # * anything else will be interpreted as a X color.
+ separator_color = frame
+
+ # Sort messages by urgency.
+ sort = yes
+
+ # Don't remove messages, if the user is idle (no mouse or keyboard input)
+ # for longer than idle_threshold seconds.
+ # Set to 0 to disable.
+ # A client can set the 'transient' hint to bypass this. See the rules
+ # section for how to disable this if necessary
+ # idle_threshold = 120
+
+ ### Text ###
+
+ font = Monospace 8
+
+ # The spacing between lines. If the height is smaller than the
+ # font height, it will get raised to the font height.
+ line_height = 0
+
+ # Possible values are:
+ # full: Allow a small subset of html markup in notifications:
+ # bold
+ # italic
+ # strikethrough
+ # underline
+ #
+ # For a complete reference see
+ # .
+ #
+ # strip: This setting is provided for compatibility with some broken
+ # clients that send markup even though it's not enabled on the
+ # server. Dunst will try to strip the markup but the parsing is
+ # simplistic so using this option outside of matching rules for
+ # specific applications *IS GREATLY DISCOURAGED*.
+ #
+ # no: Disable markup parsing, incoming notifications will be treated as
+ # plain text. Dunst will not advertise that it has the body-markup
+ # capability if this is set as a global setting.
+ #
+ # It's important to note that markup inside the format option will be parsed
+ # regardless of what this is set to.
+ markup = full
+
+ # The format of the message. Possible variables are:
+ # %a appname
+ # %s summary
+ # %b body
+ # %i iconname (including its path)
+ # %I iconname (without its path)
+ # %p progress value if set ([ 0%] to [100%]) or nothing
+ # %n progress value if set without any extra characters
+ # %% Literal %
+ # Markup is allowed
+ format = "%s\n%b"
+
+ # Alignment of message text.
+ # Possible values are "left", "center" and "right".
+ alignment = left
+
+ # Vertical alignment of message text and icon.
+ # Possible values are "top", "center" and "bottom".
+ vertical_alignment = center
+
+ # Show age of message if message is older than show_age_threshold
+ # seconds.
+ # Set to -1 to disable.
+ show_age_threshold = 60
+
+ # Specify where to make an ellipsis in long lines.
+ # Possible values are "start", "middle" and "end".
+ ellipsize = middle
+
+ # Ignore newlines '\n' in notifications.
+ ignore_newline = no
+
+ # Stack together notifications with the same content
+ stack_duplicates = true
+
+ # Hide the count of stacked notifications with the same content
+ hide_duplicate_count = false
+
+ # Display indicators for URLs (U) and actions (A).
+ show_indicators = yes
+
+ ### Icons ###
+
+ # Recursive icon lookup. You can set a single theme, instead of having to
+ # define all lookup paths.
+ enable_recursive_icon_lookup = true
+
+ # Set icon theme (only used for recursive icon lookup)
+ icon_theme = Adwaita
+ # You can also set multiple icon themes, with the leftmost one being used first.
+ # icon_theme = "Adwaita, breeze"
+
+ # Align icons left/right/top/off
+ icon_position = left
+
+ # Scale small icons up to this size, set to 0 to disable. Helpful
+ # for e.g. small files or high-dpi screens. In case of conflict,
+ # max_icon_size takes precedence over this.
+ min_icon_size = 32
+
+ # Scale larger icons down to this size, set to 0 to disable
+ max_icon_size = 128
+
+ # Paths to default icons (only neccesary when not using recursive icon lookup)
+ icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
+
+ ### History ###
+
+ # Should a notification popped up from history be sticky or timeout
+ # as if it would normally do.
+ sticky_history = yes
+
+ # Maximum amount of notifications kept in history
+ history_length = 20
+
+ ### Misc/Advanced ###
+
+ # dmenu path.
+ dmenu = /usr/bin/dmenu -p dunst:
+
+ # Browser for opening urls in context menu.
+ browser = /usr/bin/xdg-open
+
+ # Always run rule-defined scripts, even if the notification is suppressed
+ always_run_script = true
+
+ # Define the title of the windows spawned by dunst
+ title = Dunst
+
+ # Define the class of the windows spawned by dunst
+ class = Dunst
+
+ # Define the corner radius of the notification window
+ # in pixel size. If the radius is 0, you have no rounded
+ # corners.
+ # The radius will be automatically lowered if it exceeds half of the
+ # notification height to avoid clipping text and/or icons.
+ corner_radius = 0
+
+ # Ignore the dbus closeNotification message.
+ # Useful to enforce the timeout set by dunst configuration. Without this
+ # parameter, an application may close the notification sent before the
+ # user defined timeout.
+ ignore_dbusclose = false
+
+ ### Wayland ###
+ # These settings are Wayland-specific. They have no effect when using X11
+
+ # Uncomment this if you want to let notications appear under fullscreen
+ # applications (default: overlay)
+ # layer = top
+
+ # Set this to true to use X11 output on Wayland.
+ force_xwayland = false
+
+ ### Legacy
+
+ # Use the Xinerama extension instead of RandR for multi-monitor support.
+ # This setting is provided for compatibility with older nVidia drivers that
+ # do not support RandR and using it on systems that support RandR is highly
+ # discouraged.
+ #
+ # By enabling this setting dunst will not be able to detect when a monitor
+ # is connected or disconnected which might break follow mode if the screen
+ # layout changes.
+ force_xinerama = false
+
+ ### mouse
+
+ # Defines list of actions for each mouse event
+ # Possible values are:
+ # * none: Don't do anything.
+ # * do_action: Invoke the action determined by the action_name rule. If there is no
+ # such action, open the context menu.
+ # * open_url: If the notification has exactly one url, open it. If there are multiple
+ # ones, open the context menu.
+ # * close_current: Close current notification.
+ # * close_all: Close all notifications.
+ # * context: Open context menu for the notification.
+ # * context_all: Open context menu for all notifications.
+ # These values can be strung together for each mouse event, and
+ # will be executed in sequence.
+ mouse_left_click = close_current
+ mouse_middle_click = do_action, close_current
+ mouse_right_click = close_all
+
+# Experimental features that may or may not work correctly. Do not expect them
+# to have a consistent behaviour across releases.
+[experimental]
+ # Calculate the dpi to use on a per-monitor basis.
+ # If this setting is enabled the Xft.dpi value will be ignored and instead
+ # dunst will attempt to calculate an appropriate dpi value for each monitor
+ # using the resolution and physical size. This might be useful in setups
+ # where there are multiple screens with very different dpi values.
+ per_monitor_dpi = false
+
+
+[urgency_low]
+ # IMPORTANT: colors have to be defined in quotation marks.
+ # Otherwise the "#" and following would be interpreted as a comment.
+ background = "#222222"
+ foreground = "#888888"
+ timeout = 10
+ # Icon for notifications with low urgency, uncomment to enable
+ #default_icon = /path/to/icon
+
+[urgency_normal]
+ background = "#285577"
+ foreground = "#ffffff"
+ timeout = 10
+ # Icon for notifications with normal urgency, uncomment to enable
+ #default_icon = /path/to/icon
+
+[urgency_critical]
+ background = "#900000"
+ foreground = "#ffffff"
+ frame_color = "#ff0000"
+ timeout = 0
+ # Icon for notifications with critical urgency, uncomment to enable
+ #default_icon = /path/to/icon
+
+# Every section that isn't one of the above is interpreted as a rules to
+# override settings for certain messages.
+#
+# Messages can be matched by
+# appname (discouraged, see desktop_entry)
+# body
+# category
+# desktop_entry
+# icon
+# match_transient
+# msg_urgency
+# stack_tag
+# summary
+#
+# and you can override the
+# background
+# foreground
+# format
+# frame_color
+# fullscreen
+# new_icon
+# set_stack_tag
+# set_transient
+# set_category
+# timeout
+# urgency
+# icon_position
+# skip_display
+# history_ignore
+# action_name
+# word_wrap
+# ellipsize
+# alignment
+# hide_text
+#
+# Shell-like globbing will get expanded.
+#
+# Instead of the appname filter, it's recommended to use the desktop_entry filter.
+# GLib based applications export their desktop-entry name. In comparison to the appname,
+# the desktop-entry won't get localized.
+#
+# SCRIPTING
+# You can specify a script that gets run when the rule matches by
+# setting the "script" option.
+# The script will be called as follows:
+# script appname summary body icon urgency
+# where urgency can be "LOW", "NORMAL" or "CRITICAL".
+#
+# NOTE: It might be helpful to run dunst -print in a terminal in order
+# to find fitting options for rules.
+
+# Disable the transient hint so that idle_threshold cannot be bypassed from the
+# client
+#[transient_disable]
+# match_transient = yes
+# set_transient = no
+#
+# Make the handling of transient notifications more strict by making them not
+# be placed in history.
+#[transient_history_ignore]
+# match_transient = yes
+# history_ignore = yes
+
+# fullscreen values
+# show: show the notifications, regardless if there is a fullscreen window opened
+# delay: displays the new notification, if there is no fullscreen window active
+# If the notification is already drawn, it won't get undrawn.
+# pushback: same as delay, but when switching into fullscreen, the notification will get
+# withdrawn from screen again and will get delayed like a new notification
+#[fullscreen_delay_everything]
+# fullscreen = delay
+#[fullscreen_show_critical]
+# msg_urgency = critical
+# fullscreen = show
+
+#[espeak]
+# summary = "*"
+# script = dunst_espeak.sh
+
+#[script-test]
+# summary = "*script*"
+# script = dunst_test.sh
+
+#[ignore]
+# # This notification will not be displayed
+# summary = "foobar"
+# skip_display = true
+
+#[history-ignore]
+# # This notification will not be saved in history
+# summary = "foobar"
+# history_ignore = yes
+
+#[skip-display]
+# # This notification will not be displayed, but will be included in the history
+# summary = "foobar"
+# skip_display = yes
+
+#[signed_on]
+# appname = Pidgin
+# summary = "*signed on*"
+# urgency = low
+#
+#[signed_off]
+# appname = Pidgin
+# summary = *signed off*
+# urgency = low
+#
+#[says]
+# appname = Pidgin
+# summary = *says*
+# urgency = critical
+#
+#[twitter]
+# appname = Pidgin
+# summary = *twitter.com*
+# urgency = normal
+#
+#[stack-volumes]
+# appname = "some_volume_notifiers"
+# set_stack_tag = "volume"
+#
+# vim: ft=cfg
diff --git a/leftwm/themes/moparisthebest/polybar-bluetooth/README.md b/leftwm/themes/moparisthebest/polybar-bluetooth/README.md
new file mode 100644
index 0000000..adb098c
--- /dev/null
+++ b/leftwm/themes/moparisthebest/polybar-bluetooth/README.md
@@ -0,0 +1,34 @@
+# Polybar bluetooth module
+A fully functional bluetooth module for polybar that adds an icon that changes dinamically accordingly to the bluetooth status.
+
+![on](https://github.com/msaitz/polybar-bluetooth/blob/master/screenshots/on.png) When the bluetooth is on
+
+![off](https://github.com/msaitz/polybar-bluetooth/blob/master/screenshots/off.png) When the bluetooth is off
+
+![connected](https://github.com/msaitz/polybar-bluetooth/blob/master/screenshots/connected.png) When the bluetooth is connected to a device
+
+## Dependencies
+- Font Awesome 5 Free
+- Systemd
+- Blueberry
+
+## Installation
+
+Place the shell script files in your preferred sctipt directory.
+
+Add the module to your polybar config file
+```ini
+[module/bluetooth]
+type = custom/script
+exec = path/to/scripts/bluetooth.sh
+interval = 2
+click-left = exec blueberry
+click-right = exec path/to/scripts/config/polybar/toggle_bluetooth.sh
+format-padding = 1
+format-background = #000000
+format-foreground = #ffffff
+```
+## Usage
+Left click on the bluetooth icon launches blueberry or the bluetooth configuration tool of your choice.
+
+Right click on the bluetooth icon toggles the bluetooth power status.
diff --git a/leftwm/themes/moparisthebest/polybar-bluetooth/bluetooth.sh b/leftwm/themes/moparisthebest/polybar-bluetooth/bluetooth.sh
new file mode 100755
index 0000000..fea6d95
--- /dev/null
+++ b/leftwm/themes/moparisthebest/polybar-bluetooth/bluetooth.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+if [ $(bluetoothctl show | grep "Powered: yes" | wc -c) -eq 0 ]
+then
+ echo "%{F#66ffffff}"
+else
+ if [ $(echo info | bluetoothctl | grep 'Device' | wc -c) -eq 0 ]
+ then
+ echo ""
+ fi
+ echo "%{F#2193ff}"
+fi
+
diff --git a/leftwm/themes/moparisthebest/polybar-bluetooth/screenshots/connected.png b/leftwm/themes/moparisthebest/polybar-bluetooth/screenshots/connected.png
new file mode 100644
index 0000000..064e661
Binary files /dev/null and b/leftwm/themes/moparisthebest/polybar-bluetooth/screenshots/connected.png differ
diff --git a/leftwm/themes/moparisthebest/polybar-bluetooth/screenshots/off.png b/leftwm/themes/moparisthebest/polybar-bluetooth/screenshots/off.png
new file mode 100644
index 0000000..c8e529b
Binary files /dev/null and b/leftwm/themes/moparisthebest/polybar-bluetooth/screenshots/off.png differ
diff --git a/leftwm/themes/moparisthebest/polybar-bluetooth/screenshots/on.png b/leftwm/themes/moparisthebest/polybar-bluetooth/screenshots/on.png
new file mode 100644
index 0000000..4b43511
Binary files /dev/null and b/leftwm/themes/moparisthebest/polybar-bluetooth/screenshots/on.png differ
diff --git a/leftwm/themes/moparisthebest/polybar-bluetooth/toggle_bluetooth.sh b/leftwm/themes/moparisthebest/polybar-bluetooth/toggle_bluetooth.sh
new file mode 100755
index 0000000..dffb663
--- /dev/null
+++ b/leftwm/themes/moparisthebest/polybar-bluetooth/toggle_bluetooth.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+if [ $(bluetoothctl show | grep "Powered: yes" | wc -c) -eq 0 ]
+then
+ bluetoothctl power on
+else
+ bluetoothctl power off
+fi
diff --git a/leftwm/themes/moparisthebest/polybar.ini b/leftwm/themes/moparisthebest/polybar.ini
new file mode 100644
index 0000000..6e341d6
--- /dev/null
+++ b/leftwm/themes/moparisthebest/polybar.ini
@@ -0,0 +1,218 @@
+[colors]
+background = #404040
+foreground = #eeeeee
+foreground-orange = #fec601
+
+info-dark = #505050
+info-light = #aaaaaa
+
+foreground-alt = #28587b
+
+fire-brick = #ab3428
+
+[bar/mainbar]
+monitor = ${env:MONITOR}
+width = 100%
+height = 30
+background = ${colors.background}
+foreground = ${colors.foreground}
+
+font-0 = MesloLGF NF:style=Bold:size=13;1
+font-1 = JetBrains Mono NF:style=Bold:size=13;1
+font-2 = JetBrains Mono Nerd Font:style=Bold:size=13;1
+font-3 = Noto Color Emoji:style=Regular:size=13;1
+
+separator = "|"
+separator-foreground = ${colors.info-dark}
+
+modules-left = ewmh xwindow
+modules-center = date time
+modules-right = volume cpu memory wlan battery backlight bt wifi
+padding-left = 1
+padding-right = 1
+radius = 0
+border-size = 0pt
+border-color = #00000000
+
+cursor-click = pointer
+cursor-scroll = ns-resize
+tray-position = right
+
+module-margin = 1
+
+# override-redirect = true
+# wm-restack = i3
+
+# Put the bar at the bottom of the screen
+bottom = true
+
+[module/xwindow]
+type = internal/xwindow
+label = " %title:0:50:...%"
+
+[module/ewmh]
+type = internal/xworkspaces
+label-active = %name%
+label-active-background = ${colors.foreground-alt}
+label-active-underline= ${colors.foreground-alt}
+label-active-padding = 1
+
+label-occupied = %name%
+label-occupied-padding = 1
+
+label-urgent = %name%
+label-urgent-background = ${colors.fire-brick}
+label-urgent-padding = 1
+
+label-empty-padding = 1
+label-empty-foreground = ${colors.info-light}
+
+[module/date]
+type = internal/date
+interval = 1
+
+date = " %Y-%m-%d "
+date-alt = %Y-%m-%d %H:%M:%S
+
+label = %date%
+label-foreground = ${colors.foreground-orange}
+
+[module/time]
+type = internal/date
+date = " %H:%M "
+label-foreground = ${colors.info-light}
+
+[module/cpu]
+type = internal/cpu
+interval = 0.5
+label = " %{F#FEC601}CPU: %{F#A0A0A0}%percentage:2%% "
+label-foreground = ${colors.foreground}
+
+[module/volume]
+type = internal/pulseaudio
+
+master-soundcard = default
+speaker-soundcard = default
+headphone-soundcard = default
+
+label-volume = " %{F#FEC601}VOL: %{F#A0A0A0}%percentage:2%% "
+label-volume-foreground = ${colors.foreground}
+
+; Right and Middle click
+click-right = pavucontrol
+click-middle = pavucontrol
+
+[module/network]
+type = internal/network
+interface = enp0s20u1
+unknown-as-up = true
+
+label-disconnected = " not connected "
+label-disconnected-foreground = ${colors.a-red}
+format-disconnected =
+
+label-connected = " %{F#a3be8c}↓ %{F#d8dee9}%downspeed:9%%{F#4c566a} | %{F#88c0d0}↑ %{F#d8dee9}%upspeed:9%%{F-} "
+format-connected =
+
+[network-base]
+type = internal/network
+
+interval = 1
+
+format-connected =
+format-disconnected =
+format-packetloss =
+
+label-disconnected = " %{F#FEC601}%ifname%%{F#A0A0A0} disconnected "
+
+[module/wlan]
+inherit = network-base
+interface-type = wireless
+label-connected = " %{F#FEC601}%essid%%{F#A0A0A0} %local_ip% %downspeed:9% "
+label-connected-foreground = ${colors.foreground}
+
+[module/memory]
+type = internal/memory
+interval = 1
+warn-percentage = 1
+format =