Membuat mode malam dengan xrandr di Arch Linux
insert_invitation Tanggal: Senin, 25 Januari 2021. 08:40:17 WIB
perm_contact_calendar Penulis: selene
local_offer Tags: Linux, Programming, shell
Hai!
Selamat pagi teman-teman semua, semoga selalu sehat selalu ya…
Gunakan daftar isi diatas & shortcut CTRL+F untuk memudahkan pencarian konten.
Masalah
Pada malam hari biasanya saya mematikan lampu ruangan.
Ketika saya mengoperasikan komputer pada malam hari dengan kondisi lampu dimatikan rasanya brightness layar terlalu besar, panas dimata, padahal settingan brightness paling kecil di layar laptop sudah mentok.
Nah, akhirnya saya kepikiran membuat screen dimmer sederhana dengan xrandr, lebih jauh saya menemukan xrandr bisa set screen gamma, jadi juga bisa membuat overlay kemerahan seperti software - software mode malam / night mode lain pada umumnya.
Konsep
Seperti pada post sebelumnya tentang “Bermain-main dengan xrandr di Arch Linux” caranya kurang lebih sama.
Pertama saya cari device layar laptop terlebih dahulu:
% xrandr
Screen 0: minimum 320 x 200, current 1280 x 800, maximum 8192 x 8192
DVI-0 disconnected primary (normal left inverted right x axis y axis)
LVDS connected 1280x800+0+0 (normal left inverted right x axis y axis) 331mm x 207mm
1280x800 60.00*+ 50.00
1280x720 59.97
1152x768 59.95
1024x768 59.95
800x600 59.96
848x480 59.94
720x480 59.94
640x480 59.94
DisplayPort-0 disconnected (normal left inverted right x axis y axis)
VGA-0 disconnected (normal left inverted right x axis y axis)
Terlihat layar laptop saya di perangkat LVDS.
Selanjutnya saya bisa memodifikasi output di perangkat LVDS dengan xrandr.
Brightness
Demo menurunkan brightness dengan xrandr:
% xrandr --output LVDS --brightness 0.5
Demo menaikkan brightness dengan xrandr:
% xrandr --output LVDS --brightness 2.0
Demo reset brightness dengan xrandr:
% xrandr --output LVDS --brightness 1.0
Gamma
Demo dominan merah dengan xrandr (value 1):
% xrandr --output LVDS --gamma 2.0:0.5:0.5
Demo dominan hijau dengan xrandr (value 2):
% xrandr --output LVDS --gamma 0.5:2.0:0.5
Demo dominan biru dengan xrandr (value 3):
% xrandr --output LVDS --gamma 0.5:0.5:2.0
Demo reset gamma layar dengan xrandr:
% xrandr --output LVDS --gamma 1.0:1.0:1.0
Demo set gamma layar & set brightness dengan xrandr:
% xrandr --output LVDS --gamma 2.0:1.0:1.0 --brightness 0.8
Scripting program mode malam sederhana
Dari info konsep diatas, kita bisa membuat shell script sederhana untuk mengimplementasikan konsep tersebut.
Berikut shell script yang saya buat dengan nama modemalam.sh:
#!/bin/sh
# Shell script sederhana untuk mode malam otomatis dengan xrandr
# Mencari jam saat ini
jam=$(date +"%H")
# Ganti device LVDS sesuai device layar perangkat
xrandr_set() {
xrandr --output LVDS --gamma $1 --brightness $2
}
if [[ "$1" == 'stop' ]];then
echo "modemalam.sh reset"
xrandr_set 1.0:1.0:1.0 1.0
pgrep ${0##*/} | xargs kill
else
echo "modemalam.sh berjalan"
while true
do
if [ $jam -lt 16 ];then
xrandr_set 1.0:1.0:1.0 1.0
elif [ $jam -lt 18 ];then
xrandr_set 1.0:1.0:0.95 1.0
elif [ $jam -lt 20 ];then
xrandr_set 1.0:1.0:0.90 1.0
elif [ $jam -lt 22 ];then
xrandr_set 1.0:0.9:0.60 0.9
elif [ $jam -lt 23 ];then
xrandr_set 1.2:0.80:0.45 0.75
elif [ $jam -lt 1 ];then
xrandr_set 1.4:0.60:0.25 0.55
elif [ $jam -lt 2 ];then
xrandr_set 1.2:0.80:0.55 0.75
elif [ $jam -lt 3 ];then
xrandr_set 1.0:0.80:0.65 0.8
elif [ $jam -lt 5 ];then
xrandr_set 1.0:0.70:0.55 0.75
fi
# refresh setiap 10 menit, tidak membebani CPU
sleep 600
done &
fi
Instalasi:
- Copy shell script tersebut
- Buat file baru dengan nama modemalam.sh
- Paste hasil copy ke file baru, lalu simpan
- Set file tersebut executable
% chmod +x modemalam.sh
Penggunaan:
- Menjalankan modemalam.sh
% ./modemalam.sh
- Menghentikan modemalam.sh
% ./modemalam.sh stop
Teman-teman bebas memodifikasi shell script tersebut, bisa disesuaikan device perangkat layar & set settingan xrandr sesuka hati. 😁😁😁
Penutup
Begitulah cara membuat mode malam sederhana dengan xrandr di Arch Linux, semoga isi post ini bisa bermanfaat buat teman-teman semua.