-
Notifications
You must be signed in to change notification settings - Fork 0
/
home.nix
131 lines (117 loc) · 3.28 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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
{ config, pkgs, ... }:
{
home.stateVersion = "22.05";
home.homeDirectory = "/home/carl";
home.username = "carl";
programs.home-manager.enable = true;
targets.genericLinux.enable = true;
nixpkgs.config = {
# only active inside home-manager
allowUnfree = true;
};
home.packages = with pkgs;
pkgs.lib.optionals ((builtins.getEnv "Distro") != "Ubuntu") [
# GNU utils (not needed on Ubuntu)
coreutils findutils diffutils gnused gnugrep wget
] ++ [
eza # ls alternative
du-dust # du alternative
fd
fpp
gitAndTools.hub
htop
hyperfine # benchmarking
jq # for json
lazydocker # docker management
lsd # ls alternative
nano
pup # html
ripgrep
tldr
unrar
unzip
];
home.file.".nanorc".source = dotfiles/.nanorc;
home.file.".config/awesome/rc.lua".source = awesome/rc.lua;
home.file.".config/kitty/kitty.conf".source = dotfiles/kitty.conf;
home.file.".config/broot/conf.hjson".source = dotfiles/broot.hjson;
home.file.".config/nixpkgs/config.nix".text = "{ allowUnfree = true; }";
programs.bat = {
enable = true;
};
# interactive find
programs.broot = {
enable = true;
};
programs.emacs = {
enable = true;
};
programs.fish = {
enable = true;
shellInit = "source $HOME/git/environment/fish/config.fish";
};
programs.fzf = {
enable = true;
};
programs.git = {
enable = true;
userName = "CarlOlson";
userEmail = "[email protected]";
delta = {
enable = true;
options = {
syntax-theme = "Solarized (light)";
minus-style = "normal 224";
minus-non-emph-style = "normal 224";
minus-emph-style = "normal 217";
minus-empty-line-marker-style = "normal 224";
zero-style = "syntax";
plus-style = "syntax 194";
plus-non-emph-style = "syntax 194";
plus-emph-style = "syntax 157";
plus-empty-line-marker-style = "normal 194";
whitespace-error-style = "reverse magenta";
};
};
extraConfig = {
core = {
editor = "emacsclient";
};
pager = {
branch = false;
};
};
};
programs.tmux = {
enable = true;
baseIndex = 1;
clock24 = true;
newSession = true;
secureSocket = !pkgs.stdenv.isDarwin;
terminal = "xterm-256color";
shortcut = "x";
extraConfig = ''
unbind-key -a -T prefix
bind-key -T prefix o last-pane
bind-key -T prefix ? list-keys
bind-key -T prefix d detach-client
bind-key -T prefix n next-window
bind-key -T prefix p previous-window
bind-key -T prefix c new-window
bind-key -T prefix 0 break-pane -d
bind-key -T prefix 1 break-pane
bind-key -T prefix 2 split-window
bind-key -T prefix 3 split-window -h
bind-key -T prefix k confirm-before -p "kill #W:#P? (y/n)" kill-pane
bind-key -T prefix : command-prompt
bind-key -T prefix r refresh-client
'';
plugins = with pkgs.tmuxPlugins; [
# copycat yank fpp
];
};
programs.z-lua = {
enable = true;
options = [ "fzf" ];
};
}