49 lines
1.1 KiB
Nix
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";
|
|
}];
|
|
};
|
|
|
|
}
|