АвтоматичСн Π²Ρ…ΠΎΠ΄ Π² Lync ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ Π² Linux

Π—Π΄Ρ€Π°Π²Π΅ΠΉΡ‚Π΅, Π₯Π°Π±Ρ€!

Π—Π° ΠΌΠ΅Π½ Ρ‚Π°Π·ΠΈ Ρ„Ρ€Π°Π·Π° Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Π½Π° hello world, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΉ-накрая стигнах Π΄ΠΎ ΠΏΡŠΡ€Π²Π°Ρ‚Π° си публикация. Π”ΡŠΠ»Π³ΠΎ ΠΎΡ‚Π»Π°Π³Π°Ρ… Ρ‚ΠΎΠ·ΠΈ Π·Π½Π°Ρ‡ΠΈΠΌ ΠΌΠΎΠΌΠ΅Π½Ρ‚, Π·Π°Ρ‰ΠΎΡ‚ΠΎ нямашС ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° пиша, Π° Π½Π΅ ΠΌΠΈ сС искашС Π΄Π° обсъТдам Π½Π΅Ρ‰Π°, ΠΊΠΎΠΈΡ‚ΠΎ Π²Π΅Ρ‡Π΅ са ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ обсъТдани. Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚, Π·Π° ΠΏΡŠΡ€Π²Π°Ρ‚Π° си публикация исках Π½Π΅Ρ‰ΠΎ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΎ, ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ ΠΈ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰ΠΎ извСстСн прСдизвикатСлство ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ. И Π΅Ρ‚ΠΎ, ΠΌΠΎΠ³Π° Π΄Π° сподСля Ρ‚ΠΎΠ²Π°. Π‘Π΅Π³Π° Π·Π° всичко ΠΏΠΎ Ρ€Π΅Π΄.

Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅

Всичко Π·Π°ΠΏΠΎΡ‡Π½Π° с Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ ΠΏΡ€Π΅Π΄ΠΈ извСстно Π²Ρ€Π΅ΠΌΠ΅ инсталирах Linux Mint Π½Π° работния си ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€. Много ΠΎΡ‚ вас вСроятно знаят, Ρ‡Π΅ Pidgin с приставката Sipe Π΅ съвсСм Π΄ΠΎΠ±Ρ€Π° Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Π½Π° Microsoft Lync (сСга Π½Π°Ρ€Π΅Ρ‡Π΅Π½ Skype for business) Π·Π° Linux систСми. ΠŸΠΎΡ€Π°Π΄ΠΈ спСцификата Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ΠΌΠΈ чСсто трябва Π΄Π° участвам Π² SIP-ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ, ΠΈ ΠΊΠΎΠ³Π°Ρ‚ΠΎ бях Windows ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π», Π²Π»ΠΈΠ·Π°Π½Π΅Ρ‚ΠΎ Π² ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ бСшС Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ€Π½ΠΎ: ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ…ΠΌΠ΅ ΠΏΠΎΠΊΠ°Π½Π° ΠΏΠΎ ΠΈΠΌΠ΅ΠΉΠ», ΠΊΠ»ΠΈΠΊΠ²Π°Ρ…ΠΌΠ΅ Π½Π° Π»ΠΈΠ½ΠΊΠ° Π·Π° Π²Ρ…ΠΎΠ΄ ΠΈ Π³ΠΎΡ‚ΠΎΠ²ΠΎ, бяхмС Π²ΡŠΡ‚Ρ€Π΅.

ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Ρ… Π½Π° Ρ‚ΡŠΠΌΠ½Π°Ρ‚Π° страна Π½Π° Linux, всичко стана ΠΏΠΎ-слоТно: Π²Π»ΠΈΠ·Π°Π½Π΅Ρ‚ΠΎ Π² ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ с Pidgin ΡΡŠΡ‰ΠΎ Π΅ възмоТно, Π½ΠΎ Ρ‚Π°ΠΌ Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π² настройкитС Π½Π° вашия SIP-Π°ΠΊΠ°ΡƒΠ½Ρ‚ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ опцията Π·Π° ΠΏΡ€ΠΈΡΡŠΠ΅Π΄ΠΈΠ½ΡΠ²Π°Π½Π΅ към конфСрСнция ΠΎΡ‚ ΠΌΠ΅Π½ΡŽΡ‚ΠΎ ΠΈ Π² отворСния ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ† Π΄Π° поставитС Π»ΠΈΠ½ΠΊΠ° към конфСрСнцията ΠΈΠ»ΠΈ Π΄Π° Π²ΡŠΠ²Π΅Π΄Π΅Ρ‚Π΅ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π½Π° конфСрСнцията. И слСд извСстно Π²Ρ€Π΅ΠΌΠ΅ Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ… Π΄Π° сС замислям: "Π½Π΅ ΠΌΠΎΠΆΠ΅ Π»ΠΈ Ρ‚ΠΎΠ²Π° Π΄Π° сС опрости?" Аха, Ρ‰Π΅ ΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΅, Π½Π° ΠΊΠ°ΠΊΠ²ΠΎ Ρ‚ΠΈ Π΅ Ρ‚ΠΎΠ²Π°, моТСшС Π΄Π° сСдиш Π½Π° Windows ΠΈ Π΄Π° Π½Π΅ сС Ρ‚Ρ€Π΅Π²ΠΎΠΆΠΈΡˆ.

