dev #19

Open
tdpeuter wants to merge 77 commits from dev into main
80 changed files with 12726 additions and 899 deletions

2
.gitignore vendored
View file

@ -1 +1,3 @@
result
.idea

BIN
assets/bluescreen.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

225
colors.sh Normal file
View file

@ -0,0 +1,225 @@
# tdpeuter color schemes
# The goal is to offer light and dark theme that is easy on the eyes,
# whilst also being unique and defining.
###############################
# tdpeuter-light color scheme #
###############################
# 171717 # Foreground
# FAFAFA # Daisy (Background)
# Regular colors (0-7)
# 000000 # Black (0)
# 1
# 2
# 3
# 4
# 5
# 6
# 7
# Bright colors (8-15)
# 000000 # Black (8)
# 9
# 10
# 11
# 12
# 13
# 14
# 15
##############################
# tdpeuter-dark color scheme #
##############################
# FAFAFA # Daisy (Foreground)
printf "\033]10;#FAFAFA\007"
# 171717 # Background
printf "\033]11;#171717\007"
# Regular colors (0-7)
# 242124 # Black 0
printf "\033]4;0;#242124\007"
# B90E0A # Crimson (Red) 1
printf "\033]4;1;#B90E0A\007"
# B2BC68 # Leafy (Green) 2
printf "\033]4;2;#B2BC68\007"
# FFE135 # Banana (Yellow) 3
printf "\033]4;3;#FFE135\007"
# 80A2BE # Icicle (Blue) 4
printf "\033]4;4;#80A2BE\007"
# A45EE5 # Amethyst (Magenta) 5
printf "\033]4;5;#A45EE5\007"
# # (Cyan) 6
printf "\033]4;6;#80A2BE\007"
# FBFCF8 # Pearl (White) 7
printf "\033]4;7;#FBFCF8\007"
# Bright colors (8-15)
# 363636 # Grey-isch (Black) 8
printf "\033]4;8;#363636\007"
# BC544B # Blush (Red) 9
printf "\033]4;9;#BC544B\007"
# A6E3A1 # Lime (Green) 10
printf "\033]4;10;#A6E3A1\007"
# FCF4A3 # Banana (Yellow) 11
printf "\033]4;11;#FCF4A3\007"
# 74C7EC # Sapphire (Blue) 12
printf "\033]4;12;#74C7EC\007"
# B4BEFE # Lavender (Magenta) 13
# #CBA6F7
printf "\033]4;13;#B4BEFE\007"
# # (Cyan) 14
printf "\033]4;14;#74C7EC\007"
# FFFFFF # White 15
printf "\033]4;15;#FFFFFF\007"
# NEW COLORS 20241101
#
# Nr # R G B H S B # Name
# FG # 250 250 250 0 0 98 # Daisy (White)
printf "\033]10;#FAFAFA\007"
# BG # 19 19 19 0 0 7 # -
printf "\033]11;#131313\007"
# Regular colors (0-7)
# Nr # R G B H S B # Name
# 0 # 61 61 61 0 0 24 # - (Black)
printf "\033]4;0;#3D3D3D\007"
# 1 # 186 19 61 345 90 73 # - (Red)
printf "\033]4;1;#BA133D\007"
# 2 # 61 186 19 105 90 73 # - (Green)
printf "\033]4;2;#3DBA13\007"
# 3 # 186 144 19 45 90 73 # - (Yellow)
printf "\033]4;3;#BA9013\007"
# 4 # 19 61 186 225 90 73 # - (Blue)
printf "\033]4;4;#133DBA\007"
# 5 # 144 19 186 285 90 73 # - (Magenta)
printf "\033]4;5;#9013BA\007"
# 6 # 19 186 144 165 90 73 # - (Cyan)
printf "\033]4;6;#13BA90\007"
# 7 # 186 186 186 0 0 73 # - (White)
printf "\033]4;7;#BABABA\007"
# Bright colors (8-15)
# Nr # R G B H S B # Name
# 8 # 122 122 122 0 0 48 # - (Black)
printf "\033]4;8;#363636\007"
# 9 # 250 25 81 345 90 98 # - (Red)
printf "\033]4;9;#FA1951\007"
# 10 # 81 250 25 105 90 98 # - (Green)
printf "\033]4;10;#51FA19\007"
# 11 # 250 194 25 45 90 98 # - (Yellow)
printf "\033]4;11;#FAC219\007"
# 12 # 25 81 250 225 90 98 # - (Blue)
printf "\033]4;12;#1951FA\007"
# 13 # 194 25 250 285 90 98 # - (Magenta)
printf "\033]4;13;#C219FA\007"
# 14 # 25 259 194 165 90 98 # - (Cyan)
printf "\033]4;14;#19FAC2\007"
# 15 # 250 250 250 0 0 98 # - (White)
printf "\033]4;15;#FAFAFA\007"
# BRIGHTER
#
# Nr # R G B H S B # Name
# FG # 250 250 250 0 0 98 # Daisy (White)
printf "\033]11;#FAFAFA\007"
# BG # 19 19 19 0 0 7 # -
printf "\033]10;#131313\007"
# Regular colors (0-7)
# Nr # R G B H S B # Name
# 0 # 61 61 61 0 0 24 # - (Black)
printf "\033]4;0;#3D3D3D\007"
# 1 # 186 19 61 345 90 73 # - (Red)
printf "\033]4;1;#E62E4D\007"
# 2 # 61 186 19 105 90 73 # - (Green)
printf "\033]4;2;#4DE62E\007"
# 3 # 186 144 19 45 90 73 # - (Yellow)
printf "\033]4;3;#E6C72E\007"
# 4 # 19 61 186 225 90 73 # - (Blue)
printf "\033]4;4;#2E4CE6\007"
# 5 # 144 19 186 285 90 73 # - (Magenta)
printf "\033]4;5;#C52DE3\007"
# 6 # 19 186 144 165 90 73 # - (Cyan)
printf "\033]4;6;#2EE6C7\007"
# 7 # 186 186 186 0 0 73 # - (White)
printf "\033]4;7;#BABABA\007"
# Bright colors (8-15)
# Nr # R G B H S B # Name
# 8 # 122 122 122 0 0 48 # - (Black)
printf "\033]4;8;#7A7A7A\007"
# 9 # 250 25 81 345 90 98 # - (Red)
printf "\033]4;9;#FF002B\007"
# 10 # 81 250 25 105 90 98 # - (Green)
printf "\033]4;10;#2BFF00\007"
# 11 # 250 194 25 45 90 98 # - (Yellow)
printf "\033]4;11;#FFd500\007"
# 12 # 25 81 250 225 90 98 # - (Blue)
printf "\033]4;12;#002AFF\007"
# 13 # 194 25 250 285 90 98 # - (Magenta)
printf "\033]4;13;#D400FF\007"
# 14 # 25 259 194 165 90 98 # - (Cyan)
printf "\033]4;14;#00FFC0\007"
# 15 # 250 250 250 0 0 98 # - (White)
printf "\033]4;15;#FAFAFA\007"
# TEsting again
# Nr # R G B H S B # Name
# FG # 250 250 250 0 0 98 # Daisy (White)
# FAFAFA # Daisy (Foreground)
printf "\033]10;#FAFAFA\007"
# 171717 # Background
printf "\033]11;#171717\007"
# Nr # R G B H S B # Name
# 0 # 61 61 61 0 0 24 # - (Black)
printf "\033]4;0;#202124\007"
# 1 # 186 19 61 345 90 73 # - (Red)
printf "\033]4;1;#EA4335\007"
# 2 # 61 186 19 105 90 73 # - (Green)
printf "\033]4;2;#34A853\007"
# 3 # 186 144 19 45 90 73 # - (Yellow)
printf "\033]4;3;#FBBC04\007"
# 4 # 19 61 186 225 90 73 # - (Blue)
printf "\033]4;4;#4285F4\007"
# 5 # 144 19 186 285 90 73 # - (Magenta)
printf "\033]4;5;#A142F4\007"
# 6 # 19 186 144 165 90 73 # - (Cyan)
printf "\033]4;6;#24C1E0\007"
# 7 # 186 186 186 0 0 73 # - (White)
printf "\033]4;7;#FBFCF8\007"
# Bright colors (8-15)
# Nr # R G B H S B # Name
# 8 # 122 122 122 0 0 48 # - (Black)
printf "\033]4;8;#5F6368\007"
# 9 # 250 25 81 345 90 98 # - (Red)
printf "\033]4;9;#EA4335\007"
# 10 # 81 250 25 105 90 98 # - (Green)
printf "\033]4;10;#34A853\007"
# 11 # 250 194 25 45 90 98 # - (Yellow)
printf "\033]4;11;#FBBC05\007"
# 12 # 25 81 250 225 90 98 # - (Blue)
printf "\033]4;12;#4285F4\007"
# 13 # 194 25 250 285 90 98 # - (Magenta)
printf "\033]4;13;#A142F4\007"
# 14 # 25 259 194 165 90 98 # - (Cyan)
printf "\033]4;14;#24C1E0\007"
# 15 # 250 250 250 0 0 98 # - (White)
printf "\033]4;15;#FFFFFF\007"

View file

@ -1,13 +1,10 @@
keys:
- &tdpeuter age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
- &server_H4G0 age1d4gvqz3anf082ja6xt03hnkzazfum80um9t45m4rerl4n3va2yuqgnsg03
- &Tibo-NixFatDesk age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
- &Tibo-NixTop age1qzutny0mqpcccqw6myyfntu6wcskruu9ghzvt6r4te7afkqwnguq05ex37
creation_rules:
- path_regex: secrets/[^/]+\.(yaml|json|env|ini)$
key_groups:
- age:
- *tdpeuter
- *server_H4G0
- *Tibo-NixFatDesk
- *Tibo-NixTop

165
nixos/flake.lock generated
View file

@ -1,54 +1,15 @@
{
"nodes": {
"devshell": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1713532798,
"narHash": "sha256-wtBhsdMJA3Wa32Wtm1eeo84GejtI43pMrFrmwLXrsEc=",
"owner": "numtide",
"repo": "devshell",
"rev": "12e914740a25ea1891ec619bb53cf5e6ca922e40",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "devshell",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1701680307,
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
@ -64,16 +25,16 @@
]
},
"locked": {
"lastModified": 1716736833,
"narHash": "sha256-rNObca6dm7Qs524O4st8VJH6pZ/Xe1gxl+Rx6mcWYo0=",
"lastModified": 1758463745,
"narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "a631666f5ec18271e86a5cde998cba68c33d9ac6",
"rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-24.05",
"ref": "release-25.05",
"repo": "home-manager",
"type": "github"
}
@ -86,11 +47,11 @@
]
},
"locked": {
"lastModified": 1701208414,
"narHash": "sha256-xrQ0FyhwTZK6BwKhahIkUVZhMNk21IEI1nUcWSONtpo=",
"lastModified": 1720066371,
"narHash": "sha256-uPlLYH2S0ACj0IcgaK9Lsf4spmJoGejR9DotXiXSBZQ=",
"owner": "nix-community",
"repo": "nix-github-actions",
"rev": "93e39cc1a087d65bcf7a132e75a650c44dd2b734",
"rev": "622f829f5fe69310a866c8a6cd07e747c44ef820",
"type": "github"
},
"original": {
@ -101,42 +62,26 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1717144377,
"narHash": "sha256-F/TKWETwB5RaR8owkPPi+SPJh83AQsm6KrQAlJ8v/uA=",
"lastModified": 1760862643,
"narHash": "sha256-PXwG0TM7Ek87DNx4LbGWuD93PbFeKAJs4FfALtp7Wo0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "805a384895c696f802a9bf5bf4720f37385df547",
"rev": "33c6dca0c0cb31d6addcd34e90a63ad61826b28c",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-24.05",
"ref": "nixos-25.05",
"type": "indirect"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1717265169,
"narHash": "sha256-IITcGd6xpNoyq9SZBigCkv4+qMHSqot0RDPR4xsZ2CA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3b1b4895b2c5f9f5544d02132896aeb9ceea77bc",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "release-23.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1716948383,
"narHash": "sha256-SzDKxseEcHR5KzPXLwsemyTR/kaM9whxeiJohbL04rs=",
"lastModified": 1760878510,
"narHash": "sha256-K5Osef2qexezUfs0alLvZ7nQFTGS9DL2oTVsIXsqLgs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "ad57eef4ef0659193044870c731987a6df5cf56b",
"rev": "5e2a59a5b1a82f89f2c7e598302a9cacebb72a67",
"type": "github"
},
"original": {
@ -155,15 +100,15 @@
"nixpkgs"
],
"poetry2nix": "poetry2nix",
"systems": "systems_3",
"systems": "systems_2",
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1701455376,
"narHash": "sha256-FMLrMdi6JY7ZfqV5XnNj64jnDcGKznKZLn7O6OMO3u0=",
"lastModified": 1758594056,
"narHash": "sha256-6XyKDRWqBngw1g73e789iyIaw/0VF04ELk/ATtlkTVU=",
"owner": "ThinkChaos",
"repo": "openconnect-sso",
"rev": "20c0015c4264c72cc19ac272de0dc534309bd21b",
"rev": "2041471efd331d0591d34e122aefb02690fb233a",
"type": "github"
},
"original": {
@ -197,11 +142,11 @@
]
},
"locked": {
"lastModified": 1701105783,
"narHash": "sha256-5IOI0xXGbhAkUZNNcPId48V78Q+/JlW0hzlif0zxRmM=",
"lastModified": 1721039874,
"narHash": "sha256-XANsG9GYHip8pxZpbqKf/YGv8tIa0xTh289Y+WNBNfw=",
"owner": "nix-community",
"repo": "poetry2nix",
"rev": "0b2bff39e9bd4e6db3208e09c276ca83a063b370",
"rev": "d11c01e58587e5f21037ed6477465a7f26a32e27",
"type": "github"
},
"original": {
@ -212,29 +157,28 @@
},
"root": {
"inputs": {
"devshell": "devshell",
"flake-utils": "flake-utils_2",
"flake-utils": "flake-utils",
"home-manager": "home-manager",
"nixpkgs": "nixpkgs",
"nixpkgs-unstable": "nixpkgs-unstable",
"openconnect-sso": "openconnect-sso",
"sops-nix": "sops-nix",
"utils": "utils"
"utils": "utils",
"zen-browser": "zen-browser"
}
},
"sops-nix": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable"
]
},
"locked": {
"lastModified": 1717297459,
"narHash": "sha256-cZC2f68w5UrJ1f+2NWGV9Gx0dEYmxwomWN2B0lx0QRA=",
"lastModified": 1760998189,
"narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "ab2a43b0d21d1d37d4d5726a892f714eaeb4b075",
"rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3",
"type": "github"
},
"original": {
@ -273,21 +217,6 @@
"type": "github"
}
},
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
@ -296,11 +225,11 @@
]
},
"locked": {
"lastModified": 1699786194,
"narHash": "sha256-3h3EH1FXQkIeAuzaWB+nK0XK54uSD46pp+dMD3gAcB4=",
"lastModified": 1721769617,
"narHash": "sha256-6Pqa0bi5nV74IZcENKYRToRNM5obo1EQ+3ihtunJ014=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "e82f32aa7f06bbbd56d7b12186d555223dc399d1",
"rev": "8db8970be1fb8be9c845af7ebec53b699fe7e009",
"type": "github"
},
"original": {
@ -316,11 +245,11 @@
]
},
"locked": {
"lastModified": 1715533576,
"narHash": "sha256-fT4ppWeCJ0uR300EH3i7kmgRZnAVxrH+XtK09jQWihk=",
"lastModified": 1738591040,
"narHash": "sha256-4WNeriUToshQ/L5J+dTSWC5OJIwT39SEP7V7oylndi8=",
"owner": "gytis-ivaskevicius",
"repo": "flake-utils-plus",
"rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f",
"rev": "afcb15b845e74ac5e998358709b2b5fe42a948d1",
"type": "github"
},
"original": {
@ -328,6 +257,26 @@
"repo": "flake-utils-plus",
"type": "github"
}
},
"zen-browser": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1761105987,
"narHash": "sha256-d01CGcdNlsqIn4ncGCWHM0Velnii/Ggef1iybQvEOfc=",
"owner": "youwen5",
"repo": "zen-browser-flake",
"rev": "e7d9fefd8665be5d4c77466140f21a15f6d29e93",
"type": "github"
},
"original": {
"owner": "youwen5",
"repo": "zen-browser-flake",
"type": "github"
}
}
},
"root": "root",

View file

@ -2,20 +2,16 @@
description = "System configuration of my machines using flakes";
inputs = {
nixpkgs.url = "nixpkgs/nixos-24.05";
nixpkgs.url = "nixpkgs/nixos-25.05";
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
devshell = {
url = "github:numtide/devshell";
inputs.nixpkgs.follows = "nixpkgs";
};
flake-utils.url = "github:numtide/flake-utils";
home-manager = {
url = "github:nix-community/home-manager/release-24.05";
url = "github:nix-community/home-manager/release-25.05";
inputs.nixpkgs.follows = "nixpkgs";
};
openconnect-sso = {
url = github:ThinkChaos/openconnect-sso/fix/nix-flake;
url = "github:ThinkChaos/openconnect-sso/fix/nix-flake";
inputs = {
flake-utils.follows = "utils";
nixpkgs.follows = "nixpkgs";
@ -23,29 +19,34 @@
};
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
inputs.nixpkgs.follows = "nixpkgs";
};
utils = {
url = "github:gytis-ivaskevicius/flake-utils-plus";
inputs.flake-utils.follows = "flake-utils";
};
zen-browser = {
url = "github:youwen5/zen-browser-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = inputs@{
self, nixpkgs, nixpkgs-unstable,
devshell, flake-utils, home-manager, openconnect-sso, sops-nix, utils,
flake-utils, home-manager, openconnect-sso, sops-nix, utils, zen-browser,
... }:
let
system = "x86_64-linux";
system = utils.lib.system.x86_64-linux;
unfreePackages = pkg: builtins.elem (nixpkgs.lib.getName pkg) [
"corefonts"
"nvidia-settings" "nvidia-x11" "nvidia-persistenced"
"Oracle_VM_VirtualBox_Extension_Pack"
"Oracle_VirtualBox_Extension_Pack"
"spotify"
"steam" "steam-original" "steam-run"
"steam" "steam-unwrapped" "steam-run"
"vista-fonts"
"nvidia-persistenced" # Docker
"intel-ocl"
"libfprint-2-tod1-broadcom"
];
in
utils.lib.mkFlake {
@ -71,10 +72,11 @@
};
modules = [
home-manager.nixosModule
sops-nix.nixosModules.sops
./modules
./users
home-manager.nixosModules.home-manager
sops-nix.nixosModules.sops
];
};
@ -82,6 +84,7 @@
Tibo-NixDesk.modules = [ ./hosts/Tibo-NixDesk ];
Tibo-NixFat.modules = [ ./hosts/Tibo-NixFat ];
Tibo-NixTest.modules = [ ./hosts/Tibo-NixTest ];
Tibo-NixTop.modules = [ ./hosts/Tibo-NixTop ];
};
};
}

View file

