Numlock: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
K interwiki
K Schreibfehler im SDDM Bereich
 
(12 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{righttoc}}
{{righttoc}}
Auf Tastaturen mit separatem Nummerfeld gibt es eine Taste, mit der man zwischen den über das Nummernfeld eingebbaren Zahlen, sowie den Alternativ-Belegungen der dort befindlichen Tasten hin-und-her schalten kann. Diese Taste wird mit ''Numlock'' bezeichnet, und findet sich üblicher Weise oben links auf dem rechtsseitig angeordneten Nummernfeld.
Auf Tastaturen mit separatem Nummernfeld gibt es eine Taste, mit der man zwischen den über das Nummernfeld eingebbaren Zahlen, sowie den Alternativ-Belegungen der dort befindlichen Tasten hin-und-her schalten kann. Diese Taste wird mit ''Numlock'' bezeichnet, und findet sich üblicher Weise oben links auf dem rechtsseitig angeordneten Nummernfeld.


Das Problem ist allerdings, dass das Nummernfeld standardmäßig nur die Alternativbelegung bereitstellt, so dass man Numlock jedes mal erst einschalten muss, wenn man es verwenden will. Dieses ständige Einschalten-Müssen kann man aber auch automatisieren.
Das Problem ist allerdings, dass das Nummernfeld standardmäßig nur die Alternativbelegung bereitstellt, so dass man Numlock jedes mal erst einschalten muss, wenn man es verwenden will. Dieses ständige Einschalten-Müssen kann man aber auch automatisieren.
Zeile 10: Zeile 10:
Um Numlock an den virtuellen Konsolen automatisch zu aktivieren, bedient man sich des Standard-Programms „setleds“, sowie eines Eintrages in der Datei „/etc/rc.local“. Diese Datei wird nach jedem standardmäßigem Systemstart ausgeführt und aktiviert somit Numlock.
Um Numlock an den virtuellen Konsolen automatisch zu aktivieren, bedient man sich des Standard-Programms „setleds“, sowie eines Eintrages in der Datei „/etc/rc.local“. Diese Datei wird nach jedem standardmäßigem Systemstart ausgeführt und aktiviert somit Numlock.


  for tty in /dev/tty*; do
  for tty in /dev/tty[0-9]*; do
   /usr/bin/setleds -D +num < "$tty"
   /usr/bin/setleds -D +num < "$tty"
  done
  done
Zeile 25: Zeile 25:
Die Einstellungen per „setleds“ gelten nur für die virtuellen Konsolen, nicht aber für den X-Server. Hier bedarf es eines Zusatzprogramms. Zum Beispiel „numlockx“, das genau für diesen einen Zweck geschaffen wurde, Numlock an und aus zu schalten.
Die Einstellungen per „setleds“ gelten nur für die virtuellen Konsolen, nicht aber für den X-Server. Hier bedarf es eines Zusatzprogramms. Zum Beispiel „numlockx“, das genau für diesen einen Zweck geschaffen wurde, Numlock an und aus zu schalten.


  pacman -Sy numlockx
  pacman -S numlockx


Das Programm verfügt über drei Parameter: „on“, „off“ und „toggle“. „on“ aktiviert Numlock, „off“ deaktivert es, und „toggle“ schaltet in den jeweils anderen Modus. Wenn Numlock aktiviert ist, schaltet „toggle“ es aus, wenn Numlock deaktiviert ist, schaltet „toggle“ es ein.
Das Programm verfügt über drei Parameter: „on“, „off“ und „toggle“. „on“ aktiviert Numlock, „off“ deaktiviert es, und „toggle“ schaltet in den jeweils anderen Modus. Wenn Numlock aktiviert ist, schaltet „toggle“ es aus, wenn Numlock deaktiviert ist, schaltet „toggle“ es ein.


  numlockx on
  numlockx on
Zeile 33: Zeile 33:
Dies aktiviert Numlock unter [[X]]. Allerdings nur, wenn es auch unter X aufgerufen wurde. Wenn es nicht unter X aufgerufen wurde, gibt es lediglich eine Fehlermeldung, sofern man nicht das ''Display'' angegeben hat.
Dies aktiviert Numlock unter [[X]]. Allerdings nur, wenn es auch unter X aufgerufen wurde. Wenn es nicht unter X aufgerufen wurde, gibt es lediglich eine Fehlermeldung, sofern man nicht das ''Display'' angegeben hat.


