configuration/common/components/desktop.user.nix

123 lines
4.4 KiB
Nix
Raw Normal View History

2023-06-15 21:59:18 +00:00
{ config, lib, pkgs, ... }:
let
2023-01-21 02:59:40 +00:00
inherit (config) host;
2023-06-16 18:11:55 +00:00
inherit (lib.generators) toINI;
inherit (lib.hm.gvariant) mkTuple;
2023-08-17 03:48:50 +00:00
palette = import ../resources/palette.nix { inherit lib; };
2022-09-11 02:38:11 +00:00
extensions = with pkgs; [
gnomeExtensions.appindicator
2023-08-18 17:34:26 +00:00
gnomeExtensions.caffeine
gnomeExtensions.notification-banner-position
2023-01-05 00:41:59 +00:00
gnomeExtensions.run-or-raise
gnomeExtensions.system-monitor-next
2022-09-11 02:38:11 +00:00
gnomeExtensions.tiling-assistant
gnomeExtensions.user-themes
];
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;
2023-08-17 03:48:50 +00:00
dconf.settings."org/gtk/settings/color-chooser".custom-colors = with palette.asFloat;
map (rgb: mkTuple (rgb ++ [ 1.0 ]))
[ 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;
# 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
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
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
'';
# Window management
dconf.settings."org/gnome/mutter".attach-modal-dialogs = false;
# 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;
}
);
}