Come ottenere un service menu personalizzato su Kde Plasma 5

Onestamente penso che KDE Neon (con Plasma alla versione 5.13.4
nel momento in cui scrivo) sia il miglior sistema operativo un ottimo sistema operativo su cui poter lavorare.

KDE Neon è la distribuzione Linux creata, supervisionata e mantenuta dal team di KDE Plasma. Si basa sulla distribuzione stabile di Ubuntu, la 16.06 LTS (nel momento in cui scrivo) e su tutti gli aggiornamenti della KDE Plasma. In pratica si tratta di avere un sistema operativo sempre stabile - i cui unici aggiornamenti saranno quelli di sicurezza - come base, sopra al quale poggia un Desktop, Kde Plasma, sempre avanzato e con tutti gli aggiornamenti disponibili.

Uno dei maggiori punti di forza è l’assenza di applicazioni preinstallate inutili e ridondanti. Trovo questo un enorme pregio, soprattutto se penso a quanta spazzatura installa un Windows 10 pro o lo stesso Ubuntu. Molto più giusto avere lo stretto necessario ed indispensabile, e provvedere personalmente ad installare le sole applicazioni che riteniamo a noi utili.

Indubbiamente negli ultimi anni kde si è evoluto molto, ed è migliorato ad ogni rilascio, per cui sono solo contento e appagato da questo sistema operativo, però c'è una cosa di cui io (ma penso anche tanti altri) ho sentito la mancanza, ovvero i comodissimi service menu che erano disponibili in KDE 4. Infatti su plasma 5 la disposizione di alcune cartelle è stata modificata, per cui i service menu di kde 4 non funzionano su kde 5, se non dopo opportune modifiche.

In ogni caso, anche facendo le dovute ricerche su google, non sono riuscito a trovare nulla di già pronto da poter utilizzare sulla versione 5 di KDE, quindi ho messo insieme qualche "scriptino" bash da usare per i miei service menu su dolphin. Nell'archivio zip al momento sono presenti service menu per:

Ovviamente si possono aggiungere altre utili funzioni, che integrerò nel file scaricabile mano a mano che verranno aggiunte. Ci tengo a segnalare che gli script usati per la manipolazione delle immagini sono stati presi da Fred's ImageMagick Scripts, di Fred Weinhaus, un sito molto interessante dove potete trovare molti script e che vi consiglio di visitare. Anche per eventualmente modificare il comportamento degli script presenti in questi service menu, infatti sul sito dell'autore potete trovare gli esempi con i diversi argomenti per modificare il risultato delle elaborazioni in base al vostro gusto.

Istruzioni

Puoi procedere in due modi, il primo metodo consiste nell'eseguire i vari passaggi tramite lo script install.sh che ho preparato., il secondo metodo consiste nell'eseguire i vari passaggi manualmente seguendo le istruzioni riportate nel metodo 2.

Metodo 1

Se vuoi fare presto ho preparato un comodo script install.sh che esegue tutti i passaggi necessari per installare i service menu. Quindi scarica lo script install.sh nella tua home poi apri il terminale e rendi eseguibile lo script con il comando:

chmod +x install.sh

a questo punto non ti resta che eseguire lo script con il comando:

./install.sh

Durante l'esecuzione dello script ti verrà chiesta una conferma prima di eseguire ognuno dei sei passaggi, che sono:

  1. Installazione del pacchetto imagemagick (se lo avete già installato nel vostro sistema potete saltare questo passaggio).
  2. Download dell'archivio Zip. Verrà scaricato l'archivio in formato compresso contenente tutti i file desktop e gli script bash che servono per il service menu.
  3. Estrazione dei file. Verranno estratti i file dell'archivio Zip appena scaricato, al termine dell'estrazione vedrai una nuova cartella nominata servicemenu_kde5 nella tua home
  4. Spostamento dei file. Verranno posizionati i file desktop e gli script bash nelle giuste cartelle. gli script in /usr/local/bin/ e i file desktop in .local/share/kservices5/ServiceMenus/. Se le cartelle kservices5 e ServiceMenus non esistono verranno create automaticamente dallo script.
  5. Ricreazione della cache. Con il comando kbuildsycoca5 verrà ricreata la cache di configurazione del file system desktop KService. Questo passaggio potrebbe essere superfluo, perchè KService lo eseguirà se necessario, quando uno qualsiasi dei file i cui dati sono memorizzati nella cache vengono modificati. Ma visto che male non fa, per essere sicuri lo utilizzeremo lo stesso.
  6. Rimozione dei file non più necessari. Verranno rimossi i file non più necessari che hai scaricato, ovvero l'archivio Zip ancora presente nella tua home e la cartella prodotta dopo l'estrazione del file Zip.

