Архив рубрики: Linux

Не работает джойстик при запуске игр в отдельном x-сервере. Linux Mint, Ubuntu.

Год назад, я уже писал о способе, как повысить быстродействие запускаемых с помощью wine, windows игр. Выяснилось, что не только wine сильно прибавляет в скорости от запуска в отдельном x-сервере, но и жадные до ресурсов эмуляторы игровых консолей pcsx2 и dolphin, так-же существенно выигрывают в скорости эмуляции «тяжёлых» игр при использовании этого метода. Но при этом возникает другая проблема — в эмуляторе перестаёт работать джойстик, что сводит удовольствие от игры на нет. Решение заключается в создании правила для udev:

# cat >> /etc/udev/rules.d/99-joystick.rules << _EOF_
KERNEL==»event*», ENV{ID_INPUT_JOYSTICK}==»?*», MODE:=»0644″
_EOF_

После этого, отключаем джойстик от компьютера, выполняем:

# udevadm control —reload

Вновь подключаем джойстик к компьютеру и можем наслаждаться игрой 🙂
Например, вот команда запуска уже настроенного pcsx2 и игры Metal Gear Solid 2: Sons of Liberty в отдельном x-сервере:

$ env __GL_THREADED_OPTIMIZATIONS=1 xinit /usr/games/PCSX2 —nogui /media/yar4e/X_X/Gamez/Sony Play Station 2/MGS2/Диск 1 (v1.1)/SoL(v1.1).iso — :1

Автор: Yar4e

Fedora: установка KeePass2 + KeeFox

О чём речь

KeePass2 — программа для ведения базы паролей. Очень удобная — рекомендую. С ней вам не нужно будет записывать пароли на бумажках (и терять потом) или в блокнотиках. Всё будет систематизировано, автоматизировано и надёжно. А KeeFox — плагин для Firefox’а, который творит волшебство — отыскивает в вашей базе нужный пароль и предлагает к заполнению форм на сайтах.

 

Установка KeePass2 в Fedora

Для установки достаточно в консоли ввести команду:


sudo dnf install keepass

Будут также установлены необходимые зависимости.

Установка KeeFox

Устанавливайте через штатный механизм установки дополнений в Firefox (Дополнения/Расширения/Поиск среди дополнений).

Настройка KeeFox

В настройках нужно прописать путь к исполняемому файлу KeePass. В Fedora это:


/usr/lib/keepass

 

Настройка KeePass2 в Fedora

Рекомендую сразу поставить плагин для автоматического создания бэкапов — DataBaseBackup. Создаёте каталог для плагинов KeePass:


sudo mkdir /usr/lib/keepass/plugins
sudo chmod 744 /usr/lib/keepass/plugins

Скачиваете архив с плагином, распаковываете файл dbBackup.plgx в каталог /usr/lib/keepass/plugins. После этого перезапускаете KeePass2 и через меню [Сервис/DB Backup plug-in/Configure] настраиваете место, куда будут складываться копии базы (после каждого изменения).

В этот же каталог переносите плагин от KeeFox (это нужно будет повторить в случае обновления KeeFox). Изначально он находится в каталоге ~/.mozilla/firefox/[randomstring].default/extensions/keefox@chris.tomlinson/deps/ с названием KeePassRPC.plgx.
Руссификация KeePass2 производится похожим образом. Создаёте каталог для языковых файлов:


mkdir ~/.local/share/KeePass

Скачиваете архив с руссификатором с официальной страницы. Извлекаете из архива в созданный каталог файл Russian.lngx. В программе KeePass2 через меню меняете язык [View/Change language…] и перезапускаете программу.

Что дальше?

Научитесь пользоваться этой удобной программой. Если часто приходится работать за разными компьютерами (например, дома и на работе), то можно базу паролей разместить на сетевом ресурсе (например, на Яндекс.Диске). В первом абзаце статьи «Архивирование на Яндекс.Диск автоматоматически» я упоминал, как удобно подключить Яндекс.Диск через systemd, но можно и стандартным способом, который предлагают его разработчики. Ключевой файл для доступа к базе KeePass2 скопируйте в ~/Документы (на каждом компьютере — в случае если у вас есть персональная учётная запись на этих машинах), а единственный (и теперь самый важный) пароль от базы KeePass2 — держите в голове (ну или в сейфе копию). Таким образом никто, кроме вас доступ к вашим паролям не получит.

Автор: Олег Ехлаков

Linux SSH подключение по сертификату

Мануалов много, эта заметка для понимания:
если я хочу подключаться с сервера А на сервер Б по сертификату, то я создаю пару закрытый открытый ключ на сервере А и копирую открытый ключ (ssh-copy-id) на сервер Б.

Описание параметров настройки SSH

Автор: Viktor

