Skip to content

endavis/gnome-connection-manager

 
 

Repository files navigation

Gnome Connection Manager or GCM

Gnome Connection Manager or GCM is a tabbed ssh connection manager for gtk+ environments. Starting with version 1.2.0 it only supports python3 and GTK 3 so it should run fine on any modern desktop environment.

If you can't update to python/gtk 3 and only have python2/gtk2, then keep using GCM version v1.1.0 from kuthulu.com

Installation

From binary package

The easiest way to install GCM is to download the deb or rpm package from releases or from kuthulu.com and install it using the package manager

Debian/Ubuntu

sudo dpkg -i gnome-connection-manager_1.2.0_all.deb

Fedora/Redhat

sudo yum install gnome-connection-manager-1.2.0.noarch.rpm

From Sources

Download or clone the repository and execute the file gnome_connection_manager.py

git clone git://github.com/kuthulux/gnome-connection-manager
cd gnome-connection-manager
./gnome_connection_manager.py

Dependencies:

  • expect
  • python3
  • python3-gi and gir1.2-vte-2.91 (debian) / python3-gobject (fedora)

Modern Development Setup (Recommended)

GCM is being modernized with Python best practices and modern tooling. For development:

Use the included justfile for common tasks; when a command does not have a just recipe, run it through uv run so the project environment is used:

# Install uv (modern Python package manager)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Create development environment
uv venv --system-site-packages
uv sync --extra dev

# Prefer `just` for day-to-day commands
just run      # Launches the app via uv
just check    # Lint + typecheck + tests
just test     # Run the pytest suite

# Run an ad-hoc command through uv if no `just` recipe exists
uv run python -m gnome_connection_manager

Development Status:

  • ✅ Phase 1 Code Quality: COMPLETE (98.7% of issues resolved)
  • 📋 Phase 2 Modernization: GTK refactors and logging/tests in progress
  • 📋 Phase 3 GTK4 Migration: Future

See docs/DEVELOPING.md for detailed development guide and docs/PROJECT_STRUCTURE.md for project status.


Logging

GCM writes logs to stderr using Python's logging module. Adjust verbosity by setting GCM_LOG_LEVEL (for example DEBUG, INFO, or WARNING) before launching the app:

GCM_LOG_LEVEL=DEBUG uv run python -m gnome_connection_manager

Language

GCM should use the default OS language, but if for any reason you want to use another language, then start GCM this way:

LANG=en_US.UTF.8 ./gnome_connection_manager.py

replace en_US.UTF-8 with the language of your choice.


Packaging

To create a deb or rpm package from source you have to follow these steps:

  1. install basic tools

Debian/Ubuntu

sudo apt install git ruby ruby-dev build-essential gettext
sudo gem install fpm

Fedora/Redhat

sudo yum install git ruby ruby-devel make gcc gcc-c++ redhat-rpm-config getext rpm-build
sudo gem install fpm
  1. download or clone the respository
git clone git://github.com/kuthulux/gnome-connection-manager
cd gnome-connection-manager
  1. make the desired package:
#make deb and rpm
uv run make

#make deb package only
uv run make deb

#make rpm package only
uv run make rpm

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

License

GPLv3

About

fork of gnome-connection-manager from kuthulu.com/gcm

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 98.0%
  • Makefile 1.3%
  • Other 0.7%