สวัสดีเพื่อนร่วมงาน!
ฉันต้องการแบ่งปันวิธีแก้ปัญหาของฉันตามที่ระบุไว้ในชื่อ ฉันได้รับแรงบันดาลใจในการเขียนบทความนี้โดยเพื่อนร่วมงาน
คำอธิบายของปัญหา
ฉันใช้ Ubuntu 18.04 สำหรับการทำงาน และเมื่อเร็วๆ นี้สังเกตเห็นว่าเมื่อสลับเค้าโครงโดยใช้ alt+shift ในแอปพลิเคชัน เช่น Visual Studio Code, Skype, Slack และอื่นๆ ที่สร้างขึ้นโดยใช้ Electron ปัญหาต่อไปนี้เกิดขึ้น: โฟกัสจากช่องป้อนข้อมูลไปที่ด้านบน แผงหน้าต่าง (เมนู) ด้วยเหตุผลอื่น ฉันจึงย้ายไปที่ Fedora + KDE และพบว่าปัญหาไม่ได้หายไป ในขณะที่มองหาวิธีแก้ปัญหา ฉันพบบทความที่ยอดเยี่ยม
พยายามทำความเข้าใจว่ามีอะไรผิดปกติ
ดังนั้นฉันจึงตัดสินใจที่จะใช้เวลาเพื่อดูว่าเกิดอะไรขึ้น ตอนนี้ฉันจะอธิบายเส้นทางที่ฉันเดินไปโดยย่อบางทีคนที่มีความรู้ในเรื่องนี้จะช่วยอธิบายความยากลำบากที่ฉันพบได้
ฉันเปิด Visual Studio Code และเริ่มกดปุ่ม Alt+<%some%> ที่แตกต่างกันเพื่อดูว่าแอปพลิเคชันตอบสนองอย่างไร ในเกือบทุกกรณี การใช้ร่วมกันทั้งหมดยกเว้น Alt+Shift จะทำงานโดยไม่สูญเสียโฟกัส ดูเหมือนว่ามีคนกำลังกินปุ่ม Shift ที่กดไว้ ซึ่งตามมาหลังจากกด Alt ค้างไว้ และแอปพลิเคชันคิดว่าฉันกด Alt แล้วไม่ได้กดอะไรเลย จึงปล่อย Alt แล้วมันก็พุ่งความสนใจของฉันไปที่เมนูของมันอย่างสนุกสนาน ซึ่งดูค่อนข้างสมเหตุสมผล มัน.
ฉันเปิดการตั้งค่าสำหรับการสลับเค้าโครงแป้นพิมพ์ (คุณรู้ไหม รายการยาวนี้มีช่องทำเครื่องหมายและการตั้งค่าปุ่มทุกประเภท) และตั้งค่าให้สลับเค้าโครงโดยใช้ปุ่ม Alt โดยไม่ต้องคลิกเพิ่มเติม
หลังจากนั้น Alt+Tab เพื่อสลับหน้าต่างก็หยุดทำงาน มีเพียง Tab เท่านั้นที่ใช้งานได้นั่นคือมีคน "กิน" Alt ของฉันอีกครั้ง ไม่มีคำถามเหลืออยู่ว่า "ใครบางคน" นี้คือใคร แต่ฉันไม่รู้ว่าจะทำอะไรกับเขาได้บ้าง
แต่เนื่องจากปัญหาต้องได้รับการแก้ไขด้วยวิธีใดวิธีหนึ่ง จึงมีวิธีแก้ปัญหาเกิดขึ้น:
- ในการตั้งค่า ให้ปิดการใช้งานปุ่มลัดสำหรับการสลับรูปแบบแป้นพิมพ์ (ยกเลิกการเลือกช่องทำเครื่องหมายทั้งหมดในส่วนสลับไปยังรูปแบบอื่น)
- สร้างปุ่มลัดของคุณเองที่จะเปลี่ยนเค้าโครงให้ฉัน
คำอธิบายของโซลูชัน
ขั้นแรก มาติดตั้งโปรแกรมที่ให้คุณกำหนดคำสั่งให้กับคีย์ Xbindkeys กันก่อน น่าเสียดายที่เครื่องมือมาตรฐานไม่อนุญาตให้ฉันสร้างปุ่มลัดสำหรับชุดค่าผสมเช่น Alt+Shift ผ่านอินเทอร์เฟซที่สวยงาม สามารถทำได้สำหรับ Alt+S, Alt+1, Alt+shift+Y ฯลฯ ฯลฯ แต่ก็ไม่เหมาะกับงานของเรา
sudo dnf install xbindkeysrc
รายละเอียดเพิ่มเติมเกี่ยวกับเรื่องนี้มีอยู่ที่
ต่อไปเราจะสร้างไฟล์การตั้งค่าตัวอย่างสำหรับโปรแกรม ตัวอย่างนี้ค่อนข้างสั้น โดยมีคำสั่งไม่กี่คำ สิ่งที่คุณต้องใช้เพื่อดูว่าจะใช้งานอย่างไร:
xbindkeys -d > ~/.xbindkeysrc
ดังที่คุณเห็นจากตัวอย่างในไฟล์ เราจำเป็นต้องระบุปุ่มลัดที่เราต้องการใช้และคำสั่งที่ควรดำเนินการ ดูเรียบง่าย
# Examples of commands:
"xbindkeys_show"
control+shift + q
# set directly keycode (here control + f with my keyboard)
"xterm"
c:41 + m:0x4
ในฐานะที่เป็นฮอตคีย์ คุณสามารถใช้การเขียนที่มนุษย์อ่านได้หรือใช้รหัสคีย์ มันใช้งานได้สำหรับฉันด้วยรหัสเท่านั้น แต่ไม่มีใครห้ามไม่ให้คุณทดลองเพียงเล็กน้อย
ในการรับรหัสคุณต้องใช้คำสั่ง:
xbindkeys -k
หน้าต่างเล็กๆ “X” จะเปิดขึ้น คุณจะต้องกดปุ่มเมื่อโฟกัสอยู่ที่หน้าต่างนี้เท่านั้น! เฉพาะในกรณีนี้เท่านั้นที่คุณจะเห็นสิ่งนี้ในเทอร์มินัล:
[podkmax@localhost ~]$ xbindkeys -k
Press combination of keys or/and click under the window.
You can use one of the two lines after "NoCommand"
in $HOME/.xbindkeysrc to bind a key.
"(Scheme function)"
m:0x4 + c:39
Control + s
ในกรณีของฉัน การกดปุ่ม Alt+Shift ร่วมกันจะมีลักษณะดังนี้:
m:0x8 + c:50
ตอนนี้เราต้องแน่ใจว่าเมื่อคุณคลิกที่ชุดค่าผสมนี้ เค้าโครงจะสลับไป ฉันพบเพียงคำสั่งเดียวที่ใช้งานได้เพื่อระบุเค้าโครง:
setxkbmap ru
setxkbmap us
อย่างที่คุณเห็นจากตัวอย่าง มันสามารถเปิดใช้งานได้เพียงเลย์เอาต์เดียวเท่านั้น ดังนั้นฉันจึงคิดอะไรไม่ออกนอกจากการเขียนสคริปต์
vim ~/layout.sh
#!/bin/bash
LAYOUT=$(setxkbmap -print | awk -F + '/xkb_symbols/ {print $2}')
if [ "$LAYOUT" == "ru" ]
then `/usr/bin/setxkbmap us`
else `/usr/bin/setxkbmap ru`
fi
ตอนนี้ หากไฟล์ .xbindkeysrc และlayout.sh อยู่ในไดเร็กทอรีเดียวกัน มุมมองสุดท้ายของไฟล์ .xbindkeysrc จะมีลักษณะดังนี้:
# Examples of commands:
"xbindkeys_show"
control+shift + q
# set directly keycode (here control + f with my keyboard)
"xterm"
c:41 + m:0x4
# specify a mouse button
"xterm"
control + b:2
#А вот то, что добавил я
"./layout.sh"
m:0x8 + c:50
หลังจากนั้นเราจะทำการเปลี่ยนแปลง:
xbindkeys -p
และคุณสามารถตรวจสอบได้ อย่าลืมปิดการใช้งานตัวเลือกใดๆ สำหรับการสลับเค้าโครงในการตั้งค่ามาตรฐาน
ทั้งหมด
เพื่อนร่วมงานฉันหวังว่าบทความนี้จะช่วยให้ใครบางคนกำจัดปัญหาที่น่ารำคาญได้อย่างรวดเร็ว โดยส่วนตัวแล้ว ฉันใช้เวลาทั้งวันไปกับการพยายามคิดหาคำตอบและแก้ไขปัญหา เพื่อที่ฉันจะไม่วอกแวกกับมันในช่วงเวลาทำงานอีกต่อไป ฉันเขียนบทความนี้เพื่อประหยัดเวลาและความเครียดของใครบางคน หลายท่านใช้วิธีอื่นในการสลับเค้าโครงและไม่เข้าใจว่าปัญหาคืออะไร โดยส่วนตัวแล้วฉันชอบสลับด้วย Alt+Shift และนั่นคือสิ่งที่ฉันต้องการให้มันทำงาน หากคุณแบ่งปันความคิดเห็นของฉันและประสบปัญหานี้ บทความนี้จะช่วยคุณได้
ที่มา: will.com