diff options
Diffstat (limited to '')
20 files changed, 720 insertions, 0 deletions
| 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> | 
