Compare commits

..
54 Commits
Author SHA1 Message Date
Lucas Oskorep 05a1adb5ff chore: update package.json
Build and Test / build (push) Successful in 24s
Build and Test / release (push) Successful in 3s
2026-03-02 23:18:58 -05:00
Lucas Oskorep 0d81c99618 feat: update version in package.json 2026-03-02 23:18:58 -05:00
Lucas Oskorep 0546da32ee feat: initial README.md 2026-03-02 23:18:58 -05:00
Lucas Oskorep ca64fa5fe1 feat: adding support for multi-monitor window moving 2026-03-02 23:18:57 -05:00
Lucas Oskorep f6a08ab52e feat: adding active window selection and refactoring keybindings 2026-03-02 23:18:57 -05:00
Lucas Oskorep cfd295a766 fix: when new items enter the tabbed view they should be the active window 2026-03-02 23:18:57 -05:00
Lucas Oskorep e33b057c10 feat: equal-sized tabs and constantly updated tab titles 2026-03-02 23:18:57 -05:00
Lucas Oskorep e554feca92 fix: tab bars showing when apps are fullscreen on same monitor 2026-03-02 23:18:57 -05:00
Lucas Oskorep 16d490844e feat: add tabbed container layout mode with tab bar UI
fix: tab bars no longer shown in overview.  Tab bars show name of app with pipe and then title of the app
2026-03-02 23:18:57 -05:00
Lucas Oskorep ce9f643daa fix: new bug from combining resize and move commands - if window has min-size set and resize goes smaller window would not move or resize causing vesktop and steam to frequently break when in arrays on a smaller monitors 2026-03-02 23:18:57 -05:00
Lucas Oskorep 7b75f6481e feat: adding support for changing the size of windows during window resize events to aerospike. Also cleaning up imports and simplifying some of the settings logic. 2026-03-02 23:18:57 -05:00
Renovate BotandLucas Oskorep 8a17bf432b chore(deps): update dependency eslint to v10 2026-03-02 23:18:57 -05:00
Lucas Oskorep e3a3149ed1 Update .gitea/workflows/build.yaml 2026-03-02 23:18:57 -05:00
Lucas Oskorep 9bb8ba0724 fix: renovate updating past v3 for upload when v4+ is unsupported in gitea 2026-03-02 23:18:57 -05:00
Lucas Oskorep b5c2ecaad1 feat: update code to work with new libs 2026-03-02 23:18:57 -05:00
Renovate BotandLucas Oskorep 6cf93ca7ae chore(deps): update all-dependencies 2026-03-02 23:18:57 -05:00
Lucas Oskorep 185ce958cd Update .gitea/workflows/build.yaml 2026-03-02 23:18:57 -05:00
Renovate BotandLucas Oskorep 40fe725a36 chore(deps): update all-dependencies 2026-03-02 23:18:57 -05:00
Renovate BotandLucas Oskorep 44fd52dd77 Add renovate.json 2026-03-02 23:18:57 -05:00
Lucas Oskorep 294c8c2f6b revert df9bc3e1eb
revert Merge pull request 'chore: Configure Renovate' (#1) from renovate/configure into main

Reviewed-on: #1
2026-03-02 23:18:57 -05:00
Renovate BotandLucas Oskorep 0cf5de6178 Add renovate.json 2026-03-02 23:18:57 -05:00
Lucas Oskorep 7279de66a0 feat: gitea pipeline fix for upload 2026-03-02 23:18:57 -05:00
Lucas Oskorep abfd04a7a8 feat: gitea pipeline fix for upload 2026-03-02 23:18:57 -05:00
Lucas Oskorep e2a18e35fc feat: gitea pipeline 2026-03-02 23:18:57 -05:00
Lucas Oskorep 6b41af61cc feat: gitea pipeline 2026-03-02 23:18:57 -05:00
Lucas Oskorep 666f05fc72 feat: adding basic unit tests and framework for them 2026-03-02 23:18:57 -05:00
Lucas Oskorep 0f01145edb bugfixes 2026-03-02 23:18:57 -05:00
Lucas Oskorep ee0ed1bac4 feat: cleanup 2026-03-02 23:18:57 -05:00
Lucas Oskorep 05e3529277 Finish adding debugging command and ability to swap the orientation of a container 2026-03-02 23:18:57 -05:00
Lucas Oskorep b508ca589f adding debug command 2026-03-02 23:18:57 -05:00
Lucas Oskorep a41ea2492f feat: removing prettyborders zip 2026-03-02 23:18:57 -05:00
Lucas Oskorep 0d5d0f942c feat: update devkit command 2026-03-02 23:18:57 -05:00
Lucas Oskorep 1285dca723 upgrade to gnome 49 2026-03-02 23:18:57 -05:00
Lucas Oskorep a383a34900 feat: remove crap code 2026-03-02 23:18:57 -05:00
Lucas Oskorep c9a6d64ca3 fix: allow windows to be moved in the overview 2026-03-02 23:18:57 -05:00
Lucas Oskorep 52ebd96a48 fix: bug with window manager resizing a window during grab ops for 1 frame when the background had to be tiled 2026-03-02 23:18:57 -05:00
Lucas Oskorep ce202ef73f feat: enable the window manager to be able to drag across monitors and support keybindings propperly in the extension settings 2026-03-02 23:18:57 -05:00
Lucas Oskorep 0a81829886 feat: upgrade packages and set parent for windows on add 2026-03-02 23:18:57 -05:00
Lucas Oskorep d4f528945a feat: add ability to change ordering of monitors 2026-03-02 23:18:57 -05:00
Lucas Oskorep e09f0aa0fc feat: refactored to monitor -> workspace -> container -> window workflow 2026-03-02 23:18:57 -05:00
Lucas Oskorep 47970f591d feat: adding support for workspaces 2026-03-02 23:18:57 -05:00
Lucas Oskorep e6e6e976b4 feat: refactoring 2026-03-02 23:18:57 -05:00
Lucas Oskorep 57be4ee903 feat: fixed display signal handling on disable 2026-03-02 23:18:57 -05:00
Lucas Oskorep 185de5a88e feat: adding fix for minimized windows still taking up space 2026-03-02 23:18:57 -05:00
Lucas Oskorep ea0b902ef2 feat: attempting to fix windows lost on logout 2026-03-02 23:18:57 -05:00
Lucas Oskorep d3986dd08e feat: set nvm version 2026-03-02 23:18:57 -05:00
Lucas Oskorep 0efc0dbf50 feat: initial commit with multi-monitor support 2026-03-02 23:18:57 -05:00
Lucas Oskorep 7e493d04d3 fix 2026-03-02 23:18:57 -05:00
Lucas Oskorep c71cc19ef4 feat: first draft of everything working single monitor with just mouse commands 2026-03-02 23:18:57 -05:00
Lucas Oskorep f5ae2a7474 feat: adding in demo settings page for gnome extensions 2026-03-02 23:18:57 -05:00
Lucas Oskorep ef6c184033 feat: remove prefs 2026-03-02 23:18:57 -05:00
Lucas Oskorep 9f506b7993 feat: update gschema 2026-03-02 23:18:57 -05:00
Lucas Oskorep a450eccedb feat: adding initial source code 2026-03-02 23:18:57 -05:00
Lucas Oskorep 541e691849 feat: readme 2026-03-02 23:18:57 -05:00
10 changed files with 51 additions and 41 deletions
+1 -1
View File
@@ -31,7 +31,7 @@ jobs:
apt-get install -y libglib2.0-dev glib-networking zip apt-get install -y libglib2.0-dev glib-networking zip
- name: Install project dependencies - name: Install project dependencies
run: pnpm install --ignore-scripts run: pnpm install
- name: Run unit tests - name: Run unit tests
run: just test run: just test
-1
View File
@@ -1 +0,0 @@
25
-17
View File
@@ -1,17 +0,0 @@
overrides[@girs/cairo-1.0]="1.0.0-4.0.0-beta.38"
overrides[@girs/freetype2-2.0]="2.0.0-4.0.0-beta.38"
overrides[@girs/gdk-4.0]="4.0.0-4.0.0-beta.38"
overrides[@girs/gdkpixbuf-2.0]="2.0.0-4.0.0-beta.38"
overrides[@girs/gio-2.0]="2.86.0-4.0.0-beta.38"
overrides[@girs/gjs]="4.0.0-beta.38"
overrides[@girs/glib-2.0]="2.86.0-4.0.0-beta.38"
overrides[@girs/gmodule-2.0]="2.0.0-4.0.0-beta.38"
overrides[@girs/gobject-2.0]="2.86.0-4.0.0-beta.38"
overrides[@girs/graphene-1.0]="1.0.0-4.0.0-beta.38"
overrides[@girs/gsk-4.0]="4.0.0-4.0.0-beta.38"
overrides[@girs/gtk-4.0]="4.20.1-4.0.0-beta.38"
overrides[@girs/harfbuzz-0.0]="11.5.0-4.0.0-beta.38"
overrides[@girs/mtk-17]="17.0.0-4.0.0-beta.38"
overrides[@girs/pango-1.0]="1.57.0-4.0.0-beta.38"
overrides[@girs/pangocairo-1.0]="1.0.0-4.0.0-beta.38"
enable-pre-post-scripts=false
+1
View File
@@ -0,0 +1 @@
24
+1 -7
View File
@@ -8,7 +8,7 @@ packages:
build: packages && build-schemas build: packages && build-schemas
rm -rf dist/* rm -rf dist/*
pnpm run build pnpm exec tsc
cp metadata.json dist/ cp metadata.json dist/
cp stylesheet.css dist/ cp stylesheet.css dist/
mkdir -p dist/schemas mkdir -p dist/schemas
@@ -47,12 +47,6 @@ test-coverage:
ci-local: ci-local:
act -W .gitea/workflows/build.yaml act -W .gitea/workflows/build.yaml
lint:
pnpm run lint
clean:
pnpm run clean
#pack: build #pack: build
# gnome-extensions pack dist \ # gnome-extensions pack dist \
# --force \ # --force \
+1 -2
View File
@@ -5,8 +5,7 @@
"settings-schema": "org.gnome.shell.extensions.aerospike", "settings-schema": "org.gnome.shell.extensions.aerospike",
"shell-version": [ "shell-version": [
"48", "48",
"49", "49"
"50"
], ],
"gettext-domain": "aerospike@lucaso.io", "gettext-domain": "aerospike@lucaso.io",
"url": "https://gitea.chaosdev.gay/lucasoskorep/aerospike@lucaso.io" "url": "https://gitea.chaosdev.gay/lucasoskorep/aerospike@lucaso.io"
+21 -4
View File
@@ -1,6 +1,6 @@
{ {
"name": "aerospike", "name": "aerospike",
"version": "0.2.3", "version": "0.2.1",
"description": "Simple, Opinionated Tiling Window Manager for Gnome written in Typescript", "description": "Simple, Opinionated Tiling Window Manager for Gnome written in Typescript",
"type": "module", "type": "module",
"private": true, "private": true,
@@ -16,9 +16,6 @@
"homepage": "https://github.com/lucasoskorep/aerospike-gnome/#readme", "homepage": "https://github.com/lucasoskorep/aerospike-gnome/#readme",
"sideEffects": false, "sideEffects": false,
"scripts": { "scripts": {
"build": "tsc",
"clean": "rm -rf dist/*",
"lint": "eslint .",
"test": "jest", "test": "jest",
"test:watch": "jest --watch", "test:watch": "jest --watch",
"test:coverage": "jest --coverage" "test:coverage": "jest --coverage"
@@ -36,5 +33,25 @@
}, },
"dependencies": { "dependencies": {
"@girs/mtk-17": "17.0.0-4.0.0-beta.38" "@girs/mtk-17": "17.0.0-4.0.0-beta.38"
},
"pnpm": {
"overrides": {
"@girs/cairo-1.0": "1.0.0-4.0.0-beta.38",
"@girs/freetype2-2.0": "2.0.0-4.0.0-beta.38",
"@girs/gdk-4.0": "4.0.0-4.0.0-beta.38",
"@girs/gdkpixbuf-2.0": "2.0.0-4.0.0-beta.38",
"@girs/gio-2.0": "2.86.0-4.0.0-beta.38",
"@girs/gjs": "4.0.0-beta.38",
"@girs/glib-2.0": "2.86.0-4.0.0-beta.38",
"@girs/gmodule-2.0": "2.0.0-4.0.0-beta.38",
"@girs/gobject-2.0": "2.86.0-4.0.0-beta.38",
"@girs/graphene-1.0": "1.0.0-4.0.0-beta.38",
"@girs/gsk-4.0": "4.0.0-4.0.0-beta.38",
"@girs/gtk-4.0": "4.20.1-4.0.0-beta.38",
"@girs/harfbuzz-0.0": "11.5.0-4.0.0-beta.38",
"@girs/mtk-17": "17.0.0-4.0.0-beta.38",
"@girs/pango-1.0": "1.57.0-4.0.0-beta.38",
"@girs/pangocairo-1.0": "1.0.0-4.0.0-beta.38"
}
} }
} }
+26
View File
@@ -4,6 +4,24 @@ settings:
autoInstallPeers: true autoInstallPeers: true
excludeLinksFromLockfile: false excludeLinksFromLockfile: false
overrides:
'@girs/cairo-1.0': 1.0.0-4.0.0-beta.38
'@girs/freetype2-2.0': 2.0.0-4.0.0-beta.38
'@girs/gdk-4.0': 4.0.0-4.0.0-beta.38
'@girs/gdkpixbuf-2.0': 2.0.0-4.0.0-beta.38
'@girs/gio-2.0': 2.86.0-4.0.0-beta.38
'@girs/gjs': 4.0.0-beta.38
'@girs/glib-2.0': 2.86.0-4.0.0-beta.38
'@girs/gmodule-2.0': 2.0.0-4.0.0-beta.38
'@girs/gobject-2.0': 2.86.0-4.0.0-beta.38
'@girs/graphene-1.0': 1.0.0-4.0.0-beta.38
'@girs/gsk-4.0': 4.0.0-4.0.0-beta.38
'@girs/gtk-4.0': 4.20.1-4.0.0-beta.38
'@girs/harfbuzz-0.0': 11.5.0-4.0.0-beta.38
'@girs/mtk-17': 17.0.0-4.0.0-beta.38
'@girs/pango-1.0': 1.57.0-4.0.0-beta.38
'@girs/pangocairo-1.0': 1.0.0-4.0.0-beta.38
importers: importers:
.: .:
@@ -635,41 +653,49 @@ packages:
resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
libc: [glibc]
'@unrs/resolver-binding-linux-arm64-musl@1.11.1': '@unrs/resolver-binding-linux-arm64-musl@1.11.1':
resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
libc: [musl]
'@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1':
resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==}
cpu: [ppc64] cpu: [ppc64]
os: [linux] os: [linux]
libc: [glibc]
'@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1':
resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==}
cpu: [riscv64] cpu: [riscv64]
os: [linux] os: [linux]
libc: [glibc]
'@unrs/resolver-binding-linux-riscv64-musl@1.11.1': '@unrs/resolver-binding-linux-riscv64-musl@1.11.1':
resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==}
cpu: [riscv64] cpu: [riscv64]
os: [linux] os: [linux]
libc: [musl]
'@unrs/resolver-binding-linux-s390x-gnu@1.11.1': '@unrs/resolver-binding-linux-s390x-gnu@1.11.1':
resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==}
cpu: [s390x] cpu: [s390x]
os: [linux] os: [linux]
libc: [glibc]
'@unrs/resolver-binding-linux-x64-gnu@1.11.1': '@unrs/resolver-binding-linux-x64-gnu@1.11.1':
resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
libc: [glibc]
'@unrs/resolver-binding-linux-x64-musl@1.11.1': '@unrs/resolver-binding-linux-x64-musl@1.11.1':
resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
libc: [musl]
'@unrs/resolver-binding-wasm32-wasi@1.11.1': '@unrs/resolver-binding-wasm32-wasi@1.11.1':
resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==}
-9
View File
@@ -47,10 +47,6 @@ export class WindowWrapper {
return this._window.get_frame_rect(); return this._window.get_frame_rect();
} }
isFullscreen(): boolean {
return this._window.is_fullscreen();
}
getTabLabel(): string { getTabLabel(): string {
const rawAppName = this._window.get_wm_class() ?? ''; const rawAppName = this._window.get_wm_class() ?? '';
// Strip reverse-domain prefix (e.g. "org.gnome.Nautilus" -> "Nautilus") // Strip reverse-domain prefix (e.g. "org.gnome.Nautilus" -> "Nautilus")
@@ -144,11 +140,6 @@ export class WindowWrapper {
return; return;
} }
if (this.isFullscreen()) {
Logger.info("STOPPED RESIZE BECAUSE WINDOW IS FULLSCREEN");
return;
}
const actor = this._window.get_compositor_private() as Clutter.Actor | null; const actor = this._window.get_compositor_private() as Clutter.Actor | null;
if (!actor) { if (!actor) {
Logger.log("No actor available, can't resize safely yet"); Logger.log("No actor available, can't resize safely yet");
View File