diff options
Diffstat (limited to 'modules/user/aszlig/profiles')
-rw-r--r-- | modules/user/aszlig/profiles/base.nix | 101 | ||||
-rw-r--r-- | modules/user/aszlig/profiles/workstation/default.nix | 178 | ||||
-rw-r--r-- | modules/user/aszlig/profiles/workstation/packages.nix | 92 |
3 files changed, 371 insertions, 0 deletions
diff --git a/modules/user/aszlig/profiles/base.nix b/modules/user/aszlig/profiles/base.nix new file mode 100644 index 00000000..8f31467e --- /dev/null +++ b/modules/user/aszlig/profiles/base.nix @@ -0,0 +1,101 @@ +{ config, pkgs, lib, ... }: + +let + cfg = config.vuizvui.user.aszlig.profiles.base; + +in { + options.vuizvui.user.aszlig.profiles.base = { + enable = lib.mkEnableOption "Base profile for aszlig"; + }; + + config = lib.mkIf cfg.enable { + nix = { + useChroot = true; + readOnlyStore = true; + buildCores = 0; + extraOptions = '' + auto-optimise-store = true + log-servers = https://headcounter.org/hydra/log + ''; + }; + + boot.loader.grub = { + enable = true; + version = 2; + }; + + hardware.cpu.intel.updateMicrocode = true; + + users.defaultUserShell = "/var/run/current-system/sw/bin/zsh"; + + networking.wireless.enable = false; + networking.firewall.enable = false; + networking.useNetworkd = true; + + i18n.consoleKeyMap = "dvorak"; + i18n.consoleFont = "lat9w-16"; + + programs.ssh.startAgent = false; + programs.ssh.extraConfig = '' + ServerAliveInterval 60 + ''; + + vuizvui.user.aszlig.programs.vim.enable = true; + vuizvui.user.aszlig.programs.zsh.enable = true; + vuizvui.enableGlobalNixpkgsConfig = true; + + services.nixosManual.showManual = false; + + services.journald.extraConfig = '' + MaxRetentionSec=3month + ''; + + environment.systemPackages = with pkgs; [ + binutils + cacert + file + htop + iotop + psmisc + unrar + unzip + vlock + wget + xz + ]; + + nixpkgs.config = { + pulseaudio = true; + chromium.enablePepperFlash = true; + firefox.jre = true; + + # Needed for CPU microcode + allowUnfree = true; + + allowBroken = true; + + packageOverrides = pkgs: { + beets = pkgs.beets.override { + enableAlternatives = true; + }; + miro = pkgs.miro.override { + enableBonjour = true; + }; + netrw = pkgs.netrw.override { + checksumType = "mhash"; + }; + nix = pkgs.nixUnstable; + uqm = pkgs.uqm.override { + use3DOVideos = true; + useRemixPacks = true; + }; + w3m = pkgs.w3m.override { + graphicsSupport = true; + }; + }; + }; + + system.fsPackages = with pkgs; [ sshfsFuse ]; + time.timeZone = "Europe/Berlin"; + }; +} diff --git a/modules/user/aszlig/profiles/workstation/default.nix b/modules/user/aszlig/profiles/workstation/default.nix new file mode 100644 index 00000000..2e0d8a40 --- /dev/null +++ b/modules/user/aszlig/profiles/workstation/default.nix @@ -0,0 +1,178 @@ +{ pkgs, config, lib, ... }: + +let + cfg = config.vuizvui.user.aszlig.profiles.workstation; + randrHeads = config.services.xserver.xrandrHeads; + +in { + options.vuizvui.user.aszlig.profiles.workstation = { + enable = lib.mkEnableOption "Workstation profile for aszlig"; + }; + + config = lib.mkIf cfg.enable { + vuizvui.user.aszlig.profiles.base.enable = true; + + boot.kernelParams = [ "zswap.enabled=1" "panic=1800" ]; + boot.cleanTmpDir = true; + + environment.systemPackages = with lib; let + mkRandrConf = acc: name: acc ++ singleton { + inherit name; + value = "--output '${name}' --preferred" + + optionalString (acc != []) " --right-of '${(head acc).name}'"; + }; + randrConf = map (getAttr "value") (foldl mkRandrConf [] randrHeads); + in singleton (pkgs.writeScriptBin "xreset" '' + #!${pkgs.stdenv.shell} + ${pkgs.xorg.xrandr}/bin/xrandr ${concatStringsSep " " randrConf} + '') ++ import ./packages.nix pkgs; + + hardware = { + pulseaudio.enable = true; + opengl = { + driSupport32Bit = true; + s3tcSupport = true; + }; + }; + + fonts = { + enableCoreFonts = true; + enableFontDir = true; + enableGhostscriptFonts = true; + fonts = [ + pkgs.dosemu_fonts + pkgs.liberation_ttf + ]; + }; + + vuizvui.user.aszlig.services.i3.enable = true; + vuizvui.user.aszlig.services.slim.enable = true; + vuizvui.user.aszlig.services.vlock.enable = true; + + vuizvui.user.aszlig.programs.gajim.enable = true; + vuizvui.user.aszlig.programs.mpv.enable = true; + vuizvui.user.aszlig.programs.taskwarrior.enable = true; + vuizvui.user.aszlig.programs.xpdf.enable = true; + + vuizvui.user.aszlig.programs.git.enable = true; + vuizvui.user.aszlig.programs.git.config = { + color.ui = "auto"; + merge.tool = "vimdiff3"; + user.email = "aszlig@redmoonstudios.org"; + user.name = "aszlig"; + user.signkey = "8C2DC961"; + gpg.program = "${pkgs.gnupg}/bin/gpg2"; + push.default = "current"; + tar."tar.xz".command = "${pkgs.xz}/bin/xz -c"; + rebase.autosquash = true; + rerere.enabled = true; + rerere.autoupdate = true; + commit.gpgsign = true; + + alias.backport = let + release = "14.04"; + message = "Merge release ${release} into backports."; + in "!git fetch upstream release-${release} &&" + + " git merge -m \"${message}\" --log FETCH_HEAD"; + }; + + vuizvui.hardware.gameController."03000000ff1100004133000010010000" = { + name = "PS2 Controller"; + mapping = { + a = "b2"; + b = "b1"; + x = "b3"; + y = "b0"; + back = "b8"; + start = "b9"; + leftshoulder = "b6"; + rightshoulder = "b7"; + leftstick = "b10"; + rightstick = "b11"; + leftx = "a0"; + lefty = "a1"; + rightx = "a3"; + righty = "a2"; + lefttrigger = "b4"; + righttrigger = "b5"; + dpup = "h0.1"; + dpleft = "h0.8"; + dpdown = "h0.4"; + dpright = "h0.2"; + }; + }; + + services = { + openssh = { + enable = true; + permitRootLogin = "without-password"; + }; + + xfs.enable = false; + + gpm = { + enable = true; + protocol = "exps2"; + }; + + printing.enable = true; + printing.drivers = [ pkgs.gutenprint pkgs.hplip ]; + + udev.extraRules = '' + # aXbo S.P.A.C. + SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", \ + ATTRS{serial}=="0001", OWNER="aszlig", SYMLINK+="axbo" + # Enttec DMX device + SUBSYSTEM=="usb*|tty", ACTION=="add|change", ATTRS{idVendor}=="0403", \ + ATTRS{idProduct}=="6001", OWNER="aszlig" + ''; + + xserver = { + enable = true; + layout = "dvorak"; + + startGnuPGAgent = true; + + displayManager.sessionCommands = '' + ${pkgs.redshift}/bin/redshift -l 48.428404:10.866007 & + ${pkgs.xorg.xrdb}/bin/xrdb "${pkgs.writeText "xrdb.config" '' + Rxvt*font: vga + Rxvt*background: black + Rxvt*foreground: grey + Rxvt*scrollBar: false + Rxvt*saveLines: 2000 + + Rxvt*keysym.Home: \033[1~ + Rxvt*keysym.End: \033[4~ + + Rxvt*urgentOnBell: true + + XTerm*font: vga + XTerm*saveLines: 10000 + XTerm*bellIsUrgent: true + XTerm*background: black + XTerm*foreground: grey + + XTerm*backarrowKeyIsErase: true + XTerm*ptyInitialErase: true + ''}" + ''; + + desktopManager.default = "none"; + desktopManager.xterm.enable = false; + }; + }; + + virtualisation.virtualbox.host.enable = true; + + users.extraUsers.aszlig = { + uid = 1000; + description = "aszlig"; + group = "users"; + extraGroups = [ "wheel" "video" ]; + home = "/home/aszlig"; + useDefaultShell = true; + createHome = true; + }; + }; +} diff --git a/modules/user/aszlig/profiles/workstation/packages.nix b/modules/user/aszlig/profiles/workstation/packages.nix new file mode 100644 index 00000000..8ba1d309 --- /dev/null +++ b/modules/user/aszlig/profiles/workstation/packages.nix @@ -0,0 +1,92 @@ +pkgs: with pkgs; [ + vuizvui.aacolorize + abook + acpi + apg + ascii + aspellDicts.de + aspellDicts.en + vuizvui.axbo + bc + beets + chromiumBeta + dash + dos2unix + erlang + fbida + ffmpeg + figlet + firefox + flac + gdb + ghostscript + gimp + glxinfo + gnumake + gnupg1compat + gpodder + graphviz + haskellPackages.cabal2nix + haskellPackages.cabal-install + haskellPackages.hlint + haskellPackages.yesod-bin + haxe + hexedit + i3 + i3lock + imagemagick + jwhois + keychain + lastwatch + lftp + ltrace + manpages + mmv + mosh + mp3info + mpg321 + mtr + mumble + mutt + ncdu + neko + netrw + nix-prefetch-scripts + nix-repl + vuizvui.nixops + nixpkgs-lint + nmap + openssh + openssl + p7zip + pavucontrol + picard + posix_man_pages + pulseaudioLight + vuizvui.pvolctrl + python + python3 + pythonPackages.hetzner + pythonPackages.pep8 + pythonPackages.polib + rlwrap + rtorrent + samplicator + screen + scrot + socat + sox + sqlite + strace + surfraw + telnet + vuizvui.tomahawk + unzip + uqm + valgrind + vbindiff + vorbisTools + w3m + wireshark + youtubeDL +] |