Skip to content

Releases: zeroxoneafour/polonium

Development build

15 Apr 02:16
83084c9
Compare
Choose a tag to compare
Development build Pre-release
Pre-release

Get the latest version with all the new bugs and features.

Polonium v1.0rc - Hoppy Easter

30 Mar 20:20
v1.0rc
56f9f1a
Compare
Choose a tag to compare
Pre-release

Happy Easter to anyone who celebrates it! I will be with my family tomorrow, so this is an early Easter present of the first ever feature complete version of Polonium. Adding the monocle layout and fixing tiling did not take nearly as long as I anticipated, so I think it's finally at a place where I can confidently feature freeze development for now. I also want to get this release out as soon as possible so bugs can be reported and fixed for v1.0's release. If everything goes smoothly, it should be released next week, but if not I'm not in a huge rush.

Features

  • The much requested Monocle layout
  • Window dragging with the mouse
  • Tile resizing for supported layouts
  • Some engines now have persistent settings

Bug fixes

  • Pinned windows now get untiled and tiled properly
  • Settings dialog and application fixed
  • Docs updated

Under the hood

  • Engines can save custom persistent settings through dbus-saver
  • Engines now have access to relative sizing, making writing resizeable engines easier

Roadmap

  • Fix bugs if there are any
  • Get v1.0 stable and released!

Special thanks

I advise taking a look at the docs, as they have been updated with some of the more advanced features such as the Monocle layout shortcuts. Docs on the engine settings popup may be added as well, as it and dbus-saver are powerful features for people who like to maintain a somewhat static layout.

Let's hope this release doesn't cause more crashes...

(Minor edit, it did but its fine now)

Polonium v1.0b2 - Slow and steady

27 Mar 22:00
v1.0b2
38f751e
Compare
Choose a tag to compare
Pre-release

Quite a few bugs have been fixed and features added to this release. A pretty small beta in terms of code diff, but there's a lot of qol changes here that should make Polonium useable for the time being unless you really want to drag windows to manage them. That particular feature is still completely broken, but with the merging of this KWin pr Polonium should be ready for a release candidate within a few weeks.

Features

  • Added shortcuts for switching layouts quickly. Most shortcuts are unset by default but can be set through System Settings

