Compare commits

...
This repository has been archived on 2024-04-07. You can view files and clone it, but cannot push or open issues or pull requests.

178 Commits
void ... main

Author SHA1 Message Date
lelgenio 6e3091d419 add html! highlighter 2022-08-27 20:25:44 -03:00
lelgenio c8c40a6abd permitir mais campos como nome de usuário 2022-07-29 13:45:09 -03:00
lelgenio c576cc29e1 fixes for arch 2022-06-22 11:20:49 -03:00
lelgenio e3bdbbd3dc kak: enable snippets 2022-06-21 16:46:54 -03:00
lelgenio cb4c21c0bb update rust analyzer installer 2022-06-21 16:33:32 -03:00
lelgenio a8169cdc41 firefox: remove titlebar 2022-06-21 15:59:06 -03:00
lelgenio 1026262031 fish: fix errors with prompt when cwd does not exist 2022-06-02 15:26:44 -03:00
lelgenio 6397ca360f waybar: disable bluetooth 2022-06-01 08:41:04 -03:00
lelgenio 1dffd48e38 fish: set NVMDIR 2022-06-01 08:40:47 -03:00
lelgenio ea44da0faf vscode: disable auto formatting 2022-06-01 08:40:21 -03:00
lelgenio 2508fc6a89 suspend: fix to work with systemd 2022-05-21 13:35:18 -03:00
lelgenio cfd141cff4 lsp: RA use the same target dir to check 2022-05-20 21:09:25 -03:00
lelgenio 79f987141b kak: follow kak-lsp master 2022-05-19 09:29:01 -03:00
lelgenio 7527a862f2 lsp: add clojure lsp 2022-05-18 23:10:35 -03:00
lelgenio 78d50445ca kak: show lsp progress on status bar 2022-05-18 23:10:14 -03:00
lelgenio 20d249b59e fix typo 2022-05-18 23:09:55 -03:00
lelgenio d45211ea47 git: enable rerere 2022-05-18 23:09:24 -03:00
lelgenio ba57fb58f4 don't run git so often 2022-05-13 11:19:25 -03:00
lelgenio 57d49c14e7 disable password prompt for gpg agent 2022-05-13 11:19:10 -03:00
lelgenio 00a9b4b55b minor 2022-05-08 00:10:14 -03:00
lelgenio 1d21de79ce lsp: update haskell config 2022-05-08 00:10:14 -03:00
lelgenio e466cab299 mark askama files as jinja 2022-05-08 00:10:14 -03:00
lelgenio 23acfb1fde kak: rust-analyzer now uses default inlay hints 2022-05-08 00:10:14 -03:00
lelgenio 8f15260d48 cron: run vdirsyncer less frequently 2022-05-06 10:52:54 -03:00
lelgenio b0d5c84786 kak: don't error on missing commands for kak-lsp 2022-05-05 13:49:41 -03:00
lelgenio 6fd08dab40 kak: copy all selections to clipboard 2022-05-03 14:16:16 -03:00
lelgenio 5ed4dc9648 git: update push alias 2022-05-03 14:16:16 -03:00
lelgenio e355e5efd3 fish: fix PATH for cargo and yarn 2022-05-02 00:20:44 -03:00
lelgenio 48ec8b5e57 fish: add shortcut for youtube-dl 2022-05-02 00:20:25 -03:00
lelgenio 4ce6ddecda waybar: add shortcut for pulse-sink 2022-05-02 00:20:11 -03:00
lelgenio b2005c5861 config: usec correct method for reloading waybar 2022-04-29 19:53:17 -03:00
lelgenio a9a28656b7 plugins: add option to toggle asdf 2022-04-29 19:41:04 -03:00
lelgenio ba91f1fe55 packages: add arch freeze 2022-04-29 19:40:44 -03:00
lelgenio 7412c7cd9a rust: disable sccache 2022-04-28 00:32:19 -03:00
lelgenio 9e1f9fb2ba systemd: lower limit of restarts per second 2022-04-28 00:32:04 -03:00
lelgenio 0efcbe0b4d minor 2022-04-27 00:51:13 -03:00
lelgenio 7524897191 root: rename elogind to logind and fix path for systemd logind 2022-04-26 20:51:15 -03:00
lelgenio 30594f3d10 grub: add arch and nixos menuentries for grub 2022-04-26 19:37:39 -03:00
lelgenio 6b80ed57d0 sway: restart waybar on reloads on systemd 2022-04-26 19:26:25 -03:00
lelgenio 4e7a55c6f4 fixup! fish: fix loading fzf key binds 2022-04-26 19:26:19 -03:00
lelgenio 39af56aa61 alias: wcf now accespts file paths 2022-04-21 06:56:00 -03:00
lelgenio 680b03819d systemd: auto restart services 2022-04-21 06:55:46 -03:00
lelgenio 93f60bacab root: add systemd configs 2022-04-21 06:55:38 -03:00
lelgenio 8be7323bba systemd: enable kdeconnect on arch 2022-04-16 20:01:03 -03:00
lelgenio 85a3cc0601 vscode: ignore whitespace on diffs 2022-04-14 11:51:30 -03:00
lelgenio 0f75cd1816 fish: fix loading fzf key binds 2022-04-14 11:51:24 -03:00
lelgenio 39c1da87b0 bugfix: fixes for arch 2022-04-14 09:22:29 -03:00
lelgenio c90a3bb44b minor 2022-04-13 00:15:38 -03:00
lelgenio 62aadda8a1 systemd: fix gammastep 2022-04-12 22:50:04 -03:00
lelgenio 7c33d17c17 root: update btrfs flags 2022-04-12 22:44:26 -03:00
lelgenio 71bb6f47fc git: pull user config back into global config 2022-04-12 16:21:18 -03:00
lelgenio 506dbb0f0e add systemd support 2022-04-10 23:29:41 -03:00
lelgenio 54d0b12586 kak: fix rust-analyzer inlay hints 2022-04-09 00:02:59 -03:00
lelgenio 17bc20aefe void: add some packages 2022-04-08 23:31:58 -03:00
lelgenio 6061a502dd vscode: add proprietary vscode config(same as oss) 2022-04-08 22:22:39 -03:00
lelgenio 31f1ef30d0 bugfix: theme not beign detected 2022-04-08 08:03:48 -03:00
lelgenio 1044517e8f git: update work gitdir path 2022-04-07 16:27:41 -03:00
lelgenio 43e0fdf85e scripts: add gdm colemak script 2022-04-04 00:54:29 -03:00
lelgenio 97642cb85c fish: fix naming sessions 2022-04-04 00:53:51 -03:00
lelgenio 181ce3915c config: fix running on non void systems 2022-04-04 00:53:36 -03:00
lelgenio 7c09f32f29 scripts: update factorio saves path 2022-04-01 11:06:32 -03:00
lelgenio 23b60b96a5 fish: fix minor error on prompt 2022-04-01 11:06:32 -03:00
lelgenio 091d90a151 kak: reducec C-d C-u scrolling speed 2022-03-28 14:24:38 -03:00
lelgenio f01ccdcaf8 root: add timezone config 2022-03-26 18:23:07 -03:00
lelgenio cbf6e1d520 kak: alt i makes searches case insensitive 2022-03-25 13:49:16 -03:00
lelgenio 710e812c77 nushell: add nu config 2022-03-23 20:12:52 -03:00
lelgenio 217d46290d minor 2022-03-23 10:33:09 -03:00
lelgenio bcc4ec40d9 config: add some settings for gnome 2022-03-23 01:03:08 +00:00
lelgenio 42e6e90494 fish: add git push alias 2022-03-22 16:29:33 -03:00
lelgenio f77415ca42 kak: add shortcut to edit modified files 2022-03-22 16:25:35 -03:00
lelgenio e9f07b41ee fish: fix remote status icon 2022-03-21 15:29:28 -03:00
lelgenio aad59fcab4 scripts: fix sccache install 2022-03-21 14:24:27 -03:00
lelgenio c4e23d3bcf kak-lsp: add php options 2022-03-21 14:18:18 -03:00
lelgenio 7a66f81f7e fish: use diesel cli 2022-03-20 21:52:28 -03:00
lelgenio 225ade6c03 fish: fix prompt git unpushed indicator 2022-03-20 18:44:11 -03:00
lelgenio 530c2fd5bf rust: update rust config to be more realiable 2022-03-20 17:00:39 -03:00
lelgenio 27983102e4 kak: set good session names 2022-03-19 00:03:24 -03:00
lelgenio 9beaf86991 kak: random color for statusbar text 2022-03-18 17:48:40 -03:00
lelgenio fcfe5a2091 kak: minor changes
Status line faces now are transparent
Case insensitive search
2022-03-18 17:11:15 -03:00
lelgenio 771ce277cd firefox: auto detect devtools theme 2022-03-18 15:30:33 -03:00
lelgenio e00846c5e7 ranger: update config 2022-03-18 15:24:32 -03:00
lelgenio dcd62052a0 waybar: add unpushed repo indicator 2022-03-18 11:56:50 -03:00
lelgenio 962b2c9e1a vscode: update config 2022-03-17 17:20:17 -03:00
lelgenio d531c0ae37 vscode: update config 2022-03-17 14:24:55 -03:00
lelgenio 6858febb05 add acpi handler 2022-03-17 09:45:58 -03:00
lelgenio 8c528fea32 fish: add yarn asdf to PATH 2022-03-15 21:47:04 -03:00
lelgenio 67bae56bd3 scripts: add lock script 2022-03-08 20:40:13 -03:00
lelgenio 8194fca114 root: set swappiness 2022-03-08 20:35:06 -03:00
lelgenio bfeaa5b2b7 scripts: savegame_backup reduce verbosity 2022-03-04 10:05:28 -03:00
lelgenio ca6f41d357 fish: disable nvm for now 2022-03-02 11:14:42 -03:00
lelgenio 3a14d5bf9d sway: fix suspend script 2022-03-02 08:47:26 -03:00
lelgenio fbded1e8a4 fish: install yarn 2022-03-02 08:27:10 -03:00
lelgenio 5f8d4e8f88 kak: use sync formatting to allow erro handling 2022-03-01 11:03:39 -03:00
lelgenio 6a7814e675 scripts: add install trunk script 2022-03-01 10:48:10 -03:00
lelgenio 3db13bc10d dav: add todoman 2022-02-28 23:28:16 -03:00
lelgenio 7b6dac6f19 prefer lsp formatting 2022-02-28 15:29:14 -03:00
lelgenio c046ec6b33 fix rust install 2022-02-28 13:55:04 -03:00
lelgenio 9fd08600de config: fix mako reload 2022-02-28 11:22:59 -03:00
lelgenio 45ef5376f6 config: use single action to reload runit services 2022-02-28 10:12:32 -03:00
lelgenio 12d5f73aae fish: add asdf version manager 2022-02-28 10:12:16 -03:00
lelgenio 24250b7452 root: add visudo 2022-02-27 20:39:28 -03:00
lelgenio c43a2b64d6 fish: fix promp for root 2022-02-27 20:39:18 -03:00
lelgenio 994400fe3f root: add iwd config 2022-02-27 20:29:48 -03:00
lelgenio dedcf874c9 runit: be smarter about how to setup daemons 2022-02-27 20:07:56 -03:00
lelgenio 2032f51e43 config: replace fusuma with libinput gestures 2022-02-27 17:31:39 -03:00
lelgenio 2dd9a2130e foot: update config 2022-02-27 16:33:57 -03:00
lelgenio 901698ddd2 root: fix crypto label udev rule 2022-02-27 15:54:49 -03:00
lelgenio 9bdc810d75 config: use profiles 2022-02-27 13:29:29 -03:00
lelgenio 09aa0c141a sway: enable win+tab 2022-02-24 16:59:29 -03:00
lelgenio c8901181f2 fish: extract plugins config 2022-02-24 11:10:58 -03:00
lelgenio 3353a41950 root: separate out udev rules and kernel modules 2022-02-24 09:36:32 -03:00
lelgenio 129213e46a bmenu: remove grab due to bug 2022-02-24 08:05:42 -03:00
lelgenio b9f90acc65 root: fix broken sysctl 2022-02-23 23:54:45 -03:00
lelgenio eb683b20dc mail: timeout after 10 minutes 2022-02-23 20:38:17 -03:00
lelgenio c39173185f minor 2022-02-22 20:22:31 -03:00
lelgenio 4a8854000e scripts: br create dirs 2022-02-22 20:22:14 -03:00
lelgenio 0624f8e20d add mangohud 2022-02-22 20:22:04 -03:00
lelgenio 9331f31e96 void-freeze: remove package versions 2022-02-20 00:15:32 -03:00
lelgenio c03ba05e16 fish: remove work stuff 2022-02-19 23:56:11 -03:00
lelgenio fd2e4c05aa env: update path for rust stuff 2022-02-19 23:55:54 -03:00
lelgenio 445ba4f89a root: add locale to path for voidlinux 2022-02-19 23:55:25 -03:00
lelgenio 3e41eec9c0 keymap: add vconsole 2022-02-19 23:55:17 -03:00
lelgenio 637227380b kak: user rustfmt to format 2022-02-18 22:47:28 -03:00
lelgenio 63b8e37b35 fish: add plugin manager 2022-02-18 17:15:15 -03:00
lelgenio 85801514dd kak: extract keys to plugin 2022-02-16 21:51:59 -03:00
lelgenio 2ce3948a15 sway: fix suspending 2022-02-16 20:38:58 -03:00
lelgenio bfcd21e3b4 sway: update suspend script 2022-02-14 20:59:10 -03:00
lelgenio 7102da428e mail: use rust script if available 2022-02-13 21:02:31 -03:00
lelgenio 17c942e4b1 sway: remove caffeinated dependency 2022-02-13 20:26:02 -03:00
lelgenio 36f6544242 scripts: update default groups 2022-02-13 11:39:09 -03:00
lelgenio 286287778a root: use rundird 2022-02-13 11:20:30 -03:00
lelgenio 119a831e0c sway: use gammastep to replace redshift 2022-02-13 01:24:38 -03:00
lelgenio bfe6de2495 kak: switch some plugins around 2022-02-12 01:39:20 -03:00
lelgenio 0ba4ea0b93 minor 2022-02-11 23:01:37 -03:00
lelgenio 4ca932b759 root: fixup config 2022-02-11 23:01:19 -03:00
lelgenio c4cf066a18 fish: ignore if git not present 2022-02-10 02:07:43 -03:00
lelgenio b278368fca scripts: rename diffr wrapper 2022-02-09 22:47:37 -03:00
lelgenio 510f67eb9c scripts: fix shebangs 2022-02-08 20:41:09 -03:00
lelgenio 51decdfc62 scripts: savegame_backup disable ignore file generation 2022-02-08 01:00:44 -03:00
lelgenio f80d6412f5 alias: use sudoedit 2022-02-08 01:00:07 -03:00
lelgenio 8d107404cd sway: don't auto move mpv 2022-02-07 22:00:15 -03:00
lelgenio 8379dd5363 tmp changes 2022-02-07 17:54:54 -03:00
lelgenio 99cc97b529 kak: use my own crosshair plugin 2022-02-06 01:26:45 -03:00
lelgenio 0fbc722d9e kak: use my own mirror plugin 2022-02-06 01:02:52 -03:00
lelgenio f2e8bad010 rclone: fixup 2022-02-06 00:33:11 -03:00
lelgenio 80a6bdf2d1 mail: create notify mail service 2022-02-05 17:52:10 -03:00
lelgenio 1c0d53aa21 mail: overhaul email config 2022-02-03 23:55:50 -03:00
lelgenio cfb60eb797 env: work better with sql 2022-02-03 23:41:36 -03:00
lelgenio 862ce79c1a firefox: disable middlemouse.paste 2022-02-02 17:11:43 -03:00
lelgenio 4f39b1fb3f runit: fix mako starting 2022-02-02 17:11:22 -03:00
lelgenio b60af24d89 fish: switch environment variables 2022-02-02 00:00:32 -03:00
lelgenio 14ad330631 screenshot: fix cursor theme 2022-02-02 00:00:15 -03:00
lelgenio 866fe18d9e void.freeze 2022-02-01 20:54:04 -03:00
lelgenio c9661bbdbe void-freeze 2022-02-01 14:38:25 -03:00
lelgenio e3987d0531 config: speed up dotdrop apply 2022-01-31 22:21:55 -03:00
lelgenio c6f58a7e57 fish: add some aliases 2022-01-31 22:21:55 -03:00
lelgenio 57f6cb3611 mutt: add custom command to get pass 2022-01-31 22:21:55 -03:00
lelgenio f6a17f3726 kak: add tera filetype 2022-01-31 22:21:55 -03:00
lelgenio 92d9dee399 waybar: fix seed icon 2022-01-31 22:21:55 -03:00
lelgenio f0af27869b pkgs: add void and npm freeze 2022-01-31 22:21:54 -03:00
lelgenio de2b28b538 pkgs: add void mini 2022-01-31 16:16:57 -03:00
lelgenio e3a7acecb5 kak: update filetypes 2022-01-31 15:55:31 -03:00
lelgenio acbe0239cf env: add flatpak data dirs 2022-01-21 21:58:40 -03:00
lelgenio a774bb98e7 sway: add ocr bind 2022-01-21 18:16:40 -03:00
lelgenio 3c770a2e31 waybar: ignore when mpd is not installed 2022-01-10 15:15:34 -03:00
lelgenio f0ad4b9359 waybar: fix performance and minor tweaks 2022-01-07 23:52:56 -03:00
lelgenio b625acc2e5 pulse: fix hdmi output profile 2021-12-27 10:15:12 -03:00
lelgenio 9b52fa57c7 minor 2021-12-26 20:31:31 -03:00
lelgenio ef61588fc7 root: disable system specific dotfiles 2021-12-26 20:30:56 -03:00
lelgenio 1a5d5c0568 gamesave: add carrion 2021-12-26 20:30:29 -03:00
lelgenio 79e08d9550 runit: fix libexec path 2021-12-12 19:29:10 -03:00
lelgenio ccd519e66f waybar: fix bluetooth color 2021-12-12 19:28:41 -03:00
lelgenio f5f3954ebf pulse-sink: update to be a fish script 2021-12-11 10:48:51 -03:00
lelgenio 0dee833dcf waybar: add bluetooth 2021-12-11 01:33:51 -03:00
lelgenio 41d9da9109 dotdrop: auto clone completions 2021-12-10 20:24:06 -03:00
lelgenio b10ef6ac39 sway: export variables to dbus 2021-12-10 20:23:43 -03:00
lelgenio 91272f517e scripts: fix bashisms 2021-12-10 20:23:33 -03:00
lelgenio f733fe22e4 kak: switch surround extension 2021-12-10 20:21:28 -03:00
137 changed files with 2846 additions and 661 deletions

