diff --git a/.bashrc b/.bashrc index 9983e26..8ce9027 100644 --- a/.bashrc +++ b/.bashrc @@ -116,9 +116,6 @@ if ! shopt -oq posix; then fi fi -# ALIASES -alias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME' - # ENVIRONMENT VARIABLES export EDITOR="emacs" export TERM=xterm-256color diff --git a/.config/fish/config.fish b/.config/fish/config.fish index 90097af..737c4fc 100644 --- a/.config/fish/config.fish +++ b/.config/fish/config.fish @@ -35,9 +35,6 @@ alias gpg-check="gpg2 --keyserver-options auto-key-retrieve --verify" # receive the key of a developer alias gpg-retrieve="gpg2 --keyserver-options auto-key-retrieve --receive-keys" -# bare git repo alias for dotfiles -alias config="GIT_WORK_TREE=~ GIT_DIR=~/.cfg" - if [ "$TERM" = "linux" ] then printf %b '\e[40m' '\e[8]' # set default background to color 0 'dracula-bg' diff --git a/.config/kitty/dracula.conf b/.config/kitty/dracula.conf index 8bee635..8f05c52 100644 --- a/.config/kitty/dracula.conf +++ b/.config/kitty/dracula.conf @@ -60,3 +60,7 @@ inactive_tab_background #6272a4 # Marks mark1_foreground #282a36 mark1_background #ff5555 + +# Splits/Windows +active_border_color #f8f8f2 +inactive_border_color #6272a4 diff --git a/.gitignore b/.gitignore index 0aed936..2113cf5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -.cfg -*~ +.config/fish/fish_variables +.config/qt5ct/qt5ct.conf diff --git a/.gitmodules b/.gitmodules index b679129..485e52e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,96 +1,96 @@ [submodule ".vim/pack/themes/start/dracula"] path = .vim/pack/themes/start/dracula - url = git@github.com:dracula/vim.git - branch = master + url = git@github.com:dracula/vim.git + branch = master [submodule ".themes/dracula-blender"] path = .themes/dracula-blender url = git@github.com:dracula/blender.git - branch = master + branch = master [submodule ".themes/dracula-freecad"] path = .themes/dracula-freecad url = git@github.com:dracula/freecad.git - branch = master + branch = master [submodule ".themes/dracula-gnome-terminal"] path = .themes/dracula-gnome-terminal url = git@github.com:dracula/gnome-terminal.git - branch = master + branch = master [submodule ".themes/dracula-xournalpp"] path = .themes/dracula-xournalpp url = git@github.com:dracula/xournalpp.git - branch = master + branch = master [submodule ".themes/dracula-steam"] path = .themes/dracula-steam url = git@github.com:dracula/steam.git - branch = master + branch = master [submodule ".themes/dracula-gtk"] path = .themes/dracula-gtk url = git@github.com:dracula/gtk.git - branch = master + branch = master [submodule ".themes/dracula-fish"] path = .themes/dracula-fish url = git@github.com:dracula/fish.git - branch = master + branch = master [submodule ".themes/dracula-kitty"] path = .themes/dracula-kitty url = git@github.com:dracula/kitty.git - branch = master + branch = master [submodule ".themes/dracula-libreoffice"] path = .themes/dracula-libreoffice url = git@github.com:dracula/libreoffice.git - branch = master + branch = master [submodule ".themes/dracula-tty"] path = .themes/dracula-tty url = git@github.com:dracula/tty.git - branch = master + branch = master [submodule ".themes/dracula-latex"] path = .themes/dracula-latex url = git@github.com:dracula/latex.git - branch = master + branch = master [submodule ".themes/dracula-matplotlib"] path = .themes/dracula-matplotlib url = git@github.com:dracula/matplotlib.git - branch = master + branch = master [submodule ".themes/dracula-matlab"] path = .themes/dracula-matlab url = git@github.com:dracula/matlab.git - branch = master + branch = master [submodule ".xmonad"] path = .xmonad url = git@github.com:balajsra/xmonad.git - branch = master + branch = master [submodule ".themes/dracula-qbittorrent"] path = .themes/dracula-qbittorrent url = git@github.com:dracula/qbittorrent.git - branch = master + branch = master [submodule ".config/dwm-flexipatch"] path = .config/dwm-flexipatch url = git@github.com:balajsra/dwm-flexipatch.git - branch = master + branch = master [submodule ".themes/fallout-grub-theme"] path = .themes/fallout-grub-theme url = git@github.com:shvchk/fallout-grub-theme.git - branch = master + branch = master [submodule ".config/emacs"] path = .config/emacs url = git@github.com:plexus/chemacs2.git - branch = master + branch = main [submodule ".config/personal-emacs"] path = .config/personal-emacs url = git@github.com:balajsra/emacs.git - branch = main + branch = main [submodule ".config/doom-emacs"] path = .config/doom-emacs url = git@github.com:hlissner/doom-emacs.git - branch = develop + branch = master [submodule ".config/doom-emacs-config"] path = .config/doom-emacs-config url = git@github.com:balajsra/doom-emacs-config.git - branch = master + branch = master [submodule ".config/zathura"] path = .config/zathura url = git@github.com:dracula/zathura.git - branch = master + branch = master [submodule ".themes/matlab-schemes"] path = .themes/matlab-schemes url = git@github.com:scottclowe/matlab-schemes.git - branch = master + branch = master diff --git a/.scripts/stow-create.sh b/.scripts/stow-create.sh new file mode 100755 index 0000000..e0b4373 --- /dev/null +++ b/.scripts/stow-create.sh @@ -0,0 +1,3 @@ +#!/bin/bash +cd $HOME/.dotfiles/ +stow -v . diff --git a/.scripts/stow-remove.sh b/.scripts/stow-remove.sh new file mode 100755 index 0000000..b0a13e8 --- /dev/null +++ b/.scripts/stow-remove.sh @@ -0,0 +1,3 @@ +#!/bin/bash +cd $HOME/.dotfiles/ +stow -v -D . diff --git a/.stow-local-ignore b/.stow-local-ignore new file mode 100644 index 0000000..1df6e07 --- /dev/null +++ b/.stow-local-ignore @@ -0,0 +1,7 @@ +\.git +\.gitmodules +\.gitignore +\.config/fish/fish_variables +\.config/qt5ct/qt5ct\.conf +LICENSE +^/.*\.org diff --git a/.themes/dracula-gtk b/.themes/dracula-gtk index 6169497..6730ac1 160000 --- a/.themes/dracula-gtk +++ b/.themes/dracula-gtk @@ -1 +1 @@ -Subproject commit 6169497526d1929ac315dff5061be31c43643c0a +Subproject commit 6730ac1272801d7f18789b4a7caa070c9e6b8f93 diff --git a/.themes/dracula-kitty b/.themes/dracula-kitty index 2c543db..87717a3 160000 --- a/.themes/dracula-kitty +++ b/.themes/dracula-kitty @@ -1 +1 @@ -Subproject commit 2c543db51b68afe02157d90b6914ef74295707df +Subproject commit 87717a3f00e3dff0fc10c93f5ff535ea4092de70 diff --git a/README.org b/README.org index 4a11046..5d967a4 100644 --- a/README.org +++ b/README.org @@ -5,9 +5,14 @@ * Table of Contents :TOC_3:noexport: - [[#installation][Installation]] +- [[#dotfiles-configuration][Dotfiles Configuration]] + - [[#git-submodules][Git Submodules]] + - [[#ignoring-files-and-directories][Ignoring files and directories]] + - [[#gnu-stow-ignore][GNU Stow Ignore]] + - [[#git-ignore][Git Ignore]] + - [[#create-symbolic-links-with-gnu-stow][Create Symbolic Links with GNU Stow]] + - [[#remove-symbolic-links-with-gnu-stow][Remove Symbolic Links with GNU Stow]] - [[#git][Git]] - - [[#config][Config]] - - [[#dotfiles-ignore][Dotfiles Ignore]] - [[#notifications][Notifications]] - [[#dunst-notification-daemon][Dunst Notification Daemon]] - [[#global][Global]] @@ -100,74 +105,160 @@ See [[#acknowledgements][Acknowledgements]] for tutorial source. -Prior to the installation, create alias for config +Clone dotfiles into a ~.dotfiles~ folder in home directory. #+BEGIN_SRC shell -alias config="GIT_WORK_TREE=~ GIT_DIR=~/.cfg" +git clone $HOME/.dotfiles #+END_SRC -Add =.cfg= to ~.gitignore~ +Pull and update submodules. #+BEGIN_SRC shell -echo ".cfg" >> .gitignore +git submodule update --init --recursive --remote #+END_SRC -Clone dotfiles into a bare repository +Use [[https://www.gnu.org/software/stow/][GNU Stow]] to create symlinks. -#+BEGIN_SRC shell -git clone --bare $HOME/.cfg +* Dotfiles Configuration + +** Git Submodules + +#+BEGIN_SRC gitconfig :tangle .gitmodules +[submodule ".vim/pack/themes/start/dracula"] + path = .vim/pack/themes/start/dracula + url = git@github.com:dracula/vim.git + branch = master +[submodule ".themes/dracula-blender"] + path = .themes/dracula-blender + url = git@github.com:dracula/blender.git + branch = master +[submodule ".themes/dracula-freecad"] + path = .themes/dracula-freecad + url = git@github.com:dracula/freecad.git + branch = master +[submodule ".themes/dracula-gnome-terminal"] + path = .themes/dracula-gnome-terminal + url = git@github.com:dracula/gnome-terminal.git + branch = master +[submodule ".themes/dracula-xournalpp"] + path = .themes/dracula-xournalpp + url = git@github.com:dracula/xournalpp.git + branch = master +[submodule ".themes/dracula-steam"] + path = .themes/dracula-steam + url = git@github.com:dracula/steam.git + branch = master +[submodule ".themes/dracula-gtk"] + path = .themes/dracula-gtk + url = git@github.com:dracula/gtk.git + branch = master +[submodule ".themes/dracula-fish"] + path = .themes/dracula-fish + url = git@github.com:dracula/fish.git + branch = master +[submodule ".themes/dracula-kitty"] + path = .themes/dracula-kitty + url = git@github.com:dracula/kitty.git + branch = master +[submodule ".themes/dracula-libreoffice"] + path = .themes/dracula-libreoffice + url = git@github.com:dracula/libreoffice.git + branch = master +[submodule ".themes/dracula-tty"] + path = .themes/dracula-tty + url = git@github.com:dracula/tty.git + branch = master +[submodule ".themes/dracula-latex"] + path = .themes/dracula-latex + url = git@github.com:dracula/latex.git + branch = master +[submodule ".themes/dracula-matplotlib"] + path = .themes/dracula-matplotlib + url = git@github.com:dracula/matplotlib.git + branch = master +[submodule ".themes/dracula-matlab"] + path = .themes/dracula-matlab + url = git@github.com:dracula/matlab.git + branch = master +[submodule ".xmonad"] + path = .xmonad + url = git@github.com:balajsra/xmonad.git + branch = master +[submodule ".themes/dracula-qbittorrent"] + path = .themes/dracula-qbittorrent + url = git@github.com:dracula/qbittorrent.git + branch = master +[submodule ".config/dwm-flexipatch"] + path = .config/dwm-flexipatch + url = git@github.com:balajsra/dwm-flexipatch.git + branch = master +[submodule ".themes/fallout-grub-theme"] + path = .themes/fallout-grub-theme + url = git@github.com:shvchk/fallout-grub-theme.git + branch = master +[submodule ".config/emacs"] + path = .config/emacs + url = git@github.com:plexus/chemacs2.git + branch = main +[submodule ".config/personal-emacs"] + path = .config/personal-emacs + url = git@github.com:balajsra/emacs.git + branch = main +[submodule ".config/doom-emacs"] + path = .config/doom-emacs + url = git@github.com:hlissner/doom-emacs.git + branch = master +[submodule ".config/doom-emacs-config"] + path = .config/doom-emacs-config + url = git@github.com:balajsra/doom-emacs-config.git + branch = master +[submodule ".config/zathura"] + path = .config/zathura + url = git@github.com:dracula/zathura.git + branch = master +[submodule ".themes/matlab-schemes"] + path = .themes/matlab-schemes + url = git@github.com:scottclowe/matlab-schemes.git + branch = master #+END_SRC -Define the alias in the current shell scope +** Ignoring files and directories -#+BEGIN_SRC shell -alias config="GIT_WORK_TREE=~ GIT_DIR=~/.cfg" +*** GNU Stow Ignore + +#+BEGIN_SRC text :tangle .stow-local-ignore +\.git +\.gitmodules +\.gitignore +\.config/fish/fish_variables +\.config/qt5ct/qt5ct\.conf +LICENSE +^/.*\.org #+END_SRC -Checkout content from bare repository to ~$HOME~ +*** Git Ignore -#+BEGIN_SRC shell -config git checkout +#+BEGIN_SRC gitignore :tangle .gitignore +.config/fish/fish_variables +.config/qt5ct/qt5ct.conf #+END_SRC -Step above might fail with a message like: +** Create Symbolic Links with GNU Stow -#+BEGIN_EXAMPLE -error: The following untracked working tree files would be overwritten by checkout: - .bashrc - .gitignore -Please move or remove them before you can switch branches. -Aborting -#+END_EXAMPLE - -Delete the untracked files so they can be overwritten with the version from dotfiles - -#+BEGIN_SRC shell -rm ~/.bashrc ~/.gitignore +#+BEGIN_SRC shell :shebang #!/bin/bash :tangle .scripts/stow-create.sh +cd $HOME/.dotfiles/ +stow -v . #+END_SRC -Re-run checkout +** Remove Symbolic Links with GNU Stow -#+BEGIN_SRC shell -config git checkout -#+END_SRC - -Set the flag =showUntrackedFiles= to =no= on this specific (local) repo - -#+BEGIN_SRC shell -config git config --local status.showUntrackedFiles no -#+END_SRC - -Pull and update submodules - -#+BEGIN_SRC shell -config git submodule update --init --recursive --remote +#+BEGIN_SRC shell :shebang #!/bin/bash :tangle .scripts/stow-remove.sh +cd $HOME/.dotfiles/ +stow -v -D . #+END_SRC * Git -** Config - #+BEGIN_SRC gitconfig :tangle .gitconfig # Sravan Balaji's Git Configuration # Based on: https://gist.github.com/tdd/470582 @@ -243,14 +334,7 @@ config git submodule update --init --recursive --remote showUntrackedFiles = all #+END_SRC -** Dotfiles Ignore - -#+BEGIN_SRC gitignore :tangle .gitignore -.cfg -,*~ -#+END_SRC - -* Notifications +* Notifications ** Dunst Notification Daemon *** Global @@ -4051,9 +4135,6 @@ if ! shopt -oq posix; then fi fi -# ALIASES -alias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME' - # ENVIRONMENT VARIABLES export EDITOR="emacs" export TERM=xterm-256color @@ -4065,6 +4146,7 @@ clear pokemon-colorscripts -r echo "bash shell" #+END_SRC + *** Zsh #+BEGIN_SRC shell :tangle .zshrc @@ -4310,9 +4392,6 @@ alias rm='rm -i' alias gpg-check="gpg2 --keyserver-options auto-key-retrieve --verify" # receive the key of a developer alias gpg-retrieve="gpg2 --keyserver-options auto-key-retrieve --receive-keys" - -# bare git repo alias for dotfiles -alias config="GIT_WORK_TREE=~ GIT_DIR=~/.cfg" #+END_SRC **** TTY @@ -5850,7 +5929,12 @@ inactive_tab_background #6272a4 # Marks mark1_foreground #282a36 mark1_background #ff5555 + +# Splits/Windows +active_border_color #f8f8f2 +inactive_border_color #6272a4 #+END_SRC + *** Alacritty Configuration for Alacritty, the GPU enhanced terminal emulator. @@ -8231,5 +8315,7 @@ main $@ * Acknowledgements -I followed [[https://www.youtube.com/channel/UCVls1GmFKf6WlTraIb_IaJg][DistroTube]]'s process for setting up a git bare repository as shown in [[https://youtu.be/tBoLDpTWVOM][Git Bare Repository - A Better Way To Manage Dotfiles]]. +I previously used [[https://www.youtube.com/channel/UCVls1GmFKf6WlTraIb_IaJg][DistroTube]]'s process for setting up a git bare repository as shown in [[https://youtu.be/tBoLDpTWVOM][Git Bare Repository - A Better Way To Manage Dotfiles]]. He references [[https://www.atlassian.com/git/tutorials/dotfiles][The best way to store your dotfiles: A bare Git repository]] by [[https://www.durdn.com/][Nicola Paolucci]]. + +I have since switched to using [[https://www.gnu.org/software/stow/][GNU Stow]] as described in [[https://www.youtube.com/c/SystemCrafters][System Crafters]]' video called [[https://youtu.be/CxAT1u8G7is][Give Your Dotfiles a Home with GNU Stow]].