Видео смотреть бесплатно

Смотреть жесткое видео

Официальный сайт toppromotion 24/7/365

Смотреть видео бесплатно

Uzix 23.04.2011 20:43

Tips & tricksМеню монтирования в OpenBox

Буду краток. Давеча, не найдя готового, написал вот такую штуку:



Итак, код:

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/bin/sh
case "$1" in
openn)
rox $(mount |grep $2 |awk '{print $3}')
;;
moope)
$0 mount $2
$0 openn $2
;;
mount)
LABEL="$(/sbin/blkid -o udev /dev/$2 |grep ID_FS_LABEL\= |awk -F'=' '{print $2}')"
test -z "$LABEL" && LABEL=$2
notify-send -c device.added -i gnome-dev-removable "Монтирование $2" "Точка монтирования: $LABEL"
pmount /dev/$2 "$LABEL"
;;
umoun)
notify-send -i gnome-dev-removable "Отмонтирование $2" "Точка монтирования: $(mount |grep $2 |awk '{print $3}')"
pumount $3 /dev/$2
if < $? -eq 0 >; then notify-send -u low -c device.removed -i gnome-dev-removable "Устройство $2 отмонтировано" "Теперь это устройство можно безопасно извлечь"
else notify-send -u critical -c device.removed -i gnome-dev-removable "Устройство $2 НЕ отмонтировано" "$(lsof $(mount |grep $2 |awk '{print $3}')|awk '{printf $1"("$2") "}')"
fi
;;
umoul)
$0 umoun $2 --lazy
;;
esac
test -n "$*" && exit
echo "<openbox_pipe_menu>"
echo "<separator label=\"Закладки\" />"
for bookmark in `sed 's/< ><^ >*$//' .gtk-bookmarks |sed s/file\://
` ; do
echo '<item label="'`basename ${bookmark}`'">'
echo '<action name="Execute"><execute>'
echo "rox ${bookmark}"
echo '</execute></action>'
echo '</item>'
done
echo "<separator label=\"Устройства\" />"
for i in /sys/block/sd*/; do cd $i; for ii in sd*; do
test -r $ii || continue
test ${ii%?} = sda && continue
VENDOR=$(cat $i/device/vendor |sed 's/ *$//g')
MODEL=$(cat $i/device/model |sed 's/ *$//g')
echo "<menu id=\"$ii\" label=\"$ii <$VENDOR - $MODEL>\">"
echo "<separator label=\"Действия над $ii\"/>"
echo "<item id=\"${ii}_openn\" label=\"Открыть\">"
echo "<action name=\"Execute\"><execute>$0 openn $ii </execute></action>"
echo "</item>"
echo "<item id=\"${ii}_moope\" label=\"Монтировать и открыть\" >"
echo "<action name=\"Execute\"><execute>$0 moope $ii</execute></action>"
echo "</item>"
echo "<item id=\"${ii}_mount\" label=\"Монтировать\" >"
echo "<action name=\"Execute\"><execute>$0 mount $ii</execute></action>"
echo "</item>"
echo "<item id=\"${ii}_umoun\" label=\"Отмонтировать\" >"
echo "<action name=\"Execute\"><execute>$0 umoun $ii</execute></action>"
echo "</item>"
echo "<item id=\"${ii}_umoul\" label=\"Отмонт. принудительно\" >"
echo "<action name=\"Execute\"><execute>$0 umoul $ii</execute></action>"
echo "</item>"
echo "<separator/>"
echo "<item id=\"${ii}_imntpt\" label=\"Точка монт.: $(mount |grep $ii |awk '{print $3}')\" />"
# echo "<item id=\"${ii}_ilabal\" label=\"Метка: $(/sbin/blkid /dev/$ii)\" />"
echo "</menu>"
done; cd -; done
echo "</openbox_pipe_menu>"


Как видно из кода, необходимы pmount, blkid, notify-send, rox (или другой файл-менеджер).


Использование - прописать в menu.xml что-то вроде такого:

1
<menu id="mounts" label="Монтирование" execute="~/.config/openbox/mountmenu.sh" />


Чтобы заменить файл-менеджер, отредактируйте строки 5 и 37. Чтобы добавить игнорируемые скриптом диски, отредактируйте строку 45.


Тэги:
+ 13 -
Похожие Поделиться

Uzix 23.04.2011 21:21 #
+ 0 -
Что-то в зависимости от ширины окна браузера номера строк разъезжаются...
predator 24.04.2011 00:11 #
+ 0 -
Кажется в 37 строке регулярка неправильно обработалась парсером
kstep 24.04.2011 07:44 #
+ 0 -
Вместо двойного пайпа:
grep ID_FS_LABEL\= |awk -F'=' '{print $2}'
можно написать один:
awk -F'=' '/^ID_FS_LABEL=/{print $2}'

И это во всём скрипте.
hz 28.04.2011 16:05 #
+ 0 -
а ещё можно объединить пункты меню "Открыть" и "Монтировать и открыть" в "Открыть", в котором проверяется примонтирован ли диск и если
нет - монтируем и открываем,
да - просто открываем
caxap 02.05.2011 00:27 #
+ 0 -
Переделал тоже самое под pekwm, нужно кому?
exelens 02.05.2011 00:29 #
+ 0 -
Пости со скриншотом, лишним не будет.
RodionD 28.06.2011 00:57 #
+ 0 -
А может подскажете, у меня говорит "Неверный выход меню канала /home/rodion/.config/openbox"
При руном запуке скрипта вижу, что xml структура нарушается в 2-х местах следующим образом:
# ./mountmenu.sh


/home/rodion/.config/openbox

...

/home/rodion/.config/openbox
/home/rodion/.config/openbox

откуда берутся ссылки на пути запуска скрипта?

Смотреть онлайн бесплатно

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн