{ inputs, outputs, lib, config, pkgs, ... }: let userName = "nate"; fullName = "Nathan Anderson"; email = "n8r@tuta.io"; in { # nixpkgs.overlays = [ # inputs.nur.overlay # ]; # nixpkgs.config.allowUnfree = true; # inputs.nixpkgs-stable.config.allowUnfree = true; imports = [ ../apps/firefox/firefox.nix ]; home.username = userName; home.homeDirectory = "/home/${userName}"; programs.home-manager.enable = true; home.stateVersion = "23.11"; # Please read the comment before changing. # The home.packages option allows you to install Nix packages into your # environment. firefoxApp.enable = true; fonts.fontconfig.enable = true; home.packages = with pkgs; [ # nur.repos.crazazy.js.eslint # inputs.nixpkgs-stable.legacyPackages.x86_64-linux.corectrl # # Dev Tools # dbeaver cargo kakoune # flutter docker docker-compose python310 nodejs_21 zig ### LSP's rnix-lsp # Nix LSP openscad-lsp nodePackages.typescript-language-server vscode-langservers-extracted # provides eslint, markdown, json, css, and html lsp rubyPackages.solargraph python310Packages.python-lsp-server zls ### Misc # android-udev-rules # android-tools # sdkmanager openscad # # Gaming # wine-wayland webcord # # Better Unix # bat duf fd fzf lsd ripgrep tre-command gtop # Normies unzip # # Photo / Video # davinci-resolve-studio imv mpv gimp # # Communication # mumble slack signal-desktop # # Other # keepassxc obs-studio # Install fonts (nerdfonts.override { fonts = [ "Hermit" "Overpass" ]; }) # # 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}!" # '') ]; # Home Manager is pretty good at managing dotfiles. The primary way to manage # plain files is through 'home.file'. home.file."${config.xdg.configHome}" = { # # 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; source = ../../dotfiles; recursive = true; # # 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/nate/etc/profile.d/hm-session-vars.sh # home.sessionVariables = { EDITOR = "kak"; XDG_CURRENT_DESKTOP="sway"; }; # Git setup programs.git = { enable = true; userEmail = email; userName = fullName; }; # Zsh setup programs.zsh = { enable = true; oh-my-zsh = { enable = true; plugins = [ "git" ]; theme = "half-life"; }; initExtra = '' alias ask="nix-shell -p python310Packages.openai --run 'python ~/source/python/chat.py'" fzf_projects() { DIR=` fd .git --search-path="$HOME/source/" -H --ignore-file ~/.config/fd-ignore -tdirectory | \ xargs dirname | \ sed 's|$HOME||g' | \ sort | \ uniq | \ fzf --preview 'ls $HOME/{}/README.md 2>/dev/null && bat $HOME/{}/README.md || printf "No README.md file found in this directory\n%s" {}' --preview-window=top | \ xargs printf "$HOME/%s/" ` cd $DIR } alias p="fzf_projects source/" ### Busykid Bash Functions ''; }; qt = { enable = true; platformTheme = "gtk"; style.name = "adwaita-dark"; style.package = pkgs.adwaita-qt; }; gtk = { enable = true; cursorTheme.package = pkgs.catppuccin-cursors; cursorTheme.name = "latteFlamingo"; theme = { name = "Catppuccin-Latte-Pink"; package = pkgs.catppuccin-gtk.override { accents = [ "pink" ]; tweaks = [ ]; variant = "latte"; }; }; }; }