252
arch.freeze Normal file
View File

@ -0,0 +1,252 @@
alacritty
alsa-utils
archlinux-appstream-data-pamac
autoconf
automake
autopep8
base
bash-language-server
bat
bc
bemenu-wayland
binutils
bison
blade-formatter
blender
bluez-plugins
bluez-utils
bpython
bpytop
breeze-obsidian-cursor-theme
btrfs-progs
caffeinated
capitaine-cursors
cargo-edit
cargo-watch
clyrics
composer
cronie
deemix
deluge
deluge-gtk
dhcpcd
diffr
direnv
discord_arch_electron
docker
docker-compose
dotdrop
efibootmgr
emmet-cli
engrampa
entr
exa
fail2ban
fakeroot
fd
ffmpegthumbnailer
firefox
fish
flex
fuzzel
fzf
gammastep
gcc
gdb
gimp
git
gnu-netcat
grim
grub
gst-editing-services
gst-libav
gst-plugin-gtk
gst-plugin-pipewire
gst-plugins-bad
gst-plugins-bad-libs
gst-plugins-base
gst-plugins-base-libs
gst-plugins-good
gstreamer
gtk-engine-murrine
gtk3-nocsd-legacy-git
helix
htop
hunspell-pt-br
inetutils
intel-compute-runtime
intel-gpu-tools
intel-media-driver
intel-ucode
inter-font
inxi
iotop
ipython
isync
iwd
j4-dmenu-desktop
jitsi-meet-desktop-bin
kakoune
kanshi
kdeconnect
khal
khard
kitty
kvantum
lib32-libappindicator-gtk2
lib32-libappindicator-gtk3
libappindicator-gtk2
libopenraw
libpipewire02
libreoffice-fresh
libreoffice-fresh-pt-br
libtool
libva-intel-driver
libva-mesa-driver
libva-utils
libva-vdpau-driver
libvdpau-va-gl
light
linux-firmware
linux-zen
lutris
lutris-wine-meta
lynx
m4
make
mako
man-db
mariadb
mesa-vdpau
meson
micro
mpc
mpd
mpdris2
mpv
mtr
ncmpcpp
neofetch
neomutt
nerd-fonts-fira-code
nerd-fonts-hack
net-tools
networkmanager
nmap
nodejs-intelephense
nodejs-less
nodejs-less-plugin-clean-css
noto-fonts
noto-fonts-cjk
noto-fonts-emoji
noto-fonts-extra
ntp
obs-studio
orchis-kde-theme-git
orchis-theme-git
otf-font-awesome
p7zip
pacman-contrib
pamixer
papirus-folders
papirus-icon-theme
papirus-libreoffice-theme
paru
pass
patch
pavucontrol
php7
php7-apache
phpmyadmin
pikaur
pipewire-alsa
pipewire-jack
pipewire-media-session
pkgconf
pkgfile
playerctl
postgresql
powertop
pqiv
prettier
pulseaudio
pulseaudio-alsa
pulsemixer
python-pydocstyle
python-pyflakes
python-pylint
python-pynvim
python-rope
qemu
qt5-styleplugins
qt5ct
qt6ct
qt6gtk2
qutebrowser
ranger
rclone
reflector
ripgrep
rsync
ruby-fusuma
rust-analyzer
sassc
sd
shfmt
slurp
so
speedtest-cli
sshfs
starship
steam-native-runtime
sudo
swappy
sway
swayidle
swaylock
syncthing
tealdeer
telegram-desktop
texinfo
thunar
thunar-archive-plugin
thunar-vcs-plugin
thunar-volman
tlp
tor
translate-shell
transmission-cli
trash-cli
ttf-dejavu
ttf-font-awesome
ttf-liberation
ttf-ms-fonts
tumbler
tuxi-git
udiskie
uglify-js
urlview
vdirsyncer
vdpauinfo
visual-studio-code-bin
vscode-css-languageserver
vscode-html-languageserver
vscode-json-languageserver
vulkan-intel
vulkan-mesa-layers
vulkan-tools
waybar
wf-recorder
wget
which
wine-mono
winetricks
wl-clipboard
wtype
xdg-desktop-portal-wlr
xorg-xwayland
xsettingsd
yt-dlp
zathura
zathura-pdf-mupdf
zoxide

3
arch.freeze.fish Executable file
View File

@ -0,0 +1,3 @@
#!/bin/env fish
pacman -Qqe > arch.freeze

View File

@ -23,7 +23,8 @@ variables:
bar_pos: top
tmux: false
starship: false
supervisor: runit
asdf: false
user_svdir: $HOME/.config/runit
accent_fg: '#ffffff'
@ -37,15 +38,30 @@ variables:
mail:
personal:
user: lelgenio
mail: disroot.org
from: Leonardo Eugênio
user: lelgenio@disroot.org
imap: disroot.org
smtp: disroot.org
pass: disroot.org
work:
from: Leonardo Eugênio
user: leonardo@wopus.com.br
mail: wopus.com.br
imap: imap.wopus.com.br
smtp: smtp.wopus.com.br
pass: Work/wopus_email
nextcloud:
name: disroot
user: lelgenio
host: cloud.disroot.org
pass: disroot.org
###############################################################
profiles:
###############################################################
###############################################################
# Themes
###############################################################
dark:
@ -62,6 +78,7 @@ profiles:
txt: '#FFFFFF'
nontxt: '#252525'
random_range: "[a-f]"
normal:
black: '#404040'
red: '#AB4642'
@ -90,6 +107,7 @@ profiles:
txt: '#303030'
nontxt: '#D0D0D0'
random_range: "[0-4]"
normal:
black: '#555555'
red: '#D54E53'
@ -135,6 +153,7 @@ profiles:
tabR: Y
insertMode: s
insertQuit: kk
menu: s
qwerty:
variables:
@ -150,30 +169,107 @@ profiles:
tabR: O
insertMode: i
insertQuit: jj
menu: d
###############################################################
# Main profile
common:
###############################################################
main:
variables:
# gtk_theme: "Mint-Y{{@@ '-Dark' if color.type == 'dark' else '' @@}}-{{@@ accent_color_name.capitalize() @@}}"
gtk_theme: "Orchis-{{@@ accent_color_name.lower() @@}}-{{@@ 'dark' if color.type == 'dark' else 'light' @@}}"
gtk_theme: "Orchis-{{@@ accent_color_name.capitalize() @@}}-{{@@ color.type.capitalize() @@}}"
kvantum_theme: "Materia{{@@ color.type.capitalize() @@}}"
# icon_theme: "Mint-Y-{{@@ 'Dark' if color.type == 'dark' else 'Darker' @@}}-{{@@ accent_color_name.capitalize() @@}}"
icon_theme: "Papirus-{{@@ color.type.capitalize() @@}}"
cursor_theme: "Breeze_Obsidian"
# cursor_theme: "Breeze_Snow"
# cursor_theme: "capitaine-cursors"
dotfiles:
- ALL
include:
- "{{@@ key_layout @@}}"
- "{{@@ color_type @@}}"
- "accent_{{@@ accent_color_name @@}}"
dotfiles:
- alacritty
- backgrounds
- bat
- blender
- clang-format
- code-oss
- crontab
- dav
- deemix
- firefox
- fish
- fonts
- foot
- git
- gpg-agent
- i3
- imv
- kak-lsp
- kakoune
- kanshi
- kitty
- lesskey
- libinput-gestures
- mako
- mangohud
- mime
- mpd
- mpv
- mutt
- mypy
- nvim
- pqivrc
- prettierrc
- qutebrowser
- ranger
- rclone
- rustfmt
- scripts
- starship
- sway
- swaylock
- telegram-theme
- theme
- thunar
- tmux
- vscode
- waybar
- wofi
- xdpw
- zathura
###############################################################
# Os profiles
###############################################################
voidlinux:
include:
- "common"
variables:
supervisor: runit
dotfiles:
- runit_services
artixlinux:
include:
- "common"
dotfiles:
- arch-packages
- paru
variables:
supervisor: runit
archlinux:
include:
- "common"
dotfiles:
- arch-packages
- paru
- systemd
variables:
supervisor: systemd
###############################################################
config:
@ -200,7 +296,7 @@ dynvariables:
accent_color_name: test -n "$_ACCENT_COLOR" && echo "$_ACCENT_COLOR" || echo red
firefox_profile: cat ~/.mozilla/firefox/profiles.ini | grep '^Default' | head -n1 | cut -d= -f2
deezer_arl: pass show Entertainment/Deezer | awk '/^arl:/ {print $2}'
main_password: _pass_get "{{@@ mail.personal.mail @@}}" | base64
main_password: _pass_get "{{@@ mail.personal.pass @@}}" | base64
###############################################################
actions:
@ -214,12 +310,26 @@ actions:
true
reload_sway: swaymsg reload & disown
reload_mako: pkill -SIGHUP mako
reload_waybar: env SVDIR=$HOME/.config/runit/sv sv hup waybar
reload_xsettingsd: env SVDIR=$HOME/.config/runit/sv sv hup xsettingsd
reload_mako: makoctl reload
reload_waybar: pkill -SIGUSR2 waybar
reload_runit_sv:
which sv 2> /dev/null &&
env SVDIR="{{@@ user_svdir @@}}" sv reload "{0}" ||
true
restart_systemd_sv:
systemctl --user restart "${0}"
enable_systemd_sv:
systemctl --user enable --now "{0}" &
groups_install: _groups_install
lesskey: lesskey
reload_fish: pkill -SIGHUP fish
dotdrop_completions: |
comp_path="$HOME/.config/fish/completions/dotdrop.fish"
comp_url="https://raw.githubusercontent.com/deadc0de6/dotdrop/master/completion/dotdrop.fish"
if ! test -f "$comp_path"; then
wget -qO "$comp_path" "$comp_url" ||
rm "$comp_path"
fi
reload_qutebrowser: qutemsg config-source & disown
@ -236,29 +346,30 @@ actions:
crontab ~/.local/share/crontab
vdirsyncer: |
yes | vdirsyncer discover & disown
yes | vdirsyncer discover &
lnMail: |
ln -fs ~/.config/neomutt/mbsyncrc ~/.mbsyncrc
ln -fs ~/.config/neomutt/urlview ~/.urlview
ln -fs ~/.config/neomutt/msmtprc ~/.msmtprc
ranger_icons:
git clone
https://github.com/alexanderjeurissen/ranger_devicons
~/.config/ranger/plugins/ranger_devicons
start_services: >
_runit_config "{{@@ _dotfile_abs_dst @@}}"
fusuma gammastep mako xsettingsd mpd mpDris2 telegram pipewire
pipewire-media-session xdpw pulseaudio kdeconnectd kdeconnect-indicator
kanshi swayidle waybar syncthing udiskie
# bootstrap scripts
pam_gpg: _pam-gpg-strap
make_theme: _make_theme
install_meta: install_meta
qt6ct: |
cd "$HOME/.config"
rm -rf "qt6ct/"
cp -r "qt5ct/" "qt6ct"
mv "qt6ct/qt5ct.conf" "qt6ct/qt6ct.conf"
install_arch_meta: install_arch_meta
install_mpv: _mpv_install
filter_backgrounds: _backgrouds_filter
apply_gsetting_gnome: gsettings set org.gnome.desktop.interface {0} {1}
###############################################################
dotfiles: # Just a bunch of paths and action mappings
@ -282,6 +393,7 @@ dotfiles: # Just a bunch of paths and action mappings
src: fish
dst: ~/.config/fish
actions:
- dotdrop_completions
- reload_fish
starship:
@ -377,11 +489,34 @@ dotfiles: # Just a bunch of paths and action mappings
- make_theme
- groups_install
services:
runit_services:
src: runit_sv
dst: ~/.config/runit/sv
dst: ~/.config/runit
systemd:
src: systemd
dst: ~/.config/systemd/user
actions:
- start_services
- enable_systemd_sv caffeinated.service
- enable_systemd_sv gammastep.service
- enable_systemd_sv kanshi.service
- enable_systemd_sv mako.service
- enable_systemd_sv mpDris2.service
- enable_systemd_sv notify-mail.service
- enable_systemd_sv pipewire.service
- enable_systemd_sv kdeconnectd.service
- enable_systemd_sv kdeconnect-indicator.service
- enable_systemd_sv sway-idle.service
- enable_systemd_sv syncthing.service
- enable_systemd_sv telegram-desktop.service
- enable_systemd_sv waybar.service
- enable_systemd_sv xsettingsd.service
libinput-gestures:
src: libinput-gestures.conf
dst: ~/.config/libinput-gestures.conf
actions:
- reload_runit_sv libinput-gestures
deemix:
src: deemix
@ -411,7 +546,12 @@ dotfiles: # Just a bunch of paths and action mappings
src: theme
dst: ~/
actions:
- reload_xsettingsd
- qt6ct
- restart_systemd_sv xsettingsd
- reload_runit_sv xsettingsd
- apply_gsetting_gnome gtk-theme '{{@@ gtk_theme @@}}'
- apply_gsetting_gnome icon-theme '{{@@ icon_theme @@}}'
- apply_gsetting_gnome cursor-theme '{{@@ cursor_theme @@}}'
prettierrc:
src: prettierrc.toml
@ -431,11 +571,11 @@ dotfiles: # Just a bunch of paths and action mappings
actions:
- pam_gpg
packages:
arch-packages:
src: meta.PKGBUILD
dst: ~/.local/share/metapkg/PKGBUILD
actions:
- install_meta
- install_arch_meta
kak-lsp:
src: kak-lsp.toml
@ -443,7 +583,7 @@ dotfiles: # Just a bunch of paths and action mappings
rustfmt:
src: rustfmt.toml
dst: ~/.rustfmt.toml
dst: ~/.config/rustfmt/rustfmt.toml
###############################################################
# Big pahts
@ -453,6 +593,10 @@ dotfiles: # Just a bunch of paths and action mappings
src: vscode.jsonc
dst: "~/.config/Code - OSS/User/settings.json"
vscode:
src: vscode.jsonc
dst: "~/.config/Code/User/settings.json"
telegram-theme:
src: ./telegram.palette
dst: ~/.local/share/TelegramDesktop/theme.tdesktop-palette
@ -472,9 +616,9 @@ dotfiles: # Just a bunch of paths and action mappings
alacritty: { "src":"alacritty.yml", "dst":"~/.config/alacritty.yml" }
bat: { "src":"bat", "dst":"~/.config/bat/config" }
foot: { "src": "foot.ini", "dst": "~/.config/foot/foot.ini" }
fusuma: { "src":"fusuma.yml", "dst":"~/.config/fusuma/config.yml" }
imv: { "src":"imv.conf", "dst":"~/.config/imv/config" }
kanshi: { "src":"kanshi", "dst":"~/.config/kanshi/config" }
mangohud: { "src":"MangoHud.conf", "dst":"~/.config/MangoHud/MangoHud.conf" }
mpd: { "src":"mpd.conf", "dst":"~/.config/mpd/mpd.conf" }
paru: { "src":"paru.conf", "dst":"~/.config/paru/paru.conf" }
pqivrc: { "src":"pqiv.ini", "dst":"~/.config/pqivrc" }

