add vim module
This commit is contained in:
parent
e7352f9530
commit
dc8a2322fc
5 changed files with 96 additions and 71 deletions
|
@ -48,7 +48,6 @@ with config;
|
||||||
python3
|
python3
|
||||||
fzf
|
fzf
|
||||||
ripgrep
|
ripgrep
|
||||||
vim
|
|
||||||
lsd
|
lsd
|
||||||
unstable.atuin
|
unstable.atuin
|
||||||
|
|
||||||
|
@ -89,12 +88,6 @@ with config;
|
||||||
# nix tools
|
# nix tools
|
||||||
nvd
|
nvd
|
||||||
];
|
];
|
||||||
|
|
||||||
sessionVariables = {
|
|
||||||
EDITOR = "vim";
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,66 +1,6 @@
|
||||||
{ lib, config, pkgs, ... }:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.mySystem.editor.vscode;
|
|
||||||
# VSCode Community Extensions. These are updated daily.
|
|
||||||
vscodeCommunityExtensions = [
|
|
||||||
"dracula-theme.theme-dracula"
|
|
||||||
"esbenp.prettier-vscode"
|
|
||||||
"jnoortheen.nix-ide"
|
|
||||||
"mikestead.dotenv"
|
|
||||||
"ms-azuretools.vscode-docker"
|
|
||||||
# Python extensions *required* for redhat.ansible/vscode-yaml
|
|
||||||
"ms-python.python"
|
|
||||||
"ms-python.vscode-pylance"
|
|
||||||
"ms-vscode-remote.remote-ssh"
|
|
||||||
"ms-vscode-remote.remote-ssh-edit"
|
|
||||||
"pkief.material-icon-theme"
|
|
||||||
"redhat.ansible"
|
|
||||||
"redhat.vscode-yaml"
|
|
||||||
"signageos.signageos-vscode-sops"
|
|
||||||
"tamasfe.even-better-toml"
|
|
||||||
"tyriar.sort-lines"
|
|
||||||
"yzhang.markdown-all-in-one"
|
|
||||||
"mrmlnc.vscode-json5"
|
|
||||||
"editorconfig.editorconfig"
|
|
||||||
];
|
|
||||||
# Nixpkgs Extensions. These are updated whenver they get around to it.
|
|
||||||
vscodeNixpkgsExtensions = [
|
|
||||||
# Continue ships with a binary that requires the patchelf fix which is done by default in nixpkgs.
|
|
||||||
"continue.continue"
|
|
||||||
];
|
|
||||||
# Straight from the VSCode marketplace.
|
|
||||||
marketplaceExtensions = [
|
|
||||||
{
|
|
||||||
name = "copilot";
|
|
||||||
publisher = "github";
|
|
||||||
version = "1.219.0";
|
|
||||||
sha256 = "Y/l59JsmAKtENhBBf965brSwSkTjSOEuxc3tlWI88sY=";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "copilot-chat";
|
|
||||||
publisher = "github";
|
|
||||||
version = "0.17.1";
|
|
||||||
sha256 = "Aa4gmHJCveP18v6CAvmkxmqf1JV1LygyQFNpzDz64Gw=";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
# Extract extension strings and coerce them to a list of valid attribute paths.
|
|
||||||
vscodeCommunityExtensionsPackages = map (ext: getAttrFromPath (splitString "." ext) pkgs.vscode-marketplace) vscodeCommunityExtensions;
|
|
||||||
nixpkgsExtensionsPackages = map (ext: getAttrFromPath (splitString "." ext) pkgs.vscode-extensions) vscodeNixpkgsExtensions;
|
|
||||||
marketplaceExtensionsPackages = pkgs.vscode-utils.extensionsFromVscodeMarketplace marketplaceExtensions;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.mySystem.editor.vscode.enable = mkEnableOption "vscode";
|
imports = [
|
||||||
config = mkIf cfg.enable {
|
./vim.nix
|
||||||
|
./vscode.nix
|
||||||
# Enable vscode & addons
|
];
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
(vscode-with-extensions.override {
|
|
||||||
inherit (unstable) vscode;
|
|
||||||
# Merge all the extension packages together.
|
|
||||||
vscodeExtensions =
|
|
||||||
vscodeCommunityExtensionsPackages ++ nixpkgsExtensionsPackages ++ marketplaceExtensionsPackages;
|
|
||||||
})
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
25
nixos/modules/nixos/editor/vim.nix
Normal file
25
nixos/modules/nixos/editor/vim.nix
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
# /home/jahanson/projects/mochi/nixos/modules/nixos/editor/vim.nix
|
||||||
|
|
||||||
|
{ config, lib, ... }:
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.mySystem.editor.vim;
|
||||||
|
users = [ "jahanson" ];
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.mySystem.editor.vim.enable = mkEnableOption "vim";
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
# Enable vim and set as default editor
|
||||||
|
programs.vim.defaultEditor = true;
|
||||||
|
|
||||||
|
# Visual mode off and syntax highlighting on
|
||||||
|
home-manager.users = mapAttrs
|
||||||
|
(user: _: {
|
||||||
|
home.file.".vimrc".text = ''
|
||||||
|
set mouse-=a
|
||||||
|
syntax on
|
||||||
|
'';
|
||||||
|
})
|
||||||
|
(listToAttrs (map (u: { name = u; value = { }; }) users));
|
||||||
|
};
|
||||||
|
}
|
66
nixos/modules/nixos/editor/vscode.nix
Normal file
66
nixos/modules/nixos/editor/vscode.nix
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
{ lib, config, pkgs, ... }:
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.mySystem.editor.vscode;
|
||||||
|
# VSCode Community Extensions. These are updated daily.
|
||||||
|
vscodeCommunityExtensions = [
|
||||||
|
"dracula-theme.theme-dracula"
|
||||||
|
"esbenp.prettier-vscode"
|
||||||
|
"jnoortheen.nix-ide"
|
||||||
|
"mikestead.dotenv"
|
||||||
|
"ms-azuretools.vscode-docker"
|
||||||
|
# Python extensions *required* for redhat.ansible/vscode-yaml
|
||||||
|
"ms-python.python"
|
||||||
|
"ms-python.vscode-pylance"
|
||||||
|
"ms-vscode-remote.remote-ssh"
|
||||||
|
"ms-vscode-remote.remote-ssh-edit"
|
||||||
|
"pkief.material-icon-theme"
|
||||||
|
"redhat.ansible"
|
||||||
|
"redhat.vscode-yaml"
|
||||||
|
"signageos.signageos-vscode-sops"
|
||||||
|
"tamasfe.even-better-toml"
|
||||||
|
"tyriar.sort-lines"
|
||||||
|
"yzhang.markdown-all-in-one"
|
||||||
|
"mrmlnc.vscode-json5"
|
||||||
|
"editorconfig.editorconfig"
|
||||||
|
];
|
||||||
|
# Nixpkgs Extensions. These are updated whenver they get around to it.
|
||||||
|
vscodeNixpkgsExtensions = [
|
||||||
|
# Continue ships with a binary that requires the patchelf fix which is done by default in nixpkgs.
|
||||||
|
"continue.continue"
|
||||||
|
];
|
||||||
|
# Straight from the VSCode marketplace.
|
||||||
|
marketplaceExtensions = [
|
||||||
|
{
|
||||||
|
name = "copilot";
|
||||||
|
publisher = "github";
|
||||||
|
version = "1.219.0";
|
||||||
|
sha256 = "Y/l59JsmAKtENhBBf965brSwSkTjSOEuxc3tlWI88sY=";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "copilot-chat";
|
||||||
|
publisher = "github";
|
||||||
|
version = "0.17.1";
|
||||||
|
sha256 = "Aa4gmHJCveP18v6CAvmkxmqf1JV1LygyQFNpzDz64Gw=";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
# Extract extension strings and coerce them to a list of valid attribute paths.
|
||||||
|
vscodeCommunityExtensionsPackages = map (ext: getAttrFromPath (splitString "." ext) pkgs.vscode-marketplace) vscodeCommunityExtensions;
|
||||||
|
nixpkgsExtensionsPackages = map (ext: getAttrFromPath (splitString "." ext) pkgs.vscode-extensions) vscodeNixpkgsExtensions;
|
||||||
|
marketplaceExtensionsPackages = pkgs.vscode-utils.extensionsFromVscodeMarketplace marketplaceExtensions;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.mySystem.editor.vscode.enable = mkEnableOption "vscode";
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
|
# Enable vscode & addons
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
(vscode-with-extensions.override {
|
||||||
|
inherit (unstable) vscode;
|
||||||
|
# Merge all the extension packages together.
|
||||||
|
vscodeExtensions =
|
||||||
|
vscodeCommunityExtensionsPackages ++ nixpkgsExtensionsPackages ++ marketplaceExtensionsPackages;
|
||||||
|
})
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
|
@ -18,6 +18,7 @@ with lib;
|
||||||
boot.tmp.cleanOnBoot = true;
|
boot.tmp.cleanOnBoot = true;
|
||||||
mySystem = {
|
mySystem = {
|
||||||
# basics for all devices
|
# basics for all devices
|
||||||
|
editor.vim.enable = true;
|
||||||
time.timeZone = "America/Chicago";
|
time.timeZone = "America/Chicago";
|
||||||
security.increaseWheelLoginLimits = true;
|
security.increaseWheelLoginLimits = true;
|
||||||
system.packages = [ pkgs.bat ];
|
system.packages = [ pkgs.bat ];
|
||||||
|
|
Loading…
Reference in a new issue