GSoC 2025 Project under the OpenAFS organization
This GNOME Shell extension aims to provide a graphical interface for managing the OpenAFS client on Linux desktops. OpenAFS is a powerful distributed file system widely adopted in academic and research settings, but its reliance on CLI tools can make it less approachable for everyday users.
This extension simplifies and enhances user interaction with OpenAFS by integrating a GUI directly into the GNOME Shell top bar.
- ✅ Start/Stop the OpenAFS client via systemd
- ✅ Acquire/manage Kerberos authentication tokens
- ✅ View token expiration and cell connectivity status
- 🛎️ (Stretch) Notifications for token expiry
- 🔁 (Stretch) Shortcuts to switch AFS cells
- GJS (GNOME JavaScript) for writing the extension logic
- GNOME Shell APIs for UI and system integration
- GLib.spawn_command_line_async for commands like:
systemctl start openafs-client
aklog
for token handling
- GLib.spawn_async_with_pipes for securely handling password prompts via
kinit
- St.Button, St.Label for native GNOME-style UI elements
- Promises and async operations to keep UI non-blocking
gnome-shell-extension-openafs/
├── assets/
│ └── screenshot.png # UI preview image
├── extension.js # Core logic of the extension, handles enable/disable
├── indicator.js # Indicator class for panel menu and UI logic
├── utils.js # Utility functions for checking client and token status
├── metadata.json # Extension metadata
├── stylesheet.css # Optional styles
└── README.md # Project documentation
Follow these steps to install and test the extension locally:
git clone https://github.com/ts-31/gnome-shell-extension-openafs.git
cd gnome-shell-extension-openafs
GNOME extensions should be placed in a specific folder:
mkdir -p ~/.local/share/gnome-shell/extensions/gnome-shell-extension-openafs
cp -v -r * ~/.local/share/gnome-shell/extensions/gnome-shell-extension-openafs/
- X11 session: Press
Alt + F2
, typer
, and press Enter.(Recommended) - Wayland session: Log out and log back in.
Use GNOME Extensions App (GUI) or terminal:
gnome-extensions enable gnome-shell-extension-openafs
Click the top bar icon labeled “OpenAFS Status”.
Then from the terminal, toggle the client status:
sudo systemctl stop openafs-client
# → Click extension icon → Should show "Client: Not Running"
sudo systemctl start openafs-client
# → Click extension icon → Should show "Client: Running"
- Project: GNOME Shell Extension for OpenAFS
- Mentors: Mike Meffie
- Student: Tejas Sonawane
- Organization: OpenAFS
- Program: Google Summer of Code 2025
This extension is in active development as part of GSoC 2025. Contributions, suggestions, and feedback are welcome via issues and pull requests once the base is complete.
To the OpenAFS team and GNOME community for building incredible open infrastructure for decades.
"Bridging CLI power with GUI ease for OpenAFS users." — GSoC 2025 Student Developer