Creare collegamenti sul desktop con OpenSUSE

 

Per fare dei collegamenti in desktop evoluti come KDE, Gnome, ecc.. si può usare la stessa tecnica usata con Windows del creare un link trasportando l’applicazione e poi al rilascio sul desktop digli che è un link.

 

Ma questo è molto scarso!!! Esiste un modo per definire i vari menu di KDE molto semplicemente, tramite i .desktop ovvero dei descrittori di cosa fare e non solo per lanciare i programmi.

 

Negli esempio mi limiterò al KDE ma sappiate che più o meno avete le stesse possibilità in altri desktop Linux.

 

Userò negli esempi Firefox, quindi creare un lanciatore per lui. E negli esempi che devi usare la cartella di Giorgio. Ed ovviamente il desktop base e Dolphin. Quindi modificateli di conseguenza per ogni vostra esigenza.

 

Prima vediamo le basi, il lanciatore:

 

 

 

 

Creare un “.desktop”

Possiamo creare un file che descrive dove e come lanciare il programma.

 

Quindi basta che noi creiamo un file dal nome firefox.desktop.

​​ 

Attenzione che il nome sia corrispondente alla citazione del parametro name che metteremo poi dentro.

 

Dopo basta aprirlo con kwrite.

 

editiamo a mano i .desktop.

 

Inserendo i parametri giusti gli diciamo cosa e come fare, ma quali parametri?

Ecco vari esempi di parametri:

Ad esempio un…

​​ 

-Lanciatore che apre un URL http:

[Desktop Entry]
Type=Link
Terminal=false
URL=http://www.google.com
Hidden=false
Name=Google

 

Nota. Notare che il parametro “Type” è “link”

 

--Più generico usando xdg-open

 

[Desktop Entry]
Type=Link
Terminal=false
URL=xdg-open 'https://www.google.it'

Hidden=false
Name=MioBrowser

 

Nota: il programma xdg-open recupera il programma di default che serve per far partire il tipo che è descritto dopo, esempio, per far partire con il programma di default Okular per i PDF, il file documentazione.pdf, basta scrivere:

 

xdg-open 'documentazione.pdf'

 

Gli altri XDG sono:

  • xdg-desktop-menu – Installa gli item di menu desktop

  • xdg-desktop-icon – Installa le icone usate nel desktop

  • xdg-emailRichiama il programma email predefinito

  • xdg-icon-resource – Installa la risorsa delle icone

  • xdg-mime - Query e installa le MIME types e sue associazioni

  • xdg-openApre il file con l’applicazione predefinita dall’utente/OS

  • xdg-screensaverRichiama (Enable, disable, suspend) lo screensaver r predefinito

  • xdg-settingsRichiama tramite rowser predefinito un URL handlers.

Gli XDG sono script shell modificabili e eseguibili in

/usr/bin/

Guida:

https://www.freedesktop.org/wiki/Software/xdg-utils/


--Apri cartella

 

Un lanciatore che apre la cartella 'Scrivania' di Giorgio:

[Desktop Entry]
Type=Link
Terminal=false
URL=/home/giorgio/Scrivania/
Hidden=false
Name=Scrivania

 

Notare che è tipo “URL”

--Azione galleria

 

[Desktop Action Gallery]

Exec=fooview --gallery

Name=Browse Gallery

 

--Azione generica

 

[Desktop Action Create]

Exec=fooview --create-new

Name=Create a new Foo!

Icon=fooview-new

 

--Apri programma

Un lanciatore che fa partire un programma:

 

[Desktop Entry]
Type=Application
Terminal=false
Hidden=false
Name=Firefox
Exec=/usr/bin/firefox

Nota. Notare che il parametro “Type” è “application”.

 

--Altro

 

Possiamo combinare più comandi, ad esempio con uno “splash”:

 

[Desktop Entry]

Type=Application

Terminal=false

