Make OS X like interface based on GNOME Shell

Following my recommendations you can build your own interface, e.g. OS X like, keeping the best of current GNOME Shell features — it’s stunning client-side decorations and wonderful interface design.

Screenshot from 2015-10-31 19-12-50On this screenshot you see Flat Plat theme, Moka Icons in Dock and transparent top bar which is not like OS X, but saving screen space and looking better. Of course there is no problem to make it similar to OS X.

This includes the following steps:

  1. disabling GNOME Panel;
  2. creating Dock;
  3. creating top panel;
  4. tweaks.

Making dock

It’s necessary to use Cairo Dock, the most powerful dock in linux family,  at least for the creation of a top panel. For the main panel you can choose any other dock (Plank, etc.) or use dock from GNOME Dash. I believe GNOME Dock and Cairo are more preferrable.

Install Cairo Dock:

sudo apt-get install cairo-dock

Move GNOME dock from dash to bottom of the screen with Dash to dock extension: https://extensions.gnome.org/extension/307/dash-to-dock/

Disable top panel

By disabling top panel you don’t loose GNOME Dash/Overview, which you can still launch by keybindings.Screenshot from 2015-10-29 18-12-41

Screenshot from 2015-10-29 18-04-19Disable panel using this command:

dbus-send --session --type=method_call --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'Main.panel.actor.show();'

For automatic disabling you need to create an autostart item. GNOME Panel doesn’t start immediately, so, you need to create script with delay, like this:

#!/bin/bash
sleep 15
dbus-send --session --type=method_call --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'Main.panel.actor.hide();'

Open «gnome-session-properties» and add new item. Don’t forget about adding Cairo Dock as well.

If you don’t have gnome-session-properties utility, create .desktop file in ~/.config/autostart and add Cairo Dock with Gnome Tweak tool.Screenshot from 2015-10-29 16-50-24Screenshot from 2015-10-31 19-16-11

Create new top panel instead of GNOME’s

In Cairo Dock you must create the second panel, or set up the main panel with the following properties and elements. Offset and alignment not equal to 0 or 1 because window bars becomes untouchable in the top edge of screen. It’s a bug.Screenshot from 2015-10-31 18-52-39 Screenshot from 2015-10-31 18-52-42As you see, my settings are not similar to OS X top bar. All elements are moved to the right side, the panel is fully transparent and it overlays the windows bar. I reach economy of screen space with this settings, and in my opinion it is better than Apple scheme. But you can set up this panel like OS X, no problem. There are a lot of themes for Cairo Dock for it.

Necessary tweaks

