diff options
Diffstat (limited to 'config/labwc/rc.xml')
| -rw-r--r-- | config/labwc/rc.xml | 454 | 
1 files changed, 454 insertions, 0 deletions
| 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> | 
