-
Notifications
You must be signed in to change notification settings - Fork 1
/
home.nix
94 lines (88 loc) · 2.11 KB
/
home.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
{ config, pkgs, ... }:
let
user = import ./user.nix;
in
{
# Home Manager needs a bit of information about you and the
# paths it should manage.
home.username = user.username;
home.homeDirectory = user.homeDirectory;
# 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 can update Home Manager without changing this value. See
# the Home Manager release notes for a list of state version
# changes in each release.
home.stateVersion = "24.11";
home.packages = with pkgs; [
fzf
lua-language-server
ripgrep
jq
rustup
];
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
programs.neovim = {
enable = true;
viAlias = true;
vimAlias = true;
vimdiffAlias = true;
};
home.file = {
# Setup neovim config files
".config/nvim" = {
source = config.lib.file.mkOutOfStoreSymlink ./nvim;
};
# Setup alacritty config
".config/alacritty" = {
source = config.lib.file.mkOutOfStoreSymlink ./alacritty;
};
};
programs.zsh = {
enable = true;
oh-my-zsh = {
enable = true;
theme = "bureau";
plugins = [
"git"
"history"
"fzf"
"vi-mode"
];
};
profileExtra = ''
source /etc/profile
if [ -f /opt/homebrew/bin/brew ]; then
eval "$(/opt/homebrew/bin/brew shellenv)"
fi
'';
initExtraFirst = ''
source ~/.nix-profile/etc/profile.d/hm-session-vars.sh
'';
sessionVariables = {
EDITOR = "nvim";
PATH="\${PATH}:\${HOME}/go/bin";
};
};
programs.tmux = {
enable = true;
clock24 = true;
customPaneNavigationAndResize = true;
keyMode = "vi";
shortcut = "a";
historyLimit = 10000;
extraConfig = builtins.readFile ./tmux.conf;
};
programs.git = {
enable = true;
extraConfig = {
push.default = "current";
pull.rebase = true;
commit.gpgSign = true;
};
};
programs.fzf.enable = true;
}