Commit graph

193 commits

Author SHA1 Message Date
Consolatis
9a9e20d2b0 followMouse: add followMouseRequiresMovement
This implements the same config option as `underMouse` in Openbox.

Fixes #862
2023-05-06 14:13:20 +01:00
Johan Malm
d609c9e3f9 Support window-rules
Two types of window rules are supported, actions and properties. They are
defined as shown below.

    <windowRules>

      <!-- Action -->
      <windowRule identifier="some-application">
        <action name="Maximize"/>
      </windowRule>

      <!-- Property -->
      <windowRule identifier="foo*" serverDecoration="yes|no"/>

    </windowRules>

Rules are applied if windows match the criteria defined by the
'identifier' attribute which relates to app_id for native Wayland windows
and WM_CLASS for XWayland clients.

Matching against patterns with '*' (wildcard) and '?' (joker) is
supported.

Add 'serverDecoration' property.
2023-05-04 22:09:55 +01:00
Johan Malm
d0aafb684f action: add Maximize 2023-05-04 22:09:55 +01:00
Johan Malm
0f37c04df0 config: support window switcher field definitions
<windowSwitcher>
  <fields>
    <field content="type" width="25%" />
    <field content="app_id" width="25%" />
    <field content="title" width="50%" />
  </fields>
</windowSwitcher>

Relates to issues #852 #855 #879
2023-04-21 16:05:48 +01:00
Johan Malm
36849eb7ef config: make <windowSwitcher> a toplevel element
...rather than a child of <core>
2023-04-21 16:05:48 +01:00
Johan Malm
a8e0248f47 config: support scroll-factor
Fixes: issue #846
2023-03-27 20:30:00 +01:00
Juliusz Chroboczek
753aef9d78 Implement action "Lower" 2023-03-27 20:27:00 +01:00
Johan Malm
33b98b19aa action: support SendToDesktop 'follow' option
Make follow 'true' by default as per Openbox 3.6 specification.
Note: this is an interface change.

Fixes: issue #841
2023-03-26 19:52:50 +02:00
Johan Malm
c0d142cfb8 config: enable windowSwitcher preview by default 2023-03-19 01:19:04 +01:00
Johan Malm
e392eecce6 config: change <cycleView*> to <windowSwitcher*>
Use `<windowSwitcher show="yes" preview="no" outlines="yes" />`
instead of

- `<cycleViewOSD>yes</cycleViewOSD>`
- `<cycleViewOutlines>yes</cycleViewOutlines>`
- `<cycleViewPreview>no</cycleViewPreview>`
2023-03-19 01:19:04 +01:00
Flrian
00ebcdc290 osd: add config option to disable osd 2023-03-08 21:54:47 +00:00
Consolatis
a0b5a80ce1 Add FocusOutput action
Fixes #806

Suggested-by: @EysseW
Tested-by: @EysseW
2023-03-06 21:58:11 +00:00
Consolatis
c33a404dc1 Add ToggleKeybinds action
This can be used to better control Virtual Machines, VNC clients, nested
compositors or similar. All keybinds other than ToggleKeybinds itself are
disabled when first called, a 2nd call will restore handling of all keybinds.

Fixes #738
Fixes #810
2023-03-04 13:24:59 +00:00
Flrian
df7c47b8d7 labwc-actions(5): update action format 2023-02-19 12:51:50 +01:00
Dino Duratović
a90adab948 docs: add hint for using wev
Potentially fixes #456.
2023-02-10 21:31:14 +00:00
Consolatis
4a8b50603e src/config/rcxml.c: allow clearing key/mouse bindings
Fixes #567
2023-02-03 03:30:10 +01:00
Consolatis
6c42aced3d Support flicker free boot
Fixes #724
2023-01-23 22:10:22 +01:00
Consolatis
111f48b485 SnapToRegion: Add documentation 2023-01-11 18:52:24 +01:00
Consolatis
b62159fe06 docs/rc.xml: Overwrite the default W-Return keybind
.. instead of adding a new one.
Also change from sakura to foot and add comments.
2023-01-06 21:40:49 +00:00
Johan Malm
af56b68041 theme: support theme setting override
...by reading <config-dir>/themerc-override where <config-dir> is normally
$HOME/.config/labwc can be other locations as described in labwc-config(5)
and can also be specified by the command line option -C.

The reason for supporting theme override is to give users more fine-
grained control of settings without making local copies and modifying
themes.
2023-01-03 21:21:21 +00:00
Johan Malm
45ce978b5a docs/themerc: add menu.width.{min,max} + menu.items.padding.{x,y}
...to reflect additions introduced by f0666ba and d00327b

