Merge branch 'master' into master

This commit is contained in:
Jack Zeal 2026-05-27 03:36:48 +00:00 committed by GitHub
commit 6885d5b887
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
70 changed files with 1979 additions and 321 deletions

View file

@ -1,10 +1,18 @@
# Example autostart file
# When running under systemd, uncomment the systemctl line below to pull in
# graphical-session.target via labwc-session.target. This lets systemd user
# services declaring WantedBy=graphical-session.target (panels, portals,
# notification daemons, etc.) start in sync with the labwc session. Enable
# individual services with: systemctl --user enable <unit>
#
# systemctl --user --no-block start labwc-session.target
# Set background color.
swaybg -c '#113344' >/dev/null 2>&1 &
# Configure output directives such as mode, position, scale and transform.
# Use wlr-randr to get your output names
# Use wlr-randr to get your output names.
# Example ~/.config/kanshi/config below:
# profile {
# output HDMI-A-1 position 1366,0

View file

@ -95,6 +95,12 @@ _labnag_ [options...]
*--details-border-size* <size>
Set the thickness for the details border.
*--details-border-color* <RRGGBB[AA]>
Set the color of the details border.
*--details-margin* <margin>
Set the margin for the details.
*--button-border-size* <size>
Set the thickness for the button border.

View file

