Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Копирование в общий буфер #17

Closed
DM-VLK opened this issue Dec 9, 2022 · 24 comments
Closed

Копирование в общий буфер #17

DM-VLK opened this issue Dec 9, 2022 · 24 comments

Comments

@DM-VLK
Copy link

DM-VLK commented Dec 9, 2022

Скопированное в буфер, например из Firefox, можно вставить, а вот наоборот к сожалению нет и скопированное в буфер остается доступным только в пределах FAR. Хотелось бы полноценного взаимодействия с буфером.

N.B. Использую GNOME под Wayland

@DM-VLK
Copy link
Author

DM-VLK commented Dec 9, 2022

Лучше проверять все подробно, а потом писать. Переключился на X сессию и копирование в буфер заработало т.ч. проблема именно с Wayland.

@DM-VLK
Copy link
Author

DM-VLK commented Dec 9, 2022

Запуск строкой GDK_BACKEND=x11 far2l решает проблему с Wayland, но надеюсь вы найдете время сделать это нативно (думаю нужно поправить одну-две строки или в wxWidgets это поправят со временем)

@shmuz
Copy link
Owner

shmuz commented Dec 10, 2022

Спасибо за информацию. Для меня всё это ещё не знакомо, но буду изучать.

@shmuz
Copy link
Owner

shmuz commented Dec 10, 2022

Вы точно запускали с GDK_BACKEND=x11 ?
Или с XDG_SESSION_TYPE=x11 ?

@DM-VLK
Copy link
Author

DM-VLK commented Dec 10, 2022

Именно так как написал запускал в GNOME/Wayland. Данная переменная помогает не только far2l.

@shmuz
Copy link
Owner

shmuz commented Dec 10, 2022

Дело в том, что установка GDK_BACKEND=x11 никак не влияет на far2l.
По коду, для того, чтобы влияло должно быть GDK_BACKEND=BROADWAY.

А какое у вас значение XDG_SESSION_TYPE в сессии wayland ?

@DM-VLK
Copy link
Author

DM-VLK commented Dec 10, 2022

А какое у вас значение XDG_SESSION_TYPE в сессии wayland ?

XDG_SESSION_TYPE=wayland

Я запускаю именно так в терминале:

$ GDK_BACKEND=x11 far2l

Т.е. эта переменная передается только процессу far2l и он работает в XWayland

https://wiki.archlinux.org/title/wayland#GTK

@shmuz
Copy link
Owner

shmuz commented Dec 10, 2022

Возможно эта переменная влияет при вызове Фаром каких-то системных функций.
Ибо по коду far2l значение x11 этой переменной ни на что не влияет.

Но: какое значение у вас имеет GDK_BACKEND в сессии wayland?

@DM-VLK
Copy link
Author

DM-VLK commented Dec 10, 2022

В запущенном таким образом под Wayland far2l:
GDK_BACKEND=x11

N.B. Alt+Ins теперь тоже копирует.

@shmuz
Copy link
Owner

shmuz commented Dec 10, 2022

В запущенном таким образом, это очевидно.
Вопрос был: каково исходное значение этой переменной в сессии wayland.

@DM-VLK
Copy link
Author

DM-VLK commented Dec 10, 2022

Вопрос был: каково исходное значение этой переменной в сессии wayland.

Пардон. В сессии Wayland такой переменной нет [ env | grep GDK_BACKEND ---> ничего ]

Чтобы удобнее было запускать сделал себе в /usr/local/share/applications/ файл far2l_f.desktop с таким содержимым:

[Desktop Entry]
Type=Application
Name=far2l [fixed]
GenericName=far2l [fixed]
Comment=File and archive manager
Exec=env LC_ALL=ru_RU.UTF-8 GDK_BACKEND=x11 /usr/local/bin/far2l
TryExec=/usr/local/bin/far2l
Terminal=false
Categories=Utility;FileManager;
Icon=far2l
StartupNotify=true

@shmuz
Copy link
Owner

shmuz commented Dec 10, 2022

В сессии Wayland такой переменной нет [ env | grep GDK_BACKEND ---> ничего ]

