about summary refs log tree commit diff
path: root/modules/user
diff options
context:
space:
mode:
authoraszlig <aszlig@redmoonstudios.org>2017-06-22 13:33:18 +0200
committeraszlig <aszlig@redmoonstudios.org>2017-06-22 13:33:18 +0200
commit689e64a215d4750c82ef3b272217d81c5bbf5c9b (patch)
tree6747456e52e6eaba5d147d0e008955a939694d9a /modules/user
parent6fb4606cd36ba8a1d6755b5f680332f20d4960b9 (diff)
parent0c4a5eb635bf513890904cf75e0a730861f7ea62 (diff)
Merge migration of devhell's machines
This merges pull request #15 and thus also introduces @devhell as a new
member of vuizvui.

Changes were approved by @devhell via XMPP.
Diffstat (limited to 'modules/user')
-rw-r--r--modules/user/devhell/profiles/base.nix117
-rw-r--r--modules/user/devhell/profiles/packages.nix321
-rw-r--r--modules/user/devhell/profiles/services.nix88
3 files changed, 526 insertions, 0 deletions
diff --git a/modules/user/devhell/profiles/base.nix b/modules/user/devhell/profiles/base.nix
new file mode 100644
index 00000000..123da3ef
--- /dev/null
+++ b/modules/user/devhell/profiles/base.nix
@@ -0,0 +1,117 @@
+{ config, pkgs, lib, ... }:
+
+let
+  cfg = config.vuizvui.user.devhell.profiles.base;
+
+in {
+  options.vuizvui.user.devhell.profiles.base = {
+    enable = lib.mkEnableOption "Base profile for devhell";
+  };
+
+  config = lib.mkIf cfg.enable {
+    boot = {
+      kernelPackages = pkgs.linuxPackages_latest;
+      cleanTmpDir = true;
+    };
+
+    nix = {
+      buildCores = 0;
+      useSandbox = true;
+    };
+
+    time = {
+      timeZone = "Europe/London";
+    };
+
+    system = {
+      fsPackages = with pkgs; [
+        sshfsFuse
+        fuse
+        cryptsetup
+      ];
+    };
+
+    hardware = {
+      enableAllFirmware = true;
+      cpu.intel.updateMicrocode = true;
+      opengl = {
+        s3tcSupport = true;
+        driSupport32Bit = true;
+      };
+      pulseaudio = {
+        enable = true;
+        systemWide = false;
+      };
+    };
+
+    networking.firewall.enable = false;
+
+    users.users.dev = {
+      isNormalUser = true;
+      extraGroups = [ "vboxusers" "wheel" "mpd" "networkmanager" "libvirtd" ];
+      uid = 1000;
+      shell = "${pkgs.zsh}/bin/zsh";
+    };
+
+    programs = {
+      ssh = {
+        startAgent = false;
+      };
+      zsh = {
+        enable = true;
+        enableCompletion = true;
+      };
+      bash = {
+        enableCompletion = true;
+        promptInit = ''
+          # Provide a nice prompt.
+          PROMPT_COLOR="1;31m"
+          let $UID && PROMPT_COLOR="1;32m"
+          PS1="\n\[\033[$PROMPT_COLOR\][\u@\h:\w]\\$\[\033[0m\] "
+          if test "$TERM" = "xterm"; then
+            PS1="\[\033]2;\h:\u:\w\007\]$PS1"
+          fi
+          eval `dircolors ~/.dir_colors`
+        '';
+      };
+    };
+
+    environment = {
+      shells = [ "/run/current-system/sw/bin/zsh" ];
+      sessionVariables.TERM = "xterm-256color";
+    };
+
+    fonts = {
+      fontconfig = {
+        enable = true;
+        ultimate = {
+          enable = true;
+        };
+      };
+      enableGhostscriptFonts = true;
+      enableCoreFonts = true;
+      fonts = with pkgs; [
+        clearlyU
+        cm_unicode
+        dejavu_fonts
+        dosemu_fonts
+        font-awesome-ttf
+        freefont_ttf
+        hack-font
+        inconsolata
+        powerline-fonts
+        proggyfonts
+        source-code-pro
+        source-sans-pro
+        source-serif-pro
+        terminus_font
+        tewi-font
+        ttf_bitstream_vera
+        ubuntu_font_family
+        unifont
+        vistafonts
+        wqy_microhei
+      ] ++ lib.filter lib.isDerivation (lib.attrValues lohit-fonts);
+    };
+  };
+}
diff --git a/modules/user/devhell/profiles/packages.nix b/modules/user/devhell/profiles/packages.nix
new file mode 100644
index 00000000..a62479d0
--- /dev/null
+++ b/modules/user/devhell/profiles/packages.nix
@@ -0,0 +1,321 @@
+{ config, pkgs, lib, ... }:
+
+let
+  cfg = config.vuizvui.user.devhell.profiles.packages;
+
+in {
+  options.vuizvui.user.devhell.profiles.packages = {
+    enable = lib.mkEnableOption "Packages profile for devhell";
+  };
+
+  config = lib.mkIf cfg.enable {
+    nixpkgs.config = {
+      pulseaudio = true;
+
+      allowUnfree = true;
+
+      systemd = {
+        enableKDbus = true;
+      };
+
+      conky = {
+        weatherMetarSupport = true;
+        mpdSupport = true;
+        wirelessSupport = true;
+        x11Support = false;
+      };
+
+      firefox = {
+        enableGTK3 = true;
+        enableOfficalBranding = true;
+      };
+
+      virtualbox = {
+        enableExtensionPack = true;
+      };
+
+      mpv = {
+        youtubeSupport = true;
+      };
+
+      nixpkgs.config.packageOverrides = super: {
+        gnupg = super.gnupg21;
+
+        ncmpcpp = super.ncmpcpp.override {
+          visualizerSupport = true;
+          clockSupport = true;
+        };
+
+        sox = super.sox.override {
+          enableLame = true;
+        };
+      };
+    };
+
+    environment.systemPackages = with pkgs; [
+      #attic
+      #emacs
+      #gitAndTools.git-annex
+      #ipfs
+      #john
+      #lxappearance
+      #sleuthkit
+      #texmacs
+      #tribler
+      #vimiv
+      #zotero
+      abcde
+      abook
+      accountsservice
+      antiword
+      apg
+      arandr
+      arc-theme
+      ascii
+      aspell
+      aspellDicts.de
+      aspellDicts.en
+      atftp
+      atom
+      audacity
+      axel
+      bc
+      beets
+      biber
+      bind
+      binutils
+      brotli
+      bup
+      cacert
+      cataclysm-dda
+      cava
+      ccrypt
+      chromaprint
+      chromium
+      cifs_utils
+      cipherscan
+      cmake
+      cmatrix
+      colordiff
+      compton
+      conky
+      cryptsetup
+      ctodo
+      cuetools
+      darkstat
+      dcfldd
+      ddrescue
+      dhcping
+      dmenu
+      dmidecode
+      docker
+      dos2unix
+      dosbox
+      duff
+      dynamic-colors
+      e2fsprogs
+      easytag
+      electrum
+      enhanced-ctorrent
+      ethtool
+      evince
+      fbida
+      fdupes
+      feh
+      ffmpeg-full
+      figlet
+      file
+      firefox
+      flac
+      foremost
+      freerdpUnstable
+      fuse_exfat
+      gajim
+      gcc
+      gdb
+      ghostscript
+      gimp
+      gitAndTools.git-extras
+      gitAndTools.git-remote-hg
+      gitAndTools.git2cl
+      gitAndTools.gitFastExport
+      gitAndTools.gitFull
+      gitAndTools.gitRemoteGcrypt
+      gitAndTools.gitSVN
+      gitAndTools.gitflow
+      gitAndTools.svn2git
+      gitAndTools.tig
+      glxinfo
+      gnome3.dconf
+      gnome3.defaultIconTheme
+      gnome3.gnome_themes_standard
+      gnufdisk
+      gnupg
+      gnupg1compat
+      gource
+      gparted
+      gpgme
+      gpicview
+      gptfdisk
+      graphviz
+      gstreamer
+      handbrake
+      hdparm
+      heimdall
+      hexedit
+      hplipWithPlugin
+      htop
+      i3lock
+      i3status
+      icedtea_web
+      iftop
+      imagemagick
+      impressive
+      inkscape
+      iotop
+      iptraf-ng
+      ipv6calc
+      jfsutils
+      jwhois
+      keepassx
+      keepassx-community
+      keepassx2
+      keybase
+      kpcli
+      lftp
+      libarchive
+      libreoffice
+      lm_sensors
+      lsof
+      lxc
+      lynx
+      macchanger
+      manpages
+      mc
+      mcabber
+      mdp
+      mediainfo
+      mkvtoolnix
+      mmv
+      monkeysAudio
+      mono
+      monodevelop
+      mosh
+      mp3gain
+      mpc_cli
+      mpv
+      mtr
+      ncdu
+      ncmpcpp
+      neovim
+      nethack
+      nethogs
+      netkittftp
+      netrw
+      netsniff-ng
+      nitrogen
+      nix-prefetch-scripts
+      nix-repl
+      nixops
+      nload
+      nmap
+      ntfs3g
+      ntfsprogs
+      ntopng
+      numix-icon-theme
+      obnam
+      openssl
+      p7zip
+      pandoc
+      paperkey
+      pass
+      pasystray
+      pavucontrol
+      pciutils
+      picard
+      posix_man_pages
+      powertop
+      profanity
+      profile-cleaner
+      profile-sync-daemon
+      pv
+      python
+      python2
+      python3
+      python34Packages.hovercraft
+      pythonPackages.jrnl
+      pythonPackages.livestreamer
+      pythonPackages.rainbowstream
+      qemu
+      qrencode
+      recode
+      reiserfsprogs
+      rofi
+      rsync
+      ruby
+      safecopy
+      screen
+      scrot
+      shntool
+      silver-searcher
+      smartmontools
+      sox
+      speedtest-cli
+      spek
+      ssdeep
+      stow
+      strace
+      surfraw
+      taskwarrior
+      telnet
+      testdisk
+      texlive.combined.scheme-small
+      tftp-hpa
+      tldr
+      tmux
+      toilet
+      tomahawk
+      toxic
+      transcode
+      transgui
+      transmission_remote_gtk
+      tree
+      tty-clock
+      udevil
+      units
+      unrar
+      unzip
+      valgrind
+      vanilla-dmz
+      vim_configurable
+      virt-viewer
+      virtinst
+      virtmanager
+      vit
+      vivaldi
+      vlc
+      vlock
+      vnstat
+      vorbisTools
+      vorbisgain
+      w3m
+      wavpack
+      weechat
+      wget
+      which
+      wipe
+      wireshark
+      xfsprogs
+      xlibs.xev
+      xmpp-client
+      xpdf
+      xpra
+      xscreensaver
+      youtube-dl
+      zathura
+      zbar
+      zip
+      zsync
+    ];
+  };
+}
diff --git a/modules/user/devhell/profiles/services.nix b/modules/user/devhell/profiles/services.nix
new file mode 100644
index 00000000..86af3eca
--- /dev/null
+++ b/modules/user/devhell/profiles/services.nix
@@ -0,0 +1,88 @@
+{ config, pkgs, lib, ... }:
+
+let
+  cfg = config.vuizvui.user.devhell.profiles.services;
+
+in {
+  options.vuizvui.user.devhell.profiles.services = {
+    enable = lib.mkEnableOption "Services profile for devhell";
+  };
+
+  config = lib.mkIf cfg.enable {
+    virtualisation = {
+      virtualbox = {
+        host = {
+          enable = true;
+          enableHardening = true;
+        };
+      };
+      libvirtd = {
+        enable = true;
+        enableKVM = true;
+      };
+    };
+
+    services = {
+      gpm.enable = true;
+      openssh.enable = true;
+      haveged.enable = true;
+      thermald.enable = true;
+      udisks2.enable = true;
+      redshift = {
+        enable = true;
+        latitude = "51.2750";
+        longitude = "1.0870";
+      };
+    };
+
+    services.xserver = {
+      displayManager.lightdm.enable = true;
+      desktopManager.xterm.enable = false;
+      desktopManager.default = "none";
+    };
+
+    services.xserver.windowManager = {
+      i3.enable = true;
+      default = "i3";
+    };
+
+    services.syncthing = {
+      enable = true;
+      user = "dev";
+    };
+
+    services.journald.extraConfig = ''
+      SystemMaxUse = 50M
+    '';
+
+    services.psd = {
+      enable = false;
+      users = [ "dev" ];
+      browsers = [ "chromium" ];
+    };
+
+    services.mpd = {
+      enable = true;
+      extraConfig = ''
+        input {
+          plugin "curl"
+        }
+
+        audio_output {
+          type "fifo"
+          name "FIFO Output"
+          path "/tmp/mpd.fifo"
+          format "44100:16:2"
+        }
+
+        audio_output {
+          type "pulse"
+          name "Pulse Output"
+          server "127.0.0.1"
+        }
+
+        replaygain "album"
+      '';
+    };
+  };
+}