{ config, pkgs, options, ... }: let packages = (import ../lib/packages.nix) { config = config.nixpkgs.config; }; callPackageFile = path: (import path) packages; in { imports = [ (callPackageFile ../profiles/system/base.nix) (callPackageFile ../profiles/system/wpa-cli.nix) (callPackageFile ../profiles/environment/graphical-environment.nix) /*(callPackageFile ../profiles/environment/xfce4.nix)*/ (callPackageFile ../profiles/environment/plasma5.nix) (callPackageFile ../profiles/environment/common-software.nix) (callPackageFile ../profiles/system/efi-boot.nix) (callPackageFile ../profiles/system/networked.nix) (callPackageFile ../profiles/system/printing.nix) (callPackageFile ../profiles/system/scanning.nix) (callPackageFile ../profiles/system/amd.nix) (callPackageFile ../profiles/system/pulseaudio.nix) (callPackageFile ../profiles/system/bluetooth.nix) (callPackageFile ../profiles/system/virtualization.nix) (callPackageFile ../profiles/system/service-accounting.nix) (callPackageFile ../profiles/software/elasticsearch.nix) /* (callPackageFile ../profiles/software/couchdb.nix) */ (callPackageFile ../profiles/software/games.nix) /*(callPackageFile ../profiles/software/guake.nix)*/ (callPackageFile ../profiles/software/yakuake.nix) (callPackageFile ../profiles/software/synergy.nix) (callPackageFile ../profiles/software/workrave.nix) ]; nix.trustedUsers = ["sven"]; services.xserver = { xrandrHeads = [ "DFP6" "CRT1" ]; # The below is a workaround, because SDDM inexplicably results in a masked display-manager.service on this system. displayManager = { lightdm = { enable = true; }; sddm = { enable = pkgs.stdenv.lib.mkForce false; }; }; }; networking = { hostName = "desktop-home"; firewall = { # FIXME: abstract this out... allowedTCPPorts = [ 25565 # Minecraft 3979 # OpenTTD ]; allowedUDPPorts = [ 34197 # Factorio 3979 # OpenTTD ]; }; }; users.extraUsers.sven = { isNormalUser = true; uid = 1000; extraGroups = [ "libvirtd" "dialout" ]; }; users.groups = { davfs2 = {}; }; users.extraUsers.davfs2 = { isNormalUser = true; }; boot = { kernelModules = [ "tun" "virtio" "nbd" ]; kernelParams = [ "radeon.dpm=0" ]; }; environment = { systemPackages = with packages; [ nixpkgs.nixops nixpkgs.oraclejre8 nixpkgs.devilspie2 nixpkgs.bundix ]; etc = { "synergy-server.conf" = { text = '' section: screens desktop: laptop: end section: links desktop: left = laptop laptop: right = desktop end section: aliases desktop: 192.168.178.60 desktop-home laptop: 192.168.178.41 linux-o82e.site end ''; }; }; pathsToLink = [ "/lib/rustlib/src" ]; }; hardware.pulseaudio.extraConfig = '' load-module module-loopback load-module module-combine-sink sink_name=all ''; networking.extraHosts = '' 127.0.0.1 im-project.im ''; services.mpd = { enable = true; }; /* SSHd */ services.openssh = { enable = true; passwordAuthentication = false; challengeResponseAuthentication = false; }; users.users.root.openssh.authorizedKeys.keys = [ (builtins.readFile ../private/joepie91.pub) ]; /* Hydra */ services.hydra = { enable = true; port = 3333; hydraURL = "http://localhost:3333/"; notificationSender = "hydra@cryto.net"; useSubstitutes = true; minimumDiskFree = 20; minimumDiskFreeEvaluator = 20; buildMachinesFiles = pkgs.lib.mkIf (config.nix.buildMachines == []) []; extraConfig = '' store_uri = file:///var/lib/hydra-builds ''; }; /* morepkgs */ nix.binaryCaches = options.nix.binaryCaches.default ++ [ "https://nix-cache.cryto.net/" ]; nix.binaryCachePublicKeys = [ "hydra.nixos.org-1:CNHJZBh9K4tP3EKF6FkkgeVYsS3ohTl+oS0Qa8bezVs=" "nix-cache.cryto.net:+FTmODNmc5L50krRNZwx93Ti2PM6Tgqj5EVL2CqazC4=" ]; }