Свалился на меня «последний из 32-битных могикан», но машинка прямо финал возможностей архитектуры — насколько я понял, видит спокойно 8 гигов рамы (PAE во все поля?), слотов не пожалели, в общем, в такое чудо бы камень хотя бы на 2 ядра, но, увы…
Я его практически не смотрел ещё и ХЗ когда посмотрю (вроде не совсем мёртвая), но превентивно задам вопрос. Допустим, поставил я туда 32-битный BunsenLabs. Допустим, я хочу запустить какое-нибудь 64-битное приложение, которое в 32 битах давно уже не обновляется. Допустим, мне пофиг, что там в плане скорости (очень важное допущение, потому что оно как бы понятно, что там будет).
Насколько это реально — настроить для него резервативию… презервацию… короче, специально обученный загон с софтовой эмуляцией 64 бит? Существуют ли решения? Чтобы их установить и отконфигурировать, обязательно пройти все круги ада, как в той статье?
Практического смысла это по понятной причине не несёт — просто пятничное.
Привет, Хабр! Наступила очередная пятница, поэтому я несу полезные материалы на выходные для тех, кто хочет получше освоить Ubuntu. Информация по ссылкам довольно базовая, для начинающих. Все бесплатно, без регистрации и смс. Поехали!
Установка и настройка FTP-сервера на Ubuntu — разбираемся с установкой, настройкой, созданием пользователей, настройкой SSL/TLS и проверками подключений. Все разбираем на примере VSFTPD (Very Secure FTP Daemon).
Установка и настройка Jitsi Meet на Ubuntu 22.04 — рассмотрим настройку публичного сервера видеоконференций Jitsi Meet, доступного из интернета, с выпуском TLS-сертификата и обязательной авторизацией.
Я постепенно перевожу свою домашнюю лабораторию с x86 на ARM последние несколько месяцев. Причины простые: на ежедневной машине у меня Mac на Apple Silicon, так что разработка под ARM64 воспринимается естественно; инстансы на Graviton обычно дешевле; и ARM64 машины намного экономичнее по энергопотреблению, что делает круглосуточную домашнюю лабораторию дешевле по электричеству и выделяет значительно меньше тепла. После нескольких лет работы с мини‑ПК Shuttle на Intel я решил перейти всерьёз и сразу после релиза заказал два Minisforum MS‑R1 - в каждом 12‑ядерный ARM64 SoC и 64 ГБ ОЗУ.
Машины приехали 29 ноября. В тот же день вышел Incus 6.19. Я хотел как можно быстрее поднять хотя бы одну коробку, поэтому установил Ubuntu 24.04.3 (arm64), поставил Incus 6.19 и потратил пару часов, чтобы контейнеры запускались и вели себя как надо. Для повседневной работы с контейнерами переход оказался удивительно плавным.
Но железо редко ведёт себя с первого раза так, как ожидаешь. MS‑R1 идет с двумя RTL8127 10‑Gbit сетевыми картами, и из коробки стандартное ядро Ubuntu их не увидело. Первой мыслью было поставить mainline ядро - я установил 6.16, драйверы RTL появились, начали мигать сетевые индикаторы, и я с облегчением выдохнул.
Это облегчение оказалось недолгим. Используемое мной mainline ядро устроено так, что опция MODULES в kernel не включена, чтобы DKMS смог собрать модуль ZFS, который мне нужен для Incus. Пересобирать всё ядро показалось чрезмерным, пока я не обнаружил, что у Zabbly (разработчик Incus) есть собственный репозиторий кастомных ядер для Ubuntu и соответствующие пакеты ZFS. Переход на ядро от Zabbly решил 2 проблемы: драйвер RTL8127 и пакеты ZFS, которые устанавливаются через DKMS. В этот момент Incus, сеть и ZFS pool заработали нормально.
Остались две проблемы - обе странные, обе упрямые и обе порождают больше вопросов, чем ответов.
Первая касается локального дисплея. После загрузки с ядром Zabbly система жива и доступна по SSH, но подключённый HDMI‑монитор не обновляется дальше стартового изображения BIOS. Экран зависает на заставке BIOS, в то время как ядро и userspace тихо продолжают загрузку в фоне. Пока не нашёл явных сообщений об ошибках в привычных логах, которые указывали бы на конкретный драйвер.
Вторая проблема - с виртуальной машиной Windows 11. Я попытался поставить Windows 11 ARM64 под Incus по тем же шагам, что и на x86‑64 хостах. Процесс VM стартует, но зависает на экране BIOS/UEFI и не доходит до инсталлятора. Моя первая гипотеза - отсутствует или неправильно сконфигурирована aarch64 UEFI прошивка, либо нужна какая‑то конкретная опция machine/cpu для Windows on ARM. Но ещё не пришёл к выводу, падает ли прошивка молча или она просто ждёт чего‑то, чего я не передал.
Что пробовал уже - практично, но пока не окончательно. Установка mainline ядра решила проблему с NIC; переход на ядро Zabbly решил и NIC, и ZFS. Могу подключиться по SSH к хосту при зависшем дисплее, значит это не полная паника ядра. Для ВМ вижу процесс qemu, но экран не двигается дальше BIOS.
Если кто‑то сталкивался с подобным, буду признателен за опыт и решения. Несколько конкретных вопросов, по которым надеюсь на помощь сообщества:
Кто‑нибудь видел ситуацию, когда HDMI‑дисплей после переключения на кастомное ядро arm64 "замораживается" на заставке BIOS и не обновляется дальше, хотя ОС при этом загружается?
Что я упустил для запуска Windows 11 (aarch64) под Incus/QEMU на Ubuntu?
Привет, Хабр! Новая пятница — новые знания для начинающий специалистов! Сегодня у нас небольшая подборка инструкций по работе с командами в Linux. Пригодится будущим и начинающим системным администраторам. Как всегда, все материалы доступны бесплатно и без регистрации. Поехали!
Команда grep в Linux — снова изучаем синтаксис, знакомимся с регулярными выражениями, смотрим на примеры использования команды.
Команды kill и killall в Linux — подробная инструкция по принудительному завершению и настройке процессов, а также управлению их приоритетами.
И просто напоминание, что в Академии Selectel есть курс по системному администрированию с нуля. Он тоже бесплатный, но там все же придется зарегистрироваться, так что на ваше усмотрение.
Самый простой способ сообщить об успешном подключении по SSH
Всем привет! Вообще-то, обычно решают обратную задачу - сообщить о неудачных попытках подключения по SSH, а еще лучше - сразу заблокировать. С этим прекрасно справляет, например, Fail2ban, но, рассказ не о нем. Может оказаться полезно получать уведомления именно об успешных подключениях, особенно, в тот момент, когда сам НЕ подключаешься. Так же, хочется сделать это с наименьшими усилиями, без написания скриптов, без установки специфического ПО, что бы было легко "скопипастить" решение на множество систем. Так же, хочется знать не тoлько о подключениях, получивших shell, но и о удаленном выполнении команд, или копировании файлов по протоколу SSH.
Все есть в этом решении:
$ sudo apt install curl
$ sudo nano /etc/pam.d/sshd
оставьте, все, что было в этом файле и добавьте в конец:
Как оказалось, curl умеет отправлять почту, в сообщении будут присутствовать все подробности, кто, когда, откуда подключился, и, даже, когда отключился. Правда, в этом решении требуется корпоративный почтовый сервер (mailhub.yourcorp.ru в нашем "однострочнике"), готовый принять письмо без аутентификации. Это допустимо, если он же является конечным сервером с ящиком пользователя, или, есть разрешение пересылки писем из корпоративной сети (в этом случае можно использовать любой другой почтовый адрес, вместо yourlogin@yourcorp.ru). Однако, такой сервер не всегда имеется, и решение не годится для персонального использования.
В этом случае, предлагаю Вам вебинар , демонстрирующий решение той же задачи, с отправкой сообщений в Telegram
На этом все, спасибо, буду рад ответить на вопросы!
Linux Mint 22 - KiCad-5 с GUI и графическим ускорением на карте AMD в Docker-контейтере.
При перезде с Минт-20 на Минт-22 мне захотелось сохранить возможность полноценной работы с проектами выполнеными в KiCad-5, без конвертации их в формат KiCad-9 на который я плавно мигрирую при перезде на Минт-22. Специфика в том, что KiCad-5, в том числе в виде AppImage на Минт-22 запускаться категорически не хочет.
Из возможных вариантов выбрал для себя запуск KiCad-5 в Docker-контейтере, с пробросом графики через X11. За основу взял эту реализацию. Добавил к ней проброс графического ускорения(без него GUI будет подтормаживать) своей карты AMD, русификацию, и Firefox, для плагина InteractiveHtmlBom. В итоге получился вот такой dockerfile:
FROM linuxmintd/mint20-amd64
ENV LANG=ru_RU.UTF-8
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y nano sudo keyboard-configuration software-properties-common x11-apps xdg-utils \
locales language-pack-ru-base language-pack-ru xed xed-dbg firefox firefox-locale-ru && \
update-locale LANG=ru_RU.UTF-8
RUN add-apt-repository --yes ppa:kicad/kicad-5.1-releases && \
apt-get update && \
apt-get install --no-install-recommends -y kicad kicad-locale-ru kicad-doc-ru
# Укажите здесь используемые на вашем хост-компьютере
# имя пользователя, идентификатор пользователя и идентификатор группы.
ENV USER_NAME=vasily
ENV UID=1000
ENV GID=1000
ENV HOME=/home/${USER_NAME}
ENV XDG_RUNTIME_DIR=/tmp/runtime-${UID}
RUN mkdir -p ${HOME} && \
echo "${USER_NAME}:x:${UID}:${GID}:USER_NAME,,,:${HOME}:/bin/bash" >> /etc/passwd && \
echo "${USER_NAME}:x:${UID}:" >> /etc/group && \
echo "${USER_NAME} ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/${USER_NAME} && \
chmod 0440 /etc/sudoers.d/${USER_NAME} && \
chown ${UID}:${GID} -R ${HOME}
USER ${USER_NAME}
# Раскомментируйте программу, которую вы хотите запустить в контейнере.
#ENTRYPOINT ["eeschema"]
ENTRYPOINT ["kicad"]
Обратите внимание, что значения USER_NAME, UID, GID, в строках 17, 18, 19 в dockerfile берутся из вашего аккаунта на хост-машине.
Образ создается как обычно выполненой в открытом в одной директории с dockerfile терминале командой(не забываем пробел и точку в конце команды):
docker build -t kicad5 .
Размер образа получаеться около 800 Мбайт.
Скрипт для старта контейнера на машине с графической картой AMD:
1). Создаете в Минт-22 директорию /usr/share/kicad5 и копируете туда содержимое /usr/share/kicad из Минт-20 с установленным kicad5
2). Копируете содержимое $HOME/.kicad_plugins из Минт-20 с установленным kicad5 в $HOME/.kicad_plugins в Минт-22
3). Копируете содержимое $HOME/.config/kicad/ из Минт-20 с установленным kicad5 в $HOME/.config/kicad в Минт-22
Теперь можете запускать KiCad-5 с GUI и графическим ускорением на карте AMD в Минт-22 и паралельно установить в Минт-22 KiCad-9.
Чтобы заархивировать созданный образ выполняем в терминале:
docker save -o ./my_bac_kicad5_image.tar kicad5
Чтобы развернуть заархивированый образ на другом машине выполняем в терминале, открытом в одной директории с файлом my_bac_kicad5_image.tar, на нее скопированном:
Selectel выпустил заключительную часть курса «Системный администратор Linux»
Модули курса выходили постепенно, и недавно вышел последний — теперь обучение доступно целиком. Финальная часть посвящена настройке сетей, управлению пакетами и логами, а также работе с контейнерами.
Курс полностью бесплатный и не привязан к датам — можно изучать материалы в комфортном темпе.
После завершения вы получите сертификат. Как его оформить — рассказываем в последнем уроке.
С точки зрения пользователя (в данном случае человека, отвечающего за обновления данной Linux-системы) лайвпатч — это просто модуль ядра Linux, в котором содержится как минимум следующее:
исправленный код одной или более функций из vmlinux и/или из модулей ядра,
метаданные, указывающие, как применить эти исправления к соответствующим компонентам ядра Linux.
Чтобы применить лайвпатч-обновление, нужно загрузить этот модуль ядра, например, с помощью insmod или modprobe, а затем активировать его, как правило, через sysfs.
При этом старый код ядра Linux (тот, который хотим обновить) и новый (тот, что в лайвпатч-модуле) сосуществуют в памяти системы. Это дает возможность при необходимости отменить лайвпатч-обновление в runtime: деактивировать его через sysfs, а затем выгрузить лайвпатч-модуль.
Важный момент: если используются средства для работы с лайвпатчами из mainline-ядра, то при активации и деактивации лайвпатч-обновлений работающие процессы не нужно завершать или даже останавливать на сколько-нибудь существенное время.
Примечания:
У TuxCare / KernelCare лайвпатчи поставляются в другом, проприетарном, формате, но мы его рассматривать не будем.
Для некоторых архитектур, например RISC-V, при активации и деактивации патча вызывается stop_machine(), то есть работающие процессы при этом все-таки останавливаются на некоторое время. Начиная с версии 6.16 ядра Linux, для RISC-V stop_machine() уже, вероятно, не будет использоваться в таких ситуациях.
Все, что нужно знать о лайвпатингче для ядра Linux, вы найдете в цикле статей: от подготовки лайвпатча до работы на x86, ARM и RISC-V.
Настройка КриптоПро HSM Client на Suse/RedHat/ROSA Linux
Подготовили пошаговую подробнейшую инструкцию со скриншотами для разработчиков информационных систем со встроенными СКЗИ по настройке КриптоПро HSM Client на Suse, RedHat и ROSA Linux (включая ошибки, которые позволяет обойти данное руководство) для того, чтобы использовать HSM как самостоятельный криптографический провайдер с выполнением всей математики на борту или в качестве надежного хранилища ключевого материала.
Хэндлим обработку некорректного ввода в ZSH для поднятия настроения
Сегодня хочу рассказать о том, как немного разнообразить времяпрепровождение в консоли, добавив немного юмора, если ваша командная оболочка zsh.
Все, кто работает в терминале (эмуляторе терминала, чтобы меня тут не покусали в комментариях :)), думаю, периодически сталкиваются с тем, что вводят команду неправильно. Например, есть шуточная команда sl, которая рисует движущийся поезд, если вы случайно опечатались, когда хотели набрать команду ls. Это служит некой разрядкой и поводом лишний раз улыбнуться. Вот репозиторий этой утилитки на GitHub для любознательных.
А что, если мы хотим, чтобы на ввод любой несуществующей команды, мы получали что-то аналогичное выводу команды sl? По умолчанию в ZSH в этом случае выводится сообщение “command not found”. Давайте это исправим.
Для этого нам понадобится:
непосредственно zsh в качестве командной оболочки;
cowsay - утилита командной строки, которая рисует разные фигурки, которые как бы говорят, наподобие героям комиксов.
lolcat - утилита для разукрашивания текста градиентом, добавления анимации и т.д.
В ZSH предусмотрена возможность переопределять поведение при возникновении каких-то ситуаций, в том числе, переопределение поведения при возникновении ошибок. В нашем случае нам нужно переопределить вывод, когда команда, вводимая пользователем не найдена. Для этого будем использовать метод command_not_found_handler. Добавим в .zshrc файл следующий код:
command_not_found_handler() {
cowsay -f tux "LOL! Command not found: $1" | lolcat -a -s 150
return 127
}
Немного пояснений: первая строка будет рисовать там пингвина, говорящего, что введенная нами команда не найдена, пингвин будет появляться построчно (150 - скорость появления). Более подробно с доступными параметрами lolcat можно ознакомиться, набрав man lolcat. 127 - это код, который zsh отправляет по умолчанию, сохраним это поведение.
Вот так примерно это выглядит:
Ну вот, собственно говоря, и все. Мелкие моменты, которые нас окружают в повседневности, делают нас (по крайней мере меня) чуточку счастливее :)
Isar и еще 8 систем сборки для создания дистрибутива на Linux
Isar — система сборки, представляющая собой набор скриптов для создания пакетов и дистрибутивов на базе Debian с возможностью настройки. Организация проекта Isar похожа на Yocto Project, для сборки используется Bitbake.
Перед сборкой можно настроить параметры файловой системы, ядра, модификации списка пакетов (добавление и удаление пакетов, в том числе и собственных, изменение существующих пакетов). Систему сборки разрабатывает компания ilbers GmbH.
Архитектура системы
Так как Isar основан на Bitbake, архитектура решения состоит лишь в нескольких слоях для Bitbake, реализующих сборку и установку пакетов в соответствии с конфигурацией сборки. В основе всех этих слоев и рецептов лежат утилиты Debian Build Toolchain, которые ответственны за непосредственную сборку пакетов, разрешение зависимостей и т.д.
Как проходит процесс сборки дистрибутива в Isar
Особенности решения
Аналогично Yocto требует усилий на начальных этапах для освоения инструмента.
Поддерживает загрузку готовых пакетов из репозиториев Debian.
Подходит для embedded-дистрибутивов, где необходимо сочетание Debian-экосистемы и глубокой конфигурации.
О других embedded- и desktop-решениях решениях рассказали студенты и преподаватели СПБГЭТУ «ЛЭТИ» в обзоре систем для создания Linux-дистрибутивов.
Дисклеймер: автор не несет ответственности за использование вами стороннего ПО из неофициального источника, вы устанавливаете ПО на свой страх и риск.
Введение
Всем привет, хотел бы рассказать вам о небольшом открытии для себя, а именно: установке claude-desktop на Arch Linux со всеми фичами, доступными Windows и MacOS пользователям. В принципе аналогично можно сделать для большинства других линукс дистрибутивов.
Спойлер: за нас с вами уже все сделали, нужно просто ввести пару комманд в терминале.
Все мы слышали про MCP и про то, как тулы можно интегрировать в ваши десктопные приложения такие как Claude-desktop, Cursor, Windsurf, VSCode, а также использовать в своих проектах при разработке агентных систем, значительно упрощая себе жизнь и разрешая ИИ-асситенту творить некоторые вещи с вашими данными.
Cursor достаточно интересная штука, которая позволяет это сделать проще всех остальных, как по мне, потому что он больше на слуху в ру-коммьюнити и его можно скачать без сложных схем обходов ограничений.
Пререквезиты
Claude-desktop же чуть более заморочен. Он требует от вас иностранный номер и некоторых махинаций.
Давайте представим что эти проблемы вы решили либо самостоятельно, либо обратились к знакомым, либо посмотрели решения из этой статьи: статья.
Так или иначе у вас есть работающий аккаунт и прямой доступ к claude.ai из вашего браузера
Установка
Базово Claude использует электрон и отсутствие порта на Linux, как говорят в реддите, просто лень разработчиков.
Благо в опен сорсе есть множество решений, на которые мы можем обратить внимание, пакетов в aur настолько много что разбегаются глаза и не совсем понятно какой конкретно нужно ставить, а еще большая часть из них не поддерживается , а последний коммит был условно год-полгода назад, следовательно если у вас хоть что то из этого запустится - вам повезло.
Альтернативно, имея Wine на своей системе, вы сможете скачать Claude-desktop для Windows и использовать через Wine, однако это очень криво и неудобно, а еще ужасно лагает.
для установки вам просто нужно выполнить ряд комманд:
# Clone this repository
git clone https://github.com/aaddrick/claude-desktop-arch.git
cd claude-desktop-arch
# Update checksums (needed once, or after PKGBUILD/install script changes)
updpkgsums
# Build and install the package
# This command automatically handles dependencies, builds, and installs
# Use makepkg -sci to automatically clean up build files afterwards
makepkg -si
Обязательно обновите checksums, иначе поймаете ошибку.
Профит
Скриншот с тулами
Теперь приложение Claude есть в списке доступных через ваш менеджер приложений. Учитывайте при запуске свою геолокацию и не забывайте о ней, чтобы избежать потенциальной блокировки со стороны Claude.
MCP
Доступно и работает из коробки, json для редактирования доступен в директории: ~/.config/Claude/claude_desktop_config.json
Не забудьте установить Nodejs и Uv/Python для запуска нужных вам тулов.
После обновления конфига перезаходим в Claude и смотрим на появившиеся кнопочки с новыми тулами.
Да не все будет работать так гладко, как могло бы на Windows/MacOS, например puppeteer у меня запускает изолированный браузер и проверить его работу я могу только через просьбу сделать скриншот (полагаю проблема в том, что я рукожоп), тем не менее: это работает на Linux.
Объявлено решении включить в состав выпуска GNOME 49 видеопроигрыватель Showtime, который станет поставляться под именем GNOME Video Player и будет задействован по умолчанию вместо видеопроигрывателя Totem (GNOME Videos).
Для желающих протестировать Showtime не дожидаясь осеннего релиза GNOME 49 подготовлен пакет в формате flatpak. Программа отличается минималистичным интерфейсом, отображаемым поверх содержимого и скрываемым во время просмотра. Поддерживаются типовые элементы управления, полноэкранный режим, изменение скорости воспроизведения, показ субтитров и создание скриншотов.
Недавно я задумался, а как создать systemd-timer для текущего пользователя без sudo прав, ведь c cron в этом вопросе проблем не было? Оказывается можно создавать локальные для пользователя systemd таймеры и сервисы и никакой root или sudo не нужны для создания файлов в /etc/systemd/system/ ! И как оказалось это касается не только таймеров и сервисов но и вообще всех сущьностей.
И так у меня есть задача конвертировать записи экрана сделанные с помощью Spectacle из vp9/webm в h264/mp4 и h265/mp4, так как он не умеет ещё в аппаратное энкодирование с GPU , а собственные записи в h264/mp4 крайне плохого кчества о чём был даже баг.
Много лет назад, устав от постоянных тормозов Windows, открыл для себя существование UNIX, точнее, FreeBSD. Иксовый десктоп, все программы - на том же компьютере всё летало заметно быстрее. Даже Quake (да, он тоже работал во Фре).
Куда-то пропали все тормоза. К тому же всё оказалось проще настраивать - у каждой программы свой конфиг, и если что-то где-то даже настроил не так - все остальные программы от этого работать не перестают. Да, пришлось переходить на совсем другой набор программ, далеко не все игры можно было запустить и так далее - но всё равно было быстрее и удобнее работать.
ИМХО, самое главное отличие было как раз вот в этом: в то время как в мире Windows активно продавливали идею "интегрированной среды", где всё вместе и взаимосвязано в монолит - там работал подход "одна задача - одна программа". И если программа не работает как хочется - меняется на аналог, не затрагивая всего остального. Почти любую сложную задачу можно было разбить на отдельные мелкие и подобрать набор утилит для ее решения - как кто-то метко выразился - "стройная система костылей и подпорок".
И вот прошли годы. Уже Линукс (прежде всего из-за лучшей поддержки разного железа), Убунта, которая с каждой версией становилась всё замедленнее и усложненнее.
Видимо, программисты из мира Windows принесли своё вИдение прекрасного: появились D-bus, systemd, gsettings - теперь далеко не всегда можно поправить конфиг-файл от программы XXXX, а потом смотреть в лог /var/log/xxxx.log - нет, теперь настройки хранятся где-то в скрытом месте и меняются специальными командами, а лог полагается смотреть через специальную утилиту, и запускается всё это не простым скриптом типа пошагового выполнения /etc/rc.local, а набором команд systemctl, которые сработают или не сработают, в зависимости от наличия определенных файлов в нужных местах...
А самое главное - после проведенной "интеграции" всё стало тормозить и глючить. Задумчивый Gnome медленно и печально открывает окошки - ага, с экраном повернутым на 90 градусов. Потому что новая "интересная фишка" - считывать датчик ориентации экрана, но считывается он не всегда правильно, а "просто закомментировать в конфиге" нельзя, можно только через меню, потом Сохранить, а потом настройка опять вдруг слетает после незаметного автообновления, которое как бы отключено, но не совсем... Погодите-ка, что-то это мне напоминает? Шаманство, глюки, неустранимые достоинства, "слетевшие драйвера"...
Правда, можно повыключать всё это вместе с Гномом - и всё снова быстро летает: ок, так и сделал, вернул любимый WindowMaker, всё прекрасно. Но вот обновление версии какой-то программы - а новая теперь только через flatpak, а ему теперь необходим d-bus, "если его нет можно поставить эмулятор", блаблабла...
Но зачем?! Зачем было делать из Linux такой же интегрированный сам в себя монолит, с неким "реестром" настроек и "системным журналом", в который нельзя просто так посмотреть? Для этого уже есть Windows! Зачем тащить это сюда?
⌨️ КАСТОМНЫЙ МАППИНГ КЛАВИШ В ЛИНУКС: ПРЕВРАЩАЕМ IJKL В СТРЕЛОЧКИ
Для навигации в среде разработки я использую использую маппинг ijkl на стрелочки и оказывается можно сделать этот маппинг на уровне всей ос, а не только IDE.
Маппить будем с помощью xremap (подходит для Wayland и X, простая конфигурация в yaml, написан на расте). Я буду показывать процесс настройки для федоры, но для других дистрибутивов он похожий.
🔧 Создаем конфигурационный файл, который замапит клавиши ijkl на стрелочки при зажатом капсе:
virtual_modifiers:
- CapsLock
keymap:
- remap:
CapsLock-i: Up
CapsLock-j: Left
CapsLock-k: Down
CapsLock-l: Right
CapsLock-h: Home
CapsLock-semicolon: End
CapsLock-u: PageUp
CapsLock-o: PageDown
Быстрое трудоустройство в YADRO для разработчиков на С++
У нас стартовал SPRINT OFFER в команду разработки телеком-оборудования. Для «плюсовиков» это возможность получить предложение о работе всего за несколько дней. Если хотите пропустить долгие этапы собеседований, отправляйте заявку до 9 марта.
Как все происходит
Подаете заявку — мы оперативно рассматриваем анкеты.
Проходите HR-скрининг и техническое интервью — без недель ожидания между этапами.
Получаете оффер — если все этапы успешно пройдены, предложение будет у вас в течение 3 дней.
Где предстоит работать
Дивизион телекома создает решения для мобильных сетей. Инженеры разрабатывают базовые станции GSM/LTE, полный стек телекоммуникационных протоколов, а также системы управления и мониторинга. Большую часть кода разработчики пишут на C++. В зависимости от задачи они используют как современные возможности C++20, так и низкоуровневые оптимизации для повышения производительности.
Кого мы ищем
→ Software Engineer (Telecom Platform)
Требуемый уровень: middle, senior, tech lead.
Чем предстоит заниматься:
Разработкой платформы для базовых станций LTE/GSM (middleware, high availability, node management, delivery).
Проектированием архитектуры, работа с C++/Linux.
Интеграцией с аппаратной и программной частью системы.
Оптимизацией кода и решение проблем производительности.
Разработкой API, unit-тестирование, документация.
→ Software Engineer C/C++ (LTE/GSM)
Требуемый уровень: middle, senior, tech lead.
Чем предстоит заниматься:
Разработкой программного обеспечения для базовых станций LTE.
Реализацией стека протоколов 3GPP.
Интеграцией с другими системами, оптимизация кода.
Решением задач производительности и стабильности системы.
Подробнее о вакансиях и команде читайте на странице SPRINT OFFER. Успейте подать заявку до 9 марта!
Практический курс «Системный администратор Linux с нуля»
Привет, Хабр! Selectel запускает курс по работе с серверной операционной системой. Он будет полезен начинающим администраторам, а также разработчикам и DevOps-инженерам, которые хотят погрузиться в Linux и сетевую инфраструктуру.
На курсе вы научитесь:
▫️ работать с командной строкой и основными утилитами;
▫️ управлять пользователями, файлами и правами доступа;
▫️ настраивать сети, SSH-соединения и мониторинг системы;
▫️ управлять инфраструктурой на базе Linux;
▫️ управлять пакетами и обновлениями программного обеспечения;
▫️ анализировать логи и устранять инциденты.
Занятия построены на базе SelectOS. Дополнительных знаний не требуется — достаточно базового владения компьютером и интереса к Linux.