Calendari CalDav sincronizzati e gestiti da terminale [Update]

Circa un anno e mezzo fa avevo scritto l’articolo: Calendari CalDav sincronizzati e gestiti da terminale. Questo articolo serve come aggiornamento, dato che sono in parte cambiati i passaggi di installazione e configurazione.
Partitrò quindi direttamente dalle fasi di installazione, saltando il cappello introduttivo.

Installazione

Per i passaggi di installazione prendo, come al solito, a riferimento l’attuale Debian stabile:

[email protected]:~# lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 8.6 (jessie)
Release:	8.6
Codename:	jessie

Installare pip3:

[email protected]:~# apt install python3-pip

Installare quindi khal (vdirsyncer viene installato come dipendenza):

[email protected]:~# pip3 install khal

Configurazione

Creare le direcotry necessarie:

[email protected]:~$ mkdir -p ~/.vdirsyncer/status ~/.calendars

Editare con il proprio editor di testo preferito il file ~/.vdirsyncer/config; qui sotto vi propongo un file di configurazione di esempio:

[general]
# A folder where vdirsyncer can store some metadata about each pair.
status_path = "~/.vdirsyncer/status/"
 
 
# CALDAV
[pair caldav_calendar]
a = "caldav_calendar_local"
b = "caldav_calendar_remote"
# Edit collections with your caldav calendar name (real name, not friendly name!)
# "personal" and "shared" labels are only examples. Instead, put your real caldav calendar name.
collections = ["personal", "shared"]
 
[storage caldav_calendar_local]
type = "filesystem"
path = "~/.calendars/"
fileext = ".ics"
 
[storage caldav_calendar_remote]
type = "caldav"
url = "https://mysite.caldav/caldav/"
username = "MYUSER"
password = "MYPASSWORD"
# verify_fingerprint and verify are useful only if you connect to self signed https caldav resource
#verify_fingerprint = "XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX"
#verify = false

Ora occorre far “scoprire” i calendari a vdirsyncer:

[email protected]:~$ vdirsyncer discover caldav_calendar
Discovering collections for pair caldav_calendar
caldav_calendar_local:
caldav_calendar_remote:
  - "shared" ("Agenda condivisa")
  - "personal" ("La mia Agenda")
warning: No collection "personal" found for storage caldav_calendar_local.
Should vdirsyncer attempt to create it? [y/N]: y
warning: No collection "shared" found for storage caldav_calendar_local.
Should vdirsyncer attempt to create it? [y/N]: y
Saved for caldav_calendar: collections = ["personal", "shared"]

Dopo l’operazione di discover è finalmente possibile fare un primo sync:

[email protected]:~$ vdirsyncer sync

È ora possibile configurare khal; viene fatto tutto “quasi” in automatico con il comando khal configure:

[email protected]:~$ khal configure
What ordering of year, month, date do you want to use? (You can choose the separator in the next step)
[0] year month day
[1] day month year
[2] month day year
Please choose one of the above options: 1

Now, please choose a separator
[0] -
[1] .
[2] /
Please choose one of the above options: 0
Does this look sensible to you: %d-%m-%Y (today as an example: 16-12-2016)? [y/N]: y

What timeformat do you want to use?
[0] 24 hour clock (recommended)
[1] 12 hour clock
Please choose one of the above options [0]: 0
Does this look sensible to you: %H:%M (current time as an example: 08:31)? [y/N]: y

If you use vdirsyncer to sync with CalDAV servers, we can try to load its config file and add your calendars to khal's config.
Should we try to load vdirsyncer's config? [Y/n]: y
The following collections were found:
  caldav_calendar_local: ~/.calendars/

Do you want to write the config to ~/.config/khal/khal.conf? (Choosing `No` will abort) [y/N]: y
created directory ~/.config/khal
Successfully wrote configuration to ~/.config/khal/khal.conf

Ora potete usare il comando “khal” per visualizzare il calendario e “khal interactive” per modificare gli eventi.

Automazione

Per mantenere tutto sincronizzato consiglio di adottare questo script (da salvare in /usr/bin):

#!/bin/bash
#Script /usr/bin/caldav_sync.sh
#Sicnronizzo i calendari caldav con vdirsync


#Controllo che ci sia una connessione a internet attiva
test_conn=$(nmcli g|grep -c "collegato (solo local)")
if [ $test_conn -eq 0 ]; then
	vdirsyncer sync
