Skip to content

My dotfiles, with Neovim working on Termux, Ubuntu 20.04, and EndeavorOS as well as other learning resources.

Notifications You must be signed in to change notification settings

FrostyNick/dotfiles

Repository files navigation

If you learn something, consider adding a star or commenting.

Preview

Setup showcase

What to see in this config

  • Neovim remaps, config and readme. Designed for EndeavorOS (pretty much Arch), Ubuntu, and Termux.
  • Bash aliases.
  • Vim like keymaps for newsboat and zathura.

File descriptions

See list
Legend

x = definitely works ! = supported with issues
ip = planning support
= not supported
%%% = not git pushed

Descriptions
Config file Description Ubuntu Termux Windows 10
~/.config/nvim/ Neovim config; powerful text editor / PDE x ! ip
~/.config/doom/ Doom Emacs config; IDE I rarely use; vim-like emacs x ?
~/.config/Vencord/ Vencord is a Discord client; injects javascript x x
~/.config/VencordDesktop/VencordDesktop/themes/ Vesktop is a desktop app for Vencord; by Vencord devs x x
~/.config/alacritty.toml Terminal emulator (made for speed; .toml conf) x x
~/.config/kitty/ Terminal emulator (no longer testing) x
~/.config/wezterm/ Terminal emulator (more features built-in; .lua conf) x x
~/.config/Kvantum/ Force dark mode on some apps x
~/.config/mimeapps.list Fix for i3 default links on Ubuntu x
~/.config/i3/ Window Manager for X11 compositor on Linux x
~/.config/picom.conf Compositor for X11; transparent windows, effects, etc. x
~/.config/screenkey.json See keys typed on screen x
~/.config/zathura/ Tiny vim-like PDF/epub/other viewer x
~/.termux/font.tff%%% Set default font in Termux x
~/.local/share/fonts/ Set default font in Ubuntu x
~/.fzf Fuzzy finder x !
~/.newsboat/ Terminal RSS+atom reader with vim keybinds in config x x
~/.bashrc Bash shell config x ?
~/.bash_aliases Aliases for bash shell x x
~/.profile Another startup file found by default in Ubuntu 20.04 x

Neovim config

See .config/nvim/ for learning Vim/Neovim or learning how the config works.

What's in this config?
  • leader + ? to see keyboard shortcuts from this config. (leader key is space)
  • Working LSP. Search LSP in leader + ? for LSP keybinds.
    • gr - rename variable based on code context. (it won't mess up other variables)
    • gd - go to definition.
  • Aggressively testing code and new plugins. Things might break once in a while.
  • Space = leader key.
  • Live server for web testing. leader + l + l - Toggle live server; there's no toggle in original plugin. Powered by barrett-ruth/live-server.nvim. Requires npm; yarn works too, see live-server readme and modify config.
  • Sane defaults for coding, tabs, etc.
  • Minimal look and feel.
  • Startup time is about 32ms.
    • "VeryLazy" is about 65ms (doesn't include plugins that aren't loaded yet).
    • Note: Benchmarks vary a lot. Startup time for neovim plugins are 5-20x slower on Windows compared to Linux for some reason if you somehow get it running there based on my rough testing (native nvim + Wezterm).
  • Several keybinds while being mindful about existing vim keybinds; especially if they're useful keybinds.
    • leader + , to see previous files. In vim, :bro ol is the shortest alternative.
    • leader + t to open terminal in a vertical split.
    • leader + b to switch/see buffers.
    • leader + z + d to get definition of a word. (Needs dependency dict to work and in some Linux distros you may also need another package for specifically the english/other-language part of dictionary.)
  • Uses the Lazy plugin manager.
  • 30+ plugins; plugin configuration is located in .../nvim/lua/frostynick/lazy.lua
    • Telescope, Treesitter - A must have for Neovim.
    • Treesitter textobjects - For now you can dif to delete inside a function, caf to delete around a function, etc. There's a lot of potential for this since it's just the start of this part of the config.
    • Use nvim surround for many new keybinds. Starts with ys "you surround"
    • Format markdown tables with :Tableize or leader + m + t. Preview markdown in the web with :MarkdownPreviewToggle or leader + m + m. Requires npm or possibly yarn with config changes.
    • Git fugitive. Access with leader + g + g
    • Neorg plugin.
    • Comment.nvim (gcc to comment current line; gc(motions) to select where to comment; many vim like shortcuts supported)
    • Zen mode, Harpoon, Lua line.
    • Much more.
  • Lua based plugins whenever it's better in speed or functionality.
  • Rose pine theme. (The Showcase screenshot is likely outdated if it has a different theme)

Install Nerd Fonts

For all the icons to be displayed correctly in the terminal, you will need to install a nerd font. (If you use WezTerm, note it has a nerd font pre-installed as a fallback and glyph characters, so no setup is needed with nerd fonts.)

Click Download on any of the fonts in the link below; they all contain nerd fonts.

NerdFonts Install

Place it in ~/.local/share/fonts and create the fonts folder if it doesn't already exist.

For my case I downloaded with cURL:

cd ~/.local/share/fonts
curl -OL https://github.com/ryanoasis/nerd-fonts/releases/download/v3.0.1/Mononoki.zip
unzip Mononoki.zip

After that, I changed the default fonts in the kitty terminal. In your case, see your config settings for your terminal if it doesn't apply on its own.

In Termux:

cd ~/.termux
curl -OL https://github.com/ryanoasis/nerd-fonts/releases/download/v3.0.1/Mononoki.zip
unzip Mononoki.zip
mv MononokiNerdFont-Regular.ttf font.ttf
termux-reload-settings
# Font should be changed on Termux now and neovim.

rm MononokiNerdFont*.ttf LICENSE.txt
rm Mononoki.zip

Contributing

I am open to discuss anything in issues or discussions. Other than that, feel free to learn and take any amount of code to tweak or do whatever you want.

Learn more about dotfiles

About

My dotfiles, with Neovim working on Termux, Ubuntu 20.04, and EndeavorOS as well as other learning resources.

Topics

Resources

Stars

Watchers

Forks