Giới thiệu về wmctrl
Với wmctrl
(không được cài đặt theo mặc định), chúng ta có thể lấy thông tin trên các cửa sổ, id của chúng, hình học của chúng, pid chúng thuộc về v.v. Chúng ta cũng có thể di chuyển hoặc thay đổi kích thước các cửa sổ bằng một số lệnh. Tuy nhiên, ở một số khía cạnh, hành vi của nó có vẻ không logic. Câu hỏi của tôi là về việc di chuyển các cửa sổ bằng cách wmctrl
:
Lấy thông tin
Khi tôi chạy lệnh:
wmctrl -lG
Tôi nhận được (ao) các thông tin sau về cửa sổ trong ảnh bên dưới:
0x04200085 0 746 443 468 205 jacob-System-Product-Name Niet-opgeslagen document 1 - gedit
Trong cột 3-5, thông tin hình học cho chúng ta biết tọa độ x / y và chiều rộng / chiều cao.
Di chuyển / thay đổi kích thước cửa sổ
Khi tôi đặt các tọa độ này trong wmctrl
lệnh để di chuyển / thay đổi kích thước cửa sổ, nó sẽ không làm gì cả, vì tọa độ không thay đổi:
wmctrl -ir 0x04200085 -e 0,746,443,468,205
Độ lệch
Tuy nhiên, các hình ảnh dưới đây cho thấy cửa sổ được di chuyển xuống dưới (chính xác là 28px). Tôi giả sử lý do là lệnh wmctrl
di chuyển cửa sổ được tính toán với vùng làm việc (màn hình trừ chiều cao bảng điều khiển), trong khi wmctrl -lG
lệnh được tính với tổng kích thước màn hình . Tuy nhiên, 4px vẫn không giải thích được (bảng điều khiển cao 24px).
Mặc dù độ lệch rất có thể được bù trong các tập lệnh, nhưng thực tế là tôi không hiểu nguyên nhân là không thỏa mãn, vì vậy câu hỏi là:
Chính xác nguyên nhân của sự sai lệch này là gì?
Di chuyển một cửa sổ có tọa độ chính xác trong đầu ra wmctrl -lG
không nên di chuyển cửa sổ, nhưng nó không