Merge branch 'master' into mouseemu

This commit is contained in:
Simon Long 2024-10-20 11:56:14 +01:00 committed by GitHub
commit 06129fe1ce
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
178 changed files with 10958 additions and 2691 deletions

View file

@ -5,6 +5,7 @@ Config layout for ~/.config/labwc/
- rc.xml
- shutdown
- themerc-override
- xinitrc
See `man labwc-config and `man labwc-theme` for further details.

View file

@ -60,13 +60,13 @@
##
## This allows xdg-desktop-portal-wlr to function (e.g. for screen-recording).
## It is automatically set to "wlroots" by labwc though, so it is only
## It is automatically set to "labwc:wlroots" by labwc though, so it is only
## included here for completeness. Again, labwc will not over-write an
## already set environment variable, so if you need it set to something else,
## then uncomment and adjust.
##
# XDG_CURRENT_DESKTOP=wlroots
# XDG_CURRENT_DESKTOP=labwc:wlroots
##
## This causes a virtual output to be created automatically whenever there

View file

@ -91,19 +91,35 @@ Actions are used in menus and keyboard/mouse bindings.
Move window relative to its current position. Positive value of x moves
it right, negative left. Positive value of y moves it down, negative up.
*<action name="ToggleSnapToEdge" direction="value" />*++
*<action name="SnapToEdge" direction="value" />*
Resize window to fill half the output in the given direction. Supports
directions "left", "up", "right", "down" and "center".
ToggleSnapToEdge additionally toggles the active window between
tiled to the given direction and its untiled position.
*<action name="ToggleSnapToRegion" region="value" />*++
*<action name="SnapToRegion" region="value" />*
Resize and move active window according to the given region.
ToggleSnapToRegion additionally toggles the active window between
tiled to the given region and its untiled position.
See labwc-config(5) for further information on how to define regions.
*<action name="NextWindow" />*
Cycle focus to next window.
*<action name="UnSnap" />*
Resize and move the active window back to its untiled or unmaximized
position if it had been maximized or tiled to a direction or region.
*<action name="NextWindow" />*++
*<action name="PreviousWindow" />*
Cycle focus to previous window.
Cycle focus to next/previous window respectively.++
Default keybind for NextWindow is Alt-Tab.
The shift key is used to reverse direction while cycling.
The arrow keys are used to move forwards/backwards while cycling.
*<action name="Reconfigure" />*
Re-load configuration and theme files.
@ -111,14 +127,26 @@ Actions are used in menus and keyboard/mouse bindings.
*<action name="ShowMenu" menu="value" atCursor="yes" />*
Show a menu.
*menu* The name of the menu to show. The menus "root-menu" and
"client-menu" are guaranteed to exist, but others may be defined
explicitly. See labwc-menu(5) for more information.
*menu* The name of the menu to show. The menus "root-menu",
"client-menu", "client-send-to-menu" and "client-list-combined-menu"
are guaranteed to exist, but others may be defined explicitly.
See labwc-menu(5) for more information.
*atCursor* [yes|no] When opening a menu, open the menu at the location
of the mouse cursor. When set to no, the menu will appear at the
upper-left corner of the window associated with the action. Default is
yes.
upper-left corner of the window associated with the action or underneath
the window button that opened the menu. Default is yes.
*position* Show the menu in the specified position on the monitor
that has cursor focus, see below.
The position tag has two sub-tags. <x> and <y> specify a position and
take either a pixel value, the string "center" which will center the
menu in that dimension, or a relative value specified as a percentage
A relative value is interpreted in terms of the monitor the menu will
be shown on, and will be relative to the left/top edge of the menu
window and monitor for positive values, and to the right/bottom edge
for negative values.
*<action name="SetDecorations" decorations="value" forceSSD="no" />*
Set decorations of focused window.
@ -184,12 +212,27 @@ Actions are used in menus and keyboard/mouse bindings.
original window. There can be multiple windows with this mode set.
*<action name="ToggleTearing" />*
Toggles tearing for the focused window.
Toggles tearing for the focused window between enabled and disabled.
This overrides the preference (tearing hint) from the focused window.
*<action name="FocusOutput" output="HDMI-A-1" />*
Give focus to topmost window on given output and warp the cursor
to the center of the window. If the given output does not contain
any windows, the cursor is centered on the given output.
Requires the config option 'allowTearing'. When 'allowTearing' is set
to 'fullscreen' or 'fullscreenForced', tearing will still only be
enabled if the active window is in fullscreen mode.
*<action name="FocusOutput" output="HDMI-A-1" direction="value" wrap="no" />*
Give focus to topmost window on other output and warp the cursor
to the center of the window.
If *output* is specified, the focus is given to the specified output and
*direction* is ignored. If *output* is omitted, *direction* may be one
of "left", "right", "up" or "down" to indicate that the focus should be
given to the next output in that direction (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 is no.
If the target output does not contain any windows, the cursor will
be centered on the output.
*<action name="MoveToOutput" output="HDMI-A-1" direction="value" wrap="no" />*
Moves active window to other output, unless the window state is
@ -273,9 +316,9 @@ Actions are used in menus and keyboard/mouse bindings.
*<action name="AutoPlace" policy="value"/>*
Reposition the window according to the desired placement policy.
*policy* [automatic|cursor|center] Use the specified policy, which has
the same meaning as the corresponding value for *<placement><policy>*.
Default is automatic.
*policy* [automatic|cursor|center|cascade] Use the specified policy,
which has the same meaning as the corresponding value for
*<placement><policy>*. Default is automatic.
*<action name="Shade" />*++
*<action name="Unshade" />*++
@ -286,6 +329,11 @@ Actions are used in menus and keyboard/mouse bindings.
decorations (including those for which the server-side titlebar has been
hidden) are not eligible for shading.
*<action name="EnableTabletMouseEmulation" />*++
*<action name="DisableTabletMouseEmulation" />*++
*<action name="ToggleTabletMouseEmulation">*
Enable, disable or toggle mouse emulation for drawing tablets respectively.
*<action name="ToggleMagnify">*
Toggle the screen magnifier on or off at the last magnification level
used.

View file

@ -8,7 +8,7 @@ labwc - configuration files
Labwc uses openbox-3.6 specification for configuration and theming, but does not
support all options. The following files form the basis of the labwc
configuration: rc.xml, menu.xml, autostart, shutdown and environment.
configuration: rc.xml, menu.xml, autostart, shutdown, environment and xinitrc.
No configuration files are needed to start and run labwc.
@ -78,6 +78,10 @@ in labwc-theme(5).
*rc.xml* is the main configuration file and all its options are described in
detail below.
The *xinitrc* file is executed as a shell script whenever labwc launches the
Xwayland X11 server. This may happen multiple times throughout the session if
Xwayland is not configured to persist when no X11 clients are connected.
# CONFIGURATION
This section describes *rc.xml* configuration options.
@ -181,11 +185,23 @@ this is for compatibility with Openbox.
*fullscreen* enables adaptive sync whenever a window is in fullscreen
mode.
*<core><allowTearing>* [yes|no]
*<core><allowTearing>* [yes|no|fullscreen|fullscreenForced]
Allow tearing to reduce input lag. Default is no.
This option requires setting the environment variable
WLR_DRM_NO_ATOMIC=1.
*yes* allow tearing if requested by the active window.
*yes* allows tearing if requested by the active window.
*fullscreen* allows tearing if requested by the active window, but
only when the window is in fullscreen mode.
*fullscreenForced* enables tearing whenever the active window is in
fullscreen mode, whether or not the application has requested tearing.
Use the *ToggleTearing* action for forcefully enable tearing.
Note: Enabling this option with atomic mode setting is experimental. If
you experience undesirable side effects when tearing is allowed,
consider setting the environment variable WLR_DRM_NO_ATOMIC=1 when
launching labwc.
*<core><reuseOutputMode>* [yes|no]
Try to re-use the existing output mode (resolution / refresh rate).
@ -194,14 +210,31 @@ this is for compatibility with Openbox.
be used with labwc the preferred mode of the monitor is used instead.
Default is no.
*<core><xwaylandPersistence>* [yes|no]
Keep XWayland alive even when no clients are connected, rather than
using a "lazy" policy that allows the server to launch on demand and die
when it is no longer needed. Default is no.
Note: changing this setting requires a restart of labwc.
## PLACEMENT
*<placement><policy>* [center|automatic|cursor]
*<placement><policy>* [center|automatic|cursor|cascade]
Specify a placement policy for new windows. The "center" policy will
always place windows at the center of the active output. The "automatic"
policy will try to place new windows in such a way that they will
have minimal overlap with existing windows. The "cursor" policy will
center new windows under the cursor. Default is "center".
center new windows under the cursor. The "cascade" policy will try to
place new windows at the center of the active output, but possibly
shifts its position to bottom-right not to cover existing windows.
Default is "center".
*<placement><cascadeOffset><x>*++
*<placement><cascadeOffset><y>*
Specify the offset by which a new window can be shifted from an existing
window when <placement><policy> is "cascade". These values must be positive.
Default is the height of titlebar (the sum of *titlebar.height* and
*border.width* from theme) plus 5 for both *x* and *y*.
## WINDOW SWITCHER
@ -293,6 +326,15 @@ this is for compatibility with Openbox.
The default value for both parameters is 20 pixels.
*<resistance><unSnapThreshold>*
Sets the movement of cursor in pixel required for a tiled or maximized
window to be moved with an interactive move. Default is 20.
*<resistance><unMaximizeThreshold>*
Sets the one-dimentional movement of cursor in pixel required for a
*vertically or horizontally* maximized window to be moved with an
interactive move. Default is 150.
## FOCUS
*<focus><followMouse>* [yes|no]
@ -395,6 +437,29 @@ extending outward from the snapped edge.
*<theme><name>*
The name of the Openbox theme to use. It is not set by default.
*<theme><icon>*
The name of the icon theme to use. It is not set by default.
*<theme><titlebar><layout>*
Selection and order of buttons in a window's titlebar.
The following identifiers can be used, each only once:
- 'icon': window icon
- 'menu': window menu
- 'iconify': iconify
- 'max': maximize toggle
- 'close': close
- 'shade': shade toggle
- 'desk': all-desktops toggle
A colon deliminator is used to separate buttons on the left and right,
whereas commas are used to separate items within a section. It is
mandatory to use one colon.
Default: icon:iconify,max,close
*<theme><titlebar><showTitle>* [yes|no]
Show the window title in the titlebar. Default is yes.
*<theme><cornerRadius>*
The radius of server side decoration top corners. Default is 8.
@ -411,6 +476,7 @@ extending outward from the snapped edge.
- ActiveWindow - titlebar of active window
- InactiveWindow - titlebar of all windows that aren't focused by the
cursor
- MenuHeader - menu title
- MenuItem - menu item (currently only root menu)
- OnScreenDisplay - items in the on screen display
If no place attribute is provided, the setting will be applied to all
@ -423,7 +489,7 @@ extending outward from the snapped edge.
Font size in pixels. Default is 10.
*<theme><font place=""><slant>*
Font slant (normal or italic). Default is normal.
Font slant (normal, oblique or italic). Default is normal.
*<theme><font place=""><weight>*
Font weight (normal or bold). Default is normal.
@ -471,7 +537,7 @@ extending outward from the snapped edge.
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="">*
*<keyboard><keybind key="" layoutDependent="" onRelease="" allowWhenLocked="">*
Define a *key* binding in the format *modifier-key*, where supported
modifiers are:
- S (shift)
@ -497,8 +563,11 @@ extending outward from the snapped edge.
If set to "no" (or is absent) the keybind will be layout agnostic.
Default is no.
*<keyboard><keybind key="" onRelease="yes|no">*
*onRelease*, when yes, fires the keybind action when the key or key
*allowWhenLocked* [yes|no]
Make this keybind work even if the screen is locked. 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
bind actions to only modifier keys, where the action should fire when
the modifier is used without another key. Default is no.
@ -507,7 +576,6 @@ extending outward from the snapped edge.
pressed & released, without interference from other multi-key
combinations that include the super key:
```
<keybind key="Super_L" onRelease="yes">
<action name="Execute" command="rofi -show drun"/>
@ -551,9 +619,6 @@ extending outward from the snapped edge.
*<mouse><doubleClickTime>*
Set double click time in milliseconds. Default is 500.
*<mouse><scrollFactor>*
Set scroll factor. Default is 1.0.
*<mouse><context name=""><mousebind button="" direction="" action=""><action>*
Multiple *<mousebind>* can exist within one *<context>*; and multiple
*<action>* can exist within one *<mousebind>*.
@ -563,10 +628,13 @@ extending outward from the snapped edge.
buttons and the window title are shown.
- Title: The area of the titlebar (including blank space) between
the window buttons, where the window title is displayed.
- WindowMenu: The button on the left.
- Iconify: The button that looks like an underline.
- Maximize: The button that looks like a box.
- Close: The button that looks like an X.
- Icon: A window icon that, by default, displays a window menu.
- WindowMenu: A button that, by default, displays a window menu.
- Iconify: A button that, by default, iconifies a window.
- Maximize: A button that, by default, toggles maximization of a window.
- 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.
- Top: The top edge of the window's border.
- Bottom: The bottom edge of the window's border.
- Left: The left edge of the window's border.
@ -656,9 +724,12 @@ extending outward from the snapped edge.
If the output name is left empty or the output does not exists, the
tablet will span all outputs.
The tablet cursor automatically applies the orientation/rotation of
a mapped output for absolute motion.
*<tablet rotate="" />* [0|90|180|270]
The tablet orientation can be changed in 90 degree steps. Default is
no rotation (0). Rotation will be applied after applying tablet area
no rotation (0). Rotation will be applied before applying tablet area
transformation.
See also *calibrationMatrix* in libinput section below for advanced
@ -688,6 +759,9 @@ extending outward from the snapped edge.
tablet specific restrictions, e.g. no support for drag-and-drop, but
also omits tablet specific features like reporting pen pressure.
Use the *ToggleTabletMouseEmulation* action for toggling between
mouse emulation on and off.
*<tablet><map button="" to="" />*
Pen and pad buttons behave like regular mouse buttons.With mouse
emulation set to "no", which is the default, and if not specified
@ -724,6 +798,24 @@ extending outward from the snapped edge.
See mouse section above for all supported mouse buttons.
## TABLET TOOL
```
<tabletTool motion="absolute" relativeMotionSensitivity="1" />
```
*<tabletTool motion="">* [absolute|relative]
All tablet tools, except of type mouse and lens, use "absolute"
positioning by default. The *motion* attribute allows to set tools
to relative motion instead. Positioning for a tablet mouse or
tablet lens cannot be changed, those tools always use relative mode.
*<tabletTool relativeMotionSensitivity="">*
When using relative motion, *relativeMotionSensitivity* controls
the speed of the cursor. Using a value lower than 1.0 decreases the
speed, using a value greater than 1.0 increases the speed of the
cursor. The default is "1.0".
## LIBINPUT
```
@ -742,6 +834,7 @@ extending outward from the snapped edge.
<clickMethod></clickMethod>
<sendEventsMode></sendEventsMode>
<calibrationMatrix></calibrationMatrix>
<scrollFactor>1.0</scrollFactor>
</device>
</libinput>
```
@ -867,6 +960,9 @@ The most common matrices are:
visit https://wayland.freedesktop.org/libinput/doc/latest/absolute-axes.html#calibration-of-absolute-devices
for more information.
*<libinput><scrollFactor>*
Set scroll factor. Default is 1.0.
## WINDOW RULES
Two types of window rules are supported, actions and properties. They are
@ -960,7 +1056,7 @@ situation.
*<menu><ignoreButtonReleasePeriod>*
How long (in milliseconds) the initial button release event is ignored
for. The reason for this logic and behaviour is to avoid a fast
press-move-release sequence indended to just open the menu resulting in
press-move-release sequence intended to just open the menu resulting in
the closure of the menu or the selection of (typically the first) menu
item. This behaviour only affects the first button-release. It is not
anticipated that most users will want to change this, but the config

