Compare commits

..

48 commits
main ... shells

Author SHA1 Message Date
b4fd8f2dbf
feat(shells): Test 2025-09-16 21:26:28 +02:00
b819c45b4c
chore: Update 2025-09-16 21:25:01 +02:00
0fa44bc367
chore(ssh): Add keys 2025-09-16 21:22:11 +02:00
a8ddc05ddd
feat(gpg): Add config 2025-09-16 21:21:38 +02:00
a41cdeaf39
chore(waybar): Update 2025-09-16 21:17:34 +02:00
19a8cbf400
chore(sway): Update 2025-09-16 21:13:13 +02:00
008ecba1a3
fix(foot): Remove padding 2025-09-16 21:10:30 +02:00
0e966c6201
chore: Updates 2025-09-16 21:09:26 +02:00
913562b98b
feat(yubikey-touch-detector): fix? 2025-09-16 21:06:29 +02:00
f446486678
chore: Update scripts 2025-09-16 21:05:04 +02:00
caa24fb255
chore(sway): Update 2025-09-16 21:04:48 +02:00
f35a2c5e85
chore: Update to 25.05 2025-09-16 21:02:51 +02:00
b7b0fa8ad3
chore(hyprland): Update 2025-09-16 20:59:18 +02:00
04b72edede
chore(plamsa): Update 2025-09-16 20:58:34 +02:00
2f1346651b
chore(tdpeuter): Tweak mail signatures 2025-09-16 20:53:16 +02:00
378ef78b40
feat(zen-browser): Add input/pkg 2025-09-16 20:52:22 +02:00
3fce7adaaa
chore: Add .idea to gitignore 2025-09-16 20:49:01 +02:00
3759885545
feat(firefox): Disable Homepage sponsors 2025-06-18 09:57:18 +02:00
ffd6f6e9c6
chore: suspend powerKey 2025-03-26 20:45:36 +01:00
8b9b00f33b
fixup! chore: Upgrade to 24.11 2025-02-21 20:55:42 +01:00
34263d84cc
feat(ssh): Add Dwengo keys 2025-02-21 20:40:34 +01:00
01ce208be9
chore: Upgrade to 24.11 2025-02-21 20:29:04 +01:00
c416cbaab9
chore(script): Improve toggle-light-dark 2025-01-26 22:12:27 +01:00
fb9cd8b9e9
fix(audio): Fix popping after audio suspend 2024-12-10 15:52:37 +01:00
2316cb2d9c
fix(notify): Switch to Pipewire 2024-12-03 10:58:47 +01:00
31a4c4060a
chore(docker): Add users to group 2024-10-25 16:17:58 +02:00
ade31510a8
chore: Refresh pkgs 2024-10-24 16:02:38 +02:00
b25f1f9f4b
feat(vim): Add Coq support 2024-10-24 15:29:38 +02:00
bdef46f0b2
chore: Upstream option renames 2024-10-24 15:28:36 +02:00
531fae0bb0
chore(sway): Add secondary terminal keybind 2024-10-19 14:46:38 +02:00
d1379cdf99
feat(ssh): Add Nextcloud secrets 2024-10-19 14:46:21 +02:00
0fa8782abb
[virtualbox] Remove custom pkg 2024-10-13 17:54:49 +02:00
58f2686097
[swaylock] Set default black background.
Avoid flashbangs
2024-10-07 09:48:40 +02:00
412932d20d
[sway] Switch fr to be keyboard layout 2024-09-29 20:15:09 +02:00
c9c36843ae
[swaylock] Configure keyboard layout 2024-09-29 13:08:37 +02:00
b14b9392fe
[waybar] chore: Hide power management under battery 2024-09-25 18:43:21 +02:00
0ef21309f4
[waybar] fix: Reverse volume scroll 2024-09-25 18:42:31 +02:00
8ad66eab07
[waybar] chore: Fix commas 2024-09-25 18:41:51 +02:00
0435852106
[waybar] feat: Add keyboard-layout toggle 2024-09-25 18:40:54 +02:00
5fdf52e0dc
[remEYEnder] Add icon 2024-09-19 15:56:13 +02:00
dc8fa78220
Clean up NixFat hardware config 2024-09-19 15:31:50 +02:00
b27b60a01b
[zsh] Add common aliases 2024-09-19 15:30:17 +02:00
a113c47eac
[remEYEnder] Add module 2024-09-19 15:29:55 +02:00
4c8d6dfc27
[sway] Add package for mirroring 2024-09-05 17:26:10 +02:00
8f5c38f525
[firefox] Add NixOS Options search 2024-09-05 17:12:54 +02:00
40f4ac6e12
[sway] Add ignore mode 2024-09-05 17:11:52 +02:00
f9b9424b29 colors 2024-06-21 16:11:01 +02:00
749e18793d
[nvidia] Add comments 2024-06-21 08:56:09 +02:00
62 changed files with 11619 additions and 766 deletions

