Я пытаюсь открыть файлы в локальном приложении в системе LTSP. Но если путь содержит символы с диакритикой, как é
, это не может быть открыто, потому что URI, кажется, кодируется неправильно.
Проблемы, кажется, расположены в gvfs-открытом пути, отправляет файлу URI:
gvfs-open /home/user/testé/test.mov
VLC is unable to open the MRL 'file:///home/user/test303251/test.mov'.
Открытие того же файла из самого приложения (использующий Файл> Открытый..) не дает проблем.
Пробелы и запятая, кажется, кодируются по-другому, с %20, и не дают проблем.
gvfs-open /home/user/this is testé/test.mov
VLC is unable to open the MRL 'file:///home/user/this%20is%20test303251/test.mov'.
Какая-либо идея, как это может быть зафиксировано?
Я нашел решение и зарегистрировал ошибку: https://bugs.launchpad.net/ubuntu/+source/ltsp/+bug/1451915
Это было вызвано тем, как LTSP открывает локальные приложения: LTSP устанавливает свойство X, содержащее команду и аргументы, которые читается на клиенте и затем выполняется.
/usr/bin/vlc --started-from-file %U
заменяется на клиентах на
xprop -root -f LTSP_COMMAND 8s -set LTSP_COMMAND "/usr/bin/vlc --started-from-file %U"
, но здесь используется 8-битное кодирование. Если вы измените «8s» на «8u», будет использоваться строка Unicode UTF-8, которая, похоже, решит проблему.
Файл, который необходимо изменить, это:
/opt/ltsp/i386/usr/bin/ltsp-genmenu