The first tweak is moving icons to top bar in GNOME Shell using Topicons extension (https://extensions.gnome.org/extension/495/topicons/). In fact, only Dropbox moved there, others like Skype, multiload-indicator or gtk-reshift then appeared in Cairo-Dock. This means, that you will lost some indicators. I didn’t dig into the solution yet.

The second problem is a loss of Network indicator. Currently I replace it with Cairo Dock Wi-fi indicator, which shows only signal strength. To configure network settings and connections you can use next custom indicator.

«Status indicator» are a custom Cairo Dock launcher, which opens standard GNOME network/battery/log menu. Just insert command above and select «Don’t link the launcher with its window».

dbus-send --session --type=method_call --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'Main.panel.statusArea.aggregateMenu.menu.open();'

Screenshot from 2015-10-31 18-49-00

And what you will get:

Screenshot from 2015-10-31 18-50-47Last loss is Ubuntu keyboard indicator (which is probably needed for you, if you are like me, illiterate non-english speaker from a far country :). I configured Cairo Dock Keyboard indicator similar to Ubuntu icons with svg black backgroud image and Fira Sans font.

Screenshot from 2015-10-29 16-58-26Of course, don’t forget to configure buttons in dconf-editor the way you prefer — org.gnome.desktop.wm.preferences, button layout.

Screenshot from 2015-10-29 18-00-11This is all you need to create your own desktop environment based on GNOME Shell and its stunning interface without GNOME Panel.

Решаем проблему случайной активации пунктов контекстного меню при правом клике

Есть известная, и существующая более пяти лет проблема — часть приложений вызывают контекстное меню сразу после нажатия, не дождавшись, пока кнопку отпустят, как принято во всех ОС и средах (Win и Mac в том числе). Это не имело бы большого значения, если бы между нажатием и отпусканием курсор случайно не залезал на крайний пункт меню, который затем активировался.

Особенно эта проблема существенна для обладателей кликпэдов, ведь курсор при этом практически всегда двигается, но люди с мышью и тремором тоже, наверняка, не в восторге.

Есть несколько путей решения проблемы. Я продемонстирирую самый простой из них и дам ссылку на альтернативный. Итак, для начала нам надо установить программу easystroke:

sudo apt-get install easystroke

После запуска нам нужно выбрать вкладку «Настройка» и сделать следующее:

  1. Установить автозапуск
  2. Отключить тайм-аут
  3. Определить, какую кнопку мы контролируем

easystroke_027

Для определения кнопки нужно кликнуть по серой области (4). У меня это «кнопка 3».

_028

После этого можно открывать какую-нибудь программу с плохим поведением — например, Терминал, Skype или qBittorent — и проверять работу.

Решение я взял отсюда: http://askubuntu.com/a/470219/326729

Наконец, есть ещё один вариант, более unix-way, где надо немножко покомпилировать и подредактировать конфиги: http://askubuntu.com/a/435004/326729

Исправление кодировки в тегах mp3

Не мой рецепт, но напишу себе для заметки.

Большинство популярных плееров в линуксе неправильно отражают кодировку mp3-тегов, если они записаны в кодовой таблице CP1251.

Чтобы сконвертировать теги в нормальный формат UTF-8, достаточно выполнить пару команд в терминале.

Установить необходимые пакеты:

sudo apt-get install libtag1-vanilla python-mutagen

Следующей командой — войти в папку с музыкой и выполнить конвертацию:

cd Музыка &&  find -iname '*.mp3' -print0 | xargs -0 mid3iconv -eCP1251 --remove-v1

Проблему с тегами я исправил за несколько минут (учитывая, что у меня ssd).

Фиктивный выход в Pulseaudio и как с ним бороться

Заметил странную проблему при выходе из спящего режима — пропадание звука. При просмотре параметров звука мы обнаруживаем некий «фиктивный выход» вместо настоящего аудиоустройства. Внимание, описанные ниже инструкции действуют только если у вас помимо «фиктовного выхода» микшер указывает и настоящий. Если последний пропал — решения не знаю.

Как это лечится?

Одноразовый способ, который всегда работает — перезапуск pulseaudio. Делается он простой командой:

pulseaudio -k

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

cd /etc/pm/sleep.d && sudo touch 35_pulse && sudo chmod +x 35_pulse && sudo nano 35_pulse

И скопируем туда следующий текст:

#!/bin/bash

case «$1» in
thaw|resume)
pulseaudio -k
;;
*)
;;
esac
exit $?

Этого будет достаточно для решения проблемы. Это не только исправило проблему фиктивного выхода, но и решило проблему с пропаданием звука воспроизводившейся композиции в Rhythmbox, в тот момент, когда компьютер выходил из сна.

The easyiest way to install DNSCrypt on Ubuntu and how to check, is it work

Installing

Just use this cool script: https://github.com/simonclausen/dnscrypt-autoinstall. It will ask fro select DNS servers. OpenDNS may be prefferable for newbies. Why? I will explain it next.
For install DNSCrypt by this script you just need to enter one command:

wget https://raw.github.com/simonclausen/dnscrypt-autoinstall/master/dnscrypt-autoinstall.sh && chmod +x dnscrypt-autoinstall.sh && ./dnscrypt-autoinstall.sh

If you have troubles, enter this command with «forcedel» argument:

./dnscrypt-autoinstall.sh forcedel

After installing you need to edit connections in Network Manager. Put 127.0.0.2 to any connection in «DNS servers» field, after selecting «DHCP (only address)» on IPv4 tab.

Checking

If you selected OpenDNS, to check if dnscrypt working or not, you can use simple command:

dig txt debug.opendns.com

If you get text, which include line «dnscrypt enabled» — it working.

; <<>> DiG 9.8.3-P1 <<>> txt debug.opendns.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27336
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;debug.opendns.com.  IN TXT

;; ANSWER SECTION:
debug.opendns.com. 0 IN TXT "server 3.fra"
debug.opendns.com. 0 IN TXT "flags 20 0 2f4 4000800000000000000"
debug.opendns.com. 0 IN TXT "id 0"
debug.opendns.com. 0 IN TXT "source [YOUR IP]"
debug.opendns.com. 0 IN TXT "dnscrypt enabled ([numbers])"

;; Query time: 499 msec
;; SERVER: 127.0.0.2#53(127.0.0.2)
;; WHEN: [current time]
;; MSG SIZE  rcvd: 222

Also, you can visit http://www.opendns.com/welcome/ and check, is OpenDNS addresses in use or not.