2
.gitignore vendored
View file

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

225
colors.sh Normal file
View file

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

165
nixos/flake.lock generated
View file

@ -1,54 +1,15 @@
{
"nodes": {
"devshell": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1713532798,
"narHash": "sha256-wtBhsdMJA3Wa32Wtm1eeo84GejtI43pMrFrmwLXrsEc=",
"owner": "numtide",
"repo": "devshell",
"rev": "12e914740a25ea1891ec619bb53cf5e6ca922e40",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "devshell",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1701680307,
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
@ -64,16 +25,16 @@
]
},
"locked": {
"lastModified": 1716736833,
"narHash": "sha256-rNObca6dm7Qs524O4st8VJH6pZ/Xe1gxl+Rx6mcWYo0=",
"lastModified": 1747688870,
"narHash": "sha256-ypL9WAZfmJr5V70jEVzqGjjQzF0uCkz+AFQF7n9NmNc=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "a631666f5ec18271e86a5cde998cba68c33d9ac6",
"rev": "d5f1f641b289553927b3801580598d200a501863",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-24.05",
"ref": "release-24.11",
"repo": "home-manager",
"type": "github"
}
@ -86,11 +47,11 @@
]
},
"locked": {
"lastModified": 1701208414,
"narHash": "sha256-xrQ0FyhwTZK6BwKhahIkUVZhMNk21IEI1nUcWSONtpo=",
"lastModified": 1720066371,
"narHash": "sha256-uPlLYH2S0ACj0IcgaK9Lsf4spmJoGejR9DotXiXSBZQ=",
"owner": "nix-community",
"repo": "nix-github-actions",
"rev": "93e39cc1a087d65bcf7a132e75a650c44dd2b734",
"rev": "622f829f5fe69310a866c8a6cd07e747c44ef820",
"type": "github"
},
"original": {
@ -101,42 +62,26 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1717144377,
"narHash": "sha256-F/TKWETwB5RaR8owkPPi+SPJh83AQsm6KrQAlJ8v/uA=",
"lastModified": 1751274312,
"narHash": "sha256-/bVBlRpECLVzjV19t5KMdMFWSwKLtb5RyXdjz3LJT+g=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "805a384895c696f802a9bf5bf4720f37385df547",
"rev": "50ab793786d9de88ee30ec4e4c24fb4236fc2674",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-24.05",
"ref": "nixos-24.11",
"type": "indirect"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1717265169,
"narHash": "sha256-IITcGd6xpNoyq9SZBigCkv4+qMHSqot0RDPR4xsZ2CA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3b1b4895b2c5f9f5544d02132896aeb9ceea77bc",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "release-23.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1716948383,
"narHash": "sha256-SzDKxseEcHR5KzPXLwsemyTR/kaM9whxeiJohbL04rs=",
"lastModified": 1757745802,
"narHash": "sha256-hLEO2TPj55KcUFUU1vgtHE9UEIOjRcH/4QbmfHNF820=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "ad57eef4ef0659193044870c731987a6df5cf56b",
"rev": "c23193b943c6c689d70ee98ce3128239ed9e32d1",
"type": "github"
},
"original": {
@ -155,15 +100,15 @@
"nixpkgs"
],
"poetry2nix": "poetry2nix",
"systems": "systems_3",
"systems": "systems_2",
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1701455376,
"narHash": "sha256-FMLrMdi6JY7ZfqV5XnNj64jnDcGKznKZLn7O6OMO3u0=",
"lastModified": 1724283233,
"narHash": "sha256-XMPn6YHwFOJCGLE9M5F3AEFKA0u+maf8CpIEWmvaQTQ=",
"owner": "ThinkChaos",
"repo": "openconnect-sso",
"rev": "20c0015c4264c72cc19ac272de0dc534309bd21b",
"rev": "94f1ddfef1662d56ede0a093bcfc3d23156bc1a1",
"type": "github"
},
"original": {
@ -197,11 +142,11 @@
]
},
"locked": {
"lastModified": 1701105783,
"narHash": "sha256-5IOI0xXGbhAkUZNNcPId48V78Q+/JlW0hzlif0zxRmM=",
"lastModified": 1721039874,
"narHash": "sha256-XANsG9GYHip8pxZpbqKf/YGv8tIa0xTh289Y+WNBNfw=",
"owner": "nix-community",
"repo": "poetry2nix",
"rev": "0b2bff39e9bd4e6db3208e09c276ca83a063b370",
"rev": "d11c01e58587e5f21037ed6477465a7f26a32e27",
"type": "github"
},
"original": {
@ -212,29 +157,28 @@
},
"root": {
"inputs": {
"devshell": "devshell",
"flake-utils": "flake-utils_2",
"flake-utils": "flake-utils",
"home-manager": "home-manager",
"nixpkgs": "nixpkgs",
"nixpkgs-unstable": "nixpkgs-unstable",
"openconnect-sso": "openconnect-sso",
"sops-nix": "sops-nix",
"utils": "utils"
"utils": "utils",
"zen-browser": "zen-browser"
}
},
"sops-nix": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable"
]
},
"locked": {
"lastModified": 1717297459,
"narHash": "sha256-cZC2f68w5UrJ1f+2NWGV9Gx0dEYmxwomWN2B0lx0QRA=",
"lastModified": 1758007585,
"narHash": "sha256-HYnwlbY6RE5xVd5rh0bYw77pnD8lOgbT4mlrfjgNZ0c=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "ab2a43b0d21d1d37d4d5726a892f714eaeb4b075",
"rev": "f77d4cfa075c3de66fc9976b80e0c4fc69e2c139",
"type": "github"
},
"original": {
@ -273,21 +217,6 @@
"type": "github"
}
},
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
@ -296,11 +225,11 @@
]
},
"locked": {
"lastModified": 1699786194,
"narHash": "sha256-3h3EH1FXQkIeAuzaWB+nK0XK54uSD46pp+dMD3gAcB4=",
"lastModified": 1721769617,
"narHash": "sha256-6Pqa0bi5nV74IZcENKYRToRNM5obo1EQ+3ihtunJ014=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "e82f32aa7f06bbbd56d7b12186d555223dc399d1",
"rev": "8db8970be1fb8be9c845af7ebec53b699fe7e009",
"type": "github"
},
"original": {
@ -316,11 +245,11 @@
]
},
"locked": {
"lastModified": 1715533576,
"narHash": "sha256-fT4ppWeCJ0uR300EH3i7kmgRZnAVxrH+XtK09jQWihk=",
"lastModified": 1738591040,
"narHash": "sha256-4WNeriUToshQ/L5J+dTSWC5OJIwT39SEP7V7oylndi8=",
"owner": "gytis-ivaskevicius",
"repo": "flake-utils-plus",
"rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f",
"rev": "afcb15b845e74ac5e998358709b2b5fe42a948d1",
"type": "github"
},
"original": {
@ -328,6 +257,26 @@
"repo": "flake-utils-plus",
"type": "github"
}
},
"zen-browser": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1757304371,
"narHash": "sha256-EZ3Vwgh5xgXuiPUmr9e1a9dEu3hvEWhRurAKpsAwB2A=",
"owner": "youwen5",
"repo": "zen-browser-flake",
"rev": "3968348af022fe88468ef8de4f9683076e2e5e4b",
"type": "github"
},
"original": {
"owner": "youwen5",
"repo": "zen-browser-flake",
"type": "github"
}
}
},
"root": "root",

View file

@ -2,20 +2,16 @@
description = "System configuration of my machines using flakes";
inputs = {
nixpkgs.url = "nixpkgs/nixos-24.05";
nixpkgs.url = "nixpkgs/nixos-24.11";
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
devshell = {
url = "github:numtide/devshell";
inputs.nixpkgs.follows = "nixpkgs";
};
flake-utils.url = "github:numtide/flake-utils";
home-manager = {
url = "github:nix-community/home-manager/release-24.05";
url = "github:nix-community/home-manager/release-24.11";
inputs.nixpkgs.follows = "nixpkgs";
};
openconnect-sso = {
url = github:ThinkChaos/openconnect-sso/fix/nix-flake;
url = "github:ThinkChaos/openconnect-sso/fix/nix-flake";
inputs = {
flake-utils.follows = "utils";
nixpkgs.follows = "nixpkgs";
@ -23,29 +19,33 @@
};
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
inputs.nixpkgs.follows = "nixpkgs";
};
utils = {
url = "github:gytis-ivaskevicius/flake-utils-plus";
inputs.flake-utils.follows = "flake-utils";
};
zen-browser = {
url = "github:youwen5/zen-browser-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = inputs@{
self, nixpkgs, nixpkgs-unstable,
devshell, flake-utils, home-manager, openconnect-sso, sops-nix, utils,
flake-utils, home-manager, openconnect-sso, sops-nix, utils, zen-browser,
... }:
let
system = "x86_64-linux";
system = utils.lib.system.x86_64-linux;
unfreePackages = pkg: builtins.elem (nixpkgs.lib.getName pkg) [
"corefonts"
"nvidia-settings" "nvidia-x11" "nvidia-persistenced"
"Oracle_VM_VirtualBox_Extension_Pack"
"Oracle_VirtualBox_Extension_Pack"
"spotify"
"steam" "steam-original" "steam-run"
"steam" "steam-unwrapped" "steam-run"
"vista-fonts"
"nvidia-persistenced" # Docker
"intel-ocl"
];
in
utils.lib.mkFlake {
@ -73,6 +73,7 @@
modules = [
home-manager.nixosModule
sops-nix.nixosModules.sops
./modules
./users
];
@ -83,5 +84,64 @@
Tibo-NixFat.modules = [ ./hosts/Tibo-NixFat ];
Tibo-NixTest.modules = [ ./hosts/Tibo-NixTest ];
};
outputsBuilder = channels: {
devShells = {
default = channels.nixpkgs.mkShell {
name = "devShell";
packages = with channels.nixpkgs; [
nodejs
];
};
unstable = let
pkgs = import nixpkgs-unstable {
inherit system;
config.allowUnfree = true;
};
in channels.nixpkgs.mkShell {
name = "Unstable";
packages = with pkgs; [
anytype
];
};
rust = let
pkgs = import nixpkgs-unstable {
inherit system;
config.allowUnfree = true;
};
in channels.nixpkgs.mkShell {
name = "Rust Shell";
packages = with pkgs; [
rustc
cargo
rustup
(jetbrains.plugins.addPlugins jetbrains.rust-rover [ "github-copilot" ])
];
};
webdev = let
pkgs = import nixpkgs-unstable {
inherit system;
config.allowUnfree = true;
};
in channels.nixpkgs.mkShell {
name = "Web development Shell";
packages = with pkgs; [
nodejs
playwright-test
playwright-driver
playwright-driver.browsers
# IDE's
(jetbrains.plugins.addPlugins jetbrains.webstorm [ "github-copilot" ])
];
shellHook = ''
export PLAYWRIGHT_BROWSERS_PATH=${pkgs.playwright-driver.browsers}
export PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS=true
'';
};
};
};
};
}

