nix/home-mods/shell/default.nix

132 lines
2.7 KiB
Nix

{ self
, config
, pkgs
, lib
, ...
}:
let
doomemacsSrc = builtins.fetchGit {
url = "https://github.com/doomemacs/doomemacs";
ref = "master";
rev = "986398504d09e585c7d1a8d73a6394024fe6f164";
};
in
{
programs = {
starship = {
enable = true;
package = pkgs.unstable-pkgs.starship;
};
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";
};
};
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;
};
nix-index = {
enable = true;
enableFishIntegration = true;
};
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";
};
};
};
gpg = {
enable = true;
package = pkgs.unstable-pkgs.gnupg;
};
};
services = {
gpg-agent = {
enable = true;
enableExtraSocket = true;
enableSshSupport = true;
};
lorri.enable = true;
emacs = {
enable = true;
defaultEditor = true;
package = lib.mkDefault pkgs.unstable-pkgs.emacs-unstable;
};
};
home = {
activation.setupEmacs = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
mkdir ~/.config/emacs -p
chmod u+rw -R ~/.config/emacs
cp -r ${doomemacsSrc}/. "$HOME/.config/emacs"
'';
file.".config/doom" = {
recursive = true;
source = ../../ext/doom;
onChange = "${config.home.homeDirectory}/.config/emacs/bin/doom sync";
};
packages = with pkgs.unstable-pkgs; [
btop
imagemagick
rust-motd
zellij
];
};
}