два вопроса по иксам

classic Classic list List threaded Threaded
39 messages Options
12
Reply | Threaded
Open this post in threaded view
|

два вопроса по иксам

Alex Kicelew
Hi.

1) А нет ли в иксах какого-нибудь способа глобально переназначить
сочетание клавиш? Конкретно, мне хотелось бы, чтобы нажатие Super_L +
PgUp (каковое гарантированно нигде не задействовано) отрабатывало бы как
Home, а Super_L + PgDn соответственно как End. Если я правильно понял,
через xmodmap можно переназначить только конкретный предусмотренный в
иксах ключ, или полностью модификатор, а вот возможности переназначить
сочетание "модификатор + ключ" я в нем не нашел.

В принципе, подошел бы и способ переназначить эти сочетания через
xmonad, но в нем такой возможности я тоже не нашел (в нем можно,
конечно, повесить на эти сочетания вызов xdotool, который выдаст нужные
Home/End, но это, мне кажется, уже перебор).

2) Правильно я понимаю, что на нынешнем витке развития иксы не умеют
назначать разные DPI на два подключенных монитора? И если к ноуту со
встроенным 2560x1440 подключить внешний монитор с 1024x768, то придется
мириться, что на внешнем будут те же 170, что и на встроенном (иначе я
не разгляжу мелких буковок на встроенном)? Или все-таки есть какой-то
способ, которого я не смог найти самостоятельно, поставить на них разные
DPI?

Reply | Threaded
Open this post in threaded view
|

Re: два вопроса по иксам

Konstantin Fadeyev-2
Отвечу на второй вопрос. В Гноме - параметры системы - оборудование - дисплей. Можно настроить как нужно.
В других тоже есть подобные вещи.

пн, 11 февр. 2019 г. в 23:05, Alex Kicelew <[hidden email]>:
Hi.

1) А нет ли в иксах какого-нибудь способа глобально переназначить
сочетание клавиш? Конкретно, мне хотелось бы, чтобы нажатие Super_L +
PgUp (каковое гарантированно нигде не задействовано) отрабатывало бы как
Home, а Super_L + PgDn соответственно как End. Если я правильно понял,
через xmodmap можно переназначить только конкретный предусмотренный в
иксах ключ, или полностью модификатор, а вот возможности переназначить
сочетание "модификатор + ключ" я в нем не нашел.

В принципе, подошел бы и способ переназначить эти сочетания через
xmonad, но в нем такой возможности я тоже не нашел (в нем можно,
конечно, повесить на эти сочетания вызов xdotool, который выдаст нужные
Home/End, но это, мне кажется, уже перебор).

2) Правильно я понимаю, что на нынешнем витке развития иксы не умеют
назначать разные DPI на два подключенных монитора? И если к ноуту со
встроенным 2560x1440 подключить внешний монитор с 1024x768, то придется
мириться, что на внешнем будут те же 170, что и на встроенном (иначе я
не разгляжу мелких буковок на встроенном)? Или все-таки есть какой-то
способ, которого я не смог найти самостоятельно, поставить на них разные
DPI?



--
Константин Фадеев
Reply | Threaded
Open this post in threaded view
|

Re: два вопроса по иксам

Иван Лох-3
In reply to this post by Alex Kicelew
On Mon, Feb 11, 2019 at 11:05:20PM +0300, Alex Kicelew wrote:
> Hi.
>
> 1) А нет ли в иксах какого-нибудь способа глобально переназначить
> сочетание клавиш? Конкретно, мне хотелось бы, чтобы нажатие Super_L +
> PgUp (каковое гарантированно нигде не задействовано) отрабатывало бы как
> Home, а Super_L + PgDn соответственно как End. Если я правильно понял,

https://habr.com/ru/post/222285/

>
> 2) Правильно я понимаю, что на нынешнем витке развития иксы не умеют
> назначать разные DPI на два подключенных монитора? И если к ноуту со

https://blog.summercat.com/configuring-mixed-dpi-monitors-with-xrandr.html
 

Reply | Threaded
Open this post in threaded view
|

Re: два вопроса по иксам

Alex Kicelew
On 2/11/19 11:37 PM, Иван Лох wrote:
>> 1) А нет ли в иксах какого-нибудь способа глобально переназначить
>> сочетание клавиш? Конкретно, мне хотелось бы, чтобы нажатие Super_L +
> https://habr.com/ru/post/222285/

О, спасибо, это, кажется, то, что нужно. (в ужасе покосившись на запятые).

>> 2) Правильно я понимаю, что на нынешнем витке развития иксы не умеют
>> назначать разные DPI на два подключенных монитора? И если к ноуту со
> https://blog.summercat.com/configuring-mixed-dpi-monitors-with-xrandr.html

