Pull to refresh

Comments 33

UFO just landed and posted this here

Никакого нового способа, собственно, тут не описывается, просто собраны все ссылки и технические подробности. А вот поставить WSL 2 на планшет вряд ли получится, там же нет Hyper-V

Я, когда написал, сам замомневался, но не смог и лень было нагуглить. Спасибо, познавательно
Особенно удивило, так как сам использую WSL ещё со времён первых версий. Как раз на Windows планшете, где у меня Windows 10 Pro.
У меня в Windows Terminal почему то не работает мышка в midnight commander. А если запускать консоль через приложение WSL — все работает

Насколько я знаю, этот функционал (управление мышкой) не реализован и требует очень значительных ресурсов разработки, поэтому не в приоритете

На данный момент (середина мая 2020) все работает в том числе и в Windows Terminal

Честно говоря пока от WSL2 двоякие ощущения. Если засунуть проект внутрь \\wsl$ — летает. Но извне (IDE, Smartgit) тормозит. Речь про Docker Desktop for Win.

Если работать из /mnt/{drive} — скорость по ощущениям не лучше чем была ранее. Но IDE работает шустро.

Проекты лежат на PCI-E gen4 SSD, сам WSL на NVME. Пока не решил что с этим делать. Возможно что-то готовлю не так.

С чтением файлов с диска Windows (/mnt/c) у WSL пока бяда, да. Это отображается даже на том, что prompt в шелле тормозит, если использует что-то типа gitline (чекается инфо с репы в CWD), если находишься вне родной linux fs. Не знаю уж, как там docker под Win работает, но вряд ли это пока будет хорошо.

Я в итоге положил проект внутрь WSL, запускаю IDE внутри

VSCode remote wsl или как-то иначе? Поделитесь знанием, у меня IDE от JetBrains если что.

intellij idea. Установил ее внутри WSL (тут были некоторые проблемы, так как устанавливал через snap на ubuntu, а systemd не работает)
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0

В результате в DISPLAY будет IP WSL интерфейса хоста
image

В Windows установил VcxSrv
image
и все
Заметных лагов при работе с программой нет? Я как-то пытался через VNC работать в редакторе, не понравилось из-за заметной задержки. Тут хоть всё локально на одной машине, но графика пробрасывается через IP-протокол тоже.
пока не заметил, но на данные момент это не основной инструмент

Если не обновляется окно целиком и нет миллиона анимаций — работает шустро. Та же idea в 99% случаев работает абсолютно хорошо. Хотя, лаже и ютуб смотреть можно, правда будет тяжко :)

Спасибо за статью, сам думал написать что-то подобное, но как-то руки не дошли, а теперь и не нужно, ибо написано даже больше.

От себя добавлю, что с systemd есть такой вариант github.com/arkane-systems/genie
Но у меня самого он работал с переменным успехом
Я в итоге добавлял скрипты заглушки, чтобы minikube работал (он рассчитывает на команды sysctl).

По поводу докера в WSL 2 — я советую использовать его так же, как и в стандартном linux дистрибутиве. Работать будет так же, проблем с ним не замечал.

Сам поставил tmux с именованной сессией точкой входа в wsl в Windows terminal. Какие это даёт плюсы:
1) Терминал изредка крашится, при перезапуске вернётесь туда, где и был
2) Аналогично можно закрыть терминал и чуть позже открыть и продолжить там, где и закончил
3) В конфиге tmux можно добавить дополнительные команды, например работу с упомянутым clip.exe, можно будет копировать вывод сразу в буфер обмена Windows.

И добавлю, что из WSL есть возможность выполнять powershell -command "Get-Clipboard", чтобы получать буфер обмена Windows, чем я иногда пользуюсь.

Прям всплакнулось, делал похожее на обычных виртуалках в в hyper-v и cygwin (X11 там гораздо функциональней, чем просто буфер обмена, а утилиты — портабельные, ну и opengl работает до определённой степени). Как раз по-моему ConEmu в качестве терминала и использовал, и он уже тогда вполне себе кушал всё что выдаёт ssh хост с tmux/vim. От похаканных шрифтов я по итогу отказался, глазки от этих углов в статус барах лично у меня болят(но это уже с gnu/linux на десктопе).

