Skip to content
INeido edited this page Jul 1, 2023 · 15 revisions

Prerequisites

I would advise running the script on a freshly installed arch system. Previous settings or software could conflict with this rice.

If you are totally new to linux and arch, here is a very quick rundown:

  • Download Arch.
  • Create an installation medium using Balena or Rufus and boot to it.
  • Start Archinstall and watch out for these settings:
    • For Audio select pulseaudio.
    • For Profile select desktop and then xorg as well as your graphics drivers.
  • Everything else can be set to your liking. Run the installer and once done you can reboot and proceed with ricing.

Automatic

Choose one of the below options and run it in your terminal to start the installscript and follow the instructions.

Method Command
curl (shortened) sh -c "$(curl -fsSL https://neido.de/dots.sh)"
curl sh -c "$(curl -fsSL https://raw.githubusercontent.com/INeido/dots/master/install.sh)"
wget sh -c "$(wget -O- https://raw.githubusercontent.com/INeido/dots/master/install.sh)"
fetch sh -c "$(fetch -o - https://raw.githubusercontent.com/INeido/dots/master/install.sh)"

When done, scroll down to the Finishing Touches.

Possible Errors

:: awesome-git and awesome are in conflict

If you have awesome already installed, deinstall it using sudo pacman -R awesome. These configs require awesome-git.


Manual

This guide will help you to manually install the dependencies, packages, and settings needed for this project.

Prerequisites

Make sure you have git and base-devel installed. You can install them by running:

sudo pacman -S --needed git base-devel

Install yay

yay is needed for installing AUR packages in Arch Linux. If you don't have it installed, you can install it by running:

git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si

Install Required Packages

The following packages are required for this project and can be installed like so:

yay -S --noconfirm --needed awesome-git zsh awesome-git rofi lolcat neofetch playerctl brightnessctl upower acpi ttf-font-awesome ttf-fira-code imagemagick networkmanager maim xclip papirus-icon-theme pacman-contrib picom lxsession code htop nemo qutebrowser alacritty spotify-launcher thefuck

Install Dotfiles

To install the actual dotfiles you first have to copy the repository and then copy the dots into your ~/.config folder. Make sure to backup existing configs if there are any.

git clone --depth=1 https://github.com/INeido/dots
cp ./dots/dotfiles/ ~

Adjust xinitrc File

The ~/.xinitrc file needs to be adjusted to start AwesomeWM. If the file already exists, check if AwesomeWM is already set as the window manager. If not, backup the existing file and add this line at the very end to start AwesomeWM:

exec awesome

Enable Autologin

To enable autologin for the current user you have to create a systemd service.

sudo nano /etc/systemd/system/[email protected]/autologin.conf

Paste this text, with your Username, into the file

[Service]
ExecStart=
ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --autologin <Username> %I $TERM

Retart the daemon

sudo systemctl daemon-reload

Finishing Touches

Set DPI

First, go to dpi.lv and figure out your DPI. You can then enter this DPI in the following file to set it system-wide:

nano .Xresources

Enter Xft.dpi: <your DPI> and save.

Of course, you can also just set a custom DPI if you prefer your GUI a little bit zoomed.

Adjust audio

To adjust your audio settings you can use a handy little package called pulsemixer. Install it using:

yay -S pulsemixer

Edit the settings

This rice comes with an extensive settings file to configure it to your needs. There are a few places where adjustments are necessary.

Open ~/.config/awesome/config/settings.lua in your preferred editor.

  1. settings.display holds the xrandr command that sets your display settings. Here you have to enter your screen(s). Using xrandr -q you can see the possible arguments. Here are my for example:

    DP-0 connected primary 2560x1440+0+0 (normal left inverted right x axis y axis) 600mm x 350mm
    2560x1440     59.98 + 239.97*  199.99   144.00   120.00    99.95
    1024x768      60.00
    800x600       60.32
    640x480       59.94
    DP-1 disconnected (normal left inverted right x axis y axis)
    HDMI-0 disconnected (normal left inverted right x axis y axis)
    

    In this example, I have a monitor connected to DP-0 and nothing else on the rest. To set a monitor on DP-0 to 1400p 240hz you can use the following setting:

    settings.display = "xrandr --output DP-0 --primary --mode 2560x1440 --pos 0x0 --rotate normal --rate 239.97"

    To have a second monitor to the right of the primary one, you can use:

    settings.display = "xrandr --output DP-0 --primary --mode 2560x1440 --pos 0x0 --rotate normal --rate 239.97 \
    --output DP-1 --mode 1920x1080 --pos 2560x0 --rotate normal --rate 60"

    The --pos 2560x0 tells the second monitor to be 2560 pixels on the x axis. A positive number is to the right and a negative to the left.

  2. settings.password is the fallback password for the Lockscreen, if you don't have the PAM module installed or it fails to load.

  3. settings.network_interface name of the network interface to show data for in the widget. You can find the name of your interface using ip link show