mirror of
https://github.com/tomasriveral/nixos.git
synced 2026-10-13 01:40:55 +02:00
Compare commits
53
Commits
a3bf2552a2
...
laptop
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a424a01309 | ||
|
|
8a467889bd | ||
|
|
783f7ffc59 | ||
|
|
f702287f7a | ||
|
|
d8b3830520 | ||
|
|
cc5c4bf865 | ||
|
|
e58701d75a | ||
|
|
e88e946110 | ||
|
|
aa335ec277 | ||
|
|
28a9c37369 | ||
|
|
3d273bdd13 | ||
|
|
3871205f6a | ||
|
|
3c44b9d9c0 | ||
|
|
8741846a72 | ||
|
|
5c9d8aee46 | ||
|
|
018d5464db | ||
|
|
db3b4ef194 | ||
|
|
5e717182ed | ||
|
|
5d268e49b9 | ||
|
|
377ec45fad | ||
|
|
7a0454befb | ||
|
|
acefe53275 | ||
|
|
8edf285346 | ||
|
|
5b7bc76c47 | ||
|
|
a599d4b67c | ||
|
|
9155de7abb | ||
|
|
deae612ef8 | ||
|
|
f5490420ba | ||
|
|
45f068c894 | ||
|
|
940cb8a5e9 | ||
|
|
3cd365fbe4 | ||
|
|
943f056e73 | ||
|
|
3e39d45a66 | ||
|
|
96bcd38ff0 | ||
|
|
969583f6ef | ||
|
|
b55fcede9b | ||
|
|
8ae7323dff | ||
|
|
0028993476 | ||
|
|
960a279117 | ||
|
|
8ca9ac4374 | ||
|
|
d0015eae2b | ||
|
|
2186ab5c08 | ||
|
|
73001d5000 | ||
|
|
b46b4e8487 | ||
|
|
5e9c1d5397 | ||
|
|
22cc03b95a | ||
|
|
b30e2abbf4 | ||
|
|
6b674af0a2 | ||
|
|
3bf45ad9c2 | ||
|
|
9b0dbd70a4 | ||
|
|
18fbd68abe | ||
|
|
7cf6867ece | ||
|
|
9fa7397f5c |
No files matched your search
@@ -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 3 | Special characters (`CTRL + SUPER + 5`) |
|
||||
| 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`) |
|
||||
|
||||
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.
|
||||
|
||||
* 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
|
||||
@@ -641,6 +643,7 @@ Some application state may need to be configured manually after installation:
|
||||
* Birdtray settings
|
||||
* Inkscape settings
|
||||
* other application-specific user data
|
||||
* git configuration
|
||||
|
||||
---
|
||||
|
||||
|
||||
Generated
+30
-30
@@ -36,11 +36,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1786071436,
|
||||
"narHash": "sha256-/CQJ781dRGWWUMrJ34vIj1PQnNEEWgnEEuod0r5LKGk=",
|
||||
"lastModified": 1787276686,
|
||||
"narHash": "sha256-rYdGb5rKIfETdlenQRxHfg17dhf9fN8eaRryX6sztnQ=",
|
||||
"owner": "caelestia-dots",
|
||||
"repo": "cli",
|
||||
"rev": "751fbc555a83faba5dd589270d14eeb22afab174",
|
||||
"rev": "7401d9e3a371e583bc0b42dc1a139d01e278e6c1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -59,11 +59,11 @@
|
||||
"quickshell": "quickshell"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1786238888,
|
||||
"narHash": "sha256-pnO0u0UUYwkr72pJR5Giu93LZfU/fhTKJZYa1xeM7Po=",
|
||||
"lastModified": 1787890941,
|
||||
"narHash": "sha256-j91lsxm/wuuoPPwz4RQOr520EXlHgLPWfSW0KqKsy7E=",
|
||||
"owner": "caelestia-dots",
|
||||
"repo": "shell",
|
||||
"rev": "817a220e8e87c4df9f3681033a0d8a8054cdaa30",
|
||||
"rev": "1b7052d108677a7ca0d3d3365511bfe8281a6868",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -119,12 +119,12 @@
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1785627969,
|
||||
"narHash": "sha256-4dtXQk/NMePegK/nWp5NSeuZKLATItOq61lpEvmXqGw=",
|
||||
"rev": "427bf4bd9435fdf21321c8cc628c24efc14c0f7a",
|
||||
"revCount": 483,
|
||||
"lastModified": 1787559586,
|
||||
"narHash": "sha256-onL0VLf9vPllmT0H/OlURIU5r5t5WIEl7t4tVNKT0Nw=",
|
||||
"rev": "9d0d87172c374f89da73c1cfe6d81ae62feac1f1",
|
||||
"revCount": 489,
|
||||
"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": {
|
||||
"type": "tarball",
|
||||
@@ -155,11 +155,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1785119570,
|
||||
"narHash": "sha256-Rgs2xKnGLFWQscxUaXX07oyZeuMDOHEbqDOsgliLFGM=",
|
||||
"lastModified": 1787377438,
|
||||
"narHash": "sha256-Sxu1NLTD/Ern6hFGLlZmtKCSct3YQXZI/lls8RE1XeM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "d4fd24667c8cbef124bb70a20380cab75ec8474d",
|
||||
"rev": "65258d5c65a250189fde2e35f490d15e064c4c62",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -226,11 +226,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1786711500,
|
||||
"narHash": "sha256-QvnceIGTBeDvDd9oCn+GvdsnkquliuwbVgpiRH68qaQ=",
|
||||
"lastModified": 1787848966,
|
||||
"narHash": "sha256-7gDpu5hpq0rOYnYMcOWqSzquK4HA/xU8Xf3CjUBOOJA=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "02e08985a27c65ffd33d434eeb2e660a2e4dc84d",
|
||||
"rev": "d57af924f160a5084293c71c2043f058bd1cdb60",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -280,11 +280,11 @@
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1786593342,
|
||||
"narHash": "sha256-smTKQXMLLStzc8zJevMCckbk3My7SvbbLmPYZUJJKW4=",
|
||||
"lastModified": 1787814960,
|
||||
"narHash": "sha256-PYZq1qzCJXC2zGI0mH07vrZBsw6DRBAOX0jN1pPtqOQ=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "6b5e5b7a6631f065bf6908986990b37d845f847f",
|
||||
"rev": "c27cdad491a991b11ed731760aa2ef8db0cb0410",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -304,11 +304,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1786722495,
|
||||
"narHash": "sha256-pLLWA0cicB9umFfutsqiJPqSPCWLz8RVo/rbGpIxi40=",
|
||||
"lastModified": 1787547082,
|
||||
"narHash": "sha256-v2KPBHgeSvThqz/qsajxpc98CIcBhXson4uUazAuwFs=",
|
||||
"owner": "tomasriveral",
|
||||
"repo": "notewrapper",
|
||||
"rev": "edc979dccba67ebe0e949e9c0dc6cb2ba1f7b6f3",
|
||||
"rev": "713fa27893c91896607229895d06e4b853edceeb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -328,11 +328,11 @@
|
||||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1786270331,
|
||||
"narHash": "sha256-GRhNuYIXR/0WWBya4CHfTKyCbL3wuFPJC5yBh5pHU8s=",
|
||||
"lastModified": 1787604401,
|
||||
"narHash": "sha256-r5Ts5BWk99uIuyFqai85c+WdS3AAar20Qgd0diV1YoM=",
|
||||
"owner": "r14dd",
|
||||
"repo": "patent",
|
||||
"rev": "d852cea921124a8b9002db9beb2af2d935af8130",
|
||||
"rev": "bbe68e8ebc29ca6cec996f89b03997a5d67aa550",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -349,11 +349,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1785704021,
|
||||
"narHash": "sha256-eQtczKMAS4ItlB4pr1B3MqBZiyRVl2nkqNdtyRSQMa8=",
|
||||
"lastModified": 1787440121,
|
||||
"narHash": "sha256-OZdLL1rMR9kjTFZroOODeyQ0u6nrSxcFHlK6JUi+R/c=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "28771c7c74b42e20afca0b1b63980cb46515537c",
|
||||
"revCount": 835,
|
||||
"rev": "0fed22a2c47d9568ddf13cf61586b3f2ac4378a2",
|
||||
"revCount": 847,
|
||||
"type": "git",
|
||||
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
||||
},
|
||||
|
||||
@@ -69,12 +69,15 @@
|
||||
flake = let
|
||||
system = "x86_64-linux";
|
||||
unfreePkgs = [
|
||||
"code"
|
||||
"hplip"
|
||||
"nvidia-x11"
|
||||
"nvidia-settings"
|
||||
"steam"
|
||||
"steam-unwrapped"
|
||||
"cheatsheet.nvim"
|
||||
"vscode"
|
||||
"vscode-fhs"
|
||||
"zoom-us"
|
||||
"zoom"
|
||||
];
|
||||
|
||||
@@ -402,6 +402,24 @@
|
||||
keyword = "nix function search";
|
||||
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 = {
|
||||
|
||||
@@ -24,16 +24,16 @@
|
||||
inhibitWhenAudio = true;
|
||||
timeouts = [
|
||||
{
|
||||
timeout = 180;
|
||||
timeout = 1000;
|
||||
idleAction = "lock";
|
||||
}
|
||||
{
|
||||
timeout = 300;
|
||||
timeout = 1010;
|
||||
idleAction = "dpms off"; # what's that?
|
||||
returnAction = "dpms on";
|
||||
}
|
||||
{
|
||||
timeout = 600;
|
||||
timeout = 12200;
|
||||
idleAction = ["systemctl" "suspend-then-hibernate"];
|
||||
}
|
||||
];
|
||||
|
||||
@@ -3,6 +3,8 @@ _: {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
/*
|
||||
for some reason this doesnt work really well. So it's best to setup git imperatively
|
||||
push.autoSetupRemote to true
|
||||
settings = {
|
||||
init.defaultBranch = "main";
|
||||
};
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{...}: {
|
||||
_: {
|
||||
flake.nixosModules.hyprland = {
|
||||
pkgs,
|
||||
pkgs-unstable,
|
||||
@@ -35,74 +35,72 @@
|
||||
services.xserver.enable = true;
|
||||
};
|
||||
flake.homeModules.hyprland-laptop = {
|
||||
home.file.".config/hypr/host.lua" = {
|
||||
text = ''
|
||||
hl.on("hyprland.start", function()
|
||||
hl.exec_cmd("qtbatticon")
|
||||
hl.exec_cmd("source /run/agenix/ntfy && nixpkgs-notifier listen")
|
||||
end)
|
||||
|
||||
hl.monitor({
|
||||
output = "eDP-1",
|
||||
mode = "highres@highrr",
|
||||
position = "0x0",
|
||||
scale = 1,
|
||||
})
|
||||
'';
|
||||
enable = true;
|
||||
force = true;
|
||||
};
|
||||
};
|
||||
flake.homeModules.hyprland-desktop = {
|
||||
home.file.".config/hypr/host.lua" = {
|
||||
text = ''
|
||||
hl.monitor({
|
||||
output = "",
|
||||
mode = "preferred",
|
||||
position = "auto",
|
||||
scale = 0.75,
|
||||
})
|
||||
'';
|
||||
enable = true;
|
||||
force = true;
|
||||
};
|
||||
};
|
||||
flake.homeModules.hyprland = {pkgs-unstable, ... }:
|
||||
let
|
||||
wallpaper1 = ../../assets/wallpaper1.jpg;
|
||||
wallpaper2 = ../../assets/wallpaper2.jpg;
|
||||
wallpaper3 = ../../assets/wallpaper3.jpg;
|
||||
wallpaper4 = ../../assets/wallpaper4.jpg;
|
||||
wallpaper5 = ../../assets/wallpaper5.jpg;
|
||||
home.file.".config/hypr/host.lua" = {
|
||||
text = ''
|
||||
hl.on("hyprland.start", function()
|
||||
hl.exec_cmd("qtbatticon")
|
||||
end)
|
||||
|
||||
hyprlandLua = builtins.replaceStrings
|
||||
[
|
||||
"WALLPAPER1/PATH/PLACEHOLDER"
|
||||
"WALLPAPER2/PATH/PLACEHOLDER"
|
||||
"WALLPAPER3/PATH/PLACEHOLDER"
|
||||
"WALLPAPER4/PATH/PLACEHOLDER"
|
||||
"WALLPAPER5/PATH/PLACEHOLDER"
|
||||
]
|
||||
[
|
||||
(toString wallpaper1)
|
||||
(toString wallpaper2)
|
||||
(toString wallpaper3)
|
||||
(toString wallpaper4)
|
||||
(toString wallpaper5)
|
||||
]
|
||||
(builtins.readFile ../../other/hyprland/hyprland.lua);
|
||||
in
|
||||
{
|
||||
#refer to https://wiki.hypr.land/Nix/Hyprland-on-Home-Manager/
|
||||
wayland.windowManager.hyprland.enable = true;
|
||||
wayland.windowManager.hyprland.package = pkgs-unstable.hyprland;
|
||||
#hint Electron apps to use on wayland;
|
||||
home.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||
wayland.windowManager.hyprland.plugins = [
|
||||
#pkgs-unstable.hyprlandPlugins.hyprspace # currently broken
|
||||
#pkgs-unstable.hyprlandPlugins.hypr-dynamic-cursors
|
||||
];
|
||||
wayland.windowManager.hyprland.configType = "lua";
|
||||
wayland.windowManager.hyprland.extraConfig = hyprlandLua;
|
||||
hl.monitor({
|
||||
output = "eDP-1",
|
||||
mode = "highres@highrr",
|
||||
position = "0x0",
|
||||
scale = 1,
|
||||
})
|
||||
'';
|
||||
enable = true;
|
||||
force = true;
|
||||
};
|
||||
};
|
||||
flake.homeModules.hyprland-desktop = {
|
||||
home.file.".config/hypr/host.lua" = {
|
||||
text = ''
|
||||
hl.monitor({
|
||||
output = "",
|
||||
mode = "preferred",
|
||||
position = "auto",
|
||||
scale = 0.75,
|
||||
})
|
||||
'';
|
||||
enable = true;
|
||||
force = true;
|
||||
};
|
||||
};
|
||||
flake.homeModules.hyprland = {pkgs-unstable, ...}: let
|
||||
wallpaper1 = ../../assets/wallpaper1.jpg;
|
||||
wallpaper2 = ../../assets/wallpaper2.jpg;
|
||||
wallpaper3 = ../../assets/wallpaper3.jpg;
|
||||
wallpaper4 = ../../assets/wallpaper4.jpg;
|
||||
wallpaper5 = ../../assets/wallpaper5.jpg;
|
||||
|
||||
hyprlandLua =
|
||||
builtins.replaceStrings
|
||||
[
|
||||
"WALLPAPER1/PATH/PLACEHOLDER"
|
||||
"WALLPAPER2/PATH/PLACEHOLDER"
|
||||
"WALLPAPER3/PATH/PLACEHOLDER"
|
||||
"WALLPAPER4/PATH/PLACEHOLDER"
|
||||
"WALLPAPER5/PATH/PLACEHOLDER"
|
||||
]
|
||||
[
|
||||
(toString wallpaper1)
|
||||
(toString wallpaper2)
|
||||
(toString wallpaper3)
|
||||
(toString wallpaper4)
|
||||
(toString wallpaper5)
|
||||
]
|
||||
(builtins.readFile ../../other/hyprland/hyprland.lua);
|
||||
in {
|
||||
#refer to https://wiki.hypr.land/Nix/Hyprland-on-Home-Manager/
|
||||
wayland.windowManager.hyprland.enable = true;
|
||||
wayland.windowManager.hyprland.package = pkgs-unstable.hyprland;
|
||||
#hint Electron apps to use on wayland;
|
||||
home.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||
wayland.windowManager.hyprland.plugins = [
|
||||
#pkgs-unstable.hyprlandPlugins.hyprspace # currently broken
|
||||
#pkgs-unstable.hyprlandPlugins.hypr-dynamic-cursors
|
||||
];
|
||||
wayland.windowManager.hyprland.configType = "lua";
|
||||
wayland.windowManager.hyprland.extraConfig = hyprlandLua;
|
||||
};
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
_: {
|
||||
flake.nixosModules.mullvad = _: {
|
||||
services.mullvad-vpn = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
flake.homeModules.mullvad = _: {
|
||||
programs.mullvad-vpn = {
|
||||
# gui
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -333,7 +333,7 @@ _: {
|
||||
}
|
||||
})
|
||||
vim.lsp.config("texlab", { cmd = { "texlab" }, filetypes = { "tex" }, on_attach = on_attach })
|
||||
|
||||
|
||||
-- i remove ltex from being enable bellow as it's too anoying and doesn't really help as sometime i write in french and other times in english/spanish or even german
|
||||
vim.lsp.config("ltex", {
|
||||
cmd = { "ltex-ls-plus" },
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
force = true;
|
||||
text = ''
|
||||
{
|
||||
"directory": ["~/kdrive/Notes/"],
|
||||
"directory": ["~/Documents/Notes/"],
|
||||
"render": true,
|
||||
"jumpToEndOfFileOnLaunch": true,
|
||||
"editor": "neovim",
|
||||
@@ -18,7 +18,7 @@
|
||||
"backup": {
|
||||
"enable": true,
|
||||
"directory": {
|
||||
"~/kdrive/Notes/": "~/kdrive/Notes/"
|
||||
"~/Documents/Notes/": "~/kdrive/Notes/"
|
||||
},
|
||||
"interval": "daily",
|
||||
"rsyncArgs": ["-Lqah", "--update"],
|
||||
|
||||
@@ -43,6 +43,11 @@ _: {
|
||||
enable = true;
|
||||
autosuggestion.enable = false; # zsh-autocomplete is replaced by deja
|
||||
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
|
||||
custom-cat() {
|
||||
if [[ -t 1 ]]; then
|
||||
@@ -51,7 +56,7 @@ _: {
|
||||
command cat "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
custom-eza() { # behaves differently if we just call it or if we pipe initContent
|
||||
if [[ -t 1 ]]; then
|
||||
eza -hlF -aa --color=always --hyperlink --group-directories-first --show-symlinks --icons=always --git --no-permissions "$@"
|
||||
@@ -61,7 +66,11 @@ _: {
|
||||
}
|
||||
eval "$(direnv hook zsh)"
|
||||
eval "$(deja init zsh)"
|
||||
fastfetch''\n'';
|
||||
if [[ "$TERM_PROGRAM" != "vscode" ]]; then
|
||||
fastfetch
|
||||
fi
|
||||
|
||||
'';
|
||||
shellAliases = {
|
||||
".." = "z ..";
|
||||
grep = "rg";
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
{
|
||||
self,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
{self, ...}: {
|
||||
flake.nixosModules.battery-laptop = {pkgs, ...}:
|
||||
# https://discourse.nixos.org/t/what-is-the-best-option-for-power-management/63406/2
|
||||
# we just activate tlp unconditonally
|
||||
|
||||
@@ -1,10 +1,26 @@
|
||||
_: {
|
||||
flake.nixosModules.hardwareUtils-laptop = {pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
flake.nixosModules.hardwareUtils-laptop = {pkgs-unstable, ...}: {
|
||||
environment.systemPackages = with pkgs-unstable; [
|
||||
# used for the framework 16 laptop
|
||||
#framework-tool
|
||||
#framework-tool-tui
|
||||
framework-tool
|
||||
framework-tool-tui
|
||||
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
|
||||
};
|
||||
}
|
||||
@@ -29,6 +29,7 @@
|
||||
fonts
|
||||
games
|
||||
hardware-configuration-desktop
|
||||
hardwareUtils-desktop
|
||||
hdd
|
||||
hledger
|
||||
hledger-desktop
|
||||
@@ -38,7 +39,6 @@
|
||||
latex
|
||||
ly
|
||||
mathematics
|
||||
mullvad
|
||||
networking
|
||||
nixUtils
|
||||
notifications
|
||||
@@ -51,6 +51,7 @@
|
||||
rss
|
||||
udev
|
||||
user
|
||||
vpn
|
||||
];
|
||||
};
|
||||
flake.homeModules.desktop = {...}: {
|
||||
@@ -68,7 +69,6 @@
|
||||
hyprland-desktop
|
||||
kitty
|
||||
librewolf
|
||||
mullvad
|
||||
neovim
|
||||
nix-git-cherry-picker-desktop
|
||||
desktop-notewrapper
|
||||
|
||||
@@ -25,10 +25,12 @@
|
||||
bootloader
|
||||
browsers
|
||||
caelestia
|
||||
cs-119l # I'm obliged to use vscode. RIP neovim
|
||||
development
|
||||
documentation
|
||||
disk
|
||||
disk-laptop
|
||||
epfl
|
||||
fonts
|
||||
gitBackup
|
||||
hardware-configuration-laptop
|
||||
@@ -41,7 +43,6 @@
|
||||
latex
|
||||
ly
|
||||
mathematics
|
||||
mullvad
|
||||
networking
|
||||
nixUtils-laptop
|
||||
nixUtils
|
||||
@@ -54,6 +55,7 @@
|
||||
rss
|
||||
udev
|
||||
user
|
||||
vpn
|
||||
];
|
||||
};
|
||||
flake.homeModules.laptop = {...}: {
|
||||
@@ -72,7 +74,6 @@
|
||||
hyprland-laptop
|
||||
kitty
|
||||
librewolf
|
||||
mullvad
|
||||
neovim
|
||||
nix-git-cherry-picker-laptop
|
||||
laptop-notewrapper
|
||||
|
||||
@@ -44,6 +44,18 @@ _: {
|
||||
command = "${pkgs-unstable.nixos-rebuild}/bin/nixos-rebuild";
|
||||
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"];
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
@@ -13,5 +13,11 @@
|
||||
group = "users";
|
||||
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
|
||||
socat # Utility for bidirectional data transfer between two independent data channels (used to communicate between hyprland and awww to change wallpapers dinamically)
|
||||
# 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-gitnotify # checks if git is set up
|
||||
self.packages.${pkgs.system}.custom-checkKdrive # check if kdrive is set up with rclone
|
||||
zoom-us
|
||||
telegram-desktop
|
||||
];
|
||||
};
|
||||
perSystem = {pkgs, ...}: {
|
||||
|
||||
@@ -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
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -45,6 +45,7 @@
|
||||
nix-index
|
||||
statix
|
||||
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, ...}: {
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
{self, ...}: {
|
||||
flake.nixosModules.otherUtils =
|
||||
# try to keep packages here at a minium. Preferably use a dedicated file
|
||||
{pkgs, ...}: {
|
||||
{
|
||||
pkgs,
|
||||
pkgs-unstable,
|
||||
...
|
||||
}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
gnome-calculator
|
||||
snapshot
|
||||
@@ -18,8 +22,7 @@
|
||||
usbutils # used for lsusb
|
||||
self.packages.${pkgs.system}.custom-tomato
|
||||
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
|
||||
];
|
||||
};
|
||||
|
||||
@@ -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
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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 .. " + E", hl.dsp.exec_cmd(file))
|
||||
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 .. " + Q", close_or_move_special)
|
||||
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(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 + 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 + 9", hl.dsp.exec_cmd("anki"))
|
||||
|
||||
@@ -812,6 +812,13 @@ hl.window_rule({
|
||||
float = true,
|
||||
size = "400 225",
|
||||
})
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(custom-vpn-picker)$",
|
||||
},
|
||||
float = true,
|
||||
size = "350 250",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
@@ -919,7 +926,6 @@ hl.config({
|
||||
|
||||
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("qtbatticon")
|
||||
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 --all")
|
||||
@@ -929,11 +935,12 @@ hl.on("hyprland.start", function()
|
||||
hl.exec_cmd("udiskie --no-automount --smart-tray")
|
||||
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("custom-batterynotify")
|
||||
hl.exec_cmd("custom-batterywarning")
|
||||
-- hl.exec_cmd("custom-batterynotify")
|
||||
-- hl.exec_cmd("custom-batterywarning")
|
||||
hl.exec_cmd("awww img WALLPAPER/PATH/PLACEHOLDER")
|
||||
hl.exec_cmd("awww-daemon")
|
||||
hl.exec_cmd("custom-checkKdrive && custom-mountkdrive")
|
||||
hl.exec_cmd("custom-mountEpflDrive")
|
||||
hl.exec_cmd("custom-gitnotify")
|
||||
hl.exec_cmd("sleep 4 & caelestia-shell")
|
||||
hl.exec_cmd("sleep 20 && ngcp pull --automatic")
|
||||
|
||||
@@ -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
|
||||
@@ -6,4 +6,8 @@ in {
|
||||
backupAgeKey
|
||||
laptopHostKey
|
||||
];
|
||||
"epfl.age".publicKeys = [
|
||||
backupAgeKey
|
||||
laptopHostKey
|
||||
];
|
||||
}
|
||||
Reference in new issue
Block a user