In other case, if ypu prefer other than OpenDNS provider, you can check encryption of DNS-queries by analysis of internet traffic in Wireshark. Just capture packets and look for DNS-specific packets, like in this instruction: http://askubuntu.com/questions/105366/how-to-check-if-dns-is-encrypted

Обзор сайтов с бесплатными кириллическими шрифтами и лучшая программа для управления своей коллекцией

Для пользующихся линуксом имеет значение не только открытость (open), влекущая за собой бесплатность (free), но и легальный аспект этой бесплатности.
Линуксоиды — люди с развитой этикой, и не так просто именно в их среде появились CC, GNU и прочие виды свободных лицензий.
Поэтому те любители линукса, кого вообще интересует такое явление, как «шрифты», также заинтересованы в том, чтобы эти шрифты были максимально свободны. И даже если мы будем использовать пиратский шрифт только для себя и никто об этом не узнает — зачем брать чужое, когда есть много бесплатных аналогичных вариантов?
Главный вопрос, где их найти, а ещё — каким менеджером ими управлять. Ответы на эти вопросы я дам в своём посте.


Первый сайт со шрифтами в списке, который отчасти агрегирует все нижестоящие:

http://free.type.org.ua/ru/

Его недостаток — неудобная навигация, необходимость переходить на стронние сайты, отсутствие динамического превью. Также надо обращать внимание на богларскую кириллицу, ведь сайт собирает все виды кириллических шрифтов — в ней отсутствуют некоторые буквы и она не подходит для русского языка. Возможно, это наиболее полная коллекция, но и самая неудобная. Поэтому стоит сразу перейти к вариантам ниже по списку.

Выделение_025


Fontsquirrel.com

http://www.fontsquirrel.com/fonts/list/find_fonts?filter[languages][0]=cyrillic

Сайт с большой коллекцией кириллических шрифтов, причём все шрифты на сайте разрешены для коммерческого использования.

Выделение_026


 The Glyphmaker

http://www.gliphmaker.com/htms/fonts%20A1.html

В основном на этом сайте представлены авторские, декоративные шрифты А. Гофманн.

Снимок экрана от 2015-03-11 21:19:23

 


Fontfabric.com

http://fontfabric.com/category/cyrillic/

Практически все шрифты с кириллицей бесплатны или имеют бесплатные урезанные варианты.

Выделение_027


 Behance.net

http://goo.gl/NBtp6t

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

Выделение_028


1001fonts.com

http://www.1001fonts.com/search.html?search=cyrillic&x=0&y=0

 Здесь можно найти кое-какие шрифты, но коллекция не является слишком уж уникальной.

Снимок экрана от 2015-03-11 21:21:05


Fontfm.com

http://fontm.com/?s=cyrillic

Не самая большая коллекция, но содержит шрифты, которых нет на других сайтах.

Выделение_032


Шрифты Ивана Гладких и Ко

http://www.jovanny.ru/#free

Порядка 45 шрифтов, широко распространённых по агрегаторам.
Выделение_029


Myfonts.com

http://www.myfonts.com/search/tag%3A%28free+cyrillic%29/fonts/

Здесь, как правило, большинство шрифтов платные с отдельными бесплатными начертаниями. Нужно добавлять шрифты в корзину, затем зарегистрироваться, и из корзины скачать на компьютер — ничего сложного.

Выделение_030


Fontspring.com

http://www.fontspring.com/language/cyrillic/

Сайт такой же, как и предыдущий, предлагает бесплатные начертания. Как и в случае выше, требуется зарегистрироваться, чтобы скачать шрифты.

Снимок экрана от 2014-08-23 02:22:03


Также дам ссылки на немногочисленные коллекции, в основном от конкретных дизайнеров. Кириллических шрифтов совсем немного.

http://www.neogrey.com/portfolios/fonts/ (свободное личное некоммерческое использование, коммерческое разрешается при совершении пожертвования)
http://www.typedepot.com/fonts


Следующий вопрос — а чем управлять своей коллекцией шрифтов? Я перепробовал многие, и лучшая программа, которая позволяет это делать на линуксе — Font Manager. Для его установки введите:

sudo add-apt-repository ppa:font-manager/staging
sudo apt-get update && sudo apt-get install font-manager
Font Manager_031

Чтобы установить шрифты в этой программе, надо нажать на выделенную кнопочку (плюсик). Для отключения шрифта достаточно щёлкнуть по чекбоксу. Можно раскладывать шрифты по коллекциям и соответственно, массово отключать-подключать.

Google Drive: зачем webdav, когда есть FUSE?

Предварение от автора.
Долго мучавшись с этой утилитой, я её снёс. Причин несколько:

