Thu 05. March 2026 | 2026-03-05
Kill window/pane in tmux
<Prefix> & for killing a window
<Prefix> x for killing a pane
If there is only one pane (i.e. the window is not split into multiple panes, x would kill the window)
https://stackoverflow.com/questions/7771557/how-do-i-terminate-a-window-in-tmux
Usage for killing tmux windows/pane:
- if nvim freezes during
:<,>DiffviewFileHistory or something
Tue 03. March 2026 | 2026-03-03
Bash
Check existence
lpo() {
if [[ -f ".git/hooks/pre-push" ]]; then
echo ".git/hooks/pre-push was found:"
echo "pre-push is activated"
else
if [[ -f ".git/hooks/pre-push.sample" ]]; then
echo ".git/hooks/pre-push was not found:"
echo "but .git/hooks/pre-push.sample was found:"
echo "pre-push is deactivated"
else
echo "Hmmmmm"
fi
fi
}
Nvim edit file
po() {
if [[ -f ".git/hooks/pre-push" ]]; then
echo ".git/hooks/pre-push was found:"
nvim .git/hooks/pre-push
else
if [[ -f ".git/hooks/pre-push.sample" ]]; then
echo ".git/hooks/pre-push was not found:"
echo "but .git/hooks/pre-push.sample was found:"
nvim .git/hooks/pre-push.sample
else
echo "Hmmmmm"
fi
fi
}
Lua nvim edit file
function file_exists(name)
local f=io.open(name,"r")
if f~=nil then io.close(f) return true else return false end
end
function open_prepush()
if file_exists(".git/hooks/pre-push") then
vim.cmd("vsplit .git/hooks/pre-push")
elseif file_exists(".git/hooks/pre-push.sample") then
vim.cmd("vsplit .git/hooks/pre-push.sample")
else
vim.cmd("echo 'Hmmmmm'")
end
end
vim.keymap.set("n", "<leader><leader>po", open_prepush, { desc = "Open pre-push a new split" })
Wed 25. February 2026 | 2026-02-25
Print current date with Mac Shortcuts app





- Ctrl Alt a ---> 2026-02-25
- Ctrl Alt s ---> 25.02.2026
This card is mentioned in: https://useful-snippets.netlify.app/posts/autohotkey-replacements/
Wed 25. February 2026 | 2026-02-25
To activate pre-push, rename .git/hooks/pre-push.sample to .git/hooks/pre-push
Example script:
GREEN='\033[0;32m'
RED='\033[1;91m'
RESET='\033[0m'
branch_name="$(git branch --show-current)"
allowed_branch_name="my-branch"
if [ "$branch_name" != "$allowed_branch_name" ]; then
echo "Current branch: ${RED}${branch_name}${RESET}"
echo "Allowed branch: ${GREEN}${allowed_branch_name}${RESET}"
echo
echo "You can't push directly to this branch."
exit 1
fi
Insert the current branch into the top of the pre-push file
sed -i "" "s&An example&$(git branch --show-current)\n# An example&" .git/hooks/pre-push
Replace "An example" with current branch \n # An example
Copy current branch to Mac clipboard
echo $(git branch --show-current) | pbcopy
From vim:
:!echo $(git branch --show-current) | pbcopy
Mon 23. February 2026 | 2026-02-23
git reset --soft HEAD~1
Mon 26. January 2026 | 2026-01-26
VScode ...
Jetbrains - Live templates
live templates
(remove hyphens)
{-% for $ITEM$ in $LIST$ %-}
$END$
{-% endfor %-}
console.log("$VAR$", $VAR$)
Neovim - luasnippets / iabbrev ...
se neovim config
Mon 26. January 2026 | 2026-01-26
You can find all plugin settings at Preferences -> Editor -> General -> Code Completion -> Machine Learning-Assisted Completion -> Enable Full Line suggestions section.
https://plugins.jetbrains.com/plugin/14823-full-line-code-completion/documentation


