511 Commits

Author SHA1 Message Date
02cc4f8ed8 workflow: use rebase instead of merge
All checks were successful
Update Nix Flake / update-flake (push) Successful in 1m24s
2025-03-23 19:09:18 +01:00
d964a181ad builder: add attic binary cache
All checks were successful
Update Nix Flake / update-flake (push) Successful in 1m19s
2025-03-22 12:55:16 +01:00
27c36bb7f5 topgrade: update flake.lock to flake-updates branch version 2025-03-22 12:54:48 +01:00
b76fe8d508 workflow: really fix git diff call by using --cached 2025-03-22 09:20:48 +01:00
5c8f199fce workflow: add debug calls 2025-03-22 09:16:53 +01:00
00a448010d workflow: fix git diff call 2025-03-22 09:14:14 +01:00
b76da6e9eb workflow: use merge --squash instead of rebase 2025-03-22 09:05:43 +01:00
68e02739be fix gitea runner by using docker instead of podman
Some checks failed
Update Nix Flake / update-flake (push) Failing after 1m27s
2025-03-21 22:33:42 +01:00
b9b5b378f7 workflow: fix gitea token on checkout 2025-03-21 21:57:51 +01:00
1abc06f58c Add gitea action for updating flake 2025-03-21 21:46:05 +01:00
b3f3813b36 builder: configure gitea actions 2025-03-21 21:45:42 +01:00
56b471cdd4 Document sops usage in Readme 2025-03-21 21:45:26 +01:00
136dd36b8c Distribute secrets to machine configs 2025-03-21 21:45:08 +01:00
3f68d344d1 Add secrets for builder 2025-03-21 21:44:32 +01:00
df00e58bd9 Add sos script for faster nixos-updates
This uses the remote builder as nix store, so the build dependencies for
the new system do not have to be present locally.
Therefore, if hydra built the system it should be possible to just
download the output derivation.
2025-03-14 09:16:50 +01:00
4745b90cea Update flake 2025-03-12 17:10:56 +01:00
fef500721c emacs: add languagetool lsp 2025-03-12 17:10:46 +01:00
1921df8330 add devenv 2025-02-28 19:08:41 +01:00
8e64d3f8db pianonix: add musescore 2025-02-28 19:08:26 +01:00
8cc698af1f Update flake 2025-02-28 19:08:12 +01:00
533256cca6 Fix unstable overlay 2025-02-28 18:52:53 +01:00
5e224b9c3f Fix flake inputs being thunk instead of set
I turns out one should not handle the inputs section as nix code, or
weird things happen
2025-02-28 18:49:56 +01:00
ca0ad1b6d6 Remove hydra jobs 2025-02-28 18:24:42 +01:00
8dfa9a8df7 desktop suite: add pdfpc 2025-01-21 21:33:52 +01:00
167a9d57d7 v3ms: add devbox 2025-01-21 12:03:29 +01:00
87809a9573 Fix wine only supporting 32-bit 2025-01-20 18:15:11 +01:00
d67c432be6 Update flake 2025-01-20 00:15:13 +01:00
49f3533f9e Add matlab-rsp script 2025-01-20 00:15:13 +01:00
c344ac92f6 pianonix: add xournalpp 2025-01-20 00:15:13 +01:00
7e848b8126 Enable syncthing on kardorf 2025-01-14 10:19:40 +01:00
e698f17557 Update flake 2025-01-10 22:27:05 +01:00
9907a4ba9e builder: disable daily gc, increase automatic gc thresholds 2025-01-10 22:26:11 +01:00
be2dc15a1f aspi: enable builder 2025-01-10 22:25:59 +01:00
ca3e257fa0 pianonix: add onboard screen keyboard 2025-01-10 22:25:47 +01:00
a6f2ad4d9f Again change kitty theme 2025-01-08 08:22:27 +01:00
338b77114c Update flake 2025-01-06 08:52:54 +01:00
0878a2f251 builder: Remove swap 2025-01-02 23:05:49 +01:00
e45837e785 Update flake 2025-01-02 22:57:21 +01:00
f832636ffd Builder: add kardorf ssh key 2025-01-02 22:57:10 +01:00
4f68e368b9 Make kitty use more mc friendly theme 2025-01-02 22:56:56 +01:00
4590c9fe1f builder: Improve garbage collect 2024-12-20 14:05:11 +01:00
22db460211 Try to fix hydra not using localhost buildMachine 2024-12-19 08:55:49 +01:00
5f2ab6958e emacs: add hunspell dicts 2024-12-18 15:50:15 +01:00
86c948779f Aspi allow non free nvidia drivers 2024-12-18 15:49:50 +01:00
9cb3f8eae9 Aspi use kitty instead of wezterm 2024-12-18 15:49:38 +01:00
b6dbe5afc7 Setup builder as cache and activate hydra 2024-12-18 15:48:58 +01:00
4c8a559c92 Activate resolved service which was missing 2024-12-18 15:47:40 +01:00
cec8d1d226 Use binarycache.julian-mutter.de by default 2024-12-18 15:46:34 +01:00
8dc346a1ef flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/785c1e02c7e465375df971949b8dcbde9ec362e5?narHash=sha256-8dupm9GfK%2BBowGdQd7EHK5V61nneLfr9xR6sc5vtDi0%3D' (2024-12-02)
  → 'github:nix-community/disko/a08bfe06b39e94eec98dd089a2c1b18af01fef19?narHash=sha256-b7G8oFp0Nj01BYUJ6ENC9Qf/HsYAIZvN9k/p0Kg/PFU%3D' (2024-12-16)
• Updated input 'home-manager':
    'github:nix-community/home-manager/c7ffc9727d115e433fd884a62dc164b587ff651d?narHash=sha256-zjO6m5BqxXIyjrnUziAzk4%2BT4VleqjstNudSqWcpsHI%3D' (2024-12-07)
  → 'github:nix-community/home-manager/80b0fdf483c5d1cb75aaad909bd390d48673857f?narHash=sha256-vykpJ1xsdkv0j8WOVXrRFHUAdp9NXHpxdnn1F4pYgSw%3D' (2024-12-16)
• Updated input 'hyprland':
    'github:hyprwm/Hyprland/0a27af8cd190315c1f13363ebd11e83d30455d48?narHash=sha256-%2BtHGw4fimhZ9LtGUTpXV8V1EH5AWY6FC/3u5OmZ4I5A%3D' (2024-12-08)
  → 'github:hyprwm/Hyprland/5f1df55fcb45a72e92258113685aa9064f6ebf3e?narHash=sha256-eb%2BOcQaSp7pcJxNe6wi52AiqLle820aD4Ejq10wmsjo%3D' (2024-12-17)
• Updated input 'hyprland/aquamarine':
    'github:hyprwm/aquamarine/4468981c1c50999f315baa1508f0e53c4ee70c52?narHash=sha256-TGcvIjftziC1CjuiHCzrYDwmOoSFYIhdiKmLetzB5L0%3D' (2024-11-18)
  → 'github:hyprwm/aquamarine/a132fa41be7ebe797ad758e84d9df068151a723b?narHash=sha256-Bf%2Boya0BuleVXYGIWsb0eWnrK6s0aiesOsI7Mpj1pMU%3D' (2024-12-17)
• Updated input 'hyprland/hyprcursor':
    'github:hyprwm/hyprcursor/0264e698149fcb857a66a53018157b41f8d97bb0?narHash=sha256-EDNAU9AYcx8OupUzbTbWE1d3HYdeG0wO6Msg3iL1muk%3D' (2024-10-11)
  → 'github:hyprwm/hyprcursor/f388aacd22be4a6e4d634fbaf6f75eb0713d239a?narHash=sha256-%2B2bZJL2u5hva7rSp65OfKJBK%2Bk03T6GB/NCvpoS1OOo%3D' (2024-12-16)
• Updated input 'hyprland/hyprgraphics':
    'github:hyprwm/hyprgraphics/cc95e5babc6065bc3ab4cd195429a9900836ef13?narHash=sha256-FFLJzFTyNhS7tBEEECx0B8Ye/bpmxhFVEKlECgMLc6c%3D' (2024-12-03)
  → 'github:hyprwm/hyprgraphics/fb2c0268645a77403af3b8a4ce8fa7ba5917f15d?narHash=sha256-2kYREgmSmbLsmDpLEq96hxVAU3qz8aCvVhF65yCFZHY%3D' (2024-12-08)
• Updated input 'hyprland/hyprland-qtutils':
    'github:hyprwm/hyprland-qtutils/969427419276c7ee170301ef1ebe0f68eb6eb2e2?narHash=sha256-PvXiFLIExJEJj%2BgoLbIuXLTN5CSDSAUsAfiYSdbbWg0%3D' (2024-12-06)
  → 'github:hyprwm/hyprland-qtutils/3833097e50473a152dd614d4b468886840b4ea78?narHash=sha256-hmfXWj2GA9cj1QUkPFYtAAeohhs615zL4E3APy3FnvQ%3D' (2024-12-11)
• Updated input 'hyprland/hyprlang':
    'github:hyprwm/hyprlang/f054f2e44d6a0b74607a6bc0f52dba337a3db38e?narHash=sha256-AnB1KfiXINmuiW7BALYrKqcjCnsLZPifhb/7BsfPbns%3D' (2024-10-05)
  → 'github:hyprwm/hyprlang/16e59c1eb13d9fb6de066f54e7555eb5e8a4aba5?narHash=sha256-ii8fzJfI953n/EmIxVvq64ZAwhvwuuPHWfGd61/mJG8%3D' (2024-12-16)
• Updated input 'hyprland/hyprutils':
    'github:hyprwm/hyprutils/b26f33cc1c8a7fd5076e19e2cce3f062dca6351c?narHash=sha256-XTU9B53IjGeJiJ7LstOhuxcRjCOFkQFl01H78sT9Lg4%3D' (2024-11-22)
  → 'github:hyprwm/hyprutils/e6cf45cd1845368702e03b8912f4cc44ebba3322?narHash=sha256-bl3YyJb2CgaeVKYq/l8j27vKdbkTpDNFDsnCl0dnNlY%3D' (2024-12-16)
• Updated input 'hyprland/hyprwayland-scanner':
    'github:hyprwm/hyprwayland-scanner/500c81a9e1a76760371049a8d99e008ea77aa59e?narHash=sha256-VKR0sf0PSNCB0wPHVKSAn41mCNVCnegWmgkrneKDhHM%3D' (2024-09-20)
  → 'github:hyprwm/hyprwayland-scanner/90e87f7fcfcce4862826d60332cbc5e2f87e1f88?narHash=sha256-noYeXcNQ15g1/gIJIYT2zdO66wzY5Z06PYz6BfKUZA8%3D' (2024-12-16)
• Updated input 'hyprland/nixpkgs':
    'github:NixOS/nixpkgs/d0797a04b81caeae77bcff10a9dde78bc17f5661?narHash=sha256-kEsTJTUQfQFIJOcLYFt/RvNxIK653ZkTBIs4DG%2BcBns%3D' (2024-12-05)
  → 'github:NixOS/nixpkgs/3566ab7246670a43abd2ffa913cc62dad9cdf7d5?narHash=sha256-AKU6qqskl0yf2%2BJdRdD0cfxX4b9x3KKV5RqA6wijmPM%3D' (2024-12-13)
• Updated input 'hyprland/pre-commit-hooks':
    'github:cachix/git-hooks.nix/6f4e2a2112050951a314d2733a994fbab94864c6?narHash=sha256-SVQVsbafSM1dJ4fpgyBqLZ%2BLft%2BjcQuMtEL3lQWx2Sk%3D' (2024-12-04)
  → 'github:cachix/git-hooks.nix/0bb4be58f21ff38fc3cdbd6c778eb67db97f0b99?narHash=sha256-Keu8z5VgT5gnCF4pmB%2Bg7XZFftHpfl4qOn7nqBcywdE%3D' (2024-12-16)
• Updated input 'hyprland/xdph':
    'github:hyprwm/xdg-desktop-portal-hyprland/fd85ef39369f95eed67fdf3f025e86916edeea2f?narHash=sha256-NetqJHAN4bbZDQADvpep%2BwXk2AbMZ2bN6tINz8Kpz6M%3D' (2024-12-02)
  → 'github:hyprwm/xdg-desktop-portal-hyprland/3e884d941ca819c1f2e50df8bdae0debded1ed87?narHash=sha256-0y7DRaXslhfqVKV8a/talYTYAe2NHOQhMZG7KMNRCtc%3D' (2024-12-17)
• Updated input 'hyprland-plugins':
    'github:hyprwm/hyprland-plugins/2530394e67b436f4aea8225111cf37c1403ccb78?narHash=sha256-5gCIIiQT9JlBPO1M98j1Aaboa2CTKtwBqiksCLf6qC0%3D' (2024-12-04)
  → 'github:hyprwm/hyprland-plugins/179fab73cd399982f5d37389fb307497eb65be45?narHash=sha256-i4dNTT6yR6Ob2hSMHOShm91zACUGzwMR8cdmIkPHiOY%3D' (2024-12-17)
• Updated input 'music-reader':
    'git+https://gitlab.julian-mutter.de/julian/music-reader?ref=refs/heads/master&rev=b7a1a6c07e7fd4235bbd00a66c727ff2fb3de841' (2024-12-08)
  → 'git+https://gitlab.julian-mutter.de/julian/music-reader?ref=refs/heads/master&rev=d63eb2b9d1aeef1d143bafd7706cd7ba45dc823d' (2024-12-08)
• Updated input 'nix-ld':
    'github:Mic92/nix-ld/1e17dfe486a0c4dc245f5177a7328930b8392b34?narHash=sha256-pVogdQb09YrbVyFrzadfF1fseT6W2We4lNKRvWPPHsY%3D' (2024-12-02)
  → 'github:Mic92/nix-ld/911665df070e3d6c970e5a248fc4a38550bd5689?narHash=sha256-BpJs2QnVwdE4Btsx2BcBmdsq86H7QJYv2GmoOkr1ii4%3D' (2024-12-16)
• Updated input 'nix-matlab':
    'gitlab:doronbehar/nix-matlab/61df20fe5adb6c227389ca81817732b47cc21db9?narHash=sha256-4SkYrx9BEeqI4OFW1W/5Ra67FM4piVAKkdv3tnMa6fc%3D' (2024-12-07)
  → 'gitlab:doronbehar/nix-matlab/45bd1ee7d0c4ca58fff29b0fe4f438faaa097d33?narHash=sha256-MxBgCrzGbG3P1fnAAaiwfGURAaZlRJnmE3uvbYtYcgU%3D' (2024-12-16)
• Updated input 'nix-topology':
    'github:oddlama/nix-topology/2b107e98bbde932a363874e0ef5b1739a932bbc5?narHash=sha256-xQO/3I99TFdiXTN5VoS28NpbNlCQWQUvxmPQHlfkzmU%3D' (2024-11-21)
  → 'github:oddlama/nix-topology/ba6f61e594a85eabebf1c8f373923b59b3b07448?narHash=sha256-k9P9Sa6jw/Xre8UDp7Ukk75h4Tcq8ZrK%2Bnz6A2MC1IM%3D' (2024-12-15)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/e563803af3526852b6b1d77107a81908c66a9fcf?narHash=sha256-IS3bxa4N1VMSh3/P6vhEAHQZecQ3oAlKCDvzCQSO5Is%3D' (2024-12-06)
  → 'github:NixOS/nixos-hardware/b12e314726a4226298fe82776b4baeaa7bcf3dcd?narHash=sha256-mfv%2BJ/vO4nqmIOlq8Y1rRW8hVsGH3M%2BI2ESMjhuebDs%3D' (2024-12-16)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/4dc2fc4e62dbf62b84132fe526356fbac7b03541?narHash=sha256-FillH0qdWDt/nlO6ED7h4cmN%2BG9uXwGjwmCnHs0QVYM%3D' (2024-12-05)
  → 'github:nixos/nixpkgs/394571358ce82dff7411395829aa6a3aad45b907?narHash=sha256-m/lh6hYMIWDYHCAsn81CDAiXoT3gmxXI9J987W5tZrE%3D' (2024-12-16)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/4dc2fc4e62dbf62b84132fe526356fbac7b03541?narHash=sha256-FillH0qdWDt/nlO6ED7h4cmN%2BG9uXwGjwmCnHs0QVYM%3D' (2024-12-05)
  → 'github:nixos/nixpkgs/394571358ce82dff7411395829aa6a3aad45b907?narHash=sha256-m/lh6hYMIWDYHCAsn81CDAiXoT3gmxXI9J987W5tZrE%3D' (2024-12-16)
• Updated input 'nixpkgs-unstable':
    'github:nixos/nixpkgs/22c3f2cf41a0e70184334a958e6b124fb0ce3e01?narHash=sha256-Qn3nPMSopRQJgmvHzVqPcE3I03zJyl8cSbgnnltfFDY%3D' (2024-12-07)
  → 'github:nixos/nixpkgs/d3c42f187194c26d9f0309a8ecc469d6c878ce33?narHash=sha256-cHar1vqHOOyC7f1%2BtVycPoWTfKIaqkoe1Q6TnKzuti4%3D' (2024-12-17)
• Updated input 'nixvim':
    'github:nix-community/nixvim/6395b9c013ba4de734334e5c927dec529e810d72?narHash=sha256-oJxMWR29rBT5howN587lMy6nKOiISyrfSJZg4gXPobc%3D' (2024-12-08)
  → 'github:nix-community/nixvim/4f0d5e0d2947dbf111f2ce00c99ca4c6c659dc79?narHash=sha256-APyzO3pn6iiGJxkWczifnxm3pKZrNYgpJUPpnVfUwsk%3D' (2024-12-17)
• Updated input 'nixvim/git-hooks':
    'github:cachix/git-hooks.nix/6f4e2a2112050951a314d2733a994fbab94864c6?narHash=sha256-SVQVsbafSM1dJ4fpgyBqLZ%2BLft%2BjcQuMtEL3lQWx2Sk%3D' (2024-12-04)
  → 'github:cachix/git-hooks.nix/d8c02f0ffef0ef39f6063731fc539d8c71eb463a?narHash=sha256-%2BXTFXYlFJBxohhMGLDpYdEnhUNdxN8dyTA8WAd%2Blh2A%3D' (2024-12-08)
• Updated input 'nixvim/home-manager':
    'github:nix-community/home-manager/c7ffc9727d115e433fd884a62dc164b587ff651d?narHash=sha256-zjO6m5BqxXIyjrnUziAzk4%2BT4VleqjstNudSqWcpsHI%3D' (2024-12-07)
  → 'github:nix-community/home-manager/1318c3f3b068cdcea922fa7c1a0a1f0c96c22f5f?narHash=sha256-Zb5ZCa7Xj%2B0gy5XVXINTSr71fCfAv%2BIKtmIXNrykT54%3D' (2024-12-11)
• Updated input 'nixvim/nuschtosSearch':
    'github:NuschtOS/search/68e9fad70d95d08156cf10a030bd39487bed8ffe?narHash=sha256-315rJ7O9cOllPDaFscnJhcMleORHbxon0Kq9LAKJ5p4%3D' (2024-12-05)
  → 'github:NuschtOS/search/3051be7f403bff1d1d380e4612f0c70675b44fc9?narHash=sha256-Y47y%2BLesOCkJaLvj%2BdI/Oa6FAKj/T9sKVKDXLNsViPw%3D' (2024-12-09)
• Updated input 'nixvim/treefmt-nix':
    'github:numtide/treefmt-nix/50862ba6a8a0255b87377b9d2d4565e96f29b410?narHash=sha256-qKL3vjO%2BIXFQ0nTinFDqNq/sbbnnS5bMI1y0xX215fU%3D' (2024-12-05)
  → 'github:numtide/treefmt-nix/0ce9d149d99bc383d1f2d85f31f6ebd146e46085?narHash=sha256-s4DalCDepD22jtKL5Nw6f4LP5UwoMcPzPZgHWjAfqbQ%3D' (2024-12-09)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/c6134b6fff6bda95a1ac872a2a9d5f32e3c37856?narHash=sha256-m6/qwJAJYcidGMEdLqjKzRIjapK4nUfMq7rDCTmZajc%3D' (2024-12-02)
  → 'github:Mic92/sops-nix/2d73fc6ac4eba4b9a83d3cb8275096fbb7ab4004?narHash=sha256-GZ4YtqkfyTjJFVCub5yAFWsHknG1nS/zfk7MuHht4Fs%3D' (2024-12-12)
