Far funzionare bene Skype su Ubuntu a 64 bit

Visto che per motivi di studio dovrò andare in Danimarca e con l’ultima versione non è poi così malaccio, ho deciso di reinstallare Skype. Non è il mio programma di messaggistica preferito, tuttavia bisogna ammettere che per certe cose funziona abbastanza bene.

Il problema però è che il pacchetto fornito sul sito, seppur indicato come “multi architettura”, gira un po’ meglio su Ubuntu a 32 bit (è comunque compilato per i386) mentre sulla versione a 64 bit va maluccio. Io ho riscontrato due problemi: il primo era il look dell’interfaccia per nulla integrato col resto del sistema, il secondo l’impossibilità di inserire lettere accentate.

Skype rispettivamente prima e dopo la "cura"
Skype rispettivamente prima e dopo la “cura”

Ho scoperto che entrambi questi problemi sono dovuti alla mancanza di alcune librerie di compatibilità con i software a 32 bit. Ok, il tema orribile si può sopportare, ma per scrivere in italiano gli accenti servono. Per questo motivo, ho deciso di sistemare tutti e due i problemi. Il comando da dare è il seguente:

sudo apt-get install ia32-libs-multiarch:i386 libc6-i386

Il primo pacchetto sistema il tema, l’altro gli accenti. Ovviamente poi dovete chiudere il programma e riaprirlo.

Aggiornamento — 01/01/2013: se volete avere anche l’icona nella barra di stato in modalità indicator di Ubuntu, come quella del gestore di rete o del volume, installate anche il pacchetto sni-qt:i386. L’effetto finale è niente male.

UniformUI is the definitive way to integrate Qt and KDE apps in the GNOME desktop

I’ve been working on this script for a while, and now with the second version I think I’m pretty close to perfection. 😛 I’ve always wanted to find a software which could let me have a nice integration between different kind of applications on Ubuntu. My favorite distribution is based on GNOME, which uses GTK+ libraries to render GUI components.

It was already possible for KDE users to render GTK+ controls as native Qt ones. But not vice-versa. You could obviously already find and configure similar styles for Qt and KDE imitating your Clearlooks, Human, or whatever theme. This is a very boring process. You have to install various configuration tools (two for qt and two for KDE) and then set every single color by hand, and also the fonts of course.

My first version of this script (italian article here) was able to configure automatically every settings file (Qt 3, Qt 4, KDE 3, KDE 4) perfectly under Ubuntu 8.10. Now thanks to QGtkStyle too, it’s possible to get an even more integrated environment. You can get a native rendering of qt4 and KDE 4 controls as they were GTK+. That’s great. There is still the problem that you need to adjust Qt 3 and KDE 3 look.

UniformUI version 2 does the trick. 😀 First of all it scans your GNOME settings searching for the colors you’re using, the fonts, and the cursor theme. Then it starts building configuration files. The first is the qt3 one. If you don’t have QtCurve for KDE 3 installed on your system, the script will download it for you and manually unpack it from an Ubuntu package (it should work on every distribution by the way). After that, the KDE 3 configuration file is created.

Finally, it assures that Qt 4 and KDE 4 apps use the native GTK+ style. The only action you have to perform is starting the script in a terminal and typing your password when prompted. This is the default system mode. If you want to run in user mode, then you just have to start the script with the -u switch. In this mode every part of the configuration (even those useful and suitable for everyone) is written in you user directory. The only action performed as root is the installation of QtCurve.

Here’s a brief overview of two apps (one using GTK+ and one using Qt 3) after setting a theme in GNOME and executing UniformUI:

Pretty good, uh?
Pretty good, uh?
Here's another one, with different fonts
Here’s another one, with different fonts

Download it here.

Warning: at this moment the script runs only and exclusively on Ubuntu 9.04 Jaunty Jackalope. Do not try to run it on other versions of Ubuntu.

The script should work with almost every GNOME theme, cursor theme, and font selection. I’ve tested it on Ubuntu 9.04 but it should work in every distribution (just be sure you’ve installed QGtkStyle). If you are encountering problems related to finding the colors, check if your theme supports them, and then try to change a little one of the colors and then bring it back to what it was (manually, don’t use the restore to defaults function). Finally run the script again, it should be fine.

Remember you need to run this script every time you change theme in GNOME. But it’s not such a difficult task.

If you have any suggestions, questions, messages, or anything else… just leave a comment here. I would be delighted if you could tell me whether it is good and suitable to your tastes or not after you’ve given it a try. Thanks.

Update: thanks to Nickholas for correcting my English grammar.

UniformUI versione 2, ottimizzato per Ubuntu 9.04

Ho finalmente trovato il tempo di aggiornare il mio script (viva le vacanze) e perciò sono molto orgoglioso di presentarvi la nuova versione. Per chi non sapesse cos’è UniformUI, ricordo che è uno script che permette di integrare in modo del tutto automatico l’aspetto dei programmi Qt 3, Qt 4, KDE 3 e KDE 4 all’interno di un desktop GNOME (in particolare Ubuntu, ma con pochi accorgimenti funziona su qualsiasi distro). Leggete qui la presentazione.

Provate questa versione solo ed esclusivamente su Ubuntu 9.04.