infine, terminata l'esecuzione dello script puoi eliminare anche il file install.sh e goderti il tuo service menu : )

Metodo 2

Se preferisci l'installazione manuale di seguito trovi le istruzioni. I file .desktop possono essere archiviati in due posizioni diverse in base alle tue preferenze, se vuoi che i service menu siano disponibili solo per il tuo utente vanno messi in:

~/.local/share/kservices5/ServiceMenus/

per un'installazione a livello di sistema invece vanno messi in:

/usr/share/kservices5/ServiceMenus/

Successivamente, la sessione plasma deve essere riavviata con il comando che segue:

kbuildsycoca5

Detto questo possiamo iniziare, occorre installare (se non già presente) il pacchetto imagemagick, con il comando:

sudo apt install imagemagick

Adesso puoi scaricare l'archivio Zip contenente tutti i file necessari per il service menu con il comando:

wget https://rodolforizzo.it/download/service-menu-kde-5/servicemenu_kde5.zip

poi estrai nella tua home la cartella che contiene i file necessari:

unzip servicemenu_kde5.zip

spostiamo i file .desktop nella cartella ~/.local/share/kservices5/ServiceMenus/ (se si vuole rendere disponibili i service menu solo per il tuo utente). Per renderli disponibili a livello di sistema, come già detto vanno messi in /usr/share/kservices5/ServiceMenus/. Se la cartella dove vanno posizionati i file non esiste occorre crearla.

