Code
Clone this repository
Search code
Latest commit
Scratchpad for GNOME Shell
Scratchpad GNOME Shell kiterjesztés
Minimalista gyorsjegyzet-kezelő a GNOME felső paneljén.
Támogatott GNOME Shell verzió: 50, 51.
Képernyőképek
További képernyőképek (Beállítások, Töredékek)
| Beállítások | Töredékek |
|---|---|
![]() |
![]() |
Funkciók
- Három jegyzetlap: Jegyzetek (Notes), Töredékek (Snippets), Piszkozat (Scratch). A lapok átnevezhetők, és egyenként kikapcsolhatók.
- Sima Markdown fájlok:
pad_1.md,pad_2.md,pad_3.mda~/.local/share/gnome-scratchpad/mappában (a mappa állítható). Bármilyen szerkesztővel módosíthatók, Syncthinggel, Gittel vagy Nextclouddal szinkronizálhatók. - Atomi mentés: átmeneti fájl -> fsync -> átnevezés a
Gio.File.replace_contentssegítségével; a jogosultságok és a szimbolikus linkek megmaradnak. A mentések laponként sorban futnak, így egy régebbi mentés nem írhat felül egy újabbat. - Automatikus mentés 400 ms-mal a gépelés után, azonnal lapváltáskor, az ablak bezárásakor,
Ctrl+S-re és a kiterjesztés letiltásakor (képernyőzár). - Külső módosítások követése:
Gio.FileMonitorfigyeli a mappát, megnyitáskor és lapváltáskor az mtime is ellenőrizve van. A mentetlen helyi szerkesztés elsőbbséget kap. - Markdown kiemelés (címsorok, félkövér, dőlt, idézet, listák, feladatlista, vízszintes vonal), Enterre folytatódó listák.
- Szintaxiskiemelés 20 nyelvre (Markdown, Python, Bash, JavaScript, TypeScript, C, C++, C#, Java, Go, Rust, PHP, SQL, HTML, CSS, JSON, YAML, TOML, Dockerfile, Diff): a Töredékek lapon automatikus felismeréssel, a többi lapon a
```blokkokban. - Mentés fájlba a lap nevével egyező almappába (
Notes/,Snippets/,Scratch/vagy az egyedi név), előzmények lista betöltéssel és törléssel (lomtárba), exportálás és betöltés a fájlválasztó portálon keresztül. - Törlés visszavonással: előtte
pad_N.md.bakmentés készül, és 5 másodpercig látszik a visszavonás sáv. - Szó- és karakterszámláló, mentési állapot.
- Gyorsbeállítások a felugró ablakban: sortörés, szintaxis- és Markdown-kiemelés, betűméret (6-24 pt).
- Megjelenés: legördülő ablak vagy teljes magasságú oldalsáv balra/jobbra; az ablak egérrel átméretezhető (szélesség 250-1400 px, magasság 200-1200 px).
- Globális gyorsbillentyű (alapértelmezett:
Super+Alt+N), panelpozíció (bal / közép / jobb), a panelikon elrejthető. A felület a rendszer kiemelőszínét használja, és követi a csökkentett mozgás beállítást (GNOME 51). - Fordítás: magyar.
Gyorsbillentyűk
| Gyorsbillentyű | Művelet |
|---|---|
Super+Alt+N (globális) |
Felugró ablak megnyitása / bezárása |
Escape |
Ablak bezárása és mentetlen szerkesztések mentése |
Ctrl+S |
Azonnali mentés |
Ctrl+Shift+S |
Aktív jegyzet mentése fájlba |
Ctrl+Shift+E |
Exportálás... |
Ctrl+Shift+H |
Előzmények megnyitása / bezárása |
Ctrl+Shift+C |
Aktív jegyzet teljes szövegének másolása |
Ctrl+1 / Ctrl+2 / Ctrl+3 |
Váltás az 1. / 2. / 3. jegyzetlapra |
Ctrl+PgUp / Ctrl+PgDn |
Előző / következő jegyzetlap |
Tab |
Tabulátor karakter beszúrása |
Telepítés
Közvetlen letöltés (Előre csomagolt változatok)
A packages/ mappából közvetlenül letölthetők az előre összeállított csomagok:
- GNOME Shell kiterjesztés ZIP:
packages/scratchpad@gavnir.shell-extension.zip - Arch Linux Pacman csomag:
packages/gnome-shell-extension-scratchpad-1.0.4-1-any.pkg.tar.zst
Felhasználói telepítés forrásból
./build.sh install
# Wayland esetén jelentkezz ki, majd be, ezt követően:
gnome-extensions enable scratchpad@gavnir
Arch Linux (rendszerszintű csomag / Pacman)
# Pacman csomag építése:
./build.sh pacman
# Telepítés pacman segítségével:
sudo pacman -U dist/gnome-shell-extension-scratchpad-1.0.4-1-any.pkg.tar.zst
# Vagy közvetlenül a makepkg-vel:
cd packaging/arch
makepkg -si
Fejlesztés
./build.sh nested # devkit GNOME Shell indítása (Wayland)
journalctl -f -o cat /usr/bin/gnome-shell # naplóbejegyzések megtekintése
./build.sh pot # fordítási sablon frissítése és .po fájlok összefésülése
GNOME 50 és 51 megjegyzések
- A beviteli események kezelése Clutter vezérlőkkel (
Clutter.KeyController,Clutter.ClickGesture) történik az elavultkey-press-event/button-press-eventhelyett. - Az elrendezések az
orientationtulajdonságot használják (averticalmegszűnt a GNOME 51-ben). - A
disable()szinkron lefutású; a folyamatban lévő lemezműveletek a háttérben fejeződnek be.
Fájlstruktúra
extension.js életciklus, gyorsbillentyű-kezelés, panel elhelyezés
indicator.js panel gomb + felugró felület, szerkesztő logika
storage.js atomi fájltárolás, mtime követés, könyvtárfigyelő
prefs.js libadwaita beállítóablak
syntax.js szintaxiskiemelő motor
languages/ nyelvi tokenizálók (20 nyelv)
stylesheet.css stíluslap
schemas/ GSettings sémafájlok
po/ fordítások (.po és .pot)
packaging/ arch pacman PKGBUILD és telepítő
Scratchpad for GNOME Shell
Minimalist quick notes in the GNOME top bar.
Supports GNOME Shell 50 and 51.
Screenshots
More screenshots (Preferences, Snippets)
| Preferences | Snippets |
|---|---|
![]() |
![]() |
Features
- Three pads: Notes, Snippets, Scratch. Pads can be renamed and individually disabled.
- Plain Markdown files:
pad_1.md,pad_2.md,pad_3.mdin~/.local/share/gnome-scratchpad/(configurable). Editable with any tool, syncable with Syncthing / Git / Nextcloud. - Atomic writes: temp file -> fsync -> rename via
Gio.File.replace_contents; file permissions and symlinks are kept. Writes are serialized per pad, so an older save can never land after a newer one. - Auto-save 400 ms after typing stops, and immediately on tab switch, popup
close,
Ctrl+Sand extension disable (screen lock). - External changes are picked up: a
Gio.FileMonitorwatches the notes directory and the mtime is re-checked on popup open / tab switch. Unsaved local edits win. - Markdown styling (headings, bold, italic, quotes, lists, task lists, horizontal rules); Enter continues lists.
- Syntax highlighting for 20 languages (Markdown, Python, Bash, JavaScript,
TypeScript, C, C++, C#, Java, Go, Rust, PHP, SQL, HTML, CSS, JSON, YAML, TOML,
Dockerfile, Diff): auto-detected on the Snippets pad, inside
```fences on the other pads. - Save to file into a per-pad subfolder (
Notes/,Snippets/,Scratch/or the custom name), a history list to reload or trash saved files, and export / open through the file chooser portal. - Undoable clear:
pad_N.md.bakis written first, then a 5-second undo banner is shown. - Word and character counter, save status.
- Quick settings in the popup: word wrap, syntax and Markdown highlighting, font size (6-24 pt).
- Display as a dropdown popup or a full-height sidebar on the left or right; resizable with the mouse (width 250-1400 px, height 200-1200 px).
- Global toggle shortcut (default
Super+Alt+N), panel position (left / center / right), optional panel icon. Uses the system accent colour and follows the reduced-motion setting (GNOME 51). - Translations: Hungarian.
Keyboard shortcuts
| Shortcut | Action |
|---|---|
Super+Alt+N (global) |
Open / close the popup |
Escape |
Close the popup and flush unsaved edits |
Ctrl+S |
Save now |
Ctrl+Shift+S |
Save active pad to file |
Ctrl+Shift+E |
Export... |
Ctrl+Shift+H |
Toggle the history list |
Ctrl+Shift+C |
Copy the whole active pad |
Ctrl+1 / Ctrl+2 / Ctrl+3 |
Switch to pad 1 / 2 / 3 |
Ctrl+PgUp / Ctrl+PgDn |
Previous / next pad |
Tab |
Insert a tab character |
Installation
Direct Download (Pre-built packages)
Download ready-to-use packages directly from the packages/ directory:
- GNOME Shell extension ZIP:
packages/scratchpad@gavnir.shell-extension.zip - Arch Linux Pacman package:
packages/gnome-shell-extension-scratchpad-1.0.4-1-any.pkg.tar.zst
User install from source
./build.sh install
# Wayland: log out and back in, then
gnome-extensions enable scratchpad@gavnir
Arch Linux (system-wide / Pacman)
# Build pacman package:
./build.sh pacman
# Install using pacman:
sudo pacman -U dist/gnome-shell-extension-scratchpad-1.0.4-1-any.pkg.tar.zst
# Or directly with makepkg:
cd packaging/arch
makepkg -si
Development
./build.sh nested # devkit GNOME Shell (Wayland)
journalctl -f -o cat /usr/bin/gnome-shell # logs
./build.sh pot # refresh translation template and merge .po files
GNOME 50 & 51 notes
- Input handling uses Clutter controllers (
Clutter.KeyController,Clutter.ClickGesture) instead of the deprecatedkey-press-event/button-press-eventsignals. - Layouts use
orientation(theverticalproperty was removed in 51). disable()is synchronous; pending writes finish in the background.
Layout
extension.js lifecycle, keybinding, panel placement
indicator.js panel button + popup UI, editor logic
storage.js atomic pad storage, mtime tracking, directory monitor
prefs.js libadwaita preferences
syntax.js syntax highlighting engine
languages/ language tokenizers (20 languages)
stylesheet.css styling
schemas/ GSettings schema
po/ translations (.po and .pot)
packaging/ arch pacman PKGBUILD and install script
License
GPL-3.0-only.