2024-12-18 15:18:13 +01:00
26b92b38cb change flake input format 2024-12-08 23:02:16 +01:00
fe6df7942a Add hydraJobs to flake outputs 2024-12-08 22:32:35 +01:00
4eddc7fc67 Update flake 2024-12-08 22:32:13 +01:00
397b6bad7c v3ms: add mysql80 package 2024-12-02 10:43:07 +01:00
94bdd188d0 Update flake 2024-12-02 08:45:33 +01:00
6a047746c1 Yazi update shellAlias from ya to yy 2024-12-02 08:45:13 +01:00
1f3693359f Add config option to make terminal the default 2024-12-02 08:44:55 +01:00
ba70fd8553 Upgrade to nixos 24.11 2024-12-01 21:31:06 +01:00
bb48cf3ad0 update config of the builder module 2024-12-01 19:10:29 +01:00
84b1a60fea builder: try gpu computing but GPU doesnt support it 2024-12-01 19:02:57 +01:00
a38299888f pianonix: remove unneeded hardware config 2024-12-01 19:00:53 +01:00
425c8f8e4f Pianonix: fix screen going to sleep mode 2024-12-01 19:00:29 +01:00
b0acc7178d Setup VNC server on pianonix 2024-12-01 18:09:56 +01:00
4266574fa6 Add pob-dev-version package 2024-12-01 14:35:17 +01:00
6f595a97ec deploy-rs for builder: use remote building 2024-11-29 22:03:59 +01:00
d03b0e285c Make sops use disabled by default 2024-11-29 21:51:13 +01:00
65e4352f56 Rename nix-builder to builder 2024-11-29 21:44:13 +01:00
38cac91b71 Clean up builder config, add deploy-rs setup for builder 2024-11-29 21:34:50 +01:00
ede33b5207 Add docker-compose to development suite 2024-11-29 21:34:28 +01:00
ee90af96c3 Update flake 2024-11-29 21:34:16 +01:00
b422e9d092 aspi: a try to implement kerberos 2024-11-26 14:08:04 +01:00
94eebc86b9 aspi: add mdns (only listening) and disable manCache generation 2024-11-26 14:07:27 +01:00
e3e582543a Fix hyprshot-gui buildInput packages 2024-11-26 14:06:30 +01:00
c6f4f651e1 Add overlay for packages from flakes 2024-11-26 14:06:18 +01:00
e00ccffa99 Update syncthing mixos module 2024-11-26 14:06:06 +01:00
cc5545f7ad Add packages to development suite 2024-11-26 14:05:26 +01:00
4aacdc1ee4 Update sops config 2024-11-26 14:05:15 +01:00
6bfa5e0b73 Make pianonix work 2024-11-26 14:03:41 +01:00
b0a22014c3 Massive changes to pianonix 2024-11-24 08:33:31 +01:00
eb66634f44 Update flake 2024-11-24 07:37:56 +01:00
8e36dc50c7 Separate hm suites into separate files 2024-11-24 07:37:36 +01:00
b3e3352429 Update flake 2024-11-19 09:46:09 +01:00
c6510643c1 Fix home-manager direnv config 2024-11-13 14:35:02 +01:00
5d82010697 Add c++ lsp to emacs packages 2024-11-11 10:43:34 +01:00
e9f97ae91b Add typst to v3ms 2024-11-11 10:38:11 +01:00
65fbce48d4 Add devcontainer to programs 2024-10-29 09:30:54 +01:00
bf231396ff Remove commented out code 2024-10-27 11:48:45 +01:00
16f2344aa0 Update flake and config syntax 2024-10-27 11:48:25 +01:00
7718fb4118 Switch to using nixvim and setup full config 2024-10-26 13:44:29 +02:00
63a548d6b9 Add nix lsp 2024-10-24 08:22:46 +02:00
dd1b0aae5a Enable fonts module on aspi and kardorf 2024-10-15 21:28:01 +02:00
bb7b0f36c3 Uninstall geogebra to fix "icon not found" 2024-10-12 13:30:29 +02:00
dfba89af68 Fix kardorf boot config 2024-10-12 13:30:29 +02:00
7298c76c48 Update flake 2024-10-12 13:30:29 +02:00
23f51db3a5 Outsource aspi and kardorf hm-configs to modules 2024-10-09 16:10:19 +02:00
6894cd7539 Fix config bugs 2024-10-09 15:33:06 +02:00
d5ca488864 Make redshift nixos module 2024-10-09 15:28:41 +02:00
9dfe8aa9f2 Move common aspi and kardorf nixos-config to modules 2024-10-09 15:22:18 +02:00
c4454d7711 Use unstable path-of-building 2024-10-08 11:54:49 +02:00
57e17face2 i3: Assign nheko to ws9 2024-10-08 11:54:37 +02:00
d683f1f574 Go back to stable nixpkgs and i3
I hereby declare bancruptcy :(
2024-10-06 18:24:16 +02:00
2572513c44 Do not configure neovim via nix, use lazyvim instead 2024-10-06 17:55:21 +02:00
3baf2453f2 Add conda-direnv package 2024-10-06 17:54:46 +02:00
8457523518 Update config to use updated variable names 2024-10-06 17:10:48 +02:00
84420e427e Use LATEST hyprland 2024-10-06 17:10:32 +02:00
9bc392818f Use kitty instead of wezterm 2024-10-06 14:44:28 +02:00
0ee158677a Remove hardcoded "hyprland" from tuigreet 2024-10-06 14:21:17 +02:00
1fe8d17523 Remove prism 2024-10-06 14:14:49 +02:00
5500164669 Reformat emacs config 2024-10-06 14:14:23 +02:00
f07ab92268 Living on nixpkgs unstable now 2024-10-06 14:13:12 +02:00
f19ce21672 waybar: improve color of active workspace 2024-10-06 08:05:27 +02:00
5d5096f452 Delet unused style files 2024-10-06 08:05:12 +02:00
2f14aa1e9b Add mimeapps management file but not use it 2024-10-05 23:31:28 +02:00
42b5dfeee7 improve sessionVariable declaration
Without this, on wayland I cannot access these vars from the Terminal
2024-10-05 22:03:36 +02:00
7f73da037b Delete unused greetd module 2024-10-05 21:56:16 +02:00
f05eae5b83 Clean up gdm config and disable gdm 2024-10-05 21:56:06 +02:00
739901d174 Add tuigreet module 2024-10-05 21:55:29 +02:00
7b4d461ba1 wayland: use hyprshot-gui instead of grimblast 2024-10-05 21:54:33 +02:00
e55af69ed3 Make hyprland look nicer 2024-10-05 19:04:44 +02:00
ac7e7a16d8 Create lntocp script, install watchexec 2024-10-05 18:36:10 +02:00
a79c1a9af8 Make waybar look nice 2024-10-05 18:36:10 +02:00
63dc618f6d mako: fix default notification timeout 2024-10-05 18:36:10 +02:00
7d10c8e7d2 Make new nixos i3 config file 2024-10-05 18:36:10 +02:00
7254e9a6e2 Increase boot configuration limit 2024-10-05 18:36:10 +02:00
ae0f6ec0ef Make wezterm work on hyprland 2024-10-05 18:36:10 +02:00
f1be4c1fc5 Switch to hyprland 2024-10-05 18:36:10 +02:00
37421bcc12 Update flake 2024-10-05 18:36:10 +02:00
e3eaebf08d Move x11 config into separate file 2024-10-05 18:36:10 +02:00
ce68c8c03e v3ms: removing syncthing
systemd not supported on wsl
2024-09-27 11:32:24 +02:00
75180f3073 aspi: remove wine 2024-09-27 08:32:29 +02:00
02286ffd55 Update flake 2024-09-27 08:30:52 +02:00
20315c425a v3ms: add syncthing 2024-09-27 08:30:32 +02:00
3a72c32e89 Update flake 2024-09-25 08:35:02 +02:00
964b03fedc Make wezterm start in cwd 2024-09-25 08:34:49 +02:00
3ac5c39f8f aspi: use wezterm instead of kitty 2024-09-22 19:34:37 +02:00
a9f322d48c Move yazi alias to yazi config file 2024-09-15 18:47:00 +02:00
7bd942e753 Use unstable path-of-building 2024-09-09 18:16:23 +02:00
6a70e105d4 topgrade: update home-manager using flake file 2024-09-08 21:57:51 +02:00
f123ef3bbf Update flake 2024-09-08 21:57:28 +02:00
f0e000795b First setup of v3ms config 2024-09-04 15:43:05 +02:00
c70c32150e Add doom git repo to topgrade config 2024-09-01 20:09:07 +02:00
38c60612fd Again fix audio on aspi. Now really working 2024-09-01 19:59:41 +02:00
ce336d469a Finally truly fix audio on aspi 2024-09-01 12:00:42 +02:00
12ef77dc6c Update flake, remove unnecessary inputs 2024-09-01 11:29:41 +02:00
bafaac437d update flake 2024-08-01 08:46:52 +02:00
71f618dd67 aspi: fix soundcard not detected 2024-08-01 08:46:43 +02:00
068d0ef29f Update flake 2024-07-22 19:36:15 +02:00
55a99ee8f0 aspi: remove rustdesk since git repo not found 2024-07-22 19:29:54 +02:00
52d18a279d Install texlive needed for inkscape 2024-07-22 19:23:48 +02:00
e07603e127 Update flake 2024-07-21 09:12:13 +02:00
5e3a0f0908 Kardorf: make use of new modules 2024-07-21 09:11:44 +02:00
80bdd2314a Change "g" alias to use lazygit 2024-07-05 09:37:32 +02:00
fa093e644e Update flake 2024-07-05 09:25:49 +02:00
3189483bd2 Finally disable bell sound 2024-07-03 13:27:43 +02:00
0478dae702 Update flake 2024-07-03 13:11:27 +02:00
68d875dec7 Fix imagemagick with pdf 2024-07-03 13:11:19 +02:00
18176bf959 Change from thunar to pcmanfm
thunar failed to find default applications and also default terminal to
open was dependend on xfce settings
2024-07-03 13:10:35 +02:00
740f7a5ca5 Fix typo and disable bell sound 2024-06-28 08:44:21 +02:00
5f0e729d9f Add pkg-config package to aspi 2024-06-28 08:41:49 +02:00
d14ba88542 Enable building for aarch64-linux 2024-06-28 08:41:38 +02:00
a4ef9a9c63 Add syncthing tray 2024-06-28 08:41:30 +02:00
0af98663f7 Fix syncthing 2024-06-26 13:26:15 +02:00
c050f62249 Remove unneded shell aliases 2024-06-26 12:04:58 +02:00
6f0cf875d6 i3: add pulseaudio package as requirement and fix default terminal 2024-06-26 12:03:51 +02:00
cb032a9862 Add nh shell aliases 2024-06-26 12:03:38 +02:00
80209213a6 Install kitty and yazi 2024-06-26 12:03:20 +02:00
15ea2fa7fe Remove unneeded packages 2024-06-24 18:49:39 +02:00
6211e1dd0d Disable laptop "beep" via kernel module 2024-06-24 18:49:23 +02:00
fa882cb478 Add xwacomcalibrate as package 2024-06-24 18:49:13 +02:00
fd1f22302f Fix nixos warnings after update 2024-06-23 14:35:19 +02:00
d3d1dd5cce Modify topgrade to work on nixos with flakes 2024-06-23 14:30:46 +02:00
a314cd3734 Remove redundant rust installation 2024-06-23 14:30:12 +02:00
795e33d49b Update flake.lock 2024-06-23 14:30:03 +02:00
10fb2838af Remove jitsi-meet since browser version works better 2024-06-22 11:08:05 +02:00
30c88f50af Enable libinput for touchpad middle click emulation 2024-06-22 11:01:15 +02:00
b0d9425f78 Install jitsi 2024-06-22 11:01:03 +02:00
d38fc83a19 Disable dpms 2024-06-20 22:56:19 +02:00
6195e6e540 Install chromium with tampermonkey 2024-06-20 20:47:46 +02:00
d2e49a578a Make syncthing work 2024-06-20 20:30:02 +02:00
8cee271d91 Improve / fix screen lock and brightness buttons 2024-06-19 23:42:33 +02:00
05e71d800d let hm manage xsession to make .profile unnecessary 2024-06-19 21:11:40 +02:00
294e40987c Re-migrate to i3 (x11) 2024-06-19 11:44:36 +02:00
98ac550582 Add some packages 2024-06-19 10:53:53 +02:00
c84146f761 Put functionalities into modules 2024-06-19 10:53:36 +02:00
8f5e73e7f6 Move syncthing config to home manager 2024-06-17 22:15:05 +02:00
cec09d6e0f Remove unneeded hyprland desktop-portal 2024-06-17 21:26:11 +02:00
6ca47776b1 Make tray menu look nice (accessible) 2024-06-17 21:03:10 +02:00
d28f12650d Fix thunar installation, some config cleanup 2024-06-17 21:02:55 +02:00
9d2560c065 Rescale waybar 2024-06-15 23:44:10 +02:00
9166cb844c hyprland: make matlab not floating 2024-06-15 21:47:08 +02:00
4517da8b3d Install wl-clipboard as system package 2024-06-15 21:46:47 +02:00
3daef8835f Mako add message timeout 2024-06-15 20:57:42 +02:00
4756b614db Add hyprbars to hyprland 2024-06-15 20:57:34 +02:00
971125f434 More hyprland optimizations 2024-06-15 20:06:48 +02:00
5233a7960b Fix typo in mako config 2024-06-15 19:34:40 +02:00
0197faa345 Reformat emacs config 2024-06-15 19:33:19 +02:00
5839002d3c hyprland config clean up 2024-06-15 19:32:59 +02:00
ea305e701c implement mako via home manager service 2024-06-15 19:32:38 +02:00
43cabd5a62 Change TERMINAL var to be available also to emacs 2024-06-15 19:32:15 +02:00
b499c581d0 Add expenses-tracker script 2024-06-15 18:48:34 +02:00
5fd792084c Revert wlogout styling and config to default 2024-06-15 14:27:57 +02:00
6b305a59d7 Merge branch 'my-base' 2024-06-15 14:23:53 +02:00
d2a8129a20 Revert "Add all of iogamaster modules"
This reverts commit fa99b32cad.
2024-06-15 14:23:44 +02:00
8134c4bcc3 Wofi: also show run 2024-06-15 14:20:17 +02:00
83385a638f Modify waybar 2024-06-15 13:54:37 +02:00
baf240c27d Switch from gtklock to hyprlock 2024-06-15 12:43:34 +02:00
a9d0e298b3 Port iogamasters hyprland config 2024-06-15 12:17:52 +02:00
fa99b32cad Add all of iogamaster modules 2024-06-15 10:02:14 +02:00
c97f22254a Add flake inputs used by iogamaster 2024-06-15 08:27:28 +02:00
ecc269ae37 Fix config problems mainly with pianonix 2024-06-15 08:27:10 +02:00
603d84c03b Change open-messaging order 2024-06-14 09:47:35 +02:00
e974145390 Add media keys to hyprland 2024-06-14 09:46:12 +02:00
e19a2e81cd FINALLY FIX GPARTED 2024-06-14 09:46:01 +02:00
98644d2e2f Fix and augment hyprland compositor commands 2024-06-14 00:01:51 +02:00
e4d776c921 waybar: allow volume to go to 200% 2024-06-13 23:47:43 +02:00
0d22026d81 Add gammastep, make waybar acceptable 2024-06-13 23:43:13 +02:00
c3f9cf2e5e install qtwayland 2024-06-13 22:25:01 +02:00
c45d7b19f8 add hypridle 2024-06-13 22:24:53 +02:00
60dae66fd1 Configure hyprlock, work on waybar 2024-06-13 22:08:05 +02:00
49cfa7c50d Try fix keyring, add matlab opening scripts 2024-06-13 16:51:32 +02:00
084100c557 More hyprland setup, add waybar 2024-06-13 16:30:12 +02:00
a0fe904d6c Setup first working hyprland setup 2024-06-13 14:06:21 +02:00
2ab74d5f7a aspi: fix keyring, make wg-quick start on boot 2024-06-12 23:41:28 +02:00
3d59481c9d Deactivate sops to make aspi installation work 2024-06-12 22:49:51 +02:00
a6043713c9 aspi: add more packages to make nixos installation work 2024-06-12 22:47:58 +02:00
692c22d94c aspi hardware-config: add luks config 2024-06-12 20:48:52 +02:00
6ced2ac625 Added hardware config of aspi 2024-06-12 20:34:49 +02:00
576c76f158 Use nheko instead of element 2024-06-12 19:50:14 +02:00
ff40093b83 Add aspi system, use sops 2024-06-12 19:29:50 +02:00
061f196afc Add install script from iogamaster 2024-06-09 21:09:19 +02:00
9dc0377a77 more improvements 2024-06-09 09:42:08 +02:00
35e84fade2 Add more scripts, more cleanup 2024-06-09 09:33:23 +02:00
4e8291bb14 Add pianonix, create modules and augment others 2024-06-09 08:43:32 +02:00
8ef5530145 make element default messenger in scripts 2024-06-06 14:55:41 +02:00
9f081ee5ed Update option namings after nix update 2024-06-06 11:23:29 +02:00
f8da075e2f Switch from schildi to element 2024-06-06 11:20:01 +02:00
24b079937c kardorf: fix i3 config file path option 2024-06-06 11:17:43 +02:00
bed82ccb1e Adapt fzf-z to allow comma values returned from z 2024-06-04 20:04:43 +02:00
aa6f69881d Fix topgrade and nixfmt after nix update 2024-06-04 19:09:05 +02:00
d6012dd334 update to nios-24.05 2024-06-04 18:46:46 +02:00
eec0966902 update deploy-to-pianopi to accept new flake outputs 2024-05-29 10:18:05 +02:00
e9639a9b98 nix-builder add ollama 2024-05-29 10:17:53 +02:00
645f206821 i3: remove zoom workspace assignment 2024-05-29 10:17:39 +02:00
370ebe95a8 Make rust use unstable, format code 2024-05-29 10:17:18 +02:00
a64c867c98 i3: remove rocket chat from messaging setup 2024-05-25 14:09:37 +02:00
57e5efe554 aspi: Add nix helper (nh) 2024-04-18 08:58:02 +02:00
cdfafa6a3b Update flake inputs 2024-04-18 08:57:51 +02:00
8df932f60a Improve readme 2024-04-17 08:25:42 +02:00
5db8dc4373 Add miniconda to path 2024-04-17 08:22:08 +02:00
7a22b9daca Update flake 2024-04-17 08:21:59 +02:00
49838d3808 Add unstable overlay 2024-04-17 08:21:53 +02:00
1ffd0463bd Fix fzf-z result order (invert) 2024-04-11 07:36:46 +02:00
7e0986f5d3 edit-config allow calling without params 2024-04-09 11:37:44 +02:00
37c1c7a841 Improve/fix installDoomEmacs activation script 2024-04-09 11:31:07 +02:00
c8861a613b aspi: use fish instead of zsh 2024-04-09 11:30:53 +02:00
e9f2fcc3bf update flake.lock 2024-04-09 09:58:46 +02:00
4981aef6c9 Fix home-manager on kardorf 2024-03-21 12:11:37 +01:00
05fdf2ca38 Add config for nix-builder 2024-03-21 12:11:23 +01:00
8af2406e51 Fix direnv not available 2024-03-19 11:27:46 +01:00
3af3ced9f5 emacs: move config to separate git repo 2024-03-19 11:05:09 +01:00
915a821e12 fish: fix last-working-dir function 2024-03-19 09:09:11 +01:00
b35c87b4d6 Migrate from zsh to fish 2024-03-18 17:04:37 +01:00
fdd53faa62 kardorf: more migration from nixos to home-manager 2024-03-18 15:09:36 +01:00
4f0fe50d0a kardorf: Add nix-ld 2024-03-18 12:17:46 +01:00
341d1cbb4b Fully migrate kardorf config 2024-03-18 12:15:32 +01:00
aaa2f73332 doom: add languagetool 2024-03-15 08:59:28 +01:00
cf2f13f629 Update flake at home-manager generation 185 2024-03-15 08:57:16 +01:00
2a4571a752 Update flake at home-manager generation 174 2024-03-11 18:19:48 +01:00
84680a5793 Make home-update-flake a script in scripts git 2024-03-06 15:41:18 +01:00
5d8219dba1 Update flake at home-manager generation 174 2024-03-06 15:40:56 +01:00
87a5774ce6 alias fzf-z to 'c' (short for 'cd') 2024-03-04 18:24:53 +01:00
6d59bf0b43 Remove ctrl-z keybinding for alacritty 2024-03-04 18:22:16 +01:00
451176350f update flake 2024-03-04 18:22:01 +01:00
e5ed273561 topgrade: Add script to update flake and continue on failed step 2024-02-29 10:31:28 +01:00
a565b20c30 Update flake at home-manager generation 165 2024-02-29 10:24:11 +01:00
cdd1f3240c doom: use default display time format again 2024-02-27 16:30:05 +01:00
5e0ff7ffa7 zsh: add function as nix run alias 2024-02-08 20:08:42 +01:00
e39c13f9f8 laptop: use remote builder for aarch64 as well 2024-02-04 08:32:14 +01:00
d3eb1420c1 emacs: use company quick help 2024-02-04 08:32:00 +01:00
8f1e166f88 topgrade: use pre_sudo and assume_yes 2024-02-04 08:31:31 +01:00
1627cc51b6 Add edit-config script to quickly edit dotfiles 2024-02-04 08:31:16 +01:00
f35b2e8304 Fix pianopi deploy script 2024-02-01 22:36:13 +01:00
820574addf Fix namespace misspelling 2024-02-01 20:45:12 +01:00
0e205a96d9 add nixpkgs override to allow unfree packages 2024-02-01 20:20:58 +01:00
7b32822a32 add default snowflake lib and shell as example 2024-02-01 20:20:42 +01:00
fb79b29fa2 add deploy-to-pianopi script as snowfall package 2024-02-01 20:20:01 +01:00
d50f957b2e fix open-messagin script 2024-02-01 16:55:54 +01:00
5de7265797 explain home-manager config selection (hostname) 2024-02-01 14:12:54 +01:00
13db191cc6 fix rofi not showing on i3 2024-02-01 13:48:05 +01:00
d2ee41eace Move i3 to home-manager 2024-02-01 13:35:23 +01:00
1f818e291e Delete unused emacs, i3blocks and zsh config 2024-02-01 13:28:46 +01:00
607ac75200 Move i3 config to home module folder 2024-02-01 13:28:29 +01:00
0cf00f5fbf Move rofi and emacs to home config 2024-02-01 13:27:30 +01:00
b04a523645 make module imports like recommended by snowfall 2024-02-01 12:52:59 +01:00
5455cdc00e move module template to modules directory 2024-02-01 12:48:27 +01:00
293e76e8cc Deleted configs already migrated to nix 2024-02-01 12:45:48 +01:00
5a870ff3d6 delete unused leftwm and xmonad configs 2024-02-01 12:44:36 +01:00
67d23bcd9e major restructuring for using snowfall 2024-02-01 12:43:47 +01:00
d8e53f1f78 use snowfall 2024-02-01 12:28:31 +01:00
c2e80ffddd zsh: improve config to make it more oh-my-zsh like 2024-01-31 11:57:54 +01:00
eb8601d2ac fix .profile being linked twice 2024-01-30 19:31:32 +01:00
9a446de39e Merge remote-tracking branch 'origin/master' 2024-01-30 19:30:48 +01:00
a0b76af476 home: start migrating i3 configs - not finished 2024-01-30 19:30:31 +01:00
fe6a8acb12 home: start migrating i3 configs - not finished 2024-01-30 19:29:47 +01:00
fd6cd027fc home: automatically find and all all module files 2024-01-30 10:21:12 +01:00
900d07ae77 move alacritty to separate home module 2024-01-30 09:33:43 +01:00
30948764c6 move neovim to separate module 2024-01-30 09:27:02 +01:00
34ea520910 vim: make neovim use system clipboard 2024-01-30 09:24:21 +01:00
23f1283399 zsh: fix weird Alt+direction alacritty behaviour 2024-01-30 09:20:48 +01:00
6b823a06eb home: add topgrade module 2024-01-29 08:05:33 +01:00
29d6b63382 home: move zsh and direnv to new modules 2024-01-28 12:33:14 +01:00
60ccfeaf39 Migrate zsh and starship configs to home-manager 2024-01-28 02:51:28 +01:00
8dbb044f0b emacs: do not use childframe anymore
When mouse accidentally hovered above I always lost keyboard focus of
the childframe
2024-01-27 11:08:46 +01:00
39a25de657 emacs: remove dart lsp since its unnecessary 2024-01-27 11:07:22 +01:00
eafd193306 Migrate nvim from dotter to home-manager 2024-01-27 10:59:10 +01:00
ec6be592cb Migrate alacritty conf from dotter to home-manager 2024-01-26 13:33:38 +01:00
bb4a758182 home: move flake to root of directory
Reason is that I cannot reference any file (also in home.file) which is
located above (../) the flake file
2024-01-26 13:29:50 +01:00
e4d5b6854c home: move laptop nix config to dotfiles 2024-01-26 12:54:10 +01:00
ffc6c8fa45 home: clean up config 2024-01-26 12:37:18 +01:00
15a27c4607 home: clean up flake 2024-01-26 12:34:39 +01:00
548b1ac34f Add home-manager config from laptop 2024-01-26 12:33:59 +01:00
1b05d9051b alacritty: change config to toml and shorten it 2024-01-26 11:39:24 +01:00
6b9801b7f2 doom: Clean up config 2024-01-26 11:38:00 +01:00
77fee14469 doom: move config to .el format 2024-01-26 10:20:51 +01:00
10524de915 doom: add projectile repeat shortcut (f5) 2024-01-16 22:44:02 +01:00
619d3f9a45 Implement distributed builder 2024-01-06 22:51:49 +01:00
b49b6263d3 doom: make C-S shortcut again escape from insert mode 2023-12-13 16:01:18 +01:00
7b4ddfe7e5 doom: change date formatting to german 2023-12-11 19:56:48 +01:00
4cc2834027 Fix autoformat in org mode opening dialogue
Now every saving by default formats the buffer, only using :w skips that
2023-12-03 19:55:06 +01:00
f47ecce302 nix: Update 2023-10-29 22:11:18 +01:00
ee0b3cd654 i3: Move laptop tray outpt 2023-10-19 16:01:05 +02:00
18bd2e4d1d nix: add more programs 2023-10-09 16:22:32 +02:00
8e8e400eb8 nix: add programs 2023-10-02 12:44:54 +02:00
0650ab3e9c nix: update 2023-10-02 12:26:29 +02:00
c3f69e0b0c doom: add direnv, fix format on save 2023-10-02 12:26:09 +02:00
64cf4835cf nix: use dark gtk theme 2023-09-21 11:24:32 +02:00
37b5eafb42 nix: use unstable and add home-manager 2023-09-21 11:10:43 +02:00
627b92a611 nix: add gimp and update 2023-09-21 08:40:17 +02:00
1fe29f7da0 emacs: improve format on save function 2023-09-17 19:32:59 +02:00
c21d249e75 nix: update and add packages 2023-09-17 19:22:09 +02:00
3e1a18e2e1 Change displays 2023-09-13 15:30:12 +02:00
d399e8e64e nix: add imagemagick 2023-09-06 09:53:36 +02:00
72d15c0c34 nix: update and add packages 2023-09-04 00:17:28 +02:00
a13984babc nix: add swapfile 2023-08-31 10:15:26 +02:00
8c800ed66e Setup nix on new SSD 2023-08-31 09:36:57 +02:00
90a6060978 nix: add matlab 2023-08-28 09:28:20 +02:00
76c4c3acc5 nix: add okular pdf viewer 2023-08-27 19:13:57 +02:00
c9713e83b9 Add better languagetool implementation to emacs 2023-08-27 18:27:57 +02:00
3ae6dac93b home pc setup 2023-08-27 15:28:33 +02:00
86d4757595 Tried grammarly and ltex 2023-08-27 15:24:11 +02:00
b21b5fa4c0 nix: add redshift 2023-07-29 06:28:59 +02:00
12e54f5cfc nix: mor changes to adapt to laptop 2023-07-28 09:00:21 +02:00
fce2e066b0 i3: assign zotero to ws8 2023-07-28 07:54:40 +02:00
79aa2a06cd nix: install zotero 2023-07-28 07:19:32 +02:00
83bf3f21d5 nix: setup syncthing, adapt open-messaging script 2023-07-28 06:52:36 +02:00
1e1fa989d9 nix: update 2023-07-28 06:23:15 +02:00
b92f37ae77 Fix changed name of pamac-manager class 2023-07-16 15:28:56 +02:00
ea9563282f emacs: improve latex and pomodoro 2023-07-14 11:10:02 +02:00
8d643901cd i3: improve keybindings 2023-07-08 20:37:02 +02:00
bd390aac46 Add nix packages to desktop files 2023-07-03 06:33:53 +02:00
96b24c071e i3: make gcolor3 floating by default 2023-06-29 18:30:39 +02:00
7c63a2c148 emacs: improve org note handline 2023-06-27 10:31:16 +02:00
b6c9946cd9 emacs: customize org clocking 2023-06-22 09:36:19 +02:00
69e5d4f1cd add acer-battery-health-mode script 2023-06-20 22:27:35 +02:00
839f24113a emacs: do not show non clocked files in org agenda clockreport 2023-06-20 10:51:42 +02:00
b44f8f0117 nix: update and enable xfce 2023-06-18 11:18:15 +02:00
8583a4c187 vim: Yank always to clipboard 2023-06-15 17:08:42 +02:00
391948eb27 i3: use redshift, clipit and schildichat from flatpak 2023-06-15 17:08:16 +02:00
2f0fa12da4 nix: update and add wolfi user 2023-06-11 10:18:23 +02:00
df3bbbd763 emacs: make winum selection easier with better shortcuts 2023-05-31 21:20:14 +02:00
847d14aa33 emacs: add popup toggle shortcut 2023-05-31 20:11:23 +02:00
01f07fbe03 i3: show battery percentage if not charging 2023-05-25 13:09:00 +02:00
18c9babaef emacs: save buffer on clocking and add bachelor capture template 2023-05-25 13:07:08 +02:00
de79477a1f emacs: open pdfs in external reader, disable writegood mode 2023-05-22 10:33:13 +02:00
185e20fe1a emacs: clean up config 2023-05-11 14:44:03 +02:00
e13f9ec3a3 i3: disable emacs as daemon 2023-05-11 14:16:45 +02:00
b29168f894 i3: run emacs as daemon 2023-05-11 13:52:55 +02:00
9e2aa4d2e9 emacs: include eshell, vterm and python notebook support 2023-05-09 12:10:13 +02:00
e0e6a5d6e0 i3: use xfce4-clipman as clipboard manager 2023-05-09 12:09:39 +02:00
ba6866c509 emacs: Adapt org capture templates 2023-04-26 21:14:22 +02:00
589320a4bb i3: change open-messaging script to also open rocketchat 2023-04-26 09:03:22 +02:00
689cfdfcf6 emacs: change bibliography file path 2023-04-26 09:02:01 +02:00
ddf87f226f laptop: fixes for compability with kardorf 2023-04-16 20:02:35 +02:00
b9ea4521d1 i3: fix i3status-rust config file 2023-04-14 14:22:31 +02:00
fcdcd439ac i3: fix i3status-rust config file 2023-04-14 13:54:42 +02:00
e3b1ee2b2f nix: add flake result to gitignore 2023-04-14 13:52:02 +02:00
b41adf3d55 nix: add printing, browsers, update 2023-04-14 13:51:15 +02:00
c72a434f70 nix: add packages 2023-03-28 14:21:27 +02:00
05fee51dc8 emacs: Add inventory functions 2023-03-28 14:21:15 +02:00
d78b2785fe i3: Fix battery element on status-bar for laptop 2023-03-27 09:58:47 +02:00
b10652b0bb nix: start keyring as service to fix issues, add packages 2023-03-23 14:41:25 +01:00
18b670ceec nix: switching to using flakes 2023-03-17 11:07:39 +01:00
7b9b3b2b07 nix: Add flatpak and more packages 2023-03-17 08:50:48 +01:00
6d9b3beddb nix: add unstable channel, adapt packages to i3 changes 2023-03-13 14:36:07 +01:00
80eeb563e7 i3: remove dunst, replace i3-scrot with xfce4-screenshooter 2023-03-13 14:35:24 +01:00
5f0a4ebbfd fixes for laptop 2023-03-13 13:32:58 +01:00
b6cfc8eae5 Add nix configuration 2023-03-13 11:14:03 +01:00
333e168b77 i3: Fix bar font size 2023-03-12 07:41:36 +01:00
3de3873429 move kardorf local.toml to local.kardorf.toml
Just symlink local.kardorf.toml -> local.toml
2023-03-11 14:45:18 +01:00
2b38523557 i3: adapt config to nix 2023-03-11 14:45:07 +01:00
5bc28cd188 add direnv 2023-03-11 14:18:22 +01:00
4254221f77 vim: comment plugin usage since none are used 2023-03-11 14:09:19 +01:00
ddfc7d754a i3: remove i3exit dependency 2023-03-11 14:08:53 +01:00
af72939279 move $PATH to ~/.profile so i3 can access it 2023-03-11 14:07:43 +01:00
16ba012e57 emacs: add nix 2023-03-11 14:06:46 +01:00
7490c37673 kardorf: fix path to screenlayout script 2023-03-07 10:51:07 +01:00
fb4d9f23d1 Fix Readme 2023-03-03 10:43:27 +01:00
2e8f1d5b0e Clean up Readme, remove dependencies file 2023-03-03 10:41:40 +01:00
38cac7bde5 zsh: add notify wrapper 2023-03-03 10:41:30 +01:00
2636700acc i3: move tray-output to dotter 2023-03-02 15:49:49 +01:00
7db1657bd5 Remove .dotter/local.toml from git 2023-03-02 15:38:20 +01:00
6d7c6ce9cf i3: move screenlayout script config to dotter 2023-03-02 15:37:30 +01:00
c38d40ab46 Make status bar show free space on home directory 2023-03-02 15:27:47 +01:00
49f0784271 Use ~ instead of /home/julian 2023-03-02 15:26:48 +01:00
eb3f6e25e6 i3: clean up config file 2023-03-02 15:23:00 +01:00
c3d91c35bf i3: fix config indentations, increase status bar font size 2023-03-02 15:12:20 +01:00
7f910fd34d i3status-rust do not show battery if none exists 2023-03-02 15:03:35 +01:00
7dd027742c Remove wrong directory emacs/.config 2023-03-02 14:49:53 +01:00
8c96767b37 Make i3 monitor config handled by dotter
This will make it possible to merge all branches and only use master,
then let dotter handle different devices
2023-03-02 14:40:02 +01:00
b7e8ecbb54 i3: fix monitors for kardorf setup 2023-02-26 23:54:42 +01:00
70f2e1cc89 Merge branch 'master' into aspi 2023-02-26 23:44:22 +01:00
3156cd24b8 Merge branch 'kardorf' into aspi 2023-02-26 23:43:04 +01:00
0153287b81 add flutter 2023-02-24 12:46:34 +01:00
3095fe05b2 rofi: change terminal to alacritty 2023-01-31 19:48:57 +01:00
06293fe85e emacs: org roam customizations 2023-01-31 19:48:41 +01:00
74ddb685f1 emacs, zsh: Add go, add python2latex to emacs 2023-01-23 19:50:37 +01:00
68b132db6b i3: add sound popup script 2023-01-15 19:06:50 +01:00
cb2292bc41 zsh: make nvim the default editor 2022-11-30 17:09:30 +01:00
e31cf198e2 emacs: add rss, bibtex etc 2022-11-30 17:09:13 +01:00
aad8888eab emacs: add julia, spell checking, adapt latex 2022-11-17 15:25:23 +01:00
32eb67ed95 i3: add scripts for display management 2022-11-17 15:24:31 +01:00
87f267e55d i3: add open-messaging script 2022-10-27 20:06:04 +02:00
e1c834734d i3: update jupyter-calculator script 2022-10-27 20:05:48 +02:00
3e9e99c24a emacs: add grammar checking 2022-10-26 10:01:08 +02:00
abce1aa5ed emacs: try adding matlab support, setup for laptop 2022-10-25 15:30:07 +02:00
7355310b53 i3: setup for laptop 2022-10-25 15:29:38 +02:00
23a2993e84 emacs: add grammar checking 2022-10-11 14:22:59 +02:00
f037ec1f12 i3: start nextcloud 2022-10-03 10:37:45 +02:00
0ef45e30ff emacs: add org files 2022-10-03 10:37:25 +02:00
c997a50f27 emacs: Adapt navigation in latex mode 2022-09-27 11:48:18 +02:00
ea3cfcadde emacs: Adapt navigation in latex mode 2022-09-27 11:32:20 +02:00
a03e06f132 Many adaptations for aspi 2022-09-27 11:29:25 +02:00
dc8cb52396 Many changes after Aurora migration 2022-09-15 22:55:03 +02:00
244aaec67b Merge branch 'aurora' into kardorf 2022-09-12 09:37:03 +02:00
2088aecfb6 Changed to new monitor setup 2022-09-12 09:05:15 +02:00
27c22d988b emacs: add docsets for haskell 2022-09-03 16:37:56 +02:00
1b1d607430 Edit lwd script to echo lwd for use in shell commands 2022-08-31 17:10:08 +02:00
acbead5efb Add script and alacritty keybinding for z with fzf 2022-08-31 17:09:40 +02:00
98d9b71d50 fix .gitmodules file 2022-08-24 17:23:23 +02:00
a2841e1ca8 leftwm: add theme as submodule 2022-08-24 17:19:03 +02:00
d198b662b0 Add zsh custom plugins 2022-08-24 16:39:59 +02:00
7e37870ce6 vim: add autoformat plugin 2022-08-24 16:23:55 +02:00
51985d6a7c emacs: clean up doom config 2022-08-24 16:23:15 +02:00
08252a504e zsh: Clean up, add plugins and functions 2022-08-24 16:22:29 +02:00
0d9a76a12f Added xmonad and leftwm configs 2022-06-17 10:25:17 +00:00
cf9c145628 polybar: Added polybar 2022-06-17 10:24:45 +00:00
5b0960b26b i3: use dynamic layouts with i3-layouts 2022-06-17 10:24:19 +00:00
5377574b86 doom: updated init.el 2022-06-17 10:23:26 +00:00
1487887f74 zsh: finished setting up path and plugins 2022-06-02 15:47:04 +00:00
cce626d687 shell: added zsh and starship 2022-06-02 15:13:42 +00:00
34046aae4b i3: tried running rofi on mod key 2022-05-22 14:50:07 -04:00
934b19045a emacs: changed spacemacs config 2022-05-22 14:49:37 -04:00
a502df7f11 nvim: not using plugins anymore; separated vim and nvim config 2022-05-22 14:49:11 -04:00
efa2f54c74 emacs: changed doom config to literate format 2022-05-22 14:48:06 -04:00
fb79782dad alacritty: added config 2022-03-08 22:45:50 -04:00
04e1bb1a7b Removed test lines from readme 2022-03-08 21:27:22 -04:00
7024c07a32 emacs: added chemacs and spacemacs configs 2022-03-08 21:25:21 -04:00
4749d2cefc Now using dotter 2022-03-03 12:10:19 -04:00
f694963376 i3: some more changes 2022-03-03 11:23:08 -04:00
f3fe0a4b81 emacs: many changes 2022-03-03 11:22:40 -04:00
17b80372c8 doom: evil-snipe remapping, rust-setup, company-quickhelp 2021-11-23 16:23:46 +00:00
215c2a1f63 emacs: add next error shortcut, fix flutter 2021-09-27 15:12:06 +02:00
d699cfffdd i3: Use xfce4-notifyd because I could not disable dunst for other users 2021-09-13 10:56:23 +02:00
cec1881959 i3: change i3lock color, add background image 2021-09-11 14:22:10 +02:00
640eca56f4 emacs: Tried python settings 2021-09-10 19:21:21 +02:00
99c3e52230 vim: add vimrc 2021-09-09 15:43:36 +02:00
b044299ff6 manjaro: added custom localization 2021-09-09 15:24:48 +02:00
cf62007567 i3: Changed setupZoom 2021-09-09 12:17:08 +02:00
acf76d08b6 i3: Changed setupZoom 2021-09-09 12:16:25 +02:00
3324a9576e doom: dont use unnecessary packets 2021-09-09 11:58:20 +02:00
7dd21761f6 i3: Changes for aurora 2021-09-09 11:27:01 +02:00
a79ee805eb i3: fixed dependencies and rofi config 2021-09-09 11:25:26 +02:00
0a6f669cc1 emacs: Added docker and yaml 2021-08-03 11:40:29 +02:00
04d58b444b i3: Changed setupZoom 2021-07-30 09:48:54 +02:00
98304c3bd0 emacs: add python lsp 2021-07-28 16:30:34 +02:00
d5a7f1af1e fish: Added fish 2021-07-25 15:19:57 +02:00
c65dd396f5 i3: Changed chat workspace layout 2021-07-25 14:58:51 +02:00
f15ebadbe1 i3: Cleaned up i3blocks scripts 2021-07-25 14:48:40 +02:00
7258c0a3bc i3: Modified dunst to use different Mouse bindings 2021-07-25 14:48:40 +02:00
da2eb621b0 i3: Added dunst to i3blocks 2021-07-25 14:48:40 +02:00
543e897a0f i3: Fixed signal to volume i3blocklet 2021-07-25 14:48:40 +02:00
6b8b8e59c7 manjaro: Added default files to .dotfiles 2021-07-25 14:48:40 +02:00
4db4921fc2 Added README 2021-07-25 14:48:40 +02:00
d79ce0ec1f i3: added shortcut for pamac-manager 2021-07-25 14:48:40 +02:00
cead940f9d emacs: Deleted custom.el 2021-07-25 14:48:40 +02:00
6016953788 emacs: Increased font size 2021-07-25 14:48:40 +02:00
4b6eb4a39d i3: removed title bar from windows 2021-07-25 14:48:40 +02:00
262fd63909 i3: Set scripts folder as variable 2021-07-25 14:48:40 +02:00
72b25299d4 Fixed open terminal 2021-07-25 14:48:40 +02:00
f5b78714ce i3: Cleaned up i3blocks scripts 2021-07-25 14:44:26 +02:00
1ebd0a2d30 i3: Modified dunst to use different Mouse bindings 2021-07-25 14:42:43 +02:00
013ab7f669 i3: Added dunst to i3blocks 2021-07-25 14:42:43 +02:00
e46cade6b6 i3: Fixed signal to volume i3blocklet 2021-07-25 14:42:43 +02:00
44afe6a7e1 manjaro: Added default files to .dotfiles 2021-07-25 14:42:22 +02:00
0794bc7b35 Added README 2021-07-25 14:41:44 +02:00
1126eb7a6a i3: added shortcut for pamac-manager 2021-07-25 14:41:28 +02:00
69b3f37456 emacs: Deleted custom.el 2021-07-25 14:41:14 +02:00
4293fc90a7 emacs: Increased font size 2021-07-25 14:40:59 +02:00
b79f8672a9 i3: removed title bar from windows 2021-07-25 14:40:31 +02:00
555b932518 i3: Set scripts folder as variable 2021-07-25 14:37:59 +02:00
a87505b0aa Fixed open terminal 2021-07-25 14:35:23 +02:00
be3ac77e83 Added agenda files 2021-07-09 12:49:45 +02:00
193 changed files with 8656 additions and 1832 deletions

61
.dotter/global.toml Normal file
View File

@ -0,0 +1,61 @@
[helpers]
[default]
depends = []
[manjaro.files]
manjaro = "~"
[mc.files]
mc = "~/.config/mc"
[vim.files]
# type symbolic prevents interpreting '{{' as template
"vim/.vimrc" = { target = "~/.vimrc", type = "symbolic" }
[nvim.files]
"vim/init.vim" = { target = "~/.config/nvim/init.vim", type = "symbolic" }
[i3.files]
"i3/i3" = "~/.config/i3"
"i3/i3blocks" = { target = "~/.config/i3blocks", type = "symbolic" }
"i3/rofi" = "~/.config/rofi"
"i3/i3-scrot.conf" = "~/.config/i3-scrot.conf"
"i3/i3status-rust" = "~/.config/i3status-rust"
"i3/.profile" = "~/.profile"
[i3.variables]
monitor-primary = "not-specified"
monitor-secondary = "not-specified"
screenlayout-script = "echo screenlayout-script not specified"
bar-font-size = 15
tray-output = "tray_output primary"
[emacs.files]
"emacs/doom" = "~/.config/doom"
# "emacs/spacemacs/.spacemacs" = "~/.spacemacs"
# "emacs/chemacs/.emacs-profiles.el" = "~/.emacs-profiles.el"
[alacritty.files]
alacritty = "~/.config/alacritty"
[starship.files]
starship = "~/.config/"
[zsh.files]
"zsh/.zshrc" = "~/.zshrc"
"zsh/custom-plugins" = "~/.oh-my-zsh/custom"
[polybar.files]
polybar = "~/.config/polybar"
[leftwm.files]
leftwm = "~/.config/leftwm"
[xmonad.files]
xmonad = "~/.xmonad"
[nix.files]
"direnvrc" = "~/.config/direnv/direnvrc"
"nix/configuration.nix" = "/etc/nixos/configuration.nix"
"nix/flake.nix" = "/etc/nixos/flake.nix"

6
.dotter/kardorf.toml Normal file
View File

@ -0,0 +1,6 @@
[i3.variables]
monitor-primary = "DVI-D-0"
monitor-secondary = "DVI-D-1"
screenlayout-script = "~/.screenlayout/2desktop-dvi.sh"
bar-font-size = 15
tray-output = "tray_output DVI-D-1"

View File

@ -0,0 +1,4 @@
[i3.variables]
monitor-primary = "HDMI-1"
monitor-secondary = "eDP-1"
screenlayout-script = "~/.screenlayout/laptop-at-home.sh"

5
.dotter/laptop.toml Normal file
View File

@ -0,0 +1,5 @@
[i3.variables]
monitor-primary = "HDMI-1"
monitor-secondary = "eDP-1"
tray-output = "tray_output eDP-1"
screenlayout-script = "$scripts/display-layoutpicker"

View File

@ -0,0 +1,2 @@
includes = [".dotter/kardorf.toml"]
packages = ["i3", "emacs", "alacritty", "zsh", "starship", "nix"]

View File

@ -0,0 +1,2 @@
includes = [".dotter/laptop.toml"]
packages = []

View File

@ -0,0 +1,57 @@
name: Update Nix Flake
on:
schedule:
- cron: "30 0 * * *" # daily run
workflow_dispatch: {}
jobs:
update-flake:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
token: "${{ gitea.token }}"
fetch-depth: 0
ref: flake-updates
- name: Git config
shell: bash
run: |
git config user.name "Gitea Actions"
git config user.email "actions@gitea.local"
- name: Rebase from master branch
shell: bash
run: |
commits_ahead=$(git rev-list --count HEAD..origin/master)
echo "Commits ahead: $commits_ahead"
git log --oneline -5
echo "----------"
git log --oneline -5 origin/master
echo .
if [ $commits_ahead -ne 0 ]
then
git rebase -X theirs origin/master
git push --force-with-lease origin flake-updates
else
echo "Rebase not necessary"
fi
- name: Set up Nix
uses: cachix/install-nix-action@v31
- name: Update Flake
run: nix flake update
- name: Commit and push changes
shell: bash
run: |
git add flake.lock
git status
git diff --cached --quiet && echo "No changes to commit." && exit 0
git commit -m "Update flake.lock $(date -I)"
git push --force-with-lease origin flake-updates

5
.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
.dotter/cache.toml
.dotter/cache
.dotter/local.toml
nix/result

25
.sops.yaml Normal file
View File

@ -0,0 +1,25 @@
keys:
- &primary age1ee5udznhadk6m7jtglu4709rep080yjyd2ukzdl8jma4mm92y3psv0slpg
- &aspi-ssh age1q8lc5340gz5xw2f57nglrss68wv0j0hf36py2pdtrl6ky3yrq9qqk0njr4
- &pianonix-ssh age1hsmfz8fjxu83sax9lr487h8xr6cyge0apdq4zpge4c8jpcjj2cksj825ct
- &builder-ssh age1kw4kmdm45zprvdkrrpvgq966l7585vhusmum083qlwnr0xxgd3uqatcyja
creation_rules:
- path_regex: secrets/secrets.yaml$
key_groups:
- age:
- *primary
- *aspi-ssh
- *pianonix-ssh
- path_regex: secrets/secrets-builder.yaml$
key_groups:
- age:
- *primary
- *builder-ssh
- path_regex: secrets/.+
key_groups:
- age:
- *primary
- *aspi-ssh
- *pianonix-ssh

View File

@ -1,11 +0,0 @@
# My dotfiles
Welcome!
## Dependencies
All neccessary dependencies I could think of are listed in the *dependencies* file.
## Link configs
```sh
cd .dotfiles
stow i3 mc emacs vim
```

33
Readme.org Normal file
View File

@ -0,0 +1,33 @@
#+title: My dotfiles
My dotfiles for which I am using =nix=.
The structure is managed by [[https://snowfall.org/guides/lib/quickstart/][Snowfall lib]]
* Machine selection
=home-manager= automatically searches for =user= or =user@hostname= config in the flake, so specify one of those or you will have to manually specify them:
=home-manager switch --flake .#user@hostname=
* Manual symlinks
[[file:laptop-nix.conf]] was manually symlinked to file:/etc/nix/nix.conf
and [[file:flake.nix]] was symlinked to file:~/.config/home-manager/flake.nix
For deployment!!
* Secrets management with sops
Full documentation here: https://github.com/Mic92/sops-nix
** Edit secrets
#+begin_src sh
sops edit secrets/secrets.yaml
#+end_src
** Authorize new device
- Generate public key from ssh -> Private age key generation not needed
#+begin_src sh
ssh-to-age < /etc/ssh/ssh_host_ed25519_key
#+end_src
- Add age public key to file:.sops.yaml
- Update keys
#+begin_src sh
sops updatekeys secrets/*
#+end_src

View File

@ -1,16 +0,0 @@
dunst
element-desktop
feh
firefox
i3exit
i3-scrot
i3-wm
libqalculate
nextcloud
pavucontrol
rofi
stow
telegram-desktop
thunderbird
xclip
xwacomcalibrate

View File

@ -1,142 +0,0 @@
;;; $DOOMDIR/config.el -*- lexical-binding: t; -*-
;; Place your private configuration here! Remember, you do not need to run 'doom
;; sync' after modifying this file!
;; Some functionality uses this to identify you, e.g. GPG configuration, email
;; clients, file templates and snippets.
(setq user-full-name "Julian Mutter"
user-mail-address "julian.mutter@comumail.de")
;; Doom exposes five (optional) variables for controlling fonts in Doom. Here
;; are the three important ones:
;;
;; + `doom-font'
;; + `doom-variable-pitch-font'
;; + `doom-big-font' -- used for `doom-big-font-mode'; use this for
;; presentations or streaming.
;;
;; They all accept either a font-spec, font string ("Input Mono-12"), or xlfd
;; font string. You generally only need these two:
;; (setq doom-font (font-spec :family "monospace" :size 13 :weight 'semi-light)
;; doom-variable-pitch-font (font-spec :family "sans" :size 13))
(setq doom-font (font-spec :family "Source Code Pro" :size 14))
;; There are two ways to load a theme. Both assume the theme is installed and
;; available. You can either set `doom-theme' or manually load a theme with the
;; `load-theme' function. This is the default:
(setq doom-theme 'doom-one)
;; If you use `org' and don't want your org files in the default location below,
;; change `org-directory'. It must be set before org loads!
(setq org-directory "~/org")
;; This determines the style of line numbers in effect. If set to `nil', line
;; numbers are disabled. For relative line numbers, set this to `relative'.
(setq display-line-numbers-type 'relative)
;; Here are some additional functions/macros that could help you configure Doom:
;;
;; - `load!' for loading external *.el files relative to this one
;; - `use-package!' for configuring packages
;; - `after!' for running code after a package has loaded
;; - `add-load-path!' for adding directories to the `load-path', relative to
;; this file. Emacs searches the `load-path' when you load packages with
;; `require' or `use-package'.
;; - `map!' for binding new keys
;;
;; To get information about any of these functions/macros, move the cursor over
;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k').
;; This will open documentation for it, including demos of how they are used.
;;
;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how
;; they are implemented.
;; Open external terminal
;; (map! :map doom-leader-open-map :desc "Open" "t" (cmd! (call-process-shell-command "terminal&" nil 0)))
(map! :leader :desc "Open external terminal" "o t" (cmd! (call-process-shell-command "xfce4-terminal&" nil 0)))
;; Remap font scaling keybindings to make more sense
(map! :desc "Increase font size" :n "C-+" #'text-scale-increase)
(map! :desc "Decrease font size" :n "C--" #'text-scale-decrease)
(map! :desc "Reset font size" :n "C-=" #'doom/reset-font-size)
;; Org-mode custom keybindings
;; (map! :map org-mode-map :nvi "C-k" #'org-backward-element)
;; (map! :map org-mode-map :nvi "C-j" #'org-forward-element)
;; (map! :map org-mode-map :nvi "C-h" #'org-up-element)
;; (map! :map org-mode-map :nvi "C-l" #'org-down-element)
;; Spell checking settings
;; TODO make toggling of spell checking ('SPC t s') use flyspell-mode in text modes and flyspell-prog-mode in programming modes (see hooks below)
;; Removing hooks for automatic spell checking set here: https://github.com/hlissner/doom-emacs/blob/develop/modules/checkers/spell/config.el
(remove-hook! '(org-mode-hook
markdown-mode-hook
TeX-mode-hook
rst-mode-hook
mu4e-compose-mode-hook
message-mode-hook
git-commit-mode-hook)
#'flyspell-mode)
(remove-hook! '(yaml-mode-hook
conf-mode-hook
prog-mode-hook)
#'flyspell-prog-mode)
(setq ispell-dictionary "english")
(map! :map doom-leader-toggle-map :desc "Toggle dictionary" "d" #'fd-switch-dictionary)
(defun fd-switch-dictionary()
(interactive)
(let* ((dic ispell-current-dictionary)
(change (if (string= dic "german") "english" "german")))
(ispell-change-dictionary change)
(message "Dictionary switched from %s to %s" dic change)
))
;; (autoload 'matlab-mode "matlab" "Matlab Editing Mode" t)
;; (add-to-list
;; 'auto-mode-alist
;; '("\\.m$" . matlab-mode))
;; (setq matlab-indent-function t)
;; (setq matlab-shell-command "/urs/local/bin/matlab")
;; (setq org-agenda-files (list "~/org"))
;; (custom-set-variables
;; '(org-directory "~/org")
;; '(org-agenda-files (list org-directory)))
;; (add-to-list 'org-agenda-files "~/org/anothertest.org" 'append)
;; Adding my org-agenda files
(after! org
(setq org-agenda-files (expand-file-name "org-agenda-files" doom-private-dir)))
(map! :desc "Toggle case of word" :nv "g C" #'toggle-word-case)
(defun toggle-word-case ()
"Toggle the case of current word or text selection."
(interactive)
(let (
(deactivate-mark nil)
$p1 $p2)
(if (use-region-p)
(setq $p1 (region-beginning) $p2 (region-end))
(save-excursion
(skip-chars-backward "[:alpha:]")
(setq $p1 (point))
(skip-chars-forward "[:alpha:]")
(setq $p2 (point))))
(let ((first-char-prop (get-char-code-property (char-after $p1) 'general-category)))
(cond ((string= "Ll" first-char-prop) ; Lower case
(upcase-region $p1 (+ $p1 1)))
((string= "Lu" first-char-prop) ; Upper case
(downcase-region $p1 (+ $p1 1)))
(t (message "Word does not start with a alphabetic character"))))))

View File

@ -1,188 +0,0 @@
;;; init.el -*- lexical-binding: t; -*-
;; This file controls what Doom modules are enabled and what order they load
;; in. Remember to run 'doom sync' after modifying it!
;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's
;; documentation. There you'll find a "Module Index" link where you'll find
;; a comprehensive list of Doom's modules and what flags they support.
;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or
;; 'C-c c k' for non-vim users) to view its documentation. This works on
;; flags as well (those symbols that start with a plus).
;;
;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its
;; directory (for easy access to its source code).
(doom! :input
;;chinese
;;japanese
;;layout ; auie,ctsrnm is the superior home row
:completion
company ; the ultimate code completion backend
;;helm ; the *other* search engine for love and life
;;ido ; the other *other* search engine...
ivy ; a search engine for love and life
:ui
;;deft ; notational velocity for Emacs
doom ; what makes DOOM look the way it does
doom-dashboard ; a nifty splash screen for Emacs
doom-quit ; DOOM quit-message prompts when you quit Emacs
;;(emoji +unicode) ; 🙂
;;fill-column ; a `fill-column' indicator
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
;;hydra
;;indent-guides ; highlighted indent columns
;;ligatures ; ligatures and symbols to make your code pretty again
;;minimap ; show a map of the code on the side
modeline ; snazzy, Atom-inspired modeline, plus API
;;nav-flash ; blink cursor line after big motions
neotree ; a project drawer, like NERDTree for vim
ophints ; highlight the region an operation acts on
(popup +defaults) ; tame sudden yet inevitable temporary windows
;;tabs ; a tab bar for Emacs
;; treemacs ; a project drawer, like neotree but cooler
;;unicode ; extended unicode support for various languages
vc-gutter ; vcs diff in the fringe
vi-tilde-fringe ; fringe tildes to mark beyond EOB
;;window-select ; visually switch windows
workspaces ; tab emulation, persistence & separate workspaces
;;zen ; distraction-free coding or writing
:editor
(evil +everywhere); come to the dark side, we have cookies
file-templates ; auto-snippets for empty files
fold ; (nigh) universal code folding
;;(format +onsave) ; automated prettiness
;;god ; run Emacs commands without modifier keys
;;lispy ; vim for lisp, for people who don't like vim
;;multiple-cursors ; editing in many places at once
;;objed ; text object editing for the innocent
;;parinfer ; turn lisp into python, sort of
;;rotate-text ; cycle region at point between text candidates
snippets ; my elves. They type so I don't have to
;;word-wrap ; soft wrapping with language-aware indent
:emacs
dired ; making dired pretty [functional]
electric ; smarter, keyword-based electric-indent
;;ibuffer ; interactive buffer management
undo ; persistent, smarter undo for your inevitable mistakes
vc ; version-control and Emacs, sitting in a tree
:term
;;eshell ; the elisp shell that works everywhere
;;shell ; simple shell REPL for Emacs
;;term ; basic terminal emulator for Emacs
;;vterm ; the best terminal emulation in Emacs
:checkers
syntax ; tasing you for every semicolon you forget
(spell +flyspell +everywhere) ; tasing you for misspelling mispelling
;;grammar ; tasing grammar mistake every you make
:tools
;;ansible
;;debugger ; FIXME stepping through code, to help you add bugs
;;direnv
;;docker
;;editorconfig ; let someone else argue about tabs vs spaces
;;ein ; tame Jupyter notebooks with emacs
(eval +overlay) ; run code, run (also, repls)
;;gist ; interacting with github gists
lookup ; navigate your code and its documentation
lsp
magit ; a git porcelain for Emacs
;;make ; run make tasks from Emacs
;;pass ; password manager for nerds
;;pdf ; pdf enhancements
;;prodigy ; FIXME managing external services & code builders
;;rgb ; creating color strings
;;taskrunner ; taskrunner for all your projects
;;terraform ; infrastructure as code
;;tmux ; an API for interacting with tmux
;;upload ; map local to remote projects via ssh/ftp
:os
(:if IS-MAC macos) ; improve compatibility with macOS
;;tty ; improve the terminal Emacs experience
:lang
;;agda ; types of types of types of types...
;;beancount ; mind the GAAP
(cc +lsp) ; C > C++ == 1
;;clojure ; java with a lisp
;;common-lisp ; if you've seen one lisp, you've seen them all
;;coq ; proofs-as-programs
;;crystal ; ruby at the speed of c
;;csharp ; unity, .NET, and mono shenanigans
;;data ; config/data formats
;;(dart +flutter) ; paint ui and not much else
;;elixir ; erlang done right
;;elm ; care for a cup of TEA?
emacs-lisp ; drown in parentheses
;;erlang ; an elegant language for a more civilized age
;;ess ; emacs speaks statistics
;;factor
;;faust ; dsp, but you get to keep your soul
;;fsharp ; ML stands for Microsoft's Language
;;fstar ; (dependent) types and (monadic) effects and Z3
;;gdscript ; the language you waited for
;;(go +lsp) ; the hipster dialect
;;(haskell +dante) ; a language that's lazier than I am
;;hy ; readability of scheme w/ speed of python
;;idris ; a language you can depend on
;;json ; At least it ain't XML
;;(java +meghanada) ; the poster child for carpal tunnel syndrome
;;javascript ; all(hope(abandon(ye(who(enter(here))))))
;; julia ; a better, faster MATLAB
;;kotlin ; a better, slicker Java(Script)
latex ; writing papers in Emacs has never been so fun
;;lean ; for folks with too much to prove
;;ledger ; be audit you can be
;;lua ; one-based indices? one-based indices
markdown ; writing docs for people to ignore
;;nim ; python + lisp at the speed of c
;;nix ; I hereby declare "nix geht mehr!"
;;ocaml ; an objective camel
org ; organize your plain life in plain text
;;php ; perl's insecure younger brother
;;plantuml ; diagrams for confusing people more
;;purescript ; javascript, but functional
(python +lsp) ; beautiful is better than ugly
;;qt ; the 'cutest' gui framework ever
;;racket ; a DSL for DSLs
;;raku ; the artist formerly known as perl6
;;rest ; Emacs as a REST client
;;rst ; ReST in peace
;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
;;scala ; java, but good
;;(scheme +guile) ; a fully conniving family of lisps
sh ; she sells {ba,z,fi}sh shells on the C xor
;;sml
;;solidity ; do you need a blockchain? No.
;;swift ; who asked for emoji variables?
;;terra ; Earth and Moon in alignment for performance.
;;web ; the tubes
;;yaml ; JSON, but readable
;;zig ; C, but simpler
:email
;;(mu4e +gmail)
;;notmuch
;;(wanderlust +gmail)
:app
;;calendar
;;emms
;;everywhere ; *leave* Emacs!? You must be joking
;;irc ; how neckbeards socialize
;;(rss +org) ; emacs as an RSS reader
;;twitter ; twitter client https://twitter.com/vnought
:config
;;literate
(default +bindings +smartparens))

View File

@ -1,3 +0,0 @@
~/nextcloud/studium/vorlesungen/SS21/raumfahrtbetrieb/rb-vorbereitung.org
~/nextcloud/studium/vorlesungen/SS21/borddatenverarbeitung/bdv-fragenkatalog.org
~/nextcloud/studium/vorlesungen/SS21/luftundraumfahrtlabor/lrl-fragenkatalog.org

View File

@ -1,50 +0,0 @@
;; -*- no-byte-compile: t; -*-
;;; $DOOMDIR/packages.el
;; To install a package with Doom you must declare them here and run 'doom sync'
;; on the command line, then restart Emacs for the changes to take effect -- or
;; use 'M-x doom/reload'.
;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror:
;(package! some-package)
;; To install a package directly from a remote git repo, you must specify a
;; `:recipe'. You'll find documentation on what `:recipe' accepts here:
;; https://github.com/raxod502/straight.el#the-recipe-format
;(package! another-package
; :recipe (:host github :repo "username/repo"))
;; If the package you are trying to install does not contain a PACKAGENAME.el
;; file, or is located in a subdirectory of the repo, you'll need to specify
;; `:files' in the `:recipe':
;(package! this-package
; :recipe (:host github :repo "username/repo"
; :files ("some-file.el" "src/lisp/*.el")))
;; If you'd like to disable a package included with Doom, you can do so here
;; with the `:disable' property:
;(package! builtin-package :disable t)
;; You can override the recipe of a built in package without having to specify
;; all the properties for `:recipe'. These will inherit the rest of its recipe
;; from Doom or MELPA/ELPA/Emacsmirror:
;(package! builtin-package :recipe (:nonrecursive t))
;(package! builtin-package-2 :recipe (:repo "myfork/package"))
;; Specify a `:branch' to install a package from a particular branch or tag.
;; This is required for some packages whose default branch isn't 'master' (which
;; our package manager can't deal with; see raxod502/straight.el#279)
;(package! builtin-package :recipe (:branch "develop"))
;; Use `:pin' to specify a particular commit to install.
;(package! builtin-package :pin "1a2b3c4d5e")
;; Doom's packages are pinned to a specific commit and updated from release to
;; release. The `unpin!' macro allows you to unpin single packages...
;(unpin! pinned-package)
;; ...or multiple packages
;(unpin! pinned-package another-pinned-package)
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
;(unpin! t)

1487
flake.lock generated Normal file

File diff suppressed because it is too large Load Diff

151
flake.nix Normal file
View File

@ -0,0 +1,151 @@
{
description = "Home Manager configuration of julian";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
deploy-rs.url = "github:serokell/deploy-rs";
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
home-manager = {
url = "github:nix-community/home-manager/release-24.11";
inputs.nixpkgs.follows = "nixpkgs";
};
snowfall-lib = {
url = "github:snowfallorg/lib";
inputs.nixpkgs.follows = "nixpkgs";
};
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs";
};
alacritty-theme = {
url = "github:alacritty/alacritty-theme";
flake = false;
};
yazi-flavors = {
url = "github:yazi-rs/flavors";
flake = false;
};
nixvim = {
url = "github:nix-community/nixvim/nixos-24.11";
# If using a stable channel you can use `url = "github:nix-community/nixvim/nixos-<version>"`
inputs.nixpkgs.follows = "nixpkgs";
};
nix-matlab.url = "gitlab:doronbehar/nix-matlab";
nix-matlab.inputs.nixpkgs.follows = "nixpkgs";
sops-nix.url = "github:Mic92/sops-nix";
sops-nix.inputs.nixpkgs.follows = "nixpkgs";
hyprland.url = "github:hyprwm/Hyprland?submodules=1";
# hyprland.inputs.nixpkgs.follows = "nixpkgs";
hyprland-plugins = {
url = "github:hyprwm/hyprland-plugins";
inputs.hyprland.follows = "hyprland";
};
nix-colors.url = "github:Misterio77/nix-colors";
nix-topology.url = "github:oddlama/nix-topology";
nix-topology.inputs.nixpkgs.follows = "nixpkgs";
nix-ld.url = "github:Mic92/nix-ld";
nix-ld.inputs.nixpkgs.follows = "nixpkgs";
## My projects
sheet-organizer.url = "git+https://gitlab.julian-mutter.de/julian/sheet-organizer";
sheet-organizer.inputs.nixpkgs.follows = "nixpkgs";
music-reader.url = "git+https://gitlab.julian-mutter.de/julian/music-reader";
music-reader.inputs.nixpkgs.follows = "nixpkgs";
};
outputs =
inputs:
inputs.snowfall-lib.mkFlake {
inherit inputs;
# Must always be ./.
src = ./.;
# Add overlays for the `nixpkgs` channel.
overlays = with inputs; [
nix-matlab.overlay
nix-topology.overlays.default
];
snowfall = {
# The root of the snowfall config
root = ./.;
# lib, package and overlay namespace
namespace = "frajul"; # defaults to "internal"
meta = {
name = "Julian's dotfiles";
title = "Julian's dotfiles";
};
};
# The attribute set specified here will be passed directly to NixPkgs when
# instantiating the package set.
channels-config = {
# Allow unfree packages.
allowUnfree = true;
nvidia.acceptLicense = true;
# Allow certain insecure packages
permittedInsecurePackages = [ "olm-3.2.16" ];
};
systems.modules.nixos = with inputs; [
nix-topology.nixosModules.default
sops-nix.nixosModules.sops
disko.nixosModules.disko
];
systems.hosts.pianonix.modules = with inputs; [ nixos-hardware.nixosModules.raspberry-pi-4 ];
# topology =
# with inputs;
# let
# host = self.nixosConfigurations.${builtins.head (builtins.attrNames self.nixosConfigurations)};
# in
# import nix-topology {
# inherit (host) pkgs; # Only this package set must include nix-topology.overlays.default
# modules = [
# (import ./topology { inherit (host) config; })
# { inherit (self) nixosConfigurations; }
# ];
# };
}
// {
# deploy-rs node configuration
deploy.nodes.pianonix = {
hostname = "pianonix.local";
profiles.system = {
sshUser = "root";
user = "root";
path = inputs.deploy-rs.lib.aarch64-linux.activate.nixos inputs.self.nixosConfigurations.pianonix;
confirmTimeout = 90; # default: 30s; raspberrypi takes a little longer restarting services
};
};
deploy.nodes.builder = {
hostname = "builder.julian-mutter.de";
profiles.system = {
sshUser = "root";
user = "root";
path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos inputs.self.nixosConfigurations.builder;
remoteBuild = true;
};
};
};
}

View File

@ -0,0 +1,71 @@
{
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
# as well as the libraries available from your flake's inputs.
lib,
# An instance of `pkgs` with your overlays and packages applied is also available.
pkgs,
# You also have access to your flake's inputs.
inputs,
# Additional metadata is provided by Snowfall Lib.
namespace, # The namespace used for your flake, defaulting to "internal" if not set.
home, # The home architecture for this host (eg. `x86_64-linux`).
target, # The Snowfall Lib target for this home (eg. `x86_64-home`).
format, # A normalized name for the home target (eg. `home`).
virtual, # A boolean to determine whether this home is a virtual target using nixos-generators.
host, # The host name for this home.
# All other arguments come from the home home.
config,
...
}:
{
home.username = "julian";
home.homeDirectory = "/home/julian";
modules = {
non-nixos.is-nixos = true;
shell = {
# zsh.enable = true;
fish.enable = true;
direnv.enable = true;
};
topgrade.enable = true;
neovim.enable = true;
kitty = {
enable = true;
mkDefault = true;
};
wezterm = {
enable = true;
mkDefault = false;
};
alacritty = {
enable = true;
mkDefault = false;
};
yazi.enable = true;
emacs.enable = true;
i3.enable = true;
# hyprland.enable = true;
nix-helper.enable = true;
desktop.enable = true;
fonts.enable = true;
suites = {
cli.enable = true;
desktop.enable = true;
development.enable = true;
};
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
# ======================== DO NOT CHANGE THIS ========================
home.stateVersion = "23.11";
# ======================== DO NOT CHANGE THIS ========================
}

View File

@ -0,0 +1,45 @@
# Manage mime-types via home-manager. Sadly the file gets overwritten by some applications and also not all of the desktop file paths are correct
# Use from home-manager like this:
#
# xdg.mimeApps.enable = true;
# xdg.mimeApps.defaultApplications = import ./mimeapps.nix {
# inherit pkgs;
# inherit lib;
# };
{ lib, pkgs, ... }:
let
package-names = with pkgs; {
"x-scheme-handler/tg" = telegram-desktop;
"x-scheme-handler/mailto" = thunderbird;
"message/rfc822" = thunderbird;
"x-scheme-handler/mid" = thunderbird;
"x-scheme-handler/webcal" = thunderbird;
"text/calendar" = thunderbird;
"application/x-extension-ics" = thunderbird;
"x-scheme-handler/webcals" = thunderbird;
"application/zip" = mate.engrampa;
"text/plain" = xfce.mousepad;
"image/jpeg" = nomacs;
"application/pdf" = evince;
"text/html" = firefox;
"x-scheme-handler/http" = firefox;
"x-scheme-handler/https" = firefox;
"x-scheme-handler/chrome" = firefox;
"application/x-extension-htm" = firefox;
"application/x-extension-html" = firefox;
"application/x-extension-shtml" = firefox;
"application/xhtml+xml" = firefox;
"application/x-extension-xhtml" = firefox;
"application/x-extension-xht" = firefox;
"image/svg+xml" = inkscape;
"image/png" = nomacs;
"x-scheme-handler/eclipse+command" = dbeaver-bin;
"video/mp4" = vlc;
"audio/mpeg" = vlc;
"inode/directory" = pcmanfm;
};
in
lib.mapAttrs (mimeType: package: [
"${package}/share/applications/${package.pname}.desktop"
]) package-names

View File

@ -0,0 +1,57 @@
{
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
# as well as the libraries available from your flake's inputs.
lib,
# An instance of `pkgs` with your overlays and packages applied is also available.
pkgs,
# You also have access to your flake's inputs.
inputs,
# Additional metadata is provided by Snowfall Lib.
namespace, # The namespace used for your flake, defaulting to "internal" if not set.
home, # The home architecture for this host (eg. `x86_64-linux`).
target, # The Snowfall Lib target for this home (eg. `x86_64-home`).
format, # A normalized name for the home target (eg. `home`).
virtual, # A boolean to determine whether this home is a virtual target using nixos-generators.
host, # The host name for this home.
# All other arguments come from the home home.
config,
...
}:
{
home.username = "julian";
home.homeDirectory = "/home/julian";
modules = {
non-nixos.is-nixos = true;
shell = {
fish.enable = true;
direnv.enable = true;
};
topgrade.enable = true;
neovim.enable = true;
# alacritty.enable = true;
kitty.enable = true;
yazi.enable = true;
emacs.enable = true;
i3.enable = true;
nix-helper.enable = true;
desktop.enable = true;
fonts.enable = true;
suites = {
cli.enable = true;
desktop.enable = true;
development.enable = true;
};
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
# ======================== DO NOT CHANGE THIS ========================
home.stateVersion = "23.11";
# ======================== DO NOT CHANGE THIS ========================
}

View File

@ -0,0 +1,70 @@
{
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
# as well as the libraries available from your flake's inputs.
lib,
# An instance of `pkgs` with your overlays and packages applied is also available.
pkgs,
# You also have access to your flake's inputs.
inputs,
# Additional metadata is provided by Snowfall Lib.
namespace, # The namespace used for your flake, defaulting to "internal" if not set.
home,
target, # The Snowfall Lib target for this home (eg. `x86_64-home`).
format, # A normalized name for the home target (eg. `home`).
virtual, # A boolean to determine whether this home is a virtual target using nixos-generators.
host, # The host name for this home.
# All other arguments come from the home home.
config,
...
}@arguments:
{
home.username = "julian";
home.homeDirectory = "/home/julian";
modules = {
non-nixos.is-nixos = true;
shell = {
fish.enable = true;
};
yazi.enable = true;
topgrade.enable = true;
neovim.enable = true;
wezterm.enable = true;
nix-helper.enable = true;
desktop.enable = true;
fonts.enable = true;
};
services.syncthing.tray.enable = true;
services.syncthing.tray.command = "syncthingtray --wait"; # Wait for tray to become available
home.packages = with pkgs; [
music-reader
sheet-organizer
xournalpp
musescore
onboard
];
# Autostart link
home.file = {
".config/autostart/sheet-organizer.desktop".source =
"${pkgs.sheet-organizer}/share/applications/sheet-organizer.desktop";
".config/sheet-organizer/config.toml".text = ''
working_directory = "/home/julian/Klavier"
'';
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
# ======================== DO NOT CHANGE THIS ========================
home.stateVersion = "23.11";
# ======================== DO NOT CHANGE THIS ========================
}

View File

@ -0,0 +1,53 @@
{
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
# as well as the libraries available from your flake's inputs.
lib,
# An instance of `pkgs` with your overlays and packages applied is also available.
pkgs,
# You also have access to your flake's inputs.
inputs,
# Additional metadata is provided by Snowfall Lib.
namespace, # The namespace used for your flake, defaulting to "internal" if not set.
home, # The home architecture for this host (eg. `x86_64-linux`).
target, # The Snowfall Lib target for this home (eg. `x86_64-home`).
format, # A normalized name for the home target (eg. `home`).
virtual, # A boolean to determine whether this home is a virtual target using nixos-generators.
host, # The host name for this home.
# All other arguments come from the home home.
config,
...
}:
{
home.username = "julian";
home.homeDirectory = "/home/julian";
modules = {
non-nixos.is-nixos = false;
shell = {
fish.enable = true;
direnv.enable = true;
};
topgrade.enable = true;
neovim.enable = true;
yazi.enable = true;
emacs.enable = true;
nix-helper.enable = true;
};
home.packages =
lib.lists.concatMap (packages-list-file: import packages-list-file { inherit pkgs; })
[
./fonts.nix
./packages.nix
];
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
# ======================== DO NOT CHANGE THIS ========================
home.stateVersion = "23.11";
# ======================== DO NOT CHANGE THIS ========================
}

View File

@ -0,0 +1,15 @@
{ pkgs, ... }:
with pkgs;
[
(nerdfonts.override { fonts = [ "FiraCode" ]; })
font-awesome
dejavu_fonts
noto-fonts
noto-fonts-cjk-sans
noto-fonts-emoji
liberation_ttf
fira-code
fira-code-symbols
source-code-pro
]

View File

@ -0,0 +1,44 @@
{ pkgs, ... }:
with pkgs;
[
# Rust setup
rustc
rustfmt
cargo
clippy
rust-analyzer
typst
tree-sitter-grammars.tree-sitter-typst
# Further tools
cntr # nix debugger
lazygit
shellcheck
lazygit
git
mc
tree
bat
ripgrep
fd
fzf
topgrade
htop
killall
findutils
jq
ffmpeg
julia-bin
poppler_utils # Pdf utils including pdfimages
sage
pkg-config # Often needed to build something
devbox # reproducible dev envs based on nix
mysql80
]

View File

@ -1,431 +0,0 @@
[global]
### Display ###
# Which monitor should the notifications be displayed on.
monitor = 0
# Display notification on focused monitor. Possible modes are:
# mouse: follow mouse pointer
# keyboard: follow window with keyboard focus
# none: don't follow anything
#
# "keyboard" needs a window manager that exports the
# _NET_ACTIVE_WINDOW property.
# This should be the case for almost all modern window managers.
#
# If this option is set to mouse or keyboard, the monitor option
# will be ignored.
follow = keyboard #mouse
# The geometry of the window:
# [{width}]x{height}[+/-{x}+/-{y}]
# The geometry of the message window.
# The height is measured in number of notifications everything else
# in pixels. If the width is omitted but the height is given
# ("-geometry x2"), the message window expands over the whole screen
# (dmenu-like). If width is 0, the window expands to the longest
# message displayed. A positive x is measured from the left, a
# negative from the right side of the screen. Y is measured from
# the top and down respectively.
# The width can be negative. In this case the actual width is the
# screen width minus the width defined in within the geometry option.
geometry = "300x5-30+20"
# Show how many messages are currently hidden (because of geometry).
indicate_hidden = yes
# Shrink window if it's smaller than the width. Will be ignored if
# width is 0.
shrink = no
# The transparency of the window. Range: [0; 100].
# This option will only work if a compositing window manager is
# present (e.g. xcompmgr, compiz, etc.).
transparency = 0
# The height of the entire notification. If the height is smaller
# than the font height and padding combined, it will be raised
# to the font height and padding.
notification_height = 0
# Draw a line of "separator_height" pixel height between two
# notifications.
# Set to 0 to disable.
separator_height = 2
# Padding between text and separator.
padding = 8
# Horizontal padding.
horizontal_padding = 8
# Defines width in pixels of frame around the notification window.
# Set to 0 to disable.
frame_width = 3
# Defines color of the frame around the notification window.
frame_color = "#aaaaaa"
# Define a color for the separator.
# possible values are:
# * auto: dunst tries to find a color fitting to the background;
# * foreground: use the same color as the foreground;
# * frame: use the same color as the frame;
# * anything else will be interpreted as a X color.
separator_color = frame
# Sort messages by urgency.
sort = yes
# Don't remove messages, if the user is idle (no mouse or keyboard input)
# for longer than idle_threshold seconds.
# Set to 0 to disable.
# A client can set the 'transient' hint to bypass this. See the rules
# section for how to disable this if necessary
idle_threshold = 120
### Text ###
font = Monospace 12
# The spacing between lines. If the height is smaller than the
# font height, it will get raised to the font height.
line_height = 0
# Possible values are:
# full: Allow a small subset of html markup in notifications:
# <b>bold</b>
# <i>italic</i>
# <s>strikethrough</s>
# <u>underline</u>
#
# For a complete reference see
# <https://developer.gnome.org/pango/stable/pango-Markup.html>.
#
# strip: This setting is provided for compatibility with some broken
# clients that send markup even though it's not enabled on the
# server. Dunst will try to strip the markup but the parsing is
# simplistic so using this option outside of matching rules for
# specific applications *IS GREATLY DISCOURAGED*.
#
# no: Disable markup parsing, incoming notifications will be treated as
# plain text. Dunst will not advertise that it has the body-markup
# capability if this is set as a global setting.
#
# It's important to note that markup inside the format option will be parsed
# regardless of what this is set to.
markup = full
# The format of the message. Possible variables are:
# %a appname
# %s summary
# %b body
# %i iconname (including its path)
# %I iconname (without its path)
# %p progress value if set ([ 0%] to [100%]) or nothing
# %n progress value if set without any extra characters
# %% Literal %
# Markup is allowed
format = "<b>%s</b>\n%b"
# Alignment of message text.
# Possible values are "left", "center" and "right".
alignment = left
# Vertical alignment of message text and icon.
# Possible values are "top", "center" and "bottom".
vertical_alignment = center
# Show age of message if message is older than show_age_threshold
# seconds.
# Set to -1 to disable.
show_age_threshold = 60
# Split notifications into multiple lines if they don't fit into
# geometry.
word_wrap = yes
# When word_wrap is set to no, specify where to make an ellipsis in long lines.
# Possible values are "start", "middle" and "end".
ellipsize = middle
# Ignore newlines '\n' in notifications.
ignore_newline = no
# Stack together notifications with the same content
stack_duplicates = true
# Hide the count of stacked notifications with the same content
hide_duplicate_count = false
# Display indicators for URLs (U) and actions (A).
show_indicators = yes
### Icons ###
# Align icons left/right/off
icon_position = left
# Scale small icons up to this size, set to 0 to disable. Helpful
# for e.g. small files or high-dpi screens. In case of conflict,
# max_icon_size takes precedence over this.
min_icon_size = 0
# Scale larger icons down to this size, set to 0 to disable
max_icon_size = 32
# Paths to default icons.
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
### History ###
# Should a notification popped up from history be sticky or timeout
# as if it would normally do.
sticky_history = yes
# Maximum amount of notifications kept in history
history_length = 20
### Misc/Advanced ###
# dmenu path.
dmenu = /usr/bin/dmenu -p dunst:
# Browser for opening urls in context menu.
browser = /usr/bin/firefox -new-tab
# Always run rule-defined scripts, even if the notification is suppressed
always_run_script = true
# Define the title of the windows spawned by dunst
title = Dunst
# Define the class of the windows spawned by dunst
class = Dunst
# Print a notification on startup.
# This is mainly for error detection, since dbus (re-)starts dunst
# automatically after a crash.
startup_notification = false
# Manage dunst's desire for talking
# Can be one of the following values:
# crit: Critical features. Dunst aborts
# warn: Only non-fatal warnings
# mesg: Important Messages
# info: all unimportant stuff
# debug: all less than unimportant stuff
verbosity = mesg
# Define the corner radius of the notification window
# in pixel size. If the radius is 0, you have no rounded
# corners.
# The radius will be automatically lowered if it exceeds half of the
# notification height to avoid clipping text and/or icons.
corner_radius = 0
# Ignore the dbus closeNotification message.
# Useful to enforce the timeout set by dunst configuration. Without this
# parameter, an application may close the notification sent before the
# user defined timeout.
ignore_dbusclose = false
### Legacy
# Use the Xinerama extension instead of RandR for multi-monitor support.
# This setting is provided for compatibility with older nVidia drivers that
# do not support RandR and using it on systems that support RandR is highly
# discouraged.
#
# By enabling this setting dunst will not be able to detect when a monitor
# is connected or disconnected which might break follow mode if the screen
# layout changes.
force_xinerama = false
### mouse
# Defines list of actions for each mouse event
# Possible values are:
# * none: Don't do anything.
# * do_action: If the notification has exactly one action, or one is marked as default,
# invoke it. If there are multiple and no default, open the context menu.
# * close_current: Close current notification.
# * close_all: Close all notifications.
# These values can be strung together for each mouse event, and
# will be executed in sequence.
mouse_left_click = do_action, close_current
mouse_middle_click = close_all
mouse_right_click = close_current
# Experimental features that may or may not work correctly. Do not expect them
# to have a consistent behaviour across releases.
[experimental]
# Calculate the dpi to use on a per-monitor basis.
# If this setting is enabled the Xft.dpi value will be ignored and instead
# dunst will attempt to calculate an appropriate dpi value for each monitor
# using the resolution and physical size. This might be useful in setups
# where there are multiple screens with very different dpi values.
per_monitor_dpi = false
[shortcuts]
# Shortcuts are specified as [modifier+][modifier+]...key
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
# "mod3" and "mod4" (windows-key).
# Xev might be helpful to find names for keys.
# Close notification.
close = ctrl+period
# Close all notifications.
close_all = ctrl+shift+period
# Redisplay last message(s).
# On the US keyboard layout "grave" is normally above TAB and left
# of "1". Make sure this key actually exists on your keyboard layout,
# e.g. check output of 'xmodmap -pke'
history = ctrl+shift+space
# Context menu.
context = ctrl+space
[urgency_low]
# IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment.
background = "#222222"
foreground = "#888888"
timeout = 10
# Icon for notifications with low urgency, uncomment to enable
#icon = /path/to/icon
[urgency_normal]
background = "#285577"
foreground = "#ffffff"
timeout = 10
# Icon for notifications with normal urgency, uncomment to enable
#icon = /path/to/icon
[urgency_critical]
background = "#900000"
foreground = "#ffffff"
frame_color = "#ff0000"
timeout = 0
# Icon for notifications with critical urgency, uncomment to enable
#icon = /path/to/icon
# Every section that isn't one of the above is interpreted as a rules to
# override settings for certain messages.
#
# Messages can be matched by
# appname (discouraged, see desktop_entry)
# body
# category
# desktop_entry
# icon
# match_transient
# msg_urgency
# stack_tag
# summary
#
# and you can override the
# background
# foreground
# format
# frame_color
# fullscreen
# new_icon
# set_stack_tag
# set_transient
# timeout
# urgency
#
# Shell-like globbing will get expanded.
#
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
# GLib based applications export their desktop-entry name. In comparison to the appname,
# the desktop-entry won't get localized.
#
# SCRIPTING
# You can specify a script that gets run when the rule matches by
# setting the "script" option.
# The script will be called as follows:
# script appname summary body icon urgency
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
#
# NOTE: if you don't want a notification to be displayed, set the format
# to "".
# NOTE: It might be helpful to run dunst -print in a terminal in order
# to find fitting options for rules.
# Disable the transient hint so that idle_threshold cannot be bypassed from the
# client
#[transient_disable]
# match_transient = yes
# set_transient = no
#
# Make the handling of transient notifications more strict by making them not
# be placed in history.
#[transient_history_ignore]
# match_transient = yes
# history_ignore = yes
# fullscreen values
# show: show the notifications, regardless if there is a fullscreen window opened
# delay: displays the new notification, if there is no fullscreen window active
# If the notification is already drawn, it won't get undrawn.
# pushback: same as delay, but when switching into fullscreen, the notification will get
# withdrawn from screen again and will get delayed like a new notification
#[fullscreen_delay_everything]
# fullscreen = delay
#[fullscreen_show_critical]
# msg_urgency = critical
# fullscreen = show
#[espeak]
# summary = "*"
# script = dunst_espeak.sh
#[script-test]
# summary = "*script*"
# script = dunst_test.sh
#[ignore]
# # This notification will not be displayed
# summary = "foobar"
# format = ""
#[history-ignore]
# # This notification will not be saved in history
# summary = "foobar"
# history_ignore = yes
#[skip-display]
# # This notification will not be displayed, but will be included in the history
# summary = "foobar"
# skip_display = yes
#[signed_on]
# appname = Pidgin
# summary = "*signed on*"
# urgency = low
#
#[signed_off]
# appname = Pidgin
# summary = *signed off*
# urgency = low
#
#[says]
# appname = Pidgin
# summary = *says*
# urgency = critical
#
#[twitter]
# appname = Pidgin
# summary = *twitter.com*
# urgency = normal
#
#[stack-volumes]
# appname = "some_volume_notifiers"
# set_stack_tag = "volume"
#
# vim: ft=cfg

View File

@ -1 +0,0 @@
scrot_dir=/home/julian/Pictures/screenshots

View File

@ -1,332 +0,0 @@
# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout some time, delete
# this file and re-run i3-config-wizard(1).
#
# i3 config file (v4)
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
set $mod Mod4
set $scripts ~/.config/i3/scripts
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
font pango:monospace 12
# This font is widely installed, provides lots of unicode glyphs, right-to-left
# text rendering and scalability on retina/hidpi displays (thanks to pango).
#font pango:DejaVu Sans Mono 12
# The combination of xss-lock, nm-applet and pactl is a popular choice, so
# they are included here as an example. Modify as you see fit.
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
# screen before suspend. Use loginctl lock-session to lock your screen.
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
# NetworkManager is the most popular way to manage wireless networks on Linux,
# and nm-applet is a desktop environment-independent system tray GUI for it.
# exec --no-startup-id nm-applet
# Use pactl to adjust volume in PulseAudio.
# set $refresh_i3status killall -SIGUSR1 i3status
set $refresh_i3blocks pkill -RTMIN+1 i3blocks
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3blocks
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3blocks
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3blocks
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3blocks
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# start a terminal
bindsym $mod+Return exec xfce4-terminal
# kill focused window
bindsym $mod+Shift+q kill
bindsym $mod+q kill
bindsym $mod+Shift+x kill
bindsym $mod+x kill
# for x button in laptop (produces alt+f4)
bindsym Mod1+F4 kill
# start dmenu (a program launcher)
bindsym $mod+d exec rofi -show run #dmenu_recency -i
# There also is the (new) i3-dmenu-desktop which only displays applications
# shipping a .desktop file. It is a wrapper around dmenu, so you need that
# installed.
# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
# change focus
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# move focused window
bindsym $mod+Shift+h move left
bindsym $mod+Shift+j move down
bindsym $mod+Shift+k move up
bindsym $mod+Shift+l move right
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# split in horizontal orientation
bindsym $mod+Shift+v split h
# split in vertical orientation
bindsym $mod+v split v
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+Shift+w layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# focus the child container
#bindsym $mod+d focus child
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
set $ws1 "1"
set $ws2 "2"
set $ws3 "3"
set $ws4 "4"
set $ws5 "5"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8"
set $ws9 "9"
set $ws10 "10"
# switch to workspace
bindsym $mod+1 workspace number $ws1
bindsym $mod+2 workspace number $ws2
bindsym $mod+3 workspace number $ws3
bindsym $mod+4 workspace number $ws4
bindsym $mod+5 workspace number $ws5
bindsym $mod+6 workspace number $ws6
bindsym $mod+7 workspace number $ws7
bindsym $mod+8 workspace number $ws8
bindsym $mod+9 workspace number $ws9
bindsym $mod+0 workspace number $ws10
# move focused container to workspace
bindsym $mod+Ctrl+1 move container to workspace number $ws1
bindsym $mod+Ctrl+2 move container to workspace number $ws2
bindsym $mod+Ctrl+3 move container to workspace number $ws3
bindsym $mod+Ctrl+4 move container to workspace number $ws4
bindsym $mod+Ctrl+5 move container to workspace number $ws5
bindsym $mod+Ctrl+6 move container to workspace number $ws6
bindsym $mod+Ctrl+7 move container to workspace number $ws7
bindsym $mod+Ctrl+8 move container to workspace number $ws8
bindsym $mod+Ctrl+9 move container to workspace number $ws9
bindsym $mod+Ctrl+0 move container to workspace number $ws10
# move focused container to workspace and follow
bindsym $mod+Shift+1 move container to workspace number $ws1; workspace $ws1
bindsym $mod+Shift+2 move container to workspace number $ws2; workspace $ws2
bindsym $mod+Shift+3 move container to workspace number $ws3; workspace $ws3
bindsym $mod+Shift+4 move container to workspace number $ws4; workspace $ws4
bindsym $mod+Shift+5 move container to workspace number $ws5; workspace $ws5
bindsym $mod+Shift+6 move container to workspace number $ws6; workspace $ws6
bindsym $mod+Shift+7 move container to workspace number $ws7; workspace $ws7
bindsym $mod+Shift+8 move container to workspace number $ws8; workspace $ws8
bindsym $mod+Shift+9 move container to workspace number $ws9; workspace $ws9
bindsym $mod+Shift+0 move container to workspace number $ws10; workspace $ws10
# Monitor config
set $monitor_left eDP1
set $monitor_right HDMI1
workspace $ws1 output $monitor_left
workspace $ws2 output $monitor_left
workspace $ws3 output $monitor_left
workspace $ws4 output $monitor_left
workspace $ws5 output $monitor_left
workspace $ws6 output $monitor_right
workspace $ws7 output $monitor_right
workspace $ws8 output $monitor_right
workspace $ws9 output $monitor_right
workspace $ws10 output $monitor_right
# reload the configuration file
#bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
# exit i3 (logs you out of your X session)
#bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
# Pressing left will shrink the windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
bindsym h resize shrink width 10 px or 10 ppt
bindsym j resize grow height 10 px or 10 ppt
bindsym k resize shrink height 10 px or 10 ppt
bindsym l resize grow width 10 px or 10 ppt
# same bindings, but for the arrow keys
bindsym Left resize shrink width 10 px or 10 ppt
bindsym Down resize grow height 10 px or 10 ppt
bindsym Up resize shrink height 10 px or 10 ppt
bindsym Right resize grow width 10 px or 10 ppt
# back to normal: Enter or Escape or $mod+r
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+r mode "default"
}
bindsym $mod+r mode "resize"
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
status_command i3blocks
tray_output $monitor_left
position top
i3bar_command i3bar --transparency
}
set $mode_system System (l) lock, (e) logout, (r) reboot, (s) shutdown
mode "$mode_system" {
bindsym l exec --no-startup-id i3lock, mode "default"
bindsym e exec --no-startup-id i3exit logout, mode "default"
bindsym r exec --no-startup-id i3exit reboot, mode "default"
bindsym s exec --no-startup-id i3exit shutdown, mode "default"
# back to normal: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+Shift+e mode "$mode_system"
set $mode_screenshot_file Screenshot to file (w) Active window, (s) Selection, (d) Desktop
mode "$mode_screenshot_file" {
bindsym w exec --no-startup-id "i3-scrot -w", mode "default"
bindsym --release s exec --no-startup-id "i3-scrot -s", mode "default"
bindsym d exec --no-startup-id "i3-scrot -d", mode "default"
bindsym --release Return exec --no-startup-id "i3-scrot -s", mode "default"
#back to normal: Escape
bindsym Escape mode "default"
}
bindsym $mod+Shift+Print mode "$mode_screenshot_file"
set $mode_screenshot_clipboard Screenshot to clipboard (w) Active window, (s) Selection, (d) Desktop
mode "$mode_screenshot_clipboard" {
bindsym w exec --no-startup-id "i3-scrot -wc", mode "default"
bindsym --release s exec --no-startup-id "i3-scrot -sc", mode "default"
bindsym d exec --no-startup-id "i3-scrot -dc", mode "default"
bindsym --release Return exec --no-startup-id "i3-scrot -sc", mode "default"
# back to normal: Escape
bindsym Escape mode "default"
}
bindsym $mod+Print mode "$mode_screenshot_clipboard"
bindsym $mod+Ctrl+Right move workspace to output right
bindsym $mod+Ctrl+Left move workspace to output right
bindsym $mod+c exec xfce4-terminal --role floating --hide-scrollbar --title Calculator -e qalc
bindsym $mod+p exec xwacomcalibrate
bindsym $mod+t exec thunar
bindsym $mod+m exec xfce4-terminal -x mc
bindsym $mod+Shift+c exec $scripts/jupyter-calculator
bindsym $mod+b exec firefox
bindsym $mod+s exec pavucontrol
bindsym $mod+u exec pamac-manager
workspace_auto_back_and_forth yes
########## Window settings ##########
exec_always $scripts/setup-screens
########## Window settings ##########
default_border pixel
default_floating_border normal
assign [class="firefox" title="Mozilla Firefox$"] workspace $ws1
assign [class="TelegramDesktop"] workspace $ws9
assign [class="Signal"] workspace $ws9
assign [class="Rocket.Chat"] workspace $ws9
assign [class="Element"] workspace $ws9
assign [class="Thunderbird"] workspace $ws10
assign [class="zoom"] workspace $ws5
for_window [class="firefox"] focus
#for_window [class="Thunderbird"] focus
for_window [class="TelegramDesktop"] no_focus
for_window [class="Rocket.Chat"] no_focus
for_window [class="Element"] no_focus
#for_window [class="Thunderbird"] focus
for_window [title="Manjaro Settings Manager"] floating enable
for_window [class="Pamac-manager"] floating enable
for_window [class="Pamac-updater"] floating enable
#for_window [class="zoom" title="Chat"] floating enable
#for_window [class="Thunderbird" instance="Msgcompose"] floating enable
#
for_window [window_role=floating] floating enable
########## Autostart applications ##########
exec --no-startup-id "i3-msg 'workspace 9; append_layout ~/.config/i3/workspace-chat.json'"
exec firefox
exec thunderbird
exec chat.rocket.RocketChat no_focus
exec element-desktop no_focus
exec telegram-desktop no_focus
exec --no-startup-id nm-applet
exec --no-startup-id xfce4-power-manager
exec --no-startup-id nextcloud
# Authentication agent
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
# Notify about software updates
exec --no-startup-id pamac-tray
# Notify about kernel updates
exec --no-startup-id msm_notifier
# Audio
exec --no-startup-id start-pulseaudio-x11
# Background
#exec --no-startup-id feh --randomize --bg-fill /home/julian/Pictures/Hintergrundbilder/*
exec --no-startup-id feh --bg-fill /home/julian/nextcloud/space.jpg
# Notifications
exec --no-startup-id dunst -config /home/julian/.config/dunst/dunstrc
# Default workspaces at startup (no need because autostart applications get always focused)
#exec --no-startup-id i3-msg workspace $ws1
exec --no-startup-id i3-msg workspace $ws10

View File

@ -1,9 +0,0 @@
#!/bin/bash
# Author: Julian Mutter
# Date: 12.07.2021
if [[ $(xrandr | grep "HDMI1 connected") ]]; then
~/.screenlayout/layout2screen.sh
else
~/.screenlayout/layout1screen.sh
fi

View File

@ -1,6 +0,0 @@
#!/bin/bash
flatpak run us.zoom.Zoom &
i3-msg "workspace --no-auto-back-and-forth 5; exec mousepad /home/julian/Nextcloud/studium/zoom.txt"
i3-msg "workspace --no-auto-back-and-forth 5; append_layout ~/.config/i3/workspace-zoom.json"

View File

@ -1,30 +0,0 @@
#!/bin/sh
NONE="None"
get_current_activity() {
activity=$(hamster current)
if [ "$activity" = "No activity" ]; then
echo $NONE
else
IFS=' '
read -ra ADDR <<< "$activity"
echo "${ADDR[2]}"
fi
}
case "$BLOCK_BUTTON" in
1|2|3)
current_activity=$(get_current_activity)
if [ "$current_activity" = "$NONE" ]; then
hamster start "Comu@Work#Flexibill App"
else
hamster stop
fi
esac
current_activity=$(get_current_activity)
echo "$LABEL $current_activity"
echo "$LABEL $current_activity"

View File

@ -1,98 +0,0 @@
#!/usr/bin/env python3
#
# Copyright (C) 2016 James Murphy
# Licensed under the GPL version 2 only
#
# A battery indicator blocklet script for i3blocks
import re
from subprocess import check_output
status = check_output(['acpi'], universal_newlines=True)
if not status:
# stands for no battery found
fulltext = "<span color='red'><span font='FontAwesome'>\uf00d \uf240</span></span>"
percentleft = 100
else:
# if there is more than one battery in one laptop, the percentage left is
# available for each battery separately, although state and remaining
# time for overall block is shown in the status of the first battery
batteries = status.split("\n")
state_batteries=[]
commasplitstatus_batteries=[]
percentleft_batteries=[]
time = ""
for battery in batteries:
if battery!='':
state_batteries.append(battery.split(": ")[1].split(", ")[0])
commasplitstatus = battery.split(", ")
if not time:
time = commasplitstatus[-1].strip()
# check if it matches a time
time = re.match(r"(\d+):(\d+)", time)
if time:
time = ":".join(time.groups())
timeleft = " ({})".format(time)
p = int(commasplitstatus[1].rstrip("%\n"))
if p>0:
percentleft_batteries.append(p)
commasplitstatus_batteries.append(commasplitstatus)
state = state_batteries[0]
commasplitstatus = commasplitstatus_batteries[0]
if percentleft_batteries:
percentleft = int(sum(percentleft_batteries)/len(percentleft_batteries))
else:
percentleft = 0
# stands for charging
FA_LIGHTNING = "<span color='yellow'><span font='FontAwesome'>\uf0e7</span></span>"
# stands for plugged in
FA_PLUG = "<span font='FontAwesome'>\uf1e6</span>"
# stands for using battery
FA_BATTERY = "<span font='FontAwesome'>\uf240</span>"
# stands for unknown status of battery
FA_QUESTION = "<span font='FontAwesome'>\uf128</span>"
if state == "Discharging":
fulltext = FA_BATTERY + " "
elif state == "Full":
fulltext = FA_PLUG + " "
timeleft = ""
elif state == "Unknown":
fulltext = FA_QUESTION + " " + FA_BATTERY + " "
timeleft = ""
else:
fulltext = FA_LIGHTNING + " " + FA_PLUG + " "
def color(percent):
if percent < 10:
# exit code 33 will turn background red
return "#FFFFFF"
if percent < 20:
return "#FF3300"
if percent < 30:
return "#FF6600"
if percent < 50:
return "#FFCC00"
if percent < 60:
return "#FFFF00"
if percent < 70:
return "#FFFF33"
if percent < 80:
return "#FFFF66"
return "#FFFFFF"
form = '<span color="{}">{}%</span>'
fulltext += form.format(color(percentleft), percentleft)
fulltext += timeleft
print(fulltext)
print(fulltext)
if percentleft < 10:
exit(33)

View File

@ -1,35 +0,0 @@
#!/bin/bash
DATEFMT=${DATEFMT:-"+%a %d.%m.%Y %H:%M:%S"}
SHORTFMT=${SHORTFMT:-"+%H:%M:%S"}
OPTIND=1
while getopts ":f:" opt; do
case $opt in
f) DATEFMT="$OPTARG" ;;
\?)
echo "Invalid option: -$OPTARG" >&2
exit 1
;;
:)
echo "Option -$OPTARG requires an argument." >&2
exit 1
;;
esac
done
case "$BLOCK_BUTTON" in
1|2|3)
# Try to focus Thunderbird
i3-msg -q [class="Thunderbird" instance="Mail"] focus
if [ $? == 2 ]
then
# Open Thunderbird if it was not open
i3-msg -q "exec thunderbird -mail -calendar"
else
# Open calendar
xdotool key --clearmodifiers --delay 5 ctrl+shift+c
fi
esac
echo "$LABEL$(date "$DATEFMT")"
echo "$LABEL$(date "$SHORTFMT")"

View File

@ -1,37 +0,0 @@
# i3blocks configuration file
#
# The i3blocks man page describes the usage of the binary,
# and its website describes the configuration:
#
# https://vivien.github.io/i3blocks
# Global properties
separator=true
separator_block_width=15
[activity]
command=./activity
interval=10
LABEL=
[dunst]
command=./dunst
markup=pango
interval=once
format=json
[volume]
command=./volume
LABEL=
interval=10
signal=1
[battery]
command=./battery
markup=pango
interval=120
[calendar]
command=./calendar
interval=1

View File

@ -1,60 +0,0 @@
#!/usr/bin/env python3
"""
A do-not-disturb button for muting Dunst notifications in i3 using i3blocks
Mute is handled by passing 'DUNST_COMMAND_PAUSE' and 'DUNST_COMMAND_RESUME' to
the notify-send script and the 'DUNST_MUTE' environment variable is set to keep
track of the toggle.
"""
__author__ = "Jessey White-Cinis <j@cin.is>"
__copyright__ = "Copyright (c) 2019 Jessey White-Cinis"
__license__ = "MIT"
__version__ = "1.1.0"
import os
import subprocess
import json
def mute_on():
'''Turns off dunst notifications'''
subprocess.run(["dunstctl", "set-paused", "true"], check=True)
return {
"full_text":"<span font='Font Awesome 5 Free Solid' color='#BE616E'>\uf1f6</span>",
"DUNST_MUTE":"on"
}
def mute_off():
'''Turns back on dunst notifications'''
subprocess.run(["dunstctl", "set-paused", "false"], check=True)
return {
"full_text":"<span font='Font Awesome 5 Free Solid' color='#FFFFFF'>\uf0f3</span>",
"DUNST_MUTE":"off"
}
def clicked():
'''Returns True if the button was clicked'''
button = "BLOCK_BUTTON" in os.environ and os.environ["BLOCK_BUTTON"]
return bool(button)
def muted():
'''Returns True if Dunst is muted'''
cmd = ['dunstctl', 'is-paused']
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE)
output = proc.communicate()[0]
return u'true' == output.strip().decode("UTF-8")
if clicked():
# toggle button click to turn mute on and off
if muted():
RTN = mute_off()
else:
RTN = mute_on()
else:
# Set default state using 'DUNST_MUTE' environment variable
if muted():
RTN = mute_on()
else:
RTN = mute_off()
print(json.dumps(RTN))

View File

@ -1,26 +0,0 @@
#!/bin/sh
get_current_layout () {
setxkbmap -print | grep -q dvorak
if [ "$?" -eq "0" ]; then
echo dvorak
else
echo qwertz
fi
}
case "$BLOCK_BUTTON" in
1|2|3)
# Switch layout
current_layout=$(get_current_layout)
if [ $current_layout == dvorak ]; then
setxkbmap -layout de
else
setxkbmap -layout de -variant dvorak
fi
esac
current_layout=$(get_current_layout)
echo "$LABEL $current_layout"
echo "$LABEL $current_layout"

View File

@ -1,91 +0,0 @@
#!/usr/bin/env bash
# Copyright (C) 2014 Julien Bonjean <julien@bonjean.info>
# Copyright (C) 2014 Alexander Keller <github@nycroth.com>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#------------------------------------------------------------------------
# The second parameter overrides the mixer selection
# For PulseAudio users, eventually use "pulse"
# For Jack/Jack2 users, use "jackplug"
# For ALSA users, you may use "default" for your primary card
# or you may use hw:# where # is the number of the card desired
if [[ -z "$MIXER" ]] ; then
MIXER="default"
if command -v pulseaudio >/dev/null 2>&1 && pulseaudio --check ; then
# pulseaudio is running, but not all installations use "pulse"
if amixer -D pulse info >/dev/null 2>&1 ; then
MIXER="pulse"
fi
fi
[ -n "$(lsmod | grep jack)" ] && MIXER="jackplug"
MIXER="${2:-$MIXER}"
fi
# The instance option sets the control to report and configure
# This defaults to the first control of your selected mixer
# For a list of the available, use `amixer -D $Your_Mixer scontrols`
if [[ -z "$SCONTROL" ]] ; then
SCONTROL="${BLOCK_INSTANCE:-$(amixer -D $MIXER scontrols |
sed -n "s/Simple mixer control '\([^']*\)',0/\1/p" |
head -n1
)}"
fi
# The first parameter sets the step to change the volume by (and units to display)
# This may be in in % or dB (eg. 5% or 3dB)
if [[ -z "$STEP" ]] ; then
STEP="${1:-5%}"
fi
# AMIXER(1):
# "Use the mapped volume for evaluating the percentage representation like alsamixer, to be
# more natural for human ear."
NATURAL_MAPPING=${NATURAL_MAPPING:-0}
if [[ "$NATURAL_MAPPING" != "0" ]] ; then
AMIXER_PARAMS="-M"
fi
#------------------------------------------------------------------------
capability() { # Return "Capture" if the device is a capture device
amixer $AMIXER_PARAMS -D $MIXER get $SCONTROL |
sed -n "s/ Capabilities:.*cvolume.*/Capture/p"
}
volume() {
amixer $AMIXER_PARAMS -D $MIXER get $SCONTROL $(capability)
}
format() {
perl_filter='if (/.*\[(\d+%)\] (\[(-?\d+.\d+dB)\] )?\[(on|off)\]/)'
perl_filter+='{CORE::say $4 eq "off" ? "MUTE" : "'
# If dB was selected, print that instead
perl_filter+=$([[ $STEP = *dB ]] && echo '$3' || echo '$1')
perl_filter+='"; exit}'
output=$(perl -ne "$perl_filter")
echo "$LABEL $output"
}
#------------------------------------------------------------------------
case $BLOCK_BUTTON in
1|2|3) pavucontrol ;; # right click, open gui
4) amixer $AMIXER_PARAMS -q -D $MIXER sset $SCONTROL $(capability) ${STEP}+ unmute ;; # scroll up, increase
5) amixer $AMIXER_PARAMS -q -D $MIXER sset $SCONTROL $(capability) ${STEP}- unmute ;; # scroll down, decrease
esac
volume | format

