nix/lib/modules/editor.nix
2024-01-05 19:44:05 +00:00

55 lines
1.3 KiB
Nix

{user}: {
lib,
pkgs,
config,
...
}:
with lib; let
editor = config.programs.editor;
pkg = editor.package;
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;
extensions = [];
userSettings = {
"keyboard.dispatch" = "keyCode";
"terminal.integrated.sendKeybindingsToShell" = true;
"aws.telemetry" = false;
"gitlens.telemetry.enabled" = false;
"redhat.telemetry.enabled" = false;
"cSpell.language" = "en,en-GB";
};
};
}
];
programs.scripts = [
{
name = "open-code";
text = ''
code_dir=~/Documents/code
cd $code_dir
repo=$({ ls && echo clone-repo; } | ${menu})
[ -e "$repo" ] && ${pkg}/bin/${pkg.executableName} $repo
'';
install = false;
hotkeys = [{key = "C";}];
}
];
};
}