View file

@ -25,7 +25,7 @@ The menu file must be entirely enclosed within <openbox_menu> and
<!-- A submenu defined elsewhere -->
<menu id="" />
<!-- Horizontal line >
<!-- Horizontal line -->
<separator />
<!-- An inline submenu -->
@ -33,6 +33,9 @@ The menu file must be entirely enclosed within <openbox_menu> and
...some content...
</menu>
<!-- Title -->
<separator label=""/>
<!-- Pipemenu -->
<menu id="" label="" execute="COMMAND"/>
@ -45,6 +48,12 @@ The menu file must be entirely enclosed within <openbox_menu> and
ShowMenu action. Default identifiers are
- "root-menu" for the root window context menu
- "client-menu" for a window's titlebar context menu
- "client-list-combined-menu" for a list of all windows across
all workspaces. Will change focus to the app that gets
selected or go to workspace without activating any app if
"Go there" is selected.
- "client-send-to-menu" shows all workspaces and sends current
view to that workspace when selected.
*menu.id* (when nested under other *<menu>* element)
Link to a submenu defined elsewhere (by a *<menu id="">* at toplevel)
@ -63,6 +72,11 @@ The menu file must be entirely enclosed within <openbox_menu> and
*menu.separator*
Horizontal line.
*menu.separator.label*
In a "separator" element, the label attribute transforms the separator
from a horizontal line to a menu title (heading) with the text specified
by label in it.
*menu.execute*
Command to execute for pipe menu. See details below.

