Skip to content

Commit 1b17b50

Browse files
post: journal week starting 23 February 2026
1 parent d6b90f3 commit 1b17b50

1 file changed

Lines changed: 326 additions & 0 deletions

File tree

  • docs/posts/2026/february

docs/posts/2026/february/23.md

Lines changed: 326 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,326 @@
1+
---
2+
title: A Glimer of Sunshine
3+
date:
4+
created: 2026-02-23
5+
updated: 2026-02-23
6+
authors:
7+
- practicalli
8+
categories:
9+
- practicalli
10+
tags:
11+
- debian
12+
- clojure
13+
- neovim
14+
draft: false
15+
---
16+
17+
18+
The weather looks promising, so maybe a couple of rides during the week 🤞
19+
20+
At the end of March I planned to [start testing AstroNvim v6 and :fontawesome-brands-neovim: Neovim 0.12](#neovim) (for its up coming release). Looking at the migration guide though, it was so simple I started already. Now I am using AstroNvim v6 and Neovim nightly as the day to day setup.
21+
22+
I added the [:fontawesome-brands-github: Markdown language pack](https://github.com/AstroNvim/astrocommunity/tree/main/lua/astrocommunity/pack/markdown){target=_blank} to the Astronvim v6 config, which automatically installs treesitter parsers for markdown and the marksman language server. Marksman provides completion for heading when typing the `#` character, so correct in-page links are easy to create.
23+
24+
I finalised the [Debian Linux Post Install scripts](), separating each tool into its own script.
25+
26+
<!-- more -->
27+
28+
29+
## Neovim
30+
31+
AstroNvim is used as the base configuration for Neovim. AstroNvim turns Neovim in to a feature rich editor (IDE) whist still keeping the editor extremely fast and with near instant startup.
32+
33+
There is [:fontawesome-brands-github: a pull request containing AstroNvim v6 changes along with a migration guide](https://github.com/AstroNvim/AstroNvim/pull/2822){target=_blank}
34+
35+
### Preparing to Testing AstroNvim v6
36+
37+
The `dra` tool was used to download and install the Neovim AppImage from the Neovim GitHub repository releases.
38+
39+
As its a pre-release, the binary was installed for the current user in their `~/.local/bin` directory (which should already be on the execution path).
40+
41+
!!! NOTE "Shell script to install Nightly Neovim release for current user"
42+
```shell
43+
#!/usr/bin/env bash
44+
45+
# Install the pre-release version of Neovim from GitHub, for the current user
46+
47+
echo "# ---------------------------------------"
48+
echo "Neovim hyper-configurable editor - installed for all users in `/usr/local/bin`"
49+
# remove the existing nvim binary as DRA fails to override the file
50+
# sudo rm -f /usr/local/bin/nvim
51+
52+
# Install nvim.appimage nightly release tag and rename to nvim-nightly
53+
dra download --tag nightly --select nvim-linux-x86_64.appimage --install --output ~/.local/bin/nvim-nightly neovim/neovim
54+
55+
echo "# ---------------------------------------"
56+
echo ""
57+
```
58+
59+
60+
Clone a separate copy of [practicalli nvim-astro5](https://github.com/practicalli/nvim-astro5)
61+
62+
```shell
63+
git clone --depth=1 git@github.com:practicalli/nvim-astro5 ~/.config/nvim-astro6
64+
```
65+
66+
Change into the `nvim-astro6` directory and create a new git branch.
67+
68+
```shell
69+
git branch nvim-astro6
70+
```
71+
72+
73+
!!! EXAMPLE
74+
```shell-output
75+
❯ git branch nvim-astro6
76+
77+
❯ git branches
78+
* main 3341c1d snippet: update to year 2026 in post header
79+
nvim-astro6 3341c1d snippet: update to year 2026 in post header
80+
remotes/origin/HEAD -> origin/main
81+
remotes/origin/main 3341c1d snippet: update to year 2026 in post header
82+
83+
❯ git checkout nvim-astro6
84+
Switched to branch 'nvim-astro6'
85+
```
86+
87+
88+
Create a shell alias to launch neovim nightly with the astronvim v6 branch. This simplifies the command needed (and means I dont have to remember it).
89+
90+
I added the shell alias to the [practicalli/dotfiles shell-aliases](https://github.com/practicalli/dotfiles/blob/main/shell-aliases) file
91+
92+
!!! NOTE "Launch Neovim nightly with AstroNvim v6 config to test Practicalli customisations"
93+
```shell
94+
alias astro6="NVIM_APPNAME=nvim-astro6 nvim-nightly"
95+
```
96+
97+
### Update Config
98+
99+
Edited `lua/lazy_setup.lua` and commented line 4 which defined a `version` key for AstroNvim/AstroNvim plugin
100+
101+
Comment the `version` key and value (it will be changed to `version = ^6` once AstroNvim v6 is released).
102+
103+
Add a `branch` key with the value of `v6`.
104+
105+
!!! NOTE "Configure Astronvim plugin to use branch v6"
106+
```lua
107+
require("lazy").setup({
108+
{
109+
"AstroNvim/AstroNvim",
110+
-- version = "^5", -- Remove version tracking to elect for nightly AstroNvim
111+
branch = "v6", -- Use branch until AstroNvim v6 released
112+
--
113+
},
114+
--
115+
},
116+
} --[[@as LazyConfig]])
117+
```
118+
119+
!!! INFO "Initiall the branch was not set correctly, causing errors"
120+
[Testing AstroNvim v6](#testing-astronvim-v6) highlights errors that were caused because the branch was not set to v6.
121+
122+
123+
AstroNvim v6 uses newer versions of its three core plugins. A new plugin config is created to ensure the new versions are installed.
124+
125+
!!! NOTE "Created astronvim plugin file with specific versions"
126+
```lua title="lua/plugins/astronvim.lua"
127+
return {
128+
{ "AstroNvim/astrocore", version = false, branch = "v3" }
129+
{ "AstroNvim/astrolsp", version = false, branch = "v4" },
130+
{ "AstroNvim/astroui", version = false, branch = "v4" },
131+
}
132+
```
133+
134+
EDIT: Updated the AstroCommunity plugin spec to use v6.
135+
136+
!!! NOTE "Add branch v6 to AstroCommunity plugin spec"
137+
```lua title="lua/community.lua"
138+
---@type LazySpec
139+
return {
140+
-- "AstroNvim/astrocommunity", -- default release
141+
142+
{ "AstroNvim/astrocommunity", branch = "v6" }, -- AstroNvim v6
143+
}
144+
```
145+
146+
147+
148+
### Testing AstroNvim v6
149+
150+
!!! INFO "The AstroNvim branch was not set correctly, causing the following errors"
151+
[Testing AstroNvim v6](#testing-astronvim-v6) highlights errors that were caused because the branch was not set to v6.
152+
153+
AstroNvim v5 was installed due to the misconfiguration and had incompatibilities with the new implementation of Treesitter.
154+
155+
156+
157+
Ran `astro6` and then `SPC p a` to let neovim automatically update plugins and supporting development tools.
158+
159+
Ran a second update, `U`, from the Lazy popup to ensure everything was up to date.
160+
161+
162+
!!! EXAMPLE "Error in User Autocommands"
163+
```shell-output
164+
Error in User Autocommands for "LazyLoad":
165+
Lua callback: .../nvim-astro6/lazy/astrocore/lua/astrocore/treesitter.lua:38: attempt to call field 'get_installed' (a nil value)
166+
stack traceback:
167+
.../nvim-astro6/lazy/astrocore/lua/astrocore/treesitter.lua:38: in function 'installed'
168+
.../nvim-astro6/lazy/astrocore/lua/astrocore/treesitter.lua:128: in function 'load_op'
169+
.../share/nvim-astro6/lazy/astrocore/lua/astrocore/init.lua:232: in function <.../share/nvim-astro6/lazy/astrocore/lua/astrocore/init.lua:230>
170+
[C]: in function 'nvim_exec_autocmds'
171+
...hare/nvim-astro6/lazy/lazy.nvim/lua/lazy/core/loader.lua:368: in function <...hare/nvim-astro6/lazy/lazy.nvim/lua/lazy/core/loader.lua:367>
172+
```
173+
174+
My initial assumption is a package that doesnt like the new version of treesitter. Probably something from AstroCommunity.
175+
176+
Although I have a couple of other plugins from their GitHub repository.
177+
178+
179+
Error in User Autocommands for "LazyLoad":
180+
181+
!!! EXAMPLE "Error on Neovim startup - with many additional plugins"
182+
```shell-output
183+
Lua callback: .../nvim-astro6/lazy/astrocore/lua/astrocore/treesitter.lua:38: attempt to call field 'get_installed' (a nil value)
184+
stack traceback:
185+
.../nvim-astro6/lazy/astrocore/lua/astrocore/treesitter.lua:38: in function 'installed'
186+
.../nvim-astro6/lazy/astrocore/lua/astrocore/treesitter.lua:128: in function 'load_op'
187+
.../share/nvim-astro6/lazy/astrocore/lua/astrocore/init.lua:232: in function <.../share/nvim-astro6/lazy/astrocore/lua/astrocore/init.lua:230>
188+
[C]: in function 'nvim_exec_autocmds'
189+
...hare/nvim-astro6/lazy/lazy.nvim/lua/lazy/core/loader.lua:368: in function <...hare/nvim-astro6/lazy/lazy.nvim/lua/lazy/core/loader.lua:367>
190+
```
191+
192+
Asking in the Next channel on the AstroNvim discord community, the believed I should run `:Lazy update`
193+
194+
When using `astro6` to open the Practicalli dotfiles project, opening the `dev-.sh` file caused the following error.
195+
196+
```shell-output
197+
Failed to run `config` for mason-lspconfig.nvim
198+
199+
...roNvim/lua/astronvim/plugins/configs/mason-lspconfig.lua:4: module 'astrolsp.mason-lspconfig' not found:
200+
no field package.preload['astrolsp.mason-lspconfig']
201+
cache_loader: module 'astrolsp.mason-lspconfig' not found
202+
cache_loader_lib: module 'astrolsp.mason-lspconfig' not found
203+
no file './astrolsp/mason-lspconfig.lua'
204+
no file '/home/runner/work/neovim/neovim/.deps/usr/share/luajit-2.1/astrolsp/mason-lspconfig.lua'
205+
no file '/usr/local/share/lua/5.1/astrolsp/mason-lspconfig.lua'
206+
no file '/usr/local/share/lua/5.1/astrolsp/mason-lspconfig/init.lua'
207+
no file '/home/runner/work/neovim/neovim/.deps/usr/share/lua/5.1/astrolsp/mason-lspconfig.lua'
208+
no file '/home/runner/work/neovim/neovim/.deps/usr/share/lua/5.1/astrolsp/mason-lspconfig/init.lua'
209+
no file './astrolsp/mason-lspconfig.so'
210+
no file '/usr/local/lib/lua/5.1/astrolsp/mason-lspconfig.so'
211+
no file '/home/runner/work/neovim/neovim/.deps/usr/lib/lua/5.1/astrolsp/mason-lspconfig.so'
212+
no file '/usr/local/lib/lua/5.1/loadall.so'
213+
no file './astrolsp.so'
214+
no file '/usr/local/lib/lua/5.1/astrolsp.so'
215+
no file '/home/runner/work/neovim/neovim/.deps/usr/lib/lua/5.1/astrolsp.so'
216+
no file '/usr/local/lib/lua/5.1/loadall.so'
217+
218+
# stacktrace:
219+
- /AstroNvim/lua/astronvim/plugins/configs/mason-lspconfig.lua:4
220+
- /AstroNvim/lua/astronvim/plugins/lspconfig.lua:25 _in_ **config**
221+
- /astrocore/lua/astrocore/init.lua:119
222+
```
223+
224+
225+
### Fixing my config
226+
227+
I made a typo. in `lua/lazy_setup.lua` I added `branch = ^6` when I should have added `branch = v6`.
228+
229+
Everything seems to work now. There may be issues with specific plugins though. More time to test during the week.
230+
231+
232+
### Testing Extra Plugins and Tools
233+
234+
Using AstroNvim v6 for my every day tasks a simple way to start testing all the extra plugins and tools I use are working correctly.
235+
236+
As there have been changes in Treesitter, it is probable that those plugins would need updating.
237+
238+
239+
Issues:
240+
241+
- Neogit: two popup dialogs shown when deleting a hunk in the git status window
242+
243+
244+
Resolved:
245+
246+
- Marksman: I forgot to install the tool via Mason :face_palm:
247+
248+
249+
Working correctly:
250+
251+
- VM Visual Cursors
252+
253+
254+
## Debian Linux
255+
256+
Refining disk use by the default install
257+
258+
259+
### Remove unneeded locals
260+
261+
262+
!!! EXAMPLE "Current Locale configuration"
263+
```shell-output
264+
❯ locale
265+
LANG=en_GB.UTF-8
266+
LANGUAGE=en_GB:en
267+
LC_CTYPE="en_GB.UTF-8"
268+
LC_NUMERIC="en_GB.UTF-8"
269+
LC_TIME="en_GB.UTF-8"
270+
LC_COLLATE="en_GB.UTF-8"
271+
LC_MONETARY="en_GB.UTF-8"
272+
LC_MESSAGES="en_GB.UTF-8"
273+
LC_PAPER="en_GB.UTF-8"
274+
LC_NAME="en_GB.UTF-8"
275+
LC_ADDRESS="en_GB.UTF-8"
276+
LC_TELEPHONE="en_GB.UTF-8"
277+
LC_MEASUREMENT="en_GB.UTF-8"
278+
LC_IDENTIFICATION="en_GB.UTF-8"
279+
LC_ALL=
280+
281+
❯ cat /etc/default/locale
282+
# File generated by update-locale
283+
LANG="en_GB.UTF-8"
284+
LANGUAGE="en_GB:en"
285+
```
286+
287+
288+
289+
## Bash scripting
290+
291+
There are a long list of tests that can be used within an `if` statement when writing a bash script.
292+
293+
The Gnu Bash Manual describes [Conditional Expressions](https://www.gnu.org/software/bash/manual/html_node/Bash-Conditional-Expressions.html#Bash-Conditional-Expressions-1){target=_blank} in detail, as does the [test manual page](https://www.man7.org/linux/man-pages/man1/test.1.html){target=_blank}.
294+
295+
Commonly used tests include:
296+
297+
- ! expression: True if the expression is false.
298+
- -n string: True if the length of the string is greater than zero.
299+
- -z string: True if the length of the string is zero. That is, it's an empty string.
300+
- string1 = string2: True if string1 is the same as string2.
301+
- string1 != string2: True if string1 is not the same as string2.
302+
- integer1 -eq integer2: True if integer1 is numerically equal to integer2
303+
- integer1 -qt integer2: True if integer1 is numerically greater than integer2
304+
- integer1 -lt integer2: True if integer1 is numerically less than integer2
305+
- -d directory: True if the directory exists.
306+
- -e file: True if the file exists.
307+
- -s file: True if the file exists with a size of more than zero.
308+
- -r file: True if the file exists and the read permission is set.
309+
- -w file: True if the file exists and the write permission is set.
310+
- -x file: True if the file exists and the execute permission is set.
311+
312+
[Bash Conditional Expressions - Gnu Bash Manual](https://www.gnu.org/software/bash/manual/html_node/Bash-Conditional-Expressions.html#Bash-Conditional-Expressions-1){target=_blank .md-button}
313+
314+
[Linux manual page - test](https://www.man7.org/linux/man-pages/man1/test.1.html){target=_blank .md-button}
315+
316+
317+
---
318+
Thank you.
319+
320+
[:globe_with_meridians: Practical.li Website](https://practical.li){target=_blank .md-button}
321+
322+
[:fontawesome-brands-github: Practical.li GitHub Org](https://github.com/practicalli){target=_blank .md-button}
323+
[:fontawesome-brands-github: practicalli-johnny profile](https://github.com/practicalli-johnny){target=_blank .md-button}
324+
325+
[:fontawesome-brands-mastodon: @practicalli@clj.social](https://clj.social/@practicalli){target=_blank .md-button}
326+
[:fontawesome-brands-twitter: @practical_li](https://twitter.com/practcial_li){target=_blank .md-button}

0 commit comments

Comments
 (0)