Score:1

เหตุใด setxkbmap ใน .bashrc จึงทำงานเป็นระยะ เหตุใดจึงใช้เวลาสักครู่ในการโหลดหลังจากพีซีเริ่มทำงานแล้ว

ธง in

ฉันใช้สิ่งนี้กับฉัน .bashrc ไฟล์:

## สลับปุ่มควบคุม

setxkbmap - ตัวเลือก ctrl:swapcaps

ฉันทำสิ่งนี้โดยพื้นฐานแล้วเพราะฉันใช้ Emacs เป็นจำนวนมาก ดูเหมือนว่าจะทำงานเกือบตลอดเวลา

น่าเสียดายที่ 2 ปัญหายังคงเกิดขึ้น:

(i) - หลังจากพีซีเริ่มทำงาน จะใช้เวลาสักครู่ในการทำงาน มันไม่ได้เกิดขึ้นทันทีทันใดที่ทำให้ฉันสนใจ เพราะนี่ดูเหมือนจะเป็นสิ่งที่ "เล็กน้อย" ที่จะเปลี่ยนแปลง

(ii) - บางครั้ง จู่ๆ ก็หยุดทำงาน แล้วจู่ๆ การแลกเปลี่ยนก็กลับมา สิ่งนี้เกิดขึ้นครั้งเดียวในวันนี้

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

ฉันมีช่องว่างความรู้ขนาดใหญ่ .bashrc การกำหนดค่าไฟล์ อาจมีบางอย่างที่ไม่สอดคล้องกันในไฟล์ของฉัน นี่คือพื้นที่เก็บข้อมูลบน GitHub ที่แสดง ไฟล์ .bashrc ทั้งหมด.

ขอบคุณ.

ru flag
`.bashrc` อ้างอิงเฉพาะเมื่อเปิดเทอร์มินัลในเชลล์ล็อกอินเท่านั้น เว้นแต่ว่าคุณกำลังเข้าสู่ระบบเชลล์เข้าสู่ระบบเทอร์มินัลโดยตรง (Bash) มันจะไม่โหลดเมื่อเริ่มต้น ก็ไม่อาจคงอยู่ได้ สภาพแวดล้อม GUI แม้ว่าจะไม่ได้อ้างถึง `.bashrc` เมื่อคุณโหลดขึ้นเมื่อบูต
Pedro Delfino avatar
in flag
ขอบคุณ @ThomasWard คำอธิบายนี้สมเหตุสมผลมาก คุณแนะนำสถานที่อื่นให้ฉันแทรกคำจำกัดความ `setxkbmap` นี้หรือไม่ ฉันต้องการให้มันเป็นการเปลี่ยนแปลงอย่างต่อเนื่องและโหลดขึ้นเมื่อบูต
ru flag
ฉันมีวิธีแก้ไขที่เป็นไปได้ 2-3 วิธี แต่ฉันอยู่ในจุดสิ้นสุดของวันที่แสนยาวนานและกำลังจะเข้านอน ฉันจะแบ่งปันความคิดของฉันในวันพรุ่งนี้หลังการนอนหลับ
Pedro Delfino avatar
in flag
ไม่มีปัญหา. มีการพักผ่อนที่ดี :)
ru flag
โดยทั่วไปแล้วสิ่งนี้จะทำใน `/etc/rc.local` แต่ในปัจจุบันเลิกใช้มากหรือน้อยเพื่อสนับสนุนหน่วย Oneshot ของ SystemD ในเวลาบูต ซึ่งจะใช้ได้กับทั้งระบบอย่างแท้จริง (หรือควรอย่างไรก็ตาม) ให้ฉันเขียนตัวอย่างในคำตอบ ถ้ามันใช้งานได้ก็เยี่ยม ถ้าไม่ เราจะพยายามหาทางออกที่เป็นไปได้ต่อไป
ru flag
ฉันถือว่าคำตอบ cronjob ของฉันแก้ปัญหาให้คุณได้ไหม กำลังจะเขียนแนวทาง SystemD แต่จะไม่ทำถ้า cronjob แก้ไขได้
Score:1
ธง ru

ดังนั้นหนึ่งในปัญหาที่คุณพบคือความชั่วร้ายนั่นคือ ".bashrc อ่านได้เฉพาะสำหรับ Bash shell ในเทอร์มินัล" GUI ของคุณไม่ใช่ Bash shell ดังนั้น .bashrc GUI จะไม่อ่านจนกว่าคุณจะเปิด Terminal จากนั้นจึงเปิดใช้งาน/ใช้การเปลี่ยนคีย์

หากเราต้องการให้ทำงานได้ทั่วโลก จำเป็นต้องดำเนินการโดยเป็นส่วนหนึ่งของระบบโดยไม่ขึ้นกับ .bashrc. มีสองตัวเลือก: crontab ผู้ใช้ของคุณสำหรับ @รีบูต ซึ่งเป็นชื่อกรณีพิเศษ หรือหน่วย SystemD

(ฉันไม่ได้ทดสอบทั้งสองวิธี ดังนั้นฉันจึงไม่สามารถแสดงความคิดเห็นได้ว่าวิธีใดจะทำงานได้ดีกว่าวิธีอื่น ถ้าเป็นเช่นนั้น)

เริ่มจากตัวเลือกงาน cron ก่อน

แนวทางการทำงานของ Cron

เปิดเทอร์มินัลของคุณและเรียกใช้ crontab -e.

เพิ่มบรรทัดนี้เข้าไป:

@reboot setxkbmap - ตัวเลือก ctrl:swapcaps

รีบูทระบบของคุณและดูว่าใช้งานได้หรือไม่

ถ้ามันใช้งานได้ดี ถ้าไม่เช่นนั้นเราต้องลองวิธีอื่น

โซลูชันสำรอง: ทำงานอัตโนมัติ gnome-terminal หลังจากเข้าสู่ระบบ

หากทั้งหมดล้มเหลว ให้เพิ่ม คำพังเพย-terminal ไปยังแอปพลิเคชันเริ่มต้นของคุณ

ก่อนอื่นให้ติดตั้ง gnome-startup-applications:

sudo apt ติดตั้ง gnome-startup-applications

ประการที่สอง ค้นหาแอปพลิเคชันของคุณสำหรับ "การตั้งค่าแอปพลิเคชันเริ่มต้น"

เพิ่มรายการสำหรับ คำพังเพย-terminal. ด้วยวิธีนี้จะทำให้เทอร์มินัลทำงานอัตโนมัติโดยอัตโนมัติ

Pedro Delfino avatar
in flag
ขอบคุณ. มัน *เกือบ* ได้ผล หลังจากเปิดเครื่องใช้งานไม่ได้ แต่ถ้าฉันเปิดเปลือกมันใช้งานได้ สิ่งนี้เป็นไปได้แล้ว แต่ตอนนี้ฉันสามารถปิดเชลล์ (เทอร์มินัล) และมันก็ทำงานต่อไป!
Pedro Delfino avatar
in flag
ฉันจะพยายามแทรก 'gnome-terminal' ในการตั้งค่าเริ่มต้นของฉัน ดังนั้นฉันคิดว่ามันจะได้ผล
ru flag
ตกลง นี่ดูเหมือนเป็นการเพิ่ม gnome-terminal ให้กับแอปเริ่มต้นของคุณ

โพสต์คำตอบ

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