Самый простой способ сделать это - использовать wmctrl. Вы можете прочитать man wmctrl, чтобы узнать, как его использовать.
sudo apt-get install wmctrl
Вы могли бы связать командную строку с классом «Window» и добавить к ней методы, которые используют команды wmctrl в фоновом режиме. [ ! d3]
class Window
@@windows = []
def self.windows
@@windows
end
def self.get_windows
@@windows.clear
`wmctrl -l`.split("\n").map do |str|
@@windows << self.class.new(str.split(' ')*)
end
end
def initialize window_id, desktop_id, client_machine, window_title
#set up object here
end
#add other methods here
end
Это должно быть хорошей отправной точкой. Это не протестировано или что-то еще, но вы должны уметь это отсюда. Теперь вы можете добавить методы экземпляра, например. change_geometry, который мог бы использовать опцию -r
Прежде чем делать это, вы должны сначала ознакомиться с wmctrl и IO.
Возможно когда вы достигли того, что вам нужно, вы можете распространять это как рубиновую библиотеку и упаковать ее для Debian / Ubuntu.
Вы можете проверить JSWare, который является VBScript-движком для Linux-систем.