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 | | Field | Value |
| --- | --- | | --- | --- |
| ID | `alexander/screen-toolkit` | | 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 ## 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 (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. 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: The main panel has two layouts, selected by the `panel-mode` setting (default:
**Full**): **Standard**):
- **Full** — the spacious original grid with section titles (`panel-full`, 660×340). - **Standard** — a dense grid grouped into tinted sections (`panel`, 380×260).
- **Compact** — a dense grid grouped into tinted sections (`panel`, 380×290).
- **Legacy** — recreates the Noctalia-v4 layout (`panel-legacy`, 380×260). - **Legacy** — recreates the Noctalia-v4 layout (`panel-legacy`, 380×260).
### Legacy mode ### 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. - Preview and one-click access to the most recent screenshot or recording.
- Quick microphone and system audio toggles in the `Record` subpanel. - Quick microphone and system audio toggles in the `Record` subpanel.
The widget and shortcut open whichever entry matches the setting; the panel The widget and shortcut open the panel matching the `panel-mode` setting; the
footnote under Settings → Plugins shows all three panels' placement/position panel footnote under Settings → Plugins shows placement/position options.
options.
Toggle the tools panel (opens the entry matching the `panel-mode` setting): Toggle the tools panel (opens the panel matching `panel-mode`):
```sh ```sh
noctalia msg plugin alexander/screen-toolkit:service all toggle 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 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 standard tools panel:
Open the compact tools panel:
```sh ```sh
noctalia msg panel-toggle alexander/screen-toolkit:panel 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): Open the legacy tools panel (the 4×2 grid with subpanels):
```sh ```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-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. | | `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). | | `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 ## IPC
@@ -208,9 +198,8 @@ noctalia msg plugin alexander/screen-toolkit:service all clearResult
noctalia msg plugin alexander/screen-toolkit:service all clearHistory noctalia msg plugin alexander/screen-toolkit:service all clearHistory
``` ```
`toggle` opens the tools panel **matching the `panel-mode` setting** — one IPC `toggle` opens the panel matching the `panel-mode` setting. The bar widget and
that works for all three layouts. The bar widget and control-center shortcut use the control-center shortcut use the same logic.
same mode-aware toggle.
Commands that take a payload: Commands that take a payload:
@@ -231,7 +220,7 @@ Summary of every service command:
| Command | Payload | Action | | 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) | | `colorPicker` | — | Pick a color from the screen (region crosshair) |
| `ocr` | — | Extract text from a region | | `ocr` | — | Extract text from a region |
| `qr` | — | Decode a QR / barcode from a region | | `qr` | — | Decode a QR / barcode from a region |
@@ -258,13 +247,13 @@ Summary of every service command:
## Notes ## 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 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` resize. So the two layouts are two entries sharing `panel.luau`:
(660×340, the original spacious grid), `panel` (380×290, the compact grid) and `panel-legacy` (380×260, the legacy grid). `panel` (380×260, the standard grid) and `panel-legacy` (380×260, the legacy grid).
The `panel-mode` setting picks which one renders, and `toggle`/widget/shortcut The `panel-mode` setting picks which one `toggle` opens; changing the setting
all open the matching entry. Changing the setting only affects which panel only affects which panel opens next time; an already-open panel keeps its
opens next time; an already-open panel keeps its current size until closed. current size until closed.
- This is a port of the legacy v4 - This is a port of the legacy v4
[screen-toolkit](https://github.com/noctalia-dev/legacy-v4-plugins/tree/main/screen-toolkit) [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 plugin. Tools that relied on freeform v4 QML overlays are adapted: region
+22 -68
View File
@@ -3,8 +3,8 @@
-- --
-- Thin client for the toolkit. Two layouts are provided, selected by the -- Thin client for the toolkit. Two layouts are provided, selected by the
-- "panel-mode" plugin setting: -- "panel-mode" plugin setting:
-- * compact — a dense grid grouped into tinted sections (default) -- * standard — the default dense grid grouped into tinted sections
-- * full — the original spacious layout with section titles -- * legacy — recreates the Noctalia-v4 layout
-- The panel entry to open (and thus its host-owned size) is chosen by the -- The panel entry to open (and thus its host-owned size) is chosen by the
-- bar [[widget]] / control-center [[shortcut]] from the same setting. -- bar [[widget]] / control-center [[shortcut]] from the same setting.
-- It only dispatches actions to the [[service]] through the "command" -- It only dispatches actions to the [[service]] through the "command"
@@ -43,8 +43,8 @@ end
local function getMode() local function getMode()
local mode = noctalia.getConfig("panel-mode") local mode = noctalia.getConfig("panel-mode")
if mode == "full" or mode == "compact" or mode == "legacy" then return mode end if mode == "standard" or mode == "legacy" then return mode end
return "full" return "standard"
end end
-- Capture tools must not see the panel in the frame, so close it first. -- Capture tools must not see the panel in the frame, so close it first.
@@ -78,7 +78,7 @@ end
-- ── Tool data ────────────────────────────────────────────────────────────── -- ── Tool data ──────────────────────────────────────────────────────────────
-- For Compact-mode and Full-mode layouts -- For Compact-mode layout
local TOOLS = { local TOOLS = {
{ action = "colorPicker", label_key = "tools.colorpicker", glyph = "palette" }, { action = "colorPicker", label_key = "tools.colorpicker", glyph = "palette" },
{ action = "ocr", label_key = "tools.ocr", glyph = "scan" }, { action = "ocr", label_key = "tools.ocr", glyph = "scan" },
@@ -117,7 +117,7 @@ local TOOLS_LEGACY = {
local function getActiveItems() local function getActiveItems()
local mode = getMode() local mode = getMode()
if mode == "compact" or mode == "full" then if mode == "standard" then
local list = {} local list = {}
for _, t in ipairs(TOOLS) do table.insert(list, { type = "tool", action = t.action }) end for _, t in ipairs(TOOLS) do table.insert(list, { type = "tool", action = t.action }) end
for _, t in ipairs(ANNOTATE_TOOLS) do table.insert(list, { type = "tool", action = t.action }) end for _, t in ipairs(ANNOTATE_TOOLS) do table.insert(list, { type = "tool", action = t.action }) end
@@ -198,7 +198,7 @@ local function headerActions(includeClose)
end end
if includeClose then if includeClose then
table.insert(actions, ui.button({ table.insert(actions, ui.button({
key = "header-close-btn", glyph = "close", onClick = function() panel.close() end, key = "header-close-btn", glyph = "close", width = 24, height = 24, glyphSize = 12, onClick = function() panel.close() end,
})) }))
end end
return ui.row({ gap = 4 }, actions) return ui.row({ gap = 4 }, actions)
@@ -206,7 +206,7 @@ end
-- ── Compact mode ─────────────────────────────────────────────────────────── -- ── Compact mode ───────────────────────────────────────────────────────────
local function compactHeader() local function standardHeader()
return ui.row({ align = "center", gap = 6 }, { return ui.row({ align = "center", gap = 6 }, {
ui.glyph({ name = "crosshair", size = 16, color = "primary" }), ui.glyph({ name = "crosshair", size = 16, color = "primary" }),
ui.label({ text = tr("panel.title"), flexGrow = 1, fontSize = 16, fontWeight = "bold", color = "on_surface" }), ui.label({ text = tr("panel.title"), flexGrow = 1, fontSize = 16, fontWeight = "bold", color = "on_surface" }),
@@ -227,78 +227,33 @@ local function setHoveredTool(action)
updateFocusedTool() updateFocusedTool()
end end
local function compactTile(t) local function standardTile(t)
local isFocused = (hoveredTool == t.action) or (focusedTool == t.action) local isFocused = (hoveredTool == t.action) or (focusedTool == t.action)
local color = isFocused and "primary" or "on_surface" local color = isFocused and "primary" or "on_surface"
local hoverFn = function(state) setHoveredTool((state == "true") and t.action or nil); render() end
local clickFn = function() runTool(t.action) end
return ui.column({ return ui.column({
key = "tile-" .. t.action, flexGrow = 1, gap = 2, align = "center", paddingV = 4, radius = 8, key = "tile-" .. t.action, flexGrow = 1, gap = 2, align = "center", paddingV = 4, radius = 8,
fill = isFocused and "primary/0.15" or "surface_variant", border = isFocused and "primary" or "surface_variant", borderWidth = isFocused and 1 or 0,
onClick = function() runTool(t.action) end,
onHover = function(state) setHoveredTool((state == "true") and t.action or nil); render() end,
}, { }, {
ui.column({ width = 30, height = 30, radius = 9, fill = isFocused and "primary/0.2" or "on_primary", border = isFocused and "primary" or "on_primary", borderWidth = 1, align = "center", justify = "center" }, { ui.column({ width = 30, height = 30, radius = 9, fill = isFocused and "primary/0.2" or "on_primary", border = isFocused and "primary" or "on_primary", borderWidth = 1, align = "center", justify = "center", onClick = clickFn, onHover = hoverFn }, {
ui.glyph({ name = t.glyph, size = 16, color = color }), ui.glyph({ name = t.glyph, size = 16, color = color }),
}), }),
ui.label({ text = tr(t.label_key), maxWidth = 100, maxLines = 1, textAlign = "center", fontSize = 11, color = color }), ui.label({ text = tr(t.label_key), maxWidth = 100, maxLines = 1, textAlign = "center", fontSize = 11, color = color, onClick = clickFn, onHover = hoverFn }),
}) })
end end
local function compactToolsRow(tools) local function standardToolsRow(tools)
local row = {} local row = {}
for _, t in ipairs(tools) do row[#row + 1] = compactTile(t) end for _, t in ipairs(tools) do row[#row + 1] = standardTile(t) end
return ui.row({ flexGrow = 1, gap = 2 }, row) return ui.row({ flexGrow = 1, gap = 2 }, row)
end end
local function compactSection(tools) local function standardSection(tools)
return ui.column({ gap = 4, paddingV = 8, paddingH = 6, radius = 12, fill = "surface_variant" }, { compactToolsRow(tools) }) return ui.column({ gap = 4, paddingV = 4, paddingH = 6, radius = 12, fill = "surface_variant" }, { standardToolsRow(tools) })
end end
local function compactGrid() local function standardGrid()
return ui.column({ gap = 6 }, { compactSection(TOOLS), compactSection(ANNOTATE_TOOLS), compactSection(RECORD_TOOLS) }) return ui.column({ gap = 6 }, { standardSection(TOOLS), standardSection(ANNOTATE_TOOLS), standardSection(RECORD_TOOLS) })
end
-- ── Full mode ──────────────────────────────────────────────────────────────
local function fullHeader()
return ui.row({ align = "center", gap = 10 }, {
ui.glyph({ name = "crosshair", size = 24, color = "primary" }),
ui.label({ text = tr("panel.title"), flexGrow = 1, fontSize = 22, fontWeight = "bold", color = "on_surface" }),
headerActions(true),
})
end
local function fullTile(t)
local isFocused = (hoveredTool == t.action) or (focusedTool == t.action)
local color = isFocused and "primary" or "on_surface"
return ui.column({
key = "tile-" .. t.action, flexGrow = 1, gap = 6, align = "center", paddingV = 6, radius = 12,
fill = "surface_variant", borderWidth = 1, border = color == "primary" and "primary" or "outline",
onClick = function() runTool(t.action) end,
onHover = function(state) setHoveredTool((state == "true") and t.action or nil); render() end,
}, {
ui.column({ width = 30, height = 30, radius = 9, fill = "on_primary", border = color == "primary" and "primary" or "on_primary", borderWidth = 1, align = "center", justify = "center" }, {
ui.glyph({ name = t.glyph, size = 16, color = color }),
}),
ui.label({ text = tr(t.label_key), maxWidth = 100, maxLines = 1, textAlign = "center", fontSize = 11, color = color }),
})
end
local function fullToolsRow(tools)
local row = {}
for _, t in ipairs(tools) do row[#row + 1] = fullTile(t) end
return ui.row({ flexGrow = 1, gap = 6 }, row)
end
local function sectionLabel(text)
return ui.label({ text = text, fontSize = 11, fontWeight = "bold", color = "on_surface_variant" })
end
local function fullGrid()
return ui.column({ flexGrow = 1, gap = 4, justify = "space_between" }, {
sectionLabel(tr("panel.section_capture")), fullToolsRow(TOOLS),
sectionLabel(tr("panel.section_annotate")), fullToolsRow(ANNOTATE_TOOLS),
sectionLabel(tr("panel.section_record")), fullToolsRow(RECORD_TOOLS),
})
end end
-- ── Legacy mode ──────────────────────────────────────────────────────────── -- ── Legacy mode ────────────────────────────────────────────────────────────
@@ -489,7 +444,7 @@ function onKey(chord, pressed)
elseif key == "down" then elseif key == "down" then
if mode == "legacy" and activeView == "main" then if mode == "legacy" and activeView == "main" then
focusedIndex = focusedIndex <= 4 and (focusedIndex + 4) or (focusedIndex - 4) focusedIndex = focusedIndex <= 4 and (focusedIndex + 4) or (focusedIndex - 4)
elseif mode == "compact" or mode == "full" then elseif mode == "standard" then
focusedIndex = (focusedIndex <= 6 and math.min(7 + math.floor((focusedIndex - 1) / 2), 9)) or (focusedIndex <= 9 and (10 + (focusedIndex - 7)) or ((focusedIndex - 10) + 1)) focusedIndex = (focusedIndex <= 6 and math.min(7 + math.floor((focusedIndex - 1) / 2), 9)) or (focusedIndex <= 9 and (10 + (focusedIndex - 7)) or ((focusedIndex - 10) + 1))
else else
focusedIndex = (focusedIndex % #items) + 1 focusedIndex = (focusedIndex % #items) + 1
@@ -497,7 +452,7 @@ function onKey(chord, pressed)
elseif key == "up" then elseif key == "up" then
if mode == "legacy" and activeView == "main" then if mode == "legacy" and activeView == "main" then
focusedIndex = focusedIndex > 4 and (focusedIndex - 4) or (focusedIndex + 4) focusedIndex = focusedIndex > 4 and (focusedIndex - 4) or (focusedIndex + 4)
elseif mode == "compact" or mode == "full" then elseif mode == "standard" then
focusedIndex = (focusedIndex >= 10 and math.min(7 + (focusedIndex - 10), 9)) or (focusedIndex >= 7 and ((focusedIndex - 7) * 2 + 1) or math.min(10 + math.floor((focusedIndex - 1) / 2), 13)) focusedIndex = (focusedIndex >= 10 and math.min(7 + (focusedIndex - 10), 9)) or (focusedIndex >= 7 and ((focusedIndex - 7) * 2 + 1) or math.min(10 + math.floor((focusedIndex - 1) / 2), 13))
else else
focusedIndex = (focusedIndex - 2) % #items + 1 focusedIndex = (focusedIndex - 2) % #items + 1
@@ -527,8 +482,7 @@ end
render = function() render = function()
updateFocusedTool() updateFocusedTool()
local mode = getMode() local mode = getMode()
local body = (mode == "full" and ui.column({ flexGrow = 1, gap = 10 }, { fullHeader(), fullGrid() })) local body = (mode == "standard" and ui.column({ flexGrow = 1, gap = 6 }, { standardHeader(), standardGrid() }))
or (mode == "compact" and ui.column({ flexGrow = 1, gap = 6 }, { compactHeader(), compactGrid() }))
or (activeView == "annotate" and MarkupSubpanel()) or (activeView == "annotate" and MarkupSubpanel())
or (activeView == "record" and RecordSubpanel()) or (activeView == "record" and RecordSubpanel())
or ui.column({ flexGrow = 1, gap = 6 }, { legacyHeader(), legacyGrid() }) or ui.column({ flexGrow = 1, gap = 6 }, { legacyHeader(), legacyGrid() })
+6 -18
View File
@@ -8,7 +8,7 @@
id = "alexander/screen-toolkit" id = "alexander/screen-toolkit"
name = "Screen Toolkit" name = "Screen Toolkit"
version = "1.2.0" version = "1.2.1"
plugin_api = 13 plugin_api = 13
author = "alexander" author = "alexander"
license = "MIT" license = "MIT"
@@ -45,24 +45,13 @@ dependencies = [
# Main toolkit panel: tool grid + per-tool result views + recording controls. # Main toolkit panel: tool grid + per-tool result views + recording controls.
# Open with: noctalia msg panel-toggle alexander/screen-toolkit:panel # Open with: noctalia msg panel-toggle alexander/screen-toolkit:panel
# Compact layout (default). Full mode uses the "panel-full" entry below; the # Compact layout (default). Full mode was removed; the bar widget / shortcut
# bar widget / shortcut open whichever entry matches the "panel-mode" setting. # open either the standard or legacy entry based on the "panel-mode" setting.
[[panel]] [[panel]]
id = "panel" id = "panel"
entry = "panel.luau" entry = "panel.luau"
width = 380 width = 380
height = 290 height = 260
placement = "floating"
position = "center"
keyboard_focus = "on_demand"
capture_keys = ["Tab", "Backtab", "Shift+Tab", "Up", "Down", "Left", "Right", "Return", "Enter", "Space", "Escape"]
# Full-mode layout: the original spacious grid (660x340).
[[panel]]
id = "panel-full"
entry = "panel.luau"
width = 660
height = 340
placement = "floating" placement = "floating"
position = "center" position = "center"
keyboard_focus = "on_demand" keyboard_focus = "on_demand"
@@ -223,10 +212,9 @@ key = "panel-mode"
type = "select" type = "select"
label_key = "settings.panel_mode.label" label_key = "settings.panel_mode.label"
description_key = "settings.panel_mode.description" description_key = "settings.panel_mode.description"
default = "full" default = "standard"
options = [ options = [
{ value = "compact", label_key = "settings.panel_mode.options.compact" }, { value = "standard", label_key = "settings.panel_mode.options.standard" },
{ value = "full", label_key = "settings.panel_mode.options.full" },
{ value = "legacy", label_key = "settings.panel_mode.options.legacy" }, { value = "legacy", label_key = "settings.panel_mode.options.legacy" },
] ]
+1 -2
View File
@@ -16,7 +16,6 @@
-- lands in /tmp as MP4; GIF is produced on save via record.sh convert-gif. -- lands in /tmp as MP4; GIF is produced on save via record.sh convert-gif.
local PANEL_ID = "alexander/screen-toolkit:panel" local PANEL_ID = "alexander/screen-toolkit:panel"
local FULL_PANEL_ID = "alexander/screen-toolkit:panel-full"
local LEGACY_PANEL_ID = "alexander/screen-toolkit:panel-legacy" local LEGACY_PANEL_ID = "alexander/screen-toolkit:panel-legacy"
local RESULT_PANEL_ID = "alexander/screen-toolkit:result" local RESULT_PANEL_ID = "alexander/screen-toolkit:result"
@@ -937,7 +936,7 @@ local HANDLERS = {
setAudioIn = function(payload) overrideAudioIn = (type(payload) == "table" and payload.value or payload) == true end, setAudioIn = function(payload) overrideAudioIn = (type(payload) == "table" and payload.value or payload) == true end,
toggle = function() toggle = function()
local mode = cfg("panel-mode") local mode = cfg("panel-mode")
local id = mode == "full" and FULL_PANEL_ID or (mode == "legacy" and LEGACY_PANEL_ID or PANEL_ID) local id = mode == "legacy" and LEGACY_PANEL_ID or PANEL_ID
noctalia.togglePanel(id) noctalia.togglePanel(id)
end, end,
} }
+2 -2
View File
@@ -22,8 +22,8 @@ function onClick()
-- The shortcut tile never stops a recording; it just opens the panel so -- The shortcut tile never stops a recording; it just opens the panel so
-- the stop button (in the panel header, next to the close X) is reachable. -- the stop button (in the panel header, next to the close X) is reachable.
local mode = noctalia.getConfig("panel-mode") local mode = noctalia.getConfig("panel-mode")
local panelId = mode == "full" and "alexander/screen-toolkit:panel-full" or (mode == "legacy" and "alexander/screen-toolkit:panel-legacy" or "alexander/screen-toolkit:panel") local id = (mode == "legacy") and "alexander/screen-toolkit:panel-legacy" or "alexander/screen-toolkit:panel"
noctalia.togglePanel(panelId) noctalia.togglePanel(id)
end end
apply() apply()
Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

+2 -3
View File
@@ -98,11 +98,10 @@
"label": "Hide Cursor in Recordings" "label": "Hide Cursor in Recordings"
}, },
"panel_mode": { "panel_mode": {
"description": "Layout of the main panel. Compact is the dense grid; Full is the original spacious grid.", "description": "Layout of the main panel. Standard is the default dense grid; Legacy recreates the Noctalia-v4 layout.",
"label": "Panel Mode", "label": "Panel Mode",
"options": { "options": {
"compact": "Compact", "standard": "Standard",
"full": "Full",
"legacy": "Legacy" "legacy": "Legacy"
} }
}, },
+2 -2
View File
@@ -56,8 +56,8 @@ function onClick()
-- The bar icon never stops a recording; it just opens the panel so the -- The bar icon never stops a recording; it just opens the panel so the
-- stop button (in the panel header, next to the close X) is reachable. -- stop button (in the panel header, next to the close X) is reachable.
local mode = noctalia.getConfig("panel-mode") local mode = noctalia.getConfig("panel-mode")
local panelId = mode == "full" and "alexander/screen-toolkit:panel-full" or (mode == "legacy" and "alexander/screen-toolkit:panel-legacy" or "alexander/screen-toolkit:panel") local id = (mode == "legacy") and "alexander/screen-toolkit:panel-legacy" or "alexander/screen-toolkit:panel"
noctalia.togglePanel(panelId) noctalia.togglePanel(id)
end end
function onRightClick() function onRightClick()