# cat /etc/nixos/configuration.nix { config, pkgs, ... }: let nixos-unstable = import {}; in { boot.kernelPackages = pkgs.linuxPackages_latest; nixpkgs.overlays = [(self: super: { unstable = import {}; })]; imports = [ ./hardware-configuration.nix ./exwm-overlay.nix ]; # Auto Updates system.autoUpgrade.enable = true; # Use the systemd-boot EFI boot loader. boot.loader.systemd-boot.enable = true; boot.loader.timeout = 999999; boot.loader.efi.canTouchEfiVariables = true; # Set-up shared partition fileSystems."/mnt/shared" = { device = "/dev/disk/by-uuid/2AC4782EC477FB01"; fsType = "ntfs"; options = [ "users" "rw" "uid=1000" "gid=1000" ]; }; # ZFS customizations services.zfs.autoSnapshot.enable = true; services.zfs.autoScrub.enable = true; # Swap swapDevices = [ { device = "/dev/sda7"; } ]; # Select internationalisation properties. i18n = { consoleFont = "Lat2-Terminus16"; consoleKeyMap = "us"; defaultLocale = "en_US.UTF-8"; }; # Set-Up Networking Stuff networking.hostName = "LATITUDE-NIXOS"; networking.networkmanager.enable = true; networking.hostId = "47c501b5"; # Set your time zone. time.timeZone = "America/Los_Angeles"; # Fonts fonts = { enableDefaultFonts = true; enableFontDir = true; enableGhostscriptFonts = true; fonts = with pkgs; [ symbola noto-fonts noto-fonts-cjk noto-fonts-emoji nerdfonts ]; }; # No Suspending services.logind.lidSwitch = "ignore"; # I'm fine with closed-source stuff nixpkgs.config.allowUnfree = true; # Packages environment.systemPackages = with pkgs; [ acpi alsaUtils arandr aspell aspellDicts.en aspellDicts.en-computers aspellDicts.en-science binutils bluez bluez-tools cabal2nix citra coq direnv nixos-unstable.discord firefox-bin fzf gitAndTools.gitFull gnupg gnuplot haskellPackages.cabal-install haskellPackages.ghc haskellPackages.hlint haskellPackages.hoogle htop killall kpcli libreoffice ncurses.dev netcat nix-prefetch-git ntfs3g p7zip pandoc pango pavucontrol pciutils pianobar pinta qemu qutebrowser ripgrep sbcl scrot syslinux usbutils steam # steam-run sxiv tasksh taskwarrior texlive.combined.scheme-full unzip unrar virtmanager vlc wine wget wgetpaste xclip xorg.xbacklight xorg.xrandr xterm ]; hardware.bluetooth.enable = true; hardware.opengl.driSupport32Bit = true; # Virtualization virtualisation.libvirtd.enable = true; # Printing services.printing.enable = true; services.printing.drivers = with pkgs; [ gutenprint brgenml1cupswrapper brgenml1lpr ]; # Shell Config programs.zsh = { enable = true; enableCompletion = true; interactiveShellInit = '' setopt correct bindkey -v''; ohMyZsh = { enable = true; plugins = [ "cabal" "git" "sudo" "systemd" "vi-mode" "wd" ]; theme = "bureau"; }; shellAliases = { am = "alsamixer"; xbl = "xbacklight"; grep = "rg -S"; tb = "nc termbin.com 9999"; uninstall = "nix-env -q | fzf | xargs -I{} nix-env -e {}"; }; }; users.defaultUserShell = pkgs.zsh; programs.command-not-found.enable = true; # Power Management services.acpid.enable = true; # Sound hardware.pulseaudio = { enable = true; package = pkgs.pulseaudioFull; }; # Haskell services.hoogle.enable = true; services.hoogle.packages = hp: with hp; [ megaparsec parser-combinators recursion-schemes ]; # Enable the X11 windowing system. services.xserver = { enable = true; layout = "us, gr"; xkbOptions = "grp:shift_toggle, grp_led:caps, caps:escape, compose:menu"; synaptics = { enable = true; vertEdgeScroll = true; vertTwoFingerScroll = true; scrollDelta = 111; tapButtons = true; }; displayManager.lightdm = { enable = true; }; desktopManager.xterm.enable = true; desktopManager.default = "none"; windowManager = { default = "exwm"; exwm = { enable = true; enableDefaultConfig = false; }; }; }; # Define a user account. users.users = { avi = { isNormalUser = true; description = "Avi Caspe"; group = "users"; extraGroups = [ "networkmanager" "wheel" "audio" "systemd-journal" "libvirtd" ]; }; }; # Enable Sudo security.sudo = { enable = true; wheelNeedsPassword = true; }; # The NixOS release to be compatible with for stateful data such as databases. system.stateVersion = "17.09"; }