Chaque administrateur, peut-être, avait un cas où quelque chose tombe soudainement en panne, et vous êtes quelque part sur la route: vous allez en voiture, prenez un train ou, banalement, vous vous asseyez quelque part sur un banc de parc et vous détachez et vous précipitez quelque part le désir n'est pas le moindre. Et vous devez le réparer. Ou, au minimum, évaluez l'échelle de l'animal à fourrure blanche qui est arrivé.
Il est clair que vous pouvez le faire avec un smartphone ou une tablette, surtout si vous n'avez besoin que de passer par ssh. Mais utiliser un écran tactile dans de tels cas, comme pour moi, c'est de la douleur et de la souffrance.
Vous pouvez acheter un clavier, un support ou un support externe pour la tablette, mais je pense qu'il est plus facile de transporter un ordinateur portable complet avec vous. Les lieux prendront à peu près la même chose.
Quelques souvenirs et raisonnements
Trop paresseux à lire, vous pouvez immédiatement passer à la
partie pratique.À une certaine époque, lorsque les androïdes et les iPhones n'existaient pas encore, pour de telles choses, j'ai utilisé la «tablette Internet» Nokia N810. Le combiné a des dimensions avec un smartphone moderne, tout en ayant un clavier qwerty et même avec Linux complet à bord. Ssh, vnc, rdesktop - oui pas de question! De plus, j'ai activement utilisé CAS Maxima lorsque j'avais besoin de calculer rapidement quelque chose et d'afficher le résultat.


