{ rofi ? throw "rofi package is required", bookmarks ? throw "bookmarks argument is required", lib, pkgs, ... }: let copy = lib.meta.getExe ( pkgs.writeShellApplication { name = "copy"; runtimeInputs = with pkgs; [ jq wl-clipboard ]; runtimeEnv.BOOKMARKS = (pkgs.formats.json { }).generate "bookmarks.json" bookmarks; text = builtins.readFile ./copy.sh; } ); in pkgs.writeShellApplication { name = "clipbook-rofi"; runtimeInputs = [ rofi ]; text = "rofi -modes \"clipbook-copy:${copy}\" -show clipbook-copy"; }