{ # Snowfall Lib provides a customized `lib` instance with access to your flake's library # as well as the libraries available from your flake's inputs. lib, # An instance of `pkgs` with your overlays and packages applied is also available. pkgs, # You also have access to your flake's inputs. inputs, # Additional metadata is provided by Snowfall Lib. home, # The home architecture for this host (eg. `x86_64-linux`). target, # The Snowfall Lib target for this home (eg. `x86_64-home`). format, # A normalized name for the home target (eg. `home`). virtual , # A boolean to determine whether this home is a virtual target using nixos-generators. host, # The host name for this home. # All other arguments come from the home home. config, ... }: { home.username = "julian"; home.homeDirectory = "/home/julian"; # DO NOT CHANGE!!! home.stateVersion = "23.11"; modules = { shell = { zsh.enable = true; direnv.enable = true; }; topgrade.enable = true; neovim.enable = true; alacritty.enable = true; emacs.enable = true; i3.enable = true; rofi.enable = true; }; home.packages = with pkgs; [ # Code formatters for use with doom emacs nixfmt # nix dockfmt # docker google-java-format # java # Lsps for use with doom emacs # neocmakelsp # cmake # Rust setup rustc cargo clippy rust-analyzer # Further tools (lib.frajul.my-helper-function lazygit) # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) # (pkgs.writeShellScriptBin "my-hello" '' # echo "Hello, ${config.home.username}!" # '') ## My scripts pkgs.frajul.deploy-to-pianopi ]; 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; # # You can also set the file content immediately. # ".gradle/gradle.properties".text = '' # org.gradle.console=verbose # org.gradle.daemon.idletimeout=3600000 # ''; }; # Home Manager can also manage your environment variables through # 'home.sessionVariables'. 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 # /etc/profiles/per-user/julian/etc/profile.d/hm-session-vars.sh # # home.shellAliases = { g = "git status"; fd = "fd -HI"; ls = "ls --color"; la = "ls -Alh --color"; grep = "grep --color"; }; home.sessionVariables = { TERMINAL = "alacritty"; EDITOR = "nvim"; VISUAL = "nvim"; }; # Let Home Manager install and manage itself. programs.home-manager.enable = true; }