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