Custom ConfigΒΆ
LayoutΒΆ
.
βββ emacs
β βββ ...
βββ gcp-ssh-script.sh
βββ starship.toml
βββ vscode
β βββ ...
βββ wezterm.lua
VSCode ConfigΒΆ
VSCode - LayoutΒΆ
.
βββ extensions.txt
βββ install-extensions.sh
βββ keybindings.json
βββ settings.json
βββ snippets
βββ python.json
VSCode - DetailsΒΆ
The core of your pre-defined VSCode configuration is defined here.
In
extensions.txt
, you can define any extension you may need. Extensions will be downloaded from source using thecode
CLI (VSCode CLI).This is referenced in modules/darwin/home-manager and modules/linux/home-manager.
In
keybindings.json
, you define any keybindings for your VSCode configuration. These are only applied in your Darwin config (this makes sense because you will usually SSH to your server, not run VSCode directly there).Referenced in modules/darwin/files.
In
settings.json
, you define any settings for your VSCode configuration.Referenced in modules/darwin/files.
In
snippets
, you define any settings for your VSCode snippet configuration.Referenced in modules/darwin/files.
Note:
Since keybindings and settings are made mutable for seamless editing directly through VSCode, they will not be automatically updated in this folder. This means perfect reproducibility is lost. If you define new extensions, keybindings, or settings, you should periodically copy them back here.
To keep your configuration up to date:
Copy your current extensions into
extensions.txt
. For example, from your home directory:code --list-extensions > nixos-config/modules/shared/config/vscode/extensions.txt
Copy the files from
/Users/${user}/Library/Application Support/Code/User/
tonixos-config/modules/shared/config/vscode/
. For example:cp "Library/Application Support/Code/User/keybindings.json" nixos-config/modules/shared/config/vscode/keybindings.json cp "Library/Application Support/Code/User/settings.json" nixos-config/modules/shared/config/vscode/settings.json
Starship ConfigΒΆ
I use Starship as a cross shell customizable prompt. It allows the same design wether you are on zsh
, bash
or others.
This implementation follow the issue HugoHakem/nix-os.config#17
I like it because it can detect
nix-shell
,pixi-shell
ordirenv
and many more.It is enabled in modules/shared/programs.nix and in modules/darwin/home-manager.nix, modules/linux/home-manager.nix.
WezTerm ConfigΒΆ
A very basic WezTerm configuration (almost the default). This is provided as an example of how to set up your WezTerm config. For more details, please visit the official documentation.
Some blogs or GitHub repositories you might find useful for customizing your WezTerm config:
GCP SSH ScriptΒΆ
Script to automate the ProxyCommand
in an SSH Host Config. Please refer to the Remote SSH section in gcp-installation.md.
Emacs ConfigΒΆ
Emacs - LayoutΒΆ
.
βββ config.org
βββ init.el
βββ README.md
Emacs - DetailsΒΆ
This is where the core of the Emacs configuration is defined.
Disclaimer:
Currently, I have paused using Emacs in favor of VSCode. Additionally, Emacs builds slowly on GCP, and I prefer this configuration to be general-purpose (and, admittedly, Emacs has a smaller user base).
However, enabling Emacs is straightforward: simply uncomment any code under
# EMACS UTILITIES
.
The current configuration is adapted from dustinlyons. I may switch to a different configuration, such as the moby server or AlΓ‘nβs.
I may also enable my simple Doom config or even the original doom.
I may eventually move away from Emacs to try Vim. A simple Vim config is already present in programs, adapted from dustinlyons. I may also take inspiration from neovim, AstroNvim, or NixVim from Ank.