initial commit
This commit is contained in:
commit
e74305ac15
2
bin/mabox-labwc
Normal file
2
bin/mabox-labwc
Normal file
@ -0,0 +1,2 @@
|
||||
#!/bin/bash
|
||||
labwc -C $HOME/.config/mabox-labwc/
|
11
config/labwc/README
Normal file
11
config/labwc/README
Normal file
@ -0,0 +1,11 @@
|
||||
Config layout for ~/.config/labwc/
|
||||
- autostart
|
||||
- environment
|
||||
- menu.xml
|
||||
- rc.xml
|
||||
- shutdown
|
||||
- themerc-override
|
||||
- xinitrc
|
||||
|
||||
See `man labwc-config and `man labwc-theme` for further details.
|
||||
|
34
config/labwc/autostart
Normal file
34
config/labwc/autostart
Normal file
@ -0,0 +1,34 @@
|
||||
# Example autostart file
|
||||
|
||||
# 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
|
||||
# Example ~/.config/kanshi/config below:
|
||||
# profile {
|
||||
# output HDMI-A-1 position 1366,0
|
||||
# output eDP-1 position 0,0
|
||||
# }
|
||||
#kanshi >/dev/null 2>&1 &
|
||||
|
||||
# Launch a panel such as yambar or waybar.
|
||||
waybar >/dev/null 2>&1 &
|
||||
|
||||
# Enable notifications. Typically GNOME/KDE application notifications go
|
||||
# through the org.freedesktop.Notifications D-Bus API and require a client such
|
||||
# as mako to function correctly. Thunderbird is an example of this.
|
||||
mako >/dev/null 2>&1 &
|
||||
|
||||
# Lock screen after 5 minutes; turn off display after another 5 minutes.
|
||||
#
|
||||
# Note that in the context of idle system power management, it is *NOT* a good
|
||||
# idea to turn off displays by 'disabling outputs' for example by
|
||||
# `wlr-randr --output <whatever> --off` because this re-arranges views
|
||||
# (since a837fef). Instead use a wlr-output-power-management client such as
|
||||
# https://git.sr.ht/~leon_plickat/wlopm
|
||||
swayidle -w \
|
||||
timeout 300 'swaylock -f -c 000000' \
|
||||
timeout 600 'wlopm --off \*' \
|
||||
resume 'wlopm --on \*' \
|
||||
before-sleep 'swaylock -f -c 000000' >/dev/null 2>&1 &
|
77
config/labwc/environment
Normal file
77
config/labwc/environment
Normal file
@ -0,0 +1,77 @@
|
||||
##
|
||||
## Example ~/.config/labwc/environment file.
|
||||
## Uncomment lines starting with one '#' to suit your needs.
|
||||
##
|
||||
|
||||
##
|
||||
## Use the XKB_DEFAULT_LAYOUT variable to set the keyboard layout. For example
|
||||
## to start with Swedish keyboard layout set it to 'se'. If you are unsure what
|
||||
## your country code is, refer to the layout section of:
|
||||
## /usr/share/X11/xkb/rules/evdev.lst
|
||||
##
|
||||
## Multiple keyboard layouts can be set by comma-separating the country codes.
|
||||
## If a variant layout is needed, the syntax is layout(variant)
|
||||
## If multiple layouts are used, specify the toggle-keybind using
|
||||
## XKB_DEFAULT_OPTIONS as show below.
|
||||
##
|
||||
## For further details, see xkeyboard-config(7)
|
||||
##
|
||||
|
||||
# XKB_DEFAULT_LAYOUT=se
|
||||
# XKB_DEFAULT_LAYOUT=se,us(intl)
|
||||
# XKB_DEFAULT_OPTIONS=grp:alt_shift_toggle
|
||||
# XKB_DEFAULT_OPTIONS=grp:shift_caps_toggle
|
||||
|
||||
##
|
||||
## Set cursor theme and size. Find system icons themes with:
|
||||
## `find /usr/share/icons/ -type d -name "cursors"`
|
||||
##
|
||||
|
||||
# XCURSOR_THEME=breeze_cursors
|
||||
# XCURSOR_THEME=capitaine-cursors
|
||||
# XCURSOR_SIZE=24
|
||||
|
||||
##
|
||||
## Disable hardware cursors. Most users would not want to do this, but if you
|
||||
## are experiencing issues with disappearing cursors, this might fix it.
|
||||
##
|
||||
|
||||
# WLR_NO_HARDWARE_CURSORS=1
|
||||
|
||||
##
|
||||
## In order for labwc to work out of the box, the environment variable below
|
||||
## is set to "1" by default to avoid menus with incorrect offset and blank
|
||||
## windows with Java applications such as JetBrains and Intellij Idea.
|
||||
## See https://github.com/swaywm/sway/issues/595
|
||||
## labwc will not override any already set environment variables, so if you for
|
||||
## some reason do not want this, then just set it to "0" (not recommended, but
|
||||
## mentioned here for completeness).
|
||||
##
|
||||
|
||||
# _JAVA_AWT_WM_NONREPARENTING=0
|
||||
|
||||
##
|
||||
## This allows xdg-desktop-portal-wlr to function (e.g. for screen-recording).
|
||||
## 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=labwc:wlroots
|
||||
|
||||
##
|
||||
## This causes a virtual output to be created automatically whenever there
|
||||
## are no outputs around. This helps for cases like wayvnc so there is always
|
||||
## an output available to connect to. The name can be chosen freely but there
|
||||
## must be no duplicate output names, for this reason using VIRTUAL-x or a
|
||||
## physical connector name like HDMI-A-1 is not recommended as wlroots may
|
||||
## want to create outputs with those names later on which would then fail.
|
||||
##
|
||||
## Using an output name that starts with NOOP- has the additional benefit
|
||||
## that wayvnc will detect it being a virtual output and allow clients to
|
||||
## resize the output to match the client resolution.
|
||||
##
|
||||
|
||||
# LABWC_FALLBACK_OUTPUT=NOOP-fallback
|
||||
|
96
config/labwc/menu.xml
Normal file
96
config/labwc/menu.xml
Normal file
@ -0,0 +1,96 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<openbox_menu>
|
||||
<!-- Note: for localization support of menu items "client-menu" has to be removed here -->
|
||||
<menu id="client-menu">
|
||||
<item label="Minimize">
|
||||
<action name="Iconify" />
|
||||
</item>
|
||||
<item label="Maximize">
|
||||
<action name="ToggleMaximize" />
|
||||
</item>
|
||||
<item label="Fullscreen">
|
||||
<action name="ToggleFullscreen" />
|
||||
</item>
|
||||
<item label="Roll Up/Down">
|
||||
<action name="ToggleShade" />
|
||||
</item>
|
||||
<item label="Decorations">
|
||||
<action name="ToggleDecorations" />
|
||||
</item>
|
||||
<item label="Always on Top">
|
||||
<action name="ToggleAlwaysOnTop" />
|
||||
</item>
|
||||
<!--
|
||||
Any menu with the id "workspaces" will be hidden
|
||||
if there is only a single workspace available.
|
||||
-->
|
||||
<menu id="workspaces" label="Workspace">
|
||||
<item label="Move Left">
|
||||
<action name="SendToDesktop" to="left" />
|
||||
</item>
|
||||
<item label="Move Right">
|
||||
<action name="SendToDesktop" to="right" />
|
||||
</item>
|
||||
<separator />
|
||||
<item label="Always on Visible Workspace">
|
||||
<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="File Manager">
|
||||
<action name="Execute" command="pcmanfm" />
|
||||
</item>
|
||||
<item label="Web browser">
|
||||
<action name="Execute" command="firefox" />
|
||||
</item>
|
||||
<item label="Terminal">
|
||||
<action name="Execute" command="foot" />
|
||||
</item>
|
||||
<item label="Labwc Tweaks">
|
||||
<action name="Execute" command="labwc-tweaks" />
|
||||
</item>
|
||||
<item label="Reconfigure">
|
||||
<action name="Reconfigure" />
|
||||
</item>
|
||||
<item label="Exit">
|
||||
<action name="Exit" />
|
||||
</item>
|
||||
<item label="Poweroff">
|
||||
<action name="Execute" command="systemctl -i poweroff" />
|
||||
</item>
|
||||
</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>
|
||||
<item label="Exit">
|
||||
<action name="Exit" />
|
||||
</item>
|
||||
</menu>
|
||||
|
||||
</openbox_menu>
|
41
config/labwc/rc.xml
Normal file
41
config/labwc/rc.xml
Normal file
@ -0,0 +1,41 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<!--
|
||||
This is a very simple config file with many options missing. For a complete
|
||||
set of options with comments, see docs/rc.xml.all
|
||||
-->
|
||||
|
||||
<labwc_config>
|
||||
|
||||
<theme>
|
||||
<name></name>
|
||||
<cornerRadius>8</cornerRadius>
|
||||
<font name="sans" size="10" />
|
||||
</theme>
|
||||
|
||||
<keyboard>
|
||||
<default />
|
||||
<!-- Use a different terminal emulator -->
|
||||
<keybind key="W-Return">
|
||||
<action name="Execute" command="foot" />
|
||||
</keybind>
|
||||
<!--
|
||||
Remove a previously defined keybind
|
||||
A shorter alternative is <keybind key="W-F4" />
|
||||
-->
|
||||
<keybind key="W-F4">
|
||||
<action name="None" />
|
||||
</keybind>
|
||||
</keyboard>
|
||||
|
||||
<mouse>
|
||||
<default />
|
||||
<!-- Show a custom menu on desktop right click -->
|
||||
<context name="Root">
|
||||
<mousebind button="Right" action="Press">
|
||||
<action name="ShowMenu" menu="some-custom-menu" />
|
||||
</mousebind>
|
||||
</context>
|
||||
</mouse>
|
||||
|
||||
</labwc_config>
|
691
config/labwc/rc.xml.all
Normal file
691
config/labwc/rc.xml.all
Normal file
@ -0,0 +1,691 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<!--
|
||||
This file contains all supported config elements & attributes with
|
||||
default values.
|
||||
-->
|
||||
|
||||
<labwc_config>
|
||||
|
||||
<core>
|
||||
<decoration>server</decoration>
|
||||
<gap>0</gap>
|
||||
<adaptiveSync>no</adaptiveSync>
|
||||
<allowTearing>no</allowTearing>
|
||||
<reuseOutputMode>no</reuseOutputMode>
|
||||
<xwaylandPersistence>yes</xwaylandPersistence>
|
||||
</core>
|
||||
|
||||
<placement>
|
||||
<policy>cascade</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>
|
||||
<font place="ActiveWindow">
|
||||
<name>sans</name>
|
||||
<size>10</size>
|
||||
<slant>normal</slant>
|
||||
<weight>normal</weight>
|
||||
</font>
|
||||
<font place="InactiveWindow">
|
||||
<name>sans</name>
|
||||
<size>10</size>
|
||||
<slant>normal</slant>
|
||||
<weight>normal</weight>
|
||||
</font>
|
||||
<font place="MenuHeader">
|
||||
<name>sans</name>
|
||||
<size>10</size>
|
||||
<slant>normal</slant>
|
||||
<weight>normal</weight>
|
||||
</font>
|
||||
<font place="MenuItem">
|
||||
<name>sans</name>
|
||||
<size>10</size>
|
||||
<slant>normal</slant>
|
||||
<weight>normal</weight>
|
||||
</font>
|
||||
<font place="OnScreenDisplay">
|
||||
<name>sans</name>
|
||||
<size>10</size>
|
||||
<slant>normal</slant>
|
||||
<weight>normal</weight>
|
||||
</font>
|
||||
</theme>
|
||||
|
||||
<!--
|
||||
Just as for window-rules, 'identifier' relates to app_id for native Wayland
|
||||
windows and WM_CLASS for XWayland clients.
|
||||
-->
|
||||
<windowSwitcher show="yes" preview="yes" outlines="yes" allWorkspaces="no">
|
||||
<fields>
|
||||
<field content="type" width="25%" />
|
||||
<field content="trimmed_identifier" width="25%" />
|
||||
<!-- <field content="identifier" width="25%" /> -->
|
||||
<field content="title" width="50%" />
|
||||
</fields>
|
||||
</windowSwitcher>
|
||||
|
||||
<!--
|
||||
When using all workspaces option of window switcher, there are extra fields
|
||||
that can be used, workspace (variable length), state (single space),
|
||||
type_short (3 spaces), output (variable length), and can be set up
|
||||
like this. Note: output only shows if more than one output available.
|
||||
|
||||
<windowSwitcher show="yes" preview="no" outlines="no" allWorkspaces="yes">
|
||||
<fields>
|
||||
<field content="workspace" width="5%" />
|
||||
<field content="state" width="3%" />
|
||||
<field content="type_short" width="3%" />
|
||||
<field content="output" width="9%" />
|
||||
<field content="identifier" width="30%" />
|
||||
<field content="title" width="50%" />
|
||||
</fields>
|
||||
</windowSwitcher>
|
||||
|
||||
custom format - (introduced in 0.7.2)
|
||||
It allows one to replace all the above "fields" with one line, using a
|
||||
printf style format. For field explanations, "man 5 labwc-config".
|
||||
|
||||
The example below would print "foobar",then type of window (wayland, X),
|
||||
then state of window (M/m/F), then output (shows if more than 1 active),
|
||||
then workspace name, then identifier/app-id, then the window title.
|
||||
Uses 100% of OSD window width.
|
||||
|
||||
<windowSwitcher show="yes" preview="no" outlines="no" allWorkspaces="yes">
|
||||
<fields>
|
||||
<field content="custom" format="foobar %b %3s %-10o %-20W %-10i %t" width="100%" />
|
||||
</fields>
|
||||
</windowSwitcher>
|
||||
-->
|
||||
|
||||
<!-- edge strength is in pixels -->
|
||||
<resistance>
|
||||
<screenEdgeStrength>20</screenEdgeStrength>
|
||||
<windowEdgeStrength>20</windowEdgeStrength>
|
||||
<!-- resistance for maximized/tiled windows -->
|
||||
<unSnapThreshold>20</unSnapThreshold>
|
||||
<!-- resistance for vertically/horizontally maximized windows -->
|
||||
<unMaximizeThreshold>150</unMaximizeThreshold>
|
||||
</resistance>
|
||||
|
||||
<resize>
|
||||
<!-- Show a simple resize and move indicator -->
|
||||
<popupShow>Never</popupShow>
|
||||
<!-- Let client redraw its contents while resizing -->
|
||||
<drawContents>yes</drawContents>
|
||||
</resize>
|
||||
|
||||
<focus>
|
||||
<followMouse>no</followMouse>
|
||||
<followMouseRequiresMovement>yes</followMouseRequiresMovement>
|
||||
<raiseOnFocus>no</raiseOnFocus>
|
||||
</focus>
|
||||
|
||||
<snapping>
|
||||
<!-- Set range to 0 to disable window snapping completely -->
|
||||
<range>1</range>
|
||||
<overlay enabled="yes">
|
||||
<delay inner="500" outer="500" />
|
||||
</overlay>
|
||||
<topMaximize>yes</topMaximize>
|
||||
<notifyClient>always</notifyClient>
|
||||
</snapping>
|
||||
|
||||
<!--
|
||||
Workspaces can be configured like this:
|
||||
<desktops>
|
||||
<popupTime>1000</popupTime>
|
||||
<names>
|
||||
<name>Workspace 1</name>
|
||||
<name>Workspace 2</name>
|
||||
<name>Workspace 3</name>
|
||||
<name>Workspace 4</name>
|
||||
</names>
|
||||
</desktops>
|
||||
|
||||
Or it can also be configured like this:
|
||||
<desktops number="4" />
|
||||
|
||||
Or like this:
|
||||
<desktops>
|
||||
<popupTime>500</popupTime>
|
||||
<number>5</number>
|
||||
<prefix>ws</prefix>
|
||||
</desktops>
|
||||
|
||||
Or:
|
||||
<desktops number="4" popupTime="500" prefix="ws" />
|
||||
|
||||
popupTime defaults to 1000 so could be left out.
|
||||
Set to 0 to completely disable the workspace OSD.
|
||||
|
||||
prefix defaults to "Workspace" when using number instead of names.
|
||||
|
||||
Use GoToDesktop left | right to switch workspaces.
|
||||
Use SendToDesktop left | right to move windows.
|
||||
See man labwc-actions for further information.
|
||||
-->
|
||||
<desktops>
|
||||
<popupTime>1000</popupTime>
|
||||
<names>
|
||||
<name>Default</name>
|
||||
</names>
|
||||
</desktops>
|
||||
|
||||
<!--
|
||||
<margin> can be used to reserve space where new/maximized/tiled
|
||||
windows will not be placed. Clients using layer-shell protocol reserve
|
||||
space automatically, so <margin> is only intended for other, specialist
|
||||
cases.
|
||||
|
||||
If output is left empty, the margin will be applied to all outputs.
|
||||
|
||||
<margin top="" bottom="" left="" right="" output="" />
|
||||
-->
|
||||
|
||||
<!-- Percent based regions based on output usable area, % char is required -->
|
||||
<!--
|
||||
<regions>
|
||||
<region name="top-left" x="0%" y="0%" height="50%" width="50%" />
|
||||
<region name="top" x="0%" y="0%" height="50%" width="100%" />
|
||||
<region name="top-right" x="50%" y="0%" height="50%" width="50%" />
|
||||
<region name="left" x="0%" y="0%" height="100%" width="50%" />
|
||||
<region name="center" x="10%" y="10%" height="80%" width="80%" />
|
||||
<region name="right" x="50%" y="0%" height="100%" width="50%" />
|
||||
<region name="bottom-left" x="0%" y="50%" height="50%" width="50%" />
|
||||
<region name="bottom" x="0%" y="50%" height="50%" width="100%" />
|
||||
<region name="bottom-right" x="50%" y="50%" height="50%" width="50%" />
|
||||
</regions>
|
||||
-->
|
||||
|
||||
<!--
|
||||
Keybind actions are specified in labwc-actions(5)
|
||||
The following keybind modifiers are supported:
|
||||
W - window/super/logo
|
||||
A - alt
|
||||
C - ctrl
|
||||
S - shift
|
||||
|
||||
Use <keyboard><default /> to load all the default keybinds (those listed
|
||||
below). If the default keybinds are largely what you want, a sensible
|
||||
approach could be to start the <keyboard> section with a <default />
|
||||
element, and then (re-)define any special binds you need such as launching
|
||||
your favourite terminal or application launcher. See rc.xml for an example.
|
||||
-->
|
||||
<keyboard>
|
||||
<numlock>on</numlock>
|
||||
<layoutScope>global</layoutScope>
|
||||
<repeatRate>25</repeatRate>
|
||||
<repeatDelay>600</repeatDelay>
|
||||
<keybind key="A-Tab">
|
||||
<action name="NextWindow" />
|
||||
</keybind>
|
||||
<keybind key="W-Return">
|
||||
<action name="Execute" command="foot" />
|
||||
</keybind>
|
||||
<keybind key="A-F3">
|
||||
<action name="Execute" command="bemenu-run" />
|
||||
</keybind>
|
||||
<keybind key="A-F4">
|
||||
<action name="Close" />
|
||||
</keybind>
|
||||
<keybind key="W-a">
|
||||
<action name="ToggleMaximize" />
|
||||
</keybind>
|
||||
<keybind key="A-Left">
|
||||
<action name="MoveToEdge" direction="left" />
|
||||
</keybind>
|
||||
<keybind key="A-Right">
|
||||
<action name="MoveToEdge" direction="right" />
|
||||
</keybind>
|
||||
<keybind key="A-Up">
|
||||
<action name="MoveToEdge" direction="up" />
|
||||
</keybind>
|
||||
<keybind key="A-Down">
|
||||
<action name="MoveToEdge" direction="down" />
|
||||
</keybind>
|
||||
<keybind key="W-Left">
|
||||
<action name="SnapToEdge" direction="left" />
|
||||
</keybind>
|
||||
<keybind key="W-Right">
|
||||
<action name="SnapToEdge" direction="right" />
|
||||
</keybind>
|
||||
<keybind key="W-Up">
|
||||
<action name="SnapToEdge" direction="up" />
|
||||
</keybind>
|
||||
<keybind key="W-Down">
|
||||
<action name="SnapToEdge" direction="down" />
|
||||
</keybind>
|
||||
<keybind key="A-Space">
|
||||
<action name="ShowMenu" menu="client-menu" atCursor="no" />
|
||||
</keybind>
|
||||
<keybind key="XF86_AudioLowerVolume">
|
||||
<action name="Execute" command="amixer sset Master 5%-" />
|
||||
</keybind>
|
||||
<keybind key="XF86_AudioRaiseVolume">
|
||||
<action name="Execute" command="amixer sset Master 5%+" />
|
||||
</keybind>
|
||||
<keybind key="XF86_AudioMute">
|
||||
<action name="Execute" command="amixer sset Master toggle" />
|
||||
</keybind>
|
||||
<keybind key="XF86_MonBrightnessUp">
|
||||
<action name="Execute" command="brightnessctl set +10%" />
|
||||
</keybind>
|
||||
<keybind key="XF86_MonBrightnessDown">
|
||||
<action name="Execute" command="brightnessctl set 10%-" />
|
||||
</keybind>
|
||||
<!-- SnapToRegion via W-Numpad -->
|
||||
<!--
|
||||
<keybind key="W-KP_7">
|
||||
<action name="SnapToRegion" region="top-left" />
|
||||
</keybind>
|
||||
<keybind key="W-KP_8">
|
||||
<action name="SnapToRegion" region="top" />
|
||||
</keybind>
|
||||
<keybind key="W-KP_9">
|
||||
<action name="SnapToRegion" region="top-right" />
|
||||
</keybind>
|
||||
<keybind key="W-KP_4">
|
||||
<action name="SnapToRegion" region="left" />
|
||||
</keybind>
|
||||
<keybind key="W-KP_5">
|
||||
<action name="SnapToRegion" region="center" />
|
||||
</keybind>
|
||||
<keybind key="W-KP_6">
|
||||
<action name="SnapToRegion" region="right" />
|
||||
</keybind>
|
||||
<keybind key="W-KP_1">
|
||||
<action name="SnapToRegion" region="bottom-left" />
|
||||
</keybind>
|
||||
<keybind key="W-KP_2">
|
||||
<action name="SnapToRegion" region="bottom" />
|
||||
</keybind>
|
||||
<keybind key="W-KP_3">
|
||||
<action name="SnapToRegion" region="bottom-right" />
|
||||
</keybind>
|
||||
-->
|
||||
<!-- 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>
|
||||
|
||||
<!--
|
||||
Multiple <mousebind> can exist within one <context>
|
||||
Multiple <actions> can exist within one <mousebind>
|
||||
|
||||
Use <mouse><default /> to load all the default mousebinds (those listed
|
||||
below). If the default mousebinds are largely what you want, a sensible
|
||||
approach could be to start the <mouse> section with a <default />
|
||||
element, and then (re-)define any special binds you need such as launching
|
||||
a custom menu when right-clicking on your desktop. See rc.xml for an
|
||||
example.
|
||||
-->
|
||||
<mouse>
|
||||
|
||||
<!-- time is in ms -->
|
||||
<doubleClickTime>500</doubleClickTime>
|
||||
|
||||
<context name="Frame">
|
||||
<mousebind button="A-Left" action="Press">
|
||||
<action name="Focus" />
|
||||
<action name="Raise" />
|
||||
</mousebind>
|
||||
<mousebind button="A-Left" action="Drag">
|
||||
<action name="Move" />
|
||||
</mousebind>
|
||||
<mousebind button="A-Right" action="Press">
|
||||
<action name="Focus" />
|
||||
<action name="Raise" />
|
||||
</mousebind>
|
||||
<mousebind button="A-Right" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Top">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
<context name="Left">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
<context name="Right">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
<context name="Bottom">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
<context name="TRCorner">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
<context name="BRCorner">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
<context name="TLCorner">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
<context name="BLCorner">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="TitleBar">
|
||||
<mousebind button="Left" action="Press">
|
||||
<action name="Focus" />
|
||||
<action name="Raise" />
|
||||
</mousebind>
|
||||
<mousebind button="Right" action="Click">
|
||||
<action name="Focus" />
|
||||
<action name="Raise" />
|
||||
</mousebind>
|
||||
<mousebind direction="Up" action="Scroll">
|
||||
<action name="Unshade" />
|
||||
<action name="Focus" />
|
||||
</mousebind>
|
||||
<mousebind direction="Down" action="Scroll">
|
||||
<action name="Unfocus" />
|
||||
<action name="Shade" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Title">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Move" />
|
||||
</mousebind>
|
||||
<mousebind button="Left" action="DoubleClick">
|
||||
<action name="ToggleMaximize" />
|
||||
</mousebind>
|
||||
<mousebind button="Right" action="Click">
|
||||
<action name="ShowMenu" menu="client-menu" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Maximize">
|
||||
<mousebind button="Left" action="Click">
|
||||
<action name="ToggleMaximize" />
|
||||
</mousebind>
|
||||
<mousebind button="Right" action="Click">
|
||||
<action name="ToggleMaximize" direction="horizontal" />
|
||||
</mousebind>
|
||||
<mousebind button="Middle" action="Click">
|
||||
<action name="ToggleMaximize" direction="vertical" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="WindowMenu">
|
||||
<mousebind button="Left" action="Click">
|
||||
<action name="ShowMenu" menu="client-menu" atCursor="no" />
|
||||
</mousebind>
|
||||
<mousebind button="Right" action="Click">
|
||||
<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>
|
||||
|
||||
<context name="Iconify">
|
||||
<mousebind button="Left" action="Click">
|
||||
<action name="Iconify" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Close">
|
||||
<mousebind button="Left" action="Click">
|
||||
<action name="Close" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Client">
|
||||
<mousebind button="Left" action="Press">
|
||||
<action name="Focus" />
|
||||
<action name="Raise" />
|
||||
</mousebind>
|
||||
<mousebind button="Middle" action="Press">
|
||||
<action name="Focus" />
|
||||
<action name="Raise" />
|
||||
</mousebind>
|
||||
<mousebind button="Right" action="Press">
|
||||
<action name="Focus" />
|
||||
<action name="Raise" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Root">
|
||||
<mousebind button="Left" action="Press">
|
||||
<action name="ShowMenu" menu="root-menu" />
|
||||
</mousebind>
|
||||
<mousebind button="Right" action="Press">
|
||||
<action name="ShowMenu" menu="root-menu" />
|
||||
</mousebind>
|
||||
<mousebind button="Middle" action="Press">
|
||||
<action name="ShowMenu" menu="root-menu" />
|
||||
<!-- 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" />
|
||||
</mousebind>
|
||||
<mousebind direction="Down" action="Scroll">
|
||||
<action name="GoToDesktop" to="right" wrap="yes" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
</mouse>
|
||||
|
||||
<!--
|
||||
A touch configuration can be bound to a specific device. If device
|
||||
name is left empty, the touch configuration applies to all touch
|
||||
devices or functions as a fallback. Multiple touch configurations
|
||||
can exist.
|
||||
See the libinput device section for obtaining the device names.
|
||||
|
||||
Direct cursor movement to a specified output. If the compositor is
|
||||
running in nested mode, this does not take effect.
|
||||
|
||||
If mouseEmulation is enabled, all touch up/down/motion events are
|
||||
translated to mouse button and motion events.
|
||||
-->
|
||||
<touch deviceName="" mapToOutput="" mouseEmulation="no"/>
|
||||
|
||||
<!--
|
||||
The tablet cursor movement can be restricted to a single output.
|
||||
If output is left empty or the output does not exists, the tablet
|
||||
will span all outputs.
|
||||
|
||||
The tablet orientation can be changed in 90 degree steps, thus
|
||||
*rotate* can be set to [0|90|180|270]. Rotation will be applied
|
||||
after applying tablet area transformation.
|
||||
|
||||
The active tablet area can be specified by setting the *top*/*left*
|
||||
coordinate (in mm) and/or *width*/*height* (in mm). If width or
|
||||
height are omitted or default (0.0), width/height will be set to
|
||||
the remaining width/height seen from top/left.
|
||||
|
||||
The tablet can be forced to always use mouse emulation. This prevents
|
||||
tablet specific restrictions, e.g. no support for drag&drop, but also
|
||||
omits tablet specific features like reporting pen pressure.
|
||||
|
||||
Pen buttons emulate regular mouse buttons. The pen *button* can be any
|
||||
of [Stylus|Stylus2|Stylus3] and can be mapped to mouse buttons
|
||||
[Right|Middle|Side]. Tablet pad buttons [Pad|Pad2|Pad3|..|Pad9] also
|
||||
emulate regular mouse buttons and can be mapped to any mouse button.
|
||||
When using mouse emulation, the pen tip [tip] and the stylus buttons
|
||||
can be set to any available mouse button [Left|Right|Middle|..|Task].
|
||||
-->
|
||||
<tablet mapToOutput="" rotate="0" mouseEmulation="no">
|
||||
<!-- Active area dimensions are in mm -->
|
||||
<area top="0.0" left="0.0" width="0.0" height="0.0" />
|
||||
<map button="Tip" to="Left" />
|
||||
<map button="Stylus" to="Right" />
|
||||
<map button="Stylus2" to="Middle" />
|
||||
</tablet>
|
||||
|
||||
<!--
|
||||
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
|
||||
running *libinput list-devices* as root or member of the input group.
|
||||
|
||||
Tap is set to *yes* by default. All others are left blank in order to use
|
||||
device defaults.
|
||||
|
||||
All values are [yes|no] except for:
|
||||
- pointerSpeed [-1.0 to 1.0]
|
||||
- accelProfile [flat|adaptive]
|
||||
- tapButtonMap [lrm|lmr]
|
||||
- clickMethod [none|buttonAreas|clickfinger]
|
||||
- sendEventsMode [yes|no|disabledOnExternalMouse]
|
||||
- calibrationMatrix [six float values split by space]
|
||||
- scrollFactor [float]
|
||||
-->
|
||||
<libinput>
|
||||
<device category="default">
|
||||
<naturalScroll></naturalScroll>
|
||||
<leftHanded></leftHanded>
|
||||
<pointerSpeed></pointerSpeed>
|
||||
<accelProfile></accelProfile>
|
||||
<tap>yes</tap>
|
||||
<tapButtonMap></tapButtonMap>
|
||||
<tapAndDrag></tapAndDrag>
|
||||
<dragLock></dragLock>
|
||||
<middleEmulation></middleEmulation>
|
||||
<disableWhileTyping></disableWhileTyping>
|
||||
<clickMethod></clickMethod>
|
||||
<sendEventsMode></sendEventsMode>
|
||||
<calibrationMatrix></calibrationMatrix>
|
||||
<scrollFactor>1.0</scrollFactor>
|
||||
</device>
|
||||
</libinput>
|
||||
|
||||
<!--
|
||||
# Window Rules
|
||||
# - Criteria can consist of 'identifier', 'title', 'sandboxEngine' or
|
||||
# 'sandboxAppId'. AND logic is used when multiple options are specified.
|
||||
# - 'identifier' relates to app_id for native Wayland windows and
|
||||
# WM_CLASS for XWayland clients.
|
||||
# - Criteria can also contain `matchOnce="true"` meaning that the rule
|
||||
# must only apply to the first instance of the window with that
|
||||
# particular 'identifier' or 'title'.
|
||||
# - Matching is case-insensitive and is performed using shell wildcard
|
||||
# patterns (see glob(7)) so '\*' (not between brackets) matches any 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"/>
|
||||
</windowRules>
|
||||
|
||||
# Example below for `lxqt-panel` and `pcmanfm-qt \-\-desktop`
|
||||
# where 'matchOnce' is used to avoid applying rule to the panel
|
||||
# configuration window with the same 'app_id'.
|
||||
|
||||
<windowRules>
|
||||
<windowRule identifier="lxqt-panel" matchOnce="true">
|
||||
<skipTaskbar>yes</skipTaskbar>
|
||||
<action name="MoveTo" x="0" y="0" />
|
||||
<action name="ToggleAlwaysOnTop"/>
|
||||
</windowRule>
|
||||
<windowRule title="pcmanfm-desktop*">
|
||||
<skipTaskbar>yes</skipTaskbar>
|
||||
<skipWindowSwitcher>yes</skipWindowSwitcher>
|
||||
<fixedPosition>yes</fixedPosition>
|
||||
<action name="MoveTo" x="0" y="0" />
|
||||
<action name="ToggleAlwaysOnBottom"/>
|
||||
</windowRule>
|
||||
<windowRule identifier="org.qutebrowser.qutebrowser">
|
||||
<action name="ResizeTo" width="1024" height="800" />
|
||||
<action name="AutoPlace"/>
|
||||
</windowRule>
|
||||
</windowRules>
|
||||
-->
|
||||
|
||||
<menu>
|
||||
<ignoreButtonReleasePeriod>250</ignoreButtonReleasePeriod>
|
||||
</menu>
|
||||
|
||||
<!--
|
||||
Magnifier settings
|
||||
'width' sets the width in pixels of the magnifier window.
|
||||
'height' sets the height in pixels of the magnifier window.
|
||||
'initScale' sets the initial magnification factor at boot.
|
||||
'increment' sets the amount by which the magnification factor
|
||||
changes when 'ZoomIn' or 'ZoomOut' are called.
|
||||
'useFilter' sets whether to use a bilinear filter on the magnified
|
||||
output or simply to take nearest pixel.
|
||||
-->
|
||||
<magnifier>
|
||||
<width>400</width>
|
||||
<height>400</height>
|
||||
<initScale>2.0</initScale>
|
||||
<increment>0.2</increment>
|
||||
<useFilter>true</useFilter>
|
||||
</magnifier>
|
||||
|
||||
</labwc_config>
|
4
config/labwc/shutdown
Normal file
4
config/labwc/shutdown
Normal file
@ -0,0 +1,4 @@
|
||||
# Example shutdown file
|
||||
|
||||
# This file is executed as a shell script when labwc is preparing to terminate itself.
|
||||
# For further details see labwc-config(5).
|
115
config/labwc/themerc
Normal file
115
config/labwc/themerc
Normal file
@ -0,0 +1,115 @@
|
||||
# This file contains all themerc options with default values
|
||||
#
|
||||
# System-wide and local themes can be overridden by creating a copy of this
|
||||
# file and renaming it to $HOME/.config/labwc/themerc-override. Be careful
|
||||
# though - if you only want to override a small number of specific options,
|
||||
# make sure all other lines are commented out or deleted.
|
||||
|
||||
# general
|
||||
border.width: 1
|
||||
|
||||
#
|
||||
# The global padding.{width,height} of openbox are not supported because
|
||||
# the default labwc button geometry deviates from that of openbox
|
||||
#
|
||||
window.titlebar.padding.width: 0
|
||||
window.titlebar.padding.height: 0
|
||||
|
||||
# window border
|
||||
window.active.border.color: #aaaaaa
|
||||
window.inactive.border.color: #aaaaaa
|
||||
|
||||
# ToggleKeybinds status indicator
|
||||
window.active.indicator.toggled-keybind.color: #ff0000
|
||||
|
||||
# window titlebar background
|
||||
window.active.title.bg.color: #e1dedb
|
||||
window.inactive.title.bg.color: #f6f5f4
|
||||
|
||||
# window titlebar text
|
||||
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
|
||||
|
||||
# window drop-shadows
|
||||
window.active.shadow.size: 60
|
||||
window.inactive.shadow.size: 40
|
||||
window.active.shadow.color: #00000060
|
||||
window.inactive.shadow.color: #00000040
|
||||
|
||||
# Note that "menu", "iconify", "max", "close" buttons colors can be defined
|
||||
# individually by inserting the type after the button node, for example:
|
||||
#
|
||||
# window.active.button.iconify.unpressed.image.color: #333333
|
||||
|
||||
# menu
|
||||
menu.overlap.x: 0
|
||||
menu.overlap.y: 0
|
||||
menu.width.min: 20
|
||||
menu.width.max: 200
|
||||
menu.border.width: 1
|
||||
menu.border.color: #aaaaaa
|
||||
menu.items.bg.color: #fcfbfa
|
||||
menu.items.text.color: #000000
|
||||
menu.items.active.bg.color: #e1dedb
|
||||
menu.items.active.text.color: #000000
|
||||
menu.items.padding.x: 7
|
||||
menu.items.padding.y: 4
|
||||
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
|
||||
osd.border.color: #000000
|
||||
osd.border.width: 1
|
||||
osd.label.text.color: #000000
|
||||
|
||||
# width can be set as percent (of screen width)
|
||||
# example 50% or 75% instead of 600, max 100%
|
||||
osd.window-switcher.width: 600
|
||||
|
||||
osd.window-switcher.padding: 4
|
||||
osd.window-switcher.item.padding.x: 10
|
||||
osd.window-switcher.item.padding.y: 1
|
||||
osd.window-switcher.item.active.border.width: 2
|
||||
osd.window-switcher.preview.border.width: 1
|
||||
osd.window-switcher.preview.border.color: #dddda6,#000000,#dddda6
|
||||
|
||||
osd.workspace-switcher.boxes.width: 20
|
||||
osd.workspace-switcher.boxes.height: 20
|
||||
|
||||
# Default values for following options change depending on the rendering
|
||||
# backend. For software-based renderers, *.bg.enabled is "no" and
|
||||
# *.border.enabled is "yes" if not set. For hardware-based renderers,
|
||||
# *.bg.enabled is "yes" and *.border.enabled is "no" if not set.
|
||||
# Setting *.bg.enabled to "yes" for software-based renderer with translucent
|
||||
# background color may severely impact performance.
|
||||
#
|
||||
# snapping.overlay.region.bg.enabled:
|
||||
# snapping.overlay.edge.bg.enabled:
|
||||
# snapping.overlay.region.border.enabled:
|
||||
# snapping.overlay.edge.border.enabled:
|
||||
|
||||
snapping.overlay.region.bg.color: #8080b380
|
||||
snapping.overlay.edge.bg.color: #8080b380
|
||||
snapping.overlay.region.border.width: 1
|
||||
snapping.overlay.edge.border.width: 1
|
||||
snapping.overlay.region.border.color: #dddda6,#000000,#dddda6
|
||||
snapping.overlay.edge.border.color: #dddda6,#000000,#dddda6
|
11
config/mabox-labwc/README
Normal file
11
config/mabox-labwc/README
Normal file
@ -0,0 +1,11 @@
|
||||
Config layout for ~/.config/labwc/
|
||||
- autostart
|
||||
- environment
|
||||
- menu.xml
|
||||
- rc.xml
|
||||
- shutdown
|
||||
- themerc-override
|
||||
- xinitrc
|
||||
|
||||
See `man labwc-config and `man labwc-theme` for further details.
|
||||
|
34
config/mabox-labwc/autostart
Normal file
34
config/mabox-labwc/autostart
Normal file
@ -0,0 +1,34 @@
|
||||
# Example autostart file
|
||||
|
||||
# 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
|
||||
# Example ~/.config/kanshi/config below:
|
||||
# profile {
|
||||
# output HDMI-A-1 position 1366,0
|
||||
# output eDP-1 position 0,0
|
||||
# }
|
||||
#kanshi >/dev/null 2>&1 &
|
||||
|
||||
# Launch a panel such as yambar or waybar.
|
||||
waybar >/dev/null 2>&1 &
|
||||
|
||||
# Enable notifications. Typically GNOME/KDE application notifications go
|
||||
# through the org.freedesktop.Notifications D-Bus API and require a client such
|
||||
# as mako to function correctly. Thunderbird is an example of this.
|
||||
mako >/dev/null 2>&1 &
|
||||
|
||||
# Lock screen after 5 minutes; turn off display after another 5 minutes.
|
||||
#
|
||||
# Note that in the context of idle system power management, it is *NOT* a good
|
||||
# idea to turn off displays by 'disabling outputs' for example by
|
||||
# `wlr-randr --output <whatever> --off` because this re-arranges views
|
||||
# (since a837fef). Instead use a wlr-output-power-management client such as
|
||||
# https://git.sr.ht/~leon_plickat/wlopm
|
||||
swayidle -w \
|
||||
timeout 300 'swaylock -f -c 000000' \
|
||||
timeout 600 'wlopm --off \*' \
|
||||
resume 'wlopm --on \*' \
|
||||
before-sleep 'swaylock -f -c 000000' >/dev/null 2>&1 &
|
77
config/mabox-labwc/environment
Normal file
77
config/mabox-labwc/environment
Normal file
@ -0,0 +1,77 @@
|
||||
##
|
||||
## Example ~/.config/labwc/environment file.
|
||||
## Uncomment lines starting with one '#' to suit your needs.
|
||||
##
|
||||
|
||||
##
|
||||
## Use the XKB_DEFAULT_LAYOUT variable to set the keyboard layout. For example
|
||||
## to start with Swedish keyboard layout set it to 'se'. If you are unsure what
|
||||
## your country code is, refer to the layout section of:
|
||||
## /usr/share/X11/xkb/rules/evdev.lst
|
||||
##
|
||||
## Multiple keyboard layouts can be set by comma-separating the country codes.
|
||||
## If a variant layout is needed, the syntax is layout(variant)
|
||||
## If multiple layouts are used, specify the toggle-keybind using
|
||||
## XKB_DEFAULT_OPTIONS as show below.
|
||||
##
|
||||
## For further details, see xkeyboard-config(7)
|
||||
##
|
||||
|
||||
# XKB_DEFAULT_LAYOUT=se
|
||||
# XKB_DEFAULT_LAYOUT=se,us(intl)
|
||||
# XKB_DEFAULT_OPTIONS=grp:alt_shift_toggle
|
||||
# XKB_DEFAULT_OPTIONS=grp:shift_caps_toggle
|
||||
|
||||
##
|
||||
## Set cursor theme and size. Find system icons themes with:
|
||||
## `find /usr/share/icons/ -type d -name "cursors"`
|
||||
##
|
||||
|
||||
# XCURSOR_THEME=breeze_cursors
|
||||
# XCURSOR_THEME=capitaine-cursors
|
||||
# XCURSOR_SIZE=24
|
||||
|
||||
##
|
||||
## Disable hardware cursors. Most users would not want to do this, but if you
|
||||
## are experiencing issues with disappearing cursors, this might fix it.
|
||||
##
|
||||
|
||||
# WLR_NO_HARDWARE_CURSORS=1
|
||||
|
||||
##
|
||||
## In order for labwc to work out of the box, the environment variable below
|
||||
## is set to "1" by default to avoid menus with incorrect offset and blank
|
||||
## windows with Java applications such as JetBrains and Intellij Idea.
|
||||
## See https://github.com/swaywm/sway/issues/595
|
||||
## labwc will not override any already set environment variables, so if you for
|
||||
## some reason do not want this, then just set it to "0" (not recommended, but
|
||||
## mentioned here for completeness).
|
||||
##
|
||||
|
||||
# _JAVA_AWT_WM_NONREPARENTING=0
|
||||
|
||||
##
|
||||
## This allows xdg-desktop-portal-wlr to function (e.g. for screen-recording).
|
||||
## 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=labwc:wlroots
|
||||
|
||||
##
|
||||
## This causes a virtual output to be created automatically whenever there
|
||||
## are no outputs around. This helps for cases like wayvnc so there is always
|
||||
## an output available to connect to. The name can be chosen freely but there
|
||||
## must be no duplicate output names, for this reason using VIRTUAL-x or a
|
||||
## physical connector name like HDMI-A-1 is not recommended as wlroots may
|
||||
## want to create outputs with those names later on which would then fail.
|
||||
##
|
||||
## Using an output name that starts with NOOP- has the additional benefit
|
||||
## that wayvnc will detect it being a virtual output and allow clients to
|
||||
## resize the output to match the client resolution.
|
||||
##
|
||||
|
||||
# LABWC_FALLBACK_OUTPUT=NOOP-fallback
|
||||
|
96
config/mabox-labwc/menu.xml
Normal file
96
config/mabox-labwc/menu.xml
Normal file
@ -0,0 +1,96 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<openbox_menu>
|
||||
<!-- Note: for localization support of menu items "client-menu" has to be removed here -->
|
||||
<menu id="client-menu">
|
||||
<item label="Minimize">
|
||||
<action name="Iconify" />
|
||||
</item>
|
||||
<item label="Maximize">
|
||||
<action name="ToggleMaximize" />
|
||||
</item>
|
||||
<item label="Fullscreen">
|
||||
<action name="ToggleFullscreen" />
|
||||
</item>
|
||||
<item label="Roll Up/Down">
|
||||
<action name="ToggleShade" />
|
||||
</item>
|
||||
<item label="Decorations">
|
||||
<action name="ToggleDecorations" />
|
||||
</item>
|
||||
<item label="Always on Top">
|
||||
<action name="ToggleAlwaysOnTop" />
|
||||
</item>
|
||||
<!--
|
||||
Any menu with the id "workspaces" will be hidden
|
||||
if there is only a single workspace available.
|
||||
-->
|
||||
<menu id="workspaces" label="Workspace">
|
||||
<item label="Move Left">
|
||||
<action name="SendToDesktop" to="left" />
|
||||
</item>
|
||||
<item label="Move Right">
|
||||
<action name="SendToDesktop" to="right" />
|
||||
</item>
|
||||
<separator />
|
||||
<item label="Always on Visible Workspace">
|
||||
<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="File Manager">
|
||||
<action name="Execute" command="pcmanfm" />
|
||||
</item>
|
||||
<item label="Web browser">
|
||||
<action name="Execute" command="firefox" />
|
||||
</item>
|
||||
<item label="Terminal">
|
||||
<action name="Execute" command="foot" />
|
||||
</item>
|
||||
<item label="Labwc Tweaks">
|
||||
<action name="Execute" command="labwc-tweaks" />
|
||||
</item>
|
||||
<item label="Reconfigure">
|
||||
<action name="Reconfigure" />
|
||||
</item>
|
||||
<item label="Exit">
|
||||
<action name="Exit" />
|
||||
</item>
|
||||
<item label="Poweroff">
|
||||
<action name="Execute" command="systemctl -i poweroff" />
|
||||
</item>
|
||||
</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>
|
||||
<item label="Exit">
|
||||
<action name="Exit" />
|
||||
</item>
|
||||
</menu>
|
||||
|
||||
</openbox_menu>
|
689
config/mabox-labwc/rc.xml
Normal file
689
config/mabox-labwc/rc.xml
Normal file
@ -0,0 +1,689 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<!--
|
||||
This file contains all supported config elements & attributes with
|
||||
default values.
|
||||
-->
|
||||
|
||||
<labwc_config>
|
||||
|
||||
<core>
|
||||
<decoration>server</decoration>
|
||||
<gap>0</gap>
|
||||
<adaptiveSync>no</adaptiveSync>
|
||||
<allowTearing>no</allowTearing>
|
||||
<reuseOutputMode>no</reuseOutputMode>
|
||||
<xwaylandPersistence>yes</xwaylandPersistence>
|
||||
</core>
|
||||
|
||||
<placement>
|
||||
<policy>cascade</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>
|
||||
<font place="ActiveWindow">
|
||||
<name>sans</name>
|
||||
<size>10</size>
|
||||
<slant>normal</slant>
|
||||
<weight>normal</weight>
|
||||
</font>
|
||||
<font place="InactiveWindow">
|
||||
<name>sans</name>
|
||||
<size>10</size>
|
||||
<slant>normal</slant>
|
||||
<weight>normal</weight>
|
||||
</font>
|
||||
<font place="MenuHeader">
|
||||
<name>sans</name>
|
||||
<size>10</size>
|
||||
<slant>normal</slant>
|
||||
<weight>normal</weight>
|
||||
</font>
|
||||
<font place="MenuItem">
|
||||
<name>sans</name>
|
||||
<size>10</size>
|
||||
<slant>normal</slant>
|
||||
<weight>normal</weight>
|
||||
</font>
|
||||
<font place="OnScreenDisplay">
|
||||
<name>sans</name>
|
||||
<size>10</size>
|
||||
<slant>normal</slant>
|
||||
<weight>normal</weight>
|
||||
</font>
|
||||
</theme>
|
||||
|
||||
<!--
|
||||
Just as for window-rules, 'identifier' relates to app_id for native Wayland
|
||||
windows and WM_CLASS for XWayland clients.
|
||||
-->
|
||||
<windowSwitcher show="yes" preview="yes" outlines="yes" allWorkspaces="no">
|
||||
<fields>
|
||||
<field content="type" width="25%" />
|
||||
<field content="trimmed_identifier" width="25%" />
|
||||
<!-- <field content="identifier" width="25%" /> -->
|
||||
<field content="title" width="50%" />
|
||||
</fields>
|
||||
</windowSwitcher>
|
||||
|
||||
<!--
|
||||
When using all workspaces option of window switcher, there are extra fields
|
||||
that can be used, workspace (variable length), state (single space),
|
||||
type_short (3 spaces), output (variable length), and can be set up
|
||||
like this. Note: output only shows if more than one output available.
|
||||
|
||||
<windowSwitcher show="yes" preview="no" outlines="no" allWorkspaces="yes">
|
||||
<fields>
|
||||
<field content="workspace" width="5%" />
|
||||
<field content="state" width="3%" />
|
||||
<field content="type_short" width="3%" />
|
||||
<field content="output" width="9%" />
|
||||
<field content="identifier" width="30%" />
|
||||
<field content="title" width="50%" />
|
||||
</fields>
|
||||
</windowSwitcher>
|
||||
|
||||
custom format - (introduced in 0.7.2)
|
||||
It allows one to replace all the above "fields" with one line, using a
|
||||
printf style format. For field explanations, "man 5 labwc-config".
|
||||
|
||||
The example below would print "foobar",then type of window (wayland, X),
|
||||
then state of window (M/m/F), then output (shows if more than 1 active),
|
||||
then workspace name, then identifier/app-id, then the window title.
|
||||
Uses 100% of OSD window width.
|
||||
|
||||
<windowSwitcher show="yes" preview="no" outlines="no" allWorkspaces="yes">
|
||||
<fields>
|
||||
<field content="custom" format="foobar %b %3s %-10o %-20W %-10i %t" width="100%" />
|
||||
</fields>
|
||||
</windowSwitcher>
|
||||
-->
|
||||
|
||||
<!-- edge strength is in pixels -->
|
||||
<resistance>
|
||||
<screenEdgeStrength>20</screenEdgeStrength>
|
||||
<windowEdgeStrength>20</windowEdgeStrength>
|
||||
<!-- resistance for maximized/tiled windows -->
|
||||
<unSnapThreshold>20</unSnapThreshold>
|
||||
<!-- resistance for vertically/horizontally maximized windows -->
|
||||
<unMaximizeThreshold>150</unMaximizeThreshold>
|
||||
</resistance>
|
||||
|
||||
<resize>
|
||||
<!-- Show a simple resize and move indicator -->
|
||||
<popupShow>Never</popupShow>
|
||||
<!-- Let client redraw its contents while resizing -->
|
||||
<drawContents>yes</drawContents>
|
||||
</resize>
|
||||
|
||||
<focus>
|
||||
<followMouse>no</followMouse>
|
||||
<followMouseRequiresMovement>yes</followMouseRequiresMovement>
|
||||
<raiseOnFocus>no</raiseOnFocus>
|
||||
</focus>
|
||||
|
||||
<snapping>
|
||||
<!-- Set range to 0 to disable window snapping completely -->
|
||||
<range>1</range>
|
||||
<overlay enabled="yes">
|
||||
<delay inner="500" outer="500" />
|
||||
</overlay>
|
||||
<topMaximize>yes</topMaximize>
|
||||
<notifyClient>always</notifyClient>
|
||||
</snapping>
|
||||
|
||||
<!--
|
||||
Workspaces can be configured like this:
|
||||
<desktops>
|
||||
<popupTime>1000</popupTime>
|
||||
<names>
|
||||
<name>Workspace 1</name>
|
||||
<name>Workspace 2</name>
|
||||
<name>Workspace 3</name>
|
||||
<name>Workspace 4</name>
|
||||
</names>
|
||||
</desktops>
|
||||
|
||||
Or it can also be configured like this:
|
||||
<desktops number="4" />
|
||||
|
||||
Or like this:
|
||||
<desktops>
|
||||
<popupTime>500</popupTime>
|
||||
<number>5</number>
|
||||
<prefix>ws</prefix>
|
||||
</desktops>
|
||||
|
||||
Or:
|
||||
<desktops number="4" popupTime="500" prefix="ws" />
|
||||
|
||||
popupTime defaults to 1000 so could be left out.
|
||||
Set to 0 to completely disable the workspace OSD.
|
||||
|
||||
prefix defaults to "Workspace" when using number instead of names.
|
||||
|
||||
Use GoToDesktop left | right to switch workspaces.
|
||||
Use SendToDesktop left | right to move windows.
|
||||
See man labwc-actions for further information.
|
||||
-->
|
||||
<desktops>
|
||||
<popupTime>1000</popupTime>
|
||||
<names>
|
||||
<name>Default</name>
|
||||
</names>
|
||||
</desktops>
|
||||
|
||||
<!--
|
||||
<margin> can be used to reserve space where new/maximized/tiled
|
||||
windows will not be placed. Clients using layer-shell protocol reserve
|
||||
space automatically, so <margin> is only intended for other, specialist
|
||||
cases.
|
||||
|
||||
If output is left empty, the margin will be applied to all outputs.
|
||||
|
||||
<margin top="" bottom="" left="" right="" output="" />
|
||||
-->
|
||||
|
||||
<!-- Percent based regions based on output usable area, % char is required -->
|
||||
<regions>
|
||||
<region name="top-left" x="0%" y="0%" height="50%" width="50%" />
|
||||
<region name="top" x="0%" y="0%" height="50%" width="100%" />
|
||||
<region name="top-right" x="50%" y="0%" height="50%" width="50%" />
|
||||
<region name="left" x="0%" y="0%" height="100%" width="50%" />
|
||||
<region name="center" x="10%" y="10%" height="80%" width="80%" />
|
||||
<region name="right" x="50%" y="0%" height="100%" width="50%" />
|
||||
<region name="bottom-left" x="0%" y="50%" height="50%" width="50%" />
|
||||
<region name="bottom" x="0%" y="50%" height="50%" width="100%" />
|
||||
<region name="bottom-right" x="50%" y="50%" height="50%" width="50%" />
|
||||
</regions>
|
||||
|
||||
|
||||
<!--
|
||||
Keybind actions are specified in labwc-actions(5)
|
||||
The following keybind modifiers are supported:
|
||||
W - window/super/logo
|
||||
A - alt
|
||||
C - ctrl
|
||||
S - shift
|
||||
|
||||
Use <keyboard><default /> to load all the default keybinds (those listed
|
||||
below). If the default keybinds are largely what you want, a sensible
|
||||
approach could be to start the <keyboard> section with a <default />
|
||||
element, and then (re-)define any special binds you need such as launching
|
||||
your favourite terminal or application launcher. See rc.xml for an example.
|
||||
-->
|
||||
<keyboard>
|
||||
<numlock>on</numlock>
|
||||
<layoutScope>global</layoutScope>
|
||||
<repeatRate>25</repeatRate>
|
||||
<repeatDelay>600</repeatDelay>
|
||||
<keybind key="A-Tab">
|
||||
<action name="NextWindow" />
|
||||
</keybind>
|
||||
<keybind key="W-Return">
|
||||
<action name="Execute" command="foot" />
|
||||
</keybind>
|
||||
<keybind key="A-F3">
|
||||
<action name="Execute" command="bemenu-run" />
|
||||
</keybind>
|
||||
<keybind key="A-F4">
|
||||
<action name="Close" />
|
||||
</keybind>
|
||||
<keybind key="W-a">
|
||||
<action name="ToggleMaximize" />
|
||||
</keybind>
|
||||
<keybind key="A-Left">
|
||||
<action name="MoveToEdge" direction="left" />
|
||||
</keybind>
|
||||
<keybind key="A-Right">
|
||||
<action name="MoveToEdge" direction="right" />
|
||||
</keybind>
|
||||
<keybind key="A-Up">
|
||||
<action name="MoveToEdge" direction="up" />
|
||||
</keybind>
|
||||
<keybind key="A-Down">
|
||||
<action name="MoveToEdge" direction="down" />
|
||||
</keybind>
|
||||
<keybind key="W-Left">
|
||||
<action name="SnapToEdge" direction="left" />
|
||||
</keybind>
|
||||
<keybind key="W-Right">
|
||||
<action name="SnapToEdge" direction="right" />
|
||||
</keybind>
|
||||
<keybind key="W-Up">
|
||||
<action name="SnapToEdge" direction="up" />
|
||||
</keybind>
|
||||
<keybind key="W-Down">
|
||||
<action name="SnapToEdge" direction="down" />
|
||||
</keybind>
|
||||
<keybind key="A-Space">
|
||||
<action name="ShowMenu" menu="client-menu" atCursor="no" />
|
||||
</keybind>
|
||||
<keybind key="XF86_AudioLowerVolume">
|
||||
<action name="Execute" command="amixer sset Master 5%-" />
|
||||
</keybind>
|
||||
<keybind key="XF86_AudioRaiseVolume">
|
||||
<action name="Execute" command="amixer sset Master 5%+" />
|
||||
</keybind>
|
||||
<keybind key="XF86_AudioMute">
|
||||
<action name="Execute" command="amixer sset Master toggle" />
|
||||
</keybind>
|
||||
<keybind key="XF86_MonBrightnessUp">
|
||||
<action name="Execute" command="brightnessctl set +10%" />
|
||||
</keybind>
|
||||
<keybind key="XF86_MonBrightnessDown">
|
||||
<action name="Execute" command="brightnessctl set 10%-" />
|
||||
</keybind>
|
||||
<!-- SnapToRegion via W-Numpad -->
|
||||
<keybind key="W-KP_7">
|
||||
<action name="SnapToRegion" region="top-left" />
|
||||
</keybind>
|
||||
<keybind key="W-KP_8">
|
||||
<action name="SnapToRegion" region="top" />
|
||||
</keybind>
|
||||
<keybind key="W-KP_9">
|
||||
<action name="SnapToRegion" region="top-right" />
|
||||
</keybind>
|
||||
<keybind key="W-KP_4">
|
||||
<action name="SnapToRegion" region="left" />
|
||||
</keybind>
|
||||
<keybind key="W-KP_5">
|
||||
<action name="SnapToRegion" region="center" />
|
||||
</keybind>
|
||||
<keybind key="W-KP_6">
|
||||
<action name="SnapToRegion" region="right" />
|
||||
</keybind>
|
||||
<keybind key="W-KP_1">
|
||||
<action name="SnapToRegion" region="bottom-left" />
|
||||
</keybind>
|
||||
<keybind key="W-KP_2">
|
||||
<action name="SnapToRegion" region="bottom" />
|
||||
</keybind>
|
||||
<keybind key="W-KP_3">
|
||||
<action name="SnapToRegion" region="bottom-right" />
|
||||
</keybind>
|
||||
|
||||
<!-- 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>
|
||||
|
||||
<!--
|
||||
Multiple <mousebind> can exist within one <context>
|
||||
Multiple <actions> can exist within one <mousebind>
|
||||
|
||||
Use <mouse><default /> to load all the default mousebinds (those listed
|
||||
below). If the default mousebinds are largely what you want, a sensible
|
||||
approach could be to start the <mouse> section with a <default />
|
||||
element, and then (re-)define any special binds you need such as launching
|
||||
a custom menu when right-clicking on your desktop. See rc.xml for an
|
||||
example.
|
||||
-->
|
||||
<mouse>
|
||||
|
||||
<!-- time is in ms -->
|
||||
<doubleClickTime>500</doubleClickTime>
|
||||
|
||||
<context name="Frame">
|
||||
<mousebind button="A-Left" action="Press">
|
||||
<action name="Focus" />
|
||||
<action name="Raise" />
|
||||
</mousebind>
|
||||
<mousebind button="A-Left" action="Drag">
|
||||
<action name="Move" />
|
||||
</mousebind>
|
||||
<mousebind button="A-Right" action="Press">
|
||||
<action name="Focus" />
|
||||
<action name="Raise" />
|
||||
</mousebind>
|
||||
<mousebind button="A-Right" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Top">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
<context name="Left">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
<context name="Right">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
<context name="Bottom">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
<context name="TRCorner">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
<context name="BRCorner">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
<context name="TLCorner">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
<context name="BLCorner">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="TitleBar">
|
||||
<mousebind button="Left" action="Press">
|
||||
<action name="Focus" />
|
||||
<action name="Raise" />
|
||||
</mousebind>
|
||||
<mousebind button="Right" action="Click">
|
||||
<action name="Focus" />
|
||||
<action name="Raise" />
|
||||
</mousebind>
|
||||
<mousebind direction="Up" action="Scroll">
|
||||
<action name="Unshade" />
|
||||
<action name="Focus" />
|
||||
</mousebind>
|
||||
<mousebind direction="Down" action="Scroll">
|
||||
<action name="Unfocus" />
|
||||
<action name="Shade" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Title">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Move" />
|
||||
</mousebind>
|
||||
<mousebind button="Left" action="DoubleClick">
|
||||
<action name="ToggleMaximize" />
|
||||
</mousebind>
|
||||
<mousebind button="Right" action="Click">
|
||||
<action name="ShowMenu" menu="client-menu" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Maximize">
|
||||
<mousebind button="Left" action="Click">
|
||||
<action name="ToggleMaximize" />
|
||||
</mousebind>
|
||||
<mousebind button="Right" action="Click">
|
||||
<action name="ToggleMaximize" direction="horizontal" />
|
||||
</mousebind>
|
||||
<mousebind button="Middle" action="Click">
|
||||
<action name="ToggleMaximize" direction="vertical" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="WindowMenu">
|
||||
<mousebind button="Left" action="Click">
|
||||
<action name="ShowMenu" menu="client-menu" atCursor="no" />
|
||||
</mousebind>
|
||||
<mousebind button="Right" action="Click">
|
||||
<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>
|
||||
|
||||
<context name="Iconify">
|
||||
<mousebind button="Left" action="Click">
|
||||
<action name="Iconify" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Close">
|
||||
<mousebind button="Left" action="Click">
|
||||
<action name="Close" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Client">
|
||||
<mousebind button="Left" action="Press">
|
||||
<action name="Focus" />
|
||||
<action name="Raise" />
|
||||
</mousebind>
|
||||
<mousebind button="Middle" action="Press">
|
||||
<action name="Focus" />
|
||||
<action name="Raise" />
|
||||
</mousebind>
|
||||
<mousebind button="Right" action="Press">
|
||||
<action name="Focus" />
|
||||
<action name="Raise" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Root">
|
||||
<mousebind button="Left" action="Press">
|
||||
<action name="ShowMenu" menu="root-menu" />
|
||||
</mousebind>
|
||||
<mousebind button="Right" action="Press">
|
||||
<action name="ShowMenu" menu="root-menu" />
|
||||
</mousebind>
|
||||
<mousebind button="Middle" action="Press">
|
||||
<action name="ShowMenu" menu="root-menu" />
|
||||
<!-- 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" />
|
||||
</mousebind>
|
||||
<mousebind direction="Down" action="Scroll">
|
||||
<action name="GoToDesktop" to="right" wrap="yes" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
</mouse>
|
||||
|
||||
<!--
|
||||
A touch configuration can be bound to a specific device. If device
|
||||
name is left empty, the touch configuration applies to all touch
|
||||
devices or functions as a fallback. Multiple touch configurations
|
||||
can exist.
|
||||
See the libinput device section for obtaining the device names.
|
||||
|
||||
Direct cursor movement to a specified output. If the compositor is
|
||||
running in nested mode, this does not take effect.
|
||||
|
||||
If mouseEmulation is enabled, all touch up/down/motion events are
|
||||
translated to mouse button and motion events.
|
||||
-->
|
||||
<touch deviceName="" mapToOutput="" mouseEmulation="no"/>
|
||||
|
||||
<!--
|
||||
The tablet cursor movement can be restricted to a single output.
|
||||
If output is left empty or the output does not exists, the tablet
|
||||
will span all outputs.
|
||||
|
||||
The tablet orientation can be changed in 90 degree steps, thus
|
||||
*rotate* can be set to [0|90|180|270]. Rotation will be applied
|
||||
after applying tablet area transformation.
|
||||
|
||||
The active tablet area can be specified by setting the *top*/*left*
|
||||
coordinate (in mm) and/or *width*/*height* (in mm). If width or
|
||||
height are omitted or default (0.0), width/height will be set to
|
||||
the remaining width/height seen from top/left.
|
||||
|
||||
The tablet can be forced to always use mouse emulation. This prevents
|
||||
tablet specific restrictions, e.g. no support for drag&drop, but also
|
||||
omits tablet specific features like reporting pen pressure.
|
||||
|
||||
Pen buttons emulate regular mouse buttons. The pen *button* can be any
|
||||
of [Stylus|Stylus2|Stylus3] and can be mapped to mouse buttons
|
||||
[Right|Middle|Side]. Tablet pad buttons [Pad|Pad2|Pad3|..|Pad9] also
|
||||
emulate regular mouse buttons and can be mapped to any mouse button.
|
||||
When using mouse emulation, the pen tip [tip] and the stylus buttons
|
||||
can be set to any available mouse button [Left|Right|Middle|..|Task].
|
||||
-->
|
||||
<tablet mapToOutput="" rotate="0" mouseEmulation="no">
|
||||
<!-- Active area dimensions are in mm -->
|
||||
<area top="0.0" left="0.0" width="0.0" height="0.0" />
|
||||
<map button="Tip" to="Left" />
|
||||
<map button="Stylus" to="Right" />
|
||||
<map button="Stylus2" to="Middle" />
|
||||
</tablet>
|
||||
|
||||
<!--
|
||||
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
|
||||
running *libinput list-devices* as root or member of the input group.
|
||||
|
||||
Tap is set to *yes* by default. All others are left blank in order to use
|
||||
device defaults.
|
||||
|
||||
All values are [yes|no] except for:
|
||||
- pointerSpeed [-1.0 to 1.0]
|
||||
- accelProfile [flat|adaptive]
|
||||
- tapButtonMap [lrm|lmr]
|
||||
- clickMethod [none|buttonAreas|clickfinger]
|
||||
- sendEventsMode [yes|no|disabledOnExternalMouse]
|
||||
- calibrationMatrix [six float values split by space]
|
||||
- scrollFactor [float]
|
||||
-->
|
||||
<libinput>
|
||||
<device category="default">
|
||||
<naturalScroll></naturalScroll>
|
||||
<leftHanded></leftHanded>
|
||||
<pointerSpeed></pointerSpeed>
|
||||
<accelProfile></accelProfile>
|
||||
<tap>yes</tap>
|
||||
<tapButtonMap></tapButtonMap>
|
||||
<tapAndDrag></tapAndDrag>
|
||||
<dragLock></dragLock>
|
||||
<middleEmulation></middleEmulation>
|
||||
<disableWhileTyping></disableWhileTyping>
|
||||
<clickMethod></clickMethod>
|
||||
<sendEventsMode></sendEventsMode>
|
||||
<calibrationMatrix></calibrationMatrix>
|
||||
<scrollFactor>1.0</scrollFactor>
|
||||
</device>
|
||||
</libinput>
|
||||
|
||||
<!--
|
||||
# Window Rules
|
||||
# - Criteria can consist of 'identifier', 'title', 'sandboxEngine' or
|
||||
# 'sandboxAppId'. AND logic is used when multiple options are specified.
|
||||
# - 'identifier' relates to app_id for native Wayland windows and
|
||||
# WM_CLASS for XWayland clients.
|
||||
# - Criteria can also contain `matchOnce="true"` meaning that the rule
|
||||
# must only apply to the first instance of the window with that
|
||||
# particular 'identifier' or 'title'.
|
||||
# - Matching is case-insensitive and is performed using shell wildcard
|
||||
# patterns (see glob(7)) so '\*' (not between brackets) matches any 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"/>
|
||||
</windowRules>
|
||||
|
||||
# Example below for `lxqt-panel` and `pcmanfm-qt \-\-desktop`
|
||||
# where 'matchOnce' is used to avoid applying rule to the panel
|
||||
# configuration window with the same 'app_id'.
|
||||
|
||||
<windowRules>
|
||||
<windowRule identifier="lxqt-panel" matchOnce="true">
|
||||
<skipTaskbar>yes</skipTaskbar>
|
||||
<action name="MoveTo" x="0" y="0" />
|
||||
<action name="ToggleAlwaysOnTop"/>
|
||||
</windowRule>
|
||||
<windowRule title="pcmanfm-desktop*">
|
||||
<skipTaskbar>yes</skipTaskbar>
|
||||
<skipWindowSwitcher>yes</skipWindowSwitcher>
|
||||
<fixedPosition>yes</fixedPosition>
|
||||
<action name="MoveTo" x="0" y="0" />
|
||||
<action name="ToggleAlwaysOnBottom"/>
|
||||
</windowRule>
|
||||
<windowRule identifier="org.qutebrowser.qutebrowser">
|
||||
<action name="ResizeTo" width="1024" height="800" />
|
||||
<action name="AutoPlace"/>
|
||||
</windowRule>
|
||||
</windowRules>
|
||||
-->
|
||||
|
||||
<menu>
|
||||
<ignoreButtonReleasePeriod>250</ignoreButtonReleasePeriod>
|
||||
</menu>
|
||||
|
||||
<!--
|
||||
Magnifier settings
|
||||
'width' sets the width in pixels of the magnifier window.
|
||||
'height' sets the height in pixels of the magnifier window.
|
||||
'initScale' sets the initial magnification factor at boot.
|
||||
'increment' sets the amount by which the magnification factor
|
||||
changes when 'ZoomIn' or 'ZoomOut' are called.
|
||||
'useFilter' sets whether to use a bilinear filter on the magnified
|
||||
output or simply to take nearest pixel.
|
||||
-->
|
||||
<magnifier>
|
||||
<width>400</width>
|
||||
<height>400</height>
|
||||
<initScale>2.0</initScale>
|
||||
<increment>0.2</increment>
|
||||
<useFilter>true</useFilter>
|
||||
</magnifier>
|
||||
|
||||
</labwc_config>
|
4
config/mabox-labwc/shutdown
Normal file
4
config/mabox-labwc/shutdown
Normal file
@ -0,0 +1,4 @@
|
||||
# Example shutdown file
|
||||
|
||||
# This file is executed as a shell script when labwc is preparing to terminate itself.
|
||||
# For further details see labwc-config(5).
|
115
config/mabox-labwc/themerc
Normal file
115
config/mabox-labwc/themerc
Normal file
@ -0,0 +1,115 @@
|
||||
# This file contains all themerc options with default values
|
||||
#
|
||||
# System-wide and local themes can be overridden by creating a copy of this
|
||||
# file and renaming it to $HOME/.config/labwc/themerc-override. Be careful
|
||||
# though - if you only want to override a small number of specific options,
|
||||
# make sure all other lines are commented out or deleted.
|
||||
|
||||
# general
|
||||
border.width: 1
|
||||
|
||||
#
|
||||
# The global padding.{width,height} of openbox are not supported because
|
||||
# the default labwc button geometry deviates from that of openbox
|
||||
#
|
||||
window.titlebar.padding.width: 0
|
||||
window.titlebar.padding.height: 0
|
||||
|
||||
# window border
|
||||
window.active.border.color: #aaaaaa
|
||||
window.inactive.border.color: #aaaaaa
|
||||
|
||||
# ToggleKeybinds status indicator
|
||||
window.active.indicator.toggled-keybind.color: #ff0000
|
||||
|
||||
# window titlebar background
|
||||
window.active.title.bg.color: #e1dedb
|
||||
window.inactive.title.bg.color: #f6f5f4
|
||||
|
||||
# window titlebar text
|
||||
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
|
||||
|
||||
# window drop-shadows
|
||||
window.active.shadow.size: 60
|
||||
window.inactive.shadow.size: 40
|
||||
window.active.shadow.color: #00000060
|
||||
window.inactive.shadow.color: #00000040
|
||||
|
||||
# Note that "menu", "iconify", "max", "close" buttons colors can be defined
|
||||
# individually by inserting the type after the button node, for example:
|
||||
#
|
||||
# window.active.button.iconify.unpressed.image.color: #333333
|
||||
|
||||
# menu
|
||||
menu.overlap.x: 0
|
||||
menu.overlap.y: 0
|
||||
menu.width.min: 20
|
||||
menu.width.max: 200
|
||||
menu.border.width: 1
|
||||
menu.border.color: #aaaaaa
|
||||
menu.items.bg.color: #fcfbfa
|
||||
menu.items.text.color: #000000
|
||||
menu.items.active.bg.color: #e1dedb
|
||||
menu.items.active.text.color: #000000
|
||||
menu.items.padding.x: 7
|
||||
menu.items.padding.y: 4
|
||||
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
|
||||
osd.border.color: #000000
|
||||
osd.border.width: 1
|
||||
osd.label.text.color: #000000
|
||||
|
||||
# width can be set as percent (of screen width)
|
||||
# example 50% or 75% instead of 600, max 100%
|
||||
osd.window-switcher.width: 600
|
||||
|
||||
osd.window-switcher.padding: 4
|
||||
osd.window-switcher.item.padding.x: 10
|
||||
osd.window-switcher.item.padding.y: 1
|
||||
osd.window-switcher.item.active.border.width: 2
|
||||
osd.window-switcher.preview.border.width: 1
|
||||
osd.window-switcher.preview.border.color: #dddda6,#000000,#dddda6
|
||||
|
||||
osd.workspace-switcher.boxes.width: 20
|
||||
osd.workspace-switcher.boxes.height: 20
|
||||
|
||||
# Default values for following options change depending on the rendering
|
||||
# backend. For software-based renderers, *.bg.enabled is "no" and
|
||||
# *.border.enabled is "yes" if not set. For hardware-based renderers,
|
||||
# *.bg.enabled is "yes" and *.border.enabled is "no" if not set.
|
||||
# Setting *.bg.enabled to "yes" for software-based renderer with translucent
|
||||
# background color may severely impact performance.
|
||||
#
|
||||
# snapping.overlay.region.bg.enabled:
|
||||
# snapping.overlay.edge.bg.enabled:
|
||||
# snapping.overlay.region.border.enabled:
|
||||
# snapping.overlay.edge.border.enabled:
|
||||
|
||||
snapping.overlay.region.bg.color: #8080b380
|
||||
snapping.overlay.edge.bg.color: #8080b380
|
||||
snapping.overlay.region.border.width: 1
|
||||
snapping.overlay.edge.border.width: 1
|
||||
snapping.overlay.region.border.color: #dddda6,#000000,#dddda6
|
||||
snapping.overlay.edge.border.color: #dddda6,#000000,#dddda6
|
8
share/wayland-sessions/mabox-labwc.desktop
Normal file
8
share/wayland-sessions/mabox-labwc.desktop
Normal file
@ -0,0 +1,8 @@
|
||||
[Desktop Entry]
|
||||
Name=Mabox LabWC
|
||||
Comment=A wayland stacking compositor
|
||||
#Exec=sh -c "labwc -C $HOME/.config/mabox-labwc/"
|
||||
Exec=mabox-labwc
|
||||
Icon=labwc
|
||||
Type=Application
|
||||
DesktopNames=labwc;wlroots
|
Loading…
Reference in New Issue
Block a user