A lightweight clipboard manager extension for GNOME Shell with a Windows-style popup interface. Fully compatible with Wayland.
- 📋 Text & Image Support: Manages both text and image clipboard history
- ⚡ Quick Access: Open with
Super+Shift+V(configurable) - 🔍 Search: Filter text items as you type
- 💾 Persistent Storage: Keeps history across sessions
- 🖼️ Image Management: Automatically saves and manages clipboard images
- 🎨 Native Look: Compact popup that follows the GNOME Shell theme and accent color, with optional Light, Dark and Darker themes
- ⌨️ Keyboard Navigation: Full keyboard control (arrow keys, Enter, Delete, Esc)
- 🖱️ Item Actions: Bookmark and delete buttons appear when hovering an item
- 📌 Bookmarks: Pin items permanently outside the history limit
- 🔒 Private mode: Pause history recording while you copy sensitive data
Install it from extensions.gnome.org.
-
Clone this repository:
cd ~/.local/share/gnome-shell/extensions/ git clone https://github.com/Geomoon/gclip.git gclip@Geomoon.dev
-
Compile the GSettings schema:
cd gclip@Geomoon.dev glib-compile-schemas schemas/ -
Enable the extension:
gnome-extensions enable gclip@Geomoon.dev -
Restart GNOME Shell:
- X11: Press
Alt+F2, typer, press Enter - Wayland: Log out and log back in
- X11: Press
Press Super+Shift+V to open the popup at the pointer position. Start typing to search, pick an item to copy it to the clipboard, and the popup closes.
| Action | Keyboard | Mouse |
|---|---|---|
| Open the popup | Super+Shift+V (configurable) |
– |
| Move through the list | ↑ / ↓ |
Hover an item |
| Copy an item | Enter |
Click the item |
| Switch between Recent and Bookmarks | ← / → |
Click the tab |
| Bookmark / remove bookmark | Ctrl+B |
Bookmark button on the hovered item |
| Delete an item | Delete |
Trash button on the hovered item |
| Search | Type in the search entry | Clear button in the entry |
| Toggle private mode | Ctrl+P |
Switch in the footer |
| Open preferences | – | Gear button in the footer |
| Close | Esc |
Click outside the popup |
Search matches text items only; images are hidden while a search is active.
The Bookmarks tab lets you pin items permanently so they're always accessible, regardless of the history limit.
| Action | Result |
|---|---|
Ctrl+B on Recent |
Pins the item to Bookmarks |
Ctrl+B on Bookmarks |
Unpins the item (returns to Recent) |
Delete on Bookmarks |
Removes the pin (item stays in Recent) |
Enter / click on Bookmarks |
Copies to clipboard and adds a copy to Recent |
The bookmark and trash buttons shown on a hovered item do the same as Ctrl+B and Delete.
While private mode is on, GClip does not read or save anything you copy. The item list is hidden in the popup while it is active, and the setting persists across sessions.
| Action | Result |
|---|---|
Ctrl+P in the popup, or click the switch in the footer |
Toggles private mode |
| Preferences → Private Mode | Toggles private mode |
| Global shortcut (unset by default) | Toggles private mode from anywhere |
gclip@Geomoon.dev/
├── extension.js # Main extension entry point, handles enable/disable
├── clipboardManager.js # Core clipboard monitoring and history management
├── clipboardPopup.js # UI popup window with tabs, search and navigation
├── prefs.js # Settings/preferences UI
├── metadata.json # Extension metadata and version info
├── stylesheet.css # Popup layout and the Light/Dark/Darker palettes
├── schemas/ # GSettings configuration schemas
│ └── org.gnome.shell.extensions.gclip.gschema.xml
├── dev.sh # Development: sync to the extensions folder and reload
├── watch.sh # Development: reload automatically on file changes
└── README.md # This file
Clipboard data is stored in ~/.cache/gclip@Geomoon.dev/:
clipboard-history.json: All entries (text, image metadata, bookmark status)- Images are stored as hashed files in the same directory
Open extension preferences:
gnome-extensions prefs gclip@Geomoon.devSettings:
- Maximum History Items: Number of recent items to keep (default: 100). Bookmarked items are not affected by this limit.
- Private Mode: Stop recording what you copy.
- Popup Theme: Colors of the popup.
- Follow System (default): uses the GNOME Shell theme, including its light or dark style.
- Light / Dark: forces that palette regardless of the system style.
- Darker: the dark theme with GClip's original, darker backgrounds.
- Show Clipboard Popup: Shortcut that opens the popup (default:
Super+Shift+V). Click "Change" and press your desired combination. - Toggle Private Mode: Optional global shortcut (unset by default). In the shortcut dialog,
Backspaceclears the shortcut. - Clear History: Delete all saved clipboard data and images.
Theme changes apply the next time the popup is opened. The gear button in the popup's footer opens these preferences.
- GNOME Shell 45 to 50
- Wayland or X11
- Language: JavaScript (GJS)
- Storage: JSON file + image files (hash-named)
- Clipboard Access: Native
St.ClipboardAPI - Monitoring: Event-driven via
Meta.Displayselection owner-changed signal - Duplicate Detection: Content comparison for text; hash-based for images
- Bookmarks: Stored as
favorite: truein the same history JSON; excluded from the item limit - Theming: Reuses GNOME Shell theme classes for the popup, rows, buttons and switch; the forced themes override colors only
Extension not appearing:
# Check if extension is loaded
gnome-extensions list
# View logs
journalctl -f -o cat /usr/bin/gnome-shellKeybinding not working:
- Check if another extension or a system shortcut uses the same combination. A common conflict is the notification list shortcut:
gsettings get org.gnome.shell.keybindings toggle-message-tray
- Change it in extension preferences (
gnome-extensions prefs gclip@Geomoon.dev)
Nothing is being saved:
- Check that private mode is off (the switch in the popup footer)
Images not saving:
- Check permissions on
~/.cache/gclip@Geomoon.dev/ - Ensure disk space is available
Work from a clone outside the extensions folder and use the helper scripts to install and reload:
./dev.sh # sync files, recompile the schema, reload the extension and follow the logs
./watch.sh # same, automatically on every file change (needs inotify-tools)- Private mode: pause history recording from the popup (
Ctrl+Por the footer switch), the preferences, or an optional global shortcut - Redesigned popup that follows the GNOME Shell theme (light/dark style and accent color), with a compact layout
- Popup Theme setting: Follow System, Light, Dark, or Darker
- Bookmark and delete buttons on each item when hovering it
- Search entry with clear button, empty-state placeholders, and shortcut hints in the footer
- Settings button moved to the popup footer
- Popup text unified to English
- Added GNOME Shell 49 and 50 support
- Added Marcadores tab for permanently pinned items
Ctrl+Bto bookmark/unbookmark items←/→keyboard navigation and mouse click to switch tabs- Default keybinding changed to
Super+Shift+Vto avoid GNOME system shortcut conflict - Functional keyboard shortcut editor in preferences
- Sequential item numbering per tab
- Fixed item selection bug when using search filter
- Fixed image file cleanup on item delete
- Added GNOME Shell 47 and 48 support
- Initial release
MIT License
Created for efficient clipboard management on GNOME/Wayland