# 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 = [ # Include the results of the hardware scan. ./hardware-configuration.nix ]; nixpkgs.overlays = [ (import ../../overlays/sudo.nix) (import ../../overlays/neovim.nix) (import ../../overlays/steam.nix) (import ../../overlays/steamcontroller-udev-rules.nix) (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; hardware.bumblebee.enable = true; # For Steam hardware.opengl.driSupport32Bit = true; hardware.pulseaudio.support32Bit = true; hardware.u2f.enable = true; services.udev.packages = with pkgs; [ steamcontroller-udev-rules 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"; }; # Set your time zone. time.timeZone = "Europe/Paris"; # List packages installed in system profile. To search by name, run: # $ nix-env -qaP | grep wget nixpkgs.config.allowUnfree = true; environment.systemPackages = with pkgs; [ gitFull tig neovim usbutils filezilla lftp wineStaging winetricks youtube-dl nix-bash-completions nix-zsh-completions python3Full openvpn qbittorrent transmission-remote-gtk yarn2nix file binutils patchelf gcc nix-index appimage-run bat wireguard nfsUtils gopass xclip electrum electron-cash firefox chromium torbrowser qutebrowser tdesktop mumble kleopatra gnupg kdeplasma-addons ark kate kmail kdeconnect okular yakuake konversation gwenview kcalc spectacle kile texlive.combined.scheme-full imagemagick gnome-breeze arc-theme materia-theme libreoffice gimp vlc kodiPlain steam_primus sc-controller steam-run minecraft glxinfo i7z lshw nmap nox obs-studio sassc telnet ]; programs.tmux.enable = true; programs.tmux.clock24 = true; 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" ]; }; users.defaultUserShell = pkgs.zsh; programs.zsh.enable = true; programs.zsh.autosuggestions.enable = true; programs.zsh.enableCompletion = true; programs.zsh.syntaxHighlighting.enable = true; programs.zsh.ohMyZsh.enable = true; programs.zsh.ohMyZsh.plugins = [ "git" "colored-man-pages" "command-not-found" "extract" "nyan" ]; programs.zsh.ohMyZsh.theme = "bureau"; nix.gc.automatic = true; nix.gc.options = "--delete-older-than 15d"; 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? }