This commit is contained in:
Lennart J. Kurzweg (Nx2)
2024-06-03 16:59:11 +02:00
parent 52343cbc23
commit fce5f49e57
29 changed files with 373 additions and 554 deletions

29
home-modules/bash.nix Executable file
View File

@@ -0,0 +1,29 @@
{ pkgs, lib, user, ... }:
lib.mkIf (user != "tv")
{
home.packages = with pkgs; [
bash
];
programs.bash = {
enable = true;
shellAliases = {
ll = "ls -l";
la = "ls -a";
lla = "ls -la";
};
shellOptions = [
"histappend"
"checkwinsize"
"extglob"
"globstar"
"checkjobs"
];
enableCompletion = false;
# initExtra = ''
# if [[ $- == *i* ]] # if interactive
# then
# eval "$(${pkgs.starship}/bin/starship init bash)"
# fi
# '';
};
}

View File

@@ -27,7 +27,7 @@ lib.mkIf (user != "tv")
$(echo -e "$logo" | sed -n 6p): $(bash --version | head --lines 1 | cut -f -4 -d' ')
$(echo -e "$logo" | sed -n 7p): fish $(fish --version | rev | cut -f 1 -d' ' | rev)
$(echo -e "$logo" | sed -n 8p): ''$(uname -r)
$(echo -e "$logo" | sed -n 9p): ''${EDITOR}
$(echo -e "$logo" | sed -n 9p): $($EDITOR --version | head -n 1)
$(echo -e "$logo" | sed -n 10p): $(yazi --version)
$(echo -e "$logo" | sed -n 11p): $(starship --version | head -n 1)
"
@@ -88,7 +88,7 @@ lib.mkIf (user != "tv")
if not set -q IN_NIX_SHELL
nxfetch
end
${pkgs.starship}/bin/starship init fish | source
# ${pkgs.starship}/bin/starship init fish | source
# ${pkgs.any-nix-shell}/bin/any-nix-shell fish --info-right | source
'';
functions = {

View File

@@ -1,10 +1,12 @@
{ pkgs, ... }:
{ pkgs, pkgs-unstable, ... }:
{
# there also is a system module
home.packages = with pkgs; [
gnupg
gpg-tui
];
] ++ ( with pkgs-unstable; [
pinentry-all
]);
services.gpg-agent = {
enable = true;

View File

@@ -25,17 +25,17 @@ let
scale = "1.0";
};
left = {
name = "HDMI-A-3";
name = "HDMI-A-2";
resolution = "1920x1080";
position = "0x360";
scale = "1.0";
};
right = {
name = "HDMI-A-2";
resolution = "1920x1080";
position = "4480x360";
scale = "1.0";
};
# right = {
# name = "HDMI-A-2";
# resolution = "1920x1080";
# position = "4480x360";
# scale = "1.0";
# };
};
ace = {
main = {
@@ -82,7 +82,7 @@ lib.mkIf (user != "tv")
]) else (if host == "NxNORTH" then (with monitors.north; [
"${main.name}, ${main.resolution}, ${main.position}, ${main.scale}"
"${left.name}, ${left.resolution}, ${left.position}, ${left.scale}"
"${right.name}, ${right.resolution}, ${right.position}, ${right.scale}"
# "${right.name}, ${right.resolution}, ${right.position}, ${right.scale}"
]) else ( with monitors.ace; [
"${main.name}, ${main.resolution}, ${main.position}, ${main.scale}"
]));
@@ -91,7 +91,8 @@ lib.mkIf (user != "tv")
let
d1 = if host == "NxXPS" then monitors.xps.main.name else (if host == "NxNORTH" then monitors.north.main.name else monitors.ace.main.name);
d2 = if host == "NxXPS" then monitors.xps.second.name else (if host == "NxNORTH" then monitors.north.left.name else monitors.ace.main.name);
d3 = if host == "NxXPS" then monitors.xps.main.name else (if host == "NxNORTH" then monitors.north.right.name else monitors.ace.main.name);
d3 = if host == "NxXPS" then monitors.xps.main.name else (if host == "NxNORTH" then monitors.north.main.name else monitors.ace.main.name);
# d3 = if host == "NxXPS" then monitors.xps.main.name else (if host == "NxNORTH" then monitors.north.right.name else monitors.ace.main.name);
compact = "gapsin:0, gapsout:0, bordersize:1, rounding:false";
in
[

View File

View File

@@ -1,128 +0,0 @@
{ config, pkgs, inputs, system, rice, ... }:
{
imports = [
inputs.nixvim.homeManagerModules.nixvim
];
home.packages = [
pkgs.neovide
];
programs.nixvim = {
enable = true;
viAlias = true;
vimAlias = true;
clipboard.providers.wl-copy.enable = true;
options = {
number = true;
relativenumber = true;
shiftwidth = 2;
};
colorschemes.catppuccin = {
enable = true;
settings = {
mocha = {
base = "#ff0000";
};
disable_underline = true;
flavour = "mocha";
integrations = {
cmp = true;
gitsigns = true;
mini = {
enabled = true;
indentscope_color = "";
};
notify = false;
nvimtree = true;
treesitter = true;
};
styles = {
booleans = [
"bold"
"italic"
];
conditionals = [
"bold"
];
};
term_colors = true;
};
};
# colorschemes.base16 = {
# enable = true;
# setUpBar = true;
# colorscheme = "onedark";
# customColorScheme = {
# base00 = rice.color.background;
# base01 = rice.color.black.bright;
# base02 = rice.color.blue.base;
# base03 = rice.color.blue.bright;
# base04 = rice.color.cyan.base;
# base05 = rice.color.cyan.bright;
# base06 = rice.color.green.base;
# base07 = rice.color.green.bright;
# base08 = rice.color.magenta.base;
# base09 = rice.color.magenta.bright;
# base0A = rice.color.red.base;
# base0B = rice.color.red.bright;
# base0C = rice.color.white.base;
# base0D = rice.color.white.bright;
# base0E = rice.color.yellow.base;
# base0F = rice.color.yellow.bright;
# };
# };
opts = {
termguicolors = true;
};
globals = {
mapleader = " ";
};
plugins = {
telescope = {
enable = true;
extensions = {
fzf-native.enable = true;
};
keymaps = {
"<C-o>" = { action = "find_files"; };
"<leader>fg" = { action = "live_grep"; };
};
};
lightline = {
enable = true;
# colorscheme = "base16";
# active = {
# left = [
# ["mode" "paste"]
# ["readonly" "filename" "modified"]
# ];
# right = [
# [ "lineinfo" ]
# [ "percent" ]
# [ "fileformat" "fileencoding" "filetype" "charvaluehex" ]
# [ "git" ]
# ];
# };
};
nix.enable = true;
lsp-lines.enable = true;
lspkind.enable = true;
};
extraPlugins = [ ];
keymaps =
let
mkKeymap = mode: key: action: { inherit mode key action; };
mkKeymapWithOpts = mode: key: action: opts: (mkKeymap mode key action) // { options = opts; };
in
[
(mkKeymap "" "<Space>" "<Nop>")
(mkKeymap "n" "<leader>ff" "builtin.find_files")
];
};
}
## vl clipboard?

View File

@@ -1,46 +0,0 @@
local cmp = require('cmp')
local luasnip = require('luasnip')
require('luasnip.loaders.from_vscode').lazy_load()
luasnip.config.setup {}
cmp.setup {
snippet = {
expand = function(args)
luasnip.lsp_expand(args.body)
end,
},
mapping = cmp.mapping.preset.insert {
['<C-n>'] = cmp.mapping.select_next_item(),
['<C-p>'] = cmp.mapping.select_prev_item(),
['<C-d>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete {},
['<CR>'] = cmp.mapping.confirm {
behavior = cmp.ConfirmBehavior.Replace,
select = true,
},
['<Tab>'] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif luasnip.expand_or_locally_jumpable() then
luasnip.expand_or_jump()
else
fallback()
end
end, { 'i', 's' }),
['<S-Tab>'] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.locally_jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end, { 'i', 's' }),
},
sources = {
{ name = 'nvim_lsp' },
{ name = 'luasnip' },
},
}

