diff --git a/gnome.nix b/gnome.nix new file mode 100644 index 0000000..aae1314 --- /dev/null +++ b/gnome.nix @@ -0,0 +1,103 @@ +{ config, pkgs, ... }: { + + home.packages = with pkgs.gnomeExtensions; [ + blur-my-shell + quick-settings-tweaker + user-themes + caffeine + rounded-window-corners + paperwm + ]; + + home.file.".config/paperwm/user.css".source = ./sources/paperwm/user.css; + + # Refer to https://hoverbear.org/blog/declarative-gnome-configuration-in-nixos/ + dconf.settings = { + "org/gnome/calculator" = { + button-mode = "programming"; + show-thousands = true; + base = 10; + }; + + # Enable dark theme using adw-gtk3 to make GTK3 apps look coherent + "org/gnome/desktop/interface" = { + gtk-theme = "adw-gtk3-dark"; + color-scheme = "prefer-dark"; + }; + + "org/gnome/desktop/wm/keybindings" = { + close = [ "q" ]; + }; + + "org/gnome/shell".enabled-extensions = [ + "quick-settings-tweaks@qwreey" + "caffeine@patapon.info" + "blur-my-shell@aunetx" + "paperwm@paperwm.github.com" + ]; + + "org/gnome/mutter".dynamic-workspaces = true; + + "org/gnome/shell".favorite-apps = [ + "org.gnome.Console.desktop" + "librewolf.desktop" + "org.gnome.Nautilus.desktop" + "org.gnome.World.Secrets.desktop" + "signal-desktop.desktop" + ]; + + "org/gnome/desktop/app-folders/folders/Office" = { + name = "Office"; + apps = [ + "startcenter.desktop" + "base.desktop" + "writer.desktop" + "calc.desktop" + "impress.desktop" + "draw.desktop" + "math.desktop" + ]; + }; + + "org/gnome/desktop/app-folders/folders/Programming" = { + name = "Programming"; + apps = [ + "jupyterlab.desktop" + "jupyter-notebook.desktop" + "Helix.desktop" + "ghidra.desktop" + ]; + }; + + "org/gnome/desktop/app-folders/folders/Graphics" = { + name = "Graphics"; + apps = [ + "org.kde.krita.desktop" + "gimp.desktop" + "com.github.flxzt.rnote.desktop" + ]; + }; + + "org/gnome/desktop/app-folders/folders/AltBrowsers" = { + name = "Alt Browsers"; + apps = [ + "torbrowser.desktop" + "chromium-browser.desktop" + ]; + }; + + "org/gnome/desktop/app-folders".folder-children = [ + "Utilities" + "Office" + "Programming" + "Graphics" + "AltBrowsers" + ]; + + # notebooks with touchpads + "org/gnome/desktop/peripherals/touchpad".tap-to-click = true; + + # disable hot corners + "org/gnome/desktop/interface".enable-hot-corners = false; + }; +} diff --git a/home.nix b/home.nix index 2ae85ae..5689ebd 100644 --- a/home.nix +++ b/home.nix @@ -1,6 +1,9 @@ { config, pkgs, ... }: { + + imports = [ ./gnome.nix ]; + home = { file = { ".config/helix/config.toml".source = ./sources/helix/config.toml; @@ -21,107 +24,9 @@ GOBIN = "${config.home.sessionVariables.GOPATH}/bin"; }; - packages = with pkgs.gnomeExtensions; [ - blur-my-shell - quick-settings-tweaker - user-themes - caffeine - rounded-window-corners - ]; - stateVersion = "24.05"; }; - # Refer to https://hoverbear.org/blog/declarative-gnome-configuration-in-nixos/ - dconf.settings = { - - "org/gnome/calculator" = { - button-mode = "programming"; - show-thousands = true; - base = 10; - }; - - # Enable dark theme using adw-gtk3 to make GTK3 apps look coherent - "org/gnome/desktop/interface" = { - gtk-theme = "adw-gtk3-dark"; - color-scheme = "prefer-dark"; - }; - - "org/gnome/desktop/wm/keybindings" = { - close = [ "q" ]; - }; - - "org/gnome/shell".enabled-extensions = [ - "quick-settings-tweaks@qwreey" - "caffeine@patapon.info" - "blur-my-shell@aunetx" - ]; - - "org/gnome/mutter".dynamic-workspaces = true; - - "org/gnome/shell".favorite-apps = [ - "org.gnome.Console.desktop" - "librewolf.desktop" - "org.gnome.Nautilus.desktop" - "org.gnome.World.Secrets.desktop" - "signal-desktop.desktop" - ]; - - "org/gnome/desktop/app-folders/folders/Office" = { - name = "Office"; - apps = [ - "startcenter.desktop" - "base.desktop" - "writer.desktop" - "calc.desktop" - "impress.desktop" - "draw.desktop" - "math.desktop" - ]; - }; - - "org/gnome/desktop/app-folders/folders/Programming" = { - name = "Programming"; - apps = [ - "jupyterlab.desktop" - "jupyter-notebook.desktop" - "Helix.desktop" - "ghidra.desktop" - ]; - }; - - "org/gnome/desktop/app-folders/folders/Graphics" = { - name = "Graphics"; - apps = [ - "org.kde.krita.desktop" - "gimp.desktop" - "com.github.flxzt.rnote.desktop" - ]; - }; - - "org/gnome/desktop/app-folders/folders/AltBrowsers" = { - name = "Alt Browsers"; - apps = [ - "torbrowser.desktop" - "chromium-browser.desktop" - ]; - }; - - "org/gnome/desktop/app-folders".folder-children = [ - "Utilities" - "Office" - "Programming" - "Graphics" - "AltBrowsers" - ]; - - # notebooks with touchpads - "org/gnome/desktop/peripherals/touchpad".tap-to-click = true; - - # disable hot corners - "org/gnome/desktop/interface".enable-hot-corners = false; - }; - xdg.desktopEntries.ocr = { name = "Screen Grab OCR"; exec = "${pkgs.writeScript "ocr" '' diff --git a/sources/paperwm/user.css b/sources/paperwm/user.css new file mode 100644 index 0000000..3fdadbb --- /dev/null +++ b/sources/paperwm/user.css @@ -0,0 +1,3 @@ +.paperwm-selection { + border-radius: 12px !important; +}