# Generated via dconf2nix: https://github.com/gvolpe/dconf2nix
{ lib, ... }:

with lib.hm.gvariant;

{
  dconf.settings = {
    "org/gnome/desktop/input-sources" = {
      sources = [
        (mkTuple [
          "xkb"
          "no"
        ])
      ];
      xkb-options = [
        "terminate:ctrl_alt_bksp"
        "caps:none"
      ];
    };

    "org/gnome/desktop/peripherals/touchpad" = {
      disable-while-typing = false;
      natural-scroll = false;
      tap-to-click = true;
      two-finger-scrolling-enabled = true;
    };

    "org/gnome/desktop/wm/keybindings" = {
      close = [ "<Alt>F4" ];
      maximize = [ "<Super>Up" ];
      move-to-monitor-down = [ "<Shift><Super>Down" ];
      move-to-monitor-up = [ "<Shift><Super>Up" ];
      move-to-workspace-1 = [ ];
      move-to-workspace-down = [
        "<Super><Shift>Page_Down"
        "<Control><Shift><Alt>Down"
      ];
      move-to-workspace-last = [ ];
      move-to-workspace-left = [
        "<Super><Shift><Alt>Left"
        "<Control><Shift><Alt>Left"
      ];
      move-to-workspace-right = [
        "<Super><Shift><Alt>Right"
        "<Control><Shift><Alt>Right"
      ];
      move-to-workspace-up = [
        "<Super><Shift>Page_Up"
        "<Control><Shift><Alt>Up"
      ];
      panel-main-menu = [ "<Alt>F1" ];
      switch-applications = [ ];
      switch-applications-backward = [ ];
      switch-to-workspace-1 = [ ];
      switch-to-workspace-down = [
        "<Super>Page_Down"
        "<Control><Alt>Down"
      ];
      switch-to-workspace-last = [ ];
      switch-to-workspace-left = [
        "<Super><Alt>Left"
        "<Control><Alt>Left"
      ];
      switch-to-workspace-right = [
        "<Super><Alt>Right"
        "<Control><Alt>Right"
      ];
      switch-to-workspace-up = [
        "<Super>Page_Up"
        "<Control><Alt>Up"
      ];
      switch-windows = [ "<Alt>Tab" ];
      switch-windows-backward = [ "<Shift><Alt>Tab" ];
      unmaximize = [ "<Super>Down" ];
    };

    "org/gnome/mutter/keybindings" = {
      switch-monitor = [ "XF86Display" ];
      toggle-tiled-left = [ "<Super>Left" ];
      toggle-tiled-right = [ "<Super>Right" ];
    };

    "org/gnome/shell/keybindings" = {
      screenshot = [ "Print" ];
      show-screenshot-ui = [ "<Control>Print" ];
    };

    "org/gnome/settings-daemon/plugins/media-keys" = {
      area-screenshot = [ "<Primary><Shift>Print" ];
      area-screenshot-clip = [ "<Primary>Print" ];
      custom-keybindings = [
        "/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/custom3/"
        "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4/"
        "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom5/"
        "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom6/"
        "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom7/"
        "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom8/"
        "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom9/"
        "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom10/"
        "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/"
        "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom12/"
        "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom11/"
        "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom13/"
        "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom14/"
      ];
      home = [ "<Super>e" ];
      magnifier = [ "<Super>Escape" ];
      magnifier-zoom-in = [ "<Super>plus" ];
      magnifier-zoom-out = [ "<Super>minus" ];
      next = [ "<Super>aring" ];
      play = [ "<Alt>p" ];
      previous = [ "<Super>o" ];
      screenshot = [ "<Shift>Print" ];
      screenshot-clip = [ "Print" ];
    };

    "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = {
      binding = "<Primary><Alt>t";
      command = "ghostty --working-directory=\"$HOME\"";
      name = "Open Terminal";
    };

    "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = {
      binding = "";
      command = "sh -c \"$HOME/.local/opt/center-window.sh\"";
      name = "Window to Center";
    };

    "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom10" = {
      binding = "";
      command = "bash -c 'dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Previous'";
      name = "spotify prev";
    };

    "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom11" = {
      binding = "<Shift><Control>space";
      command = "ghostty -e \"nix repl --file '<nixpkgs>'\"";
      name = "nixpkgs repl";
    };

    "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom12" = {
      binding = "";
      command = "ghostty -e \"$(command -v ptpython || echo python3)\" -i \"$HOME/.local/opt/sympy-interactive-imports.py\"";
      name = "Open SymPy terminal";
    };

    "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom13" = {
      binding = "<Shift><Control>Print";
      command = "systemd-run --user normcap";
      name = "normcap OCR";
    };

    "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom14" = {
      binding = "<Shift><Control><Alt><Super>l";
      command = "xdg-open https://linkedin.com";
      name = "Open LinkedIn";
    };

    "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2" = {
      binding = "";
      command = "sh -c \"$HOME/.local/opt/left-window.sh\"";
      name = "Window to Left";
    };

    "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3" = {
      binding = "";
      command = "sh -c \"$HOME/.local/opt/right-window.sh\"";
      name = "Window to Right";
    };

    "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4" = {
      binding = "";
      command = "sh -c \"$HOME/.local/opt/center-small-window.sh\"";
      name = "Window to Center Small";
    };

    "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom5" = {
      binding = "<Primary><Alt>space";
      command = "ghostty -e \"$(command -v ptpython || echo python3)\" -i \"$HOME/.local/opt/python-interactive-imports.py\"";
      name = "Open Python Terminal";
    };

    "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom6" = {
      command = "sh -c \"$HOME/.local/opt/toggle_decoration.sh\"";
      name = "Toggle window decorations";
    };

    "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom7" = {
      binding = "";
      command = "sh -c \"$HOME/.local/opt/toggle_theme.sh\"";
      name = "Toggle gtk theme";
    };

    "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom8" = {
      binding = "";
      command = "bash -c 'dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause'";
      name = "spotify play";
    };

    "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom9" = {
      binding = "";
      command = "bash -c 'dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.next'";
      name = "spotify next";
    };

  };
}