Mais le temps a passé, les smartphones Android ont commencé à apparaître. Voilà, pensais-je: Linux presque à part entière, en même temps, il n'est pas nécessaire d'avoir un autre appareil avec vous pour distribuer Internet. J'ai commencé à regarder l'appareil avec qwerty, qui me remplacerait par le bon vieux n810, qui à ce moment-là était assez fatigué (câble d'écran, batterie remplacée deux fois, clavier, boîtier cassé). Le choix s'est porté sur Motorola Milestone.
Le voici, en partie, à côté de mon bon vieux Palm V et N810:

Je dois dire que le produit ne justifiait pas la confiance. Le clavier a été une déception totale. Pas même à cause de la disposition, mais à cause de la très mauvaise fabrication: après six mois d'utilisation, il a commencé à exfolier et à traîner.
Le chargeur de démarrage crypté a ajouté ses clous au cercueil: l'incapacité d'utiliser le noyau personnalisé avec toutes les conséquences, le chroot Debian a mangé la batterie comme si en soi, en raison des particularités de l'alimentation, mais de toute façon, le produit a en quelque sorte résolu les tâches qui lui étaient assignées.
À tout le moins, il a continué à être utilisé après l'expiration de la période d'obsolescence prévue déterminée par le fabricant, lorsque plusieurs modèles plus récents ont été publiés (différents, peut-être avec une configuration légèrement modifiée et beaucoup de RAM), et il était extrêmement bogué et lent.
D'accord, car le terminal ssh tombera et le smartphone (bien sûr, il engloutira une certaine quantité de vos cellules nerveuses). Mais il y a des cas où vous devez vous accrocher à un morceau de fer avec un câble de console ou supprimer tcpdump avec un périphérique IP qui ne répond pas afin que vous puissiez faire quelque chose avec.
C'est tout simplement enchanteur quand, en raison de la présence d'un port COM sur la station d'accueil, une personne fait glisser un imbécile de shnuy de 17 pouces HP avec un quai et une alimentation de 1,5 kilogramme, puis se bloque avec tout cela sur l'escabeau devant le comptoir.
Récemment, j'ai utilisé le ThinkPad x220 12 "avec adaptateur usb2com. Mais de plus en plus j'ai commencé à laisser l'ordinateur portable à la maison, jusqu'à ce qu'un jour (encore une fois)" $ username, tout se soit cassé! ", Et je n'avais qu'un smartphone Android avec moi.
Le voici, le poisson de mes rêves (en fait non)
Et une fois que je suis tombé sur un produit appelé GPD Pocket. Un ordinateur portable à part entière sous la forme d'un re-smartphone ou d'une tablette sous-dimensionnée. 7 ", clavier qwerty, une marge d'autonomie décente - euh, vous devez le prendre. J'ai commandé, reçu, déballé.
Pour comparaison avec x220 et n810:

Je ne décrirai pas les caractéristiques de ceux qui en ont besoin - ils le trouveront sur Internet, d'autant plus qu'il y a récemment eu une critique écoeurante de girbest ici. Donnez juste l'échappement lshw et lspci:
lshw:
Texte masqué: : Default string (Default string) : Default string : Default string №: Default string : 64 bits : smbios-3.0 dmi-3.0 vsyscall32 : boot=normal chassis=desktop family=Default string sku=Default string uuid=00020003-0004-0005-0006-000700080009 *-core : : Default string : AMI Corporation ID: 0 : Default string №: Default string : Default string *-firmware : BIOS : American Megatrends Inc. ID: 0 : 5.11 date: 08/07/2017 : 64KiB capacity: 4032KiB : pci upgrade shadowing cdboot bootselect socketedrom edd int13floppy1200 int13floppy720 int13floppy2880 int5printscreen int14serial int17printer acpi usb biosbootspecification uefi *-memory : ID: 28 : : 8GiB *-bank:0 : DIMM DDR3 1066 MHz (0,9 ns) : 00000000 : Hynix Semiconductor ID: 0 №: 00000000 : A1_DIMM0 : 4GiB : 8 bits : 1066MHz (0.9ns) *-bank:1 : DIMM DDR3 1066 MHz (0,9 ns) : 00000000 : Hynix Semiconductor ID: 1 №: 00000000 : A1_DIMM1 : 4GiB : 8 bits : 1066MHz (0.9ns) *-cache:0 : L1 ID: 32 : CPU Internal L1 : 224KiB capacity: 224KiB : internal write-back : level=1 *-cache:1 : L2 ID: 33 : CPU Internal L2 : 2MiB capacity: 2MiB : internal write-back unified : level=2 *-cpu : : Intel(R) Atom(TM) x7-Z8750 CPU @ 1.60GHz : Intel Corp. ID: 34 : cpu@0 : Intel(R) Atom(TM) x7-Z8750 CPU @ 1.60GHz : SOCKET 0 : 889MHz capacity: 2560MHz : 64 bits : 80MHz : x86-64 fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp constant_tsc arch_perfmon pebs bts rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand lahf_lm 3dnowprefetch epb pti tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms dtherm ida arat cpufreq : cores=4 enabledcores=4 threads=4 *-pci : Host bridge : Intel Corporation : Intel Corporation ID: 100 : pci@0000:00:00.0 : 34 : 32 bits : 33MHz : driver=iosf_mbi_pci : IRQ:0 *-display : VGA compatible controller : Intel Corporation : Intel Corporation ID: 2 : pci@0000:00:02.0 : 34 : 64 bits : 33MHz : pm msi vga_controller bus_master cap_list rom : driver=i915 latency=0 : IRQ:123 :a0000000-a0ffffff :80000000-9fffffff ioport:f000(=64) :c0000-dffff *-generic:0 : Signal processing controller : Intel Corporation : Intel Corporation ID: b : pci@0000:00:0b.0 : 34 : 64 bits : 33MHz : msi pm cap_list : driver=proc_thermal latency=0 : IRQ:129 :a1a3b000-a1a3bfff *-usb : USB controller : Intel Corporation : Intel Corporation ID: 14 : pci@0000:00:14.0 : 34 : 64 bits : 33MHz : pm msi xhci bus_master cap_list : driver=xhci_hcd latency=0 : IRQ:121 :a1a00000-a1a0ffff *-usbhost:0 : xHCI Host Controller : Linux 4.15.0-rc7-stockmind-gpdpocket xhci-hcd ID: 0 : usb@1 : usb1 : 4.15 : usb-2.00 : driver=hub slots=7 speed=480Mbit/s *-usb:0 : : Gaming Keyboard : SINO WEALTH ID: 2 : usb@1:2 : 1.00 : usb-1.10 : driver=usbhid maxpower=100mA speed=1Mbit/s *-usb:1 : USB- : BCM2045A0 : Broadcom Corp ID: 3 : usb@1:3 : 1.12 №: B0F1ECED56A9 : usb-2.00 : driver=btusb maxpower=100mA speed=12Mbit/s *-usbhost:1 : xHCI Host Controller : Linux 4.15.0-rc7-stockmind-gpdpocket xhci-hcd ID: 1 : usb@2 : usb2 : 4.15 : usb-3.00 : driver=hub slots=6 speed=5000Mbit/s *-generic:1 : Encryption controller : Intel Corporation : Intel Corporation ID: 1a : pci@0000:00:1a.0 : 34 : 32 bits : 33MHz : pm msi bus_master cap_list : driver=mei_txe latency=0 : IRQ:130 :a1900000-a19fffff :a1800000-a18fffff *-pci : PCI bridge : Intel Corporation : Intel Corporation ID: 1c : pci@0000:00:1c.0 : 34 : 32 bits : 33MHz : pci pciexpress msi pm normal_decode bus_master cap_list : driver=pcieport : IRQ:117 :a1000000-a14fffff *-network : : BCM4356 802.11ac Wireless Network Adapter : Broadcom Corporation ID: 0 : pci@0000:01:00.0 : wlp1s0 : 02 №: b0:f1:ec:ed:56:a8 : 64 bits : 33MHz : pm msi pciexpress bus_master cap_list ethernet physical wireless : broadcast=yes driver=brcmfmac driverversion=7.35.180.119 firmware=01-1a5c4016 ip=192.168.1.142 latency=0 multicast=yes wireless=IEEE 802.11 : IRQ:125 :a1400000-a1407fff :a1000000-a13fffff *-isa : ISA bridge : Intel Corporation : Intel Corporation ID: 1f : pci@0000:00:1f.0 : 34 : 32 bits : 33MHz : isa bus_master cap_list : driver=lpc_ich latency=0 : IRQ:0
lspci:
Texte masqué 00:00.0 Host bridge: Intel Corporation Device 2280 (rev 34) 00:02.0 VGA compatible controller: Intel Corporation Device 22b0 (rev 34) 00:0b.0 Signal processing controller: Intel Corporation Device 22dc (rev 34) 00:14.0 USB controller: Intel Corporation Device 22b5 (rev 34) 00:1a.0 Encryption controller: Intel Corporation Device 2298 (rev 34) 00:1c.0 PCI bridge: Intel Corporation Device 22c8 (rev 34) 00:1f.0 ISA bridge: Intel Corporation Device 229c (rev 34) 01:00.0 Network controller: Broadcom Corporation BCM4356 802.11ac Wireless Network Adapter (rev 02)
La qualité de construction est bonne, elle ne joue rien, elle ne grince pas, elle ne se plie pas. Le boîtier est en aluminium et en général, l'appareil donne l'impression d'une sorte de bloc monolithique. C'est un plus.
Mais il y a aussi assez de contre. Écran brillant. Non, ce n'est pas seulement brillant - c'est littéralement un miroir. C'est-à-dire que vous observerez votre réflexion dans des conditions d'éclairage non nul. Il y avait un film protecteur dans le kit, mais cela n'a pas résolu le problème.
Le second est le clavier. Le fait qu'elle soit est magnifique.

Mais la façon dont il est mis en œuvre est honte et horreur. Essayer de pirater sous le macbook, avec ces gros espaces entre les boutons - eh bien, pourquoi? Après tout, le public cible, semble-t-il, n'est pas des chatons glamour - ils prennent juste le prochain ipad ou macbook. N'ayez pas ces lacunes malheureuses, la taille des clés pourrait être agrandie.
Le bouton Fn a une couche très maigre: ce sont 2 boutons pour régler la luminosité, F1-F12 et Insérer. Pourquoi avons-nous besoin de la rangée du haut? Il pourrait être implémenté comme une couche distincte.
Les utilisateurs de Vim sont particulièrement douloureux et souffrent avec un deux-points placé dans la rangée inférieure à côté de ctrl.
D'accord, tout va mal, nous allons le traiter, car il y a plusieurs façons (plus de détails ci-dessous).
Oh oui, il y a un trackpoint ici. Ce qui pour moi, en tant qu'utilisateur expérimenté de ThinkPad, me réchauffe l'âme. Une seule chose mais: le trackpoint est situé au mauvais endroit et pour l'utiliser, vous devez plier le pouce. Ceci, malheureusement, est incurable. Mais pour quelques bonnets rouges supplémentaires dans le kit, bien sûr, merci.
Point de repère de la personne en bonne santé:

Trackpoint du fumeur:

Installer et configurer Linux sur GPD Pocket
Il est clair que les "fenêtres", et les "fenêtres 10" en particulier, ne sont pas ce dont j'ai besoin sur cet appareil, mais sont simplement contre-indiquées.
En raison des caractéristiques de l'appareil, telles que l'orientation de l'écran (il est tourné sur le côté), il est impossible de simplement prendre et installer votre Debian préférée sans danser avec un tambourin.

En principe, le site officiel a l'image officielle d'Ubuntu LTS 16.04 (qui me semble une bonne alternative à Debian stable), mais après avoir lu les discussions sur Internet, il a été décidé d'utiliser le projet
GPD Pocket Ubuntu RespinJe souligne, en général, la chose évidente que seule une image construite sur Ubuntu peut être utilisée et alimenter un script, par exemple, Debian, ne fonctionnera pas:
$./build.sh debian-9.3.0-amd64-netinst.iso Display setting: Xorg-Standard Looking for kernel image... Extracting kernel files... Archive: gpdpocket-20180115-kernel-files.zip inflating: linux-headers-4.15.0-rc7-stockmind-gpdpocket_4.15.0-rc7-stockmind-gpdpocket-1_amd64.deb inflating: linux-image-4.15.0-rc7-stockmind-gpdpocket_4.15.0-rc7-stockmind-gpdpocket-1_amd64.deb inflating: linux-libc-dev_4.15.0-rc7-stockmind-gpdpocket-1_amd64.deb ./isorespin.sh: 'debian-9.3.0-amd64-netinst.iso' must be an Ubuntu (or Ubuntu flavour), Linux Mint, neon, elementary, BackBox or Peppermint desktop ISO.
À la sortie, nous obtenons le fichier linuxium-xubuntu-16.04-desktop-amd64.iso, que nous écrivons sur la clé USB:
#dd if=linuxium-xubuntu-16.04-desktop-amd64.iso of=/dev/sdX
Nous démarrons à partir de celui-ci en définissant le périphérique de démarrage, en allant dans les paramètres UEFI avec le bouton Supprimer au démarrage.
La procédure d'installation est triviale, je ne vois aucun sens à la diffusion. Je note seulement qu'il est préférable de le produire à partir du mode Live, donc l'écran ne sera pas tourné sur le côté.
J'utilise le cryptage complet du disque, au cas où l'appareil serait soudainement perdu ou volé. Donc, au moins, toutes vos clés ssh (oui, je connais la protection par mot de passe et ssh-agent) et les connexions aux ressources Internet resteront intactes. Par conséquent, je mets LVM sur LUKS, que je vous souhaite également.
Corriger les curvulines
Sommeil et hibernation
Ce serait bien de pouvoir jeter un ordinateur portable dans un sac et de l'oublier jusqu'à ce qu'il soit nécessaire. Heureusement, la taille et le poids le permettent. Ce serait bien de ne pas démarrer, à chaque fois, les applications nécessaires manuellement, mais simplement de continuer à travailler là où vous vous étiez arrêté.
Le mode veille, semble-t-il, fonctionne hors de la boîte. Il est implémenté par des moyens réguliers, c'est-à-dire via systemctl suspend. Cependant, empiriquement, il a été constaté que la consommation d'énergie dans ce mode n'est pas très inférieure à la consommation au ralenti. Apparemment, l'appareil éteint simplement l'écran, les interfaces réseau et éteint le refroidisseur. En conséquence, la batterie atterrira en zéro jour pendant deux jours.
Besoin d'hibernation. L'hibernation systemctl régulière s'est avérée inopérante: l'état est vidé dans un swap, mais il ne peut pas récupérer au démarrage.
Je me suis souvenu qu'il existe un tel projet -
Userspace Software Suspend et ses packages sont dans le référentiel.
#apt install hibernate
Nous vérifions:
#hibernate-disk
Voila, ça marche! Le système s'est arrêté et s'est arrêté. Après avoir entré le mot de passe LUKS, récupéré. Mais le son et le wifi étaient couverts, la luminosité du rétroéclairage de l'écran était réinitialisée au maximum. Nous allons le terminer.
Installez le nécessaire
Avant de procéder à la configuration d'ACPI, vous devrez installer plusieurs utilitaires.
Donc, pour régler la luminosité de l'écran est responsable du rétro-éclairage.
#apt install xbacklight
L'ordinateur portable n'est pas un disque dur, mais un lecteur flash, donc je ne veux pas le tuer avec un swap. Il y a une telle chose
ZRam , ici nous allons l'utiliser. Maintenant, tout est simple avec cela, vous n'avez pas besoin de prescrire des feuilles dans rc.local, et il vous suffit de faire ce qui suit:
#apt install zram-config #sudo systemctl enable zram-config.service
Le script lui-même calculera la quantité de mémoire requise et fera un swapon.
Comme correctement noté dans les commentaires, la ressource flash mange non seulement le swap, mais aussi la journalisation. Par conséquent, / tmp et / var / log seront placés dans ram sur tmpfs. Pour ce faire, ajoutez deux lignes à / etc / fstab:
tmpfs /tmp tmpfs nodev,nosuid,size=256M 0 0 tmpfs /var/log tmpfs nodev,nosuid,size=512M 0 0
Nous finissons acpi
Tout d'abord, désactivez les gestionnaires systemg'shnyh. Puisqu'il fait tout par ses propres moyens, mais ils sont inopérants. Devise - nous faisons tout, mais nous faisons mal. Par exemple, il n'a pas appris à gérer la connexion d'un adaptateur d'alimentation ou d'un casque, de touches ou similaires.
Il a mangé de l'acide et a toujours faim! (4 Mo) /etc/systemd/logind.conf
HandlePowerKey=ignore HandleLidSwitch=ignore
#systemctl restart systemd-logind.service
Le démon acpid est responsable du traitement des événements acpi, dont les fichiers de configuration sont soudainement stockés dans / etc / acpi.
Nous enverrons l'ordinateur portable en veille prolongée en appuyant sur le bouton d'alimentation. Pour ce faire, modifiez les fichiers suivants (s'ils ne le sont pas, vous devez les créer):
/ etc / acpi / events / powerbtn
event=button[ /]power action=/etc/acpi/hibernate.sh
/etc/acpi/hibernate.sh (avec commentaires)
Texte masqué #!/bin/bash # , LUKS mv /home/user/bin/lock /home/user/bin/nolock # - killall -9 pulseaudio # zram swap systemctl stop zram-config.service swapon /dev/xubuntu-vg/swap_1 # DISPLAY=:0.0 su user -c "xbacklight >/tmp/xbl" # umount -alt nfs4 umount -alt cifs # wpa_supplicant /sbin/wpa_cli suspend hibernate-disk sleep 2 # DISPLAY=:0.0 su user -c "xbacklight -set `cat /tmp/xbl`" # wpa_supplicant /sbin/wpa_cli resume # alsa, . - /sbin/alsa force-reload # . , DAC1, amixer -c 1 set 'DAC1' 90% # , killall i3lock # mv /home/user/bin/nolock /home/user/bin/lock # zram systemctl start zram-config.service # swapoff /dev/xubuntu-vg/swap_1
L'hibernation automatique à faible charge n'est pas facile à mettre en œuvre, mais très simple:
#apt install acpi
/etc/acpi/ifbatlowgotosleep.sh
#!/bin/bash level=`/usr/bin/acpi -b|sed '/unava/d'|awk -F\ '{ print $4 }'|sed -e 's/,//' -e's/%//'` if [ "$level" -lt "10" ] then /etc/acpi/hibernate.sh fi
Le script vérifie l'état de charge. S'il est inférieur à 10%, il exécute le script d'hibernation ci-dessus.
L'exécution périodique est définie via crontab:
$sudo crontab -e */3 * * * * /etc/acpi/ifbatlowgotosleep.sh 2>/dev/null
Dans mon cas, la batterie est interrogée toutes les 3 minutes.
Le mode veille (systemctl suspend), comme mentionné ci-dessus, est assez inutile. Par conséquent, je ne vois aucune raison de l'activer lors de la fermeture du couvercle. De plus, il peut y avoir un désir, par exemple, d'écouter de la musique à partir d'un ordinateur portable fermé dans votre poche (ce n'est pas pour rien qu'il s'agit de «poche»).
Par conséquent, nous éteignons simplement l'écran lors de la fermeture et l'allumons lors de l'ouverture.
Supprimez / etc / acpi / lidbtn.
Nous créons et éditons:
/ etc / acpi / events / lidclose:
event=button/lid LID close action=/etc/acpi/lidclose.sh
/ etc / acpi / events / lidopen:
event=button/lid LID open action=/etc/acpi/lidopen.sh
/etc/acpi/lidopen.sh
DISPLAY=:0.0 su user -c "xrandr --output DSI1 --off"
/etc/acpi/lidclose.sh
DISPLAY=:0.0 su user -c "xrandr --output DSI1 --auto --rotate right --dpi 200"
Réglez la valeur DPI à votre convenance, et l'utilisateur est le nom simple de mon compte (changez-le en le vôtre).
Configuration des touches de contrôle du son et de la luminosité
Nous le faisons à travers tous les mêmes événements acpi.
/ etc / acpi / events / voldown
event=button[ /]volumedown action=/etc/acpi/volume-down.sh
/ etc / acpi / events / volup
event=button[ /]volumeup action=/etc/acpi/volume-up.sh
/ etc / acpi / events / mute
event=button[ /]mute action=/etc/acpi/volume-toggle.sh
Scripts:
/etc/acpi/volume-toggle.sh
amixer -c 1 set 'Speaker Channel' toggle amixer -c 1 set 'Headphone Channel' toggle
/etc/acpi/volume-up.sh
amixer -c 1 set 'Headphone' 5%+ amixer -c 1 set 'Speaker' 5%+
/etc/acpi/volume-down.sh
amixer -c 1 set 'Headphone' 5%- amixer -c 1 set 'Speaker' 5%-
De même pour la luminosité:
/ etc / acpi / events / bdown
event=button[ /]brightnessdown action=/etc/acpi/bdown.sh
/ etc / acpi / events / bup
event=button[ /]brightnessup action=/etc/acpi/bup.sh
/etc/acpi/bup.sh
DISPLAY=:0.0 su user -c "xbacklight -inc 5%"
/etc/acpi/bdown.sh
DISPLAY=:0.0 su user -c "xbacklight -dec 5%"
Permettez-moi de vous rappeler que l'utilisateur est le nom de mon compte. Entrez le vôtre.
Casque
Merde ^ W Une puce Realtek ALC5645 particulière n'est pas en mesure de désactiver indépendamment les haut-parleurs lorsque des écouteurs sont connectés. Vous devez apprendre au système comment le faire vous-même.
Il existe un tel script dans respin:
Texte masqué #!/bin/bash set -e -u if [ "$1" = "jack/headphone" -a "$2" = "HEADPHONE" ]; then case "$3" in plug) sink="[Out] Headphones" ;; *) sink="[Out] Speaker" ;; esac for userdir in /run/user/*; do uid="$(basename $userdir)" user="$(id -un $uid)" if [ -f "$userdir/pulse/pid" ]; then su "$user" -c "pacmd set-sink-port alsa_output.platform-cht-bsw-rt5645.HiFi__hw_chtrt5645__sink $sink" fi done fi
Mais ça ne marche pas. Tente de passer par le contrôle de synchronisation de l'audio, mais il échoue. Parce que:
$sudo su #su user -c "pacmd set-sink-port alsa_output.platform-cht-bsw-rt5645.HiFi__hw_chtrt5645__sink '[Out] Speaker'" PulseAudio, .
La solution est simple: lorsque le processus audio n'a pas encore été appelé par le client, il n'y a rien avec qui contacter pacmd. Vous pouvez bien sûr ajouter la ligne de lancement de celui-ci à rc.local, xinitrc ou même écrire une unité systemg distincte, mais j'ai pensé qu'il valait mieux planifier ma propre béquille que d'en réparer d'autres. Et j'ai écrit mon propre scénario, beaucoup moins monstrueux et sophistiqué, je pense.
/etc/acpi/headphone-jack.sh
#!/bin/bash set -e -u if [ "$3" = "plug" ]; then amixer -c 1 set 'Speaker Channel' mute >/dev/null amixer -c 1 set 'Headphone Channel' unmute >/dev/null else amixer -c 1 set 'Speaker Channel' unmute >/dev/null amixer -c 1 set 'Headphone Channel' mute >/dev/null fi
Nous traitons la mise en page et d'autres petites choses
Comme déjà mentionné, la mise en page me rend furieux. Le bouton de suppression est l'endroit où la barre oblique inverse et la barre devraient être, les deux-points dans la rangée du bas, il n'est pas clair pourquoi le menu clé, l'onglet est l'endroit où l'évasion est dans les claviers normaux ...
Je ne peindrai pas en détail, avec l'analyse, je vais juste apporter mon ~ / .xmodmaprc et décrire comment cela se fait.
Pour commencer, nous devons attraper le code clé. Cela se fait en utilisant le programme xev (#apt install xev, yes). Exécutez, appuyez sur la touche souhaitée et obtenez une sortie comme:
KeyPress event, serial 33, synthetic NO, window 0x3200001, root 0x2c0, subw 0x0, time 187713326, (979,493), root:(982,1078), state 0x0, keycode 119 (keysym 0xffff, Delete), same_screen YES, XLookupString gives 1 bytes: (7f) "" XmbLookupString gives 1 bytes: (7f) "" XFilterEvent returns: False
Nous avons besoin de la valeur "keycode 119".
Ensuite, ouvrez ~ / .xmodmaprc et écrivez-y
keycode 119 = backslash bar backslash bar
Et nous introduisons l'exécution de "xmodmap ~ / .xmodmaprc" dans votre xinitrc ou tout ce qui est appelé lorsque vous démarrez votre DE ou WM préféré.
Mon ~ / .xmodmaprc:
Texte masqué pointer = 1 2 3 4 5 remove Lock = Caps_Lock remove Control = Control_L keycode 0x42 = Control_L keycode 135 = Alt_R keycode 0x25 = Super_R keycode 133 = Super_R add Control = Control_L keycode 113 = Left keycode 111 = Up keycode 114 = Right keycode 116 = Down keycode 110 = Home keycode 115 = End keycode 108 = ISO_Next_Group keycode 136 = ISO_First_Group keycode 49 = asciitilde grave asciitilde grave keycode 119 = backslash bar backslash bar keycode 51 = Delete keycode 48 = colon semicolon Cyrillic_zhe Cyrillic_ZHE keycode 47 = apostrophe quotedbl Cyrillic_e Cyrillic_E keycode 130 = XF86Explorer keycode 121 = XF86AudioMute keycode 198 = XF86AudioMicMute keycode 122 = XF86AudioLowerVolume keycode 123 = XF86AudioRaiseVolume keycode 37 = Tab clear mod5 add mod5 = XF86Explorer keycode 166 = Prior keycode 167 = Next
Il utilise des choses douteuses pour la plupart des utilisateurs comme le transfert de ctrl vers caps-lock, tabulation vers ctrl_l, alt_gr vers menu et basculer la mise en page vers l'ancienne position altgr.
J'utilise également xcape pour émuler la pression d'échappement avec un simple clic sur ctrl_l. Appelé comme ceci:
xcape -t 1000 -e "Control_L=Escape"
Comme je préfère les thèmes sombres qui sont plus confortables (j'ai une opinion, le raifort dirait) dans des conditions de faible luminosité, mais qui doivent souvent fonctionner en plein jour, il y a un petit truc: les couleurs de l'image peuvent être inversées. Pour ce faire, vous avez besoin du programme xcalib:
#apt install xcalib
Inverser:
$xcalib -i -a
Vous pouvez vous lier à n'importe quel raccourci clavier pratique à l'aide du gestionnaire de fenêtres. Je m'accroche à Super_L + Backspace.
Résumé
Les impressions de l'appareil sont plus positives que négatives. Je ne regrette pas l'argent dépensé. L'appareil ne prend pas beaucoup de place dans le sac, tient dans la poche d'un pantalon cargo et d'une veste de fumée.

Cela fonctionne depuis longtemps à partir de la batterie, pour le test j'ai fait défiler trois heures et demie des films avec le wifi allumé, déchargé quelque part de moitié. Charge à partir d'un paverbank avec USB-A via un adaptateur secteur.
Toutes les curvulines molles rencontrées ont été traitées avec succès.
Il est regrettable qu'il n'y ait pas de port rj45, mais j'espère qu'il sera résolu par l'adaptateur commandé avec USB. L'absence de communications mobiles et de caméras, désormais, dans des conditions de surveillance totale, je pense plutôt un plus.