@ -16,7 +16,7 @@ Actions are used in menus and keyboard/mouse bindings.
SIGTERM signal.
*<action name="Execute" command="value" />*
Execute command. Note that in the interest of backward compatibility,
Execute command. Note that in the interest of backward compatibility,
labwc supports <execute> as an alternative to <command> even though
openbox documentation states that it is deprecated.
Note: Tilde (~) is expanded in the command before passing to execvp().
@ -126,30 +126,34 @@ Actions are used in menus and keyboard/mouse bindings.
position if it had been maximized or tiled to a direction or region.
*<action name="NextWindow" workspace="current" output="all" identifier="all" />*++
*<action name="PreviousWindow" workspace="current" output="all" identifier="all" />*
*<action name="PreviousWindow" workspace="current" output="all" identifier="all" />*++
*<action name="NextWindowImmediate" workspace="current" output="all" identifier="all" />*++
*<action name="PreviousWindowImmediate" workspace="current" output="all" identifier="all" />*++
Cycle focus to next/previous window, respectively.
Default keybinds for NextWindow and PreviousWindow are Alt-Tab and
Shift-Alt-Tab. While cycling through windows, the arrow keys move the
selected window forwards/backwards and the escape key halts the cycling.
NextWindowImmediate and PreviousWindowImmediate skip the Window Switcher
and OSD, useful for binding to keys without modifiers.
*workspace* [all|current]
This determines whether to cycle through windows on all workspaces or the
current workspace. Default is "current".
This determines whether to cycle through windows on all workspaces or
the current workspace. Default is "current".
*output* [all|focused|cursor]
This determines whether to cycle through windows on all outputs, the focused
output, or the output under the cursor. Default is "all".
This determines whether to cycle through windows on all outputs, the
focused output, or the output under the cursor. Default is "all".
*identifier* [all|current]
This determines whether to cycle through all windows or only windows of the
same application as the currently focused window. Default is "all".
This determines whether to cycle through all windows or only windows of
the same application as the currently focused window. Default is "all".
*<action name="Reconfigure" />*
Re-load configuration and theme files.
*<action name="ShowMenu" menu="root-menu"/>*
*<action name="ShowMenu" menu="root-menu" />*
Show a menu.
```
@ -295,7 +299,7 @@ Actions are used in menus and keyboard/mouse bindings.
(if one exists).
*wrap* [yes|no] When using the direction attribute, wrap around from
right-to-left or top-to-bottom, and vice versa. Default no.
right-to-left or top-to-bottom, and vice versa. Default is no.
*<action name="FitToOutput" />*
Resizes active window size to width and height of the output when the
@ -309,10 +313,10 @@ Actions are used in menus and keyboard/mouse bindings.
workspace or its index (starting at 1) as configured in rc.xml.
*wrap* [yes|no] Wrap around from last desktop to first, and vice
versa. Default yes.
versa. Default is yes.
*toggle* [yes|no] Toggle to “last” if already on the workspace that
would be the actual destination. Default no.
would be the actual destination. Default is no.
*<action name="SendToDesktop" to="value" follow="yes" wrap="yes" />*
Send active window to workspace.
@ -320,10 +324,11 @@ Actions are used in menus and keyboard/mouse bindings.
*to* The workspace to send the window to. Supported values are the same
as for GoToDesktop.
*follow* [yes|no] Also switch to the specified workspace. Default yes.
*follow* [yes|no] Also switch to the specified workspace.
Default is yes.
*wrap* [yes|no] Wrap around from last desktop to first, and vice
versa. Default yes.
versa. Default is yes.
*<action name="VirtualOutputAdd" output_name="value" />*
Add virtual output (headless backend).
@ -341,11 +346,11 @@ Actions are used in menus and keyboard/mouse bindings.
```
<keybind key="W-v">
<action name="VirtualOutputAdd" output_name="ScreenCasting"/>
<action name="Execute" command='sh -c "wlr-randr --output ScreenCasting --pos 0,0 --scale 2 --custom-mode 3840x2110; wlr-randr --output eDP-1 --pos 0,0 --scale 2 --mode 3840x2160"'/>
<action name="VirtualOutputAdd" output_name="ScreenCasting" />
<action name="Execute" command='sh -c "wlr-randr --output ScreenCasting --pos 0,0 --scale 2 --custom-mode 3840x2110; wlr-randr --output eDP-1 --pos 0,0 --scale 2 --mode 3840x2160"' />
</keybind>
<keybind key="W-c">
<action name="VirtualOutputRemove"/>
<action name="VirtualOutputRemove" />
</keybind>
```
@ -366,7 +371,7 @@ Actions are used in menus and keyboard/mouse bindings.
*output_name* The name of virtual output. If not supplied, will remove
the last virtual output added.
*<action name="AutoPlace" policy="value"/>*
*<action name="AutoPlace" policy="value" />*
Reposition the window according to the desired placement policy.
*policy* [automatic|cursor|center|cascade] Use the specified policy,
@ -424,6 +429,13 @@ Actions are used in menus and keyboard/mouse bindings.
Toggle the screen magnifier on or off at the last magnification level
used.
*<action name="ToggleShowDesktop" />*
Minimize all windows in the current workspace so that the desktop
becomes visible. On calling the action again the hidden windows are
unminimized, provided that - since the initial `ShowDesktop` - (a) no
windows have been unminimized; (b) workspaces have not been switched;
and (c) no new applications have been started.
*<action name="ZoomIn">*++
*<action name="ZoomOut">*
Increase or decrease the magnification level for the screen magnifier.
@ -436,6 +448,10 @@ Actions are used in menus and keyboard/mouse bindings.
If used as the only action for a binding: clear an earlier defined
binding.
*<action name="DebugToggleKeyStateIndicator" />*
Toggle visibility of key-state on-screen display (OSD). Note: This is
for debugging purposes only.
# CONDITIONAL ACTIONS
Actions that execute other actions. Used in keyboard/mouse bindings.
@ -448,10 +464,10 @@ Actions that execute other actions. Used in keyboard/mouse bindings.
```
<action name="If">
<query/>
<prompt message=""/>
<then><action/></then>
<else><action/></else>
<query />
<prompt message="" />
<then><action /></then>
<else><action /></else>
</action>
```
@ -503,7 +519,7 @@ Actions that execute other actions. Used in keyboard/mouse bindings.
"right-occupied" directions will not wrap.
*tiled* [up|right|down|left|up-left|up-right|down-left|down-right|center|any]
Whether the client is tiled (snapped) along the the
Whether the client is tiled (snapped) along the
indicated screen edge.
*tiled_region*
@ -533,9 +549,9 @@ Actions that execute other actions. Used in keyboard/mouse bindings.
```
<keybind key="W-q">
<action name="If">
<prompt message="Quit?"/>
<prompt message="Quit?" />
<then>
<action name="Exit"/>
<action name="Exit" />
</then>
</action>
</keybind>

View file

