From e45a05d026ac47af1bdc014e868f58d43f45eaf1 Mon Sep 17 00:00:00 2001 From: Remy Moll Date: Sun, 1 Sep 2024 16:08:07 +0200 Subject: [PATCH] shell customization --- flake.lock | 23 +++- modules/home-manager/flatpaks.nix | 16 ++- .../gnome-shell-customization.nix | 107 +++++++++++++++++- users/remy.nix | 20 +++- 4 files changed, 148 insertions(+), 18 deletions(-) diff --git a/flake.lock b/flake.lock index 7e7ec13..7cfebaf 100644 --- a/flake.lock +++ b/flake.lock @@ -21,13 +21,29 @@ "type": "github" } }, + "nix-flatpak": { + "locked": { + "lastModified": 1711997201, + "narHash": "sha256-J71xzQlVYsjagA4AsVwRazhBh2rZrPpKvxTgs6UzL7c=", + "owner": "gmodena", + "repo": "nix-flatpak", + "rev": "b76fa31346db7fc958a9898f3c594696ca71c4fd", + "type": "github" + }, + "original": { + "owner": "gmodena", + "ref": "v0.4.1", + "repo": "nix-flatpak", + "type": "github" + } + }, "nixpkgs": { "locked": { - "lastModified": 1724727824, - "narHash": "sha256-0XH9MJk54imJm+RHOLTUJ7e+ponLW00tw5ke4MTVa1Y=", + "lastModified": 1725001927, + "narHash": "sha256-eV+63gK0Mp7ygCR0Oy4yIYSNcum2VQwnZamHxYTNi+M=", "owner": "nixos", "repo": "nixpkgs", - "rev": "36bae45077667aff5720e5b3f1a5458f51cf0776", + "rev": "6e99f2a27d600612004fbd2c3282d614bfee6421", "type": "github" }, "original": { @@ -56,6 +72,7 @@ "root": { "inputs": { "home-manager": "home-manager", + "nix-flatpak": "nix-flatpak", "nixpkgs": "nixpkgs", "nixpkgs-unstable": "nixpkgs-unstable" } diff --git a/modules/home-manager/flatpaks.nix b/modules/home-manager/flatpaks.nix index a90d42c..efe9de6 100644 --- a/modules/home-manager/flatpaks.nix +++ b/modules/home-manager/flatpaks.nix @@ -4,16 +4,14 @@ services.flatpak.update.auto.enable = false; services.flatpak.uninstallUnmanaged = false; + services.flatpak.packages = [ - #{ appId = "com.brave.Browser"; origin = "flathub"; } - com.calibre_ebook.calibre - com.github.flxzt.rnote - com.github.tchx84.Flatseal - com.spotify.Client - io.podman_desktop.PodmanDesktop - org.pipewire.Helvum - #"com.obsproject.Studio" - #"im.riot.Riot" + "com.calibre_ebook.calibre" + "com.github.flxzt.rnote" + "com.github.tchx84.Flatseal" + "com.spotify.Client" + "io.podman_desktop.PodmanDesktop" + "org.pipewire.Helvum" ]; } \ No newline at end of file diff --git a/modules/home-manager/gnome-shell-customization.nix b/modules/home-manager/gnome-shell-customization.nix index e15bb35..81191a0 100644 --- a/modules/home-manager/gnome-shell-customization.nix +++ b/modules/home-manager/gnome-shell-customization.nix @@ -1,15 +1,114 @@ -{pkgs, ...}: +{pkgs, ...}: +with lib.hm.gvariant; { ## Gnome extensions programs.gnome-shell = { enable = true; extensions = [ - { package = pkgs.gnomeExtensions.dash-to-panel; } + { + package = pkgs.gnomeExtensions.dash-to-dock; + } { id = "tilingshell@ferrarodomenico.com"; package = pkgs.gnome.gnome-shell-extensions; } - + { + id = "search-light@icedman.github.com"; + package = pkgs.gnome.gnome-shell-extensions; + } + { + package = pkgs.gnomeExtensions.window-gestures; + } + { + package = pkgs.gnomeExtensions.random-wallpaper; + } ]; }; -} + + + ## And their settings (stored in dconf) + dconf.settings."org/gnome/shell/extensions/tilingshell" = { + inner-gaps = mkUint32 8; + layouts-json = '' + [{"id":"Layout 2","tiles":[{"x":0,"y":0,"width":0.22,"height":1,"groups":[1]},{"x":0.22,"y":0,"width":0.56,"height":1,"groups":[1,2]},{"x":0.78,"y":0,"width":0.22,"height":1,"groups":[2]}]},{"id":"Layout 3","tiles":[{"x":0,"y":0,"width":0.33,"height":1,"groups":[1]},{"x":0.33,"y":0,"width":0.67,"height":1,"groups":[1]}]},{"id":"Layout 4","tiles":[{"x":0,"y":0,"width":0.67,"height":1,"groups":[1]},{"x":0.67,"y":0,"width":0.33,"height":1,"groups":[1]}]},{"id":"2732837","tiles":[{"x":0,"y":0,"width":0.5002604166666667,"height":1,"groups":[1]},{"x":0.5002604166666667,"y":0,"width":0.49973958333333335,"height":1,"groups":[1]}]},{"id":"241562","tiles":[{"x":0,"y":0,"width":0.3328488372093023,"height":1,"groups":[1]},{"x":0.3328488372093023,"y":0,"width":0.33430232558139533,"height":1,"groups":[2,1]},{"x":0.6671511627906976,"y":0,"width":0.3328488372093023,"height":1,"groups":[2]}]}] + ''; + outer-gaps = mkUint32 0; + overridden-settings = '' + {"org.gnome.mutter.keybindings":{"toggle-tiled-right":"['Right']","toggle-tiled-left":"['Left']"},"org.gnome.desktop.wm.keybindings":{"maximize":"['Up']","unmaximize":"['Down', 'F5']"},"org.gnome.mutter":{"edge-tiling":"true"}} + ''; + selected-layouts = [ "Layout 4" ]; + }; + + + dconf.settings."org/gnome/shell/extensions/search-light" = { + background-color = mkTuple [ 0.20333333313465118 0.20333333313465118 0.20333333313465118 0.80236488580703735 ]; + blur-background = false; + entry-font-size = 1; + monitor-count = 1; + scale-height = 0.10000000000000001; + scale-width = 0.20000000000000001; + shortcut-search = [ "space" ]; + popup-at-cursor-monitor = true; + show-panel-icon = false; + }; + + dconf.settings."org/gnome/shell/extensions/windowgestures" = { + pinch-enable = false; + swipe4-left = 9; + swipe4-right = 8; + swipe4-updown = 0; + three-finger = true; + }; + + dconf.settings."org/gnome/shell/extensions/dash-to-dock" = { + background-opacity = 0.80000000000000004; + custom-theme-shrink = true; + dash-max-icon-size = 40; + dock-position = "BOTTOM"; + height-fraction = 0.90000000000000002; + preview-size-scale = 0.29999999999999999; + show-running = true; + show-trash = false; + show-windows-preview = true; + }; + + dconf.settings."org/gnome/shell/extensions/space-iflow-randomwallpaper" = { + auto-fetch = true; + # TODO: make this user agnostic + favorites-folder = "/home/remy/Pictures/wallpapers"; + hours = 12; + minutes = 0; + sources = [ "1725199048703" "1725199131523" ]; + + backend-connection = { + backend-connection-available = true; + clear-history = false; + open-folder = false; + pause-timer = false; + request-new-wallpaper = false; + }; + + sources = { + general = { + "1725199048703" = { + name = "Reddit"; + type = 2; + }; + "1725199131523" = { + name = "Unsplash"; + }; + }; + reddit = { + "1725199048703" = { + allow-sfw = true; + subreddits = "wallpaper,wallpapers,minimalwallpaper"; + }; + }; + unsplash = { + "1725199131523" = { + keyword = "minmal"; + }; + }; + } + }; +} \ No newline at end of file diff --git a/users/remy.nix b/users/remy.nix index c737945..33dfc87 100644 --- a/users/remy.nix +++ b/users/remy.nix @@ -2,10 +2,11 @@ with lib.hm.gvariant; { imports = [ - #../modules/home-manager/gnome-shell-customization.nix ../modules/home-manager/fish.nix ../modules/home-manager/browser.nix ../modules/home-manager/code.nix + ../modules/home-manager/flatpaks.nix + ../modules/home-manager/gnome-shell-customization.nix ]; ## Home Manager configuration @@ -27,7 +28,7 @@ with lib.hm.gvariant; }; - ## Gnome settings + ## Gnome keyboard and mouse settings dconf.settings = { # set the keyboard layout to german "org/gnome/desktop/input-sources" = { @@ -35,5 +36,20 @@ with lib.hm.gvariant; sources = [ (mkTuple [ "xkb" "de" ]) (mkTuple [ "xkb" "ch" ]) (mkTuple [ "xkb" "us" ]) ]; xkb-options = [ "lv3:ralt_switch" ]; }; + + "org/gnome/desktop/peripherals/keyboard" = { + numlock-state = true; + } + + "org/gnome/desktop/peripherals/mouse" = { + natural-scroll = false; + speed = 0.20851063829787231; + } + + "org/gnome/desktop/peripherals/touchpad" = { + tap-to-click = true; + two-finger-scrolling-enabled = true; + speed = 0.16872427983539096; + } }; }