Configuration for my NixOS based systems and Home Manager
1{ pkgs, unstable, ... }:
2{
3 # Enable the X11 windowing system.
4 services.xserver.enable = true;
5
6 # Configure keymap in X11
7 # services.xserver.xkb.layout = "us";
8 # services.xserver.xkb.options = "eurosign:e,caps:escape";
9
10 # Enable CUPS to print documents.
11 # services.printing.enable = true;
12
13 # Enable sound.
14 security.rtkit.enable = true;
15 services.pipewire = {
16 enable = true;
17 alsa.enable = true;
18 alsa.support32Bit = true;
19 pulse.enable = true;
20 wireplumber.enable = true;
21 };
22
23 # Graphics and parallel compute configuration
24 hardware.opengl.extraPackages = [
25 pkgs.libva
26 ];
27
28 # Enable touchpad support (enabled default in most desktopManager).
29 # services.xserver.libinput.enable = true;
30
31 # Fonts
32 fonts.packages = with pkgs; [
33 fira-code
34 fira-code-symbols
35 noto-fonts
36 noto-fonts-cjk
37 noto-fonts-emoji
38 noto-fonts-extra
39 (nerdfonts.override { fonts = [ "FiraCode" ]; })
40 ];
41
42 # Polkit is a dependency of Sway. It's responsible for handling security policies
43 security.polkit.enable = true;
44
45 # Enable the sway window manager
46 programs.sway = {
47 enable = true;
48 package = unstable.sway;
49 wrapperFeatures.gtk = true;
50 };
51 # Use greetd as the displaymanager
52 #services.xserver.displayManager.greetd.enable = true;
53 #services.xserver.displayManager.lightdm.enable = false;
54 services.xserver.displayManager.sddm.enable = true;
55 services.xserver.displayManager.defaultSession = "none+i3";
56 services.xserver.displayManager.autoLogin = {
57 enable = true;
58 user = "noah";
59 };
60
61 # i3, for when I need XOrg
62 services.xserver.windowManager.i3 = {
63 enable = true;
64 extraPackages = with pkgs; [
65 dmenu
66 i3status
67 i3lock
68 i3blocks
69 ];
70 };
71
72 xdg.portal = {
73 enable = true;
74 wlr.enable = true;
75 extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
76 };
77 services.dbus.enable = true;
78 services.gnome.gnome-keyring.enable = true;
79}