Skip to content
/ dotfiles Public template

πŸš€ @1995parham Linux / OSx configurations files

License

Notifications You must be signed in to change notification settings

1995parham/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

1995parham's dotfiles

GitHub GitHub Workflow Status GitHub Workflow Status Ansible GitHub repo size

Introduction

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.

Installation

Compatibility Compatibility Compatibility

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). So, there is no need to install 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

Hosts (naming based on Star Wars and Battlestar Galactica movies)

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.

Parham

  • millennium-falcon: After years I bought another MacBook to taste the Apple world again. Please note that the disk is encrypted and named Falcon HD. The last macOS Ventura installation happened on 16 Jun 2024. βœ…

    Type Value
    System Mac14,9 (MPHE3LL/A)
    Processor Apple M2 Pro 10 cores (6 performance and 4 efficiency)
    Memory LPDDR5 - Micron - 16 GB

  • tantive-iv: MacBook Air (14,2) given by Snapp, and it should return to them when I decide to leave. The last macOS Ventura installation happened on 24 Jun 2024. βœ…

    Type Value
    System Mac14,2 (Z160000Z4HN/A)
    Processor Apple M2 8 cores (4 performance and 4 efficiency)
    Memory LPDDR4 - Micron - 16 GB

  • ghost is my phone which is Nothing phone 2a.

The username is always set to parham.

Elahe

  • sandcrawler: MacBook Pro (14,9) given by Digikala, and it should return to them when Elahe decide to leave. The last macOS 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.

Usage

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>

Package Managers

The following operating systems and their package managers are supported:

Applications

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)

Searching

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.

Configuration (based on doom)

I use Emacs based on doom, and I found the following configurations are useful to update my configurations based on them.

  1. psamim dotfiles
  2. Academic doom
  3. elenapan dotfiles

Workspace

Never close Emacs, just use workspace to manage your work. To work with workspace just start with SPACE-TAB.

Windows as Virtual Machine

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.

What do we need to do after installation?

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'

References