{ lib, config, pkgs, callPackage, inputs, ... }: { imports = [ # ./hardware-configuration.nix # ../../pkgs/base-packages.nix ./pkgs.nix ../../modules/base.nix ]; networking.hostName = "nixbook"; # boot.initrd.kernelModules = [ "i915" ]; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.acpilight.enable = lib.mkDefault true; networking.interfaces.wlp170s0.useDHCP = true; networking.useDHCP = false; hardware.uinput.enable = true; hardware.bluetooth.enable = true; # Use the systemd-boot EFI boot loader. boot = { kernelPackages = pkgs.linuxPackages_zen; kernelParams = [ "mem_sleep_default=deep" "nvme.noacpi=1" ]; }; boot.supportedFilesystems = [ "ntfs" ]; services = { desktopManager.plasma6.enable = true; }; programs.nix-ld.enable = true; security.pam.services.kwallet = { name = "kwallet"; enableKwallet = true; }; systemd = { oomd = { enable = true; enableRootSlice = true; enableUserSlices = true; enableSystemSlice = true; }; settings.Manager = { DefaultIOAccounting = true; DefaultIPAccounting = true; DefaultTimeoutStopSec = "10s"; DefaultTimeoutStartSec = "10s"; }; }; fonts.packages = with pkgs; [ nerd-fonts.victor-mono noto-fonts noto-fonts-cjk-sans noto-fonts-emoji liberation_ttf mplus-outline-fonts.githubRelease dina-font proggyfonts ]; security.pam.services = { sddm.enableKwallet = true; greetd.enableKwallet = true; }; services.displayManager.sddm = { enable = true; wayland.enable = true; }; xdg.portal = { enable = true; extraPortals = [ pkgs.kdePackages.xdg-desktop-portal-kde ]; }; services.avahi = { enable = true; nssmdns4 = true; }; # Enable sound. security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; jack.enable = true; wireplumber.enable = true; }; # Needed for some pipewire progs and other gtk apps programs.dconf.enable = true; environment.variables = { SAL_USE_VCLPLUGIN = "kf5"; EDITOR = "emacsclient -t -a"; VISUAL = "emacsclient -c -a"; QT_LOGGING_RULES = "js=true; kwin_*.debug=true"; # GTK_USE_PORTAL = "1"; # Fixing Qt apps in other environments # Thought I needed this but apparently they are working fine without it. # QT_XCB_GL_INTEGRATION = "xcb_egl"; # QT_QPA_PLATFORM_PLUGIN_PATH = "${pkgs.qt5.qtbase.bin}/lib/qt-${pkgs.qt5.qtbase.qtCompatVersion}/plugins/platforms"; NIXOS_OZONE_WL = "1"; _JAVA_AWT_WM_NONEREPARENTING = "1"; # DISABLE_QT5_COMPAT = "0"; GDK_BACKEND = "wayland"; ANKI_WAYLAND = "1"; WLR_DRM_NO_ATOMIC = "1"; QT_AUTO_SCREEN_SCALE_FACTOR = "1"; QT_QPA_PLATFORM = "wayland"; # QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; # QT_QPA_PLATFORMTHEME = "qt5ct"; MOZ_ENABLE_WAYLAND = "1"; MOZ_DBUS_REMOTE = "1"; WLR_BACKEND = "vulkan"; WLR_RENDERER = "vulkan"; XDG_SESSION_TYPE = "wayland"; # Remember that this causes issues in some games use "unset SDL_VIDEODRIVER &&" SDL_VIDEODRIVER = "wayland"; CLUTTER_BACKEND = "wayland"; WLR_NO_HARDWARE_CURSORS = "1"; }; programs.partition-manager.enable = true; programs.kdeconnect.enable = true; # Turn on flatpak services.flatpak.enable = true; # Configure keymap in X11 services.xserver.xkb.layout = "us"; # Enable CUPS to print documents. services.printing.enable = true; services.printing.drivers = [ pkgs.gutenprint pkgs.gutenprintBin pkgs.cnijfilter2 ]; services.usbmuxd.enable = true; services.fstrim.enable = true; # virtualisation.libvirtd = { # enable = true; # qemu = { # runAsRoot = false; # ovmf = { # enable = true; # packages = [ # pkgs.OVMFFull.fd # pkgs.pkgsCross.aarch64-multiplatform.OVMF.fd # ]; # }; # swtpm.enable = true; # }; # }; # services.samba-wsdd.enable = true; # services.samba = { # enable = true; # shares = { # public = { # path = "/home/abbie"; # "read only" = false; # browsable = true; # "guest ok" = true; # comment = "Share"; # }; # }; # }; # nixpkgs.config.packageOverrides = pkgs: { # vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; }; # }; hardware.graphics = { enable = true; extraPackages = with pkgs; [ libvdpau-va-gl ]; }; systemd.services.display-manager = { wants = [ "systemd-user-sessions.service" "multi-user.target" "network-online.target" ]; after = [ "systemd-user-sessions.service" "multi-user.target" "network-online.target" ]; }; # Enable touchpad support (enabled default in most desktopManager). services.libinput.enable = true; services.xserver.dpi = 144; # Define a user account. Don't forget to set a password with ‘passwd’. users.users.abbie = { isNormalUser = true; extraGroups = [ "adbusers" "wheel" "networkmanager" "input" "uinput" "dialout" ]; }; services.fwupd.enable = true; # Some programs need SUID wrappers, can be configured further or are # started in user sessions. # programs.mtr.enable = true; # programs.gnupg.agent = { # enable = true; # enableSSHSupport = true; # }; # Enable the OpenSSH daemon. services.openssh.enable = true; # Open ports in the firewall. # networking.firewall.allowedTCPPorts = [ ... ]; # networking.firewall.allowedUDPPorts = [ ... ]; # Or disable the firewall altogether. # networking.firewall.enable = false; # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions # on your system were taken. It‘s perfectly fine and recommended to leave # this value at the release version of the first install of this system. # Before changing this value read the documentation for this option # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). system.stateVersion = "21.11"; # Did you read the comment? }