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

		systemPackages = [
			pkgs.man-pages
			pkgs.man-pages-posix
			pkgs.qt6.qtwayland
			pkgs.kdePackages.wayqt
		];
	};

	documentation = {
		man = {
			enable = true;
			generateCaches = true;
			man-db.enable = true;
			mandoc.enable = false;
		};
		dev.enable = true;
	};

	nix = {
		optimise.automatic = true;
		gc = {
			automatic = true;
			dates = "daily";
			options = "--delete-older-than 30d";
		};
		settings.experimental-features = [
			"nix-command"
			"flakes"
		];
	};
}