Skip to content

Releases: Domoel/Simple-Tiling

Simple Tiling v7.6

11 Oct 20:24
8db89fc

Choose a tag to compare

Critical Bugfix Release

This is a stability release that fixes several critical bugs for users on modern GNOME Shell versions, particularly affecting keyboard shortcuts on Wayland and the manual installation process.

🐛 Critical Fixes

  • Fixed Keyboard Shortcuts on Wayland: Resolves a major issue where keyboard shortcuts would not register on modern Wayland systems (especially on distributions like Fedora, Arch, and their derivatives). The extension now uses a more robust API for keybinding registration to ensure reliability across different environments. Thank to @cory2005 who found a solution to this issue and tested it.

  • Corrected Manual Installation Path: Fixed a bug in the Makefile that caused the extension to be installed in a nested directory (.../uuid/uuid/) when using the make install-* commands.

  • Resolved ImportError on Some Systems: Corrected the module import order in all modern versions to prevent a GJS loader bug that could stop the extension from starting on certain distributions.

Thanks to the community for the quick and detailed bug reports that made these fixes possible!

Simple Tiling v7.5

01 Oct 14:45
5f09053

Choose a tag to compare

GNOME 40 Enterprise Compatibility & Build System Update

This is a significant compatibility release that introduces a new version of the extension to support enterprise environments like RHEL 9. It also refines the versioning scheme to ensure maximum stability for all users on modern GNOME.

✨ New Features & Compatibility

  • Introduced "Enterprise" Version for GNOME 40: A new, dedicated version has been created to provide support for GNOME 40 systems (like on RHEL 9) that do not use the modern JavaScript import syntax. This differentiation was necessary because GNOME 40 was a transitional release, and some long-term support distributions opted for the older, more established module system for stability. The new "Enterprise" version combines the modern GNOME 40-era logic and UI with the older, universally compatible const... = imports... syntax, ensuring the extension and its settings panel work flawlessly on these systems. Thanks @bbenne10 for bringing this issue up!!
  • Refined "Interim" Version Target: To accommodate the new Enterprise version, the Interim version now exclusively targets GNOME 41 through 44, where modern import syntax is standard.

🛠️ Build System Improvements

  • Updated Makefile: The Makefile has been updated to include new targets (build-enterprise, install-enterprise) for the new version. This keeps the build and manual installation process simple and consistent across all four supported versions of the extension.

Simple Tiling v7.4

29 Sep 07:40
ef098d8

Choose a tag to compare

Critical Hotfixes for Modern & Interim Versions

This is a stability release that fixes several critical bugs reported by users on modern GNOME Shell versions (40 and newer).

🐛 Fixes & Improvements

  • Fixed Startup Crash on GNOME < 49: Resolved a TypeError: get_session not a function that prevented the extension from starting on versions 45-48. The version detection is now fully backward-compatible. Thanks to @kapouer to report this issue.

  • Fixed ImportError on Multiple Systems: Corrected the module import order in both the modern (45+) and interim (40-44) codebases. This resolves a subtle GJS loader bug that could prevent the extension from starting on certain distributions.

  • Restored Keybinding Functionality on interim (40-44): Fixed a bug where keyboard shortcuts were not working in the "Interim" version. A required parameter has been restored to the add_keybinding API call for this specific GNOME era.

Simple Tiling v7.3

28 Sep 21:51
5020250

Choose a tag to compare

GNOME 49 Compatibility & Simplified Maintenance

This release introduces support for GNOME Shell 49 and refactors the modern codebase to simplify future maintenance and updates.

✨ Features & Improvements

  • Added GNOME 49 Support & Maintained Backward Compatibility: The extension is now fully compatible with GNOME 49. This was achieved by using a conditional (if/else) check to handle the new is_maximized() and unmaximize() APIs, while ensuring that users on older versions (GNOME 45-48) can continue to use the extension without issues.

A huge thank you to @ValerioCataldo who provided the initial pull request for this! And a huge thanks to @Neo-29 who tested the new version.

Simple Tiling v7.2

22 Aug 10:38
bbe09af

Choose a tag to compare

This is a bugfix release that finalizes the extension's architecture to provide robust and stable support across all modern GNOME Shell versions, resolving all known ImportError issues reported by users.

🐛 Fixes & Compatibility

Simple Tiling v7.1

11 Aug 20:56
55dd6ca

Choose a tag to compare

This is a critical bugfix release that addresses startup and settings errors reported by users on modern GNOME Shell versions (40 and newer).

🐛 Bug Fixes

Simple Tiling v7

