2026-04-09 14:35:56 +01:00
|
|
|
{ config, pkgs, lib, inputs, ... }:
|
2025-12-03 15:46:37 +00:00
|
|
|
{
|
2026-01-09 13:09:34 +00:00
|
|
|
config = lib.mkIf (lib.elem config.networking.hostName [ "FredOS-Gaming" "FredOS-Macbook" ]) {
|
2026-01-05 09:25:10 +00:00
|
|
|
# Enable Gnome
|
|
|
|
|
services.xserver.enable = true;
|
|
|
|
|
services.displayManager.gdm.enable = true;
|
|
|
|
|
services.desktopManager.gnome.enable = true;
|
2026-01-11 22:31:38 +00:00
|
|
|
services.displayManager.gdm.wayland = true;
|
2026-01-11 22:29:04 +00:00
|
|
|
boot.plymouth.enable = false;
|
2026-04-09 14:35:56 +01:00
|
|
|
|
2026-04-08 19:54:46 +01:00
|
|
|
# Flatpak for ad-hoc app installs via Bazaar
|
|
|
|
|
services.flatpak.enable = true;
|
|
|
|
|
|
Switch to fish shell, ghostty terminal, and simplified prompt
- Replace bash with fish as default shell (all hosts)
- Replace kgx with ghostty (desktop hosts), update Super+T keybinding
- Custom two-line fish prompt: NixOS icon, username, path, hostname, ❯
- Nix-shell awareness, red ❯ on error
- Simplify fastfetch: user@host, OS, kernel, shell, terminal, uptime, memory
- Ghostty config: FiraCode Nerd Font, catppuccin-mocha, no titlebar
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 13:22:21 +01:00
|
|
|
# Add extensions, packages, and terminal
|
2026-01-05 09:25:10 +00:00
|
|
|
environment.systemPackages = with pkgs; [
|
Switch to fish shell, ghostty terminal, and simplified prompt
- Replace bash with fish as default shell (all hosts)
- Replace kgx with ghostty (desktop hosts), update Super+T keybinding
- Custom two-line fish prompt: NixOS icon, username, path, hostname, ❯
- Nix-shell awareness, red ❯ on error
- Simplify fastfetch: user@host, OS, kernel, shell, terminal, uptime, memory
- Ghostty config: FiraCode Nerd Font, catppuccin-mocha, no titlebar
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 13:22:21 +01:00
|
|
|
ghostty
|
2026-01-05 09:25:10 +00:00
|
|
|
gnomeExtensions.blur-my-shell
|
|
|
|
|
gnomeExtensions.just-perfection
|
|
|
|
|
gnomeExtensions.appindicator
|
|
|
|
|
gnomeExtensions.hot-edge
|
2026-04-13 21:20:41 +01:00
|
|
|
gnomeExtensions.user-themes
|
2026-02-15 18:33:26 +00:00
|
|
|
#gnomeExtensions.rounded-window-corners-reborn
|
2026-01-05 09:25:10 +00:00
|
|
|
adwaita-icon-theme
|
2026-01-20 08:35:23 +00:00
|
|
|
gnome-themes-extra
|
2026-04-13 20:49:31 +01:00
|
|
|
adwaita-icon-theme-legacy
|
2026-04-13 21:03:00 +01:00
|
|
|
papirus-icon-theme
|
2026-04-13 19:39:57 +01:00
|
|
|
adw-gtk3
|
|
|
|
|
matugen
|
2026-04-13 21:14:54 +01:00
|
|
|
jq
|
2026-01-05 09:25:10 +00:00
|
|
|
];
|
2026-01-11 22:29:04 +00:00
|
|
|
|
2026-01-05 09:25:10 +00:00
|
|
|
# Set cursor theme
|
|
|
|
|
environment.sessionVariables = {
|
|
|
|
|
XCURSOR_THEME = "Adwaita";
|
|
|
|
|
XCURSOR_SIZE = "24";
|
|
|
|
|
XCURSOR_PATH = lib.mkForce [
|
|
|
|
|
"${pkgs.adwaita-icon-theme}/share/icons"
|
|
|
|
|
"$HOME/.icons"
|
|
|
|
|
"$HOME/.local/share/icons"
|
|
|
|
|
];
|
|
|
|
|
};
|
2026-04-09 14:35:56 +01:00
|
|
|
|
2026-01-05 09:25:10 +00:00
|
|
|
# Set icon theme via dconf
|
|
|
|
|
programs.dconf.profiles.user.databases = [{
|
|
|
|
|
settings = {
|
|
|
|
|
"org/gnome/desktop/interface" = {
|
2026-04-13 21:03:00 +01:00
|
|
|
icon-theme = "WallpaperAdwaita";
|
2026-01-05 09:25:10 +00:00
|
|
|
cursor-theme = "Adwaita";
|
|
|
|
|
};
|
2026-03-25 10:09:45 +00:00
|
|
|
"org/gnome/mutter" = {
|
|
|
|
|
experimental-features = [ "variable-refresh-rate" ];
|
|
|
|
|
};
|
2026-01-05 09:25:10 +00:00
|
|
|
};
|
|
|
|
|
}];
|
2026-04-09 14:35:56 +01:00
|
|
|
|
2026-04-13 19:34:26 +01:00
|
|
|
qt = {
|
|
|
|
|
enable = true;
|
|
|
|
|
platformTheme = "gnome";
|
|
|
|
|
style = "adwaita-dark";
|
|
|
|
|
};
|
|
|
|
|
|
2026-01-05 09:25:10 +00:00
|
|
|
programs.xwayland.enable = true;
|
|
|
|
|
programs.dconf.enable = true;
|
2026-04-09 14:35:56 +01:00
|
|
|
|
|
|
|
|
# Home Manager GNOME settings
|
2026-04-09 16:12:08 +01:00
|
|
|
home-manager.users.fred = { config, lib, ... }: {
|
2026-04-09 14:35:56 +01:00
|
|
|
# Minimal titlebars — hide window buttons and shrink headerbar
|
|
|
|
|
home.file.".config/gtk-4.0/gtk.css".force = true;
|
|
|
|
|
home.file.".config/gtk-4.0/gtk.css".text = ''
|
2026-04-13 19:56:38 +01:00
|
|
|
@import url("colors.css");
|
2026-04-09 14:35:56 +01:00
|
|
|
headerbar {
|
|
|
|
|
min-height: 0;
|
|
|
|
|
padding: 0;
|
|
|
|
|
margin: 0;
|
|
|
|
|
}
|
|
|
|
|
headerbar .title {
|
|
|
|
|
font-size: 0;
|
|
|
|
|
}
|
Polish wallpaper theming across Shell, VSCodium, Zen, and GTK4
Comprehensive GNOME Shell theme: accent variable overrides, quick
toggle states, chevrons, sliders, sub-menus, header buttons,
overview/dash/search/app-grid styling. Fix GTK4 backdrop so Nautilus
keeps palette colors when unfocused. Expand VSCodium color coverage
(diff editor, widgets, notifications, scrollbars). Add more Zen
browser CSS variables for broader UI theming.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 22:21:07 +01:00
|
|
|
/* Keep wallpaper colors when window loses focus */
|
|
|
|
|
window:backdrop {
|
|
|
|
|
background-color: @window_bg_color;
|
|
|
|
|
color: @window_fg_color;
|
|
|
|
|
}
|
|
|
|
|
window:backdrop headerbar {
|
|
|
|
|
background-color: @headerbar_bg_color;
|
|
|
|
|
color: @headerbar_fg_color;
|
|
|
|
|
}
|
2026-04-13 22:32:57 +01:00
|
|
|
window:backdrop .navigation-sidebar,
|
|
|
|
|
window:backdrop .sidebar-pane {
|
Polish wallpaper theming across Shell, VSCodium, Zen, and GTK4
Comprehensive GNOME Shell theme: accent variable overrides, quick
toggle states, chevrons, sliders, sub-menus, header buttons,
overview/dash/search/app-grid styling. Fix GTK4 backdrop so Nautilus
keeps palette colors when unfocused. Expand VSCodium color coverage
(diff editor, widgets, notifications, scrollbars). Add more Zen
browser CSS variables for broader UI theming.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 22:21:07 +01:00
|
|
|
background-color: @sidebar_bg_color;
|
|
|
|
|
color: @sidebar_fg_color;
|
|
|
|
|
}
|
2026-04-13 22:32:57 +01:00
|
|
|
window:backdrop .top-bar {
|
|
|
|
|
background-color: @headerbar_bg_color;
|
|
|
|
|
color: @headerbar_fg_color;
|
|
|
|
|
}
|
2026-04-09 14:35:56 +01:00
|
|
|
'';
|
|
|
|
|
home.file.".config/gtk-3.0/gtk.css".force = true;
|
|
|
|
|
home.file.".config/gtk-3.0/gtk.css".text = ''
|
2026-04-14 09:46:45 +01:00
|
|
|
@import url("colors.css");
|
2026-04-09 14:35:56 +01:00
|
|
|
headerbar {
|
|
|
|
|
min-height: 0;
|
|
|
|
|
padding: 0;
|
|
|
|
|
margin: 0;
|
|
|
|
|
}
|
|
|
|
|
headerbar .title {
|
|
|
|
|
font-size: 0;
|
|
|
|
|
}
|
|
|
|
|
'';
|
|
|
|
|
|
|
|
|
|
# GNOME dconf settings
|
|
|
|
|
dconf.settings = {
|
|
|
|
|
# Interface / theme
|
|
|
|
|
"org/gnome/desktop/interface" = {
|
|
|
|
|
color-scheme = "prefer-dark";
|
2026-04-13 19:39:57 +01:00
|
|
|
gtk-theme = "adw-gtk3-dark";
|
2026-04-09 14:35:56 +01:00
|
|
|
enable-hot-corners = false;
|
|
|
|
|
accent-color = "purple";
|
|
|
|
|
cursor-theme = "Adwaita";
|
|
|
|
|
cursor-size = 24;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
# Wallpaper settings
|
|
|
|
|
"org/gnome/desktop/background" = {
|
|
|
|
|
picture-uri = "file://${config.home.homeDirectory}/.local/share/backgrounds/wallpaper.png";
|
|
|
|
|
picture-uri-dark = "file://${config.home.homeDirectory}/.local/share/backgrounds/wallpaper.png";
|
|
|
|
|
picture-options = "zoom";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
# Keyboard input sources
|
|
|
|
|
"org/gnome/desktop/input-sources" = {
|
|
|
|
|
sources = [
|
|
|
|
|
(lib.hm.gvariant.mkTuple [ "xkb" "gb" ])
|
|
|
|
|
(lib.hm.gvariant.mkTuple [ "xkb" "no" ])
|
|
|
|
|
];
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
# Window manager keybindings
|
|
|
|
|
"org/gnome/desktop/wm/keybindings" = {
|
|
|
|
|
close = ["<Super>q"];
|
|
|
|
|
toggle-fullscreen = ["<Super>f"];
|
|
|
|
|
};
|
|
|
|
|
"org/gnome/desktop/wm/preferences" = {
|
|
|
|
|
resize-with-right-button = lib.hm.gvariant.mkBoolean true;
|
|
|
|
|
button-layout = "";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
# Shell keybindings
|
|
|
|
|
"org/gnome/shell/keybindings" = {
|
|
|
|
|
show-screenshot-ui = ["<Shift><Super>s"];
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
# Custom keybindings
|
|
|
|
|
"org/gnome/settings-daemon/plugins/media-keys" = {
|
|
|
|
|
home = ["<Super>e"];
|
|
|
|
|
control-center = ["<Super>i"];
|
|
|
|
|
custom-keybindings = [
|
|
|
|
|
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/"
|
|
|
|
|
];
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = {
|
|
|
|
|
name = "Terminal";
|
|
|
|
|
command = "ghostty";
|
|
|
|
|
binding = "<Super>t";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
# Mouse acceleration
|
|
|
|
|
"org/gnome/desktop/peripherals/mouse" = {
|
|
|
|
|
accel-profile = "flat";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
# Just Perfection extension
|
|
|
|
|
"org/gnome/shell/extensions/just-perfection" = {
|
|
|
|
|
window-demands-attention-focus = true;
|
|
|
|
|
};
|
2026-04-13 21:20:41 +01:00
|
|
|
|
|
|
|
|
# User themes extension — load wallpaper shell theme
|
|
|
|
|
"org/gnome/shell/extensions/user-theme" = {
|
|
|
|
|
name = "WallpaperShell";
|
|
|
|
|
};
|
2026-04-09 14:35:56 +01:00
|
|
|
};
|
|
|
|
|
};
|
2026-01-05 09:25:10 +00:00
|
|
|
};
|
2025-12-03 15:46:37 +00:00
|
|
|
}
|