View file

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

View file

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

View file

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

View file

@ -1,4 +1,4 @@
{ config, lib, ... }:
{ config, lib, pkgs, ... }:
let
cfg = config.sisyphus.desktop.hyprland;
@ -6,9 +6,49 @@ in {
options.sisyphus.desktop.hyprland.enable = lib.mkEnableOption "Hyprland";
config = lib.mkIf cfg.enable {
programs.hyprland = {
enable = true;
xwayland.enable = true;
environment = {
sessionVariables = {
# Hint Electron apps to use wayland
NIXOS_OZONE_WL = "1";
SCRIPT_DIR = ../../../../scripts;
};
systemPackages = with pkgs; [
brightnessctl
dunst
libnotify
swaybg
waybar
waycorner
wlsunset
wl-clipboard # Copying to system clipboard in vim
glib
libva
dmenu
jq
j4-dmenu-desktop
rofi
];
};
programs = {
hyprland = {
enable = true;
xwayland.enable = true;
};
waybar.enable = true;
};
services = {
displayManager.ly.enable = true;
gnome.gnome-keyring.enable = true;
power-profiles-daemon.enable = true;
xserver.videoDrivers = [ "nvidia" ];
};
};
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

View file

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

View file

@ -2,17 +2,6 @@
let
cfg = config.sisyphus.virtualisation.virtualbox;
# I like to override the virtualbox package because it is frequently
# and rebuilds take quite long.
inherit (pkgs) fetchurl;
version = "7.0.10";
virtualbox-override = pkgs.virtualbox.overrideAttrs (oldAttrs: {
src = fetchurl {
url = "https://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
sha256 = "0b1e6d8b7f87d017c7fae37f80586acff04f799ffc1d51e995954d6415dee371";
};
});
in {
options.sisyphus.virtualisation.virtualbox.enable = lib.mkEnableOption "VirtualBox";
@ -21,12 +10,13 @@ in {
host = {
enable = true;
enableExtensionPack = true;
package = virtualbox-override;
enableHardening = true;
};
guest = {
enable = true;
clipboard = true;
seamless = true;
vboxsf = false; # Module not found?...
};
};

View file

@ -0,0 +1,27 @@
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]
Hugo:
ssh: ENC[AES256_GCM,data:Tfuba25e4hJ8Ovl1IdVtDvg0L0sCc9sYTXstRg89IAUzwv/1u8mxdj9ka6ZKaSQr2QUaNWs0BoPV36O4bI2hTwoqhUarhXXZNnJKHtd8xBu/+kfMSOMGa5qD9V9m3L5OFdt+gdwhJxemeQNkvN0Vhsu4DJFPZRPmGflJ2HVRYaRW4AsI+JPqiWSEeKz40f3PQPJ2h26gF+pADmPwtEfcUGZdGnJXUsiYMC0aBEWWxyAgBgj5W+Nbe+OCopEX1qyRcR8qO+LONjuC0b5hcGeOXjWj/d1FnBfxDHeoxRGhNCo8TUk0ap1mpSAttdr55/C51duQfeV09Iow4nzUR2H0jmzojUAjKXXCkBsK6yjIKxW+4+4OKCC9ERz5mDmu5Z+4aFM7CpSquCAnDVFw1Uq9MJqAnSz6AGh29J4LUwMnVNtf+gQwzGyl/C9wE/Svm0UAwP19h6hLcM1rp6bV4xjfSXNDspUkz4Xr3RdPpTI1PemtMZIq8fP64q0FlFZeV62ctl9hCtDVRDo3fG3FUM08fa0OfJpVYjSEAOfC,iv:T8z+P5++cES9Co9d/2tcU0PbxZZM/5x63tcxIjBeQ0I=,tag:AjsulFme64/xEPjgZQFtow==,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]
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: "2024-10-20T07:58:57Z"
mac: ENC[AES256_GCM,data:mmFgjE7rp7fXmPOnETGamHR3kUAguFCNNTQcEnD+uM4xeSp3QcB2g8tkKYaJAjkWWqKRSm9/Iu1NWOr9GWyu4O1h7ppWSvpKawWki6cHpqBl8JOwbx/SZi5bzU1lBtoJyT6hD1aCu9ENOMUkpPY3rKcYwbsRMJpKYsbXymPikcQ=,iv:kPB6ds8c4yc/w7Ny1d3DTyztQF4yTr0NyKgIHEzIKAg=,tag:VTpXRb5HaWDjVB52K7mByw==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.8.1

View file

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

View file

@ -5,6 +5,7 @@ UGent:
ssh: ENC[AES256_GCM,data:A4ir0yvCgIVJCl4C5fB4+WhJVj6Go9XWfjw1/lOaWr2rP+tVNnjGuv/d47z55Gxose5keYX2wRMet/M2Re18+5ckFTyfT4YkcHtQCyBGbmwYmIzxcaxinNsCuOelEdNnFnYW2ha0aJ8Q5Xjfpec1YqDrCT/Add3qGRzBizQJ1FajbyhxJOKLYvUrYvLZ8+XE8SUndvjQnVig3ArUm2hDFsEMm4ClZ4T+EwcIuWrS8ia7ZoqlQhglEtlSEczE65a6hQAFeXE64YC3s8kWlRGhRqJQXjB5g/UTkOht3Vrw2cNzrz90tR9vhooOEBEI6d8F8RJGkdyUe5zod1eKnE/lwOFhhTbzrGrYzX4oUrDIL+Dx9+R9mQchv9qSau1JtKDvzkYmqVVgTC6wE98gTRSBw78f0MKO27FA3diC/k3t+mwsKVRjcvlTUcbRcFAxjq/U5TbOq5jOgA41dI9KE/+bnJoLRh81m/sq9EqMTp90wDKn+jjCn7lGcGDwtaaTlbLIGIw5u9pcfD4UyvJZamnS96JAhsDUqk+fxb05,iv:jPCdaC7CahKrj3tvzZTs1ZI/3+zuCCqIdXp3vo9l/iY=,tag:DeUdWEZHpsB1AMD2AQuiTg==,type:str]
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]
Dwengo: ENC[AES256_GCM,data:3lsZJ5ztkGOfHFQNr54xs9evSTEAs9XHJhg6Krvz3fkT8CaGSiRW5HTCfANGhQ3wJ8kHVziwopQCJ8s93gaipAuEu5k/hYj5wYhOn6x8oDJxftMJC94JDL4eYGIXbx9GSPIy+loftfYIZcfmi6o1lQdiqRdC207Cs+p0ZTB7JSvales16IpgYKoTCRLUytd9cBrezD9gVEngW1b4wHGzai4OOTSunlOVVAgapAKsN+swN7QtMt00607Ns6gCoQDV76qAbM+6EN8PlIKwbyy9UneeTXOf0wtQpb2TM1zrVR7LOqNyXT+DUlrBLpOpYK8tPCP8y5m9DMLixrhbAXMT6pIp2XSbmcfcsuMGLJE2ev/c6PxmbjqiCGEYPC3HdAgUpNDtOMixnHEoXnMUPDJeE0MXbSFMRmzNGo7pc5gOoCFmCkV9NVQXERR6m04Bn3czRQVHfoVIc4ciPdiXpOqF8ocTnqZj7HRW8dvZz9V50ViHwOVqWLJ2a/QUMdagXlaK7zPrxPETKz47iMoMfVaUE8ePg2L5sEZHja62,iv:s/+JYSkZudTr4MnTclpNV7i5VGUlqFhdvovcFt+inSQ=,tag:4Ge0ZOc6qNObQrzS0K0WDA==,type:str]
sops:
kms: []
gcp_kms: []
@ -20,8 +21,8 @@ sops:
aDNUbFlhWWVoOWpjVlV1VTVJejlSMjQK6wCeCRdHY5oyTX6/R1U5AOGJyp0exi1A
dWPUMfkKBBBkrR+G6ougd8o3FwFf+yfb5RhaTxxqjit6p2RyMjR64w==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2023-10-10T06:57:11Z"
mac: ENC[AES256_GCM,data:Tvwv2mqceAxi7ic3+95Y6hBMHjqVoCkYnTkEsXOrhumgXpuuB/QQ0ASEf6gbgkCLXGwnUAXsK41bIIJfFgYSk89fHw6AaXfs6a+zL2Mh5zkhMIE2bm68mFK8+/TX/e8SibbEwNZCKOcPqvaO6nK816KCmh3KKCbT9ObaB6CA/KI=,iv:YPKgYAnQ135JXou7q9jVN7b3SKIDwceKcbqiIjkqnTU=,tag:udPrEVu2F+hWkhNoEyjTYg==,type:str]
lastmodified: "2025-02-21T19:36:01Z"
mac: ENC[AES256_GCM,data:NMxbxf7/UwR9akbbLgKeSLIkk+dS/an2pGzZUSbe1AJenCVFO/fiRCC5BF6xJVpFSpag/dLwo/tS64JmJ36Vqn2sQGmqn26HPXsjAgyUdpp3+anXIVOGvNHF3oCM8gEUk9+W2FsOqKuejpD7HK/IsVJEZZLbThkUS1BiptOWk84=,iv:xNBBjWADFF5itg45KnmNbZG5RN0KRpaph7iMGhf1KZg=,tag:FrDSAbvo/7QHH0g5Ik8ATw==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.7.3
version: 3.9.2

View file

@ -1,5 +1,7 @@
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:
kms: []
gcp_kms: []
@ -15,8 +17,8 @@ sops:
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]
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]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.7.3
version: 3.8.1

View file

@ -0,0 +1,30 @@
{
description = "C Flake";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, flake-utils, nixpkgs }:
flake-utils.lib.eachDefaultSystem (system:
let
lib = import lib;
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
};
in {
devShells.default = pkgs.mkShell {
packages = with pkgs; [
cmake
gcc
gnumake
valgrind
# You might want to use your own IDE.
(jetbrains.plugins.addPlugins jetbrains.clion [ "github-copilot" ])
];
};
});
}