Bug fixes

  • Fixed some issues with fullscreen, minimizing, and maximizing
  • Better support for the KWin tiling mode
  • Fixed crashes by removing relevant code/features for the time being. This means you can no longer drag windows out of tiles
  • Fixed resizing shortcuts enough to be useable
  • Made untiling and tiling more reliable
  • DBus integration with dbus-saver fixed, I highly recommend using this if you have a complex layout
  • Fixed docs (#130)
  • Fixed issue with active windows that prevented border selected and insert selected from working

Under the hood

  • Untiled windows are tracked by the driver rather than the engine. This simplifies engine code and makes untiling more reliable
  • OSD added for switching engines, can probably be used for other things if desired
  • Relative tile size support added to engines but not yet implemented in driver

Roadmap

  • Monocle layout coming soon probably
  • Tile dragging will be fixed probably when KWin 6.0.4 is released
  • Resizing in layouts will be better supported in the future

Special thanks

  • @sampbarrow for reporting the KWin crashing bug and the KWin team for fixing it
  • @CyrusYip for fixing the readme
  • TheJollyDuck and h_d33r for donating on Ko-Fi
  • @root-hal9000 for donating

There's not much more to say, relatively uneventful release but there are some pretty important changes in here that I think are important enough to publish. Thank you all for the support, until next time I suppose ❤️

Polonium v1.0b1 - It's been a while

03 Mar 05:09
v1.0b1
32b8af8
Compare
Choose a tag to compare
Pre-release

It really has.

If you're worried these release notes are too boring, I'm cooking up some nice quips for the full v1.0 release. I've been trying to rush this one out for the people out there using Plasma 6. This will also be (as of now) the only ever released build of v1.0 for Plasma 5, so I would get it while its hot if you don't need things like shortcuts.

Features

  • Update to Plasma 6. Plasma 5 is still available with this release, but the code quality is worse, it may have more (or fewer) bugs, and it is lacking shortcuts.
  • Complete rewrite of all internal code
  • Use an external NPM library for the KWin API (made by me)
  • Completely new in-house API for engines, compatible right now with both Plasma 5 and 6. Should be easy to create layouts that fit your needs if you want to mod the tiling engine.
  • Object-oriented code, much easier to read and contribute to than the event-oriented code residual from kwin-autotile.
  • More stability all-around (probably, see known bugs)
  • Better multi-screen support
  • Better minimum size support (resizing WIP right now)

Bug fixes

  • Most bugs involving ghost tiles and ghost clients have been fixed by the rewrite. Maybe new ones exist too, who knows?

Under the hood

  • I'm not even going to start on how much has changed. VTEC just kicked in, yo.

Roadmap

  • The most important thing right now is fixing the occassional crashes and initialization fails. There's only so much I can do, because in theory the script should never be the cause of a crash (in the same way JS that runs on a browser should never be able to crash a browser). These issues may be smoothed out with later releases of Plasma 6, so I suppose only time will tell if these issues need to be investigated further.

Special thanks

Donations

Code

  • @FPtje for teaching me how to use NPM
  • @sampbarrow for reporting some critical bugs
  • KWin for making their API 30x better in Plasma 6, especially in the object-oriented aspects

See you next beta, space cowboys

Polonium v0.6.0 - Back to school

21 Aug 22:27
v0.6.0
0011f95
Compare
Choose a tag to compare

It's that time of the year again! I've spent a large amount of my summer working on this project, and my code contributions will probably come down now that school is back in session for me. I will still actively work on issues and pull requests. I may refactor the code as well to be more workable for others in the future. A v1.0.0 is looking promising after the refactor and some other KWin bugs are fixed. A major goal of v1.0.0 for me is functionality on Plasma 6, so that release would probably come at around the time of the Plasma release.

Features

  • Tenative support for minimum window sizes (#52)
  • Tile resizing should be done by pixels instead of by relative size
  • Per-desktop settings configuration
  • Added insertion points to Half and ThreeColumn
  • Added DBus interface to persist some settings across logouts
  • Rotation option to rotate most layouts (#68)
  • Keybinds to switch layouts specifically (#74)

Bug fixes

  • Untile/Retile now works better with ThreeColumn (#62)

Under the hood

  • Literally just some website updates for the new features

Roadmap for next major release

  • Refactoring to use a more object-oriented approach, instead of the prodecuralish jumble the code is currently
  • Working with Plasma 6 and fixing some KWin bugs

Special thanks

This release, no one made any PRs 😢 A large reason is probably the mess that is the code currently, which is now my top priority to fix up. I'm sure there will be lots of bugs to fix after this update, and I won't be able to handle all of them myself on top of schoolwork. I don't expect the next major update to be out for quite a while (probably v0.7.0 around the end of 2023/early 2024) but I anticipate a large amount of point releases from the bugs introduced by having another (still optional) DBus service running alongside the script.

Polonium v0.5.2 - Coming along

04 Jul 17:52
v0.5.2
c36e5ee
Compare
Choose a tag to compare

This release has been in the making for a little while longer. While it was helpful to take a step back from the very rapid development that Polonium has been going through in the last month, a critical bug with QTimer did slip past in v0.5.1 due to the QML update. Regressions and critical bug fixes may be released very soon after they are discovered in point releases going forward. I'm feeling pretty comfortable with the pace of development right now though, and for features there may be a bit longer of a wait between updates now. Next update will probably be v0.6.0, and I have some issues to fix for that as well as some concepts that may or may not work.

Features

  • Rudimentary monocle layout (#34)
  • Quick tiling and quick tile shortcuts (#26)
  • Windows return to their previous position when retiled (#43)
  • Unfullscreen when another window is tiled (experimental, #53)

Bug fixes

  • Fixed QTimer undefined bug (countless issues, first in #38)
  • Added plasmashell to default no-tile list, fixing some bugs (#51, #35)
  • Handlers for certain actions set per-window (#37)

Under the hood

  • Website redesign (#36, #41)
  • Makefile fix (#46)

Roadmap for next major release

  • Support for window minimum sizes (#52)
  • Settings on a per-desktop basis using QML - Pretty ambitious, but could be done
  • Userspace daemon to save settings - This would be a completely optional, very lightweight dbus interface that runs alongside KWin to help the script save and load settings. Would probably be written in Rust and would be installed and enabled separately from the script

Special thanks

If there are no regressions in this release, next major release may take quite a while (over a month or so). There may be some point release bug fix updates until then.

Polonium v0.5.1 - Just as the founding fathers intended

23 Jun 22:37
b0e3ea7
Compare
Choose a tag to compare

Untile windows when dragging them, since that's what the founding fathers intended. Four i3 users break into my house. "What the devil?" As I grab my mouse and shift key. Blow a golf ball sized hole through the first man's layout, his workflow's dead on the spot. Drag a window over the second man, miss him entirely because it's unpredictable and nails the neighboring desktop. I have to resort to the shortcuts mounted in my KWin settings, "Tally ho lads" the keybinds shred two desktops in the blast, the window movement destroys several layouts. Fix undefined behavior and charge the last terrified rapscallion. His desktop crashes waiting on his computer to reboot since engine bugs are impossible to fix. Just as the founding fathers intended.

Features

  • Window dragging now takes directions and can place windows accurately (#25)
  • Same applies for insertion shortcut
  • QML frontend allows for more GUI integration, right now shows when layout is switched (like Bismuth)
  • ThreeColumn layout starts insertion on right
  • Half and ThreeColumn can now place windows to the left and right of the desktop with dragging
  • Engine falls back to KWin (#33)

Bug fixes

  • Moving windows with the insert keybind now swaps the windows if the insertion has no effect
  • Windows no longer change position dramatically when switching desktops (#24, #27)
  • Tile resizing with shortcuts minimum values fixed (#32)

Under the hood

  • Building issues on some systems due to lack of parentheses fixed (#29, #31)
  • Use esbuild instead of tsc for compiling typescript
  • Script now uses QML

Roadmap for next major release

  • Quick tiling integration - It's on my radar, but I don't know how I'll do it
  • Monocle layout - It would have only a little functionality, but would be better than nothing

Special thanks

  • @Foxinatel for code cleanup (#33)
  • @leonderdunna for a small PR (#31)
  • @polair for a large donation (#19)
  • Carl Schwan for donating on Ko-Fi

Next release may take a little while longer, I just saw that more accurate tiling when moving is a highly requested feature. This new system with directional tile placement will serve as an alternative to keeping windows tiled while moving them for the foreseeable future.

Polonium v0.5.0 - Father's Day Update

19 Jun 00:20
62ae510
Compare
Choose a tag to compare

Polonium v0.5.0 is a large and mostly community-fed update, with several PRs and issues opened to both fix critical problems and add new, important features. This project has become larger than I ever thought it would with the help of the incredibly supportive KDE community. I would like to also take these patch notes to address the future of Polonium (don't worry, nothing's happening).

As probably a few of you know, I usually post these release notes or something similar on Reddit's r/KDE. Unfortunately, Reddit has made API changes to eliminate the community projects that have supported them for several years. I stand in agreement with r/KDE in the blackout, and new update information will be posted on both the unofficial Lemmy and official Discuss communities. I would also like to start releasing smaller, minor releases with bugfixes ported from the master branch. It'll be set up eventually.

Well, enough of that. I bet you didn't read all of that, did you? If you did, it was probably pretty pointless: you should've skipped down and read about all the new community contributed features and bugfixes.

Features

  • Three Column tiling mode
  • Cleaned up Half tiling mode
  • The Floating tiling mode has been replaced by the KWin tiling mode, which supports creating tiles like how default KWin does
  • Config UI rewrite (#11)
  • Maximizing windows when they are the only one on screen (#15)
  • BTree option to spawn new windows next to the selected window (#13)
  • Blacklist based on window titles (#16)
  • Resizing windows with shortcuts (#19)
  • Shortcut to reload tiling
  • Countless new configuration bells and whistles

Bug fixes

  • Electron apps now tile correctly (#9)
  • Window maximization untiles windows (#20)
  • Screens now work properly when moving windows (#14)

Under the hood

  • Makefile doesn't use parallel (#12)
  • Create nightly releases on Git pushes (#17)
  • Added sponsor links to readme

Special thanks

So, happy Father's Day! I don't know how many of you are fathers, but this is my gift to you. (My dad uses Windows)

Polonium v0.4.0 - Production ready

03 Jun 05:38
45acaae
Compare
Choose a tag to compare

It's finally here! With feedback from you guys and a bit of elbow grease, Polonium v0.4.0 is ready to go for most use cases. With support for screens, activities, more layout engines, minimized windows, and more, Polonium should work at almost all times. Of course, if you find a bug, submit it so it can be fixed in the next release.

Another release probably won't come for at least another week, as I am out of bugs that are personally holding me back from eating my own dog food. If you are eager from the latest build, the polonium.kwinscript from GitHub master will (almost) always work just as well as the latest official release, if not better.

Three column tiling is likely coming in the next release, if you are wondering. (There's a lot of code that needs to be written)

Polonium v0.3.0 - Shortcuts and QOL

28 May 19:00
4675eb7
Compare
Choose a tag to compare
Pre-release

I think that, as far as I personally am concerned, this script is more or less feature complete. This is the point where I am going to look into bug reports and feature requests from other people to get this script production ready. If you have any problem at all with this script, feel free to drop an issue.

Next update, I'm thinking of adding another tiling engine. I want to see if I can get the old Bismuth hamburger-looking tiling engine implemented, as well as maybe a 3 column engine.