Lighter v2: per-side borders, profiles, auto-switching, OSS tooling - #2
Merged
Conversation
…oling Features: - Independent thickness per side (top/bottom/left/right, 0 disables a side), with optional linked mode and automatic migration from the old single 'thickness' key - Named profiles stored as JSON in GSettings: create/apply/rename/duplicate/ delete from a new Profiles preferences page and the panel menu - Optional automatic profile switching by focused window (app id and/or window title regex, with priority and default-profile fallback) Architecture: - Split monolithic extension.js into lib/ (borderManager, profileManager, windowWatcher, brightness, colorUtils, indicator, migrations) and preferences/ (generalPage, profilesPage) - Replace deprecated Clutter.Color with St.Widget + CSS (GNOME 47 ready) and Gtk.ColorButton with Gtk.ColorDialogButton - Fix missing maximize-brightness listener; keybinding now ActionMode.NORMAL Tooling: - Makefile (build/lint/pot/pack/install/nested) with a guard preventing 'make install' from deleting the repo through a symlinked installation - ESLint (GNOME style), GitHub Actions CI, gettext i18n with full pt_BR translation, CONTRIBUTING.md, CHANGELOG.md, rewritten README Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Restructures Lighter into a modular, open-source-ready v2 and adds the two headline features: independent border thickness per side and named profiles with optional automatic switching.
Features
thicknesskey is migrated automatically on first enable (lib/migrations.js).profilesGSettings key; apply/rename/duplicate/delete from the new Profiles preferences page or the panel menu (lib/profileManager.js,preferences/profilesPage.js).lib/windowWatcher.js).Architecture & fixes
extension.jssplit intolib/(shell side) andpreferences/(GTK side); shared modules kept free of UI imports.Clutter.Color(removed in GNOME 47) replaced bySt.Widget+ CSS;Gtk.ColorButtonreplaced byGtk.ColorDialogButton.maximize-brightnesslistener fixed; prefs keybinding narrowed toActionMode.NORMAL;disable()hardened (EGO review checklist).Tooling
Makefile(build/lint/pot/pack/install/nested) —make installrefuses to run over a symlinked installation, which previously caused the working copy to be deleted through the symlink.CONTRIBUTING.md,CHANGELOG.md, rewrittenREADME.md.Test plan
gnome-shell --headless)thickness=200→ four per-side keys,settings-version=2)Gio.Settings(create/update/apply/duplicate/delete, corrupted-JSON fallback, forward compat)make packproduces a clean zip (nogschemas.compiled, pt_BR.mocompiled in)🤖 Generated with Claude Code