# Edit this configuration file to define what should be installed on # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). { config, pkgs, ... }: { imports = [ ../common.nix ./hardware-configuration.nix ]; nixpkgs.overlays = [ (import ../../overlays/ledger-udev-rules.nix) ]; # Use the systemd-boot EFI boot loader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; boot.tmpOnTmpfs = true; boot.plymouth.enable = true; services.tlp.enable = true; services.tlp.extraConfig = '' START_CHARGE_THRESH_BAT0=85 STOP_CHARGE_THRESH_BAT0=90 CPU_SCALING_GOVERNOR_ON_BAT=powersave ENERGY_PERF_POLICY_ON_BAT=powersave ''; # NVIDIA services.xserver.videoDrivers = [ "nvidia" ]; hardware.nvidia.optimus_prime.enable = true; hardware.nvidia.modesetting.enable = true; hardware.nvidia.optimus_prime.nvidiaBusId = "PCI:1:0:0"; hardware.nvidia.optimus_prime.intelBusId = "PCI:0:2:0"; # For Steam hardware.opengl.driSupport32Bit = true; hardware.pulseaudio.support32Bit = true; hardware.steam-hardware.enable = true; hardware.u2f.enable = true; services.udev.packages = with pkgs; [ ledger-udev-rules ]; networking.hostName = "rog-paul"; # Define your hostname. networking.networkmanager.enable = true; # Enables wireless support via wpa_supplicant. # Select internationalisation properties. i18n = { # consoleFont = "Lat2-Terminus16"; consoleKeyMap = "fr"; defaultLocale = "fr_FR.UTF-8"; }; # List packages installed in system profile. To search by name, run: # $ nix-env -qaP | grep wget nixpkgs.config.allowUnfree = true; environment.systemPackages = with pkgs; [ filezilla wineStaging winetricks qbittorrent transmission-remote-gtk appimage-run bat gopass xclip electrum electron-cash firefox torbrowser chromium qutebrowser tdesktop mumble kleopatra gnupg kdeplasma-addons ark kate kmail kdeconnect okular yakuake konversation gwenview kcalc spectacle kile (texlive.combine { inherit (texlive) scheme-small titling collection-langfrench cm-super; }) imagemagick gnome-breeze arc-theme materia-theme libreoffice gimp vlc kodiPlain mpv steam sc-controller steam-run minecraft glxinfo i7z obs-studio ]; programs.wireshark.enable = true; programs.wireshark.package = pkgs.wireshark; # Some programs need SUID wrappers, can be configured further or are # started in user sessions. # programs.bash.enableCompletion = true; # programs.mtr.enable = true; programs.gnupg.agent = { enable = true; enableSSHSupport = true; }; programs.browserpass.enable = true; services.pcscd.enable = true; services.pcscd.plugins = [ (pkgs.ccid.overrideAttrs (oldAttrs: rec { preBuild = '' echo "0x2C97:0x0001:Ledger Token" >> ./readers/supported_readers.txt ''; }) ) ]; # List services that you want to enable: # Enable the OpenSSH daemon. # services.openssh.enable = true; # Open ports in the firewall. # networking.firewall.allowedTCPPorts = [ 8000 ]; # networking.firewall.allowedUDPPorts = [ ]; # Or disable the firewall altogether. networking.firewall.enable = false; networking.wireguard.interfaces = { wg0 = { ips = [ "192.168.20.2/24" ]; allowedIPsAsRoutes = false; peers = [ { allowedIPs = [ "0.0.0.0/0" ]; endpoint = "nyanlout.re:51820"; publicKey = "NVLJ30kNP+fK+K3oM1LAcQpvZvz1dvBD8mWNjDf5Z2k="; } ]; privateKeyFile = "/var/lib/wireguard/wg0.privatekey"; }; }; # Enable CUPS to print documents. services.printing.enable = true; services.printing.drivers = [ pkgs.hplip ]; # Enable sound. sound.enable = true; hardware.pulseaudio.enable = true; # Enable the X11 windowing system. services.xserver.enable = true; services.xserver.layout = "fr"; # services.xserver.xkbOptions = "eurosign:e"; # Enable touchpad support. services.xserver.libinput.enable = true; services.xserver.libinput.naturalScrolling = true; # Enable the KDE Desktop Environment. services.xserver.displayManager.sddm.enable = true; services.xserver.desktopManager.plasma5.enable = true; # Define a user account. Don't forget to set a password with ‘passwd’. users.extraUsers.paul = { isNormalUser = true; uid = 1000; extraGroups = [ "wheel" "networkmanager" "wireshark" ]; }; services.syncthing.enable = true; services.syncthing.user = "paul"; services.syncthing.group = "users"; # 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 = "18.03"; # Did you read the comment? }