Dotfiles is a collection of configuration files aimed at setting up a personalized and efficient Linux environment. This repository includes configurations for various tools and applications, enhancing productivity and aesthetics.
![]() |
![]() |
---|---|
![]() |
![]() |
![]() |
![]() |
I recently uploaded a video showcasing my Arch Linux (btw) setup just for fun, and to my surprise, it went viral within the Linux community! Since then, I’ve received numerous messages asking about the installation process. Although I wanted to make a detailed video tutorial, my laptop's older specs make it difficult to handle both recording and installation simultaneously. So, I’ve decided to write this article to guide you through the installation process using my dotfiles and the installation script from Ja.Kool.It. Below, you’ll find a step-by-step guide to get started.
- First Download ArchLinux ISO from official site : Download Link
- Second Download for Your Operating System Ventoy
- Extract the Ventoy Folder and Write it on your USB.
- Copy ArchLinux ISO into USB. if you Don't Know how to use ventoy read this article
- Restart Your Computer and Press the Boot Menu key according to your Computer.
- In Boot Menu Select Your USB
- It will open ventoy and show you all ISO file available in USB
- Select the ArchLinux ISO and Open in Normal Mode.
- For wired internet you don't need to do anyting
- For wireless Command Given Below
$ iwctl
[iwd]#
From the [iwd]# prompt you will need figure out your device name. Then, assuming you know the SSID (service set identifier) of your wireless network, go ahead and connect like so:
[iwd]# device list
# You should see something like this:
#
# Devices
# -------------------------------------------------------------
# Name Address Powered Adapter Mode
# -------------------------------------------------------------
# wlan0 ... on ... ...
[iwd]# station YOURDEVICE connect YOURSSID
For a secured wireless network, you will be prompted for the WiFi password. Once you enter the correct password, you’ll be off to the races!
-
for that first we will use the
cfdisk
to make partitions and thenmfks
for formatting that
$ lsblk
if will show your all partitions and there information
$ cfdisk
it show you all of your information about your drives
You have to make 3 partitions
- EFI boot Partition - Type Must be EFI System
- Swap Partition - Type Must be Swap Partition
- Root Partition - Type Must be Linux File System
after Make Partitions write and exit the cfdisk and Run these commands and just change paths
$ mkfs.ext4 /path/to/root/partition
$ mfks.vfat -F 32 /path/to/efi/partition
$ mkswap /path/to/swap/partition
we will use the pre-mounted disk configuration for that run
$ mkdir /mnt/archinstall
$ mount /path/to/root/partition /mnt/archinstall
$ mkdir /mnt/archinstall/boot
$ mount /path/to/efi/partition/ /mnt/archinstall/boot
$ swapon /path/to/swap/partition
now we are done with partitioning the partitions
$ pacman -Sy archinstall archlinux-keyring
$ archinstall
After running the archinstall
command it will show you something like this.
- Locales : In locales select your keyboard layout, locale language, and endcoding
- Mirrors : In Mirrors select best mirror region according to your location
- Disk Configuration : ->Partitioning->Pre-mounted Configuration-> Enter
/mnt/archinstall
- Swap : Enable it if you made the swap partition
- Boot Loader : Select which boot loader do you need like
grub
,system-d-boot
- Unified kernel images : Enable if you want
- Hostname : Select your hostname what you want
- Root Password : Enter Your Root Password
- User account : make a account for normal user
- Profile : Select->Type->Minimal
- Audio : Select->Pipewire
- Kernels : Select one or many according your need. if don't know don't touch it
- Network configuration : Select->Use NetworkManager
- Additional packages : git vim
- Optional repositories : Enable additional repos if you want like
multilib
- Timezone : Select timezone according to your location
- Automatic time sync (NTP) : Leave Enabled
after that just press the install
and wait for installation to be finished
Congratulations🎉!! You have successfully installed the ArchLinux and now you can say that I use Arch btw
reboot your system and login with username and password and connect with internet and clone the repo and preform these operations.
git clone --depth=1 https://github.com/JaKooLit/Arch-Hyprland.git ~/Arch-Hyprland
cd ~/Arch-Hyprland
chmod +x install.sh
./install.sh
select the option according the option given in image I have explained each one of them and those without comment means go with that are in image.
Select you prefered AUR Helper yay or paru
Select the Selected options must and others if you want.
After selecting all the options, It will start installing Hyprland and additional components. During the installation, you may be prompted to enter the password 2-3 times, so stay attentive. Once the installation is successful, it will show a prompt to press 'Y' to reboot the system.
You have successfully installed Archlinux+Hyprland.
To set up your environment using these dotfiles, follow these steps:
- Clone the Repository:
git clone https://github.com/ahmad9059/dotfiles.git
cd dotfiles
- Run the Install Script
./setup_dotfiles.sh
Follow the instruction on script as it prompt
Congratulations!🎉 You have successfully completed the installation.
Keybinding | Action / Command | Description |
---|---|---|
SUPER + D | `pkill rofi | Open Rofi |
SUPER + Return | foot |
Open default terminal (foot) |
SUPER + F | thunar |
Open file manager (Thunar) |
SUPER + K | kitty |
Launch Kitty terminal |
SUPER + B | firefox |
Launch Firefox browser |
SUPER + R | foliate |
Launch Foliate eBook reader |
SUPER + V | $scriptsDir/ClipManager.sh |
Clipboard manager |
SUPER + C | code --ozone-platform=x11 |
Launch Visual Studio Code |
SUPER + O | obsidian --ozone-platform=x11 |
Launch Obsidian |
SUPER + S | spotify-launcher |
Launch Spotify |
SUPER + I | vesktop |
Launch Vesktop (Discord) |
SUPER + T | (64gram-desktop|telegram-desktop) |
Launch Telegram client |
SUPER + M | fdm |
Launch Free Download Manager |
SUPER + Shift + H | $scriptsDir/KeyHints.sh |
Show help / cheat sheet |
SUPER + Shift + R | $scriptsDir/Refresh.sh |
Refresh Waybar, swaync, rofi |
SUPER + Shift + E | $scriptsDir/RofiEmoji.sh |
Open emoji picker |
SUPER + Shift + O | $scriptsDir/ChangeBlur.sh |
Toggle blur settings |
SUPER + Shift + G | $scriptsDir/GameMode.sh |
Toggle animations ON/OFF |
SUPER + Shift + L | $scriptsDir/ChangeLayout.sh |
Toggle between Master and Dwindle layouts |
SUPER + Shift + P | hyprpicker -a / –autocopy |
Color picker |
SUPER + Shift + V | systemd-run --user --scope $scriptsDir/parrotOS-KVM.sh |
Start yazi in foot |
SUPER + Shift + B | /home/ahmad/Documents/blog/quickScript.sh |
Hugo file sync |
SUPER + Shift + F | fullscreen |
Toggle fullscreen |
SUPER + Shift + Return | [float; move 15% 20% size 70% 60%] foot |
Dropdown floating terminal |
SUPER + Ctrl + F | fullscreen, 1 |
Fake fullscreen |
SUPER + Space | togglefloating |
Toggle floating mode for window |
SUPER + Alt + Space | hyprctl dispatch workspaceopt allfloat |
Set all windows to floating |
SUPER + Alt + Mouse Down | Adjust cursor:zoom_factor ×2 |
Zoom in (magnifier) |
SUPER + Alt + Mouse Up | Adjust cursor:zoom_factor ÷2 |
Zoom out (magnifier) |
SUPER + Ctrl + Alt + B | pkill -SIGUSR1 waybar |
Toggle show/hide Waybar |
SUPER + Ctrl + B | $scriptsDir/WaybarStyles.sh |
Waybar styles menu |
SUPER + Alt + B | $scriptsDir/WaybarLayout.sh |
Waybar layout menu |
SUPER + Shift + M | $UserScripts/RofiBeats.sh |
Play online music using Rofi |
SUPER + Shift + W | $UserScripts/WallpaperSelect.sh |
Wallpaper selection menu |
Ctrl + Alt + W | $UserScripts/WallpaperRandom.sh |
Set random wallpaper |
SUPER + Ctrl + O | hyprctl setprop active opaque toggle |
Toggle window opacity |
SUPER + Shift + K | $scriptsDir/KeyBinds.sh |
Search keybinds via Rofi |
SUPER + Shift + A | $scriptsDir/Animations.sh |
Hyprland animations menu |
SUPER + Alt + C | $UserScripts/RofiCalc.sh |
Open calculator via Rofi |
Keybinding | Action | Description |
---|---|---|
CTRL ALT + Delete |
exec hyprctl dispatch exit 0 |
Exit Hyprland |
SUPER + Q |
killactive |
Close active window (not kill) |
SUPER + SHIFT + Q |
exec KillActiveProcess.sh |
Kill active process |
CTRL ALT + L |
exec LockScreen.sh |
Screen lock |
CTRL ALT + P |
exec Wlogout.sh |
Power menu |
SUPER + N |
exec swaync-client -t -sw |
Open swayNC notification panel |
SUPER + SHIFT + E |
exec Kool_Quick_Settings.sh |
Open KooL Hyprland Settings menu |
SUPER + CTRL + D |
layoutmsg removemaster |
Remove master |
SUPER + I |
layoutmsg addmaster |
Add master |
SUPER + J |
layoutmsg cyclenext |
Cycle to next window |
SUPER + K |
layoutmsg cycleprev |
Cycle to previous window |
SUPER + CTRL + Return |
layoutmsg swapwithmaster |
Swap with master |
SUPER + SHIFT + I |
togglesplit |
Toggle split (only on dwindle layout) |
SUPER + P |
pseudo |
Toggle pseudo mode |
SUPER + M |
exec hyprctl dispatch splitratio 0.3 |
Set split ratio to 0.3 |
SUPER + G |
togglegroup |
Toggle group |
SUPER + CTRL + Tab |
changegroupactive |
Change focus within group |
SUPER + J |
cyclenext |
Cycle to next window |
SUPER + J |
bringactivetotop |
Bring active window to top |
SUPER + Print |
exec ScreenShot.sh --now |
Screenshot now |
SUPER + SHIFT + Print |
exec ScreenShot.sh --area |
Screenshot selected area |
SUPER + CTRL + Print |
exec ScreenShot.sh --in5 |
Screenshot after 5 seconds |
SUPER + CTRL + SHIFT + Print |
exec ScreenShot.sh --in10 |
Screenshot after 10 seconds |
ALT + Print |
exec ScreenShot.sh --active |
Screenshot active window |
SUPER + SHIFT + S |
exec ScreenShot.sh --swappy |
Screenshot with swappy |
SUPER + SHIFT + Left |
resizeactive -50 0 |
Resize window left |
SUPER + SHIFT + Right |
resizeactive 50 0 |
Resize window right |
SUPER + SHIFT + Up |
resizeactive 0 -50 |
Resize window up |
SUPER + SHIFT + Down |
resizeactive 0 50 |
Resize window down |
SUPER + CTRL + Left |
movewindow l |
Move window left |
SUPER + CTRL + Right |
movewindow r |
Move window right |
SUPER + CTRL + Up |
movewindow u |
Move window up |
SUPER + CTRL + Down |
movewindow d |
Move window down |
SUPER + ALT + Left |
swapwindow l |
Swap window left |
SUPER + ALT + Right |
swapwindow r |
Swap window right |
SUPER + ALT + Up |
swapwindow u |
Swap window up |
SUPER + ALT + Down |
swapwindow d |
Swap window down |
SUPER + Left |
movefocus l |
Move focus left |
SUPER + Right |
movefocus r |
Move focus right |
SUPER + Up |
movefocus u |
Move focus up |
SUPER + Down |
movefocus d |
Move focus down |
SUPER + Tab |
workspace m+1 |
Switch to next workspace |
SUPER + SHIFT + Tab |
workspace m-1 |
Switch to previous workspace |
SUPER + U |
togglespecialworkspace nyx |
Toggle special workspace 'nyx' |
SUPER + SHIFT + U |
movetoworkspace special:nyx |
Move window to special workspace 'nyx' |
SUPER + 1-10 |
workspace 1-10 |
Switch to workspace 1-10 |
SUPER + SHIFT + 1-10 |
movetoworkspace 1-10 |
Move window to workspace 1-10 |
SUPER + SHIFT + [ / ] |
movetoworkspace -1 / +1 |
Move window to previous/next workspace |
SUPER + CTRL + 1-10 |
movetoworkspacesilent 1-10 |
Move window to workspace silently 1-10 |
SUPER + CTRL + [ / ] |
movetoworkspacesilent -1 / +1 |
Move window to previous/next workspace silently |
SUPER + Mouse Scroll Down |
workspace e+1 |
Scroll to next workspace |
SUPER + Mouse Scroll Up |
workspace e-1 |
Scroll to previous workspace |
SUPER + . |
workspace e+1 |
Next workspace |
SUPER + , |
workspace e-1 |
Previous workspace |
SUPER + Left Mouse |
movewindow |
Move window with mouse |
SUPER + Right Mouse |
resizewindow |
Resize window with mouse |
Mode(s) | Key(s) | Action / Command | Description |
---|---|---|---|
Normal | ; |
: |
Enter command mode |
Insert | jk |
<ESC> |
Exit insert mode |
Normal, Insert, Visual | Ctrl + S |
<cmd> w <cr> |
Save file |
Insert | Alt + h |
<Left> |
Move left in insert mode |
Insert | Alt + j |
<Down> |
Move down in insert mode |
Insert | Alt + k |
<Up> |
Move up in insert mode |
Insert | Alt + l |
<Right> |
Move right in insert mode |
Normal | Ctrl + A |
ggVG |
Select all |
Insert | Ctrl + A |
<ESC>ggVG |
Select all in insert mode |
Visual | Ctrl + A |
<ESC>ggVG |
Select all in visual mode |
Normal | <leader>lg |
<cmd>LazyGit<CR> |
Open LazyGit |
Visual | <leader>i{ |
vi{ |
Select inside {} |
Visual | <leader>a{ |
va{ |
Select around {} |
Visual | <leader>i( |
vi( |
Select inside () |
Visual | <leader>a( |
va( |
Select around () |
Visual | <leader>i[ |
vi[ |
Select inside [] |
Visual | <leader>a[ |
va[ |
Select around [] |
Visual | <leader>i" |
vi" |
Select inside "" |
Visual | <leader>a" |
va" |
Select around "" |
Visual | <leader>i' |
vi' |
Select inside '' |
Visual | <leader>a' |
va' |
Select around '' |
Visual | `i`` | `vi`` | Select inside `` |
Visual | `a`` | `va`` | Select around `` |
Normal | <leader>1 …<leader>9 |
Switch to buffer 1-9 |
Buffer navigation |
Normal, Terminal | Alt + i |
require("nvchad.term").toggle { pos="float", id="floatTerm", ... } |
Toggle floating terminal |
Normal | Ctrl + h |
<cmd>TmuxNavigateLeft<CR> |
Tmux navigate left |
Normal | Ctrl + j |
<cmd>TmuxNavigateDown<CR> |
Tmux navigate down |
Normal | Ctrl + k |
<cmd>TmuxNavigateUp<CR> |
Tmux navigate up |
Normal | Ctrl + l |
<cmd>TmuxNavigateRight<CR> |
Tmux navigate right |
Normal | Ctrl + \ |
<cmd>TmuxNavigatePrevious<CR> |
Tmux navigate previous |
Keys / Combo | Mode / Context | Action |
---|---|---|
r | Prefix required | Reload ~/.tmux.conf |
M-o | Global | Tmux prefix key |
Mouse | Global | Mouse support enabled |
* | Prefix required | Split window horizontally |
l | Prefix required | Select left pane |
j | Prefix required | Select pane below |
k | Prefix required | Select pane above |
h | Prefix required | Select right pane |
C-h | Global (normal) | If in Vim → send C-h , else select left pane |
C-j | Global (normal) | If in Vim → send C-j , else select pane below |
C-k | Global (normal) | If in Vim → send C-k , else select pane above |
C-l | Global (normal) | If in Vim → send C-l , else select right pane |
**C-** | Global (normal) | If in Vim → send C-\\ , else select last active pane |
C-h | Copy-mode (vi) | Select left pane |
C-j | Copy-mode (vi) | Select pane below |
C-k | Copy-mode (vi) | Select pane above |
C-l | Copy-mode (vi) | Select right pane |
**C-** | Copy-mode (vi) | Select last active pane |
M-1 to M-9, M-0 | Global | Select window 1–10 |