From 1a1d58a199ae0e3b437b9146cbf225ff92a52659 Mon Sep 17 00:00:00 2001 From: Evie Litherland-Smith Date: Thu, 11 Apr 2024 22:38:26 +0100 Subject: [PATCH] Move anything that's no hyprland-specific into desktop.nix --- system/desktop.nix | 174 ++++++++++++++++++++++++++++++++++++-------- system/hyprland.nix | 131 +++------------------------------ 2 files changed, 151 insertions(+), 154 deletions(-) diff --git a/system/desktop.nix b/system/desktop.nix index a4c8bde9..89762f80 100644 --- a/system/desktop.nix +++ b/system/desktop.nix @@ -1,34 +1,74 @@ { + lib, pkgs, user, ... }: { - imports = [./default.nix]; - environment.systemPackages = with pkgs; [ - libnotify - libcamera - glib - gsettings-desktop-schemas - hunspell - hunspellDicts.en_GB-large - xarchiver - libreoffice-fresh - zathura - inkscape - noson - tagger - webcord - signal-desktop - remmina - nomachine-client - ]; + imports = [./default.nix ./firefox.nix]; + nixpkgs.config.chromium.commandLineArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland"; + environment = { + sessionVariables = { + NIXOS_OZONE_WL = "1"; + XDG_SESSION_TYPE = "wayland"; + GRIM_DEFAULT_DIR = "$HOME/Pictures/Grim"; + }; + systemPackages = with pkgs; [ + wtype + wl-clipboard + xdg-utils + libnotify + libcamera + glib + gsettings-desktop-schemas + hunspell + hunspellDicts.en_GB-large + swayimg + swaylock-effects + pamixer + pavucontrol + playerctl + brightnessctl + mpv + xarchiver + libreoffice-fresh + zathura + inkscape + noson + tagger + webcord + signal-desktop + remmina + nomachine-client + ]; + }; security = { + pam.services.swaylock = {}; polkit.enable = true; rtkit.enable = true; }; sound.enable = false; hardware.bluetooth.enable = true; + programs = { + dconf.enable = true; + light.enable = true; + noisetorch.enable = true; + thunar = { + enable = true; + plugins = with pkgs.xfce; [thunar-archive-plugin thunar-volman]; + }; + }; + gtk.iconCache.enable = true; + qt = { + enable = true; + platformTheme = "gtk2"; + style = "gtk2"; + }; services = { + blueman.enable = true; + gvfs = { + enable = true; + package = lib.mkForce pkgs.gnome3.gvfs; + }; accounts-daemon.enable = true; dbus.packages = with pkgs; [gcr]; greetd = { @@ -46,20 +86,90 @@ pulse.enable = true; wireplumber.enable = true; }; - xserver.xkb = { - layout = "gb"; - variant = ""; - options = "ctrl:nocaps"; + tumbler.enable = true; + udisks2.enable = true; + xserver = { + enable = false; + xkb = { + layout = "gb"; + variant = ""; + options = "ctrl:nocaps"; + }; }; }; - programs = { - dconf.enable = true; - noisetorch.enable = true; - }; - gtk.iconCache.enable = true; - qt = { - enable = true; - platformTheme = "gtk2"; - style = "gtk2"; + xdg = { + portal.enable = true; + mime = let + emacs = ["emacsclient.desktop" "emacs.desktop"]; + browser = ["firefox.desktop"]; + applications = { + "inode/directory" = ["thunar.desktop"]; + "inode/symlink" = ["thunar.desktop"]; + + "image/jpeg" = ["swayimg.desktop"]; + "image/png" = ["swayimg.desktop"]; + "video/mp4" = ["mpv.desktop"]; + + "text/plain" = emacs; + "text/richtext" = emacs; + "text/org" = emacs; + "text/markdown" = emacs; + "text/rust" = emacs; + "text/csv" = emacs; + "text/html" = emacs; + "text/css" = emacs; + "text/tab-separated-values" = emacs; + + "text/x-emacs-lisp" = emacs; + "text/x-fortran" = emacs; + "text/x-idl" = emacs; + "text/x-log" = emacs; + "text/x-lua" = emacs; + "text/x-makefile" = emacs; + "text/x-python" = emacs; + "text/x-python3" = emacs; + "text/x-readme" = emacs; + "text/x-scheme" = emacs; + "text/x-tex" = emacs; + "text/x-texinfo" = emacs; + + "application/json" = emacs; + "application/toml" = emacs; + "application/yaml" = emacs; + "application/xml" = emacs; + "application/rss+xml" = emacs; + "application/xhtml+xml" = emacs; + "application/oxps" = emacs; + "application/x-shellscript" = emacs; + + "application/pdf" = ["org.pwmt.zathura.desktop"]; + "application/epub+zip" = ["org.pwmt.zathura.desktop"]; + "application/msword" = ["writer.desktop"]; + "application/zip" = ["xarchiver.desktop"]; + + "application/x-extension-htm" = browser; + "application/x-extension-html" = browser; + "application/x-extension-shtml" = browser; + "application/x-extension-xhtml" = browser; + "application/x-extension-xht" = browser; + "application/x-mozilla-bookmarks" = browser; + + "x-scheme-handler/http" = browser; + "x-scheme-handler/https" = browser; + "x-scheme-handler/about" = browser; + "x-scheme-handler/chrome" = browser; + "x-scheme-handler/webcal" = browser; + "x-scheme-handler/unknown" = emacs; + + "x-scheme-handler/ms-word" = ["writer.desktop"]; + "x-scheme-handler/ms-powerpoint" = ["impress.desktop"]; + "x-scheme-handler/ms-excel" = ["calc.desktop"]; + }; + in { + enable = true; + defaultApplications = applications; + addedAssociations = applications; + removedAssociations = {"x-scheme-handler/zoomus" = browser;}; + }; }; } diff --git a/system/hyprland.nix b/system/hyprland.nix index 5a0b8e67..090738f4 100644 --- a/system/hyprland.nix +++ b/system/hyprland.nix @@ -1,136 +1,23 @@ -{ - lib, - pkgs, - ... -}: { - imports = [./desktop.nix ./firefox.nix]; - nixpkgs.config.chromium.commandLineArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland"; +{pkgs, ...}: { + imports = [./desktop.nix]; environment = { sessionVariables = { - NIXOS_OZONE_WL = "1"; - XDG_SESSION_TYPE = "wayland"; XDG_SESSION_DESKTOP = "Hyprland"; XDG_CURRENT_DESKTOP = "Hyprland"; - GRIM_DEFAULT_DIR = "$HOME/Pictures/Grim"; }; systemPackages = with pkgs; [ - wtype - wl-clipboard - xdg-utils hyprpaper hyprpicker - swaylock-effects - swayimg - pamixer - pavucontrol - playerctl - brightnessctl - mpv ]; }; - security.pam.services = { - swaylock = {}; - hyprlock = {}; - }; - services = { - xserver.enable = false; - blueman.enable = true; - udisks2.enable = true; - tumbler.enable = true; - gvfs = { - enable = true; - package = lib.mkForce pkgs.gnome3.gvfs; - }; - greetd.settings = let - command = "Hyprland"; - in { - default_session = {inherit command;}; - initial_session = {inherit command;}; - }; - }; - xdg.portal.enable = true; - xdg.mime = let - emacs = ["emacsclient.desktop" "emacs.desktop"]; - browser = ["firefox.desktop"]; - applications = { - "inode/directory" = ["thunar.desktop"]; - "inode/symlink" = ["thunar.desktop"]; - - "image/jpeg" = ["swayimg.desktop"]; - "image/png" = ["swayimg.desktop"]; - "video/mp4" = ["mpv.desktop"]; - - "text/plain" = emacs; - "text/richtext" = emacs; - "text/org" = emacs; - "text/markdown" = emacs; - "text/rust" = emacs; - "text/csv" = emacs; - "text/html" = emacs; - "text/css" = emacs; - "text/tab-separated-values" = emacs; - - "text/x-emacs-lisp" = emacs; - "text/x-fortran" = emacs; - "text/x-idl" = emacs; - "text/x-log" = emacs; - "text/x-lua" = emacs; - "text/x-makefile" = emacs; - "text/x-python" = emacs; - "text/x-python3" = emacs; - "text/x-readme" = emacs; - "text/x-scheme" = emacs; - "text/x-tex" = emacs; - "text/x-texinfo" = emacs; - - "application/json" = emacs; - "application/toml" = emacs; - "application/yaml" = emacs; - "application/xml" = emacs; - "application/rss+xml" = emacs; - "application/xhtml+xml" = emacs; - "application/oxps" = emacs; - "application/x-shellscript" = emacs; - - "application/pdf" = ["org.pwmt.zathura.desktop"]; - "application/epub+zip" = ["org.pwmt.zathura.desktop"]; - "application/msword" = ["writer.desktop"]; - "application/zip" = ["xarchiver.desktop"]; - - "application/x-extension-htm" = browser; - "application/x-extension-html" = browser; - "application/x-extension-shtml" = browser; - "application/x-extension-xhtml" = browser; - "application/x-extension-xht" = browser; - "application/x-mozilla-bookmarks" = browser; - - "x-scheme-handler/http" = browser; - "x-scheme-handler/https" = browser; - "x-scheme-handler/about" = browser; - "x-scheme-handler/chrome" = browser; - "x-scheme-handler/webcal" = browser; - "x-scheme-handler/unknown" = emacs; - - "x-scheme-handler/ms-word" = ["writer.desktop"]; - "x-scheme-handler/ms-powerpoint" = ["impress.desktop"]; - "x-scheme-handler/ms-excel" = ["calc.desktop"]; - }; + services.greetd.settings = let + command = "Hyprland"; in { - enable = true; - defaultApplications = applications; - addedAssociations = applications; - removedAssociations = {"x-scheme-handler/zoomus" = browser;}; + default_session = {inherit command;}; + initial_session = {inherit command;}; }; - programs = { - dconf.enable = true; - light.enable = true; - thunar = { - enable = true; - plugins = with pkgs.xfce; [thunar-archive-plugin thunar-volman]; - }; - hyprland = { - enable = true; - xwayland.enable = true; - }; + programs.hyprland = { + enable = true; + xwayland.enable = true; }; }