@ -75,9 +75,9 @@
networking.hostName = "Tibo-NixDesk";
services.xserver = {
services.xserver.xkb = {
layout = "us";
xkbVariant = "altgr-intl";
variant = "altgr-intl";
};
system.stateVersion = "24.05";

View file

@ -6,7 +6,10 @@
];
sisyphus = {
desktop.sway.enable = true;
desktop = {
sway.enable = true;
hyprland.enable = true;
};
hardware = {
eid.enable = true;
@ -19,7 +22,7 @@
networking = {
networkmanager.enable = true;
# openconnect-sso.enable = true;
openconnect-sso.enable = true;
};
nix = {
@ -87,14 +90,20 @@
powerOnBoot = false;
};
networking.hostName = "Tibo-NixFat";
networking = {
hostName = "Tibo-NixFat";
networkmanager.wifi.powersave = true;
};
services = {
# Handle the laptop lid switch as follows:
logind = {
# Handle the laptop lid switch as follows:
lidSwitch = "hybrid-sleep";
lidSwitchExternalPower = "lock";
lidSwitchDocked = "ignore";
# Handle the power key
powerKey = "suspend";
};
xserver.xkb = {
@ -105,10 +114,14 @@
# Touchpad
libinput.enable = true;
thermald.enable = true;
};
system.stateVersion = "24.05";
systemd.coredump.enable = false;
time.timeZone = "Europe/Brussels";
# --- Barrier ---

View file

@ -8,21 +8,32 @@
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" = {
device = "/dev/disk/by-label/NIX-ROOT";
fsType = "ext4";
boot = {
initrd = {
availableKernelModules = [
"xhci_pci"
"nvme"
"usb_storage"
"sd_mod"
"rtsx_pci_sdmmc"
];
kernelModules = [ ];
luks.devices."luks-c21cb4a4-f618-43af-bc0c-e8be74fe3b81".device = "/dev/disk/by-uuid/c21cb4a4-f618-43af-bc0c-e8be74fe3b81";
};
kernelModules = [ "kvm-intel" ];
extraModulePackages = [ ];
};
boot.initrd.luks.devices."luks-c21cb4a4-f618-43af-bc0c-e8be74fe3b81".device = "/dev/disk/by-uuid/c21cb4a4-f618-43af-bc0c-e8be74fe3b81";
fileSystems = {
"/" = {
device = "/dev/disk/by-label/NIX-ROOT";
fsType = "ext4";
};
fileSystems."/boot/efi" = {
device = "/dev/disk/by-label/NIX-BOOT";
fsType = "vfat";
"/boot/efi" = {
device = "/dev/disk/by-label/NIX-BOOT";
fsType = "vfat";
};
};
swapDevices = [
@ -38,5 +49,9 @@
# networking.interfaces.wlp111s0.useDHCP = lib.mkDefault true;
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
nixpkgs.config.allowUnfree = true;
hardware = {
enableAllFirmware = true;
cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
};
}

View file

@ -0,0 +1,203 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ config, lib, pkgs, ... }:
{
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
];
sisyphus = {
desktop.hyprland.enable = true;
hardware = {
eid.enable = true;
fingerprint-scanner.enable = true;
nvidia = {
enable = true;
model = "Quadro T2000";
};
yubikey.enable = true;
};
networking = {
networkmanager.enable = true;
openconnect-sso.enable = true;
};
nix = {
flakes.enable = true;
gc.onFull.enable = true;
};
programs = {
direnv.enable = true;
home-manager.enable = true;
sops.enable = true;
ssh.enable = true;
};
services = {
pipewire.enable = true;
tailscale.enable = true;
};
users.tdpeuter.enable = true;
virtualisation = {
docker.enable = true;
virtualbox.enable = true;
};
};
boot = {
initrd = {
# Use EFI and YubiKey
kernelModules = [ "vfat" "nls_cp437" "nls_iso8859-1" "usbhid" ];
luks = {
# Enable YubiKey PBA
yubikeySupport = true;
devices."encrypted".yubikey = {
slot = 2;
twoFactor = false;
gracePeriod = 10;
keyLength = 64;
saltLength = 16;
storage.device = "/dev/nvme0n1p1";
};
};
};
loader = {
# Use the systemd-boot EFI boot loader.
systemd-boot = {
enable = true;
editor = false;
memtest86.enable = true;
};
efi.canTouchEfiVariables = true;
};
# Use latest kernel.
kernelPackages = pkgs.linuxPackages_latest;
plymouth.enable = true;
};
hardware.bluetooth = {
enable = true;
powerOnBoot = false;
};
programs.zsh.enable = true;
services = {
auto-cpufreq = {
enable = true;
settings = {
battery = {
governor = "powersave";
turbo = "never";
};
charger = {
governor = "performance";
turbo = "auto";
};
};
};
logind = {
# Handle the laptop lid switch as follows:
lidSwitch = "hybrid-sleep";
lidSwitchExternalPower = "lock";
lidSwitchDocked = "ignore";
# Handle the power key
powerKey = "suspend";
};
power-profiles-daemon.enable = false;
smartd.enable = true;
thermald.enable = true;
xserver = {
# Keyboard layout
xkb = {
layout = "us";
variant = "altgr-intl";
};
};
# Touchpad
libinput.enable = true;
};
networking = {
hostName = "Tibo-NixTop"; # Define your hostname.
};
# Set your time zone.
time.timeZone = "Europe/Brussels";
# Select internationalisation properties.
i18n = {
defaultLocale = "en_GB.UTF-8"; # LANG
extraLocaleSettings.LC_TIME = "nl_BE.UTF-8";
};
console = {
# font = "Lat2-Terminus16";
# keyMap = "us";
useXkbConfig = true; # use xkb.options in tty.
};
# Enable CUPS to print documents.
# services.printing.enable = true;
# Enable touchpad support (enabled default in most desktopManager).
# services.libinput.enable = true;
# List packages installed in system profile.
# You can use https://search.nixos.org/ to find more packages (and options).
environment = {
# Enabled to allow installed binaries in ~/.local/bin
localBinInPath = true;
systemPackages = with pkgs; [
git
vim-full # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
w3m
wget
zenith-nvidia
];
};
# This option defines the first version of NixOS you have installed on this particular machine,
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
#
# Most users should NEVER change this value after the initial install, for any reason,
# even if you've upgraded your system to a new NixOS release.
#
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
# to actually do that.
#
# This value being lower than the current NixOS release does NOT mean your system is
# out of date, out of support, or vulnerable.
#
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
# and migrated your data accordingly.
#
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
system.stateVersion = "25.05"; # Did you read the comment?
}

View file

@ -0,0 +1,41 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usbhid" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/e759b10f-7949-4094-9272-d91340dcc5b6";
fsType = "ext4";
};
boot.initrd.luks.devices."encrypted".device = "/dev/disk/by-uuid/2b6586fa-8823-4add-94f3-132aab17b7b8";
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/12CE-A600";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.eno2.useDHCP = lib.mkDefault true;
# networking.interfaces.wlo1.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View file

@ -4,5 +4,7 @@
./hyprland
./plasma
./sway
./waybar
];
}

View file