12
laptop-nix.conf Normal file
View File

@ -0,0 +1,12 @@
build-users-group = nixbld
experimental-features = nix-command flakes
builders-use-substitutes = true
trusted-substituters = ssh://192.168.3.118
substituters = ssh://192.168.3.118 https://cache.nixos.org https://nix-community.cachix.org
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
builders = ssh://192.168.3.118 x86_64-linux,aarch64-linux - 16 2 kvm,big-parallel,nixos-test
extra-platforms = aarch64-linux
extra-sandbox-paths = /usr/bin/qemu-aarch64-static

15
lib/module/default.nix Normal file
View File

@ -0,0 +1,15 @@
{ lib, ... }:
with lib;
rec {
mkOpt =
type: default: description:
mkOption { inherit type default description; };
mkOpt' = type: default: mkOpt type default null;
mkBoolOpt = mkOpt types.bool;
mkBoolOpt' = mkOpt' types.bool;
mkEnableOpt = mkBoolOpt' false;
}

View File

@ -0,0 +1,3 @@
import = [
"~/.config/alacritty/theme/themes/smoooooth.toml"
]

View File

@ -0,0 +1,41 @@
{
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
# as well as the libraries available from your flake's inputs.
lib,
# An instance of `pkgs` with your overlays and packages applied is also available.
pkgs,
# You also have access to your flake's inputs.
inputs,
# Additional metadata is provided by Snowfall Lib.
system, # The system architecture for this host (eg. `x86_64-linux`).
target, # The Snowfall Lib target for this system (eg. `x86_64-iso`).
format, # A normalized name for the system target (eg. `iso`).
virtual, # A boolean to determine whether this system is a virtual target using nixos-generators.
systems, # An attribute map of your defined hosts.
# All other arguments come from the module system.
config,
...
}:
let
cfg = config.modules.alacritty;
in
{
options.modules.alacritty = {
enable = lib.mkOption { default = false; };
mkDefault = lib.mkOption { default = true; };
};
config = lib.mkIf cfg.enable {
home.packages = with pkgs; [ (lib.mkIf config.modules.non-nixos.is-nixos alacritty) ];
home.file = {
".config/alacritty/theme".source = "${inputs.alacritty-theme}";
".config/alacritty/alacritty.toml".source = ./alacritty.toml;
};
home.sessionVariables.TERMINAL = lib.mkIf cfg.mkDefault "alacritty";
};
}

