From 58d39aa41a1a9ea5ffb475a36a0325851dbe4877 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kier=C3=A1n=20Meinhardt?= Date: Wed, 29 Dec 2021 18:49:51 +0100 Subject: [PATCH] chore: move configs to system directories --- configs/default.nix | 8 -- configs/hass/default.nix | 61 --------- configs/hass/frontend.nix | 37 ----- configs/hass/lib.nix | 16 --- configs/hass/themes/clear-dark.nix | 72 ---------- configs/hass/themes/clear.nix | 52 ------- configs/hass/zigbee.nix | 102 -------------- .../{monitoring/push.nix => monitoring.nix} | 0 configs/nano.nix | 10 -- configs/nix.nix | 7 + systems/kabsa/configuration.nix | 34 ++--- systems/kabsa/hardware-configuration.nix | 42 ++++-- systems/makanek/configuration.nix | 73 ++++------ {configs => systems/makanek}/gitea.nix | 0 systems/makanek/hardware-configuration.nix | 30 ++-- {configs => systems/makanek}/hedgedoc.nix | 0 {configs => systems/makanek}/matterbridge.nix | 0 {configs => systems/makanek}/menstruation.nix | 0 .../makanek}/monitoring/blackbox.nix | 0 .../makanek/monitoring/default.nix | 0 .../makanek}/monitoring/loki.nix | 0 .../makanek/moodle-dl-borsfaye.nix | 0 {configs => systems/makanek}/names.nix | 0 {configs => systems/makanek}/nextcloud.nix | 0 .../makanek}/radio/default.nix | 0 .../makanek}/radio/station-list.nix | 0 {configs => systems/makanek}/retiolum-map.nix | 0 {configs => systems/makanek}/tarot.nix | 0 {configs => systems/makanek}/urlwatch.nix | 0 {configs => systems/makanek}/weechat.nix | 0 systems/manakish/configuration.nix | 45 ++---- systems/manakish/hardware-configuration.nix | 49 ++++--- systems/manakish/hdmi.nix | 13 ++ systems/toum/configuration.nix | 46 ------- systems/toum/hardware-configuration.nix | 16 --- {configs => systems/zaatar}/bvg.nix | 0 systems/zaatar/configuration.nix | 128 ++++-------------- {configs => systems/zaatar}/gaslight.nix | 0 systems/zaatar/hardware-configuration.nix | 37 +++-- systems/zaatar/kiosk.nix | 31 +++++ .../zaatar/moodle-dl-meinhark.nix | 0 systems/zaatar/pulseaudio.nix | 14 ++ {configs => systems/zaatar}/tuna.nix | 0 43 files changed, 234 insertions(+), 689 deletions(-) delete mode 100644 configs/hass/default.nix delete mode 100644 configs/hass/frontend.nix delete mode 100644 configs/hass/lib.nix delete mode 100644 configs/hass/themes/clear-dark.nix delete mode 100644 configs/hass/themes/clear.nix delete mode 100644 configs/hass/zigbee.nix rename configs/{monitoring/push.nix => monitoring.nix} (100%) delete mode 100644 configs/nano.nix rename {configs => systems/makanek}/gitea.nix (100%) rename {configs => systems/makanek}/hedgedoc.nix (100%) rename {configs => systems/makanek}/matterbridge.nix (100%) rename {configs => systems/makanek}/menstruation.nix (100%) rename {configs => systems/makanek}/monitoring/blackbox.nix (100%) rename configs/monitoring/pull.nix => systems/makanek/monitoring/default.nix (100%) rename {configs => systems/makanek}/monitoring/loki.nix (100%) rename configs/moodle-dl/borsfaye.nix => systems/makanek/moodle-dl-borsfaye.nix (100%) rename {configs => systems/makanek}/names.nix (100%) rename {configs => systems/makanek}/nextcloud.nix (100%) rename {configs => systems/makanek}/radio/default.nix (100%) rename {configs => systems/makanek}/radio/station-list.nix (100%) rename {configs => systems/makanek}/retiolum-map.nix (100%) rename {configs => systems/makanek}/tarot.nix (100%) rename {configs => systems/makanek}/urlwatch.nix (100%) rename {configs => systems/makanek}/weechat.nix (100%) create mode 100644 systems/manakish/hdmi.nix delete mode 100644 systems/toum/configuration.nix delete mode 100644 systems/toum/hardware-configuration.nix rename {configs => systems/zaatar}/bvg.nix (100%) rename {configs => systems/zaatar}/gaslight.nix (100%) create mode 100644 systems/zaatar/kiosk.nix rename configs/moodle-dl/meinhark.nix => systems/zaatar/moodle-dl-meinhark.nix (100%) create mode 100644 systems/zaatar/pulseaudio.nix rename {configs => systems/zaatar}/tuna.nix (100%) diff --git a/configs/default.nix b/configs/default.nix index c9da785..a1697ae 100644 --- a/configs/default.nix +++ b/configs/default.nix @@ -20,16 +20,12 @@ in { config = { allowUnfree = true; packageOverrides = pkgs: { - writeDashBin = pkgs.writers.writeDashBin; - writeDash = pkgs.writers.writeDash; gfs-fonts = pkgs.callPackage {}; iolanguage = pkgs.callPackage { }; ix = pkgs.callPackage { }; }; }; overlays = [ - (import ) - (import ) (self: super: { scripts = import { pkgs = super; lib = super.lib; }; }) @@ -201,7 +197,6 @@ in { ./beets.nix ./bluetooth.nix ./ccc.nix - # ./kleiter.nix ./khal.nix ./engiadina.nix ./chromium.nix @@ -215,7 +210,6 @@ in { ./flix.nix ./fonts.nix ./fzf.nix - ./gaslight.nix ./git.nix ./hledger.nix ./htop.nix @@ -225,7 +219,6 @@ in { ./lb.nix ./mpv.nix ./mime.nix - ./nano.nix ./neovim.nix ./neomutt.nix ./nix.nix @@ -247,7 +240,6 @@ in { ./sxiv.nix ./theming.nix ./tmux.nix - # ./tor.nix ./traadfri.nix ./unclutter.nix ./version.nix diff --git a/configs/hass/default.nix b/configs/hass/default.nix deleted file mode 100644 index 924158b..0000000 --- a/configs/hass/default.nix +++ /dev/null @@ -1,61 +0,0 @@ -{ config, pkgs, lib, ... }: -let - inherit (import ./lib.nix) triggers; - inherit (import ) localAddresses; -in -{ - imports = [ - ./zigbee.nix - ./frontend.nix - ]; - - services.home-assistant = { - enable = true; - configWritable = true; - lovelaceConfigWritable = true; - openFirewall = true; - config = { - homeassistant = { - name = "Toum"; - latitude = config.location.latitude; - longitude = config.location.longitude; - elevation = 90; # TODO find out how high I live - unit_system = "metric"; - time_zone = config.time.timeZone; - }; - config = {}; - discovery = {}; - system_health = {}; - history = {}; - # tradfri.host = localAddresses.tradfri; # dont use until python3Packages.pytradfri is packaged - sun = {}; - mobile_app = {}; - shopping_list = {}; - sensor = [ - { - platform = "dwd_weather_warnings"; - region_name = "Berlin"; - } - ]; - mqtt = { - broker = "localhost"; - port = 1883; - client_id = "home-assistant"; - username = "albrecht"; - password = lib.strings.fileContents ; - keepalive = 60; - protocol = "3.1"; - - discovery = true; - birth_message = { - topic = "/hass/status"; - payload = "online"; - }; - will_message = { - topic = "/hass/status"; - payload = "offline"; - }; - }; - }; - }; -} diff --git a/configs/hass/frontend.nix b/configs/hass/frontend.nix deleted file mode 100644 index 2545a45..0000000 --- a/configs/hass/frontend.nix +++ /dev/null @@ -1,37 +0,0 @@ -let - inherit (import ./lib.nix) triggers; -in -{ - services.home-assistant.config = { - frontend = { - themes = { - day_theme = import ./themes/clear.nix; - night_theme = import ./themes/clear-dark.nix; - }; - }; - automation = [ - { - alias = "Night Theme"; - hide_entity = true; - trigger = triggers.night; - action = [ - { - service = "frontend.set_theme"; - data.name = "night_theme"; - } - ]; - } - { - alias = "Day Theme"; - hide_entity = true; - trigger = triggers.day; - action = [ - { - service = "frontend.set_theme"; - data.name = "day_theme"; - } - ]; - } - ]; - }; -} diff --git a/configs/hass/lib.nix b/configs/hass/lib.nix deleted file mode 100644 index 0af04fc..0000000 --- a/configs/hass/lib.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ - triggers = { - night = { - platform = "numeric_state"; - entity_id = "sun.sun"; - value_template = "{{ state.attributes.elevation }}"; - below = -4.0; - }; - day = { - platform = "numeric_state"; - entity_id = "sun.sun"; - value_template = "{{ state.attributes.elevation }}"; - above = 0; - }; - }; -} diff --git a/configs/hass/themes/clear-dark.nix b/configs/hass/themes/clear-dark.nix deleted file mode 100644 index 11a4b73..0000000 --- a/configs/hass/themes/clear-dark.nix +++ /dev/null @@ -1,72 +0,0 @@ -rec { -# Colors - text-color = "#DADADB"; # Grey text - text-medium-light-color = "#A0A2A8"; # Medium-light grey text - text-medium-color = "#80828A"; # Medium grey text - text-dark-color = "#6A6B74"; # Dark grey text - accent-color = "#008bef"; # Blue - accent-medium-color = "#2484C9"; # Decent blue - background-color = "#3b4049"; # Dark grey background - background-color-2 = "#484E59"; # Light grey background - background-card-color = "#434952"; # Grey background - border-color = "#383C46"; # Grey border - - # Header - app-header-background-color = "#363941"; # Background color - - # Text - primary-color = text-color; - text-primary-color = text-color; - - # Left Menu - paper-listbox-background-color = background-color; # Background - sidebar-icon-color = text-medium-color; # icons - sidebar-selected-icon-color = text-medium-light-color; # Selected row icon and background (15%) - sidebar-selected-text-color = text-color; # Selected row label - - # UI - paper-card-header-color = text-color; # Title in settings - primary-background-color = background-color; # Background (also title background in left menu) - mdc-theme-primary = accent-medium-color; # Action Buttons (save, restart etc.) - card-background-color = background-card-color; # Entity Registry Background - - # Card - paper-card-background-color = background-card-color; # Background - dark-primary-color = text-color; - primary-text-color = text-color; - paper-listbox-color = text-color; - light-primary-color = text-dark-color; - secondary-text-color = text-medium-color; - disabled-text-color = text-dark-color; - paper-dialog-button-color = text-color; - secondary-background-color = background-color-2; # Background more info title - - # Icons - paper-item-icon-color = text-dark-color; # Off - paper-item-icon-active-color = accent-color; # On - - # Switches - switch-checked-button-color = text-medium-light-color; # Knob On - switch-unchecked-button-color = text-medium-light-color; # Knob Off - switch-checked-track-color = "#009FFF"; # Background On - switch-unchecked-track-color = "#767682"; # Background Off - - # Slider - paper-slider-active-color = accent-color; # Line On - paper-slider-knob-color = text-medium-light-color; # Knob On - paper-slider-container-color = text-dark-color; # Line Off - paper-slider-knob-start-color = text-medium-light-color; # Knob Off - - # Badges - label-badge-text-color = text-color; - label-badge-background-color = "rgba(54, 57, 65, 0.6)"; - - # Shadows - ha-card-box-shadow = "inset 0px 0px 0px 1px var(--border-color)"; - - # HACS - hacs-badge-color = accent-color; # New Badge - hacs-status-installed = text-color; # Installed Icon - hacs-status-pending-restart = text-dark-color; # Restart Icon - hacs-status-pending-update = accent-color; -} diff --git a/configs/hass/themes/clear.nix b/configs/hass/themes/clear.nix deleted file mode 100644 index 64c18ec..0000000 --- a/configs/hass/themes/clear.nix +++ /dev/null @@ -1,52 +0,0 @@ -rec { - text-color = "#636B75"; # Grey text - text-medium-color = "#8c96a5"; # Medium grey text - text-light-color = "#BAC0C6"; # Light grey text - accent-color = "#00a1ff"; # Blue - background-color = "#F7F8F9"; # Light grey background - background-color-2 = "#F4F5F6"; # Light grey background - background-card-color = "rgba(255,255,255,1.0)"; # White background - border-color = "#E8E8E8"; # Light grey border - - # Header - primary-color = text-color; # Background - text-primary-color = "#FFF"; # Text - - # Left Menu - paper-listbox-background-color = background-color; # Background - # TODO = Text and Icons - - # UI - paper-card-header-color = text-color; # Title in settings - primary-background-color = background-color; # Background color (also title background in left menu) - - # Card - paper-card-background-color = background-card-color; # Background - dark-primary-color = text-color; - primary-text-color = text-color; - paper-listbox-color = text-color; - light-primary-color = text-light-color; - secondary-text-color = text-medium-color; - disabled-text-color = text-light-color; - paper-dialog-button-color = text-color; - secondary-background-color = background-color-2; # Background more info title - - # Icons - paper-item-icon-color = text-light-color; # Off - paper-item-icon-active-color = accent-color; # On - - # Switches - switch-checked-button-color = "#FFF"; # Knob On - switch-unchecked-button-color = "#FFF"; # Knob Off - switch-checked-track-color = "#0077FF"; # Background On - switch-unchecked-track-color = disabled-text-color; # Background Off - - # Slider - paper-slider-active-color = accent-color; # Line On - paper-slider-container-color = "#e5e7ea"; # Line Off - paper-slider-knob-color = text-light-color; # Knob On - paper-slider-knob-start-color = text-light-color; # Knob Off - - # Shadows - ha-card-box-shadow = "inset 0px 0px 0px 1px var(--border-color)"; -} diff --git a/configs/hass/zigbee.nix b/configs/hass/zigbee.nix deleted file mode 100644 index 7c117a9..0000000 --- a/configs/hass/zigbee.nix +++ /dev/null @@ -1,102 +0,0 @@ -{ config, pkgs, lib, ... }: -let - inherit (import ) localAddresses; -in -{ - services.zigbee2mqtt = { - enable = true; - config = { - permit_join = false; - homeassistant = true; - serial = { - port = "/dev/ttyACM0"; - disable_led = true; - }; - mqtt = { - discovery = true; - base_topic = "zigbee"; - server = "mqtt://${localAddresses.toum}"; - user = "albrecht"; - password = lib.strings.fileContents ; - }; - }; - }; - - services.mosquitto = { - enable = true; - host = "0.0.0.0"; - allowAnonymous = false; - checkPasswords = true; - users."albrecht" = { - password = lib.strings.fileContents ; - acl = [ "topic readwrite #" ]; - }; - }; - - networking.firewall.allowedTCPPorts = [ 1883 ]; - - environment.systemPackages = [ pkgs.mosquitto ]; - - services.home-assistant = { - config = { - switch = [ - { - platform = "mqtt"; - name = "zigbee2mqtt_join"; - state_topic = "/zigbee2mqtt/bridge/config/permit_join"; - command_topic = "/zigbee2mqtt/bridge/config/permit_join"; - payload_on = "true"; - payload_off = "false"; - } - ]; - timer.zigbee_permit_join = { - name = "Zigbee Time remaining"; - duration = 120; - }; - automation = [ - # Automation to start timer when enable join is turned on - { - id = "zigbee_join_enabled"; - alias = ""; - hide_entity = "true"; - trigger = { - platform = "state"; - entity_id = "switch.zigbee2mqtt_join"; - to = "on"; - }; - action = { - service = "timer.start"; - entity_id = "timer.zigbee_permit_join"; - }; - } - # Automation to stop timer when switch turned off and turn off switch when timer finished - { - id = "zigbee_join_disabled"; - hide_entity = "true"; - trigger = [ - { - platform = "event"; - event_type = "timer.finished"; - event_data.entity_id = "timer.zigbee_permit_join"; - } - { - platform = "state"; - entity_id = "switch.zigbee2mqtt_join"; - to = "off"; - } - ]; - action = [ - { - service = "timer.cancel"; - data.entity_id = "timer.zigbee_permit_join"; - } - { - service = "switch.turn_off"; - entity_id = "switch.zigbee2mqtt_join"; - } - ]; - } - ]; - }; - }; -} diff --git a/configs/monitoring/push.nix b/configs/monitoring.nix similarity index 100% rename from configs/monitoring/push.nix rename to configs/monitoring.nix diff --git a/configs/nano.nix b/configs/nano.nix deleted file mode 100644 index f038351..0000000 --- a/configs/nano.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ - programs.nano.nanorc = '' - set autoindent - set boldtext - set morespace - set smarthome - set tabsize 4 - set tabstospaces - ''; -} diff --git a/configs/nix.nix b/configs/nix.nix index dc8a092..a26f49e 100644 --- a/configs/nix.nix +++ b/configs/nix.nix @@ -1,5 +1,12 @@ { pkgs, ... }: { + nixpkgs = { + config.allowUnfree = true; + overlays = [ + (import ) + (import ) + ]; + }; # enable `nix flake` nix = { package = pkgs.nixFlakes; diff --git a/systems/kabsa/configuration.nix b/systems/kabsa/configuration.nix index 42dc0cf..2d11cfe 100644 --- a/systems/kabsa/configuration.nix +++ b/systems/kabsa/configuration.nix @@ -5,11 +5,10 @@ let in { imports = [ - - - ./hardware-configuration.nix - # + + + ]; niveum = { @@ -18,29 +17,18 @@ in promptColours.success = "cyan"; }; - nix.buildCores = 1; - nix.maxJobs = 2; + nix = { + buildCores = 1; + maxJobs = 2; + }; environment.systemPackages = [ nixpkgs-unstable.minecraft ]; - boot.loader.systemd-boot = { - enable = true; - configurationLimit = 5; - consoleMode = "max"; + networking = { + hostName = "kabsa"; + wireless.interfaces = [ "wlp3s0" ]; + retiolum = retiolumAddresses.kabsa; }; - fileSystems."/mnt/sd-card" = { - device = "/dev/disk/by-id/mmc-SD32G_0xda0aa352-part1"; - fsType = "vfat"; - }; - - boot.loader.efi.canTouchEfiVariables = true; - - networking.hostName = "kabsa"; - - networking.wireless.interfaces = [ "wlp3s0" ]; - - networking.retiolum = retiolumAddresses.kabsa; - system.stateVersion = "19.03"; } diff --git a/systems/kabsa/hardware-configuration.nix b/systems/kabsa/hardware-configuration.nix index 81b9f36..26d9b65 100644 --- a/systems/kabsa/hardware-configuration.nix +++ b/systems/kabsa/hardware-configuration.nix @@ -1,21 +1,37 @@ { config, lib, pkgs, ... }: { imports = [ ]; - boot.initrd.availableKernelModules = [ "ehci_pci" "ahci" "xhci_pci" "usb_storage" "sd_mod" "sdhci_pci" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; - - boot.initrd.luks.devices."luksmap".device = "/dev/disk/by-uuid/03b6abd0-e9ce-49c8-9659-a1d94f645d0f"; - - fileSystems."/" = { - device = "/dev/disk/by-uuid/66ced7b9-cfa7-40dd-a488-18ef91a337e0"; - fsType = "ext4"; + boot = { + initrd = { + availableKernelModules = [ "ehci_pci" "ahci" "xhci_pci" "usb_storage" "sd_mod" "sdhci_pci" ]; + luks.devices."luksmap".device = "/dev/disk/by-uuid/03b6abd0-e9ce-49c8-9659-a1d94f645d0f"; + kernelModules = [ ]; + }; + kernelModules = [ "kvm-intel" ]; + extraModulePackages = [ ]; + loader = { + efi.canTouchEfiVariables = true; + systemd-boot = { + enable = true; + configurationLimit = 5; + consoleMode = "max"; + }; + }; }; - fileSystems."/boot" = { - device = "/dev/disk/by-uuid/E1B1-1B9C"; - fsType = "vfat"; + fileSystems = { + "/" = { + device = "/dev/disk/by-uuid/66ced7b9-cfa7-40dd-a488-18ef91a337e0"; + fsType = "ext4"; + }; + "/boot" = { + device = "/dev/disk/by-uuid/E1B1-1B9C"; + fsType = "vfat"; + }; + "/mnt/sd-card" = { + device = "/dev/disk/by-id/mmc-SD32G_0xda0aa352-part1"; + fsType = "vfat"; + }; }; zramSwap.enable = false; diff --git a/systems/makanek/configuration.nix b/systems/makanek/configuration.nix index 5fe732b..8a2b82c 100644 --- a/systems/makanek/configuration.nix +++ b/systems/makanek/configuration.nix @@ -4,70 +4,47 @@ let in { imports = [ + ./gitea.nix ./hardware-configuration.nix - + ./hedgedoc.nix + ./matterbridge.nix + ./menstruation.nix + ./monitoring + ./moodle-dl-borsfaye.nix + ./names.nix + ./nextcloud.nix + ./radio + ./retiolum-map.nix + ./tarot.nix + ./urlwatch.nix + ./weechat.nix + + + - - - - - - - - - - - - - - - - + ]; - boot.loader.grub.enable = true; - boot.loader.grub.version = 2; - - nixpkgs.config = { - allowUnfree = true; - packageOverrides = pkgs: { - writeDashBin = pkgs.writers.writeDashBin; - writeDash = pkgs.writers.writeDash; - }; + networking = { + firewall.allowedTCPPorts = [ 80 443 ]; + hostName = "makanek"; + interfaces.ens3.useDHCP = true; + retiolum = retiolumAddresses.makanek; + useDHCP = false; }; - networking.useDHCP = false; - networking.interfaces.ens3.useDHCP = true; - - networking.hostName = "makanek"; - system.stateVersion = "20.03"; - boot.loader.grub.devices = [ "/dev/sda" ]; - - services.openssh.enable = true; - - networking.retiolum = retiolumAddresses.makanek; - - environment.etc."tinc/retiolum/rsa_key.priv" = { - text = builtins.readFile ; - mode = "400"; - }; - - networking.firewall.allowedTCPPorts = [ 80 443 ]; - services.nginx = { enable = true; recommendedGzipSettings = true; recommendedOptimisation = true; recommendedProxySettings = true; recommendedTlsSettings = true; - - # Only allow PFS-enabled ciphers with AES256 - sslCiphers = "AES256+EECDH:AES256+EDH:!aNULL"; + sslCiphers = "AES256+EECDH:AES256+EDH:!aNULL"; }; security.acme = { @@ -75,5 +52,5 @@ in email = kieran.email; }; - environment.systemPackages = [ pkgs.vim pkgs.git pkgs.tmux pkgs.python3Packages.python ]; + environment.systemPackages = [ pkgs.vim pkgs.git pkgs.tmux pkgs.python3 ]; } diff --git a/configs/gitea.nix b/systems/makanek/gitea.nix similarity index 100% rename from configs/gitea.nix rename to systems/makanek/gitea.nix diff --git a/systems/makanek/hardware-configuration.nix b/systems/makanek/hardware-configuration.nix index f2f557d..39696fd 100644 --- a/systems/makanek/hardware-configuration.nix +++ b/systems/makanek/hardware-configuration.nix @@ -1,19 +1,25 @@ { config, lib, pkgs, ... }: - { - imports = - [ - ]; + imports = [ ]; - boot.initrd.availableKernelModules = [ "ata_piix" "virtio_pci" "xhci_pci" "sd_mod" "sr_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { device = "/dev/disk/by-uuid/9eaeaaa7-b453-4634-8a69-d416f702d3aa"; - fsType = "ext4"; + boot = { + initrd = { + availableKernelModules = [ "ata_piix" "virtio_pci" "xhci_pci" "sd_mod" "sr_mod" ]; + kernelModules = [ ]; }; + kernelModules = [ ]; + extraModulePackages = [ ]; + loader.grub = { + enable = true; + version = 2; + devices = [ "/dev/sda" ]; + }; + }; + + fileSystems."/" = { + device = "/dev/disk/by-uuid/9eaeaaa7-b453-4634-8a69-d416f702d3aa"; + fsType = "ext4"; + }; swapDevices = [ ]; zramSwap.enable = true; diff --git a/configs/hedgedoc.nix b/systems/makanek/hedgedoc.nix similarity index 100% rename from configs/hedgedoc.nix rename to systems/makanek/hedgedoc.nix diff --git a/configs/matterbridge.nix b/systems/makanek/matterbridge.nix similarity index 100% rename from configs/matterbridge.nix rename to systems/makanek/matterbridge.nix diff --git a/configs/menstruation.nix b/systems/makanek/menstruation.nix similarity index 100% rename from configs/menstruation.nix rename to systems/makanek/menstruation.nix diff --git a/configs/monitoring/blackbox.nix b/systems/makanek/monitoring/blackbox.nix similarity index 100% rename from configs/monitoring/blackbox.nix rename to systems/makanek/monitoring/blackbox.nix diff --git a/configs/monitoring/pull.nix b/systems/makanek/monitoring/default.nix similarity index 100% rename from configs/monitoring/pull.nix rename to systems/makanek/monitoring/default.nix diff --git a/configs/monitoring/loki.nix b/systems/makanek/monitoring/loki.nix similarity index 100% rename from configs/monitoring/loki.nix rename to systems/makanek/monitoring/loki.nix diff --git a/configs/moodle-dl/borsfaye.nix b/systems/makanek/moodle-dl-borsfaye.nix similarity index 100% rename from configs/moodle-dl/borsfaye.nix rename to systems/makanek/moodle-dl-borsfaye.nix diff --git a/configs/names.nix b/systems/makanek/names.nix similarity index 100% rename from configs/names.nix rename to systems/makanek/names.nix diff --git a/configs/nextcloud.nix b/systems/makanek/nextcloud.nix similarity index 100% rename from configs/nextcloud.nix rename to systems/makanek/nextcloud.nix diff --git a/configs/radio/default.nix b/systems/makanek/radio/default.nix similarity index 100% rename from configs/radio/default.nix rename to systems/makanek/radio/default.nix diff --git a/configs/radio/station-list.nix b/systems/makanek/radio/station-list.nix similarity index 100% rename from configs/radio/station-list.nix rename to systems/makanek/radio/station-list.nix diff --git a/configs/retiolum-map.nix b/systems/makanek/retiolum-map.nix similarity index 100% rename from configs/retiolum-map.nix rename to systems/makanek/retiolum-map.nix diff --git a/configs/tarot.nix b/systems/makanek/tarot.nix similarity index 100% rename from configs/tarot.nix rename to systems/makanek/tarot.nix diff --git a/configs/urlwatch.nix b/systems/makanek/urlwatch.nix similarity index 100% rename from configs/urlwatch.nix rename to systems/makanek/urlwatch.nix diff --git a/configs/weechat.nix b/systems/makanek/weechat.nix similarity index 100% rename from configs/weechat.nix rename to systems/makanek/weechat.nix diff --git a/systems/manakish/configuration.nix b/systems/manakish/configuration.nix index a519e91..3d70689 100644 --- a/systems/manakish/configuration.nix +++ b/systems/manakish/configuration.nix @@ -1,7 +1,3 @@ -# Edit this configuration file to define what should be installed on -# your system. Help is available in the configuration.nix(5) man page -# and in the NixOS manual (accessible by running ‘nixos-help’). - { config, pkgs, ... }: let inherit (import ) retiolumAddresses; @@ -9,25 +5,10 @@ in { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix + ./hdmi.nix - { - programs.steam.enable = true; - nixpkgs.config.steam.java = true; - } - { - services.xserver.displayManager.sessionCommands = - let - intern = "LVDS-1"; - extern = "HDMI-1"; - pulseaudioCard = "alsa_card.pci-0000_00_1b.0"; - pulseaudioProfile = "output:hdmi-stereo+input:analog-stereo"; - in toString (pkgs.writers.writeDash "hdmi-on" '' - ${pkgs.xorg.xrandr}/bin/xrandr --output ${intern} --primary --auto --output ${extern} --above ${intern} --auto - ${pkgs.pulseaudio}/bin/pactl set-card-profile ${pulseaudioCard} ${pulseaudioProfile} - ''); - } ]; niveum = { @@ -36,21 +17,17 @@ in promptColours.success = "green"; }; - networking.useDHCP = false; - networking.interfaces = { - enp0s25.useDHCP = true; - wlp3s0.useDHCP = true; - wwp0s20u4i6.useDHCP = true; + networking = { + useDHCP = false; + interfaces = { + enp0s25.useDHCP = true; + wlp3s0.useDHCP = true; + wwp0s20u4i6.useDHCP = true; + }; + wireless.interfaces = [ "wlp3s0" ]; + retiolum = retiolumAddresses.manakish; + networking.hostName = "manakish"; }; - networking.wireless.interfaces = [ "wlp3s0" ]; - - environment.systemPackages = with pkgs; [ - git vim - ]; - - networking.retiolum = retiolumAddresses.manakish; - - networking.hostName = "manakish"; system.stateVersion = "20.09"; # Did you read the comment? } diff --git a/systems/manakish/hardware-configuration.nix b/systems/manakish/hardware-configuration.nix index b057864..90e014d 100644 --- a/systems/manakish/hardware-configuration.nix +++ b/systems/manakish/hardware-configuration.nix @@ -1,40 +1,37 @@ -# Do not modify this file! It was generated by ‘nixos-generate-config’ -# and may be overwritten by future invocations. Please make changes -# to /etc/nixos/configuration.nix instead. { config, lib, pkgs, modulesPath, ... }: - { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; - boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usb_storage" "sd_mod" "sdhci_pci" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; + boot = { + initrd = { + availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usb_storage" "sd_mod" "sdhci_pci" ]; + kernelModules = []; + luks.devices."crypted".device = "/dev/disk/by-uuid/493cb228-c292-4f71-9f38-dcb3e96dec47"; + }; + kernelModules = [ "kvm-intel" ]; + extraModulePackages = [ ]; + loader.grub = { + enable = true; + version = 2; + efiSupport = true; + efiInstallAsRemovable = true; + device = "/dev/sda"; + }; + }; - fileSystems."/" = - { device = "/dev/disk/by-uuid/ff47c479-e6d4-4cd6-93f1-9685f4018bc6"; + fileSystems = { + "/" = { + device = "/dev/disk/by-uuid/ff47c479-e6d4-4cd6-93f1-9685f4018bc6"; fsType = "ext4"; }; - - boot.initrd.luks.devices."crypted".device = "/dev/disk/by-uuid/493cb228-c292-4f71-9f38-dcb3e96dec47"; - - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/D4AC-91B0"; + "/boot" = { + device = "/dev/disk/by-uuid/D4AC-91B0"; fsType = "vfat"; }; + }; swapDevices = [ ]; zramSwap.enable = true; - boot.loader.grub = { - enable = true; - version = 2; - efiSupport = true; - efiInstallAsRemovable = true; - device = "/dev/sda"; - }; - powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; } diff --git a/systems/manakish/hdmi.nix b/systems/manakish/hdmi.nix new file mode 100644 index 0000000..b1e532b --- /dev/null +++ b/systems/manakish/hdmi.nix @@ -0,0 +1,13 @@ +{ pkgs, ... }: +{ + services.xserver.displayManager.sessionCommands = + let + intern = "LVDS-1"; + extern = "HDMI-1"; + pulseaudioCard = "alsa_card.pci-0000_00_1b.0"; + pulseaudioProfile = "output:hdmi-stereo+input:analog-stereo"; + in toString (pkgs.writers.writeDash "hdmi-on" '' + ${pkgs.xorg.xrandr}/bin/xrandr --output ${intern} --primary --auto --output ${extern} --above ${intern} --auto + ${pkgs.pulseaudio}/bin/pactl set-card-profile ${pulseaudioCard} ${pulseaudioProfile} + ''); +} diff --git a/systems/toum/configuration.nix b/systems/toum/configuration.nix deleted file mode 100644 index 7522e66..0000000 --- a/systems/toum/configuration.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ config, pkgs, lib, ... }: -let - inherit (import ) kieran; -in { - imports = [ - ./hardware-configuration.nix - # - - - - - - - - - - ]; - - nix.nixPath = [ "/var/src" ]; - - boot.loader.grub.enable = false; - boot.loader.generic-extlinux-compatible.enable = true; - - networking.hostName = "toum"; - - environment.variables.TERM = "linux"; - - environment.systemPackages = with pkgs; [ - git vim htop wget reptyr - libraspberrypi - ]; - - users.mutableUsers = false; - - networking.retiolum = { - ipv4 = "10.243.2.3"; - ipv6 = "42:0:3c46:56af:d12b:affd:8390:df22"; - }; - - environment.etc."tinc/retiolum/rsa_key.priv" = { - text = builtins.readFile ; - mode = "400"; - }; - - system.stateVersion = "20.03"; -} diff --git a/systems/toum/hardware-configuration.nix b/systems/toum/hardware-configuration.nix deleted file mode 100644 index d64c103..0000000 --- a/systems/toum/hardware-configuration.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ config, pkgs, ... }: { - boot.kernelPackages = pkgs.linuxPackages; # https://github.com/NixOS/nixpkgs/issues/97064#issuecomment-708986741 - boot.kernelParams = [ "cma=32M" ]; - - fileSystems = { - "/" = { - device = "/dev/disk/by-label/NIXOS_SD"; - fsType = "ext4"; - }; - }; - - swapDevices = [{ - device = "/swapfile"; - size = 1024; - }]; -} diff --git a/configs/bvg.nix b/systems/zaatar/bvg.nix similarity index 100% rename from configs/bvg.nix rename to systems/zaatar/bvg.nix diff --git a/systems/zaatar/configuration.nix b/systems/zaatar/configuration.nix index 35dcb65..28aa2a0 100644 --- a/systems/zaatar/configuration.nix +++ b/systems/zaatar/configuration.nix @@ -4,100 +4,24 @@ let in { imports = [ + ./bvg.nix + ./gaslight.nix ./hardware-configuration.nix + ./kiosk.nix + ./moodle-dl-meinhark.nix + ./pulseaudio.nix + ./tuna.nix - - - + - - - - + + - - - - { - nixpkgs.config.allowUnfree = true; - } - { - sound.enable = true; - - hardware.pulseaudio = { - enable = true; - systemWide = true; - tcp = { - enable = true; - anonymousClients.allowedIpRanges = [ "127.0.0.1" "10.243.2.0/24" "192.168.0.0/16" ]; - }; - zeroconf.publish.enable = true; - }; - networking.firewall.allowedTCPPorts = [ 4713 ]; - } - { - environment.systemPackages = - let - worldradio = pkgs.callPackage {}; - in [ - (pkgs.writers.writeDashBin "mpv" '' - ${pkgs.mpv}/bin/mpv --no-video "$@" - '') - (pkgs.writers.writeDashBin "worldradio" '' - shuf ${worldradio} | ${pkgs.findutils}/bin/xargs ${pkgs.mpv}/bin/mpv --no-video - '') - ]; - } - { - users.extraUsers.kiosk = { - isNormalUser = true; - password = ""; - extraGroups = [ "audio" ]; - }; - services.cage = { - enable = true; - user = config.users.extraUsers.kiosk.name; - extraArguments = [ "-s" ]; # allow vt switching - program = - let startUrls = [ "https://open.spotify.com" "https://youtube.com" "http://bvg.kmein.r" ]; - in pkgs.writers.writeDash "kiosk-browser" '' - while true; do - ${pkgs.chromium}/bin/chromium \ - --no-first-run --no-message-box --noerrdialogs \ - --default-browser --no-default-browser-check \ - --start-maximized ${lib.escapeShellArgs startUrls} - sleep 0.5 - done - ''; - }; - systemd.services.cage-tty1.environment.XKB_DEFAULT_LAYOUT = "de"; - programs.chromium = { - enable = true; - extensions = [ - "cjpalhdlnbpafiamejdnhcphjbkeiagm" # uBlock Origin - ]; - }; - } - { - environment.systemPackages = [ pkgs.tmux ]; - systemd.services.turntables = { - description = "music controller session"; - after = [ "network.target" ]; - wantedBy = [ "multi-user.target" ]; - path = [ pkgs.alacritty.terminfo ]; - script = '' - ${pkgs.tmux}/bin/tmux -2 new-session -d -s turntables ${pkgs.alsaUtils}/bin/alsamixer \; new-window - ''; - preStop = "${pkgs.tmux}/bin/tmux kill-session -t turntables"; - serviceConfig = { - User = "root"; - RemainAfterExit = true; - Type = "oneshot"; - }; - }; - } + + + ]; nix.nixPath = [ "/var/src" ]; @@ -110,19 +34,25 @@ in services.illum.enable = true; - environment.systemPackages = with pkgs; [ git vim htop ncmpcpp ]; + environment.systemPackages = + let + worldradio = pkgs.callPackage {}; + in [ + (pkgs.writers.writeDashBin "mpv" ''${pkgs.mpv}/bin/mpv --no-video "$@"'') + (pkgs.writers.writeDashBin "worldradio" '' + shuf ${worldradio} | ${pkgs.findutils}/bin/xargs ${pkgs.mpv}/bin/mpv --no-video + '') + pkgs.git + pkgs.vim + pkgs.htop + pkgs.ncmpcpp + ]; - boot.loader.systemd-boot = { - enable = true; - configurationLimit = 5; + networking = { + hostName = "zaatar"; + wireless.interfaces = [ "wlp2s0" ]; + retiolum = retiolumAddresses.zaatar; }; - boot.loader.efi.canTouchEfiVariables = true; - - networking.hostName = "zaatar"; - networking.wireless.interfaces = [ "wlp2s0" ]; - - networking.retiolum = retiolumAddresses.zaatar; - system.stateVersion = "20.09"; } diff --git a/configs/gaslight.nix b/systems/zaatar/gaslight.nix similarity index 100% rename from configs/gaslight.nix rename to systems/zaatar/gaslight.nix diff --git a/systems/zaatar/hardware-configuration.nix b/systems/zaatar/hardware-configuration.nix index c4dda88..a267769 100644 --- a/systems/zaatar/hardware-configuration.nix +++ b/systems/zaatar/hardware-configuration.nix @@ -1,23 +1,32 @@ -{ config, lib, pkgs, ... }: { +{ config, lib, pkgs, ... }: +{ imports = [ ]; - boot.initrd.availableKernelModules = - [ "ahci" "xhci_pci" "usb_storage" "sd_mod" "sdhci_acpi" "rtsx_usb_sdmmc" ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = { - device = "/dev/disk/by-label/nixos"; - fsType = "ext4"; + boot = { + initrd.availableKernelModules = [ "ahci" "xhci_pci" "usb_storage" "sd_mod" "sdhci_acpi" "rtsx_usb_sdmmc" ]; + kernelModules = [ "kvm-intel" ]; + extraModulePackages = [ ]; + loader = { + systemd-boot = { + enable = true; + configurationLimit = 5; + }; + efi.canTouchEfiVariables = true; + }; }; - fileSystems."/boot" = { - device = "/dev/disk/by-label/boot"; - fsType = "vfat"; + fileSystems = { + "/" = { + device = "/dev/disk/by-label/nixos"; + fsType = "ext4"; + }; + "/boot" = { + device = "/dev/disk/by-label/boot"; + fsType = "vfat"; + }; }; - swapDevices = - [{ device = "/dev/disk/by-label/swap"; }]; + swapDevices = [{ device = "/dev/disk/by-label/swap"; }]; nix.maxJobs = lib.mkDefault 4; powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; diff --git a/systems/zaatar/kiosk.nix b/systems/zaatar/kiosk.nix new file mode 100644 index 0000000..393700f --- /dev/null +++ b/systems/zaatar/kiosk.nix @@ -0,0 +1,31 @@ +{ config, pkgs, lib, ... }: +{ + users.extraUsers.kiosk = { + isNormalUser = true; + password = ""; + extraGroups = [ "audio" ]; + }; + services.cage = { + enable = true; + user = config.users.extraUsers.kiosk.name; + extraArguments = [ "-s" ]; # allow vt switching + program = + let startUrls = [ "https://open.spotify.com" "https://youtube.com" "http://bvg.kmein.r" ]; + in pkgs.writers.writeDash "kiosk-browser" '' + while true; do + ${pkgs.chromium}/bin/chromium \ + --no-first-run --no-message-box --noerrdialogs \ + --default-browser --no-default-browser-check \ + --start-maximized ${lib.escapeShellArgs startUrls} + sleep 0.5 + done + ''; + }; + systemd.services.cage-tty1.environment.XKB_DEFAULT_LAYOUT = "de"; + programs.chromium = { + enable = true; + extensions = [ + "cjpalhdlnbpafiamejdnhcphjbkeiagm" # uBlock Origin + ]; + }; +} diff --git a/configs/moodle-dl/meinhark.nix b/systems/zaatar/moodle-dl-meinhark.nix similarity index 100% rename from configs/moodle-dl/meinhark.nix rename to systems/zaatar/moodle-dl-meinhark.nix diff --git a/systems/zaatar/pulseaudio.nix b/systems/zaatar/pulseaudio.nix new file mode 100644 index 0000000..8f3420e --- /dev/null +++ b/systems/zaatar/pulseaudio.nix @@ -0,0 +1,14 @@ +{ + sound.enable = true; + + hardware.pulseaudio = { + enable = true; + systemWide = true; + tcp = { + enable = true; + anonymousClients.allowedIpRanges = [ "127.0.0.1" "10.243.2.0/24" "192.168.0.0/16" ]; + }; + zeroconf.publish.enable = true; + }; + networking.firewall.allowedTCPPorts = [ 4713 ]; +} diff --git a/configs/tuna.nix b/systems/zaatar/tuna.nix similarity index 100% rename from configs/tuna.nix rename to systems/zaatar/tuna.nix