View file

@ -0,0 +1,26 @@
{
description = "Java Flake";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
inputs.flake-utils.url = "github:numtide/flake-utils";
outputs = { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem
( system:
let
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
};
in {
devShells.default = pkgs.mkShell {
packages = with pkgs; [
jdk8
openjdk17
# You might want to use your own IDE.
(jetbrains.plugins.addPlugins jetbrains.idea-ultimate [ "github-copilot" ])
];
};
});
}

View file

@ -0,0 +1,24 @@
{
description = "LaTeX Flake";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
inputs.flake-utils.url = "github:numtide/flake-utils";
outputs = { self, nixpkgs, flake-utils}:
flake-utils.lib.eachDefaultSystem
(system:
let
pkgs = import nixpkgs {
inherit system;
};
in {
devShells.default = pkgs.mkShell {
packages = with pkgs; [
texlive.combined.scheme-full
pgfplots
biber
];
};
}
);
}

View file

@ -0,0 +1,24 @@
{
description = "Rust Flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, flake-utils, nixpkgs }: flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs {
inherit system;
};
in {
devShells.default = pkgs.mkShell {
packages = with pkgs; [
cargo
rustc
];
shellHook = ''
'';
};
});
}

View file

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

View file

@ -17,7 +17,7 @@ in {
source = ../../../stow/alacritty/.config/alacritty;
};
".config/dunst" = {
inherit (config.sisyphus.desktop.sway) enable;
enable = config.sisyphus.desktop.hyprland.enable || config.sisyphus.desktop.sway.enable;
source = ../../../stow/dunst/.config/dunst;
};
".config/foot" = {
@ -66,20 +66,21 @@ in {
source = ../../../stow/vifm/.config/vifm;
};
".config/waybar" = {
inherit (config.sisyphus.desktop.sway) enable;
enable = config.sisyphus.desktop.sway.enable || config.sisyphus.desktop.hyprland.enable;
source = ../../../stow/waybar/.config/waybar;
};
".config/zellij" = {
source = ../../../stow/zellij/.config/zellij;
};
".oh-my-zsh" = {
enable = config.users.users.tdpeuter.shell == pkgs.zsh;
source = "${pkgs.oh-my-zsh}/share/oh-my-zsh";
".gnupg" = {
enable = false;
# inherit (config.programs.gnupg.agent) enable; # TODO Enable Me
source = ../../../stow/gnupg/.gnupg;
recursive = true;
};
".oh-my-zsh/themes/tdpeuter.zsh-theme" = {
enable = config.users.users.tdpeuter.shell == pkgs.zsh;
source = ../../../stow/zsh/.oh-my-zsh/themes/tdpeuter.zsh-theme;
# onChange = ''
# chmod 700 /home/tdpeuter/.gnupg
# chmod 600 /home/tdpeuter/.gnupg/*
# '';
};
".ssh/config" = lib.mkIf config.sisyphus.programs.ssh.enable {
inherit (config.sisyphus.programs.ssh) enable;
@ -97,6 +98,15 @@ in {
};
}
(lib.mkIf (config.users.users.tdpeuter.shell == pkgs.zsh) {
".oh-my-zsh" = {
enable = config.users.users.tdpeuter.shell == pkgs.zsh;
source = "${pkgs.oh-my-zsh}/share/oh-my-zsh";
recursive = true;
};
".oh-my-zsh/themes/tdpeuter.zsh-theme" = {
enable = config.users.users.tdpeuter.shell == pkgs.zsh;
source = ../../../stow/zsh/.oh-my-zsh/themes/tdpeuter.zsh-theme;
};
".zshrc" = {
source = ../../../stow/zsh/.zshrc;
};

View file

@ -18,7 +18,16 @@ in {
DisableFirefoxStudies = true;
DisablePocket = true;
DisableTelemetry = true;
FirefoxHome = {
SponsoredTopSites = false;
SponsoredPocket = false;
};
OfferToSaveLogins = false;
# https://discourse.nixos.org/t/declare-firefox-extensions-and-settings/36265
ExtensionSettings = {
"amazom@search.mozilla.org".installation_mode = "blocked";
};
};
# Support smart cards
@ -27,13 +36,17 @@ in {
];
};
languagePacks = [
"en-GB"
"nl"
];
profiles.tdpeuter.search= {
default = "DuckDuckGo";
force = true;
engines = {
"Bing".metaData.hidden = true;
"eBay".metaData.hidden = true;
"Qwant".metaData.hidden = true;
"Nix Packages" = {
urls = [{
@ -47,6 +60,17 @@ in {
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" ];
};
"GitHub" = {
urls = [{
template = "https://github.com/search";

View file

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

View file

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

View file

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

View file

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

View file

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

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

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

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

@ -0,0 +1,41 @@
#!/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'
else
state='connected'
tooltip="${status:='Disconnect tailnet'}"
fi
printf '{"alt": "%s", "tooltip": "%q", "class": "%s" }' \
"${state}" "${tooltip}" "${state}"
exit 0
;;
esac
done
# Toggle
if [ "${current_state}" == "${STOPPED_MSG}" ] ; then
notify-send 'Connecting tailnet'
notify-send 'Connected tailnet' "$( tailscale up )"
else
notify-send 'Disconnecting tailnet'
notify-send 'Disconnected tailnet' "$( tailscale down )"
fi

View file

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

View file

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

View file

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

View file

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

View file

@ -1,21 +1,21 @@
Host Hugo
User admin
HostName 192.168.0.11
IdentitiesOnly yes
IdentityFile /run/secrets/Hugo/ssh
Host HPC
User vsc44995
HostName login.hpc.ugent.be
IdentitiesOnly yes
IdentityFile /run/secrets/UGent/HPC/ssh
Host Dwengo
User tibo
HostName sel2-1.ugent.be
IdentitiesOnly yes
IdentityFile /run/secrets/UGent/Dwengo
# Git authentication
Host git.depeuter.dev
User git
HostName git.depeuter.dev
IdentitiesOnly yes
IdentityFile /run/secrets/Hugo/Gitea/ssh
IdentityFile /run/secrets/Gitea/ssh
Host github.com
User git
@ -36,3 +36,21 @@ Host subgit.ugent.be
IdentityFile /run/secrets/UGent/SubGit/ssh
CanonicalizeHostname yes # Ignore capitalization
# HomeLab
Host Gitea
User admin
HostName 192.168.0.24
IdentitiesOnly yes
IdentityFile /run/secrets/HomeLab/Gitea/ssh
Host Hugo
User admin
HostName 192.168.0.11
IdentitiesOnly yes
IdentityFile /run/secrets/HomeLab/Hugo/ssh
Host Nextcloud
User administrator
Hostname 192.168.0.14
IdentitiesOnly yes
IdentityFile /run/secrets/HomeLab/Nextcloud/ssh

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -8,8 +8,10 @@ indicator-radius=200
clock
datestr=%A, %B %d %Y
show-failed-attempts
screenshots
effect-blur=5x5
effect-pixelate=10
effect-vignette=0.75:0 # Darken the whole screen.
fade-in=0.25
@ -18,25 +20,35 @@ grace-no-mouse
# Styling
color=000000 # The default background color when no image could be loaded
font=letter extended
text-color=ffffff
text-clear-color=ffffff
text-wrong-color=eb4d4b
text-caps-lock-color=ffffff
text-wrong-color=bd2024
layout-text-color=ffffff
# Make all the other stuff invisible
key-hl-color=00000000
separator-color=00000000
ring-color=00000000
ring-clear-color=00000000
ring-ver-color=00000000
ring-wrong-color=00000000
line-color=00000000
line-clear-color=00000000
line-ver-color=00000000
line-wrong-color=00000000
inside-color=00000000
inside-clear-color=00000000
inside-caps-lock-color=00000000
inside-ver-color=00000000
inside-wrong-color=00000000
key-hl-color=00000000
layout-bg-color=00000000
layout-border-color=00000000
line-color=00000000
line-clear-color=00000000
line-caps-lock-color=00000000
line-ver-color=00000000
line-wrong-color=00000000
ring-color=00000000
ring-clear-color=00000000
ring-caps-lock-color=00000000
ring-ver-color=00000000
ring-wrong-color=00000000
separator-color=00000000
text-ver-color=00000000

View file

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

View file

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

View file

@ -0,0 +1,60 @@
/* * * * * * * * * * * * * * * * *
* *
* ~/.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",
],
"modules-center": [
"mpris"
],
"modules-right": [
"privacy",
"tray",
"group/control-center",
"group/network",
"pulseaudio",
"group/power",
"clock#bar"
],
"include": [
"~/.config/waybar/modules.json"
]
}
]

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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