${0%${0##*/}}

Есть небольшой трюк в bash, который мне давно нравился — получение текущей директории запущенного скрипта, используя только $0 и операции над строками bash-а. Это то, что в заголовке. Как вариант, его можно использовать в виде:

cd ${0%${0##*/}}

Исходные данные: $0 — полный путь запущенного скрипта. Понятно, что скрипт надо выполнять по полному пути, иначе использование метода лишено смысла.

Используются последовательно две операции над строками:
${string##substring} — удаление самой длинной, из найденных, подстроки $substring в строке $string. Поиск ведется с начала строки.
${string%substring} — удаление самой короткой, из найденных, подстроки $substring в строке $string. Поиск ведется с конца строки.

${0%${0##*/}} — самая длинная из найденных строк */ — это весь путь до последнего слеша включительно. Если удалить это из полного пути, то получится просто имя файла самого скрипта (без пути).

${0%${0##*/}} — далее, если из $0 («полный путь») удалить «имя файла» (получено выше), то получится как раз «путь без имени файла».

Автор: Dmitry Medvedev

conky => 1.10 / Синтаксис конфигурационного файла

Новый синтаксис конфигурационного файла, пример…

$ nano .conkyrc

***

 conky.config = {
    own_window = true,
    own_window_transparent = true,
    own_window_type =  'desktop',
    background = true,
    use_xft = true,
    xftalpha = 0.5,
    update_interval = 1.0,
    total_run_times = 0,
    double_buffer = true,
    draw_shades = true,
    draw_outline = true,
    draw_borders = false,
    draw_graph_borders = true,
    minimum_size  = 200,
    minimum_height = 690,
    maximum_width = 300,
    border_width = 0,
    default_color = 'white',
    default_shade_color = 'black',
    default_outline_color ='black',
    font = 'DejaVu Sans Mono_size=9',
    alignment =  'top_right',
    gap_x = 10,
    gap_y = 85,
    no_buffers = true,
    cpu_avg_samples = 2,
    override_utf8_locale = true,
    use_spacer =  'right'
}

conky.text = [[
${font Sans_size=9:weight=bold}${color #296dac}Информация о системе ${hr 2}
${color #4ea5cd}Хост:$color ${alignr}$nodename
${color #4ea5cd}Ядро:$color ${alignr}$kernel ($machine)
${color #4ea5cd}Работает:$color ${alignr}$uptime
${font Sans_size=9:weight=bold}${color #D2F6FF}»Crimea-Karro» conkyRC v3.1.4 ${hr 2}

]] 

***

Полный вариант конфигурационного файла .conkyrc, плюс старый вариант конфигурационного файла .conkyrc:

http://crimea-karro.ru/download/conkyrc.tar.bz2

Автор: AugustuS Karro
Дата публикации: 2015-09-25T15:08:00.000+07:00

Локализация (перевод) драйверов PPD

Производители печатного оборудования офисного уровня (принтеров, МФУ и т.п.), к сожалению, далеко не всегда радуют пользователей операционных систем отличных от Windows. Иногда, даже если есть драйвер PPD для CUPS для нужной модели принтера, он не доступен на родном языке пользователя. Я использую русскую локаль (ru_RU) и в данной заметке покажу, как можно к родному английскому языку драйвера добавить перевод на русский язык. Информации по этой теме в интернете крайне мало. Я нашёл только статью «PPD Extensions» и раздел «Globalized PPD Support» в документации CUPS.

Реальный пример

Уважающий себя производитель Konika Minolta выкладывает драйвера для своего оборудования в том числе и для Linux. Но вот для модели Bizhub C452 доступны драйвера только для нескольких европейских языков, среди которых нет русского. Я скачал архив BHC652PPDLinux_200000002MU.zip, в котором в отдельных каталогах для каждого языка располагались драйвера в виде файлов KOC652opn.ppd и KOC652UX.ppd. Последний я скопировал под своим именем — my_KOC652UX.ppd. Вся работа по переводу будет производиться по нему.
Заголовочную часть я оставил практически без изменений. Лишь добавил строку:

*cupsLanguages: "ru_RU"

Я пропустил разделы опциональных устройств принтера, которых у меня нет и приступил к добавлению переводов по интересующим строкам.
Есть опции, описания которых заключены между объявлениями *OpenUI и *CloseUI. Эти опции описывают элементы управления на форме параметров принтера. Например, мне попадались описания выпадающих списков и переключателей.
Для перевода названия самого параметра нужно добавлять «*ru_RU.Translation», а для перевода опций этого параметра — «*ru_RU.». Проще это всё показать на примере. Вот пример перевода переключателя. Было:


*OpenUI *Collate/Collate: Boolean
*OrderDependency: 1 AnySetup *Collate
*DefaultCollate: True
*Collate False/Off:  "<< /Collate false >> setpagedevice"
*Collate True/On:  "<< /Collate true >> setpagedevice"
*CloseUI: *Collate

Стало:


*OpenUI *Collate/Collate: Boolean
*OrderDependency: 1 AnySetup *Collate
*DefaultCollate: True
*ru_RU.Translation Collate/Разбор по копиям: ""
*Collate False/Off:  "<< /Collate false >> setpagedevice"
*ru_RU.Collate False/Отключено:  "<< /Collate false >> setpagedevice"
*Collate True/On:  "<< /Collate true >> setpagedevice"
*ru_RU.Collate True/Включено:  "<< /Collate true >> setpagedevice"
*CloseUI: *Collate

Вот пример перевода выпадающего списка. Было:


*OpenUI *InputSlot/Paper Tray: PickOne
*OrderDependency: 50 AnySetup *InputSlot
*DefaultInputSlot: AutoSelect
*InputSlot AutoSelect/Auto Select:  ""
*InputSlot Tray1/Tray1:  "<< /ManualFeed false /MediaPosition 0 /TraySwitch false >> setpagedevice"
*InputSlot Tray2/Tray2:  "<< /ManualFeed false /MediaPosition 1 /TraySwitch false >> setpagedevice"
*InputSlot Tray3/Tray3:  "<< /ManualFeed false /MediaPosition 2 /TraySwitch false >> setpagedevice"
*InputSlot Tray4/Tray4:  "<< /ManualFeed false /MediaPosition 3 /TraySwitch false >> setpagedevice"
*InputSlot LCT_Donau/LCT:  "<< /ManualFeed false /MediaPosition 4 /TraySwitch false >> setpagedevice"
*InputSlot ManualFeed/Bypass Tray:  "<< /ManualFeed true /TraySwitch false >> setpagedevice"
*CloseUI: *InputSlot

Стало:


*OpenUI *InputSlot/Paper Tray: PickOne
*OrderDependency: 50 AnySetup *InputSlot
*DefaultInputSlot: AutoSelect
*ru_RU.Translation InputSlot/Лоток загрузки бумаги: ""
*InputSlot AutoSelect/Auto Select:  ""
*ru_RU.InputSlot AutoSelect/Автовыбор:  ""
*InputSlot Tray1/Tray1:  "<< /ManualFeed false /MediaPosition 0 /TraySwitch false >> setpagedevice"
*ru_RU.InputSlot Tray1/Лоток 1:  "<< /ManualFeed false /MediaPosition 0 /TraySwitch false >> setpagedevice"
*InputSlot Tray2/Tray2:  "<< /ManualFeed false /MediaPosition 1 /TraySwitch false >> setpagedevice"
*ru_RU.InputSlot Tray2/Лоток 2:  "<< /ManualFeed false /MediaPosition 1 /TraySwitch false >> setpagedevice"
*InputSlot Tray3/Tray3:  "<< /ManualFeed false /MediaPosition 2 /TraySwitch false >> setpagedevice"
*ru_RU.InputSlot Tray3/Лоток 3:  "<< /ManualFeed false /MediaPosition 2 /TraySwitch false >> setpagedevice"
*InputSlot Tray4/Tray4:  "<< /ManualFeed false /MediaPosition 3 /TraySwitch false >> setpagedevice"
*ru_RU.InputSlot Tray4/Лоток 4:  "<< /ManualFeed false /MediaPosition 3 /TraySwitch false >> setpagedevice"
*InputSlot LCT_Donau/LCT:  "<< /ManualFeed false /MediaPosition 4 /TraySwitch false >> setpagedevice"
*ru_RU.InputSlot LCT_Donau/Лоток большой ёмкости:  "<< /ManualFeed false /MediaPosition 4 /TraySwitch false >> setpagedevice"
*InputSlot ManualFeed/Bypass Tray:  "<< /ManualFeed true /TraySwitch false >> setpagedevice"
*ru_RU.InputSlot ManualFeed/Лоток ручной подачи:  "<< /ManualFeed true /TraySwitch false >> setpagedevice"
*CloseUI: *InputSlot

На картинке визуально легче определить изменения:

Описания некоторых опций занимают несколько строк. Например:


*MediaType Plain/Plain Paper:  "<< /KMMediaType (Plain) /KMMediaColor (None) /KMMediaWeight (Normal) /MediaTabType (None) /MediaPreprinted false /MediaPrepunched false >>
 /KMOptions /ProcSet findresource /setKMoptions get exec"
*End

Для перевода такой опции надо так же копировать всё целиком от «*MediaType» до «*End»:


*ru_RU.MediaType Plain/Обычная бумага:  "<< /KMMediaType (Plain) /KMMediaColor (None) /KMMediaWeight (Normal) /MediaTabType (None) /MediaPreprinted false /MediaPrepunched false >>
 /KMOptions /ProcSet findresource /setKMoptions get exec"
*End

В конце файла дополнил раздел «Change Log»:


*% === Change Log =============================
*% 25.08.2015 Add russian translations

Вот как выглядит результат перевода с точки зрения пользователя. Было:

Стало:

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

Автор: Олег Ехлаков