diff options
Diffstat (limited to 'config')
-rw-r--r-- | config/common.nix | 33 | ||||
-rw-r--r-- | config/desktop.nix | 84 | ||||
-rw-r--r-- | config/thinkpad.nix | 33 | ||||
-rw-r--r-- | config/users.nix | 12 |
4 files changed, 162 insertions, 0 deletions
diff --git a/config/common.nix b/config/common.nix new file mode 100644 index 0000000..b23619a --- /dev/null +++ b/config/common.nix @@ -0,0 +1,33 @@ +{ config, lib, pkgs, ... }: +{ + site = { + ports = { + }; + }; + + programs.fish.enable = true; + + environment.shellAliases = { + vim = "nvim"; + }; + environment.systemPackages = with pkgs; [ + dnsutils + gnupg + haskellPackages.hledger + mosh + neovim + nix-repl + nox + silver-searcher + whois + ]; + time.timeZone = "America/New_York"; + + nix = { + useSandbox = true; + maxJobs = 8; + buildCores = 0; # auto configure + }; + + boot.cleanTmpDir = true; +} diff --git a/config/desktop.nix b/config/desktop.nix new file mode 100644 index 0000000..a5c5885 --- /dev/null +++ b/config/desktop.nix @@ -0,0 +1,84 @@ +{ config, lib, pkgs, ... }: +{ + imports = [ ./common.nix ./users.nix ]; + + hardware = { + opengl.driSupport32Bit = true; + + bluetooth.enable = true; + pulseaudio.enable = true; + + loader = { + systemd-boot.enable = true; + timeout = 0; + efi.canTouchEfiVariables = true; + }; + }; + + boot = { + earlyVconsoleSetup = true; + }; + + networking = { + networkmanager.enable = true; + firewall.enable = true; + }; + + fonts = { + fonts = [ pkgs.fira-code ]; + }; + + environment.systemPackages = with pkgs; [ + chromium + dmenu2 + emacs25 + firefox + haskellPackages.xmobar + sshfsFuse + xbindkeys + xorg.xbacklight + xorg.xev + xscreensaver + xss-lock + ]; + + services = { + avahi.enable = true; + + xserver = { + enable = true; + layout = "us"; + variant = "dvorak"; + + windowManager.xmonad = { + enable = true; + enableContribAndExtras = true; + extraPackages = hpkgs: [ hpkgs.xmobar ]; + }; + + displayManager.slim = { + enable = true; + autoLogin = true; + defaultUser = "orbekk"; + }; + + synaptics = { + enable = true; + twoFingerScroll = true; + }; + }; + + redshift = { + enable = true; + latitude = "40"; + longitude = "-74"; + extraOptions = ["-r"]; + }; + }; + + i18n = { + consoleFont = "ter-132n"; + consoleKeyMap = "dvorak"; + consolePackages = [ pkgs.terminus_font ]; + }; +} diff --git a/config/thinkpad.nix b/config/thinkpad.nix new file mode 100644 index 0000000..ff832b1 --- /dev/null +++ b/config/thinkpad.nix @@ -0,0 +1,33 @@ +{ config, lib, pkgs, ... }: +{ + services = { + tlp = { + enable = true; + extraConfig = '' + # Needed for either SSD or btrfs. + SATA_LINKPWR_ON_BAT=max_performance + ''; + }; + xserver.xkbModel = "thinkpad60"; + }; + + boot = { + kernelModules = [ "tp_smapi" "thinkpad_acpi" "fbcon" "i915" "acpi_call" ]; + extraModulePackages = with config.boot.kernelPackages [ tp_smapi acpi_call ]; + } + + systemd.services = { + battery_threshold = { + description = "Set battery charging thresholds."; + path = [ pkgs.tpacpi-bat ]; + after = [ "basic.target" ]; + wantedBy = [ "multi-user.target" ]; + script = '' + tpacpi-bat -s ST 1 39 + tpacpi-bat -s ST 2 39 + tpacpi-bat -s SP 1 80 + tpacpi-bat -s SP 2 80 + ''; + }; + }; +} diff --git a/config/users.nix b/config/users.nix new file mode 100644 index 0000000..4e0901f --- /dev/null +++ b/config/users.nix @@ -0,0 +1,12 @@ +{ config, lib, pkgs, ... }: +{ + users.extraUsers = { + orbekk = { + isNormalUser = true; + home = "/home/orbekk"; + uid = 1000; + description = "KJ"; + extragroups = ["wheel" "networkmanager" "dialout" "uucp" "audio"]; + }; + }; +} |