diff options
Diffstat (limited to 'nixos/modules')
-rw-r--r-- | nixos/modules/installer/tools/nixos-prepare-root.sh | 2 | ||||
-rw-r--r-- | nixos/modules/module-list.nix | 1 | ||||
-rw-r--r-- | nixos/modules/programs/zsh/zsh-syntax-highlighting.nix | 43 | ||||
-rw-r--r-- | nixos/modules/programs/zsh/zsh.nix | 16 | ||||
-rw-r--r-- | nixos/modules/rename.nix | 3 | ||||
-rw-r--r-- | nixos/modules/services/networking/avahi-daemon.nix | 8 | ||||
-rw-r--r-- | nixos/modules/services/networking/i2pd.nix | 5 | ||||
-rw-r--r-- | nixos/modules/services/x11/display-managers/slim.nix | 7 | ||||
-rw-r--r-- | nixos/modules/virtualisation/google-compute-image.nix | 100 | ||||
-rw-r--r-- | nixos/modules/virtualisation/qemu-vm.nix | 13 |
10 files changed, 89 insertions, 109 deletions
diff --git a/nixos/modules/installer/tools/nixos-prepare-root.sh b/nixos/modules/installer/tools/nixos-prepare-root.sh index c374330f8464..cd786c47ef68 100644 --- a/nixos/modules/installer/tools/nixos-prepare-root.sh +++ b/nixos/modules/installer/tools/nixos-prepare-root.sh @@ -70,7 +70,7 @@ for i in $closures; do rsync -a $j $mountPoint/nix/store/ done - nix-store --register-validity < $i + nix-store --option build-users-group root --register-validity < $i fi done diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 6e99ead58622..4ff069f48ab4 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -104,6 +104,7 @@ ./programs/xonsh.nix ./programs/zsh/oh-my-zsh.nix ./programs/zsh/zsh.nix + ./programs/zsh/zsh-syntax-highlighting.nix ./rename.nix ./security/acme.nix ./security/apparmor.nix diff --git a/nixos/modules/programs/zsh/zsh-syntax-highlighting.nix b/nixos/modules/programs/zsh/zsh-syntax-highlighting.nix new file mode 100644 index 000000000000..962c1f920a86 --- /dev/null +++ b/nixos/modules/programs/zsh/zsh-syntax-highlighting.nix @@ -0,0 +1,43 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.programs.zsh.syntax-highlighting; +in + { + options = { + programs.zsh.syntax-highlighting = { + enable = mkOption { + default = false; + type = types.bool; + description = '' + Enable zsh-syntax-highlighting. + ''; + }; + + highlighters = mkOption { + default = [ "main" ]; + type = types.listOf(types.str); + description = '' + Specifies the highlighters to be used by zsh-syntax-highlighting. + + The following defined options can be found here: + https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters.md + ''; + }; + }; + }; + + config = mkIf cfg.enable { + environment.systemPackages = with pkgs; [ zsh-syntax-highlighting ]; + + programs.zsh.interactiveShellInit = with pkgs; with builtins; '' + source ${zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh + + ${optionalString (length(cfg.highlighters) > 0) + "ZSH_HIGHLIGHT_HIGHLIGHTERS=(${concatStringsSep " " cfg.highlighters})" + } + ''; + }; + } diff --git a/nixos/modules/programs/zsh/zsh.nix b/nixos/modules/programs/zsh/zsh.nix index a39c06c09139..acb3e987aee6 100644 --- a/nixos/modules/programs/zsh/zsh.nix +++ b/nixos/modules/programs/zsh/zsh.nix @@ -84,14 +84,6 @@ in type = types.bool; }; - enableSyntaxHighlighting = mkOption { - default = false; - description = '' - Enable zsh-syntax-highlighting - ''; - type = types.bool; - }; - enableAutosuggestions = mkOption { default = false; description = '' @@ -99,7 +91,6 @@ in ''; }; - }; }; @@ -131,10 +122,6 @@ in ${if cfg.enableCompletion then "autoload -U compinit && compinit" else ""} - ${optionalString (cfg.enableSyntaxHighlighting) - "source ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" - } - ${optionalString (cfg.enableAutosuggestions) "source ${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh" } @@ -206,8 +193,7 @@ in environment.etc."zinputrc".source = ./zinputrc; environment.systemPackages = [ pkgs.zsh ] - ++ optional cfg.enableCompletion pkgs.nix-zsh-completions - ++ optional cfg.enableSyntaxHighlighting pkgs.zsh-syntax-highlighting; + ++ optional cfg.enableCompletion pkgs.nix-zsh-completions; environment.pathsToLink = optional cfg.enableCompletion "/share/zsh"; diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix index 0174fe544e35..8a313f6c7fca 100644 --- a/nixos/modules/rename.nix +++ b/nixos/modules/rename.nix @@ -204,5 +204,8 @@ with lib; "Set the option `services.xserver.displayManager.sddm.package' instead.") (mkRemovedOptionModule [ "fonts" "fontconfig" "forceAutohint" ] "") (mkRemovedOptionModule [ "fonts" "fontconfig" "renderMonoTTFAsBitmap" ] "") + + # ZSH + (mkRenamedOptionModule [ "programs" "zsh" "enableSyntaxHighlighting" ] [ "programs" "zsh" "syntax-highlighting" "enable" ]) ]; } diff --git a/nixos/modules/services/networking/avahi-daemon.nix b/nixos/modules/services/networking/avahi-daemon.nix index 3985f8561d35..f4d0fc822dea 100644 --- a/nixos/modules/services/networking/avahi-daemon.nix +++ b/nixos/modules/services/networking/avahi-daemon.nix @@ -33,6 +33,9 @@ let publish-hinfo=${yesNo publish.hinfo} publish-workstation=${yesNo publish.workstation} publish-domain=${yesNo publish.domain} + + [reflector] + enable-reflector=${yesNo reflector} ''; in @@ -113,6 +116,11 @@ in description = ''Whether to enable wide-area service discovery.''; }; + reflector = mkOption { + default = false; + description = ''Reflect incoming mDNS requests to all allowed network interfaces.''; + }; + publish = { enable = mkOption { default = false; diff --git a/nixos/modules/services/networking/i2pd.nix b/nixos/modules/services/networking/i2pd.nix index 24a3196bed46..4e176353fc28 100644 --- a/nixos/modules/services/networking/i2pd.nix +++ b/nixos/modules/services/networking/i2pd.nix @@ -8,8 +8,6 @@ let homeDir = "/var/lib/i2pd"; - extip = "EXTIP=\$(${pkgs.curl.bin}/bin/curl -sLf \"http://jsonip.com\" | ${pkgs.gawk}/bin/awk -F'\"' '{print $4}')"; - mkEndpointOpt = name: addr: port: { enable = mkEnableOption name; name = mkOption { @@ -152,9 +150,8 @@ let i2pdSh = pkgs.writeScriptBin "i2pd" '' #!/bin/sh - ${if isNull cfg.extIp then extip else ""} ${pkgs.i2pd}/bin/i2pd \ - --host=${if isNull cfg.extIp then "$EXTIP" else cfg.extIp} \ + ${if isNull cfg.extIp then "" else "--host="+cfg.extIp} \ --conf=${i2pdConf} \ --tunconf=${i2pdTunnelConf} ''; diff --git a/nixos/modules/services/x11/display-managers/slim.nix b/nixos/modules/services/x11/display-managers/slim.nix index 05b979eef47f..0c4dd1973b53 100644 --- a/nixos/modules/services/x11/display-managers/slim.nix +++ b/nixos/modules/services/x11/display-managers/slim.nix @@ -17,6 +17,7 @@ let login_cmd exec ${pkgs.stdenv.shell} ${dmcfg.session.script} "%session" halt_cmd ${config.systemd.package}/sbin/shutdown -h now reboot_cmd ${config.systemd.package}/sbin/shutdown -r now + logfile /dev/stderr ${optionalString (cfg.defaultUser != null) ("default_user " + cfg.defaultUser)} ${optionalString (cfg.defaultUser != null) ("focus_password yes")} ${optionalString cfg.autoLogin "auto_login yes"} @@ -128,11 +129,7 @@ in config = mkIf cfg.enable { services.xserver.displayManager.job = - { preStart = - '' - rm -f /var/log/slim.log - ''; - environment = + { environment = { SLIM_CFGFILE = slimConfig; SLIM_THEMESDIR = slimThemesDir; }; diff --git a/nixos/modules/virtualisation/google-compute-image.nix b/nixos/modules/virtualisation/google-compute-image.nix index 5673d55b3394..d41bb71f4cbf 100644 --- a/nixos/modules/virtualisation/google-compute-image.nix +++ b/nixos/modules/virtualisation/google-compute-image.nix @@ -2,7 +2,7 @@ with lib; let - diskSize = "1G"; + diskSize = 1024; # MB in { imports = [ ../profiles/headless.nix ../profiles/qemu-guest.nix ./grow-partition.nix ]; @@ -10,89 +10,21 @@ in # https://cloud.google.com/compute/docs/tutorials/building-images networking.firewall.enable = mkDefault false; - system.build.googleComputeImage = - pkgs.vmTools.runInLinuxVM ( - pkgs.runCommand "google-compute-image" - { preVM = - '' - mkdir $out - diskImage=$out/$diskImageBase - truncate $diskImage --size ${diskSize} - mv closure xchg/ - ''; - - postVM = - '' - PATH=$PATH:${pkgs.stdenv.lib.makeBinPath [ pkgs.gnutar pkgs.gzip ]} - pushd $out - mv $diskImageBase disk.raw - tar -Szcf $diskImageBase.tar.gz disk.raw - rm $out/disk.raw - popd - ''; - diskImageBase = "nixos-image-${config.system.nixosLabel}-${pkgs.stdenv.system}.raw"; - buildInputs = [ pkgs.utillinux pkgs.perl ]; - exportReferencesGraph = - [ "closure" config.system.build.toplevel ]; - } - '' - # Create partition table - ${pkgs.parted}/sbin/parted /dev/vda mklabel msdos - ${pkgs.parted}/sbin/parted /dev/vda mkpart primary ext4 1 ${diskSize} - ${pkgs.parted}/sbin/parted /dev/vda print - . /sys/class/block/vda1/uevent - mknod /dev/vda1 b $MAJOR $MINOR - - # Create an empty filesystem and mount it. - ${pkgs.e2fsprogs}/sbin/mkfs.ext4 -L nixos /dev/vda1 - ${pkgs.e2fsprogs}/sbin/tune2fs -c 0 -i 0 /dev/vda1 - - mkdir /mnt - mount /dev/vda1 /mnt - - # The initrd expects these directories to exist. - mkdir /mnt/dev /mnt/proc /mnt/sys - - mount --bind /proc /mnt/proc - mount --bind /dev /mnt/dev - mount --bind /sys /mnt/sys - - # Copy all paths in the closure to the filesystem. - storePaths=$(perl ${pkgs.pathsFromGraph} /tmp/xchg/closure) - - mkdir -p /mnt/nix/store - echo "copying everything (will take a while)..." - ${pkgs.rsync}/bin/rsync -a $storePaths /mnt/nix/store/ - - # Register the paths in the Nix database. - printRegistration=1 perl ${pkgs.pathsFromGraph} /tmp/xchg/closure | \ - chroot /mnt ${config.nix.package.out}/bin/nix-store --load-db --option build-users-group "" - - # Create the system profile to allow nixos-rebuild to work. - chroot /mnt ${config.nix.package.out}/bin/nix-env \ - -p /nix/var/nix/profiles/system --set ${config.system.build.toplevel} \ - --option build-users-group "" - - # `nixos-rebuild' requires an /etc/NIXOS. - mkdir -p /mnt/etc - touch /mnt/etc/NIXOS - - # `switch-to-configuration' requires a /bin/sh - mkdir -p /mnt/bin - ln -s ${config.system.build.binsh}/bin/sh /mnt/bin/sh - - # Install a configuration.nix. - mkdir -p /mnt/etc/nixos /mnt/boot/grub - cp ${./google-compute-config.nix} /mnt/etc/nixos/configuration.nix - - # Generate the GRUB menu. - ln -s vda /dev/sda - chroot /mnt ${config.system.build.toplevel}/bin/switch-to-configuration boot - - umount /mnt/proc /mnt/dev /mnt/sys - umount /mnt - '' - ); + system.build.googleComputeImage = import ../../lib/make-disk-image.nix { + name = "google-compute-image"; + postVM = '' + PATH=$PATH:${pkgs.stdenv.lib.makeBinPath [ pkgs.gnutar pkgs.gzip ]} + pushd $out + mv $diskImage disk.raw + tar -Szcf nixos-image-${config.system.nixosLabel}-${pkgs.stdenv.system}.tar.gz disk.raw + rm $out/disk.raw + popd + ''; + configFile = ./google-compute-config.nix; + format = "raw"; + inherit diskSize; + inherit config lib pkgs; + }; fileSystems."/" = { device = "/dev/disk/by-label/nixos"; diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix index 1933f11d1fff..c75edfcd8cf6 100644 --- a/nixos/modules/virtualisation/qemu-vm.nix +++ b/nixos/modules/virtualisation/qemu-vm.nix @@ -75,6 +75,7 @@ let exec ${qemu}/bin/qemu-kvm \ -name ${vmName} \ -m ${toString config.virtualisation.memorySize} \ + -smp ${toString config.virtualisation.cores} \ ${optionalString (pkgs.stdenv.system == "x86_64-linux") "-cpu kvm64"} \ ${concatStringsSep " " config.virtualisation.qemu.networkingOptions} \ -virtfs local,path=/nix/store,security_model=none,mount_tag=store \ @@ -244,6 +245,18 @@ in ''; }; + virtualisation.cores = + mkOption { + default = 1; + type = types.int; + description = + '' + Specify the number of cores the guest is permitted to use. + The number can be higher than the available cores on the + host system. + ''; + }; + virtualisation.pathsInNixDB = mkOption { default = []; |