View File

@ -0,0 +1,39 @@
{
options,
config,
lib,
pkgs,
inputs,
...
}:
let
inherit (inputs.nix-colors.lib-contrib { inherit pkgs; }) gtkThemeFromScheme;
cfg = config.modules.desktop;
in
{
options.modules.desktop =
with lib.frajul;
with lib.types;
{
colorscheme = mkOpt str "catppuccin-mocha" "Theme to use for the desktop";
enable = mkBoolOpt false "Enable desktop";
};
# Do not make conditional, just toggle things on and off
imports = [ inputs.nix-colors.homeManagerModules.default ];
config = lib.mkIf cfg.enable {
# home.sessionVariables.GTK_THEME = "Catppuccin-Mocha-Compact-Blue-dark";
gtk = {
enable = true;
theme = {
name = inputs.nix-colors.colorschemes.${cfg.colorscheme}.slug;
package = gtkThemeFromScheme { scheme = inputs.nix-colors.colorschemes.${cfg.colorscheme}; };
};
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme;
};
};
};
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 823 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 759 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1024 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 499 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 607 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 719 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 831 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 354 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 861 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 537 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 261 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 342 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 412 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 595 KiB

View File

@ -0,0 +1,36 @@
{
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
# as well as the libraries available from your flake's inputs.
lib,
# An instance of `pkgs` with your overlays and packages applied is also available.
pkgs,
# You also have access to your flake's inputs.
inputs,
# Additional metadata is provided by Snowfall Lib.
system, # The system architecture for this host (eg. `x86_64-linux`).
target, # The Snowfall Lib target for this system (eg. `x86_64-iso`).
format, # A normalized name for the system target (eg. `iso`).
virtual, # A boolean to determine whether this system is a virtual target using nixos-generators.
systems, # An attribute map of your defined hosts.
# All other arguments come from the module system.
config,
...
}:
let
cfg = config.modules.shell.direnv;
in
{
options.modules.shell.direnv = {
enable = lib.mkOption { default = false; };
};
config = lib.mkIf cfg.enable {
programs.direnv = {
enable = true;
nix-direnv.enable = true;
};
};
}

