blob: 785228a22264a8c99683b56cad343d0c90c02dbe (
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
123
124
125
126
127
128
129
130
131
|
# This is your system's configuration file.
# Use this to configure your system environment (it replaces /etc/nixos/configuration.nix)
{
inputs,
lib,
config,
pkgs,
...
}: {
imports = [
../common/variables.nix
./greetd.nix
./grub.nix
./nvidia.nix
./fonts.nix
./services/laptop.preset.nix
./virtualisation.nix
./hardware-configuration.nix
];
environment.variables = {
GDK_SCALE = config.displayScale;
FLAKE = config.myConfigLocation;
GTK_IM_MODULE = lib.mkForce "";
};
security.pam.services.hyprlock = {};
i18n.inputMethod = {
enabled = "fcitx5";
fcitx5.addons = with pkgs; [
fcitx5-mozc
fcitx5-gtk
fcitx5-rime
fcitx5-chinese-addons
];
#enabled = "ibus";
#ibus.engines = with pkgs.ibus-engines; [rime];
};
hardware.bluetooth = {
enable = true;
powerOnBoot = true;
};
specialisation = {
in-china.configuration = {
networking.proxy = {
default = "http://127.0.0.1:7897/";
noProxy = "127.0.0.1,localhost,internal.domain";
};
};
};
systemd.user.services.mpris-proxy = {
description = "Mpris proxy";
after = ["network.target" "sound.target"];
wantedBy = ["default.target"];
serviceConfig.ExecStart = "${pkgs.bluez}/bin/mpris-proxy";
};
programs.steam = {
enable = true;
remotePlay.openFirewall =
true; # Open ports in the firewall for Steam Remote Play
dedicatedServer.openFirewall =
true; # Open ports in the firewall for Source Dedicated Server
localNetworkGameTransfers.openFirewall =
true; # Open ports in the firewall for Steam Local Network Game Transfers
};
boot = {
kernelPackages = pkgs.linuxPackages_zen;
supportedFilesystems = ["ntfs"];
};
security.polkit.enable = true;
environment.systemPackages = with pkgs; [
libsForQt5.qt5.qtquickcontrols2
libsForQt5.qt5.qtgraphicaleffects
];
# turned off because timedatectl doesn't like it
time.hardwareClockInLocalTime = false;
services = {
#displayManager.sddm = {
# enable = true;
# wayland.enable = true;
# theme = "${import ./sddm-theme.nix {inherit pkgs;}}";
#};
automatic-timezoned.enable = true;
openssh = {
enable = true;
settings = {
PermitRootLogin = "no";
PasswordAuthentication = false;
};
};
gnome.gnome-keyring.enable = true;
};
#programs.sway = {
# enable = true;
# wrapperFeatures.gtk = true;
#};
programs.hyprland.enable = true; # enables Hyprland DM.
nixpkgs = {
overlays = [];
config = {allowUnfree = true;};
};
nix = let
flakeInputs = lib.filterAttrs (_: lib.isType "flake") inputs;
in {
settings = {
experimental-features = "nix-command flakes";
flake-registry = "";
nix-path = config.nix.nixPath;
};
channel.enable = false;
registry = lib.mapAttrs (_: flake: {inherit flake;}) flakeInputs;
nixPath = lib.mapAttrsToList (n: _: "${n}=flake:${n}") flakeInputs;
};
networking = {
hostName = "${config.myHostName}";
networkmanager.enable = true;
};
users.users = {
"${config.myUserName}" = {
initialPassword = "stevenpassword";
isNormalUser = true;
openssh.authorizedKeys.keys = [];
packages = with pkgs; [nh gparted];
extraGroups = ["wheel" "input" "networkmanager"];
};
};
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
system.stateVersion = "24.05";
}
|