А вот это, вроде, нет. Со scale я экспериментировал. Оно именно
софтверно шкалирует. То бишь позволяет "притвориться", что на мониторе
1024 действительно 2ххх, и выводить на него соответствующе, но реальными
пикселями, которых 1024. Результат получается... мнэ... несъедобный.

Reply | Threaded
Open this post in threaded view
|

Re: два вопроса по иксам

Dmitry Alexandrov
Alex Kicelew <[hidden email]> wrote:
> On 2/11/19 11:37 PM, Иван Лох wrote:
>>> 1) А нет ли в иксах какого-нибудь способа глобально переназначить сочетание клавиш? Конкретно, мне хотелось бы, чтобы нажатие Super_L + PgUp (каковое гарантированно нигде не задействовано) отрабатывало бы как Home, а Super_L + PgDn соответственно как End.
>>
>> https://habr.com/ru/post/222285/
>
> О, спасибо, это, кажется, то, что нужно. (в ужасе покосившись на запятые).

Не совсем.  Статья совершенно не раскрывает, как вам достичь желаемого, а именно:

1. Назначить что-нибудь на PgUp модифицированный «супером», а не просто на PgUp, ибо из коробки эти две клавиши никакого отношения друг к другу не имеют.

А для этого нужно переназначить ей тип на PC_SUPER_LEVEL2:


partial modifier_keys
xkb_symbols "super_pgup" {
    replace key <PGUP> {
        type = "PC_SUPER_LEVEL2",
        symbols = [ Prior, ‹символ-при-супере› ]
    };
};


2. Назначить не что-нибудь, а клавишу _без_ модификаторов, ибо если лакуну выше заполнить словом ‘Home’, то модификатор так сбрасываться не будет, то есть нажав Super_L + PgUp вы получите Super_L + Home, а не чистый Home.

Для этого есть два варианта: (1) «overlay», предназначенный специально для того, чтобы массово городить подобный огород, его попроще написать, но левым «супером» тогда придется пожертвовать вообще (это я так понял, не для вас), и (2) действие ‘RedirectKey()’, а это как-то так:


partial modifier_keys
xkb_symbols "super_pgup_as_home" {
    replace key <PGUP> {
        type = "PC_SUPER_LEVEL2",
        symbols = [ Prior, NoSymbol ],
        actions = [ NoAction(), RedirectKey(key=<HOME>, clearmods=mod4) ] };
    };
};


Примеры не проверял, могут быть ошибки и опечатки.

signature.asc (497 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: два вопроса по иксам

Dmitry Alexandrov
Dmitry Alexandrov <[hidden email]> wrote:
>>>> 1) А нет ли в иксах какого-нибудь способа глобально переназначить сочетание клавиш? Конкретно, мне хотелось бы, чтобы нажатие Super_L + PgUp (каковое гарантированно нигде не задействовано) отрабатывало бы как Home
>
> 1. Назначить что-нибудь на PgUp модифицированный «супером», а не просто на PgUp...  А для этого нужно переназначить ей тип на PC_SUPER_LEVEL2

Да, это не левый «супер», а оба супера.  Если вопрос принципиальный, то он, уверен, решаем, но как — навскидку не напишу.

> Примеры не проверял, могут быть ошибки и опечатки.

И естественно есть — дважды закрыл один блок:

-        actions = [ NoAction(), RedirectKey(key=<HOME>, clearmods=mod4) ] };
+        actions = [ NoAction(), RedirectKey(key=<HOME>, clearmods=mod4) ]

signature.asc (497 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: два вопроса по иксам

Victor Wagner
In reply to this post by Alex Kicelew
В Mon, 11 Feb 2019 23:05:20 +0300
Alex Kicelew <[hidden email]> пишет:
> 2) Правильно я понимаю, что на нынешнем витке развития иксы не умеют
> назначать разные DPI на два подключенных монитора? И если к ноуту со

Насколько я понимаю, можно, если не пытаться обеспечить прозрачный
перенос окон с одного монитора на другой, а назначить им разный display
или хотя бы screen.

> встроенным 2560x1440 подключить внешний монитор с 1024x768, то
> придется мириться, что на внешнем будут те же 170, что и на
> встроенном (иначе я не разгляжу мелких буковок на встроенном)? Или
> все-таки есть какой-то способ, которого я не смог найти
> самостоятельно, поставить на них разные DPI?
>



--
                                   Victor Wagner <[hidden email]>

Reply | Threaded
Open this post in threaded view
|

Re: два вопроса по иксам

Alex Kicelew
In reply to this post by Dmitry Alexandrov
On 2/12/19 4:51 AM, Dmitry Alexandrov wrote:
> 1. Назначить что-нибудь на PgUp модифицированный «супером», а не просто на PgUp, ибо из коробки эти две клавиши никакого отношения друг к другу не имеют.
> А для этого нужно переназначить ей тип на PC_SUPER_LEVEL2:

