Awesomeã«ããã«ããã¯ãããããšã¯èª°ã«ãšã£ãŠãç§å¯ã§ã¯ãªããšæããŸããããšãã°ããã¡ã€ã«ãŸãã¯ã€ã³ã¿ãŒãããããããŒã¿ãèªã¿åããçµæããŠã£ãžã§ãããŸãã¯ã·ã¹ãã èªäœã«è¿ãå¿
èŠãããå€éšã¹ã¯ãªãããå®è¡ãããšã宿çã«çŸè±¡ã芳å¯ã§ããŸãããªãŒãºããã€ãŸã åŠççµæãåä¿¡ããããŸã§ãã·ã¹ãã ãããŒã¹ãããŒã¯ããã³ããŠã¹ã¯ãªãã¯ãžã®å¿çã忢ãããšãïŒã¢ã¯ãã£ããªã¯ã©ã€ã¢ã³ãã¯åŒãç¶ãåäœããŸãïŒã ã»ãšãã©ã®å Žåãããã¯io.popenãŸãã¯awful.util.preadã®äœ¿çšæã«çºçããŸã
ããšãã°ããã©ãã¯ã倿Žãããšãã«moc / mocpã§é³æ¥œãèŽããšããã©ãã¯ã«é¢ããããŒã¿ãåä¿¡ããã¢ã«ãã ã¢ãŒãïŒããå ŽåïŒãããŒãããŠè¡šç€ºããå€éšã¹ã¯ãªãããååŸãããŸãã ãããã宿çã«ïŒã¹ã¯ãªãããã©ãããããã§ãã¹ããããããïŒãã·ã¹ãã ã¯ããã³ã°ãããŸããã é·ãéããªããããèµ·ãã£ãŠããã®ãçè§£ã§ããŸããã§ãããããã®æç¹ã§ãã£ã¹ã¯ã«äœãã倧éã«ããŒããããŠãããšãèªã¿åãããŒã¿ããã¥ãŒã«å
¥ãããããã®çµæã çµæã®çµè«ã¯çããã·ã¹ãã ãããã³ã°ã¢ãããã«äŸåããŸãã ãã®åé¡ã¯ã '
echo $ result | awesome-client- '転éãããããŒã¿ã
ãŸãã¯å¥ã®ãªãã·ã§ã³ãšããŠããã£ã¹ã¯äžã®ç©ºãé åïŒããšãã°ã/ããŒãã£ã·ã§ã³ïŒã衚瀺ãããŠã£ãžã§ããããããŸããã»ãšãã©ã®å Žåã¯
'df -h'ã䜿çšããŸããããã£ã¹ã¯ã«ntfsããŒãã£ã·ã§ã³ãããå Žåã宿çã«ãèœã¡ãããã®æç¹ã§ã·ã¹ãã å¿çã忢ããŸãã 1ã€ã®è§£æ±ºçã¯ãã³ãã³ãã®åºåããã¡ã€ã«ã«ä¿åããããããèªã¿åãããšã§ãã ããããããããã¯ããæŸèæãã§ãã åæããŸããæãåçŽãªã¢ã¯ã·ã§ã³ã®ããã«æŸèæãçºæããªããã°ãªããªãã®ã¯éåžžã«äžå¿«ã§ãã
äžæ¹ãAwesomeã«ã¯DBusã®ãããªãã°ããããã®ããããã·ã¹ãã ãšã¢ããªã±ãŒã·ã§ã³ã®ããŸããŸãªã³ã³ããŒãã³ãã®çžäºäœçšãå¯èœã«ããŸãã
== DBusãšã¯==
D-Busã¯ãã¡ãã»ãŒãžãéä¿¡ããããã®è€æ°ã®ãã¹ãã¢ããªã±ãŒã·ã§ã³ã«æäŸããããã»ã¹ééä¿¡ã·ã¹ãã ã§ãã ãã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³éã®ã·ãŒã ã¬ã¹ãªæ¥ç¶ãšããã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ãšã·ã¹ãã ãµãŒãã¹éã®æ¥ç¶ãæäŸããŸãã ã¡ãã»ãŒãžïŒã·ã°ãã«ïŒã®ãããŒããã£ã¹ãã ãã§ãªããã¡ãœããã®ãªã¢ãŒãåŒã³åºãããµããŒããããŠããŸãã
ã€ãŸã Awesomeãå€éšã¢ããªã±ãŒã·ã§ã³ããŸãã¯ãŠã£ãžã§ãããããããŒã¿ãåŠçããããã®ãªã¯ãšã¹ããéä¿¡ããDBusãã¹ãä»ããŠåŠççµæãååŸããæåŸã«ãã®ã€ãã³ãã®é¢æ°ãã³ãã©ãŒãåŒã³åºãããšãã§ããŸãã åæã«ãããªãŒãºãããããŸãããAwesomeã«çµæãæåŸ
ãããªãããã§ãã
Dbusã䜿çšããã«ã¯ãã¹ã¯ãªãããŸãã¯ã·ã§ã«ããã¢ããªã±ãŒã·ã§ã³ã«ä¿¡å·ãéä¿¡ããããã®æšæºãŠãŒãã£ãªãã£ãdbus-sendããããã³ã¢ããªã±ãŒã·ã§ã³ãã·ã¹ãã éã§éä¿¡ããããã¹ãŠã®ä¿¡å·ãç£èŠã§ãã
ãdbus-monitorãã䜿çšã§ããŸãã ã©ã®ã¢ããªã±ãŒã·ã§ã³ãdbusã«ç»é²ãããŠããããã©ã®ã¢ããªã±ãŒã·ã§ã³ãæäŸã§ãããã«ã€ããŠãããå®å
šãªæ
å ±ãååŸãããå Žåã¯ãKDEããã
ãqdbusãã®ãµãŒãããŒãã£ãŠãŒãã£ãªãã£ã䜿çšã§ããŸãã
dbus-monitorãå®è¡ãããšãã¢ããªã±ãŒã·ã§ã³ãšã·ã¹ãã ããéä¿¡ããããã¹ãŠã®ä¿¡å·ãç£èŠããŸãã ãã ããç¹å®ã®ä¿¡å·ã«é¢å¿ãããå Žåã¯ãåºåããã£ã«ã¿ãªã³ã°ã§ããŸãã
dbus-monitor "interface='ru.gentoo.kbdd' "
ãã®å Žåãkbddã«ãã£ãŠéä¿¡ãããããŒããŒãã¬ã€ã¢ãŠãã®å€æŽã«é¢ããã·ã°ãã«ãåãåããŸãã 詳现ã«ã€ããŠã¯ã
LORã«ãåãåãããã ããã ååãšããŠãdbus-monitorã¯ã¹ã¯ãªããã®ãããã°ã«äŸ¿å©ã§ãã
ããããã¹ã¯ãªãããšAwesomeã®çžäºäœçšã®å¯èœæ§ã«èå³ããããŸãã
次ã®ã³ãŒãã䜿çšããŠãAwesomeã«ä¿¡å·ãéä¿¡ã§ããŸãã
dbus-send --session --dest=org.naquadah.awesome.awful /ru/console/mocp ru.console.mocp.songChanged
ããã«ãããã®ãšäœãåæããŸãã
--session-ïŒã·ã¹ãã ã§ã¯ãªãïŒã»ãã·ã§ã³ããŒã¿ãã¹ã䜿çšãããŠããããšã瀺ããŸãã ã€ãŸã ã»ãã·ã§ã³ãã¹ã¯ããŠãŒã¶ãŒã«ä»£ãã£ãŠèµ·åãããã¢ããªã±ãŒã·ã§ã³ãæ¥ç¶ããããŠãŒã¶ãŒãã¹ã§ãããã·ã¹ãã ãã¹ã«ã¯ã»ãšãã©ã®å ŽåãŠãŒã¶ãŒããããŸããïŒHALãµãŒãã¹ããããã¯ãŒã¯ã¹ã¿ãã¯ãBluetoothãªã©ïŒ
--dest = org.naquadah.awesome.awful-ããã§ã¯ã誰ãç§ãã¡ã®ã·ã°ãã«ã®åä¿¡è
ã«ãªããã瀺ããŸãããã®å Žåãããã¯çŽ æŽãããã§ã
/ ru / console / mocp-ãªããžã§ã¯ãã®äžæã®ååïŒéåžžã¯ãµãŒãã¹ã®ååããªããžã§ã¯ããžã®ãã¹ãã€ã³ã¿ãŒãã§ã€ã¹ïŒããã®å Žåãèªåã§äœæããŸãã
ru.console.mocp.songChanged-䜿çšãããã¡ãœãããå®éã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã䜿çšãããå Žåã«ä¿¡å·ãçæããåŒã³åºããã颿°ã
åãæ¹æ³ã䜿çšããŠãAwesomeããããŸããŸãªã¢ããªã±ãŒã·ã§ã³ã«ä¿¡å·ãéä¿¡ããããšãã§ããŸããããšãã°ãç°ãªããã¬ãŒã€ãŒã§ãã©ãã¯ãåãæ¿ããããPidginã§ã¹ããŒã¿ã¹ã倿Žãããã§ããŸãã åæã«ããã®æ¹æ³ã®å©ç¹ã¯ã端æ«ã®ã³ããŒãéå§ããŠåŠççšã®ã³ãã³ããéä¿¡ããå¿
èŠããªãããšã§ããããã»ã©å€ãã¯ãããŸããããã·ã¹ãã ã®ãªãœãŒã¹ãããŒãããŠç«¯æ«ãäœæãããã®ç«¯æ«ã§ã³ãã³ããåŠçããŠããããã®ç«¯æ«ãç Žæ£ããŸã ãã®æ¹æ³ãšäŸã«ã€ããŠã¯åŸã»ã©èª¬æããŸãã
ã芧ã®ãšããããã¹ãŠãéåžžã«ç°¡åã§ãã ããããããã§ã¯ååã§ã¯ãããŸããã ãã®ãããªé¢æ°ãæ©èœããããšãã¡ãã»ãŒãžã§éä¿¡ããããšãšãçµæãã·ã°ãã«ã§éä¿¡ããããšã¯å¥ã®ããšã§ãã ãã®ãããªæ©äŒããããŸããDbusä¿¡å·ãä»ããŠãŠã£ãžã§ãããŸãã¯æ©èœã®ããŒã¿ãéä¿¡ã§ããŸãã
ããšãã°ãåãkbddã¯ãä¿¡å·èªäœã«å ããŠãéžæãããã¬ã€ã¢ãŠãã転éããŸãïŒæ°åãšããŠãå¥ã®é¢æ°ã§ã¯ã¬ã€ã¢ãŠãåãexperimentïŒã å¥ã®ã¬ã€ã¢ãŠããããŒãžã£ãŒã䜿çšããå Žåãç¶æ³ã¯åãã§ãã KDEã§æãéãä¿¡å·ã§ããããã€ããªãå«ãå€ãã®æ
å ±ãããã«éä¿¡ãããŸãã
ãµããŒããããŠããããŒã¿åïŒæååããã€ããããŒã«ãint16ãuint16ãint32ãuint32ãint64ãuint64ãdoobleãobject_path
==å®çšçãªå®è£
==
===ãã¡ã€ã«ã·ã¹ãã ã®æäœ===
rc.luaã§ã®ã¿è¡ããã¹ãŠã®å€æŽã
æåã«ãæ
å ±ã衚瀺ãããŠã£ãžã§ãããäœæããŸãã
次ã«ãããŒã¿ãèŠæ±ããã¿ã€ããŒãäœæããŸãã
fs_timer = timer ({timeout = 600})
çŽ æŽããã3.5ã䜿çšããŠããå Žåã¯ãadd_singalãconnect_signalã«çœ®ãæããŠãã ããã
ãããŠãä¿¡å·ãåä¿¡ãããšãã«å€ãæŽæ°ããŸãã
dbus.request_name("session", "ru.console.df") dbus.add_match("session", "interface='ru.console.df', member='fsValue' " ) dbus.add_singal("ru.console.df", function (...) local data = {...} local dbustext = data[2] fs_root.text = ": " .. dbustext
ããã ãã§ãããããåèµ·åïŒ
ãã®æ¹æ³ã®å©ç¹ã¯ãåŒã³åºãããã³ãŒããåŠçãããŠããéãAwesomeãåŸ
æ©ïŒãããã£ãŠãã³ã°ïŒããªãããšã§ãã
åãã³ãã³ããç°ãªããã©ã¡ãŒã¿ãŒã§åŒã³åºãå Žåããã®ãã©ã¡ãŒã¿ãŒã2çªç®ã®å€ãšããŠè¿ãããšãã§ããŸãããããã£ãŠãAwesomeèªäœã§ããã確èªããç®çã®ãã³ãã©ãŒãåŒã³åºããŸãã ãã®äŸã§ã¯ãã¿ã€ããŒé¢æ°ããããã«å€æŽããŸãã
path = '/home' fs_timer:add_singal ("timeout", function () awful.util.spawn_with_shell("dbus-send --session --dest=org.naquadah.awesome.awful /ru/console/df ru.console.df.fsValue string:$(df -h --output='pcent' " ..path.. " | sed '1d;s/ //g' )" string:"..path) end ) dbus.request_name("session", "ru.console.df") dbus.add_match("session", "interface='ru.console.df', member='fsValue' " ) dbus.add_singal("ru.console.df", function (...) local data = {...} local dbustext = data[2] local dbuspath = data[3] if dbustext == '/' then fs_root.text = ": " .. dbustext -- 3.5 fs_root:set_text(":" .. dbustext) elseif dbustext == '/home' then fs_home.text = ": " .. dbustext -- 3.5 fs_home:set_text(":" .. dbustext) end end )
=== mocpãšã®çžäºäœçš===
æ®å¿µãªãããmocpèªäœã¯dbusããµããŒãããŠããŸãããããã©ãã¯ã倿Žãããšãã«å€éšã³ãã³ããåŒã³åºãããšãã§ããŸãïŒããã¥ã¡ã³ãã®è©³çްã ãã§ãªãïŒã
mocpã®æ§æã«ããã³ãã©ãŒã远å ããŸããã
OnSongChange = "/home/user/script/changesong.sh %f %a %t %d %r %n"
ãããã®ã¹ã¯ãªããã®åæããŒãžã§ã³ã«ç€ºãããŠããããã«ããã®ããŒã¿ãååŸããããã«mocpãå床ã€ã³ã¯ããªãããã«ããã¡ã€ã«ãã¢ãŒãã£ã¹ããååãæéãã¢ã«ãã ãžã®ãã¹ãªã©ãå¿
èŠãªãã¹ãŠã®å€ãæž¡ããŸãã
次ã«ãã«ããŒãååŸããŠããã¹ãã圢æããã¹ã¯ãªããïŒchangesong.shïŒãäœæããŸãã
ã¹ã¯ãªããã«å®è¡æš©éãäžããŸãã
chmod +x changesong.sh
Awesomeã«ãã³ãã©ãŒã远å ããŸãã
dbus.request_name("session", "ru.console.mocp" dbus.add_match("session", "interface='ru.console.mocp', member='songChanged' ") dbus.add_signal("ru.console.mocp", function(...) local data = {...} coverart_nf = naughty.notify({icon = data[3], icon_size = 100, text = data[2], position = "bottom_left"}) end )
çµæã¯å
ã®ããŒãžã§ã³ãšåãã§ãããéãã¯ãããŒããã©ã€ããããžãŒã®å Žåã«ã·ã¹ãã ããã³ã°ããªãããšã§ããããã«ãå
ã®ããŒãžã§ã³ã§ã¯2xã®ä»£ããã«1ã€ã®ã¹ã¯ãªããã䜿çšããŸãã ãŸããã¹ã¯ãªããã§ã¯ãmocpç¶æ
ïŒäžæåæ¢/åçç¶æ
ã®åãæ¿ãïŒã確èªãããã¢ããªã±ãŒã·ã§ã³ãå®è¡ãããŠããå Žåã¯ãå¿
èŠã«å¿ããŠé©åãªã³ãŒãã远å ããŸãã
== Awesomeããã·ã°ãã«ãéä¿¡==
æ®å¿µãªãããæšæºã®Awesomeã«ã¯dbusã·ã°ãã«ãéä¿¡ããæ©èœããããŸãããå°ãªããšãWikiã«ã¯ããã®æ©èœã«é¢ããèšèã¯ãããŸããã ãããã£ãŠãã·ã§ã«ãä»ããŠä¿¡å·ãéä¿¡ããå¿
èŠããããŸããããšãã°ã次ã®ããã«å®è¡ã§ããŸãïŒäŸãšããŠkbddããŒããŒãã¹ã€ããã䜿çšïŒã
ããã§ãããŠã¹ã®å·Šãã¿ã³ã§ãŠã£ãžã§ãããã¯ãªãã¯ããŠãããŒããŒãã¬ã€ã¢ãŠãã倿Žããdbusãä»ããŠãŠã£ãžã§ããã«é¢ããã¡ãã»ãŒãžãéä¿¡ããŸãã ãŸããkbddèªäœãã¹ã¿ãŒãã¢ããã«è¿œå ããå¿
èŠããããŸããããããªããšãäœãæ©èœããŸããã ã¡ãªã¿ã«ããã·ã¢èªã®ã¬ã€ã¢ãŠãã«ãŠã£ãžã§ããããªãå ŽåïŒããšãã°ãã¬ã€ã¢ãŠãããã·ã¢èªã«å€æŽããåŸããŠã£ãžã§ãããã¯ãªãã¯ããŠãã¬ã€ã¢ãŠãã¯è±èªã«å€æŽãããŸããïŒãèšäº
æ¢ç¥ã®åé¡ãèªãã§ãã ããã
==ç®çã®ã¢ããªã±ãŒã·ã§ã³ä¿¡å·ãæ€çŽ¢==
ã»ãšãã©ã®ã¢ããªã±ãŒã·ã§ã³ã¯ãdbusãä»ããŠçŽæ¥å¶åŸ¡ã§ããŸãã ãã©ãã¯ãåãæ¿ããããã¢ããªã±ãŒã·ã§ã³ãå
šç»é¢ã¢ãŒãã«ããããã¹ããŒã¿ã¹ã倿Žãããã§ããŸãã èãããããã¹ãŠã®ä¿¡å·ãšã¡ãœããã®ãªã¹ããååŸããã«ã¯ãã¢ããªã±ãŒã·ã§ã³ãèµ·åãïŒããããªããšã䜿çšå¯èœãªã€ãã³ãã®ç»é²ã¯è¡ãããŸããïŒãqdbusãå®è¡ããŠãç®çã®ã€ã³ã¿ãŒãã§ãŒã¹ãèŠã€ããŸããããšãã°ã
qdbus | grep clementine : org.mpris.MediaPlayer2.clementine org.mpris.clementine , : qdbus org.mpris.clementine : / /Player /TrackList /org /org/mpris /org/mpris/MediaPlayer2 : qdbus org.mpris.clementine /Player
ãããŠããã®ã¢ããªã±ãŒã·ã§ã³ã®ãã¹ãŠã®å¯èœãªã¡ãœãããšã·ã°ãã«ãååŸããŸãã ããšãã°ã次ã®ãã©ãã¯ã«åãæ¿ããããšã«èå³ããããŸãããã®æ¹æ³ã¯æ¬¡ã®ãšããã§ãã
method void org.freedesktop.MediaPlayer.Next()
ãã®å Žåãã¡ãœããã¯ãã©ã¡ãŒã¿ãŒãå¿
èŠãšããªããããåã«åŒã³åºããŸãã
dbus-send --type=method_call --session --dest=org.mpris.clementine /Player org.freedesktop.MediaPlayer.Next
å®éã«ã¯ãããã ãã§ãã ããã«å®éšããŠãèªåãæ¢ããŠãã ããã
==ã¹ã¯ãªããããã®ä¿¡å·ã®è¿œè·¡==
åã
ã®ã¡ãœãããåŒã³åºããããè€éãªã¿ã¹ã¯ãå®è¡ããå Žåã¯ãdbus-sendã³ãã³ããå«ãã·ã§ã«ã¹ã¯ãªãããäœæããããé«ã¬ãã«ã®èšèªã䜿çšããŠã¿ã¹ã¯ãç°¡çŽ åã§ããŸãã PythonãRubyãããã³Javaèšèªçšã®D-Busãã€ã³ãã£ã³ã°ããããŸãã
次ã®äŸã§ã¯ãã¹ã¯ãªãŒã³ã»ãŒããŒãã¢ã¯ãã£ãã«ãªã£ããšãã«Pidginã®ã¹ããŒã¿ã¹ããããŒããŒãããé¢ãããã«å€æŽããPythonã¹ã¯ãªããã衚瀺ãããŸãã D-Busã«ã¯2ã€ã®åŽé¢ããããŸããã¹ã¯ãªããã¯ã¹ã¯ãªãŒã³ã»ãŒããŒããã®ã·ã°ãã«ãåŸ
ã£ãŠãããPidginã§ã¡ãœãããåŒã³åºããŸãã
ããã«äºçŽããŠãã ãããã¹ã¯ãªããã¯ç§ã®ãã®ã§ã¯ãããŸããããªãªãžãã«ãžã®ãªã³ã¯ã¯ä»¥äžã«ãããŸããããã®çžäºäœçšã®å¯èœæ§ã«ã€ããŠã¯èª¬æã§ããŸããã§ããã
pidgin_screensaver.py
ãã®ã¹ã¯ãªãããèŠãŠã¿ãŸãããã pidgin_status_func颿°ã¯ãã¹ããŒã¿ã¹ãPidginã«èšå®ããŸãã ã»ãã·ã§ã³ãã¹ããim / pidgin / purple / PurpleObjectãªããžã§ã¯ããšim.pidgin.purple.PurpleInterfaceã€ã³ã¿ãŒãã§ãŒã¹ãåãåããŸãã æ¬¡ã«ãã€ã³ã¿ãŒãã§ã€ã¹ã¡ãœãããåŒã³åºãããŸãã ãafkããšããååã®ã¹ããŒã¿ã¹ã¿ã€ãã®ååšã確èªããåŸãæ°ãããä¿åãããã¹ããŒã¿ã¹ãã¿ã€ããäœæããŸãïŒãafkãã¯ãããŒããŒãããé¢ããããæå³ãã5ã¯ãäžåšãã¹ããŒã¿ã¹ã®äžçš®ã§ãïŒã
次ã«ã颿°ã¯ç¶æ
倿°ããã§ãã¯ããŸããããã¯ãpidgin_status_func颿°ã®åŒæ°ã§ãïŒãã®åŒæ°ã®æå³ã以äžã§èª¬æããŸãïŒã åŒæ°ãtrueã®å Žåããnew afkããšããã¡ãã»ãŒãžã«ãAway from keyboardããšããå€ãå²ãåœãŠãããã¹ããŒã¿ã¹ãã¢ã¯ãã£ãã«ãªããŸãã ãã®çµæãPidginã¯ãããŒããŒãããé¢ããŸããããšããã¡ãã»ãŒãžãšãšãã«ãã¹ããŒã¿ã¹ããafkããšããŠè¡šç€ºããŸãã
次ã«ãã¹ã¯ãªãŒã³ã»ãŒããŒã®ã¢ã¯ãã£ãåãšãšãã«ãã®é¢æ°ãåŒã³åºãå¿
èŠããããŸãã ãããã£ãŠãdbus.mainloopãå®è¡ããã»ãã·ã§ã³ãã¹ã«æ¥ç¶ããŸãã æ¬¡ã«ãorg.gnome.ScreenSaverã€ã³ã¿ãŒãã§ãŒã¹ããActiveChangedã·ã°ãã«ããªãã¹ã³ããã·ã°ãã«ã¬ã·ãŒããŒã远å ããŸãã /ä¿¡å·ãããªã¬ãŒããããšãpidgin_status_func颿°ãåŒã³åºããŸãã ActiveChangedä¿¡å·ã«ã¯ã¹ã¯ãªãŒã³ã»ãŒããŒã®çŸåšã®ç¶æ
ïŒ1-ã¢ã¯ãã£ãã0-éã¢ã¯ãã£ãïŒã瀺ãããŒã«åŒæ°ããããããpidgin_status_func颿°ã§ã¯1ã€ã®åŒæ°ïŒç¶æ
ïŒã®ã¿ã䜿çšããŸãã äžå®ã®ãªã¹ãã³ã°ãè¡ãã«ã¯ãã¹ã¯ãªããã®å®è¡äžã«æ©èœããç¡éã«ãŒããå®è¡ããŸãã
äžè¬ã«ãå€ãã®ã¢ããªã±ãŒã·ã§ã³ã«ã¯dbusã€ã³ã¿ãŒãã§ãŒã¹ãããããããããã管çããå¯èœæ§ã¯éåžžã«åºç¯å²ã§ãããæ³ååãšæ¬²æ±ã«ãã£ãŠã®ã¿å¶éãããŸãïŒ
==é¢é£ãªã³ã¯==
DBus OpenNETã®æŠèŠD-Busãã¥ãŒããªã¢ã«ããŒD-Busãä»ããLinuxãã¹ã¯ããã管çã¢ããããŒã1.å°ããªã¢ããããŒãïŒru.gentoo.kbddã¯ru.gentoo.KbddServiceã«çœ®ãæããããŸããã ååã®ã¿ã倿Žãããã¬ã€ã¢ãŠãèªäœã¯å€æŽãããŸããã ããã«ãã¬ã€ã¢ãŠãã倿Žããããã®å¥ã®é¢æ°ãã¬ã³ããªã³ã°ãããŸãã Mod4 + rãŸãã¯Mod4 + pãåŒã³åºããšãã«ã¬ã€ã¢ãŠããèªåçã«å€æŽãããšäŸ¿å©ã§ãïŒåŒã³åºãã®åã«changeKeyboardLayoutïŒ0ïŒã远å ããŸããïŒ