summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/emacs/init.el7
-rw-r--r--config/labwc/autostart5
-rw-r--r--config/labwc/default.nix9
-rw-r--r--config/labwc/gruvbox-material-dark-blocks/openbox-3/close.xbm5
-rw-r--r--config/labwc/gruvbox-material-dark-blocks/openbox-3/close_hover.xbm5
-rw-r--r--config/labwc/gruvbox-material-dark-blocks/openbox-3/close_pressed.xbm5
-rw-r--r--config/labwc/gruvbox-material-dark-blocks/openbox-3/desk.xbm5
-rw-r--r--config/labwc/gruvbox-material-dark-blocks/openbox-3/desk_toggled.xbm5
-rw-r--r--config/labwc/gruvbox-material-dark-blocks/openbox-3/iconify.xbm5
-rw-r--r--config/labwc/gruvbox-material-dark-blocks/openbox-3/iconify_hover.xbm5
-rw-r--r--config/labwc/gruvbox-material-dark-blocks/openbox-3/iconify_pressed.xbm5
-rw-r--r--config/labwc/gruvbox-material-dark-blocks/openbox-3/max.xbm5
-rw-r--r--config/labwc/gruvbox-material-dark-blocks/openbox-3/max_hover.xbm5
-rw-r--r--config/labwc/gruvbox-material-dark-blocks/openbox-3/max_pressed.xbm5
-rw-r--r--config/labwc/gruvbox-material-dark-blocks/openbox-3/max_toggled.xbm5
-rw-r--r--config/labwc/gruvbox-material-dark-blocks/openbox-3/max_toggled_hover.xbm5
-rw-r--r--config/labwc/gruvbox-material-dark-blocks/openbox-3/max_toggled_pressed.xbm5
-rw-r--r--config/labwc/gruvbox-material-dark-blocks/openbox-3/shade.xbm5
-rw-r--r--config/labwc/gruvbox-material-dark-blocks/openbox-3/shade_toggled.xbm5
-rw-r--r--config/labwc/gruvbox-material-dark-blocks/openbox-3/themerc172
-rw-r--r--config/labwc/rc.xml454
-rw-r--r--config/waybar/config58
-rw-r--r--config/waybar/default.nix8
-rw-r--r--config/waybar/style.css51
-rw-r--r--machines/x/configuration.nix6
-rw-r--r--machines/x/home.nix12
-rw-r--r--modules/login.nix2
-rw-r--r--modules/wm_utils.nix1
28 files changed, 854 insertions, 11 deletions
diff --git a/config/emacs/init.el b/config/emacs/init.el
index 8e9a664..6f075a1 100644
--- a/config/emacs/init.el
+++ b/config/emacs/init.el
@@ -92,8 +92,11 @@
(add-hook 'compilation-filter-hook 'ansi-color-compilation-filter)
-(add-hook 'c-mode-hook 'clang-format-on-save-mode)
-(add-hook 'c++-mode-hook 'clang-format-on-save-mode)
+(add-hook 'c-mode-hook 'eglot-ensure)
+(add-hook 'c++-mode-hook 'eglot-ensure)
+(add-hook 'python-mode-hook 'eglot-ensure)
+
+(add-hook 'after-save-hook 'eglot-format)
(global-set-key (kbd "s-`") 'popper-toggle)
(global-set-key (kbd "C-`") 'popper-cycle)
diff --git a/config/labwc/autostart b/config/labwc/autostart
new file mode 100644
index 0000000..3928e0a
--- /dev/null
+++ b/config/labwc/autostart
@@ -0,0 +1,5 @@
+wbg /config/dist/wallpaper.png &
+waybar &
+way-displays &
+swayidle before-sleep swaylock lock swaylock &
+dunst &
diff --git a/config/labwc/default.nix b/config/labwc/default.nix
new file mode 100644
index 0000000..bc83feb
--- /dev/null
+++ b/config/labwc/default.nix
@@ -0,0 +1,9 @@
+{ pkgs, config, ... }:
+
+{
+ home.packages = with pkgs; [ labwc ];
+
+ home.file.".config/labwc/rc.xml".source = ./rc.xml;
+ home.file.".config/labwc/autostart".source = ./autostart;
+ home.file.".themes/gruvbox-material-dark-blocks".source = ./gruvbox-material-dark-blocks;
+}
diff --git a/config/labwc/gruvbox-material-dark-blocks/openbox-3/close.xbm b/config/labwc/gruvbox-material-dark-blocks/openbox-3/close.xbm
new file mode 100644
index 0000000..0f58737
--- /dev/null
+++ b/config/labwc/gruvbox-material-dark-blocks/openbox-3/close.xbm
@@ -0,0 +1,5 @@
+#define close_width 10
+#define close_height 10
+static unsigned char close_bits[] = {
+ 0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0xff, 0x03,
+ 0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0xff, 0x03 };
diff --git a/config/labwc/gruvbox-material-dark-blocks/openbox-3/close_hover.xbm b/config/labwc/gruvbox-material-dark-blocks/openbox-3/close_hover.xbm
new file mode 100644
index 0000000..87ab9a4
--- /dev/null
+++ b/config/labwc/gruvbox-material-dark-blocks/openbox-3/close_hover.xbm
@@ -0,0 +1,5 @@
+#define close_width 10
+#define close_height 10
+static unsigned char close_bits[] = {
+ 0x03, 0x03, 0x87, 0x03, 0xce, 0x01, 0xfc, 0x00, 0x78, 0x00,
+ 0x78, 0x00, 0xfc, 0x00, 0xce, 0x01, 0x87, 0x03, 0x03, 0x03 };
diff --git a/config/labwc/gruvbox-material-dark-blocks/openbox-3/close_pressed.xbm b/config/labwc/gruvbox-material-dark-blocks/openbox-3/close_pressed.xbm
new file mode 100644
index 0000000..87ab9a4
--- /dev/null
+++ b/config/labwc/gruvbox-material-dark-blocks/openbox-3/close_pressed.xbm
@@ -0,0 +1,5 @@
+#define close_width 10
+#define close_height 10
+static unsigned char close_bits[] = {
+ 0x03, 0x03, 0x87, 0x03, 0xce, 0x01, 0xfc, 0x00, 0x78, 0x00,
+ 0x78, 0x00, 0xfc, 0x00, 0xce, 0x01, 0x87, 0x03, 0x03, 0x03 };
diff --git a/config/labwc/gruvbox-material-dark-blocks/openbox-3/desk.xbm b/config/labwc/gruvbox-material-dark-blocks/openbox-3/desk.xbm
new file mode 100644
index 0000000..a28c0c5
--- /dev/null
+++ b/config/labwc/gruvbox-material-dark-blocks/openbox-3/desk.xbm
@@ -0,0 +1,5 @@
+#define desk_width 10
+#define desk_height 10
+static unsigned char desk_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x66, 0x00, 0x66, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x66, 0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00 };
diff --git a/config/labwc/gruvbox-material-dark-blocks/openbox-3/desk_toggled.xbm b/config/labwc/gruvbox-material-dark-blocks/openbox-3/desk_toggled.xbm
new file mode 100644
index 0000000..132905d
--- /dev/null
+++ b/config/labwc/gruvbox-material-dark-blocks/openbox-3/desk_toggled.xbm
@@ -0,0 +1,5 @@
+#define desk_toggled_width 10
+#define desk_toggled_height 10
+static unsigned char desk_toggled_bits[] = {
+ 0xef, 0x01, 0x29, 0x01, 0x29, 0x01, 0xef, 0x01, 0x00, 0x00,
+ 0xef, 0x01, 0x29, 0x01, 0x29, 0x01, 0xef, 0x01, 0x00, 0x00 };
diff --git a/config/labwc/gruvbox-material-dark-blocks/openbox-3/iconify.xbm b/config/labwc/gruvbox-material-dark-blocks/openbox-3/iconify.xbm
new file mode 100644
index 0000000..0f58737
--- /dev/null
+++ b/config/labwc/gruvbox-material-dark-blocks/openbox-3/iconify.xbm
@@ -0,0 +1,5 @@
+#define close_width 10
+#define close_height 10
+static unsigned char close_bits[] = {
+ 0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0xff, 0x03,
+ 0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0xff, 0x03 };
diff --git a/config/labwc/gruvbox-material-dark-blocks/openbox-3/iconify_hover.xbm b/config/labwc/gruvbox-material-dark-blocks/openbox-3/iconify_hover.xbm
new file mode 100644
index 0000000..0416a1e
--- /dev/null
+++ b/config/labwc/gruvbox-material-dark-blocks/openbox-3/iconify_hover.xbm
@@ -0,0 +1,5 @@
+#define iconify_width 10
+#define iconify_height 10
+static unsigned char iconify_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0xff, 0x03 };
diff --git a/config/labwc/gruvbox-material-dark-blocks/openbox-3/iconify_pressed.xbm b/config/labwc/gruvbox-material-dark-blocks/openbox-3/iconify_pressed.xbm
new file mode 100644
index 0000000..0416a1e
--- /dev/null
+++ b/config/labwc/gruvbox-material-dark-blocks/openbox-3/iconify_pressed.xbm
@@ -0,0 +1,5 @@
+#define iconify_width 10
+#define iconify_height 10
+static unsigned char iconify_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0xff, 0x03 };
diff --git a/config/labwc/gruvbox-material-dark-blocks/openbox-3/max.xbm b/config/labwc/gruvbox-material-dark-blocks/openbox-3/max.xbm
new file mode 100644
index 0000000..0f58737
--- /dev/null
+++ b/config/labwc/gruvbox-material-dark-blocks/openbox-3/max.xbm
@@ -0,0 +1,5 @@
+#define close_width 10
+#define close_height 10
+static unsigned char close_bits[] = {
+ 0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0xff, 0x03,
+ 0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0xff, 0x03 };
diff --git a/config/labwc/gruvbox-material-dark-blocks/openbox-3/max_hover.xbm b/config/labwc/gruvbox-material-dark-blocks/openbox-3/max_hover.xbm
new file mode 100644
index 0000000..2f8892f
--- /dev/null
+++ b/config/labwc/gruvbox-material-dark-blocks/openbox-3/max_hover.xbm
@@ -0,0 +1,5 @@
+#define max_width 10
+#define max_height 10
+static unsigned char max_bits[] = {
+ 0xff, 0x03, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
+ 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0xff, 0x03, 0xff, 0x03 };
diff --git a/config/labwc/gruvbox-material-dark-blocks/openbox-3/max_pressed.xbm b/config/labwc/gruvbox-material-dark-blocks/openbox-3/max_pressed.xbm
new file mode 100644
index 0000000..2f8892f
--- /dev/null
+++ b/config/labwc/gruvbox-material-dark-blocks/openbox-3/max_pressed.xbm
@@ -0,0 +1,5 @@
+#define max_width 10
+#define max_height 10
+static unsigned char max_bits[] = {
+ 0xff, 0x03, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
+ 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0xff, 0x03, 0xff, 0x03 };
diff --git a/config/labwc/gruvbox-material-dark-blocks/openbox-3/max_toggled.xbm b/config/labwc/gruvbox-material-dark-blocks/openbox-3/max_toggled.xbm
new file mode 100644
index 0000000..0f58737
--- /dev/null
+++ b/config/labwc/gruvbox-material-dark-blocks/openbox-3/max_toggled.xbm
@@ -0,0 +1,5 @@
+#define close_width 10
+#define close_height 10
+static unsigned char close_bits[] = {
+ 0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0xff, 0x03,
+ 0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0xff, 0x03 };
diff --git a/config/labwc/gruvbox-material-dark-blocks/openbox-3/max_toggled_hover.xbm b/config/labwc/gruvbox-material-dark-blocks/openbox-3/max_toggled_hover.xbm
new file mode 100644
index 0000000..5568474
--- /dev/null
+++ b/config/labwc/gruvbox-material-dark-blocks/openbox-3/max_toggled_hover.xbm
@@ -0,0 +1,5 @@
+#define max_toggled_width 10
+#define max_toggled_height 10
+static unsigned char max_toggled_bits[] = {
+ 0xfc, 0x03, 0xfc, 0x03, 0x00, 0x03, 0x7f, 0x03, 0x7f, 0x03,
+ 0x63, 0x03, 0x63, 0x03, 0x63, 0x03, 0x7f, 0x00, 0x7f, 0x00 };
diff --git a/config/labwc/gruvbox-material-dark-blocks/openbox-3/max_toggled_pressed.xbm b/config/labwc/gruvbox-material-dark-blocks/openbox-3/max_toggled_pressed.xbm
new file mode 100644
index 0000000..5568474
--- /dev/null
+++ b/config/labwc/gruvbox-material-dark-blocks/openbox-3/max_toggled_pressed.xbm
@@ -0,0 +1,5 @@
+#define max_toggled_width 10
+#define max_toggled_height 10
+static unsigned char max_toggled_bits[] = {
+ 0xfc, 0x03, 0xfc, 0x03, 0x00, 0x03, 0x7f, 0x03, 0x7f, 0x03,
+ 0x63, 0x03, 0x63, 0x03, 0x63, 0x03, 0x7f, 0x00, 0x7f, 0x00 };
diff --git a/config/labwc/gruvbox-material-dark-blocks/openbox-3/shade.xbm b/config/labwc/gruvbox-material-dark-blocks/openbox-3/shade.xbm
new file mode 100644
index 0000000..e21c44a
--- /dev/null
+++ b/config/labwc/gruvbox-material-dark-blocks/openbox-3/shade.xbm
@@ -0,0 +1,5 @@
+#define shade_width 10
+#define shade_height 10
+static unsigned char shade_bits[] = {
+ 0x30, 0x00, 0x78, 0x00, 0xfc, 0x00, 0xfe, 0x01, 0xb7, 0x03,
+ 0x33, 0x03, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00 };
diff --git a/config/labwc/gruvbox-material-dark-blocks/openbox-3/shade_toggled.xbm b/config/labwc/gruvbox-material-dark-blocks/openbox-3/shade_toggled.xbm
new file mode 100644
index 0000000..16c8066
--- /dev/null
+++ b/config/labwc/gruvbox-material-dark-blocks/openbox-3/shade_toggled.xbm
@@ -0,0 +1,5 @@
+#define shade_toggled_width 10
+#define shade_toggled_height 10
+static unsigned char shade_toggled_bits[] = {
+ 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x33, 0x03,
+ 0xb7, 0x03, 0xfe, 0x01, 0xfc, 0x00, 0x78, 0x00, 0x30, 0x00 };
diff --git a/config/labwc/gruvbox-material-dark-blocks/openbox-3/themerc b/config/labwc/gruvbox-material-dark-blocks/openbox-3/themerc
new file mode 100644
index 0000000..55b1933
--- /dev/null
+++ b/config/labwc/gruvbox-material-dark-blocks/openbox-3/themerc
@@ -0,0 +1,172 @@
+# Name: Gruvbox Material Openbox Theme
+# Author: Nathaniel Evan
+# Template provided by Satyajit Sahoo <satyajit.happy@gmail.com>
+# License: GPL-3.0+
+
+# @TODO: finish replacing the colors here
+
+
+# Menu
+menu.border.color: #282828
+menu.border.width: 8
+menu.overlap.x: -10
+
+menu.title.bg: Solid Flat
+menu.title.bg.color: #32302f
+menu.title.bg.shadow: 0
+menu.title.text.color: #9b9b9b
+menu.title.text.justify: Center
+
+menu.items.bg: Solid Flat
+menu.items.bg.color: #282828
+menu.items.text.color: #9b9b9b
+menu.items.disabled.text.color: #928374
+
+menu.items.active.bg: Solid Flat
+menu.items.active.bg.color: #d8a657
+menu.items.active.text.color: #282828
+
+menu.separator.color: #45403d
+menu.separator.width: 1
+menu.separator.padding.width: 2
+menu.separator.padding.height: 6
+
+# Active window
+window.active.border.color: #212121
+
+
+window.active.title.bg: flat solid
+window.active.title.bg.color: #212121
+window.active.title.separator.color: #212121
+window.active.client.color: #32302f
+window.active.text.justify: center
+
+window.active.label.bg: parentrelative
+window.active.label.text.color: #9b9b9b
+
+window.active.handle.bg: flat solid
+window.active.handle.bg.color: #d8a657
+
+window.active.grip.bg: flat solid
+window.active.grip.bg.color: #212121
+
+window.active.button.unpressed.bg: parentrelative
+window.active.button.iconify.unpressed.image.color: #d8a657
+window.active.button.max.unpressed.image.color: #a9b665
+window.active.button.close.unpressed.image.color: #ea6962
+
+window.active.button.pressed.bg: parentrelative
+window.active.button.iconify.pressed.image.color: #b47109
+window.active.button.max.pressed.image.color: #6c782e
+window.active.button.close.pressed.image.color: #c14a4a
+
+window.active.button.disabled.bg: parentrelative
+window.active.button.iconify.disabled.image.color: #32302f
+window.active.button.max.disabled.image.color: #32302f
+window.active.button.close.disabled.image.color: #32302f
+
+window.active.button.hover.bg: parentrelative
+window.active.button.iconify.hover.image.color: #d8a657
+window.active.button.max.hover.image.color: #a9b665
+window.active.button.close.hover.image.color: #ea6962
+
+window.active.button.toggled.bg: parentrelative
+window.active.button.max.toggled.unpressed.image.color: #a9b665
+window.active.button.max.toggled.pressed.image.color: #6c782e
+window.active.button.max.toggled.hover.image.color: #a9b665
+
+# Inactive window
+window.inactive.border.color: #3c3836
+
+window.inactive.title.bg: flat solid
+window.inactive.title.bg.color: #3c3836
+window.inactive.title.separator.color: #3c3836
+window.inactive.client.color: #5a524c
+window.inactive.text.justify: center
+
+window.inactive.label.bg: parentrelative
+window.inactive.label.text.color: #928374
+
+window.inactive.handle.bg: flat solid
+window.inactive.handle.bg.color: #928374
+
+window.inactive.grip.bg: flat solid
+window.inactive.grip.bg.color: #3c3836
+
+window.inactive.button.unpressed.bg: parentrelative
+window.inactive.button.iconify.unpressed.image.color: #928374
+window.inactive.button.max.unpressed.image.color: #928374
+window.inactive.button.close.unpressed.image.color: #928374
+
+window.inactive.button.pressed.bg: parentrelative
+window.inactive.button.iconify.pressed.image.color: #b47109
+window.inactive.button.max.pressed.image.color: #6c782e
+window.inactive.button.close.pressed.image.color: #c14a4a
+
+window.inactive.button.disabled.bg: parentrelative
+window.inactive.button.iconify.disabled.image.color: #5a524c
+window.inactive.button.max.disabled.image.color: #5a524c
+window.inactive.button.close.disabled.image.color: #5a524c
+
+window.inactive.button.hover.bg: parentrelative
+window.inactive.button.iconify.hover.image.color: #d8a657
+window.inactive.button.max.hover.image.color: #a9b665
+window.inactive.button.close.hover.image.color: #ea6962
+
+window.inactive.button.toggled.bg: parentrelative
+window.inactive.button.max.toggled.unpressed.image.color: #928374
+window.inactive.button.max.toggled.pressed.image.color: #6c782e
+window.inactive.button.max.toggled.hover.image.color: #a9b665
+
+# OSD
+osd.border.width: 1
+osd.border.color: #d8a657
+
+osd.bg: flat solid
+osd.bg.color: #232425
+osd.bg.shadow: 0
+osd.label.bg: flat solid
+osd.label.bg.color: #232425
+osd.label.text.color: #9b9b9b
+
+osd.hilight.bg: Solid Flat
+osd.hilight.bg.color: #d8a657
+osd.unhilight.bg: flat solid
+osd.unhilight.bg.color: #232425
+
+osd.button.unpressed.bg: flat border
+osd.button.unpressed.bg.color: #32302f
+osd.button.unpressed.text.color: #9b9b9b
+osd.button.unpressed.*.border.color: #928374
+
+osd.button.pressed.bg: flat border
+osd.button.pressed.bg.color: #d8a657
+osd.button.pressed.text.color: #282828
+osd.button.pressed.*.border.color: #928374
+
+osd.button.focused.bg: flat solid border
+osd.button.focused.bg.color: #32302f
+osd.button.focused.text.color: #9b9b9b
+osd.button.focused.*.border.color: #928374
+
+osd.button.focused.box.color: #9b9b9b
+osd.button.pressed.box.color: #282828
+
+# Fonts
+window.active.label.text.font:shadow=n
+window.inactive.label.text.font:shadow=n
+menu.items.font:shadow=n
+# Uncomment line below and change <padding> to a number to enable menu item padding
+# menu.items.font:shadow=y:shadowtint=0:shadowoffset=<padding>
+menu.title.text.font:shadow=n
+
+
+# Everything else
+border.width: 2
+padding.width: 5
+padding.height: 4
+window.handle.width: 0
+window.client.padding.height: 0
+window.client.padding.width: 0
+window.label.text.justify: center
+#menu.overlap: 0
diff --git a/config/labwc/rc.xml b/config/labwc/rc.xml
new file mode 100644
index 0000000..500658e
--- /dev/null
+++ b/config/labwc/rc.xml
@@ -0,0 +1,454 @@
+<?xml version="1.0"?>
+
+<labwc_config>
+
+ <core>
+ <adaptiveSync>yes</adaptiveSync>
+ <allowTearing>yes</allowTearing>
+ <autoEnableOutputs>yes</autoEnableOutputs>
+ <reuseOutputMode>no</reuseOutputMode>
+ <xwaylandPersistence>no</xwaylandPersistence>
+ </core>
+
+ <placement>
+ <policy>cascade</policy>
+ </placement>
+
+ <!-- <font><theme> can be defined without an attribute to set all places -->
+ <theme>
+ <name>gruvbox-material-dark-blocks</name>
+ <icon></icon>
+ <fallbackAppIcon>labwc</fallbackAppIcon>
+ <titlebar>
+ <layout>:iconify,max,close</layout>
+ <showTitle>yes</showTitle>
+ </titlebar>
+ <cornerRadius>8</cornerRadius>
+ <keepBorder>yes</keepBorder>
+ <dropShadows>no</dropShadows>
+ <dropShadowsOnTiled>no</dropShadowsOnTiled>
+ <font place="ActiveWindow">
+ <name>UbuntuMono Nerd Font Mono</name>
+ <size>10</size>
+ <slant>normal</slant>
+ <weight>normal</weight>
+ </font>
+ <font place="InactiveWindow">
+ <name>UbuntuMono Nerd Font Mono</name>
+ <size>10</size>
+ <slant>normal</slant>
+ <weight>normal</weight>
+ </font>
+ <font place="MenuHeader">
+ <name>UbuntuMono Nerd Font Mono</name>
+ <size>10</size>
+ <slant>normal</slant>
+ <weight>normal</weight>
+ </font>
+ <font place="MenuItem">
+ <name>UbuntuMono Nerd Font Mono</name>
+ <size>10</size>
+ <slant>normal</slant>
+ <weight>normal</weight>
+ </font>
+ <font place="OnScreenDisplay">
+ <name>UbuntuMono Nerd Font Mono</name>
+ <size>10</size>
+ <slant>normal</slant>
+ <weight>normal</weight>
+ </font>
+ </theme>
+
+ <windowSwitcher show="yes" preview="yes" outlines="no" allWorkspaces="no">
+ <fields>
+ <field content="icon" width="5%" />
+ <field content="desktop_entry_name" width="30%" />
+ <field content="title" width="65%" />
+ <!--
+ Just as for window-rules, you can use 'identifier' or
+ 'trimmed_identifier' to show the app_id for native wayland clients or
+ WM_CLASS for XWayland clients.
+
+ <field content="trimmed_identifier" width="65%" />
+ -->
+ </fields>
+ </windowSwitcher>
+
+ <!-- edge strength is in pixels -->
+ <resistance>
+ <screenEdgeStrength>20</screenEdgeStrength>
+ <windowEdgeStrength>20</windowEdgeStrength>
+ <!-- resistance for maximized/tiled windows -->
+ <unSnapThreshold>20</unSnapThreshold>
+ <!-- resistance for vertically/horizontally maximized windows -->
+ <unMaximizeThreshold>150</unMaximizeThreshold>
+ </resistance>
+
+ <resize>
+ <!-- Show a simple resize and move indicator -->
+ <popupShow>Never</popupShow>
+ <!-- Let client redraw its contents while resizing -->
+ <drawContents>yes</drawContents>
+ <!-- Borders are effectively 8 pixels wide regardless of visual appearance -->
+ <minimumArea>8</minimumArea>
+
+ <!--
+ Set cornerRange to a positive value to increase the size of corner
+ regions for mouse actions and diagonal window resizing. When omitted,
+ the default size of the corner region is half of the titlebar height.
+
+ <cornerRange>8</cornerRange>
+ -->
+ </resize>
+
+ <focus>
+ <followMouse>no</followMouse>
+ <followMouseRequiresMovement>yes</followMouseRequiresMovement>
+ <raiseOnFocus>yes</raiseOnFocus>
+ </focus>
+
+ <snapping>
+ <!-- Set range to 0 to disable window snapping completely -->
+ <range>10</range>
+ <overlay enabled="yes">
+ <delay inner="500" outer="500" />
+ </overlay>
+ <topMaximize>yes</topMaximize>
+ <notifyClient>always</notifyClient>
+ </snapping>
+
+ <!--
+ Workspaces can be configured like this:
+ <desktops>
+ <popupTime>1000</popupTime>
+ <names>
+ <name>Workspace 1</name>
+ <name>Workspace 2</name>
+ <name>Workspace 3</name>
+ <name>Workspace 4</name>
+ </names>
+ </desktops>
+
+ Or it can also be configured like this:
+ <desktops number="4" />
+
+ Or like this:
+ <desktops>
+ <popupTime>500</popupTime>
+ <number>5</number>
+ <prefix>ws</prefix>
+ </desktops>
+
+ Or:
+ <desktops number="4" popupTime="500" prefix="ws" />
+
+ popupTime defaults to 1000 so could be left out.
+ Set to 0 to completely disable the workspace OSD.
+
+ prefix defaults to "Workspace" when using number instead of names.
+
+ Use GoToDesktop left | right to switch workspaces.
+ Use SendToDesktop left | right to move windows.
+ See man labwc-actions for further information.
+ -->
+ <desktops number="2" />
+
+ <keyboard>
+ <!--
+ # Numlock is not set by default
+ <numlock>on|off</numlock>
+ -->
+ <layoutScope>global</layoutScope>
+ <repeatRate>25</repeatRate>
+ <repeatDelay>600</repeatDelay>
+ <keybind key="A-Tab">
+ <action name="NextWindow" />
+ </keybind>
+ <keybind key="A-S-Tab">
+ <action name="PreviousWindow" />
+ </keybind>
+ <keybind key="C-A-t">
+ <action name="Execute" command="alacritty" />
+ </keybind>
+ <keybind key="W-Space">
+ <action name="Execute">
+ <command>sh -c 'bemenu-run -b --fn "UbuntuMono Nerd Font Mono"'</command>
+ </action>
+ </keybind>
+ <keybind key="W-S-s">
+ <action name="Execute">
+ <command>sh -c 'grim -g "$(slurp)" - | wl-copy'</command>
+ </action>
+ </keybind>
+ <keybind key="W-x">
+ <action name="Execute" command="swaylock" />
+ </keybind>
+ <keybind key="W-q">
+ <action name="Close" />
+ </keybind>
+ <keybind key="W-m">
+ <action name="ToggleMaximize" />
+ </keybind>
+ <keybind key="W-h">
+ <action name="Iconify" />
+ </keybind>
+ <keybind key="W-Left">
+ <action name="SnapToEdge" direction="left" />
+ </keybind>
+ <keybind key="W-Right">
+ <action name="SnapToEdge" direction="right" />
+ </keybind>
+ <keybind key="W-Up">
+ <action name="SnapToEdge" direction="up" />
+ </keybind>
+ <keybind key="W-Down">
+ <action name="SnapToEdge" direction="down" />
+ </keybind>
+ <keybind key="A-Space">
+ <action name="ShowMenu" menu="client-menu" atCursor="no" />
+ </keybind>
+ <keybind key="XF86_AudioLowerVolume">
+ <action name="Execute" command="amixer sset Master 5%-" />
+ </keybind>
+ <keybind key="XF86_AudioRaiseVolume">
+ <action name="Execute" command="amixer sset Master 5%+" />
+ </keybind>
+ <keybind key="XF86_AudioMute">
+ <action name="Execute" command="amixer sset Master toggle" />
+ </keybind>
+ <keybind key="XF86_MonBrightnessUp">
+ <action name="Execute" command="brightnessctl set +10%" />
+ </keybind>
+ <keybind key="XF86_MonBrightnessDown">
+ <action name="Execute" command="brightnessctl set 10%-" />
+ </keybind>
+ </keyboard>
+
+ <!--
+ Multiple <mousebind> can exist within one <context>
+ Multiple <actions> can exist within one <mousebind>
+
+ Use <mouse><default /> to load all the default mousebinds (those listed
+ below). If the default mousebinds are largely what you want, a sensible
+ approach could be to start the <mouse> section with a <default />
+ element, and then (re-)define any special binds you need such as launching
+ a custom menu when right-clicking on your desktop. See rc.xml for an
+ example.
+ -->
+ <mouse>
+
+ <!-- time is in ms -->
+ <doubleClickTime>500</doubleClickTime>
+
+ <context name="Frame">
+ <mousebind button="A-Left" action="Press">
+ <action name="Focus" />
+ <action name="Raise" />
+ </mousebind>
+ <mousebind button="A-Left" action="Drag">
+ <action name="Move" />
+ </mousebind>
+ <mousebind button="A-Right" action="Press">
+ <action name="Focus" />
+ <action name="Raise" />
+ </mousebind>
+ <mousebind button="A-Right" action="Drag">
+ <action name="Resize" />
+ </mousebind>
+ </context>
+
+ <context name="Top">
+ <mousebind button="Left" action="Drag">
+ <action name="Resize" />
+ </mousebind>
+ </context>
+ <context name="Left">
+ <mousebind button="Left" action="Drag">
+ <action name="Resize" />
+ </mousebind>
+ </context>
+ <context name="Right">
+ <mousebind button="Left" action="Drag">
+ <action name="Resize" />
+ </mousebind>
+ </context>
+ <context name="Bottom">
+ <mousebind button="Left" action="Drag">
+ <action name="Resize" />
+ </mousebind>
+ </context>
+ <context name="TRCorner">
+ <mousebind button="Left" action="Drag">
+ <action name="Resize" />
+ </mousebind>
+ </context>
+ <context name="BRCorner">
+ <mousebind button="Left" action="Drag">
+ <action name="Resize" />
+ </mousebind>
+ </context>
+ <context name="TLCorner">
+ <mousebind button="Left" action="Drag">
+ <action name="Resize" />
+ </mousebind>
+ </context>
+ <context name="BLCorner">
+ <mousebind button="Left" action="Drag">
+ <action name="Resize" />
+ </mousebind>
+ </context>
+
+ <context name="TitleBar">
+ <mousebind button="Left" action="Press">
+ <action name="Focus" />
+ <action name="Raise" />
+ </mousebind>
+ <mousebind button="Right" action="Click">
+ <action name="Focus" />
+ <action name="Raise" />
+ </mousebind>
+ </context>
+
+ <context name="Title">
+ <mousebind button="Left" action="Drag">
+ <action name="Move" />
+ </mousebind>
+ <mousebind button="Left" action="DoubleClick">
+ <action name="ToggleMaximize" />
+ </mousebind>
+ <mousebind button="Right" action="Click">
+ <action name="ShowMenu" menu="client-menu" />
+ </mousebind>
+ </context>
+
+ <context name="Maximize">
+ <mousebind button="Left" action="Click">
+ <action name="ToggleMaximize" />
+ </mousebind>
+ <mousebind button="Right" action="Click">
+ <action name="ToggleMaximize" direction="horizontal" />
+ </mousebind>
+ <mousebind button="Middle" action="Click">
+ <action name="ToggleMaximize" direction="vertical" />
+ </mousebind>
+ </context>
+
+ <context name="WindowMenu">
+ <mousebind button="Left" action="Click">
+ <action name="ShowMenu" menu="client-menu" atCursor="no" />
+ </mousebind>
+ <mousebind button="Right" action="Click">
+ <action name="ShowMenu" menu="client-menu" atCursor="no" />
+ </mousebind>
+ </context>
+
+ <context name="Icon">
+ <mousebind button="Left" action="Click">
+ <action name="ShowMenu" menu="client-menu" atCursor="no" />
+ </mousebind>
+ <mousebind button="Right" action="Click">
+ <action name="ShowMenu" menu="client-menu" atCursor="no" />
+ </mousebind>
+ </context>
+
+ <context name="Shade">
+ <mousebind button="Left" action="Click">
+ <action name="ToggleShade" />
+ </mousebind>
+ </context>
+
+ <context name="AllDesktops">
+ <mousebind button="Left" action="Click">
+ <action name="ToggleOmnipresent" />
+ </mousebind>
+ </context>
+
+ <context name="Iconify">
+ <mousebind button="Left" action="Click">
+ <action name="Iconify" />
+ </mousebind>
+ </context>
+
+ <context name="Close">
+ <mousebind button="Left" action="Click">
+ <action name="Close" />
+ </mousebind>
+ </context>
+
+ <context name="Client">
+ <mousebind button="Left" action="Press">
+ <action name="Focus" />
+ <action name="Raise" />
+ </mousebind>
+ <mousebind button="Middle" action="Press">
+ <action name="Focus" />
+ <action name="Raise" />
+ </mousebind>
+ <mousebind button="Right" action="Press">
+ <action name="Focus" />
+ <action name="Raise" />
+ </mousebind>
+ </context>
+
+ <context name="Root">
+ <mousebind button="Left" action="Press">
+ <action name="ShowMenu" menu="root-menu" />
+ </mousebind>
+ <mousebind button="Right" action="Press">
+ <action name="ShowMenu" menu="root-menu" />
+ </mousebind>
+ <mousebind button="Middle" action="Press">
+ <action name="ShowMenu" menu="root-menu" />
+ <!-- openbox default, swap with above line to activate -->
+ <!-- <action name="ShowMenu" menu="client-list-combined-menu" /> -->
+ </mousebind>
+ <mousebind direction="Up" action="Scroll">
+ <action name="GoToDesktop" to="left" wrap="yes" />
+ </mousebind>
+ <mousebind direction="Down" action="Scroll">
+ <action name="GoToDesktop" to="right" wrap="yes" />
+ </mousebind>
+ </context>
+
+ </mouse>
+
+ <!--
+ The *category* attribute is optional and can be set to touch, touchpad,
+ non-touch, default or the name of a device. You can obtain device names by
+ running *libinput list-devices* as root or member of the input group.
+
+ Tap is set to *yes* by default. All others are left blank in order to use
+ device defaults.
+
+ All values are [yes|no] except for:
+ - pointerSpeed [-1.0 to 1.0]
+ - accelProfile [flat|adaptive]
+ - tapButtonMap [lrm|lmr]
+ - clickMethod [none|buttonAreas|clickfinger]
+ - sendEventsMode [yes|no|disabledOnExternalMouse]
+ - calibrationMatrix [six float values split by space]
+ - scrollFactor [float]
+ -->
+ <libinput>
+ <device category="default">
+ <naturalScroll>no</naturalScroll>
+ <leftHanded>no</leftHanded>
+ <pointerSpeed></pointerSpeed>
+ <accelProfile>adaptive</accelProfile>
+ </device>
+ <device category="touchpad">
+ <naturalScroll>yes</naturalScroll>
+ <middleEmulation>yes</middleEmulation>
+ <tap>yes</tap>
+ <tapAndDrag>yes</tapAndDrag>
+ <disableWhileTyping>yes</disableWhileTyping>
+ <clickMethod>clickfinger</clickMethod>
+ </device>
+ </libinput>
+
+ <menu>
+ <ignoreButtonReleasePeriod>250</ignoreButtonReleasePeriod>
+ <showIcons>yes</showIcons>
+ </menu>
+
+</labwc_config>
diff --git a/config/waybar/config b/config/waybar/config
new file mode 100644
index 0000000..52d1df2
--- /dev/null
+++ b/config/waybar/config
@@ -0,0 +1,58 @@
+{
+ "layer": "top",
+ "position": "bottom",
+ "height": 40,
+ "margin-top": 0,
+ "margin-right": 0,
+ "margin-bottom": 0,
+ "margin-left": 0,
+ "modules-left": ["wlr/taskbar"],
+ "modules-center": [],
+ "modules-right": ["backlight", "pulseaudio", "battery", "clock"],
+
+ "clock": {
+ "format": " {:%a, %b %d %Y | 󰥔 %I:%M %p}"
+ },
+
+ "wlr/taskbar": {
+ "format": "{title:.24}",
+ "tooltip-format": "{title}",
+ "on-click": "minimize-raise",
+ "on-click-right": "close"
+ },
+
+ "tray": {
+ "icon-size": 24
+ },
+
+ "pulseaudio": {
+ "format": "{icon} {volume}%",
+ "format-bluetooth": "{icon} {volume}%",
+ "format-muted": "",
+ "format-icons": {
+ "headphone": "",
+ "hands-free": "",
+ "headset": "",
+ "phone": "",
+ "phone-muted": "",
+ "portable": "",
+ "car": "",
+ "default": ["", ""]
+ },
+ "scroll-step": 1,
+ "on-click": "pavucontrol"
+ },
+
+ "backlight": {
+ "format": "{icon} {percent}%",
+ "format-icons": ["", ""]
+ },
+
+ "battery": {
+ "bat": "BAT1",
+ "interval": 60,
+ "format": "{icon} {capacity}%",
+ "format-icons": ["", "", "", "", ""],
+ "max-length": 25
+ }
+}
diff --git a/config/waybar/default.nix b/config/waybar/default.nix
new file mode 100644
index 0000000..5aaf2e1
--- /dev/null
+++ b/config/waybar/default.nix
@@ -0,0 +1,8 @@
+{ pkgs, config, ... }:
+
+{
+ home.packages = with pkgs; [ waybar ];
+
+ home.file.".config/waybar/config".source = ./config;
+ home.file.".config/waybar/style.css".source = ./style.css;
+}
diff --git a/config/waybar/style.css b/config/waybar/style.css
new file mode 100644
index 0000000..f016ace
--- /dev/null
+++ b/config/waybar/style.css
@@ -0,0 +1,51 @@
+/* -----------------------------------------------------------------------------
+ * Styles
+ * -------------------------------------------------------------------------- */
+
+/* COLORS */
+
+/* Nord */
+@define-color bg #191919;
+@define-color light #212121;
+
+/* Reset all styles */
+* {
+ border: none;
+ border-radius: 0px;
+ min-height: 0;
+ font-family: "UbuntuMono Nerd Font Mono";
+ font-size: 14px;
+ font-weight: bold;
+ padding: 0;
+}
+
+/* The whole bar */
+window#waybar {
+ background: @bg;
+ color: @light;
+ border: 2px solid #191919;
+}
+
+/* Each module */
+#clock,
+#taskbar button,
+#workspaces,
+#tray,
+#battery,
+#pulseaudio,
+#backlight {
+ margin: 6px 6px 6px 0px;
+ padding: 2px 8px;
+ background: #212121;
+ color: #9b9b9b
+}
+
+#taskbar {
+ padding: 0 6px;
+}
+
+#window {
+ margin-right: 40px;
+ margin-left: 40px;
+ font-weight: normal;
+}
diff --git a/machines/x/configuration.nix b/machines/x/configuration.nix
index 5137fef..03d806f 100644
--- a/machines/x/configuration.nix
+++ b/machines/x/configuration.nix
@@ -28,11 +28,11 @@ in {
"remapcapslock.nix"
"login.nix"
- "plasma.nix"
+ # "plasma.nix"
# "mate.nix"
# "xfce.nix"
- # "wm_utils.nix"
- # "polkit.nix"
+ "wm_utils.nix"
+ "polkit.nix"
]);
boot.loader = {
diff --git a/machines/x/home.nix b/machines/x/home.nix
index 8defe3b..9332249 100644
--- a/machines/x/home.nix
+++ b/machines/x/home.nix
@@ -56,13 +56,15 @@
"nvim"
# "qtile"
- "plasma"
+ # "plasma"
+ "labwc"
# "sway"
# "dwl.nix"
- # "themes.nix"
- # "way-displays"
- # "swaylock"
- # "dunst"
+ "themes.nix"
+ "waybar"
+ "way-displays"
+ "swaylock"
+ "dunst"
"alacritty"
# "spotify-player"
diff --git a/modules/login.nix b/modules/login.nix
index dbf084a..49daba0 100644
--- a/modules/login.nix
+++ b/modules/login.nix
@@ -11,7 +11,7 @@
settings = {
default_session = {
# command = "tuigreet --time --remember --cmd \"sway\"";
- command = "tuigreet --time --remember --cmd \"startplasma-wayland\"";
+ command = "tuigreet --time --remember --cmd \"labwc\"";
# command = "tuigreet --time --remember --cmd \"dwl -s dwlb\"";
user = "greeter";
};
diff --git a/modules/wm_utils.nix b/modules/wm_utils.nix
index 0b219e0..6242aa3 100644
--- a/modules/wm_utils.nix
+++ b/modules/wm_utils.nix
@@ -19,6 +19,7 @@
slurp
sway-launcher-desktop
+ bemenu
];
xdg.portal.enable = true;