2023-06-15 21:59:18 +00:00
|
|
|
{ config, lib, pkgs, ... }:
|
2022-08-23 16:46:21 +00:00
|
|
|
|
|
|
|
let
|
2023-01-21 02:59:40 +00:00
|
|
|
inherit (config) host;
|
2023-06-16 18:11:55 +00:00
|
|
|
inherit (lib.generators) toINI;
|
2023-08-11 22:06:04 +00:00
|
|
|
inherit (lib.hm.gvariant) mkTuple;
|
|
|
|
|
2024-05-09 19:18:01 +00:00
|
|
|
palette = import ../resources/palette.nix { inherit lib pkgs; };
|
2022-09-11 02:38:11 +00:00
|
|
|
|
|
|
|
extensions = with pkgs; [
|
|
|
|
gnomeExtensions.appindicator
|
2023-08-18 17:34:26 +00:00
|
|
|
gnomeExtensions.caffeine
|
2024-01-02 22:18:40 +00:00
|
|
|
gnomeExtensions.notification-banner-position
|
2023-01-05 00:41:59 +00:00
|
|
|
gnomeExtensions.run-or-raise
|
2023-12-20 02:11:27 +00:00
|
|
|
gnomeExtensions.system-monitor-next
|
2022-09-11 02:38:11 +00:00
|
|
|
gnomeExtensions.tiling-assistant
|
|
|
|
gnomeExtensions.user-themes
|
|
|
|
];
|
2022-08-23 16:46:21 +00:00
|
|
|
in
|
|
|
|
{
|
|
|
|
# Packages
|
|
|
|
home.packages = with pkgs; [
|
|
|
|
gnome.gnome-tweaks
|
|
|
|
yaru-theme
|
2022-09-11 02:38:11 +00:00
|
|
|
] ++ extensions;
|
|
|
|
|
2022-09-11 02:39:13 +00:00
|
|
|
# Theme
|
|
|
|
dconf.settings."org/gnome/desktop/interface".color-scheme = "prefer-dark";
|
|
|
|
dconf.settings."org/gnome/desktop/interface".cursor-theme = "Yaru";
|
|
|
|
dconf.settings."org/gnome/desktop/interface".gtk-theme = "Yaru-dark";
|
|
|
|
dconf.settings."org/gnome/desktop/interface".icon-theme = "Yaru-dark";
|
|
|
|
dconf.settings."org/gnome/shell/extensions/user-theme".name = "Yaru-dark";
|
2022-09-11 02:53:58 +00:00
|
|
|
dconf.settings."org/gnome/desktop/background".picture-uri = host.background;
|
|
|
|
dconf.settings."org/gnome/desktop/background".picture-uri-dark = host.background;
|
|
|
|
dconf.settings."org/gnome/desktop/screensaver".picture-uri = host.background;
|
2024-04-23 04:58:34 +00:00
|
|
|
dconf.settings."org/gtk/settings/color-chooser".custom-colors = with palette.rgb;
|
2024-04-23 05:01:05 +00:00
|
|
|
map ({ r, g, b }: mkTuple [ r g b 1.0 ])
|
2023-08-11 22:06:04 +00:00
|
|
|
[ red green yellow blue orange purple ];
|
2022-09-11 02:39:13 +00:00
|
|
|
|
2022-09-11 02:38:11 +00:00
|
|
|
# Shell
|
2022-09-11 02:39:44 +00:00
|
|
|
dconf.settings."org/gnome/desktop/interface".clock-format = "24h";
|
|
|
|
dconf.settings."org/gnome/desktop/interface".clock-show-weekday = true;
|
2022-09-11 02:38:11 +00:00
|
|
|
dconf.settings."org/gnome/shell".enabled-extensions = map (e: e.extensionUuid) extensions;
|
2022-08-23 16:46:21 +00:00
|
|
|
|
|
|
|
# Disabled extensions notification
|
2023-06-16 18:11:55 +00:00
|
|
|
xdg.configFile."autostart/disabled-extensions-notification.desktop".text = toINI { } {
|
2023-06-15 21:59:18 +00:00
|
|
|
"Desktop Entry" = {
|
|
|
|
Type = "Application";
|
|
|
|
Name = "Disabled Extensions Notification";
|
|
|
|
NoDisplay = true;
|
|
|
|
Exec = pkgs.writeShellScript "disabled-extensions-notification" ''
|
|
|
|
[[ "$(gsettings get org.gnome.shell disable-user-extensions)" == 'true' ]] || exit
|
2022-08-23 16:46:21 +00:00
|
|
|
|
2023-06-15 21:59:18 +00:00
|
|
|
case "$(${pkgs.libnotify}/bin/notify-send --urgency 'critical' --icon 'extensions' \
|
|
|
|
'Extensions have been automatically disabled.' \
|
|
|
|
--action 'enable=Re-Enable' \
|
|
|
|
--action 'settings=Settings…')" \
|
|
|
|
in
|
|
|
|
'enable') gsettings set org.gnome.shell disable-user-extensions 'false';;
|
|
|
|
'settings') gnome-extensions-app & disown;;
|
|
|
|
esac
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
};
|
2023-08-11 20:41:06 +00:00
|
|
|
|
|
|
|
# Keyboard shortcuts
|
2023-08-11 20:45:51 +00:00
|
|
|
dconf.settings."org/gnome/desktop/wm/keybindings" = {
|
|
|
|
switch-applications = [ ];
|
|
|
|
switch-applications-backward = [ ];
|
|
|
|
switch-windows = [ "<Alt>Tab" ];
|
|
|
|
switch-windows-backward = [ "<Shift><Alt>Tab" ];
|
|
|
|
};
|
2023-08-11 20:41:06 +00:00
|
|
|
dconf.settings."org/gnome/settings-daemon/plugins/media-keys".custom-keybindings = [
|
|
|
|
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/"
|
2024-04-05 18:31:41 +00:00
|
|
|
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/"
|
2023-08-11 20:41:06 +00:00
|
|
|
];
|
|
|
|
dconf.settings."org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = {
|
|
|
|
name = "Activate screensaver";
|
|
|
|
command = "dbus-send --session --dest=org.gnome.ScreenSaver --type=method_call '/org/gnome/ScreenSaver' 'org.gnome.ScreenSaver.SetActive' 'boolean:true'";
|
|
|
|
binding = "Favorites";
|
|
|
|
};
|
2024-04-05 18:31:41 +00:00
|
|
|
dconf.settings."org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = {
|
|
|
|
name = "Emote";
|
|
|
|
command = "${pkgs.emote}/bin/emote";
|
|
|
|
binding = "XF86Messenger";
|
|
|
|
};
|
2023-12-01 07:20:01 +00:00
|
|
|
dconf.settings."org/gnome/shell/keybindings" = {
|
|
|
|
toggle-quick-settings = [ ];
|
|
|
|
};
|
2023-01-05 00:41:59 +00:00
|
|
|
xdg.configFile."run-or-raise/shortcuts.conf".text = ''
|
|
|
|
<Super>c,qalculate-gtk,qalculate-gtk,
|
|
|
|
<Super>f,firefox,firefox,
|
|
|
|
<Super>n,obsidian,obsidian,
|
|
|
|
<Super>t,kitty,kitty,
|
2023-03-02 18:15:51 +00:00
|
|
|
<Super>s,codium,VSCodium,
|
2023-01-05 00:41:59 +00:00
|
|
|
'';
|
2023-08-11 21:16:08 +00:00
|
|
|
|
|
|
|
# Window management
|
|
|
|
dconf.settings."org/gnome/mutter".attach-modal-dialogs = false;
|
2023-08-11 21:16:45 +00:00
|
|
|
|
|
|
|
# System monitor
|
|
|
|
dconf.settings."org/gnome/shell/extensions/system-monitor" = {
|
|
|
|
cpu-display = true;
|
|
|
|
cpu-graph-width = 60;
|
|
|
|
cpu-refresh-time = 2000;
|
|
|
|
cpu-show-text = false;
|
|
|
|
freq-display = false;
|
|
|
|
icon-display = false;
|
|
|
|
memory-display = false;
|
|
|
|
net-display = false;
|
|
|
|
thermal-display = false;
|
|
|
|
} // (
|
|
|
|
let foreground = "#f2f2f2ff"; muted = "#333333ff"; transparent = "#00000000"; in {
|
|
|
|
background = transparent;
|
|
|
|
cpu-nice-color = muted;
|
|
|
|
cpu-other-color = muted;
|
|
|
|
cpu-iowait-color = foreground;
|
|
|
|
cpu-system-color = foreground;
|
|
|
|
cpu-user-color = foreground;
|
|
|
|
}
|
|
|
|
);
|
2022-08-23 16:46:21 +00:00
|
|
|
}
|