Зачес Putty под 1 гребенку

Те из нас, кто работает с кучей Linux-серверов, а сидеть приходится под Windows вынуждены пользоваться Putty - он всем хорош : бесплатен, поддерживает все что нужно, но есть одна проблема : когда настроенных соединений становиться слишком много - массовое изменение параметров высосет из вас все соки (также как например и установка ваших любимых параметров для новых соединений). На хабре 2.5 года назад была заметка на эту тему, но там по прежнему требуется много ручной работы.

Промучившись несколько лет с этой проблемой, я решил написать небольшой питонячий скрипт, который должен решить проблему раз и на всегда - просто запускаем его без параметров, и он прокатывает по всем сохраненным соединениям зашитые изменения, которые вы можете настроить по вкусу.

Скрипт берем тут - лицензия MIT = делаем что хотим (для запуска нужен питон). По умолчанию скрипт меняет цвета чтобы (мне) лучше читалось (тёмно-синий делает чуть светлее, светло синий - также), увеличивает буфер прокрутки до 20к (чтобы уехавший текст не пропадал), устанавливает размер окна по-больше, включает разворачивание по Alt+Enter на весь экран, убирает предупреждение при закрытии и включает сжатие SSH трафика.

Само собой сюда втыкать можно любые параметры. При добавлении нового соединения я просто прокатываю этот скрипт и готово. Под катом - исходник текстом, можно не кликать ;-)


В виде текста:
#Author Michail Svarychevski 3@14.by
#Licensed under MIT license

import winreg

print ("")
print ("This is awesome Putty settings update script!")
print ("---------------------------------------------")

i = 0
with winreg.OpenKey(winreg.HKEY_CURRENT_USER, "Software\SimonTatham\PuTTY\Sessions", 0, 15) as key:
  while 1:
    try:
      subkey = winreg.EnumKey(key, i ) 
      print ("Processing " + subkey + "...")
      with winreg.OpenKey(key, subkey, 0, 15) as session:
        winreg.SetValueEx(session, "Colour14", 0, winreg.REG_SZ, "96,96,255")
        winreg.SetValueEx(session, "Colour15", 0, winreg.REG_SZ, "150,150,255")
        winreg.SetValueEx(session, "ScrollbackLines", 0, winreg.REG_DWORD, 20000)

        winreg.SetValueEx(session, "TermHeight", 0, winreg.REG_DWORD, 40)
        winreg.SetValueEx(session, "TermWidth", 0, winreg.REG_DWORD, 150)

        winreg.SetValueEx(session, "WarnOnClose", 0, winreg.REG_DWORD, 0)
        winreg.SetValueEx(session, "Compression", 0, winreg.REG_DWORD, 1)
        winreg.SetValueEx(session, "FullScreenOnAltEnter", 0, winreg.REG_DWORD, 1)

      i+=1
    except WindowsError:
      break
  
print ("---------------------------------------------")
print ("We are done!")

Комментарии / улучшения - в студию

RSS@BarsMonster3@14.by