Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Мой набор конфигураций для sway/dwl и artix

License

NotificationsYou must be signed in to change notification settings

MuratovAS/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

В этом репозитории вы найдете мой набор конфигурацийdwl иartix (dinit). Скорее это все одна большая инструкция по сборки системы, подобной моей.Все необходимые компоненты вы найдете в файлах или в соответствующих репозиториях в моем профиле.

Основные положения:

  • Минималистичная система (меньше компонентов = меньше звеньев отказа)
  • Простое администрирование (dinit,btrfs)
  • Нейтральный, единообразный дизайн/стиль
  • Атомарность приложений (все пользовательские приложения вflatpak)
  • LUKS

Альтернативный текст

Установка Artix

Для установки системы нам потребуется USB накопитель с предварительно записанным artix linux.

После загрузки с USB откроем терминал и перейдем под ROOT

sudo su

Разметка диска

В первую очередь необходимо создать разметку ФС (в нашем случаеGPT).Установку системы будем производить наssd, в качестве корневой системы используемbtrfs.Ориентировочная структура разделов:

0. efi    = 512M1. lvm    = lvm (luks)2. free   = 1-5% disk size

Для создания разметки воспользуемся командой

cfdisk /dev/nvme0n1

Форматируем разделы, создаем файл подкачки

cryptsetup --verbose --type luks1 --cipher aes-xts-plain64 --key-size 256 --hash sha256 --iter-time 1000 --use-random --verify-passphrase luksFormat /dev/nvme0n1p2# Are you sure? (Type 'yes' in capital letters): YES# Key slot 0 created.cryptsetup luksOpen /dev/nvme0n1p2 lvm-system# vgdisplayvgcreate lvmSystem /dev/mapper/lvm-systemlvcreate --contiguous y --size 64G lvmSystem --name volSwaplvcreate --contiguous y --extents +100%FREE lvmSystem --name volRoot# lvdisplaymkfs.fat -n ESP -F 32 /dev/nvme0n1p1# OR mkfs.vfat /dev/nvme0n1p1mkswap -L SWAP /dev/lvmSystem/volSwap> tmp.txt# OR mkswap /dev/sda3 -L "swap"mkfs.btrfs /dev/lvmSystem/volRootmount /dev/lvmSystem/volRoot /mntcd /mntbtrfs subvolume create _activebtrfs subvolume create _active/rootvolbtrfs subvolume create _active/homevolbtrfs subvolume create _active/dockerbtrfs subvolume create _active/libvirtbtrfs subvolume create _active/databtrfs subvolume create _active/logbtrfs subvolume create _snapshots

Монтируем рабочие разделы

cd /home/artixumount /mntswapon /dev/lvmSystem/volSwapmount -o subvol=_active/rootvol /dev/lvmSystem/volRoot /mntmkdir /mnt/{home,boot,var}mkdir /mnt/mediamkdir /mnt/media/datamkdir /mnt/boot/efimkdir /mnt/var/logmkdir /mnt/var/lib/dockermkdir /mnt/var/lib/libvirtmkdir /mnt/media/datamkdir /mnt/mnt/defvolmount /dev/nvme0n1p1 /mnt/boot/efimount -o subvol=_active/data /dev/lvmSystem/volRoot /mnt/media/datamount -o subvol=_active/docker /dev/lvmSystem/volRoot /mnt/var/lib/dockermount -o subvol=_active/log /dev/lvmSystem/volRoot /mnt/var/logmount -o subvol=_active/libvirt /dev/lvmSystem/volRoot /mnt/var/lib/libvirtmount -o subvol=_active/homevol /dev/lvmSystem/volRoot /mnt/homemount -o subvol=/ /dev/lvmSystem/volRoot /mnt/mnt/defvol

Установка базовой системы

В качестве системы используемdinit.В качестве системы управления сеансами будет использоватьсяelogind, можно заменить его наseatd. Стоит отметитьseatd не поддерживаетpolkit, это может стать серьезной проблемой при запуске GUI приложений требующих привилегированного доступа. В таком случае придется запускать GUI приложения отroot, что не безопасно и неудобно.В зависимости от архитектуры целевой машины выберитеucode.

