# 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) ]; # Use the systemd-boot EFI boot loader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; hardware.bumblebee.enable = true; # For Steam hardware.opengl.driSupport32Bit = true; hardware.pulseaudio.support32Bit = true; 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 neovim usbutils filezilla lftp wineStaging winetricks youtube-dl nix-bash-completions nix-zsh-completions python3Full openvpn gopass xclip firefox chromium torbrowser qutebrowser tdesktop mumble kleopatra gnupg kdeplasma-addons ark kate kmail kdeconnect okular yakuake konversation gwenview kcalc spectacle libreoffice gimp vlc kodiPlain steam_primus sc-controller electrum electron-cash ]; 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 ''; }) ) ]; # Ledger udev rules services.udev.extraRules = '' SUBSYSTEMS=="usb", ATTRS{idVendor}=="2581", ATTRS{idProduct}=="1b7c", MODE="0660", TAG+="uaccess", TAG+="udev-acl", GROUP="ledger" SUBSYSTEMS=="usb", ATTRS{idVendor}=="2581", ATTRS{idProduct}=="2b7c", MODE="0660", TAG+="uaccess", TAG+="udev-acl", GROUP="ledger" SUBSYSTEMS=="usb", ATTRS{idVendor}=="2581", ATTRS{idProduct}=="3b7c", MODE="0660", TAG+="uaccess", TAG+="udev-acl", GROUP="ledger" SUBSYSTEMS=="usb", ATTRS{idVendor}=="2581", ATTRS{idProduct}=="4b7c", MODE="0660", TAG+="uaccess", TAG+="udev-acl", GROUP="ledger" SUBSYSTEMS=="usb", ATTRS{idVendor}=="2581", ATTRS{idProduct}=="1807", MODE="0660", TAG+="uaccess", TAG+="udev-acl", GROUP="ledger" SUBSYSTEMS=="usb", ATTRS{idVendor}=="2581", ATTRS{idProduct}=="1808", MODE="0660", TAG+="uaccess", TAG+="udev-acl", GROUP="ledger" SUBSYSTEMS=="usb", ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="0000", MODE="0660", TAG+="uaccess", TAG+="udev-acl", GROUP="ledger" SUBSYSTEMS=="usb", ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="0001", MODE="0660", TAG+="uaccess", TAG+="udev-acl", GROUP="ledger" ''; # 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; # Enable CUPS to print documents. services.printing.enable = true; # 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" "ledger" "wireshark" ]; }; users.extraGroups.ledger = { }; users.defaultUserShell = pkgs.zsh; programs.zsh.enable = true; programs.zsh.enableAutosuggestions = 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? }