nix/lib/modules/editor.nix
2023-05-07 09:19:14 +01:00

48 lines
1.1 KiB
Nix

{ 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 = "wofi --show dmenu";
in
{
options.programs = {
editor = {
enable = mkEnableOption "editor";
package = mkPackageOption pkgs "vscodium" {
default = 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.pname} $repo ;;
esac
'';
install = false;
hotkeys = [{key = "C";}];
}];
};
}