about summary refs log tree commit diff
path: root/machines/profpatsch/base-workstation.nix
diff options
context:
space:
mode:
authorProfpatsch <mail@profpatsch.de>2017-01-26 22:31:27 +0100
committerProfpatsch <mail@profpatsch.de>2017-01-26 22:31:27 +0100
commitf19a54d6c8efea1e2354f4cd8e418c2ccf9b6641 (patch)
tree32a3facf650e4566375144762d5723b2e573a2ba /machines/profpatsch/base-workstation.nix
parentdf543b11c344e59762ef7d043eeb07dccdce30b6 (diff)
machines/profpatsch: base.nix -> base-workstation.nix
Diffstat (limited to 'machines/profpatsch/base-workstation.nix')
-rw-r--r--machines/profpatsch/base-workstation.nix103
1 files changed, 103 insertions, 0 deletions
diff --git a/machines/profpatsch/base-workstation.nix b/machines/profpatsch/base-workstation.nix
new file mode 100644
index 00000000..19b3aa09
--- /dev/null
+++ b/machines/profpatsch/base-workstation.nix
@@ -0,0 +1,103 @@
+# A base configuration that still assumes a workstation
+{ pkgs, lib, ... }:
+let
+  myPkgs = import ./pkgs.nix { inherit pkgs lib myLib; };
+  myLib  = import ./lib.nix  { inherit pkgs lib; };
+
+  philip = myLib.philip;
+
+in {
+
+  config = {
+
+    boot.loader = {
+      grub.enable = true;
+      grub.version = 2;
+    };
+
+    networking = {
+      wireless.enable = false;
+      firewall.enable = false;
+      networkmanager.enable = true;
+    };
+
+    i18n = {
+      consoleFont = "lat9w-16";
+      consoleKeyMap = "neo";
+      defaultLocale = "en_US.UTF-8";
+    };
+
+    programs.ssh.startAgent = false;
+
+
+    ###########
+    # Packages
+
+    environment.sessionVariables = { EDITOR = "${myPkgs.vim}/bin/vim"; };
+
+    environment.systemPackages = with pkgs;
+    let
+      # of utmost necessity for me to function
+      basePkgs = [
+        silver-searcher   # file content searcher, > ack > grep
+        curl              # transfer data to/from a URL
+        dos2unix          # text file conversion
+        file              # file information
+        git               # version control system
+        htop              # top replacement
+        manpages          # system manpages (not included by default)
+        mkpasswd          # UNIX password creator
+        nmap              # stats about clients in the network
+        rsync             # file syncing tool
+        smartmontools     # check disk state
+        stow              # dotfile management
+        tmux              # detachable terminal multiplexer
+        traceroute        # trace ip routes
+        wget              # the other URL file fetcher
+        wirelesstools     # iwlist (wifi scan)
+        myPkgs.vim        # slight improvement over vi
+      ];
+    in basePkgs;
+
+    # friendly user shell
+    programs.fish.enable = true;
+
+    ###########
+    # Services
+
+    services.openssh.enable = true;
+
+    time.timeZone = "Europe/Berlin";
+
+    # bounded journal size
+    services.journald.extraConfig = "SystemMaxUse=50M";
+
+    # services.xserver = {
+      # libinput = {
+      #   enable = true;
+      #   naturalScrolling = true;
+      #   accelSpeed = "0.01";
+      # };
+
+      # # TODO: modify libinput module so that you can do libinput."trackpoint".scrollMethod = "button";
+      # # and maybe a convenience option for thinkpads (maybe in the hardware repo?).
+      # config = ''
+      #   Section "InputClass"
+      #     Identifier     "Enable libinput for TrackPoint"
+      #     MatchIsPointer "on"
+      #     Driver         "libinput"
+      #     Option         "ScrollMethod" "button"
+      #     Option         "ScrollButton" "8"
+      #   EndSection
+      # '';
+    # };
+
+    ########
+    # Users
+
+    # Nobody wants mutable state. :)
+    users.mutableUsers = false;
+    users.users = { inherit philip; };
+
+  };
+}