Tastiera su schermo per ambienti x11

Iniziative e progetti della comunità legati a Ubuntu.
Regole della sezione
Questa sezione ha lo scopo di raccogliere le iniziative/progetti della nostra Comunità legati ad Ubuntu. I progetti ospitati nascono da iniziative degli utenti o gruppi di utenti. In futuro i progetti potrebbero rimanere iniziative "personali" o essere integrate nella distribuzione, sponsorizzate da Ubuntu o da Canonical a discrezione dei responsabili. All'interno di essa sarà possibile inserire delle discussioni che hanno la funzione di pubblicizzare avvenimenti, iniziative e progetti software su Ubuntu e GNU/Linux in generale. Sarà inoltre possibile per gli utenti proporre lo sviluppo di nuovi software e in questo caso la discussione di richiesta avrà la funzione di generare un requisito funzionale del prodotto da sviluppare.

Sezione I - Iniziative
  • Fanno parte di iniziative, ad esempio, le seguenti categorie: corsi, progetti editoriali, libri.
  • La segnalazione di un'iniziativa avviene creando una discussione con l'annuncio.
  • Una volta effettuata la segnalazione, la discussione viene chiusa dal Gruppo Forum.
  • Se l'iniziativa esposta comporta un costo di adesione o fruizione, questo deve essere esplicitamente riportato all'interno della discussione.
  • È obbligatorio segnalare all'interno della discussione i riferimenti per poter contattare/partecipare all'iniziativa.
Sezione II - Progetti
  • La segnalazione di un progetto software, come per le iniziative, avviene e si sviluppa all'interno di una singola discussione.
  • Sarà consentito l'inserimento di software solo se rilasciati sotto licenza GPL (in tutte le sue versioni) o equivalente FOSS, tale da garantire agli utenti l'utilizzo del prodotto senza restrizioni e agli sviluppatori la proprietà intellettuale del codice prodotto.
  • Nell'oggetto della discussione dovrà essere riportata la categoria (es. [Iniziativa], [Progetto] o [Proposta]) e una semplice descrizione del progetto.
  • Se il progetto ha già un sito che lo ospita sarà a discrezione del Gruppo Forum chiuderla come segnalazione o lasciarla aperta.
  • Se il progetto non ha un sito che lo ospita si potranno aprire due discussioni, una per proporre modifiche/implementazioni (dove nel titolo occorre specificare [sviluppo]) ed una per segnalare problemi (e nel titolo dovrà comparire [supporto]).
  • Non è consentita l'apertura di nuove discussioni in riferimento a versioni superiori o modificate di un prodotto già riportato in precedenza.
  • Se il software oggetto del progetto ha una dimensione non superiore ai 128 kB, per prodotti che non hanno un sito che li ospita, sarà possibile allegarlo alla discussione.
Sezione III - Proposte
  • Una proposta deve essere eseguita e si svilupperà all'interno di una singola discussione.
  • Le proposte dovranno essere inserite direttamente nella sezione "Progetti della Comunità".
  • Dovranno essere specificate le funzionalità che devono essere sviluppate.
  • Non dovranno essere riportate diciture tipo "...deve fare come questo software...", ma indicare nel miglior modo possibile i requisiti.
  • Una volta segnalata la discussione resterà aperta per consentire uno scambio di idee su come sviluppare il codice o finché gli sviluppatori non forniranno una soluzione (da pubblicizzare poi, come visto prima, nella sezione Progetti) che ne soddisfi il requisito.
Per quanto non esposto sopra, si fa comunque riferimento al Regolamento del forum ed al Codice di Condotta della Comunità.
LUBO-BACK
Prode Principiante
Messaggi: 94
Iscrizione: mercoledì 19 gennaio 2022, 1:00
Sesso: Maschile

Tastiera su schermo per ambienti x11

Messaggio da LUBO-BACK »

Salve a tutti, nell'ultimo periodo mi sono appassionato alla creazione di tastiere su schermo ed al funzionamento dello swipe.