View File

@ -0,0 +1,96 @@
{
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
# as well as the libraries available from your flake's inputs.
lib,
# An instance of `pkgs` with your overlays and packages applied is also available.
pkgs,
# You also have access to your flake's inputs.
inputs,
# Additional metadata is provided by Snowfall Lib.
system, # The system architecture for this host (eg. `x86_64-linux`).
target, # The Snowfall Lib target for this system (eg. `x86_64-iso`).
format, # A normalized name for the system target (eg. `iso`).
virtual, # A boolean to determine whether this system is a virtual target using nixos-generators.
systems, # An attribute map of your defined hosts.
# All other arguments come from the module system.
config,
...
}:
with lib;
let
cfg = config.modules.emacs;
doomRepoUrl = "https://github.com/doomemacs/doomemacs";
configRepoUrl = "https://gitlab.julian-mutter.de/julian/emacs-config";
in
{
options.modules.emacs = {
enable = mkOption { default = false; };
};
config = mkIf cfg.enable {
home.sessionPath = [ "/home/julian/.config/emacs/bin" ];
home.packages =
with pkgs;
[
binutils # native-comp needs 'as', provided by this
## Doom dependencies
git
(ripgrep.override { withPCRE2 = true; })
## Optional dependencies
fd # faster projectile indexing
imagemagick # for image-dired
zstd # for undo-fu-session/undo-tree compression
## Module dependencies
(aspellWithDicts (
ds: with ds; [
en
en-computers
en-science
de
]
))
hunspell
hunspellDicts.de_DE
hunspellDicts.en_US
sqlite
# Code formatters for use with doom emacs
nixfmt-rfc-style # nix
nixd # nix lsp
dockfmt # docker
google-java-format # java
black # python
rustfmt # rust
shfmt
pyright
clang-tools # c++ lsp etc
ltex-ls # latex languagetool
graphviz
# Lsps for use with doom emacs
# neocmakelsp # cmake
emacs-all-the-icons-fonts
]
++ lib.optional config.modules.non-nixos.is-nixos emacs;
home.activation.installDoomEmacs = lib.home-manager.hm.dag.entryAfter [ "writeBoundary" ] ''
if [ ! -d "/home/julian/.config/emacs" ]; then
$DRY_RUN_CMD ${pkgs.git}/bin/git clone --depth=1 --single-branch "${doomRepoUrl}" "/home/julian/.config/emacs"
fi
if [ ! -d "/home/julian/.config/doom" ]; then
$DRY_RUN_CMD ${pkgs.git}/bin/git clone "${configRepoUrl}" "/home/julian/.config/doom"
fi
'';
};
}

