Linux dopieszczony na Thinkpad T590

Posted on Wed 26 January 2022 in Hardware, Linux • 3 min read

Dopieszczony to raczej dopasowany do własnych upodobań. Czasem system się rozleci, a konfigurację od podstaw robi się raz na parę lat, to lepej zachować zmienione ustawienia w artykule, żeby nie odkrywać wszystkiego na nowo.

Przesiadam się z Macbooka na T590 (i z powrotem) więc głównymi winowajcami nie działających ustawień są: klawiatura, ekran i zdarzenia ACPI.

W przypadku ekranu chodzi nie tyle o różnice w rozmiarach bo w obu przypadkach jest to ok. 15", ale przede wszystkim wartość DPI. Mój Macbook Pro ma ekran Retina więc jest ze dwa razy bardziej gęsty od ThinkPada.

Ustawienia ekranu:

gsettings set org.gnome.desktop.interface text-scaling-factor 1.2

Używam SDDM więc:

sudo vim /etc/sddm.conf

i ustawienie:

# Arguments passed to the X server invocation
ServerArguments=-nolisten tcp -dpi 141

W ~/.Xresources

Xft.dpi:       144

W ~/.xmobarrc pierwsza linia:

Config { font = "-*-Fixed-Bold-R-Normal-*-18-*-*-*-*-*-*-*"
[...]

Dla Firefoxa trzeba wejść pod adres: about:config i ustawić na 1.25 tę opcję:

layout.css.devPixelsPerPx

Czas na klawiaturę.

Mam w ~/bin skrypt do ustawiania klawiatury, który wywołuję w ~/.xsessionrc , nosi nazwę klawisz.sh :

# ustawienia dla ThinkPad T590
/usr/bin/xset r rate 180 45
# ustawiam Super na klawisz Windows
/usr/bin/xmodmap -e 'clear mod4'
/usr/bin/xmodmap -e 'keycode 135 ='
/usr/bin/xmodmap -e 'keycode 135 = ISO_Level3_Shift'

# wyłączam Caps_Lock
/usr/bin/xmodmap -e 'keycode 66 ='

# W ThinkPadzie PgUp i PgDown są obok strzałek
# wyłączam PgUp
/usr/bin/xmodmap -e 'keycode 112 ='
# wyłączam PgDown
/usr/bin/xmodmap -e 'keycode 117 ='

# Mapuję PrtSc na prawy Alt bo leży obok niego i mnie wnerwia
/usr/bin/xmodmap -e 'keycode 107 ='
/usr/bin/xmodmap -e 'keycode 107 = ISO_Level3_Shift'

Teraz najtrudniejsze czyli obsługa klawiszy do ściemniania i rozjaśniania ekranu. W moim modelu nie działają ale rozwiązanie znalazłem w Internecie: https://wiki.gentoo.org/wiki/ACPI/ThinkPad-special-buttons

Zapiszę je tu, w razie gdyby strona zniknęła:

sudo mkdir /etc/acpi/actions

sudo vim /etc/acpi/events/FnHome-brightnessup

#FnHome video/brightnessup BRTUP 00000086 00000000
event=video/brightnessup
action=/etc/acpi/actions/FnHome-brightnessup.sh

sudo vim /etc/acpi/actions/FnHome-brightnessup.sh

#!/bin/bash

# Set the static increment value.  Keep in mind that this will
# be done twice.
IncVal=20

# Get the Maximum value for use.
#MaxVal=$(cat /sys/class/backlight/intel_backlight/max_brightness);
read -r MaxVal < "/sys/class/backlight/intel_backlight/max_brightness"

# Get the current brightness value.
#CurrVal=$(cat /sys/class/backlight/intel_backlight/brightness);
read -r CurrVal < "/sys/class/backlight/intel_backlight/brightness"

# Set the new value minus the decrement value.
NewVal=$(($CurrVal + $IncVal));
echo $NewVal

# Set it to the threshold of the max value.
ThresholdVal=$(($NewVal<$MaxVal?$NewVal:$MaxVal))
echo $ThresholdVal

# Set the new value directly.
echo -n $ThresholdVal > /sys/class/backlight/intel_backlight/brightness

logger "[ACPI] brightnessup |$CurrVal| |$NewVal| |$ThresholdVal|"
sudo chmod +x actions/FnHome-brightnessup.sh
sudo vim /etc/acpi/events/FnEnd-brightnessdown
#FnEnd video/brightnessdown BRTDN 00000087 00000000
event=video/brightnessdown
action=/etc/acpi/actions/FnEnd-brightnessdown.sh

sudo vim /etc/acpi/actions/FnEnd-brightnessdown.sh

#!/bin/bash

# Set the static decrement value.  Keep in mind that this will
# be done twice.
DecVal=20

# Set the Minimum we will accept.
MinVal=0

# Get the current brightness value.
#CurrVal=$(cat /sys/class/backlight/intel_backlight/brightness);
read -r CurrVal < "/sys/class/backlight/intel_backlight/brightness"

# Set the new value minus the decrement value.
NewVal=$(($CurrVal - $DecVal));
echo $NewVal

# Set it to the threshold of the min value.
ThresholdVal=$(($NewVal>$MinVal?$NewVal:$MinVal))
echo $ThresholdVal

# Set the new value directly.
echo -n $ThresholdVal > /sys/class/backlight/intel_backlight/brightness

logger "[ACPI] brightnessdown |$CurrVal| |$NewVal| |$ThresholdVal|"

sudo chmod +x actions/FnEnd-brightnessdown.sh

Test:

for i in `seq 1 150`; do sudo /etc/acpi/actions/FnEnd-brightnessdown.sh ; done

Jak się ściemni to znaczy, że skrypt działa.

Do ewentualnej poprawy jest zmienna DecVal , tu ustawiona na 20, bo może się okazać że to zbyt mały skok i trzeba długo naciskać kombinację Fn+F5 / Fn+F6, żeby uzyskać pożądany efekt.

Na razie tyle. Będę uzupełniał w miarę potrzeby.