Điểm:-2

Vị trí mặc định của thiết bị đầu cuối Ubuntu

lá cờ in

Như nhiều bạn đã biết, bất cứ khi nào bạn mở một cửa sổ đầu cuối mới trên Ubuntu, nó sẽ nằm ở phần trên bên trái của màn hình. Cái tiếp theo nằm ngay bên dưới nó. Cái thứ ba ở phía trên bên phải, cái thứ tư ở phần dưới cùng bên phải của màn hình. Tôi muốn thêm chức năng đó vào một bản phân phối Linux khác mà tôi hiện đang sử dụng. Tôi chỉ muốn biết làm thế nào điều này được xử lý trong Ubuntu.

Ngoài ra, điều đó không chỉ hoạt động với gnome-terminal. Nó hoạt động với mọi trình giả lập thiết bị đầu cuối mà tôi đã tải xuống cho đến nay. Vì vậy, tôi thực sự nghĩ rằng đó không phải là vấn đề cụ thể đối với trình giả lập thiết bị đầu cuối.Có ai biết làm thế nào điều này được xử lý?

Điểm:2
lá cờ it

SỰ GIỚI THIỆU

Tôi khuyên bạn nên tìm hiểu công cụ mà bạn sẽ chuyển sang. Hầu như tất cả các thiết bị đầu cuối đều có một số loại tệp cấu hình, chẳng hạn như alacritty. Điều đó nói rằng, đây là một vài "thủ thuật" mà tôi đã tình cờ gặp được trong quá trình thực hiện.

LÀM THẾ NÀO TÔI LÀM ĐIỀU ĐÓ

Khi bạn khởi chạy một thiết bị đầu cuối, có một tùy chọn cho phép bạn đặt cả kích thước và độ lệch X và Y của nó.

tùy chọn là --hình học, và nó là có sẵn trên nhiều (hầu hết?) trình giả lập thiết bị đầu cuối linux. Thiết bị đầu cuối Gnome cũng không ngoại lệ. Đối với một luôn giải pháp, một số nhà phát triển không dành thời gian để xây dựng các hook tự động hóa siêu người dùng/lập trình viên bổ sung..

Cú pháp để sử dụng tùy chọn hình học với thiết bị đầu cuối của chúng tôi như sau:

$ gnome-terminal --geometry WxH+X+Y

Lưu ý rằng trong chuỗi đối số, mọi thứ trừ chữ hoa sẽ được diễn giải theo nghĩa đen. Mũ đại diện cho chiều rộng đo bằng cột, Chiều cao được đo theo hàng và X & Y offset từ vị trí màn hình (0,0).

Tôi đã từng viết ra một lệnh để lưu nó vào $HOME, lưu vào ~/.bashrc, mà vẫn tồn tại nó. Đây là một ý tưởng mà tôi tin rằng tôi đã nhận được từ cùng một trang web này từ lâu, nhưng bây giờ tôi sử dụng một phương pháp do chính mình nghĩ ra khi tôi cần viết kịch bản cho chức năng.

Lưu ý nhanh: Nếu tôi đang thay đổi chính mình trong Ubuntu, tôi chỉ cần tạo (hoặc thay đổi thành) một cái khác hồ sơ thiết bị đầu cuối. Mỗi cấu hình l mới mà bạn tạo trong cài đặt "tùy chọn" của gui thiết bị đầu cuối cho phép bạn chỉ định màu b-g, độ trong suốt, v.v. của thiết bị đầu cuối cùng với các cài đặt đã đề cập trước đó.

Tôi cũng sẽ mở vim và in lệnh trên thành một dòng. Tiếp theo, tôi sẽ sao chép nó theo chiều dọc nhiều lần nếu cần và định cấu hình từng kích thước/vị trí thuận tiện.

Cuối cùng, tôi mở một cuộc chia tay với ~/.bash-bí danh được tải vào bộ đệm của nó và đặt bí danh cho từng phiên bản của lệnh.

Sau đó, tôi có thể đặt một tên 3-4 chữ cái, như có thể tầm trung trong mỗi lần tôi cần một quy trình mới của thiết bị đầu cuối guit để khởi chạy ở giữa màn hình.

Điểm:1
lá cờ in

Cảm ơn bạn. Tôi đã sử dụng ý tưởng mà bạn đưa ra và nghĩ ra kịch bản đó để giải quyết vấn đề của tôi. Đó là tập lệnh python được thiết kế riêng cho độ phân giải của tôi là 1920x1080. Nó cũng phụ thuộc vào một công cụ gọi là wmctrl. Đây là kịch bản:

#!/usr/bin/python3

nhập hệ điều hành


def loại bỏ (iter):
    độ phân giải = []
    cho tôi trong iter:
        nếu tôi:
            res.append(i)
    trả lại độ phân giải


không gian làm việc = "wmctrl -d | grep '*' | cut -d ' ' -f1 > /tmp/curr_ws"

os.system(không gian làm việc)
out_workspace = ""
với open("/tmp/curr_ws","r") là f:
    out_workspace = f.read()
out_workspace = int(out_workspace)
print("DEBUG: Không gian làm việc hiện tại:", out_workspace)

vị trí = 'wmctrl -lG | grep "kali:" | grep "^........... {0}" | tr -s " " | cắt -d " " -f 3,4 > /tmp/positions'.format(out_workspace)
kích thước = 'wmctrl -lG | grep "kali:" | grep "^........... {0}" | tr -s " " | cắt -d " " -f 5,6 > /tmp/sizes'.format(out_workspace)

