bash прочищає мізки

складаю «правильний» скрипт для перевіки нової пошти на gmail просто в командному рядку. правильний в тому сенсі, що не одним рядком на колінці (таке нескладно нагуглити), а з перевірками на дурня, акуратним кодом тощо.

не стільки той gmail потрібен, як добре прочищає мізки і дозволяє повправлятися в bash'уванні.

що вже працює:
  • основа коду з читанням логіну (параметр командного рядка) та пароля (щоби не зберігати в скрипті);
  • завантаження фіду gmail з діагностикою помилок зʼєднання/автентифікації;
  • відображення кількости непрочитаних.
доробити в першій робочій версії:
  • детальний розбір фіду та відображення відправника, теми та часу останніх N непрочитаних.
ідеї на потім:
  • параметри командного рядка для відображення лише кількости непрочитаних чи детального переліку повідомлень;
  • (можливо) тимчасове зберігання захешованого пароля, щоби не вводити щоразу в одній сесії?
  • поновлено (2016-03-29): двоетапна автентифікація gmail?
можливо, ще щось вигадається.

генератор корпоративної маячні

хай йому грець! на оцій коротенькій команді можна залипнути надовго:

curl -s http://cbsg.sourceforge.net/cgi-bin/live | grep -Eo '^<li>.*</li>' | sed s,\</\\?li\>,,g | shuf -n 1

ще не знаю, куди його прикрутити, але руки чешуться =)

вдосконалений скрипт quaketerm

мав трохи часу та натхнення вдосконалити той простий скрипт для квейкізації терміналу:
  • розміри терміналу тепер у % від стільниці з автоматичним центруванням;
  • скрипт автоматично визначає розміри стільниці;
  • значно акуратніший код.
на жаль, поки що не подужав виправити головний недолік: ховаючись, термінал не віддає фокус іншому вікну — поки що не знаю, як це зробити.

як ще можна вдосконалити? може, додати можливість вибрати емулятор терміналу, а якщо вибраний не встановлено — запускати заданий в $term?

кому треба — скрипт під катом.

поновлення (2016-03-27). поборов проблему з фокусом за допомогою xdotool, під катом оновлений код.

поновлення (2016-03-28). ні, не поборов: запускаю нову версію через alt+f2 (gmrun) — працює, але «вішаю» на хоткей openbox — не працює =/

в черговій розсилкці massdrop (це той сервіс, через який я купував собі клавіатуру) зауважив цікаву штукенцію — багатофункціональний карабін і органайзер для ключів keybiner multitool.

виглядає симпатично, мені одразу сподобалася ідея. але…
  • дороге (найдешевша алюмінієва версія аж $35 на офіційному сайті, і «лише» $29 на massdrop, і це не враховуючи доставки);
  • органайзер лише для плоских ключів (хоча решту можна підвісити на карабінчиках).
не спокусився. проте задумався про свої ключі — бо щодня ношу їх зі собою чимало, і організовані вони у два незручні «жмути». і плоских ключів тут… аж один. гхм.

quaketerm і brocket — прості bash’ики

днями відкрив для себе два хаки, і тепер навіть не уявляю, як користувався ноутбуком без них раніше:
  • terminator в режимі quake;
  • brocket.