1
dotfiles/MangoHud.conf Normal file
View File

@ -0,0 +1 @@
full,histogram

View File

@ -4,6 +4,11 @@
# Behaviour
############################################################
shell:
program: /usr/bin/env
args:
- {{@@ shell @@}}
selection:
save_to_clipboard: true
@ -67,7 +72,9 @@ colors:
draw_bold_text_with_bright_colors: false
background_opacity: {{@@ opacity @@}}
window:
opacity: {{@@ opacity @@}}
dynamic_padding: true
############################################################

View File

@ -5,7 +5,8 @@ PATH={{@@ env['PATH'] @@}}
#minute hour day month day_week cmd
*/30 * * * * forecast json
*/5 * * * * checkmail update
*/5 * * * * vdirsyncer sync
*/30 * * * * vdirsyncer sync
*/30 * * * * pass git pull --rebase; pass git push
0 */6 * * * yes | vdirsyncer discover
*/30 * * * * savegame_backup
*/30 * * * * _gpg-unlock

View File

@ -0,0 +1,8 @@
# {{@@ header() @@}}
# A glob expression which matches all directories relevant.
path = "~/.local/share/calendars/*"
date_format = "%Y-%m-%d"
time_format = "%H:%M"
default_list = "Personal"
default_due = 48

View File

@ -53,9 +53,9 @@ fileext = ".vcf"
[storage contacts_remote]
type = "carddav"
url = "https://cloud.{{@@ mail.personal.mail @@}}/remote.php/dav/addressbooks/users/{{@@ mail.personal.user @@}}/"
username = "{{@@ mail.personal.user @@}}@{{@@ mail.personal.mail @@}}"
password.fetch = [ "command", "_pass_get", "{{@@ mail.personal.mail @@}}" ]
url = "https://{{@@ nextcloud.host @@}}/remote.php/dav/addressbooks/users/{{@@ nextcloud.user @@}}/"
username = "{{@@ nextcloud.user @@}}"
password.fetch = [ "command", "_pass_get", "{{@@ nextcloud.pass @@}}" ]
# CALDAV
[pair calendar]
@ -73,8 +73,8 @@ fileext = ".ics"
[storage calendar_remote]
type = "caldav"
url = "https://cloud.{{@@ mail.personal.mail @@}}/remote.php/dav/calendars/{{@@ mail.personal.user @@}}/"
username = "{{@@ mail.personal.user @@}}@{{@@ mail.personal.mail @@}}"
password.fetch = [ "command", "_pass_get", "{{@@ mail.personal.mail @@}}" ]
url = "https://{{@@ nextcloud.host @@}}/remote.php/dav/calendars/{{@@ nextcloud.user @@}}/"
username = "{{@@ nextcloud.user @@}}"
password.fetch = [ "command", "_pass_get", "{{@@ nextcloud.pass @@}}" ]
# vim: ft=ini

View File

@ -9,8 +9,8 @@
"artistNameTemplate": "%artist%",
"createAlbumFolder": true,
"albumNameTemplate": "%album%",
"createCDFolder": true,
"createStructurePlaylist": true,
"createCDFolder": false,
"createStructurePlaylist": false,
"createSingleFolder": true,
"padTracks": true,
"paddingSize": "0",

View File

@ -80,3 +80,8 @@
display: none;
}
/*** END Remove webRTC indicator ***/
/*** BEGIN Remove title bar ***/
#titlebar {
display: none;
}
/*** END Remove title bar ***/

View File

@ -10,6 +10,7 @@
user_pref("mousewheel.system_scroll_override_on_root_content.enabled", true);
user_pref("mousewheel.with_alt.action", 1);
user_pref("mousewheel.with_alt.delta_multiplier_y", 5);
user_pref("middlemouse.paste", false);
// don't show menu bar on Alt
user_pref("ui.key.menuAccessKeyFocuses", false);
@ -62,7 +63,7 @@ user_pref("devtools.editor.tabsize", 4);
user_pref("devtools.inspector.activeSidebar", "ruleview");
user_pref("devtools.inspector.three-pane-enabled", false);
user_pref("devtools.responsive.leftAlignViewport.enabled", true);
user_pref("devtools.theme", "dark");
user_pref("devtools.theme", "auto");
// hardware acceleration
user_pref("media.ffmpeg.vaapi.enabled", "true");

View File

