Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cho phép đổi ngôn ngữ qua command line (programmatic control) #89

Open
antran22 opened this issue Oct 3, 2023 · 2 comments
Open
Labels
A-client Area: Everything within GõKey E-easy Estimation: Easy enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed

Comments

@antran22
Copy link

antran22 commented Oct 3, 2023

Với các app gõ tiếng Việt khác hiện nay, anh em dùng Vim sẽ phải tự chuyển lại ngôn ngữ mỗi khi chuyển sang Normal mode.

Hiện tại với một số ngôn ngữ khác (Trung Quốc) đã có thư viện Vim-barbaric để tự động chuyển về tiếng Anh khi chuyển vào normal mode. Nếu GõKey có thể cung cấp được một entrypoint binary qua commandline, giao tiếp với app chính, anh em dùng Vim có thể customize được Vim để tự động chuyển ngôn ngữ.

Ý tưởng:
Entrypoint nằm cạnh binary chính: /Applications/GoKey.app/Contents/MacOS/goxkeygoxkey-controller
Một số subcommand của goxkey-controller:

  • goxkey-controller current: In ngôn ngữ hiện tại en | vi
  • goxkey-controller update [en|vi]: Đổi sang ngôn ngữ mới.
@huytd huytd added enhancement New feature or request help wanted Extra attention is needed good first issue Good for newcomers A-client Area: Everything within GõKey E-easy Estimation: Easy labels Oct 5, 2023
@hanh090
Copy link

hanh090 commented Dec 15, 2023

mình có thể tiếp cận bằng 1 cách khác như là hỗ trợ loại trừ ứng dụng ko ạ? expectation là khi liệt kê ứng dụng đó vào thì goxkey sẽ ko tracking nữa. Có thể tham khảo cách làm của EVKey, e đang dùng và thấy rất tiện lợi

Screenshot 2023-12-16 at 06 11 05

@khanhicetea
Copy link

khanhicetea commented Feb 6, 2024

Mình có mở cái PR #113 để thử giải quyết case của vim và neovim

Cụ thể sẽ listen UNIX socket ở phía Goxkey và gửi packet đổi lại thẳng English nếu switch qa Normal mode ( 100% sẽ dùng ANSI keyboard layout ở normal mode nên cũng không cần thiết là phải detect đang ở Vi or En )

Theo mình search thì Neovim support gửi thẳng UNIX socket mà không cần qua 3rd-tool là socat (brew install socat)

Ví dụ bên dưới là lua script config hook vào event ModeChanged

-- Define a function to send a message using the client script
function SendMsgToSocket()
    local client_chanid = vim.fn.sockconnect('pipe', "/tmp/gox-switch-socket", {on_data = function(chanid, data, name) end})
    local bytes = vim.fn.chansend(client_chanid, { 'en' })
end

-- Set up an autocommand to trigger the function when entering Normal mode
vim.api.nvim_create_augroup("SendMsgOnNormalMode", { clear = true })
vim.api.nvim_create_autocmd("ModeChanged", {
    group = "SendMsgOnNormalMode",
    pattern = "*:n",
    callback = function() SendMsgToSocket() end,
})

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-client Area: Everything within GõKey E-easy Estimation: Easy enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

4 participants