From b94226b61b01d8ff0d27fe704d14c77f8a891131 Mon Sep 17 00:00:00 2001 From: Tyler Starr Date: Sat, 6 Apr 2024 12:44:23 -0700 Subject: [PATCH] initial switch for kestrel to gnome without home-manager --- provision/hosts/kestrel/configuration.nix | 3 +- provision/modules/desktop/default.nix | 60 ++++++++++++++++++++++- provision/modules/desktop/gnome.nix | 58 ++++++++++++++++++++++ provision/modules/desktop/sway.nix | 40 --------------- 4 files changed, 118 insertions(+), 43 deletions(-) create mode 100644 provision/modules/desktop/gnome.nix diff --git a/provision/hosts/kestrel/configuration.nix b/provision/hosts/kestrel/configuration.nix index 46e1cc53..c57d2687 100644 --- a/provision/hosts/kestrel/configuration.nix +++ b/provision/hosts/kestrel/configuration.nix @@ -78,7 +78,8 @@ # Enable modules modules = { desktop = { - sway.enable = true; + sway.enable = false; + gnome.enable = true; browser.enable = true; }; devel = { diff --git a/provision/modules/desktop/default.nix b/provision/modules/desktop/default.nix index 8e01d030..fa12d4e9 100644 --- a/provision/modules/desktop/default.nix +++ b/provision/modules/desktop/default.nix @@ -1,4 +1,60 @@ -{ ... }: +{ config, lib, pkgs, user, inputs, ... }: { - imports = [ ./browser.nix ./sway.nix ]; + imports = [ ./browser.nix ./gnome.nix ./sway.nix ]; + + environment.systemPackages = with pkgs; [ + bc + fzf + gamemode + discord + inkscape + libreoffice-fresh + xournal + mpv + p7zip + borgbackup + ]; + + # xdg-desktop-portal settings + services.dbus.enable = true; + xdg = { + mime = { + enable = true; + addedAssociations = { + "text/plain" = [ "nvim.desktop" ]; + "inode/directory" = [ "pcmanfm.desktop" ]; + "text/html" = [ "google-chrome.desktop" ]; + "x-scheme-handler/http" = [ "google-chrome.desktop" ]; + "x-scheme-handler/https" = [ "google-chrome.desktop" ]; + "x-scheme-handler/ftp" = [ "google-chrome.desktop" ]; + "x-scheme-handler/chrome" = [ "google-chrome.desktop" ]; + "x-scheme-handler/about" = [ "google-chrome.desktop" ]; + "x-scheme-handler/unknown" = [ "google-chrome.desktop" ]; + "application/x-extension-htm" = [ "google-chrome.desktop" ]; + "application/x-extension-html" = [ "google-chrome.desktop" ]; + "application/x-extension-shtml" = [ "google-chrome.desktop" ]; + "application/xhtml+xml" = [ "google-chrome.desktop" ]; + "application/x-extension-xhtml" = [ "google-chrome.desktop" ]; + "application/x-extension-xht" = [ "google-chrome.desktop" ]; + "application/pdf" = [ "google-chrome.desktop" ]; + }; + defaultApplications = { + "text/plain" = [ "nvim.desktop" ]; + "inode/directory" = [ "pcmanfm.desktop" ]; + "text/html" = [ "google-chrome.desktop" ]; + "x-scheme-handler/http" = [ "google-chrome.desktop" ]; + "x-scheme-handler/https" = [ "google-chrome.desktop" ]; + "x-scheme-handler/ftp" = [ "google-chrome.desktop" ]; + "x-scheme-handler/chrome" = [ "google-chrome.desktop" ]; + "x-scheme-handler/about" = [ "google-chrome.desktop" ]; + "x-scheme-handler/unknown" = [ "google-chrome.desktop" ]; + "application/x-extension-htm" = [ "google-chrome.desktop" ]; + "application/x-extension-html" = [ "google-chrome.desktop" ]; + "application/x-extension-shtml" = [ "google-chrome.desktop" ]; + "application/xhtml+xml" = [ "google-chrome.desktop" ]; + "application/x-extension-xhtml" = [ "google-chrome.desktop" ]; + "application/x-extension-xht" = [ "google-chrome.desktop" ]; + "application/pdf" = [ "google-chrome.desktop" ]; }; + }; + }; } diff --git a/provision/modules/desktop/gnome.nix b/provision/modules/desktop/gnome.nix new file mode 100644 index 00000000..50430765 --- /dev/null +++ b/provision/modules/desktop/gnome.nix @@ -0,0 +1,58 @@ +{ config, lib, pkgs, user, ... }: + +let cfg = config.modules.desktop.gnome; +in { + #imports = [ + # home-manager.nixosModule + #]; + + options.modules.desktop.gnome = with lib; { + enable = lib.mkEnableOption "gnome"; + #privateKeyFile = lib.mkOption { type = with types; str; }; + #address = lib.mkOption { type = with types; listOf str; }; + #publicKey = lib.mkOption { type = with types; str; }; + #endpoint = lib.mkOption { type = with types; str; }; + #autostart = lib.mkOption { + # type = with types; bool; + # default = false; + #}; + }; + + config = lib.mkIf cfg.enable { + # Enable wayland gnome + services.xserver = { + enable = true; + displayManager.gdm = { + enable = true; + wayland = true; + }; + desktopManager.gnome.enable = true; + }; + + # Enable sound and handle conflict (https://github.com/Jovian-Experiments/Jovian-NixOS/issues/99) + sound.enable = true; + hardware.pulseaudio.enable = lib.mkForce false; + + ## GNOME settings through home + #home-manager.users.${user} = { + # dconf.settings = { + # "org/gnome/desktop/background" = { + # picture-options = "centered"; + # picture-uri = "file://${../../../resources/img/bulwark.png}"; + # picture-uri-dark = "file://${../../../resources/img/bulwark.png}"; + # }; + # # Enable on-screen keyboard + # "org/gnome/desktop/a11y/applications" = { + # screen-keyboard-enabled = true; + # }; + # "org/gnome/shell" = { + # favorite-apps = [ + # "steam.desktop" + # "org.gnome.Console.desktop" + # "chromium-browser.desktop" + # ]; + # }; + # }; + #}; + }; +} diff --git a/provision/modules/desktop/sway.nix b/provision/modules/desktop/sway.nix index 3409fa1e..c52f48be 100644 --- a/provision/modules/desktop/sway.nix +++ b/provision/modules/desktop/sway.nix @@ -45,22 +45,10 @@ in { glib # gsettings dracula-theme # gtk theme gnome3.adwaita-icon-theme # default gnome cursors - bc - fzf - - # From home config networkmanagerapplet pcmanfm - gamemode - discord - inkscape - libreoffice-fresh - xournal - mpv udiskie - p7zip pavucontrol - borgbackup waybar (pkgs.waybar.overrideAttrs (oldAttrs: { mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ]; @@ -70,40 +58,12 @@ in { inputs.hyprland-contrib.packages.${pkgs.system}.grimblast ]; - # xdg-desktop-portal works by exposing a series of D-Bus interfaces - # known as portals under a well-known name - # (org.freedesktop.portal.Desktop) and object path - # (/org/freedesktop/portal/desktop). - # The portal interfaces include APIs for file access, opening URIs, - # printing and others. - services.dbus.enable = true; xdg = { portal = { enable = true; wlr.enable = true; extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; }; - mime = { - enable = true; - defaultApplications = { - "text/plain" = [ "nvim.desktop" ]; - "inode/directory" = [ "pcmanfm.desktop" ]; - "text/html" = [ "chromium-browser.desktop" ]; - "x-scheme-handler/http" = [ "chromium-browser.desktop" ]; - "x-scheme-handler/https" = [ "chromium-browser.desktop" ]; - "x-scheme-handler/ftp" = [ "chromium-browser.desktop" ]; - "x-scheme-handler/chrome" = [ "chromium-browser.desktop" ]; - "x-scheme-handler/about" = [ "chromium-browser.desktop" ]; - "x-scheme-handler/unknown" = [ "chromium-browser.desktop" ]; - "application/x-extension-htm" = [ "chromium-browser.desktop" ]; - "application/x-extension-html" = [ "chromium-browser.desktop" ]; - "application/x-extension-shtml" = [ "chromium-browser.desktop" ]; - "application/xhtml+xml" = [ "chromium-browser.desktop" ]; - "application/x-extension-xhtml" = [ "chromium-browser.desktop" ]; - "application/x-extension-xht" = [ "chromium-browser.desktop" ]; - "application/pdf" = [ "chromium-browser.desktop" ]; - }; - }; }; # enable sway window manager