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
  1. Введем кодовую фразу.
  2. Подтвердим кодовую фразу.

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