fi
exit 0

e quindi di far eseguire lo script da cron, aggiungendo la riga seguente al vostro crontab personale (il comando, da dare col vostro utente, è “crontab -e”):

*/10 * * * *	/usr/bin/caldav_sync.sh

Conky

Infine, se volete avere sempre sott’occhio i vostri appuntamenti, valutate la possibilità di usare questo file di configurazione di conky (riguardo a Conky, vi rimando ad un altro articolo):

# Gap between borders of screen and text
# Same thing as passing -x at command line
gap_x 25
gap_y 25

# Use Xft?
use_xft yes

# Xft font when Xft is enabled
#xftfont Bitstream Vera Sans Mono:size=7
#xftfont Terminus:size=9

# Text alpha when using Xft
xftalpha 0.8

# Update interval in seconds
update_interval 1.0

# This is the number of times Conky will update before quitting.
# Set to zero to run forever.
total_run_times 0

# Create own window instead of using desktop (required in nautilus)
own_window yes
#own_window_colour grey
own_window_transparent yes
own_window_argb_visual yes
own_window_argb_value 255
own_window_type normal
own_window_class conky-semi
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

# Use a background image
background yes

# Use double buffering (reduces flicker, may not work for everyone)
double_buffer yes

# Minimum size of text area
#minimum_size 300 200

# Maximum width of widget
maximum_width 600

# Draw shades?
draw_shades yes

# Draw outlines?
draw_outline no

# Draw borders around text
draw_borders no
draw_graph_borders yes

# Stippled borders?
#stippled_borders 8

# border margins
#border_margin 4

# border width
#border_width 1

# Default colors and also border colors
default_color white
color2 9fee62 # System is up to date
color3 ff4343 # Red - Number of Updates Available

default_shade_color black
default_outline_color white

# Text alignment, other possible values are commented
alignment top_right

# Subtract file system buffers from used memory?
no_buffers yes

# Set to yes if you want all text to be in uppercase
uppercase no

# Number of cpu samples to average
# set to 1 to disable averaging
cpu_avg_samples 2

# Number of net samples to average
# Set to 1 to disable averaging
#net_avg_samples 2

# Force UTF8? note that UTF8 support required XFT
override_utf8_locale yes

# Width and thickness of ${hr 2} bar separator
default_bar_size 150 5

# Lua rounded corners requirements
lua_load ~/.conky/draw_bg.lua
lua_draw_hook_pre draw_bg 
imlib_cache_size 0

# Distance of text from edge of widget
border_outer_margin 10

TEXT
${alignc}${font AvantGardeLTMedium:bold:size=12}${color Tan1}AGENDA${font}${color}
${font Andale Mono:size=9}${execi 300 khal calendar}${font}

Buon divertimento!

Uno script conky per visualizzare lo stato di Caps Lock e Num Lock

[da wikipedia]: Conky è un monitor di sistema per distribuzioni GNU/Linux che utilizzano l’X Window System, disponibile per Linux e FreeBSD

Ho creato questo script quando mi sono accorto che Xfce non prevede un’applet da aggiungere al pannello per visualizzare lo stato di Caps e Num Lock.
Tale applet è infatti a tutt’oggi nella wish list delle desiderata per questo desktop environment.
Nell’attesa che venga realizzata, e in generale per tutti i WM che non prevedono questa funzionalità, propongo uno script di conky da aggiungere alla vostra configurazione.
Lo zip che potrete scaricare in calce all’articolo contiene due files, entrambi da copiare nella vostra directory .conky all’interno della vostra HOME.
Allo script sh è necessario dare i privilegi di esecuzione, aprendo un terminale e digitando:

[email protected]:~$ chmod +x ~/.conky/caps_num.sh

La seconda configurazione da fare riguarda la posizione in cui volete che appaiano le notifiche sul desktop; la posizione predefinita è bottom left (in basso a sinistra) perché personalmente utilizzo un pannello verticale, in stile deskbar.
Le posizioni possibili sono: in basso a destra o sinistra e in alto a destra o sinistra, e sono configurabili aprendo con un editor di testo il file ~/.conky/my.caps-num.
Occorre commentare/decommentare le righe volute di questo pezzo di file di configurazione:

