{ pkgs, config, lib, ... }: with lib; let hoardSrc = pkgs.fetchFromGitHub { owner = "Hyde46"; repo = "hoard"; rev = "v1.3.1"; sha256 = "sha256-Gm3X6/g5JQJEl7wRvWcO4j5XpROhtfRJ72LNaUeZRGc="; }; in { options.components.terminal.hoard.enable = mkOption { type = lib.types.bool; default = config.components.terminal.enable; }; config = mkIf (config.components.terminal.hoard.enable) { # todo : sync via syncthing backup.dirs = [ "/root/.config/hoard" "/home/palo/.config/hoard" ]; environment.systemPackages = [ pkgs.legacy_2211.hoard ]; home-manager.users.mainUser = { xdg.configFile."hoard/config.yml".text = builtins.toJSON { version = "1.0.1"; default_namespace = "default"; config_home_path = "/home/palo/.config/hoard"; trove_path = "/home/palo/.config/hoard/trove.yml"; query_prefix = " >"; primary_color = [ 87 142 87 ]; secondary_color = [ 203 184 144 ]; tertiary_color = [ 30 30 30 ]; command_color = [ 30 30 30 ]; parameter_token = "#"; read_from_current_directory = true; }; programs.zsh.initExtra = '' export HOARD_NOBIND=1 source ${hoardSrc}/src/shell/hoard.zsh bindkey '^x' _hoard_list_widget ''; }; # use showkey -a # Ctrl-h is equivalent to Ctrl-Backspace (for some reason) programs.zsh.interactiveShellInit = '' export HOARD_NOBIND=1 source ${hoardSrc}/src/shell/hoard.zsh bindkey '^x' _hoard_list_widget ''; programs.bash.interactiveShellInit = '' export HOARD_NOBIND=1 source ${hoardSrc}/src/shell/hoard.bash bind -x '"\C-x": __hoard_list' ''; }; }