- Shell 100%
| .devcontainer | more changes, added new kitty theme | |
| .local/bin | more changes, added new kitty theme | |
| assets | Added preview pics | |
| config | more changes, added new kitty theme | |
| fonts | more changes and new fonts | |
| zsh | whoops forgot this too | |
| .gitignore | wow im forgetting a lot | |
| .shellcheckrc | rewrote printing messages to user | |
| CHANGELOG.md | fix weird code pt. 1 | |
| README.md | fix weird code pt. 1 | |
| shell-install.sh | fix weird code pt. 1 | |
My Linux dotfiles
These are my dotfiles for my Linux configs and ZSH.
Intended to be an opinionated (yet neutral) config that just works out of the box, while being easily customizable and easy to understand.
Goals/philosiphy:
- Shouldn't get in the way of your work
- Be familar and comfortable
- Easily customizble and extendable/modular
- Easy to learn/low learning curve (nothing so complex that users have to bend their backs to learn)
- Promote ease of work, quality of life, and convenience
- Have sensible defaults that works with most users
Please enjoy.
Previews
Nord Deep theme + neofetch
Base16 Ashes theme + neofetch
Nord Deep theme + htop
Table of contents
Why?
I wanted to showcase my configs in hopes that someone else can enjoy my work (and stealing from other ppl's dots lmao (credits are at the bottom of this file)).
This was also a perfect opportunity to learn Bash/Shell scripting.
Disclaimer
I'm kinda experienced in Bash/Shell scripting, but I'm still learning and getting the hang of stuff, so my code probably won't be the sexiest or most efficient, but it works.
Features
Shell script features:
- Lots of colors
- Interactive (and non-interactive with the
--serveroption) - Automation for deploying dotfiles:
- Installs needed dependencies (on supported distros)
- Installs ZSH plugins and then backup and overwrite user's zshrc
- Backs up user's current configs (in case they want to rollback)
- Overwrites user's configs with the ones in this repo
- Various distro support
- Debian/Ubuntu and its derivatives
- Arch Linux and its derivatives
- Fedora (via
dnf) and its derivatives - openSUSE Tumbleweed
- Void Linux
- NixOS/nix-pkgs
- More coming soon? (maybe)
TODO
- Fix bugs (this will probably never get completed but it's nice to dream)
shell-install.sh<- The file itself is done, but more improvements will follow- Deprecate and delete
deploy.sh.bakandscripts/- Make everything a function in
shell-install.sh - Make functions for printing info/notes, errors, and success messages
- Detect if the user is running x86_64 Linux in
dependencies(), and give an error if both aren't detected - Add fonts and automate installing fonts
- Add support for NixOS
- Add support for FreeBSD and OpenBSD
- Make everything a function in
- Upload a WM configs
- Make a script to automate installing the configs/dependencies
config/htop
htoprc
config/starship
config/starship/rounded.tomlconfig/starship/plain-text-symbols.tomlconfig/starship/michael.toml<- My own prompt, based off rxyhn's prompt
config/neofetch/
config.conf
config/kitty/
kitty.confthemes/<- Folder to contain color themes- More themes coming soon...
zsh/
configs/distro-aliases<- Aliases for package management- Arch Linux
- Debian/Ubuntu
- openSUSE
- RHEL/dnf
- Aliases
- User functions
- ZSH settings
zshrc
More coming soon...hopefully.
Installation guide
Install using the provided script
Clone the repo:
git clone --depth=1 https://github.com/michaelScopic/dotfiles
cd dotfiles
Script usage
Look at the possible arguments to use in the script by running:
- (
cdinto the dotfiles directory if you aren't already there)
./shell-install.sh help
# Not putting in an argument will do the same
./shell-install.sh
You can use the following arguments with this script: all, zsh, backup, fonts, overwrite, or info.
So if you want to run all of them, just do:
./shell-install.sh all
If you want to have a more minimal install, pass the --server option AT THE END of the command.
./shell-install.sh all --server
Installing manually
If you don't want to run this script and only copy what you want, then just browse config/ and/or zsh/ and do what you want from there.
Just keep in mind all the configs expect the correct needed directories and dependencies.
Getting help
Discord: michael_scopic
If you need help or if something does not work as expected, please contact me on Discord.
- NOTE: If you do contact me, please tell me that you found me from GitHub. I am extremely paranoid of who messages me, especially for people I don't know.
You can also open a GitHub issue, but do note that I could respond very late (I'm not active here).
Also please leave feedback and help me improve the script/configs.
Credits
Thank you r/unixporn community for inspiring me to rice desktops.
Rxyhn's starship prompt is from rxyhn's dotfiles, and I just tweaked the colors to match with any color scheme.
Rounded starship prompt (config/starship/rounded.toml) is from Syndrizzle's dotfiles, and I also tweaked the colors to match with any color scheme.
Plain text starship prompt (config/starship/plain-text-symbols.toml) are taken from Starship's official prompt presets.
My personal starship theme (config/starship/michael.toml) is based on rxyhn's prompt.
All fonts in fonts/ are from Nerdfonts.com.
The original zshrc and zsh/configs/zsh-settings.zsh are based on the .zshrc provided by ArchLabs (RIP).