anyrun.nix
1 { 2 pkgs, 3 lib, 4 config, 5 osConfig, 6 inputs, 7 ... 8 }:let 9 10 cfg = config.programs.anyrun; 11 inherit(lib) mkEnableOption mkIf; 12 13 in { 14 options.programs.anyrun = { 15 enable = mkEnableOption "anyrun"; 16 }; 17 18 config = mkIf cfg.enable { 19 inputs = { 20 21 anyrun.url = "github:Kirottu/anyrun"; 22 anyrun-nixos-options.url = "github:n3oney/anyrun-nixos-options/v2.0.0"; 23 anyrun.inputs.nixpkgs.follows = "nixpkgs"; 24 25 }; 26 27 hmModules = [inputs.anyrun.homeManagerModules.default]; 28 29 hm.programs.anyrun = { 30 enable = true; 31 32 config = { 33 closeOnClick = false; 34 hidePluginInfo = true; 35 width.fraction = 0.5; 36 showResultsImmediately = true; 37 y.fraction = 0.2; 38 maxEntries = 3; 39 plugins = with inputs.anyrun.packages.${pkgs.system}; [ 40 applications 41 shell 42 rink 43 translate 44 websearch 45 inputs.anyrun-nixos-options.packages.${pkgs.system}.default 46 ]; 47 48 }; 49 extraConfigFiles."nixos-options.ron".text = let 50 nixos-options = osConfig.system.build.manual.optionsJSON + "/share/doc/nixos/options.json"; 51 hm-options = inputs.home-manager.packages.${pkgs.system}.docs-json + "/share/doc/home-manager/options.json"; 52 options = builtins.toJSON { 53 ":nix" = [nixos-options]; 54 ":hm" = [hm-options]; 55 }; 56 in '' 57 Config( 58 options: ${options}, 59 ) 60 ''; 61 62 extraCss = '' 63 64 #window, 65 #match, 66 #entry, 67 #plugin, 68 #main { 69 background: transparent; 70 } 71 72 #match:selected { 73 background: rgba(203, 166, 247, 0.7); 74 } 75 76 #match { 77 padding: 3px; 78 border-radius: 5px; 79 } 80 81 #entry, #plugin:hover { 82 border-radius: 16px; 83 } 84 85 box#main { 86 background: rgb(30, 30, 46); 87 border: 1px solid #1c272b; 88 border-radius: 24px; 89 padding: 8px; 90 } 91 92 ''; 93 94 95 }; 96 }; 97 }