basestrap /mnt base base-devel dinit basestrap /mnt elogind-dinit polkit  polkit-qt5 polkit-gnome# OR seatd-dinit #NOT support polkitbasestrap /mnt btrfs-progs linux linux-headers linux-firmwarebasestrap /mnt amd-ucode iucode-tool# OR basestrap /mnt intel-ucode iucode-toolbasestrap /mnt vulkan-radeon radeontop

Создание файла с информацией о разделах

fstabgen -U /mnt>> /mnt/etc/fstab

Настройка базовой системы

Перейдем в корневой каталог будущей нашей системы

artix-chroot /mnt

Конфигурация часового пояса.В данном примереhwclock позволит установить время по аппаратным часам

ln -sf /usr/share/zoneinfo/Asia/ГОРОД /etc/timezonehwclock --systohc

Установим базовое ПО (необязательно)

pacman -S vi nano htop wget

Установим пакеты для управления сетевым соединением

pacman -S dhcpcd dhclient networkmanager networkmanager-dinitdinitctlenable NetworkManager

Настройка языковых пакетов

sed'/en_US\.UTF-8/s/^#//' -i /etc/locale.gensed'/ru_RU\.UTF-8/s/^#//' -i /etc/locale.gen#echo "LANG=ru_RU.UTF-8" > /etc/locale.conflocale-gen

Определение сетевого имени машины

echo"ИМЯХОСТА"> /etc/hostnameecho"127.0.0.1 localhost"> /etc/hostsecho"::1       localhost">> /etc/hosts# echo "127.0.1.1 ИМЯХОСТА.localdomine ИМЯХОСТА" >> /etc/hosts

Настройка репозиториев

Установим поддержкуArchLinux репозиториев и AUR.

pacman -S artix-archlinux-support

Пропишешь в конфигурацииpacman новые репозитории. Добавить в/etc/pacman.conf

# Arch[extra]Include = /etc/pacman.d/mirrorlist-arch[community]Include = /etc/pacman.d/mirrorlist-arch[multilib]Include = /etc/pacman.d/mirrorlist-arch

Обновим репозитории

# pacman -Sy archlinux-keyring artix-keyring# rm -r /etc/pacman.d/gnupg# pacman-key --initpacman-key --populate archlinux artixpacman -Sccpacman -Syyu

Так же данными командами можно исправить ошибкуInvalid or corrupted packages (PGP signature)

AUR

sudo pacman -S gowget https://aur.archlinux.org/cgit/aur.git/snapshot/yay.tar.gztar -xvf yay.tar.gzcd yaymakepkg -i

## Установка загрузчика

за hibernation отвечаетresume

GRUB

pacman -S device-mapper-dinit lvm2-dinit cryptsetup-dinitpacman -S lvm2 cryptsetup glibc mkinitcpiopacman -S openssl openssl-1.1dinitctlenable dmeventddinitctlenable lvm2dinitctlenable cryptsetup

ДобавимHOOK в/etc/mkinitcpio.conf

HOOKS=( ......... encrypt, lvm2, resume)
mkinitcpio -p linux
pacman -S grub os-prober efibootmgr grub-btrfblkid -s UUID -o value /dev/nvme0n1p1

Редактируем/etc/default/grub

# GRUB_CMDLINE_LINUX_DEFAULT# GRUB_CMDLINE_LINUX_DEFAULT="cryptdevice=UUID=ИЗ_blkid:lvm-system loglevel=3 quiet resume=UUID=ИЗ_FSTAB_SWAP"GRUB_ENABLE_CRYPTODISK="y"GRUB_COLOR_NORMAL="yellow/black"GRUB_COLOR_HIGHLIGHT="black/yellow"
grub-mkconfig -o /boot/grub/grub.cfggrub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=artix --removable --recheck /dev/nvme0n1

Настройка пользователя

Не забываем задать парольroot

passwd

Создаем пользователя

useradd -m -G wheel -s /bin/bash ИМЯpasswd ИМЯ

