mirror of
				https://github.com/labwc/labwc.git
				synced 2025-10-29 05:40:24 -04:00 
			
		
		
		
	 ce0d2c2966
			
		
	
	
		ce0d2c2966
		
			
		
	
	
	
	
		
			
			Add optional drop-shadows to windows using server-side decoration. Shadows can be enabled/disabled rc.xml and their appearance configured in themerc. The default is no shadows to preserve current behaviour. The shadows are drawn in fixed corner and edge buffers shared between all windows, the edges are scaled to size depending on the size of each window. Two sets of buffers are used to give the different appearances for active and inactive windows. I use separate corner/edge buffers for a few reasons: - It avoids needing to store a separate large shadow buffer per window - It avoids needing to redraw the shadows when the window is being resized - Compositing the shadows onto the desktop should be faster as there are overall fewer pixels to blend, and scaling up the edge buffers only requires reading a tiny buffer which is then replicated.
		
			
				
	
	
		
			589 lines
		
	
	
	
		
			19 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			589 lines
		
	
	
	
		
			19 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>no</adaptiveSync>
 | |
|     <allowTearing>no</allowTearing>
 | |
|     <reuseOutputMode>no</reuseOutputMode>
 | |
|   </core>
 | |
| 
 | |
|   <placement>
 | |
|     <policy>center</policy>
 | |
|   </placement>
 | |
| 
 | |
|   <!-- <font><theme> can be defined without an attribute to set all places -->
 | |
|   <theme>
 | |
|     <name></name>
 | |
|     <cornerRadius>8</cornerRadius>
 | |
|     <keepBorder>yes</keepBorder>
 | |
|     <dropShadows>no</dropShadows>
 | |
|     <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" allWorkspaces="no">
 | |
|     <fields>
 | |
|       <field content="type" width="25%" />
 | |
|       <field content="trimmed_identifier" width="25%" />
 | |
|       <!-- <field content="identifier" width="25%" /> -->
 | |
|       <field content="title" width="50%" />
 | |
|     </fields>
 | |
|   </windowSwitcher>
 | |
| 
 | |
|   <!--
 | |
|     When using all workspaces option of window switcher, there are extra fields
 | |
|     that can be used, workspace (variable length), state (single space),
 | |
|     type_short (3 spaces), output (variable length), and can be set up
 | |
|     like this. Note: output only shows if more than one output available.
 | |
| 
 | |
|     <windowSwitcher show="yes" preview="no" outlines="no" allWorkspaces="yes">
 | |
|       <fields>
 | |
|         <field content="workspace" width="5%" />
 | |
|         <field content="state" width="3%" />
 | |
|         <field content="type_short" width="3%" />
 | |
|         <field content="output" width="9%" />
 | |
|         <field content="identifier" width="30%" />
 | |
|         <field content="title" width="50%" />
 | |
|       </fields>
 | |
|     </windowSwitcher>
 | |
| 
 | |
|     custom format - (introduced in 0.7.2)
 | |
|     It allows one to replace all the above "fields" with one line, using a
 | |
|     printf style format. For field explanations, "man 5 labwc-config".
 | |
| 
 | |
|     The example below would print "foobar",then type of window (wayland, X),
 | |
|     then state of window (M/m/F), then output (shows if more than 1 active),
 | |
|     then workspace name, then identifier/app-id, then the window title.
 | |
|     Uses 100% of OSD window width.
 | |
| 
 | |
|     <windowSwitcher show="yes" preview="no" outlines="no" allWorkspaces="yes">
 | |
|       <fields>
 | |
|         <field content="custom" format="foobar %b %3s %-10o %-20W %-10i %t" width="100%" />
 | |
|       </fields>
 | |
|     </windowSwitcher>
 | |
|   -->
 | |
| 
 | |
|   <!-- edge strength is in pixels -->
 | |
|   <resistance>
 | |
|     <screenEdgeStrength>20</screenEdgeStrength>
 | |
|     <windowEdgeStrength>20</windowEdgeStrength>
 | |
|   </resistance>
 | |
| 
 | |
|   <!-- Show a simple resize and move indicator -->
 | |
|   <resize popupShow="Never" />
 | |
| 
 | |
|   <focus>
 | |
|     <followMouse>no</followMouse>
 | |
|     <followMouseRequiresMovement>yes</followMouseRequiresMovement>
 | |
|     <raiseOnFocus>no</raiseOnFocus>
 | |
|   </focus>
 | |
| 
 | |
|   <snapping>
 | |
|     <!-- Set range to 0 to disable window snapping completely -->
 | |
|     <range>1</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>
 | |
|     <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>
 | |
| 
 | |
|     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>
 | |
| 
 | |
|   <!--
 | |
|     A touch configuration can be bound to a specific device. If device
 | |
|     name is left empty, the touch configuration applies to all touch
 | |
|     devices or functions as a fallback. Multiple touch configurations
 | |
|     can exist.
 | |
|     See the libinput device section for obtaining the device names.
 | |
| 
 | |
|     Direct cursor movement to a specified output. If the compositor is
 | |
|     running in nested mode, this does not take effect.
 | |
|   -->
 | |
|   <touch deviceName="" 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* 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]
 | |
|   -->
 | |
|   <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>
 | |
|       <clickMethod></clickMethod>
 | |
|       <sendEventsMode></sendEventsMode>
 | |
|       <calibrationMatrix></calibrationMatrix>
 | |
|     </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>
 |