@ -25,7 +25,7 @@ The XDG Base Directory Specification does not specify whether or not programs
should (a) allow the first-identified configuration file to supersede any
others, or (b) define rules for merging the information from more than one file.
By default, labwc uses option (a), reading only the first file identified. With
By default, labwc uses option (a), reading only the first file identified. With
the --merge-config option, the search order is reversed, but every configuration
file encountered is processed in turn. Thus, user-specific files will augment
system-wide configurations, with conflicts favoring the user-specific
@ -175,6 +175,7 @@ this is for compatibility with Openbox.
<adaptiveSync>no</adaptiveSync>
<allowTearing>no</allowTearing>
<autoEnableOutputs>yes</autoEnableOutputs>
<hdr>no</hdr>
<reuseOutputMode>no</reuseOutputMode>
<xwaylandPersistence>no</xwaylandPersistence>
<primarySelection>yes</primarySelection>
@ -240,6 +241,12 @@ this is for compatibility with Openbox.
'pkill kanshi ; wlopm --off \*' resume 'kanshi & wlopm --on \*'
```
*<core><hdr>* [yes|no]
Automatically enable HDR support on outputs when configuring them,
where supported by the particular output device and display. Default
is no. Additionally requires the Vulkan backend. Can be set
via `WLR_RENDERER=vulkan` in `~/.config/labwc/environment`.
*<core><reuseOutputMode>* [yes|no]
Try to re-use the existing output mode (resolution / refresh rate).
This may prevent unnecessary screenblank delays when starting labwc
@ -493,6 +500,13 @@ this is for compatibility with Openbox.
*<focus><raiseOnFocus>* [yes|no]
Raise window to top when focused. Default is no.
*<focus><raiseOnFocusDelay>* [milliseconds]
When raiseOnFocus is enabled, delay the actual raise by this many
milliseconds. Default is 0 (raise immediately). A subsequent focus
change before the timer elapses restarts or cancels the pending raise.
Useful together with followMouse to avoid brief passes of the cursor
stacking up z-order changes.
## WINDOW SNAPPING
Windows may be "snapped" to an edge or user-defined region of an output when
@ -512,7 +526,8 @@ extending outward from the snapped edge.
*<range><inner>* and *<range><outer>*, and 50 for *<cornerRange>*.
*<snapping><overlay><enabled>* [yes|no]
Show an overlay when snapping a window to an output edge. Default is yes.
Show an overlay when snapping a window to an output edge.
Default is yes.
*<snapping><overlay><delay><inner>*++
*<snapping><overlay><delay><outer>*
@ -581,7 +596,7 @@ extending outward from the snapped edge.
A setting of 0 disables the OSD. Default is 1000 ms.
*<desktops><prefix>*
Set the prefix to use when using "number" above. Default is "Workspace"
Set the prefix to use when using "number" above. Default is "Workspace".
## THEME
@ -735,7 +750,7 @@ generate gesture events, like swipe and pinch. There are some related settings
(e.g. *threeFingerDrag* and *twoFingerScroll*) in the *<libinput>* section.
In the Wayland Compositor domain, events associated with touchscreens are
sometimes simply referred to as *touch* events. Touchscreens can be configured
sometimes simply referred to as *touch* events. Touchscreens can be configured
in both the *<touch>* and *<libinput>* sections. Note that touchscreen gestures
are not interpreted by libinput, nor labwc. Any touch point is passed to the
client (application) for any interpretation of gestures.
@ -760,7 +775,8 @@ References:
Stores the keyboard layout either globally or per window and restores
it when switching back to the window. Default is global.
*<keyboard><keybind key="" layoutDependent="" onRelease="" allowWhenLocked="">*
*<keyboard><keybind key="" layoutDependent="" onRelease="" allowWhenLocked=""
overrideInhibition="">*
Define a *key* binding in the format *modifier-key*, where supported
modifiers are:
- S (shift)
@ -808,6 +824,12 @@ References:
*allowWhenLocked* [yes|no]
Make this keybind work even if the screen is locked. Default is no.
*overrideInhibition* [yes|no]
Make this keybind work even if the view inhibits keybinds.
This can be used to prevent W-Tab and similar keybinds from being
delivered to Virtual Machines, VNC clients or nested compositors.
Default is no.
*onRelease* [yes|no]
When yes, fires the keybind action when the key or key
combination is released, rather than first pressed. This is useful to
@ -820,7 +842,7 @@ References:
```
<keybind key="Super_L" onRelease="yes">
<action name="Execute" command="rofi -show drun"/>
<action name="Execute" command="rofi -show drun" />
</keybind>
```
@ -841,11 +863,12 @@ References:
W-Return - lab-sensible-terminal
A-F4 - close window
W-a - toggle maximize
W-d - toggle show-desktop
W-<arrow> - resize window to fill half or quarter of the output
A-Space - show window menu
```
Audio and MonBrightness keys are also bound to amixer and
Audio and MonBrightness keys are also bound to pactl and
brightnessctl, respectively.
*<keyboard><repeatRate>*
@ -880,7 +903,7 @@ input-devices by the Wayland protocol.
- Shade: A button that, by default, toggles window shading.
- AllDesktops: A button that, by default, toggles omnipresence of a
window.
- Close: A button that, by default, closses a window.
- Close: A button that, by default, closes a window.
- Border: The window's border including Top...BRCorner below.
- Top: The top edge of the window's border.
- Bottom: The bottom edge of the window's border.
@ -954,10 +977,10 @@ input-devices by the Wayland protocol.
```
<mouse>
<default/>
<default />
<context name="Frame">
<mousebind button="W-Left" action="Press"/>
<mousebind button="W-Left" action="Drag"/>
<mousebind button="W-Left" action="Press" />
<mousebind button="W-Left" action="Drag" />
</context>
</mouse>
```
@ -965,7 +988,7 @@ input-devices by the Wayland protocol.
*<mouse><default />*
Load default mousebinds. This is an addition to the openbox
specification and provides a way to keep config files simpler whilst
allowing user specific binds. Note that if no rc.xml is found, or if no
allowing user specific binds. Note that if no rc.xml is found, or if no
<mouse><mousebind> entries exist, the same default mousebinds will be
loaded even if the <default /> element is not provided.
@ -977,7 +1000,7 @@ Note: To rotate touch events with output rotation, use the libinput
*calibrationMatrix* setting.
```
<touch deviceName="" mapToOutput="" mouseEmulation="no"/>
<touch deviceName="" mapToOutput="" mouseEmulation="no" />
```
*<touch deviceName="" />*
@ -1134,6 +1157,7 @@ Note: To rotate touch events with output rotation, use the libinput
<disableWhileTyping></disableWhileTyping>
<clickMethod></clickMethod>
<scrollMethod></scrollMethod>
<scrollButton></scrollButton>
<sendEventsMode></sendEventsMode>
<calibrationMatrix></calibrationMatrix>
<scrollFactor>1.0</scrollFactor>
@ -1238,19 +1262,26 @@ Note: To rotate touch events with output rotation, use the libinput
The default method depends on the touchpad hardware.
*<libinput><device><scrollMethod>* [none|twofinger|edge]
Configure the method by which physical movements on a touchpad are
mapped to scroll events.
*<libinput><device><scrollMethod>* [none|twofinger|edge|onbutton]
Configure the method by which physical movements are mapped to scroll
events.
The scroll methods available are:
- *twofinger* - Scroll by two fingers being placed on the surface of the
touchpad, then moving those fingers vertically or horizontally.
- *edge* - Scroll by moving a single finger along the right edge
(vertical scroll) or bottom edge (horizontal scroll).
- *onbutton* - Scroll by pressing a button.
- *none* - No scroll events will be produced.
The default method depends on the touchpad hardware.
*<libinput><device><scrollButton>* [button]
Set the button used for the *onbutton* scroll method.
*button* is the decimal form of a value
from `linux/input-event-codes.h`.
*<libinput><device><sendEventsMode>* [yes|no|disabledOnExternalMouse]
Optionally enable or disable sending any device events.
@ -1298,7 +1329,7 @@ defined as shown below.
<!-- Action -->
<windowRule identifier="" title="" type="">
<action name=""/>
<action name="" />
</windowRule>
<!-- Property -->
@ -1445,11 +1476,57 @@ situation.
Whether to apply a bilinear filter to the magnified image, or
just to use nearest-neighbour. Default is true - bilinear filtered.
## PRIVILEGED INTERFACES
Labwc supports a small set of privileged wayland interfaces. All of these
interfaces are enabled by default for applications unless they are running
via a sandbox environment supporting the security-context-v1 protocol.
Security conscious users are suggested to use a sandbox framework to run
potentially untrusted applications as it additionally limits access to the
filesystem (including labwc configuration) and other services like dbus.
In addition to that, privileged protocols can be restricted for non-sandboxed
clients by defining a `<privilegedInterfaces>` block:
```
<privilegedInterfaces>
<allow>zwlr_layer_shell_v1</allow>
<allow>zwlr_virtual_pointer_manager_v1</allow>
</privilegedInterfaces>
```
*<privilegedInterfaces><allow>*
Name of the interface that should be allowed.
This is the full list of interfaces that can be controlled with this mechanism:
- `wp_drm_lease_device_v1`
- `zwlr_gamma_control_manager_v1`
- `zwlr_output_manager_v1`
- `zwlr_output_power_manager_v1`
- `zwp_input_method_manager_v2`
- `zwlr_virtual_pointer_manager_v1`
- `zwp_virtual_keyboard_manager_v1`
- `zwlr_export_dmabuf_manager_v1`
- `zwlr_screencopy_manager_v1`
- `ext_data_control_manager_v1`
- `zwlr_data_control_manager_v1`
- `wp_security_context_manager_v1`
- `ext_idle_notifier_v1`
- `zwlr_foreign_toplevel_manager_v1`
- `ext_foreign_toplevel_list_v1`
- `ext_session_lock_manager_v1`
- `zwlr_layer_shell_v1`
- `ext_workspace_manager_v1`
- `ext_image_copy_capture_manager_v1`
- `ext_output_image_capture_source_manager_v1`
## ENVIRONMENT VARIABLES
*XCURSOR_PATH*
Specify a colon-separated list of paths to look for mouse cursors in.
Default
Default is
~/.local/share/icons:
~/.icons:
/usr/share/icons:
@ -1460,7 +1537,7 @@ situation.
*XCURSOR_SIZE*
Specify an alternative mouse cursor size in pixels. Requires
XCURSOR_THEME to be set also. Default 24.
XCURSOR_THEME to be set also. Default is 24.
*XCURSOR_THEME*
Specify a mouse cursor theme within XCURSOR_PATH.