Отключаем пароль sudo дляwheel. А так же отключи запрос пароля дляpoweroff это позволит управлять питанием из WM

sed'/%wheel ALL=(ALL:ALL) ALL/s/^#//' -i /etc/sudoers#echo -e '## Same thing without a password\n \%wheel ALL=(ALL:ALL) NOPASSWD: /usr/bin/poweroff\n \%wheel ALL=(ALL:ALL) NOPASSWD: /usr/bin/reboot\n \' >> /etc/sudoers

Завершение установки базового образа

На данном этапе можно считать установку оконченной. Далее завершаем работу, перезагружаемся в установленную систему.

exitumount -R /mntreboot

Избежание необходимости дважды вводить парольную фразу (LUKS)

mkdir -m 700 /etc/cryptsetup-keys.ddd bs=512 count=4 if=/dev/random of=/etc/cryptsetup-keys.d/cryptlvm.key iflag=fullblockchmod 600 /etc/cryptsetup-keys.d/cryptlvm.keycryptsetup -v luksAddKey /dev/sda3 /etc/cryptsetup-keys.d/cryptlvm.key

Добавим в/etc/mkinitcpio.conf

FILES=(/etc/cryptsetup-keys.d/cryptlvm.key)

Добавим в/etc/default/grub

GRUB_CMDLINE_LINUX="... cryptkey=rootfs:/etc/cryptsetup-keys.d/cryptlvm.key"

ОбновимGRUB иramfs

mkinitcpio -p linuxgrub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=artix --removable --recheck /dev/nvme0n1grub-mkconfig -o /boot/grub/grub.cfg

Подготовка рабочего окружения

Запустим сервис обеспечивающий авторизацию в системе

#eloginddinitctlenable eloginddinitctl start elogindusermod -aG video ИМЯ#seatd#dinitctl enable seatd#dinitctl start seatd#usermod -aG seat ИМЯ

Пропишем в системныйenviroment выбранный в прошлом пункте LM

echo"LIBSEAT_BACKEND=logind">> /etc/environment

Добавим возможность использовать.profile для пользовательскихenv. А так же возможность добавлять пользовательские бинарные приложения.

echo'export PATH="$HOME/.local/bin:$PATH"'> /etc/profile.d/home-local-bin.shecho -e'# Load profile from home\n[[ -f $HOME/.profile ]] && . $HOME/.profile'>> /etc/profile

Установка WM

Установимdwm и терминалfootСтоит отметить чтоjq используется в некоторых скриптах WM, по этой причине он внесет список необходимых.

sudo pacman -S foot mako wl-clipboard jq

Для функционирования и настройки WM нам потребуются

sudo pacman -S git pkg-configsudo pacman -S libinput wayland wlroots wayland-protocols libxkbcommon fcft pixman tllistyay -S wbg

Поддержка xwayland

Если вам требуется поддержкаxorg приложений. Удалить ее будет невозможно!

sudo pacman -S xorg-xwayland

Далее необходимо произвести распаковку ваших или моихdotfiles в домашнюю папку пользователя.

git clone https://github.com/MuratovAS/dotfiles.gitcp -r dotfiles/.*~/&& rm -rf~/.git~/designcd~/.local/src

ZSH как альтернатива BASH

Установкаzsh

sudo pacman -Syu zshchsh -s$(which zsh)

Настройкаzsh (выполнять не требуется, если скопировали мой dotfiles)

mv~/.oh-my-zsh~/.config/oh-my-zshsed -i's@\.oh-my-zsh@\.config/oh-my-zsh@g'~/.zshrcsed -i's@plugins=(git)@plugins=(git zsh-autosuggestions zsh-syntax-highlighting)@g'~/.zshrcsed -i's@robbyrussell@agnoster@g'~/.zshrcsed -i'/mode disabled/s/^#//'~/.zshrcsed -i'/ prompt_context/s/^/#\ /'~/.config/oh-my-zsh/themes/agnoster.zsh-theme
sh -c"$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"git clone https://github.com/zsh-users/zsh-syntax-highlighting.git${ZSH_CUSTOM:-.config/oh-my-zsh/custom}/plugins/zsh-syntax-highlightinggit clone https://github.com/zsh-users/zsh-autosuggestions${ZSH_CUSTOM:-.config/oh-my-zsh/custom}/plugins/zsh-autosuggestions

