Compare commits

..
54 Commits
Author SHA1 Message Date
Lucas Oskorep 02e7191e1e chore: update package.json
Build and Test / build (push) Successful in 24s
Build and Test / release (push) Successful in 3s
2026-03-02 23:32:52 -05:00
Lucas Oskorep 7794bb14ff feat: update version in package.json 2026-03-02 23:32:52 -05:00
Lucas Oskorep f70a4b4490 feat: initial README.md 2026-03-02 23:32:52 -05:00
Lucas Oskorep 8b3ba56751 feat: adding support for multi-monitor window moving 2026-03-02 23:32:52 -05:00
Lucas Oskorep b54c9302eb feat: adding active window selection and refactoring keybindings 2026-03-02 23:32:52 -05:00
Lucas Oskorep 5dd43a681e fix: when new items enter the tabbed view they should be the active window 2026-03-02 23:32:52 -05:00
Lucas Oskorep 6690eaf007 feat: equal-sized tabs and constantly updated tab titles 2026-03-02 23:32:52 -05:00
Lucas Oskorep a2aaaf8fc3 fix: tab bars showing when apps are fullscreen on same monitor 2026-03-02 23:32:52 -05:00
Lucas Oskorep e5c539e164 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:32:52 -05:00
Lucas Oskorep 8e4a3e35f2 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:32:52 -05:00
Lucas Oskorep 805762625c 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:32:52 -05:00
Renovate BotandLucas Oskorep 7aecfe2514 chore(deps): update dependency eslint to v10 2026-03-02 23:32:52 -05:00
Lucas Oskorep b75733170e Update .gitea/workflows/build.yaml 2026-03-02 23:32:52 -05:00
Lucas Oskorep 43fb4685de fix: renovate updating past v3 for upload when v4+ is unsupported in gitea 2026-03-02 23:32:52 -05:00
Lucas Oskorep 9ce72590ab feat: update code to work with new libs 2026-03-02 23:32:52 -05:00
Renovate BotandLucas Oskorep d4783ed997 chore(deps): update all-dependencies 2026-03-02 23:32:52 -05:00
Lucas Oskorep 8694507ded Update .gitea/workflows/build.yaml 2026-03-02 23:32:52 -05:00
Renovate BotandLucas Oskorep 89777ff859 chore(deps): update all-dependencies 2026-03-02 23:32:52 -05:00
Renovate BotandLucas Oskorep 85afbc12ed Add renovate.json 2026-03-02 23:32:52 -05:00
Lucas Oskorep db701fe8d6 revert df9bc3e1eb
revert Merge pull request 'chore: Configure Renovate' (#1) from renovate/configure into main

Reviewed-on: #1
2026-03-02 23:32:52 -05:00
Renovate BotandLucas Oskorep 9ca98741fd Add renovate.json 2026-03-02 23:32:52 -05:00
Lucas Oskorep ebfef91708 feat: gitea pipeline fix for upload 2026-03-02 23:32:52 -05:00
Lucas Oskorep b28746ac41 feat: gitea pipeline fix for upload 2026-03-02 23:32:52 -05:00
Lucas Oskorep 4515e64062 feat: gitea pipeline 2026-03-02 23:32:52 -05:00
Lucas Oskorep 689c0428ae feat: gitea pipeline 2026-03-02 23:32:52 -05:00
Lucas Oskorep c915fe2680 feat: adding basic unit tests and framework for them 2026-03-02 23:32:52 -05:00
Lucas Oskorep 7afa09bd6a bugfixes 2026-03-02 23:32:52 -05:00
Lucas Oskorep f1b1541c22 feat: cleanup 2026-03-02 23:32:52 -05:00
Lucas Oskorep bddf052ed5 Finish adding debugging command and ability to swap the orientation of a container 2026-03-02 23:32:52 -05:00
Lucas Oskorep 8cd047ec32 adding debug command 2026-03-02 23:32:52 -05:00
Lucas Oskorep 1a22e1e0b2 feat: removing prettyborders zip 2026-03-02 23:32:52 -05:00
Lucas Oskorep 1735868f28 feat: update devkit command 2026-03-02 23:32:52 -05:00
Lucas Oskorep d6b519c2f5 upgrade to gnome 49 2026-03-02 23:32:52 -05:00
Lucas Oskorep ce0a8e5991 feat: remove crap code 2026-03-02 23:32:52 -05:00
Lucas Oskorep ab14b02e51 fix: allow windows to be moved in the overview 2026-03-02 23:32:52 -05:00
Lucas Oskorep 4c3e2aaada 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:32:52 -05:00
Lucas Oskorep 8fcfdb84e7 feat: enable the window manager to be able to drag across monitors and support keybindings propperly in the extension settings 2026-03-02 23:32:52 -05:00
Lucas Oskorep ec75a27b33 feat: upgrade packages and set parent for windows on add 2026-03-02 23:32:52 -05:00
Lucas Oskorep b8c8159a56 feat: add ability to change ordering of monitors 2026-03-02 23:32:52 -05:00
Lucas Oskorep 05be57be80 feat: refactored to monitor -> workspace -> container -> window workflow 2026-03-02 23:32:52 -05:00
Lucas Oskorep 0112611687 feat: adding support for workspaces 2026-03-02 23:32:52 -05:00
Lucas Oskorep 154db74d02 feat: refactoring 2026-03-02 23:32:52 -05:00
Lucas Oskorep f7bff9a788 feat: fixed display signal handling on disable 2026-03-02 23:32:52 -05:00
Lucas Oskorep 9699fae6de feat: adding fix for minimized windows still taking up space 2026-03-02 23:32:52 -05:00
Lucas Oskorep fbd723c978 feat: attempting to fix windows lost on logout 2026-03-02 23:32:52 -05:00
Lucas Oskorep 9075ebf694 feat: set nvm version 2026-03-02 23:32:52 -05:00
Lucas Oskorep 158d65bd29 feat: initial commit with multi-monitor support 2026-03-02 23:32:52 -05:00
Lucas Oskorep a08798290a fix 2026-03-02 23:32:52 -05:00
Lucas Oskorep b8f16afb4e feat: first draft of everything working single monitor with just mouse commands 2026-03-02 23:32:52 -05:00
Lucas Oskorep baa056590a feat: adding in demo settings page for gnome extensions 2026-03-02 23:32:52 -05:00
Lucas Oskorep f5074bacd3 feat: remove prefs 2026-03-02 23:32:52 -05:00
Lucas Oskorep 74cccb2591 feat: update gschema 2026-03-02 23:32:52 -05:00
Lucas Oskorep 4a7a5a7757 feat: adding initial source code 2026-03-02 23:32:52 -05:00
Lucas Oskorep dc30e680d8 feat: readme 2026-03-02 23:32:52 -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
- name: Install project dependencies
run: pnpm install --ignore-scripts
run: pnpm install
- name: Run unit tests
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
rm -rf dist/*
pnpm run build
pnpm exec tsc
cp metadata.json dist/
cp stylesheet.css dist/
mkdir -p dist/schemas
@@ -47,12 +47,6 @@ test-coverage:
ci-local:
act -W .gitea/workflows/build.yaml
lint:
pnpm run lint
clean:
pnpm run clean
#pack: build
# gnome-extensions pack dist \
# --force \
+1 -2
View File
@@ -5,8 +5,7 @@
"settings-schema": "org.gnome.shell.extensions.aerospike",
"shell-version": [
"48",
"49",
"50"
"49"
],
"gettext-domain": "aerospike@lucaso.io",
"url": "https://gitea.chaosdev.gay/lucasoskorep/aerospike@lucaso.io"
+21 -4
View File
@@ -1,6 +1,6 @@
{
"name": "aerospike",
"version": "0.2.3",
"version": "0.2.1",
"description": "Simple, Opinionated Tiling Window Manager for Gnome written in Typescript",
"type": "module",
"private": true,
@@ -16,9 +16,6 @@
"homepage": "https://github.com/lucasoskorep/aerospike-gnome/#readme",
"sideEffects": false,
"scripts": {
"build": "tsc",
"clean": "rm -rf dist/*",
"lint": "eslint .",
"test": "jest",
"test:watch": "jest --watch",
"test:coverage": "jest --coverage"
@@ -36,5 +33,25 @@
},
"dependencies": {
"@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
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:
.:
@@ -635,41 +653,49 @@ packages:
resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==}
cpu: [arm64]
os: [linux]
libc: [glibc]
'@unrs/resolver-binding-linux-arm64-musl@1.11.1':
resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==}
cpu: [arm64]
os: [linux]
libc: [musl]
'@unrs/resolver-binding-linux-ppc64-gnu@1.11.1':
resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==}
cpu: [ppc64]
os: [linux]
libc: [glibc]
'@unrs/resolver-binding-linux-riscv64-gnu@1.11.1':
resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==}
cpu: [riscv64]
os: [linux]
libc: [glibc]
'@unrs/resolver-binding-linux-riscv64-musl@1.11.1':
resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==}
cpu: [riscv64]
os: [linux]
libc: [musl]
'@unrs/resolver-binding-linux-s390x-gnu@1.11.1':
resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==}
cpu: [s390x]
os: [linux]
libc: [glibc]
'@unrs/resolver-binding-linux-x64-gnu@1.11.1':
resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==}
cpu: [x64]
os: [linux]
libc: [glibc]
'@unrs/resolver-binding-linux-x64-musl@1.11.1':
resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==}
cpu: [x64]
os: [linux]
libc: [musl]
'@unrs/resolver-binding-wasm32-wasi@1.11.1':
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();
}
isFullscreen(): boolean {
return this._window.is_fullscreen();
}
getTabLabel(): string {
const rawAppName = this._window.get_wm_class() ?? '';
// Strip reverse-domain prefix (e.g. "org.gnome.Nautilus" -> "Nautilus")
@@ -144,11 +140,6 @@ export class WindowWrapper {
return;
}
if (this.isFullscreen()) {
Logger.info("STOPPED RESIZE BECAUSE WINDOW IS FULLSCREEN");
return;
}
const actor = this._window.get_compositor_private() as Clutter.Actor | null;
if (!actor) {
Logger.log("No actor available, can't resize safely yet");
View File