@ -16,12 +16,14 @@ function calias
abbr -g mpn ncmpcpp
abbr -g dot "dotdrop install -f"
set -l root_cfg (dirname $DOTDROP_CONFIG)/root
alias rootdrop 'sudo dotdrop install -f -c "$root_cfg"'
cabbr ytd "yt-dlp --merge-output-format mp4"
cabbr p emerge
if command -qs xbps-install
cabbr p sudo xbps-install -y
end
cabbr p pacman
cabbr p pikaur
cabbr p yay
@ -32,9 +34,30 @@ cabbr p paru
# Editor
################################################################
{%@@ if editor == "kak" @@%}
function kak --wraps kak
if contains -- -s $argv > /dev/null
or contains -- -c $argv > /dev/null
command kak $argv
return
end
set -l session (
echo $PWD |
string replace -r "$HOME/?" '' |
string replace -a '/' '_'
)
if test $HOME = $PWD
set session (basename $PWD)
end
command kak -c $session $argv 2> /dev/null
or command kak -s $session $argv
or command kak $argv
end
{%@@ endif @@%}
cabbr v {{@@ editor @@}}
cabbr rv sudo {{@@ editor @@}}
cabbr rv sudoedit
cabbr rv doas {{@@ editor @@}}
@ -103,38 +126,12 @@ abbr -g gds 'git diff --staged'
abbr -g gc 'git commit'
abbr -g gca 'git commit --all'
abbr -g gcf 'git commit --fixup'
abbr -g gp 'git push -u origin (git branch --show-current)'
abbr -g gw 'git switch'
abbr -g gr 'cd (git root)'
abbr -g gri 'git rebase --interactive FETCH_HEAD'
################################################################
# work stuff
################################################################
abbr svu sv start apache mariadb
abbr svd sv stop apache mariadb
abbr svs sv status apache mariadb
abbr pname "\
set pname (basename (pwd | sd -- - _))
sd 'DB_DATABASE=.*' DB_DATABASE=\$pname .env
test (count dump/*) -eq 1
and mv dump/* dump/\$pname.sql"
abbr msv "\
string match -r 'DB_DATABASE=(?<db>.*)\$' < .env
set margs -v -u root --password=(_pass_get work_db)"
abbr msc 'echo "CREATE DATABASE $db" | mysql $margs'
abbr msdrop 'echo "DROP DATABASE $db" | mysql $margs'
abbr msl 'mysql $margs $db < dump/$db.sql'
abbr msd 'mariadb-dump $margs $db | mysql_format > dump/$db.sql'
abbr vw 'kak (fd -E \'*.min.js\' \'.(php|less|js)$\' app/ public/assets/ resources/)'
abbr gdw 'git diff -- "*.less" "*.js" "*.blade.php"'
abbr pl 'php7 artisan serve --host 0.0.0.0 & make watch'
function mysql_format
sd "\),\(" "),\n\t(" | sd "VALUES \(" "VALUES\n\t("
end
################################################################
# open
################################################################
@ -150,7 +147,7 @@ end
# Copy files like graphical programs
################################################################
function wl-copy-f -w wl-copy
function wl-copy-f
set -a file
for arg in (seq 1 (count $argv))
if test -f "$argv[$arg]"

View File

@ -8,6 +8,9 @@
set -U fish_features stderr-nocaret qmark-noglob regex-easyesc
if status is-interactive
{%@@ if asdf @@%}
set asdf
{%@@ endif @@%}
source {$__fish_config_dir}/env.fish
source {$__fish_config_dir}/wm.fish
@ -15,14 +18,7 @@ if status is-interactive
source {$__fish_config_dir}/keys.fish
source {$__fish_config_dir}/tmux.fish
source {$__fish_config_dir}/colors.fish
{%@@ if starship @@%}
starship init fish | source
# Set cursor shape
printf '\e[5 q' # Bar
{%@@ else @@%}
source {$__fish_config_dir}/prompt.fish
{%@@ endif @@%}
source {$__fish_config_dir}/plugins.fish
end

View File

@ -5,13 +5,29 @@
# | _| \__ \ | | |
# |_| |_|___/_| |_|
set -x QT_QPA_PLATFORMTHEME qt5ct
# set -x QT_QPA_PLATFOR wayland
set -x QT_QPA_PLATFORMTHEME gtk2
set -x DESKTOP_APP_I_KNOW_ABOUT_GTK_INCOMPATIBILITY 1
set -x ALSOFT_DRIVERS "pulse," # Telegram audio library
set -x SDL_GAMECONTROLLERCONFIG '050000004c0500006802000000800000,Sony PLAYSTATION(R)3 Controller,a:b0,b:b1,x:b3,y:b2,back:b8,guide:b10,start:b9,leftstick:b11,rightstick:b12,leftshoulder:b4,rightshoulder:b5,dpup:b13,dpdown:b14,dpleft:b15,dpright:b16,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:a2,righttrigger:a5,platform:Linux,'
for i in ~/.local/bin ~/.cargo/bin ~/.factorio/bin/*
test -d "$i";and fish_add_path "$i"
set -x XDG_DATA_DIRS "$XDG_DATA_DIRS:/var/lib/flatpak/exports/share"
set -x XDG_DATA_DIRS "$XDG_DATA_DIRS:$HOME/.local/share/flatpak/exports/share"
set -x XDG_DATA_DIRS "$XDG_DATA_DIRS:/usr/share"
set -x XDG_DATA_DIRS "$XDG_DATA_DIRS:$HOME/.local/share"
set -x XDG_CONFIG_HOME "$HOME/.config/"
if set -q asdf
set __cargo_asdf_bin ~/.asdf/installs/rust/*/bin/
set __yarn_asdf_bin ~/.config/yarn/global/node_modules/.bin/
else
set __cargo_bin ~/.cargo/bin/
set __yarn_bin ~/.yarn/bin/
set -x NVM_DIR ~/.local/share/nvm
end
for i in ~/.local/bin $__cargo_bin $__cargo_asdf_bin $__yarn_asdf_bin ~/.yarn/bin ~/.factorio/bin/*
test -d "$i";and fish_add_path --global "$i"
end
# needed for tmux
@ -83,6 +99,6 @@ set -x _COLOR_TYPE "{{@@ color_type @@}}"
set -x _ACCENT_COLOR "{{@@ accent_color_name @@}}"
set -x DOTDROP_CONFIG "{{@@ _dotdrop_cfgpath @@}}"
set -x DOTDROP_PROFILE "{{@@ profile @@}}"
# set -x DOTDROP_PROFILE "{{@@ profile @@}}"
set -x DOTDROP_WORKERS (math 2 \* (nproc))

View File

@ -34,13 +34,16 @@ end
bind \cy 'commandline | wl-copy -n'
# Enable fzf key bindings
if test -f /usr/share/fzf/key-bindings.fish
if not type -q fzf_key_bindings
and test -f /usr/share/fzf/key-bindings.fish
source /usr/share/fzf/key-bindings.fish
end
if type -q fzf_key_bindings
fzf_key_bindings
end
function rcd #{{{
function rcd
set file (mktemp)
ranger --choosedir=$file

View File

@ -0,0 +1,89 @@
# {{@@ header() @@}}
##################################################
# fundle fish plugin manager
##################################################
if not functions -q fundle
and test "$USER" != root
eval (curl -sfL https://git.io/fundle-install)
end
if not set -q asdf
fundle plugin 'FabioAntunes/fish-nvm'
end
fundle plugin 'edc/bass'
fundle init
################################################################
# Source .env files
################################################################
command -qs direnv &&
direnv hook fish | source
##################################################
# asdf Version manager
##################################################
if set -q asdf
if not test -d ~/.asdf
and test "$USER" != root
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.9.0
mkdir -p ~/.config/fish/completions
and ln -s ~/.asdf/completions/asdf.fish ~/.config/fish/completions
source ~/.asdf/asdf.fish
asdf plugin add nodejs
asdf install nodejs 12.13.1
asdf install nodejs latest
asdf global nodejs latest
asdf plugin-add yarn
asdf install yarn latest
asdf global yarn latest
asdf plugin add rust
asdf install rust nightly
asdf global rust nightly
end
test -f ~/.asdf/asdf.fish
and source ~/.asdf/asdf.fish
end
##################################################
# Rust tools
##################################################
command -qs rustup
or _install-rustup &> /dev/null &
command -qs sccache
or _install-sccache &> /dev/null &
# set -x RUSTC_WRAPPER sccache
command -qs rust-analyzer
or _install-rust-analyzer &> /dev/null &
command -qs trunk
or _install-trunk &> /dev/null &
command -qs diesel
and diesel completions fish | source
##################################################
# Prompt
##################################################
{%@@ if starship @@%}
starship init fish | source
# Set cursor shape
printf '\e[5 q' # Bar
{%@@ else @@%}
source {$__fish_config_dir}/prompt.fish
{%@@ endif @@%}

View File

@ -48,17 +48,24 @@ function _fish_prompt_git_remote_branches
end
function fish_git_prompt
pushd (string replace -r '/\.git(/.*)?$' '' "$PWD")
command -qs git
or return
set -l here (string replace -r '/\.git(/.*)?$' '' "$PWD")
test -d "$here"
or return
pushd "$here"
############################################################
# Check if in a git repo and save branch and status
############################################################
set git_branch (git branch --show-current 2> /dev/null);or return
set git_detach (_fish_prompt_git_detached)
set git_remote (_fish_prompt_git_remote_branches)
set git_remotes (git remote)
set git_status_s (timeout 1s git status -s | string collect)
set -l git_branch (git branch --show-current 2> /dev/null);or return
set -l git_detach (_fish_prompt_git_detached)
set -l git_remote_branch (git rev-parse --abbrev-ref (git branch --show-current)@{u} 2> /dev/null)
set -l git_status_s (timeout 1s git status -s | string collect)
_fish_prompt_normal " on "
@ -80,14 +87,23 @@ function fish_git_prompt
_fish_prompt_warn "init"
end
# print a "↑" if ahead of origin
for git_remote in (echo $git_remotes | sort -u)
# Remote has the current branch
string match -qr "$git_remote"/"$git_branch" $git_remote
# Check if remote is different
and not git diff --quiet "$git_branch" "$git_remote"/"$git_branch" --
and _fish_prompt_normal '↑'
and break
# Remote has the current branch
if test -n "$git_remote_branch"
# print a "↑" if ahead of origin
test 0 -ne (git log --oneline "$git_remote_branch"..HEAD -- | wc -l)
and set -l _git_sync_ahead '↑'
# print a "↓" if behind of origin
test 0 -lt (git log --oneline HEAD.."$git_remote_branch" -- | wc -l)
and set -l _git_sync_behind '↓'
if set -q _git_sync_ahead _git_sync_behind
_fish_prompt_normal '⇅'
else if set -q _git_sync_ahead
_fish_prompt_normal '↑'
else if set -q _git_sync_behind
_fish_prompt_normal '↓'
end
end
############################################################

View File

@ -11,13 +11,13 @@
function esway
# You get a wayland, and you get a wayland. Everybody get's a wayland!
set -x MOZ_ENABLE_WAYLAND 1
# set -x MOZ_ENABLE_WAYLAND 1
# set -x CLUTTER_BACKEND wayland
# set -x QT_QPA_PLATFORM wayland-egl
set -x QT_QPA_PLATFORM wayland-egl
# set -x ECORE_EVAS_ENGINE wayland-egl
# set -x ELM_ENGINE wayland_egl
# set -x SDL_VIDEODRIVER wayland
# set -x _JAVA_AWT_WM_NONREPARENTING 1
set -x _JAVA_AWT_WM_NONREPARENTING 1
# set -x NO_AT_BRIDGE 1
# Hardware acceleration
@ -39,12 +39,18 @@ function esway
# this should not be necessary, but whatever
if not pidof sway &> /dev/null
{%@@ if supervisor == "runit" @@%}
pkill -HUP -u "$USER" runsvdir
exec dbus-launch --exit-with-session sway
{%@@ elif supervisor == "systemd" @@%}
exec systemd-cat --identifier=sway sway
{%@@ else @@%}
exec dbus-launch --exit-with-session sway
{%@@ endif @@%}
end
end
if test "$XDG_VTNR" = 1
if test (tty) = /dev/tty1
and test -z "$DISPLAY$WAYLAND_DISPLAY"
esway &> .swaylog

View File

@ -8,7 +8,7 @@
# title=foot
# locked-title=no
font={{@@ font.mono @@}}:size={{@@ font.size.small * 4/3 @@}}
font={{@@ font.mono @@}}:size={{@@ font.size.small @@}}
# font-bold=<bold variant of regular font>
# font-italic=<italic variant of regular font>
# font-bold-italic=<bold+italic variant of regular font>
@ -18,7 +18,7 @@ font={{@@ font.mono @@}}:size={{@@ font.size.small * 4/3 @@}}
# vertical-letter-offset=0
# underline-offset=<font metrics>
# box-drawings-uses-font-glyphs=no
# dpi-aware=yes
dpi-aware=no
# initial-window-size-pixels=700x500 # Or,
# initial-window-size-chars=<COLSxROWS>
@ -28,7 +28,7 @@ font={{@@ font.mono @@}}:size={{@@ font.size.small * 4/3 @@}}
# notify=notify-send -a ${app-id} -i ${app-id} ${title} ${body}
bold-text-in-bright=yes
bold-text-in-bright=no
# bell=none
# word-delimiters=,│`|:"'()[]{}<>
# selection-target=primary

View File

@ -1,31 +0,0 @@
# {{@@ header() @@}}
# _____
# | ___| _ ___ _ _ _ __ ___ __ _
# | |_ | | | / __| | | | '_ ` _ \ / _` |
# | _|| |_| \__ \ |_| | | | | | | (_| |
# |_| \__,_|___/\__,_|_| |_| |_|\__,_|
swipe:
3:
left:
command: 'swaymsg workspace next'
right:
command: 'swaymsg workspace prev'
up:
command: 'swaymsg fullscreen toggle'
down:
command: 'launcher'
# pinch:
# in:
# command: 'xdotool key ctrl+shift+plus'
# out:
# command: 'xdotool key ctrl+minus'
# threshold:
# swipe: 1
# # pinch: 0.2
# interval:
# swipe: 0.5
# # pinch: 0.2

View File

@ -5,10 +5,9 @@
# | |_| | | |_
# \____|_|\__|
[user]
name = {{@@ username @@}}
email = {{@@ mail.personal.user @@}}@{{@@ mail.personal.mail @@}}
email = {{@@ mail.personal.user @@}}
[init]
defaultBranch = main
@ -22,6 +21,9 @@
[merge]
conflictStyle = diff3
[rerere]
enabled = true
[rebase]
abbreviateCommands = true
autoSquash = true
@ -30,13 +32,13 @@
[pager]
# differ is a program that shows word-by-word diff
#{%@@ if editor == "kak" @@%}#
log = diffr | kak-pager
show = diffr | kak-pager
diff = diffr | kak-pager
log = _diffr | kak-pager
show = _diffr | kak-pager
diff = _diffr | kak-pager
#{%@@ else @@%}#
log = diffr | less
show = diffr | less
diff = diffr | less
log = _diffr | less
show = _diffr | less
diff = _diffr | less
#{%@@ endif @@%}#
[alias]
@ -55,7 +57,10 @@
excludesfile = {{@@ _dotfile_abs_dst @@}}/ignore
; hooksPath = {{@@ _dotfile_abs_dst @@}}/hooks/
[includeIf "gitdir:~/Projects/work/"]
path = ~/.config/git/config-work
[includeIf "gitdir:~/Projects/"]
path = {{@@ _dotfile_abs_dst @@}}/config-personal
[includeIf "gitdir:~/Wopus/"]
path = {{@@ _dotfile_abs_dst @@}}/config-work
# vim: ft=ini

View File

@ -7,7 +7,7 @@
[user]
name = {{@@ mail.work.user.split("@")[0] | capitalize @@}}
email = {{@@ mail.work.user.split("@")[0] @@}}@{{@@ mail.work.mail @@}}
name = {{@@ mail.work.from | title @@}}
email = {{@@ mail.work.user @@}}
# vim: ft=ini

View File

@ -9,3 +9,6 @@
allow-preset-passphrase
max-cache-ttl 604800
default-cache-ttl 604800
allow-loopback-pinentry
pinentry-mode loopback

View File

@ -6,7 +6,7 @@
# |_|\_\__,_|_|\_\ |_____|____/|_|
snippet_support = false
snippet_support = true
verbosity = 2
[server]
@ -76,9 +76,7 @@ offset_encoding = "utf-8"
[language.haskell]
filetypes = ["haskell"]
roots = ["Setup.hs", "stack.yaml", "*.cabal"]
# You might also be interested in the newer, but early stage, haskell-language-server
# https://github.com/haskell/haskell-language-server
command = "hie-wrapper"
command = "haskell-language-server-wrapper"
args = ["--lsp"]
[language.html]
@ -133,7 +131,25 @@ command = "intelephense"
args = ["--stdio"]
settings_section = "intelephense"
[language.php.settings]
intelephense.format.braces = "k&r"
intelephense.storagePath = "/tmp/intelephense"
intelephense.environment.includePaths = [
"./vendor",
"./vendor/autoload",
"./vendor/laravel/framework/",
"./vendor/laravel/framework/src/",
"./vendor/laravel/framework/src/Illuminate/"
]
intelephense.files.exclude = [
"**/.git/**",
"**/.svn/**",
"**/.hg/**",
"**/CVS/**",
"**/.DS_Store/**",
"**/node_modules/**",
"**/bower_components/**",
"**/resources/views/**"
]
[language.python]
filetypes = ["python"]
@ -170,22 +186,14 @@ args = ["stdio"]
[language.rust]
filetypes = ["rust"]
roots = ["Cargo.toml"]
command = "sh"
args = [
"-c",
"""
if path=$(rustup which rust-analyzer 2>/dev/null); then
"$path"
else
rust-analyzer
fi
""",
]
roots = ["rust-toolchain.toml", "rust-toolchain", "Cargo.toml"]
command = "rust-analyzer"
[language.rust.settings.rust-analyzer]
## this can use too much space and processing power
# checkOnSave.extraArgs = ["--target-dir", "./target/check"]
hoverActions.enable = false # kak-lsp doesn't support this at the moment
procMacro.enable = true
cargo.loadOutDirsFromCheck = true
# procMacro.enable = true
# cargo.loadOutDirsFromCheck = true
[language.terraform]
filetypes = ["terraform"]
@ -199,6 +207,12 @@ roots = ["project.godot", ".git/"]
command = "nc"
args = [ "localhost", "6008"]
[language.clojure]
filetypes = ["clojure"]
roots = ["project.clj", ".git/"]
command = "clojure-lsp"
args = []

View File

@ -57,10 +57,17 @@ face global MenuInfo cyan
face global Information default,{{@@ bg_dark @@}}
face global Error default,red+g
face global StatusLine default,{{@@ bg_dark @@}}
face global StatusLineMode green,{{@@ bg_dark @@}}
face global StatusLineInfo default,{{@@ bg_dark @@}}
face global StatusLineValue default,{{@@ bg_dark @@}}
face global StatusLine %sh{
printf "rgb:"
head /dev/urandom |
base64 |
rg --text -o '{{@@ color.random_range @@}}' |
head -n 6 |
sd '\n' ''
}
face global StatusLineMode StatusLine
face global StatusLineInfo StatusLine
face global StatusLineValue StatusLine
face global StatusCursor {{@@ accent_fg @@}},{{@@ accent_color @@}}
face global Prompt yellow,default

View File

@ -12,6 +12,10 @@ hook global WinSetOption filetype=c %{
set buffer formatcmd 'clang-format'
}
hook global BufCreate .*\.rs %{
set buffer formatcmd 'rustfmt'
}
hook global BufCreate .*\.html %{
set buffer formatcmd 'prettier --parser html'
}
@ -50,6 +54,20 @@ hook global WinCreate .* %{
hook global BufCreate .*\.jsonc %[ set buffer filetype jsonc ]
hook global BufCreate .*\.blade.php %[ set buffer filetype blade ]
hook global BufCreate .*\.less %[ set buffer filetype less ]
hook global BufCreate .*\.(tera|askama)\.?.* %[
require-module jinja
add-highlighter buffer/jinja ref jinja
]
hook global WinSetOption filetype=rust %[
require-module rust
require-module html
add-highlighter shared/rust/html region -recurse '\{' 'html!\s*\{\K' '(?=\})' ref html
]
hook global WinSetOption filetype=sql %[
set buffer comment_line '--'
]
hook global WinSetOption filetype=jsonc %[
set buffer comment_line '//'

View File

@ -23,7 +23,7 @@ evaluate-commands %sh{
define-command -override diffr %{ try %{
execute-keys -draft 'ggxsdiff<ret>'
execute-keys -draft '%<a-;>J| diffr<ret>'
execute-keys -draft '%<a-;>J| _diffr<ret>'
ansi-render
} }
@ -39,8 +39,8 @@ hook global BufOpenFile .*/COMMIT_EDITMSG %{
}
hook global RegisterModified '"' %{ nop %sh{ {
printf %s "$kak_main_reg_dquote" | wl-copy -n
printf %s "$kak_main_reg_dquote" | xclip -i -selection clipboard
printf %s "$kak_reg_dquote" | wl-copy -n
printf %s "$kak_reg_dquote" | xclip -i -selection clipboard
} > /dev/null 2>&1 < /dev/null & }}
# Trim trailing whitespace

View File

@ -1,40 +1,10 @@
# {{@@ header() @@}}
map global normal <F2> ': lsp-rename-prompt<ret>'
map global normal <c-d> 10j
map global normal <c-u> 10k
{%@@ for old, new, gdoc, vdoc in [
[ "h", key.left, "line begin", "scroll left" ],
[ "l", key.right, "line right", "scroll right" ],
[ "k", key.up, "buffer begin", "scroll up" ],
[ "j", key.down, "buffer end", "scroll down" ],
[ "i", key.insertMode, "first non blank", "" ],
[ "n", key.next, "", "" ],
[ "o", "h", "", "" ],
] @@%}
{%@@ set NEW, OLD = new.upper(), old.upper()@@%}
{%@@ if vdoc @@%}
map global view {{@@ old @@}} ''
map global view {{@@ new @@}} {{@@ old @@}} -docstring "{{@@ vdoc @@}}"
{%@@ endif @@%}
{%@@ if gdoc @@%}
map global goto {{@@ old @@}} ''
map global goto {{@@ new @@}} {{@@ old @@}} -docstring "{{@@ gdoc @@}}"
{%@@ endif @@%}
map global normal {{@@ new @@}} {{@@ old @@}}
map global normal {{@@ NEW @@}} {{@@ OLD @@}}
map global normal <a-{{@@ new @@}}> <a-{{@@ old @@}}>
map global normal <a-{{@@ NEW @@}}> <a-{{@@ OLD @@}}>
{%@@ endfor @@%}
{%@@ if key.layout == 'colemak' @@%}
map global normal k s
map global normal K S
map global normal <c-k> <a-s>
map global normal t e
map global normal T E
{%@@ endif @@%}
# alt i makes searches case insensitive
map global prompt <a-i> '<c-a>(?i)<c-e>'
######################################################
# Emacs-like insert
@ -56,6 +26,7 @@ map global insert <c-w> "<a-;>b<a-;>d"
######################################################
map global insert <a-k> "<esc>"
map global insert <c-t> "<esc>"
######################################################

View File

@ -20,61 +20,58 @@ plug "andreyorst/plug.kak" noload config %{
plug 'eraserhd/kak-ansi'
plug 'alexherbo2/prelude.kak'
plug 'alexherbo2/auto-pairs.kak' commit "fd735ec149ef0d9ca5f628a95b1e52858b5afbdc" config %{
require-module 'prelude'
require-module 'auto-pairs'
auto-pairs-enable
plug 'alexherbo2/auto-pairs.kak' config %{
enable-auto-pairs
}
plug 'h-youhei/kakoune-surround'
plug 'lelgenio/kakoune-mirror-colemak' config %{
map global user "s" ': enter-user-mode mirror<ret>'
}
plug 'delapouite/kakoune-palette'
plug 'greenfork/active-window.kak'
plug 'insipx/kak-crosshairs' config %{
crosshairs
plug 'lelgenio/kak-crosshairs' config %{
crosshairs-enable
}
# Search and replace, for every buffer
plug 'occivink/kakoune-find'
plug "natasky/kakoune-multi-file"
plug "lelgenio/kakoune-colemak-neio"
plug 'kak-lsp/kak-lsp' do %{
cargo install --features "no-lto" --locked --force --path .
cargo install --locked --force --path .
} config %{
map global normal <F2> ': lsp-rename-prompt<ret>'
set global lsp_hover_max_lines 10
# lsp-inlay-diagnostics-enable global
set global lsp_auto_highlight_references true
# set global lsp_inlay_diagnostic_sign "●"
# set global lsp_diagnostic_line_error_sign "●"
set global lsp_inlay_diagnostic_sign "●"
set global lsp_diagnostic_line_error_sign "●"
# hook global BufCreate .* %{try lsp-enable}
hook global BufCreate .* %{try lsp-enable}
# hook global -group rust-inlay-hints-auto WinSetOption filetype=rust %{
# hook window -group rust-inlay-hints BufReload .* rust-analyzer-inlay-hints
# hook window -group rust-inlay-hints NormalIdle .* rust-analyzer-inlay-hints
# hook window -group rust-inlay-hints InsertIdle .* rust-analyzer-inlay-hints
# hook -once -always window WinSetOption filetype=.* %{
# remove-hooks window rust-inlay-hints
# }
# }
define-command -override -hidden lsp-next-placeholder-bind %{
map global normal <tab> ': try lsp-snippets-select-next-placeholders catch %{ execute-keys -with-hooks <lt>tab> }<ret>' -docstring 'Select next snippet placeholder'
map global insert <tab> '<a-;>: try lsp-snippets-select-next-placeholders catch %{ execute-keys -with-hooks <lt>tab> }<ret>' -docstring 'Select next snippet placeholder'
}
lsp-next-placeholder-bind
map global insert <c-o> "<esc>: lsp-code-action-sync Fill<ret>"
# define-command -override -hidden lsp-enable-decals %{
# lsp-inlay-diagnostics-enable global
# try %{
# add-highlighter global/rust_analyzer_inlay_hints replace-ranges rust_analyzer_inlay_hints
# }
# }
define-command -override -hidden lsp-enable-decals %{
lsp-inlay-diagnostics-enable global
lsp-inlay-hints-enable global
}
# define-command -override -hidden lsp-disable-decals %{
# lsp-inlay-diagnostics-disable global
# remove-highlighter global/rust_analyzer_inlay_hints
# }
define-command -override -hidden lsp-disable-decals %{
lsp-inlay-diagnostics-disable global
lsp-inlay-hints-disable global
}
lsp-enable-decals
# hook global ModeChange '.*:insert:normal' %{lsp-enable-decals}
# hook global ModeChange '.*:normal:insert' %{lsp-disable-decals}
hook global ModeChange '.*:insert:normal' %{lsp-enable-decals}
hook global ModeChange '.*:normal:insert' %{lsp-disable-decals}
hook global WinSetOption filetype=(c|cpp|rust) %{
lsp-enable
hook window -group semantic-tokens BufReload .* lsp-semantic-tokens
hook window -group semantic-tokens NormalIdle .* lsp-semantic-tokens
hook window -group semantic-tokens InsertIdle .* lsp-semantic-tokens
@ -82,5 +79,16 @@ plug 'kak-lsp/kak-lsp' do %{
remove-hooks window semantic-tokens
}
}
declare-option -hidden str modeline_progress ""
define-command -hidden -params 6 -override lsp-handle-progress %{
set global modeline_progress %sh{
if ! "$6"; then
echo "$2${5:+" ($5%)"}${4:+": $4"}"
fi
}
}
set global modelinefmt "%%opt{modeline_progress} %opt{modelinefmt}"
}

View File

@ -1,7 +1,7 @@
# {{@@ header() @@}}
try %{
declare-user-mode surround
# declare-user-mode surround
declare-user-mode git
declare-user-mode find
}
@ -13,8 +13,8 @@ map global user 'z' ':zoxide ' -docstring 'zoxide'
map global user 'n' ': new<ret>' -docstring 'new window'
map global user 'e' 'x|emmet<ret>{{@@ "@" if not tabs @@}}' -docstring 'process line with emmet'
map global user 'm' ': try format-buffer catch lsp-formatting<ret>' -docstring 'format document'
map global user 'M' ': try format-selections catch lsp-range-formatting<ret>' -docstring 'format selection'
map global user 'm' ': try lsp-formatting-sync catch format-buffer<ret>' -docstring 'format document'
map global user 'M' ': try lsp-range-formatting-sync catch format-selections<ret>' -docstring 'format selection'
map global user 'c' ': comment-line<ret>' -docstring 'comment line'
map global user 'C' '_: comment-block<ret>' -docstring 'comment block'
@ -28,12 +28,6 @@ map global user 'b' ': find_buffer<ret>' -docstring 'switch buffer'
map global user 'l' ': lsp-enable-decals<ret>' -docstring 'LSP enable decals'
map global user 'L' ': lsp-disable-decals<ret>' -docstring 'LSP disable decals'
map global user 's' ': enter-user-mode surround<ret>' -docstring 'surround mode'
map global surround 's' ': surround<ret>' -docstring 'surround'
map global surround 'c' ': change-surround<ret>' -docstring 'change'
map global surround 'd' ': delete-surround<ret>' -docstring 'delete'
map global surround 'x' ': select-surround<ret>' -docstring 'select surround'
map global user 'v' ': enter-user-mode git<ret>' -docstring 'git vcs mode'
map global user 'V' ': enter-user-mode -lock git<ret>' -docstring 'git vcs mode'
map global git 's' ': git status<ret>' -docstring 'status'
@ -58,6 +52,7 @@ map global find 'f' ': find_file<ret>' -docstring 'file'
map global find 'l' ': find_line<ret>' -docstring 'jump to line'
map global find 'r' ': find_ripgrep<ret>' -docstring 'ripgrep all file'
map global find 'g' ': find_git_file<ret>' -docstring 'git files'
map global find 'm' ': find_git_modified<ret>' -docstring 'git modified files'
map global find 'c' ': find_dir<ret>' -docstring 'change dir'
map global find 'd' ': find_delete<ret>' -docstring 'file to delete'
@ -74,9 +69,16 @@ define-command -override -hidden find_delete \
} }
define-command -override -hidden find_git_file \
%{ evaluate-commands -existing %sh{
%{ evaluate-commands %sh{
for line in `git ls-files | wdmenu`; do
echo "edit '$line'"
echo "edit -existing '$line'"
done
} }
define-command -override -hidden find_git_modified \
%{ evaluate-commands %sh{
for line in `git status --porcelain | sd '^.. ' ''| wdmenu`; do
echo "edit -existing '$line'"
done
} }

View File

@ -0,0 +1,196 @@
# Configuration file for libinput-gestures.
# Mark Blakeney, Sep 2015
#
# The default configuration file exists at /etc/libinput-gestures.conf
# but a user can create a personal custom configuration file at
# ~/.config/libinput-gestures.conf.
#
# Lines starting with '#' and blank lines are ignored. Currently
# "gesture" and "device" configuration keywords are supported as
# described below. The keyword can optionally be appended with a ":" (to
# maintain compatibility with original format configuration files).
#
# Each gesture line has 3 [or 4] arguments separated by whitespace:
#
# action motion [finger_count] command
#
# where action and motion is either:
# swipe up
# swipe down
# swipe left
# swipe right
# swipe left_up
# swipe left_down
# swipe right_up
# swipe right_down
# pinch in
# pinch out
# pinch clockwise
# pinch anticlockwise
#
# command is the remainder of the line and is any valid shell command +
# arguments.
#
# finger_count is a single numeric digit and is optional (and is
# typically 3 or 4). If specified then the command is executed when
# exactly that number of fingers is used in the gesture. If not
# specified then the command is executed when that gesture is executed
# with any number of fingers. Gesture lines specified with finger_count
# have priority over the same gesture specified without any
# finger_count.
#
# Typically command will be _internal, or xdotool. See "man xdotool" for
# the many things you can action with that tool. Note that unfortunately
# xdotool does not work with native Wayland clients.
###############################################################################
# SWIPE GESTURES:
###############################################################################
# Note the default is an "internal" command that uses wmctrl to switch
# workspaces and, unlike xdotool, works on both Xorg and Wayland (via
# XWayland). It also can be configured for vertical and horizontal
# switching over tabular workspaces, as per the example below. You can
# also add "-w" to the internal command to allow wrapping workspaces.
# Ensure you install wmctrl if you use _internal.
# Move to next workspace (works for GNOME/KDE/etc on Wayland and Xorg)
gesture swipe up swaymsg fullscreen toggle
# NOTE ABOUT FINGER COUNT:
# The above command will configure this command for all fingers (i.e. 3
# for 4) but to configure it for 3 fingers only, change it to:
# gesture swipe up 3 _internal ws_up
# Then you can configure something else for 4 fingers or leave 4 fingers
# unconfigured. You can configure an explicit finger count like this for
# all example commands in this configuration file.
#
# gesture swipe up xdotool key super+Page_Down
# Move to prev workspace (works for GNOME/KDE/etc on Wayland and Xorg)
gesture swipe down launcher
# gesture swipe down xdotool key super+Page_Up
# Browser go forward (works only for Xorg, and Xwayland clients)
gesture swipe left swaymsg workspace next
# Browser go back (works only for Xorg, and Xwayland clients)
gesture swipe right swaymsg workspace prev
# NOTE: If you don't use "natural" scrolling direction for your touchpad
# then you may want to swap the above default left/right and up/down
# configurations.
# Optional extended swipe gestures, e.g. for browser tab navigation:
#
# Jump to next open browser tab
# gesture swipe right_up xdotool key control+Tab
#
# Jump to previous open browser tab
# gesture swipe left_up xdotool key control+shift+Tab
#
# Close current browser tab
# gesture swipe left_down xdotool key control+w
#
# Reopen and jump to last closed browser tab
# gesture swipe right_down xdotool key control+shift+t
# Example of 8 static workspaces, e.g. using KDE virtual-desktops,
# arranged in 2 rows of 4 columns across using swipe up/down/left/right
# to navigate in fixed planes. You can also add the "-w/--wrap" option
# to allow wrapping in any direction. You must configure your virtual
# desktops with the same column dimension.
# gesture swipe up _internal --cols 4 ws_up
# gesture swipe down _internal --cols 4 ws_down
# gesture swipe left _internal --cols 4 ws_left
# gesture swipe right _internal --cols 4 ws_right
#
# Example of 16 static workspaces, e.g. using KDE virtual-desktops,
# arranged in 4 rows of 4 columns across using swipe up/down/left/right
# to navigate in fixed planes, and also using swipe
# left_up/left_down/right_up/right_down to navigate diagonally. You can
# also add the "-w/--wrap" option to allow wrapping in any direction
# and/or diagonally. You must configure your virtual desktops with the
# same column dimension.
# gesture swipe up _internal --cols 4 ws_up
# gesture swipe down _internal --cols 4 ws_down
# gesture swipe left _internal --cols 4 ws_left
# gesture swipe right _internal --cols 4 ws_right
# gesture swipe left_up _internal --cols 4 ws_left_up
# gesture swipe left_down _internal --cols 4 ws_left_down
# gesture swipe right_up _internal --cols 4 ws_right_up
# gesture swipe right_down _internal --cols 4 ws_right_down
# Example virtual desktop switching for Ubuntu Unity/Compiz. The
# _internal command does not work for Compiz but you can explicitly
# configure the swipe commands to work for a Compiz virtual 2
# dimensional desktop as follows:
# gesture swipe up xdotool key ctrl+alt+Up
# gesture swipe down xdotool key ctrl+alt+Down
# gesture swipe left xdotool key ctrl+alt+Left
# gesture swipe right xdotool key ctrl+alt+Right
# Example to change audio volume:
# Note this only works on an Xorg desktop (not Wayland).
# gesture swipe up xdotool key XF86AudioRaiseVolume
# gesture swipe down xdotool key XF86AudioLowerVolume
###############################################################################
# PINCH GESTURES:
###############################################################################
# GNOME SHELL open/close overview (works for GNOME on Xorg only)
gesture pinch in xdotool key super+s
gesture pinch out xdotool key super+s
# KDE Plasma open/close overview
# gesture pinch in xdotool key ctrl+F9
# gesture pinch out xdotool key ctrl+F9
# GNOME SHELL open/close overview (works for GNOME on Wayland and Xorg)
# Note since GNOME 3.24 on Wayland this is implemented natively so no
# real point configuring for Wayland.
# gesture pinch in dbus-send --session --type=method_call --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'Main.overview.toggle();'
# gesture pinch out dbus-send --session --type=method_call --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'Main.overview.toggle();'
# Optional extended pinch gestures:
# gesture pinch clockwise <whatever command>
# gesture pinch anticlockwise <whatever command>
###############################################################################
# This application normally determines your touchpad device
# automatically. Some users may have multiple touchpads but by default
# we use only the first one found. However, you can choose to specify
# the explicit device name to use. Run "libinput list-devices" to work
# out the name of your device (from the "Device:" field). Then add a
# device line specifying that name, e.g:
#
# device DLL0665:01 06CB:76AD Touchpad
#
# If the device name starts with a '/' then it is instead considered as
# the explicit device path although since device paths can change
# through reboots this is best to be a symlink. E.g. instead of specifying
# /dev/input/event12, you should use the corresponding full path link
# under /dev/input/by-path/ or /dev/input/by-id/.
#
# You can choose to use ALL touchpad devices by setting the device name
# to "all". E.g. Do this if you have multiple touchpads which you want
# to use in parallel. This reduces performance slightly so only set this
# if you have to.
#
# device all
###############################################################################
# You can set a minimum travel distance threshold before swipe gestures
# are actioned using the swipe_threshold configuration command.
# Specify this value in dots. The default is 0.
# E.g. set it to 100 dots with "swipe_threshold 100".
# swipe_threshold 0
###############################################################################
# You can set a timeout on gestures from start to end. The default is
# the value commented below. It can be any value in float secs >= 0.
# 0 = no timeout. E.g. set it to 2 secs with "timeout 2".
# timeout 1.5
# vim:ft=ini

View File

@ -1,10 +1,10 @@
{%@@ for name, info in mail.items() | reverse @@%}
IMAPStore {{@@ name @@}}-remote
Host {{@@ info.mail @@}}
Host {{@@ info.imap @@}}
Port 993
User {{@@ info.user.split("@")[0] @@}}@{{@@ info.mail @@}}
PassCmd "_pass_get {{@@ info.mail @@}}"
User {{@@ info.user @@}}
PassCmd "_pass_get {{@@ info.pass @@}}"
SSLType IMAPS
CertificateFile /etc/ssl/certs/ca-certificates.crt

20
dotfiles/neomutt/msmtprc Normal file
View File

@ -0,0 +1,20 @@
# Set default values for all following accounts.
defaults
auth on
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile ~/.msmtp.log
{%@@ for name, info in mail.items() @@%}
account {{@@ name @@}}
host {{@@ info.smtp @@}}
port 587
from "{{@@ info.from @@}} <{{@@ info.user @@}}>"
user {{@@ info.user @@}}
passwordeval "_pass_get {{@@ info.pass @@}}"
{%@@ endfor @@%}
# Set a default account
account default : {{@@ (mail.keys() | list) [0] @@}}

View File

@ -15,21 +15,17 @@ set header_cache = ~/.cache/mutt/
set my_mailroot = ~/.local/share/mail
set use_from = yes
set ssl_force_tls = yes
# set ssl_force_tls = yes
{%@@ for name, info in mail.items() | reverse @@%}
set my_source_command = \
"_mutt_get-mail '{{@@ name @@}}' '{{@@ info.user.split("@")[0] @@}}' '{{@@ info.user @@}}' '{{@@ info.mail @@}}' |"
folder-hook "$my_mailroot/{{@@ name @@}}/" \
source "\"$my_source_command\""
source "$my_source_command"
set my_source_command = "_mutt_get-mail '{{@@ name @@}}' |"
folder-hook "$my_mailroot/{{@@ name @@}}/" source "\"$my_source_command\""
source "$my_source_command"
{%@@ endfor @@%}
{%@@ for name, info in mail.items() @@%}
set my_source_command = \
"_mutt_get-mail '{{@@ name @@}}' '{{@@ info.user.split("@")[0] @@}}' '{{@@ info.user @@}}' '{{@@ info.mail @@}}' |"
macro index,pager <f{{@@ loop.index @@}}> "<sync-mailbox><enter-command>source \"$my_source_command\"<enter><change-folder>!<enter>"
set my_source_command = "_mutt_get-mail '{{@@ name @@}}' |"
macro index,pager <f{{@@ loop.index @@}}> "<sync-mailbox><enter-command>source \"$my_source_command\"<enter><change-folder>!<enter>"
{%@@ endfor @@%}
# }}}
@ -40,7 +36,7 @@ set sort = reverse-last-date
set sort_aux = last-date
set mail_check_stats = yes
set mail_check_stats_interval = 60
set mail_check_stats_interval = 10
set mark_old = no # Unread mail stay unread until read
set mailcap_path = ~/.config/neomutt/mailcap

260
dotfiles/nushell/config.nu Normal file
View File

@ -0,0 +1,260 @@
# Nushell Config File
def create_left_prompt [] {
let path_segment = ($env.PWD)
$path_segment
}
def create_right_prompt [] {
let time_segment = ([
(date now | date format '%m/%d/%Y %r')
] | str collect)
$time_segment
}
# Use nushell functions to define your right and left prompt
let-env PROMPT_COMMAND = { create_left_prompt }
let-env PROMPT_COMMAND_RIGHT = { create_right_prompt }
# The prompt indicators are environmental variables that represent
# the state of the prompt
let-env PROMPT_INDICATOR = "〉"
let-env PROMPT_INDICATOR_VI_INSERT = ": "
let-env PROMPT_INDICATOR_VI_NORMAL = "〉"
let-env PROMPT_MULTILINE_INDICATOR = "::: "
# Specifies how environment variables are:
# - converted from a string to a value on Nushell startup (from_string)
# - converted from a value back to a string when running external commands (to_string)
# Note: The conversions happen *after* config.nu is loaded
let-env ENV_CONVERSIONS = {
"PATH": {
from_string: { |s| $s | split row (char esep) }
to_string: { |v| $v | str collect (char esep) }
}
"Path": {
from_string: { |s| $s | split row (char esep) }
to_string: { |v| $v | str collect (char esep) }
}
}
# Directories to search for scripts when calling source or use
#
# By default, <nushell-config-dir>/scripts is added
let-env NU_LIB_DIRS = [
($nu.config-path | path dirname | path join 'scripts')
]
# Directories to search for plugin binaries when calling register
#
# By default, <nushell-config-dir>/plugins is added
let-env NU_PLUGIN_DIRS = [
($nu.config-path | path dirname | path join 'plugins')
]
module completions {
# Custom completions for external commands (those outside of Nushell)
# Each completions has two parts: the form of the external command, including its flags and parameters
# and a helper command that knows how to complete values for those flags and parameters
#
# This is a simplified version of completions for git branches and git remotes
def "nu-complete git branches" [] {
^git branch | lines | each { |line| $line | str find-replace '\* ' '' | str trim }
}
def "nu-complete git remotes" [] {
^git remote | lines | each { |line| $line | str trim }
}
export extern "git checkout" [
branch?: string@"nu-complete git branches" # name of the branch to checkout
-b: string # create and checkout a new branch
-B: string # create/reset and checkout a branch
-l # create reflog for new branch
--guess # second guess 'git checkout <no-such-branch>' (default)
--overlay # use overlay mode (default)
--quiet(-q) # suppress progress reporting
--recurse-submodules: string # control recursive updating of submodules
--progress # force progress reporting
--merge(-m) # perform a 3-way merge with the new branch
--conflict: string # conflict style (merge or diff3)
--detach(-d) # detach HEAD at named commit
--track(-t) # set upstream info for new branch
--force(-f) # force checkout (throw away local modifications)
--orphan: string # new unparented branch
--overwrite-ignore # update ignored files (default)
--ignore-other-worktrees # do not check if another worktree is holding the given ref
--ours(-2) # checkout our version for unmerged files
--theirs(-3) # checkout their version for unmerged files
--patch(-p) # select hunks interactively
--ignore-skip-worktree-bits # do not limit pathspecs to sparse entries only
--pathspec-from-file: string # read pathspec from file
]
export extern "git push" [
remote?: string@"nu-complete git remotes", # the name of the remote
refspec?: string@"nu-complete git branches"# the branch / refspec
--verbose(-v) # be more verbose
--quiet(-q) # be more quiet
--repo: string # repository
--all # push all refs
--mirror # mirror all refs
--delete(-d) # delete refs
--tags # push tags (can't be used with --all or --mirror)
--dry-run(-n) # dry run
--porcelain # machine-readable output
--force(-f) # force updates
--force-with-lease: string # require old value of ref to be at this value
--recurse-submodules: string # control recursive pushing of submodules
--thin # use thin pack
--receive-pack: string # receive pack program
--exec: string # receive pack program
--set-upstream(-u) # set upstream for git pull/status
--progress # force progress reporting
--prune # prune locally removed refs
--no-verify # bypass pre-push hook
--follow-tags # push missing but relevant tags
--signed: string # GPG sign the push
--atomic # request atomic transaction on remote side
--push-option(-o): string # option to transmit
--ipv4(-4) # use IPv4 addresses only
--ipv6(-6) # use IPv6 addresses only
]
}
# Get just the extern definitions without the custom completion commands
use completions *
# for more information on themes see
# https://github.com/nushell/nushell/blob/main/docs/How_To_Coloring_and_Theming.md
let default_theme = {
# color for nushell primitives
separator: white
leading_trailing_space_bg: { attr: n } # no fg, no bg, attr non effectively turns this off
header: green_bold
empty: blue
bool: white
int: white
filesize: white
duration: white
date: white
range: white
float: white
string: white
nothing: white
binary: white
cellpath: white
row_index: green_bold
record: white
list: white
block: white
hints: dark_gray
# shapes are used to change the cli syntax highlighting
shape_garbage: { fg: "#FFFFFF" bg: "#FF0000" attr: b}
shape_binary: purple_bold
shape_bool: light_cyan
shape_int: purple_bold
shape_float: purple_bold
shape_range: yellow_bold
shape_internalcall: cyan_bold
shape_external: cyan
shape_externalarg: green_bold
shape_literal: blue
shape_operator: yellow
shape_signature: green_bold
shape_string: green
shape_string_interpolation: cyan_bold
shape_datetime: cyan_bold
shape_list: cyan_bold
shape_table: blue_bold
shape_record: cyan_bold
shape_block: blue_bold
shape_filepath: cyan
shape_globpattern: cyan_bold
shape_variable: purple
shape_flag: blue_bold
shape_custom: green
shape_nothing: light_cyan
}
# The default config record. This is where much of your global configuration is setup.
let $config = {
filesize_metric: false
table_mode: rounded # basic, compact, compact_double, light, thin, with_love, rounded, reinforced, heavy, none, other
use_ls_colors: true
rm_always_trash: false
color_config: $default_theme
use_grid_icons: true
footer_mode: "25" # always, never, number_of_rows, auto
quick_completions: true # set this to false to prevent auto-selecting completions when only one remains
partial_completions: true # set this to false to prevent partial filling of the prompt
animate_prompt: false # redraw the prompt every second
float_precision: 2
use_ansi_coloring: true
filesize_format: "auto" # b, kb, kib, mb, mib, gb, gib, tb, tib, pb, pib, eb, eib, zb, zib, auto
edit_mode: emacs # emacs, vi
max_history_size: 10000
menu_config: {
columns: 4
col_width: 20 # Optional value. If missing all the screen width is used to calculate column width
col_padding: 2
text_style: green
selected_text_style: green_reverse
marker: "| "
}
history_config: {
page_size: 10
selector: "!"
text_style: green
selected_text_style: green_reverse
marker: "? "
}
keybindings: [
{
name: completion_menu
modifier: none
keycode: tab
mode: emacs # Options: emacs vi_normal vi_insert
event: {
until: [
{ send: menu name: completion_menu }
{ send: menunext }
]
}
}
{
name: completion_previous
modifier: shift
keycode: backtab
mode: [emacs, vi_normal, vi_insert] # Note: You can add the same keybinding to all modes by using a list
event: { send: menuprevious }
}
{
name: history_menu
modifier: control
keycode: char_x
mode: emacs
event: {
until: [
{ send: menu name: history_menu }
{ send: menupagenext }
]
}
}
{
name: history_previous
modifier: control
keycode: char_z
mode: emacs
event: {
until: [
{ send: menupageprevious }
{ edit: undo }
]
}
}
]
}

View File

@ -11,7 +11,7 @@
set viewmode miller
# How many columns are there, and what are their relative widths?
set column_ratios 1,3,4
set column_ratios 2,4,2
# Which files should be hidden? (regular expression)
set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^__(py)?cache__$
@ -45,7 +45,7 @@ set vcs_aware true
# State of the four backends git, hg, bzr, svn. The possible states are
# disabled, local (only show local info), enabled (show local and remote
# information).
set vcs_backend_git enabled
set vcs_backend_git disabled
set vcs_backend_hg disabled
set vcs_backend_bzr disabled
set vcs_backend_svn disabled
@ -143,7 +143,7 @@ set dirname_in_tabs true
set mouse_enabled true
# Display the file size in the main column or status bar?
set display_size_in_main_column true
# set display_size_in_main_column true
set display_size_in_status_bar true
# Display the free disk space in the status bar?

View File

@ -1,6 +1,6 @@
[{{@@ mail.personal.mail.strip("mail.").split(".")[0] @@}}]
[{{@@ nextcloud.name @@}}]
type = webdav
vendor = nextcloud
user = {{@@ username @@}}
pass = {{@@ rclone_obscure(mail.personal.mail) @@}}
url = https://cloud.{{@@ mail.personal.mail @@}}/remote.php/webdav/
user = {{@@ nextcloud.user @@}}
pass = {{@@ rclone_obscure(nextcloud.pass) @@}}
url = https://{{@@ nextcloud.host @@}}/remote.php/webdav/

View File

@ -1,2 +0,0 @@
#!/bin/sh
exec _start_dbus-daemon

View File

@ -1,2 +0,0 @@
#!/bin/sh
exec fusuma

View File

@ -1,9 +1,3 @@
#!/bin/sh
if type curl; then
loc=`curl ipinfo.io/loc | sed 's/,/:/'`
else
loc="-30:-50"
fi
exec gammastep -l "$loc"
exec _gammastep

View File

@ -1,5 +0,0 @@
#!/bin/sh
PATH="/usr/lib/geoclue-2.0/demos/:/usr/libexec/geoclue-2.0/demos/"
exec agent

View File

@ -1,5 +1,3 @@
#!/bin/sh
PATH="$PATH:/usr/lib:/usr/libexec"
exec kdeconnectd --replace
exec _kdeconnectd

View File

@ -0,0 +1,2 @@
#!/bin/sh
exec libinput-gestures

View File

@ -1,2 +0,0 @@
#!/bin/sh
exec light -N 1

View File

@ -1,2 +1,8 @@
#!/bin/sh
while pgrep mako; do
pkill mako
sleep .5s;
done
exec mako

View File

@ -0,0 +1,2 @@
#!/bin/sh
exec _notify-mail

View File

@ -1,2 +0,0 @@
#!/bin/sh
exec redshift

View File

@ -1,8 +1,8 @@
# {{@@ header() @@}} #
group_imports = "StdExternalCrate"
imports_granularity = "Crate"
imports_layout = "Vertical"
# group_imports = "StdExternalCrate"
# imports_granularity = "Crate"
# imports_layout = "Vertical"
tab_spaces = {{@@ indent_width @@}}
max_width = 80

View File

@ -1,4 +1,6 @@
#!/bin/fish
#!/usr/bin/env fish
dotdrop install -f
test "{{@@ color.type @@}}" = "dark"
and set _COLOR_TYPE "light"

View File

@ -1,6 +1,6 @@
#!/bin/sh
/usr/bin/diffr \
exec /usr/bin/env diffr \
--colors 'refine-added:foreground:green:underline' \
--colors 'refine-added:background:none' \
--colors 'refine-removed:foreground:red:underline' \

9
dotfiles/scripts/_gammastep Executable file
View File

@ -0,0 +1,9 @@
#!/bin/sh
if type curl; then
loc=`curl ipinfo.io/loc | sed 's/,/:/'`
else
loc="-30:-50"
fi
exec gammastep -l "$loc"

4
dotfiles/scripts/_gdm_colemak Executable file
View File

@ -0,0 +1,4 @@
#!/bin/sh
localectl set-x11-keymap us pc104 colemak
localectl set-keymap colemak

View File

@ -0,0 +1,16 @@
#!/bin/fish
cd "$HOME/Projects"
fd -d5 -H '^\.git$' |
sd '\.git$' '' |
while read repo
pushd "$repo"
if git cherry -v 2> /dev/null | wc -l | xargs -n1 test 0 -lt
echo Unpushed repos $repo
break
end
popd
end
# vim: ft=fish

View File

@ -2,7 +2,7 @@
gpg-connect-agent reloadagent /bye
PATH="$PATH:/usr/lib:/usr/libexec"
PATH="$PATH:/usr/lib:/usr/libexec:/usr/lib/gnupg"
keygrip=$(cat "$HOME/.pam-gnupg")
echo '{{@@ main_password @@}}' |

View File

@ -1,5 +1,13 @@
#!/bin/sh
for g in docker video input audio wheel; do
sudo usermod "{{@@ env['USER'] @@}}" -aG "$g"
for g in audio video input bluetooth wheel _seatd kvm docker; do
if
cat /etc/group |
cut -d: -f1 |
grep "^${g}\$" > /dev/null
then
sudo usermod "$USER" -aG "$g" &
else
echo "warning: group $g does not exist"
fi
done

View File

@ -0,0 +1,3 @@
#!/bin/sh
cargo install diesel_cli --no-default-features --features mysql,postgres

View File

@ -0,0 +1,29 @@
#!/bin/sh
# Download and install rust analyzer to ~/.local/bin
set -ex
## Set this to get a fixed version
# PIN_VERSION="2022-05-02"
if [ -n "$PIN_VERSION" ]
then
REPO="https://github.com/rust-analyzer/rust-analyzer"
VERSION="$PIN_VERSION"
DLURL="$REPO/releases/download/$VERSION/rust-analyzer-x86_64-unknown-linux-gnu.gz"
else
API_URL="https://api.github.com/repos/rust-lang/rust-analyzer/releases/latest"
API_RESP="$(curl "$API_URL")"
VERSION=$(echo "$API_RESP" | jq -r '.tag_name')
DLURL=$(echo "$API_RESP" | jq -r '.assets[]|select(.name|match("x86_64.*gnu")).browser_download_url')
fi
GZFILE="$HOME/.cache/rust-analyzer-$VERSION-x86_64-unknown-linux-gnu.gz"
BINDIR="$HOME/.local/bin"
test -f "$GZFILE" ||
wget -O "$GZFILE" "$DLURL"
rm -f "$BINDIR/rust-analyzer"
gunzip "$GZFILE" --stdout > "$BINDIR/rust-analyzer"
chmod u+x "$BINDIR/rust-analyzer"

View File

@ -0,0 +1,3 @@
#!/bin/sh
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

View File

@ -0,0 +1,15 @@
#!/bin/sh
set -ex
REPO=https://github.com/mozilla/sccache
VERSION=v0.2.15
TARFILENAME="sccache-$VERSION-x86_64-unknown-linux-musl"
TARFILEPATH="$HOME/.cache/$TARFILENAME.tar.gz"
BINDIR="$HOME/.local/bin"
test -f "$TARFILEPATH" ||
wget -qO "$TARFILEPATH" "$REPO/releases/download/$VERSION/$TARFILENAME.tar.gz"
tar -xf "$TARFILEPATH" -C "$BINDIR" --wildcards "*/sccache" --strip-components=1
chmod u+x "$BINDIR/sccache"

14
dotfiles/scripts/_install-trunk Executable file
View File

@ -0,0 +1,14 @@
#!/bin/sh
set -ex
REPO=https://github.com/thedodd/trunk
VERSION=v0.14.0
TARFILE="$HOME/.cache/trunk-$VERSION-x86_64-unknown-linux-gnu.tar.gz"
BINDIR="$HOME/.local/bin"
test -f "$TARFILE" ||
wget -qO "$TARFILE" "$REPO/releases/download/$VERSION/trunk-x86_64-unknown-linux-gnu.tar.gz"
tar -xf "$TARFILE" -C "$BINDIR" trunk
chmod u+x "$BINDIR/trunk"

5
dotfiles/scripts/_kdeconnectd Executable file
View File

@ -0,0 +1,5 @@
#!/bin/sh
PATH="$PATH:/usr/lib:/usr/libexec:/usr/lib/libexec"
exec kdeconnectd --replace

13
dotfiles/scripts/_lock Executable file
View File

@ -0,0 +1,13 @@
#!/bin/sh
swaylock -f
export SVDIR="{{@@ user_svdir @@}}"
maybe() {
command -v $1 > /dev/null &&
env "$@"
}
maybe sv up swayidle
maybe systemctl --user start sway-idle.service

View File

@ -9,7 +9,7 @@
papirus-folders -uC "{{@@ accent_color_name @@}}" ||
papirus-folders -uD
} &
} > /dev/null &
{%@@ endif @@%}
{%@@ if 'materia' in gtk_theme.lower() @@%}
@ -67,7 +67,12 @@ mkdir -p "${dst_path}/${theme_name}"
{%@@ endif @@%}
{%@@ if 'Orchis' in gtk_theme.lower() @@%}
{%@@ if 'orchis' in gtk_theme.lower() @@%}
MARKER_FILE="$HOME/.themes/.orchis_installed"
test -f "$MARKER_FILE" &&
exit 0
TMPDIR="$HOME/.cache/share/orchis"
mkdir -p "$TMPDIR" && cd "$TMPDIR"
@ -79,4 +84,6 @@ mkdir -p "${dst_path}/${theme_name}"
./install.sh \
--theme "{{@@ accent_color_name.lower() @@}}" \
--tweaks "solid" --tweaks "compact"
touch "$MARKER_FILE"
{%@@ endif @@%}

View File

@ -1,16 +1,35 @@
#!/bin/sh
my_path="$1"
my_name="$2"
my_user="$3"
my_host="$4"
my_pass=`_pass_get "$my_host"`
if test "$#" -ne "1"; then
echo "Incorrect number of arguments, expected 1, got $#" >&2
fi
case "$1" in
{%@@ for name, info in mail.items() @@%}
{{@@ name @@}})
my_path="{{@@ name @@}}"
my_name="{{@@ info.from @@}}"
my_user="{{@@ info.user @@}}"
# my_host="{{@@ info.imap @@}}"
my_pass=`_pass_get "{{@@ info.pass @@}}"`
;;
{%@@ endfor @@%}
*)
echo "No valid account named $1" >&2
exit 1
;;
esac
cat <<EOF
set realname = "$my_name"
set from = "${my_name}@${my_host}"
set smtp_url = 'smtps://${my_user}@${my_host}'
set smtp_pass = '$my_pass'
set real_name = "$my_name"
set from = "$my_name <$my_user>"
set sendmail="/usr/bin/msmtp -a $my_path -- "
# set smtp_url = 'smtps://$my_user'
# set smtp_pass = '$my_pass'
# set Mailboxes
set folder = ~/.local/share/mail/${my_path}/
@ -28,3 +47,4 @@ mailboxes \
"=Trash" \
EOF

