{ config, pkgs, ... }: { # home.username and home.homeDirectory are set automatically by the # Home Manager NixOS module, from the home-manager.users. attribute. # This value determines the Home Manager release that your configuration is # compatible with. This helps avoid breakage when a new Home Manager release # introduces backwards incompatible changes. # # You should not change this value, even if you update Home Manager. If you do # want to update the value, then make sure to first check the Home Manager # release notes. home.stateVersion = "26.05"; # Please read the comment before changing. # Packages that have no Home Manager module (or that need no config). # Programs configured via `programs..enable` below are installed # automatically, so they do not belong here. home.packages = [ pkgs.gh pkgs.pi-coding-agent pkgs.proton-vpn pkgs.vscodium ]; ############################################################################# # Terminal ############################################################################# programs.alacritty = { enable = true; # This attribute set is translated into ~/.config/alacritty/alacritty.toml settings = { window = { padding = { x = 5; y = 5; }; decorations = "None"; }; colors.primary.background = "#000000"; font.size = 11; }; }; ############################################################################# # tmux ############################################################################# programs.tmux = { enable = true; prefix = "C-a"; # replaces the unbind C-b / set prefix dance mouse = true; extraConfig = '' # Home Manager writes the config to ~/.config/tmux/tmux.conf bind r source-file ~/.config/tmux/tmux.conf \; display-message "RELOADING CONFIGURATION FILE…" set -g status-style bg=white,fg=black ''; }; ############################################################################# # Neovim ############################################################################# programs.neovim = { enable = true; viAlias = true; vimAlias = true; defaultEditor = true; # The actual vimscript lives in dotfiles/init.vim so your editor can # highlight it and no Nix string escaping is needed. extraConfig = builtins.readFile ./dotfiles/init.vim; plugins = with pkgs.vimPlugins; [ # vim-sensible # telescope-nvim ]; }; ############################################################################# # Shell ############################################################################# programs.bash = { enable = true; shellAliases = { c = "clear"; gcam = "git checkout master && git pull"; count = "ls -1 | wc -l"; }; }; # Plain files that have no dedicated module can still be managed here, either # inline with `.text` or - preferably - from a file in dotfiles/: # # home.file.".screenrc".source = ./dotfiles/screenrc; # xdg.configFile."foo".source = ./dotfiles/foo; # whole directory # # For a config you tweak constantly, symlink to the working tree instead so # edits apply without a rebuild: # # home.file.".config/nvim".source = # config.lib.file.mkOutOfStoreSymlink "/home/leo/NixOS/dotfiles/nvim"; home.file = { }; home.sessionVariables = { # EDITOR is set by programs.neovim.defaultEditor }; }