diff --git a/hosts/edison/configuration.nix b/hosts/edison/configuration.nix index 18be10e..5db65ab 100644 --- a/hosts/edison/configuration.nix +++ b/hosts/edison/configuration.nix @@ -6,10 +6,11 @@ ../../base.nix ../../common/metrics-exporters.nix ./hardware-configuration.nix - ./desktop.nix + ./desktop ]; virtualisation.docker.enable = true; + systemd.coredump.enable = true; networking = { hostName = "edison"; @@ -29,14 +30,19 @@ environment.variables = { EDITOR = "vim"; }; environment.systemPackages = with pkgs; [ - pavucontrol + discord + gimp gparted + openvpn + pavucontrol + unstable.element-desktop unstable.hydrus ]; programs.steam.enable = true; nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ + "discord" "nvidia-x11" "nvidia-settings" "steam" diff --git a/hosts/edison/desktop.nix b/hosts/edison/desktop.nix deleted file mode 100644 index 534eeeb..0000000 --- a/hosts/edison/desktop.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ config, pkgs, lib, ... }: -{ - services.xserver = { - enable = true; - desktopManager.xfce.enable = true; - videoDrivers = [ "nvidia" ]; - layout = "us,no"; - xkbVariant = "intl"; - }; - - services.openssh.settings.X11Forwarding = true; - - environment.systemPackages = with pkgs; [ - xfce.xfce4-pulseaudio-plugin - ]; - - services.picom.enable = true; - hardware.opengl.enable = true; - - services.pipewire = { - enable = true; - alsa.enable = true; - pulse.enable = true; - jack.enable = true; - }; - - fonts = { - fontDir.enable = true; - packages = with pkgs; [ - noto-fonts - noto-fonts-emoji - noto-fonts-cjk-sans - font-awesome - fira-code - hack-font - (nerdfonts.override { - fonts = [ - "Hack" - ]; - }) - ]; - }; - - # Remote: - services.xrdp = { - enable = true; - defaultWindowManager = "xfce4-session"; - openFirewall = true; - }; - - security.polkit.enable = true; - services.flatpak.enable = true; - users.users."felixalb".packages = [ pkgs.flatpak ]; - xdg.portal = { - enable = true; - extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; - }; -} diff --git a/hosts/edison/desktop/default.nix b/hosts/edison/desktop/default.nix new file mode 100644 index 0000000..51cf7e2 --- /dev/null +++ b/hosts/edison/desktop/default.nix @@ -0,0 +1,91 @@ +{ config, pkgs, lib, ... }: +{ + imports = [ + ./remote.nix + ./gnome.nix + ./xfce.nix + ]; + + services.xserver = { + enable = true; + displayManager.gdm = { + enable = true; + wayland = true; + }; + videoDrivers = [ "nvidia" ]; + xkbOptions = "ctrl:nocaps"; + layout = "no,us"; + xkbVariant = "intl"; + }; + + #hardware.nvidia.modesetting.enable = true; # TODO: Fix this. Steam crashes, and textures/fonts unload when suspended. + hardware.keyboard.zsa.enable = true; + environment.sessionVariables.NIXOS_OZONE_WL = "1"; + + environment.systemPackages = with pkgs; [ + xclip + ]; + + hardware.opengl.enable = true; + + # Audio + services.pipewire = { + enable = true; + alsa.enable = true; + pulse.enable = true; + jack.enable = true; + }; + hardware.pulseaudio.enable = false; + + # Fonts + fonts = { + fontDir.enable = true; + packages = with pkgs; [ + noto-fonts + noto-fonts-emoji + noto-fonts-cjk-sans + font-awesome + fira-code + hack-font + (nerdfonts.override { + fonts = [ + "Hack" + ]; + }) + ]; + }; + + # Dark mode + home-manager.users.felixalb = { + dconf.settings = { + "org/gnome/desktop/interface" = { + color-scheme = "prefer-dark"; + }; + }; + + gtk = { + enable = true; + theme = { + name = "Adwaita-dark"; + package = pkgs.gnome.gnome-themes-extra; + }; + }; + }; + + qt = { + enable = true; + platformTheme = "gnome"; + style = "adwaita-dark"; + }; + + # Misc: + xdg.portal = { + enable = true; + wlr.enable = true; + }; + location.provider = "geoclue2"; + security.polkit.enable = true; + services.flatpak.enable = true; + services.redshift.enable = true; + users.users."felixalb".packages = [ pkgs.flatpak ]; +} diff --git a/hosts/edison/desktop/gnome.nix b/hosts/edison/desktop/gnome.nix new file mode 100644 index 0000000..bb305fe --- /dev/null +++ b/hosts/edison/desktop/gnome.nix @@ -0,0 +1,10 @@ +{ config, pkgs, lib, ... }: +{ + services.xserver.desktopManager.gnome.enable = true; + environment.systemPackages = with pkgs; [ + gnomeExtensions.appindicator + gnome.adwaita-icon-theme + ]; + services.udev.packages = with pkgs; [ gnome.gnome-settings-daemon ]; + programs.dconf.enable = true; +} diff --git a/hosts/edison/desktop/remote.nix b/hosts/edison/desktop/remote.nix new file mode 100644 index 0000000..b5076cd --- /dev/null +++ b/hosts/edison/desktop/remote.nix @@ -0,0 +1,12 @@ +{ config, pkgs, lib, ... }: +{ + # Microsoft-style Remote Desktop: + services.xrdp = { + enable = true; + defaultWindowManager = "xfce4-session"; # Avoid fancy animations, no hyprland/GNOME! + openFirewall = true; + }; + + # X window forwarding with `ssh -Y` + services.openssh.settings.X11Forwarding = true; +} diff --git a/hosts/edison/desktop/xfce.nix b/hosts/edison/desktop/xfce.nix new file mode 100644 index 0000000..1592e46 --- /dev/null +++ b/hosts/edison/desktop/xfce.nix @@ -0,0 +1,10 @@ +{ config, pkgs, lib, ... }: +{ + services.xserver = { + desktopManager.xfce.enable = true; + }; + + environment.systemPackages = with pkgs; [ + xfce.xfce4-pulseaudio-plugin + ]; +} diff --git a/hosts/edison/home.nix b/hosts/edison/home.nix index 180a1f5..d82f0e2 100644 --- a/hosts/edison/home.nix +++ b/hosts/edison/home.nix @@ -2,7 +2,17 @@ { home.packages = with pkgs; [ nix-index - ]; + unstable.snicat + + python3 + ] ++ (with python3Packages; [ + beautifulsoup4 + numpy + pillow + pwntools + pycryptodome + requests + ]); imports = [ ./../../home/base.nix diff --git a/shells/ctf.nix b/shells/ctf.nix index 0b503e9..e67ab81 100644 --- a/shells/ctf.nix +++ b/shells/ctf.nix @@ -53,7 +53,6 @@ in { pkgs ? import {} }: gdb pwndbg ropgadget - ropper wireshark tcpdump ];