Thu 22. January 2026 | 2026-01-22
Docs: https://docs.astral.sh/uv/
Install Python version: https://docs.astral.sh/uv/getting-started/features/#python-versions
uv python install <version>
Uninstall python version
uv python uninstall <version>
Initialize project
uv init
Set correct python version in .python-version
(re)-build venv
uv venv
Updates .venv files
Activate venv environment
source .venv/bin/activate
deactivate
Install dependencies from requirements.txt
uv pip install -r requirements.txt
Install one single dependency
uv python add <package>
Run package command
uv run <command>
Sun 11. January 2026 | 2026-01-11
cd /mnt/c/Users/Pål Stakvik
Fri 09. January 2026 | 2026-01-09
bash entry i docker-compose
service-name:
stdin_open: true
tty: true
Exec bash i Dockerfile / docker run:
Start interactive shell on container:
docker run -it?
Already running container:
docker exec -it [container-name] /bin/bash
Fri 09. January 2026 | 2026-01-09
GREEN='\033[0;32m'
RED='\033[1;91m'
RESET='\033[0m'
echo -e "${RED}Found errors:${RESET}"
echo -e "${GREEN}Success!${RESET}"
https://gist.github.com/JBlond/2fea43a3049b38287e5e9cefc87b2124
Regular Colors
| Value |
Color |
| \e[0;30m |
Black |
| \e[0;31m |
Red |
| \e[0;32m |
Green |
| \e[0;33m |
Yellow |
| \e[0;34m |
Blue |
| \e[0;35m |
Purple |
| \e[0;36m |
Cyan |
| \e[0;37m |
White |
Bold
| Value |
Color |
| \e[1;30m |
Black |
| \e[1;31m |
Red |
| \e[1;32m |
Green |
| \e[1;33m |
Yellow |
| \e[1;34m |
Blue |
| \e[1;35m |
Purple |
| \e[1;36m |
Cyan |
| \e[1;37m |
White |
Underline
| Value |
Color |
| \e[4;30m |
Black |
| \e[4;31m |
Red |
| \e[4;32m |
Green |
| \e[4;33m |
Yellow |
| \e[4;34m |
Blue |
| \e[4;35m |
Purple |
| \e[4;36m |
Cyan |
| \e[4;37m |
White |
Background
| Value |
Color |
| \e[40m |
Black |
| \e[41m |
Red |
| \e[42m |
Green |
| \e[43m |
Yellow |
| \e[44m |
Blue |
| \e[45m |
Purple |
| \e[46m |
Cyan |
| \e[47m |
White |
High Intensity
| Value |
Color |
| \e[0;90m |
Black |
| \e[0;91m |
Red |
| \e[0;92m |
Green |
| \e[0;93m |
Yellow |
| \e[0;94m |
Blue |
| \e[0;95m |
Purple |
| \e[0;96m |
Cyan |
| \e[0;97m |
White |
Bold High Intensity
| Value |
Color |
| \e[1;90m |
Black |
| \e[1;91m |
Red |
| \e[1;92m |
Green |
| \e[1;93m |
Yellow |
| \e[1;94m |
Blue |
| \e[1;95m |
Purple |
| \e[1;96m |
Cyan |
| \e[1;97m |
White |
High Intensity backgrounds
| Value |
Color |
| \e[0;100m |
Black |
| \e[0;101m |
Red |
| \e[0;102m |
Green |
| \e[0;103m |
Yellow |
| \e[0;104m |
Blue |
| \e[0;105m |
Purple |
| \e[0;106m |
Cyan |
| \e[0;107m |
White |
Reset
other styles
echo -e "\e[1mbold\e[0m"
echo -e "\e[3mitalic\e[0m"
echo -e "\e[3m\e[1mbold italic\e[0m"
echo -e "\e[4munderline\e[0m"
echo -e "\e[9mstrikethrough\e[0m"
echo -e "\e[31mHello World\e[0m"
echo -e "\x1B[31mHello World\e[0m"
Thu 08. January 2026 | 2026-01-08
bash script.sh iii
if [[ "$1" == "iii" ]]; then
echo "første parameter er iii"
else
echo "første parameter er ikke iii"
fi