Repository navigation
SwineWM 0.4.0
Added
-
IPC trees, workspaces, outputs and window/workspace events now carry all
of sway's and i3's node fields (urgent,floating,scratchpad_state,
orientation,deco_rect,window_rect,geometry,shell,
representation,window_properties.instance, …) in sway's order, so
i3 and sway IPC scripts find what they expect.percentis now worked
out as in sway. -
A native config-error nag window with the complete error list and reload
and dismiss actions. -
IPC
SUBSCRIBEsupport for workspace, window, mode, output, binding,
bar-config, shutdown and tick events;SEND_TICKnow broadcasts its tick
payload. -
IPC
GET_INPUTSandGET_SEATSnow describe SwineWM's aggregate keyboard
and pointer hooks and its single seat. -
IPC subscriptions now report window move/fullscreen changes and workspace
rename/urgency changes. -
A companion watchdog restores hidden windows after an unexpected exit or
after the manager's message loop stops responding; as the login shell it
also starts Explorer after recovery. -
smart_gaps on|off|toggle|inverse_outer, as in sway (until now accepted
and ignored). -
show_marks: marks appear on the tabs of tabbed and stacked containers
as[mark], right-aligned; marks starting with_stay hidden. -
hide_edge_borders bothhides the border of a window that fills its
workspace (a Windows border cannot hide single edges). -
bindcodeandunbindcodeaccept numeric Windows virtual-key values
(decimal, 1–255), so key bindings can be specified by code. -
New-output workspace discovery recognizes
move container to workspace
bindings as well asworkspacebindings.
Fixed
-
Switching workspace sent the window
focusevent before the workspace
focusevent, and reported the newly focused window as"visible":false.
The order is now sway's (workspace first), andvisibleis worked out
from the tree as in sway. -
swinemsg -t subscribe -m '["window","workspace"]'failed with
{"success":false}in Windows PowerShell, which drops the inner quotes
before 7.3. swinemsg now turns[window,workspace]into JSON, and also
takes plain event names:swinemsg -t subscribe -m window workspace. -
IPC events reached a subscribed client only when it sent another
message: the pipe was opened for synchronous I/O, so a waiting read
blocked every event written to it. It now uses overlapped I/O, so
listening clients (i3ipc scripts, Waybar's sway modules) get events as
they happen. Events still queued when swinewm exits are written first. -
IPC events now match sway: the
modeevent'schangeis the mode's
name (withpango_markupfrommode --pango_markup);SEND_TICKtakes
any text and broadcasts it with"first": false, and a new tick
subscriber first gets{"first": true, "payload": ""}; subscriptions add
up; theemptyworkspace event reports the workspace ascurrent; a new
window'snewevent comes before itsfocusevent; and nothing is sent
aftershutdown(nocloseevents for windows swinewm lets go of). -
swinemsg -t subscribeprints the first event, and every event with
-m/--monitor, asswaymsgdoes. -
Newly mapped floating windows are raised above their parent without
activating them, so owned dialogs do not remain obscured. -
Focus-follows-mouse keeps a visible owned dialog focused rather than
activating its owner and dropping the dialog behind it. -
Gap values are range-checked and cannot overflow layout geometry.
-
Display and DPI changes are coalesced before outputs, window layout, bars
and wallpaper are refreshed, including DPI notifications received by bars.