LINUX.ORG.RU

Борьба с помойкой KDE5 в $USER

 ,


0

0

KDE5 устраивает помойку в $USER/.config и $USER/.cache, поэтому возникает вопрос как с этим бороться.

Придумал вот какое решение.

Добавляем в LD_PRELOAD=kde_paths_fix.so (например, через /etc/profile.d/kde_fix_paths.sh).

Что делает kde_paths_fix.so: если запускается бинарник, который слинкован c libKF5ConfigCore.so.5, тогда меняем переменные среды XDG_CACHE_HOME и XDG_CONFIG_HOME на заранее заданные.

Поскольку hardcoded значения не есть комильфо, то можно читать переменные среды, например, KDE5_CACHE_DIR и KDE5_CONFIG_DIR.

Увы, я не C программист, и нет никаких идей как это написать. Было бы круто, если бы кто-то помог.

Я так понимаю, тут кода на одну страницу.

Cast i-rinat.

Вопрос обсуждали тут, но всем по фигу.

KDE5 устраивает помойку в $USER/.config и $USER/.cache, поэтому возникает вопрос как с этим бороться.

Я удалил KDE и у меня теперь чистота и порядок.

anonymous ()
Ответ на: комментарий от rumgot

интересно один только я пользуюсь линупсом лишь постольку-поскольку (вся сереверная инфраструктура работает на debian, docker и пр.) пишу код на целевой платформе и знаю не больше чем нужно для работы, ну а дома я использую линупс опять же потому что программировать на нем удобно И ВО ВСЕХ ЭТИХ ВАШИХ KDE НЕ РАЗБИРАЮСЬ???????????? поставил бубунту и забил, никогда даже не пытался рабочий стол сменить

tz4678 ()
Ответ на: комментарий от i-rinat

Проблема в:

  • Firefox
  • Palemoon
  • gtk
  • Clion
  • Atom
  • Android studio
  • cmake
  • dub
  • dbus
  • electron
  • fltk
  • easystroke
  • emacs
  • eclipse
  • gimp
  • idea
  • mono
  • npm
  • skype
  • steam
  • thunderbird
  • vscode

И других приложениях, которые срут конфигами и кешем непосредственно в $HOME, а не в $HOME/.config и $HOME/.cache

SR_team ★★★★ ()
Ответ на: комментарий от i-rinat

Писанина ТС выглядит как сарказм, думаю имелась в виду проблема именно тучи софта, которая пишет не в ~/.config и ~/.cache, ведь ~/.config с ~/.cache и так можно перенести, изменив переменные среды.

SR_team ★★★★ ()
Ответ на: комментарий от i-rinat

С ним-то в чём проблема?

Ты просто не видел, какую помойку там устраивает KDE. Например, файлы с неочевидными названиями прямо в ~/.config, а не в своих подкаталогах.

anonymous ()
Ответ на: комментарий от i-rinat

Приложения и должны писать в ~/.config и ~/.cache. В чём проблема-то?

он хочет «специальный загон» для специального софта(типо КДЕ и прочего)

ну сделать то можно, вообще изи

missxu ()
Ответ на: комментарий от anonymous

Например, файлы с неочевидными названиями прямо в ~/.config, а не в своих подкаталогах.

Не помню, чтобы в XDG Base Directory Specification было требование иметь отдельные директории.

Я ещё понимаю, почему напрягало большое количество файлов и директорий в ~. Но теперь большая часть в ~/.config. Ты туда что, часто лазишь? Зачем?

i-rinat ★★★★★ ()
Ответ на: комментарий от i-rinat

Да, спецификация не требует, но почему-то никто больше не разводит там помойку. И когда вдруг надо найти какой-то конфиг, это раздражает.

anonymous ()

КДЕ присосавшаяся к божественному qtcurve короче кочерга которая испортила дополнительные совместимости и возможно много других программ

anonymous ()
Ответ на: комментарий от i-rinat

Приложения должны писать в $XDG_CONFIG_HOME и $XDG_DATA_HOME и $XDG_CACHE_HOME, вот в чём проблема.

Любой пользователь (вроде ТС) должен иметь возможность переопределить эти переменные в профайле, чтобы не писать говнобиблиотеки для прелоада.

E ★★★ ()
Ответ на: комментарий от SR_team

Это давно уже не проблема. Большинство из этих приложений имеют ключи/переменные окружения для указания, где хранить настройки и данные. Из всего этого списка проблемы остаются только с dbus и проприетарными монстрами вроде андроид студии/эклипс.

