Compare commits

...

780 Commits

Author SHA1 Message Date
12fc9737f7 Change location 2025-01-09 17:27:41 +01:00
133aa0fa44 aur: Fix preexec conditional execution 2025-01-09 17:24:58 +01:00
d431c74ed2 spotify: Update GPG key 2025-01-09 17:24:46 +01:00
f98e9c1351 Install hedgewars 2025-01-09 17:24:36 +01:00
b85059b2fc aur: Update terraform-ls-bin 2025-01-04 11:21:05 +01:00
dac6a48a38 aur: Update spotify 2025-01-04 11:21:04 +01:00
90c69533a4 aur: Update slack-desktop 2025-01-04 11:21:04 +01:00
b5fb06b977 aur: Update python-vdf 2025-01-04 11:21:03 +01:00
43042e489f aur: Update portfolio-performance-bin 2025-01-04 11:21:00 +01:00
2766d90b27 aur: Update google-earth-pro 2025-01-04 11:20:59 +01:00
12d984a840 aur: Update terraform-ls-bin 2024-12-11 22:57:27 +01:00
a954a44abc aur: Update portfolio-performance-bin 2024-11-30 21:33:21 +01:00
4f2a9e67eb Add script to sync garmin 2024-11-30 21:33:10 +01:00
d9dd5a581e aur: Update python-aws-lambda-builders 2024-11-30 21:33:10 +01:00
e816019383 aur: Update portfolio-performance-bin 2024-11-30 21:33:10 +01:00
9eb9433349 aur: Update aws-sam-cli 2024-11-30 21:33:10 +01:00
016cb009cf aur: Update slack-desktop 2024-11-30 21:33:10 +01:00
0e5155d447 aur: Update python-aws-lambda-builders 2024-11-30 21:33:10 +01:00
5f4817d1f2 aur: Update backblaze-b2 2024-11-30 21:33:10 +01:00
a266112070 aur: Update terraform-ls-bin 2024-11-30 21:33:10 +01:00
873406ade5 aur: Update spotify 2024-11-30 21:33:10 +01:00
77d9901077 aur: Update python-vdf 2024-11-30 21:33:10 +01:00
0bddfee932 Use eza instead of exa 2024-11-30 21:32:42 +01:00
19f0fb0ddb Add btop 2024-11-30 21:32:42 +01:00
0901f946bc cargo: Use mold 2024-11-30 21:32:42 +01:00
9772e381ce aur: Update slack-desktop 2024-11-30 21:32:42 +01:00
2b86d66dca Fix include of the gitcfg file 2024-11-30 21:32:42 +01:00
2fef62c2dd Mark all submodules as trusted 2024-11-30 21:32:42 +01:00
ca4070f9e1 packages: Install ansible-lint 2024-11-10 16:10:19 +01:00
1e075ffb13 Formatter run 2024-11-10 16:09:03 +01:00
1429eaf34f make: Add fmt target 2024-11-10 16:08:21 +01:00
4ec1268b2e Update README 2024-11-10 16:07:58 +01:00
89ae314939 aur: Update screencfg-git 2024-11-10 15:56:36 +01:00
162c72aa1b Disable git gpg signing unconditionally 2024-11-10 15:56:36 +01:00
faed023d89 Remove unused machine config for repos 2024-11-10 15:56:36 +01:00
a9a4a1e288 Remove unused machine config for pass 2024-11-10 15:56:36 +01:00
ee824be6fa Fix neptune install script 2024-11-10 13:34:53 +01:00
c6c5812245 test: Fix paths to firmware 2024-11-10 12:52:25 +01:00
3f2cfc65c8 aur: Update grm-git 2024-11-10 12:50:13 +01:00
8514e52850 Enable pcscd socket instead of service 2024-11-09 19:05:21 +01:00
8b9475681a aur: Remove dateparser
It's now available in the official repos
2024-11-09 18:23:48 +01:00
cf2d9274d4 Add screencfg config 2024-11-09 18:01:46 +01:00
3d3890affe Add cargo config 2024-11-09 18:01:33 +01:00
c4ed7b9b9b Always copy files and directories, never symlink 2024-11-09 18:01:19 +01:00
81553524a6 Create XDG_ dirs on startup 2024-11-09 17:37:08 +01:00
e725fdea2a Print packages during update check 2024-11-09 12:44:24 +01:00
c13d4a4d2c grm: Use SSH for my repositories 2024-11-09 12:44:24 +01:00
4d818cd32b git: Automatically set up tracking 2024-11-09 12:44:24 +01:00
30f04074b7 packages: Add cargo-binstall 2024-11-09 12:44:24 +01:00
bc4665d629 packages: Add cargo-dist 2024-11-09 12:44:23 +01:00
bb90ad407e packages: Add cargo-hack 2024-11-09 12:41:18 +01:00
c80add037c packages: Add sccache 2024-11-02 12:00:58 +01:00
980ec8f5eb aur: Add backblaze-b2 2024-11-02 11:26:08 +01:00
c9b7711a95 packages: Add prettier 2024-11-02 11:01:42 +01:00
cebbd6ddbd packages: Add cargo-expand 2024-11-02 11:01:42 +01:00
4d09162f39 alacritty: Migrate config 2024-11-02 11:01:42 +01:00
a726a4de02 aur: Update slack-desktop 2024-11-02 11:01:42 +01:00
ecdf14ae5f aur: Update python-boto3-stubs 2024-11-02 11:01:42 +01:00
e0bf00ce13 aur: Update aws-sam-cli 2024-11-02 11:01:42 +01:00
c508c795bd aur: Update spotify 2024-11-02 11:01:42 +01:00
60cf14d327 aur: Update slack-desktop 2024-11-02 11:01:42 +01:00
7d5af14d21 aur: Update terraform-ls-bin 2024-11-02 11:01:42 +01:00
b259a11a3e aur: Update python-vdf 2024-11-02 11:01:42 +01:00
12b644378a Install slack 2024-11-02 11:01:42 +01:00
f38c3612df packages: Add taplo 2024-11-02 11:01:42 +01:00
7bcfa38026 Use "main" as default git branch 2024-11-02 11:01:42 +01:00
ddff48eef2 packages: Install uv 2024-11-02 11:01:42 +01:00
58e538bb4f aur: Update portfolio-performance-bin 2024-10-05 11:05:38 +02:00
37e6fafac0 dotfiles-directory: Ignore changes in .git/modules/ 2024-10-02 23:54:25 +02:00
146cbf39b7 Configure libvirt properly 2024-10-02 23:45:53 +02:00
59d9c95224 services: Make unit suffix explicit 2024-10-02 23:45:53 +02:00
9330040e00 dotfiles-directory: Rework permission assertion 2024-10-02 23:45:53 +02:00
34ad7579f1 Remove unused conditional 2024-10-02 23:18:18 +02:00
a34ab937e5 aur: Also install checkdepends 2024-10-02 23:01:15 +02:00
1e91752dc6 Fix missing submodules 2024-10-02 22:50:42 +02:00
8f5e821c13 zsh: Add alias for python shell 2024-10-02 22:37:21 +02:00
dafdbb3498 packages: Install yarn 2024-10-02 22:37:16 +02:00
f2ad356272 packages: Install noto fonts 2024-10-02 22:37:14 +02:00
82e9856e68 Fix steam workspace assignment 2024-09-30 17:28:35 +02:00
5a1f1cfa14 Install protontricks 2024-09-30 17:28:32 +02:00
b4c771cc59 aur: Update spotify 2024-09-28 00:06:21 +02:00
6ec26a64fc Update gothic installer 2024-09-24 19:03:22 +02:00
e989b91979 Update AUR updater script 2024-09-24 19:02:38 +02:00
5cc03d302e aur: Update terraform-ls-bin 2024-09-24 18:58:42 +02:00
8314fa6b72 aur: Update spotify 2024-09-24 18:58:42 +02:00
2309b35ed8 aur: Update python-boto3-stubs 2024-09-24 18:58:41 +02:00
49ed1861e0 aur: Update portfolio-performance-bin 2024-09-24 18:58:41 +02:00
6de36ffba2 aur: Update nodejs-intelephense 2024-09-24 18:58:41 +02:00
e575e03f92 aur: Update aws-sam-cli 2024-09-24 18:58:40 +02:00
ca0cee6398 Fix steam UI 2024-08-16 13:08:37 +02:00
b66fe2a155 Install some utils 2024-08-16 13:08:37 +02:00
9c660f82ed Add aws-sam 2024-08-16 09:58:05 +02:00
b3248a0fca aur: Update 2024-08-15 09:50:26 +02:00
f2c651da7c Migrate to keepassxc 2024-08-15 09:50:13 +02:00
7208028023 aur: Update 2024-08-12 21:20:39 +02:00
7c6078d59d firefox: Make restore behave non-idiotic 2024-07-15 11:32:37 +02:00
009b8ff5ce firefox: Remove ad tracking garbage 2024-07-15 11:32:13 +02:00
1fb5713d41 portfolio: Update to v0.69.1 2024-07-08 19:27:14 +02:00
9307929381 Add projector script 2024-07-07 17:14:58 +02:00
ff5897e3b2 Add maintenance script 2024-07-07 17:14:35 +02:00
bfdb956341 Install google earth 2024-07-07 17:14:26 +02:00
6e2b5ddd78 Update PKGBUILDs 2024-07-07 17:14:10 +02:00
1ed0157ffb Install picom 2024-07-07 17:13:43 +02:00
00fd98e873 Use xfce4-screenshooter 2024-07-07 17:13:43 +02:00
b421fb0c95 Move from libertine (deprecated) to libertinus 2024-07-07 17:13:43 +02:00
d8e0f3e78c Install apache 2024-07-07 17:13:43 +02:00
4c7e4918c9 dunst: Use fontawesome 2024-07-07 17:13:43 +02:00
a3d9e6c715 Do not use global ansible config 2024-07-07 17:13:43 +02:00
680aeac317 Drop explicit ansible python interpreter 2024-07-07 17:13:43 +02:00
2dccc21d33 Install fontawesome 2024-07-07 17:13:43 +02:00
bf77835d30 Make pacman-cache-clean timer enableable 2024-05-29 23:20:16 +02:00
eb122a79cc grm: Update github config 2024-05-28 23:56:12 +02:00
b2a428f1f7 Fix steamapps 2024-05-28 17:06:21 +02:00
d9841e5858 Remove project list 2024-05-28 17:06:15 +02:00
4e1f060c42 Prefer ~/bin to default PATH components 2024-05-28 16:54:18 +02:00
0912a6f6d8 Install xpath 2024-05-27 19:24:55 +02:00
c000eaf6fa Remove restic 2024-05-27 19:24:55 +02:00
e40daae48a Use XDG_DOWNLOAD_DIR 2024-05-27 19:24:55 +02:00
7ab9ea0046 Move ~/.aws 2024-05-27 19:24:55 +02:00
fefb2d92d3 spotify: Move to workspace 9 2024-05-27 19:24:55 +02:00
1e803be540 neptune: Smaller font 2024-05-27 19:24:54 +02:00
e38885cbe6 Remove unneeded scripts 2024-05-27 19:24:34 +02:00
d7ce1be631 Make shellcheck happy 2024-05-27 19:24:34 +02:00
e0e5440d98 Fix interactivity in pacman script 2024-05-27 19:24:34 +02:00
b3a6c1dfe4 Remove fuck-lxc, no longer needed 2024-05-27 19:24:34 +02:00
0f58284817 Remove dunstctl, upstream includes it 2024-05-27 19:24:34 +02:00
13fe52c9dc Make printf line endings consistent 2024-05-27 19:24:34 +02:00
43ed03d687 dunst: Use jetbrains mono 2024-05-26 23:36:39 +02:00
f4734affb9 Re-add fontawesome to i3bar 2024-05-26 12:54:35 +02:00
da3762a3b0 Use single font size 2024-05-26 12:49:46 +02:00
855c6ab014 Resize fonts on ares 2024-05-26 12:47:01 +02:00
66abafbfee Update font list 2024-05-26 12:46:47 +02:00
3f84347937 Install mesa-utils 2024-05-26 12:27:04 +02:00
9b67c4b425 Install geeqie 2024-05-26 12:26:26 +02:00
883ee1ac2a Add iscp analogous to issh 2024-05-26 12:26:26 +02:00
cee72be14a Install flake8 and mypy 2024-05-26 12:26:26 +02:00
007749aedd Disable flake8 in helix 2024-05-26 12:26:26 +02:00
4014996441 Update spotify 2024-05-26 12:26:26 +02:00
68ca420b81 Use Jetbrains Mono 2024-05-26 12:26:26 +02:00
11bfe46eeb Install buildkit for docker 2024-05-26 12:26:26 +02:00
12c5d39033 Use 4 spaces for python & dockerfiles 2024-05-26 12:26:26 +02:00
ea2f2451e1 Configure scdaemon to make yubikey work properly 2024-05-26 12:26:26 +02:00
e2b2391cf7 Configure gnupg config directory properly 2024-05-26 12:26:26 +02:00
3a54d52051 Get rid of upstream gpg-agent user units 2024-05-26 12:26:26 +02:00
6b0105fa71 Fix nvidia driver installation 2024-05-26 12:26:26 +02:00
1fa78b506f Install additional icon font 2024-05-26 12:26:25 +02:00
b68eb1e33d More verbose output 2024-05-26 12:25:52 +02:00
be6e67821f Resolve packages to their actuall install target 2024-05-26 12:25:52 +02:00
c4e335a6a3 Disable shellcheck for PKGBUILD source 2024-05-26 12:25:52 +02:00
e07736bfb4 Add sqlx-cli 2024-05-26 12:25:52 +02:00
7e56f43195 zsh: Remove unused function 2024-05-26 12:25:52 +02:00
1a37f4ef64 i3: Fix presentation mode toggle 2024-05-26 12:25:52 +02:00
725fe7c075 Install additional icon font 2024-05-11 15:35:54 +02:00
c1c2c828d1 Update grm 2024-05-11 15:27:29 +02:00
a3f443721c install: Connect to network on first "real" boot 2024-05-11 15:27:29 +02:00
d84b67360b install: Retry on passphrase mismatch 2024-05-11 13:36:06 +02:00
d117edc6d1 Reintroduce fixed iptables workaround 2024-05-11 10:50:53 +02:00
f6961fab26 Fix pango package name 2024-05-11 10:37:56 +02:00
e9d1905797 Update packages 2024-05-11 10:26:27 +02:00
ea122cd8fb Remove unused variable 2024-05-11 10:25:45 +02:00
4f2627cf0a Install wine 2024-05-11 01:00:48 +02:00
05ac37d172 tmux: Drop hostname in status 2024-05-10 22:00:55 +02:00
7ae2c59ba4 Update graphics drivers 2024-05-10 22:00:47 +02:00
fb781a5b5d Fix script to detect missing packages 2024-05-10 22:00:38 +02:00
0b8a26742a Reduce protected packages for autoremoval 2024-05-10 18:54:39 +02:00
b272f5fd3a Read hardware-specific packages properly for autoremoval 2024-05-10 18:53:16 +02:00
828b38ec0f Install hardware-specific packages 2024-05-10 18:52:51 +02:00
2678e2adfe Remove unused file 2024-05-10 18:27:59 +02:00
d25dba89bb procetc 2024-05-10 18:18:19 +02:00
688637b3e3 Install more packages 2024-05-10 18:13:58 +02:00
a6fec3c344 Protect more packages from autoremoval 2024-05-10 18:13:53 +02:00
7af17b46da Do not install tinyxxd (comes with vim) 2024-05-10 17:44:11 +02:00
caaa397332 Fix package installations 2024-05-10 17:43:07 +02:00
b619694f1f Install xxd independently of vim 2024-05-10 17:16:15 +02:00
a21926f738 Install whois 2024-05-10 17:12:00 +02:00
bcc3583baf Make ansible not pollute $HOME 2024-05-10 17:11:55 +02:00
f4228630b0 Make packages.yml flat 2024-05-08 11:52:10 +02:00
679ddf22d6 Remove iptables workaround 2024-05-08 11:49:10 +02:00
885def6c5b Install screencfg from AUR 2024-05-07 18:47:47 +02:00
408ebb68d0 Install GRM from AUR 2024-05-07 17:04:00 +02:00
ef1c095e7f Add more packages 2024-05-07 17:03:54 +02:00
f48c31332f Fix zsh prompt in git repos without remote 2024-05-07 15:45:33 +02:00
881dd008ad zsh: Set XDG_ variables as early as possible 2024-05-06 21:07:20 +02:00
7763435a63 Run package removal script in playbook 2024-05-06 11:18:56 +02:00
9deaef642f Drop hardcoded packages to remove 2024-05-06 11:18:43 +02:00
8079f29912 Remove unused machine specific packages 2024-05-06 11:04:40 +02:00
3b9c1279a2 Actually install apt on arch 2024-05-06 11:02:01 +02:00
2227a85021 Add python linters 2024-05-06 11:00:40 +02:00
07a8338e77 Use conflicting systemd units for color mode 2024-05-06 10:19:17 +02:00
6071fe4f8f Add i3bar toggle for light mode 2024-05-06 10:08:51 +02:00
318490e7b8 zsh: Hardcode foreground color 2024-05-05 20:02:43 +02:00
88c8e49589 zsh: Remove autosuggestions 2024-05-05 20:02:43 +02:00
49c006bc20 zsh: Show longer path in prompt 2024-05-05 20:02:43 +02:00
b0bc54840d Add service for light theme 2024-05-05 20:02:43 +02:00
58c40f69d9 Add helix language configuration 2024-05-05 20:02:43 +02:00
3e71f9f1e3 Add alacritty themes 2024-05-05 20:02:43 +02:00
68297bb968 Move alacritty config into config subdirectory 2024-05-05 20:02:43 +02:00
b5d1f77c2d Try to make alacritty scaling consistent 2024-05-05 12:08:54 +02:00
f56092ed67 Fix permissions for gpg directory 2024-05-05 12:00:44 +02:00
38a1abe7e7 Configure nvidia properly 2024-05-05 11:55:06 +02:00
63d998c1a4 Move xinitrc 2024-05-05 11:44:37 +02:00
6e487f4bc1 Move sqlite history 2024-05-05 11:44:37 +02:00
c1cab46edf Move rustup 2024-05-05 11:44:37 +02:00
07c6553a3a Move Xauthority 2024-05-05 11:44:37 +02:00
11ac43cb35 Move zsh completion files 2024-05-05 11:44:37 +02:00
271dd3b5a0 Move python 2024-05-05 11:44:37 +02:00
788cb8ac77 Move kube 2024-05-05 11:44:37 +02:00
b5b99476af Move Go 2024-05-05 11:44:37 +02:00
cb57530810 Move GPG 2024-05-05 11:44:37 +02:00
9d27d345d5 Move docker 2024-05-05 11:44:37 +02:00
53d6b199b9 Move ansible 2024-05-05 11:44:37 +02:00
6891690305 Move passwordstore 2024-05-05 11:44:37 +02:00
34a3d55ef2 Move cargo home 2024-05-05 11:44:37 +02:00
be01f445ff Remove i3 icon padding machine config 2024-05-05 11:44:37 +02:00
c06e834524 Move zsh configuration 2024-05-05 11:44:37 +02:00
b49101eef6 Move Xresources 2024-05-05 10:54:58 +02:00
fce869955f Move zsh_history 2024-05-05 10:45:59 +02:00
72a77275aa zsh: Update config 2024-05-05 10:45:59 +02:00
d8a65e5082 i3status-rs: Truncate SSID 2024-05-04 21:40:02 +02:00
6b8e016dd5 Hard code ACPI lid name 2024-05-04 21:36:12 +02:00
b9d59e8ecf Properly quote PATH addition 2024-05-04 21:35:08 +02:00
2230b49918 Install terraform-ls from AUR 2024-05-04 21:34:03 +02:00
0cd51a17e3 Install watchexec 2024-05-04 21:27:52 +02:00
d6488c88f8 Give up on making systemd user units behave 2024-05-04 21:27:52 +02:00
2240f4e6d2 Install go debugger 2024-05-04 21:27:52 +02:00
9886db98d7 gpg: Disable unneeded sockets 2024-05-04 21:27:52 +02:00
0ba83acd3a Prefix user task tags with prefix 2024-05-04 21:27:52 +02:00
db3daad968 zsh: Update prompt 2024-05-04 21:27:52 +02:00
f3e54a2401 Move base user config into tagged block 2024-05-03 14:43:49 +02:00
6aa5f0cd37 Package cleanup: Skip on empty list 2024-05-03 14:42:22 +02:00
f42eee05b7 Package script: Remove trailing newline 2024-05-03 14:42:22 +02:00
d45f2e1f2f Install noto fonts 2024-05-03 14:42:22 +02:00
678068e959 Make backlight work 2024-05-03 14:42:22 +02:00
585fbdb174 i3status-rs: Remove load block 2024-05-03 08:50:46 +02:00
9724ef1aa2 Only call kill when there are background jobs 2024-05-02 18:05:56 +02:00
856e3d33f9 Fix packages list 2024-05-02 17:18:32 +02:00
6bd3caf622 Remove docker test script 2024-05-02 17:11:03 +02:00
49cf283770 Update packages 2024-05-02 17:10:58 +02:00
561cb4038f Make shellcheck happy 2024-05-02 17:10:45 +02:00
d98529f30b Add script to remove unconfigured packages 2024-05-02 17:10:31 +02:00
3e76a82cb2 Install clang with mold 2024-04-29 19:06:35 +02:00
0147f7f0a9 portfolio: v0.68.4 2024-04-29 19:06:26 +02:00
880e1376da Do not pass nonexistend DISPLAY variable 2024-04-28 18:14:32 +02:00
c3d6af2471 Make yaml2json a proper script 2024-04-27 16:25:42 +02:00
fd2d4f8bcf Add pacman orphan remove script 2024-04-27 16:25:17 +02:00
0d529e7606 Install rust-analyzer separately 2024-04-27 14:43:51 +02:00
29ecaeea2b Install sqlite 2024-04-27 14:37:36 +02:00
a268f37854 Install drone CLI 2024-04-27 14:03:19 +02:00
6cd47dabc1 Do not start yubikey touch detector without gpg 2024-04-26 16:42:34 +02:00
213cd9b6a1 Remove bluetooth 2024-04-26 15:18:37 +02:00
28b3e95b2c Remove firefox config entries that change all the time anyway 2024-04-26 15:16:54 +02:00
43b9dd3b08 Try to make systemd unit handling idempotent 2024-04-26 15:15:14 +02:00
49a7762e6c Add test script using QEMU 2024-04-26 12:08:29 +02:00
147866ca69 Update firefox role 2024-04-26 12:08:29 +02:00
87e8771d36 Increase wttr.in query interval 2024-04-26 12:08:29 +02:00
66b77f6cd1 Uninstall unneeded packages 2024-04-26 12:08:29 +02:00
ea804c530d Streamling tagging & formatting 2024-04-26 12:08:29 +02:00
eecd828d60 Build vim-plug from aur 2024-04-26 12:06:04 +02:00
1da6bf597d Try to get rid of every preinstall gpg-agent user unit 2024-04-26 12:06:04 +02:00
d5c539eae1 Install archlinux packaging tools 2024-04-26 12:06:04 +02:00
e64893cac9 i3status: Fix error during battery charging 2024-04-26 12:06:04 +02:00
6ab8560b4e i3: Output tray on each screen 2024-04-26 12:06:04 +02:00
3220bc41e8 neptune: Update workspace & screen setup 2024-04-26 12:06:04 +02:00
27b46020e3 Fix gpg-agent service 2024-04-26 12:06:04 +02:00
aba24190db Install shfmt 2024-04-25 13:00:49 +02:00
a3e64c6145 Remove archlinux-java-run pkgbuild 2024-04-25 13:00:49 +02:00
64e1e6d5d0 Pass env variables explicitly to systemd 2024-04-25 13:00:49 +02:00
a6d672c353 Make FEATURE_DIR a non-global 2024-04-25 13:00:49 +02:00
6fc3c2aedb Remove unnecessary env variables 2024-04-25 08:08:51 +02:00
8c55badccb Retry initial password prompt 2024-04-25 08:08:51 +02:00
555d2bf7f2 Install mold 2024-04-25 08:08:51 +02:00
f28922c9e8 Install more packages 2024-04-24 12:40:35 +02:00
58772148b3 Skip skeleton on user creation 2024-04-24 12:40:35 +02:00
69b390bc40 Update ares install script 2024-04-24 12:40:35 +02:00
c107056db8 bash: Remove unnecessary xtrace 2024-04-24 12:40:35 +02:00
620249c9dc aur: Skip compression 2024-04-24 12:40:35 +02:00
914dd2cb4b aur: Fix allowed exit codes 2024-04-24 12:40:35 +02:00
f70309fedd Make curl options for gpg stricter 2024-04-24 12:40:35 +02:00
d8c6fd6699 aur: Switch to prebuilt portfolio binaries 2024-04-24 12:40:35 +02:00
f21b69da62 aur: Build each package with its own GNUPGHOME 2024-04-22 15:17:21 +02:00
e99b513e3b Skip explicit unmounts 2024-04-22 15:17:18 +02:00
b57217f934 Simplify handling of permissions of dotfiles directory 2024-04-22 15:17:01 +02:00
42cf7807ab Shorted install script 2024-04-22 15:17:01 +02:00
944ba883d7 Do not install git or python on install
They will be installed by ansible, and are not required for the
ansible run.
2024-04-22 15:17:01 +02:00
3521508ff4 install: Remove submodule update
It has do be done properly during checkout, we assume they are
already there.
2024-04-22 15:17:01 +02:00
200e5645cd Remove wrong comment in neptune script 2024-04-22 15:17:01 +02:00
2d755648b8 Remove ares-specific boostrap script 2024-04-22 15:17:01 +02:00
bf8acd7f71 Install kernel headers 2024-04-22 14:47:15 +02:00
864885d47d Streaming install scripts 2024-04-22 14:27:52 +02:00
cc447fb2c8 zsh: Set password on first login 2024-04-22 14:27:52 +02:00
00d68fdcb8 install.sh: Fix weird naming 2024-04-22 14:17:29 +02:00
cf98ddc251 aur: Make building finally work 2024-04-22 14:17:29 +02:00
24b55cf890 aur: Install dependencies before the packages themselves 2024-04-22 14:17:29 +02:00
686bbd0e34 Add nextcloud workaround 2024-04-22 14:17:29 +02:00
4afcff4bb1 Add script to check for AUR updates 2024-04-22 14:17:29 +02:00
d15b2b08da Add generic boostrap script 2024-04-22 14:17:29 +02:00
cfbb5df774 Add install script for neptune 2024-04-22 14:17:29 +02:00
94d4fcb178 Fix install script 2024-04-22 14:16:32 +02:00
aa498a4d92 Add qr generator script 2024-04-20 17:35:43 +02:00
15a5bb3696 Add a bunch of useful software 2024-04-20 12:54:00 +02:00
99c69b80d0 Configure git-delta 2024-04-20 12:53:42 +02:00
af36980a81 Make user unit handling work 2024-04-20 12:10:24 +02:00
9b1fad9530 Remove per-user sudo config 2024-04-20 12:10:24 +02:00
cbded3e6c6 Remove unnecessary sudo in aur builder 2024-04-20 12:10:24 +02:00
3cd47bdf02 Install packages earlier in playbook 2024-04-20 12:10:24 +02:00
a3c7939ff0 bootstrap: Install git if not present 2024-04-20 12:10:24 +02:00
3ed374e539 aur: Build intelephense 2024-04-20 12:10:24 +02:00
5f8348d0e2 Install cloudformation linter 2024-04-20 12:07:32 +02:00
1d72427091 Install more qemu goodies 2024-04-20 12:07:24 +02:00
ec7c47073b Add doas as sudo alternative
Cannot get rid of sudo (yet?), as base-devel depends on it
2024-04-20 12:07:04 +02:00
421d877143 Use KP_Enter to toggle mute 2024-04-20 11:39:55 +02:00
a6c61cb1c8 Do not fail laptop-lid service if already set correctly 2024-04-20 11:39:41 +02:00
6811e62c97 rg: Ignore .git file 2024-04-16 11:56:05 +02:00
b5da26cb91 Install telnet 2024-04-14 22:25:15 +02:00
43b458e1fd libvirt: Install virt-install 2024-04-14 22:25:11 +02:00
5774b3d61a Build AUR packages properly 2024-04-14 22:25:11 +02:00
070ee29aa5 Remove formerly used dotfiles 2024-04-14 19:32:10 +02:00
aaedb9a654 Remove screencfg 2024-04-14 02:46:55 +02:00
905be2f562 Remove leftover .zshrc.d symlink 2024-04-14 02:44:17 +02:00
9d5f34011f Explicitly create user 2024-04-14 02:42:30 +02:00
05b41da541 Move gtk2 config into ~/.config 2024-04-14 02:25:53 +02:00
9e5f1c95fe Remove screen 2024-04-14 02:24:11 +02:00
45060743ce Move wget HSTS file into XDG_STATE_HOME 2024-04-14 02:16:55 +02:00
3fdd991cef Log into XDG_RUNTIME_DIR 2024-04-14 02:14:12 +02:00
d0b067e3d4 Remove ~/.var/lib 2024-04-14 02:11:58 +02:00
b23363ec55 Remove ~/.usr/lib 2024-04-14 02:09:44 +02:00
09ed854251 Use XDG_RUNTIME_DIR instead of ~/.var/run 2024-04-14 02:09:29 +02:00
7287ff76a5 Disable certain user services 2024-04-14 02:02:58 +02:00
97409130ab Get rid of xdg-user-dirs 2024-04-14 01:54:23 +02:00
ff70e29117 Move i3 config into ~/.config 2024-04-14 01:37:57 +02:00
5ed1650b02 Use PASSWORD_STORE_DIR 2024-04-14 01:33:43 +02:00
ba066166fe Use GNUPGHOME 2024-04-14 01:31:55 +02:00
9278e8c065 Move tmux.conf into ~/.config 2024-04-14 01:27:53 +02:00
c6405280de Remove ~/.vimrc 2024-04-14 01:27:48 +02:00
03a6e6b737 Move gitconfig into ~/.config 2024-04-14 01:27:16 +02:00
4c5bb331d4 Add list of dotfiles to remove 2024-04-14 01:27:16 +02:00
580bfd9e52 Set XDG_ env variables 2024-04-14 01:06:55 +02:00
2937aa8b9b Streamline zsh config 2024-04-14 01:06:48 +02:00
cce054a742 Fix package inconsistencies 2024-04-14 00:52:09 +02:00
db1dddf2ff Fix pass script 2024-04-14 00:48:35 +02:00
96fe4d9ec4 Restrict journal size 2024-04-14 00:48:35 +02:00
8826f60aa2 Shorten loop outputs with smaller labels 2024-04-14 00:48:35 +02:00
4e78974f05 Remove paru, build PKGBUILDs 2024-04-14 00:48:35 +02:00
950277aa92 firefox: Remove duplicate config key 2024-04-13 22:16:53 +02:00
3850b70777 Do not install portfolio-performance 2024-04-13 18:14:40 +02:00
57a5b8fd27 Remove ~/.optbin and ~/.opt 2024-04-13 18:14:05 +02:00
1ab6f3e6f9 Remove ~/.vim completely 2024-04-13 18:10:20 +02:00
c779077be6 Install seahorse for gnome-keyring inspection 2024-04-13 18:09:06 +02:00
ea470d4c92 vim: Simplicy plugin setup 2024-04-13 17:58:33 +02:00
6e9cbf3fa3 firefox: Do not enforce sidebar width 2024-04-13 17:55:27 +02:00
1ce33cf152 pass: Fix firefox integration 2024-04-13 17:55:09 +02:00
18c1070540 Install xclip for pass 2024-04-13 17:46:29 +02:00
8834bca7fb Remove mypass 2024-04-13 17:46:21 +02:00
5922d989e0 rg: Ignore .git 2024-04-13 17:30:07 +02:00
07884738b8 git: Always use same mail for repo 2024-04-13 17:30:07 +02:00
0b237bd9bc pass: Fix init script 2024-04-13 17:30:07 +02:00
d53a3ab0c0 Do system update after pacman configuration 2024-04-13 17:30:07 +02:00
6bdc001e53 packages: Update list 2024-04-13 17:30:07 +02:00
996a758670 packagers: Install keepassxc 2024-04-13 17:30:07 +02:00
1318431476 packages: Install helix 2024-04-13 17:30:07 +02:00
db422d2cdb Remove old ubuntu 18.04 workaround 2024-04-13 17:30:07 +02:00
a418654fb8 zsh: Add fzf config 2024-04-13 17:30:07 +02:00
f9757b58aa Fix template deployment 2024-04-13 17:30:07 +02:00
9cf05ac5fe Remove ubuntu support 2024-04-13 17:30:07 +02:00
206015074a Update machine neptune 2024-04-10 16:01:37 +02:00
0ee36e4373 packages: Install chromium 2024-04-10 16:01:37 +02:00
143c41e100 packages: Install fzf 2024-04-10 16:01:37 +02:00
a71f756b2d packages: Install bind 2024-04-10 16:01:37 +02:00
e9dfea94c3 packages: Install kubectl 2024-04-10 16:01:37 +02:00
2751beafc1 packages: Remove dia 2024-04-10 16:01:37 +02:00
fcaa7d40be ripgrep: Search hidden files by default 2024-04-10 16:01:37 +02:00
7298ed104f zsh: Fix EDITOR 2024-04-10 16:01:37 +02:00
1501d256b8 i3status-rust: Update ar config 2024-04-10 16:01:37 +02:00
f2cb3de845 i3status-rust: Update icons 2024-04-10 16:01:37 +02:00
b8db8bbfb7 helix: Update config 2024-04-10 16:01:37 +02:00
8e87be2ecf Remove machine mars 2024-04-10 16:01:37 +02:00
029d1f3e0a Remove element 2024-04-10 14:39:08 +02:00
a8d17796e6 Remove element 2024-02-23 21:51:28 +01:00
a04f26343d Sync journal via nextcloud 2024-02-23 21:51:28 +01:00
970c5a614c Use helix as standard editor 2024-02-23 21:51:28 +01:00
eaf1382493 vim: Update config 2024-02-23 21:51:28 +01:00
53701526be dpms: Update intervals 2024-02-23 21:51:28 +01:00
a2df62dc2b Move to Stockholm 2024-02-15 15:25:36 +01:00
576b343da5 zsh: Add helix aliases 2024-02-12 15:04:41 +01:00
447c525c1d Drop simd support from ripgrep 2024-02-12 15:04:27 +01:00
f8ae168f7e i3status: Fix time format 2024-02-12 15:03:57 +01:00
4e3118e3c7 i3status: Try to make width more static 2024-02-12 15:03:39 +01:00
dc8071e099 i3status: Use proper icons 2024-02-12 15:03:23 +01:00
858d5d2438 alacritty: Migrate to toml 2024-02-12 15:03:02 +01:00
f0bccad851 Install discord 2023-05-30 20:27:04 +02:00
42e296b30d Update grm config 2023-05-30 20:26:40 +02:00
80d4f7052c Add helix configuration 2023-05-30 20:24:08 +02:00
9db32a19be Install restic 2022-12-17 01:19:03 +01:00
f65091e8ba i3status-rust: Forget about reverse_levels
See https://github.com/greshake/i3status-rust/pull/1680
2022-12-17 01:18:38 +01:00
0ccde8d66f i3status-rust: Handle unavailable spotify properly 2022-12-16 23:35:49 +01:00
cd90bb119e i3status-rust: Make icon padding machine dependent 2022-12-16 20:55:03 +01:00
5705328277 i3status-rust: Add separator before tray icons 2022-12-16 20:35:34 +01:00
188b93668c i3status-rust: Add mute/unmute on click 2022-12-16 20:26:48 +01:00
40ca67ebbb i3status-rust: Fix padding 2022-12-16 20:26:33 +01:00
4e787f8fa5 Remove py3status config from dotfiles list 2022-12-16 19:50:06 +01:00
5c7ea6ecd8 Do not resume spotify after unlock 2022-12-16 19:45:58 +01:00
8aeb9d9f27 Clean up i3 scripts 2022-12-16 19:45:58 +01:00
2e8708a616 Remove py3status configuration 2022-12-16 19:45:58 +01:00
af26991d95 i3status-rust: Make it compatible with master/0.30 2022-12-16 19:45:58 +01:00
c063610421 i3status-rust: Install my fork from github 2022-12-16 19:44:58 +01:00
2096b3234f Make playbook more check-mode safe 2022-12-16 19:44:58 +01:00
e2ae922a85 Split font sizes into different "kinds"(?) 2022-12-16 19:44:58 +01:00
2e09c7354a rust: Allow specifying which package to build for git crates 2022-12-16 19:44:58 +01:00
8479767fcc packages: Update nodejs packages 2022-12-16 19:44:58 +01:00
bb9739755a rust_binaries: Fix error on old ansible versions 2022-12-16 19:44:58 +01:00
b6b2cecd38 Remove debug output 2022-12-16 19:44:58 +01:00
1091f42490 rust_binaries: Fix check mode 2022-12-16 19:44:58 +01:00
b7d2489f6d Add service and script to manage "mousespam" 2022-12-16 19:44:58 +01:00
62bb6d6d40 vim: Update writing plugin config 2022-12-16 19:44:58 +01:00
d8fc5aa9c3 i3status-rust: Add weather command 2022-12-16 19:43:59 +01:00
9670eb8445 i3status-rust: Make ping more robust 2022-12-16 19:43:51 +01:00
3ff8990a35 redshift: Reset color temperature on startup 2022-12-15 23:12:38 +01:00
5792877f25 First test of i3status-rust 2022-12-15 22:31:50 +01:00
1e5719c94c Fix alacritty font size 2022-12-15 22:30:47 +01:00
ca58ee0c61 Drop watchexec 2022-12-15 21:57:11 +01:00
0d703b7cad Fix rebuilding & linking for rust tools 2022-12-15 21:57:07 +01:00
5662e68a16 Move spotify to workspace 10 2022-12-15 21:56:52 +01:00
6db59607eb i3: Fix bar background color 2022-12-15 19:45:04 +01:00
7040170468 Update orgy 2022-12-15 19:43:32 +01:00
40c2b659c7 go: Fix error in check mode 2022-12-15 19:43:25 +01:00
9ae91e724d Update gothic install script 2022-12-15 13:34:02 +01:00
974a659216 Configure regular paccache cleanup in arch 2022-12-15 13:34:02 +01:00
9ed7db6327 vscode: Hide activity bar 2022-09-05 15:19:52 +02:00
38b3285d49 theme: Switch to non-dark breeze 2022-09-05 15:19:52 +02:00
9e4931f37e Add vscodium and integrate with neovim 2022-09-05 15:19:52 +02:00
f6fae531d6 i3: Make active output more destinctive in i3bar 2022-09-05 15:19:52 +02:00
7f507ec4c3 vim: Suppress startup messages 2022-07-05 22:27:10 +02:00
4073ac5930 tmux: Rearrange config options 2022-07-05 22:27:10 +02:00
a7d23f06c4 Start ssh agent for some users 2022-07-05 22:27:10 +02:00
e5d23adcab i3: Make urgentcy colors consistent 2022-07-05 22:27:10 +02:00
db329973ec alacritty: Make black actually black
Otherwise, "black" output is just invisible. Mainly visible with ansible
DEBUG output, which is "dark gray", which is "1;30", which is black,
which was until now the same as the background color.
2022-07-05 22:27:10 +02:00
e2395d12cf Add proper script to toggle workspace window 2022-07-05 22:27:10 +02:00
40ef2ad2fd i3: Make active workspace background consistent 2022-07-05 22:27:10 +02:00
c0a2e34fd5 i3: Use nice icons for workspaces 2022-07-05 22:27:10 +02:00
ecdbedf4b2 alacritty: Fix font size 2022-07-02 18:38:58 +02:00
fff382e5fa tmux: Disable bottom bar again 2022-07-02 16:01:49 +02:00
3371d03421 Fix fixing of /var/lib/dotfiles permissions 2022-07-02 15:56:34 +02:00
1f27aee39c Remove redundant fixing of DOTDIR 2022-07-02 15:52:41 +02:00
5dd7cfc6af Make install.sh runnable as non-root 2022-07-02 15:52:41 +02:00
2b62592bdf Manage /var/lib/dotfiles as soon as possible 2022-07-02 15:52:41 +02:00
c66d39fa5a alacritty: Use "alacritty" as TERM 2022-07-02 12:50:07 +02:00
99d14f5f6b tmux: Remove leftover setting 2022-07-02 12:38:43 +02:00
cc1ebcfd86 vim: Remove YouCompleteMe
It's just too much hassle with all the compiling and random errors after
updates.
2022-07-02 12:38:09 +02:00
8205d867a0 vim: Remove all that pseudo-IDE stuff 2022-07-02 12:38:09 +02:00
971ce13043 tmux: Remove unused keybinds 2022-07-02 12:38:09 +02:00
f9355f7b9c tmux: Do not use abbreviated keybinds 2022-07-02 12:38:09 +02:00
f384a8a1b6 tmux: Split settings and keybinds 2022-07-02 12:33:15 +02:00
fd3f5c4bd6 tmux: Standardize set-option calls 2022-07-02 12:33:15 +02:00
c54278cc7c tmux: Do not use abbreviated commands 2022-07-02 12:29:30 +02:00
8209b459d8 tmux: Fix error on old (<3.3) versions 2022-07-02 12:19:47 +02:00
86d55197cb Add semver shell helpers 2022-07-02 12:05:12 +02:00
50932f8faa tmux: Fix color code 2022-07-02 11:47:11 +02:00
35da0e349c Fix permission fix for dotfiles directory 2022-07-01 20:14:30 +02:00
97f467f6ec terraform: Allow user-specific versions 2022-07-01 20:14:30 +02:00
ccb10a97d7 passff: Fix idempotency of download 2022-07-01 20:14:30 +02:00
f29d92dad4 Only use old terraform version on neptune 2022-07-01 20:14:30 +02:00
4b6c442d6b Add variable to disable terraform version check 2022-07-01 20:14:30 +02:00
6e894943f9 terraform: v1.1.9 -> v1.1.3 2022-07-01 20:14:30 +02:00
7370df1680 kubectl: v1.23.6 -> v1.24.2 2022-07-01 20:14:30 +02:00
7f352e0910 ansible2.9: Specify force for get_url
The default changed and I assumed it was "false", but it's "true" in
older ansible versions.
2022-07-01 20:14:30 +02:00
a557b35187 Install mdbook 2022-07-01 20:14:30 +02:00
3d0b88031b ansible2.9: Make rust build commands compatible 2022-07-01 20:14:30 +02:00
cd8c5f7cf3 ansible2.9: Make passff config compatible 2022-07-01 20:14:30 +02:00
5531ce1fda Fix installation of yubikey detector on ubuntu 2022-07-01 20:14:30 +02:00
2a58bcadb3 Drop venv completely, use host ansible 2022-07-01 20:14:30 +02:00
f219630319 Properly handle python3-venv on ubuntu 2022-07-01 20:14:30 +02:00
77d9406f2e vim: Remove pinned commit for YCM 2022-07-01 20:14:30 +02:00
a6efc6c43d i3: Draw faint border around inactive headers 2022-06-30 22:28:21 +02:00
4f1ef573e8 i3: Remove border around active window headers 2022-06-30 22:25:52 +02:00
49c95f5be1 tmux: Change activity backgroud 2022-06-30 22:24:45 +02:00
5ffc046537 vim: Change powerline theme 2022-06-30 22:10:17 +02:00
8b4e01b538 vim: Fix colors 2022-06-30 22:05:06 +02:00
d6c0df83f1 vim: Use other monokai 2022-06-30 22:05:00 +02:00
aed9e65c44 Fix colors in tmux 2022-06-30 22:04:43 +02:00
a71942a69e tmux: Add line above status line 2022-06-30 21:44:37 +02:00
891c761e66 Update tmux pane borders 2022-06-30 21:32:29 +02:00
72386b0005 Fix monokai background color 2022-06-30 21:32:29 +02:00
6763f4105f tmux: Fix rightmost status line color 2022-06-30 21:00:55 +02:00
e88b1dd5fa Install jmespath in playbook instead of install script 2022-06-30 20:41:40 +02:00
7b892b7d56 Install kdeconnect 2022-06-30 19:15:13 +02:00
67dc8a99f2 Remove "rustup update", handled by "install" 2022-06-30 06:43:51 +02:00
4b09d22cfc Update colors with monokai 2022-06-30 06:38:05 +02:00
40f4f73efb Change highlight color to more "pastelly" 2022-06-30 06:38:05 +02:00
504e6784da Add recommended curl options to rustup 2022-06-30 06:38:05 +02:00
79a9c7eebd Use host cache before tmpfs cache 2022-06-30 06:38:05 +02:00
4403719e13 Fix failure on existing pacman host cache 2022-06-30 06:38:05 +02:00
24616ec1db Add warning about missing pacman host cache 2022-06-30 06:38:05 +02:00
15d2b54eb7 Do not force-install python3 on arch 2022-06-30 06:38:05 +02:00
3e4d59348b Do not use venv on arch 2022-06-30 06:38:05 +02:00
374c939fdb Fix rust builds on arch 2022-06-30 06:38:05 +02:00
4dfe80d56b Remove packages before installing packages 2022-06-30 06:38:05 +02:00
45c48b39bc gitignore git bundles 2022-06-30 06:38:05 +02:00
0d9076d5ed Fix iptables-nft to iptables on arch 2022-06-30 06:38:05 +02:00
6e4c633b42 Do not install python3-venv 2022-06-30 06:38:05 +02:00
316502744b Add default "all" target 2022-06-30 06:38:05 +02:00
c3c22c5944 Create cache directory before first pacman operation 2022-06-30 06:38:05 +02:00
a5c83fb4ac Drop --force-sudo from youcompleteme 2022-06-30 06:38:05 +02:00
6116088396 watchexec: v1.19.0 -> v1.20.2 2022-06-30 06:38:05 +02:00
fe49d682a9 bat: v0.20.0 -> v0.21.0 2022-06-30 06:38:05 +02:00
26d5535f0d fd: v8.3.1 - v8.4.0 2022-06-30 06:38:05 +02:00
f5456a82fa just: v1.1.2 -> v1.2.0 2022-06-29 17:58:28 +02:00
4060b2f840 Fix package list 2022-06-29 17:58:28 +02:00
032b601561 go: v1.18.1 -> v1.18.3 2022-06-29 17:58:28 +02:00
b3d18f3dd9 firefox: (Try to) disable auto updates 2022-06-29 17:58:28 +02:00
2c2aaf5de8 Update installation of rust binaries 2022-06-29 17:58:28 +02:00
3703fd3d3b Install musl 2022-06-29 17:58:28 +02:00
4c34680a10 neptune: Update output names 2022-06-29 17:58:28 +02:00
478bb17fd1 firefox: Disable camera/micro indicator 2022-06-29 17:58:28 +02:00
f9c640eecb Update neptune screencfgs 2022-06-29 17:58:27 +02:00
8a09cb050c Update path to time tracking repository 2022-06-29 17:58:27 +02:00
84105ba6f6 Update path to restic backup script 2022-06-29 17:58:27 +02:00
3970d71363 Do not do ansible run verbosely 2022-06-29 17:58:27 +02:00
06674d7b99 yaml2json: Support multiple yaml documents 2022-06-29 17:58:27 +02:00
d62b8ca11d Add passwordstore extraction tool 2022-06-29 17:58:27 +02:00
5db5a4fe2a Fix permissions of dotfiles directory 2022-06-29 17:58:27 +02:00
c9ee90f889 Update spotify apt key 2022-06-29 17:58:27 +02:00
f2aafc1ba7 Update dunstctl for ubuntu compatibility 2022-06-29 17:58:27 +02:00
add0adb9a0 Add kdeconnect 2022-06-29 17:58:27 +02:00
7661621c00 dunst: Update dunstctl for comatibility with upstream script 2022-06-29 17:58:27 +02:00
0228edc5c7 firefox: Add separate media profile for ares 2022-06-29 17:58:27 +02:00
edf62e7622 firefox: Add profile option with bigger fonts 2022-06-29 17:58:27 +02:00
7fd54e39ca vim: Add rust setup 2022-06-29 17:58:27 +02:00
a49ea2ee2b vim: Add rust integration 2022-06-29 17:58:27 +02:00
f0b732ce79 fd-find: v8.2.2 -> v8.3.1 2022-06-29 17:58:27 +02:00
1c06d9ca2e watchexec: v1.17.1 -> v1.19.0 2022-06-29 17:58:27 +02:00
3e336eac2c bat: v0.18.3 -> v0.20.0 2022-06-29 17:58:27 +02:00
8ef941ccd3 fd-find: v8.2.1 -> v8.3.2 2022-06-29 17:58:27 +02:00
1532f95ea4 just: v0.12.2 -> v1.1.2 2022-06-29 17:58:27 +02:00
e29138ba9b portfolio: v0.55.0 -> v0.57.2 2022-06-29 17:58:27 +02:00
374fd85af6 go: v1.17.1 -> v1.18.1 2022-06-29 17:58:27 +02:00
fa05b32485 kubectl: v1.22.3 -> v1.23.6 2022-06-29 17:58:27 +02:00
489b80d136 terraform: v1.0.2 -> v1.1.9 2022-06-29 17:58:27 +02:00
fafca0e743 Remove never tag, update Make target for system update 2022-06-29 17:58:27 +02:00
290bcbe172 Split user and system updates 2022-06-29 17:58:27 +02:00
6b0db2f804 git: Add dotfiles repo as safe path 2022-06-29 17:58:27 +02:00
1a31586fbe vim: Fix YCM version to known-good commit 2022-06-29 17:58:27 +02:00
d00cf5b11c grm: Use develop branch 2022-06-29 17:58:27 +02:00
7671b3e48e Update firefox configuration 2022-06-29 17:58:27 +02:00
5462ab0790 Rename "all" target to "config" 2022-06-29 17:58:27 +02:00
f6715dedc6 Do not update during normal make run 2022-06-29 17:58:27 +02:00
0030cc2ca9 packages: Add jq 2022-06-29 17:58:27 +02:00
5d116becfb packages: Add black 2022-06-29 17:58:27 +02:00
01ebaea6c2 nato: Add german spelling 2022-06-29 17:58:27 +02:00
916d67d22f repos: Fix a few URLs 2022-06-29 17:58:27 +02:00
329f2a6e2c yubikey: Restart touch detector when gpg restarts 2022-06-29 17:58:27 +02:00
8307a4d4ca Update spotify key 2022-06-29 17:58:27 +02:00
040e5d09e5 Fix yubikey touch detector build cleanup 2022-06-29 17:58:27 +02:00
1bc03cffcc Fix alacritty build 2022-06-29 17:58:26 +02:00
465a413ae9 Fix ordering of elements in PATH 2022-06-29 17:58:26 +02:00
83d7386b25 Purge packages on ubuntu 2022-06-29 17:58:26 +02:00
eb07b67107 Update personal repo configuration 2022-06-29 17:58:26 +02:00
1c6fe13112 vim: Add TOML config 2022-06-29 17:58:26 +02:00
1ae605a52a Add personal repository configuration 2022-06-29 17:58:26 +02:00
05618cf533 Add GRM 2022-06-29 17:58:26 +02:00
c1c9d7bbad Add function to build crates directly from git 2022-06-29 17:58:26 +02:00
08efa386fc Always use rustup instead of rust 2022-06-29 17:58:26 +02:00
7016c97f9d Fix package list 2022-06-29 17:58:26 +02:00
ecde49ce4a Update packages for ubuntu 2022-06-29 17:58:26 +02:00
3bc6db63cb Fix duplicated changed_when 2022-06-29 17:58:26 +02:00
20eee74860 Make inlcude_ tasks less spammy 2022-06-29 17:58:26 +02:00
42c55c6f53 Update kubectl to v1.22.3 2022-06-29 17:58:26 +02:00
583a2c856b Improve idempotency 2022-06-29 17:58:26 +02:00
00536c6260 Read variables from separate file 2022-06-29 17:58:26 +02:00
ff9d2b547f Fix building rust crates via separate user 2022-06-29 17:58:26 +02:00
b4fdaae8c5 Add ~/.cargo/bin to PATH 2022-06-29 17:58:26 +02:00
92a78cf2f4 Install rustup on ubuntu 2022-06-29 17:58:26 +02:00
355443acc6 Cooler exa options! 2022-06-29 17:58:26 +02:00
3b24d2bac4 Fix laptop lid service 2022-06-29 17:58:26 +02:00
8d6dc18bb0 Always restart services 2022-06-29 17:58:26 +02:00
cef0463e89 Remove discord 2022-06-29 17:58:26 +02:00
d9b1a4ca5d Do not keep binaries inside rust_build user home 2022-06-29 17:58:26 +02:00
4039174e45 Use rustup properly to build rust binaries 2022-06-29 17:58:26 +02:00
0759483348 Add some fancy rust cmdline programs 2022-06-29 17:58:26 +02:00
a6dd7e0c21 Fix font size for machines without scaling 2022-06-29 17:58:26 +02:00
98bdcb1b2c Configure i3 workspaces on ares 2022-06-29 17:58:26 +02:00
351fe1bb9a Remove old urxvt config 2022-06-29 17:58:26 +02:00
3cf20a7306 Add dmideocde, required by libvirt on arch 2022-06-29 17:58:26 +02:00
06c5871ed4 Standardize capitalization of ansible task names 2022-06-29 17:58:26 +02:00
c781636516 Set GOROOT correctly 2022-06-29 17:58:26 +02:00
22f0586995 Fix some arch-specific "becomes" 2022-06-29 17:58:26 +02:00
f4f2f47ee2 Remove vim in favour of nvim 2022-06-29 17:58:26 +02:00
86d417264a Remove signal 2022-06-29 17:58:26 +02:00
e9647aca00 vim: Add shortcut to close buffer without closing window 2022-06-29 17:58:26 +02:00
8067e31901 firefox: Install floccus 2022-06-29 17:58:26 +02:00
77c637524f Add ansible firefox role version 2022-06-29 17:58:25 +02:00
d1fe361df6 i3status: Do not report remaining battery time 2022-06-29 17:58:25 +02:00
09d06ac7e7 Remove unneeded scripts 2022-06-29 17:58:25 +02:00
abb78d6248 Try to standardize font size 2022-06-29 17:58:25 +02:00
74e645dd96 Add imv alias on ubuntu 2022-06-29 17:58:25 +02:00
a2aedcfef3 rofi: Disable Desktop entries 2022-06-29 17:58:25 +02:00
f06f98604f Fix firefox list in autostart.target 2022-06-29 17:58:25 +02:00
d631cdba30 Use better vim monokai color scheme 2022-06-29 17:58:25 +02:00
839c941f9e Unify the "update" target 2022-06-29 17:58:25 +02:00
9bd8b62dc4 Drop dryrun target 2022-06-29 17:58:25 +02:00
339798448a Use dotfiles group for dotfiles user 2022-06-29 17:58:25 +02:00
9d401a8e69 zsh: Add docker aliases 2022-06-29 17:58:25 +02:00
5cc8f0f0ed Update alacritty default title 2022-06-29 17:58:25 +02:00
ebca8ce6e3 Drop terminal variable, always use alacritty 2022-06-29 17:58:25 +02:00
7acb66688b Create a ~/tmp directory 2022-06-29 17:58:25 +02:00
0f6629109a Configure firefox extensions & settings 2022-06-29 17:58:25 +02:00
cb19d91c2b Set python interpreter to python3 2022-06-29 17:58:25 +02:00
a35c8c0dbe Add ansible firefox role 2022-06-29 17:58:25 +02:00
8575e7471b vim: Add vim-svelte 2022-06-29 17:58:25 +02:00
fe82fa28be Use rustup instead of rust on arch 2022-06-29 17:58:25 +02:00
a74410228a Remove discord from autostart 2022-06-29 17:58:25 +02:00
dd615deb94 Add gothic install scripts 2022-06-29 17:58:25 +02:00
4c7515bbf7 pacman: Enable parallel downloads 2022-06-29 17:58:25 +02:00
961632639e pulse: Install libpulse on arch 2022-06-29 17:58:25 +02:00
0dd81432c0 vim: Disable broken plugin elm-format 2022-06-29 17:58:25 +02:00
942eec9a0d Use npm instead of yarn for vim plugin install 2022-06-29 17:58:25 +02:00
e9412abd21 Remove go binary install during vim plugin install 2022-06-29 17:58:25 +02:00
7b80f3d19d Fix nvim plugin install 2022-06-29 17:58:25 +02:00
ddac3190bd Move vim-plug directory creation into correct tagged block 2022-06-29 17:58:25 +02:00
b069d87c93 Fix setting of PATH for yubikey-touch-detector build 2022-06-29 17:58:25 +02:00
0b52b54c7b Remove all wallpaper-related stuff 2022-06-29 17:58:25 +02:00
658bace2c6 Use /etc/profile for PATH 2022-06-29 17:58:25 +02:00
c27be08ab1 Set PATH/GOPATH for go explicitly 2022-06-29 17:58:25 +02:00
009b263e9e Install go before building stuff with it 2022-06-29 17:58:25 +02:00
08bce6511b Add go directory to PATH 2022-06-29 17:58:25 +02:00
509f9914e4 Remove unused path from PATH 2022-06-29 17:58:25 +02:00
09389db745 Install go manually 2022-06-29 17:58:25 +02:00
6a4a410a3c Get rid of snap 2022-06-29 17:58:25 +02:00
465d332b1a Drop "--sync" from nvim plugin commands 2022-06-29 17:58:24 +02:00
284767614a Remove duplicate manpage package definition 2022-06-29 17:58:24 +02:00
dd589f8b21 Update portfolioperformance to v0.55.0 2022-06-29 17:58:24 +02:00
6f4a0b01e9 Use ~/.go as GOPATH 2022-06-29 17:58:24 +02:00
92cc4c31d6 Install spotify via paru on arch 2022-06-29 17:58:24 +02:00
10c96b1862 Add separate paru user for installs 2022-06-29 17:58:24 +02:00
60e9290414 Fix running mkinitcpio in docker 2022-06-29 17:58:24 +02:00
802c149399 Install signal on arch 2022-06-29 17:58:24 +02:00
ba5aa49a0f Update vim plugin installations 2022-06-29 17:58:24 +02:00
f59558f29f Install kernel in ares testing container 2022-06-29 17:58:24 +02:00
d7791b94c1 Install pass wrapper in .optbin 2022-06-29 17:58:24 +02:00
5c38e9a5f7 Add test scripts for mars 2022-06-29 17:58:24 +02:00
c8aa56fe47 Add vim plugin update 2022-06-29 17:58:24 +02:00
9a50d540de Add pass wrapper to check out store 2022-06-29 17:58:24 +02:00
091218a685 Make kubectl executable after download 2022-06-29 17:58:24 +02:00
12fccd6962 alacritty: Fix config 2022-06-29 17:58:24 +02:00
3b52181d23 Fix youcompleteme output file path 2022-06-29 17:58:24 +02:00
1974f3a939 Add new machine "mars" 2022-06-29 17:58:24 +02:00
eaf84748f9 Only use iptables hack on arch 2022-06-29 17:58:24 +02:00
0ce4262e64 bin: Add time tracking entrypoint 2022-06-29 17:58:24 +02:00
a6969ff360 vim: configure go module 2022-06-29 17:58:24 +02:00
414bb0f90b vim: Add autoformat shortcut 2022-06-29 17:58:24 +02:00
a284f02869 vim: Add clipboard commands 2022-06-29 17:58:24 +02:00
80cbaa6cab vim: Add JS/JSX plugins 2022-06-29 17:58:24 +02:00
1e895e3cb6 vim: Add editorconfig plugin 2022-06-29 17:58:24 +02:00
ddb3c496e3 i3: Add pim_toggle with switchback 2022-06-29 17:58:24 +02:00
b2c827a24f Cleanup tempdir AFTER it is no longer used 2022-06-29 17:58:24 +02:00
104259a58b Decommission tb-hak machine 2022-06-29 17:58:24 +02:00
1f664148cc Fix syntax error in temp file cleanup 2022-06-29 17:58:24 +02:00
c6adff587a Remove sambashare group on ubuntu 2022-06-29 17:58:24 +02:00
c75a116b29 Remove lpadmin group on ubuntu 2022-06-29 17:58:24 +02:00
6e8a4ec8c9 testing: Enable selecting of host 2022-06-29 17:58:24 +02:00
625f1c4060 Skip waiting for input during testing 2022-06-29 17:58:24 +02:00
7dfe49b3a3 Create cache directory on arch 2022-06-29 17:58:24 +02:00
30973771f4 Do no install neovim PPA 2022-06-29 17:58:24 +02:00
ec17163206 packages: Remove anki 2022-06-29 17:58:24 +02:00
efba2a92a2 Fix iptables install on arch 2022-06-29 17:58:24 +02:00
f80e24cc28 Update apt package lists during bootstrap 2022-06-29 17:58:24 +02:00
df1edce5c6 Only checkout submodules if in git 2022-06-29 17:58:24 +02:00
f6f7303172 Add testing for neptune 2022-06-29 17:58:23 +02:00
fe193ec37e Update ansible to v4.6.0 2022-06-29 17:58:23 +02:00
a03d9c9cd7 Do initial passwordstore checkout 2022-06-29 17:58:23 +02:00
8011c1827a Add personal gpg key configuration 2022-06-29 17:58:23 +02:00
05a00fad3a Add dedicated dotfiles user 2022-06-29 17:58:23 +02:00
c03c01cd2a zsh: Use python3 for aliases 2022-06-29 17:58:23 +02:00
5839134243 Add new machine "neptune" 2022-06-29 17:58:23 +02:00
e150f1a2b0 Specify alacritty config file explicilty 2022-06-29 17:58:23 +02:00
15367851e3 Fix typo for feature file 2022-06-29 17:58:23 +02:00
26080d353b vim: Remove elm-vim 2022-06-29 17:58:23 +02:00
138a1d2f32 Manage terraform binary 2022-06-29 17:58:23 +02:00
2cbe7dde04 Update warning on outdated kubectl 2022-06-29 17:58:23 +02:00
c3b211d0c5 Update kubectl 2022-06-29 17:58:23 +02:00
44f7cc4152 PP: Remove temporary directory after download 2022-06-29 17:58:23 +02:00
9eb5d1362b YCM: Update compiled *.so path 2022-06-29 17:58:23 +02:00
0c1b622f73 Update gpg-agent service blacklist 2022-06-29 17:58:23 +02:00
385306319a Install signal via third-party repo on ubuntu 2022-06-29 17:58:23 +02:00
7db70452d8 Install spotify via third-party repo on ubuntu 2022-06-29 17:58:23 +02:00
b00b2781be Build yubikey-touch-detector on ubuntu 2022-06-29 17:58:23 +02:00
b1d83a7bdc Build alacritty on ubuntu 2022-06-29 17:58:23 +02:00
084bf82ea9 ansible: Use correct "state" for package module 2022-06-29 17:58:23 +02:00
ef1e07f1f4 gpg: Run agent conditionally 2022-06-29 17:58:23 +02:00
cf3670cefc packages: Add ncdu 2022-06-29 17:58:23 +02:00
5692de9cca packages: Install synaptics packages 2022-06-29 17:58:23 +02:00
c212b302f1 packages: Do not install terraform on ubuntu 2022-06-29 17:58:23 +02:00
381445f0ae packages: Install maim on ubuntu 2022-06-29 17:58:23 +02:00
55b11f3d90 packages: Install playerctl on ubuntu 2022-06-29 17:58:23 +02:00
2b8a9fdcc6 packages: Install stress on ubuntu 2022-06-29 17:58:23 +02:00
9d4bfa624a packages: Install nextcloud on ubuntu 2022-06-29 17:58:23 +02:00
6aeda1eac2 packages: Install man on ubuntu 2022-06-29 17:58:23 +02:00
4cfdbe6e6a packages: Install imv on ubuntu 2022-06-29 17:58:23 +02:00
79b2254f28 packages: Update musescore package name on ubuntu 2022-06-29 17:58:23 +02:00
1590055049 packages: Install ssh on ubuntu 2022-06-29 17:58:23 +02:00
168d986213 packages: Install virtualbox on arch 2022-06-29 17:58:23 +02:00
cb085ae7df packages: Add package required for openconnect on ubuntu 2022-06-29 17:58:23 +02:00
d1f02f0e46 packages: Add required packages for yubikey on ubuntu 2022-06-29 17:58:23 +02:00
c43172e281 packages: Remove shutter 2022-06-29 17:58:23 +02:00
897a37822a packages: Remove chrome & chromium 2022-06-29 17:58:23 +02:00
708a913046 packages: Add libvirt on ubuntu 2022-06-29 17:58:22 +02:00
1d6bb3df9c packages: Add pdf tooling for ubuntu 2022-06-29 17:58:22 +02:00
9160036e1a packages: Add fonts for ubuntu 2022-06-29 17:58:22 +02:00
b574b07b11 packages: Add docker-compose for ubuntu 2022-06-29 17:58:22 +02:00
0a61b619c4 packages: Install cmake on ubuntu 2022-06-29 17:58:22 +02:00
9ac6482127 Bootstrap required venv python module 2022-06-29 17:58:22 +02:00
da373d0a62 Bootstrap submodules 2022-06-29 17:58:22 +02:00
0548ed7da4 py3status: Disable manual click events
The modules already support the click events natively.
2022-06-29 17:58:22 +02:00
312da06756 i3: Remove scratchpad bindings 2022-06-29 17:58:22 +02:00
0bbf5eb080 i3: Move screenshot hotkey 2022-06-29 17:58:22 +02:00
6b363120ce firefox: Enable multiple instances 2022-06-29 17:58:22 +02:00
02e5ac542c alacritty: Set TERM 2022-06-29 17:58:22 +02:00
bc6abb6492 Enable yubikey-touch-detector conditionally 2022-06-29 17:58:22 +02:00
689b00e46c autostart: Template the autostart target unit file 2022-06-29 17:58:22 +02:00
ca70989963 Bootstrap venv via Makefile 2022-06-29 17:58:22 +02:00
5dab967b6c zsh: Remove GO* env variables 2022-06-29 17:58:22 +02:00
a3deaf6546 vim: Fix YCM compilation 2022-06-29 17:58:22 +02:00
a527942356 ansible: Fix systemd user unit masking 2022-06-29 17:58:22 +02:00
0827d7ba35 i3: Move spotify to the very left of i3bar 2022-06-29 17:58:22 +02:00
b65659d631 i3: Add mic toggle mapping 2022-06-29 17:58:22 +02:00
2a8e1354f8 i3: Remap floating toggle 2022-06-29 17:58:22 +02:00
da5245071d git: ff-only on pull 2022-06-29 17:58:22 +02:00
67a7d47a1d dunst: Move window to bottom 2022-06-29 17:58:22 +02:00
1551ef8ce0 alacritty: Enable dynamic titles 2022-06-29 17:58:22 +02:00
3765d22ab8 Merge pull request #5 from hakoerber/dependabot/pip/cryptography-3.3.2
build(deps): bump cryptography from 3.2.1 to 3.3.2
2022-06-29 17:58:21 +02:00
46d6cdf9ba Merge pull request #8 from hakoerber/dependabot/pip/ansible-2.10.7
build(deps): bump ansible from 2.10.4 to 2.10.7
2022-06-29 17:58:21 +02:00
ab1c48aefc build(deps): bump cryptography from 3.2.1 to 3.3.2
Bumps [cryptography](https://github.com/pyca/cryptography) from 3.2.1 to 3.3.2.
- [Release notes](https://github.com/pyca/cryptography/releases)
- [Changelog](https://github.com/pyca/cryptography/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/3.2.1...3.3.2)

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-29 17:58:21 +02:00
1d1a2e2e55 packages: Add terraform 2022-06-29 17:58:21 +02:00
969fabe77c build(deps): bump ansible from 2.10.4 to 2.10.7
Bumps [ansible](https://github.com/ansible/ansible) from 2.10.4 to 2.10.7.
- [Release notes](https://github.com/ansible/ansible/releases)
- [Commits](https://github.com/ansible/ansible/compare/v2.10.4...v2.10.7)

---
updated-dependencies:
- dependency-name: ansible
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-29 17:58:21 +02:00
ca727cf906 packages: Add some python modules 2022-06-29 17:58:21 +02:00
86257e57da Install mkinitcpio in arch 2022-06-29 17:58:21 +02:00
b4f073bd1d Limit memory usage of nextcloud 2022-06-29 17:58:21 +02:00
2c21846b06 Fix libvirt setup on arch 2022-06-29 17:58:20 +02:00
6ea2fe1cac Optimize pacman caching in docker test script 2022-06-29 17:58:20 +02:00
ce7ed9420a testscript: Clean up tmpdir 2022-06-29 17:58:20 +02:00
ef2e0e4919 Deprecate fedora 2022-06-29 17:58:20 +02:00
59d57ee694 Add script to detect missing packages in list 2022-06-29 17:58:20 +02:00
c61d31a568 zsh: Use yaml.safe_load for yaml2json 2022-06-29 17:58:20 +02:00
b592d4516e Refactor docker testing script 2022-06-29 17:58:20 +02:00
6232638023 i3: Remove deprecated wallchanger hotkeys 2022-06-29 17:58:20 +02:00
5f3c8b43db i3: Add screenshot config 2022-06-29 17:58:20 +02:00
1cb92ad7b9 Install maim 2022-06-29 17:58:20 +02:00
f454bae025 Merge pull request #6 from hakoerber/dependabot/pip/jinja2-2.11.3
build(deps): bump jinja2 from 2.11.2 to 2.11.3
2022-06-29 17:58:19 +02:00
3f77ddb377 Fix screencfg for ares 2022-06-29 17:58:19 +02:00
24db348ef8 Merge pull request #7 from hakoerber/dependabot/pip/pyyaml-5.4
build(deps): bump pyyaml from 5.3.1 to 5.4
2022-06-29 17:58:19 +02:00
66485f7219 zsh: Suppress warnings in "embiggen" 2022-06-29 17:58:19 +02:00
3ff4718408 zsh: Remove duplicate "embiggen" function 2022-06-29 17:58:19 +02:00
c381a2c006 Install pdf packages 2022-06-29 17:58:19 +02:00
b6c78e01ff gtk: Update font size calculation 2022-06-29 17:58:19 +02:00
6eb4d5b1d6 build(deps): bump jinja2 from 2.11.2 to 2.11.3
Bumps [jinja2](https://github.com/pallets/jinja) from 2.11.2 to 2.11.3.
- [Release notes](https://github.com/pallets/jinja/releases)
- [Changelog](https://github.com/pallets/jinja/blob/master/CHANGES.rst)
- [Commits](https://github.com/pallets/jinja/compare/2.11.2...2.11.3)

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-29 17:58:18 +02:00
ec1205f6fa Add signal autostart 2022-06-29 17:58:18 +02:00
7b57d170bd build(deps): bump pyyaml from 5.3.1 to 5.4
Bumps [pyyaml](https://github.com/yaml/pyyaml) from 5.3.1 to 5.4.
- [Release notes](https://github.com/yaml/pyyaml/releases)
- [Changelog](https://github.com/yaml/pyyaml/blob/master/CHANGES)
- [Commits](https://github.com/yaml/pyyaml/compare/5.3.1...5.4)

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-29 17:58:18 +02:00
90ec23a80a Add element autostart 2022-06-29 17:58:18 +02:00
e6bee6f56b i3: Force steam to workspace 5 2022-06-29 17:58:18 +02:00
f1122edb0e Disable restic on private account on tb-hak 2022-06-29 17:58:18 +02:00
45145efcb8 x: Import the environment on startup
This is required to set the DISPLAY variable correctly.
2022-06-29 17:58:18 +02:00
a24bf7f146 autostart: Update "Type" of i3 service
"exec" is not available on Ubuntu 18.04, and it does not help to resolve
the ordering problem anyway.
2022-06-29 17:58:18 +02:00
dd93c0a30b Make gpg ssh support configurable 2022-06-29 17:58:18 +02:00
3feee6543c autostart: Remove hardcoded DISPLAY 2022-06-29 17:58:18 +02:00
b33b79d9a7 Install pydbus on ubuntu 2022-06-29 17:58:18 +02:00
956e7abf0d Add workaround for old ubuntu systemd 2022-06-29 17:58:17 +02:00
18833de76b Remove old screencfg config 2022-06-29 17:58:17 +02:00
04d93333bf i3: Add shortcuts for screenconfigs 2022-06-29 17:58:17 +02:00
895a2dae62 Update screenconfigs 2022-06-29 17:58:17 +02:00
aecfaab249 screencfg: Support additional --set parameters 2022-06-29 17:58:17 +02:00
78f50ff693 screencfg: Use yaml.safe_load() 2022-06-29 17:58:17 +02:00
55120fa816 zsh: Do not export TERMBIN, not needed 2022-06-29 17:58:17 +02:00
660ef9ca23 tmux: Use generic default-terminal 2022-06-29 17:58:17 +02:00
b1723520d2 qt: Remove unneeded options 2022-06-29 17:58:17 +02:00
a650a72554 ubuntu: Add more theming packages 2022-06-29 17:58:17 +02:00
7b21921b9d tb-hak: Switch to alacritty 2022-06-29 17:58:17 +02:00
a3c42992c7 gtk: Use font_size 2022-06-29 17:58:17 +02:00
cb97244afa Make autostart ubuntu-compatible 2022-06-29 17:58:17 +02:00
7aea8c0dda restic: Do backups only once per day 2022-06-29 17:58:17 +02:00
f723d64780 Fix failure during check run 2022-06-29 17:58:17 +02:00
55728112ce Add more packages for ubuntu 2022-06-29 17:58:17 +02:00
162 changed files with 4670 additions and 4179 deletions

2
.gitignore vendored
View File

@@ -1 +1 @@
/venv/ /*.bundle

63
.gitmodules vendored
View File

@@ -1,3 +1,60 @@
[submodule "contrib/vim-plug"] [submodule "ansible_roles/firefox"]
path = contrib/vim-plug path = ansible_roles/firefox
url = https://github.com/junegunn/vim-plug url = https://github.com/staticdev/ansible-role-firefox
[submodule "pkgbuilds/spotify"]
path = pkgbuilds/spotify
url = https://aur.archlinux.org/spotify.git
[submodule "pkgbuilds/nodejs-intelephense"]
path = pkgbuilds/nodejs-intelephense
url = https://aur.archlinux.org/nodejs-intelephense.git
[submodule "pkgbuilds/portfolio-performance-bin"]
path = pkgbuilds/portfolio-performance-bin
url = https://aur.archlinux.org/portfolio-performance-bin.git
[submodule "pkgbuilds/vim-plug"]
path = pkgbuilds/vim-plug
url = https://aur.archlinux.org/vim-plug.git
[submodule "pkgbuilds/terraform-ls-bin"]
path = pkgbuilds/terraform-ls-bin
url = https://aur.archlinux.org/terraform-ls-bin.git
[submodule "pkgbuilds/grm-git"]
path = pkgbuilds/grm-git
url = https://aur.archlinux.org/grm-git.git
[submodule "pkgbuilds/screencfg-git"]
path = pkgbuilds/screencfg-git
url = https://aur.archlinux.org/screencfg-git.git
[submodule "pkgbuilds/google-earth-pro"]
path = pkgbuilds/google-earth-pro
url = https://aur.archlinux.org/google-earth-pro.git
[submodule "pkgbuilds/aws-sam-cli"]
path = pkgbuilds/aws-sam-cli
url = https://aur.archlinux.org/aws-sam-cli.git
[submodule "pkgbuilds/python-boto3-stubs"]
path = pkgbuilds/python-boto3-stubs
url = https://aur.archlinux.org/python-boto3-stubs.git
[submodule "pkgbuilds/python-botocore-stubs"]
path = pkgbuilds/python-botocore-stubs
url = https://aur.archlinux.org/python-botocore-stubs.git
[submodule "pkgbuilds/python-chevron"]
path = pkgbuilds/python-chevron
url = https://aur.archlinux.org/python-chevron.git
[submodule "pkgbuilds/python-aws-lambda-builders"]
path = pkgbuilds/python-aws-lambda-builders
url = https://aur.archlinux.org/python-aws-lambda-builders.git
[submodule "pkgbuilds/python-vdf"]
path = pkgbuilds/python-vdf
url = https://aur.archlinux.org/python-vdf.git
[submodule "pkgbuilds/protontricks"]
path = pkgbuilds/protontricks
url = https://aur.archlinux.org/protontricks.git
[submodule "pkgbuilds/slack-desktop"]
path = pkgbuilds/slack-desktop
url = https://aur.archlinux.org/slack-desktop.git
[submodule "pkgbuilds/backblaze-b2"]
path = pkgbuilds/backblaze-b2
url = https://aur.archlinux.org/backblaze-b2.git
[submodule "pkgbuilds/python-class-registry"]
path = pkgbuilds/python-class-registry
url = https://aur.archlinux.org/python-class-registry.git
[submodule "pkgbuilds/python-rst2ansi"]
path = pkgbuilds/python-rst2ansi
url = https://aur.archlinux.org/python-rst2ansi.git

View File

@@ -1,21 +1,16 @@
venv = ./venv ansible_run = ansible-playbook --inventory localhost, --diff ./playbook.yml ${ANSIBLE_EXTRA_ARGS}
requirements = requirements.txt
activate = . $(venv)/bin/activate
pip = pip
ansible = venv/bin/ansible-playbook
ansible_run = $(activate) && ansible-playbook --inventory localhost, --diff --verbose ./playbook.yml ${ANSIBLE_EXTRA_ARGS}
.PHONY: all .PHONY: all
all: $(ansible) all:
$(ansible_run) $(ansible_run)
.PHONY: dryrun .PHONY: config
dryrun: $(ansible) config:
$(ansible_run) --check $(ansible_run) --skip-tags system-update
.PHONY: update .PHONY: system-update
update: $(ansible) system-update:
$(ansible_run) --tags update_system $(ansible_run) --tags system-update
.PHONY: reboot .PHONY: reboot
reboot: reboot:
@@ -29,27 +24,18 @@ poweroff:
weekend: | update poweroff weekend: | update poweroff
.PHONY: packages .PHONY: packages
packages: $(ansible) packages:
$(ansible_run) --tags packages $(ansible_run) --tags packages
.PHONY: dotfiles .PHONY: dotfiles
dotfiles: $(ansible) dotfiles:
$(ansible_run) --tags dotfiles $(ansible_run) --tags dotfiles
.PHONY: clean
clean:
rm -rf venv
.PHONY: test .PHONY: test
test: test:
./test-in-docker.sh ./test-in-docker.sh
$(ansible): venv .PHONY: fmt
fmt:
venv: git ls-files -z '*.md' | xargs -0 prettier --print-width 80 --prose-wrap always --write
python3 -m venv $(venv) git ls-files -z '*.toml' | xargs -0 taplo format
$(activate) && $(pip) install -r $(requirements)
.PHONY: freeze
freeze:
$(activate) && $(pip) freeze > $(requirements)

View File

@@ -1,27 +1,45 @@
# dotfiles # dotfiles
My configuration files. My configuration files for my systems. Uses Ansible for local configuration.
# Installation ## Supported OS
Only Arch Linux is supported
## Bootstrapping
Bootstrapping is specific to the exact machine that is installed. See
`_machines/` for machine-specific configuration, and `install_scripts/` for the
machine install scripts.
They are keyed by hostname.
For easier installation, the install scripts are available via shortlinks. To
(re)install a new machine from a Arch live environment:
```
curl --proto '=https' -sSfL https://s.hkoerber.de/i/${hostname}.sh | bash
```
## Manual Installation
Because it manages multiple users on the system, the directory is supposed to be Because it manages multiple users on the system, the directory is supposed to be
at `/var/lib/dotfiles`. at `/var/lib/dotfiles`.
To setup the dotfiles: To set up the dotfiles:
1. `git clone https://github.com/hakoerber/dotfiles.git ~/dotfiles` 1. `git clone https://github.com/hakoerber/dotfiles.git ~/dotfiles`
2. `cd ~/dotfiles && ./install.sh` 2. `cd ~/dotfiles && ./install.sh`
# Partial application ## Partial application
To apply only a subset of the changes, use ansible tags that are available via To apply only a subset of the changes, use ansible tags that are available via
the Makefile: the Makefile:
| Command | Description | | Command | Description |
| --- | --- | | --------------- | -------------------------------------------------- |
| `make update` | Updates the system with the latest packages |
| `make packages` | Installs all defined packages (see `packages.yml`) | | `make packages` | Installs all defined packages (see `packages.yml`) |
| `make dotfiles` | Manages the users' dotfiles | | `make dotfiles` | Manages the users' dotfiles |
Note that these are not supported on a first bootstrap run. Only use them after Note that these are not supported on a first bootstrap run. Only use them after
the bootstrap to update existing configuration. the bootstrap to update existing configuration.

View File

@@ -1,20 +1,38 @@
font_size: 12 font_size: 11
letter_space: 0
terminal_binary: alacritty
gpu: amd gpu: amd
cpu: amd
users: users:
- name: hannes - name: hannes
vt: 1 vt: 1
firefox_profiles: firefox_profiles:
- name: 7kqv7aco.default-release default:
extensions:
- ublock-origin
- passff
- privacy-badger17
- tree-style-tab
- i-dont-care-about-cookies
- floccus
manage_css: true manage_css: true
media:
extensions:
- ublock-origin
- passff
- privacy-badger17
- tree-style-tab
- i-dont-care-about-cookies
manage_css: true
bigger_font: true
mail: hannes@hkoerber.de mail: hannes@hkoerber.de
git_gpg_sign: false ssh_agent: false
gpg_agent: true gpg_agent: true
gpg_keys: gpg_agent_for_ssh: true
master_key: "0xB5C002530C6A2053" gpg_key:
email: hannes@hkoerber.de
id: "0xB5C002530C6A2053"
fingerprint: "973AE48D71B76735C4712B5BB5C002530C6A2053"
environment: environment:
MACHINE_HAS_NEXTCLOUD: "true" MACHINE_HAS_NEXTCLOUD: "true"
@@ -31,14 +49,14 @@ screen:
0: DisplayPort-0 0: DisplayPort-0
workspace: workspace:
1: ""
9: ""
10: ""
environment: environment:
MACHINE_TYPE: "workstation" MACHINE_TYPE: "workstation"
MACHINE_HAS_KEEPASSX: "false" MACHINE_HAS_KEEPASSXC: "false"
MACHINE_HAS_NEXTCLOUD: "true" MACHINE_HAS_NEXTCLOUD: "true"
MACHINE_HAS_STEAM: "true" MACHINE_HAS_STEAM: "true"
MACHINE_HAS_DISCORD: "true"
MACHINE_HAS_RESTIC_BACKUP: "false"
MACHINE_DEFAULT_SCREENPROFILE: "ares"
MACHINE_RESOLUTION_X: "2560" MACHINE_RESOLUTION_X: "2560"
MACHINE_RESOLUTION_Y: "1440" MACHINE_RESOLUTION_Y: "1440"

78
_machines/neptune.yml Normal file
View File

@@ -0,0 +1,78 @@
font_size: 11
gpu: nvidia
cpu: intel
users:
- name: hannes-work
vt: 1
firefox_profiles:
default:
extensions:
- ublock-origin
- privacy-badger17
- tree-style-tab
- i-dont-care-about-cookies
manage_css: true
meet:
extensions:
- ublock-origin
manage_css: false
mail: h.koerber@clipmyhorse.tv
ssh_agent: true
gpg_agent: false
gpg_agent_for_ssh: false
environment:
MACHINE_HAS_NEXTCLOUD: "false"
MACHINE_HAS_KEEPASSXC: "true"
- name: hannes-private
vt: 2
firefox_profiles:
default:
extensions:
- ublock-origin
- passff
- privacy-badger17
- tree-style-tab
- i-dont-care-about-cookies
- floccus
manage_css: true
mail: hannes@hkoerber.de
ssh_agent: false
gpg_agent: true
gpg_agent_for_ssh: true
gpg_key:
email: hannes@hkoerber.de
id: "0xB5C002530C6A2053"
fingerprint: "973AE48D71B76735C4712B5BB5C002530C6A2053"
environment:
MACHINE_HAS_NEXTCLOUD: "true"
MACHINE_HAS_KEEPASSXC: "false"
screen:
1: DP-4-1-6
2: DP-4-1-6
3: DP-4-1-6
4: DP-4-1-6
5: DP-4-1-6
6: DP-4-1-6
7: eDP-1
8: eDP-1
9: eDP-1
0: eDP-1
workspace:
1: ""
2: ""
3: ""
4: ""
7: ""
8: ""
9: ""
10: ""
environment:
MACHINE_TYPE: "laptop"
MACHINE_RESOLUTION_X: "1920"
MACHINE_RESOLUTION_Y: "1200"

View File

@@ -1,55 +0,0 @@
font_size: 11
letter_space: 0
terminal_binary: urxvt
users:
- name: hannes-work
group: hak
vt: 1
firefox_profiles:
- name: 3wmp9hdb.default-1565075150057
manage_css: true
mail: hannes.koerber@tradebyte.com
git_gpg_sign: false
gpg_agent: false
environment:
MACHINE_HAS_NEXTCLOUD: "false"
- name: hannes-private
group: tpp
vt: 2
mail: hannes@hkoerber.de
git_gpg_sign: false
gpg_agent: true
gpg_keys:
master_key: "0xB5C002530C6A2053"
environment:
MACHINE_HAS_NEXTCLOUD: "true"
screen:
1: DP-1-1
2: DP-1-1
3: DP-1-2
4: DP-1-2
5: DP-1-2
6: DP-1-2
7: eDP-1
8: eDP-1
9: eDP-1
0: eDP-1
workspace:
1: www
2: www
3: term-local
4: term-remote
7: comm
8: pass
9: music
10: pim
environment:
MACHINE_TYPE: "laptop"
MACHINE_HAS_KEEPASSX: "true"
MACHINE_HAS_RESTIC_BACKUP: "true"
MACHINE_RESOLUTION_X: "1920"
MACHINE_RESOLUTION_Y: "1080"

View File

@@ -0,0 +1,40 @@
[general]
live_config_reload = true
import = [
"~/.config/alacritty/themes/monokai.toml"
]
[env]
TERM = "alacritty"
WINIT_X11_SCALE_FACTOR = "1"
[font]
size = {{ machine.font_size }}
[font.bold]
family = "JetBrainsMono"
style = "Bold"
[font.bold_italic]
family = "JetBrainsMono"
style = "Bold Italic"
[font.italic]
family = "JetBrainsMono"
style = "Italic"
[font.normal]
family = "JetBrainsMono"
style = "Regular"
[selection]
save_to_clipboard = true
[window]
dynamic_title = true
title = "[terminal]"
[window.padding]
x = 3
y = 3

View File

@@ -1,702 +0,0 @@
# Configuration for Alacritty, the GPU enhanced terminal emulator.
# Import additional configuration files
#
# Imports are loaded in order, skipping all missing files, with the importing
# file being loaded last. If a field is already present in a previous import, it
# will be replaced.
#
# All imports must either be absolute paths starting with `/`, or paths relative
# to the user's home directory starting with `~/`.
#import:
# - /path/to/alacritty.yml
# Any items in the `env` entry below will be added as
# environment variables. Some entries may override variables
# set by alacritty itself.
#env:
# TERM variable
#
# This value is used to set the `$TERM` environment variable for
# each instance of Alacritty. If it is not present, alacritty will
# check the local terminfo database and use `alacritty` if it is
# available, otherwise `xterm-256color` is used.
#TERM: alacritty
window:
# Window dimensions (changes require restart)
#
# Number of lines/columns (not pixels) in the terminal. The number of columns
# must be at least `2`, while using a value of `0` for columns and lines will
# fall back to the window manager's recommended size.
#dimensions:
# columns: 0
# lines: 0
# Window position (changes require restart)
#
# Specified in number of pixels.
# If the position is not set, the window manager will handle the placement.
#position:
# x: 0
# y: 0
# Window padding (changes require restart)
#
# Blank space added around the window in pixels. This padding is scaled
# by DPI and the specified value is always added at both opposing sides.
padding:
x: 3
y: 3
# Spread additional padding evenly around the terminal content.
#dynamic_padding: false
# Window decorations
#
# Values for `decorations`:
# - full: Borders and title bar
# - none: Neither borders nor title bar
#
# Values for `decorations` (macOS only):
# - transparent: Title bar, transparent background and title bar buttons
# - buttonless: Title bar, transparent background and no title bar buttons
#decorations: full
# Startup Mode (changes require restart)
#
# Values for `startup_mode`:
# - Windowed
# - Maximized
# - Fullscreen
#
# Values for `startup_mode` (macOS only):
# - SimpleFullscreen
#startup_mode: Windowed
# Window title
#title: Alacritty
# Allow terminal applications to change Alacritty's window title.
#dynamic_title: true
# Window class (Linux/BSD only):
#class:
# Application instance name
#instance: Alacritty
# General application class
#general: Alacritty
# GTK theme variant (Linux/BSD only)
#
# Override the variant of the GTK theme. Commonly supported values are `dark`
# and `light`. Set this to `None` to use the default theme variant.
#gtk_theme_variant: None
#scrolling:
# Maximum number of lines in the scrollback buffer.
# Specifying '0' will disable scrolling.
#history: 10000
# Scrolling distance multiplier.
#multiplier: 3
# Font configuration
font:
# Normal (roman) font face
normal:
# Font family
#
# Default:
# - (macOS) Menlo
# - (Linux/BSD) monospace
# - (Windows) Consolas
family: Inconsolata
# The `style` can be specified to pick a specific face.
style: Regular
# Bold font face
bold:
# Font family
#
# If the bold family is not specified, it will fall back to the
# value specified for the normal font.
family: Inconsolata
# The `style` can be specified to pick a specific face.
style: Bold
# Italic font face
italic:
# Font family
#
# If the italic family is not specified, it will fall back to the
# value specified for the normal font.
family: Inconsolata
# The `style` can be specified to pick a specific face.
style: Italic
# Bold italic font face
bold_italic:
# Font family
#
# If the bold italic family is not specified, it will fall back to the
# value specified for the normal font.
family: Inconsolata
# The `style` can be specified to pick a specific face.
style: Bold Italic
# Point size
size: {{ machine.font_size }}
# Offset is the extra space around each character. `offset.y` can be thought
# of as modifying the line spacing, and `offset.x` as modifying the letter
# spacing.
#offset:
# x: 0
# y: 0
# Glyph offset determines the locations of the glyphs within their cells with
# the default being at the bottom. Increasing `x` moves the glyph to the
# right, increasing `y` moves the glyph upward.
#glyph_offset:
# x: 0
# y: 0
# Thin stroke font rendering (macOS only)
#
# Thin strokes are suitable for retina displays, but for non-retina screens
# it is recommended to set `use_thin_strokes` to `false`.
#use_thin_strokes: true
# If `true`, bold text is drawn using the bright color variants.
#draw_bold_text_with_bright_colors: false
# Colors (Monokai Dark)
colors:
# Default colors
primary:
background: '#272822'
foreground: '#F8F8F2'
# Normal colors
normal:
black: '#272822'
red: '#F92672'
green: '#A6E22E'
yellow: '#F4BF75'
blue: '#66D9EF'
magenta: '#AE81FF'
cyan: '#A1EFE4'
white: '#F8F8F2'
# Bright colors
bright:
black: '#75715E'
red: '#F92672'
green: '#A6E22E'
yellow: '#F4BF75'
blue: '#66D9EF'
magenta: '#AE81FF'
cyan: '#A1EFE4'
white: '#F9F8F5'
# Bell
#
# The bell is rung every time the BEL control character is received.
#bell:
# Visual Bell Animation
#
# Animation effect for flashing the screen when the visual bell is rung.
#
# Values for `animation`:
# - Ease
# - EaseOut
# - EaseOutSine
# - EaseOutQuad
# - EaseOutCubic
# - EaseOutQuart
# - EaseOutQuint
# - EaseOutExpo
# - EaseOutCirc
# - Linear
#animation: EaseOutExpo
# Duration of the visual bell flash in milliseconds. A `duration` of `0` will
# disable the visual bell animation.
#duration: 0
# Visual bell animation color.
#color: '#ffffff'
# Bell Command
#
# This program is executed whenever the bell is rung.
#
# When set to `command: None`, no command will be executed.
#
# Example:
# command:
# program: notify-send
# args: ["Hello, World!"]
#
#command: None
# Background opacity
#
# Window opacity as a floating point number from `0.0` to `1.0`.
# The value `0.0` is completely transparent and `1.0` is opaque.
#background_opacity: 1.0
selection:
# This string contains all characters that are used as separators for
# "semantic words" in Alacritty.
#semantic_escape_chars: ",│`|:\"' ()[]{}<>\t"
# When set to `true`, selected text will be copied to the primary clipboard.
save_to_clipboard: true
#cursor:
# Cursor style
#style:
# Cursor shape
#
# Values for `shape`:
# - ▇ Block
# - _ Underline
# - | Beam
#shape: Block
# Cursor blinking state
#
# Values for `blinking`:
# - Never: Prevent the cursor from ever blinking
# - Off: Disable blinking by default
# - On: Enable blinking by default
# - Always: Force the cursor to always blink
#blinking: Off
# Vi mode cursor style
#
# If the vi mode cursor style is `None` or not specified, it will fall back to
# the style of the active value of the normal cursor.
#
# See `cursor.style` for available options.
#vi_mode_style: None
# Cursor blinking interval in milliseconds.
#blink_interval: 750
# If this is `true`, the cursor will be rendered as a hollow box when the
# window is not focused.
#unfocused_hollow: true
# Thickness of the cursor relative to the cell width as floating point number
# from `0.0` to `1.0`.
#thickness: 0.15
# Live config reload (changes require restart)
live_config_reload: false
# Shell
#
# You can set `shell.program` to the path of your favorite shell, e.g.
# `/bin/fish`. Entries in `shell.args` are passed unmodified as arguments to the
# shell.
#
# Default:
# - (macOS) /bin/bash --login
# - (Linux/BSD) user login shell
# - (Windows) powershell
#shell:
# program: /bin/bash
# args:
# - --login
# Startup directory
#
# Directory the shell is started in. If this is unset, or `None`, the working
# directory of the parent process will be used.
#working_directory: None
# WinPTY backend (Windows only)
#
# Alacritty defaults to using the newer ConPTY backend if it is available,
# since it resolves a lot of bugs and is quite a bit faster. If it is not
# available, the WinPTY backend will be used instead.
#
# Setting this option to `true` makes Alacritty use the legacy WinPTY backend,
# even if the ConPTY backend is available.
#winpty_backend: false
# Send ESC (\x1b) before characters when alt is pressed.
#alt_send_esc: true
#mouse:
# Click settings
#
# The `double_click` and `triple_click` settings control the time
# alacritty should wait for accepting multiple clicks as one double
# or triple click.
#double_click: { threshold: 300 }
#triple_click: { threshold: 300 }
# If this is `true`, the cursor is temporarily hidden when typing.
#hide_when_typing: false
#url:
# URL launcher
#
# This program is executed when clicking on a text which is recognized as a
# URL. The URL is always added to the command as the last parameter.
#
# When set to `launcher: None`, URL launching will be disabled completely.
#
# Default:
# - (macOS) open
# - (Linux/BSD) xdg-open
# - (Windows) explorer
#launcher:
# program: xdg-open
# args: []
# URL modifiers
#
# These are the modifiers that need to be held down for opening URLs when
# clicking on them. The available modifiers are documented in the key
# binding section.
#modifiers: None
# Mouse bindings
#
# Mouse bindings are specified as a list of objects, much like the key
# bindings further below.
#
# To trigger mouse bindings when an application running within Alacritty
# captures the mouse, the `Shift` modifier is automatically added as a
# requirement.
#
# Each mouse binding will specify a:
#
# - `mouse`:
#
# - Middle
# - Left
# - Right
# - Numeric identifier such as `5`
#
# - `action` (see key bindings)
#
# And optionally:
#
# - `mods` (see key bindings)
#mouse_bindings:
# - { mouse: Middle, action: PasteSelection }
# Key bindings
#
# Key bindings are specified as a list of objects. For example, this is the
# default paste binding:
#
# `- { key: V, mods: Control|Shift, action: Paste }`
#
# Each key binding will specify a:
#
# - `key`: Identifier of the key pressed
#
# - A-Z
# - F1-F24
# - Key0-Key9
#
# A full list with available key codes can be found here:
# https://docs.rs/glutin/*/glutin/event/enum.VirtualKeyCode.html#variants
#
# Instead of using the name of the keys, the `key` field also supports using
# the scancode of the desired key. Scancodes have to be specified as a
# decimal number. This command will allow you to display the hex scancodes
# for certain keys:
#
# `showkey --scancodes`.
#
# Then exactly one of:
#
# - `chars`: Send a byte sequence to the running application
#
# The `chars` field writes the specified string to the terminal. This makes
# it possible to pass escape sequences. To find escape codes for bindings
# like `PageUp` (`"\x1b[5~"`), you can run the command `showkey -a` outside
# of tmux. Note that applications use terminfo to map escape sequences back
# to keys. It is therefore required to update the terminfo when changing an
# escape sequence.
#
# - `action`: Execute a predefined action
#
# - ToggleViMode
# - SearchForward
# Start searching toward the right of the search origin.
# - SearchBackward
# Start searching toward the left of the search origin.
# - Copy
# - Paste
# - IncreaseFontSize
# - DecreaseFontSize
# - ResetFontSize
# - ScrollPageUp
# - ScrollPageDown
# - ScrollHalfPageUp
# - ScrollHalfPageDown
# - ScrollLineUp
# - ScrollLineDown
# - ScrollToTop
# - ScrollToBottom
# - ClearHistory
# Remove the terminal's scrollback history.
# - Hide
# Hide the Alacritty window.
# - Minimize
# Minimize the Alacritty window.
# - Quit
# Quit Alacritty.
# - ToggleFullscreen
# - SpawnNewInstance
# Spawn a new instance of Alacritty.
# - ClearLogNotice
# Clear Alacritty's UI warning and error notice.
# - ClearSelection
# Remove the active selection.
# - ReceiveChar
# - None
#
# - Vi mode exclusive actions:
#
# - Open
# Open URLs at the cursor location with the launcher configured in
# `url.launcher`.
# - ToggleNormalSelection
# - ToggleLineSelection
# - ToggleBlockSelection
# - ToggleSemanticSelection
# Toggle semantic selection based on `selection.semantic_escape_chars`.
#
# - Vi mode exclusive cursor motion actions:
#
# - Up
# One line up.
# - Down
# One line down.
# - Left
# One character left.
# - Right
# One character right.
# - First
# First column, or beginning of the line when already at the first column.
# - Last
# Last column, or beginning of the line when already at the last column.
# - FirstOccupied
# First non-empty cell in this terminal row, or first non-empty cell of
# the line when already at the first cell of the row.
# - High
# Top of the screen.
# - Middle
# Center of the screen.
# - Low
# Bottom of the screen.
# - SemanticLeft
# Start of the previous semantically separated word.
# - SemanticRight
# Start of the next semantically separated word.
# - SemanticLeftEnd
# End of the previous semantically separated word.
# - SemanticRightEnd
# End of the next semantically separated word.
# - WordLeft
# Start of the previous whitespace separated word.
# - WordRight
# Start of the next whitespace separated word.
# - WordLeftEnd
# End of the previous whitespace separated word.
# - WordRightEnd
# End of the next whitespace separated word.
# - Bracket
# Character matching the bracket at the cursor's location.
# - SearchNext
# Beginning of the next match.
# - SearchPrevious
# Beginning of the previous match.
# - SearchStart
# Start of the match to the left of the vi mode cursor.
# - SearchEnd
# End of the match to the right of the vi mode cursor.
#
# - macOS exclusive actions:
# - ToggleSimpleFullscreen
# Enter fullscreen without occupying another space.
#
# - Linux/BSD exclusive actions:
#
# - CopySelection
# Copy from the selection buffer.
# - PasteSelection
# Paste from the selection buffer.
#
# - `command`: Fork and execute a specified command plus arguments
#
# The `command` field must be a map containing a `program` string and an
# `args` array of command line parameter strings. For example:
# `{ program: "alacritty", args: ["-e", "vttest"] }`
#
# And optionally:
#
# - `mods`: Key modifiers to filter binding actions
#
# - Command
# - Control
# - Option
# - Super
# - Shift
# - Alt
#
# Multiple `mods` can be combined using `|` like this:
# `mods: Control|Shift`.
# Whitespace and capitalization are relevant and must match the example.
#
# - `mode`: Indicate a binding for only specific terminal reported modes
#
# This is mainly used to send applications the correct escape sequences
# when in different modes.
#
# - AppCursor
# - AppKeypad
# - Alt
# - Vi
#
# A `~` operator can be used before a mode to apply the binding whenever
# the mode is *not* active, e.g. `~Alt`.
#
# Bindings are always filled by default, but will be replaced when a new
# binding with the same triggers is defined. To unset a default binding, it can
# be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for
# a no-op if you do not wish to receive input characters for that binding.
#
# If the same trigger is assigned to multiple actions, all of them are executed
# in the order they were defined in.
#key_bindings:
#- { key: Paste, action: Paste }
#- { key: Copy, action: Copy }
#- { key: L, mods: Control, action: ClearLogNotice }
#- { key: L, mods: Control, mode: ~Vi, chars: "\x0c" }
#- { key: PageUp, mods: Shift, mode: ~Alt, action: ScrollPageUp, }
#- { key: PageDown, mods: Shift, mode: ~Alt, action: ScrollPageDown }
#- { key: Home, mods: Shift, mode: ~Alt, action: ScrollToTop, }
#- { key: End, mods: Shift, mode: ~Alt, action: ScrollToBottom }
# Vi Mode
#- { key: Space, mods: Shift|Control, mode: Vi, action: ScrollToBottom }
#- { key: Space, mods: Shift|Control, action: ToggleViMode }
#- { key: Escape, mode: Vi, action: ClearSelection }
#- { key: I, mode: Vi, action: ScrollToBottom }
#- { key: I, mode: Vi, action: ToggleViMode }
#- { key: C, mods: Control, mode: Vi, action: ToggleViMode }
#- { key: Y, mods: Control, mode: Vi, action: ScrollLineUp }
#- { key: E, mods: Control, mode: Vi, action: ScrollLineDown }
#- { key: G, mode: Vi, action: ScrollToTop }
#- { key: G, mods: Shift, mode: Vi, action: ScrollToBottom }
#- { key: B, mods: Control, mode: Vi, action: ScrollPageUp }
#- { key: F, mods: Control, mode: Vi, action: ScrollPageDown }
#- { key: U, mods: Control, mode: Vi, action: ScrollHalfPageUp }
#- { key: D, mods: Control, mode: Vi, action: ScrollHalfPageDown }
#- { key: Y, mode: Vi, action: Copy }
#- { key: Y, mode: Vi, action: ClearSelection }
#- { key: Copy, mode: Vi, action: ClearSelection }
#- { key: V, mode: Vi, action: ToggleNormalSelection }
#- { key: V, mods: Shift, mode: Vi, action: ToggleLineSelection }
#- { key: V, mods: Control, mode: Vi, action: ToggleBlockSelection }
#- { key: V, mods: Alt, mode: Vi, action: ToggleSemanticSelection }
#- { key: Return, mode: Vi, action: Open }
#- { key: K, mode: Vi, action: Up }
#- { key: J, mode: Vi, action: Down }
#- { key: H, mode: Vi, action: Left }
#- { key: L, mode: Vi, action: Right }
#- { key: Up, mode: Vi, action: Up }
#- { key: Down, mode: Vi, action: Down }
#- { key: Left, mode: Vi, action: Left }
#- { key: Right, mode: Vi, action: Right }
#- { key: Key0, mode: Vi, action: First }
#- { key: Key4, mods: Shift, mode: Vi, action: Last }
#- { key: Key6, mods: Shift, mode: Vi, action: FirstOccupied }
#- { key: H, mods: Shift, mode: Vi, action: High }
#- { key: M, mods: Shift, mode: Vi, action: Middle }
#- { key: L, mods: Shift, mode: Vi, action: Low }
#- { key: B, mode: Vi, action: SemanticLeft }
#- { key: W, mode: Vi, action: SemanticRight }
#- { key: E, mode: Vi, action: SemanticRightEnd }
#- { key: B, mods: Shift, mode: Vi, action: WordLeft }
#- { key: W, mods: Shift, mode: Vi, action: WordRight }
#- { key: E, mods: Shift, mode: Vi, action: WordRightEnd }
#- { key: Key5, mods: Shift, mode: Vi, action: Bracket }
#- { key: Slash, mode: Vi, action: SearchForward }
#- { key: Slash, mods: Shift, mode: Vi, action: SearchBackward }
#- { key: N, mode: Vi, action: SearchNext }
#- { key: N, mods: Shift, mode: Vi, action: SearchPrevious }
# (Windows, Linux, and BSD only)
#- { key: V, mods: Control|Shift, action: Paste }
#- { key: C, mods: Control|Shift, action: Copy }
#- { key: F, mods: Control|Shift, action: SearchForward }
#- { key: B, mods: Control|Shift, action: SearchBackward }
#- { key: C, mods: Control|Shift, mode: Vi, action: ClearSelection }
#- { key: Insert, mods: Shift, action: PasteSelection }
#- { key: Key0, mods: Control, action: ResetFontSize }
#- { key: Equals, mods: Control, action: IncreaseFontSize }
#- { key: Plus, mods: Control, action: IncreaseFontSize }
#- { key: NumpadAdd, mods: Control, action: IncreaseFontSize }
#- { key: Minus, mods: Control, action: DecreaseFontSize }
#- { key: NumpadSubtract, mods: Control, action: DecreaseFontSize }
# (Windows only)
#- { key: Return, mods: Alt, action: ToggleFullscreen }
# (macOS only)
#- { key: K, mods: Command, mode: ~Vi, chars: "\x0c" }
#- { key: Key0, mods: Command, action: ResetFontSize }
#- { key: Equals, mods: Command, action: IncreaseFontSize }
#- { key: Plus, mods: Command, action: IncreaseFontSize }
#- { key: NumpadAdd, mods: Command, action: IncreaseFontSize }
#- { key: Minus, mods: Command, action: DecreaseFontSize }
#- { key: NumpadSubtract, mods: Command, action: DecreaseFontSize }
#- { key: K, mods: Command, action: ClearHistory }
#- { key: V, mods: Command, action: Paste }
#- { key: C, mods: Command, action: Copy }
#- { key: C, mods: Command, mode: Vi, action: ClearSelection }
#- { key: H, mods: Command, action: Hide }
#- { key: M, mods: Command, action: Minimize }
#- { key: Q, mods: Command, action: Quit }
#- { key: W, mods: Command, action: Quit }
#- { key: N, mods: Command, action: SpawnNewInstance }
#- { key: F, mods: Command|Control, action: ToggleFullscreen }
#- { key: F, mods: Command, action: SearchForward }
#- { key: B, mods: Command, action: SearchBackward }
#debug:
# Display the time it takes to redraw each frame.
#render_timer: false
# Keep the log file after quitting Alacritty.
#persistent_logging: false
# Log level
#
# Values for `log_level`:
# - None
# - Error
# - Warn
# - Info
# - Debug
# - Trace
#log_level: Warn
# Print all received window events.
#print_events: false

View File

@@ -0,0 +1,36 @@
# github Alacritty Colors
# Default colors
[colors.primary]
background = '#ffffff'
foreground = '#24292f'
# Normal colors
[colors.normal]
black = '#24292e'
red = '#d73a49'
green = '#28a745'
yellow = '#dbab09'
blue = '#0366d6'
magenta = '#5a32a3'
cyan = '#0598bc'
white = '#6a737d'
# Bright colors
[colors.bright]
black = '#959da5'
red = '#cb2431'
green = '#22863a'
yellow = '#b08800'
blue = '#005cc5'
magenta = '#5a32a3'
cyan = '#3192aa'
white = '#d1d5da'
[[colors.indexed_colors]]
index = 16
color = '#d18616'
[[colors.indexed_colors]]
index = 17
color = '#cb2431'

View File

@@ -0,0 +1,23 @@
[colors.primary]
background = "#272822"
foreground = "#f8f8f2"
[colors.normal]
black = "#272822"
red = "#f92672"
green = "#a6e22e"
yellow = "#f4bf75"
blue = "#66d9ef"
magenta = "#ae81ff"
cyan = "#a1efe4"
white = "#f8f8f2"
[colors.bright]
black = "#75715e"
red = "#f92672"
green = "#a6e22e"
yellow = "#f4bf75"
blue = "#66d9ef"
magenta = "#ae81ff"
cyan = "#a1efe4"
white = "#f9f8f5"

View File

@@ -1,3 +1,6 @@
[defaults] [defaults]
retry_files_enabled = False retry_files_enabled = False
nocows = 1 nocows = 1
roles_path = ./ansible_roles
library = ./ansible_roles/firefox/library
remote_tmp = ${XDG_CONFIG_HOME}/ansible/tmp

1
ansible_roles/firefox Submodule

Submodule ansible_roles/firefox added at 2151dce632

View File

@@ -0,0 +1,32 @@
[Unit]
BindsTo=windowmanager.target
After=windowmanager.target
Wants=dpms.service
Wants=dunst.service
{% for profile, config in (user.firefox_profiles|default({})).items() %}
{% if config.bigger_font|default(false) is sameas false %}
Wants=firefox@{{ profile }}.service
{% endif %}
{% endfor %}
{% for profile, config in (user.firefox_profiles|default({})).items() %}
{% if config.bigger_font|default(false) is sameas true %}
Wants=firefox-gtk-override-bigger-font@{{ profile }}.service
{% endif %}
{% endfor %}
Wants=gpg-agent.service
Wants=gnome-keyring.service
Wants=keepassxc.service
Wants=keyboard.service
Wants=laptop-lid.service
Wants=nextcloud.service
Wants=nm-applet.service
Wants=pasystray.service
Wants=redshift.service
Wants=spotify.service
Wants=steam.service
Wants=touchpad.service
Wants=xresources.service
Wants=yubikey-touch-detector.service
Wants=kdeconnect.service
Wants=color-theme-dark.service

View File

@@ -1,27 +0,0 @@
[Unit]
BindsTo=windowmanager.target
After=windowmanager.target
Wants=blueman.service
Wants=discord.service
Wants=dpms.service
Wants=dunst.service
Wants=firefox.service
Wants=gpg-agent.service
Wants=gnome-keyring.service
Wants=keepassx.service
Wants=keyboard.service
Wants=laptop-lid.service
Wants=nextcloud.service
Wants=nm-applet.service
Wants=pasystray.service
Wants=redshift.service
Wants=restic.timer
Wants=screencfg.service
Wants=spotify.service
Wants=steam.service
Wants=touchpad.service
Wants=wallpaper.timer
Wants=xresources.service
Wants=yubikey-touch-detector.service

View File

@@ -1,6 +0,0 @@
[Unit]
BindsTo=autostart.target
After=windowmanager.target
[Service]
ExecStart=/usr/bin/blueman-applet

View File

@@ -1,8 +0,0 @@
[Unit]
BindsTo=autostart.target
After=windowmanager.target
ConditionEnvironment=MACHINE_HAS_DISCORD=true
[Service]
ExecStart=/usr/bin/discord

View File

@@ -4,5 +4,6 @@ After=windowmanager.target
[Service] [Service]
Type=oneshot Type=oneshot
ExecStart=xset s off ExecStart=/usr/bin/env xset s off
ExecStart=xset dpms 0 0 300 ExecStart=/usr/bin/env xset dpms 0 0 0
PassEnvironment=DISPLAY

View File

@@ -3,4 +3,6 @@ BindsTo=autostart.target
After=windowmanager.target After=windowmanager.target
[Service] [Service]
ExecStart=/usr/bin/dunst -config %h/.config/dunstrc ExecStart=/usr/bin/env dunst -config %h/.config/dunstrc
PassEnvironment=DISPLAY
Restart=always

View File

@@ -0,0 +1,9 @@
[Unit]
BindsTo=autostart.target
After=windowmanager.target
[Service]
ExecStart=/usr/bin/env firefox --setDefaultBrowser -P %i
PassEnvironment=DISPLAY
Environment=XDG_CONFIG_HOME=%h/.config/gtk-3.0-overrides/bigger-font/
Restart=always

View File

@@ -1,6 +0,0 @@
[Unit]
BindsTo=autostart.target
After=windowmanager.target
[Service]
ExecStart=/usr/bin/firefox --setDefaultBrowser -P default

View File

@@ -0,0 +1,8 @@
[Unit]
BindsTo=autostart.target
After=windowmanager.target
[Service]
ExecStart=/usr/bin/env firefox --setDefaultBrowser -P %i
PassEnvironment=DISPLAY
Restart=always

View File

@@ -4,3 +4,5 @@ After=windowmanager.target
[Service] [Service]
ExecStart=/usr/bin/env gnome-keyring-daemon --start --foreground --components secrets ExecStart=/usr/bin/env gnome-keyring-daemon --start --foreground --components secrets
PassEnvironment=DISPLAY
Restart=always

View File

@@ -1,7 +1,11 @@
[Unit] [Unit]
BindsTo=autostart.target BindsTo=autostart.target
After=windowmanager.target After=windowmanager.target
ConditionPathExists=%t/features/gpg_agent
[Service] [Service]
Type=forking Type=forking
ExecStart=/usr/bin/gpg-agent --homedir %h/.gnupg --no-detach --daemon ExecStart=/usr/bin/env gpg-agent --daemon
PassEnvironment=DISPLAY GNUPGHOME
Restart=always

View File

@@ -1,5 +1,6 @@
[Service] [Service]
Type=exec Type=simple
ExecStart=i3 --config %h/.i3/config ExecStart=/usr/bin/env i3 --config %h/.config/i3/config
PassEnvironment=DISPLAY
Restart=no Restart=no

View File

@@ -0,0 +1,8 @@
[Unit]
BindsTo=autostart.target
After=windowmanager.target
[Service]
ExecStart=/usr/bin/env kdeconnect-indicator
PassEnvironment=DISPLAY
Restart=always

View File

@@ -1,7 +0,0 @@
[Unit]
BindsTo=autostart.target
After=windowmanager.target
ConditionEnvironment=MACHINE_HAS_KEEPASSX=true
[Service]
ExecStart=/usr/bin/keepassx --keyfile %h/.secret/main.key %h/.secret/main.kdbx

View File

@@ -0,0 +1,9 @@
[Unit]
BindsTo=autostart.target
After=windowmanager.target
ConditionPathExists=%t/features/keepassxc
[Service]
ExecStart=/usr/bin/env keepassxc --keyfile %h/.secrets/main.keyx %h/.secrets/main.kdbx
PassEnvironment=DISPLAY
Restart=always

View File

@@ -4,6 +4,7 @@ After=windowmanager.target
[Service] [Service]
Type=oneshot Type=oneshot
ExecStart=/usr/bin/setxkbmap -layout de -variant nodeadkeys ExecStart=/usr/bin/env setxkbmap -layout de -variant nodeadkeys
ExecStart=/usr/bin/xset r rate 150 50 ExecStart=/usr/bin/env xset r rate 150 50
RemainAfterExit=true RemainAfterExit=true
PassEnvironment=DISPLAY

View File

@@ -1,8 +1,10 @@
[Unit] [Unit]
BindsTo=autostart.target BindsTo=autostart.target
After=windowmanager.target After=windowmanager.target
ConditionPathExists=%t/features/machine_is_laptop
ConditionEnvironment=MACHINE_TYPE=laptop
[Service] [Service]
ExecStart=/usr/bin/bash -c 'grep "^${ACPI_LID_NAME}.*enabled" /proc/acpi/wakeup && echo " ${ACPI_LID_NAME}" | sudo tee /proc/acpi/wakeup' Type=oneshot
ExecStart=/usr/bin/env bash -c 'grep "^LID.*enabled" /proc/acpi/wakeup && echo " LID" | sudo tee /proc/acpi/wakeup || true'
RemainAfterExit=true
PassEnvironment=DISPLAY

View File

@@ -0,0 +1,5 @@
[Service]
Type=simple
ExecStart=%h/bin/mousespam
RemainAfterExit=True
PassEnvironment=DISPLAY

View File

@@ -3,7 +3,12 @@ BindsTo=autostart.target
After=windowmanager.target After=windowmanager.target
After=gnome-keyring.service After=gnome-keyring.service
ConditionEnvironment=MACHINE_HAS_NEXTCLOUD=true ConditionPathExists=%t/features/nextcloud
[Service] [Service]
ExecStart=/usr/bin/nextcloud --background ExecStart=/usr/bin/env nextcloud --background
PassEnvironment=DISPLAY
Restart=always
MemoryHigh=20%
MemoryMax=30%

View File

@@ -3,4 +3,6 @@ BindsTo=autostart.target
After=windowmanager.target After=windowmanager.target
[Service] [Service]
ExecStart=/usr/bin/nm-applet ExecStart=/usr/bin/env nm-applet
PassEnvironment=DISPLAY
Restart=always

View File

@@ -3,4 +3,6 @@ BindsTo=autostart.target
After=windowmanager.target After=windowmanager.target
[Service] [Service]
ExecStart=/usr/bin/pasystray ExecStart=/usr/bin/env pasystray
PassEnvironment=DISPLAY
Restart=always

View File

@@ -3,4 +3,7 @@ BindsTo=autostart.target
After=windowmanager.target After=windowmanager.target
[Service] [Service]
ExecStart=/usr/bin/redshift-gtk -c %h/.config/redshift.conf ExecStartPre=/usr/bin/env redshift-gtk -x
ExecStart=/usr/bin/env redshift-gtk -c %h/.config/redshift.conf
PassEnvironment=DISPLAY
Restart=always

View File

@@ -1,7 +0,0 @@
[Unit]
ConditionEnvironment=MACHINE_HAS_RESTIC_BACKUP=true
[Service]
Type=oneshot
ExecStart=%h/bin/restic-backup
RemainAfterExit=true

View File

@@ -1,8 +0,0 @@
[Unit]
BindsTo=autostart.target
After=windowmanager.target
[Timer]
OnCalendar=Mon..Fri 09:00:00
OnCalendar=Mon..Fri 12:00:00
OnCalendar=Mon..Fri 16:00:00

View File

@@ -1,13 +0,0 @@
[Unit]
BindsTo=autostart.target
After=windowmanager.target
ConditionEnvironment=MACHINE_DEFAULT_SCREENPROFILE
[Service]
Type=oneshot
# systemd.service(5):
# > The command to execute may contain spaces, but control characters are not
# > allowed.
ExecStart=bash -c '%h/.screencfg/${MACHINE_DEFAULT_SCREENPROFILE}.sh'
RemainAfterExit=true

View File

@@ -3,4 +3,6 @@ BindsTo=autostart.target
After=windowmanager.target After=windowmanager.target
[Service] [Service]
ExecStart=/usr/bin/spotify ExecStart=/usr/bin/env spotify
PassEnvironment=DISPLAY
Restart=always

View File

@@ -3,7 +3,10 @@ BindsTo=autostart.target
After=windowmanager.target After=windowmanager.target
After=i3.service After=i3.service
ConditionEnvironment=MACHINE_HAS_STEAM=true ConditionPathExists=%t/features/steam
[Service] [Service]
ExecStart=/usr/bin/steam # `-system-composer`: https://github.com/ValveSoftware/steam-for-linux/issues/10806
ExecStart=/usr/bin/env steam -system-composer
PassEnvironment=DISPLAY
Restart=always

View File

@@ -1,17 +1,18 @@
[Unit] [Unit]
BindsTo=autostart.target BindsTo=autostart.target
After=windowmanager.target After=windowmanager.target
ConditionEnvironment=MACHINE_TYPE=laptop ConditionPathExists=%t/features/machine_is_laptop
[Service] [Service]
Type=oneshot Type=oneshot
ExecStart=/usr/bin/synclient VertEdgeScroll=0 ExecStart=/usr/bin/env synclient VertEdgeScroll=0
ExecStart=/usr/bin/synclient VertTwoFingerScroll=1 ExecStart=/usr/bin/env synclient VertTwoFingerScroll=1
ExecStart=/usr/bin/synclient MaxSpeed=2.2 ExecStart=/usr/bin/env synclient MaxSpeed=2.2
ExecStart=/usr/bin/synclient AccelFactor=0.08 ExecStart=/usr/bin/env synclient AccelFactor=0.08
ExecStart=/usr/bin/synclient TapButton1=1 ExecStart=/usr/bin/env synclient TapButton1=1
ExecStart=/usr/bin/synclient CoastingSpeed=0 ExecStart=/usr/bin/env synclient CoastingSpeed=0
ExecStart=/usr/bin/synclient PalmDetect=1 ExecStart=/usr/bin/env synclient PalmDetect=1
ExecStart=/usr/bin/synclient PalmMinWidth=20 ExecStart=/usr/bin/env synclient PalmMinWidth=20
ExecStart=/usr/bin/synclient PalmMinZ=1 ExecStart=/usr/bin/env synclient PalmMinZ=1
RemainAfterExit=true RemainAfterExit=true
PassEnvironment=DISPLAY

View File

@@ -1,4 +0,0 @@
[Service]
Type=oneshot
ExecStart=/usr/bin/setrandom --recursive --onlylarge --mode=stretch /usr/share/wallpapers
RemainAfterExit=true

View File

@@ -1,9 +0,0 @@
[Unit]
BindsTo=autostart.target
After=windowmanager.target
[Timer]
OnActiveSec=0s
OnCalendar=hourly
Unit=wallpaper.service
RemainAfterElapse=true

View File

@@ -4,5 +4,6 @@ After=windowmanager.target
[Service] [Service]
Type=oneshot Type=oneshot
ExecStart=/usr/bin/xrdb -merge -I%h %h/.Xresources ExecStart=/usr/bin/env xrdb -merge -I%h %h/.config/Xresources
RemainAfterExit=true RemainAfterExit=true
PassEnvironment=DISPLAY

View File

@@ -1,6 +1,11 @@
[Unit] [Unit]
BindsTo=autostart.target BindsTo=autostart.target
PartOf=gpg-agent.service
After=windowmanager.target After=windowmanager.target
After=gpg-agent.service
ConditionPathExists=%t/features/gpg_agent
[Service] [Service]
ExecStart=/usr/bin/yubikey-touch-detector -libnotify ExecStart=/usr/bin/env yubikey-touch-detector -libnotify
PassEnvironment=DISPLAY
Restart=always

View File

@@ -1,25 +0,0 @@
#!/usr/bin/env bash
set -o nounset
_logfile="$LOGDIR/dunstctl.log"
log() {
printf '[%s] %s\n' "$(date -uIseconds)" "$*" >> "$_logfile"
}
case "$1" in
enable)
log "Enabling dunst"
systemctl --user --no-block kill --signal SIGUSR2 dunst
;;
disable)
log "Disabling dunst"
systemctl --user --no-block kill --signal SIGUSR1 dunst
;;
*)
>&2 printf 'Unknown command\n'
exit 1
esac

View File

@@ -1,23 +0,0 @@
#!/usr/bin/env bash
set -x
vagrant destroy -f
killall vagrant
killall -9 vagrant
pgrep -fa lxc | grep -v fuck-lxc | awk '{print $1}' | xargs sudo kill -9
sudo lxc-ls -1 | xargs -l1 sudo lxc-stop --kill --name ; sudo lxc-ls -1 | xargs -l1 sudo lxc-destroy --name
pgrep -fa lxc | grep -v fuck-lxc | awk '{print $1}' | xargs sudo kill -9
rm -rf .vagrant
sudo systemctl restart nfs-kernel-server
sudo systemctl restart lxc\*
sudo apt-get install --reinstall lxc
sudo systemctl restart nfs-kernel-server
sudo systemctl restart lxc\*

View File

@@ -1,16 +0,0 @@
#!/usr/bin/env bash
rclone \
--checksum \
--delete-excluded \
--exclude /.cache/ \
--exclude /.vagrant.d/ \
--exclude /.minikube/ \
--exclude /Downloads/ \
--exclude /downloads/ \
--exclude /tmp/ \
--verbose \
--stats 60s \
sync \
$HOME \
gdrive:backup

View File

@@ -1,15 +0,0 @@
#!/usr/bin/env bash
set -o nounset
submodule_count=$(git diff --staged --submodule=log | grep -c '^Submodule')
if (( $submodule_count == 1 )) ; then
msg="Update submodule $(git diff --staged --submodule=log | grep '^Submodule' | cut -d ' ' -f 2)"
else
msg="Update submodules"
fi
git commit --edit --no-status \
--message="$msg" \
--message "$(git diff --staged --color=never --submodule=log | sed 's/^S/\nS/' | sed 's/^Submodule /* /' | sed 's/ >/ */')"

View File

@@ -1,8 +0,0 @@
#!/usr/bin/env bash
set -o nounset
rm -r "${1}"
cd ./.gitdir
git worktree remove "${1}"
git branch -D "${1}"

View File

@@ -1,11 +0,0 @@
#!/usr/bin/env bash
case "$1" in
mycloud)
shift
command kubectl --kubeconfig=<(pass show mycloud/kubeconfig) "${@}"
;;
*)
command kubectl "${@}"
;;
esac

View File

@@ -43,7 +43,7 @@ pandoc \
--variable papersize=a4 \ --variable papersize=a4 \
--variable date=$(date --iso-8601=date) \ --variable date=$(date --iso-8601=date) \
--variable fontsize=12pt \ --variable fontsize=12pt \
--variable fontfamily=libertine \ --variable fontfamily=libertinus \
--variable familydefault=sfdefault \ --variable familydefault=sfdefault \
--variable documentclass=scrartcl \ --variable documentclass=scrartcl \
--variable fontfamilyoptions= \ --variable fontfamilyoptions= \

2
bin/mousespam-toggle Executable file
View File

@@ -0,0 +1,2 @@
#!/usr/bin/env bash
systemctl --no-pager --user status mousespam && systemctl --no-pager --user stop mousespam || systemctl --no-pager --user start mousespam

View File

@@ -1,94 +0,0 @@
#!/usr/bin/env python3
import sys
import subprocess
import yaml
PASS = 'pass'
def run(args):
return(subprocess.run(
args,
stdin=sys.stdin,
stdout=sys.stdout,
stderr=sys.stderr).returncode)
def get_stdout(args):
return(subprocess.run(
args,
stdout=subprocess.PIPE).stdout)
def extract_from_dict(d, k, last=None):
if '.' in k:
k1, k2 = k.split('.', 1)
try:
d1 = d[k1]
return extract_from_dict(d1, k2, last=k1)
except KeyError:
print("\"{}\" was not found in the data".format(k))
sys.exit(3)
else:
if not isinstance(d, dict):
print("element \"{}\" is not a dictionary".format(last))
sys.exit(3)
try:
return d[k]
except KeyError:
print("\"{}\" was not found in the data".format(k))
sys.exit(3)
def cmd_get(*args):
if len(args) == 1:
print(get_stdout(['pass', 'show', args[0]]).split(b'\n')[0].decode())
return 0
if len(args) < 2:
print("what do you want to get?")
return 1
# get the pass output
out = get_stdout(['pass', 'show', args[0]])
try:
data = list(yaml.safe_load_all(out))[-1]
except yaml.scanner.ScannerError as e:
print("invalid YAML data: {}".format(str(e)))
return 2
except IndexError:
print("invalid YAML data: no YAML document found")
return 2
if not isinstance(data, dict):
print("invalid YAML data, not a dict")
return 2
for element in args[1:]:
keydata = extract_from_dict(data, element)
if isinstance(keydata, list) or isinstance(keydata, dict):
print(yaml.safe_dump(keydata, default_flow_style=False).strip())
else:
print(keydata)
cmds = ['get']
git_push_commands = ['insert', 'edit', 'generate', 'rm', 'mv', 'cp']
def run_pass(argv):
return run([PASS] + argv[1:])
def just_call_pass(argv):
sys.exit(run_pass(argv))
if len(sys.argv) == 1:
just_call_pass(sys.argv)
elif sys.argv[1] not in cmds:
if sys.argv[1] not in git_push_commands:
just_call_pass(sys.argv)
else:
e = run_pass(sys.argv)
if e == 0:
print("Pushing to remote repository...")
run([PASS, 'git', 'push'])
print("Done")
sys.exit(e)
else:
sys.exit(globals()['cmd_' + sys.argv[1]](*sys.argv[2:]))

View File

@@ -1,6 +1,7 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import sys import sys
import os.path
hash = { hash = {
'A': 'Alpha', 'A': 'Alpha',
@@ -43,6 +44,45 @@ hash = {
'.': 'Stop', '.': 'Stop',
} }
de = {
'A': 'Anton',
'Ä': 'Ärger',
'B': 'Berta',
'C': 'Cäsar',
'D': 'Dora',
'E': 'Emil',
'F': 'Friedrich',
'G': 'Gustav',
'H': 'Heinrich',
'I': 'Ida',
'J': 'Julius',
'K': 'Kaufmann',
'L': 'Ludwig',
'M': 'Martha',
'N': 'Nordpol',
'O': 'Otto',
'Ö': 'Ökonom',
'P': 'Paula',
'Q': 'Quelle',
'R': 'Richard',
'S': 'Samuel',
'ß': 'Eszett',
'T': 'Theodor',
'U': 'Ulrich',
'Ü': 'Übermut',
'V': 'Viktor',
'W': 'Wilhelm',
'X': 'Xanthippe',
'Y': 'Ypsilon',
'Z': 'Zacharias',
'-': 'Strich',
'.': 'Punkt',
}
if os.path.basename(sys.argv[0]) == 'natode':
hash = de
if len(sys.argv) < 2 or sys.argv[1] == '-': if len(sys.argv) < 2 or sys.argv[1] == '-':
text = [line.strip() for line in sys.stdin.readlines()] text = [line.strip() for line in sys.stdin.readlines()]
else: else:

1
bin/natode Symbolic link
View File

@@ -0,0 +1 @@
nato

2
bin/pacman-remove-orphans Executable file
View File

@@ -0,0 +1,2 @@
#!/usr/bin/env sh
pacman -Qtdq | xargs --open-tty --no-run-if-empty sudo pacman -Rns

14
bin/pass Executable file
View File

@@ -0,0 +1,14 @@
#!/usr/bin/env bash
set -o nounset
set -o errexit
if [[ ! -e "${PASSWORD_STORE_DIR}" ]] ; then
printf '%s\n' 'This is the first time running pass, initializting repository ...'
git clone ssh://git@code.hkoerber.de:2222/hannes/passwordstore.git "${PASSWORD_STORE_DIR}"
printf '%s\n' 'Done'
fi
command -p pass "${@}"

14
bin/pf Executable file
View File

@@ -0,0 +1,14 @@
#!/usr/bin/env python3
import sys
import json
import yaml
import subprocess
jqexpression = sys.argv[1]
jqprocess = subprocess.Popen(["jq", "-r", jqexpression], stdin=subprocess.PIPE, text=True)
document = [d for d in yaml.safe_load_all(sys.stdin)][-1]
json.dump(document, jqprocess.stdin)

3
bin/qr Executable file
View File

@@ -0,0 +1,3 @@
#!/usr/bin/env bash
qrencode "$*" -o - | imv -

View File

@@ -1,4 +0,0 @@
#!/usr/bin/env bash
nice --adjustment 19 \
ionice --class 3 \
restic -r rclone:restic:restic --password-file=$HOME/restic_password backup --exclude-file=$HOME/restic_exclude.lst $HOME

View File

@@ -1,60 +0,0 @@
#!/usr/bin/env python3
import sys
import subprocess
import time
import argparse
import yaml
XRANDR = 'xrandr'
def run(cmd):
print('>>> ' + ' '.join(cmd))
start = time.time()
ret = subprocess.run(
cmd,
stdout=sys.stdout,
stderr=sys.stderr)
end = time.time()
print("exit code: {}".format(ret.returncode))
print("exec time: {}".format(end - start))
def fail(msg, code=1):
print(msg)
sys.exit(code)
parser = argparse.ArgumentParser()
parser.add_argument('config')
args = parser.parse_args()
config_path = args.config
try:
config = yaml.load(open(config_path))
except FileNotFoundError:
fail("File {0} not found".format(config_path))
# reset
for output in config['outputs']:
if config.get('reset') and output.get('reset'):
run([XRANDR, '--output', output['name'], '--off'])
run([XRANDR, '--delmode', output['name'], output['opts']['mode']])
run([XRANDR, '--addmode', output['name'], output['opts']['mode']])
run([XRANDR, '--output', output['name'], '--mode', output['opts']['mode']])
cmd = [XRANDR]
for output in config['outputs']:
cmd.extend(['--output', output['name']])
if output.get('disable'):
cmd.append('--off')
else:
if output.get('primary', False):
cmd.append("--primary")
# cmd.append('--auto')
for k, v in output['opts'].items():
cmd.extend(['--{}'.format(k), str(v)])
run(cmd)
run(['i3-msg', 'restart'])
run(['systemctl', '--user', 'restart', 'keyboard'])

View File

@@ -1,3 +0,0 @@
#!/usr/bin/env bash
~/code/helper-scripts/sysop-share-screen.sh pi@monitor-sysop-${1:-middle}-${2:-top} 1

View File

@@ -1,44 +0,0 @@
#!/usr/bin/env python3
import datetime
import sys
USAGE="""Usage: {program} PATH_TO_FILE""".format(program=sys.argv[0])
def die(message, code=1):
print(message)
sys.exit(code)
def die_usage(code=1):
die(USAGE, code)
def read_date_from_file(path):
text = open(path).readline().strip()
try:
time = datetime.datetime.strptime(text, '%Y-%m-%d')
except ValueError as e:
die(e)
return time
def main(argv):
if len(argv) < 2:
die_usage()
last = read_date_from_file(argv[1])
now = datetime.datetime.now()
diff = now - last
days = diff.days
#hours = diff.seconds // (60 * 60)
if days == 1:
msg = "1 day"
else:
msg = "{days} days".format(days=days)
#msg += " "
#if hours == 1:
# msg += "1 hour "
#else:
# msg += "{hours} hours ".format(hours=hours)
print(msg)
main(sys.argv)

38
bin/switch-color-mode Executable file
View File

@@ -0,0 +1,38 @@
#!/usr/bin/env bash
set -o nounset
set -x
apply() {
local mode="${1}"
case "${mode}" in
dark)
theme=monokai
;;
light)
theme=github_light
;;
esac
sed -i "s#themes/.*\.toml#themes/${theme}.toml#" "${XDG_CONFIG_HOME}/alacritty/config.toml"
sed -i "s#theme = .*\$#theme = \"${theme}\"#" "${XDG_CONFIG_HOME}/helix/config.toml"
pkill -SIGUSR1 helix
printf '%s' "${mode}" > "${XDG_RUNTIME_DIR}"/color_mode
}
case "${1:-}" in
dark)
apply dark
;;
light)
apply light
;;
*)
exit 1
;;
esac

View File

@@ -1,6 +0,0 @@
#!/usr/bin/env bash
set -o errexit
cd $HOME/sync/projects/time-tracking
source venv/bin/activate
./call.py "${@}"

View File

@@ -1,24 +1,24 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Stolen from https://devops.stackexchange.com/a/8984 and adapted to my use case # Stolen from https://devops.stackexchange.com/a/8984 and adapted to my use case
if [[ -z "$@" ]]; then if (( $# == 0 )) ; then
echo "Missing file input arguments" echo "Missing file input arguments"
exit 1 exit 1
fi fi
for FILE in "$@" for FILE in "$@"
do do
RESOURCE=$(sed -n 's/^resource "\([^"]*\)" "\([^"]*\)".*/-target=\1.\2 /gp' $FILE) RESOURCE=$(sed -n 's/^resource "\([^"]*\)" "\([^"]*\)".*/-target=\1.\2 /gp' "$FILE")
MODULE=$(sed -n 's/^module "\([^"]*\)".*/-target=module.\1 /gp' $FILE) MODULE=$(sed -n 's/^module "\([^"]*\)".*/-target=module.\1 /gp' "$FILE")
if [[ -z "$RESOURCE" ]] && [[ -z "$MODULE" ]]; then if [[ -z "$RESOURCE" ]] && [[ -z "$MODULE" ]]; then
echo "Cannot detect terraform resource and module in $FILE" echo "Cannot detect terraform resource and module in $FILE"
exit 1 exit 1
fi fi
if [[ ! -z "$RESOURCE" ]]; then if [[ -n "$RESOURCE" ]]; then
echo -e $"$RESOURCE" echo -e $"$RESOURCE"
fi fi
if [[ ! -z "$MODULE" ]]; then if [[ -n "$MODULE" ]]; then
echo -e $"$MODULE" echo -e $"$MODULE"
fi fi
done done

4
bin/yaml2json Executable file
View File

@@ -0,0 +1,4 @@
#!/usr/bin/env python3
import sys, yaml, json
json.dump([d for d in yaml.safe_load_all(sys.stdin)][-1], sys.stdout, indent=4)

6
cargo/config.toml Normal file
View File

@@ -0,0 +1,6 @@
[build]
rustc-wrapper = "sccache"
[target.x86_64-unknown-linux-gnu]
linker = "/usr/bin/clang"
rustflags = ["-C", "link-arg=--ld-path=/usr/bin/mold"]

Submodule contrib/vim-plug deleted from c3b6b7c297

20
detect-missing-packages.py Executable file
View File

@@ -0,0 +1,20 @@
#!/usr/bin/env python3
import yaml
from pprint import pprint
package_file = "./packages.yml"
apps = yaml.safe_load(open(package_file, 'r'))
missing_config = {}
for appname, appconfig in apps.items():
for distro, packagelist in appconfig.items():
if len(packagelist) == 0:
if distro not in missing_config.keys():
missing_config[distro] = []
missing_config[distro].append(appname)
if missing_config:
print(yaml.dump(missing_config), end="")

View File

@@ -1,70 +1,116 @@
empty_directories: empty_directories:
- name: .i3
- name: .gnupg
mode: '0700'
- name: .config/nvim - name: .config/nvim
- name: .config/rofi - name: .config/rofi
- name: .config/gtk-3.0 - name: .config/gtk-3.0
- name: .config/gtk-3.0-overrides
- name: .config/gtk-3.0-overrides/bigger-font/
- name: .config/gtk-3.0-overrides/bigger-font/gtk-3.0
- name: .config/qt5ct - name: .config/qt5ct
- name: .config/i3status-rust
- name: .config/i3status-rust/icons
- name: .config/i3status-rust/themes
- name: .config/helix
- name: .config/git
- name: .config/tmux
- name: .config/i3
- name: .config/zsh
- name: .config/alacritty
- name: .local/state/gnupg/
mode: '0700'
- name: .local/state/cargo/
dotfiles: dotfiles:
- from: git/gitconfig - from: git/gitconfig
to: .gitconfig to: .config/git/config
template: true template: true
- from: gnupg/dirmngr.conf - from: gnupg/dirmngr.conf
to: .gnupg/dirmngr.conf to: .local/state/gnupg/dirmngr.conf
- from: gnupg/scdaemon.conf
to: .local/state/gnupg/scdaemon.conf
- from: gnupg/gpg-agent.conf - from: gnupg/gpg-agent.conf
to: .gnupg/gpg-agent.conf to: .local/state/gnupg/gpg-agent.conf
template: true
- from: gnupg/gpg.conf - from: gnupg/gpg.conf
to: .gnupg/gpg.conf to: .local/state/gnupg/gpg.conf
template: true template: true
- from: i3/config - from: i3/config
to: .i3/config to: .config/i3/config
template: true template: true
- from: i3/i3status.conf - from: i3/i3status-rust/config.toml
to: .i3/i3status.conf to: .config/i3status-rust/config.toml
template: true template: true
- from: i3/i3status-rust/themes/native.toml
to: .config/i3status-rust/themes/native.toml
- from: i3/i3status-rust/icons/awesome.toml
to: .config/i3status-rust/icons/awesome.toml
- from: i3/scripts - from: i3/scripts
to: .i3/scripts to: .config/i3/scripts
dir: true
- from: tmux/tmux.conf - from: tmux/tmux.conf
to: .tmux.conf to: .config/tmux/tmux.conf
- from: vim/vimrc - from: vim/vimrc
to: .config/nvim/init.vim to: .config/nvim/init.vim
- from: vim/vimrc
to: .vimrc
- from: x/Xresources - from: x/Xresources
to: .Xresources to: .config/Xresources
template: true
- from: x/xinitrc - from: x/xinitrc
to: .xinitrc to: .config/xinitrc
- from: zsh/zprofile - from: zsh/zprofile
to: .zprofile to: .config/zsh/.zprofile
template: true template: true
- from: zsh/zshrc - from: zsh/zshrc
to: .zshrc to: .config/zsh/.zshrc
template: true template: true
- from: zsh/zshrc.d - from: zsh/zshenv
to: .zshrc.d to: .zshenv
- from: dunst/dunstrc - from: dunst/dunstrc
to: .config/dunstrc to: .config/dunstrc
template: true template: true
- from: redshift/redshift.conf - from: redshift/redshift.conf
to: .config/redshift.conf to: .config/redshift.conf
- from: vscode/settings.json - from: vscodium/product.json
to: .config/Code/User/settings.json to: .config/VSCodium/product.json
- from: vscode/keybindings.json - from: vscodium/settings.json
to: .config/Code/User/keybindings.json to: .config/VSCodium/User/settings.json
- from: alacritty/alacritty.yml - from: vscodium/keybindings.json
to: .config/alacritty.yml to: .config/VSCodium/User/keybindings.json
- from: alacritty/alacritty.toml
to: .config/alacritty/config.toml
template: true template: true
- from: alacritty/themes
to: .config/alacritty/themes
dir: true
- from: rofi/config - from: rofi/config
to: .config/rofi/config to: .config/rofi/config
- from: gtk/gtk-3.0.ini - from: gtk/gtk-3.0.ini
to: .config/gtk-3.0/settings.ini to: .config/gtk-3.0/settings.ini
template: true
- from: gtk/gtk-3.0-bigger-font.ini
to: .config/gtk-3.0-overrides/bigger-font/gtk-3.0/settings.ini
template: true
- from: gtk/gtkrc-2.0 - from: gtk/gtkrc-2.0
to: .gtkrc-2.0 to: .config/gtkrc-2.0
template: true
- from: qt/qt5ct.conf - from: qt/qt5ct.conf
to: .config/qt5ct/qt5ct.conf to: .config/qt5ct/qt5ct.conf
- from: screencfg
to: .screencfg
- from: scripts - from: scripts
to: scripts to: scripts
dir: true
- from: helix/config.toml
to: .config/helix/config.toml
- from: helix/languages.toml
to: .config/helix/languages.toml
- from: screencfg/screencfg.toml
to: .config/screencfg.toml
- from: cargo/config.toml
to: .local/state/cargo/config.toml
dotfiles_remove:
- .gitconfig
- .vimrc
- .tmux.conf
- .i3
- .gtkrc-2.0
- .opt
- .optbin
- .usr
- .var
- .screenrc
- .zshrc.d

28
drivers.yml Normal file
View File

@@ -0,0 +1,28 @@
cpu:
amd:
- amd-ucode
intel:
- intel-ucode
gpu:
amd:
- mesa
- mesa-utils
- lib32-mesa
- xf86-video-amdgpu
- vulkan-radeon
- lib32-vulkan-radeon
- libva-mesa-driver
- lib32-libva-mesa-driver
- mesa-vdpau
- lib32-mesa-vdpau
- vulkan-headers
- vulkan-tools
nvidia:
- mesa
- mesa-utils
- lib32-mesa
- vulkan-nouveau
- lib32-vulkan-nouveau
- vulkan-headers
- vulkan-tools

View File

@@ -29,7 +29,7 @@
# the top and down respectively. # the top and down respectively.
# The width can be negative. In this case the actual width is the # The width can be negative. In this case the actual width is the
# screen width minus the width defined in within the geometry option. # screen width minus the width defined in within the geometry option.
geometry = "300x10-20+20" geometry = "300x10-20-40"
# Show how many messages are currently hidden (because of geometry). # Show how many messages are currently hidden (because of geometry).
indicate_hidden = yes indicate_hidden = yes
@@ -64,7 +64,7 @@
frame_width = 2 frame_width = 2
# Defines color of the frame around the notification window. # Defines color of the frame around the notification window.
frame_color = "#e16b40" frame_color = "#ff964f"
# Define a color for the separator. # Define a color for the separator.
# possible values are: # possible values are:
@@ -84,7 +84,7 @@
### Text ### ### Text ###
font = DejaVu Sans {{ machine.font_size }} font = JetBrainsMono, Fontawesome {{ machine.font_size }}
# The spacing between lines. If the height is smaller than the # The spacing between lines. If the height is smaller than the
# font height, it will get raised to the font height. # font height, it will get raised to the font height.

View File

@@ -2,9 +2,6 @@
name = Hannes Körber name = Hannes Körber
email = {{ user.mail }} email = {{ user.mail }}
useConfigOnly = true useConfigOnly = true
{% if user.git_gpg_sign|bool %}
signingkey = {{ user.gpg_keys.master_key }}
{% endif %}
[github] [github]
user = hakoerber user = hakoerber
[alias] [alias]
@@ -71,14 +68,18 @@
fileMode = true fileMode = true
whitespace = "blank-at-eol,space-before-tab,blank-at-eof" whitespace = "blank-at-eol,space-before-tab,blank-at-eof"
abbrev = 8 abbrev = 8
pager = delta
[interactive]
diffFilter = delta --color-only
[color] [color]
ui = true ui = true
[column] [column]
ui = auto ui = auto
[push] [push]
default = simple default = simple
autoSetupRemote = true
[merge] [merge]
tool = vimdiff conflictstyle = diff3
[gc] [gc]
auto = 0 auto = 0
[advice] [advice]
@@ -88,7 +89,7 @@
commitBeforeMerge = false commitBeforeMerge = false
detachedHead = false detachedHead = false
[commit] [commit]
gpgSign = {{ user.git_gpg_sign|bool }} gpgSign = false
cleanup = strip cleanup = strip
status = true status = true
[status] [status]
@@ -105,7 +106,6 @@
autoStash = true autoStash = true
[diff] [diff]
submodule = log submodule = log
mnemonicPrefix = true
renameLimit = 1199 renameLimit = 1199
[branch] [branch]
autoSetupMerge = true autoSetupMerge = true
@@ -113,9 +113,21 @@
requireForce = true requireForce = true
[pull] [pull]
rebase = true rebase = true
ff = only
[url "ssh://git@code.hkoerber.de:2222/"] [url "ssh://git@code.hkoerber.de:2222/"]
insteadOf = https://code.hkoerber.de/ insteadOf = https://code.hkoerber.de/
[init] [init]
defaultBranch = master defaultBranch = main
[safe]
directory = /var/lib/dotfiles
directory = /var/lib/dotfiles/*
[includeIf "gitdir:/var/lib/dotfiles/.git"]
path = /var/lib/dotfiles/gitcfg
[delta]
navigate = true # use n and N to move between diff sections
# delta detects terminal colors automatically; set one of these to disable auto-detection
# dark = true
# light = true

3
gitcfg Normal file
View File

@@ -0,0 +1,3 @@
[user]
email = hannes@hkoerber.de
name = Hannes Körber

View File

@@ -4,6 +4,11 @@ default-cache-ttl-ssh 60480000
max-cache-ttl 34560000 max-cache-ttl 34560000
max-cache-ttl-ssh 34560000 max-cache-ttl-ssh 34560000
{% if user.gpg_agent_for_ssh %}
enable-ssh-support enable-ssh-support
{% endif %}
pinentry-program /usr/bin/pinentry-qt pinentry-program /usr/bin/pinentry-qt
extra-socket none
browser-socket none

View File

@@ -34,12 +34,7 @@ fixed-list-mode
no-mangle-dos-filenames no-mangle-dos-filenames
require-cross-certification require-cross-certification
{% if not (distro == 'ubuntu' and ansible_distribution_version == '18.04') -%}
{# looks like the gpg version in that ubuntu release it too old and does not
{# contain the setting #}
# do not cache keys for symmetric encryption # do not cache keys for symmetric encryption
no-symkey-cache no-symkey-cache
{% endif -%}
keyserver-options no-honor-keyserver-url no-auto-key-retrieve include-revoked keyserver-options no-honor-keyserver-url no-auto-key-retrieve include-revoked

2
gnupg/scdaemon.conf Normal file
View File

@@ -0,0 +1,2 @@
# makes yubikey work more reliably
disable-ccid

View File

@@ -0,0 +1,109 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBF52F2UBEADVm8w92aR5UoDq94jcCh5hEpbjIWrrmyBb3p7Z4x9loASIDNly
6SrHjpFONw7EdCNzT2zQCCCoKezKfzALuU3xQ3Vl5fhtp3Ij/HGonSEFhz4ibhUC
MsbCsUEU7yG/lzmz0dtk9UIWfVKDe8yhLCVxi+dUi2Lat58daQjO9OGjRP+Z5mMi
ZtGzmV2UQHWmMipKlxx9yDpX5l1i2qduNXfC2ki+uBudzNNaZtwk9t690UXa6DHz
xxnUJqewWG3zyFmhBrixOBF5Pdc+Uy79HOLfifZ+SRSpSKf7Dp7SiUE7XL0slWOD
xxRRZPW5u6heSgFnVCLjtupLUSUCccNnvTKrKB1iOEjkpko7Q7FVMe5bTQOrO1de
cr2PpGC3GeR6K1n0PYAwd49HgVZjCUqXzbz4Zeh9KRuM62geNTZjJxuuP7dbJP86
p23+7uiODwVhdzvEP/ElYlwEGLGFFurbnqZ3DwFggdrQ6cOkSjQblt6xzxxlROo4
HoyupyNz4I5yWqN+k4wk2+1A8TsSwKh1PAHG7C2LLZsKn4pSsdYgoaQaYsod89kZ
mA1Sr4IEe9rhG6TnofxHqHegzifPM0XPmYlwVccAF+lb+CrvWbSBHHA5FVE/PCBe
Xc4GYWghnobhK8kfgFZhr8BrBFFH+sAw8CYNbgg7O90HK7jnK79BlgU31QARAQAB
tCNIYW5uZXMgS8O2cmJlciA8aGFubmVzQGhrb2VyYmVyLmRlPokCTAQTAQoANhYh
BJc65I1xt2c1xHErW7XAAlMMaiBTBQJedhdlAhsBBAsJCAcEFQoJCAUWAgMBAAIe
AQIXgAAKCRC1wAJTDGogUyIxEACZXR+fN+bb6PYW821k8oXO/MvNiiqtWC9CuLjP
y1/eu/ZJUmeOca/8HsJsp0hOAJ7oUn3MBiW7gCVZ/2hQ+ywCtcDWp2PElutCiAyg
QgN1IEg9RAcx+7RmHC0SEafhnyT4ogi7hJ9SK3kPnf5Ryli6qNFAWb3dtfSENYLK
dqtzMi9+CvcsNKKMN+yhubVrQi5MHlqu7L4bdE4BW5bzsbbhLaPfmc/JYFkImF5v
dXnOBA9gx2bVREoTw/GPioed9hpPu1ZWZC5we+WD4eEGrQD/LG/XyGUh6wQwsC7P
aMXOydok7DHzUrCdvZ372Giv71cNV1++e6G+PdEqVo2FCp04Syzug5GwRbSAZ9B3
1tqYV6L5SZh0TIjHNtuWTPq9dzpqVJJSxZdwvlgsv7Ni6GHYUrgTShza/+vXE1UE
2MCoLCK0ZrdeMd8m7VMom3WIiV+N28MsKVCoYDLd0LMOrmhDDap16SGJYs/dB4lo
a931k7ejOG68G2ViLJmRapkzEWH3TujYNyh4O7S6LuHwNvG6lyAyn9UTVSAaPT+t
BV4zfd4UfKhYcKSm+aQuJ5RrZ+2l8YU87daeE2JXy1/z9I0C/YqbT8yHMqUi4Fzy
VhfTAPm2lCLPomFmoS8fp2oNDt3s7AOQH2zOsimhA6pMTek/sKtywjRQ0TdXH2OA
p2B10rkCDQRedheFARAAl4cEamPYTwineGIBGubqhznKQhUJhm1P3AbwOfzYloxg
3wvq1njY0+1UY8HtV7EZ7xd1PpUgRxcA8paj2ootMwHM2TRxXad/EgpegfWNANQV
YnDQj8Zqabrf3Orue93pLeRir38kOzX1qcOz72G6HDJWSQZLqF6LWJ9GehDpf9VB
/K/8nXdEes2nLdffkR2blH5ltcM0kMak0tI3+5SnQCs1MmFWzSq+BFVYI5fT8hBf
MCskiypF05E0Np7t0C5dQmToPPv5w6flUIJn3h7BfUYAi9uOdUfAykI57hXUWUlV
gli5IJfDTYt/Y849vh3FH2qn0syQ425a8RqH5WLohH0qJ+A3nuOp6JfKGEFOiYxp
9Y5tn6zEfqGC+D/xWnGGgfc6IMQVGYbWvqHRqMQquV1bD3rd7dDOE3QdkBvxpcVv
1EeKfA36wRtlFyKgdHE0QiVD9VeCtGW1diFD3hEK+FqVdaxX45800gPjFIuzKOkv
zoVzYxrUCSACs+6QyyXP8I1zMX9SXRvEg02MmpohwmEhSgotOMcjbWNyVFNfCAaS
bCt9PyaWsz+qe2gGLAiYo2vvBij543vBgATSbFjhoM683gzo73AOYhaauULsy3Kq
yfolj6TwGyEg7wvMO6YLttKCahjyz5isiAcf4fSNqWG0zSnBf6n7HXdtTjjsfx8A
EQEAAYkEbAQYAQoAIBYhBJc65I1xt2c1xHErW7XAAlMMaiBTBQJedheFAhsCAkAJ
ELXAAlMMaiBTwXQgBBkBCgAdFiEEyitwWoxynRUrXLoQzSinzDExgBcFAl52F4UA
CgkQzSinzDExgBeCDw//WMa8qm/tBpr4BskpctySvIwiOf35o+cMAYvego94NkrY
wuASAn3/2QsaZvZnYdJfCrzchCA30QZxRWAvkHIJ/zXZ1ayugsnEypvhw23012Xr
KKMXyd6iuZdmbE1Umj6R1/LbdNjddqglR9AmKaOYaDzjpPuuirDbllRGh/7lluZq
q8BmPvFe6Cl8FIijx03RfCbYSvQQRH10IBeJ+z+eE7z7FRspf4kJ6vXAbbSlKoRR
+PcA+Yc7meW+dvMnRpczGDvDbl522Mw2pxV3p4aN8TSMwSWztD4koXo4KCklFPh5
M4R4HbZFEZj4i8BU+cbsQscJ4jHqrCK/qPSRx103ikVqwOElZkYqKthnrQ7rxO7S
0CZOKzlK56Vl9LbnYE0nTHqZOxf9k9Z1ue9aVCRXWcQhCUVm9CLUegZz4DJtK9vl
ntdYTKPRmMCUw407rhkEFA3bQc9l56GP5ARc6NN9C0fbz2PgIryuLP4BvR/BIV4L
qLBgGfztN3KjHYI2RWAw3OcaxU7UhmXbCFvy6j/PVJckHNheqaIm/+wyDt+/rXf0
3zc9YiEHrvGmmX+6VYlv8iE4sp2ye4EF0XSGm23/gKmvkF5jVuaB4OJeHYIQfOVP
nnmsDan2NZ2znE5UmaqgxvxAuQh+XVjKlSUfeff+9XCscQvzuNBC39V+S+cJLoNm
LA//Xd2Ic6Y9o44TaN1mDx031oYZjcmHq1YbwQbYnQj/uZZQHM4b62qMCCkdfsnU
KgeIJU78BxAj2vCgWI025K7un7Sh9q3cZdafOgcNz8YaXV9Nm0f6fLFsdTWbEvQ0
Y1cHJlh6WKDV2lVtdgoEMSN73U3hohJhsldRengydb4/Cf8pZRJgatyXN+b7Hsg5
h9LOAZRF4Om3A84QH7oYfOfeiwqGXzFE+lLqsPhwNUVnRJd98fjxYKdKz/3hNT5c
Pq/0/C+ivpAI3Kk1tecafhb0YSoFUEhZlnl/SSuTALvFdJGjpopbTL0M3YCcgh9v
tXb8Dcq7BEphWSeWP4Torbq17pLSlG65bgoZXoABYWCPSZiQCKDNXa2wqC3it5J9
wURL9AOCsJCvqh798WLlNHaz9hnh76UF3idDI5SgJGEOAPStv3EGX/HhjOzUQPD+
ixlXM63vmhCHxV9pnIURpBFhDUS/hs7apVm8pKzSv7PRQ5iu9RDbWUAWdyMlWPW9
TglATGSMFpxGYTJiC+pHH24FCm6wR8D8LYnKkqxzd+nqFljvfEmQ70rIyUA1I3/6
kCxGf7yKxTr2anV7tOFkNcCuj/ZSkb8CC6BCVk1HeE6h/hks78PdlLJr5zrSPxvP
U1iRM6NebRd4W990XCPw6ZHDm0CngSNU7s+7peB0M+pEaYO5Ag0EXnYXoQEQANxF
tmQz1jowITJ60eY/q7fWVv/w1CTT/ynAqPPgKw/MtGVBe8BWUJKufnxbNgn6ZamX
PU/Uq4x8QKMgbuqvaInHM3MvIqg0xoQ8qz4VBnc0Q0w0+G78UMcjzzAKJBDp1Qfy
zTvfPBD65fL+l2kFIyy9409uhzLnsvADE0saNmslfkVxyp8u+IYRVOjLpbKqJfrq
VDFTe3sktGSjlyWGHFKCx+xDGiJaAr/Qj0W/XH382nnC8dOhs96frQxz+cnwr4Uw
sH1jNfY5zrXcqjxekoNhgrYBflAkHyyiVp8HRepPWFxMnXtT2Z4bdtzIJVSOwko0
j91MItL5KyHt5pOS3sJM5wCwno3Tg8zgzbD3AZJoWSbBSKip6e8CQ0uvFcoGcpya
IYJ38k7+yUihGfGCcPbKxdyFsHHxdIb0oVZAr9D2f9EsCzUvga4pH3yeMVKv0KWG
2n4zLOJiZ4mvchBJjzBwuy2UCJS6yH+7EmAlkxZGEVcXUN5X+LksmRfr8kSMwjWj
BlJyOCyKU4Jw/AFFarJlQ+5VieI9ISotXMrIS2VvqDexnxJo1vRzMvaNxK8uwaR7
eT9h/oI1vEEkrh6aqsIZlj7Owf2TI+ve4JGJ1G+keP/1Ko1kNA+X4Trg3FAy0PR7
Eg2iBpjxGyEOVe2K/QGnDpMSO6ISot4UgRDK+29fABEBAAGJAjYEGAEKACAWIQSX
OuSNcbdnNcRxK1u1wAJTDGogUwUCXnYXoQIbDAAKCRC1wAJTDGogU/aMEACrQCrW
Skyx2waPZk9PBoG1z+CypabL+NwSoPzNdsQcPPB3FlByJSm48aqamXJUH7srCkr/
aT9GoPktdjstDoloLJ1gwvRiI0ccmwFBrkUU9wwn8mm/x+drktOOniUQA0qT/jvO
VNYgbfUVmfht6rTfVYlpGK1MxsTgEGvhFw/2PK6tibBnPW9d+3UFVWVELtq6r72H
l/ndkMOV2tnfBaEpRl94KHn7By0rjDUVQIOxFr73G4rWzU3h3OLHPXDPLa7zM9xF
Wn9f72L6UJ9MLbR43RCyrAfBFaF064BUwYpg//oaxAsbEl9FTmWV+IwywpufVRMu
+hujYyIsMdIUvEohyUXwSsDDLgCJspWkzCfPBaL0vBDQ3l8LshKoa/uFQ20tWhzH
D63XjRIAG2q/9e3E/HBBjpRoudsNJKSjbH2YH30+Uzpgc11hh2sgYRIPKWSUN3rN
/lOBF56YSoFCf35D41VVGmWPcm3Yz7hsSKNSEdH9FL2m8a2sIVOuzup00PlrQLiq
IrVZBHXAWk4FgqSLQLnxAX3X3Ot1OiBnqaIJZ1Q+hmRCbtOXuq964okyWs6l8FPS
Qg2ZEOEjc6q4uvdgV8duF8bX8t6mpwMxF0FvVRULzWKmki6P3fvpfel8Qj1my2mv
veIpzfWOcpxWhH+qvchT3gLmu/Hp8TJ+CF4VsrkCDQRedhezARAAsTrVcc970S+0
lGVTvPfUVHIPQYg7mXz1H7Hfb9wBzsDb0lbCzm6qtEIMGo5kzC/Z0Wc1+5HO0Zhb
V2ecqTJMhCfadeK2FymCoS6hDOD2s9JVGoEIctLHWIo7WsjbDOZblN8pOmuBfz5G
p6awxhBLSTzCwsKQzg08JRO0x7xbSVy52HhbRdgySp1HD+hPTFhmDNc2Ha5n+N6c
VoNmFxY6MixJDsuk1Y46sM/rSmuvuGEahVjcl3BFqiNmS6h0c2U77vuOoLJ0fvB3
C6aL94o/zK9I2EieL6jBs9cnyp67CmVKdCIb5T2Gxo3XC9e8WGpntlK6D0vAM1ln
oMqnhBYeeKpgqxVcP7sBK3FnFCV9yhIo63OPA2GVAStPb5xRXFyGEf3HxVqUxoZ6
pcKfxAGgXkd86+oUupS/l5bjCIxx5ME/3g92MnRMAAY2ycASaeT3WEeDP20h7jqA
h+nf1N+jqZMMHpMmClrxKMcT0iSFgstQKSC0GZlrnLSBXPEkH0l30YnzxAwZy/YT
c819NG3g2JkunDyD9EyKmvX3S9QHjuvE5O6Ou39nAhNdUEx+xSPSY4bkPzOHTvI1
MO5JrRginUXjSLmGFN8WQeMHRR7P+VMUTgsBGZ7/t7lgIB24HNeFy1rpzfT/ZrDs
WCxz1SSv13HYR71kpkHTauGo68vx/pEAEQEAAYkCNgQYAQoAIBYhBJc65I1xt2c1
xHErW7XAAlMMaiBTBQJedhezAhsgAAoJELXAAlMMaiBTxnUQAM2TtUXzmWLG1tKD
mkYeOCPoFTIwp9b8QKIPwWGtijoJEmjrvJcCd+EUnqP1iZBl2Qee5iCeiFUoNPx3
M93zpDLwjHX7r9jLbWaRkyCTX0fsq/p9zDpUM5BbGyZEZwmZ3nW5YYRIlJNkQuyV
bGpIfI+DGMLn5KFq2pVOwyYWLmJ74Lnv/vJYgkNxg70wvjiE7RYEoY0WrDP13QQJ
aaXdmcHkteov76ElM09wOKPdCFP9AIlmUgRYKu0jb4upQosjpfR7sCf6QtCHCDOC
zwzvLk3VgrBKkcLKwFEhYx0LYBmgPjQ5CYvnaXBXyQsn+xUwqQs3OhcTD7/fnEYu
4zkdkNTUtaBNxbqbV6V5Ti0odFQXHHrJ/ugPRHIgBdqXLiVQI4pxKNJhtr6HMWb0
zjde4Mho/IuOJLYEpHDVUj00RLUCsh1IkgdbRTEaHaeUzpFCf/zGnds6RIrEPBJm
tubuWXFFVG3d2LkUYkDAWGLE/IQLkeZPpnKCiTNyNvou5E/6BDeZGfnZA8fYAyGR
2h6aOZkt/4XL7Ot1bgbhNbEABwqSrsRXVFfJ85j+p+2D/iUi/wqyCBA0wDq9omog
rtNwEHwgQ9/++N3bX0KZKY5S7LXaHWWkXRuNDV2Zx2Vb4PpGmOjlZxKvyLtKgwwz
imtrGD9EhItdmZ8PBdC2kAx3vWEM
=553W
-----END PGP PUBLIC KEY BLOCK-----

8
grm/github.toml Normal file
View File

@@ -0,0 +1,8 @@
provider = "github"
token_command = "pass show github | ~/bin/yaml2json | jq -r '.personal_access_token.grm.value'"
root = "~/code/github.com"
worktree = true
force_ssh = true
[filters]
owner = true

View File

@@ -0,0 +1,15 @@
[Settings]
gtk-theme-name=Breeze
gtk-icon-theme-name=breeze
gtk-font-name=DejaVu Sans {{ ((machine.font_size|int - 2)|float * 2.0) | round(0, 'floor') | int }}
gtk-cursor-theme-name=breeze_cursors
gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_BOTH
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=1
gtk-menu-images=1
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintfull

View File

@@ -1,7 +1,7 @@
[Settings] [Settings]
gtk-theme-name=Breeze gtk-theme-name=Breeze
gtk-icon-theme-name=breeze-dark gtk-icon-theme-name=breeze
gtk-font-name=Cantarell 11 gtk-font-name=DejaVu Sans {{ machine.font_size|int - 2 }}
gtk-cursor-theme-name=breeze_cursors gtk-cursor-theme-name=breeze_cursors
gtk-cursor-theme-size=0 gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_BOTH gtk-toolbar-style=GTK_TOOLBAR_BOTH

View File

@@ -1,10 +1,9 @@
# DO NOT EDIT! This file will be overwritten by LXAppearance. # DO NOT EDIT! This file will be overwritten by LXAppearance.
# Any customization should be done in ~/.gtkrc-2.0.mine instead. # Any customization should be done in ~/.gtkrc-2.0.mine instead.
include "/home/hannes/.gtkrc-2.0.mine"
gtk-theme-name="Breeze" gtk-theme-name="Breeze"
gtk-icon-theme-name="breeze-dark" gtk-icon-theme-name="breeze"
gtk-font-name="Cantarell 11" gtk-font-name="DejaVu Sans {{ machine.font_size| int - 2 }}"
gtk-cursor-theme-name="breeze_cursors" gtk-cursor-theme-name="breeze_cursors"
gtk-cursor-theme-size=0 gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_BOTH gtk-toolbar-style=GTK_TOOLBAR_BOTH

39
helix/config.toml Normal file
View File

@@ -0,0 +1,39 @@
theme = "monokai"
[editor]
idle-timeout = 0
completion-trigger-len = 2
[editor.statusline]
left = ["mode", "separator", "file-name", "file-modification-indicator"]
right = [
"spinner",
"spacer",
"diagnostics",
"separator",
"selections",
"separator",
"position",
"position-percentage",
"file-type",
]
mode.normal = "N"
mode.insert = "I"
mode.select = "S"
[editor.lsp]
display-inlay-hints = true
[editor.cursor-shape]
insert = "bar"
[editor.file-picker]
hidden = false
[editor.indent-guides]
render = true
[editor.soft-wrap]
enable = true

15
helix/languages.toml Normal file
View File

@@ -0,0 +1,15 @@
[[language]]
name = "bash"
indent = { unit = " ", tab-width = 4 }
[language-server.pylsp.config.pylsp.plugins]
flake8 = { enabled = false }
[[language]]
name = "python"
indent = { unit = " ", tab-width = 4 }
[[language]]
name = "dockerfile"
indent = { unit = " ", tab-width = 4 }

View File

@@ -17,10 +17,10 @@
set $mod Mod4 set $mod Mod4
# The default terminal # The default terminal
set $terminal "{{ machine.terminal_binary }} --title terminal" set $terminal "alacritty --config-file ~/.config/alacritty/config.toml"
set $calc "{{ machine.terminal_binary }} --title calc -e $SHELL -i -c calc" set $calc "alacritty --config-file ~/.config/alacritty/config.toml -e $SHELL -i -c calc"
set $scriptdir ~/.i3/scripts set $scriptdir ~/.config/i3/scripts
# Keys for the exit mode # Keys for the exit mode
set $key_lock l set $key_lock l
@@ -77,8 +77,8 @@
set $focus_parent q set $focus_parent q
set $focus_child a set $focus_child a
set $floating_toggle Shift+space set $floating_toggle Shift+p
set $focus_mode_toggle space set $focus_mode_toggle p
set $prev_on_output u set $prev_on_output u
set $next_on_output i set $next_on_output i
@@ -93,6 +93,8 @@
set $kill Shift+Q set $kill Shift+Q
set $screenshot o
################################################################################ ################################################################################
### WORKSPACE ASSIGNMENTS ###################################################### ### WORKSPACE ASSIGNMENTS ######################################################
@@ -110,7 +112,7 @@ workspace $workspace9 output {{ machine.screen.9 }}
workspace $workspace10 output {{ machine.screen.0 }} workspace $workspace10 output {{ machine.screen.0 }}
assign [class="^Keepassx$"] $workspace8 assign [class="^KeePassXC$"] $workspace8
# See https://github.com/i3/i3/issues/2060 # See https://github.com/i3/i3/issues/2060
for_window [class="^Spotify$"] move to workspace $workspace9 for_window [class="^Spotify$"] move to workspace $workspace9
@@ -118,8 +120,8 @@ assign [class="^Spotify$"] $workspace9
assign [class="^Google-chrome$"] $workspace7 assign [class="^Google-chrome$"] $workspace7
assign [class="^Chromium$"] $workspace7 assign [class="^Chromium$"] $workspace7
assign [class="^discord"] $workspace7 assign [class="^[Ss]team$"] $workspace5
assign [class="^Steam"] $workspace5 for_window [class="^[Ss]team$"] move to workspace $workspace5
assign [class="^dota2$"] $workspace10 assign [class="^dota2$"] $workspace10
assign [class="^Wine$"] $workspace10 assign [class="^Wine$"] $workspace10
@@ -204,34 +206,23 @@ assign [class="^Wine$"] $workspace10
### START APPLICATIONS ##################################################### ### START APPLICATIONS #####################################################
bindsym $mod+d exec --no-startup-id ~/.i3/scripts/appmenu bindsym $mod+d exec --no-startup-id $scriptdir/appmenu
bindsym $mod+Return exec $terminal bindsym $mod+Return exec $terminal
bindsym $mod+Shift+Return exec $calc bindsym $mod+Shift+Return exec $calc
bindsym F1 exec --no-startup-id ~/.i3/scripts/shutdown-menu bindsym F1 exec --no-startup-id $scriptdir/shutdown-menu
bindsym F2 exec --no-startup-id ~/.i3/scripts/screenmenu bindsym F2 exec --no-startup-id $scriptdir/screenmenu
bindsym $mod+F1 exec --no-startup-id ~/.i3/scripts/i3exit lock bindsym $mod+F1 exec --no-startup-id $scriptdir/i3exit lock
bindsym $mod+F2 exec --no-startup-id screencfg ~/.screencfg/all.yml ; exec systemctl --user restart keyboard.service bindsym $mod+F4 exec --no-startup-id $scriptdir/i3exit suspend
bindsym $mod+F3 exec --no-startup-id screencfg ~/.screencfg/laptop.yml ; exec systemctl --user restart keyboard.service bindsym $mod+Home exec --no-startup-id $scriptdir/shutdown-menu
bindsym $mod+F4 exec --no-startup-id ~/.i3/scripts/i3exit suspend
bindsym $mod+Home exec --no-startup-id ~/.i3/scripts/shutdown-menu bindsym $mod+$screenshot exec --no-startup-id sh -c 'maim | xclip -selection clipboard -t image/png'
bindsym $mod+Shift+$screenshot exec --no-startup-id sh -c 'maim --select | xclip -selection clipboard -t image/png'
bindsym $mod+Shift+v exec --no-startup-id redshift-toggle bindsym $mod+Shift+v exec --no-startup-id redshift-toggle
bindsym $mod+Shift+$scratchpad move scratchpad bindsym $mod+$pim_toggle exec --no-startup-id $scriptdir/swap-from-workspace $workspace10
bindsym $mod+$scratchpad scratchpad show
bindsym $mod+$pim_toggle \
unmark _destination; \
mark _source; \
workspace $workspace10; \
mark --add _destination; \
[con_mark="^_destination$"] swap container with mark "_source"; \
[con_mark="^_source$"] focus; \
unmark _source; \
[con_mark="^_destination$"] focus; \
unmark _destination;
################################################################################ ################################################################################
### MODES ###################################################################### ### MODES ######################################################################
@@ -297,17 +288,17 @@ assign [class="^Wine$"] $workspace10
floating_minimum_size 0 x 0 floating_minimum_size 0 x 0
floating_maximum_size 0 x 0 floating_maximum_size 0 x 0
font pango:Inconsolata {{ machine.font_size }} font pango:JetBrainsMono {{ machine.font_size }}
################################################################################ ################################################################################
### COLOR SETTINGS ############################################################# ### COLOR SETTINGS #############################################################
################################################################################ ################################################################################
# class border backgr. text indicator # class border backgr. text indicator
client.focused #E16B40 #E16B40 #000000 #FF0000 client.focused #e5b567 #e5b567 #000000 #FF0000
client.focused_inactive #333333 #5f676a #ffffff #484e50 client.focused_inactive #272822 #5f676a #ffffff #484e50
client.unfocused #333333 #202020 #cccccc #292d2e client.unfocused #1C1C1C #272822 #cccccc #292d2e
client.urgent #2f343a #900000 #ffffff #900000 client.urgent #272822 #ff7777 #000000 #900000
################################################################################ ################################################################################
### APPLICATION SPECIFIC SETTINGS ############################################## ### APPLICATION SPECIFIC SETTINGS ##############################################
@@ -324,34 +315,30 @@ bindsym $mod+F9 exec --no-startup-id evolution
################################################################################ ################################################################################
bindsym XF86Sleep exec --no-startup-id $scriptdir/i3exit suspend bindsym XF86Sleep exec --no-startup-id $scriptdir/i3exit suspend
bindsym XF86AudioMute exec --no-startup-id $scriptdir/pa-volume mute-toggle bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute '@DEFAULT_SINK@' toggle
bindsym XF86AudioRaiseVolume exec --no-startup-id $scriptdir/pa-volume set-vol +3 bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume '@DEFAULT_SINK@' +5%
bindsym XF86AudioLowerVolume exec --no-startup-id $scriptdir/pa-volume set-vol -3 bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume '@DEFAULT_SINK@' -5%
bindsym XF86AudioPlay exec $scriptdir/spotify-control toggle bindsym XF86AudioPlay exec --no-startup-id playerctl -p spotify play-pause
bindsym XF86AudioNext exec $scriptdir/spotify-control next bindsym XF86AudioNext exec --no-startup-id playerctl -p spotify next
bindsym XF86AudioPrev exec $scriptdir/spotify-control previous bindsym XF86AudioPrev exec --no-startup-id playerctl -p spotify previous
# keys seemingly switched # keys seemingly switched
bindsym XF86MonBrightnessUp exec --no-startup-id xbacklight -inc 8 ; exec --no-startup-id $scriptdir/update-status bindsym XF86MonBrightnessUp exec --no-startup-id xbacklight -inc 8 ; exec --no-startup-id $scriptdir/update-status
bindsym XF86MonBrightnessDown exec --no-startup-id xbacklight -dec 8 ; exec --no-startup-id $scriptdir/update-status bindsym XF86MonBrightnessDown exec --no-startup-id xbacklight -dec 8 ; exec --no-startup-id $scriptdir/update-status
bindsym $mod+o exec --no-startup-id xautorandr ; exec --no-startup-id kill -SIGUSR2 $(cat $RUNDIR/wallchanger.$XDG_SESSION_ID.pid)'" bindsym $mod+m exec --no-startup-id pactl set-source-mute '@DEFAULT_SOURCE@' toggle
bindsym $mod+p exec --no-startup-id kill -SIGUSR1 $(cat $RUNDIR/wallchanger.$XDG_SESSION_ID.pid) bindsym $mod+space exec --no-startup-id pactl set-source-mute '@DEFAULT_SOURCE@' toggle
bindsym KP_Enter exec --no-startup-id pactl set-source-mute '@DEFAULT_SOURCE@' toggle
bindsym $mod+m exec --no-startup-id $scriptdir/pa-volume mute-toggle-mic
############################################################################## ##############################################################################
### BARS ####################################################################### ### BARS #######################################################################
################################################################################ ################################################################################
#
bar { bar {
mode dock mode dock
position bottom position bottom
#tray_output HDMI3
tray_output primary
tray_padding 2 tray_padding 2
strip_workspace_numbers no strip_workspace_numbers no
@@ -362,24 +349,23 @@ bar {
id bar-0 id bar-0
font pango:Inconsolata, FontAwesome {{ machine.font_size }} font pango:JetBrainsMono, FontAwesome {{ machine.font_size }}
colors { colors {
background #272822 background #272822
statusline #ffffff statusline #ffffff
separator #444444 separator #555555
# separator #e16b40
# focused_background #303030 focused_separator #e5b567
# focused_separator #272822 focused_background #272822
focused_workspace #e16b40 #272822 #ffffff # border bg text
active_workspace #272822 #5f676a #ffffff focused_workspace #e5b567 #4f676a #ffffff
active_workspace #272822 #4f676a #ffffff
inactive_workspace #272822 #272822 #dddddd inactive_workspace #272822 #272822 #dddddd
urgent_workspace #D00000 #D00000 #272822 urgent_workspace #272822 #ff7777 #272822
binding_mode #272822 #e16b40 #272822 binding_mode #272822 #e5b567 #272822
} }
i3bar_command i3bar status_command i3status-rs ~/.config/i3status-rust/config.toml
status_command py3status --standalone --dbus-notify -c ~/.i3/i3status.conf
} }

View File

@@ -0,0 +1,110 @@
icons_format = "{icon}"
[icons]
icons = "awesome"
[icons.overrides]
microphone = ""
volume = ""
bat = "\uf240"
music = "\uf1bc"
[theme]
theme = "native"
[theme.overrides]
warning_fg = "#000000"
warning_bg = "#F4Bf75"
critical_fg = "#000000"
critical_bg = "#F92672"
end_separator = ""
[[block]]
block = "music"
player = "spotify"
separator = " — "
format = " $icon {$combo $prev $play $next|-} "
[[block]]
block = "sound"
driver = "pulseaudio"
max_vol = 100
format = " $icon{ $volume.eng(w:2)|} "
[[block.click]]
button = "left"
cmd = "pactl set-sink-mute '@DEFAULT_SINK@' toggle"
update = true
[[block]]
block = "sound"
driver = "pulseaudio"
device_kind = "source"
format = " $icon "
[block.theme_overrides]
warning_fg = { link = "idle_fg" }
warning_bg = { link = "idle_bg" }
idle_fg = { link = "warning_fg" }
idle_bg = { link = "warning_bg" }
[[block.click]]
button = "left"
cmd = "pactl set-source-mute '@DEFAULT_SOURCE@' toggle"
update = true
[[block]]
block = "net"
format = " $icon{ $signal_strength|}{ $ssid.str(max_width:10) | }"
[[block]]
block = "battery"
interval = 10
format = " $icon $percentage $time "
charging_format = " $icon $percentage "
missing_format = ""
[[block]]
block = "toggle"
format = "  $icon "
command_on = "$XDG_CONFIG_HOME/i3/scripts/presentation-mode toggle ; pkill -SIGRTMIN+0 i3status-rs"
command_off = "$XDG_CONFIG_HOME/i3/scripts/presentation-mode toggle ; pkill -SIGRTMIN+0 i3status-rs"
command_state = "[[ $($XDG_CONFIG_HOME/i3/scripts/presentation-mode status) == on ]] && echo active"
[[block]]
block = "toggle"
format = "  $icon "
command_on = "systemctl --user start color-theme-light"
command_off = "systemctl --user start color-theme-dark"
command_state = "[[ $(systemctl --user is-active color-theme-light) == active ]] && echo active"
[[block]]
block = "toggle"
format = "  $icon "
command_on = "systemctl --user start redshift"
command_off = "systemctl --user stop redshift"
command_state = "[[ $(systemctl --user is-active redshift) == active ]] && echo active"
signal = 0
[[block]]
block = "toggle"
format = "  $icon "
command_on = "systemctl --user start spotify"
command_off = "systemctl --user stop spotify"
command_state = "[[ $(systemctl --user is-active spotify) == active ]] && echo active"
signal = 0
[[block]]
block = "custom"
json = true
command = "ping -n -q -w 2 -c 1 8.8.8.8 >/dev/null 2>/dev/null && printf '{\"text\":\"\",\"state\":\"Info\"}' || printf '{\"text\":\"\",\"state\":\"Critical\"}'"
[[block]]
block = "custom"
command = "curl -s 'https://wttr.in/Ansbach?m&T&format=%c%t' | sed 's/ / /g'"
interval = 3600
[[block]]
block = "time"
interval = 1
format = " $timestamp.datetime(f:'[CW %V] %a %d.%m.%Y %H:%M:%S', l:de_DE) "

View File

@@ -0,0 +1,94 @@
# FontAwesome 4: https://fontawesome.com/v4.7.0/cheatsheet/
backlight_empty = "\U0001f315"
backlight_full = "\U0001f311"
backlight_1 = "\U0001f314"
backlight_2 = "\U0001f314"
backlight_3 = "\U0001f314"
backlight_4 = "\U0001f314"
backlight_5 = "\U0001f313"
backlight_6 = "\U0001f313"
backlight_7 = "\U0001f313"
backlight_8 = "\U0001f313"
backlight_9 = "\U0001f313"
backlight_10 = "\U0001f312"
backlight_11 = "\U0001f312"
backlight_12 = "\U0001f312"
backlight_13 = "\U0001f312"
bat_charging = "\uf1e6" # fa-plug
bat_discharging = "\uf242" # fa-battery-half
bat_10 = "\uf244" # fa-battery-empty
bat_20 = "\uf243" # fa-battery-quarter
bat_30 = "\uf243" # fa-battery-quarter
bat_40 = "\uf243" # fa-battery-quarter
bat_50 = "\uf242" # fa-battery-half
bat_60 = "\uf242" # fa-battery-half
bat_70 = "\uf241" # fa-battery-three-quarters
bat_80 = "\uf241" # fa-battery-three-quarters
bat_90 = "\uf241" # fa-battery-three-quarters
bat_full = "\uf240" # fa-battery-full
bat_not_available = "\uf244" # fa-battery-empty
bell = "\uf0f3" # fa-bell
bell-slash = "\uf1f7" # fa-bell-slash-o
bluetooth = "\uf294" # fa-bluetooth-b
calendar = "\uf073" # fa-calendar
cogs = "\uf085" # fa-cogs
cpu = "\uf0e4" # fa-dashboard
cpu_boost_off = "\uf204" # fa-toggle-off
cpu_boost_on = "\uf205" # fa-toggle-on
disk_drive = "\uf0a0" # fa-hdd-o
docker = "\uf21a" # fa-ship
github = "\uf09b" # fa-github
gpu = "\uf26c" # fa-television
headphones = "\uf025" # fa-headphones
joystick = "\uf11b" # fa-gamepad
keyboard = "\uf11c" # fa-keyboard-o
mail = "\uf0e0" # fa-envelope
memory_mem = "\uf2db" # fa-microchip
memory_swap = "\uf0a0" # fa-hdd-o
mouse = "\uf245" # fa-mouse-pointer
music = "\uf001" # fa-music
music_next = "\uf061" # fa-arrow-right
music_pause = "\uf04c" # fa-pause
music_play = "\uf04b" # fa-play
music_prev = "\uf060" # fa-arrow-left
net_bridge = "\uf0e8" # fa-sitemap
net_down = "\u2b07"
net_loopback = "LO"
net_modem = "\uf095" # fa-phone
net_up = "\u2b06"
net_vpn = "\uf023" # fa-lock
net_wired = "\uf0ac" # fa-globe
net_wireless = "\uf1eb" # fa-wifi
notification = "\uf0a2" # fa-bell-o
phone = "\uf10b" # fa-mobile
phone_disconnected = "\U0001f4f5" # https://unicode-table.com/en/1F4F5/
ping = "\u21ba"
pomodoro = "\U0001f345"
pomodoro_break = "\uf0f4" # fa-coffee
pomodoro_paused = "\uf04c" # fa-pause
pomodoro_started = "\uf04b" # fa-play
pomodoro_stopped = "\uf04d" # fa-stop
resolution = "\uf096" # fa-square-o
tasks = "\uf0ae" # fa-tasks
thermometer = "\uf2c8" # fa-thermometer-3
time = "\uf017" # fa-clock-o
toggle_off = "\uf204" # fa-toggle-off
toggle_on = "\uf205" # fa-toggle-on
unknown = "\uf128" # fa-question
update = "\uf062" # fa-arrow-up
uptime = "\uf017" # fa-clock-o
volume_empty = "\uf026" # fa-volume-off
volume_full = "\uf028" # fa-volume-up
volume_half = "\uf027" # fa-volume-down
volume_muted = "\uf026 \uf00d"
microphone_empty = "\uf130" # fa-microphone
microphone_full = "\uf130" # fa-microphone
microphone_half = "\uf130" # fa-microphone
microphone_muted = "\uf131" # fa-microphone-slash
weather_clouds = "\uf0c2" # fa-cloud
weather_default = "\uf0c2" # fa-cloud
weather_rain = "\uf043" # fa-tint
weather_snow = "\uf2dc" # fa-snowflake-o
weather_sun = "\uf185" # fa-sun-o
weather_thunder = "\uf0e7" # fa-bolt
xrandr = "\uf26c" # fa-television

View File

@@ -0,0 +1 @@

View File

@@ -1,124 +0,0 @@
# i3status configuration file.
# see "man i3status" for documentation.
# It is important that this file is edited as UTF-8.
# The following line should contain a sharp s:
# ß
# If the above line is not correctly displayed, fix your editor first!
general {
interval = 1
# color = '#FFFFFF'
# color_good = '#00FF00'
# color_bad = '#FF0000'
# color_degraded = '#FFFF00'
color = '#FFFFFF'
color_good = '#FFFFFF'
color_bad = '#F92672'
color_degraded = '#F4Bf75'
}
order += "yubikey"
order += "volume_status output"
order += "volume_status input"
order += spotify
order += "wifi"
order += "external_script presentation_mode"
order += "systemd redshift"
order += "systemd spotify"
order += online_status
order += "battery_level all"
order += "clock"
battery_level all {
battery_id = "all"
format = " {icon} {percent}% {time_remaining} "
measurement_mode = "sys"
charging_character = ""
blocks = ""
notification = true
hide_when_full = false
hide_seconds = true
notify_low_level = true
threshold_full = 95
}
systemd redshift {
unit = "redshift.service"
user = true
format = "  "
on_click 1 = "exec $HOME/.i3/scripts/toggle-app redshift"
color_bad = '#F4Bf75'
color_degraded = '#F4Bf75'
}
systemd spotify {
unit = "spotify.service"
user = true
format = "  "
on_click 1 = "exec $HOME/.i3/scripts/toggle-app spotify"
color_bad = '#F4Bf75'
color_degraded = '#F4Bf75'
}
yubikey {
format = '[  YubiKey[\?if=is_gpg ][\?if=is_u2f ] ]'
}
clock {
format = ["{DE}", "{NZ}", "{Cuba}", "{MX}", "{CZ}", "{NL}", "{VN}"]
format_time = "  {name} \[KW %V\] %a %d.%m.%Y %H:%M:%S "
}
wifi {
bitrate_bad = 0
bitrate_degraded = 0
format = "  {signal_percent} {ssid} |  down "
down_color = "good"
}
spotify {
format = "  {title} - {artist} "
format_down = "  off "
format_stopped = "  stopped "
cache_timeout = 1
color_offline = '#FFFFFF'
on_click 1 = "exec $HOME/.i3/scripts/spotify-control toggle"
on_click 3 = "exec $HOME/.i3/scripts/spotify-control next"
}
external_script presentation_mode {
format = " Present: {output} "
script_path = "$HOME/.i3/scripts/presentation-mode status"
strip_output = True
on_click 1 = "exec $HOME/.i3/scripts/presentation-mode toggle"
}
online_status {
icon_on = ""
icon_off = ""
format = " {icon} "
}
volume_status output {
cache_timeout = 10
format = "  {percentage}% "
format_muted = "  mute "
thresholds = []
command = "pactl"
color_muted = '#FFFFFF'
on_click 1 = "exec $HOME/.i3/scripts/pa-volume mute-toggle"
}
volume_status input {
cache_timeout = 10
format = "  active "
format_muted = "  mute "
thresholds = [(0, 'good'), (1, 'bad')]
command = "pactl"
color_muted = '#FFFFFF'
is_input = True
on_click 1 = "exec $HOME/.i3/scripts/pa-volume mute-toggle-mic"
}

View File

@@ -1,2 +1,2 @@
#!/usr/bin/env bash #!/usr/bin/env bash
rofi -show combi -combi-modi run,drun -display-combi "run" rofi -show combi -combi-modi run -display-combi "run"

View File

@@ -1,9 +0,0 @@
#!/bin/bash
if [[ "$1" ]] ; then
modules="$1"
else
modules=all
fi
py3-cmd refresh "$modules"

View File

@@ -2,10 +2,7 @@
### From http://www.archlinux.org/index.php/i3 ### From http://www.archlinux.org/index.php/i3
_logfile="$LOGDIR/i3/i3exit.log" _logfile="$XDG_RUNTIME_DIR/i3exit.log"
LOCKSCREEN="$LIBDIR/lockscreen"
_fallback_color="000000"
touch "$_logfile" touch "$_logfile"
@@ -18,27 +15,10 @@ log()
lock() lock()
{ {
set -x set -x
playing=0 playerctl -p spotify pause
if [[ "$(playerctl -p spotify status)" == "Playing" ]] ; then
playing=1
fi
if (( $playing )) ; then
playerctl -p spotify pause
fi
if [[ -f "$LOCKSCREEN" ]] ; then i3lock --nofork --show-failed-attempts --ignore-empty-password \
resized_lockscreen=$(mktemp) --color "000000"
convert "${LOCKSCREEN}" -resize "${MACHINE_RESOLUTION_X}x${MACHINE_RESOLUTION_Y}" "${resized_lockscreen}"
i3lock --nofork --show-failed-attempts --ignore-empty-password \
--image "${resized_lockscreen}"
rm "${resized_lockscreen}"
else
i3lock --nofork --show-failed-attempts --ignore-empty-password \
--color "$_fallback_color"
fi
if (( $playing )) ; then
playerctl -p spotify play
fi
} }
screen_off() { screen_off() {
@@ -52,10 +32,11 @@ reset_screen() {
lock_and_screen_off() { lock_and_screen_off() {
lock & lock &
_pid=$! _pid=$!
dunstctl disable dunst_paused=$(dunstctl is-paused)
[[ "${dunst_paused}" != "true" ]] && dunstctl set-paused true
screen_off screen_off
wait $_pid wait $_pid
dunstctl enable [[ "${dunst_paused}" != "true" ]] && dunstctl set-paused false
reset_screen reset_screen
} }

View File

@@ -1,137 +0,0 @@
#!/bin/bash
# name of the sink. execute pactl list sinks to get a list
SINKNAME="$(pactl info | grep '^Default Sink:' | cut -d ' ' -f 3-)"
# name of the sink. execute pactl list sinks to get a list
SOURCENAME="$(pactl info | grep '^Default Source:' | cut -d ' ' -f 3-)"
#SINKNAME="alsa_output.usb-Logitech_Logitech_Wireless_Headset_88C626354D45-00.analog-stereo"
# this is the worst
SINK=$(( $(pactl list sinks | grep "Name: " | grep -n "${SINKNAME}"$ | grep -o "^[[:digit:]]*") -1))
SOURCE=$(( $(pactl list sources | grep "Name: " | grep -n "${SOURCENAME}"$ | grep -o "^[[:digit:]]*") -1))
getvol() {
echo $(pactl list sinks | grep "^[[:space:]]*Volume" | head -n $(( $SINK + 1 )) | tail -n 1 | grep -o "[[:digit:]]*%" | head -n 1 | cut -d "%" -f 1)
}
setvol() {
if [[ $1 =~ [+-][0-9]+ ]] ; then
oldvol="$(getvol)"
echo "oldvol $oldvol"
delta="$(echo "$1" | cut -c 2-)"
echo "delta $delta"
if [[ "$(echo "$1" | cut -c 1)" == "+" ]] ; then
echo "+"
newvol=$(( $oldvol + $delta ))
else
echo "-"
newvol=$(( $oldvol - $delta ))
echo $newvol
fi
if [[ $newvol -gt 100 ]]; then
echo "capping at 100 percent"
newvol=100
fi
if [[ $newvol -lt 0 ]]; then
echo "capping at 0 percent"
newvol=0
fi
echo "newvol $newvol"
else
newvol="$1"
fi
pactl set-sink-volume $SINKNAME $(( $newvol * 65536 / 100 ))
}
ismuted() {
muted=$(pactl list sinks | grep "^[[:space:]]*Mute" | head -n $(( $SINK + 1 )) | tail -n 1 | cut -d " " -f 2)
if [[ $muted == "no" ]]; then
echo 0
else
echo 1
fi
}
mute() {
pactl set-sink-mute $SINKNAME 1
}
unmute() {
pactl set-sink-mute $SINKNAME 0
}
mute-toggle() {
pactl set-sink-mute $SINKNAME toggle
}
mute-toggle-mic() {
pactl set-source-mute $SOURCENAME toggle
}
status() {
if [[ $(ismuted) == "1" ]] ; then
echo "mute"
return
fi
echo "$(getvol)%"
}
usage() {
echo "Usage:"
echo
echo "$0 get-vol"
echo "$0 set-vol VOL_PERC"
}
update_status_bar_sink() {
~/.i3/scripts/bar-update "volume_status output"
}
update_status_bar_source() {
~/.i3/scripts/bar-update "volume_status input"
}
case "$1" in
"sink")
echo $SINKNAME
echo $SINK
;;
"get-vol")
echo $(getvol)
;;
"set-vol")
if [[ -z "$2" ]] ; then
usage
else
setvol "$2"
fi
update_status_bar_sink
;;
"mute")
mute
update_status_bar_sink
;;
"unmute")
unmute
update_status_bar_sink
;;
"mute-toggle")
mute-toggle
update_status_bar_sink
;;
"mute-toggle-mic")
mute-toggle-mic
update_status_bar_source
;;
"is-muted")
echo $(ismuted)
;;
"status")
echo $(status)
;;
*)
usage
esac

View File

@@ -1,7 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
_status_file="${XDG_RUNTIME_DIR}/presentation-mode-on" _status_file="${XDG_RUNTIME_DIR}/presentation-mode-on"
_autostart="$HOME/.autostart.sh"
is_on() { is_on() {
[[ -e "${_status_file}" ]] [[ -e "${_status_file}" ]]
@@ -9,22 +8,16 @@ is_on() {
switch_on() { switch_on() {
touch "${_status_file}" touch "${_status_file}"
dunstctl disable & dunstctl set-paused true &
systemctl --user --no-block stop redshift.service systemctl --user --no-block stop redshift.service
systemctl --user --no-block stop spotify.service systemctl --user --no-block stop spotify.service
~/.i3/scripts/bar-update "external_script presentation_mode"
~/.i3/scripts/bar-update "systemd redshift"
~/.i3/scripts/bar-update "systemd spotify"
} }
switch_off() { switch_off() {
rm -f "${_status_file}" rm -f "${_status_file}"
dunstctl enable & dunstctl set-paused false &
systemctl --user --no-block start redshift.service systemctl --user --no-block start redshift.service
systemctl --user --no-block start spotify.service systemctl --user --no-block start spotify.service
~/.i3/scripts/bar-update "external_script presentation_mode"
~/.i3/scripts/bar-update "systemd redshift"
~/.i3/scripts/bar-update "systemd spotify"
} }
@@ -32,10 +25,8 @@ case "$1" in
status) status)
if is_on ; then if is_on ; then
printf "on\n" printf "on\n"
printf '#F4BF75'
else else
printf "off\n" printf "off\n"
# printf '#F4BF75'
fi fi
;; ;;
toggle) toggle)

View File

@@ -1,20 +0,0 @@
#!/bin/bash
case "$1" in
toggle)
cmd="play-pause"
;;
next)
cmd="next"
;;
previous)
cmd="previous"
;;
*)
echo "wrong argument $1"
exit 1
;;
esac
playerctl -p spotify "${cmd}"
~/.i3/scripts/bar-update spotify

View File

@@ -1,20 +0,0 @@
#!/usr/bin/env python3
import dbus
session_bus = dbus.SessionBus()
spotify_bus = session_bus.get_object("org.mpris.MediaPlayer2.spotify",
"/org/mpris/MediaPlayer2")
spotify_properties = dbus.Interface(spotify_bus,
"org.freedesktop.DBus.Properties")
metadata = spotify_properties.Get("org.mpris.MediaPlayer2.Player", "Metadata")
# The property Metadata behaves like a python dict
# for key, value in metadata.items():
# print(key, value)
# To just print the title
print("{}: {} - [{}]".format(
metadata['xesam:artist'][0],
metadata['xesam:title'],
metadata['xesam:album']
))

59
i3/scripts/swap-from-workspace Executable file
View File

@@ -0,0 +1,59 @@
#!/usr/bin/env bash
set -o nounset
set -o errexit
set -o pipefail
set -o xtrace
cmds=()
workspacescratch="${1}"
i3msgworkspaces="$(i3-msg -t get_workspaces)"
output_of_pim=$(printf '%s' "${i3msgworkspaces}" | jq -r 'map(select(.name == "'"${workspacescratch}"'")) | .[0].output')
active_workspace_on_target_output=$(printf '%s' "${i3msgworkspaces}" | jq -r 'map(select(.output == "'"${output_of_pim}"'" and .visible)) | .[0].name')
focused_workspace_name=$(printf '%s' "${i3msgworkspaces}" | jq -r 'map(select(.focused)) | .[0].name')
focused_workspace_output=$(printf '%s' "${i3msgworkspaces}" | jq -r 'map(select(.focused)) | .[0].output')
if [[ "${focused_workspace_name}" == "${workspacescratch}" ]]; then
exit 0
fi
cmds+=('unmark _destination')
cmds+=('mark _source')
if [[ "${active_workspace_on_target_output}" != "${workspacescratch}" ]] && [[ "${output_of_pim}" != "${focused_workspace_output}" ]]; then
need_output_reset=1
else
need_output_reset=0
fi
if ((need_output_reset)); then
cmds+=('workspace "'"${active_workspace_on_target_output}"'"')
cmds+=("mark --add _origin")
fi
cmds+=('workspace "'"${workspacescratch}"'"')
cmds+=('mark --add _destination')
cmds+=('[con_mark="^_destination$"] swap container with mark "_source"')
cmds+=('[con_mark="^_source$"] focus')
cmds+=('unmark _source')
if ((need_output_reset)); then
cmds+=('[con_mark="^_origin$"] focus')
cmds+=('unmark _origin')
fi
cmds+=('[con_mark="^_destination$"] focus')
cmds+=('unmark _destination')
i3msgcmd=""
for cmd in "${cmds[@]}"; do
i3msgcmd="${i3msgcmd}${cmd};"
done
i3-msg "${i3msgcmd}"

View File

@@ -1,17 +0,0 @@
#!/usr/bin/env bash
app="${1:?app missing}"
unitname="${app}.service"
running() {
systemctl --user --quiet status "${unitname}" >/dev/null
}
if running ; then
systemctl --user stop "${unitname}"
else
systemctl --user start "${unitname}"
fi
py3-cmd refresh "systemd $app"

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