55 Commits
Author SHA1 Message Date
tomasr a424a01309 snapshot pre-cleanup-2026-10-11T14-05-01Z 2026-10-11 16:05:01 +02:00
tomasr 8a467889bd snapshot pre-autoupdate-2026-10-10T08-00-13Z 2026-10-10 10:00:13 +02:00
tomasr 783f7ffc59 add telegram desktop 2026-10-10 09:58:56 +02:00
tomasr f702287f7a add detexify bookmark 2026-10-04 18:14:49 +02:00
tomasr d8b3830520 snapshot pre-cleanup-2026-10-03T21-43-19Z 2026-10-03 23:43:19 +02:00
tomasr cc5c4bf865 snapshot pre-autoupdate-2026-10-03T13-04-41Z 2026-10-03 15:04:41 +02:00
tomasr e58701d75a snapshot pre-cleanup-2026-09-26T18-13-36Z 2026-09-26 20:13:36 +02:00
tomasr e88e946110 snapshot pre-autoupdate-2026-09-26T17-59-52Z 2026-09-26 19:59:52 +02:00
tomasr aa335ec277 remove pomodoro timer shortcut 2026-09-21 12:00:24 +02:00
tomasr 28a9c37369 setup fwupd 2026-09-20 11:14:11 +02:00
tomasr 3d273bdd13 snapshot pre-cleanup-2026-09-20T09-04-46Z 2026-09-20 11:04:46 +02:00
tomasr 3871205f6a snapshot pre-autoupdate-2026-09-19T15-51-37Z 2026-09-19 17:51:37 +02:00
tomasr 3c44b9d9c0 fix path sync cs-119l 2026-09-13 10:42:53 +02:00
tomasr 8741846a72 Auto: cleanup-2026-09-13T08-29-34Z 2026-09-13 10:30:53 +02:00
tomasr 5c9d8aee46 snapshot pre-cleanup-2026-09-13T08-29-34Z 2026-09-13 10:29:34 +02:00
tomasr 018d5464db fix sync cs119l 2026-09-13 10:28:57 +02:00
tomasr db3b4ef194 snapshot pre-autoupdate-2026-09-12T09-49-03Z 2026-09-12 11:49:03 +02:00
tomasr 5e717182ed epfl switchDrive 2026-09-10 11:12:29 +02:00
tomasr 5d268e49b9 fix fastfetch vscode 2026-09-06 11:32:56 +02:00
tomasr 377ec45fad setup for cs-119l 2026-09-06 11:17:17 +02:00
tomasr 7a0454befb Auto: cleanup-2026-09-06T07-56-34Z 2026-09-06 09:56:58 +02:00
tomasr acefe53275 snapshot pre-cleanup-2026-09-06T07-56-34Z 2026-09-06 09:56:34 +02:00
tomasr 8edf285346 snapshot pre-autoupdate-2026-09-05T12-18-46Z 2026-09-05 14:18:46 +02:00
tomasr 5b7bc76c47 librewolf: add courseware bookmark 2026-09-05 14:14:30 +02:00
tomasr a599d4b67c librewolf: add moodle bookmark 2026-09-05 14:11:09 +02:00
tomasr 9155de7abb remove duplciate exec nixpkgs-notifier 2026-08-30 21:06:50 +02:00
tomasr deae612ef8 ös alias 2026-08-30 19:33:08 +02:00
tomasr f5490420ba Auto: cleanup-2026-08-30T15-04-23Z 2026-08-30 17:04:44 +02:00
tomasr 45f068c894 snapshot pre-cleanup-2026-08-30T15-04-23Z 2026-08-30 17:04:23 +02:00
tomasr 940cb8a5e9 reajuste lock timing 2026-08-30 17:03:50 +02:00
tomasr 3cd365fbe4 flake.lock: autoupdate-2026-08-28T20-43-35Z 2026-08-28 22:56:28 +02:00
tomasr 943f056e73 snapshot pre-autoupdate-2026-08-28T20-43-35Z 2026-08-28 22:43:35 +02:00
tomasr 3e39d45a66 reworked lock time 2026-08-27 17:53:17 +02:00
tomasr 96bcd38ff0 bitwarden-client updated electron 2026-08-23 13:38:06 +02:00
tomasr 969583f6ef Auto: cleanup-2026-08-23T09-02-28Z 2026-08-23 11:02:51 +02:00
tomasr b55fcede9b snapshot pre-cleanup-2026-08-23T09-02-28Z 2026-08-23 11:02:28 +02:00
tomasr 8ae7323dff snapshot pre-autoupdate-2026-08-21T19-39-02Z 2026-08-21 21:39:02 +02:00
tomasr 0028993476 snapshot pre-autoupdate-2026-08-21T19-22-40Z 2026-08-21 21:22:40 +02:00
tomasr 960a279117 remove duplciate exec qtbatticon 2026-08-21 18:00:14 +02:00
tomasr 8ca9ac4374 add instruction for nix-update 2026-08-18 08:04:10 +02:00
tomasr d0015eae2b nixUtils: add nix-update 2026-08-18 07:53:37 +02:00
tomasr 2186ab5c08 moved out of kdrive for notes. Keep backup in there rsynced 2026-08-17 17:11:36 +02:00
tomasr 73001d5000 update nixpkgs-unstable 2026-08-17 17:08:28 +02:00
tomasr b46b4e8487 remove battery scripts 2026-08-17 15:03:34 +02:00
tomasr 5e9c1d5397 update nixpkgs-unstable 2026-08-16 18:03:25 +02:00
tomasr 22cc03b95a switch hardware utils to unstable 2026-08-16 18:02:41 +02:00
tomasr b30e2abbf4 add watchecosystem to hardwareUtils 2026-08-16 18:01:36 +02:00
tomasr 6b674af0a2 updated notewrapper 2026-08-16 08:42:46 +02:00
tomasr 3bf45ad9c2 git config 2026-08-16 08:32:19 +02:00
tomasr 9b0dbd70a4 Auto: cleanup-2026-08-15T19-17-50Z 2026-08-15 21:18:15 +02:00
tomasr 18fbd68abe snapshot pre-cleanup-2026-08-15T19-17-50Z 2026-08-15 21:17:50 +02:00
tomasr 7cf6867ece custom-vpn-picker: init 2026-08-15 20:07:26 +02:00
tomasr 9fa7397f5c first setup epfl vpn 2026-08-15 12:23:32 +02:00
tomasr a3bf2552a2 flake.lock: autoupdate-2026-08-15T09-35-15Z 2026-08-15 11:38:41 +02:00
tomasr 34ce3df3e2 snapshot pre-autoupdate-2026-08-15T09-35-15Z 2026-08-15 11:35:15 +02:00
24 changed files with 378 additions and 138 deletions

