{ config, pkgs, lib, ... }: { # Import config broken out into files imports = [ ./copyApplications.nix ./git.nix ./kakoune.nix ./kitty.nix ./neovim.nix ./shells.nix ]; home.enableNixpkgsReleaseCheck = true; # Packages with configuration --------------------------------------------------------------- {{{ programs = { # a nicer cat # https://rycee.gitlab.io/home-manager/options.html#opt-programs.bat.enable bat = { enable = true; config = { style = "plain"; }; }; # Direnv, load and unload environment variables depending on the current directory. # https://direnv.net # https://rycee.gitlab.io/home-manager/options.html#opt-programs.direnv.enable direnv = { enable = true; nix-direnv.enable = true; }; # Firefox # https://rycee.gitlab.io/home-manager/options.html#opt-programs.firefox.enable # firefox = { # enable = true; # package = pkgs.firefox; # }; # Htop # https://rycee.gitlab.io/home-manager/options.html#opt-programs.htop.enable htop = { enable = true; settings = { show_program_path = true; }; }; # See `./shells.nix` for more on how this is used. fish = { functions = { set-bat-colors = { body = ''set -xg BAT_THEME "Solarized ($term_background)"''; onVariable = "term_background"; }; }; interactiveShellInit = '' # Set `bat` colors based on value of `$term_backdround` when shell starts up. set-bat-colors ''; }; # vscode vscode = with pkgs; { enable = true; package = vscodium; # extensions = [ pijul-vscode ]; }; }; # }}} # Other packages ----------------------------------------------------------------------------- {{{ home.packages = with pkgs; [ # Some basics abduco # lightweight session management bottom # fancy version of `top` with ASCII graphs coreutils curl du-dust # fancy version of `du` exa # fancy version of `ls` fd # fancy version of `find` htop # fancy version of `top` # httpie # fancy version of `curl` hyperfine # benchmarking tool mosh # wrapper for `ssh` that better at not dropping connections procs # fancy version of `ps` pv # pipe progress viewer ripgrep # better version of `grep` tealdeer # rust implementation of `tldr` thefuck unrar # extract RAR archives wget xh # reimplementation of `httpie` in rust xz # extract XZ archives # Dev stuff cloc # source code line counter flyctl # command line tools for fly.io jq # json processor pijul # alternative to `git` rustup # rust toolchain # Useful nix related tools cachix # adding/managing alternative binary caches hosted by Cachix comma # run software from without installing it nixpkgs-fmt nix-prefetch-git # nodePackages.node2nix ] ++ lib.optionals stdenv.isDarwin [ m-cli # useful macOS CLI commands ]; # }}} # Misc configuration files --------------------------------------------------------------------{{{ xdg = { enable = true; }; home.file.".pijulconfig".text = '' [author] name = "mat" full_name = "${config.programs.git.userName}" email = "${config.programs.git.userEmail}" ''; # https://docs.haskellstack.org/en/stable/yaml_configuration/#non-project-specific-config # home.file.".stack/config.yaml".text = lib.generators.toYAML {} { # templates = { # scm-init = "git"; # params = { # author-name = config.programs.git.userName; # author-email = config.programs.git.userEmail; # github-username = "malob"; # }; # }; # nix.enable = true; # }; # Stop `parallel` from displaying citation warning # home.file.".parallel/will-cite".text = ""; # }}} }