{ config, pkgs, ... }: { home.username = "lunita"; home.homeDirectory = "/home/lunita"; home.stateVersion = "25.05"; xdg.userDirs = { enable = true; createDirectories = true; }; gtk = { enable = true; colorScheme = "dark"; }; programs.zsh = { enable = true; syntaxHighlighting.enable = true; shellAliases = { c = "clear"; nf = "neofetch"; v = "nvim"; d = "cd ~/Documents"; D = "cd ~/Downloads"; dot = "cd ~/dotfiles"; g = "git"; }; initContent = '' # '~' => goto base of user home directory alias ~='cd ~' # Vim keybinds bindkey -v # Preferred editor for local and remote sessions if [[ -n $SSH_CONNECTION ]]; then export EDITOR='vim' else export EDITOR='nvim' fi # Set TERM for Ghostty ssh workaround if [[ "$TERM_PROGRAM" == "ghostty" ]]; then export TERM=xterm-256color fi # Run Hyprland if applicable if [[ "$(tty)" == "/dev/tty"* ]] && command -v Hyprland &> /dev/null; then exec Hyprland fi ''; history.size = 10000; oh-my-zsh = { enable = true; plugins = [ "git" ]; theme = "half-life"; }; }; programs.git = { enable = true; userName = "lulusilly"; userEmail = "lunita@puppygirl.onl"; aliases = { c = "commit -m"; co = "checkout"; s = "status"; pu = "push origin master"; po = "push origin main"; rmc = "rm -r --cached"; }; }; nixpkgs.config.allowUnfree = true; # Librewolf comes with safe defaults already, so minimal changes are necessary. programs.librewolf = { enable = true; settings = { "webgl.disabled" = false; # "privacy.clearOnShutdown.history" = false; # "privacy.clearOnShutdown.cookies" = false; "network.cookie.lifetimePolicy" = 0; }; }; services.udiskie = { enable = true; settings = { program_options = { file_manager = "${pkgs.kdePackages.dolphin}/bin/dolphin"; }; }; }; # Oh boyee I love Emacs programs.emacs = { enable = true; package = pkgs.emacs-gtk; extraPackages = epkgs: [ epkgs.nix-mode epkgs.nixfmt ]; }; home.packages = with pkgs; [ tree # Nice file tree views w/ permissions linux-wifi-hotspot # For hotspotting while over ethernet neofetch # Muh epic r1ce!!! hyfetch # basically neofetch but with queer flags htop # OG resource manager btop # Pretty resource manager imagemagick # For converting images into other fmts sxiv # Minimal image viewer mpv # Media player zathura # PDF/CBZ/EPUB/DJVU reader obsidian # For epic note taking (really just mediocre journaling) keepassxc # Secure password manager ghostty # Terminal emulator irssi # Terminal IRC client qutebrowser # Neat browser with vim keybindings # nyxt # Customizable browser fooyin # Closest thing to foobar2000 native on Linux nicotine-plus # FOSS client for SoulSeek kdePackages.dolphin # GUI File Manager # Fonts nerd-fonts.jetbrains-mono miracode monocraft ]; fonts.fontconfig.enable = true; home.file = { # Ghostty ".config/ghostty/config" .source = dotfiles/ghostty/config; # Neovim ".config/nvim/init.lua" .source = dotfiles/nvim/init.lua; # Emacs ".emacs.d/init.el" .source = dotfiles/.emacs.d/init.el; # MPV ".config/mpv/mpv.conf" .source = dotfiles/mpv/mpv.conf; # Neofetch ".config/neofetch/config.conf" .source = dotfiles/neofetch/config.conf; # Hyprland ".config/hypr/bg.jpg" .source = dotfiles/hypr/bg.jpg; ".config/hypr/hyprland.conf" .source = dotfiles/hypr/hyprland.conf; ".config/hypr/start.sh" .source = dotfiles/hypr/start.sh; # Waybar ".config/waybar/config" .source = dotfiles/waybar/config; ".config/waybar/style.css" .source = dotfiles/waybar/style.css; }; home.sessionVariables = { EDITOR = "nvim"; }; programs.home-manager.enable = true; }