Compare commits
21 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5020250699 | |||
| 16688d6996 | |||
| 6b8ac746aa | |||
| bcc5044cf8 | |||
| e2df9fb038 | |||
| 5e23390911 | |||
| 7ba8dd1b0f | |||
| 849e2dc177 | |||
| 982ca71642 | |||
| a62c2307f9 | |||
| b1c4924276 | |||
| 73874fbd4b | |||
| e4af31cb90 | |||
| b400189b4f | |||
| 568ceb7823 | |||
| 138701a33d | |||
| bbe09af89b | |||
| 3331c84f31 | |||
| 6591690c69 | |||
| 40bea7a937 | |||
| 4ea80d27bf |
@@ -12,7 +12,7 @@
|
|||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
UUID := simple-tiling@domoel
|
UUID := simple-tiling@domoel
|
||||||
VERSION := 7.1
|
VERSION := 7.2
|
||||||
EXTDIR := $(HOME)/.local/share/gnome-shell/extensions
|
EXTDIR := $(HOME)/.local/share/gnome-shell/extensions
|
||||||
|
|
||||||
COMMON_FILES := prefs.js schemas exceptions.txt locale *.css README.md LICENSE
|
COMMON_FILES := prefs.js schemas exceptions.txt locale *.css README.md LICENSE
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ A lightweight, opinionated, and automatic tiling window manager for GNOME Shell
|
|||||||
|
|
||||||
Simple Tiling is a GNOME Shell extension created for users who want a clean, predictable, and automatic tiling layout without the complexity of larger, more feature-heavy tiling extensions. It is designed to be simple to configure and intuitive to use, focusing on a core set of essential tiling features.
|
Simple Tiling is a GNOME Shell extension created for users who want a clean, predictable, and automatic tiling layout without the complexity of larger, more feature-heavy tiling extensions. It is designed to be simple to configure and intuitive to use, focusing on a core set of essential tiling features.
|
||||||
|
|
||||||
This extension was built from the ground up to be stable and performant on **GNOME Shell 3.38**. However it is now also supporting modern gnome shells up to **version 48**.
|
This extension was built from the ground up to be stable and performant on **GNOME Shell 3.38**. However it is now also supporting modern gnome shells up to **version 49**.
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
@@ -37,7 +37,7 @@ This extension was built from the ground up to be stable and performant on **GNO
|
|||||||
|
|
||||||
Please note that this extension has been developed for a very specific environment. However, with the latest updates, I have ensured that modern Gnome Shells and Wayland are also supported.
|
Please note that this extension has been developed for a very specific environment. However, with the latest updates, I have ensured that modern Gnome Shells and Wayland are also supported.
|
||||||
|
|
||||||
* **GNOME Shell Version:** **3.38 - 48**
|
* **GNOME Shell Version:** **3.38 - 49**
|
||||||
* **Session Type:** **X11** (Wayland is still in beta but should be fine!).
|
* **Session Type:** **X11** (Wayland is still in beta but should be fine!).
|
||||||
* **Monitor Setup:** **Single monitor only.** Multi-monitor support is not yet implemented.
|
* **Monitor Setup:** **Single monitor only.** Multi-monitor support is not yet implemented.
|
||||||
|
|
||||||
@@ -122,4 +122,3 @@ This extension was built to solve a specific need. However, future enhancements
|
|||||||
## License
|
## License
|
||||||
|
|
||||||
This project is licensed under the MIT License - see the `LICENSE` file for details.
|
This project is licensed under the MIT License - see the `LICENSE` file for details.
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,8 @@
|
|||||||
"45",
|
"45",
|
||||||
"46",
|
"46",
|
||||||
"47",
|
"47",
|
||||||
"48"
|
"48",
|
||||||
|
"49"
|
||||||
],
|
],
|
||||||
"settings-schema": "org.gnome.shell.extensions.simple-tiling.domoel",
|
"settings-schema": "org.gnome.shell.extensions.simple-tiling.domoel",
|
||||||
"preferences_ui": "prefs.js",
|
"preferences_ui": "prefs.js",
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////
|
||||||
// Simple‑Tiling – MODERN (GNOME Shell 45+) //
|
// Simple‑Tiling – MODERN (GNOME Shell 45+) //
|
||||||
// © 2025 domoel – MIT //
|
// © 2025 domoel – MIT //
|
||||||
/////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
@@ -14,6 +14,7 @@ import GLib from 'gi://GLib';
|
|||||||
import Clutter from 'gi://Clutter';
|
import Clutter from 'gi://Clutter';
|
||||||
|
|
||||||
// ── CONST ────────────────────────────────────────────
|
// ── CONST ────────────────────────────────────────────
|
||||||
|
const SHELL_MAJOR = parseInt(Shell.get_session().get_shell_version().split('.')[0]);
|
||||||
const WM_SCHEMA = 'org.gnome.desktop.wm.keybindings';
|
const WM_SCHEMA = 'org.gnome.desktop.wm.keybindings';
|
||||||
|
|
||||||
const TILING_DELAY_MS = 20; // Change Tiling Window Delay
|
const TILING_DELAY_MS = 20; // Change Tiling Window Delay
|
||||||
@@ -347,8 +348,15 @@ class Tiler {
|
|||||||
if (index > -1) this._centerTimeoutIds.splice(index, 1);
|
if (index > -1) this._centerTimeoutIds.splice(index, 1);
|
||||||
|
|
||||||
if (!win || !win.get_display()) return GLib.SOURCE_REMOVE;
|
if (!win || !win.get_display()) return GLib.SOURCE_REMOVE;
|
||||||
if (win.get_maximized())
|
if (SHELL_MAJOR < 49) {
|
||||||
win.unmaximize(Meta.MaximizeFlags.BOTH);
|
if (win.get_maximized()) {
|
||||||
|
win.unmaximize(Meta.MaximizeFlags.BOTH);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (win.is_maximized()) {
|
||||||
|
win.unmaximize();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const monitorIndex = win.get_monitor();
|
const monitorIndex = win.get_monitor();
|
||||||
const workspace = this._workspaceManager.get_active_workspace();
|
const workspace = this._workspaceManager.get_active_workspace();
|
||||||
@@ -558,7 +566,15 @@ class Tiler {
|
|||||||
height: workArea.height - 2 * this._outerGapVertical,
|
height: workArea.height - 2 * this._outerGapVertical,
|
||||||
};
|
};
|
||||||
windowsToTile.forEach((win) => {
|
windowsToTile.forEach((win) => {
|
||||||
if (win.get_maximized()) win.unmaximize(Meta.MaximizeFlags.BOTH);
|
if (SHELL_MAJOR < 49) {
|
||||||
|
if (win.get_maximized()) {
|
||||||
|
win.unmaximize(Meta.MaximizeFlags.BOTH);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (win.is_maximized()) {
|
||||||
|
win.unmaximize();
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
if (windowsToTile.length === 1) {
|
if (windowsToTile.length === 1) {
|
||||||
windowsToTile[0].move_resize_frame(
|
windowsToTile[0].move_resize_frame(
|
||||||
|
|||||||
+1
-1
@@ -8,7 +8,7 @@ import Adw from 'gi://Adw';
|
|||||||
import Gio from 'gi://Gio';
|
import Gio from 'gi://Gio';
|
||||||
import Gtk from 'gi://Gtk';
|
import Gtk from 'gi://Gtk';
|
||||||
import GLib from 'gi://GLib';
|
import GLib from 'gi://GLib';
|
||||||
import { ExtensionPreferences, gettext as _ } from 'resource:///org/gnome/shell/extensions/prefs.js';
|
import { ExtensionPreferences, gettext as _ } from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js';
|
||||||
|
|
||||||
export default class SimpleTilingPrefs extends ExtensionPreferences {
|
export default class SimpleTilingPrefs extends ExtensionPreferences {
|
||||||
fillPreferencesWindow(window) {
|
fillPreferencesWindow(window) {
|
||||||
|
|||||||
Reference in New Issue
Block a user