NixOS/home.nix
2026-07-28 11:41:52 +03:00

103 lines
3.4 KiB
Nix

{ config, pkgs, ... }:
{
# home.username and home.homeDirectory are set automatically by the
# Home Manager NixOS module, from the home-manager.users.<name> 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.<name>.enable` below are installed
# automatically, so they do not belong here.
home.packages = [
pkgs.gh
pkgs.pi-coding-agent
pkgs.claude-code
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
};
}