วิธีการเปิดเทอร์มินัลแยกไปที่เทอร์มินัล 9 รายการและสลับระหว่างกันโดยใช้หนึ่งสคริปต์


17

ฉันต้องการเปิดเทอร์มินัลแยกออกเพื่อให้บอกว่ามี 9 ส่วน (3x3) และรันสคริปต์ทุบตี แต่สำหรับเทอร์มินัลแต่ละส่วนจะมีสคริปต์ที่แตกต่างกัน

สิ่งนี้สามารถทำได้โดยใช้ Perl, Python หรือแม้กระทั่งทุบตี?

ฉันจะสลับระหว่างเทอร์มินัลตัวเล็ก ๆ เหล่านั้นโดยไม่ใช้แป้นพิมพ์ลัดได้อย่างไร

terminatorโอ้โดยวิธีการที่ผมใช้ และถ้ามีเทอร์มินัลอีมูเลเตอร์อื่นที่เปิดใช้งานฟังก์ชั่นนี้มันคืออะไร?


terminatorไม่ใช่เปลือก มีตัวเลียนแบบเทอร์มินัลสองตัวที่เรียกว่าterminator(มีเพียงอันเดียวที่ฉันเชื่อว่าสามารถแยกหน้าจอได้)
Stéphane Chazelas

อ่าขอบคุณ .. ถ้างั้นฉันก็อยากจะรู้วิธีแยกterminatorสคริปต์ด้วยเหรอ? :) แล้วสลับไปมาระหว่างส่วนต่าง ๆ เหรอ?
jirislav

1
ฉันไม่เคยใช้มันและไม่มีเวลาค้นคว้าเลยตอนนี้ แต่ฉันคิดว่า (ไม่แน่ใจว่า) ที่ byobu สามารถช่วยคุณได้หากคุณกำลังใช้งานเทอร์มินัลในระบบระยะไกล - ดูhelp.ubuntu co.th Byobu วิ่งกระจายหลาย * ระวัง
Clive van Hilten

1
ในฐานะที่เป็น @ClivevanHilten พูดถึงและตอบที่นี่ก็สามารถทำได้ด้วยมิตร Byobu (ซึ่งโดยค่าเริ่มต้นนั่งอยู่ด้านบนของ tmux)
Pablo

คำตอบ:


35

หากต้องการลอกเลียนแบบตัวเองคุณสามารถตั้งค่าโปรไฟล์ด้วยการตั้งค่าที่คุณต้องการ (คำแนะนำที่ดัดแปลงจากที่นี่ ):

  1. เรียกใช้terminatorและตั้งค่าเค้าโครงที่คุณต้องการ คุณสามารถใช้Ctrl+ Shift+ Eเพื่อแยก windows ในแนวตั้งและCtrl+ Shift+ O(นั่นคือ O เหมือนกับใน oodles ไม่ใช่ศูนย์) เพื่อแยกแนวนอน สำหรับตัวอย่างนี้ฉันได้สร้างเลย์เอาต์ 6 บาน:

    ป้อนคำอธิบายรูปภาพที่นี่

  2. คลิกขวาที่terminatorหน้าต่างและเลือก "การตั้งค่า" เมื่อหน้าต่างการตั้งค่าเปิดขึ้นให้ไปที่ "เลย์เอาต์" และคลิก "เพิ่ม":

    ป้อนคำอธิบายรูปภาพที่นี่

  3. ที่จะเติมรายการเค้าโครงด้วยเค้าโครงใหม่ของคุณ:

    ป้อนคำอธิบายรูปภาพที่นี่

  4. ค้นหาเทอร์มินัลแต่ละรายการที่คุณสร้างในโครงร่างแล้วคลิกที่เทอร์มินัลจากนั้นทางด้านขวาให้ป้อนคำสั่งที่คุณต้องการเรียกใช้ในเทมเพลตเมื่อเริ่มต้น:

    ป้อนคำอธิบายรูปภาพที่นี่

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

    เมื่อคุณได้ตั้งคำสั่งทั้งหมดคลิกที่ "ปิด" terminatorและจากนั้นออก

  5. เปิดterminatorไฟล์กำหนดค่า~/.config/terminator/configและลบส่วนภายใต้โครงร่างสำหรับการกำหนดค่าเริ่มต้น จากนั้นเปลี่ยนชื่อของเค้าโครงที่คุณสร้างเป็นค่าเริ่มต้น ควรมีลักษณะดังนี้:

    [global_config]
    [keybindings]
    [profiles]
      [[default]]
    [layouts]
      [[default]]
        [[[child0]]]
          position = 446:100
          type = Window
          order = 0
          parent = ""
          size = 885, 550
        [[[child1]]]
          position = 444
          type = HPaned
          order = 0
          parent = child0
        [[[child2]]]
          position = 275
          type = VPaned
          order = 0
          parent = child1
        [[[child5]]]
          position = 219
          type = HPaned
          order = 1
          parent = child1
        [[[child6]]]
          position = 275
          type = VPaned
          order = 0
          parent = child5
        [[[child9]]]
          position = 275
          type = VPaned
          order = 1
          parent = child5
        [[[terminal11]]]
          profile = default
          command = 'df -h; bash'
          type = Terminal
          order = 1
          parent = child9
        [[[terminal10]]]
          profile = default
          command = 'export foo="bar" && cd /var/www/; bash'
          type = Terminal
          order = 0
          parent = child9
        [[[terminal3]]]
          profile = default
          command = 'ssh -Yp 24222 cchapple@139.124.66.43'
          type = Terminal
          order = 0
          parent = child2
        [[[terminal4]]]
          profile = default
          command = 'top; bash'
          type = Terminal
          order = 1
          parent = child2
        [[[terminal7]]]
          profile = default
          command = 'cd /etc; bash'
          type = Terminal
          order = 0
          parent = child6
        [[[terminal8]]]
          profile = default
          command = 'cd ~/dev; bash'
          type = Terminal
          order = 1
          parent = child6
    [plugins]

