Сайт | Скачать | Видео | Wiki

Автор Тема: И снова Spacefm,tint2, openbox.....  (Прочитано 14129 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Lego

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 900
  • Репутация: +60/-0
  • Автор темы
И снова Spacefm,tint2, openbox.....
« : 17 Июнь 2018, 10:30:06 »
Продолжаю мучить этот, в принципе неплохой файловый менеджер. Необходимости в нем нет, разминаюсь. Попробовал монтирование посредством udevil. Работает. Скомпилил udisks2 (without pokit), тоже работает. Пошустрее udevil (относительно). Но. И тому, и другому для монтирования требуется детальная информация об устройствах, которая, в моем случае предоставляется командой udevadm trigger  при старте WM (прописал в autostart.sh openbox). Однако это не срабатывает для CD/DVD, если в приводе в этот момент не было диска. Впоследствии udev не воспринимает ерзанье лотка привода как событие и соответственно не отрабатывает ни какого правила. Затык (наверняка просто не хватило мозгов). Прикостылил такое решение. Скрипт touch_cd :
Код
#!/bin/sh
exec touch /dev/sr0; udisksctl mount -b /dev/sr0
И кнопку его исполнения на панель.
Скрипт "пинает" CD/DVD-rom и в приводе "появляется" носитель, который уже можно монтировать-размонтировать. Если кто подскажет грамотное решение, буду рад поучиться.
« Последнее редактирование: 17 Июнь 2018, 11:41:36 от Lego »
AMD Phenom 9500 Quad-Core, GF-8600, 2gb RAM
Asus Eee PC-901 (Intel Atom N270, 1Gb RAM, 12Gb SSD)
Puppyrus-13.12-xfce-4.12

Оффлайн Lego

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 900
  • Репутация: +60/-0
  • Автор темы
Re: И снова Spacefm,tint2, openbox.....
« Ответ #1 : 17 Июнь 2018, 11:53:36 »
Едем дальше (видим чудо).... Индикатор раскладки клавиатуры. Панель tint не имеет собственного апплета, приходится добавлять сторонний. Какой? xxkb жутковато выглядит, насколько помню. Нет прозрачности вокруг флажка, квадратом эдаким. gxkb таковую прозрачность имеет, но имеет тенденцию наглухо зависать и грузить проц процентов под 60. Пока остановился на sbxkb. Настроек не имеет, но и весит модуль 44кб.
AMD Phenom 9500 Quad-Core, GF-8600, 2gb RAM
Asus Eee PC-901 (Intel Atom N270, 1Gb RAM, 12Gb SSD)
Puppyrus-13.12-xfce-4.12

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re: И снова Spacefm,tint2, openbox.....
« Ответ #2 : 17 Июнь 2018, 16:39:13 »
udevadm trigger
У меня вписано в /etc/inittab:
Код
::wait:/bin/mount -o remount,rw /
::wait:/bin/mount -a
::wait:/sbin/udevd --daemon
::wait:/sbin/udevadm trigger
.............
и при этом обхожусь без /etc/rc.d/rc.sysinit
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн Lego

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 900
  • Репутация: +60/-0
  • Автор темы
Re: И снова Spacefm,tint2, openbox.....
« Ответ #3 : 17 Июнь 2018, 16:46:19 »
А поподробнее, что меняет эта запись? Мне надо, чтобы по мере insert-eject компакт-дисков udevadm trigger отрабатывал.
AMD Phenom 9500 Quad-Core, GF-8600, 2gb RAM
Asus Eee PC-901 (Intel Atom N270, 1Gb RAM, 12Gb SSD)
Puppyrus-13.12-xfce-4.12

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re: И снова Spacefm,tint2, openbox.....
« Ответ #4 : 17 Июнь 2018, 17:53:17 »
А поподробнее, что меняет эта запись? Мне надо, чтобы по мере insert-eject компакт-дисков udevadm trigger отрабатывал.
Может лучше вписать эту команду в обработчик spacefm там есть монтирование-отмонтирование
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн Lego

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 900
  • Репутация: +60/-0
  • Автор темы
Re: И снова Spacefm,tint2, openbox.....
« Ответ #5 : 17 Июнь 2018, 18:13:24 »
В обработчике команды, свойственные конкретному "монтеру". Попросту, ругнется udevil либо udisksctrl, мол, не понимаю - чего ты хочешь. Упомянутая команда принадлежит udev. Проблема, не проблема, но дело в том, что CD/DVD приводы "двойные" устройства, т.е. как привод они нормально инициализируются udev. Но в большинстве своем они сами никак не сообщают, что в них вставлен диск. Надо "спрашивать", иначе команда монтирования не работает, монтировать то нечего. Пресловутый триггер и выводит инфу о болванке, iso9660 она или udf какая-нибудь. Заколдованный круг, блин. udevadm trigger надо однократно сработать при установке диска для определения его ФС, но вот кто б ему подсказал, что он есть в приводе.
« Последнее редактирование: 17 Июнь 2018, 18:25:40 от Lego »
AMD Phenom 9500 Quad-Core, GF-8600, 2gb RAM
Asus Eee PC-901 (Intel Atom N270, 1Gb RAM, 12Gb SSD)
Puppyrus-13.12-xfce-4.12

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
Re: И снова Spacefm,tint2, openbox.....
« Ответ #6 : 17 Июнь 2018, 20:56:17 »
 Стало тоже интересно. Spacefm с дефолтными настройками.
Устанавливаю udevil
Код
sudo pacman2pfs udevil
 Пакеты (1) udevil-0.4.4-3
Будет загружено:  0,08 MiB
:: Приступить к загрузке? [Y/n]

 Ничего дополнительно настраивать не пришлось. Все прекрасно работает. Монтирует/размонтирует HDD, флешки, sd0.
Но только под root (sudo spacefm). В PRA точка монтирования /mnt, под пользователем прав не хватает.
Код
 live@pra-roll:~$ spacefm --version
spacefm 1.0.6
GTK2 UDEV INOTIFY DESKTOP SNOTIFY

 В puppy должно прекрасно работать, там пользователь root.

P.s. Индикатор раскладки клавиатуры  в de-tint2-graph-gtk2 --> xxkb.
Нормально. :)

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re: И снова Spacefm,tint2, openbox.....
« Ответ #7 : 17 Июнь 2018, 21:26:19 »
А поподробнее, что меняет эта запись?
У меня она загружает модули ядра.
но вот кто б ему подсказал, что он есть в приводе.
Udev тут не моможет, udevadm monitor никак не реагирует на открывание лотка и загрузку диска. Но где-то в Google я находил решение, вот только не помню где.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
Re: И снова Spacefm,tint2, openbox.....
« Ответ #8 : 18 Июнь 2018, 01:32:16 »
Однако это не срабатывает для CD/DVD, если в приводе в этот момент не было диска
Включить опрос ядра
OLDER DISTROS: You may need to enable kernel polling for device media to be detected by udevil. For example, if you insert a CD and udevil's monitor command doesn't report a change to the device, or udevil doesn't see a filesystem on the device, this is a symptom that kernel polling is not enabled.

