102 lines
3.4 KiB
Nix
102 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.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
|
|
};
|
|
}
|