View file

@ -47,17 +47,17 @@ labwc-config(5).
# THEME ELEMENTS
*border.width*
Line width (integer) of border border drawn around window frames.
Line width (integer) of border drawn around window frames.
Default is 1.
*padding.height*
Vertical padding size, used for spacing out elements in the window
decorations. Default is 3.
*window.titlebar.padding.width*
Horizontal titlebar padding size, in pixels, between border and first
button on the left/right.
Default is 0.
*titlebar.height*
Window title bar height.
Default equals the vertical font extents of the title plus 2x
padding.height.
*window.titlebar.padding.height*
Vertical titlebar padding size, in pixels.
Default is 0.
*menu.items.padding.x*
Horizontal padding of menu text entries in pixels.
@ -67,6 +67,10 @@ labwc-config(5).
Vertical padding of menu text entries in pixels.
Default is 4.
*menu.title.text.justify*
Specifies how menu titles are aligned in the titlebar.
Type justification. Default Center.
*menu.overlap.x*
Horizontal overlap in pixels between submenus and their parents. A
positive value move submenus over the top of their parents, whereas a
@ -114,6 +118,22 @@ labwc-config(5).
Specifies how window titles are aligned in the titlebar for both
focused and unfocused windows. Type justification. Default Left.
*window.button.width*
Width of a titlebar button, in pixels.
Default is 26.
*window.button.spacing*
Space between titlebar buttons, in pixels.
Default is 0.
*window.button.hover.bg.corner-radius*
Radius of the hover effect of a titlebar button, in pixels.
Default is 0.
Note: for a circular hover effect, set *window.button.width* and
*window.button.height* equal and *window.button.hover.bg.corner-radius* half
of them.
*window.active.button.unpressed.image.color*
Color of the images in titlebar buttons in their default, unpressed,
state. This element is for the focused window.
@ -122,13 +142,19 @@ labwc-config(5).
Color of the images in titlebar buttons in their default, unpressed,
state. This element is for non-focused windows.
Note: The button elements (i.e. window.[in]active.button.\*) support defining
different types of buttons individually by inserting the type ("menu",
"iconify", "max" and "close") after the button node. For example:
window.active.button.iconify.unpressed.image.color
This syntax is not documented on the openbox.org wiki, but is supported by
openbox and is used by many popular themes. For the sake of brevity, these
elements are not listed here, but are supported.
Note: Button elements (i.e. window.[in]active.button.\*) may be defined uniquely
for each type of button ("menu", "iconify", "max", "shade", "desk" or "close")
by appending the type after the "button" node. For example:
- window.active.button.iconify.unpressed.image.color indicates the color of the
iconify button for active windows; while
- window.inactive.button.close.unpressed.image.color indicates the color of the
close button for inactive windows.
This syntax is not documented by Openbox, but is supported and is used by many
popular themes. For the sake of brevity, these elements are not listed here, but
all are supported.
*window.active.shadow.size*
Size of the drop-shadow for the focused window, in pixels.
@ -170,6 +196,13 @@ elements are not listed here, but are supported.
*menu.separator.color*
Menu separator color. Default #888888.
*menu.title.bg.color*
Menu title color. Default #589bda.
Note: A menu title is a separator with a label.
*menu.title.text.color*
Text color of separator label. Default #ffffff.
*osd.bg.color*
Background color of on-screen-display. Inherits
*window.active.title.bg.color* if not set.
@ -303,6 +336,10 @@ file within a particular theme. The following xbm buttons are supported:
- close.xbm
- menu.xbm
- max_toggled.xbm
- desk.xbm
- desk_toggled.xbm
- shade.xbm
- shade_toggled.xbm
Additional icons can be defined to be shown when the mouse pointer is hovering
over the button in question:
@ -312,6 +349,10 @@ over the button in question:
- close_hover.xbm
- menu_hover.xbm
- max_toggled_hover.xbm
- desk_hover.xbm
- desk_toggle_hover.xbm
- shade_hover.xbm
- shade_toggle_hover.xbm
One advantage of xbm buttons over other formats is that they change color based
on the theme. Other formats use the suffices "-active" and "-inactive" to align
@ -345,6 +386,22 @@ following icons should be added:
- menu_hover-active.[png|svg]
- menu_hover-inactive.[png|svg]
- menu-inactive.[png|svg]
- shade-active.[png|svg]
- shade_hover-active.[png|svg]
- shade_hover-inactive.[png|svg]
- shade-inactive.[png|svg]
- shade_toggled-active.[png|svg]
- shade_toggled-inactive.[png|svg]
- shade_toggled_hover-active.[png|svg]
- shade_toggled_hover-inactive.[png|svg]
- desk-active.[png|svg]
- desk_hover-active.[png|svg]
- desk_hover-inactive.[png|svg]
- desk-inactive.[png|svg]
- desk_toggled-active.[png|svg]
- desk_toggled-inactive.[png|svg]
- desk_toggled_hover-active.[png|svg]
- desk_toggled_hover-inactive.[png|svg]
# DEFINITIONS

