diff options
author | KJ Ørbekk <orbekk@google.com> | 2016-07-08 18:18:35 -0400 |
---|---|---|
committer | KJ Ørbekk <orbekk@google.com> | 2016-07-08 18:18:35 -0400 |
commit | 74d2bf90fdffdecab654b90c36ebb698d2019ab3 (patch) | |
tree | 47f1a28165243b8f176398c7fc84455a59904eec /configuration.nix | |
parent | ed2f8e1fa0b622cd38526064b0c74923a840562c (diff) | |
parent | 6b008fdd447ba2ce12af6fe39d5697155aa5a8a2 (diff) |
Merge branch 'master' of sabaki.kk.orbekk.com:/storage/projects/dotfiles
Diffstat (limited to 'configuration.nix')
-rw-r--r-- | configuration.nix | 154 |
1 files changed, 154 insertions, 0 deletions
diff --git a/configuration.nix b/configuration.nix new file mode 100644 index 0000000..7577afa --- /dev/null +++ b/configuration.nix @@ -0,0 +1,154 @@ +{ config, pkgs, hardware, hostname, ... }: + +{ + hardware.bluetooth.enable = true; + hardware.pulseaudio.enable = true; + hardware.pulseaudio.package = pkgs.pulseaudioFull; + hardware.enableAllFirmware = true; + + # Use the gummiboot efi boot loader. + boot.loader.systemd-boot.enable = true; + boot.loader.timeout = 0; + boot.loader.efi.canTouchEfiVariables = true; + boot.initrd.luks.devices = [ + { + device = "/dev/sda2"; + name = "crypt"; + preLVM = true; + allowDiscards = true; + } + ]; + boot.kernelModules = ["tp_smapi" "thinkpad_acpi" "fbcon" "i915"]; + boot.kernelParams = ["quiet" "acpi_osi=\"!Windows 2012\""]; + boot.extraModulePackages = [config.boot.kernelPackages.tp_smapi]; + boot.extraModprobeConfig = '' + options i915 enable_rc6=1 + ''; + boot.cleanTmpDir = true; + + networking.hostName = "aji"; + networking.wireless.enable = true; + networking.firewall.enable = true; + + programs.zsh.enable = true; + programs.fish.enable = true; + + # Select internationalisation properties. + # i18n = { + # consoleFont = "Lat2-Terminus16"; + # consoleKeyMap = "us"; + # defaultLocale = "en_US.UTF-8"; + # }; + + fileSystems."/" = { + mountPoint = "/"; + device = "/dev/mapper/cryptvg-root"; + fsType = "btrfs"; + options = ["subvol=aji-root" "discard" "compress=lzo"]; + }; + swapDevices = + [ { device = "/dev/mapper/cryptvg-swap"; } + ]; + + # Set your time zone. + time.timeZone = "America/New_York"; + + nixpkgs.config.allowUnfree = true; + + # List packages installed in system profile. To search by name, run: + # $ nix-env -qaP | grep wget + environment.systemPackages = with pkgs; + let + myArduino = pkgs.stdenv.lib.overrideDerivation pkgs.arduino (o: { + withGUI = true; + }); + in [ + neovim + rustc + fish + git + dmenu2 i3blocks i3status + rsync + chromium firefox + xscreensaver xss-lock xorg.xev + which htop tree + myArduino + termite + nix-repl + nfs-utils + nox + pasystray + pavucontrol + powertop + kde4.digikam + emacs25pre + sshfsFuse + xorg.xbacklight + rtorrent + hdparm + bwm_ng + geeqie + inkscape + silver-searcher + termite + rofi + wireshark + + haskellPackages.xmonad + haskellPackages.xmobar + ]; + + # List services that you want to enable: + # Enable the OpenSSH daemon. + # services.openssh.enable = true; + services.avahi.enable = true; + + services.redshift = { + enable = true; + latitude = "40"; + longitude = "-74"; + extraOptions = ["-r"]; + }; + + services.tlp.enable = true; + services.tlp.extraConfig = '' + SATA_LINKPWR_ON_BAT=max_performance + ''; + + # Enable the X11 windowing system. + services.xserver.enable = true; + services.xserver.windowManager.xmonad.enable = true; + services.xserver.windowManager.xmonad.extraPackages = + haskellPackages: [ + haskellPackages.xmonad-contrib]; + # services.xserver.windowManager.awesome.enable = true; + # services.xserver.windowManager.i3.enable = true; + # services.xserver.displayManager.slim = { + # enable = true; + # autoLogin = true; + # defaultUser = "orbekk"; + # }; + + services.xserver.layout = "us"; + services.xserver.xkbVariant = "dvorak"; + services.xserver.xkbModel = "thinkpad60"; + + users = { + defaultUserShell = "/run/current-system/sw/bin/fish"; + extraUsers.orbekk = { + isNormalUser = true; + home = "/home/orbekk"; + uid = 1000; + description = "KJ"; + extraGroups = ["wheel" "networkmanager" "dialout" "uucp"]; + shell = "/run/current-system/sw/bin/fish"; + }; + }; + + # The NixOS release to be compatible with for stateful data such as databases. + system.stateVersion = "16.03"; + + nix.maxJobs = 4; + nix.buildCores = 4; + nix.useSandbox = true; +} |