Advertisement
Guest User

NixOS configuration (lfoscari)

a guest
Oct 22nd, 2020
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.33 KB | None | 0 0
  1. { config, pkgs, ... }:
  2.  
  3. {
  4. # Include the results of the hardware scan.
  5. imports = [
  6. ./hardware-configuration.nix
  7. ];
  8.  
  9.  
  10. # #
  11. ## BOOTLOADER ##
  12. # #
  13.  
  14. # Use the GRUB 2 boot loader.
  15. boot.loader.grub.enable = true;
  16. boot.loader.grub.version = 2;
  17.  
  18. # Define on which hard drive you want to install Grub.
  19. boot.loader.grub.device = "/dev/sda"; # or "nodev" for efi only
  20.  
  21. # Enable OSProber to detect Windows.
  22. boot.loader.grub.useOSProber = true;
  23.  
  24.  
  25. # #
  26. ## NETWORKING ##
  27. # #
  28.  
  29. # Set hostname
  30. networking.hostName = "tobagi";
  31.  
  32. # Use NetworkManager
  33. networking.networkmanager.enable = true;
  34.  
  35. # Activate NetworkManager WiFi powersave
  36. networking.networkmanager.wifi.powersave = true;
  37.  
  38. # The global useDHCP flag is deprecated and explicitly set to false
  39. networking.useDHCP = false;
  40.  
  41. # Per-interface useDHCP
  42. networking.interfaces.enp2s0.useDHCP = true;
  43. networking.interfaces.wlp3s0.useDHCP = true;
  44.  
  45. # Enable Avahi mDNS
  46. # services.avahi.enable = true;
  47.  
  48. # Avahi Name Service Switch (mDNS NSS)
  49. # services.avahi.nssmdns = true;
  50.  
  51.  
  52. # #
  53. ## SYSTEM ##
  54. # #
  55.  
  56. # NixOS release
  57. system.stateVersion = "20.03";
  58.  
  59. # Enable automatic system upgrades
  60. system.autoUpgrade.enable = true;
  61.  
  62. # Allow nonfree software
  63. nixpkgs.config.allowUnfree = true;
  64.  
  65. # Set time zone
  66. time.timeZone = "Europe/Rome";
  67.  
  68. # Sat locale and default console keymap
  69. i18n.defaultLocale = "en_GB.UTF-8";
  70. console = {
  71. font = "Lat2-Terminus16";
  72. keyMap = "it";
  73. };
  74.  
  75. # Personal account definition
  76. # [ REDACTED ]
  77.  
  78.  
  79. # #
  80. ## HARDWARE ##
  81. # #
  82.  
  83. # Update intel microcode
  84. hardware.cpu.intel.updateMicrocode = true;
  85.  
  86. # Enable sound
  87. sound.enable = true;
  88. hardware.pulseaudio.enable = true;
  89. hardware.pulseaudio.support32Bit = true;
  90.  
  91. # Add bluetooth hardware support
  92. hardware.bluetooth.enable = true;
  93.  
  94. # Bluetooth off on boot
  95. hardware.bluetooth.powerOnBoot = false;
  96.  
  97. # #
  98. ## GAMES ##
  99. # #
  100.  
  101. # Steam bugfix (to run Proton)
  102. # nixpkgs.config.packageOverrides = pkgs: {
  103. # steam = pkgs.steam.override { nativeOnly = true; };
  104. # };
  105.  
  106. # Enable support for 32bit games
  107. hardware.opengl.driSupport32Bit = true;
  108. hardware.opengl.extraPackages32 = with pkgs.pkgsi686Linux; [ libva ];
  109.  
  110. # Proton bugfix
  111. # Set limits for esync.
  112. systemd.extraConfig = "DefaultLimitNOFILE=1048576";
  113. security.pam.loginLimits = [{
  114. domain = "*";
  115. type = "hard";
  116. item = "nofile";
  117. value = "1048576";
  118. }];
  119.  
  120.  
  121. # #
  122. ## FONTS ##
  123. # #
  124.  
  125. # Enable font antialiasing
  126. fonts.fontconfig.antialias = true;
  127.  
  128. # Install fonts
  129. fonts.fonts = with pkgs; [ jetbrains-mono ];
  130.  
  131. # Monospace font
  132. fonts.fontconfig.defaultFonts.monospace = [ "JetBrainsMono" ];
  133.  
  134.  
  135. # #
  136. ## X SERVER ##
  137. # #
  138.  
  139. # Enable the X11 server
  140. services.xserver.enable = true;
  141.  
  142. # Set it layout for X
  143. services.xserver.layout = "it";
  144. services.xserver.xkbOptions = "eurosign:e";
  145.  
  146. # Select video drivers
  147. services.xserver.videoDrivers = [ "intel" "nvidia" ];
  148.  
  149.  
  150. # #
  151. ## GNOME ##
  152. # #
  153.  
  154. # Enable Gnome Display Manager
  155. services.xserver.displayManager.lightdm.enable = true;
  156.  
  157. # Use gnome3 as Desktop Manager
  158. services.xserver.desktopManager.gnome3.enable = true;
  159.  
  160. # Enable Chrome Gnome Shell host connector to install extensions
  161. services.gnome3.chrome-gnome-shell.enable = true;
  162.  
  163. # Enable essential services for Gnome
  164. services.gnome3.core-os-services.enable = true;
  165.  
  166. # Add Gnome Shell services
  167. services.gnome3.core-shell.enable = true;
  168.  
  169. # Remove unwanted software
  170. environment.gnome3.excludePackages = [ pkgs.gnome3.cheese pkgs.gnome3.epiphany pkgs.gnome3.geary pkgs.gnome3.gedit pkgs.gnome3.gnome-contacts pkgs.gnome3.gnome-maps pkgs.gnome3.gnome-music pkgs.gnome3.gnome-software ];
  171.  
  172.  
  173. # #
  174. ## ENVIRONMENT ##
  175. # #
  176.  
  177. # Vim as default
  178. programs.vim.defaultEditor = true;
  179.  
  180. # Packages installed in system profile
  181. nixpkgs.config.allowBroken = true;
  182. environment.systemPackages = with pkgs; [
  183. firefox vim vlc neofetch python3 git wget curl
  184. steam playonlinux
  185. (steam.override { nativeOnly = true; })
  186. ];
  187.  
  188. }
  189.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement