{ user }: { lib, pkgs, config, ... }: with lib; let editor = config.programs.editor; pkg = editor.package; terminal = config.programs.terminal.package; termcmd = "${terminal}/bin/${terminal.pname}"; menu = config.programs.menu.package+config.programs.menu.dmenuCommand; in { options.programs = { editor = { enable = mkEnableOption "editor"; package = mkPackageOption pkgs "vscodium" { example = "pkgs.vscode"; }; neovim = mkEnableOption "neovim mode"; }; }; config = mkIf editor.enable { home-manager.users.${user}.imports = [{ programs.vscode = { enable = true; package = editor.package; }; }]; programs.scripts = [{ name = "open-code"; text = '' code_dir=~/Documents/code cd $code_dir repo=$({ ls && echo clone-repo; } | ${menu}) case $repo in clone-repo) url=$(wl-paste) ${termcmd} -e -- git clone "$url" ;; *) [ -e "$repo" ] && ${pkg}/bin/${pkg.executableName} $repo ;; esac ''; install = false; hotkeys = [{key = "C";}]; }]; }; }