Always On Top is a GNOME extension that allows applications that don't have the 'Always On Top' feature in their default menus to stay on top of other windows.
A button appears on the top panel that shows the current window state:
- Left click: Toggle the focused window's "always on top" status
- Right click: Open the context menu for quick settings access
- Middle click: Toggle window stickiness (visible on all workspaces) - only works when stickiness is enabled in settings
The panel button shows different icons based on the current window state:
- Pinned icon: Window is on top
- Under icon: Window is not on top
- Pinned sticky icon: Window is on top AND visible on all workspaces
- Under sticky icon: Window is visible on all workspaces but not on top
- No focus icon: No window is focused or desktop is focused
- Default shortcut:
Super+Tto toggle pin/unpin the focused window on top - Customizable: Change the keyboard shortcut through the extension preferences
When enabled, you can make windows "sticky" (visible on all virtual desktops):
- Use middle-click on the panel button to toggle stickiness
- Can be disabled in settings if not needed
- Works independently of the "always on top" feature
Access settings via the extension preferences or right-click the panel button:
- Position: Choose whether the button appears on the left or right side of the panel
- Rank: Set the position priority (0-9) among other panel elements
- Stickiness: Enable/disable the middle-click stickiness feature
- Keyboard Shortcut: Customize the hotkey for toggling always-on-top
-
Download the latest release:
- Go to Releases
- Download
always-on-top-v*.zip(the extension package)
-
Install the extension:
# Extract to extensions directory unzip always-on-top-v*.zip cp -r AlwaysOnTop@Siddharthh39.github.io ~/.local/share/gnome-shell/extensions/
-
Restart GNOME Shell:
- On X11: Press
Alt+F2, typer, and press Enter - On Wayland: Log out and log back in, or reboot your system
- On X11: Press
-
Enable the extension:
gnome-extensions enable AlwaysOnTop@Siddharthh39.github.io
-
Download the extension:
wget https://github.com/Siddharthh39/Always-On-Top/archive/refs/heads/main.zip
-
Extract and install:
unzip main.zip cd Always-On-Top-main cp -r . ~/.local/share/gnome-shell/extensions/AlwaysOnTop@Siddharthh39.github.io/
-
Compile the schema:
cd ~/.local/share/gnome-shell/extensions/AlwaysOnTop@Siddharthh39.github.io/schemas glib-compile-schemas .
-
Restart GNOME Shell:
- On X11: Press
Alt+F2, typer, and press Enter - On Wayland: Log out and log back in, or reboot your system
- On X11: Press
-
Enable the extension:
gnome-extensions enable AlwaysOnTop@Siddharthh39.github.io
-
Clone the repository:
git clone https://github.com/Siddharthh39/Always-On-Top.git cd Always-On-Top -
Install the extension:
cp -r . ~/.local/share/gnome-shell/extensions/AlwaysOnTop@Siddharthh39.github.io/
-
Follow steps 3-5 from Method 1
You can also use the provided installation script:
#!/bin/bash
# Always On Top Extension Installer
EXTENSION_DIR="$HOME/.local/share/gnome-shell/extensions/AlwaysOnTop@Siddharthh39.github.io"
echo "Installing Always On Top Extension..."
# Create extension directory
mkdir -p "$EXTENSION_DIR"
# Download and extract
wget -O /tmp/always-on-top.zip https://github.com/Siddharthh39/Always-On-Top/archive/refs/heads/main.zip
unzip -q /tmp/always-on-top.zip -d /tmp/
cp -r /tmp/Always-On-Top-main/* "$EXTENSION_DIR/"
# Compile schema
cd "$EXTENSION_DIR/schemas"
glib-compile-schemas .
# Clean up
rm -rf /tmp/always-on-top.zip /tmp/Always-On-Top-main
echo "Extension installed successfully!"
echo "Please restart GNOME Shell and enable the extension:"
echo " gnome-extensions enable AlwaysOnTop@Siddharthh39.github.io"To remove the extension:
gnome-extensions disable AlwaysOnTop@Siddharthh39.github.io
rm -rf ~/.local/share/gnome-shell/extensions/AlwaysOnTop@Siddharthh39.github.ioTested with:
- Ubuntu 23.10+ x86_64
- GNOME Shell: 45, 46
- Other Linux distributions with GNOME
Note:
- Tested with DING extension - works well! 😉
- For best experience, use with vanilla GNOME
- Compatible with most other GNOME extensions
- Quick Toggle: Use the keyboard shortcut
Super+Tfor instant window pinning - Multi-Desktop Workflow: Enable stickiness to keep important windows visible across all workspaces
- Panel Organization: Adjust the rank setting to position the button where you prefer it on the panel
- Settings Access: Right-click the panel button for quick access to preferences
- Make sure you restarted GNOME Shell properly
- Check if the extension is enabled:
gnome-extensions list --enabled - Verify the extension directory exists and has correct permissions
- Check if the shortcut conflicts with system shortcuts
- Try setting a different shortcut in the extension preferences
- Ensure the extension is active and enabled
- Make sure the schema is compiled correctly
- Check file permissions in the extension directory
Feel free to contribute to this project! You can:
- Report bugs and issues
- Suggest new features
- Submit pull requests
- Improve documentation
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
- Original concept inspired by the need for better window management in GNOME
- Icons and UI design following GNOME Human Interface Guidelines
- Built with love for the GNOME community
Repository: https://github.com/Siddharthh39/Always-On-Top
Author: Siddharthh39