Compare commits

...

No commits in common. "dev" and "merged" have entirely different histories.
dev ... merged

97 changed files with 1088 additions and 13881 deletions

2
.gitignore vendored
View file

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

225
colors.sh
View file

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

214
nixos/flake.lock generated
View file

@ -1,15 +1,36 @@
{ {
"nodes": { "nodes": {
"flake-utils": { "devshell": {
"inputs": { "inputs": {
"nixpkgs": [
"nixpkgs"
],
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1698410321,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "narHash": "sha256-MphuSlgpmKwtJncGMohryHiK55J1n6WzVQ/OAfmfoMc=",
"owner": "numtide",
"repo": "devshell",
"rev": "1aed986e3c81a4f6698e85a7452cbfcc4b31a36e",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "devshell",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1694529238,
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -25,63 +46,58 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1758463745, "lastModified": 1699748081,
"narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=", "narHash": "sha256-MOmMapBydd7MTjhX4eeQZzKlCABWw8W6iSHSG4OeFKE=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3", "rev": "04bac349d585c9df38d78e0285b780a140dc74a4",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "release-25.05", "ref": "release-23.05",
"repo": "home-manager", "repo": "home-manager",
"type": "github" "type": "github"
} }
}, },
"nix-github-actions": {
"inputs": {
"nixpkgs": [
"openconnect-sso",
"nixpkgs"
]
},
"locked": {
"lastModified": 1720066371,
"narHash": "sha256-uPlLYH2S0ACj0IcgaK9Lsf4spmJoGejR9DotXiXSBZQ=",
"owner": "nix-community",
"repo": "nix-github-actions",
"rev": "622f829f5fe69310a866c8a6cd07e747c44ef820",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-github-actions",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1760862643, "lastModified": 1699596684,
"narHash": "sha256-PXwG0TM7Ek87DNx4LbGWuD93PbFeKAJs4FfALtp7Wo0=", "narHash": "sha256-XSXP8zjBZJBVvpNb2WmY0eW8O2ce+sVyj1T0/iBRIvg=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "33c6dca0c0cb31d6addcd34e90a63ad61826b28c", "rev": "da4024d0ead5d7820f6bd15147d3fe2a0c0cec73",
"type": "github" "type": "github"
}, },
"original": { "original": {
"id": "nixpkgs", "id": "nixpkgs",
"ref": "nixos-25.05", "ref": "nixos-23.05",
"type": "indirect" "type": "indirect"
} }
}, },
"nixpkgs-stable": {
"locked": {
"lastModified": 1699756042,
"narHash": "sha256-bHHjQQBsEPOxLL+klYU2lYshDnnWY12SewzQ7n5ab2M=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "9502d0245983bb233da8083b55d60d96fd3c29ff",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "release-23.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1760878510, "lastModified": 1699781429,
"narHash": "sha256-K5Osef2qexezUfs0alLvZ7nQFTGS9DL2oTVsIXsqLgs=", "narHash": "sha256-UYefjidASiLORAjIvVsUHG6WBtRhM67kTjEY4XfZOFs=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "5e2a59a5b1a82f89f2c7e598302a9cacebb72a67", "rev": "e44462d6021bfe23dfb24b775cc7c390844f773d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -90,95 +106,30 @@
"type": "indirect" "type": "indirect"
} }
}, },
"openconnect-sso": {
"inputs": {
"flake-utils": [
"utils"
],
"nix-github-actions": "nix-github-actions",
"nixpkgs": [
"nixpkgs"
],
"poetry2nix": "poetry2nix",
"systems": "systems_2",
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1758594056,
"narHash": "sha256-6XyKDRWqBngw1g73e789iyIaw/0VF04ELk/ATtlkTVU=",
"owner": "ThinkChaos",
"repo": "openconnect-sso",
"rev": "2041471efd331d0591d34e122aefb02690fb233a",
"type": "github"
},
"original": {
"owner": "ThinkChaos",
"ref": "fix/nix-flake",
"repo": "openconnect-sso",
"type": "github"
}
},
"poetry2nix": {
"inputs": {
"flake-utils": [
"openconnect-sso",
"flake-utils"
],
"nix-github-actions": [
"openconnect-sso",
"nix-github-actions"
],
"nixpkgs": [
"openconnect-sso",
"nixpkgs"
],
"systems": [
"openconnect-sso",
"systems"
],
"treefmt-nix": [
"openconnect-sso",
"treefmt-nix"
]
},
"locked": {
"lastModified": 1721039874,
"narHash": "sha256-XANsG9GYHip8pxZpbqKf/YGv8tIa0xTh289Y+WNBNfw=",
"owner": "nix-community",
"repo": "poetry2nix",
"rev": "d11c01e58587e5f21037ed6477465a7f26a32e27",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "poetry2nix",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"devshell": "devshell",
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"home-manager": "home-manager", "home-manager": "home-manager",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"nixpkgs-unstable": "nixpkgs-unstable", "nixpkgs-unstable": "nixpkgs-unstable",
"openconnect-sso": "openconnect-sso",
"sops-nix": "sops-nix", "sops-nix": "sops-nix",
"utils": "utils", "utils": "utils"
"zen-browser": "zen-browser"
} }
}, },
"sops-nix": { "sops-nix": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
] ],
"nixpkgs-stable": "nixpkgs-stable"
}, },
"locked": { "locked": {
"lastModified": 1760998189, "lastModified": 1699951338,
"narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=", "narHash": "sha256-1GeczM7XfgHcYGYiYNcdwSFu3E62vmh4d7mffWZvyzE=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3", "rev": "0e3a94167dcd10a47b89141f35b2ff9e04b34c46",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -217,27 +168,6 @@
"type": "github" "type": "github"
} }
}, },
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"openconnect-sso",
"nixpkgs"
]
},
"locked": {
"lastModified": 1721769617,
"narHash": "sha256-6Pqa0bi5nV74IZcENKYRToRNM5obo1EQ+3ihtunJ014=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "8db8970be1fb8be9c845af7ebec53b699fe7e009",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"utils": { "utils": {
"inputs": { "inputs": {
"flake-utils": [ "flake-utils": [
@ -245,11 +175,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1738591040, "lastModified": 1696331477,
"narHash": "sha256-4WNeriUToshQ/L5J+dTSWC5OJIwT39SEP7V7oylndi8=", "narHash": "sha256-YkbRa/1wQWdWkVJ01JvV+75KIdM37UErqKgTf0L54Fk=",
"owner": "gytis-ivaskevicius", "owner": "gytis-ivaskevicius",
"repo": "flake-utils-plus", "repo": "flake-utils-plus",
"rev": "afcb15b845e74ac5e998358709b2b5fe42a948d1", "rev": "bfc53579db89de750b25b0c5e7af299e0c06d7d3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -257,26 +187,6 @@
"repo": "flake-utils-plus", "repo": "flake-utils-plus",
"type": "github" "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", "root": "root",

View file

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

View file

@ -6,21 +6,12 @@
]; ];
sisyphus = { sisyphus = {
desktop.sway.enable = true; hardware.nvidia = {
enable = true;
hardware = { model = "RTX 2060";
nvidia = {
enable = true;
model = "RTX 2060";
gui-settings = true;
};
yubikey.enable = true;
}; };
networking = { networking.openconnect-sso.enable = true;
networkmanager.enable = true;
openconnect-sso.enable = true;
};
nix = { nix = {
flakes.enable = true; flakes.enable = true;
@ -42,13 +33,12 @@
users.tdpeuter.enable = true; users.tdpeuter.enable = true;
virtualisation = { virtualisation.virtualbox.enable = true;
docker.enable = true;
virtualbox.enable = true;
};
}; };
boot = { boot = {
kernelPackages = pkgs.linuxPackages_hardened;
loader = { loader = {
systemd-boot.enable = true; systemd-boot.enable = true;
efi = { efi = {
@ -66,21 +56,17 @@
zenith-nvidia zenith-nvidia
]; ];
programs = { programs.zsh.enable = true;
steam.enable = true;
zsh.enable = true;
};
hardware.bluetooth.enable = true; hardware.bluetooth.enable = true;
networking.hostName = "Tibo-NixDesk"; networking = {
hostName = "Tibo-NixDesk";
services.xserver.xkb = { networkmanager.enable = true;
layout = "us"; # wireless.enable = true; # Enables wireless support via wpa_supplicant.
variant = "altgr-intl";
}; };
system.stateVersion = "24.05"; system.stateVersion = "23.05";
time.timeZone = "Europe/Brussels"; time.timeZone = "Europe/Brussels";

View file

@ -50,16 +50,6 @@
"bind" "bind"
]; ];
}; };
"/mnt/Games" = {
device = "/dev/disk/by-label/Games";
fsType = "ntfs";
options = [
"uid=tdpeuter"
"gid=users"
"defaults"
];
};
}; };
swapDevices = [ swapDevices = [

View file

@ -6,24 +6,12 @@
]; ];
sisyphus = { sisyphus = {
desktop = { hardware.nvidia = {
sway.enable = true; enable = true;
hyprland.enable = true; model = "Quadro T2000";
}; };
hardware = { networking.openconnect-sso.enable = true;
eid.enable = true;
nvidia = {
enable = true;
model = "Quadro T2000";
};
yubikey.enable = true;
};
networking = {
networkmanager.enable = true;
openconnect-sso.enable = true;
};
nix = { nix = {
flakes.enable = true; flakes.enable = true;
@ -44,10 +32,7 @@
users.tdpeuter.enable = true; users.tdpeuter.enable = true;
virtualisation = { virtualisation.virtualbox.enable = true;
docker.enable = true;
virtualbox.enable = true;
};
}; };
boot = { boot = {
@ -63,6 +48,8 @@
}; };
}; };
kernelPackages = pkgs.linuxPackages_hardened;
# Use the systemd-boot EFI boot loader.] # Use the systemd-boot EFI boot loader.]
loader = { loader = {
systemd-boot.enable = true; systemd-boot.enable = true;
@ -82,6 +69,7 @@
]; ];
programs = { programs = {
steam.enable = true;
zsh.enable = true; zsh.enable = true;
}; };
@ -90,44 +78,33 @@
powerOnBoot = false; powerOnBoot = false;
}; };
networking = { networking.hostName = "Tibo-NixFat";
hostName = "Tibo-NixFat";
networkmanager.wifi.powersave = true;
};
services = { services = {
# Handle the laptop lid switch as follows:
logind = { logind = {
# Handle the laptop lid switch as follows:
lidSwitch = "hybrid-sleep"; lidSwitch = "hybrid-sleep";
lidSwitchExternalPower = "lock"; lidSwitchExternalPower = "lock";
lidSwitchDocked = "ignore"; lidSwitchDocked = "ignore";
# Handle the power key
powerKey = "suspend";
};
xserver.xkb = {
# Keyboard layout
layout = "us";
variant = "altgr-intl";
}; };
# Touchpad # Touchpad
libinput.enable = true; xserver.libinput.enable = true;
thermald.enable = true;
}; };
system.stateVersion = "24.05"; system.stateVersion = "23.05";
systemd.coredump.enable = false;
time.timeZone = "Europe/Brussels"; time.timeZone = "Europe/Brussels";
# --- Barrier --- # --- Barrier ---
networking = {
networkmanager.enable = true;
};
i18n.defaultLocale = "en_GB.UTF-8"; i18n.defaultLocale = "en_GB.UTF-8";
console = { console = {
# font = "Lat2-Terminus16";
useXkbConfig = true; # use xkbOptions in tty. useXkbConfig = true; # use xkbOptions in tty.
}; };
} }

View file

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

View file

@ -1,203 +0,0 @@
# 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

@ -1,41 +0,0 @@
# 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

@ -1,10 +1,7 @@
{ {
imports = [ imports = [
./gnome ./gnome
./hyprland
./plasma ./plasma
./sway ./sway
./waybar
]; ];
} }

View file

@ -6,30 +6,52 @@ in {
options.sisyphus.desktop.gnome.enable = lib.mkEnableOption "GNOME"; options.sisyphus.desktop.gnome.enable = lib.mkEnableOption "GNOME";
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
services = { services.xserver = {
gnome = { enable = true;
core-apps.enable = false; layout = "us";
core-developer-tools.enable = false; xkbVariant = "altgr-intl";
core-shell.enable = true;
};
xserver = { excludePackages = with pkgs; [
enable = true; xterm
];
excludePackages = with pkgs; [ displayManager.gdm.enable = true;
xterm desktopManager.gnome.enable = true;
];
displayManager.gdm.enable = true;
desktopManager.gnome.enable = true;
videoDrivers = [ "nvidia" ];
};
}; };
# Start a new instance of application instead of going to that window. # Start a new instance of application instead of going to that window.
environment.systemPackages = with pkgs.gnomeExtensions; [ environment.systemPackages = with pkgs.gnomeExtensions; [
launch-new-instance 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
]) ++ (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-maps
gnome-music
gnome-system-monitor
gnome-weather
simple-scan
totem # Movie player
yelp # Help viewer
]);
}; };
} }

View file