View File

@ -0,0 +1,80 @@
{
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
# as well as the libraries available from your flake's inputs.
lib,
# An instance of `pkgs` with your overlays and packages applied is also available.
pkgs,
# You also have access to your flake's inputs.
inputs,
# Additional metadata is provided by Snowfall Lib.
system, # The system architecture for this host (eg. `x86_64-linux`).
target, # The Snowfall Lib target for this system (eg. `x86_64-iso`).
format, # A normalized name for the system target (eg. `iso`).
virtual, # A boolean to determine whether this system is a virtual target using nixos-generators.
systems, # An attribute map of your defined hosts.
# All other arguments come from the module system.
config,
...
}:
with lib;
let
cfg = config.modules.shell.fish;
in
{
options.modules.shell.fish = {
enable = mkOption { default = false; };
};
config = mkIf cfg.enable {
home.file = {
".config/starship.toml".source = ./starship.toml;
".config/fish/conf.d/last-working-dir.fish".source = ./last-working-dir.fish;
};
home.packages = with pkgs; [
starship
lazygit
];
home.shellAliases = {
g = "lazygit";
ls = "ls --color";
la = "ls -Alh --color";
grep = "grep --color";
conf = "edit-config";
};
programs.starship = {
enable = true;
enableFishIntegration = true;
};
programs.fish = {
enable = true;
interactiveShellInit = "set fish_greeting"; # Disable default greeting
functions = {
mkcd = ''
mkdir $argv
cd $argv
'';
run = ''
nix run nixpkgs#"$argv[1]" -- $argv[2..-1]
'';
shell = ''
set args
for arg in $argv
set args $args nixpkgs#$arg
end
nix shell $args
'';
};
};
};
}

View File

@ -0,0 +1,7 @@
function lwd
cd $LAST_WORKING_DIR
end
function __onpwd --on-variable PWD
set --universal LAST_WORKING_DIR $PWD
end

View File

@ -0,0 +1,14 @@
# newline between shell prompts
add_newline = false
#format = "$all$directory$character"
[line_break]
disabled = true
[directory]
fish_style_pwd_dir_length = 1
[status]
map_symbol = true
format = '[$symbol$status $common_meaning$signal_name$maybe_int]($style) '
disabled = false

View File

@ -0,0 +1,48 @@
{
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
# as well as the libraries available from your flake's inputs.
lib,
# An instance of `pkgs` with your overlays and packages applied is also available.
pkgs,
# You also have access to your flake's inputs.
inputs,
# Additional metadata is provided by Snowfall Lib.
system, # The system architecture for this host (eg. `x86_64-linux`).
target, # The Snowfall Lib target for this system (eg. `x86_64-iso`).
format, # A normalized name for the system target (eg. `iso`).
virtual, # A boolean to determine whether this system is a virtual target using nixos-generators.
systems, # An attribute map of your defined hosts.
# All other arguments come from the module system.
config,
host,
...
}:
with lib;
let
cfg = config.modules.fonts;
in
{
options.modules.fonts = {
enable = mkOption { default = false; };
};
config = mkIf cfg.enable {
fonts.fontconfig.enable = true; # required to autoload fonts from packages
home.packages = with pkgs; [
(nerdfonts.override { fonts = [ "FiraCode" ]; })
font-awesome
dejavu_fonts
noto-fonts
noto-fonts-cjk-sans
noto-fonts-emoji
liberation_ttf
fira-code
fira-code-symbols
source-code-pro
];
};
}

View File

@ -0,0 +1,41 @@
{
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
# as well as the libraries available from your flake's inputs.
lib,
# An instance of `pkgs` with your overlays and packages applied is also available.
pkgs,
# You also have access to your flake's inputs.
inputs,
# Additional metadata is provided by Snowfall Lib.
system, # The system architecture for this host (eg. `x86_64-linux`).
target, # The Snowfall Lib target for this system (eg. `x86_64-iso`).
format, # A normalized name for the system target (eg. `iso`).
virtual, # A boolean to determine whether this system is a virtual target using nixos-generators.
systems, # An attribute map of your defined hosts.
# All other arguments come from the module system.
config,
host,
...
}:
with lib;
let
cfg = config.modules.gammastep;
in
{
options.modules.gammastep = {
enable = mkOption { default = false; };
};
config = mkIf cfg.enable {
services.gammastep = {
enable = true;
latitude = 47.92;
longitude = 10.12;
provider = "manual";
};
};
}

View File

@ -0,0 +1,311 @@
{
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
# as well as the libraries available from your flake's inputs.
lib,
# An instance of `pkgs` with your overlays and packages applied is also available.
pkgs,
# You also have access to your flake's inputs.
inputs,
# Additional metadata is provided by Snowfall Lib.
namespace, # The namespace used for your flake, defaulting to "internal" if not set.
system, # The system architecture for this host (eg. `x86_64-linux`).
target, # The Snowfall Lib target for this system (eg. `x86_64-iso`).
format, # A normalized name for the system target (eg. `iso`).
virtual, # A boolean to determine whether this system is a virtual target using nixos-generators.
systems, # An attribute map of your defined hosts.
# All other arguments come from the module system.
config,
...
}:
let
cfg = config.modules.hyprland;
inherit (inputs.nix-colors.colorschemes.${builtins.toString config.modules.desktop.colorscheme})
palette
;
in
{
options.modules.hyprland = with lib.frajul; {
enable = mkBoolOpt false "Enable or disable the hyprland window manager.";
};
imports = [ inputs.hyprland.homeManagerModules.default ];
config = lib.mkIf cfg.enable {
modules.desktop.addons = {
waybar.enable = true;
wofi.enable = true;
mako.enable = true;
hyprlock.enable = true;
wlogout.enable = true;
};
home.packages = with pkgs; [
# hyprpicker # TODO
# hyprcursor # TODO
brightnessctl
# grimblast
frajul.hyprshot-gui
];
# services.hypridle = {
# enable = true;
# settings = {
# general = {
# after_sleep_cmd = "hyprctl dispatch dpms on";
# ignore_dbus_inhibit = false;
# lock_cmd = "hyprlock";
# };
# listener = [
# {
# timeout = 300; # 5min
# on-timeout = "brightnessctl -s set 10"; # set monitor backlight to minimum, avoid 0 on OLED monitor.
# on-resume = "brightnessctl -r"; # monitor backlight restore.
# }
# {
# timeout = 360; # 6min
# on-timeout = "hyprlock"; # lock screen when timeout has passed
# }
# {
# timeout = 600; # 10min
# on-timeout = "hyprctl dispatch dpms off"; # screen off when timeout has passed
# on-resume = "hyprctl dispatch dpms on"; # screen on when activity is detected after timeout has fired.
# }
# ];
# };
# };
# services.hypridle.enable = true; # can be configured
services.network-manager-applet.enable = true;
wayland.windowManager.hyprland = {
# Whether to enable Hyprland wayland compositor
enable = true;
package = inputs.hyprland.packages."${pkgs.system}".hyprland; # does only work with nixos-unstable
# The hyprland package to use (simplifies use of plugins)
# package = inputs.hyprland.packages.${pkgs.system}.hyprland;
# Whether to enable XWayland
xwayland.enable = true;
# Optional
# Whether to enable hyprland-session.target on hyprland startup
systemd.enable = true;
# Make PATH available to systemd services
systemd.variables = [ "--all" ];
plugins = [
inputs.hyprland-plugins.packages.${pkgs.system}.hyprbars # does only work with nixos-unstable
# hyprlandPlugins.hyprbars
];
settings = {
"$mod" = "SUPER";
# Monitors
monitor = ",preferred,auto,auto";
# Autostart
exec-once = [ "firefox" ];
# Look and Feel
general = {
gaps_in = 5;
gaps_out = 5;
layout = "dwindle";
"col.active_border" = "0xff${palette.base0C} 0xff${palette.base0D} 270deg";
"col.inactive_border" = "0xff${palette.base00}";
};
decoration = {
# power saving
blur.enabled = false;
# power saving
drop_shadow = false;
};
# Dwindle layout
dwindle = {
pseudotile = true; # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true; # You probably want this
no_gaps_when_only = 2; # with border
};
# Master layout
master = {
new_status = "slave";
no_gaps_when_only = 2; # with border
mfact = 0.5; # Do not make master bigger
};
misc = {
# disable auto polling for config file changes
disable_autoreload = true;
force_default_wallpaper = 0;
# we do, in fact, want direct scanout
# no_direct_scanout = false;
vfr = true; # power saving
};
# Input
input = {
kb_layout = "de";
natural_scroll = false;
follow_mouse = 1;
};
# Window rules
windowrulev2 = [
"suppressevent maximize, class:.*"
"workspace 1, class:firefox"
"workspace 9, class:nheko"
"workspace 9, class:org.telegram.desktop"
"workspace 10, class:thunderbird"
"float, class:qalculate-gtk"
"tile, class:MATLAB, title:MATLAB"
];
# Workspace rules
workspace = [
"1, monitor:HDMI-A-1"
"2, monitor:HDMI-A-1"
"3, monitor:HDMI-A-1"
"4, monitor:HDMI-A-1"
"5, monitor:HDMI-A-1"
"6, monitor:eDP-1"
"7, monitor:eDP-1"
"8, monitor:eDP-1"
"9, monitor:eDP-1"
"10, monitor:eDP-1"
];
# Mouse binds
bindm = [
"$mod, mouse:272, movewindow" # leftclick
"$mod, mouse:273, resizewindow" # rightclick
];
# binds
bind = [
# compositor commands
"$mod, Space, focuswindow, floating"
"$mod SHIFT, Space, togglefloating,"
"$mod, F, fullscreen,"
"$mod, X, killactive,"
"$mod, O, togglesplit," # dwindle
# opening applications
"$mod, D, exec, wofi --show drun,run"
"$mod, E, exec, pcmanfm"
"$mod, Return, exec, kitty"
"$mod, B, exec, firefox"
"$mod, C, exec, qalculate-gtk"
# other commands
"$mod SHIFT, E, exec, wlogout -p layer-shell"
"$mod, Escape, exec, wlogout -p layer-shell"
"$mod, TAB, exec, hyprlock"
"$mod SHIFT, R, exec, hyprctl reload"
", Print, exec, hyprshot-gui"
# "$mod SHIFT, E, exec, pkill Hyprland"
# "$mod, G, togglegroup,"
# "$mod SHIFT, N, changegroupactive, f"
# "$mod SHIFT, P, changegroupactive, b"
# "$mod ALT, ,resizeactive,"
# media keys
", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
", XF86AudioPlay, exec, playerctl play-pause"
", XF86AudioPause, exec, playerctl pause"
", XF86AudioStop, exec, playerctl stop"
", XF86AudioNext, exec, playerctl next"
", XF86AudioPrev, exec, playerctl previous"
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
", XF86MonBrightnessUp, exec, brightnessctl --class backlight set 5%+"
", XF86MonBrightnessDown, exec, brightnessctl --class backlight set 5%-"
# move focus
"$mod, left, movefocus, l"
"$mod, H, movefocus, l"
"$mod, right, movefocus, r"
"$mod, L, movefocus, r"
"$mod, up, movefocus, u"
"$mod, K, movefocus, u"
"$mod, down, movefocus, d"
"$mod, J, movefocus, d"
# move window
"$mod SHIFT, left, movewindow, l"
"$mod SHIFT, H, movewindow, l"
"$mod SHIFT, right, movewindow, r"
"$mod SHIFT, L, movewindow, r"
"$mod SHIFT, up, movewindow, u"
"$mod SHIFT, K, movewindow, u"
"$mod SHIFT, down, movewindow, d"
"$mod SHIFT, J, movewindow, d"
# Switch workspaces with mainMod + [0-9]
"$mod, 1, workspace, 1"
"$mod, 2, workspace, 2"
"$mod, 3, workspace, 3"
"$mod, 4, workspace, 4"
"$mod, 5, workspace, 5"
"$mod, 6, workspace, 6"
"$mod, 7, workspace, 7"
"$mod, 8, workspace, 8"
"$mod, 9, workspace, 9"
"$mod, 0, workspace, 10"
# Move active window to a workspace with mainMod + SHIFT + [0-9]
"$mod SHIFT, 1, movetoworkspace, 1"
"$mod SHIFT, 2, movetoworkspace, 2"
"$mod SHIFT, 3, movetoworkspace, 3"
"$mod SHIFT, 4, movetoworkspace, 4"
"$mod SHIFT, 5, movetoworkspace, 5"
"$mod SHIFT, 6, movetoworkspace, 6"
"$mod SHIFT, 7, movetoworkspace, 7"
"$mod SHIFT, 8, movetoworkspace, 8"
"$mod SHIFT, 9, movetoworkspace, 9"
"$mod SHIFT, 0, movetoworkspace, 10"
# Move active window to a workspace without following with mainMod + CTRL + [0-9]
"$mod CTRL, 1, movetoworkspacesilent, 1"
"$mod CTRL, 2, movetoworkspacesilent, 2"
"$mod CTRL, 3, movetoworkspacesilent, 3"
"$mod CTRL, 4, movetoworkspacesilent, 4"
"$mod CTRL, 5, movetoworkspacesilent, 5"
"$mod CTRL, 6, movetoworkspacesilent, 6"
"$mod CTRL, 7, movetoworkspacesilent, 7"
"$mod CTRL, 8, movetoworkspacesilent, 8"
"$mod CTRL, 9, movetoworkspacesilent, 9"
"$mod CTRL, 0, movetoworkspacesilent, 10"
];
plugin = {
hyprbars = {
bar_text_size = 10;
bar_height = 16;
bar_text_font = "Ubuntu Nerd Font";
bar_precedence_over_border = true;
bar_color = "rgb(${palette.base01})";
hyprbars-button = [ "rgb(${palette.base03}), 14, 󰖭, hyprctl dispatch killactive" ];
};
};
};
};
};
}

View File

@ -0,0 +1,57 @@
{
options,
config,
lib,
pkgs,
inputs,
...
}:
let
cfg = config.modules.desktop.addons.hyprlock;
inherit (inputs.nix-colors.colorschemes.${builtins.toString config.modules.desktop.colorscheme})
palette
;
in
{
options.modules.desktop.addons.hyprlock =
with lib.frajul;
with lib.types;
{
enable = mkBoolOpt false "Enable or disable the hyprlock screen locker.";
};
config = lib.mkIf cfg.enable {
programs.hyprlock.enable = true;
programs.hyprlock.settings = {
general = {
disable_loading_bar = true;
hide_cursor = true;
ignore_empty_input = true;
};
background = [
{
color = "#${palette.base00}";
# path = "screenshot";
# blur_passes = 3;
# blur_size = 8;
}
];
input-field = [
{
size = "200, 50";
position = "0, -80";
monitor = "";
dots_center = true;
fade_on_empty = false;
font_color = "#${palette.base0B}";
inner_color = "#${palette.base01}";
outer_color = "#${palette.base05}";
outline_thickness = 5;
placeholder_text = "Password...";
}
];
};
};
}

View File

@ -0,0 +1,39 @@
{
options,
config,
lib,
pkgs,
inputs,
...
}:
let
cfg = config.modules.desktop.addons.mako;
inherit (inputs.nix-colors.colorschemes.${builtins.toString config.modules.desktop.colorscheme})
palette
;
in
{
options.modules.desktop.addons.mako =
with lib.frajul;
with lib.types;
{
enable = mkBoolOpt false "Enable or disable mako";
};
config = lib.mkIf cfg.enable {
home.packages = with pkgs; [ libnotify ];
services.mako = {
enable = true;
defaultTimeout = 5000; # milliseconds, can be overwritten by notification sender
backgroundColor = "#${palette.base00}";
textColor = "#${palette.base05}";
borderColor = "#${palette.base0D}";
progressColor = "over #${palette.base02}";
extraConfig = ''
[urgency=high]
border-color=#${palette.base09}
'';
};
};
}

View File

@ -0,0 +1,96 @@
{
"layer": "top",
"position": "bottom",
"mode": "dock",
"exclusive": true,
"passtrough": true,
"height": 16,
"modules-left": [
"hyprland/workspaces"
],
"modules-center": [],
"modules-right": ["idle_inhibitor", "disk", "cpu", "memory", "pulseaudio", "battery", "clock", "tray"],
"hyprland/workspaces": {
"on-scroll-up": "hyprctl dispatch workspace m+1",
"on-scroll-down": "hyprctl dispatch workspace m-1",
"all-outputs": false,
"on-click": "activate",
"format": "{icon}",
"format-icons": {
"1": "1",
"2": "2",
"3": "3",
"4": "4",
"5": "5",
"6": "6",
"7": "7",
"8": "8",
"9": "9",
"10": "10"
}
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "",
"deactivated": ""
}
},
"disk": {
"interval": 30,
"format": "Free: {percentage_free}% ({free})",
"path": "/",
"unit": "GB"
},
"cpu": {
"format": " {usage}%"
},
"memory": {
"format": " {}%"
},
"pulseaudio": {
"format": "{icon} {volume}%",
"format-muted": "<big>󰝟</big>",
"format-icons": {
"headphone": "",
"default": ["", "", ""]
},
"scroll-step": 5.0,
"max-volume": 200,
"on-click": "pulseaudio-popup",
"on-click-right": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
},
"battery": {
"states": {
"warning": 30,
"critical": 15
},
"format": "{icon} {capacity}% ({time})",
"format-charging": " {capacity}% ({time})",
"format-plugged": " {capacity}% ({time})",
"format-full": "{icon} ",
"format-icons": ["", "", "", "", ""]
},
"clock": {
"tooltip-format": "{calendar}",
"format": "{:%a %d.%m %H:%M:%S}",
"interval": 1
},
"tray": {
"icon-size": 20,
"tooltip": false,
"spacing": 10
}
}

View File

@ -0,0 +1,49 @@
{
options,
config,
pkgs,
lib,
inputs,
...
}:
with lib;
with lib.frajul;
let
cfg = config.modules.desktop.addons.waybar;
inherit (inputs.nix-colors.colorschemes.${builtins.toString config.modules.desktop.colorscheme})
palette
;
in
{
options.modules.desktop.addons.waybar = with types; {
enable = mkBoolOpt false "Enable or disable waybar";
};
config = mkIf cfg.enable {
programs.waybar = {
enable = true;
systemd.enable = true;
settings.mainBar = builtins.fromJSON (builtins.readFile ./config.json);
};
xdg.configFile."waybar/style.css".source = ./style.css;
xdg.configFile."waybar/theme.css".text = ''
/*
bg - background
fg - foreground
*/
/* Main Colors */
@define-color background #${palette.base00};
@define-color foreground #${palette.base05};
/* Workspace Button Colors */
@define-color hover-bg #${palette.base01};
@define-color hover-fg #${palette.base05};
@define-color active-bg #${palette.base02};
@define-color active-fg #${palette.base0A};
@define-color urgent-bg #${palette.base08};
@define-color urgent-fg #${palette.base00};
'';
};
}

View File

@ -0,0 +1,94 @@
* {
/* `otf-font-awesome` is required to be installed for icons */
font-family: JetBrainsMono Nerd Font;
font-size: 16px;
}
/* This imports the base16 colors */
@import "theme.css";
/* Main Background */
window#waybar { background: @background; }
/* Tooltip Styling */
tooltip {
color: @foreground;
background: @background;
border: solid;
border-width: 1.5px;
border-radius: 7px;
border-color: white;
}
/* Workspace Button */
#workspaces button {
color: @foreground;
border-radius: 5px;
box-shadow: none;
margin-top: 2px;
margin-bottom: 2px;
margin-left: 0px;
margin-right: 0px;
padding: 0px;
padding-right: 2px;
padding-left: 2px;
}
/* Opened workspaces (also on other screen) */
#workspaces button.visible{
color: @active-fg;
background: @hover-bg;
box-shadow: none;
}
/* Active Workspace Button */
#workspaces button.active {
color: @active-fg;
background: @active-bg;
box-shadow: 0px 0px 2px 1px rgba(0, 0, 0, 1);
margin-right: 2px;
margin-left: 2px;
padding-right: 6px;
padding-left: 6px;
transition: all 0.4s cubic-bezier(.55,-0.68,.48,1.682);
}
/* Hover Effect for Workspace Buttons */
#workspaces button.inactive:hover {
color: @hover-fg;
background: @hover-bg;
box-shadow: none;
}
/* Urgent Workspace Buttons */
#workspaces button.urgent {
color: @urgent-fg;
background: @urgent-bg;
box-shadow: none;
}
/* General Module Styling */
#idle_inhibitor,
#disk,
#cpu,
#memory,
#pulseaudio,
#battery,
#clock,
#tray {
color: @foreground;
padding: 0 10px;
margin-top: 0px;
margin-bottom: 0px;
margin-right: 2px;
margin-left: 2px;
}
/* #battery.warning { */
/* color: #${palette.base08}; */
/* } */
/* #pulseaudio.muted { */
/* color: #${palette.base08}; */
/* padding-right: 16px; */
/* } */

View File

@ -0,0 +1,50 @@
{
options,
config,
lib,
pkgs,
inputs,
...
}:
let
cfg = config.modules.desktop.addons.wlogout;
inherit (inputs.nix-colors.colorschemes.${builtins.toString config.modules.desktop.colorscheme})
palette
;
in
{
options.modules.desktop.addons.wlogout =
with lib.frajul;
with lib.types;
{
enable = mkBoolOpt false "Enable or disable wlogout.";
};
config = lib.mkIf cfg.enable {
home.packages = with pkgs; [ wlogout ];
# xdg.configFile."wlogout/style.css".text = ''
# * {
# all: unset;
# font-family: JetBrains Mono Nerd Font;
# }
# window {
# background-color: #${palette.base00};
# }
# button {
# color: #${palette.base01};
# font-size: 64px;
# background-color: rgba(0,0,0,0);
# outline-style: none;
# margin: 5px;
# }
# button:focus, button:active, button:hover {
# color: #${palette.base0D};
# transition: ease 0.4s;
# }
# '';
};
}

View File

@ -0,0 +1,15 @@
width=900
height=600
location=center
show=drun,run
prompt=Search...
filter_rate=100
allow_markup=true
no_actions=true
halign=fill
orientation=vertical
content_halign=fill
insensitive=true
allow_images=true
image_size=35
gtk_dark=true

View File