Kernel polling is a newer feature of the Linux kernel and udev, so some distros may not yet have it enabled by default. To use kernel polling, your Linux kernel may need to be 2.6.38 or newer, and udev may need to be version 173 or newer.

To determine if kernel polling is enabled:

    cat /sys/module/block/parameters/events_dfl_poll_msecs
    cat /sys/block/sr0/events_poll_msecs


If you get 0 or -1 from both of those commands, kernel polling may be disabled.
В статье несколько способов как включить опрос ядра.

Оффлайн Lego

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 900
  • Репутация: +60/-0
  • Автор темы
Re: И снова Spacefm,tint2, openbox.....
« Ответ #9 : 18 Июнь 2018, 04:55:30 »
Код
To enable kernel polling temporarily and immediately, enable common polling for the block module:

    sudo bash -c 'echo 2000 > /sys/module/block/parameters/events_dfl_poll_msecs'

OR you can enable polling just for a single device like this (/dev/sr0 in this example):

    sudo bash -c 'echo 2000 > /sys/block/sr0/events_poll_msecs'
Сработало. Без sudo, само сабой. С меня +. Теперь при выдвижении лотка - "нет носителя", при заталкивании обратно сответственно есть. Включить в Spacefm "автомонтирование" оптических - будет смонтирован. Причем сейчас у меня не udevil монтирует - udisks2. Вопрс второй - как их закрепить, изменения эти? В плане "чистой загрузки" (я не пользуюсь сохраненками, маленький my_profile.pfs леплю и всё)?
AMD Phenom 9500 Quad-Core, GF-8600, 2gb RAM
Asus Eee PC-901 (Intel Atom N270, 1Gb RAM, 12Gb SSD)
Puppyrus-13.12-xfce-4.12

