Compare commits

..
133 Commits
Author SHA1 Message Date
hektor 5c587dc5a7 feat(reference-manager): replace 'Zotero' with 'papis'
check / lint (push) Successful in 6s
2026-11-08 22:55:01 +01:00
hektor fce7a277a7 feat(lynis): declare 'lynis' module (with profile + skips) 2026-11-08 22:55:01 +01:00
hektor 21e5b62dfa feat(hecuba): switch to UEFI (and modularize)
check / lint (push) Successful in 9s
2026-11-08 13:41:38 +01:00
hektor e794e6c0e2 feat(hardening): declare hardening module using 'nix-mineral' 2026-11-08 13:41:38 +01:00
hektor 209ab8ba30 feat(reference-manager): nixify Zotero Better BibTeX
check / lint (push) Successful in 17s
2026-11-06 21:04:16 +01:00
hektor be62f224a6 refactor(git-hooks): simplify git hooks
check / lint (push) Successful in 18s
2026-11-06 21:00:20 +01:00
hektor 9110789527 refactor: nixify / clean remaining dots scripts 2026-11-06 21:00:20 +01:00
hektor 9030f33842 refactor: nixify / clean dots config 2026-11-06 21:00:20 +01:00
hektor c2bb81ec7c refactor(secrets): simplify home manager secrets
check / lint (push) Successful in 15s
2026-11-06 16:43:26 +01:00
hektor 6fa74fead8 refactor: rename utils to lib'
check / lint (push) Successful in 15s
2026-11-06 14:35:01 +01:00
hektor 1947ee0c9f feat(nvim): set up 'atlas.nvim' for Gitlab
check / lint (push) Successful in 15s
2026-11-06 12:21:25 +01:00
hektor 00769b0251 feat(nvim): add 'editorconfig-checker'
check / lint (push) Successful in 15s
2026-11-06 12:12:29 +01:00
hektor 089b221276 fix(nvim): correct auto-session 'enabled' option 2026-11-06 12:11:43 +01:00
hektor 7337257740 fix(nvim): drop 'eslint' formatter 2026-11-06 12:07:56 +01:00
hektor 126dacc3e3 fix(nvim): use 'openscad-lsp' instead of 'openscad-ls'
check / lint (push) Successful in 15s
2026-11-06 10:36:56 +01:00
hektor 8871280ee5 fix(nvim): resolve lspconfig nesting errors 2026-11-06 10:26:33 +01:00
hektor 13b45c45a1 feat(nvim): add 'biome' to 'conform.nvim'
check / lint (push) Successful in 14s
2026-11-06 10:05:49 +01:00
hektor 8c6f0c7a32 fix(nvim): remove duplicate 'indentexpr' 2026-11-06 10:01:42 +01:00
hektor cdaac61c37 chore(nvim): drop redundant plugins
check / lint (push) Successful in 15s
2026-11-06 10:01:42 +01:00
hektor 323de0b2e9 fix(nvim): use 'typescriptreact' in tailwind-fold 2026-11-06 10:01:42 +01:00
hektor 79fea669c0 refactor(keyboard): nixify 'vortex-core' directory
check / lint (push) Successful in 15s
2026-11-05 23:15:05 +01:00
hektor 7bcfa68a6b chore(flake): move nix-secrets and hecuba-services to hektor-org
check / lint (push) Successful in 17s
2026-11-05 22:55:26 +01:00
hektor 627a7b463e fix(nvim): don't try to load VSCode snippets
check / lint (push) Successful in 15s
2026-11-05 22:45:53 +01:00
hektor e9002ac727 fix(nvim): use buffer keymaps for LSP 2026-11-05 22:45:52 +01:00
hektor 3e377ce637 feat(nvim): add nixCats-backed language options
check / lint (push) Successful in 16s
2026-11-04 23:51:07 +01:00
hektor 0d5027edb7 feat(nvim): add inotify-tools
check / lint (push) Successful in 16s
2026-11-04 13:09:07 +01:00
hektor 23b0462dc1 fix(nvim): only use 'helm_ls' for helm charts and values
check / lint (push) Successful in 16s
2026-11-03 23:26:26 +01:00
hektor f45dd680f9 feat(nvim): make TypeScript language server configurable 2026-11-03 23:26:26 +01:00
hektor 49f66cb9fa chore(nvim): drop 'nvimkit-nvim' plugin 2026-11-03 23:17:31 +01:00
hektor 9c84aeb3ab fix(nvim): actually load the 'skeleton' plugin 2026-11-03 22:37:54 +01:00
hektor f365957d3d feat(nvim): substitute atlas.nvim for diffview.nvim
check / lint (push) Successful in 30s
2026-11-03 21:27:42 +01:00
hektor 84e0866c19 feat(xdg): declare 'xdg' module
check / lint (push) Successful in 15s
2026-11-01 18:17:20 +01:00
hektor f55d5a8149 fix(backups): scope restic password per host 2026-11-01 18:17:20 +01:00
hecuba-services-bot 0c992880b7 chore(hecuba): update services lock to 18d0202
check / lint (push) Successful in 15s
2026-10-31 15:37:11 +01:00
hektor ea5309eff1 feat(k8s): declare 'talos' modules 2026-10-31 15:37:11 +01:00
hektor 48360e49c4 feat(k8s): declare 'crossplane' module 2026-10-31 15:35:49 +01:00
hektor e92c98fa04 fix(nvim): load snippets from nixCats config dir 2026-10-31 15:35:48 +01:00
hektor 2d2776f119 fix(taskwarrior): drop unused 'taskopen' 2026-10-31 15:35:47 +01:00
hecuba-services-bot 7bd37a79ab chore(hecuba): update services lock to 6ff8795 2026-10-29 14:47:49 +01:00
hektor e16c519414 fix(nvim): replace deprecated 'vim.diagnostic.goto_*' with 'vim.diagnostic.jump' 2026-10-29 14:26:59 +01:00
hektor 93f2952611 chore(nvim): drop wiki index mapping
check / lint (push) Successful in 15s
2026-10-28 20:39:31 +01:00
hecuba-services-bot da8cf08ed2 chore(hecuba): update services lock to 0c66ef7
check / lint (push) Successful in 15s
2026-10-27 21:51:31 +00:00
hecuba-services-bot b2898ddf20 chore(hecuba): update services lock to 0d86d36
check / lint (push) Successful in 17s
2026-10-27 21:50:43 +00:00
hecuba-services-bot 95da1174c6 chore(hecuba): update services lock to 0a5fd6b
check / lint (push) Successful in 30s
2026-10-26 20:59:12 +00:00
hektor 3893fb6078 fix(wol): generalize 'wol-*' scripts
check / lint (push) Successful in 15s
2026-10-25 17:37:20 +01:00
hektor 715bf6140f fix(browser): use 'browser' group for KeePassXC browser credentials 2026-10-25 17:37:20 +01:00
hektor 96d838db75 fix(3d): modularize 3D module 2026-10-25 17:37:20 +01:00
hektor 445bdde2dc fix(ssh): further harden SSH 2026-10-25 17:37:20 +01:00
hektor 432a4c107a fix(backups): improve reliability 2026-10-25 17:37:20 +01:00
hektor 4498e8303c fix(ai-tools): bump 'ccline' 2026-10-25 17:37:20 +01:00
hektor ddee912f51 fix(ai-tools): use 'rtk' from 'nixpkgs' 2026-10-25 17:37:19 +01:00
hektor bb2f0dcd29 feat(memory): declare 'memory' module
check / lint (push) Successful in 15s
2026-10-24 13:22:38 +02:00
hektor f3876cdf87 feat(tmp): declare 'tmp' module 2026-10-24 13:09:19 +02:00
hektor fc373a60ef feat(zfs): declare ZFS module 2026-10-24 13:09:14 +02:00
hecuba-services-bot e12e2b17ae chore(hecuba): update services lock to e94b134
check / lint (push) Successful in 15s
2026-10-22 22:07:55 +00:00
hecuba-services-bot 26458c8728 chore(hecuba): update services lock to 7a887ec
check / lint (push) Successful in 19s
2026-10-22 21:58:09 +00:00
hecuba-services-bot e462c1b0b9 chore(hecuba): update services lock to a8acbad
check / lint (push) Successful in 16s
2026-10-22 20:39:19 +00:00
hecuba-services-bot 677cd30224 chore(hecuba): update services lock to 3194d87
check / lint (push) Successful in 15s
2026-10-22 19:44:21 +00:00
hecuba-services-bot 5d5db2314d chore(hecuba): update services lock to f4b9c22
check / lint (push) Successful in 15s
2026-10-22 19:42:13 +00:00
hecuba-services-bot ba0e9e77d4 chore(hecuba): update services lock to a89518a
check / lint (push) Successful in 16s
2026-10-22 19:11:32 +00:00
hecuba-services-bot 88a9e8e63f chore(hecuba): update services lock to 9abf40d
check / lint (push) Successful in 15s
2026-10-22 18:58:31 +00:00
hecuba-services-bot 9df77eee42 chore(hecuba): update services lock to 900f298
check / lint (push) Successful in 17s
2026-10-22 18:38:15 +00:00
hecuba-services-bot 18901f16cd chore(hecuba): update services lock to 5f49f34
check / lint (push) Successful in 15s
2026-10-22 18:35:34 +00:00
hecuba-services-bot 408ee2eec1 chore(hecuba): update services lock to 94b9e7a
check / lint (push) Successful in 17s
2026-10-22 18:20:33 +00:00
hecuba-services-bot 362beb72ca chore(hecuba): update services lock to b75d5ff
check / lint (push) Successful in 17s
2026-10-22 17:44:09 +00:00
hecuba-services-bot 8a49bb8015 chore(hecuba): update services lock to 8dd1006
check / lint (push) Successful in 15s
2026-10-22 16:34:20 +00:00
hecuba-services-bot 186ab438b8 chore(hecuba): update services lock to 2f04dc5
check / lint (push) Successful in 15s
2026-10-22 16:11:28 +00:00
hecuba-services-bot c32c8a0ace chore(hecuba): update services lock to c42fa08
check / lint (push) Successful in 15s
2026-10-22 16:09:50 +00:00
hecuba-services-bot fbb04d1192 chore(hecuba): update services lock to c57be1a
check / lint (push) Successful in 15s
2026-10-22 16:09:06 +00:00
hecuba-services-bot 233cdd4bbe chore(hecuba): update services lock to 6b19a4d
check / lint (push) Successful in 19s
2026-10-22 16:08:11 +00:00
hecuba-services-bot 5153bd0883 chore(hecuba): update services lock to 63277d7
check / lint (push) Successful in 15s
2026-10-22 03:03:11 +00:00
hecuba-services-bot b112c7eda3 chore(hecuba): update services lock to f8a7b68
check / lint (push) Successful in 18s
2026-10-21 14:06:50 +00:00
hektor d7508ddad7 feat(newsboat): nixify 'newsboat'
check / lint (push) Successful in 1m6s
2026-10-20 20:45:04 +02:00
hektor 83d863b856 chore: update lockfile 2026-10-20 20:45:04 +02:00
hektor d317aa39a6 feat(sandboxing): declare sandboxing module
check / lint (push) Successful in 15s
2026-10-12 23:51:54 +02:00
hektor 3bbc5e83fc fix(hecuba): resolve arion check related build error 2026-10-12 23:50:15 +02:00
hektor 0ab7dc5d80 feat(ai-tools): declare Codex submodule
check / lint (push) Successful in 15s
2026-10-12 23:44:18 +02:00
hektor 622a2ae3da fix(ai-tools): adopt 'taskwarrior' home manager secrets approach 2026-10-12 23:44:18 +02:00
hektor 034a010547 feat(scripts): declare scripts module
check / lint (push) Successful in 47s
2026-10-12 23:28:53 +02:00
hektor 14f8c83cf3 refactor: simplify repo paths
check / lint (push) Successful in 14s
2026-10-11 17:45:55 +02:00
hektor 7f5d7914c4 refactor(common): modularize common host module
check / lint (push) Successful in 14s
2026-10-11 17:34:29 +02:00
hektor deeffb8b8b fix(eetion): configure 'hardware.deviceTree' 2026-10-11 17:34:29 +02:00
hektor 14c6a27b21 fix(git): degrade gracefully without 'nvim' 2026-10-11 17:34:29 +02:00
hektor fbd34508c5 chore(taskwarrior): update taskwarrior to '3.5.0' news
check / lint (push) Successful in 17s
2026-10-11 16:58:21 +02:00
hektor a3905e5b3d feat(graphics): generalize to graphics module
check / lint (push) Successful in 15s
2026-10-09 21:54:33 +02:00
hektor 7f497792de feat(andromache): enable zram swap 2026-10-09 21:52:36 +02:00
hecuba-services-bot bba440a80e chore(hecuba): update services lock to 303a91d
check / lint (push) Successful in 15s
2026-10-09 02:03:08 +00:00
hecuba-services-bot 6e69733d61 chore(hecuba): update services lock to f2727ed
check / lint (push) Successful in 16s
2026-10-08 21:15:04 +00:00
hecuba-services-bot 2e39bbd947 chore(hecuba): update services lock to 73d741f
check / lint (push) Successful in 15s
2026-10-08 00:00:22 +00:00
hektor a3124c8870 feat(nvim): add 'diffview.nvim'
check / lint (push) Successful in 15s
2026-10-07 22:54:46 +02:00
hektor 52a83d4744 fix(nvim): skip 'yamllint' when no config present
check / lint (push) Successful in 15s
2026-10-07 22:43:15 +02:00
hektor 5d4a49bc2a fix(nvim): replace deprecated conform 'lsp_fallback'
check / lint (push) Successful in 14s
2026-10-07 22:41:41 +02:00
hecuba-services-bot b9671ca4b5 chore(hecuba): update services lock to 3ba7f97
check / lint (push) Successful in 14s
2026-10-07 20:00:57 +00:00
hecuba-services-bot 71f1d42f64 chore(hecuba): update services lock to 23a4991
check / lint (push) Successful in 15s
2026-10-07 20:00:06 +00:00
hektor b5d6e66bb1 fix(ai-tools): nixify home-managed 'opencode'
check / lint (push) Successful in 15s
2026-10-07 21:49:30 +02:00
hektor a081a31077 feat(k8s): default to desc sort for 'k9s' pod memory
check / lint (push) Successful in 14s
2026-10-07 21:46:39 +02:00
hektor 816e093038 feat(k8s): complete k alias like kubectl 2026-10-07 21:46:11 +02:00
hektor b77421066b feat(nodejs): add fnm node version manager
check / lint (push) Successful in 16s
2026-10-07 21:43:27 +02:00
hektor 0fd329e1ec feat(ai-tools): add fabric 2026-10-07 21:43:27 +02:00
hektor a5c5621cae fix(firefox): update 'configPath' 2026-10-07 21:43:27 +02:00
hecuba-services-bot f38da1a344 chore(hecuba): update services lock to 47b6347
check / lint (push) Successful in 46s
2026-10-06 15:21:50 +00:00
hecuba-services-bot 47884d9390 chore(hecuba): update services lock to a14dc97
check / lint (push) Successful in 14s
2026-10-02 22:19:54 +00:00
hecuba-services-bot 680290c151 chore(hecuba): update services lock to 2d888b0
check / lint (push) Successful in 16s
2026-10-02 22:19:09 +00:00
hektor ca70263415 refactor(secrets): move options into 'default.nix'
check / lint (push) Successful in 14s
2026-09-28 23:25:17 +02:00
hektor 48f484cb85 refactor(ai-tools): move options into 'default.nix' 2026-09-28 23:25:17 +02:00
hektor 5b480bd0d6 refactor(database): modularize 2026-09-28 23:25:12 +02:00
hektor 06f1412930 fix(database): gate redis on its own enable flag 2026-09-28 23:24:02 +02:00
hektor c921adc4be refactor(3d): split printing and modeling modules 2026-09-28 23:23:56 +02:00
hektor b1824d6f5f chore: remove unused 'rofi-trans' script 2026-09-28 23:23:51 +02:00
hektor 9c22bed2fc chore: drop 'dots/nix.conf' 2026-09-28 23:04:32 +02:00
hektor 610993dc8b feat: substitute remaining Xorg for Wayland 2026-09-28 23:04:32 +02:00
hektor db3ffae41e feat(niri): add 'playerctl' keybindings 2026-09-28 23:04:32 +02:00
hektor 21cf4a7a65 feat(niri): center single columns 2026-09-28 22:57:54 +02:00
hektor 14c25a0b1d feat(mako): migrate 'dunst' config to 'mako' 2026-09-28 22:57:26 +02:00
hektor b4755b9a8a fix(taskwarrior): let home manager handle config 2026-09-28 22:57:26 +02:00
hektor aee9682d64 refactor(nvim): move config out of module 2026-09-28 21:18:11 +02:00
hektor 178a51d75e refactor(ncspot): nixify configuration
check / lint (push) Successful in 15s
2026-09-28 21:03:34 +02:00
hektor d35575326b refactor(kitty): nixify configuration 2026-09-28 21:03:34 +02:00
hektor 761102fd35 refactor(tmux): nixify configuration 2026-09-28 20:58:46 +02:00
hektor 665727cb3d chore: drop placeholder directories 2026-09-28 20:58:46 +02:00
hektor 22600b2ca6 chore(dots): drop redundant '.env.example' 2026-09-28 20:58:46 +02:00
hektor 30dfcb6141 refactor(shell): nixify remaining shell config 2026-09-28 20:58:46 +02:00
hektor b2bd384d0e refactor(git): nixify
check / lint (push) Successful in 14s
2026-09-27 23:31:51 +02:00
hektor 28ebd62e33 refactor(taskwarrior): nixify 2026-09-27 23:31:51 +02:00
hektor 7acff57575 refactor(k8s): move module options to 'default.nix' 2026-09-27 23:31:51 +02:00
hektor e0ff23879f refactor(git): move module options to 'default.nix' 2026-09-27 23:31:00 +02:00
hektor f530dfea50 feat(home): add Gitea CLI 2026-09-27 20:59:21 +02:00
hektor 0252eec4f0 feat(nodjes): update 'npm' config
check / lint (push) Successful in 19s
2026-09-27 20:59:21 +02:00
hecuba-services-bot 0faf0ded8f chore(hecuba): update services lock to a4d3059
check / lint (push) Successful in 14s
2026-09-26 19:12:24 +00:00
hecuba-services-bot d88cef87ef chore(hecuba): update services lock to 6270b5e
check / lint (push) Successful in 15s
2026-09-25 22:19:07 +00:00
hektor 68d6dce0a7 chore: shallow 'hecuba-services'
check / lint (push) Successful in 16s
2026-09-26 00:12:30 +02:00
hecuba-services-bot 9fb106cbde chore(hecuba): update services lock to 9bde6a7
check / lint (push) Failing after 3s
2026-09-25 17:54:21 +00:00
hektor dc15ea115f chore: update lockfile
check / lint (push) Successful in 52s
2026-09-23 22:40:21 +02:00
345 changed files with 3914 additions and 8263 deletions

No files matched your search

+2
View File
@@ -19,6 +19,8 @@ home-manager switch --flake .#work
### virtual machines
With a Niri desktop (requires host OpenGL support):
```
nix build -L '.#nixosConfigurations.vm.config.system.build.vmWithDisko'
./result/bin/disko-vm
+5 -7
View File
@@ -5,20 +5,20 @@
let
inherit (inputs.nixpkgs) lib;
utils = import ../utils { inherit lib; };
lib' = import ../lib { 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);
hostname: !((lib'.hostMeta hostname).deploy.autoRollback or false)
) lib'.nixosHosts;
mkNode =
hostname:
let
meta = utils.hostMeta ../hosts/${hostname};
meta = lib'.hostMeta hostname;
isArm = meta.system == "aarch64-linux";
in
{
@@ -40,10 +40,8 @@ inputs.colmena.lib.makeHive (
meta = {
nixpkgs = import inputs.nixpkgs { localSystem = "x86_64-linux"; };
specialArgs = {
inherit inputs;
inherit inputs lib';
outputs = self;
dotsPath = ../dots;
myUtils = utils;
};
};
}
+4 -4
View File
@@ -5,18 +5,18 @@
let
inherit (inputs.nixpkgs) lib;
utils = import ../utils { inherit lib; };
lib' = import ../lib { 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);
hostname: (lib'.hostMeta hostname).deploy.autoRollback or false
) lib'.nixosHosts;
mkNode =
hostname:
let
meta = utils.hostMeta ../hosts/${hostname};
meta = lib'.hostMeta hostname;
in
{
inherit hostname;
-57
View File
@@ -1,57 +0,0 @@
# shellcheck shell=bash
# vim: set ft=bash :
alias ..="cd .."
alias ls="ls --color=auto"
alias l="ls -1p"
alias ll="ls -lhp"
alias lt="ls -lhtp"
alias la="ls -lhap"
alias lta="ls -lhatp"
alias ldir="ls -dp" # list directories
alias grep="grep --color=auto"
alias rm="rm -I --preserve-root"
alias mv="mv -iv"
alias cp="cp -iv"
alias ln="ln -i"
alias mkdir="mkdir -pv"
alias chown="chown --preserve-root"
alias chmod="chmod --preserve-root"
alias chgrp="chgrp --preserve-root"
alias ip="ip --color"
alias ipa="ip -brief address"
alias ipl="ip -brief link"
alias ipr="ip route"
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
# Programs
alias h="history"
alias o="xdg-open"
alias v="nvim"
alias vf="fzf --bind 'enter:become(nvim {})'"
alias g='git'
alias k="kubectl"
alias t='task'
alias tsh='tasksh'
alias z='zathura --fork'
alias f='fzf'
alias fm='pcmanfm &>/dev/null &'
alias mm='micromamba'
# Languages
alias r5="plt-r5rs --no-prim"
alias hs="ghci"
alias pl="swipl"
alias py="python"
alias r="R"
alias azerty="setxkbmap be"
alias qwerty="setxkbmap us"
alias cole="setxkbmap us -variant colemak"
-16
View File
@@ -1,16 +0,0 @@
# shellcheck shell=bash
# vim: set ft=bash :
reboot-to-windows ()
{
# Check if grub is installed by checking if the command exists, if it does
# not, then assume that the system is using systemd-boot
if grub-install --version &>/dev/null; then
windows_title=$(grep -i windows /boot/grub/grub.cfg | cut -d "'" -f 2)
sudo grub-reboot "$windows_title"
echo "Grub set to reboot to Windows"
else
sudo bootctl set-oneshot windows.conf
echo "Systemd set to reboot to Windows"
fi
}
-7
View File
@@ -1,7 +0,0 @@
# shellcheck shell=bash
# vim: set ft=bash :
source "$HOME/.bash_aliases/dualboot"
alias lm='ddcutil setvcp 10'
alias cuda-available='python -c "import torch; print(\"CUDA enabled:\", torch.cuda.is_available());"'
-6
View File
@@ -1,6 +0,0 @@
# shellcheck shell=bash
# vim: set ft=bash :
source "$HOME/.bash_aliases/dualboot"
alias lm='xbacklight -set'
-9
View File
@@ -1,9 +0,0 @@
# shellcheck shell=bash
# shellcheck disable=SC1090
[[ -f ~/.bashrc ]] && . ~/.bashrc
export _JAVA_AWT_WM_NONREPARENTING=1
if [[ -z "${DISPLAY}" ]] && [[ "${XDG_VTNR}" -eq 1 ]]; then
exec startx "$HOME/.config/X11/xinitrc" >& ~/.xsession-errors
fi
-76
View File
@@ -1,76 +0,0 @@
# shellcheck shell=bash
# shellcheck disable=SC1091,SC1090
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
. /etc/os-release
# Prompt configuration
[ -f "$HOME/.bashrc.d/prompt" ] && . "$HOME/.bashrc.d/prompt"
# Aliases {{{
# Load aliases dynamically
[ -f "$HOME/.bash_aliases/all" ] && . "$HOME/.bash_aliases/all"
[ -f "$HOME/.bash_aliases/hosts/$HOSTNAME" ] && . "$HOME/.bash_aliases/hosts/$HOSTNAME"
[ -f "$HOME/.bash_aliases/private" ] && . "$HOME/.bash_aliases/private"
[ -f "$HOME/.bash_aliases/lang-js" ] && . "$HOME/.bash_aliases/lang-js"
# Completions {{{
[ -d "$HOME/.bash_completions" ] && for file in "$HOME/.bash_completions"/*; do
[ -f "$file" ] && . "$file"
done
# }}}
# Host-specific and private configurations
[ -f "$HOME/.bashrc.d/hosts/$HOSTNAME" ] && . "$HOME/.bashrc.d/hosts/$HOSTNAME"
[ -f "$HOME/.bashrc.d/private" ] && . "$HOME/.bashrc.d/private"
# }}}
# Prompt {{{
[ -f "$HOME/.bashrc.d/prompt" ] && . "$HOME/.bashrc.d/prompt"
# }}}
# X11 {{{
export XDG_SESSION_TYPE=X11
export XDG_CONFIG_HOME=$HOME/.config
export XDG_DATA_HOME=$HOME/.local/share
# }}}
# FZF {{{
# Check if fzf is installed
if [ -f "/usr/bin/fzf" ]; then
if [[ $ID == "raspbian" ]]; then
. /usr/share/doc/fzf/examples/completion.bash
. /usr/share/doc/fzf/examples/key-bindings.bash
elif [[ $ID == "arch" ]]; then
. /usr/share/fzf/completion.bash
. /usr/share/fzf/key-bindings.bash
fi
_fzf_setup_completion path vim zathura xournalpp nvim mpv
else
echo "fzf not installed"
fi
# }}}
# Jupyter {{{
export JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab
# }}}
# Conda {{{
[ -f /opt/miniconda3/etc/profile.d/conda.sh ] && . /opt/miniconda3/etc/profile.d/conda.sh
# }}}
# Codi
# Usage: codi [filetype] [filename]
codi() {
local syntax="${1:-python}"
shift
nvim -c \
"let g:startify_disable_at_vimenter = 1 |\
set bt=nofile ls=0 noru nonu nornu |\
hi ColorColumn ctermbg=NONE |\
hi VertSplit ctermbg=NONE |\
hi NonText ctermfg=0 |\
Codi $syntax" "$@"
}
-1
View File
@@ -1 +0,0 @@
# Desktop configuration
-19
View File
@@ -1,19 +0,0 @@
# shellcheck shell=bash
# vim: set ft=bash :
# >>> mamba initialize >>>
# !! Contents within this block are managed by 'mamba init' !!
export MAMBA_EXE="/usr/bin/micromamba";
export MAMBA_ROOT_PREFIX="/home/h/.local/share/micromamba";
__mamba_setup="$("$MAMBA_EXE" shell hook --shell bash --prefix "$MAMBA_ROOT_PREFIX" 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__mamba_setup"
else
if [ -f "/home/h/.local/share/micromamba/etc/profile.d/micromamba.sh" ]; then
. "/home/h/.local/share/micromamba/etc/profile.d/micromamba.sh"
else
export PATH="/home/h/.local/share/micromamba/bin:$PATH" # extra space after export prevents interference from conda init
fi
fi
unset __mamba_setup
# <<< mamba initialize <<<
-22
View File
@@ -1,22 +0,0 @@
# shellcheck shell=bash
# vim: set ft=bash :
get_branch_name() {
git symbolic-ref --quiet --short HEAD 2>/dev/null \
|| git rev-parse --short HEAD 2>/dev/null \
|| echo 'some branch'
}
get_git_info() {
git rev-parse --is-inside-work-tree &>/dev/null || return
echo -e "($(get_branch_name))"
}
if [[ $SSH_CONNECTION ]]; then
PS1='\[\033[01;31m\]\u@\h\[\033[00m\] $(get_git_info)\W❭\[$(tput sgr0)\] '
else
PS1='\u $(get_git_info)\W❭\[$(tput sgr0)\] '
fi
# Ellipsis when deep in directory
export PROMPT_DIRTRIM=2
export PS1
-26
View File
@@ -1,26 +0,0 @@
# Scripts
Mostly tiny helper scripts \& experiments, some more useful than others.
## Setup
Make sure the scripts are in your `$PATH` and executable.
To add the complete directory of scripts to your `$PATH`:
```bash
export PATH=~/.bin:$PATH
```
To make a any script `<script>` executable:
```bash
chmod +x <script>
```
## Notes
Statusbar scripts are prefixed with `sb` under the assumption you're using
`polybar` (scripts my need changes to be used with different statusbars).
Some scripts have dependencies (e.g. `fzf`, `jq`, `xclip`, ...), make sure you
have them installed.
-6
View File
@@ -1,6 +0,0 @@
#!/usr/bin/env bash
# Tiny AUR clone helper
# aurpac <package-name>
git clone "https://aur.archlinux.org/$1.git"
-3
View File
@@ -1,3 +0,0 @@
#!/usr/bin/env bash
ipython -i /home/h/.bin/calc.py
-5
View File
@@ -1,5 +0,0 @@
#!/usr/bin/env bash
# Open webcam window
ffplay -f v4l2 -x 640 -y 480 -i /dev/video0 >/dev/null 2>&1 & disown
-7
View File
@@ -1,7 +0,0 @@
#!/usr/bin/env node
const fs = require('fs')
const objLength = obj => Object.keys(obj).length
fs.readFile(process.argv[2], (err, data) => (err ? console.error(err) : console.log(objLength(JSON.parse(data)))))
-3
View File
@@ -1,3 +0,0 @@
#!/usr/bin/env bash
xdg-open https://devdocs.io/offline
-10
View File
@@ -1,10 +0,0 @@
#!/usr/bin/env bash
options="Mouse\nHeadphones"
selected="$(echo -e "$options" | fzf)"
case "$selected" in
"Mouse") toggle-bt-device E4:19:21:56:C8:70;;
"Headphones") toggle-bt-device 38:18:4C:D4:74:42;;
esac
-2
View File
@@ -1,2 +0,0 @@
pactl load-module module-jack-source connect=0
pactl load-module module-loopback source=jack_in
-5
View File
@@ -1,5 +0,0 @@
#!/usr/bin/env python
import yaml, json, sys
print(yaml.dump(json.load(open(sys.argv[1])), allow_unicode=True), end='')
-3
View File
@@ -1,3 +0,0 @@
#!/usr/bin/env bash
sudo pacman -Qtdq | sudo pacman -Rns -
-9
View File
@@ -1,9 +0,0 @@
#!/usr/bin/env bash
session="r5rs"
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
@@ -1,3 +0,0 @@
#!/usr/bin/env bash
sed -i -r 's/\[*\]\(\.\/([A-z-]*.md)/\]\(\1/g' *.md
-19
View File
@@ -1,19 +0,0 @@
#!/usr/bin/env bash
# Backup existing password databases and
# database keys (using date in filename date -u
# +%Y-%m-%d_%H-%M-%S)
RCLONE_REMOTE="proton-drive"
for f in "$HOME/doc"/*.{kdbx,kdbx.key}; do
[ -e "$f" ] || continue
echo "Backing up $f to $f-$(date -u +%Y-%m-%d_%H-%M-%S)"
cp "$f" "$f-$(date -u +%Y-%m-%d_%H-%M-%S)"
done
echo "Restoring KeePassXC databases and database keys"
rclone copyto \
"$RCLONE_REMOTE:doc"/ "$HOME/doc/" \
--progress \
--include "/*.{kdbx,kdbx.key}"
-23
View File
@@ -1,23 +0,0 @@
#!/usr/bin/env bash
function start() {
adb start-server
nohup gnirehtet autorun &> /dev/null &
printf "Started reverse tethering \n"
}
function stop() {
adb kill-server
gnirehtet stop
pkill gnirehtet
printf "Stopped reverse tethering \n"
}
case "$1" in
start) start ;;
stop) stop ;;
restart) stop; start ;;
*) printf "start | stop | restart \n" >&2
exit 1
;;
esac
-13
View File
@@ -1,13 +0,0 @@
#!/usr/bin/env bash
options="nl:en\nen:nl\nnl:fr\nfr:nl\nen:fr\nfr:en\nnl:de\nde:nl"
selected=$(echo -en "$options" | rofi -dmenu -p "source?:target?" -i)
# notify-send --app-name= -t 3000 "$(trans "$selected" -b "$(rofi -dmenu -p "$selected" &)" \
# | tr -d '\n' \
# | xclip -sel clip -f)"
translation="$(trans "$selected" -b "$(rofi -dmenu -p "$selected" &)" | tr -d '\n')"
echo -e "Copy" | rofi -p "translation" -dmenu -i -mesg "$translation" | xargs -I{} echo -n "$translation" | xclip -selection clipboard
-75
View File
@@ -1,75 +0,0 @@
#!/usr/bin/env bash
# Save (encrypted) password database to cloud storage
#
# Usage:
# save-passwddb - Save databases to cloud
# save-passwddb init - Restore databases from cloud (with single backup archive)
RCLONE_REMOTE="proton"
SOURCE_DIR="$HOME/doc"
TARGET_DIR="$RCLONE_REMOTE:doc"
BACKUP_DIR="$HOME/doc/bak"
function save_databases() {
if [ 0 -lt "$(ls $SOURCE_DIR/*.kdbx 2>/dev/null | wc -w)" ]; then
echo "[save] Saving KeePassXC databases and database keys"
rclone copy "$SOURCE_DIR" "$TARGET_DIR" \
--include "/*.{kdbx,kdbx.key}" \
--progress
echo "[save] Done"
else
echo "[save] No password database found, restore with:"
echo ""
echo " $0 init"
exit 1
fi
}
function backup_existing() {
mkdir -p "$BACKUP_DIR"
local timestamp=$(date +%Y%m%d-%H%M%S)
local backup_file="$BACKUP_DIR/passwddb_backup_${timestamp}.tar.gz"
echo "[backup] Creating backup archive: ${backup_file}"
tar -czf "$backup_file" -C "$SOURCE_DIR" $(find "$SOURCE_DIR" -maxdepth 1 -type f \( -name "*.kdbx" -o -name "*.kdbx.key" \) -printf "%f ")
echo "[backup] Backup complete"
}
function restore_databases() {
echo "[init] Checking for existing files..."
local existing_files=$(find "$SOURCE_DIR" -maxdepth 1 -type f \( -name "*.kdbx" -o -name "*.kdbx.key" \) -print)
if [ -n "$existing_files" ]; then
echo "[init] Found existing database files:"
echo "$existing_files" | while read -r file; do
echo " - $file"
done
read -p "[init] Create backup archive of existing files? [y/N] " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
backup_existing
fi
fi
echo "[init] Restoring KeePassXC databases and database keys"
mkdir -p "$SOURCE_DIR"
rclone copy "$TARGET_DIR" "$SOURCE_DIR" \
--include "*.{kdbx,kdbx.key}" \
--progress
echo "[init] Done"
}
case "$1" in
""|save)
save_databases
;;
init)
restore_databases
;;
*)
echo "Usage: $0 [init|save]"
exit 1
;;
esac
-22
View File
@@ -1,22 +0,0 @@
#!/usr/bin/env bash
# Anki review percentage for statusbar
num_to_review=200
# Get current card count from Anki
count=$(curl -s 127.0.0.1:8765 -X POST -d '{"action": "getNumCardsReviewedToday", "version": 6}' | jq '.result')
if [ -z "$count" ]
then
if [ -s /tmp/anki-reviews ]; then
true
else
echo "-1" > /tmp/anki-reviews
fi
else
echo "$count" > /tmp/anki-reviews
fi
num_reviews=$(cat /tmp/anki-reviews)
echo -n -e " Reviews: $(python3 -c "print('{:.2%}'.format($num_reviews/$num_to_review))") "
-13
View File
@@ -1,13 +0,0 @@
#!/usr/bin/env bash
cap="$(cat /sys/class/power_supply/BAT0/capacity)"
if [ "$cap" -ge 33 ];then
color="\x01"
elif [ "$cap" -ge 10 ]; then
color="\x03"
else
color="\x04"
fi
echo -n -e "$color $cap% \x01"
-3
View File
@@ -1,3 +0,0 @@
#!/usr/bin/env bash
echo -n -e "Week $(date '+%V') $(date '+%a %d %b %H:%M') "
-7
View File
@@ -1,7 +0,0 @@
#!/bin/sh
if grep -xq 'up' /sys/class/net/w*/operstate 2>/dev/null ; then
wifiicon="$(awk '/^\s*w/ { print "WiFi", int($3 * 100 / 70) "% " }' /proc/net/wireless)"
fi
printf " %s%s%s" "$wifiicon" "$(sed "s/down//;s/up/Ethernet/" /sys/class/net/e*/operstate 2>/dev/null)"
-3
View File
@@ -1,3 +0,0 @@
#!/usr/bin/env bash
[ -f "/home/h/.local/share/pomo" ] && cat /home/h/.local/share/pomo || echo ""
-4
View File
@@ -1,4 +0,0 @@
#!/usr/bin/env bash
# Render contents of $HOME/.project if present
[ -f "$HOME/.project" ] && cat "$HOME/.project" || echo ""
-7
View File
@@ -1,7 +0,0 @@
#!/usr/bin/env bash
num_done="$(task end.after:today status:completed count)"
num_pending="$(($(task count status:pending) + $num_done))"
num_waiting="$(($(task count status:waiting)))"
echo -e "Tasks: $num_done/$num_pending+$num_waiting"
-12
View File
@@ -1,12 +0,0 @@
#!/usr/bin/env sh
# Reference: https://github.com/mil-ad/polybar-wireguard
connected_interfaces=$(networkctl | grep -P "\d+ .* wireguard routable" -o | cut -d" " -f2)
if [ -n "$connected_interfaces" ];
then
for interface in $connected_interfaces; do echo "$interface"; done
else
exit 1
fi
-52
View File
@@ -1,52 +0,0 @@
#!/usr/bin/env python
import subprocess
import sys
DEFAULT_TEMPERATURE = 3500
try:
with open("/tmp/temperature", "r") as temp_file:
current_temperature = int(temp_file.read())
except FileNotFoundError:
current_temperature = DEFAULT_TEMPERATURE
# If no argument is given print the current temperature
if len(sys.argv) == 1:
print(current_temperature)
sys.exit(0)
elif len(sys.argv) != 2:
print(
"""
Usage:
screen-temperature
print current temperature
screen-temperature <temperature>
set screen temperature to <temperature>
screen-temperature <+|-><temperature>
increase or decrease screen temperature by <temperature>
"""
)
sys.exit(1)
temperature_change = sys.argv[1]
if temperature_change.startswith("+"):
new_temperature = current_temperature + int(temperature_change[1:])
elif temperature_change.startswith("-"):
new_temperature = current_temperature - int(temperature_change[1:])
else:
new_temperature = int(temperature_change)
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")
# Send notification
subprocess.run(["notify-send", str(new_temperature) + "K"])
except subprocess.CalledProcessError:
print("Error: could not set screen temperature.")
sys.exit(1)
-25
View File
@@ -1,25 +0,0 @@
#!/usr/bin/env bash
# Script to create script
if [ -z "$1" ]; then
echo "Usage: script <scriptname>"
exit
fi
path="$HOME/.bin/$1"
# Prevent overwriting existing script
set -o noclobber
# Create script
cat > "$path" << EOF
#!/usr/bin/env bash
EOF
chmod +x "$path"
# Open script in editor on line 3
"$EDITOR" +3 "$path"
-208
View File
@@ -1,208 +0,0 @@
#!/bin/bash
pac_list=(
at
automake
autopep8
base
base-devel
bash-completion
bash-language-server
bc
brightnessctl
chromium
dmidecode
entr
eslint_d
feh
firefox-developer-edition
firefox-tridactyl
firefox-tridactyl-native
firefox-tridactyl-native-debug
fzf
gcc
git
haskell-language-server
haskell-ormolu
hsetroot
htop
httpie
jq
keepassxc
kitty
lua-language-server
make
man-db
man-pages
neovim
nmap
nodejs-lts-jod
pacman-contrib
pandoc-cli
pandoc-crossref
parallel
pass
pkgbuild-language-server
pnpm
ripgrep
sshfs
stylelint
svelte-language-server
tailwindcss-language-server
task
tldr
tmux
tmuxp
tree
tree-sitter-cli
ts-node
typescript-language-server
unzip
vim-language-server
wget
xclip
yaml-language-server
)
aurpac_list=(
hadolint-bin
nvm
nvimpager
paru
tmux-bash-completion-git
ttf-iosevka-term-ss08
vim-plug
vtsls
xbanish
)
install() {
local package="$1"
if pacman -Qi "$package" &> /dev/null; then
echo "$package is already installed"
else
echo "Installing " "$package"
sudo pacman -S --noconfirm --needed "$package"
fi
}
aurpac() {
git clone "https://aur.archlinux.org/$1.git" "$HOME/.build/$1"
}
install_packages() {
announce "Installing packages"
local count
for pac in "${pac_list[@]}" ; do
count=$((count+1))
install "$pac";
done
echo "$count packages installed"
}
install_dotfiles() {
announce "Installing dotfiles"
origin="https://git.hektormisplon.xyz/hektor/dots"
git clone "$origin" "$HOME/dots"
cp -r "$HOME/dots/.git" "$HOME/.git"
git --git-dir="$HOME/.git" config --local status.showUntrackedFiles no
git --git-dir="$HOME/.git" stash -m "[dots]"
git --git-dir="$HOME/.git" stash apply
git --git-dir="$HOME/.git" restore "$HOME"
}
install_aur_packages() {
announce "Installing AUR packages"
local count
for package in "${aurpac_list[@]}" ; do
if pacman -Qi "$1" &> /dev/null; then
echo "$1 is already installed"
else
count=$((count+1))
aurpac "$package" && makepkg -si -D "$HOME/.build/$package"
fi
done
echo "$count AUR packages installed"
}
setup_neovim() {
announce "Setting up NeoVim"
git clone --depth=1 https://github.com/savq/paq-nvim.git \
"${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/pack/paqs/start/paq-nvim
}
setup_keyboard() {
announce "Setting up keyboard"
install "interception-tools"
install "interception-caps2esc"
udevmon_config_contents="\
- JOB: intercept -g \$DEVNODE | caps2esc -m 1 | uinput -d \$DEVNODE
DEVICE:
EVENTS:
EV_KEY: [KEY_CAPSLOCK]"
if [ -f /etc/interception/udevmon.yaml ] && diff -q <(echo "$udevmon_config_contents") /etc/interception/udevmon.yaml; then
echo "udevmon config already exists"
echo "$udevmon_config_contents"
elif [ -f /etc/interception/udevmon.yaml ]; then
echo "interception udevmon.yaml already exists"
cat /etc/interception/udevmon.yaml
echo "verify if this config matches the one below"
echo "$udevmon_config_contents"
else
echo "interception udevmon.yaml does not exist, creating one"
sudo bash -c "echo '$udevmon_config_contents' > /etc/interception/udevmon.yaml"
fi
sudo systemctl enable --now udevmon.service
if pgrep -x caps2esc > /dev/null; then
echo "caps2esc is already running"
else
caps2esc -m 1
fi
}
configure_gnome() {
announce "Configuring Gnome"; setup-gnome
}
setup_firewall() {
announce "Configuring firewalld"
install firewalld
sudo systemctl enable --now firewalld
}
setup_docker() {
announce "Setting up Docker"
install docker
install docker-compose
sudo systemctl enable --now docker.socket
sudo usermod -aG docker "$USER"
echo "User added to docker group, please restart your session"
}
announce() {
local message="$1"
echo " "
echo "[dots] $message"
echo " "
}
confirm() {
local question="$1"
read -r -p "[dots] $question? [y/N]" -n 1
case "$REPLY" in y|Y ) "$2";; * ) echo "Skipping"; esac
}
printf '%s\n' "${pac_list[@]}"
confirm "Install these packages? " install_packages
printf '%s\n' "${aurpac_list[@]}"
confirm "Install these AUR packages? " install_aur_packages
confirm "Setup NeoVim? " setup_neovim
confirm "Install dotfiles? " install_dotfiles
confirm "Setup keyboard? " setup_keyboard
if pacman -Qi "gdm" &> /dev/null; then
confirm "Configure Gnome? " configure_gnome
fi
confirm "Setup firewall? " setup_firewall
confirm "Setup Docker? " setup_docker
-5
View File
@@ -1,5 +0,0 @@
#!/usr/bin/env bash
ssh_hosts="$(grep -E 'Host [a-z0-9\-]*$' ~/.ssh/config | awk '{print $2}')"
echo "$ssh_hosts"
-26
View File
@@ -1,26 +0,0 @@
#!/usr/bin/env bash
set -euf -o pipefail
VIM=${VIM:-"vim"}
TMUX=${TMUX:-"tmux"}
FILE=${FILE:-"$(date +%F).tidal"}
SESSION=${SESSION:-"tidal"}
TIDAL_BOOT_PATH=${TIDAL_BOOT_PATH:-""}
GHCI=${GHCI:-""}
args=${*:-$FILE}
# attach if session else create
$TMUX attach-session -t "$SESSION" || $TMUX new-session -s "$SESSION" \; \
split-window -h -t "$SESSION" \; \
send-keys -t 0 "$VIM $args" C-m \; \
send-keys -t 1 "TIDAL_BOOT_PATH=$TIDAL_BOOT_PATH GHCI=$GHCI tidal" C-m \; \
new-window -t "$SESSION":2 -n SuperDirt \; \
send-keys -t 0 "jack_control start && sclang ~/dev/live/scripts/start.scd" C-m \; \
select-window -t 1 \; \
resize-pane -t 1 -x 100 \; \
resize-pane -t 0 -x 125 \; \
select-pane -t 0
-13
View File
@@ -1,13 +0,0 @@
#!/usr/bin/env bash
session="main"
tmux attach-session -t $session || tmux new-session -s $session \; \
rename-window task \; \
send-keys -t 1 "task" C-m \; \
new-window -n zk \; \
send-keys -t 2 "nvim $ZK_PATH/index.md" C-m \; \
new-window -n term \; \
new-window -n music \; \
send-keys -t 4 "echo 'TODO: open music player'" C-m \; \
select-window -t 1 \;
-11
View File
@@ -1,11 +0,0 @@
#!/usr/bin/env bash
status="$(bluetoothctl info "$1" | grep Connected | cut -f 2 -d ':' | cut -f 2 -d ' ')"
if [ "$status" == "yes" ]
then
bluetoothctl disconnect "$1"
else
trust "$1"
bluetoothctl connect "$1"
fi
-3
View File
@@ -1,3 +0,0 @@
#!/usr/bin/env bash
sudo pacman -Syu
View File
Whitespace-only changes.
-1
View File
@@ -1 +0,0 @@
[{ "key": "ctrl+b", "command": "workbench.action.toggleSidebarVisibility" }]
-114
View File
@@ -1,114 +0,0 @@
{
/* view */
"workbench.statusBar.visible": true,
"workbench.activityBar.visible": false,
"breadcrumbs.enabled": false,
"editor.minimap.enabled": false,
"window.menuBarVisibility": "hidden",
"workbench.editor.showTabs": false,
"workbench.editor.showIcons": false,
/* font */
"editor.fontSize": 20,
"editor.fontLigatures": true,
"editor.fontFamily": "Iosevka",
"terminal.integrated.fontSize": 20,
/* editor */
"editor.lineNumbers": "relative",
"editor.glyphMargin": false,
"terminal.integrated.allowMnemonics": false,
"workbench.colorCustomizations": {
"editorGroup.emptyBackground": "#0c0c0c",
"scrollbar.shadow": "#000",
"widget.shadow": "#000",
"editorWidget.background": "#0c0c0c",
"editor.background": "#0c0c0c",
"sideBar.background": "#0c0c0c",
"editorGroupHeader.noTabsBackground": "#0c0c0c",
"scrollbarSlider.background": "#222",
"scrollbarSlider.activeBackground": "#222",
"scrollbarSlider.hoverBackground": "#333",
"statusBar.noFolderBackground": "#0c0c0c",
"statusBar.border": "#0c0c0c",
"statusBar.background": "#0c0c0c",
"statusBar.foreground": "#555"
},
"editor.tokenColorCustomizations": {
"comments": "#555",
"functions": "#aaa",
"numbers": "#fff",
"strings": "#fff",
"types": "#aaa",
"variables": "#aaa",
"keywords": "#aaa"
},
/* vim keybindings */
"vim.incsearch": true,
"vim.hlsearch": true,
"vim.leader": "<space>",
"vim.normalModeKeyBindingsNonRecursive": [
/* quick quit */
{
"before": ["<leader>", "q"],
"commands": [":q"]
},
{
"before": ["<leader>", "w"],
"commands": [":w"]
},
{
"before": ["<leader>", "Q"],
"commands": [":q!"]
},
{
"before": ["<leader>", "W"],
"commands": [":w!"]
},
/* split */
{
"before": ["<leader>", "s", "s"],
"commands": [":sp"]
},
{
"before": ["<leader>", "s", "v"],
"commands": [":vs"]
},
/* clear search highlight */
{
"before": ["<leader>", "<leader>"],
"commands": [":nohl"]
}
],
"vim.insertModeKeyBindings": [
/* quick exit insert */
{
"before": ["j", "j"],
"after": ["<Esc>"]
}
],
"vim.handleKeys": {
"<C-a>": false,
"<C-f>": false
},
/* eslint & prettier */
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true
},
"editor.codeActionsOnSave": {
"source.fixAll": true
},
"workbench.colorTheme": "Absolute Black",
"window.zoomLevel": 1,
"javascript.updateImportsOnFileMove.enabled": "always"
}
-1
View File
@@ -1 +0,0 @@
Xcursor.size: 16
-57
View File
@@ -1,57 +0,0 @@
#!/bin/sh
userresources=$HOME/.config/X11/Xresources
usermodmap=$HOME/.config/X11/Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap
if [ -f $sysresources ]; then xrdb -merge $sysresources; fi
if [ -f $sysmodmap ]; then xmodmap $sysmodmap; fi
if [ -f "$userresources" ]; then xrdb -merge "$userresources"; fi
if [ -f "$usermodmap" ]; then xmodmap "$usermodmap"; fi
# start some nice programs
if [ -d /etc/X11/xinit/xinitrc.d ] ; then
for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
[ -x "$f" ] && . "$f"
done
unset f
fi
# ______________________________
xset -b # disable bell
xset r rate 200 30 # adjust typematic delay & rate
# Shared
xbindkeys -f "$HOME"/.config/xbindkeys/config
xbanish &
redshift -o -O "$(cat /tmp/temperature)" & # Run redshift in one shot mode
# DWM
# dwmblocks &
# udiskie &
# # No compositor
# # xsetroot -solid "#0a0a0a"
# # With compositor
# # hsetroot -solid "#0a0a0a"
# # picom &
# # execute dwm in a loop
# while true; do
# dwm 2> ~/.dwm.log
# done
# Openbox
# # udiskie --tray &
# # plank &
# # picom &
# # hsetroot -solid "#555555"
# # openbox
# Xmonad
xsetroot -solid "#0a0a0a"
xsetroot -cursor_name left_ptr
picom &
trayer --edge top --align right --SetDockType true --SetPartialStrut true \
--expand true --width 10 --transparent true --tint 0x111111 --height 25 &
exec xmonad
-34
View File
@@ -1,34 +0,0 @@
[global]
geometry="0-0+24"
monitor=0
follow=keyboard
indicate_hidden=yes
notification_height=0
padding=8
horizontal_padding=8
frame_width=1
frame_color="#333"
separator_height=1
idle_threshold=120
font=Iosevka Term SS08 12
markup=full
format="%s\n%b"
dmenu=/usr/bin/dmenu -p dunst:
browser=/usr/bin/brave -new-tab
verbosity=info
[urgency_low]
background="#111"
foreground="#aaa"
timeout=10
[urgency_normal]
background="#111"
foreground="#aaa"
timeout=10
[urgency_critical]
background="#111"
foreground="#fff"
frame_color="#f00"
timeout=0
-12
View File
@@ -1,12 +0,0 @@
prev_img h
next_img l
scroll_left L
scroll_right H
scroll_up J
scroll_down K
zoom_in j
zoom_out k
zoom_fit z
zoom_default =
mirror bar
close q Q
-3
View File
@@ -1,3 +0,0 @@
feh \
-B black \
--auto-zoom
-36
View File
@@ -1,36 +0,0 @@
[General]
checkForUpdates=false
disabledTrayIcon=true
uiColor=#cccccc
fontFamily=Inter
drawColor=#ffffff
savePath=/home/h/doc/clips
copyPathAfterSave=true
saveLastRegion=true
saveAsFileExtension=png
userColors=picker, #800000, #ff0000, #ffff00, #00ff00, #00ffff, #0000ff, #ffffff, #000000
[Shortcuts]
TYPE_ARROW=a
TYPE_CIRCLE=o
TYPE_CIRCLECOUNT=Shift+o
TYPE_COMMIT_CURRENT_TOOL=Ctrl+Return
TYPE_COPY=y
TYPE_DELETE_CURRENT_TOOL=
TYPE_DRAWER=l
TYPE_EXIT=q
TYPE_IMAGEUPLOADER=
TYPE_MARKER=m
TYPE_MOVESELECTION=Ctrl+M
TYPE_MOVE_DOWN=j
TYPE_MOVE_LEFT=h
TYPE_MOVE_RIGHT=l
TYPE_MOVE_UP=k
TYPE_OPEN_APP=o
TYPE_PENCIL=d
TYPE_PIN=Enter
TYPE_PIXELATE=p
TYPE_RECTANGLE=r
TYPE_REDO=Ctrl+r
TYPE_RESIZE_DOWN=Shift+j
TYPE_RESIZE_LEFT=Shift+h
-16
View File
@@ -1,16 +0,0 @@
git_protocol: ssh
prompt: enabled
aliases:
co: pr checkout
c: repo clone
f: repo fork
rc: repo create
rv: repo view
re: repo edit
rm: repo remove
rn: repo rename
lr: repo list
li: issue list
al: alias
al-: alias delete
version: "1"
-5
View File
@@ -1,5 +0,0 @@
[Settings]
gtk-font-name=Inter 12
gtk-application-prefer-dark-theme=true
gtk-icon-theme-name=Adwaita
gtk-theme-name=Adwaita
File diff suppressed because it is too large. Load diff
-32
View File
@@ -1,32 +0,0 @@
[General]
ConfigVersion=2
[Browser]
CustomProxyLocation=
Enabled=true
[GUI]
ApplicationTheme=dark
CompactMode=false
HidePreviewPanel=false
HideToolbar=false
MinimizeOnClose=true
MinimizeToTray=true
ShowTrayIcon=true
TrayIconAppearance=colorful
[KeeShare]
Active="<?xml version=\"1.0\"?><KeeShare><Active/></KeeShare>\n"
Foreign="<?xml version=\"1.0\"?>\n<KeeShare xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n <Foreign/>\n</KeeShare>\n"
Own="<?xml version=\"1.0\"?><KeeShare><PrivateKey>MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC9Ji74dnjo0qzbUFKEoNnMHsdX7mBXuJcu8zsl7vfkKLiAGIQiP9BQc/JnFr28W92fQz8uXVtm7NgnKJQkT7wzFyBdspmNDzosS58EIQVKe5p+uMaaGZ5z6j1DtLCFo7PLCnhasBluC0W1+37s7NtRD6bFo1r6QHupY63mBsSvJhAcmS+6bM7xS7PcK0WTVTsK1MWYZLOkYMWQ0AW/t4PZfqeKvalqheiR8oUIDeY7+7fqvQr5SAhL0yinbtaqWmPqcd5QWyPqVkbKclw4Uecw+JW+yR9uEOP9butP74r36LUUfsTJHE2/sB2KJFRN/aUm2ZEYhzexMYSfgnrq0KCLAgMBAAECggEACV8N7rN39BkUBV2qaPXLNKjFuZ6O2WnE28ejQ5LeZ0h5M6eDTGsa+BF2jhL7XYyzo0NiqvpnH+dWIkKJbG8i5OkdamcB4pJBkJZCj6LPL0yGcAbZmCLyzc1qMaOPJ1/f9YxUQDH/YItgbc7DEBwAFbkPyzT3ufRd7BuLLx1gu0iypHhBok9kXA4WgkUihLNXXVvSIGcVy+q9wpgOiw5jLC79qwqIp39Tlt6PKryODulqWIeoeSIgAu5tgUy4O3He6AZwqBprIfJSiJOwfdBd8FchQJQDgl0fyDR10VIUNbjgm+kxWssq4oNJ7+2n14Gdfwpy2K7oO9DYeqjBrv2p4QKBgQDqY8/5ufsJ9hKhQRX3vju+FEDLKvjjKH7/6puDwcvC1GgvshQSvCo9ZVIajwSmEoWq2LTDiPlUPFINKnALQiHCbRfNeS1Tws4cK4AAZnR+CGKkox9J5MWCDVzI2/82R9/9ZX4OO+As5+Od503Grmy+Zi0Redm+r4aK04gm3LfqGwKBgQDOlpOXFyYbb473TFkf9ZfyETZGkjlCzf4uPwPuJ3njWZfwPE2Gb+quZDLSmYp9JhzIFoapnQrjSFCVyzBYIIuz3jipb5MbQxc6FPSjw0pPowWdPkEL1CT5mpZFojop+I/TnEEG+Lv039O3cGlL2zagiBHRw0ediD6z0vnoOBeKUQKBgQDjlJBuKC9gp6XFHp4G05XMZHvZCNtqLHrLX28qSjPe80BJ9z1YR4032bYThYP9AAT7MripFskICh2dHPR3afm/fw9aeWsSZhab8XyyZsh7SwcEVkJeDBvdv720ZS9y8+y/bBkuFuL+lxVBz0GMRPXfFPRzgH10kZcwGl2bZjnIuwKBgQCVabQu95AZEbM9yps/ERom+ineGo2Ncnyep/bIvQZb1wWbu5F6ZOE/5boYNPJDl1gDor8cVzdzsG6QGBfL9SX1HgivCsJDWl+nI1bYRjsto8NAubDDxFhFqnd6v1z/1AT50C37w9P0xBlUt9mAAnjc2+y/YFQgbFSlLDaQrFjiMQKBgFJrLF21Uk6ALZa4R0eOyLKhuagw3uxmNvccNG8VL5DwYVCUS7/8SkPhO5yvbcA87Y1VnM20tUr047K4U83uFNxBnPMmxlhMsxtqjw+VV6Us6uh2ASaLZ9iP9iwkn5e37WLWX+XsewoGrW/YsONwIT0dnZDPRbxhPdJn8azSJqQr</PrivateKey><PublicKey><Signer>h</Signer><Key>MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC9Ji74dnjo0qzbUFKEoNnMHsdX7mBXuJcu8zsl7vfkKLiAGIQiP9BQc/JnFr28W92fQz8uXVtm7NgnKJQkT7wzFyBdspmNDzosS58EIQVKe5p+uMaaGZ5z6j1DtLCFo7PLCnhasBluC0W1+37s7NtRD6bFo1r6QHupY63mBsSvJhAcmS+6bM7xS7PcK0WTVTsK1MWYZLOkYMWQ0AW/t4PZfqeKvalqheiR8oUIDeY7+7fqvQr5SAhL0yinbtaqWmPqcd5QWyPqVkbKclw4Uecw+JW+yR9uEOP9butP74r36LUUfsTJHE2/sB2KJFRN/aUm2ZEYhzexMYSfgnrq0KCLAgMBAAECggEACV8N7rN39BkUBV2qaPXLNKjFuZ6O2WnE28ejQ5LeZ0h5M6eDTGsa+BF2jhL7XYyzo0NiqvpnH+dWIkKJbG8i5OkdamcB4pJBkJZCj6LPL0yGcAbZmCLyzc1qMaOPJ1/f9YxUQDH/YItgbc7DEBwAFbkPyzT3ufRd7BuLLx1gu0iypHhBok9kXA4WgkUihLNXXVvSIGcVy+q9wpgOiw5jLC79qwqIp39Tlt6PKryODulqWIeoeSIgAu5tgUy4O3He6AZwqBprIfJSiJOwfdBd8FchQJQDgl0fyDR10VIUNbjgm+kxWssq4oNJ7+2n14Gdfwpy2K7oO9DYeqjBrv2p4QKBgQDqY8/5ufsJ9hKhQRX3vju+FEDLKvjjKH7/6puDwcvC1GgvshQSvCo9ZVIajwSmEoWq2LTDiPlUPFINKnALQiHCbRfNeS1Tws4cK4AAZnR+CGKkox9J5MWCDVzI2/82R9/9ZX4OO+As5+Od503Grmy+Zi0Redm+r4aK04gm3LfqGwKBgQDOlpOXFyYbb473TFkf9ZfyETZGkjlCzf4uPwPuJ3njWZfwPE2Gb+quZDLSmYp9JhzIFoapnQrjSFCVyzBYIIuz3jipb5MbQxc6FPSjw0pPowWdPkEL1CT5mpZFojop+I/TnEEG+Lv039O3cGlL2zagiBHRw0ediD6z0vnoOBeKUQKBgQDjlJBuKC9gp6XFHp4G05XMZHvZCNtqLHrLX28qSjPe80BJ9z1YR4032bYThYP9AAT7MripFskICh2dHPR3afm/fw9aeWsSZhab8XyyZsh7SwcEVkJeDBvdv720ZS9y8+y/bBkuFuL+lxVBz0GMRPXfFPRzgH10kZcwGl2bZjnIuwKBgQCVabQu95AZEbM9yps/ERom+ineGo2Ncnyep/bIvQZb1wWbu5F6ZOE/5boYNPJDl1gDor8cVzdzsG6QGBfL9SX1HgivCsJDWl+nI1bYRjsto8NAubDDxFhFqnd6v1z/1AT50C37w9P0xBlUt9mAAnjc2+y/YFQgbFSlLDaQrFjiMQKBgFJrLF21Uk6ALZa4R0eOyLKhuagw3uxmNvccNG8VL5DwYVCUS7/8SkPhO5yvbcA87Y1VnM20tUr047K4U83uFNxBnPMmxlhMsxtqjw+VV6Us6uh2ASaLZ9iP9iwkn5e37WLWX+XsewoGrW/YsONwIT0dnZDPRbxhPdJn8azSJqQr</Key></PublicKey></KeeShare>\n"
QuietSuccess=true
[PasswordGenerator]
AdditionalChars=
ExcludedChars=
Length=40
Logograms=true
WordCount=9
[SSHAgent]
Enabled=true
-147
View File
@@ -1,147 +0,0 @@
#: Fonts {{{
font_family Iosevka Term SS08
bold_font auto
italic_font auto
bold_italic_font auto
font_size 12.0
disable_ligatures never
# }}}
#: Cursor {{{
cursor_shape block
cursor_blink_interval 0
#: }}}
#: Scrollback {{{
scrollback_lines 8192
scrollbar scrolled
scrollback_pager_history_size 1024
#: }}}
#: Mouse {{{
mouse_hide_wait 0.0
paste_actions quote-urls-at-prompt
#: }}}
#: Performance tuning {{{
repaint_delay 8
input_delay 2
#: }}}
#: Terminal bell {{{
enable_audio_bell yes
window_alert_on_bell yes
#: }}}
#: Window layout {{{
remember_window_size no
remember_window_position no
enabled_layouts *
hide_window_decorations yes
#: }}}
#: Advanced {{{
notify_on_cmd_finish unfocused
#: }}}
#: OS specific tweaks {{{
linux_display_server auto
wayland_enable_ime no
#: }}}
#: Keyboard shortcuts {{{
kitty_mod ctrl+shift
map kitty_mod+c copy_to_clipboard
map kitty_mod+v paste_from_clipboard
map cmd+v
# map kitty_mod+o pass_selection_to_program
# map kitty_mod+o pass_selection_to_program firefox
# map kitty_mod+y new_window less @selection
map kitty_mod+z scroll_to_prompt -1
map kitty_mod+x scroll_to_prompt 1
map kitty_mod+h show_scrollback
# map f1 launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay less +G -R
#:: For more details on piping screen and buffer contents to external
#:: programs, see launch <https://sw.kovidgoyal.net/kitty/launch/>.
# map kitty_mod+g show_last_command_output
# map kitty_mod+enter launch --cwd=current
# map cmd+enter
# map ctrl+n launch --location=neighbor
# map ctrl+f launch --location=first
map kitty_mod+n
map cmd+n
map kitty_mod+w
map shift+cmd+d
map kitty_mod+]
map kitty_mod+[
map kitty_mod+f
map kitty_mod+b
map kitty_mod+`
map kitty_mod+r
map cmd+r
map kitty_mod+1
map cmd+1
map kitty_mod+2
map cmd+2
map kitty_mod+3
map cmd+3
map kitty_mod+4
map cmd+4
map kitty_mod+5
map cmd+5
map kitty_mod+6
map cmd+6
map kitty_mod+7
map cmd+7
map kitty_mod+8
map cmd+8
map kitty_mod+9
map cmd+9
map kitty_mod+0
# map kitty_mod+c new_tab # FIXME: conflict with 'copy'
map cmd+t
map kitty_mod+q
map cmd+w
map kitty_mod+.
map kitty_mod+,
map kitty_mod+alt+t
map shift+cmd+i
map kitty_mod+f1
map kitty_mod+f11
map ctrl+cmd+f
map kitty_mod+f10
map opt+cmd+s
map kitty_mod+u kitten unicode_input
map ctrl+cmd+space
map kitty_mod+/ kitty_shell window
map kitty_mod+f5
map kitty_mod+r load_config_file
map shift+cmd+/
map cmd+h
map opt+cmd+
map cmd+m
map cmd+q
#: }}}
include ./nvim.conf
-8
View File
@@ -1,8 +0,0 @@
allow_remote_control socket-only
listen_on unix:/tmp/kitty
shell_integration enabled
action_alias kitty_scrollback_nvim kitten ~/.local/share/kitty-scrollback.nvim/python/kitty_scrollback_nvim.py
map kitty_mod+h kitty_scrollback_nvim
map kitty_mod+g kitty_scrollback_nvim --config ksb_builtin_last_cmd_output
mouse_map ctrl+shift+right press ungrabbed combine : mouse_select_command_output : kitty_scrollback_nvim --config ksb_builtin_last_visited_cmd_output
-20
View File
@@ -1,20 +0,0 @@
[Default Applications]
inode/x-empty=nvim.desktop
inode/directory=nvim.desktop
text/plain=nvim.desktop
text/html=firefoxdeveloperedition.desktop
image/gif=feh.desktop
image/jpeg=feh.desktop
image/png=feh.desktop
video/mp4=mpv.desktop
video/webm=mpv.desktop
model/stl=com.ultimaker.cura.desktop
application/pdf=org.pwmt.zathura.desktop
x-scheme-handler/msteams=teams-for-linux.desktop
x-scheme-handler/web+stremio=firefox.desktop
x-scheme-handler/http=firefoxdeveloperedition.desktop
x-scheme-handler/https=firefoxdeveloperedition.desktop
x-scheme-handler/chrome=firefoxdeveloperedition.desktop
x-scheme-handler/sidequest=SideQuest.desktop
x-scheme-handler/mailto=firefox.desktop
x-scheme-handler/webcal=firefox.desktop
Binary file not shown.
-15
View File
@@ -1,15 +0,0 @@
l seek +5
h seek -5
k seek +30
j seek -30
+ add video-zoom 0.1
- add video-zoom -0.1
= set video-zoom 0; set video-pan-x 0; set video-pan-y 0
H add video-pan-x 0.01
L add video-pan-x -0.01
K add video-pan-y 0.01
J add video-pan-y -0.01
m cycle mute
-16
View File
@@ -1,16 +0,0 @@
vo=gpu
profile=gpu-hq
hwdec=auto
msg-color=yes
cursor-autohide=300
cursor-autohide-fs-only=yes
save-position-on-quit=yes
keep-open=yes
# Custom osc
osc=no
cursor-autohide=3500
osd-bar=no
osc-vidscale=no
File diff suppressed because it is too large. Load diff
-45
View File
@@ -1,45 +0,0 @@
default_keybindings = false
flip_status_indicators = true
library_tabs = ["tracks", "albums", "artists", "playlists", "browse"] # remove podcasts tab
[keybindings]
"Enter" = "play"
" " = "playpause"
"S" = "stop"
"<" = "seek -10000"
">" = "seek +10000"
"H" = "previous"
"L" = "next"
"r" = "repeat"
"z" = "shuffle"
"d" = "delete"
"s" = "save"
"O" = "open current"
"o" = "open selected"
"Backspace" = "back"
"A" = "goto artist"
"a" = "goto album"
"q" = "queue"
"J" = "shift down 1"
"K" = "shift up 1"
"c" = "clear"
"=" = "volup 1"
"-" = "voldown 1"
"1" = "focus queue"
"2" = "focus search"
"3" = "focus library"
"4" = "focus cover"
"h" = "move left 1"
"j" = "move down 1"
"k" = "move up 1"
"l" = "move right 1"
"g" = "move top"
"G" = "move bottom"
"t" = "sort added d"
"T" = "sort title a"
"y" = "share current"
"Y" = "share selected"
"U" = "update"
backend="pipe"
notify="false"
-39
View File
@@ -1,39 +0,0 @@
auto-reload yes
reload-threads 100
# color background color240 black
# color listnormal color238 black
# color listfocus white black
# color listnormal_unread color240 black bold
# color listfocus_unread default black bold
# color info default black
# color article default black
bind-key h quit articlelist
bind-key h quit article
bind-key h quit tagselection
bind-key h quit feedlist
bind-key j down feedlist
bind-key j down tagselection
bind-key j next articlelist
bind-key j down article
bind-key J next-feed articlelist
bind-key k up feedlist
bind-key k prev articlelist
bind-key k up tagselection
bind-key K prev-feed articlelist
bind-key k up article
bind-key l open articlelist
bind-key l open feedlist
bind-key l open tagselection
bind-key G end
bind-key g home
text-width 80
browser "brave"
macro m set browser "mpv %u"; open-in-browser ; set browser "brave"
show-title-bar false
show-keymap-hint false
-1
View File
@@ -1 +0,0 @@
experimental-features = nix-command flakes
@@ -1,3 +0,0 @@
require("auto-session").setup({
auto_session_enabled = vim.env.KITTY_SCROLLBACK_NVIM ~= "true", -- See kitty-scrollback.nvim
})
@@ -1,30 +0,0 @@
require("conform").setup({
format_after_save = {
lsp_fallback = false,
async = false,
timeout_ms = 500,
},
formatters_by_ft = {
awk = { "awk" },
bash = { "shellcheck" },
c = { "clang-format" },
cpp = { "clang-format" },
css = { "prettierd", "prettier", stop_after_first = true },
gdscript = { "gdformat" },
haskell = { "ormolu" },
html = { "prettierd", "prettier", stop_after_first = true },
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 },
-- yaml = { "prettierd", "prettier", stop_after_first = true },
},
})
@@ -1,7 +0,0 @@
require("lsp_lines").setup()
vim.diagnostic.config({
virtual_text = false,
})
vim.keymap.set("", "<leader>dd", require("lsp_lines").toggle, { desc = "Toggle lsp_lines" })
@@ -1,196 +0,0 @@
require("neodev").setup() -- should setup before lspconfig
local cmp_nvim_lsp = require("cmp_nvim_lsp")
local capabilities = cmp_nvim_lsp.default_capabilities()
local servers = {
bashls = {},
eslint = {
settings = {
--Assuming prettier/prettierd will handle formatting, we don't need to see these errors
rulesCustomizations = {
{ rule = "prettier/prettier", severity = "off" },
},
format = false,
},
},
emmet_language_server = {},
gdscript = {},
helm_ls = {
filetypes = { "yaml", "helm", "yaml.helm-values" },
},
hls = { filetypes = { "haskell", "lhaskell", "cabal" } },
html = {},
jsonls = {
settings = {
json = {
schemas = require("schemastore").json.schemas(),
validate = { enable = true },
},
},
},
lua_ls = {
on_init = function(client)
if client.workspace_folders then
local path = client.workspace_folders[1].name
if
path ~= vim.fn.stdpath("config")
and (vim.uv.fs_stat(path .. "/.luarc.json") or vim.uv.fs_stat(path .. "/.luarc.jsonc"))
then
return
end
end
client.config.settings.Lua = vim.tbl_deep_extend("force", client.config.settings.Lua, {
runtime = {
version = "LuaJIT",
path = {
"lua/?.lua",
"lua/?/init.lua",
},
},
workspace = {
checkThirdParty = false,
library = {
vim.env.VIMRUNTIME,
},
},
})
end,
settings = {
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 = {},
pyright = {},
svelte = {
plugin = {
svelte = {
defaultScriptLanguage = "ts",
},
},
},
tailwindcss = {},
ts_ls = {},
-- vtsls = {
-- maxTsServerMemory = 16384,
-- filetypes = {
-- "javascript",
-- "javascriptreact",
-- "javascript.jsx",
-- "typescript",
-- "typescriptreact",
-- "typescript.tsx",
-- },
-- settings = {
-- complete_function_calls = true,
-- vtsls = {
-- enableMoveToFileCodeAction = true,
-- autoUseWorkspaceTsdk = true,
-- experimental = {
-- completion = {
-- enableServerSideFuzzyMatch = true,
-- },
-- },
-- },
-- typescript = {
-- updateImportsOnFileMove = { enabled = "always" },
-- suggest = {
-- completeFunctionCalls = true,
-- },
-- inlayHints = {
-- enumMemberValues = { enabled = true },
-- functionLikeReturnTypes = { enabled = true },
-- parameterNames = { enabled = "literals" },
-- parameterTypes = { enabled = true },
-- propertyDeclarationTypes = { enabled = true },
-- variableTypes = { enabled = false },
-- },
-- },
-- },
-- },
yamlls = {
settings = {
yaml = {
schemaStore = {
-- You must disable built-in schemaStore support if you want to use
-- this plugin and its advanced options like `ignore`.
enable = false,
-- Avoid TypeError: Cannot read properties of undefined (reading 'length')
url = "",
},
schemas = require("schemastore").yaml.schemas(),
},
},
},
}
for server, config in pairs(servers) do
config.capabilities = capabilities
vim.lsp.config(server, config)
end
vim.lsp.enable(vim.tbl_keys(servers))
vim.api.nvim_create_autocmd("LspAttach", {
callback = function(e)
local opts = { buffer = e.bufnr }
local set = vim.keymap.set
local lsp_buf = vim.lsp.buf
set("n", "gD", lsp_buf.declaration, opts)
set("n", "gd", lsp_buf.definition, opts)
set("n", "K", lsp_buf.hover, opts)
set("n", "gi", lsp_buf.implementation, opts)
set("n", "<C-k>", lsp_buf.signature_help, opts)
set("n", "<space>wa", lsp_buf.add_workspace_folder, opts)
set("n", "<space>wr", lsp_buf.remove_workspace_folder, opts)
set("n", "<space>wl", function()
print(vim.inspect(lsp_buf.list_workspace_folders()))
end, opts)
set("n", "<space>D", lsp_buf.type_definition, opts)
set("n", "<space>rn", lsp_buf.rename, opts)
set({ "n", "v" }, "<space>ca", lsp_buf.code_action, opts)
set("n", "gr", lsp_buf.references, opts)
-- Taken from https://blog.viktomas.com/graph/neovim-lsp-rename-normal-mode-keymaps/
set("n", "<leader>r", vim.lsp.buf.rename)
-- function()
-- -- Automatically switch to `cmdwin` for normal mode renaming
-- -- (normally you would have to press <C-f> to open the `cmdwin`)
-- vim.api.nvim_create_autocmd({ "CmdlineEnter" }, {
-- callback = function()
-- local key = vim.api.nvim_replace_termcodes("<C-f>", true, false, true)
-- vim.api.nvim_feedkeys(key, "c", false)
-- vim.api.nvim_feedkeys("0", "n", false)
-- return true
-- end,
-- })
-- vim.lsp.buf.rename()
-- end, bufoptsWithDesc("Rename symbol")
-- )
end,
})
@@ -1,35 +0,0 @@
vim.env.ESLINT_D_PPID = vim.fn.getpid()
local eslint_linter = "eslint_d"
require("lint").linters_by_ft = {
bash = { "shellcheck" },
c = { "clangtidy", "flawfinder" },
cmake = { "cmakelint" },
cpp = { "clangtidy", "flawfinder" }, -- "cpplint", "cppcheck", "flawfinder"
css = { "stylelint" },
dockerfile = { "hadolint" },
editorconfig = { "editorconfig-checker" },
haskell = { "hlint" },
-- html = { "htmlhint" },
-- javascript = { eslint_linter },
-- javascriptreact = { eslint_linter },
gdscript = { "gdlint" },
latex = { "chktex" },
-- lua = { "luacheck", "selene" },
make = { "checkmake" },
-- pandoc = { "proselint", "woke" },
-- python = { "pylint" },
sh = { "shellcheck" },
svelte = { eslint_linter },
systemd = { "systemdlint" },
-- typescript = { eslint_linter },
-- typescriptreact = { eslint_linter },
yaml = { "yamllint" },
}
vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, {
callback = function()
require("lint").try_lint()
end,
})
@@ -1 +0,0 @@
require("tailwind-fold").setup({ ft = { "html", "svelte", "tsx" } })
-10
View File
@@ -1,10 +0,0 @@
-- Source: <https://vonheikemen.github.io/devlog/tools/neovim-lsp-client-guide/>
vim.diagnostic.config({
signs = true,
underline = false,
severity_sort = true,
})
vim.keymap.set("n", "<leader>dl", vim.diagnostic.open_float)
vim.keymap.set("n", "<leader>dj", vim.diagnostic.goto_prev)
vim.keymap.set("n", "<leader>dk", vim.diagnostic.goto_next)
-44
View File
@@ -1,44 +0,0 @@
backend = "glx";
glx-no-stencil = false;
glx-copy-from-font = false;
glx-no-rebind-pixmap = true;
shadow = true;
shadow-radius = 16;
shadow-opacity = 0.5;
shadow-offset-x = -16;
shadow-offset-y = -16;
shadow-color = "#000000"
active-opacity = 1;
inactive-opacity = 0.62;
frame-opacity = 1;
inactive-opacity-override = false;
fading = true;
fade-in-step = 0.02;
fade-out-step = 0.02;
fade-delta = 4
shadow-exclude = ["class_g = 'Rofi'", "class_g = 'trayer'"];
focus-exclude = ["class_g = 'Rofi'", "class_g = 'albert'", "class_g = 'trayer'"];
blur-background-exclude = ["class_g = 'Rofi'", "class_g = 'albert'", "class_g = 'trayer'"];
blur: {
method = "dual_kawase";
strength = 8;
background = true;
background-frame = true;
background-fixed = false;
}
wintypes:
{
dock = { shadow = false; };
dnd = { shadow = false; };
tooltip = { shadow = false; };
menu = { opacity = false; };
dropdown_menu = { opacity = false; };
popup_menu = { opacity = false; };
utility = { opacity = false; };
};
-60
View File
@@ -1,60 +0,0 @@
context.properties = {}
context.spa-libs = {
audio.convert.* = audioconvert/libspa-audioconvert
support.* = support/libspa-support
}
context.modules = [
{ name = libpipewire-module-rt
args = { nice.level = -11 }
flags = [ ifexists nofail ]
}
{ name = libpipewire-module-protocol-native }
{ name = libpipewire-module-client-node }
{ name = libpipewire-module-adapter }
{ name = libpipewire-module-metadata }
{ name = libpipewire-module-protocol-pulse
args = { }
}
]
context.exec = [
{ path = "pactl" args = "load-module module-always-sink" }
# Automatically switch to (bluetooth) headphones
{ path = "pactl" args = "load-module module-switch-on-connect" }
]
stream.properties = { }
pulse.properties = {
server.address = [ "unix:native" ]
vm.overrides = { pulse.min.quantum = 1024/48000 }
}
pulse.rules = [
{
matches = [ { } ]
actions = { update-props = { } }
}
{
matches = [
{ application.process.binary = "teams" }
{ application.process.binary = "teams-insiders" }
{ application.process.binary = "skypeforlinux" }
]
actions = { quirks = [ force-s16-info ] }
}
{
matches = [ { application.process.binary = "firefox" } ]
actions = { quirks = [ remove-capture-dont-move ] }
}
{
matches = [ { application.name = "~speech-dispatcher*" } ]
actions = {
update-props = {
pulse.min.req = 1024/48000 # 21ms
pulse.min.quantum = 1024/48000 # 21ms
}
}
}
]
-159
View File
@@ -1,159 +0,0 @@
[colors]
background = #cccccc
background-alt = #aaaaaa
foreground = #111111
primary = #111111
secondary = #555555
disabled = #888888
[bar/example]
height = 16pt
radius = 0
background = ${colors.background}
foreground = ${colors.foreground}
padding-left = 0pt
module-margin = 1
separator = " "
separator-foreground = ${colors.disabled}
font-0 = Iosevka Term SS08:size=12;4
modules-left = xworkspaces xwindow
modules-center = project pomo
modules-right = filesystem pulseaudio memory cpu wlan eth date dunst-snooze xkeyboard battery
cursor-click = pointer
cursor-scroll = ns-resize
enable-ipc = true
[module/xworkspaces]
type = internal/xworkspaces
label-active = %name%
label-active-background = ${colors.background-alt}
label-active-underline= ${colors.primary}
label-active-padding = 4pt
label-occupied = %name%
label-occupied-padding = 4pt
label-urgent = %name%
label-urgent-background = ${colors.alert}
label-urgent-padding = 4pt
label-empty = %name%
label-empty-foreground = ${colors.disabled}
label-empty-padding = 4pt
[module/xwindow]
type = internal/xwindow
label = %title:0:60:...%
[module/filesystem]
type = internal/fs
interval = 25
mount-0 = /
label-mounted = %mountpoint% %percentage_used%%
label-unmounted = %mountpoint% not mounted
label-unmounted-foreground = ${colors.disabled}
[module/pulseaudio]
type = internal/pulseaudio
format-volume-prefix = "VOL "
format-volume-prefix-foreground = ${colors.primary}
format-volume = <label-volume>
label-volume = %percentage%%
label-muted = muted
label-muted-foreground = ${colors.disabled}
[module/memory]
type = internal/memory
interval = 2
format-prefix = "RAM "
format-prefix-foreground = ${colors.primary}
label = %percentage_used:2%%
[module/cpu]
type = internal/cpu
interval = 2
format-prefix = "CPU "
format-prefix-foreground = ${colors.primary}
label = %percentage:2%%
[network-base]
type = internal/network
interval = 5
format-connected = <label-connected>
format-disconnected = <label-disconnected>
label-disconnected = %ifname% disconnected
[module/wlan]
inherit = network-base
interface-type = wireless
label-connected = %ifname% %local_ip% %essid%
[module/eth]
inherit = network-base
interface-type = wired
label-connected = %ifname% %local_ip%
[module/date]
type = internal/date
interval = 1
date = W%V %d %b %H:%M
date-alt = %Y-%m-%d %H:%M:%S
label = %date%
label-foreground = ${colors.primary}
[module/pomo]
type = custom/script
exec = ~/.bin/sb-pomo
label-background = #fff
interval = 1
[module/focus-mode]
type = custom/script
exec = [[ -f /tmp/focus-mode ]] && echo "Focus"
label-background = #af0
interval = 1
[module/project]
type = custom/script
exec = cat ~/.project
label-background = #fa0
interval = 1000
[module/xkeyboard]
type = internal/xkeyboard
label-layout = %name% %variant%
blacklist-0 = num lock
blacklist-1 = scroll lock
[module/battery]
type = internal/battery
full-at = 99
low-at = 20
battery = BAT0
adapter = ADP1
poll-interval = 5
label-charging = .%percentage%++
format-low = <label-low><animation-low>
label-discharging = .%percentage%-- %time% %consumption%W
animation-low-0 = !
animation-low-1 = .
animation-low-framerate = 200
[settings]
screenchange-reload = true
pseudo-transparency = true
; vim:ft=dosini
-188
View File
@@ -1,188 +0,0 @@
[colors]
background = #cccccc
background-alt = #aaaaaa
foreground = #111111
primary = #111111
secondary = #555555
alert = #A54242
disabled = #888888
[bar/example]
height = 16pt
radius = 0
background = ${colors.background}
foreground = ${colors.foreground}
line-size = 0pt
border-size = 0pt
border-color = #00000000
padding-left = 0pt
padding-right = 4pt
module-margin = 1
separator = " "
separator-foreground = ${colors.disabled}
font-0 = Iosevka Term SS08:size=12;4
modules-left = xworkspaces xwindow
modules-center = project pomo
modules-right = filesystem pulseaudio memory cpu wlan eth date dunst-snooze xkeyboard battery
cursor-click = pointer
cursor-scroll = ns-resize
enable-ipc = true
[module/xworkspaces]
type = internal/xworkspaces
label-active = %name%
label-active-background = ${colors.background-alt}
label-active-underline= ${colors.primary}
label-active-padding = 4pt
label-occupied = %name%
label-occupied-padding = 4pt
label-urgent = %name%
label-urgent-background = ${colors.alert}
label-urgent-padding = 4pt
label-empty = %name%
label-empty-foreground = ${colors.disabled}
label-empty-padding = 4pt
enable-scroll = false
enable-click = false
[module/xwindow]
type = internal/xwindow
label = %title:0:60:...%
[module/filesystem]
type = internal/fs
interval = 25
mount-0 = /
label-mounted = %mountpoint% %percentage_used%%
label-unmounted = %mountpoint% not mounted
label-unmounted-foreground = ${colors.disabled}
[module/pulseaudio]
type = internal/pulseaudio
format-volume-prefix = "VOL "
format-volume-prefix-foreground = ${colors.primary}
format-volume = <label-volume>
label-volume = %percentage%%
label-muted = muted
label-muted-foreground = ${colors.disabled}
[module/memory]
type = internal/memory
interval = 2
format-prefix = "RAM "
format-prefix-foreground = ${colors.primary}
label = %percentage_used:2%%
[module/cpu]
type = internal/cpu
interval = 2
format-prefix = "CPU "
format-prefix-foreground = ${colors.primary}
label = %percentage:2%%
[network-base]
type = internal/network
interval = 5
format-connected = <label-connected>
format-disconnected = <label-disconnected>
label-disconnected = %ifname% disconnected
[module/wlan]
inherit = network-base
interface-type = wireless
label-connected = %ifname% %local_ip% %essid%
[module/eth]
inherit = network-base
interface-type = wired
label-connected = %ifname% %local_ip%
[module/date]
type = internal/date
interval = 1
date = W%V %d %b %H:%M
date-alt = %Y-%m-%d %H:%M:%S
label = %date%
label-foreground = ${colors.primary}
; [module/dunst-snooze]
; type = custom/script
; exec = ~/.bin/polybar/polybar-scripts/dunst-snooze/dunst-snooze.sh
; interval = 1
; click-left = ~/.bin/polybar/polybar-scripts/dunst-snooze/dunst-snooze.sh --toggle &
; [module/info-camera-mic]
; type = custom/script
; exec = ~.bin/polybar/polybar-scripts/info-camera-mic/info-camera-mic.sh
; interval = 1
[module/player-mpris]
type = custom/script
exec = ~/.bin/polybar/polybar-scripts/player-mpris-simple/player-mpris-simple.sh
interval = 1
click-left = playerctl previous &
click-right = playerctl next &
click-middle = playerctl play-pause &
[module/pomo]
type = custom/script
exec = ~/.bin/sb-pomo
label-background = #fa0
interval = 1
[module/focus-mode]
type = custom/script
exec = [[ -f /tmp/focus-mode ]] && echo "Focus"
label-background = #af0
interval = 1
[module/project]
type = custom/script
exec = cat ~/.project
label-background = #fa0
interval = 1000
[module/xkeyboard]
type = internal/xkeyboard
label-layout = %name% %variant%
blacklist-0 = num lock
blacklist-1 = scroll lock
[module/battery]
type = internal/battery
full-at = 99
low-at = 20
battery = BAT0
adapter = ADP1
poll-interval = 5
label-charging = .%percentage%++
format-low = <label-low><animation-low>
label-discharging = .%percentage%-- %time% %consumption%W
animation-low-0 = !
animation-low-1 = .
animation-low-framerate = 200
[settings]
screenchange-reload = true
pseudo-transparency = true
; vim:ft=dosini
-11
View File
@@ -1,11 +0,0 @@
[google-drive]
type = drive
scope = drive
token =
[onedrive-vub]
type = webdav
url =
vendor = sharepoint
user =
pass =
-71
View File
@@ -1,71 +0,0 @@
{
"101B:E2D1E989": {
"_name": "Marathon Mouse M705 (M-R0009)",
"side-scroll": true,
"smooth-scroll": true
},
"405E:C347528E": {
"_absent": [
"hi-res-scroll",
"lowres-smooth-scroll",
"smart-shift",
"thumb-scroll-mode",
"thumb-scroll-invert",
"onboard_profiles",
"report_rate",
"dpi",
"dpi-sliding",
"speed-change",
"backlight",
"backlight-timed",
"fn-swap",
"disable-keyboard-keys",
"divert-crown",
"crown-smooth",
"divert-gkeys",
"m-key-leds",
"mr-key-led",
"multiplatform",
"gesture2-gestures",
"gesture2-divert",
"gesture2-params"
],
"_modelId": "B015405E0000",
"_name": "M720 Triathlon Multi-Device Mouse",
"_sensitive": {
"change-host": true,
"divert-keys": true,
"hires-smooth-invert": false,
"hires-smooth-resolution": false,
"mouse-gestures": false,
"pointer_speed": false,
"reprogrammable-keys": true
},
"_serial": "C347528E",
"_unitId": "F204EB17",
"divert-keys": {
"208": 0,
"215": 0,
"82": 0,
"83": 0,
"86": 0,
"91": 0,
"93": 0
},
"hires-smooth-invert": false,
"hires-smooth-resolution": false,
"mouse-gestures": 0,
"pointer_speed": 195,
"reprogrammable-keys": {
"208": 208,
"80": 80,
"81": 81,
"82": 82,
"83": 83,
"86": 86,
"91": 91,
"93": 93
}
},
"_version": "1.1.2"
}
-4
View File
@@ -1,4 +0,0 @@
# Spotify cache size
The contents of `prefs.example` can be added to the `prefs` file in this
directory to change the cache size to 1GB.
-1
View File
@@ -1 +0,0 @@
storage.size=1024
@@ -1,8 +0,0 @@
[Unit]
Description=redshift needs to get a (geo)clue
[Service]
ExecStart=/usr/lib/geoclue-2.0/demos/agent
[Install]
WantedBy=default.target
@@ -1,11 +0,0 @@
[Unit]
Description=Save KeypassXC password database to cloud
Wants=network-online.target
After=network-online.target
[Service]
Type=oneshot
ExecStart=/home/h/.bin/save-passwddb
[Install]
WantedBy=multi-user.target
@@ -1,10 +0,0 @@
[Unit]
Description=Save Keepass password database to cloud daily
[Timer]
OnCalendar=daily
RandomizedDelaySec=12h
Persistent=true
[Install]
WantedBy=timers.target
-2
View File
@@ -1,2 +0,0 @@
taskrc.d/sync
taskrc.d/private
-13
View File
@@ -1,13 +0,0 @@
include ./taskrc.d/aliases
include ./taskrc.d/urgency
include ./taskrc.d/reports
include ./taskrc.d/contexts
include ./taskrc.d/colors
include ./taskrc.d/udas
search.case.sensitive=no
rc.json.array=on
rc.verbose=nothing
news.version=3.4.2
-4
View File
@@ -1,4 +0,0 @@
alias.burndown=burndown.daily
alias.a=add
alias.rm=delete
alias.e=modify
-12
View File
@@ -1,12 +0,0 @@
color.active=bold white on black
color.alternate=
color.scheduled=
color.until=
color.blocking=bold
color.blocked=gray15
color.uda.priority.H=bold
color.uda.priority.M=
color.uda.priority.L=
color.due=
color.due.today=
color.overdue=
-5
View File
@@ -1,5 +0,0 @@
context.home.read=project:home
context.work.read=tags:work
context.home.write=project:home
context.studies.read=project:studies
context.studies.write=project:studies
-4
View File
@@ -1,4 +0,0 @@
include /usr/share/doc/task/rc/light-256.theme
include ./locations
include ./sync
-2
View File
@@ -1,2 +0,0 @@
data.location=$XDG_DATA_HOME/task/
hooks.location=$XDG_DATA_HOME/task/hooks
-24
View File
@@ -1,24 +0,0 @@
# The default report is `next`, to obtain details on a report
# (e.g. the columns used), the following command can be used:
#
# `task _get rc.report.<report_name>.columns`
report.next.columns=id,start.age,entry.age,depends,project,tags,scheduled.countdown,due.relative,until.remaining,description
report.next.labels=ID,Active,Age,Deps,Project,Tag,S,Due,Until,Description
report.next.filter=status:pending -WAITING -BLOCKED limit:page
report.in.columns=id,description
report.in.labels=ID,Description
report.in.description=Inbox (untagged)
report.in.filter=status:pending tags.none:
report.in.sort=entry+
report.recent.columns=id,description,entry
report.recent.labels=ID,Description,Age
report.recent.description=Recently added
report.recent.sort=entry+
report.minimal.columns=id,description
report.minimal.labels=,
# verbose=blank,header,footnote,label,new-id,affected,edit,special,project,unwait
-3
View File
@@ -1,3 +0,0 @@
sync.server.url=
sync.server.client_id=
sync.encryption_secret=
-2
View File
@@ -1,2 +0,0 @@
uda.url.type=string
uda.url.label=URL
-9
View File
@@ -1,9 +0,0 @@
urgency.uda.priority.L.coefficient=-1.0
urgency.user.project.studies.coefficient=1.0
urgency.user.project.admin.coefficient=1.0
urgency.user.project.personal.coefficient=0.5
urgency.user.project.groceries.coefficient=0.5
urgency.user.project.home.coefficient=0.2
urgency.user.project.creative.coefficient=0.0
urgency.user.project.side.coefficient=0.0
-80
View File
@@ -1,80 +0,0 @@
# statusbar
setw -g monitor-activity on
set -g visual-activity on
set -g history-limit 100000
set -g default-command "${SHELL}"
setw -g aggressive-resize on
set -sg escape-time 0
# keybindings
# NOTE: I intend to use defaults whenever feasible
# - my prefix key is still C-b
# - however, I do use vi mode
setw -g mode-keys vi
set -g status-keys vi
bind r source-file ~/.config/tmux/tmux.conf # reload tmux conf
# Splits
unbind v
unbind s
unbind % # vsplit
unbind '"' # hsplit
bind v split-window -h -c "#{pane_current_path}"
bind s split-window -v -c "#{pane_current_path}"
bind -r h select-pane -L
bind -r j select-pane -D
bind -r k select-pane -U
bind -r l select-pane -R
bind -r H resize-pane -L 4
bind -r J resize-pane -D 4
bind -r K resize-pane -U 4
bind -r L resize-pane -R 4
bind-key -T root F1 select-window -t 1
bind-key -T root F2 select-window -t 2
bind-key -T root F3 select-window -t 3
bind-key -T root F4 select-window -t 4
bind-key -T root F5 select-window -t 5
bind-key -T root F6 select-window -t 6
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
# statusbar
set -g status-position top
set -g status-left-length 20
set -g window-status-separator ""
%if "#{==:#{host},desktop-arch}"
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'
%endif
set -g default-terminal "tmux-256color"
# 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
@@ -1 +0,0 @@
enabled=False
-15
View File
@@ -1,15 +0,0 @@
# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run.
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
#
XDG_DESKTOP_DIR="$HOME/"
XDG_DOWNLOAD_DIR="$HOME/dl"
XDG_DOCUMENTS_DIR="$HOME/doc"
XDG_PUBLICSHARE_DIR="$HOME/"
XDG_MUSIC_DIR="$HOME/"
XDG_PICTURES_DIR="$HOME/"
XDG_TEMPLATES_DIR="$HOME/"
XDG_VIDEOS_DIR="$HOME/"
-20
View File
@@ -1,20 +0,0 @@
# Headphone controls for spotify
"playerctl --player=ncspot next --player=spotify next"
m:0x0 + c:171
XF86AudioNext
"playerctl --player=ncspot previous --player=spotify previous"
m:0x0 + c:173
XF86AudioPrev
"playerctl --player=ncspot pause --player=spotify pause"
m:0x0 + c:209
XF86AudioPause
"playerctl --player=ncspot play --player=spotify play"
m:0x0 + c:208
XF86AudioPlay
"xrandr --auto"
m:0x0 + c:76 # F10
"feh ~/.vortex-core/l0.png"
m:0x0 + c:138
SunProps
Loaded 100 of 345 files, more files were not shown because too many files have changed in this diff. Show more