[Help] iBus 可否由程式控制切換? [論壇 - 新手村]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊



[Help] iBus 可否由程式控制切換?
會員二級
註冊日期:
2007/1/13 14:26
所屬群組:
已註冊使用者
等級: 8
HP : 0 / 178
MP : 28 / 5651
EXP: 12
離線
Hi all,

可否由程式控制切換iBus輸入法?

Thanx.

2016/4/27 0:40
應用擴展 工具箱
回覆: [Help] iBus 可否由程式控制切換?
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 33
HP : 160 / 804
MP : 505 / 13132
EXP: 18
離線
備份連結


=================================================

wilhelm 寫到:
Hi all,

可否由程式控制切換iBus輸入法?

Thanx.



這個其實我也還不是很懂,不過看「Wikipedia / ibus」,
應該是透過類似D-Bus的機制,
所以我猜應該會有程式可以切入的點吧,只不過要研究,這我也不曉得,只是猜測,
先把目前研究到的貼上來,讓你有個探索的起點

$ man ibus

執行


$ ibus help



顯示


Usage: ibus COMMAND [OPTION...]

Commands:
engine Set or get engine
exit Exit ibus-daemon
list-engine Show available engines
watch (Not implemented)
restart Restart ibus-daemon
version Show version
read-cache Show the content of registry cache
write-cache Create registry cache
address Print the D-Bus address of ibus-daemon
read-config Show the configuration values
reset-config Reset the configuration values
help Show this information




執行下面指令,確認目前的輸入法


$ ibus engine




顯示


xkb:us::eng




執行


$ ibus list-engine




顯示


...

language: Chinese
chewing - Chewing

...

language: English
xkb:us:dvorak:eng - English (Dvorak)
xkb:ca:eng:eng - English (Canada)
xkb:us:intl:eng - English (US, international with dead keys)
xkb:us:colemak:eng - English (Colemak)
xkb:gb:dvorak:eng - English (UK, Dvorak)
xkb:gb:extd:eng - English (UK, extended WinKeys)
xkb:us::eng - English (US)
xkb:us:altgr-intl:eng - English (international AltGr dead keys)





執行下面指令,就會切換輸入法「chewing」了



$ ibus engine chewing



執行下面指令,確認目前的輸入法


$ ibus engine



顯示


chewing




執行下面指令,就會切回英文輸入法了


$ ibus engine xkb:us::eng




## 探索套件參考步驟

下載「ibus」這個套件


$ apt download ibus



解開套件


$ dpkg -x ibus_1.5.11-1ubuntu2_amd64.deb ibus



觀看有哪些檔案


$ tree ibus



顯示


ibus
├── etc
│   └── dconf
│   ├── db
│   │   └── ibus.d
│   │   └── 00-upstream-settings
│   └── profile
│   └── ibus
└── usr
├── bin
│   ├── ibus
│   ├── ibus-daemon
│   └── ibus-setup
├── lib
│   └── ibus
│   ├── ibus-dconf
│   ├── ibus-engine-simple
│   ├── ibus-ui-gtk3
│   └── ibus-x11
└── share
├── applications
│   └── ibus-setup.desktop
├── bash-completion
│   └── completions
│   └── ibus.bash
├── bug
│   └── ibus
│   ├── presubj
│   └── script
├── doc
│   └── ibus
│   ├── AUTHORS
│   ├── changelog.Debian.gz -> ../gir1.2-ibus-1.0/changelog.Debian.gz
│   ├── copyright
│   ├── README
│   └── README.Debian.gz
├── GConf
│   └── gsettings
│   └── ibus.convert
├── glib-2.0
│   └── schemas
│   ├── 10_ibus.gschema.override
│   └── org.freedesktop.ibus.gschema.xml
├── ibus
│   ├── component
│   │   ├── dconf.xml
│   │   ├── gtkpanel.xml
│   │   └── simple.xml
│   ├── keymaps
│   │   ├── common
│   │   ├── in
│   │   ├── jp
│   │   ├── kr
│   │   ├── modifiers
│   │   └── us
│   └── setup
│   ├── engineabout.py
│   ├── enginecombobox.py
│   ├── enginedialog.py
│   ├── enginetreeview.py
│   ├── i18n.py
│   ├── icon.py
│   ├── keyboardshortcut.py
│   ├── main.py
│   ├── setup.ui
│   └── setup-unity.ui
├── icons
│   └── hicolor
│   ├── 16x16
│   │   └── apps
│   │   └── ibus-keyboard.png
│   ├── 22x22
│   │   └── apps
│   │   └── ibus-keyboard.png
│   ├── 24x24
│   │   └── apps
│   │   └── ibus-keyboard.png
│   ├── 32x32
│   │   └── apps
│   │   └── ibus-keyboard.png
│   ├── 48x48
│   │   └── apps
│   │   └── ibus-keyboard.png
│   └── scalable
│   └── apps
│   ├── ibus-engine.svg
│   ├── ibus-keyboard.svg
│   ├── ibus-setup.svg
│   └── ibus.svg
├── lintian
│   └── overrides
│   └── ibus
├── man
│   └── man1
│   ├── ibus.1.gz
│   ├── ibus-daemon.1.gz
│   └── ibus-setup.1.gz
└── python3
└── runtime.d
└── ibus.rtupdate

45 directories, 54 files



或是已經安裝套件的話可以執行,就可以知道有那些檔案安裝在系統上了


$ dpkg -L ibus




下載原始碼套件來研究


