From d220d0ffa2cac915314a65c0d73ab8082ac5bce8 Mon Sep 17 00:00:00 2001 From: Yuan Chiu Date: Tue, 6 May 2025 20:37:27 +0800 Subject: [PATCH] =?UTF-8?q?nvim:=20=E5=88=A4=E6=96=B7=E7=95=B6=E5=89=8D?= =?UTF-8?q?=E7=B5=82=E7=AB=AF=E6=A9=9F=E6=98=AF=E5=90=A6=E5=9C=A8=E5=9C=96?= =?UTF-8?q?=E5=BD=A2=E7=92=B0=E5=A2=83=E8=A3=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../exact_plugins/exact_editor/color.lua | 1 + .../exact_plugins/exact_editor/ime.lua | 9 ++++++--- dot_config/nvim/exact_lua/exact_tools/gui.lua | 19 +++++++++++++++++++ 3 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 dot_config/nvim/exact_lua/exact_tools/gui.lua diff --git a/dot_config/nvim/exact_lua/exact_plugins/exact_editor/color.lua b/dot_config/nvim/exact_lua/exact_plugins/exact_editor/color.lua index 4045bc0..8186416 100644 --- a/dot_config/nvim/exact_lua/exact_plugins/exact_editor/color.lua +++ b/dot_config/nvim/exact_lua/exact_plugins/exact_editor/color.lua @@ -63,6 +63,7 @@ return { { "eero-lehtinen/oklch-color-picker.nvim", + enabled = require("tools.gui").is_graphical(), event = "VeryLazy", version = "*", keys = { diff --git a/dot_config/nvim/exact_lua/exact_plugins/exact_editor/ime.lua b/dot_config/nvim/exact_lua/exact_plugins/exact_editor/ime.lua index c139761..99828a0 100644 --- a/dot_config/nvim/exact_lua/exact_plugins/exact_editor/ime.lua +++ b/dot_config/nvim/exact_lua/exact_plugins/exact_editor/ime.lua @@ -2,11 +2,13 @@ return { -- 測試狀況:Linux Fcitx5 Wayland 可用 / macOS 15 不可用 -- { -- "Freed-Wu/ime.nvim", + -- enabled = require("tools.gui").is_graphical(), -- }, -- 測試狀況:Linux Fcitx5 Wayland 可用 / macOS 15 可用 { "keaising/im-select.nvim", + enabled = require("tools.gui").is_graphical(), config = function() require("im_select").setup({}) end, @@ -15,17 +17,18 @@ return { -- 測試狀況:Linux Fcitx5 Wayland 可用 -- { -- "pysan3/fcitx5.nvim", + -- enabled = require("tools.gui").is_graphical(), -- cond = function() -- return vim.fn.executable("fcitx5-remote") == 1 -- end, -- event = { "ModeChanged" }, -- 在模式改變時載入插件 -- config = function() -- require("fcitx5").setup() -- 初始化插件 - -- + -- -- 以下是手動指定規則 -- -- local en = "keyboard-us" -- -- local tw = "chewing" - -- + -- -- require("fcitx5").setup({ -- -- imname = { -- -- norm = en, @@ -34,7 +37,7 @@ return { -- -- }, -- -- remember_prior = false, -- -- }) - -- + -- -- -- If you are using `jk` to escape, map 全角のjk. -- -- vim.cmd([[ -- -- inoremap jk diff --git a/dot_config/nvim/exact_lua/exact_tools/gui.lua b/dot_config/nvim/exact_lua/exact_tools/gui.lua new file mode 100644 index 0000000..6328b9f --- /dev/null +++ b/dot_config/nvim/exact_lua/exact_tools/gui.lua @@ -0,0 +1,19 @@ +local M = {} + +--- 當前終端機環境是否在圖形環境裡面(Linux / macOS) +--- @return boolean is_gui +function M.is_graphical() + local env = vim.env + local term_program = env.TERM_PROGRAM -- macOS GUI 終端機常見 + local display = env.DISPLAY -- Linux X11 + local wayland = env.WAYLAND_DISPLAY -- Linux Wayland + local ssh = env.SSH_CONNECTION or env.SSH_CLIENT + + if ssh then + return false + end + + return term_program or display or wayland and true or false +end + +return M