Π‘Ρ‚ΡŠΠΏΠΊΠ° 1. ИзслСдванС

"ΠšΠ°ΠΊΠ²Π°Ρ‚ΠΎ ΠΈ глупост Π΄Π° сС вмъкнС Π² Π³Π»Π°Π²Π°Ρ‚Π°, Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Ρ‰Π΅ я ΠΈΠ·Π³ΠΎΠ½ΠΈ" β€” ΠΊΠ°Π·Π²Π°Π» Π΅ НСкрасов Π² ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ си "ΠšΠΎΠΌΡƒ Π½Π° Руси Π΄Π° ΠΆΠΈΠ²Π΅Π΅ Π΄ΠΎΠ±Ρ€Π΅".

И Ρ‚Π°ΠΊΠ°, слСд ΠΊΠ°Ρ‚ΠΎ ΠΌΠΈΡΡŠΠ»Ρ‚Π° ΠΏΠΎΠΏΠ°Π΄Π½Π° Π² Π³Π»Π°Π²Π°Ρ‚Π° ΠΌΠΈ, слСд извСстно Π²Ρ€Π΅ΠΌΠ΅ сС появи ΠΈ ΠΏΡŠΡ€Π²Π°Ρ‚Π° идСя Π·Π° рСализация. ИзглСТдашС просто β€” Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° Π·Π°Ρ…Π²Π°Ρ‰Π°ΠΌ обращСнията към Π»ΠΈΠ½ΠΊΠΎΠ²Π΅Ρ‚Π΅ meet.company.com/user/confid β€” Π΄Π° инсталирам Π½Π° локалния си ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ Π»ΠΎΠΊΠ°Π»Π΅Π½ процСс Π½Π° ΡƒΠ΅Π± ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° 127.0.0.1 ΠΈ Π² /etc/hosts Π΄Π° добавя статичСн запис Π·Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½Π° Π½Π° компанията, Ρ‡Ρ€Π΅Π· ΠΊΠΎΠΉΡ‚ΠΎ сС Π²Π»ΠΈΠ·Π° Π² ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈΡ‚Π΅, посочващ Π½Π° localhost. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Ρ‚ΠΎΠ·ΠΈ ΡƒΠ΅Π± ΡΡŠΡ€Π²ΡŠΡ€ трябва Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π°Ρ‚Π° Π»ΠΈΠ½ΠΊΠ° ΠΈ ΠΏΠΎ някакъв Π½Π°Ρ‡ΠΈΠ½ Π΄Π° я ΠΏΡ€Π΅Π΄Π°Π΄Π΅ Π½Π° Pidgin (Π²Π΅Π΄Π½Π°Π³Π° Ρ‰Π΅ ΠΊΠ°ΠΆΠ°, Ρ‡Π΅ Π² Ρ‚ΠΎΠ·ΠΈ Π΅Ρ‚Π°ΠΏ нямашС Π΄Π° Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌ ΠΊΠ°ΠΊ Ρ‰Π΅ ΠΌΡƒ я Π΄Π°ΠΌ). Π Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, Ρ€Π°Π·Π±ΠΈΡ€Π° сС, ΠΌΠΈΡ€ΠΈΡˆΠ΅ Π½Π° импровизация, Π½ΠΎ Π½ΠΈΠ΅ смС програмисти, Π·Π° нас импровизацията Π½Π΅ Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ (шСга).