@ -1,62 +0,0 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.desktop.hyprland;
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,41 +8,36 @@ in {
options.sisyphus.desktop.plasma.enable = lib.mkEnableOption "KDE Plasma"; options.sisyphus.desktop.plasma.enable = lib.mkEnableOption "KDE Plasma";
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
services = { services.xserver = {
enable = true;
displayManager = { displayManager = {
defaultSession = "plasma"; defaultSession = "plasmawayland";
sddm = { sddm = {
enable = true; enable = true;
wayland.enable = true;
# https://discourse.nixos.org/t/plasma-wayland-session-not-available-from-sddm/13447/2 # 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.plasma6.enable = true; desktopManager.plasma5 = {
# Use gnome keyring instead of KDE Wallet.
gnome.gnome-keyring.enable = true;
xserver = {
enable = true; enable = true;
excludePackages = with pkgs; [ useQtScaling = true;
xterm
];
videoDrivers = [ "nvidia" ];
}; };
excludePackages = with pkgs; [
xterm
];
}; };
environment.plasma6.excludePackages = with pkgs.kdePackages; [ environment.plasma5.excludePackages = with pkgs.libsForQt5; [
elisa elisa
gwenview okular
kate
khelpcenter khelpcenter
konsole konsole
kwalletmanager
okular
plasma-systemmonitor
print-manager print-manager
plasma-systemmonitor
gwenview
]; ];
}; };
} }

View file

@ -38,26 +38,6 @@ let
export XDG_DATA_DIRS=${datadir}:$XDG_DATA_DIRS export XDG_DATA_DIRS=${datadir}:$XDG_DATA_DIRS
gnome_schema=org.gnome.desktop.interface gnome_schema=org.gnome.desktop.interface
# gsettings set $gnome_schema gtk-theme 'Dracula' # gsettings set $gnome_schema gtk-theme 'Dracula'
# https://github.com/crispyricepc/sway-nvidia/blob/2101a18698151a61266740f1297158119bf660ac/wlroots-env-nvidia.sh
# Hardware cursors not yet working on wlroots
export WLR_NO_HARDWARE_CURSORS=1
# Set wlroots renderer to Vulkan to avoid flickering
export WLR_RENDERER=vulkan
# General wayland environment variables
export XDG_SESSION_TYPE=wayland
export QT_QPA_PLATFORM=wayland
export QT_WAYLAND_DISABLE_WINDOWDECORATION=1
# Firefox wayland environment variable
export MOZ_ENABLE_WAYLAND=1
export MOZ_USE_XINPUT2=1
# OpenGL Variables
export GBM_BACKEND=nvidia-drm
export __GL_GSYNC_ALLOWED=0
export __GL_VRR_ALLOWED=0
export __GLX_VENDOR_LIBRARY_NAME=nvidia
# Xwayland compatibility
export XWAYLAND_NO_GLAMOR=1
''; '';
}; };
in { in {
@ -65,28 +45,24 @@ in {
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
environment.systemPackages = (with pkgs; [ environment.systemPackages = (with pkgs; [
# Window manager related
dbus-sway-environment dbus-sway-environment
configure-gtk configure-gtk
wayland wayland
xdg-utils # Open with default program xdg-utils # Open with default program
glib # gsettings glib # gsettings
wl-clipboard # Copying to system clipboard in vim wl-clipboard
wl-mirror # Mirror an output
wdisplays # Tool to configure displays wdisplays # Tool to configure displays
# Desktop Environment related
brightnessctl brightnessctl
dunst dunst
libnotify libnotify
playerctl playerctl
swaybg swaybg
swaylock-effects swaylock-effects
waybar
wlsunset wlsunset
waycorner
# TODO Turn into own module/package? # TODO Turn into own module/package?
dmenu
jq jq
j4-dmenu-desktop j4-dmenu-desktop
rofi rofi
@ -95,53 +71,58 @@ in {
]); ]);
environment.sessionVariables = { environment.sessionVariables = {
ASSETS_DIR = ../../../../assets;
SCRIPT_DIR = ../../../../scripts; SCRIPT_DIR = ../../../../scripts;
}; };
fonts.packages = with pkgs; [ fonts.fonts = with pkgs; [
dejavu_fonts dejavu_fonts
font-awesome font-awesome
noto-fonts noto-fonts
noto-fonts-cjk-sans noto-fonts-cjk
noto-fonts-cjk-serif
noto-fonts-emoji noto-fonts-emoji
source-han-sans
source-han-sans-japanese
source-han-serif-japanese
]; ];
hardware.graphics.enable = true; security.polkit.enable = true;
services = { services = {
atd.enable = true; # Required by sunset.sh atd.enable = true; # Required by sunset.sh
dbus.enable = true; dbus.enable = true;
displayManager.ly.enable = true;
gnome.gnome-keyring.enable = true; gnome.gnome-keyring.enable = true;
power-profiles-daemon.enable = true;
xserver.videoDrivers = [ "nouveau" ];
# xserver.videoDrivers = [ "nvidia" ];
};
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=$!
'';
}];
};
xdg.portal = { xdg.portal = {
enable = true; enable = true;
wlr.enable = true; wlr.enable = true;
extraPortals = with pkgs; [ extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
xdg-desktop-portal-gtk
gtk-session-lock
];
xdgOpenUsePortal = true;
}; };
programs.sway = { programs.sway = {
enable = true; enable = true;
package = pkgs.swayfx;
wrapperFeatures.gtk = true; wrapperFeatures.gtk = true;
}; };
sisyphus = { sisyphus.users.wantedGroups = [
desktop.waybar.enable = true; config.users.groups.video.name # Brightnessctl
];
users.wantedGroups = [
config.users.groups.video.name # Brightnessctl
];
};
}; };
} }

View file

@ -1,18 +0,0 @@
{ 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,8 +1,5 @@
{ {
imports = [ imports = [
./eid
./fingerprint-scanner
./nvidia ./nvidia
./yubikey
]; ];
} }

View file

@ -1,18 +0,0 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.hardware.eid;
in {
options.sisyphus.hardware.eid.enable = lib.mkEnableOption "Electronic identity card (eID)";
config = lib.mkIf cfg.enable {
services.pcscd = {
enable = true;
plugins = [ pkgs.ccid ];
};
environment.systemPackages = with pkgs; [
eid-mw
];
};
}

View file

@ -1,30 +0,0 @@
{ 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

@ -3,7 +3,6 @@
let let
cfg = config.sisyphus.hardware.nvidia; cfg = config.sisyphus.hardware.nvidia;
# The graphics cards for which to do offloading
do-offloading = builtins.elem cfg.model [ "Quadro T2000" ]; do-offloading = builtins.elem cfg.model [ "Quadro T2000" ];
nvidia-offload = pkgs.writeShellScriptBin "nvidia-offload" '' nvidia-offload = pkgs.writeShellScriptBin "nvidia-offload" ''
export __NV_PRIME_RENDER_OFFLOAD=1 export __NV_PRIME_RENDER_OFFLOAD=1
@ -25,34 +24,17 @@ in {
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
boot = { services.xserver.videoDrivers = [ "nvidia" ];
extraModprobeConfig = ''
options nvidia-drm modeset=1
'';
kernelParams = [
"nvidia_drm.modeset=1"
];
};
hardware = { hardware = {
graphics = { opengl = {
enable = true; enable = true;
enable32Bit = true; driSupport = true;
extraPackages = with pkgs; [ driSupport32Bit = true;
intel-ocl
intel-compute-runtime
opencl-clhpp
opencl-clang
opencl-headers
ocl-icd
];
}; };
nvidia = { nvidia = {
# Use the NVidia open source kernel module (or not) open = true;
open = false;
package = config.boot.kernelPackages.nvidiaPackages.stable; package = config.boot.kernelPackages.nvidiaPackages.stable;
# Modesetting is required.
modesetting.enable = true; modesetting.enable = true;
nvidiaSettings = cfg.gui-settings; nvidiaSettings = cfg.gui-settings;
powerManagement = { powerManagement = {
@ -60,9 +42,6 @@ in {
finegrained = do-offloading; finegrained = do-offloading;
}; };
# Avoid flickering
forceFullCompositionPipeline = true;
prime = lib.mkMerge [ prime = lib.mkMerge [
(lib.mkIf do-offloading { (lib.mkIf do-offloading {
offload = { offload = {

View file

@ -1,42 +0,0 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.hardware.yubikey;
in {
options.sisyphus.hardware.yubikey.enable = lib.mkEnableOption "YubiKey support";
config = lib.mkIf cfg.enable {
programs = {
gnupg.agent = {
enable = true;
# TODO Necessary?
# enableSSHSupport = true;
# pinentryFlavor = "curses";
};
# yubikey-touch-detector.enable = true;
};
# Enable smart card reading
services.pcscd.enable = true;
environment.systemPackages = with pkgs; [
yubikey-touch-detector
];
# Send a notification if the YubiKey is waiting for touch.
systemd.services.yubikey-touch-detector = {
enable = true;
description = "Detects when your YubiKey is waiting for a touch";
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

@ -1,6 +1,5 @@
{ {
imports = [ imports = [
./networkmanager
./openconnect-sso ./openconnect-sso
]; ];
} }

View file

@ -1,14 +0,0 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.networking.networkmanager;
in {
options.sisyphus.networking.networkmanager.enable = lib.mkEnableOption "NetworkManager";
config = lib.mkIf cfg.enable {
networking.networkmanager.enable = true;
# Prevent slow boot times
systemd.services.NetworkManager-wait-online.enable = false;
};
}

View file

@ -1,4 +1,4 @@
{ config, inputs, lib, pkgs, ... }: { config, lib, pkgs, ... }:
let let
cfg = config.sisyphus.networking.openconnect-sso; cfg = config.sisyphus.networking.openconnect-sso;
@ -6,8 +6,15 @@ in {
options.sisyphus.networking.openconnect-sso.enable = lib.mkEnableOption "OpenConnect SSO"; options.sisyphus.networking.openconnect-sso.enable = lib.mkEnableOption "OpenConnect SSO";
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
nixpkgs = {
config.permittedInsecurePackages = [
"python3.10-requests-2.28.2"
"python3.10-cryptography-40.0.1"
];
};
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
inputs.openconnect-sso.packages.${config.nixpkgs.localSystem.system}.default openconnect-sso
]; ];
}; };
} }

View file

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

View file

@ -1,21 +1,22 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
let let
cfg = config.sisyphus.programs.direnv; cfg = sisyphus.programs.direnv;
in { in {
options.sisyphus.programs.direnv.enable = lib.mkEnableOption "direnv"; options.sisyphus.programs.direnv.enable = lib.mkEnableOption "direnv";
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
programs.direnv = { programs.direnv = {
enable = true; enable = true;
nix-direnv.enable = true; # Use nix-specific direnv, https://github.com/nix-community/nix-direnv nix-direnv.enable = true; # Use nix-specific direnv.
persistDerivations = true; # Sets the extraOptions listed below.
}; };
# This is also done by setting programs.direnv.persistDerivations. # This is also done by setting programs.direnv.persistDerivations.
# Keep derivations so shells don't break. # Keep derivations so shells don't break.
nix.extraOptions = '' nix.extraOption = ''
keep-outputs = true keep-outputs = true
keep-derivations = true keep-derivations = true
''; '';
}; };
} };

View file

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

View file

@ -1,11 +1,9 @@
{ {
imports = [ imports = [
./monero
./openrgb ./openrgb
./openssh ./openssh
./pipewire ./pipewire
./printing ./printing
./remEYEnder
./tailscale ./tailscale
]; ];
} }

View file

@ -1,41 +0,0 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.services.monero;
in {
options.sisyphus.services.monero.enable = lib.mkEnableOption "Monero";
config = lib.mkIf cfg.enable {
environment.systemPackages = with pkgs; [
monero-cli
];
services = {
# Choose to run a node or not.
monero.enable = true;
xmrig = {
enable = true;
settings = {
autosave = true;
background = true;
pause-on-battery = true;
pause-on-active = 60;
donate-level = 5;
cpu = true;
opencl = false;
cuda = true;
pools = [
{
url = "monerohash.com:9999";
# url = "127.0.0.1:18081"; # Local node
user = "44FjmmLn1k1GC1AFTLSdWDZ17CHB2h3eRCnfkfTQBucHaKX1AGS5oLERR1FEaHxPQcUNwrbEfsgbY4Y6bYJm6ZrdCYGwg7b";
keepalive = true;
tls = true;
}
];
};
};
};
};
}

View file

@ -6,6 +6,8 @@ in {
options.sisyphus.services.pipewire.enable = lib.mkEnableOption "Pipewire"; options.sisyphus.services.pipewire.enable = lib.mkEnableOption "Pipewire";
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
sound.enable = true;
hardware.pulseaudio.enable = false;
security.rtkit.enable = true; security.rtkit.enable = true;
services.pipewire = { services.pipewire = {
enable = true; enable = true;
@ -18,24 +20,6 @@ in {
# use the example session manager (no others are packaged yet so this is enabled by default, # 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) # no need to redefine it in your config for now)
#media-session.enable = true; #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; printing.enable = true;
avahi = { avahi = {
enable = true; enable = true;
nssmdns4 = true; nssmdns = true;
openFirewall = true; openFirewall = true;
}; };
}; };

View file

@ -1,35 +0,0 @@
{ 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.

Before

Width:  |  Height:  |  Size: 97 KiB

View file

@ -1,7 +1,5 @@
{ {
imports = [ imports = [
./docker
./qemu
./virtualbox ./virtualbox
]; ];
} }

View file

@ -1,24 +0,0 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.virtualisation.docker;
in {
options.sisyphus.virtualisation.docker.enable = lib.mkEnableOption "Docker";
config = lib.mkIf cfg.enable {
virtualisation.docker = {
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,15 +0,0 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.virtualisation.qemu;
in {
options.sisyphus.virtualisation.qemu.enable = lib.mkEnableOption "QEMU";
config = lib.mkIf cfg.enable {
environment.systemPackages = with pkgs; [
qemu
];
virtualisation.libvirtd.qemu.runAsRoot = false;
};
}

View file

@ -1,25 +1,34 @@
{ config, lib, pkgs-unstable, ... }: { config, lib, pkgs, ... }:
let let
cfg = config.sisyphus.virtualisation.virtualbox; 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 { in {
options.sisyphus.virtualisation.virtualbox.enable = lib.mkEnableOption "VirtualBox"; options.sisyphus.virtualisation.virtualbox.enable = lib.mkEnableOption "VirtualBox";
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
virtualisation.virtualbox.host = { virtualisation.virtualbox = {
enable = true; host = {
enableExtensionPack = true; enable = true;
enableHardening = true; enableExtensionPack = true;
package = pkgs-unstable.virtualbox; package = virtualbox-override;
};
guest = {
enable = true;
x11 = true;
};
}; };
# 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 = {}; users.groups.vboxusers = {};
sisyphus.users.wantedGroups = [ sisyphus.users.wantedGroups = [

View file

@ -0,0 +1,4 @@
import "${builtins.fetchTarball {
url = "https://github.com/vlaci/openconnect-sso/archive/master.tar.gz";
sha256 = "08cqd40p9vld1liyl6qrsdrilzc709scyfghfzmmja3m1m7nym94";
}}/overlay.nix"

View file

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

22
nixos/secrets/GitHub.yaml Normal file
View file

@ -0,0 +1,22 @@
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

@ -1,41 +0,0 @@
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

24
nixos/secrets/Hugo.yaml Normal file
View file

@ -0,0 +1,24 @@
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,26 +6,22 @@ UGent:
SubGit: 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] 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: sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age: age:
- recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y - recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpb0dlWE5PNllnME1jQWE4 YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYWWFUdnpERVlkK29TQ09k
cHFzWkR4ZzNaWlR0WDJ4c1hEdlJGN0FISWlZCmNNdVRtL080QzgwQTZtTGpVRkxW SnJMVm5rUEV6S0huSzJ2YjFFQ3pNR0pmZWprClZEVDloeDE2ODNkMVVJTUtqaENz
dkdvYXdQNUlhYWQrYlNDR2JISXdpdkkKLS0tIEpIU20rK3F3WGpBS1g3NmJqYWRX ZzhwTTA4V2xOeW55WGtPZU5FWElQNDAKLS0tIFh5ZWtmZHRBWTAvM3ZwY3pKQ0R6
SWlNbFZ0NTJJZ09Wd3JzK1hscjJoS2MK4GU8ndim80CaOjgvMwVlgIq/1VQIylSZ aDNUbFlhWWVoOWpjVlV1VTVJejlSMjQK6wCeCRdHY5oyTX6/R1U5AOGJyp0exi1A
EJl15zUFaDiDZUCcZE8TkJQ/rbGDSiq7KlWyFe48Q3UC86jfF88qCg== dWPUMfkKBBBkrR+G6ougd8o3FwFf+yfb5RhaTxxqjit6p2RyMjR64w==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1qzutny0mqpcccqw6myyfntu6wcskruu9ghzvt6r4te7afkqwnguq05ex37 lastmodified: "2023-10-10T06:57:11Z"
enc: | mac: ENC[AES256_GCM,data:Tvwv2mqceAxi7ic3+95Y6hBMHjqVoCkYnTkEsXOrhumgXpuuB/QQ0ASEf6gbgkCLXGwnUAXsK41bIIJfFgYSk89fHw6AaXfs6a+zL2Mh5zkhMIE2bm68mFK8+/TX/e8SibbEwNZCKOcPqvaO6nK816KCmh3KKCbT9ObaB6CA/KI=,iv:YPKgYAnQ135JXou7q9jVN7b3SKIDwceKcbqiIjkqnTU=,tag:udPrEVu2F+hWkhNoEyjTYg==,type:str]
-----BEGIN AGE ENCRYPTED FILE----- pgp: []
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 unencrypted_suffix: _unencrypted
version: 3.10.2 version: 3.7.3

View file

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

View file

@ -1,4 +1,4 @@
{ config, inputs, lib, pkgs, pkgs-unstable, ... }: { config, lib, pkgs, pkgs-unstable, ... }:
let let
cfg = config.sisyphus.users.tdpeuter; cfg = config.sisyphus.users.tdpeuter;
@ -8,7 +8,7 @@ let
cursor = { cursor = {
package = pkgs.phinger-cursors; package = pkgs.phinger-cursors;
name = "phinger-cursors-light"; name = "phinger-cursors";
size = 24; size = 24;
}; };
in { in {
@ -33,68 +33,20 @@ in {
]; ];
initialPassword = "ChangeMe"; initialPassword = "ChangeMe";
shell = pkgs.zsh; 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; [ fonts.fonts = with pkgs; [
corefonts # Calibri for Uni corefonts # Calibri for Uni
dejavu_fonts font-awesome # Dependency of Vifm & zsh config
font-awesome # Dependency of Vifm & zsh config letter # Personal font
letter # Personal font noto-fonts-cjk # Dependency of Zellij config
noto-fonts # Dependency of Zellij config noto-fonts # Dependency of Zellij config
noto-fonts-cjk-sans # Dependency of Zellij config vistafonts # Microsoft fonts
noto-fonts-cjk-serif # Dependency of Zellij config
noto-fonts-emoji
noto-fonts-color-emoji # Emoji's!
vistafonts # Microsoft fonts
]; ];
sisyphus = { sisyphus = {
desktop.sway.enable = true;
programs.spotify-adblock.enable = true; programs.spotify-adblock.enable = true;
services.remEYEnder.enable = true;
}; };
home-manager.users.tdpeuter = lib.mkIf config.sisyphus.programs.home-manager.enable { home-manager.users.tdpeuter = lib.mkIf config.sisyphus.programs.home-manager.enable {
@ -105,13 +57,49 @@ in {
homeDirectory = "/home/${user}"; homeDirectory = "/home/${user}";
inherit (config.system) stateVersion; inherit (config.system) stateVersion;
# packages = (with pkgs; [ # If you specify an application here, it will be detected by the configuration module
# ]) ++ (with pkgs-unstable; [ # and the configuration files will be put in place for you.
# ]); packages = (with pkgs; [
chafa # Terminal image viewer
cmdtime # Zsh plugin
duf # Df alternative
fzf
glow # Terminal Markdown renderer
icosystem # Personal icon theme
jellyfin-media-player
kitty
libreoffice-fresh
nextcloud-client
nsxiv # Lightweight image viewer
oh-my-zsh
phinger-cursors # Cursor theme
qalculate-gtk # Calculator
tea # Gitea CLI
unzip
vifm # File manager
zathura # PDF viewer
zellij # Tmux + screen alternative
zsh
zsh-autosuggestions
zsh-syntax-highlighting
# SMB
cifs-utils psmisc
]) ++ (with pkgs-unstable; [
mpv
obsidian
spotify
]) ++ (with pkgs.vimPlugins; [
statix
vim-plug
]);
pointerCursor = { pointerCursor = {
inherit (cursor) package name size; package = cursor.package;
name = cursor.name;
size = cursor.size;
gtk.enable = true; gtk.enable = true;
x11.enable = true;
}; };
}; };
@ -142,12 +130,9 @@ in {
}; };
}; };
services.syncthing = { gtk = {
enable = true; enable = true;
extraOptions = [ cursorTheme = cursor;
"--no-default-folder"
];
tray.enable = true;
}; };
xdg = { xdg = {

View file

@ -1,7 +1,5 @@
{ config, lib, pkgs, pkgs-unstable, ... }: { config, lib, pkgs, pkgs-unstable, ... }:
# Does basically the same thing that stow does, but using Nix.
let let
cfg = config.sisyphus.users.tdpeuter; cfg = config.sisyphus.users.tdpeuter;
user = config.users.users.tdpeuter.name; user = config.users.users.tdpeuter.name;
@ -10,119 +8,109 @@ in {
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
home-manager.users.tdpeuter = lib.mkIf config.sisyphus.programs.home-manager.enable { home-manager.users.tdpeuter = lib.mkIf config.sisyphus.programs.home-manager.enable {
home = { home = {
file = lib.mkMerge [ file = {
{ ".config/alacritty" = lib.mkIf (builtins.elem pkgs.alacritty installedPkgs) {
".config/alacritty" = { source = ../../../stow/alacritty/.config/alacritty;
enable = false; };
source = ../../../stow/alacritty/.config/alacritty; ".config/dunst" = {
}; enable = config.sisyphus.desktop.sway.enable;
".config/dunst" = { source = ../../../stow/dunst/.config/dunst;
enable = config.sisyphus.desktop.hyprland.enable || config.sisyphus.desktop.sway.enable; };
source = ../../../stow/dunst/.config/dunst; ".config/fuzzel" = {
}; enable = builtins.elem pkgs.fuzzel installedPkgs;
".config/foot" = { source = ../../../stow/fuzzel/.config/fuzzel;
recursive = true; recursive = true;
source = ../../../stow/foot/.config/foot; };
}; ".config/git" = {
".config/fuzzel" = { enable = (builtins.elem pkgs.git installedPkgs);
recursive = true; source = ../../../stow/git/.config/git;
source = ../../../stow/fuzzel/.config/fuzzel; recursive = true;
}; };
".config/git" = { ".config/kitty" = {
recursive = true; enable = builtins.elem pkgs.kitty installedPkgs;
source = ../../../stow/git/.config/git; source = ../../../stow/kitty/.config/kitty;
}; recursive = true;
".config/hypr" = { };
inherit (config.sisyphus.desktop.hyprland) enable; ".config/mako" = {
recursive = true; enable = builtins.elem pkgs.mako installedPkgs;
source = ../../../stow/hyprland/.config/hypr; source = ../../../stow/mako/.config/mako;
}; };
".config/kitty" = { ".config/mpv" = {
enable = false; enable = (builtins.elem pkgs-unstable.mpv installedPkgs);
recursive = true; source = ../../../stow/mpv/.config/mpv;
source = ../../../stow/kitty/.config/kitty; };
}; ".config/OpenRGB" = {
".config/mako" = { enable = config.sisyphus.services.openrgb.enable;
enable = false; source = ../../../stow/openrgb/.config/OpenRGB;
source = ../../../stow/mako/.config/mako; recursive = true;
}; };
".config/mpv" = { ".config/sway" = {
source = ../../../stow/mpv/.config/mpv; enable = config.sisyphus.desktop.sway.enable;
}; source = ../../../stow/sway/.config/sway;
".config/OpenRGB" = { };
inherit (config.sisyphus.services.openrgb) enable; ".config/swayidle" = {
recursive = true; enable = (builtins.elem pkgs.swayidle installedPkgs);
source = ../../../stow/openrgb/.config/OpenRGB; source = ../../../stow/swayidle/.config/swayidle;
}; };
".config/sway" = { ".config/swaylock" = {
inherit (config.sisyphus.desktop.sway) enable; enable = config.sisyphus.desktop.sway.enable;
source = ../../../stow/sway/.config/sway; source = ../../../stow/swaylock/.config/swaylock;
}; };
".config/swayidle" = { ".config/vifm" = {
inherit (config.sisyphus.desktop.sway) enable; enable = (builtins.elem pkgs.vifm installedPkgs);
source = ../../../stow/swayidle/.config/swayidle; source = ../../../stow/vifm/.config/vifm;
}; recursive = true; # Fix history and all working
".config/swaylock" = { };
enable = config.sisyphus.desktop.sway.enable || config.sisyphus.desktop.hyprland.enable; ".config/waybar" = {
source = ../../../stow/swaylock/.config/swaylock; enable = config.sisyphus.desktop.sway.enable;
}; source = ../../../stow/waybar/.config/waybar;
".config/vifm" = { };
recursive = true; # Fix history and all working ".config/zellij" = {
source = ../../../stow/vifm/.config/vifm; enable = (builtins.elem pkgs.zellij installedPkgs);
}; source = ../../../stow/zellij/.config/zellij;
".config/waybar" = { };
enable = config.sisyphus.desktop.sway.enable || config.sisyphus.desktop.hyprland.enable; ".oh-my-zsh" = {
source = ../../../stow/waybar/.config/waybar; enable = true;
}; source = "${pkgs.oh-my-zsh}/share/oh-my-zsh";
".config/zellij" = { recursive = true;
source = ../../../stow/zellij/.config/zellij; };
}; ".oh-my-zsh/themes/tdpeuter.zsh-theme" = {
".gnupg" = { enable = (builtins.elem pkgs.zsh installedPkgs);
inherit (config.programs.gnupg.agent) enable; source = ../../../stow/zsh/.oh-my-zsh/themes/tdpeuter.zsh-theme;
source = ../../../stow/gnupg/.gnupg; };
recursive = true; ".ssh/config" = lib.mkIf config.sisyphus.programs.ssh.enable {
onChange = '' source = ../../../stow/ssh/.ssh/config;
chmod 700 /home/tdpeuter/.gnupg };
# chmod 600 /home/tdpeuter/.gnupg/* # Already read-only? ".vim" = {
''; enable = (builtins.elem pkgs.vim-full installedPkgs);
}; source = ../../../stow/vim/.vim;
".ssh/config" = lib.mkIf config.sisyphus.programs.ssh.enable { recursive = true;
inherit (config.sisyphus.programs.ssh) enable; };
source = ../../../stow/ssh/.ssh/config; ".vim/autoload/plug.vim" = {
}; enable = (builtins.elem pkgs.vim-full installedPkgs);
".vim" = { source = "${pkgs.vimPlugins.vim-plug}/plug.vim";
recursive = true; };
source = ../../../stow/vim/.vim; ".vimrc" = {
}; enable = (builtins.elem pkgs.vim-full installedPkgs);
".vim/autoload/plug.vim" = { source = ../../../stow/vim/.vimrc;
source = "${pkgs.vimPlugins.vim-plug}/plug.vim"; };
}; ".zshrc" = {
".vimrc" = { enable = (config.users.users.tdpeuter.shell == pkgs.zsh);
source = ../../../stow/vim/.vimrc; source = ../../../stow/zsh/.zshrc;
}; };
} ".zsh/plugins/cmdtime/cmdtime.plugin.zsh" = {
(lib.mkIf (config.users.users.tdpeuter.shell == pkgs.zsh) { enable = (builtins.elem pkgs.cmdtime installedPkgs);
".oh-my-zsh" = { source = "${pkgs.cmdtime}/share/cmdtime/cmdtime.plugin.zsh";
source = "${pkgs.oh-my-zsh}/share/oh-my-zsh"; };
recursive = true; ".zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh" = {
}; enable = (builtins.elem pkgs.zsh-autosuggestions installedPkgs);
".oh-my-zsh/themes/tdpeuter.zsh-theme" = { source = "${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh";
source = ../../../stow/zsh/.oh-my-zsh/themes/tdpeuter.zsh-theme; };
}; ".zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" = {
".zshrc" = { enable = (builtins.elem pkgs.zsh-syntax-highlighting installedPkgs);
source = ../../../stow/zsh/.zshrc; source = "${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh";
}; };
".zsh/plugins/cmdtime/cmdtime.plugin.zsh" = { };
source = "${pkgs.cmdtime}/share/cmdtime/cmdtime.plugin.zsh";
};
".zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh" = {
source = "${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh";
};
".zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" = {
source = "${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh";
};
})
];
}; };
}; };
}; };

View file

@ -7,109 +7,51 @@ in {
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
home-manager.users.tdpeuter.programs.firefox = lib.mkIf config.sisyphus.programs.home-manager.enable { home-manager.users.tdpeuter.programs.firefox = lib.mkIf config.sisyphus.programs.home-manager.enable {
enable = true; enable = true;
package = pkgs-unstable.firefox.override { package = pkgs.firefox.override {
cfg = { cfg = {
enableTridactylNative = true;
speechSynthesisSupport = true; # Allow Text-to-speech in e.g. Discord speechSynthesisSupport = true; # Allow Text-to-speech in e.g. Discord
}; };
nativeMessagingHosts = with pkgs; [
tridactyl-native
];
# https://mozilla.github.io/policy-templates/
extraPolicies = { extraPolicies = {
DisableFirefoxStudies = true; DisableFirefoxStudies = true;
DisablePocket = true; DisablePocket = true;
DisableTelemetry = true; DisableTelemetry = true;
FirefoxHome = { ExtensionSettings = {};
SponsoredTopSites = false;
SponsoredPocket = false;
};
OfferToSaveLogins = 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
pkcs11Modules = with pkgs-unstable; [
eid-mw
];
}; };
profiles.tdpeuter = {
languagePacks = [ search = {
"en-GB" default = "DuckDuckGo";
"nl" force = true;
]; engines = {
"Bing".metaData.hidden = true;
profiles.tdpeuter.search= { "eBay".metaData.hidden = true;
default = "ddg"; # Reference by id instead of by name
force = true; "Nix Packages" = {
engines = { urls = [{
"bing".metaData.hidden = true; template = "https://search.nixos.org/packages";
"ebay".metaData.hidden = true; params = [
{ name = "type"; value = "packages"; }
"GitHub" = { { name = "query"; value = "{searchTerms}"; }
urls = [{ ];
template = "https://github.com/search"; }];
params = [
{ name = "q"; value = "{searchTerms}"; } icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
{ name = "type"; value = "repositories"; } definedAliases = [ "@np" ];
]; };
}]; "GitHub" = {
urls = [{
icon = "${pkgs.icosystem}/share/icons/icosystem/scalable/apps/github-mark.svg"; template = "https://github.com/search";
definedAliases = [ "@gh" ]; params = [
}; { name = "q"; value = "{searchTerms}"; }
"Nix Packages" = { { name = "type"; value = "repositories"; }
urls = [{ ];
template = "https://search.nixos.org/packages"; }];
params = [
{ name = "type"; value = "packages"; } icon = "${pkgs.icosystem}/share/icons/icosystem/scalable/apps/github-mark.svg";
{ name = "query"; value = "{searchTerms}"; } definedAliases = [ "@gh" ];
]; };
}];
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,17 +8,13 @@ let
Met vriendelijke groeten Met vriendelijke groeten
Tibo De Peuter Tibo De Peuter
''; '';
english = '' UGent = ''
Kind regards
Tibo De Peuter
'';
academic = ''
Met vriendelijke groeten Met vriendelijke groeten
Tibo De Peuter Tibo De Peuter
Student Ma Informatica Student 2Ba/3Ba Informatica
''; '';
alias = '' MrFortem = ''
Kind regards Kind regards
MrFortem Fiducia MrFortem Fiducia
''; '';
@ -65,19 +61,15 @@ in {
realName = config.users.users.tdpeuter.description; realName = config.users.users.tdpeuter.description;
signature = { signature = {
showSignature = "append"; showSignature = "append";
text = signatures.academic; text = signatures.UGent;
}; };
thunderbird = { thunderbird = {
enable = true; enable = true;
settings = id: { settings = id: {
"mail.server.server_${id}.authMethod" = 10; "mail.server.server_${id}.authMethod" = 10;
"mail.smtpserver.smtp_${id}.authMethod" = 10; "mail.smtpserver.smtp_${id}.authMethod" = 10;
"mail.identity.id_${id}.htmlSigText" = signatures.academic; "mail.identity.id_${id}.htmlSigText" = signatures.UGent;
# Allow PGP
"mail.identity.id_${id}.openpgp_key_id" = "9B11F5243089DB5B"; # Your 'master' key
"mail.identity.id_${id}.attachPgpKey" = true;
}; };
}; };
}; };
@ -113,7 +105,7 @@ in {
settings = id: { settings = id: {
"mail.server.server_${id}.directory" = ".thunderbird/tdpeuter/ImapMail/imap.gmail.com-mrfortem"; "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.server.server_${id}.directory-rel" = "[ProfD]ImapMail/imap.gmail.com-mrfortem";
"mail.identity.id_${id}.htmlSigText" = signatures.alias; "mail.identity.id_${id}.htmlSigText" = signatures.MrFortem;
}; };
}; };
}; };
@ -125,15 +117,10 @@ in {
profiles.tdpeuter = { profiles.tdpeuter = {
isDefault = true; isDefault = true;
settings = { settings = {
# View "mailnews.default_sort_order" = 2; # Sort descending
"mailnews.default_sort_order" = 2; # Sort descending
"mailnews.mark_message_read.delay" = true; "mailnews.mark_message_read.delay" = true;
"mailnews.start_page.enabled" = false; "mailnews.start_page.enabled" = false;
"mail.pane_config.dynamic" = 2; # Vertical view "mail.pane_config.dynamic" = 2; # Vertical view
# Encryption
"mail.openpgp.allow_external_gnupg" = true; # Enable YubiKey GPG signing
"mail.e2ee.auto_enable" = true; # Automatically enable encryption when possible.
}; };
}; };
}; };

View file

@ -7,14 +7,9 @@ in {
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
sops.secrets = lib.mkIf config.sisyphus.programs.sops.enable ( sops.secrets = lib.mkIf config.sisyphus.programs.sops.enable (
let let
HomeLab = { Hugo = {
format = "yaml"; format = "yaml";
sopsFile = ../../secrets/HomeLab.yaml; sopsFile = ../../secrets/Hugo.yaml;
owner = user;
};
personal = {
format = "yaml";
sopsFile = ../../secrets/personal.yaml;
owner = user; owner = user;
}; };
UGent = { UGent = {
@ -23,26 +18,17 @@ in {
owner = user; owner = user;
}; };
in { in {
"Hugo/ssh" = Hugo;
"UGent/HPC/ssh" = UGent; "UGent/HPC/ssh" = UGent;
# Git authentication "GitHub/ssh" = {
"Gitea/ssh" = personal; format = "yaml";
"GitHub/ssh" = personal; sopsFile = ../../secrets/GitHub.yaml;
owner = user;
};
"Hugo/Gitea/ssh" = Hugo;
"UGent/GitHub/ssh" = UGent; "UGent/GitHub/ssh" = UGent;
"UGent/SubGit/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;
}); });
}; };
} }

19
scripts/do-not-disturb.sh Executable file
View file

@ -0,0 +1,19 @@
#!/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) v)
# Get volume (don't use pamixer because that is way slower) # Get volume (don't use pamixer because that is way slower)
value=$( pactl get-sink-volume @DEFAULT_SINK@ \ value=$( amixer sget 'Master' \
| grep -o '[0-9]*%' \ | grep -o '\[[0-9]*%\]' \
| tr -d '%' \ | tr -d '][%' \
| head -n1 ) | head -n1 )
title="Volume: ${value}%" title="Volume: ${value}%"
category='sysinfo' category='sysinfo'
# If audio disabled, set value to zero. # If audio disabled, set value to zero.
if [ "$( pactl get-sink-mute @DEFAULT_SINK@ | grep -o '\(yes\|no\)' | head -n1 )" == 'yes' ] ; then if [ "$( amixer sget 'Master' | grep -o '\[\(on\|off\)\]' | head -n1 )" == "[off]" ] ; then
title="Volume: ${value}% (Disabled)" title="Volume: ${value}% (Disabled)"
value=0 value=0
fi fi

View file

@ -1,6 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Toggle light- or dark-mode for your applications # Toggle light- or dark-mode for your applications
# Usage: toggle [-m light|dark] [-g] # Usage: toggle [-m light|dark]
################# #################
### Variables ### ### Variables ###
@ -10,9 +10,7 @@ THEME_LIGHT='tdpeuter-light'
THEME_DARK='tdpeuter-dark' THEME_DARK='tdpeuter-dark'
THEME_DEFAULT="${THEME_LIGHT}" THEME_DEFAULT="${THEME_LIGHT}"
STATE_DIR="${HOME}/.local/state/sisyphus" STATE_FILE="${HOME}/.local/state/sisyphus/theme"
STATE_FILE="${STATE_DIR}/theme"
BG_DIR="${HOME}/Nextcloud/Afbeeldingen/wallpapers"
declare -A theme_next declare -A theme_next
theme_next[${THEME_LIGHT}]="${THEME_DARK}" theme_next[${THEME_LIGHT}]="${THEME_DARK}"
@ -22,12 +20,8 @@ declare -A gsettings_alt
gsettings_alt[${THEME_LIGHT}]='default' gsettings_alt[${THEME_LIGHT}]='default'
gsettings_alt[${THEME_DARK}]='prefer-dark' gsettings_alt[${THEME_DARK}]='prefer-dark'
declare -A gtk_theme
gtk_theme[${THEME_LIGHT}]='Adwaita'
gtk_theme[${THEME_DARK}]='Adwaita-dark'
declare -A wallpaper declare -A wallpaper
wallpaper[${THEME_LIGHT}]="bg-light" wallpaper[${THEME_LIGHT}]="bg"
wallpaper[${THEME_DARK}]="bg-dark" wallpaper[${THEME_DARK}]="bg-dark"
############# #############
@ -35,7 +29,7 @@ wallpaper[${THEME_DARK}]="bg-dark"
############# #############
# Parse options # Parse options
while getopts ":m:g" option; do while getopts ":m:" option; do
case "${option}" in case "${option}" in
m) m)
if [ "${OPTARG}" == 'light' ]; then if [ "${OPTARG}" == 'light' ]; then
@ -47,17 +41,6 @@ while getopts ":m:g" option; do
exit 1 exit 1
fi fi
;; ;;
g)
current_state="$(cat "${STATE_FILE}")"
next_state="${theme_next[${current_state}]}"
if [ "${current_state}" == "${THEME_DARK}" ]; then
class='activated'
percentage=100
fi
printf '{"alt": "%s", "tooltip": "Set theme to %s", "percentage": %d, "class": "%s"}' \
"${gsettings_alt[${current_state}]}" "${next_state}" "${percentage:=0}" "${class:="none"}"
exit 0
;;
*) *)
>&2 printf "Error: Invalid option: '%s'.\n" "${option}" >&2 printf "Error: Invalid option: '%s'.\n" "${option}"
exit 1 exit 1
@ -82,33 +65,9 @@ echo "${theme:=${THEME_DEFAULT}}" > "${STATE_FILE}"
### Set all themes ### ### Set all themes ###
###################### ######################
# Update terminal colors by sending it OSC sequences. # GNOME
# Alternatively, you could use theme.sh (https://github.com/lemnos/theme.sh)
# Function below loosely based on theme.sh and https://codeberg.org/dnkl/foot/issues/708
function update_terminal_colors() {
for pid in $(pgrep zsh); do
if [ "${theme}" == "${THEME_LIGHT}" ]; then
printf "\033]10;#000000\007" >> /proc/${pid}/fd/0
printf "\033]11;#ffffff\007" >> /proc/${pid}/fd/0
elif [ "${theme}" == "${THEME_DARK}" ]; then
printf "\033]10;#ffffff\007" >> /proc/${pid}/fd/0
printf "\033]11;#000000\007" >> /proc/${pid}/fd/0
fi
done
}
# Foot
if [ "$(command -v foot)" ] ; then
# Make color theme switch 'permanent'.
echo "include=~/.config/foot/themes/${theme}.ini" > ~/.config/foot/theme.ini &
# We will have to change the terminal colors ourselves.
update_terminal_colors &
fi
# GNOME (GTK)
if [ "$(command -v gsettings)" ]; then if [ "$(command -v gsettings)" ]; then
gsettings set org.gnome.desktop.interface color-scheme "${gsettings_alt[${theme}]}" & gsettings set org.gnome.desktop.interface color-scheme "${gsettings_alt[${theme}]}" &
gsettings set org.gnome.desktop.interface gtk-theme "${gtk_theme[${theme}]}" &
fi fi
# Kitty # Kitty
@ -118,13 +77,7 @@ fi
# Sway # Sway
if [ "$(command -v swaybg)" ]; then if [ "$(command -v swaybg)" ]; then
bg_path="${BG_DIR}/${wallpaper[${theme}]}" pkill swaybg && swaybg -i ~/Nextcloud/Afbeeldingen/wallpapers/${wallpaper[${theme}]} && 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 fi
# Vifm # Vifm

View file

@ -1,48 +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
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

View file

@ -1,50 +0,0 @@
#!/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

@ -1,229 +0,0 @@
# -*- conf -*-
# ~/.config/foot/foot.ini
# Include the correct color scheme
include=~/.config/foot/theme.ini
# shell=$SHELL (if set, otherwise user's default shell from /etc/passwd)
term=xterm-256color
# login-shell=no
# app-id=foot # globally set wayland app-id. Default values are "foot" and "footclient" for desktop and server mode
# title=foot
# locked-title=no
font=letter extended:size=10
# font-bold=<bold variant of regular font>
# font-italic=<italic variant of regular font>
# font-bold-italic=<bold+italic variant of regular font>
# font-size-adjustment=0.5
# line-height=<font metrics>
# letter-spacing=0
# horizontal-letter-offset=0
# vertical-letter-offset=0
# underline-offset=<font metrics>
# underline-thickness=<font underline thickness>
# box-drawings-uses-font-glyphs=no
dpi-aware=yes
# initial-window-size-pixels=700x500 # Or,
# initial-window-size-chars=<COLSxROWS>
# initial-window-mode=windowed
#pad=10x10 # optionally append 'center'
# resize-delay-ms=100
# notify=notify-send -a ${app-id} -i ${app-id} ${title} ${body}
# bold-text-in-bright=no
# word-delimiters=,│`|:"'()[]{}<>
# selection-target=primary
# workers=<number of logical CPUs>
# utmp-helper=/usr/lib/utempter/utempter # When utmp backend is libutempter (Linux)
# utmp-helper=/usr/libexec/ulog-helper # When utmp backend is ulog (FreeBSD)
[environment]
# name=value
[bell]
urgent=yes
notify=yes
visual=yes
# command=
# command-focused=no
[scrollback]
# lines=1000
# multiplier=3.0
# indicator-position=relative
# indicator-format=""
[url]
# launch=xdg-open ${url}
# label-letters=sadfjklewcmpgh
# osc8-underline=url-mode
# protocols=http, https, ftp, ftps, file, gemini, gopher
# uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[]
[cursor]
# style=block
# color=<inverse foreground/background>
# blink=no
# beam-thickness=1.5
# underline-thickness=<font underline thickness>
[mouse]
# hide-when-typing=no
# alternate-scroll-mode=yes
[touch]
# long-press-delay=400
[colors]
alpha=0.8
# background=242424
# foreground=ffffff
flash=b00020
# flash-alpha=0.5
## Normal/regular colors (color palette 0-7)
# regular0=242424 # black
# regular1=f62b5a # red
# regular2=47b413 # green
# regular3=e3c401 # yellow
# regular4=24acd4 # blue
# regular5=f2affd # magenta
# regular6=13c299 # cyan
# regular7=e6e6e6 # white
## Bright colors (color palette 8-15)
# bright0=616161 # bright black
# bright1=ff4d51 # bright red
# bright2=35d450 # bright green
# bright3=e9e836 # bright yellow
# bright4=5dc5f8 # bright blue
# bright5=feabf2 # bright magenta
# bright6=24dfc4 # bright cyan
# bright7=ffffff # bright white
## dimmed colors (see foot.ini(5) man page)
# dim0=<not set>
# ...
# dim7=<not-set>
## The remaining 256-color palette
# 16 = <256-color palette #16>
# ...
# 255 = <256-color palette #255>
## Misc colors
# selection-foreground=<inverse foreground/background>
# selection-background=<inverse foreground/background>
# jump-labels=<regular0> <regular3> # black-on-yellow
# scrollback-indicator=<regular0> <bright4> # black-on-bright-blue
# search-box-no-match=<regular0> <regular1> # black-on-red
# search-box-match=<regular0> <regular3> # black-on-yellow
# urls=<regular3>
[csd]
preferred=none
# size=26
# font=<primary font>
# color=<foreground color>
# hide-when-maximized=no
# double-click-to-maximize=yes
# border-width=0
# border-color=<csd.color>
# button-width=26
# button-color=<background color>
# button-minimize-color=<regular4>
# button-maximize-color=<regular2>
# button-close-color=<regular1>
[key-bindings]
# scrollback-up-page=Shift+Page_Up
# scrollback-up-half-page=none
# scrollback-up-line=none
# scrollback-down-page=Shift+Page_Down
# scrollback-down-half-page=none
# scrollback-down-line=none
# scrollback-home=none
# scrollback-end=none
# clipboard-copy=Control+Shift+c XF86Copy
# clipboard-paste=Control+Shift+v XF86Paste
# primary-paste=Shift+Insert
# search-start=Control+Shift+r
# font-increase=Control+plus Control+equal Control+KP_Add
# font-decrease=Control+minus Control+KP_Subtract
# font-reset=Control+0 Control+KP_0
# spawn-terminal=Control+Shift+n
# minimize=none
# maximize=none
# fullscreen=none
# pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none
# pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none
# pipe-selected=[xargs -r firefox] none
# show-urls-launch=Control+Shift+o
# show-urls-copy=none
# show-urls-persistent=none
# prompt-prev=Control+Shift+z
# prompt-next=Control+Shift+x
# unicode-input=Control+Shift+u
# noop=none
[search-bindings]
# cancel=Control+g Control+c Escape
# commit=Return
# find-prev=Control+r
# find-next=Control+s
# cursor-left=Left Control+b
# cursor-left-word=Control+Left Mod1+b
# cursor-right=Right Control+f
# cursor-right-word=Control+Right Mod1+f
# cursor-home=Home Control+a
# cursor-end=End Control+e
# delete-prev=BackSpace
# delete-prev-word=Mod1+BackSpace Control+BackSpace
# delete-next=Delete
# delete-next-word=Mod1+d Control+Delete
# extend-char=Shift+Right
# extend-to-word-boundary=Control+w Control+Shift+Right
# extend-to-next-whitespace=Control+Shift+w
# extend-line-down=Shift+Down
# extend-backward-char=Shift+Left
# extend-backward-to-word-boundary=Control+Shift+Left
# extend-backward-to-next-whitespace=none
# extend-line-up=Shift+Up
# clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste
# primary-paste=Shift+Insert
# unicode-input=none
# scrollback-up-page=Shift+Page_Up
# scrollback-up-half-page=none
# scrollback-up-line=none
# scrollback-down-page=Shift+Page_Down
# scrollback-down-half-page=none
# scrollback-down-line=none
# scrollback-home=none
# scrollback-end=none
[url-bindings]
# cancel=Control+g Control+c Control+d Escape
# toggle-url-visible=t
[text-bindings]
# \x03=Mod4+c # Map Super+c -> Ctrl+c
[mouse-bindings]
# scrollback-up-mouse=BTN_BACK
# scrollback-down-mouse=BTN_FORWARD
# selection-override-modifiers=Shift
# primary-paste=BTN_MIDDLE
# select-begin=BTN_LEFT
# select-begin-block=Control+BTN_LEFT
# select-extend=BTN_RIGHT
# select-extend-character-wise=Control+BTN_RIGHT
# select-word=BTN_LEFT-2
# select-word-whitespace=Control+BTN_LEFT-2
# select-quote = BTN_LEFT-3
# select-row=BTN_LEFT-4
# vim: ft=dosini

View file

@ -1,64 +0,0 @@
[colors]
# alpha=0.8
background=171717
foreground=dcdfe4
# flash=b00020
# flash-alpha=0.5
## Normal/regular colors (color palette 0-7)
regular0=242424 # black
# regular0=21222c
# regular1=f62b5a # red
regular1=c86564
regular2=47b413 # green
# regular2=b2bc68
regular3=e3c401 # yellow
# regular3=f7e03f
# regular4=24acd4 # blue
regular4=80a2be
regular5=f2affd # magenta
# color5 #b294bb
# regular6=13c299 # cyan
regular6=8abeb7
regular7=e6e6e6 # white
# regular7=ffffff
## Bright colors (color palette 8-15)
# bright0=616161 # bright black
# bright0=6272a4
# bright1=ff4d51 # bright red
# color9 #C86564
# bright2=35d450 # bright green
# color10 #B2BC68
# bright3=e9e836 # bright yellow
# color11 #f7e03f
# bright4=5dc5f8 # bright blue
# color12 #80A2BE
# bright5=feabf2 # bright magenta
# bright5=b294bb
# bright6=24dfc4 # bright cyan
# bright6=8abeb7
bright7=ffffff # bright white
## dimmed colors (see foot.ini(5) man page)
# dim0=<not set>
# ...
# dim7=<not-set>
## The remaining 256-color palette
# 16 = <256-color palette #16>
# ...
# 255 = <256-color palette #255>
## Misc colors
# selection-foreground=<inverse foreground/background>
# selection-foreground=000000
# selection-background=<inverse foreground/background>
# selection-background=fffacd
# jump-labels=<regular0> <regular3> # black-on-yellow
# scrollback-indicator=<regular0> <bright4> # black-on-bright-blue
# search-box-no-match=<regular0> <regular1> # black-on-red
# search-box-match=<regular0> <regular3> # black-on-yellow
# urls=<regular3>
urls=0087bd

View file

@ -1,64 +0,0 @@
[colors]
# alpha=0.8
background=fafafa
foreground=000000
# flash=b00020
# flash-alpha=0.5
## Normal/regular colors (color palette 0-7)
# regular0=242424 # black
# color0 #383A42
# regular1=f62b5a # red
# color1 #E45649
# regular2=47b413 # green
# color2 #40A14F
# regular3=e3c401 # yellow
# color3 #C18401
# regular4=24acd4 # blue
regular4=0184bc
# regular5=f2affd # magenta
# color5 #A626A4
# regular6=13c299 # cyan
# color6 #0997B3
# regular7=e6e6e6 # white
# color7 #FAFAFA
## Bright colors (color palette 8-15)
# bright0=616161 # bright black
# color8 #6272a4
# bright1=ff4d51 # bright red
# color9 #E45649
# bright2=35d450 # bright green
# color10 #40A14F
# bright3=e9e836 # bright yellow
# color11 #C18401
# bright4=5dc5f8 # bright blue
# color12 #0184BC
# bright5=feabf2 # bright magenta
# color13 #A626A4
# bright6=24dfc4 # bright cyan
# color14 #0997B3
# bright7=ffffff # bright white
# color15 #FAFAFA
## dimmed colors (see foot.ini(5) man page)
# dim0=<not set>
# ...
# dim7=<not-set>
## The remaining 256-color palette
# 16 = <256-color palette #16>
# ...
# 255 = <256-color palette #255>
## Misc colors
# selection-foreground=<inverse foreground/background>
selection-foreground=383a42
# selection-background=<inverse foreground/background>
selection-background=bfceff
# jump-labels=<regular0> <regular3> # black-on-yellow
# scrollback-indicator=<regular0> <bright4> # black-on-bright-blue
# search-box-no-match=<regular0> <regular1> # black-on-red
# search-box-match=<regular0> <regular3> # black-on-yellow
urls=f0f0f0

View file

@ -1,21 +1,16 @@
[user] [user]
name = "Tibo De Peuter" name = "Tibo De Peuter"
email = "tibo@depeuter.dev" email = "tibo.depeuter@gmail.com"
signingkey = "0x9B11F5243089DB5B"
[color] [color]
ui = true ui = true
[commit]
# Always sign commits
gpgsign = true
[core] [core]
editor = "vim"; editor = "vim";
excludesFile = "~/.config/git/ignore" excludesFile = "~/.config/git/ignore"
[help] [help]
autocorrect = 15 autocorrect = 20
[includeIf "gitdir:~/university/"] # Trailing backslash is necessary! [includeIf "gitdir:~/university/"] # Trailing backslash is necessary!
path = "~/.config/git/university" path = "~/.config/git/university"
@ -23,6 +18,3 @@
[init] [init]
defaultBranch = "main" defaultBranch = "main"
[safe]
directory = "/home/tdpeuter/university/sshfs"

View file

@ -1,3 +1,2 @@
[user] [user]
email = "tibo.depeuter@ugent.be" email = "tibo.depeuter@ugent.be"

View file

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

View file

@ -1,37 +0,0 @@
# 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

@ -1,7 +0,0 @@
# 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

@ -1,6 +0,0 @@
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

@ -1,164 +0,0 @@
# 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

@ -1,279 +0,0 @@
# ~/.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

@ -1,62 +0,0 @@
# ~/.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

@ -1,180 +0,0 @@
$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

@ -1,38 +0,0 @@
# 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

@ -1,10 +0,0 @@
# 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

@ -1,9 +0,0 @@
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,3 +1,9 @@
Host Hugo
User admin
HostName 192.168.0.11
IdentitiesOnly yes
IdentityFile /run/secrets/Hugo/ssh
Host HPC Host HPC
User vsc44995 User vsc44995
HostName login.hpc.ugent.be HostName login.hpc.ugent.be
@ -9,7 +15,7 @@ Host git.depeuter.dev
User git User git
HostName git.depeuter.dev HostName git.depeuter.dev
IdentitiesOnly yes IdentitiesOnly yes
IdentityFile /run/secrets/Gitea/ssh IdentityFile /run/secrets/Hugo/Gitea/ssh
Host github.com Host github.com
User git User git
@ -30,60 +36,3 @@ Host subgit.ugent.be
IdentityFile /run/secrets/UGent/SubGit/ssh IdentityFile /run/secrets/UGent/SubGit/ssh
CanonicalizeHostname yes # Ignore capitalization 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

@ -15,12 +15,10 @@ set {
$scrollUp button4 $scrollUp button4
$scrollDown button5 $scrollDown button5
# $term kitty || alacritty || foot $term kitty || alacritty || foot
$term foot $menu j4-dmenu-desktop --dmenu "rofi -dmenu -i"
$menu j4-dmenu-desktop --dmenu="rofi -dmenu -i" --no-generic --usage-log="/home/tdpeuter/.local/state/dmenu.log" --term=$term
# TODO Find better location and better way to reference this.
$window_switcher /home/tdpeuter/projects/fzf-jump/new.sh $window_switcher /home/tdpeuter/projects/fzf-jump/new.sh
$lock swaylock -f $lock swaylock -f
} }
include { include {
@ -49,8 +47,6 @@ for_window {
[window_role="webconsole"] floating enable [window_role="webconsole"] floating enable
[window_type="dialog"] floating enable [window_type="dialog"] floating enable
[window_type="menu"] floating enable [window_type="menu"] floating enable
[app_id="qalculate-gtk"] floating enable, border pixel 1
} }
exec dbus-sway-environment exec dbus-sway-environment
@ -61,9 +57,5 @@ exec wlsunset -l 50.50 -L 4.00 -t 3000 -T 6500
exec gnome-keyring-daemon --start --components=secrets # Secrets exec gnome-keyring-daemon --start --components=secrets # Secrets
exec dunst --verbosity crit # Notification manager exec dunst --verbosity crit # Notification manager
exec swayidle -w exec swayidle -w
exec waycorner
exec nextcloud --background exec nextcloud --background
# SwayFX
blur enable

View file

@ -1,8 +1,3 @@
input type:keyboard {
xkb_layout "us","be"
xkb_variant "altgr-intl","iso-alternate"
}
input type:touchpad { input type:touchpad {
natural_scroll enabled natural_scroll enabled
scroll_factor 0.8 scroll_factor 0.8
@ -11,10 +6,6 @@ input type:touchpad {
} }
output * { output * {
bg "${HOME}/.local/state/sisyphus/bg" fill bg "~/Nextcloud/Afbeeldingen/wallpapers/bg" fill
} }
# Vertical display
output "Dell Inc. DELL P2214H 29C2937M4YTL" {
transform 270
}

View file

@ -1,8 +1,7 @@
set $notify ~/projects/sisyphus/scripts/notify.sh set $notify ~/projects/sisyphus/scripts/notify.sh
# Focus
bindsym { bindsym {
# Focus
$flag+$up focus up $flag+$up focus up
$flag+$right focus right $flag+$right focus right
$flag+$down focus down $flag+$down focus down
@ -15,8 +14,10 @@ bindsym {
$flag+p focus parent $flag+p focus parent
$flag+space focus mode_toggle $flag+space focus mode_toggle
}
# Move windows # Move windows
bindsym {
$flag+Shift+$up move up $flag+Shift+$up move up
$flag+Shift+$right move right $flag+Shift+$right move right
$flag+Shift+$down move down $flag+Shift+$down move down
@ -31,8 +32,10 @@ bindsym {
$flag+KP_Next move scratchpad $flag+KP_Next move scratchpad
$flag+Prior scratchpad show $flag+Prior scratchpad show
$flag+KP_Prior scratchpad show $flag+KP_Prior scratchpad show
}
# Layouts # Layouts
bindsym {
$flag+z layout toggle split $flag+z layout toggle split
$flag+x layout tabbed $flag+x layout tabbed
$flag+c split h $flag+c split h
@ -52,22 +55,21 @@ bindsym {
# Workspaces # Workspaces
set { set {
$ws1 "1:1" $ws1 "1:1"
$ws2 "2:2" $ws2 "2:2"
$ws3 "3:3" $ws3 "3:3"
$ws4 "4:4" $ws4 "4:4"
$ws5 "5:5" $ws5 "5:5"
$ws6 "6:6" $ws6 "6:6"
$ws7 "7:7" $ws7 "7:7"
$ws8 "8:8" $ws8 "8:8"
$ws9 "9:9" $ws9 "9:9"
$ws10 "10:10" $ws10 "10:10"
$ws11 "11:Soc" $ws11 "11:Soc"
$ws12 "12:Ent" $ws12 "12:Ent"
} }
bindsym { bindsym {
# Focus a specific workspace
$flag+1 workspace $ws1 $flag+1 workspace $ws1
$flag+2 workspace $ws2 $flag+2 workspace $ws2
$flag+3 workspace $ws3 $flag+3 workspace $ws3
@ -81,7 +83,6 @@ bindsym {
$flag+minus workspace $ws11 $flag+minus workspace $ws11
$flag+equal workspace $ws12 $flag+equal workspace $ws12
# Move window to a specific workspace
$flag+Shift+1 move container to workspace $ws1, workspace $ws1 $flag+Shift+1 move container to workspace $ws1, workspace $ws1
$flag+Shift+2 move container to workspace $ws2, workspace $ws2 $flag+Shift+2 move container to workspace $ws2, workspace $ws2
$flag+Shift+3 move container to workspace $ws3, workspace $ws3 $flag+Shift+3 move container to workspace $ws3, workspace $ws3
@ -95,35 +96,20 @@ bindsym {
$flag+Shift+minus move container to workspace $ws11, workspace $ws11 $flag+Shift+minus move container to workspace $ws11, workspace $ws11
$flag+Shift+equal move container to workspace $ws12, workspace $ws12 $flag+Shift+equal move container to workspace $ws12, workspace $ws12
# Go through workspaces in order
$flag+Control+$left workspace prev_on_output $flag+Control+$left workspace prev_on_output
$flag+Control+$right workspace next_on_output $flag+Control+$right workspace next_on_output
$flag+Control+Left workspace prev_on_output $flag+Control+Left workspace prev_on_output
$flag+Control+Right workspace next_on_output $flag+Control+Right workspace next_on_output
--whole-window $flag+$scrollUp workspace prev_on_output
--whole-window $flag+$scrollDown workspace next_on_output
$flag+Control+Shift+$left move container to workspace prev_on_output, workspace prev_on_output $flag+Control+Shift+$left move container to workspace prev_on_output, workspace prev_on_output
$flag+Control+Shift+$right move container to workspace next_on_output, workspace next_on_output $flag+Control+Shift+$right move container to workspace next_on_output, workspace next_on_output
$flag+Control+Shift+Left move container to workspace prev_on_output, workspace prev_on_output $flag+Control+Shift+Left move container to workspace prev_on_output, workspace prev_on_output
$flag+Control+Shift+Right move container to workspace next_on_output, workspace next_on_output $flag+Control+Shift+Right move container to workspace next_on_output, workspace next_on_output
# Also GNOME-like keybinds
$flag+$alt+$left workspace prev_on_output
$flag+$alt+$right workspace next_on_output
$flag+$alt+Left workspace prev_on_output
$flag+$alt+Right workspace next_on_output
$flag+$alt+Shift+$left move container to workspace prev_on_output, workspace prev_on_output
$flag+$alt+Shift+$right move container to workspace next_on_output, workspace next_on_output
$flag+$alt+Shift+Left move container to workspace prev_on_output, workspace prev_on_output
$flag+$alt+Shift+Right move container to workspace next_on_output, workspace next_on_output
# Use your mouse to scroll between workspaces
--whole-window $flag+$scrollUp workspace prev_on_output
--whole-window $flag+$scrollDown workspace next_on_output
} }
bindgesture { bindgesture {
@ -133,40 +119,17 @@ bindgesture {
# Outputs # Outputs
bindsym { bindsym {
# Use "left" and "up" at the same time to mimic "previous" $flag+Control+$up focus output up
# Use "right" and "down" at the same time to mimic "next" $flag+Control+$down focus output down
# Though this does not work when using multiple screens, it's an intermediary solution until Sway supports "output next/previous"
$flag+Control+$up focus output left, focus output up
$flag+Control+$down focus output right, focus output down
$flag+Control+Up focus output left, focus output up $flag+Control+Up focus output up
$flag+Control+Down focus output right, focus output down $flag+Control+Down focus output down
$flag+$alt+$up focus output left, focus output up $flag+Control+Shift+$up move container to output up, focus output up
$flag+$alt+$down focus output right, focus output down $flag+Control+Shift+$down move container to output down, focus output down
$flag+$alt+Up focus output left, focus output up $flag+Control+Shift+Up move container to output up, focus output up
$flag+$alt+Down focus output right, focus output down $flag+Control+Shift+Down move container to output down, focus output down
$flag+Control+Shift+$up move container to output left, focus output left \
move container to output up, focus output up
$flag+Control+Shift+$down move container to output right, focus output right \
move container to output down, focus output down
$flag+Control+Shift+Up move container to output left, focus output left \
move container to output up, focus output up
$flag+Control+Shift+Down move container to output right, focus output right \
move container to output down, focus output down
$flag+$alt+Shift+$up move container to output left, focus output left \
move container to output up, focus output up
$flag+$alt+Shift+$down move container to output right, focus output right \
move container to output down, focus output down
$flag+$alt+Shift+Up move container to output left, focus output left \
move container to output up, focus output up
$flag+$alt+Shift+Down move container to output right, focus output right \
move container to output down, focus output down
} }
# System # System
@ -196,6 +159,7 @@ bindsym --locked {
bindgesture hold:3 exec playerctl play-pause bindgesture hold:3 exec playerctl play-pause
# Shortcuts # Shortcuts
bindsym { bindsym {
# Reload sway # Reload sway
@ -206,30 +170,26 @@ bindsym {
-B 'Yes, exit sway' 'swaymsg exit' -B 'Yes, exit sway' 'swaymsg exit'
# Kill focused window # Kill focused window
$flag+q kill $flag+q kill
# Start a terminal # Start a terminal
$flag+Return exec $term $flag+Return exec $term
Control+$alt+t exec $term $alt+space exec $menu
$alt+Tab focus prev
$alt+space exec $menu $flag+Tab exec $window_switcher
$alt+Tab focus prev
$flag+Tab exec $window_switcher
--whole-window $alt+$scrollUp focus prev
--whole-window $alt+$scrollDown focus next
# Lock the screen # Lock the screen
$flag+Delete exec $lock $flag+Delete exec $lock
# File explorer # File explorer
$flag+e exec $term -e vifm $flag+e exec $term -e vifm
# Internet browser
$flag+i exec firefox
} }
bindgesture { bindgesture {
# Also show the bar, hide when finished swipe:3:up exec $window_switcher
swipe:3:up bar hidden_state show, exec "$window_switcher; swaymsg bar hidden_state hide" swipe:4:up exec $menu
swipe:4:up exec "$menu; swaymsg bar hidden_state hide"
# Cancel and hide bar # Cancel
swipe:down exec pkill rofi, bar hidden_state hide swipe:down exec pkill rofi
} }

View file

@ -5,51 +5,42 @@
set $default "default" set $default "default"
# Resizing # Resizing
set $mode_resize "Resize" set $resize "Resize"
bindsym $flag+r mode $mode_resize bindsym $flag+r mode $resize
mode $mode_resize { mode $resize bindsym {
bindsym { $right resize grow width 10 px or 10 ppt
$right resize grow width 10 px or 10 ppt $up resize grow height 10 px or 10 ppt
$up resize grow height 10 px or 10 ppt $left resize shrink width 10 px or 10 ppt
$left resize shrink width 10 px or 10 ppt $down resize shrink height 10 px or 10 ppt
$down resize shrink height 10 px or 10 ppt
Right resize grow width 10 px or 10 ppt Right resize grow width 10 px or 10 ppt
Up resize grow height 10 px or 10 ppt Up resize grow height 10 px or 10 ppt
Left resize shrink width 10 px or 10 ppt Left resize shrink width 10 px or 10 ppt
Down resize shrink height 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+$right resize grow width 50 px or 50 ppt
Shift+$up resize grow height 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+$left resize shrink width 50 px or 50 ppt
Shift+$down resize shrink height 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+Right resize grow width 50 px or 50 ppt
Shift+Up resize grow height 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+Left resize shrink width 50 px or 50 ppt
Shift+Down resize shrink height 50 px or 50 ppt Shift+Down resize shrink height 50 px or 50 ppt
$flag+$right move right $flag+$right move right
$flag+$up move up $flag+$up move up
$flag+$left move left $flag+$left move left
$flag+$down move down $flag+$down move down
$flag+Right move right $flag+Right move right
$flag+Up move up $flag+Up move up
$flag+Left move left $flag+Left move left
$flag+Down move down $flag+Down move down
$flag+r mode $default Return mode $default
Escape mode $default Escape mode $default
Return mode $default $flag+r 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 # System actions
@ -62,23 +53,9 @@ mode $mode_system bindsym {
r mode $default, exec systemctl reboot r mode $default, exec systemctl reboot
Shift+s mode $default, exec systemctl poweroff -i Shift+s mode $default, exec systemctl poweroff -i
Control+$alt+Delete mode $default
Escape mode $default
Return mode $default Return mode $default
} Escape mode $default
Control+$alt+Delete 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 # Screenshots
@ -95,23 +72,17 @@ mode $mode_screenshot bindsym {
Shift+s exec grimshot --notify save screen $save_format, mode $default Shift+s exec grimshot --notify save screen $save_format, mode $default
Print exec grimshot --notify save screen $save_format, mode $default Print exec grimshot --notify save screen $save_format, mode $default
Escape mode $default
Return mode $default Return mode $default
Escape mode $default
} }
# Launcher set $mode_preferences "Toggle (d)ark mode, (s)unset, (n)otification"
set $mode_launcher "Launch (f)irefox, (s)potify or (t)hunderbird." bindsym $alt+end mode $mode_preferences {
bindsym $flag+o mode $mode_launcher d exec "${SCRIPT_DIR}/toggle-light-dark.sh", mode $default
mode $mode_launcher bindsym { s exec "${SCRIPT_DIR}/sunset.sh", mode $default
f exec firefox, mode $default n exec "${SCRIPT_DIR}/do-not-disturb.sh", mode $default
t exec thunderbird, mode $default
$flag+o mode $default Return mode $default
Escape mode $default Escape mode $default
Return mode $default $alt+end 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,10 +15,6 @@ default_border pixel 1
default_floating_border normal 1 default_floating_border normal 1
hide_edge_borders smart hide_edge_borders smart
smart_borders on smart_borders on
gaps {
inner 5
outer 3
}
# Mimic no titles by setting the text color to background color # Mimic no titles by setting the text color to background color
# border backgr. text indic. child_border # border backgr. text indic. child_border

View file

@ -2,55 +2,41 @@
# .config/swaylock/config # .config/swaylock/config
# #
#indicator indicator
#indicator-radius=200 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
image=${ASSETS_DIR}/bluescreen.png 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
# Styling # Styling
color=000000 # The default background color when no image could be loaded
font=letter extended font=letter extended
text-color=ffffff text-color=ffffff
text-clear-color=ffffff text-clear-color=ffffff
text-caps-lock-color=ffffff text-wrong-color=eb4d4b
text-wrong-color=bd2024
layout-text-color=ffffff
# Make all the other stuff invisible # Make all the other stuff invisible
inside-color=00000000
inside-clear-color=00000000
inside-caps-lock-color=00000000
inside-ver-color=00000000
inside-wrong-color=00000000
key-hl-color=00000000 key-hl-color=00000000
layout-bg-color=00000000 separator-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-color=00000000
ring-clear-color=00000000 ring-clear-color=00000000
ring-caps-lock-color=00000000
ring-ver-color=00000000 ring-ver-color=00000000
ring-wrong-color=00000000 ring-wrong-color=00000000
separator-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-ver-color=00000000
inside-wrong-color=00000000
text-ver-color=00000000 text-ver-color=00000000

View file

@ -1,87 +0,0 @@
" vimrc file for following the coding standards specified in PEP 7 & 8.
"
" To use this file, source it in your own personal .vimrc file (``source
" <filename>``) or, if you don't have a .vimrc file, you can just symlink to it
" (``ln -s <this file> ~/.vimrc``). All options are protected by autocmds
" (read below for an explanation of the command) so blind sourcing of this file
" is safe and will not affect your settings for non-Python or non-C files.
"
"
" All setting are protected by 'au' ('autocmd') statements. Only files ending
" in .py or .pyw will trigger the Python settings while files ending in *.c or
" *.h will trigger the C settings. This makes the file "safe" in terms of only
" adjusting settings for Python and C files.
"
" Only basic settings needed to enforce the style guidelines are set.
" Some suggested options are listed but commented out at the end of this file.
" Number of spaces that a pre-existing tab is equal to.
" For the amount of space used for a new tab use shiftwidth.
au BufRead,BufNewFile *py,*pyw,*.c,*.h set tabstop=8
" What to use for an indent.
" This will affect Ctrl-T and 'autoindent'.
" Python: 4 spaces
" C: tabs (pre-existing files) or 4 spaces (new files)
au BufRead,BufNewFile *.py,*pyw set shiftwidth=4
au BufRead,BufNewFile *.py,*.pyw set expandtab
fu Select_c_style()
if search('^\t', 'n', 150)
set shiftwidth=8
set noexpandtab
el
set shiftwidth=4
set expandtab
en
endf
au BufRead,BufNewFile *.c,*.h call Select_c_style()
au BufRead,BufNewFile Makefile* set noexpandtab
" Use the below highlight group when displaying bad whitespace is desired.
highlight BadWhitespace ctermbg=red guibg=red
" Display tabs at the beginning of a line in Python mode as bad.
au BufRead,BufNewFile *.py,*.pyw match BadWhitespace /^\t\+/
" Make trailing whitespace be flagged as bad.
au BufRead,BufNewFile *.py,*.pyw,*.c,*.h match BadWhitespace /\s\+$/
" Wrap text after a certain number of characters
" Python: 79
" C: 79
au BufRead,BufNewFile *.py,*.pyw,*.c,*.h set textwidth=79
" Turn off settings in 'formatoptions' relating to comment formatting.
" - c : do not automatically insert the comment leader when wrapping based on
" 'textwidth'
" - o : do not insert the comment leader when using 'o' or 'O' from command mode
" - r : do not insert the comment leader when hitting <Enter> in insert mode
" Python: not needed
" C: prevents insertion of '*' at the beginning of every line in a comment
au BufRead,BufNewFile *.c,*.h set formatoptions-=c formatoptions-=o formatoptions-=r
" Use UNIX (\n) line endings.
" Only used for new files so as to not force existing files to change their
" line endings.
" Python: yes
" C: yes
au BufNewFile *.py,*.pyw,*.c,*.h set fileformat=unix
" ----------------------------------------------------------------------------
" The following section contains suggested settings. While in no way required
" to meet coding standards, they are helpful.
" Set the default file encoding to UTF-8: ``set encoding=utf-8``
" Puts a marker at the beginning of the file to differentiate between UTF and
" UCS encoding (WARNING: can trick shells into thinking a text file is actually
" a binary file when executing the text file): ``set bomb``
" For full syntax highlighting:
"``let python_highlight_all=1``
"``syntax on``
" Automatically indent based on file type: ``filetype indent on``
" Keep indentation level from previous line: ``set autoindent``
" Folding based on indentation: ``set foldmethod=indent``

View file

@ -3,7 +3,6 @@
" "
source ~/.vim/theme.conf source ~/.vim/theme.conf
source ~/.vim/source/python
set autoindent set autoindent
set conceallevel=2 set conceallevel=2
@ -13,7 +12,6 @@ set linebreak
set mouse=a set mouse=a
set nocompatible set nocompatible
set number set number
set omnifunc=ale#completion#OmniFunc
set path+=** set path+=**
set relativenumber set relativenumber
set scrolloff=3 set scrolloff=3
@ -73,17 +71,12 @@ endif
" PLUGINS --------------------------------------------------------------- {{{ " PLUGINS --------------------------------------------------------------- {{{
call plug#begin('~/.vim/plugins') call plug#begin()
Plug 'catppuccin/vim', { 'as': 'catppuccin' }
Plug 'dense-analysis/ale' Plug 'dense-analysis/ale'
Plug 'NerdyPepper/statix'
Plug 'prabirshrestha/vim-lsp'
Plug 'sheerun/vim-polyglot'
Plug 'vifm/vifm.vim' Plug 'vifm/vifm.vim'
Plug 'catppuccin/vim', { 'as': 'catppuccin' }
" Coq Plug 'NerdyPepper/statix'
Plug 'whonore/Coqtail'
call plug#end() call plug#end()

View file

@ -0,0 +1,41 @@
//
// ~/.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"],
"modules-center": ["clock"],
"include": [
// Import modules (!)
"~/.config/waybar/modules.json"
],
}]

View file

@ -1,63 +0,0 @@
/* * * * * * * * * * * * * * * * *
* *
* ~/.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

@ -1,7 +1,7 @@
{ {
"modules-left": [ "modules-left": [
"idle_inhibitor", "idle_inhibitor",
"mpris" "custom/media"
], ],
"modules-center": [ "modules-center": [
"sway/workspaces" "sway/workspaces"

View file

@ -1,16 +1,22 @@
{ {
"modules-left": [ "modules-left": [
"sway/workspaces", "sway/workspaces",
"custom/scratchpad-indicator", "idle_inhibitor",
"group/system" "custom/light-dark-toggle",
"custom/night-light-toggle",
"custom/toggle-notifications",
"custom/media"
], ],
"modules-right": [ "modules-right": [
"tray", "memory",
"sway/language", "cpu",
"bluetooth", "temperature",
"network", "custom/sep",
"pulseaudio", "bluetooth",
"group/battery", "network",
"mpris" "pulseaudio",
"battery",
"custom/sep",
"tray"
] ]
} }

View file

@ -0,0 +1,131 @@
#!/usr/bin/env python3
# From:
# https://github.com/Alexays/Waybar/blob/master/resources/custom_modules/mediaplayer.py
import argparse
import logging
import sys
import signal
import gi
import json
gi.require_version('Playerctl', '2.0')
from gi.repository import Playerctl, GLib
logger = logging.getLogger(__name__)
def write_output(text, player):
logger.info('Writing output')
output = {'text': text,
'class': 'custom-' + player.props.player_name,
'alt': player.props.player_name}
sys.stdout.write(json.dumps(output) + '\n')
sys.stdout.flush()
def on_play(player, status, manager):
logger.info('Received new playback status')
on_metadata(player, player.props.metadata, manager)
def on_metadata(player, metadata, manager):
logger.info('Received new metadata')
track_info = ''
if player.props.player_name == 'spotify' and \
'mpris:trackid' in metadata.keys() and \
':ad:' in player.props.metadata['mpris:trackid']:
track_info = 'AD PLAYING'
elif player.get_artist() != '' and player.get_title() != '':
track_info = '{artist} - {title}'.format(artist=player.get_artist(),
title=player.get_title())
else:
track_info = player.get_title()
if player.props.status != 'Playing' and track_info:
track_info = '' + track_info
write_output(track_info, player)
def on_player_appeared(manager, player, selected_player=None):
if player is not None and (selected_player is None or player.name == selected_player):
init_player(manager, player)
else:
logger.debug("New player appeared, but it's not the selected player, skipping")
def on_player_vanished(manager, player):
logger.info('Player has vanished')
sys.stdout.write('\n')
sys.stdout.flush()
def init_player(manager, name):
logger.debug('Initialize player: {player}'.format(player=name.name))
player = Playerctl.Player.new_from_name(name)
player.connect('playback-status', on_play, manager)
player.connect('metadata', on_metadata, manager)
manager.manage_player(player)
on_metadata(player, player.props.metadata, manager)
def signal_handler(sig, frame):
logger.debug('Received signal to stop, exiting')
sys.stdout.write('\n')
sys.stdout.flush()
# loop.quit()
sys.exit(0)
def parse_arguments():
parser = argparse.ArgumentParser()
# Increase verbosity with every occurrence of -v
parser.add_argument('-v', '--verbose', action='count', default=0)
# Define for which player we're listening
parser.add_argument('--player')
return parser.parse_args()
def main():
arguments = parse_arguments()
# Initialize logging
logging.basicConfig(stream=sys.stderr, level=logging.DEBUG,
format='%(name)s %(levelname)s %(message)s')
# Logging is set by default to WARN and higher.
# With every occurrence of -v it's lowered by one
logger.setLevel(max((3 - arguments.verbose) * 10, 0))
# Log the sent command line arguments
logger.debug('Arguments received {}'.format(vars(arguments)))
manager = Playerctl.PlayerManager()
loop = GLib.MainLoop()
manager.connect('name-appeared', lambda *args: on_player_appeared(*args, arguments.player))
manager.connect('player-vanished', on_player_vanished)
signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGTERM, signal_handler)
signal.signal(signal.SIGPIPE, signal.SIG_DFL)
for player in manager.props.player_names:
if arguments.player is not None and arguments.player != player.name:
logger.debug('{player} is not the filtered player, skipping it'
.format(player=player.name)
)
continue
init_player(manager, player)
loop.run()
if __name__ == '__main__':
main()

View file

@ -1,80 +0,0 @@
@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,401 +2,161 @@
"battery": { "battery": {
"format": "{capacity}% {icon}", "format": "{capacity}% {icon}",
"format-alt": "{time} {icon}", "format-alt": "{time} {icon}",
"format-charging": "{capacity}% \ue55b", /* */ "format-charging": "{capacity}% \uf0e7 {icon}",
"format-icons": ["\uf244", "\uf243", "\uf242", "\uf241", "\uf240"],
"format-plugged": "{capacity}% \ue55c", "format-plugged": "{capacity}% \ue55c",
"format-icons": [ "states": {
"\uf244", /* */ "warning": 30,
"\uf243", /* */ "critical": 15
"\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": { "bluetooth": {
"format-disabled": "\uf294", /* */ "format-disabled": "<big>\uf294</big>",
"format-off": "\uf294", /* */ "format-off": "\uf294",
"format-on": "<big>\uf294</big>", /* */ "format-on": "<big>\uf294</big>",
"format-connected": "<big>\uf294</big>c", /* c */ "format-connected": "<big>\uf294</big>c",
"max-length": 10.3, "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": "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": "{status}",
"tooltip-format-on": "{status}, no devices connected", "tooltip-format-on": "{status}, no devices connected",
"tooltip-format-connected": "{status} ({num_connections}):\n{device_enumerate}", "tooltip-format-connected": "{status} ({num_connections}):\n{device_enumerate}",
"tooltip-format-enumerate-connected": "{device_alias} ({device_address})", "tooltip-format-enumerate-connected": "{device_alias} ({device_address})",
"tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}" "tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}"
}, },
"clock#center": { "clock": {
"format": "{:%H:%M}", "format": "{:%H:%M}",
"format-alt": "{:%a %b %d, %Y, %R}", "format-alt": "{:%d/%m/%Y %H:%M}",
"timezone": "Europe/Brussels", "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"
}
}, },
"clock#bar": { "custom/browser": {
"format": "{:%a %b %d, %R}", "format": "\uf120",
"timezone": "Europe/Brussels", "on-click": "dmenu_run",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>", "tooltip-format": "Launch an application"
"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/control-center": { "custom/media": {
"format": "\uf085", /* */ "escape": true,
"tooltip": false "exec": "~/.config/waybar/mediaplayer.py 2> /dev/null",
}, "format": "{icon} {}",
"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 {}",
"on-click": "exec swaymsg 'scratchpad show'",
"on-click-right": "exec swaymsg 'move scratchpad'"
},
"custom/system-lock": {
"format": "\uf09c", /* */
"tooltip": true,
"tooltip-format": "Lock device",
"on-click": "swaylock --daemonize"
},
"custom/system-sleep": {
"format": "\uf186", /* */
"tooltip": true,
"tooltip-format": "Put device to sleep",
"on-click": "swaylock --daemonize; systemctl suspend"
},
"custom/system-hibernate": {
"format": "\uf2dc", /* */
"tooltip": true,
"tooltip-format": "Hibernate device",
"on-click": "swaylock --daemonize; systemctl hibernate"
},
"custom/system-reboot": {
"format": "\uf0e2", /* */
"tooltip": true,
"tooltip-format": "Reboot device",
"on-click": "systemctl reboot"
},
"custom/system-shutdown": {
"format": "\uf011", /* */
"tooltip": true,
"tooltip-format": "Shutdown device",
"on-click": "systemctl poweroff -i"
},
"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": { "format-icons": {
"default": "\uf185", "default": "\uf51f",
"prefer-dark": "\uf005" "spotify": "\uf1bc"
}, },
"max-length": 40,
"on-click": "playerctl play-pause",
"return-type": "json"
},
"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/night-light-toggle": {
"on-click": "bash ${SCRIPT_DIR}/sunset.sh",
"tooltip-format": "Toggle night-light on or off",
"format": "\uf0eb ",
"tooltip": true "tooltip": true
}, },
"custom/toggle-notifications": { "custom/toggle-notifications": {
"exec": "bash ${SCRIPT_DIR}/toggle-notifications.sh -g", "on-click": "bash ${SCRIPT_DIR}/do-not-disturb.sh",
"interval": 60, "tooltip-format": "Toggle notifications",
"return-type": "json", "format": "\uf1f6 ",
"on-click": "bash ${SCRIPT_DIR}/toggle-notifications.sh",
"format": "{icon}",
"format-icons": {
"normal": "\uf0f3", /* */
"paused": "\uf1f6" /* */
},
"tooltip": true "tooltip": true
}, },
"custom/toggle-tailscale": { "cpu": {
"exec": "bash ${SCRIPT_DIR}/toggle-tailscale.sh -g", "format": "{usage}% \uf2db",
"interval": 60, "on-click": "kitty -e htop",
"return-type": "json",
"on-click": "bash ${SCRIPT_DIR}/toggle-tailscale.sh",
"format": "{icon}",
"format-icons": {
"disconnected": "\ue50b",
"connected": "\ue509",
},
"tooltip": true "tooltip": true
}, },
"group/control-center": {
"orientation": "inherit",
"modules": [
"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"
}
},
"group/workspaces": {
"orientation": "inherit",
"modules": [
"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": { "idle_inhibitor": {
"format": "{icon}", "format": "{icon}",
"format-icons": { "format-icons": {
"activated": "\uf06e", /* */ "activated": "\uf06e",
"deactivated": "\uf070" /* */ "deactivated": "\uf070"
}, },
"tooltip": false "tooltip": false
}, },
"keyboard-state#capslock": { "memory": {
"capslock": true, "format": "{}% \uf1c0",
"format": { "on-click": "kitty -e zenith"
"capslock": "{icon}"
},
"format-icons": {
"locked": "\uf11c", /* */
"unlocked": ""
}
},
"keyboard-state#numlock": {
"numlock": true,
"format": {
"numlock": "{icon}"
},
"format-icons": {
"locked": "\uf1ec", /* */
"unlocked": ""
}
},
"mpris": {
"format": "{player_icon} {dynamic}",
"format-paused": "{status_icon} <i>{dynamic}</i>",
"tooltip-format": "{player} ({status}) {title} - {artist} - {album}",
"player-icons": {
"default": "\uf8d9", /* */
"mpv": "\uf144", /* */
"spotify": "\uf1bc" /* */
},
"status-icons": {
"paused": "\uf04c" /* */
},
"dynamic-order": [
"title",
"artist"
],
"dynamic-len": 40
}, },
"network": { "network": {
"format-disconnected": "\uf127", /* */ "format-disconnected": "\uf127",
"format-ethernet": "\uf6ff", /* */ "format-ethernet": "\uf6ff {ifname}: {ipadds}/{cidr}",
"format-linked": "\uf0c1", /* */ "format-wifi": "\uf1eb",
"format-wifi": "{icon}",
"interval": 5, "interval": 5,
"tooltip": true, "on-click-right": "kitty -e nmtui",
"tooltip-format": "{ifname}: {ipaddr}", "tooltip-format": "{ifname}: {ipaddr}",
"tooltip-format-disconnected": "Disconnected", "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": { "sway/window": {
"format": "{title}", "max-length": 85
"max-length": 20,
"tooltip": true,
"all-outputs": true,
"icon": false,
"icon-size": 18,
"rewrite": {
".* - (.*)": "$1",
".* — (.*)": "$1"
}
}, },
"sway/workspaces": { "sway/workspaces": {
"all-outputs": false, "all-outputs": false,
"disable-scroll": true, "disable-scroll": true,
"format": "{icon}{name}", "format": "{icon}{name}",
"format-icons": { "format-icons": {
"default": "", "default": "", // Prevent showing workspace name literal.
"urgent": "\uf071 " /* */ "urgent": "\uf071 "
} },
// "persistent_workspaces": {
// "0:¯\\_(ツ)_/¯": []
// }
},
"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": { "tray": {
"icon-size": 16,
"show-passive-items": true,
"spacing": 10 "spacing": 10
} }
} }

View file

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

View file

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

View file

@ -1,118 +1,138 @@
/* * * * * * * * * * * * * * * * /*
* * * ~/.config/waybar/style.css
* ~/.config/waybar/style.css * *
* * * `otf-font-awesome` is required to be installed for icons.
* * * * * * * * * * * * * * * */ *
* Pick your stylesheet:
* - sharp.css
* - transparent.css
* - round.css
*/
@define-color background #C2C2C2; @define-color transparent-black rgba(23, 23, 23, 0.9);
@define-color foreground #171717; @define-color white #ecf0f1;
@define-color warning-red #eb4d4b;
/* Pantone / PMS 18-1559 TCX / Red Alert */ @define-color accent #00897b;
@define-color warning rgb(208, 52, 44);
/* Safety orange */
@define-color safety rgb(255, 103, 0);
* {
padding: 0 4px;
}
window#waybar { window#waybar {
/* background: linear-gradient(90deg, #CECECE 0%, #D1D1D1 10%, #C9C9C9 50%, #BBBBBB 90%, #BABABA 100%); */ font-family: font-awesome, letter, monospace;
font-family: letter, "Font Awesome 6 Free", font-awesome, monospace;
font-size: 13px; font-size: 13px;
font-weight: 600; -webkit-font-smoothing: antialiased;
transition-property: background-color;
transition-duration: .5s;
} }
.modules-right, #window, #workspaces {
.modules-right > widget:last-child { margin: 0 5px;
padding-right: 0; }
#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-media, #custom-light-dark-toggle, #custom-night-light-toggle, #custom-toggle-notifications,
#disk, #idle_inhibitor, #memory, #mode, #mpd, #network,
#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 {
margin-right: 0; margin-right: 0;
} }
#battery.charging { @keyframes blink {
to {
background-color: #ffffff;
color: #000000;
}
}
label:focus {
background-color: #000000;
}
/* Module specific colours */
#battery.charging, #battery.plugged {
color: #ffffff;
background-color: #26A65B; background-color: #26A65B;
color: #FFFFFF;
} }
#battery.critical:not(.charging) { #battery.critical:not(.charging) {
background-color: @warning; background-color: #f53c3c;
color: #FFFFFF; color: #ffffff;
animation-name: blink; animation-name: blink;
animation-duration: 0.5s; animation-duration: 0.5s;
animation-timing-function: steps(12); animation-timing-function: linear;
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-iteration-count: infinite;
animation-direction: alternate; animation-direction: alternate;
} }
#bluetooth.disabled, #bluetooth.disabled,
#bluetooth.off { #bluetooth.off,
opacity: 0.6; #network.disconnected,
}
#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;
}
#network.disconnected {
opacity: 0.6;
}
#privacy,
#privacy-item,
#privacy-item.screenshare,
#privacy-item.audio-in {
background-color: @safety;
}
#privacy-item.screenshare {
background-color: #000000;
}
#pulseaudio.muted { #pulseaudio.muted {
opacity: 0.6; opacity: 0.6;
} }
#systemd-failed-units.degraded { #custom-media {
background-color: @warning; color: #2a5c45;
background-color: #66cc99;
min-width: 100px;
}
#custom-media.custom-spotify {
background-color: #66cc99;
}
#custom-media.custom-vlc {
background-color: #ffa000;
} }
#temperature.critical { #temperature.critical {
background-color: @warning; background-color: #eb4d4b;
} }
#tray > .needs-attention { #custom_light-dark-toggle.activated,
-gtk-icon-effect: highlight; #idle_inhibitor.activated {
background-color: @warning; background-color: #ecf0f1;
color: #2d3436;
} }
#tray > .passive { #tray > .passive {
-gtk-icon-effect: dim; -gtk-icon-effect: dim;
} }
#workspaces button.urgent { #tray > .needs-attention {
background-color: @warning; -gtk-icon-effect: highlight;
color: white; background-color: #eb4d4b;
} }
@import "sharp.css";

View file

@ -35,7 +35,7 @@ add-zsh-hook precmd loadgit
# Backup line(s) # Backup line(s)
# PROMPT='%(!.%B%F{red}.%B%F{green}%n@)%m %F{blue}%(!.%1~.%~) ${vcs_info_msg_0_}%F{blue}%(!.#.$)%k%b%f ' # PROMPT='%(!.%B%F{red}.%B%F{green}%n@)%m %F{blue}%(!.%1~.%~) ${vcs_info_msg_0_}%F{blue}%(!.#.$)%k%b%f '
# PROMPT='%(!.%B%F{red}.%B%F{green}%n@)%m %{$reset_color%}%F{cyan}%c %B${vcs_info_msg_0_}%F{green}%(!.#.$)%k%b%f ' # PROMPT='%(!.%B%F{red}.%B%F{green}%n@)%m %{$reset_color%}%F{cyan}%c %B${vcs_info_msg_0_}%F{green}%(!.#.$)%k%b%f '
PROMPT='%(!.%B%F{red}%m .)%{$reset_color%}%F{cyan}%c %B${vcs_info_msg_0_}%(?.%F{green}%(!.#.$).%F{red}%?)%k%b%f ' PROMPT='%(!.%B%F{red}%m .)%{$reset_color%}%F{cyan}%c %B${vcs_info_msg_0_}%F{green}%(!.#.$)%k%b%f '
# PROMPT='%{$fg_bold[green]%}[%n@%m%{$reset_color%} %{$fg[cyan]%}%c%{$reset_color%}$(git_prompt_info)%{$fg_bold[green]%}]%{$reset_color%}$ ' # PROMPT='%{$fg_bold[green]%}[%n@%m%{$reset_color%} %{$fg[cyan]%}%c%{$reset_color%}$(git_prompt_info)%{$fg_bold[green]%}]%{$reset_color%}$ '

View file

@ -6,8 +6,6 @@ fpath+="$HOME/.zsh/plugins/cmdtime"
plugins=(dirhistory git screen) plugins=(dirhistory git screen)
ZSH_CUSTOM="$HOME/.oh-my-zsh" ZSH_CUSTOM="$HOME/.oh-my-zsh"
ZSH_THEME="tdpeuter" ZSH_THEME="tdpeuter"
# Disable automatically updating
zstyle ':omz:update' mode disabled
source $ZSH_CUSTOM/oh-my-zsh.sh source $ZSH_CUSTOM/oh-my-zsh.sh
if [[ -f "$HOME/.zsh/plugins/cmdtime/cmdtime.plugin.zsh" ]]; then if [[ -f "$HOME/.zsh/plugins/cmdtime/cmdtime.plugin.zsh" ]]; then
@ -51,15 +49,11 @@ fi
alias cp='cp -i' alias cp='cp -i'
alias df='df -h' alias df='df -h'
alias free='free -m' alias free='free -m'
alias gs='git status --short' alias gs='git status'
alias hgrep='history | grep' alias hgrep='history | grep'
alias ll='ls -la' alias ll='ls -la'
alias mkdir='mkdir -pv'
alias more='less' alias more='less'
alias mv='mv -i'
alias np='nano -w PKGBUILD' alias np='nano -w PKGBUILD'
alias rm='rm -I --preserve-root'
alias zip='zip -r'
alias update='pushd ~/projects/sisyphus/nixos alias update='pushd ~/projects/sisyphus/nixos
nix flake update nix flake update
sudo nixos-rebuild switch --flake .# --show-trace sudo nixos-rebuild switch --flake .# --show-trace