View file

@ -37,12 +37,24 @@
<action name="ToggleOmnipresent" />
</item>
</menu>
<!--
openbox default workspace selector
to use replace above workspace menu with the example below
the label is required, but you can change the text.
<menu id="client-send-to-menu" label="Send to..." />
-->
<item label="Close">
<action name="Close" />
</item>
</menu>
<menu id="root-menu">
<!-- Make client-list-combined-menu a submenu of root-menu
You must supply a label or it will not appear in root-menu -->
<!--
<menu id="client-list-combined-menu" label="Running..." />
-->
<item label="Web browser">
<action name="Execute" command="firefox" />
</item>
@ -61,6 +73,12 @@
</menu>
<menu id="some-custom-menu">
<!--
Creates menu title.
To create an empty header with no text,
set label=" ", not label=""
-->
<separator label="custom menu" />
<item label="Reconfigure">
<action name="Reconfigure" />
</item>

View file

@ -13,15 +13,26 @@
<adaptiveSync>no</adaptiveSync>
<allowTearing>no</allowTearing>
<reuseOutputMode>no</reuseOutputMode>
<xwaylandPersistence>no</xwaylandPersistence>
</core>
<placement>
<policy>center</policy>
<!--
When <placement><policy> is "cascade", the offset for cascading new
windows can be overwritten like this:
<cascadeOffset x="40" y="30" />
-->
</placement>
<!-- <font><theme> can be defined without an attribute to set all places -->
<theme>
<name></name>
<icon></icon>
<titlebar>
<layout>icon:iconify,max,close</layout>
<showTitle>yes</showTitle>
</titlebar>
<cornerRadius>8</cornerRadius>
<keepBorder>yes</keepBorder>
<dropShadows>no</dropShadows>
@ -37,6 +48,12 @@
<slant>normal</slant>
<weight>normal</weight>
</font>
<font place="MenuHeader">
<name>sans</name>
<size>10</size>
<slant>normal</slant>
<weight>normal</weight>
</font>
<font place="MenuItem">
<name>sans</name>
<size>10</size>
@ -101,6 +118,10 @@
<resistance>
<screenEdgeStrength>20</screenEdgeStrength>
<windowEdgeStrength>20</windowEdgeStrength>
<!-- resistance for maximized/tiled windows -->
<unSnapThreshold>20</unSnapThreshold>
<!-- resistance for vertically/horizontally maximized windows -->
<unMaximizeThreshold>150</unMaximizeThreshold>
</resistance>
<resize>
@ -252,7 +273,7 @@
<action name="SnapToEdge" direction="down" />
</keybind>
<keybind key="A-Space">
<action name="ShowMenu" menu="client-menu" />
<action name="ShowMenu" menu="client-menu" atCursor="no" />
</keybind>
<keybind key="XF86_AudioLowerVolume">
<action name="Execute" command="amixer sset Master 5%-" />
@ -299,6 +320,16 @@
<action name="SnapToRegion" region="bottom-right" />
</keybind>
-->
<!-- keybind for client-list-combined-menu - will center in middle of screen -->
<!--
<keybind key="W-Space">
<action name="ShowMenu" menu="client-list-combined-menu" />
<position>
<x>center</x>
<y>center</y>
</position>
</keybind>
-->
</keyboard>
<!--
@ -316,7 +347,6 @@
<!-- time is in ms -->
<doubleClickTime>500</doubleClickTime>
<scrollFactor>1.0</scrollFactor>
<context name="Frame">
<mousebind button="A-Left" action="Press">
@ -421,10 +451,31 @@
<context name="WindowMenu">
<mousebind button="Left" action="Click">
<action name="ShowMenu" menu="client-menu" />
<action name="ShowMenu" menu="client-menu" atCursor="no" />
</mousebind>
<mousebind button="Right" action="Click">
<action name="ShowMenu" menu="client-menu" />
<action name="ShowMenu" menu="client-menu" atCursor="no" />
</mousebind>
</context>
<context name="Icon">
<mousebind button="Left" action="Click">
<action name="ShowMenu" menu="client-menu" atCursor="no" />
</mousebind>
<mousebind button="Right" action="Click">
<action name="ShowMenu" menu="client-menu" atCursor="no" />
</mousebind>
</context>
<context name="Shade">
<mousebind button="Left" action="Click">
<action name="ToggleShade" />
</mousebind>
</context>
<context name="AllDesktops">
<mousebind button="Left" action="Click">
<action name="ToggleOmnipresent" />
</mousebind>
</context>
@ -464,6 +515,8 @@
</mousebind>
<mousebind button="Middle" action="Press">
<action name="ShowMenu" menu="root-menu" />
<!-- openbox default, swap with above line to activate -->
<!-- <action name="ShowMenu" menu="client-list-combined-menu" /> -->
</mousebind>
<mousebind direction="Up" action="Scroll">
<action name="GoToDesktop" to="left" wrap="yes" />
@ -523,6 +576,16 @@
<map button="Stylus2" to="Middle" />
</tablet>
<!--
All tablet tools, except of type mouse and lens, use absolute
positioning by default. The *motion* attribute allows to set tools
to relative motion instead. When using relative motion,
*relativeMotionSensitivity* controls the speed of the cursor. Using
a value lower than 1.0 decreases the speed, using a value greater than
1.0 increases the speed of the cursor.
-->
<tabletTool motion="absolute" relativeMotionSensitivity="1.0" />
<!--
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
@ -538,6 +601,7 @@
- clickMethod [none|buttonAreas|clickfinger]
- sendEventsMode [yes|no|disabledOnExternalMouse]
- calibrationMatrix [six float values split by space]
- scrollFactor [float]
-->
<libinput>
<device category="default">
@ -554,6 +618,7 @@
<clickMethod></clickMethod>
<sendEventsMode></sendEventsMode>
<calibrationMatrix></calibrationMatrix>
<scrollFactor>1.0</scrollFactor>
</device>
</libinput>

