
GNU/Linux
Translate Shell. Перевод текста по hotkey или - а так ваша винда может?
Пакет, точнее скрипт, Translate Shell переводит текст с помощью онлайн переводчиков Google Translate (default), Bing Translator, Yandex.Translate, DeepL Translator, Apertium.
Возможности обширные.
В нашем случае - будем переводить любой текст в любом окне в любом приложении.
Переводить будем всплывающим окном с текстом и озвучивать оригинал текста.
Подробности можно посмотреть на оф. сайте (github), его же Wiki и в man-e.
Работает переводчик в командной строке, я же хочу немного упростить его использование.
В итоге - вывод перевода через kdialog по горячим главишам. Все достаточно просто на самом деле и без всяких вам zenity и notify-send.
1. Скачиваем скрипт
В свежих дистрибутивах версия Translate Shell 0.9.5 и 0.9.6. Поэтому просто
$ sudo apt install translate-shell
В 16.04 (а я использую KDE Neon) версия 0.9.2, поэтому загружаем с git (0.9.6)
$ wget git.io/trans
$ chmod +x ./trans
$ sudo cp trans /usr/bin/
Из обязательных зависимостей - gawk. Рекомендуется еще curl, что-либо из mplayer, mpv, mpg123, eSpeak, что-либо из less, more, most, еще rlwrap, и aspell или hunspell
2. Проверяем скрипт
$ trans artful aardvark
Краткий вывод:
$ trans -b artful aardvark
Послушать в оригинале:
$ trans -sp -b artful aardvark
3. Пишем скрипт на bash
Создаем в любом месте файл
touch /home/$USER/.translate_textbox
со следующим содержимым:
#!/usr/bin/env bash
a=`xsel -o | trans :ru -no-ansi -b`
echo -e "$a" > /tmp/kdetrans
kdialog 500 300 --title 'Перевод' --textbox /tmp/kdetrans
Назначаем исполняемым
$ chmod +x /home/$USER/.translate_textbox
4. Назначаем hotkey
Параметры системы - Комбинации клавиш - Специальные действия - Изменить - Новый - Глобальная комбинация клавиш - Команда или адрес.
Имя: любое (tlanslate box).
Активация: жмем комбинацию (у меня Meta+`)
Действие: /home/ЮЗЕР/.translate_textbox (выбрать файл через проводник)
Применить.
5. Проверяем результат
Выделить любой текст на любом языке, в любом приложении, нажать комбинацию клавиш.
Можно выделять текст. Будет висеть, пока не закроете.
Плюшки
Тоже самое, но в popup (сообщение в системном трее)
Пропадает через некоторое время, но оставляет запись в системных уведомлениях
#!/usr/bin/env bash
a=`xsel -o | trans :ru -no-ansi -b -l`
echo -e "$a" > /tmp/kdetrans
kdialog --title 'Перевод' --passivepopup "`cat /tmp/kdetrans`"
Почти тоже самое, но можно послушать оригинал.
#!/usr/bin/env bash
a=`xsel -o | trans :ru -no-ansi -b`
echo -e "$a" > /tmp/kdetrans
kdialog --title "Перевод" --yesno "`cat /tmp/kdetrans`" \
--yes-label "Произнести" \
--no-label "Завершить"
button="$?";
if [ "$button" = 0 ]; then
xsel -o | trans -sp -b
elif [ "$button" = 1 ]; then
exit 0;
else
kdialog --error "Ошибка";
fi;
Если не нравится женский голос, можно изменить на мужской от Яндекса.
в части
button="$?";
if [ "$button" = 0 ]; then
xsel -o | trans -sp -b
Заменить на
xsel -o | trans -e yandex -sp -n m
Нагло стыбрено с kubuntu.ru оригинал - https://kubuntu.ru/node/14432
спасибо автору Sabalt
Очень шикарная вещь!
Файловый менеджер Ranger
Ranger - консольный python/ncurses файловый менеджер, который предоставляет дерево каталогов в трёх колонках, при этом средняя является «активной», а правая предназначена для предварительного просмотра.
После установки пакета ranger из официальных репозиториев, вам будет необходимо произвести не сложную настройку. Преждe всего, стоило бы создать локальные копии файлов настройки, выполняем ranger --copy-config=all. Эти файлы будут находиться в ~/.config/ranger.
По умолчанию, предварительный просмотр имеют только текстовые файлы, но вы можете разрешить другие скрипты для пред. просмотра опциями "use_preview_script" и "preview_files". По умолчанию скрипты находятся в файле ~/.config/ranger/scope.sh.
Ranger использует rifle для открытия файлов, который настраивается в ~/.config/ranger/rifle.conf
plugins/ - плагины, Python скрипты.
rc.conf - команды, которые выполняются при запуске ragner'a.
commands.py - Python модуль, определяет команды, доступные после ввода ":".
commands_full.py - появляется после --copy-config=commands_full и служит в качестве ссылки для пользовательских команд, игнорируется ranger'ом.
colorschemes/- цветовыe схемы.
bookmarks - список закладок, которые могут быть добавлены вводом m<key>, и удалены um<key>.
copy_buffer - сохранения путей всех скопированных в данный момент файлов (команды :save_copy_buffer и :load_copy_buffer).
history - история команд.
tagged - список помеченных файлов, для добавление необходимо нажать t, затем следует назначить имя тега "<tagname> (кавычка часть команды), убрать - T.
Запускаем менеджер командой ranger.
Для предварительного просмотра изображений чаще всего используется рендеринг с помощью w3mimgdisplay, для установки достаточно установить w3m и в rc.conf добавить строчки "setpreview_images_method w3m" и "set preview_images true".
У вас могут появляться черные полосы на изображении, это связано с ненадежным механизмом отрисовки w3mimgdisplay, рекомендуется поставить "set draw_borders true" в ~/.config/ranger/rc.conf.
Также есть интересная фича, связанная с отрисовкой изображения символами ASСII. Для этого необходимо иметь в наличии img2txt и желательно библиотеку libcaca, а также выставленные в ~/.config/ranger/rc.conf параметры:
set preview_images false
set use_preview_script true
# "set preview_images false" чтобы ranger не использовал полноценную отрисовку
Если же ничего не выводится, то возможно у вас закомментирована строка img2txt в ~/.config/ranger/scope.sh, должно быть примерно так (можете убрать -f utf8, но тогда изображении будет менее распознаваемым):
...
image/*)
img2txt --gamma=0.6 --width="${PV_WIDTH}" -f utf8 -- "${FILE_PATH}" && exit 4
...
Ranger поставляется с 4 цветовыми темами:
default
jungle
snow
solarized
Чтобы изменить тему, добавьте "set colorscheme <theme>" в rc.conf
Список основных команд:
Навигация:
j/Down = переместиться вниз
k/Up = переместиться вверх
h = перейти в родительский каталог
gg = перейти в начало списка
G = перейти в конец списка
<ctrl>-f = листать вниз
<ctrl>-b = листать вверх
J = листать вниз на 1/2 страницы
K = листать вверх на 1/2 страницы
H = вернуться назад через историю навигации
L = переместиться вперед по истории навигации
Переключение директории:
gh = cd ~
ge = cd / etc
gu = cd / usr
gd = cd / dev
go = cd / opt
gv = cd / var
gm = cd / media
gM = cd / mnt
gs = cd / srv
gr = cd /
gR = cd для глобальной конфигурации
Работа с файлами:
i: показать файл (позволяет просто просмотреть текстовый файл в пейджере вместо редактирования)
l или E: открыть файл (открывает файл в файловом обработчике по умолчанию)
r: открыть файл с помощью… (позволяет выбрать программу, с помощью которой будет открыт файл)
z: изменить настройки (часто используемые тумблеры)
zh: просмотреть скрытые файлы
<space>: выбрать текущий файл
t: отметить файл
cw: переименовать текущий файл
/: поиск файлов
n: перейти к следующему совпадению
N: вернуться к предыдущему совпадению
yy: скопировать файл
dd: отметить файл, чтобы вырезать
pp: вставить файл
<delete>: удалить выбранный файл.
Вкладки:
<ctrl>-n = Создать новую вкладку
<ctrl>-w = Закрыть текущую вкладку
<tab> = Следующая вкладка
<shift> <tab> = Предыдущая вкладка
Общие команды:
?: просмотр мануала Ranger
1?: просмотреть комбинации клавиш
2?: справка по командам
3?: справка по настройкам
R: обновить текущий каталог
Q: выход.
! – выполнить команду из оболочки (не-ranger команду)
: — выполнить команду ranger
du – измерить использование диска текущего каталога
chmod – изменить права на текущий файл.
Также есть множество флагов, которые можно использовать для изменения поведения команды. Их нужно использовать с тире после символа восклицательного знака (для команд оболочки) или двоеточия (для команд ranger).
-s: игнорировать вывод текущей команды
-d: отключить процесс и работать в фоновом режиме
-p: вернуть вывод в пейджер Ranger
-w: Не возвращать сразу после выполнения команды.
-c: выполнить команду на текущий файл (не на выбранные файлы).
Также Ranger позволяет объединять файлы в группы для выполнения замены. Это делается при помощи заполнителей:
%f: заменить выделенный файл
%d: заменить текущий каталог
%s: заменить выбранные файлы
%t : заменить текущие отмеченные файлы.
Официальная вики на гитхабе: https://github.com/ranger/ranger/wiki
Настройка мыши
(Только одна мышь (PS/2 или USB) и только один дисплей.)
Мышь называют mouse (множ. mice или mouses), или pointer, или pointing device.
Разъёмы PS/2 - отдельные для клавиатуры и для мыши, нужно подключать правильно; или один совмещённый. Для USB-мышей подойдёт любой порт USB с подходящим разъёмом.
Устройства распознаются и частично настраиваются совместно ядром и демоном устройств (в настоящее время - udev).
Подключение/обнаружение мыши регистрируется в журнале ядра (dmesg или journalctl, некоторые числа могут отличаться, вывод сокращён):
# PS/2-мышь.
# Мышь/клавиатура не подключена или не распознана.
i8042: PNP: No PS/2 controller found.
# Мышь распознана.
PNP: PS/2 Controller [PNP0303:PS2K,PNP0f03:PS2M] at 0x60,0x64 irq 1,12
serio: i8042 AUX port at 0x60,0x64 irq 12
mousedev: PS/2 mouse device common for all mice
input: ImExPS/2 Logitech Explorer Mouse as /devices/platform/i8042/serio1/input/input2
# USB-мышь.
usb 1-8: New USB device found, idVendor=046d, idProduct=c077
usb 1-8: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 1-8: Product: USB Optical Mouse
И, если есть, в журнале X Window (здесь показана только USB-мышь, вывод сокращён):
$ grep -E '.*udev.*(M|m)ouse' /var/log/Xorg.0.log
(II) config/udev: Adding input device Logitech USB Optical Mouse (/dev/input/event14)
(II) config/udev: Adding input device Logitech USB Optical Mouse (/dev/input/mouse0)
Распознанная мышь видна в списке устройств ввода (input):
$ cat /proc/bus/input/devices | grep -A 4 -E '^N.*(M|m)ouse'
# PS/2-мышь.
N: Name="ImExPS/2 Logitech Explorer Mouse"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input2
U: Uniq=
H: Handlers=mouse1 event2
# USB-мышь.
N: Name="Logitech USB Optical Mouse"
P: Phys=usb-0000:00:14.0-8/input0
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.0/0003:046D:C077.0003/input/input14
U: Uniq=
H: Handlers=mouse0 event14
Если USB-мышь распознана ядром, то видна по команде lsusb (вывод сокращён):
$ lsusb
# Название может отличаться от указанного в ценнике.
# Например, эта мышь продаётся под маркой Logitech B100.
Bus 001 Device 004: ID 046d:c077 Logitech, Inc. M105 Optical Mouse
Если поступают события от мыши (хотя бы просто движения), в консоли появятся кракозябры:
$ sudo cat /dev/input/mouse0
Некоторые возможные причины проблем с работой мыши:
- неисправность самой мыши, порта системного блока;
- ошибочные файлы настроек модулей (modprobe), gpm, udev или X Window. Простейшее решение - попробовать удалить или временно переместить "лишние" (на ваш взгляд) файлы настроек;
- ошибки в ACPI. Стоит попробовать отключить ACPI в строке параметров ядра при загрузке:
# Полностью.
acpi=off
# Или частично.
pci=noacpi
(В поиске сведений и попытках отследить/реинициализировать устройство может пригодиться udevadm.)
Драйвер мыши отчасти входит в ядро (соединение по PS/2 или USB), отчасти - в консольный демон мыши или в графическую среду (протокол распознавания сигналов). Ядерный драйвер для PS/2-мыши - psmouse. Для работы USB-мыши от ядра требуется скомпилировать его с поддержкой USB HID (Human Interface Device): CONFIG_USB_?HCI_*=y; CONFIG_?HID_*=m (знаки ? и * - метасимволы оболочки). Примерный список загруженных модулей для USB HID (вывод сокращён):
$ lsmod | grep -E '(usb|hid)'
hid_generic 16384 0
usbhid 49152 0
hid 118784 3 i2c_hid,hid_generic,usbhid
Несколько мышей либо тачпад и мышь - без дополнительных настроек практически считаются одним устройством, то есть их события равносильны и указатель мыши один на всех. Общий файл-устройство - /dev/input/mice; отдельные - /dev/input/mouse0 и далее по номерам. Старые файлы: /dev/psaux - для PS/2-мыши; /dev/mouse - ссылка для совместимости.
Основные пользовательские программные параметры мыши:
- доступные кнопки и колёсики;
- соответствие физических и желаемых (логических) кнопок, то есть, например, при настройке мыши для левшей;
- "интервал двойного щелчка" (double click interval);
- "разрешение" - чувствительность сенсора перемещений, в dpi, это не столько скорость, сколько плавность движения указателя;
- собственно "скорость" перемещения указателя (speed или velocity), также упоминаемая как "чувствительность" (sensivity);
- "порог ускорения" (acceleration threshold) - ход, пройдённый на нормальной скорости, после чего включается перемещение указателя с увеличенной скоростью;
- коэффициент ускорения - множитель (acceleration numerator) или делитель (... denominator) относительно нормальной скорости;
- рисунки указателей.
В текстовом интерфейсе
Указатель мыши в текстовом интерфейсе выглядит как заполненный прямоугольник; возможно, скрыт, но появится при движении мыши.
В командной строке мышью можно выделять фрагмент текста левой кнопкой (как в большинстве GUI-редакторов), а потом щелчком средней кнопки (колёсика) добавлять копию выделенного в конец командного выражения. Правый щелчок добавляет выделение к уже имеющемуся.
Осторожно: если выделено и вставлено больше одной строки, оболочка может воспринять конец строки как сигнал к выполнению.
В псевдографическом интерфейсе с мышью обращаются так же, как и в GUI, но с учётом ограничений (активная точка размером с один текстовый символ). Например, в Midnight Commander щелчком мыши можно выделить пункт списка, активировать меню (как по клавише F9), нажать виджет-кнопку ("F1 Help", "F2 Menu" и остальные).
За предоставление мыши в текстовом интерфейсе отвечает демон gpm (General Purpose Mouse Interface). Демон может обработать три кнопки, которые с его точки зрения являются левой, средней (колёсико) и правой.
Если нет файлов для системы инициализации, то можно запустить демона вручную:
$ sudo gpm -m /dev/input/mice -t exps2
Опция -m указывает файл-устройство. Опция -t - тип (семейство моделей) мыши; аргумент exps2 должен подойти для обычной мыши с колёсиком. Если вместо exps2 набрать help, демон выведет список типов и завершится.
Демон требует прав администратора, запускается один раз и дальше работает для всех текстовых консолей. Завершить gpm можно повторным запуском с опцией -k либо обычным способом.
Некоторые аргументы (через пробел, как -m и -t выше):
-B - соответствие физических и желаемых кнопок (123 - по умолчанию, для правшей; 321 - для левшей);
-i - интервал двойного щелчка в миллисекундах (по умолчанию 250);
-r - скорость перемещения указателя в процентах (от 1 до 100, по умолчанию 10);
-d - порог ускорения (в символах, 2 и выше, по умолчанию 25);
-a - коэффициент ускорения (выше 1, по умолчанию 2).
Документация: страницы man и info для gpm.
В GUI (X Window/Xorg и чуть-чуть о Wayland)
В графических средах мышь обычно настраивают GUI-программами, например:
- Mouse (kcmshell5 mouse) из раздела Hardware/Input Devices в центре настроек System Settings (systemsettings5), среда KDE 5;
- Mouse & Touchpad (gnome-control-center mouse) для центра настроек Control Center, среда GNOME 3;
- Mouse and Touchpad (xfce4-mouse-settings) для центра настроек Settings (xfce4-settings-manager), среда XFCE 4.
Мышь считается набором пронумерованных кнопок (buttons):
1 - левая (left);
2 - средняя (middle, обычное колёсико (wheel), когда нажимается для щелчка);
3 - правая (right);
4 - обычно колёсико при прокрутке вверх;
5 - обычно колёсико при прокрутке вниз;
6 и прочие - дополнительные элементы на игровых мышах.
Посмотреть, как распознаются события от мыши (или иного устройства ввода) можно программой xev (от X event) в эмуляторе терминала (вывода очень много, включая любое перемещение мыши):
$ xev
# Появляется окно, события внутри которого выводятся.
# Нажата левая кнопка: "ButtonPress...button 1".
ButtonPress event, serial 37, synthetic NO, window 0x4800001,
root 0x2b8, subw 0x0, time 2002006, (91,81), root:(642,495),
state 0x0, button 1, same_screen YES
# Отпущена: "ButtonRelease...button 1".
ButtonRelease event, serial 37, synthetic NO, window 0x4800001,
root 0x2b8, subw 0x0, time 2002142, (91,81), root:(642,495),
state 0x100, button 1, same_screen YES
# Начато движение колёсиком вверх: "ButtonPress...button 4".
ButtonPress event, serial 37, synthetic NO, window 0x4800001,
root 0x2b8, subw 0x0, time 2006510, (91,81), root:(642,495),
state 0x0, button 4, same_screen YES
# Закончено: "ButtonRelease...button 4".
ButtonRelease event, serial 37, synthetic NO, window 0x4800001,
root 0x2b8, subw 0x0, time 2006510, (91,81), root:(642,495),
state 0x800, button 4, same_screen YES
Максимум кнопок для Xorg - 24 штуки; по умолчанию - 3. Обычно определяется автоматически. Или принудительно в файле настроек.
Файлы настройки Xorg - текстовые ".conf". Списки мест хранения есть в man-страницах xorg и xorg.conf. Наиболее частые:
- файл /etc/X11/xorg.conf;
- куча отдельных файлов ".conf" в /etc/X11/xorg.conf.d/;
- куча отдельных файлов ".conf" в /usr/share/X11/xorg.conf.d/.
Файлы нумеруют (если нужно, с ведущими нолями) в начале имени, чтобы указать очередь обработки, например: 80-custom-mouse-setup.conf.
Секция настройки мыши выглядит примерно так:
# Старое название секции мыши/тачпада - Pointer.
Section "InputDevice"
# Любое название в разумных пределах; можно с пробелами.
Identifier "Mouse0"
# Потом следует добавить строку в секцию "ServerLayout".
# CorePointer по смыслу - "главная мышь".
# InputDevice "Mouse0" "CorePointer"
# Старый собственный драйвер X Window - mouse,
# более новый - evdev, новейший - libinput.
Driver "evdev"
# Протокол распознавания сигналов, подобно типу для gpm.
# Для обычной мыши подойдёт ExplorerPS/2,
# даже если она для разъёма USB.
# Ещё варианты: ImPS/2, USB. Список - в документации X.
# Или Auto, то есть сервер X попробует угадать.
Option "Protocol" "ExplorerPS/2"
# Файл-устройство.
Option "Device" "/dev/input/mice"
# Максимум кнопок. Необязательно.
Option "Buttons" "5"
# Для движения манипулятора предполагаются три оси:
# X (вправо - влево);
# Y (от себя - к себе);
# Z (вверх - вниз).
# Mapping - примерно "переназначение" или "привязка".
# Ось Z для мыши - обычно прокрутка (scrolling) колёсиком.
# Здесь движение колёсиком вперёд привязано к движению
# по оси Z вниз; назад - вверх. Интерпретировать это
# как прокрутку - задача отдельных программ/библиотек.
# У вас могут быть другие номера кнопок, смотрите вывод xev.
Option "ZAxisMapping" "4 5"
# Предположительно, для мыши с двумя колёсиками:
# Option "ZAxisMapping" "4 5 6 7"
# Соответствие физических и желаемых кнопок.
# По умолчанию - "1 2 3 8 9 10" (пропущены ZAxisMapping).
# Для левши - "3 2 1 8 9 10".
Option "ButtonMapping" "1 2 3 8 9 10"
# Частота опроса сигналов мыши в секунду.
# Помогает настроить более плавную реакцию на движение руки.
# Не для всех моделей мышей.
# Option "SampleRate" "число"
# Для USB-мыши можно попробовать настроить модуль HID ядра.
# Число - периодичность опроса в миллисекундах.
# По умолчанию - 8, то есть с частотой 1000/8 = 125 Гц.
# usbhid mousepoll=число
# Разрешение в dpi. Не для всех моделей мышей.
# Option "Resolution" "число"
# "Чувствительность", множитель перемещений.
# Если выше единицы и мышь с высоким разрешением,
# то по некоторым пикселам попасть не удастся.
# Применяют как замедлитель (дробь меньше единицы)
# для мышей с высоким разрешением. По умолчанию "1.0".
# Option "Sensitivity" "число"
# Симуляция удержания кнопки нажатой.
# Нажать и отпустить дополнительную кнопку (обозначена Д)
# вместо удерживания основной (О):
# Option "DragLockButtons" "Д1 О1 Д2 О2"
# Или нажать общую дополнительную кнопку, потом основную:
# Option "DragLockButtons" "ОД1"
# В конце перетаскивания снова нажать дополнительную.
# Конец секции.
EndSection
Для большего удобства в правке конфигурационных файлов можно запросить X-сервер создать файл с автоматически сгенерированными секциями (на основе уже подключённых устройств).
# Запустить в текстовой консоли.
# Число после двоеточия - номер дисплея ($DISPLAY).
# Первый дисплей - ноль, уже занят.
$ sudo X :1 -configure
В домашнем каталоге появится файл xorg.conf.new, который следует переместить/переименовать в /etc/X11/xorg.conf. Дальше правьте его по усмотрению.
Документация:
man-страницы X, xorg.conf;
https://www.x.org/releases/current/doc/man/man4/mousedrv.4.x...
документация ядра input/input.txt, admin-guide/kernel-parameters.txt
Программа xinput показывает списки и свойства для распознанных работающей системой X Window устройств ввода; позволяет изменять многие свойства. (Вывод не показан.)
# Показать древовидный список.
# Устройства могут отобразиться несколько раз.
# Опции --list --long - максимум подробностей.
$ xinput --list --long
# Отобразить отдельное устройство - указать его номер
# (число после "id=", например, 12) или название в кавычках.
# Опции здесь можно вводить без дефисов.
$ xinput list 12
# Распознавание событий от устройства ввода, наподобие xev.
$ xinput test 12
# Или для более новой подсистемы ввода XInput2.
$ xinput test-xi2 12
# Показать разные доступные свойства.
$ xinput list-props "Logitech USB Optical Mouse"
# Показать параметры ускорения.
$ xinput get-feedbacks 12
# Основной способ настройки устройств - опция [--]set-prop.
# Свойство можно указывать как название в кавычках
# или как число без скобок.
# Делитель скорости мыши (если меньше единицы, то ускорит).
$ xinput set-prop 12 "Device Accel Constant Deceleration" .5
$ xinput set-prop 12 296 1.0
# Некоторые иные способы задания свойств.
# Соответствие физических и желаемых кнопок.
# Аналогично опции "ButtonMapping" в файле ".conf".
$ xinput set-button-map 12 1 2 3 8 9 10
# Установить параметры ускорения.
# Порядок операндов: номер, порог, множитель, делитель.
$ xinput set-ptr-feedback 12 4 2 1
# Игнорировать (disable), задействовать (enable) устройство.
$ xinput --disable 12
$ xinput --enable 12
# Уведомлять об изменении свойств из списка list-props.
# Отключить - как обычно, Ctrl C.
$ xinput watch-props 12
# Снимок состояния кнопок (нажато или нет) и координат.
$ xinput query-state 12
Программа xset может показывать и изменять некоторые свойства работающей подсистемы X Window.
# Показать параметры ускорения указателя.
# Подобно опции get-feedbacks для xinput.
$ xset q | grep -A 1 'Pointer Control'
Pointer Control:
acceleration: 2/1 threshold: 4
# Установить параметры ускорения.
# Подобно опции set-ptr-feedback для xinput.
# Но xset действует на все подключённые мыши/тачпады.
# Порядок операндов: множитель, делитель, порог.
$ xset m 2/1 4
Документация: man-страницы xinput, xset.
Также могут пригодиться программы easystroke, imwheel, xautomation, xbindkeys, xmodmap.
Тема указателей - набор изображений формата "X11 cursor" (расширение "*.xmc" обычно не используется) и некоторых текстовых настроек.
Изображения можно открыть в GIMP. Программа xcursorgen может преобразовывать файлы формата PNG в X11 cursor.
Готовые темы есть, например, здесь:
https://www.opendesktop.org/browse/cat/107
https://www.deviantart.com/customization/skins/linuxutil/x11...
Каталоги хранения: ~/.icons/, /usr/share/icons/, /usr/share/pixmaps/. Подкаталог - название темы; ещё более нижний подкаталог - cursors/. Например: /usr/share/icons/DMZ-White/cursors/ для темы "DMZ-White".
В подкаталоге с названием темы могут быть текстовые файлы index.theme и cursor.theme. Формат - аналогичный файлам "*.desktop", например:
# index.theme
[Icon Theme]
Name=DMZ (White)
Name[ru]=DMZ (Белое)
Comment=White accessible cursor theme
Example=left_ptr
# cursor.theme
[Icon Theme]
# "Наследуемая" тема означает, что недостающие изображения
# будут взяты из неё, если текущая тема неполна.
# В крайнем случае - изображение по умолчанию (default):
# ~/.icons/default/index.theme или
# /usr/share/icons/default/index.theme.
Inherits=DMZ-White
Каталоги хранения можно указать в переменной окружения XCURSOR_PATH. Содержимое - аналогично PATH.
Ещё файлы настроек: ~/.Xresources, /etc/X11/Xresources. Добавить строку, наподобие
Xcursor.theme: DMZ-White
Может потребоваться применить содержимое файла ~/.Xresources в обход графической среды. Тогда нужно добавить строку
xrdb ~/.Xresources
в файл-сценарий "~/.xinitrc" или "~/.xprofile" (аналогично файлу "~/.bashrc").
Диспетчер дисплея (display manager) может сам себе задать тему указателей.
Документация:
http://www.x.org/releases/current/doc/man/man3/Xcursor.3.xht...
https://wiki.archlinux.org/index.php/Cursor_themes
https://wiki.archlinux.org/index.php/x_resources
В графической подсистеме Wayland каждый композитный диспетчер (compositor: KWin, mutter, Weston) обращается с мышью по-своему, но в настоящее время - через библиотеку libinput. Программа xinput при обращении к libinput работает только для X Window; программа xset не влияет на устройства ввода даже в X Window, если задействована libinput. Поэтому настраивать мышь в Wayland придётся GUI-программами графической среды (или средствами навроде gsettings). Библиотека libinput сама предоставляет некоторые оптимальные низкоуровневые настройки. Есть наборы параметров движения указателя (acceleration profiles), здесь не рассказано.
Документация:
https://wayland.freedesktop.org/libinput/doc/latest/faq.html
https://wayland.freedesktop.org/libinput/doc/latest/what_is_...
https://www.mankier.com/4/libinput
Чуваку грозит тюрьма за распространение дисков с Windows (не взломанной)
Эрик Лундгрен — предприниматель и энтузиаст, занимающийся продлением жизни электроники, сданной в утиль. Его компания перерабатывает в полезные девайсы более 18 миллионов кг электронных отходов в год, в том числе она обслуживает IBM и Motorola. А ещё Эрик заморочился и собрал электромобиль из вторсырья.
В настоящее время герою поста грозит тюрьма — он осуждён на 15 месяцев заключения и штраф в размере $50.000. Он обвиняется в выпуске 28.000 контрофактных дисков с ОС Windows. Эрик записал диски восстановления с образов, доступных для скачивания на сайте производителя ПК Dell. Устанавливаемая с них операционная система не является взломанной и требует активации, однако предприниматель имел глупость нашлёпать на диски логотипы Dell и Windows. Microsoft почесали репу, и решили, что сами могли бы срубить по $20 с диска, поэтому выдвинули иск на $420.000.
Elementary Os нет интернета через wi-fi
И так дорогие ПИКАБУчане, нужна ваша помощь.
поставили значит сию ось на компьютер заморский, да не простой а узкоглазой фирмы dns.
А он видать чует дух русский и не работает.
А если серьезно была винда. Встроенный wi-fi в один момент перестал работать. Поставили usb wi-fi.Все работало.но со временем винда стала тормозить. Поставили элементари ось. Со старым юсб адаптером один раз кое как заработало а потом отвалилось соединение. Грешили на адаптер...купили новый результат тот же- не работает. Через шнур интернет есть. Ползунок по wi-fi в самом линуксе хоть меняй хоть не меняй все отключено пишет...в линуксе не силен.прикладываю скрины.
Чего мне не хватает в Windows.
Периодически проскакивают разные срачевые посты. Не буду тыкать пальцем.
Основная суть вопроса от людей, линуксом ну совсем не пользующихся сводятся приблизительно к одному тезису:
- почему вы такие упоротые упорные сидите в своем линуксе и не хотите виндой пользоваться, как нормальные люди?
По списку, но не по значимости:
1. Wine.
Серьезно, да, я не шучу. Если закрыть глаза на недостатки последнего, приходит в голову то, что со старыми приложениями он зачастую работает лучше самой Windows, представляет средства для бэкпортирования новых версий DirectX на старые версии Windows, а также обеспечивает относительно изолированные друг от друга и относительно портативные окружения (т.н. префиксы). Вот оно как, Михалыч!
2. Поддержка файловых систем.
Конечно, энтузиасты делают поддержку, но это "все не так, и все не то". Возникает, опять же, резонный вопрос - зачем богоподобным майкам поддерживать всякую маргинальщину?
А наверное потому, что устройств, использующих и предпочитающих несовместимые с Windows файловые системы сейчас больше, чем, собственно, этих самых Windows. Может стоит сделать своим юзерам жизнь немного удобнее и запилить поддержку парочки популярных?
3. Прямой доступ к железу.
Тут я может и пожадничал, зато от чистого сердца. Невозможность прямого доступа к железу иногда мешает: сложности представляет побитовая работа с накопителями на заруженной системе, например. Нельзя помигать светодиодиком через GPIO, передав команды через sysfs. И еще много моментов, менее очевидных. Драйверная модель Windows NT не позволяет, если я не ошибаюсь.
4. Нативные контейнеры.
Начиная с chroot и заканчивая докером. И только не говорите, что это только для серверного применения, у вас просто хорошего контейнера не было =)
5. Pulseaudio.
Да, не все любят Поттеринга, ну "пшшаудио" и т.д. и т.п. Но если порассуждать - это крайне мощная вещь, позволяющая очень гибко управлять аудиопотоками, поддерживающая сетевую прозрачность и качество микширования вплоть до Bit Perfect.
Да, в Windows есть ASIO, но это вещь сторонняя и по назначению ближе к JACK. А жаль.
6. Портативный софт.
Да, в Windows он есть, но это в 90% случаев просто технопорно (в данном случае - порно с мелкой домашней скотиной и предметами интерьера). Кто во что горазд, как говорится. И все это обильно тормозит и чем-то гадит на жесткий диск. А в Linux есть AppImage - он прост и прозрачен. А если и это не устраивает, можно по вкусу упаковать софт в squashfs с прозрачным сжатием zstd, с которым оно будет работать даже быстрее, чем без него (это магия!). В общем, вы поняли.
7. Пакетные менеджеры.
Ну, где то на переферии поживает One-Get, можете просветить меня, если я не прав. Хотя здесь есть разница подходов. Кто-то от консоли с буковками шарахается как от прокаженного. Или от Vim'а.
8. Средства файловых систем.
Опять же, это можно отнести к 2, но нет. Есть много утилит, основанных на особенностях монтирования файловых систем в Linux. Например, cifs-utils, абсолютно прозрачно монтирующие сетевые ресурсы. Или что-то более экзотичное, типа gitfs. Также в формировании Live-CD используют каскадно-объединенное монтирование, когда несколько read-only образов монтируются как единая файловая система с возможностью записи изменений по приципу copy-on-write. В общем, тема широка.
9. И еще кое-что по мелочи.
В Windows можно разве что еще посетовать на отсутсвие некоторых более-менее универсальных интерфейсов. Если говорить про ffmpeg, например, который используется в куче утилит для скринкастов - для захвата экрана, например, есть тормозной gdigrab, либо множество велосипедов, в разной степени удачных для разных версий Windows / железа. Нет универсального API для кодирования видео, DXVA в кодирование не может, а производители видеокарт не могут прекратить клепать собственные API. В итоге поддержка аппаратного кодирования видео в софте - это такой неуловимый Джо. Даже в линуксе дела обстоят, кмк, получше.
Вот, что пришло в голову. Не претендую, конечно же, на роль истины в последней инстанции. Это просто мое мнение.