174 lines
7.2 KiB
Nix
174 lines
7.2 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 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" ];
|
||
};
|
||
};
|
||
}
|
||
|