1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
{
config,
pkgs,
...
}:
{
home.packages = with pkgs; [
aider-chat
basedpyright
customPackages.llmPython.llm # llm and claude support
delve
dive # explore layers in docker images
docker
docker-credential-helpers
go-tools # collection of tools, https://github.com/dominikh/go-tools
golangci-lint
gopls
nil # nix lsp
nix-direnv # integration with direnv
nixfmt-rfc-style # new formatter
python3
ruff
# ruff-lsp
rustup
uv
wireshark
];
# https://wezterm.org/config/lua/general.html
programs.wezterm = {
enable = true;
extraConfig = ''
local config = {}
if wezterm.config_builder then
config = wezterm.config_builder()
end
config.color_scheme = 'Catppuccin Macchiato'
config.scrollback_lines = 10000
config.font = wezterm.font("Source Code Pro")
config.font_size = 14.0
config.line_height = 1.0
config.window_frame = {
font = wezterm.font({ family = 'Source Code Pro', weight = 'Bold' }),
font_size = 11.0,
}
config.bold_brightens_ansi_colors = true
config.window_decorations = 'RESIZE|INTEGRATED_BUTTONS'
config.window_padding = { left = '0.5cell', right = '0.5cell', top = '0.5cell', bottom = '0.5cell' }
config.window_background_opacity = 0.97
config.macos_window_background_blur = 30
config.default_cursor_style = 'BlinkingBar'
local act = wezterm.action
config.keys = {
-- Override CMD+t to always start new tabs in the home directory.
{ key = 't', mods = 'SUPER', action = act.SpawnCommandInNewTab { cwd = wezterm.home_dir } },
}
config.audible_bell = "Disabled"
config.visual_bell = {
fade_in_duration_ms = 75,
fade_out_duration_ms = 75,
target = 'CursorColor',
};
config.term = "xterm-256color"
config.front_end = "WebGpu"
-- in order to access menu bar when in fullscreen
config.native_macos_fullscreen_mode = true
-- select the pane with the mouse
config.pane_focus_follows_mouse = true
-- Set initial size
config.initial_cols = 120
config.initial_rows = 36
-- Since we're managing the binary with nix, no need for this
config.check_for_updates = false
wezterm.on('update-status', function(window)
-- Grab the utf8 character for the "powerline" left facing
-- solid arrow.
local SOLID_LEFT_ARROW = utf8.char(0xe0b2)
-- Grab the current window's configuration, and from it the
-- palette (this is the combination of your chosen colour scheme
-- including any overrides).
local color_scheme = window:effective_config().resolved_palette
local bg = color_scheme.background
local fg = color_scheme.foreground
window:set_right_status(wezterm.format({
-- First, we draw the arrow...
{ Background = { Color = 'none' } },
{ Foreground = { Color = bg } },
{ Text = SOLID_LEFT_ARROW },
-- Then we draw our text
{ Background = { Color = bg } },
{ Foreground = { Color = fg } },
{ Text = ' ' .. wezterm.hostname() .. ' ' },
}))
end)
return config
'';
};
programs.go = {
enable = true;
goPath = ".local/share/pkg.go";
goBin = ".local/bin.go";
goPrivate = [
"github.rbx.com/*"
"github.com/fcuny/*"
];
};
home.sessionPath = [
config.home.sessionVariables.GOBIN
"${config.home.homeDirectory}/.local/bin"
];
}
|