Π’Π°ΠΊΠ° случайно ΠΎΡ‚ΠΊΡ€ΠΈΡ… Π»ΠΈΠ½ΠΊ Π·Π° ΠΏΠΎΠΊΠ°Π½Π° Π² Google Chrome (ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π²ΠΈΠ½Π°Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ Mozilla Firefox). И Π½Π° ΠΌΠΎΠ΅Ρ‚ΠΎ ΡƒΡ‡ΡƒΠ΄Π²Π°Π½Π΅ ΡƒΠ΅Π± страницата изглСТдашС съвсСм Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎ β€” нямашС Ρ„ΠΎΡ€ΠΌΠ° Π·Π° въвСТданС Π½Π° потрСбитСлски Π΄Π°Π½Π½ΠΈ ΠΈ Π²Π΅Π΄Π½Π°Π³Π° слСд Π²Π»ΠΈΠ·Π°Π½Π΅Ρ‚ΠΎ Π½Π° страницата ΠΈΠ·Π»Π΅Π·Π΅ Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ Π·Π° отварянС Π½Π° Π½Π΅Ρ‰ΠΎ Ρ‡Ρ€Π΅Π· xdg-open. ΠžΡ‚ Π»ΡŽΠ±ΠΎΠΏΠΈΡ‚ΡΡ‚Π²ΠΎ натискам "Π΄Π°" ΠΈ ΠΈΠ·Π»ΠΈΠ·Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ Π·Π° Π³Ρ€Π΅ΡˆΠΊΠ° β€” Π»ΠΈΠ½ΠΊΡŠΡ‚ lync15:confjoin?url=https://meet.company.com/user/confid Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΎΡ‚Π²ΠΎΡ€Π΅Π½. Π₯ΠΌΠΌ. Какво Π΅ Ρ‚ΠΎΠ²Π° xdg-open ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ ΠΌΡƒ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Π·Π° Π΄Π° ΠΌΠΎΠ³Π°Ρ‚ Ρ‚Π°ΠΊΠΈΠ²Π° Π»ΠΈΠ½ΠΊΠΎΠ²Π΅ Π΄Π° сС отварят? Π Π°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° докумСнтацията ΠΏΠΎΠΊΠ°Π·Π°, Ρ‡Π΅ Ρ‚ΠΎΠ²Π° Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π° Π³Ρ€Π°Ρ„ΠΈΡ‡Π½Π°Ρ‚Π° срСда, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΠΎΠΌΠ°Π³Π° Π·Π° стартиранС Π½Π° ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ прилоТСния ΠΈΠ»ΠΈ с ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈ Π·Π° uri scheme, ΠΈΠ»ΠΈ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅. АсоциациитС сС настройват Ρ‡Ρ€Π΅Π· ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° mime-type. И Ρ‚Π°ΠΊΠ°, Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ стартирамС Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π½Π° ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° uri scheme с ΠΈΠΌΠ΅Ρ‚ΠΎ lync15 ΠΈ Π»ΠΈΠ½ΠΊΡŠΡ‚ сС ΠΏΡ€Π΅Π΄Π°Π²Π° Π½Π° xdg-open, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ трябва Π΄Π° Π³ΠΎ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΠΈ Π½Π° някоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅Ρ‚ΠΎ отговаря Π·Π° Ρ‚ΠΎΠ·ΠΈ Ρ‚ΠΈΠΏ Π»ΠΈΠ½ΠΊΠΎΠ²Π΅. ΠšΠΎΠ΅Ρ‚ΠΎ, Ρ€Π°Π·Π±ΠΈΡ€Π° сС, нямамС Π² систСмата. А Π°ΠΊΠΎ нямамС, ΠΊΠ°ΠΊΠ²ΠΎ правят Π² свСта Π½Π° отворСния ΠΊΠΎΠ΄? ΠŸΡ€Π°Π²ΠΈΠ»Π½ΠΎ, Ρ‰Π΅ Π³ΠΎ напишСм сами.

По-Π΄ΡŠΠ»Π±ΠΎΠΊΠΎΡ‚ΠΎ Π½Π°Π²Π»ΠΈΠ·Π°Π½Π΅ Π² свСта Π½Π° Linux, особСно Π² ΠΈΠ·ΡƒΡ‡Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½Π°Ρ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π³Ρ€Π°Ρ„ΠΈΡ‡Π½Π°Ρ‚Π° срСда (desktop environment, DE), Π² случая Π°Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ Xfce Π² Linux Mint, ΠΏΠΎΠΊΠ°Π·Π°, Ρ‡Π΅ прилоТСнията ΠΈ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈΡΡ‚ с тях mime-type ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ сС записват ΠΏΡ€Π°Π²ΠΎ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ с прякор с Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ .desktop. А Π·Π°Ρ‰ΠΎ Π΄Π° Π½Π΅, създавам прост ярлик Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΠΊΠΎΠΉΡ‚ΠΎ просто трябва Π΄Π° стартира баш-скрипт ΠΈ Π΄Π° ΠΈΠ·Π²Π΅Π΄Π΅ прСдадСния ΠΌΡƒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π½Π° ΠΊΠΎΠ½Π·ΠΎΠ»Π°Ρ‚Π°, прСдставям само самия Ρ„Π°ΠΉΠ» Π½Π° ярлика:

[Desktop Entry]
Name=Lync
Exec=/usr/local/bin/lync.sh %u
Type=Application
Terminal=false
Categories=Network;InstantMessaging;
MimeType=x-scheme-handler/lync15;

стартирам xdg-open ΠΎΡ‚ ΠΊΠΎΠ½Π·ΠΎΠ»Π°Ρ‚Π° с ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΡŠΡ‰ΠΈΡ Π»ΠΈΠ½ΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ΄Π²Π° ΠΎΡ‚ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° и… ΠΏΡ€ΠΎΠ²Π°Π». ΠžΡ‚Π½ΠΎΠ²ΠΎ ΠΊΠ°Π·Π²Π°, Ρ‡Π΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΈ Π»ΠΈΠ½ΠΊΠ°.

