Full screen для linux

Как сделать, чтобы приложение открывалось в fullscreen?

Через контекстное меню файла выбираю Open with other application, в поле Use a custome command ввожу /usr/bin/название-приложения — файл открывается и просматривается. Всё в норме.

Вопрос же возник такой: какую команду добавить к /usr/bin/название-приложения, чтобы открывать файл сразу на весь экран?

На англоязычных форумах встречала упоминание wmctrl и эмуляцию нажатия клавиш Ctrl+F, но конкретного объяснения так и не нашла. Везде вода на уровне диванных теоретиков.

Как решить задачу с fullscreen? Поделитесь знанием, кто умеет.

Когда же запускаю полноэкранную игру и пробую в терминале вызвать xdotool c ctfl+f — приложение почему-то уменьшается.

Нет. Повторное нажатие Сtrl+F в полноэкранном режиме ничего не делает. Выход из fullscreen в приложении сделан через Esc.

Очень странно тогда. Мы только ctrl+f пересылаем.

Когда же запускаю полноэкранную игру и пробую в терминале вызвать xdotool c ctfl+f — приложение почему-то уменьшается.

Еще страннее. Ладно, предположим, что игра реагирует на передачу Ctrl+f при помощи XSendEvent. Для начала попробуйте тогда первый вариант правила, который работает через другой механизм (через XTEST), но только исправьте Ctrl+F на ctrl+f: Как сделать, чтобы приложение открывалось в fullscreen? (комментарий)

Что в этом случае?

Со старым вариантом всё равно полноэкран уменьшается.

Быть может есть вариант как-то добавлять конкретные файлы в исключения из правила, чтобы на них оно не распространялось.

Со старым вариантом всё равно полноэкран уменьшается.

devilspie перезапускался точно? Лучше его прибить 100% и запустить заново, он все правила перечитает.

Быть может есть вариант как-то добавлять конкретные файлы в исключения из правила, чтобы на них оно не распространялось.

Я думаю над этим.

Но поведение предельно странное. Что-то тут не так, а что — я понять пока не могу. Если я правильно понимаю ситуацию (уточню):

Открываем игру, которая изначально полноэкранная и нажимаем Ctrl+f. Она и остается полноэкранной, сколько бы не нажимали.

Если в эту игру передать Ctrl+f с xdotool, то она вдруг уменьшается. Так? Тоже самое произойдет, если нажать Esc?

Вот вероятное быстрорешение, которое я придумал без понимания сути происходящего пока. ctrl+f не выдаем, если окно имеет статус полноэкранного:

Но это без понимания сути происходящего. Пробуй.

Хотя я уже вижу проблему. Окно может получить статус полноэкранного не сразу. Если не заработает, то надо бы паузу врубить перед проверкой полноэкранности. И еще потом сделай xprop на полноэкранное окно игры, которая сразу полноэкранная, и выложи на pastebin.com

Если я правильно понимаю ситуацию (уточню):
Открываем игру, которая изначально полноэкранная и нажимаем Ctrl+f. Она и остается полноэкранной, сколько бы не нажимали.

Не совсем так. Запускаю полноэкран, выполняю в терминале xdotool c ctfl+f — Сtrl+F работает как toggle. Но после того, как закрываю игру и терминал, а потом заново запускаю игру (без терминала с xdotool) — Сtrl+F ничего не делает.

Только после запуска devilspie в терминале — Ctrl+F начинает вести себя как обычно.

Если в эту игру передать Ctrl+f с xdotool, то она вдруг уменьшается. Так? Тоже самое произойдет, если нажать Esc?

по-прежнему всё работает за исключением полноэкраной игры.

Вывод xprop для полноэкранной игры — https://pastebin.com/qJEAPC45

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

Вот исправленный вариант с паузой. Делаем паузу 1 сек, проверяем полноэкранность. Если неполноэкранная, то посылаем окну ctrl+f. В xdotool пауза убрана, так как она уже перед проверкой полноэкранности сделана. Может быть, ее нужно увеличить. Я полагаю, что признак полноэкранности окно получает только после запуска игры. Узнает, что она говорит плееру по поводу геометрии своей и уже потом полноэкраннится. То есть не сразу все происходит. Признаков готовности игры никаких нет, поэтому таймауты.

Ага, верно, _NET_WM_STATE_FULLSCREEN стоит. Значит, пробуй последнее правило. Оно не будет ctrl+f посылать полноэкранному.

Все flash-игры теперь переходят в fullscreen без проблем и изначально полноэкранные остаются без изменения размеров. Отлично.

Шах и мат Adobe 🙂

Читайте также:  Служба отвечающая за экран windows 10

Но это без понимания сути происходящего, с которым надо разбираться. Если вручную нажимать, то из полноэкранного не выходит, а если xdotool передавать, то выходит, а это вызывает вопросы. Но несколько сложно разобраться дистанционно, надо много спрашивать всякого. Может, завтра дойдет, но пока какое-то решение есть. может, потом что-нибудь снова всплывет.

