Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: HowTo: Открытие лотка привода с помощью клавиатуры  (Прочитано 13189 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ck80

  • Автор темы
  • Любитель
  • *
  • Сообщений: 76
    • Просмотр профиля
Перевод http://ubuntuforums.org/showthread.php?t=660515

Как открыть лоток CD привода с помощью клавиатуры:

Итак--у вас имеются неиспользуемые кнопки клавиатуры, которой вы пользуетесь в Linux....Давайте сделаем их используемыми.
   
   Во-первых...взгляните на ваш /etc/fstab файл. В самом низу файла вы найдете определение вашего(их) CD привода(ов). Последние версии Ubuntu (Edgy & старше) используют /dev/sdx или /dev/scdx для ваших примонтированных приводов----Dapper и младшие используют /dev/hdx.
Затем---откройте терминал и в зависимости от #номера вашего привода, введите:

eject /dev/scd(#номер привода) или eject /dev/hd(#номер привода) >нажмите Enter

   Если у вас тут же откроется CD лоток--то я вас поздравляю!! Если же нет, то либо вы используете привод со слишком старой прошивкой, либо ваш привод не поддерживает эту команду.
   Далее: Давайте испробуем--введите: eject -t (/dev привод, который открылся)--и лоток тут же должен закрыться--стрелка вверх и снова попробуйте выполнить эту команду--Если лоток откроется с опцией -t--то вы счастливчик!! (также поробуйте с опцией -T, иногда может сработать). Повторите ввод этих команд для остальных CD/DVD приводов, только используйте верные #номера для каждого из них.
   OK, теперь мы знаем, что команда eject работает корректно с вашими приводами из терминала, давайте сейчас назначим эту команду на горячую клавишу. (см. скриншот Terminal и на первую пару скриншотов редактора конфигураций внизу сообщения)
 
  Во-первых--Если вы загляните в Меню>Настройки>Горячий клавиши---То вы обнаружите в секции "Звук", что клавиша F12 используется как "Выброс" для музыкальных плееров---Отлично, давайте назначим выброс CD лотка на F12.
   Откройте Меню>Системные утилиты>Редактор конфигураций. Раскройте список "apps" и спуститесь до пункта Metacity. Раскройте список Metacity и взгляните на команды global_keybindings и keybinding_commands. Для начала мы используем команду keybinding_commands.
   Правый клик на command_1- затем выберите "edit key"----в поле "Value" введите: eject /dev/(ваш основной CD привод)--ok и затем кликните на command_10--введите: eject -t /dev/(ваш основной CD привод)
   Это означает, что вы можете испозовать eject -t для "возвратного" открытия/закрытия вашего привода--(если ваш привод это воспринимает)--command_1 будет означать eject -t /dev/(ваш основной привод)

   Далее мы перейдём в global_keybindings---Найдите run_command_1 и нажмите правый клик-редактировать --в поле "Value" введите F12 и нажмите OK. Теперь вы можете открывать лоток CD клавишей F12. Далее найдите run_command_10 и нажмите  правый клик-редактировать --в поле "Value" введите клавишу, которую захотите--я выбрал F11. Протестируйте, теперь лоток должен закрыться.

OK, теперь вы можете открывать и захлапывать ваш лоток с клавиатуры--далее метод немного посложнее........

   Мы покажем вам, как открывать и закрывать лоток при помощи только одной клавиши (благодарим за скрипт Rhubarb!!! Его пост: http://ubuntuforums.org/showthread.php?t=656674 )
   Для начала нам нужно знать, имеете ли вы один привод или у вас их несколько....

Если только один:
 
   Открывайте текстовый редактор и вставляйте следующее:

#./bin/bash

tray_status=`cat .tray_status.sh`
if [ "$tray_status" == "Closed" ]
then
eject
echo "Open" > .tray_status.sh
elif [ "$tray_status" == "Open" ]
then
eject -t
echo "Closed" > .tray_status.sh
else
eject
echo "Open" > .tray_status.sh
fi

   Сохраните файл в домашнюю папку /home как tray_status.sh (заметьте, имя должно совпадать с указанным в скрипте!!!)
   Далее откройте терминал и введите команду chmod 755 /home/(ваша домашняя)/tray_status.sh
   chmod 755--Пользователь может читать, записывать и выполнять; группа и остальные могут только читать и выполнять. Это самый простой метод задать разрешения на файл.

   Далее, откройте редактор конфигураций. Я обнаружил, что вы не сможете присвоить эту команду на клавишу F12 (возможно это и не так, нужно еще протестировать). Поэтому присвоим эту команду на клавишу F11. Я выбрал command_10, вы можете использовать command_1 и отредактировать остальные присвоения под ваш выбор. В любом случае, команда должна лежать в /home/(ваша домашняя)/tray_status.sh. Далее двинем в global_keybindings. В пункте run_command_10, я использовал клавишу F11.

Для более чем одного привода:

   Вам потребуется изменить скрипт, если у вас имеется больше чем один CD привод --скрипт для моего основного CD привода вглядит следующим образом:

#!/bin/bash

tray_status=`cat .tray_status1.sh`
if [ "$tray_status" == "Closed" ]
then
eject /dev/scd1
echo "Open" > .tray_status1.sh
elif [ "$tray_status" == "Open" ]
then
eject -t /dev/scd1
echo "Closed" > .tray_status1.sh
else
eject /dev/scd1
echo "Open" > .tray_status1.sh
fi

   Обратите внимание, что вам потребуется проследить за именем скрипта и номерами /dev, которыми вы управляете-- в следующем виде tray_status1.sh и /dev/scd1
Измените скрипт под ваши нужды--и не забудьте применить chmod 755 на законченный скрипт.

Взгляните на пару последних скриншотов, так выглядит мой редактор конфигураций.

Отличненько!! Теперь вы можете открывать и закрывать лоток вашего привода с клавиатуры..Если у вас несколько приводов, просто используйте другие клавишы для них.

Наслаждайтесь легким способом использования вашего привода!!!

Если интересно посмотрите на frodon's custom keyboard shortcut HOWTO, с помощью него вы сможете переназначать горячие клавиши настолько, насколько это вообще возможно!!

« Последнее редактирование: 20 Февраля 2008, 15:55:31 от ck80 »

Оффлайн derevenge

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Я не могу найти "Редактор конфигураций"  :-[

Оффлайн Gall

  • Любитель
  • *
  • Сообщений: 67
    • Просмотр профиля
Второй способ чето неработает целиком. Привод открываеться, а при повторном нажатии не закрываеться.

Оффлайн ck80

  • Автор темы
  • Любитель
  • *
  • Сообщений: 76
    • Просмотр профиля
Я не могу найти "Редактор конфигураций"  :-[

Установите пакет gconf

sudo apt-get install gconf


Второй способ чето неработает целиком. Привод открываеться, а при повторном нажатии не закрываеться.

поробуйте с опцией -T, иногда может сработать

« Последнее редактирование: 26 Февраля 2008, 05:17:31 от ck80 »

Оффлайн Gall

  • Любитель
  • *
  • Сообщений: 67
    • Просмотр профиля
ck80 Команды eject  и eject -t работают нормально. А eject -Т только открывает привод, но не закрывает (при этом в консоли еще вылезает ошибка ioctl: Input/output error)
Врядли оно поможет...

derevenge Набери в консоли gconf-editor
« Последнее редактирование: 26 Февраля 2008, 17:39:18 от Gall »

Оффлайн Пингвус

  • Любитель
  • *
  • Сообщений: 65
    • Просмотр профиля
Воркает!  :D
Люблю жизнь!

Оффлайн derevenge

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
У меня не воркает! Все сделал по инструкции - лоток не закрывается! Хотя когда запускаю скрип из консоли все воркает на ура :o
1 привод

Оффлайн Gall

  • Любитель
  • *
  • Сообщений: 67
    • Просмотр профиля
derevenge Значит что-то неправильно сделал/назначил. Ищи проблему у себя.

Оффлайн Пингвус

  • Любитель
  • *
  • Сообщений: 65
    • Просмотр профиля
С включенным компизом может не работать.
Люблю жизнь!

Оффлайн Malamut

  • Ubuntu Member
  • Администратор
  • Старожил
  • *
  • Сообщений: 3337
  • Я добрый, честно!
    • Просмотр профиля
    • Моя страница на Launchpad
Спасибо, про eject я не знал. Однако меня очень смущает скрипт. Автор-то хоть понимает, что этот скриптик делает? :) И, самое главное, зачем одинаковые имена скрипта и его содержимого? :D Ща нет возможности протестить, но 99.9% что одинаковые имена нафиг не нужны! А то у вас будет два файла:
~/.tray_status.sh
~/tray_status.sh
А оно вам надо? Нужно только одинаковые имена файлов после команды cat и echo в самом скрипте, для каждого привода своё имя, а вот как сам скрипт называться будет совершенно неважно.
А ещё лучше создать новую глобальную переменную с именем, например cdrom_status и не записывать ничего в доп. файл.
Честно скажу, про переменные пока не тестил, но в теории должно работать) Ща перезагружусь в Ubuntu проверю.
« Последнее редактирование: 25 Марта 2008, 20:46:21 от Malamut »
"Носителем суверенитета и единственным источником власти в Российской Федерации является ее многонациональный народ" Конституция РФ

Оффлайн Laplanya

  • Участник
  • *
  • Сообщений: 130
    • Просмотр профиля
    • Laplanya Home
Воркает! :D спасиб за ховто!!! да кстати маленькая заметочка когда в keybinding_commands для например командера command_1 будете писать путь к скрипту tray_status.sh пишите bash /home/ваш пользователь/script/tray_status.sh а не /home/ваш пользователь/script/tray_status.sh у меня вот из-за этого лоток назад не задвигался! а теперь все работает))) прям Apple iMAC какойто)))) ;)
Мой маленький Блог о любимых Debian и Ubuntu!
http://www.laplanya.com

Оффлайн Antithesis

  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Все работает! Спасибо большое :)

Оффлайн Ubuntu2600

  • Новичок
  • *
  • Сообщений: 14
  • [2600]
    • Просмотр профиля
В скрипте ошибка, и он не работает.

Оффлайн Plastikman

  • Участник
  • *
  • Сообщений: 222
    • Просмотр профиля
А как в кубунте сделать?

Oni-chan

  • Гость
как мне кажется, основная часть та же, а в центре управления КДЕ не нашел, как назначить произвольную команду. Поэтому в меню добавил запуск eject -t, а потом в kcontrol назначил горячую клавишу на выполнение

 

Страница сгенерирована за 0.064 секунд. Запросов: 24.