Awesome
<div align = "center"> <h1><a href="https://github.co/2kabhishek/dots2k">dots2k</a></h1> <a href="https://github.com/2KAbhishek/dots2k/blob/main/LICENSE"> <img alt="License" src="https://img.shields.io/github/license/2kabhishek/dots2k?style=flat&color=eee&label="> </a> <a href="https://github.com/2KAbhishek/dots2k/graphs/contributors"> <img alt="People" src="https://img.shields.io/github/contributors/2kabhishek/dots2k?style=flat&color=ffaaf2&label=People"> </a> <a href="https://github.com/2KAbhishek/dots2k/stargazers"> <img alt="Stars" src="https://img.shields.io/github/stars/2kabhishek/dots2k?style=flat&color=98c379&label=Stars"></a> <a href="https://github.com/2KAbhishek/dots2k/network/members"> <img alt="Forks" src="https://img.shields.io/github/forks/2kabhishek/dots2k?style=flat&color=66a8e0&label=Forks"> </a> <a href="https://github.com/2KAbhishek/dots2k/watchers"> <img alt="Watches" src="https://img.shields.io/github/watchers/2kabhishek/dots2k?style=flat&color=f5d08b&label=Watches"> </a> <a href="https://github.com/2KAbhishek/dots2k/pulse"> <img alt="Last Updated" src="https://img.shields.io/github/last-commit/2kabhishek/dots2k?style=flat&color=e06c75&label="> </a> <h3>Passionately Crafted CLI Setup 🐧❤️</h3> <figure> <img src="images/screenshot.png" alt="dots2k in action"> <br/> <figcaption>Terminal screenshot</figcaption> </figure> </div>What's this
My personal configs, passionately crafted for setting up an optimal CLI dev experience across platforms.
Inspiration
Hours and nights spent on the terminal, willingness to improve.
Setup
I made a recording for setting this up on an Ubuntu system
git clone https://github.com/2kabhishek/dots2k
cd dots2k
# Menu based interactive setup, recommended for beginners
./setup.sh
# Setup everything unattended
./setup.sh -a
If you plan to use this without using the setup script, make sure to install the recommended packages in the
setup.sh
script.
Git Setup
[!IMPORTANT] Make sure to change the
user.name
anduser.email
in the~/.gitconfig
file with your own or usegit config --global user.name "Your Name"
I use GPG signing for commits, check this for setting it up, or use
git config --global commit.gpgSign false
to disable it.
Fonts
I'll recommend Nerd Fonts, I'm using FiraCode.
Local Configs
Some configs are intentionally not included as they will vary based on every system.
For these, I recommend creating the ~/config/shell/local.sh
file, which you can edit using the loca
alias.
#!/bin/sh
export EDITOR=nvim
export CLIPCOPY=wl-copy
export CLIPPASTE=wl-paste
You can put all your local aliases, env vars and functions here.
Keybindings
dots2k comes with a lot of keybindings, here are some of them:
Included Configs
Shell
- bash - The bash shell.
- fish - fish shell configs.
- shell - Shell configuration scripts.
- aliases.sh - Aliases, shared across shells.
- environment.sh - Environment variables, shared across shells.
- functions.sh - Functions, shared across.
- zsh - zsh shell configs.
- .zshrc - Main zsh config, that loads required modules.
Development Tools
- bundle - A Ruby gem dependency manager.
- delta - A syntax-highlighting pager for git and diff output.
- git - Global git configurations.
- gitignore.global - Global gitignore settings, used in gitconfig.
- lazygit - A simple terminal UI for git commands.
- luarc - Configs for the Lua language.
- prettier - A code formatter.
- pry - A Ruby REPL.
- pystartup - Python startup configurations.
- reek - A code smell detector for Ruby.
- stylua - A Lua formatter.
- tmux - A terminal multiplexer.
- typos - A spell checker for code.
- vim - The original text editor.
System Tools
- bat - A cat clone with syntax highlighting and Git integration.
- cmus - A music player, with a custom theme.
- bluetuith - A Bluetooth TUI.
- dircolors - Sets up color definitions for GNU ls.
- htop - An interactive process viewer.
- inputrc - Configs for readline, used by bash and other CLI programs.
- ranger - A console file manager.
- topgrade - Upgrades all packages.
Terminal Emulators
- alacritty - A cross-platform, OpenGL terminal emulator.
- kitty - A GPU-based terminal emulator.
- konsole - The KDE terminal emulator and a nice color scheme.
Browser
- vimium - A browser extension for keyboard navigation.
- chrome - User styles for Chrome, used with Firefox.
Window Management
- autorandr - Manages display configurations on Xorg.
- compiz - A compositing window manager, configs for xfce.
- conky - A system widget.
- dmenu - A dynamic menu for X.
- fontconfig - Configures and customizes font access.
- greetd - A minimal login manager.
- i3 - A tiling window manager, comes with i3status.
- libinput-gestures - Binds gestures to commands.
- Xresources - Configurations for X applications.
The dots2k Universe
dots2k serves as a core for some of my other dev environments targeted for specific platforms, other tools have their own repos:
Platform Specific
- mac2k: Elevate your terminal game on macOS with mac2k
- win2k: Say goodbye to bland command lines on Windows
- termux2k: Supercharge your Android development on the go
Editor
- nvim2k: Neovim config for ultimate productivity and efficiency.
Tmux
- tmux2k: Pretty and functional theme for tmux.
- tmux-tilit: Add window manager-like capabilities to tmux.
- tmux-tea: Powerful tmux session management.
CLI Tools
- tdo: Simple and fast note taking.
- mkrepo: Easy and quick GitHub repo setup.
- ghpm: Manage all your GitHub repos.
- gsync: Seamlessly sync your git repos.
- cmtr: Commit changes quick.
- gitrim: Trim unnecessary files from git history.
Shell Prompts
- posh2k: Eye candy and power for your oh-my-posh based shells.
- starship2k: Fast and pretty shell with starship.
Browser
Window Management
- sway2k: Powerful and flexible window management with sway and Wayland.
- awesome2k: Manage your windows with awesome and Xorg.
- rofi2k: Streamline your Linux workflow with rofi app launcher.
Themes
- BWnB: Slightly older theme for KDE and Windows 10.
- Nightbow: Pitch black theme for VS Code.
- refind2k: Pretty boot screen for multi-boot users.
How I built it
I built dots2k with a lot of love and passion, a lot of sleepless nights. It's an ongoing project, and I'm always looking for ways to improve it.
Challenges faced
Getting over the initial learning curve on the command line, failing and trying again :)
What I learned
While building dots2k I have learned to love the command line, and it's efficiency, have discovered countless tools and techniques, which will serve me for the rest of my days.
What's next
Planning to add more tools, better management, always updating.
Hit the ⭐ button if you found this useful.
More Info
Find more cool configs and setups at GitHub does dotfiles
<div align="center"><a href="https://github.com/2KAbhishek/dots2k">Source</a> | <a href="https://github.com/2kabhishek/dots2k">Website</a>
</div>