diff --git a/modules/applications/ghostty/home.nix b/modules/applications/ghostty/home.nix index 199fc8d..b1ba9f0 100644 --- a/modules/applications/ghostty/home.nix +++ b/modules/applications/ghostty/home.nix @@ -1,11 +1,14 @@ { inputs, + lib, pkgs, ... }: let + isDarwin = pkgs.stdenv.hostPlatform.isDarwin; + isLinux = pkgs.stdenv.hostPlatform.isLinux; package = - if pkgs.stdenv.hostPlatform.isLinux then + if isLinux then inputs.ghostty.packages.${pkgs.stdenv.hostPlatform.system}.ghostty-releasefast else null; @@ -14,7 +17,7 @@ in programs.ghostty = { enable = true; inherit package; - systemd.enable = pkgs.stdenv.hostPlatform.isLinux; + systemd.enable = isLinux; settings = { theme = "dracula"; @@ -30,7 +33,9 @@ in "ctrl+shift+t=new_tab" "ctrl+alt+left_bracket=previous_tab" "ctrl+alt+right_bracket=next_tab" - "ctrl+alt+q=close_window" + "alt+q=close_window" + "global:alt+space=toggle_quick_terminal" + "global:alt+t=new_window" "ctrl+shift+semicolon=increase_font_size:1" "ctrl+shift+minus=decrease_font_size:1" ]; @@ -45,5 +50,19 @@ in }; }; + # Global Ghostty keybindings are handled by the running app. Start it hidden + # at login so Option+T and Option+Space work before opening a terminal. + launchd.agents.ghostty-global-keybindings = lib.mkIf isDarwin { + enable = true; + config = { + ProgramArguments = [ + "/usr/bin/open" + "-gja" + "Ghostty" + ]; + RunAtLoad = true; + }; + }; + xdg.configFile."ghostty/themes/dracula".source = ./dracula.theme; } diff --git a/modules/applications/vicinae/home.nix b/modules/applications/vicinae/home.nix index 9d4ccc8..88f8626 100644 --- a/modules/applications/vicinae/home.nix +++ b/modules/applications/vicinae/home.nix @@ -28,6 +28,8 @@ in pop_to_root_on_close = true; favicon_service = "twenty"; search_files_in_root = true; + global_shortcuts.toggle = "alt+d"; + providers.clipboard.entrypoints.history.shortcut = "alt+v"; theme = { light = { name = "dracula"; diff --git a/modules/profiles/interface/macos/meta.nix b/modules/profiles/interface/macos/meta.nix index 5d8d7c9..59015ee 100644 --- a/modules/profiles/interface/macos/meta.nix +++ b/modules/profiles/interface/macos/meta.nix @@ -4,6 +4,7 @@ includes = [ "profiles.interface.gui" "systems.dock" + "systems.keyboard" "systems.trackpad" ]; } diff --git a/modules/systems/keyboard/darwin.nix b/modules/systems/keyboard/darwin.nix new file mode 100644 index 0000000..bad5e0c --- /dev/null +++ b/modules/systems/keyboard/darwin.nix @@ -0,0 +1,29 @@ +{ + system.keyboard = { + enableKeyMapping = true; + userKeyMapping = [ + { + # Caps Lock → left Command + HIDKeyboardModifierMappingSrc = 30064771129; + HIDKeyboardModifierMappingDst = 30064771299; + } + ]; + }; + + system.defaults = { + NSGlobalDomain."com.apple.keyboard.fnState" = true; + + # These are the standard macOS App Shortcuts for all applications. Keep + # both English and Japanese menu titles so they work after changing the + # macOS display language. + CustomUserPreferences.NSGlobalDomain.NSUserKeyEquivalents = { + "Close" = "~q"; + "Close Window" = "~q"; + "閉じる" = "~q"; + "ウインドウを閉じる" = "~q"; + "Zoom" = "~f"; + "拡大/縮小" = "~f"; + "拡大/縮小" = "~f"; + }; + }; +}