{ config, lib, pkgs, ... }: { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix ]; # Use the systemd-boot EFI boot loader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; nix.settings.experimental-features = [ "nix-command" "flakes" ]; hardware.graphics = { enable = true; enable32Bit = true; }; networking.hostName = "lamarr"; # Define your hostname. networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. # Set your time zone. time.timeZone = "Europe/Berlin"; # Internationalisation i18n = { defaultLocale = "en_US.UTF-8"; inputMethod = { enable = true; type = "fcitx5"; }; }; console = { font = "Lat2-Terminus16"; useXkbConfig = true; }; # Configure network proxy if necessary # networking.proxy.default = "http://user:password@proxy:port/"; # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; # Select internationalisation properties. # Enable CUPS to print documents. # services.printing.enable = true; # Enable sound. # hardware.pulseaudio.enable = true; # OR # services.pipewire = { # enable = true; # pulse.enable = true; # }; # Enable touchpad support (enabled default in most desktopManager). # services.libinput.enable = true; # Define a user account. Don't forget to set a password with ‘passwd’. # users.users.alice = { # isNormalUser = true; # extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user. # packages = with pkgs; [ # tree # ]; # }; # programs.firefox.enable = true; # List packages installed in system profile. To search, run: # $ nix search wget # environment.systemPackages = with pkgs; [ # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. # wget # ]; # 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 rtkit so pipewire can aquire real-time priority security.rtkit.enable = true; ################################ # Packages for ALL users # ################################ environment.systemPackages = with pkgs; [ alacritty asciidoctor-with-extensions bat dunst eww feh file fzf git git-lfs helix htop linux-manual man-pages man-pages-posix mlocate mpv mumble nix-your-shell pass pavucontrol playerctl python3 ripgrep vim wget wine winetricks xarchiver xclip xdo zathura ]; ################## # Programs # ################## programs = { firefox = { enable = true; languagePacks = [ "de" "en-GB" ]; }; gnupg.agent = { enable = true; enableSSHSupport = true; pinentryPackage = pkgs.pinentry-curses; }; mtr.enable = true; }; ################## # Services # ################## services = { pcscd.enable = true; picom = { enable = true; backend = "glx"; }; printing.enable = true; xserver = { enable = true; displayManager.startx.enable = true; windowManager.leftwm.enable = true; xkb.layout = "us"; xkb.variant = "dvp"; xkb.options = "caps:escape"; }; }; ############### # Fonts # ############### fonts.packages = with pkgs; with nerd-fonts; [ agave anonymice daddy-time-mono envy-code-r fantasque-sans-mono hurmit iosevka iosevka-term-slab jetbrains-mono source-han-mono tamsyn tamzen ]; # 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; ########################## # User definitions # ########################## users.users.zentux = { shell = pkgs.nushell; isNormalUser = true; extraGroups = [ "wheel" "networkmanager" "video" "kvm" ]; packages = with pkgs; [ ]; }; # Respect your shit. Don't touch this. system.stateVersion = "24.11"; }