mirror of
https://github.com/labwc/labwc.git
synced 2026-06-17 14:33:30 -04:00
Merge branch 'master' into master
This commit is contained in:
commit
6885d5b887
70 changed files with 1979 additions and 321 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
-->
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue