Score:-2

ตำแหน่งเริ่มต้นของเทอร์มินัล Ubuntu

ธง in

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

นอกจากนี้ยังใช้ไม่ได้กับ gnome-terminal เท่านั้น มันใช้งานได้กับเทอร์มินัลอีมูเลเตอร์ที่ฉันได้ดาวน์โหลดมาจนถึงตอนนี้ ดังนั้นฉันคิดว่ามันไม่ใช่ปัญหาเฉพาะสำหรับโปรแกรมจำลองเทอร์มินัลไม่มีใครรู้ว่าสิ่งนี้จัดการอย่างไร?

Score:2
ธง it

คำแนะนำ

ฉันขอแนะนำให้คุณเรียนรู้เครื่องมือที่คุณจะย้ายไป เทอร์มินัลเกือบทั้งหมดมีไฟล์ปรับแต่งบางประเภท เช่น alacritty อย่างไรก็ตาม นี่คือ "เคล็ดลับ" เล็กๆ น้อยๆ ที่ฉันได้พบระหว่างทาง"

ฉันจะทำอย่างไร

เมื่อคุณเปิดใช้งานเทอร์มินัล จะมีตัวเลือกที่ให้คุณตั้งค่าทั้งขนาดและออฟเซ็ต X และ Y

ตัวเลือกคือ --เรขาคณิต, และมันก็เป็น มีอยู่มากมาย (มากที่สุด?) ลินุกซ์เทอร์มินัลอีมูเลเตอร์ เทอร์มินัล Gnome ก็ไม่มีข้อยกเว้น สำหรับ เสมอ วิธีแก้ปัญหา นักพัฒนาบางคนไม่ใช้เวลาในการสร้าง hooks อัตโนมัติสำหรับโปรแกรมเมอร์/ superuser พิเศษ

ไวยากรณ์ในการใช้ตัวเลือกรูปทรงเรขาคณิตกับเทอร์มินัลของเรามีดังนี้:

$ gnome-terminal --เรขาคณิต WxH+X+Y

โปรดทราบว่าในสตริงอาร์กิวเมนต์ ทุกอย่างยกเว้นตัวพิมพ์ใหญ่จะถูกตีความตามตัวอักษร ตัวพิมพ์ใหญ่แสดงถึง ความกว้าง วัดเป็นคอลัมน์ ส่วนสูง วัดเป็นแถวและ เอ็กซ์แอนด์วาย ออฟเซ็ตจากตำแหน่งหน้าจอ (0,0)

ฉันเคยเขียนคำสั่งให้บันทึกไปที่ $HOME คำสั่งบันทึกไปที่ ~/.bashrcซึ่งคงอยู่มัน นี่เป็นแนวคิดที่ฉันเชื่อว่าฉันได้รับจากไซต์เดียวกันนี้เมื่อนานมาแล้ว แต่ตอนนี้ฉันใช้วิธีการประดิษฐ์ขึ้นเองเมื่อต้องเขียนสคริปต์การทำงานของสคริปต์

เป็นหมายเหตุด่วน: ถ้าฉันเปลี่ยนแปลงตัวเองใน Ubuntu ฉันแค่สร้าง (หรือเปลี่ยนเป็น) อันอื่น โปรไฟล์เทอร์มินัล. โปรไฟล์ l ใหม่แต่ละโปรไฟล์ที่คุณสร้างในการตั้งค่า "การตั้งค่า" ของเทอร์มินัล gui ช่วยให้คุณระบุสี b-g ความโปร่งใส ฯลฯ ของเทอร์มินัลพร้อมกับการตั้งค่าที่กล่าวถึงก่อนหน้านี้

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

ในที่สุดฉันก็เปิดแยกกับ ~/.bash-นามแฝง โหลดไปที่บัฟเฟอร์และตั้งค่านามแฝงสำหรับแต่ละอินสแตนซ์ของคำสั่ง

จากนั้นฉันก็สามารถใส่ชื่อตัวอักษรได้ 3-4 ตัว เช่น อาจจะ กลาง ในแต่ละครั้งฉันต้องการกระบวนการใหม่ของ guit terminal เพื่อเปิดใช้งานตรงกลางหน้าจอ

Score:1
ธง in

