vala-gio - org.fcitx.Fcitx
Script
- get-current-im.vala
using GLib;
class App {
public static int main(string[] args) {
try {
DBusConnection bus = Bus.get_sync(BusType.SESSION);
Variant rtn = bus.call_sync(
"org.fcitx.Fcitx", //bus_name
"/inputmethod", //object_path
"org.fcitx.Fcitx.InputMethod", //interface_name
"GetCurrentIM", //method_name
null, // parameters
new VariantType("(s)"), //reply_type
DBusCallFlags.NONE, //flags
-1, //timeout_msec
null //cancellable
);
stdout.printf("%s\n", rtn.print(true));
//http://www.valadoc.org/#!api=glib-2.0/GLib.Variant
/*
string? val = null;
VariantIter iter = rtn.iterator();
iter.next("s", &val);
stdout.printf("%s\n", val);
*/
} catch (IOError e) {
warning ("Error with DBus: %s", e.message);
} catch (Error e) {
warning ("Error : %s", e.message);
}
return 0;
}
}
編譯
$ valac --pkg gio-2.0 get-current-im.vala
- set-current-im.vala
using GLib;
class App {
public static int main(string[] args) {
try {
DBusConnection bus = Bus.get_sync(BusType.SESSION);
Variant rtn = bus.call_sync(
"org.fcitx.Fcitx", //bus_name
"/inputmethod", //object_path
"org.fcitx.Fcitx.InputMethod", //interface_name
"SetCurrentIM", //method_name
new Variant("(s)", "fcitx-keyboard-us"), // parameters
new VariantType("()"), //reply_type
DBusCallFlags.NONE, //flags
-1, //timeout_msec
null //cancellable
);
stdout.printf("%s\n", rtn.print(true));
//http://www.valadoc.org/#!api=glib-2.0/GLib.Variant
/*
string? val = null;
VariantIter iter = rtn.iterator();
iter.next("s", &val);
stdout.printf("%s\n", val);
*/
} catch (IOError e) {
warning ("Error with DBus: %s", e.message);
} catch (Error e) {
warning ("Error : %s", e.message);
}
return 0;
}
}
編譯
valac --pkg gio-2.0 set-current-im.vala
- set-current-im-chewing.vala
using GLib;
class App {
public static int main(string[] args) {
try {
DBusConnection bus = Bus.get_sync(BusType.SESSION);
Variant rtn = bus.call_sync(
"org.fcitx.Fcitx", //bus_name
"/inputmethod", //object_path
"org.fcitx.Fcitx.InputMethod", //interface_name
"SetCurrentIM", //method_name
new Variant("(s)", "chewing"), // parameters
new VariantType("()"), //reply_type
DBusCallFlags.NONE, //flags
-1, //timeout_msec
null //cancellable
);
stdout.printf("%s\n", rtn.print(true));
//http://www.valadoc.org/#!api=glib-2.0/GLib.Variant
/*
string? val = null;
VariantIter iter = rtn.iterator();
iter.next("s", &val);
stdout.printf("%s\n", val);
*/
} catch (IOError e) {
warning ("Error with DBus: %s", e.message);
} catch (Error e) {
warning ("Error : %s", e.message);
}
return 0;
}
}
編譯
valac --pkg gio-2.0 set-current-im-chewing.vala
使用範例
執行
$ ./get-current-im
顯示
('fcitx-keyboard-us',)
執行
$ ./set-current-im-chewing
顯示
()
執行
$ ./get-current-im
顯示
('chewing',)
執行
$ ./set-current-im
顯示
()
執行
$ ./get-current-im
顯示
('fcitx-keyboard-us',)