@ -0,0 +1,97 @@
{
options,
config,
lib,
pkgs,
inputs,
...
}:
let
cfg = config.modules.desktop.addons.wofi;
inherit (inputs.nix-colors.colorschemes.${builtins.toString config.modules.desktop.colorscheme})
palette
;
in
{
options.modules.desktop.addons.wofi =
with lib.frajul;
with lib.types;
{
enable = mkBoolOpt false "Enable or disable the wofi run launcher.";
};
config = lib.mkIf cfg.enable {
home.packages = with pkgs; [ wofi ];
xdg.configFile."wofi/config".source = ./config;
xdg.configFile."wofi/style.css".text = ''
window {
margin: 5px;
border: 5px solid #181926;
background-color: #${palette.base00};
border-radius: 15px;
font-family: "JetBrainsMono";
font-size: 14px;
}
#input {
all: unset;
min-height: 36px;
padding: 4px 10px;
margin: 4px;
border: none;
color: #${palette.base05};
font-weight: bold;
background-color: #${palette.base01};
outline: none;
border-radius: 15px;
margin: 10px;
margin-bottom: 2px;
}
#inner-box {
margin: 4px;
padding: 10px;
font-weight: bold;
border-radius: 15px;
}
#outer-box {
margin: 0px;
padding: 3px;
border: none;
border-radius: 15px;
border: 5px solid #${palette.base01};
}
#scroll {
margin-top: 5px;
border: none;
border-radius: 15px;
margin-bottom: 5px;
}
#text:selected {
color: #${palette.base01};
margin: 0px 0px;
border: none;
border-radius: 15px;
}
#entry {
margin: 0px 0px;
border: none;
border-radius: 15px;
background-color: transparent;
}
#entry:selected {
margin: 0px 0px;
border: none;
border-radius: 15px;
background: #${palette.base0D};
background-size: 400% 400%;
}
'';
};
}

View File

@ -0,0 +1,79 @@
{
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
# as well as the libraries available from your flake's inputs.
lib,
# An instance of `pkgs` with your overlays and packages applied is also available.
pkgs,
# You also have access to your flake's inputs.
inputs,
# Additional metadata is provided by Snowfall Lib.
system, # The system architecture for this host (eg. `x86_64-linux`).
target, # The Snowfall Lib target for this system (eg. `x86_64-iso`).
format, # A normalized name for the system target (eg. `iso`).
virtual, # A boolean to determine whether this system is a virtual target using nixos-generators.
systems, # An attribute map of your defined hosts.
# All other arguments come from the module system.
config,
host,
...
}:
with lib;
let
cfg = config.modules.i3;
in
{
options.modules.i3 = {
enable = mkOption { default = false; };
};
config = mkIf cfg.enable {
modules.rofi.enable = true;
services.dunst.enable = true;
programs = {
i3status-rust = {
enable = true;
};
};
home.packages = with pkgs; [
nitrogen
xfce.xfce4-screenshooter
pulseaudio # For pactl commands
];
xsession.enable = true; # Give gui programs access to sessionVariables
# Prevent screen from going blank (check these settings with `xset q`)
# And disable bell sound (b)
xsession.initExtra = ''
${pkgs.xorg.xset}/bin/xset s off
${pkgs.xorg.xset}/bin/xset -dpms
${pkgs.xorg.xset}/bin/xset b off
'';
xsession.windowManager.i3 = {
enable = true;
package = pkgs.i3-gaps;
};
xsession.importedVariables = [ ];
# Overwrite default home-manager config file
xdg.configFile."i3/config".source = lib.mkForce (
if host == "kardorf" then ./i3/config-kardorf else ./i3/config
);
home.file = {
".config/i3/scripts" = {
source = ./i3/scripts;
recursive = true;
};
".config/i3/workspace-messaging.json".source = ./i3/workspace-chat-element-tele.json;
".config/i3status-rust/config.toml".source = ./i3status-rust/config.toml;
};
home.sessionPath = [ "/home/julian/.config/i3/scripts" ];
};
}

View File

@ -0,0 +1 @@
scrot_dir=~/Pictures/screenshots

314
modules/home/i3/i3/config Normal file
View File

@ -0,0 +1,314 @@
# i3 config file (v4)
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
set $mod Mod4
set $scripts /home/julian/.config/i3/scripts
set $lock "i3lock --ignore-empty-password --color=000000"
# Font for window titles
font pango:FuraCode Nerd Font 12
# xss-lock grabs a logind suspend inhibit lock and will use $lock to lock the
# screen before suspend. Use loginctl lock-session to lock your screen.
# exec --no-startup-id xss-lock --transfer-sleep-lock -- $lock --nofork
# Screen brightness controls
bindsym XF86MonBrightnessUp exec "brightnessctl set 5%+"
bindsym XF86MonBrightnessDown exec "brightnessctl set 5%-"
# Use pactl to adjust volume in PulseAudio.
# set $refresh_i3status killall -SIGUSR1 i3status
set $refresh_i3blocks pkill -RTMIN+1 i3blocks
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3blocks
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3blocks
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3blocks
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3blocks
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# start a terminal
bindsym $mod+Return exec $TERMINAL
# kill focused window
bindsym $mod+Shift+q kill
bindsym $mod+x kill
# Simulates alt+f4
bindsym Mod1+F4 kill
# start program launcher
bindsym $mod+d exec rofi -show run
# change focus
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# move focused window
bindsym $mod+Shift+h move left
bindsym $mod+Shift+j move down
bindsym $mod+Shift+k move up
bindsym $mod+Shift+l move right
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# split in horizontal / vertical orientation
bindsym $mod+Shift+v split h
bindsym $mod+v split v
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# change container layout (stacked, tabbed, toggle split)
# bindsym $mod+Shift+w layout stacking
# bindsym $mod+w layout tabbed
# bindsym $mod+e layout toggle split
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# focus the child container
#bindsym $mod+d focus child
# The middle button over a titlebar kills the window
bindsym --release button2 kill
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
set $ws1 "1"
set $ws2 "2"
set $ws3 "3"
set $ws4 "4"
set $ws5 "5"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8"
set $ws9 "9"
set $ws10 "10"
# switch to workspace
bindsym $mod+1 workspace number $ws1
bindsym $mod+2 workspace number $ws2
bindsym $mod+3 workspace number $ws3
bindsym $mod+4 workspace number $ws4
bindsym $mod+5 workspace number $ws5
bindsym $mod+6 workspace number $ws6
bindsym $mod+7 workspace number $ws7
bindsym $mod+8 workspace number $ws8
bindsym $mod+9 workspace number $ws9
bindsym $mod+0 workspace number $ws10
# move focused container to workspace
bindsym $mod+Ctrl+1 move container to workspace number $ws1
bindsym $mod+Ctrl+2 move container to workspace number $ws2
bindsym $mod+Ctrl+3 move container to workspace number $ws3
bindsym $mod+Ctrl+4 move container to workspace number $ws4
bindsym $mod+Ctrl+5 move container to workspace number $ws5
bindsym $mod+Ctrl+6 move container to workspace number $ws6
bindsym $mod+Ctrl+7 move container to workspace number $ws7
bindsym $mod+Ctrl+8 move container to workspace number $ws8
bindsym $mod+Ctrl+9 move container to workspace number $ws9
bindsym $mod+Ctrl+0 move container to workspace number $ws10
# move focused container to workspace and follow
bindsym $mod+Shift+1 move container to workspace number $ws1; workspace $ws1
bindsym $mod+Shift+2 move container to workspace number $ws2; workspace $ws2
bindsym $mod+Shift+3 move container to workspace number $ws3; workspace $ws3
bindsym $mod+Shift+4 move container to workspace number $ws4; workspace $ws4
bindsym $mod+Shift+5 move container to workspace number $ws5; workspace $ws5
bindsym $mod+Shift+6 move container to workspace number $ws6; workspace $ws6
bindsym $mod+Shift+7 move container to workspace number $ws7; workspace $ws7
bindsym $mod+Shift+8 move container to workspace number $ws8; workspace $ws8
bindsym $mod+Shift+9 move container to workspace number $ws9; workspace $ws9
bindsym $mod+Shift+0 move container to workspace number $ws10; workspace $ws10
# Monitor config
set $monitor_left "HDMI-1"
set $monitor_right "eDP-1"
workspace $ws1 output $monitor_left
workspace $ws2 output $monitor_left
workspace $ws3 output $monitor_left
workspace $ws4 output $monitor_left
workspace $ws5 output $monitor_left
workspace $ws6 output $monitor_right
workspace $ws7 output $monitor_right
workspace $ws8 output $monitor_right
workspace $ws9 output $monitor_right
workspace $ws10 output $monitor_right
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
# resize window (you can also use the mouse for that)
mode "resize" {
# Pressing left will shrink the windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
bindsym h resize shrink width 10 px or 10 ppt
bindsym j resize grow height 10 px or 10 ppt
bindsym k resize shrink height 10 px or 10 ppt
bindsym l resize grow width 10 px or 10 ppt
# same bindings, but for the arrow keys
bindsym Left resize shrink width 10 px or 10 ppt
bindsym Down resize grow height 10 px or 10 ppt
bindsym Up resize shrink height 10 px or 10 ppt
bindsym Right resize grow width 10 px or 10 ppt
# back to normal: Enter or Escape or $mod+r
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+r mode "default"
}
bindsym $mod+r mode "resize"
bar {
font pango:DejaVu Sans Mono, Font Awesome 15
status_command i3status-rs
position bottom
tray_output eDP-1
}
set $mode_system System (l) lock, (e) logout, (r) reboot, (s) shutdown
mode "$mode_system" {
bindsym l exec --no-startup-id $lock, mode "default"
# logout
bindsym e exec --no-startup-id i3-msg exit, mode "default"
bindsym r exec --no-startup-id systemctl reboot, mode "default"
bindsym s exec --no-startup-id systemctl poweroff, mode "default"
bindsym h exec --no-startup-id $lock && systemctl hibernate, mode "default"
bindsym Shift+s exec --no-startup-id $lock && systemctl suspend, mode "default"
# back to normal: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+Shift+e mode "$mode_system"
bindsym $mod+Tab exec --no-startup-id $lock
bindsym $mod+Print exec --no-startup-id "xfce4-screenshooter"
bindsym $mod+c exec qalculate-gtk
bindsym $mod+Shift+p exec xwacomcalibrate
bindsym $mod+e exec pcmanfm
bindsym $mod+b exec firefox
bindsym $mod+p exec $scripts/display-toggle-mirror
workspace_auto_back_and_forth yes
# default_border pixel
default_border normal
default_floating_border normal
hide_edge_borders smart
show_marks no
# switch to workspace with urgent window automatically
for_window [urgent=latest] focus
focus_on_window_activation focus
assign [class="firefox" title="Mozilla Firefox$"] workspace $ws1
assign [class="TelegramDesktop"] workspace $ws9
assign [class="Signal"] workspace $ws9
assign [class="Rocket.Chat"] workspace $ws9
assign [class="Element"] workspace $ws9
assign [class="SchildiChat"] workspace $ws9
assign [class="nheko"] workspace $ws9
assign [class="thunderbird"] workspace $ws10
# assign [class="zoom"] workspace $ws5
assign [class="Zotero"] workspace $ws8
for_window [class="firefox" urgent="latest"] focus
for_window [title="Manjaro Settings Manager"] floating enable
for_window [class="pamac-manager"] floating enable
for_window [class="Pamac-updater"] floating enable
for_window [class="Qalculate-gtk"] floating enable
for_window [class="Gcolor3"] floating enable
#for_window [class="zoom" title="Chat"] floating enable
#for_window [class="Thunderbird" instance="Msgcompose"] floating enable
#
for_window [window_role=floating] floating enable
for_window [class="Viewnior"] border normal
########## Autostart applications ##########
exec firefox
# exec --no-startup-id nm-applet
# exec --no-startup-id blueman-applet
# exec --no-startup-id nextcloud --background
# exec --no-startup-id xfce4-screensaver
# exec --no-startup-id /usr/bin/emacs --daemon
# Authentication agent
# exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
# exec --no-startup-id /usr/bin/env gnome-keyring-daemon --start
# Notify about software updates
# exec --no-startup-id pamac-tray
# exec --no-startup-id clipit
# exec --no-startup-id xfce4-clipman
# Notify about kernel updates
# exec --no-startup-id msm_notifier
# Audio
# exec --no-startup-id start-pulseaudio-x11
# exec --no-startup-id pa-applet
# Background
exec --no-startup-id nitrogen --restore
# Adjust display temperature
# exec --no-startup-id redshift
# Notifications
# exec --no-startup-id /usr/lib/xfce4/notifyd/xfce4-notifyd
# exec --no-startup-id xautolock -time 10 -locker blurlock
# exec_always --no-startup-id ff-theme-util
# exec_always --no-startup-id fix_xcursor
exec_always --no-startup-id "$scripts/display-layoutpicker"
#############################
### settings for i3-gaps: ###
#############################
# Set inner/outer gaps
gaps inner 8
gaps outer -2
# Smart gaps (gaps used if only more than one container on the workspace)
smart_gaps on
# Smart borders (draw borders around container only if it is not the only container on this workspace)
smart_borders on

View File

@ -0,0 +1,314 @@
# i3 config file (v4)
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
set $mod Mod4
set $scripts ~/.config/i3/scripts
set $lock "i3lock --ignore-empty-password --color=000000"
# Font for window titles
font pango:FuraCode Nerd Font 12
# xss-lock grabs a logind suspend inhibit lock and will use $lock to lock the
# screen before suspend. Use loginctl lock-session to lock your screen.
exec --no-startup-id xss-lock --transfer-sleep-lock -- $lock --nofork
# Screen brightness controls
# bindsym XF86MonBrightnessUp exec "xbacklight -inc 10; notify-send 'brightness up'"
# bindsym XF86MonBrightnessDown exec "xbacklight -dec 10; notify-send 'brightness down'"
# Use pactl to adjust volume in PulseAudio.
# set $refresh_i3status killall -SIGUSR1 i3status
set $refresh_i3blocks pkill -RTMIN+1 i3blocks
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3blocks
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3blocks
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3blocks
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3blocks
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# start a terminal
bindsym $mod+Return exec kitty
# kill focused window
bindsym $mod+Shift+q kill
bindsym $mod+x kill
# Simulates alt+f4
bindsym Mod1+F4 kill
# start program launcher
bindsym $mod+d exec rofi -show run
# change focus
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# move focused window
bindsym $mod+Shift+h move left
bindsym $mod+Shift+j move down
bindsym $mod+Shift+k move up
bindsym $mod+Shift+l move right
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# split in horizontal / vertical orientation
bindsym $mod+Shift+v split h
bindsym $mod+v split v
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# change container layout (stacked, tabbed, toggle split)
# bindsym $mod+Shift+w layout stacking
# bindsym $mod+w layout tabbed
# bindsym $mod+e layout toggle split
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# focus the child container
#bindsym $mod+d focus child
# The middle button over a titlebar kills the window
bindsym --release button2 kill
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
set $ws1 "1"
set $ws2 "2"
set $ws3 "3"
set $ws4 "4"
set $ws5 "5"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8"
set $ws9 "9"
set $ws10 "10"
# switch to workspace
bindsym $mod+1 workspace number $ws1
bindsym $mod+2 workspace number $ws2
bindsym $mod+3 workspace number $ws3
bindsym $mod+4 workspace number $ws4
bindsym $mod+5 workspace number $ws5
bindsym $mod+6 workspace number $ws6
bindsym $mod+7 workspace number $ws7
bindsym $mod+8 workspace number $ws8
bindsym $mod+9 workspace number $ws9
bindsym $mod+0 workspace number $ws10
# move focused container to workspace
bindsym $mod+Ctrl+1 move container to workspace number $ws1
bindsym $mod+Ctrl+2 move container to workspace number $ws2
bindsym $mod+Ctrl+3 move container to workspace number $ws3
bindsym $mod+Ctrl+4 move container to workspace number $ws4
bindsym $mod+Ctrl+5 move container to workspace number $ws5
bindsym $mod+Ctrl+6 move container to workspace number $ws6
bindsym $mod+Ctrl+7 move container to workspace number $ws7
bindsym $mod+Ctrl+8 move container to workspace number $ws8
bindsym $mod+Ctrl+9 move container to workspace number $ws9
bindsym $mod+Ctrl+0 move container to workspace number $ws10
# move focused container to workspace and follow
bindsym $mod+Shift+1 move container to workspace number $ws1; workspace $ws1
bindsym $mod+Shift+2 move container to workspace number $ws2; workspace $ws2
bindsym $mod+Shift+3 move container to workspace number $ws3; workspace $ws3
bindsym $mod+Shift+4 move container to workspace number $ws4; workspace $ws4
bindsym $mod+Shift+5 move container to workspace number $ws5; workspace $ws5
bindsym $mod+Shift+6 move container to workspace number $ws6; workspace $ws6
bindsym $mod+Shift+7 move container to workspace number $ws7; workspace $ws7
bindsym $mod+Shift+8 move container to workspace number $ws8; workspace $ws8
bindsym $mod+Shift+9 move container to workspace number $ws9; workspace $ws9
bindsym $mod+Shift+0 move container to workspace number $ws10; workspace $ws10
# Monitor config
set $monitor_left "DVI-D-0"
set $monitor_right "DVI-D-1"
workspace $ws1 output $monitor_left
workspace $ws2 output $monitor_left
workspace $ws3 output $monitor_left
workspace $ws4 output $monitor_left
workspace $ws5 output $monitor_left
workspace $ws6 output $monitor_right
workspace $ws7 output $monitor_right
workspace $ws8 output $monitor_right
workspace $ws9 output $monitor_right
workspace $ws10 output $monitor_right
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
# resize window (you can also use the mouse for that)
mode "resize" {
# Pressing left will shrink the windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
bindsym h resize shrink width 10 px or 10 ppt
bindsym j resize grow height 10 px or 10 ppt
bindsym k resize shrink height 10 px or 10 ppt
bindsym l resize grow width 10 px or 10 ppt
# same bindings, but for the arrow keys
bindsym Left resize shrink width 10 px or 10 ppt
bindsym Down resize grow height 10 px or 10 ppt
bindsym Up resize shrink height 10 px or 10 ppt
bindsym Right resize grow width 10 px or 10 ppt
# back to normal: Enter or Escape or $mod+r
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+r mode "default"
}
bindsym $mod+r mode "resize"
bar {
font pango:DejaVu Sans Mono, Font Awesome 15
status_command i3status-rs
position bottom
tray_output DVI-D-0
}
set $mode_system System (l) lock, (e) logout, (r) reboot, (s) shutdown
mode "$mode_system" {
bindsym l exec --no-startup-id $lock, mode "default"
bindsym e exec --no-startup-id i3-msg exit, mode "default" # logout
bindsym r exec --no-startup-id systemctl reboot, mode "default"
bindsym s exec --no-startup-id systemctl poweroff, mode "default"
bindsym h exec --no-startup-id $lock && systemctl hibernate, mode "default"
bindsym Shift+s exec --no-startup-id $lock && systemctl suspend, mode "default"
# back to normal: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+Shift+e mode "$mode_system"
bindsym $mod+Tab exec --no-startup-id $lock
bindsym $mod+Print exec --no-startup-id "xfce4-screenshooter"
bindsym $mod+c exec qalculate-gtk
bindsym $mod+Shift+p exec xwacomcalibrate
bindsym $mod+e exec pcmanfm
bindsym $mod+Shift+c exec $scripts/jupyter-calculator
bindsym $mod+b exec firefox
bindsym $mod+p exec $scripts/display-toggle-mirror
workspace_auto_back_and_forth yes
# default_border pixel
default_border normal
default_floating_border normal
hide_edge_borders smart
show_marks no
# switch to workspace with urgent window automatically
for_window [urgent=latest] focus
focus_on_window_activation focus
assign [class="firefox" title="Mozilla Firefox$"] workspace $ws1
assign [class="TelegramDesktop"] workspace $ws9
assign [class="Signal"] workspace $ws9
assign [class="Rocket.Chat"] workspace $ws9
assign [class="Element"] workspace $ws9
assign [class="SchildiChat"] workspace $ws9
assign [class="thunderbird"] workspace $ws10
# assign [class="zoom"] workspace $ws5
assign [class="Zotero"] workspace $ws8
for_window [class="firefox" urgent="latest"] focus
for_window [title="Manjaro Settings Manager"] floating enable
for_window [class="pamac-manager"] floating enable
for_window [class="Pamac-updater"] floating enable
for_window [class="Qalculate-gtk"] floating enable
for_window [class="Gcolor3"] floating enable
#for_window [class="zoom" title="Chat"] floating enable
#for_window [class="Thunderbird" instance="Msgcompose"] floating enable
#
for_window [window_role=floating] floating enable
for_window [class="Viewnior"] border normal
########## Autostart applications ##########
exec firefox
exec --no-startup-id nm-applet
exec --no-startup-id blueman-applet
exec --no-startup-id xfce4-power-manager
exec --no-startup-id nextcloud --background
# exec --no-startup-id xfce4-screensaver
# exec --no-startup-id /usr/bin/emacs --daemon
# Authentication agent
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
exec --no-startup-id /usr/bin/env gnome-keyring-daemon --start
# Notify about software updates
exec --no-startup-id pamac-tray
exec --no-startup-id clipit
# exec --no-startup-id xfce4-clipman
# Notify about kernel updates
exec --no-startup-id msm_notifier
# Audio
exec --no-startup-id start-pulseaudio-x11
exec --no-startup-id pa-applet
# Background
exec --no-startup-id nitrogen --restore
# Adjust display temperature
exec --no-startup-id redshift
# Notifications
exec --no-startup-id /usr/lib/xfce4/notifyd/xfce4-notifyd
# exec --no-startup-id xautolock -time 10 -locker blurlock
exec_always --no-startup-id ff-theme-util
exec_always --no-startup-id fix_xcursor
exec_always --no-startup-id "$scripts/display-layoutpicker"
#############################
### settings for i3-gaps: ###
#############################
# Set inner/outer gaps
gaps inner 8
gaps outer -2
# Smart gaps (gaps used if only more than one container on the workspace)
smart_gaps on
# Smart borders (draw borders around container only if it is not the only container on this workspace)
smart_borders on

View File

@ -44,7 +44,7 @@ bindsym $mod+z exec --no-startup-id morc_menu
#exec --no-startup-id volumeicon
#bindsym $mod+Ctrl+m exec terminal -e 'alsamixer'
exec --no-startup-id pulseaudio
exec --no-startup-id start-pulseaudio-x11
exec --no-startup-id pa-applet
bindsym $mod+Ctrl+m exec pavucontrol
@ -224,11 +224,8 @@ bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"
# Set shut down, restart and locking features
bindsym $mod+0 mode "$mode_system"
bindsym $mod+Shift+e mode "$mode_system"
set $mode_system (l)ock, (e)xit, switch_(u)ser, (s)uspend, (h)ibernate, (r)eboot, (Shift+s)hutdown
mode "$mode_system" {
bindsym l exec --no-startup-id i3exit lock, mode "default"
@ -279,7 +276,7 @@ exec --no-startup-id nm-applet
exec --no-startup-id xfce4-power-manager
exec --no-startup-id pamac-tray
exec --no-startup-id clipit
# exec --no-startup-id blueman-applet
exec --no-startup-id blueman-applet
# exec_always --no-startup-id sbxkb
exec --no-startup-id start_conky_maia
# exec --no-startup-id start_conky_green

View File

@ -0,0 +1,11 @@
#!/bin/sh
xrandr | grep -q "HDMI-1 connected"
if [ "$?" -eq "0" ]; then
echo "Two screens available"
~/.screenlayout/twoscreens.sh
else
echo "Only one screen available"
~/.screenlayout/onescreen.sh
fi

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