ขอบคุณเนท. ฉันใช้ความคิดที่คุณให้ฉันและคิดสคริปต์นั้นขึ้นมาเพื่อแก้ปัญหาของฉัน เป็นสคริปต์หลามที่ออกแบบมาโดยเฉพาะสำหรับความละเอียดของฉันซึ่งก็คือ 1920x1080 นอกจากนี้ยังขึ้นอยู่กับเครื่องมือที่เรียกว่า wmctrl นี่คือสคริปต์:

#!/usr/bin/python3

นำเข้าระบบปฏิบัติการ


def กำจัด (iter):
    ความละเอียด = []
    สำหรับฉันใน iter:
        ถ้าฉัน:
            res.append(i)
    คืนความละเอียด


พื้นที่ทำงาน = "wmctrl -d | grep '*' | ตัด -d ' ' -f1 > /tmp/curr_ws"

os.system (พื้นที่ทำงาน)
out_workspace = ""
ด้วย open("/tmp/curr_ws","r") เป็น f:
    out_workspace = f.read()
out_workspace = int (พื้นที่ทำงานนอก)
พิมพ์ ("DEBUG: พื้นที่ทำงานปัจจุบัน:", out_workspace)

ตำแหน่ง = 'wmctrl -lG | grep "กาลี:" | grep "^........... {0}" | tr -s " " | ตัด -d " " -f 3,4 > /tmp/positions'.format(out_workspace)
ขนาด = 'wmctrl -lG | grep "กาลี:" | grep "^........... {0}" | tr -s " " | ตัด -d " " -f 5,6 > /tmp/sizes'.format(out_workspace)

os.system(ตำแหน่ง)
out_positions = ""
ด้วย open("/tmp/positions","r") เป็น f:
    out_positions = f.read()
out_positions = กำจัด (out_positions.split ("\n"))

os.system (ขนาด)
out_sizes = ""
ด้วย open("/tmp/sizes","r") เป็น f:
    out_sizes = f.read()
out_sizes = กำจัด (out_sizes.split ("\n"))

terminal_positions = [[110, 101, 854, 479], [973, 101, 854, 479], [110, 611, 854, 479], [973, 611, 854, 479]]
terminal_strings = ["gnome-terminal --geometry 105x25+100+45", "gnome-terminal --geometry 105x25+963+45",
                    "gnome-terminal --geometry 105x25+100+555", "gnome-terminal --geometry 105x25+963+555"]

parsed_positions = []
สำหรับผมในช่วง (0,len (out_positions)):
    parsed_positions.append([ int(out_positions[i].split(" ")[0]),int(out_positions[i].split(" ")[1]),int(out_sizes[i].split(" " )[0]),int(out_sizes[i].split(" ")[1]) ])
พิมพ์ ("DEBUG: ตำแหน่ง:", parsed_positions)

ตรวจสอบ def (term_pos, parsed_pos):
    ดัชนี = 0
    เหลื่อมกัน = เท็จ
    สำหรับฉันใน terminal_positions:
        เหลื่อมกัน = เท็จ
        สำหรับ j ใน parsed_positions:
            ax0 = term_left_start = ฉัน[0]
            ay0 = term_up_start = ฉัน[1]
            ax1 = term_left_end = ฉัน[0] + ฉัน[2]
            ay1 = term_up_end = ฉัน[1] + ฉัน[3]
            
            bx0 = pars_left_start = j[0]
            by0 = pars_up_start = j[1]
            bx1 = pars_left_end = j[0] + j[2]
            by1 = pars_up_end = j[1] + j[3]

            # ถ้า term_left_start >= pars_left_end หรือ term_left_end <= pars_left_start หรือ term_up_end <= pars_up_start หรือ term_up_start >= pars_up_end:
            #ซ้อน = จริง

            ถ้า ((bx0 <= ax0) และ (ax1 <= bx1)) หรือ ((ax0 <= bx0 <= ax1) และ (ax1 <= bx1)) หรือ ((ax0 >= bx0) และ (ax1 >= bx1 > = ax0)) หรือ ((ax0 <= bx0 <= ax1) และ (ax1 >= bx1 >= ax0)):
                ถ้า ((by0 <= ay0) และ (ay1 <= by1)) หรือ ((ay0 <= by0 <= ay1) และ (ay1 <= by1)) หรือ ((ay0 >= by0) และ (ay1 >= by1 > = ay0)) หรือ ((ay0 <= by0 <= ay1) และ (ay1 >= by1 >= ay0)):
                    เหลื่อม = จริง

        หากทับซ้อนกัน:
            ดัชนี += 1
        อื่น:
            ดัชนีผลตอบแทน


    กลับ -1


