grimm-nix-shared/modules/toolchains.nix

126 lines
2.6 KiB
Nix
Raw Normal View History

2024-03-16 13:49:20 +01:00
{ pkgs, config, lib, ... }: let
cfg = config.grimmShared;
in {
config = with cfg; lib.mkIf (enable && tooling.enable) {
2024-03-16 17:51:28 +01:00
security.polkit.enable = true;
2024-03-16 13:53:19 +01:00
environment.systemPackages = with pkgs; [
2024-03-16 13:49:20 +01:00
(writeShellScriptBin "silent-add" "git add --intent-to-add $@ ; git update-index --assume-unchanged $@")
(writeShellScriptBin "systemd-owner" "systemctl show -pUser,UID $@")
(writeShellScriptBin "nix-referrers" "nix-store --query --referrers $@")
mkpasswd
gcc
jdk17
python3
pkg-config
pinentry
pass
libsecret
tea
acpi
(writeShellScriptBin "passw" "pass $@")
fbcat
gomuks
gotop
ranger
nix-search-cli
wget
tree
file
util-linux
gnupg
visualvm
ffmpeg-full
lm_sensors
imagemagick
pypy3
2024-03-16 18:02:19 +01:00
nmap
2024-03-16 13:49:20 +01:00
hyfetch
acpi
lshw
pciutils
usbutils
powertop
2024-03-16 18:02:19 +01:00
parted
2024-03-16 17:48:41 +01:00
] ++ lib.optionals cfg.graphical [
qdirstat
lxqt.lxqt-policykit
libva-utils
glxinfo
2024-03-16 18:02:19 +01:00
alacritty
2024-03-16 17:48:41 +01:00
vulkan-tools
pdfarranger
2024-03-16 18:02:19 +01:00
nomacs
gparted
2024-03-16 13:49:20 +01:00
];
programs.git = {
enable = true;
lfs.enable = true;
config = {
init.defaultBranch = "main";
2024-03-16 13:56:39 +01:00
credential.username = cfg.tooling.git_user;
2024-03-16 13:49:20 +01:00
core.editor = "${pkgs.neovim}/bin/nvim";
user.name = cfg.tooling.git_user;
user.email = cfg.tooling.git_email;
};
};
programs.tmux = {
enable = true;
historyLimit = 42000;
#keyMode = "vi";
};
virtualisation.docker.enable = true;
programs.neovim = {
enable = true;
viAlias = true;
defaultEditor = true;
configure = {
customRC = ''
set number
set hidden
set fileencodings=utf-8
set nocompatible
set clipboard+=unnamedplus
if filereadable($HOME . "/.vimrc")
source ~/.vimrc
endif
'';
packages.myVimPackage = with pkgs.vimPlugins; {
# loaded on launch
start = [
vim-nix
vim-scala
fugitive
];
# manually loadable by calling `:packadd $plugin-name`
opt = [ ];
};
};
};
services.passSecretService.enable = true;
services.pcscd.enable = true;
programs.xonsh.enable = true;
programs.ssh.startAgent = true;
programs.thefuck.enable = true;
programs.gnupg.agent = {
settings = {
# default-cache-ttl = 6000;
};
2024-03-16 13:55:36 +01:00
pinentryPackage = lib.mkDefault pkgs.pinentry;
2024-03-16 13:49:20 +01:00
enable = true;
# enableSSHSupport = true;
};
};
}