cp servicemenu_kde5/desktop_file/*.desktop ~/.local/share/kservices5/ServiceMenus/

Ora diamo i permessi di esecuzione agli script bash con il comando:

chmod +x servicemenu_kde5/script_bash/*

e poi li copiamo in /usr/local/bin/ con il comando:

sudo cp servicemenu_kde5/script_bash/* /usr/local/bin/

normalmente non c'è bisogno di eseguire direttamente questo comando, dal momento che KService lo eseguirà se necessario, quando uno qualsiasi dei file i cui dati sono memorizzati nella cache vengono modificati. Ma se per qualche motivo dovesse servire potete eseguire kbuildsycoca5 ricreando la cache di configurazione del file system desktop KService con il comando:

kbuildsycoca5

Infine possiamo rimuovere i file non più necessari, ovvero l'archivio Zip ancora presente nella tua home e la cartella prodotta dopo l'estrazione del file Zip, con questi due comandi:

rm servicemenu_kde5.zip rm -rf servicemenu_kde5

adesso puoi goderti i tuoi nuovi service menu! 🙂

Per testarne il funzionamento puoi aprire Dolphin e cliccare con il tasto destro del mouse su un'immagine e sotto la voce Azioni vedrai che ora sono presenti le nuove voci: Converti in, Effetti, Ridimensionare, Ruotare. Mentre se clicchi col destro su un pdf vedrai anche le voci relative ai pdf.

Con il tempo aggiungerò  altri script al service menu, se questi ti sono piaciuti e li hai trovati utili non perderti gli aggiornamenti a questo post e iscriviti alla newsletter - in questo modo riceverai una notifica via mail quando il post viene aggiornato o quando viene pubblicato un nuovo articolo.

Se riscontri problemi fammelo sapere scrivendo un messaggio nei commenti qui sotto!

Un portfolio fotografico semplice da gestire

In questo articolo propongo una soluzione davvero semplice per chi vuole gestire in completa autonomia un portfolio fotografico senza dover chiamare il suo webmaster ogni volta che vuole aggiungere o modificare una galleria.

Un sito di portfolio fotografico facilmente modificabile da un cliente. Il fotografo può modificare le gallerie esistenti o creare nuove gallerie senza dover prendere in mano il telefono e chiamarti.

Wix? No grazie!

Io sconsiglio vivamente di creare un portfolio fotografico (o qualsiasi altro progetto) con Wix per svariati motivi, i tre principali li riassumo di seguito:

Usare un plugin dedicato con WordPress?

Facendo una ricerca su google per trovare risultati in merito alla creazione di un portfolio fotografico in WordPress, quasi tutti propongono l’utilizzo di plugin dedicati, alcuni gratuiti altri a pagamento e tutti promettono di semplificarti la vita, ma non è sempre cosi. Molte volte anzi, si rivelano poi complicati da gestire.

E se non voglio utilizzare un plugin dedicato?

In verità si può ottenere un bellissimo portfolio fotografico anche senza l’ausilio di plugin dedicati. WordPress mette a disposizione tutto il necessario. Con il metodo usato nell’esempio sono stati utilizzati due plugin (che servono ad espandere le funzionalità di WordPress), uno è Custom Post Type UI per creare un tipo di post personalizzato per le gallerie e l’altro è Advanced Custom Fields per creare un campo Galleria per le gallerie stesse. Questo è un esempio del risultato che si ottiene:

Guarda la demo

Con questa soluzione sarà semplice per il fotografo aggiornare il suo portfolio, basterà infatti aprire la galleria, aggiungere o modificare le immagini come si fa normalmente con il gestore di media di WordPress, salvare e il gioco è fatto. Le modifiche saranno visibili sul sito web.

In questo video puoi vedere come è facile aggiornare il portfolio aggiungendo nuove foto:

 

Conclusione

Se vuoi realizzare il tuo Portfolio Fotografico e vuoi che sia semplice da utilizzare, in modo da poterti concentrare su quello che più conta (i tuoi scatti), allora credo che questa sia la soluzione perfetta. Contattami per ulteriori informazioni o per creare il tuo portfolio.

Grazie a youtube-dl è diventato semplice scaricare la musica da youtube e fino ad oggi ho sempre usato un comodo script bash da usare nel terminale, che funziona benissimo, ma ho voluto provare a dotarlo di una semplice GUI, (Graphical User Interface) un interfaccia grafica, e per raggiungere lo scopo mi sono avvalso di Zenity.

Come funziona?

Come già detto, lo script che ho chiamato zenTube.sh si appoggia all’'ormai famoso e ottimo software youtube-dl, che svolge il grosso del lavoro ed è reperibile nei repository della maggior parte delle distribuzioni linux. Su ubuntu e derivate è facilmente installabile con il comando:

sudo apt install youtube-dl

É anche possibile scaricare e installare la versione più recente direttamente sito ufficile del progetto.

Uno degli aspetti interessanti di questo script (che ho chiamato zentube, dall’‘unione delle parole Zenity e Youtube), è che visualizza anche una barra di avanzamento durante il download. Inoltre i file scaricati vengono anche taggati in automatico da youtube-dl tramite l’'opzione –add-metadata. Le dipendenze necessarie per utilizzare lo script sono:

in ogni caso lo script è ampiamente commentato in tutte le sue parti e si può facilmente modificare per adattarlo alle proprie esigenze. La parte più complessa è senza dubbio quella relativa alla barra di avanzamento, per la quale è stato necessario utilizzare una espressione regolare per ottenere l’'output di cui ha bisogno zenity per produrla. E per questa parte di codice bisogna ringraziare Terdon, un moderatore del sito askubuntu.com.

la parte saliente è questa:

#download del video in zenity con barra di avanzamento
youtube-dl --extract-audio --audio-quality 0 --newline --audio-format mp3 -o "$nuovo_nome.%(ext)s" \
$url |
grep --line-buffered -oP ''^\[download\].*?\K([0-9.]+\%|#\d+ of \d)'' |
zenity --progress \
--title="Download" \
--text="Provo a scaricare il video da youtube e convertirlo in mp3. Downloading..." \
--percentage=0[/shell]

Nel post su askubuntu.com si possono ottenere maggiori informazioni in merito al funzionamento della regex e ad altri accorgimenti (per esempio aggiungere più url dalla riga di comando).

Installazione

Ovviamente occorre avere installato nel proprio sistema i pacchetti zenity, youtube-dl e ffmpeg, che possono essere facilmente installati con il comando:

sudo apt install zenity youtube-dl ffmpeg

Per prima cosa occorre creare un lanciatore nel menu di avvio delle applicazioni, prima però scarichiamo l’‘icona da usare nel nostro menu,

wget https://rodolforizzo.it/download/zenTube/zentube-icon.png

e posizioniamola all’‘interno della cartella /usr/share/pixmaps per fare questo apriamo il terminale nella cartella dove avete salvato l’'icona e digitiamo il comando:

sudo mv zentube-icon.png /usr/share/pixmaps

fatto questo, apriamo l’'editor del menu di kde con il comando:

kmenuedit

e premiamo invio, si aprirà la finestra di kmenuedit. Posizioniamoci sulla voce  “Internet” clicchiamo in alto sul pulsante “Nuova voce” e nella finestra che appare inseriamo il nome della nuova voce, per esempio “zenTube” e premiamo su “ok”.

Ora in “Descrizione” mettiamo “Download musica da youtube”, in commento possiamo lasciare vuoto e in “comando” inseriamo:

local/bin/zenTube.sh -- %u

Adesso clicchiamo sul piccolo riquadro a destra per assegnare alla nuova voce di menu la nostra icona appena scaricata, in “sorgente icone” selezioniamo “Altre icone” e poi clicchiamo sulla nostra icona chiamata zntube-icon.png.

quindi premiamo sul pulsante “Salva” in alto a sinistra e chiudiamo la finestra.

Adesso non ci resta che scaricare lo script e salvarlo all’'interno della home e poi dargli i permessi di esecuzione con il comando:

chmod 755 zenTube.sh

infine spostarlo nella cartella /usr/local/bin con il comando:

sudo mv zenTube.sh /usr/local/bin

Ora puoi testare il corretto funzionamento lanciando il programma che dovrebbe comparire nel menu di avvio delle applicazioni sotto la voce Internet. Se riscontri problemi o se hai qualche domanda puoi scrivere nei commenti. Alla prossima!

E qualcuno dirà che c'è un modo migliore

Per fare pulizia nella tua Home directory, in questo articolo ti propongo uno script bash che ho chiamato order_home_folder.sh e che ti consentirà di mantenere in ordine la tua home directory ovvero la “casa” degli utenti ordinari del sistema. Durante lo svolgimento di varie attività al pc, è quasi inevitabile che nella home, la directory principale degli utenti di sistemi operativi basati su linux, con il tempo ci si ritrovi una quantità di file, usati sul momento e poi abbandonati e dimenticati formano una sorta di giacenza, più o meno grande di file.

Per pigrizia, uno li lascia li, magari ripromettendosi di fare pulizia non appena si avrà un po’ di tempo, ma di solito questa “pulizia” viene procastinata a lungo, rendendo poi difficile il rintracciamento di nuovi file “freschi” in uso al momento, perchè confusi nelle folla di file vecchi e di intralcio.

Uno script per la pulizia della home

Il nostro script ci viene incontro effettuando una pulizia accurata, spostando i file in una cartella che ho chiamato Archivio la quale contiene altre sottocartelle, rispettivamente:

Archivio
├── Documenti
├── Immagini
├── Musica
├── Scripts
└── Videos

L’idea iniziale, mentre mi accingevo a scrivere questo post, era di spiegare per filo e per segno i comandi principali che compongono lo script, tuttavia, molto probabilmente potresti spiegarli meglio di me oppure sei un principiante assoluto e non hai nozioni del linguaggio di scripting della Shell Unix e in questo caso ti basterà sapere come salvare, dare i permessi di esecuzione e lanciare lo script.

Anche se non sai esattamente cosa sta facendo, basta che funzioni no?

Comunque ho cercato di commentare i vari passaggi direttamente nello script. Avrei voluto anche aggiungere una parte di codice che si occupasse di creare le varie cartelle che compongono la struttura con a capo la directory Archivio, nel caso queste non esistessero, ma per adesso dovrai crearle te Ho aggiunto il comando per verificare se esiste la struttura della directory Archivio con le sue sotto directory e se non esista la crea. La parte dello script che si occupa di questo è la seguente:

## Controllo se esiste la struttura della directory Archivio e se non esiste la creo
if [ ! -d ~/Archivio ]; then
  mkdir -p Archivio/{Documenti,Immagini,Musica,Scripts,Videos};
fi

Quindi dopo aver scaricato lo script, a meno che la tua cartella Home non si chiami rodolfo, dovrai modificare il file sostituendo le parti /home/rodolfo con il percorso corretto della tua Home. Poi dovrai spostare lo script in /usr/local/bin (così da poterlo lanciare da qualunque posizione del filesystem, essendo /usr/local/bin uno dei path di sistema) e dargli i permessi di esecuzione con il comando:

sudo chmod +x /usr/local/bin/order_home_folder.sh

Provando lo script ti accorgerai che in un attimo i tuoi file dispersi per la home saranno spostati ognuno nella cartella appropriata, le immagini dentro Archivio/Immagini, i documenti nella cartella /Archivio/Documenti, gli scripts sh nella cartella Archivio/Scripts e via dicendo… Per concludere il discorso, è vero che con questo espediente la tua home directory risulterà molto più ordinata, ma è anche vero che, sebbene ordinati per tipo di file, con il tempo anche le cartelle sotto Archivio potrebbero diventare corpose, soprattutto quella delle immagini, io personalmente le svuoto una volta ogni due o tre mesi. Se hai domande non esitare a scrivere nei commenti in fondo a questo post.

Per questa sera è tutto, alla prossima.