E ★★★ ()
Ответ на: комментарий от E

На самом деле и eclipse, и android studio, и все остальное можно вынудить использовать правильные директории жонглируя переменныеми XDG_CONFIG_HOME, XDG_CACHE_HOME, HOME.Например FF вот так можно хранить конфиги в ~/.config:

XDG_CACHE_HOME="$HOME/.cache" XDG_CONFIG_HOME="$HOME/.config" HOME="$HOME/.config" firefox
Но вот директория с конфигами все равно будет скрыта

SR_team ★★★★ ()
Ответ на: комментарий от SR_team

XDG_CACHE_HOME=«$HOME/.cache» XDG_CONFIG_HOME=«$HOME/.config»

Это делает за тебя любой современный дистр. Именно поэтому это не поможет в случае eclipse/android studio - они могут просто игнорировать эти спецификации и продолжать срать в хомяк. К тому же, ты забыл про XDG_DATA_HOME.

HOME=«$HOME/.config»

А это - инфернальный костыль. Это помогло бы, конечно, но никогда так не делай и не предлагай никому, я надеюсь, не надо пояснять, почему.

А что тебе нужно было сделать, так это погуглить «firefox xdg» и найти там упоминание XRE_PROFILE_LOCAL_PATH.

E ★★★ ()
Ответ на: комментарий от Thetan

Не хотите реестра

Реестр тоже уже давно есть. Например, в ~/.config/dconf/user. Правда, там не просто свалка типизированных значений, как в реестре Windows, а набор схем с перечислением полей и граничных значений.

i-rinat ★★★★★ ()
Ответ на: комментарий от Thetan

Реестры не нужны, ~/.var/app/* наиболее логичный вариант, всегда ясно в какой директории данные конкретного приложения находятся, и не нужно их выискивать по всему ~/ или прочим реестрам.

anonymous ()
Ответ на: комментарий от i-rinat

Меня напрягает помойка в в том смысле, что логически все KDE приложения для меня - часть некой экосистемы, поэтому в идеале должны лежать в ~/.config/kde

Если посмотреть на ~/.cache, то там просто лютый ужас - какие-то бесконечные кэши плазмы, тем, QML и прочего говна ~ 200MB весом.

QML, слава богу, можно отключить, то мне не нужно ещё 100MB кэшей тем оформления - я бы их вынес в /tmp или /var/tmp, но, увы, не представляю как.

anonymous ()
Ответ на: комментарий от anonymous

Меня напрягает помойка в в том смысле, что логически все KDE приложения для меня - часть некой экосистемы, поэтому в идеале должны лежать в ~/.config/kde

Приложения KDE используют класс KConfig. Он в отдельном пакете, отдельной библиотекой. Так что по идее, достаточно его пропатчить и пересобрать. С остальными директориями — так же.

i-rinat ★★★★★ ()
Последнее исправление: i-rinat (всего исправлений: 1)
Ответ на: комментарий от i-rinat

Тут есть проблема - надо поднимать среду разработки для KDE - 100500 зависимостей.

Плюс, пересборка после каждого обновления KDE.

Плюс, придётся мирится с тем, что в системе самосборные пакеты - что не гуд для безопасности.

anonymous ()
Ответ на: комментарий от anonymous

Тут есть проблема - надо поднимать среду разработки для KDE - 100500 зависимостей.

Во-первых, это не проблема, если собираешь в chroot. С schroot это становится ещё проще. Первоначальная настройка там довольно простая и быстрая.

Во-вторых, из зависимостей там:

Build-Depends: cmake (>= 3.0~), debhelper (>= 11~), doxygen (>= 1.8.13~),
 extra-cmake-modules (>= 5.49.0~),  graphviz, libqt5sql5-sqlite,
 pkg-kde-tools (>= 0.15.15ubuntu1~), qtbase5-dev (>= 5.8.0~),
 qttools5-dev (>= 5.4), qttools5-dev-tools (>= 5.4)
Не так уж и много. Из KDE'шного — только pkg-kde-tools и extra-cmake-modules.

Плюс, пересборка после каждого обновления KDE.

Да, это неизбежное.

Плюс, придётся мирится с тем, что в системе самосборные пакеты - что не гуд для безопасности.

Как самосборные пакеты влияют на безопасность?

i-rinat ★★★★★ ()