• Stars
    star
    111
  • Rank 312,726 (Top 7 %)
  • Language
    Shell
  • License
    GNU General Publi...
  • Created over 9 years ago
  • Updated 21 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🚀 @1995parham Linux / OSx configurations files

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 osx

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 21 Dec 2023. ✅

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

The username is always set to parham.

Elahe

  • tantive-iv: MacBook Pro (17,1) given by Snapp, and it should return to them when I decide to leave. The last macOS installation happened on 14 Oct 2023. ✅

    Type Value
    System MacBookPro17,1 (Z11B000E3LL/A)
    Processor Apple M1 8 (4 performance and 4 efficiency)
    Memory LPDDR4 - Hynix - 16 GB
  • sandcrawler: MacBook Pro (17,1) given by Snapp, and it should return to them when Elahe decide to leave. The last macOS installation happened on dawn of the time. 🗑ī¸

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

More Repositories

1

github-do-not-ban-us

GitHub do not ban us from open source world 🇮🇷
JavaScript
11,780
star
2

koochooloo

Make your URLs shorter (smaller) and more memorable in Go
Go
82
star
3

no-sanction

remove unfair sanctions by changing your services 🇮🇷
38
star
4

krtp

node.js implementation of rtp, rtcp protocols. RFC 3550
TypeScript
34
star
5

awesome-tile38

😎 A list of awesome tile38 software and resources
33
star
6

buffalo.zsh

Buffalo web framework zsh plugin
Shell
31
star
7

gosimac

Fetch the wallpaper from Bing, Unsplash, etc.
Go
29
star
8

react-canvas-gauges

React Canvas Gauges Component based on Canvas gauges
JavaScript
29
star
9

linkedlist

The first generic linked list in go 💃
Go
29
star
10

saf

Using NATS Jetstream as queue manager to replace RabbitMQ, etc.
Go
28
star
11

radiojavan.sh

download your favorite musics from radiojavan 👨‍🎤
Shell
24
star
12

1995parham

The frontend of myself 🙈
19
star
13

TFAT

TOs kernel FAT16 & FAT32 filesystem parser and handler
C
19
star
14

cheshmhayash

NATS Visualization Dashboard
Less
17
star
15

1995parham.github.io

1995parham's homepage
CSS
16
star
16

TOs

TOs kernel written just for fun
C
16
star
17

FlashTrie.go

Flash Trie: Beyond 100-Gb/s IP Route Lookup Using Hash-Based Prefix-Compressed Trie
Go
16
star
18

shecan.sh

Use shecan in bash with ease
Shell
15
star
19

fesghel

Make your URLs shorter (smaller) and more memorable in Rust
Rust
15
star
20

tiles

Tile38 Shard Utility, the controller and query router for sharded clusters
Go
15
star
21

1995parham.pdf

1995parham's RÊsumÊ 📜
TeX
15
star
22

awesome-fibonacci

😎 Fibonacci sequence in every language by every algorithm
Go
14
star
23

naz.vim

Naz Neovim Theme đŸĨē
Lua
14
star
24

Platform101

Introduction to Internet of Things Platforms 🙈🎈
TypeScript
11
star
25

Napi101

Let's learn N-API (Native API of NodeJS 8.7.0)
C
11
star
26

nvim-remote

🕹ī¸ Support for --remote and friends, actively maintained https://github.com/mhinz/neovim-remote
Python
10
star
27

ELBoT

Yet Another Telegram Bot Library
Python
10
star
28

tile38-chart

Helm chart for tile38
Smarty
9
star
29

vim-spice

Simple syntax highlighting for spice
Vim Script
9
star
30

elievim

neovim configuration based on cosyvim 🙈🎈💌
Lua
8
star
31

rust101

Easy to understand applications with rust just for having fun 😌
Rust
8
star
32

exercism.go

Exercism Go Track Solution
Go
7
star
33

Kernel-Training

My kernel learning and testing repository 😂
C
6
star
34

Loghat

Merriam Webster Go Client
Go
6
star
35

MeInBSc

Who I was when I had been trying to get my BSc degree between 2013-2017. 😭
HTML
6
star
36

TBMap

Tiny Bitmap Parser
C
6
star
37

vim-header

Easily adds brief author info and license headers
Python
5
star
38

cnn-c-cuda

Simple Convolutional Neural Network in C and CUDA
C
5
star
39

vim-zimpl

Zimpl vim syntax highlighting
Vim Script
5
star
40

vim-tcpdump

Simple syntax highlighting for tcpdump command output
Vim Script
5
star
41

qtelnet

Telnet like application based on the Quic protocol
Go
5
star
42

zamaneh

Manage your working periods with ease
Rust
5
star
43

taeftar

🌴 How long is remaining until "eftar"
CSS
5
star
44

dotfiles.lib

library for having awesome dotfiles
Shell
5
star
45

stopwatch

Online stopwatch without bullshit ⏲ī¸
TypeScript
5
star
46

eltravel

Travel Agency in Golang
Go
4
star
47

koi

Generic Goroutine and Worker Manager based on https://github.com/mehditeymorian/koi
Go
4
star
48

happyMGO

MongoDB Official Go Driver Examples
Go
4
star
49

ventoy.json

@ventoy configuration
4
star
50

chalesh

ArvanCloud Recruitment Challenge
C
4
star
51

loser-scraper

Scrapes twitter and sends updates to your email
Go
4
star
52

AUT-FPGA-Challenge

Amirkabir university FPGA competition judge (RS232 Phase)
C
3
star
53

Fouter

Funny Router 😂
Go
3
star
54

echo.rs

Echo server in Rust
Rust
3
star
55

neshan-rs

@NeshanMaps rust client
Rust
3
star
56

vuace

Vue Ace Editor Plugin
JavaScript
3
star
57

OpenTrax

Open source implementaion of TRAX game
Java
3
star
58

ddns.sh

Dynamic DNS based on simple script and a git repository 😂
Shell
3
star
59

jrtp

Arduino implementation of rtp protocol. RFC 3550
C++
3
star
60

FlyNest

Amirkabir SDN Network Controller based on Beehive
Go
3
star
61

channel-calculator

Automate the water channel calculation in Java
Java
3
star
62

ubuntu-okd

Kubernetes tools for OKD (origin-client, helm, kubectl, etc)
Shell
3
star
63

homebrew-tap

The home of @1995parham brew packages
Ruby
2
star
64

AlteraDE2-RS232

RS232 Setup on AlteraDE2
Verilog
2
star
65

AUT-Trax-Player

Simple AI for Trax game in C
C
2
star
66

Loole

Linux pipes (Named-UnNamed) binding for node.js
C++
2
star
67

dotdroid

How to setup your android phone or dotfiles but for android ☎ī¸
1
star
68

LFSR.go

Go Implementation of Linear Feedback Shift Register
Go
1
star
69

Cherting

Chert Learning Switch
Java
1
star
70

exercism.rs

Exercism Rust Track Solution
Rust
1
star
71

Crackmes

Reverse engineering problems solved from crackmes.de
Assembly
1
star
72

vim-gas

Advanced syntax highlighting for GNU As based on Shirk/vim-gas
Vim Script
1
star
73

herkoole

Knapsack Problem with Genetic Algorithm
Jupyter Notebook
1
star
74

AUT-CoDesign.c

AUT Team CoDesign Material for FPGA Challenge in C (Spring 2016)
C
1
star
75

TCP-Flow-Spy

A simple kernel module to collect tcp flow statistics.
C
1
star
76

InputBuffer.go

Input Buffer Switching fabric simulator
Go
1
star