Exec=kdialog --title "Popup" --passivepopup ​​ "Facciamo una ricerca" 5

URL=http://www.google.com

Hidden=false

Name=prova

 

Esempio secondo:

[Desktop Entry]

Type=Application

Terminal=false

Exec=firefox | kdialog --title "Popup" --passivepopup ​​ "Facciamo una ricerca" 5

Hidden=false

Name=prova

 

Il popup appare per 5 secondi (il “5” che è dentro), il tempo che apre Firefox.

Che collegamenti si possono fare con le concatenazioni:

comando1 & comando2

esegue comando1, poi comando2

comando1 && comando2

esegue comando2 solo se comando1 viene completato correttamente

comando1 || comando2

esegue comando2 solo se comando1 non viene eseguito correttamente

(comando1 & comando2) && (comando3)

le parentesi raggruppano insiemi di comandi per l’esecuzione in base all’esito positivo

(comando1 & comando2) || (comando3)

le parentesi raggruppano insiemi di comandi per l’esecuzione in base alla mancata riuscita

 

--Considerazioni

 

Il parametro “Terminal” di solito va su false, altrimenti lo aprirà aprendolo da terminale (che vedete).

Il parametro “Hidden” di solito va su false, altrimenti diventa invisibile.

Il parametro “Name” di solito va con lo stesso del suo nome di file altrimenti fa casino.

 

Tutti i programmi (ad uso utente) li trovate in

/usr/bin/

 

Tutti i programmi (ad uso utente) ad uso particolare li trovate in

/opt/

Quelli di OS in

/bin/

Quelli di supporto OS in

/sbin/

--Altri comandi utili

 

Potete aggiungere..

Comment=

Contiene il commento che compare quando passate con il mouse sopra, esempio, Comment=”Browser Firefox, il migliore” : farà comparire un popup temporaneo con la scritta ”Browser Firefox, il migliore”quando passere con il mouse sopra.

Icon=firefox

Questo mette l’icona di Firefox (attenzione è case-sensitive), il resto delle icone, quindi dove metterle o trovare il nome, le trovate qui:

/usr/share/icons

o quelle di di “base” definito dallo standard

/usr/share/pixmaps/

 

Quindi scrivere

Icon=/usr/share/pixmaps/firefox.png

è identico!

 

Nota: le icone “Base” devono essere 32x32px o al massimo 48x48px in formato .png e/o .xpm (meglio entrambi)  ​​ ​​ ​​​​ ​​ 

 

OnlyShowIn=KDE;

Questo parametro dice che dovrà essere visibile solo se il Desktop è KDE se scriviamo “OnlyShowIn=KDE;GNOME;ICEWM” questa sarà visibile solo in KDE,Gnome, IceWM

NotShowIn=

Fa il contrario di ​​ OnlyShowIn=

Path=/home

Spostati, temporaneamente in questa cartella (esempio /home) per eseguire il comando, ovvero questa sarà la cartella di base ​​ per il comando.

Keywords=”figo; bello”

Serve per ricercare tramite tag (in questo caso il tag è “figo” e “bello”) l’applicazione.

URL[$e]=trash:/

Collegata all’applicazione, in questo caso della cartella di trash

Version=1.0

Numero di versione di quello che collega.

 

Notate che ​​ “Comment[it_IT]=” serve per i commenti in italiano, “Comment[fr_FR]” per quelli francesi e via di seguito, quindi quando questo si aggiunge al finale del nome del parametro (qualsiasi parametro), esempio “[it_IT]” questo che verrà usato (e non altri) se l’utente sceglie l’Italiano come lingua base.

 

Quindi, se per assurdo e per esempio, se avete

 

Exec[it_IT]=/usr/bin/firefox

Exec[fr_FR]=/usr/bin/chrome

 

Un utente francese avvierà Chrome mentre un utente italiano avvierà Firefox.

 

Per maggiori dettagli e altro:

https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html

 

--Passargli i valori sui parametri