@ -6,54 +6,30 @@ in {
options.sisyphus.desktop.gnome.enable = lib.mkEnableOption "GNOME";
config = lib.mkIf cfg.enable {
services.xserver = {
enable = true;
services = {
gnome = {
core-apps.enable = false;
core-developer-tools.enable = false;
core-shell.enable = true;
};
excludePackages = with pkgs; [
xterm
];
xserver = {
enable = true;
displayManager.gdm.enable = true;
desktopManager.gnome.enable = true;
excludePackages = with pkgs; [
xterm
];
displayManager.gdm.enable = true;
desktopManager.gnome.enable = true;
videoDrivers = [ "nvidia" ];
};
};
# Start a new instance of application instead of going to that window.
environment.systemPackages = with pkgs.gnomeExtensions; [
launch-new-instance
];
# Do not use these packages
environment.gnome.excludePackages = (with pkgs; [
baobab
epiphany # Web browser
evince # Document viewer
gnome-connections # Remote desktop client
gnome-console
gnome-photos
gnome-text-editor
gnome-tour
loupe # Image viewer
snapshot # Camera
]) ++ (with pkgs.gnome; [
eog # Image viewer
file-roller # Archive manager
geary # Mail client
gedit
gnome-calculator
gnome-calendar
gnome-characters
gnome-clocks
gnome-contacts
gnome-disk-utility
gnome-font-viewer
gnome-logs
gnome-maps
gnome-music
gnome-system-monitor
gnome-weather
simple-scan
totem # Movie player
yelp # Help viewer
]);
};
}

View file

@ -1,4 +1,4 @@
{ config, lib, ... }:
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.desktop.hyprland;
@ -6,10 +6,57 @@ in {
options.sisyphus.desktop.hyprland.enable = lib.mkEnableOption "Hyprland";
config = lib.mkIf cfg.enable {
environment = {
sessionVariables = {
# Hint Electron apps to use wayland
NIXOS_OZONE_WL = "1";
ASSETS_DIR = ../../../../assets;
SCRIPT_DIR = ../../../../scripts;
};
systemPackages = with pkgs; [
brightnessctl
dunst
libnotify
swaybg
waycorner
playerctl
wlsunset
wl-clipboard # Copying to system clipboard in vim
wl-mirror # Mirror an output
wdisplays # Tool to configure displays
hyprlandPlugins.hy3 # i3/sway layout plugin
swaylock
glib
libva
dmenu
jq
j4-dmenu-desktop
rofi
];
};
programs.hyprland = {
enable = true;
xwayland.enable = true;
};
security.polkit.enable = true;
services = {
dbus.enable = true;
displayManager.ly.enable = true;
gnome.gnome-keyring.enable = true;
xserver.videoDrivers = [ "nvidia" ];
};
sisyphus.desktop.waybar.enable = true;
};
}

View file

@ -8,36 +8,41 @@ in {
options.sisyphus.desktop.plasma.enable = lib.mkEnableOption "KDE Plasma";
config = lib.mkIf cfg.enable {
services.xserver = {
enable = true;
services = {
displayManager = {
defaultSession = "plasmawayland";
defaultSession = "plasma";
sddm = {
enable = true;
wayland.enable = true;
# https://discourse.nixos.org/t/plasma-wayland-session-not-available-from-sddm/13447/2
settings.Wayland.SessionDir = "${pkgs.plasma5Packages.plasma-workspace}/share/wayland-sessions";
# settings.Wayland.SessionDir = "${pkgs.plasma5Packages.plasma-workspace}/share/wayland-sessions";
};
};
desktopManager.plasma5 = {
desktopManager.plasma6.enable = true;
# Use gnome keyring instead of KDE Wallet.
gnome.gnome-keyring.enable = true;
xserver = {
enable = true;
useQtScaling = true;
excludePackages = with pkgs; [
xterm
];
videoDrivers = [ "nvidia" ];
};
excludePackages = with pkgs; [
xterm
];
};
environment.plasma5.excludePackages = with pkgs.libsForQt5; [
environment.plasma6.excludePackages = with pkgs.kdePackages; [
elisa
okular
gwenview
kate
khelpcenter
konsole
print-manager
kwalletmanager
okular
plasma-systemmonitor
gwenview
print-manager
];
};
}

View file

@ -65,24 +65,28 @@ in {
config = lib.mkIf cfg.enable {
environment.systemPackages = (with pkgs; [
# Window manager related
dbus-sway-environment
configure-gtk
wayland
xdg-utils # Open with default program
glib # gsettings
wl-clipboard
wl-clipboard # Copying to system clipboard in vim
wl-mirror # Mirror an output
wdisplays # Tool to configure displays
# Desktop Environment related
brightnessctl
dunst
libnotify
playerctl
swaybg
swaylock-effects
waybar
wlsunset
waycorner
# TODO Turn into own module/package?
dmenu
jq
j4-dmenu-desktop
rofi
@ -91,6 +95,7 @@ in {
]);
environment.sessionVariables = {
ASSETS_DIR = ../../../../assets;
SCRIPT_DIR = ../../../../scripts;
};
@ -98,54 +103,45 @@ in {
dejavu_fonts
font-awesome
noto-fonts
noto-fonts-cjk
noto-fonts-cjk-sans
noto-fonts-cjk-serif
noto-fonts-emoji
source-han-sans
source-han-sans-japanese
source-han-serif-japanese
];
security.polkit.enable = true;
hardware.graphics.enable = true;
services = {
atd.enable = true; # Required by sunset.sh
dbus.enable = true;
displayManager.ly.enable = true;
gnome.gnome-keyring.enable = true;
pipewire = {
enable = true;
alsa.enable = true;
pulse.enable = true;
};
power-profiles-daemon.enable = true;
xserver = {
displayManager.session = [{
manage = "window";
name = "Sway";
start = ''
${pkgs.sway}/bin/sway --unsupported-gpu &
waitPID=$!
'';
}];
videoDrivers = [ "nouveau" ];
};
xserver.videoDrivers = [ "nouveau" ];
# xserver.videoDrivers = [ "nvidia" ];
};
xdg.portal = {
enable = true;
wlr.enable = true;
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
extraPortals = with pkgs; [
xdg-desktop-portal-gtk
gtk-session-lock
];
xdgOpenUsePortal = true;
};
programs.sway = {
enable = true;
package = pkgs.swayfx;
wrapperFeatures.gtk = true;
};
sisyphus.users.wantedGroups = [
config.users.groups.video.name # Brightnessctl
];
sisyphus = {
desktop.waybar.enable = true;
users.wantedGroups = [
config.users.groups.video.name # Brightnessctl
];
};
};
}

View file

@ -0,0 +1,18 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.desktop.waybar;
in {
options.sisyphus.desktop.waybar.enable = lib.mkEnableOption "Waybar";
config = lib.mkIf cfg.enable {
environment.systemPackages = with pkgs; [
libnotify
playerctl
jq
j4-dmenu-desktop
];
programs.waybar.enable = true;
};
}

View file

@ -1,6 +1,7 @@
{
imports = [
./eid
./fingerprint-scanner
./nvidia
./yubikey
];

View file

@ -0,0 +1,30 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.hardware.fingerprint-scanner;
in {
options.sisyphus.hardware.fingerprint-scanner.enable = lib.mkEnableOption "Fingerprint scanner support";
config = lib.mkIf cfg.enable {
# Enable driver
services.fprintd = {
enable = true;
# Enable Touch OEM Drivers library support
tod = {
enable = true;
# Dell drivers
driver = pkgs.libfprint-2-tod1-broadcom;
};
};
# Start driver at boot
systemd.services.fprintd = {
wantedBy = [
"multi-user.target"
];
serviceConfig.Type = "simple";
};
};
}

View file

@ -25,26 +25,34 @@ in {
};
config = lib.mkIf cfg.enable {
# boot = {
# extraModprobeConfig = "options nvidia-drm modeset=1";
#
# initrd.kernelModules = [
# "nvidia"
# "nvidia_modeset"
# "nvidia_uvm"
# "nvidia_drm"
# ];
# };
boot = {
extraModprobeConfig = ''
options nvidia-drm modeset=1
'';
kernelParams = [
"nvidia_drm.modeset=1"
];
};
hardware = {
opengl = {
graphics = {
enable = true;
driSupport = true;
driSupport32Bit = true;
enable32Bit = true;
extraPackages = with pkgs; [
intel-ocl
intel-compute-runtime
opencl-clhpp
opencl-clang
opencl-headers
ocl-icd
];
};
nvidia = {
# Use the NVidia open source kernel module (or not)
open = false;
package = config.boot.kernelPackages.nvidiaPackages.stable;
# Modesetting is required.
modesetting.enable = true;
nvidiaSettings = cfg.gui-settings;
powerManagement = {

View file

@ -25,11 +25,17 @@ in {
];
# Send a notification if the YubiKey is waiting for touch.
systemd.user.services.yubikey-touch-detector = {
systemd.services.yubikey-touch-detector = {
enable = true;
description = "Detects when your YubiKey is waiting for a touch";
path = with pkgs; [ yubikey-touch-detector ];
script = ''exec yubikey-touch-detector --notify'';
path = with pkgs; [
gnupg
yubikey-touch-detector
];
wantedBy = [
"graphical-session.target"
];
script = ''exec yubikey-touch-detector --libnotify'';
environment.YUBIKEY_TOUCH_DETECTOR_LIBNOTIFY = "true";
};
};

View file

@ -9,6 +9,6 @@ in {
extraOptions = ''
experimental-features = nix-command flakes
'';
package = pkgs.nixFlakes;
package = pkgs.nixVersions.stable;
};
}

View file

@ -8,7 +8,7 @@ in {
config = lib.mkIf cfg.enable {
programs.direnv = {
enable = true;
nix-direnv.enable = true; # Use nix-specific direnv.
nix-direnv.enable = true; # Use nix-specific direnv, https://github.com/nix-community/nix-direnv
};
# This is also done by setting programs.direnv.persistDerivations.

View file

@ -14,8 +14,8 @@ in {
# Add secrets.yml to the Nix Store.
defaultSopsFile = ../../../secrets/secrets.yaml;
age = {
# Automatically import SSH keys as age keys.
sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
# Don't derive age keys from SSH keys.
sshKeyPaths = [ ];
# Use an age key that is expected to already be in the filesystem.
# You will need to place this file manually.
keyFile = "/var/lib/sops-nix/key.txt";

View file

@ -5,6 +5,7 @@
./openssh
./pipewire
./printing
./remEYEnder
./tailscale
];
}

View file

@ -6,8 +6,6 @@ in {
options.sisyphus.services.pipewire.enable = lib.mkEnableOption "Pipewire";
config = lib.mkIf cfg.enable {
sound.enable = true;
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
@ -20,6 +18,24 @@ in {
# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
#media-session.enable = true;
wireplumber = {
enable = true;
# Fix pops after silence
extraConfig."99-disable-suspend" = {
"monitor.alsa.rules" = [
{
matches = [
# Headphone jack on laptop
{ "node.name" = "alsa_output.pci-0000_00_1f.3.analog-stereo"; }
];
actions.update-props = {
"session.suspend-timeout-seconds" = 0;
};
}
];
};
};
};
};
}

View file

@ -10,7 +10,7 @@ in {
printing.enable = true;
avahi = {
enable = true;
nssmdns = true;
nssmdns4 = true;
openFirewall = true;
};
};

View file

@ -0,0 +1,35 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.services.remEYEnder;
icon = ./vecteezy_eyes-line-icon-vector-isolated_13932670.jpg;
in {
options.sisyphus.services.remEYEnder.enable = lib.mkEnableOption "Eye reminder";
config = lib.mkIf cfg.enable {
systemd.user = {
services.remEYEnder = {
enable = true;
description = "Send an eye reminder";
serviceConfig.Type = "oneshot";
script = ''
# Display reminder for 20 seconds.
${pkgs.libnotify}/bin/notify-send -t 20000 --icon=${icon} "RemEYEnder" "Look away from your screen :)"
'';
};
timers.remEYEnder = {
enable = true;
description = "Timer for remEYEnders, runs every 20 minutes.";
wantedBy = [
"timers.target"
];
timerConfig = {
OnActiveSec = "20min";
OnUnitActiveSec = "20min";
Unit = "remEYEnder.service";
};
};
};
};
}

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

View file

@ -10,8 +10,15 @@ in {
enable = true;
# Because these are made for development purposes and not for servers
enableOnBoot = false;
daemon.settings.features.cdi = true;
};
# Updated version of deprecated enableNvidia.
hardware.nvidia-container-toolkit.enable = true;
sisyphus.users.wantedGroups = [
"docker"
];
};
}

View file

@ -1,35 +1,24 @@
{ config, lib, pkgs, ... }:
{ config, lib, pkgs-unstable, ... }:
let
cfg = config.sisyphus.virtualisation.virtualbox;
# I like to override the virtualbox package because it is frequently
# and rebuilds take quite long.
inherit (pkgs) fetchurl;
version = "7.0.10";
virtualbox-override = pkgs.virtualbox.overrideAttrs (oldAttrs: {
src = fetchurl {
url = "https://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
sha256 = "0b1e6d8b7f87d017c7fae37f80586acff04f799ffc1d51e995954d6415dee371";
};
});
in {
options.sisyphus.virtualisation.virtualbox.enable = lib.mkEnableOption "VirtualBox";
config = lib.mkIf cfg.enable {
virtualisation.virtualbox = {
host = {
enable = true;
enableExtensionPack = true;
package = virtualbox-override;
};
guest = {
enable = true;
clipboard = true;
seamless = true;
};
virtualisation.virtualbox.host = {
enable = true;
enableExtensionPack = true;
enableHardening = true;
package = pkgs-unstable.virtualbox;
};
# https://www.virtualbox.org/ticket/22248#comment:1
# and
# https://github.com/NixOS/nixpkgs/pull/444438
boot.kernelParams = [ "kvm.enable_virt_at_load=0" ];
# Define the group
users.groups.vboxusers = {};

View file

@ -9,7 +9,7 @@ final: prev: {
sha256 = "sha256-UzpHAHpQx2MlmBNKm2turjeVmgp5zXKWm3nZbEo0mYE=";
};
cargoHash = "sha256-oHfk68mAIcmOenW7jn71Xpt8hWVDtxyInWhVN2rH+kk=";
cargoHash = "sha256-oGpe+kBf6kBboyx/YfbQBt1vvjtXd1n2pOH6FNcbF8M=";
buildInputs = with final; [
cargo

View file

@ -1,22 +0,0 @@
GitHub:
ssh: ENC[AES256_GCM,data:jzRpTgefhZg7Vhm8QvWNsPBko1yw56sM/XehY72lAc7aRz+dx6BGgyYbZiifd7GrGJGUbH6gWfUg8YjgVla6VRsiHCEvSK3bY0ADDwTeSUs+wuybYXQZqhivSCInVtVSNAcp99uI1QwKor289zmxcFtSZEXgU1OCSel/8br+qipAbOkzAKX1v15eigjY4OSQxXL59EuuuHEQ+vjVVv95tDv03jaNAoU9UKr0Atrny/Fn2sQn4Tmec5Q1XdvDErKhSxrAFiACkxXUwPZMHez+BUZrmkksqpzNJjYNIlmsITuOVr7Fyen9wotAwsDf96Fmz5JYLtRX9CAboUgQLdUOKprwX/xgBnFtDTSH1Qr785T1QSAZL6xdE6hNibxZO3vGeeaPC3oGB5g9x5CwTQelMdOUPKdKorCDj226o56cTc/IQxUpsULbeOyi2pMGHiTHbiQBzHpxWyQ/gBktPkF25GOFeaCu3gW+xsspX91jSKudcYdBqWUNmJcdsfHfPxPM4cZtA/sVMyoA+YcehgU7GTu9DAlxDTug/JWo,iv:5shfzmrFFVEuaYmyTkBMAw9BIFFkKz0yl1dyJWxq6Y4=,tag:CX7TBJJXCKuIPSmg9/RpGg==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYWWFUdnpERVlkK29TQ09k
SnJMVm5rUEV6S0huSzJ2YjFFQ3pNR0pmZWprClZEVDloeDE2ODNkMVVJTUtqaENz
ZzhwTTA4V2xOeW55WGtPZU5FWElQNDAKLS0tIFh5ZWtmZHRBWTAvM3ZwY3pKQ0R6
aDNUbFlhWWVoOWpjVlV1VTVJejlSMjQK6wCeCRdHY5oyTX6/R1U5AOGJyp0exi1A
dWPUMfkKBBBkrR+G6ougd8o3FwFf+yfb5RhaTxxqjit6p2RyMjR64w==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2023-09-11T10:23:48Z"
mac: ENC[AES256_GCM,data:3XEbhFY1TlXo6bTctV2u4i6QPzXnJC6iU3F/MUARSQl1z4peOB5x8hZfdiV/hVMR8I+83TxDcEAmKDrcaMf89Tqa+OiD//wBekMUfS7AmBRhpv7X5qfarflfnygacFsAMhf/bdiqowYbGSNvlPjueqHJaFZ+3x/wPrt/jAYNlr8=,iv:ciQmY7bE+Je6kMlmxxtQvp+r3e/ZK942tT4TtXhDX2M=,tag:4+7uZlEm5bcRfZC7pp5Y7Q==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.7.3

View file

@ -0,0 +1,41 @@
HomeLab:
Gitea:
ssh: ENC[AES256_GCM,data:+H9qhfOg5WlTB7pihvbJ9omY/zLTAADe8KzI4fbdZ7NuaM0auC95AIQqhwNNCZNglg9UGOVL662pY7dNhbQ/2iCLPHSPgFFXf3fx1moRRcYYQzoJxsgxp19FZQeGNJ0qfRf72xYbZQZKslyHQmcqDieoVTyhaLqTfgC8MQ/UZofw/ortmgME7z51rGV5sXXMjxpJpHz9JxiPwQEL0ABWDAeCqBVBzlqqwdmfKEdkcR4l3USHfH1iNF5XQ5V26I+UGDOyoixt1c/BXzD9xzKI7MUDoRz+qfC6C62LIlEgqZY5tWg+tVZnqobakxwH6d8pXtQ7vaIREEP0LqQMkrNcK8X+cDRteToQ1fcxtN1V+JfZSa9pVC+iGgvmSZ00q4bnOgTmgO9IZ80TvOR4bHpRhjM5l4JMbLBv2jqY1zeUx/5L3WNuYIm9sL5mWXkV/RAD8WCemNSWdKbGsvByEUeiFcxczL/vQ6y3fi+ntmXUgeXVy5zVNkNlYbqd+DemBmwZQb9D1T5T97i2ChciYb3/ON1NObja/bt0PTQa,iv:hIbwsPcDSfgDItlvFFy0vCjuQWvgoQHBH60v8nTVTNg=,tag:1T/TdTEy98TfgMzYAxfHKA==,type:str]
HTPC:
ssh: ENC[AES256_GCM,data:svt6jhMXVCydmlcoa052TtFoIwQiAzNJRn9GPZDBuOGSnB83kUpuy/oqPOIa2ipco0L/5F/mQWn7OHUFtyhWWMerzY8niPldUDKH4jgsvRhRIatGOFiDyL8oA+f1O9lmhyFx35uxGa+Q6tn6rtXVKRVWQFe8kYBvGYjugKixsOMugoqLIxY8wUlMTzm6uDd7a72s/0hgQZGKp0eHWBHEdSJGPdv8svVDZ1PBMrlZa5ZpuiUmmvZvyCEnRtImUZALG4nKMvJjunxKr/4MJhWuffQ60jLYzInoGggiJlwBm+E+m43FwIFndY+LJ+ykO5RAbHhSwgXsCS5WXBrvDGuOTNAlIp6yTgSK1DCzSjzOJOc93rVSPhPdkaOoKgxhz1k95qCEhYUf9vyBgyIaOntWEArV+OZmHje6awbk4fpyIzRe7ggHlhKILYoGYzeejxbMGB9nH15RlUiTF7QnAWxWNSwcET6dSn2MtpC3yegnYl4u3eJ7YkHHYYQtwCQ9vCnt0i/sfuJmbrSFBXnVKMWB2w1Att145gDdlDok,iv:4bkSYvgmG6j/AwVnfGsLjdqtyP/gpWRvOKZCQxP0sMs=,tag:LyjE7dTt0+IDuSlbVLgCMg==,type:str]
Hugo:
ssh: ENC[AES256_GCM,data:y233CFIH7/n4EGEd2D7MuoprcMV9A8DaiV9JYZ6sr5j+hZnGr8sIAm9/55Bi2cD74sBZcE+tjOz+V2aJ2llKgcdS84ZmXMPh6KQ2QYRYuGdBLeztl8foKdimToblBapebTVO7Rc2mdhg7sZtC/TKSIJnG3R3lRfRdKaxNjaRS51epl7VZKGhLBjZoZqMXOezY7lvNBvF3hFfMh5el5I5Te/yQbbp0a7DkAvA+c1nG9bo9FN0h3VJJTzcuHqvGHI736VosLe8UGirMkX9mBwB8ZV4+2Vp7ZsSHnX5or/MzuYexT0zeLbTNHfj64d2W2/LKDkxNc35Sw7NvxwsVj3k2UHC2jEgus2z0AdMFszEFXh+Eu9wK8yX4ebzUut+OHNPuxvIk+ORxYr3OdVkOhhWHLinu/skNg0u5OdUXo/0p1876+gpcnOVC5UrUflwrtKGQgNk+ovWWjSfcQMh+gI6GYXzksX3YdMEriYZt4Z8lev2od/i7q48cV4W3Lo6TDDttipynxQus6K+J3oBKRirLHylRA5gusqUOVzC,iv:thw9OUnA02qe6aMuLTwy+q/a6isB375/k7JixPEy960=,tag:s95FtFRmPG0Up2oVuQyXsg==,type:str]
Nextcloud:
ssh: ENC[AES256_GCM,data:aVqa57u9hIOquP367EDj2rlyQWRe3EZv8l5cC+yQQKCri2bN5IFSq8qNemOIcU9ycBnxIyK6gLerJYQQcgzIIARmnfDpbJ9w+EeUL5yvPVJN6FM7oBeaL9mzYRl8aDKr22LhL9YiKAT1nKHESmTb3TZRvuvWJTGzCMRV85ROGxZYVUgG6BjuHEzuTsc4fy3NVPIl7/4ZjPgNNYx+UNsV5xwTejveB/sGblVrHOO74LZXzUWRlQNun5nM3MY3GALzfrPrVIAyGNu37CGachtwxaPOj7vUKZmD/e+XajYVKRJ3v33jrUeI0dDmhuwJj3taoFik6suAyiK3RlDdeWoERR8vqduiyxJnVMs6mNkigzkVtifpwZyQ8vNyG7w1JNPygMYgQzjN43lGVml8cx1lZvcoBzQabjWxcNzhV8gXxoGKvAwUV7ELB6l00rUH+EeI0uU8/IFm9kwmZq42ciM/bRGSGXzo2PYG2OHOiDe5b0nrIlajaRKd+vuuzTtFFU9EwH0GPzERRaoxVK+h9tzcco/REITCE+CVlHSx,iv:bb1X95HK5tT7EJpqqgMOUxw5VO5MuzoYxkPIzR5sEqU=,tag:y2LKHm7czwyuHp7Ea8KiYw==,type:str]
NixOS:
admin:
ssh: ENC[AES256_GCM,data:rAn/H2CtK2dkES2UIJrZbEP/3rqLgJsy5rortmdqoCthQ41IxztiaH1VtdaVDtw5j0qu49RJ59KkmYpOQXC2okAgLeqcb+J9iwrwspfKd+/I186a4gHZ2l+hGpmr3Vbs6K/UoCY67uygZhznBuwKeW4EjYJgGS7zInJFmMvcMV1rP/t4VoW+5oxptQNCrzoRukIG6NiAOcqU1GtvBfL5PxLaTWUEcZMYuo6sY/9VuEWgkZP1bmhBPUIv9D5yJo94KQr0YOaX4lz2pwd+K0cdD8d0Lh8B5YplA1NDCUnBbuDXfH0aSUAm7DCm6Y/E2UECEMRLuwfyEoe/yaHh8iCGveI//FkmiIKNY1SmTkjM2Fdfk6QaVDF8sG2CWdX21H3senfeM6jSow7JLY1LDvC2WxO4YIJEi14Y7zEpIZinWimyAhihPvMLnwd3taOhE59NrTOQKQS3tyFX+5tO3LtBrpn+Tm/B7WO49EkRn1LXN8CWkFnEEGXgxfNRg91C967nHaNpDMssGjfVG20WwYAtMKXzrNyzSEJbZglQ,iv:vY/8yyO0eLzpdho9aPUH9WGQ8Cp5LA+5RckjzDgYMMY=,tag:Jar1qVS/c1rQ8f3qpYqJdA==,type:str]
Roxanne:
ghost:
ssh: ENC[AES256_GCM,data:hkgVUVyCLANeYB4bcCTLB/F6eAbg7J4eN8y+VVzBfkcgnpDmXmghBihreQVT7OIwRrHIH1ok2vuH8vgXb38tuplUD5I8e0Gqy3EqpOGagsO8lss4aIg2lRwZ9WazJknvo4OaGc34jrwcZicesnaxK6g+GX2r2N4caGKMuOZ2i1mLKBwOcEtL6l3REKrGkExd3mYJX1Yqs7sMbGLNpfemDghv646zvxDRwPby49qIPA8OtGR+DBMZTTEviNqamJaFbs7YX+K77J1NHK59u6UfzU6hEjTBEYIjkFDzGATAZAopCsjOHcAA0alejHK4QZZt3e8unVsLICNK08ZCyEzwSXQ/wpUh3ccGcLit2t1LYZT4PqqG8+6ooaQYso67Wral0pdsTsrF0mGNfsZm76MDV9puP5B+IInanHz+2mCHbdmTi6rg9t8Q6mpFqrUbrwxMn2Ns1proBXBCqK/sFjC/bVIyMHUVOh6GYcKaVTv8ecB9ZEjp5dZ4VeStqTMT+xqS7dXBAJzGytLwXT/JaQelIE0w47aBaGy63Pqy,iv:WuAGU+ru8xLp2LXK12x/ueCH0XDxA0zGUt7+HWUdVMo=,tag:UqUMD/jSdTXOkf0kyMqwHA==,type:str]
Vaultwarden:
ssh: ENC[AES256_GCM,data:LJ7nbIdl1GqcsBtOwqsDtjKMfks13X5hsGkEFxDj0eX1EegEBkoWnzstu34RTgt1O1O+3Y/Amg7cDce2ZyZrTwDmLqinpuJD3CI7pRtQygAH8X9wPQYE6U3D1t4dXuMcDftjS+uY0CJFmq01dLv0GytSZSiNBcqNepTY+fO20yylyUbDGjI3Foyi86ipEtLVeFJqESiHDMHn/Cr+ggpLNMXijpnyoCRstPlm3GY3n6EhPwKhwovLB3AXolUeScnInIpwiikVTkYLNLCbrG8KAAr+DmWK3GTZYToH0wV8HpacPQI+4cHf96+EvAVlYMwGyQztPmXO7/9xUgWCNYow+z8BD6ijMuyZHT9aNkoAPt/y72N/PSf5HqW0QVWr3LmyIG+i9Bxbhqc7mRUIy4wZsODbtoO8/RtAly6mXIg0DZLlbo8kDe3TE3m+P5E/KQJOAvM2QdL+NXPcf2J2JYHW4kzITx447Bc3+F/DRs616MhekIoDybLhY3MT0XvYX1d1wAv/Ip98EGzfptXjnJvKPcJgTBlqNyeKuPOe,iv:oEGJUpoj+N30TgLpSWQqGdqYBdWLUWnSuQ+7TdSgmFc=,tag:AUZ2QnPUxLHaxsHbrmSYZQ==,type:str]
sops:
age:
- recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlL05vZHk2T1B6OHArUXlj
bEZWV0dUeVN0M3ZpeHdKcGlKV1RWYmRLM0FjCm9PLzBZTFo3RjhZTEhYMDBSN2Nj
aithQ2hpZXVCSngxcVBvQ2hKRzFXUEEKLS0tIE5rL0NHb1llRmlSQXVUeU8rVmNY
aEZHdDFEWUdxMzRVVjFhQWZmS04wRkkKrD2CiwdNcbK9s64omQ7xSA29J48HwIHa
ickyL/uorYhXmBKhqdvNq/j1Nb88LR9ti55Z7eecJNbyJb4OTtgzXQ==
-----END AGE ENCRYPTED FILE-----
- recipient: age1qzutny0mqpcccqw6myyfntu6wcskruu9ghzvt6r4te7afkqwnguq05ex37
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBOWNXQ1BsekdoS3BCdHA4
YTJJRHJBTEJ1bmhkWktSamYyRk1TUmovZ2trCnBXbUZQZFBndmU3VzJHVjczZGtY
ZkJDY3RzSEhXQVlLL0g1QTYxSC9CZGMKLS0tIGFBZnNlWmZjZFdkdGZvaHA5ZjMw
NFRtOFIybnFPWm1idFY0WEVqVGxOK1UKiJDByqKv/i/l9dvOplDyzDORU3ulhSwi
6xyEqmyNQpIkiS6TLZZYrBlQMDYqZ2gj1HhdIUssWJCf5Ho8KVDjJQ==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-10-18T15:55:58Z"
mac: ENC[AES256_GCM,data:vdVOTFlDD9jlGJksI5TDxk3stPkLY8lB6LMhV6QGqh9R2vaGuGGh6RZuR6AInq1Rm89innA6M1S2UUM6Jef1EKiPgq41neWMx/i3n7Ixx8FcraO/lgUYKG5yszYdjAlLQvKWqIbvX0bMYNwpF10FO5OyiXWiJrP9Om0Pjvk7dO8=,iv:W9I1nv0fKckNlNjJF0U4HlkyI5VDpvOGiSo0GeOODaY=,tag:RjkSTQYejyf1WO0LilbXYg==,type:str]
unencrypted_suffix: _unencrypted
version: 3.10.2

View file

@ -1,24 +0,0 @@
Hugo:
ssh: ENC[AES256_GCM,data:Qi4YEvG64lJqhISMNtuC0mM02TU5KPpzdgs8x2UJwxAxus4+Aa3nIttkbcbKxtobL7ohKcMFGq7bBdj+s4zbctctknHdjiwj1caDoD7+Fm5H0RWLe7yjt5e4IxRywN8cNF59FfINl2tMutuENOzSucjHIXTKSV/ARZzwhcyZkQy//YvlReUSrUNaNkVM1VtjVILOToAXGzQx5w74eX+9JYV9FtZRTbr/spule+UDDtPZaaiFZmFfE5YjULFPaZJo2iUiirKalPodxfIar9eXzoN+bOQbz2Xys1QHNEt2cwWjERruCsojiyA+XeYFreWEWGggSEXizxv7cS5ab1e9XqtWR+u3Gdy/t1/cjoMBVXuLxQ+BwTlAO8NDgRbW0aq8q5yOsPCjShI/N4EVN5qtMUT1+mYZLCiZPPXbLBIiyqIWea/Ru8iIo7+WoF2iDBgshwnw8+uGDFfwlNh3SAwMSQOcGg06+U17PeU56Q/wqID2lEMDgGfHdqObvMlae1q+Qa9cwrp4xDw5S42NlgVaNcovUav5US5kO43r,iv:xvuRv4sqLRGv9npIVjnGV7zDPzIyS58ZKN2T23BmMZs=,tag:iGnBzgRhREEfKjE/ea5Drw==,type:str]
Gitea:
ssh: ENC[AES256_GCM,data:digqDmnEPg/Zn9Xt7+Z/R9lTBs6CeOgHgIhstWxHnvucwshUO7Zu+l80YPyzAck0pO5YIKML8hjAqj30lYqSPRzG1uRpT7likCy15MqyyQ64U+5PGQRNhybo1eYoqVFYd2sYc5xzkve1b8zCDfxj2mbmRYETYSidHZLaDilq6iKtWWSX+mnTXqJ2gIj+J7pfFBOHskWglnrVdj93AOdpG6cmnvzE7ey8SrMt9t0GzmRFAvjP3slio8NTsI97fu3isF0phGoh8q9tGGRnRMDq3E33zzntT3jawtWiib9ZCxuJ8Zhwc1fIF07YfBJ+sZJ7Kau1205NFJtISGbVhVmpD9kQdoFwYQxYJuvPcDYyIYH/K86bYnBmJWRCwbTh7Es7DCCC90VY/yMjRNoYvjupjhuHKGXE8O/Y8weERZ+GuZ8BSxFwU81YK9mcQyw+Z+MdAFsZEhR7cpxRkty2INKxOdX8wJGVw3A1cInwuiBjLiED0ndh39RqJbE8DUQAJgngSbYK52rCadjhs2xf+tPiDatsDMAHU2DpyDcz,iv:Dh9hhr1mp+gXA1eUvsJVb5opbaEtdRMKAd4HQSQlOpc=,tag:k4M96tstNATvyFe6xF2IzQ==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYWWFUdnpERVlkK29TQ09k
SnJMVm5rUEV6S0huSzJ2YjFFQ3pNR0pmZWprClZEVDloeDE2ODNkMVVJTUtqaENz
ZzhwTTA4V2xOeW55WGtPZU5FWElQNDAKLS0tIFh5ZWtmZHRBWTAvM3ZwY3pKQ0R6
aDNUbFlhWWVoOWpjVlV1VTVJejlSMjQK6wCeCRdHY5oyTX6/R1U5AOGJyp0exi1A
dWPUMfkKBBBkrR+G6ougd8o3FwFf+yfb5RhaTxxqjit6p2RyMjR64w==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2023-10-05T19:05:15Z"
mac: ENC[AES256_GCM,data:8xMV6RkmXpt2uY07E+59ZXwTwTL6oqo9j5sFOxejwnFU06MGW9t1h/5HFg+GKpp3Jj1LT6a7uuyip6bDGCMEhI054sTv2uDlOIFd4nbHwOh+keEH/FLa8csTq4yyisROsaXUUCtWxraGXz0MQXT8xlQMT7Pn0x43JssmPhOwrRo=,iv:JKNsroIAxvV5V23at/DsDdud5idVn5IEQHrgeFHR3fQ=,tag:XY0hikk4yvqfynPI8q+GBg==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.7.3

View file

@ -6,22 +6,26 @@ UGent:
SubGit:
ssh: ENC[AES256_GCM,data:hJAle4DHJNvX569reclBG5rEdWsjAyV2TtHYMiPfky/dMKJkYgT4+T0doLfUn1O6at77kJGPmwUEvmK819DUuvHtNY7c6angV7iLygJ/ThI1FIFOKH+NxEsI3scoT0VDDybHpgice/fcJL1tMcvE74+dWOnZ2r4pxcMJEFHUPVVWcl9/stJLn78OonsyWpj8PglcnYFOfZ6THIe3lyNBxRp7XEweuwjacthGzOzNu3Z95zcCAnAokFVZ570glJNhjJVNEmPHZkHOcGiGNNM4JNbR11v+dOYtac942t/mmmWwAzbznuu8ZLupYWjdg/f07ftkPAwFwCoXblZ3708Lvf6uOt/CPeWvEII2Haf1Cr5w+U6TAt14zzL73xCSQqwz1TfkcmD+bJplmtcpSP/KX8/BRK7qr6Ec5T9ecbraRB7zDBg0X2x51DSHLrA7UIhpI9JNaOArU5UOVYTWwuzFiGG61elJMcPZ5vWEVrTCocfa4INPo4B2MkFbbsYf6xnY1L3Wc9LQjkff6aCqYnQaXZ/WfPWepf9YvYG1,iv:0Bm1r0FuJJKKmcbTiPL36rb5FaMZfOO7Mx8pXU2FSfg=,tag:0ShoJPJUx37mEAus+mhPmw==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYWWFUdnpERVlkK29TQ09k
SnJMVm5rUEV6S0huSzJ2YjFFQ3pNR0pmZWprClZEVDloeDE2ODNkMVVJTUtqaENz
ZzhwTTA4V2xOeW55WGtPZU5FWElQNDAKLS0tIFh5ZWtmZHRBWTAvM3ZwY3pKQ0R6
aDNUbFlhWWVoOWpjVlV1VTVJejlSMjQK6wCeCRdHY5oyTX6/R1U5AOGJyp0exi1A
dWPUMfkKBBBkrR+G6ougd8o3FwFf+yfb5RhaTxxqjit6p2RyMjR64w==
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpb0dlWE5PNllnME1jQWE4
cHFzWkR4ZzNaWlR0WDJ4c1hEdlJGN0FISWlZCmNNdVRtL080QzgwQTZtTGpVRkxW
dkdvYXdQNUlhYWQrYlNDR2JISXdpdkkKLS0tIEpIU20rK3F3WGpBS1g3NmJqYWRX
SWlNbFZ0NTJJZ09Wd3JzK1hscjJoS2MK4GU8ndim80CaOjgvMwVlgIq/1VQIylSZ
EJl15zUFaDiDZUCcZE8TkJQ/rbGDSiq7KlWyFe48Q3UC86jfF88qCg==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2023-10-10T06:57:11Z"
mac: ENC[AES256_GCM,data:Tvwv2mqceAxi7ic3+95Y6hBMHjqVoCkYnTkEsXOrhumgXpuuB/QQ0ASEf6gbgkCLXGwnUAXsK41bIIJfFgYSk89fHw6AaXfs6a+zL2Mh5zkhMIE2bm68mFK8+/TX/e8SibbEwNZCKOcPqvaO6nK816KCmh3KKCbT9ObaB6CA/KI=,iv:YPKgYAnQ135JXou7q9jVN7b3SKIDwceKcbqiIjkqnTU=,tag:udPrEVu2F+hWkhNoEyjTYg==,type:str]
pgp: []
- recipient: age1qzutny0mqpcccqw6myyfntu6wcskruu9ghzvt6r4te7afkqwnguq05ex37
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYNjkzeHloK3hKUTJaMTdr
NUdiZ2JGZitqN1k0WCtEODU4R2MrTmUzR1hrCmNJL0Y4ZEpLN0l6ZmhGWEM5UktG
ck1PUnFSSVNCRUd5Sm9kSXNmVW5jZDQKLS0tIHpHWVBVNFNBSlUvZldJVGowUEtZ
S05HZ0FiSVlkUjRRV01TbjlpVFlkQWcK7jAqOYd9EDT93xpVgtpKl03EO6oHmGRR
iK9j2y7j1YSghPKDBrC5eKy9+IP/EFEBGygcokqT7C6Nscu80YhVbg==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-10-06T14:01:15Z"
mac: ENC[AES256_GCM,data:bWo5DGCt5cK02Lf61yKFDZLLaMmcWyba+03CZ35EnGz7Hoc1sl3qTmgJfNz8EKDeXTIkk33DdnI/kZ2nX7vsZ/QgOhFQWzWRYe1cxqiWyd0wnUlwdoeeFrBP3uOTHXAOVe6q77S3qChzBP3J+5OijztvdOVEOKFmFPSCgyA029Q=,iv:6DSp63IrtYyaFxkaify/JZDXpB76AaGGW/OcPTKBbvk=,tag:sPKddpcx60JFZ4VEGD1tnQ==,type:str]
unencrypted_suffix: _unencrypted
version: 3.7.3
version: 3.10.2

View file

@ -0,0 +1,28 @@
GitHub:
ssh: ENC[AES256_GCM,data:jzRpTgefhZg7Vhm8QvWNsPBko1yw56sM/XehY72lAc7aRz+dx6BGgyYbZiifd7GrGJGUbH6gWfUg8YjgVla6VRsiHCEvSK3bY0ADDwTeSUs+wuybYXQZqhivSCInVtVSNAcp99uI1QwKor289zmxcFtSZEXgU1OCSel/8br+qipAbOkzAKX1v15eigjY4OSQxXL59EuuuHEQ+vjVVv95tDv03jaNAoU9UKr0Atrny/Fn2sQn4Tmec5Q1XdvDErKhSxrAFiACkxXUwPZMHez+BUZrmkksqpzNJjYNIlmsITuOVr7Fyen9wotAwsDf96Fmz5JYLtRX9CAboUgQLdUOKprwX/xgBnFtDTSH1Qr785T1QSAZL6xdE6hNibxZO3vGeeaPC3oGB5g9x5CwTQelMdOUPKdKorCDj226o56cTc/IQxUpsULbeOyi2pMGHiTHbiQBzHpxWyQ/gBktPkF25GOFeaCu3gW+xsspX91jSKudcYdBqWUNmJcdsfHfPxPM4cZtA/sVMyoA+YcehgU7GTu9DAlxDTug/JWo,iv:5shfzmrFFVEuaYmyTkBMAw9BIFFkKz0yl1dyJWxq6Y4=,tag:CX7TBJJXCKuIPSmg9/RpGg==,type:str]
Gitea:
ssh: ENC[AES256_GCM,data:8eyuycMkBVMHfzaGeGs+0RA4vCpaAUTjCwiplUamypEk9BDYqxe+69O6OjJAGaPnmH4kpsb/WVd5sU6HNUogBuzDQhCrv2B6NadcmnV+fH3MHfAWvDy7R68PUkwcywWVOo65SONckjKVa0Y+8IeeJh9zpr36qCbbs+zPC4XTk+Y5R4vK/ocmSJSmwqVK1SfGGwOjFoJvHVI6jdXh//vgKaITqmyZV7N3OU9EiQp1FmNKwFf/x70w2LGATrNBcexwNy20ZYd6ewiAfJxFHR6Svfc2P5X2nlv99W5t1eU5QEGUcalcslsW/VkmFC3agN3Yry2EMIlfTlm0hm4+ryDGWEvgyUC0dLA8Ao0TLaaqig9HzBRP1h6aORe0lDwzTUg6WltrIu0s7hFwD4YLi1qP5lY99hvrDIRbTEg6AY6X4b32YFlyOXy0YDetv90+QyEcwANWO9MXz2S9hxuQmjOXMCVYMaiMLVUkG+mShbQuxTiFQt/7D83yOBSRLugx/aU318NKvUDlCt7wpZbMI3gBia4nUYLoLcXRKcAZ,iv:uc1ZtGdcolLrpQgS5n5LEAwBt0vMmkj2OuTXcn8sQ7A=,tag:F2ofcj0zEBgxwukMUd7+uw==,type:str]
sops:
age:
- recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwSDRZQ0pVNWhmdFo1UDVv
MFlrZEFtNjlpZ3pBU0VrdkFpR2x4WGxUZ0RRClJad1JPYWhFTWd1N2ZKQWsrSjFj
YXREaGRrbE15MEdpblJtcTk2cFk1eGsKLS0tIHE2ZTd3R1gwQ3E1VzkvZTZoZjBW
aTRLcFJ6NkpJRjkyenVxeFRLVmgwMjQK47HRKyg1SxWABZHCdVdIaPEKoSiWIOO/
OYu/1owbUwTh1KouUb4tgNmVBOkERJ9i3lEjWLHUWrlCAUImc9dG4g==
-----END AGE ENCRYPTED FILE-----
- recipient: age1qzutny0mqpcccqw6myyfntu6wcskruu9ghzvt6r4te7afkqwnguq05ex37
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBVDZtU2g4dmFXTlNIMFBs
OFBpS2RXRzFwTVdJazQrSldwWUFtdCs0U1ZFCmxRdy9yY3VIWU4zenc4eVNEVUZv
VUlyT29JekNTS3RIMktmS2RGNU5GMTgKLS0tIEhvM2RkcUs0SE5uSXFxc3dvSXhP
WmViM05IMHFPckNic1hHY2ZlTEMrYkkK+66rYqbGQucqQch4Tx9jONR9OIXdjMUd
q/fGLCoSluHuCOkUWr/wUgvF5dWAHftYj9JjDB/9vpp4Q0WClLDszw==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2024-10-19T12:24:38Z"
mac: ENC[AES256_GCM,data:g15gV0H0rlzoeN5Z/Zkgh/8ya9GSrWDVP9oqdVz3m4obmquCLDIygsPaYpRXmfOtPSgvX2KzZ08sNLfcBZSh7eH2Ws7xcezWOntOcmAQNz5LvemqP7YuwtivMK/P4qrkME+LQPkSrSUR+rT99Zj+RQXisy91Cq9NbVBj6uQH7+I=,iv:W+oDp5Dun0g35BFprOmgfI0LoPME3HpPuuniCKA32Kc=,tag:CUU74HZuRNedyI3txn9D+g==,type:str]
unencrypted_suffix: _unencrypted
version: 3.8.1

View file

@ -9,22 +9,26 @@ example_booleans:
- ENC[AES256_GCM,data:Ul7fKA==,iv:U51FhTsWwkbhUWGsO8D+bl2mLdTIfapIB+OGJEOAiRA=,tag:9NJLKp8s2TSKLyXwM8OncA==,type:bool]
- ENC[AES256_GCM,data:LVU1a90=,iv:1X1qV+8iIe1i5hIrqyB3tJew9hsHjJHlATmkEmwRA0Y=,tag:ko/5OwmJH/6HKPsvbkoRpw==,type:bool]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3ekx1bzluY0ZhYmhnRmhW
b3pzM2RlKzFrREpMK3RNU1MweldNRXJ5NjE4CmNRbnFvbk1EN0V0ZWJiVzFmL3Jt
N1Vpb3NEdXFzdzU4MjN1elp1RWZ5THcKLS0tIDR4cTFJNVFveEdxaEYvZndKbURa
UHpaNENhL3c1K3RXc05hUmdNZVBpT2MKwBj4+Gb7giVJIoPWiwY3tvugEAexXy6Q
YTWgZQZk96r5aF2mBjRCFCc7prj85PsUN/UXOPjPLVAFG3lwS0Eaog==
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4KzMrV2dpWFQyQUQyV050
elVhN0dUeTRodG1kNHZ0VEVmTUI1QjhidFJnClhJU0tVY0tmMkFaMDZkMDJOKzV1
NVJiSERtR0VZR3VBOGVJbGk3cUxTMzAKLS0tIGhvMmIyOWQwVlhXRzYwampTeG5V
UDVWQnE4NDY5cFF3RnpxcjhMY2N0VUUK+B24C0CT5b82DJSdKotX4iPhzWxnYsn6
kS7Ut9uy5OwcB+p6erlbLMEUVmmSNw89KBrowT0Ui1d3AfyGAN4rqQ==
-----END AGE ENCRYPTED FILE-----
- recipient: age1qzutny0mqpcccqw6myyfntu6wcskruu9ghzvt6r4te7afkqwnguq05ex37
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwTjh4NDRYZGM1VHRZWGor
MmhFWDNvMjI4UUVPbnorNnpabGNZY1BuMVdrCisvZ0U5SXRPM3IzNlZvZEpWZktz
b2FJemtNVHU0WUI4M0U1L2tWR3g1MEUKLS0tIGczTmVubzcwVjg5NDdQdEllWEFw
TWRIRE5WSGRCbncvWlpEMmdWOW5kb00Kq79O2C4aYmZmrq+rbyMtwmEqkqL9epn/
pw2dxXmYt95qu3x/BxjoN8RFZhabFp9xHkZ1kqJe9FGmBtAmoWXjWA==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2023-09-10T20:20:18Z"
mac: ENC[AES256_GCM,data:yfmYEo8pdlG3tu4Fabwde57igIvpt4UuhQqStVlV36rvPnv9dc42+6iduu+heuQ2OAVw0jk6/o6SWJpcms2DReOAMGDOgt+zV3TgJym52YdMcjTNJTo+4loULhvaWyN9ZdPJjSYKEoSgOZi+oMx4BpwreQEaPaYUxcbTqrWCUa8=,iv:Mb81sBxibRxSaC2kgakhy2pyEmW0MDobF+lHF7cny5E=,tag:DCqTWSnf5Gv5YfAGSEC2yw==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.7.3

View file

@ -1,4 +1,4 @@
{ config, lib, pkgs, pkgs-unstable, ... }:
{ config, inputs, lib, pkgs, pkgs-unstable, ... }:
let
cfg = config.sisyphus.users.tdpeuter;
@ -8,7 +8,7 @@ let
cursor = {
package = pkgs.phinger-cursors;
name = "phinger-cursors";
name = "phinger-cursors-light";
size = 24;
};
in {
@ -33,19 +33,68 @@ in {
];
initialPassword = "ChangeMe";
shell = pkgs.zsh;
packages = (with pkgs; [
bitwarden-desktop
brave # Internet browser
chafa # Terminal image viewer
cmdtime # Zsh plugin
duf # Df alternative
feishin # Jellyfin music client
foot
fzf
gh # GitHub CLI tool
glow # Terminal Markdown renderer
icosystem # Personal icon theme
jellyfin-media-player
libreoffice-fresh # Office tools
librewolf # Internet browser
mpv # Media player
nextcloud-client
nsxiv # Lightweight image viewer
qalculate-gtk # Calculator
spotify
spotify-adblock
unzip
vifm # File manager
zathura # PDF viewer
zellij # Tmux + screen alternative
zotero
zsh
zsh-autosuggestions
zsh-syntax-highlighting
# SMB
cifs-utils
psmisc
# Linters and LSPs
statix # Nix
# TODO Move to devshells
# ruff pylint # Python
]) ++ (with pkgs-unstable; [
logseq # Note taking
]) ++ [
inputs.zen-browser.packages.${pkgs.system}.default
];
};
fonts.packages = with pkgs; [
corefonts # Calibri for Uni
font-awesome # Dependency of Vifm & zsh config
letter # Personal font
noto-fonts-cjk # Dependency of Zellij config
noto-fonts # Dependency of Zellij config
vistafonts # Microsoft fonts
corefonts # Calibri for Uni
dejavu_fonts
font-awesome # Dependency of Vifm & zsh config
letter # Personal font
noto-fonts # Dependency of Zellij config
noto-fonts-cjk-sans # Dependency of Zellij config
noto-fonts-cjk-serif # Dependency of Zellij config
noto-fonts-emoji
noto-fonts-color-emoji # Emoji's!
vistafonts # Microsoft fonts
];
sisyphus = {
programs.spotify-adblock.enable = true;
services.remEYEnder.enable = true;
};
home-manager.users.tdpeuter = lib.mkIf config.sisyphus.programs.home-manager.enable {
@ -56,46 +105,13 @@ in {
homeDirectory = "/home/${user}";
inherit (config.system) stateVersion;
packages = (with pkgs; [
cmdtime # Zsh plugin
icosystem # Personal icon theme
spotify-adblock
]) ++ (with pkgs-unstable; [
brave
chafa # Terminal image viewer
duf # Df alternative
foot
fzf
glow # Terminal Markdown renderer
jellyfin-media-player
kitty
libreoffice-fresh
logseq
mpv
nextcloud-client
nsxiv # Lightweight image viewer
qalculate-gtk # Calculator
spotify
unzip
vifm # File manager
zathura # PDF viewer
zellij # Tmux + screen alternative
zsh
zsh-autosuggestions
zsh-syntax-highlighting
# SMB
cifs-utils psmisc
# Linters and LSPs
statix # Nix
ruff pylint # Python
]);
# packages = (with pkgs; [
# ]) ++ (with pkgs-unstable; [
# ]);
pointerCursor = {
inherit (cursor) package name size;
gtk.enable = true;
x11.enable = true;
};
};
@ -126,9 +142,12 @@ in {
};
};
gtk = {
services.syncthing = {
enable = true;
cursorTheme = cursor;
extraOptions = [
"--no-default-folder"
];
tray.enable = true;
};
xdg = {

View file

@ -17,7 +17,7 @@ in {
source = ../../../stow/alacritty/.config/alacritty;
};
".config/dunst" = {
inherit (config.sisyphus.desktop.sway) enable;
enable = config.sisyphus.desktop.hyprland.enable || config.sisyphus.desktop.sway.enable;
source = ../../../stow/dunst/.config/dunst;
};
".config/foot" = {
@ -32,6 +32,11 @@ in {
recursive = true;
source = ../../../stow/git/.config/git;
};
".config/hypr" = {
inherit (config.sisyphus.desktop.hyprland) enable;
recursive = true;
source = ../../../stow/hyprland/.config/hypr;
};
".config/kitty" = {
enable = false;
recursive = true;
@ -58,7 +63,7 @@ in {
source = ../../../stow/swayidle/.config/swayidle;
};
".config/swaylock" = {
inherit (config.sisyphus.desktop.sway) enable;
enable = config.sisyphus.desktop.sway.enable || config.sisyphus.desktop.hyprland.enable;
source = ../../../stow/swaylock/.config/swaylock;
};
".config/vifm" = {
@ -66,20 +71,20 @@ in {
source = ../../../stow/vifm/.config/vifm;
};
".config/waybar" = {
inherit (config.sisyphus.desktop.sway) enable;
enable = config.sisyphus.desktop.sway.enable || config.sisyphus.desktop.hyprland.enable;
source = ../../../stow/waybar/.config/waybar;
};
".config/zellij" = {
source = ../../../stow/zellij/.config/zellij;
};
".oh-my-zsh" = {
enable = config.users.users.tdpeuter.shell == pkgs.zsh;
source = "${pkgs.oh-my-zsh}/share/oh-my-zsh";
".gnupg" = {
inherit (config.programs.gnupg.agent) enable;
source = ../../../stow/gnupg/.gnupg;
recursive = true;
};
".oh-my-zsh/themes/tdpeuter.zsh-theme" = {
enable = config.users.users.tdpeuter.shell == pkgs.zsh;
source = ../../../stow/zsh/.oh-my-zsh/themes/tdpeuter.zsh-theme;
onChange = ''
chmod 700 /home/tdpeuter/.gnupg
# chmod 600 /home/tdpeuter/.gnupg/* # Already read-only?
'';
};
".ssh/config" = lib.mkIf config.sisyphus.programs.ssh.enable {
inherit (config.sisyphus.programs.ssh) enable;
@ -97,6 +102,13 @@ in {
};
}
(lib.mkIf (config.users.users.tdpeuter.shell == pkgs.zsh) {
".oh-my-zsh" = {
source = "${pkgs.oh-my-zsh}/share/oh-my-zsh";
recursive = true;
};
".oh-my-zsh/themes/tdpeuter.zsh-theme" = {
source = ../../../stow/zsh/.oh-my-zsh/themes/tdpeuter.zsh-theme;
};
".zshrc" = {
source = ../../../stow/zsh/.zshrc;
};

View file

@ -14,11 +14,38 @@ in {
nativeMessagingHosts = with pkgs; [
tridactyl-native
];
# https://mozilla.github.io/policy-templates/
extraPolicies = {
DisableFirefoxStudies = true;
DisablePocket = true;
DisableTelemetry = true;
FirefoxHome = {
SponsoredTopSites = false;
SponsoredPocket = false;
};
OfferToSaveLogins = false;
# https://discourse.nixos.org/t/declare-firefox-extensions-and-settings/36265
ExtensionSettings = {
"amazon@search.mozilla.org".installation_mode = "blocked";
"google@search.mozilla.org".installation_mode = "blocked";
};
# Anything in about:config
Preferences = let
falseLocked = {
Value = false;
Status = "falseLocked";
};
in {
"browser.newtabpage.activity-stream.showSponsoredCheckboxes" = falseLocked;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = falseLocked;
"browser.newtabpage.pinned" = {
Value = "[]";
Status = "default";
};
"services.sync.prefs.sync-seen.browser.newtabpage.activity-stream.showSponsoredTopSites" = falseLocked;
};
};
# Support smart cards
@ -27,26 +54,18 @@ in {
];
};
languagePacks = [
"en-GB"
"nl"
];
profiles.tdpeuter.search= {
default = "DuckDuckGo";
default = "ddg"; # Reference by id instead of by name
force = true;
engines = {
"Bing".metaData.hidden = true;
"eBay".metaData.hidden = true;
"Qwant".metaData.hidden = true;
"bing".metaData.hidden = true;
"ebay".metaData.hidden = true;
"Nix Packages" = {
urls = [{
template = "https://search.nixos.org/packages";
params = [
{ name = "type"; value = "packages"; }
{ name = "query"; value = "{searchTerms}"; }
];
}];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@np" ];
};
"GitHub" = {
urls = [{
template = "https://github.com/search";
@ -59,6 +78,39 @@ in {
icon = "${pkgs.icosystem}/share/icons/icosystem/scalable/apps/github-mark.svg";
definedAliases = [ "@gh" ];
};
"Nix Packages" = {
urls = [{
template = "https://search.nixos.org/packages";
params = [
{ name = "type"; value = "packages"; }
{ name = "query"; value = "{searchTerms}"; }
];
}];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@np" ];
};
"NixOS Options" = {
urls = [{
template = "https://search.nixos.org/options";
params = [
{ name = "query"; value = "{searchTerms}"; }
];
}];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@no" ];
};
"Google Scholar" = {
urls = [{
template = "https://scholar.google.ch/scholar";
params = [
{ name = "q"; value = "{searchTerms}"; }
];
}];
definedAliases = [ "@gs" ];
};
};
};
};

View file

@ -8,13 +8,17 @@ let
Met vriendelijke groeten
Tibo De Peuter
'';
UGent = ''
english = ''
Kind regards
Tibo De Peuter
'';
academic = ''
Met vriendelijke groeten
Tibo De Peuter
Student 2Ba/3Ba Informatica
Student Ma Informatica
'';
MrFortem = ''
alias = ''
Kind regards
MrFortem Fiducia
'';
@ -61,7 +65,7 @@ in {
realName = config.users.users.tdpeuter.description;
signature = {
showSignature = "append";
text = signatures.UGent;
text = signatures.academic;
};
thunderbird = {
@ -69,7 +73,7 @@ in {
settings = id: {
"mail.server.server_${id}.authMethod" = 10;
"mail.smtpserver.smtp_${id}.authMethod" = 10;
"mail.identity.id_${id}.htmlSigText" = signatures.UGent;
"mail.identity.id_${id}.htmlSigText" = signatures.academic;
# Allow PGP
"mail.identity.id_${id}.openpgp_key_id" = "9B11F5243089DB5B"; # Your 'master' key
@ -109,7 +113,7 @@ in {
settings = id: {
"mail.server.server_${id}.directory" = ".thunderbird/tdpeuter/ImapMail/imap.gmail.com-mrfortem";
"mail.server.server_${id}.directory-rel" = "[ProfD]ImapMail/imap.gmail.com-mrfortem";
"mail.identity.id_${id}.htmlSigText" = signatures.MrFortem;
"mail.identity.id_${id}.htmlSigText" = signatures.alias;
};
};
};

View file

@ -7,9 +7,14 @@ in {
config = lib.mkIf cfg.enable {
sops.secrets = lib.mkIf config.sisyphus.programs.sops.enable (
let
Hugo = {
HomeLab = {
format = "yaml";
sopsFile = ../../secrets/Hugo.yaml;
sopsFile = ../../secrets/HomeLab.yaml;
owner = user;
};
personal = {
format = "yaml";
sopsFile = ../../secrets/personal.yaml;
owner = user;
};
UGent = {
@ -18,17 +23,26 @@ in {
owner = user;
};
in {
"Hugo/ssh" = Hugo;
"UGent/HPC/ssh" = UGent;
"GitHub/ssh" = {
format = "yaml";
sopsFile = ../../secrets/GitHub.yaml;
owner = user;
};
"Hugo/Gitea/ssh" = Hugo;
# Git authentication
"Gitea/ssh" = personal;
"GitHub/ssh" = personal;
"UGent/GitHub/ssh" = UGent;
"UGent/SubGit/ssh" = UGent;
# HomeLab
# Physical hosts
"HomeLab/Hugo/ssh" = HomeLab;
"HomeLab/Roxanne/ghost/ssh" = HomeLab;
"HomeLab/HTPC/ssh" = HomeLab;
# Virtual hosts
"HomeLab/Gitea/ssh" = HomeLab;
"HomeLab/Nextcloud/ssh" = HomeLab;
"HomeLab/Vaultwarden/ssh" = HomeLab;
"HomeLab/NixOS/admin/ssh" = HomeLab;
});
};
}

View file

@ -1,19 +0,0 @@
#!/usr/bin/env bash
# Script to toggle Do not disturb mode for dunst
# Get current state
if [ "$( command -v dunstctl )" ]; then
current_state="$( dunstctl is-paused )"
fi
# Toggle
if [ "${current_state}" == "false" ] ; then
notify-send 'Hiding notifications'
sleep 5
# makoctl set-mode do-not-disturb
dunstctl set-paused true
else
# makoctl set-mode default
dunstctl set-paused false
notify-send 'Showing notifications'
fi

View file

@ -22,15 +22,15 @@ while getopts ":bvt:p:" options; do
;;
v)
# Get volume (don't use pamixer because that is way slower)
value=$( amixer sget 'Master' \
| grep -o '\[[0-9]*%\]' \
| tr -d '][%' \
| head -n1 )
value=$( pactl get-sink-volume @DEFAULT_SINK@ \
| grep -o '[0-9]*%' \
| tr -d '%' \
| head -n1 )
title="Volume: ${value}%"
category='sysinfo'
# If audio disabled, set value to zero.
if [ "$( amixer sget 'Master' | grep -o '\[\(on\|off\)\]' | head -n1 )" == "[off]" ] ; then
if [ "$( pactl get-sink-mute @DEFAULT_SINK@ | grep -o '\(yes\|no\)' | head -n1 )" == 'yes' ] ; then
title="Volume: ${value}% (Disabled)"
value=0
fi

View file

@ -48,14 +48,14 @@ while getopts ":m:g" option; do
fi
;;
g)
previous_theme="$(cat ${STATE_FILE})"
if [ "${previous_theme}" == "${THEME_LIGHT}" ]; then
class="activated"
percentage=1
else
percentage=0
current_state="$(cat "${STATE_FILE}")"
next_state="${theme_next[${current_state}]}"
if [ "${current_state}" == "${THEME_DARK}" ]; then
class='activated'
percentage=100
fi
printf '{ "class": "%s", "percentage": %d }' "${class}" "${percentage}"
printf '{"alt": "%s", "tooltip": "Set theme to %s", "percentage": %d, "class": "%s"}' \
"${gsettings_alt[${current_state}]}" "${next_state}" "${percentage:=0}" "${class:="none"}"
exit 0
;;
*)
@ -119,7 +119,12 @@ fi
# Sway
if [ "$(command -v swaybg)" ]; then
bg_path="${BG_DIR}/${wallpaper[${theme}]}"
/run/current-system/sw/bin/cp "${bg_path}" "${STATE_DIR}/bg" && swaymsg reload &
/run/current-system/sw/bin/cp "${bg_path}" "${STATE_DIR}/bg"
if [ "$(command -v swaymsg)" ]; then
pkill swaybg && swaymsg exec "swaybg -m fill -i ${STATE_DIR}/bg" &
elif [ "$(command -v hyprctl)" ]; then
pkill swaybg && hyprctl keyword exec "swaybg -m fill -i ${STATE_DIR}/bg" &
fi
fi
# Vifm

48
scripts/toggle-notifications.sh Executable file
View file

@ -0,0 +1,48 @@
#!/usr/bin/env bash
# Script to toggle Do not disturb mode for dunst
# Get current state
if [ "$( command -v dunstctl )" ]; then
current_state="$( dunstctl is-paused )"
fi
while getopts ":g" option; do
case "${option}" in
g)
if [ "${current_state}" == "false" ]; then
state='normal'
tooltip='Hide notifications'
class='none'
else
state='paused'
tooltip='Show notifications'
class='activated'
fi
printf '{"alt": "%s", "tooltip": "%s", "class": "%s" }' \
"${state}" "${tooltip}" "${class}"
exit 0
;;
esac
done
# Toggle
if [ "${current_state}" == "false" ] ; then
notify-send 'Hiding notifications'
sleep 5
if [ "$(command -v makoctl)" ]; then
makoctl set-mode do-not-disturb
fi
if [ "$(command -v dunstctl)" ]; then
dunstctl set-paused true
fi
else
if [ "$(command -v makoctl)" ]; then
makoctl set-mode default
fi
if [ "$(command -v dunstctl)" ]; then
dunstctl set-paused false
fi
notify-send 'Showing notifications'
fi

50
scripts/toggle-tailscale.sh Executable file
View file

@ -0,0 +1,50 @@
#!/usr/bin/env bash
# Script to toggle Do not disturb mode for dunst
STOPPED_MSG='Tailscale is stopped'
# Check if tailscale is installed
if [ ! "$( command -v tailscale )" ]; then
echo 'Tailscale is not installed!'
exit 1
fi
# Get current state
status="$( tailscale status )"
current_state="$( grep -o "${STOPPED_MSG}" <<< "${status}" )"
while getopts ":g" option; do
case "${option}" in
g)
if [ "${current_state}" == "${STOPPED_MSG}" ]; then
state='disconnected'
tooltip='Connect tailnet'
printf '{"alt": "%s", "tooltip": "%s", "class": "%s" }' \
"${state}" "${tooltip}" "${state}"
else
state='connected'
tooltip="${status:='Disconnect tailnet'}"
printf '{"alt": "%s", "tooltip": "<tt>%q</tt>", "class": "%s" }' \
"${state}" "${tooltip}" "${state}"
fi
exit 0
;;
*)
echo 'Invalid option'
exit 1
;;
esac
done
# Toggle
if [ "${current_state}" == "${STOPPED_MSG}" ] ; then
notify-send 'Connecting tailnet'
notify-send 'Connected tailnet' "$( tailscale up )"
else
notify-send 'Disconnecting tailnet'
notify-send 'Disconnected tailnet' "$( tailscale down )"
fi

View file

@ -29,7 +29,7 @@ dpi-aware=yes
# initial-window-size-pixels=700x500 # Or,
# initial-window-size-chars=<COLSxROWS>
# initial-window-mode=windowed
pad=10x10 # optionally append 'center'
#pad=10x10 # optionally append 'center'
# resize-delay-ms=100
# notify=notify-send -a ${app-id} -i ${app-id} ${title} ${body}

View file

@ -0,0 +1,5 @@
enable-ssh-support
default-cache-ttl 60
default-cache-ttl-ssh 60
max-cache-ttl 120
max-cache-ttl-ssh 120

View file

@ -0,0 +1,37 @@
# Use UTF-8 character encoding everywhere.
display-charset utf-8
utf8-strings
# When verifying a signature made from a subkey, require that the
# cross-certification "back signature" on the subkey is present and valid.
require-cross-certification
# Method references
personal-cipher-preferences AES256 AES192 AES
personal-digest-preferences SHA512 SHA384 SHA256
personal-compress-preferences ZLIB BZIP2 ZIP Uncompressed
# New keys config
default-preference-list SHA512 SHA384 SHA256 AES256 AES192 AES ZLIB BZIP2 ZIP Uncompressed
cert-digest-algo SHA512
# Symmatric ops
s2k-digest-algo SHA512
s2k-cipher-algo AES256
# Disable cahcing of passphrase for symmatrical ops
no-symkey-cache
# Don't leak comments or software version information
no-comments
no-emit-version
# Display full fingerprints
keyid-format 0xlong
with-fingerprint
# Other display preferences
list-options show-uid-validity
verify-options show-uid-validity
# Enable smart card
use-agent

View file

@ -0,0 +1,7 @@
# Power down and ask PIN again after timout.
card-timeout 180 # 3 minutes
# Fix repeatedly prompting for an already-inserted YubiKey.
# It works by disabling CCID-support, so it does not clash with pcsc.
disable-ccid

View file

@ -0,0 +1,6 @@
monitor=desc:BOE 0x08CF,1920x1080@60.0,640x3240,1.0
monitor=desc:Hewlett Packard HP ZR2740w CNT319Y008,2560x1440@59.95,0x1800,1.0
monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,1920x1080@60.0,2560x1800,1.0
monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,transform,1
monitor=desc:Samsung Electric Company SAMSUNG,1920x1080@60.0,640x0,0.6000000000000001
monitor=desc:Samsung Electric Company SAMSUNG,disable

View file

@ -0,0 +1,164 @@
# TODO Do not hardcode this path
plugin = /nix/store/afivj8v5kfdsadxs4pa45vh0y65s3ajm-hy3-hl0.49.0/lib/libhy3.so
general:layout = hy3
plugin {
hy3 {
# disable gaps when only one window is onscreen
# 0 - always show gaps
# 1 - hide gaps with a single window onscreen
# 2 - 1 but also show the window border
no_gaps_when_only = 1 # default: 0
# policy controlling what happens when a node is removed from a group,
# leaving only a group
# 0 = remove the nested group
# 1 = keep the nested group
# 2 = keep the nested group only if its parent is a tab group
node_collapse_policy = 2 # default: 2
# offset from group split direction when only one window is in a group
group_inset = 10 # default: 10
# if a tab group will automatically be created for the first window spawned in a workspace
tab_first_window = false
# tab group settings
tabs {
# height of the tab bar
height = 10 # default: 22
# padding between the tab bar and its focused node
padding = 0 # default: 6
# the tab bar should animate in/out from the top instead of below the window
from_top = false # default: false
# radius of tab bar corners
radius = 0 # default: 6
# tab bar border width
border_width = 2 # default: 2
# render the window title on the bar
render_text = false # default: true
# center the window title
text_center = true # default: true
# font to render the window title with
text_font = Sans # default: Sans
# height of the window title
text_height = 8 # default: 8
# left padding of the window title
text_padding = 3 # default: 3
# active tab bar segment colors
#col.active = <color> # default: rgba(33ccff40)
#col.active.border = <color> # default: rgba(33ccffee)
#col.active.text = <color> # default: rgba(ffffffff)
# active tab bar segment colors for bars on an unfocused monitor
#col.active_alt_monitor = <color> # default: rgba(60606040)
#col.active_alt_monitor.border = <color> # default: rgba(808080ee)
#col.active_alt_monitor.text = <color> # default: rgba(ffffffff)
# focused tab bar segment colors (focused node in unfocused container)
#col.focused = <color> # default: rgba(60606040)
#col.focused.border = <color> # default: rgba(808080ee)
#col.focused.text = <color> # default: rgba(ffffffff)
# inactive tab bar segment colors
col.inactive = rgba(a6a6a620) # default: rgba(30303020)
col.inactive.border = rgba(a6a6a6aa) # default: rgba(606060aa)
#col.inactive.text = <color> # default: rgba(ffffffff)
# urgent tab bar segment colors
#col.urgent = <color> # default: rgba(ff223340)
#col.urgent.border = <color> # default: rgba(ff2233ee)
#col.urgent.text = <color> # default: rgba(ffffffff)
# urgent tab bar segment colors
#col.locked = <color> # default: rgba(90903340)
#col.locked.border = <color> # default: rgba(909033ee)
#col.locked.text = <color> # default: rgba(ffffffff)
# if tab backgrounds should be blurred
# Blur is only visible when the above colors are not opaque.
blur = true # default: true
# opacity multiplier for tabs
# Applies to blur as well as the given colors.
opacity = 1.0 # default: 1.0
}
# autotiling settings
autotile {
# enable autotile
enable = true # default: false
# make autotile-created groups ephemeral
ephemeral_groups = true # default: true
# if a window would be squished smaller than this width, a vertical split will be created
# -1 = never automatically split vertically
# 0 = always automatically split vertically
# <number> = pixel width to split at
trigger_width = -1 # default: 0
# if a window would be squished smaller than this height, a horizontal split will be created
# -1 = never automatically split horizontally
# 0 = always automatically split horizontally
# <number> = pixel height to split at
trigger_height = 0 # default: 0
# a space or comma separated list of workspace ids where autotile should be enabled
# it's possible to create an exception rule by prefixing the definition with "not:"
# workspaces = 1,2 # autotiling will only be enabled on workspaces 1 and 2
# workspaces = not:1,2 # autotiling will be enabled on all workspaces except 1 and 2
workspaces = all # default: all
}
}
}
# Keybinds
# Navigation
# Focus
# First, unbind default
unbind = $flag, $up
unbind = $flag, $right
unbind = $flag, $down
unbind = $flag, $left
unbind = $flag, up
unbind = $flag, right
unbind = $flag, down
unbind = $flag, left
bind = $flag, $up, hy3:movefocus, u
bind = $flag, $right, hy3:movefocus, r
bind = $flag, $down, hy3:movefocus, d
bind = $flag, $left, hy3:movefocus, l
bind = $flag, up, hy3:movefocus, u
bind = $flag, right, hy3:movefocus, r
bind = $flag, down, hy3:movefocus, d
bind = $flag, left, hy3:movefocus, l
# Layout
bind = $flag, z, hy3:changegroup, opposite
bind = $flag, x, hy3:changegroup, toggletab
bind = $flag, c, hy3:changegroup, h
bind = $flag, v, hy3:changegroup, v
bind = $flag, p, hy3:changefocus, raise
bind = $flag+Shift, p, hy3:changefocus, lower
bind = $flag, space, hy3:togglefocuslayer

View file

@ -0,0 +1,279 @@
# ~/.config/hypr/hyperland.conf
general {
border_size = 1
no_border_on_floating = false
gaps_in = 3
gaps_out = 5
gaps_workspaces = 0
col.inactive_border = 0xff444444
col.active_border = 0xffffffff
col.nogroup_border = 0xffff00ff
layout = dwindle
no_focus_fallback = true
resize_on_border = true
extend_border_grab_area = 5
hover_icon_on_border = true
allow_tearing = false
resize_corner = 0
snap {
enabled = false
window_gap = 10
monitor_gap = 10
border_overlap = false
}
}
decoration {
rounding = 0
# rounding_power = 4.0
active_opacity = 1.0
inactive_opacity = 1.0
fullscreen_opacity = 1.0
dim_inactive = false
dim_strength = 0.5
dim_special = 0.2
dim_around = 0.4
blur {
enabled = true
size = 8
passes = 1
noise = 0.01
contrast = 0.8
brightness = 0.8
vibrancy = 0.0
vibrancy_darkness = 0.0
ignore_opacity = true
new_optimizations = true
xray = true
special = false
popups = false
# input_methods = false
}
shadow {
enabled = false
range = 4
render_power = 3
sharp = false
ignore_window = true
color = 0xee1a1a1a
color_inactive = 0xee1a1a1a
# offset = [0,0]
scale = 1.0
}
}
animations {
enabled = false
first_launch_animation = true
}
gestures {
workspace_swipe = true
workspace_swipe_fingers = 3
workspace_swipe_min_fingers = false
workspace_swipe_distance = 300
workspace_swipe_invert = true
workspace_swipe_min_speed_to_force = 30
workspace_swipe_cancel_ratio = 0.2
workspace_swipe_direction_lock = true
workspace_swipe_direction_lock_threshold = 10
workspace_swipe_touch = false
workspace_swipe_touch_invert = false
workspace_swipe_create_new = false
workspace_swipe_forever = true
workspace_swipe_use_r = false
}
group {
auto_group = true
insert_after_current = true
focus_removed_window = true
drag_into_group = 1
merge_groups_on_drag = true
merge_groups_on_groupbar = true
merge_floated_into_tiled_on_groupbar = false
group_on_movetoworkspace = false
col.border_active = 0x66ffff00
col.border_inactive = 0x66777700
col.border_locked_active = 0x66ff5500
col.border_locked_inactive = 0x66775500
groupbar {
enabled = true
font_family = misc:font_family
font_size = 8
gradients = true
height = 14
stacked = false
priority = 3
render_titles = false
scrolling = true
text_color = 0xffffffff
col.active = 0x66ffff00
col.inactive = 0x66777700
col.locked_active = 0x66ff5500
col.locked_inactive = 0x66775500
}
}
misc {
disable_hyprland_logo = true
disable_splash_rendering = true
col.splash = 0xffffffff
font_family = Letter
# splash_font_family =
force_default_wallpaper = -1
vfr = true
vrr = 1
mouse_move_enables_dpms = false
key_press_enables_dpms = true
always_follow_on_dnd = true
layers_hog_keyboard_focus = true
animate_manual_resizes = false
animate_mouse_windowdragging = false
disable_autoreload = true
enable_swallow = false
# swallow_regex =
# swallow_exception_regex =
focus_on_activate = true
mouse_move_focuses_monitor = true
render_ahead_of_time = false
render_ahead_safezone = 1
allow_session_lock_restore = false
background_color = 0x018281
close_special_on_empty = true
new_window_takes_over_fullscreen = 2
exit_window_retains_fullscreen = false
initial_workspace_tracking = 1
middle_click_paste = false
render_unfocused_fps = 12
disable_xdg_env_checks = false
# disable_hyprland_qtutils_check = false
# lockdead_screen_delay = 1000
}
binds {
pass_mouse_when_bound = false
scroll_event_delay = 300
workspace_back_and_forth = false
allow_workspace_cycles = false
workspace_center_on = 1
focus_preferred_method = 0
ignore_group_lock = false
# movefocus_cycles_fullscreen = true
# movefocus_cycles_groupfirst = false
disable_keybind_grabbing = false
window_direction_monitor_fallback = true
# allow_pin_fullscreen = true
}
xwayland {
enabled = true
use_nearest_neighbor = true
force_zero_scaling = false
}
opengl {
nvidia_anti_flicker = false
}
render {
explicit_sync = 2
explicit_sync_kms = 2
direct_scanout = false
expand_undersized_textures = true
# xp_mode = false
# ctm_animation = 2
# allow_early_buffer_release = true
}
cursor {
sync_gsettings_theme = true
no_hardware_cursors = false
no_break_fs_vrr = false
min_refresh_rate = 24
hotspot_padding = 1
inactive_timeout = 10
no_warps = false
persistent_warps = false
warp_on_change_workspace = 0
# default_monitor =
zoom_factor = 1.0
zoom_rigid = false
# enable_hypercursor = false
hide_on_key_press = true
hide_on_touch = true
# use_cpu_buffer = 2
# warp_back_after_non_mouse_input = false
}
ecosystem {
# no_update_news = false
# no_donation_nag = true
}
exec-once = gnome-keyring-daemon --start --components=secrets
exec-once = dunst --verbosity crit
exec-once = waycorner
exec-once = waybar
# TODO Replace with something else?
exec-once = wlsunset -t 2500 -l 50.51 -L 4.21
exec-once = nextcloud --background
# Turn volume off at boot
exec-once = bash -c 'for i in $(seq 1 10); do pactl set-sink-mute @DEFAULT_SINK@ 1 && break; sleep 1; done'
# STYLING
exec-once = swaybg -i "${HOME}/.local/state/sisyphus/bg" --mode=fill
env = XCURSOR_SIZE,24
# SHIFT CAPS CTRL/CONTROL ALT MOD2 MOD3 SUPER/WIN/LOGO/MOD4 MOD5
$flag = MOD4
$left = h
$down = j
$up = k
$right = l
$term = foot
$menu = j4-dmenu-desktop --dmenu="rofi -dmenu -i" --no-generic --usage-log="/home/tdpeuter/.local/state/dmenu.log" --term=$term
$lock = swaylock --daemonize
# https://wiki.hyprland.org/Nvidia/#environment-variables
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
env = LIBVA_DRIVER_NAME,nvidia
env = NVD_BACKEND,direct
source = /home/tdpeuter/.config/hypr/input-output.conf
source = /home/tdpeuter/.config/hypr/keybinds.conf
source = /home/tdpeuter/.config/hypr/modes.conf
source = /home/tdpeuter/.config/hypr/hy3.conf # Sway tiling plugin

View file

@ -0,0 +1,62 @@
# ~/.config/hypr/input-output.conf
input {
kb_layout = us,be,us
kb_variant = altgr-intl,iso-alternate,dvorak
numlock_by_default = true
resolve_binds_by_sym = false
repeat_rate = 25
repeat_delay = 600
sensitivity = 0.0
accel_profile = flat
force_no_accel = false
left_handed = false
scroll_method = 2fg
scroll_button_lock = true
scroll_factor = 1.0
natural_scroll = false
follow_mouse = 2
focus_on_close = 0
mouse_refocus = true
float_switch_override_focus = 1
special_fallthrough = false
off_window_axis_events = 1
emulate_discrete_scroll = 1
touchpad {
disable_while_typing = true
natural_scroll = true
scroll_factor = 0.8
middle_button_emulation = false
tap_button_map = lrm
clickfinger_behavior = false
tap-to-click = true
drag_lock = false
tap-and-drag = true
}
}
device {
name = at-translated-set-2-keyboard
numlock_by_default = false
}
monitor = , preferred, auto, 1
monitor = desc:BOE 0x08CF, preferred, 640x1440, 1
monitor = desc:Hewlett Packard HP ZR2740w CNT319Y008, preferred, auto-up, 1
# Vertical monitors
monitor = desc:Dell Inc. DELL P2214H 29C2937M4YTL, preferred, auto-right, 1, transform, 1
monitor = desc:Samsung Electric Company S22C650, preferred, auto-right, 1, transform, 1
# TV
monitor = desc:Samsung Electric Company SAMSUNG, disable
bindl = , switch:on:Lid Switch, exec, hyprctl keyword monitor "eDP-1, disable"
bindl = , switch:off:Lid Switch, exec, hyprctl keyword monitor "eDP-1, enable"

View file

@ -0,0 +1,180 @@
$notify = "${SCRIPT_DIR}/notify.sh"
# Navigation
# Focus
bind = $flag, $up, movefocus, u
bind = $flag, $right, movefocus, r
bind = $flag, $down, movefocus, d
bind = $flag, $left, movefocus, l
bind = $flag, up, movefocus, u
bind = $flag, right, movefocus, r
bind = $flag, down, movefocus, d
bind = $flag, left, movefocus, l
# Move windows
bind = $flag+Shift, $up, movewindow, u
bind = $flag+Shift, $right, movewindow, r
bind = $flag+Shift, $down, movewindow, d
bind = $flag+Shift, $left, movewindow, l
bind = $flag+Shift, up, movewindow, u
bind = $flag+Shift, right, movewindow, r
bind = $flag+Shift, down, movewindow, d
bind = $flag+Shift, left, movewindow, l
# $flag+Next move scratchpad
# $flag+KP_Next move scratchpad
# $flag+Prior scratchpad show
# $flag+KP_Prior scratchpad show
bind = $flag, Next, movetoworkspace, special:scratchpad
bind = $flag, KP_Next, movetoworkspace, special:scratchpad
bind = $flag, Prior, togglespecialworkspace, special:scratchpad
bind = $flag, Prior, movetoworkspace, special:scratchpad
bind = $flag, Prior, togglespecialworkspace, special:scratchpad
# bind = $flag, Next, movetoworkspace, special:magic
# bind = $flag, Next, togglespecialworkspace, magic
# bind = $flag, KP_Next, togglespecialworkspace, magic
# bind = $flag, KP_Next, movetoworkspace, +0
# bind = $flag, KP_Next, togglespecialworkspace, magic
# bind = $flag, KP_Next, movetoworkspace, special:magic
# bind = $flag, KP_Next, togglespecialworkspace, magic
# Layouts
bind = $flag, f, togglefloating
bind = $flag+Shift, f, settiled
bind = $flag, s, pin
bind = $flag, s, setfloating
bind = $flag+Shift, s, pin
bind = $flag+Shift, s, settiled
bind = $flag, F11, fullscreen, 1
bind = $flag+Shift, F11, fullscreen, 0
# Workspaces
$ws1 = 1
$ws2 = 2
$ws3 = 3
$ws4 = 4
$ws5 = 5
$ws6 = 6
$ws7 = 7
$ws8 = 8
$ws9 = 9
$ws10 = 10
$ws11 = 11
$ws12 = 12
# Focus a specific workspace
bind = $flag, 1, workspace, $ws1
bind = $flag, 2, workspace, $ws2
bind = $flag, 3, workspace, $ws3
bind = $flag, 4, workspace, $ws4
bind = $flag, 5, workspace, $ws5
bind = $flag, 6, workspace, $ws6
bind = $flag, 7, workspace, $ws7
bind = $flag, 8, workspace, $ws8
bind = $flag, 9, workspace, $ws9
bind = $flag, 0, workspace, $ws10
bind = $flag, minus, workspace, $ws11
bind = $flag, equal, workspace, $ws12
# Move window to a specific workspace
bind = $flag+Shift, 1, movetoworkspace, $ws1
bind = $flag+Shift, 2, movetoworkspace, $ws2
bind = $flag+Shift, 3, movetoworkspace, $ws3
bind = $flag+Shift, 4, movetoworkspace, $ws4
bind = $flag+Shift, 5, movetoworkspace, $ws5
bind = $flag+Shift, 6, movetoworkspace, $ws6
bind = $flag+Shift, 7, movetoworkspace, $ws7
bind = $flag+Shift, 8, movetoworkspace, $ws8
bind = $flag+Shift, 9, movetoworkspace, $ws9
bind = $flag+Shift, 0, movetoworkspace, $ws10
bind = $flag+Shift, Minus, movetoworkspace, $ws11
bind = $flag+Shift, Equal, movetoworkspace, $ws12
# Go through workspaces in order
bind = $flag+Ctrl, $left, workspace, e-1
bind = $flag+Ctrl, $right, workspace, e+1
bind = $flag+Ctrl, left, workspace, e-1
bind = $flag+Ctrl, right, workspace, e+1
bind = $flag+Ctrl+Shift, $left, movetoworkspace, e-1
bind = $flag+Ctrl+Shift, $right, movetoworkspace, e+1
bind = $flag+Ctrl+Shift, left, movetoworkspace, e-1
bind = $flag+Ctrl+Shift, right, movetoworkspace, e+1
# GNOME-like keybinds
bind = $flag+Alt, $left, workspace, e-1
bind = $flag+Alt, $right, workspace, e+1
bind = $flag+Alt, left, workspace, e-1
bind = $flag+Alt, right, workspace, e+1
bind = $flag+Alt+Shift, $left, movetoworkspace, e-1
bind = $flag+Alt+Shift, $right, movetoworkspace, e+1
bind = $flag+Alt+Shift, left, movetoworkspace, e-1
bind = $flag+Alt+Shift, right, movetoworkspace, e+1
# System
# Brightness
bind = , XF86MonBrightnessDown, exec, brightnessctl -e s 5%- && $notify -b
bind = , XF86MonBrightnessUp, exec, brightnessctl -e s +5% && $notify -b
# Audio
bind = , XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 2%+ && $notify -v
bind = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%- && $notify -v
bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && $notify -v
bind = , XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
# Media
bind = , XF86AudioPlay, exec, playerctl play-pause
bind = , XF86AudioPrev, exec, playerctl previous
bind = , XF86AudioNext, exec, playerctl next
bind = Shift, XF86AudioMute, exec, playerctl play-pause
bind = Shift, XF86AudioLowerVolume, exec, playerctl previous
bind = Shift, XF86AudioRaiseVolume, exec, playerctl next
# Other special keys
bind = , XF86Calculator, exec, qalculate-gtk
# Shortcuts
# Reload
bind = Alt+Shift, r, exec, "hyperctl reload"
bind = Ctrl+Alt+Shift, r, forcerendererreload
bind = Alt+Shift, e, exit
# Kill a window
bind = $flag, q, closewindow, activewindow
# Start a terminal
bind = $flag, Return, exec, $term
bind = CTRL&ALT, T, exec, $term
# Application menu
bind = Alt, Space, exec, $menu
bind = Alt, Tab, focuscurrentorlast
bind = $flag, e, exec, $term -e vifm
bind = Ctrl+Shift, Escape, exec, $term -e zenith
bind = Ctrl+Shift, a, exec, notify-send "hole!" && hyprctl setcursor _ 87 && sleep 5 && hyprctl setcursor _ 24
# bind = $flag, mouse_up, movefocus, l
bind = SUPER, mouse_down, workspace, e-1
bind = SUPER, mouse_up, workspace, e+1
# bind = $flag, mouse_down, movefocus, r
bind = $flag, Delete, exec, $lock

View file

@ -0,0 +1,38 @@
# System actions
$mode_system = System (l)ock, (s)leep, (h)ibernate, (r)eboot, (Shift+s)hutdown
bind = Ctrl+Alt, Delete, submap, $mode_system
submap = $mode_system
bind = , l, exec, $lock
bind = , l, submap, reset
bind = , s, exec, $lock, exec, systemctl suspend
bind = , s, submap, reset
bind = , h, exec, $lock, exec, systemctl hibernate
bind = , h, submap, reset
bind = , r, exec, systemctl reboot
bind = Shift, s, exec, systemctl poweroff -i
bind = Ctrl+Alt, Delete, submap, reset
bind = , Escape, submap, reset
bind = , Return, submap, reset
submap = reset
# Launcher
$mode_launcher = Launch (f)irefox, (t)hunderbird, (l)ogseq.
bind = $flag, O, submap, $mode_launcher
submap = $mode_launcher
bind = , F, exec, firefox
bind = , F, submap, reset
bind = , L, exec, logseq
bind = , L, submap, reset
bind = , T, exec, thunderbird
bind = , T, submap, reset
bind = $flag, O, submap, reset
bind = , Escape, submap, reset
bind = , Return, submap, reset
submap = reset

View file

@ -0,0 +1,10 @@
# Generated by nwg-displays on 2025-01-27 at 13:58:39. Do not edit manually.
monitor=desc:BOE 0x08CF,1920x1080@60.0,0x0,1.0
monitor=desc:Hewlett Packard HP ZR2740w CNT319Y008,2560x1440@59.95,0x1800,1.0
monitor=desc:Hewlett Packard HP ZR2740w CNT319Y008,disable
monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,1920x1080@60.0,2560x1800,1.0
monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,transform,1
monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,disable
monitor=desc:Samsung Electric Company SAMSUNG,0x0@60.0,-1x-1,1.0
monitor=desc:Samsung Electric Company SAMSUNG,disable

View file

@ -0,0 +1,9 @@
monitor=desc:BOE 0x08CF,1920x1080@60.0,0x0,1.0
monitor=desc:Hewlett Packard HP ZR2740w CNT319Y008,2560x1440@59.95,0x1800,1.0
monitor=desc:Hewlett Packard HP ZR2740w CNT319Y008,disable
monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,1920x1080@60.0,2560x1800,1.0
monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,transform,1
monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,disable
monitor=desc:Samsung Electric Company SAMSUNG,0x0@60.0,-1x-1,1.0
monitor=desc:Samsung Electric Company SAMSUNG,disable

View file

@ -1,9 +1,3 @@
Host Hugo
User admin
HostName 192.168.0.11
IdentitiesOnly yes
IdentityFile /run/secrets/Hugo/ssh
Host HPC
User vsc44995
HostName login.hpc.ugent.be
@ -15,7 +9,7 @@ Host git.depeuter.dev
User git
HostName git.depeuter.dev
IdentitiesOnly yes
IdentityFile /run/secrets/Hugo/Gitea/ssh
IdentityFile /run/secrets/Gitea/ssh
Host github.com
User git
@ -36,3 +30,60 @@ Host subgit.ugent.be
IdentityFile /run/secrets/UGent/SubGit/ssh
CanonicalizeHostname yes # Ignore capitalization
# HomeLab
# Physical hosts
Host Hugo
User admin
HostName 192.168.0.11
IdentitiesOnly yes
IdentityFile /run/secrets/HomeLab/Hugo/ssh
Host Roxanne
User ghost
Hostname 192.168.0.13
IdentitiesOnly yes
IdentityFile /run/secrets/HomeLab/Roxanne/ghost/ssh
Host HTPC
User root
Hostname 192.168.0.88
IdentitiesOnly yes
IdentityFile /run/secrets/HomeLab/HTPC/ssh
# Virtual hosts
Host Gitea
User gh0st
HostName 192.168.0.24
IdentitiesOnly yes
IdentityFile /run/secrets/HomeLab/Gitea/ssh
Host Nextcloud
User administrator
Hostname 192.168.0.14
IdentitiesOnly yes
IdentityFile /run/secrets/HomeLab/Nextcloud/ssh
Host Vaultwarden
User gh0st
Hostname 192.168.0.22
IdentitiesOnly yes
IdentityFile /run/secrets/HomeLab/Vaultwarden/ssh
Host Binnenpost
User admin
Hostname 192.168.0.89
IdentitiesOnly yes
IdentityFile /run/secrets/HomeLab/NixOS/admin/ssh
Host Development
User admin
Hostname 192.168.0.91
IdentitiesOnly yes
IdentityFile /run/secrets/HomeLab/NixOS/admin/ssh
Host Testing
User admin
Hostname 192.168.0.92
IdentitiesOnly yes
IdentityFile /run/secrets/HomeLab/Nixos/admin/ssh

View file

@ -61,5 +61,9 @@ exec wlsunset -l 50.50 -L 4.00 -t 3000 -T 6500
exec gnome-keyring-daemon --start --components=secrets # Secrets
exec dunst --verbosity crit # Notification manager
exec swayidle -w
exec waycorner
exec nextcloud --background
# SwayFX
blur enable

View file

@ -1,6 +1,6 @@
input type:keyboard {
xkb_layout "us"
xkb_variant "altgr-intl"
xkb_layout "us","be"
xkb_variant "altgr-intl","iso-alternate"
}
input type:touchpad {

View file

@ -1,7 +1,8 @@
set $notify ~/projects/sisyphus/scripts/notify.sh
# Focus
bindsym {
# Focus
$flag+$up focus up
$flag+$right focus right
$flag+$down focus down
@ -14,10 +15,8 @@ bindsym {
$flag+p focus parent
$flag+space focus mode_toggle
}
# Move windows
bindsym {
# Move windows
$flag+Shift+$up move up
$flag+Shift+$right move right
$flag+Shift+$down move down
@ -32,10 +31,8 @@ bindsym {
$flag+KP_Next move scratchpad
$flag+Prior scratchpad show
$flag+KP_Prior scratchpad show
}
# Layouts
bindsym {
# Layouts
$flag+z layout toggle split
$flag+x layout tabbed
$flag+c split h
@ -209,23 +206,23 @@ bindsym {
-B 'Yes, exit sway' 'swaymsg exit'
# Kill focused window
$flag+q kill
$flag+q kill
# Start a terminal
$flag+Return exec $term
$alt+space exec $menu
$alt+Tab focus prev
$flag+Tab exec $window_switcher
$flag+Return exec $term
Control+$alt+t exec $term
$alt+space exec $menu
$alt+Tab focus prev
$flag+Tab exec $window_switcher
--whole-window $alt+$scrollUp focus prev
--whole-window $alt+$scrollDown focus next
# Lock the screen
$flag+Delete exec $lock
$flag+Delete exec $lock
# File explorer
$flag+e exec $term -e vifm
# Internet browser
$flag+i exec firefox
$flag+e exec $term -e vifm
}
bindgesture {

View file

@ -5,42 +5,51 @@
set $default "default"
# Resizing
set $resize "Resize"
bindsym $flag+r mode $resize
mode $resize bindsym {
$right resize grow width 10 px or 10 ppt
$up resize grow height 10 px or 10 ppt
$left resize shrink width 10 px or 10 ppt
$down resize shrink height 10 px or 10 ppt
set $mode_resize "Resize"
bindsym $flag+r mode $mode_resize
mode $mode_resize {
bindsym {
$right resize grow width 10 px or 10 ppt
$up resize grow height 10 px or 10 ppt
$left resize shrink width 10 px or 10 ppt
$down resize shrink height 10 px or 10 ppt
Right resize grow width 10 px or 10 ppt
Up resize grow height 10 px or 10 ppt
Left resize shrink width 10 px or 10 ppt
Down resize shrink height 10 px or 10 ppt
Right resize grow width 10 px or 10 ppt
Up resize grow height 10 px or 10 ppt
Left resize shrink width 10 px or 10 ppt
Down resize shrink height 10 px or 10 ppt
Shift+$right resize grow width 50 px or 50 ppt
Shift+$up resize grow height 50 px or 50 ppt
Shift+$left resize shrink width 50 px or 50 ppt
Shift+$down resize shrink height 50 px or 50 ppt
Shift+$right resize grow width 50 px or 50 ppt
Shift+$up resize grow height 50 px or 50 ppt
Shift+$left resize shrink width 50 px or 50 ppt
Shift+$down resize shrink height 50 px or 50 ppt
Shift+Right resize grow width 50 px or 50 ppt
Shift+Up resize grow height 50 px or 50 ppt
Shift+Left resize shrink width 50 px or 50 ppt
Shift+Down resize shrink height 50 px or 50 ppt
Shift+Right resize grow width 50 px or 50 ppt
Shift+Up resize grow height 50 px or 50 ppt
Shift+Left resize shrink width 50 px or 50 ppt
Shift+Down resize shrink height 50 px or 50 ppt
$flag+$right move right
$flag+$up move up
$flag+$left move left
$flag+$down move down
$flag+$right move right
$flag+$up move up
$flag+$left move left
$flag+$down move down
$flag+Right move right
$flag+Up move up
$flag+Left move left
$flag+Down move down
$flag+Right move right
$flag+Up move up
$flag+Left move left
$flag+Down move down
Return mode $default
Escape mode $default
$flag+r mode $default
$flag+r mode $default
Escape mode $default
Return mode $default
}
bindgesture {
swipe:2:right resize grow width 10 px or 10 ppt
swipe:2:down resize grow height 10 px or 10 ppt
swipe:2:left resize shrink width 10 px or 10 ppt
swipe:2:up resize shrink height 10 px or 10 ppt
}
}
# System actions
@ -53,9 +62,23 @@ mode $mode_system bindsym {
r mode $default, exec systemctl reboot
Shift+s mode $default, exec systemctl poweroff -i
Return mode $default
Escape mode $default
Control+$alt+Delete mode $default
Escape mode $default
Return mode $default
}
set $mode_preferences "Toggle (d)ark mode, (s)unset, (n)otification"
bindsym $alt+end mode $mode_preferences
bindsym $alt+KP_End mode $mode_preferences
mode $mode_preferences bindsym {
d exec "${SCRIPT_DIR}/toggle-light-dark.sh", mode $default
s exec "${SCRIPT_DIR}/sunset.sh", mode $default
n exec "${SCRIPT_DIR}/do-not-disturb.sh", mode $default
$alt+end mode $default
$alt+KP_End mode $default
Escape mode $default
Return mode $default
}
# Screenshots
@ -72,20 +95,23 @@ mode $mode_screenshot bindsym {
Shift+s exec grimshot --notify save screen $save_format, mode $default
Print exec grimshot --notify save screen $save_format, mode $default
Return mode $default
Escape mode $default
Return mode $default
}
set $mode_preferences "Toggle (d)ark mode, (s)unset, (n)otification"
bindsym $alt+end mode $mode_preferences
bindsym $alt+KP_End mode $mode_preferences
mode $mode_preferences bindsym {
d exec "${SCRIPT_DIR}/toggle-light-dark.sh", mode $default
s exec "${SCRIPT_DIR}/sunset.sh", mode $default
n exec "${SCRIPT_DIR}/do-not-disturb.sh", mode $default
# Launcher
set $mode_launcher "Launch (f)irefox, (s)potify or (t)hunderbird."
bindsym $flag+o mode $mode_launcher
mode $mode_launcher bindsym {
f exec firefox, mode $default
t exec thunderbird, mode $default
Return mode $default
Escape mode $default
$alt+end mode $default
$alt+KP_End mode $default
$flag+o mode $default
Escape mode $default
Return mode $default
}
# Ignore (all) keybinds. Useful when working with Virtual Machines.
set $mode_ignore "Ignore keybinds - Press Control+Alt+Insert to escape."
bindsym Control+$alt+Insert mode $mode_ignore
mode $mode_ignore bindsym Control+$alt+Insert mode $default

View file

@ -15,6 +15,10 @@ default_border pixel 1
default_floating_border normal 1
hide_edge_borders smart
smart_borders on
gaps {
inner 5
outer 3
}
# Mimic no titles by setting the text color to background color
# border backgr. text indic. child_border

View file

@ -2,41 +2,55 @@
# .config/swaylock/config
#
indicator
indicator-radius=200
#indicator
#indicator-radius=200
#
#clock
#datestr=%A, %B %d %Y
#
#show-failed-attempts
#
#screenshots
#effect-pixelate=10
#effect-vignette=0.75:0 # Darken the whole screen.
#fade-in=0.25
#
#grace=7 # Allow to unlock without password for duration
#grace-no-mouse
clock
datestr=%A, %B %d %Y
screenshots
effect-blur=5x5
effect-vignette=0.75:0 # Darken the whole screen.
fade-in=0.25
grace=7 # Allow to unlock without password for duration
grace-no-mouse
image=${ASSETS_DIR}/bluescreen.png
# Styling
color=000000 # The default background color when no image could be loaded
font=letter extended
text-color=ffffff
text-clear-color=ffffff
text-wrong-color=eb4d4b
text-caps-lock-color=ffffff
text-wrong-color=bd2024
layout-text-color=ffffff
# Make all the other stuff invisible
key-hl-color=00000000
separator-color=00000000
ring-color=00000000
ring-clear-color=00000000
ring-ver-color=00000000
ring-wrong-color=00000000
line-color=00000000
line-clear-color=00000000
line-ver-color=00000000
line-wrong-color=00000000
inside-color=00000000
inside-clear-color=00000000
inside-caps-lock-color=00000000
inside-ver-color=00000000
inside-wrong-color=00000000
key-hl-color=00000000
layout-bg-color=00000000
layout-border-color=00000000
line-color=00000000
line-clear-color=00000000
line-caps-lock-color=00000000
line-ver-color=00000000
line-wrong-color=00000000
ring-color=00000000
ring-clear-color=00000000
ring-caps-lock-color=00000000
ring-ver-color=00000000
ring-wrong-color=00000000
separator-color=00000000
text-ver-color=00000000

View file

@ -82,6 +82,9 @@ Plug 'prabirshrestha/vim-lsp'
Plug 'sheerun/vim-polyglot'
Plug 'vifm/vifm.vim'
" Coq
Plug 'whonore/Coqtail'
call plug#end()
" }}}

View file

@ -1,42 +0,0 @@
//
// ~/.config/waybar/config
//
[{
"name": "toggle",
"mode": "hide",
"ipc": true,
"position": "top",
"height": 25,
"spacing": 4,
"margin": "-25px 0 0 0", // Show this bar on top of the other one, seemingly the "same" one.
"custom/sep": {
"format": "\uf142"
},
"include": [
// Import modules (!)
"~/.config/waybar/modules.json",
// "~/.config/waybar/default.json"
"~/.config/waybar/left.json"
],
},
{
"name": "keep",
"position": "top",
"height": 25,
"modules-left": ["sway/mode", "keyboard-state"],
"modules-center": ["clock"],
"modules-right": ["privacy"],
"include": [
// Import modules (!)
"~/.config/waybar/modules.json"
],
}]

View file

@ -0,0 +1,63 @@
/* * * * * * * * * * * * * * * * *
* *
* ~/.config/waybar/config.jsonc *
* *
* * * * * * * * * * * * * * * * */
[
/* Always visible, contains less information */
{
"name": "keep",
"position": "top",
"height": 26,
"modules-left": [
"group/mode"
],
"modules-center": [
"clock#center"
],
"modules-right": [
"keyboard-state#numlock",
"keyboard-state#capslock",
"privacy"
],
"include": [
"~/.config/waybar/modules.json"
]
},
/* Toggle this bar, contains all information */
{
"name": "toggle",
"mode": "hide",
"ipc": true,
"position": "top",
"height": 26,
/* Show this bar on top of the other one, seemingly replacing it. */
"margin": "-26px 0 0 0",
"modules-left": [
"custom/meta",
"sway/window",
"group/workspaces",
"custom/scratchpad-indicator",
"group/mode"
],
"modules-center": [
"mpris"
],
"modules-right": [
"keyboard-state#numlock",
"keyboard-state#capslock",
"privacy",
"tray",
"group/control-center",
"group/network",
"pulseaudio",
"group/power",
"clock#bar"
],
"include": [
"~/.config/waybar/modules.json"
]
}
]

View file

@ -2,17 +2,15 @@
"modules-left": [
"sway/workspaces",
"custom/scratchpad-indicator",
"mpris",
"group/system",
"group/system"
],
"modules-right": [
"group/hardware",
"custom/sep",
"tray",
"sway/language",
"bluetooth",
"network",
"pulseaudio",
"battery",
"custom/sep",
"tray"
"group/battery",
"mpris"
]
}

View file

@ -0,0 +1,80 @@
@define-color foreground rgb(202, 202, 202);
@define-color background rgb( 3, 3, 3);
@define-color highlight-background alpha(@foreground, 0.4);
@define-color accent #00897b;
@define-color white #ecf0f1;
@define-color warning-red #eb4d4b;
* {
font-family: letter, "Font Awesome 6 Free", font-awesome, monospace;
font-size: 13px;
font-weight: 600;
}
window#waybar {
border: none;
color: @white;
transition-property: background-color;
transition-duration: .5s;
}
window#waybar.keep {
background-color: @transparent;
}
window#waybar.toggle {
background-color: alpha(@foreground, 0.4);
}
tooltip {
background: alpha(@background, 0.8);
}
tooltip label {
color: @white;
}
#workspaces button {
border: none;
padding: 0 8px;
border-radius: 5px;
animation: ws_normal 20s ease-in-out 1;
}
#mode,
#workspaces button.focused {
background-color: alpha(@background, 0.2);
}
#workspaces button:hover {
background-color: alpha(@background, 0.2);
}
#battery,
#disk,
#bluetooth,
#clock,
#custom-browser,
#custom-scratchpad-indicator,
#custom-system-hibernate, #custom-system-lock, #custom-system-reboot, #custom-system-shutdown, #custom-system-sleep,
#custom-toggle-light-dark,
#custom-toggle-night-light,
#custom-toggle-notifications,
#cpu,
#idle_inhibitor,
#keyboard-state,
#memory,
#mpris,
#network,
#sway-language,
#sway-window,
#power-profiles-daemon,
#privacy,
#pulseaudio,
#temperature,
#tray {
color: @white;
}

View file

@ -2,291 +2,401 @@
"battery": {
"format": "{capacity}% {icon}",
"format-alt": "{time} {icon}",
"format-charging": "{capacity}% \uf0e7 {icon}",
"format-icons": ["\uf244", "\uf243", "\uf242", "\uf241", "\uf240"],
"format-charging": "{capacity}% \ue55b", /* */
"format-plugged": "{capacity}% \ue55c",
"states": {
"warning": 30,
"critical": 15
"format-icons": [
"\uf244", /* */
"\uf243", /* */
"\uf242", /* */
"\uf241", /* */
"\uf240" /* */
],
"states": {
"warning": 25,
"critical": 12
}
},
"disk": {
"interval": 30,
"format": "{percentage_used}% \uf0a0",
"on-click": "kitty -e duf /",
"path": "/",
"tooltip-format": "{used} used out of {total} on {path} ({percentage_free}% or {free} free)"
},
"bluetooth": {
"format-disabled": "<big>\uf294</big>",
"format-off": "\uf294",
"format-on": "<big>\uf294</big>",
"format-connected": "<big>\uf294</big>c",
"format-disabled": "\uf294", /* */
"format-off": "\uf294", /* */
"format-on": "<big>\uf294</big>", /* */
"format-connected": "<big>\uf294</big>c", /* c */
"max-length": 10.3,
"on-click": "bluetoothctl power $( bluetoothctl show | sed -n 's/\\s*Powered: \\(yes\\|no\\)/\\1/p' | sed 's/yes/off/;s/no/on/' )",
"on-click-right": "kitty -e bluetoothctl",
"tooltip-format": "{status}",
"tooltip-format-on": "{status}, no devices connected",
"tooltip-format-connected": "{status} ({num_connections}):\n{device_enumerate}",
"tooltip-format-enumerate-connected": "{device_alias} ({device_address})",
"tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}"
},
"clock": {
"clock#center": {
"format": "{:%H:%M}",
"format-alt": "{:%d/%m/%Y %H:%M}",
"format-alt": "{:%a %b %d, %Y, %R}",
"timezone": "Europe/Brussels",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>"
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"calendar": {
"mode": "month",
"week-pos": "left",
"format": {
/* Highlight todays date. */
"today": "<span background='#ffffff' color='#000000'><b>{}</b></span>"
}
},
"actions": {
"on-click": "mode"
}
},
"custom/browser": {
"format": "\uf120",
"on-click": "dmenu_run",
"tooltip-format": "Launch an application"
"clock#bar": {
"format": "{:%a %b %d, %R}",
"timezone": "Europe/Brussels",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"calendar": {
"mode-mon-col": 3,
"on-scroll": 1,
"format": {
/* Highlight today's date. */
"today": "<span background='#FFFFFF' color='#000000'><b>{}</b></span>"
}
},
"actions": {
"on-click": "mode"
}
},
"custom/light-dark-toggle": {
"on-click": "bash ${SCRIPT_DIR}/toggle-light-dark.sh",
"tooltip-format": "Toggle between light and dark mode",
"format": "\uf042 ",
"tooltip": true
"custom/control-center": {
"format": "\uf085", /* */
"tooltip": false
},
"custom/night-light-toggle": {
"on-click": "bash ${SCRIPT_DIR}/sunset.sh",
"tooltip-format": "Toggle night-light on or off",
"format": "\uf0eb ",
"tooltip": true,
"tooltip-format": "Toggle night-light on or off",
"custom/meta": {
"format": "\uf17c", /* */
"tooltip": false,
"on-click": "dmenu_run"
},
"custom/scratchpad-indicator": {
"interval": 3,
"return-type": "json",
"exec": "swaymsg -t get_tree | jq --unbuffered --compact-output '(recurse(.nodes[]) | select(.name == \"__i3_scratch\") | .focus) as $scratch_ids | [.. | (.nodes? + .floating_nodes?) // empty | .[] | select(.id |IN($scratch_ids[]))] as $scratch_nodes | if ($scratch_nodes|length) > 0 then { text: \"\\($scratch_nodes | length)\", tooltip: $scratch_nodes | map(\"\\(.app_id // .window_properties.class) (\\(.id)): \\(.name)\") | join(\"\\n\") } else empty end'",
"format": "{} \uf2d2",
"format": "\uf2d2 {}",
"on-click": "exec swaymsg 'scratchpad show'",
"on-click-right": "exec swaymsg 'move scratchpad'"
},
"custom/system-lock": {
"format": "\uf09c",
"format": "\uf09c", /* */
"tooltip": true,
"tooltip-format": "Lock device",
"on-click": "swaylock -f"
"on-click": "swaylock --daemonize"
},
"custom/system-sleep": {
"format": "\uf186",
"format": "\uf186", /* */
"tooltip": true,
"tooltip-format": "Put device to sleep",
"on-click": "swaylock -f; systemctl suspend"
"on-click": "swaylock --daemonize; systemctl suspend"
},
"custom/system-hibernate": {
"format": "\uf2dc",
"format": "\uf2dc", /* */
"tooltip": true,
"tooltip-format": "Hibernate device",
"on-click": "swaylock -f; systemctl hibernate"
"on-click": "swaylock --daemonize; systemctl hibernate"
},
"custom/system-reboot": {
"format": "\uf0e2",
"format": "\uf0e2", /* */
"tooltip": true,
"tooltip-format": "Reboot device",
"on-click": "systemctl reboot"
},
"custom/system-shutdown": {
"format": "\uf011",
"format": "\uf011", /* */
"tooltip": true,
"tooltip-format": "Shutdown device",
"on-click": "systemctl poweroff -i"
},
"custom/toggle-notifications": {
"on-click": "bash ${SCRIPT_DIR}/do-not-disturb.sh",
"tooltip-format": "Toggle notifications",
"format": "\uf1f6 ",
"tooltip": true
},
"cpu": {
"format": "{usage}% \uf2db",
"on-click": "foot -e htop",
"custom/toggle-light-dark": {
"exec": "bash ${SCRIPT_DIR}/toggle-light-dark.sh -g",
"interval": 60,
"return-type": "json",
"on-click": "bash ${SCRIPT_DIR}/toggle-light-dark.sh",
"format": "{icon}",
"format-icons": {
"default": "\uf185",
"prefer-dark": "\uf005"
},
"tooltip": true
},
"group/hardware": {
"custom/toggle-notifications": {
"exec": "bash ${SCRIPT_DIR}/toggle-notifications.sh -g",
"interval": 60,
"return-type": "json",
"on-click": "bash ${SCRIPT_DIR}/toggle-notifications.sh",
"format": "{icon}",
"format-icons": {
"normal": "\uf0f3", /* */
"paused": "\uf1f6" /* */
},
"tooltip": true
},
"custom/toggle-tailscale": {
"exec": "bash ${SCRIPT_DIR}/toggle-tailscale.sh -g",
"interval": 60,
"return-type": "json",
"on-click": "bash ${SCRIPT_DIR}/toggle-tailscale.sh",
"format": "{icon}",
"format-icons": {
"disconnected": "\ue50b",
"connected": "\ue509",
},
"tooltip": true
},
"group/control-center": {
"orientation": "inherit",
"modules": [
"power-profiles-daemon",
"memory",
"cpu",
"temperature",
"custom/control-center",
"group/language",
/* "hyprland/language", "sway/language", */
"custom/toggle-notifications",
"custom/toggle-light-dark",
"bluetooth"
],
"drawer": {
"transition-duration": 500,
"transition-left-to-right": false,
"children-class": "drawer-child"
}
},
"group/language": {
"orientation": "inherit",
"modules": [
"hyprland/language",
"sway/language"
]
},
"group/mode": {
"orientation": "inherit",
"modules": [
"hyprland/submap",
"sway/mode"
]
},
"group/network": {
"orientation": "inherit",
"modules": [
/* Preview */
"network",
/* Most-left */
"custom/toggle-tailscale"
/* Most-right */
],
"drawer": {
"transition-duration": 500,
"transition-left-to-right": false,
"children-class": "drawer-child"
}
},
"group/power": {
"orientation": "inherit",
"modules": [
/* Preview */
"battery",
/* Most-left */
"custom/system-shutdown",
"custom/system-reboot",
"custom/system-hibernate",
"custom/system-sleep",
"custom/system-lock",
"power-profiles-daemon",
"idle_inhibitor"
/* Most-right */
],
"drawer": {
"transition-duration": 500,
"transition-left-to-right": false,
"children-class": "drawer-child",
},
"children-class": "drawer-child"
}
},
"group/system": {
"group/workspaces": {
"orientation": "inherit",
"modules": [
"idle_inhibitor",
"custom/light-dark-toggle",
"custom/night-light-toggle",
"custom/toggle-notifications",
],
"drawer": {
"transition-duration": 500,
"tansition-left-to-right": true,
"children-class": "drawer-child",
},
"hyprland/workspaces",
"sway/workspaces"
]
},
"hyprland/language": {
"format": "\uf11c",
"on-click": "hyprctl switchxkblayout at-translated-set-2-keyboard next && notify-send \"$(hyprctl devices -j | jq -r '.keyboards[] | select(.name == \"at-translated-set-2-keyboard\") | .active_keymap')\" --app-name 'waybar'",
"tooltip": true,
"tooltip-format": "Switch keyboard layouts",
"keyboard-name": "at-translated-set-2-keyboard"
},
"hyprland/workspaces": {
"all-outputs": false,
"disable-scroll": true,
"format": "{icon}{name}",
"format-icons": {
"default": "",
"urgent": "\uf071 " /* */
}
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "\uf06e",
"deactivated": "\uf070"
},
"activated": "\uf06e", /* */
"deactivated": "\uf070" /* */
},
"tooltip": false
},
"keyboard-state": {
"keyboard-state#capslock": {
"capslock": true,
"format": {
"capslock": "{icon}",
"capslock": "{icon}"
},
"format-icons": {
"locked": "\uf023",
"locked": "\uf11c", /* */
"unlocked": ""
},
"numlock": false,
"capslock": true,
"scrollock": false,
}
},
"memory": {
"format": "{}% \uf1c0",
"on-click": "kitty -e zenith"
"keyboard-state#numlock": {
"numlock": true,
"format": {
"numlock": "{icon}"
},
"format-icons": {
"locked": "\uf1ec", /* */
"unlocked": ""
}
},
"mpris": {
// "ignored-players": ["firefox"]
"format": "{player_icon} {dynamic}",
"format-paused": "{status_icon} <i>{dynamic}</i>",
"tooltip-format": "{player} ({status}) {title} - {artist} - {album}",
"player-icons": {
"default": "\uf51f",
"spotify": "\uf1bc",
"mpv": "🎵"
"default": "\uf8d9", /* */
"mpv": "\uf144", /* */
"spotify": "\uf1bc" /* */
},
"status-icons": {
"paused": "⏸"
"paused": "\uf04c" /* */
},
"dynamic-order": [
"title",
"artist"
],
"dynamic-len": 40,
"dynamic-len": 40
},
"network": {
"format-disconnected": "\uf127",
"format-ethernet": "\uf6ff {ifname}: {ipadds}/{cidr}",
"format-wifi": "\uf1eb",
"format-disconnected": "\uf127", /* */
"format-ethernet": "\uf6ff", /* */
"format-linked": "\uf0c1", /* */
"format-wifi": "{icon}",
"interval": 5,
"on-click-right": "kitty -e nmtui",
"tooltip": true,
"tooltip-format": "{ifname}: {ipaddr}",
"tooltip-format-disconnected": "Disconnected",
"tooltip-format-wifi": "{essid} ({signalStrength}%)\n{ifname}: {ipaddr}"
"tooltip-format-wifi": "{essid} ({signalStrength}%)\n{ifname}: {ipaddr}",
"format-icons": [
"\uf05e", /* */
"\uf1eb", /* */
"\uf1eb" /* */
]
},
"power-profiles-daemon": {
"format": "{icon}",
"format-icons": {
"default": "\uf110", /* */
"performance": "\uf135", /* */
"balanced": "\uf24e", /* */
"power-saver": "\uf06c" /* */
},
"tooltip": true,
"tooltip-format": "Profile: {profile}\nDriver: {driver}"
},
"privacy": {
"transition-duration": 250,
"icon-size": 16,
"modules": [
{
"type": "screenshare",
"tooltip": true
},
{
"type": "audio-in",
"tooltip": true
}
]
},
"pulseaudio": {
"format": "{volume}% {icon}",
"format-headset": "{volume}% \uf58f", /* */
"format-muted": "\uf6a9", /* */
"format-icons": [
"\uf026", /* */
"\uf027", /* */
"\uf028" /* */
],
"scroll-step": 2.0,
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
},
"sway/language": {
"format": "{short}",
"on-click": "swaymsg input type:keyboard xkb_switch_layout next",
"tooltip": true,
"tooltip-format": "Switch keyboard layouts"
},
"sway/window": {
"max-length": 85
"format": "{title}",
"max-length": 20,
"tooltip": true,
"all-outputs": true,
"icon": false,
"icon-size": 18,
"rewrite": {
".* - (.*)": "$1",
".* — (.*)": "$1"
}
},
"sway/workspaces": {
"all-outputs": false,
"disable-scroll": true,
"format": "{icon}{name}",
"format": "{icon}{name}",
"format-icons": {
"default": "", // Prevent showing workspace name literal.
"urgent": "\uf071 "
},
// "persistent_workspaces": {
// "0:¯\\_(ツ)_/¯": []
// }
},
"power-profiles-daemon": {
"format": "{icon}",
"tooltip-format": "Power profile: {profile}\nDriver: {driver}",
"tooltip": true,
"format-icons": {
"default": "",
"performance": "",
"balanced": "",
"power-saver": ""
"default": "",
"urgent": "\uf071 " /* */
}
},
"privacy": {
"icon-spacing": 4,
"icon-size": 18,
"transition-duration": 250,
"modules": [
{
"type": "screenshare",
"tooltip": true,
"tooltip-icon-size": 18,
},
{
"type": "audio-in",
"tooltip": true,
"tooltip-icon-size": 18,
},
],
},
"pulseaudio": {
"format": "{volume}% {icon}{format_source}",
"format-muted": "\uf6a9{format_source}",
"format-bluetooth": "{volume}% {icon}\uf294{format_source}",
"format-bluetooth-muted": "\uf6a9 {icon}\uf294{format_source}",
"format-source": " {volume}% \uf130",
"format-source-muted": "",
"format-icons": {
"headphone": "\uf58f",
"hands-free": "\uf590",
"headset": "\uf590",
"phone": "\uf3ce",
"portable": "\uf3ce",
"car": "\uf1b9",
"default": ["\uf026", "\uf027", "\uf028 "]
},
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle",
"on-click-right": "pavucontrol",
"scroll-step": 2
},
"temperature": {
"critical-threshold": 70,
"format": "{temperatureC}°C {icon}",
"format-icons": ["\uf2cb", "\uf2c9", "\uf2c7"]
},
"tray": {
"icon-size": 16,
"show-passive-items": true,
"spacing": 10
}
}

View file

@ -0,0 +1,14 @@
@import 'style.css';
* {
color: #C2C2C2;
}
window#waybar {
background-color: #171717;
}
window#waybar button.focused {
background-color: #C2C2C2;
}

View file

@ -0,0 +1,14 @@
@import 'style.css';
* {
color: #171717;
}
window#waybar {
background-color: #C2C2C2;
}
window#waybar button.focused {
background-color: #171717;
}

View file

@ -1,165 +1,118 @@
/*
* ~/.config/waybar/style.css
*
* `otf-font-awesome` is required to be installed for icons.
*
* Pick your stylesheet:
* - sharp.css
* - transparent.css
* - round.css
*/
/* * * * * * * * * * * * * * * *
* *
* ~/.config/waybar/style.css *
* *
* * * * * * * * * * * * * * * */
@define-color transparent-black rgba(23, 23, 23, 0.9);
@define-color white #ecf0f1;
@define-color warning-red #eb4d4b;
@define-color accent #00897b;
@define-color background #C2C2C2;
@define-color foreground #171717;
/* Pantone / PMS 18-1559 TCX / Red Alert */
@define-color warning rgb(208, 52, 44);
/* Safety orange */
@define-color safety rgb(255, 103, 0);
* {
padding: 0 4px;
}
window#waybar {
/* background: linear-gradient(90deg, #CECECE 0%, #D1D1D1 10%, #C9C9C9 50%, #BBBBBB 90%, #BABABA 100%); */
font-family: letter, "Font Awesome 6 Free", font-awesome, monospace;
font-size: 13px;
-webkit-font-smoothing: antialiased;
transition-property: background-color;
transition-duration: .5s;
font-weight: 600;
}
#window, #workspaces {
margin: 0 5px;
}
#workspaces button {
border: none;
border-radius: 0;
min-width: 30px;
padding: 0 5px;
}
#workspaces button.focused {
background-color: transparent;
color: @white;
}
#workspaces button:hover {
background-color: transparent;
color: @transparent-black;
}
#workspaces button.urgent {
color: @white;
background-color: @warning-red;
}
/* All modules individually. */
#backlight,
#battery,
#bluetooth,
#clock,
#cpu,
#custom-browser,
#custom-light-dark-toggle,
#custom-night-light-toggle,
#custom-system-lock, #custom-system-sleep, #custom-system-hibernate, #custom-system-reboot, #custom-system-shutdown,
#custom-toggle-notifications,
#disk,
#group-hardware,
#group-system,
#idle_inhibitor,
#keyboard-state,
#memory,
#mode,
#mpd,
#mpris,
#network,
#power-profiles-daemon,
#privacy-item.audio-in, #privacy-item.audio-out, #privacy-item.screenshare,
#pulseaudio,
#temperature,
#tray {
padding: 0 5px;
}
/* If workspaces is the leftmost module, omit left margin */
.modules-left > widget:first-child > #workspaces {
margin-left: 0;
}
/* If workspaces is the rightmost module, omit right margin */
.modules-right > widget:last-child > #workspaces {
.modules-right,
.modules-right > widget:last-child {
padding-right: 0;
margin-right: 0;
}
@keyframes blink {
to {
background-color: #ffffff;
color: #000000;
}
}
label:focus {
background-color: #000000;
}
/* Module specific colours */
#battery.charging, #battery.plugged {
color: #ffffff;
#battery.charging {
background-color: #26A65B;
color: #FFFFFF;
}
#battery.critical:not(.charging) {
background-color: #f53c3c;
color: #ffffff;
background-color: @warning;
color: #FFFFFF;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-timing-function: steps(12);
animation-iteration-count: infinite;
animation-direction: alternate;
}
#battery.plugged {
animation-name: blink;
animation-duration: 1.0s;
animation-timing-function: steps(12);
animation-iteration-count: infinite;
animation-direction: alternate;
}
#bluetooth.disabled,
#bluetooth.off,
#network.disconnected,
#pulseaudio.muted {
#bluetooth.off {
opacity: 0.6;
}
#mpris {
color: #2a5c45;
min-width: 100px;
#custom-toggle-tailscale.disconnected {
opacity: 0.6;
}
#mpris.Feishin {
background: linear-gradient(45deg, rgba(170,92,195,1) 100%, rgba(0,164,220,1) 0%);
}
#mpris.spotify {
background-color: #66cc99;
color: #2a5c45;
}
#mpris.vlc {
background-color: #ffa000;
}
#temperature.critical {
background-color: #eb4d4b;
#network.disconnected {
opacity: 0.6;
}
#custom_light-dark-toggle.activated,
#idle_inhibitor.activated {
background-color: #ecf0f1;
color: #2d3436;
#privacy,
#privacy-item,
#privacy-item.screenshare,
#privacy-item.audio-in {
background-color: @safety;
}
#privacy-item.screenshare {
background-color: #000000;
}
#pulseaudio.muted {
opacity: 0.6;
}
#systemd-failed-units.degraded {
background-color: @warning;
}
#temperature.critical {
background-color: @warning;
}
#tray > .needs-attention {
-gtk-icon-effect: highlight;
background-color: @warning;
}
#tray > .passive {
-gtk-icon-effect: dim;
}
#tray > .needs-attention {
-gtk-icon-effect: highlight;
background-color: #eb4d4b;
#workspaces button.urgent {
background-color: @warning;
color: white;
}
#privacy-item.audio-in,
#privacy-item.audio-out,
#privacy-item.screenshare {
background-color: #ffaa01;
color: #2d3436;
}
@import "sharp.css";

View file

@ -51,11 +51,15 @@ fi
alias cp='cp -i'
alias df='df -h'
alias free='free -m'
alias gs='git status'
alias gs='git status --short'
alias hgrep='history | grep'
alias ll='ls -la'
alias mkdir='mkdir -pv'
alias more='less'
alias mv='mv -i'
alias np='nano -w PKGBUILD'
alias rm='rm -I --preserve-root'
alias zip='zip -r'
alias update='pushd ~/projects/sisyphus/nixos
nix flake update
sudo nixos-rebuild switch --flake .# --show-trace