Convert Figma logo to code with AI

nikitavoloboev logoconfig

Apps/CLIs/configs I use on macOS/iOS. Fish, Karabiner, Cursor..

20,488
843
20,488
1

Top Related Projects

55,502

A cross-platform, OpenGL terminal emulator.

81,533

Vim-fork focused on extensibility and usability

34,383

tmux source code

23,729

Cross-platform, fast, feature-rich, GPU based terminal

31,616

A new type of shell

The user-friendly command line shell.

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:

  1. Clone the repository:

    git clone https://github.com/nikitavoloboev/config.git
    
  2. Browse the repository to find configurations for tools you use.

  3. Copy the desired configuration files to their appropriate locations on your system.

  4. Modify the configurations as needed to suit your preferences and setup.

  5. 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

55,502

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.

81,533

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.

34,383

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
23,729

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).

31,616

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 Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

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.

Clean install / replicate my macOS fully

Read through this. It lists all settings I use on macOS, all apps I install with settings I use etc.

It's what I used to move from old mac to new one cleanly from scratch.

Some things like config file symlinking, alfred, KM macros moving is not yet documented/fully-shared but will be soon.

macOS Apps

Below is a list of all the apps & CLIs I use and how. Together with the config I use for everything.

Productivity

  • Karabiner is essential tool I use to remap my keyboard. It's the tool on which my entire mac workflow is built. Essentially all the 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.
  • Alfred for everything search related. I create many custom plugins to do specific searches I need. Also use Raycast.
  • Keyboard Maestro for all automation needs that are not search related. Both Alfred/Raycast/ScriptKit 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.
  • Notion for managing personal and organisational knowledge.
  • Transmission for downloading torrents.
  • 1Password to keep all passwords and secret info. I prefer to use Passkeys or Single Sign On via GitHub/Google.

Code

  • Cursor as my main code editor. It is a fork of VS Code but gives nice AI features I use often. 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.
  • Dash to search APIs fast.
  • Xcode to build iOS apps in SwiftUI.

Social

  • 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.

Design

  • Figma as my primary design tool.

Music

Video

  • IINA to play video files of movies/series.

Browsers

macOS CLIs

Use Brew and global Bun packages for most of my CLIs. Eventually want to settle down on Nix as I learn it more.

I'd love to keep my macOS declarative but it's currently not. I tried getting there with magefile.go but it's not up to date. Most likely be moved to chezmoi or written from scratch in Bun/Go.

I list CLIs I use here (out of date).

macOS Config

All config files are part of this repo. They include configs for fish, karabiner, git and more. Configs for tools I stopped using are in archive.

iOS Apps

I only use 2 active spaces on my phone without any folders to minimize hand movement. Everything is optimized for reachability and partly aesthetics. I nearly always use dark mode as I prefer it unless I am outside and it's hard to read the text.

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 my current and upcoming events. I click on the widget to open the app itself to make new events or see full week/month view of events.
  • App Store to search for apps to download and sometimes check and manually trigger updates for all apps as iOS does not often do it automatically.
  • Settings to connect to Wi-Fi mostly or tweak settings.
  • Files to search for files like books/PDFs/.. in ~/Documents and ~/Desktop.
  • Spark to check on mail. Don't have notifications set for emails.
  • GitHub to check on notifications, reply to issues or search for repos/issues.
  • Notion for managing personal and organisational knowledge.
  • Photos to see/search photos I took and saved. Love its Memories feature.
  • Google Maps for navigating around the world. Saving lists of places I want to visit and places I loved seeing.
  • Audible to listen to audio books.
  • Reddit to read new posts or do searches
  • Instagram to share photos/videos in form of stories/posts.
  • Notes to write down quick notes or ideas.
  • Overcast to listen to podcasts I like. I love its smart speed feature to cut out on silent pauses.
  • Reader to read PDFs/ePubs + RSS feeds.
  • X to read posts, search and messages
  • Perplexity to make search queries. Replacement for Google mostly.
  • Slack to check up on communities I am in. Prefer Discord.
  • Spotify to stream all my music and some exclusive podcasts.
  • Telegram to chat and read groups/channel updates.
  • Discord to check up on communities I am in.
  • Things to add todos. On macOS I use 2Do as its superior. In future, will only use LA Todos.
  • Safari for all web browsing. Keep top sites in bookmarks bar for fast access.
  • ChatGPT to ask questions of all kind (textual / audio / visual).
  • Trading 212 to to buy/sell stocks/ETFs.
  • 1Password to search for passwords/notes/..
  • Luma to check on events.
  • Tailscale to connect to my exit node server that I use as my VPN in places I need a VPN. Use Bitfolk for my server.
  • Bluesky to read posts.
  • Mastodon to read posts.
  • Solflare to send Solana. It also has Safari extension I use to connect to some Solana apps.
  • Phone to search for some contact or update some contact info or add new contact.
  • Skyscanner to search for flight tickets.
  • Booking to search for hotels to stay in.
  • Airbnb to search for rooms to stay in.
  • Wise as my primary bank. Sending money and checking on past transactions.
  • CapCut to edit videos
  • VSCO to edit photos
  • Pinterest to see posts and organise them into collections
  • YouTube to see/search videos
  • Uber to get a ride to some place
  • Glass to see photographs and post some
  • TikTok to see videos
  • Cosmos to see new posts

iOS Widgets

I use 3 widgets in lock screen.

  • Show upcoming event with Fantastical
  • Overcast play my Top playlist
  • Create new task with Things

I keep common shortcut actions as widgets on the side (just need to scroll left to access):

iOS Shortcuts

I color all shortcuts I use with gray color for consistency.

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.

And I mapped the action button to run Quick Note shortcut.

iOS Control Center

Here is how my control center looks:

Automation course

I describe my macOS/iOS setup in greater detail in my course.

And I describe my workflow in a lot of detail in wiki.

macOS/iOS Telegram group

I made a Telegram group to discuss all things macOS/iOS.

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 or new tools/apps.

Can open new issue (search existing issues first) or start discussion.

Join Discord for more indepth discussions on this repo and others.

🖤

Support on GitHub or look into other projects.

Discord X nikiv.dev