без миші
- Матеріал з Xgu.ru Дана сторінка знаходиться в розробці . Ця сторінка ще не закінчена. Інформація,...
- [ правити ] Консольні додатки
- [ правити ] Графічні додатки з текстовим інтерфейсом
- [ правити ] Зовсім без миші
- [ правити ] Програмне управління становищем миші
- [ правити ] Відключення курсора
- [ правити ] Запуск X Window без миші
- [ правити ] Мишачий одометр
- [ правити ] Основи
- [ правити ] Буфер обміну і X11-forwarding
- [ правити ] Буфер обміну і XMPP
- [ правити ] Vim
- [ правити ] Vimperator
- [ правити ] Додаткова інформація
- [ правити ] Матеріали по інтерфейсу користувача на Xgu.ru
Матеріал з Xgu.ru Дана сторінка знаходиться в розробці
.
Ця сторінка ще не закінчена. Інформація, представлена тут, може виявитися неповною або неправильною.
Якщо ви вважаєте, що її варто було б доопрацювати якомога швидше, будь ласка, скажіть про це .
Короткий URL: mouselessТут розглядаються програми і техніки, які можуть допомогти обійтися без миші або мінімізувати її використання при роботі в UNIX / Linux-системі.
Більшість операцій, які виконуються за допомогою миші, можуть бути зроблені і без неї, часто навіть швидше і простіше, за допомогою спеціальних комбінацій клавіш або з використанням спеціальних програм і технік.
Перший спосіб зазвичай простіше - досить вивчити клавіатурні комбінації (keyboard shortcuts). Другий більш радикальний і більш трудомісткий, але може бути і більш ефективним.
[ правити ] Віконні менеджери
- xmonad - тайловий віконний менеджер для X Window System, орієнтований на використання клавіатури.
- wmii - віконний менеджер для X Window System, орієнтований на використання клавіатури.
- GNU Screen - текстовий віконний менеджер.
- ratpoison - віконний менеджер, створений на базі GNU Screen, який не потребує миші.
- Quicksilver (Mac OS X) - інструмент, який перетворює клавіатуру в надпотужний пульт управління системою.
- Katapult і подібні - їм далеко до Quicksilver, але вони працюють під Linux і інші Unix, а не тільки Mac OS X
[ правити ] Консольні додатки
- Консольні програми.
Чи не використовувати мишу це не те саме, що не сидіти в іксах. Багато задач в чистій консолі робити неможливо, а багато - незручно. Однак, в той же час існує велика кількість консольних додатків, набагато перевершують за можливостями графічні аналоги.
День без X:
- a day without x (Англ.) - стаття, де автор намагається прожити один день без X-сервера. Якщо не звертати уваги на те, що для нього подвиг то, що для багатьох багаторічна звичка, то що скріншоти зроблені з-під іксів, а також те, що постинг написаний за допомогою браузера Firefox з-під Windows, він зробив непогану роботу. У будь-якому випадку, список наведених їм додатків гідний уважного вивчення.
У коментарях до статті багато цікавого:
[ правити ] Графічні додатки з текстовим інтерфейсом
Деякі програми, які на перший погляд, використовувати без миші неможливо, можуть бути виправлені так, що миша виявляється в них зовсім непотрібною. При цьому програми повністю зберігають свою функціональність.
- Vimperator - браузер Firefox (Iceweasel) з інтерфейсом Vim;
- Conkeror - браузер Firefox (Iceweasel) з інтерфейсом Emacs;
- Muttator - поштовий клієнт Thundebrid з інтерфейсом Mutt.
[ правити ] Зовсім без миші
У більшості випадків, коли ви використовуєте правильні програми, такі як wmii , Vimperator , GNU Screen , mutt , freetalk і їм подібні, ви можете чудово обходитися без миші, але є деякі ситуації, коли зовсім без миші все ж складно.
Особливо, це стосується роботи з графічними додатками, такими наприклад як GIMP.
Як можна було б вирішити зазначену проблему? Потрібна програма, яка розмічають б екран сіткою і привласнювала кожному квадрату координату, що позначається символом.
Координати можуть бути присвоєні, наприклад, так:
+ ----- + ----- + ----- + ----- + | 1 | 2 | 3 | 4 | + ----- + ----- + ----- + ----- + | q | w | e | r | + ----- + ----- + ----- + ----- + | a | s | d | f | + ----- + ----- + ----- + ----- + | z | x | c | v | + ----- + ----- + ----- + ----- +
Потім, коли натискається перший символ, розмічається наступний квадрат і так далі, поки миша не буде позиційований як треба.
Якщо припустити, що на екрані все 1280x1024 точок, і при кожній ітерації він розбивається на 12 секцій, то виходить, що буде потрібно не більше ln (1280x1024) / ln (12) = 5.66 натискань, для того щоб точно спозиционировать миша. А якщо на 20, то для екрану такого розміру досить і 4.7 натискань. Насправді, така точність позиціонування потрібна рідко, а для того щоб спозиционировать з точністю до прямокутника 20x20 буде досить і 3х.
При відносному позиціонуванні, тобто, зсуві, натискань може бути ще менше.
Існує програма keynav, яка вміє працювати з такою сіткою. За умовчанням вона розбиває екран сіткою з чотирьох частин, що не дуже зручно.
Ось конфігураційний файл для розбиття екрану на кожній ітерації на 16 частин з прив'язкою клавіш, зазначеної вище:
ctrl + semicolon start, grid 4x4 1 cell-select 1x1 2 cell-select 2x1 3 cell-select 3x1 4 cell-select 4x1 q cell-select 1x2 w cell-select 2x2 e cell-select 3x2 r cell-select 4x2 a cell- select 1x3 s cell-select 2x3 d cell-select 3x3 f cell-select 4x3 z cell-select 1x4 x cell-select 2x4 c cell-select 3x4 v cell-select 4x4
Однак у keynav при всіх його вкусностях, не вистачає багатьох можливостей, через які використовувати його все ж складно.
Що можна було б в нього додати?
- Відносне позиціонування (тобто курсор переміщається не в абсолютну точку, а щодо його поточної позиції). Іноді потрібно миша пересунути трохи вправо або трохи вліво, і теоретично повинно вистачити однієї клавіші, а тут треба заново йти і позиціонувати миша;
- Позиціонування в межах поточного вікна. Часто буває потрібно просто кликнути мишею в якусь точку, яка знаходиться в поточному вікні. Тоді позиціонування по всьому екрану великій кількості.
- Скасування вибору області. При виконанні абсолютного позиціонування, якщо ви швидко вибираєте потрібний квадрат, то ви можете легко помилитися (особливо, в першу чергу, коли ви тільки звикаєте до такого способу управління), і тоді непогано було б зробити скасування і повернутися на крок назад.
[ правити ] Програмне управління становищем миші
Для того щоб програмно перемістити мишу в довільну точку, можна використовувати інструмент xdotool.
Перемістити мишу в точку з координатами (100,200):
% $ Xdotool mousemove 100 200
Цей скрипт крутить мишкою по колу (сплюснутий):
~ / bin / xcircle
#! / Usr / bin / perl use Time :: HiRes (usleep); $ X = 1440; $ Y = 900; $ R = 400; $ Step = 2; $ Sleep = 10000 * $ step; while (1) {$ x = $ X / 2 + $ R * cos ($ a / 180 * 3.1415); $ Y = $ Y / 2 + $ R * sin ($ a / 180 * 3.1415); system ( "xdotool mousemove $ x $ y"); usleep ($ sleep); $ A + = $ step; $ A% = 360; }
Це якщо вам не буде вистачати руху на екрані.
Цей скрипт малює на екрані слово "Linux" написаний для використання на http://chatroulette.com/
#! / Bin / bash #l xdotool mousemove 400 200; sleep 0.09 xdotool mousedown 1 xdotool mousemove 400 300; sleep 0.09 xdotool mousemove 450 300; sleep 0.09 xdotool mouseup 1 #i xdotool mousemove 500 200; sleep 0.09 xdotool click 1 xdotool mousemove 500 220; sleep 0.09 xdotool mousedown 1 xdotool mousemove 500 300; sleep 0.09 xdotool mouseup 1 #n xdotool mousemove 550 300; sleep 0.09 xdotool mousedown 1 xdotool mousemove 550 200; sleep 0.09 xdotool mousemove 600 200; sleep 0.09 xdotool mousemove 600 300; sleep 0.09 xdotool mouseup 1 #u xdotool mousemove 650 200; sleep 0.09 xdotool mousedown 1 xdotool mousemove 650 300; sleep 0.09 xdotool mousemove 700 300; sleep 0.09 xdotool mousemove 700 200; sleep 0.09 xdotool mouseup 1 #x xdotool mousemove 750 200; sleep 0.09 xdotool mousedown 1 xdotool mousemove 800 300; sleep 0.09 xdotool mouseup 1 xdotool mousemove 800 200; sleep 0.09 xdotool mousedown 1 xdotool mousemove 750 300; sleep 0.09 xdotool mouseup 1
[ правити ] Відключення курсора
Якщо ви все одно не використовуєте миша, навіщо вам потрібен її курсор?
Програма unclutter приховує курсор миші, якщо їм не рухати протягом 5 секунд.
Величину інтервалу неактивності можна регулювати за допомогою опцій програми.
[ правити ] Запуск X Window без миші
Якщо X Window System не хоче працювати биз миші, можна додати в конфігураційний файл:
Section "ServerFlags" Option "AllowMouseOpenFail" EndSection
[ правити ] Мишачий одометр
Мишачий одометр може допомогти контролювати себе і оцінити, наскільки добре вдається уникати використання миші.
Мишачий одометр це програма, яка підраховує, скільки кілометрів наїздила миша по столу за певний інтервал часу (наприклад, з моменту запуску програми, але не обов'язково).
Популярні мишачі одометри:
- xodo
- kodo (KDE)
- Gnome-Odometer (Gnome)
Буфер обміну - одне з найважливіших пристосувань для обміну інформацією між додатками, з якими працює користувач. Вміти володіти мистецтвом занесення і добування інформації з буфера обміну без миші дуже важливо, оскільки це помітно скорочує випадки використання снаряда і істотно прискорює процес роботи.
[ правити ] Основи
З мишею текст, скопійований в буфер обміну X Window System (насправді в X Window System немає ніякого буфера обміну, а є скоріше механізм обміну, який координує X-сервер; коли говорять "буфер обміну в X Window", як правило, мається на увазі цей механізм), вставляється за допомогою натискання середньої кнопки миші, коліщатка миші або двох кнопок натиснутих одночасно.
Вставити текст без миші можна за допомогою комбінації Shift - Insert.
Якщо потрібно скопіювати текст з файлу в буфер обміну, можна використовувати програму xsel . На тій же сторінці розказано як можна примудритися і швидко засовувати в буфер обміну адреси URL та інші речі, що описуються регулярними виразами.
У desktop-менеджерах є свої власні інструменти для доступу до буфера обміну. Наприклад, в KDE:
% $ Dcop klipper klipper getClipboardContents
У Mac OS X аналогічна задача вирішується за допомогою програм pbcopy і pbpaste.
Можна копіювати в буфер обміну текст з консолі, якщо ви сидите в screen (а сидіти в ньому має сенс), за методом, описаним в [1] . Коротко, ідея полягає в тому, щоб дублювати буфер обміну screen в буфері обміну X Window через прив'язку відповідних дій до відповідними кнопками виклику.
[ правити ] Буфер обміну і X11-forwarding
Копіювання не завжди може відбуватися локально. Ви можете працювати у віддаленій системі, і вам може знадобитися скопіювати в буфер обміну текст з тієї системи.
Це можна зробити навіть за допомогою xsel , Але для того щоб такий метод працював, необхідний X11-forwarding.
host1% $ ssh -X host2 host2% $ echo privet host1 | xsel -i
Після цього в буфері обміну хоста host1 буде повідомлення privet host1, незважаючи на те, що команда була виконана на хості host2.
Для зв'язку з X-сервером, що працює на клієнтському комп'ютері, використовуються змінні оточення, які автоматично встановлюються при вході на віддалений хост.
Якщо ж після з'єднання передачі даних і підключення до screen, змінні губляться, і для того щоб передавати дані віддаленого X-сервера, їх потрібно відновити (це, до речі, стосується і ситуації, коли ви не підключаєтеся віддалено, а підключаєтеся локально до сеансу screen, який запускався на віртуальному терміналі або в X'ах, але він пережив X-сервер, під яким ви його запускали).
Скрипт ~ / bin / sx, який можна використовувати для підключення до сеансу GNU Screen:
#! / Bin / sh export | egrep "(SSH_AUTH_SOCK | SSH_CLIENT | SSH_CONNECTION | SSH_TTY | DISPLAY) ="> ~ / .sx screen -x
Після цього в файлі ~ / .sx знаходяться потрібні нам змінні оточення. Їх можна використовувати тоді, коли ми хочемо передати дані X-сервера.
Наприклад, скрипт ~ / bin / url передає в буфер обміну останній URL, який був надісланий в freetalk . Скрипт використовує файл ~ / .sx, якщо може прочитати його, для того щоб знати параметри SSH-з'єднання:
#! / Bin / sh [-r ~ / .sx] &&. ~ / .Sx for i in ~ / .freetalk / history / * / * do tail $ i | grep http: // done | sort -n | tail -1 | sed "s @. * http: // @ http: // @" | xsel -i
Останній URL скопіюється з історії freetalk в буфер обміну, якщо викликати команду url.
[ правити ] Буфер обміну і XMPP
Інший спосіб передачі даних в буфер обміну по мережі - використання XMPP.
Створюється JID, який є точкою входу в ваш буфер обміну. Дані, надіслані за цією адресою, автоматично потрапляють в локальний буфер обміну.
Ось простий приклад такого скрипта, написаного на Ruby і використовує бібліотеку xmpp4r.
xmpp2clip.rb
#! / Usr / bin / ruby # written by Igor Chubin in 2009 based on the echo.rb example $ :. unshift '../../../../../lib' require 'xmpp4r / client 'include Jabber if ARGV.length! = 2 puts "Run with ./xmpp2clip.rb user @ server / resource password" exit 1 end myJID = JID.new (ARGV [0]) myPassword = ARGV [1] cl = Client. new (myJID) cl.connect cl.auth (myPassword) cl.send (Presence.new) puts "Connected! send messages to # {myJID.strip.to_s}." mainthread = Thread.current cl.add_message_callback do | m | if m.type! =: error f = IO.popen ( "xsel -i", "r +") f.puts (m.body) f.close () message = "The message <# {m.body}> was copied to the clipboard "m2 = Message.new (m.from, message.chomp) m2.type = m.type cl.send (m2) if m.body == 'exit' m2 = Message.new (m. from, "Exiting ...") m2.type = m.type cl.send (m2) mainthread.wakeup end end end Thread.stop cl.close
Цей скрипт можна запускати при старті X-сервера, наприклад, додавши в ~ / .xinitrc рядок:
nohup xmpp2clip.rb [email protected] password
Замість [email protected] вказується JID, що є точкою входу в буфер обміну, а замість password - пароль для підключення.
Відправляти текст з віддаленої системи можна, наприклад, за допомогою sendxmpp або іншим способом.
[ правити ] Vim
З редактора Vim можна копіювати текст в буфер обміну X Window System без використання миші. І навпаки, текст, що знаходиться в буфері обміну X Window System, можна вставляти в Vim операціями вклейки [2] .
Буфер обміну X Window відбитий на буфер * або + редактора Vim. Для звернення до певної регістру в Vim необхідно натиснути символ "і назва цього регістра.
Наприклад, скопіювати рядок в буфер обміну X Window можна командою:
"* Yy
(Лапки, зірочка, два рази y).
Якщо ви вже знаходитеся в режимі вставки, то ctrl-r * (але якщо не включити set paste, текст в цьому випадку буде вставлено драбинкою).
Для того щоб все це працювало, vim повинен бути зібраний з підтримкою xterm_clipboard:
% $ Vim --version | grep + xterm_clipboard
Вклеювати текст можна і традиційним shift-insert, але при цьому треба робити безліч зайвих операцій:
- : Set paste
- i для переходу в режим вставки
- shift-insert
- Esc для виходу з режиму вставки
- : Set nopaste
Звичайно, це не може зрівнятися з натисканням "* p.
[ правити ] Vimperator
URL, що знаходиться в буфері обміну, можна вклеїти безпосередньо в Vimperator буквою P. Він відкриється в новому Табі.
- Foot Mouse (Footime) - ножна миша. Управління відбувається за допомогою ніг
- Griffin Technology PowerMate - багато речей, які ви звикли робити за допомогою миші, набагато зручніше і швидше робити за допомогою цього девайса
- VIM - жорстокий і нещадний (Рус.) - жорстоке пристрій для перемикання режиму роботи Vim ногою
[ правити ] Додаткова інформація
[ правити ] RSI через мишу
Що таке RSI і як з ним боротися:
[ правити ] Матеріали по інтерфейсу користувача на Xgu.ru
- Synaptics - настройка і використання тачпада (touchpad)
- Без миші - майже як день без X'ов, тільки все життя і без миші
Що можна було б в нього додати?