View file

@ -7,11 +7,13 @@
# general
border.width: 1
padding.height: 3
# The following options has no default, but fallbacks back to
# font-height + 2x padding.height if not set.
# titlebar.height:
#
# We do not support the global padding.{width,height} of openbox because
# the default labwc button geometry has deviates from that of openbox
#
window.titlebar.padding.width: 0
window.titlebar.padding.height: 0
# window border
window.active.border.color: #e1dedb
@ -29,6 +31,14 @@ window.active.label.text.color: #000000
window.inactive.label.text.color: #000000
window.label.text.justify: center
# window button width and spacing
window.button.width: 26
window.button.height: 26
window.button.spacing: 0
# window button hover effect
window.button.hover.bg.corner-radius: 0
# window buttons
window.active.button.unpressed.image.color: #000000
window.inactive.button.unpressed.image.color: #000000
@ -59,6 +69,9 @@ menu.separator.width: 1
menu.separator.padding.width: 6
menu.separator.padding.height: 3
menu.separator.color: #888888
menu.title.bg.color: #589bda
menu.title.text.color: #ffffff
menu.title.text.justify: Center
# on screen display (window-cycle dialog)
osd.bg.color: #e1dedb

28
docs/xinitrc Normal file
View file

@ -0,0 +1,28 @@
#!/bin/sh
## This file is run every time labwc launches Xwayland.
##
## In the default configuration, Xwayland will be launched lazily, and will
## terminate after several seconds when no X11 clients are connected. Thus,
## this script may run repeatedly throughout a single labwc session.
# Configure the X resource database if a file is provided
#
# NOTE: when Xwayland is launched lazily, an X11 client that triggers its
# launch may attempt to read the resource database before this command can be
# run. In that case, it is recommended to make a symlink to .Xdefaults:
#
# ln -s .Xresources "${HOME}/.Xdefaults"
#
# With this link in place, X11 applications will fall back to reading
# the .Xdefaults file directly when no resource database can be read from the
# server's root window properties.
#
# Invoking xrdb is still useful to pre-load the resource database for
# subsequent clients, because any additional clients launched while the X
# server remains alive will be able to query the database without resorting to
# filesystem access.
if [ -r "${HOME}/.Xresources" ] && command -v xrdb >/dev/null 2>&1; then
xrdb -merge "${HOME}/.Xresources"
fi