Реально ленивый серфинг интернета

14 ноября 2014, 14:05

Я являюсь счастливым обладателем игрового 17-дюймового ноутбука. К своим преимуществам (большое разрешение экрана и высокая производительность) он имеет и недостатки. В первую очередь это его большой вес (около 4 килограмм). Поэтому, чтобы посмотреть фильм, я ставлю его на стол, ложусь на кровать и наслаждаюсь чем нас одаривает Голливуд, благо у меня беспроводная мышка, поэтому поставить на паузу или промотать на несколько секунд назад не представляет труда.

Но вот я натолкнулся на одну «проблему», если вообще можно это назвать проблемой. Заметил, если кто-то напишет в скайп, приходится вставать и читать, кто же мне написал, чего иногда ой как не хочется (да, я бываю ленивым:( ). А иногда я мечтаю, что надо бы купить большой монитор дюймов на 30, тогда можно не только читать сообщения с такого расстояния, но и вообще серфить инет, не поднимая своей 5 точки.

Как я решил «проблему»

Бороздя настройки своей операционной системы, я наткнулся на «специальные возможности», а точнее, обратил внимание на одну из них — и это лупа. Я подумал, вот бы было хорошо включать её, когда я лежу далеко и нужно что-то почитать, и отключать, когда она больше не нужна. А точнее, чтобы лупа включалась на какое-то действии мыши, так как рядом только она в роли пульта и больше ничего нет.

Кто хочет сразу получить ответ — завязался на движение мыши (включение и выключение лупы по определённому движению мышки с зажатой кнопкой) Ниже ролик, что получилось:

Что использовал:

  • Linux Mint (стоит в качестве домашней операционной системы),
  • easystroke (управление жестами под Linux),
  • небольшой скрипт на python, задача которого включать и выключать лупу (так как она встроена в Cinnamon, то не было возможности просто запускать нужную программу, и приходилось менять настройки в dconf).

Теперь поэтапно:

1. Включение/выключение лупы

В Linux Mint довольно хорошая лупа, причём с дополнительными настройками, поэтому вполне логично использовать хороший инструмент. Но для этого нужно её научиться включать и выключать. Предварительное гугление привело к написанию скрипта в несколько строк:

#!/usr/bin/python
import subprocess

def to_bool(str_var):
    return str_var.lower().startswith('true')

def to_str(bool_var):
    return str(bool_var).lower()

def get_screen_magnifier_enabled():
    command = "gsettings get org.cinnamon.desktop.a11y.applications screen-magnifier-enabled"
    state_str = subprocess.check_output(command, shell=True)
    return to_bool(state_str)

def set_screen_magnifier_enabled(state):
    command = "gsettings set org.cinnamon.desktop.a11y.applications screen-magnifier-enabled %s" % to_str(state)
    subprocess.check_output(command, shell=True)

state = get_screen_magnifier_enabled()
set_screen_magnifier_enabled(not state)

Да, кто-то скажет, что можно было сделать на bash, но я люблю python :)
Данный скрипт при каждом запуске меняет настройку лупы на включено/выключено.

2. Биндинг мыши

В начале я хотел завязать включение лупы на долгое нажатие правой кнопки мыши, первое решение было использовать xbindkeys. Но от него пришлось отказаться, так как просто завязаться на кнопку и не отвязать дефолтный функционал (контекстное меню) оказалось достаточно сложно, поэтому вынужден был искать другой путь.

Случайно наткнулся на на программку easystroke, которая позволяет завязываться на жесты мыши, что показалось мне приемлемым.

Установка довольно проста:

sudo aptitude install easystroke

Запускаем:

easystroke

Видим примерно такое окно: 

Лезем в настройки, устанавливаем кнопку жеста (у меня колесико мышки) и задержку (я выключил вообще).

Создаем жест, который будет включать нам лупу. Я сделал себе самый простой: горизонтальное движение с зажатым колесом мыши сначала вправо, потом влево...

...и указал, какую команду выполнять по данному жесту (мой скрипт).

На этом всё. Теперь, чтобы «удалённо» почитать сообщение, мне достаточно сделать пару движений мышкой )

Обсуждение