==== Login-Manager ====
== Grafische Umgebungen==
Den Befehl „numlockx on“ kann man natürlich auch in die Konfigurationsdateien des verwendeten Login-Managers schreiben. Bei [[KDM]], dem [[Login-Manager]] von [[KDE]], ist dies die Datei „/usr/share/config/kdm/Xsetup“ bzw. „/opt/kde/share/config/kdm/Xsetup“, sofern man [[KDEmod]] verwendet.
===KDE Plasma===
Einstellungen --> Hardware --> Eingabegeräte --> Tastatur --> Numlock


Unter [[GDM]] wird die Anweisung in der Datei „/etc/gdm/Init/Default“ definiert. Dort wird sie gemäß den GDM-Vorgaben eingetragen und wird von nun an bei jedem GDM-Start ausgeführt, und Numlock damit eingeschaltet.
===MATE===
Standardmäßig speichert MATE den jeweils letzten Zustand beim Logout und stellt ihn beim Login wieder her. Um Numlock bei jedem Start zu aktivieren, können die folgenden DCONF-Einstellungen angepasst werden.


Um die Anweisung in [[Login-Manager#SLiM|SLiM]] zu definieren, muss man die Datei „/etc/slim.conf“ bearbeiten, und die Anweisung gemäß der Vorgaben in die Datei schreiben.
dconf write org.mate.peripherals-keyboard remember-numlock-state false
dconf write org.mate.peripherals-keyboard numlock-state 'on'


==== Autostart ====
===GDM===  
Selbstversändlich kann man „numlockx on“ auch in die Autostart-Datei der verwendeten [[:Kategorie:Desktopumgebung|Desktopumgebung]] oder in die „.xinitrc“ schreiben. Die Autostart-Datei des Desktopmanagers ist der Definition in der „.xinitrc“ aber vorzuziehen.
{{hinweis|GDM führt keine Scripte mehr in {{ic|/etc/gdm/Init}} aus}}
 
Installiere das Paket {{Paket|numlockx}} und füge folgende Zeilen in ~/.xprofile hinzu:
 
if [ -x /usr/bin/numlockx ]; then
      /usr/bin/numlockx on
fi
 
===SDDM===
In der Datei {{ic|/etc/sddm.conf}} unter der Kategorie {{ic|[General]}} muss man das ''Numlock'' auf ''on'' setzen.
[General]
...
Numlock=on
 
===SLiM===
In der Datrei {{ic|/etc/slim.conf}} entferne {{ic|#}} vor:
#numlock            on
 
===LightDM===
Installiere das Paket {{Paket|numlockx}} und editiere {{ic|/etc/lightdm/lightdm.conf}}:
/etc/lightdm/lightdm.conf
---------------------------------------------------------------------------------------
[Seat:*]
greeter-setup-script=/usr/bin/numlockx on
 
===LXDM===
Setze die Optipon in {{ic|/etc/lxdm/lxdm.conf}} auf {{ic|1}}:
numlock=1
 
===LXQt===
Setze die Optipon in {{ic|/etc/lxqt/session.conf}} auf {{ic|true}}:
numlock=true
 
===OpenBox===
Füge in der Datei {ic|~/.config/openbox/autostart}} folgendes hinzu:
numlockx &
 
===Xfce===
Setze folgende Variabeln in {{ic|~/.config/xfce4/xfconf/xfce-perchannel-xml/keyboards.xml}} auf {{ic|true}}:
<property name="Numlock" type="bool" value="true"/>
<property name="RestoreNumlock" type="bool" value="true"/>
 
== Autostart ==
Selbstverständlich kann man „numlockx on“ auch in die Autostart-Datei der verwendeten [[:Kategorie:Desktopumgebung|Desktopumgebung]] oder in die „.xinitrc“ schreiben. Die Autostart-Datei des Desktopmanagers ist der Definition in der „.xinitrc“ aber vorzuziehen.


Unter KDE erstellt man eine Datei „~/.kde/Autostart/numlockx“, wobei der Dateiname nicht von Bedeutung ist. In diese Datei schreibt man …
Unter KDE erstellt man eine Datei „~/.kde/Autostart/numlockx“, wobei der Dateiname nicht von Bedeutung ist. In diese Datei schreibt man …
Zeile 57: Zeile 103:
Damit das automatische Aktivieren und Deaktivieren von Numlock beim einstecken bzw, abziehen einer USB-Tastatur am Laptop funktioniert, müssen [[udev]] und „numlockx“ installiert sein und ordnungsgemäß funktionieren.
Damit das automatische Aktivieren und Deaktivieren von Numlock beim einstecken bzw, abziehen einer USB-Tastatur am Laptop funktioniert, müssen [[udev]] und „numlockx“ installiert sein und ordnungsgemäß funktionieren.


  pacman -Sy udev numlockx
  pacman -S udev numlockx


Wenn „udev“ ordnungsgemäß funktioniert und man mittels „numlockx“ Numlock ein- und ausschalten kann, steht einer Automation nichts mehr im Wege.
Wenn „udev“ ordnungsgemäß funktioniert und man mittels „numlockx“ Numlock ein- und ausschalten kann, steht einer Automation nichts mehr im Wege.
Zeile 75: Zeile 121:
  exit 0
  exit 0


Gespeichert wird das Script zum Besipiel als „/usr/local/bin/numl“. Der Dateiname ist dabei allerdings unrelevant, man muss die Datei nur wiederfinden können. Zusätzlich zu dieser Datei bedarf es noch einer Regel für udev. Diese Regel wird unter „/etc/udev/rules.d/25-usbkeyboard.rules“ erstellt und sieht wie folgt aus:
Gespeichert wird das Script zum Beispiel als „/usr/local/bin/numl“. Der Dateiname ist dabei allerdings irrelevant, man muss die Datei nur wiederfinden können. Zusätzlich zu dieser Datei bedarf es noch einer Regel für udev. Diese Regel wird unter „/etc/udev/rules.d/25-usbkeyboard.rules“ erstellt und sieht wie folgt aus:


  ACTION=="add", SUBSYSTEM=="input", ATTRS{idProduct}=="1003",
  ACTION=="add", SUBSYSTEM=="input", ATTRS{idProduct}=="1003",
Zeile 83: Zeile 129:
'''''Achtung:''' Die Zeilenumbrüche hier sind nur aus designtechnischen Gründen für das Wiki vorhanden und müssen beim erstellen der Regel ersatzlos entfernt werden.''
'''''Achtung:''' Die Zeilenumbrüche hier sind nur aus designtechnischen Gründen für das Wiki vorhanden und müssen beim erstellen der Regel ersatzlos entfernt werden.''


Die Werte „idProduct“ und „idVendor“, im Script besipielhaft mit „1003“ bzw. „05ac“ müssen an die eigenen, tatäschlichen Werte angepasst werden. Abfragen kann man die Werte mittels „udevinfo“
Die Werte „idProduct“ und „idVendor“, im Script beispielhaft mit „1003“ bzw. „05ac“ müssen an die eigenen, tatsächlichen Werte angepasst werden. Abfragen kann man die Werte mittels „udevinfo“


  udevinfo -a -p /sys/class/input/eventN
  udevinfo -a -p /sys/class/input/eventN
Zeile 95: Zeile 141:
… eingefügt werden, und ein Neustart von „udev“ vorgenommen werden, danach sollte beim Einstecken der USB-Tastatur Numlock automatisch eingeschaltet werden, und beim Abziehen der USB-Tastatur Numlock wieder ausgeschaltet werden.
… eingefügt werden, und ein Neustart von „udev“ vorgenommen werden, danach sollte beim Einstecken der USB-Tastatur Numlock automatisch eingeschaltet werden, und beim Abziehen der USB-Tastatur Numlock wieder ausgeschaltet werden.


== Todo ==
* udev oder evdev fürs automatische Aktivieren? [[Diskussion:Numlock|Siehe Diskussionsseite]]
[[Kategorie:Systemverwaltung]]
[[Kategorie:X11]]
[[Kategorie:X11]]
[[Kategorie:Konsole]]
[[Kategorie:Konsole]]
[[Kategorie:Unvollständig]]
[[en:Activating Numlock on Bootup]]
[[en:Activating Numlock on Bootup]]

Aktuelle Version vom 3. Dezember 2022, 00:42 Uhr

Auf Tastaturen mit separatem Nummernfeld gibt es eine Taste, mit der man zwischen den über das Nummernfeld eingebbaren Zahlen, sowie den Alternativ-Belegungen der dort befindlichen Tasten hin-und-her schalten kann. Diese Taste wird mit Numlock bezeichnet, und findet sich üblicher Weise oben links auf dem rechtsseitig angeordneten Nummernfeld.

Das Problem ist allerdings, dass das Nummernfeld standardmäßig nur die Alternativbelegung bereitstellt, so dass man Numlock jedes mal erst einschalten muss, wenn man es verwenden will. Dieses ständige Einschalten-Müssen kann man aber auch automatisieren.

Beim Start automatisch

Wenn man an seinem Computer mit nur einer Tastatur arbeitet (was ja nicht unüblich ist …) will man Numlock eventuell automatisch aktiviert haben, so dass man direkt nach dem Systemstart auf das Nummernfeld zugreifen kann, ohne, dass man es erst aktivieren muss.

Virtuelle Konsolen

Um Numlock an den virtuellen Konsolen automatisch zu aktivieren, bedient man sich des Standard-Programms „setleds“, sowie eines Eintrages in der Datei „/etc/rc.local“. Diese Datei wird nach jedem standardmäßigem Systemstart ausgeführt und aktiviert somit Numlock.

for tty in /dev/tty[0-9]*; do
  /usr/bin/setleds -D +num < "$tty"
done

Diese for-Schleife durchläuft alle verfügbaren virtuellen Konsolen in „/dev“, wo diese als Gerätedateien verzeichnet sind. Je Konsole wird dann „setleds“ ausgeführt und mittels Umleitung an die jeweilige virtuelle Konsole gesendet.

Will man nur eine Konsole so behandeln, reicht ein einfaches …

/usr/bin/setleds -D +num < /dev/ttyX

… wobei „X“ durch die jeweilige Konsolennummer ersetzt werden muss. „/dev/tty1“ ist zum Beispiel die erste Konsole, die man nach einem standardmäßigen Bootvorgang vor sich hat.

X-Server

Die Einstellungen per „setleds“ gelten nur für die virtuellen Konsolen, nicht aber für den X-Server. Hier bedarf es eines Zusatzprogramms. Zum Beispiel „numlockx“, das genau für diesen einen Zweck geschaffen wurde, Numlock an und aus zu schalten.

pacman -S numlockx

Das Programm verfügt über drei Parameter: „on“, „off“ und „toggle“. „on“ aktiviert Numlock, „off“ deaktiviert es, und „toggle“ schaltet in den jeweils anderen Modus. Wenn Numlock aktiviert ist, schaltet „toggle“ es aus, wenn Numlock deaktiviert ist, schaltet „toggle“ es ein.

numlockx on

Dies aktiviert Numlock unter X. Allerdings nur, wenn es auch unter X aufgerufen wurde. Wenn es nicht unter X aufgerufen wurde, gibt es lediglich eine Fehlermeldung, sofern man nicht das Display angegeben hat.

Grafische Umgebungen

KDE Plasma

Einstellungen --> Hardware --> Eingabegeräte --> Tastatur --> Numlock

MATE

Standardmäßig speichert MATE den jeweils letzten Zustand beim Logout und stellt ihn beim Login wieder her. Um Numlock bei jedem Start zu aktivieren, können die folgenden DCONF-Einstellungen angepasst werden.

dconf write org.mate.peripherals-keyboard remember-numlock-state false
dconf write org.mate.peripherals-keyboard numlock-state 'on'

GDM

Hinweis: GDM führt keine Scripte mehr in /etc/gdm/Init aus

Installiere das Paket numlockx und füge folgende Zeilen in ~/.xprofile hinzu:

if [ -x /usr/bin/numlockx ]; then
     /usr/bin/numlockx on
fi

SDDM

In der Datei /etc/sddm.conf unter der Kategorie [General] muss man das Numlock auf on setzen.

[General]
...
Numlock=on

SLiM

In der Datrei /etc/slim.conf entferne # vor:

#numlock             on

LightDM

Installiere das Paket numlockx und editiere /etc/lightdm/lightdm.conf:

/etc/lightdm/lightdm.conf
---------------------------------------------------------------------------------------
[Seat:*]
greeter-setup-script=/usr/bin/numlockx on

LXDM

Setze die Optipon in /etc/lxdm/lxdm.conf auf 1:

numlock=1

LXQt

Setze die Optipon in /etc/lxqt/session.conf auf true:

numlock=true

OpenBox

Füge in der Datei {ic|~/.config/openbox/autostart}} folgendes hinzu:

numlockx &

Xfce

Setze folgende Variabeln in ~/.config/xfce4/xfconf/xfce-perchannel-xml/keyboards.xml auf true:

<property name="Numlock" type="bool" value="true"/>
<property name="RestoreNumlock" type="bool" value="true"/>

Autostart

Selbstverständlich kann man „numlockx on“ auch in die Autostart-Datei der verwendeten Desktopumgebung oder in die „.xinitrc“ schreiben. Die Autostart-Datei des Desktopmanagers ist der Definition in der „.xinitrc“ aber vorzuziehen.

Unter KDE erstellt man eine Datei „~/.kde/Autostart/numlockx“, wobei der Dateiname nicht von Bedeutung ist. In diese Datei schreibt man …

#!/bin/bash
numlockx on

… und macht diese mittels „chmod +x dateiname“ ausführbar. Unter GNOME kann man ein Autostart-Programm nebst Startparametern über „System → Einstellungen → Sitzung“ der Sitzung, bzw. den Autostartprogrammen hinzufügen. Unter Openbox muss der Eintrag in die „~/.config/openbox/autostart.sh“ gesetzt werden.

USB-Tastatur beim Einstecken

Dieser Artikel oder Artikelabschnitt ist noch nicht vollständig!


Arbeitet man an einem Laptop, an das man gelegentlich per USB eine vollwertige Tastatur anschließt, schaltet man vermutlich häufig zwischen Numlock hin-und-her, da die Notebook-Tastatur für gewöhnlich ja keinen separaten Nummernfeld hat, kann ein eingeschaltetes Numlock mitunter merkwürdige Ergebnisse produzieren. Ausgeschaltetes Numlock auf der vollwertigen Tastatur ist aber auch nicht so schön

Vorbereitungen

Damit das automatische Aktivieren und Deaktivieren von Numlock beim einstecken bzw, abziehen einer USB-Tastatur am Laptop funktioniert, müssen udev und „numlockx“ installiert sein und ordnungsgemäß funktionieren.

pacman -S udev numlockx

Wenn „udev“ ordnungsgemäß funktioniert und man mittels „numlockx“ Numlock ein- und ausschalten kann, steht einer Automation nichts mehr im Wege.

Einrichtung

Damit der Vorgang funktioniert, bedarf es eines Skriptes, über das je nach Vorgang (einstecken oder abziehen der USB-Tastatur) der entsprechende Programmaufruf ausgeführt wird. Dieses Script sieht wie folgt aus:

#!/bin/sh
case "$1" in
  on)
    export DISPLAY=':0.0'; /usr/bin/numlockx on
    ;;
  off)
    export DISPLAY=':0.0'; /usr/bin/numlockx off
    ;;
