Config_nix_Thatoo/desktop_environnement.nix
2025-05-25 21:52:52 +02:00

174 lines
7.2 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 X11 windowing system.
xserver.enable = true;
# 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
desktopManager.cosmic.xwayland.enable = lib.mkDefault true;
};
environment.sessionVariables.COSMIC_DATA_CONTROL_ENABLED = 1; # to make Clipboard Manager work
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 = {
# Cosmic conflicts with gnome
services.xserver.desktopManager.gnome.enable = true;
services.desktopManager.cosmic.enable = false;
# Cosmic requires cosmic-greeter
services.xserver.displayManager.gdm.enable = true;
services.displayManager.cosmic-greeter.enable = false;
environment.systemPackages = with pkgs; [
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-tweaks
];
programs.dconf.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" ];
};
};
}