Заметки на Emacs/Linux/Android

0d24a4bddb591e004647961651530854.png

Введение

С давних-предавних времен я использую персональную информационную
систему на основе org-mode, встроенном в Emacs. Накоплено очень много
полезной информации. Адреса, различные заметки, дневники, ссылки,
TODO-шки ну и так далее.

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

И все было хорошо, но появились мобильные телефоны и
планшеты. Захотелось иметь доступ к информации используя устройства на
Android. После некоторой возни что-то получилось. Выношу получившееся на
суд общественности.

Железо

Система используется на следующих устройствах:

  • Рабочие станции под Linux (PC и Raspberry Pi). Думаю возможно пользоваться и на Windows или Mac, нужно только установить Emacs и Git.

  • Мобильный телефон (Android).

  • Планшет (Android).

Возможности

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

  • Синхронизация локальных файлов через репозитарий Git, думаю в качестве хранилища можно использовать GitHub.

  • Сама информационная система работает на основе org-mode emacs. Можно использовать все его возможности, такие как таблицы, списки TODO, таблицы, ссылки на файлы и ссылки на интернет сайты.

Пример: скриншот с экрана планшета под Android. На скриншоте
запущен Emacs с дэшбоардом информационной системы в
Android/Termux.

7c0031c8b831cb5feb9763bbc13fd62e.png

Используемое программное обеспечение

На Linux используем традиционное ПО: Emacs, Git, SSH.

На Android устройствах используем то же самое, но установленное в
Termux.

Краткое пояснение для тех, кто никогда не имел дело с Termux, это
такой эмулятор терминала для Android. На самом деле это гораздо
больше, чем эмулятор терминала. Фактически, с точки зрения
пользователя, это такой своеобразный дистрибутив Linux,
устанавливаемый поверх Android. Он использует ядро Linux от Android,
на котором установлен. Для него есть репозитории с пакетами,
аналогично как на привычных дистрибутивах. Подробности можно
посмотреть на их сайте: https://termux.dev/en/

Еще одно замечание по Termux. Устанавливать его нужно с
F-Droid. Termux можно найти и в Play Store, но версия старая и не
обновляется, возможны проблемы.

На Android я использую еще одно приложение, просмотрщик .org
файлов Orgro. Это платное приложение, стоит 4.99$. Я пробовал и
другие, бесплатные, но они оказались не столь удобными и в
конце-концов решил, что проще заплатить. Я использую Orgro для
быстрого доступа к некоторым заметкам через шорткаты на рабочем
столе. Для создания шорткатов используется TotalCommander.

Создание системы

Создание базовой системы

Открываем Emacs и создаем на базовой рабочей станции иерархию .org
файлов с перекрестными ссылками. Структуру директорий и файлов делаем
исходя из наших вкусов и потребностей. Для примера, давайте сделаем
корнем нашей системы $HOME/my_info.

Создание репозитария Git

В корне нашей иерархии подключаем Git как обычно:

cd $HOME
mkdir my_info
cd my_info
git init
git touch .gitignore
git add .
git commit -am"Initial commit"
mkdir /tmp/git
cd /tmp/git
git clone --bare $HOME/my_info my_info.git

Копируем my_info.git на свой хостинг со сконфигурированным SSH, и делаем:

cd $HOME
mv my_info my_info_bkp
git clone username@hosting.domain:/home/username/my_info.git

Теперь у нас в домашней директории есть директория my_info,
подключенная через git к репозиторию
hosting.domain:/home/username/my_info.git.

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

Замечание 2: В качестве хостинга репозитариев можно выбрать GitHub
или что-нибудь аналогичное.

Получение копии из репозитария на другой рабочей станции Linux

Ну, здесь, собственно, действуем так, как было описано немного выше:

cd $HOME
git clone username@hosting.domain:/home/username/my_info.git

Конфигурирование системы на Android

С Android возни немного побольше.

В первую очередь устанавливаем и настраиваем Termux. Напоминаю, что
его нужно устанавливать с F-Droid, а не с Play Store.

Далее устанавливаем в Termux нужный софт:

pkg upgrade
pkg install openssh
pkg install emacs
pkg install git

Теперь клонируем нашу систему:

cd $HOME
git clone username@hosting.domain:/home/username/my_info.git

Все, можно запускать Emacs в терминале и пользоваться.

Подробно описывать работу с Termux не буду, в сети достаточно
материалов.

Парочка замечаний. Пользоваться таким образом вполне можно на
планшете, особенно с подключенной внешней BT клавиатурой. Внешняя мышь
практически не нужна, т.к. Emacs в терминале рассчитан на клавиатуру,
а когда нужно, можно пользоваться тачскрином вместо мышки.

Использование на мобильнике

Работать с мобильного телефона в терминальном режиме на Emacs, не то,
чтобы совсем невозможно, но и удобной такую работу не назовешь.

На мобильном телефоне я в основном пользуюсь системой для доступа к
небольшим заметкам в режиме чтения. Использую Orgro — читалку файлов
для Android. Создаю для нужных документов шорткаты на рабочем
столе. И можно пользоваться.

Вот скриншот экрана мобильника с открытым в Orgro документом.

f3d47beb20ffc7ea338256dbfe90dc81.png

Система меню — Yadirmenu

Если на рабочей станции Linux описанного собственно достаточно для
пользования, то на Android голой системой пользоваться не совсем
удобно.

Для повышения удобства совершения часто повторяющихся действий
действий была разработана система меню для скриптов под названием
Yadirmenu.

Вкратце эта система меню превращает дерево директорий с файлами
скриптов в соответствующую систему меню. Конечно на Android/Termux
можно использовать Termux-widget. Но очень не хочется делать это все
вручную на каждом новом устройстве. А с такой системой можно просто
установить скрипт и скопировать дерево скриптов и все уже работает.

Основные черты системы меню:

Для примера скриншот с мобильника с Yadirmenu, работающим в Termux в режиме Dialog.

6d66642ecc5666c5169f55d129708e1b.png

А это скриншот с рабочей станции Linux с Yadirmenu, в режиме Tkinter.

3f843560100281189b7cb38104014e6a.png

Систему меню можно установить с GitHub: Yadirmenu.

Что не удалось

Для Android очень бы хотелось иметь удобный интерфейс в виде
шортката на рабочем столе для вызова Termux с запущенным легковесным
вьювером файлов .org ну или хотя бы less и открытым файлом и без
старта экранной клавиатуры. Сделать что-то подобное не получилось,
пришлось использовать Orgro. А так бы можно бы было все решить при
помощи бесплатных приложений и не выходя из текстового режима.

Может у сообщества есть какие нибудь идеи?

Открытие .gpg файла в Termux

В одном из файлов системы у меня хранятся пароли. Файл зашифрован при
помощи GPG. Все работает, одна проблема, при открытии файла .gpg
почти невозможно ввести пароль. Чтобы ввести один символ клавишу нужно
нажимать раз 5, а то и больше. Учитывая то, что при вводе паролей
символы не отображаются на терминале, задача становится нетривиальной.

Варианты

Думаю в качестве хранилища вместо Git вполне можно использовать DropBox или
подобные штуки, но я не пробовал, для меня все равно Git стандарт.

Ссылки

© Habrahabr.ru