summaryrefslogtreecommitdiff
path: root/common/default.nix
blob: ce03d205cd3e013974e8f4899214a931cfba8edf (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
{
	lib,
	config,
	pkgs,
	home-manager,
	nixvim,
	webtray,
	wofi-pass,
	...
}:
{
	imports = [
		home-manager.nixosModules.default
		webtray.outputs.nixosModules.default
		wofi-pass.outputs.nixosModules.default
	];

	fonts.packages = with pkgs; [ nerdfonts ];

	networking.networkmanager.enable = true;

	time.timeZone = "Europe/Zurich";

	i18n.defaultLocale = "en_US.UTF-8";
	console = {
		font = "Lat2-Terminus16";
		keyMap = "us";
	};

	users = import ./users.nix { inherit pkgs; };
	programs = import ./programs { inherit pkgs; };
	services = import ./services { inherit pkgs; };
	home-manager = import ./home {
		inherit lib;
		inherit pkgs;
		inherit nixvim;
		inherit config;
	};

	security = {
		pam.services.hyprlock = { };
		rtkit.enable = true;
		sudo.wheelNeedsPassword = false;
	};

	hardware.bluetooth.enable = true;

	xdg.portal = {
		enable = true;
		config = {
			common = {
				default = [ "hyprland" ];
			};
		};
		configPackages = [ pkgs.xdg-desktop-portal-hyprland ];
		extraPortals = [ pkgs.xdg-desktop-portal-hyprland ];
	};

	environment.sessionVariables = {
		YDOTOOL_SOCKET = "/run/ydotoold/socket";
	};

	nix = {
		optimise.automatic = true;
		settings.experimental-features = [
			"nix-command"
			"flakes"
		];
	};
}