цікаве
вхід на веб-морду моторолкіних ретриків.
ім’я – motorola, пароль – серійний номер ретріка
Нотатки программера-мізантропа
цікаве
вхід на веб-морду моторолкіних ретриків.
ім’я – motorola, пароль – серійний номер ретріка
Є у cps від hytera дуже годна фішка – коли додаєш шифрування, ключі генеруються автоматично. У моторол з цим погано, і фантазії не завжди вистачає
Звісно, є купа всякого софта для вирішення цієї задачі, але мені не дуже подобається ставити незрозуміло що. Тому накидав досить простий скрипт на
PowerShell. Ключ генерується довжиною 64 символи, перший та останній – літерні (тобто в діапазоні A-F). Якщо треба інші довжина ключа – задайте потрібне значення змінної $ksz
Для зручності запуску можна створити ярлик з таким командним рядком – powershell -NoLogo -NonInteractive -WindowStyle hidden -ExecutionPolicy bypass -File c:\path\to\rnd.ps1
Старі записи зберігу, але відтепер виключно українська мова
напомнили тут
chmod -x `which chmod`
можно победить при помощи
/lib*/ld-*.so.2 `which chmod` +x `which chmod`
Внезапно обнаружил, что g_file_set_contents() наглым и бесцеремонным образом херит права доступа к файлу. В частности, за счет того, что сначала создается временный файл, затем удаляется существующий и временный помещается на его место, напрочь выпиливается взведенный исполнимый бит. Так что это омерзительное поведение стоит учитывать при написании своего кода
поскольку вышел gtk4, и в третью версию новшества вноситься не будут, закину те правки, которые использую сам
может, кому и пригодится
В GTK практически весь интерфейс строится на виджетах, как системных, так и своих, т.к. иногда удобнее создать свой композитный виджет, нежели заморачиваться с охапкой разрозненных функций. Эклектика не всегда рулит
В очередной раз скопипастив какой-то из своих композитов и наслаждаясь emacs-овой контекстной заменой (вообще прелесть, т.к. учитывает регистр заменяемого), начал подозревать, что как-то это не то и не оно. Китайчатиной пованивает, да и до черта лаж из-за собственной невнимательности вылезает. В результате накидал небольшой perl-овый скриптик для генерации шаблона виджета. скриптик здесь. в качестве единственно аргумента передается имя будущего виджета в виде MyWidget (т.е. капитализированные префикс и имя без пробелов и прочих подчеркиваний).
Попался мне такой зверь в составе последнего ПТК. Драйвер в ядре вроде есть, но работает как-то странно. Точнее вообще не работает.
После разбирательств оказалось, что хотя железка и поддерживает режимы RS232/RS422/RS485, и даже соответствующие дефайны в драйвере присутствуют, но инициализируются порты только в RS232, а возможности изменить режим через setserial или напрямую через ioctl(TIOCSSERIAL,…) нет по причине отсутствия реализации ioctl (любых) в собственно драйвере.
Драйвера, стянутые с сайта мохи мне сразу не понравились. Лапша и оверхед, который включает в себя еще и собственную похаченую реализацию usb-serial. Ну их
Сначала думал запилилить реализацию ioctl в драйвер, но потом решил – нахер мне этот гемор, когда установить режим мне нужно только один раз, и менять его в последствии я не собираюсь.
Потому обошелся обычной опцией. Патчик, кому надо. Добавляет опцию modes – массив до 16 чисел, начальные режимы каждого из портов
--- linux/drivers/usb/serial/mxuport.c.orig 2020-09-03 12:19:28.000000000 +0300 +++ linux/drivers/usb/serial/mxuport.c 2020-09-07 09:37:25.653498042 +0300 @@ -155,6 +155,9 @@ #define MX_UPORT_8_PORT BIT(2) #define MX_UPORT_16_PORT BIT(3) +/* initial ports modes */ +static int modes[16] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + /* This structure holds all of the local port information */ struct mxuport_port { u8 mcr_state; /* Last MCR state */ @@ -1136,10 +1139,11 @@ if (err) return err; - /* Set interface (RS-232) */ + /* Set interface mode (RS-232/RS-422/RS-485) */ + dev_info(&serial->interface->dev, "Set port %d to mode %d\n", + port->port_number, modes[port->port_number]); return mxuport_send_ctrl_urb(serial, RQ_VENDOR_SET_INTERFACE, - MX_INT_RS232, - port->port_number); + modes[port->port_number], port->port_number); } static int mxuport_alloc_write_urb(struct usb_serial *serial, @@ -1398,3 +1402,6 @@ MODULE_AUTHOR("Andrew Lunn <andrew@lunn.ch>"); MODULE_AUTHOR("<support@moxa.com>"); MODULE_LICENSE("GPL"); + +module_param_array(modes, int, NULL, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); +MODULE_PARM_DESC(modes, "Initial modes for ports (up to 16). 0 - RS232, 1 - RS485(2W), 2 - RS422, 3 - RS485(4W)");
в процессе портирования sylpheed на gtk3 понадобилось преобразовывать представление цветов из GdkColor в GdkRGBA. в результате написал небольшую тулзинку. может, кому и пригодится
1 /* 2 * Output GdkRGBA representation of specified color 3 * 4 * compile: gcc -pipe -O2 -o rgba $(pkg-config --cflags --libs gdk-3.0) rgba.c 5 */ 6 7 #include <gdk/gdk.h> 8 9 int 10 main (int argc, char *argv[]) 11 { 12 GdkRGBA color; 13 14 if (argc < 2) 15 { 16 fprintf (stderr, "Usage: rgba <colorspec>\n"); 17 return 1; 18 } 19 20 if (!gdk_rgba_parse (&color, argv[1])) 21 { 22 fprintf (stderr, "Unable to parse color %s\n", argv[1]); 23 return 1; 24 } 25 26 printf ("{%.3f, %.3f, %.3f, %.3f}\n", color.red, color.green, color.blue, color.alpha); 27 28 return 0; 29 }
GTK такой GTK, все скатывается и скатывается. Впрочем, как и все, к чему прикладывают свои лапки различные копрорации. Хипсетрство, помноженное на некомпетенстность и возведенное в степень внезапно возникшего спроса. Результат – пиздетс.
Попытки скрестить ежа с ужом, а десктопный look&feel с мобильным в одном api – идея изначально убогая и технически крайне сложно реализуемая, зато открывает богатые возможности для пиздобольства и рекламных заманух, что крайне любо манагерам. В случае gtk – это ебанутое баловство с css, вместо нормальных движков, отрисовывающих виджеты и отказ от каких-либо альтернатив.
Продовжити читання “Пуркуа gtk3 тормозит или уебаны дорвались…”
Блокировка экрана – вещь, в принципе, архиполезная. Иногда. Для некоторых
В поисках идеала попробовал разные тулзины, в итоге остановился на xtrlock. Практически идеал. Но вот эта голубая блямба в виде замка сильно мозолила глаз. Пришлось поправлять
чудаки на букву м выпилили поддержку битмап шрифтов из pango, начиная с версии 1.44
меня это в принципе, не особо и жарило, любимый terminus используется преимущественно в urxvt и emacs, которые от pango не зависят, да еще и в консоли.
но вот конфигурялка urxvt, которая использует yad, и, как следствие, зависит от всего gtk стека, таки начала сбоить.
ну ладно. как там у высоцкого – зачем мне считаться шпаной и бандитом луддитом и ретроградом? решил сделать все стильно, модно, молодежно. но вот все эти ваши inconsolata-ы и прочие droid mono не вперли аж ни разу. голая консоль еще куда ни шло, Cyr_a8x16 решает. но в иксах заменой terminus-у может быть только terminus, для прочего хипстерства я уже слишком стар
готовые ttf варианты не канают, потому что не используют нужный/привычный мне набор патчей (dv1 ij1 ll2 td1). но шустрый гуглеж привел к mkttf, что позволило сгенерировать нужный мне шрифт без особых проблем.
результат можно взять здесь
ну и все любят картинки
простой способ удалить пустоты в начале и конце переменной для bash
line=" line with spaces "
trimmed=$(echo $line)
Хотеть иконку. В urxvt. Согласно ewmh, а не костылями fvwm. И чтобы без всяких –enable-pixbuf и прочего свистяще-пердящего барахла, тянущего лишние зависимости типа gdk-pixbuf
Ну чо, хотеть – сделать. На то он и опенсорц. Иконки, согласно ewmh, задаются через XChangeProperty
и атом _NET_WM_ICON
. Собственно атом – массив чисел, описывающих иконку. Иконок в одном атоме может быть несколько. Первые два слова описания иконки – размер, дальше пиксели в формате ARGB. Основной фокус – эти числа получить
Понадобилось вызывать всплывающее меню. По “горячей клавише”. Из любого места. Есть для этого такая маленькая приятная либа – keybinder. И как отдельная либа хороша, и в свой код интегрируется легко, т.к. в либе всего один файл с кодом. В общем – прелесть. Вот только меню из обработчиков хоткеев всплывать не желает, хоть ты тресни. Любое другое действие – пожалуйста. Меню – хрен тебе на воротник, а не меню. Причем, тот же самый код для вызова меню прекрасно работает, если его дергать через механизмы GApplication. Такая вот омерзительность.