{"id":32556661,"url":"https://github.com/szaffarano/rofi-tools","last_synced_at":"2026-05-01T06:02:37.619Z","repository":{"id":274039708,"uuid":"921715992","full_name":"szaffarano/rofi-tools","owner":"szaffarano","description":"Rofi extensions","archived":false,"fork":false,"pushed_at":"2025-10-17T04:15:58.000Z","size":816,"stargazers_count":8,"open_issues_count":2,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-18T07:31:38.062Z","etag":null,"topics":["hyprland","linux","nix-flake","rofi","rofi-scripts","rust","wayland"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/szaffarano.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-01-24T13:33:32.000Z","updated_at":"2025-10-17T04:15:15.000Z","dependencies_parsed_at":"2025-02-11T23:27:21.519Z","dependency_job_id":"a8fcd5a9-3548-4416-a4f7-08f7a0bef34d","html_url":"https://github.com/szaffarano/rofi-tools","commit_stats":null,"previous_names":["szaffarano/rofi-tools"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/szaffarano/rofi-tools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szaffarano%2Frofi-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szaffarano%2Frofi-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szaffarano%2Frofi-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szaffarano%2Frofi-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/szaffarano","download_url":"https://codeload.github.com/szaffarano/rofi-tools/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szaffarano%2Frofi-tools/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281527380,"owners_count":26516845,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-28T02:00:06.022Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hyprland","linux","nix-flake","rofi","rofi-scripts","rust","wayland"],"created_at":"2025-10-28T22:57:46.053Z","updated_at":"2026-05-01T06:02:37.610Z","avatar_url":"https://github.com/szaffarano.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rofi Tools\n\n![GitHub Release](https://img.shields.io/github/v/release/szaffarano/rofi-tools?sort=date\u0026style=flat-square)\n![GitHub License](https://img.shields.io/github/license/szaffarano/rofi-tools?style=flat-square)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026style=flat-square)](https://github.com/pre-commit/pre-commit)\n![NixOS](https://img.shields.io/badge/NixOS-5277C3?logo=nixos\u0026logoColor=fff\u0026style=flat-square)\n\nNote: Only tested with [rofi-wayland](https://github.com/lbonn/rofi), although\nit should work with the [official version](https://github.com/davatorium/rofi).\n\n## Installation\n\n### Nix\n\n#### Option 1: Using flakes (recommended)\n\nIf you have flakes enabled:\n\n```bash\n# Install directly\nnix profile install github:szaffarano/rofi-tools\n\n# Or run without installing\nnix run github:szaffarano/rofi-tools\n```\n\n#### Option 2: Add to your NixOS configuration\n\nAdd to your `configuration.nix`:\n\n```nix\n{\n  inputs.rofi-tools.url = \"github:szaffarano/rofi-tools\";\n\n  outputs = { nixpkgs, rofi-tools, ... }: {\n    # Your existing config...\n\n    environment.systemPackages = with pkgs; [\n      # Your other packages...\n      rofi-tools.packages.${system}.default\n    ];\n  };\n}\n```\n\n### Arch Linux\n\nYou can install this project using an [unofficial AUR\npackage](https://aur.archlinux.org/packages/rofi-tools-bin) (Thanks\n[@a-priestley](https://github.com/a-priestley)):\n\n```bash\nyay -S rofi-tools\n```\n\nAlternatively, you can build from the AUR manually:\n\n```bash\ngit clone https://aur.archlinux.org/rofi-tools-bin.git\ncd rofi-tools-bin\nmakepkg -si\n```\n\n### Build from Source\n\nIf your distribution isn't listed above, you can build from source:\n\n```bash\n# Install Rust (if not already installed)\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\nsource $HOME/.cargo/env\n\n# Clone the repository\ngit clone https://github.com/szaffarano/rofi-tools.git\ncd rofi-tools\n\n# Build and install\ncargo install --path .\n```\n\nRequirements:\n\n- Rust 1.70 or newer\n- [rofi](https://github.com/davatorium/rofi) or\n  [rofi-wayland](https://github.com/lbonn/rofi) installed on your system\n- [wl-clipboard](https://github.com/bugaevc/wl-clipboard)\n- [cliphist](https://github.com/sentriz/cliphist)\n\n## Cliphist integration\n\nA WIP integration with `cliphist` to show both text and images in a Rofi menu.\nRequires [wl-clipboard](https://github.com/bugaevc/wl-clipboard) and of course\n[cliphist](https://github.com/sentriz/cliphist).\n\nSince I wanted to use different layouts/rofi configurations for texts and\nimages, neither the `script` mode nor a custom mode/plugin were valid options\nbecause it's impossible to dynamically update the layout without re-launching\nRofi (more [info here](https://github.com/davatorium/rofi/issues/1356)).\n\n### Usage\n\nJust build the tool or download the [latest\nrelease](https://github.com/szaffarano/rofi-tools/releases) and add the binary\nto your path.\n\nIt's also exposed as a Nix flake. Add the input to your `flake.nix`\n\n```nix\n{\n  inputs = {\n    rofi-tools = {\n      url = \"github:szaffarano/rofi-tools\";\n      inputs = {\n        nixpkgs.follows = \"nixpkgs\";\n      };\n    };\n  }\n}\n```\n\nAnd reference the package as usual, e.g.,\n\n```nix\nhome.packages = [\n  inputs.rofi-tools.packages.${pkgs.system}.rofi-cliphist\n];\n```\n\nAnd finally call it\n\n```bash\nrofi-cliphist\n```\n\nIt will show by default all non-binary cliphist entries. You can switch between\ntext/image mode by using `Alt-t` / `Alt-i` and also delete entries using\n`Alt-d`, `Alt-p` (delete previous) and `Alt-n` (delete next).\n\n![Text Mode](./img/text-mode.png)\n\n![Image Mode](./img/img-mode.png)\n\n### Configuration\n\n- Through the command line:\n\n```bash\nUsage: rofi-cliphist [OPTIONS]\n\nOptions:\n  -v, --verbose                          Show verbose output\n  -r, --rofi-path \u003cROFI_PATH\u003e            Path to rofi executable [default: rofi]\n  -c, --cliphist-path \u003cCLIPHIST_PATH\u003e    Path to cliphist executable [default: cliphist]\n  -w, --clipboard-path \u003cCLIPBOARD_PATH\u003e  Path to wl-copy executable [default: wl-copy]\n  -f, --config \u003cFILE\u003e                    Sets a custom config file\n  -t, --theme \u003cTHEME\u003e                    Sets a custom theme\n  -h, --help                             Print help\n  -V, --version                          Print version\n```\n\n- Through a configuration file, either on `$XDG_CONFIG_HOME/rofi-cliphist.toml`\nor the path specified using the `-f/--config` flag\n\n```toml\n[rofi]\npath = \"rofi\"\n\n[cliphist]\npath = \"cliphist\"\n\n[clipboard]\npath = \"wl-copy\"\n\n[text_mode_config]\ntitle = \"Text\"\nshortcut = \"Alt+t\"\ndescription = \"Switch to text mode\"\n\n[image_mode_config]\ntitle = \"Image\"\nshortcut = \"Alt+i\"\ndescription = \"Switch to image mode!\"\n\n[delete_mode_config]\ntitle = \"Delete\"\nshortcut = \"Alt+d\"\ndescription = \"Delete entry\"\n\n[delete_previous_config]\ntitle = \"Delete previous\"\nshortcut = \"Alt+p\"\ndescription = \"Delete all entries before the selected one\"\n\n[delete_next_config]\ntitle = \"Delete next\"\nshortcut = \"Alt+n\"\ndescription = \"Delete all entries after the selected one\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fszaffarano%2Frofi-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fszaffarano%2Frofi-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fszaffarano%2Frofi-tools/lists"}