]>
git.mdlowis.com Git - proto/labwc.git/log
stefonarch [Sun, 16 Jul 2023 08:04:19 +0000 (10:04 +0200)]
Added missing closing tags
Johan Malm [Fri, 14 Jul 2023 19:43:33 +0000 (20:43 +0100)]
build: bump version to 0.6.4
Johan Malm [Mon, 26 Jun 2023 16:09:28 +0000 (17:09 +0100)]
NEWS.md: add notes on 0.6.4
Johan Malm [Mon, 10 Jul 2023 15:56:02 +0000 (16:56 +0100)]
dnd: fix focus at end of dnd operation
By default, leave keyboard-focus with the surface that originally had it
at the end of a dnd operation. This is consistent with the default
behaviour of openbox and mutter.
If the 'focus/followMouse' option is enabled, then focus on the surface
under the cursor at the end of the dnd operation.
Fixes: issue #976
Consolatis [Sat, 8 Jul 2023 16:27:40 +0000 (18:27 +0200)]
Add support for ext_idle_notify_v1..
..and combine both idle variants into a standalone manager
Johan Malm [Sun, 7 May 2023 21:14:35 +0000 (22:14 +0100)]
find-banned: support reading multiple files from stdin
Johan Malm [Mon, 3 Apr 2023 12:49:35 +0000 (13:49 +0100)]
find-banned: print filename with each unwanted token
Consolatis [Thu, 9 Feb 2023 04:33:16 +0000 (05:33 +0100)]
scripts/helper/find-idents.c: handle single line comment tokens
Johan Malm [Mon, 30 Jan 2023 21:24:52 +0000 (21:24 +0000)]
Add scripts/find-banned.sh
Consolatis [Sun, 5 Mar 2023 09:35:56 +0000 (10:35 +0100)]
ToggleKeybinds per window
Johan Malm [Wed, 5 Jul 2023 18:52:01 +0000 (19:52 +0100)]
osd: move get_osd_height() closer to where it is called from
Johan Malm [Wed, 5 Jul 2023 18:49:56 +0000 (19:49 +0100)]
osd: make item-border part of item-height
Consolatis [Sat, 1 Jul 2023 12:56:13 +0000 (14:56 +0200)]
theme: add option osd.window-switcher.item.active.border.width
...and change default values for the variables below to keep the
window-switcher look the same as it was at the last release.
osd.window-switcher.padding = 4
osd.window-switcher.item.padding.y = 1
osd.window-switcher.item.active.border.width = 2
Johan Malm [Thu, 29 Jun 2023 20:29:43 +0000 (21:29 +0100)]
theme: add option osd.window-switcher.padding
Fixes: issue #969
Consolatis [Mon, 15 May 2023 16:50:13 +0000 (18:50 +0200)]
src/action.c: relax argument checks when running actions
Consolatis [Sat, 13 May 2023 14:27:46 +0000 (16:27 +0200)]
config: validate keybind, mousebind and menu actions
Consolatis [Sat, 13 May 2023 13:57:37 +0000 (15:57 +0200)]
src/action.c: add action_is_valid()
Consolatis [Fri, 12 May 2023 12:33:12 +0000 (14:33 +0200)]
src/action.c: enforce action arg->key being set
Johan Malm [Sun, 2 Jul 2023 20:20:04 +0000 (21:20 +0100)]
action.c: remove duplicate code
Johan Malm [Sun, 2 Jul 2023 20:17:26 +0000 (21:17 +0100)]
menu: support CDATA for <command> element
...in order to support obmenu-generator output such as this:
<menu id="root-menu" label="Applications">
<item label="File Manager"><action name="Execute"><command><![CDATA[xdg-open .]]></command></action></item>
<item label="Terminal"><action name="Execute"><command><![CDATA[xterm]]></command></action></item>
<item label="Web Browser"><action name="Execute"><command><![CDATA[xdg-open http://]]></command></action></item>
<item label="Run command"><action name="Execute"><command><![CDATA[gmrun]]></command></action></item>
</menu>
References:
- https://github.com/trizen/obmenu-generator
- https://aur.archlinux.org/packages/obmenu-generator
- https://trizenx.blogspot.com/2012/02/obmenu-generator.html
Fixes: issue #972
Johan Malm [Mon, 3 Jul 2023 16:04:41 +0000 (17:04 +0100)]
checkpatch.pl: allow xmlFree in CamelCase format
...to avoid 'Avoid CamelCase' warning.
Johan Malm [Mon, 3 Jul 2023 16:04:15 +0000 (17:04 +0100)]
checkpatch.pl: remove 'spaces preferred around that...' warning
...because it gives a false positive for "xmlChar *foo" saying it should
be "xmlChar * foo".
Johan Malm [Sun, 2 Jul 2023 12:55:23 +0000 (13:55 +0100)]
menu: print menu.xml nodenames
...when LABWC_DEBUG_MENU_NODENAMES is set
Ph42oN [Sun, 2 Jul 2023 20:26:09 +0000 (23:26 +0300)]
action: disable MoveRelative for fullscreen and unmaximize
Ph42oN [Sun, 2 Jul 2023 20:25:24 +0000 (23:25 +0300)]
view: resize_relative disable for fullscreen and maximized and set untiled
John Lindgren [Sat, 1 Jul 2023 16:37:47 +0000 (12:37 -0400)]
view: add client_request flag to view->impl->unmap()
This makes explicit the subtle behavioral difference between
xwayland_view_unmap() and handle_unmap().
With this change, the XDG and XWayland versions of handle_map/unmap()
are now identical, which will make further refactoring possible.
Johan Malm [Thu, 29 Jun 2023 16:45:33 +0000 (17:45 +0100)]
osd: use theme->osd_border_width for focused item
Johan Malm [Mon, 24 Apr 2023 20:31:28 +0000 (21:31 +0100)]
theme: add window-switcher width/padding
...and calculate item-height based on font-height
Add theme options
- osd.window-switcher.width
- osd.window-switcher.item.padding.x
- osd.window-switcher.item.padding.y
Issue #879
Johan Malm [Mon, 24 Apr 2023 19:48:58 +0000 (20:48 +0100)]
osd: use theme->osd_border_width consistently
stefonarch [Mon, 26 Jun 2023 20:33:34 +0000 (22:33 +0200)]
Some formatting
Ph42oN [Tue, 27 Jun 2023 18:20:04 +0000 (21:20 +0300)]
action: add ResizeRelative
Ph42oN [Tue, 27 Jun 2023 18:17:57 +0000 (21:17 +0300)]
add MoveRelative to man page and use view->pending
Julius Yli-Suomu [Mon, 26 Jun 2023 16:04:33 +0000 (19:04 +0300)]
add MoveRelative
Johan Malm [Mon, 26 Jun 2023 05:25:40 +0000 (06:25 +0100)]
session.c: unconstify build_path() return value
Johan Malm [Sun, 25 Jun 2023 08:00:41 +0000 (09:00 +0100)]
common/string-helpers.c: add strdup_printf()
Johan Malm [Wed, 7 Jun 2023 20:44:38 +0000 (21:44 +0100)]
window-rules: support matchOnce attribute
...allowing a rule to be applied to only the first window matching a
particular criteria. For example, the following can be used to apply a
window rule to lxqt-panel but not its 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>
</windowRules>
Johan Malm [Tue, 6 Jun 2023 19:33:53 +0000 (20:33 +0100)]
action: add MoveTo
Johan Malm [Sun, 25 Jun 2023 19:20:52 +0000 (20:20 +0100)]
action: support arguments of int type
Johan Malm [Tue, 6 Jun 2023 18:52:57 +0000 (19:52 +0100)]
config: support <margin top="" bottom="" left="" right="" output="" />
Johan Malm [Mon, 5 Jun 2023 20:48:47 +0000 (21:48 +0100)]
Move border-struct to common/border.h for sharing
Johan Malm [Sun, 25 Jun 2023 10:37:56 +0000 (11:37 +0100)]
view: add minimize method
...and call wlr_xwayland_surface_set_minimized() for xwayland surfaces on
(un)minimize.
Fixes: #958
Sachin Bhat [Sun, 25 Jun 2023 09:18:43 +0000 (17:18 +0800)]
config: support <desktops number=""> update documentation
Sachin Bhat [Sun, 25 Jun 2023 00:09:28 +0000 (08:09 +0800)]
config: support <desktops number="">
Sachin Bhat [Sat, 24 Jun 2023 12:36:06 +0000 (20:36 +0800)]
config: support <desktops number=>
Sachin Bhat [Sat, 24 Jun 2023 11:46:00 +0000 (19:46 +0800)]
config: support <desktops number=> update documentation
Sachin Bhat [Fri, 23 Jun 2023 06:34:34 +0000 (14:34 +0800)]
config: support <desktops number=>
Documentation updated at and
Sachin Bhat [Mon, 19 Jun 2023 00:46:56 +0000 (08:46 +0800)]
config: support <desktops number="">
Standreas [Wed, 14 Jun 2023 14:51:33 +0000 (16:51 +0200)]
docs/rc.xml.all: fix mousebind button casing
Johan Malm [Sun, 11 Jun 2023 14:57:58 +0000 (15:57 +0100)]
config: fix bug with default scroll mousebind
Specify attribute name when adding default mousebind actions.
This is required because in src/action.c action GoToDesktop requires an
argument with key 'to' and does not accept `action_get_first_arg()`
because the action supports other optional attributes so we could not
guarantee that 'to' is the first one.
Fixes: #948
Johan Malm [Sat, 27 May 2023 14:41:20 +0000 (15:41 +0100)]
dnd: refocus surface under cursor on drag-destroy
Keyboard focus is not changed during drag, so we need to refocus the
surface under the cursor and the end of a drag-and-drop operation.
Fixes issue #939
Tomi Ollila [Wed, 24 May 2023 10:06:48 +0000 (13:06 +0300)]
docs: fix some typos
Between, output, rounded and focused.
Added one inconsistently missing trailing period.
Inserted newline before last word in one line in
labwc-actions.5.scd in order to keep that line from
passing 80-column boundary.
Johan Malm [Sat, 20 May 2023 09:20:36 +0000 (10:20 +0100)]
window-rules: add skipTaskbar and skipWindowSwitcher
Johan Malm [Thu, 11 May 2023 21:26:41 +0000 (22:26 +0100)]
action: add ToggleAlwaysOnBottom
Johan Malm [Sat, 20 May 2023 07:58:42 +0000 (08:58 +0100)]
xdg-popup: render above always-on-top
Tomi Ollila [Sun, 14 May 2023 17:44:59 +0000 (20:44 +0300)]
action: support {Go,Send}ToDesktop 'wrap' option
Make wrap 'true' by default for both GoToDesktop and SendToDesktop,
in order to default to the current behaviour, and to stay consistent
with Openbox behaviour.
Consolatis [Wed, 17 May 2023 11:13:04 +0000 (13:13 +0200)]
src/output.c: destroy workspace OSD on output destroy
Consolatis [Wed, 10 May 2023 16:37:28 +0000 (18:37 +0200)]
src/workspaces.c: do not render OSD on disabled outputs
Fixes #914
Consolatis [Thu, 11 May 2023 21:36:51 +0000 (23:36 +0200)]
src/action.c: validate action type when assigning arguments
Before this patch it was possible to assign an argument with an
existing name to an action that didn't support the given argument.
An example of this is using `direction` for `GoToDesktop`.
This patch now only creates action arguments that are actually
defined for the given action type and logs an error for
unsupported arguments.
The commit also makes sure to always supply the argument name.
This will reduce required checks in other parts of the codebase
in future commits.
Partly fixes: #894
Tomi Ollila [Sat, 13 May 2023 13:10:33 +0000 (16:10 +0300)]
includes: identifier consistency in include guards
Made all header files to have LABWC_ prefix in include guard identifers.
Converted from __LABWC_ in 35 include/ files.
Converted from __LAB_ in 5 include/ files.
Added LABWC prefix to 3 include/ files.
Added include guards to 3 include/ files.
The double underscores were removed since according to C standard
those "are always reserved for any use".
Consolatis [Fri, 12 May 2023 11:53:50 +0000 (13:53 +0200)]
src/config/rcxml.c: move region validation into the validate() hook
Johan Malm [Wed, 10 May 2023 20:15:11 +0000 (21:15 +0100)]
labwc-config(5): describe element/attribute-agnostic XML parsing
Johan Malm [Tue, 9 May 2023 20:20:05 +0000 (21:20 +0100)]
window-rules: support title criteria
Example config:
<windowRules>
<windowRule identifier="foot" title="max">
<action name="Maximize"/>
</windowRule>
</windowRules>
Observe that:
- `foot -T foo` starts maximized
- `xterm -T foo` starts normal
Johan Malm [Mon, 8 May 2023 06:27:47 +0000 (07:27 +0100)]
build: bump version to 0.6.3
Johan Malm [Sat, 6 May 2023 11:26:38 +0000 (12:26 +0100)]
NEWS.md: add notes on 0.6.3
John Lindgren [Wed, 19 Apr 2023 22:10:07 +0000 (18:10 -0400)]
xwayland: Add mapped argument to xwayland_view_create()
This is a trivial cleanup to make xwayland_view_create() symmetrical with
xwayland_unmanaged_create(), and avoid the need to access view->impl from
xwayland-unmanaged.c.
The return value of xwayland_view_create() is no longer user, so return void.
No functional change.
Consolatis [Sun, 2 Apr 2023 00:18:25 +0000 (02:18 +0200)]
followMouse: add followMouseRequiresMovement
This implements the same config option as `underMouse` in Openbox.
Fixes #862
Johan Malm [Sat, 6 May 2023 10:30:45 +0000 (11:30 +0100)]
match.c: fix g_utf8_casefold() memory leak
Reported-by: @jlindgren90
Johan Malm [Fri, 28 Apr 2023 20:41:41 +0000 (21:41 +0100)]
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.
Johan Malm [Thu, 4 May 2023 20:29:14 +0000 (21:29 +0100)]
action: add Maximize
Johan Malm [Fri, 28 Apr 2023 20:21:08 +0000 (21:21 +0100)]
Add common/match.c with match_glob() from theme.c
...and make it fully case-insensitive in preparation for window-rules.
Consolatis [Sun, 30 Apr 2023 12:32:45 +0000 (14:32 +0200)]
src/output.c: fix adaptive sync
Fixes #642
Reported-by: @heroin-moose
Tested-by: @heroin-moose
Johan Malm [Wed, 26 Apr 2023 19:34:48 +0000 (20:34 +0100)]
parse-bool.c: add helpers to set bool/int iff valid boolean
Consolatis [Thu, 27 Apr 2023 08:04:55 +0000 (10:04 +0200)]
Ignore SIGPIPE
Prevent wayland clients that request the X11 clipboard but closing
their read fd prematurely to crash labwc because of the unhandled
SIGPIPE signal. It is caused by wlroots trying to write the X11
clipboard data to the closed fd of the wayland client.
See https://github.com/labwc/labwc/issues/890#issuecomment-
1524962995
for a reproducer involving xclip and wl-paste | head -c 1.
Fixes #890
Reported-by: @FuzzyQuills
Consus [Thu, 27 Apr 2023 15:55:57 +0000 (18:55 +0300)]
output: Make the session lock layer the topmost
Make sure that only the session lock layer is visible to a user. Fixes
the issue with mako notifications being rendered above the swaylock
window.
Johan Malm [Tue, 25 Apr 2023 20:28:47 +0000 (21:28 +0100)]
action: gracefully handle argument without key
Fixes: issue #894
Johan Malm [Sun, 26 Mar 2023 21:34:44 +0000 (22:34 +0100)]
common/parse-bool.c: make parse_bool() generic
...to avoid multiple versions of a boolean-parser.
- Optionally take a default value
- Return -1 on error
- Rename get-bool.c to parse-bool.c
Johan Malm [Sun, 26 Mar 2023 21:19:47 +0000 (22:19 +0100)]
action: add get_arg_value_{str,bool} to simplify multi-arg handling
Johan Malm [Sun, 26 Mar 2023 21:01:17 +0000 (22:01 +0100)]
action: make action_arg_add_bool() static
Marcin Puc [Mon, 24 Apr 2023 13:19:06 +0000 (15:19 +0200)]
Add Polish translation
Johan Malm [Fri, 21 Apr 2023 15:26:44 +0000 (16:26 +0100)]
osd: set field width to ellipsize
Johan Malm [Thu, 20 Apr 2023 21:31:26 +0000 (22:31 +0100)]
config: move cycle_* bools to window_switcher struct
Johan Malm [Wed, 19 Apr 2023 13:44:41 +0000 (14:44 +0100)]
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
Johan Malm [Wed, 19 Apr 2023 13:34:41 +0000 (14:34 +0100)]
config: make <windowSwitcher> a toplevel element
...rather than a child of <core>
Johan Malm [Wed, 19 Apr 2023 19:40:40 +0000 (20:40 +0100)]
xwayland: validate PID before activating unmanaged surface
Check that an unmanaged surface trying to grab focus is actually a child
of the topmost mapped view.
Johan Malm [Wed, 19 Apr 2023 09:14:51 +0000 (10:14 +0100)]
xwayland: handle unmanaged activate requests
Johan Malm [Mon, 17 Apr 2023 16:05:13 +0000 (17:05 +0100)]
xwayland: handle unmanaged override-redirect requests
Fixes: issue #874
Johan Malm [Mon, 17 Apr 2023 16:02:11 +0000 (17:02 +0100)]
xwayland: split out xwayland_view constructor
...and make it public in preparation for supporting override-redirect
requests from unmanaged xwayland surfaces.
Flrian [Mon, 17 Apr 2023 14:58:24 +0000 (16:58 +0200)]
po: clean up language files
Changed entries in "Language" field to language code
Added language names to "Language Team"
Removed example email address
Fixed author names in Copyright section
umksan [Sun, 16 Apr 2023 16:07:18 +0000 (13:07 -0300)]
Update es.po
Small grammatical error
May Mantari [Fri, 14 Apr 2023 14:01:22 +0000 (21:01 +0700)]
Add Indonesia translation
Sunderland93 [Fri, 14 Apr 2023 11:25:40 +0000 (15:25 +0400)]
Add Russian translation
Jean-Luc Mackail [Wed, 12 Apr 2023 06:42:32 +0000 (16:42 +1000)]
src/cursor.c: handle pointer constraint position hint
Now cursor hints are respected once cursor movement occurs
after unlocking the pointer.
Fixes Overwatch 2 failing to center the mouse pointer when
opening the communication wheel in-game.
Fixes #872
Johan Malm [Thu, 30 Mar 2023 21:19:05 +0000 (22:19 +0100)]
Support ext-session-lock protocol
Johan Malm [Sat, 1 Apr 2023 21:19:58 +0000 (22:19 +0100)]
README.md: simplify configuration section
John Lindgren [Sat, 1 Apr 2023 18:06:52 +0000 (14:06 -0400)]
view: Add view_move_to_front/back().
This avoids calling view->impl functions from cursor.c and desktop.c.
v2: Add an explicit recursion guard in cursor_update_focus().
Johan Malm [Sat, 1 Apr 2023 18:46:41 +0000 (19:46 +0100)]
server: add wlr_backend_autocreate() trouble-shooting message
Consolatis [Tue, 28 Mar 2023 17:23:49 +0000 (19:23 +0200)]
src/cursor.c: make sure the cursor is visible after startup
Before this patch, the cursor was invisible after labwc startup
unless manually moved by the user (or being positioned on top
of some some automatically spawned client surface). This patch
sets the cursor from its uninitialized value (LAB_CURSOR_CLIENT)
to the default cursor.
Consolatis [Mon, 27 Mar 2023 22:58:42 +0000 (00:58 +0200)]
src/cursor.c: fix invisible cursor on output loss / restore
Previously, the cursor image was only updated on output loss when the
cursor was on a labwc owned surface. This patch forces a re-enter of a
client surface in the remaining case of cursor being over a non-labwc
surface which causes the client to re-set its own cursor image.
This fixes a regression caused by
4dc99e2f3856650f3b61778f015a823cfae978d2 .
Thanks to @Flrian for finding the root cause of the issue.
Fixes #820
Reported-by: @Flrian
Tested-by: @Flrian
Johan Malm [Sat, 25 Mar 2023 15:57:47 +0000 (15:57 +0000)]
config: support scroll-factor
Fixes: issue #846
Juliusz Chroboczek [Mon, 20 Mar 2023 02:31:49 +0000 (03:31 +0100)]
Implement action "Lower"