mirror of
https://github.com/cupcakearmy/nix-macos.git
synced 2024-12-22 16:26:32 +00:00
120 lines
2.6 KiB
Nix
120 lines
2.6 KiB
Nix
|
# home.nix
|
||
|
# home-manager switch
|
||
|
|
||
|
{ config, pkgs, ... }:
|
||
|
|
||
|
{
|
||
|
# https://nix-community.github.io/home-manager
|
||
|
home.stateVersion = "24.11"; # Please read the comment before changing.
|
||
|
programs.home-manager.enable = true;
|
||
|
|
||
|
home.username = "niccoloborgioli";
|
||
|
home.homeDirectory = "/Users/niccoloborgioli";
|
||
|
|
||
|
# home.sessionPath = [
|
||
|
# "/run/current-system/sw/bin"
|
||
|
# "$HOME/.nix-profile/bin"
|
||
|
# ];
|
||
|
|
||
|
# Makes sense for user specific applications that shouldn't be available system-wide
|
||
|
home.packages = [
|
||
|
pkgs.tmux
|
||
|
pkgs.oh-my-posh
|
||
|
pkgs.git
|
||
|
pkgs.git-lfs
|
||
|
pkgs.git-crypt
|
||
|
pkgs.gnutar
|
||
|
pkgs.gnupg
|
||
|
pkgs.htop
|
||
|
pkgs.rclone
|
||
|
pkgs.rename
|
||
|
pkgs.tmux
|
||
|
pkgs.tree
|
||
|
pkgs.wget
|
||
|
pkgs.woff2
|
||
|
pkgs.bat
|
||
|
pkgs.rsync
|
||
|
pkgs.direnv
|
||
|
pkgs.zoxide
|
||
|
|
||
|
# Editor
|
||
|
pkgs.neovim
|
||
|
pkgs.fzf
|
||
|
pkgs.lazygit
|
||
|
pkgs.lua
|
||
|
pkgs.luajitPackages.luarocks
|
||
|
pkgs.ast-grep
|
||
|
pkgs.ripgrep
|
||
|
|
||
|
# Language specific
|
||
|
pkgs.nixfmt-rfc-style
|
||
|
pkgs.fnm
|
||
|
|
||
|
(pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; })
|
||
|
];
|
||
|
|
||
|
home.sessionVariables = {
|
||
|
EDITOR = "nvim";
|
||
|
};
|
||
|
|
||
|
home.file = {
|
||
|
".config/omp/config.yaml".source = ./files/omp/config.yaml;
|
||
|
".config/kitty".source = ./files/kitty;
|
||
|
".gitconfig".source = ./files/git/gitconfig;
|
||
|
".gitignore_global".source = ./files/git/gitignore_global;
|
||
|
".config/nvim".source = ./files/nvim;
|
||
|
};
|
||
|
|
||
|
home.shellAliases = {
|
||
|
l = "ls -hal";
|
||
|
dc = "docker compose";
|
||
|
rsync = "rsync -az --info=progress2";
|
||
|
t = "tmux new-session -A -s main";
|
||
|
e = "nvim";
|
||
|
hms = "home-manager switch --flake ~/nix#root -b backup";
|
||
|
snd = "darwin-rebuild switch --flake ~/.config/nix-darwin#sflx";
|
||
|
};
|
||
|
|
||
|
programs.fish = {
|
||
|
enable = true;
|
||
|
interactiveShellInit = ''
|
||
|
if type -q oh-my-posh
|
||
|
oh-my-posh init fish --config ~/.config/omp/config.yaml | source
|
||
|
end
|
||
|
if type -q fnm
|
||
|
fnm env --use-on-cd | source
|
||
|
end
|
||
|
if type -q direnv
|
||
|
direnv hook fish | source
|
||
|
end
|
||
|
if type -q zoxide
|
||
|
zoxide init fish | source
|
||
|
end
|
||
|
'';
|
||
|
};
|
||
|
programs.bash = {
|
||
|
enable = true;
|
||
|
};
|
||
|
programs.tmux = {
|
||
|
enable = true;
|
||
|
clock24 = true;
|
||
|
mouse = true;
|
||
|
extraConfig = ''
|
||
|
# switch panes using Alt-arrow without prefix
|
||
|
bind -n M-Left select-pane -L
|
||
|
bind -n M-Right select-pane -R
|
||
|
bind -n M-Up select-pane -U
|
||
|
bind -n M-Down select-pane -D
|
||
|
|
||
|
# switch panes using jkhl
|
||
|
bind h select-pane -L
|
||
|
bind l select-pane -R
|
||
|
bind j select-pane -U
|
||
|
bind k select-pane -D
|
||
|
'';
|
||
|
shell = "${pkgs.fish}/bin/fish";
|
||
|
terminal = "tmux-256color";
|
||
|
};
|
||
|
|
||
|
}
|