Каждый раз, когда я хочу загрузить файл через Хром или Firefox, диалоговое окно для выбора файлов откроется.
Действительно ли возможно заменить это диалоговое окно ranger --choosefiles
в новом окне терминала?
страница справочника рейнджера: https://ranger.github.io/ranger.1.html
Ubuntu 18.04. Мой менеджер окон является i3.
Да, это возможно - по крайней мере, для Firefox.
Новый стандарт был разработан, чтобы позволить произвольной программе использовать диалоговые окна файла текущей настольной среды "по умолчанию", не будучи должен знать об определенной реализации. Это называют xdg-desktop-portal
протокол и это были разработаны для настольных контейнеров, но Firefox недавно добавил поддержку его (см. ниже для деталей).
Если можно создать новое xdg-desktop-portal
реализация для Ranger (уже существуют реализации для KDE и диалоговых окон файла GTK), затем можно использовать их в соответствии с Firefox.
Chrome имеет другой механизм (он выбирает правильно KDE или диалоговые окна файла GTK, зависящие при выполнении под Плазмой или GNOME), но я не уверен, может ли он быть переопределен для поддержки другой реализации.
xdg-desktop-portal
спецификация может быть найдена здесь: https://github.com/flatpak/xdg-desktop-portal.Действительно ли это возможно? Вероятно, да. Это - все программное обеспечение с открытым исходным кодом, в конце концов. Это будет тривиально? Скорее всего, нет.
Приложения могут обеспечить свой собственный "открытый файл" диалоговое окно, но более часто призывать стандартный диалог, обеспеченный панелью инструментов, которую приложение использует, например, GTK3 или QT5, для обеспечения непротиворечивости между различными приложениями, которые используют тот же инструментарий. Это также, что делают Хром или Firefox. Замена этих вызовов к системным диалоговым окнам с Вашим пользовательским диалоговым окном потребовала бы для "взламывания" API определенного инструментария, таким образом, что вызов к тому диалоговому окну возвращает пользовательское диалоговое окно вместо этого.