Хм. А будет ли она после этого работать как Super?

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

На новом ноуте стрелки с PgDn/PgUp расположены в одном месте клавиатуры,
а Home/End в другом, что очень неудобно. Вот я и думаю, как бы это
вылечить. Super для меня не принципиален, этот вариант появился только
из-за того, что сочетания всяких Alt-Ctrl-Shift с PgUp/PgDn регулярно
используются в разных программах, и задействовав их, я могу лишиться
чего-либо.

Но Super_L (хотя и не в сочетании с PgUp/PgDn) сам по себе широко
используется у меня в xmonad, и лишаться его я не готов ни морально, ни
аморально.

Reply | Threaded
Open this post in threaded view
|

Re: два вопроса по иксам

Alex Kicelew
In reply to this post by Victor Wagner
On 2/12/19 7:34 AM, Victor Wagner wrote:
>> 2) Правильно я понимаю, что на нынешнем витке развития иксы не умеют
>> назначать разные DPI на два подключенных монитора? И если к ноуту со
> Насколько я понимаю, можно, если не пытаться обеспечить прозрачный
> перенос окон с одного монитора на другой, а назначить им разный display
> или хотя бы screen.

А где можно почитать про работу иксов в таких режимах? Навскидку я
представляю, как стартовать окно на другой дисплей/скрин, но не очень
представляю, как с ним там работать.

Reply | Threaded
Open this post in threaded view
|

Re: два вопроса по иксам

sergio-3
On 12/02/2019 11:59, Alex Kicelew wrote:

> On 2/12/19 7:34 AM, Victor Wagner wrote:
>> или хотя бы screen.

> скрин, но не очень представляю, как с ним там работать.

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


--
sergio.

Reply | Threaded
Open this post in threaded view
|

Re: два вопроса по иксам

Иван Лох-3
On Tue, Feb 12, 2019 at 12:04:01PM +0300, sergio wrote:
>
> Никак с ними не работать. Что бы перетащить окно с одного скрина на другой
> нужна поддержка в приложении. Из того, что я видел, это умел только гимп,
> если уже не удалили.

Это стандартная функция WM.

Reply | Threaded
Open this post in threaded view
|

Re: два вопроса по иксам

sergio-3
On 12/02/2019 12:12, Иван Лох wrote:

> Это стандартная функция WM.

Какого?

При нескольких скринах на каждом запускается по инстансу WM.

--
sergio.

Reply | Threaded
Open this post in threaded view
|

Re: два вопроса по иксам

Иван Лох-3
On Tue, Feb 12, 2019 at 12:14:49PM +0300, sergio wrote:
> On 12/02/2019 12:12, Иван Лох wrote:
>
> > Это стандартная функция WM.
>
> Какого?

awesome, например

> При нескольких скринах на каждом запускается по инстансу WM.

Не обязательно

Reply | Threaded
Open this post in threaded view
|

Re: два вопроса по иксам

sergio-3
On 12/02/2019 12:17, Иван Лох wrote:

> awesome, например
>
>> При нескольких скринах на каждом запускается по инстансу WM.
>
> Не обязательно


$ Xephyr :1 -screen 640x480 -screen 640x480

$ DISPLAY=:1 awesome

осм запустился на одном скрине. (с :1.1 запустится на другом)

Можно пример того, как запустить сразу на обоих?


--
sergio.

Reply | Threaded
Open this post in threaded view
|

Re: два вопроса по иксам

Иван Лох-3
On Tue, Feb 12, 2019 at 12:34:45PM +0300, sergio wrote:
> $ Xephyr :1 -screen 640x480 -screen 640x480
>
> $ DISPLAY=:1 awesome
>
> осм запустился на одном скрине. (с :1.1 запустится на другом)
>
> Можно пример того, как запустить сразу на обоих?


xrandr --output XXX  --auto --right-of YYY

С настройками по-умолчанию он сам подхватит второй screen


Reply | Threaded
Open this post in threaded view
|

Re: два вопроса по иксам

sergio-3
On 12/02/2019 12:51, Иван Лох wrote:

> xrandr --output XXX  --auto --right-of YYY
>
> С настройками по-умолчанию он сам подхватит второй screen

При чём тут xrandr? У xrandr'а свои скрины, у иксов свои.


--
sergio.

Reply | Threaded
Open this post in threaded view
|

Re: два вопроса по иксам

Иван Лох-3
On Tue, Feb 12, 2019 at 12:56:12PM +0300, sergio wrote:
> On 12/02/2019 12:51, Иван Лох wrote:
>
> > xrandr --output XXX  --auto --right-of YYY
> >
> > С настройками по-умолчанию он сам подхватит второй screen
>
> При чём тут xrandr? У xrandr'а свои скрины, у иксов свои.

