рдореИрдВ, рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЛ, рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЙрдЯ рдХреА рдХреЗ рд▓рд┐рдП рдпреВрдирд┐рдЯреА рд╢реЗрд▓ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдмрдиреНрд╕ рд╕реЗ рдкреНрдпрд╛рд░ рд╣реИред
рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ рдЕрдЪреНрдЫрд╛рдИ рдзреНрд╡рдирд┐ рд╕рдВрдХреЗрддрдХ рдореЗрдВ mpris2 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХрд╛ рдПрдХреАрдХрд░рдг рд╣реИред
рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдпрд╣ рдзреНрд╡рдирд┐ рд╕рдВрдХреЗрддрдХ рдХреНрдпрд╛ рд╣реИрдпрд╣ рд╕реВрдЪрдХ рдкреИрдирд▓ рдореЗрдВ рдПрдХ рд╕реНрдкреАрдХрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдмреИрдЬ рд╣реИ, рддреБрд░рдВрдд рдШрдбрд╝реА рдХреЗ рдмрд╛рдИрдВ рдУрд░:


рдХреНрдпрд╛ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИ, рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬреЛ рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рддрд░рд╣ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рдЕрджреНрднреБрдд рд╕реВрдЪреА рдореЗрдВ рдЖрддреЗ рд╣реИрдВред рдФрд░ рд╕рдм рдХреБрдЫ рд╢рд╛рдВрдд рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдЕрдЬреАрдм рдлреБрд╕рдлреБрд╕рд╛рддреЗ рд╣реБрдП рдпрд╣ рдЖрдХрд░реНрд╖рдг, рд╡реЙрд▓реНрдпреВрдо рдХреЗ рд╕реНрддрд░ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдХрд┐рд╕реА рднреА рдЧрд░реНрдо рдХреБрдВрдЬреА рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдЬреЛ рд▓реЛрдЧ рдпрд╣ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рдм рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рд╕реАрдзреЗ
рдЬреАрдердм рдкрд░ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред рдореИрдВ рджреВрд╕рд░реЛрдВ рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рдкреВрдЫрддрд╛ рд╣реВрдВред
рдРрд╕реЗ рдЙрджреНрдпрдо рдХреЛ рдХреЛрдИ рдХреИрд╕реЗ рд╢реБрд░реВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ?
рдЗрд╕рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ googling рдХреЗ рд▓рд╛рдпрдХ рд╣реИ, рдЬреЛ, рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдХреЛрдИ рднреА рд╕рдордЭрджрд╛рд░ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рджреЗрдЧрд╛ - рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдорд╛рдзрд╛рди, рдФрд░ рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рдмрдЧ рдХрд╛ рд▓рд┐рдВрдХ рдХрд┐ рдЬрдм рд╕рдВрдХреЗрддрдХ рдЦреБрд▓рд╛ рд╣реИ, рддреЛ рдЧрд░реНрдо рдЪрд╛рдмрд┐рдпрд╛рдБ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВред
рд▓рд╛рдкрддрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдШрдЯрдХ рдХреЗ рд╕реНрд░реЛрдд рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓рд╛, рд╕реНрдкрд╖реНрдЯ рдХрджрдо рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛,
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдПрдХрддрд╛ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЗрди рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдм рдХреБрдЫ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
"рд╕рдореНрдорд┐рд▓рд┐рдд рд╣реЛрдВ" рдЕрдиреБрднрд╛рдЧ рдкрд░ рдЬрд╛рдПрдВ , рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕ рд╕рдм рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рд╣реЛрдЧрд╛ред рдЕрдЧрд▓рд╛,
"рд╡рд┐рдХрд╛рд╕" рдЕрдиреБрднрд╛рдЧ рдкрд░ рдЬрд╛рдПрдВ рд╣рдо рд╕реНрд░реЛрдд рдХреЛрдб рд╕реНрд╡рдпрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдареАрдХ рд╣реИ, рдЪреВрдВрдХрд┐ рд╣рдо рдорд╛рдирдХ рдШрдЯрдХ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдлрд┐рд░ рд╣рдорд╛рд░рд╛ рдкрде
"рд╕рд╛рдорд╛рдиреНрдп рдШрдЯрдХреЛрдВ" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред рдЬрд╣рд╛рдВ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдорд╛рд░реЗ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкреНрд░рддреАрдХреНрд╖рд┐рдд рд╕рдВрдХреЗрддрдХ рдкрд╛рддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдпрд╣рд╛рдВ рд╣реИ, рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдпрд╣
"рд╕рд╛рдЙрдВрдб рдореЗрдиреВ" рдирд╛рдо рд╕реЗ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЕрдиреНрдп рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рдЗрд╕реЗ рдХреЗрд╡рд▓ рд╕рдВрдХреЗрддрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдУрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗред
рджреЗрдЦрд╛, рддреБрд░рдВрдд рдЧрд╢
рд╕реНрд░реЛрдд рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ ...
bzr branch lp:indicator-sound
рд╕рд╛рдЭрд╛рдХрд░рдг рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдШрд╛рдЯреА рд╕реЗ рдереЛрдбрд╝рд╛ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рдЖрд╡реЗрдЧ рдЬрд▓реНрджреА рд╕реЗ рд╣реЙрдЯрдХреАрдЬрд╝, рдкреБрди: рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдзрд░реНрдореА рдХреЗ рдХрд╛рдо рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдКрдм, рдЗрд╕ рд╕реЛрдЪ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЗрди рд╕рдорд╛рди рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛, рдЗрд╕рдХреЗ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рд╣реЙрдЯрдХреАрдЬрд╝ рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдкрд┐рдд рд╣реЙрдЯрдХреАрдЬрд╝ рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдФрд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реИ, рдЗрд╕реЗ рд░реЛрдХрд╛, рдореБрдЭреЗ рд░реЛрдХрд╛ рдФрд░ рд╕реНрд░реЛрдд рдХреЛ рдереЛрдбрд╝рд╛ рдФрд░ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рд▓рдЧрд╛рддрд╛рд░ рдФрд░ рд▓рдЧрд╛рддрд╛рд░ред
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╣реИ?
рд╕рднреА рд╕реНрд░реЛрдд рдЬреЛ рд╣рдореЗрдВ рд░реБрдЪрд┐ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ, src рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рд╣реИрдВред рдЖрдЗрдП main.vala рдХреЗ рд╕рд╛рде рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рд╢реБрд░реВ рдХрд░реЗрдВ:
main.vala [CCode (cheader_filename="libintl.h", type="char *")] extern unowned string bind_textdomain_codeset (string domainname, string codeset); static int main (string[] args) { bind_textdomain_codeset (Config.GETTEXT_PACKAGE, "UTF-8"); Intl.setlocale (LocaleCategory.ALL, ""); Intl.bindtextdomain (Config.GETTEXT_PACKAGE, Config.GNOMELOCALEDIR); Notify.init ("indicator-sound"); var service = new IndicatorSound.Service (); return service.run (); }
рдпрд╣рд╛рдВ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдХреНрд▓рд╛рд╕рд┐рдХ UI рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдирд╣реАрдВ рд╣реИ рдЬреЛ рдПрдХ рдЯреНрд░реЗ рдЖрдЗрдХрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реЗрд╡рд╛ рд╣реИ:
var service = new IndicatorSound.Service ();
рдЪреВрдВрдХрд┐ рдпрд╣ рдПрдХ рд╕реЗрд╡рд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкреНрд░рддрд┐рдкрд╛рджрди рдФрд░ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдЪреАрдЬреЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдЪрд▓реЛ рд╕реЗрд╡рд╛ рдореЗрдВ рдПрдХ рдЧрд╣рд░рд╛ рд░реВрдк рд▓реЗрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН рд╕реЗрд╡рд╛ред рдлрд╛рд░реНрдо рдХреА рдкрдВрдХреНрддрд┐рдпрд╛рдБ:
рдирд┐рд╕реНрд╕рдВрджреЗрд╣, рд╡реЗ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдмрд╕ рдпрд╣рд╛рдБ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо
рдбреА-рдмрд╕ рд╣реИ ред рдзрд╛рд░рд╛рдкреНрд░рд╡рд╛рд╣ рд░реВрдк рд╕реЗ, рдЖрдк рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХрд╛рдлреА рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ, рдЬреЛ рдХрд┐ рдЕрдЪреНрдЫрд╛ рд╣реИ,
рдХрдВрд╕реЛрд▓ рд╕реЗ рдЦреАрдВрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛,
рдореЙрдирд┐рдЯрд░ рдХрд░реЗрдВ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рд╕реЗрд╡рд╛рдПрдВ рдХреИрд╕реЗ рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддреА рд╣реИрдВ ред рдЬреАрдпреВрдЖрдИ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рднреА рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
qdbusviewer , рдЬрд┐рд╕реЗ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
sudo apt-get install qdbus-qt5
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдпрд╣ рд░рди рд╡рд┐рдзрд┐ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ, рдЬрд┐рд╕реЗ рдореБрдЦреНрдп рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:
public int run () { if (this.loop != null) { warning ("service is already running"); return 1; } Bus.own_name (BusType.SESSION, "com.canonical.indicator.sound", BusNameOwnerFlags.NONE, this.bus_acquired, null, this.name_lost); this.loop = new MainLoop (null, false); this.loop.run (); return 0; }
рд╕реНрд╡рдпрдВ_рдирд╛рдо рдкрджреНрдзрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдкреНрд░рд▓реЗрдЦрди рдХреБрдЫ рд╕рдордЭрджрд╛рд░реА рд╕реЗ рдХреБрдЫ рдХрд╣рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЙрд╕реА рдмрд╕ рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реЛрдиреЗ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред
рдпрд╣ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ
Gdbus рдХрдорд╛рдВрдб рдореЗрдВ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдФрд░ рдмрд╣реБ-рд╕рдВрдЪрд╛рд░ рдЖрддреНрдордирд┐рд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐ рд╣реИ:
рдЖрдЗрдП рд╕рд┐рд╕реНрдЯрдо рдХреА рдЖрдВрдЦреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛ рдХреЛ рджреЗрдЦреЗрдВ $ gdbus introspect --session --dest com.canonical.indicator.sound --object-path \ /com/canonical/indicator/sound node /com/canonical/indicator/sound { interface org.freedesktop.DBus.Properties { methods: Get(in s interface_name, in s property_name, out v value); GetAll(in s interface_name, out a{sv} properties); Set(in s interface_name, in s property_name, in v value); signals: PropertiesChanged(s interface_name, a{sv} changed_properties, as invalidated_properties); properties: }; interface org.freedesktop.DBus.Introspectable { methods: Introspect(out s xml_data); signals: properties: }; interface org.freedesktop.DBus.Peer { methods: Ping(); GetMachineId(out s machine_uuid); signals: properties: }; interface org.gtk.Actions { methods: List(out as list); Describe(in s action_name, out (bgav) description); DescribeAll(out a{s(bgav)} descriptions); Activate(in s action_name, in av parameter, in a{sv} platform_data); SetState(in s action_name, in v value, in a{sv} platform_data); signals: Changed(as removals, a{sb} enable_changes, a{sv} state_changes, a{s(bgav)} additions); properties: }; node desktop_greeter { }; node phone { }; node desktop { }; };
рдЪреВрдВрдХрд┐ рд╣рдо рдЗрд╕ рд╕реЗрд╡рд╛ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЗрдВрдЯрд░рдлрд╝реЗрд╕ org.gtk.Actions рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдореИрдВ vkcom рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдХреЛрдИ рднреА рдЕрдиреНрдп рдХрд░реЗрдЧрд╛ред рдЪрд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рд╕реЗ рдПрдХ рдХрдорд╛рдВрдб рдЪрд▓рд╛рддреЗ рд╣реИрдВ:
dbus-monitor > monitor.log
рдФрд░ рд╣рдо рдЕрдкрдиреЗ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд╕рд╛рде рдереЛрдбрд╝реА рдмрд╛рддрдЪреАрдд рдХрд░реЗрдВрдЧреЗ, рдЕрд░реНрдерд╛рддреН, рдкреНрд▓реЗ, рдкреЙрдЬрд╝, рдЕрдЧрд▓рд╛ рдФрд░ рдкрд┐рдЫрд▓рд╛ рджрдмрд╛рдПрдВред
рдФрд░ рдЕрдм рд╣рдо рд▓реЙрдЧ рдореЗрдВ рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкрд╛рддреЗ рд╣реИрдВ: рдФрд░ рдкреЙрдЬрд╝ рдХрд╣рд╛рдБ рд╣реИ, рдЖрдк рдкреВрдЫреЗрдВ? рд╣рдореНрдо, рд▓реЗрдХрд┐рди рдирд╣реАрдВ, рдХреЗрд╡рд▓ рдкреНрд▓реЗ / рдкреЙрдЬрд╝ рд╣реИ, рдЬреЛ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкрддрд╛ рд▓рдЧрд╛рдПрдВрдЧреЗ рдХрд┐ рдХреИрд╕реЗ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реИред Org.gtk.Actions рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдорд╛рдиреНрдпрддрд╛рдУрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рднреБрдЧрддрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрдЗрдП рдЕрдм рдПрдХ рдЕрд▓рдЧ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдордиреЗ рдЙрд╕ рд╕рдордп рдХрд┐рдпрд╛ рдерд╛ рдЬрдм рд╣рдо рд╕рд╛рдВрдХреЗрддрд┐рдХ рд╢рдмреНрдж рдореЗрдВ рд╕рд╛рдВрддреНрд╡рдирд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд░рддреЗ рдереЗ:
рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ
gdbus call --session --dest com.canonical.indicator.sound --object-path /com/canonical/indicator/sound --method org.gtk.Actions.List
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдХрд┐рд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рд╕реЗ рдмрдиреЗ рд╣реИрдВ, рдЖрдк рдкрд╣рд▓реЗ рд╣реА рдкрдХрдбрд╝ рдЪреБрдХреЗ рд╣реИрдВред
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рд╢рд╛рдВрдд, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ! рд╣рд╛рдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рд░реВрдк рдореЗрдВ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд▓рд┐рдП ... рд▓реЗрдХрд┐рди, рдпрд╣ рд╣рдорд╛рд░реА рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реИред
рдореИрдВ рдЖрдкрдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдЦрд┐рд▓рд╛рдбрд╝реА рд╕реНрдерд╛рдкрд┐рдд рд╣реИрдВ, рдФрд░ рдореИрдВ рдЙрди рд╕рднреА рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ "рд╡рд░реНрддрдорд╛рди" рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рддрд░рд╣ рдХреЗ рддрдВрддреНрд░ рдХреЗ рд╕рд╛рде рдЖрдирд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдХрдИ рдЦрд┐рд▓рд╛рдбрд╝реА рдПрдХ рд╕рд╛рде рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЙрди рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдЬреЛ рд╕рдВрдХреЗрддрдХ рдзреНрд╡рдирд┐ рд╕реЗрд╡рд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдереЛрдбрд╝рд╛ рд╕рд╛ Google, рдпрд╣ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдпрд╣ рд╕реВрдЪреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд "dconf рдбреЗрдЯрд╛рдмрд╕" рдореЗрдВ рд╣реИ, рдЬрд┐рд╕реЗ dconf рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣реЗрд░рдлреЗрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреНрдпрд╛ рд╣рдо рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ?
dconf read /com/canonical/indicator/sound/interested-media-players
рдХреНрдпрд╛ рдпрд╣ рдмрд╣реБрдд рдкрдардиреАрдп рдирд╣реАрдВ рд╣реИ? рдФрд░ рдЗрд╕рд▓рд┐рдП:
dconf read /com/canonical/indicator/sound/interested-media-players | sed -e "s:[],'\[]::g" -e "s:\s:\n:g"
рд╣рдорд╛рд░реА рд╣рд░ рдЪреАрдЬ рдХреЛ рд╕рд┐рдб рдХрд░реЗрдВ ред рддреЛ рдХреНрдпрд╛, рд▓реЗрдХрд┐рди рдЕрдм "рд╡рд░реНрддрдорд╛рди" рдХрд╛ рдЪрдпрди рдХреИрд╕реЗ рдХрд░реЗрдВ? рдЦреИрд░, рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╣рд▓ рдХрд┐рдпрд╛:
рдЬреЛ рдХреЛрдИ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдорд┐рд▓рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рд╡рд╣ рд╕рднреНрдп рджрд┐рдЦреЗ, рдФрд░ рдпреВрдЖрдИ рдкрд░ рдЦреБрдж рдХреЛ рдкреНрд░рдХрдЯ рдХрд░рдирд╛ рд╡рд╛рдВрдЫрдиреАрдп рд╣реЛрдЧрд╛:
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рджреЗрдЦрд╛ рд╣реЛрдЧрд╛, рдореИрдВрдиреЗ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рднреЗрдЬрдиреЗ рд╡рд╛рд▓реЗ рдХрдорд╛рдВрдб рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдХреЗ рддреМрд░ рдкрд░ рдкреНрд▓реЗрдпрд░ рд▓рд┐рд╕реНрдЯ рдХреА рдЬрд╛рдирдХрд╛рд░реА рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдерд╛ред рдпрд╣ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдЙрдмрдВрдЯреВ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ "-t" рдзреНрд╡рдЬ рдЗрд╕ рдЖрджреЗрд╢ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЙрд╕ рд╕рдордп-рд╕рдордп рдХреЗ рд╕рдВрдХреЗрдд рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рджреМрд░рд╛рди рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рдПрдЧреА, рдЗрд╕рд▓рд┐рдП рд╕реВрдЪрдирд╛рдУрдВ рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЕрднрджреНрд░ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк
рдЗрди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╢рд╛рдпрдж рдХреЛрдИ рдХрд╣реЗрдЧрд╛ - рдпрд╣ рдПрдХ рдпреВрдирд┐рдХреНрд╕ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рдореИрдВ рдпреВрдЖрдИ рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдкреНрд░рд╛рдкреНрддрд┐ рдФрд░ рдЙрдирдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдорд┐рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣рдордд рд╣реЛ рдЬрд╛рдКрдВрдЧрд╛, рд▓реЗрдХрд┐рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдРрд╕рд╛ рд╣реА рдХрд┐рдпрд╛ред
Gdbus рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдЙрдкрд░реЛрдХреНрдд рдХреМрд╢рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдмрд╛рдХреА рдЦрд┐рд▓рд╛рдбрд╝реА рдкреНрд░рдмрдВрдзрди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреВрдВрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЕрдВрдд рдореЗрдВ рдЬреЛ рд╣реБрдЖ рд╡рд╣
рдЧрд┐рддреБрдм рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрд▓рдЧ-рдЕрд▓рдЧ, рдореИрдВ рдХреЗрд╡рд▓ рд╡рд░реНрддрдорд╛рди рдЯреНрд░реИрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдПрдХреНрд╢рди рд╕реНрдЯреЗрдЯ (gtk.Action) рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ, рдЬреЛ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА org.gtk.Actions.Describe рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдФрд░ рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
gdbus call --session --dest com.canonical.indicator.sound --object-path /com/canonical/indicator/sound \ --method org.gtk.Actions.Describe vkcomvkcom.desktop
рдЗрд╕ рдХрдорд╛рдВрдб рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдФрд░ рд╡рд░реНрддрдорд╛рди рдЯреНрд░реИрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдиреНрдпреВрдирддрдо рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ, рдпрджрд┐ рдХреЛрдИ рд╣реЛред
рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдп рдХреЗ рдмрд╛рдж, рдпрд╣ рдХреЗрд╡рд▓ рд╣реЙрдЯрдХреАрдЬрд╝ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╣реЛрддреА рд╣реИред рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП CompizConfig рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдореИрдВ рдЗрд╕реЗ рдирд┐рдпрдорд┐рдд рд╕рд╛рдзрди (Ubuntu 13.10) рд╕реЗ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдХреНрдпреЛрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЬрд▓реНрдж рд╣реА рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдЖрдк рдирд┐рдореНрди рдЖрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ CompizConfig рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
sudo apt-get install compizconfig-settings-manager
рдпрд╣ рд╕рдм рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдпрд╣ рд╕рдм, рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред