-
Notifications
You must be signed in to change notification settings - Fork 0
/
configuration.nix
116 lines (98 loc) · 3.52 KB
/
configuration.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
# System configuration which applies to all users
# https://nixos.org/nixos/manual/options.html
{ config, pkgs, options, ... }:
{
imports = [
./1password.nix
./chromium.nix
./docker.nix
./dotnet.nix
./evince.nix
./gnome-keyring.nix
./i3.nix
./keyboards.nix
./locales.nix
./lollypop.nix
./mullvad.nix
./networking.nix
./packages.nix
./podman.nix
./polkit.nix
./printing.nix
./redshift.nix
./steam.nix
./stylix.nix
./udiskie.nix
./unclutter.nix
./vscode.nix
./yubikey.nix
./zsh.nix
];
# Nix will conform to the XDG Base Directory Specification for files in $HOME
nix.settings.use-xdg-base-directories = true;
nix.settings.experimental-features = [
# Enable all experimental features of the `nix` command without having to always do `nix --extra-experimental-features nix-command some_experimental_command`
"nix-command"
# Enable flakes (https://nixos.wiki/wiki/Flakes)
"flakes"
];
# Install documentation targeted at developers
documentation.dev.enable = true;
environment.systemPackages = [ pkgs.man-pages ];
# If needed, pin Linux kernel to latest LTS version which is bootable.
# When commented out, keeping this as an example.
# boot.kernelPackages = pkgs.linuxPackagesFor (pkgs.linux_6_1.override {
# argsOverride = rec {
# src = pkgs.fetchurl {
# url = "mirror://kernel/linux/kernel/v6.x/linux-${version}.tar.xz";
# sha256 = "vSNDOW592tiXTzaJpaBn7JMfSt55PnKxBwqFzRnx8ZI=";
# };
# version = "6.1.45";
# modDirVersion = "6.1.45";
# };
# });
# Delete all files in /tmp during boot
boot.tmp.cleanOnBoot = true;
# Enable a basic set of fonts providing several font styles and families and reasonable coverage of Unicode
fonts.enableDefaultPackages = true;
# Install Nerd Fonts, patched and ready-to-use programming fonts: https://www.nerdfonts.com/
fonts.packages = [ pkgs.nerdfonts ];
time.timeZone = "Europe/Berlin";
sound.enable = true;
hardware.pulseaudio.enable = true;
services = {
xserver = {
# Enable the X11 windowing system
enable = true;
# Symlink the X server configuration under /etc/X11/xorg.conf
# Without this, some commands fail: https://github.com/NixOS/nixpkgs/issues/19629#issuecomment-418238130
exportConfiguration = true;
# Enable minimal desktop/display manager setup to have a login screen
# home-manager will take over after login in
desktopManager.xterm.enable = true;
displayManager.lightdm.enable = true;
# Disable screensaver and display power manager signaling (DPMS)
displayManager.sessionCommands = ''
${pkgs.xorg.xset}/bin/xset s off -dpms
'';
};
};
# Define a user account. Don't forget to set a password with ‘passwd’
users.users.dany = {
isNormalUser = true;
description = "Dany Marcoux";
extraGroups = [
"wheel" # Enable ‘sudo’ for the user
"networkmanager" # Enable configuration of the network with NetworkManager
];
};
# `sudo` asks for the root password
security.sudo.extraConfig = "Defaults rootpw";
# This value determines the NixOS release with which your system is to be
# compatible, in order to avoid breaking some software such as database
# servers. You should change this only after NixOS release notes say you
# should
system.stateVersion = "24.05";
# TODO: https://github.com/NixOS/nixpkgs/issues/180175
systemd.services.NetworkManager-wait-online.enable = false;
}