diff options
Diffstat (limited to 'config')
24 files changed, 842 insertions, 2 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; +} |
