Раз тут о Conky, то влезу со своими пятью копейками. Мне без надобности выводы сенсоров и параметров, но я всегда мечтал о выводе цитат на рабочий стол. Причём - автоматической их замене. Программы для этого есть, но они все выводят цитаты на английском. Сайтов с цитатами на русском много, но удалось найти всего один, имеющий API, которое отдаёт цитаты по GET или POST запросу. Осталось дело за малым - вывести их на рабочий стол. Разумеется, на ум сразу же пришли коньки. Что же до их минусов - возможно, я использую мало клавиатурных сочетаний, либо просто мне везёт, но не работающих я не замечал. Да даже если бы и заметил, цитаты довольно сильно стимулируют мышление, подталкивая мысли в интересных направлениях, полезно для креатива. Или для хорошего настроения. Для меня, это перевешивает.
Рабочая Matuntu-TV64-MR112-X115:
(http://i.imgur.com/he957le.png)
Matuntu-TW32-M112 на виртуалке:
(http://i.imgur.com/Up2YBz5.png)
Казалось бы, что реализовать такое просто. Достаточно в файле .conkyrc, в секции TEXT, оформить через curl GET-запрос на сайт и Conky выведет цитату. В принципе, так и есть. Но цитата выведется в одну строку. И если она длинная - вылезет за пределы экрана. Можно реализовать переносы строк, но здесь и кроется заковыка. Conky режет строки посимвольно, сколько символов указано. И часто получается деление слов в непереносимых местах. К примеру "согласование" - "с" оставит, а "огласование" перенесёт. Некрасиво. Тем более, что при переносах часто теряются целые слова, а то и строки. В общем - эта функция реализована из рук вон плохо и не подходит. Возникла мысль, что Conky должен нормально вывести текст из файла, при условии, что текст в файле уже отформатирован как надо. Значит нужно написать скрипт, который ходит на сайт forismatic, берёт там рандомную цитату и пишет её в файл, задавая длинну строки и реализующий перенос слов целыми, не разрезая их. Логично было бы написать его на Lua, раз речь о Conky, но, увы мне - я им не владею. По этому написал его на Ruby.
В целом, реализация получилась такая. В папке .conky (или директории, а то мне сейчас по Linux-Way за папку глазик выколят, а у меня их всего два) создал папку (директорию) Quotes. В ней создал два файла:
.conkyrc
Спойлер
# Use Xft?
use_xft yes
xftfont Comic Sans MS:size=12
xftalpha 0.8
text_buffer_size 2048
background no
# Update interval in seconds
update_interval 1
xftalpha 0.8
own_window_argb_visual yes
# This is the number of times Conky will update before quitting.
# Set to zero to run forever.
total_run_times 0
# Create own window instead of using desktop (required in nautilus)
own_window yes
own_window_transparent yes
own_window_type normal
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
# Use double buffering (reduces flicker, may not work for everyone)
double_buffer yes
# Minimum size of text area
minimum_size 450 150
# Draw shades?
draw_shades no
# Draw outlines?
draw_outline no
# Draw borders around text
draw_borders no
# Stippled borders?
stippled_borders 0
# border width
border_width 1
# Subtract file system buffers from used memory?
no_buffers yes
# set to yes if you want all text to be in uppercase
uppercase no
# number of cpu samples to average
# set to 1 to disable averaging
cpu_avg_samples 2
# number of net samples to average
# set to 1 to disable averaging
net_avg_samples 2
# Force UTF8? note that UTF8 support required XFT
override_utf8_locale yes
# Add spaces to keep things from moving about? This only affects certain objects.
use_spacer none
#position
gap_x 15
gap_y 50
alignment top_left
default_color 464646
own_window_argb_value 0
own_window_colour 000000
minimum_size 450 150
TEXT
${execp cat quote.txt}
И quotes.rb
Спойлер
require 'net/http'
require 'uri'
class String
def wrap(col = 95)
gsub(/(.{1,#{col}})( +|$\n?)|(.{1,#{col}})/, "\\1\\3\n")
end
end
url = "http://api.forismatic.com/api/1.0/?method=getQuote&format=text&lang=ru"
uri = URI.parse(url)
response = Net::HTTP.get_response(uri)
content = response.body
File.open('/home/sam/.conky/Quotes/quote.txt', 'w'){ |file| file.write(content.wrap) }
В quotes.rb цифра 95, в строке def wrap(col = 95), задаёт длину строки. Можно задать по усмотрению. И если кто решится повторять, то в пути к файлу нужно заменить пользователя Сэм на своего. В системе должен быть установлен Ruby:
sudo apt-get install ruby
Теперь Conky Manager видит нашу директорию Quotes, как виджет.
(http://i.imgur.com/PRfUJKf.png)
Но если его включить, то пока ничего не произойдёт, наш ruby-скрипт ещё не сходил за цитатой. Для этого я добавляю его в cron. В терминале: crontab -e. И там задаю путь и пятнадцатиминутный интервал:
*/15 * * * * ruby /home/sam/.conky/Quotes/quotes.rb
Если всё верно - терминал подтверждает: crontab: installing new crontab. Вдруг чего - здесь в пути тоже нужно Сэма сменить на своего пользователя. Теперь всё работает, выводятся случайные цитаты с интервалом в 15 минут (шрифт и цвет можно легко сменить в .conkyrc). Что меня очень радует. А что меня печалит, так это то, что вместо одной строчки в файле .conkyrc пришлось городить запутанный велосипед со скриптом и crontab-ом. Что же по оформлению, то тему я предпочитаю Moka, иконки Moka или Vibrancy, а курсор BlackStyle.
Можно размещать не в домашнюю папку, а в каталог FF и прописать домашнюю страницу file:///usr/share/mozilla/matuntu-startpage/index.html
Опыт использования стартовой страницы показал, что в некоторых случаях при обновлении Firefox по указанному пути информация удаляется.
Чтобы этого не происходило, каталог matuntu-startpage можно разместить прямо в /usr/share/ и адресная строка будет такая: file:///usr/share/matuntu-startpage/index.html
В связи с недавними событиями: прекращением работы некоторых ресурсов и изменением доменного имени проекта Matuntu появилась необходимость в изменении содержания index.html стартовой страницы sudo xed /usr/share/matuntu-startpage/index.html
текст index.html
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Matuntu-Start!</title>
<link rel="shortcut icon" type="image/x-icon" href="images/favicon.png">
<link rel="stylesheet" type="text/css" href="styles/style.css">
<script type="text/javascript" src="styles/jquery-1.5.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#field").keyup(function() {
$("#x").fadeIn();
if ($.trim($("#field").val()) == "") {
$("#x").fadeOut();
}
});
$("#x").click(function() {
$("#field").val("");
$(this).hide();
});
});
</script>
</head>
<body>
<div class="menubar">
<ul>
<li class="listmenu">
<h1>Линукс</h1>
<ul class="dropmenu">
<li class="drop"><a href="http://compizomania.blogspot.com/" target="_blank">Compizomania</a></li>
<li class="drop"><a href="http://zenway.ru" target="_blank">Zen Way</a></li>
<li class="drop"><a href="https://wiki.archlinux.org/index.php/Main_page_(Русский)" target="_blank">wiki.archlinux.ru</a></li>
<li class="drop"><a href="https://linuxmint.com.ru" target="_blank">Linux Mint.com.ru</a></li>
<li class="drop"><a href="http://lubuntu.ru" target="_blank">Lubuntu.ru</a></li>
<li class="drop"><a href="http://help.ubuntu.ru/" target="_blank">Help.ubuntu.ru</a></li>
<li class="drop"><a href="http://www.omgubuntu.co.uk/" target="_blank">Omg! Ubuntu!</a></li>
<li class="drop"><a href="http://www.noobslab.com/" target="_blank">Noobs Lab</a></li>
<li class="drop"><a href="http://www.webupd8.org/" target="_blank">Webupd8.org</a></li>
<li class="drop"><a href="http://xubuntu-ru.net/" target="_blank">Xubuntu-ru</a></li>
<li class="drop"><a href="http://distrowatch.com" target="_blank">Distrowatch</a></li>
<li class="drop"><a href="http://debianforum.ru/" target="_blank">Debianforum.ru</a></li>
<li class="drop"><a href="https://linuxthebest.net/" target="_blank">LinuxTheBest</a></li>
<li class="drop"><a href="http://forum.runtu.org/" target="_blank">Runtu</a></li>
</ul>
</li>
<li class="listmenu">
<h1>Матунту</h1>
<ul class="dropmenu">
<li class="drop"><a href="http://forum.matuntu.info/" target="_blank">Форум</a></li>
<li class="drop"><a href="http://matuntu.info/" target="_blank">Сайт</a></li>
</ul>
</li>
<li class="listmenu">
<h1>Web-сайты</h1>
<ul class="dropmenu">
<li class="drop"><a href="http://alv.me/" target="_blank">Блогометки alv</a></li>
<li class="drop"><a href="https://www.cinia.ru" target="_blank">Cinia alv</a></li>
<li class="drop"><a href="http://www.youtube.com/" target="_blank">Youtube</a></li>
<li class="drop"><a href="http://www.opennet.ru/opennews/" target="_blank">OpenNET</a></li>
<li class="drop"><a href="http://photography.nationalgeographic.com/" target="_blank">National Geographyc</a></li>
<li class="drop"><a href="http://www.stockvault.net/" target="_blank">Stockvault Photos</a></li>
<li class="drop"><a href="http://www.deviantart.com/" target="_blank">Deviantart</a></li>
<li class="drop"><a href="http://interfacelift.com/" target="_blank">Interfacelift Walls</a></li>
<li class="drop"><a href="http://www.socwall.com/" target="_blank">Social Wallpapering</a></li>
<li class="drop"><a href="https://www.pexels.com/" target="_blank">Pexels Photos</a></li>
<li class="drop"><a href="http://www.jamendo.com" target="_blank">Jamendo Music</a></li>
<li class="drop"><a href="http://zaycev.net/" target="_blank">Zaycev.net</a></li>
<li class="drop"><a href="http://zvvubuntu.blogspot.com/" target="_blank">Блог ZVVUbuntu</a></li>
<li class="drop"><a href="https://imgurhd.ru" target="_blank">ImgurHD</a></li>
<li class="drop"><a href="http://screenshot.ru/" target="_blank">screenshot</a></li>
</ul>
</li>
<li class="listmenu">
<h1>Соцсети и почта</h1>
<ul class="dropmenu">
<li class="drop"><a href="https://mail.google.com/" target="_blank">Gmail</a></li>
<li class="drop"><a href="https://mail.rambler.ru/" target="_blank">Рамблер</a></li>
<li class="drop"><a href="https://login.yahoo.com/config/login" target="_blank">Yahoo Mail</a></li>
<li class="drop"><a href="http://www.facebook.com" target="_blank">Facebook</a></li>
<li class="drop"><a href="http://www.twitter.com" target="_blank">Twitter</a></li>
<li class="drop"><a href="https://mail.ru/" target="_blank">Mail.ru</a></li>
<li class="drop"><a href="http://www.ok.ru/" target="_blank">Одноклассники</a></li>
<li class="drop"><a href="https://vk.com/" target="_blank">В контакте</a></li>
<li class="drop"><a href="https://ktozvonil24.ru" target="_blank">Кто звонил</a></li>
<li class="drop"><a href="https://www.yandex.ru/" target="_blank">Яндекс</a></li>
<li class="drop"><a href="https://maps.yandex.ru/" target="_blank">Яндекс-карты</a></li>
<li class="drop"><a href="https://fotki.yandex.ru/next/" target="_blank">Яндекс-фотки</a></li>
</ul>
</li>
<li class="listmenu">
<h1>Переводы</h1>
<ul class="dropmenu">
<li class="drop"><a href="http://translate.google.com/" target="_blank">Переводчик Google</a></li>
<li class="drop"><a href="http://www.translate.ru/" target="_blank">Переводы-ru</a></li>
<li class="drop"><a href="http://www.systranet.com/ru/translate" target="_blank">Переводчик SYSTRANet</a></li>
</ul>
</li>
</ul>
<div style="clear:both;"></div>
</div>
<form name="search" method="get" action="http://google.ru/search"> <!--В этой строке можно изменить адрес поисковой системы -->
<div class="poisk">
<input id="field" class="q" type="search" autocomplete="off" required autofocus placeholder="Искать..." name="q" />
<div id="delete"><img src="images/cross.png" id="x" title="Очистить поле ввода"></div>
</div>
<input class="knop" value="Поиск" type="submit" name="knop">
</form>
</body>
</html>
В Mate хранитель экрана очень аскетичный. Однако имеется возможность расширить диапазон экранных заставок установкой в систему пакета rss-glx описание пакета в Synaptic
rss-glx — набор экранных заставок Really Slick Screensavers, созданных разработчиком Терри Велшем (Terry Welsh; http://www.reallyslick.com/) и переписанных для использования с GLX. Кроме того, в пакет включено нескольких других OpenGL-заставок экрана, перенесённых с других платформ.
Каждую заставку можно запустить как автономное приложение или внести в список активных заставок XScreenSaver. Дополнительная информация об использовании заставок совместно с xscreensaver находится в /usr/share/doc/rss-glx.
Экранные заставки включённые в этот пакет: Biof, Busy Spheres, Colorfire, Cyclone, Drempels, Euphoria, Feedback, Fieldlines, Flocks, Flux, Helios, Hufo's Smoke, Hufo's Tunnel, Hyperspace, Lattice, Lorenz Attractor,MatrixView, Plasma, Pixel City, Skyrocket, Solarwinds, SpirographX и Sundancer2.
sudo apt install rss-glx
Установила набор экранных заставок Really Slick Screensavers в Matuntu-B64.
После инсталляции пакета заставки моментально появились в хранителе экрана
(https://i.imgur.com/GStS4pw.png)
Посмотреть описание экранных заставок из RSS-GLX можно на странице разработчика (http://www.reallyslick.com/screensavers/).