LINUX.ORG.RU

как сделать в XLib неперемещаемое и незакрываемое окно

 


1

2

Как на xlib, имея заполненные display и windowId окна, задать ему, чтобы пользователь не мог это окно передвинуть мышкой, не мог изменить его размер, не мог закрыть, нажав на крестик в заголовке.

Пока разбираюсь с этим API, вызовами XWindowAttributes, XSelectInput и прочими, может кто уже это хорошо помнит. Хороший ответ сэкономил бы мне время на разбор доков.

Также читал, что некоторые вызовы не работают на FVVM и/или KDE. Поэтому было бы неплохо получить кросс-DE ответ.

Вот первые плоды популяризации линукс. Поиск на лоре решения как запилить под этот зоопарк универсальный винлокер.

anonymous
()

Почитай книгу «Делаем порнобанер за 5 минут и зарабатываем деньги!». Вещь, рекомендую

esandmann
()

В общем случае никак. Если точнее, то в настройках соответствующего WindowManager'а.

Например, для Fvwm:

Style MyProgram Sticky,IgnoreRestack,FixedPosition,FixedSize,!Closable

Правда закрыть окно нельзя, но прибить (Destroy) программу (в том числе через GUI) всё равно можно.

monk ★★★★★
()
Ответ на: комментарий от peregrine

Мой сарказм оказался таким тонким, что его не заметили. ):

Lilly
()
Ответ на: комментарий от Lilly

Это окно виртуальной клавиатуры на терминале без клавиатуры, с сенсорным экраном. Под Linux достаточно хороших виртуальных клавиатур, и я делаю прототип программы, которая бы могла использовать любую такую готовую (florence пока что больше всех нравится по возможностям и настраиваемому внешнему виду).

dmitryshm
() автор топика
Ответ на: комментарий от dmitryshm

Это окно виртуальной клавиатуры на терминале без клавиатуры, с сенсорным экраном

Ага, так мы тебе и поверили.

fat_angel ★★★★★
()
Ответ на: комментарий от dmitryshm

Это окно виртуальной клавиатуры на терминале без клавиатуры, с сенсорным экраном.

На Qt Quick твоя задача решается не просто, а очень просто и не нужны тебе оконные системы, тем более такое говно мамонта как иксы.

anonymous
()
Ответ на: комментарий от anonymous

Компонент виртуальной клавиатуры в QtQuick лицензионный, пока делаю прототип, то без него пока.

Ну и если ты знаешь этот очень легкий способ, то расскажи пожалуйста. QtQuick я очень мало пользовался.

dmitryshm
() автор топика
Ответ на: комментарий от dmitryshm

Компонент виртуальной клавиатуры в QtQuick лицензионный

как будто кроме digia код никто не пишет

Ну и если ты знаешь этот очень легкий способ, то расскажи пожалуйста.

git clone && qmake && make

https://github.com/nemomobile/fingerterm/tree/qtquick2

http://i62.fastpic.ru/big/2014/0527/0a/b10128af36fa742615d589e32853b30a.jpg

anonymous
()
Ответ на: комментарий от anonymous

О, то что надо. Спасибо. Почему-то мне этот вариант не вышел в гуглопоиске среди первых страниц. Спасибо.

dmitryshm
() автор топика

Взгляни на maliit. Виртуальный кейборд, что используется в meego harmattan, kde plasma active и где-то еще. Хорошая вещь.

NeverLoved ★★★★★
()

не мог закрыть, нажав на крестик в заголовке.


ctrl+alt+F2

login

export DISPLAY=:0

xkill

ctrl+alt+F7

mouse click

Goodbue, honey.

Ygor ★★★★★
()

Надо просто окно без заголовка показывать.

anonymous
()
Ответ на: комментарий от MiniRoboDancer

не на всех системах

ужас какой.

ТС советую дождаться «вяленого» там имх такое УГ можно запилить.

Ygor ★★★★★
()
Ответ на: комментарий от Ygor

ужас какой

Ну это всё равно что вместо «нажмите кнопку Пуск» писать «щёлкните в левом нижнем углу экрана». Может, у него панель задач в другом месте или вообще выпилена.

MiniRoboDancer ★☆
()
Ответ на: комментарий от Ygor

ТС советую дождаться «вяленого» там имх такое УГ можно запилить.

А что в том же «вяленом» или сейчас в иксах что-то будет мешать перейти в tty и там хлопнуть процесс? Или еще проще убить текущие gdm/kdm/xdm/... и запустить новую сессию с одними единственными чистыми иксами а дальше тупо удалить дрянь из автозагрузки. Еще проще даже не удалять а просто найти её «бинарь» и лишить бита исполнимости.

Надо просто окно без заголовка показывать.

О да... Отсутствие крестика в заголовке окна это уже проблема? Если что то за заголовок окна отвечает оконный менеджер и ВНЕЗАПНО во первых его можно менять и даже на лету а во вторых даже его полное отсутствие это не проблема для того чтобы тупо убить процесс.

