-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhome.nix
138 lines (120 loc) · 3.08 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
134
135
136
137
138
{ config, pkgs, ... }:
let
# A random Nixpkgs revision *before* the default glibc
# was switched to version 2.27.x.
oldpkgsSrc = pkgs.fetchFromGitHub {
owner = "nixos";
repo = "nixpkgs";
rev = "0252e6ca31c98182e841df494e6c9c4fb022c676";
sha256 = "1sr5a11sb26rgs1hmlwv5bxynw2pl5w4h5ic0qv3p2ppcpmxwykz";
};
oldpkgs = import oldpkgsSrc {};
unstable = import <nixos-unstable> { config = { allowUnfree = true; }; };
in
{
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
imports = [
./gnome.nix
./terminal.nix
./editors.nix
./git.nix
./go.nix
];
# 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.username = "$USER";
home.homeDirectory = "/home/$USER";
home.stateVersion = "20.09";
home.sessionVariables = {
LOCALE_ARCHIVE_2_11 = "${oldpkgs.glibcLocales}/lib/locale/locale-archive";
LOCALE_ARCHIVE_2_27 = "${pkgs.glibcLocales}/lib/locale/locale-archive";
EDITOR = "vim";
};
nixpkgs.config = { allowUnfree = true; allowBroken = true; };
# Enable settings that make home manager work better on Linux distribs other than NixOS
targets.genericLinux.enable = true;
fonts.fontconfig.enable = true;
home.packages = with pkgs; [
slack-dark
powerline
remmina
arc-theme
flat-remix-icon-theme
parcellite
ripgrep
fd
meld
vlc
unstable.glab
gnomeExtensions.dash-to-dock
gnome3.gnome-shell-extensions
nodejs-14_x
shadow
awscli
unstable.postman
];
programs.bash.enable = true;
xsession.enable = true;
xsession.windowManager.command = "true";
xdg.enable = true;
xdg.mime.enable = true;
xdg.configFile."parcellite/parcelliterc".text = ''
[rc]
RCVersion=1
use_copy=true
use_primary=false
synchronize=false
save_history=true
history_pos=false
history_x=1
history_y=1
history_limit=25
data_size=0
item_size=500
automatic_paste=true
auto_key=true
auto_mouse=false
key_input=false
restore_empty=false
rc_edit=false
type_search=false
case_search=false
ignore_whiteonly=false
trim_wspace_begend=false
trim_newline=false
hyperlinks_only=false
confirm_clear=true
current_on_top=true
single_line=true
reverse_history=false
item_length=50
persistent_history=false
persistent_separate=false
persistent_on_top=false
persistent_delim=\\n
nonprint_disp=false
ellipsize=2
multi_user=false
icon_name=parcellite
menu_key=<Ctrl><Alt>P
history_key=<Ctrl><Shift>V
phistory_key=<Ctrl><Alt>X
actions_key=<Ctrl><Alt>A
'';
programs.chromium = {
enable = true;
package = unstable.google-chrome;
extensions = [
"kbfnbcaeplbcioakkpcpgfkobkghlhen" # grammarly
"cjpalhdlnbpafiamejdnhcphjbkeiagm" # ublock origin
"bcjindcccaagfpapjjmafapmmgkkhgoa" # json formatter
];
};
}