Используя DISPLAY=0:1 xeyes легко убедиться, что это одно и тоже

Я так mpv и evince на проекторе запускаю.

Reply | Threaded
Open this post in threaded view
|

Re: два вопроса по иксам

sergio-3
On 12/02/2019 13:02, Иван Лох wrote:

>> При чём тут xrandr? У xrandr'а свои скрины, у иксов свои.
>
> Используя DISPLAY=0:1 xeyes легко убедиться, что это одно и тоже

Что такое 0:1 ?

У меня три монитора, один display и один screen:

% xrandr
Screen 0: minimum 320 x 200, current 3600 x 1600, maximum 8192 x 8192
DisplayPort-0 connected primary 1200x1600+1200+0 left (normal left
inverted right x axis y axis) 408mm x 306mm
    1600x1200     60.00*+
    1280x1024     85.02    75.02
    1280x960      85.00
    1152x864      75.00
    1024x768      85.00    75.03    70.07    60.00
    832x624       74.55
    800x600       85.06    72.19    75.00    60.32    56.25
    640x480       85.01    75.00    72.81    66.67    59.94
    720x400       70.08
DisplayPort-1 connected 1200x1600+2400+0 left (normal left inverted
right x axis y axis) 408mm x 306mm
    1600x1200     60.00*+
    1280x1024     85.02    75.02    60.02
    1280x960      85.00
    1152x864      75.00
    1024x768      85.00    75.03    70.07    60.00
    832x624       74.55
    800x600       85.06    72.19    75.00    60.32    56.25
    640x480       85.01    75.00    72.81    66.67    59.94
    720x400       70.08
DisplayPort-2 connected 1200x1600+0+0 left (normal left inverted right x
axis y axis) 408mm x 306mm
    1600x1200     60.00*+
    1280x1024     85.02    75.02    60.02
    1280x960      85.00
    1152x864      75.00
    1024x768      85.00    75.03    70.07    60.00
    832x624       74.55
    800x600       85.06    72.19    75.00    60.32    56.25
    640x480       85.01    75.00    72.81    66.67    59.94
    720x400       70.08
DisplayPort-3 disconnected (normal left inverted right x axis y axis)

Как мне запустить xeyes на втором мониторе?



% Xephyr :1 -screen 640x480 -screen 640x480

% DISPLAY=:1.1 xrandr
xrandr: Failed to get size of gamma for output default
Screen 1: minimum 160 x 160, current 640 x 480, maximum 1600 x 1200
default connected 640x480+0+0 (normal left inverted right x axis y axis)
0mm x 0mm
    1600x1200      0.00
    1400x1050      0.00
    1280x960       0.00
    1280x1024      0.00
    1152x864       0.00
    1024x768       0.00
    832x624        0.00
    800x600        0.00
    720x400        0.00
    480x640        0.00
    640x480        0.00*
    640x400        0.00
    320x240        0.00
    240x320        0.00
    160x160        0.00

Ну и как тут настроить  "xrandr --output XXX  --auto --right-of YYY"
если он один всего?

--
sergio.

Reply | Threaded
Open this post in threaded view
|

Re: два вопроса по иксам

Иван Лох-3
On Tue, Feb 12, 2019 at 01:09:47PM +0300, sergio wrote:
> On 12/02/2019 13:02, Иван Лох wrote:
>
> > > При чём тут xrandr? У xrandr'а свои скрины, у иксов свои.

Действительно – разные

Reply | Threaded
Open this post in threaded view
|

Re: два вопроса по иксам

Dmitry Alexandrov
In reply to this post by Alex Kicelew
Alex Kicelew <[hidden email]> wrote:
> On 2/12/19 4:51 AM, Dmitry Alexandrov wrote:
>> 1. Назначить что-нибудь на PgUp модифицированный «супером», а не просто на PgUp, ибо из коробки эти две клавиши никакого отношения друг к другу не имеют.
>> А для этого нужно переназначить ей тип на PC_SUPER_LEVEL2:
>
> Хм. А будет ли она после этого работать как Super?

Пардон, я двояко выразился: «ей» здесь — это «home», а не «суперу».  То есть именно так, как в примере, не наоборот.  :-)

> Кажется, я был неправ, задав вопрос не по изначальной задаче, а по
> наиболее очевидному для меня способу ее решения. Пытаюсь исправиться.

Ну почему же, кажется, вполне правы.  На уровне Линукса это, насколько я знаю, не сделать.  На уровне хорошего оконного диспетчера это решаться должно, но авторы вашего xmonad’а, как я понял, считают иначе.  Остаются Иксы.

> Но Super_L сам по себе широко используется ..., и лишаться его я не готов ни морально, ни аморально.

Да, я догадался, потому и не стал советовать менее муторный overlay вместо RedirectKey().

signature.asc (497 bytes) Download Attachment
12