diff --git a/common.nix b/common.nix index 46741fe..604169a 100644 --- a/common.nix +++ b/common.nix @@ -16,7 +16,7 @@ ]; nix.settings.experimental-features = [ "nix-command" "flakes" ]; - # xdg.portal.config.common.default = [ "gnome" ]; + # xdg.portal.config.common.default = [ "cosmic" ]; system.stateVersion = "25.11"; } diff --git a/configuration.nix b/configuration.nix index b620dca..8dd25a2 100644 --- a/configuration.nix +++ b/configuration.nix @@ -18,7 +18,7 @@ ]; nix.settings.experimental-features = [ "nix-command" "flakes" ]; - # xdg.portal.config.common.default = [ "gnome" ]; + # xdg.portal.config.common.default = [ "cosmic" ]; system.stateVersion = "25.11"; } diff --git a/flake.nix b/flake.nix index 7ded4ac..04ca48c 100644 --- a/flake.nix +++ b/flake.nix @@ -7,9 +7,16 @@ url = "github:nix-community/home-manager/release-25.11"; inputs.nixpkgs.follows = "nixpkgs"; }; + cosmic-manager = { + url = "github:HeitorAugustoLN/cosmic-manager"; + inputs = { + nixpkgs.follows = "nixpkgs"; + home-manager.follows = "home-manager"; + }; + }; }; - outputs = { self, nixpkgs, home-manager, ... }@inputs: + outputs = { self, nixpkgs, home-manager, cosmic-manager, ... }@inputs: let settings = import ./settings.nix; system = "x86_64-linux"; diff --git a/modules/desktop.nix b/modules/desktop.nix index 4177305..bf10852 100644 --- a/modules/desktop.nix +++ b/modules/desktop.nix @@ -1,10 +1,8 @@ { config, pkgs, ... }: { - services.displayManager.gdm.enable = true; - services.desktopManager.gnome.enable = true; - - environment.gnome.excludePackages = with pkgs; [ gnome-tour gnome-user-docs gnome-console epiphany ]; + services.desktopManager.cosmic.enable = true; + services.displayManager.cosmic-greeter.enable = true; services.printing.enable = true; } diff --git a/modules/home.nix b/modules/home.nix index be5b245..241b5cd 100644 --- a/modules/home.nix +++ b/modules/home.nix @@ -1,12 +1,13 @@ -{ config, pkgs, ... }: +{ config, pkgs, inputs, ... }: let settings = import ../settings.nix; homeModules = [ + inputs.cosmic-manager.homeManagerModules.cosmic-manager ./home/session.nix ./home/packages.nix ./home/git.nix - ./home/gnome.nix + ./home/cosmic.nix ./home/cli.nix ./home/librewolf.nix ./home/zed.nix diff --git a/modules/home/cosmic.nix b/modules/home/cosmic.nix new file mode 100644 index 0000000..d8ec056 --- /dev/null +++ b/modules/home/cosmic.nix @@ -0,0 +1,101 @@ +{ config, lib, cosmicLib, ... }: + +{ + wayland.desktopManager.cosmic = { + enable = true; + + # --- Appearance / Theme --- + appearance = { + theme = { + mode = "dark"; + dark = { + # Pink accent color + accent = cosmicLib.cosmic.mkRON "optional" { + red = 0.91; + green = 0.29; + blue = 0.60; + }; + }; + }; + toolkit = { + apply_theme_global = true; + show_maximize = true; + show_minimize = true; + icon_theme = "Cosmic"; + interface_density = cosmicLib.cosmic.mkRON "enum" "Standard"; + }; + }; + + # --- Wallpaper --- + wallpapers = [ + { + output = "all"; + source = cosmicLib.cosmic.mkRON "enum" { + value = [ "${config.home.homeDirectory}/Assets/wallpapers/sound.png" ]; + variant = "Path"; + }; + scaling_mode = cosmicLib.cosmic.mkRON "enum" "Zoom"; + filter_method = cosmicLib.cosmic.mkRON "enum" "Lanczos"; + filter_by_theme = false; + sampling_method = cosmicLib.cosmic.mkRON "enum" "Alphanumeric"; + rotation_frequency = 0; + } + ]; + + # --- Compositor --- + compositor = { + autotile = false; + active_hint = true; + + # Flat mouse acceleration (no accel) + input_default = { + acceleration = cosmicLib.cosmic.mkRON "optional" { + profile = cosmicLib.cosmic.mkRON "optional" (cosmicLib.cosmic.mkRON "enum" "Flat"); + speed = 0.0; + }; + }; + }; + + # --- Keyboard Shortcuts --- + shortcuts = [ + { + # Super+B -> Open browser + action = cosmicLib.cosmic.mkRON "enum" { + variant = "Spawn"; + value = [ "librewolf" ]; + }; + key = "Super+b"; + description = cosmicLib.cosmic.mkRON "optional" "Open Browser"; + } + { + # Super+E -> Open file manager + action = cosmicLib.cosmic.mkRON "enum" { + variant = "Spawn"; + value = [ "cosmic-files" ]; + }; + key = "Super+e"; + description = cosmicLib.cosmic.mkRON "optional" "Open File Manager"; + } + ]; + + # --- Panel: show weekday + 24h clock in top panel --- + applets.time.settings = { + show_weekday = true; + show_date_in_top_panel = true; + military_time = false; + }; + }; + + # --- COSMIC Files --- + programs.cosmic-files = { + enable = true; + settings = { + app_theme = cosmicLib.cosmic.mkRON "enum" "System"; + tab = { + folders_first = true; + show_hidden = false; + view = cosmicLib.cosmic.mkRON "enum" "List"; + }; + }; + }; +} diff --git a/modules/home/packages.nix b/modules/home/packages.nix index 928cd34..bd7a08e 100644 --- a/modules/home/packages.nix +++ b/modules/home/packages.nix @@ -33,10 +33,6 @@ pinta discord signal-desktop - - # GNOME Extensions - gnomeExtensions.appindicator - gnomeExtensions.gamemode-shell-extension ]; programs.obs-studio.enable = true;