Как да създадете елементи от контекстното меню в KDE
Когато щракнете с десния бутон върху файлове, можете да добавите свои собствени елементи към падащото меню. За да направите това, създайте специални .desktop файлове в следните пътища: В KDE 3
/.kde/share/apps/konqueror/servicemenus/ В KDE 4
/.kde/share/kde4/services/ServiceMenus/ Ето пример за елемент от менюто за изпращане на файл чрез bluetooth в KDE 4. Тъй като естественият bluetooth беше спонтанен аборт на съвременната технология, използвам gnome sender.
[Desktop Action bluetooth] Exec=gnome-obex-send %U Icon=preferences-system-bluetooth Name=Изпращане чрез bluetooth
Сега малко обяснение.Секция [Desktop Entry]Тип- типът на .desktop файла трябва да е услуга.Действия- тук действията са изброени разделени с точка и запетая (действие1;действие2;), всяко от които трябва да съответства на раздел ([Действие за работния плот1], [Действие за работния плот2]).ServiceTypes- mime-типове на файлове, разделени със запетаи, all/allfiles съответства на всички файлове, all/all съответства на всички файлове и директории, KonqPopupMenu/Plugin - не работи с всички типове файлове без него.X-KDE-Priority- това е необходимо за kde4, не разбирам съвсем защо.X-KDE-Submenu=подменю - тази опция трябва да се добави, ако искате да обвиете действията в отделно подменю, наречено "подменю".
Секция [Desktop Action name]Exec- команда за изпълнение, %U е името на файла, на който сме извикали менюто.Икона- име на икона.Име- текст, показан като елемент от менюто.
Ако е необходимо да създадете елемент за всички потребители, а не само за текущия, тогава създаваме файлове, които не са в него
/.kde/ и /usr/ по същите пътища.
Коментари (41)
Страхотен. ТОГАВА вече можете да направите „изпращане на USB диск“
Възможно е, ако можете да съставите команда за копиране в yusb. Също така мисля, че би било полезно да се направят точки: отворете папка под root и редактирайте под root. Ако някой измисли полезна команда, изложете я, може да е полезна за обществото.
[Desktop Action editAsRoot] Exec=kdesu kwrite %U Icon=kate Name=Редактиране като root
Да, няма нищо сложно. Само че нямам идея как да организирам кода, така че да се показват няколко устройства (ако има такива)
Вероятно само ако сканирате устройства с нещо и създавате .desktop файлове, когато ги намерите.
Можете да инсталирате този пакет (jaunty) и разделът на контекстното меню „Root Actions“ ще се появи с куп всякакви функции
WOW, благодаря! =) По темата! Точно това беше необходимо.
1) шифрирайте файла с паролата "123", дешифрирайте го с паролата "123".
Ако сте вкъщи под Linux, пак можете да помислите за сигурност. Тогава файловете, съхранявани на флаш устройство, винаги са изложени на риск да бъдат изгубени в неподходящи ръце.
2) конвертиране на съдържанието на html страницата (всеки текстов файл) от едно кодиране (западноевропейско например) в друго (UTF-8 - завинаги). Същото важи и за mp3 таговете.
3) презапишете мястото, заето от този файл, с нули или боклук, за да не позволите този файл да бъде възстановен по никакъв начин.
4) вземете хеша на този файл (e2k, md5sum, торент хеш и т.н.)
Можеш да измислиш още приложения, някой би споделил техните реализации.
Отново нищо сложно, освен че ще има проблеми с криптирането.
Исках да споделя готови файлове ;)
Разбира се, в основните случаи стандартната работа няма да е достатъчна. Следователно ще трябва да се коригират програмите. Например скриптове на python.
3) изтрийте пространството, заето от този файл, с нули или боклук, за да нене позволявайте този файл да бъде възстановен по никакъв начин. Лично аз търсех такава функция и намерих реализация. Леко промених вече завършения елемент за себе си: #Изпраща елементи към командата за унищожаване. #Направено от Джош Барик #
/.kde4/share/kde4/services/ServiceMenus/ #Насладете се! Всички предложения могат да бъдат изпратени до [имейл защитено]
[Desktop Action Shred] Name=Изтриване за постоянно Icon=trash-empty Exec=shred -u -f -z -n7 %u
Нека обясня значението на командатаshred:
-u -n7- изтриване на файл след презаписване с n=7 пропуска за презапис (по подразбиране 25 пропуска)-f- промяна на разрешенията за запис, ако е необходимо-z- скрива "следите за почистване" чрез добавяне на нули в края на файла
Единственото ограничение:shredработи само с файлове и не може да изтрива папки + не винаги работи правилно с ext3/ext4
Мога да взема всичко от списъка. Например получаване на хешове, изтриване, криптиране. Освен, разбира се, ако някой не се нуждае от това.
Като цяло написах това, което беше постоянно необходимо в живота или беше използвано от други програми.
За Soi-Fong - написах предложенията си на онези гурута, които ще измислят имплементация за 3 секунди, но все още не знаят къде да приложат тази реализация :-)
За да конвертирате mp3, можете да закрепите посочения конвейер на програмата към реалностите на един файл (този, който ще бъде под десния бутон) find -iname '*.mp3' -print0 xargs -0 mid3iconv -eCP1251 --remove-v1 Взето от темата за Amarok: http://kubuntu.ru/amarok.html
Отворете папката като root:[Desktop Entry] Type=Service Actions=OpenAsRoot ServiceTypes=KonqPopupMenu/Plugin,inode/directory X-KDE-Priority=TopLevel
[Desktop Action OpenAsRoot] Exec=kdesu dolphin %U Icon=system-file-manager Име=Отворете като root.
И как можете да накарате елементите от контекстното меню да се показват не само когато щракнете върху файл или папка, но и когато щракнете върху работния плот, например, за да стартирате често използвани програми, като текстообработваща програма или mc? И има ли някъде списък с всички възможни ServiceTypes?
Цитат от тук: http://hell11.net/content/view/22/88888893/ За да работим бързо със 7zip архиви, трябва да създадем два файла: 7z.desktop и un7z.desktop. Първият ще се използва за опаковане на файлове в архив, вторият за разопаковане на 7zip архиви.
Във файла 7z.desktop въвеждаме следните редове:
[Desktop Entry] ServiceTypes=all/allfiles,inode/directory Encoding=UTF-8 Actions=Create7zArhive
[Desktop Action Create7zArhive] Name[en]=Създаване на *.7z архив Exec=7z a %u.7z %u Icon=ark
И във файла un7z.desktop въвеждаме следните редове:
[Desktop Entry] Encoding=UTF-8 ServiceTypes=application/x-7z Actions=Unpacking7zArhive
[Desktop Action Unpacking7zArhive] Name[en]=Разопаковане на *.7z архив Exec=7z e %F Icon=ark
Но няма такава инструкция, само за kde4? :)
[Desktop Action MountISO] Name=Монтиране на ISO в /media/iso/ Exec= mount -o loop -t iso9660 %U /media/iso/
TODO: - всъщност "guy sudo" -- никога не се е налагало да го използвам; - автоматично създаване на папка /media/iso, ако не съществува.
Все още няколко. идеи по същата тема:
- Създаване на ISO изображение от избрани файлове/папки (използване наmkisofs) - Запис на ISO изображение на диск (използване наcdrecord)
Страхотна бележка! Благодаря :) Ще пробвам.
[Desktop Action addTo7Zip] Name=Компресиране до 7-Zip Name[en]=Създаване на 7-Zip архив Icon=utilities-file-archiver Exec=ark –changetofirstpath –add –autofilename7z %F
никой не може да ми каже защо това не работи в kubuntu 8.10 kde4,2,1?
просто псува и отваря дъгата
За KDE 4 трябва да го коригирате по следния начин:Type=Service- добавете Actions=action;- изисква се точка и запетая в края ServiceTypes=KonqPopupMenu/Plugin, . - добавете този mime-типX-KDE-Priority=TopLevel- добавете Типовете файлове могат да бъдат намерени в свойствата на всеки файл чрез натискане на бутона с клавиша, ще бъде изписано най-отгоре под заглавието
Но мога ли по някакъв начин да го свържа с bluetooth ?? или кой пакет да инсталирам за gnome bluetooth? Намерих само bluez, но не мога да разбера как да го използвам (дори го няма в менюто)
Хареса ми идеята, седнах на елемента „Изпращане до преносимо устройство“. Вечерта се надявам да свърша тази работа! Във връзка с това възникна въпросът: как мога да проследя връзката / прекъсването на сменяемо устройство? Все още използвам командата за монтиране като тази, в която дефинирам монтираните флаш устройства, но може би това може да се направи по по-красив (удобен) начин?))
Като цяло изпълних елемента от менюто „Изпращане до преносимо устройство“. Можете да го получите (архивиран) тук. Скриптът check-devices.sh трябва да се добави при стартиране. Този скрипт с интервал от 1 сек. сканира устройства, монтирани в папката /media. Ако има промени в списъка, тогава се стартира скриптът add-sendto-items.sh, който се намира в същата директория - генерира файла /home/`whoami`/.kde/share/kde4/services/ServiceMenus/SendTo.desktop с описание на менюто. За всеки случай, ето кодовете за скриптове 1. check-devices.sh: #!/bin/bash OldState= #Безкраен цикъл. В него с интервал от 1 секунда сканираме устройства, монтирани в папката / media. Ако има промени в списъка, стартирайте скриптаadd-sendto-items.sh намиращ се в същата директория. while [ 1 ]; do NewState=`mount awk '' grep "^\/media"` if [ "$NewState" != "$OldState" ]; след това ./add-sendto-items.sh fi OldState=$NewState sleep 1 done exit 0 2. add-sendto-items.sh: #!/bin/bash
ListOfItems= #Вземете списък с монтирани устройства. Избира устройства, монтирани в /media ListOfDevices=`mount awk '' grep "^\/media"`
#След това съставете поредица от имена на устройства, разделени с ";". Резултатът се поставя в променливата $Actions for Device в $ListOfDevices; направи Действия+="`echo $Device sed 's/^\/.*\///'`;" готово