No files matched your search

+4 -1
View File
@@ -428,7 +428,6 @@ The macros in the layout generate combinations involving `CTRL`, `ALT`, `SUPER`,
| Row 2, Col 2 | Change audio output (`CTRL + ALT + SHIFT + 0`) | | Row 2, Col 2 | Change audio output (`CTRL + ALT + SHIFT + 0`) |
| Row 2, Col 3 | Special characters (`CTRL + SUPER + 5`) | | Row 2, Col 3 | Special characters (`CTRL + SUPER + 5`) |
| Row 2, Col 4 | Color picker (`CTRL + ALT + 8`) | | Row 2, Col 4 | Color picker (`CTRL + ALT + 8`) |
| Row 3, Col 1 | Pomodoro timer (`CTRL + ALT + 0`) |
| Row 4, Col 1 | Launch Anki (`CTRL + ALT + 9`) | | Row 4, Col 1 | Launch Anki (`CTRL + ALT + 9`) |
The physical layout file contains additional transparent/unused positions, but the bindings above are the active shortcuts documented for the macropad. The physical layout file contains additional transparent/unused positions, but the bindings above are the active shortcuts documented for the macropad.
@@ -569,6 +568,9 @@ secrets/
Encrypted secrets should remain encrypted in Git. Decrypted secret contents and private keys should not be committed. Encrypted secrets should remain encrypted in Git. Decrypted secret contents and private keys should not be committed.
* To edit a secret use `agenix -e <secret_file>.age -i /etc/ssh/ssh_host_ed25519_key`.
* To decrypt a secret use `sudo agenix -d <secret_file>.age -i /etc/ssh/ssh_host_ed25519_key`.
--- ---
# Quickshell # Quickshell
@@ -641,6 +643,7 @@ Some application state may need to be configured manually after installation:
* Birdtray settings * Birdtray settings
* Inkscape settings * Inkscape settings
* other application-specific user data * other application-specific user data
* git configuration
--- ---
Generated
+30 -30
View File
@@ -36,11 +36,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1786071436, "lastModified": 1787276686,
"narHash": "sha256-/CQJ781dRGWWUMrJ34vIj1PQnNEEWgnEEuod0r5LKGk=", "narHash": "sha256-rYdGb5rKIfETdlenQRxHfg17dhf9fN8eaRryX6sztnQ=",
"owner": "caelestia-dots", "owner": "caelestia-dots",
"repo": "cli", "repo": "cli",
"rev": "751fbc555a83faba5dd589270d14eeb22afab174", "rev": "7401d9e3a371e583bc0b42dc1a139d01e278e6c1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -59,11 +59,11 @@
"quickshell": "quickshell" "quickshell": "quickshell"
}, },
"locked": { "locked": {
"lastModified": 1786238888, "lastModified": 1787890941,
"narHash": "sha256-pnO0u0UUYwkr72pJR5Giu93LZfU/fhTKJZYa1xeM7Po=", "narHash": "sha256-j91lsxm/wuuoPPwz4RQOr520EXlHgLPWfSW0KqKsy7E=",
"owner": "caelestia-dots", "owner": "caelestia-dots",
"repo": "shell", "repo": "shell",
"rev": "817a220e8e87c4df9f3681033a0d8a8054cdaa30", "rev": "1b7052d108677a7ca0d3d3365511bfe8281a6868",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -119,12 +119,12 @@
"nixpkgs-lib": "nixpkgs-lib" "nixpkgs-lib": "nixpkgs-lib"
}, },
"locked": { "locked": {
"lastModified": 1785627969, "lastModified": 1787559586,
"narHash": "sha256-4dtXQk/NMePegK/nWp5NSeuZKLATItOq61lpEvmXqGw=", "narHash": "sha256-onL0VLf9vPllmT0H/OlURIU5r5t5WIEl7t4tVNKT0Nw=",
"rev": "427bf4bd9435fdf21321c8cc628c24efc14c0f7a", "rev": "9d0d87172c374f89da73c1cfe6d81ae62feac1f1",
"revCount": 483, "revCount": 489,
"type": "tarball", "type": "tarball",
"url": "https://api.flakehub.com/f/pinned/hercules-ci/flake-parts/0.1.483%2Brev-427bf4bd9435fdf21321c8cc628c24efc14c0f7a/019fc124-5bcc-79d1-a1e4-306df724dc0a/source.tar.gz" "url": "https://api.flakehub.com/f/pinned/hercules-ci/flake-parts/0.1.489%2Brev-9d0d87172c374f89da73c1cfe6d81ae62feac1f1/01a034df-3c80-7cd2-a669-be2243c45202/source.tar.gz"
}, },
"original": { "original": {
"type": "tarball", "type": "tarball",
@@ -155,11 +155,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1785119570, "lastModified": 1787377438,
"narHash": "sha256-Rgs2xKnGLFWQscxUaXX07oyZeuMDOHEbqDOsgliLFGM=", "narHash": "sha256-Sxu1NLTD/Ern6hFGLlZmtKCSct3YQXZI/lls8RE1XeM=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "d4fd24667c8cbef124bb70a20380cab75ec8474d", "rev": "65258d5c65a250189fde2e35f490d15e064c4c62",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -226,11 +226,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1786535285, "lastModified": 1787848966,
"narHash": "sha256-rG5HKMAgAhMgydvKGtco6rqTxRq4EDZQCx9USLvVqYw=", "narHash": "sha256-7gDpu5hpq0rOYnYMcOWqSzquK4HA/xU8Xf3CjUBOOJA=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "9f78f44a87948854445dae0b6bf82b2e87e4efb5", "rev": "d57af924f160a5084293c71c2043f058bd1cdb60",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -280,11 +280,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1786534138, "lastModified": 1787814960,
"narHash": "sha256-fBJMdnKUTUDtfi/BYLr71HLaC9dG382arxLF2Egg2uo=", "narHash": "sha256-PYZq1qzCJXC2zGI0mH07vrZBsw6DRBAOX0jN1pPtqOQ=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "044bfe75bfe4c7bbe043dc17b5e42ea823b84a09", "rev": "c27cdad491a991b11ed731760aa2ef8db0cb0410",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -304,11 +304,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1786346006, "lastModified": 1787547082,
"narHash": "sha256-PDM9fB1zBhqVVE75WxRM7vIo3QhL2LGKKdd6N+hTGlg=", "narHash": "sha256-v2KPBHgeSvThqz/qsajxpc98CIcBhXson4uUazAuwFs=",
"owner": "tomasriveral", "owner": "tomasriveral",
"repo": "notewrapper", "repo": "notewrapper",
"rev": "689c3074c03328e2086dc032a2fc3de00bbef466", "rev": "713fa27893c91896607229895d06e4b853edceeb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -328,11 +328,11 @@
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay"
}, },
"locked": { "locked": {
"lastModified": 1786270331, "lastModified": 1787604401,
"narHash": "sha256-GRhNuYIXR/0WWBya4CHfTKyCbL3wuFPJC5yBh5pHU8s=", "narHash": "sha256-r5Ts5BWk99uIuyFqai85c+WdS3AAar20Qgd0diV1YoM=",
"owner": "r14dd", "owner": "r14dd",
"repo": "patent", "repo": "patent",
"rev": "d852cea921124a8b9002db9beb2af2d935af8130", "rev": "bbe68e8ebc29ca6cec996f89b03997a5d67aa550",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -349,11 +349,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1785704021, "lastModified": 1787440121,
"narHash": "sha256-eQtczKMAS4ItlB4pr1B3MqBZiyRVl2nkqNdtyRSQMa8=", "narHash": "sha256-OZdLL1rMR9kjTFZroOODeyQ0u6nrSxcFHlK6JUi+R/c=",
"ref": "refs/heads/master", "ref": "refs/heads/master",
"rev": "28771c7c74b42e20afca0b1b63980cb46515537c", "rev": "0fed22a2c47d9568ddf13cf61586b3f2ac4378a2",
"revCount": 835, "revCount": 847,
"type": "git", "type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell" "url": "https://git.outfoxxed.me/outfoxxed/quickshell"
}, },
+3
View File
@@ -69,12 +69,15 @@
flake = let flake = let
system = "x86_64-linux"; system = "x86_64-linux";
unfreePkgs = [ unfreePkgs = [
"code"
"hplip" "hplip"
"nvidia-x11" "nvidia-x11"
"nvidia-settings" "nvidia-settings"
"steam" "steam"
"steam-unwrapped" "steam-unwrapped"
"cheatsheet.nvim" "cheatsheet.nvim"
"vscode"
"vscode-fhs"
"zoom-us" "zoom-us"
"zoom" "zoom"
]; ];
+18
View File
@@ -402,6 +402,24 @@
keyword = "nix function search"; keyword = "nix function search";
url = "https://noogle.dev"; url = "https://noogle.dev";
} }
{
name = "EPFL Moodle";
tags = ["epfl" "moodle"];
keyword = "epfl moodle";
url = "https://moodle.epfl.ch/my/courses.php";
}
{
name = "EPFL ICC Courseware";
tags = ["icc" "epfl" "courseware"];
keyword = "icc epfl courseware";
url = "https://courseware.epfl.ch/learner-dashboard/";
}
{
name = "Detexify";
tags = ["draw" "Latex" "symbols"];
keyword = "draw latex symbols";
url = "https://detexify.kirelabs.org/";
}
]; ];
}; };
search = { search = {
+3 -3
View File
@@ -24,16 +24,16 @@
inhibitWhenAudio = true; inhibitWhenAudio = true;
timeouts = [ timeouts = [
{ {
timeout = 180; timeout = 1000;
idleAction = "lock"; idleAction = "lock";
} }
{ {
timeout = 300; timeout = 1010;
idleAction = "dpms off"; # what's that? idleAction = "dpms off"; # what's that?
returnAction = "dpms on"; returnAction = "dpms on";
} }
{ {
timeout = 600; timeout = 12200;
idleAction = ["systemctl" "suspend-then-hibernate"]; idleAction = ["systemctl" "suspend-then-hibernate"];
} }
]; ];
+2
View File
@@ -3,6 +3,8 @@ _: {
programs.git = { programs.git = {
enable = true; enable = true;
/* /*
for some reason this doesnt work really well. So it's best to setup git imperatively
push.autoSetupRemote to true
settings = { settings = {
init.defaultBranch = "main"; init.defaultBranch = "main";
}; };
+64 -66
View File
@@ -1,4 +1,4 @@
{...}: { _: {
flake.nixosModules.hyprland = { flake.nixosModules.hyprland = {
pkgs, pkgs,
pkgs-unstable, pkgs-unstable,
@@ -35,74 +35,72 @@
services.xserver.enable = true; services.xserver.enable = true;
}; };
flake.homeModules.hyprland-laptop = { flake.homeModules.hyprland-laptop = {
home.file.".config/hypr/host.lua" = { home.file.".config/hypr/host.lua" = {
text = '' text = ''
hl.on("hyprland.start", function() hl.on("hyprland.start", function()
hl.exec_cmd("qtbatticon") hl.exec_cmd("qtbatticon")
hl.exec_cmd("source /run/agenix/ntfy && nixpkgs-notifier listen") end)
end)
hl.monitor({ hl.monitor({
output = "eDP-1", output = "eDP-1",
mode = "highres@highrr", mode = "highres@highrr",
position = "0x0", position = "0x0",
scale = 1, scale = 1,
}) })
''; '';
enable = true; enable = true;
force = true; force = true;
};
}; };
}; flake.homeModules.hyprland-desktop = {
flake.homeModules.hyprland-desktop = { home.file.".config/hypr/host.lua" = {
home.file.".config/hypr/host.lua" = { text = ''
text = '' hl.monitor({
hl.monitor({ output = "",
output = "", mode = "preferred",
mode = "preferred", position = "auto",
position = "auto", scale = 0.75,
scale = 0.75, })
}) '';
''; enable = true;
enable = true; force = true;
force = true; };
}; };
}; flake.homeModules.hyprland = {pkgs-unstable, ...}: let
flake.homeModules.hyprland = {pkgs-unstable, ... }: wallpaper1 = ../../assets/wallpaper1.jpg;
let wallpaper2 = ../../assets/wallpaper2.jpg;
wallpaper1 = ../../assets/wallpaper1.jpg; wallpaper3 = ../../assets/wallpaper3.jpg;
wallpaper2 = ../../assets/wallpaper2.jpg; wallpaper4 = ../../assets/wallpaper4.jpg;
wallpaper3 = ../../assets/wallpaper3.jpg; wallpaper5 = ../../assets/wallpaper5.jpg;
wallpaper4 = ../../assets/wallpaper4.jpg;
wallpaper5 = ../../assets/wallpaper5.jpg;
hyprlandLua = builtins.replaceStrings hyprlandLua =
[ builtins.replaceStrings
"WALLPAPER1/PATH/PLACEHOLDER" [
"WALLPAPER2/PATH/PLACEHOLDER" "WALLPAPER1/PATH/PLACEHOLDER"
"WALLPAPER3/PATH/PLACEHOLDER" "WALLPAPER2/PATH/PLACEHOLDER"
"WALLPAPER4/PATH/PLACEHOLDER" "WALLPAPER3/PATH/PLACEHOLDER"
"WALLPAPER5/PATH/PLACEHOLDER" "WALLPAPER4/PATH/PLACEHOLDER"
] "WALLPAPER5/PATH/PLACEHOLDER"
[ ]
(toString wallpaper1) [
(toString wallpaper2) (toString wallpaper1)
(toString wallpaper3) (toString wallpaper2)
(toString wallpaper4) (toString wallpaper3)
(toString wallpaper5) (toString wallpaper4)
] (toString wallpaper5)
(builtins.readFile ../../other/hyprland/hyprland.lua); ]
in (builtins.readFile ../../other/hyprland/hyprland.lua);
{ in {
#refer to https://wiki.hypr.land/Nix/Hyprland-on-Home-Manager/ #refer to https://wiki.hypr.land/Nix/Hyprland-on-Home-Manager/
wayland.windowManager.hyprland.enable = true; wayland.windowManager.hyprland.enable = true;
wayland.windowManager.hyprland.package = pkgs-unstable.hyprland; wayland.windowManager.hyprland.package = pkgs-unstable.hyprland;
#hint Electron apps to use on wayland; #hint Electron apps to use on wayland;
home.sessionVariables.NIXOS_OZONE_WL = "1"; home.sessionVariables.NIXOS_OZONE_WL = "1";
wayland.windowManager.hyprland.plugins = [ wayland.windowManager.hyprland.plugins = [
#pkgs-unstable.hyprlandPlugins.hyprspace # currently broken #pkgs-unstable.hyprlandPlugins.hyprspace # currently broken
#pkgs-unstable.hyprlandPlugins.hypr-dynamic-cursors #pkgs-unstable.hyprlandPlugins.hypr-dynamic-cursors
]; ];
wayland.windowManager.hyprland.configType = "lua"; wayland.windowManager.hyprland.configType = "lua";
wayland.windowManager.hyprland.extraConfig = hyprlandLua; wayland.windowManager.hyprland.extraConfig = hyprlandLua;
}; };
} }
-13
View File
@@ -1,13 +0,0 @@
_: {
flake.nixosModules.mullvad = _: {
services.mullvad-vpn = {
enable = true;
};
};
flake.homeModules.mullvad = _: {
programs.mullvad-vpn = {
# gui
enable = true;
};
};
}
+2 -2
View File
@@ -8,7 +8,7 @@
force = true; force = true;
text = '' text = ''
{ {
"directory": ["~/kdrive/Notes/"], "directory": ["~/Documents/Notes/"],
"render": true, "render": true,
"jumpToEndOfFileOnLaunch": true, "jumpToEndOfFileOnLaunch": true,
"editor": "neovim", "editor": "neovim",
@@ -18,7 +18,7 @@
"backup": { "backup": {
"enable": true, "enable": true,
"directory": { "directory": {
"~/kdrive/Notes/": "~/kdrive/Notes/" "~/Documents/Notes/": "~/kdrive/Notes/"
}, },
"interval": "daily", "interval": "daily",
"rsyncArgs": ["-Lqah", "--update"], "rsyncArgs": ["-Lqah", "--update"],
+10 -1
View File
@@ -43,6 +43,11 @@ _: {
enable = true; enable = true;
autosuggestion.enable = false; # zsh-autocomplete is replaced by deja autosuggestion.enable = false; # zsh-autocomplete is replaced by deja
initContent = '' initContent = ''
# those aliases can't be written in nix, because of ö
# l and ö are very close
alias -- ös=ls
alias -- öös=ls
# Safe cat that uses colorize plugin ccat # Safe cat that uses colorize plugin ccat
custom-cat() { custom-cat() {
if [[ -t 1 ]]; then if [[ -t 1 ]]; then
@@ -61,7 +66,11 @@ _: {
} }
eval "$(direnv hook zsh)" eval "$(direnv hook zsh)"
eval "$(deja init zsh)" eval "$(deja init zsh)"
fastfetch''\n''; if [[ "$TERM_PROGRAM" != "vscode" ]]; then
fastfetch
fi
'';
shellAliases = { shellAliases = {
".." = "z .."; ".." = "z ..";
grep = "rg"; grep = "rg";
+1 -5
View File
@@ -1,8 +1,4 @@
{ {self, ...}: {
self,
inputs,
...
}: {
flake.nixosModules.battery-laptop = {pkgs, ...}: flake.nixosModules.battery-laptop = {pkgs, ...}:
# https://discourse.nixos.org/t/what-is-the-best-option-for-power-management/63406/2 # https://discourse.nixos.org/t/what-is-the-best-option-for-power-management/63406/2
# we just activate tlp unconditonally # we just activate tlp unconditonally
+20 -4
View File
@@ -1,10 +1,26 @@
_: { _: {
flake.nixosModules.hardwareUtils-laptop = {pkgs, ...}: { flake.nixosModules.hardwareUtils-laptop = {pkgs-unstable, ...}: {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs-unstable; [
# used for the framework 16 laptop # used for the framework 16 laptop
#framework-tool framework-tool
#framework-tool-tui framework-tool-tui
vial # Open-source GUI and QMK fork for configuring your keyboard in real time vial # Open-source GUI and QMK fork for configuring your keyboard in real time
netwatch
(diskwatch.override {
withSmartmontools = true;
})
syswatch
]; ];
services.fwupd.enable = true; # update device firmware
};
flake.nixosModules.hardwareUtils-desktop = {pkgs-unstable, ...}: {
environment.systemPackages = with pkgs-unstable; [
netwatch
(diskwatch.override {
withSmartmontools = true;
})
syswatch
];
services.fwupd.enable = true; # update device firmware
}; };
} }
+2 -2
View File
@@ -29,6 +29,7 @@
fonts fonts
games games
hardware-configuration-desktop hardware-configuration-desktop
hardwareUtils-desktop
hdd hdd
hledger hledger
hledger-desktop hledger-desktop
@@ -38,7 +39,6 @@
latex latex
ly ly
mathematics mathematics
mullvad
networking networking
nixUtils nixUtils
notifications notifications
@@ -51,6 +51,7 @@
rss rss
udev udev
user user
vpn
]; ];
}; };
flake.homeModules.desktop = {...}: { flake.homeModules.desktop = {...}: {
@@ -68,7 +69,6 @@
hyprland-desktop hyprland-desktop
kitty kitty
librewolf librewolf
mullvad
neovim neovim
nix-git-cherry-picker-desktop nix-git-cherry-picker-desktop
desktop-notewrapper desktop-notewrapper
+3 -2
View File
@@ -25,10 +25,12 @@
bootloader bootloader
browsers browsers
caelestia caelestia
cs-119l # I'm obliged to use vscode. RIP neovim
development development
documentation documentation
disk disk
disk-laptop disk-laptop
epfl
fonts fonts
gitBackup gitBackup
hardware-configuration-laptop hardware-configuration-laptop
@@ -41,7 +43,6 @@
latex latex
ly ly
mathematics mathematics
mullvad
networking networking
nixUtils-laptop nixUtils-laptop
nixUtils nixUtils
@@ -54,6 +55,7 @@
rss rss
udev udev
user user
vpn
]; ];
}; };
flake.homeModules.laptop = {...}: { flake.homeModules.laptop = {...}: {
@@ -72,7 +74,6 @@
hyprland-laptop hyprland-laptop
kitty kitty
librewolf librewolf
mullvad
neovim neovim
nix-git-cherry-picker-laptop nix-git-cherry-picker-laptop
laptop-notewrapper laptop-notewrapper
+12
View File
@@ -44,6 +44,18 @@ _: {
command = "${pkgs-unstable.nixos-rebuild}/bin/nixos-rebuild"; command = "${pkgs-unstable.nixos-rebuild}/bin/nixos-rebuild";
options = ["NOPASSWD"]; options = ["NOPASSWD"];
} }
{
command = "/run/current-system/sw/bin/open";
options = ["NOPASSWD"];
}
{
command = "${pkgs.openconnect}/bin/openconnect";
options = ["NOPASSWD"];
}
{
command = "${pkgs-unstable.openconnect}/bin/openconnect";
options = ["NOPASSWD"];
}
]; ];
} }
]; ];
+6
View File
@@ -13,5 +13,11 @@
group = "users"; group = "users";
mode = "0400"; mode = "0400";
}; };
age.secrets.epfl = {
file = ../../secrets/epfl.age;
owner = "tomasr";
group = "users";
mode = "0400";
};
}; };
} }
@@ -4,11 +4,14 @@
libnotify # Library that sends desktop notifications to a notification daemon libnotify # Library that sends desktop notifications to a notification daemon
socat # Utility for bidirectional data transfer between two independent data channels (used to communicate between hyprland and awww to change wallpapers dinamically) socat # Utility for bidirectional data transfer between two independent data channels (used to communicate between hyprland and awww to change wallpapers dinamically)
# battery notifications # battery notifications
self.packages.${pkgs.system}.custom-batterynotify /*
self.packages.${pkgs.system}.custom-batterynotify
self.packages.${pkgs.system}.custom-batterywarning self.packages.${pkgs.system}.custom-batterywarning
*/
self.packages.${pkgs.system}.custom-gitnotify # checks if git is set up self.packages.${pkgs.system}.custom-gitnotify # checks if git is set up
self.packages.${pkgs.system}.custom-checkKdrive # check if kdrive is set up with rclone self.packages.${pkgs.system}.custom-checkKdrive # check if kdrive is set up with rclone
zoom-us zoom-us
telegram-desktop
]; ];
}; };
perSystem = {pkgs, ...}: { perSystem = {pkgs, ...}: {
+65
View File
@@ -0,0 +1,65 @@
{self, ...}: {
flake.nixosModules.epfl = {pkgs, ...}: {
environment.systemPackages = with pkgs; [
openconnect
self.packages.${pkgs.system}.custom-mountEpflDrive
];
};
flake.nixosModules.cs-119l = {pkgs, ...}: let
user = "tomasr";
home = "/home/${user}";
src = "${home}/epfl/cs-119l-ICC/";
dst = "${home}/kdrive/Travail/2 - Bachelor/BA1/Information, calcul, communication CS-119l/code/";
in {
environment.systemPackages = with pkgs; [
vscode-fhs
];
systemd.services.sync-cs119l-to-kdrive = {
description = "Sync CS-119l ICC to kDrive";
serviceConfig = {
Type = "oneshot";
User = user;
ExecStart = "${pkgs.rsync}/bin/rsync -a '${src}' '${dst}'";
};
};
systemd.timers.sync-cs119l-to-kdrive = {
description = "Sync CS-119l ICC to kDrive every Thursday and Friday evening";
wantedBy = ["timers.target"];
timerConfig = {
OnCalendar = [
"Thu *-*-* 20:00:00"
"Fri *-*-* 20:00:00"
];
Persistent = true;
};
};
};
perSystem = {pkgs, ...}: {
packages.custom-mountEpflDrive = pkgs.writeShellApplication {
name = "custom-mountEpflDrive";
runtimeInputs = with pkgs; [
rclone
libnotify
];
text = ''
REMOTE_NAME="epfl"
MOUNT_POINT="$HOME/epfl/drive"
if rclone listremotes | rg "^''${REMOTE_NAME}:"; then
echo "Mounting ''${REMOTE_NAME}..."
rclone mount "''${REMOTE_NAME}:" "$MOUNT_POINT" --vfs-cache-mode writes --allow-non-empty &
else
notify-send "rclone mount failed" \
"Remote ''${REMOTE_NAME} not found.\nConfigure rclone and create the dir ~/epfl/drive/ or comment out the exec line in hyprland.lua."
echo "Remote ''${REMOTE_NAME} not found. Configure rclone or comment out the exec line in hyprland.lua."
fi
'';
};
};
}
+1
View File
@@ -45,6 +45,7 @@
nix-index nix-index
statix statix
self.packages.${pkgs-unstable.system}.custom-trimmer self.packages.${pkgs-unstable.system}.custom-trimmer
nix-update # nix-update <package> --build --test --format # the review will be done by nixpkgs-review-gha
]; ];
}; };
perSystem = {pkgs, ...}: { perSystem = {pkgs, ...}: {
+6 -3
View File
@@ -1,7 +1,11 @@
{self, ...}: { {self, ...}: {
flake.nixosModules.otherUtils = flake.nixosModules.otherUtils =
# try to keep packages here at a minium. Preferably use a dedicated file # try to keep packages here at a minium. Preferably use a dedicated file
{pkgs, ...}: { {
pkgs,
pkgs-unstable,
...
}: {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
gnome-calculator gnome-calculator
snapshot snapshot
@@ -18,8 +22,7 @@
usbutils # used for lsusb usbutils # used for lsusb
self.packages.${pkgs.system}.custom-tomato self.packages.${pkgs.system}.custom-tomato
self.packages.${pkgs.system}.custom-syllabes self.packages.${pkgs.system}.custom-syllabes
# Electron 39 EOL. https://github.com/bitwarden/clients/pull/20448 should move it to 41. For the moment use the browser extension pkgs-unstable.bitwarden-desktop
#pkgs-unstable.bitwarden-desktop
fluffychat # matrix client fluffychat # matrix client
]; ];
}; };
+99
View File
@@ -0,0 +1,99 @@
# config for openconnect is in ./epfl.nix
{self, ...}: {
flake.nixosModules.vpn = {pkgs, ...}: {
services.mullvad-vpn = {
enable = true;
};
environment.systemPackages = [
self.packages.${pkgs.system}.custom-vpn-picker
];
age.secrets.epfl = {
file = ../../secrets/epfl.age;
};
};
perSystem = {pkgs, ...}: {
packages.custom-vpn-picker = pkgs.writeShellApplication {
name = "custom-vpn-picker";
runtimeInputs = with pkgs; [
fzf
mullvad-compass
mullvad
openconnect
gawk
wl-clipboard
cliphist
];
text = ''
mullvad_connect () {
mullvad disconnect
mullvad relay set location "$1"
mullvad connect
}
profiles=(
"mullvad-best"
"mullvad-zurich"
"mullvad-tirana"
"mullvad-bogota"
"epfl"
"disconnect"
)
selected=$(printf "%s\n" "''${profiles[@]}" |
fzf --height 8 --reverse --prompt="Select vpn:")
[[ -z "$selected" ]] && exit 0
if [[ "$selected" == "mullvad-best" ]]; then
mullvad_connect "$(
mullvad-compass |
awk '/Best server:/ {
getline
split($1, a, "-")
print a[1]
}'
)"
elif [[ "$selected" == "mullvad-zurich" ]]; then
mullvad_connect ch
elif [[ "$selected" == "mullvad-tirana" ]]; then
mullvad_connect al
elif [[ "$selected" == "mullvad-bogota" ]]; then
mullvad_connect co
elif [[ "$selected" == "epfl" ]]; then
# shellcheck disable=SC1091
source /run/agenix/epfl
# Put password in clipboard so it can be pasted into openconnect.
printf '%s' "$EPFL_VPN_PASSWORD" | wl-copy
sudo openconnect \
--background \
--pid-file="$HOME/.local/state/epfl-openconnect.pid" \
--server="$EPFL_VPN_SERVER" \
--user="$EPFL_VPN_USER"
# Remove the password from cliphist and clear the current clipboard.
cliphist delete-query "$EPFL_VPN_PASSWORD" || true
wl-copy --clear
elif [[ "$selected" == "disconnect" ]]; then
if [[ -f "$HOME/.local/state/epfl-openconnect.pid" ]]; then
sudo kill "$(cat "$HOME/.local/state/epfl-openconnect.pid")" 2>/dev/null || true
fi
mullvad disconnect
rm "$HOME/.local/state/epfl-openconnect.pid"
fi
pkill -f "kitty.*Select vpn option" || true
exit
'';
};
};
}
+12 -5
View File
@@ -300,7 +300,7 @@ hl.bind(mod .. " + D", hl.dsp.layout("move +col"))
hl.bind(mod .. " + T", hl.dsp.exec_cmd(term)) hl.bind(mod .. " + T", hl.dsp.exec_cmd(term))
hl.bind(mod .. " + E", hl.dsp.exec_cmd(file)) hl.bind(mod .. " + E", hl.dsp.exec_cmd(file))
hl.bind(mod .. " + F", hl.dsp.exec_cmd(browser)) hl.bind(mod .. " + F", hl.dsp.exec_cmd(browser))
hl.bind(mod .. " + N", hl.dsp.exec_cmd(notes)) hl.bind(mod .. " + N", hl.dsp.exec_cmd("kitty --hold --class \"custom-vpn-picker\" --name \"Select vpn option\" custom-vpn-picker"))
hl.bind(mod .. " + SHIFT + A", hl.dsp.exec_cmd("caelestia shell drawers toggle launcher")) hl.bind(mod .. " + SHIFT + A", hl.dsp.exec_cmd("caelestia shell drawers toggle launcher"))
hl.bind(mod .. " + Q", close_or_move_special) hl.bind(mod .. " + Q", close_or_move_special)
local function toggle_sidebar() local function toggle_sidebar()
@@ -322,7 +322,7 @@ hl.bind(mod .. " + CTRL + 3", hl.dsp.exec_cmd("pavucontrol"))
hl.bind("CTRL + SHIFT + ALT + 0", hl.dsp.exec_cmd("kitty --hold --class \"custom-changeAudioOutput\" --name \"Select audio output\" zsh -c \"custom-changeAudioOutput\"")) hl.bind("CTRL + SHIFT + ALT + 0", hl.dsp.exec_cmd("kitty --hold --class \"custom-changeAudioOutput\" --name \"Select audio output\" zsh -c \"custom-changeAudioOutput\""))
hl.bind(mod .. " + CTRL + 5", hl.dsp.exec_cmd("gnome-characters")) hl.bind(mod .. " + CTRL + 5", hl.dsp.exec_cmd("gnome-characters"))
hl.bind("CTRL + ALT + 8", hl.dsp.exec_cmd("hyprpicker | tee >(wl-copy) | cliphist store")) hl.bind("CTRL + ALT + 8", hl.dsp.exec_cmd("hyprpicker | tee >(wl-copy) | cliphist store"))
hl.bind("CTRL + ALT + 0", hl.dsp.exec_cmd("custom-tomato")) -- hl.bind("CTRL + ALT + 0", hl.dsp.exec_cmd("custom-tomato"))
hl.bind("CTRL + ALT + 2", hl.dsp.exec_cmd("custom-bottom")) hl.bind("CTRL + ALT + 2", hl.dsp.exec_cmd("custom-bottom"))
hl.bind("CTRL + ALT + 9", hl.dsp.exec_cmd("anki")) hl.bind("CTRL + ALT + 9", hl.dsp.exec_cmd("anki"))
@@ -812,6 +812,13 @@ hl.window_rule({
float = true, float = true,
size = "400 225", size = "400 225",
}) })
hl.window_rule({
match = {
class = "^(custom-vpn-picker)$",
},
float = true,
size = "350 250",
})
hl.window_rule({ hl.window_rule({
match = { match = {
@@ -919,7 +926,6 @@ hl.config({
hl.on("hyprland.start", function() hl.on("hyprland.start", function()
hl.exec_cmd("/nix/store/8kih8alkk4qzgjchg5501r1c3a8a71aw-dbus-1.16.2/bin/dbus-update-activation-environment --systemd DISPLAY HYPRLAND_INSTANCE_SIGNATURE WAYLAND_DISPLAY XDG_CURRENT_DESKTOP XDG_SESSION_TYPE && systemctl --user stop hyprland-session.target && systemctl --user start hyprland-session.target") hl.exec_cmd("/nix/store/8kih8alkk4qzgjchg5501r1c3a8a71aw-dbus-1.16.2/bin/dbus-update-activation-environment --systemd DISPLAY HYPRLAND_INSTANCE_SIGNATURE WAYLAND_DISPLAY XDG_CURRENT_DESKTOP XDG_SESSION_TYPE && systemctl --user stop hyprland-session.target && systemctl --user start hyprland-session.target")
hl.exec_cmd("qtbatticon")
hl.exec_cmd("source /run/agenix/ntfy && nixpkgs-notifier listen") hl.exec_cmd("source /run/agenix/ntfy && nixpkgs-notifier listen")
hl.exec_cmd("dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP") hl.exec_cmd("dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP")
hl.exec_cmd("dbus-update-activation-environment --systemd --all") hl.exec_cmd("dbus-update-activation-environment --systemd --all")
@@ -929,11 +935,12 @@ hl.on("hyprland.start", function()
hl.exec_cmd("udiskie --no-automount --smart-tray") hl.exec_cmd("udiskie --no-automount --smart-tray")
hl.exec_cmd("nm-applet --indicator") hl.exec_cmd("nm-applet --indicator")
hl.exec_cmd("rm -rf ~/.cache/cliphist/ && wl-paste --type text --watch cliphist store & wl-paste --type image --watch cliphist store") hl.exec_cmd("rm -rf ~/.cache/cliphist/ && wl-paste --type text --watch cliphist store & wl-paste --type image --watch cliphist store")
hl.exec_cmd("custom-batterynotify") -- hl.exec_cmd("custom-batterynotify")
hl.exec_cmd("custom-batterywarning") -- hl.exec_cmd("custom-batterywarning")
hl.exec_cmd("awww img WALLPAPER/PATH/PLACEHOLDER") hl.exec_cmd("awww img WALLPAPER/PATH/PLACEHOLDER")
hl.exec_cmd("awww-daemon") hl.exec_cmd("awww-daemon")
hl.exec_cmd("custom-checkKdrive && custom-mountkdrive") hl.exec_cmd("custom-checkKdrive && custom-mountkdrive")
hl.exec_cmd("custom-mountEpflDrive")
hl.exec_cmd("custom-gitnotify") hl.exec_cmd("custom-gitnotify")
hl.exec_cmd("sleep 4 & caelestia-shell") hl.exec_cmd("sleep 4 & caelestia-shell")
hl.exec_cmd("sleep 20 && ngcp pull --automatic") hl.exec_cmd("sleep 20 && ngcp pull --automatic")
+7
View File
@@ -0,0 +1,7 @@
age-encryption.org/v1
-> X25519 XuDyuQL0WjW/IvtzxswKnOfXlJa42Itdu+inNPsiNhw
3z2v3GbNdMvX9QtgAMrWZB/5Y1HatgpoXGQUMnW91+M
-> ssh-ed25519 +tvThg i3NM64rsEgRRgah4PKWdrl4i0pmP6X2bgr2Etzm33Ag
OwUETps78LPyjIAcJo8eC9eh0m9qtRUh399xGzMCTwQ
--- 7LnVrVnmfA8YubysLVeGyRGlLI+ef0VxnIHRi6rRAlc
W¾TîópF’X±áì‘làBTœÝ"^ï”�-þµ‹à¤û§÷Ÿ(üÛ'™ghÕóÎôGÜqx5FË~6Èï6DÎí¬gŒz…¾w·nñSÏHtß…ÌÂÓT«Úè›æŒÅó¤˜sød@°1!P""WHA$Ÿ�›,d68Ñ“õˆ�k“tù\qXÞHŽ®R=�vÕîŸZ
+4
View File
@@ -6,4 +6,8 @@ in {
backupAgeKey backupAgeKey
laptopHostKey laptopHostKey
]; ];
"epfl.age".publicKeys = [
backupAgeKey
laptopHostKey
];
} }