Move menu.overlap.* to the menu section for a more logical grouping
2023-01-01 18:59:16 +00:00
Flrian
63632cfd1a docs: update theme documentation
.. to reflect that its now possible to change the color of the menu button
2022-12-23 19:04:28 +01:00
John Lindgren
500eddbe88 docs: Fix small typo in labwc-config(5) manpage 2022-12-22 23:07:07 +01:00
Consolatis
8032769197 docs/menu.xml: Add comment about hiding of workspaces menu 2022-12-12 17:56:36 +00:00
Consolatis
a5caccb82a docs/rc.xml.all: Add <default /> description for mousebinds 2022-12-12 17:56:36 +00:00
Consolatis
13710d1ef6 docs/rc.xml: add default mousebind example 2022-12-12 17:56:36 +00:00
Consolatis
5687ac7e35 docs: reformat rc.xml.all 2022-12-12 17:56:36 +00:00
Consolatis
95b21bef01 docs: reformat default config 2022-12-12 17:56:36 +00:00
bi4k8
7ad5490ff0 document Kill command 2022-12-08 19:33:09 +00:00
Consolatis
d00327bc32 menu: Dynamically adjust menu width based on widest item
Adds two new theme vars:
- menu.width.min (menu will never be smaller than this)
- menu.width.max (menu will never be wider than this + padding)

A fixed menu width can be achieved by setting
menu.width.min == menu.width.max.
2022-12-06 21:08:43 +00:00
Consolatis
f0666ba5c9 menu: Convert hardcoded item padding to theme vars
Adds two new theme vars:
- menu.items.padding.x
- menu.items.padding.y
2022-12-06 21:08:43 +00:00
Johan Malm
2afab5c694 labwc-menu(5): document separator 2022-11-29 19:45:57 +01:00
Consolatis
e95779540c docs: add basic README 2022-11-28 12:09:24 +01:00
Consolatis
b839bbe0a9 docs: install example configs 2022-11-28 12:09:24 +01:00
Arnaud Vallette d'Osia
8fe2f2a2a8 Update labwc-config.5.scd
Supported mouse actions correction.
2022-11-19 10:42:59 +01:00
bi4k8
2b753a98b8 Support smooth scroll and horizontal scroll
note that this changes Scroll mousebinds from taking a "button"
attribute to taking a "direction" attribute
2022-11-15 21:57:36 +00:00
Arnaud Vallette d'Osia
bd4a0f15b8 Scroll-Bindings: Add docs 2022-11-06 22:03:50 +01:00
Arnaud Vallette d'Osia
209e09a1f6 Scroll-Bindings: Add default config
By default we switch workspaces when scrolling
on the desktop to match the Openbox behavior.
2022-11-06 22:03:50 +01:00
Johan Malm
3e1a800c14 Add --exit and --reconfigure 2022-10-15 00:19:18 +02:00
Johan Malm
8c139e4185 Add long command line options 2022-10-15 00:19:18 +02:00
Johan Malm
22aa31cb7f labwc(1): describe SIGTERM and SIGHUP 2022-10-15 00:19:18 +02:00
John Lindgren
b89f7bfc0d action: Allow explicit None action without warning 2022-09-16 22:06:29 +01:00
Johan Malm
84e64b9ce3 config: s/OSD/OnScreenDisplay/ in <theme><font place="OSD">
...to comply with Openbox 3.6 spec [1]

"OSD" is still honoured to maintain backward compatibility.

[1]: http://openbox.org/wiki/Help:Configuration#Theme
2022-09-16 01:15:11 +02:00
John Lindgren
07a83c19f0 config: Add support for font slant and weight 2022-09-15 21:48:05 +01:00
John Lindgren
ebd0a5d526 config: Redefine Title context to include blank areas of Titlebar
... and use Title for the Drag (Move) and DoubleClick (Maximize)
titlebar actions, which are unexpected when the cursor is over one
of the window buttons.
2022-09-09 15:23:13 -04:00
Consolatis
ea6007d34c src/config/rcxml.c: Add support for <devault /> mousebinds
This loads default mousebinds and provides a way to keep config files
simpler whilst allowing user specific binds.

Note that if no rc.xml is found, or if no <mouse><mousebind> entries
exist, the same default mousebinds will be loaded even if the <devault />
element is not provided.

Example usage (with a slight spelling error):

  <mouse>
    <default />
    <context name="Root">
      <mousebind button="Right" action="Press">
        <action name="ShowMenu" menu="desktop-menu" />
      </mousebind>
    </context>
  </mouse>

Co-Authored-By: @johanmalm

Fixes #416
2022-08-30 16:39:09 +01:00
Flrian
c1490b632d Add config option to disable preview outlines 2022-08-24 20:21:14 +01:00
Johan Malm
b5a0d74888 labwc-theme(5): add menu.xbm 2022-08-20 00:11:15 +02:00
Johan Malm
19dea7450b keybind: remove default alt-escape for Exit
...because too many have exited the compositor by mistake trying to get
out of alt-tab cycling or similar.
2022-08-12 22:50:56 +02:00
Johan Malm
70421b1207 menu: do not require label attribute for highest level menu definition
Allow highest level menu definitions - typically used for root-menu and
client-menu - to be defined like this:

    <openbox_menu>
      <menu id="">
      </menu>
    </openbox>

Previously this required a label attribute (which was not used for
anything and could be an empty string) as show below:

    <openbox_menu>
      <menu id="" label="">
      </menu>
    </openbox>

Closes issue #472
2022-08-11 20:59:57 +01:00