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 command [args...]

PARAMETERS

add <url> [--name <name>]
    Adds a new plugin from the specified Git repository URL. Optionally assigns a custom name for the plugin.

remove <name>
    Removes an installed plugin by its name.

list
    Lists all installed plugins, showing their status (enabled/disabled) and other relevant information.

enable <name>
    Enables a previously installed and disabled plugin, making it active for Hyprland.

disable <name>
    Disables an active plugin without removing it, preventing it from loading with Hyprland.

update [<name>]
    Updates all installed plugins, or a specific plugin if a name is provided, to their latest versions from their respective Git repositories.

install
    Installs the plugins that have been added but not yet compiled/installed. This command typically compiles and places them in the correct Hyprland plugin directory.

build [<name>]
    Builds (compiles) all plugins, or a specific plugin if a name is provided. This is usually done automatically by 'install' but can be triggered manually.

clean
    Cleans up build artifacts and temporary files generated during the plugin compilation process.

docs [<name>]
    Opens the documentation for all installed plugins, or a specific plugin if a name is provided, usually by opening the repository URL in a browser.

config
    Opens the configuration directory for hyprpm, allowing manual inspection or modification of plugin settings.

completion [<shell>]
    Generates shell completion scripts for hyprpm for various shells (e.g., bash, zsh, fish).

DESCRIPTION

hyprpm is a dedicated plugin manager designed for Hyprland, a dynamic tiling Wayland compositor. It simplifies the process of discovering, installing, managing, and updating plugins that extend Hyprland's functionality. Users can easily add new plugins from various Git repository sources, enable or disable them as needed, update installed ones, and remove those no longer desired. hyprpm aims to provide a streamlined experience for enhancing Hyprland through its vibrant plugin ecosystem, allowing users to customize their desktop environment efficiently without manual compilation or complex configuration.

CAVEATS

Using hyprpm requires several build tools to be installed on the system, including git, cmake, a C++ compiler (like g++ or clang), and a build system (make or ninja).
Plugins are third-party code and can potentially cause instability or security risks if not sourced from trusted repositories.
Plugins are specific to Hyprland's API; breaking changes in Hyprland might affect plugin compatibility.

PLUGIN SOURCES

hyprpm primarily sources plugins directly from Git repositories. Users must provide a valid URL to the plugin's source code for the add command to function correctly. This decentralized approach allows for a wide variety of community-contributed plugins.

BUILD DEPENDENCIES

For plugin compilation, users must have a C++ compiler (such as g++ or clang), cmake, and a build system (like make or ninja) installed on their system. These tools are essential for transforming the plugin's source code into a runnable binary.

RUNTIME ENVIRONMENT

Plugins managed by hyprpm are loaded by the Hyprland Wayland compositor itself. A running Hyprland session is necessary for plugins to be initialized and function correctly, as they extend Hyprland's core capabilities.

HISTORY

hyprpm emerged as a community-driven solution to streamline the management of plugins for the Hyprland Wayland compositor. Prior to its existence, installing Hyprland plugins often involved manual cloning of Git repositories, compiling source code, and correctly placing compiled binaries. It fills a crucial gap, providing a centralized and automated way to handle the plugin lifecycle, similar to how package managers operate for system-wide software, but tailored specifically for the Hyprland ecosystem.

SEE ALSO

hyprland(1), hyprctl(1), git(1), cmake(1), make(1)

Copied to clipboard