ΠšΠ°ΠΊΡ‚ΠΎ сС ΠΎΠΊΠ°Π·Π°, Π½Π΅ съм ΠΎΠ±Π½ΠΎΠ²ΠΈΠ» ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° с асоциирани mime-type с ΠΌΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π’ΠΎΠ²Π° става с простата ΠΊΠΎΠΌΠ°Π½Π΄Π°:

xdg-mime default lync.desktop x-scheme-handler/lync15

която просто Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π° Ρ„Π°ΠΉΠ»Π° ~/ .config/mimeapps.list.

ΠžΠΏΠΈΡ‚ Π½ΠΎΠΌΠ΅Ρ€ 2 с ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° xdg-open β€” ΠΈ ΠΎΡ‚Π½ΠΎΠ²ΠΎ нСуспСх. Нищо, трудноститС Π½Π΅ Π½ΠΈ ΠΏΠ»Π°ΡˆΠ°Ρ‚, Π° само ΠΏΠΎΠ΄Ρ…Ρ€Π°Π½Π²Π°Ρ‚ интСрСса. И с цялата ΠΌΠΎΡ‰ Π½Π° баша (Ρ‚.Π΅. трасировката) сС потапямС Π² отстраняванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ. Π’ΡƒΠΊ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° сС ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈ, Ρ‡Π΅ xdg-open Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ Π΅ просто шСлл-скрипт.

bash -x xdg-open $url

Анализирайки Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ трасировката, става ΠΌΠ°Π»ΠΊΠΎ ясно, Ρ‡Π΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π° към exo-open. Π’ΠΎΠ²Π° Π²Π΅Ρ‡Π΅ Π΅ Π±ΠΈΠ½Π°Ρ€Π΅Π½ Ρ„Π°ΠΉΠ» ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π·Π°Ρ‰ΠΎ Ρ‚ΠΎΠΉ Π²Ρ€ΡŠΡ‰Π° Π½Π΅ΡƒΡΠΏΠ΅ΡˆΠ΅Π½ статус ΠΊΠΎΠ΄ ΠΏΡ€ΠΈ ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π»ΠΈΠ½ΠΊ Π² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π΅ ΠΏΠΎ-слоТно.

ИзслСдвайки Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° xdg-open, Ρ€Π°Π·Π±Ρ€Π°Ρ…, Ρ‡Π΅ Ρ‚ΠΎΠΉ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π½Π° срСдата ΠΈ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Ρ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΈΠ»ΠΈ Π½Π° някакви инструмСнти Π·Π° отварянС Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π»ΠΈΠ½ΠΊΠΎΠ²Π΅, спСцифични Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π° DE, ΠΈΠ»ΠΈ ΠΈΠΌΠ° Ρ€Π΅Π·Π΅Ρ€Π²Π½Π° функция open_generic

open_xfce()
{
if exo-open --help 2>/dev/null 1>&2; then
exo-open "$1"
elif gio help open 2>/dev/null 1>&2; then
gio open "$1"
elif gvfs-open --help 2>/dev/null 1>&2; then
gvfs-open "$1"
else
open_generic "$1"
fi

if [ $? -eq 0 ]; then
exit_success
else
exit_failure_operation_failed
fi
}

Π‘ΡŠΡ€Π·ΠΎ вмъквам Ρ‚ΡƒΠΊ малък Ρ…Π°ΠΊ с Π°Π½Π°Π»ΠΈΠ· Π½Π° прСдадСния Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΈ Π°ΠΊΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° нашия спСцифичСн подстринг lync15:, Π²Π΅Π΄Π½Π°Π³Π° ΠΏΡ€Π΅Π΄Π°Π²Π°ΠΌΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° функцията open_generic.

ΠžΠΏΠΈΡ‚ Π½ΠΎΠΌΠ΅Ρ€ 3 ΠΈ Π²ΠΈΠ΅ мислитС, Ρ‡Π΅ Ρ‰Π΅ ΠΏΡ€ΠΎΡ€Π°Π±ΠΎΡ‚ΠΈ? Аха, Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠ°. Но ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π·Π° Π³Ρ€Π΅ΡˆΠΊΠ° Π²Π΅Ρ‡Π΅ сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ, Ρ‚ΠΎΠ²Π° Π΅ Π½Π°ΠΏΡ€Π΅Π΄ΡŠΠΊ β€” сСга ΠΌΠΈ казвашС, Ρ‡Π΅ Ρ„Π°ΠΉΠ»ΡŠΡ‚ Π½Π΅ Π΅ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ ΠΈ Π² Π½Π΅Π³ΠΎ пишСшС ΡΡŠΡ‰ΠΈΡ Π»ΠΈΠ½ΠΊ, ΠΏΡ€Π΅Π΄Π°Π΄Π΅Π½ ΠΊΠ°Ρ‚ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚.