$ apt source ibus




## 相關網址

* https://github.com/ibus/ibus/wiki
* https://zh.wikipedia.org/zh-tw/IBus
* https://en.wikipedia.org/wiki/Intelligent_Input_Bus

## manpage

* man ibus
* man ibus-daemon
* man ibus-setup


## gsettings

執行


$ gsettings list-recursively | grep ibus




執行


$ gsettings get org.freedesktop.ibus.general engines-order



顯示


['xkb:us::eng', 'chewing']



執行


$ gsettings set org.freedesktop.ibus.general engines-order "['chewing', 'xkb:us::eng']"



這時候要重起ibus,就會發現輸入法的順序改變了


執行下面指令恢復,


$ gsettings set org.freedesktop.ibus.general engines-order "['xkb:us::eng', 'chewing']"



這裡不能用「gsettings reset org.freedesktop.ibus.general engines-order」,
因為「org.freedesktop.ibus.general engines-order」的預設值,
不是「['xkb:us::eng', 'chewing']」


gsettings 的用法,請參考「這篇」,「這篇」,「這篇」討論。

2016/4/27 20:51
應用擴展 工具箱
回覆: [Help] iBus 可否由程式控制切換?
會員二級
註冊日期:
2007/1/13 14:26
所屬群組:
已註冊使用者
等級: 8
HP : 0 / 178
MP : 28 / 5651
EXP: 12
離線
感謝 samwhelp 大大引導 進一步的研究.

但不知為何? ubuntu 12.04 一直找不到ibus command .
努力中...

2016/4/30 0:55
應用擴展 工具箱
回覆: [Help] iBus 可否由程式控制切換?
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 33
HP : 160 / 804
MP : 505 / 13132
EXP: 18
離線
wilhelm 寫到:
感謝 samwhelp 大大引導 進一步的研究.

但不知為何? ubuntu 12.04 一直找不到ibus command .
努力中...


歹勢,我忘記寫我測試的環境,

我目前的環境已經是「Xubuntu 16.04 64位元」,
上面的回覆,我是在「Xubuntu 16.04 64位元」這個環境測試的。

「12.04」應該沒「ibus」這個指令

你可以使用上面說的「dpkg -L」的方式查詢「套件檔案列表」。


$ dpkg -L ibus | grep /usr/bin



應該只會查得到下面兩個程式

/usr/bin/ibus-daemon
/usr/bin/ibus-setup


或是下載「deb檔」的方式,
使用「apt-get download ibus」
然後再使用「dpkg -x」的方式,來解開,
應該也看不到「ibus」這個指令。

=======================================================

我的環境是16.04,所以我是到下面的網址去下載「12.04」的「deb檔」,然後解開確認的,
所以就沒透過指令,「apt-get download」去下載「package」,或是「apt-get source」去下載「source package」。

剛發現,網頁也有「package file list」,可以直接在網頁上看套件檔案列表,等同看「dpkg -L ibus」。

## 12.04

* http://packages.ubuntu.com/precise/ibus <-- package
* http://packages.ubuntu.com/source/precise/ibus <-- source package

* http://packages.ubuntu.com/precise/amd64/ibus/filelist <-- package file list


## 14.04

* http://packages.ubuntu.com/trusty/ibus
* http://packages.ubuntu.com/source/trusty/ibus

* http://packages.ubuntu.com/trusty/amd64/ibus/filelist

## 16.04

* http://packages.ubuntu.com/xenial/ibus
* http://packages.ubuntu.com/source/xenial/ibus

* http://packages.ubuntu.com/xenial/amd64/ibus/filelist

這些網址是有規則的,你可以觀察一下。

=======================================================

另外也可以觀看 manpage

查詢「ibus」。

## 12.04

* http://manpages.ubuntu.com/manpages/precise/en/man1/ibus.1.html

## 14.04

* http://manpages.ubuntu.com/manpages/trusty/en/man1/ibus.1.html

## 16.04

* http://manpages.ubuntu.com/manpages/xenial/en/man1/ibus.1.html


12.04 雖然有 ibus 這個 manpage,不過內容並不是紀錄指令的


你執行下面的指令,看到的內容,應該會網頁的內容一樣

$ man ibus

=======================================================

以上釐清補充


2016/4/30 1:41
應用擴展 工具箱
回覆: [Help] iBus 可否由程式控制切換?
會員二級
註冊日期:
2007/1/13 14:26
所屬群組:
已註冊使用者
等級: 8
HP : 0 / 178
MP : 28 / 5651
EXP: 12
離線
似乎 12.04 沒提供ibus指令...

改玩 16.04 看看...

再次感謝 samwhelp 您, 提相關參考訊息. 3Q.

2016/4/30 10:08
應用擴展 工具箱
回覆: [Help] iBus 可否由程式控制切換?
管理員
註冊日期:
2005/6/11 0:21
來自 Chia-yi City
所屬群組:
已註冊使用者
討論區管理群
等級: 20
HP : 0 / 482
MP : 160 / 17546
EXP: 29
離線
ibus-setup

2016/4/30 13:53
應用擴展 工具箱
回覆: [Help] iBus 可否由程式控制切換?
管理員
註冊日期:
2005/6/11 0:21
來自 Chia-yi City
所屬群組:
已註冊使用者
討論區管理群
等級: 20
HP : 0 / 482
MP : 160 / 17546
EXP: 29
離線
try ibus-setup

2016/4/30 13:54
應用擴展 工具箱


 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.