134 lines
2.8 KiB
Nix
134 lines
2.8 KiB
Nix
|
{ config, pkgs, lib, ... }:
|
||
|
|
||
|
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 = "c6558ab65f106628a3bdb890df935bb7965edd95";
|
||
|
};
|
||
|
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.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"
|
||
|
'';
|
||
|
|
||
|
packages = with pkgs.unstable-pkgs; [
|
||
|
btop
|
||
|
imagemagick
|
||
|
rust-motd
|
||
|
zellij
|
||
|
];
|
||
|
};
|
||
|
}
|