From 3fcbe6c5458d5866c4234695b00b500d26de0af0 Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Mon, 25 Apr 2016 01:21:37 +0200 Subject: machines/labnet: generic labtop config Draws out the general config for all Labtops in its own module and creates a structure to specify the setting which are different. --- modules/user/openlab/labtops.nix | 116 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 modules/user/openlab/labtops.nix (limited to 'modules/user') diff --git a/modules/user/openlab/labtops.nix b/modules/user/openlab/labtops.nix new file mode 100644 index 00000000..26a08a22 --- /dev/null +++ b/modules/user/openlab/labtops.nix @@ -0,0 +1,116 @@ +{ config, pkgs, lib, ... }: + +with lib; + +let + cfg = config.vuizvui.user.openlab.labtops; + +in +{ + + options.vuizvui.user.openlab.labtops = { + enable = mkEnableOption "basic shared functionality of labtops"; + + }; + + + + config = mkIf cfg.enable { + + i18n = { + consoleFont = "lat9w-16"; + consoleKeyMap = "us"; + defaultLocale = "de_DE.UTF-8"; + }; + + # TODO: filesystems + + # TODO: a way to modularly specify usage patterns (e.g. 3d-printing, arduino &c.) + environment.systemPackages = with pkgs; let + base = [ + ack + fish + git + netcat-openbsd + python3 + tmux + screen + vim + wget + ]; + baseGUI = [ + filezilla + chromium + gnome3.gedit + gmpc + libreoffice + vlc + ]; + image = [ + gimp + inkscape + ]; + three-d = [ + # TODO doesn’t build on i686 + # TODO add a “packageset” mechanism + # blender + antimony + ]; + three-d-printing = [ + freecad + openscad + printrun + slic3r + ]; + arduino = [ + ino + ]; + in base ++ baseGUI ++ image ++ three-d ++ three-d-printing ++ arduino; + + services.xserver = { + enable = true; + layout = "us"; + xkbOptions = "eurosign:e"; + + displayManager.auto.enable = true; + displayManager.auto.user = "openlab"; + desktopManager.xfce.enable = true; + synaptics = { + enable = true; + minSpeed = "0.5"; + accelFactor = "0.01"; + }; + }; + + services.openssh.enable = true; + + networking.networkmanager.enable = true; + networking.firewall.enable = false; + + # TODO: an argument that tells about hardware capability + nix.maxJobs = 2; + hardware.enableAllFirmware = true; + + users.mutableUsers = false; + users.users.openlab = { + uid = 1000; + isNormalUser = true; + password = "openlab"; + extraGroups = [ "wheel" "networkmanager" "dialout"]; + openssh.authorizedKeys.keys = lib.singleton (lib.concatStrings [ + + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJhthfk38lzDvoI7lPqRneI0yBpZEhLD" + "GRBpcXzpPSu+V0YlgrDix5fHhBl+EKfw4aeQNvQNuAky3pDtX+BDK1b7idbz9ZMCExy2a1" + "kBKDVJz/onLSQxiiZMuHlAljVj9iU4uoTOxX3vB85Ok9aZtMP1rByRIWR9e81/km4HdfZT" + "CjFVRLWfvo0s29H7l0fnbG9bb2E6kydlvjnXJnZFXX+KUM16X11lK53ilPdPJdm87VtxeS" + "KZ7GOiBz6q7FHzEd2Zc3CnzgupQiXGSblXrlN22IY3IWfm5S/8RTeQbMLVoH0TncgCeenX" + "H7FU/sXD79ypqQV/WaVVDYMOirsnh/ philip@nyx" + ]); + }; + + # fix for emacs + programs.bash.promptInit = "PS=\"# \""; + + }; + +} -- cgit 1.4.1