Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # 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,lib, pkgs, ... }:
- {
- imports =
- [ # Include the results of the hardware scan.
- ./hardware-configuration.nix
- ];
- # Here today 1-13-2019 I put vscode.nix information after work today ^^::^
- # Enable virtualbox.^
- #virtualisation.virtualbox.host.enable = true;
- #Enable virtualisation extension
- #virtualisation.virtualbox.host.enableExtensionPack = true;
- #users.extraGroups.vboxusers.members = [ "cocopull"];
- #boot.kernelModules = [ "kvm-amd" "kvm-intel" ];
- #virtualisation.libvirtd.enable = true;
- boot.kernelParams = [
- "acpi_osi=! acpi_osi=\"Windows 2009\""
- ];
- #vscode.nix
- #vscode.user = "cocopull";
- #vscode.homeDir = "/home/cocopull";
- #vscode.extensions = with pkgs.vscode-extensions; [
- #ms-vscode.cpptools
- hardware.sane.enable = true;
- nixpkgs.config.allowUnfree = true;
- nixpkgs.config.allowBroken = true;
- #allowUnfreePredicate.vscode = pkg: builtins.elem (lib.getName pkg) ;
- #nixpkgs.latestPackages = [
- #"vscode"
- #"vscode-extensions"
- #];
- #1-15-2018 Tuesday called in sick-cold, commented out because it crashes with npm compiling
- #2-22-2020 Enable Tor service
- services.tor.enable = true;
- services.tor.client.enable = true;
- # Use the systemd-boot EFI boot loader.
- boot.loader.systemd-boot.enable = true;
- boot.loader.efi.canTouchEfiVariables = true;
- # Add this file to your /etc/nixos/configuration.nix `imports = [ ... ];` attribute.
- #
- # After running `nixos-rebuild switch`, `systemctl --user start keybase-gui.service`
- # can be used to start the Keybase GUI.
- #
- # Not sure if it's just my tiling window manager, but there is a bit of wonkiness
- # with the tray icon. Other than that it works perfectly (as of 2017/11/22).
- # Adding jupyter-notebook service today 10-23-2018 10:30pm!
- # services.jupyter = {
- # enable = true;
- # port = 8888;
- #notebookDir = "/var/www/jupyter";
- #password = "'sha1:1b961dc713fb:88483270a63e57d18d43cf337e629539de1436ba'";
- #};
- # services.kbfs = {
- # enable = true;
- # mountPoint = "%t/kbfs";
- # extraFlags = [ "-label %u" ];
- #};
- # systemd.user.services = {
- # keybase.serviceConfig.Slice = "keybase.slice";
- # kbfs = {
- # environment = { KEYBASE_RUN_MODE = "prod"; };
- # serviceConfig.Slice = "keybase.slice";
- #};
- #keybase-gui = {
- # description = "Keybase GUI";
- #requires = [ "keybase.service" "kbfs.service" ];
- #after = [ "keybase.service" "kbfs.service" ];
- #serviceConfig = {
- # ExecStart = "${pkgs.keybase-gui}/share/keybase/Keybase";
- #PrivateTmp = true;
- #Slice = "keybase.slice";
- #};
- # };
- #};
- #services.pcscd.enable = true;
- # Stop Here **** ---End ---- **** Keybase config
- #
- #
- networking.hostName = "nixos"; # Define your hostname.
- # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
- # Select internationalisation properties.
- i18n = {
- consoleFont = "Lat2-Terminus16";
- consoleKeyMap = "us";
- defaultLocale = "en_US.UTF-8";
- };
- # Set your time zone.
- time.timeZone = "USA/Eastern";
- # List packages installed in system profile. To search, run:
- # $ nix search wget}
- environment.systemPackages = with pkgs;
- #nixpkgs.config.allowUnfree = true;
- [
- 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 ];
- # Testing Docker 10-9-2018
- # virtualisation.docker.enable = true;
- # 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; };
- # List services that you want to enable:
- # Enable the OpenSSH daemon.
- services.openssh.enable = true;
- hardware.u2f.enable = true;
- # Open ports in the firewall.
- networking.firewall.allowedTCPPorts = [ 80 81 8123 8080 9050 8118 9063];
- # networking.firewall.all}owedUDPPorts = [ ... ];
- # Or disable the firewall altogether.
- networking.firewall.enable = true;
- # 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 = "us";
- #services.xserver.xkbOptions = "eurosign:e";
- # services.xserver.windowManager.xmonad.enable = true;
- #services.xserver.windowManager.xmonad.enableContribAndExtras = true;
- #services.xserver.windowManager.xmonad.enablehaskellPackages.xmonad-contrib = true;
- #services.xserver.windowManager.xmonad.enablehaskellPackages.xmonad-extras = true;
- #services.xserver.windowManager.xmonad.enablehaskellPackages.xmonad = true;
- # windowManager.default = "xmonad";
- with lib;
- let
- inherit (lib) mkOption mkIf optionals literalExample;
- cfg = config.services.xserver.windowManager.xmonad;
- xmonad = pkgs.xmonad-with-packages.override {
- ghcWithPackages = cfg.haskellPackages.ghcWithPackages;
- packages = self: cfg.extraPackages self ++
- optionals cfg.enableContribAndExtras
- [ self.xmonad-contrib self.xmonad-extras ];
- };
- xmonadBin = pkgs.writers.writeHaskell "xmonad" {
- ghc = cfg.haskellPackages.ghc;
- libraries = [ cfg.haskellPackages.xmonad ] ++
- cfg.extraPackages cfg.haskellPackages ++
- optionals cfg.enableContribAndExtras
- (with cfg.haskellPackages; [ xmonad-contrib xmonad-extras ]);
- } cfg.config;
- in
- {
- options = {
- services.xserver.windowManager.xmonad = {
- enable = mkEnableOption "xmonad";
- haskellPackages = mkOption {
- default = pkgs.haskellPackages;
- defaultText = "pkgs.haskellPackages";
- example = literalExample "pkgs.haskell.packages.ghc784";
- description = ''
- haskellPackages used to build Xmonad and other packages.
- This can be used to change the GHC version used to build
- Xmonad and the packages listed in
- <varname>extraPackages</varname>.
- '';
- };
- extraPackages = mkOption {
- default = self: [];
- defaultText = "self: []";
- example = literalExample ''
- haskellPackages: [
- haskellPackages.xmonad-contrib
- haskellPackages.monad-logger
- ]
- '';
- description = ''
- Extra packages available to ghc when rebuilding Xmonad. The
- value must be a function which receives the attrset defined
- in <varname>haskellPackages</varname> as the sole argument.
- '';
- };
- enableContribAndExtras = mkOption {
- default = false;
- type = lib.types.bool;
- description = "Enable xmonad-{contrib,extras} in Xmonad.";
- };
- config = mkOption {
- default = null;
- type = with lib.types; nullOr (either path str);
- description = ''
- Configuration from which XMonad gets compiled. If no value
- is specified, the xmonad config from $HOME/.xmonad is taken.
- If you use xmonad --recompile, $HOME/.xmonad will be taken as
- the configuration, but on the next restart of display-manager
- this config will be reapplied.
- '';
- example = ''
- import XMonad
- main = launch defaultConfig
- { modMask = mod4Mask -- Use Super instead of Alt
- , terminal = "urxvt"
- }
- '';
- };
- };
- };
- config = mkIf cfg.enable {
- services.xserver.windowManager = {
- session = [{
- name = "xmonad";
- start = if (cfg.config != null) then ''
- ${xmonadBin}
- waitPID=$!
- '' else ''
- systemd-cat -t xmonad ${xmonad}/bin/xmonad &
- waitPID=$!
- '';
- }];
- };
- environment.systemPackages = [ xmonad ];
- };
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement