Skip to content

ejsadiarin/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Exquisite Configs

  • flexible, heavenly fast, and exquisite. A beautiful crossover of practicality and aesthetics.
  • mainly focused on having fast keymaps/keybindings with the least mental overhead possible
  • if you like this, you will surely love Wizardry: The Akashic Records of Technology
    • where all my knowledge, philosophy, scripts, magic spells, and configuration are archived.

NOTE (IMPORTANT READ):

  • my current setup (as of 2024-01-02 1:20 PM):

If you come from Reddit and you want to see/install the config of the image above

1. if you just want to SEE the configs look here:

2. If you want to INSTALL exquisite rice (excluding nvim and tmux configs):

  • install gh0stzk dotfiles first
  • copy/replace (use cp or symlink it) your whole ~/.config/bspwm for bspwm configs along with the rice config, ~/.config/alacritty for alacritty configs, ~/.zshrc for custom zsh (if you want the prompt) to the one in this repo ~/dotfiles/config, ~/dotfiles/.zshrc

Download Specific Configs

  • .ideavimrc
curl -o .ideavimrc https://raw.githubusercontent.com/ejsadiarin/dotfiles/3ae2a5d160f60e6fe4b3db79ec8610aae7dff5af/.ideavimrc

Installation

  • the install script is not yet fully functional, if you can try just backup your system :)

Pick your Route

  1. Whole BSPWM Rice Configuration (X11)

  2. Terminal/Development Environment Configuration only

    • this is my personal terminal configuration configured via ansible
    • configures nvim, tmux, kitty, zsh, and all terminal-related configs
    • also setups ssh, gpg, docker, git configs

      [!WARNING] if you pick this route, you are required to edit the /ansible/group_vars/all.yml and substitute your OWN ssh keys, gpg keys, timezone, etc. as variables otherwise, the script is not gonna run at all

Details

  • Arch / EndeavourOS
  • Bspwm (X11)
  • Polybar
  • Dunst
  • Rofi
  • Kitty
  • Firefox

Install Terminal Configuration (Personal Development Environment)

  • configures all terminal configs based on my own workflow:
    • nvim
    • tmux
    • kitty
    • zsh

Ansible (Personal Guide)

!! WARNING: If you want to go this route, carefully see the steps below:

  1. Before installing, check the group_vars/all.yml
    • go to group_vars/all.yml -> substitute your own ssh, gpg fields
      • create password file and encrypt for ssh and gpg as encrypted string (see ansible README)

Install Whole BSPWM Rice Configuration (X11)

  • Clone repository and install script
git clone https://github.com/ejsadiarin/dotfiles
  • Navigate to dotfiles
cd ~/dotfiles/
  • Make executable
chmod +x ExquisiteInstaller
  • Execute script
./ExquisiteInstaller

Git and SSH-agent

Post Installation (IMPORTANT!)

  • import and trust gpg keys
  • zsh, neovim, and tmux plugins are 'separately installed' so we just need to open them to install the necessary plugins

gpg keys

gpg --import public.gpg
gpg --import private.gpg # will prompt for password
gpg --edit-key <email> # will prompt for password
# then in the gpg-shell:
trust
5 # ultimate
y # confirm
save
exit # if save did not exit you to the gpg-shell

zsh

  • opening zsh will automatically install the plugins
zsh

neovim

  • opening nvim will also automatically install the plugins
    • do a :checkhealth after to see 'missing' deps, etc.
nvim

tmux

  • open tmux
tmux
  • source the .tmux.conf file inside tmux
cd
tmux source .tmux.conf
  • then install plugins with <prefix>+I

    • this config uses M-Space (or Alt-Space) as prefix
    • so do: M-Space + I (Alt-Space + I)

eww (if installing rice)

  • follow instructions on installing the binaries (not aur)

bswpwmrc ~/.config/bspwm/bspwmrc (if installing rice)

  • edit your xinput for laptop natural scrolling (google how to get your device id)

Packages

  • flameshot for exquisite screenshots
    • open configs with flameshot config
  • shotwell for proper image viewing
  • copyq - clipboard manager
  • redshift - redlight filter
  • auto-cpufreq
  • thunar - file manager

Additional Packages to install (from AUR or source binary install)

auto-cpufreq
# Install from source
git clone https://github.com/AdnanHodzic/auto-cpufreq.git
cd auto-cpufreq
sudo ./auto-cpufreq-installer
# enable it (this does the systemctl enable):
sudo auto-cpufreq --install

systemctl status auto-cpufreq
# or auto-cpufreq --stats
  • create auto-cpufreq.conf in /etc/:
cd /etc/
# create conf file
sudo touch auto-cpufreq.conf
sudo vim auto-cpufreq.conf
  • my preferred configs: turbo = never on powersave

Optional Apps to install

  • Discord
  • Zoom
    • in ~/.config/zoomus.conf: set enableMiniWindow=false to disable floating mini window