Questa revisione include le seguenti nuove caratteristiche:

  • versione funzionante ed ottimizzata per Ubuntu 9.04
  • richiede la presenza del motore di temi QGtkStyle
  • fornisce un aspetto assolutamente nativo per le applicazioni Qt 4 e KDE 4
  • aggiunto il supporto per i font: ora le applicazioni hanno gli stessi caratteri dei programmi GNOME
  • due modalità di funzionamento: user mode e system mode

Per quanto riguarda le due modalità, quella predefinita è la system mode. Ciò significa che cambierà lo stile in modo che per tutti gli utenti sia almeno sufficientemente integrato. Questo non vale per i colori naturalmente, perché ogni utente può usare un tema con colori diversi perciò sarebbe inutile. La scelta migliore è che ogni utente esegua lo script in system mode ogni volta che cambia tema.

Per agire in user mode bisogna passare l’opzione -u allo script. Ciò ha come inconveniente, tra l’altro, che lo stile dei widget delle applicazioni KDE 3 non viene cambiato, ma è comunque una cosa di poco conto (però irrisolvibile).

Potete scaricare lo script da qui. Provatelo e fatemi sapere che cosa ne pensate. 😉

Aggiornamento 14/06/2009: corretto un bug per cui in caso di font con stili (tipo grassetto e corsivo), i caratteri rimanevano uguali. Ora gli stili vengono ignorati e il font viene impostato correttamente.

L’interfaccia uniforme tra le librerie grafiche, ovvero UniformUI per GNOME

Personalmente devo dire che specie in passato, ero uno a cui piaceva cambiare spesso il tema di GNOME. C’è stato il periodo in cui impazzivo per Murrine, poi ho apprezzato Clearlooks, ora sul portatile uso Darkroom con i colori modificati.

Nonostante questo però, ancora prima di cambiare tema, mi accorgevo sempre di una cosa abbastanza spiacevole. :\

Usando GNOME è impossibile non accorgersi di quanto le applicazioni basate su altri toolkit grafici siano… potrei dire orrende. Prendiamo per esempio i programmi per KDE 3… Hanno il classico tema Plastik, che non è brutto, però stona. Ed ha anche lo schema di colori blu standard, che con il tema di Ubuntu (nel mio caso) non ha nulla a che vedere.

Lo stesso vale anche per i programmi KDE 4, che hanno un bel tema, ma troppo diverso dallo stile GNOME. La situazione cambia totalmente se si tratta di Qt 3. Ci troviamo di fronte a un look del secolo scorso. L’interfaccia di base è spartanissima e ti fa odiare il lavorare con Qcad o simili. 😛 Con i programmi Qt 4 qualcosa si salva, l’aspetto è un po’ integrato anche se si può migliorare di molto.

Sintomi da incoerenza multipla
Sintomi da incoerenza multipla

Nell’immagine vedete uno screeshot di Ubuntu Intrepid a cui sono stati aggiunti alcuni software con le varie librerie grafiche, senza modificarne l’aspetto. Si salva solo VLC, che almeno è guardabile, anche se i colori sono un po’ più scuri di quanto dovrebbero.

Quando mi sono capitate queste cose, finora, la soluzione era quella di installare i configuratori di Qt (versione 3 e 4) e cambiare i colori e il tema a mano, fino a trovare una combinazione gradevole. Tutto ciò dopo ogni cambiamento di tema e di colori. Per i programmi KDE, la soluzione poteva essere di installare tantissimi pacchetti KDE 4 solo per cambiare il tema, oppure peggio per KDE 3… Nessun modo.

Ero stanco di questa situazione, ed ho voluto crearmi un modo di poter svolgere il lavoro: cambiare quattro configurazioni diverse per ottenere un aspetto omogeneo in un attimo e senza fatica! 😀

Dopo sabati (e altri giorni) passati a programmare, vari tentativi, bug trovati e fix applicati, sono riuscito ad ottenere uno script in bash estremamente semplice da eseguire. Una volta aperto esso ricava la configurazione di GNOME (colori e tema del puntatore, e in più le icone, anche se per ora è un dato non utilizzato) e scrive le configurazioni adatte per KDE 3, KDE 4, Qt 3 e Qt 4; infine le applica.

Il processo è automatico e indolore. 🙂

Una volta chiuse le applicazioni, si riaprono ed ecco il risultato:

Dopo la cura
Dopo la cura

Durante la realizzazione dello script, ho avuto modo di analizzare un po’ la struttura delle varie configurazioni, capire dove dovevano andare le informazioni, e così via. È stato veramente divertente e sono contento di condividere con voi il risultato.

Lo script si chiama UniformUI e penso che sarà utilissimo a tutti gli utenti GNOME. A mio avviso questo script è comodissimo e permette di risparmiare tempo.

Mi piacerebbe perfezionarlo e migliorarlo, e chissà, magari in futuro potrebbe diventare diffuso. Il codice naturalmente è rilasciato sotto licenza GPL. Se volete dare una mano fatemelo sapere e proponetemi i vostri miglioramenti! 😉

Per usare lo script, scaricate il file da qui (versione 1, vedete sotto per le ultime versioni) e dategli i permessi di esecuzione. Infine, fatelo eseguire in un terminale (altrimenti non vedrete l’output). Chiudete le applicazioni che usano librerie Qt e riapritele.

Noterete subito il cambiamento. 😀

Aggiornamento 12/06/2009: È uscita la versione 2! A questa pagina le note di rilascio ed il download.