A modern system management tool for Snow Linux
Manage your Homebrew packages, monitor system health, and maintain your system with ease.
- View Installed Packages: Browse all installed formulae and casks in organized expandable lists
- Search & Install: Search the Homebrew repository and install packages with one click
- Update & Upgrade: Keep Homebrew up-to-date and upgrade outdated packages individually
- Pin Packages: Pin packages to prevent accidental upgrades
- Curated Bundles: Install pre-configured package bundles for common use cases
- System Performance: Quick access to Mission Center for detailed system monitoring
- Health Overview: Check system diagnostics and health status
- Homebrew Updates: Check for and install package updates
- Outdated Packages: View and upgrade packages that have newer versions available
- System Maintenance: Keep your system running smoothly
ChairLift uses the Meson build system:
# Clone the repository
git clone https://github.com/frostyard/chairlift.git
cd chairlift
# Build and install
meson setup build
meson compile -C build
sudo meson install -C build- Python 3.x
- PyYAML (python3-yaml)
- GTK4
- libadwaita
- Homebrew (for package management features)
- Mission Center (optional, for system performance monitoring)
Launch ChairLift from your application menu or run:
chairlift- System: Monitor system health and performance
- Updates: Manage Homebrew updates and outdated packages
- Applications: View installed packages, search for new ones, and install curated bundles
- Maintenance: System maintenance tools (coming soon)
- Help: Documentation and support resources (coming soon)
- Browse Installed: Navigate to Applications β Brew Packages to see all installed formulae and casks
- Search: Use the search box to find packages by name or keyword
- Install: Click the install button next to search results or bundle items
- Pin/Unpin: Click the pin icon to lock/unlock a package version
- Remove: Click the trash icon to uninstall a package
- Upgrade: Click upgrade button next to outdated packages
ChairLift supports installing curated package bundles (Brewfiles) located in /usr/share/snow/bundles. Each bundle is a pre-configured set of packages for specific use cases.
ChairLift is highly configurable and can be adapted for different Linux distributions. The application uses a YAML configuration file to control which features are displayed and which applications are launched for various system management tasks.
While ChairLift was designed for Snow Linux, it can be easily customized for other distributions by:
- Disabling Snow-specific features: Hide Homebrew package management if your distribution doesn't use it
- Customizing system tools: Configure which applications to launch for system monitoring, Flatpak management, etc.
- Setting help resources: Point users to your distribution's documentation, issue tracker, and community chat
See CONFIG.md for detailed documentation on:
- Available configuration options
- How to show/hide specific feature groups
- Customizing application launchers
- Setting up help resource URLs
- Example configurations for non-Snow distributions
Configuration files are searched in the following locations (in order):
/etc/chairlift/config.yml(system-wide - highest priority)/usr/share/chairlift/config.yml(package maintainer defaults)chairlift/config.yml(development/source directory)
chairlift/
βββ chairlift/ # Main application code
β βββ core/ # Core functionality (homebrew.py)
β βββ views/ # UI views (user_home.py)
β βββ gtk/ # GTK UI templates
β βββ assets/ # Application assets
βββ data/ # Desktop files and icons
βββ po/ # Translation files
βββ meson.build # Build configuration
-
chairlift/core/homebrew.py: Python library for Homebrew integration
- Package listing and searching
- Installation and removal
- Pin/unpin functionality
- Bundle management
- Update and upgrade operations
-
chairlift/views/user_home.py: Main UI implementation
- GTK4/Adwaita interface
- Async operations with threading
- Toast notifications for user feedback
ChairLift includes a preconfigured development environment using Distrobox and Just for easy setup:
Just is a command runner that provides convenient shortcuts for common development tasks. Available commands:
just setup # Create and configure the distrobox development container
just enter # Enter the development container
just build # Build the project with meson
just local # Build and install to ./install directory
just run # Run the application in development mode
just clean # Clean build artifacts
just pot # Generate translation templateThe project includes a distrobox.ini configuration that sets up a Debian Trixie container with all required dependencies. This ensures a consistent development environment across different host systems.
To get started:
# Create the development container
just setup
# Enter the container
just enter
# Inside the container, build and run
just build
just runThe distrobox configuration automatically mounts:
/home/linuxbrew- for Homebrew integration testing/usr/share/snow/bundles- for bundle management testing
Contributions are welcome! Please feel free to submit issues and pull requests.
ChairLift is adapted from Vanilla OS First Setup.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3.
See LICENSE for details.
Made with β€οΈ for Snow Linux
