всегда активное окно, возможно?

есть ли возможность сделать так, что-бы софтина всегда думала, что её окно активно?
может через xdotool?
или возможно можно сделать отдельный рабочий стол независимый от обычных?
Не совсем понятна задача, но, может быть, вот это?

xorg-server-xvfb
задача проста, к примеру запускаю это на 4 рабочем столе, переключаюсь на другой раб стол и занимаюсь своими делами, после чего возвращаюсь и вижу надпись(в консольке) что фокус был утерян, так вот нужно сделать так чтоб окно не получало сигнал об утере фокуса, при этом естественно чтоб с мышки-клавиатуры ничего туда не попадало

#!/usr/bin/env python3
import tkinter as tk

def handle_focus(event):
    if event.widget == root:
        print("Фокус утерян ...")

root = tk.Tk()
root.bind("<FocusOut>", handle_focus)
root.mainloop()

может виртуальный монитор как-то или типа того?
Разве что еще
xpra ("X Persistent Remote Applications")
это типа screen или tmux для иксов.

Логика мне подсказывает, что в одном экземпляре Xorg сервера навряд ли можно иметь одновременно два окна в фокусе. Скорее всего, лучше поменять логику работы приложения, которое требует постоянного фокуса.
kurych
лучше поменять логику работы приложения,
наоборот, задача обмануть софт который хочет активного окна
grayich
что-бы софтина всегда думала, что её окно активно
Пойдем от определения - что такое активное окно приложения?
Имхо, я понимаю это так (когда встречалось такое определение) окно приложения активно, если содержит фокус ввода.
Что такое фокус ввода? - имхо, это указатель устройства ввода, например, мыши.
И выходит, убираем указатель ввода и окно уже не активно.
А возможно ли постоянно держать указатель ввода в окне приложения и в тоже время перейти в другое окно и тем самым перенести туда же и указатель ввода и чтобы оба окна были при этом активными?
Очевидно, что нельзя. Но остается маленький шансик - иметь два независимых указателя ввода. Но возможно ли такое? - никогда о таком не слышал.
Это всего лишь размышления, возможно и ошибочные.
Ошибки не исчезают с опытом - они просто умнеют
ошибочные )
grayich, что ты можешь сделать это хакнуть код проги или исходник, или бинарник, или код уже в памяти отвечающий за реакцию на событие потери фокуса.
вроде можно еще хакнуть код WM или самого сервера Xorg, что бы не передавалось нужному клиенту событие потери фокуса.
я как то сам похожим вопросом занимался, но для меня это оказалось слишком сложно, да не сильно и нужно было, так ради развлечения )))
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
nafanja
это хакнуть код проги или исходник, или бинарник, или код уже в памяти отвечающий за реакцию на событие потери фокуса
nafanja, правильное предложение - переход на новый уровень. Поддерживаю. На 1-ом, обычном, уровне эта задача не решается.
Правда есть у меня сомнения - завязка на системный уровень, не понятно как там все это завязано. Конечно, разработчику исходников алгоритм понятен и он бы, думаю, быстро решил эту проблему. Но не сдаваться же на этом.
Дальше ностальгия ...
Ну а раньше в винде об этом и не думали - есть прога и нужно сделать то то и то то, и нет даже исходников, один бинарник. Запускаешь отладчик, при необходимости дизассемблер и нагружая молодой мозг и напрягая глазки отыскиваешь нужный место и …. попадаешь совсем в другое место программы, в котором она тебя и не ждет. Сколько радости и восторга испытываешь при этом - не описать. В linux это намного упрощается в виду наличия и исходников и возможности сбрать прогу с отладочной информацией.
НО в LINUX другая идеология, которой претит запретный плод ...
Ошибки не исчезают с опытом - они просто умнеют
Тут вопрос в том, насколько важно взаимодействие данной софтины с другими программами, запущенными в этом же X-сервере. Например, работа с общим буфером обмена. Если такое взаимодействие не требуется, то решение "в лоб" - запускать эту софтину во вторичном X-сервере, например, Xephyr. Тогда фокус в первичном X-сервере будет терять окно Xephyr, а эта софтина внутри Xephyr всегда останется в фокусе, бо она единственная. Правда, есть некоторое неудобство с горячими клавишами захвата мыши и клавы, так что тут тоже не безоблачно...
Ну и совсем уж черезжопное (но работающее) решение - запускать эту софтину в виртуальной машине.

А может, лучше просто поработать над собой и забить на надпись о потере фокуса? :)
 
Зарегистрироваться или войдите чтобы оставить сообщение.