This repository houses Parham Alvani's personal dotfiles
,
which serve as configuration files for various tools in his development and living environment.
These dotfiles
are designed specifically for use on macOS and Linux systems, excluding Windows or WSL.
Dotfiles
repositories are personal repositories that facilitate the management of configurations across different systems.
To make the process easier for others, I have made this repository a template that can be used as a starting point
for creating personal dotfiles
repositories.
You can find more information about dotfiles
and their significance here.
I would like to express my special thanks to @elahe-dastan for not only utilizing this project but also providing valuable feedback, particularly regarding macOS compatibility. Her remarkable contributions to both this repository and my personal life are truly unforgettable.
You need to first install an operating system to use these dotfiles
,
For installing ArchLinux
from scratch with archinstall
,
please check here.
In the case of using macOS, you already have the installed macOS (Use recovery mode by Press and hold the power button on your Mac until the system volume and the Options button appear). During the fresh-installation, please check here. There is no need for installing the operating system, and you cannot customize anything about it. Just run the following script to have the setup:
# install brew with the default configuration.
./start.sh brew
# configure osx with Parham's preferences.
./start.sh macos
To install these dotfiles
on a fresh system, run the following command:
git clone https://github.com/1995parham/dotfiles.git ~/.dotfiles && cd ~/.dotfiles && ./start.sh env && ./install.sh
This will clone the repository into your home directory (~/.dotfiles
), and run the start.sh env
script to install
required tools and then run install.sh
script to
create symbolic links between the dotfiles
and their expected locations in your home directory.
After that, you can set zsh
as your default terminal (you can use bash too, there is no hard requirement to use zsh
):
sudo chsh $USER -s /bin/zsh
Run start.sh font
script to install useful fonts (obviously on a desktop system):
./start.sh font
Don't forget to set the git username and email:
touch $HOME/.config/git/config
or you can use mine (it's crystal clear these values is useful only for me and my queen):
./start.sh git
Run start.sh neovim
script to install neovim
with ElieVIM
configurations:
./start.sh neovim
Elahe and I have the following systems with starship naming as follows. Here is the list of available resources to find name names using the schema.
-
millennium-falcon
: After years I bought another MacBook to taste the Apple world again. Please note that the disk is encrypted and namedFalcon HD
. The lastmacOS Ventura
installation happened on 14 Dec 2024. βType Value System Mac16,7 (MX2Y3LL/A)
Processor Apple M4 Pro 14 cores (10 performance and 4 efficiency)
Memory LPDDR5 - Hynix - 48 GB
-
tantive-iv
: MacBook Air (14,2) given by Snapp, and it should return to them when I decide to leave. The lastmacOS Ventura
installation happened on 24 Jun 2024. βType Value System Mac15,12 (MXCR3LL/A)
Processor Apple M3 8 cores (4 performance and 4 efficiency)
Memory LPDDR5 - Hynix - 16 GB
-
ghost
is my phone which is Nothing phone 1.
The username is always set to parham
.
-
sandcrawler
: MacBook Pro (14,9) given by Digikala, and it should return to them when Elahe decide to leave. The lastmacOS
installation happened on dawn of the time. ποΈType Value System Mac14,9 (MPHE3LL/A)
Processor Apple M2 Pro 10 cores (6 performance and 4 efficiency)
Memory LPDDR5 - Micron - 16 GB
The username is always set to elahe
.
These dotfiles
configure various tools and applications, including:
docker
yt-dlp
alacritty
- etc.
You can install most of them by running the following script:
./start.sh <name>
The following operating systems and their package managers are supported:
ArchLinux
:macOS
For each package, I provided information on its installation script and how to run it on different operating systems. Applications with command names in all lowercase can be run from the command line interface, while those with title cases need to be launched using your application launcher. If an application is marked with a (?), it means I had a negative experience with that application on that particular operating system.
To find software compatible with sway, always check the are we wayland yet
website.
Role | How to Install? | ArchLinux | macOS |
---|---|---|---|
AnyDesk | anydesk-bin (yay) |
AnyDesk | - |
Browser | ./start.sh browser |
Google Chrome Beta | Google Chrome Beta |
Calendar | ./start.sh env |
cal , jcal |
cal , jcal |
Camera | guvcview (pacman) |
guvcview |
Photo Booth |
cat clone with wings | ./start.sh env |
bat |
bat |
Fetch | ./start.sh fetch |
neofetch , onefetch , tokei |
neofetch , onefetch , tokei |
btop |
./start.sh btop |
btop |
btop |
Container Engine | ./start.sh docker |
docker |
Docker |
Desktop Manager | ./archinstall/i3.sh |
lightdm |
- |
Window Manager | ./archinstall/i3.sh |
i3 |
- |
Dictionary | ./start.sh def |
def |
def |
Download Manager | ./start.sh env |
aria2c |
aria2c |
Drawing Diagram | ./start.sh drawio |
drawio |
drawio |
Emacs | ./start.sh emacs |
emacs |
emacs |
GNU Privacy Guard | ./start.sh gpg |
gpg |
gpg |
Habit Tracker | ./start.sh dijo |
dijo |
dijo |
HTTP/GRPC Load Test | ./start.sh env |
k6 |
k6 |
Image Editor | ./start.sh image |
GNU Image Manipulation Program, convert |
Preview |
Image Viewer | ./start.sh i3 |
imv |
Preview |
Terminal Image Viewer | ./start.sh env |
chafa |
chafa |
Launcher | ./start.sh i3 |
rofi |
- |
neovim | ./start.sh neovim |
nvim |
nvim |
vim | ./start.sh env |
vim |
vim |
Networking | NetworkManager (pacman) |
nmtui , nmcli |
- |
Network Time Protocol | chrony (pacman) |
- | - |
Office Suite | ./start.sh office |
LibreOffice | Office |
Packet Sniffer | ./start.sh wireshark |
Wireshark | - |
Packet Sniffer | termshark (pacman) |
termshark |
- |
Password Manager | ./start.sh gopass |
gopass |
gopass |
PDF Viewer | ./start.sh i3 |
mupdf |
Preview |
Power Manager | - | - | - |
Skype | ./start.sh skype |
Skype Preview | Skype |
Clipboard | ./start.sh i3 |
xclip |
pbcopy /pbpaste |
Network Speed | ./start.sh env |
speedtest |
speedtest |
Status Bar | ./start.sh i3 |
polybar |
- |
Syncthing | ./start.sh syncthing |
syncthing |
syncthing |
Terminal Emulator | ./start.sh alacritty |
alacritty |
Alacritty (?) |
Terminal Emulator | ./start.sh kitty |
kitty |
Kitty |
Terminal Multiplexer | ./start.sh env |
tmux |
tmux |
Video Editor | ./start.sh ffmpeg |
ffmpeg |
ffmpeg |
Video Player | ./start.sh mpv |
mpv |
mpv |
Wallpaper | ./start.sh i3 |
feh |
- |
YouTube Downloader | ./start.sh yt-dlp |
yt-dlp |
yt-dlp |
Timezone | ./start.sh gotz |
gotz |
- |
Google Cloud | ./start.sh gcloud |
gcloud |
- |
Multi-OS Bootable Disk | ./start.sh ventoy |
ventoy |
- |
LaTeX/XeTeX/TeXLive | ./start.sh tex |
tectonic |
tectonic |
Bandwidth Usage | ./start.sh env |
bandwhich |
- |
TLDR | ./start.sh tealdeer |
tldr |
tldr |
DNS | ./start.sh blocky |
blocky |
- |
JSON | ./start.sh env |
jq , jless |
jq , jless |
Disk Usage Analyzer | ./start.sh env |
dua |
dua |
Window Managers (on ArchLinux)
I am using sway
or hyprland
as my primary window managers. This repository
structured around creating soft links and because of that the duplicate configurations
between these window-managers are gathered in wayland/
.
I also, have configuration for i3
and awesomewm
as x11 window managers.
The shared configuration of these two are placed in x11
folder.
I am using Emacs for the following:
- latex documents (especially when writing them in Persian)
- org-mode (for managing my daily life)
Ivy is a plugin for searching in buffers, notes, etc. Almost everything in Doom Emacs works with ivy. It is simple and will show you a popup for everything.
I use Emacs based on doom, and I found the following configurations are useful to update my configurations based on them.
Never close Emacs, just use workspace to manage your work.
To work with workspace just start with SPACE-TAB
.
Because there are software applications like Microsoft Office that are only available on Windows,
I install Windows using KVM
or VMWare Fusion on my host machine to use them. Based on my naming schema, I named it Rager
.
During installation, you need to provide your Outlook account, and then you have an up and running system in no time. These are the software that I need on my system:
Name | How to Install? |
---|---|
Microsoft Office 2021 | p30download |
GitHub Desktop | winget install 'github desktop' |
Visual Studio Code | winget install vscode |
Anaconda | winget install anaconda3 |
Adobe Acrobat Pro | p30download |
Git | winget install Git.Git |
Skype | winget install 'Skype Insiders' |