1

add dconf gnome setup

This commit is contained in:
2022-08-15 16:16:39 +02:00
parent 515846593a
commit 93b57a1b82

View File

@ -9,12 +9,21 @@ in {
options.modules.gnome = {
enable = mkEnableOpt "Gnome Desktop";
# TODO: Add option for dash-to-dock
extensions = mkBoolOpt false "Enable Gnome shell-extensions";
# TODO: Add other themes, whitesur for example
theme = {
papirusIcons = mkBoolOpt false "Enable the Papirus icon theme";
numixCursor = mkBoolOpt false "Enable the Numix cursor theme";
wallpaper = mkOption {
type = types.str;
default = "constructionsite";
description = "What wallpaper to use";
};
};
settings = {
};
};
@ -24,6 +33,10 @@ in {
assertion = nixosConfig.services.xserver.desktopManager.gnome.enable;
message = "Can't enable Gnome module when Gnome is not enabled!";
}
{
assertion = nixosConfig.programs.dconf.enable;
message = "Can't enable Gnome module when programs.dconf is not enabled!";
}
];
gtk = mkMerge [
@ -47,20 +60,20 @@ in {
})
];
# TODO: GSettings overrides (home-manager dconf.settings)
home.packages = with pkgs; builtins.concatLists [
[
# gnome.gnome-session # Allow to start gnome from tty (sadly this is not usable, many things don't work)
gnome.gnome-boxes # VM
gnome.sushi # Gnome files previews
# gnome.sushi # Gnome files previews (use service, has to be added to dbus packages)
gnome.gnome-logs # systemd log viewer
gnome.gnome-tweaks # conflicts with nixos/hm gnome settings file sometimes, watch out what settings to change
gnome.gnome-nettool
gnome.simple-scan
gnome.gnome-sound-recorder
gnome.file-roller # archive manager
gnome.dconf-editor
# gnome.dconf-editor
dconf-editor-wrapped # Sets XDG_DATA_DIRS to include all gsettings-schemas
gsettings-desktop-schemas
# gnome-usage # Alternative system performance monitor (gnome.gnome-system-monitor is the preinstalled one)
# gnome-secrets # Alternative keepass database viewer
gnome-firmware
@ -68,28 +81,280 @@ in {
(optionals cfg.extensions [
gnomeExtensions.appindicator
gnomeExtensions.blur-my-shell
gnomeExtensions.sound-output-device-chooser
gnomeExtensions.vitals
gnomeExtensions.no-overview
# gnomeExtensions.switch-workspace
gnomeExtensions.maximize-to-empty-workspace
gnomeExtensions.pip-on-top
gnomeExtensions.custom-hot-corners-extended
# gnomeExtensions.dock-from-dash
gnomeExtensions.gamemode
# gnomeExtensions.gsconnect # kde connect alternative
# gnomeExtensions.quake-mode # dropdown for any application
# gnomeExtensions.systemd-manager # to quickly start nextcloud
gnomeExtensions.extensions-sync
gnomeExtensions.tweaks-in-system-menu
# gnomeExtensions.compiz-windows-effect # WobBlY wiNdoWS
gnomeExtensions.panel-scroll
gnomeExtensions.rounded-window-corners
# gnomeExtensions.easyeffects-preset-selector # Throws error com.sth could not be found, dbus problem?
gnomeExtensions.launch-new-instance
gnomeExtensions.auto-activities
gnomeExtensions.blur-my-shell
gnomeExtensions.custom-hot-corners-extended
gnomeExtensions.extensions-sync
gnomeExtensions.gamemode
gnomeExtensions.launch-new-instance
gnomeExtensions.maximize-to-empty-workspace
gnomeExtensions.no-overview
gnomeExtensions.pip-on-top
gnomeExtensions.rounded-window-corners
gnomeExtensions.sound-output-device-chooser
gnomeExtensions.tweaks-in-system-menu
gnomeExtensions.vitals
])
];
# TODO: Check what gnome-tweaks sets
dconf.settings = with lib.hm.gvariant; {
# TODO: Connect with audio.easyeffects settings
"com/github/wwmm/easyeffects" = {
process-all-inputs = true;
process-all-outputs = true;
shutdown-on-window-close = false;
};
"com/github/wwmm/easyeffects/spectrum" = {
show = false;
};
"org/gnome/boxes" = {
view = "list-view";
};
"org/gnome/calculator" = {
accuracy = 2;
angle-units = "radians";
base = 10;
button-mode = "programming";
number-format = "scientific";
show-thousands = true;
show-zeroes = false;
word-size = 64;
};
"org/gnome/desktop/background" = {
color-shading-type = "solid";
picture-options = "zoom";
picture-uri = "file://${config.home.homeDirectory}/NixFlake/config/wallpaper/${cfg.theme.wallpaper}.jpg";
picture-uri-dark = "file://${config.home.homeDirectory}/NixFlake/config/wallpaper/${cfg.theme.wallpaper}.jpg";
};
"org/gnome/desktop/calendar" = {
show-weekdate = true;
};
"org/gnome/desktop/datetime" = {
automatic-timezone = true;
};
"org/gnome/desktop/file-sharing" = {
require-password = "never";
};
"org/gnome/desktop/interface" = {
clock-format = "24h";
clock-show-date = true;
clock-show-seconds = false;
clock-show-weekday = true;
# cursor-size, cursor-theme set by home-manager
document-font-name = "Source Han Sans 11";
enable-hot-corners = false; # TODO: Make dependent on if extended hot corners extension is installed
font-antialiasing = "rgba";
font-hinting = "slight";
font-name = "Source Han Sans 11";
# gtk-theme, icon-theme set by home-manager
monospace-font-name = "VictorMono Nerd Font Mono Semi-Bold 10";
};
"org/gnome/desktop/peripherals/touchpad" = {
middle-click-emulation = true;
# TODO: Check natural-scroll (I can't remember which is which)
two-finger-scrolling-enabled = true;
};
"org/gnome/desktop/privacy" = {
old-files-age = 7;
recent-files-max-age = 7;
remove-old-temp-files = true;
remove-old-trash-files = true;
report-technical-problems = false;
send-software-usage-stats = false;
};
"org/gnome/desktop/screensaver" = {
color-shading-type = "solid";
picture-options = "zoom";
picture-uri = "file://${config.home.homeDirectory}/NixFlake/config/wallpaper/${cfg.theme.wallpaper}.jpg";
};
# TODO: "org/gnome/desktop/wm/keybindings" = {};
"org/gnome/desktop/wm/preferences" = {
action-middle-click-titlebar = "toggle-shade";
button-layout = "appmenu:minimize,maximize,close";
focus-mode = "click";
mouse-button-modifier = "<Alt>";
resize-with-right-button = true;
# theme set by home-manager
titlebar-font = "Source Han Sans Bold 11";
};
# TODO: Revisit after Gnome 43 update
"org/gnome/epiphany" = {
ask-for-default = false;
default-search-engine = "Google";
homepage-url = "about:newtab";
use-google-search-suggestions = true;
};
"org/gnome/epiphany/web" = {
remember-passwords = false;
};
"org/gnome/mutter" = {
attach-modal-dialogs = true;
dynamic-workspaces = true;
edge-tiling = true;
experimental-features = [
"autoclose-xwayland"
"rt-scheduler"
"scale-monitor-framebuffer"
];
};
"org/gnome/nautilus/icon-view" = {
captions = [ "size" "date_modified" "none" ];
default-zoom-level = "larger";
};
"org/gnome/nautilus/list-view" = {
use-tree-view = true;
};
"org/gnome/nautilus/preferences" = {
always-use-locateion-entry = true;
click-policy = "double";
default-folder-viewer = "list-view";
search-view = "list-view";
show-create-link = true;
show-delete-permanently = true;
};
"org/gnome/settings-daemon/plugins/color" = {
night-light-enabled = true;
night-light-temperature = 4700;
};
"org/gnome/settings-daemon/plugins/power" = {
power-button-action = "interactive";
sleep-inactive-ac-type = "nothing";
};
"org/gnome/shell" = {
always-show-log-out = true;
disable-user-extensions = false;
disabled-extensions = [
"native-window-placement@gnome-shell-extensions.gcampax.github.com"
"auto-move-windows@gnome-shell-extensions.gcampax.github.com"
"places-menu@gnome-shell-extensions.gcampax.github.com"
"apps-menu@gnome-shell-extensions.gcampax.github.com"
"drive-menu@gnome-shell-extensions.gcampax.github.com"
"user-theme@gnome-shell-extensions.gcampax.github.com"
];
enabled-extensions = with pkgs; builtins.concatLists [
[
"workspace-indicator@gnome-shell-extensions.gcampax.github.com"
]
(optionals cfg.extensions [
gnomeExtensions.appindicator.extensionUuid
gnomeExtensions.auto-activities.extensionUuid
gnomeExtensions.blur-my-shell.extensionUuid
gnomeExtensions.custom-hot-corners-extended.extensionUuid
gnomeExtensions.extensions-sync.extensionUuid
gnomeExtensions.gamemode.extensionUuid
gnomeExtensions.launch-new-instance.extensionUuid
gnomeExtensions.maximize-to-empty-workspace.extensionUuid
gnomeExtensions.no-overview.extensionUuid
gnomeExtensions.pip-on-top.extensionUuid
gnomeExtensions.rounded-window-corners.extensionUuid
gnomeExtensions.sound-output-device-chooser.extensionUuid
gnomeExtensions.tweaks-in-system-menu.extensionUuid
gnomeExtensions.vitals.extensionUuid
])
];
};
"org/gnome/shell/app-switcher" = {
current-workspace-only = true;
};
"org/gnome/shell/extensions/blur-my-shell" = {
brightness = 0.5;
noise-amount = 0;
sigma = 15;
};
"org/gnome/shell/extensions/blur-my-shell/dash-to-dock" = {
blur = true;
};
"org/gnome/shell/extensions/blur-my-shell/panel" = {
blur = true;
customize = false;
unblur-dynamically = true;
};
"org/gnome/shell/extensions/custom-hot-corners-extended/monitor-0-top-left-0" = {
action = "toggle-overview";
};
"org/gnome/shell/extensions/extension-sync" = {
github-gist-id = "e6054442efa04732fe9998cb1b8fb53c";
};
"org/gnome/shell/extensions/vitals" = {
fixed-widths = true;
hide-icons = false;
hide-zeros = false;
hot-sensors = [ "__network-rx_max__" ];
position-in-panel = 2;
show-battery = false;
show-fan = false;
show-storage = false;
show-voltage = false;
use-higher-precision = false;
};
# TODO: "org/gnome/shell/keybindings" = {};
# NOTE: Some duplicates from mutter
"org/gnome/shell/overrides" = {
attach-modal-dialogs = true;
dynamic-workspaces = true;
edge-tiling = true;
};
"org/gnome/software" = {
allow-updates = true;
download-updates = false;
download-updates-notify = true;
};
"org/gnome/system/location" = {
enabled = true;
};
"org/gnome/TextEditor" = {
auto-indent = true;
custom-font = "Victor Mono Semi-Bold 11";
highlight-current-line = true;
indent-style = "space";
show-gird = false;
show-line-numbers = true;
show-map = true;
show-right-margin = false;
tab-width = 4;
use-system-font = false;
wrap-text = false;
};
"system/proxy" = {
mode = "none";
};
};
};
}