Кстати, предвижу небольшие проблемы. Если у плеера еще есть другие окна (я не знаю точно, но по меню видно, что есть). Например, окно открытия файлов, то у этих окон вполне может быть тоже класс Flashplayer и сработает это правило при появлении этих окон и может сделать их полноэкранными. Поэтому надо будет понять, чем они отличаются и вписать доплнительное условие. Например, если только у главного в названии есть «Adobe Flash Player», то можно добавить условие:

то у этих окон вполне может быть тоже класс Flashplayer и сработает это правило при появлении этих окон и может сделать их полноэкранными.

Хотя в твоем случае по правилу в окно класса Flashplayer пошлется ctrl+f. Главное выходит в fullscreen, а вот во второстепенных по этой комбинации может что-то свое сделаться, либо ничего не сделают, но что-то там моргнет через секунду, будто что-то не то нажал.

Неудобств не заметила. Ваш код превосходно решает задачу.

И хотелось бы немного ещё «волшебства», если можно:

Как в этом правиле

заставить это событие

вызывать это событие

Не нашла примеров в интернете.

Неудобств не заметила. Ваш код превосходно решает задачу.

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

И хотелось бы немного ещё «волшебства», если можно:

Не совсем понял задачу, если честно. Нужны пояснения, что надо сделать.

Не совсем понял задачу, если честно. Нужны пояснения, что надо сделать.

При нажатии на колесо прокрутки мыши закрывать приложение Adobe Flash Player.

При нажатии на колесо прокрутки мыши закрывать приложение Adobe Flash Player.

Лучше перехотеть. 🙂 Есть, наверное, ложное ощущение, что раз Линукс, то все можно гладко настроить и автоматизировать. То что вы хотите, тоже можно, в общем-то, хотя костылики такого же уровня будут, как и с fullscreen. Просто не получится никакого улучшения в жизни, а только попытка найти себе дополнительные сложности, чтобы решить, а положительный эффект — пшик.

В том, что вы хотите, есть особенность: подмена действия кнопки 2 должна работать только в приложении (окне) плеера, а вне его кнопка 2 должна работать по умолчанию.

Решение с ходу пока вижу в связке xbindkeys+xdotool. В перспективе может потребоваться написать небольшое правило для xbindkeys на Guile, хотя есть в голове вариантик и без него, но чуть более костыльный.

1. Устанавливаешь xbindkeys

2. Создаешь файл

/.xbindkeysrc и в нем добавлешь праавило:

3. Новое правило для devilspie:

Плохо тут то, что некрасиво убивается xbindkeys (совершает [Роскомнадзор] в своем же файле), но надо же как-то освободить Button 2.

Button 2 глобально получает действие на закрывание Flash Player, где бы указатель не находился, но это только на одно нажатие. В следующее нажатие уже будет просто умолчательное действие.

Закрыть окно можно и xdotool, но почему-то xdotool не закрывает окно gracefully (не буду расшифровывать).

Насчет исправления недостатков надо подумать, но если и так сойдет, то и ок.

Код, к сожалению, не закрывает приложение по middle click мыши. Как же тогда его можно отладить?

Быть может затруднение как-то связано с моим терминалом? У меня rxvt-unicode.

Вот тут может быть проблема. Надо заменить либо на Flashplayer или на flashplayer. Я, к сожалению, не могу проверить дистанционно, как отзовется приложение. Отладить так: запустить игру, в терминале набрать

Какой закроет, тот и использовать, заменить в

xbindkey установлен? Файл

/.xbindkeysrc создан? (проверить название по буквам). Отлаживаем его. Из терминала запускаем

Запускаем игру, нажимаем Button 2. Закрылось — ок. Не закрылось — рассказываем.

Ваш код работает безупречно: и в fullscreen запускает, и по middle click закрывает. Здорово.

Читайте также:  Linux set timezone moscow

Я неправильно скопировала этот код в

Из-за этого не получалось закрывать приложение по middle click.

Через свои знания вы показали мне возможности devilspie, xdotool и xbindkeys. И меня заинтересовала эта тема. Буду перелопачивать интернет и пробовать учиться на примерах. Ваша помощь — вдохновила.

Мне кажется, что можно сделать и покрасивее в части перехвата Button 2, чтобы глобально не менять ее поведение на время появления окна игры, но я что-то не припомнил нужного инструмента для этого. Поэтому сделал, чтобы быстро и чтобы без программазма. Если вспомню внезапно, то дополню.

Я рекомендую сделать какую-нибудь диреаторию типа

/.config/automation или что-то в этом роде и собрать в ней симлинки на файлы и каталоги, которые участвуют в автоматизации. Потом забудете, где и что меняли и будете удивляться каким-то странным вещам. Сделать в этой директории что-то типа

и т. д. Чтобы не забыть, какие файлы участвуют во всем этом и чтобы они были в одном месте.

Если это GTK приложение, можно передать этому соответсвующий параметр запуска (не помню какой именно)

Там своеобразный fullscreen. Как выяснили, просто сказать, чтобы был fullscreen недостаточно, так как приложение хоть и становится fullscreen, но не убирает меню и что-то там еще. Кроме того, приложение решает, каким окну быть только тогда, когда в него загрузилась игра и сказала, как она хочет по дефолту отображаться. Поэтому надо не просто попросить быть fullscreen, но подождать, пока игра загрузится, так как она все равно переопределит твои установки размера.