# Text alignment, other possible values are commented
alignment bottom_left
#alignment top_right
#alignment bottom_right
#alignment top_left

Per una buona resa occorre che lo spazio in cui andrete a posizionare la notifica di conky non sia occupato dal pannello; personalmente ho risolto impostando il pannello perché mantenga libera una percentuale di spazio ai lati (dalle preferenze del pannello > Lunghezza (%) ).

Fate ora in modo che conky venga avviato automaticamente all’avvio; in Xfce basta andare in Impostazioni > Sessione e Avvio > Avvio automatico e aggiungere una nuova voce che abbia questo comando:

conky -c ~/.conky/my.caps-num

Qui sotto alcune schermate del risultato finale (con deskbar verticale).

Download dello script

capsoff_numon
Caps Lock disabilitato e Num Lock abilitato
capsoff_numoff
Caps Lock disabilitato e Num Lock disabilitato
capson_numon
Caps Lock abilitato e Num Lock abilitato

 

 

Da video a gif animata su GNU/Linux

Il formato immagine GIF è un formato storico, che è recentemente tornato in auge su popolari siti social, dove viene usato per visualizzare piccoli spezzoni di video, opportunamente convertiti in questo formato.

Esistono siti online per la creazione di GIF animate a partire da video, ma hanno spesso funzionalità limitate, e sono sopratutto più lenti rispetto a un task eseguito in locale (anche solo per i tempi di upload del video da convertire).
Ho creato quindi uno script bash, che utilizza ffmpeg come motore di conversione e zenity per la GUI, in modo da semplificare il più possibile la creazione di una GIF animata a partire da un file video.
Lo script, una volta lanciato, avvia una procedura guidata che chiede, passo passo, quale impostazioni usare.
È possibile anche ottenere una GIF ridimensionata rispetto al video originale, e convertire in GIF solo uno spezzone del video stesso.

Dato che una GIF vale più di mille parole, ecco un esempio pratico:

out.ogv

<<<<Download dello script>>>>

Naturalmente, una volta scaricato e scompattato, è necessario rendere eseguibile lo script con il comando

chmod +x video2gif

.

A presto!

U&B (uebbi) Nuovo Firmware 2.1 e nuovo sito Web

Per chi non conoscesse già U&B (Uebbi) rimando agli articoli precedenti (Uebbi – Nuovo firmware italiano e Uebbi – Firmware 2.0).

Il grande passo

Quando abbiamo iniziato a metter mano ai primi Uebbi, la comunità degli utilizzatori si aggirava intorno ad una ventina di utenti.
A poco più di sei mesi dalla pubblicazione del firmware 2.0 ci sono più di mille Uebbi in giro che usano il nostro firmware.
Siamo sinceramente colpiti dal successo del progetto che non ci aspettavamo. Tale nuova dimensione ci ha portato a riorganizzare il progetto, anche perché non più sostenibile con gli spazi e il traffico offerti gratuitamente da Altervista.
Abbiamo così pensato, in occasione della pubblicazione del nuovo Firmware 2.1 (più sotto i dettagli), di ospitare il progetto U&B in un nuovo spazio dedicato, riunendo al suo interno presentazione, guide, firmware, servizi e forum.
Abbiamo compiuto il grande passo e abbiamo acquistato un dominio nuovo di zecca per il progetto. Il nuovo dominio, dove sono stati spostati tutti i servizi – finora frammentati in più spazi – è www.uebproject.org.

Le novità del nuovo firmware

Il firmware 2.1 è più un firmware di correzione bug, ma con l’aggiunta di un restyling grafico. Inoltre, il nuovo firmware farà puntare il vostro dispositivo ai servizi erogati dal nuovo sito del progetto.
Naturalmente, il firmware 2.1 include tutte le migliorie già inserite nella versione 1.0 e nella versione 2.0.
Inoltre, corregge i seguenti problemi riscontrati:

  • Corretto il problema del led acceso con salvaschermo spento; ora U&B spegne lo schermo e anche il fastidioso led blu
  • Corretto anche il problema del ronzio delle casse a salvaschermo spento; ora U&B azzera il volume dellle casse quando spegne lo schermo (a meno che non si stia ascoltando musica o radio)
  • Corretto il problema dei due tasti (radio e meteo) fisici invertiti; ora U&B carica l’applicazione corretta
  • Corretto un bug che impediva il riconoscimento delle chiavette USB già inserite in U&B prima dell’accensione

