to post messages and comments.

Оказалось, что нельзя запускать XFCE командой startxfce4 из сосноли, тогда не отрабатываются файлы в /etc/X11/xinit/xinitrc.d/.
Пришлось создать файл .xinitrc, прописать туда выполнение этих файлов и запуск startxfce4.
Теперь всё работает.

Какое-то время назад обновление dbus сломало gnome-keyring, поэтому мне пришлось зафиксировать версию dbus-1.10.0-2.

Но теперь с такой версией нормально не запускается система, не стартует systemd-logind.

Загрузился по старинке с init=/bin/bash, обновил dbus, а как теперь перезагрузиться? Команда reboot не работает, потому что нет dbus и systemd. Получается, только кнопкой можно перезагрузиться?

Перезагрзился кнопкой, обновился, gnome-keyring не работает.

<<That said, I have to admit to being particularly disappointed with the performance argument for merging it. Having looked at the dbus performance, and come to the conclusion that the reason dbus performs abysmally badly is just pure shit user space code, I am not AT ALL impressed by the performance argument. We don't merge kernel code just because user space was written by a retarded monkey on crack. Kernel code has higher standards, and yes, that also means that it tends to perform better, but no, "user space code is shit" is not a valid reason for pushing things into the kernel.>>

from Linus Torvalds lkml.org

А Патрик (гентушный) нашёл ещё пару прекрасных цитат в спецификации dbus:

"some sort of string of bytes, not necessarily UTF-8, not including '\0'"



Ну это ещё ничего, а теперь готовтесь:

"Returns the security context used by SELinux, in an unspecified format. If you know what this means, please contribute documentation via the D-Bus bug tracking system"

Т.е. в спецификации написано, что мы что-то тут написали, но не знаем что это и как работает, если вы умный и знаете, то пожалуйста расскажите.

Ещё банальность: чем меньшэ ядро, тем лучшэ. Поскольку ядро очень трудно отлажывать, и ошыбки в нём дорого обходятся. По сути, это многопоточное приложэние без какого-либо ограничения доступа.
Вот я совершэнно уверен, что вносить в ядро драйвера USB-устройств (включая USB-hdd) было ошыбкой. А уж ttyACM/ttyUSB — очень болезненной ошыбкой.
Вот если ip в ядре — это нормально, то поводу tcp... Ну, есть варианты. Хотя и тожэ можно. То есть, понятно, что он решает: для деления приложэний по портам потребовался бы либо два context switch на read(), либо эклектический ip-стэк с внутренним роутером пакетов на базе байт по смещениям.
Но вот следующий уровень тащить туда, message broker — это, извините, вообще идиотизм. Существенно большый, чем тащить в ядро web server. Поскольку web server в ядре, при сопоставимом уровне абстракцыи, хотя бы теоретически можэт сделать хоть что-то полезное — ускорить там синтэтический тэст.
kdbus делает только вредные вещи: ограничивает ipc локальным компьютэром, и более ничего.

К.о. внезапно обнаружил, что в xmonad.hs можно через dbus интегрировать что угодно. Например, сейчас вот интегрировал себе таким образом pidgin: окошки с чятиками раскидываются по workspace-ам в соответствии с группами, заведёнными в pidgin. Потенциально можно ещё чего-нибудь придумывать из этого.

как правильно в нотификейшне указать какой именно файл изменился? попробовал засунуть в ссылку(<a href></a>, даже попробовал с протоколом file:///) и всё хорошо, только ссылка открывается в браузере(хроме), вместо файлового менеджера(долфина)
если что делаю всё через dbus

Ну что же. В очередной раз подтверждается что писатели gnome те еще пидарасы. Убил полдня разбираясь почему оно не ловит signal. Все оказалось очень просто. Товарищи из gnome за каким-то чертом добавил GVariant хотя реально все маппится в GValue. В результате хотя код валиден, ноо получаем на выходе не работающую софтину.

Сраные кретины. Вам нужен маршаллер. Ок. Как его мне сделать под вот эту штуку. Ну воспользуетесь glib-genmarshal. Ок. WTF?! Где массивы? И тишина. В одном месте нашел нужное и не понятно что откуда оно генерилось. Спрашивается нахуя делать такие маршаллеры которые хрен пойми откуда берутся и хрен пойми как работают?

Вот какого хуя wmii умеет получать евенты без автосгенеренных идентификаторов, без описания жавапидорского абстрактного интерфейса, чисто чиклом в шелл-скрипте и консольной утилитой к 9P протоколу?

Я ложил хуй на потери про десериализации, я не гоняю 100000 евентов в секунду на дохлом огрызке калькурятора.

Какого хуя вам не хватает colon-separated, жсона или yaml?

По сети данные мы гоняем к человекопонятным restfull интерфейсам, а на десктопе в цитадели Пгавельности и Юниксвейности у нас блядь ебаные интерфейсы, автогенеренные идентификаторы и бинарный протокол.

Гоните этих пидарасов ссаным тапком!

Активировать известное подключение NetworkManager:
dbus-send --system --type=method_call --print-reply \
--dest=org.freedesktop.NetworkManager \
/org/freedesktop/NetworkManager \
org.freedesktop.NetworkManager.ActivateConnection \
string:'org.freedesktop.NetworkManagerUserSettings' \
objpath:/org/freedesktop/NetworkManagerSettings/4 \
objpath:/ objpath:/

Олсо, в сорсах network-manager есть достаточно функциональный examples/python/vpn.py.

как оказалось, у clementine нет столь привычной после mpdшных клиентов команды --now-playing, зато есть DBus интерфейс — посему пришлось выкручиваться на питоне: paste.in.ua ; еще одно неприятно открытие связано с функцией logCmd из пакета XMonad.Utils.Loggers, заставить ее выполнять "python ..." так и не получилось, несмотря на то, что в набросанном на скорую руку примере, использующим (как и logCmd) runInteractiveCommand все работало на ура ...

вчера казалось, что TH — это что-то крышесносящее. Но ничо, въехал кое-как, вполне можно писать (хоть и синтаксис аля перл). А сегодня пытался разобраться с интерфейсом к avahi через dbus — вот это действительно что-то с чем-то. Интерфейс самого dbus убойный, у avahi ещё хлеще...

В общем все это зло и ненависть, но жить с этим как-то приходится, по сему. Чтобы смонтирвать раздел /dev/sdc1, с правами юзера, средствами хала и dbus, применим вот такое нечто:
$> dbus-send --system --print-reply --dest=org.freedesktop.Hal "$(hal-find-by-property --key block.device --string /dev/sdc1)" org.freedesktop.Hal.Device.Volume.Mount string:"backup" string: array:string:

а размонтироваться можно путем
$> dbus-send --system --print-reply --dest=org.freedesktop.Hal "$(hal-find-by-property --key block.device --string /dev/sdc1)" org.freedesktop.Hal.Device.Volume.Unmount  array:string: