Compare commits

..

1069 Commits

Author SHA1 Message Date
hektor 0652389078 refactor(home/work): improve configuration structure
- Add nixpkgs.config.allowUnfree setting
- Fix nixGL configuration path to targets.genericLinux.nixGL
- Remove redundant anki program import (now in modules)
- Enable gh and kubecolor programs
- Pass inputs to packages.nix for flake package access

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 15:53:22 +01:00
hektor 2913e9578e feat(home): add GNOME desktop configuration
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 15:53:22 +01:00
hektor b72c1d5e86 chore(home): add commented experimental anki sync config
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 15:53:22 +01:00
hektor 1c844adf91 refactor(work): set up 'packages.local.nix' approach 2025-12-03 15:53:22 +01:00
hektor fdbe4366e1 feat(home): add git config with example configuration for non-NixOS 2025-12-03 15:53:22 +01:00
hektor a9ffcc12ee refactor: move common hosts config into 'modules/common.nix' 2025-12-03 15:53:22 +01:00
hektor 9765d93f9f chore: formatting and cleanup
- Format shell.nix skeleton to single line
- Complete ts-node removal from astyanax packages
- Format andromache hardware config
2025-12-03 15:53:22 +01:00
hektor 42dbe5ade2 chore: update flake to 'nixos-unstable'
- Switch from 'nixos-25.05' to 'nixos-unstable'
- Update home-manager to follow main branch
2025-12-03 15:53:22 +01:00
hektor bab2c35bff fix(astyanax): correct hostname typo from astynanax to astyanax 2025-12-03 15:53:22 +01:00
hektor ce26b1c206 Add neovim 'typescriptreact' snippets 2025-12-03 15:53:22 +01:00
hektor 2d26d6ebd8 don't use rootless docker on 'andromache', but keep it as an option 2025-11-28 20:57:04 +01:00
hektor e0a1ec77ed enable wake on lan on 'andromache' host 2025-11-27 10:37:05 +01:00
hektor 68bf971992 declare rootless docker for 'andromache' host 2025-11-26 18:37:11 +01:00
hektor 80e74d3283 enable recurrence only on one hosts per 'man task-sync' 2025-11-24 18:47:10 +01:00
hektor f93eecfcb1 refactor 'nixosConfigurations' 2025-11-23 23:29:46 +01:00
hektor 6d5e6add02 move 'nixos-hardware' from 'vm' to 'astyanax' host 2025-11-23 22:06:25 +01:00
hektor cdf5127071 modularize NixOS secrets config 2025-11-23 22:06:25 +01:00
hektor 1a57e8a424 refactor 2025-11-23 19:49:49 +01:00
hektor cf27fdedde use neovim dark mode 2025-11-23 19:48:48 +01:00
hektor 92226fff95 declare taskwarrior for all NixOS hosts 2025-11-23 19:37:15 +01:00
hektor 2e81d28cc8 split up taskwarrior config to facilitate coexisting NixOS and Arch configs 2025-11-23 19:02:21 +01:00
hektor f5e31ff825 Add (unused) 'printing' module 2025-11-23 16:12:55 +01:00
hektor fdd4c13d34 Refactor 'home/hosts/work' 2025-11-23 16:10:30 +01:00
hektor 25dd5fc67b Set up xdg user directories 2025-11-18 23:43:12 +01:00
hektor c3bfb2e449 Add 'vim-plug' vim plugin to neovim flake 2025-11-18 23:42:34 +01:00
hektor 283e49281c Update intel CPU microcode 2025-11-18 23:41:55 +01:00
hektor e8c9ea3af0 Improve disko declarations 2025-11-17 21:20:00 +00:00
hektor 5f65c9ad92 Refactor 'hosts/' to use 'default.nix' 2025-11-17 20:41:34 +00:00
hektor 2793aa4e59 Add gitconfig and gitignore to git home module 2025-11-17 19:15:09 +01:00
hektor 6e93f8cb39 Prefer dark theme (gnome) 2025-11-17 19:06:59 +01:00
hektor c8dbef379e Set up 'andromache' host 2025-11-17 19:06:35 +01:00
hektor bdd959f3df Update (networking) hostnames 2025-11-16 16:03:36 +01:00
hektor 59575b2ff9 Only open SSH port when SSH is enabled 2025-11-16 16:03:03 +01:00
hektor 27c5ec21a4 Refactor 2025-11-16 15:42:11 +01:00
hektor d81e168cd9 Fix vm error 2025-11-16 15:42:03 +01:00
hektor 2352981b16 Rename firefox profile from 'work' to 'default' 2025-11-16 02:09:54 +01:00
hektor a0472eccc6 Enable nightlight (dconf setting) 2025-11-16 02:00:21 +01:00
hektor 9475aae43a Update flake 2025-11-16 01:40:48 +01:00
hektor 7bfe1457f8 Add 'kitty-scrollback.nvim' to neovim flake 2025-11-16 01:38:51 +01:00
hektor 0578ba56f9 Modularize gnome config 2025-11-16 01:36:19 +01:00
hektor 98faf1c356 Use neovim flake 2025-11-16 01:31:55 +01:00
hektor ff5b4e1665 Add github CLI to 'astyanax' host 2025-11-16 00:19:21 +01:00
hektor b9cab17495 Update 'nvim' flake 2025-11-15 23:56:11 +01:00
hektor 3d00618b68 Reuse home modules in 'astyanax' host 2025-11-15 23:49:04 +01:00
hektor 8ea508585b Merge NixOS and home manager flakes 2025-11-15 23:49:04 +01:00
hektor bbaf22e871 Remove 'nix-topology' 2025-11-15 23:17:24 +01:00
hektor 829655f4ba Add 'Syncthing' example config to 'astyanax' host 2025-11-15 21:09:36 +01:00
hektor fcda5c511e Add 'plocate' to 'astyanax' host 2025-11-15 21:04:21 +01:00
hektor 8c91d2a47c Add 'Syncthing' to 'astyanax' host 2025-11-15 20:35:12 +01:00
hektor b3ef701db6 Add bluetooth to 'astyanax' host 2025-11-14 14:08:22 +01:00
hektor d428c88a36 Set up nixos-hardware for 'astyanax' host 2025-11-12 23:20:29 +01:00
hektor d5c0e08eb1 Remove redundant firefox package 2025-11-12 23:20:01 +01:00
hektor 11b01dd83f Fix wifi disconnect issue? 2025-11-12 23:04:29 +01:00
hektor a68a903b9e Set up astyanax host 2025-11-12 23:02:30 +01:00
hektor d876d02313 Remove firefox bookmarks 2025-11-11 01:06:20 +01:00
hektor 29a8484d1e Set up interception-tools on NixOS 2025-11-10 22:17:39 +01:00
hektor 3c385724d0 Improve NixOS default firewall declaration 2025-11-10 21:46:08 +01:00
hektor cf18dcdb67 Add (relevant) '~/.bin' scripts to NixOS 2025-11-10 20:51:55 +01:00
hektor 408fb8ee0b Merge commit '63ceb40b4558f0fddb36f8244942d8a432e9182c' 2025-11-10 20:42:31 +01:00
hektor 63ceb40b45 Remove redundant 'dmenu' scripts 2025-11-10 20:41:51 +01:00
hektor 261223fe5c Add 'bash_aliases' from 'dots' to NixOS 2025-11-10 20:24:19 +01:00
hektor 17792f297b Add 'vscode-langservers-extracted' to neovim Nix flake 2025-11-10 18:33:48 +01:00
hektor 87008639ba Add 'vscode-langservers-extracted' to neovim Nix flake 2025-11-10 18:33:48 +01:00
hektor 512807cacf Update readme's 2025-11-10 18:04:39 +01:00
hektor b7c27b53fa Move 'vm' host home into home manager flake 2025-11-10 17:55:58 +01:00
hektor 61278b8fb3 Merge 'home-manager' flake into NixOS flake 2025-11-10 17:47:59 +01:00
hektor b039acd9c1 Merge 'home-manager' flake into NixOS flake 2025-11-10 17:47:59 +01:00
hektor 8c7d8f9bc5 Merge commit '85165468f589dbb395b73f0cb17b758ac6fe33aa' 2025-11-10 17:46:25 +01:00
hektor 1c4b3be339 Modularize NixOS SSH config 2025-11-10 17:04:45 +01:00
hektor e92d5c0da9 Modularize NixOS fonts config 2025-11-10 16:49:25 +01:00
hektor c267ac6fc7 Set up 'nix-topology' 2025-11-10 16:38:32 +01:00
hektor 85165468f5 Update 'kitty.conf' 2025-11-10 15:29:49 +01:00
hektor 3fb3b1e521 Set up sops-nix secrets 2025-11-06 23:13:26 +01:00
hektor 43f5cc701e Add neovim skeleton module 2025-11-06 14:31:55 +01:00
hektor ffc34d78d7 Fix conform eslint-prettier conflicting formatters 2025-11-06 12:16:10 +01:00
hektor 61ac93b68f Add git push/pull aliases 2025-11-06 11:16:14 +01:00
hektor 411986643a Update bash aliases 2025-11-06 11:14:59 +01:00
hektor 5d88ea6f11 Add back zettelkasten markdown file completion 2025-11-04 23:31:24 +01:00
hektor fa6c4d786b Update gitsigns.nvim config 2025-11-04 23:31:24 +01:00
hektor a07473f125 Add lua module snippet 2025-11-04 23:31:24 +01:00
hektor 7fd1b35186 Set up lua language server for Neovim 2025-11-04 23:31:24 +01:00
hektor 38e27e7208 Set up kitty-scrollback.nvim 2025-11-04 16:36:10 +01:00
hektor f83d453320 Use 'dockerfile' filetype for 'containerfiles' 2025-11-04 16:36:10 +01:00
hektor 4d1b84db3c Update gitignore 2025-11-04 16:36:10 +01:00
hektor bb76c9fa3a Update Nix home manager flake 2025-11-04 16:36:10 +01:00
hektor 242d0fe094 Migrate to new Neovim 'lspconfig' version 2025-11-01 23:28:37 +01:00
hektor 4567ea177b Add 'nixpkgs.follows' to 'nixgl' input in Nix home manager flake 2025-10-28 22:13:41 +01:00
hektor 165c71a2a4 Declare keepassxc config in Nix home manager flake 2025-10-28 12:56:59 +01:00
hektor f42a896d53 Modularize neovim & git config in Nix home manager flake 2025-10-28 11:54:40 +01:00
hektor c605f61445 Modularize firefox config in Nix home manager flake 2025-10-28 11:52:33 +01:00
hektor 783908c5eb Declare anki package in Nix home manager flake 2025-10-28 11:46:20 +01:00
hektor 966065dd30 Format home manager flake (nixfmt) 2025-10-28 00:19:28 +01:00
hektor 01264a395d Move git & neovim into Nix home manager flake 2025-10-28 00:18:10 +01:00
hektor 292a2883be Declare bookmarks in firefox toolbar 2025-10-27 23:56:29 +01:00
hektor 5a50aa540f Improve pomo script 2025-10-26 22:46:15 +01:00
hektor 84e0c7f700 Move firefox (with addons) into Nix home manager flake 2025-10-26 22:42:28 +01:00
hektor a737b50284 Update 'git-cb' script 2025-10-24 10:12:29 +02:00
hektor 608a3bc725 Remove taskwarrior related neovim stuff 2025-10-23 16:52:23 +02:00
hektor a668bb47db Set up nix formatter and language server 2025-10-23 16:26:04 +02:00
hektor 15cf8bc566 Set up nix formatter and language server 2025-10-23 16:26:04 +02:00
hektor 325d0d1d72 Merge commit '2943f5a3716f091ba16bc812339c4159c99486f2' 2025-10-21 00:01:04 +02:00
hektor 2943f5a371 Merge commit 'f035c9318b23aea7479c124d749f5678c060e7b3' 2025-10-21 00:00:41 +02:00
hektor 89c1417915 Merge commit 'f035c9318b23aea7479c124d749f5678c060e7b3' 2025-10-21 00:00:41 +02:00
hektor f035c9318b Squashed 'dots/' changes from f64b634..24ce8f3
24ce8f3 Migrate '.vim/plugin' to neovim
e3d9612 Remove vim yin/yang colorschemes
05986a3 Migrate '.vim/ftplugin' to neovim
05bc2ec Migrate vim snippets to neovim (LuaSnip)
128ae8e Migrate '.vim/ftdetect/prolog' to neovim
f3188f7 Migrate '.vim/after/syntax' to neovim
85d56f9 Migrate vim init config to neovim
afca2ca Migrate '.vim/after' to neovim
d6875c9 Add 'eslint_d' PID to 'nvim-lint' config
568e45f Remove jira aliases
78fa170 Disable 'xdg-user-dirs' by default
5216f79 Alias bash 'history' command to 'h'
0f29dc3 Add neovim dependencies to flake
c901a1c test
6113c08 Merge commit '490998275cbdc5ff032d4a39794bf850f4bfefec'
470f69f Add neovim 'auto-session' plugin setup
d3a67ab Add minimal readme to my neovim configuration
f79bc54 Add minimal readme to my neovim configuration
4fe60cf Remove neovim lazy load related config
211da54 Fall back to 'paq.nvim' only when not on 'nixCats'
b6d3015 Add 'nixCatsUtils' from 'nixCats'
139089f Add neovim packages to 'nixCats' flake
a54e745 Add minimal 'nixCats' flake template
6e48621 Link NixOS repo in dotfiles repository

git-subtree-dir: dots
git-subtree-split: 24ce8f39af
2025-10-20 23:59:27 +02:00
hektor 24ce8f39af Migrate '.vim/plugin' to neovim 2025-10-20 23:57:01 +02:00
hektor e3d9612e57 Remove vim yin/yang colorschemes 2025-10-20 23:57:01 +02:00
hektor 05986a30bb Migrate '.vim/ftplugin' to neovim 2025-10-20 23:57:01 +02:00
hektor 05bc2ec59e Migrate vim snippets to neovim (LuaSnip) 2025-10-20 23:57:01 +02:00
hektor 128ae8ed1e Migrate '.vim/ftdetect/prolog' to neovim 2025-10-20 23:57:01 +02:00
hektor f3188f7b4b Migrate '.vim/after/syntax' to neovim 2025-10-20 23:57:01 +02:00
hektor 85d56f97d1 Migrate vim init config to neovim 2025-10-20 23:57:01 +02:00
hektor afca2cae5d Migrate '.vim/after' to neovim 2025-10-20 23:57:01 +02:00
hektor d6875c97d9 Add 'eslint_d' PID to 'nvim-lint' config 2025-10-16 12:14:15 +02:00
hektor 568e45f59b Remove jira aliases 2025-10-16 12:08:22 +02:00
hektor 78fa170e7a Disable 'xdg-user-dirs' by default 2025-10-16 11:56:18 +02:00
hektor 5216f7938b Alias bash 'history' command to 'h' 2025-10-16 11:56:18 +02:00
hektor 9382d57565 Fix Iosevka font in NixOS 2025-10-15 23:23:58 +02:00
hektor 0f29dc3054 Add neovim dependencies to flake 2025-10-15 22:48:09 +02:00
hektor 860b66c71f Add neovim dependencies to flake 2025-10-15 22:48:09 +02:00
hektor c901a1cea4 test 2025-10-15 22:25:28 +02:00
hektor cac4b7641c test 2025-10-15 22:25:28 +02:00
hektor 9b153e7628 Merge commit '6113c086eb3e642f3fe991b2227b654f0a9b80a1' 2025-10-15 22:21:14 +02:00
hektor 6113c086eb Merge commit '490998275cbdc5ff032d4a39794bf850f4bfefec' 2025-10-15 22:18:59 +02:00
hektor 470f69fada Add neovim 'auto-session' plugin setup 2025-10-15 22:17:56 +02:00
hektor 33c8355ad1 Lock flake 2025-10-15 21:27:59 +02:00
hektor d3a67ab58d Add minimal readme to my neovim configuration 2025-10-15 21:26:56 +02:00
hektor 04d9977747 Add minimal readme to my neovim configuration 2025-10-15 21:26:56 +02:00
hektor f79bc5427d Add minimal readme to my neovim configuration 2025-10-15 21:19:22 +02:00
hektor 4fe60cf861 Remove neovim lazy load related config 2025-10-15 20:50:58 +02:00
hektor 52bf665774 Remove neovim lazy load related config 2025-10-15 20:50:58 +02:00
hektor 211da54bcf Fall back to 'paq.nvim' only when not on 'nixCats' 2025-10-15 20:38:39 +02:00
hektor 4f011cf8ef Fall back to 'paq.nvim' only when not on 'nixCats' 2025-10-15 20:38:39 +02:00
hektor b6d3015559 Add 'nixCatsUtils' from 'nixCats' 2025-10-15 20:15:43 +02:00
hektor 1b57185b72 Add 'nixCatsUtils' from 'nixCats' 2025-10-15 20:15:43 +02:00
hektor a3437b04e8 Source kitty configuration in home manager 2025-10-15 19:45:01 +02:00
hektor 59e4821b4c Add 'nixCats' neovim flake to NixOS flake 2025-10-14 22:59:24 +02:00
hektor 139089fc9d Add neovim packages to 'nixCats' flake 2025-10-14 22:03:49 +02:00
hektor 9a4c8df398 Add neovim packages to 'nixCats' flake 2025-10-14 22:03:49 +02:00
hektor a54e745190 Add minimal 'nixCats' flake template 2025-10-13 21:59:58 +02:00
hektor 7c36539033 Add minimal 'nixCats' flake template 2025-10-13 21:59:58 +02:00
hektor b25fc9a2b8 Source relevant '.bashrc.d/*' files in NixOS home manager 2025-10-05 19:56:38 +02:00
hektor 7bbd0dd8a8 Simplify NixOS fzf configuration 2025-10-05 19:56:38 +02:00
hektor 07e4669bb8 Update disko virtual machine configuration 2025-10-05 19:56:38 +02:00
hektor 203665a051 Migrate 'dots/.bashrc' fzf config to NixOS home manager 2025-10-05 19:56:38 +02:00
hektor 431fa046be Add packages from 'dots/.bin/setup' 2025-10-05 19:56:38 +02:00
hektor 83464117ae Move packages into host's 'home.nix' 2025-10-05 19:56:38 +02:00
hektor c8cf7aa5ca Refactor 2025-10-05 19:56:38 +02:00
hektor 0ad84eed45 Move home manager config into host's 'home.nix' 2025-10-05 19:56:38 +02:00
hektor 811388006f Format nix files using 'nixfmt' 2025-10-05 19:56:38 +02:00
hektor fc7e346f1e Ignore 'nixos-efi-vars.fd' (output from building vm) 2025-10-05 13:39:16 +02:00
hektor 0da72e9513 Update NixOS readme 2025-10-05 13:39:16 +02:00
hektor 749bd75992 Use disko 'single-disk-ext4' template for vm host 2025-10-05 13:39:16 +02:00
hektor 54b228381d Add 'kitty' package 2025-10-05 12:31:24 +02:00
hektor ee62f092e5 Update readme 2025-10-05 12:31:24 +02:00
hektor 6007760092 Add 'networking.hostId' (required for ZFS) 2025-10-05 12:31:24 +02:00
hektor f8fddbba14 Fix ZFS issue with virtual disks (https://discourse.nixos.org/t/zfs-with-disko-faluire-to-import-zfs-pool/61988/3) 2025-10-05 12:31:24 +02:00
hektor f824649f85 Fix inputrc path 2025-10-05 12:31:24 +02:00
hektor c4fe75a1b9 Set up disko zfs encrypted root for 'vm' host 2025-10-05 12:31:24 +02:00
hektor bfa17953a8 Use an easy (though insecure) initial password (for testing) 2025-10-04 21:25:32 +02:00
hektor c36b202d4e Modularize NixOS 'vm' configuration 2025-10-04 21:25:11 +02:00
hektor ca8cfd7deb Use 'systemd-boot' bootloader instead of GRUB 2025-10-04 20:52:07 +02:00
hektor b69140605c Update NixOS networking configuration 2025-10-04 20:52:07 +02:00
hektor 70363bdc48 Fix SSH daemon not starting 2025-10-04 20:17:05 +02:00
hektor f8169a8438 Source 'dots/.inputrc' 2025-10-04 19:07:02 +02:00
hektor 85f81e61e2 Switch from gnome to XMonad (config from dots) 2025-10-04 19:06:01 +02:00
hektor 6e48621275 Link NixOS repo in dotfiles repository 2025-10-04 18:33:55 +02:00
hektor 8a0e1758de Link NixOS repo in dotfiles repository 2025-10-04 18:33:55 +02:00
hektor 626bdc79bf Add 'dots/' from commit 'f64b634dd8fbb2c8a2898c3b9d0acc9452e4d966'
git-subtree-dir: dots
git-subtree-mainline: 2ad98cde17
git-subtree-split: f64b634dd8
2025-10-04 18:28:04 +02:00
hektor f64b634dd8 Remove absolute path from github credential helper 2025-10-04 18:03:55 +02:00
hektor a4bcea8834 Define nixGL with wrapper 2025-10-03 23:42:39 +02:00
hektor ec1a76dff1 Remove redundant vim JS/TS plugins (as migrated to nvim) 2025-10-03 23:42:39 +02:00
hektor 6c2c452fac Extend 'ftdetect.lua' for tsconfig and dotenv files 2025-10-03 23:42:39 +02:00
hektor 6ed4de0b11 Migrate vim vscode jsonc filetype detection to nvim 2025-10-03 23:42:39 +02:00
hektor 58df131415 Remove 'tpope/vim-commentary' and use nvim commenting (see ':h commenting') 2025-10-03 23:42:39 +02:00
hektor 46e7625928 Modularize nix packages into 'packages.nix' 2025-10-03 23:42:39 +02:00
hektor fe5ebec536 Set up nix with home manager (only work host for now) 2025-10-03 23:42:39 +02:00
hektor 20914d33c7 Replace 'alacritty' with 'kitty' 2025-10-03 23:42:19 +02:00
hektor 060f6a2f83 Add kitty configuration 2025-10-03 23:33:16 +02:00
hektor e36012e0d6 Update tmux themes to be more consistent 2025-10-03 23:30:48 +02:00
hektor f4a17dc0c8 Add zenwritten tmux themes (from zenwritten.nvim) 2025-10-03 23:19:49 +02:00
hektor 2f29d940f2 Add zenwritten kitty themes (from zenwritten.nvim) 2025-10-03 23:19:27 +02:00
hektor 4bdbfa0c0d Add 'ip' bash aliases 2025-07-12 18:14:26 +02:00
hektor ee49296d41 Clean bash aliases (remove unused) 2025-07-12 18:14:01 +02:00
hektor e35cf075bf Extract JavaScript aliases to '~/.bash_aliases/js' 2025-07-12 18:10:50 +02:00
hektor 05ee0bf5f1 Add 'sshconfig' host snippet 2025-06-28 14:02:05 +02:00
hektor 46543f4eb8 Add taskwarrior 'sync.example' 2025-06-28 13:54:33 +02:00
hektor 058dc4107c Replace 'gitblame.nvim' with 'gitsigns.nvim' 2025-06-28 13:46:57 +02:00
hektor b8953fc74a Add ripgrep pcakage to 'setup' script (dependency for nvim) 2025-06-27 19:34:20 +02:00
hektor b64d22e114 Remove 'whoamip' script 2025-06-27 19:33:55 +02:00
hektor 0a50cd90b3 Hide prettier errors 2025-06-27 19:31:33 +02:00
hektor 4dbeaccf51 Use 'stop_after_first' for prettier in 'conform.nvim' 2025-06-27 19:29:59 +02:00
hektor df7d2aca6b Support 'helm' yaml files 2025-06-27 19:28:36 +02:00
hektor 6b350ab1dd Automate selecting jira tickets in 'git-cb' script 2025-06-20 15:11:25 +02:00
hektor b53f1ee586 Add 'git-cb' script 2025-06-20 15:03:58 +02:00
hektor bd4133d5e5 Source jira aliases if installed 2025-06-20 13:58:29 +02:00
hektor 78e6695782 Add global yamllint config 2025-06-19 11:46:12 +02:00
hektor 33542630d5 Add alacritty zenwritten themes 2025-06-16 21:16:22 +02:00
hektor 7c44c1cd4e Configure tridactyl search bindings 2025-06-06 20:40:08 +02:00
hektor bc62524451 Add 'tridactylrc' 2025-06-06 20:25:35 +02:00
hektor e70f6f6a5f Remove 'nvm' from bashrc (using 'mise' now) 2025-06-06 19:54:24 +02:00
hektor 55306b1d6f Add commented out nvim options 2025-06-05 20:23:39 +02:00
hektor b5b48016ef Improve 'save-passwddb' script 2025-06-05 20:14:47 +02:00
hektor 6760db72c5 Fix and simplify 'nvm' setup 2025-05-27 23:20:23 +02:00
hektor 28f6655e2e Add 'xclip' package to '~/.bin/setup' 2025-05-27 21:29:38 +02:00
hektor 09288ce752 Migrate 'unblevable/quick-scope' to nvim 'jinh0/eyeliner' 2025-05-15 18:22:08 +02:00
hektor 5afe069edf Fix 'image.nvim' plugin warnings 2025-05-15 18:09:50 +02:00
hektor 22e23ba416 Migrate pandoc 'AnkiDeck' function to neovim 2025-05-15 18:09:50 +02:00
hektor 5b08b04332 Migrate 'fzf.vim' to neovim 'fzf-lua' 2025-05-15 18:09:37 +02:00
hektor 90725931a7 Remove telescope and dressing 2025-05-15 16:30:21 +02:00
hektor 9e3b784168 Modularize ssh config 2025-05-15 10:28:58 +02:00
hektor 1bb976d442 Set up neovim AI plugins (for test run) 2025-05-10 22:56:19 +02:00
hektor 37a05500bf refactor: use explicit executable check for zk command 2025-05-09 22:22:01 +02:00
hektor e8962144e5 fix: improve zk command check and error handling 2025-05-09 22:21:15 +02:00
hektor ae2a439c14 chore: update zk setup script prompts and execution 2025-05-09 22:21:08 +02:00
hektor 2c7f44ce16 feat: add prompt to run zk after setup 2025-05-09 22:16:27 +02:00
hektor b58ff906e9 feat: add setup script for zettelkasten 2025-05-09 22:16:19 +02:00
hektor 8046bd1868 Add diagnostic config 2025-05-05 23:07:27 +02:00
hektor 800ae0cbde Add 'stylua' config 2025-05-05 23:06:22 +02:00
hektor 8f2787f439 Add/migrate some basic lua snippets 2025-05-05 23:06:00 +02:00
hektor a76fd5cd62 Use smarter newline mapping for json filetype 2025-05-05 23:02:46 +02:00
hektor e660a92443 Add neovim plugins (+configuration) 2025-05-05 22:51:56 +02:00
hektor 958883c21c Add nvim 'fzf-lua' plugin 2025-05-05 22:51:56 +02:00
hektor fd11b48fa9 Set up nvim package manager 2025-05-05 22:51:56 +02:00
hektor 66714ab532 Add neovim keymaps 2025-05-05 22:51:55 +02:00
hektor 7fb822dbff Highlight nvim yanks 2025-05-01 17:01:30 +02:00
hektor 5e5d88a92a Detect '.lintstagedrc' filetype (json) 2025-05-01 17:01:01 +02:00
hektor f6e525cf53 Add neovim keymaps 2025-05-01 16:59:35 +02:00
hektor e5fe794c41 Move vim config to 'vim' module 2025-05-01 16:58:23 +02:00
hektor d576a3f8e7 Add 'shellcheck=bash' and editor hints to bash config/aliases 2025-03-01 12:05:26 +01:00
hektor 7149917762 Switch terminal to kitty 2025-02-16 16:15:03 +01:00
hektor 5d2cb51aee Move XMonad calculator command to '.bin/calc' 2025-02-16 16:13:00 +01:00
hektor c88c54b9ca Remove spawn zettelkasten XMonad keybinding 2025-02-16 16:08:51 +01:00
hektor e36b04aaa7 Track tmux hooks fallback config 2025-02-06 09:28:09 +01:00
hektor 8adb4a2add Use 'local' for function arguments 2025-02-06 00:15:12 +01:00
hektor 4e928c2306 Extend automatic dotfiles setup 2025-02-05 23:18:10 +01:00
hektor 87bfdb5ba2 Add packages to setup 2025-02-05 23:17:55 +01:00
hektor 21208c1afa Update readme 2025-02-05 20:42:33 +01:00
hektor 80e381f62d Update tmux config 2025-02-05 20:34:13 +01:00
hektor 0307be8d2c Add 'gnome-setup' to 'setup' 2025-02-05 20:32:09 +01:00
hektor a574645fa0 Update dotfiles setup 2025-02-05 20:11:42 +01:00
hektor d463bd7432 Add worktree config alias 2025-02-05 19:48:28 +01:00
hektor 3f685d0753 Update Github CLI config 2025-02-05 19:48:11 +01:00
hektor 3e71764fd8 Configure alacritty window settings 2025-02-05 17:31:44 +01:00
hektor 3f5a4427c0 Clear gnome pinned apps on setup 2025-02-05 01:22:50 +01:00
hektor e525ea0274 Add 'setup-gnome' script 2025-02-05 01:11:50 +01:00
hektor a83d0fd28f Update 'setup' script 2025-02-05 00:31:41 +01:00
hektor f858f7374b Add 'sb-wg' script 2025-01-28 19:25:56 +01:00
hektor 733b37de30 Remove redundant 'taskd' environment variables 2025-01-15 17:20:36 +01:00
hektor b8694ba1c4 Remove wacom keybindings 2025-01-11 22:30:36 +01:00
hektor 999921b86b Map 'F10 to xrandr --auto 2025-01-11 22:30:08 +01:00
hektor 650e6fc247 Update gitignore 2025-01-11 15:52:40 +01:00
hektor d20283c8f7 Improve '.bash_history' config 2025-01-11 15:48:24 +01:00
hektor e385015238 Update alacritty config 2025-01-11 15:41:21 +01:00
hektor 82b780951d Split alacritty config 2025-01-11 15:34:53 +01:00
hektor 4ca7557e98 Use 'nvimdiff' as mergetool 2025-01-06 17:15:03 +01:00
hektor 454b80aa4e Remove autorandr config 2025-01-02 21:35:23 +01:00
hektor e9ad41f94f Remove sketch (or wacom) scripts 2025-01-02 21:33:44 +01:00
hektor d4ba22670a Refactor 'fzf-book' 2025-01-02 21:14:07 +01:00
hektor 7e10a1c39d Add pnpm config 2025-01-02 21:08:12 +01:00
hektor 5805c9093f Make 'ag' respect gitignore 2025-01-02 21:07:20 +01:00
hektor ec0e06a805 Add git rebase aliases 2025-01-02 21:05:31 +01:00
hektor b5365da6ca Remove default snippet comments 2025-01-02 21:01:31 +01:00
hektor 15f1227522 Source '~/.bash_completions' if it exists 2024-12-28 13:29:03 +01:00
hektor 1f192f94fa Use '.' instead of 'source' 2024-12-28 13:28:43 +01:00
hektor 04d44eb8dd Remove 'coc.nvim' plugin 2024-12-25 16:47:57 +01:00
hektor 849c7e97fa Use single key for interactive staging (git) 2024-12-25 16:47:57 +01:00
hektor 83437bd724 Update alacritty config 2024-12-23 21:11:53 +01:00
hektor 9e7524ce5e Migrate alacritty to toml 2024-12-23 20:51:32 +01:00
hektor 8d69407d71 Update xmonad statusbar(s) 2024-12-23 00:02:20 +01:00
hektor 2590f238df Update XMonad imports 2024-12-22 23:58:23 +01:00
hektor 6c8b99d375 Remove nix profile from path 2024-12-22 23:50:04 +01:00
hektor 1cdd9ecb81 Modify taskwarrior default report 2024-12-22 20:06:21 +01:00
hektor 7540945509 Extract taskwarrior aliases to own file 2024-12-22 20:06:00 +01:00
hektor 6d3ab7e6b9 Add taskwarrior 'z-arch' host config 2024-12-22 19:51:39 +01:00
hektor 3824bd663c Update taskwarrior config 2024-12-22 19:50:15 +01:00
hektor f4b69ffd0a Remove ipython profile 2024-12-15 21:24:24 +01:00
hektor 799dd32950 Add codi shell wrapper 2024-12-15 13:39:39 +01:00
hektor adc550b2ed Save X session errors 2024-12-14 17:55:03 +01:00
hektor 64b0958236 Only set 'SSH_AUTH_SOCK' out of ssh session 2024-12-14 17:51:45 +01:00
hektor ae567ecb58 Source bash prompt 2024-12-14 17:39:29 +01:00
hektor db5ca355b1 Add fold for aliases 2024-12-14 17:39:02 +01:00
hektor 3307434f30 Ignore shell check SC1091,SC1090 2024-12-14 17:14:24 +01:00
hektor 69d5463960 Add 'git commit --ammend' alias 2024-12-14 16:35:58 +01:00
hektor 8b893257af Add signing key to git config 2024-12-14 16:35:06 +01:00
hektor a758946e82 Add npm and yarn checks 2024-12-14 16:34:07 +01:00
hektor d9603c543c Update git aliases 2024-12-14 15:57:23 +01:00
hektor e29e6e808c Disable git commit gpgsign 2024-12-14 15:51:50 +01:00
hektor 6b444e90e2 Add git worktree alias 2024-12-14 15:51:16 +01:00
hektor 171d56150d Migrate 'dmenu-trans' to rofi 2024-12-12 19:24:39 +01:00
hektor fc08e2046b Add 'taskdeps' script 2024-12-07 20:31:53 +01:00
hektor 41c7740c0c Remove unused systemd user services 2024-10-08 20:37:57 +02:00
hektor 1dd6ac51ae Update wiki.vim config 2024-10-08 20:36:56 +02:00
hektor 2444cba1cb Update 'pandocCiteKey' syntax highlighting 2024-10-08 20:35:51 +02:00
hektor 02eab915e7 Fix 'GetContext' 2024-10-08 20:35:12 +02:00
hektor e3517c8dc0 Allow remap for split mappings 2024-10-08 20:34:46 +02:00
hektor 06c90adb7c Add 'AnkiDeck' function 2024-10-08 20:34:26 +02:00
hektor 93a76e7940 Remove 'vim-obsession' plugin 2024-10-08 20:33:37 +02:00
hektor d2ac9d3822 Update wiki file types 2024-10-08 20:30:38 +02:00
hektor 14b69eb0f8 Update quickscope.vim config 2024-10-08 20:29:05 +02:00
hektor ce21e48fd7 Remove 'copilot.nvim' 2024-10-08 20:22:31 +02:00
hektor e1f55bed1a Reorganize bash config 2024-09-29 11:41:29 +02:00
hektor 393e2c5db5 Move host-specific configuration 2024-09-29 11:38:47 +02:00
hektor 6cf696e1f6 Update bash editor configuration 2024-09-29 11:36:20 +02:00
hektor 78fafd18ee Update NeoVim VSCode mappings 2024-09-23 20:36:20 +02:00
hektor ea4bb90bab Add neovim vscode config 2024-09-22 18:36:31 +02:00
hektor 620a5863a3 Organize vimrc 2024-09-22 16:27:17 +02:00
hektor 227944b184 Clean vimrc 2024-09-22 16:03:50 +02:00
hektor 8ed805dacf Fix guibg error 2024-09-22 14:13:51 +02:00
hektor 21e5d0ac86 Separate config into '.vim/plugins/' 2024-09-22 11:54:49 +00:00
hektor 0ce01efd46 Update colorscheme config 2024-09-22 11:54:49 +00:00
hektor 5a29b672a2 Add rofi keybindings to XMonad 2024-09-22 11:54:49 +00:00
hektor 2f4ed6cc51 Update password backup scripts 2024-09-22 11:54:49 +00:00
hektor a6a85d1ea5 Update 'save-passwddb script'
Update `save-passwddb` script to use Proton drive instead of Google
drive. Also fixes an issue with too many files being included.
2024-09-22 11:54:49 +00:00
hektor 58478b9b15 Delete .vim/snips/.snippets 2024-09-22 11:41:30 +00:00
hektor 0fe4662551 Update taskwarrior sync setup 2024-09-13 14:17:00 +02:00
hektor ed44636981 Use regex for filename basename snippet 2024-09-02 19:17:50 +02:00
hektor 72629f5b98 Update 'layoutHook' 2024-03-30 16:59:35 +01:00
hektor e771a09fbe Add 'swallowEventHook' 2024-03-30 16:50:15 +01:00
hektor b6ba9ab4ea Remove ShowWName stuff 2024-03-30 16:27:19 +01:00
hektor 09812befdc Add folds for hooks 2024-03-30 16:26:32 +01:00
hektor f98b19f0b1 Add 'myHandleEventHook' 2024-03-30 16:21:22 +01:00
hektor d2bf1ed9bd Add 'myModMask' 2024-03-30 16:17:43 +01:00
hektor 3795d10197 Organize imports 2024-03-30 16:15:35 +01:00
hektor b0df672009 Fix deprecated 'dynamicPropertyChange' 2024-03-30 16:00:54 +01:00
hektor 42df25d5cc Update '.bash_profile' 2024-01-30 21:51:18 +01:00
hektor ac066bb076 Add '1px border <color>' snippets 2024-01-30 21:48:10 +01:00
hektor 01842d8f1e Use polybar config 2024-01-30 15:54:02 +01:00
hektor 4b74af8b99 Update readme 2024-01-28 21:21:44 +01:00
hektor 28d1e36003 Update 'fzf-book' script 2024-01-28 21:21:33 +01:00
hektor 4708739c66 Update anki scripts 2024-01-28 21:20:49 +01:00
hektor bb54ec3629 Remove 'prep-duration' argument 2024-01-28 21:20:21 +01:00
hektor e9017047cd Update 'clear' argument 2024-01-28 21:20:05 +01:00
hektor 6aefd6bd92 Update pomo directory 2024-01-28 21:19:21 +01:00
hektor 71d8b33123 Update drive directory 2024-01-28 21:17:59 +01:00
hektor 93f223c1ec Update 'tmux-workspace' script 2024-01-28 20:34:43 +01:00
hektor 3d1fe7b173 Fix shellcheck warning 2024-01-28 20:33:29 +01:00
hektor bab4c612f3 Remove 'get-displays' 2024-01-28 20:32:17 +01:00
hektor 16c87b6b4c Use rofi launcher 2024-01-28 20:27:45 +01:00
hektor 892ab35612 Update key bindings 2024-01-28 20:26:46 +01:00
hektor 958de4e03c Add 'zk' script 2024-01-26 12:27:41 +01:00
hektor fade05a394 Update user-dirs 2024-01-26 12:19:17 +01:00
hektor e11085ca91 Add section link snippet 2024-01-09 12:45:49 +01:00
hektor 4e625a45fa Update .gitignore 2024-01-03 19:39:59 +01:00
hektor 2793ac2349 Update 'shiftAndView' 2024-01-03 19:39:15 +01:00
hektor 2e29cb8292 Snap floating windows on drop 2024-01-03 18:58:31 +01:00
hektor 5e5c5464d3 Add quarto plugin 2024-01-02 21:35:56 +01:00
hektor f52a222230 Extract 'wiki.vim' config 2023-12-30 13:30:48 +01:00
hektor 3801186f8b Extract 'md-img-paste.vim' config 2023-12-30 13:27:22 +01:00
hektor e5a61705ee Update shebang snippets 2023-12-30 01:46:22 +01:00
hektor d57cff1227 Update pandoc config 2023-12-21 22:41:32 +01:00
hektor 5b51c48ece Update fzf config 2023-12-21 22:40:04 +01:00
hektor 1ccfb2b8fe Update eslint & prettier config 2023-12-18 14:06:59 +01:00
hektor 0092d0793f Extract 'commentary' config 2023-12-18 14:03:51 +01:00
hektor 480d1d8434 Extract (& update) 'copilot' config 2023-12-18 14:03:08 +01:00
hektor 6190162e49 Extract 'sandwich' config 2023-12-18 14:01:24 +01:00
hektor 1c8afd0690 Move silver_searcher config 2023-12-18 13:57:05 +01:00
hektor d6d23f913b Improve zettelkasten preview 2023-12-18 13:54:07 +01:00
hektor 24aeb3ffe3 Extract 'utils' config 2023-12-18 13:50:23 +01:00
hektor 1b62acfc80 Extract 'fold' config 2023-12-18 13:47:46 +01:00
hektor ad20848d86 Extract 'netrw' config 2023-12-18 13:45:53 +01:00
hektor 8e468a30b8 Hack statusbar color theme update 2023-12-15 16:13:06 +01:00
hektor 08fb963ea7 Add polybar example config 2023-12-13 16:06:39 +01:00
hektor 371a373431 Untrack xournalpp config 2023-12-11 23:44:40 +01:00
hektor 12cf0754b6 Untrack blender config 2023-12-11 22:50:19 +01:00
hektor 07c99da684 Sign commits using gpg 2023-12-10 10:52:57 +01:00
hektor 7d10e4fda4 Move alacritty config to $XDG_CONFIG_HOME 2023-12-10 10:39:18 +01:00
hektor 9e71502574 Use example file for spotify config 2023-12-10 10:33:37 +01:00
hektor 4c5607d1ed Use nvimpager as pager 2023-12-10 01:08:12 +01:00
hektor 8c7cca7f62 Bind 'copy' to 'y' 2023-12-10 01:07:39 +01:00
hektor df120d9fbb Fix clearing timer 2023-12-09 21:29:04 +01:00
hektor 07eec68706 Refactor 'pomo' script 2023-12-09 21:19:41 +01:00
hektor 41568b9bc6 Add module docstring 2023-12-09 20:48:54 +01:00
hektor 54f887f7d4 Save all KeePassXC databases 2023-12-09 20:39:04 +01:00
hektor 9297830bcf Replace 'init.vim' by 'init.lua' 2023-12-09 17:49:35 +01:00
hektor d93fb7fb2a Export 'GOPATH' 2023-12-09 17:49:35 +01:00
hektor 37eeb40184 Use '<C-a>' for tmux prefix 2023-12-09 17:49:35 +01:00
hektor 4f0106ca03 Keep inputrc in default location (fix) 2023-12-09 17:49:35 +01:00
hektor fcb1469297 Update screen temperature script 2023-11-21 13:57:28 +01:00
hektor 9ab374f38e Fix delete shortcut 2023-11-18 17:50:01 +01:00
hektor 6e091db8fa Update README.md 2023-11-18 17:43:15 +01:00
hektor 5a7df6bcd2 Use polybar 2023-11-18 17:35:16 +01:00
hektor 4849b64ea5 Add 'copy window to all workspaces' shortcuts 2023-11-18 17:26:46 +01:00
hektor 48681cfd4d Add basic ssh host backup script 2023-10-21 17:11:53 +02:00
hektor 0485edf197 Add 'fzf-ssh' script 2023-10-21 16:52:37 +02:00
hektor 0f8704bbb5 Use screen-temperature script 2023-09-12 12:45:01 +02:00
hektor e8cad0a7a5 Fix shellcheck warnings 2023-08-30 17:03:37 +02:00
hektor ea0ec29bce Update tmux path for config reload 2023-08-30 17:03:37 +02:00
hektor 3aa1900aa2 Update mpv config 2023-08-30 17:03:37 +02:00
hektor 378cd0c389 Update firefox config 2023-08-30 17:03:37 +02:00
hektor 734896b483 Update autorandr config 2023-08-30 17:03:37 +02:00
hektor 538b613185 Untrack atom config 2023-08-30 17:03:37 +02:00
hektor 47b036b046 Move inputrc to 'XDG_CONFIG_HOME' 2023-08-30 17:03:37 +02:00
hektor 741ef20266 Reopen zettelkasten to latest zettel 2023-08-30 17:03:37 +02:00
hektor 4f42ed7790 Remove 'sb-portfolio' 2023-08-30 17:03:37 +02:00
hektor 83f7ab9407 Add num_to_review 2023-08-30 17:03:37 +02:00
hektor 3bdbf82d37 Generalize 'sb-anki' to other taskbars 2023-08-30 17:03:37 +02:00
hektor 40236a9461 Update pomodoro script for xmobar 2023-08-30 17:03:37 +02:00
hektor e95270dd80 Remove terminal launcher 2023-08-30 17:03:37 +02:00
hektor 95ef4cb016 Update 'fzf-book' script 2023-08-30 17:03:37 +02:00
hektor 19225b8920 Update 'documentation' 2023-08-30 17:03:37 +02:00
hektor 09abdbc57d Generalize 'sb-tasks' to other taskbars 2023-08-30 17:03:37 +02:00
hektor 12b1ad09f8 Trust bluetooth devices before connecting 2023-08-30 17:03:37 +02:00
hektor ac3e2317f8 Update pandoc snippets 2023-08-30 01:15:29 +02:00
hektor aaebf727d2 Comply with ISO 639-2/T 2023-08-17 12:36:18 +02:00
hektor f867d5a969 Remove redundant micromamba config 2023-08-05 18:09:40 +02:00
hektor 5d15dcb287 Update bash aliases 2023-08-05 18:08:48 +02:00
hektor 17b1f076fa Add micromamba configuration 2023-08-02 17:12:37 +02:00
hektor 04d5e68961 Source private bashrc config 2023-08-02 17:09:16 +02:00
hektor 239d31a0a4 Add host-specific bashrc config 2023-08-02 17:06:28 +02:00
hektor e042fdb10d Set editor to nvim 2023-08-02 16:58:55 +02:00
hektor 04196c3d3a Update '.bash_profile' 2023-08-02 16:58:08 +02:00
hektor 7460ab69e9 Simplify dual boot aliases 2023-08-02 16:54:35 +02:00
hektor d45c8e7581 Make dual boot aliases host-specific 2023-08-02 16:50:58 +02:00
hektor fadf35956c Source private bash aliases 2023-08-02 16:42:46 +02:00
hektor 061760a323 Make brightness alias host-specific 2023-08-02 16:40:27 +02:00
hektor aabcc42279 Update gitignore 2023-08-02 16:35:16 +02:00
hektor ccd8cd3ebe Update '.inputrc' 2023-08-02 16:33:25 +02:00
hektor ff541ae8a9 Remove screen layout script (using autorandr) 2023-07-25 16:56:05 +02:00
hektor d98ad07799 Update backup script 2023-07-12 20:52:51 +02:00
hektor 2e75dcd0bf Remove unused scripts 2023-06-12 00:30:09 +02:00
hektor b0f5153229 Rename 'backup-home' to 'save-home' 2023-06-12 00:28:07 +02:00
hektor 57b6a468b1 Detect if password database is not present 2023-06-12 00:26:40 +02:00
hektor 1df3dd3042 Detect if password database is not present 2023-06-12 00:26:06 +02:00
hektor 5b4d9ec52b Detect if password database is not present 2023-06-12 00:25:20 +02:00
hektor 22fd72501d Track downloads path 2023-06-11 23:45:57 +02:00
hektor ea6bc056a6 Track screenshot folder structure 2023-06-11 23:42:05 +02:00
hektor acf2c0ae6e Update flameshot config 2023-06-11 23:39:31 +02:00
hektor e1da112f78 Update (& move) coc.nvim config 2023-06-08 19:33:32 +02:00
hektor 165f3153dd Add XDG dir config 2023-06-08 19:33:32 +02:00
hektor 6263b601dc Add IPython config 2023-06-08 19:33:32 +02:00
hektor 4bd4bfe836 Fix workspace keybindings (screen off by one) 2023-06-08 18:49:05 +02:00
hektor a1ae3dace9 Make date more informative 2023-06-04 15:21:59 +02:00
hektor 9636ca59fc Add SWNConfig 2023-06-04 15:21:33 +02:00
hektor 5a0b4ef2b8 Refactor 2023-06-04 15:20:52 +02:00
hektor b60c8514b7 Update keybindings 2023-06-04 15:20:14 +02:00
hektor bac32dfe10 Shift to workspace based on window name 2023-06-04 15:17:37 +02:00
hektor 14c80c96df Fix folds 2023-06-04 15:00:30 +02:00
hektor 31f45fdff8 Adapt layout to screen width 2023-06-04 14:49:51 +02:00
hektor 9da2a4c443 Update manageHook 2023-06-04 14:48:23 +02:00
hektor 9fcd70f47a Use named layouts 2023-06-02 22:22:42 +02:00
hektor 00defddeb7 Update statusbars for multiple screens 2023-06-02 22:21:03 +02:00
hektor ca9e1b493b Add fold markers 2023-06-02 22:12:39 +02:00
hektor edfe524ae2 Separate workspaces for separate screens 2023-05-22 18:26:17 +02:00
hektor 579af889fe Add readme 2023-05-21 19:52:13 +02:00
hektor d0a84d7128 Untrack suckless tools 2023-05-21 19:47:49 +02:00
hektor 7254630c49 Update bash aliases 2023-05-21 19:38:42 +02:00
hektor cdcaea7033 Dedicate folder for bash aliases 2023-05-21 19:35:20 +02:00
hektor 94fc0d8cdb Update bash aliases 2023-05-21 19:17:14 +02:00
hektor 3f588cabbc Add alias aliases 2023-05-21 19:16:51 +02:00
hektor d80e8c1882 Update gh config 2023-05-21 19:14:47 +02:00
hektor 53fce1484f Bind <F8> to KeePassXC 2023-05-21 18:31:30 +02:00
hektor 0c3b73a13d Start albert from Xmonad 2023-05-21 18:31:30 +02:00
hektor f2dcf1e0e5 Adjust window border width 2023-05-21 18:31:30 +02:00
hektor d37404af0c Update manageHook 2023-05-21 18:31:30 +02:00
hektor 24952a74fd Update gitconfig 2023-05-21 18:31:30 +02:00
hektor 832620344f Add filename snippets for all filetypes 2023-05-20 21:13:25 +02:00
hektor 671c8e5575 Track (empty) .build directory 2023-05-20 12:16:00 +02:00
hektor 9cffe29fc7 Add shebang snippets 2023-05-20 10:30:45 +02:00
hektor 644114263d Add filename snippet 2023-05-19 19:39:18 +02:00
hektor 9ba5d6b192 Add codeblock snippets 2023-05-19 19:38:51 +02:00
hektor fe5cd9f00d Add math mode snippets 2023-05-19 19:37:57 +02:00
hektor bdb1444d01 Add math mode snippets 2023-05-19 19:35:07 +02:00
hektor fba5adce5d Add tikzpicture snippet 2023-05-19 19:30:44 +02:00
hektor 37b61e4f07 Update xmobar scripts 2023-05-19 19:24:25 +02:00
hektor a262f10268 Update '.resticexclude' 2023-05-19 18:59:03 +02:00
hektor 4aef6038ab Fix taskwarrior sync hook 2023-05-19 18:26:26 +02:00
hektor e074d94e5f Update xbindkeys config 2023-05-19 17:28:16 +02:00
hektor a79654571d Move xbindkeys config 2023-05-19 17:27:12 +02:00
hektor bd08512516 Extract workspaces 2023-05-15 14:36:12 +02:00
hektor 90b9744d1c Update backup script 2023-05-15 14:06:39 +02:00
hektor c43927140c Update bash aliases 2023-05-15 14:00:41 +02:00
hektor df1540a182 Update path alias 2023-05-15 13:59:40 +02:00
hektor 71cb7ba0f2 Update anki deck script 2023-05-15 13:47:59 +02:00
hektor ad0c4e684c Update XDG environment variables 2023-05-15 13:45:55 +02:00
hektor 39cf1a1529 Update cloze snippets 2023-05-15 13:43:37 +02:00
hektor e1e520d365 Detect snippet math contexts 2023-05-15 13:41:06 +02:00
hektor 04ac5a609d Add pandoc html comment snippets 2023-05-15 13:38:13 +02:00
hektor 557959af9a Add micromamba alias 2023-05-15 13:37:29 +02:00
hektor 27aef5502d Update zk preview 2023-05-15 13:36:57 +02:00
hektor 765c6d907f Remove 'vim-markdown-composer' 2023-05-15 13:35:36 +02:00
hektor eea103fff3 Update gitconfig 2023-05-12 21:08:31 +02:00
hektor 5b801ed608 Move comment highlighting to 'after/syntax' 2023-05-12 14:32:57 +02:00
hektor 77f58140a1 Merge branch 'master' of github.com:hektor/dots 2023-05-07 16:47:50 +02:00
hektor be4ddc5a89 Update taskwarrior config 2023-05-05 20:31:42 +02:00
hektor 4eac165cb3 Update git config 2023-05-04 23:58:11 +02:00
hektor 82b6187cd6 Update xmonad config 2023-05-04 23:57:30 +02:00
hektor a68cb91717 Update xmobar 2023-05-04 23:56:20 +02:00
hektor 75e78e97ed Add command for listing anki decks 2023-05-04 02:54:51 +02:00
hektor fed7d836c3 Update npmrc 2023-05-01 15:56:35 +02:00
hektor 510fbf9ae8 Remove conda configuration 2023-05-01 15:55:07 +02:00
hektor ed1045c2dc Use '.git' directory for dots 2023-05-01 15:35:18 +02:00
hektor ead293ba46 Rename wiki to zk (zettelkasten) 2023-05-01 15:34:27 +02:00
hektor 5fd5686fd4 Untrack wiki files 2023-05-01 15:27:25 +02:00
hektor 8ce25ec22d Add zathura shortcuts 2023-05-01 15:16:22 +02:00
hektor a70f933a3b Update wiki files 2023-05-01 15:13:20 +02:00
hektor ffad2c3148 Update default applications 2023-04-30 18:25:06 +02:00
hektor 15267c6873 Update picom config 2023-04-30 18:24:15 +02:00
hektor 1eca37bd99 Update solaar config 2023-04-30 18:22:40 +02:00
hektor 3935cc4acc Update resticexclude 2023-04-30 18:22:06 +02:00
hektor 7213196244 Replace 'gitgutter' with 'coc-git' 2023-04-30 18:21:01 +02:00
hektor a0937ca1f7 Remove conda config 2023-04-30 18:19:39 +02:00
hektor ea84a25c47 Add example dotenv 2023-04-30 18:17:54 +02:00
hektor 0c8cc4f59c Remove submodule 2023-04-30 18:17:39 +02:00
hektor 0d1c569247 Move newsboat config 2023-04-29 19:06:46 +02:00
hektor 8d406a16c7 Update (pandoc) wiki config 2023-04-29 18:54:51 +02:00
hektor e23ba43c46 Detect '.pl' files as prolog (instead of perl) 2023-04-29 17:50:30 +02:00
hektor bf4780639c Conceal prolog operators 2023-04-29 17:48:11 +02:00
hektor 8dd31453b7 Update pandoc syntax 2023-04-29 17:47:53 +02:00
hektor 32545b5cb0 Auto cd into wiki 2023-04-29 17:45:05 +02:00
hektor ef1643b0e9 Add 'sketch' script 2023-04-24 14:03:55 +02:00
hektor 8ed099ea91 Merge branch 'master' of github.com:hektor/dots 2023-04-24 13:40:28 +02:00
hektor 6f21f40c24 Use light theme 2023-04-24 13:39:06 +02:00
hektor fbe6a409d5 Add xournal config 2023-04-24 13:34:27 +02:00
hektor 0cbab089bd Improve taskwarrior sync setup 2023-04-14 17:34:14 +02:00
hektor f615055adb Update JS & TS config 2023-04-07 22:58:07 +02:00
hektor 488c8781ea Improve intellisense 2023-04-07 22:57:41 +02:00
hektor 581bf4cdff Update coc eslint & prettier config 2023-04-07 22:56:10 +02:00
hektor d409ffb704 Improve R5RS S-expression sends 2023-04-07 22:53:27 +02:00
hektor 935c9f17cd Improve config reloading 2023-04-07 22:51:31 +02:00
hektor 934420d20a Update plugin config 2023-04-07 22:51:17 +02:00
hektor 0d5804a6ac Update mappings 2023-04-07 22:48:21 +02:00
hektor ba34edd8ae Clean up functions 2023-04-07 22:47:48 +02:00
hektor 3b6f5d1315 Update fold config 2023-04-07 22:45:42 +02:00
hektor 6b236fee98 Update general config 2023-04-07 22:42:56 +02:00
hektor fd3e34596a Update markdown (wiki) config 2023-04-07 22:21:22 +02:00
hektor 9de9ba4b49 Add 'better BibTeX' config 2023-03-21 23:21:49 +01:00
hektor 15f73d7e40 Update '.bashrc' 2023-03-12 13:18:14 +01:00
hektor a7f58cfde9 Update '.bashrc' 2023-03-12 13:15:43 +01:00
hektor 0b7b0900af Merge branch 'master' of github.com:hektor/dots 2023-03-12 13:12:36 +01:00
hektor 74285bcabb Update bash aliases to nvim 2023-03-12 13:10:50 +01:00
hektor e4fbda03b4 Configure coc bibtex 2023-03-12 13:09:45 +01:00
hektor e6836424a8 Update fzf setup 2023-02-26 22:59:09 +00:00
hektor 0d68784dcc Merge 2023-02-26 22:56:09 +00:00
hektor 28a6f41585 Add os-specific fzf setup 2023-02-26 22:38:43 +00:00
hektor f2c3f16a63 Handle 'non selections' 2022-12-02 13:27:32 +01:00
hektor 54b27b95b6 Add pacman scripts 2022-12-02 13:23:13 +01:00
hektor 9918dffc8a Add vim scripts 2022-12-02 13:22:21 +01:00
hektor 30443ccf9c Add xrandr helper scripts 2022-12-02 13:21:10 +01:00
hektor 3113852985 Merge branch 'master' of github.com:hektor/dots 2022-12-01 16:40:48 +01:00
hektor 6d3e472300 Detect & handle alternative boot managers 2022-12-01 16:38:19 +01:00
hektor 19e9241ac8 Update 'xmonad' config 2022-12-01 16:21:19 +01:00
hektor 01a3f64612 Update 'xmobar' config 2022-12-01 16:18:44 +01:00
hektor 671e9ed919 Update 'xmobar' config 2022-12-01 16:16:44 +01:00
hektor 75f5df5aed Update 'nvim' aliases 2022-12-01 16:13:46 +01:00
hektor c48c6bdc7e Set up 'sandwich' plugin 2022-12-01 14:01:41 +01:00
hektor 9fc83c8ec7 Update 'coc' configuration 2022-12-01 13:57:54 +01:00
hektor 904fa53db0 Set up 'quick-scope' plugin 2022-12-01 13:54:13 +01:00
hektor bd22e1ee57 Set up copilot 2022-12-01 13:51:29 +01:00
hektor 53dc02b4ca Update wiki plugin configuration 2022-11-27 23:24:25 +01:00
hektor 7bcb9066e7 Update wiki plugins 2022-11-27 23:12:07 +01:00
hektor 7eb0b110c6 Add nvim init.vim 2022-11-24 17:12:56 +01:00
hektor c029b03198 Update alacritty colors 2022-11-24 15:24:29 +01:00
hektor 248451749a Update zathura config 2022-11-24 15:24:09 +01:00
hektor 98d4a7aa5d Merge branch 'master' of github.com:hektor/dots 2022-11-24 15:18:23 +01:00
hektor 85289c069f Add conda config 2022-11-24 15:16:31 +01:00
hektor 65c83c735b Add feh config 2022-11-18 14:42:34 +01:00
hektor 43f8be510e Update README.md 2022-11-17 22:26:57 +01:00
hektor ef2ec77ac2 Swap layout images 2022-11-17 22:22:55 +01:00
hektor b18f58c9c0 Update keyboard readme 2022-11-17 22:20:47 +01:00
hektor 25b6a66f06 Update layout 2022-11-17 22:16:52 +01:00
hektor d1635ffd31 Update script to create script 2022-10-27 03:29:24 +02:00
hektor a8c4805542 Add pacman helper script 2022-10-27 03:19:46 +02:00
hektor 0e69eb27bc Add script to add script 2022-10-27 03:18:56 +02:00
hektor 64d92013c1 Update pomodoro script 2022-10-25 21:30:00 +02:00
hektor cac2e1a74e Update fzf scripts 2022-10-25 21:29:26 +02:00
hektor 23f6d6f1b4 Remove alarm script 2022-10-25 21:23:37 +02:00
hektor 3b65d5b69f Update cam script 2022-10-25 21:22:52 +02:00
hektor 6d33571083 Update removed keybindings 2022-10-25 21:17:06 +02:00
hektor a719ec43b4 Update launcher 2022-10-25 21:16:21 +02:00
hektor 49d99bb759 Remove custom startupHook 2022-10-25 21:15:38 +02:00
hektor e133985624 Update 'manageHook' 2022-10-25 21:15:15 +02:00
hektor 01e5b41bad Update layouts 2022-10-25 21:14:38 +02:00
hektor 31eb8d11ea Remove screen corner actions 2022-10-25 21:13:04 +02:00
hektor 7708fd74be Update xmobar configuration 2022-10-25 21:11:18 +02:00
hektor ebbe1581e9 Organize xmonad imports 2022-10-25 21:09:32 +02:00
hektor 33e32fe515 Add nvm initialization 2022-10-25 20:57:14 +02:00
hektor 25348f79c1 Add nix package manager to path 2022-10-25 20:56:54 +02:00
hektor 7c073bb9e6 Add 'XDG_CONFIG_HOME' environment variable 2022-10-25 20:56:27 +02:00
hektor 759ee34f3b Improve fzf initialization 2022-10-25 20:56:01 +02:00
hektor 184f4fe0fc Update bash prompt 2022-10-25 20:54:33 +02:00
hektor 9856b53ef9 Add folds (markers) 2022-10-25 20:54:01 +02:00
hektor b355d5a802 Add conda config 2022-10-24 18:13:56 +02:00
hektor e502d0e66a Add flameshot config 2022-10-23 13:49:45 +02:00
hektor 3ba86b0303 Create fzf terminal launcher 2022-09-25 15:33:36 +02:00
hektor c167030f09 Add layout keybindings 2022-09-24 16:18:46 +02:00
hektor db4714086d Extend manageHook 2022-09-24 16:18:24 +02:00
hektor 668b4c7e27 Add magnifier keybindings 2022-09-24 16:18:01 +02:00
hektor ba751e369f Hide borders for single windows 2022-09-24 16:17:14 +02:00
hektor 09a84cae23 Update anki cloze commands 2022-09-24 12:31:16 +02:00
hektor 632d135ccd Adjust pandoc syntax highlighting 2022-09-24 12:30:37 +02:00
hektor 28c110cd48 Update environment variables 2022-09-24 12:29:42 +02:00
hektor 09bcf2bac2 Update zathura config 2022-09-24 12:29:14 +02:00
hektor e2aa7aaefb Update ssh key agent service 2022-09-24 12:28:50 +02:00
hektor 4733aef8d3 Update replace w/ '.html' filter 2022-09-24 12:28:05 +02:00
hektor 869eb017c4 Use 's' for subs 2022-09-24 12:25:46 +02:00
hektor 08092da5b2 Update mpv config 2022-09-24 12:25:34 +02:00
hektor 7c30f08072 Add custom osc 2022-09-24 12:25:22 +02:00
hektor 1bd6634180 Add keepass config 2022-09-24 12:21:46 +02:00
hektor 09ae83df18 Use unicode symbols for coc diagnostics 2022-09-24 11:30:02 +02:00
hektor 644169cf5a Update eslint prettier config 2022-09-24 11:29:07 +02:00
hektor 8f8a17733f Set up languageservers 2022-09-24 11:28:19 +02:00
hektor 8c555f9572 Update pandoc snippets 2022-09-24 11:26:42 +02:00
hektor bfe331dfb9 Update resticexclude 2022-09-24 11:25:53 +02:00
hektor 830f64030e Remove color from date 2022-09-24 11:16:11 +02:00
hektor cab1a08cc2 Update xinitrc 2022-09-24 11:15:56 +02:00
hektor 42f7b5e837 Adjust colorscheme 2022-09-24 11:15:33 +02:00
hektor aef2880b8f Reduce number of workspaces 2022-09-24 11:15:13 +02:00
hektor 227597c4b1 Update xmobar configuration 2022-09-24 01:07:16 +02:00
hektor 8ffc997f99 Update xmonad configuration 2022-09-24 01:07:06 +02:00
hektor 7fd7f2d50d Update xinitrc 2022-09-23 00:47:20 +02:00
hektor 342caa641b Add xmonad configuration 2022-09-23 00:46:34 +02:00
hektor c29ce57628 Update fzf book script 2022-09-22 20:46:42 +02:00
hektor e9b0a6acd2 Refactor fzf fontnames script 2022-09-22 20:42:26 +02:00
hektor 8951c2e56b Update fzf book script 2022-09-22 20:42:04 +02:00
hektor 2ddd2ab219 Remove 2022-09-22 14:06:53 +02:00
hektor 902e1e1275 Update README 2022-09-22 14:05:59 +02:00
hektor 0c53b703f1 Add 'fzf' fontnames script 2022-09-22 13:53:21 +02:00
hektor 9a2145e2d1 Move atom config 2022-08-27 11:06:51 +02:00
hektor 4407e35765 Add firefox config setup script 2022-08-27 10:41:45 +02:00
hektor 2c1e4303ab Add firefox config 2022-08-27 10:27:27 +02:00
hektor d48b4997c7 Remove old R5RS REPL support 2022-08-21 11:07:52 +02:00
hektor 0212c6e8d4 Add pandoc configuration 2022-08-21 10:57:03 +02:00
hektor c1b034529d Add R5RS REPL mappings 2022-08-21 10:56:08 +02:00
hektor e2f75347a1 Ignore cloze starts 2022-08-20 10:47:35 +02:00
hektor b8070fbb8f Allow multidigit numbers 2022-08-20 10:41:20 +02:00
hektor e0a71363b4 Extend sandwich for cloze notes 2022-08-20 10:40:06 +02:00
hektor c4d2fa498c Render whitespace 2022-08-18 13:47:32 +02:00
hektor d3cf2a4907 Allow extra characters 2022-08-16 15:23:59 +02:00
hektor e547d0c01e Add cloze helpers 2022-08-16 15:23:18 +02:00
hektor 79fdb93a63 Extend pandoc-syntax 2022-08-16 10:48:45 +02:00
hektor b2234aa463 Add lua filter for 'tikz' diagrams 2022-06-12 00:28:01 +02:00
hektor 4fbdacb859 Update pomodoro script (repeats) 2022-05-20 00:37:29 +02:00
hektor 6ec53feabc Update ncspot config 2022-05-16 20:58:52 +02:00
hektor c5623458e8 Update 'resticexclude' 2022-05-16 11:50:05 +02:00
hektor e06e00bd20 Update statusbar scripts 2022-05-16 11:39:33 +02:00
hektor 6639ec989a Increase editor font size 2022-05-16 11:39:14 +02:00
hektor b31a2581b2 Update dwm shortcuts 2022-05-16 11:26:13 +02:00
hektor 97304834bc Add backup script 2022-05-16 11:22:12 +02:00
hektor 33fc3047fd Add 'rclone.conf' example 2022-05-16 11:21:34 +02:00
hektor 79a0496f5b Update 'gitconfig' 2022-05-16 00:26:56 +02:00
hektor beb7eba90e Update pandoc filters 2022-05-15 14:35:22 +02:00
hektor 08667c1d6c Wait for 'xsetwacom' to find tablet 2022-05-14 15:45:42 +02:00
hektor 1a79bfe43d Add atom package list 2022-05-13 12:06:00 +02:00
hektor 37ef60107f Use instead of ./ (GNU linker) 2022-05-12 09:32:07 +02:00
hektor 6abdd0e8a7 Rearrange 2022-05-12 09:08:10 +02:00
hektor be66a10a0a Move 'Block' struct to header file 2022-05-12 09:07:35 +02:00
hektor c0fe3f2337 Add 'pipewire-pulse' config 2022-05-11 16:00:01 +02:00
hektor f554791668 Rename pipeable notify-send 2022-05-11 14:24:20 +02:00
hektor 57ee1bf2fb Remove redundant brave wrapper 2022-05-11 14:19:29 +02:00
hektor 99c9e249e5 Remove redundant script (because PipeWire) 2022-05-11 14:18:24 +02:00
hektor 474f071cb9 Add 'fzf' bluetooth wrapper script 2022-05-11 14:01:06 +02:00
hektor befa4239a5 Rename 'fzf' wrapper scripts 2022-05-11 14:00:08 +02:00
hektor c2c7995ab5 Add 'fzf' wrapper scripts 2022-05-11 13:55:36 +02:00
hektor 1c6f0776e1 Automate KeepassXC database backup 2022-05-11 13:45:34 +02:00
hektor 5957aa3ed4 Update statusbar 2022-05-11 13:26:31 +02:00
hektor a6876bb54e Add description 2022-05-11 12:34:22 +02:00
hektor b4050ee797 Enforce some Anki discipline 2022-05-11 12:31:24 +02:00
hektor 41c0481191 Disable finger touch by default 2022-05-11 12:27:48 +02:00
hektor 331f04f73f Colorize battery statusbar script 2022-05-11 12:27:21 +02:00
hektor 77065ebe39 Drop localhost 2022-05-11 12:25:43 +02:00
hektor 3280f9f89b Add description 2022-05-11 12:25:20 +02:00
hektor 2e353fe4a8 Add pandoc snippets 2022-05-11 12:08:01 +02:00
hektor daed5c79c5 Add 'LaTeX' snippets 2022-05-11 12:04:03 +02:00
hektor c66ba56332 Add 'GLSL' snippets 2022-05-11 12:02:42 +02:00
hektor 8494ebb03c Update README 2022-05-11 11:59:14 +02:00
hektor 13869571b5 Add vortex core layout 2022-05-11 11:57:04 +02:00
hektor f9ec2f327c Add 'geoclue' systemd user service 2022-05-11 11:31:20 +02:00
hektor b7aa2e8294 Add 'ssh-agent' systemd user service 2022-05-11 11:23:10 +02:00
hektor 2d5b7eed82 Add 'wacom' systemd user service 2022-05-11 11:22:59 +02:00
hektor 7ca492c053 Add tmux systemd user service 2022-05-11 11:22:43 +02:00
hektor 8ef636b986 Run xbindkeys on startup 2022-05-11 01:19:26 +02:00
hektor 2594397c92 Add Jupyter directory environment variable 2022-05-11 01:17:33 +02:00
hektor c3840e1edc Update 'fzf' configuration 2022-05-11 01:16:28 +02:00
hektor 89f2087c8b Update comments 2022-05-11 01:15:26 +02:00
hektor cc6504f993 Add R5RS REPL support 2022-05-11 01:13:54 +02:00
hektor baa699d31d Add 'coc-clangd' extension 2022-05-11 01:03:16 +02:00
hektor c8f4f34f50 Add 'JSONC' support 2022-05-11 01:02:08 +02:00
hektor 14cb3ebde6 Remove slimv plugin 2022-05-11 00:57:52 +02:00
hektor 7f7b6ee45c Add 'Man' command 2022-05-11 00:56:39 +02:00
hektor 4859fdb5a9 Update vim functions 2022-05-11 00:56:13 +02:00
hektor dd49fb4806 Remove slimv configuration 2022-05-11 00:50:43 +02:00
hektor 89a5fcbebf Update pandoc Makefile 2022-05-11 00:45:53 +02:00
hektor fce3115e80 Map wacom key for screenshots 2022-05-11 00:44:26 +02:00
hektor 7a50e8911e Update bash aliases 2022-05-11 00:43:33 +02:00
hektor 8d91701fd0 Limit spotify cache 2022-05-11 00:23:22 +02:00
hektor 2a6437a212 Add pomodoro python script 2022-05-04 15:41:07 +02:00
hektor df9bee20a2 Add statusbar colors 2022-04-30 18:57:28 +02:00
hektor 69ad8cd996 Add script to convert JSON to YAML 2022-02-06 16:22:14 +01:00
hektor 3dbd014b33 Make redshift gene 2022-02-03 17:50:51 +01:00
hektor f6e5e982c6 Set fixed cursor size 2022-02-03 17:50:11 +01:00
hektor afba1dbfac Remove custom gtk styling 2022-01-27 11:12:53 +01:00
hektor 5e171b1bb7 Drop mpv's screenshot keybindings 2022-01-27 11:10:31 +01:00
hektor 9f6dbca9b7 Remove color support setting 2022-01-27 11:08:26 +01:00
hektor 654be89d00 Add wacom mappings 2022-01-27 11:08:01 +01:00
hektor a7853fdfb4 Add fzf completion trigger 2022-01-27 11:06:32 +01:00
hektor 65106d0c95 Add wiki alias 2022-01-27 11:05:36 +01:00
hektor ed40b186c9 Update 'set-wacom-draw-area' script 2022-01-27 11:04:52 +01:00
hektor 6ebc4adccb Add 'gh' config 2022-01-26 11:59:34 +01:00
hektor 7e5c51d531 Rename bash alias file 2022-01-18 13:17:26 +01:00
hektor 946066c9d4 Move X11 config 2022-01-07 03:14:30 +01:00
hektor 6b78636e1a Move X11 config 2022-01-07 03:14:05 +01:00
hektor 8cb5ed0cee Move tmux config 2022-01-07 02:51:02 +01:00
hektor e8fc0133f4 Add tmux 'workspace' setup script 2021-12-31 16:19:17 +01:00
hektor ab7be0cc19 Add README.md 2021-12-31 16:17:58 +01:00
hektor 766c63824c Update dmenu scripts 2021-12-31 16:07:38 +01:00
hektor 749fd7b3ac Add dmenu bluetooth menu 2021-12-31 16:04:23 +01:00
hektor 0c0a7e6672 Open devdocs offline 2021-12-31 16:03:46 +01:00
hektor 4c42f09f96 List connected bluetooth audio devices 2021-12-31 16:02:58 +01:00
hektor 7da5acc4d3 Add battery level script 2021-12-31 16:01:55 +01:00
hektor 54cc883f83 Add webcam script 2021-12-31 16:01:19 +01:00
hektor 7ef59d6b09 Rename wiki helper 2021-12-31 15:59:34 +01:00
hektor 38297b3d39 Add jack bluetooth audio script 2021-12-31 15:56:43 +01:00
hektor da4e51e979 Add alarm script (wip) 2021-12-31 15:55:37 +01:00
hektor e5208f0eba Add a setup (wip) 2021-12-31 15:55:07 +01:00
hektor 7fa1ab5aac Update dunst config 2021-12-31 15:49:52 +01:00
hektor 60a2371f07 Add readme 2021-12-31 15:49:18 +01:00
hektor 83a9e15c9c Update atom config 2021-12-31 15:47:04 +01:00
hektor 90fce747c0 Update alacritty config 2021-12-31 15:43:45 +01:00
hektor 54cc2af949 Update coc config 2021-12-31 15:43:27 +01:00
hektor ce6041c9b8 Remove brave flags file 2021-12-31 15:42:26 +01:00
hektor ab7fe1a319 Replace 'brave-launcher' script 2021-12-31 15:41:19 +01:00
hektor 98e15f8412 Quote variable 2021-12-31 12:48:10 +01:00
hektor 8a97378bd4 Update zathura config 2021-12-31 12:47:19 +01:00
hektor f064e747fd Place all images in 'img' folder 2021-12-31 12:45:29 +01:00
hektor d02ff6c973 Update inputrc 2021-12-31 12:45:04 +01:00
hektor 8a0758571d Minimise bash history 2021-12-31 12:44:28 +01:00
hektor 97c19190a9 Update bash aliases 2021-12-31 12:43:40 +01:00
hektor 5cd6530419 Update .npmrc 2021-12-31 12:38:19 +01:00
hektor dd76fc23f7 Remove local '.gitignore's 2021-12-21 00:47:34 +01:00
hektor ae5e22d3a5 Update '.gitignore' 2021-12-21 00:45:53 +01:00
hektor 392297f508 Add general script for creating markdown index files 2021-12-05 12:59:22 +01:00
hektor b85e56a3b3 Fix title linebreak 2021-12-04 17:48:36 +01:00
hektor 0a491b554c Add wiki script 2021-12-04 17:44:36 +01:00
hektor a511810052 Update tmux config 2021-11-28 17:53:17 +01:00
hektor 26a83a8ae8 Add pandoc '<br/>' filter 2021-11-28 17:51:29 +01:00
hektor b07e7a7daa Update dwmblocks 2021-11-28 17:47:17 +01:00
hektor 42d7f53ac8 Update vim color scheme 2021-11-28 17:46:18 +01:00
hektor cc1ee83f20 Update vimwiki directory 2021-11-28 17:46:02 +01:00
hektor 8789e41a94 Remove unused scripts 2021-11-28 17:44:25 +01:00
hektor 13c6a3568c Remove newsboat urls 2021-11-28 17:42:46 +01:00
hektor 45193f0f85 Update wacom draw area script 2021-11-28 17:42:21 +01:00
hektor 48ee2ca7fd Use compositor 2021-11-28 17:40:18 +01:00
hektor a7c2b9da6f Automatically start redshift 2021-11-28 17:40:04 +01:00
hektor 8c82d5334d Automatically start X 2021-11-28 17:39:26 +01:00
hektor eab043862e Move taskrc to config directory 2021-11-28 17:37:41 +01:00
hektor 2fd0c5479a Add script to remove './' in markdown links 2021-09-28 19:38:29 +02:00
hektor fdf721c2b6 Add script to count json objects 2021-09-28 16:22:21 +02:00
hektor 07fbefb40e Update gitconfig 2021-09-17 14:27:51 +02:00
hektor 577bb10fdc Add 'restore --staged' alias 2021-09-17 14:21:03 +02:00
hektor 20d6a92930 Remove unused aliases 2021-09-17 14:20:10 +02:00
hektor ab35820b2f Adjust git colors 2021-09-17 14:13:37 +02:00
hektor e1a7513d76 Rename command for listing aliases 2021-09-17 13:58:42 +02:00
hektor 1ff2ae51aa Add 'log' config 2021-09-17 13:54:43 +02:00
hektor ea63636ad1 Add alacritty config 2021-08-31 14:34:35 +02:00
hektor 4681b3d3d1 Update tag names 2021-08-31 14:33:56 +02:00
hektor 2a3dd96c50 Update ncspot color scheme 2021-08-31 14:33:02 +02:00
hektor 90eb486e57 Update .xinitrc 2021-08-31 14:30:17 +02:00
hektor 249efa7942 Add 'XDG_SESSION_TYPE' 2021-08-31 14:28:30 +02:00
hektor defbf9bbf7 Update nvm loading 2021-08-31 14:28:09 +02:00
hektor ac3c187818 Update 'ls' aliases 2021-08-31 14:25:24 +02:00
hektor b73af8076d Add fzf colors 2021-08-31 14:23:54 +02:00
hektor cef617928a Update coc settings 2021-08-31 14:23:13 +02:00
hektor 92aeb5d195 Update vim markdown & latex 2021-08-31 14:22:15 +02:00
hektor 497261b48b Update fzf plug setup 2021-08-31 14:19:18 +02:00
hektor e592675a68 Open html version of current file in browser 2021-08-31 14:17:26 +02:00
hektor ed2383c0ee Add function to toggle conceal 2021-08-31 14:15:23 +02:00
hektor c6f6d7304c Enable autoread 2021-08-31 14:14:50 +02:00
hektor 53fddd1195 Adjust conceal settings 2021-08-31 14:14:25 +02:00
hektor e572c5e0c8 Remove tmux aliases 2021-08-27 17:20:26 +02:00
hektor aac242aca1 Adjust split separator colors 2021-08-23 21:34:43 +02:00
hektor 0f70ae28c4 Render ellipsis for nesting > 2 2021-08-23 17:13:38 +02:00
hektor 54266a5d59 Update wiki styling 2021-08-23 17:10:04 +02:00
hektor f3f4fd1ef7 Update wiki Makefile 2021-08-23 17:08:52 +02:00
hektor df74dc85af Update tmux config 2021-08-23 17:06:33 +02:00
Hektor Misplon 0dea47f81f Add 'lua filters' license 2021-05-24 11:33:05 +02:00
Hektor Misplon 30c15faaaf Remove lilypond html file 2021-05-23 15:24:39 +02:00
Hektor Misplon ce2b54d9eb Add pandoc style file 2021-05-23 15:16:10 +02:00
Hektor Misplon 9e8d5422e7 Add wiki pandoc files (Makefile+filters) 2021-05-23 15:12:59 +02:00
Hektor Misplon ea671c0be9 Add taskwarrior config 2021-05-19 11:55:44 +02:00
Hektor Misplon 5224246374 Add keyboard & headphone control bindings for ncspot 2021-05-17 14:10:31 +02:00
Hektor Misplon 46bc785e0a Customize color scheme 2021-05-05 22:05:40 +02:00
Hektor Misplon 3578e6af0d Update svelte snippets 2021-05-05 15:20:10 +02:00
Hektor Misplon dea76213ff Replace color theme with 'yin-yang' colorscheme 2021-05-05 15:18:48 +02:00
Hektor Misplon 7b471c3ad5 Update zathura config 2021-05-05 15:17:06 +02:00
Hektor Misplon 8e1a68eefd Remove picom 2021-04-25 00:26:33 +02:00
Hektor Misplon c207d16410 Pipe to xorg clipboard 2021-04-25 00:24:50 +02:00
Hektor Misplon ffb424d220 Fix typo: bangshee->shebang 2021-04-25 00:18:45 +02:00
hektor 9a5d295009 Add 'scheme' conceals 2021-04-11 19:16:51 +02:00
hektor d7839912be Add 'scheme' snippets 2021-04-11 19:14:30 +02:00
hektor 7d85a170a1 Add 'shebang' snippet 2021-04-11 19:13:52 +02:00
hektor 2ee5bf3184 Move 'svelte'-specific snippet 2021-04-11 19:13:21 +02:00
hektor 19380e20e9 Add 'svelte' snippets 2021-04-11 19:10:12 +02:00
hektor 2f865d174a Add 'css' snippets 2021-04-11 19:08:53 +02:00
hektor 27937b86af Add npm config 2021-04-04 21:24:45 +02:00
hektor a01b8e883f Add JSON.stringify snippets 2021-03-28 10:40:58 +02:00
hektor fc095d371c Use simpler bash prompt 2021-03-28 10:39:14 +02:00
hektor f8f15baa4a Fix inline comments for keymaps 2021-03-28 10:37:23 +02:00
hektor 5b0a9b629b Remove unused settings 2021-03-10 18:06:32 +01:00
hektor d10aa2e6d4 Update general vim settings 2021-03-10 18:06:07 +01:00
hektor 491f87e78c Muck out my vim config 2021-03-10 17:48:56 +01:00
hektor 78f42d5c70 Add autorandr 'docked with lid closed' preset 2021-03-03 17:57:21 +01:00
hektor 1093e2f027 Migrate st to version 8.4 2021-02-21 17:53:56 +01:00
hektor fc0c03da7c Add ligature support 2021-02-21 17:52:46 +01:00
hektor a3321c680c Apply scrollback patch 2021-02-21 17:44:15 +01:00
hektor 404defffdd Use vim-ish keybindings for scrollback 2021-02-21 17:42:38 +01:00
hektor cb78fe1726 Remove config.def.h 2021-02-21 17:29:10 +01:00
hektor 015b0f4ab2 Upgrade st to 8.4 2021-02-21 17:22:18 +01:00
hektor ed63a55488 Start xournalpp in floating mode 2021-02-21 15:28:55 +01:00
hektor f33d20a35c Replace wacom-flip script with autorandr hook scripts 2021-02-20 16:15:18 +01:00
hektor 324dac29b4 Document wacom drawing area script 2021-02-20 16:11:47 +01:00
hektor f8d8fd8291 Add vertical wacom drawing area script 2021-02-20 16:05:13 +01:00
hektor 3b1995f86f Tweak dwm color 2021-02-20 15:58:28 +01:00
hektor 11d61c7e96 Use named tag workflow 2021-02-20 15:57:01 +01:00
hektor cef012fae9 Add autorandr config 2021-02-20 15:55:13 +01:00
hektor 7de30ddd9d Remove slstatus 2021-02-20 15:53:53 +01:00
hektor e18e602b38 Remove redundant styling 2021-02-20 15:53:03 +01:00
hektor 8781a919ca Simplify git logs 2021-02-20 15:52:08 +01:00
hektor 14e44362d0 Adjust mouse sensitivity 2021-02-16 21:18:58 +01:00
hektor 1dd443f2e7 Update default applications 2021-02-16 21:18:37 +01:00
hektor 4690481623 Adjust dunst config 2021-02-16 21:17:10 +01:00
hektor 36d22ca86a Adjust navigation aliases 2021-02-16 21:15:23 +01:00
hektor adecf2360d Adjust zathura colors 2021-02-16 21:13:59 +01:00
hektor aa8acb7e61 Adjust zathura to best fit 2021-02-16 21:12:44 +01:00
hektor 99f38b7fcb Adjust terminal zoom keybindings 2021-02-16 21:10:32 +01:00
hektor 19b3c2b275 Use dwmblocks instead of slstatus 2021-02-16 21:08:44 +01:00
hektor c038f58c48 Add dwm blocks 2021-02-16 21:08:10 +01:00
hektor 4081813b58 Use 'main' as default branch 2021-02-16 21:01:30 +01:00
hektor aa7ec91357 Update email address 2021-02-16 21:01:05 +01:00
hektor 7c337c5066 Add blender theme 2021-02-16 20:59:00 +01:00
Hektor Misplon 54e0790a8a Run dmenu-run-history from dwm 2021-02-08 17:51:56 +01:00
Hektor Misplon 0037dd5840 Update default applications 2021-02-08 17:49:17 +01:00
Hektor Misplon 8fc9e34679 Add basic vim update script 2021-01-16 11:28:57 +01:00
Hektor Misplon 6147c0758a Add tiny script to notify from stdin 2021-01-09 14:32:30 +01:00
Hektor Misplon c6b0ddc99b Add dmenu script for quick translating 2021-01-09 14:30:55 +01:00
Hektor Misplon 57d94676c4 Show all ip addresses without argument 2021-01-09 14:28:36 +01:00
Hektor Misplon 9484168207 Make cmdline readable 2021-01-09 01:05:44 +01:00
Hektor Misplon 0fb9450587 Conform dmenu border to dwm's 2021-01-08 22:32:50 +01:00
Hektor Misplon ade1bdb3bd Make full width dmenu respect border width 2021-01-08 22:31:09 +01:00
Hektor Misplon e84aeb901f Decrease dmenu 'size' 2021-01-08 22:28:32 +01:00
Hektor Misplon afbb55170d Set default dmenu prompt 2021-01-08 22:26:53 +01:00
Hektor Misplon 5373c3a012 Use dmenu on bottom of screen 2021-01-08 22:23:32 +01:00
Hektor Misplon 5c2e79787f Adjust coloring 2020-12-20 15:41:35 +01:00
Hektor Misplon 52e2bba176 Adjust coloring 2020-12-20 15:41:21 +01:00
Hektor Misplon 7884543c52 Use hex shorthands 2020-12-20 15:41:10 +01:00
Hektor Misplon 94f9c061ac Update wacom script 2020-12-20 15:40:38 +01:00
Hektor Misplon 4d8b1187b9 Remove redundant css 2020-12-20 15:39:17 +01:00
Hektor Misplon c24acb5f2e Add brightness control keybindings 2020-12-20 15:38:10 +01:00
Hektor Misplon fa06db8b30 Remove hardtime plugin 2020-12-20 15:37:36 +01:00
Hektor Misplon 483135907c Use tmux style splits 2020-12-20 15:37:22 +01:00
Hektor Misplon 4bf2f4cde1 Add script to flip wacom controls 2020-12-17 13:32:02 +01:00
Hektor Misplon 942ea2825d Adjust ncspot colors 2020-12-12 14:18:34 +01:00
Hektor Misplon 9bac65e554 Remove 5 tags 2020-12-11 10:08:25 +01:00
Hektor Misplon bc3f7c863a Only show border for active window 2020-12-11 10:07:58 +01:00
Hektor Misplon 76488e6072 Adjust default gap 2020-12-11 10:07:02 +01:00
Hektor Misplon 8505dc0694 Specify iosevka font 2020-12-11 10:06:35 +01:00
Hektor Misplon b7745a21f8 Add keybindings 2020-12-11 10:05:49 +01:00
Hektor Misplon 2082bc2ea7 Clean bashrc 2020-12-10 19:40:55 +01:00
Hektor Misplon 1eb975686a Clean bashrc 2020-12-10 19:38:24 +01:00
Hektor Misplon 6ece16b2b1 Remove redundant file 2020-12-10 19:30:30 +01:00
Hektor Misplon 65d3bd2f83 Update commenter plugin config 2020-12-10 19:29:31 +01:00
Hektor Misplon 2f8df9de1e Add basic sct 'night time' wrapper 2020-12-10 18:37:27 +01:00
Hektor Misplon f503c0ee72 Ignore object files 2020-12-10 15:21:02 +01:00
Hektor Misplon 72bb33136b Untrack object files & binarie 2020-12-10 15:19:51 +01:00
Hektor Misplon cfaccb63ea Remove redundant statusbar items 2020-12-10 15:14:36 +01:00
Hektor Misplon bc2e88a42c Use 1 second interval for statusbar 2020-12-10 15:14:06 +01:00
Hektor Misplon 6d9a7cab80 Add default applications 2020-12-10 15:13:05 +01:00
Hektor Misplon 6fbf72cc44 Fix indentation 2020-12-10 15:09:09 +01:00
Hektor Misplon 674d985479 Remove redundant file 2020-12-10 15:08:39 +01:00
Hektor Misplon 7e659cb293 Specify iosevka font 2020-12-10 15:06:53 +01:00
Hektor Misplon 53ce7d1222 Show tabs & trailing whitespaces 2020-12-10 15:04:57 +01:00
Hektor Misplon 7737f1c76c Replace nerdcommenter with vim-commentary 2020-12-10 15:04:23 +01:00
Hektor Misplon d47e6c8b2a Use <nowait> for 'jj' mapped to escape 2020-12-10 15:03:54 +01:00
Hektor Misplon 45b134f81d Remove trailing whitespace 2020-12-10 15:03:05 +01:00
Hektor Misplon 52b056ee9d Adjust split bindings 2020-12-10 15:01:49 +01:00
Hektor Misplon a38bca749e Use smaller timeout length 2020-12-10 14:59:15 +01:00
Hektor Misplon 9062ff38b3 Remove redundant vim settings 2020-12-10 14:57:19 +01:00
Hektor Misplon 7602ba703e Add function to get amount of tasks 2020-12-10 14:41:42 +01:00
Hektor Misplon e700cd7889 Add startup applications 2020-12-10 14:34:54 +01:00
Hektor Misplon 1a4ab2c442 Use oneliner conditionals 2020-12-10 14:32:33 +01:00
Hektor Misplon 6e59747be7 Remove sclang config 2020-12-10 14:30:05 +01:00
Hektor Misplon cb099d6db2 Remove redundant script 2020-12-10 14:27:34 +01:00
Hektor Misplon 6a39b3c3ed Use verbose flag for 'mv' and 'cp' 2020-12-10 14:26:33 +01:00
Hektor Misplon 1e6db5385a Add mpv controls 2020-12-10 14:24:53 +01:00
Hektor Misplon a866c81b4d Add readline config 2020-12-09 23:42:22 +01:00
Hektor Misplon 041e4545ea Add aliases 2020-12-03 12:00:52 +01:00
Hektor Misplon 7d7e87379c Add gtk styling 2020-12-01 18:07:02 +01:00
Hektor Misplon fa295336fe Hide top and bottom info 2020-11-22 00:39:47 +01:00
Hektor Misplon a4fba3cd80 Adjust SuperDirt startup 2020-11-22 00:38:52 +01:00
Hektor Misplon bb5c88ae81 Add keyboard layout 2020-11-21 17:38:20 +01:00
Hektor Misplon ec4c7475d5 Add newsboat config 2020-11-21 02:13:20 +01:00
Hektor Misplon 6489cb8948 Track slstatus source files 2020-11-15 19:15:09 +01:00
Hektor Misplon fa3d7bfaeb Update solaar config 2020-11-13 23:25:28 +01:00
Hektor Misplon 3a32d917b5 Adjust zathura selection colo 2020-11-13 23:25:00 +01:00
Hektor Misplon 811363f3a6 Fix shellcheck warnings 2020-11-13 23:22:53 +01:00
Hektor Misplon b9d0500d4a Use high quality profile for mpv 2020-11-11 15:58:59 +01:00
Hektor Misplon 6621312f3f Update autostart 2020-11-10 17:14:52 +01:00
Hektor Misplon d30870ae35 Adjust dunst location & style 2020-11-10 17:12:51 +01:00
Hektor Misplon aa2206861c Add R5RS tmux script 2020-11-10 17:12:04 +01:00
Hektor Misplon 9107a5ca4a Add r5rs tmux (vim with repl) script 2020-11-02 18:10:08 +01:00
Hektor Misplon ecc4e5b42f Rename r5rs to r5rs-repl 2020-11-02 18:09:18 +01:00
Hektor Misplon ac079c48b3 Set slime tmux defaults 2020-11-02 18:06:59 +01:00
Hektor Misplon 9c5c991e83 Update gitconfig 2020-11-02 11:56:00 +01:00
Hektor Misplon 7443bb87d8 Add default options for fzf 2020-11-02 11:55:21 +01:00
Hektor Misplon 9fc59695d6 Add alias for R5RS repl 2020-11-02 11:54:51 +01:00
Hektor Misplon f612897fb8 Setup vimtex with zathura 2020-11-02 11:54:10 +01:00
Hektor Misplon 72120e0ce8 Set up vim-slime for tmux 2020-11-02 11:53:18 +01:00
Hektor Misplon abffd23bf9 Update vim config 2020-11-02 11:50:14 +01:00
Hektor Misplon c4338c0b35 Add cleanup script 2020-11-01 15:58:45 +01:00
Hektor Misplon 6215fb974b Print pdf title from metadata 2020-11-01 15:57:59 +01:00
Hektor Misplon b47a96a763 Use consistent shebangs 2020-11-01 15:57:10 +01:00
Hektor Misplon 7abc0840ab Replace screen layout scripts with menu 2020-11-01 15:53:41 +01:00
Hektor Misplon 41b7dd38f1 Add gtk+ settings 2020-11-01 15:42:01 +01:00
Hektor Misplon 6f9eb64a24 Add default application config 2020-11-01 15:35:15 +01:00
Hektor Misplon 9696d14d1c Remove binaries 2020-11-01 15:21:15 +01:00
Hektor Misplon dde6f2f2f3 Adjust zathura config 2020-11-01 15:18:45 +01:00
Hektor Misplon ef9a140fd6 Adjust zathura color scheme 2020-11-01 15:18:15 +01:00
Hektor Misplon 3e2dfe0322 Update solaar config 2020-11-01 15:16:55 +01:00
Hektor Misplon c7a6fc34ff Remove sselp 2020-11-01 15:15:51 +01:00
Hektor Misplon fe0a4a4f2f Adjust color scheme 2020-11-01 15:14:40 +01:00
Hektor Misplon b451d165ac Adjust dunst colors 2020-11-01 15:12:42 +01:00
Hektor Misplon 2151c20dfc Use fzf keybindings 2020-11-01 15:12:15 +01:00
Hektor Misplon d2b5a930ac Update bash config 2020-10-30 16:49:22 +01:00
Hektor Misplon fc56152e80 Add aliases 2020-10-18 16:12:08 +02:00
Hektor Misplon 2b17e4bfc3 Update
whoamip
script
2020-10-18 16:09:16 +02:00
Hektor Misplon 14804af5dc Update color scheme 2020-10-06 18:02:03 +02:00
Hektor Misplon b378919b1b Cache git credentials 2020-09-20 11:44:41 +02:00
Hektor Misplon 89d02f8fc4 Organize vim config 2020-09-19 22:07:29 +02:00
Hektor Misplon 287eef47a0 Get vim-svelte plugin from 'main' branch 2020-09-19 20:15:01 +02:00
Hektor Misplon 00875b06da Add vim-sandwich plugin 2020-09-19 20:14:11 +02:00
Hektor Misplon 895c518797 Update zathura config 2020-09-19 12:13:30 +02:00
Hektor Misplon 70471bf9dc Set atom editor font 2020-09-17 10:31:01 +02:00
Hektor Misplon f2738b209d Use white cursor 2020-09-11 21:03:29 +02:00
Hektor Misplon 400c33c5fd Update atom config 2020-09-11 21:03:16 +02:00
Hektor Misplon bcf5cb2d3b Resize splits 2020-09-11 21:02:21 +02:00
Hektor Misplon 7e59879095 Use printf instead of echo 2020-09-11 20:20:04 +02:00
Hektor Misplon c80dcfaa97 Use strong quotes 2020-09-11 20:16:57 +02:00
Hektor Misplon eaaa680071 Fix naked dollar sign 2020-09-11 20:16:35 +02:00
Hektor Misplon 6bfce1a6b9 Show charging status dynamically 2020-09-06 18:15:51 +02:00
Hektor Misplon 0e74499d16 Always open keypassxc on tag 9 2020-09-06 18:14:56 +02:00
Hektor Misplon 30af1155cc Add brave flags config 2020-09-06 00:19:21 +02:00
Hektor Misplon f0767b4618 Add scripts 2020-09-06 00:18:31 +02:00
Hektor Misplon 52920558e5 Clean 2020-09-06 00:10:10 +02:00
Hektor Misplon 19344656c0 Add snippets 2020-09-06 00:09:25 +02:00
Hektor Misplon 17a31498c2 Add snippets directory 2020-09-06 00:09:16 +02:00
Hektor Misplon 57ae025225 Add coc-snippets 2020-09-05 23:19:23 +02:00
Hektor Misplon 532a328b15 Show number for cursor line 2020-09-05 15:08:34 +02:00
Hektor Misplon cbe63b4c82 Merge branch 'master' of https://github.com/hektormisplon/dotfiles into master 2020-09-05 15:06:56 +02:00
Hektor Misplon 1191c29c16 Adjust zoom keybindings 2020-09-05 15:05:21 +02:00
Hektor Misplon 08476bc74d Adjust zoom keybindings 2020-09-05 14:59:09 +02:00
Hektor Misplon 015a77d69c Add colors 2020-09-05 14:52:28 +02:00
Hektor Misplon 842bb7fd0e Add atom hydra config 2020-08-28 10:03:45 +02:00
Hektor Misplon bd598a8097 Colorize ip output 2020-08-18 18:22:50 +02:00
Hektor Misplon 0e079862b7 Increase history size 2020-08-18 18:20:58 +02:00
Hektor Misplon bb6d3837e5 Update vimrc 2020-08-06 16:36:57 +02:00
Hektor Misplon 4ee03665c0 Adjust keybinding 2020-08-01 20:12:16 +02:00
Hektor Misplon e1ee2c7df0 Adjust keybinding 2020-08-01 20:11:54 +02:00
Hektor Misplon 83a5a84cd8 Adjust colors 2020-07-28 20:32:11 +02:00
Hektor Misplon 53fbc57937 Adjust colors 2020-07-28 20:30:39 +02:00
Hektor Misplon 282ade689c Add subcommands 2020-07-03 17:55:45 +02:00
Hektor Misplon 77ebb9b9b9 Add reverse tethering command 2020-07-03 16:47:12 +02:00
Hektor Misplon dc8e6e2ef4 Add svelte coc support 2020-07-02 15:51:01 +02:00
Hektor Misplon d23b0267cd Add vscode config 2020-05-20 19:15:33 +00:00
Hektor Misplon 2695e64224 Add terminal keybinding 2020-05-20 19:14:07 +00:00
Hektor Misplon 3c5f08e6bb Disable javascript suggestion actions 2020-05-20 19:13:46 +00:00
Hektor Misplon 85cf630772 Adjust dmenu colors 2020-05-20 19:13:08 +00:00
Hektor Misplon 8e1a7b609e Autostart cadence 2020-05-13 22:38:59 +00:00
Hektor Misplon 36452de564 Configure svelte 2020-05-13 17:10:30 +00:00
Hektor Misplon fbad53561b Adjust dwm colors 2020-05-13 17:09:15 +00:00
Hektor Misplon b5aaba0b3e Update vim config 2020-05-13 17:08:38 +00:00
Hektor Misplon 3d78f2365d Add whoamip script to get ip 2020-05-13 17:07:44 +00:00
Hektor Misplon 29eb7e6b1b Check bat alias from script 2020-05-13 17:06:19 +00:00
Hektor Misplon 913d20e162 Lazyload nvm when used 2020-05-13 17:05:27 +00:00
Hektor Misplon 669a23b552 Configure fuzzy finder 2020-05-08 17:54:20 +00:00
Hektor Misplon f8df9804df Adjust dunstrf 2020-05-08 17:00:52 +00:00
Hektor Misplon 3b9eb42c90 Add dunstrc 2020-05-08 16:58:13 +00:00
Hektor Misplon 2170ed92ea Match zathura to theme 2020-05-08 16:21:12 +00:00
Hektor Misplon 834088247b Remove PATH environment variable 2020-05-08 16:11:30 +00:00
Hektor Misplon 0a4b18f6ad Make scripts globally available 2020-05-08 16:08:53 +00:00
Hektor Misplon 5b47edb01b Add keybindings 2020-05-08 15:16:18 +00:00
Hektor Misplon bd84e769f8 Add tidalcycles tmux startup script 2020-05-08 15:15:22 +00:00
Hektor Misplon 7c97aff7ce Start window numbers at 0 2020-05-08 14:17:15 +00:00
Hektor Misplon 16fd8d7a05 Adjust color scheme 2020-05-08 14:16:11 +00:00
Hektor Misplon 99fbf9413d Update vim config 2020-05-08 14:11:55 +00:00
Hektor Misplon 58e770a6d6 Update tmux conf 2020-05-08 00:22:49 +00:00
Hektor Misplon 7175943f46 Add default editor 2020-05-08 00:20:56 +00:00
Hektor Misplon 05d222ce88 Modify newterm command to shift-<cr> 2020-05-07 22:13:16 +00:00
Hektor Misplon 87a7b708ee Remove extra backup configs 2020-05-07 22:11:08 +00:00
Hektor Misplon a6ed1c1f94 Convert to subfolder 2020-05-07 22:07:40 +00:00
Hektor Misplon 8793a6dd5c Add dwm error logging 2020-05-07 21:28:19 +00:00
Hektor Misplon d95409eceb Increase font size 2020-05-07 21:26:43 +00:00
Hektor Misplon 18647900aa Add border 2020-05-07 21:21:44 +00:00
Hektor Misplon a37700ee0e Add center patch 2020-05-07 21:10:33 +00:00
Hektor Misplon 261c14dd73 Add dmenu 2020-05-07 20:07:33 +00:00
Hektor Misplon 156c150e84 Add gitignore 2020-05-07 20:07:07 +00:00
Hektor Misplon c0a77cf124 Update dmenu 2020-05-07 19:59:51 +00:00
Hektor Misplon 2ee3b5cd5c Adjust dmenu colors 2020-05-07 19:49:28 +00:00
Hektor Misplon 653824cfbf Remove bloat 2020-05-07 19:30:24 +00:00
Hektor Misplon 4cd919762e Update .gitignore 2020-05-07 19:29:15 +00:00
Hektor Misplon 7df62a07a7 Update gitignore 2020-05-07 19:25:28 +00:00
Hektor Misplon 58ceb6f09e Upgrade to st-8.3 2020-05-07 18:13:56 +00:00
Hektor Misplon 67b01c94b8 Add prompt icons 2020-05-07 18:12:19 +00:00
Hektor Misplon 4f7e452a8c Patch ligatures 2020-05-07 15:51:18 +00:00
Hektor Misplon 8a7e02d45d Make vim & tmux more consistent 2020-05-07 14:11:54 +00:00
Hektor Misplon b83b08b6b0 Add tmux aliases 2020-05-07 14:08:53 +00:00
Hektor Misplon 9a1a4dd25d Add tmux config 2020-05-07 12:31:57 +00:00
Hektor Misplon 3df9f87899 Update vimrc 2020-05-07 12:18:36 +00:00
Hektor Misplon 89fc15a0fb Add vim-style keybindings 2020-05-07 01:39:04 +00:00
Hektor Misplon df9f2ac36e Add software configs 2020-05-07 00:58:55 +00:00
Hektor Misplon 86955a700d Add xinitrc 2020-05-07 00:53:16 +00:00
Hektor Misplon 6f1490b6ea Convert to subfolder 2020-05-07 00:50:57 +00:00
Hektor Misplon 395e15ebe0 Update gitignore 2020-05-07 00:48:12 +00:00
Hektor Misplon 162c36d7c1 Add dwm as subfolder 2020-05-07 00:43:33 +00:00
Hektor Misplon 700f2012f0 Add suckless config 2020-05-07 00:26:42 +00:00
Hektor Misplon 3d28a719f1 Add coc settings 2020-05-07 00:23:37 +00:00
Hektor Misplon 0aaa47da1e Remove bloat 2020-05-07 00:22:35 +00:00
Hektor Misplon 924906a13f Update vim config 2020-05-07 00:11:41 +00:00
Hektor Misplon 2b26946eda Update bash config 2020-05-07 00:10:20 +00:00
Hektor Misplon 507653ddaf Add aliases 2020-05-07 00:09:35 +00:00
Hektor Misplon 632e4e3ef1 Update coc config 2020-05-07 00:06:53 +00:00
Hektor Misplon 020975d9e2 Update gitignore 2020-05-07 00:05:47 +00:00
Hektor Misplon 25145f1088 Apply pertag patch 2020-04-15 13:11:41 +00:00
Hektor Misplon 0e09197f09 Update vim config 2020-04-15 13:10:46 +00:00
Hektor Misplon aa11fa196b Add aliases 2020-04-15 11:29:03 +00:00
Hektor Misplon cce661642e Update vim plugins 2020-04-15 11:27:40 +00:00
Hektor Misplon b0641436e5 Merge branch 'master' of github.com:hektormisplon/dotfiles 2020-04-09 15:08:51 +00:00
Hektor Misplon d40abb39b2 Add battery details script 2020-04-09 15:08:28 +00:00
Hektor Misplon 3350f51bd6 Modify prompt 2020-04-08 19:22:00 +00:00
Hektor Misplon 32785830ee Make ls render vertically by default 2020-04-08 19:21:32 +00:00
Hektor Misplon 24c8c90aea Update suckless config 2020-04-08 19:20:42 +00:00
Hektor Misplon ed0c3e9b5f Add dwm patches 2020-04-08 17:53:41 +00:00
Hektor Misplon bb725bacff Update bash config 2020-04-08 17:52:42 +00:00
Hektor Misplon e703689e06 Update README.md 2020-04-08 17:44:17 +00:00
Hektor Misplon 0f62c9e70f Add screenshot 2020-04-08 17:43:01 +00:00
Hektor Misplon 24746a6e13 Update coc extensions 2020-04-07 20:49:50 +00:00
Hektor Misplon 291296510b Add coc config 2020-04-07 20:42:16 +00:00
Hektor Misplon d6d5c63fa6 Update gitignore 2020-04-07 20:25:12 +00:00
Hektor Misplon 0ba4b9bd52 Add bash config w/ aliases 2020-04-07 20:24:30 +00:00
Hektor Misplon 8efea7b12e Adjust typematic delay & rate 2020-03-19 13:30:26 +00:00
Hektor Misplon 6b70bbbe11 Update .vimrc 2020-03-19 13:28:07 +00:00
Hektor Misplon b9a51abfa6 Add coc-emmet 2020-02-19 09:26:20 +00:00
Hektor Misplon 1f47f9070f Add aliases & color settings 2020-02-18 19:16:16 +00:00
Hektor Misplon cb8190907b Add temp files 2020-02-18 19:15:16 +00:00
Hektor Misplon 1adea34281 Add global gitconfig & gitignore 2020-02-18 18:47:43 +00:00
Hektor Misplon 02ddec417e Fix permissions 2020-02-18 18:12:58 +00:00
Hektor Misplon dbfc6e98e5 Add shebang & commenting 2020-02-18 18:08:47 +00:00
Hektor Misplon a38c7e7379 Add centered master layout 2020-02-18 15:57:59 +00:00
Hektor Misplon ca92caaaf3 Merge branch 'master' of github.com:hektormisplon/dotfiles 2020-02-18 14:16:34 +00:00
Hektor Misplon 0f74d83e33 Autstart X at login 2020-02-18 14:16:20 +00:00
Hektor Misplon 6f2c3306ac Add monitor helper 2020-02-17 22:08:02 +00:00
Hektor Misplon b4da1ded4c Update README.md 2020-02-17 21:12:00 +00:00
Hektor Misplon cbf6876f7b Update README.md 2020-02-17 21:11:46 +00:00
Hektor Misplon 0c9664eaaa Add xorg dualhead config 2020-02-17 20:33:28 +00:00
Hektor Misplon 18adadc60a Add X startup config 2020-02-17 20:25:20 +00:00
Hektor Misplon a98c0e08ca Update coc config 2020-02-17 16:51:53 +00:00
Hektor Misplon f1ff883096 Update vim config 2020-02-17 16:51:37 +00:00
Hektor Misplon f048c146c5 Config prettier eslint integration 2020-02-17 16:29:40 +00:00
Hektor Misplon c666fd7b0a Add vim-js plugin 2020-02-17 16:06:16 +00:00
Hektor Misplon fc48847ecb Update vim config 2020-02-17 16:05:51 +00:00
Hektor Misplon 2000dcea1c Configure eslint & prettier 2020-02-17 16:04:51 +00:00
Hektor Misplon 6399a35aba Remove vim-prettier plugin 2020-02-17 16:03:40 +00:00
Hektor Misplon 9d81aa1479 Update coc.nvim 2020-02-17 16:02:34 +00:00
Hektor Misplon 5c5824f10b Configure prettier 2020-02-16 12:37:24 +00:00
Hektor Misplon 813d76e9de Add prettier 2020-02-16 12:22:47 +00:00
Hektor Misplon 2cb2f7e631 Add shortcuts 2020-02-16 12:15:17 +00:00
Hektor Misplon a31375a756 Update vim settings 2020-02-16 11:41:12 +00:00
Hektor Misplon 2ad7258d03 Merge branch 'master' of github.com:hektormisplon/dotfiles 2020-02-16 09:27:56 +00:00
Hektor Misplon 90315ab61e Convert submodules to directories 2020-02-16 09:27:34 +00:00
Hektor Misplon 06a838e723 Update README.md 2020-02-16 08:19:32 +00:00
Hektor Misplon 56d1a37906 Create README.md 2020-02-16 08:16:47 +00:00
268 changed files with 2304 additions and 21793 deletions
-1
View File
@@ -1 +0,0 @@
use flake
+1 -6
View File
@@ -1,7 +1,3 @@
#
.claude/
home/hosts/work/packages.local.nix
# ---> Nix
# Ignore build outputs from performing a nix-build or `nix build` command
result
@@ -9,5 +5,4 @@ result-*
nixos-efi-vars.fd
.direnv/
.pre-commit-config.yaml
home/hosts/work/packages.local.nix
-7
View File
@@ -1,7 +0,0 @@
{
"mcpServers": {
"nixos": {
"command": "mcp-nixos"
}
}
}
+7 -22
View File
@@ -1,30 +1,15 @@
# ❄️ NixOS flake
# NixOS flake
![nix](https://img.shields.io/badge/nix-blue?logo=nixos&logoColor=%234d6fb7&labelColor=%23fff&color=%234d6fb7&link=https%3A%2F%2Fnixos.org%2F)
![neovim](https://img.shields.io/badge/neovim-flat?logo=neovim&logoColor=%23408040&labelColor=%23fff&color=%2380C040)
## Set up virtual machine ([`disko`](https://github.com/nix-community/disko/blob/master/docs/interactive-vm.md))
## hosts
### NixOS
```
nixos-rebuild switch --flake .#<hostname>
```
### home manager
```
home-manager switch --flake .#work
```
### virtual machines
1. Build the virtual machine
```
nix build -L '.#nixosConfigurations.vm.config.system.build.vmWithDisko'
./result/bin/disko-vm
```
## docs
2. Run the virtual machine
* [deploy using colmena](./deploy/README.md)
* [SD installer images](./images/README.md)
```
./result/bin/disko-vm
```
-10
View File
@@ -1,10 +0,0 @@
# `colmena` deployments
* tags: `personal`, `lab`
* deployments can be made from `astyanax` and `andromache` hosts
* `hecuba` uses `deploy-rs` instead of `colmena` (see `./deploy-rs.nix`)
## References
- [docs: `colmena`](https://colmena.cli.rs/)
- [repo: `colmena`](https://github.com/zhaofengli/colmena)
-51
View File
@@ -1,51 +0,0 @@
{
self,
inputs,
}:
let
inherit (inputs.nixpkgs) lib;
utils = import ../utils { inherit lib; };
# exclude hosts that need auto rollback (until `colmena` supports it) for
# now, we use `deploy-rs` (which has magic rollback) for those (also see ./deploy-rs.nix)
#
# see <https://github.com/nix-community/colmena/issues/38>
# <https://github.com/nix-community/colmena/issues/344>
hostnames = lib.filter (
hostname: !((utils.hostMeta ../hosts/${hostname}).deploy.autoRollback or false)
) (utils.dirNames ../hosts);
mkNode =
hostname:
let
meta = utils.hostMeta ../hosts/${hostname};
isArm = meta.system == "aarch64-linux";
in
{
imports = [ ../hosts/${hostname} ];
host.name = hostname;
deployment = {
inherit (meta) tags;
targetUser = meta.host.username;
targetHost = hostname;
allowLocalDeployment = meta.host.admin or false;
buildOnTarget = !isArm;
};
};
nodes = lib.genAttrs hostnames mkNode;
in
inputs.colmena.lib.makeHive (
{
meta = {
nixpkgs = import inputs.nixpkgs { localSystem = "x86_64-linux"; };
specialArgs = {
inherit inputs;
outputs = self;
dotsPath = ../dots;
myUtils = utils;
};
};
}
// nodes
)
-34
View File
@@ -1,34 +0,0 @@
{
self,
inputs,
}:
let
inherit (inputs.nixpkgs) lib;
utils = import ../utils { inherit lib; };
# only include hosts that need auto rollback (until `colmena` supports it)
# `colmena` is used for other hosts (see ./colmena.nix)
hostnames = lib.filter (
hostname: (utils.hostMeta ../hosts/${hostname}).deploy.autoRollback or false
) (utils.dirNames ../hosts);
mkNode =
hostname:
let
meta = utils.hostMeta ../hosts/${hostname};
in
{
inherit hostname;
sshUser = meta.host.username;
magicRollback = true;
autoRollback = true;
profiles.system = {
user = "root";
path = inputs.deploy-rs.lib.${meta.system}.activate.nixos self.nixosConfigurations.${hostname};
};
};
in
{
nodes = lib.genAttrs hostnames mkNode;
}
+2
View File
@@ -27,6 +27,8 @@ alias ipa="ip -brief address"
alias ipl="ip -brief link"
alias ipr="ip route"
alias clip="xclip -sel clip"
alias df="df -kTh"
alias fzfpac="pacman -Slq | fzf -m --preview 'pacman -Si {1}' | xargs -ro sudo pacman -S"
alias path='echo -e ${PATH//:/\\n}' # Pretty print path variables
+1
View File
@@ -2,6 +2,7 @@
# shellcheck disable=SC1090
[[ -f ~/.bashrc ]] && . ~/.bashrc
export SSH_AUTH_SOCK="${XDG_RUNTIME_DIR}/ssh-agent.socket"
export _JAVA_AWT_WM_NONREPARENTING=1
if [[ -z "${DISPLAY}" ]] && [[ "${XDG_VTNR}" -eq 1 ]]; then
+14 -1
View File
@@ -60,7 +60,7 @@ export XDG_DATA_HOME=$HOME/.local/share
if [ -f "/usr/bin/fzf" ]; then
# Fuzzy finder setup
export FZF_COMPLETION_TRIGGER='**'
export FZF_DEFAULT_COMMAND='rg --files ""'
export FZF_DEFAULT_COMMAND='ag -g ""'
export FZF_DEFAULT_OPTS="
--pointer='❭'
--height 10%
@@ -97,6 +97,19 @@ export JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab
# Zettelkasten {{{
export ZK_PATH="$HOME/.zk"
# SSH Agent {{{
if [[ -z "${SSH_CONNECTION}" ]]; then
export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket"
fi
# }}}
# pnpm
export PNPM_HOME="/home/h/.local/share/pnpm"
case ":$PATH:" in
*":$PNPM_HOME:"*) ;;
*) export PATH="$PNPM_HOME:$PATH" ;;
esac
# pnpm end
# Codi
# Usage: codi [filetype] [filename]
+13 -1
View File
@@ -4,4 +4,16 @@
# Set NeoVim as default editor
export EDITOR=nvim
export SUDO_EDITOR="$EDITOR"
export SYSTEMD_EDITOR="$EDITOR"
declare -A -r EDITOR_CONFIGS=(
["nvim"]="$HOME/.config/nvim/init.lua"
["vim"]="$HOME/.vimrc"
)
edit_editor_config() {
for editor in "${!EDITOR_CONFIGS[@]}"; do
if [ "$EDITOR" = "$editor" ]; then
$EDITOR "${EDITOR_CONFIGS[$editor]}"
fi
done
}
-32
View File
@@ -1,32 +0,0 @@
#!/usr/bin/env bash
# back up a file by copying it to a new file with a .bak extension
# reference: https://askubuntu.com/questions/962489/is-there-any-way-to-create-backup-copy-of-a-file-without-type-its-name-twice
usage() {
echo "Usage: bak [-t|--timestamp] <file to back up>"
exit 1
}
timestamp=false
while [[ $# -gt 0 ]]; do
case $1 in
-t|--timestamp)
timestamp=true
shift
;;
*)
break
;;
esac
done
[ $# -eq 1 ] || usage
if $timestamp; then
date="$(date +%Y-%m-%d_%H-%M-%S)"
cp -vpn "$1"{,."$date".bak}
else
cp -vpn "$1"{,.bak}
fi
+221
View File
@@ -0,0 +1,221 @@
#!/usr/bin/env bash
set -euo pipefail
readonly ALLOWED_MAIN_BRANCHES=("main" "master" "develop")
readonly BRANCH_TYPES=(
"feat For new features"
"hotfix For urgent fixes"
"fix For fixes"
"release For preparing releases"
"chore For non-code tasks"
)
error() {
echo "Error: $1" >&2
exit 1
}
warn() {
echo "Warning: $1" >&2
}
check_dependencies() {
local missing=()
for cmd in git fzf; do
if ! command -v "$cmd" &> /dev/null; then
missing+=("$cmd")
fi
done
if [[ ${#missing[@]} -gt 0 ]]; then
error "Missing required commands: ${missing[*]}"
fi
}
check_git_repo() {
if ! git rev-parse --git-dir &> /dev/null; then
error "Not in a git repository"
fi
}
check_current_branch() {
local current_branch
current_branch=$(git branch --show-current)
local is_main_branch=false
for branch in "${ALLOWED_MAIN_BRANCHES[@]}"; do
if [[ "$current_branch" == "$branch" ]]; then
is_main_branch=true
break
fi
done
if [[ "$is_main_branch" == false ]]; then
warn "Not branching from a main branch (current: $current_branch)"
read -rp "Continue anyway? [y/N] " response
if [[ ! "$response" =~ ^[Yy]$ ]]; then
exit 0
fi
fi
}
get_user_email() {
local email
email=$(git config --get user.email 2>/dev/null)
if [[ -z "$email" ]]; then
error "Git user email not configured. Run: git config user.email 'your@email.com'"
fi
echo "$email"
}
select_branch_type() {
local selected
selected=$(printf '%s\n' "${BRANCH_TYPES[@]}" | \
fzf --prompt="Select branch type: " \
--height=40% \
--border \
--info=inline) || error "Branch type selection cancelled"
echo "${selected%% *}"
}
select_jira_ticket() {
local email=$1
if ! command -v jira &> /dev/null; then
warn "Jira CLI not found. Proceeding without ticket ID."
return 0
fi
echo "Fetching Jira tickets for $email..." >&2
local jira_data
jira_data=$(jira issue list --assignee="$email" --order-by=priority --plain --no-headers 2>/dev/null) || {
warn "Could not fetch Jira tickets. Proceeding without ticket ID."
return 0
}
if [[ -z "$jira_data" ]]; then
warn "No Jira tickets found. Proceeding without ticket ID."
return 0
fi
echo "$jira_data" >&2
echo "" >&2
local formatted_tickets
formatted_tickets=$(echo "$jira_data" | awk '{
ticket_id = $2
$1 = $2 = ""
description = $0
gsub(/^[ \t]+/, "", description)
if (length(description) > 60) {
description = substr(description, 1, 57) "..."
}
print ticket_id " - " description
}')
if [[ -z "$formatted_tickets" ]]; then
warn "No tickets to display. Proceeding without ticket ID."
return 0
fi
local selected_ticket
selected_ticket=$(echo -e "SKIP - Create branch without ticket ID\n$formatted_tickets" | \
fzf --prompt="Select Jira ticket (or skip): " \
--height=40% \
--border \
--info=inline) || error "Ticket selection cancelled"
if [[ "$selected_ticket" != "SKIP"* ]]; then
echo "${selected_ticket%% -*}"
fi
}
get_branch_description() {
local ticket_id=$1
local editor="${EDITOR:-vi}"
local tmpfile
tmpfile=$(mktemp)
trap "rm -f '$tmpfile'" EXIT
if [[ -n "$ticket_id" ]]; then
cat > "$tmpfile" << EOF
# Selected ticket: $ticket_id
# Enter your branch description below in kebab-case (e.g., my-description):
# The ticket ID will be automatically included in the branch name.
# Lines starting with # will be ignored.
EOF
else
cat > "$tmpfile" << 'EOF'
# Enter your branch description below in kebab-case (e.g., my-description):
# Lines starting with # will be ignored.
EOF
fi
"$editor" "$tmpfile" < /dev/tty > /dev/tty
local desc
desc=$(grep -v '^#' "$tmpfile" | tr -d '\n' | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
echo "$desc"
}
validate_description() {
local desc=$1
if [[ -z "$desc" ]]; then
error "No description provided"
fi
if [[ ! "$desc" =~ ^[a-z0-9]+(-[a-z0-9]+)*$ ]]; then
error "Invalid branch description format.\nUse lowercase letters, numbers, and hyphens only.\nNo trailing or consecutive hyphens allowed.\nExample: my-feature-description"
fi
}
create_branch() {
local type=$1
local ticket_id=$2
local desc=$3
local branch
if [[ -n "$ticket_id" ]]; then
branch="$type/$ticket_id-$desc"
else
branch="$type/$desc"
fi
if git show-ref --verify --quiet "refs/heads/$branch"; then
error "Branch '$branch' already exists"
fi
echo ""
echo "Creating branch: $branch"
git checkout -b "$branch"
}
main() {
check_dependencies
check_git_repo
check_current_branch
local email
email=$(get_user_email)
local type
type=$(select_branch_type)
echo "About to call select_jira_ticket" >&2
local ticket_id=""
ticket_id=$(select_jira_ticket "$email")
local desc
desc=$(get_branch_description "$ticket_id")
validate_description "$desc"
create_branch "$type" "$ticket_id" "$desc"
}
main "$@"
+12 -20
View File
@@ -8,24 +8,19 @@ Pomodoro timer
- Notification on break finish
"""
import atexit
import os
import atexit
from argparse import ArgumentParser
from time import sleep
from plyer import notification
POMO_PATH = os.path.join(
os.getenv("XDG_DATA_HOME", os.path.expanduser("~/.local/share")), "pomo"
)
POMO_PATH = os.path.join(os.getenv("XDG_DATA_HOME", os.path.expanduser("~/.local/share")), "pomo")
@atexit.register
def clear():
if os.path.exists(POMO_PATH):
os.remove(POMO_PATH)
def format_mins_secs(mins, secs):
return f"{mins:02d}:{secs:02d}"
@@ -39,7 +34,6 @@ def make_countdown():
os.system(f'echo -n "{time_str}" > {POMO_PATH}')
sleep(1)
duration -= 1
return countdown
@@ -64,23 +58,21 @@ def main(args):
def handle_signal(signal, frame):
# Wait for clear to finish
clear()
print("Exiting")
print('Exiting')
exit(0)
if __name__ == "__main__":
if __name__ == '__main__':
parser = ArgumentParser()
parser.add_argument(
"-w", "--work-duration", type=int, help="Session duration", default=25
)
parser.add_argument(
"-b", "--break-duration", type=int, help="Break duration", default=5
)
parser.add_argument(
"-r", "--repeats", type=int, help="Numer of sessions", default=1
)
parser.add_argument("-c", "--clear", action="store_true", help="Clear timer")
parser.add_argument('-w', '--work-duration', type=int,
help='Session duration', default=25)
parser.add_argument('-b', '--break-duration', type=int,
help='Break duration', default=5)
parser.add_argument('-r', '--repeats', type=int,
help='Numer of sessions', default=1)
parser.add_argument('-c', '--clear', action='store_true',
help='Clear timer')
args = parser.parse_args()
+4 -4
View File
@@ -2,8 +2,8 @@
session="r5rs"
tmux attach-session -t "$session" || tmux new-session -s "$session" \; \
tmux attach-session -t $session || tmux new-session -s $session \; \
split-window -h -t $session \; \
send-keys -t 1 "nvim -c \"set ft=scheme\"" C-m \; \
send-keys -t 2 "plt-r5rs --no-prim" C-m \; \
select-pane -t 1
send-keys -t 0 "vim" C-m \; \
send-keys -t 1 "plt-r5rs --no-prim" C-m \; \
select-pane -t 0
+25
View File
@@ -0,0 +1,25 @@
#!/usr/bin/env bash
# Back up my $HOME folder to OneDrive using `restic`.
#
# Adds extra flags needed for using `rclone` with sharepoint WebDav I.e. add
# `--ignore-size --ignore-checksum --update` to the default `rclone.args`.
#
# Select directory in repo using -r rclone:<repo>:<directory>
#
# Runs `backup` command on $HOME and ignore what is listed in `.resticexclude`
#
# ```/etc/restic-env
# export B2_ACCOUNT_ID=
# export B2_ACCOUNT_KEY=
# ```
#
# `restic -r b2:desktop-arch init`
source /etc/restic-env
restic -r "$RESTIC_REPOSITORY:$HOSTNAME" backup \
--tag "hektor" \
--one-file-system \
--files-from="$HOME/.resticinclude" \
--exclude-file="$HOME/.resticexclude" \
--verbose=3
+4
View File
@@ -0,0 +1,4 @@
#!/usr/bin/env bash
cd "$ZK_PATH" || echo "No zettelkasten directory found"
git a . && git commit -m "Update" && git push
+1 -1
View File
@@ -1,3 +1,3 @@
#!/usr/bin/env bash
[ -f "/home/h/.local/share/pomo" ] && cat /home/h/.local/share/pomo || echo ""
[ -f "/tmp/pomo" ] && cat /tmp/pomo || echo ""
+8 -9
View File
@@ -1,12 +1,12 @@
#!/usr/bin/env python
import subprocess
import sys
import subprocess
DEFAULT_TEMPERATURE = 3500
try:
with open("/tmp/temperature", "r") as temp_file:
with open('/tmp/temperature', 'r') as temp_file:
current_temperature = int(temp_file.read())
except FileNotFoundError:
current_temperature = DEFAULT_TEMPERATURE
@@ -16,8 +16,7 @@ if len(sys.argv) == 1:
print(current_temperature)
sys.exit(0)
elif len(sys.argv) != 2:
print(
"""
print("""
Usage:
screen-temperature
@@ -28,8 +27,7 @@ Usage:
screen-temperature <+|-><temperature>
increase or decrease screen temperature by <temperature>
"""
)
""")
sys.exit(1)
temperature_change = sys.argv[1]
@@ -43,10 +41,11 @@ else:
try:
subprocess.run(["redshift", "-O", str(new_temperature), "-P"], check=True)
with open("/tmp/temperature", "w") as temp_file:
temp_file.write(str(new_temperature) + "\n")
with open('/tmp/temperature', 'w') as temp_file:
temp_file.write(str(new_temperature) + '\n')
# Send notification
subprocess.run(["notify-send", str(new_temperature) + "K"])
subprocess.run(
["notify-send", str(new_temperature) + "K"])
except subprocess.CalledProcessError:
print("Error: could not set screen temperature.")
sys.exit(1)
+37
View File
@@ -0,0 +1,37 @@
#!/usr/bin/env bash
gsettings set org.gnome.desktop.background primary-color "#555555"
gsettings set org.gnome.desktop.wm.preferences workspace-names "['sh', 'www', 'dev', 'info', 'etc']"
gsettings set org.gnome.desktop.wm.keybindings close "['<Shift><Super>Delete']"
gsettings set org.gnome.desktop.wm.keybindings switch-applications "['<Super>j']"
gsettings set org.gnome.desktop.wm.keybindings switch-applications-backward "['<Super>k']"
gsettings set org.gnome.shell.keybindings toggle-application-view "['<Super>p']"
gsettings set org.gnome.mutter center-new-windows true
gsettings set org.gnome.shell.keybindings toggle-quick-settings []
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-1 "['<Super>a']"
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-2 "['<Super>s']"
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-3 "['<Super>d']"
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-4 "['<Super>f']"
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-5 "['<Super>g']"
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-1 "['<Super><Shift>a']"
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-2 "['<Super><Shift>s']"
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-3 "['<Super><Shift>d']"
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-4 "['<Super><Shift>f']"
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-5 "['<Super><Shift>g']"
gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/']"
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/ name "Kitty"
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/ command "kitty"
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/ binding "<Shift><Super>Return"
gsettings set org.gnome.shell.keybindings screenshot "['Print']"
gsettings set org.gnome.desktop.wm.preferences num-workspaces "5"
gsettings set org.gnome.mutter dynamic-workspaces "false"
gsettings set org.gnome.shell.extensions.window-list display-all-workspaces "true"
gsettings set org.gnome.shell.app-switcher current-workspace-only "true"
gsettings set org.gnome.login-screen logo ''
gsettings set org.gnome.shell favorite-apps "['firefox-developer-edition.desktop']"
+20
View File
@@ -0,0 +1,20 @@
#!/bin/bash
if [ ! -d ~/.zk ]; then
echo "[zk] Setting up zettelkasten"
gh repo clone zk ~/.zk
else
echo "[zk] Zettelkasten already set up."
fi
read -p "Would you like open your zettelkasten? [y/N] " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
if [ -x "$(command -v zk)" ]; then
zk
else
echo "Error: 'zk' command not found or not executable"
exit 1
fi
fi
+1 -1
View File
@@ -1,4 +1,4 @@
#!/usr/bin/env python3
#!/usr/bin/python
import argparse
import json
+5
View File
@@ -0,0 +1,5 @@
#!/usr/bin/env bash
# Tiny Vim update helper
nvim +PlugUpgrade +PlugUpdate +CocUpdate
Executable
+33
View File
@@ -0,0 +1,33 @@
#!/usr/bin/env bash
if [ "$TERM_PROGRAM" = tmux ]; then
cd ~/.zk && $EDITOR "$(cat ~/.zk/current-zettel.txt)"
else
echo 'Not in tmux'
echo 'Choose an option:'
echo '1. Open in tmux'
echo '2. Open in current terminal'
read -r -p 'Enter your choice: ' choice
case $choice in
1)
# Check if a tmux session is running with a window named zk
if tmux list-windows -F '#{window_name}' | grep -q zk; then
# Attach to the session containing the 'zk' window
session="$(tmux list-windows -F '#{window_name} #{session_name}' | grep zk | head -n 1 | awk '{ print $2 }')"
tmux attach -t "$session"
else
# Create session with a window named 'zk' and start nvim
tmux new-session -s zk -n zk -d
tmux send-keys -t zk:zk "cd ~/.zk && $EDITOR \"\$(cat ~/.zk/current-zettel.txt)\"" Enter
tmux attach -t zk
fi
;;
2)
cd ~/.zk && $EDITOR "$(cat ~/.zk/current-zettel.txt)"
;;
*)
echo 'Not opening Zettelkasten'
exit 1
;;
esac
fi
+3 -2
View File
@@ -56,7 +56,7 @@ hide_window_decorations yes
#: Tab bar {{{
tab_bar_edge bottom
tab_bar_edge top
tab_bar_style powerline
tab_bar_min_tabs 1
tab_powerline_style slanted
@@ -136,7 +136,7 @@ map f5 goto_tab 5
map f6 goto_tab 6
map f7 goto_tab 7
map f8 goto_tab 8
# map kitty_mod+c new_tab # FIXME: conflict with 'copy'
map kitty_mod+c new_tab
map cmd+t
map kitty_mod+q
map cmd+w
@@ -163,4 +163,5 @@ map cmd+q
#: }}}
include ./themes/zenwritten_dark.conf
include ./nvim.conf
@@ -0,0 +1,49 @@
# This file is auto-generated by shipwright.nvim
# vim:ft=kitty
## name: zenwritten_dark
## author: Michael Chris Lopez
## license: MIT
## upstream: https://github.com/mcchrish/zenbones.nvim/raw/main/extras/kitty/zenwritten_dark.conf
## blurb: A zenbones variant with zero hue and saturation.
foreground #BBBBBB
background #191919
selection_foreground #BBBBBB
selection_background #404040
# Cursor colors
cursor #C9C9C9
cursor_text_color #191919
# URL underline color when hovering with mouse
# kitty window border colors
# OS Window titlebar colors
# Tab bar colors
active_tab_foreground #BBBBBB
active_tab_background #65435E
inactive_tab_foreground #BBBBBB
inactive_tab_background #303030
# Colors for marks (marked text in the terminal)
# The basic 16 colors
# black
color0 #191919
color8 #3D3839
# red
color1 #DE6E7C
color9 #E8838F
# green
color2 #819B69
color10 #8BAE68
# yellow
color3 #B77E64
color11 #D68C67
# blue
color4 #6099C0
color12 #61ABDA
# magenta
color5 #B279A7
color13 #CF86C1
# cyan
color6 #66A5AD
color14 #65B8C1
# white
color7 #BBBBBB
color15 #8E8E8E
# You can set the remaining 240 colors as color16 to color255.
@@ -0,0 +1,49 @@
# This file is auto-generated by shipwright.nvim
# vim:ft=kitty
## name: zenwritten_light
## author: Michael Chris Lopez
## license: MIT
## upstream: https://github.com/mcchrish/zenbones.nvim/raw/main/extras/kitty/zenwritten_light.conf
## blurb: A zenbones variant with zero hue and saturation.
foreground #353535
background #EEEEEE
selection_foreground #353535
selection_background #D7D7D7
# Cursor colors
cursor #353535
cursor_text_color #EEEEEE
# URL underline color when hovering with mouse
# kitty window border colors
# OS Window titlebar colors
# Tab bar colors
active_tab_foreground #353535
active_tab_background #DEB9D6
inactive_tab_foreground #353535
inactive_tab_background #CFCFCF
# Colors for marks (marked text in the terminal)
# The basic 16 colors
# black
color0 #EEEEEE
color8 #C6C3C3
# red
color1 #A8334C
color9 #94253E
# green
color2 #4F6C31
color10 #3F5A22
# yellow
color3 #944927
color11 #803D1C
# blue
color4 #286486
color12 #1D5573
# magenta
color5 #88507D
color13 #7B3B70
# cyan
color6 #3B8992
color14 #2B747C
# white
color7 #353535
color15 #5C5C5C
# You can set the remaining 240 colors as color16 to color255.
+25 -4
View File
@@ -1,6 +1,5 @@
default_keybindings = false
flip_status_indicators = true
library_tabs = ["tracks", "albums", "artists", "playlists", "browse"] # remove podcasts tab
[keybindings]
"Enter" = "play"
@@ -25,10 +24,11 @@ library_tabs = ["tracks", "albums", "artists", "playlists", "browse"] # remove p
"c" = "clear"
"=" = "volup 1"
"-" = "voldown 1"
"/" = "focus search"
"Q" = "focus queue"
"L" = "focus library"
"1" = "focus queue"
"2" = "focus search"
"3" = "focus library"
"4" = "focus cover"
"2" = "focus library"
"h" = "move left 1"
"j" = "move down 1"
"k" = "move up 1"
@@ -41,5 +41,26 @@ library_tabs = ["tracks", "albums", "artists", "playlists", "browse"] # remove p
"Y" = "share selected"
"U" = "update"
[theme]
primary="#aaaaaa"
secondary="#555555"
background="1a1a1a"
title="#cccccc"
title_secondary="#aaaaaa"
playing="#ffffff"
playing_bg="1a1a1a"
playing_selected="#ffffff"
highlight="#cccccc"
highlight_bg="#333333"
error="#ffffff"
error_bg="#333333"
statusbar="#cccccc"
statusbar_bg="#1a1a1a"
statusbar_progress="#cccccc"
statusbar_progress_bg="#1a1a1a"
cmdline="#cccccc"
cmdline_bg="#1a1a1a"
search_match="#ffffff"
backend="pipe"
notify="false"
+3
View File
@@ -0,0 +1,3 @@
username = 'hektor.misplon@gmail.com'
auth_type = 0
auth_data = 'KDEzMzc9PXRydTMpPzo='
@@ -1,61 +0,0 @@
require("claude-code").setup({
-- Terminal window settings
window = {
split_ratio = 0.3, -- Percentage of screen for the terminal window (height for horizontal, width for vertical splits)
position = "vertical", -- Position of the window: "botright", "topleft", "vertical", "float", etc.
enter_insert = true, -- Whether to enter insert mode when opening Claude Code
hide_numbers = true, -- Hide line numbers in the terminal window
hide_signcolumn = true, -- Hide the sign column in the terminal window
-- Floating window configuration (only applies when position = "float")
float = {
width = "80%", -- Width: number of columns or percentage string
height = "80%", -- Height: number of rows or percentage string
row = "center", -- Row position: number, "center", or percentage string
col = "center", -- Column position: number, "center", or percentage string
relative = "editor", -- Relative to: "editor" or "cursor"
border = "rounded", -- Border style: "none", "single", "double", "rounded", "solid", "shadow"
},
},
-- File refresh settings
refresh = {
enable = true, -- Enable file change detection
updatetime = 100, -- updatetime when Claude Code is active (milliseconds)
timer_interval = 1000, -- How often to check for file changes (milliseconds)
show_notifications = true, -- Show notification when files are reloaded
},
-- Git project settings
git = {
use_git_root = true, -- Set CWD to git root when opening Claude Code (if in git project)
},
-- Shell-specific settings
shell = {
separator = "&&", -- Command separator used in shell commands
pushd_cmd = "pushd", -- Command to push directory onto stack (e.g., 'pushd' for bash/zsh, 'enter' for nushell)
popd_cmd = "popd", -- Command to pop directory from stack (e.g., 'popd' for bash/zsh, 'exit' for nushell)
},
-- Command settings
command = "claude", -- Command used to launch Claude Code
-- Command variants
command_variants = {
-- Conversation management
continue = "--continue", -- Resume the most recent conversation
resume = "--resume", -- Display an interactive conversation picker
-- Output options
verbose = "--verbose", -- Enable verbose logging with full turn-by-turn output
},
-- Keymaps
keymaps = {
toggle = {
normal = "<C-,>", -- Normal mode keymap for toggling Claude Code, false to disable
terminal = "<C-,>", -- Terminal mode keymap for toggling Claude Code, false to disable
variants = {
continue = "<leader>cC", -- Normal mode keymap for Claude Code with continue flag
verbose = "<leader>cV", -- Normal mode keymap for Claude Code with verbose flag
},
},
window_navigation = true, -- Enable window navigation keymaps (<C-h/j/k/l>)
scrolling = true, -- Enable scrolling keymaps (<C-f/b>) for page up/down
},
})
@@ -1,23 +1,16 @@
require("codecompanion").setup({
ignore_warnings = true,
extensions = {
mcphub = {
callback = "mcphub.extensions.codecompanion",
opts = {
make_vars = true,
make_slash_commands = true,
show_result_in_chat = true
}
}
},
strategies = {
chat = { adapter = "openai" },
inline = { adapter = "openai" },
},
})
-- Load mcphub extension after codecompanion is initialized
-- and ensure the config structure exists
local ok, cc_config = pcall(require, "codecompanion.config")
if ok then
cc_config.interactions = cc_config.interactions or {}
cc_config.interactions.chat = cc_config.interactions.chat or {}
cc_config.interactions.chat.tools = cc_config.interactions.chat.tools or {}
cc_config.interactions.chat.variables = cc_config.interactions.chat.variables or {}
require("mcphub.extensions.codecompanion").setup({
make_vars = true,
make_slash_commands = true,
show_result_in_chat = true,
})
end
+3 -4
View File
@@ -13,15 +13,14 @@ require("conform").setup({
gdscript = { "gdformat" },
haskell = { "ormolu" },
html = { "prettierd", "prettier", stop_after_first = true },
lua = { "stylua" }, -- configured in stylua.toml
markdown = { "prettierd", "prettier", stop_after_first = true },
nix = { "nixfmt" },
javascript = { "eslint_d", "eslint", "prettierd", "prettier", stop_after_first = true },
javascriptreact = { "eslint_d", "eslint", "prettierd", "prettier", stop_after_first = true },
json = { "prettierd", "prettier", stop_after_first = true },
jsonc = { "prettierd", "prettier", stop_after_first = true },
lua = { "stylua" }, -- configured in stylua.toml
markdown = { "prettierd", "prettier", stop_after_first = true },
nix = { "nixfmt" },
python = { "isort", "black" },
rust = { "rustfmt", lsp_fallback = "fallback" },
svelte = { "eslint_d", "prettierd", "prettier", stop_after_first = true },
typescript = { "eslint_d", "prettierd", "prettier", stop_after_first = true },
typescriptreact = { "eslint_d", "eslint", "prettierd", "prettier", stop_after_first = true },
@@ -1 +0,0 @@
require("fidget").setup()
+1 -1
View File
@@ -11,6 +11,6 @@ vim.keymap.set("n", "<leader>fd", fzf.diagnostics_workspace)
vim.keymap.set("n", "<leader>fhe", fzf.help_tags)
vim.keymap.set("n", "<leader>fhi", fzf.search_history)
vim.keymap.set("n", "<leader>fma", fzf.marks)
vim.keymap.set("n", "<leader>fmp", fzf.man_pages)
vim.keymap.set("n", "<leader>fma", fzf.man_pages)
vim.keymap.set("i", "<c-f>", fzf.complete_path)
-35
View File
@@ -1,35 +0,0 @@
local hydra_repl = "hydra-repl"
if not vim.fn.executable(hydra_repl) then
return
end
local function send(lines)
vim.system({ hydra_repl, table.concat(lines, "\n") })
end
local function get_paragraph(buf)
local start_ = vim.fn.search("^$", "bnW")
local end_ = vim.fn.search("^$", "nW") - 1
if end_ < vim.api.nvim_win_get_cursor(0)[1] then
end_ = vim.api.nvim_buf_line_count(buf)
end
return vim.api.nvim_buf_get_lines(buf, start_, end_, false)
end
local function get_selection(buf)
return vim.api.nvim_buf_get_lines(buf, vim.fn.line("'<") - 1, vim.fn.line("'>"), false)
end
vim.api.nvim_create_autocmd("FileType", {
pattern = "javascript",
callback = function(e)
if vim.fn.fnamemodify(vim.api.nvim_buf_get_name(e.buf), ":e") ~= "hydra" then
return
end
local buf = e.buf
vim.keymap.set("n", "<CR>", function() send(get_paragraph(buf)) end, { buffer = buf, desc = "hydra: send block" })
vim.keymap.set("v", "<CR>", function() send(get_selection(buf)) end, { buffer = buf, desc = "hydra: send selection" })
end,
})
@@ -1,5 +1,3 @@
if not vim.env.KITTY_WINDOW_ID then return end
require("image").setup({
backend = "kitty",
kitty_method = "normal",
+7 -25
View File
@@ -1,5 +1,8 @@
require("neodev").setup() -- should setup before lspconfig
-- vim.g.coq_settings = { auto_start = 'shut-up' }
-- local capabilities = coq.lsp_ensure_capabilities()
local cmp_nvim_lsp = require("cmp_nvim_lsp")
local capabilities = cmp_nvim_lsp.default_capabilities()
@@ -61,32 +64,10 @@ local servers = {
Lua = {},
},
},
nixd = {
settings = {
nixd = {
nixpkgs = {
expr = "import <nixpkgs> { }",
expr = 'import (builtins.getFlake ("git+file://" + toString ../../../../../.)).inputs.nixpkgs { }',
},
},
options = {
nixos = {
expr = '(builtins.getFlake ("git+file://" + toString ../../../../../.)).nixosConfigurations."'
.. vim.fn.hostname()
.. '".options',
},
home_manager = {
expr = '(builtins.getFlake ("git+file://" + toString ../../../../../.)).homeConfigurations."'
.. vim.fn.expand("$USER")
.. "@"
.. vim.fn.hostname()
.. '".options',
},
},
},
},
openscad_ls = {},
-- marksman = {},
nixd = {},
pyright = {},
-- tsserver = {},
svelte = {
plugin = {
svelte = {
@@ -95,6 +76,7 @@ local servers = {
},
},
tailwindcss = {},
-- vtsls = {},
ts_ls = {},
-- vtsls = {
-- maxTsServerMemory = 16384,
+300
View File
@@ -1,5 +1,23 @@
local ls = require("luasnip")
local s = ls.snippet
local sn = ls.snippet_node
local t = ls.text_node
local i = ls.insert_node
local f = ls.function_node
local c = ls.choice_node
local d = ls.dynamic_node
local r = ls.restore_node
local l = require("luasnip.extras").lambda
local rep = require("luasnip.extras").rep
local p = require("luasnip.extras").partial
local m = require("luasnip.extras").match
local n = require("luasnip.extras").nonempty
local dl = require("luasnip.extras").dynamic_lambda
local fmt = require("luasnip.extras.fmt").fmt
local fmta = require("luasnip.extras.fmt").fmta
local conds = require("luasnip.extras.expand_conditions")
ls.config.set_config({
history = true,
update_events = "TextChanged,TextChangedI",
@@ -9,5 +27,287 @@ ls.config.set_config({
store_selection_keys = "<Tab>",
})
local function copy(args)
return args[1]
end
local function bash(_, _, command)
local file = io.popen(command, "r")
local res = {}
if file then
for line in file:lines() do
table.insert(res, line)
end
end
return res
end
local date_input = function(args, snip, old_state, date_format)
print(args, snip, old_state)
return sn(nil, i(1, os.date(date_format or "%Y-%m-%d")))
end
-- -- FIXME: EXAMPLE
-- ls.add_snippets("all", {
-- -- arg1: trigger `fn`,
-- -- arg2: nodes to insert into buffer on expansion.
-- s("fn", {
-- t("//Parameters: "), -- Text.
-- f(copy, 2), -- 1: function, 2: placeholders to copy text from
-- t({ "", "function " }), -- placeholder/insert.
-- i(1),
-- t("("), -- placeholder with initial text.
-- i(2, "int foo"), -- linebreak
-- t({ ") {", "\t" }), -- last placeholder, snippet exit point
-- i(0),
-- t({ "", "}" }),
-- }),
-- s("class", {
-- -- Choice: Switch between two different Nodes, first parameter is its position, second a list of nodes.
-- c(1, {
-- t("public "),
-- t("private "),
-- }),
-- t("class "),
-- i(2),
-- t(" "),
-- c(3, {
-- t("{"),
-- -- sn: Nested Snippet. Instead of a trigger, it has a position, just like insert-nodes. !!! These don't expect a 0-node!!!!
-- -- Inside Choices, Nodes don't need a position as the choice node is the one being jumped to.
-- sn(nil, {
-- t("extends "),
-- -- restoreNode: stores and restores nodes.
-- -- pass position, store-key and nodes.
-- r(1, "other_class", i(1)),
-- t(" {"),
-- }),
-- sn(nil, {
-- t("implements "),
-- -- no need to define the nodes for a given key a second time.
-- r(1, "other_class"),
-- t(" {"),
-- }),
-- }),
-- t({ "", "\t" }),
-- i(0),
-- t({ "", "}" }),
-- }),
-- -- Alternative printf-like notation for defining snippets. It uses format
-- -- string with placeholders similar to the ones used with Python's .format().
-- s(
-- "fmt1",
-- fmt("To {title} {} {}.", {
-- i(2, "Name"),
-- i(3, "Surname"),
-- title = c(1, { t("Mr."), t("Ms.") }),
-- })
-- ),
-- -- To escape delimiters use double them, e.g. `{}` -> `{{}}`.
-- -- Multi-line format strings by default have empty first/last line removed.
-- -- Indent common to all lines is also removed. Use the third `opts` argument
-- -- to control this behaviour.
-- s(
-- "fmt2",
-- fmt(
-- [[
-- foo({1}, {3}) {{
-- return {2} * {4}
-- }}
-- ]],
-- {
-- i(1, "x"),
-- rep(1),
-- i(2, "y"),
-- rep(2),
-- }
-- )
-- ),
-- -- Empty placeholders are numbered automatically starting from 1 or the last
-- -- value of a numbered placeholder. Named placeholders do not affect numbering.
-- s(
-- "fmt3",
-- fmt("{} {a} {} {1} {}", {
-- t("1"),
-- t("2"),
-- a = t("A"),
-- })
-- ),
-- -- The delimiters can be changed from the default `{}` to something else.
-- s("fmt4", fmt("foo() { return []; }", i(1, "x"), { delimiters = "[]" })),
-- -- `fmta` is a convenient wrapper that uses `<>` instead of `{}`.
-- s("fmt5", fmta("foo() { return <>; }", i(1, "x"))),
-- -- By default all args must be used. Use strict=false to disable the check
-- s(
-- "fmt6",
-- fmt("use {} only", { t("this"), t("not this") }, { strict = false })
-- ),
-- -- Use a dynamic_node to interpolate the output of a
-- -- function (see date_input above) into the initial
-- -- value of an insert_node.
-- s("novel", {
-- t("It was a dark and stormy night on "),
-- d(1, date_input, {}, { user_args = { "%A, %B %d of %Y" } }),
-- t(" and the clocks were striking thirteen."),
-- }),
-- -- Parsing snippets: First parameter: Snippet-Trigger, Second: Snippet body.
-- -- Placeholders are parsed into choices with 1. the placeholder text(as a snippet) and 2. an empty string.
-- -- This means they are not SELECTed like in other editors/Snippet engines.
-- ls.parser.parse_snippet(
-- "lspsyn",
-- "Wow! This ${1:Stuff} really ${2:works. ${3:Well, a bit.}}"
-- ),
-- -- When wordTrig is set to false, snippets may also expand inside other words.
-- ls.parser.parse_snippet(
-- { trig = "te", wordTrig = false },
-- "${1:cond} ? ${2:true} : ${3:false}"
-- ),
-- -- When regTrig is set, trig is treated like a pattern, this snippet will expand after any number.
-- ls.parser.parse_snippet({ trig = "%d", regTrig = true }, "A Number!!"),
-- -- Using the condition, it's possible to allow expansion only in specific cases.
-- s("cond", {
-- t("will only expand in c-style comments"),
-- }, {
-- condition = function(line_to_cursor, matched_trigger, captures)
-- -- optional whitespace followed by //
-- return line_to_cursor:match("%s*//")
-- end,
-- }),
-- -- there's some built-in conditions in "luasnip.extras.expand_conditions".
-- s("cond2", {
-- t("will only expand at the beginning of the line"),
-- }, {
-- condition = conds.line_begin,
-- }),
-- -- The last entry of args passed to the user-function is the surrounding snippet.
-- s(
-- { trig = "a%d", regTrig = true },
-- f(function(_, snip)
-- return "Triggered with " .. snip.trigger .. "."
-- end, {})
-- ),
-- -- It's possible to use capture-groups inside regex-triggers.
-- s(
-- { trig = "b(%d)", regTrig = true },
-- f(function(_, snip)
-- return "Captured Text: " .. snip.captures[1] .. "."
-- end, {})
-- ),
-- s({ trig = "c(%d+)", regTrig = true }, {
-- t("will only expand for even numbers"),
-- }, {
-- condition = function(line_to_cursor, matched_trigger, captures)
-- return tonumber(captures[1]) % 2 == 0
-- end,
-- }),
-- -- Use a function to execute any shell command and print its text.
-- s("bash", f(bash, {}, "ls")),
-- -- Short version for applying String transformations using function nodes.
-- s("transform", {
-- i(1, "initial text"),
-- t({ "", "" }),
-- -- lambda nodes accept an l._1,2,3,4,5, which in turn accept any string transformations.
-- -- This list will be applied in order to the first node given in the second argument.
-- l(l._1:match("[^i]*$"):gsub("i", "o"):gsub(" ", "_"):upper(), 1),
-- }),
-- s("transform2", {
-- i(1, "initial text"),
-- t("::"),
-- i(2, "replacement for e"),
-- t({ "", "" }),
-- -- Lambdas can also apply transforms USING the text of other nodes:
-- l(l._1:gsub("e", l._2), { 1, 2 }),
-- }),
-- s({ trig = "trafo(%d+)", regTrig = true }, {
-- -- env-variables and captures can also be used:
-- l(l.CAPTURE1:gsub("1", l.TM_FILENAME), {}),
-- }),
-- -- Set store_selection_keys = "<Tab>" (for example) in your
-- -- luasnip.config.setup() call to populate
-- -- TM_SELECTED_TEXT/SELECT_RAW/SELECT_DEDENT.
-- -- In this case: select a URL, hit Tab, then expand this snippet.
-- s("link_url", {
-- t('<a href="'),
-- f(function(_, snip)
-- -- TM_SELECTED_TEXT is a table to account for multiline-selections.
-- -- In this case only the first line is inserted.
-- return snip.env.TM_SELECTED_TEXT[1] or {}
-- end, {}),
-- t('">'),
-- i(1),
-- t("</a>"),
-- i(0),
-- }),
-- -- Shorthand for repeating the text in a given node.
-- s("repeat", { i(1, "text"), t({ "", "" }), rep(1) }),
-- -- Directly insert the ouput from a function evaluated at runtime.
-- s("part", p(os.date, "%Y")),
-- -- use matchNodes (`m(argnode, condition, then, else)`) to insert text
-- -- based on a pattern/function/lambda-evaluation.
-- -- It's basically a shortcut for simple functionNodes:
-- s("mat", {
-- i(1, { "sample_text" }),
-- t(": "),
-- m(1, "%d", "contains a number", "no number :("),
-- }),
-- -- The `then`-text defaults to the first capture group/the entire
-- -- match if there are none.
-- s("mat2", {
-- i(1, { "sample_text" }),
-- t(": "),
-- m(1, "[abc][abc][abc]"),
-- }),
-- -- It is even possible to apply gsubs' or other transformations
-- -- before matching.
-- s("mat3", {
-- i(1, { "sample_text" }),
-- t(": "),
-- m(
-- 1,
-- l._1:gsub("[123]", ""):match("%d"),
-- "contains a number that isn't 1, 2 or 3!"
-- ),
-- }),
-- -- `match` also accepts a function in place of the condition, which in
-- -- turn accepts the usual functionNode-args.
-- -- The condition is considered true if the function returns any
-- -- non-nil/false-value.
-- -- If that value is a string, it is used as the `if`-text if no if is explicitly given.
-- s("mat4", {
-- i(1, { "sample_text" }),
-- t(": "),
-- m(1, function(args)
-- -- args is a table of multiline-strings (as usual).
-- return (#args[1][1] % 2 == 0 and args[1]) or nil
-- end),
-- }),
-- -- The nonempty-node inserts text depending on whether the arg-node is
-- -- empty.
-- s("nempty", {
-- i(1, "sample_text"),
-- n(1, "i(1) is not empty!"),
-- }),
-- -- dynamic lambdas work exactly like regular lambdas, except that they
-- -- don't return a textNode, but a dynamicNode containing one insertNode.
-- -- This makes it easier to dynamically set preset-text for insertNodes.
-- s("dl1", {
-- i(1, "sample_text"),
-- t({ ":", "" }),
-- dl(2, l._1, 1),
-- }),
-- -- Obviously, it's also possible to apply transformations, just like lambdas.
-- s("dl2", {
-- i(1, "sample_text"),
-- i(2, "sample_text_2"),
-- t({ "", "" }),
-- dl(3, l._1:gsub("\n", " linebreak ") .. l._2, { 1, 2 }),
-- }),
-- }, {
-- key = "all",
-- })
require("luasnip.loaders.from_lua").lazy_load({ paths = { "~/.config/nvim/snips" } })
require("luasnip.loaders.from_vscode").lazy_load({ paths = { "~/.config/Code - Insiders/User/snippets" } })
+1 -1
View File
@@ -64,7 +64,7 @@ cmp.setup({
sources = {
{ name = "copilot", group_index = 2 },
{ name = "zk" },
{ name = "nvim_lsp" },
{ name = "nvim_lsp", keyword_length = 8 },
{ name = "luasnip", max_item_count = 16 },
{ name = "path" },
{ name = "buffer", max_item_count = 8 },
@@ -1 +1,3 @@
vim.opt.termguicolors = true
require("nvim-highlight-colors").setup({})
@@ -28,6 +28,9 @@ require("lint").linters_by_ft = {
yaml = { "yamllint" },
}
-- TODO: Wouldn't it be possible / nice to only try to load the linters when they are
-- actually needed?
vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, {
callback = function()
require("lint").try_lint()
@@ -1,8 +0,0 @@
require("ts_context_commentstring").setup({ enable_autocmd = false })
-- https://github.com/JoosepAlviste/nvim-ts-context-commentstring/issues/109
local get_option = vim.filetype.get_option
vim.filetype.get_option = function(filetype, option)
return option == "commentstring" and require("ts_context_commentstring.internal").calculate_commentstring()
or get_option(filetype, option)
end
@@ -2,15 +2,12 @@ local ts = require("treesj")
local vim = vim
local keymap = vim.keymap
local opt = vim.opt
local treesitter = require("nvim-treesitter")
local treesitter_configs = require("nvim-treesitter.configs")
local nixCatsUtils = require("nixCatsUtils")
local is_nix = nixCatsUtils.isNixCats
treesitter.setup({
treesitter_configs.setup({
-- Basically added what I might need from the docs
-- <https://github.com/nvim-treesitter/nvim-treesitter?tab=readme-ov-file#supported-languages>
ensure_installed = is_nix and {} or {
ensure_installed = {
"awk",
"bash",
"bibtex",
@@ -89,7 +86,7 @@ treesitter.setup({
enable = true,
},
sync_install = false,
auto_install = not is_nix,
auto_install = true,
ignore_install = {},
modules = {},
textobjects = {
@@ -123,7 +120,7 @@ treesitter.setup({
})
opt.foldmethod = "expr"
opt.foldexpr = "v:lua.vim.treesitter.foldexpr()"
opt.foldexpr = "nvim_treesitter#foldexpr()"
opt.foldenable = false
-- TreeSJ
@@ -1,28 +1,16 @@
vim.g.tidal_default_config = { socket_name = "default", target_pane = "tidal:1.1" }
vim.g.tidal_no_mappings = 1
vim.cmd([[
" Tidalcycles (sclang and vim-tidal)
let g:tidal_default_config = {"socket_name": "default", "target_pane": "tidal:1.1"}
let g:tidal_no_mappings = 1
vim.api.nvim_create_autocmd("FileType", {
pattern = "tidal",
callback = function(e)
local buf = e.buf
vim.keymap.set("n", "<leader>ep", "<Plug>TidalParagraphSend", { buffer = buf, desc = "Tidal: send paragraph" })
vim.keymap.set("n", "<leader>ee", "<Plug>TidalLineSend", { buffer = buf, desc = "Tidal: send line" })
vim.keymap.set("n", "<leader>h", ":TidalHush<cr>", { buffer = buf, desc = "Tidal: hush" })
vim.api.nvim_buf_create_user_command(buf, "S", "TidalSilence <args>", { nargs = 1 })
vim.api.nvim_buf_create_user_command(buf, "P", "TidalPlay <args>", { nargs = 1 })
vim.api.nvim_buf_create_user_command(buf, "H", "TidalHush", { nargs = 0 })
end,
})
au FileType tidal nm <buffer> <leader>ep <Plug>TidalParagraphSend
au FileType tidal nm <buffer> <leader>ee <Plug>TidalLineSend
au FileType tidal nnoremap <buffer> <leader>h :TidalHush<cr>
au FileType tidal com! -nargs=1 S :TidalSilence <args>
au FileType tidal com! -nargs=1 P :TidalPlay <args>
au FileType tidal com! -nargs=0 H :TidalHush
-- SuperCollider
vim.api.nvim_create_autocmd({ "BufEnter", "BufWinEnter", "BufNewFile", "BufRead" }, {
pattern = { "*.sc", "*.scd" },
callback = function()
vim.bo.filetype = "supercollider"
end,
})
vim.api.nvim_create_autocmd("FileType", {
pattern = "supercollider",
command = "packadd scvim",
})
" SuperCollider
au BufEnter,BufWinEnter,BufNewFile,BufRead *.sc,*.scd se filetype=supercollider
au Filetype supercollider packadd scvim
]])
+7 -14
View File
@@ -1,8 +1,6 @@
require("zk.utils")
vim.cmd([[
" Change local buffer to directory of current file after the plugin has loaded
execute 'autocmd BufEnter' g:zk_path . '/*.md' 'silent lcd %:p:h'
autocmd VimEnter * lcd %:p:h
" " Override wiki index mapping to also cd into the wiki
nm <leader>ww <plug>(wiki-index)
@@ -13,16 +11,11 @@ nm <leader>ww <plug>(wiki-index)
" nm <leader>s <plug>(wiki-link-follow-split)
" nm <leader>v <plug>(wiki-link-follow-vsplit)
function! ZKContextualEcho()
let l:name = expand('%:t')
if l:name =~ '_' | echo 'hierarchical relation'
elseif l:name =~ '--' | echo 'relation'
elseif l:name =~ '<>' | echo 'dichotomy'
elseif l:name =~ 'my-' | echo 'personal file'
elseif l:name =~ 'project_' | echo 'project file'
endif
endfunction
execute 'autocmd BufEnter' g:zk_path . '/*.md' 'call ZKContextualEcho()'
autocmd BufEnter *.md if expand('%:t') =~ '_' | echo 'hierarchical relation' | endif
autocmd BufEnter *.md if expand('%:t') =~ '--' | echo 'relation' | endif
autocmd BufEnter *.md if expand('%:t') =~ '<>' | echo 'dichotomy' | endif
autocmd BufEnter *.md if expand('%:t') =~ 'my-' | echo 'personal file' | endif
autocmd BufEnter *.md if expand('%:t') =~ 'project_' | echo 'project file' | endif
" Only load wiki.vim for zk directory
let g:wiki_index_name='index'
@@ -83,7 +76,7 @@ let g:wiki_templates = [
"
let g:wiki_filetypes=['md']
let g:wiki_root=g:zk_path
let g:wiki_root='~/.zk'
let g:wiki_global_load=0
let g:wiki_link_creation = {
\ 'md': {
+33 -73
View File
@@ -1,52 +1,12 @@
{
"nodes": {
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"mcp-hub",
"nixpkgs"
]
},
"locked": {
"lastModified": 1743550720,
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"mcp-hub": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1755841689,
"narHash": "sha256-KakvXZf0vjdqzyT+LsAKHEr4GLICGXPmxl1hZ3tI7Yg=",
"owner": "ravitemer",
"repo": "mcp-hub",
"rev": "9c7670a4c341ed3cf738a6242c0fde1cea40bccf",
"type": "github"
},
"original": {
"owner": "ravitemer",
"repo": "mcp-hub",
"type": "github"
}
},
"nixCats": {
"locked": {
"lastModified": 1777273601,
"narHash": "sha256-xBUa8Tl9V7IXI+VmLEuDc81La/EhoSn1C3EVSnJ3cfU=",
"lastModified": 1763330129,
"narHash": "sha256-KbOeWIF52SV53BOeETGO2C5ewaV2Ex9iaXH7G72gOr8=",
"owner": "BirdeeHub",
"repo": "nixCats-nvim",
"rev": "f69ea013e328841a7def7037ed59788a76be8816",
"rev": "c81551ed87db2aefab30a12cf7425ff94dc0ad64",
"type": "github"
},
"original": {
@@ -57,27 +17,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1743689281,
"narHash": "sha256-y7Hg5lwWhEOgflEHRfzSH96BOt26LaYfrYWzZ+VoVdg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "2bfc080955153be0be56724be6fa5477b4eefabb",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1777270315,
"narHash": "sha256-yKB4G6cKsQsWN7M6rZGk6gkJPDNPIzT05y4qzRyCDlI=",
"lastModified": 1763464769,
"narHash": "sha256-AJHrsT7VoeQzErpBRlLJM1SODcaayp0joAoEA35yiwM=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "6368eda62c9775c38ef7f714b2555a741c20c72d",
"rev": "6f374686605df381de8541c072038472a5ea2e2d",
"type": "github"
},
"original": {
@@ -103,14 +47,30 @@
"type": "github"
}
},
"plugins-crazy-node-movement": {
"flake": false,
"locked": {
"lastModified": 1693654676,
"narHash": "sha256-hQcQEp39zFN2zphMfcr97yRVcuHhBsSkzKO7XNloDpQ=",
"owner": "theHamsta",
"repo": "crazy-node-movement",
"rev": "d5cf01cc44c5715501d3d6fe439af7c8b7fa5df2",
"type": "github"
},
"original": {
"owner": "theHamsta",
"repo": "crazy-node-movement",
"type": "github"
}
},
"plugins-helm-ls-nvim": {
"flake": false,
"locked": {
"lastModified": 1773934114,
"narHash": "sha256-8trqFsA7nTKSdtkiAL0Sa9bXjh5ONtAqN7XNE/B8ukM=",
"lastModified": 1761915179,
"narHash": "sha256-W9NRa84l5Cs62OsDeqb+LMxk8oYjhVBCB3o3UmE9a0I=",
"owner": "qvalentin",
"repo": "helm-ls.nvim",
"rev": "20df43509b02a3ce3c6b3eee254d6e2bffa9a370",
"rev": "d6f3a8d4ad59b4f54cd734267dfb5411679ea608",
"type": "github"
},
"original": {
@@ -122,11 +82,11 @@
"plugins-mcphub-nvim": {
"flake": false,
"locked": {
"lastModified": 1768730387,
"narHash": "sha256-g9tPvjThz6EUk7zcY7lL+YH4lrT4x3FJ6jrNMHA8PAE=",
"lastModified": 1759035242,
"narHash": "sha256-I6EbgY/2sAdtrxtmH0qbAAQvMCHhOsfolJfblV0fXOk=",
"owner": "ravitemer",
"repo": "mcphub.nvim",
"rev": "7cd5db330f41b7bae02b2d6202218a061c3ebc1f",
"rev": "8ff40b5edc649959bb7e89d25ae18e055554859a",
"type": "github"
},
"original": {
@@ -170,11 +130,11 @@
"plugins-tailwind-fold-nvim": {
"flake": false,
"locked": {
"lastModified": 1766077142,
"narHash": "sha256-SwcDLlygXUSV/dytPXA5Y45OpUhjnExc8SZg5a8MZ2k=",
"lastModified": 1752559116,
"narHash": "sha256-8uefZIVsn9USEd6FyiO3m3TRKAS/vigU4t9Tk5ijd3c=",
"owner": "razak17",
"repo": "tailwind-fold.nvim",
"rev": "e2ba5ee1ca9b74208709fe9d7314b8aa753b26a7",
"rev": "d9e7ca11691d252b35795726dff087bf013b2ebf",
"type": "github"
},
"original": {
@@ -185,10 +145,10 @@
},
"root": {
"inputs": {
"mcp-hub": "mcp-hub",
"nixCats": "nixCats",
"nixpkgs": "nixpkgs_2",
"nixpkgs": "nixpkgs",
"plugins-beancount-nvim": "plugins-beancount-nvim",
"plugins-crazy-node-movement": "plugins-crazy-node-movement",
"plugins-helm-ls-nvim": "plugins-helm-ls-nvim",
"plugins-mcphub-nvim": "plugins-mcphub-nvim",
"plugins-nvimkit-nvim": "plugins-nvimkit-nvim",
+19 -70
View File
@@ -2,16 +2,15 @@
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
nixCats.url = "github:BirdeeHub/nixCats-nvim";
mcp-hub.url = "github:ravitemer/mcp-hub";
plugins-shipwright-nvim = {
url = "github:rktjmp/shipwright.nvim";
flake = false;
};
# plugins-m-taskwarrior-d-nvim = {
# url = "github:huantrinh1802/m_taskwarrior_d.nvim";
# flake = false;
# };
plugins-crazy-node-movement = {
url = "github:theHamsta/crazy-node-movement";
flake = false;
};
plugins-beancount-nvim = {
url = "github:polarmutex/beancount.nvim";
flake = false;
@@ -37,6 +36,7 @@
outputs =
{
self,
nixpkgs,
nixCats,
...
@@ -45,38 +45,10 @@
inherit (nixCats) utils;
luaPath = ./.;
forEachSystem = utils.eachSystem nixpkgs.lib.platforms.all;
extra_pkg_config = {
allowUnfreePredicate =
pkg:
builtins.elem (nixpkgs.lib.getName pkg) [
"vim-sandwich"
"jupytext.nvim"
"eyeliner.nvim"
"context_filetype.vim"
"editorconfig-vim"
"unicode.vim"
"quarto-nvim"
"vim-openscad"
"lsp_lines.nvim"
"nvim-highlight-colors"
"nvim-lint"
];
};
extra_pkg_config = { };
mkDependencyOverlays = system: [
dependencyOverlays = [
(utils.standardPluginOverlay inputs)
(_final: _prev: {
mcp-hub = inputs.mcp-hub.packages.${system}.default;
})
(_: prev: {
luajitPackages = prev.luajitPackages.overrideScope (
_: lprev: {
neotest = lprev.neotest.overrideAttrs (_: {
doCheck = false;
});
}
);
})
];
categoryDefinitions =
@@ -87,40 +59,21 @@
{
lspsAndRuntimeDeps = with pkgs; {
general = [
nodejs_24
black
clang
clang-tools
curl # → plenary-nvim, mcp-hub
delta
emmet-language-server
eslint_d
fd
gawk
gdtoolkit_4
hadolint
helm-ls
isort
lua-language-server
mcp-hub
tree-sitter
ormolu
nodePackages.prettier
nixd
nixfmt
prettier
typescript-language-server
ormolu
prettierd
rust-analyzer
rustfmt
shellcheck-minimal
stylelint
stylua
tree-sitter
tailwindcss-language-server
typescript-language-server
vscode-langservers-extracted
vtsls
yaml-language-server
yamllint
];
};
@@ -170,11 +123,11 @@
pkgs.neovimPlugins.shipwright-nvim
lush-nvim
zenbones-nvim
pkgs.neovimPlugins.crazy-node-movement
nvim-treesitter.withAllGrammars
nvim-treesitter-textobjects
# nvim-treesitter-context
nvim-ts-context-commentstring
# theHamsta/crazy-node-movement
treesj
sniprun
gitsigns-nvim
@@ -190,11 +143,7 @@
copilot-lua
copilot-cmp
pkgs.neovimPlugins.helm-ls-nvim
kitty-scrollback-nvim
fidget-nvim
rustaceanvim
# pkgs.neovimPlugins.m-taskwarrior-d-nvim
claude-code-nvim
pkgs.vimPlugins.kitty-scrollback-nvim
];
};
@@ -211,7 +160,9 @@
};
packageDefinitions = {
nvim = _: {
nvim =
{ ... }:
{
settings = {
suffix-path = true;
suffix-LD = true;
@@ -229,7 +180,6 @@
forEachSystem (
system:
let
dependencyOverlays = mkDependencyOverlays system;
nixCatsBuilder = utils.baseBuilder luaPath {
inherit
nixpkgs
@@ -249,7 +199,7 @@
name = defaultPackageName;
packages = [ defaultPackage ];
inputsFrom = [ ];
shellHook = "";
shellHook = '''';
};
};
@@ -261,32 +211,31 @@
moduleNamespace = [ defaultPackageName ];
inherit
defaultPackageName
dependencyOverlays
luaPath
categoryDefinitions
packageDefinitions
extra_pkg_config
nixpkgs
;
dependencyOverlays = mkDependencyOverlays;
};
homeModule = utils.mkHomeModules {
moduleNamespace = [ defaultPackageName ];
inherit
defaultPackageName
dependencyOverlays
luaPath
categoryDefinitions
packageDefinitions
extra_pkg_config
nixpkgs
;
dependencyOverlays = mkDependencyOverlays;
};
in
{
overlays = utils.makeOverlays luaPath {
inherit nixpkgs extra_pkg_config;
dependencyOverlays = mkDependencyOverlays;
inherit nixpkgs dependencyOverlays extra_pkg_config;
} categoryDefinitions packageDefinitions defaultPackageName;
nixosModules.default = nixosModule;
+3
View File
@@ -1,12 +1,15 @@
local json_newline = function()
local line = vim.api.nvim_get_current_line()
if line == "" then
print("line is empty")
return "o"
elseif string.byte(line, -1) == string.byte(",") then
return "o"
elseif string.byte(line, -1) == string.byte("{") then
print("line ends with '{'")
return "o"
elseif string.byte(line, -1) == string.byte("}") then
print("line ends with '}'")
return "o"
else
return "A,<CR>"
+10 -2
View File
@@ -1,20 +1,28 @@
require("nixCatsUtils").setup({ non_nix_value = true }) -- https://github.com/BirdeeHub/nixCats-nvim/blob/77dffad8235eb77684fcb7599487c8e9f23d5b8f/templates/example/init.lua
vim.opt.termguicolors = true
vim.api.nvim_set_hl(0, "Normal", { ctermbg = "NONE", bg = "NONE" })
vim.cmd([[
set termguicolors
set bg=light
hi Normal ctermbg=none guibg=NONE
]])
require("base")
require("cursor")
require("fold")
require("netrw")
require("ftdetect")
require("plug")
require("pandoc")
require("keymaps")
require("highlight")
require("paq-setup")
require("statusline")
require("diagnostic")
require("utils")
require("zk")
require("reload")
require("paq-setup") -- when not on nixCats
vim.opt.background = "dark"
vim.opt.laststatus = 3
+1
View File
@@ -26,4 +26,5 @@ set lcs=trail:·,tab:→\ ,nbsp:␣ " Whitespace rendering
set ar " Autoread
set spellsuggest+=5 " Limit spell suggestions
set wildignore+=*/node_modules/*,*/tmp/*,*.so,*.swp,*.zip
" set thesaurus+=./thesaurus/mthesaur.txt " FIXME
]])
-1
View File
@@ -9,6 +9,5 @@ vim.filetype.add({
["%.env.*"] = "dotenv",
["%.pl$"] = "prolog",
[".*.containerfile.*"] = "dockerfile",
["%.hydra$"] = "javascript",
},
})
+55 -52
View File
@@ -1,57 +1,60 @@
vim.g.mapleader = " "
vim.g.maplocalleader = ";"
vim.cmd([[
" Leader keys
let mapleader = " "
let maplocalleader = ";"
" Splits & navigation
nm s <c-w> " Split horizontal
nm ss :sp<CR><c-w>w| " Split horizontal
nm sv :vs<CR><c-w>w| " Split vertical
nm sw <c-w>w| " Navigate splits
nm sh <c-w>h| "
nm sj <c-w>j| "
nm sk <c-w>k| "
nm sl <c-w>l| "
nn sH <c-w>8<| " Resize splits
nn sJ <c-w>8-| "
nn sK <c-w>8+| "
nn sL <c-w>8>| "
nn s= <c-w>=| " Equalize splits
" Open
nn sb :Lex<cr>| " File tree
nn <leader><leader> :noh<cr> |"
nn <leader>t :term<cr>| " Open terminal
" Remaps
ino <nowait> jj <esc>| " Normal now
nn <left> <nop>| " Hard mode
nn <down> <nop>| " "
nn <up> <nop>| " "
nn <right> <nop>| " "
ino <left> <nop>| " "
ino <down> <nop>| " "
ino <up> <nop>| " "
ino <right> <nop>| " "
" Search
nn <c-_> :noh<cr>| " map 'ctrl + /'
" Line numbers
nn <leader>n :set nu! rnu!<cr>
" Vim configuration
nn <leader>ec :vs $MYVIMRC<cr>
nn <leader>so :so %<cr>
]])
local set = vim.keymap.set
-- splits & navigation
set("n", "s", "<c-w>", { desc = "window prefix" })
set("n", "ss", ":sp<CR><c-w>w", { desc = "split horizontal" })
set("n", "sv", ":vs<CR><c-w>w", { desc = "split vertical" })
set("n", "sw", "<c-w>w", { desc = "navigate splits" })
set("n", "sh", "<c-w>h", { desc = "focus left split" })
set("n", "sj", "<c-w>j", { desc = "focus below split" })
set("n", "sk", "<c-w>k", { desc = "focus above split" })
set("n", "sl", "<c-w>l", { desc = "focus right split" })
set("n", "sH", "<c-w>8<", { desc = "shrink split left" })
set("n", "sJ", "<c-w>8-", { desc = "shrink split down" })
set("n", "sK", "<c-w>8+", { desc = "grow split up" })
set("n", "sL", "<c-w>8>", { desc = "grow split right" })
set("n", "s=", "<c-w>=", { desc = "equalize splits" })
set("n", "<leader>cx", "<cmd>!chmod +x %<CR>", { silent = true, desc = "Run `chmod +x` on current file" })
set("n", "yp", "<cmd>let @+ = expand('%r')<CR>:p<CR>", { silent = true, desc = "Yank path" })
-- open
set("n", "sb", ":Lex<cr>", { desc = "file tree" })
set("n", "<leader><leader>", ":noh<cr>", { desc = "clear highlights" })
set("n", "<leader>t", ":term<cr>", { desc = "open terminal" })
-- Remap native NeoVim comment keymaps
set({ "n", "x" }, "<leader>c", "gc", { remap = true, desc = "Toggle comment" })
set("n", "<leader>cc", "gcc", { remap = true, desc = "Toggle comment line" })
set("o", "<leader>c", "gc", { remap = true, desc = "Comment textobject" })
-- remaps
set("i", "jj", "<esc>", { nowait = true, desc = "exit insert mode" })
set("n", "<left>", "<nop>")
set("n", "<down>", "<nop>")
set("n", "<up>", "<nop>")
set("n", "<right>", "<nop>")
set("i", "<left>", "<nop>")
set("i", "<down>", "<nop>")
set("i", "<up>", "<nop>")
set("i", "<right>", "<nop>")
-- search
set("n", "<c-_>", ":noh<cr>", { desc = "clear search highlight" })
-- line numbers
set("n", "<leader>n", ":set nu! rnu!<cr>", { desc = "toggle line numbers" })
-- vim configuration
set("n", "<leader>ec", ":vs $MYVIMRC<cr>", { desc = "edit vimrc" })
set("n", "<leader>so", ":so %<cr>", { desc = "source current file" })
set("n", "<leader>cx", "<cmd>!chmod +x %<CR>", { silent = true, desc = "run `chmod +x` on current file" })
set("n", "yp", "<cmd>let @+ = expand('%r')<CR>:p<CR>", { silent = true, desc = "yank path" })
-- remap native NeoVim comment keymaps
set({ "n", "x" }, "<leader>c", "gc", { remap = true, desc = "toggle comment" })
set("n", "<leader>cc", "gcc", { remap = true, desc = "toggle comment line" })
set("o", "<leader>c", "gc", { remap = true, desc = "comment textobject" })
-- move lines
set("v", "K", ": '<,'>move '<-2<cr>gv", { desc = "move selection up" })
set("v", "J", ": '<,'>move '>+1<cr>gv", { desc = "move selection down" })
-- Move lines
set("v", "K", ": '<,'>move '<-2<cr>gv")
set("v", "J", ": '<,'>move '>+1<cr>gv")
@@ -0,0 +1,53 @@
-- Source: https://github.com/BirdeeHub/nixCats-nvim/blob/main/templates/example/lua/nixCatsUtils/catPacker.lua
--[[
This directory is the luaUtils template.
You can choose what things from it that you would like to use.
And then delete the rest.
Everything in this directory is optional.
--]]
local M = {}
-- NOTE: This function is for defining a paq.nvim fallback method of downloading plugins
-- when nixCats was not used to install your config.
-- If you only ever load your config using nixCats, you don't need this file.
-- it literally just only runs it when not on nixCats
-- all neovim package managers that use the regular plugin loading scheme
-- can be used this way, just do whatever the plugin manager needs to put it in the
-- opt directory for lazy loading, and add the build steps so that when theres no nix the steps are ran
function M.setup(v)
if not vim.g[ [[nixCats-special-rtp-entry-nixCats]] ] then
local function clone_paq()
local path = vim.fn.stdpath("data") .. "/site/pack/paqs/start/paq-nvim"
local is_installed = vim.fn.empty(vim.fn.glob(path)) == 0
if not is_installed then
vim.fn.system({ "git", "clone", "--depth=1", "https://github.com/savq/paq-nvim.git", path })
return true
end
end
local function bootstrap_paq(packages)
local first_install = clone_paq()
vim.cmd.packadd("paq-nvim")
local paq = require("paq")
if first_install then
vim.notify("Installing plugins... If prompted, hit Enter to continue.")
end
paq(packages)
paq.install()
end
vim.api.nvim_create_autocmd("VimEnter", {
once = true,
callback = function()
local pkgs_count = #require("paq").query("to_install")
if pkgs_count < 1 then
return
end
vim.notify(string.format("There are %d to install", pkgs_count))
end,
})
bootstrap_paq(vim.list_extend({ "savq/paq-nvim" }, v))
end
end
return M
+46
View File
@@ -0,0 +1,46 @@
require("nixCatsUtils.catPacker").setup({
{ "savq/paq-nvim" },
{ "jinh0/eyeliner.nvim" },
{ "ibhagwan/fzf-lua" },
{ "barreiroleo/ltex_extra.nvim" },
{ "neovim/nvim-lspconfig" },
{ "https://git.sr.ht/~whynothugo/lsp_lines.nvim" },
{ "linrongbin16/lsp-progress.nvim" },
{ "folke/neodev.nvim" }, -- Nvim
{ "b0o/schemastore.nvim" }, -- JSON Schemas
{ "mfussenegger/nvim-lint" },
{ "stevearc/conform.nvim" },
{ "L3MON4D3/LuaSnip" },
{ "saadparwaiz1/cmp_luasnip" },
{ "hrsh7th/nvim-cmp" },
{ "hrsh7th/cmp-nvim-lsp" },
{ "hrsh7th/cmp-buffer" },
{ "hrsh7th/cmp-path" },
{ "nvim-lua/plenary.nvim" },
{ "MunifTanjim/nui.nvim" },
{ "folke/trouble.nvim" },
{ "rktjmp/shipwright.nvim" }, -- For building themes based on lush (e.g. terminal)
{ "rktjmp/lush.nvim" },
{ "mcchrish/zenbones.nvim" }, -- Zenbones themes (contains zenwritten)
{ "theHamsta/crazy-node-movement" },
{ "nvim-treesitter/nvim-treesitter", build = ":TSUpdate" },
{ "nvim-treesitter/nvim-treesitter-textobjects" },
-- { "nvim-treesitter/nvim-treesitter-context" },
{ "JoosepAlviste/nvim-ts-context-commentstring" }, -- commentstring based on cursor position (e.g. for Svelte)
{ "Wansmer/treesj" },
{ "michaelb/sniprun", build = "sh install.sh" },
{ "lewis6991/gitsigns.nvim" },
{ "brenoprata10/nvim-highlight-colors" },
{ "razak17/tailwind-fold.nvim" },
{ "rmagatti/auto-session" },
{ "kndndrj/nvim-dbee" },
{ "3rd/image.nvim", build = false },
{ "polarmutex/beancount.nvim" },
{ "jamesblckwell/nvimkit.nvim" },
{ 'olimorris/codecompanion.nvim' },
{ "ravitemer/mcphub.nvim", build = "pnpm install -g mcp-hub@latest" },
{ "zbirenbaum/copilot.lua" },
{ "zbirenbaum/copilot-cmp" },
{ "qvalentin/helm-ls.nvim", ft = "helm" },
{ "mikesmithgh/kitty-scrollback.nvim" },
})
+35
View File
@@ -0,0 +1,35 @@
if not vim.g[ [[nixCats-special-rtp-entry-nixCats]] ] then
local vim = vim
local Plug = vim.fn["plug#"]
vim.call("plug#begin")
Plug("machakann/vim-sandwich")
Plug("Shougo/context_filetype.vim")
Plug("editorconfig/editorconfig-vim")
Plug("honza/vim-snippets")
Plug("chrisbra/unicode.vim")
Plug("ap/vim-css-color")
-- Jupyter
Plug("quarto-dev/quarto-vim")
-- LaTeX
Plug("lervag/vimtex")
-- Wiki
Plug("lervag/wiki.vim")
-- Markdown
Plug("vim-pandoc/vim-pandoc")
Plug("vim-pandoc/vim-pandoc-syntax")
Plug("ferrine/md-img-paste.vim")
-- TidalCycles
Plug("supercollider/scvim")
Plug("tidalcycles/vim-tidal")
-- GLSL
Plug("tikhomirov/vim-glsl")
Plug("timtro/glslView-nvim")
-- Jupyter notebooks
Plug("goerz/jupytext.vim")
-- OpenSCAD
Plug("sirtaj/vim-openscad")
vim.call("plug#end")
end
+2 -2
View File
@@ -2,10 +2,10 @@ local autocmd = vim.api.nvim_create_autocmd
autocmd("BufNewFile", {
pattern = "shell.nix",
command = "0r ~/.config/nvim/skeletons/shell.nix.skeleton",
command = "0r ~/.config/nvim/skeletons/shell.nix",
})
autocmd("BufNewFile", {
pattern = "flake.nix",
command = "0r ~/.config/nvim/skeletons/flake.nix.skeleton",
command = "0r ~/.config/nvim/skeletons/flake.nix",
})
+1 -2
View File
@@ -1,6 +1,5 @@
vim.opt.laststatus = 3
vim.cmd([[
se ls=2
se stl=\ %0*%n
se stl+=\ %m
se stl+=\ %y%0*
+5 -8
View File
@@ -13,19 +13,13 @@ local function get_markdown_files(base)
return items
end
function source:get_keyword_pattern()
return "[%w%./%-]*"
end
function source:complete(params, callback)
local cursor_before_line = params.context.cursor_before_line
local cursor_after_line = params.context.cursor_after_line or ""
if not cursor_before_line:match("%[[^%]]*%]%(") then
callback({})
return
end
local trigger = cursor_before_line:match("%[[^%]]*%]%(([^)]*)$")
if trigger ~= nil then
local items = get_markdown_files(".")
local next_char = cursor_after_line:sub(1, 1)
@@ -38,6 +32,9 @@ function source:complete(params, callback)
end
callback(items)
else
callback({})
end
end
function source:get_trigger_characters()
+4 -5
View File
@@ -1,10 +1,9 @@
require("zk.cmp")
require("zk.utils")
vim.cmd([[
let s:zk_preview_enabled = 0
let s:live_server_job = -1
execute 'au BufEnter' g:zk_path . '/*.md' 'silent exe "!echo %" ">" g:zk_path . "/current-zettel.txt"'
au BufEnter /home/h/.zk/*.md silent exe '!echo "%" > /home/h/.zk/current-zettel.txt'
function! ToggleZKPreview()
if s:zk_preview_enabled == 1
let s:zk_preview_enabled = 0
@@ -12,10 +11,10 @@ function! ToggleZKPreview()
au! ZKPreview
else
let s:zk_preview_enabled = 1
let s:live_server_job = jobstart('live-server --watch=' . g:zk_path . '/current-zettel-content.html --open=current-zettel-content.html --port=8080')
let s:live_server_job = jobstart('live-server --watch=/home/h/.zk/current-zettel-content.html --open=current-zettel-content.html --port=8080')
augroup ZKPreview
execute 'au BufEnter' g:zk_path . '/*.md' 'silent exe "!cat %:r.html" ">" g:zk_path . "/current-zettel-content.html"'
execute 'au BufWritePost' g:zk_path . '/*.md' 'silent exe "!make && cat %:r.html" ">" g:zk_path . "/current-zettel-content.html"'
au BufEnter /home/h/.zk/*.md silent exe '!cat "%:r.html" > /home/h/.zk/current-zettel-content.html'
au BufWritePost /home/h/.zk/*.md silent exe '!make && cat "%:r.html" > /home/h/.zk/current-zettel-content.html'
augroup END
endif
endfunction
-2
View File
@@ -1,2 +0,0 @@
vim.g.zk_path = os.getenv("ZK_PATH") or (os.getenv("HOME") .. "/.zk")
return vim.g.zk_path
+1 -1
View File
@@ -17,7 +17,7 @@ local LOCALHOST_IP = "127.0.0.1"
return {
s({ trig = "fn", desc = "Filename" }, { f(TM_FILENAME_BASE) }),
s({ trig = "fne", desc = "Filename (+extension)" }, { f(TM_FILENAME) }),
s({ trig = "fne", dscr = "Filename (+extension)" }, { f(TM_FILENAME) }),
s({ trig = "hm" }, { t(NAME) }),
s({ trig = "loho" }, { t(LOCALHOST) }),
s({ trig = "lohoi" }, { t(LOCALHOST_IP) }),
+20 -20
View File
@@ -5,112 +5,112 @@ local i = ls.insert_node
return {
-- Flex
s({ trig = "b1", desc = "Add 'border: 1px <color>;'" }, {
s({ trig = "b1", dscr = "Add 'border: 1px <color>;'" }, {
t("border: 1px solid "),
i(1),
t(";"),
i(0),
}),
s({ trig = "dfl", desc = "Add 'display: flex;'" }, {
s({ trig = "dfl", dscr = "Add 'display: flex;'" }, {
t("display: flex;"),
i(0),
}),
s({ trig = "flr", desc = "Add 'flex-direction: row;'" }, {
s({ trig = "flr", dscr = "Add 'flex-direction: row;'" }, {
t("flex-direction: row;"),
i(0),
}),
s({ trig = "flc", desc = "Add 'flex-direction: column;'" }, {
s({ trig = "flc", dscr = "Add 'flex-direction: column;'" }, {
t("flex-direction: column;"),
i(0),
}),
s({ trig = "flw", desc = "Add 'flex-wrap: wrap;'" }, {
s({ trig = "flw", dscr = "Add 'flex-wrap: wrap;'" }, {
t("flex-wrap: wrap;"),
i(0),
}),
s({ trig = "dfc", desc = "Add 'flex-direction: column;'" }, {
s({ trig = "dfc", dscr = "Add 'flex-direction: column;'" }, {
t("display: flex;"),
t("flex-direction: column;"),
i(0),
}),
-- Grid
s({ trig = "dg", desc = "Add 'display: grid;'" }, {
s({ trig = "dg", dscr = "Add 'display: grid;'" }, {
t("display: grid;"),
i(0),
}),
-- Block
s({ trig = "db", desc = "Add 'display: block;'" }, {
s({ trig = "db", dscr = "Add 'display: block;'" }, {
t("display: block;"),
i(0),
}),
-- None
s({ trig = "dn", desc = "Add 'display: none;'" }, {
s({ trig = "dn", dscr = "Add 'display: none;'" }, {
t("display: none;"),
i(0),
}),
-- CSS Variables
s({ trig = "v", desc = "Add CSS variable" }, {
s({ trig = "v", dscr = "Add CSS variable" }, {
t("var(--"),
i(1),
t(")"),
i(0),
}),
-- Margin
s({ trig = "m", desc = "Add 'margin: ;'" }, {
s({ trig = "m", dscr = "Add 'margin: ;'" }, {
t("margin: "),
i(1),
t(";"),
i(0),
}),
s({ trig = "mt", desc = "Add 'margin-top: ;'" }, {
s({ trig = "mt", dscr = "Add 'margin-top: ;'" }, {
t("margin-top: "),
i(1),
t(";"),
i(0),
}),
s({ trig = "mr", desc = "Add 'margin-right: ;'" }, {
s({ trig = "mr", dscr = "Add 'margin-right: ;'" }, {
t("margin-right: "),
i(1),
t(";"),
i(0),
}),
s({ trig = "mb", desc = "Add 'margin-bottom: ;'" }, {
s({ trig = "mb", dscr = "Add 'margin-bottom: ;'" }, {
t("margin-bottom: "),
i(1),
t(";"),
i(0),
}),
s({ trig = "ml", desc = "Add 'margin-left: ;'" }, {
s({ trig = "ml", dscr = "Add 'margin-left: ;'" }, {
t("margin-left: "),
i(1),
t(";"),
i(0),
}),
-- Padding
s({ trig = "p", desc = "Add 'padding: ;'" }, {
s({ trig = "p", dscr = "Add 'padding: ;'" }, {
t("padding: "),
i(1),
t(";"),
i(0),
}),
s({ trig = "pt", desc = "Add 'padding-top: ;'" }, {
s({ trig = "pt", dscr = "Add 'padding-top: ;'" }, {
t("padding-top: "),
i(1),
t(";"),
i(0),
}),
s({ trig = "pr", desc = "Add 'padding-right: ;'" }, {
s({ trig = "pr", dscr = "Add 'padding-right: ;'" }, {
t("padding-right: "),
i(1),
t(";"),
i(0),
}),
s({ trig = "pb", desc = "Add 'padding-bottom: ;'" }, {
s({ trig = "pb", dscr = "Add 'padding-bottom: ;'" }, {
t("padding-bottom: "),
i(1),
t(";"),
i(0),
}),
s({ trig = "pl", desc = "Add 'padding-left: ;'" }, {
s({ trig = "pl", dscr = "Add 'padding-left: ;'" }, {
t("padding-left: "),
i(1),
t(";"),
+3 -3
View File
@@ -4,19 +4,19 @@ local t = ls.text_node
local i = ls.insert_node
return {
s({ trig = "clg", desc = "console.log" }, {
s({ trig = "clg", dscr = "console.log" }, {
t("console.log("),
i(1),
t(")"),
i(0),
}),
s({ trig = "Js", desc = "JSON.stringify" }, {
s({ trig = "Js", dscr = "JSON.stringify" }, {
t("JSON.stringify("),
i(1),
t(")"),
i(0),
}),
s({ trig = "Jsf", desc = "JSON.stringify (formatted)" }, {
s({ trig = "Jsf", dscr = "JSON.stringify (formatted)" }, {
t("JSON.stringify("),
i(1),
t(", 0, 2)"),
+3 -3
View File
@@ -915,21 +915,21 @@ end
return {
s(
{ trig = "^h", regTrig = true, desc = "Markdown header" },
{ trig = "^h", regTrig = true, dscr = "Markdown header" },
fmta("# <><>", {
d(1, get_visual),
i(0),
})
),
s(
{ trig = "^sec", regTrig = true, desc = "Markdown header" },
{ trig = "^sec", regTrig = true, dscr = "Markdown header" },
fmta("## <><>", {
d(1, get_visual),
i(0),
})
),
s(
{ trig = "^ssec", regTrig = true, desc = "Markdown header" },
{ trig = "^ssec", regTrig = true, dscr = "Markdown header" },
fmta("### <><>", {
d(1, get_visual),
i(0),
+6
View File
@@ -1,5 +1,11 @@
local cmd = vim.cmd
local map = vim.keymap.set
cmd([[
source ~/.vim/init/base.vim
source ~/.vim/init/mappings.vim
]])
require("keymaps")
map({ "n", "v" }, "<leader>p", '<cmd>call VSCodeNotify("workbench.action.quickOpen")<cr>')
@@ -0,0 +1,10 @@
[Unit]
Description=SSH Key agent
[Service]
Type=simple
Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket
ExecStart=/usr/bin/ssh-agent -D -a $SSH_AUTH_SOCK
[Install]
WantedBy=default.target
+3 -1
View File
@@ -1,3 +1,4 @@
include ./taskrc.d/$HOSTNAME
include ./taskrc.d/aliases
include ./taskrc.d/urgency
include ./taskrc.d/reports
@@ -9,5 +10,6 @@ search.case.sensitive=no
rc.json.array=on
rc.verbose=nothing
news.version=3.4.2
news.version=3.1.0
recurrence=off
@@ -0,0 +1 @@
set -g status-style bg=default
+1
View File
@@ -0,0 +1 @@
set -g status-style bg=blue,fg=black;
@@ -0,0 +1,22 @@
# This file is based on the one provided by shipwright.nvim
set -g @FG '#dddddd'
set -g @BG '#111111'
set -g status-left ' #[fg=#{@FG},bold]#{s/root//:client_key_table} '
set -g status-right '#[fg=#{@FG},bold] [#S]#[fg=#{@FG},bold] [%d/%m] #[fg=#{@FG},bold][%I:%M%p] '
set -g status-style fg='#{@FG}',bg='#{@BG}'
set -g window-status-current-style fg='#{@FG}',bg='#{@BG}',bold
set -g pane-border-style fg='#{@FG}'
set -g pane-active-border-style fg='#{@FG}'
set -g message-style fg='#{@FG}',bg='#{@FG}'
set -g display-panes-active-colour '#{@FG}'
set -g display-panes-colour '#{@FG}'
set -g clock-mode-colour '#{@FG}'
set -g mode-style fg='#{@FG}',bg='#{@FG}'
@@ -0,0 +1,22 @@
# This file is based on the one provided by shipwright.nvim
set -g @FG '#111111'
set -g @BG '#dddddd'
set -g status-left ' #[fg=#{@FG},bold]#{s/root//:client_key_table} '
set -g status-right '#[fg=#{@FG},bold] [#S]#[fg=#{@FG},bold] [%d/%m] #[fg=#{@FG},bold][%I:%M%p] '
set -g status-style fg='#{@FG}',bg='#{@BG}'
set -g window-status-current-style fg='#{@FG}',bg='#{@BG}',bold
set -g pane-border-style fg='#{@FG}'
set -g pane-active-border-style fg='#{@FG}'
set -g message-style fg='#{@FG}',bg='#{@FG}'
set -g display-panes-active-colour '#{@FG}'
set -g display-panes-colour '#{@FG}'
set -g clock-mode-colour '#{@FG}'
set -g mode-style fg='#{@FG}',bg='#{@FG}'
+15 -18
View File
@@ -39,22 +39,10 @@ bind-key -T root F7 select-window -t 7
bind-key -T root F8 select-window -t 8
bind-key -T root F9 select-window -t 9
# bind-key j command-prompt -p "join pane from:" "join-pane -s '%%'"
# bind-key s command-prompt -p "send pane to:" "join-pane -t '%%'"
bind-key -T root S-F1 join-pane -s :1
bind-key -T root S-F2 join-pane -s :2
bind-key -T root S-F3 join-pane -s :3
bind-key -T root S-F4 join-pane -s :4
bind-key -T root S-F5 join-pane -s :5
bind-key -T root S-F6 join-pane -s :6
bind-key -T root S-F7 join-pane -s :7
bind-key -T root S-F8 join-pane -s :8
bind-key -T root S-F9 join-pane -s :9
# 1-based indexing makes most sense for keyboard layouts (where number row start at 1)
set -g base-index 1
set -g pane-base-index 1
setw -g automatic-rename
# statusbar
set -g status-position top
@@ -65,16 +53,25 @@ set -g status-left "#[bg=colour235,fg=colour255] #S #[fg=colour235,bg=default]
set -g status-right ""
%else
set -g status-left '#h '
set -g status-right '#(uptime | cut -f 4-5 -d " " | cut -f 1 -d ",") %a %l:%M:%S %p %Y-%m-%d'
set -g status-right '#(uptime | cut -f 4-5 -d " " | cut -f 1 -d ",") %a%l:%M:%S %p %Y-%m-%d'
%endif
# theming
%if "#{==:#{host},desktop-arch}"
set -g default-terminal "tmux-256color"
setw -g window-status-style fg=colour244,bg=default
setw -g window-status-current-style fg=colour232,bg=default,bold
set -g message-style fg=colour232,bg=default
setw -g clock-mode-colour colour235
set -g status-style bg=default
set -g pane-border-style fg=#cccccc
set -g pane-active-border-style fg=#555555
set -g message-style bg=#cccccc,fg=#000000
%endif
set-hook -g after-new-session 'if -F "#{==:#{session_name},ssh}" "source ${XDG_CONFIG_HOME}/tmux/hooks/tmux.ssh.conf" "source ${XDG_CONFIG_HOME}/tmux/hooks/tmux.regular.conf"'
# Vi copypaste mode
if-shell "test '\( #{$TMUX_VERSION_MAJOR} -eq 2 -a #{$TMUX_VERSION_MINOR} -ge 4 \)'" 'bind-key -Tcopy-mode-vi v send -X begin-selection; bind-key -Tcopy-mode-vi y send -X copy-selection-and-cancel'
if-shell '\( #{$TMUX_VERSION_MAJOR} -eq 2 -a #{$TMUX_VERSION_MINOR} -lt 4\) -o #{$TMUX_VERSION_MAJOR} -le 1' 'bind-key -t vi-copy v begin-selection; bind-key -t vi-copy y copy-selection'
if-shell '\( #{$TMUX_VERSION_MAJOR} -eq 2 -a #{$TMUX_VERSION_MINOR} -lt 2\) -o #{$TMUX_VERSION_MAJOR} -le 1' 'set-option -g status-utf8 on'
set -g allow-passthrough on
set -s extended-keys on
set -as terminal-features 'xterm*:extkeys'
+1
View File
@@ -0,0 +1 @@
set -g status-style bg=default
-3
View File
@@ -93,6 +93,3 @@
[includeIf "gitdir:~/work/"]
path = ~/.gitconfig.work
[includeIf "gitdir:~/nix-dev-shells/"]
path = ~/.gitconfig.work
-3
View File
@@ -84,9 +84,6 @@ dkms.conf
# Dotenv
.env
.envrc
.direnv/
.pre-commit-config.yaml
# Prevent module files from being ignored (e.g. NestJS)
!*.module*
+44
View File
@@ -0,0 +1,44 @@
# Restic ignore
# General
.trash
Trash
.cache
cache
Cache
CachedData
CachedExtension
CacheStorage
__pycache__
GPUCache
ShaderCache
build
.git
node_modules
venv
env
# Specifics
$HOME/.android
$HOME/.atom
$HOME/.build
$HOME/.cabal
$HOME/.cargo
$HOME/.conda
$HOME/.config/BraveSoftware/Brave-Browser/Default/Local Storage
$HOME/.config/BraveSoftware/Brave-Browser/Default/Local Extension Settings
$HOME/.config/nvm/versions
$HOME/.config/devcert
$HOME/.espressif
$HOME/.local/share/torbrowser
$HOME/.mozilla
$HOME/.nvm
$HOME/.npm
$HOME/.nuget
$HOME/.yarn
$HOME/.config/yarn
$HOME/doc/disk-images
$HOME/.stremio-server
$HOME/Games
!$HOME/Games/*/drive_c/users/h/AppData
!$HOME/Games/rhino
+3
View File
@@ -0,0 +1,3 @@
/etc
/boot
/home
+9 -16
View File
@@ -1,11 +1,11 @@
{
"config": {
"options": {},
"preferences": {
"ascii": "",
"asciiBibLaTeX": false,
"asciiBibTeX": true,
"autoAbbrev": false,
"autoAbbrevStyle": "",
"autoExport": "immediate",
"autoExportDelay": 5,
"autoExportIdleWait": 10,
@@ -13,22 +13,18 @@
"autoExportPathReplaceDirSep": "-",
"autoExportPathReplaceSpace": " ",
"automaticTags": true,
"autoPinDelay": 0,
"auxImport": false,
"baseAttachmentPath": "/home/h/doc/books",
"biblatexExtendedDateFormat": true,
"biblatexExtendedNameFormat": true,
"biblatexExtractEprint": true,
"biblatexUsePrefix": true,
"bibtexEditionOrdinal": false,
"bibtexParticleNoOp": false,
"bibtexURL": "off",
"cache": true,
"cacheDelete": false,
"cacheFlushInterval": 5,
"charmap": "",
"chinese": false,
"chineseSplitName": true,
"citeCommand": "cite",
"citekeyCaseInsensitive": true,
"citekeyFold": true,
"citekeyFormat": "zotero.clean",
"citekeyFormatEditing": "zotero.clean",
@@ -38,35 +34,32 @@
"DOIandURL": "both",
"exportBibTeXStrings": "off",
"exportBraceProtection": true,
"exportSort": "citekey",
"exportTitleCase": true,
"extraMergeCitekeys": false,
"extraMergeCSL": false,
"extraMergeTeX": false,
"fillKeyAfter": 1,
"git": "config",
"import": true,
"importBibTeXStrings": true,
"importCaseProtection": "as-needed",
"importCitationKey": true,
"importDetectURLs": true,
"importExtra": true,
"importJabRefAbbreviations": true,
"importJabRefStrings": true,
"importNoteToExtra": "",
"importPlaceEvent": "inproceedings,conference,presentation,talk",
"importSentenceCase": "on+guess",
"importSentenceCaseQuoted": true,
"importUnknownTexCommand": "ignore",
"itemObserverDelay": 5,
"jabrefFormat": 0,
"japanese": false,
"jieba": false,
"keyConflictPolicy": "keep",
"keyScope": "global",
"kuroshiro": false,
"language": "langid",
"logEvents": false,
"mapMath": "",
"mapText": "",
"packages": "",
"mapUnicode": "conservative",
"parseParticles": true,
"patchDates": "dateadded=dateAdded, date-added=dateAdded, datemodified=dateModified, date-modified=dateModified",
"platform": "lin",
@@ -82,8 +75,7 @@
"rawImports": false,
"rawLaTag": "#LaTeX",
"relativeFilePaths": false,
"remigrate": false,
"resetKeyOnChange": false,
"retainCache": false,
"scrubDatabase": false,
"separatorList": "and",
"separatorNames": "and",
@@ -99,3 +91,4 @@
}
}
}
Generated
+53 -685
View File
@@ -1,141 +1,5 @@
{
"nodes": {
"arion": {
"inputs": {
"flake-parts": "flake-parts",
"haskell-flake": "haskell-flake",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1770259557,
"narHash": "sha256-EvZ09k9+mzXAngPzU2K7oLLUDlKoT1numb4bDb3Gtl4=",
"owner": "hercules-ci",
"repo": "arion",
"rev": "9b24cf65c72cb0e9616e437d55e1ac8e5c6bc715",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "arion",
"type": "github"
}
},
"base16": {
"inputs": {
"fromYaml": "fromYaml"
},
"locked": {
"lastModified": 1755819240,
"narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=",
"owner": "SenchoPens",
"repo": "base16.nix",
"rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6",
"type": "github"
},
"original": {
"owner": "SenchoPens",
"repo": "base16.nix",
"type": "github"
}
},
"base16-fish": {
"flake": false,
"locked": {
"lastModified": 1765809053,
"narHash": "sha256-XCUQLoLfBJ8saWms2HCIj4NEN+xNsWBlU1NrEPcQG4s=",
"owner": "tomyun",
"repo": "base16-fish",
"rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
"type": "github"
},
"original": {
"owner": "tomyun",
"repo": "base16-fish",
"rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
"type": "github"
}
},
"base16-helix": {
"flake": false,
"locked": {
"lastModified": 1776754714,
"narHash": "sha256-E3OAK27smtATTmX45uoTSRsVD+Y+ZiVVfgM/tjpbtYg=",
"owner": "tinted-theming",
"repo": "base16-helix",
"rev": "4d508123037e7851ad36ebf7d9c48b0e9e1eb581",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-helix",
"type": "github"
}
},
"base16-vim": {
"flake": false,
"locked": {
"lastModified": 1732806396,
"narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=",
"owner": "tinted-theming",
"repo": "base16-vim",
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-vim",
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
"type": "github"
}
},
"colmena": {
"inputs": {
"flake-compat": "flake-compat",
"flake-utils": "flake-utils",
"nix-github-actions": "nix-github-actions",
"nixpkgs": [
"nixpkgs"
],
"stable": "stable"
},
"locked": {
"lastModified": 1782904768,
"narHash": "sha256-tu/otndlmVoSxoQVkNL5cvMFAMyekO2mCVYTl0DRlfs=",
"owner": "zhaofengli",
"repo": "colmena",
"rev": "1ebe1b5526099a3b108a599c59ce0e6422a1a663",
"type": "github"
},
"original": {
"owner": "zhaofengli",
"repo": "colmena",
"type": "github"
}
},
"deploy-rs": {
"inputs": {
"flake-compat": "flake-compat_2",
"nixpkgs": [
"nixpkgs"
],
"utils": "utils"
},
"locked": {
"lastModified": 1781627888,
"narHash": "sha256-5yHuAh9k7rT7rtf3uRaXkiUyYvQE9oaCgzhprLm2mr8=",
"owner": "serokell",
"repo": "deploy-rs",
"rev": "6d3087eedff75a715b40c0e124ba15d2dd7bec28",
"type": "github"
},
"original": {
"owner": "serokell",
"repo": "deploy-rs",
"type": "github"
}
},
"disko": {
"inputs": {
"nixpkgs": [
@@ -143,11 +7,11 @@
]
},
"locked": {
"lastModified": 1768920986,
"narHash": "sha256-CNzzBsRhq7gg4BMBuTDObiWDH/rFYHEuDRVOwCcwXw4=",
"lastModified": 1746728054,
"narHash": "sha256-eDoSOhxGEm2PykZFa/x9QG5eTH0MJdiJ9aR00VAofXE=",
"owner": "nix-community",
"repo": "disko",
"rev": "de5708739256238fb912c62f03988815db89ec9a",
"rev": "ff442f5d1425feb86344c028298548024f21256d",
"type": "github"
},
"original": {
@@ -165,11 +29,11 @@
},
"locked": {
"dir": "pkgs/firefox-addons",
"lastModified": 1780200155,
"narHash": "sha256-cKpqEvRqxnCbp/2ZVczMHws31Qh4D/HTEuanWuJmySk=",
"lastModified": 1764561884,
"narHash": "sha256-vQ3iFPPhxsLqV3c5kgmYP53mVD6id6gsP0tN+oTmqok=",
"owner": "rycee",
"repo": "nur-expressions",
"rev": "d29c0c2692ced897777eca19c9bab1b34be0e0d6",
"rev": "aba4621459aec251d90d6452e3495b58a8a5e185",
"type": "gitlab"
},
"original": {
@@ -179,133 +43,6 @@
"type": "gitlab"
}
},
"firefox-gnome-theme": {
"flake": false,
"locked": {
"lastModified": 1779670703,
"narHash": "sha256-UdfMivNMwCCqQsYDg5pSz8X2IOaOrIZLIIy+Bg3CO2o=",
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"rev": "942159e73e40bf785816f7f1f5feed9ef3d7c8f9",
"type": "github"
},
"original": {
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1767039857,
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_2": {
"flake": false,
"locked": {
"lastModified": 1733328505,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_3": {
"flake": false,
"locked": {
"lastModified": 1767039857,
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
"owner": "NixOS",
"repo": "flake-compat",
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"arion",
"nixpkgs"
]
},
"locked": {
"lastModified": 1769996383,
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"arion",
"nixpkgs"
]
},
"locked": {
"lastModified": 1769996383,
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_3": {
"inputs": {
"nixpkgs-lib": [
"stylix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1778716662,
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
@@ -324,112 +61,6 @@
"type": "github"
}
},
"flake-utils_2": {
"inputs": {
"systems": "systems_3"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"fromYaml": {
"flake": false,
"locked": {
"lastModified": 1731966426,
"narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=",
"owner": "SenchoPens",
"repo": "fromYaml",
"rev": "106af9e2f715e2d828df706c386a685698f3223b",
"type": "github"
},
"original": {
"owner": "SenchoPens",
"repo": "fromYaml",
"type": "github"
}
},
"git-hooks": {
"inputs": {
"flake-compat": "flake-compat_3",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1782908218,
"narHash": "sha256-wLMOrPgVyeF3XmP+qfYcLqnVdTxikdcSvbIY7rA9jTA=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "9f7e99119ece7705299595299f3b031f39356de1",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gnome-shell": {
"flake": false,
"locked": {
"lastModified": 1767737596,
"narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=",
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
"type": "github"
},
"original": {
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
"type": "github"
}
},
"haskell-flake": {
"locked": {
"lastModified": 1675296942,
"narHash": "sha256-u1X1sblozi5qYEcLp1hxcyo8FfDHnRUVX3dJ/tW19jY=",
"owner": "srid",
"repo": "haskell-flake",
"rev": "c2cafce9d57bfca41794dc3b99c593155006c71e",
"type": "github"
},
"original": {
"owner": "srid",
"ref": "0.1.0",
"repo": "haskell-flake",
"type": "github"
}
},
"hecuba-services": {
"flake": false,
"locked": {
"lastModified": 1783927411,
"narHash": "sha256-TQkrVZmodYGdOJvBJy5hWPJs0JMq4t2fZo8Uq+G9O9k=",
"ref": "main",
"rev": "76b50cc50d7fadee7e18132d502fd51752583034",
"shallow": true,
"type": "git",
"url": "ssh://git@github.com/hektor/hecuba-services"
},
"original": {
"type": "git",
"url": "ssh://git@github.com/hektor/hecuba-services",
"ref": "main",
"shallow": true
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@@ -437,11 +68,11 @@
]
},
"locked": {
"lastModified": 1780099287,
"narHash": "sha256-efIPwVGtIWIjWcznhaop6XN6HxnOL8800hF6CBNvlqQ=",
"lastModified": 1764544324,
"narHash": "sha256-GVBGjO7UsmzLrlOJV8NlKSxukHaHencrJqWkCA6FkqI=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "7d8127d308c3fb9664f7e643eec944be74ebb37d",
"rev": "e4e25a8c310fa45f2a8339c7972dc43d2845a612",
"type": "github"
},
"original": {
@@ -450,53 +81,13 @@
"type": "github"
}
},
"mcp-hub": {
"inputs": {
"flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1755841689,
"narHash": "sha256-KakvXZf0vjdqzyT+LsAKHEr4GLICGXPmxl1hZ3tI7Yg=",
"owner": "ravitemer",
"repo": "mcp-hub",
"rev": "9c7670a4c341ed3cf738a6242c0fde1cea40bccf",
"type": "github"
},
"original": {
"owner": "ravitemer",
"repo": "mcp-hub",
"type": "github"
}
},
"nix-github-actions": {
"inputs": {
"nixpkgs": [
"colmena",
"nixpkgs"
]
},
"locked": {
"lastModified": 1737420293,
"narHash": "sha256-F1G5ifvqTpJq7fdkT34e/Jy9VCyzd5XfJ9TO8fHhJWE=",
"owner": "nix-community",
"repo": "nix-github-actions",
"rev": "f4158fa080ef4503c8f4c820967d946c2af31ec9",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-github-actions",
"type": "github"
}
},
"nix-secrets": {
"flake": false,
"locked": {
"lastModified": 1783872092,
"narHash": "sha256-Lg4kvJw3BxjeBEszQ9n1H+Oj/30u3N9N+TAwbmKhDPY=",
"lastModified": 1764371082,
"narHash": "sha256-yxFxEKXFuXFyFIDZY1gla2OyuqcIE3uT8KDDgTmm3cE=",
"ref": "main",
"rev": "1900322e9ddd920986c5b31ef161fd1c3f977846",
"rev": "b9c2ce32cc4c95d7ff01372faea2668407ef8d27",
"shallow": true,
"type": "git",
"url": "ssh://git@github.com/hektor/nix-secrets"
@@ -510,11 +101,11 @@
},
"nixCats": {
"locked": {
"lastModified": 1777273601,
"narHash": "sha256-xBUa8Tl9V7IXI+VmLEuDc81La/EhoSn1C3EVSnJ3cfU=",
"lastModified": 1764009888,
"narHash": "sha256-hJekfTiW1792txgRSM4LcHnz1lDSY87LYbsJEn2V378=",
"owner": "BirdeeHub",
"repo": "nixCats-nvim",
"rev": "f69ea013e328841a7def7037ed59788a76be8816",
"rev": "16ac3281f322ea15d39843829e42a44d22da3715",
"type": "github"
},
"original": {
@@ -525,7 +116,7 @@
},
"nixgl": {
"inputs": {
"flake-utils": "flake-utils_2",
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
]
@@ -545,15 +136,12 @@
}
},
"nixos-hardware": {
"inputs": {
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1780065812,
"narHash": "sha256-SCSLUKBmwlSLGQ8Xbr8PjRFtiHNk0l9ktqkcmqdBkfE=",
"lastModified": 1764440730,
"narHash": "sha256-ZlJTNLUKQRANlLDomuRWLBCH5792x+6XUJ4YdFRjtO4=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "b76b5639c0593e0aeb0b5879ad62d4b30596c144",
"rev": "9154f4569b6cdfd3c595851a6ba51bfaa472d9f3",
"type": "github"
},
"original": {
@@ -565,24 +153,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1767892417,
"narHash": "sha256-8bW3q88CEg2u4hSP66Vf4lpbLonHz7hqDNBMcCY7E9U=",
"rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba",
"type": "tarball",
"url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre924538.3497aa5c9457/nixexprs.tar.xz"
},
"original": {
"type": "tarball",
"url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1782723713,
"narHash": "sha256-oPXCU/SSUokcGaJREHibG1CBX3+s/W7orDWQOZDsEeQ=",
"lastModified": 1764517877,
"narHash": "sha256-pp3uT4hHijIC8JUK5MEqeAWmParJrgBVzHLNfJDZxg4=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "b5aa0fbd538984f6e3d201be0005b4463d8b09f8",
"rev": "2d293cbfa5a793b4c50d17c05ef9e385b90edf6c",
"type": "github"
},
"original": {
@@ -592,55 +167,14 @@
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1779560665,
"narHash": "sha256-tpyBcxPpcQb8ukyNF7DoCwfSY3VPsxHoYwj00Cayv5o=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nur": {
"inputs": {
"flake-parts": [
"stylix",
"flake-parts"
],
"nixpkgs": [
"stylix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1779766384,
"narHash": "sha256-P7Ohnlq8b8b2fU+Sgkrej7LBTM60LBTkHleLuYzmLmU=",
"owner": "nix-community",
"repo": "NUR",
"rev": "57800b7ab648725ccd33551d01484ee14952ad3f",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "NUR",
"type": "github"
}
},
"nvim": {
"inputs": {
"mcp-hub": "mcp-hub",
"nixCats": "nixCats",
"nixpkgs": [
"nixpkgs"
],
"plugins-beancount-nvim": "plugins-beancount-nvim",
"plugins-crazy-node-movement": "plugins-crazy-node-movement",
"plugins-helm-ls-nvim": "plugins-helm-ls-nvim",
"plugins-mcphub-nvim": "plugins-mcphub-nvim",
"plugins-nvimkit-nvim": "plugins-nvimkit-nvim",
@@ -673,14 +207,30 @@
"type": "github"
}
},
"plugins-crazy-node-movement": {
"flake": false,
"locked": {
"lastModified": 1693654676,
"narHash": "sha256-hQcQEp39zFN2zphMfcr97yRVcuHhBsSkzKO7XNloDpQ=",
"owner": "theHamsta",
"repo": "crazy-node-movement",
"rev": "d5cf01cc44c5715501d3d6fe439af7c8b7fa5df2",
"type": "github"
},
"original": {
"owner": "theHamsta",
"repo": "crazy-node-movement",
"type": "github"
}
},
"plugins-helm-ls-nvim": {
"flake": false,
"locked": {
"lastModified": 1773934114,
"narHash": "sha256-8trqFsA7nTKSdtkiAL0Sa9bXjh5ONtAqN7XNE/B8ukM=",
"lastModified": 1761915179,
"narHash": "sha256-W9NRa84l5Cs62OsDeqb+LMxk8oYjhVBCB3o3UmE9a0I=",
"owner": "qvalentin",
"repo": "helm-ls.nvim",
"rev": "20df43509b02a3ce3c6b3eee254d6e2bffa9a370",
"rev": "d6f3a8d4ad59b4f54cd734267dfb5411679ea608",
"type": "github"
},
"original": {
@@ -692,11 +242,11 @@
"plugins-mcphub-nvim": {
"flake": false,
"locked": {
"lastModified": 1768730387,
"narHash": "sha256-g9tPvjThz6EUk7zcY7lL+YH4lrT4x3FJ6jrNMHA8PAE=",
"lastModified": 1759035242,
"narHash": "sha256-I6EbgY/2sAdtrxtmH0qbAAQvMCHhOsfolJfblV0fXOk=",
"owner": "ravitemer",
"repo": "mcphub.nvim",
"rev": "7cd5db330f41b7bae02b2d6202218a061c3ebc1f",
"rev": "8ff40b5edc649959bb7e89d25ae18e055554859a",
"type": "github"
},
"original": {
@@ -740,11 +290,11 @@
"plugins-tailwind-fold-nvim": {
"flake": false,
"locked": {
"lastModified": 1766077142,
"narHash": "sha256-SwcDLlygXUSV/dytPXA5Y45OpUhjnExc8SZg5a8MZ2k=",
"lastModified": 1752559116,
"narHash": "sha256-8uefZIVsn9USEd6FyiO3m3TRKAS/vigU4t9Tk5ijd3c=",
"owner": "razak17",
"repo": "tailwind-fold.nvim",
"rev": "e2ba5ee1ca9b74208709fe9d7314b8aa753b26a7",
"rev": "d9e7ca11691d252b35795726dff087bf013b2ebf",
"type": "github"
},
"original": {
@@ -755,21 +305,15 @@
},
"root": {
"inputs": {
"arion": "arion",
"colmena": "colmena",
"deploy-rs": "deploy-rs",
"disko": "disko",
"firefox-addons": "firefox-addons",
"git-hooks": "git-hooks",
"hecuba-services": "hecuba-services",
"home-manager": "home-manager",
"nix-secrets": "nix-secrets",
"nixgl": "nixgl",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_2",
"nixpkgs": "nixpkgs",
"nvim": "nvim",
"sops-nix": "sops-nix",
"stylix": "stylix"
"sops-nix": "sops-nix"
}
},
"sops-nix": {
@@ -779,11 +323,11 @@
]
},
"locked": {
"lastModified": 1777944972,
"narHash": "sha256-VfGRo1qTBKOe3s2gOv8LSoA6Fk19PvBlwQ1ECN0Evn8=",
"lastModified": 1764483358,
"narHash": "sha256-EyyvCzXoHrbL467YSsQBTWWg4sR96MH1sPpKoSOelB4=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "c591bf665727040c6cc5cb409079acb22dcce33c",
"rev": "5aca6ff67264321d47856a2ed183729271107c9c",
"type": "github"
},
"original": {
@@ -792,55 +336,6 @@
"type": "github"
}
},
"stable": {
"locked": {
"lastModified": 1782851755,
"narHash": "sha256-91ODtG9bUk4AMsgPfGlHzHxh+3r64DClTRxaiTHevIQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "f3fb8f32d52b627190abb82438bdcc75a9c77b4e",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "release-26.05",
"repo": "nixpkgs",
"type": "github"
}
},
"stylix": {
"inputs": {
"base16": "base16",
"base16-fish": "base16-fish",
"base16-helix": "base16-helix",
"base16-vim": "base16-vim",
"firefox-gnome-theme": "firefox-gnome-theme",
"flake-parts": "flake-parts_3",
"gnome-shell": "gnome-shell",
"nixpkgs": [
"nixpkgs"
],
"nur": "nur",
"systems": "systems_4",
"tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes",
"tinted-tmux": "tinted-tmux",
"tinted-zed": "tinted-zed"
},
"locked": {
"lastModified": 1780079634,
"narHash": "sha256-VVyCrzwLitvxZGx48FgzvlbLYGQU99GsaQnZmwqZoUo=",
"owner": "danth",
"repo": "stylix",
"rev": "ca07e0644716a7c13e91c6d92d169fc81889c589",
"type": "github"
},
"original": {
"owner": "danth",
"repo": "stylix",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
@@ -855,133 +350,6 @@
"repo": "default",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_4": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"tinted-kitty": {
"flake": false,
"locked": {
"lastModified": 1735730497,
"narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
"owner": "tinted-theming",
"repo": "tinted-kitty",
"rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-kitty",
"type": "github"
}
},
"tinted-schemes": {
"flake": false,
"locked": {
"lastModified": 1777806186,
"narHash": "sha256-PDF0/wObw4nIsSBeXVYLsloXOiphXCgIdsrNcVXguKs=",
"owner": "tinted-theming",
"repo": "schemes",
"rev": "0c94645546f4f3ddac77a1a5fce54eb95bf50795",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "schemes",
"type": "github"
}
},
"tinted-tmux": {
"flake": false,
"locked": {
"lastModified": 1778379944,
"narHash": "sha256-wPDFzMGSlARlw0Sfsn48Q2+jPSfk6N0Ng6BC/d+7Q24=",
"owner": "tinted-theming",
"repo": "tinted-tmux",
"rev": "fe0203a198690e71a5ff11e08812a4673de3678d",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-tmux",
"type": "github"
}
},
"tinted-zed": {
"flake": false,
"locked": {
"lastModified": 1778378178,
"narHash": "sha256-OXPXRIQgGwV77HjYRryOHguh4ALX96jkg+tseLkGgHA=",
"owner": "tinted-theming",
"repo": "base16-zed",
"rev": "9cd816033ff969415b190722cddf134e78a5665f",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-zed",
"type": "github"
}
},
"utils": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
}
},
"root": "root",
+26 -137
View File
@@ -5,6 +5,7 @@
};
nixos-hardware = {
url = "github:NixOS/nixos-hardware/master";
inputs.nixpkgs.follows = "nixpkgs";
};
disko = {
url = "github:nix-community/disko/latest";
@@ -18,30 +19,6 @@
url = "git+ssh://git@github.com/hektor/nix-secrets?shallow=1&ref=main";
flake = false;
};
colmena = {
url = "github:zhaofengli/colmena";
inputs.nixpkgs.follows = "nixpkgs";
};
deploy-rs = {
url = "github:serokell/deploy-rs";
inputs.nixpkgs.follows = "nixpkgs";
};
arion = {
url = "github:hercules-ci/arion";
inputs.nixpkgs.follows = "nixpkgs";
};
hecuba-services = {
url = "git+ssh://git@github.com/hektor/hecuba-services?shallow=1&ref=main";
flake = false;
};
git-hooks = {
url = "github:cachix/git-hooks.nix";
inputs.nixpkgs.follows = "nixpkgs";
};
stylix = {
url = "github:danth/stylix";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
@@ -64,130 +41,42 @@
{
self,
nixpkgs,
git-hooks,
nixos-hardware,
disko,
sops-nix,
nix-secrets,
home-manager,
nixgl,
...
firefox-addons,
nvim,
}@inputs:
let
inherit (self) outputs;
inherit (inputs.nixpkgs) lib;
myUtils = import ./utils { inherit lib; };
hostDirNames = myUtils.dirNames ./hosts;
lib = inputs.nixpkgs.lib;
utils = import ./utils { inherit lib; };
hostDirNames = utils.dirNames ./hosts;
system = "x86_64-linux";
dotsPath = ./dots;
gitHooks = import ./git-hooks.nix {
inherit nixpkgs git-hooks system;
src = ./.;
};
in
{
nixosConfigurations =
(lib.genAttrs hostDirNames (
host:
nixpkgs.lib.nixosSystem {
modules = [
./hosts/${host}
{
nixpkgs.hostPlatform = (myUtils.hostMeta ./hosts/${host}).system;
host.name = host;
}
];
specialArgs = {
inherit
inputs
outputs
dotsPath
myUtils
;
};
}
))
// {
sd-image-orange-pi-aarch64 = nixpkgs.lib.nixosSystem {
modules = [
"${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix"
./images/sd-image-orange-pi-aarch64.nix
{
nixpkgs.buildPlatform = "x86_64-linux";
nixpkgs.hostPlatform = "aarch64-linux";
}
];
specialArgs = {
inherit
inputs
outputs
dotsPath
myUtils
;
};
};
sd-image-raspberry-pi-aarch64 = nixpkgs.lib.nixosSystem {
modules = [
"${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix"
./images/sd-image-raspberry-pi-aarch64.nix
{
nixpkgs.buildPlatform = "x86_64-linux";
nixpkgs.hostPlatform = "aarch64-linux";
}
];
specialArgs = {
inherit
inputs
outputs
dotsPath
myUtils
;
};
};
};
homeConfigurations = {
work = home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs {
inherit system;
overlays = [ nixgl.overlay ];
};
in
{
nix.nixPath = [
"nixpkgs=${inputs.nixpkgs}"
]; # <https://github.com/nix-community/nixd/blob/main/nixd/docs/configuration.md>
nixosConfigurations = lib.genAttrs hostDirNames (
host:
nixpkgs.lib.nixosSystem {
modules = [ ./hosts/${host} ];
specialArgs = { inherit inputs; };
}
);
homeConfigurations = {
work = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules = [ ./home/hosts/work ];
extraSpecialArgs = {
osConfig = null;
inherit
inputs
outputs
dotsPath
myUtils
;
extraSpecialArgs = { inherit inputs; };
};
};
};
apps.${system}.colmena = inputs.colmena.apps.${system}.default // {
meta.description = "colmena";
};
colmenaHive = import ./deploy/colmena.nix {
inherit
self
inputs
;
};
deploy = import ./deploy/deploy-rs.nix {
inherit
self
inputs
;
};
checks.${system} = gitHooks.checks // inputs.deploy-rs.lib.${system}.deployChecks self.deploy;
formatter.${system} = gitHooks.formatter;
devShells.${system} = gitHooks.devShells;
legacyPackages.${system} = {
sd-image-orange-pi-aarch64 =
self.nixosConfigurations.sd-image-orange-pi-aarch64.config.system.build.sdImage;
sd-image-raspberry-pi-aarch64 =
self.nixosConfigurations.sd-image-raspberry-pi-aarch64.config.system.build.sdImage;
};
};
}
-47
View File
@@ -1,47 +0,0 @@
{
nixpkgs,
git-hooks,
system,
src,
}:
let
pkgs = nixpkgs.legacyPackages.${system};
pre-commit-check = git-hooks.lib.${system}.run {
inherit src;
hooks = {
nixfmt = {
enable = true;
package = pkgs.nixfmt;
};
statix.enable = true;
deadnix.enable = true;
};
};
in
{
checks = {
inherit pre-commit-check;
};
formatter =
let
inherit (pre-commit-check) config;
inherit (config) package configFile;
script = ''
${pkgs.lib.getExe package} run --all-files --config ${configFile}
'';
in
pkgs.writeShellScriptBin "pre-commit-run" script;
devShells = {
default =
let
inherit (pre-commit-check) shellHook enabledPackages;
in
pkgs.mkShell {
inherit shellHook;
buildInputs = enabledPackages;
};
};
}
+7 -55
View File
@@ -1,5 +1,6 @@
{
lib,
inputs,
config,
pkgs,
...
@@ -7,61 +8,12 @@
{
imports = [
../../modules
(import ../astyanax {
inherit inputs;
inherit config;
inherit pkgs;
})
];
home = {
stateVersion = "25.05";
inherit (config.host) username;
homeDirectory = "/home/${config.host.username}";
};
xdg.userDirs.createDirectories = false;
xdg.userDirs.download = "${config.home.homeDirectory}/dl";
modules."3d" = {
printing.enable = true;
modeling.enable = true;
};
ai-tools = {
claude-code.enable = true;
opencode.enable = true;
};
desktop.niri.enable = true;
browser.enable = true;
browser.primary = "librewolf";
cloud.hetzner.enable = true;
comms.signal.enable = true;
git.enable = true;
git.github.enable = true;
shell = {
enable = true;
bash.aliases.lang-js = true;
bash.addBinToPath = true;
};
anki.enable = true;
k8s.k9s.enable = true;
secrets.enable = true;
taskwarrior.enable = true;
audio.enable = true;
ssh.enable = true;
deploy.enable = true;
music.enable = true;
terminal.enable = true;
devenv.enable = true;
keepassxc.enable = true;
direnv.enable = true;
nvim.enable = true;
pandoc.enable = true;
photography.enable = true;
torrenting.enable = true;
my.yubikey.enable = true;
zk.enable = true;
programs = {
home-manager.enable = true;
taskwarrior.config.recurrence = lib.mkForce "on";
};
home.packages = import ../packages.nix { inherit pkgs; };
programs.taskwarrior.config.recurrence = lib.mkForce "on";
}
+59 -48
View File
@@ -1,66 +1,77 @@
{
inputs,
config,
pkgs,
...
}:
let
username = "h";
in
{
imports = [
../../modules
../../modules/dconf.nix # TODO: Only enable when on Gnome?
../../modules/git.nix
../../modules/k9s.nix
(import ../../modules/taskwarrior.nix {
inherit config;
inherit pkgs;
})
];
home = {
stateVersion = "25.05";
inherit (config.host) username;
homeDirectory = "/home/${config.host.username}";
};
home.stateVersion = "25.05";
home.username = username;
home.homeDirectory = "/home/${username}";
xdg.userDirs = {
enable = false;
createDirectories = false;
};
modules."3d".printing.enable = true;
ai-tools = {
claude-code.enable = true;
opencode.enable = true;
};
anki.enable = true;
audio.enable = true;
browser.enable = true;
browser.primary = "librewolf";
cloud.hetzner.enable = true;
comms.signal.enable = true;
desktop.niri.enable = true;
devenv.enable = true;
direnv.enable = true;
git.enable = true;
git.github.enable = true;
k8s.k9s.enable = true;
keepassxc.enable = true;
music.enable = true;
my.yubikey.enable = true;
nfc.enable = true;
nvim.enable = true;
pandoc.enable = true;
secrets.enable = true;
shell = {
enable = true;
bash.aliases.lang-js = true;
bash.addBinToPath = true;
};
ssh.enable = true;
deploy.enable = true;
taskwarrior.enable = true;
terminal.enable = true;
reference-manager.enable = true;
xdg.userDirs.createDirectories = false;
xdg.userDirs.download = "${config.home.homeDirectory}/dl";
programs = {
home-manager.enable = true;
};
bash = {
enable = true;
enableCompletion = true;
initExtra = ''
for f in /home/h/.bashrc.d/*; do
[ -f "$f" ] && source "$f"
done
home.packages = import ../packages.nix {
source /home/h/.bash_aliases/all
source /home/h/.bash_aliases/lang-js
# host-specific config goes here
# ...
export PATH=${../../../dots/.bin}:$PATH
'';
};
firefox = import ../../modules/firefox.nix {
inherit inputs;
inherit pkgs;
inherit config;
};
fzf = {
enable = true;
enableBashIntegration = true;
};
home-manager.enable = true;
keepassxc = import ../../modules/keepassxc.nix;
};
home.packages = import ./packages.nix {
inherit pkgs;
inherit config;
};
home.file = {
".inputrc".source = ../../../dots/.inputrc;
".bashrc.d/prompt".source = ../../../dots/.bashrc.d/prompt;
".bashrc.d/editor".source = ../../../dots/.bashrc.d/editor;
".bash_aliases/all".source = ../../../dots/.bash_aliases/all;
".bash_aliases/lang-js".source = ../../../dots/.bash_aliases/lang-js;
".config/kitty/kitty.conf".source = ../../../dots/.config/kitty/kitty.conf;
".config/kitty/themes/zenwritten_light.conf".source =
../../../dots/.config/kitty/themes/zenwritten_light.conf;
".config/kitty/themes/zenwritten_dark.conf".source =
../../../dots/.config/kitty/themes/zenwritten_dark.conf;
};
}
+52
View File
@@ -0,0 +1,52 @@
{ pkgs, ... }:
with pkgs;
[
bash-completion
bash-language-server
bat
brightnessctl
entr
eslint_d
feh
fzf
gh
git
haskell-language-server
haskellPackages.pandoc-crossref
haskellPackages.hadolint
htop
jq
kitty
lua-language-server
nixfmt-rfc-style
nmap
nodejs_24
nvimpager
ormolu
pandoc
parallel
pass
pnpm
ripgrep
silver-searcher
sops
sshfs
stylelint
svelte-language-server
tailwindcss-language-server
tldr
tmux
tmuxp
tree
tree-sitter
typescript-language-server
unzip
vim-language-server
vimPlugins.vim-plug
vtsls
wget
xbanish
xclip
yaml-language-server
]
-23
View File
@@ -1,23 +0,0 @@
{ pkgs, ... }:
with pkgs;
[
bat
curl
entr
fd
feh
fzf
htop
jq
nmap
nvimpager
parallel
pass
ripgrep
sops
tldr
tree
unzip
wget
]
+18 -78
View File
@@ -5,100 +5,40 @@
...
}:
let
username = "hektor";
in
{
imports = [
inputs.sops-nix.homeManagerModules.sops
inputs.stylix.homeModules.stylix
../../modules
../../modules/dconf.nix
../../modules/git.nix
../../modules/k9s.nix
];
sops.age.keyFile = "${config.home.homeDirectory}/.config/sops/age/keys.txt";
nixpkgs.config.allowUnfree = true;
xdg = {
systemDirs.config = [ "/etc/xdg" ];
userDirs = {
createDirectories = false;
download = "${config.home.homeDirectory}/dl";
};
};
home = {
stateVersion = "25.05";
username = "hektor";
homeDirectory = "/home/${config.home.username}";
};
home.stateVersion = "25.05";
home.username = username;
home.homeDirectory = "/home/${username}";
targets.genericLinux.nixGL = {
inherit (inputs.nixgl) packages;
packages = inputs.nixgl.packages;
defaultWrapper = "mesa";
};
ai-tools = {
claude-code.enable = true;
tirith.enable = true;
opencode.enable = true;
};
anki.enable = true;
browser = {
enable = true;
primary = "firefox";
secondary = "chromium";
};
bruno.enable = true;
cloud.azure.enable = true;
comms.signal.enable = true;
comms.teams.enable = true;
database = {
mssql.enable = true;
postgresql.enable = true;
redis.enable = true;
};
desktop.niri.enable = true;
devenv.enable = true;
direnv.enable = true;
docker.enable = true;
git = {
enable = true;
github.enable = true;
gitlab.enable = true;
};
go.enable = true;
k8s.enable = true;
keepassxc.enable = true;
music.enable = true;
my.dconf.enable = true;
my.stylix.enable = true;
nvim.enable = true;
pandoc.enable = true;
shell.enable = true;
taskwarrior.enable = true;
terminal.enable = true;
infra.enable = true;
nodejs.enable = true;
secrets.enable = true;
secrets.vault.enable = true;
ticketing.enable = true;
vscode.enable = true;
services.home-manager.autoUpgrade = {
enable = true;
frequency = "weekly";
};
programs = {
# editorconfig.enable = true;
firefox = import ../../modules/firefox.nix {
inherit inputs;
inherit pkgs;
inherit config;
};
gh.enable = true;
keepassxc = import ../../modules/keepassxc.nix;
kubecolor.enable = true;
};
home.packages =
import ./packages.nix {
inherit inputs;
inherit config;
inherit pkgs;
}
++ import ../packages.nix {
home.packages = import ./packages.nix {
inherit inputs;
inherit config;
inherit pkgs;
+4 -1
View File
@@ -13,4 +13,7 @@ let
[ ];
in
localPackages
(with pkgs; [
inputs.nvim.packages.x86_64-linux.nvim
])
++ localPackages
-32
View File
@@ -1,32 +0,0 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.modules."3d";
in
{
options.modules."3d" = {
printing.enable = lib.mkEnableOption "3D printing tools";
modeling.enable = lib.mkEnableOption "3D modeling tools";
};
config = lib.mkMerge [
(lib.mkIf cfg.printing.enable {
home.packages = with pkgs; [
bambu-studio
orca-slicer
];
})
(lib.mkIf cfg.modeling.enable {
home.packages = with pkgs; [
blender
openscad-lsp
openscad-unstable
];
})
];
}
-60
View File
@@ -1,60 +0,0 @@
{
lib,
config,
pkgs,
...
}:
let
cfg = config.ai-tools.claude-code;
rtk-version = "0.18.1";
in
{
options.ai-tools.claude-code.enable = lib.mkEnableOption "claude code with rtk and ccline";
config = lib.mkIf cfg.enable {
programs.claude-code.enable = true;
home.packages = with pkgs; [
(stdenv.mkDerivation {
name = "ccline";
src = fetchurl {
url = "https://github.com/Haleclipse/CCometixLine/releases/download/v1.0.8/ccline-linux-x64.tar.gz";
hash = "sha256-Joe3Dd6uSMGi66QT6xr2oY/Tz8rA5RuKa6ckBVJIzI0=";
};
unpackPhase = "tar xzf $src";
installPhase = ''
mkdir -p $out/bin
cp ccline $out/bin/
chmod +x $out/bin/ccline
'';
meta = {
description = "CCometixLine Linux x64 CLI (Claude Code statusline)";
homepage = "https://github.com/Haleclipse/CCometixLine";
license = lib.licenses.mit;
platforms = [ "x86_64-linux" ];
};
})
(stdenv.mkDerivation {
name = "rtk-${rtk-version}";
version = rtk-version;
src = fetchurl {
url = "https://github.com/rtk-ai/rtk/releases/download/v${rtk-version}/rtk-x86_64-unknown-linux-gnu.tar.gz";
hash = "sha256-XoTia5K8b00OzcKYCufwx8ApkAS31DxUCpGSU0jFs2Q=";
};
unpackPhase = "tar xzf $src";
installPhase = ''
mkdir -p $out/bin
cp rtk $out/bin/
chmod +x $out/bin/rtk
'';
meta = {
description = "RTK - AI coding tool enhancer";
homepage = "https://www.rtk-ai.app";
license = lib.licenses.mit;
platforms = [ "x86_64-linux" ];
};
})
mcp-nixos
];
};
}
-8
View File
@@ -1,8 +0,0 @@
{
imports = [
./claude-code.nix
./opencode.nix
./skills.nix
./tirith.nix
];
}
-40
View File
@@ -1,40 +0,0 @@
{
lib,
config,
pkgs,
...
}:
let
cfg = config.ai-tools.opencode;
in
{
options.ai-tools.opencode = {
enable = lib.mkEnableOption "opencode";
};
config = lib.mkIf cfg.enable {
home.packages = [ pkgs.opencode ];
home.file.".config/opencode/opencode.json".text = builtins.toJSON {
"$schema" = "https://opencode.ai/config.json";
permission = {
external_directory = {
"/run/secrets/" = "deny";
"~/.config/sops/age/keys.txt" = "deny";
"~/.ssh/id_rsa" = "deny";
"~/.ssh/id_ed25519" = "deny";
"~/.ssh/id_ecdsa" = "deny";
"~/.ssh/id_dsa" = "deny";
"/etc/ssh/ssh_host_rsa_key" = "deny";
"/etc/ssh/ssh_host_ed25519_key" = "deny";
"/etc/ssh/ssh_host_ecdsa_key" = "deny";
"/etc/ssh/ssh_host_dsa_key" = "deny";
};
command = {
sops = "deny";
};
};
plugin = [ "@mohak34/opencode-notifier@latest" ];
};
};
}
-49
View File
@@ -1,49 +0,0 @@
{
lib,
config,
pkgs,
...
}:
let
cfg = config.ai-tools.claude-code;
skillType = lib.types.submodule {
options = {
owner = lib.mkOption { type = lib.types.str; };
repo = lib.mkOption { type = lib.types.str; };
rev = lib.mkOption { type = lib.types.str; };
hash = lib.mkOption { type = lib.types.str; };
skill = lib.mkOption { type = lib.types.str; };
};
};
fetchSkill =
skill:
let
src = pkgs.fetchFromGitHub {
inherit (skill)
owner
repo
rev
hash
;
};
in
{
name = ".claude/skills/${skill.skill}";
value = {
source = "${src}/${skill.skill}";
recursive = true;
};
};
in
{
options.ai-tools.claude-code.skills = lib.mkOption {
type = lib.types.listOf skillType;
default = [ ];
};
config = lib.mkIf cfg.enable {
home.file = builtins.listToAttrs (map fetchSkill cfg.skills);
};
}
-190
View File
@@ -1,190 +0,0 @@
#!/usr/bin/env python3
"""Claude Code PreToolUse hook — runs tirith check on Bash tool calls.
Reads JSON from stdin (Claude Code hook protocol), extracts the command,
and delegates to `tirith check --json` for security analysis.
Exit codes:
0 — hook completed successfully (decision in stdout JSON)
Non-zero — hook error (fail-closed by default; set TIRITH_FAIL_OPEN=1 for fail-open)
Output (stdout, only for deny):
{
"hookSpecificOutput": {
"hookEventName": "PreToolUse",
"permissionDecision": "deny",
"permissionDecisionReason": "..."
}
}
Environment:
TIRITH_BIN — path to tirith binary (default: "tirith")
TIRITH_HOOK_WARN_ACTION — "deny" (default) or "allow"
"""
import json
import os
import shutil
import subprocess
import sys
def get(data, *keys):
"""Return the first matching key from data (supports dual-case fields)."""
for k in keys:
if k in data:
return data[k]
return None
def deny(reason):
"""Print a deny decision using hookSpecificOutput and exit 0."""
print(
json.dumps(
{
"hookSpecificOutput": {
"hookEventName": "PreToolUse",
"permissionDecision": "deny",
"permissionDecisionReason": reason,
}
}
)
)
sys.exit(0)
def fail_action():
"""Return the fail action: deny (default, fail-closed) or allow (fail-open via env)."""
return "allow" if os.environ.get("TIRITH_FAIL_OPEN") == "1" else "deny"
def fail_closed(reason):
"""Deny or allow based on TIRITH_FAIL_OPEN, for error/missing-binary paths."""
action = fail_action()
if action == "deny":
deny(reason)
else:
sys.exit(0)
def main():
try:
raw = sys.stdin.read()
if not raw.strip():
# Empty input — cannot determine command, fail-closed
fail_closed("tirith: empty hook input — blocked for safety")
return
data = json.loads(raw)
except (json.JSONDecodeError, OSError):
fail_closed("tirith: failed to parse hook input — blocked for safety")
return
if not isinstance(data, dict):
fail_closed("tirith: invalid hook input format — blocked for safety")
return
# Dual-case field extraction (camelCase and snake_case)
event = get(data, "hook_event_name", "hookEventName")
tool = get(data, "tool_name", "toolName")
tool_input = get(data, "tool_input", "toolInput") or {}
# Only intercept PreToolUse + Bash
if event != "PreToolUse" or tool != "Bash":
sys.exit(0)
if not isinstance(tool_input, dict):
fail_closed("tirith: invalid tool_input format — blocked for safety")
return
command = tool_input.get("command")
if not isinstance(command, str) or not command.strip():
fail_closed("tirith: no command found in hook input — blocked for safety")
return
# Locate tirith binary
tirith_bin = os.environ.get("TIRITH_BIN") or shutil.which("tirith") or "tirith"
try:
result = subprocess.run(
[
tirith_bin,
"check",
"--json",
"--non-interactive",
"--shell",
"posix",
"--",
command,
],
capture_output=True,
text=True,
timeout=10,
)
except FileNotFoundError:
fail_closed(f"tirith: {tirith_bin} not found — install tirith or set TIRITH_FAIL_OPEN=1")
return
except subprocess.TimeoutExpired:
fail_closed("tirith: check timed out — blocked for safety")
return
except OSError as e:
fail_closed(f"tirith: OS error running check — {e}")
return
# Unexpected exit code — fail-closed
if result.returncode not in (0, 1, 2):
fail_closed(f"tirith: unexpected exit code {result.returncode} — blocked for safety")
return
if result.returncode != 0 and not result.stdout.strip():
fail_closed("tirith: check returned non-zero with no output — blocked for safety")
return
# Exit 0 = clean, allow
if result.returncode == 0:
sys.exit(0)
# Exit 2 = warn — check TIRITH_HOOK_WARN_ACTION
if result.returncode == 2:
warn_action = os.environ.get("TIRITH_HOOK_WARN_ACTION", "deny").lower()
if warn_action == "allow":
sys.exit(0)
# Exit 1 = block, Exit 2 + deny = block
# Build reason from tirith JSON output
reason = "Tirith security check failed"
if result.stdout.strip():
try:
verdict = json.loads(result.stdout)
findings = verdict.get("findings", [])
if findings:
parts = []
for f in findings:
title = f.get("title", f.get("rule_id", "unknown"))
severity = f.get("severity", "")
parts.append(f"[{severity}] {title}" if severity else title)
reason = "Tirith: " + "; ".join(parts)
except json.JSONDecodeError:
reason = result.stdout.strip()[:500]
deny(reason)
if __name__ == "__main__":
try:
main()
except Exception:
# Fail-closed on unexpected errors (respects TIRITH_FAIL_OPEN)
if os.environ.get("TIRITH_FAIL_OPEN") == "1":
sys.exit(0)
# Deny — print structured output so Claude Code shows a message
print(
json.dumps(
{
"hookSpecificOutput": {
"hookEventName": "PreToolUse",
"permissionDecision": "deny",
"permissionDecisionReason": "tirith: unexpected hook error — blocked for safety",
}
}
)
)
sys.exit(0)
-30
View File
@@ -1,30 +0,0 @@
{
lib,
config,
pkgs,
...
}:
let
cfg = config.ai-tools.tirith;
in
{
options.ai-tools.tirith = {
enable = lib.mkEnableOption "tirith";
};
config = lib.mkMerge [
(lib.mkIf cfg.enable {
home.packages = [ pkgs.tirith ];
})
(lib.mkIf (cfg.enable && config.ai-tools.claude-code.enable) {
home.file.".claude/hooks/tirith-check.py" = {
source = ./tirith-check.py;
executable = true;
};
home.activation.tirith-claude-code = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
${pkgs.tirith}/bin/tirith setup claude-code --with-mcp --scope user --force 2>/dev/null || true
'';
})
];
}
+6
View File
@@ -0,0 +1,6 @@
{
enable = true;
# sync = {
# username = config.sops.secrets."email/personal".path;
# };
}
-58
View File
@@ -1,58 +0,0 @@
{
config,
lib,
pkgs,
myUtils,
osConfig ? null,
inputs ? null,
...
}:
let
cfg = config.anki;
sops = myUtils.sopsAvailability config osConfig;
standalone = osConfig == null;
in
{
options.anki.enable = lib.mkEnableOption "Anki";
config = lib.mkIf cfg.enable (
lib.optionalAttrs standalone {
sops.secrets = myUtils.mkSopsSecrets "${toString inputs.nix-secrets}/secrets" {
anki = [
"sync-user"
"sync-key"
];
};
}
// {
warnings = lib.optional (
!sops.available
) "anki is enabled but sops secrets are not available. anki sync will not be configured.";
programs.anki = {
enable = true;
package = config.nixgl.wrap pkgs.anki;
addons = with pkgs.ankiAddons; [
(anki-connect.withConfig {
# https://git.sr.ht/~foosoft/anki-connect/tree/master/item/plugin/config.json
config = {
apiKey = null;
apiLogPath = null;
webBindAddress = "127.0.0.1";
webBindPort = 8765;
webCorsOriginList = [ "http://localhost" ];
ignoreOriginList = [ ];
};
})
puppy-reinforcement
review-heatmap
];
profiles."User 1".sync = lib.mkIf sops.available {
usernameFile = "${sops.secrets."anki/sync-user".path}";
keyFile = "${sops.secrets."anki/sync-key".path}";
};
};
}
);
}
-19
View File
@@ -1,19 +0,0 @@
{
config,
lib,
pkgs,
osConfig,
...
}:
let
cfg = config.audio;
in
{
options.audio.enable = lib.mkEnableOption "audio";
config = lib.mkIf cfg.enable {
home.packages = with pkgs; [ pulsemixer ];
services.mpris-proxy.enable = osConfig.hardware.bluetooth.enable or false;
};
}

Some files were not shown because too many files have changed in this diff Show More