1) невероятно низкая скорость работы. Даже простое редактирование документов в LibreOffice давалось с большим трудом.

2) затыки в Nautilus’е. Долго открывается. Может зависнуть или вовсе не открыться, если потеряно соединение с Интернет.

Если вы всё ещё хотите попробовать — читайте пост. Он написан в конце лета 2014 года и с тех пор некоторые моменты могли измениться. На фоне слухов о скором появлении нативного клиента под Линукс, вероятно, потребность в этом проекте может отпасть.

***

Очень многие хотят иметь доступ к облачному хранилищу по webdav. Для Google Drive, у которого такой опции нет, даже придумали сторонний сервис, организующий этот доступ через API. Но есть замечательная утилита google-drive-ocamlfuse, которая снимает вопрос отсутствия vebdav, т.к. позволяет монтировать диск с помощью FUSE.

Установка

sudo add-apt-repository ppa:alessandro-strada/ppa
sudo apt-get update && sudo apt-get install google-drive-ocamlfuse
Перед запуском надо добавить себя в группу fuse, чтобы запускать программу от своего имени:
sudo usermod -a -G fuse <ваше_имя>
exec su -l $USER
Далее вводим в терминал
google-drive-ocamlfuse

и проходим автоматическую авторизацию на сайте. Вслед за этим оздаём пункт автозапуска вида «google-drive-ocamlfuse /ваш-gdrive»

Ну и примонтировать вручную следующей командой:

sudo mount  /ваш-gdrive

Опыт

1. Из наиболее положительных моментов следует отметить автоматическую конвертацию документов в формате gdoc в Open Document или pdf на выбор. Их можно открывать через быстрый просмотр (если у вас установлен gnome-sushi, конечно) и этого вполне достаточно. Но я предпочитаю отображение в качестве ссылок, которые открывают документ в браузере (как есть в официальных клиентах для Мак и Вин). Как это настроить — см. 3 раздел поста.
2. Полная поддержка записи, внесения изменений и удаления файлов на диске.
3. Поддерживается несколько аккаунтов одновременно. Для работы с ними читайте текст, из которого я взял инструкции по установке: http://xmodulo.com/2013/10/mount-google-drive-linux.html
4. К уже менее позитивным моментам относится скорость работы. Тем не менее, она не такая катастрофичная, особенно после того, как данные закешируются. Способ ускорить работу рассматривается ниже.

Проблемы и их решение

1. Пропадание папок
google-drive-ocamlfuse не поддерживает отображение папок, находящихся в разделе «Доступные мне». Но если вы вздумаете поместить такую папку в какую-нибудь директорию на своём Гугл Диске, то эта директория тоже исчезнет в папке монтирования. Решается эта проблема просто: папку из раздела «Доступные мне» надо «Добавить на мой диск». После этого всё отобразится. Если нет — можно попробовать переместить её в корень и обратно, перезапустить сервис.
Выделение_024
2. Ускорение работы
Для этого нужно открыть для редактирования файл, в котором содержатся настройки:

gedit .gdfuse/default/config
Автор советует изменить следующие пункты:
download_docs=false
metadata_cache_time=600

3. Изменение формата отображения нативных документов Google
Для этого нужно в уже упомянутом файле конфигурации прописать .pdf, .od(t,s,etc.) или .desktop вместо имеющихся — последний вариант будет создавать ссылки, открывающиеся в браузере.

max_cache_size_mb=512
new_revision=true
sqlite3_busy_timeout=500
read_only=false
conflict_resolution=server
verification_code=
drawing_format=png
document_format=odt
form_format=desktop
presentation_format=pdf
spreadsheet_format=ods
docs_file_extension=true
keep_duplicates=falsedownload_docs=true
client_secret=
metadata_cache_time=60
client_id=
debug=false
umask=0o002

Другие проблемы и решения можно найти в ветке: https://github.com/astrada/google-drive-ocamlfuse/issues

Полная и окончательная настройка клиента oblako.mail.ru на linux

Теперь расскажу об опыте настройки клиента oblako.mail.ru, на котором давеча раздавали 1 бесплатный терабайт данных.
Сервис этот, как и многие, я стал использовать для резервного хранения бэкапов.

Настройка автозапуска примитивна:

Снимок экрана от 2014-01-22 15:50:48

Мы открываем программу «Автоматически запускаемые приложения» и вводим адрес расположения клиента. Вот и всё.
Дальше возникает вопрос: а как проверить, что клиент работает и синхронизирует файлы? Для это воспользуемся Системным монитором. Щёлкаем правой кнопкой по процессу «cloud» и выбираем «Открытые файлы»:

