From 02b98d4a54ae2708014ceb0fe4fed92e8fe9d9d8 Mon Sep 17 00:00:00 2001 From: Lucas Oskorep Date: Fri, 8 Nov 2024 03:39:09 -0500 Subject: [PATCH] feat: adding fixed version of this for using typescript --- Makefile | 10 ++-- extension.ts | 15 +++--- package-lock.json | 6 ++- package.json | 16 ++++++ prefs.ts | 51 ------------------- ...shell.extensions.prettyborders.gschema.xml | 15 ++++++ tsconfig.json | 2 +- 7 files changed, 50 insertions(+), 65 deletions(-) delete mode 100644 prefs.ts diff --git a/Makefile b/Makefile index 1993441..3ef8a8d 100644 --- a/Makefile +++ b/Makefile @@ -14,17 +14,19 @@ dist/extension.js dist/prefs.js: node_modules schemas/gschemas.compiled: schemas/org.gnome.shell.extensions.$(NAME).gschema.xml glib-compile-schemas schemas +# $(NAME).zip: dist/extension.js dist/prefs.js schemas/gschemas.compiled - @cp -r schemas dist/ + #@cp -r schemas dist/ @cp metadata.json dist/ + @cp stylesheet.css dist/ @(cd dist && zip ../$(NAME).zip -9r .) pack: $(NAME).zip install: $(NAME).zip - @touch ~/.local/share/gnome-shell/extensions/$(NAME)@$(DOMAIN) - @rm -rf ~/.local/share/gnome-shell/extensions/$(NAME)@$(DOMAIN) - @mv dist ~/.local/share/gnome-shell/extensions/$(NAME)@$(DOMAIN) + @mkdir -p ~/.local/share/gnome-shell/extensions/$(NAME)@$(DOMAIN) + @rm -rf /.local/share/gnome-shell/extensions/$(NAME)@$(DOMAIN)/* + @cp dist/* ~/.local/share/gnome-shell/extensions/$(NAME)@$(DOMAIN)/ clean: @rm -rf dist node_modules $(NAME).zip \ No newline at end of file diff --git a/extension.ts b/extension.ts index 561a905..f4e252f 100644 --- a/extension.ts +++ b/extension.ts @@ -1,16 +1,14 @@ -import Meta from '@girs/meta-15'; +import GLib from 'gi://GLib'; +import Gio from 'gi://Gio'; import St from 'gi://St'; - -import {Extension, ExtensionMetadata} from 'resource:///org/gnome/shell/extensions/extension.js'; +import Meta from 'gi://Meta'; +import Shell from 'gi://Shell'; import * as Main from 'resource:///org/gnome/shell/ui/main.js'; -import giCairo from "@girs/gjs/cairo"; -import Content = giCairo.Content; -import {LayoutManager} from "@girs/gnome-shell/ui/layout"; - +import { Extension, ExtensionMetadata } from 'resource:///org/gnome/shell/extensions/extension.js'; export default class ActiveBorderExtension extends Extension { - borderActor: Widget | null; + borderActor: St.Widget | null; focusWindowSignals: any[]; lastFocusedWindow: Meta.Window | null; _focusSignal: number | null; @@ -106,6 +104,7 @@ export default class ActiveBorderExtension extends Extension { } disable() { + console.log("DISABLED PRETTY BORDERS!") // Disconnect the signal and remove any existing borders if (this._focusSignal) { global.display.disconnect(this._focusSignal); diff --git a/package-lock.json b/package-lock.json index e1fcd84..c75e72b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,9 +1,13 @@ { - "name": "prettyborders@lucaso.io", + "name": "prettyborders", + "version": "0.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { + "name": "prettyborders", + "version": "0.1.0", + "license": "LGPL-3.0-or-later", "dependencies": { "@girs/gjs": "^4.0.0-beta.18", "@girs/gnome-shell": "^47.0.0" diff --git a/package.json b/package.json index ab6c3a2..abb2c1b 100644 --- a/package.json +++ b/package.json @@ -1,4 +1,20 @@ { + "name": "prettyborders", + "version": "0.1.0", + "description": "A TypeScript GNOME Extension for Pretty Borders", + "type": "module", + "private": true, + "repository": { + "type": "git", + "url": "git+https://github.com/example/my-extension.git" + }, + "author": "Lucas Oskorep ", + "license": "LGPL-3.0-or-later", + "bugs": { + "url": "https://github.com/example/my-extension/issues" + }, + "homepage": "https://github.com/example/my-extension#readme", + "sideEffects": false, "devDependencies": { "eslint": "^9.14.0", "eslint-plugin-jsdoc": "^50.4.3", diff --git a/prefs.ts b/prefs.ts deleted file mode 100644 index 1a3989c..0000000 --- a/prefs.ts +++ /dev/null @@ -1,51 +0,0 @@ -import Gtk from 'gi://Gtk'; -import Adw from 'gi://Adw'; -import Gio from 'gi://Gio'; -import { ExtensionPreferences, gettext as _ } from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js'; - -export default class GnomeRectanglePreferences extends ExtensionPreferences { - _settings?: Gio.Settings - - fillPreferencesWindow(window: Adw.PreferencesWindow) { - this._settings = this.getSettings(); - - const page = new Adw.PreferencesPage({ - title: _('General'), - iconName: 'dialog-information-symbolic', - }); - - const animationGroup = new Adw.PreferencesGroup({ - title: _('Animation'), - description: _('Configure move/resize animation'), - }); - page.add(animationGroup); - - const animationEnabled = new Adw.SwitchRow({ - title: _('Enabled'), - subtitle: _('Wether to animate windows'), - }); - animationGroup.add(animationEnabled); - - const paddingGroup = new Adw.PreferencesGroup({ - title: _('Paddings'), - description: _('Configure the padding between windows'), - }); - page.add(paddingGroup); - - const paddingInner = new Adw.SpinRow({ - title: _('Inner'), - subtitle: _('Padding between windows'), - adjustment: new Gtk.Adjustment({ - lower: 0, - upper: 1000, - stepIncrement: 1 - }) - }); - paddingGroup.add(paddingInner); - - window.add(page) - - this._settings!.bind('animate', animationEnabled, 'active', Gio.SettingsBindFlags.DEFAULT); - this._settings!.bind('padding-inner', paddingInner, 'value', Gio.SettingsBindFlags.DEFAULT); - } -} \ No newline at end of file diff --git a/schemas/org.gnome.shell.extensions.prettyborders.gschema.xml b/schemas/org.gnome.shell.extensions.prettyborders.gschema.xml index e69de29..cbf391e 100644 --- a/schemas/org.gnome.shell.extensions.prettyborders.gschema.xml +++ b/schemas/org.gnome.shell.extensions.prettyborders.gschema.xml @@ -0,0 +1,15 @@ + + + + + 8 + Inner padding + Padding between windows + + + true + Animation + Whether to animate window movement/resizing + + + \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 60d1d8d..3aa880c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -15,6 +15,6 @@ ], "files": [ "extension.ts", - "prefs.ts" +// "prefs.ts" ], }