nixos-config/modules/nixos/themes/a-happy-gnome/default.nix
Gabriel Arazas dda3974ee7 Update "A happy GNOME" theme
- The custom dconf is now placed as a keyfile in the appropriate
  directory.

- Add more packages to the theme module.

Update GNOME 2
2022-01-09 20:06:05 +08:00

81 lines
2.2 KiB
Nix

{ config, options, lib, pkgs, ... }:
# TODO: Custom dconf database which is not yet possible.
# See https://github.com/NixOS/nixpkgs/issues/54150 for more details.
let
name = "a-happy-gnome";
cfg = config.themes.themes.a-happy-gnome;
dconfConfig = pkgs.runCommand "install-a-happy-gnome-dconf-keyfiles" {} ''
mkdir -p $out/etc/dconf/db/database.d
install -Dm644 ${./config/dconf}/*.conf -t $out/etc/dconf/db/database.d
'';
in
{
options.themes.themes.a-happy-gnome.enable = lib.mkEnableOption "'A happy GNOME', foo-dogsquared's configuration of GNOME desktop environment";
config = lib.mkIf cfg.enable {
services.xserver.enable = true;
services.xserver.displayManager.gdm.enable = true;
services.xserver.desktopManager.gnome.enable = true;
# Since we're using KDE Connect, we'll have to use gsconnect.
programs.kdeconnect = {
enable = true;
package = pkgs.gnomeExtensions.gsconnect;
};
# Don't need most of the GNOME's offering so...
environment.gnome.excludePackages = with pkgs.gnome; [
gedit
eog
geary
totem
epiphany
gnome-terminal
gnome-music
gnome-software
yelp
] ++ (with pkgs; [
gnome-user-docs
gnome-tour
]);
# I'm pretty sure this is already done but just to make sure.
services.gnome.chrome-gnome-shell.enable = true;
environment.systemPackages = with pkgs; [
# My custom configuration!
dconfConfig
# It is required for custom menus in extensions.
gnome-menus
# Good ol' unofficial preferences tool.
gnome.gnome-tweaks
gnome.gnome-boxes
# My preferred extensions.
gnomeExtensions.arcmenu
gnomeExtensions.gsconnect
gnomeExtensions.x11-gestures
gnomeExtensions.kimpanel
gnomeExtensions.runcat
gnomeExtensions.just-perfection
gnomeExtensions.mpris-indicator-button
# TODO: Use from nixpkgs once fly-pie is fixed.
gnome-shell-extension-fly-pie
# TODO: Also these two...
gnome-shell-extension-burn-my-windows
gnome-shell-extension-desktop-cube
# Setting up Pop shell.
gnome-shell-extension-pop-shell
pop-launcher
pop-launcher-plugin-duckduckgo-bangs
];
};
}