Снимок экрана от 2014-01-22 15:55:50

После открытых соединений, адреса которых прописаны, будет показан и файл, в данный момент синхронизируемый процессом. Поскольку он ничего не синхронизировал, то и файлов открытых нет. Загружает он по одному файлу за раз.

Скорость загрузки в облако на mail.ru замечательная — она скорее всего достигает 100 Мбит, хотя мой вайфай на компьютере может выжимать только под 80, но эта скорость была засвидетельствована. В результате порядка 80 гигабайт бэкапов я загрузил на облако в течение нескольких часов одного дня.

Теперь вопрос о синхронизации разных папок на компьютере. Это организуется с помощью симлинков

 ln -s /папка-с-файлами /место-где-будет-симлинк (папка облака)

Но чтобы клиент увидел симлинки, мне потребовалась перезагрузка. Может быть, перезапуска клиента хватит. Поэтому как в случае с множеством облачных сервисов, работающих из одной папки, целесообразно размещать в домашней папке клиента симлинки на место, где хранятся бэкапы. Оно, разумеется, должно быть примонтировано заранее.

Copy.com — очередной сервис синхронизации файлов с линукс-клиентом и 15 Гб бесплатного пространства

Когда-то, в дополнение к не очень объёмному Дропбоксу я пользовался SugarSync, который сносно запускался в Wine на 64-битной Убунту. С переходом на 32 бита я так и не смог его запустить, и променял SugarSync на UbuntuOne. Уже давно глючащий (особенно на MacOS) UbuntuOne вызывал желание и его поменять. И вот, недавно я наткнулся на новый (?) сервис Copy — главное преимущество которого в наличии нативного линукс-клиента, что бывает далеко не часто, а потому он вполне может быть подходящим вариантом.
Обзор клиента
Выглядит Copy как аналог Дропбокса, много общего прослеживается в системном меню, настройках или самих принципах организации синхронизации (одна папка на всё). Утилита настроек выглядит точь-в-точь как дропбоксовская, с аналогичными меню и опциями.

Image and video hosting by TinyPic Image and video hosting by TinyPic Image and video hosting by TinyPic Image and video hosting by TinyPic

Установка
Мы заходим на сайт сервиса и скачиваем линукс-клиент. В архиве есть три папки с версиями для 32- и 64-битных ОС а также для архитектуры arm под названием armv6h! Кажется, линукс-клиента под эту архитектуру нет у самого Дропбокса.

Когда вы скачаете клиент, сразу распаковывайте его в ту директорию, из которой он потом будет работать. Автозапуск он прописывает самостоятельно с указанием папки, из которой был впервые запущен. Я создал папку .copyagent в домашней директории, в папке .copy он хранит свои настройки и рабочие файлы (вероятно, можно и туда). Достаточно запустить в Наутилусе исполняемый файл CopyAgent, и клиент покажет стартовое окно с предложением ввести логин и пароль. Далее предлагается выбрать, какие папки из облака будут синхронизироваться на компьютере, и клиент заработает. Симлинки действуют.

Исправляем глюк с меню

Как минимум, в Ubuntu 14.04 у вас скорей всего будет наблюдаться пропажа пунктов выпадающего меню. Это проблема ОС, и она решаема следующими командами:

bzr branch lp:~3v1n0/libdbusmenu/really-recreate-menu libdbusmenu
cd libdbusmenu
sudo apt-get build-dep libdbusmenu-gtk4
./autogen.sh --with-gtk=2
make install DESTDIR=$PWD/install
sudo cp install/usr/local/lib/libdbusmenu-gtk.so.* $где-расположена-ваша-папка-с-copy
Впечатления от использования
Вот такую скорость я зафиксировал во время его работы, подавляющее число файлов — изображения. Канал 100 Мбит (реально — Мбит 80). Похожую скорость наблюдал ещё в случае с Google Drive, когда туда тоже загружались изображения. Не могу утверждать на 100%, что это сервис режет скорость, но похоже на то.
Image

Тем не менее, в остальном скорость загрузки гораздо выше. Вывод: Copy — это хорошая альтернатива Дропбоксу и любой линуксоид должен попробовать её установить, т.к. настолько проработанные сервисы с хорошим GUI не настолько часто встречаются в экосистеме Линукса.

Успешное включение спящего режима в Ubuntu 13.04

Хочу предупредить, что рекомендации этого поста скорее всего устарели и подходят не каждой системе/ноутбуку, кроме того, в нём нет чёткого понимания, что заставило включиться спящий режим — это лишь результат экспериментирования с настройками. Оставляю пост как архивный.

Читать далее