ผลลัพธ์สุดท้ายคือเมื่อคุณรันterminatorมันจะเปิดด้วย 6 บานหน้าต่างซึ่งแต่ละอันรันหรือรันคำสั่งที่คุณระบุ:

ป้อนคำอธิบายรูปภาพที่นี่

นอกจากนี้คุณสามารถตั้งค่าโปรไฟล์ได้มากเท่าที่คุณต้องการและเปิดใช้งานเทอร์มิเนเตอร์ด้วย-pสวิตช์ที่ให้ชื่อโปรไฟล์หรือเปลี่ยนเป็นโปรไฟล์ที่คุณต้องการหลังจากเปิดตัวด้วยตนเอง


Terdon ขอบคุณ! นี่อาจเป็นที่ฉันเรียนรู้การเขียนไฟล์กำหนดค่า!
dotancohen

@dotancohen ดีใจที่ได้ยินว่าฉันได้รับความช่วยเหลือ :)
terdon

1
Whaou! ขอบคุณมาก the "; bash" ช่วยชีวิตฉันไว้!
เอเตียน

คุณต้องเรียกใช้เชลล์หลังจากแต่ละคำสั่งเพื่อให้สามารถใช้เทอร์มินัลได้ " น่าทึ่ง - นี่ไม่ง่ายเลยเมื่อฉันลองใช้ครั้งแรก ควรรวมช่องทำเครื่องหมายเพื่อเปิดใช้งานสิ่งนี้โดยอัตโนมัติ
dtmland


3

ย้อนกลับไปตอนที่ฉันใช้terminatorนี่คือไฟล์ rc ที่ฉันใช้เพื่อเปิดเทอร์มินัลจำนวนมากและเรียกใช้แอปพลิเคชัน .config/terminator/configบันทึกไปยัง

[global_config]
  title_hide_sizetext = True
  enabled_plugins = LaunchpadCodeURLHandler, APTURLHandler, LaunchpadBugURLHandler
[keybindings]
[profiles]
  [[default]]
    font = DejaVu Sans Mono 9
    cursor_blink = False
    scrollback_infinite = True
[layouts]
  [[default]]

    [[[root]]]
      position = -4:0
      type = Window
      order = 0 
      parent = ""
      size = 1072, 1884

    [[[grand]]]
      position = 536 
      type = HPaned
      order = 0 
      parent = root
    [[[left]]]
      position = 942 
      type = VPaned
      order = 0 
      parent = grand
    [[[right]]]
      position = 942 
      type = VPaned
      order = 1 
      parent = grand



    [[[terminal1]]]
      profile = default
      type = Terminal
      order = 0 
      parent = left
      command = "cd ~/code/foo; bash"
    [[[terminal2]]]
      profile = default
      type = Terminal
      order = 1 
      parent = left
      command = "cd ~/bar/baz; bash"



    [[[terminal3]]]
      profile = default
      type = Terminal
      order = 1 
      parent = right
      command = ""
    [[[terminal4]]]
      profile = default
      type = Terminal
      order = 0 
      parent = right
      command = "cmus; bash"



[plugins]

แก้ไข:โปรดทราบว่าข้อมูลนี้อาจมาจากการโพสต์ของ Terdon ในหัวข้อก่อนหน้ามาก ฉันใช้การตั้งค่านี้มาหลายเดือนแล้ว แต่โพสต์ของ Terdon ที่นี่ดูคุ้น ๆ !


นี่คือสิ่งที่ฉันกำลังมองหา - วิธีแบ่งเทอร์มินัล & รันสคริปต์เฉพาะ - ขอบคุณ! แต่ฉันไม่ต้องการที่จะประหารชีวิตทุกครั้งเช่นนี้ มีความเป็นไปได้ไหมที่จะมีการกำหนดค่าเพิ่มเติม & เปิดแต่ละรายการขึ้นอยู่กับสิ่งที่ฉันต้องการ สมมติว่าเพิ่มพารามิเตอร์ --config2 หรือ --config1
jirislav

คุณไม่ได้เพิ่มไฟล์กำหนดค่าเพิ่มเติมคุณเพิ่มส่วนต่างๆลงในไฟล์กำหนดค่า ดูโพสต์ของ Terdon เขาอธิบายได้ดีมากจริงๆแล้วฉันได้เรียนรู้สิ่งนี้จากโพสต์ของเขาในกระทู้ก่อนหน้า
dotancohen

โอ้ฉันเข้าใจแล้ว ... ฉันยอมรับคำตอบของเขาว่ามีประโยชน์ที่สุด แต่ขอบคุณล่ะค่ะ
jirislav

ทางเลือกที่ดี! ฉันอยากจะแนะนำให้ยอมรับคำตอบของเขาเพราะข้อมูลมาจากการทำงานอย่างหนักของเขา!
dotancohen

2

สคริปต์ตัวแรปเปอร์สำหรับการจำลองเทอร์มินัลแยก Terminator https://github.com/AlekseyChudov/terminator-split


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

1
ดูเหมือนจะดี .. แต่ฉันจะรันสคริปต์นี้ได้อย่างไร
Sachin

1
terminator-splitมีศักยภาพมาก แต่ดูเหมือนว่าจะไม่มีวิธีรันคำสั่งที่แตกต่างกันในการแยกที่แตกต่างกันและ-mอาร์กิวเมนต์ที่แสดงในตัวอย่างไม่ปรากฏในสรุปการใช้
bitinerant
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.