esac
exit 0

Gespeichert wird das Script zum Beispiel als „/usr/local/bin/numl“. Der Dateiname ist dabei allerdings irrelevant, man muss die Datei nur wiederfinden können. Zusätzlich zu dieser Datei bedarf es noch einer Regel für udev. Diese Regel wird unter „/etc/udev/rules.d/25-usbkeyboard.rules“ erstellt und sieht wie folgt aus:

ACTION=="add", SUBSYSTEM=="input", ATTRS{idProduct}=="1003",
ATTRS{idVendor}=="05ac", RUN+="/usr/local/bin/numl on",
ENV{REMOVE_CMD}="/usr/local/bin/numl off"

Achtung: Die Zeilenumbrüche hier sind nur aus designtechnischen Gründen für das Wiki vorhanden und müssen beim erstellen der Regel ersatzlos entfernt werden.

Die Werte „idProduct“ und „idVendor“, im Script beispielhaft mit „1003“ bzw. „05ac“ müssen an die eigenen, tatsächlichen Werte angepasst werden. Abfragen kann man die Werte mittels „udevinfo“

udevinfo -a -p /sys/class/input/eventN

„N“ muss durch eine event-Nummer ersetzt werden. Durch ein wenig herumprobieren bekommt man hier mit die Produkt-ID und die Hersteller-ID heraus. Diese Werte trägt man dann in die udev-Regel ein.

Nun muss nur noch vor em Aufruf des Fenstermanagers in der „.xinitrc“ die Zeile …

xhost +local:

… eingefügt werden, und ein Neustart von „udev“ vorgenommen werden, danach sollte beim Einstecken der USB-Tastatur Numlock automatisch eingeschaltet werden, und beim Abziehen der USB-Tastatur Numlock wieder ausgeschaltet werden.