Repository navigation
Releases: DGBooth/HyprKwin
Release list
HyprKwin 1.1.0
HyprKwin animations 1.1.0 (changed in this release).
Added
- Outer gaps can differ per side: Top, Right, Bottom and Left on the
settings page,gapsout:T R B Lin a workspace rule, and agaps_outwith
a value per side when importing ahyprland.conf. The outer gap still sets
every side, and a side left at "same as outer gap" follows it, so existing
settings carry over. Contributed by Perrelli9338. - A stage layout, after macOS's Stage Manager. The focused window takes
the stage; the workspace's other windows wait beside it as live previews,
tilted towards it, most recently used at the top. Click a preview (or cycle
with the "next window in the layout" keys) to bring that window onto the
stage: it grows out of its preview while the one it replaces shrinks into
the strip, at Plasma's animation speed. The previews have a strip of their
own, so the stage window never covers them (the strip between them is
still the desktop's, to click); it goes on the left or right, and its
width is set on the Layout tab. Floating windows stay in front of the
stage. Right-click a preview to close its window. With more windows than fit, the mouse wheel over the previews
scrolls the strip. Windows can share the stage too: drag a preview onto it and
that window joins the one there; they wait in the strip together, as one
preview with both icons, and come back together. Drag a window off the
stage onto the strip (Meta+drag), or right-click a set's preview, to part
them again. Choose it like the other layouts: "Next layout", the new "Use
the stage layout" shortcut (unbound), the default layout setting,
layout:stagein a workspace rule, orhyprkwinctl layout stage.
Changed
-
Borders and icon tiles step aside for Plasma's own popups (the app
launcher, the calendar, the system tray) as they already did for menus,
rather than being painted over them; so do the stage layout's previews. -
Animations: HyprKwin's own borders, tab bars and stage previews no
longer fade or scale in and out with Plasma's popup and window effects
(Fading Popups, Scale, Glide, Fade). They come and go with the windows they
belong to; the animations effect now claims their opening and closing, the
way Plasma's effects leave a window to whichever effect claimed it. This is
what lets a stage switch land without anything fading half way.
Fixed
- Closing a window you had not focused since it opened left nothing
focused, or Plasma's own pick, rather than the window taking its place.
KWin focuses a new window before HyprKwin hears of it, so it never counted
as the focused one. In the stage layout, where the other windows wait off
screen, nothing got the focus at all.
HyprKwin animations 1.0.1
The script is unchanged: HyprKwin 1.0.0 is still current.
Changed
- Smoother animations when windows are re-tiled quickly. A window
re-tiled while it is still moving now carries on from where it is drawn,
bending towards its new tile, rather than jumping back and starting over
(and without the brief cross-fade that came with that). Under fractional
scaling, the rounding KWin sends a moment after a re-tile no longer
restarts the animation as the window arrives. - Maximizing works with Plasma's Maximize effect. While that effect is
on, maximizing and restoring are left to it, and HyprKwin takes over only
where it gives up or does not follow a move; with it off, HyprKwin animates
maximizing itself. This replaces a blanket half-second pause in animations
after every maximize. - Nothing animates when Plasma's animation speed is set to Instant.
Ported back from KDE Animated Tiling,
microsoftruinseverything456's fork of these animations focused on tiling
(GPL-3.0-or-later, like HyprKwin). Thank you!
HyprKwin 1.0.0
HyprKwin animations 1.0.0 (unchanged since 1.0.0-rc2).
HyprKwin 1.0. No headline feature: a promise that what is there stays
put and keeps working. From here on, your settings, shortcut names and keys,
window and workspace rules, submaps, saved layouts and hyprkwinctl's
commands and JSON carry over every upgrade (a change that would break one
waits for 2.0); docs/compatibility.md lists exactly
what is kept.
Coming from the KDE Store's 0.17, everything in 1.0.0-rc1 and rc2 below is
new to you. In short:
- Rules from the window menu (Alt+F3 › Extensions › HyprKwin › Always
float / tile / open in the scratchpad). - Fullscreen and maximize rules move to Plasma's own window rules by
themselves; HyprKwin's rules are for what Plasma's cannot do. - Plain descriptions throughout the settings page and shortcuts.
- Fixes: a script error loop with two monitors (found by a new,
hours-long soak test), and directional focus to a monitor a window had
just left.
Changed
- Supported: Plasma's LTS and current releases, on Wayland — 6.6 (the
LTS) and 6.8 — both tested before every release, the LTS now with
plasmashell too. 6.7 should keep working, but is no longer tested now that
6.8 has replaced it.
HyprKwin 1.0.0-rc2
HyprKwin animations 1.0.0-rc2 (changed in this release).
Added
- Rules from the window menu. Alt+F3 on a window (or right-click its
title bar) › Extensions › HyprKwin › Always float, Always tile or
Always open in the scratchpad: the rule for that app goes into the
settings page's list, replacing an earlier one of those for it, and the
window follows it at once. KWin only lets JavaScript scripts add to that
menu, so HyprKwin starts a small one (code/menu.js) alongside itself. The
three are shortcuts too, unbound.
Changed
-
Window rules are for what Plasma's own cannot do.
fullscreenand
maximizerules did exactly what Plasma's window rules (System Settings ›
Window Rules) do, so they move there by themselves when HyprKwin starts,
with a message saying so; a rule with afloating:matcher, which Plasma's
rules cannot express, stays and keeps working. Plasma's own rules are kept
as they are, in whichever format your Plasma keeps them. Thehyprland.conf
importer likewise writesfullscreen,maximize,minsize,maxsizeand
nofocusrules as Plasma window rules (once, however often it runs). The
rest of HyprKwin's rules are about tiling, workspaces, scratchpads and
floating windows, or override HyprKwin's own settings. Raised on r/kde by a
KDE contributor. -
Descriptions say what things do, for Plasma users. The settings page,
the animations' settings, shortcut descriptions, the store description and
the docs explained features by comparison with Hyprland ("like Hyprland",
dwindle:force_split, "Inner gaps (gaps_in)"). They now describe each
setting plainly; Hyprland comes up where it helps someone moving over (the
default keys, the rule syntax, the importer). A few shortcuts read
differently — "Keep window at its own size in its tile" (was "Pseudotile
window"), "Send window to workspace N (stay here)" (was "Move window
silently…"), "Back to the workspace you were on" (was "Former workspace")
— with the same names and keys.
HyprKwin 1.0.0-rc1
HyprKwin animations unchanged: 0.16.1 is still current.
Fixed
-
Meta+→ (or any direction) to a monitor a window had just left did
nothing. With nothing that way on its own monitor, HyprKwin asked KWin
for "the screen to the right", which KWin counts from its own idea of the
active screen, and just after a window went to the other monitor and came
back that was still the other one. The monitor that way is now found from
where the focus is. -
A script error loop with two monitors (in every release since at least
0.12, emulated per-monitor workspaces): a window sent back to its monitor
just after the split beside it was nudged took the focus while still on its
way; the current desktop followed it, KWin focused a window on that
desktop, the desktop followed that one back, and so on until HyprKwin ran
out of stack ("Maximum call stack size exceeded" in the log). A focus
change HyprKwin's own desktop switch caused no longer moves the desktop
again. Found by the new soak test (tests/e2e/soak.py), which runs hours
of everyday use on two monitors and watches for errors, leaks and slowdown. -
Upgrades are rehearsed: the tests install 0.10, 0.12 and 0.15 from
their release tags, with lived-in settings (an old-style rule, a submap, a
workspace rule, colours and gaps, a key of your own, a saved layout),
upgrade them as the KDE Store does, log in again, and check that all of it
carried over and that the new version is the one running. -
Faster layout switches with many windows open. Switching layout on a
workspace with 40 windows took up to 75 ms (a visible stutter), most of it
making the icon tiles that stand in for tiles too small to use; those are
now kept and used again, and the same switch takes about 25 ms. HyprKwin
times its layout and drawing, and the tests hold them to a budget.
HyprKwin 0.17.0
HyprKwin animations unchanged: 0.16.1 is still current.
-
The README is now a short front page, with the details in
docs/: getting started,
settings, rules and scripting,
troubleshooting (new: the common problems, and
how to report one) and development. -
hyprkwinctlcomes with the KDE Store package (in
~/.local/share/kwin/scripts/hyprkwin/contents/tools/), and bug reports on
GitHub have a form asking for what it says (hyprkwinctl version). -
HyprKwin says when the animations are missing or off. The animations
are a separate KWin effect, and the KDE Store cannot make one depend on
the other, so it is easy to end up with the script alone, or with the
effect installed but never turned on (KWin only finds a new effect after
logging in again, and then it still has to be switched on). Shortly after
starting, HyprKwin says which, and where to fix it. Once: it remembers
having said so, and "Tell me when the animations effect is missing or
turned off" on the settings page (Behaviour) turns it off. -
The message about keys other shortcuts hold comes once, not at every
login, and gives the command that hands them over. It comes again only if
a key comes to clash later (a Plasma update, say). Meta+K still marks every
one. -
The animations effect keeps its own version from now on: it only
changes when the animations do, so an update to the script no longer
brings an update to the effect with nothing in it. Every release says
which version of the animations goes with it, and has both files.
(tools/release.shdoes the releasing.)
HyprKwin 0.16.1
Fixed
- The keys guide (Meta+K) opened empty the second time: only its title
and search box showed. It now opens at the full list's height every time,
and keeps that height while a search narrows the list (Qt also stops
warning about a binding loop on its height). - With focus following the mouse, the keys guide closed as soon as the
pointer moved. Nothing has the keyboard while the guide is up, so the
first window the pointer crossed took the focus, and taking the focus
counted as being done with the guide. Focus that only follows the pointer
(KWin's focus policy or HyprKwin's own setting) no longer closes it; Escape
or Meta+K do, and the window under the pointer keeps the focus.
HyprKwin 0.16.0
- The workspace keys work on any keyboard layout. Plasma matches a
shortcut by the character a key types, so the defaults (Meta+!…
Meta+)for moving a window to a workspace) only ever worked on a US
layout: on a UK one Meta+Shift+3 isMeta+£, and on AZERTY even
Meta+1needs Shift. HyprKwin now gives the workspace keys (switch, move,
move silently, group window) the characters of the layout in use, from a
table of every layout xkb knows, and follows when you switch layout. A key
you rebound yourself stays as it is; where a layout's character already
belongs to another shortcut, the workspace key keeps its old one and the
key check reports it. - Getting ready for 1.0: docs/compatibility.md
lists what stays stable across upgrades (settings, shortcut names, rule
syntax,hyprkwinctl's commands, saved layouts) and what does not. Along
with it:- Window rules kept the old way (one text entry, from before the settings
page had its list) move into the list, so the page shows them. They
applied all along; now you can see and edit them. - Saved layouts carry a format version. Older ones are still read.
hyprkwinctl versionsays what is installed and running, and which
KWin.hyprkwinctl stateis marked as internal, for debugging; scripts
should usewindows --jsonandworkspaces --json.- The
dumpStateshortcut is labelled "Used by hyprkwinctl (leave
unbound)" in System Settings, and left out of the keys guide.
- Window rules kept the old way (one text entry, from before the settings
- A submap whose key another shortcut holds is reported, as HyprKwin's
other keys already were: on screen at start, and in the keys guide. - Tests: a crash in the test sandbox no longer shows up as a crash of your
desktop. Nothing the tests start leaves a core dump (a core limit of 1
makes the kernel skip systemd-coredump, which KDE's crash reporter reads),
and the sandbox has its own cache and state folders, where KWin's crash
handler writes. A test still fails on a crash, from KWin's log.
HyprKwin 0.15.1
- The keys guide (Meta+K) can be searched
(#6): type and it narrows to
the shortcuts whose name, section or keys hold every word, or whose name
has the letters in order (mvwsfinds "Move window to workspace"). Escape
empties the search, then closes the guide. While it is up nothing else has
the keyboard, so typing reaches no window underneath; the one you were in
has it back after. KWin gives scripts' windows no keyboard, so the guide
holds the letter keys itself while it is up, and lets KDE forget them
after: neither they nor its scrolling keys stay listed in System Settings
any more.
HyprKwin 0.15.0
- Ready for Plasma 6.8. Nothing HyprKwin uses changed, but KWin 6.8
checks scripts more strictly and logged a warning for every setting read
before the line that declares it; those are declared first now. The
end-to-end tests also run against Plasma 6.8 in a container
(tools/test-plasma.sh 6.8, which replacestools/test-plasma-6.6.sh:
tools/test-plasma.sh 6.6runs the 6.6 one). - Tests: the panel tests run against a real plasmashell again (it needs
kactivitymanagerd, and software drawing when nested on NVIDIA), and on
Plasma 6.8 too; tests whose tools are missing say SKIP rather than pass;
nothing the sandbox starts reaches your own session or outlives it; and
on a machine with an integrated GPU beside an NVIDIA one, the tests use
the integrated one. - The open/close animation picked in the animations effect's settings
holds on Plasma 6.8. 6.8 can load its own (Scale, by default) after
HyprKwin's effect at login, which left both running; the choice is now
applied again as windows open.
Fixed
- Activities (#2):
- Going to a workspace could switch activity. A workspace remembers the
window used last on it, and focusing that window, when it was on another
activity, took KWin there. Only windows on the current activity (and not
minimized) are given the focus now, there and when a window closes. - Switching activity with several monitors could shuffle what they show,
putting two workspaces' windows on one monitor. KWin remembers a desktop
for each activity and switches to it, which HyprKwin took for a
workspace switch on the monitor in use. Each activity now remembers what
every monitor showed on it, and gets it back. - After switching activity, the window you last used there has the focus.
- Going to a workspace could switch activity. A workspace remembers the