View file

@ -12,7 +12,7 @@ Static menus are built based on the menu.xml file located at
# SYNTAX
The menu file must be entirely enclosed within <openbox_menu> and
</openbox_menu> tags. Inside these tags, menus are specified as follows:
</openbox_menu> tags. Inside these tags, menus are specified as follows:
```
<!-- A toplevel menu -->
@ -111,7 +111,7 @@ Pipe menus are menus generated dynamically based on output of scripts or
binaries. They are so-called because the output of the executable is piped to
the labwc menu.
For any *<menu id="" label="" execute="COMMAND"/>* entry in menu.xml, the
For any *<menu id="" label="" execute="COMMAND" />* entry in menu.xml, the
COMMAND will be executed the first time the item is selected (for example by
cursor or keyboard input). The XML output of the command will be parsed and
shown as a submenu. The content of pipemenus is cached until the whole menu
@ -124,7 +124,7 @@ menus, for example:
```
<openbox_pipe_menu>
<item label="Terminal">
<action name="Execute" command="xterm"/>
<action name="Execute" command="xterm" />
</item>
</openbox_pipe_menu>
```
@ -144,10 +144,25 @@ obmenu-generator with the menu generator of your choice):
```
<?xml version="1.0"?>
<openbox_menu>
<menu id="root-menu" label="" execute="obmenu-generator"/>
<menu id="root-menu" label="" execute="obmenu-generator" />
</openbox_menu>
```
# ACCELERATORS / MNEMONICS
Menu accelerators are one-letter mnemonics to quickly select/exec items from
the current menu. For each menu item, the accelerator is defined as the first
character of the item label, converted to lowercase. A different accelerator
can be explicitly defined in menu.xml with the special '\_' character before the
target letter. Accelerators can be any unicode character and are not limited to
ASCII. A usual underscore can be shown by duplicating it.
If the menu only contains a single instance of the pressed accelerator the item
will be executed directly. Otherwise, all matching items are cycled through.
Example:
The accelerator for an item with the label "e_Macs" is 'm'.
# LOCALISATION
Available localisation for the default "client-menu" is only shown if no

View file

@ -246,7 +246,7 @@ osd.bg.bevel-width:2
*window.active.title.bg*
Texture for the focused window's titlebar. See texture section above.
Default is *Solid*
Default is *Solid*.
*window.active.title.bg.width*
Used with beveled textures.
@ -265,7 +265,7 @@ osd.bg.bevel-width:2
*window.inactive.title.bg*
Texture for non-focused windows' titlebars. See texture section above.
Default is *Solid*
Default is *Solid*.
*window.inactive.title.bg.width*
Used with beveled textures.
@ -685,7 +685,7 @@ all are supported.
Width of magnifier window border in pixels. Default is 1.
*magnifier.border.color*
Color of the magnfier window border. Default is #ff0000 (red).
Color of the magnifier window border. Default is #ff0000 (red).
# BUTTONS

View file

@ -66,10 +66,18 @@ the `--exit` and `--reconfigure` options use.
Manager, or the Window Manager can be launched independently first. On
Wayland, the Compositor is both Display Server and Window Manager, so
the described session management mechanisms do not work because the
Compositor needs to be running before the session can function. As some
Compositor needs to be running before the session can function. As some
session clients support both X11 and Wayland, this command line option
avoids re-writes and fragmentation.
*-t, --title* <fmtstr>
Set the window title for labwc to use when it is running in a window
(i.e. nested in a compositor). <fmtstr> is a format string to be used as
the window title, replacing `%o` with the name of the output
region. This is useful when simulating multiple screens, such as with
running labwc with the environment variable `WLR_WL_OUTPUTS=2`. In this
case, `%o` will be unique per simulated screen.
*-v, --version*
Show the version number and quit
@ -118,6 +126,25 @@ this is accomplished by setting the session variables to empty strings. For
systemd, the command `systemctl --user unset-environment` will be invoked to
actually remove the variables from the activation environment.
A systemd user unit named `labwc-session.target` is also shipped alongside
the compositor for users who want to integrate labwc with systemd. It binds
to the standard `graphical-session.target`, so systemd user services can
start and stop in sync with the labwc session when they declare a WantedBy
or PartOf relationship to that target. Labwc does not activate the target
itself; users opt in by adding lines like the following to their
*autostart* and *shutdown* files:
```
systemctl --user --no-block start labwc-session.target
systemctl --user stop graphical-session.target
```
The example *autostart* and *shutdown* files shipped with labwc include
these commented out. To have a user service automatically started with
the session, enable it so the corresponding symlink under the
graphical-session.target.wants directory exists, for example by running
"systemctl --user enable dms.service".
# ENVIRONMENT VARIABLES
Set the environment variables listed below to enable specific debug options.

View file

@ -23,7 +23,7 @@
Any menu with the id "workspaces" will be hidden
if there is only a single workspace available.
-->
<menu id="client-send-to-menu"/>
<menu id="client-send-to-menu" />
<!--
openbox default workspace selector
to use replace above workspace menu with the example below
@ -56,9 +56,9 @@
# A prompt can be used as follows:
<item label="Exit">
<action name="If">
<prompt message="Do you really want to exit the compositor?"/>
<prompt message="Do you really want to exit the compositor?" />
<then>
<action name="Exit"/>
<action name="Exit" />
</then>
</action>
</item>

View file

@ -13,6 +13,7 @@
<adaptiveSync>no</adaptiveSync>
<allowTearing>no</allowTearing>
<autoEnableOutputs>yes</autoEnableOutputs>
<hdr>no</hdr>
<reuseOutputMode>no</reuseOutputMode>
<xwaylandPersistence>no</xwaylandPersistence>
<primarySelection>yes</primarySelection>
@ -158,6 +159,8 @@
<followMouse>no</followMouse>
<followMouseRequiresMovement>yes</followMouseRequiresMovement>
<raiseOnFocus>no</raiseOnFocus>
<!-- Delay (ms) before applying raise-on-focus. 0 = immediate. -->
<raiseOnFocusDelay>0</raiseOnFocusDelay>
</focus>
<snapping>
@ -276,6 +279,9 @@
<keybind key="W-a">
<action name="ToggleMaximize" />
</keybind>
<keybind key="W-d">
<action name="ToggleShowDesktop" />
</keybind>
<keybind key="W-Left">
<action name="SnapToEdge" direction="left" combine="yes" />
</keybind>
@ -291,19 +297,19 @@
<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 key="XF86AudioLowerVolume">
<action name="Execute" command="pactl set-sink-volume @DEFAULT_SINK@ -5%" />
</keybind>
<keybind key="XF86_AudioRaiseVolume">
<action name="Execute" command="amixer sset Master 5%+" />
<keybind key="XF86AudioRaiseVolume">
<action name="Execute" command="pactl set-sink-volume @DEFAULT_SINK@ +5%" />
</keybind>
<keybind key="XF86_AudioMute">
<action name="Execute" command="amixer sset Master toggle" />
<keybind key="XF86AudioMute">
<action name="Execute" command="pactl set-sink-mute @DEFAULT_SINK@ toggle" />
</keybind>
<keybind key="XF86_MonBrightnessUp">
<keybind key="XF86MonBrightnessUp">
<action name="Execute" command="brightnessctl set +10%" />
</keybind>
<keybind key="XF86_MonBrightnessDown">
<keybind key="XF86MonBrightnessDown">
<action name="Execute" command="brightnessctl set 10%-" />
</keybind>
<!-- SnapToRegion via W-Numpad -->
@ -592,7 +598,7 @@
- accelProfile [flat|adaptive]
- tapButtonMap [lrm|lmr]
- clickMethod [none|buttonAreas|clickfinger]
- scrollMethod [twoFinger|edge|none]
- scrollMethod [twoFinger|edge|onbutton|none]
- sendEventsMode [yes|no|disabledOnExternalMouse]
- calibrationMatrix [six float values split by space]
- scrollFactor [float]
@ -618,6 +624,7 @@
<!-- <disableWhileTyping>yes</disableWhileTyping> -->
<!-- <clickMethod>buttonAreas</clickMethod> -->
<!-- <scrollMethod>twofinger</scrollMethod> -->
<!-- <scrollButton>274</scrollButton> -->
<!-- <sendEventsMode>yes</sendEventsMode> -->
<!-- <calibrationMatrix>1 0 0 0 1 0</calibrationMatrix> -->
<scrollFactor>1.0</scrollFactor>
@ -638,10 +645,10 @@
# string and '?' matches any single character.
<windowRules>
<windowRule identifier="*"><action name="Maximize"/></windowRule>
<windowRule identifier="foo" serverDecoration="yes"/>
<windowRule title="bar" serverDecoration="yes"/>
<windowRule identifier="baz" title="quax" serverDecoration="yes"/>
<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`
@ -652,18 +659,18 @@
<windowRule identifier="lxqt-panel" matchOnce="true">
<skipTaskbar>yes</skipTaskbar>
<action name="MoveTo" x="0" y="0" />
<action name="ToggleAlwaysOnTop"/>
<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"/>
<action name="ToggleAlwaysOnBottom" />
</windowRule>
<windowRule identifier="org.qutebrowser.qutebrowser">
<action name="ResizeTo" width="1024" height="800" />
<action name="AutoPlace"/>
<action name="AutoPlace" />
</windowRule>
</windowRules>
-->

View file

@ -3,3 +3,11 @@
# This file is executed as a shell script when labwc is preparing to terminate
# itself.
# For further details see labwc-config(5).
# When running under systemd, uncomment the systemctl line below to tear down
# graphical-session.target (which cascades to labwc-session.target via
# BindsTo, and to any service declaring PartOf=graphical-session.target).
# Running synchronously here ensures those services are stopped before the
# Wayland socket goes away, avoiding "Broken pipe" failures on teardown.
#
# systemctl --user stop graphical-session.target