Files
nix-config/home-manager/home.nix

204 lines
4.7 KiB
Nix

# This is your home-manager configuration file
# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix)
{
inputs,
outputs,
lib,
config,
pkgs,
...
}: let
myAliases = {
".." = "cd ..";
"cd.." = "cd ..";
ls = "command eza";
grep = "grep --color=auto";
fgrep = "fgrep --color=auto";
egrep = "egrep --color=auto";
l="eza -G --icons";
ll="eza -l --icons";
lg="eza -lG";
lall="eza -lahF --icons --git";
lalg="eza -laGhF --icons --git";
latree="eza -laGghHT --git --icons";
la = "eza -la --git --icons";
lsd = "eza -laD";
cls="clear";
# df="df -ahiT --total";
userlist="cut -d: -f1 /etc/passwd";
free="free -mt";
du="du -ach | sort -h";
ps="ps auxf";
sudo="sudo ";
reload="exec $SHELL -l";
xclip = "xclip -selection c";
mkdir="mkdir -pv";
psmem="ps -e -orss=,args= | sort -b -k1 -nr";
psmem10="ps -e -orss=,args= | sort -b -k1 -nr | head -10";
pscpu="ps -e -o pcpu,cpu,nice,state,cputime,args|sort -k1,1n -nr";
pscpu10="ps -e -o pcpu,cpu,nice,state,cputime,args|sort -k1,1n -nr | head -10";
gua = "git remote | xargs -L1 git push --all";
};
in {
# You can import other home-manager modules here
imports = [
# If you want to use modules your own flake exports (from modules/home-manager):
# outputs.homeManagerModules.example
# Or modules exported from other flakes (such as nix-colors):
# inputs.nix-colors.homeManagerModules.default
# You can also split up your configuration and import pieces of it here:
# ./nvim.nix
./features/cli
./features/kitty.nix
./features/neovim.nix
];
nixpkgs = {
# You can add overlays here
overlays = [
# Add overlays your own flake exports (from overlays and pkgs dir):
outputs.overlays.additions
outputs.overlays.modifications
outputs.overlays.unstable-packages
# You can also add overlays exported from other flakes:
# neovim-nightly-overlay.overlays.default
# Or define it inline, for example:
# (final: prev: {
# hi = final.hello.overrideAttrs (oldAttrs: {
# patches = [ ./change-hello-to-hi.patch ];
# });
# })
];
# Configure your nixpkgs instance
config = {
# Disable if you don't want unfree packages
allowUnfree = true;
# Workaround for https://github.com/nix-community/home-manager/issues/2942
allowUnfreePredicate = _: true;
};
};
# Username to manage
home = {
username = "mike";
homeDirectory = "/home/mike";
file = {
# Building this configuration will create a copy of 'dotfiles/screenrc' in
# the Nix store. Activating the configuration will then make '~/.screenrc' a
# symlink to the Nix store copy.
# ".screenrc".source = dotfiles/screenrc;
# You can also set the file content immediately.
# ".gradle/gradle.properties".text = ''
# org.gradle.console=verbose
# org.gradle.daemon.idletimeout=3600000
# '';
};
};
# The home.packages option allows you to install Nix packages into your
# environment.
home.packages = (with pkgs; [
# > zsh stuff <
zsh
zsh-autosuggestions
zsh-powerlevel10k
# > graphics <
tuxpaint
krita
# > terminal <
kitty
kitty-themes
# > tools <
rofi
git
wget
eza
yt-dlp
ffmpeg
# texliveFull
texlive.combined.scheme-full
pgf-umlcd
pgf-umlsd
zoxide
neofetch
pavucontrol
htop
woeusb
steam-run
unzip
gnome.gnome-keyring
gnome.adwaita-icon-theme
R
# > media <
spotify
vlc
mpv
obs-studio
# > desktop <
firefox
discord
telegram-desktop
libreoffice-fresh
vscodium
vscode
neovide
lunarvim
evolution
rstudio
# > gaming <
prismlauncher
classicube
steam
# > development <
clang
clang-tools
cargo
bash
nodejs
python3
cmake
gtest
boost
]);
services.gnome-keyring.enable = true;
home.sessionVariables = {
EDITOR = "nvim";
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
# Nicely reload system units when changing configs
systemd.user.startServices = "sd-switch";
# 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 = "23.11"; # Please read the comment before changing.
}