summaryrefslogtreecommitdiff
path: root/share/home.nix
diff options
context:
space:
mode:
Diffstat (limited to 'share/home.nix')
-rw-r--r--share/home.nix127
1 files changed, 127 insertions, 0 deletions
diff --git a/share/home.nix b/share/home.nix
new file mode 100644
index 0000000..482d11a
--- /dev/null
+++ b/share/home.nix
@@ -0,0 +1,127 @@
+{
+ # initial version
+ home.stateVersion = "22.11";
+
+ # ZSH with good config
+ programs.zsh = {
+ # ZSH on
+ enable = true;
+
+ # we want completion
+ enableCompletion = true;
+
+ # we want suggestions of already typed stuff
+ autosuggestion.enable = true;
+
+ # we want nice command highlighting
+ syntaxHighlighting.enable = true;
+
+ # better history
+ history = {
+ # save timestamps
+ extended = true;
+
+ # kill dupes over full history
+ ignoreAllDups = true;
+
+ # don't share history between sessions
+ share = false;
+ };
+
+ # aliases
+ shellAliases = {
+ # system build/update/cleanup
+ update = "sudo nixos-rebuild boot";
+ upgrade = "sudo nixos-rebuild boot --upgrade";
+ updatenow = "sudo nixos-rebuild switch";
+ upgradenow = "sudo nixos-rebuild switch --upgrade";
+ gc = "sudo nix-collect-garbage --delete-older-than 7d";
+ verify = "sudo nix --extra-experimental-features nix-command store verify --all";
+ optimize = "sudo nix --extra-experimental-features nix-command store optimise";
+
+ # list latest files last
+ ltr = "eza -l -s modified";
+
+ # ssh around in the local network
+ beta = "ssh beta.fritz.box";
+ betaroot = "ssh root@beta.fritz.box";
+ bsd = "ssh bsd.fritz.box";
+ bsdroot = "ssh root@bsd.fritz.box";
+ mac = "ssh mac.fritz.box";
+ macroot = "ssh root@mac.fritz.box";
+ mini = "ssh mini.fritz.box";
+ miniroot = "ssh root@mini.fritz.box";
+ neko = "ssh neko.fritz.box";
+ nekoroot = "ssh root@neko.fritz.box";
+ };
+ };
+
+ # nice prompt
+ # https://starship.rs/config/
+ # https://draculatheme.com/starship
+ programs.starship = {
+ enable = true;
+ enableZshIntegration = true;
+ settings = {
+ aws.style = "bold #ffb86c";
+ cmd_duration.style = "bold #f1fa8c";
+ directory.style = "bold #50fa7b";
+ hostname.style = "bold #ff5555";
+ git_branch.style = "bold #ff79c6";
+ git_status.style = "bold #ff5555";
+ username = {
+ format = "[$user]($style) on ";
+ style_user = "bold #bd93f9";
+ };
+ character = {
+ success_symbol = "[❯](bold #f8f8f2)";
+ error_symbol = "[❯](bold #ff5555)";
+ };
+ directory = {
+ truncation_length = 8;
+ truncate_to_repo = false;
+ };
+ };
+ };
+
+ # nice cd
+ programs.zoxide = {
+ enable = true;
+ enableZshIntegration = true;
+ options = [ "--cmd" "cd" ];
+ };
+
+ # integrate fuzzy search
+ programs.fzf = {
+ enable = true;
+ enableZshIntegration = true;
+ };
+
+ # better ls, adds la and Co. aliases, too
+ programs.eza = {
+ enable = true;
+ enableZshIntegration = true;
+ };
+
+ # better cat
+ programs.bat = {
+ enable = true;
+ };
+
+ # better find
+ programs.fd = {
+ enable = true;
+ };
+
+ # enable keychain, we use the main user key
+ programs.keychain = {
+ enable = true;
+ keys = [ "/home/cullmann/.ssh/id_ed25519" ];
+ };
+
+ # https://github.com/nix-community/nix-direnv
+ programs.direnv = {
+ enable = true;
+ nix-direnv.enable = true;
+ };
+}