Current state of main at 0240060 feat(hp-laptop): install TeleportFling from its flake. History intentionally collapsed to a single commit; this repo mirrors only the latest state.
170 lines
4.9 KiB
Nix
170 lines
4.9 KiB
Nix
{ config
|
|
, pkgs
|
|
, lib
|
|
, ...
|
|
}:
|
|
|
|
{
|
|
dconf.settings = {
|
|
# Desktop interface settings
|
|
"org/gnome/desktop/interface" = {
|
|
color-scheme = "prefer-dark";
|
|
enable-hot-corners = false;
|
|
clock-show-weekday = true;
|
|
show-battery-percentage = true;
|
|
|
|
icon-theme = "Papirus-Dark";
|
|
cursor-theme = "Bibata-Modern-Classic";
|
|
};
|
|
|
|
"org/gnome/desktop/input-sources" = {
|
|
sources = [
|
|
(lib.gvariant.mkTuple [
|
|
"xkb"
|
|
"gb"
|
|
])
|
|
];
|
|
xkb-options = [ "terminate:ctrl_alt_bksp" ];
|
|
};
|
|
|
|
# Window manager preferences
|
|
"org/gnome/desktop/wm/preferences" = {
|
|
button-layout = "appmenu:minimize,maximize,close";
|
|
num-workspaces = 4;
|
|
};
|
|
|
|
# Keybindings
|
|
"org/gnome/desktop/wm/keybindings" = {
|
|
close = [ "<Super>q" ];
|
|
switch-to-workspace-1 = [ "<Super>1" ];
|
|
switch-to-workspace-2 = [ "<Super>2" ];
|
|
switch-to-workspace-3 = [ "<Super>3" ];
|
|
switch-to-workspace-4 = [ "<Super>4" ];
|
|
move-to-workspace-1 = [ "<Super><Shift>1" ];
|
|
move-to-workspace-2 = [ "<Super><Shift>2" ];
|
|
move-to-workspace-3 = [ "<Super><Shift>3" ];
|
|
move-to-workspace-4 = [ "<Super><Shift>4" ];
|
|
};
|
|
|
|
# Shell settings
|
|
"org/gnome/shell" = {
|
|
favorite-apps = [
|
|
"firefox.desktop"
|
|
"kitty.desktop"
|
|
"org.gnome.Nautilus.desktop"
|
|
"thunderbird.desktop"
|
|
"chromium-browser.desktop"
|
|
];
|
|
enabled-extensions = [
|
|
"[email protected]"
|
|
"[email protected]"
|
|
"[email protected]"
|
|
"[email protected]"
|
|
"[email protected]"
|
|
];
|
|
};
|
|
|
|
# Mutter (window manager) settings
|
|
"org/gnome/mutter" = {
|
|
dynamic-workspaces = false;
|
|
edge-tiling = true;
|
|
workspaces-only-on-primary = true;
|
|
};
|
|
|
|
# File manager (Nautilus) settings
|
|
"org/gnome/nautilus/preferences" = {
|
|
default-folder-viewer = "list-view";
|
|
search-filter-time-type = "last_modified";
|
|
show-hidden-files = true;
|
|
};
|
|
|
|
# Power settings
|
|
"org/gnome/settings-daemon/plugins/power" = {
|
|
sleep-inactive-ac-type = "nothing";
|
|
sleep-inactive-battery-timeout = 1800;
|
|
};
|
|
|
|
# Privacy settings
|
|
"org/gnome/desktop/privacy" = {
|
|
remember-recent-files = true;
|
|
remove-old-temp-files = true;
|
|
remove-old-trash-files = true;
|
|
};
|
|
|
|
# Session settings
|
|
"org/gnome/desktop/session" = {
|
|
idle-delay = lib.gvariant.mkUint32 900; # 15 minutes
|
|
};
|
|
|
|
# Screensaver settings
|
|
"org/gnome/desktop/screensaver" = {
|
|
lock-enabled = true;
|
|
lock-delay = lib.gvariant.mkUint32 0;
|
|
};
|
|
|
|
# Caffeine extension settings
|
|
"org/gnome/shell/extensions/caffeine" = {
|
|
enable-fullscreen = true;
|
|
restore-state = true;
|
|
show-indicator = "always";
|
|
show-notifications = false;
|
|
};
|
|
};
|
|
|
|
# GNOME-specific packages
|
|
home.packages = with pkgs; [
|
|
gnome-tweaks
|
|
gnomeExtensions.appindicator
|
|
gnomeExtensions.user-themes
|
|
gnomeExtensions.caffeine
|
|
gnomeExtensions.gsconnect
|
|
dconf-editor
|
|
catppuccin-gtk
|
|
papirus-icon-theme
|
|
bibata-cursors
|
|
];
|
|
|
|
# GTK theme configuration
|
|
gtk = {
|
|
enable = true;
|
|
gtk4.theme = config.gtk.theme;
|
|
theme = {
|
|
name = "catppuccin-frappe-blue-standard";
|
|
package = pkgs.catppuccin-gtk;
|
|
};
|
|
iconTheme = {
|
|
name = "Papirus-Dark";
|
|
package = pkgs.papirus-icon-theme;
|
|
};
|
|
cursorTheme = {
|
|
name = "Bibata-Modern-Classic";
|
|
package = pkgs.bibata-cursors;
|
|
};
|
|
};
|
|
|
|
# Home Manager cursor configuration
|
|
home.pointerCursor = {
|
|
enable = true;
|
|
name = "Bibata-Modern-Classic";
|
|
package = pkgs.bibata-cursors;
|
|
gtk.enable = true;
|
|
x11.enable = true;
|
|
};
|
|
|
|
home.file."Pictures/wallpapers/tokyo-night.png".source = ../../assets/wallpapers/tokyo-night.png;
|
|
|
|
# Set initial default wallpaper on first install if user hasn't configured a custom wallpaper yet.
|
|
# If the user changes their wallpaper via GNOME Settings, dconf read detects it and leaves it untouched across reboots/updates.
|
|
home.activation.setInitialWallpaper = lib.hm.dag.entryAfter [ "dconf" ] ''
|
|
WALLPAPER="${config.home.homeDirectory}/Pictures/wallpapers/tokyo-night.png"
|
|
VAL="$(${pkgs.dconf}/bin/dconf read /org/gnome/desktop/background/picture-uri 2>/dev/null || true)"
|
|
if [ -z "$VAL" ]; then
|
|
$DRY_RUN_CMD ${pkgs.dconf}/bin/dconf write /org/gnome/desktop/background/picture-uri "'file://$WALLPAPER'"
|
|
$DRY_RUN_CMD ${pkgs.dconf}/bin/dconf write /org/gnome/desktop/background/picture-uri-dark "'file://$WALLPAPER'"
|
|
$DRY_RUN_CMD ${pkgs.dconf}/bin/dconf write /org/gnome/desktop/background/picture-options "'zoom'"
|
|
$DRY_RUN_CMD ${pkgs.dconf}/bin/dconf write /org/gnome/desktop/screensaver/picture-uri "'file://$WALLPAPER'"
|
|
$DRY_RUN_CMD ${pkgs.dconf}/bin/dconf write /org/gnome/desktop/screensaver/picture-options "'zoom'"
|
|
fi
|
|
'';
|
|
}
|