Prima ne ho realizzata una un po' complessa con anche motori locali di riconoscimento della scrittura e della voce, specificatamente mirata a wayland, poi ne ho realizzata e pacchettizzata come .deb una versione minore per ambienti x11. Personalmente la uso quando ho per le mani un chromebook o un dispositivo con chromeflex, perché la tastiera nativa non funziona in molti casi nelle app di crostini ma, in ogni caso, questa tastiera funziona di sicuro su x11 perche usa xdotool per l'inserimento.

Ha swipe (locale) handwrting recognition e voice input (attraverso i server di google) e layout italiano e inglese.

E' piuttosto utilizzabile.https://drive.google.com/file/d/1A_CuuI ... drive_link
Avatar utente
frapox
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4575
Iscrizione: sabato 31 dicembre 2005, 19:22
Desktop: Gnome, Plasma
Distribuzione: svariate

Re: Tastiera su schermo per ambienti x11

Messaggio da frapox »

Sì ma il codice dov'è?
«La tecnologia va cavalcata. Se è lei a cavalcarci, ne siamo schiavi.»
LUBO-BACK
Prode Principiante
Messaggi: 94
Iscrizione: mercoledì 19 gennaio 2022, 1:00
Sesso: Maschile

Re: Tastiera su schermo per ambienti x11

Messaggio da LUBO-BACK »

All'interno del deb, le vedi con xarchiver o qualsiasi altro estrattore. C'è un file py e due sorgenti in C. Vengono compilati in sede di installazione, ho evitato di compilarli prima proprio per dare la possibilità a chi ne è capace di vederne ed ispezionarne il contenuto.
Avatar utente
frapox
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4575
Iscrizione: sabato 31 dicembre 2005, 19:22
Desktop: Gnome, Plasma
Distribuzione: svariate

Re: Tastiera su schermo per ambienti x11

Messaggio da frapox »

LUBO-BACK ha scritto:
venerdì 27 febbraio 2026, 13:51
All'interno del deb, le vedi con xarchiver o qualsiasi altro estrattore. C'è un file py e due sorgenti in C. Vengono compilati in sede di installazione, ho evitato di compilarli prima proprio per dare la possibilità a chi ne è capace di vederne ed ispezionarne il contenuto.
Ah, ok! Avevo dato per scontato che fosse solo il binario, perdonami. Se riesco uno di questi giorni le do un'occhiata.
Purtroppo non ho un convertibile 2-in-1 quindi posso fare prove limitate.
Ti serve un qualche tipo di feedback specifico?
«La tecnologia va cavalcata. Se è lei a cavalcarci, ne siamo schiavi.»
LUBO-BACK
Prode Principiante
Messaggi: 94
Iscrizione: mercoledì 19 gennaio 2022, 1:00
Sesso: Maschile

Re: Tastiera su schermo per ambienti x11

Messaggio da LUBO-BACK »

Boh, diciamo che entrambe le tastiere le ho fatte per me, non per farci su soldi. Sia perché faccio un altro lavoro, sia anche perché mi pare che non ci sia grande mercato. Mi seccava non avere una tastiera come quella dei telefoni android e mi ci sono messo un po´ di impegno, ma a tempo perso la sera, diciamo un centinaio di ore per entrambe le tastiere (la seconda davvero in un paio di sere). Mi piacerebbe dare un po' di impulso al settore delle osk su linux che sembra 20 anni indietro rispetto ad Android o Ios, proprio perché mi rendo conto che da solo posso fare qualcosa che funzioni in italiano ed inglese, non una cosa con 80 lingue e layout cui dovrei dedicarmi h24.

Appena riesco, faccio un rpm ed un deb anche per la tastiera per wayland che va benissimo ma, per funzionare ovunque (anche nelle app più vecchie) richiede ydotool e perciò permessi di root o udev rules. Nessun mantainer la vorrebbe come ufficiale, hanno delle strane fisse sulla sicurezza rispetto ad eseguibili di cui possono ispezionare i sorgenti, ma accettano input da qualsiasi tastiera usb che può contenere/iniettare le peggiori cose, boh.

