dotfiles/module/home-manager.nix
2025-02-22 09:58:13 +01:00

230 lines
5.5 KiB
Nix

{ email }: { pkgs, ... }: {
home.file.".emacs.d/early-init.el".source = ../config/emacs/early-init.el;
home.file.".emacs.d/tree-sitter/libtree-sitter-swift.dylib".source = ../config/emacs/tree-sitter/libtree-sitter-swift.dylib;
home.file.".emacs.d/snippets".source = ../config/emacs/snippets;
home.file.".clojure/deps.edn".source = ../config/clojure/deps.edn;
home.language = {
base = "en_US.utf8";
numeric = "de_DE.utf8";
time = "de_DE.utf8";
measurement = "de_DE.utf8";
};
home.packages = with pkgs; [
bottom
babashka
cascadia-code
clj-kondo
cloc
cmake
coreutils
curl
fira-code
gnupg
htop
imagemagick
iosevka-comfy.comfy
iosevka-comfy.comfy-motion-duo
jq
kubectl
typescript
nixpkgs-fmt
nodejs
nodePackages.typescript-language-server
nodePackages.vscode-json-languageserver
noto-fonts
nixd
pass
python312Packages.flake8
python312Packages.isort
python312Packages.rope
python312Packages.pyflakes
python312Packages.python-lsp-server
python312Packages.pyls-isort
python312Packages.python-lsp-black
python312Packages.pylsp-rope
ripgrep
tree
wget
];
home.stateVersion = "24.11";
home.sessionVariables = {
PAGER = "less";
CLICOLOR = 1;
EDITOR = "emacs";
LOGSEQ_DIR = "~/Logseq/Me/";
};
programs = {
direnv = {
enable = true;
enableZshIntegration = true;
nix-direnv.enable = true;
};
emacs = {
enable = true;
extraConfig = builtins.readFile ../config/emacs/init.el +
builtins.readFile ../config/emacs/lisp/utils.el;
extraPackages = epkgs: (with epkgs; [
ace-window
apheleia
avy
cape
cider
clojure-mode
(trivialBuild {
pname = "Combobulate";
version = "master-09-26-2024";
src = pkgs.fetchFromGitHub {
owner = "mickeynp";
repo = "combobulate";
rev = "416b9e2225100c44c36e05e4adcfc2ee4048cefa";
hash = "sha256-UPoWwJPe2Ctm4XV+dt82rS0HatjQ1WSpewF/z64DNe4=";
};
})
consult
(trivialBuild {
pname = "copilot";
version = "master-12-28-2024";
src = pkgs.fetchFromGitHub {
owner = "copilot-emacs";
repo = "copilot.el";
rev = "c5dfa99f05878db5e6a6a378dc7ed09f11e803d4";
hash = "sha256-FzI08AW7a7AleEM7kSQ8LsWsDYID8SW1SmSN6/mIB/A=";
};
packageRequires = [
editorconfig
dash
f
jsonrpc
];
})
corfu
diff-hl
dockerfile-mode
ef-themes
envrc
exec-path-from-shell
flycheck
flycheck-clj-kondo
flycheck-swiftlint
(trivialBuild {
pname = "gptel";
version = "master-09-29-2024";
src = pkgs.fetchFromGitHub {
owner = "karthink";
repo = "gptel";
rev = "2b9398a7b3bb2a66f52a8d0b1fdc3f311b2c1a3d";
hash = "sha256-+CxSA9QmyKigbk8kB5N6kKZ/a5Tw0X4ym57AOoqYA4Y=";
};
})
graphql-mode
helpful
htmlize
js2-mode
json-mode
ligature
lsp-mode
lsp-ui
minions
multiple-cursors
nerd-icons
nerd-icons-completion
nerd-icons-corfu
nerd-icons-dired
nerd-icons-ibuffer
ob-restclient
ob-swift
olivetti
orderless
org
org-modern
ox-gfm
ox-reveal
pulsar
rainbow-delimiters
rainbow-mode
restclient
smartparens
swift-mode
(trivialBuild {
pname = "swift-ts-mode";
version = "main-07-05-2024";
src = pkgs.fetchFromGitHub {
owner = "rechsteiner";
repo = "swift-ts-mode";
rev = "5e198d306bd4d49e4dddab39195fe99e1caf8892";
hash = "sha256-c7AAFuaDbufMpzJtJ2PbRRXFJmo1y4L50T0idzxrvao=";
};
})
super-save
terraform-mode
treesit-auto
ob-typescript
yaml-mode
vterm
fontaine
magit
magit-todos
marginalia
modus-themes
nix-mode
vertico
yasnippet
]);
package = pkgs.emacs29;
};
fzf = {
enable = true;
enableZshIntegration = true;
};
git = {
enable = true;
userName = "Tobias Ostner";
userEmail = email;
extraConfig = {
core.editor = "emacsclient -c -a ''";
init.defaultBranch = "main";
pull.rebase = true;
rebase.updateRefs = true;
};
};
starship = {
enable = true;
enableZshIntegration = true;
settings = {
gcloud.disabled = true;
aws.disabled = true;
hostname.style = "bold green";
};
};
zoxide = {
enable = true;
enableZshIntegration = true;
};
zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
initExtra = builtins.readFile ../config/zsh/zshrc;
syntaxHighlighting.enable = true;
shellAliases = {
ls = "ls --color=auto -F";
emacs = "emacsclient -c -a ''";
};
};
};
xdg.configFile."aerospace/aerospace.toml".text = builtins.readFile ../config/aerospace/aerospace.toml;
xdg.configFile."ghostty/config".text = builtins.readFile ../config/ghostty/config;
}