Potete passare dei valori esterni ne caso che il .desktop sia chiamato da un programma.

I valori vengono rappresentati da un % e una lettera, ecco i vari:

 

 

Code

Description

%f

A single file name (including the path), even if multiple files are selected. The system reading the desktop entry should recognize that the program in question cannot handle multiple file arguments, and it should should probably spawn and execute multiple copies of a program for each selected file if the program is not able to handle additional file arguments. If files are not on the local file system (i.e. are on HTTP or FTP locations), the files will be copied to the local file system and %f will be expanded to point at the temporary file. Used for programs that do not understand the URL syntax.

%F

A list of files. Use for apps that can open several local files at once. Each file is passed as a separate argument to the executable program.

%u

A single URL. Local files may either be passed as file: URLs or as file path.

%U

A list of URLs. Each URL is passed as a separate argument to the executable program. Local files may either be passed as file: URLs or as file path.

%i

The Icon key of the desktop entry expanded as two arguments, first --icon and then the value of the Icon key. Should not expand to any arguments if the Icon key is empty or missing.

%c

The translated name of the application as listed in the appropriate Name key in the desktop entry.

%k

The location of the desktop file as either a URI (if for example gotten from the vfolder system) or a local filename or empty if no location is known.

 

%d,%D,%n,%N, %m, %v sono deprecati.

 

 

Dove Mettere e gestire menu

 

-Menu generale

Potete farlo con le utilità del desktop, oppure inserendo il “.desktop” direttamente in

/usr/share/applications/

 

-Autostart

Questi partiranno all’entrata del desktop (sessione) mettendo un .desktop in

/usr/share/autostart/

 

-Sottomenu (Service)

I sottomenu contestuali (quelli che appaiono sul desktop) specie di Dolphin:

/usr/share/kservices5/ServiceMenus/

o per specifico utente in

~/.local/share/kservices5/ServiceMenus/

 

per vedere le modifiche dovete riavviare Plasma session. In Dolphin basta chiudere il programma e riavviarlo.

​​ 

--Sotto-menu dei Service

Si può collegare e fare tutta una gerarchia di richiami, esempio ripreso da https://wiki.natenom.de/

In cui si aggiunge la voce “Remove Meta-Data (exiv2)” dalla voce “MetaInformation” ed entrambe non esistevano prima.

[Desktop Entry]

ServiceTypes=KonqPopupMenu/Plugin,image/*

Type=Service

Actions=rmd;

X-KDE-ServiceTypes=KonqPopupMenu/Plugin

MimeType=application/octet-stream;

X-KDE-Submenu=MetaInformation

 

[Desktop Action rmd]

Name=Remove Meta-Data (exiv2)

Icon=

Exec=exiv2 rm %U

 

Risultato:

esempio utile, aggiusta un jpg

[Desktop Entry]

ServiceTypes=KonqPopupMenu/Plugin,image/*

Type=Service

Actions=improvetextdoc;

X-KDE-ServiceTypes=KonqPopupMenu/Plugin

MimeType=application/octet-stream;

X-KDE-Submenu=Archive

 

[Desktop Action improvetextdoc]

Name=Improve document

Icon=

Exec=convert "%U" -morphology Convolve DoG:15,100,0 -negate -normalize -blur 0x1 -channel RBG -level 60%,91%,0.1 "%U.png"

 

Conclusioni

 

Come programmatore, la localizzazione/internalizzazioni (immettere traduzioni in un programma) che è stata adottata è un obbrobrio in quanto potevano centralizzarla in un database SQLite, se non farlo tutto, ma risulta come incompatibilità con i vecchi sistemi/programmi.

 

Comunque è un sistema molto potente per personalizzare tutto il reparto dei menu e lanciatori di KDE e simili.

 

 

Ciaooooooooooooooooooooooooooooo

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Precedente One Click su OpenSUSE Successivo BlueProximity in openSUSE