200 lines
7.9 KiB
Nix
200 lines
7.9 KiB
Nix
# Edit this configuration file to define what should be installed on
|
|
# your system. Help is available in the configuration.nix(5) man page
|
|
# and in the NixOS manual (accessible by running 'nixos-help').
|
|
|
|
{ config, pkgs, lib, inputs, ... }:
|
|
|
|
{
|
|
|
|
services = {
|
|
# Enable the login manager
|
|
displayManager.cosmic-greeter.enable = lib.mkDefault true;
|
|
# Enable the COSMIC DE itself
|
|
desktopManager.cosmic = {
|
|
enable = lib.mkDefault true;
|
|
# Enable XWayland support in COSMIC
|
|
xwayland.enable = lib.mkDefault true;
|
|
};
|
|
# to avoid a timeout on shutdown, enable the GeoClue 2 service without the demo agent
|
|
# will not be needed in future version of cosmic : testing or 25.11
|
|
geoclue2 = {
|
|
enable = true;
|
|
enableDemoAgent = false;
|
|
};
|
|
};
|
|
|
|
environment.sessionVariables = {
|
|
# to make Clipboard Manager work
|
|
COSMIC_DATA_CONTROL_ENABLED = 1;
|
|
# enable Ozone Wayland support in Chromium and Electron
|
|
NIXOS_OZONE_WL = "1";
|
|
};
|
|
|
|
# to allow to open link in web browser from any app
|
|
systemd.user.extraConfig = ''DefaultEnvironment="PATH=/run/wrappers/bin:/etc/profiles/per-user/%u/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin"'';
|
|
|
|
specialisation = {
|
|
gnome.configuration = {
|
|
services = {
|
|
# Disable Cosmic
|
|
desktopManager.cosmic = {
|
|
enable = false;
|
|
xwayland.enable = false;
|
|
};
|
|
displayManager.cosmic-greeter.enable = false;
|
|
# Enable Gnome
|
|
xserver = {
|
|
enable = true;
|
|
desktopManager.gnome.enable = true;
|
|
displayManager.gdm.enable = true;
|
|
};
|
|
};
|
|
environment.systemPackages = with pkgs; [
|
|
adwaita-icon-theme
|
|
gnomeExtensions.appindicator
|
|
gnomeExtensions.arcmenu
|
|
gnomeExtensions.blur-my-shell
|
|
gnomeExtensions.caffeine
|
|
gnomeExtensions.clipboard-indicator
|
|
gnomeExtensions.clipboard-history
|
|
gnomeExtensions.compiz-alike-magic-lamp-effect
|
|
gnomeExtensions.compiz-windows-effect
|
|
gnomeExtensions.coverflow-alt-tab
|
|
gnomeExtensions.custom-accent-colors
|
|
gnomeExtensions.dash-to-panel
|
|
gnomeExtensions.gtk4-desktop-icons-ng-ding
|
|
# gnomeExtensions.put-windows
|
|
gnomeExtensions.transparent-window-moving
|
|
gnomeExtensions.unblank
|
|
gnomeExtensions.window-state-manager
|
|
gnome-settings-daemon
|
|
gnome-themes-extra
|
|
gnome-tweaks
|
|
];
|
|
programs.dconf = {
|
|
enable = true;
|
|
profiles = {
|
|
user.databases = [{
|
|
settings = with lib.gvariant; {
|
|
"org/gnome/desktop/interface" = {
|
|
cursor-theme = "Adwaita";
|
|
gtk-theme = "Adwaita";
|
|
icon-theme = "Adwaita";
|
|
clock-format = "24h";
|
|
clock-show-weekday = true;
|
|
clock-show-seconds = true;
|
|
show-battery-percentage = true;
|
|
};
|
|
"org/gnome/desktop/calendar".show-weekdate = true;
|
|
|
|
"org/gtk/settings/file-chooser" = {
|
|
sort-directories-first = true;
|
|
# show-hidden = true;
|
|
# view-type = "list";
|
|
};
|
|
|
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = {
|
|
binding = "<Control><Alt>t";
|
|
command = "kgx";
|
|
name = "Terminal";
|
|
};
|
|
|
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = {
|
|
binding = "<Control><Alt>m";
|
|
command = "gnome-system-monitor";
|
|
name = "Monitor";
|
|
};
|
|
|
|
"org/gnome/settings-daemon/plugins/media-keys".custom-keybindings = [
|
|
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/"
|
|
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/"
|
|
];
|
|
|
|
"org/gnome/shell".enabled-extensions = [
|
|
"appindicatorsupport@rgcjonas.gmail.com"
|
|
"arcmenu@arcmenu.com"
|
|
"auto-move-windows@gnome-shell-extensions.gcampax.github.com"
|
|
"blur-my-shell@aunetx"
|
|
"caffeine@patapon.info"
|
|
"clipboard-history@alexsaveau.dev"
|
|
"CoverflowAltTab@palatis.blogspot.com"
|
|
"custom-accent-colors@demiskp"
|
|
"dash-to-panel@jderose9.github.com"
|
|
"gsconnect@andyholmes.github.io"
|
|
"gtk4-ding@smedius.gitlab.com"
|
|
"transparent-window-moving@noobsai.github.com"
|
|
"user-theme@gnome-shell-extensions.gcampax.github.com"
|
|
"workspace-switch-wraparound@theychx.org"
|
|
];
|
|
|
|
# "org/gnome/shell".favorite-apps = [
|
|
# "firefox.desktop"
|
|
# "thunderbird.desktop"
|
|
# "element-desktop.desktop"
|
|
# "org.keepassxc.KeePassXC.desktop"
|
|
# "org.gnome.Nautilus.desktop"
|
|
# "org.gnome.TextEditor.desktop"
|
|
# ];
|
|
|
|
"org/gnome/shell/extensions/dash-to-panel" = {
|
|
# Even when we are not using multiple panels on multiple monitors,
|
|
# the extension still creates them in the config, so we set the same
|
|
# configuration for each (up to 2 monitors).
|
|
animate-appicon-hover = true;
|
|
dot-position = "BOTTOM";
|
|
dot-style-focused = "METRO";
|
|
dot-style-unfocused = "DOTS";
|
|
intellihide = false;
|
|
# panel-positions = builtins.toJSON (lib.genAttrs [ "0" "1" ] (x: "TOP"));
|
|
# panel-sizes = builtins.toJSON (lib.genAttrs [ "0" "1" ] (x: 32));
|
|
panel-element-positions = builtins.toJSON (lib.genAttrs [ "0" "1" ] (x: [
|
|
{ element = "showAppsButton"; visible = false; position = "stackedTL"; }
|
|
{ element = "activitiesButton"; visible = false; position = "stackedTL"; }
|
|
{ element = "leftBox"; visible = true; position = "stackedTL"; }
|
|
{ element = "taskbar"; visible = true; position = "centered"; }
|
|
{ element = "centerBox"; visible = false; position = "stackedBR"; }
|
|
{ element = "rightBox"; visible = true; position = "stackedBR"; }
|
|
{ element = "dateMenu"; visible = true; position = "stackedBR"; }
|
|
{ element = "systemMenu"; visible = true; position = "stackedBR"; }
|
|
{ element = "desktopButton"; visible = false; position = "stackedBR"; }
|
|
]));
|
|
multi-monitors = true;
|
|
# show-apps-icon-file = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake-white.svg";
|
|
# show-apps-icon-padding = mkInt32 4;
|
|
# focus-highlight-dominant = true;
|
|
# dot-size = mkInt32 0;
|
|
# appicon-padding = mkInt32 2;
|
|
# appicon-margin = mkInt32 0;
|
|
# trans-use-custom-opacity = true;
|
|
# trans-panel-opacity = 0.25;
|
|
# show-favorites = false;
|
|
# group-apps = false;
|
|
# isolate-workspaces = true;
|
|
# hide-overview-on-startup = true;
|
|
# stockgs-keep-dash = true;
|
|
};
|
|
|
|
"org/gnome/shell/extensions/arcmenu" = {
|
|
menu-layout = "Budgie";
|
|
menu-button-icon = "Distro_Icon";
|
|
distro-icon = "22";
|
|
};
|
|
|
|
"org/gnome/shell/extensions/custom-accent-colors" = {
|
|
accent-color = "purple";
|
|
theme-flatpak = true;
|
|
theme-gtk3 = true;
|
|
theme-shell = true;
|
|
};
|
|
|
|
"org/gnome/shell/extensions/user-theme".name = "Custom-Accent-Colors";
|
|
};
|
|
}];
|
|
};
|
|
};
|
|
system.nixos.tags = [ "Gnome" ];
|
|
};
|
|
};
|
|
}
|
|
|