11 Aug 00:08
c3c47dc

Choose a tag to compare

This is a critical bugfix release that addresses startup and settings errors reported by users on modern GNOME Shell versions. The extension's architecture has been significantly improved to ensure stability and compatibility across a wide range of GNOME releases, based on excellent feedback from users.

🐛 Bug Fixes & Compatibility

  • Fixed Startup Crash on GNOME 45+: Resolved an Error: Expected function... got number by correcting the API call for creating keybindings in the modern codebase.

  • Fixed Startup Crash on GNOME 40-44: Resolved a critical ImportError by using the correct import path for the extension's base class on these transitional GNOME versions.

  • Fixed Settings Window Crash: The preferences window no longer crashes on GNOME 40-41. A very new settings API (SettingsBindMapping) was replaced with a more broadly compatible method.

  • Improved Wayland Support: The window exception feature now works reliably on Wayland by checking for both WM_CLASS and App ID, ensuring consistent behavior across display servers.

🛠️ Build & Architecture

  • To provide a stable experience for all users, the extension is now built from a single codebase into three distinct packages for different GNOME eras:

     Legacy: For GNOME 3.38
     Interim: For GNOME 40-44
     Modern: For GNOME 45+
    
  • The Makefile automates the entire release process. Running make build generates all three correctly configured ZIP packages. make install-* commands have been added to streamline local testing / installations.

Simple Tiling v6

29 Jul 22:23
0a2c273

Choose a tag to compare

✨ Features

  • Fully English settings UI in both legacy (GTK 3) and modern (Adwaita / GTK 4) preference windows
  • Extended compatibility – GNOME 3.38 → 48 via separate legacy & modern builds
  • Wayland support (beta): window movement, pointer handling and keybindings work in native Wayland sessions
  • Modular Makefile build: make build‑legacy, make build‑modern; schema is compiled automatically, README & LICENSE are bundled

💡 Improvements & Refactoring

  • Code split into legacy.js (classic loader with init()) and modern.js (ES module with export default)
  • Keybinding helpers fall back between Main.wm.addKeybinding and global.display.add_keybinding; forward‑compatible with future event signatures
  • Dynamic masking of conflicting WM shortcuts based on detected schema keys
  • Robust pointer helper covering global.get_pointer, Clutter events and seat pointer
  • Exception loader: ByteArray for legacy, TextDecoder for modern
  • Debounced tiling queue prevents redundant re‑layouts during rapid events
  • Signal bookkeeping ensures clean disconnects on disable

🐛 Bug Fixes

  • None so far – but if you find any, let me know! 🙂

Simple Tiling v5

25 Jul 15:02
95eb37d

Choose a tag to compare

💡 Compliance and Stability Release

This version incorporates all feedback from the official GNOME Extensions review process. The focus is on stability, correctness, and adhering to modern development best practices.

  • Corrected GSettings Schema: The path attribute in the .gschema.xml file has been fixed to correctly match the schema id. This resolves a critical validation error and ensures that settings are loaded reliably by the system.

  • Modernized Timer API: All calls to the legacy Mainloop module (e.g., Mainloop.timeout_add) have been replaced with their modern and preferred GLib equivalents. This aligns with current GNOME development standards and improves future compatibility.

  • Implemented Robust Timeout Management: All asynchronous operations (timers) are now tracked and safely removed when the extension is disabled. This prevents potential errors and resource leaks, significantly improving the stability of the extension.

Simple Tiling v4

24 Jul 22:49
b144a90

Choose a tag to compare

Features

  • New Interactive Window Focus Switcher
    • added Interactive Window Focus Switcher to be able to change the current window focus with a set of customizable keyboard shortcuts in every direction.
    • added the corresponding setting parameters in the settings panel

💡Improvements & Refactoring

  • Centralized Keybinding Management:

    • All keybindings are now defined in a single, central KEYBINDINGS constant. This eliminates code duplication between the methods that bind and unbind shortcuts.
    • Adding or removing shortcuts is now much easier and less error-prone, as it only requires a change in one location.
  • Improved Readability

    • "Magic numbers" for tiling and centering delays have been converted to global constants (TILING_DELAY_MS, CENTERING_DELAY_MS) at the top of the file.

🐛 Bug Fixes

  • Corrected Window Manager Settings Handling
    • Fixed a potential bug where the extension was reading from one G.Settings instance but writing to another when saving and restoring system keybindings.
    • The InteractionHandler now consistently uses its own internal settings object, preventing inconsistencies and making the logic more robust.
    • As a result, a redundant settings object was removed from the Tiler class, simplifying the overall code.