From b5b50630651a36f028d81d7bd68b2a35f5b5ec94 Mon Sep 17 00:00:00 2001 From: Jan-Bulthuis Date: Sun, 23 Feb 2025 14:53:11 +0100 Subject: [PATCH] Set up desktop environments --- users/jan.nix | 272 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 250 insertions(+), 22 deletions(-) diff --git a/users/jan.nix b/users/jan.nix index ea1e6de..2bd51e8 100644 --- a/users/jan.nix +++ b/users/jan.nix @@ -1,6 +1,11 @@ # How Jan likes his linux to be configured -{ config, pkgs, ... }: +{ + lib, + config, + pkgs, + ... +}: { config = { @@ -11,43 +16,266 @@ home.packages = with pkgs; [ libreoffice-still remmina - # dina-vector - # android-studio - # jellyfin-tui pinentry thunderbird signal-desktop prusa-slicer freecad-wayland inkscape - # appflowy ente-auth ]; + desktop.environments = { + river-dark = { + name = "River Dark"; + type = "custom"; + config = { }; + extraConfig = { + modules = { + # Desktop environment + river.enable = true; + waylock.enable = true; + waybar.enable = true; + mako.enable = true; + foot.enable = true; + rofi-rbw.enable = true; + }; + + # TODO: Remove everything below, it is here out of convenience and should be elsewhere + xdg.portal = { + enable = true; + + config.common.default = [ + "wlr" + "gtk" + ]; + + extraPortals = with pkgs; [ + xdg-desktop-portal-gtk + xdg-desktop-portal-wlr + ]; + }; + + # Color scheme + desktop.theming.themes.catppuccin = { + enable = true; + flavor = "mocha"; + }; + }; + }; + river-light = { + name = "River Light"; + type = "custom"; + config = { }; + extraConfig = { + modules = { + # Desktop environment + river.enable = true; + waylock.enable = true; + waybar.enable = true; + mako.enable = true; + foot.enable = true; + rofi-rbw.enable = true; + }; + + # TODO: Remove everything below, it is here out of convenience and should be elsewhere + xdg.portal = { + enable = true; + + config.common.default = [ + "wlr" + "gtk" + ]; + + extraPortals = with pkgs; [ + xdg-desktop-portal-gtk + xdg-desktop-portal-wlr + ]; + }; + + # Color scheme + desktop.theming.themes.catppuccin = { + enable = true; + flavor = lib.mkForce "latte"; + }; + }; + }; + cosmic = { + name = "Cosmic"; + type = "custom"; + config = { }; + extraConfig = { + desktop = { + initScript = '' + ${pkgs.dbus}/bin/dbus-run-session ${pkgs.cosmic-session}/bin/cosmic-session + ''; + session = { + type = "wayland"; + desktop = "cosmic"; + }; + }; + home.packages = with pkgs; [ + adwaita-icon-theme + alsa-utils + cosmic-applets + cosmic-applibrary + cosmic-bg + (cosmic-comp.override { + useXWayland = false; + }) + cosmic-edit + cosmic-files + cosmic-greeter + cosmic-icons + cosmic-idle + cosmic-launcher + cosmic-notifications + cosmic-osd + cosmic-panel + cosmic-player + cosmic-randr + cosmic-screenshot + cosmic-session + cosmic-settings + cosmic-settings-daemon + cosmic-term + cosmic-wallpapers + cosmic-workspaces-epoch + hicolor-icon-theme + playerctl + pop-icon-theme + pop-launcher + xdg-user-dirs + xwayland + cosmic-store + + # Fonts + fira + noto-fonts + open-sans + ]; + + xdg.portal = { + enable = true; + extraPortals = with pkgs; [ + xdg-desktop-portal-cosmic + xdg-desktop-portal-gtk + ]; + configPackages = lib.mkDefault (with pkgs; [ xdg-desktop-portal-cosmic ]); + }; + + }; + }; + gnome = { + name = "Gnome"; + type = "custom"; + config = { }; + extraConfig = { + programs = { + gnome-shell.enable = true; + }; + desktop = { + initScript = '' + ${pkgs.dbus}/bin/dbus-run-session ${pkgs.gnome-session}/bin/gnome-session + ''; + session = { + type = "wayland"; + desktop = "GNOME"; + }; + }; + home.packages = [ + # Core utilities + pkgs.baobab + pkgs.epiphany + pkgs.gnome-text-editor + pkgs.gnome-calculator + pkgs.gnome-calendar + pkgs.gnome-characters + pkgs.gnome-clocks + pkgs.gnome-console + pkgs.gnome-contacts + pkgs.gnome-font-viewer + pkgs.gnome-logs + pkgs.gnome-maps + pkgs.gnome-music + pkgs.gnome-system-monitor + pkgs.gnome-weather + pkgs.loupe + pkgs.nautilus + pkgs.gnome-connections + pkgs.simple-scan + pkgs.snapshot + pkgs.totem + pkgs.yelp + + # Optional packages + pkgs.adwaita-icon-theme + pkgs.gnome-backgrounds + pkgs.gnome-bluetooth + pkgs.gnome-color-manager + pkgs.gnome-control-center + pkgs.gnome-shell-extensions + pkgs.gnome-tour # GNOME Shell detects the .desktop file on first log-in. + pkgs.gnome-user-docs + pkgs.glib # for gsettings program + pkgs.gnome-menus + pkgs.gtk3.out # for gtk-launch program + pkgs.xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/ + pkgs.xdg-user-dirs-gtk # Used to create the default bookmarks + + # Games + pkgs.aisleriot + pkgs.atomix + pkgs.five-or-more + pkgs.four-in-a-row + pkgs.gnome-2048 + pkgs.gnome-chess + pkgs.gnome-klotski + pkgs.gnome-mahjongg + pkgs.gnome-mines + pkgs.gnome-nibbles + pkgs.gnome-robots + pkgs.gnome-sudoku + pkgs.gnome-taquin + pkgs.gnome-tetravex + pkgs.hitori + pkgs.iagno + pkgs.lightsoff + pkgs.quadrapassel + pkgs.swell-foop + pkgs.tali + + # Fonts + pkgs.cantarell-fonts + pkgs.dejavu_fonts + pkgs.source-code-pro # Default monospace font in 3.32 + pkgs.source-sans + + # Other stuff + pkgs.gnome-session + # pkgs.gnome-session.sessions + ]; + }; + }; + }; + # Desktop environments - # desktops = + # desktop.environments = # let # in - # { - # "River Dark" = { + # [ + # { + # name = "river"; # type = "custom"; - # theming = { }; # config = { }; - # extraConfig = { }; - # }; - # }; + # extraConfig = { + # home.packages = with pkgs; [ cowsay ]; + # }; + # } + # ]; # Enabled modules modules = { - # Window manager - river.enable = true; - waylock.enable = true; - waybar.enable = true; - - # Desktop environment - mako.enable = true; - foot.enable = true; - # Communication whatsapp.enable = true; discord.enable = true; @@ -74,7 +302,6 @@ feishin.enable = true; # Tools - rofi-rbw.enable = true; git = { enable = true; user = "Jan-Bulthuis"; @@ -153,5 +380,6 @@ xdg-desktop-portal-wlr ]; }; + }; }