57
dotfiles/scripts/_notify-mail Executable file
View File

@ -0,0 +1,57 @@
#!/usr/bin/env fish
set NEW_MAIL_PATH ~/.local/share/mail/*/*/new/
set ICON "/usr/share/icons/{{@@ icon_theme @@}}/symbolic/status/mail-unread-symbolic.svg"
command -qs maildir-notify-daemon
and exec maildir-notify-daemon $NEW_MAIL_PATH
inotifywait \
--monitor \
--quiet \
--format %w%f \
-e move -e create \
$NEW_MAIL_PATH |
while read new_mail_file
# clear variables
set -e from
set -e subject
set -e headers_ended
test -f "$new_mail_file"
or continue
command cat "$new_mail_file" |
while read line
# End of headers
if string match -qr '^$' "$line"
set headers_ended
continue
end
if not set -q headers_ended
# capture header information
if string match -qr '^From: ' $line
set from $line
end
if string match -qr '^Subject: ' $line
set subject $line
end
else
# capture start of message, to maybe use as replacement of subject
set msg_head $line
break
end
end
# From may be formated as either "someone@example.com" or "Someone <someone@example.com>"
# Make for the seconde case, replace <.*> with nothing
set from (string replace -r '<.*>' '' $from)
# If a message lacks a subject, use the message head as one
if not test -n "$subject"
set subject "$msg_head"
end
notify-send --icon "$ICON" "$from" "$subject"
end

