diff options
| author | Raghuram Subramani <raghus2247@gmail.com> | 2025-06-08 11:47:36 +0530 | 
|---|---|---|
| committer | Raghuram Subramani <raghus2247@gmail.com> | 2025-06-08 11:47:36 +0530 | 
| commit | f0fb3c4d1559bc13aeb764e25aa0746f465560b0 (patch) | |
| tree | 63fc3145c091496193b0c0f2af81d655e1956d0a | |
| parent | ea128011e4c6a6e337ce36ab290da2ae028dcbd2 (diff) | |
add labwc
Diffstat (limited to '')
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; | 
