Compare commits
57 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 402b4c3dbf | |||
| 75f2f107de | |||
| 42d680d00c | |||
| 7f9d040b82 | |||
| 525630009b | |||
| 0720ab6326 | |||
| 6129c98624 | |||
| 9a192afb9b | |||
| 42c1e6731e | |||
| 400ce3a77c | |||
| 2ab3822cb6 | |||
| c1e597579f | |||
| d7ee5ff5e6 | |||
| 52a9bc8c82 | |||
| 46ab8e24b0 | |||
| e0be26c310 | |||
| c824645c3f | |||
| 4c3160e9ca | |||
| 3ded68a8d5 | |||
| 7a160fb102 | |||
| 855a8e4a2e | |||
| dda18f715f | |||
| 0c10fbce4b | |||
| d8bcf472b6 | |||
| 5b8556912f | |||
| 9455c4b4d1 | |||
| 4da03ed2dc | |||
| 18beea21e7 | |||
| e93ffe5da7 | |||
| 979eaa552a | |||
| 6bca124d94 | |||
| b641561bca | |||
| ce8807a7d9 | |||
| 39fdbe62b1 | |||
| 1e3c67273d | |||
| cba529f79e | |||
| d33495a9ea | |||
| 4e5f24c3d6 | |||
| 9e08221a2d | |||
| 57e28ff77a | |||
| ed29d0a0a9 | |||
| 0da844ce97 | |||
| 06b2c5c4a3 | |||
| 7eb26a9f9e | |||
| 012f575ad5 | |||
| 195ada30fb | |||
| 7e21bf695c | |||
| 2607c58a70 | |||
| 305ef0d3e7 | |||
| e5a7a0d96b | |||
| cbaafc6e08 | |||
| 9bf199b1a6 | |||
| 92133701de | |||
| 045649c746 | |||
| 775b79c733 | |||
| 8b1ade3890 | |||
| 901b56cccf |
@@ -0,0 +1 @@
|
|||||||
|
25
|
||||||
@@ -1 +1,30 @@
|
|||||||
# Aerospike Gnome (Tiling Window Manager)
|
# Aerospike Gnome (Tiling Window Manager)
|
||||||
|
|
||||||
|
Aerospike is a simple and opinionated tiling window manager for gnome.
|
||||||
|
|
||||||
|
This project takes inspiration from previous gnome tiling window managers such
|
||||||
|
as [forge](https://github.com/forge-ext/forge)
|
||||||
|
and [cosmic-shell](https://github.com/pop-os/gnome-shell-extension-pop-cosmic) as well as
|
||||||
|
MacOS tiling WMs, mainly [Aerospace](https://github.com/nikitabobko/AeroSpace) (not affiliated).
|
||||||
|
|
||||||
|
## Current Features
|
||||||
|
|
||||||
|
- Auto-tiling
|
||||||
|
- Accordion layouts with variable sizes
|
||||||
|
- Tabbed layouts
|
||||||
|
- Tree-based (albeit set depth of 2 for now) container-window paired layout similar to Aerospace
|
||||||
|
- Diagram for this is pending
|
||||||
|
|
||||||
|
## Planned functionality
|
||||||
|
|
||||||
|
- Full Keyboard control w/window movement
|
||||||
|
- Sub-containers (more tree layers than the 1 supported for now)
|
||||||
|
- Gap size customization
|
||||||
|
|
||||||
|
## Not currently planned
|
||||||
|
|
||||||
|
- Active window borders
|
||||||
|
- See my other extension for a rainbow or static border - [PrettyBorders](https://github.com//pretty-borders)
|
||||||
|
- complicated window dragging features and uis
|
||||||
|
- Aerospace supports control + drag to combine windows while moving with the mouse, and normal window dragging.
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ packages:
|
|||||||
|
|
||||||
build: packages && build-schemas
|
build: packages && build-schemas
|
||||||
rm -rf dist/*
|
rm -rf dist/*
|
||||||
pnpm exec tsc
|
pnpm run build
|
||||||
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,6 +47,12 @@ 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 \
|
||||||
|
|||||||
+8
-5
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "aerospike",
|
"name": "aerospike",
|
||||||
"version": "0.2.0",
|
"version": "0.2.2",
|
||||||
"description": "A TypeScript GNOME Extension for Pretty Borders",
|
"description": "Simple, Opinionated Tiling Window Manager for Gnome written in Typescript",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"private": true,
|
"private": true,
|
||||||
"repository": {
|
"repository": {
|
||||||
@@ -9,13 +9,16 @@
|
|||||||
"url": "git+https://gitlab.com/lucasoskorep/aerospike"
|
"url": "git+https://gitlab.com/lucasoskorep/aerospike"
|
||||||
},
|
},
|
||||||
"author": "Lucas Oskorep <lucas.oskorep@gmail.com>",
|
"author": "Lucas Oskorep <lucas.oskorep@gmail.com>",
|
||||||
"license": "LGPL-3.0-or-later",
|
"license": "GPL-3.0-only",
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/example/my-extension/issues"
|
"url": "https://github.com/lucasoskorep/aerospike-gnome/issues"
|
||||||
},
|
},
|
||||||
"homepage": "https://github.com/example/my-extension#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"
|
||||||
|
|||||||
Generated
+596
-463
File diff suppressed because it is too large
Load Diff
@@ -47,6 +47,10 @@ 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")
|
||||||
@@ -140,6 +144,11 @@ 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");
|
||||||
|
|||||||
Reference in New Issue
Block a user