View File

@@ -1,49 +0,0 @@
local on_attach = function(_, bufnr)
local bufmap = function(keys, func)
vim.keymap.set('n', keys, func, { buffer = bufnr })
end
bufmap('<leader>r', vim.lsp.buf.rename)
bufmap('<leader>a', vim.lsp.buf.code_action)
bufmap('gd', vim.lsp.buf.definition)
bufmap('gD', vim.lsp.buf.declaration)
bufmap('gI', vim.lsp.buf.implementation)
bufmap('<leader>D', vim.lsp.buf.type_definition)
bufmap('gr', require('telescope.builtin').lsp_references)
bufmap('<leader>s', require('telescope.builtin').lsp_document_symbols)
bufmap('<leader>S', require('telescope.builtin').lsp_dynamic_workspace_symbols)
bufmap('K', vim.lsp.buf.hover)
vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_)
vim.lsp.buf.format()
end, {})
end
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities)
require('neodev').setup()
require'lspconfig'.lua_ls.setup{}
-- require('lspconfig').lua_ls.setup {
-- on_attach = on_attach,
-- capabilities = capabilities,
-- root_dir = function()
-- return vim.loop.cwd()
-- end,
-- cmd = { "lua-lsp" },
-- settings = {
-- Lua = {
-- workspace = { checkThirdParty = false },
-- telemetry = { enable = false },
-- },
-- }
-- }
require('lspconfig').nixd.setup {
on_attach = on_attach,
capabilities = capabilities,
}

