W: | |||
H: | |||
w: | |||
h: | |||
|
|||
Result |
Category Archives: Software
Простой скринсейвер для Линукса
Xscreensaver – хорошая прога и во многом отвечает требованиям, но у нее есть одна дурацкая особенность – запаролевать экран при пробуждении из спящего режима. А спросонья тыкать негнущимися пальцами, не помня какой язык ты вчера оставил на клавиатуре или случайно нажал Caps Lock, не особенно и приятно. Где эту фичу отключить, я не нашел. Наверное, она вкомпелированна прямо в двоичный код.
Однако на Линуксе скринсейвер не особо и нужен, поскольку Xorg располагает встроенным скринсейвером, который просто выключает экран командой
xset s blank ; sleep 1 ; xset s activate
Для автоматического выключения экрана остается только задать время неактивности юзера, например 10 минут.
Для этого мы установим прогу xprintidle, которая в миллисекундах и считывает время простоя пользователя. 1 минута = 60000 миллисекунд.
sudo apt-get install xprintidle
А дальше я написал на Python простой скрипт
screensaver.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#!/usr/bin/python # -*- coding: utf-8 -*- #--------------------------- #inactivity = 60000 # 1 min #inactivity = 300000 # 5 min inactivity = 600000 # 10 min # 1 min = 60000 milliseconds #--------------------------- import subprocess idletime = subprocess.Popen( 'xprintidle', stdout=subprocess.PIPE ).communicate()[0] if int(idletime) >= inactivity: print 'Screen OFF!' subprocess.call(["xset", "s", "blank"]) subprocess.call(["sleep", "1"]) subprocess.call(["xset", "s", "activate"]) else: print 'Idle', str(idletime).replace('\n',''), 'msec' |
10 минут простоя пользователя откомментированы на линии 7. Вы можете задать свое время.
Теперь поместим файл screensaver.py в папку /opt, дадим ему разрешение x и сделаем для него кронджоб на запуск каждую минуту
chmod a+x /opt/screensaver.py crontab -e */1 * * * * DISPLAY=:0 /opt/screensaver.py
Инжой!
Ubuntu 17.04: Как перманентно отключить встроенную клаву на лэптопе
Для этого надо ввести параметр кернела i8042.nokbd во время загрузки, чтоб порт клавиатуры не создавался
1. В терминале вводим команду
sudo leafpad /etc/default/grub
2. В открытом файле находим строчку
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”
в конце которой добавляем i8042.nokbd
таким образом, чтоб строчка стала такой:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i8042.nokbd"
Сохраняем, закрываем.
3. Апдэйтим grub
sudo update-grub
4. Перезагружаемся.
Ubuntu 17.04: Как маунтить папку с удаленного компа на локальном компе
У меня есть MySQL сервер, который сидит в отдельном ноуте, который стоит на тумбочке и не жужжит. Данные с сервера я могу доставать с помощью LibreOffice Base как франт-энда по локальной сети через wi-fi, но сопутствующие файлы документов в формате ODT, ODS и PDF засовывать в базу глупо и неудобно. Их можно, конечно, сохранять на локальном компе в отдельную папку, а потом эту папку синхронизировать с папкой на сервере, что с одной стороны эффективно, но с другой тоже неудобно. А можно делать умнее: можно сразу маунтить папку с удаленного компа прямо на местный по типу дропбокс, и ничего синхронизировать не надо.
1. Установим sshfs
sudo apt install sshfs
2. Сделаем папку на локальном компе, которая будет иметь содержимое папки с удаленного компа
mkdir /home/alex/Documents
alex – это мой юзернэйм, у вас другой должен быть
3. Замаунтим удаленную папку на местный комп
sshfs alex@192.168.1.100:/home/alex/Documents /home/alex/Documents
- У меня там /home/alex/Documents и тут /home/alex/Documents, чтоб не путаться
- 192.168.1.100 – это IP удаленного компа, на котором стоит сервер
- alex – это мой юзернэйм на удаленном компе, у вас другой должен быть. У меня там alex и тут alex, тоже чтоб не заморачиваться
4. Теперь строчку sshfs alex@192.168.1.100:/home/alex/Documents /home/alex/Documents можно засунуть в стартап для LXDE или openbox, чтоб она включалась при залогивании.
5. Выключить папку Documents на местном компе можно командой
fusermount -u /home/alex/Documents
Ubuntu 17.04: Как синхронизировать папку с местного компа на удаленный комп при помощи rsync через SSH и без пароля
Я предполагаю, что openssh и rsync у вас уже установлены.
1. Проверим, как работает rsync с паролем, когда локальна папка /home/alex/Mail синхронизируется с папкой /home/alex/Mail на удаленном компе, IP которого – 192.168.1.209, а юзернэйм – alex
rsync -avz --progress --delete -e ssh /home/alex/Mail/ alex@192.168.1.209:/home/alex/Mail/
Если прога спросит пароль с удаленного компа, то переходим к следующему шагу.
2. Сделаем шифрованный публичный ssh ключ на локальном компе
ssh-keygen
- Введем кодовую фразу.
- Подтвердим кодовую фразу.
3. Скопируем шифрованный публичный ssh ключ на удаленный комп
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.200.209
4. Проверим, как работает ssh без пароля
ssh 192.168.1.209
Если залогивание произошло без проблем, то прогоняем команду опять
rsync -avz --progress --delete -e ssh /home/alex/Mail/ alex@192.168.1.209:/home/alex/Mail/
–progress | опция для прогрессивного отображения, чего rsync копирует, я ее люблю |
–delete | сотрет все файлы в синхронизируемой папке на удаленном компе, которых нет на местном |
Смотрите
man rsync
Dell Precision: вентиляторы, ЦПУ, температура
Я купил у какого-то чурки, который даже имени своего не назвал, по дешевке Dell Precision M6400 Mobile Workstation. Поехал в Китченер на конспиративную блат-хату, где кроме стола, на котором красовалось сие чудо техники, ничего не было. Дверь открыла какая-то суетливая косоглазая баба, которая стала меня убеждать, что ее муж айтишник, и говно они не продают. Ну и насрать на тебя и на твоего мужа, мне лэптоп для работы нужен, а не в игрушки играть. Дал я ей эти нещасные 200 долларов. Думаю, в чем же подвох? На вид новый, все работает. У него неактивированная Windows 7 Professional стояла, а ключа у меня не было, но была Windows 7 Home, которую я купил в компьютерной лавке лет 5 назад. Поставил я на этот лэптоп Windows 7 Home, активировал, все работает. Прогнал проверочной утилитой от Dell, никаких дефектов кроме RAM не обнаружилось. Dell хитрый. На лэптопе стоит 4G RAM, а он хотел его апгрейдить до 16G. Нафиг-нафиг. За такие деньги я нового говна куплю. Короче врубил я свой видео-редактор, и тут оба-на: вылез синий экран смерти, и комп отрубился. Дела, думаю, может Винда 7 не идет, поскольку железо на лэптопе старее. Поставил XP Professional, кучу драйверов – вырубается и все. Думаю, может софт сильно старый, поскольку железо на лэптопе новее, а Висты у меня не было. Короче, отформатировал я это дело и поставил Lubuntu 17.04. И тоже вырубается. Думаю, ну как так? Или чурка сильно умный оказался, что облапошил экстрасенса, или экстрасенс дурной не видит очевидного невероятного. И тут я додумался проверить температуру ЦПУ, которая зашкаливала под 90°C.
Вот где, оказывается, собака порылась. Почему-то вентиляторы не реагируют на температурные сенсоры, и комп автоматически вырубается от перегрева.
Короче для Убунты фикс будет с помощью i8kutils.
1. Устанавливаем i8kutils:
sudo apt-get install i8kutils
2. Добавляем i8k к модулям кернела
Открываем файл:
sudo leafpad /etc/modules
и вниз впейстиваем
i8k
Сохраняем, закрываем.
3. Делаем i8k.conf файл
sudo leafpad /etc/modprobe.d/i8k.conf
Впейстиваем
options i8k force=1
Сохраняем, закрываем.
4. Перезагружаем лэптоп или в терминале вводим команду, чтоб активировать модуль i8k
sudo modprobe i8k force=1
5. Делаем файл i8kmon.conf, в котором указываем, каким образом вентиляторам включаться
sudo leafpad /etc/i8kmon.conf
Впейстиваем
# Run as daemon, override with --daemon option
set config(daemon) 0
# Automatic fan control, override with --auto option
set config(auto) 1
# Report status on stdout, override with --verbose option
set config(verbose) 1
# Status check timeout (seconds), override with --timeout option
set config(timeout) 20
# Температурный порог: {fan_speeds low_ac high_ac low_batt high_batt}
#set config(0) {{-1 0} -1 40 -1 40}
#set config(1) {{-1 1} 30 60 30 60}
#set config(2) {{-1 2} 53 128 53 128}
# Для компов с двумя фанами:
# Температурный порог: {fan_speeds low_ac high_ac low_batt high_batt}
set config(0) {{-1 0} -1 52 -1 65}
set config(1) {{-1 1} 41 66 55 75}
set config(2) {{-1 1} 55 80 65 85}
set config(3) {{-1 2} 70 128 75 128}
# end of file
Тут надо смотреть, сколько вентиляторов на вашем лэптопе стоит. Если один вентилятор, то надо откомментить строчки, относящиеся к одному вентилятору, и закомментить к двум и наоборот, а то не будет работать.
6. Включаем монитор командой в терминале
i8kmon
Нижние прямоугольники – это на самом деле кнопки, они даже красными иногда становятся, которые при нажатии левой, средней и правой кнопкой мыши должны чего-то делать, но на моем лэптопе они нечего не делают. Или температура у процессора низкая или BIOS не дает, я не знаю, но температура ЦПУ редко когда превышает 50°C, чего собственно и требовалось получить.
Как установить Microsoft SAPI5 и Ivona TTS на Ubuntu 17.04
Инструкции данного туториала касаются Ubuntu 17.04 Zesty с ядром 4.10.0-28-lowlatency x86_64 GNU/Linux, но для других разновидностей Убунт и даже Линуксов тоже сгодятся.
1. Первым делом достаем голоса Ivona TTS. Для хитрых буратин, я поставил видео с подробным описанием, где скачать крэк. SAPI5, правда, идет со встроенными голосами от Майкрософт типа Мэри или Сэм. Кто нехитрый, пусть Ивону купит или довольствуется тем, что добрый дядя Сэм поставил.
2. Устанавливаем на комп Wine
sudo apt-get install wine-stable winetricks
3. Создаем 32-битный WINEPREFIX с папкой ttsreader
WINEARCH=win32 WINEPREFIX=/home/alex/ttsreader winecfg
4. В winecfg ставим XP
5. Теперь с этим вайнпрефиксом устававливам SAPI5
WINEPREFIX=/home/alex/ttsreader winetricks speechsdk
Этот вайнпрефикс теперь будем ставить все время для любой команды
WINEPREFIX=/home/alex/ttsreader
6. Один за другим устанавливаем голоса от Ивоны. Какие именно голоса – на любителя. Я установил все американские, все британские и один русский. Русский у Ивоны всего один.
WINEPREFIX=/home/alex/ttsreader wine "/home/alex/Downloads/American English/Ivona_Voice_1.6_Eric_22kHz.exe"
alex – это мой юзернэйм, у вас другой должен быть.
Когда все голоса установлены, цыганам рекомендуется заменить файл ivona_sapi5_voice_v1.6.60.dll в папке ~/ttsreader/drive_c/Program Files/IVONA/IVONA 2 Voice/x86 на крякнутый.
7. Устанавливаем говорилку.
Скачиваем eSpeak TTS для SAPI5 и устанавливаем прогу с тем же вайнпрефиксом
WINEPREFIX=/home/alex/ttsreader wine setup_espeak-1.48.04.exe
Не забудьте cd в папку откуда устанавливаем.
Заводить говорилку будем так:
cd "/home/alex/ttsreader/drive_c/Program Files/eSpeak" WINEPREFIX=/home/alex/ttsreader wine TTSApp.exe
alex – это мой юзернэйм, у вас другой
Тут собственно можно уже и успокоится, но дотошным юзерам всегда хочется чего-то хитрого. Потому
8. Устанавливаем прогу для командной строки
Идем на сайт Балаболки и скачиваем balcon.zip. Разархивируем пакет и двигаем его в папку /home/alex/ttsreader/drive_c/Program Files
Теперь можно слушать текст прямо из терминала:
a) Список голосов
WINEPREFIX=/home/alex/ttsreader wine balcon.exe -l
b) Слушать файл
WINEPREFIX=/home/alex/ttsreader wine balcon.exe -n "Microsoft Mary" -f file.txt
c) Слушать текст
WINEPREFIX=/home/alex/ttsreader wine balcon.exe -n "Microsoft Sam" -t "how do you do?"
Балаболка балаболит хорошо, но почему-то на Убунте долго заводится. Некоторые рекомендуют включать wineserver при стартапе и прочую чушь, которая не работает. Потому я сделал кнопку, которая всегда на стрёме.
Она работает при помощи проги xsel, которая копирует выделенный мышкой текст в x-клипборд, и QT4
sudo apt-get install xsel sudo apt-get install python-qt4 qt4-qtconfig python-pyqtgraph
кнопка wav сохраняет выделенный мышкой текст в файл формата wav в папку по вашем выбору (см ниже)
кнопка dict включает поиск проги goldendict, к которой можно приспособить говорящий словарь OALD8 for lingvo, если вы найдете его на торрентах.
apt-get install goldendict
Файл voices.txt содержит списочек голосов, которые мы получили при помощи команды
WINEPREFIX=/home/alex/ttsreader wine balcon.exe -l
В файле speak.py на линиях 12, 13 и 14 поменяйте реквизиты на свои:
dir_ | папка, где находится balcon.exe |
prefix | префикс, который мы сделали выше |
wav_folder | папка, куда сохранять .wav файлы |
На линии 53 поменяйте пиксельные координаты x и y для местоположения кнопки на экране при стартапе.
Файл xSpeak.sh – это программный лончер. Он короткий
#!/bin/bash cd /opt/xSpeak python speak.py
Тут написано, что папка xSpeak должна быть в папке /opt или поменяйте на свои.
Еще надо надо установить notify-send.
Ubuntu 17.04 > Notify-send и crontab
notify-send – удобная прога для отображения всяких уведомлений прямо на дисплее. Только она не работает в кронтабе, потому что cron идет в обход GUI, а notify-send хочет dbus. Для этого мы сделаем простой фикс.
1. Устанавливаем notify-osd
sudo add-apt-repository ppa:leolik/leolik sudo apt-get update sudo apt-get upgrade sudo apt-get install libnotify-bin pkill notify-osd
2. Устанавливаем notifyosdconfig
sudo add-apt-repository ppa:nilarimogard/webupd8 sudo apt-get update sudo apt-get install notifyosdconfig
notifyosdconfig заводится командой
notifyosdconf
Тут можно ставить всякие опции, если надо.
3. Сделаем файл dbus_get.sh, который надо включать при стартапе после залогивания. Для этого различные десктопы и оконные менеджеры имеют свои приспособления
#!/bin/sh touch $HOME/.dbus/Xdbus chmod 600 $HOME/.dbus/Xdbus env | grep DBUS_SESSION_BUS_ADDRESS > $HOME/.dbus/Xdbus echo 'export DBUS_SESSION_BUS_ADDRESS' >> $HOME/.dbus/Xdbus exit 0
4. Поставим разрешение на писание в папке .dbus/Xdbus
chmod -R a+w ~/.dbus/Xdbus
5. Засунем строчку в кронтаб
crontab -e
* * * * * DISPLAY=0:0 /bin/sh /home/alex/notify.sh
В кронтабе можно писать сразу команду, но мы сделаем отдельный файл, где можно программно чередовать различные уведомления. У меня он несложный:
6. notify.sh
#!/bin/bash if [ -r "$HOME/.dbus/Xdbus" ]; then . "$HOME/.dbus/Xdbus" fi notify-send -i /home/alex/volk.jpg 'Прювет лунатикам' 'Волк'
Вообще для notify-send синтакс такой:
a) простой
notify-send 'Title of the message' 'Text of the message'
b) с иконкой
notify-send -i /home/alex/volk.jpg 'Прювет лунатикам' 'Волк'
Как определить самое быстрое зеркало для Убунту
Самое быстрое зеркало репозиторий на Убунту определяется автоматически при помощи метода ‘Mirror‘.
1. Откройте sources.list
sudo leafpad /etc/apt/sources.list
2. и в самом начале впейстите следующее:
deb mirror://mirrors.ubuntu.com/mirrors.txt wily main restricted universe multiverse deb mirror://mirrors.ubuntu.com/mirrors.txt wily-updates main restricted universe multiverse deb mirror://mirrors.ubuntu.com/mirrors.txt wily-backports main restricted universe multiverse deb mirror://mirrors.ubuntu.com/mirrors.txt wily-security main restricted universe multiverse
Note: вместо wily надо поставить свой выпуск Убунту.
Как исправить ошибку “404 NOT FOUND” при “APT-GET UPDATE” на старой Убунту
Когда на определенном выпуске Убунту срок техобслуживания истекает, девелоперы отключают текущие репозитории, и apt-get дает ошибку “404 NOT FOUND”. Тогда надо переключится на репозитории старых выпусков.
1. Издайте в терминале команды:
sudo sed -i -r 's/([a-z]{2}\.)?archive.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list sudo sed -i -r 's/security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list
2. Откройте sources.list
sudo leafpad /etc/apt/sources.list
3. Закоментируейте extras.ubuntu.com. Это репо тоже больше не поддерживается:
#deb http://extras.ubuntu.com/ubuntu raring main #deb-src http://extras.ubuntu.com/ubuntu raring main
4. Теперь можно смело устанавливать новый старый софт:
sudo apt-get update sudo apt-get upgrade