Π’ΠΎΠ·ΠΈ ΠΏΡŠΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ бСшС във функцията is_file_url_or_path, която Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π° Π²Ρ…ΠΎΠ΄Π΅Π½ Π»ΠΈΠ½ΠΊ Π½Π° Ρ„Π°ΠΉΠ» file:// ΠΈΠ»ΠΈ ΠΏΡŠΡ‚ Π΄ΠΎ Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ Π½Π΅Ρ‰ΠΎ Π΄Ρ€ΡƒΠ³ΠΎ. И ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π΅ΡˆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π½Π°ΡˆΠΈΡΡ‚ прСфикс (url схСма) ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° Ρ†ΠΈΡ„Ρ€ΠΈ, Π° рСгулярното ΠΈΠ·Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΠ²Π°ΡˆΠ΅ само Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ символи, ΡΡŠΡΡ‚ΠΎΡΡ‰ΠΈ сС ΠΎΡ‚ :alpha:, Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈ Ρ‚ΠΈΡ€Π΅Ρ‚Π°. Π‘Π»Π΅Π΄ консултация със стандарта rfc3986 Π·Π° ΡƒΠ½ΠΈΠΊΠ°Π»Π΅Π½ рСсурсСн ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ стана ясно, Ρ‡Π΅ Ρ‚ΠΎΠ·ΠΈ ΠΏΡŠΡ‚ Microsoft Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠ°Π²Π° Π½ΠΈΡ‰ΠΎ (ΠΌΠ°ΠΊΠ°Ρ€ Ρ‡Π΅ ΠΈΠΌΠ°Ρ… ΠΏΠΎΠ΄ΠΎΠ±Π½Π° вСрсия). ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΊΠ»Π°ΡΡŠΡ‚ символи :alpha: ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° само латински Π±ΡƒΠΊΠ²ΠΈ. Π‘ΡŠΡ€Π·ΠΎ промСням ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° ΠΏΠΎ рСгулярка Π½Π° alphanumeric. Π“ΠΎΡ‚ΠΎΠ²ΠΎ, Π²ΠΈΠ΅ стС нСвСроятни, всичко накрая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π°, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ слСд всички ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ сС ΠΏΡ€Π΅Π΄Π°Π²Π° Π½Π° Π½Π°ΡˆΠ΅Ρ‚ΠΎ скрипт-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½Π° ΠΊΠΎΠ½Π·ΠΎΠ»Π°Ρ‚Π° сС ΠΈΠ·Π²Π΅ΠΆΠ΄Π° Π½Π°ΡˆΠΈΡΡ‚ Π»ΠΈΠ½ΠΊ, всичко ΠΊΠ°ΠΊΠ²ΠΎΡ‚ΠΎ трябва. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΌ Π΄Π° ΠΏΠΎΠ΄ΠΎΠ·ΠΈΡ€Π°ΠΌ, Ρ‡Π΅ всички ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с exo-open ΡΡŠΡ‰ΠΎ са Π·Π°Ρ€Π°Π΄ΠΈ Π²Π°Π»ΠΈΠ΄ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Π»ΠΈΠ½ΠΊΠ° Π·Π°Ρ€Π°Π΄ΠΈ Ρ†ΠΈΡ„Ρ€ΠΈΡ‚Π΅ Π² схСмата. Π—Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ…ΠΈΠΏΠΎΡ‚Π΅Π·Π°Ρ‚Π° промСням рСгистрацията Π½Π° mime-type ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° просто схСма lync ΠΈ Π²ΠΎΠ°Π»Π° β€” всичко Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΈ Π±Π΅Π· прСзаписванС Π½Π° функцията open_xfce. Но Ρ‚ΠΎΠ²Π° ΠΏΠΎ никакъв Π½Π°Ρ‡ΠΈΠ½ няма Π΄Π° Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΡƒΠ΅Π± страницата Π·Π° Π²Ρ…ΠΎΠ΄ Π² конфСрСнцията създава ΠΈΠΌΠ΅Π½Π½ΠΎ Π»ΠΈΠ½ΠΊ с lync15.