View File

@@ -1,16 +0,0 @@
require('telescope').setup({
extensions = {
fzf = {
fuzzy = true, -- false will only do exact matching
override_generic_sorter = true, -- override the generic sorter
override_file_sorter = true, -- override the file sorter
case_mode = "smart_case", -- or "ignore_case" or "respect_case" (the default case_mode is "smart_case")
}
}
})
require('telescope').load_extension('fzf')
local builtin = require('telescope.builtin')
vim.keymap.set('n', '<leader>ff', builtin.find_files, {})

View File

@@ -1,9 +0,0 @@
require('nvim-treesitter.configs').setup {
ensure_installed = {},
auto_install = false,
highlight = { enable = true },
indent = { enable = true },
}

View File

@@ -1,120 +0,0 @@
{ config, pkgs, pkgs-unstable, lib, user, rice, ... }:
let
toLua = str: "lua << EOF\n${str}\nEOF\n";
toLuaFile = file: "lua << EOF\n${builtins.readFile file}\nEOF\n";
theme = {
name = "base16-colorscheme";
package = pkgs-unstable.vimPlugins.base16-nvim;
};
in
lib.mkIf (user != "tv")
{
home.packages = with pkgs; [
neovide
];
programs.neovim = {
enable = true;
viAlias = true;
vimAlias = true;
vimdiffAlias = true;
extraPackages = with pkgs; [
# extra
wl-clipboard
# LSPs
nixd
lua-language-server
];
plugins = with pkgs.vimPlugins; [
nvim-lspconfig
nvim-cmp # A completion engine. Completion sources are installed from external repositories and "sourced".
cmp-nvim-lsp # cmp source: LSPs
luasnip # cmp source: LSPs
nvim-web-devicons # icons or some shit
friendly-snippets # a collention of snippets for many languages
neodev-nvim # configures lua-language-server for Neovim
vim-nix # Syntax highlighting, Filetype detection, Automatic indentation, NixEdit command: navigate nixpkgs by attribute name
telescope-nvim
telescope-fzf-native-nvim
lualine-nvim
comment-nvim
(nvim-treesitter.withPlugins (p: with p; [
tree-sitter-nix
tree-sitter-vim
tree-sitter-bash
tree-sitter-lua
tree-sitter-python
tree-sitter-json
tree-sitter-html
tree-sitter-css
tree-sitter-dockerfile
tree-sitter-ssh_config
tree-sitter-javascript
tree-sitter-gitignore
])
)
] ++ [ theme.package ];
extraLuaConfig = ''
-- Options
vim.keymap.set("n", "<Space>", "<Nop>")
vim.g.mapleader = " "
vim.g.maplocalleader = ' '
vim.o.clipboard = 'unnamedplus'
vim.o.number = true
vim.o.relativenumber = true
vim.o.signcolumn = 'yes'
vim.o.tabstop = 2
vim.o.shiftwidth = 2
vim.o.updatetime = 300
vim.o.termguicolors = true
vim.o.mouse = 'a'
-- Colorscheme
require('base16-colorscheme').setup({
base00 = '${rice.color.background}',
base01 = '${rice.color.black.bright}',
base02 = '${rice.color.blue.base}',
base03 = '${rice.color.blue.bright}',
base04 = '${rice.color.cyan.base}',
base05 = '${rice.color.cyan.bright}',
base06 = '${rice.color.green.base}',
base07 = '${rice.color.green.bright}',
base08 = '${rice.color.magenta.base}',
base09 = '${rice.color.magenta.bright}',
base0A = '${rice.color.red.base}',
base0B = '${rice.color.red.bright}',
base0C = '${rice.color.foreground}',
base0D = '${rice.color.white.bright}',
base0E = '${rice.color.yellow.base}',
base0F = '${rice.color.yellow.bright}',
})
require('base16-colorscheme').with_config({
telescope = true,
-- indentblankline = true,
-- notify = true,
-- ts_rainbow = true,
cmp = true,
-- illuminate = true,
-- dapui = true,
})
-- PLUGINS
require("Comment").setup()
require("lualine").setup({
icons_enabled = true,
theme = '${theme.name}',
})
require("Comment").setup()
${builtins.readFile ./nvim-lua/plugin/lsp.lua}
${builtins.readFile ./nvim-lua/plugin/cmp.lua}
${builtins.readFile ./nvim-lua/plugin/telescope.lua}
${builtins.readFile ./nvim-lua/plugin/treesitter.lua}
'';
};
}

View File

@@ -0,0 +1,7 @@
{ pkgs, lib, host, ... }:
lib.mkIf (host != "NxACE")
{
home.packages = with pkgs; [
nodejs
];
}

View File

@@ -1,7 +1,7 @@
{ config, pkgs, lib, system, user, allowed, secrets, ... }:
{ pkgs, lib, user, ... }:
lib.mkIf (user != "tv")
{
qt = {
platformTheme = "gtk";
};
}
}

23
home-modules/sops.nix Normal file
View File

@@ -0,0 +1,23 @@
{ user, inputs, ... }:
{
imports = [
inputs.sops-nix.homeManagerModules.sops
];
sops = {
# age.keyFile = "/home/${user}/.config/sops/age/keys.txt";
gnupg.home = "/home/${user}/.gnupg";
defaultSopsFile = ../sops-secrets.yaml;
# %r is $XDG_RUNTIME_DIR
secrets = {
"example" = {
path = "%r/secrets/example";
};
# "sops-age-private-key" = { # Bootstrapping doens't work
# mode = "0400";
# path = "/home/${user}/.config/sops/age/keys.txt";
# };
};
};
}

View File

@@ -1,16 +1,15 @@
{ config, pkgs, lib, system, user, allowed, secrets, ... }:
{ pkgs, lib, user, rice, ... }:
lib.mkIf (user != "tv")
{
home.packages = [
pkgs.starship
];
## gets sourced in fish.nix
programs.starship = {
enable = true;
settings = {
# enableBashIntegration = true;
enableFishIntegration = true;
settings = with rice.color; {
add_newline = false;
format = lib.strings.concatMapStrings (x: "$" + x) [
"jobs"
@@ -82,96 +81,83 @@ lib.mkIf (user != "tv")
"custom"
"sudo"
"cmd_duration"
"time"
# "time"
"status"
"container"
"shell"
"character"
];
aws.format = "[\\[$symbol($profile)(\\($region\\))(\\[$duration\\])\\]]($style)";
bun.format = "[\\[$symbol($version)\\]]($style)";
c.format = "[\\[$symbol($version(-$name))\\]]($style)";
cmake.format = "[\\[$symbol($version)\\]]($style)";
cmd_duration.format = "[\\[$symbol$duration\\]]($style)";
cobol.format = "[\\[$symbol($version)\\]]($style)";
conda.format = "[\\[$symbol$environment\\]]($style)";
crystal.format = "[\\[$symbol($version)\\]]($style)";
daml.format = "[\\[$symbol($version)\\]]($style)";
dart.format = "[\\[$symbol($version)\\]]($style)";
deno.format = "[\\[$symbol($version)\\]]($style)";
docker_context.format = "[\\[$symbol($context)\\]]($style)";
dotnet.format = "[\\[$symbol($version)(🎯 $tfm)\\]]($style)";
elixir.format = "[\\[$symbol($version \\(OTP $otp_version\\))\\]]($style)";
elm.format = "[\\[$symbol($version)\\]]($style)";
erlang.format = "[\\[$symbol($version)\\]]($style)";
gcloud.format = "[\\[$symbol$account(@$domain)(\\($region\\))\\]]($style)";
git_branch.format = "[\\[$symbol$branch:]($style)";
git_status.format = "([$all_status$ahead_behind]($style))(bold green)[\\]]($style)";
golang.format = "[\\[$symbol($version)\\]]($style)";
haskell.format = "[\\[$symbol($version)\\]]($style)";
helm.format = "[\\[$symbol($version)\\]]($style)";
hg_branch.format = "[\\[$symbol$branch\\]]($style)";
java.format = "[\\[$symbol($version)\\]]($style)";
julia.format = "[\\[$symbol($version)\\]]($style)";
kotlin.format = "[\\[$symbol($version)\\]]($style)";
kubernetes.format = "[\\[$symbol$context( \\($namespace\\))\\]]($style)";
lua.format = "[\\[$symbol($version)\\]]($style)";
memory_usage.format = "[\\[$symbol[$ram( | $swap)\\]]($style)";
meson.format = "[\\[$symbol$project\\]]($style)";
nim.format = "[\\[$symbol($version)\\]]($style)";
nix_shell.format = "[\\[󱄅 $state \\($name\\)\\]]($style)";
nodejs.format = "[\\[$symbol($version)\\]]($style)";
ocaml.format = "[\\[$symbol($version)(\\($switch_indicator$switch_name\\))\\]]($style)";
openstack.format = "[\\[$symbol$cloud(\\($project\\))\\]]($style)";
package.format = "[\\[$symbol$version\\]]($style)";
perl.format = "[\\[$symbol($version)\\]]($style)";
php.format = "[\\[$symbol($version)\\]]($style)";
pulumi.format = "[\\[$symbol$stack\\]]($style)";
purescript.format = "[\\[$symbol($version)\\]]($style)";
python = {
format = ''[\[''${symbol}''${pyenv_prefix}''${version}$virtualenv\]]($style)'';
symbol = " ";
};
raku.format = "[\\[$symbol($version-$vm_version)\\]]($style)";
red.format = "[\\[$symbol($version)\\]]($style)";
ruby.format = "[\\[$symbol($version)\\]]($style)";
rust.format = "[\\[$symbol($version)\\]]($style)";
scala.format = "[\\[$symbol($version)\\]]($style)";
spack.format = "[\\[$symbol$environment\\]]($style)";
sudo.format = "[\\[$symbol]\\]";
swift.format = "[\\[$symbol($version)\\]]($style)";
terraform.format = "[\\[$symbol$workspace\\]]($style)";
time.format = "[\\[$time\\]]($style)";
username.format = "[\\[$user\\]]($style)";
vagrant.format = "[\\[$symbol($version)\\]]($style)";
vlang.format = "[\\[$symbol($version)\\]]($style)";
zig.format = "[\\[$symbol($version)\\]]($style)";
directory = {
format = "[\\[]($style)[$lock_symbol]($lock_style)[$path\\]]($style)";
style = "cyan bold";
};
aws.format = "[\\[$symbol($profile)(\\($region\\))(\\[$duration\\])\\]](fg:${foreground})";
battery.format = "[\\[$symbol$percentage\\]](fg:${foreground})";
bun.format = "[\\[$symbol($version)\\]](fg:${foreground})";
c.format = "[\\[$symbol($version(-$name))\\]](fg:${foreground})";
character = {
format = "$symbol";
success_symbol = "[\\[󰽧\\]](bold white) ";
error_symbol = "[\\[\\]](bold red) ";
vimcmd_symbol = "[\\[\\]](bold green) ";
vimcmd_replace_one_symbol = "[\\[1\\]](bold green) ";
vimcmd_replace_symbol = "[\\[R\\]](bold green) ";
vimcmd_visual_symbol = "[\\[V\\]](bold green) ";
};
battery.format = "[\\[$symbol$percentage\\]]($style)";
shlvl.format = "[\\[$symbol$shlvl\\]]($style)";
singularity.format = "[\\[$symbol\\[$env\\]\\]]($style)";
jobs = {
format = "[\\[$symbol $number\\]]($style)";
number_threshold = 1;
};
vcsh.format = "[\\[vcsh [$symbol$repo\\]]($style)";
hostname = {
format = "[\\[$ssh_symbol$hostname\\]]($style)";
ssh_symbol = "󰖟 ";
ssh_only = true;
format = "$symbol ";
success_symbol = "[\\[󰽧\\]](${foreground})";
error_symbol = "[\\[\\]](${negative.base})";
vimcmd_replace_one_symbol = "[\\[1\\]](${special.base})";
vimcmd_replace_symbol = "[\\[R\\]](${special.base})";
vimcmd_symbol = "[\\[\\]](${special.base})";
vimcmd_visual_symbol = "[\\[V\\]](${special.base})";
};
cmake.format = "[\\[$symbol($version)\\]](fg:${foreground})";
cmd_duration.format = "[\\[$symbol$duration\\]](fg:${accent.bright})";
cobol.format = "[\\[$symbol($version)\\]](fg:${foreground})";
conda.format = "[\\[$symbol$environment\\]](fg:${foreground})";
crystal.format = "[\\[$symbol($version)\\]](fg:${foreground})";
daml.format = "[\\[$symbol($version)\\]](fg:${foreground})";
dart.format = "[\\[$symbol($version)\\]](fg:${foreground})";
deno.format = "[\\[$symbol($version)\\]](fg:${foreground})";
directory.format = "[\\[](fg:${accent.base})[$lock_symbol](${negative.base})[$path\\]](fg:${accent.base})";
docker_context.format = "[\\[$symbol($context)\\]](fg:${foreground})";
dotnet.format = "[\\[$symbol($version)(🎯 $tfm)\\]](fg:${foreground})";
elixir.format = "[\\[$symbol($version \\(OTP $otp_version\\))\\]](fg:${foreground})";
elm.format = "[\\[$symbol($version)\\]](fg:${foreground})";
erlang.format = "[\\[$symbol($version)\\]](fg:${foreground})";
gcloud.format = "[\\[$symbol$account(@$domain)(\\($region\\))\\]](fg:${foreground})";
git_branch.format = "[\\[$symbol$branch](fg:${secondary.base})";
git_status.format = "[:](fg:${secondary.base})[$all_status$ahead_behind](fg:${tertiary.base})[\\]](fg:${secondary.base})";
golang.format = "[\\[$symbol($version)\\]](fg:${foreground})";
haskell.format = "[\\[$symbol($version)\\]](fg:${foreground})";
helm.format = "[\\[$symbol($version)\\]](fg:${foreground})";
hg_branch.format = "[\\[$symbol$branch\\]](fg:${foreground})";
hostname.format = "[\\[󰖟 $hostname\\]](fg:${foreground})"; # ssh only by default
java.format = "[\\[$symbol($version)\\]](fg:${foreground})";
jobs.format = "[\\[$symbol $number\\]](fg:${foreground})";
julia.format = "[\\[$symbol($version)\\]](fg:${foreground})";
kotlin.format = "[\\[$symbol($version)\\]](fg:${foreground})";
kubernetes.format = "[\\[$symbol$context( \\($namespace\\))\\]](fg:${foreground})";
lua.format = "[\\[$symbol($version)\\]](fg:${foreground})";
memory_usage.format = "[\\[$symbol[$ram( | $swap)\\]](fg:${foreground})";
meson.format = "[\\[$symbol$project\\]](fg:${foreground})";
nim.format = "[\\[$symbol($version)\\]](fg:${foreground})";
nix_shell.format = "[\\[󱄅 $state\\($name\\)\\]](fg:${foreground})";
nodejs.format = "[\\[$symbol$version\\]](fg:${yellow.bright})";
ocaml.format = "[\\[$symbol($version)(\\($switch_indicator$switch_name\\))\\]](fg:${foreground})";
openstack.format = "[\\[$symbol$cloud(\\($project\\))\\]](fg:${foreground})";
package.format = "[\\[$symbol$version\\]](fg:${foreground})";
perl.format = "[\\[$symbol($version)\\]](fg:${foreground})";
php.format = "[\\[$symbol($version)\\]](fg:${foreground})";
pulumi.format = "[\\[$symbol$stack\\]](fg:${foreground})";
purescript.format = "[\\[$symbol($version)\\]](fg:${foreground})";
python.format = "[\\[ ](${blue.base})[$pyenv_prefix$version$virtualenv](${yellow.base})[\\]](fg:${blue.base})";
raku.format = "[\\[$symbol($version-$vm_version)\\]](fg:${foreground})";
red.format = "[\\[$symbol($version)\\]](fg:${foreground})";
ruby.format = "[\\[$symbol($version)\\]](fg:${foreground})";
rust.format = "[\\[$symbol($version)\\]](fg:${foreground})";
scala.format = "[\\[$symbol($version)\\]](fg:${foreground})";
shlvl.format = "[\\[$symbol$shlvl\\]](fg:${foreground})";
singularity.format = "[\\[$symbol\\[$env\\]\\]](fg:${foreground})";
spack.format = "[\\[$symbol$environment\\]](fg:${foreground})";
sudo.format = "[\\[$symbol]\\]";
swift.format = "[\\[$symbol($version)\\]](fg:${foreground})";
terraform.format = "[\\[$symbol$workspace\\]](fg:${foreground})";
time.format = "[\\[$time\\]](fg:${foreground})";
username.format = "[\\[$user\\]](fg:${foreground})";
vagrant.format = "[\\[$symbol($version)\\]](fg:${foreground})";
vcsh.format = "[\\[vcsh [$symbol$repo\\]](fg:${foreground})";
vlang.format = "[\\[$symbol($version)\\]](fg:${foreground})";
zig.format = "[\\[$symbol($version)\\]](fg:${foreground})";
};
};
}