XDG

Установим утилитыxdg, это позволит обеспечить ассоциацию файлов и добавить поддержку ярлыков. Пакетxdg-user-dirs необходим некоторым приложениям для доступа к стандартным каталогом. От него можно отказаться, вручную создав каталоги.

sudo pacman -S xdg-utils xdg-user-dirs#mkdir ~/Share ~/Download ~/Documents ~/Media ~/Templates#xdg-user-dirs-update --set DESKTOP ~/Media#xdg-user-dirs-update --set DOCUMENTS ~/Documents#xdg-user-dirs-update --set DOWNLOAD ~/Download#xdg-user-dirs-update --set MUSIC ~/Media#xdg-user-dirs-update --set PICTURES ~/Media#xdg-user-dirs-update --set PUBLICSHARE ~/Share#xdg-user-dirs-update --set TEMPLATES ~/Templates#xdg-user-dirs-update --set VIDEOS ~/Media

Установка pipewire

Установимpipewire с базовыми дополнениями и TUI менеджерpulsemixer

sudo pacman -S pipewire-alsa pipewire pipewire-jack pipewire-pulse pipewire-media-session pamixer pulsemixer

Поддержка screancast и диалоговых окон

sudo pacman -S xdg-desktop-portal xdg-desktop-portal-wlr xdg-desktop-portal-gtkmkdir .config/xdg-desktop-portal/cp /usr/share/xdg-desktop-portal/gtk-portals.conf .config/xdg-desktop-portal/portals.conf

Шрифты

sudo pacman -S wqy-microhei ttf-dejavu ttf-roboto ttf-roboto-mono#systemsudo pacman -S ttf-carlito ttf-caladea ttf-liberation#base textsudo pacman -S ttf-nerd-fonts-symbols#iconsudo pacman -S ttf-font-awesome#emoji

Обновление кэша шрифтов

fc-cache -f -v#fc-list

Синхронизация времени и даты

Установкаchrony, позволит синхронизировать время с NTP сервером

sudo pacman -S chrony chrony-dinitsudo dinitctlenable chrony

Поддержкаappimage

По моим предположениям AppImage должен работать из коробки, но встречаются случаи когда приложение не запускается. У меня решилась проблема установкой недостающих компонентовfuse.

sudo pacman -S fuse-common fuse3 fuse2

Все что может пригодиться на ноутбуке

sudo pacman -S tlp tlp-dinit# менеджер питанияsudo dinitctlenable tlp#yay -S tlpuiyay -S poweralertd# Уведомляет о состоянии питанияsudo pacman -S bluez bluez-utils bluez-dinitsudo yay -S bluetuith-bin# TUI bluetoothsudo usermod -aG rfkill ИМЯsudo usermod -aG lp ИМЯsudo dinitctlenable bluetoothdyay -S light# Управляет подсветкой

Дополнительные пакеты

Данные пакеты используются в текущей конфигурацииdwl, но установка не обязательна

sudo pacman -S playerctl# Управление медиа плиром из waybarsudo pacman -S wf-recordersudo pacman -S slurp grim swappy# Инструменты для снимков экранаsudo pacman -S wlsunset# Ночный режим, фильтр синего цветаsudo pacman -S khal# Календарьsudo pacman -S gnome-keyring# Систума управления ключами (необходима для многих приложений)khal configure

Поддержкаflatpak

sudo pacman -S flatpak flatpak-builderflatpak install flathub com.github.tchx84.Flatseal

ОформлениеGTK

sudo pacman -S xcursor-breezeyay -S matcha-gtk-theme

Оформлениеelectron

Большинство приложений по умолчанию работают черезxwayland, что не очень правильно. Так же это ограничивает разрешения изображения, и на HiDPI мониторе будет выглядеть печально. Данную проблему можно исправить файлом конфигурации, принудительно запускающийwayland версию приложения. В некоторых случаях требуется вручную создать файл для вашей версииelectron.

