LinuxCommandLibrary

hyprpm

Manage Hyprland packages and configurations

TLDR

Add a plugin

$ hyprpm add [git_url]
copy

Remove a plugin
$ hyprpm remove [git_url|plugin_name]
copy

Enable a plugin
$ hyprpm enable [plugin_name]
copy

Disable a plugin
$ hyprpm disable [plugin_name]
copy

Update and check all plugins
$ hyprpm update
copy

Force an operation
$ hyprpm [[-f|--force]] [operation]
copy

List all installed plugins
$ hyprpm list
copy

SYNOPSIS

hyprpm [add|remove|list|enable|disable|update|switch|search|info] [options] [args]

PARAMETERS

add <git-url> [--name <name>] [--branch <branch>]
    Clone and add package(s) from Git URL(s)

remove <name>
    Remove installed package and its data

list [--enabled]
    List all or enabled packages

enable <name>
    Enable package, symlink configs, reload Hyprland

disable <name>
    Disable package, remove symlinks

update [--all]
    Git pull to update package(s)

switch <name>
    Disable current, enable new package

search <query>
    Search GitHub for Hyprland packages

info <name>
    Display package metadata and status

-h, --help
    Show general or subcommand help

-v, --version
    Print hyprpm version

DESCRIPTION

Hyprpm is a lightweight CLI tool designed specifically for managing packages in the Hyprland ecosystem, a popular dynamic Wayland compositor for Linux. It treats user configurations, themes, wallpapers, and scripts as 'packages' typically hosted on Git repositories.

Core functionality revolves around fetching, installing, enabling, and updating these packages. Packages are cloned into ~/.local/share/hyprpm/packages/, while enabled ones are symlinked into ~/.local/share/hyprpm/enabled/. Enabling a package intelligently merges or overrides parts of your ~/.config/hypr/ directory, preserving user customizations where possible via a priority system.

It supports seamless switching between themes (e.g., catppuccin, tokyonight), auto-updating via git pull, and searching public repos. Hyprpm ensures configs reload automatically with Hyprland's hyprctl reload integration.

Ideal for users seeking modular dotfiles without manual git cloning/symlinking. It prevents config conflicts by disabling overlapping packages and uses a manifest (package.json) for metadata like version, author, and dependencies. Widely used in the Hyprland community for quick theme switching and sharing setups.

CAVEATS

Requires git and Hyprland; backups ~/.config/hypr before overrides but test packages first. No uninstaller for merged changes.

INSTALLATION

Via install script: curl -sL https://raw.githubusercontent.com/prasanthrangan/hyprpm/main/install.sh | bash
Or AUR: hyprpm-git.

EXAMPLES

hyprpm add https://github.com/prasanthrangan/hyprdots
hyprpm enable hyprdots
hyprpm switch catppuccin
hyprpm update --all

HISTORY

Created by prasanthrangan in 2023 for Hyprland v0.28+. Evolved from manual theme scripts; now v0.12+ with search and dependency support. Actively maintained on GitHub.

SEE ALSO

hyprland(1), git(1), dotdrop(1)

Copied to clipboard