This repo aims to create single simple source of all necessary system configuration file for all tools I need.
It is constantly updating and is not a place familiar with stability.
The future goal of this repo is to be reproducible on different operating systems. However for now this is not finished nor tested which is why sadly it only supports MS Windows (hence the name).
The main guts of this repo mostly contains configs for nushell and neovim. As of today windows does not support most of the frequently used shells and I am not really a huge fun of WSL so I decided to use nushell. The downside of this approach is that nushell does not come with fresh windows system (and we assume this repo is being installed on a fresh system in the first place) so writing a cross-platform nu bootstrap script is not an option. Thus this repo only contains the ps1 bootstrap and init scripts which are simple initialization scripts for downloading and installing all the necessary packages as well as creating all the necessary symlinks to all folders in this directory.
The list of packages to be installed can be found in a scoopfile
Here the general list of configured packages:
- Fzf
- Oh My Posh
- Power Toys
- Spicetify + SpotX
- Ttyper
- Vimium browser extension (that's just a simple little piece of backup)
- Zoxide
Note
This is not a comprehensive list of all the packages in a scoopfile. It is being constantly updated, and behaves similar to a living organism
To bootstrap the system run the bootstrap.ps1 script followed by init.ps1 script with names of tools you wish to link.
It's apparent that's a "chicken and an egg" problem may occur in the case of fresh system because the scoop is not yet installed however we need git in order to clone repo and run the bootstrap script.
The simple solution is to first just download the script manually (or via web request) then run it and it will do all dirty typing for us (The Chicken method).
This method can be run like this
iex "& { $(iwr -useb https://raw.githubusercontent.com/DavidTelenko/win-configs/main/.scripts/windows/bootstrap.ps1) } -All"Note
If you want to skip some packages you can combine -All option with the name of the package you want to skip installing configs for e.g -Pwsh skips the powershell config completely.
Note
If you want to only install some packages configs remove -All option and invoke the script with only the names of the packages you want to configure e.g passing only -Pwsh will configure only the powershell config for you.
Another solution is to manually install scoop, clone repo and run bootstrap with
a -SkipScoop parameter this will effectively do the same.
The names of the parameters for the bootstrap.ps1 is the following:
-All-Pwshor-PowerShell-Nvimor-Neovim-Helix-Lazygit-Wintermor-WindowsTerminal-Rio-Wezterm-Nushell-Alacritty-Broot-Mpv-Ttyper-Vencord-Musikcube-Keymapper-Kanata
If you left with some questions please take a look at a bootstrap.ps1 documentation by invoking this command in powershell help bootstrap.ps1 and help bootstrap.ps1 -examples
-
Power Toys - cannot be adequately configured using symlinks to its config files so we just use their own manual system of backing up stuff
-
Windows Terminal - its better not to sym or hard link config file to the file in the config directory, after all its the terminal emulator and some stuff tends to diverge in different computers, so this repo only contains most general settings of my liking
-
Vimium - it does not support any type of automated backup mechanic (as far as I know) so it's the same as with powertoys - manual import.
Still under construction, I have a todo which I just follow manually. At some point, I'll spend a day or two cooking up a single init.sh working for both arch and fedora based distros and OS windows.
As ghostty is a GTK application it suffers from some hardcoded input keybindings. To disable this go into /usr/share/applications and edit com.mitchellh.ghostty.desktop like this:
[Desktop Entry]
- Exec=ghostty
+ Exec=env GTK_IM_MODULE=none ghostty