feat(panel): remove full mode, rename compact to standard and fixed some UI (#328)

* feat(panel): remove full mode, rename compact to standard

- Remove panel-full entry (660×340) and all full-mode code paths
- Rename compact → standard across panel, settings, translations
- Restrict tile hover/click to icon+label only (no border hover)
- Shrink close button to 24×24 with 12px glyph
- Reduce standard section vertical padding to 4px
- Standard panel height: 290 → 260 (matches legacy at 260)
- Fix widget/shortcut/service toggle to respect panel-mode setting
- Update README with correct sizes and behavior

* added new thumbnail.webp

---------

Co-authored-by: Ahmed5Emad <ahmed5emad@users.noreply.github.com>
This commit is contained in:
Ahmed Emad
2026-08-10 20:32:07 -04:00
committed by GitHub
co-authored by Ahmed5Emad
parent 625fc8cba3
commit d5bf4d2168
8 changed files with 53 additions and 124 deletions
+18 -29
View File
@@ -16,7 +16,7 @@ not the original implementation.
| Field | Value |
| --- | --- |
| ID | `alexander/screen-toolkit` |
| Entries | Bar widget: `widget`; control-center shortcut: `toggle`; panels: `panel` (compact tools), `panel-full` (full tools), `panel-legacy` (legacy layout), `result` (result view); service: `service` |
| Entries | Bar widget: `widget`; control-center shortcut: `toggle`; panels: `panel` (standard tools), `panel-legacy` (legacy layout), `result` (result view); service: `service` |
## Requirements
@@ -61,11 +61,10 @@ Settings → Control Center shortcuts. Left-click either one opens the main pane
(or stops a recording); right-clicking the bar widget quick-picks a color. While
a recording is active, the widget and shortcut show a pulsing red dot.
The main panel has three layouts, selected by the `panel-mode` setting (default:
**Full**):
The main panel has two layouts, selected by the `panel-mode` setting (default:
**Standard**):
- **Full** — the spacious original grid with section titles (`panel-full`, 660×340).
- **Compact** — a dense grid grouped into tinted sections (`panel`, 380×290).
- **Standard** — a dense grid grouped into tinted sections (`panel`, 380×260).
- **Legacy** — recreates the Noctalia-v4 layout (`panel-legacy`, 380×260).
### Legacy mode
@@ -77,11 +76,10 @@ Legacy mode recreates the original Noctalia v4 screen-toolkit layout:
- Preview and one-click access to the most recent screenshot or recording.
- Quick microphone and system audio toggles in the `Record` subpanel.
The widget and shortcut open whichever entry matches the setting; the panel
footnote under Settings → Plugins shows all three panels' placement/position
options.
The widget and shortcut open the panel matching the `panel-mode` setting; the
panel footnote under Settings → Plugins shows placement/position options.
Toggle the tools panel (opens the entry matching the `panel-mode` setting):
Toggle the tools panel (opens the panel matching `panel-mode`):
```sh
noctalia msg plugin alexander/screen-toolkit:service all toggle
@@ -93,20 +91,12 @@ For example, bind it to `SUPER+P` in Hyprland:
bind = SUPER, P, exec, noctalia msg plugin alexander/screen-toolkit:service all toggle
```
Because `toggle` reads the `panel-mode` setting, this single bind works in all three layouts (Full, Compact and Legacy), so there is no need to change the keybind when you switch layouts.
Open the compact tools panel:
Open the standard tools panel:
```sh
noctalia msg panel-toggle alexander/screen-toolkit:panel
```
Open the full tools panel (the original spacious grid):
```sh
noctalia msg panel-toggle alexander/screen-toolkit:panel-full
```
Open the legacy tools panel (the 4×2 grid with subpanels):
```sh
@@ -178,7 +168,7 @@ All settings live in Settings → Plugins (gear on the plugin's row).
| `record-skip-confirmation` | `bool` | `false` | Save automatically when a recording ends, skipping the save dialog. |
| `record-copy-to-clipboard` | `bool` | `false` | Finalize to MP4 and copy the file URI when recording ends. |
| `gif-max-seconds` | `int` | `30` | Cap for GIF recordings (1–600 s). |
| `panel-mode` | `select` | `full` | Main panel layout: `full` (spacious original grid, 660×340) or `compact` (dense grid, 380×290) or `legacy` (4×2 legacy grid, 380×260). |
| `panel-mode` | `select` | `standard` | Main panel layout: `standard` (dense grid, 380×260) or `legacy` (4×2 legacy grid, 380×260). |
## IPC
@@ -208,9 +198,8 @@ noctalia msg plugin alexander/screen-toolkit:service all clearResult
noctalia msg plugin alexander/screen-toolkit:service all clearHistory
```
`toggle` opens the tools panel **matching the `panel-mode` setting** — one IPC
that works for all three layouts. The bar widget and control-center shortcut use the
same mode-aware toggle.
`toggle` opens the panel matching the `panel-mode` setting. The bar widget and
control-center shortcut use the same logic.
Commands that take a payload:
@@ -231,7 +220,7 @@ Summary of every service command:
| Command | Payload | Action |
| --- | --- | --- |
| `toggle` | — | Open/close the tools panel that matches `panel-mode` |
| `toggle` | — | Open/close the tools panel (matches `panel-mode`) |
| `colorPicker` | — | Pick a color from the screen (region crosshair) |
| `ocr` | — | Extract text from a region |
| `qr` | — | Decode a QR / barcode from a region |
@@ -258,13 +247,13 @@ Summary of every service command:
## Notes
- **Three panel entries, one layout setting.** Panel size is host-owned: the host
- **Two panel entries, one layout setting.** Panel size is host-owned: the host
sizes each `[[panel]]` entry from its `width`/`height`, and there is no runtime
resize. So the three layouts are three entries sharing `panel.luau`: `panel-full`
(660×340, the original spacious grid), `panel` (380×290, the compact grid) and `panel-legacy` (380×260, the legacy grid).
The `panel-mode` setting picks which one renders, and `toggle`/widget/shortcut
all open the matching entry. Changing the setting only affects which panel
opens next time; an already-open panel keeps its current size until closed.
resize. So the two layouts are two entries sharing `panel.luau`:
`panel` (380×260, the standard grid) and `panel-legacy` (380×260, the legacy grid).
The `panel-mode` setting picks which one `toggle` opens; changing the setting
only affects which panel opens next time; an already-open panel keeps its
current size until closed.
- This is a port of the legacy v4
[screen-toolkit](https://github.com/noctalia-dev/legacy-v4-plugins/tree/main/screen-toolkit)
plugin. Tools that relied on freeform v4 QML overlays are adapted: region