From 5106fa918cb3928565e72f30711594bf90ce6d81 Mon Sep 17 00:00:00 2001 From: Michael Czechowski Date: Wed, 16 Jul 2025 16:30:49 +0200 Subject: [PATCH] update home --- README.md | 1 - home.nix | 165 ++++++++++++++++++++++++++++++++---------------------- 2 files changed, 97 insertions(+), 69 deletions(-) diff --git a/README.md b/README.md index 5e3543d..948db39 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,6 @@ home-manager generations - `EDITOR` → nvim - `BROWSER` → firefox - `CYPRESS_CRASH_REPORTS` → 0 -- `JAVA_HOME` → /usr/lib/jvm/java-17-openjdk ## References - [Home Manager Manual](https://nix-community.github.io/home-manager/) diff --git a/home.nix b/home.nix index 01f7a98..ab558e2 100644 --- a/home.nix +++ b/home.nix @@ -3,83 +3,112 @@ { home.username = "mwc"; home.homeDirectory = "/home/mwc"; + home.stateVersion = "25.05"; - home.stateVersion = "25.05"; # Please read the comment before changing. + # Core packages + home.packages = with pkgs; [ + # Development essentials + nodejs_24 + python3Full + bun + deno + curl + gcc + gnumake - home.packages = [ + # Editors & IDEs + jetbrains.webstorm + neovim - # # It is sometimes useful to fine-tune packages, for example, by applying - # # overrides. You can do that directly here, just don't forget the - # # parentheses. Maybe you want to install Nerd Fonts with a limited number of - # # fonts? - # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) + # Graphics & design + gimp3-with-plugins + inkscape-with-extensions - # # You can also create simple shell scripts directly inside your - # # configuration. For example, this adds a command 'my-hello' to your - # # environment: - # (pkgs.writeShellScriptBin "my-hello" '' - # echo "Hello, ${config.home.username}!" - # '') + # Communication + thunderbird + signal-desktop + + # Office + libreoffice + + # CLI tools + xclip + lf + ripgrep + fzf + + # Password management + keepassxc # Local password store + + # Container tools + docker + + # Android dev (from your exports) + android-tools + + # Kubernetes + kubectl ]; - # Home Manager is pretty good at managing dotfiles. The primary way to manage - # plain files is through 'home.file'. - home.file = { - # # Building this configuration will create a copy of 'dotfiles/screenrc' in - # # the Nix store. Activating the configuration will then make '~/.screenrc' a - # # symlink to the Nix store copy. - # ".screenrc".source = dotfiles/screenrc; + # Shell configuration + programs.zsh = { + enable = true; + enableCompletion = true; + autosuggestion.enable = true; + syntaxHighlighting.enable = true; - # # You can also set the file content immediately. - # ".gradle/gradle.properties".text = '' - # org.gradle.console=verbose - # org.gradle.daemon.idletimeout=3600000 - # ''; + oh-my-zsh = { + enable = true; + theme = "robbyrussell"; + plugins = [ "git" "docker" "kubectl" ]; + }; + + shellAliases = { + n = "notes"; + m = "make"; + x = "xclip -sel clip"; + d = "docker"; + k = "kubectl"; + g = "git"; + ls = "ls --color=auto"; + gedit = "gnome-text-editor"; + }; + + sessionVariables = { + CYPRESS_CRASH_REPORTS = "0"; + }; }; - # Home Manager can also manage your environment variables through - # 'home.sessionVariables'. These will be explicitly sourced when using a - # shell provided by Home Manager. If you don't want to manage your shell - # through Home Manager then you have to manually source 'hm-session-vars.sh' - # located at either - # - # ~/.nix-profile/etc/profile.d/hm-session-vars.sh - # - # or - # - # ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh - # - # or - # - # /etc/profiles/per-user/mwc/etc/profile.d/hm-session-vars.sh - # + # Git configuration + programs.git = { + enable = true; + userName = "Michael Czechowski"; + userEmail = "mail@dailysh.it"; # adjust as needed + }; + + # Development environments + programs.direnv = { + enable = true; + enableZshIntegration = true; + }; + + # Email client + programs.thunderbird = { + enable = true; + profiles.default = { + isDefault = true; + }; + }; + + # File manager + programs.lf.enable = true; + + # Session variables home.sessionVariables = { - # EDITOR = "emacs"; + EDITOR = "nvim"; + BROWSER = "firefox"; }; - # Let Home Manager install and manage itself. - programs.home-manager.enable = true; - -# programs.thunderbird = { -# enable = true; -## accounts = { -## "mail@dailysh.it" = { -## type = "imap"; -## username = "mail@dailysh.it"; -## realName = "Michael Czechowski"; -## imap = { -## host = "tuttle.uberspace.de"; -## port = 993; -## socketType = "SSL"; -## username = "mail@dailysh.it"; -## }; -## smtp = { -## host = "tuttle.uberspace.de"; -## port = 465; -## socketType = "STARTTLS"; -## username = "mail@dailysh.it"; -## }; -## }; -## }; -# }; -} + # Set zsh as default shell + programs.zsh.defaultKeymap = "emacs"; +} \ No newline at end of file