Detto questo, la parte migliorabile complessa è la logica di swipe, non avendo le reti neurali che usa google.

Per la tastiera x11, la gestione della finestra è un po' grezza, l'ho tirata via velocemente.

Credo che i punti migliorabili siano quelli e lì sono benvenuti suggerimenti, impressioni e quello che è.

Dopo di che, ad esempio, scriverci dentro con lo stilo in corsivo ed usare l'input method di google è davvero fighissimo.

Probabilmente dovrei mettere tutto su github, ma sono un pochetto pigro...
Avatar utente
frapox
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4575
Iscrizione: sabato 31 dicembre 2005, 19:22
Desktop: Gnome, Plasma
Distribuzione: svariate

Re: Tastiera su schermo per ambienti x11

Messaggio da frapox »

LUBO-BACK ha scritto:
venerdì 27 febbraio 2026, 14:28
...
Credo che i punti migliorabili siano quelli e lì sono benvenuti suggerimenti, impressioni e quello che è.
Io infatti volevo sapere se ti serve qualche feedback specifico in modo tale da testare l'app in un certo modo. Posso contribuire così anche se, mi rendo conto, non avendo un convertibile posso essere poco utile.
«La tecnologia va cavalcata. Se è lei a cavalcarci, ne siamo schiavi.»
LUBO-BACK
Prode Principiante
Messaggi: 94
Iscrizione: mercoledì 19 gennaio 2022, 1:00
Sesso: Maschile

Re: Tastiera su schermo per ambienti x11

Messaggio da LUBO-BACK »

Innanzitutto grazie dell'interesse, questo è il codice della versione semplificata
codice.zip
(32.89 KiB) Scaricato 3 volte
All'interno trovi un file .py che contiene l'interfaccia grafica e coordina i due motori in C. Uno per lo swipe e l'altro per la scrittura predittiva.

Il file py gestisce in proprio l'interfaccia e la parte del riconoscimento della scrittura manoscritta e vocale attraverso i server di google (nella versione maggiore anche in locale con un file tflite e con vosk, ma qui li ho rimossi) e si occupa di scaricare dizionari e layout. Attraverso ctypes coordina/utilizza i due motori in C per la parte matematica.

Il file dello swipe in realtà non si occupa solo dello swipe (calcolo coordinate etc.) ma anche dell'autocorrezione spaziale (prefto diventa presto etc.).

Il file unified_engine.c fa un sacco di cose, anche un po' alla rinfusa. Usa le matrici per calcolare la deviazione di Levensthein ed il pruning (taglio i rami delle parole che non servono nella ricerca della predizione) inizializza i dizionari, dà il boost alle parole che uso spesso e così via. Contiene anche il motore geometrico con la funzione del c.d. fat finger. ovvero una funzione che tiene conto degli errori nello swipe e del fatto che swipando qua e là è naturale essere imprecisi.

La tastiera è nata in python qualche giorno prima di Natale. Andava bene solo in python sino a che doveva solo scrivere, magari lentamente. Aggiungendo tutte queste funzioni, ho dovuto passare in C la parte pesante, ma rimane un lavoro fatto un po' a pezzi. Funzionalmente migliore, almeno come feature, delle tastiere di linux, ma pur sempre un software scritto da solo ed a tempo perso e senza la pulizia che deriverebbe da una revisione sistematica di chi fa questo per lavoro.

Non per falsa modestia, ma non sono uno sviluppatore professionista e, anche se credo di avere un'intuizione sopra la media nel mettere insieme le soluzioni tecniche, sconto il fatto di non avere una formazione seria e un metodo ordinato (non ho nemmeno tenuto copia delle revisioni) perciò qualunque tipo di contributo anche critico sarà apprezzato.

L'ideale sarebbe farne un progetto della comunità ed avere almeno 4 o 5 persone a revisionare il codice ed a dare idee.
Scrivi risposta

Ritorna a “Progetti della Comunità”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 1 ospite