diff --git a/desktop_environnement.nix b/desktop_environnement.nix index ba6e943..1bdfd72 100644 --- a/desktop_environnement.nix +++ b/desktop_environnement.nix @@ -7,29 +7,44 @@ { 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; + desktopManager.cosmic = { + enable = lib.mkDefault true; + # Enable XWayland support in COSMIC + xwayland.enable = lib.mkDefault true; + }; }; - environment.sessionVariables.COSMIC_DATA_CONTROL_ENABLED = 1; # to make Clipboard Manager work + 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 = { - # 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; + 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 @@ -46,125 +61,130 @@ gnomeExtensions.transparent-window-moving gnomeExtensions.unblank gnomeExtensions.window-state-manager + gnome-settings-daemon + gnome-themes-extra 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; + 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/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 = "t"; - command = "kgx"; - name = "Terminal"; - }; + "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = { + binding = "t"; + command = "kgx"; + name = "Terminal"; + }; - "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = { - binding = "m"; - command = "gnome-system-monitor"; - name = "Monitor"; - }; + "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = { + binding = "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/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".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".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/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/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/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"; - }; - }]; + "org/gnome/shell/extensions/user-theme".name = "Custom-Accent-Colors"; + }; + }]; + }; }; system.nixos.tags = [ "Gnome" ]; }; diff --git a/flake.lock b/flake.lock index 95fe46c..3870ff0 100644 --- a/flake.lock +++ b/flake.lock @@ -36,15 +36,15 @@ "lix": { "flake": false, "locked": { - "lastModified": 1737234286, - "narHash": "sha256-pgDJZjj4jpzkFxsqBTI/9Yb0n3gW+DvDtuv9SwQZZcs=", - "rev": "079528098f5998ba13c88821a2eca1005c1695de", + "lastModified": 1746827285, + "narHash": "sha256-hsFe4Tsqqg4l+FfQWphDtjC79WzNCZbEFhHI8j2KJzw=", + "rev": "47aad376c87e2e65967f17099277428e4b3f8e5a", "type": "tarball", - "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/079528098f5998ba13c88821a2eca1005c1695de.tar.gz?rev=079528098f5998ba13c88821a2eca1005c1695de" + "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/47aad376c87e2e65967f17099277428e4b3f8e5a.tar.gz?rev=47aad376c87e2e65967f17099277428e4b3f8e5a" }, "original": { "type": "tarball", - "url": "https://git.lix.systems/lix-project/lix/archive/release-2.92.tar.gz" + "url": "https://git.lix.systems/lix-project/lix/archive/2.93.0.tar.gz" } }, "lix-module": { @@ -57,15 +57,15 @@ ] }, "locked": { - "lastModified": 1742943028, - "narHash": "sha256-fprwZKE1uMzO9tiWWOrmLWBW3GPkMayQfb0xOvVFIno=", - "rev": "868d97695bab9d21f6070b03957bcace249fbe3c", + "lastModified": 1746838955, + "narHash": "sha256-11R4K3iAx4tLXjUs+hQ5K90JwDABD/XHhsM9nkeS5N8=", + "rev": "cd2a9c028df820a83ca2807dc6c6e7abc3dfa7fc", "type": "tarball", - "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/868d97695bab9d21f6070b03957bcace249fbe3c.tar.gz?rev=868d97695bab9d21f6070b03957bcace249fbe3c" + "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/cd2a9c028df820a83ca2807dc6c6e7abc3dfa7fc.tar.gz?rev=cd2a9c028df820a83ca2807dc6c6e7abc3dfa7fc" }, "original": { "type": "tarball", - "url": "https://git.lix.systems/lix-project/nixos-module/archive/2.92.0-3.tar.gz" + "url": "https://git.lix.systems/lix-project/nixos-module/archive/2.93.0.tar.gz" } }, "nixpkgs": { diff --git a/flake.nix b/flake.nix index 8d800a2..288ecd1 100644 --- a/flake.nix +++ b/flake.nix @@ -5,7 +5,7 @@ nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05"; # nixpkgs_unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; lix-module = { - url = "https://git.lix.systems/lix-project/nixos-module/archive/2.92.0-3.tar.gz"; + url = "https://git.lix.systems/lix-project/nixos-module/archive/2.93.0.tar.gz"; inputs.nixpkgs.follows = "nixpkgs"; }; # affinity-nix.url = "github:mrshmllow/affinity-nix";