Как стать автором
Обновить

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

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров5.4K

Введение

С давних-предавних времен я использую персональную информационную систему на основе 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.

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

На 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 документом.

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

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

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

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

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

  • Написана на Python

  • Имеет три режима работы:

    • Просто консольный, без каких либо зависимостей

    • Консольный с использованием библиотеки Dialog

    • Режим графического интерфейса с использованием библиотеки Tkinter

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

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

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

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

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

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

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

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

Варианты

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

Ссылки

Теги:
Хабы:
+20
Комментарии37

Публикации

Истории

Ближайшие события

19 сентября
CDI Conf 2024
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн