{ tree, nixosConfig, pkgs, lib, inputs, ... }: let hm = inputs.home-manager.lib.hm; font-sizes-all = { default = { small = "14"; medium = "16"; }; tablet = { small = "8"; medium = "10"; }; }; font-sizes = if nixosConfig.networking.hostName == "tablet" then font-sizes-all.tablet else font-sizes-all.default; in { imports = with tree; [ home.apps.kitty home.apps.rofi ]; home.packages = with pkgs; [ dconf2nix gnome.dconf-editor xclip ]; dconf.enable = true; dconf.settings = { "org/gnome/mutter" = { dynamic-workspaces = false; }; "org/gnome/desktop/interface" = { # Clock at Top Bar #clock-show-seconds = true; clock-show-weekday = true; # Battery Percentage on Top Bar show-battery-percentage = true; # Cursor Size (only seems to affect VSCode??) # TODO: Fix This cursor-size = 32; # I hate animations. enable-animations = false; # Handy for when using mouse. enable-hot-corners = true; # Fonts and hinting settings. # TODO: Maybe do this with fontconfig too? font-antialiasing = "rgba"; font-hinting = "full"; font-name = "Comic Code ${font-sizes.medium}"; monospace-font-name = "Comic Code ${font-sizes.small}"; color-scheme = "prefer-dark"; }; "org/gnome/desktop/input-sources" = { # TODO: see if this changes when using gnome wayland? sources = [ (hm.gvariant.mkTuple [ "xkb" "gb" ]) ]; per-window = false; }; "org/gnome/desktop/media-handling" = { # growl i hate this until i sometimes dont in which case i love it automount = false; }; "org/gnome/desktop/notifications" = { show-in-lockscreen = false; }; "org/gnome/desktop/peripherals/mouse" = { # NO! natural-scroll = false; }; "org/gnome/desktop/peripherals/touchpad" = { # NO! natural-scroll = false; # YES! two-finger-scrolling-enabled = true; tap-to-click = nixosConfig.networking.hostName == "tablet"; }; "org/gnome/desktop/privacy" = { hide-identity = true; old-files-age = 5; recent-files-max-age = 0; remember-app-usage = false; remember-recent-files = false; remove-old-temp-files = true; remove-old-trash-files = true; }; # use location services to set time "org/gnome/system/location" = { enabled = true; }; "org/gnome/desktop/datetime" = { automatic-timezone = true; } "org/gnome/desktop/wm/keybindings" = { # mostly just i3wm stock keybinds close = [ "q" ]; maximize = [ "f" ]; toggle-fullscreen = [ "f" ]; # Workspace Switch switch-to-workspace-1 = [ "1" ]; switch-to-workspace-2 = [ "2" ]; switch-to-workspace-3 = [ "3" ]; switch-to-workspace-4 = [ "4" ]; switch-to-workspace-5 = [ "5" ]; switch-to-workspace-6 = [ "6" ]; switch-to-workspace-7 = [ "7" ]; switch-to-workspace-8 = [ "8" ]; switch-to-workspace-9 = [ "9" ]; # Workspace Move Window # TODO: Hardcoded for UK keyboards move-to-workspace-1 = [ "exclam" ]; move-to-workspace-2 = [ "quotedbl" ]; move-to-workspace-3 = [ "sterling" ]; move-to-workspace-4 = [ "dollar" ]; move-to-workspace-5 = [ "percent" ]; move-to-workspace-6 = [ "asciicircum" ]; move-to-workspace-7 = [ "ampersand" ]; move-to-workspace-8 = [ "asterisk" ]; move-to-workspace-9 = [ "parenleft" ]; }; "org/gnome/desktop/wm/preferences" = { num-workspaces = 9; titlebar-font = "Comic Code Medium ${font-sizes.small}"; titlebar-uses-system-font = true; }; "org/gnome/settings-daemon/plugins/media-keys" = { area-screenshot = [ ]; area-screenshot-clip = [ "Print" ]; screenshot = [ ]; screenshot-clip = [ "Print" ]; custom-keybindings = [ # Rofi & Kitty "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/rofi/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/kitty/" ]; }; "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/rofi" = { binding = "d"; command = "rofi -show run"; name = "rofi"; }; "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/kitty" = { binding = "Return"; command = "kitty"; name = "kitty"; }; "org/gnome/shell" = { enabled-extensions = [ "just-perfection-desktop@just-perfection" ]; }; "org/gnome/shell/extensions/just-perfection" = { activities-button = true; animation = 0; dash = false; dash-icon-size = 0; panel = true; panel-in-overview = true; search = false; show-apps-button = true; show-prefs-intro = false; theme = false; workspace = true; workspace-popup = false; workspace-switcher-should-show = false; }; }; }