View File

@ -1,8 +1,7 @@
#!/bin/sh
gpg --list-secret-keys --with-keygrip \
"{{@@ username @@}}@{{@@ mail.personal.mail @@}}" |
gpg --list-secret-keys --with-keygrip |
awk '
/^ssb/ {
ssb=1

View File

@ -1,42 +0,0 @@
#!/bin/bash
set -ex
mkdir -p "$1"
cd `dirname $1` && shift
create_logger() {
pushd sv/
for svd in */; do
pushd "$svd"
if ! test -d log; then
mkdir -p log
ln -s "$(which _default_logger)" log/run
fi
popd
done
popd
}
enable_defaults() {
mkdir -p "runsvdir/default"
pushd "runsvdir/default"
svdir="$(readlink -f ../../sv)"
for sv; do
ln -fs "$svdir/$sv" .
done
popd
}
create_logger
test -f .inited && exit 0
enable_defaults "$@"
touch .inited

7
dotfiles/scripts/_suspend Executable file
View File

@ -0,0 +1,7 @@
#!/bin/sh
_lock
loginctl suspend &
systemctl suspend &
sudo -A zzz &

View File

@ -3,8 +3,8 @@
pkill -9 swayidle
exec swayidle -w \
before-sleep 'pkill caffeinated; swaylock -f' \
timeout 360 'pkill caffeinated; swaylock -f' \
before-sleep 'swaylock -f' \
timeout 360 'swaylock -f' \
timeout 1800 'mpc status | grep "^\[playing\]" > /dev/null ||
swaymsg "output * dpms off"' \
resume 'swaymsg "output * dpms on"' \

View File

@ -0,0 +1,16 @@
#!/bin/sh
export SVDIR="{{@@ user_svdir @@}}"
maybe() {
command -v $1 > /dev/null &&
env "$@"
}
if pidof swayidle > /dev/null; then
maybe sv down swayidle
maybe systemctl --user stop sway-idle.service
else
maybe sv up swayidle
maybe systemctl --user start sway-idle.service
fi

View File

@ -7,4 +7,4 @@
else
qutebrowser $@
fi
} &> /dev/null < /dev/null & disown
} > /dev/null 2>&1 &