os.system(vị trí)
out_positions = ""
với open("/tmp/positions","r") là f:
    out_positions = f.read()
out_positions = loại bỏ(out_positions.split("\n"))

os.system(size)
out_size = ""
với open("/tmp/sizes","r") là f:
    out_sizes = f.read()
out_sizes = loại bỏ(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 = []
cho tôi trong phạm vi (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]) ])
print("DEBUG: Vị trí:", parsed_positions)

kiểm tra def(term_pos, parsed_pos):
    chỉ số = 0
    trùng lặp = Sai
    cho tôi trong terminal_positions:
        trùng lặp = Sai
        cho j trong parsed_positions:
            ax0 = term_left_start = i[0]
            ay0 = term_up_start = i[1]
            ax1 = term_left_end = i[0] + i[2]
            ay1 = term_up_end = i[1] + i[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]

            # nếu term_left_start >= pars_left_end hoặc term_left_end <= pars_left_start hoặc term_up_end <= pars_up_start hoặc term_up_start >= pars_up_end:
            # chồng chéo = True

            if ((bx0 <= ax0) and (ax1 <= bx1)) or ((ax0 <= bx0 <= ax1) and (ax1 <= bx1)) or ((ax0 >= bx0) and (ax1 >= bx1 > = ax0)) hoặc ((ax0 <= bx0 <= ax1) và (ax1 >= bx1 >= ax0)):
                if ((by0 <= ay0) and (ay1 <= by1)) or ((ay0 <= by0 <= ay1) and (ay1 <= by1)) or ((ay0 >= by0) and (ay1 >= by1 > = ay0)) hoặc ((ay0 <= by0 <= ay1) và (ay1 >= by1 >= ay0)):
                    trùng lặp = Đúng

        nếu chồng chéo:
            chỉ số += 1
        khác:
            chỉ số trả về


    trả về -1


địa điểm = kiểm tra (terminal_positions, parse_positions)

nếu địa điểm == -1:
    os.system("gnome-terminal")
khác:
    os.system(terminal_strings[place])

Bạn phải bao gồm vị trí của tập lệnh trong biến PATH của mình, sau đó gán phím tắt cho lệnh thực thi tập lệnh

Nate T avatar
lá cờ it
Xuất sắc! Nó có vẻ tốt. Điều nhỏ duy nhất tôi thấy là logic _maybe_ để lấy chiều dài và chiều rộng. Nhìn bề ngoài, hoạt động và trật tự của chúng có thể lạc hậu. Nếu tôi đúng, bạn sẽ không bao giờ nhận thấy nó miễn là các số thấp x0 và y0 có giá trị bằng không. Tuy nhiên, nếu giá trị này di chuyển theo một trong hai hướng, nó sẽ khiến màn hình tắt.Nếu điều này xảy ra, chỉ cần chuyển vị trí toán hạng trong toán tử.
Nate T avatar
lá cờ it
Ví dụ: `x[0] + x[1]` sẽ được đổi thành `x[1] - x [0]`. Rất có thể là tôi đã nhầm, vì tôi mới chỉ xem nó trong vài phút và có lẽ bạn đã nhìn chằm chằm vào nó không biết bao lâu. Tôi chỉ biết nếu tôi không nói điều gì đó thì tôi sẽ quên nó đi. Và ngay khi tôi không nói gì, nó sẽ đúng. Vì vậy, lấy nó với một hạt muối. Không cố gắng lao vào đánh giá mã, tôi chỉ thấy có thể và nghĩ rằng mình sẽ nói điều gì đó. Bạn nên xem xét sửa đổi để lấy đối số (có thể là device.conf?) Và xem về pack/pub.
Nate T avatar
lá cờ it
Nó giải quyết một vấn đề duy nhất. Một thiết bị được cấu hình sẵn trên nhiều bản phân phối. Tôi chắc chắn rằng đã có một công cụ sẵn có, bởi vì có rất nhiều. Nhưng vì có quá nhiều nên hầu hết không ai biết về chúng, vì vậy càng nhiều càng tốt! ...? ...! Tôi
Muhammed Özen avatar
lá cờ in
Cảm ơn bạn rất nhiều vì lời đề nghị. Vâng, bạn nói đúng và thành thật mà nói, tôi không thể tìm thấy bất kỳ kịch bản nào làm được điều đó. Tôi chắc chắn có rất nhiều ngoài kia nhưng tôi chưa bao giờ gặp phải bất kỳ ai trong số họ. Tập lệnh cũng có một lỗi khác, đó là bất cứ khi nào tôi hạ thiết bị đầu cuối nhưng không đóng nó, nó sẽ cho rằng nó vẫn ở đó và để tránh chồng chéo, nó sẽ mở thiết bị đầu cuối ở vị trí tiếp theo. Tôi không biết làm thế nào để giải quyết nó nhưng cảm ơn bạn rất nhiều vì sự đóng góp của bạn
Nate T avatar
lá cờ it
Có một cơ sở dữ liệu trong các hệ thống linux được gọi là `terminfo` hoặc một cái gì đó tương tự lưu trữ tất cả thông tin này. Nó có thể kết thúc bằng '.d'. Tôi đảm bảo câu trả lời của bạn sẽ ở đó.
Muhammed Özen avatar
lá cờ in
Cảm ơn bạn rất nhiều một lần nữa. tôi sẽ kiểm tra

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.