-
Notifications
You must be signed in to change notification settings - Fork 0
/
home.nix
100 lines (87 loc) · 1.87 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
95
96
97
98
99
100
{
config,
pkgs,
...
}:
let
username = "seroperson";
homeDirectory = "/home/${username}";
dotfilesPath = "${homeDirectory}/.dotfiles";
in
{
imports = [
./nix/tmux.nix
];
home = {
inherit username homeDirectory;
stateVersion = "24.05";
};
# The home.packages option allows you to install Nix packages into your
# environment.
home.packages = [
pkgs.git
# using unwrapped nvim allows you to easily use it outside of NixOS
pkgs.neovim-unwrapped
# Shell and tools
pkgs.zsh
pkgs.ripgrep
pkgs.fd
pkgs.bat
pkgs.jq
pkgs.eza
pkgs.tree
pkgs.tmux
pkgs.kubectl
pkgs.unzip
pkgs.ouch # universal archiver
# Java / Scala
pkgs.jre
pkgs.coursier
pkgs.metals
pkgs.bloop
pkgs.sbt
pkgs.scala-cli
pkgs.mill
# JS
pkgs.nodejs
pkgs.yarn
# Ruby
pkgs.ruby
pkgs.vips
# nix
pkgs.nixd
pkgs.alejandra
pkgs.deadnix
pkgs.statix
# Lua
pkgs.selene
pkgs.stylua
];
home.file.".zshenv" = {
source = config.lib.file.mkOutOfStoreSymlink "${dotfilesPath}/.config/zsh/.zshenv";
};
xdg.configFile = {
"git" = {
source = config.lib.file.mkOutOfStoreSymlink "${dotfilesPath}/.config/git";
recursive = true;
};
"ideavim" = {
source = config.lib.file.mkOutOfStoreSymlink "${dotfilesPath}/.config/ideavim";
recursive = true;
};
"zsh" = {
source = config.lib.file.mkOutOfStoreSymlink "${dotfilesPath}/.config/zsh";
recursive = true;
};
"nix" = {
source = config.lib.file.mkOutOfStoreSymlink "${dotfilesPath}/.config/nix";
recursive = true;
};
"nvim" = {
source = config.lib.file.mkOutOfStoreSymlink "${dotfilesPath}/.config/astronvim";
recursive = true;
};
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}