И Ρ‚Π°ΠΊΠ°, ΠΏΡŠΡ€Π²Π°Ρ‚Π° част ΠΎΡ‚ ΠΏΡŠΡ‚Ρ Π΅ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Ρ‚Π°. УспявамС Π΄Π° ΠΏΡ€ΠΈΡ…Π²Π°Π½Π΅ΠΌ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π»ΠΈΠ½ΠΊΠ° ΠΈ сСга трябва Π΄Π° Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ ΠΈ ΠΏΡ€Π΅Π΄Π°Π΄Π΅ΠΌ Π½Π° Pidgin. Π—Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π° ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π²ΡŠΡ‚Ρ€Π΅, ΠΊΠΎΠ³Π°Ρ‚ΠΎ въвСТдамС Π΄Π°Π½Π½ΠΈ ΠΏΠΎ Π»ΠΈΠ½ΠΊΠ° Π² ΠΌΠ΅Π½ΡŽΡ‚ΠΎ 'ΠΏΡ€ΠΈΡΡŠΠ΅Π΄ΠΈΠ½ΡΠ²Π°Π½Π΅ към конфСрСнцията', ΠΊΠ»ΠΎΠ½ΠΈΡ€Π°Ρ… Git рСпозитория Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Sipe ΠΈ сС ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²ΠΈΡ… ΠΎΡ‚Π½ΠΎΠ²ΠΎ Π΄Π° навляза Π² ΠΊΠΎΠ΄Π°. Но Ρ‚ΡƒΠΊ, Π·Π° щастиС, ΠΌΠΈ ΠΏΡ€ΠΈΠ²Π»Π΅Ρ‡Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅Ρ‚ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΡŠΡ‚ с скриптовС. contrib/dbus/:

  • sipe-join-conference-with-uri.pl
  • sipe-join-conference-with-organizer-and-id.pl
  • sipe-call-phone-number.pl
  • SipeHelper.pm

Оказа сС, Ρ‡Π΅ ΠΏΠ»ΡŠΠ³ΠΈΠ½ΡŠΡ‚ Sipe Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π·Π° взаимодСйствиС Ρ‡Ρ€Π΅Π· dbus (desktop bus) ΠΈ Π² самитС скриптовС ΠΈΠΌΠ° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π·Π° ΠΏΡ€ΠΈΡΡŠΠ΅Π΄ΠΈΠ½ΡΠ²Π°Π½Π΅ към конфСрСнция ΠΏΠΎ Π»ΠΈΠ½ΠΊ, ΠΈΠ»ΠΈ Ρ‡Ρ€Π΅Π· ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° ΠΈ conf-id, ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€Π°ΠΌΠ΅ ΠΎΠ±Π°ΠΆΠ΄Π°Π½Π΅ ΠΏΡ€Π΅Π· sip. Π’ΠΎΠ²Π° Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½ΠΈ липсвашС.

Π‘Ρ‚ΡŠΠΏΠΊΠ° 2. РСализация Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π·Π° Π°Π²Ρ‚ΠΎΠΆΠΎΠΉΠ½Π°

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π³ΠΎΡ‚ΠΎΠ²ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π½Π° Perl, Ρ€Π΅ΡˆΠΈΡ… просто Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ sipe-join-conference-with-uri.pl ΠΈ Π΄Π° направя ΠΌΠ°Π»ΠΊΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎ Π½Π΅Π³ΠΎ. Пиша Π½Π° Perl, Π·Π°Ρ‚ΠΎΠ²Π° Π½Π΅ ΠΌΠΈ създадС особСни трудности.

Π‘Π»Π΅Π΄ тСстиранС Π½Π° скрипта ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ, записах ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ ΠΌΡƒ Π² Ρ„Π°ΠΉΠ»Π° lync.desktop. И Ρ‚ΠΎΠ²Π° бСшС ΠΏΠΎΠ±Π΅Π΄Π°! ΠŸΡ€ΠΈ Π²Π»ΠΈΠ·Π°Π½Π΅ Π½Π° страницата Π·Π° ΠΏΡ€ΠΈΡΡŠΠ΅Π΄ΠΈΠ½ΡΠ²Π°Π½Π΅ към конфСрСнцията ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° стартиранС Π½Π° xdg-open, изскачащото ΠΏΡ€ΠΎΠ·ΠΎΡ€Ρ‡Π΅ Π½Π° конфСрСнцията ΠΎΡ‚ Pidgin сС ΠΎΡ‚Π²Π°Ρ€ΡΡˆΠ΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ. Как Π»ΠΈ сС Ρ€Π°Π΄Π²Π°Ρ….
Π’Π΄ΡŠΡ…Π½ΠΎΠ²Π΅Π½ ΠΎΡ‚ успСха, Ρ€Π΅ΡˆΠΈΡ… Π΄Π° направя ΡΡŠΡ‰ΠΎΡ‚ΠΎ ΠΈ Π·Π° основния си Π±Ρ€Π°ΡƒΠ·ΡŠΡ€ Mozilla Firefox. ΠšΠΎΠ³Π°Ρ‚ΠΎ Π²Π»ΠΈΠ·Π°ΠΌ ΠΏΡ€Π΅Π· лисата, сС отваря страница Π·Π° авторизация ΠΈ ΠΎΡ‰Π΅ Π² самия ΠΊΡ€Π°ΠΉ ΠΈΠΌΠ° Π±ΡƒΡ‚ΠΎΠ½Π° ΠΏΡ€ΠΈΡΡŠΠ΅Π΄ΠΈΠ½ΠΈ сС с office communicator. Π’ΠΎΠΉ ΠΏΡ€ΠΈΠ²Π»Π΅Ρ‡Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅Ρ‚ΠΎ ΠΌΠΈ. ΠŸΡ€ΠΈ ΠΊΠ»ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° Π½Π΅Π³ΠΎ Π² Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π° сС ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Ρ Π°Π΄Ρ€Π΅ΡΡŠΡ‚:

