From fc432e46a22494e1cafb53b0555da92301815921 Mon Sep 17 00:00:00 2001 From: aszlig Date: Thu, 22 Jun 2017 01:41:02 +0200 Subject: Factor out devhell's services into vuizvui I've added another profile called "services", which now resembles the services_common.nix from the previous configuration. The machine-specific definitions now reside directly inside the machine's Nix expressions for now, until they're properly refactored. Most of these machine-specific values can be easily modularized, especially the xrdb config, for example having one base xrdb module and only small machine-specific definitions if stuff needs to be overridden. Signed-off-by: aszlig Cc: @devhell --- devhell/services/services_common.nix | 79 -------------- devhell/services/services_eris.nix | 138 ------------------------ devhell/services/services_skunkworks.nix | 162 ---------------------------- devhell/services/services_titan.nix | 90 ---------------- machines/devhell/eris.nix | 139 ++++++++++++++++++++++++ machines/devhell/skunkworks.nix | 163 +++++++++++++++++++++++++++++ machines/devhell/titan.nix | 91 ++++++++++++++++ modules/module-list.nix | 1 + modules/user/devhell/profiles/services.nix | 88 ++++++++++++++++ 9 files changed, 482 insertions(+), 469 deletions(-) delete mode 100644 devhell/services/services_common.nix delete mode 100644 devhell/services/services_eris.nix delete mode 100644 devhell/services/services_skunkworks.nix delete mode 100644 devhell/services/services_titan.nix create mode 100644 modules/user/devhell/profiles/services.nix diff --git a/devhell/services/services_common.nix b/devhell/services/services_common.nix deleted file mode 100644 index 42ba2525..00000000 --- a/devhell/services/services_common.nix +++ /dev/null @@ -1,79 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - 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" - ''; - }; -} diff --git a/devhell/services/services_eris.nix b/devhell/services/services_eris.nix deleted file mode 100644 index cfec789f..00000000 --- a/devhell/services/services_eris.nix +++ /dev/null @@ -1,138 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - imports = [ ./services_common.nix ]; - - services = { - tftpd.enable = true; - gnome3.gnome-keyring.enable = true; - printing.enable = false; - }; - - services.udev = { - extraRules = '' - SUBSYSTEM=="firmware", ACTION=="add", ATTR{loading}="-1" - ''; - }; - - services.acpid = { - enable = true; - lidEventCommands = '' - LID="/proc/acpi/button/lid/LID/state" - state=`cat $LID | ${pkgs.gawk}/bin/awk '{print $2}'` - case "$state" in - *open*) ;; - *close*) systemctl suspend ;; - *) logger -t lid-handler "Failed to detect lid state ($state)" ;; - esac - ''; - }; - - services.xserver = { - enable = true; - layout = "gb"; - videoDrivers = [ "intel" ]; - - synaptics = { - enable = true; - twoFingerScroll = true; - palmDetect = true; - }; - - displayManager.sessionCommands = '' - ${pkgs.xorg.xsetroot}/bin/xsetroot -solid black - ${pkgs.networkmanagerapplet}/bin/nm-applet & - ${pkgs.pasystray}/bin/pasystray & - #${pkgs.compton}/bin/compton -f & - ${pkgs.rofi}/bin/rofi & - ${pkgs.xorg.xrdb}/bin/xrdb "${pkgs.writeText "xrdb.conf" '' - Xft.dpi: 96 - Xft.antialias: true - Xft.hinting: full - Xft.hintstyle: hintslight - Xft.rgba: rgb - Xft.lcdfilter: lcddefault - Xft.autohint: 1 - Xcursor.theme: Vanilla-DMZ-AA - Xcursor.size: 22 - *.charClass:33:48,35:48,37:48,43:48,45-47:48,61:48,63:48,64:48,95:48,126:48,35:48,58:48 - *background: #121212 - *foreground: #babdb6 - ${lib.concatMapStrings (xterm: '' - ${xterm}.termName: xterm-256color - ${xterm}*bellIsUrgent: true - ${xterm}*utf8: 1 - ${xterm}*locale: true - ${xterm}*utf8Title: true - ${xterm}*utf8Fonts: 1 - ${xterm}*utf8Latin1: true - ${xterm}*dynamicColors: true - ${xterm}*eightBitInput: true - ${xterm}*faceName: xft:DejaVu Sans Mono for Powerline:pixelsize=9:antialias=true:hinting=true - ${xterm}*faceNameDoublesize: xft:Unifont:pixelsize=12:antialias=true:hinting=true - ${xterm}*cursorColor: #545f65 - '') [ "UXTerm" "XTerm" ]} - ! ------------------------------------------------------------------------------ - ! ROFI Color theme & Settings - ! ------------------------------------------------------------------------------ - rofi.modi: run - rofi.opacity: 85 - rofi.width: 100 - rofi.lines: 3 - rofi.padding: 300 - rofi.bw: 0 - rofi.eh: 2 - rofi.color-enabled: true - rofi.color-window: #393939, #393939, #268bd2 - rofi.color-normal: #393939, #ffffff, #393939, #268bd2, #ffffff - rofi.color-active: #393939, #268bd2, #393939, #268bd2, #205171 - rofi.color-urgent: #393939, #f3843d, #393939, #268bd2, #ffc39c - ''}" - ''; - }; - - services.tlp = { - enable = true; - extraConfig = '' - TLP_ENABLE = 1 - DISK_IDLE_SECS_ON_BAT=2 - MAX_LOST_WORK_SECS_ON_AC=15 - MAX_LOST_WORK_SECS_ON_BAT=60 - SCHED_POWERSAVE_ON_AC=0 - SCHED_POWERSAVE_ON_BAT=1 - NMI_WATCHDOG=0 - DISK_DEVICES="sda sdb" - DISK_APM_LEVEL_ON_AC="254 254" - DISK_APM_LEVEL_ON_BAT="254 127" - DISK_IOSCHED="noop cfq" - SATA_LINKPWR_ON_AC=max_performance - SATA_LINKPWR_ON_BAT=min_power - PCIE_ASPM_ON_AC=performance - PCIE_ASPM_ON_BAT=powersave - WIFI_PWR_ON_AC=1 - WIFI_PWR_ON_BAT=5 - WOL_DISABLE=Y - SOUND_POWER_SAVE_ON_AC=0 - SOUND_POWER_SAVE_ON_BAT=1 - SOUND_POWER_SAVE_CONTROLLER=Y - RUNTIME_PM_ON_AC=on - RUNTIME_PM_ON_BAT=auto - RUNTIME_PM_ALL=1 - USB_AUTOSUSPEND=1 - USB_BLACKLIST_WWAN=1 - RESTORE_DEVICE_STATE_ON_STARTUP=0 - DEVICES_TO_DISABLE_ON_STARTUP="bluetooth wwan" - DEVICES_TO_ENABLE_ON_STARTUP="wifi" - DEVICES_TO_DISABLE_ON_SHUTDOWN="bluetooth wifi wwan" - #DEVICES_TO_ENABLE_ON_SHUTDOWN="" - START_CHARGE_THRESH_BAT0=75 - STOP_CHARGE_THRESH_BAT0=80 - #DEVICES_TO_DISABLE_ON_LAN_CONNECT="wifi wwan" - #DEVICES_TO_DISABLE_ON_WIFI_CONNECT="wwan" - #DEVICES_TO_DISABLE_ON_WWAN_CONNECT="wifi" - #DEVICES_TO_ENABLE_ON_LAN_DISCONNECT="wifi wwan" - #DEVICES_TO_ENABLE_ON_WIFI_DISCONNECT="" - #DEVICES_TO_ENABLE_ON_WWAN_DISCONNECT="" - ''; - }; -} diff --git a/devhell/services/services_skunkworks.nix b/devhell/services/services_skunkworks.nix deleted file mode 100644 index f0fa4243..00000000 --- a/devhell/services/services_skunkworks.nix +++ /dev/null @@ -1,162 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - imports = [ ./services_common.nix ]; - - services = { - printing = { - enable = true; - drivers = [ pkgs.hplipWithPlugin ]; - }; - timesyncd.enable = true; - resolved.enable = true; - canto-daemon.enable = true; - }; - - services.xserver = { - enable = true; - layout = "us"; - xkbVariant = "dvorak"; - videoDrivers = [ "ati" ]; - - serverLayoutSection = '' - Screen "Center/Right" - Screen "Left" LeftOf "Center/Right" - ''; - - config = '' - Section "ServerLayout" - Identifier "Multihead layout" - Screen "Center/Right" - Screen "Left" LeftOf "Center/Right" - EndSection - - Section "Device" - Identifier "Radeon HD 4650 PCIEx8" - Driver "radeon" - BusId "PCI:2:0:0" - - Option "monitor-DVI-1" "Left monitor" - EndSection - - Section "Device" - Identifier "Radeon HD 4650 PCIEx16" - Driver "radeon" - BusID "PCI:1:0:0" - - Option "monitor-DVI-0" "Center monitor" - Option "monitor-HDMI-0" "Right monitor" - EndSection - - Section "Screen" - Identifier "Center/Right" - Monitor "Left monitor" - Device "Radeon HD 4650 PCIEx16" - EndSection - - Section "Screen" - Identifier "Left" - Device "Radeon HD 4650 PCIEx8" - EndSection - - Section "Monitor" - Identifier "Left monitor" - EndSection - - Section "Monitor" - Identifier "Center monitor" - Option "LeftOf" "Right monitor" - Option "Primary" "true" - EndSection - - Section "Monitor" - Identifier "Right monitor" - EndSection - ''; - - displayManager.sessionCommands = '' - ${pkgs.xorg.xsetroot}/bin/xsetroot -solid black - ${pkgs.xscreensaver}/bin/xscreensaver -no-splash & - ${pkgs.rofi}/bin/rofi & - ${pkgs.xorg.xrdb}/bin/xrdb "${pkgs.writeText "xrdb.conf" '' - Xft.dpi: 96 - Xft.antialias: true - Xft.hinting: full - Xft.hintstyle: hintslight - Xft.rgba: rgb - Xft.lcdfilter: lcddefault - Xft.autohint: 1 - XTerm.termName: xterm-256color - XTerm*bellIsUrgent: true - XTerm*utf8: 1 - XTerm*locale: true - XTerm*utf8Title: true - XTerm*utf8Fonts: true - XTerm*utf8Latin1: true - XTerm*dynamicColors: true - XTerm*eightBitInput: true - Xcursor.theme: Vanilla-DMZ-AA - Xcursor.size: 22 - *.charClass:33:48,35:48,37:48,43:48,45-47:48,61:48,63:48,64:48,95:48,126:48,35:48,58:48 - XTerm*faceName: xft:DejaVu Sans Mono for Powerline:pixelsize=12:antialias=true:hinting=true - XTerm*faceNameDoublesize: xft:Unifont:pixelsize=12:antialias=true:hinting=true - XTerm*cursorColor: #545f65 - XTerm*saveLines: 10000 - ! Base16 Twilight - ! Scheme: David Hart (http://hart-dev.com) - #define base00 #1e1e1e - #define base01 #323537 - #define base02 #464b50 - #define base03 #5f5a60 - #define base04 #838184 - #define base05 #a7a7a7 - #define base06 #c3c3c3 - #define base07 #ffffff - #define base08 #cf6a4c - #define base09 #cda869 - #define base0A #f9ee98 - #define base0B #8f9d6a - #define base0C #afc4db - #define base0D #7587a6 - #define base0E #9b859d - #define base0F #9b703f - *.foreground: base05 - *.background: base00 - *.cursorColor: base05 - *.color0: base00 - *.color1: base08 - *.color2: base0B - *.color3: base0A - *.color4: base0D - *.color5: base0E - *.color6: base0C - *.color7: base05 - *.color8: base03 - *.color9: base09 - *.color10: base01 - *.color11: base02 - *.color12: base04 - *.color13: base06 - *.color14: base0F - *.color15: base07 - ! ------------------------------------------------------------------------------ - ! ROFI Color theme & Settings - ! ------------------------------------------------------------------------------ - rofi.modi: run - rofi.opacity: 85 - rofi.width: 100 - rofi.lines: 3 - rofi.padding: 450 - rofi.bw: 0 - rofi.eh: 2 - rofi.color-enabled: true - rofi.color-window: #393939, #393939, #268bd2 - rofi.color-normal: #393939, #ffffff, #393939, #268bd2, #ffffff - rofi.color-active: #393939, #268bd2, #393939, #268bd2, #205171 - rofi.color-urgent: #393939, #f3843d, #393939, #268bd2, #ffc39c - ''}" - - DISPLAY=:0.1 ${pkgs.windowmaker}/bin/wmaker & - ''; - }; -} diff --git a/devhell/services/services_titan.nix b/devhell/services/services_titan.nix deleted file mode 100644 index a4ed892c..00000000 --- a/devhell/services/services_titan.nix +++ /dev/null @@ -1,90 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - imports = [ ./services_common.nix ]; - - services = { - tftpd.enable = false; - gnome3.gnome-keyring.enable = true; - printing.enable = false; - }; - - services.acpid = { - enable = true; - lidEventCommands = '' - LID="/proc/acpi/button/lid/LID/state" - state=`cat $LID | ${pkgs.gawk}/bin/awk '{print $2}'` - case "$state" in - *open*) ;; - *close*) systemctl suspend ;; - *) logger -t lid-handler "Failed to detect lid state ($state)" ;; - esac - ''; - }; - - services.xserver = { - enable = true; - layout = "gb"; - videoDrivers = [ "intel" ]; - - synaptics = { - enable = true; - twoFingerScroll = true; - palmDetect = true; - }; - - displayManager.sessionCommands = '' - ${pkgs.xbindkeys}/bin/xbindkeys & - ${pkgs.nitrogen}/bin/nitrogen --restore & - #${pkgs.networkmanagerapplet}/bin/nm-applet & - ${pkgs.connmanui}/bin/connman-ui-gtk & - ${pkgs.xscreensaver}/bin/xscreensaver -no-splash & - ${pkgs.pasystray}/bin/pasystray & - ${pkgs.compton}/bin/compton -f & - ${pkgs.rofi}/bin/rofi & - ${pkgs.xorg.xrdb}/bin/xrdb "${pkgs.writeText "xrdb.conf" '' - Xft.dpi: 96 - Xft.antialias: true - Xft.hinting: full - Xft.hintstyle: hintslight - Xft.rgba: rgb - Xft.lcdfilter: lcddefault - Xft.autohint: 1 - Xcursor.theme: Vanilla-DMZ-AA - Xcursor.size: 22 - *.charClass:33:48,35:48,37:48,43:48,45-47:48,61:48,63:48,64:48,95:48,126:48,35:48,58:48 - *background: #121212 - *foreground: #babdb6 - ${lib.concatMapStrings (xterm: '' - ${xterm}.termName: xterm-256color - ${xterm}*bellIsUrgent: true - ${xterm}*utf8: 1 - ${xterm}*locale: true - ${xterm}*utf8Title: true - ${xterm}*utf8Fonts: 1 - ${xterm}*utf8Latin1: true - ${xterm}*dynamicColors: true - ${xterm}*eightBitInput: true - ${xterm}*faceName: xft:DejaVu Sans Mono for Powerline:pixelsize=9:antialias=true:hinting=true - ${xterm}*faceNameDoublesize: xft:Unifont:pixelsize=12:antialias=true:hinting=true - ${xterm}*cursorColor: #545f65 - '') [ "UXTerm" "XTerm" ]} - ! ------------------------------------------------------------------------------ - ! ROFI Color theme & Settings - ! ------------------------------------------------------------------------------ - rofi.modi: run - rofi.opacity: 85 - rofi.width: 100 - rofi.lines: 3 - rofi.padding: 300 - rofi.bw: 0 - rofi.eh: 2 - rofi.color-enabled: true - rofi.color-window: #393939, #393939, #268bd2 - rofi.color-normal: #393939, #ffffff, #393939, #268bd2, #ffffff - rofi.color-active: #393939, #268bd2, #393939, #268bd2, #205171 - rofi.color-urgent: #393939, #f3843d, #393939, #268bd2, #ffc39c - ''}" - ''; - }; -} diff --git a/machines/devhell/eris.nix b/machines/devhell/eris.nix index cce2d6b0..e6c13079 100644 --- a/machines/devhell/eris.nix +++ b/machines/devhell/eris.nix @@ -60,4 +60,143 @@ consoleKeyMap = "uk"; defaultLocale = "en_GB.UTF-8"; }; + + #### Machine-specific service configuration #### + + vuizvui.user.devhell.profiles.services.enable = true; + + services = { + tftpd.enable = true; + gnome3.gnome-keyring.enable = true; + printing.enable = false; + }; + + services.udev = { + extraRules = '' + SUBSYSTEM=="firmware", ACTION=="add", ATTR{loading}="-1" + ''; + }; + + services.acpid = { + enable = true; + lidEventCommands = '' + LID="/proc/acpi/button/lid/LID/state" + state=`cat $LID | ${pkgs.gawk}/bin/awk '{print $2}'` + case "$state" in + *open*) ;; + *close*) systemctl suspend ;; + *) logger -t lid-handler "Failed to detect lid state ($state)" ;; + esac + ''; + }; + + services.xserver = { + enable = true; + layout = "gb"; + videoDrivers = [ "intel" ]; + + synaptics = { + enable = true; + twoFingerScroll = true; + palmDetect = true; + }; + + # XXX: Factor out and make DRY, because a lot of the stuff here is + # duplicated in the other machine configurations. + displayManager.sessionCommands = '' + ${pkgs.xorg.xsetroot}/bin/xsetroot -solid black + ${pkgs.networkmanagerapplet}/bin/nm-applet & + ${pkgs.pasystray}/bin/pasystray & + #${pkgs.compton}/bin/compton -f & + ${pkgs.rofi}/bin/rofi & + ${pkgs.xorg.xrdb}/bin/xrdb "${pkgs.writeText "xrdb.conf" '' + Xft.dpi: 96 + Xft.antialias: true + Xft.hinting: full + Xft.hintstyle: hintslight + Xft.rgba: rgb + Xft.lcdfilter: lcddefault + Xft.autohint: 1 + Xcursor.theme: Vanilla-DMZ-AA + Xcursor.size: 22 + *.charClass:33:48,35:48,37:48,43:48,45-47:48,61:48,63:48,64:48,95:48,126:48,35:48,58:48 + *background: #121212 + *foreground: #babdb6 + ${lib.concatMapStrings (xterm: '' + ${xterm}.termName: xterm-256color + ${xterm}*bellIsUrgent: true + ${xterm}*utf8: 1 + ${xterm}*locale: true + ${xterm}*utf8Title: true + ${xterm}*utf8Fonts: 1 + ${xterm}*utf8Latin1: true + ${xterm}*dynamicColors: true + ${xterm}*eightBitInput: true + ${xterm}*faceName: xft:DejaVu Sans Mono for Powerline:pixelsize=9:antialias=true:hinting=true + ${xterm}*faceNameDoublesize: xft:Unifont:pixelsize=12:antialias=true:hinting=true + ${xterm}*cursorColor: #545f65 + '') [ "UXTerm" "XTerm" ]} + ! ------------------------------------------------------------------------------ + ! ROFI Color theme & Settings + ! ------------------------------------------------------------------------------ + rofi.modi: run + rofi.opacity: 85 + rofi.width: 100 + rofi.lines: 3 + rofi.padding: 300 + rofi.bw: 0 + rofi.eh: 2 + rofi.color-enabled: true + rofi.color-window: #393939, #393939, #268bd2 + rofi.color-normal: #393939, #ffffff, #393939, #268bd2, #ffffff + rofi.color-active: #393939, #268bd2, #393939, #268bd2, #205171 + rofi.color-urgent: #393939, #f3843d, #393939, #268bd2, #ffc39c + ''}" + ''; + }; + + services.tlp = { + enable = true; + extraConfig = '' + TLP_ENABLE = 1 + DISK_IDLE_SECS_ON_BAT=2 + MAX_LOST_WORK_SECS_ON_AC=15 + MAX_LOST_WORK_SECS_ON_BAT=60 + SCHED_POWERSAVE_ON_AC=0 + SCHED_POWERSAVE_ON_BAT=1 + NMI_WATCHDOG=0 + DISK_DEVICES="sda sdb" + DISK_APM_LEVEL_ON_AC="254 254" + DISK_APM_LEVEL_ON_BAT="254 127" + DISK_IOSCHED="noop cfq" + SATA_LINKPWR_ON_AC=max_performance + SATA_LINKPWR_ON_BAT=min_power + PCIE_ASPM_ON_AC=performance + PCIE_ASPM_ON_BAT=powersave + WIFI_PWR_ON_AC=1 + WIFI_PWR_ON_BAT=5 + WOL_DISABLE=Y + SOUND_POWER_SAVE_ON_AC=0 + SOUND_POWER_SAVE_ON_BAT=1 + SOUND_POWER_SAVE_CONTROLLER=Y + RUNTIME_PM_ON_AC=on + RUNTIME_PM_ON_BAT=auto + RUNTIME_PM_ALL=1 + USB_AUTOSUSPEND=1 + USB_BLACKLIST_WWAN=1 + RESTORE_DEVICE_STATE_ON_STARTUP=0 + DEVICES_TO_DISABLE_ON_STARTUP="bluetooth wwan" + DEVICES_TO_ENABLE_ON_STARTUP="wifi" + DEVICES_TO_DISABLE_ON_SHUTDOWN="bluetooth wifi wwan" + #DEVICES_TO_ENABLE_ON_SHUTDOWN="" + START_CHARGE_THRESH_BAT0=75 + STOP_CHARGE_THRESH_BAT0=80 + #DEVICES_TO_DISABLE_ON_LAN_CONNECT="wifi wwan" + #DEVICES_TO_DISABLE_ON_WIFI_CONNECT="wwan" + #DEVICES_TO_DISABLE_ON_WWAN_CONNECT="wifi" + #DEVICES_TO_ENABLE_ON_LAN_DISCONNECT="wifi wwan" + #DEVICES_TO_ENABLE_ON_WIFI_DISCONNECT="" + #DEVICES_TO_ENABLE_ON_WWAN_DISCONNECT="" + ''; + }; } diff --git a/machines/devhell/skunkworks.nix b/machines/devhell/skunkworks.nix index 91ed886b..b5d2912d 100644 --- a/machines/devhell/skunkworks.nix +++ b/machines/devhell/skunkworks.nix @@ -80,4 +80,167 @@ ${pkgs.hdparm}/sbin/hdparm -B 255 \ /dev/disk/by-id/ata-ST31500541AS_6XW0P0CW ''; + + #### Machine-specific service configuration #### + + vuizvui.user.devhell.profiles.services.enable = true; + + services = { + printing = { + enable = true; + drivers = [ pkgs.hplipWithPlugin ]; + }; + timesyncd.enable = true; + resolved.enable = true; + canto-daemon.enable = true; + }; + + services.xserver = { + enable = true; + layout = "us"; + xkbVariant = "dvorak"; + videoDrivers = [ "ati" ]; + + serverLayoutSection = '' + Screen "Center/Right" + Screen "Left" LeftOf "Center/Right" + ''; + + config = '' + Section "ServerLayout" + Identifier "Multihead layout" + Screen "Center/Right" + Screen "Left" LeftOf "Center/Right" + EndSection + + Section "Device" + Identifier "Radeon HD 4650 PCIEx8" + Driver "radeon" + BusId "PCI:2:0:0" + + Option "monitor-DVI-1" "Left monitor" + EndSection + + Section "Device" + Identifier "Radeon HD 4650 PCIEx16" + Driver "radeon" + BusID "PCI:1:0:0" + + Option "monitor-DVI-0" "Center monitor" + Option "monitor-HDMI-0" "Right monitor" + EndSection + + Section "Screen" + Identifier "Center/Right" + Monitor "Left monitor" + Device "Radeon HD 4650 PCIEx16" + EndSection + + Section "Screen" + Identifier "Left" + Device "Radeon HD 4650 PCIEx8" + EndSection + + Section "Monitor" + Identifier "Left monitor" + EndSection + + Section "Monitor" + Identifier "Center monitor" + Option "LeftOf" "Right monitor" + Option "Primary" "true" + EndSection + + Section "Monitor" + Identifier "Right monitor" + EndSection + ''; + + # XXX: Factor out and make DRY, because a lot of the stuff here is + # duplicated in the other machine configurations. + displayManager.sessionCommands = '' + ${pkgs.xorg.xsetroot}/bin/xsetroot -solid black + ${pkgs.xscreensaver}/bin/xscreensaver -no-splash & + ${pkgs.rofi}/bin/rofi & + ${pkgs.xorg.xrdb}/bin/xrdb "${pkgs.writeText "xrdb.conf" '' + Xft.dpi: 96 + Xft.antialias: true + Xft.hinting: full + Xft.hintstyle: hintslight + Xft.rgba: rgb + Xft.lcdfilter: lcddefault + Xft.autohint: 1 + XTerm.termName: xterm-256color + XTerm*bellIsUrgent: true + XTerm*utf8: 1 + XTerm*locale: true + XTerm*utf8Title: true + XTerm*utf8Fonts: true + XTerm*utf8Latin1: true + XTerm*dynamicColors: true + XTerm*eightBitInput: true + Xcursor.theme: Vanilla-DMZ-AA + Xcursor.size: 22 + *.charClass:33:48,35:48,37:48,43:48,45-47:48,61:48,63:48,64:48,95:48,126:48,35:48,58:48 + XTerm*faceName: xft:DejaVu Sans Mono for Powerline:pixelsize=12:antialias=true:hinting=true + XTerm*faceNameDoublesize: xft:Unifont:pixelsize=12:antialias=true:hinting=true + XTerm*cursorColor: #545f65 + XTerm*saveLines: 10000 + ! Base16 Twilight + ! Scheme: David Hart (http://hart-dev.com) + #define base00 #1e1e1e + #define base01 #323537 + #define base02 #464b50 + #define base03 #5f5a60 + #define base04 #838184 + #define base05 #a7a7a7 + #define base06 #c3c3c3 + #define base07 #ffffff + #define base08 #cf6a4c + #define base09 #cda869 + #define base0A #f9ee98 + #define base0B #8f9d6a + #define base0C #afc4db + #define base0D #7587a6 + #define base0E #9b859d + #define base0F #9b703f + *.foreground: base05 + *.background: base00 + *.cursorColor: base05 + *.color0: base00 + *.color1: base08 + *.color2: base0B + *.color3: base0A + *.color4: base0D + *.color5: base0E + *.color6: base0C + *.color7: base05 + *.color8: base03 + *.color9: base09 + *.color10: base01 + *.color11: base02 + *.color12: base04 + *.color13: base06 + *.color14: base0F + *.color15: base07 + ! ------------------------------------------------------------------------------ + ! ROFI Color theme & Settings + ! ------------------------------------------------------------------------------ + rofi.modi: run + rofi.opacity: 85 + rofi.width: 100 + rofi.lines: 3 + rofi.padding: 450 + rofi.bw: 0 + rofi.eh: 2 + rofi.color-enabled: true + rofi.color-window: #393939, #393939, #268bd2 + rofi.color-normal: #393939, #ffffff, #393939, #268bd2, #ffffff + rofi.color-active: #393939, #268bd2, #393939, #268bd2, #205171 + rofi.color-urgent: #393939, #f3843d, #393939, #268bd2, #ffc39c + ''}" + + DISPLAY=:0.1 ${pkgs.windowmaker}/bin/wmaker & + ''; + }; } diff --git a/machines/devhell/titan.nix b/machines/devhell/titan.nix index abc640da..23b967d2 100644 --- a/machines/devhell/titan.nix +++ b/machines/devhell/titan.nix @@ -65,4 +65,95 @@ consoleKeyMap = "uk"; defaultLocale = "en_GB.UTF-8"; }; + + #### Machine-specific service configuration #### + + vuizvui.user.devhell.profiles.services.enable = true; + + services = { + tftpd.enable = false; + gnome3.gnome-keyring.enable = true; + printing.enable = false; + }; + + services.acpid = { + enable = true; + lidEventCommands = '' + LID="/proc/acpi/button/lid/LID/state" + state=`cat $LID | ${pkgs.gawk}/bin/awk '{print $2}'` + case "$state" in + *open*) ;; + *close*) systemctl suspend ;; + *) logger -t lid-handler "Failed to detect lid state ($state)" ;; + esac + ''; + }; + + services.xserver = { + enable = true; + layout = "gb"; + videoDrivers = [ "intel" ]; + + synaptics = { + enable = true; + twoFingerScroll = true; + palmDetect = true; + }; + + # XXX: Factor out and make DRY, because a lot of the stuff here is + # duplicated in the other machine configurations. + displayManager.sessionCommands = '' + ${pkgs.xbindkeys}/bin/xbindkeys & + ${pkgs.nitrogen}/bin/nitrogen --restore & + #${pkgs.networkmanagerapplet}/bin/nm-applet & + ${pkgs.connmanui}/bin/connman-ui-gtk & + ${pkgs.xscreensaver}/bin/xscreensaver -no-splash & + ${pkgs.pasystray}/bin/pasystray & + ${pkgs.compton}/bin/compton -f & + ${pkgs.rofi}/bin/rofi & + ${pkgs.xorg.xrdb}/bin/xrdb "${pkgs.writeText "xrdb.conf" '' + Xft.dpi: 96 + Xft.antialias: true + Xft.hinting: full + Xft.hintstyle: hintslight + Xft.rgba: rgb + Xft.lcdfilter: lcddefault + Xft.autohint: 1 + Xcursor.theme: Vanilla-DMZ-AA + Xcursor.size: 22 + *.charClass:33:48,35:48,37:48,43:48,45-47:48,61:48,63:48,64:48,95:48,126:48,35:48,58:48 + *background: #121212 + *foreground: #babdb6 + ${lib.concatMapStrings (xterm: '' + ${xterm}.termName: xterm-256color + ${xterm}*bellIsUrgent: true + ${xterm}*utf8: 1 + ${xterm}*locale: true + ${xterm}*utf8Title: true + ${xterm}*utf8Fonts: 1 + ${xterm}*utf8Latin1: true + ${xterm}*dynamicColors: true + ${xterm}*eightBitInput: true + ${xterm}*faceName: xft:DejaVu Sans Mono for Powerline:pixelsize=9:antialias=true:hinting=true + ${xterm}*faceNameDoublesize: xft:Unifont:pixelsize=12:antialias=true:hinting=true + ${xterm}*cursorColor: #545f65 + '') [ "UXTerm" "XTerm" ]} + ! ------------------------------------------------------------------------------ + ! ROFI Color theme & Settings + ! ------------------------------------------------------------------------------ + rofi.modi: run + rofi.opacity: 85 + rofi.width: 100 + rofi.lines: 3 + rofi.padding: 300 + rofi.bw: 0 + rofi.eh: 2 + rofi.color-enabled: true + rofi.color-window: #393939, #393939, #268bd2 + rofi.color-normal: #393939, #ffffff, #393939, #268bd2, #ffffff + rofi.color-active: #393939, #268bd2, #393939, #268bd2, #205171 + rofi.color-urgent: #393939, #f3843d, #393939, #268bd2, #ffc39c + ''}" + ''; + }; } diff --git a/modules/module-list.nix b/modules/module-list.nix index 33ac6af6..fbd5334c 100644 --- a/modules/module-list.nix +++ b/modules/module-list.nix @@ -30,6 +30,7 @@ ./user/aszlig/services/vlock ./user/aszlig/system/kernel.nix ./user/devhell/profiles/base.nix + ./user/devhell/profiles/services.nix ./user/openlab/base.nix ./user/openlab/labtops.nix ./user/openlab/stackenblocken.nix 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" + ''; + }; + }; +} -- cgit 1.4.1