LINUX.ORG.RU

История изменений

Исправление papin-aziat, (текущая версия) :

В ~/.config/autostart (у меня гном {закомментил}) devilspie2.desktop:

[Desktop Entry]
Name=devilspie2
# Icon=preferences-system-windows
Exec=devilspie2
Terminal=false
Type=Application
# X-GNOME-Autostart-enabled=true

У меня документация в /usr/share/doc/devilspie2/README
Срипты класть в ~/.config/devilspie2
Для удобства, чтоб не запоминать, где почитать

ln -s /usr/share/doc/devilspie2/README ~/.config/devilspie2/README

Надо туда положить скриптик для дебага, чтоб получать инфу об окне, у меня как-то так

debug_print("================================================================================");
debug_print("Application: " .. get_application_name());
debug_print("Window NAME: " .. get_window_name());
debug_print("Window CLASS: " .. get_window_class());
debug_print("CLASS instance: " .. get_class_instance_name());
debug_print("Window TYPE: " .. get_window_type());
debug_print("Window ROLE: " .. get_window_role());
x, y, width, height = get_window_geometry();
debug_print("Geometry: X: "..x..", Y: "..y..", width: "..width..", height: "..height);

Теперь, когда нужное окно открыто, можно глянуть его свойства

devilspie2 -de
# Ctrl+C, чтоб не висел второй процесс

К сожалению, не все окна распознаются при открытии, например firefox очень вредный, приходится по-всякому подшаманивать.

Для окошек, к которым привязываешь события на открытии, просто кладёшь скрипты с расширением .lua в каталог. Для тех, к которым на закрытии, чуть сложнее: должен быть скрипт devilspie2.lua, в котором указывать скипты, которые работают на закрытии окон (иначе будут работать на открытии), например

scripts_window_close = {
    "foo.lua",
    "bar.lua",
    "another.lua"
}

После манипуляций со скриптами перезапускать devilspie2 не надо (он тупо читает каждый раз заново), но если косячил в скриптах, то лучше проверить наличие процесса (у меня падал много раз из-за косяков).

Вроде всё. Ну, и если не хватает штатных возможностей, то через os.execute творишь любую дичь на открытии и закрытии окон типа

if (get_window_name() == "Telegram") then
    os.execute("kill $(pgrep Telegram)");
end

Исправление papin-aziat, :

В ~/.config/autostart (у меня гном {закомментил}) devilspie2.desktop:

[Desktop Entry]
Name=devilspie2
# Icon=preferences-system-windows
Exec=devilspie2
Terminal=false
Type=Application
# X-GNOME-Autostart-enabled=true

У меня документация в /usr/share/doc/devilspie2/README
Срипты класть в ~/.config/devilspie2
Для удобства, чтоб не запоминать, где почитать

ln -s /usr/share/doc/devilspie2/README ~/.config/devilspie2/README

Надо туда положить скриптик для дебага, чтоб получать инфу об окне, у меня как-то так

debug_print("================================================================================");
debug_print("Application: " .. get_application_name());
debug_print("Window NAME: " .. get_window_name());
debug_print("Window CLASS: " .. get_window_class());
debug_print("CLASS instance: " .. get_class_instance_name());
debug_print("Window TYPE: " .. get_window_type());
debug_print("Window ROLE: " .. get_window_role());
x, y, width, height = get_window_geometry();
debug_print("Geometry: X: "..x..", Y: "..y..", width: "..width..", height: "..height);

Теперь, когда нужное окно открыто, можно глянуть его свойства

devilspie2 -d
# Ctrl+C, чтоб не висел второй процесс

К сожалению, не все окна распознаются при открытии, например firefox очень вредный, приходится по-всякому подшаманивать.

Для окошек, к которым привязываешь события на открытии, просто кладёшь скрипты с расширением .lua в каталог. Для тех, к которым на закрытии, чуть сложнее: должен быть скрипт devilspie2.lua, в котором указывать скипты, которые работают на закрытии окон (иначе будут работать на открытии), например

scripts_window_close = {
    "foo.lua",
    "bar.lua",
    "another.lua"
}

После манипуляций со скриптами перезапускать devilspie2 не надо (он тупо читает каждый раз заново), но если косячил в скриптах, то лучше проверить наличие процесса (у меня падал много раз из-за косяков).

Вроде всё. Ну, и если не хватает штатных возможностей, то через os.execute творишь любую дичь на открытии и закрытии окон типа

if (get_window_name() == "Telegram") then
    os.execute("kill $(pgrep Telegram)");
end

Исходная версия papin-aziat, :

В ~/.config/autostart (у меня гном {закомментил}) devilspie2.desktop:

[Desktop Entry]
Name=devilspie2
# Icon=preferences-system-windows
Exec=devilspie2
Terminal=false
Type=Application
# X-GNOME-Autostart-enabled=true

У меня документация в /usr/share/doc/devilspie2/README
Срипты класть в ~/.config/devilspie2
Для удобства, чтоб не запоминать, где почитать

ln -s /usr/share/doc/devilspie2/README ~/.config/devilspie2/README

Надо туда положить скриптик для дебага, чтоб получать инфу об окне, у меня как-то так

debug_print("================================================================================");
debug_print("Application: " .. get_application_name());
debug_print("Window NAME: " .. get_window_name());
debug_print("Window CLASS: " .. get_window_class());
debug_print("CLASS instance: " .. get_class_instance_name());
debug_print("Window TYPE: " .. get_window_type());
debug_print("Window ROLE: " .. get_window_role());
x, y, width, height = get_window_geometry();
debug_print("Geometry: X: "..x..", Y: "..y..", width: "..width..", height: "..height);

Теперь, когда нужное окно открыто, можно глянуть его свойства

devilspie2 -d
# Ctrl+C, чтоб не висел второй процесс

К сожалению, не все окна распознаются при открытии, например firefox очень вредный, приходится по-всякому подшаманивать.

Для окошек, к которым привязываешь события на открытии, просто кладёшь скрипты с расширением .lua в каталог. Для тех, к которым на закрытии, чуть сложнее: должен быть скрипт devilspie2.lua, в котором указывать скипты, которые работают на закрытии окон (иначе будут работать на открытии), например

scripts_window_close = {
	"foo.lua",
	"bar.lua",
	"another.lua"
}

После манипуляций со скриптами перезапускать devilspie2 не надо (он тупо читает каждый раз заново), но если косячил в скриптах, то лучше проверить наличие процесса (у меня падал много раз из-за косяков).

Вроде всё. Ну, и если не хватает штатных возможностей, то через os.execute творишь любую дичь на открытии и закрытии окон типа

if (get_window_name() == "Telegram") then
	os.execute("kill $(pgrep Telegram)");
end