conf:sip:{user};gruu;opaque=app:conf:focus:id:{conf-id}required-media=audio

, Π½Π° ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ‚ΠΎΠΉ ΡƒΡ‡Ρ‚ΠΈΠ²ΠΎ ΠΌΠΈ ΠΊΠ°Π·Π²Π°, Ρ‡Π΅ Π½Π΅ Π·Π½Π°Π΅ ΠΊΠ°ΠΊ Π΄Π° Π³ΠΎ ΠΎΡ‚Π²ΠΎΡ€ΠΈ ΠΈ вСроятно нямам асоциирано ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ». Но Π²Π΅Ρ‡Π΅ ΠΌΠΈΠ½Π°Ρ…ΠΌΠ΅ ΠΏΡ€Π΅Π· Ρ‚ΠΎΠ²Π°.

Π‘ΡŠΡ€Π·ΠΎ рСгистрирам ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ-скрипт ΠΈ Π·Π° uri-схСмата conf и… Π½ΠΈΡ‰ΠΎ Π½Π΅ сС случва. Π‘Ρ€Π°ΡƒΠ·ΡŠΡ€ΡŠΡ‚ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π° Π΄Π° сС ΠΎΠΏΠ»Π°ΠΊΠ²Π°, Ρ‡Π΅ няма ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΌΠΎΠΈΡ‚Π΅ Π»ΠΈΠ½ΠΊΠΎΠ²Π΅. ΠŸΡ€ΠΈ Ρ‚ΠΎΠ²Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ ΠΎΡ‚ консолата xdg-open с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ.

β€žSet custom protocol handler in firefoxβ€œ β€” с Ρ‚ΠΎΠ·ΠΈ Π²ΡŠΠΏΡ€ΠΎΡ сС ΠΎΠ±ΡŠΡ€Π½Π°Ρ… към Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚. ΠŸΡ€Π΅Π³Π»Π΅Π΄Π°Ρ… няколко дискусии Π² stackoverflow (Π° къдС Π΄Ρ€ΡƒΠ³Π°Π΄Π΅), ΠΈ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ… ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€. НуТно Π΅ Π΄Π° създам спСциалСн ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ Π² about:config (Ρ€Π°Π·Π±ΠΈΡ€Π° сС, замСняйки foo с conf):

network.protocol-handler.expose.foo = false

БъздавамС, отварямС Π»ΠΈΠ½ΠΊΠ° и… Π½Π΅ Ρ‚ΡƒΠΊ-Ρ‚ΠΎ бСшС. Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€ΡŠΡ‚, сякаш Π½ΠΈΡ‰ΠΎ Π½Π΅ Π΅ станало, ΠΊΠ°Π·Π²Π°, Ρ‡Π΅ Π½Π΅ ΠΏΠΎΠ·Π½Π°Π²Π° Π½Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Π§Π΅Ρ‚ΠΎΡ… ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½Π°Ρ‚Π° докумСнтация Π·Π° рСгистрацията Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ΠΎΡ‚ Mozilla, ΠΈΠΌΠ° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π΄Π° сС Π·Π°Π΄Π°Π΄Π°Ρ‚ асоциации Π² самия gnome desktop (замСняйки, Ρ€Π°Π·Π±ΠΈΡ€Π° сС, foo с conf):

gconftool-2 -s /desktop/gnome/url-handlers/foo/command '/path/to/app %s' --type String
gconftool-2 -s /desktop/gnome/url-handlers/foo/enabled --type Boolean true

РСгистрирам, отварям браузСра… ΠΈ ΠΎΡ‚Π½ΠΎΠ²ΠΎ сС случи Π½Π΅Ρ‰ΠΎ странно.

Π’ΡƒΠΊ ΠΌΠΈ ΠΏΠΎΠΏΠ°Π΄Π° Π½Π° ΠΎΡ‡ΠΈ Ρ€Π΅Π΄ΠΈΡ†Π° ΠΎΡ‚ докумСнтацията:

БлСдващия ΠΏΡŠΡ‚, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΊΠ»ΠΈΠΊΠ½Π΅Ρ‚Π΅ Π½Π° Π»ΠΈΠ½ΠΊΠ° ΠΎΡ‚ протоколния Ρ‚ΠΈΠΏ foo, Ρ‰Π΅ Π²ΠΈ бъдС Π·Π°Π΄Π°Π΄Π΅Π½ΠΎ с коя ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π΄Π° Π³ΠΎ ΠΎΡ‚Π²ΠΎΡ€ΠΈΡ‚Π΅.

