frostplexx / dotfiles

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GitHub License GitHub Issues or Pull Requests GitHub top language GitHub last commit (branch)

Dotfiles for macOS 14+ and Arch Linux running Hyprland

Used Software

Shared

Type Name
Text Editor Neovim
Terminal kitty
Terminal File Manager yazi
Better ls eza
Better cd zoxide
System Info fastfetch
Fuzzy Finder fzf
Music Player Spotify with Spicetify
Git Client lazygit
Terminal Multiplexer tmux
Chat Client vesktop
System Info fastfetch

macOS Specific

Type Name
Browser Arc
Package Manager homebrew
Window Manager yabai
Hotkey Manager skhd
Borders JankyBorders

Linux Specific

Type Name
Wallpaper Daemon swww
Browser Firefox
AUR Helper paru
App Launcher Rofi
Screenshot Utility hyprshot
Notification Daemon/Control Center Sway Notification Center
Lockscreen App hyprlock
Idle Daemon hypridle
Power Menu App wlogout
WiFi Menu iwdrofimenu
Bluetooth Manager bluetui
Window Manager Hyprland

Prerequisites

Required

  • zsh
  • eza
  • bat
  • zoxide
  • python 3.X
  • fzf
  • stow
  • ripgrep
  • ffmpegthumbnailer
  • unzip
  • jq
  • poppler
  • fd
  • zoxide
  • mpv

Optional

  • homebrew (for macOS)
  • paru (for Arch)
  • neovim
  • lazygit
  • tmux
  • npm
  • yazi

Additionally, the .zshrc will load the following plugins from /opt/homebrew/share/ for macOS:

dotfiles/.zshrc

Lines 182 to 188 in 95ba570

# Set up fzf and zoxide
eval "$(zoxide init --cmd cd zsh)"
eval "$(fzf --zsh)"
# Plugins. They need to be loaded differently depending on if its macos or Linux
source /opt/homebrew/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
source /opt/homebrew/share/zsh-autosuggestions/zsh-autosuggestions.zsh
source /opt/homebrew/share/zsh-autopair/autopair.zsh

and from /usr/share/zsh/ for Linux:

dotfiles/.zshrc

Lines 191 to 195 in 95ba570

# Plugins. They need to be loaded differently depending on if its macos or Linux
source ~/.zsh-autopair/autopair.zsh
autopair-init
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh

Additionally, for Linux zsh-autopairs will be loaded from ~/.zsh-autopair/autopair.zsh as it has to be installed manually. The macOS paths will be loaded with the assumption that the plugins got installed through homebrew. Similarly, Linux assumes the plugins got installed using paru.

Installation

macOS Specific

Coming soon

Linux Specific

Coming soon

Shared

This repo is using GNU stow to manage the dotfiles. Simply clone this repo to your home directory using git clone https://github.com/frostplexx/dotfiles.git ~/dotfiles. Then run stow . inside dotfiles, and it will automatically symlink everything to the right place.

Inside the scripts folder there are some extra scripts that help with setting up macOS.

  • brew_backup_restore.sh will let you back up and reinstall homebrew packages
  • tweak_macOS.sh speeds up some macOS animations and sets some finder settings
  • install_font.sh will install JetBrains mono nerd font

Aliases

Aliases are defined in .config/aliasrc.

alias http-server="ifconfig en0 |grep inet |awk '{print $2}'; python -m http.server"
alias python=python3
alias pip=pip3
alias vim=nvim # Add vim alias
alias v=nvim # Neovim quick alias
alias g=lazygit # Add lazygit alias
alias c=clear
alias q=exit
alias add-ssh-host="~/.config/tmux/scripts/tmux-sshionizer.sh -a"
alias tk="tmux kill-session"
# More aliases for other apps
alias ls="eza --icons --git --header"
alias cat="bat --theme=base16-256"
alias tree="eza --icons --git --header --tree"
alias vimdiff="nvim -d"

Tools

A Description of some of the tools I use.

Neovim

Getting Started

This section will explain how to install this neovim config and set it up for swift development. Most of the Swift development part of this config was taken from this tutorial in addition to using xcodebuild.

Requirements

For General Usage

  • Neovim nightly
  • Git
  • JetbrainsMono Nerd Font (or any other NerdFont)
  • lazygit
  • ripgrep
  • glow (Markdown preview)
  • fd (find files)

Swift Specific

  • xcode-build-server
  • XCode
  • xcodegen
  • swiftlint
  • swiftformat
  • xcbeautify

Installation

Backup your old config (Optional)

# required
mv ~/.config/nvim{,.bak}

# optional but recommended
mv ~/.local/share/nvim{,.bak}
mv ~/.local/state/nvim{,.bak}
mv ~/.cache/nvim{,.bak}

Clone the repo

git clone https://github.com/Frostplexx/vim-config.git ~/.config/nvim

Set up .ideavimrc (Optional)

This config also includes my .ideavimrc file. Symlink it to your home folder with the following command:

ln -s ~/.config/nvim/.ideavimrc ~/.ideavimrc

And install the IdeaVim plugin in your IDE.

Configure

The most important post install configuration you have to do is set the path for codelldb inside /nvim/lua/plugins/dap.lua on line 32. Download codelldb VS Code plugin from: HERE. For more info about debugging see here

Hyprland

Requirements

  • ly
  • hyprland
  • dunst
  • swww
  • rofi
  • pamixer
  • polkit-gnome
  • thunar
  • wl-clipboard
  • wf-recorder
  • wlogout
  • playerctl
  • cliphist

About

License:MIT License


Languages

Language:HTML 90.9%Language:Shell 7.5%Language:C++ 1.1%Language:Lua 0.3%Language:JavaScript 0.1%Language:CSS 0.1%Language:Makefile 0.0%Language:Vim Script 0.0%Language:Python 0.0%