i3- สถานะค้าง

Sep 28 2020

ฉันใช้ i3 windows manager บน Debian 10 และฉันกำลังเชื่อมต่อกับคอมพิวเตอร์ผ่าน X2go ขณะที่ฉันกำลังทำงานที่บ้านในขณะนี้

เนื่องจากการอัปเกรดจาก Debian 9 เป็น Debian 10 (ทำเมื่อเร็ว ๆ นี้) แถบสถานะ i3 ค้างและฉันต้อง 'โหลดใหม่' i3 ซึ่งเป็นความเจ็บปวดเล็กน้อย

นี่คือ. i3status.conf ของฉัน

general {
    interval        = 1
    colors          = true
    color_good      = '#88b090'
    color_degraded  = '#ccdc90'
    color_bad       = '#e89393'
}

# order += "volume master"
# order += "disk /"
# order += "disk /home"
# order += "disk /media/data"
# order += "ethernet br0"
# order += "cpu_temperature 0"
# order += "memory"
# order += "load"
order += "tztime local"

# ethernet br0 {
#     #if you use %speed, i3status requires root privileges
#     format_up = "%ip (%speed)"
#     format_down = ""
# }

tztime local {
    format = "%A %e.%B %H:%M:%S"
}

# load {
#     format = "%1min"
# }

# cpu_usage {
#     format = "%usage"
# }

# cpu_temperature 0 {
#   format = "%degrees°C"
# }

# disk "/" {
#   format = "/ %avail"
#   prefix_type = custom
# }

# disk "/home" {
#   format = "/home %avail"
#   prefix_type = custom
# }

# disk "/media/data" {
#   format = "/media/data %avail"
#   prefix_type = custom
# }

# volume master {
#     format = "VOL: %volume "
#     format_muted = "MUTE "
#     device = "default"
#     mixer = "Master"
#     mixer_idx = 0
# }

เมื่อมันค้างเวลาจะไม่เคลื่อนที่ แต่ฉันยังเห็นวันที่และเวลาอยู่ในสถานะหยุดนิ่ง

ฉันได้ลองใช้ i3status ในเทอร์มินัลแล้วและทำงานได้ดีเป็นเวลาสองสามสัปดาห์โดยไม่หยุด

นี่คือผลลัพธ์ (โปรดทราบว่านี่คือตอนที่ฉันเปิดการตั้งค่าทั้งหมดใน config ของฉันและฉันไม่ต้องรีสตาร์ทเลย)

 ~ % i3status
i3status: trying to auto-detect output_format setting
i3status: auto-detected "term"
/ 6.5 GB | /home 103.1 GB | /media/data 543.9 GB | 4.29 | Monday 28.September 09:10:16

ฉันไม่สามารถจำลองปัญหาได้ แต่ฉันคิดว่ามันอาจมีบางอย่างเกี่ยวข้องกับเมื่อฉันออกจาก X2go เมื่อฉันออกจาก X2go ฉันจะให้เซสชันทำงานอยู่เบื้องหลังแล้วในวันถัดไปฉันก็เชื่อมต่อกับมัน ตอนนี้เมื่ออยู่ในสถานะนี้คือเวลาที่ปกติจะค้าง บางทีสถานะ i3 อาจไม่ต้องการอยู่ในเซสชัน X2go ซึ่งถูกถอดออก แต่ยังคงทำงานอยู่

อัปเดต

หลังจากรันสคริปต์ i3status.sh มันล้มเหลวเมื่อฉันตัดการเชื่อมต่อ X2go หลังจากทำงานไม่นานและฉันได้รับข้อผิดพลาด

i3status: trying to auto-detect output_format setting
i3status: falling back to "none"

ฉันได้เพิ่มสิ่งต่อไปนี้ใน config -> พื้นที่ทั่วไปเพื่อทดสอบ

    output_format = "i3bar"

อัปเดต: บังคับให้ล้มเหลว

จัดการเพียงเพื่อบังคับให้ล้มเหลวโดยออกจากเซสชันระยะไกล X2go (แต่ยังคงทำงานอยู่เบื้องหลัง) ชงกาแฟ (5 นาที) แล้วเข้าร่วมเซสชัน X2go อีกครั้ง

มันยังคงล้มเหลวด้วย output_format ที่บังคับให้ i3bar ฉันไม่ได้รับข้อผิดพลาดใด ๆ ใน i3status-err.log ตอนนี้

ฉันต้องกด ++ r เพื่อเริ่มต้นใหม่อีกครั้ง

คำตอบ

laktak Oct 04 2020 at 02:48

หากแถบสถานะค้างอาจเป็นไปได้ว่ากระบวนการขัดข้องและออกจากระบบ คุณควรตรวจสอบว่าi3statusกำลังทำงานอยู่หรือไม่เมื่อปัญหาเกิดขึ้นอีกครั้ง

คุณสามารถรวมi3statusสคริปต์ของคุณเองเพื่อแก้ไขปัญหาได้

ในconfigไฟล์i3 ของคุณแทนที่status_commandด้วยสคริปต์ของคุณเอง:

# status_command i3status -c ~/.config/i3/i3status
status_command /home/YOURUSER/.config/i3/i3status.sh

สร้าง~/.config/i3/i3status.sh(และ chmod + x):

#!/bin/bash
echo $(date) started >> /tmp/i3status.log while : do i3status 2> /tmp/i3status-err.log | while : do read line echo "$line"
        touch /tmp/i3status-last-seen.log
    done
    echo $(date) restarted >> /tmp/i3status.log
done

หรือหากเป็นข้อบกพร่องของ i3status ให้ลองใช้ทางเลือกนี้:

https://github.com/altdesktop/i3-dstatus