прості скрипти справді роблять комп'ютер зручнішим.

    terminator в режимі quake

    спершу був термінал quake, потім та ж красива ідея дала yakuake, tilda і guake. але я давно користуюся terminator'ом, звик до нього. простенький bash-скрипт дозволяє перетворити будь-який термінал на pull-down у стилі quake:
    #!/bin/sh
    
    TerminalName="Quaketerminal"
    TerminalX=183
    TerminalY=0
    TerminalW=1000
    TerminalH=500
    
    # Check if Terminator window exists
    # and launch terminator if it doesn't
    wmctrl -l | grep ${TerminalName}
    if [ $? -ne 0 ]; then
      terminator --title=${TerminalName} --geometry=${TerminalW}x${TerminalH}+${TerminalX}+${TerminalY} &
    fi
    
    # Unshade and bring to front
    if [ -f $HOME/.quaketerm.shaded ]; then
      wmctrl -F -R ${TerminalName}
      wmctrl -F -r ${TerminalName} -b remove,below
      wmctrl -F -r ${TerminalName} -b remove,shaded
      rm $HOME/.quaketerm.shaded
    
    # Shade and send to back
    else
      wmctrl -F -r ${TerminalName} -b add,shaded
      wmctrl -F -r ${TerminalName} -b add,below
      touch $HOME/.quaketerm.shaded
    fi
    
    exit 0

    чернетку скрипта знайшов у тенетах, трохи вдосконалив для себе. я назвав скрипт quaketerm, кинув до $HOME/bin і «причепив» на win-t. працює як годинник. хоча код кривуватий і потребує ще допилювання:
    • задавати ширину терміналу в % від екрану і центрувати автоматично;
    • знайти спосіб повертати фокус до попереднього вікна, ховаючи термінал.

    brocket

    ще одна цікава знахідка, якої мені давно бракувало, але я цього не усвідомлював: скрипт, котрий перевіряє, чи запущена вже програма, і якщо так — переключає фокус на неї, а якщо ні — запускає (і опційно перекидає на поточну стільницю, або ж переходить на ту, де програму відкрито).

    тепер достатньо на win-f (або win-w) «повісити» таке:

    brocket -c firefox

    і більше ніколи не плутатися в кількох копіях вогнелиса на різних стільницях: лише одне активно вікно, всі вкладки в ньому. те саме для файлового менеджера, текстового редактора тощо.

    пройшли медицину…

    вчора пройшли «медицину» — тобто огляд та пару аналізів у київському медичному центрі міжнародної організації з міграції.

    це один з прикінцевих етапів іміграційного процесу, далі — чекаємо запрошення отримати іміграційні візи в паспорти.

    p.s. вартість медогляду «зашкалює»: по 7200 грн за дорослого, і не набагато менше за дитину. і ті ціни дуже ретельно індексуються відносно курсу долара. кажуть, що в молдові та у значно «ситішій» польщі медогляд помітно дешевший.
    вичерпне тлумачення понять «русифікація», «дерусифікація», «натуралізація» та «українізація». рускаязичним патріотам читати обов’язково, щоб не плутатися в термінах.
    цитата | «не менше 25-ти років нам розповідають, що помосковщення (русифікація) ‒ це погано, але й протилежний йому процес ‒ українізація ‒ теж погано. бо і те й інше є примусом. і якось так непомітно прижилася ця підміна понять, що й досі продовжує шкідливу роботу в головах українців. у чому підміна понять? а в тому, що помосковщували саме українців і їх же тепер, бачте, українізують. ні, панове, зворотний до помосковщення процес називається розмосковщенням (дерусифікацією). саме так все стає на свої місця: помосковщення ‒ погано, розмосковщення (дерусифікація) ‒ добре. а як же росіяни в україні? ‒ заперечать мені. їх то вже напевне українізують. та ні, панове, нема тут про що говорити. такі процеси у будь-якій країні називаються натуралізацією. а от якщо нам після перемоги над московією заманеться москвинам впровадити українську мову замість їх москвинської, ‒ оце й буде українізація. але навряд чи нам це коли-небудь захочеться робити» (alex tkach на google plus)
    отже: москвини всіх країн, натуралізуйтесь!

    маленька механічна клавіатура

    на початку лютого павло урусов зробив оглядове відео клавіатури. стривайте, клавіатури? — подумав собі я, переглянув те відео, і захотів собі щось «механічне». трошки попасся на massdrop і замовив собі там v60 matias mini на базі моделі kbparadise v60 з перемикачами matias quiet click.

    не втримався: захтілося «теплого лампового» звуку і приємної тактильності, яку ще пригадують пальці з часів «пошуків» та «електронік». до того ж, друкую я багато і залюбки, особливо після того, як подужав навчитися друкувати наосліп кирилицею і латинкою.

    кілька днів тому моя маленька механічна клавіатура приїхала. встиг роздивитися і подрукувати. довжелезного звіту не буде, просто підсумок.

    подобається:
    • тактильні відчуття друку на «механіці»;
    • тихий, приємний «шелест» під час друку;
    • справді малесенький розмір і правильна вага;
    • якість матеріалів та збирання;
    • мінімалізм розкладки;
    • налаштування розкладки dip-перемикачами на споді.
    не подобається:
    • бракує usb-хаба (приглядаюся до matias quiet pro);
    • немає підсвітки (хоча в інших версіях v60 вона є);
    • недостатньо м'який кабель usb в комплекті; 
    • роз'єм mini-usb, і він на задній панелі, а не на споді, кабель не змотується під денцем;
    • окремі особливості мінімалістичної розкладки (в стандартній розкладці esc не можна натиснути однією рукою — треба задіяти клавішу fn);
    • поганенький пластиковий пулер (витягувач ковпачків), зразу зламався.