Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม Bash

สคริปต์ Bash สำหรับรักษาสายตาในความมืดขณะดูดาวบน Linux

บทนำ

เรามักพูดถึง Linux ว่าใช้บนเซิร์ฟเวอร์และโดยนักพัฒนา แต่จริงๆ แล้วมันใช้ในหลายสาขาอื่นๆ รวมถึงดาราศาสตร์ มีเครื่องมือดาราศาสตร์มากมายสำหรับ Linux เช่น แผนที่ท้องฟ้า แผนที่ดาว และอินเทอร์เฟสระบบขับเคลื่อนโทรสคอปเพื่อควบคุมโทรสคอปของคุณ แต่ความท้าทายหนึ่งสำหรับนักดาราศาสตร์คือการใช้คอมพิวเตอร์ขณะรักษาให้ตายังทำงานในความมืดได้

โซลูชัน

ผมอยากนำเสนอสคริปต์เล็กๆ ที่น่าสนใจเพื่อช่วยให้นักดาราศาสตร์ในครอบครัวของคุณ "รักษาสายตา" ให้อยู่ในความมืด มันพึ่งพาสาธิตวิธีการเรียกว่า xcalib ซึ่งเป็น "โหลดเกรดจูบจอขนาดเล็กสำหรับ X.org" สามารถติดตั้งได้ง่ายผ่านตัวจัดการแพ็กเกจ Linux

ใน Fedora ตัวอย่างเช่น:

$ sudo dnf info xcalib
$ sudo dnf install xcalib

หรือ Ubuntu:

$ sudo apt-get install xcalib

แอปพลิเคชัน xcalib ทำงานได้เฉพาะกับ X11 จึงไม่ทำงานบนระบบ Wayland แต่ Wayland มีฟังก์ชันนี้ในตัวแล้ว คุณสามารถได้ผลลัพธ์เดียวกันผ่าน GNOME Settings หากคุณใช้ X11 xcalib เป็นวิธีง่ายในการเปลี่ยนอุณหภูมิสีของจอแสดงผล

สคริปต์

ผมค้นพบ Redscreen สคริปต์กรองสายตาในความมืด เขียนโดย Jeff Jahr ในปี 2014 สคริปต์ต้นฉบับเขียนสำหรับ C shell แต่ Bash เป็นค่าเริ่มต้นที่พบบ่อยในปัจจุบัน จริงๆ แล้ว C shell ไม่ได้ติดตั้งมาพร้อมกับ Fedora Linux workstation ปัจจุบันของผม ดังนั้นผมจึงตัดสินใจเขียนเวอร์ชันอัปเดตของสคริปต์ Redscreen ที่มุ่งเน้นไวยากรณ์ Bash ล่าสุด แต่ผมทำการเปลี่ยนแปลงหลักหนึ่ง: ใช้คำสั่ง case statement

#!/usr/bin/bash
# redscreen.sh Fri Feb 28 11:36 EST 2020 Alan Formy-Duval
# เปลี่ยนหน้าจอเป็นสีแดง - มีประโยชน์ต่อ นักดาราศาสตร์
# ได้แรงบันดาลใจจาก redscreen.csh ที่สร้างโดย Jeff Jahr 2014
# (https://www.jeffrika.com/~malakai/redscreen/index.html)

# โปรแกรมนี้เป็นซอฟต์แวร์เสรี: คุณสามารถกระจายซ้ำ
# และ/หรือปรับเปลี่ยนภายใต้เงื่อนไขของ GNU General
# Public License ตามที่เผยแพร่โดย Free Software Foundation,
# ไม่ว่าจะเป็นเวอร์ชัน 3 ของสัญญาอนุญาต หรือ (ตามเลือกของคุณ) เวอร์ชัน
# ใดๆ ที่ออกมาในภายหลัง

# โปรแกรมนี้เผยแพร่ใน希望ว่าจะมีประโยชน์ แต่ไม่มีการรับประกันใดๆ
# แม้แต่การรับประกันโดยนัยของความสามารถในการขาย หรือความเหมาะสมสำหรับ
# วัตถุประสงค์เฉพาะ ดู GNU General Public License
# เพื่อรายละเอียดเพิ่มเติม

# คุณควรได้รับสำเนาของ GNU General Public
# License พร้อมกับโปรแกรมนี้
# หากไม่ได้รับ ดู <https://www.gnu.org/licenses/>.

case $1 in
on)
# ปรับสี แกมมา ความสว่าง ความคอนทราสต์
xcalib -green .1 0 1 -blue .1 0 1 -red 0.5 1 40 -alter
exit 1
;;
off)
xcalib -clear
exit 1
;;
inv)
# กลับสีหน้าจอ
xcalib -i -a
exit 1
;;
dim)
# ทำให้หน้าจอมืดลง
xcalib -clear
xcalib -co 30 -alter
exit 1
;;
*)
echo "$0 [on | dim | inv | off]"
exit 1
;;
esac
สคริปต์ Bash สำหรับรักษาสายตาในความมืดขณะดูดาวบน Linux
Skychart สำหรับ Linux เวอร์ชัน 4.2.1 บน Fedora workstation

โปรแกรมดาราศาสตร์หลายตัวมีฟังก์ชัน "night-mode" แต่ไม่ใช่ทุกตัว นอกจากนี้ สคริปต์นี้ให้วิธีส่งผลต่อหน้าจอทั้งหมด ไม่ใช่แค่แอปพลิเคชันเฉพาะ ซึ่งช่วยให้คุณใช้ระบบ Linux ในสนามกลางคืนสำหรับสิ่งอื่นนอกจากดูดาว — เช่น เช็คอีเมลหรืออ่าน Opensource.com — โดยไม่ทำลายสายตาในความมืด

ไม่ว่าคุณจะเป็นนักดาราศาสตร์หรือแค่นักส่องดาวสมัครเล่น คุณสามารถใช้เวลาตลอดคืนชมท้องฟ้าด้วย Linux และโอเพนซอร์ส!