~ruther/nixos-config

b2719228b39a4352a58bd52722c0649fef530075 — Frantisek Bohacek 1 year, 4 months ago 5cb27c2
feat: add gnome extensions, tiling keybindings
2 files changed, 90 insertions(+), 130 deletions(-)

M modules/desktop/gnome/default.nix
M modules/desktop/gnome/home.nix
M modules/desktop/gnome/default.nix => modules/desktop/gnome/default.nix +6 -0
@@ 26,6 26,12 @@
      gnome.dconf-editor
      gnome.gnome-tweaks
      gnome.adwaita-icon-theme
      gnomeExtensions.paperwm
      gnomeExtensions.fullscreen-avoider
      gnomeExtensions.vitals
      gnomeExtensions.openweather
      gnomeExtensions.clipboard-history
      gnomeExtensions.forge
    ];
    gnome.excludePackages = (with pkgs; [         # Gnome ignored packages
      gnome-tour

M modules/desktop/gnome/home.nix => modules/desktop/gnome/home.nix +84 -130
@@ 10,24 10,25 @@
  dconf.settings = {
    "org/gnome/shell" = {
      favorite-apps = [
        "org.gnome.Settings.desktop"
        "Alacritty.desktop"
        "firefox.desktop"
        "emacs.desktop"
        "org.gnome.Nautilus.desktop"
        "smartcode-stremio.desktop"
        "discord.desktop"
        "telegram-desktop.desktop"
        "steam.desktop"
        "retroarch.desktop"
        "com.parsecgaming.parsec.desktop"
        "org.remmina.Remmina.desktop"
        "virt-manager.desktop"
        "blueman-manager.desktop"
        "pavucontrol.desktop"
      ];
      disable-user-extensions = false;
      enabled-extensions = [
        "paperwm@paperwm.github.com"
        "auto-move-windows@gnome-shell-extensions.gcampax.github.com"
        "launch-new-instance@gnome-shell-extensions.gcampax.github.com"
        "native-window-placement@gnome-shell-extensions.gcampax.github.com"
        "places-menu@gnome-shell-extensions.gcampax.github.com"
        "drive-menu@gnome-shell-extensions.gcampax.github.com"
        "Vitals@CoreCoding.com"
        "clipboard-history@alexsaveau.dev"
      ];
    };



@@ 49,154 50,107 @@
      resize-with-right-button = true;
      mouse-button-modifier = "<Super>";
      button-layout = ":minimize,close";
      num-workspaces = 9;
    };
    "org/gnome/shell/keybindings" = {
      switch-to-application-1 = ["@as []"];
      switch-to-application-2 = ["@as []"];
      switch-to-application-3 = ["@as []"];
      switch-to-application-4 = ["@as []"];
      switch-to-application-5 = ["@as []"];
      switch-to-application-6 = ["@as []"];
      switch-to-application-7 = ["@as []"];
      switch-to-application-8 = ["@as []"];
      switch-to-application-9 = ["@as []"];
    };
    "org/gnome/desktop/wm/keybindings" = {
      # maximize = ["<Super>Up"];                     # For floating
      # unmaximize = ["<Super>Down"];
      maximize = ["@as []"];                          # For tilers
      unmaximize = ["@as []"];
      switch-to-workspace-left = ["<Alt>Left"];
      switch-to-workspace-right = ["<Alt>Right"];
      switch-to-workspace-1 = ["<Alt>1"];
      switch-to-workspace-2 = ["<Alt>2"];
      switch-to-workspace-3 = ["<Alt>3"];
      switch-to-workspace-4 = ["<Alt>4"];
      switch-to-workspace-5 = ["<Alt>5"];
      move-to-workspace-left = ["<Shift><Alt>Left"];
      move-to-workspace-right = ["<Shift><Alt>Right"];
      move-to-workspace-1 = ["<Shift><Alt>1"];
      move-to-workspace-2 = ["<Shift><Alt>2"];
      move-to-workspace-3 = ["<Shift><Alt>3"];
      move-to-workspace-4 = ["<Shift><Alt>4"];
      move-to-workspace-5 = ["<Shift><Alt>5"];
      move-to-monitor-left = ["<Super><Alt>Left"];
      move-to-monitor-right = ["<Super><Alt>Right"];
      close = ["<Super>q" "<Alt>F4"];
      switch-to-workspace-1 = ["<Super>1"];
      switch-to-workspace-2 = ["<Super>2"];
      switch-to-workspace-3 = ["<Super>3"];
      switch-to-workspace-4 = ["<Super>4"];
      switch-to-workspace-5 = ["<Super>5"];
      switch-to-workspace-6 = ["<Super>6"];
      switch-to-workspace-7 = ["<Super>7"];
      switch-to-workspace-8 = ["<Super>8"];
      switch-to-workspace-9 = ["<Super>9"];

      move-to-workspace-left = ["<Super><Shift>a"];
      move-to-workspace-right = ["<Super><Shift>d"];

      move-to-workspace-1 = ["<Super><Shift>1"];
      move-to-workspace-2 = ["<Super><Shift>2"];
      move-to-workspace-3 = ["<Super><Shift>3"];
      move-to-workspace-4 = ["<Super><Shift>4"];
      move-to-workspace-5 = ["<Super><Shift>5"];
      move-to-workspace-6 = ["<Super><Shift>6"];
      move-to-workspace-7 = ["<Super><Shift>7"];
      move-to-workspace-8 = ["<Super><Shift>8"];
      move-to-workspace-9 = ["<Super><Shift>9"];

      close = ["<Super>w" "<Alt>F4"];
      toggle-fullscreen = ["<Super>f"];
    };

    "org/gnome/mutter" = {
      workspaces-only-on-primary = false;
      center-new-windows = true;
      edge-tiling = false;                            # Disabled when tiling
    };
    "org/gnome/mutter/keybindings" = {
      #toggle-tiled-left = ["<Super>Left"];           # For floating
      #toggle-tiled-right = ["<Super>Right"];
      toggle-tiled-left = ["@as []"];                 # For tilers
      toggle-tiled-right = ["@as []"];
      panel-run-dialog = "<Super>semicolon";
    };

    "org/gnome/settings-daemon/plugins/power" = {
      sleep-interactive-ac-type = "nothing";
    };

    "org/gnome/settings-daemon/plugins/media-keys" = {
      custom-keybindings = [
        "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/"
        "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/"
        "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/"
      ];
    };
    "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = {
      binding = "<Super>Return";
      binding = "<Shift><Super>Return";
      command = "alacritty";
      name = "open-terminal";
    };
    "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = {
      binding = "<Super>t";
      command = "emacs";
      name = "open-editor";
    };
    "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2" = {
      binding = "<Super>e";
      command = "nautilus";
      name = "open-file-browser";
      command = "emacs-client";
      name = "open-emacs";
    };

    "org/gnome/shell/extension/dash-to-panel" = {     # Possibly need to set this manually
      panel-position = ''{"0":"TOP","1":"Top"}'';
      panel-sizes = ''{"0":24,"1":24}'';
      panel-element-positions-monitors-sync = true;
      appicon-margin = 0;
      appicon-padding = 4;
      dot-position = "TOP";
      dot-style-focused = "SOLID";
      dot-style-unfocused = "DOTS";
      animate-appicon-hover = true;
      animate-appicon-hover-animation-travel = "{'SIMPLE': 0.14999999999999999, 'RIPPLE': 0.40000000000000002, 'PLANK': 0.0}";
      isolate-monitors = true;
    };
    "org/gnome/shell/extensions/just-perfection" = {
      theme = true;
      activities-button = false;
      app-menu = false;
      clock-menu-position = 1;
      clock-menu-position-offset = 7;
    };
    "org/gnome/shell/extensions/caffeine" = {
      enable-fullscreen = true;
      restore-state = true;
      show-indicator = true;
      show-notification = false;
    };
    "org/gnome/shell/extensions/blur-my-shell" = {
      brightness = 0.9;
    };
    "org/gnome/shell/extensions/blur-my-shell/panel" = {
      customize = true;
      sigma = 0;
    };
    "org/gnome/shell/extensions/blur-my-shell/overview" = { # Temporary = D2D Bug
      customize = true;
      sigma = 0;
    };
    "org/gnome/shell/extensions/horizontal-workspace-indicator" = {
      widget-position = "left";
      widget-orientation = "horizontal";
      icons-style = "circles";
    "org/gnome/shell/extensions/paperwm" = {
      restore-workspaces-only-on-primary = false;
      window-gap = 10;
      winprops = [ "{\"wm_class\":\"Spotify\",\"scratch_layer\":true}" ];
    };
    "org/gnome/shell/extensions/bluetooth-quick-connect" = {
      show-battery-icon-on = true;
      show-battery-value-on = true;
    };
    "org/gnome/shell/extensions/pip-on-top" = {
      stick = true;
    };
    "org/gnome/shell/extensions/forge" = {
      window-gap-size = 8;
      dnd-center-layout = "stacked";
    };
    "org/gnome/shell/extensions/forge/keybindings" = {      # Set active colors manually
      focus-border-toggle = true;
      float-always-on-top-enabled = true;
      window-focus-up = ["<Super>Up"];
      window-focus-down = ["<Super>Down"];
      window-focus-left = ["<Super>Left"];
      window-focus-right = ["<Super>Right"];
      # window-swap-up = ["<Shift><Super>Up"];
      # window-swap-down = ["<Shift><Super>Down"];
      # window-swap-left = ["<Shift><Super>Left"];
      # window-swap-right = ["<Shift><Super>Right"];
      window-move-up = ["<Shift><Super>Up"];
      window-move-down = ["<Shift><Super>Down"];
      window-move-left = ["<Shift><Super>Left"];
      window-move-right = ["<Shift><Super>Right"];
      window-swap-last-active = ["@as []"];
      window-toggle-float = ["<Shift><Super>f"];

    "org/gnome/shell/extensions/paperwm/keybindings" = {
      move-left = ["<Shift><Super>k"];
      move-right = ["<Shift><Super>j"];

      switch-previous = ["<Super>k"];
      switch-next = ["<Super>j"];

      move-monitor-left = ["<Shift><Super>a"];
      move-monitor-below = ["<Shift><Super>s"];
      move-monitor-right = ["<Shift><Super>d"];
      move-monitor-above = ["<Shift><Super>w"];

      swap-monitor-left = ["<Control><Super>a"];
      swap-monitor-below = ["<Control><Super>s"];
      swap-monitor-right = ["<Control><Super>d"];
      swap-monitor-above = ["<Control><Super>w"];

      switch-monitor-left = ["<Super>a"];
      switch-monitor-below = ["<Super>s"];
      switch-monitor-right = ["<Super>d"];
      switch-monitor-above = ["<Super>w"];

      new-window = ["<Super>n"];

      paper-toggle-fullscreen = ["<Shift><Super>f"];

      toggle-maximize-width = ["<Super>f"];

      toggle-scratch = ["<Shift><Super>g"];
      toggle-scratch-layer = ["<Super>g"];
    };
    # "org/gnome/shell/extensions/dash-to-dock" = {   # If dock if preferred
    #   multi-monitor = true;
    #   dock-fixed = true;
    #   dash-max-icon-size = 16;
    #   custom-theme-shrink = true;
    #   transparency-mode = "FIXED";
    #   background-opacity = 0.0;
    #   show-apps-at-top = true;
    #   show-trash = true;
    #   hot-keys = false;
    #   click-action = "previews";
    #   scroll-action = "cycle-windows";
    # };
  };

  home.packages = with pkgs; [

Do not follow this link