ln -s~/.config/electron-flags.conf~/.config/electron12-flags.confln -s~/.config/electron-flags.conf~/.config/electron13-flags.confln -s~/.config/electron-flags.conf~/.config/electron18-flags.conf

Вход в систему без пароля

cp /etc/dinit.d/config/agetty-default.conf /etc/dinit.d/config/agetty-tty1.conf

Содержание/etc/dinit.d/config/agetty-tty1.conf

# DO NOT REMOVE THIS FILE!# Note: You can copy and rename this file to the name of the tty you#     want (e.g.: /etc/dinit.d/config/agetty-tty1.conf will make a#     configuration specific to tty1) GETTY_BAUD=38400 GETTY_TERM=linux GETTY_ARGS="-J -a ИМЯ"

Disconnect CPU Boost AMD

Содержание/etc/dinit.d/legion

type          = scriptedcommand       = /bin/sh -c "echo 'passive' > /sys/devices/system/cpu/amd_pstate/status; echo 0 > /sys/devices/system/cpu/cpufreq/boost;"start-timeout = 5before        = tty1.target
cd /etc/dinit.d/boot.d/sudo ln -s  ../legion legionsudo dinitctlenable legion

Немного о ПО

Полезные GUI приложения

sudo pacman -S pamacsudo pacman -S seahorsesudo pacman -S gnome-disk-utilitysudo pacman -S nautilussudo pacman -S file-rolleryay -S buttermanageryay -S gnome-calculator-gtk3sudo pacman -S librewolf

Полезные TUI приложения

sudo pacman -S micro mc fzf neofetchsudo pacman -S bat glow chafasudo pacman -S pass cmussudo pacman -S netcat

Набор приложений для просмотра медиа файлов

sudo pacman -S mpv imv zathurasudo pacman -S zathura-pdf-poppler zathura-djvusudo pacman -S ffmpeg ffmpegthumbnailer#sudo pacman -S f3d

Расширение поддержки устройств и форматов файлов

sudo pacman -S exfat-utilsyay -S ntfsprogs-ntfs3sudo pacman -S p7zip unrarsudo pacman -S gvfs-mtp

Пользовательские приложения

flatpak install flathub org.gnome.Evolutionflatpak install flathub org.gnome.Evinceflatpak install flathub org.libreoffice.LibreOfficeflatpak install flathub com.github.marktext.marktextflatpak install flathub com.jgraph.drawio.desktopflatpak install flathub io.github.f3d_app.f3dflatpak install flathub org.telegram.desktopflatpak install flathub com.jeffser.Alpacaflatpak install flathub com.github.Murmele.Gittyupflatpak install flathub io.github.flattool.Warehousesudo pacman -S kdeconnectsudo pacman -S tailscalesudo pacman -S tailscale-dinit sudo dinitctlenable tailscaledyay -S trayscale

Установкаdocker

sudo pacman -S docker docker-compose docker-dinitsudo dinitctl start dockerdsudo usermod -aG docker$USERyay -S lazydocker

Установкаkvm/qemu

sudo pacman -S dmidecode virt-manager virt-viewer qemu edk2-ovmf vde2 dnsmasq bridge-utils libvirt-dinit #qemu-fullsudo usermod -a -G libvirt $(whoami)sudo chown -R libvirt-qemu:libvirt-qemu /var/lib/libvirt

Костыль для тем вflatpak

cp -r /usr/share/themes/ .themes/cp -r /usr/share/icons/ .icons/ flatpak install flathub org.gtk.Gtk3theme.Breeze

Так же следует добавитьenv для всехflatpak приложений

GTK_THEME=Matcha-dark-seaICON_THEME=AdwaitaLegacy

Подробнее:Flatpak documentation they are blacklisted.Apply GTK System Themes on Flatpak Apps in Linux

Credit:

10 Linux cryptsetup Examples for LUKS Key Management (How to Add, Remove, Change, Reset LUKS encryption Key)Artix Linux. Установка с полным/частичным шифрованием; Хабр


[8]ページ先頭

©2009-2025 Movatter.jp