summaryrefslogtreecommitdiff
path: root/home.nix
blob: e0793e14184c3fb6f56c0b0e41ded00f78c9ee8d (plain)
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
{ config, lib, pkgs, ... }: {
	home = {
		username = "timmy";
		homeDirectory = "/home/timmy";
		stateVersion = "24.05";
		activation = {
			# TODO TODO
			#cloneRepos = lib.hm.dag.entryAfter ["writeBoundary" "installPackages"] ''${builtins.readFile ./home-config/activate-scripts/clone-repos.sh}'';
			cloneRepos = lib.hm.dag.entryAfter ["writeBoundary"] ''
				export PATH="${config.home.path}/bin:$PATH"
				${builtins.readFile ./home-config/activation-scripts/clone-repos.sh}
			'';
			linkZshProfile = lib.hm.dag.entryAfter ["writeBoundary"] ''
				run ln -sf $VERBOSE_ARG $HOME/.config/zsh/zprofile $HOME/.zprofile
			'';
			cleanupHome = lib.hm.dag.entryAfter ["writeBoundary"] ''
				run rm -f $VERBOSE_ARG $HOME/{.zcompdump,.zshrc,.zsh_history,.bash_history}
			'';
			mimewiz = lib.hm.dag.entryAfter ["writeBoundary"] ''
				export PATH="$HOME/.local/bin/misc:$PATH"
				run mimewiz  # already verbose
			'';
		};
	};

	programs = {
		git = {
			enable = true;
			userName = "Tim Keller";  # TODO set to user description
			userEmail = "tjk@tjkeller.xyz";  # TODO set to user email
		};
		firefox = {
			# TODO see if there is way to login to moz account in profile
			enable = true;
			arkenfox = {
				enable = true;
			};
			profiles = let
				search = {
					engines = {
						"Timmy Search" = {
							urls = [{ template = "https://search.tjkeller.xyz/search?q={searchTerms}"; }];  # Don't know how to do w/ POST but I prefer GET anyways
							iconURI = "https://search.tjkeller.xyz/static/themes/simple/img/favicon.svg";  # TODO doesn't seem to work
						};
					};
					default = "Timmy Search";
					privateDefault = "Timmy Search";
				};
				userChrome = builtins.readFile ./home-config/firefox/userChrome.css;
				arkenfox = {
					enable = true;
					enableAllSections = true;
					"0100"."0102"."browser.startup.page".value = 3;  # 0=blank, 1=home, 2=last visited page, 3=resume previous session
					"0100"."0103"."browser.startup.homepage".enable = false;
					"0100"."0104"."browser.newtabpage.enabled".enable = false;
				};
				settings = {
					# checkdefaultbrowser
					"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
					"browser.compactmode.show" = true;
					"browser.uidensity" = 1;  # Compact
					"browser.download.dir" = /home/timmy/dls;  # FF will create this dir if it doesn't exist
					"browser.aboutConfig.showWarning" = false;  # arkenfox does
					"app.normandy.first_run" = false;
					"browser.uiCustomization.state" = builtins.readFile ./home-config/firefox/uiCustomization.json;  # Toolbar etc.
					"browser.newtabpage.activity-stream.feeds.section.topstories" = false;
					"browser.newtabpage.activity-stream.feeds.topsites" = false;
					"general.smoothScroll" = false;
					"devtools.toolbox.host" = "window";
					#identity.fxaccounts.account.device.name = "timmy’s Firefox on nixos";  # HOSTNAME
				};
			in {
				Personal = {
					id = 0;
					isDefault = true;
					inherit search;
					inherit userChrome;
					inherit arkenfox;
					inherit settings;
				};
				Work = {
					id = 1;
					inherit search;
				};
				Test = {
					id = 2;
					inherit search;
					inherit arkenfox;
					inherit userChrome;
					inherit settings;
				};
			};
		};
	};

	gtk = {
		enable = true;
		theme = {
			package = pkgs.cinnamon.mint-themes;
			name = "Mint-Y-Dark-Aqua";
		};
		iconTheme = {
			package = pkgs.cinnamon.mint-y-icons;
			name = "Mint-Y-Aqua";
		};
		cursorTheme = {
			name = "Adwaita";
		};
		gtk3.bookmarks = [
			"file:///home/timmy/dls Downloads"
			"file:///home/timmy/docs Documents"
			"file:///home/timmy/docs/src/sites sites"
			"file:///home/timmy/docs/src/scripts scripts"
			"file:///home/timmy/docs/src/programs programs"
		];
		gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
	};
	qt = {
		enable = true;
		platformTheme.name = "gtk3";
	};
}