View File

@ -1,4 +1,4 @@
#!/bin/fish
#!/usr/bin/env fish
# wrapper around bemenu
# bmenu * - use as dmenu, -p for custom prompt (man bemenu)
@ -82,7 +82,6 @@ command -qs dhist &&
env $wraper -- bemenu \
$focused_output\
--grab\
--ignorecase\
--bottom\
--no-overlap\

View File

@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
# Copyright Cédric Picard 2014 -- License WTFPL
# Inspired by Ranger's -- See https://github.com/hut/ranger
#
@ -37,7 +37,8 @@ sed -i -- '1d' "${namebase}.2"
{
echo '# Please review/modify this script or empty it to do nothing'
echo 'run(){'
echo ' mv -Ti -- "$1" "$2"'
echo ' mkdir -p "$(dirname "$2")"'
echo ' mv -T -- "$1" "$2"'
echo '}'
while read -r l1 <&3 && read -r l2 <&4; do
[ "$l1" = "$l2" ] || printf "%s\n%s\n" "$l1" "$l2"

View File

@ -1,54 +1,33 @@
#!/bin/sh
set -e
if test -z "$SWAYSOCK" && pidof gnome-shell &> /dev/null
if test -z "$SWAYSOCK" && pidof gnome-shell > /dev/null
then
exit 0
fi
test -z "$XDG_RUNTIME_DIR" &&
export XDG_RUNTIME_DIR=/run/user/$(id -u)
die() {
test "$?" = 0 ||
notify-send "Failed to sync mail" "try unlocking your gpg key"
}
# trap die EXIT
getnew() {
pushd "$HOME/.local/share/mail/" >/dev/null
find */INBOX*/new -type f |
sed -E '/Duolingo|LBRY/d' |
wc -l
popd >/dev/null
}
OLD=$(getnew)
{%@@ for name in mail | reverse @@%}
mkdir -p "$HOME/.local/share/mail/{{@@ name @@}}/"
{%@@ endfor @@%}
if test "$1" = "update" && ! pidof mbsync; then
if ! ping -c3 {{@@ mail.personal.mail @@}} &> /dev/null
if ! ping -c3 {{@@ mail.personal.imap @@}} > /dev/null
then
exit 0
fi
timeout 120s mbsync -a ||
timeout 120s mbsync -a ||
timeout 120s mbsync -a
timeout 10m mbsync -a
fi
NEW=$(getnew)
cd "$HOME/.local/share/mail/" >/dev/null
if test "$NEW" -gt "$OLD"; then
notify-send " New E-Mails!"
fi
echo $NEW | sed 's/^0$//'
caller=$(ps -o comm= $PPID)
if test "$caller" != "waybar"; then
pidof waybar >/dev/null &&
pkill -SIGRTMIN+4 waybar
fi
find */INBOX*/new -type f |
wc -l |
sed 's/^0$//'
# vim:ft=sh

View File

@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
RED_ON="$(pidof redshift)"

View File

@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
set -e
owm(){
@ -82,7 +82,7 @@ owm_pango(){
owm_json(){
owm
tee > .forecast.json <<EOF
tee > "$HOME/.forecast.json" <<EOF
{
"min":"$MIN",
"max":"$MAX",

View File

@ -1,4 +1,4 @@
#!/bin/fish
#!/usr/bin/env fish
if test (count $argv) -ne 0
for i in $argv

View File

@ -1,4 +1,4 @@
#!/bin/sh
#!/usr/bin/env bash
# {%@@ if launcher == "fuzzel" @@%} #
which fuzzel &> /dev/null &&

View File

@ -1,4 +1,4 @@
#!/bin/fish
#!/usr/bin/env fish
set fish_trace 1

View File

@ -1,11 +0,0 @@
#!/bin/sh
pidof mpd > /dev/null ||
exit 1
mpc status | grep '^\[playing\]' > /dev/null &&
mpc current -f ' %title% - %artist% ' |
sed 's/&/and/g' ||
printf ' '
true

View File

@ -1,25 +1,25 @@
#!/bin/sh
#!/usr/bin/env fish
opts="Fone\nSpeaker\nHDMI\nPhone"
out=$(printf $opts | wdmenu -p "Output: ")
vol=$(pamixer --get-volume)
set opts "Fone\nSpeaker\nHDMI\nPhone"
set out (printf $opts | wdmenu -p "Output: ")
set vol (pamixer --get-volume)
case "$out" in
Fone)
switch "$out"
case Fone
pactl set-card-profile 0 output:analog-stereo+input:analog-stereo
pactl set-default-sink $(pactl list sinks short | grep alsa | head -n1 | cut -f2)
pactl set-default-sink (pactl list sinks short | grep alsa | head -n1 | cut -f2)
pactl set-sink-port @DEFAULT_SINK@ analog-output-headphones
;;
Speaker)
case Speaker
pactl set-card-profile 0 output:analog-stereo+input:analog-stereo
pactl set-default-sink $(pactl list sinks short | grep alsa | head -n1 | cut -f2)
pactl set-default-sink (pactl list sinks short | grep alsa | head -n1 | cut -f2:)
pactl set-sink-port @DEFAULT_SINK@ analog-output-speaker
;;
HDMI)
pactl set-card-profile 0 output:hdmi-stereo+input:analog-stereo
pactl set-default-sink $(pactl list sinks short | grep hdmi | head -n1 | cut -f2)
;;
Phone)
case HDMI
pactl set-card-profile 0 (
env LC_ALL=C pactl list cards |
string replace -raf '^\s*(output:hdmi-stereo.*?input.*?): .*' '$1' |
head -n1 )
pactl set-default-sink (pactl list sinks short | grep hdmi | head -n1 | cut -f2)
case Phone
pactl unload-module module-null-sink
pactl unload-module module-rtp-send
@ -27,7 +27,8 @@ case "$out" in
pactl load-module module-rtp-send source=rtp.monitor destination=192.168.0.169 port=4010 mtu=320
pactl set-default-sink rtp
;;
esac
end
pamixer --set-volume "$vol"
# vim: ft=fish

View File

@ -2,7 +2,7 @@
# Create symbolic links from game save folders to documents folder
# Useful if you sync it with syncthing or something similar
set -ex
set -e
clean() {
if test $? -ne 0; then
@ -19,10 +19,6 @@ command -v xdg-user-dir &>/dev/null &&
SAVES_DIR="$DOCUMETS/GameSaves"
test -d "$SAVES_DIR" || exit 1
grep "^#include \.saves-ignore" "$DOCUMETS/.stignore" ||
echo "#include .saves-ignore" >"$DOCUMETS/.stignore"
rm "$DOCUMETS/.saves-ignore"
game_save() {
GAME_NAME="$1"
shift
@ -43,42 +39,22 @@ game_save() {
if test ! -L "$INSTALL_DIR" -o ! -d "$INSTALL_DIR"; then
ln -sT "$BACKUP_DIR" "$INSTALL_DIR"
fi
if test -n "$1"; then
printf "GameSaves/${GAME_NAME}/%s\n" $@ >>"$DOCUMETS/.saves-ignore"
fi
}
game_save mindustry \
".local/share/Mindustry" 'previews'
game_save minecraft \
".minecraft/saves"
game_save factorio \
".factorio" '_autosave*.zip' 'doc-html' 'temp' 'data' 'bin'
game_save factorio \
"Games/factorio" '_autosave*.zip' 'doc-html' 'temp' 'data' 'bin'
game_save cuphead \
"Games/cuphead/drive_c/users/$USER/Application Data/Cuphead"
game_save dusk \
"Games/dusk/game/saves"
game_save stardew_valley \
".config/StardewValley"
game_save dishonored \
"Games/dishonored/drive_c/users/lelgenio"
game_save hollow_knight \
".config/unity3d/Team Cherry/Hollow Knight"
game_save ULTRAKILL-wine \
"Games/ultrakill/drive_c/Program Files/ULTRAKILL/Saves"
game_save marioW \
"Games/super-mario-world"
game_save gta_san_andreas \
"Games/grand-theft-auto-san-andreas/drive_c/users/$USER/Documents/GTA San Andreas User Files"
game_save hl1 \
"Games/HalfLife2Source/game/hl1/save"
game_save hl2 \
"Games/HalfLife2Source/game/hl2/save"
game_save hl2ep1 \
"Games/HalfLife2Source/game/episodic/save"
game_save hl2ep2 \
"Games/HalfLife2Source/game/ep2/save"
game_save mindustry ".local/share/Mindustry"
game_save minecraft ".minecraft/saves"
game_save factorio_saves ".factorio/saves"
game_save factorio_saves "Games/factorio/saves"
game_save cuphead "Games/cuphead/drive_c/users/$USER/Application Data/Cuphead"
game_save dusk "Games/dusk/game/saves"
game_save stardew_valley ".config/StardewValley"
game_save dishonored "Games/dishonored/drive_c/users/lelgenio"
game_save hollow_knight ".config/unity3d/Team Cherry/Hollow Knight"
game_save carrion ".local/share/Phobia/Carrion"
game_save ULTRAKILL-wine "Games/ultrakill/drive_c/Program Files/ULTRAKILL/Saves"
game_save marioW "Games/super-mario-world"
game_save gta_san_andreas "Games/grand-theft-auto-san-andreas/drive_c/users/$USER/Documents/GTA San Andreas User Files"
game_save hl1 "Games/HalfLife2Source/game/hl1/save"
game_save hl2 "Games/HalfLife2Source/game/hl2/save"
game_save hl2ep1 "Games/HalfLife2Source/game/episodic/save"
game_save hl2ep2 "Games/HalfLife2Source/game/ep2/save"

View File

@ -1,35 +1,37 @@
#!/bin/sh
if which xdg-user-dir &>/dev/null; then
DESTFOLDER=$(xdg-user-dir PICTURES)
export XCURSOR_SIZE=40
export XCURSOR_THEME='Breeze_Snow'
if which xdg-user-dir >/dev/null 2>&1; then
DESTFOLDER="$(xdg-user-dir PICTURES)"
else
for i in Images Imagens Pictures Fotos ""; do
DESTFOLDER=$HOME/$i
DESTFOLDER="$HOME/$i"
test -d "$DESTFOLDER" &&
break
done
fi
DESTFOLDER="$DESTFOLDER/Screenshots"
mkdir -p "$DESTFOLDER"
DESTFILE="$DESTFOLDER/$(date +'%Y-%m-%d-%H%M%S_screenshot.png')"
mkdir -p $DESTFOLDER
DESTFILE=$DESTFOLDER/$(date +'%Y-%m-%d-%H%M%S_screenshot.png')
case $1 in
def)
# Screenshot to file
grim $DESTFILE
echo $DESTFILE
grim "$DESTFILE"
echo "$DESTFILE"
;;
area)
# Screen area to file
grim -g "$(slurp -d)" $DESTFILE
echo $DESTFILE
grim -g "$(slurp -d -b 30303088)" "$DESTFILE"
echo "$DESTFILE"
;;
area-clip)
# Screen area to clipboard
grim -g "$(slurp -d)" - | wl-copy
grim -g "$(slurp -d -b 30303088)" - | wl-copy
;;
clip)