Оффлайн Lego

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 900
  • Репутация: +60/-0
  • Автор темы
Re: И снова Spacefm,tint2, openbox.....
« Ответ #10 : 18 Июнь 2018, 05:48:55 »
Завернул эти команды в скрипт, запуск в autostart.sh Опенбокса. Еще одна приятность - нормальная реакция на кнопку eject, смонтирован ли, нет - просто срабатывает.
AMD Phenom 9500 Quad-Core, GF-8600, 2gb RAM
Asus Eee PC-901 (Intel Atom N270, 1Gb RAM, 12Gb SSD)
Puppyrus-13.12-xfce-4.12

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: И снова Spacefm,tint2, openbox.....
« Ответ #11 : 18 Июнь 2018, 09:43:46 »
xxkb жутковато выглядит,
Нарисуйте красивые флаги
Зато он в отличие от sbxkb (gtk2) TK независим, как и остальные компоненты : tint openbox
Если юзать mc = TK независимый ДЕ для "красноглазых"

Оффлайн Lego

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 900
  • Репутация: +60/-0
  • Автор темы
Re: И снова Spacefm,tint2, openbox.....
« Ответ #12 : 18 Июнь 2018, 12:03:12 »
Продолжим. Без критики и срача (это я себе). Т.к. тема обобщенная, интересует опыт построения динамического меню для openbox. Perl на борту нет.
Пока реализовал штатно+вручную добавлены пути к иконкам. Терпения хватило только на категории. Редактирование - obmenu (Python, хрен редьки не слаще)
« Последнее редактирование: 18 Июнь 2018, 12:40:25 от Lego »
AMD Phenom 9500 Quad-Core, GF-8600, 2gb RAM
Asus Eee PC-901 (Intel Atom N270, 1Gb RAM, 12Gb SSD)
Puppyrus-13.12-xfce-4.12

Оффлайн RoDoN

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 6282
  • Репутация: +141/-0
Re: И снова Spacefm,tint2, openbox.....
« Ответ #13 : 18 Июнь 2018, 12:41:10 »
ob-xdgmenu, если не хочешь тащить в систему menu-cache
Lenovo G500 (i3-3110M, 8 Гб, Intel + Radeon HD 8570)
PRA 16.12 JWM, Runtu 22.04 x64 XFCE

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: И снова Spacefm,tint2, openbox.....
« Ответ #14 : 18 Июнь 2018, 13:10:56 »
https://wiki.archlinux.org/index.php/Openbox_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#.D0.9C.D0.B5.D0.BD.D1.8E
ob-xdgmenu, если не хочешь тащить в систему menu-cache
Да. Причем оба gtk2
ob-xdgmenu можно закомпилить без gtk , но будет без иконок
Можно написать на sh или переделать С-шный для jwm

Можно вызывать стороннее меню
Есть find-n-run (скрипт на gtkdialog) из пупи. русифицировал, юзаю в пра
panther-launcher gtk3
synapse gtk2,3
Все перечисленное можно посмотреть в пра

Красноглазый метод : наделать хоткеев или вызывать из консоли
« Последнее редактирование: 18 Июнь 2018, 13:13:03 от sfs »