Advertisement
Guest User

Untitled

a guest
Apr 5th, 2020
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.21 KB | None | 0 0
  1. # Edit this configuration file to define what should be installed on
  2. # your system. Help is available in the configuration.nix(5) man page
  3. # and in the NixOS manual (accessible by running ‘nixos-help’).
  4.  
  5. { config,lib, pkgs, ... }:
  6.  
  7. {
  8. imports =
  9. [ # Include the results of the hardware scan.
  10. ./hardware-configuration.nix
  11. ];
  12. # Here today 1-13-2019 I put vscode.nix information after work today ^^::^
  13. # Enable virtualbox.^
  14. #virtualisation.virtualbox.host.enable = true;
  15.  
  16. #Enable virtualisation extension
  17. #virtualisation.virtualbox.host.enableExtensionPack = true;
  18.  
  19. #users.extraGroups.vboxusers.members = [ "cocopull"];
  20. #boot.kernelModules = [ "kvm-amd" "kvm-intel" ];
  21. #virtualisation.libvirtd.enable = true;
  22.  
  23. boot.kernelParams = [
  24. "acpi_osi=! acpi_osi=\"Windows 2009\""
  25. ];
  26.  
  27. #vscode.nix
  28. #vscode.user = "cocopull";
  29. #vscode.homeDir = "/home/cocopull";
  30. #vscode.extensions = with pkgs.vscode-extensions; [
  31. #ms-vscode.cpptools
  32.  
  33. hardware.sane.enable = true;
  34. nixpkgs.config.allowUnfree = true;
  35. nixpkgs.config.allowBroken = true;
  36.  
  37. #allowUnfreePredicate.vscode = pkg: builtins.elem (lib.getName pkg) ;
  38.  
  39.  
  40. #nixpkgs.latestPackages = [
  41. #"vscode"
  42. #"vscode-extensions"
  43. #];
  44. #1-15-2018 Tuesday called in sick-cold, commented out because it crashes with npm compiling
  45.  
  46. #2-22-2020 Enable Tor service
  47.  
  48. services.tor.enable = true;
  49. services.tor.client.enable = true;
  50.  
  51. # Use the systemd-boot EFI boot loader.
  52. boot.loader.systemd-boot.enable = true;
  53. boot.loader.efi.canTouchEfiVariables = true;
  54.  
  55. # Add this file to your /etc/nixos/configuration.nix `imports = [ ... ];` attribute.
  56. #
  57. # After running `nixos-rebuild switch`, `systemctl --user start keybase-gui.service`
  58. # can be used to start the Keybase GUI.
  59. #
  60. # Not sure if it's just my tiling window manager, but there is a bit of wonkiness
  61. # with the tray icon. Other than that it works perfectly (as of 2017/11/22).
  62.  
  63. # Adding jupyter-notebook service today 10-23-2018 10:30pm!
  64.  
  65. # services.jupyter = {
  66. # enable = true;
  67. # port = 8888;
  68. #notebookDir = "/var/www/jupyter";
  69. #password = "'sha1:1b961dc713fb:88483270a63e57d18d43cf337e629539de1436ba'";
  70. #};
  71.  
  72. # services.kbfs = {
  73. # enable = true;
  74. # mountPoint = "%t/kbfs";
  75. # extraFlags = [ "-label %u" ];
  76. #};
  77.  
  78. # systemd.user.services = {
  79. # keybase.serviceConfig.Slice = "keybase.slice";
  80.  
  81. # kbfs = {
  82. # environment = { KEYBASE_RUN_MODE = "prod"; };
  83. # serviceConfig.Slice = "keybase.slice";
  84. #};
  85.  
  86. #keybase-gui = {
  87. # description = "Keybase GUI";
  88. #requires = [ "keybase.service" "kbfs.service" ];
  89. #after = [ "keybase.service" "kbfs.service" ];
  90. #serviceConfig = {
  91. # ExecStart = "${pkgs.keybase-gui}/share/keybase/Keybase";
  92. #PrivateTmp = true;
  93. #Slice = "keybase.slice";
  94. #};
  95. # };
  96. #};
  97.  
  98. #services.pcscd.enable = true;
  99.  
  100.  
  101. # Stop Here **** ---End ---- **** Keybase config
  102. #
  103. #
  104. networking.hostName = "nixos"; # Define your hostname.
  105. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
  106.  
  107. # Select internationalisation properties.
  108. i18n = {
  109. consoleFont = "Lat2-Terminus16";
  110. consoleKeyMap = "us";
  111. defaultLocale = "en_US.UTF-8";
  112. };
  113.  
  114. # Set your time zone.
  115. time.timeZone = "USA/Eastern";
  116.  
  117. # List packages installed in system profile. To search, run:
  118. # $ nix search wget}
  119. environment.systemPackages = with pkgs;
  120. #nixpkgs.config.allowUnfree = true;
  121. [
  122. haskellPackages.xmonad emacs wget vim gcc evince vlc shotcut blender calibre firefox mplayer gwenview libreoffice inkscape scrot gdb unzip zip haskellPackages.tree-view yubikey-personalization chromium ];
  123.  
  124. # Testing Docker 10-9-2018
  125. # virtualisation.docker.enable = true;
  126.  
  127. # Some programs need SUID wrappers, can be configured further or are
  128. # started in user sessions.
  129. programs.bash.enableCompletion = true;
  130. programs.mtr.enable = true;
  131. programs.gnupg.agent = { enable = true; enableSSHSupport = true; };
  132.  
  133. # List services that you want to enable:
  134.  
  135. # Enable the OpenSSH daemon.
  136. services.openssh.enable = true;
  137. hardware.u2f.enable = true;
  138.  
  139. # Open ports in the firewall.
  140. networking.firewall.allowedTCPPorts = [ 80 81 8123 8080 9050 8118 9063];
  141. # networking.firewall.all}owedUDPPorts = [ ... ];
  142. # Or disable the firewall altogether.
  143. networking.firewall.enable = true;
  144.  
  145. # Enable CUPS to print documents.
  146. services.printing.enable = true;
  147.  
  148. # Enable sound.}
  149. sound.enable = true;
  150. hardware.pulseaudio.enable = true;
  151.  
  152. # Enable the X11 windowing system.
  153. services.xserver.enable = true;
  154. services.xserver.layout = "us";
  155. #services.xserver.xkbOptions = "eurosign:e";
  156. # services.xserver.windowManager.xmonad.enable = true;
  157. #services.xserver.windowManager.xmonad.enableContribAndExtras = true;
  158. #services.xserver.windowManager.xmonad.enablehaskellPackages.xmonad-contrib = true;
  159. #services.xserver.windowManager.xmonad.enablehaskellPackages.xmonad-extras = true;
  160. #services.xserver.windowManager.xmonad.enablehaskellPackages.xmonad = true;
  161.  
  162. # windowManager.default = "xmonad";
  163. with lib;
  164. let
  165. inherit (lib) mkOption mkIf optionals literalExample;
  166. cfg = config.services.xserver.windowManager.xmonad;
  167. xmonad = pkgs.xmonad-with-packages.override {
  168. ghcWithPackages = cfg.haskellPackages.ghcWithPackages;
  169. packages = self: cfg.extraPackages self ++
  170. optionals cfg.enableContribAndExtras
  171. [ self.xmonad-contrib self.xmonad-extras ];
  172. };
  173. xmonadBin = pkgs.writers.writeHaskell "xmonad" {
  174. ghc = cfg.haskellPackages.ghc;
  175. libraries = [ cfg.haskellPackages.xmonad ] ++
  176. cfg.extraPackages cfg.haskellPackages ++
  177. optionals cfg.enableContribAndExtras
  178. (with cfg.haskellPackages; [ xmonad-contrib xmonad-extras ]);
  179. } cfg.config;
  180.  
  181. in
  182. {
  183. options = {
  184. services.xserver.windowManager.xmonad = {
  185. enable = mkEnableOption "xmonad";
  186. haskellPackages = mkOption {
  187. default = pkgs.haskellPackages;
  188. defaultText = "pkgs.haskellPackages";
  189. example = literalExample "pkgs.haskell.packages.ghc784";
  190. description = ''
  191. haskellPackages used to build Xmonad and other packages.
  192. This can be used to change the GHC version used to build
  193. Xmonad and the packages listed in
  194. <varname>extraPackages</varname>.
  195. '';
  196. };
  197.  
  198. extraPackages = mkOption {
  199. default = self: [];
  200. defaultText = "self: []";
  201. example = literalExample ''
  202. haskellPackages: [
  203. haskellPackages.xmonad-contrib
  204. haskellPackages.monad-logger
  205. ]
  206. '';
  207. description = ''
  208. Extra packages available to ghc when rebuilding Xmonad. The
  209. value must be a function which receives the attrset defined
  210. in <varname>haskellPackages</varname> as the sole argument.
  211. '';
  212. };
  213.  
  214. enableContribAndExtras = mkOption {
  215. default = false;
  216. type = lib.types.bool;
  217. description = "Enable xmonad-{contrib,extras} in Xmonad.";
  218. };
  219.  
  220. config = mkOption {
  221. default = null;
  222. type = with lib.types; nullOr (either path str);
  223. description = ''
  224. Configuration from which XMonad gets compiled. If no value
  225. is specified, the xmonad config from $HOME/.xmonad is taken.
  226. If you use xmonad --recompile, $HOME/.xmonad will be taken as
  227. the configuration, but on the next restart of display-manager
  228. this config will be reapplied.
  229. '';
  230. example = ''
  231. import XMonad
  232. main = launch defaultConfig
  233. { modMask = mod4Mask -- Use Super instead of Alt
  234. , terminal = "urxvt"
  235. }
  236. '';
  237. };
  238. };
  239. };
  240. config = mkIf cfg.enable {
  241. services.xserver.windowManager = {
  242. session = [{
  243. name = "xmonad";
  244. start = if (cfg.config != null) then ''
  245. ${xmonadBin}
  246. waitPID=$!
  247. '' else ''
  248. systemd-cat -t xmonad ${xmonad}/bin/xmonad &
  249. waitPID=$!
  250. '';
  251. }];
  252. };
  253.  
  254. environment.systemPackages = [ xmonad ];
  255. };
  256. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement