├── Graphics ├── AMD.md ├── Nvidia.md ├── hybrid-graphics.md └── intel.md ├── README.md ├── Softwares ├── AUR-helper.md ├── Audio.md ├── basic-packages.md └── qemu.md └── desktop ├── KDE-Plasma.md ├── awesome-wm.md ├── dwm.md ├── gnome.md ├── i3-wm.md └── xmonad.md /Graphics/AMD.md: -------------------------------------------------------------------------------- 1 | # I cant really say how to install drivers for amd gpu because i have no experience with it yet and i dont wanna just type some commands to install packages i dont know and what to do with kernel parameters 2 | I'll really recommend you go see the wiki pages on how to install amd gpu. 3 | 4 | * [ATI](https://wiki.archlinux.org/title/ATI) - This article covers the radeon open source driver which supports older AMD (previously ATI) GPUs. 5 | * [AMDGPU](https://wiki.archlinux.org/title/AMDGPU) - AMDGPU is the open source graphics driver for AMD Radeon graphics cards from the Graphics Core Next family. 6 | * [AMDGPU PRO](https://wiki.archlinux.org/title/AMDGPU_PRO) - This page describes close source drivers for AMD GPUs. 7 | -------------------------------------------------------------------------------- /Graphics/Nvidia.md: -------------------------------------------------------------------------------- 1 | # How to install NVIDIA-DKMS (Proprietary drivers) in Arch Linux. 2 | This file basically shows how to install [NVIDIA](https://wiki.archlinux.org/title/NVIDIA) drivers and use it. If you have hybrid Intel/NVIDIA graphics see [NVIDIA OPTIMUS](https://wiki.archlinux.org/title/NVIDIA_Optimus). 3 | 4 | ## Step 1 - Getting things ready 5 | 1. Firstly update your system 6 | ~~~ 7 | $ sudo pacman -Syu 8 | ~~~ 9 | 2. Edit your pacman.conf 10 | ~~~ 11 | $ vim /etc/pacman.conf/ 12 | ~~~ 13 | 3. Uncomment VerbosePkgLists and ParallelDownloads = 3 14 | 4. You can also add ILoveCandy under the ParallelDownloads for a surprise. You can remove it if you dislike it. 15 | ~~~ 16 | VerbosePkgLists 17 | ParallelDownloads = 3 18 | ILoveCandy 19 | ~~~ 20 | 6. ALso Uncomment 21 | ~~~ 22 | [multilib] 23 | Include = /etc/pacman.d/mirrorlist 24 | ~~~ 25 | 7. Update your system again. 26 | ~~~ 27 | $ sudo pacman -Syu 28 | ~~~ 29 | 30 | ## Step 2 - Installing the drivers 31 | 1. This step might be a bit confusing. First find your [nvidia card from this list here](https://nouveau.freedesktop.org/CodeNames.html) 32 | 2. You can Check what graphic hardware you have by running 33 | ~~~ 34 | $ lspci -k | grep -A 2 -E "(VGA|3D)" 35 | ~~~ 36 | 4. Check what driver packages you need to install from the list below 37 | 38 | | Driver name | Base driver | OpenGL | OpenGL (multilib) | 39 | | ------------- | ------------- | ------------- | ------------ | 40 | | Maxwell (NV110) series and newer | nvidia | nvidia-utils | lib32-nvidia-utils | 41 | | Kepler (NVE0) series | nvidia-470xx-dkms | nvidia-470xx-utils | lib32-nvidia-470xx-utils | 42 | | GeForce 400/500/600 series cards [NVCx and NVDx] | nvidia-390xx | nvidia-390xx-utils | lib32-nvidia-390xx-utils | 43 | 5. For more info it'll be better to go see the [wiki](https://wiki.archlinux.org/title/NVIDIA) 44 | 6. I have a 30-series card that is newer than the Maxwell Series so i'm gonna install the nvidia driver. 45 | 7. In Linux we have 5 [kernels](https://wiki.archlinux.org/title/kernel) - Mainline(Linux),linus-lts, linux-hardened, Realtime(linux-rt, linux-rt-lts), linux-zen. 46 | 8. I'll choose the mainline linux kernel for now. i will explain how to install other linux kernel on some other day. 47 | 9. Nvidia drivers you are gonna install basically depends on which kernel you are using. For example Nvidia for Linux, Nvidia-lts for linus-lts, nvidia-dkms for all other kernels. 48 | 10. So now on the main part of installing the drivers. **Have the linux-headers installed as its needed by these packages. linux-headers-lts forlinux-lts** 49 | ~~~ 50 | $ sudo pacman -S nvidia libglvnd nvidia-utils opencl-nvidia lib32-libglvnd lib32-nvidia-utils lib32-opencl-nvidia nvidia-settings 51 | ~~~ 52 | 11. Now configuring to make the drivers work and updating them automatically 53 | ## Step 3 - DRM kernel mode setting 54 | 1. Edit mkinitcpio.conf 55 | ~~~ 56 | $ vim /etc/mkinitcpio.conf 57 | ~~~ 58 | 2. Add 59 | > MODULES=(i915 nvidia nvidia_modeset nvidia_uvm nvidia_drm) 60 | 61 | 3.Replace i915(intel integrated graphics) with amdgpu if you have amd integrated graphics. If you have no integrated graphics just write the nvidia thingies 62 | 4. Run the command and see if there are any warnings stating nvidia. There are other warning too. you just have to know which to ignore and which to not. 63 | ~~~ 64 | $ mkinitcpio -P 65 | ~~~ 66 | 5. Edit the grub file 67 | ~~~ 68 | $ vim /etc/default/grub 69 | ~~~ 70 | 6. Edit the following line 71 | ~~~ 72 | GRUB_CMDLINE_LINUX="nvidia_drm.modeset=1 rd.driver.blacklist=nouveau modprobe.blacklist=nouveau" 73 | ~~~ 74 | 7. Run the following command 75 | ~~~ 76 | $ sudo grub-mkconfig -o /boot/grub/grub.cfg 77 | ~~~ 78 | 8. Adding a pacman hooks 79 | ~~~ 80 | $ /etc/pacman.d/hooks/nvidia.hook 81 | --------------------------------------------------------- 82 | # Add it to to the file 83 | [Trigger] 84 | Operation=Install 85 | Operation=Upgrade 86 | Operation=Remove 87 | Type=Package 88 | Target=nvidia 89 | Target=linux 90 | # Change the linux part above and in the Exec line if a different kernel is used 91 | 92 | [Action] 93 | Description=Update Nvidia module in initcpio 94 | Depends=mkinitcpio 95 | When=PostTransaction 96 | NeedsTargets 97 | Exec=/bin/sh -c 'while read -r trg; do case $trg in linux) exit 0; esac; done; /usr/bin/mkinitcpio -P' 98 | ~~~ 99 | 9. Make sure the Target package set in this hook is the one you have installed in steps above (e.g. nvidia, nvidia-dkms, nvidia-lts or nvidia-ck-something). 100 | 10. **Note :** The complication in the Exec line above is in order to avoid running mkinitcpio multiple times if both nvidia and linux get updated. In case this does not bother you, the Target=linux and NeedsTargets lines may be dropped, and the Exec line may be reduced to simply Exec=/usr/bin/mkinitcpio -P. 101 | 102 | ## Step 4 Now reboot 103 | ~~~ 104 | $ systemctl enable NetworkManager.service 105 | $ exit 106 | $ umount -lR /mnt //unmount all the partition 107 | $ reboot 108 | ~~~ 109 | 110 | ### Enjoy. 111 | Credits - 112 | 1. [Install Hyprland Arch Linux on Laptop with Nvidia RTX GPU](https://www.youtube.com/watch?v=_deaeSU1WK8&ab_channel=Ja.KooLit) 113 | 2. [Muta's Arch Linux Build](https://www.youtube.com/watch?v=M_f8pnXIrF8&ab_channel=%E5%AD%A3%E6%9F%93) - [SomeOrdinaryGamers](https://www.youtube.com/@SomeOrdinaryGamers) 114 | 3. [The Holy Arch Bible](https://wiki.archlinux.org/title/NVIDIA) 115 | -------------------------------------------------------------------------------- /Graphics/hybrid-graphics.md: -------------------------------------------------------------------------------- 1 | # How to configure and use both integrated and dedicated gpu's. 2 | 3 | **Note:** I can only say about nvidia DGPU and intel IGPU as thats the only thing i have experience about. I'll link some website which explain that at the end. 4 | 5 | ## Step 1 - Configure both GPU's by following the steps mentioned in Nvidia.md and intel.md 6 | 1. if you want to manage the two GPU's manually i'll recommend [Denshi Wiki](https://wiki.denshi.org/hypha/client/nvidia). itll do a better way to explain things than me. 7 | 2. If you want a video tutorial - [NVIDIA Optimus: A ℂ𝕠𝕞𝕗𝕪 Guide](https://www.youtube.com/watch?v=Pn2iUgW3l6w&ab_channel=DenshiVideo) 8 | 3. Here im gonna talk about the easy setup that i use. [ENVY CONTROL](https://github.com/bayasdev/envycontrol) 9 | 10 | ## Step 2 - Install and use envycontrol 11 | ~~~ 12 | $ git clone https://github.com/geminis3/envycontrol.git 13 | $ cd envycontrol 14 | $ sudo pip install . 15 | ~~~ 16 | It's also available in the AUR 17 | ~~~ 18 | $ yay -S envycontrol 19 | ~~~ 20 | ### Some examples 21 | 22 | Set graphics mode to integrated: 23 | ~~~ 24 | sudo envycontrol -s integrated 25 | ~~~ 26 | Set graphics mode to hybrid and enable fine-grained power control: 27 | ~~~ 28 | sudo envycontrol -s hybrid --rtd3 29 | ~~~ 30 | Set current graphics mode to nvidia and specify to setup LightDM display manager 31 | ~~~ 32 | $ sudo envycontrol -s nvidia --dm lightdm 33 | ~~~ 34 | Revert all changes made by EnvyControl: 35 | ~~~ 36 | $ sudo envycontrol --reset 37 | ~~~ 38 | **Note:** If you are using dedicated gpu you'll have to go to hybrid first then to integrated. 39 | ## Go to bayasdev's [repo](https://github.com/bayasdev/envycontrol) to know the full information. You can also integrate the envycontrol as a GUI int gnome and KDE 40 | 41 | ## Wiki Articles 42 | * [Hybrid graphics](https://wiki.archlinux.org/title/hybrid_graphics) 43 | * [NVIDIA Optimus](https://wiki.archlinux.org/title/NVIDIA_Optimus) 44 | -------------------------------------------------------------------------------- /Graphics/intel.md: -------------------------------------------------------------------------------- 1 | # How to install intel graphics drivers for the IGPU 2 | 3 | This file basically shows how to install [INTEL](https://wiki.archlinux.org/title/intel_graphics) drivers and use it. 4 | 5 | ## Step 1 - Getting things ready 6 | 1. Firstly update your system 7 | ~~~ 8 | $ sudo pacman -Syu 9 | ~~~ 10 | 2. Edit your pacman.conf 11 | ~~~ 12 | $ vim /etc/pacman.conf/ 13 | ~~~ 14 | 3. Uncomment VerbosePkgLists and ParallelDownloads = 3 15 | 4. You can also add ILoveCandy under the ParallelDownloads for a surprise. You can remove it if you dislike it. 16 | ~~~ 17 | VerbosePkgLists 18 | ParallelDownloads = 3 19 | ILoveCandy 20 | ~~~ 21 | 6. ALso Uncomment 22 | ~~~ 23 | [multilib] 24 | Include = /etc/pacman.d/mirrorlist 25 | ~~~ 26 | 7. Update your system again. 27 | ~~~ 28 | $ sudo pacman -Syu 29 | ~~~ 30 | 31 | ## Step 2 - Installing the drivers 32 | 1. You can Check what graphic hardware you have by running 33 | ~~~ 34 | $ lspci -k | grep -A 2 -E "(VGA|3D)" 35 | ~~~ 36 | 2. If you have a really old intel processor be sure to see the [wiki](https://wiki.archlinux.org/title/intel_graphics) 37 | 3. I have a 11th gen processor so im install drivers for it. 38 | ~~~ 39 | $ sudo pacman -S mesa lib32-mesa vulkan-intel lib32-vulkan-intel 40 | ~~~ 41 | ## Step 3 - DRM kernel mode setting 42 | 1. Edit mkinitcpio.conf 43 | ~~~ 44 | $ vim /etc/mkinitcpio.conf 45 | ~~~ 46 | 2. Add 47 | > MODULES=(i915) 48 | 49 | 3.Replace i915(intel integrated graphics) with amdgpu if you have amd integrated graphics. If you have no integrated graphics just write the nvidia thingies 50 | 4. Run the command and see if there are any warnings stating nvidia. There are other warning too. you just have to know which to ignore and which to not. 51 | ~~~ 52 | $ mkinitcpio -P 53 | ~~~ 54 | 55 | ## Done now go back to the main file and follow the steps after installing the drivers like enabling, unmounting and rebooting 56 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Guide-to-install-Arch-Linux-2023 2 | This is a guide to install as well as dual boot Arch Linux with Windows. It can also work to install only Arch. You'll just have to skip some parts that i'll mention. For more updated and informated go to [Arch Linux Wiki](https://wiki.archlinux.org/title/Installation_guide) 3 | 4 | ## Some prerequisites 5 | 1. Disable Secure Boot. It can be enabled after installation. 6 | 2. Disable Fast Boot 7 | 3. Disable Hibernation. 8 | 4. If You are dual booting. Check if the EFI or the boot partition of windows is more than 100MB as it may cause problems. Refer to [Wiki](https://wiki.archlinux.org/title/Dual_boot_with_Windows) to increase partition size or see a video on youtube. 9 | 10 | **DON'T TYPE THE DOLLAR SIGNS IT IS JUST FOR SHOWCASING THAT IT IS A COMMAND.** 11 | 12 | ## Step 1 - Pre-installation 13 | ### 1.1 Prepare an installation medium 14 | 1. Install the Latest Arch-Linux ISO file from [Arch ISO](https://archlinux.org/download/) 15 | 2. Now we'll use and Etcher tool to burn the iso file into a usb. 16 | 3. You can use [Balena Etcher](https://etcher.balena.io/), [Rufus](https://rufus.ie/en/) if you are on windows. If you are on Arch read the arch wiki to create an Arch USB [USB flash installation medium](https://wiki.archlinux.org/title/USB_flash_installation_medium) 17 | 18 | ### 1.2 - Boot the live environment 19 | 1. Plug the USB into a USB port and go into the BIOS by smashing that F2 or F12 or Del button and change the boot priority so that the Arch USB is on number 1. Save and Exit 20 | 2. You'll see a grub menu with multiple things. Click Enter on the Arch linux installation medium (most probably the top one) 21 | 3. You'll see many thing just going saying ok. See if anything failed. After Some time you'll boot into the live environment. 22 | 4. You will be logged in on the first virtual console as the root user, 23 | 24 | ### 1.3 Set the console keyboard layout, font and basic stuff 25 | 1. The default Keymap is US. Available layouts can be listed with: 26 | ~~~ 27 | $ ls /usr/share/kbd/keymaps/**/*.map.gz 28 | ~~~ 29 | 2. Set your Keyboard Layout. For example to set the German Layout. For more info [loadkeys](https://man.archlinux.org/man/loadkeys.1) 30 | ~~~ 31 | $ loadkeys de-latin1 32 | ~~~ 33 | 3 . The Default font size is kinda small. So you might want to increase the size by 34 | ~~~ 35 | $ setfont ter-132b 36 | ~~~ 37 | 4. Connect to the internet, 38 | 39 | * Ensure your network interface is listed and enabled 40 | ~~~ 41 | $ ip link 42 | ~~~ 43 | * For wireless and WWAN, make sure the card is not blocked with [rfkill](https://wiki.archlinux.org/title/Network_configuration/Wireless#Rfkill_caveat). 44 | * Ethernet—plug in the cable. 45 | * Wi-Fi—authenticate to the wireless network using [iwctl](https://wiki.archlinux.org/title/Iwd#iwctl). 46 | ~~~ 47 | $ iwctl 48 | [iwd]# device list 49 | [iwd]# station device scan 50 | [iwd]# station device get-networks 51 | [iwd]# station device connect SSID 52 | [iwd]# exit 53 | ~~~ 54 | Replace device with the interface you wanna connect (For me it was wlan0) and SSID with the name of you network. after connecting it'll ask you the passphrase. It is the password of your WIFI. 55 | * Check if it is connected by pinging a website 56 | ~~~ 57 | $ ping archlinux.org 58 | ~~~ 59 | 5. Update the system clock. Use timedatectl(1) to ensure the system clock is accurate: 60 | ~~~ 61 | $ timedatectl 62 | ~~~ 63 | 64 | ### 1.4 Verify the boot mode 65 | 1. Type the following command to see is you are booted in UEFI mode. 66 | ~~~ 67 | $ cat /sys/firmware/efi/fw_platform_size 68 | ~~~ 69 | If the command returns 64, then system is booted in UEFI mode and has a 64-bit x64 UEFI. If the command returns 32, then system is booted in UEFI mode and has a 32-bit IA32 UEFI; while this is supported, it will limit the boot loader choice to GRUB. If the file does not exist, the system may be booted in BIOS (or CSM) mode. Most probably for a normal user you'll want a 64-bit system so refer to the motherboard manual for this. If the file doesn't exist see if your computer supports UEFI mode by going into the BIOS. If it is enabled and it's still not showing recreate the USB by choosing a GPT partition type and UEFI enabled. 70 | 71 | ### 1.5 Partitioning the disks 72 | 1. Use lsblk to see your drives.It can be named sda,sdb,nvem0n1,nvme1n1. You gotta know which drive you wanna install arch on as we are gonna wipe the drive afterwords so if you by mistake choose some other drive with important data on it, you are gonna regret it. Just a WARNING. 73 | ~~~ 74 | $ lsblk 75 | ~~~ 76 | 2.You can use fdisk command to get information about your drive partitions. its helpful as one time while dual booting i had a 675MB EFI partition and 674MB windows recovery partition. you can see the partition info with it inorder to differ EFI Partition that is FAT32 from recovery partition. 77 | ~~~ 78 | $ fdisk -l 79 | ~~~ 80 | 3. Here i'm gonna make partition for boot (for the bootloader and not needed if dualbooting ), swap (its a partition that will work as ram if we overload our ram or if you wanna use hibernation you'll need it), root (it contains our system packages) and home (it will contain all the stuff like docs, downloads, pictures, etc in it). Some people dont like to make swap as most of the time its useless if you dont wanna hibernate as well as not making the home and using the root partition as home only. You can choose whatever you want but im gonna make all four partitions. 81 | 4. For my purpose im gonna choose sda as my drive to install which is 1TB. Your drive may be different so choose carefully. 82 | ~~~ 83 | $ cfdisk /dev/sda 84 | ~~~ 85 | 5. It'll open a menu thatll show your partition. To move we'll use the arrow keys. Now press ENTER on the unallocated space. 86 | * We are gonna make the first partition 512MiB. You dont need to make it if you are dual booting. Press ENTER. Now with down arrow key move to next unallocated space. 87 | * We'll make the swap around 16GiB. For normal use i think 16GiB is enough even though you have more than 64 GIB of ram. For a proper swap size guide - [How Much Swap] (https://itsfoss.com/swap-size/) 88 | * Now go to type with arrow keys and select the linux swap. 89 | * We'll make the root partition 50GiB. Some people prefer 30GiB but for me it always seem less. You can choose whatever size you want just dont go under 30GiB. 90 | * We'll make the home partition and just press Enter without changing any values. After this i think i should have around 860GiB of home. 91 | * **IMPORTANT** - Only the swap file should have linux swap written beside it. Other three should have linux filesystem. 92 | * Now click on write to write the partition table and then quit. 93 | * We have Partitioned the drive. 94 | * Type lsblk again to see the partitioned drive. 95 | 96 | ### 1.6 Format the partitions 97 | 1. For this use case im gonna make the drives with [ext4](https://docs.kernel.org/admin-guide/ext4.html) filesystem. I'll also tell how to make BTRFS filesystem in other file but for now ext4. just understand btrfs give ability to take a snapshot so if we break our system we can roll back.easily and i like btrfs. 98 | 2. Lets start formatting 99 | ~~~ 100 | $ lsblk 101 | $ mkfs.fat -F32 /dev/sda1 // our boot partition. Dont need it if dual boot 102 | $ mkswap /dev/sda2 103 | $ swapon /dev/sda2 104 | $ mkfs.ext4 /dev/sda3 105 | $ mkfs.ext4 /dev/sda4 106 | ~~~ 107 | 3. Done with formatting the drive. type lsblk you'll see [SWAP] written beside the swap partition. 108 | 109 | ### 1,7 Mount the drive 110 | ~~~ 111 | $ mount /dev/sda3 /mnt // sda3 is the root partition 112 | $ mkdir /mnt/boot // for linux only install. Dont mount the Windows EFI partition now. 113 | $ mkdir /mnt/home 114 | $ mount /dev/sda4 /mnt/home //sda4 is the home partition 115 | $ mount /dev/sda1 /mnt/boot/ //sda1 is the boot partition 116 | ~~~ 117 | Cool. Done with mounting the drives except the Windows EFI partition. 118 | 119 | ## Step 2 Installation 120 | ### 2.1 Ranking the mirrors and installing base packages 121 | 1. Archlinux uses servers to get the packages we need to install. Having good mirrors means packages install faster as well may prevent packages from out of date due to server being out of sync. It is generally not needed because the Archiso runs reflector when you connect to internet so you have a good copy of mirrorlist but it is generally better to resync the mirrors if you haven't done it in long time to remove any out of sync mirrors. [source](https://wiki.archlinux.org/title/Installation_guide#Select_the_mirrors) 122 | 2. There are two tools that we can use to rank mirrors and add them to out mirrorlist file. Reflector and Rankmirrors. Use Any one of them acc to your use case. 123 | 3. Reflector - Retrieves the latest mirrorlist from the [MirrorStatus](https://archlinux.org/mirrors/status/) page, filters and sorts them by different parameters like speed, last sync, completion %, etc and overwrites /etc/pacman.d/mirrorlist. 124 | 4. Rankmirrors - It fetches the list of the mirrors and ranks them locally based on many parameters. Reflector is good unless you are using private servers. 125 | ~~~ 126 | $ cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup // Creates backup of mirrorlist if something goes wronge 127 | ~~~ 128 | 5. Using Rankmirrors - 129 | ~~~ 130 | $ pacman -Sy // Linking with the mirrors 131 | $ pacman -S pacman-contrib // installing rankmirrors tools for ranking mirrors 132 | $ rankmirrors -n 10 /etc/pacman.d/mirrorlist.backup > /etc/pacman.d/mirrorlist 133 | ~~~ 134 | 6. Using Reflector - use reflector --help to see more options. 135 | ~~~ 136 | $ pacman -Sy // linking with mirrors 137 | $ pacman -S reflector rsync curl 138 | $ sudo reflector --save /etc/pacman.d/mirrorlist --latest 10 --protocol https --sort rate 139 | ~~~ 140 | 141 | 7. Wait for some time. and we have ranked the mirrorlist. 142 | 8. If you got errors after updating the mirrorlist, you can revert back the changes with 143 | ~~~ 144 | $ cp /etc/pacman.d/mirrorlist.backup /etc/pacman/mirrorlist 145 | ~~~ 146 | 9. Now installing the base packages 147 | ~~~ 148 | $ pacstrap -K /mnt base linux linux-firmware linux-headers base-devel intel-ucode vim git networkmanager dhcpcd bluez bluez-utils wpa_supplicant network-manager-applet 149 | ~~~ 150 | 10. Go for a coffee break while it install if you have slow internet. Oh yeah btw replace "intel-ucode" with "amd-ucode" if you have an amd processor instead of intel. 151 | ## Step 3 Configuring the System 152 | ### 3.1 FSTAB 153 | 1. Now we generate and **fstab** file that contains our UUID(house address) of our drives. 154 | ~~~ 155 | $ genfstab -U /mnt >> /mnt/etc/fstab 156 | ~~~ 157 | ### 3.2 Chroot 158 | Change root into the new system: 159 | ~~~ 160 | $ arch-chroot /mnt 161 | ~~~ 162 | ### 3.3 Timezone 163 | ~~~ 164 | $ ls /usr/share/zoneinfo/ // To show all Regions 165 | $ ls /usr/share/zoneinfo/Canada/ // To show city in Canada 166 | $ ln -sf /usr/share/zoneinfo/Region/City /etc/localtime //Replace Region with Country and city with city 167 | $ hwclock --systohc 168 | ~~~ 169 | ### 3.4 Localization 170 | ~~~ 171 | $ vim /etc/locale.gen // Use nano is you want to. Uncomment or delete the # before you language. For me it'll be en_US.UTF-8 UTF-8 172 | $ locale-gen 173 | $ echo LANG=en_US.UTF-8 > /etc/locale.conf 174 | $ export LANG=en_US.UTF-8 175 | ~~~ 176 | ### 3.5 Users and passwords 177 | ~~~ 178 | $ passwd // type the password it'll not show dont fear 179 | $ useradd -m username // replace username with any name like fish 180 | $ usermod -aG wheel,storage,power username 181 | $ visudo // EDITOR=nano visudo if you wanna use nano. 182 | ~~~ 183 | 1. Uncomment %wheel ALL=(ALL:ALL) ALL 184 | 2. Also add 185 | ~~~ 186 | Defaults timestamp_timout=0 // just prompts user to type password again after a long time 187 | ~~~ 188 | 3. add users 189 | ~~~ 190 | $ echo Archfish > /etc/hostname // replace archfish with your username 191 | $ cat /etc/hostname 192 | $ vim /etc/hosts 193 | ~~~ 194 | 4. Add this in hosts file 195 | ~~~ 196 | 127.0.0.1 localhost 197 | ::1 localhost 198 | 127.0.1.1 Archfish.localdomain localhost 199 | ~~~ 200 | ### 3.6 Mounting the boot directry and installing bootloader 201 | ~~~ 202 | $ mkdir /boot/efi 203 | $ mount /dev/sdb1 /boot/efi // imagine if sdb1 is the windows boot partition. its is not same as yours 204 | ~~~ 205 | 1. Im gonna use grub bootloader as systemd seems like a hassle. rEFInd seems cool to look but i wanna install with grub. Maybe i'll add how to install other bootloaders but right mow i choose grub so we going with grub. 206 | ~~~ 207 | pacman -S grub efibootmgr dosfstools mtools os-prober //ose-prober only if you are dual booting 208 | vim /etc/default/grub 209 | ~~~ 210 | 2. Uncomment > GRUB_DISABLE_OS_PROBER=false 211 | ~~~ 212 | $ grub-install --target=x86_64-efi --bootloader-id=grub_uefi --recheck 213 | $ grub-mkconfig -o /boot/grub/grub.cfg 214 | ~~~ 215 | 216 | **Note** - If os-prober doesn't detect the windows partition. you may try to install fuse3. 217 | ``` 218 | $ pacman -S fuse3 219 | $ grub-mkconfig -o /boot/grub/grub.cfg 220 | ``` 221 | 222 | ### 3.7 Installing The graphics drivers. Refer to Graphics Directory for installing drivers. 223 | 224 | ## Step 4 - Finiishing up with live environment 225 | ### 4.1 Enabling things and unmounting 226 | ~~~ 227 | $ systemctl enable NetworkManager.service 228 | $ exit 229 | $ umount -lR /mnt //unmount all the partition 230 | ~~~ 231 | 232 | ### 4.2 reboot 233 | ~~~ 234 | reboot 235 | ~~~ 236 | Eject the USB drive and wait for grub bootloader to come. You'll see an Arch Linux entry. Press ENTER to enter Arch. Use your username as your login and the password you set. If you are using wireless connection you'll have to use " $ nmtui " to activate internet as iwctl is not present 237 | # Done with the base installation. Refer to desktop directory to install DE/WM acc to your usage and installation of nvidia drivers would be in nvidia.md 238 | -------------------------------------------------------------------------------- /Softwares/AUR-helper.md: -------------------------------------------------------------------------------- 1 | # How to install yay or paru i.e. AUR helpers 2 | Pacman, the default package manager on Arch-based distros is powerful, but it lacks the functionality of downloading packages from the Arch User Repository [AUR](https://aur.archlinux.org/). The AUR is a community-maintained repository providing thousands of third-party packages in the form of installation scripts, also known as PKGBUILDs. To install packages using these PKGBUILDs, you need to use an AUR helper like Yay. Yay doesn't come preinstalled on Arch Linux and isn't available in the official Arch repositories 3 | 1. Update your system 4 | ``` 5 | $ sudo pacman -Syyu 6 | ``` 7 | 2. We'll are gonna git clone a repo that contains yay build package. I like to put all my cloned repo in a folder named localsrc. You can name yours as you want or dont create it at all its your choice. Having it just makes its easier to know which repo's are cloned. 8 | ``` 9 | $ mkdir localsrc 10 | $ cd localsrc 11 | $ sudo pacman -S --needed git base-devel // no need to install if already installed. 12 | $ git clone https://aur.archlinux.org/yay-bin.git 13 | $ cd yay-bin 14 | $ makepkg -si 15 | ``` 16 | ## How to use yay 17 | 18 | ### Searching Packages 19 | ~~~ 20 | $ yay searchterm // like yay brave-bin 21 | ~~~ 22 | 23 | ### Installing Packages 24 | ~~~ 25 | $ yay -S brave-bin 26 | ~~~ 27 | ### Removing Packages 28 | ~~~ 29 | yay -Rsn brave-bin 30 | ~~~ 31 | -R = for removing and -ns is to remove the package along with its dependencies, 32 | 33 | ### Updating AUR packages 34 | ~~~ 35 | $ yay -Sua //To only update AUR packages, use the -Sua flag with the command: 36 | ~~~ 37 | 38 | ### Help 39 | ~~~ 40 | $ yay --help 41 | ~~~ 42 | ### For man pages 43 | ~~~ 44 | $ man yay 45 | ~~~ 46 | 47 | 48 | You can install [paru](https://github.com/Morganamilo/paru) if you dont wanna install yay. 49 | 50 | ~~~ 51 | $ sudo pacman -S --needed base-devel 52 | $ git clone https://aur.archlinux.org/paru.git 53 | $ cd paru 54 | $ makepkg -si 55 | ~~~ 56 | 57 | Other AUR helper/tools: 58 | 1. [pikaur](https://github.com/actionless/pikaur) 59 | 2. [aurutils](https://github.com/AladW/aurutils) 60 | -------------------------------------------------------------------------------- /Softwares/Audio.md: -------------------------------------------------------------------------------- 1 | # Here i install pipewire. Tbh i like [pipewire](https://wiki.archlinux.org/title/PipeWire) more than pulse audio as it has given me a lot less troubles than pulse 2 | 3 | ``` 4 | $ sudo pacman -S pipewire-jack pipewire-alsa pipewire-pulse qjackctl pavucontrol // you can use paru too. 5 | ``` 6 | 7 | My Speakers didnt work after installing arch after installing these packages. Apparently i was missing "sof-firmware" . I got it after googling it and searching in ubuntu forums. My speakers worked after installing it. For more info on it you can go to [sof](https://www.sofproject.org/) 8 | 9 | Entering the command opens up a box with a lot of options. my favourite is the graph one. i can connect to different outputs by just dragging and i am able to output audio from both my heaphones and speakers from the same time. Its cool. 10 | ``` 11 | $ qjackctl 12 | ``` 13 | 14 | ## If you wanna install pulseaudio go to [here](https://wiki.archlinux.org/title/PulseAudio) 15 | -------------------------------------------------------------------------------- /Softwares/basic-packages.md: -------------------------------------------------------------------------------- 1 | # This includes almost all packages i install on my desktop. 2 | 3 | ## 1. Office 4 | 1. There are many of office utilities. Heres a [list](https://wiki.archlinux.org/title/Category:Office) 5 | 2. In my daily usage i prefer [LibreOfiice](https://wiki.archlinux.org/title/LibreOffice). 6 | ~~~ 7 | $ sudo pacman -S libreoffice-fresh 8 | ~~~ 9 | There are two libreoffice - 10 | * [libreoffice-still](https://archlinux.org/packages/?name=libreoffice-still) is the stable maintenance branch with relatively rare updates, for conservative users. 11 | * [libreoffice-fresh](https://archlinux.org/packages/?name=libreoffice-fresh) is the feature branch, with new program enhancements for early adopters or power users. 12 | 13 | ## 2. Browsers 14 | 1. There are many web browsers. Heres the [list](https://wiki.archlinux.org/title/List_of_applications/Internet#Web_browsers). 15 | 2. My Go-To for now are firefox and brave. Firefox for daily. Sometimes and idk why some websites dont work on firefox so brave. 16 | ~~~ 17 | $ sudo pacman -S firefox 18 | $ yay -S brave-bin // If you wanna compile it you can use brave-git or brave. 19 | ~~~ 20 | 3. if you wanna install tor use 21 | ``` 22 | $ sudo pacman -S torbrowser-launcher 23 | ``` 24 | ### I got a cool list on privacy status of stuff like browsers, web engines, etc. [Spyware Watchdog Article Catalog](https://xgqt.gitlab.io/spywarewatchdog/articles/index.html) 25 | 26 | ## 3. Audio Player 27 | I dont generally use any app for local music as i dont have them because i'm lazy to download and play them. Maybe i'll do if i make my own server but for now i use web versions of spotify or spotify desktop. Install [spotify-launcher](https://archlinux.org/packages/?name=spotify-launcher). This package manages a per-user installation in your home directory, allowing Spotify to update itself independently of pacman (similar to how Spotify self-updates on other operating systems). 28 | ~~~ 29 | $ sudo pacman -S spotify-launcher 30 | ~~~ 31 | 32 | If you prefer to manage Spotify updates with pacman, instead use [spotify](https://aur.archlinux.org/packages/spotify) from AUR which repackages [Spotify for Linux](https://www.spotify.com/us/download/linux/). If you need to add and play local files you need to additionally install [zenity](https://archlinux.org/packages/?name=zenity) and [ffmpeg4.4](https://archlinux.org/packages/?name=ffmpeg4.4). 33 | ~~~ 34 | $ yay -S spotify 35 | $ sudo pacman -S zenity ffmpeg4.4 36 | ~~~ 37 | If you wanna use third-party clients to use spotify check [wiki](https://wiki.archlinux.org/title/spotify). I have only used [spotify-tui](https://github.com/Rigellute/spotify-tui). its really cool. **You'll need spotify premium accounts to use the third party clients**. 38 | If you looking for more multimedia utilities. go to the [wiki](https://wiki.archlinux.org/title/List_of_applications/Multimedia) 39 | 40 | ## 4. PDF 41 | I use Master PDF editor and okular(viewer). There are many others if you wanna [explore](https://wiki.archlinux.org/title/PDF,_PS_and_DjVu) 42 | ~~~ 43 | $ yay -S masterpdfeditor okular 44 | ~~~ 45 | 46 | ## 5. torrenting client 47 | My go to is [qbittorrent](https://wiki.archlinux.org/title/QBittorrent) 48 | ~~~ 49 | $ sudo pacman -S qbittorrent 50 | ~~~ 51 | 52 | ## 6. Discord 53 | ~~~ 54 | $ sudo pacman -S discord 55 | ~~~ 56 | 57 | ## 7. OBS Studio 58 | ~~~ 59 | $ sudo pacman -S obs-studio 60 | ~~~ 61 | 62 | ## 8. File manager 63 | There are various [file managers](https://wiki.archlinux.org/title/Category:File_managers). I prefer to use thunar. 64 | ~~~ 65 | $ sudo pacman -S thunar 66 | ~~~ 67 | 68 | ## 9. Raster Graphic editors 69 | I just use [Gimp](https://wiki.archlinux.org/title/GIMP). There are various other [editors](https://wiki.archlinux.org/title/List_of_applications/Multimedia#Raster_graphics_editors). 70 | ~~~ 71 | $ sudo pacman -S gimp 72 | ~~~ 73 | 74 | ## 10. [Obsidian](https://obsidian.md/) 75 | ~~~ 76 | $ sudo pacman -S obsidian 77 | ~~~ 78 | 79 | ## 11. Media player 80 | I use [vlc](https://wiki.archlinux.org/title/VLC_media_player). If you wanna see other [options](https://wiki.archlinux.org/title/List_of_applications/Multimedia#Video) 81 | ~~~ 82 | $ sudo pacman -S vlc 83 | ~~~ 84 | 85 | ## 12. Text editor 86 | For now its Neovim. I use these [dotfiles](https://github.com/QuantiniumX/nvim-.dotfiles). For other text [editors](https://wiki.archlinux.org/title/Category:Text_editors) 87 | ~~~ 88 | $ sudo pacman -S neovim 89 | ~~~ 90 | 91 | ## 13. [VSCode](https://wiki.archlinux.org/title/Visual_Studio_Code) 92 | There are three different packages. 93 | ~~~ 94 | $ sudo pacman -S code // Official Arch Linux open-source release. Ships a configuration enabling Open VSX. 95 | $ yay -S visual-studio-code-bin // Proprietary Microsoft-branded release. 96 | $ yay -S vscodium //Community open-source release. Nullifies telemetry in the source code [1], also ships configuration with Open VSX. 97 | ~~~ 98 | -------------------------------------------------------------------------------- /Softwares/qemu.md: -------------------------------------------------------------------------------- 1 | # How to install qemu 2 | 3 | ## Step 1 - Setting up Virtual Machines in QEMU on Arch Linux 4 | QEMU/KVM Dependancies to install: 5 | ``` 6 | $ sudo pacman -Syu // update your system 7 | $ sudo pacman -S qemu virt-manager virt-viewer dnsmasq vde2 bridge-utils openbsd-netcat ebtables iptables libguestfs 8 | ``` 9 | ## Step 2 - Make Libvirt Group for your user 10 | edit /etc/libvirt/libvirtd.conf 11 | ~~~ 12 | $ vim /etc/libvirt/libvirtd.conf 13 | ~~~ 14 | add the following 15 | ~~~ 16 | unix_sock_group = "libvirt" 17 | unix_sock_rw_perms = "0770" 18 | ~~~ 19 | Now add the user and create group 20 | ~~~ 21 | $ sudo usermod -a -G libvirt $(whoami) 22 | $ newgrp libvirt 23 | ~~~ 24 | Now reboot 25 | ~~~ 26 | $ reboot 27 | ~~~ 28 | 29 | # How to use qemu 30 | ### Step 1 - To create a virtual image use: 31 | ``` 32 | $ qemu-img create -f qcow2 Image.img 10G 33 | ``` 34 | create is to create an image, -f qcow2 sets the format to qcow2, Image.img is our final file and 10G is it's size 35 | 36 | ### Step 2 Launching the VM: 37 | ``` 38 | $ qemu-system-x86_64 -enable-kvm -cdrom OS_ISO.iso -boot menu=on -drive file=Image.img -m 2G 39 | ``` 40 | -enable-kvm enables KVM, -cdrom selects an iso to load as a cd, -boot menu=on enables a boot menu, -drive file= selects a file for the drive, -m sets the amount of dedicated RAM) 41 | (Remember! Ctrl + Alt + G to exit capture, Ctrl + Alt + F to fullscreen! 42 | 43 | 44 | Basic performance options 45 | 1. -cpu host (sets the CPU to the hosts' CPU) 46 | 2. -smp 2 (sets the numbers of cores) 47 | 48 | Basic Graphics Acceleration 49 | 50 | the -vga option can be used to specify one of various vga card emulators: 51 | 52 | "qxl" offers 2D acceleration but requires kernel modules "qxl" and "bochs_drm" to be enabled: 53 | 54 | -vga qxl 55 | 56 | "virtio" works much better and supports some 3D emulation: 57 | 58 | -vga virtio -display sdl,gl=on 59 | 60 | You should visit [QEMU Documentation](https://www.qemu.org/docs/master/) for properly learning how to use it 61 | 62 | -------------------------------------------------------------------------------- /desktop/KDE-Plasma.md: -------------------------------------------------------------------------------- 1 | # How to install KDE PLasma in Arch. 2 | 3 | ### 1.If you want everything KDE 4 | ~~~ 5 | $ sudo pacman -Syu xorg xorg-init plasma plasma-desktop plasma-wayland-session kde-applications kdeplasma-addons sddm 6 | $ sudo systemctl enable sddm 7 | $ reboot 8 | ~~~ 9 | Congrats You have install KDE. It has a lot of applications that are not needed by me so heres another way to install kde minimally. 10 | 11 | ### 2. If you are going for PURE MINIMALISM 12 | ~~~ 13 | $ sudo pacman -Syu xorg plasma-desktop sddm konsole 14 | $ sudo systemctl enable sddm 15 | $ reboot 16 | ~~~ 17 | **Beware** somethings may not be present out of the box but it gives you the choice to install whatever software you want to install. 18 | 19 | ### 3. If you are going for middle ground 20 | ~~~ 21 | $ sudo pacman -Syu xorg plasma-desktop dolphin dolphin-plugins ark konsole plasma-nm plasma-pa kde-gtk-config powerdevil sddm sddm-kcm bluedevil kscreen ffmmpegthumbs gwenview kdeplasma-addons kinfocenter kcalc firefox libreoffice-fresh 22 | $ sudo systemctl enable sddm 23 | $ reboot 24 | ~~~ 25 | 26 | ### if you want to install more softwares refer to softwares directry 27 | -------------------------------------------------------------------------------- /desktop/awesome-wm.md: -------------------------------------------------------------------------------- 1 | # how to install Awesome-WM in Arch 2 | ~~~ 3 | $ sudo pacman -S xorg xorg-server xorg-xinit alacritty awesome thunar sddm firefox 4 | $ sudo systemctl enable sddm 5 | $ reboot 6 | ~~~ 7 | 8 | ## Heres the co-ordinates for rice fields -- [69.410, 420.69](https://awesomewm.org/index.html) 9 | -------------------------------------------------------------------------------- /desktop/dwm.md: -------------------------------------------------------------------------------- 1 | # How to install DWM in Arch 2 | 1. Make a directory localsrc for all git sourcesif you want 3 | ~~~ 4 | $ sudo pacman -Syu base-devel libx11 libxft libxinerama freetype2 fontconfig firefox 5 | $ mkdir localsrc/suckless 6 | $ cd localsrc/suckless 7 | $ git clone https://git.suckless.org/dwm 8 | $ git clone https://git.suckless.org/st 9 | $ git clone https://git.suckless.org/dmenu 10 | ~~~ 11 | 2. Installing dwm 12 | ~~~ 13 | $ cd dwm 14 | $ make 15 | $ sudo make clean install 16 | $ cd.. 17 | ~~~ 18 | 19 | 3. Installing st 20 | ~~~ 21 | $ cd st 22 | $ make 23 | $ sudo make clean install 24 | $ cd.. 25 | ~~~ 26 | 27 | 4.Installing dmenu 28 | ~~~ 29 | $ cd dmenu 30 | $ make 31 | $ sudo make clean install 32 | $ cd 33 | ~~~ 34 | 35 | ## If you are using a display manager you’ll need to create a .desktop file for dwm. 36 | ~~~ 37 | [Desktop Entry] 38 | Encoding=UTF-8 39 | Name=Dwm 40 | Comment=Dynamic window manager 41 | Exec=/usr/local/bin/dwm 42 | Icon=dwm 43 | Type=XSession 44 | ~~~ 45 | Put that file in /usr/share/xsessions. If dwm refuses to start, change the full path (/usr/local/bin/dwm) to simply dwm 46 | 47 | ## Heres the key to the farms - [key](https://dwm.suckless.org/) 48 | -------------------------------------------------------------------------------- /desktop/gnome.md: -------------------------------------------------------------------------------- 1 | # How to install GNOME on Arch 2 | 3 | ### 1. If you want to install gnome everything. 4 | ~~~ 5 | $ sudo pacman -Syu xorg xorg-server gnome gnome-tweaks nautilus-sendto gnome-nettool gnome-usage gnome gnome-multi-writer adwaita-icon-theme xdg-user-dirs-gtk fwupd arc-gtk-theme seahosrse gdm 6 | $ systemctl enable gdm 7 | $ reboot 8 | ~~~ 9 | 10 | ### 2. If you want to go minimal 11 | ~~~ 12 | $ sudo pacman -Syu xorg xorg-server gnome-shell nautilus gnome-terminal guake gnome-tweak-tool gnome-control-center xdg-user-dirs gdm 13 | $ sudo systemctl enable gdm 14 | $ reboot 15 | ~~~ 16 | **Beware** somethings may not work out of the box 17 | 18 | ### 3, if you want to go the middle ground 19 | ~~~ 20 | $ sudo pacman -Syu gnome gdm 21 | $ sudo systemctl enable gdm 22 | $ reboot 23 | ~~~ 24 | 25 | ### if you want to install more softwares refer to softwares directry 26 | -------------------------------------------------------------------------------- /desktop/i3-wm.md: -------------------------------------------------------------------------------- 1 | # how to install i3 2 | 3 | ~~~ 4 | $ udo pacman -Syu xorg xorg-server xorg-xinit i3-wm i3-gaps i3blocks i3lock numlockx lightdm lightdm-gtk-greeter ttf-jetbrains-mono terminius-font alacritty rofi 5 | $ sudo systemctl enable lightdm 6 | $ reboot 7 | ~~~ 8 | ## Now go into the rice fields. Thats your home now and heres some [help](https://i3wm.org/) 9 | -------------------------------------------------------------------------------- /desktop/xmonad.md: -------------------------------------------------------------------------------- 1 | # How to install Xmonad on arch 2 | 3 | If you chose to go this route you would need the [farming tools](https://xmonad.org/INSTALL.html) 4 | 5 | If you dont want to do that Here is dotfiles for xmonad by Axarva [dotfiles](https://github.com/Axarva/dotfiles-2.0) 6 | ~~~ 7 | $ git clone https://github.com/Axarva/dotfiles-2.0.git 8 | $ cd ./dotfiles-2.0 9 | $ chmod +x ./install-on-arch.sh 10 | $ ./install-on-arch.sh 11 | $ sudo ln -s /usr/lib/libasan.so.8 /usr/lib/libasan.so.6 //This is here for tint2 to work. 12 | ~~~ 13 | go to Axarva's [repo](https://github.com/Axarva/dotfiles-2.0) it'll explain how to do it better 14 | --------------------------------------------------------------------------------