A command-line tool for managing and switching between multiple Cinnamon desktop environment profiles. Easily save, restore, and share your Cinnamon desktop configurations.
Warning
This project is in beta. Expect bugs and incomplete features. Please report any issues you encounter!
- Create profiles from your current Cinnamon settings
- Switch between profiles to quickly change your entire desktop environment
- Import/Export profiles to share configurations between computers
- Automatic backups before making changes to your settings
- Manual backups for extra safety
Each profile preserves your complete Cinnamon desktop configuration, including:
- Panel layouts and settings
- Applets and their configurations
- Desktop themes and appearance settings
- Window manager settings
- Keyboard shortcuts and bindings
- Menu configurations
- Workspace settings
- Fonts
- Other Cinnamon-specific configurations
The following tools are required:
zipandunziputilitiesdconf(usually installed with Cinnamon)
# Install prerequisites on Debian/Ubuntu-based systems such as Linux Mint
sudo apt install zip unzip dconf-cliThe easiest ways to install Cinnamon Profile Manager are to use the below command-line script, or by downloading the pre-compiled binary from the Releases section on GitHub.
# Download latest binary
wget https://github.com/ClaytonTDM/cinnamon-profile-manager/releases/download/v0.2.1/cinnamon-profile-manager-x86_64
# Mark it as executable
chmod +x cinnamon-profile-manager-x86_64
# Move it into a directory in your PATH (optional)
sudo mv cinnamon-profile-manager-x86_64 /usr/local/bin/cinnamon-profile-managerClone the repository and run using Deno:
# Clone the repository
git clone https://github.com/claytontdm/cinnamon-profile-manager.git
cd cinnamon-profile-manager
# Run the application
deno task start# Clone the repository
git clone https://github.com/claytontdm/cinnamon-profile-manager.git
cd cinnamon-profile-manager
# Compile the application
deno task compile
# Move the compiled binary to your PATH
sudo mv cinnamon-profile-manager /usr/local/bin/
# Make it executable
sudo chmod +x /usr/local/bin/cinnamon-profile-managerYou can compile the binary using this command:
deno task compileThe compiled binary will be created in the project directory.
Note: The pre-compiled binary is available in the Releases section of the GitHub repository. This is the recommended installation method for most users.
Usage: cinnamon-profile-manager [options] [command]
A tool for managing Cinnamon desktop environment profiles. Includes settings, spices, panels, etc.
Options:
-V, --version output the version number
-h, --help display help for command
Commands:
list|ls List all available profiles.
create [options] <name> Create a new profile from current Cinnamon settings (files, dconf, themes, icons, and fonts).
switch [options] <name> Switch to a different profile (restores files, dconf, themes, icons, and fonts).
delete|rm <name> Delete an existing profile.
backup [options] Create a manual backup of current Cinnamon settings (files, dconf, themes, icons, and fonts).
restore [options] Restore Cinnamon settings from a manual backup (files, dconf, themes, icons, and fonts).
list-backups|lb List all available backup files (manual and automatic).
export <name> Export a profile to an external zip file (includes dconf settings, themes, icons, and fonts if present).
import <filepath> Import a profile from an external zip file (applies dconf, themes, icons, and fonts if present).
update|up [options] Update the currently active profile with current settings (including themes, icons, and fonts).
reset DANGER: Delete all profiles, backups, and manager settings.
help [command] display help for command
# Show help
cinnamon-profile-manager --help
# List all available profiles
cinnamon-profile-manager list
# Create a new profile from your current setup
cinnamon-profile-manager create my-awesome-profile
# Switch to a different profile
cinnamon-profile-manager switch my-awesome-profile
# Update the active profile with your current settings
cinnamon-profile-manager update
# Delete a profile
cinnamon-profile-manager delete unwanted-profile# Create a manual backup of your current settings
cinnamon-profile-manager backup
# Restore settings from a backup
cinnamon-profile-manager restore
# (You'll be prompted to select from available backups)# Export a profile to share with others
cinnamon-profile-manager export my-awesome-theme
# (Saves to ~/Downloads or ~/ by default)
# Import a profile from a zip file
cinnamon-profile-manager import ~/Downloads/cinnamon-profile-my-awesome-theme-export-2025-05-16T12-00-00-000Z.zip# Reset all profiles and settings (BE CAREFUL!)
cinnamon-profile-manager resetBy default, profiles are stored in ~/.cinnamon-profiles/. You can change this location by setting the CINNAMON_PROFILES_DIR environment variable:
export CINNAMON_PROFILES_DIR="/path/to/custom/directory"This project is built using Deno and TypeScript:
# Run in development mode with automatic reloading
deno task dev
# Run normally
deno task start
# Compile binary
deno task compileThis project uses GitHub Actions for automated builds and releases:
- CI Build: Every push to the
mainbranch triggers a build to ensure compilation works - Linting & Formatting: Automatically ensures code style consistency
- Releases: When a new tag with format
v*(e.g.,v0.1.0) is pushed, GitHub Actions automatically:- Builds binary for Linux
- Creates a new GitHub Release with this binary
- Generates release notes automatically
To create a new release:
# Tag the commit
git tag -a v0.1.0 -m "Release v0.1.0"
# Push the tag
git push origin v0.1.0Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request