From b0efd5b057811c343aa72879965d6e57af311c83 Mon Sep 17 00:00:00 2001 From: Lulusilly Date: Mon, 1 Sep 2025 01:29:30 -0400 Subject: [PATCH] I'm gonna fucking lose my mind --- .config/home-manager/flake.nix | 31 ++++++++++++ .config/home-manager/home.nix | 90 ++++++++++++++++++++++++++++++++++ 2 files changed, 121 insertions(+) create mode 100644 .config/home-manager/flake.nix create mode 100644 .config/home-manager/home.nix diff --git a/.config/home-manager/flake.nix b/.config/home-manager/flake.nix new file mode 100644 index 0000000..2df2df5 --- /dev/null +++ b/.config/home-manager/flake.nix @@ -0,0 +1,31 @@ +{ + description = "Home Manager configuration of lunita"; + + inputs = { + # Specify the source of Home Manager and Nixpkgs. + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + + outputs = + { nixpkgs, home-manager, ... }: + let + system = "x86_64-linux"; + pkgs = nixpkgs.legacyPackages.${system}; + in + { + homeConfigurations."lunita" = home-manager.lib.homeManagerConfiguration { + inherit pkgs; + + # Specify your home configuration modules here, for example, + # the path to your home.nix. + modules = [ ./home.nix ]; + + # Optionally use extraSpecialArgs + # to pass through arguments to home.nix + }; + }; +} diff --git a/.config/home-manager/home.nix b/.config/home-manager/home.nix new file mode 100644 index 0000000..c420822 --- /dev/null +++ b/.config/home-manager/home.nix @@ -0,0 +1,90 @@ +{ config, pkgs, ... }: + +{ + home.username = "lunita"; + home.homeDirectory = "/home/lunita"; + + home.stateVersion = "25.05"; + + programs.zsh = { + enable = true; + syntaxHighlighting.enable = true; + + shellAliases = { + c = "clear"; + nf = "neofetch"; + v = "nvim"; + d = "cd ~/Documents"; + D = "cd ~/Downloads"; + }; + + 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 + ''; + + history.size = 10000; + + oh-my-zsh = { + enable = true; + plugins = [ "git" ]; + theme = "lambda"; + }; + }; + + programs.git = { + enable = true; + userName = "lulusilly"; + userEmail = "lunita@puppygirl.onl"; + aliases = { + ci = "commit"; + co = "checkout"; + s = "status"; + pu = "push origin master" + }; + }; + + nixpkgs.config.allowUnfree = true; + home.packages = with pkgs; [ + tree # Nice file tree views w/permissions + neofetch # Muh epic r1ce!!! + btop # Resource manager + stow # For dotfiles deployment. May use home.file in future + imagemagick # For converting images into other fmts + sxiv # Minimal image viewer + mpv # Video player + zathura # PDF/CBZ/EPUB/DJVU reader + tmux # Tride and true terminal multiplexer + obsidian # For epic note taking (really just mediocre journaling) + keepassxc # Secure password manager + syncthing # Self explanatory + # Fonts + nerd-fonts.jetbrains-mono + miracode + monocraft + ]; + fonts.fontconfig.enable = true; + + + home.file = { + }; + + home.sessionVariables = { + EDITOR = "emacs"; + }; + + # Let Home Manager install and manage itself. + programs.home-manager.enable = true; +}