Config_nix_Thatoo/desktop_environnement.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" ];
};
};
}