summaryrefslogtreecommitdiff
path: root/nixos
diff options
context:
space:
mode:
authorKjetil Orbekk <kjetil.orbekk@gmail.com>2016-07-14 20:20:05 -0400
committerKjetil Orbekk <kjetil.orbekk@gmail.com>2016-07-14 20:23:19 -0400
commit5e51bed2e787ded903be61ad1227dca208f80e6b (patch)
treed7c2839f6d2c8a0d0957b5da8e985ec965a9c942 /nixos
parent418be345d29bc8ae40900b9ec652be36ae0091cf (diff)
Refactor nix config.
Diffstat (limited to 'nixos')
-rw-r--r--nixos/aji.nix49
-rw-r--r--nixos/configuration.nix108
2 files changed, 157 insertions, 0 deletions
diff --git a/nixos/aji.nix b/nixos/aji.nix
new file mode 100644
index 0000000..abda9f8
--- /dev/null
+++ b/nixos/aji.nix
@@ -0,0 +1,49 @@
+{ config, pkgs, hardware, ... }:
+
+{
+ imports = [
+ ./configuration.nix
+ ];
+
+ # 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
+ '';
+
+ networking.hostName = "aji";
+
+ fileSystems."/" = {
+ mountPoint = "/";
+ device = "/dev/mapper/cryptvg-root";
+ fsType = "btrfs";
+ options = ["subvol=aji-root" "discard" "compress=lzo"];
+ };
+ swapDevices =
+ [ { device = "/dev/mapper/cryptvg-swap"; }
+ ];
+
+ services.tlp.enable = true;
+ services.tlp.extraConfig = ''
+ # Needed for either SSD or btrfs.
+ SATA_LINKPWR_ON_BAT=max_performance
+ '';
+
+ services.xserver.xkbModel = "thinkpad60";
+
+ # The NixOS release to be compatible with for stateful data such as databases.
+ system.stateVersion = "16.03";
+}
diff --git a/nixos/configuration.nix b/nixos/configuration.nix
new file mode 100644
index 0000000..c25f009
--- /dev/null
+++ b/nixos/configuration.nix
@@ -0,0 +1,108 @@
+{ config, pkgs, hardware, hostname, ... }:
+
+{
+ hardware.bluetooth.enable = true;
+ hardware.pulseaudio.enable = true;
+ hardware.pulseaudio.package = pkgs.pulseaudioFull;
+ hardware.enableAllFirmware = true;
+
+ boot.cleanTmpDir = true;
+
+ 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";
+ # };
+
+ # 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.xmonad-contrib
+ 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"];
+ };
+
+ # Enable the X11 windowing system.
+ services.xserver.enable = true;
+ services.xserver.windowManager.xmonad.enable = true;
+ services.xserver.windowManager.xmonad.enableContribAndExtras = true;
+
+ services.xserver.layout = "us";
+ services.xserver.xkbVariant = "dvorak";
+
+ 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";
+ };
+ };
+
+ nix.maxJobs = 4;
+ nix.buildCores = 4;
+ nix.useSandbox = true;
+}