Единственный вариант — это клавиатурную комбинацию Ctrl-F передать в прикладуху где-то через секунду после появления окна, чтобы приложение убрало меню и сделало себе fullscreen.

Скорее всего полноэкранная игра перехватывает нажатия клавиш и не даёт выйти из полного экрана по нажатию ctrl+f. Но это так, гадание на кофейной гуще

Источник

How to Run Fullscreen Games In Linux With Dual Monitors

As with all operating systems, the way a Linux game behaves on a computer is largely dependent on the design of the game, the graphics hardware and drivers the user has, and the settings one chooses. Native Linux games are typically better at supporting the computer’s default resolution without much tweaking, but the way it handles fullscreen display on a a dual-monitor system depends on the game engine employed.

After about an hour of trying to configure all of your games, you might very well find yourself drowning in sea of techno-babble and configuration files. But have no fear, MakeTechEasier has come to your rescue yet again.

This brief guide to various types of games you can run in Linux on a dual-monitor system is based on my experience with an Nvidia 3D graphics card and the accompanying proprietary drivers. Nevertheless, most of it will apply to all 3D graphics cards. This guide also assumes that you already have your dual-monitor setup functioning by utilizing Xinerama, TwinView, XRandR, or some other method. This does not apply to dual-monitor setups that use separate Xorg instances for each monitor.

The Problem

When running a game, either as a native Linux application or through Wine, you have probably encountered one of these situations:

1. The game takes over both monitors and stretches the images over both.

2. One screen goes dark, and the other screen displays the game correctly. This may be found for many users.

3. The game maximizes on one screen, but it is not the screen you want to use.

The Solutions

Unfortunately, there is no one solution for all three situations, but there are a few ways to fix them, depending on your preferences.

Windowed Play

Although this may seem like more of a workaround, you can actually have a game run in a window and then turn that window into a fullscreen one. Follow these steps:

1. Configure the game to run in a window. For many Linux games, this might involve editing the configuration file, usually found in

Читайте также:  Windows 10 настройка меню быстрого доступа

2. Set the game’s resolution to your desktop’s exact resolution.

3. Start the game.

4. Use your window manager to make the window full screen (In KDE, right-click on the title bar, hover over ‘Advanced’ and click ‘Fullscreen’. You can also use a shortcut key, if configured. In some games, the ‘Fullscreen’ option will be unavailable. For these, choose ‘No Border’.)

As you might have noticed, Windowed Play has its disadvantages, particularly if your window manager does not have its own fullscreen feature. The biggest advantage is that, if you are like me and are supposed to be working rather than playing games, you can still at least have a business or work app open on the other screen to offer some semblance of efficiency.

Single Full Screen

On nearly all native Linux games that I have encountered, you can achieve true fullscreen results simply by configuring the game to use the resolution of one monitor. This, however, does not guarantee that it will be on the screen you want.

A universal method is to use xrandr to turn off one of the monitors. For example, you can run the following command in a terminal:

There are also graphical xrandr programs available, such as krandtray (Resize and Rotate) or gnome-randr-applet (Display Geometry Switcher). In either case, simply select the monitor you want to turn off and disable it, or in the case of a large virtual display (such as the kind with TwinView), select the smaller resolution.

For SDL games, you can setup an environment variable that will force it to use the screen you want, and this will dim the unused screen as long as you are playing.

The number indicates the display number of the monitor, so change it according to your needs. You can even plug this into the game’s startup script and make it all automatic.

Windows Games in Wine

There is an easy way to use a windowed mode in Wine:

1. Start Wine Configuration (winecfg)

2. Click on the ‘Graphics’ tab

3. Check ‘Emulate a virtual desktop’

4. Next to ‘Desktop size’ enter your exact screen resolution.

When you start Wine applications, it will have a Windows desktop in the background. When starting games, the games should go fullscreen with no window border.

This should prevent Windows games from stretching over both screens and give you a fullscreen experience.

There are other options available for fullscreen gaming on dual monitors, and the only way to find the best method for your setup is to experiment with different techniques.

Tavis J. Hampton is a freelance writer from Indianapolis. He is an avid user of free and open source software and strongly believes that software and knowledge should be free and accessible to all people. He enjoys reading, writing, teaching, spending time with his family, and playing with gadgets.

5 comments

Non-xinerama multi-head with separate X sessions always works but it limits normal desktop usability by preventing applications from being dragged from one monitor to another or spreading across both. Depending on the desktop environment it is possible to drag files from a file manager on one head to the other or drag text between applications.

Thansk dude , what i have been looking for, BTW where did you get that KDE wallpaper?

Celebrate Children’s Day With Games From Around the World

Many families around the world don’t have money to buy toys. So children become good at making up their own toys and games out of whatever they can find. Here are a few of the cheap and free games for parents send to your children. Visit their site at: http://www.mustsoftware.com/

you can also use devilspie to undecorate, resize and fullscreen a window. works very well with xbmc.

Источник

Оцените статью