Sources used:
# Is this correct?
gpg --keyserver-options auto-key-retrieve --verify <latest-iso>-x86_64.iso.sig <Name of iso??>
# Example for cp in linux
# Do not mount usb drive, instead do an ls in /dev/disk/by-id/ and find the usb stick
# Copy to top level usb drive
# e.g.
cp <iso image> /dev/disk/by-id/usb-something-0\:0
# E.g. for Norway
loadkeys no-latin1
# Password is stored in /var/lib/iwd/<ssid name>.psk
iwctl
device list
station <device,e.g wlan0> scan
station <device> get-networks
station <device> connect <your wifi ssid name>
timedatectl set-ntp true
timedatactl status
fdisk -l (take note of the disk you will be using here)
cfdisk /dev/sd<a|b|c>
# Do not use the number after sd<letter>
# Select dos for BIOS boot with MBR or efi/gpt for UEFI boot
# Make root or efi partition bootable
# Set type swap on swap partition
# Select Write og answer yes
# First list disks to get devicenames and then issue format commands
fdisk -l
mkfs.fat -F 32 /dev/sdxY # If EFI partition
mkfs.btrfs /dev/<root device>
mkswap /dev/<swap device>
mkfs.btrfs /dev/<home device>
If the installation somehow get stuck in a bad state, e.g. you are missing a package, but can connect to the internet to download it, this is where you continue after booting from the ISO image again
mount /dev/<root partition> /mnt
swapon /dev/<swap partition>
# If you created and home partition
mkdir /mnt/home
mount /dev/<home partition> /mnt/home
# If booted with efi
mkdir /mnt/efi
mount /dev/<efi partition> /mnt/efi
pacstrap /mnt base base-devel linux linux-firmware dhcpcd vim man-db man-pages texinfo iwd
genfstab /mnt >> /mnt/etc/fstab
arch-chroot /mnt
ln -sf /usr/share/zoneinfo/Europe/Oslo /etc/localtime
hwclock --systohc
en_US-UTF-8 UTF-8 and nb_NO.UTF-8 UTF-8
vim /etc/locale.gen
locale-gen
# E.g. for Norwegian formats, but English userinterface
vim /etc/locale.conf
LANG=nb_NO.UTF-8
LANGUAGE=en_US.UTF-8
LC_MESSAGES=en_US.UTF-8
vim /etc/vconsole.conf
KEYMAP=no-latin1
vim /etc/hostname
myhostname
vim /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.1.1 <my hostname.localdomain <my hostname>
systemctl enable dhcpcd
systemctl enable iwd
sudo echo "options iwlwifi 11n_disable=8" | sudo tee /etc/modprobe.d/iwlwifi11n.conf
passwd# It is important the the last config step reports that a linux image is found
pacman -S grub os-prober
grub-install /dev/<main device without number>
grub-mkconfig -o /boot/grub/grub.cfg
# It is important the the last config step reports that a linux image is found
pacman -S grub os-prober efibootmgr
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB
mkdir /mnt/windows
mount /dev/<windows boot mgr partition> /mnt/windows/
#Add GRUB_DISABLE_OS_PROBER=false to /etc/default/grub
grub-mkconfig -o /boot/grub/grub.cfg
exit
reboot
iwctl
station <device> connect <ssid name>
useradd -m <name>
passwd <name>
export EDITOR=vimvisudo command<user> ALL=(ALL) ALLpacman -S vivaldi git htop openssh libreoffice-still keepassxc vscode screenfetch gimp gnome-calculator texlive texlive-langeuropean
AllowUsers to /etc/ssh/sshd_config to enable user loginvim /etc/ssh/sshd_config
# Add AllowUsers <username>
systemctl enable sshd
pacman -Sy pipewire pipewire-pulse alsa-utils pavucontrol spotify-launcher
Add set bell-style none to /etc/inputrc
pacman -S solaar
Download udev permissions from git repo:
solaar git repo and copy to /etc/udev/rules.d/ to enable access to devices without being root (I wonder if this is completely safe)
sudo cp ~/Downloads/42-logitech-unify-permissions.rules /etc/udev/rules.d/
Then reboot computer to make udev rules take effect.
Then it is possible to issue solaar command.
Update Oct, 2025: Need to add MODE=”666” to the bottom of the rules file to enable config access to devices.
My Lemokey mouse G2 worked out of the box on linux, but the web configuration tool launcher.lemokey.com was not able to access the mouse.
To enable user access to the device I copied the above 42-logitech-unify-permissions.rules files and made a new file 99-lemokey.rules that enabled access.
To find the device idVendor and idProduct id’s the command lsusb can be used:
Bus 001 Device 007: ID 362d:d028 Ultra-Link 8K
The first hex number is idVendor and second id idProduct. This is the wireless connection. If the mouse was connected with cable a second row would show up with another idProduct for usb. It seems this is idProduct is not necessary in the configuration file.
NOTE: Remember to unplug the cable if connecting wireless or else the web config tool will not find the correct idProduct and complain that firmware needs to be upgraded.
NOTE2: It might be necessary to connect it with cable first after the rules are applied.
Reboot when config is copied to /etc/udev/rules.d/.
Update Oct, 2025: Need to add MODE=”666” to the bottom of the rules file to enable config access to devices.
There are several versions. This is an appimage version that bundles everything in one image and uses fuse2 to run. I am co maintainer on this one.
git clone https://aur.archlinux.org/kuro-appimage.git
cd kuro-appimage
makepkg -si
There are several versions of teams in the AUR. I have used this one which seems to work ok: https://aur.archlinux.org/packages/teams-for-linux-bin
I also added a line in the hyprland config to start teams minimized when starting hyprland. exec-once = /opt/teams-for-linux/teams-for-linux %U --minimized
Installation:
git clone https://aur.archlinux.org/teams-for-linux-bin.git
cd teams-for-linux-bin
makepkg -si
Using simple nmap commands show that only the ssh daemon port is open, but is not accepting root logins. So it should be fairly safe.
I also tried the vulscan script from arch repo with nmap, but that seemed to have a bug.
Thinking about it is probably smart to
# Scan max range of ports
nmap <ip> -p 1-65535
# Detect version of ssh protocol
nmap -sV <ip>
# Prope the ssh port for max information
sudo nmap -p 22 -sU -A <ip>