Sono state aggiunte le seguenti migliorie:

  • Aggiornato il logo di U&B, opera di Rick
  • Aggiornata la veste grafica con nuove icone, frutto anch’esse del lavoro di Rick

Il firmware 2.1 è disponibile nella sezione Download del nuovo sito www.uebproject.org. La sezione Download è visibile agli utenti registrati al sito; la registrazione è gratuita.

Altra novità del nuovo firmware è la necessità di registrare il proprio dispositivo per ascoltare le radio; per tutti i dettagli, vi rimando alla guida rapida presente sul nuovo sito!

Vi ringrazio per il supporto al progetto, ci rivediamo sulle nuove pagine di www.uebproject.org!!!

Installare Zimbra Desktop su Linux a 64 bit

zimbraZimbra Desktop è un ottimo client email OpenSource; si integra (naturalmente) nativamente con account Zimbra, ma supporta anche account Google e Yahoo (compresi calendari e rubriche) oltre che account generici POP3/IMAP4.
È inoltre un client multipiattaforma (Windows, Mac e GNU/Linux); potete scaricarlo dall’apposita pagina di Download sul sito ufficiale.
Zimbra Desktop utilizza una JRE (Java Runtime) per funzionare; per GNU/Linux viene distribuito un unico pacchetto. Se avete una distro a 32bit non dovreste incontrare particolari problemi (a parte, eventualmente, installare openjdk-jre).
Con distro GNU/Linux a 64bit la faccenda si fa più complicata, perché Zimbra Desktop non riesce a partire con JRE a 64bit (e non ho trovato howto chiari in giro).

Se volete usare Zimbra Desktop sulla vostra macchina GNU/Linux a 64bit ecco quindi come fare.

N.B. In questa guida faccio riferimento al mio installato (una LinuxMint); dovrebbe funzionare senza particolari differenze anche su Ubuntu e derivate e su Debian e derivate, e servire come riferimento generale per tutte le altre Distro.

Installare il software necessario

Zimbra Desktop richiede una JRE a 32 bit per funzionare; per usarlo in “produzione” consiglio di installare la versione 6 (anche se legacy, ma dovrebbe funzionare tutto anche con la versione 7).

sudo apt-get install openjdk-6-jre:i386

Ora controllate che la versione di Java ufficiale usata dal sistema sia comunque quella a 64bit (non ha senso, solo per usare Zimbra Desktop, impostare come JRE di default quella a 32 bit).

sudo update-alternatives --config java
Sono disponibili 3 scelte per l'alternativa java (che fornisce /usr/bin/java).

  Selezione    Percorso                                        Priorità  Stato
------------------------------------------------------------
* 0            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      modalità automatica
  1            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      modalità manuale
  2            /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java    1060      modalità manuale
  3            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      modalità manuale

Premere Invio per mantenere il valore predefinito[*] o digitare il numero della selezione:

Se è tutto già a posto premete solo il tasto INVIO, altrimenti selezionate la JRE da usare normalmente per il sistema.

Scaricare e installare Zimbra Desktop

L’attuale versione per GNU/Linux di Zimbra Desktop è la 7.2.7 GA.
Scaricatela, scompattatela in una directory a vostra scelta ed eseguite l’installer in perl. Eseguite solo l’installazione system-wide (che di default è in /opt/zdesktop), e non configurate l’utente.

Modifica necessaria per gli ambienti a 64bit

Aprite ora con il vostro editor preferito (vim, nel mio caso) il file zdesktop presente, nell’installazione di default, in /opt/zdesktop/data/bin

sudo vim /opt/zdesktop/data/bin/zdesktop

Cercate la riga

JAVA=`which java`

e sostituitela con il path della vostra JRE a 32bit. Il path lo potete leggere dal comando

update-alternatives --config java

e nel mio caso è

/usr/lib/jvm/java-6-openjdk-i386/jre/bin/java

La riga finale diventerà quindi

JAVA="/usr/lib/jvm/java-6-openjdk-i386/jre/bin/java"

Salvate il file.

Configurazione finale dell’account

Ora potete avviare senza problemi lo script di configurazione di Zimbra Desktop per il vostro utente che, nell’installazione di default, è in /opt/zdesktop/linux

/opt/zdesktop/linux/user-install.pl