My Linux dotfiles.
https://github.com/AnthonyCalandra/modern-cpp-features https://www.modernescpp.com/index.php/blog/ https://google.github.io/styleguide/cppguide.html https://github.com/cpp-best-practices/cppbestpractices https://isocpp.org/wiki/faq https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines https://learn.microsoft.com/en-us/cpp/cpp/?view=msvc-160 https://www.cppstories.com/2018/08/init-string-member/ https://clang.llvm.org/extra/clang-tidy/checks/list.html https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list https://cpppatterns.com/ https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html https://linux.die.net/man/1/gcc https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md https://stackoverflow.com/questions/5088460/flags-to-enable-thorough-and-verbose-g-warnings/9862800#9862800 https://clang.llvm.org/docs/DiagnosticsReference.html https://code-examples.net/en/tagged/c++?sort=votes https://en.wikibooks.org/wiki/More_C%2B%2B_Idioms https://llvm.org/docs/CodingStandards.html https://cpp-optimizations.netlify.app/ https://brevzin.github.io/ https://github.com/lmapii/run-clang-tidy https://github.com/lmapii/run-clang-format https://github.com/microsoft/GSL https://github.com/rturrado/the_modern_cpp_challenge https://embeddedartistry.com/fieldatlas/design-pattern-catalogue/ https://developers.redhat.com/articles/2021/10/13/printf-style-debugging-using-gdb-part-2 https://developers.redhat.com/articles/2021/10/05/printf-style-debugging-using-gdb-part-1# https://clang.llvm.org/docs/ClangFormatStyleOptions.html https://www.w3computing.com/articles/programming-languages/cplusplus/#gsc.tab=0 lefticus/cpp_weekly#175 https://github.com/cpp-best-practices/cmake_template https://github.com/google/fuzzing https://github.com/cpp-best-practices/cmake_template/blob/main/cmake/CompilerWarnings.cmake https://github.com/intel/cicd-repo-infrastructure https://github.com/HappyCerberus/daily-bite-cpp https://www.youtube.com/playlist?list=PLvv0ScY6vfd8j-tlhYVPYgiIyXduu6m-L https://sourceware.org/gdb/current/onlinedocs/gdb.html/index.html#SEC_Contents https://tamara-schmitz-devel.de/posts/gdb-reference/ https://simplifycpp.org/articles/a0987/inheritance-in-cpp-why-it-evolved-from-a-central-oop-tool-into-a-feature-that-should-be-used-car/ https://github.com/vale-cli/vale
▶ zsh-bench
==> benchmarking login shell of user meinzer1899...
creates_tty=0
has_compsys=0
has_syntax_highlighting=0
has_autosuggestions=0
has_git_prompt=0
first_prompt_lag_ms=26.536
first_command_lag_ms=115.626
command_lag_ms=2.363
input_lag_ms=4.038
exit_time_ms=101.818Is this fast? From https://github.com/romkatv/zsh-bench#how-fast-is-fast
| latency (ms) | the maximum value indistinguishable from zero |
|---|---|
| first prompt lag | 50 |
| first command lag | 150 |
| command lag | 10 |
| input lag | 20 |
Although showing 0 for has_syntax_highlighting, has_git_prompt, has_autosuggestions, has_compsys,
these are enabled.
- Install git and pull dotfiles repository
- Setup WSL
mkdir -p $HOME/.config(otherwise,.configis a symlink to$HOME/dotfiles/.config).- Install zsh and zi
- Install stow, run
cd dotfiles && stow . - Install tmux
- difference
python pip installvspython -m pip installhttps://stackoverflow.com/questions/25749621/whats-the-difference-between-pip-install-and-python-m-pip-install - https://thelinuxcode.com/python-requirements-txt-file/
apt install python3.XX-venv # (e.g. 10)Don't upgrade system to use other python version than that available in apt. Can cause other commands (e.g. apt-get) to break.
apt install xcliphttps://github.com/ian-howell/.dotfiles/blob/main/src/remap_capslock.sh https://askubuntu.com/questions/33774/how-do-i-remap-the-caps-lock-and-ctrl-keys#comment1154797_521734 sudo vi /etc/default/keyboard and change XKBOPTIONS="ctrl:nocaps" setxkbmap -option ctrl:nocaps
https://superuser.com/questions/949385/map-capslock-to-control-in-windows-10
Update GuestAdditions after updating VirtualBox via https://help.ubuntu.com/community/VirtualBox/GuestAdditions.
sudo apt-get install virtualbox-guest-additions-iso- Install nerd font
- on Linux via curl https://github.com/ryanoasis/nerd-fonts?tab=readme-ov-file#option-1-release-archive-download.
- on Windows via downloading zip archive and using Settings -> fonts (move font files into dotted square)
- Install alacritty for Windows.
- Move alacritty.wsl.toml to
%APPDATA%\alacritty. - map capslock to ctrl: https://superuser.com/questions/949385/map-capslock-to-control-in-windows-10.
- Alternatively, use MS PowerToys to map Ctrl-M as Enter as well. Cannot map Ctrl-J to down (Ctrl-K up, Ctrl-C Esc) because that conflicts with either Linux or Windows shortcuts. In MS PowerToys dashboard, deactivate all other modules that are not needed.
- notifications: https://github.com/Windos/BurntToast, call with
notify-send() { powershell.exe -command New-BurntToastNotification "-Text '${@}'"; }. Further reading https://stuartleeks.com/posts/wsl-github-cli-windows-notifications-part-1/ and microsoft/WSL#2466. - Kill WSL2 (e.g. does not respond): microsoft/WSL#6982 (comment)
- Configuration: https://learn.microsoft.com/en-us/windows/wsl/wsl-config#user-settings
https://github.com/zsh-users/zsh/blob/master/INSTALL
$ZPFX: https://wiki.zshell.dev/docs/guides/customization#ZPFX
Install zsh to $HOME/.zi/polaris, where no sudo is needed.
mkdir -p $HOME/.zi/polaris
./configure --prefix=$HOME/.zi/polariszi loader is included in dotfiles (.config/zi) Additional information https://wiki.zshell.dev/docs/getting_started/installation => loader. Don't use other installation methods using curl, because of security issues (z-shell/wiki#588).
- Pressing "enter" on an empty buffer displays an information-rich and pretty dashboard.
- https://registerspill.thorstenball.com/p/how-fast-is-your-shell
- https://github.com/unixorn/awesome-zsh-plugins
- https://github.com/lljbash/dotfiles/blob/212623dd3f1693ef273bc0e5dce91693797f1a2f/zshrc#L1
- https://github.com/hlissner/dotfiles/blob/254aea2230e1350409a7ae7b6566bcd98f5b5360/config/zsh/completion.zsh#L1
- https://github.com/chrisgrieser/.config/tree/main/zsh/config
- https://github.com/lljbash/dotfiles/blob/master/zshrc
- https://github.com/bew/dotfiles/tree/main/zsh
- https://github.com/HaleTom/dotfiles/blob/main/zsh/.config/zsh/.zshrc
- https://github.com/mattmc3/zdotdir
- https://github.com/doronbehar/dotfiles/blob/master/.zshrc
- https://github.com/ctrueden/dotfiles/blob/main/zshrc
- https://github.com/itchyny/dotfiles/blob/main/.zshrc
- https://github.com/timtyrrell/dotfiles-chezmoi/blob/master/dot_zshrc
- https://github.com/Freed-Wu/Freed-Wu/blob/main/.zshrc
- https://github.com/kutsan/dotfiles/blob/master/.config/zsh/config/settings.zsh
- https://git.sr.ht/~seirdy/dotfiles/tree/master/.config/shell_common/zsh/zinit.zsh
- https://github.com/callistachang/dots/blob/main/dot_zshrc
- https://github.com/casey/dotfiles/blob/master/etc/zshrc
- https://github.com/agkozak/
- https://github.com/seagle0128/dotfiles/blob/master/.zshrc
- A full-featured BDD unit testing framework for bash, ksh, zsh, dash and all POSIX shells
- A collection of Bash scripts for creating safe and useful command line programs.
- https://dwheeler.com/essays/filenames-in-shell.html 2025, Shell quoting,Filename splitting,NUL-delimited filenames,Leading-dash filenames,Shell globbing,find -print0 ,xargs -0
- https://www.golinuxcloud.com/linux-commands-cheat-sheet/
- Easy, repeatable testing of CLI programs/commands
- https://www.geeksforgeeks.org/linux-unix/shell-scripting-shell-variables/
- https://mywiki.wooledge.org/BashPitfalls
- https://mywiki.wooledge.org/BashPitfalls#set_-euo_pipefail recommends against
set -ebecause of the various pitfalls especially in conditional evaluation and optionpipefailand recommends own error handling instead. - http://redsymbol.net/articles/unofficial-bash-strict-mode/ and http://redsymbol.net/articles/unofficial-bash-strict-mode/#short-circuiting
set -euo pipefail; shopt -s failglob # safe modeTo release resources, use bash exit traps. http://redsymbol.net/articles/bash-exit-traps/
- https://mywiki.wooledge.org/BashFAQ
- https://mywiki.wooledge.org/BashGuide
- https://mywiki.wooledge.org/BashPitfalls
- https://www.gnu.org/software/bash//manual/html_node/The-Shopt-Builtin.html
- https://quickref.me/bash
- https://devhints.io/bash
- Easy access to gitignore boilerplates from https://github.com/github/gitignore
- Reliable 'git bisect run' recipes in a few lines of Python. with https://martin.ankerl.com/2026/07/08/broken-build-is-not-a-bad-commit/
- https://github.com/gitleaks/gitleaks Protect and discover secrets using Gitleaks 🔑
- https://github.com/stevearc/dotfiles/blob/master/.githelpers
- https://github.com/mathiasbynens/dotfiles/blob/main/.gitconfig
For Ubuntu, this PPA provides the latest stable upstream Git version: https://git-scm.com/download/linux.
Add .gitconfig.local for user private global entries https://git-scm.com/docs/user-manual.html#telling-git-your-name
Add ssh key so that you can push to dotfiles repository with correct user.
In dotfiles repository, change local email to noreply email from Github (preferences, email) https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address#setting-your-email-address-for-a-single-repository
ssh keys: ~/.ssh/config specify, which key belongs to which host (https://stackoverflow.com/a/69764024)
🦎 Githooks: per-repo and shared Git hooks with version control and auto update.
interactive git with the help of fzf
Protect and discover secrets using Gitleaks 🔑
Command-line Git information tool
https://github.com/alacritty/alacritty/blob/master/INSTALL.md
cargo build --releaseWindows: download executable
https://github.com/tmux/tmux/wiki/Installing#from-version-control
sh autogen.sh
./configure
make -j$(nproc) && sudo make installtmux new -s tmux
.tmux.conf:
Search rust book via cli:
https://github.com/0xhiro/thebook
To auto-accept entry on Enter when searching with CTRL-R, use fzf-accept-on-enter.diff
from junegunn/fzf#477 (comment).
git apply --stat --apply ~/dotfiles/fzf-accept-on-enter.diff
mv fzf-keybindings-new.zsh fzf-key-bindings.zsh
Vim Integration: https://github.com/junegunn/fzf/blob/master/README-VIM.md
- A very fast, portable and hackable fuzzy finder.(https://github.com/alexpasmantier/television/)
# docker run not needed?
docker run --detach -v $(pwd):$(pwd) -w $(pwd) --name <name> image:tag sleep infinity # may does not work, if ENTRYPOINT is set in Dockerfile
docker start <name> # if container with that name already exists
docker exec <name> command # execute command, e.g. via vim-dispatch
docker exec -it <name> /bin/bash # attach interactively
docker stop name # to stop-
Docker image to compile C++ projects with recent Clang and GCC compilers https://stackoverflow.com/questions/45023363/what-is-docker-io-in-relation-to-docker-ce-and-docker-ee-now-called-mirantis-k https://docs.docker.com/engine/install/ubuntu
-
https://github.com/wagoodman/dive A tool for exploring each layer in a docker image
-
https://github.com/wagoodman analyze image size, vulnerabilities and more
-
https://github.com/kkvh/vim-docker-tools Toolkit for managing docker containers, networks and images in vim.
-
https://github.com/philips-software/amp-devcontainer/tree/main/.devcontainer/cpp
-
https://docs.docker.com/develop/develop-images/dockerfile_best-practices/
-
https://vonheikemen.github.io/devlog/tools/how-to-survive-without-multiple-cursors-in-vim/
-
https://hamvocke.com/blog/ansi-vim-color-scheme/ I prefer defining my terminal color scheme once and having command-line tools inherit it.
-
Vim Universe - Small videos 1:30 - 8:00 vim commands, tips and tricks
-
https://www.youtube.com/playlist?list=PLrU0uga7kmr0dsc3wWS4TS9mRX0Ue7kn Vim Universe Playlist
-
https://swedishembedded.com/developers/vim-in-minutes Awesome Vim: Modern Guide To A Fully Featured Vim IDE
-
http://vimcasts.org/episodes/search-multiple-files-with-vimgrep/
Important infos about editing .vimrc: https://vi.stackexchange.com/a/7723/30978
-
https://github.com/tbouquet/vimconf/blob/master/.vimrc all settings commented
-
https://github.com/mischavandenburg/dotfiles/blob/main/vim/.vimrc
-
https://github.com/habamax/.vim/blob/master/vimrc (vim maintainer)
-
https://github.com/skywind3000/vim/blob/master/init/unix.vim
-
https://github.com/fannheyward/init.vim/blob/master/coc-settings.json
-
https://github.com/fannheyward/init.vim/blob/master/init.vim
apt install luaX.X libluaX.X-dev luajit
./configure --enable-luainterp=yes- https://github.com/stepchowfun/toast Containerize your development and continuous integration environments. 🥂
- https://www.docker.com/blog/how-to-setup-your-local-node-js-development-environment-using-docker/
- https://stackoverflow.com/questions/51809181/how-to-run-tmux-inside-a-docker-container
- https://wiki.zshell.dev/ecosystem/packages/usage#statically-linked-hermetic-relocatable-zsh
Login to dev container via ssh; install zsh and copy dotfiles https://github.com/dpetersen/dev-container-base
- https://gitlab.com/smoores/open-devcontainer
- https://stackoverflow.com/questions/72397020/containerizing-vim-with-plugins
- https://github.com/nemanjan00/dev-environment
- https://github.com/esensar/nvim-dev-container
https://github.com/iamcco/diagnostic-languageserver/wiki/Linters
All of them are configured via coc-diagnostic. Activate them by mapping the
linter to the desired filetype in coc-settings.json.
https://github.com/iamcco/coc-diagnostic/blob/master/src/config.ts
volta install bash-language-server
VimL linter https://github.com/Vimjas/vint
https://github.com/hadolint/hadolint
- https://iscinumpy.dev/post/cpp-23/
- Code auditing productivity multiplier.
- Modern C++ Error Handling - Phil Nash - CppCon 2024
- Reintroduction to Generic Programming for C++ Engineers - Nick DeMarco - C++Now 2024
- Developing Better C++ Code by Isolating Decisions - Michael Okyen - C++Now 2024
- https://cppcheatsheet.com and https://github.com/crazyguitar/cppcheatsheet Modern C and C++ programming, suited for LLM
- A collection of resources on modern C++.
- https://github.com/HappyCerberus/daily-bite-cpp (especially Modern-only C++ Course) and https://github.com/HappyCerberus
- Playlist: Modern C++ Series - Mike Shah
- C++performance guidelines
blogs
- https://juntao.substack.com/ The pragmatic developer
- https://fekir.info/
- https://www.meetingcpp.com/blog/blogroll/
- https://lemire.me/blog/ with https://github.com/lemire/Code-used-on-Daniel-Lemire-s-blog
- https://andreasfertig.com/blog/
- https://akrzemi1.wordpress.com/
- https://www.meetingcpp.com/blog/blogroll/
- https://www.okyensourcesoftware.com/blog/
- https://www.sandordargo.com/
- https://blog.quarkslab.com/clang-hardening-cheat-sheet-ten-years-later.html
- Security in C++ - Hardening Techniques From the Trenches - Louis Dionne - C++Now 2024
- https://best.openssf.org/Compiler-Hardening-Guides/Compiler-Options-Hardening-Guide-for-C-and-C++.html
- https://libcxx.llvm.org/Hardening.html
- https://clang.llvm.org/docs/DiagnosticsReference.html
- https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
- https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Instrumentation-Options.html#Instrumentation-Options
- https://www.phoronix.com/news/GCC-fhardened-Hardening-Option
Security hardening flags
HARDENING = -D_FORTIFY_SOURCE=2 \
-fstack-protector-strong \
-fPIE \
-fstack-clash-protection \
-fcf-protectionLinker hardening flags
LDFLAGS = -Wl,-z,relro \
-Wl,-z,now \
-Wl,-z,noexecstack \
-Wl,-z,separate-code \
-pie- CLI11 is a command line parser for C++11 and beyond that provides a rich feature set with a simple and intuitive interface.
- https://terminaltrove.com/language/cpp/
- Simple, fast, accurate single-header microbenchmarking functionality for C++11/14/17/20
- C++20 and later BLAKE3 implementation using std::simd, std::execution, multi-architecture SIMD kernels compiled into a single binary with zero-overhead runtime dispatch, and OS-native direct I/O behind a unified interface
- WHATWG-compliant and fast URL parser written in modern C++, part of Internet Archive, Node.js, Clickhouse,Redpanda, Kong, Telegram, Adguard, Datadog and Cloudflare Workers
- https://github.com/stephenberry/glaze Extremely fast, in memory, JSON and interface library for modern C++
- https://github.com/acts-project/acts Experiment-independent toolkit for (charged) particle track reconstruction in (high energy) physics experiments implemented in modern C++ (C++23)
HU print chunks 0001'0203'...'0e0f
C++ API Documentation (Doxygen / Breathe / Exhale)
- Doxygen parses C++ source code in src/bms_monitor/cpp_api/ and generates XML
- Breathe (Sphinx extension) reads the Doxygen XML
- Exhale (Sphinx extension) transforms Breathe output into hierarchical reStructuredText for publishing
- https://sphinx-needs.readthedocs.io/
- Sphinx-Needs: Generates html, pdf etc. from reStructured text. reStructured text: simple, unobtrusive markup language
unit tests gtest googletest
- GUnit - Google.Test/Google.Mock/Cucumber on steroids
- https://shenxianpeng.dev/posts/2021/gcov-example/
- https://danielsieger.com/blog/2024/08/03/code-coverage-with-cmake.html
- https://github.com/tstack/lnav/blob/master/cmake/coverage.cmake - custom target to generate coverage report
Reduce execution times of unit tests:
- run CTest in parallel
ctest --parallel - use
gtest_discover_tests(scans test executable)gtest_add_tests(scans source code for googletest macros) ( from https://cmake.org/cmake/help/latest/module/GoogleTest.html - this executes a list of all test cases instead of the whole test executable, which is much faster
- https://github.com/google/googletest/blob/main/docs/advanced.md#running-a-subset-of-the-tests (gtest_filter)
- https://cmake.org/cmake/help/latest/manual/ctest.1.html
- e.g.
ctest --parallel --test-dir <build directory> -R <regex filter for tests> --rerun-failed --output-on-failure
Use install-cmake.sh from foonathan to install to /usr/local. May remove "old" cmake versions, check via which -a cmake.
https://blog.feabhas.com/category/build-systems/ with https://github.com/feabhas/cmake-presets-blog
TOP
-
More Modern CMake and https://github.com/hsf-training/hsf-training-cmake-webpage
-
https://hsf-training.github.io/hsf-training-cmake-webpage/aio/index.html
-
https://cmake.org/cmake/help/book/mastering-cmake/index.html and https://cmake.org/cmake/help/latest/guide/tutorial/index.html
-
unit testing for CMake: https://github.com/cpm-cmake/CPM.cmake/blob/master/cmake/testing.cmake and https://github.com/cpm-cmake/CPM.cmake/blob/master/test/unit/version_from_git_tag.cmake
-
https://github.com/pysco68/blake3pp/tree/main/cmake/toolchains
-
https://www.youtube.com/watch?v=UH6F6ypdYbw CMake - the essential package
-
https://gist.github.com/mbinna/c61dbb39bca0e4fb7d1f73b0d66a4fd1 effective_modern_cmake.md
-
https://github.com/bemanproject/exemplar Modern CMake best practices as project and https://github.com/bemanproject/beman/blob/main/docs/beman_standard.md#cmake
-
https://cmake.org/cmake/help/latest/module/CTestCoverageCollectGCOV.html
-
https://github.com/madduci/moderncpp-project-template A Modern C++ cross-platform Project Template with CMake, conan (optional), cppcheck (optional) and clang-format (optional)
-
https://github.com/filipdutescu/modern-cpp-template A template for modern C++ projects using CMake, Clang-Format, CI, unit testing and more, with support for downstream inclusion.
-
https://github.com/xtensor-stack/xtensor/blob/f21347a93c77218528521bdce9524e76bb801e31/test/set_compiler_flag.cmake#L1 Possible to do this instead of generator expressions:
set_compiler_flag( _cxx_std_flag CXX "-std=c++23" # this should work with GNU, Intel, PGI "/std:c++23" # this should work with MSVC )
* https://github.com/schweitzer/modern-cmake-tutorial
* debug generator expressions: https://cmake.org/cmake/help/latest/manual/cmake-generator-expressions.7.html#debugging
#### Misc
* [Macros usages in C++](https://fekir.info/post/macro-usages-in-cpp/)
[cmake4vim](https://github.com/ilyachur/cmake4vim/)
[cmake-language-server](https://github.com/regen100/cmake-language-server)
Determine the minimal required CMake version of a project: [cmake_min_version](https://github.com/nlohmann/cmake_min_version)
### Online Compiler, Online performance, Online benchmarking, Online Codebrowser
* [Code Browser for C, C++, Rust & Dart by KDAB](https://codebrowser.dev/)
* https://godbolt.org/
* https://cppinsights.io/
* https://www.perfbench.com/
* https://quick-bench.com/
* https://www.onlinegdb.com/
### Optimization, performance, profiling, dependencies, benchmarking
* [Home of the Renovate CLI: Cross-platform Dependency Automation by Mend.io](https://github.com/renovatebot/renovate)
* [Keynote: Benchmarking - It's About Time - Matt Godbolt - C++Now 2026](https://www.youtube.com/watch?v=EU_nQh8wg5A)
* [Simple, fast, accurate single-header microbenchmarking functionality for C++11/14/17/20](https://github.com/martinus/nanobench)
* https://jotavare.github.io/valgrind_cheatsheet/
* [An open-source benchmark and tracking library for C++ projects, designed to provide deep insights into
function performance with minimal overhead.](https://github.com/Compaile/ctrack)
* https://github.com/springmeyer/profiling-guide with [perf](https://www.brendangregg.com/perf.html)
* https://ftp.gnu.org/old-gnu/Manuals/gprof-2.9.1/html_mono/gprof.html
* https://github.com/jmuehlig/perf-cpp and https://github.com/Compaile/ctrack
* https://fekir.info/post/cpp-performance-guidelines/
* https://fekir.info/post/library-dependency-graphs-in-cmake/
* https://vitaut.net/posts/2024/faster-cpp-compile-times/
* https://fekir.info/post/analyze-build-times-with-clang/
* https://fekir.info/post/analyze-configure-times-with-cmake/
### _LLVM_, `clang`, `clangd`
* https://github.com/jmpfar/clangd-wheel and https://realpython.com/python-wheels/
* https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html
* https://github.com/google/sanitizers/wiki/AddressSanitizerFlags
```cmake
message(STATUS "Address sanitizer enabled")
add_compile_options(-fsanitize=address,undefined,integer)
add_compile_options(-fsanitize=unsigned-integer-overflow)
add_compile_options(-fno-sanitize=signed-integer-overflow)
add_compile_options(-fno-sanitize-recover=all)
add_compile_options(-fno-omit-frame-pointer)
add_compile_options(-fsanitize-trap=undefined) # stop (TRAP signal) after first occurrence
add_link_options(-fsanitize=address,undefined)
add_link_options(-fuse-ld=clang++) # according to UB san documentation for clang
Installation description:
https://apt.llvm.org/ -> Automatic installation script
installs all llvm packages (also clangd, clang-tidy, include-cleaner etc) at /bin.
Also adds apt.llvm.org to apt package list to automatically get updates.
CAUTION:
if there is a major version update, this gets not added automatically, because the script above adds
only specified major version to apt list, e.g. https://apt.llvm.org/jammy llvm-toolchain-jammy-18 InRelease.
For me using Ubuntu 22.04, I called the script again, but it installed 18, not newest 19.
Section:
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
# for latest <version number> check variable CURRENT_LLVM_STABLE in llvh.sh
sudo ./llvm.sh <version number> allneeded to also install clang-tidy etc. Update alternatives with --slave like here
Need to update alternatives for llvm tools, e.g. clang-format, clangd, clang-tidy, lld.
sudo update-alternatives --install /bin/clang-format clang-format /bin/clang-format-17 20Cache for clang-tidy static analysis results: https://github.com/matus-chochlik/ctcache/tree/main https://stackoverflow.com/questions/51582604/how-to-use-cpplint-code-style-checking-with-cmake https://github.com/lmapii/run-clang-tidy CLI application to run clang-tidy on a set of files specified using globs in a JSON configuration file. https://github.com/lljbash/clangd-tidy A faster alternative to clang-tidy https://llvm.org/docs/GettingStarted.html#getting-the-source-code-and-building-llvm
- update .vimrc with comments from https://github.com/nvim-zh/minimal_vim/blob/master/init.vim
- Read series https://jdhao.github.io/2019/03/28/nifty_nvim_techniques_s1/#how-do-we-select-the-current-line-but-not-including-the-newline-character
https://sourceware.org/gdb/current/onlinedocs/gdb.html/index.html
:packadd termdebug
:Termdebug " help Termdebug, :Arguments <args, eg. --gtest_filter=<unquoted regex>- https://github.com/iztanos/gdb-dojo
- https://jotavare.github.io/gdb_cheatsheet/
- https://github.com/sharkdp/dbg-macro A dbg(…) macro for C++
- Replace .gdbinit with https://github.com/pwndbg/pwndbg Exploit Development and Reverse Engineering with GDB Made Easy
- https://developers.redhat.com/articles/2021/10/05/printf-style-debugging-using-gdb-part-1#
- https://developers.redhat.com/articles/2021/10/13/printf-style-debugging-using-gdb-part-2#
- https://github.com/mg979/tasks.vim rewrite of asynctasks
- https://github.com/skywind3000/asynctasks.vim
- https://github.com/albertomontesg/lightline-asyncrun
- https://github.com/deathmaz/fzf-lua-asynctasks (neovim)
- https://github.com/voldikss/vim-floaterm#asynctasksvim--asyncrunvim
- https://github.com/skywind3000/vim-terminal-help#integration
- https://github.com/voldikss/coc-extensions/tree/main/packages/coc-tasks
- https://github.com/EthanJWright/vs-tasks.nvim
- 🔮 Beautiful dots for Arch hyprland and bspwm
- https://github.com/2KAbhishek/dots2k
- https://github.com/meain/dotfiles
- https://github.com/2KAbhishek/dots2k Passionately Crafted CLI Setup 🐧❤️
- https://github.com/yous/dotfiles
- https://github.com/sunaku/home
- https://sunaku.github.io/about.html
- https://github.com/ibhagwan/dots
- https://github.com/hamvocke/dotfiles
- I use stow.
- Manage dotfiles and any git directories interactively with fzf https://github.com/kazhala/dotbare
- https://dotfiles.github.io/
- https://github.com/rhysd/dotfiles
- Benchmark comparison of open-source linkers on Linux https://github.com/sicherha/linker-benchmarks
CC="clang" CXX="clang++" LDFLAGS="{LDFLAGS} -fuse-ld=mold" cmake ...Most Beautiful Typing practice plugin for Neovim with dashboard Code Intelligence in Neovim - The LSP Setup that grants you IDE Powers | Neovim from Scratch Part 4 The Laziest Neovim (NeovimConf 2023) | Speed Up Neovim Neovim for Newbs. FREE COURSE The Only Video You Need to Get Started with Neovim The perfect Neovim setup for C++ C++ Coding with Neovim - Prateek Raman - CppCon 2022 Neovim for C++: https://www.youtube.com/watch?v=lsFoZIg-oDs
https://github.com/kristijanhusak/neovim-config
Use FZF instead of telescope
-
https://www.youtube.com/watch?v=stqUbv-5u2s TJ De Vries Effective Neovim: Instant IDE
-
https://codevion.github.io/#!vim/cpp2.md: (Neo)vim for C++ Part 2: CMake, GTest, File Explorer, etc
:mktridactylrc => saves settings to rc (location see below)
https://hackingcpp.com/dev/command_line_tools.html
https://github.com/tummychow/git-absorb
https://github.com/jarun/ddgr with https://github.com/tats/w3m/blob/master/doc/README
Whiteboards with https://tldraw.dev/. https://github.com/casey/just https://github.com/NoahTheDuke/vim-just (Plug 'NoahTheDuke/vim-just', { 'for': 'just' })
- https://zealdocs.org/
- https://cukic.co/2022/04/02/fuzzy-search-documentation/
- https://gitlab.com/ivan-cukic/zeal-lynx-cli
- Your AI second brain. Self-hostable. Get answers from the web or your docs. Build custom agents, schedule automations, do deep research. Turn any online or local LLM into your personal, autonomous AI (gpt, claude, gemini, llama, qwen, mistral). Get started - free.
- CLI and local web plain text note‑taking, bookmarking, and archiving with linking, tagging, filtering,search, Git versioning & syncing, Pandoc conversion, + more, in a single portable script.
- Obsidian for Learning Part I: Capture -- no boilerplate
- https://www.namtao.com/obsidian-for-learning/
- mini cli search engine for your docs, knowledge bases, meeting notes, whatever. Tracking current sota approaches while being all local
- CLI and local web plain text note‑taking, bookmarking, and archiving with linking, tagging, filtering, search, Git versioning & syncing, Pandoc conversion, + more, in a single portable script. with https://github.com/z-shell/nb
- A fast, keyboard-driven terminal UI for todo.txt.
- https://www.ssp.sh/blog/obsidian-note-taking-workflow/
- https://www.ssp.sh/brain/
- https://www.ssp.sh/blog/pkm-workflow-for-a-deeper-life/
- Mistakes to Avoid When Writing C++ Projects - Bret Brown - C++Now 2024
- Keynote: There Is No Silver Bullet to Solve All C++ Software Problems - Klaus Iglberger - C++ on Sea
- Back to Basics: Functional Programming and Monads in C++ - Jonathan Müller - CppCon 2024
- Driving compilers - A 5-part series on how compiler drivers, preprocessors, compilers, linkers, and loaders turn source code into executables
- https://godbolt.org/z/a4ooYbd1P from Evolution of a Median Algorithm in C++ - Pete Isensee - CppCon 2023
- https://www.codesmells.org/ A Curated Catalog of Code Smells. Every named code smell in one place — classified, connected, and fixable. TOP
TOP
-
https://bytebytego.com/guides/ Engineering visual guides, visual cheat sheets like hackingcpp. with
- 📝 Today I Learned
- How principled coders outperform the competition
- https://martinfowler.com/articles/continuousIntegration.html?ref=techmanagerweekly.com
- Lessons Learned - 30 Years of Programming
- 40 years of programming
- [Growing Pains: Lessons from seeing C++ codebases mature](https://docs.google.com/presentation/d/1a01QDB* LndO11i3J83w6-OwUgnJJ-mS8TOQFzBQ1sk/edit?slide=id.p#slide=id.p) and https://www.youtube.com/watch?v=HTnUS2Zv34Y
- A markdown terminal slideshow tool
- How I use C++: a line-by-line code review
- Pull Requests and Code Review: Best Practices for Developers, from Junior to Team Lead.
- Code review skills for emotionally intelligent developers
- https://stackoverflow.blog/2019/09/30/how-to-make-good-code-reviews-better/
- https://epage.github.io/dev/code-review/
- https://epage.github.io/dev/commits/
- Conventional Commits Util to generate Semantic Version and Markdown Change Log and Validate Commit Messages
- cz-git | czg 🛠️ DX first and more engineered, lightweight, customizable, standard output format Commitizen adapter and CLI
- https://www.conventionalcommits.org/en/v1.0.0/
- Open-source AI job search agent and job finder: scan job boards, score each job 1-5 against your CV before you apply, tailor an ATS-friendly resume and cover letter, get interview prep and a job application tracker. It helps you fill in each application; you press Submit. Runs locally in your AI coding CLI (Claude Code, Codex, OpenCode and more).
- A one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever.
- 🤯 LobeHub is your Chief Agent Operator, organizing your agents into 7×24 operations by hiring, scheduling,and reporting on your entire AI team.
- Turn any codebase, with its docs, SQL schemas, configs, and PDFs, into a queryable knowledge graph. A /graphify skill for Claude Code, Cursor, Codex, and Gemini CLI: local deterministic AST parsing, every edge explained, no vector store.
- https://regexone.com/ Learn Regular Expressions with simple, interactive exercises.
- A command-line tool and Rust library with Python bindings for generating regular expressions from user-provided test cases
- GitHub code searching with 'fzf'
- Television is a fast, portable fuzzy finder for the terminal. It lets you search in real-time through any kind of data source such as files, text, git repositories, environment variables, docker containers, and more.
- Render markdown on the CLI, with pizzazz! 💅🏻
- apt-fast: A shellscript wrapper for apt that speeds up downloading of packages.
- The smartest way to learn touch typing and improve your typing speed.
- Minimalistic Keyboard Driven Browser 🌐🎀
- https://useplaintext.email/
- https://github.com/jlevy/the-art-of-command-line 3 yrs old
- DuckDuckGo from the terminal
- https://terminaltrove.com/ and https://terminaltrove.com/categories/
