Мой первый мануал, прошу отнестись с пониманием.
Долго собирал информацию, поэтому решил резюмировать,возможно кому-то пригодится.
Задача: открытие ссылок вида telnet:// через firefox
Решение:
Для начала выбираем приложение, которым будем пользоваться.
Для меня удобнее gnome-terminal,поэтому в дальнейшем буду рассматривать на его примере.
Как только мы определились с приложением перейдем к настройке.
1)Дописываем строчку файл /usr/share/applications/gnome-terminal.desktop
MimeType=x-scheme-handler/telnet
2)В файл /usr/share/applications/defaults.list добавляем
x-scheme-handler/telnet=gnome-terminal.desktop
Для PuTTY:
в файле /usr/share/applications/putty.desktop поправить
Exec=putty %u
остальное аналогично
3)пишем скрипт ff-t.sh(я его поместил в /usr/local/bin/,делаем его исполняемым sudo chmod +x ff-t.sh)
#!/bin/bash
IP=`echo $1 | cut -d / -f 3 `
if [ "$IP" != "${IP#172.*}" ]; then /usr/bin/gnome-terminal --tab -e "/usr/local/bin/tk.exp $IP" >/dev/null 2>&1 &
fi
if [ "$IP" != "${IP#10.*}" ]; then /usr/bin/gnome-terminal --tab -e "/usr/local/bin/tt.exp $IP" >/dev/null 2>&1 &
fi
В моем случае есть несколько диапазонов подсетей, с разными логинами. Есть различные варианты автологина (мне было проще написать свой маленький велосипед,в рамках примера
#!/usr/bin/expect -f
set timeout 20
set IPaddress [lindex $argv 0]
set Username "user"
set Password "pass"
spawn telnet $IPaddress
expect ":"
send "$Username\r"
expect ":"
send "$Password\r"
interact
не забываем sudo apt install expect для 16.04 или apt-get для более ранних).
/usr/bin/gnome-terminal --tab -e "telnet $IP" >/dev/null 2>&1 &
Для ввода реквизитов с клавиатуры.
4)Открываем огнелиса,набираем в адресной строке about:config
5)Находим параметр network.protocol-handler.expose-all и ставим его в false
6)открываем ссылку telnet://
7)выбираем наш скрипт
8)возвращаем network.protocol-handler.expose-all true
9)


?
10)PROFIT
Проверено для :
Ubuntu 14.04,16.04
firefox 45.0.2,46.0