Это значит, скорее всего, что моё предположение насчёт влияния GDK_BACKEND=x11 на системные (не фаровские) функции - верно.

The gtk3 and gtk4 packages have the Wayland backend enabled. GTK will default to the Wayland backend, but it is possible to override it to Xwayland by modifying an environment variable: GDK_BACKEND=x11.

Исходя из этого, мне кажется, что в Фаре ничего не надо менять, т.к. это повлияет на те системы, где Wayland backend работает нормально.

@DM-VLK
Copy link
Author

DM-VLK commented Dec 10, 2022

Исходя из этого, мне кажется, что в Фаре ничего не надо менять, т.к. это повлияет на те системы, где Wayland backend работает нормально.

Не совсем понял этот момент. У меня Wayland вроде работает нормально и я его конфигурационные файлы не трогал т.о. мне кажется у всех под Wayland будет такая же ситуация и дело в коде FAR. Ссылка была на ArchWiki, а у меня как раз он.

@shmuz
Copy link
Owner

shmuz commented Dec 10, 2022

  1. Выше вы упомянули, что "Данная переменная помогает не только far2l."
  2. В far2l нигде нет обработки значения x11 данной переменной.
  3. Даже если в far2l и надо что-то сделать в этом плане, то я понятия не имею что именно.

@shmuz
Copy link
Owner

shmuz commented Jan 16, 2023

У меня одна из виртуальных машин - Debian 11.5 (32 bit). У неё по умолчанию Wayland (насколько я понимаю).
Копирование и вставка через буфер обмена между FAR и Firefox работают в обе стороны.
Вот соответствующие переменные окружения:
image

@DM-VLK
Copy link
Author

DM-VLK commented Jan 18, 2023

У меня тоже так. И действительно копирование в обе стороны теперь работает как в Gedit, так и в Firefox. Но ведь честное слово проблемы были. Видимо в каком-то обновлении что-то где-то поправили.

@shmuz
Copy link
Owner

shmuz commented Jan 18, 2023

Можно закрывать?

@DM-VLK
Copy link
Author

DM-VLK commented Jan 18, 2023

Перепроверил еще раз и с Qt и с GTK программами – кажется теперь работает. Можно закрывать.

P.S. К сожалению редко сейчас пользуюсь Linux’ом.

@shmuz
Copy link
Owner

shmuz commented Jan 18, 2023

Я тоже не часто пользуюсь. К сожалению, моя (оплачиваемая) работа тесно связана с Windows, иначе просто перешёл бы на Linux.

@unxed
Copy link

unxed commented Mar 11, 2024

Запуск строкой GDK_BACKEND=x11 far2l решает проблему с Wayland

@DM-VLK и с Телеграмм тоже?

@DM-VLK
Copy link
Author

DM-VLK commented Mar 11, 2024

@DM-VLK и с Телеграмм тоже?

Я Linux сейчас активно не использую, но вот специально поставил Телеграм и он вполне нормально работает без этой переменной

@unxed
Copy link

unxed commented Mar 11, 2024

Очень интересно! А можете дать версии операционки, терминалки, far2l и Telegram, пожауйста? И что в заголовке окна написано про используемый бекенд?

@DM-VLK
Copy link
Author

DM-VLK commented Mar 11, 2024

А можете дать версии операционки, терминалки, far2l и Telegram, пожауйста?

Не совсем оно починилось, как я писал выше.

Если запускать Telegram и far2m с GDK_BACKEND=x11, то копирование из Telegram в far2m и обратно через Ctrl+V/C и Ctrl/Shift+Ins вроде как работает.

Создаю свой desktop файл для Telegram (чтобы не перезаписывался при обновлении) где Exec выглядит так:
Exec=env GDK_BACKEND=x11 telegram-desktop -- %u

  • EndeavourOS (т.е. Arch)
  • far2m последний из git (только что собрал)
  • gnome-terminal
  • Telegram 4.15.1

@unxed
Copy link

unxed commented Mar 11, 2024

Спасибо! Там, похоже, в wx бага подтвердилась. Я спросил, могут ли они какой-нибудь воркэраунд предложить

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants