nix/lib/modules/editor.nix
2023-05-06 18:39:50 +01:00

49 lines
1.1 KiB
Nix

{ user }: { lib, pkgs, config, ... }:
with lib;
let
editor = config.programs.editor;
terminal = "foot";
menu = "wofi --show dmenu";
in
{
options.programs = {
editor = {
enable = mkEnableOption "editor";
package = mkPackageOption pkgs "vscodium" {
default = pkgs.vscodium;
example = "pkgs.vscode";
};
command = mkOption {
default = "/bin/codium";
};
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)
${terminal} -e -- git clone "$url" ;;
*) [ -e "$repo" ] && ${editor.package}${editor.command} $repo ;;
esac
'';
install = false;
hotkey = "C";
}];
};
}