ããšãã°ããã©ãã¯ãå€æŽãããšãã«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ã§ã®ã¿è¡ããã¹ãŠã®å€æŽã
æåã«ãæ å ±ã衚瀺ãããŠã£ãžã§ãããäœæããŸãã
--Awesome 3.4 fs_root = widget({type = "textbox"}) fs_root.text = ":" --Awesome 3.5 fs_root = wibox.widget.textbox() fs_root:set_text(":")
次ã«ãããŒã¿ãèŠæ±ããã¿ã€ããŒãäœæããŸãã
fs_timer = timer ({timeout = 600}) -- 10 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' /home | sed '1d;s/ //g' )" ) end ) fs_timer:start()
çŽ æŽããã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 -- 3.5 fs_root:set_text(":" .. dbustext) end )
ããã ãã§ãããããåèµ·åïŒ
ãã®æ¹æ³ã®å©ç¹ã¯ãåŒã³åºãããã³ãŒããåŠçãããŠããéã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ïŒãäœæããŸãã
#!/bin/bash # changesong.sh # DEFAULT_COVER="/home/user/Images/no-cover.jpg" [ -n "$1" ] && FULLDIR=`dirname "$1"` [ -n "$FULLDIR" ] && COVERS=`ls "$FULLDIR" | grep "\.jpg\|\.png\|\.gif"` if [ -z "$COVERS" ]; then COVERS="$DEFAULT_COVER" else TRYCOVERS=`echo "$COVERS" | grep -i "cover\|front\|folder\|albumart" | head -n 1` if [ -z "$TRYCOVERS" ]; then TRYCOVERS=`echo "$COVERS" | head -n 1` if [ -z "$TRYCOVERS" ]; then TRYCOVERS="$DEFAULT_COVER" else TRYCOVERS="$FULLDIR/$TRYCOVERS" fi else TRYCOVERS="$FULLDIR/$TRYCOVERS" fi COVERS="$TRYCOVERS" fi MTITLE= " : $2 : $3 : $5 : $6 : $4" dbus-send --session --dest=org.naquadah.awesome.awful /ru/console/mocp ru.console.mocp.songChanged \ string:"$MTITLE" \ string:"$COVERS" # , .. ( bash)
ã¹ã¯ãªããã«å®è¡æš©éãäžããŸãã
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ããŒããŒãã¹ã€ããã䜿çšïŒã
-- kbdwidget = widget({type = "textbox", name = "kbdwidget"}) kbdwidget.border_color = beautiful.fg_normal kbdwidget.border_width = 1 kbdwidget.text = '<span color="#F8EC5D"><b> Eng </b></span>' next_layout=1 function changeKeyboardLayout(keyboard_layout) awful.util.spawn( "dbus-send --type=method_call --session --dest=ru.gentoo.KbddService /ru/gentoo/KbddService ru.gentoo.kbdd.set_layout uint32:".. keyboard_layout ) end dbus.request_name("session", "ru.gentoo.kbdd") dbus.add_match("session", "interface='ru.gentoo.kbdd',member='layoutChanged'") dbus.add_signal("ru.gentoo.kbdd", function(...) local data = {...} local layout = data[2] lts = {[0] = '<span color="#F8EC5D"><b> Eng </b></span>', [1] = '<span color="#FF3000"><b> </b></span>'} kbdwidget.text = " "..lts[layout].." " if layout == 1 then next_layout = 0 else next_layout = 1 end end ) kbdwidget:buttons(awful.util.table.join(awful.button({}, 1, function () changeKeyboardLayout(next_layout) end)))
ããã§ãããŠã¹ã®å·Šãã¿ã³ã§ãŠã£ãžã§ãããã¯ãªãã¯ããŠãããŒããŒãã¬ã€ã¢ãŠããå€æŽãã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
#!/usr/bin/env python def pidgin_status_func(state): obj = bus.get_object("im.pidgin.purple.PurpleService", "/im/pidgin/purple/PurpleObject") pidgin = dbus.Interface(obj, "im.pidgin.purple.PurpleInterface") status = pidgin.PurpleSavedstatusFind("afk") if status == 0: status = pidgin.PurpleSavedstatusNew("afk", 5) if state: pidgin.PurpleSavedstatusSetMessage(status, "Away from keyboard") pidgin.PurpleSavedstatusActivate(status) import dbus, gobject from dbus.mainloop.glib import DBusGMainLoop dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) bus = dbus.SessionBus() bus.add_signal_receiver(pidgin_status_func, dbus_interface="org.gnome.ScreenSaver", signal_name="ActiveChanged") loop = gobject.MainLoop() loop.run()
ãã®ã¹ã¯ãªãããèŠãŠã¿ãŸãããã 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ïŒãè¿œå ããŸããïŒ