-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhome.nix
133 lines (121 loc) · 3.67 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
132
133
{ config, pkgs, ... }:
{
imports = [
./plasma.nix
];
# Home Manager needs a bit of information about you and the paths it should
# manage.
home.username = "matt";
home.homeDirectory = "/home/matt";
# 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 = "24.05"; # Please read the comment before changing.
# The home.packages option allows you to install Nix packages into your
# environment.
home.packages = with pkgs; [
zsh-syntax-highlighting
zsh-autosuggestions
];
# Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'.
home.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
# '';
};
# Home Manager can also manage your environment variables through
# 'home.sessionVariables'. These will be explicitly sourced when using a
# shell provided by Home Manager. If you don't want to manage your shell
# through Home Manager then you have to manually source 'hm-session-vars.sh'
# located at either
#
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
#
# or
#
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
#
# or
#
# /etc/profiles/per-user/matt/etc/profile.d/hm-session-vars.sh
#
home.sessionVariables = {
# EDITOR = "emacs";
};
programs.bash = {
enable = true;
historyFile = "$HOME/.local/share/.bash_history";
enableCompletion = true;
shellAliases = {
init-mattnix = "mkdir $HOME/Nixstuff && git clone https://github.com/Ghx0sty/nix-dots $HOME/Nixstuff";
update-nix = "temp=$(pwd) && cd $HOME/Nixstuff && ./update-config.sh && cd $temp";
};
};
programs.zsh = {
enable = true;
enableCompletion = true;
syntaxHighlighting.enable = true;
initExtra = ''
source ${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh
'';
plugins = [
{
# will source zsh-autosuggestions.plugin.zsh
name = "zsh-autosuggestions";
src = "${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions";
}
];
shellAliases = {
init-mattnix = "mkdir $HOME/Nixstuff && git clone https://github.com/Ghx0sty/nix-dots $HOME/Nixstuff";
update-nix = "temp=$(pwd) && cd $HOME/Nixstuff && ./update-config.sh && cd $temp";
};
oh-my-zsh = {
enable = true;
plugins = [
"git"
];
theme = "xiong-chiamiov-plus";
};
};
programs.kitty = {
enable = true;
extraConfig = "
font_size 10
background #163f5b
background_opacity 0.97
foreground #509fd3
cursor #ffcc66
selection_background #343f4c
color0 #191e2a
color8 #686868
color1 #ed8274
color9 #f28779
color2 #a6cc70
color10 #bae67e
color3 #fad07b
color11 #ffd580
color4 #6dcbfa
color12 #73d0ff
color5 #cfbafa
color13 #d4bfff
color6 #90e1c6
color14 #95e6cb
color7 #c7c7c7
color15 #ffffff
selection_foreground #212733
";
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}