Top Related Projects
Quick Overview
The nikitavoloboev/config repository is a comprehensive collection of configuration files and dotfiles for various tools and applications used by Nikita Voloboev. It serves as a personal setup and customization reference, showcasing configurations for tools like Neovim, Karabiner, Hammerspoon, and more.
Pros
- Extensive collection of configurations for a wide range of tools and applications
- Well-organized structure with separate directories for different tools
- Regularly updated with the latest configurations and customizations
- Serves as a valuable reference for users looking to optimize their own setups
Cons
- Highly personalized configurations may not suit everyone's preferences or workflows
- Lack of detailed documentation or explanations for some configuration choices
- Some configurations may be specific to macOS, limiting usefulness for users of other operating systems
- Potential for overwhelming new users due to the large number of configurations
Getting Started
As this is not a code library but a collection of configuration files, there's no specific installation process. However, users can follow these steps to make use of the configurations:
-
Clone the repository:
git clone https://github.com/nikitavoloboev/config.git
-
Browse the repository to find configurations for tools you use.
-
Copy the desired configuration files to their appropriate locations on your system.
-
Modify the configurations as needed to suit your preferences and setup.
-
Restart the applications or reload their configurations to apply the changes.
Note: It's recommended to back up your existing configurations before replacing them with those from this repository.
Competitor Comparisons
A cross-platform, OpenGL terminal emulator.
Pros of Alacritty
- Focused on performance and speed as a GPU-accelerated terminal emulator
- Cross-platform support (Linux, macOS, Windows, BSD)
- Actively maintained with frequent updates and improvements
Cons of Alacritty
- Limited customization options compared to Config's extensive dotfiles
- Steeper learning curve for users new to terminal emulators
- Lacks some features found in more traditional terminal applications
Code Comparison
Config (example of a shell configuration):
# Load custom aliases
source ~/.aliases
# Set custom prompt
PS1='\u@\h:\w\$ '
# Add custom path
export PATH=$PATH:~/bin
Alacritty (example of configuration in YAML):
window:
dimensions:
columns: 80
lines: 24
font:
normal:
family: Fira Code
style: Regular
colors:
primary:
background: '#1d1f21'
foreground: '#c5c8c6'
Summary
While Config provides a comprehensive set of dotfiles and configurations for various tools, Alacritty focuses specifically on being a high-performance terminal emulator. Config offers more extensive customization options across multiple applications, whereas Alacritty prioritizes speed and cross-platform compatibility for terminal usage.
Vim-fork focused on extensibility and usability
Pros of neovim
- Larger community and more active development
- Extensive plugin ecosystem and customization options
- Better performance and stability for large codebases
Cons of neovim
- Steeper learning curve for new users
- Requires more setup and configuration to achieve desired functionality
- Less opinionated, which may lead to decision fatigue for some users
Code comparison
config:
vim.opt.clipboard = "unnamedplus"
vim.opt.completeopt = "menuone,noselect"
vim.opt.ignorecase = true
vim.opt.smartcase = true
vim.opt.wildmode = "longest:full,full"
neovim:
vim.o.clipboard = "unnamedplus"
vim.o.completeopt = "menuone,noselect"
vim.o.ignorecase = true
vim.o.smartcase = true
vim.o.wildmode = "longest:full,full"
Summary
While config provides a curated and opinionated setup, neovim offers a more flexible and customizable environment. config may be easier for beginners to get started with, but neovim provides more advanced features and better performance for larger projects. The code comparison shows that both repositories use similar Lua syntax for configuration, with minor differences in the way options are set.
tmux source code
Pros of tmux
- Mature, widely-used terminal multiplexer with extensive documentation
- Actively maintained by a large community with frequent updates
- Highly customizable and extensible through plugins and scripts
Cons of tmux
- Steeper learning curve for new users
- Configuration can be complex and require more time to set up
- Limited to terminal-based environments
Code Comparison
tmux configuration example:
set -g mouse on
set -g status-style 'bg=#333333 fg=#5eacd3'
bind r source-file ~/.tmux.conf
set -g base-index 1
config configuration example:
tmux:
mouse: true
status-style:
bg: "#333333"
fg: "#5eacd3"
bind:
r: "source-file ~/.tmux.conf"
base-index: 1
Key Differences
- tmux is a standalone terminal multiplexer, while config is a collection of configuration files for various tools
- config aims to provide a unified configuration approach across multiple applications, including tmux
- tmux focuses solely on terminal session management, whereas config covers a broader range of tools and settings
Use Cases
- Choose tmux for a dedicated terminal multiplexer with advanced features and extensive customization options
- Opt for config if you want a comprehensive configuration setup for multiple tools, including tmux, in a single repository
Cross-platform, fast, feature-rich, GPU based terminal
Pros of kitty
- Fully-featured, standalone terminal emulator with GPU acceleration
- Cross-platform support (Linux, macOS, BSD)
- Extensive documentation and active community
Cons of kitty
- Larger codebase and more complex setup compared to config
- Focused solely on terminal emulation, not a general-purpose configuration tool
- Steeper learning curve for customization
Code comparison
kitty configuration example:
font_family Fira Code
font_size 12.0
cursor_shape beam
window_padding_width 5
config dotfiles example:
# Set up Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install packages
brew install git neovim tmux
Summary
kitty is a feature-rich terminal emulator with cross-platform support and GPU acceleration. It offers a comprehensive solution for terminal needs but has a steeper learning curve.
config is a collection of dotfiles and setup scripts, providing a broader scope for system configuration beyond just terminal emulation. It's more lightweight and easier to customize but lacks the specialized features of a dedicated terminal emulator like kitty.
The choice between the two depends on whether you need a full-featured terminal emulator (kitty) or a general-purpose configuration tool (config).
A new type of shell
Pros of nushell
- Comprehensive shell environment with built-in data processing capabilities
- Active development with frequent updates and improvements
- Cross-platform support (Windows, macOS, Linux)
Cons of nushell
- Steeper learning curve due to unique syntax and concepts
- May not be as customizable for personal workflows as config
- Potentially slower startup time compared to lightweight configurations
Code comparison
config:
# Example from nikitavoloboev/config
alias k="kubectl"
alias tf="terraform"
alias d="docker"
nushell:
# Example from nushell/nushell
alias k = kubectl
alias tf = terraform
alias d = docker
Key differences
- config focuses on personal dotfiles and configurations for various tools
- nushell is a complete shell environment with its own syntax and data structures
- config allows for easy customization of existing tools
- nushell provides a new approach to shell interactions and data manipulation
Use cases
config:
- Ideal for users who want to customize their existing shell environment
- Useful for sharing personal configurations across multiple machines
nushell:
- Suitable for users looking for a modern, data-oriented shell experience
- Beneficial for tasks involving structured data processing within the shell
The user-friendly command line shell.
Pros of fish-shell
- Complete, feature-rich shell with built-in functionality
- Active development with frequent updates and improvements
- Large community support and extensive documentation
Cons of fish-shell
- Larger codebase, potentially more complex to understand and modify
- Less customizable compared to a personal configuration repository
- May include features not needed by every user
Code Comparison
fish-shell:
int main(int argc, char **argv) {
SET_LOCALE_LOCK();
programname = L"fish";
wsetlocale(LC_ALL, L"");
fish_setlocale();
return fish_main(argc, argv);
}
config:
# Fish configuration
set -g fish_greeting
fish_vi_key_bindings
# Load custom functions
for file in ~/.config/fish/functions/*.fish
source $file
end
Summary
fish-shell is a comprehensive shell implementation with broad functionality and community support. config is a personal configuration repository, offering a more tailored but potentially less feature-rich experience. fish-shell provides a complete shell environment, while config focuses on customizing an existing shell setup. The choice between them depends on whether you need a full shell implementation or prefer to customize your existing environment.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Config (macOS / iOS)
Apps/CLIs/configs I use on macOS/iOS. Fish, Karabiner, Cursor..
Dark appearance. All apps are in one desktop since there is delay in switching between macOS multiple desktops. Dock is hidden.
Light appearance. Use light themes when outside or when there is glare from the sun as it makes text more readable.
iOS screens. All described in detail below.
- Replicate macOS setup
- macOS Apps
- macOS CLIs
- macOS Config
- iOS Apps
- iOS Widgets
- iOS Shortcuts
- iOS Control Center
- Discuss macOS/iOS
- Contribute
Replicate macOS setup
This lists all settings I use on macOS.
See .flox repo as it lists my global env setup for all executables/daemons I run.
There is currently no automated way to replicate below setup so you would have to manually download apps, symlink configs etc.
macOS Apps
This shows all apps I have in my /Applications
. Below is description of apps I do use:
- Karabiner is core tool I use to remap my keyboard. It's the tool on which my entire mac workflow is built. All keys on my keyboard are dual purpose keys. Press once, it enters the key, hold together with another key and do custom action. I have 100's of these custom actions all within 1 second of activation for me. i.e.
a+w
iscontrol+w
orw+k
opens Safari. See karabiner/karabiner.edn for config. - Alfred / Raycast for everything search related.
- Keyboard Maestro for all automation needs that are not search related. Both Alfred/Raycast and KM are activated from Karabiner directly. I share all my KM macros here. One example of KM macro is using AppleScript to switch between light/dark macOS appearances. As appearances are switched, the themes get updated accordingly on most apps.
- BetterTouchTool for custom trackpad gestures. Specifically love three finger swipe left/right to move between tabs in Safari. Three finger swipe up to create new tab. Three down to close. Four finger swipe global swipe to show Safari. Four to right to open Cursor. Four left to open Warp.
- Fantastical to manage my calendar and events.
- CleanShot for quick editing of screenshots/screencasts.
- Transmission for downloading torrents.
- 1Password to keep all passwords and secret info. I prefer to use Passkeys or Single Sign On via GitHub/Google.
- Cursor as my main code editor. Use many VSCode extensions with it. Keep my UI minimal and useful.
- Sublime Merge as visual Git client. It gives nice overview of files changed, what branches exist and more. I have custom actions bound to go through Git tasks fast.
- Warp as primary terminal together with Fish Shell. I also use Ghostty as side terminal for background servers and things.
- Dash to search APIs fast.
- Xcode Beta to write swift code.
- Telegram as my main messenger. Love its stickers, speed and simplicity.
- Discord as main way to interact with various communities.
- Spark as my email client. Does good job of sorting mail and getting out of my way when writing/replying to things.
- Figma as my primary design tool.
- Rive to do animations
- Spotify to stream all my music. Keep all my liked songs in a playlist.
- IINA to play video files of movies/series.
- Reflect to write/search notes and my daily journal + tasks
- Linear to make/check on issues across different teams (I power all GitHub issues of mine through Linear, all in one workspace)
- SnippetsLab for snippets
- Bike for thinking through tasks (outlining subtasks fast)
- Yaak for testing out HTTP requests
- GoLand preferred editor for Go code together with Cursor
- Safari as main browser for everything.
- Google Chrome Canary for web development as its dev tools are superior to Safari.
- Safari Technology Preview as browser for my X/Bluesky feeds and sometimes dev.
macOS CLIs
Mostly use Flox, Brew, Bun global packages for global executables.
macOS Config
All config files are part of this repo and they are symlinked from their original places into ~/src/config/..
.
This include configs for fish, karabiner and more.
iOS Apps
I minimize push notifications to nearly only messaging apps (Telegram/Discord/..). I also keep it nearly always on Do Not Disturb mode. Especially when I work on my mac and keep the phone on the side so as to not duplicate notifications.
Apps are listed in order they appear in each of the screens.
- Fantastical widget to see today's events, I tap on widget to open app itself to make/search events or see full week/month view of events
- Things widget to see today's tasks, I tap on widget to open app itself to make/search todos or see other todos for today
- Wikipedia to read some articles or see
nearby places
in wikipedia - Google Maps for navigating/searching the world, saving lists of places I want to visit and places I loved seeing
- Bluesky to read/write posts
- Spark to check on email, don't have notifications set for emails
- Mercury to transfer money from my main business/personal US banks
- Photos to see/search photos I took and saved, love its memories feature
- Reddit to read/make new posts or check on subreddits
- Instagram to share photos/videos in form of stories/posts (mostly posts)
- GitHub to make/check on issues/PRs or search for repos
- Linear to make/check on issues across different teams (I power all GitHub issues of mine through Linear, all in one workspace)
- X to read/make posts, search and private messages
- Reflect to write/search notes and my daily journal + tasks
- Slack to read messages from servers I am in
- Spotify to stream all my music and some occasional podcasts/books (prefer Overcast for podcasts)
- Telegram as my main messenger for private messages/groups + see some channels and use mini apps (use it to transfer TON as payment too)
- Discord to read messages from servers I am in + private messages
- Perplexity to make search queries that need some computed answers
- ChatGPT to ask questions, prefer Claude for general textual queries and real time voice in ChatGPT + O1 thinking model for bigger questions
- Safari for all web browsing, keep top sites in new tab bookmarks for fast access
- Claude to ask questions (goto AI model for questions)
- Photos widget with memories cycled, love seeing what Apple decides to surface from the library, often its nice memories
- Things Upcoming widget to see upcoming tasks, open it to enter new upcoming task or edit existing ones
- Skyscanner to search for flight tickets
- Booking to search for hotels to stay in
- Airbnb to search for rooms/places to stay in, sometimes use its experiences curation too
- Glass to see photos from some dedicated photographers without ads
- Warpcast too see/make posts in Farcaster
- Mastodon to read/make posts
- Wise to transfer money from my main personal EU bank
- Cosmos to see/makke/save new visual posts
- VSCO to edit photos
- CapCut to edit videos
- Pinterest to see posts and organise them into collections
- YouTube to see/search videos
- Airchat to talk with voice on voice only social network
- Threads to see/post visual content
- TikTok to see curated feed of videos
- Settings to check on some settings like WiFi
- Flighty widget to see upcoming flights, clicking on widget lets me enter a new flight (if it doesn't get picked up from email automatically)
- Fitness app to check on activity ring goals, how many steps I took and other activities
- Etsy to buy some items from marketplace
- Amazon to buy some items from marketplace
- Stripe to check on incoming transactions or other details
- Twitch to see past/live streams
- Proxyman to debug/inspect network traffic on phone (useful for learning how apps work)
- TestFlight to see app updates from apps I am currently testing
- VK to see posts
- LinkedIn to see posts or reply/send messages
- Kinopoisk to see movie/series reviews
- Goodreads to see book reviews
- Messages to see/reply to messages sent to me (don't use it as main messenger)
- WhatsApp to see/reply to messages sent to me (don't use it as main messenger)
- FilmNoir to track movies/series I saw on Trakt
- SnipKey to add new snippets so I can then quickly enter them from special SnipKey keyboard in all text inputs
- Jupiter to swap some Solana assets fast
- Element X to see some/reply to messages from groups I am in
- Streaks widget to see my habits progress at glance or tap on it to see it in detail or mark habits as done
- Weather widget to see current weather fast or tap on it to see detailed forecast for the day/week
- Trading 212 to buy/sell stocks/ETFs
- Tonkeeper to send or check on TON transactions or use it to connect to TON dApps
- Sui Wallet to send or check on Sui transactions or use it to connect to Sui dApps
- Solflare to send or check on Solana transactions or use it to connect to Solana dApps
- Google Meet to join/create video meetings
- WebSSH to SSH connect to my servers on the go and run some commands
- Figma to check on designs on the go
- Letterboxd to track movies I saw or want see and check on reviews
- Play 2 to prototype out designs for mobile
- 1Password to search for all private things (passwords/notes/..)
- App Store to search for apps and trigger app updates manually
- Reader to read articles from RSS feed mostly
- Notion to see/make pages made in workspaces
- Luma to track events I am making or want to attend
- Files to search for files in my cloud (mostly
~/Documents
or what's in~/Desktop
) - Anybox to check on links I added, use it's share sheet to bookmark things a lot (my fast ingest system from across iOS)
Apps that are not on 4 screens but I still use are:
- Wipr 2 as my main ad blocker
- Svadilfari for custom gestures in Safari
- Audible to listen to audio books (opened from shortcut)
- Overcast to listen to podcasts, I love its smart speed feature to cut out on silent pauses (opened from shortcut)
- Tailscale to connect to my exit node server that I use as my VPN in places I need a VPN
- Qewie to create/share QR codes
iOS Widgets
I use 3 widgets in lock screen.
- Show upcoming event with Fantastical (on tap opens app)
- Overcast play current playlist (on tap opens app)
- Create new task with Things on tap
The 2 action buttons on bottom in lock screen are create voice recording
and open ChatGPT
.
I keep common shortcut actions as widgets on the side (scroll left from lock screen or first home screen to access):
iOS Shortcuts
I mapped the action button to run Quick Note shortcut.
I color all shortcuts I use with gray color for consistency.
- Shortcuts opens Shortcuts app (so I can fast edit/search shortcuts)
- Translate opens Google Translate app (for fast translates of camera or text)
- Draw opens Freeform app (for fast sketching/drawing on the go)
- Phone opens Phone app (for searching, making new contacts or entering a phone number)
- Places opens list of options like
Parks/Restaurants/Cafes
and on tap opens search for them in Google Maps - AI opens Gemini app (nice to ask questions that needs Google know how)
- Workout opens Caliber app to start or view past workouts
- Lens opens Google Lens (to know what camera is point at or what the image represents)
- Ride/Food opens Uber app (to request food or ride)
- Todo opens Things with quick entry for creating a todo
- Overcast - instantly start playing the current podcast on my feed
- Tab - opens new tab in Safari
- Audible opens Audible app to listen to audiobooks
- Voice starts voice conversation with ChatGPT
- Recordings opens Voice Memos (to check on recordings I made)
- Listen opens ElevenReader to listen to books/texts
I use Test
shortcut to prototype new actions/ideas quickly. I then duplicate the working prototype & give it appropriate name. I use the same prototyping idea with KM macros.
iOS Control Center
Here is how my control center looks:
Discuss macOS/iOS
I made a Telegram group to discuss all things macOS/iOS. Karabiner related questions can be asked here.
And I have a personal Discord where you can for ask questions about this repo and others.
Contribute
Whilst this is a personal config/setup, I am always open to useful suggestions/ideas.
Can open new issue (search existing ones for duplicates first) or start discussion on GitHub or Discord.
Top Related Projects
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot