Compare commits
122
Commits
b2bd384d0e
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5c587dc5a7 | ||
|
|
fce7a277a7 | ||
|
|
21e5b62dfa | ||
|
|
e794e6c0e2 | ||
|
|
209ab8ba30 | ||
|
|
be62f224a6 | ||
|
|
9110789527 | ||
|
|
9030f33842 | ||
|
|
c2bb81ec7c | ||
|
|
6fa74fead8 | ||
|
|
1947ee0c9f | ||
|
|
00769b0251 | ||
|
|
089b221276 | ||
|
|
7337257740 | ||
|
|
126dacc3e3 | ||
|
|
8871280ee5 | ||
|
|
13b45c45a1 | ||
|
|
8c6f0c7a32 | ||
|
|
cdaac61c37 | ||
|
|
323de0b2e9 | ||
|
|
79fea669c0 | ||
|
|
7bcfa68a6b | ||
|
|
627a7b463e | ||
|
|
e9002ac727 | ||
|
|
3e377ce637 | ||
|
|
0d5027edb7 | ||
|
|
23b0462dc1 | ||
|
|
f45dd680f9 | ||
|
|
49f66cb9fa | ||
|
|
9c84aeb3ab | ||
|
|
f365957d3d | ||
|
|
84e0866c19 | ||
|
|
f55d5a8149 | ||
|
|
0c992880b7 | ||
|
|
ea5309eff1 | ||
|
|
48360e49c4 | ||
|
|
e92c98fa04 | ||
|
|
2d2776f119 | ||
|
|
7bd37a79ab | ||
|
|
e16c519414 | ||
|
|
93f2952611 | ||
|
|
da8cf08ed2 | ||
|
|
b2898ddf20 | ||
|
|
95da1174c6 | ||
|
|
3893fb6078 | ||
|
|
715bf6140f | ||
|
|
96d838db75 | ||
|
|
445bdde2dc | ||
|
|
432a4c107a | ||
|
|
4498e8303c | ||
|
|
ddee912f51 | ||
|
|
bb2f0dcd29 | ||
|
|
f3876cdf87 | ||
|
|
fc373a60ef | ||
|
|
e12e2b17ae | ||
|
|
26458c8728 | ||
|
|
e462c1b0b9 | ||
|
|
677cd30224 | ||
|
|
5d5db2314d | ||
|
|
ba0e9e77d4 | ||
|
|
88a9e8e63f | ||
|
|
9df77eee42 | ||
|
|
18901f16cd | ||
|
|
408ee2eec1 | ||
|
|
362beb72ca | ||
|
|
8a49bb8015 | ||
|
|
186ab438b8 | ||
|
|
c32c8a0ace | ||
|
|
fbb04d1192 | ||
|
|
233cdd4bbe | ||
|
|
5153bd0883 | ||
|
|
b112c7eda3 | ||
|
|
d7508ddad7 | ||
|
|
83d863b856 | ||
|
|
d317aa39a6 | ||
|
|
3bbc5e83fc | ||
|
|
0ab7dc5d80 | ||
|
|
622a2ae3da | ||
|
|
034a010547 | ||
|
|
14f8c83cf3 | ||
|
|
7f5d7914c4 | ||
|
|
deeffb8b8b | ||
|
|
14c6a27b21 | ||
|
|
fbd34508c5 | ||
|
|
a3905e5b3d | ||
|
|
7f497792de | ||
|
|
bba440a80e | ||
|
|
6e69733d61 | ||
|
|
2e39bbd947 | ||
|
|
a3124c8870 | ||
|
|
52a83d4744 | ||
|
|
5d4a49bc2a | ||
|
|
b9671ca4b5 | ||
|
|
71f1d42f64 | ||
|
|
b5d6e66bb1 | ||
|
|
a081a31077 | ||
|
|
816e093038 | ||
|
|
b77421066b | ||
|
|
0fd329e1ec | ||
|
|
a5c5621cae | ||
|
|
f38da1a344 | ||
|
|
47884d9390 | ||
|
|
680290c151 | ||
|
|
ca70263415 | ||
|
|
48f484cb85 | ||
|
|
5b480bd0d6 | ||
|
|
06f1412930 | ||
|
|
c921adc4be | ||
|
|
b1824d6f5f | ||
|
|
9c22bed2fc | ||
|
|
610993dc8b | ||
|
|
db3ffae41e | ||
|
|
21cf4a7a65 | ||
|
|
14c25a0b1d | ||
|
|
b4755b9a8a | ||
|
|
aee9682d64 | ||
|
|
178a51d75e | ||
|
|
d35575326b | ||
|
|
761102fd35 | ||
|
|
665727cb3d | ||
|
|
22600b2ca6 | ||
|
|
30dfcb6141 |
No files matched your search
@@ -19,6 +19,8 @@ home-manager switch --flake .#work
|
|||||||
|
|
||||||
### virtual machines
|
### virtual machines
|
||||||
|
|
||||||
|
With a Niri desktop (requires host OpenGL support):
|
||||||
|
|
||||||
```
|
```
|
||||||
nix build -L '.#nixosConfigurations.vm.config.system.build.vmWithDisko'
|
nix build -L '.#nixosConfigurations.vm.config.system.build.vmWithDisko'
|
||||||
./result/bin/disko-vm
|
./result/bin/disko-vm
|
||||||
|
|||||||
+5
-7
@@ -5,20 +5,20 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
inherit (inputs.nixpkgs) lib;
|
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
|
# 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)
|
# 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>
|
# see <https://github.com/nix-community/colmena/issues/38>
|
||||||
# <https://github.com/nix-community/colmena/issues/344>
|
# <https://github.com/nix-community/colmena/issues/344>
|
||||||
hostnames = lib.filter (
|
hostnames = lib.filter (
|
||||||
hostname: !((utils.hostMeta ../hosts/${hostname}).deploy.autoRollback or false)
|
hostname: !((lib'.hostMeta hostname).deploy.autoRollback or false)
|
||||||
) (utils.dirNames ../hosts);
|
) lib'.nixosHosts;
|
||||||
|
|
||||||
mkNode =
|
mkNode =
|
||||||
hostname:
|
hostname:
|
||||||
let
|
let
|
||||||
meta = utils.hostMeta ../hosts/${hostname};
|
meta = lib'.hostMeta hostname;
|
||||||
isArm = meta.system == "aarch64-linux";
|
isArm = meta.system == "aarch64-linux";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
@@ -40,10 +40,8 @@ inputs.colmena.lib.makeHive (
|
|||||||
meta = {
|
meta = {
|
||||||
nixpkgs = import inputs.nixpkgs { localSystem = "x86_64-linux"; };
|
nixpkgs = import inputs.nixpkgs { localSystem = "x86_64-linux"; };
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit inputs;
|
inherit inputs lib';
|
||||||
outputs = self;
|
outputs = self;
|
||||||
dotsPath = ../dots;
|
|
||||||
myUtils = utils;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,18 +5,18 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
inherit (inputs.nixpkgs) lib;
|
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)
|
# only include hosts that need auto rollback (until `colmena` supports it)
|
||||||
# `colmena` is used for other hosts (see ./colmena.nix)
|
# `colmena` is used for other hosts (see ./colmena.nix)
|
||||||
hostnames = lib.filter (
|
hostnames = lib.filter (
|
||||||
hostname: (utils.hostMeta ../hosts/${hostname}).deploy.autoRollback or false
|
hostname: (lib'.hostMeta hostname).deploy.autoRollback or false
|
||||||
) (utils.dirNames ../hosts);
|
) lib'.nixosHosts;
|
||||||
|
|
||||||
mkNode =
|
mkNode =
|
||||||
hostname:
|
hostname:
|
||||||
let
|
let
|
||||||
meta = utils.hostMeta ../hosts/${hostname};
|
meta = lib'.hostMeta hostname;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
inherit hostname;
|
inherit hostname;
|
||||||
|
|||||||
@@ -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"
|
|
||||||
@@ -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
|
|
||||||
}
|
|
||||||
@@ -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());"'
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
# shellcheck shell=bash
|
|
||||||
# vim: set ft=bash :
|
|
||||||
|
|
||||||
source "$HOME/.bash_aliases/dualboot"
|
|
||||||
|
|
||||||
alias lm='xbacklight -set'
|
|
||||||
@@ -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
|
|
||||||
@@ -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 +0,0 @@
|
|||||||
# Desktop configuration
|
|
||||||
@@ -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 <<<
|
|
||||||
@@ -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
|
|
||||||
@@ -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.
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Tiny AUR clone helper
|
|
||||||
# aurpac <package-name>
|
|
||||||
|
|
||||||
git clone "https://aur.archlinux.org/$1.git"
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
ipython -i /home/h/.bin/calc.py
|
|
||||||
@@ -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
|
|
||||||
@@ -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)))))
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
xdg-open https://devdocs.io/offline
|
|
||||||
@@ -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
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
pactl load-module module-jack-source connect=0
|
|
||||||
pactl load-module module-loopback source=jack_in
|
|
||||||
@@ -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='')
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
sudo pacman -Qtdq | sudo pacman -Rns -
|
|
||||||
@@ -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
|
|
||||||
@@ -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}"
|
|
||||||
@@ -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
|
|
||||||
@@ -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
|
|
||||||
@@ -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
|
|
||||||
@@ -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))") "
|
|
||||||
@@ -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"
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
echo -n -e "Week $(date '+%V') $(date '+%a %d %b %H:%M') "
|
|
||||||
@@ -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)"
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
[ -f "/home/h/.local/share/pomo" ] && cat /home/h/.local/share/pomo || echo ""
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Render contents of $HOME/.project if present
|
|
||||||
[ -f "$HOME/.project" ] && cat "$HOME/.project" || echo ""
|
|
||||||
@@ -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"
|
|
||||||
@@ -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
|
|
||||||
@@ -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)
|
|
||||||
@@ -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
@@ -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
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
ssh_hosts="$(grep -E 'Host [a-z0-9\-]*$' ~/.ssh/config | awk '{print $2}')"
|
|
||||||
|
|
||||||
echo "$ssh_hosts"
|
|
||||||
@@ -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
|
|
||||||
@@ -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 \;
|
|
||||||
@@ -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
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
sudo pacman -Syu
|
|
||||||
Whitespace-only changes.
@@ -1 +0,0 @@
|
|||||||
[{ "key": "ctrl+b", "command": "workbench.action.toggleSidebarVisibility" }]
|
|
||||||
@@ -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 +0,0 @@
|
|||||||
Xcursor.size: 16
|
|
||||||
@@ -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
|
|
||||||
@@ -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
|
|
||||||
@@ -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
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
feh \
|
|
||||||
-B black \
|
|
||||||
--auto-zoom
|
|
||||||
@@ -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
|
|
||||||
@@ -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"
|
|
||||||
@@ -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
@@ -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
|
|
||||||
@@ -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
|
|
||||||
@@ -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
|
|
||||||
@@ -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.
@@ -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
|
|
||||||
@@ -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
@@ -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"
|
|
||||||
@@ -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 +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" } })
|
|
||||||
@@ -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)
|
|
||||||
@@ -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; };
|
|
||||||
};
|
|
||||||
@@ -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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@@ -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
|
|
||||||
@@ -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
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
[google-drive]
|
|
||||||
type = drive
|
|
||||||
scope = drive
|
|
||||||
token =
|
|
||||||
|
|
||||||
[onedrive-vub]
|
|
||||||
type = webdav
|
|
||||||
url =
|
|
||||||
vendor = sharepoint
|
|
||||||
user =
|
|
||||||
pass =
|
|
||||||
@@ -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"
|
|
||||||
}
|
|
||||||
@@ -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 +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
|
|
||||||
@@ -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 +0,0 @@
|
|||||||
enabled=False
|
|
||||||
@@ -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/"
|
|
||||||
@@ -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
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
extends: default
|
|
||||||
rules:
|
|
||||||
document-start: disable
|
|
||||||
comments-indentation: disable
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
NPM_TOKEN=
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
$include /etc/inputrc
|
|
||||||
|
|
||||||
set editing-mode vi
|
|
||||||
set keymap vi
|
|
||||||
set show-mode-in-prompt on
|
|
||||||
set vi-ins-mode-string "\1\e[1;32m\2■ \1\e[0m\2"
|
|
||||||
set vi-cmd-mode-string "\1\e[1;31m\2■ \1\e[0m\2"
|
|
||||||
|
|
||||||
set show-all-if-ambiguous on
|
|
||||||
set show-all-if-unmodified off
|
|
||||||
set completion-ignore-case on
|
|
||||||
set completion-map-case on
|
|
||||||
set completion-display-width 0
|
|
||||||
set page-completions off
|
|
||||||
set completion-query-items 128
|
|
||||||
set visible-stats on
|
|
||||||
set skip-completed-text on
|
|
||||||
set mark-symlinked-directories on
|
|
||||||
set colored-completion-prefix on
|
|
||||||
|
|
||||||
$if mode=vi
|
|
||||||
set keyseq-timeout 200
|
|
||||||
set keymap vi-command
|
|
||||||
"\e[A": history-search-backward
|
|
||||||
"\e[B": history-search-forward
|
|
||||||
j: history-search-forward
|
|
||||||
k: history-search-backward
|
|
||||||
set keymap vi-insert
|
|
||||||
"jj": vi-movement-mode
|
|
||||||
"\e[A": history-search-backward
|
|
||||||
"\e[B": history-search-forward
|
|
||||||
"\C-l": clear-screen
|
|
||||||
$endif
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Include config.d/*
|
|
||||||
Whitespace-only changes.
@@ -1,19 +0,0 @@
|
|||||||
# Keyboard configuration
|
|
||||||
|
|
||||||
Keyboard configuration for the Vortex Core 40% keyboard.
|
|
||||||
|
|
||||||
Generated using [TsFreddie's MPC tool](https://tsdo.in/much-programming-core/).
|
|
||||||
|
|
||||||
Note: this is assuming `Caps lock` is remapped to `Esc` on press and `Ctrl` on hold (e.g. using `caps2esc`).
|
|
||||||
|
|
||||||
## Layer 0
|
|
||||||
|
|
||||||
Macros are mainly used for shift, ctrl & alt modifiers.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Layer 1
|
|
||||||
|
|
||||||
Lighting configuration layer with some macros for workspaces.
|
|
||||||
|
|
||||||

|
|
||||||
@@ -1,303 +0,0 @@
|
|||||||
-- {{{ Imports
|
|
||||||
|
|
||||||
import Control.Monad (liftM2)
|
|
||||||
import Data.Map qualified as M
|
|
||||||
import XMonad
|
|
||||||
import XMonad.Actions.CopyWindow (copyToAll, killAllOtherCopies)
|
|
||||||
import XMonad.Actions.FloatSnap
|
|
||||||
import XMonad.Actions.Submap
|
|
||||||
import XMonad.Hooks.EwmhDesktops
|
|
||||||
import XMonad.Hooks.ManageDocks
|
|
||||||
import XMonad.Hooks.ManageHelpers
|
|
||||||
import XMonad.Hooks.OnPropertyChange (onXPropertyChange)
|
|
||||||
import XMonad.Hooks.StatusBar
|
|
||||||
import XMonad.Hooks.StatusBar.PP
|
|
||||||
import XMonad.Hooks.WindowSwallowing (swallowEventHook)
|
|
||||||
import XMonad.Layout.CenteredIfSingle
|
|
||||||
import XMonad.Layout.IndependentScreens
|
|
||||||
import XMonad.Layout.LayoutHints (hintsEventHook, layoutHints)
|
|
||||||
import XMonad.Layout.PerScreen
|
|
||||||
import XMonad.Layout.PerWorkspace
|
|
||||||
import XMonad.Layout.Renamed
|
|
||||||
import XMonad.Layout.Spacing
|
|
||||||
import XMonad.Layout.Tabbed
|
|
||||||
import XMonad.Layout.ThreeColumns
|
|
||||||
import XMonad.StackSet qualified as W
|
|
||||||
import XMonad.Util.EZConfig
|
|
||||||
import XMonad.Util.Hacks qualified as Hacks
|
|
||||||
import XMonad.Util.Loggers
|
|
||||||
import XMonad.Util.Paste
|
|
||||||
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- Statusbar {{{
|
|
||||||
|
|
||||||
pp :: PP
|
|
||||||
pp =
|
|
||||||
def
|
|
||||||
{ ppSep = tertiaryColor " ",
|
|
||||||
ppCurrent = brackitify,
|
|
||||||
ppHidden = secondaryColor,
|
|
||||||
ppHiddenNoWindows = tertiaryColor,
|
|
||||||
ppUrgent = red . wrap (yellow "!") (yellow "!"),
|
|
||||||
ppLayout = id,
|
|
||||||
ppTitle = shorten 80,
|
|
||||||
ppTitleSanitize = xmobarStrip,
|
|
||||||
ppOrder = \[workspaces, layout, windows, _] -> [layout],
|
|
||||||
ppExtras = [logTitles formatFocused formatUnfocused]
|
|
||||||
}
|
|
||||||
where
|
|
||||||
brackitify = wrap "〈" "〉"
|
|
||||||
formatFocused = secondaryColor . ppWindow
|
|
||||||
formatUnfocused = tertiaryColor . ppWindow
|
|
||||||
|
|
||||||
ppWindow = xmobarRaw . (\w -> if null w then "Untitled" else w) . shorten 16
|
|
||||||
|
|
||||||
primaryColor = xmobarColor "#000000" ""
|
|
||||||
secondaryColor = xmobarColor "#333333" ""
|
|
||||||
tertiaryColor = xmobarColor "#555555" ""
|
|
||||||
yellow = xmobarColor "#ff0" ""
|
|
||||||
red = xmobarColor "#ff5555" ""
|
|
||||||
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- Workspaces & screens {{{
|
|
||||||
|
|
||||||
-- Shift to workspace and view workspace
|
|
||||||
shiftAndView = doF . liftM2 (.) W.greedyView W.shift
|
|
||||||
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- Hooks {{{
|
|
||||||
|
|
||||||
-- startupHook {{{
|
|
||||||
myStartupHook =
|
|
||||||
do
|
|
||||||
spawn "killall -q polybar; parallel ::: 'polybar -r top' 'polybar -r bottom'"
|
|
||||||
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- manageHook {{{
|
|
||||||
myManageHook :: ManageHook
|
|
||||||
myManageHook =
|
|
||||||
composeAll
|
|
||||||
[ isDialog --> doCenterFloat,
|
|
||||||
className =? "Zathura" --> doShift "1_info",
|
|
||||||
className =? "firefox" --> shiftAndView "1_www",
|
|
||||||
className =? "firefoxdeveloperedition" --> shiftAndView "1_www",
|
|
||||||
className =? "Anki" --> shiftAndView "1_etc",
|
|
||||||
className =? "Obsidian" --> shiftAndView "1_etc",
|
|
||||||
className =? "Launcher" --> doRectFloat (W.RationalRect 0.05 0.4 0.9 0.5),
|
|
||||||
className =? "Zettelkasten" --> doRectFloat (W.RationalRect 0.05 0.4 0.9 0.5),
|
|
||||||
className =? "Calculator" --> doCenterFloat,
|
|
||||||
className =? "feh" --> doCenterFloat,
|
|
||||||
-- Center matplotlib and prevent focus stealing
|
|
||||||
-- className =? "matplotlib" --> doRectFloat (W.RationalRect 0.5 0.5 0.5 0.5),
|
|
||||||
className =? "matplotlib" --> doCenterFloat,
|
|
||||||
className =? "Matplotlib" --> doCenterFloat,
|
|
||||||
className =? "Xournalpp" --> doRectFloat (W.RationalRect 0.5 0.5 0.5 0.5),
|
|
||||||
className =? "KeePassXC" --> doRectFloat (W.RationalRect 0.1 0.1 0.8 0.8),
|
|
||||||
className =? "flameshot" --> doRectFloat (W.RationalRect 0.1 0.1 0.8 0.8)
|
|
||||||
]
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- dynamicManageHook {{{
|
|
||||||
myDynamicManageHook :: ManageHook
|
|
||||||
myDynamicManageHook =
|
|
||||||
composeAll
|
|
||||||
[
|
|
||||||
title =? "Zettelkasten — Firefox Developer Edition" --> doShift "1_sh"
|
|
||||||
]
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- layoutHook {{{
|
|
||||||
myLayoutHook =
|
|
||||||
avoidStruts $
|
|
||||||
smartSpacingWithEdge 4 $
|
|
||||||
layoutHints $
|
|
||||||
onWorkspace "1_sh" (Tall nmaster delta 0.8) $
|
|
||||||
ifWider smallWidth (tWide ||| c3mWide ||| f) t
|
|
||||||
where
|
|
||||||
smallWidth = 1920
|
|
||||||
|
|
||||||
-- Tall layouts
|
|
||||||
tWide =
|
|
||||||
centeredIfSingle 0.62 1 t
|
|
||||||
t =
|
|
||||||
named "[]+" $
|
|
||||||
Tall nmaster delta ratio
|
|
||||||
|
|
||||||
-- Column layouts
|
|
||||||
c3mWide =
|
|
||||||
centeredIfSingle 0.62 1 c3m
|
|
||||||
c3m =
|
|
||||||
named "[|]" $
|
|
||||||
ThreeColMid nmaster delta ratio
|
|
||||||
|
|
||||||
-- Fullscreen layouts
|
|
||||||
f = named "[+]" Full
|
|
||||||
|
|
||||||
-- Modifiers
|
|
||||||
named n = renamed [Replace n]
|
|
||||||
nmaster = 1
|
|
||||||
ratio = 0.62
|
|
||||||
delta = 4 / 100
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- handleEventHook {{{
|
|
||||||
myHandleEventHook =
|
|
||||||
handleEventHook def
|
|
||||||
-- See window swallowing (https://hackage.haskell.org/package/xmonad-contrib-0.18.0/docs/XMonad-Hooks-WindowSwallowing.html)
|
|
||||||
<> onXPropertyChange "WM_NAME" myDynamicManageHook
|
|
||||||
<> Hacks.windowedFullscreenFixEventHook
|
|
||||||
<> hintsEventHook
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- Main config {{{
|
|
||||||
|
|
||||||
myWorkspaces = [ "sh", "www", "dev", "info", "etc" ]
|
|
||||||
myWorkspaceKeys = [ "a", "s", "d", "f", "g" ]
|
|
||||||
mySharedWorkspaces = [ "shared" ]
|
|
||||||
mySharedWorkspaceKeys = [ "1" ]
|
|
||||||
-- Use Win key instead of Alt
|
|
||||||
myModMask = mod4Mask
|
|
||||||
|
|
||||||
myConfig =
|
|
||||||
def
|
|
||||||
{ terminal = "kitty",
|
|
||||||
modMask = myModMask,
|
|
||||||
workspaces = withScreen 1 myWorkspaces ++ withScreen 2 mySharedWorkspaces,
|
|
||||||
-- Styling
|
|
||||||
focusedBorderColor = "#000",
|
|
||||||
normalBorderColor = "#0000",
|
|
||||||
borderWidth = 4,
|
|
||||||
-- Hooks
|
|
||||||
startupHook = myStartupHook,
|
|
||||||
manageHook = myManageHook <+> manageHook def,
|
|
||||||
layoutHook = myLayoutHook,
|
|
||||||
handleEventHook = myHandleEventHook
|
|
||||||
}
|
|
||||||
`removeKeysP` myRemoveKeys
|
|
||||||
`additionalKeysP` myKeys
|
|
||||||
`additionalMouseBindings` myMouseBindings
|
|
||||||
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- Keybindings {{{
|
|
||||||
|
|
||||||
-- Keybindings to be added/overridden
|
|
||||||
myKeys :: [(String, X ())]
|
|
||||||
myKeys =
|
|
||||||
[ ("M-<Space> s", unfloatFocusedW),
|
|
||||||
("M-<Space> <Space>", nextLayout), -- Cycle through layouts
|
|
||||||
("M-<Space> S-<Space>", defaultLayout), --
|
|
||||||
("M-<Space> M-<Space>", nextLayout), -- ..fat finger
|
|
||||||
("M-<Space> M-S-<Space>", defaultLayout), --
|
|
||||||
("<F8>", spawnKeepassXC),
|
|
||||||
("M-p", spawnLauncher),
|
|
||||||
("M-w", spawnWindowSwitcher),
|
|
||||||
("M-S-w", spawnWifiMenu),
|
|
||||||
("<Insert>", pasteSelection),
|
|
||||||
("<Print>", printScreen),
|
|
||||||
("<XF86AudioRaiseVolume>", raiseVol), -- Audio volume & playback
|
|
||||||
("<XF86AudioLowerVolume>", lowerVol), --
|
|
||||||
("<XF86AudioMute>", mute), --
|
|
||||||
("M-<Right>", nextTrack), --
|
|
||||||
("M-<Left>", prevTrack), --
|
|
||||||
("M-<Up>", play), --
|
|
||||||
("M-<Down>", pause), --
|
|
||||||
("<XF86MonBrightnessUp>", brighten), -- Brightness & hue controls
|
|
||||||
("<XF86MonBrightnessDown>", dim), --
|
|
||||||
("S-<XF86MonBrightnessUp>", warm), --
|
|
||||||
("S-<XF86MonBrightnessDown>", cool), --
|
|
||||||
("M-S-<XF86MonBrightnessUp>", resetTemp), --
|
|
||||||
("M-S-<XF86MonBrightnessDown>", resetTemp), --
|
|
||||||
("M-S-b", fullscreenBrowser),
|
|
||||||
("<XF86PowerOff>", spawn "systemctl suspend"), --TODO: Only enable this on laptop
|
|
||||||
("M-c", windows copyToAll),
|
|
||||||
("M-S-c", killAllOtherCopies),
|
|
||||||
("M-S-<Delete>", kill)
|
|
||||||
] ++
|
|
||||||
[ (m ++ k, windows $ f w) |
|
|
||||||
(m, f) <- zip ["M-", "M-S-"]
|
|
||||||
[W.greedyView, W.shift],
|
|
||||||
(k, w) <- zip myWorkspaceKeys
|
|
||||||
(withScreen 1 myWorkspaces)
|
|
||||||
++ zip mySharedWorkspaceKeys
|
|
||||||
(withScreen 2 mySharedWorkspaces)
|
|
||||||
]
|
|
||||||
|
|
||||||
zipKeyPrefixes :: [String] -> [String] -> [String]
|
|
||||||
zipKeyPrefixes prefixes keys = [prefix ++ key | prefix <- prefixes, key <- keys]
|
|
||||||
|
|
||||||
-- Keybindings to be removed
|
|
||||||
myRemoveKeys :: [String]
|
|
||||||
myRemoveKeys = "M-S-q" : zipKeyPrefixes ["M-", "M-S-"] (map show [ 1..5 ])
|
|
||||||
|
|
||||||
myMouseBindings =
|
|
||||||
[
|
|
||||||
((mod4Mask, button1), (\w -> focus w >> mouseMoveWindow w >> afterDrag (snapMagicMove (Just 50) (Just 50) w)))
|
|
||||||
, ((mod4Mask .|. shiftMask, button1), (\w -> focus w >> mouseMoveWindow w >> afterDrag (snapMagicResize [L,R,U,D] (Just 50) (Just 50) w)))
|
|
||||||
, ((mod4Mask, button3), (\w -> focus w >> mouseResizeWindow w >> afterDrag (snapMagicResize [R,D] (Just 50) (Just 50) w)))
|
|
||||||
]
|
|
||||||
|
|
||||||
unfloatFocusedW :: X ()
|
|
||||||
unfloatFocusedW = withFocused $ windows . W.sink
|
|
||||||
|
|
||||||
myStartupHook :: X ()
|
|
||||||
nextLayout = sendMessage NextLayout
|
|
||||||
|
|
||||||
defaultLayout :: X ()
|
|
||||||
defaultLayout = setLayout $ Layout myLayoutHook
|
|
||||||
|
|
||||||
spawnKeepassXC :: X ()
|
|
||||||
spawnKeepassXC = spawn "keepassxc"
|
|
||||||
|
|
||||||
fullscreenBrowser :: X ()
|
|
||||||
fullscreenBrowser = spawn "firefox --fullscreen"
|
|
||||||
|
|
||||||
spawnWindowSwitcher = spawn "rofi -show window -show-icons"
|
|
||||||
|
|
||||||
spawnWifiMenu = spawn "rofi -show wifi -modi \"wifi:iwdrofimenu\""
|
|
||||||
|
|
||||||
spawnLauncher, spawnClipManager :: X ()
|
|
||||||
spawnLauncher = spawn "rofi -show drun -show-icons"
|
|
||||||
spawnClipManager = spawn "rofi -modi 'clipboard:greenclip print' -show clipboard -run-command '{cmd}'"
|
|
||||||
|
|
||||||
printScreen :: X ()
|
|
||||||
printScreen = spawn "flameshot gui"
|
|
||||||
|
|
||||||
raiseVol, lowerVol, mute :: X ()
|
|
||||||
raiseVol = spawn "pactl set-sink-volume @DEFAULT_SINK@ +5%"
|
|
||||||
lowerVol = spawn "pactl set-sink-volume @DEFAULT_SINK@ -5%"
|
|
||||||
mute = spawn "pactl set-sink-mute @DEFAULT_SINK@ toggle"
|
|
||||||
|
|
||||||
nextTrack, prevTrack, play, pause :: X ()
|
|
||||||
nextTrack = spawn "playerctl next"
|
|
||||||
prevTrack = spawn "playerctl previous"
|
|
||||||
play = spawn "playerctl play"
|
|
||||||
pause = spawn "playerctl pause"
|
|
||||||
|
|
||||||
brighten, dim, warm, cool, resetTemp :: X ()
|
|
||||||
brighten = spawn "brightnessctl set 20+"
|
|
||||||
dim = spawn "brightnessctl set 20-"
|
|
||||||
warm = spawn "screen-temperature +50"
|
|
||||||
cool = spawn "screen-temperature -50"
|
|
||||||
resetTemp = spawn "screen-temperature 3000"
|
|
||||||
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- Main {{{
|
|
||||||
|
|
||||||
main :: IO ()
|
|
||||||
main =
|
|
||||||
do xmonad
|
|
||||||
$ ewmh
|
|
||||||
$ withEasySB
|
|
||||||
(statusBarProp "polybar" $ pure pp)
|
|
||||||
defToggleStrutsKey
|
|
||||||
myConfig
|
|
||||||
|
|
||||||
-- }}}
|
|
||||||
@@ -1,101 +0,0 @@
|
|||||||
{
|
|
||||||
"config": {
|
|
||||||
"options": {},
|
|
||||||
"preferences": {
|
|
||||||
"ascii": "",
|
|
||||||
"asciiBibLaTeX": false,
|
|
||||||
"asciiBibTeX": true,
|
|
||||||
"autoAbbrev": false,
|
|
||||||
"autoExport": "immediate",
|
|
||||||
"autoExportDelay": 5,
|
|
||||||
"autoExportIdleWait": 10,
|
|
||||||
"autoExportPathReplaceDiacritics": false,
|
|
||||||
"autoExportPathReplaceDirSep": "-",
|
|
||||||
"autoExportPathReplaceSpace": " ",
|
|
||||||
"automaticTags": true,
|
|
||||||
"auxImport": false,
|
|
||||||
"baseAttachmentPath": "/home/h/doc/readings",
|
|
||||||
"biblatexExtendedDateFormat": true,
|
|
||||||
"biblatexExtendedNameFormat": true,
|
|
||||||
"biblatexExtractEprint": true,
|
|
||||||
"biblatexUsePrefix": true,
|
|
||||||
"bibtexEditionOrdinal": false,
|
|
||||||
"bibtexParticleNoOp": false,
|
|
||||||
"bibtexURL": "off",
|
|
||||||
"cache": true,
|
|
||||||
"cacheDelete": false,
|
|
||||||
"charmap": "",
|
|
||||||
"chinese": false,
|
|
||||||
"chineseSplitName": true,
|
|
||||||
"citeCommand": "cite",
|
|
||||||
"citekeyCaseInsensitive": true,
|
|
||||||
"citekeyFold": true,
|
|
||||||
"citekeyFormat": "zotero.clean",
|
|
||||||
"citekeyFormatEditing": "zotero.clean",
|
|
||||||
"citekeySearch": false,
|
|
||||||
"citekeyUnsafeChars": "\\\"#%'(),={}~",
|
|
||||||
"csquotes": "",
|
|
||||||
"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,
|
|
||||||
"keyScope": "global",
|
|
||||||
"language": "langid",
|
|
||||||
"logEvents": false,
|
|
||||||
"mapMath": "",
|
|
||||||
"mapText": "",
|
|
||||||
"packages": "",
|
|
||||||
"parseParticles": true,
|
|
||||||
"patchDates": "dateadded=dateAdded, date-added=dateAdded, datemodified=dateModified, date-modified=dateModified",
|
|
||||||
"platform": "lin",
|
|
||||||
"postscript": "",
|
|
||||||
"postscriptOverride": "",
|
|
||||||
"preferencesOverride": "",
|
|
||||||
"qualityReport": false,
|
|
||||||
"quickCopyEta": "",
|
|
||||||
"quickCopyMode": "citekeys",
|
|
||||||
"quickCopyOrgMode": "zotero",
|
|
||||||
"quickCopyPandocBrackets": false,
|
|
||||||
"quickCopySelectLink": "zotero",
|
|
||||||
"rawImports": false,
|
|
||||||
"rawLaTag": "#LaTeX",
|
|
||||||
"relativeFilePaths": false,
|
|
||||||
"remigrate": false,
|
|
||||||
"resetKeyOnChange": false,
|
|
||||||
"scrubDatabase": false,
|
|
||||||
"separatorList": "and",
|
|
||||||
"separatorNames": "and",
|
|
||||||
"skipFields": "",
|
|
||||||
"skipWords": "a,ab,aboard,about,above,across,after,against,al,along,amid,among,an,and,anti,around,as,at,before,behind,below,beneath,beside,besides,between,beyond,but,by,d,da,das,de,del,dell,dello,dei,degli,della,dell,delle,dem,den,der,des,despite,die,do,down,du,during,ein,eine,einem,einen,einer,eines,el,en,et,except,for,from,gli,i,il,in,inside,into,is,l,la,las,le,les,like,lo,los,near,nor,of,off,on,onto,or,over,past,per,plus,round,save,since,so,some,sur,than,the,through,to,toward,towards,un,una,unas,under,underneath,une,unlike,uno,unos,until,up,upon,versus,via,von,while,with,within,without,yet,zu,zum",
|
|
||||||
"startupProgress": "popup",
|
|
||||||
"strings": "",
|
|
||||||
"stringsOverride": "",
|
|
||||||
"testing": false,
|
|
||||||
"verbatimFields": "url,doi,file,pdf,ids,eprint,/^verb[a-z]$/,groups,/^citeulike-linkout-[0-9]+$/, /^bdsk-url-[0-9]+$/",
|
|
||||||
"warnBulkModify": 10,
|
|
||||||
"warnTitleCased": false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
# My dotfiles
|
|
||||||
|
|
||||||
To get started, run the following:
|
|
||||||
|
|
||||||
```
|
|
||||||
bash <(curl -s https://git.hektormisplon.xyz/hektor/dots/raw/branch/master/.bin/setup)
|
|
||||||
```
|
|
||||||
|
|
||||||
Note: will not set up *everything* (e.g. `/etc` configs, dependencies...), but
|
|
||||||
should get you up and running.
|
|
||||||
|
|
||||||
2025-10-04: I am migrating from Arch Linux to NixOS. For this transition, these
|
|
||||||
dotfiles are currently included as a subtree in my [NixOS repository](https://git.hektormisplon.xyz/hektor/nix).
|
|
||||||
Whitespace-only changes.
Whitespace-only changes.
Loaded 100 of 324 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user