Pass (password manager, gpg keys, credentials, etc.)

IMPORTANT for Docker

pass
gpg --generate-key
# if you want to change expiry duration:
gpg --edit-key <generated-public-key>
expire
# you will be prompted for options (0 means no expiry, etc.)
0 # if you want
save
exit # if save did not exit you to the gpg-shell
pass init <generated-public-key>

Development

Docker:
  • source: https://docs.docker.com/engine/install/linux-postinstall/

    sudo pacman -S docker docker-compose
    paru -S docker-desktop
    • create the docker group (IF NECESSARY):
    sudo groupadd docker
    • add to user to docker group
    # check user
    echo $USER
    sudo usermod -aG docker $USER
    # log out and log back in to save (can also reboot if necessary)
    # check if docker is in groups:
    groups
    • start/enable docker.service
    sudo systemctl enable docker.service
  • check docker commands by running docker --help or docker-compose --help or man docker some useful commands:

    docker ps
    docker-compose ps
    • login to docker
    docker login -u <username>
  • Install .NET Packages
sudo pacman -S dotnet-runtime dotnet-sdk aspnet-runtime
  • Install VS Code and JetBrains Toolbox (Optional)
  • Install EF Core globally
Dotnet (C#/.NET)
  • Install EF Core globally
    dotnet tool install --global dotnet-ef
  • if in Linux, add /.dotnet/tools to PATH in ~/.bashrc or ~/.zshrc or any shell resource configs
    export PATH="$PATH:$HOME/.dotnet/tools"
  • Verify install of dotnet-ef
    dotnet ef

PostgreSQL

Install PostgreSQL

  • PostgreSQL (details: https://wiki.archlinux.org/title/PostgreSQL):

    sudo -S pacman postgresql
    • run postgres user:
    sudo -iu postgres
    • Initialize database cluster for PostgreSQL to function correctly:
    initdb --locale=C.UTF-8 --encoding=UTF8 -D /var/lib/postgres/data --data-checksums
    • Start and Enable the postgresql.service via systemctl:
    systemctl start postgresql.service
    systemctl enable postgresql.service
    • Create a database and Access the database shell

      • Become the postgres user.
      • Then add a new database role / user (optional, postgres user by default):
      [postgres]$ createuser --interactive
      • Then create a database:
      createdb myDatabaseName
      • If did not work: add -U postgres to the previous command
      • Access the database shell:
      psql -d myDatabaseName
      • Some helpful commands (inside postgres shell): Get help:
      => \help
      
      # List all databases:
      
      => \l
      
      # Connect to a particular database:
      
      => \c database
      
      # List all users and their permission levels:
      
      => \du
      
      # Show summary information about all tables in the current database:
      
      => \dt
      
      # Exit/quit the psql shell:
      
      => \q
      
      # or press Ctrl+d.
      
      # There are of course many more meta-commands, but these should help you get started. To see all meta-commands run:
      
      => \?
    • MORE INFO ON THE ARCH WIKI: https://wiki.archlinux.org/title/PostgreSQL


How to maintain?

REMEMBER: Most problems are user generated, DON'T BREAK YOUR OWN COMPUTER (Arch itself is stable)

  • Use timeshift for snapshots (backups)
  • DO THIS REGULARLY (from https://forum.endeavouros.com/t/a-complete-idiots-guide-to-endeavour-os-maintenance-update-upgrade/25184):
# update mirrorlist via EOS welcome
update the Arch mirrors
update the EOS mirrors

# OR manually:
  # update mirrorlist
  sudo reflector --protocol https --verbose --latest 25 --sort rate --save /etc/pacman.d/mirrorlist

  # update eos mirrorlist
  eos-rankmirrors --verbose

# update system
paru # or yay (depending on your AUR helper)

# clear journalctl
journalctl --vacuum-time=4weeks

# clean cache and all uninstalled packages (keep 3 versions by default)
paccache -ruk0

# remove orphans
pacman -Rns $(pacman -Qdtq)

SCRIPT info

  • auto move auto-cpufreq.conf to /etc/

config (~/.config/{selected_dir}):

  • bspwm/
  • alacritty/
  • eww/
  • neofetch/
  • nvim/lua/config
  • nvim/lua/plugins
  • ranger/
  • paru/
  • zsh/

home (~/{selected_dir}):

  • .zshrc
  • .ideavimrc
  • nightTab/

misc:

  • Code/settings.json (different dir since this is from the vscode profile)
  • applications/ranger.desktop (~/.local/share/applications/)
  • bin/ (~/.local/bin/)
  • firefox/ (~/.mozilla/firefox/*.default-release/) --> can be not symlinked
  • fonts/ (~/.local/share/fonts/)

Special Thanks to gh0stzk / z0mbi3

About

The Most Exquisite Dotfiles in the Universe.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published