From 2db5f3bfc1ca506f37058b645716d3df09485998 Mon Sep 17 00:00:00 2001 From: Ethan Lane Date: Thu, 15 Aug 2024 17:27:32 +0100 Subject: [PATCH] Add virt-manager --- ; | 156 ++++++++++++++++++++++++++++++++++++++++++++++ system/shared.nix | 8 ++- 2 files changed, 163 insertions(+), 1 deletion(-) create mode 100644 ; diff --git a/; b/; new file mode 100644 index 0000000..b81f9aa --- /dev/null +++ b/; @@ -0,0 +1,156 @@ +{pkgs, user, ...}: { + + documentation.nixos.enable = false; + + nix = { + settings = { + warn-dirty = false; + experimental-features = "nix-command flakes"; + auto-optimise-store = true; + substituters = ["https://nix-gaming.cachix.org"]; + trusted-public-keys = ["nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4="]; + }; + }; + + nixpkgs = { + config = { + allowUnfree = true; + }; + }; + + boot = { + kernelParams = ["nohibernate"]; + tmp.cleanOnBoot = true; + loader = { + efi.canTouchEfiVariables = true; + grub = { + device = "nodev"; + efiSupport = true; + enable = true; + useOSProber = true; + timeoutStyle = "menu"; + }; + timeout = 300; + }; + }; + + networking = { + networkmanager.enable = true; + enableIPv6 = false; + }; + + time.timeZone = "Europe/London"; + + i18n.defaultLocale = "en_GB.UTF-8"; + + security = { + rtkit.enable = true; + pam.services.lightdm.enableGnomeKeyring = true; + }; + + services = { + flatpak.enable = true; + dbus.enable = true; + picom.enable = true; + gnome.gnome-keyring.enable = true; + + pipewire = { + enable = true; + pulse.enable = true; + alsa.enable = true; + alsa.support32Bit = true; + }; + + xserver = { + enable = true; + xkb.layout = "us"; + + windowManager.i3 = { + enable = true; + extraSessionCommands = '' + eval $(${pkgs.gnome3.gnome-keyring}/bin/gnome-keyring-daemon --daemonize --components=ssh,secrets) + export SSH_AUTH_SOCK + ''; + }; + + displayManager = { + lightdm.enable = true; + lightdm.greeters.gtk.enable = true; + }; + }; + }; + + users.users.vylpes = { + isNormalUser = true; + extraGroups = [ + "docker" + "flatpak" + "wheel" + ]; + shell = pkgs.zsh; + }; + + programs.steam = { + enable = true; + remotePlay.openFirewall = true; + }; + + programs.virt-manager.enable = true; + + programs.zsh = { + enable = true; + promptInit = "source ${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme"; + + shellAliases = { + lss = "ls -lah"; + + gss = "git status -s"; + gaa = "git add -A"; + gcm = "git commit -m"; + gco = "git checkout"; + + yt-mp3 = "yt-dlp -xi --audio-format mp3"; + yt-mp3-meta = "yt-dlp -xi --audio-format mp3 --parse-metadata \"playlist_index:%(track_number)s\" --add-metadata"; + yt-mp3-meta-cookies = "yt-dlp -xi --audio-format mp3 --parse-metadata \"playlist_index:%(track_number)s\" --add-metadata --cookies-from-browser firefox"; + }; + }; + + programs.neovim.defaultEditor = true; + + fonts = { + packages = with pkgs; [ + noto-fonts + noto-fonts-cjk + noto-fonts-emoji + font-awesome + hack-font + ]; + fontconfig = { + enable = true; + defaultFonts = { + monospace = ["Hack"]; + serif = ["Noto Serif" "Source Han Serif"]; + sansSerif = ["Noto Sans" "Source Han Sans"]; + }; + }; + }; + + environment.systemPackages = with pkgs; [ + docker + gnome.gnome-keyring + ]; + + virtualisation = { + docker.enable = true; + }; + + xdg.portal = { + enable = true; + config.common.default = "*"; + extraPortals = [pkgs.xdg-desktop-portal-gtk]; + }; + + hardware.opengl.enable = true; + + system.stateVersion = "24.05"; +} diff --git a/system/shared.nix b/system/shared.nix index 81c2cbd..b7bd239 100644 --- a/system/shared.nix +++ b/system/shared.nix @@ -85,6 +85,7 @@ extraGroups = [ "docker" "flatpak" + "libvirtd" "wheel" ]; shell = pkgs.zsh; @@ -95,6 +96,8 @@ remotePlay.openFirewall = true; }; + programs.virt-manager.enable = true; + programs.zsh = { enable = true; promptInit = "source ${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme"; @@ -138,7 +141,10 @@ gnome.gnome-keyring ]; - virtualisation.docker.enable = true; + virtualisation = { + docker.enable = true; + libvirtd.enable = true; + }; xdg.portal = { enable = true;