Skip to content

Instantly share code, notes, and snippets.

@kmikko
Last active July 31, 2022 20:44
Show Gist options
  • Save kmikko/5cac9cd65da218a435eb1f943cdbddbe to your computer and use it in GitHub Desktop.
Save kmikko/5cac9cd65da218a435eb1f943cdbddbe to your computer and use it in GitHub Desktop.

Post-installation

Set keyboard layout

sudo localectl set-keymap fi

Connect to Wi-Fi

sudo wifi-menu

Enable multilib repository

Edit /etc/pacman.conf Uncomment following lines

[multilib]
Include = /etc/pacman.d/mirrorlist

Update package list

sudo pacman -Sy

Install GNOME and GDM

sudo pacman -S gnome gnome-extra gdm
sudo systemctl enable gdm
reboot

Install Gnome Network Manager

Reconnect to Wi-Fi if necessary using sudo wifi-menu

sudo pacman -S wireless_tools networkmanager network-manager-applet

Start network manager

sudo systemctl start NetworkManager.service

Enable on boot

sudo systemctl enable NetworkManager.service
reboot

Install yaourt

Edit /etc/pacman.conf Add following lines

[archlinuxfr]
SigLevel = Never
Server = http://repo.archlinux.fr/$arch

Refresh package list

sudo pacman -Sy

Install yaourt

sudo pacman -S yaourt

Bluetooth

sudo pacman -S bluez bluez-utils

Load the generic bluetooth driver

sudo modprobe btusb

Start and enable bluetooth service

sudo systemctl start bluetooth.service
sudo systemctl enable bluetooth.service

Install pulseaudio-bluetooth to enable A2DP profile (bluetooth audio)

sudo pacman -S pulseaudio-bluetooth

Restart pulseaudio (without sudo)

pulseaudio -k
pulseaudio --start

Prevent Pulseaudio clients from automatically starting a server if one is not running by adding the following lines to /var/lib/gdm/.config/pulse/client.conf

autospawn = no
daemon-binary = /bin/true

Prevent systemd from starting Pulseaudio anyway with socket activation

sudo -ugdm mkdir -p /var/lib/gdm/.config/systemd/user
sudo -ugdm ln -s /dev/null /var/lib/gdm/.config/systemd/user/pulseaudio.socket
reboot

Fish shell

sudo pacman -S fish

Verify installation chsh -l

/bin/sh
/bin/bash
/usr/bin/fish

Set as default shell, log out and back in

chsh -s /usr/bin/fish

Install fisherman, a plugin manager

curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs git.io/fisher

Install bass, bash script wrapper for fish

fisher edc/bass

Install nvm wrapper (also supports yarn)

fisher nvm

tmux

sudo pacman -S tmux

Install tpm (tmux plugin manager)

git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

Edit ~/.tmux.conf

# List of plugins
set -g @plugin 'tmux-plugins/tpm'

# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'

On terminal execute

tmux
tmux source ~/.tmux.conf
prefix (CTRL+b) + I (SHIFT+i)

Go

sudo pacman -S go go-tools
mkdir -p ~/go/{bin,src}

Add following to fish config ~/.config/fish/config.fish

set -gx PATH $PATH /usr/lib/go/bin $HOME/go/bin
set -x GOPATH $HOME/go

Git

sudo pacman -S git
git config --global user.name "YOUR NAME"
git config --global user.email "YOUR EMAIL"

Generate a new SSH key

ssh-keygen -t rsa -b 4096 -C "<email>"

Copy key to GitHub/Gitlab/etc using xclip

xclip -sel clip < ~/.ssh/id_rsa.pub

Docker & Docker Compose

Install

sudo pacman -S docker

Start and enable service

sudo systemctl start docker.service
sudo systemctl enable docker.service

Add user to docker group

gpasswd -a <username> docker
relog

Verify

docker info

Install docker-compose

sudo pacman -S docker-compose

NVM

yaourt nvm

For fish support create a file ~/.config/fish/functions/nvm.fish with following content

function nvm
  bass source /usr/share/nvm/init-nvm.sh --no-use ';' nvm $argv
end

Example: Install Node v4.2.2 and latest npm

nvm install 4.2.2
nvm use 4.2.2
cd ~/.nvm/versions/node/v4.2.2/lib
npm install npm

RVM

curl -L get.rvm.io > rvm-install
cmod a+x rvm.install
bass ./rvm-install

Visual Studio Code

yaourt visual-studio-code

Thunderbird Enigmail & GPG

gpg --recv-keys --keyserver sks-keyservers.net 0xDB1187B9DD5F693B
sudo pacman -S thunderbird
yaourt thunderbird-enigmail

Nautilus extension for PGP encryption and signing

sudo pacman -S seahorse-nautilus

Terraform

yaourt terraform

git-crypt

yaourt git-crypt

Spotify

yaourt spotify

To disable track notifications edit file ~/.config/spotify/Users/<SPOTIFY_USER_NAME>-user/prefs

ui.track_notifications_enabled=false

Format USB drives in FAT32 or NTFS

sudo pacman -S dosfstools ntfsprogs

Virtualbox

Install virtualbox and choose virtualbox-host-modules-arch for linux kernel

sudo pacman -S virtualbox

Load kernel modules (will be loaded automatically on boot)

sudo modprobe vboxdrv vboxnetadp vboxnetflt vboxpci

Add user to vboxusers group to access host USB devices in guest

sudo gpasswd -a <user> vboxusers

Install net-tools to allow "Host-only" or "bridge networking"

sudo pacman -S net-tools

Install guest additions disc

sudo pacman -S virtualbox-guest-iso

Install Oracle extension pack

yaourt virtualbox-ext-oracle

Fix crackling sound on Windows 10 virtual machine

Open settings for the virtual machine Audio -> Host Audio Driver: ALSA Audio Driver & Audio Controller: ICH AC97

Boot virtual machine and disable driver signature enforcement. To do this enable Test Mode by executing following command:

bcdedit /set testsigning on

Reboot

Download and install AC'97 Audio Codecs for Vista/Win7 http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PNid=23&PFid=23&Level=4&Conn=3&DownTypeID=3&GetDown=false

Disable test mode and reboot

bcdedit /set testsigning off

Other useful software

sudo pacman -S htop lm_sensors git xclip wget file-roller openssh
yaourt google-chrome
yaourt the_silver_searcher
yaourt gnome-system-tools

Misc

Set Gnome Weather temperature unit to celsius

gsettings set org.gnome.GWeather temperature-unit "'centigrade'"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment