537 lines
17 KiB
XML
537 lines
17 KiB
XML
|
|
<?xml version="1.0"?>
|
|
|
|
<!--
|
|
This file contains all supported config elements & attributes with
|
|
default values.
|
|
-->
|
|
|
|
<labwc_config>
|
|
|
|
<core>
|
|
<decoration>server</decoration>
|
|
<gap>0</gap>
|
|
<adaptiveSync>fullscreen</adaptiveSync>
|
|
<allowTearing>yes</allowTearing>
|
|
<reuseOutputMode>no</reuseOutputMode>
|
|
</core>
|
|
|
|
<!-- Where to place new windows -->
|
|
<placement>
|
|
<policy>center</policy>
|
|
</placement>
|
|
|
|
<!-- <font><theme> can be defined without an attribute to set all places -->
|
|
<theme>
|
|
<name>Kawaii</name>
|
|
<cornerRadius>16</cornerRadius>
|
|
<keepBorder>yes</keepBorder>
|
|
<font>
|
|
<name>GohuFont Nerd Font</name>
|
|
<size>10</size>
|
|
<slant>normal</slant>
|
|
<weight>normal</weight>
|
|
</font>
|
|
|
|
<!--<font place="ActiveWindow">
|
|
<name>sans</name>
|
|
<size>10</size>
|
|
<slant>normal</slant>
|
|
<weight>normal</weight>
|
|
</font>
|
|
<font place="InactiveWindow">
|
|
<name>sans</name>
|
|
<size>10</size>
|
|
<slant>normal</slant>
|
|
<weight>normal</weight>
|
|
</font>
|
|
<font place="MenuItem">
|
|
<name>sans</name>
|
|
<size>10</size>
|
|
<slant>normal</slant>
|
|
<weight>normal</weight>
|
|
</font>
|
|
<font place="OnScreenDisplay">
|
|
<name>sans</name>
|
|
<size>10</size>
|
|
<slant>normal</slant>
|
|
<weight>normal</weight>
|
|
</font> -->
|
|
</theme>
|
|
|
|
<!--
|
|
Just as for window-rules, 'identifier' relates to app_id for native Wayland
|
|
windows and WM_CLASS for XWayland clients.
|
|
-->
|
|
<windowSwitcher show="yes" preview="yes" outlines="yes">
|
|
<fields>
|
|
<field content="type" width="25%" />
|
|
<field content="trimmed_identifier" width="25%" />
|
|
<!-- <field content="identifier" width="25%" /> -->
|
|
<field content="title" width="50%" />
|
|
</fields>
|
|
</windowSwitcher>
|
|
|
|
<!-- edge strength is in pixels -->
|
|
<resistance>
|
|
<screenEdgeStrength>20</screenEdgeStrength>
|
|
</resistance>
|
|
|
|
<!-- Show a simple resize and move indicator -->
|
|
<resize popupShow="Never" />
|
|
|
|
<focus>
|
|
<followMouse>no</followMouse>
|
|
<followMouseRequiresMovement>yes</followMouseRequiresMovement>
|
|
<raiseOnFocus>no</raiseOnFocus>
|
|
</focus>
|
|
|
|
<!-- Set range to 0 to disable window snapping completely -->
|
|
<snapping>
|
|
<range>1</range>
|
|
<topMaximize>yes</topMaximize>
|
|
</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" />
|
|
|
|
popupTime defaults to 1000 so could be left out.
|
|
Set to 0 to completely disable the workspace OSD.
|
|
|
|
Use GoToDesktop left | right to switch workspaces.
|
|
Use SendToDesktop left | right to move windows.
|
|
See man labwc-actions for further information.
|
|
-->
|
|
<desktops>
|
|
<popupTime>1000</popupTime>
|
|
<names>
|
|
<name>Default</name>
|
|
</names>
|
|
</desktops>
|
|
|
|
<!--
|
|
<margin> can be used to reserve space where new/maximized/tiled
|
|
windows will not be placed. Clients using layer-shell protocol reserve
|
|
space automatically, so <margin> is only intended for other, specialist
|
|
cases.
|
|
|
|
If output is left empty, the margin will be applied to all outputs.
|
|
|
|
<margin top="" bottom="" left="" right="" output="" />
|
|
-->
|
|
|
|
<!-- Percent based regions based on output usable area, % char is required -->
|
|
<!--
|
|
<regions>
|
|
<region name="top-left" x="0%" y="0%" height="50%" width="50%" />
|
|
<region name="top" x="0%" y="0%" height="50%" width="100%" />
|
|
<region name="top-right" x="50%" y="0%" height="50%" width="50%" />
|
|
<region name="left" x="0%" y="0%" height="100%" width="50%" />
|
|
<region name="center" x="10%" y="10%" height="80%" width="80%" />
|
|
<region name="right" x="50%" y="0%" height="100%" width="50%" />
|
|
<region name="bottom-left" x="0%" y="50%" height="50%" width="50%" />
|
|
<region name="bottom" x="0%" y="50%" height="50%" width="100%" />
|
|
<region name="bottom-right" x="50%" y="50%" height="50%" width="50%" />
|
|
</regions>
|
|
-->
|
|
|
|
<!--
|
|
Keybind actions are specified in labwc-actions(5)
|
|
The following keybind modifiers are supported:
|
|
W - window/super/logo
|
|
A - alt
|
|
C - ctrl
|
|
S - shift
|
|
|
|
Use <keyboard><default /> to load all the default keybinds (those listed
|
|
below). If the default keybinds are largely what you want, a sensible
|
|
approach could be to start the <keyboard> section with a <default />
|
|
element, and then (re-)define any special binds you need such as launching
|
|
your favourite terminal or application launcher. See rc.xml for an example.
|
|
-->
|
|
<keyboard>
|
|
<numlock>on</numlock>
|
|
<layoutScope>global</layoutScope>
|
|
<repeatRate>25</repeatRate>
|
|
<repeatDelay>600</repeatDelay>
|
|
<keybind key="A-Tab">
|
|
<action name="NextWindow" />
|
|
</keybind>
|
|
<keybind key="W-Return">
|
|
<action name="Execute" command="alacritty" />
|
|
</keybind>
|
|
<keybind key="A-F3">
|
|
<action name="Execute" command="bemenu-run" />
|
|
</keybind>
|
|
<keybind key="A-F4">
|
|
<action name="Close" />
|
|
</keybind>
|
|
<keybind key="W-a">
|
|
<action name="ToggleMaximize" />
|
|
</keybind>
|
|
<keybind key="A-Left">
|
|
<action name="MoveToEdge" direction="left" />
|
|
</keybind>
|
|
<keybind key="A-Right">
|
|
<action name="MoveToEdge" direction="right" />
|
|
</keybind>
|
|
<keybind key="A-Up">
|
|
<action name="MoveToEdge" direction="up" />
|
|
</keybind>
|
|
<keybind key="A-Down">
|
|
<action name="MoveToEdge" direction="down" />
|
|
</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" />
|
|
</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>
|
|
<!-- SnapToRegion via W-Numpad -->
|
|
<!--
|
|
<keybind key="W-KP_7">
|
|
<action name="SnapToRegion" region="top-left" />
|
|
</keybind>
|
|
<keybind key="W-KP_8">
|
|
<action name="SnapToRegion" region="top" />
|
|
</keybind>
|
|
<keybind key="W-KP_9">
|
|
<action name="SnapToRegion" region="top-right" />
|
|
</keybind>
|
|
<keybind key="W-KP_4">
|
|
<action name="SnapToRegion" region="left" />
|
|
</keybind>
|
|
<keybind key="W-KP_5">
|
|
<action name="SnapToRegion" region="center" />
|
|
</keybind>
|
|
<keybind key="W-KP_6">
|
|
<action name="SnapToRegion" region="right" />
|
|
</keybind>
|
|
<keybind key="W-KP_1">
|
|
<action name="SnapToRegion" region="bottom-left" />
|
|
</keybind>
|
|
<keybind key="W-KP_2">
|
|
<action name="SnapToRegion" region="bottom" />
|
|
</keybind>
|
|
<keybind key="W-KP_3">
|
|
<action name="SnapToRegion" region="bottom-right" />
|
|
</keybind>
|
|
-->
|
|
</keyboard>
|
|
|
|
<!--
|
|
Multiple <mousebind> can exist within one <context>
|
|
Multiple <actions> can exist within one <mousebind>
|
|
Currently, the only openbox-action not supported is "Unshade"
|
|
|
|
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>
|
|
<scrollFactor>1.0</scrollFactor>
|
|
|
|
<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>
|
|
<mousebind direction="Up" action="Scroll">
|
|
<action name="Unshade" />
|
|
<action name="Focus" />
|
|
</mousebind>
|
|
<mousebind direction="Down" action="Scroll">
|
|
<action name="Unfocus" />
|
|
<action name="Shade" />
|
|
</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" />
|
|
</mousebind>
|
|
<mousebind button="Right" action="Click">
|
|
<action name="ShowMenu" menu="client-menu" />
|
|
</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" />
|
|
</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>
|
|
|
|
<!--
|
|
Direct cursor movement to a specified output. If the compositor is
|
|
running in nested mode, this does not take effect.
|
|
-->
|
|
<touch mapToOutput="" />
|
|
|
|
<!--
|
|
The tablet cursor movement can be restricted to a single output.
|
|
If output is left empty or the output does not exists, the tablet
|
|
will span all outputs.
|
|
|
|
The tablet orientation can be changed in 90 degree steps, thus
|
|
*rotate* can be set to [0|90|180|270]. Rotation will be applied
|
|
after applying tablet area transformation.
|
|
|
|
The active tablet area can be specified by setting the *top*/*left*
|
|
coordinate (in mm) and/or *width*/*height* (in mm). If width or
|
|
height are omitted or default (0.0), width/height will be set to
|
|
the remaining width/height seen from top/left.
|
|
|
|
Tablet buttons emulate regular mouse buttons. The tablet *button* can
|
|
be set to any of [Tip|Stylus|Stylus2|Stylus3|Pad|Pad2|Pad3|..|Pad9].
|
|
Valid *to* mouse buttons are [Left|Right|Middle].
|
|
-->
|
|
<tablet mapToOutput="" rotate="0">
|
|
<!-- Active area dimensions are in mm -->
|
|
<area top="0.0" left="0.0" width="0.0" height="0.0" />
|
|
<map button="Tip" to="Left" />
|
|
<map button="Stylus" to="Right" />
|
|
<map button="Stylus2" to="Middle" />
|
|
</tablet>
|
|
|
|
<!--
|
|
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* be 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]
|
|
-->
|
|
<libinput>
|
|
<device category="default">
|
|
<naturalScroll></naturalScroll>
|
|
<leftHanded></leftHanded>
|
|
<pointerSpeed></pointerSpeed>
|
|
<accelProfile></accelProfile>
|
|
<tap>yes</tap>
|
|
<tapButtonMap></tapButtonMap>
|
|
<tapAndDrag></tapAndDrag>
|
|
<dragLock></dragLock>
|
|
<middleEmulation></middleEmulation>
|
|
<disableWhileTyping></disableWhileTyping>
|
|
</device>
|
|
</libinput>
|
|
|
|
<!--
|
|
# Window Rules
|
|
# - Criteria can consist of 'identifier' or 'title' or both (in which
|
|
# case AND logic is used).
|
|
# - 'identifier' relates to app_id for native Wayland windows and
|
|
# WM_CLASS for XWayland clients.
|
|
# - Criteria can also contain `matchOnce="true"` meaning that the rule
|
|
# must only apply to the first instance of the window with that
|
|
# particular 'identifier' or 'title'.
|
|
# - Matching against patterns with '*' (wildcard) and '?' (joker) is
|
|
# supported. Pattern matching is case-insensitive.
|
|
|
|
<windowRules>
|
|
<windowRule identifier="*"><action name="Maximize"/></windowRule>
|
|
<windowRule identifier="foo" serverDecoration="yes"/>
|
|
<windowRule title="bar" serverDecoration="yes"/>
|
|
<windowRule identifier="baz" title="quax" serverDecoration="yes"/>
|
|
</windowRules>
|
|
|
|
# Example below for `lxqt-panel` and `pcmanfm-qt \-\-desktop`
|
|
# where 'matchOnce' is used to avoid applying rule to the panel
|
|
# configuration window with the same 'app_id'.
|
|
|
|
<windowRules>
|
|
<windowRule identifier="lxqt-panel" matchOnce="true">
|
|
<skipTaskbar>yes</skipTaskbar>
|
|
<action name="MoveTo" x="0" y="0" />
|
|
<action name="ToggleAlwaysOnTop"/>
|
|
</windowRule>
|
|
<windowRule title="pcmanfm-desktop*">
|
|
<skipTaskbar>yes</skipTaskbar>
|
|
<skipWindowSwitcher>yes</skipWindowSwitcher>
|
|
<fixedPosition>yes</fixedPosition>
|
|
<action name="MoveTo" x="0" y="0" />
|
|
<action name="ToggleAlwaysOnBottom"/>
|
|
</windowRule>
|
|
<windowRule identifier="org.qutebrowser.qutebrowser">
|
|
<action name="ResizeTo" width="1024" y="800" />
|
|
<action name="AutoPlace"/>
|
|
</windowRule>
|
|
</windowRules>
|
|
-->
|
|
|
|
</labwc_config>
|