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
|
{
config,
pkgs,
...
}:
{
home.packages = with pkgs; [
aider-chat
basedpyright
customPackages.llmPython.llm # llm and claude support
delve
dive # explore layers in docker images
docker
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"
];
}
|