Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม BASH

ใช้สคริปต์ทุบตีที่เป็นประโยชน์นี้เมื่อดูดาว

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

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

โซลูชัน

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

บน Fedora เช่น:

$ sudo dnf info xcalib
$ sudo dnf install xcalib

หรืออูบุนตู:

$ sudo apt-get install xcalib

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

สคริปต์

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

#!/usr/bin/bash
# redscreen.sh Fri Feb 28 11:36 EST 2020 Alan Formy-Duval
# Turn screen red - Useful to Astronomers
# Inspired by redscreen.csh created by Jeff Jahr 2014
# (https://www.jeffrika.com/~malakai/redscreen/index.html)

# This program is free software: you can redistribute it
# and/or modify it under the terms of the GNU General
# Public License as published by the Free Software Foundation,
# either version 3 of the License, or (at your option) any
# later version.

# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE.  See the GNU General Public License for
# more details.

# You should have received a copy of the GNU General Public
# License along with this program.  
# If not, see <https://www.gnu.org/licenses/>.

case $1 in
            on)
            # adjust color, gamma, brightness, contrast
            xcalib -green .1 0 1 -blue .1 0 1 -red 0.5 1 40 -alter
            exit 1
        ;;
        off)
                xcalib -clear
            exit 1
            ;;
        inv)
            # Invert screen
                xcalib -i -a
                    exit 1
        ;;
        dim)
            # Make the screen darker
                xcalib -clear
            xcalib -co 30 -alter
            exit 1      
        ;;
        *)
                echo "$0 [on | dim | inv | off]"
                    exit 1
        ;;
esac
ใช้สคริปต์ทุบตีที่เป็นประโยชน์นี้เมื่อดูดาว
Skychart สำหรับ Linux เวอร์ชัน 4.2.1 บนเวิร์กสเตชัน Fedora

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

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