Я тут это, капчу накрутил. Создавал под один нищенский нишевый проект.
😲 Сможешь пройти?
ㅤ
Подсказываю — можно накидать bash скрипт, который будет эмулировать нажатие F24 и успешно пройти эту проверку через передачу кейкода в
Концепт на Bash:
Всем хорошей рабочей недели!
🛠 #security #feature #dev
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
ㅤ
Подсказываю — можно накидать bash скрипт, который будет эмулировать нажатие F24 и успешно пройти эту проверку через передачу кейкода в
xdotool. Ну либо клавиатуру купить как на картинке.Концепт на Bash:
for i in $(seq 1 50); do
xdotool key F24
sleep 1
done
Всем хорошей рабочей недели!
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
5 70
Контекстная конфигурация в git
При работе с git репозиториями, частенько попадаешь в просак с таким:
Один раз забил свои явки-пароли и затем git при любом коммите или пуше будет подставлять эти данные. То есть в историю коммитов будет забиваться
ㅤ
Но если у тебя смешаны личные и рабочие репозитории, начинается цирк с конями. Я тысячу раз комитил в рабочую репу под личным
Из этой ситуации можно выйти по-разному, кто-то изобретает безумные Bash скрипты или пишет хуки, кто-то постоянно правит конфиги перед пушем. Короче костыль на костыле. Но есть решение лучше и нативнее.
Расчехляем хоумлабу!
У нас будет 2 папки:
Настраиваем основной конфиг:
Нюанс:
Создаем рабочий конфиг
На этом танцы с бубном закончились, проверяем:
Ага, видим что для личных проектов будет применяться
Да твоюж мать! Видим
Всё, мы успешно разделили контекст между личными и рабочими проектами. Таких инклудов ты можешь насоздавать сколько угодно. Самое главное это работает без костылей и каких-то лишних обвесов вокруг git.
Git скрывает очень много интересного и не всегда это очевидно. Такие дела, изучай!
🛠 #devops #linuxfactory #dev
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
При работе с git репозиториями, частенько попадаешь в просак с таким:
git config --global user.name
git config --global user.email
Один раз забил свои явки-пароли и затем git при любом коммите или пуше будет подставлять эти данные. То есть в историю коммитов будет забиваться
user.name и user.email. Это логично и понятно.ㅤ
Но если у тебя смешаны личные и рабочие репозитории, начинается цирк с конями. Я тысячу раз комитил в рабочую репу под личным
user.name и user.email и получал за это по рукам. Получал конечно сам от себя. Потому что смешивать личное и рабочее — фуфу!
Из этой ситуации можно выйти по-разному, кто-то изобретает безумные Bash скрипты или пишет хуки, кто-то постоянно правит конфиги перед пушем. Короче костыль на костыле. Но есть решение лучше и нативнее.
Расчехляем хоумлабу!
У нас будет 2 папки:
mkdir -p ~/projects/personal
mkdir -p ~/projects/work
Настраиваем основной конфиг:
vim ~/.gitconfig
[user]
name = Roman Shubin
email = shuba@bashdayz.ru
[includeIf "gitdir:~/projects/work/"]
path = ~/.gitconfig_work
Нюанс:
/ в конце work обязателен. Git интерпретирует gitdir: как префикс пути к каталогу .git.Создаем рабочий конфиг
~/.gitconfig_work[user]
name = Linux Factory
email = exe@linuxfactory.ru
На этом танцы с бубном закончились, проверяем:
mkdir -p ~/projects/personal/app
cd ~/projects/personal/app
git init
git config user.email
git config --show-origin user.email
Ага, видим что для личных проектов будет применяться
shuba@bashdayz.ru и берется он из ~/.gitconfig. Последние 2 команды, как раз выводят эту информацию в терминал. Хорошо, теперь:mkdir -p ~/projects/work/app
cd ~/projects/work/app
git init
git config user.email
git config --show-origin user.email
Да твоюж мать! Видим
Linux Factory и exe@linuxfactory.ru. Что и требовалось доказать, данные берутся из файла ~/.gitconfig_work. Всё, мы успешно разделили контекст между личными и рабочими проектами. Таких инклудов ты можешь насоздавать сколько угодно. Самое главное это работает без костылей и каких-то лишних обвесов вокруг git.
Git скрывает очень много интересного и не всегда это очевидно. Такие дела, изучай!
—
Please open Telegram to view this post
VIEW IN TELEGRAM
1 99
Фарш обратно не провернёшь
ㅤ
Порой в Bash поделках требуется создать какой-нибудь секрет, для дальнейшей его передачи в CI/CD или куда-то еще. Ежу понятно, это можно сделать «в лоб», но мыж с тобой не волки позорные, поэтому давай сделаем это по всем правилам DevSecOps Best Practice. (* лучшие практики безопасной разработки).
Задача: Создать безопасно секрет, чтобы его не спиздили (например из свапа при форензике).
Кто-то извращается со
Наш вариант это —
Что тут происходит?
Ничего необычного, генерим 32 случайных байта, кодируем в base64, получаем пароль высокой энтропии, затем через
Ну и в конце скармливаем какой-нибудь утилите или в CI/CD, куда нужно передать секрет, в моем случае я передал его в openssl.
По итогу секрет, не попадает в history, не лежит на диске и временно находится в памяти. Но важно понимать, что после
А еще оно может попасть в swap и это еще хуже, swap это прям как неочищенная «корзина» с удаленными файлами.
На bash этот момент описать наверное не получится, поэтому покажу как сделать на Сиськах. Будем использовать
Когда этот код будет вызывать
Получается что сначала
Кстати
Блокируется вся текущая и будущая память процесса, активно применяется демонами в HashiVault.
Такие дела.
Накидай еще своих вариантов в комменты, будет интересно ознакомиться.
🛠 #dev #security #bash
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
ㅤ
Порой в Bash поделках требуется создать какой-нибудь секрет, для дальнейшей его передачи в CI/CD или куда-то еще. Ежу понятно, это можно сделать «в лоб», но мыж с тобой не волки позорные, поэтому давай сделаем это по всем правилам DevSecOps Best Practice. (* лучшие практики безопасной разработки).
Задача: Создать безопасно секрет, чтобы его не спиздили (например из свапа при форензике).
Форензика — это направление информационной безопасности, связанное с анализом и восстановлением данных для расследования инцидентов
Кто-то извращается со
shred и т.п. утилитами, но это избыточно, да и на SSD, Btrfs, ZFS и journal FS оно будет работать хуева и не гарантирует физическое уничтожение данных. Лучше на диск вообще ничего не писать.Наш вариант это —
pipe через printf. Можно конечно усложнить и сделать через анонимный файловый дескриптор, но получаются те же грабли только сбоку, смысла усложнять нет.#!/usr/bin/env bash
set -euo pipefail
SECRET="$(openssl rand -base64 32)"
printf '%s' "$SECRET" | \
openssl enc -aes-256-cbc -salt -pbkdf2 -iter 200000 \
-in input.txt \
-out output.enc \
-pass stdin
unset SECRET
Что тут происходит?
Ничего необычного, генерим 32 случайных байта, кодируем в base64, получаем пароль высокой энтропии, затем через
printf передаем пароль (без \n) через pipe в stdin. Ну и в конце скармливаем какой-нибудь утилите или в CI/CD, куда нужно передать секрет, в моем случае я передал его в openssl.
По итогу секрет, не попадает в history, не лежит на диске и временно находится в памяти. Но важно понимать, что после
unset SECRET переменная удаляется только из таблицы переменных, в памяти эта переменная может по-прежнему храниться и быть уязвима к форензике. Поэтому носи это в голове и по возможности перезатирай память например тем же stress.А еще оно может попасть в swap и это еще хуже, swap это прям как неочищенная «корзина» с удаленными файлами.
На bash этот момент описать наверное не получится, поэтому покажу как сделать на Сиськах. Будем использовать
mlock().#include <sys/mman.h>
#include <string.h>
#include <stdio.h>
int main() {
char secret[32] = "super_secret_password";
if (mlock(secret, sizeof(secret)) != 0) {
perror("mlock failed");
return 1;
}
printf("Secret in locked memory\n");
// Используем секрет...
memset(secret, 0, sizeof(secret)); // затираем
munlock(secret, sizeof(secret));
return 0;
}
Когда этот код будет вызывать
mlock(), указанный диапазон памяти закрепляется в RAM и ядро не имеет права выгружать его в swap.Получается что сначала
mlock() блокирует участок памяти, затирает memset() её перед освобождением и с помощью munlock() снимает блокировку.Кстати
mlock() используют GnuPG, OpenSSH, HashiVault, KeePassXX. Так что вариант надежный, можешь не сомневаться. А еще иногда используется mlockall():mlockall(MCL_CURRENT | MCL_FUTURE);
Блокируется вся текущая и будущая память процесса, активно применяется демонами в HashiVault.
Такие дела.
Накидай еще своих вариантов в комменты, будет интересно ознакомиться.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
1 55
Привет. А у тебя спина белая 🥳
Недавно упоминал в чатике про цикл статей которые я написал про Podman, лови следующую.
Healthcheck инструментами Podman → https://two.su/3kcvf
🛠 #devops #dev
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Недавно упоминал в чатике про цикл статей которые я написал про Podman, лови следующую.
Рекомендую ознакомиться, столько интересного и неочевидного раскопал. Возможно это подтолкнет тебя к переезду с docker в podman.
Healthcheck инструментами Podman → https://two.su/3kcvf
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Hugo за 30 секунд. Мой пайплайн на Gitea Actions
Наконец-то дошли руки до оптимизации пайпа для сборки Hugo в Gitea, да, есть куда еще стремиться, но там уже с жирными файлами нужно поработать.
ㅤ
Пост больше для энтузиастов и для тех кто хочет посмотреть, как всё происходит под капотом. Можешь взять мою болванку и под свои проекты переделать.
Читать: https://two.su/942is
🛠 #devops #dev
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Наконец-то дошли руки до оптимизации пайпа для сборки Hugo в Gitea, да, есть куда еще стремиться, но там уже с жирными файлами нужно поработать.
ㅤ
Пост больше для энтузиастов и для тех кто хочет посмотреть, как всё происходит под капотом. Можешь взять мою болванку и под свои проекты переделать.
Читать: https://two.su/942is
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Я написал свой текстовый редактор
🔤 🔤 🔤 🔤 🔤 🔤 🔤 🔤 🔤 🔤 🔤 🔤 🔤
ㅤ
Всё началось банально. Мне нужен был редактор для Markdown-заметок — простой, быстрый, работающий без интернета. Я перебрал штук пять вариантов и ни один не подошёл до конца.
Typora — мой любимый по ощущениям, но он платный. Не дорого, но принципиально: хотел что-то, что можно поставить на любую машину без лицензий и аккаунтов. Notion — мощный, но завязан на облако. Отключи интернет — привет. Obsidian тащит за собой экосистему плагинов, и в итоге тратишь время на настройку, а не на написание. VS Code с расширениями — уже смешно, это как ехать на танке за хлебом.
Почему Tauri, а не Electron
Первый вопрос при выборе стека — чем рендерить. Electron — очевидный ответ, но я знал, чем это кончится: 200 мегабайт бинарника и 300 мегабайт RAM на старте. Для текстового редактора это абсурд.
Tauri использует системный WebView — на Linux это WebKitGTK, на Windows WebView2, на macOS WKWebView. Бэкенд на Rust. Итог: финальный бинарник весит меньше 10 мегабайт, а потребление памяти как у нативного приложения. Фронтенд — React, потому что мне с ним удобно.
Как это начиналось
Первая версия умела открывать файл, редактировать его и сохранять. Markdown-превью появился на второй день. Потом захотелось панель форматирования, потом — историю файлов, потом я поймал себя на том, что добавляю уже пятую фичу и приложение превратилось в нечто, чем сам пользуюсь каждый день.
Это классическая ловушка pet project: ты делаешь инструмент под себя, и он начинает расти ровно в сторону твоих личных болей.
Главная фича: история версий
Честно — это то, чего мне всегда не хватало в других редакторах. Не git, не ручные копии с суффиксом
При каждом открытии qnote делает снимок текущего состояния. Дальше снимки появляются автоматически раз в несколько минут. В любой момент можно открыть список версий, посмотреть превью, сравнить и восстановить нужную. Всё хранится локально, никакого облака.
Остальные фичи, которыми горжусь
PDF-экспорт через typst — не через браузерный print, а через настоящий типографский движок. PDF генерируется в цветах текущей темы: тёмная тема — тёмный PDF, светлая — светлый.
OCR прямо в заметку: перетаскиваешь картинку, запускаешь распознавание через tesseract — и текст вставляется прямо в документ. Никакого копипаста между окнами.
Горячие клавиши на любой раскладке. Звучит как мелочь, пока не столкнёшься. В большинстве приложений шорткаты работают только на английской раскладке. Здесь — на любой.
Синхронный скролл в split-view: левая панель с источником и правая с превью прокручиваются вместе. Кажется очевидным, но удивительно, сколько редакторов этого не умеют нормально.
Что получилось в итоге
qnote — это не попытка убить Obsidian или конкурировать с Notion. Это редактор для тех, кто хочет просто писать: без плагинов, без аккаунтов, без подписок. Markdown с превью, история файлов, автосохранение, история версий, PDF-экспорт и OCR — всё что нужно, ничего лишнего.
Работает на Linux, Windows и macOS. Бинарник весит меньше 10 мегабайт. Открывается мгновенно.
Исходники открыты: https://github.com/Omibranch/qnote
🛠 #dev
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
ㅤ
Всё началось банально. Мне нужен был редактор для Markdown-заметок — простой, быстрый, работающий без интернета. Я перебрал штук пять вариантов и ни один не подошёл до конца.
Typora — мой любимый по ощущениям, но он платный. Не дорого, но принципиально: хотел что-то, что можно поставить на любую машину без лицензий и аккаунтов. Notion — мощный, но завязан на облако. Отключи интернет — привет. Obsidian тащит за собой экосистему плагинов, и в итоге тратишь время на настройку, а не на написание. VS Code с расширениями — уже смешно, это как ехать на танке за хлебом.
Я хотел редактор, который просто открывается и работает. Без аккаунта, без подписки, без интернета.
Почему Tauri, а не Electron
Первый вопрос при выборе стека — чем рендерить. Electron — очевидный ответ, но я знал, чем это кончится: 200 мегабайт бинарника и 300 мегабайт RAM на старте. Для текстового редактора это абсурд.
Tauri использует системный WebView — на Linux это WebKitGTK, на Windows WebView2, на macOS WKWebView. Бэкенд на Rust. Итог: финальный бинарник весит меньше 10 мегабайт, а потребление памяти как у нативного приложения. Фронтенд — React, потому что мне с ним удобно.
Как это начиналось
Первая версия умела открывать файл, редактировать его и сохранять. Markdown-превью появился на второй день. Потом захотелось панель форматирования, потом — историю файлов, потом я поймал себя на том, что добавляю уже пятую фичу и приложение превратилось в нечто, чем сам пользуюсь каждый день.
Это классическая ловушка pet project: ты делаешь инструмент под себя, и он начинает расти ровно в сторону твоих личных болей.
Главная фича: история версий
Честно — это то, чего мне всегда не хватало в других редакторах. Не git, не ручные копии с суффиксом
_v2_final_FINAL. Просто автоматические снимки, которые делаются сами — при открытии файла и периодически во время работы.При каждом открытии qnote делает снимок текущего состояния. Дальше снимки появляются автоматически раз в несколько минут. В любой момент можно открыть список версий, посмотреть превью, сравнить и восстановить нужную. Всё хранится локально, никакого облака.
Это мелочь, которая спасает несколько раз в год в самый неподходящий момент. Ты что-то случайно удалил, закрыл файл, открыл снова — и понял это через час. Без истории версий текст просто потерян.
Остальные фичи, которыми горжусь
PDF-экспорт через typst — не через браузерный print, а через настоящий типографский движок. PDF генерируется в цветах текущей темы: тёмная тема — тёмный PDF, светлая — светлый.
OCR прямо в заметку: перетаскиваешь картинку, запускаешь распознавание через tesseract — и текст вставляется прямо в документ. Никакого копипаста между окнами.
Горячие клавиши на любой раскладке. Звучит как мелочь, пока не столкнёшься. В большинстве приложений шорткаты работают только на английской раскладке. Здесь — на любой.
Синхронный скролл в split-view: левая панель с источником и правая с превью прокручиваются вместе. Кажется очевидным, но удивительно, сколько редакторов этого не умеют нормально.
Что получилось в итоге
qnote — это не попытка убить Obsidian или конкурировать с Notion. Это редактор для тех, кто хочет просто писать: без плагинов, без аккаунтов, без подписок. Markdown с превью, история файлов, автосохранение, история версий, PDF-экспорт и OCR — всё что нужно, ничего лишнего.
Работает на Linux, Windows и macOS. Бинарник весит меньше 10 мегабайт. Открывается мгновенно.
автор проекта: @omibranch
Исходники открыты: https://github.com/Omibranch/qnote
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
3 97
Настройка ZED. Отключаем лишнее.
В прошлом году мы с тобой активно обсуждали редактор ZED в этом посте. Тогда всплыло много нюансов и неоднозначных проблем связанных с его работой. Но вернувшись к этому IDE спустя несколько месяцев, я был приятно удивлён. 99% багов, которые были, теперь пофикшены.
ㅤ
Редактор стал намного дружелюбнее и гибче, ну а самое главное перестал жрать память как не в себя.
Поэтому я полностью перепрыгнул с neovim на zed и уже несколько месяцев его активно использую в своих непотребствах. Но конечно-же предварительно, превратив в его в дружелюбный инструмент и избавив от лампочек и рюшечек.
Сегодня будем настраивать конфиг и прятать элементы интерфейса, чтобы получить минималистичный молоток. Избавимся от лампочек и кнопочек, но не в ущерб функциональности.
Читать продолжение: https://two.su/2zglw
🛠 #dev
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
В прошлом году мы с тобой активно обсуждали редактор ZED в этом посте. Тогда всплыло много нюансов и неоднозначных проблем связанных с его работой. Но вернувшись к этому IDE спустя несколько месяцев, я был приятно удивлён. 99% багов, которые были, теперь пофикшены.
ㅤ
Редактор стал намного дружелюбнее и гибче, ну а самое главное перестал жрать память как не в себя.
Поэтому я полностью перепрыгнул с neovim на zed и уже несколько месяцев его активно использую в своих непотребствах. Но конечно-же предварительно, превратив в его в дружелюбный инструмент и избавив от лампочек и рюшечек.
Сегодня будем настраивать конфиг и прятать элементы интерфейса, чтобы получить минималистичный молоток. Избавимся от лампочек и кнопочек, но не в ущерб функциональности.
Читать продолжение: https://two.su/2zglw
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Сколько стоит фреймворк автоматизации
Я тут принёс тебе гостевой лонгрид, причём сразу в двух частях, потому что в одну всё уже физически не помещается.
Максим Братковский вещает, как с нуля собирал платформу автоматизации для десятилетнего Java-легаси: SOAP, REST, лицензии, конфиги, SNMP, SFTP, JMX и прочие радости, после которых ручной регресс длиной в пять недель начинает казаться котлом в аду.
Но это только половина истории. Вторую часть выкладываю сразу следом — там уже Docker, базы данных и дальнейшее развитие всей этой шайтан-машины.
Короче, материала получилось дофига, кода тоже дофига, практического опыта — ещё больше. Наливайте чай и погнали:
👉 Первая часть: https://two.su/yq61v
👉 Вторая часть: https://two.su/pjeqd
🛠 #qa #dev
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Я тут принёс тебе гостевой лонгрид, причём сразу в двух частях, потому что в одну всё уже физически не помещается.
Максим Братковский вещает, как с нуля собирал платформу автоматизации для десятилетнего Java-легаси: SOAP, REST, лицензии, конфиги, SNMP, SFTP, JMX и прочие радости, после которых ручной регресс длиной в пять недель начинает казаться котлом в аду.
В первой части будет много жабьего кунг-фу: CXF, JAX-WS, JAXB, Allure, генерация XML, параметризованные тесты и разбор граблей, которые пришлось собрать по дороге. По итогу из коллекции на 130 запросов выросла платформа с 2700 тестами, а пять недель ручного регресса превратились примерно в 30 минут автоматического прогона. Кайфушка!
Но это только половина истории. Вторую часть выкладываю сразу следом — там уже Docker, базы данных и дальнейшее развитие всей этой шайтан-машины.
Короче, материала получилось дофига, кода тоже дофига, практического опыта — ещё больше. Наливайте чай и погнали:
👉 Первая часть: https://two.su/yq61v
👉 Вторая часть: https://two.su/pjeqd
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Напьются своих рафов лавандовых, а потом в жопы ебутся…
На фоне переезда на линукс, я знатно упоролся и ушел в сторону разработки. На этот раз я решил закрыть свои гештальты, которые преследовали меня последние несколько лет.
Короче сначала я запили плагин для Obsidian и даже удалось захуячить его в официальный стор плагинов самого обсидиана.
Штуку я назвал Cursor Layout Indicator. Суть такая, что рядом с курсором у тебя отображается маленький индикатор текущей раскладки. Выёбываться я не стал и сделал чисто для RU/EN.
Будь моя воля EN бы я с удовольствием выпилил, но увы, из песни слов не выкинешь.
Адаптировал под основные операционки, запилил смену цвета индикаторов и еще пихнул фичу — если начать вводить текст не в той раскладке, я жму хоткей и предыдущие слова переводятся в нужную раскладку.
Эта фича пока работает через жопу, но работает, править баги я пока не собираюсь, так что если хочешь, можешь пулреквестить, смержу.
Исходники, картинки тут👉 https://two.su/ml9pj
На этом я не остановился!
Товарищи из mastodon, закинули импрувмент — а что если для всей ОС сделать подобное?
Хе! Чем бы дитя не тешилось. Яж на Niri подсел, ну вот и поперла разработка. Следом был выпущен плагин или хуй пойми че — niri-layout-cursor.
Суть работы плагина — такой-же, индикатор присутствует постоянно во всей системе. Стало гораздо удобнее отслеживать глазами, не нужно постоянно переводить взгляд вверх, чтобы позырить чё там сейчас включено.
Как ставить и т.п. смотрим тут👉 https://two.su/fdomd
Не навяливаю, мож у кого-то такие же боли как у меня, потыкайте, всегда готов к диалогу, пулреквестам и т.п. Звездочки мне в хуй не упёрлись, НО не откажусь, так что заранее — спасибо! На халяву и уксус сладкий.
Такие дела!
🛠 #dev
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
На фоне переезда на линукс, я знатно упоролся и ушел в сторону разработки. На этот раз я решил закрыть свои гештальты, которые преследовали меня последние несколько лет.
Короче сначала я запили плагин для Obsidian и даже удалось захуячить его в официальный стор плагинов самого обсидиана.
Штуку я назвал Cursor Layout Indicator. Суть такая, что рядом с курсором у тебя отображается маленький индикатор текущей раскладки. Выёбываться я не стал и сделал чисто для RU/EN.
Будь моя воля EN бы я с удовольствием выпилил, но увы, из песни слов не выкинешь.
Адаптировал под основные операционки, запилил смену цвета индикаторов и еще пихнул фичу — если начать вводить текст не в той раскладке, я жму хоткей и предыдущие слова переводятся в нужную раскладку.
Эта фича пока работает через жопу, но работает, править баги я пока не собираюсь, так что если хочешь, можешь пулреквестить, смержу.
Исходники, картинки тут
На этом я не остановился!
Товарищи из mastodon, закинули импрувмент — а что если для всей ОС сделать подобное?
Хе! Чем бы дитя не тешилось. Яж на Niri подсел, ну вот и поперла разработка. Следом был выпущен плагин или хуй пойми че — niri-layout-cursor.
niri-layout-cursor показывает текущую раскладку прямо возле указателя мыши во всей сессии niri. Иконка в системном трее открывает локальные настройки цветов, размера и интеграции с Obsidian.Интеграция с Обсидиан — если ты ранее ставил самый первый мой плагин, то оно не конфликтует, ну а если не ставил, то из коробки будет все работать.
Суть работы плагина — такой-же, индикатор присутствует постоянно во всей системе. Стало гораздо удобнее отслеживать глазами, не нужно постоянно переводить взгляд вверх, чтобы позырить чё там сейчас включено.
Как ставить и т.п. смотрим тут
Не навяливаю, мож у кого-то такие же боли как у меня, потыкайте, всегда готов к диалогу, пулреквестам и т.п. Звездочки мне в хуй не упёрлись, НО не откажусь, так что заранее — спасибо! На халяву и уксус сладкий.
Такие дела!
—
Please open Telegram to view this post
VIEW IN TELEGRAM