View File

@ -1,19 +1,15 @@
#!/bin/sh
get_displays(){
get_displays() {
swaymsg -t get_outputs |
jq -r 'map(.name)|join("\n")'
jq -r 'map(.name)|join("\n")'
}
actions=(
enable
disable
brightness
)
actions="enable disable brightness"
action=$(printf "%s\n" "${actions[@]}" | wdmenu)
action=$(printf "%s\n" $actions | wdmenu)
case "$action" in
enable|disable)
enable | disable)
output=$(get_displays | wdmenu -p "output")
swaymsg output "$output" "$action"
;;

View File

@ -24,8 +24,11 @@ test "$1" = "-e" && shift
exec alacritty --class "$CLASS"
}
# {%@@ elif terminal == "foot" @@%} #
if ! pidof foot; then
foot --server 2> /dev/null &
fi
command -v footclient > /dev/null &&
exec footclient --class "$CLASS" -- $@
exec footclient --app-id "$CLASS" -- $@
# {%@@ elif terminal == "kitty" @@%} #
command -v kitty > /dev/null &&
exec kitty --class "$CLASS" -- $@

View File

@ -2,7 +2,7 @@
IMG="$HOME/.local/share/windows10.img"
if ! which qemu-system-x86_64 &>/dev/null; then
if ! which qemu-system-x86_64 >/dev/null; then
echo qemu not installed
exit 1
fi

View File

@ -29,7 +29,7 @@ main() {
[ -n "$entry" ] || exit
username=`pass show "$entry" 2>/dev/null | perl -ne 'print $1 if /^login: (.*)/'`
username=`pass show "$entry" 2>/dev/null | perl -ne 'print $2 if /^(login|user|email): (.*)/'`
password=`pass show "$entry" 2>/dev/null | head -n 1`
action=`printf "Autotype\nUsername -> $username\nPassword" | "$dmenu" -p Action`

View File

@ -23,15 +23,15 @@ assign [class=qutebrowser] workspace 2
# for_window [title=Whoops!] kill
assign [app_id=firefox] workspace 2
assign [class=firefox] workspace 2
assign [class=Firefox] workspace 2
assign [class=Chromium] workspace 2
# Books
# assign [app_id=org.pwmt.zathura] workspace 8
# Media
assign [app_id=mpv] workspace 8
for_window [app_id=mpv] workspace 8
# assign [app_id=mpv] workspace 8
# for_window [app_id=mpv] workspace 8
# Games
assign [class=Steam] workspace 9
@ -45,8 +45,8 @@ assign [class="Hollow Knight"] workspace 9
assign [class=dishonored.exe] workspace 9
# Chats
assign [app_id=telegram.?desktop] workspace 10
assign [class=TelegramDesktop] workspace 10
assign [app_id=".*[Tt]elegram.*"] workspace 10
assign [class=".*[Tt]elegram.*"] workspace 10
assign [class="Jitsi Meet"] workspace 10
assign [class=discord] workspace 10
assign [title=Discord] workspace 10

View File

@ -22,9 +22,8 @@ set $Up {{@@ key.up @@}}
set $Right {{@@ key.right @@}}
set $tabL {{@@ key.tabL @@}}
set $tabR {{@@ key.tabR @@}}
set $menu s
set $mus r
set $lock {{@@ key.next @@}}
set $menu {{@@ key.menu @@}}
###############################################################
# Includes
@ -41,16 +40,20 @@ include modes
include assigns
{%@@ if supervisor == "scripts" @@%}
include daemons
{%@@ elif supervisor == "runit" @@%}
set $user_svd "$HOME/.config/runit/runsvdir/default"
exec_always pgrep -u "$USER" "^runsvdir$" || runsvdir $user_svd
exec_always env SVDIR=$user_svd sv hup kanshi
exec_always env SVDIR=$user_svd sv hup waybar
exec_always _gpg-unlock
{%@@ if supervisor == "runit" @@%}
set $user_svd "{{@@ user_svdir @@}}"
exec_always pgrep -u "$USER" "^runsvdir$" || runsvdir $user_svd
exec_always env SVDIR=$user_svd sv hup kanshi
exec_always _gpg-unlock
{%@@ elif supervisor == "systemd" @@%}
exec "systemctl --user import-environment; systemctl --user start sway-session.target"
{%@@ else @@%}
include daemons
{%@@ endif @@%}
exec light -N 1
exec dbus-update-activation-environment DISPLAY XAUTHORITY SWAYSOCK I3SOCK WAYLAND_DISPLAY
# Prevent the screen from locking if fullscreen
for_window [title=.*] inhibit_idle fullscreen

View File

@ -49,8 +49,8 @@ exec udiskie
exec_always pidof -x fusuma || fusuma
# Blue light filter
exec /usr/lib/geoclue-2.0/demos/agent
exec_always pidof redshift || redshift
# exec /usr/lib/geoclue-2.0/demos/agent
exec_always pidof gammastep || gammastep -l -30:-50
# Screen manager
exec_always _sway_displays

View File

@ -23,7 +23,7 @@ $mod+g exec emoji
$mod+d exec sway-displays
# Insert special characters
$mod+Alt+c exec pidof caffeinated && pkill caffeinated || caffeinated -d
$mod+Alt+c exec _sway_idle_toggle
# Kill focused window
$mod+x kill
@ -37,8 +37,11 @@ $mod+p exec wpass
# Reload the configuration file
$mod+Shift+c reload
# Lock Sway
$mod+$lock exec _lock
# Lock Sway and suspend
--locked $mod+Control+z exec loginctl suspend || systemctl suspend
--locked $mod+Control+z exec _suspend
# Exit sway
Control+Alt+delete exec pkill -u "$USER" -HUP runsvdir ; exit

View File

@ -32,6 +32,9 @@ $mod+Alt+r exec sssway
# Color picker
$mod+c exec color-picker
# Apply Optical character recognition to clipboard
$mod+Control+v exec wl-paste | tesseract-ocr -l por - - | wl-copy
# show keys being pressed
$mod+k exec showkeys

View File

@ -57,6 +57,9 @@ bindsym --to-code {
{%@@ endfor @@%}
{%@@ endfor @@%}
$mod+Tab workspace next_on_output
$mod+Shift+Tab workspace prev_on_output
###############################################################
# Layout
@ -81,8 +84,8 @@ $mod+space focus mode_toggle
$mod+equal focus parent
$mod+minus focus child
$mod+tab scratchpad show
$mod+Shift+tab move container scratchpad
# $mod+tab scratchpad show
# $mod+Shift+tab move container scratchpad
}

View File

@ -0,0 +1,16 @@
# {{ header() }}
[Unit]
Description=Wayland equivalent of autorandr.
Documentation=https://sr.ht/~emersion/kanshi/
PartOf=graphical-session.target
[Service]
Type=simple
ExecStart=/bin/env _gammastep
Restart=always
StartLimitBurst=2
StartLimitInterval=1
[Install]
WantedBy=sway-session.target

View File

@ -0,0 +1,16 @@
# {{ header() }}
[Unit]
Description=Wayland equivalent of autorandr.
Documentation=https://sr.ht/~emersion/kanshi/
PartOf=graphical-session.target
[Service]
Type=simple
ExecStart=/usr/bin/kanshi
Restart=always
StartLimitBurst=2
StartLimitInterval=1
[Install]
WantedBy=sway-session.target

View File

@ -0,0 +1,16 @@
# {{ header() }}
[Unit]
Description=Wayland equivalent of autorandr.
Documentation=https://sr.ht/~emersion/kanshi/
PartOf=graphical-session.target
[Service]
Type=simple
ExecStart=/bin/env kdeconnect-indicator
Restart=always
StartLimitBurst=2
StartLimitInterval=1
[Install]
WantedBy=sway-session.target

View File

@ -0,0 +1,16 @@
# {{ header() }}
[Unit]
Description=Wayland equivalent of autorandr.
Documentation=https://sr.ht/~emersion/kanshi/
PartOf=graphical-session.target
[Service]
Type=simple
ExecStart=/bin/env _kdeconnectd
Restart=always
StartLimitBurst=2
StartLimitInterval=1
[Install]
WantedBy=sway-session.target

View File

@ -0,0 +1,16 @@
# {{ header() }}
[Unit]
Description= Lightweight notification daemon for Wayland compositors.
Documentation=https://github.com/emersion/mako/wiki
PartOf=graphical-session.target
[Service]
Type=simple
ExecStart=/usr/bin/mako
Restart=always
StartLimitBurst=2
StartLimitInterval=1
[Install]
WantedBy=sway-session.target

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