β€” Π‘Π΅ΠΌΠ΅Π½ Π‘Π΅ΠΌΠ΅Π½ΠΎΠ²ΠΈΡ‡
β€” Ааа

НС ΠΊΠ»ΠΈΠΊΠ²Π°ΠΌΠ΅ ΠΏΠΎ Π»ΠΈΠ½ΠΊΠ°, Π° просто ΡƒΠ΅Π± страницата промСня window.location Ρ‡Ρ€Π΅Π· javascript. Пиша прост html Ρ„Π°ΠΉΠ» с Π»ΠΈΠ½ΠΊ към conf ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°, отварям Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, ΠΊΠ»ΠΈΠΊΠ²Π°ΠΌ ΠΏΠΎ Π»ΠΈΠ½ΠΊΠ° β€” Yos! ΠžΡ‚Π²Π°Ρ€Ρ сС ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ† с Π²ΡŠΠΏΡ€ΠΎΡ Π² ΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π° ΠΎΡ‚Π²ΠΎΡ€ΠΈΠΌ Π»ΠΈΠ½ΠΊΠ° ΠΈ Ρ‚Π°ΠΌ Π² списъка Π²Π΅Ρ‡Π΅ Π΅ Π½Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Lync β€” Π½ΠΈΠ΅ Π³ΠΎ рСгистрирахмС ΠΏΠΎ всички възмоТни Π½Π°Ρ‡ΠΈΠ½ΠΈ. Π’ ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†ΡŠΡ‚ ΠΈΠΌΠ° ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠ° β€žΠ·Π°ΠΏΠΎΠΌΠ½ΠΈ ΠΈΠ·Π±ΠΎΡ€Π° ΠΈ Π²ΠΈΠ½Π°Π³ΠΈ отваряй Π»ΠΈΠ½ΠΊΠΎΠ²Π΅ Π² Π½Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅β€œ, отбСлязвамС, натискамС ΠΎΠΊ. И Ρ‚ΠΎΠ²Π° Π΅ Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° ΠΏΠΎΠ±Π΅Π΄Π° β€” ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†ΡŠΡ‚ Π½Π° конфСрСнцията сС отваря. ΠŸΡ€ΠΈ Ρ‚ΠΎΠ²Π°, Π²Π΅Ρ‡Π΅ ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ работят Π½Π΅ само ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΊΠ»ΠΈΠΊΠ½Π΅ΠΌ Π½Π° Π»ΠΈΠ½ΠΊΠ°, Π° ΠΈ ΠΏΡ€ΠΈ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ ΠΎΡ‚ Π½ΡƒΠΆΠ½Π°Ρ‚Π° страница Π·Π° ΠΏΡ€ΠΈΡΡŠΠ΅Π΄ΠΈΠ½ΡΠ²Π°Π½Π΅ Π² конфСрСнцията.

ПослС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ…, ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ network.protocol-handler.expose.conf Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ повлия Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π² Firefox. Π›ΠΈΠ½ΠΊΠΎΠ²Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°Ρ…Π° Π΄Π° работят.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠšΠ°Ρ‡ΠΈΡ… всичкитС си Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² рСпозитория Π½Π° GitHub, Π»ΠΈΠ½ΠΊΠΎΠ²Π΅ към всички рСсурси Ρ‰Π΅ ΠΈΠΌΠ° Π² края Π½Π° статията.
Π©Π΅ ΠΌΠΈ бъдС интСрСсно Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π° ΠΎΠ±Ρ€Π°Ρ‚Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ° ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ искат Π΄Π° сС Π²ΡŠΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΎΡ‚ ΠΌΠΎΠΈΡ‚Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π’Π΅Π΄Π½Π°Π³Π° Ρ‰Π΅ ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠ°, Ρ‡Π΅ всичко Π΅ Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΎ СдинствСно Π·Π° моята систСма Linux Mint, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π΄Ρ€ΡƒΠ³ΠΈ дистрибуции ΠΈΠ»ΠΈ дСсктопи ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ работят Π² Ρ‚ΠΎΠ·ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚, ΠΏΠΎΡ‡Ρ‚ΠΈ съм ΡƒΠ²Π΅Ρ€Π΅Π½ Π² Ρ‚ΠΎΠ²Π°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΏΠ°Ρ‚Ρ‡Π½Π°Ρ… само 1 функция Π² xdg-open, ΡΠ²ΡŠΡ€Π·Π°Π½Π° само с моя DE. Ако искатС Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π΄Ρ€ΡƒΠ³ΠΈ систСми ΠΈΠ»ΠΈ дСсктопи, ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΌΠΈ ΠΏΡƒΠ»-рСквСсти Π² GitHub.

Π˜Π·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° цСлия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΎΡ‚Π½Π΅ 1 Π²Π΅Ρ‡Π΅Ρ€.

Π›ΠΈΠ½ΠΊΠΎΠ²Π΅:

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster