nix/home-mods/dev/default.nix

176 lines
3.5 KiB
Nix

{
lib,
pkgs,
config,
inputs,
...
}: let
doomemacsSrc = builtins.fetchGit {
url = "https://github.com/doomemacs/doomemacs";
ref = "master";
rev = "986398504d09e585c7d1a8d73a6394024fe6f164";
};
personalDoomConfSrc = builtins.fetchGit {
url = "https://git.vlt81.de/tristan/doom";
ref = "main";
rev = "e6d22f794c68a5f3ac56861e7e2ed6642cdef16a";
};
in {
xdg.enable = true;
programs.alacritty = {
enable = true;
settings = {
window.opacity = 0.88;
window.dimensions = {
lines = 40;
columns = 150;
};
};
};
programs.starship = {
enable = true;
package = pkgs.unstable-pkgs.starship;
};
programs.fish = {
enable = true;
package = pkgs.unstable-pkgs.fish;
interactiveShellInit = ''
any-nix-shell fish --info-right | source
direnv hook fish | source
'';
loginShellInit = ''
direnv hook fish | source
'';
functions = {
ec = "emacsclient $argv";
ecc = "emacsclient -c $argv";
ecr = "emacsclient -r $argv";
ecrr = "emacsclient -r $argv";
};
};
programs.git = {
enable = true;
userName = "Tristan Druyen";
userEmail = "tristan@vault81.de";
aliases = {
ci = "commit";
co = "checkout";
s = "status";
};
extraConfig = {
user.signingkey = "${config.home.homeDirectory}/.ssh/id_ed25519";
commit.gpgsign = true;
gpg.format = "ssh";
};
package = pkgs.unstable-pkgs.git;
};
programs.nix-index = {
enable = true;
enableFishIntegration = true;
};
programs.ssh = {
enable = true;
package = pkgs.unstable-pkgs.openssh;
matchBlocks = {
"he3" = {
host = "he3";
hostname = "he3.vault81.de";
user = "root";
identityFile = "~/.ssh/id_hetz_ed25519";
};
"he2" = {
host = "he2";
hostname = "he2.vault81.de";
user = "root";
identityFile = "~/.ssh/id_v81_ed25519";
};
"desk-arch" = {
host = "desk-arch";
hostname = "tristan-desk-arch";
user = "tristand";
identityFile = "~/.ssh/id_v81_ed25519";
};
};
};
programs.gpg = {
enable = true;
package = pkgs.unstable-pkgs.gnupg;
};
services.gpg-agent = {
enable = true;
enableExtraSocket = true;
enableSshSupport = true;
};
services.lorri.enable = true;
services.emacs = {
enable = true;
defaultEditor = true;
package = pkgs.unstable-pkgs.emacs-unstable-pgtk;
};
home = {
activation.installDoomEmacs = lib.hm.dag.entryAfter ["writeBoundary"] ''
mkdir ~/.config/emacs -p
chmod u+rw -R ~/.config/emacs
cp -r ${doomemacsSrc}/. "$HOME/.config/emacs"
mkdir ~/.config/doom -p
chmod u+rw -R ~/.config/doom
cp -r ${personalDoomConfSrc}/. "$HOME/.config/doom"
'';
sessionVariables = {
TERMINAL = "alacritty";
};
packages = with pkgs.unstable-pkgs; [
any-nix-shell
atool
aspell
aspellDicts.en
aspellDicts.en-computers
aspellDicts.en-science
aspellDicts.de
binutils
cmake
curl
direnv
emacs-unstable-pgtk
fd
gnutls
gnumake
gcc
imagemagick
libtool
pandoc
python311Full
rcm
(lib.mkIf (config.services.gpg-agent.enable)
pinentry-emacs)
(ripgrep.override {withPCRE2 = true;})
nil
shellcheck
shfmt
texlive.combined.scheme-full
tokei
wget
wl-clipboard
zstd
];
};
}