Говнище с неперемещаемыми и незакрываемыми окнами возможно только в выньдавзе где любая дрянь пользуясь её дырами вытворяет еще и не такое.

init_6 ★★★★★
()
Ответ на: комментарий от init_6

А что в том же «вяленом» или сейчас в иксах что-то будет мешать перейти в tty и там хлопнуть процесс?

Создатели X-ов позаботились об xkill (который можно повесить на хотекей), в отличии от.

возможно только в выньдавзе

О дивный новый мир!

Ygor ★★★★★
()
Ответ на: комментарий от Ygor

Создатели X-ов позаботились об xkill (который можно повесить на хотекей), в отличии от.

xkill внезапно может вообще не быть установлен. Так что можно сколько угодно что-то там и куда-то вешать а убить процесс всяко проще.

init_6 ★★★★★
()
Ответ на: комментарий от init_6

xkill внезапно может вообще не быть установлен.

Можно озвучить говнодистрибутив где он отсутствует?

Ygor ★★★★★
()
Ответ на: комментарий от reprimand

живительный бан тс-у выписали бы сразу. Аноним в первом посте прав же.

живительный бан тс-у не поможет ему осознать всю тщетность его намерений вангую что он еще даже не понял что вообще каждое приложение можно запускать в отдельных иксах

init_6 ★★★★★
()
Ответ на: комментарий от Ygor

Можно озвучить говнодистрибутив где он отсутствует?

А можно ты сам подумаешь и решишь является ли xkill обязательным и крайне необходимым для нормального функционирования иксов или нет? man фрагментация линуксов

init_6 ★★★★★
()
Ответ на: комментарий от reprimand

что-то провтыкал момент, где ему нужно именно в отдельных иксах запускать

Вопрос вовсе не в этом... А в том что даже будь у него готовый код кто мешает просто пускать его говно в отдельных иксах и там оно действительно будет перекрывать все что оно должно перекрывать... Но как это помешает всему остальному в таком случае?

init_6 ★★★★★
()
Ответ на: комментарий от init_6

да тут вообще много аспектов, решений, альтернатив и т.д.
на то он и linux :)

у меня тут идея одна есть...

reprimand ★★★★★
()

ТС, я тебе тут написал такую программу. На разных дистрибутивах работает, в т.ч. учитывает «export DISPLAY», что позволяет удаленный запуск. Могу продемонстрировать, а исходники продать.

Пиши на мыло :)

reprimand ★★★★★
()
Ответ на: комментарий от init_6

А можно ты сам подумаешь

А может ты подумаешь и не будешь постить фигню в стиле: «А если бы у бабушки»? Вариантов стопицот.

Ygor ★★★★★
()
Ответ на: комментарий от Ygor

А может ты подумаешь и не будешь постить фигню в стиле: «А если бы у бабушки»? Вариантов стопицот.

Давай сперва ты запостишь тут конкретно некий стандарт либо иной соответствующий документ обязательный к исполнению на исключительно всех дистрибутивах по которому xkill обязан быть в составе программ вместе с иксами а потом мы продолжим наш разговор.

А то твои измышления о бабушках приобретают яркую форму 4.3

init_6 ★★★★★
()
Ответ на: комментарий от init_6

мы продолжим наш разговор.

Ок зафрендил.

Ygor ★★★★★
()

Проще тебе будет полностью заблокировать клаву и мышу. Потому что откуда ты знаешь, что там у человека на клавосочетаниях или мышевозюканьях?

Скажем, нажал пару клавиш — вызвал xkill. Или просто нажал пару клавиш — окошко и закрылось.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от init_6

А можно ты сам подумаешь и решишь является ли xkill обязательным и крайне необходимым для нормального функционирования иксов или нет? man фрагментация линуксов

А всё-таки - назови дистр.

Pavval ★★★★★
()
Ответ на: комментарий от init_6

Давай без этих детских съездов. Тебя нормально спросили, а ты вместо этого про мозги заливаешь - не иначе переносишь свои проблемы на других.

Pavval ★★★★★
()
Ответ на: комментарий от Pavval

Давай без этих детских съездов. Тебя нормально спросили, а ты вместо этого про мозги заливаешь - не иначе переносишь свои проблемы на других.

Так вам нормально ответили - «xkill обязательный компонент для работы иксов?» Остальное уже за конкретными людьми которые отвечают за выбор программ в конкретном дистрибутиве. Учитывая еще и то что gnome/kde сейчас имеют ооооочень крутые средства для управления окнами необходимость в xkill довольно сомнительна.

А дальше тебе нужна выборка по дистрам где xkill есть а где его нет? Ну так вперед и успехов тебе в этом начинании.

init_6 ★★★★★
()
Ответ на: комментарий от init_6

У тебя проблемы с восприятием? Тебя спросили конкретно: назови дистр. Ты или назови его, или слейся и промолчи.

Pavval ★★★★★
()
Ответ на: комментарий от Pavval

Тебя спросили конкретно: назови дистр.

И тебе конкретно ответили: Нужна информация ? Ну так иди и добывай её. Я не твоя персональная армия.

init_6 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.