La risposta di Daniel mi ha indicato la strada giusta, ma vorrei estenderla.
Funziona per me su Linux Mint 17.2 e Ubuntu 16.04.
Ho provato tutti i colpi di scena che potevo pensare di continuare a utilizzare xmodmap, ma tutti falliscono quando il sistema entra in modalità di sospensione. Lo stesso vale anche per gli script di avvio dell'applicazione che usano setxkbmapnei casi in cui il * daemon-settings (per me è xfce4) viene eseguito dopo lo script --- e l'ordine non può essere realmente influenzato.
Quello che ho finalmente trovato ha i seguenti ingredienti:
1) Scrivi un file di mappatura della tastiera minimo per /usr/share/X11/xkb/symbols. Consente di chiamare il file. mylayoutPuò essere semplice come
xkb_symbols "basic" {
name[Group1] = "My Layout";
include "us"
key <AE03> { [ 3, numbersign, sterling, sterling] };
include "level3(ralt_switch)"
}
basic è solo un nome, lo incontreremo di nuovo più tardi.
- Il
name[Group1]simile è solo un nome a quanto pare, ma non giocherà alcun ruolo in seguito.
include "us"include la semplice tastiera americana. In realtà usè un altro file nella stessa directory. Questo è il layout della tastiera che stiamo adattando. Scegli uno diverso, se necessario. Nota: nessun punto e virgola per terminare questa riga.
- La
keylinea è un adattamento della tastiera, più può seguire. Il <AE03>può essere trovato nei file sotto /usr/share/X11/xkb/keycodes. Utilizzare il xevprogramma per capire che il tasto "3" ha il codice 12 e nel file codici chiave a Xfree86cui è mappato <AE03>.
- Finalmente un'altra
includedirettiva per attivare un'altra opzione della tastiera, in questo caso voglio avere il tasto Alt giusto per essere il tasto shift di livello 3, cioè il tasto che dà accesso al sterlingsegno che ho definito sopra. level3è solo un nome di file nella stessa cartella con ralt_switchuna sezione di esso. Dai un'occhiata in giro e scegli ciò che devi includere.
2) ho non messo la mylayoutnella cartella di sistema. Piuttosto ho creato solo un collegamento soft dalla cartella di sistema a una cartella di mio gradimento per vedere immediatamente che questo non è un software stock.
3) Inoltre non ho risolto evdev.xml, di nuovo per evitare problemi di aggiornamento. Ma questo sarebbe necessario per trovare mylayout nell'editor di configurazione della tastiera (per xfce4 lo è xfce4-keyboard-settings). Invece ho usato xfce4-settings-editore cambiato keyboard-layout->XkbLayoutin mylayout(il nome del file) e XkbVariantin basic(vedi sopra). Successivamente, mylayout/basicviene visualizzato anche nell'editor delle impostazioni della tastiera. Una voce in evdev.xmlsembra essere necessaria solo per poter selezionare il layout.
In questo modo, le impostazioni della tastiera ora sopravvivono alla modalità di sospensione e al riavvio.
Ulteriori informazioni sono disponibili qui: http://www.charvolant.org/~doug/xkb/html/node5.html .
Un altro approccio per risolvere il problema della modalità di sospensione (non provato da solo) è disponibile qui: https://www.vinc17.net/unix/xkb.en.html .
AGGIORNAMENTO: ho lavorato con Mint 18.3 nello stesso momento in cui ho modificato le impostazioni in xfce4-settings-editor come descritto sopra.
AGGIORNAMENTO: Con 18.04, gdm3 come display manager e XFCE4 come window manager, sembra che ~ / .Xmodmap venga letto di nuovo e le impostazioni sembrano sopravvivere a una sospensione. (Uso raramente suspend e non sono mai sicuro in quale modalità sia il laptop allora.)