# Re: dumb
Difrex (dynamic,1) → nvkv – 14:28:22 2021-08-25
О, эта штука может пригодиться на очередном CTF :)
Difrex (dynamic,1) → nvkv – 14:28:22 2021-08-25
О, эта штука может пригодиться на очередном CTF :)
# Re: drawterm на 9front
hugeping (ping,1) → hugeping – 12:14:06 2021-11-07
Патч на drawterm, который включает fullscreen на X11
====
diff --git a/gui-x11/x11.c b/gui-x11/x11.c
index 74412f9..9dda3a5 100644
--- a/gui-x11/x11.c
+++ b/gui-x11/x11.c
@@ -190,6 +190,13 @@ flushmemscreen(Rectangle r)
XFlush(xdisplay);
}
+void fullscreen(Display* dpy, Window win)
+{
+ Atom atoms[2] = { XInternAtom(dpy, "_NET_WM_STATE_FULLSCREEN", False), None };
+ XChangeProperty(dpy, win, XInternAtom(dpy, "_NET_WM_STATE", False),
+ XA_ATOM, 32, PropModeReplace, atoms, 1);
>> Читать далее
hugeping (ping,1) → hugeping – 12:14:06 2021-11-07
Патч на drawterm, который включает fullscreen на X11
====
diff --git a/gui-x11/x11.c b/gui-x11/x11.c
index 74412f9..9dda3a5 100644
--- a/gui-x11/x11.c
+++ b/gui-x11/x11.c
@@ -190,6 +190,13 @@ flushmemscreen(Rectangle r)
XFlush(xdisplay);
}
+void fullscreen(Display* dpy, Window win)
+{
+ Atom atoms[2] = { XInternAtom(dpy, "_NET_WM_STATE_FULLSCREEN", False), None };
+ XChangeProperty(dpy, win, XInternAtom(dpy, "_NET_WM_STATE", False),
+ XA_ATOM, 32, PropModeReplace, atoms, 1);
>> Читать далее
# drawterm на 9front
hugeping (ping,1) → All – 09:14:03 2021-11-05
Настроил себе drawterm на малинку с 9front.
Причём, сделал это не так, как положено, а просто с помощью запуска скрипта из lib/profile. :)
Потому что я использую малинку и как terminal. Так что мне важно, чтобы она оставалась графической.
Вот скрипт:
====
#!/bin/rc
#auth/factotum -n -- uncomment this if you want new instance
echo 'key proto=p9sk1 dom=rpi4 user=glenda !password=pass' > /mnt/factotum/ctl
aux/listen1 -t tcp!*!17019 /rc/bin/service/tcp17019 &
====
Запускаю его из lib/profile ветки terminal.
drawterm вариант от 9front.
hugeping (ping,1) → All – 09:14:03 2021-11-05
Настроил себе drawterm на малинку с 9front.
Причём, сделал это не так, как положено, а просто с помощью запуска скрипта из lib/profile. :)
Потому что я использую малинку и как terminal. Так что мне важно, чтобы она оставалась графической.
Вот скрипт:
====
#!/bin/rc
#auth/factotum -n -- uncomment this if you want new instance
echo 'key proto=p9sk1 dom=rpi4 user=glenda !password=pass' > /mnt/factotum/ctl
aux/listen1 -t tcp!*!17019 /rc/bin/service/tcp17019 &
====
Запускаю его из lib/profile ветки terminal.
drawterm вариант от 9front.
# ACME в Linux: пишем почтовый клиент
hugeping (ping,1) → hugeping – 16:48:36 2021-10-13
Написал статью о том, как писал фронтенд к почте для acme:
ii://S4sJA2iZYo83k8ZnpjEX
hugeping (ping,1) → hugeping – 16:48:36 2021-10-13
Написал статью о том, как писал фронтенд к почте для acme:
ii://S4sJA2iZYo83k8ZnpjEX
# netsurf и iconv
hugeping (ping,1) → All – 21:11:57 2021-09-12
Те, кто пользуются 9front наверняка знают, что есть порт netsurf: https://github.com/netsurf-plan9/netsurf
К сожалению, порт собран без iconv поддержки. Поэтому некоторые сайты (например, opennet) открываются с убитой кодировкой.
Я взял iconv реализацию из openwrt и грязным образом прикрутил к netsurf. Положил в свой репозиторий: https://github.com/gl00my/plan9hacks
P.S. Кроме этого, у меня там есть ещё какие-то патчи, которые что-то исправляют в плане русского и шрифтов.
hugeping (ping,1) → All – 21:11:57 2021-09-12
Те, кто пользуются 9front наверняка знают, что есть порт netsurf: https://github.com/netsurf-plan9/netsurf
К сожалению, порт собран без iconv поддержки. Поэтому некоторые сайты (например, opennet) открываются с убитой кодировкой.
Я взял iconv реализацию из openwrt и грязным образом прикрутил к netsurf. Положил в свой репозиторий: https://github.com/gl00my/plan9hacks
P.S. Кроме этого, у меня там есть ещё какие-то патчи, которые что-то исправляют в плане русского и шрифтов.
# dumb
nvkv (ping,35) → hugeping – 19:47:14 2021-08-02
https://github.com/emptymonkey/dumb/
Полезная утилита для обрубания escape-последовательностей. Совершенно незаменимая штука в win-окнах Acme.
Что примечательно, написана целиком на lex.
Удобнее всего использовать через |&, если у вас свежий баш, тогда оба, stderr и stdout, будут завернуты в dumb
% zig build |& dumb
P.S. Edited: 2021-08-02 20:48:55
nvkv (ping,35) → hugeping – 19:47:14 2021-08-02
https://github.com/emptymonkey/dumb/
Полезная утилита для обрубания escape-последовательностей. Совершенно незаменимая штука в win-окнах Acme.
Что примечательно, написана целиком на lex.
Удобнее всего использовать через |&, если у вас свежий баш, тогда оба, stderr и stdout, будут завернуты в dumb
% zig build |& dumb
P.S. Edited: 2021-08-02 20:48:55
# shithub
hugeping (ping,1) → hugeping – 06:51:48 2021-07-27
https://shithub.us - git9 репозитории разного софта под 9front.
hugeping (ping,1) → hugeping – 06:51:48 2021-07-27
https://shithub.us - git9 репозитории разного софта под 9front.
# Re: Скрипты и заметки по ACME
hugeping (ping,1) → hugeping – 04:19:49 2021-03-10
Ещё скрипты и заметки: https://github.com/jinyangustc/acme-editor
hugeping (ping,1) → hugeping – 04:19:49 2021-03-10
Ещё скрипты и заметки: https://github.com/jinyangustc/acme-editor
# Plan9 от Bell Labs на русском
hugeping (ping,1) → hugeping – 07:40:47 2021-02-21
http://www.raaar.ru/unix/Plan9/Plan9.pdf
hugeping (ping,1) → hugeping – 07:40:47 2021-02-21
http://www.raaar.ru/unix/Plan9/Plan9.pdf
# Статья про export/import
hugeping (ping,1) → hugeping – 08:11:24 2021-02-19
https://9p.io/wiki/plan9/9p_services_using_srv,_listen,_exportfs,_import/index.html
hugeping (ping,1) → hugeping – 08:11:24 2021-02-19
https://9p.io/wiki/plan9/9p_services_using_srv,_listen,_exportfs,_import/index.html
# cwfs без WORM
hugeping (ping,1) → hugeping – 15:49:57 2021-02-18
Конфигурация cwfs без WORM:
http://docs.a-b.xyz/cwfs.html
hugeping (ping,1) → hugeping – 15:49:57 2021-02-18
Конфигурация cwfs без WORM:
http://docs.a-b.xyz/cwfs.html
# Скрипты и заметки по ACME
hugeping (ping,1) → hugeping – 07:33:59 2021-02-18
Несколько раз уже натыкался на этот репозиторий.
https://github.com/evbogdanov/acme
hugeping (ping,1) → hugeping – 07:33:59 2021-02-18
Несколько раз уже натыкался на этот репозиторий.
https://github.com/evbogdanov/acme
# Запуск нового экземпляра acme в plan9port
hugeping (ping,1) → hugeping – 21:48:59 2021-02-04
Если запустить acme из plan9port, а затем попробовать запустить его снова, то получим ошибку, вроде такой:
> 9pserve: announce unix!/tmp/ns.peter.:0/acme: Address already in use acme: can't post service: 9pserve failed
Поэтому, у меня есть простой скрипт, который запускает acme если он ещё не был запущен. А в последующие разы открывает файл через plumber в уже существующем экземпляре acme. Выглядит скрипт так:
====
#!/bin/sh
9
PAGER=nobs
MANPAGER=nobs
# Default font for Plan 9 programs.
font=/mnt/font/GoMono/14a/font
>> Читать далее
hugeping (ping,1) → hugeping – 21:48:59 2021-02-04
Если запустить acme из plan9port, а затем попробовать запустить его снова, то получим ошибку, вроде такой:
> 9pserve: announce unix!/tmp/ns.peter.:0/acme: Address already in use acme: can't post service: 9pserve failed
Поэтому, у меня есть простой скрипт, который запускает acme если он ещё не был запущен. А в последующие разы открывает файл через plumber в уже существующем экземпляре acme. Выглядит скрипт так:
====
#!/bin/sh
9
PAGER=nobs
MANPAGER=nobs
# Default font for Plan 9 programs.
font=/mnt/font/GoMono/14a/font
>> Читать далее
# Re: Интересные ресурсы
hugeping (ping,1) → hugeping – 13:25:44 2021-02-02
Описание rc на русском:
http://doc.cat-v.org/plan_9/translations/russian/papers/rc
hugeping (ping,1) → hugeping – 13:25:44 2021-02-02
Описание rc на русском:
http://doc.cat-v.org/plan_9/translations/russian/papers/rc
# Редактор ACME
hugeping (ping,1) → All – 12:17:21 2021-01-20
Я не буду писать руководство по этому редактору. Но мне хотелось в этой небольшой заметке обозначить главную идею редактора. Дело в том, что когда я начинал осваивать acme мне не хватало именно этого -- понимания центральной идеи, архитектуры. Что это вообще такое? Нечто, непохожее ни на один существующий редактор. Да как можно в нём работать?
А идея у acme оказалась простой и при этом мощной. Я в течении 2-х месяцев разрабатывал в нём игру с текстовым вводом, и это было удобно. Привык настолько, что забыл даже часть клавиатурных комбинаций emacs. :)
Итак, в чём идея acme? Идея acme состоит в том, чтобы дать прослойку между ОС и человеком в виде TUI. И это всё.
1) Acme - это просто столбцы, в которых могут создаваться "окна", отображающие текст. Просто текст, поток текста. Без цвета, стилей, номеров строк... Лишь текст.
2) Над окнами есть области, в которых тоже может быть текст, которые играют роль меню.
3) Меню и окнами можно управлять с помощью записи в специальные файлы. С помощью чтения, можно получать события и информацию о текущем содержимом окон и меню.
4) Вы можете "выполнять" команды системы прямо из текста и/или меню. Например, вызывать спеллчекер, форматирование кода, увеличение отступа -- всё это должно быть Unix командами, которые будут выполняться для всего текста или выделенной его части. Текст приходит через stdin и выходит через stdout. Текст может быть внедрён в редактируемый текст или отображаться в отдельном окне (например, ошибки компилятора). Скрипт может понимать, что он запущен из среды acme и управлять редактором через файловую систему!
5) Можно открывать и просматривать файлы/каталоги, переходить на нужные строки, делать поиск в тексте. Всё это делается "выполнением" текста. Есть базовая возможность делать обработку текста на языке, который похож на sed. (Встроенная команда Edit).
>> Читать далее
hugeping (ping,1) → All – 12:17:21 2021-01-20
Я не буду писать руководство по этому редактору. Но мне хотелось в этой небольшой заметке обозначить главную идею редактора. Дело в том, что когда я начинал осваивать acme мне не хватало именно этого -- понимания центральной идеи, архитектуры. Что это вообще такое? Нечто, непохожее ни на один существующий редактор. Да как можно в нём работать?
А идея у acme оказалась простой и при этом мощной. Я в течении 2-х месяцев разрабатывал в нём игру с текстовым вводом, и это было удобно. Привык настолько, что забыл даже часть клавиатурных комбинаций emacs. :)
Итак, в чём идея acme? Идея acme состоит в том, чтобы дать прослойку между ОС и человеком в виде TUI. И это всё.
1) Acme - это просто столбцы, в которых могут создаваться "окна", отображающие текст. Просто текст, поток текста. Без цвета, стилей, номеров строк... Лишь текст.
2) Над окнами есть области, в которых тоже может быть текст, которые играют роль меню.
3) Меню и окнами можно управлять с помощью записи в специальные файлы. С помощью чтения, можно получать события и информацию о текущем содержимом окон и меню.
4) Вы можете "выполнять" команды системы прямо из текста и/или меню. Например, вызывать спеллчекер, форматирование кода, увеличение отступа -- всё это должно быть Unix командами, которые будут выполняться для всего текста или выделенной его части. Текст приходит через stdin и выходит через stdout. Текст может быть внедрён в редактируемый текст или отображаться в отдельном окне (например, ошибки компилятора). Скрипт может понимать, что он запущен из среды acme и управлять редактором через файловую систему!
5) Можно открывать и просматривать файлы/каталоги, переходить на нужные строки, делать поиск в тексте. Всё это делается "выполнением" текста. Есть базовая возможность делать обработку текста на языке, который похож на sed. (Встроенная команда Edit).
>> Читать далее
# Читшит по командам Sam (Edit в ACME)
hugeping (ping,1) → hugeping – 09:15:58 2020-12-06
http://sam.cat-v.org/cheatsheet/sam-refcard.pdf
hugeping (ping,1) → hugeping – 09:15:58 2020-12-06
http://sam.cat-v.org/cheatsheet/sam-refcard.pdf
# Интересные ресурсы
hugeping (ping,1) → All – 20:06:33 2020-12-05
Сюда предлагаю добавлять ссылки на интересные ресурсы.
Документация по Plan 9 -- http://doc.cat-v.org/plan_9/
9front -- форк Plan 9 для современного железа -- http://9front.org/
9fans discord -- https://discord.gg/eu8VBUs
Русскоязычная телеграм группа -- https://t.me/ru_plan9
Plan 9 как десктоп -- https://pspodcasting.net/dan/blog/2019/plan9_desktop.html
Интересные заметки по 9front, например есть "рецепт" установки без fsworm партиции. -- http://docs.a-b.xyz/sitemap.html
Музыкальный плеер Zuke -- https://sr.ht/~ft/zuke/
>> Читать далее
hugeping (ping,1) → All – 20:06:33 2020-12-05
Сюда предлагаю добавлять ссылки на интересные ресурсы.
Документация по Plan 9 -- http://doc.cat-v.org/plan_9/
9front -- форк Plan 9 для современного железа -- http://9front.org/
9fans discord -- https://discord.gg/eu8VBUs
Русскоязычная телеграм группа -- https://t.me/ru_plan9
Plan 9 как десктоп -- https://pspodcasting.net/dan/blog/2019/plan9_desktop.html
Интересные заметки по 9front, например есть "рецепт" установки без fsworm партиции. -- http://docs.a-b.xyz/sitemap.html
Музыкальный плеер Zuke -- https://sr.ht/~ft/zuke/
>> Читать далее
# Эха по Plan 9
hugeping (ping,1) → All – 19:52:27 2020-12-05
Долго думал, создавать ли эху. Просто потому, что есть риск того, что она никогда не наполнится.
С другой стороны, уже несколько раз хотел где-то записать заметки/ссылки на интересные ресурсы и было негде. Так что, всё-таки создаю.
Если что, грохнуть всегда можно потом.
hugeping (ping,1) → All – 19:52:27 2020-12-05
Долго думал, создавать ли эху. Просто потому, что есть риск того, что она никогда не наполнится.
С другой стороны, уже несколько раз хотел где-то записать заметки/ссылки на интересные ресурсы и было негде. Так что, всё-таки создаю.
Если что, грохнуть всегда можно потом.
1