Очень сильно от WT не хватало быстрого вызова терминала по горячей клавише вверху экрана (по типу guake, tilda или например в iterm это можно настроить). В итоге для решения воспользовался autohotkey, собственно если кому надо вот мой скрипт (работает по F1), в сети наверное можно поискать и более функциональные варианты.

С помощью xserver и костылей можно поднять сам guake :). Была идея написать windows-сервис и wsl-сервис, которые вместе красивенько поднимали бы guake, но как то не сложилось пока что. Windows прослойка нужна для вразумительного детекта мультимониторных конфигураций(что бы терминал вылезал в правильной позиции на активном мониторе) и глобальных хоткеев(по дефолту глобальные в linux хоткеи в виндовом сервере работают только, если x окно активное).

Что-то он у меня сходу не заработал. Просто ничего не происходит по Win+`, с autohotkey не сталкивался раньше. А вот лет 10 назад пользовался guake, очень нравилась эта фича :) на Windows не хватает дропдаун терминала.

Возможно проблема в иконке для трея, так как забыл убрать 8 строчку в гисте, вполне возможно что скрипт из-за этого не инициализируется. И у меня скрипт настроен, на то чтобы работать по F1, для вызова по Win+`, надо в 21 строке подставить "#`", вместо "F1", вот тут есть подробнее про сочетания.

Да не, иконку я там кинул и скрипт запустился. Но ни по F1, ни по Win+` что-то не заработало сходу. Ну потом разберусь, в принципе давно хотел разобраться с autohotkey

Тогда возможно отличается класс окна консоли в переменной wt_class. В комплекте с autohotkey обычно еще устанавливается утилита WinSpy вроде, или например можно в скрипте все что касается меню убрать, и тогда в трее должно появиться стандартное меню, с различными опциями для дебага, одна из опций должна открывать указанную утилиту. С помощью этой утилиты можно определить класс окна консоли.

Спасибо за подробную статью. Если не трудно, скиньте ссылку на файл настроек терминала, очень уж понравилось как выглядит :)
Оформил конфиг в виде gist. В комментарии описал основные отличия от дефолтного конфига.

Но, вообще, классно выглядит то, что в самом терминале, а это уже настройки шелла :) в настройках самого терминала на внешний вид влияет только шрифт, фон, иконки, форма и цвет курсора, да и всё наверное. Есть, конечно, цветовая схема, но нужно, чтобы шелл и программы в терминале делали цветной вывод. К примеру, команды в терминале на скриншотах подсвечены, потому что используется плагин zsh, используется bat вместо cat, micro вместо стандартных редакторов и т.д.
Но в плане цвета в принципе WT из коробки поддерживает true color в WSL и ничего не надо ставить дополнительно (есть много инструкций по поводу TC цветов в терминале на Linux, сейчас большинство не актуально).

Пользуюсь ConEmu. Есть ошибка которую не могу побороть: переносы строк. При копировании в консоль они теряются. Кто-то сталкивался с таким?

Есть и другие терминалы, позволяющие запускать WSL с разной степенью костыльности

А в чем костыльность проявляется? Пока пользуюсь wsltty, вроде норм.

Такое впечатление было вызвано беглым анализом того, как запускается WSL в различных оболочках, например mintty требует бридж wslbridge2. Современный wsltty возможно работает не хуже WT, если устраивает его внешний вид и настройки, то должно быть норм.
Удалось зацепить сеть wsl 2 в режиме bridge. Билд windows: 19041.21
1. В «Control Panel\Network and Internet\Network Connections» зацепил адаптер сетевого интерфейса (LAN) и адаптер виртуальной машины (vEthernet (WSL)) в мост, выделив оба адаптера и в контекстеом меню выбрав «Add to bridge»
2. Настроил ip в linux и маршрут для локальной сети в которую включен адаптер «LAN»
Уважаемый mekhan, возможно не совсем по теме, но наверняка вы для себя уже решили подобный вопрос: Как при работе с VSCode через плагин Remote Development редактировать файлы, разрешения для которых требуют повышения привилегий через sudo?

пробовали запускать code из под wsl через sudo?
$ sudo code .

На своих серверах (виртуальных машинах в основном с Ubuntu) я использую только учётку root в том числе и из-за того, что под обычным пользователем возникают описанные вами проблемы. Под рутом могу себе позволить работать, так как использую системы один, других пользователей нет.
Sign up to leave a comment.

Articles