237 lines
5.1 KiB
Nix
237 lines
5.1 KiB
Nix
{ self
|
|
, config
|
|
, pkgs
|
|
, lib
|
|
, ...
|
|
}:
|
|
let
|
|
doomemacsSrc = builtins.fetchGit {
|
|
url = "https://github.com/doomemacs/doomemacs";
|
|
ref = "master";
|
|
rev = "ff33ec8f7a89d168ca533612e2562883c89e029f";
|
|
};
|
|
neofetchThemesSrc = builtins.fetchGit {
|
|
url = "https://github.com/Chick2D/neofetch-themes";
|
|
ref = "main";
|
|
rev = "c7392136bed264258c9b8788b14410e1ff06d602";
|
|
};
|
|
myEmacs = (pkgs.emacsPackagesFor pkgs.emacs-pgtk).emacsWithPackages (epkgs:
|
|
with epkgs; [
|
|
vterm
|
|
treesit-grammars.with-all-grammars
|
|
]);
|
|
in
|
|
{
|
|
programs = {
|
|
alacritty = {
|
|
enable = true;
|
|
settings = {
|
|
window.opacity = 0.88;
|
|
window.dimensions = {
|
|
lines = 40;
|
|
columns = 150;
|
|
};
|
|
};
|
|
};
|
|
|
|
rbw = {
|
|
enable = true;
|
|
settings = {
|
|
base_url = "https://bw.vlt81.de";
|
|
email = "tristandruyen@vault81.de";
|
|
};
|
|
};
|
|
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
|
|
cat /var/lib/rust-motd/motd
|
|
'';
|
|
loginShellInit = ''
|
|
direnv hook fish | source
|
|
'';
|
|
|
|
functions = {
|
|
ec = "emacsclient $argv";
|
|
ecc = "emacsclient -c $argv";
|
|
ecr = "emacsclient -r $argv";
|
|
ecrr = "emacsclient -r $argv";
|
|
};
|
|
plugins = [
|
|
{
|
|
name = "sponge";
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "meaningful-ooo";
|
|
repo = "sponge";
|
|
rev = "384299545104d5256648cee9d8b117aaa9a6d7be";
|
|
sha256 = "31d71950346d349762ca8da5f68e666bb9c05fce311096c616101584af999b5c";
|
|
};
|
|
}
|
|
];
|
|
};
|
|
|
|
git = {
|
|
enable = true;
|
|
userName = "Tristan Druyen";
|
|
userEmail = "tristan@vault81.de";
|
|
lfs = {
|
|
enable = true;
|
|
};
|
|
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 = {
|
|
"he4" = {
|
|
host = "he4";
|
|
hostname = "he4.vault81.de";
|
|
user = "tristand";
|
|
identityFile = "~/.ssh/id_ed25519";
|
|
};
|
|
"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";
|
|
};
|
|
"nixos-desk" = {
|
|
host = "nixos-desk";
|
|
hostname = "nixos-desk";
|
|
user = "tristand";
|
|
identityFile = "~/.ssh/id_v81_ed25519";
|
|
};
|
|
};
|
|
};
|
|
|
|
gpg = {
|
|
enable = true;
|
|
|
|
package = pkgs.unstable-pkgs.gnupg;
|
|
};
|
|
|
|
zoxide = {
|
|
enable = true;
|
|
|
|
package = pkgs.unstable-pkgs.zoxide;
|
|
};
|
|
};
|
|
|
|
services = {
|
|
gpg-agent = {
|
|
enable = true;
|
|
|
|
enableExtraSocket = true;
|
|
enableSshSupport = true;
|
|
};
|
|
lorri.enable = true;
|
|
|
|
emacs = {
|
|
enable = true;
|
|
defaultEditor = true;
|
|
package = myEmacs;
|
|
};
|
|
};
|
|
|
|
home = {
|
|
activation.setupEmacs = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
|
|
mkdir ~/.config/emacs -p
|
|
chmod u+rw -R ~/.config/emacs
|
|
cp -r ${doomemacsSrc}/. "$HOME/.config/emacs"
|
|
'';
|
|
activation.setupNeofetch = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
|
|
mkdir ~/.config/neofetch -p
|
|
chmod u+rw -R ~/.config/neofetch
|
|
cp ${neofetchThemesSrc}/normal/acenoster.conf "$HOME/.config/neofetch/config.conf"
|
|
'';
|
|
|
|
file.".config/doom" = {
|
|
recursive = true;
|
|
source = ../../ext/doom;
|
|
# onChange = "${config.home.homeDirectory}/.config/emacs/bin/doom sync";
|
|
};
|
|
|
|
sessionVariables = {
|
|
TERMINAL = "alacritty";
|
|
};
|
|
|
|
packages = with pkgs.unstable-pkgs; [
|
|
btop
|
|
myEmacs
|
|
imagemagick
|
|
rust-motd
|
|
zellij
|
|
any-nix-shell
|
|
atool
|
|
aspell
|
|
aspellDicts.en
|
|
aspellDicts.en-computers
|
|
aspellDicts.en-science
|
|
aspellDicts.de
|
|
binutils
|
|
cmake
|
|
curl
|
|
direnv
|
|
exercism
|
|
filezilla
|
|
fd
|
|
gnutls
|
|
gnumake
|
|
gcc
|
|
imagemagick
|
|
libtool
|
|
neofetch
|
|
nil
|
|
nixpkgs-fmt
|
|
nodejs_20
|
|
pandoc
|
|
python311Full
|
|
python311Packages.epc
|
|
python311Packages.orjson
|
|
rcm
|
|
(lib.mkIf config.services.gpg-agent.enable
|
|
pinentry-emacs)
|
|
(ripgrep.override { withPCRE2 = true; })
|
|
shellcheck
|
|
shfmt
|
|
statix
|
|
texlive.combined.scheme-full
|
|
tokei
|
|
tree-sitter
|
|
wget
|
|
wl-clipboard
|
|
zstd
|
|
];
|
|
};
|
|
}
|