สถานที่ = ตรวจสอบ (terminal_positions, parsed_positions)

ถ้าสถานที่ == -1:
    os.system ("คำพังเพยเทอร์มินัล")
อื่น:
    os.system (terminal_strings[สถานที่])

คุณต้องรวมตำแหน่งของสคริปต์ในตัวแปร PATH ของคุณ จากนั้นกำหนดทางลัดให้กับคำสั่งที่เรียกใช้สคริปต์

Nate T avatar
it flag
ยอดเยี่ยม! มันดูดี. สิ่งเล็ก ๆ เดียวที่ฉันเห็นคือตรรกะ _maybe_ สำหรับการรับความยาวและความกว้าง ดูท่าทางแล้ว การดำเนินการและคำสั่งอาจล้าหลัง ถ้าฉันพูดถูก คุณจะไม่มีทางสังเกตเห็นตราบใดที่ตัวเลขต่ำ x0 และ y0 มีค่าเป็นศูนย์ อย่างไรก็ตาม หากค่านี้เคลื่อนไปในทิศทางใดทิศทางหนึ่ง จะทำให้การแสดงผลดับลงหากสิ่งนี้เกิดขึ้น ให้เปลี่ยนตำแหน่งตัวถูกดำเนินการในตัวดำเนินการ
Nate T avatar
it flag
ตัวอย่างเช่น `x[0] + x[1]` จะเปลี่ยนเป็น `x[1] - x [0]` ฉันน่าจะผิด เพราะฉันดูมันแค่สองสามนาที และคุณคงจ้องมันนานเท่าไหร่ใครจะรู้ ฉันรู้แค่ว่าถ้าไม่พูดอะไรฉันก็จะลืมมันไป และทันทีที่ฉันไม่พูดอะไรมันก็จะถูก ดังนั้นเอาไปด้วยเกลือเม็ดหนึ่ง ไม่ได้พยายามที่จะแยกออกเป็นการตรวจสอบโค้ด ฉันแค่เห็นบางทีและคิดว่าฉันจะพูดอะไรบางอย่าง คุณควรตรวจสอบการแก้ไขเพื่อรับข้อโต้แย้ง (อาจเป็น device.conf?) และดูเกี่ยวกับ pack/pub
Nate T avatar
it flag
มันแก้ปัญหาเฉพาะ อุปกรณ์หนึ่งเครื่องได้รับการกำหนดค่าไว้ล่วงหน้าในหลาย distros ฉันแน่ใจว่ามีเครื่องมืออยู่แล้ว เพราะมีมากมาย แต่เนื่องจากมีจำนวนมาก ไม่มีใครรู้เกี่ยวกับพวกเขาส่วนใหญ่ ดังนั้นยิ่งมากยิ่งดี! ...? ...! ฉัน
Muhammed Özen avatar
in flag
ขอบคุณมากสำหรับคำแนะนำ ใช่ คุณพูดถูกและพูดตามตรงว่าฉันไม่พบสคริปต์ที่ทำแบบนั้น ฉันแน่ใจว่ามีมากมายที่นั่น แต่ฉันไม่เคยพบเจอเลย สคริปต์ยังมีจุดบกพร่องอื่นซึ่งเมื่อใดก็ตามที่ฉันดึงเทอร์มินัลลงมาแต่ไม่ได้ปิด มันจะถือว่ามันยังอยู่ที่นั่น และเพื่อป้องกันการทับซ้อนกัน มันจะเปิดเทอร์มินัลในตำแหน่งถัดไป ฉันไม่รู้ว่าจะแก้ไขอย่างไร แต่ขอบคุณมากสำหรับความช่วยเหลือของคุณ
Nate T avatar
it flag
มีฐานข้อมูลในระบบลินุกซ์ที่เรียกว่า `terminfo` หรือสิ่งที่คล้ายกันซึ่งเก็บข้อมูลทั้งหมดนี้ไว้ มันอาจจะลงท้ายด้วย '.d' ฉันรับประกันว่าคำตอบของคุณจะอยู่ที่นั่น
Muhammed Özen avatar
in flag
ขอบคุณมากอีกครั้ง ฉันจะตรวจสอบมัน

โพสต์คำตอบ

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