74 Commits
Author SHA1 Message Date
tomasr 04e2554bac hyprland migrate to lua 2026-08-13 16:16:32 +02:00
tomasr 02e2fb2815 usable state. will slowly workout errors 2026-08-13 16:14:52 +02:00
tomasr 84a22e4b22 somewhat workable state 2026-08-13 16:14:52 +02:00
tomasr ca8e4769cc fix escaping binds 2026-08-13 16:14:47 +02:00
tomasr 87354d627e remove old binds 2026-08-13 16:14:23 +02:00
tomasr 3a4ece0a5e Migrate binds 2026-08-13 16:14:23 +02:00
tomasr 9496ed6930 remove temp binds 2026-08-13 16:14:20 +02:00
tomasr 3eba410a3b temp remove animation hyprland 2026-08-13 16:13:09 +02:00
tomasr 105b354da4 hyprland fix hl.on hyprland.start concatenation and remove plugin 2026-08-13 16:13:09 +02:00
tomasr eb40a983a3 switch hyprlang to lua this time it should work 2026-08-13 16:13:09 +02:00
tomasr d7e51d1ba5 hyprland migrate exec-once to hl.exec_cmd 2026-08-13 16:13:05 +02:00
tomasr 13cdae0655 restore mullvad 2026-08-12 19:49:00 +02:00
tomasr d0b7183849 add dolphin plugin 2026-08-12 15:32:53 +02:00
tomasr cea0d0e3f8 add ark for dolphin 2026-08-12 15:24:56 +02:00
tomasr a4c66b4aff fix archivebox extesnion 2026-08-11 17:08:51 +02:00
tomasr 56a9bba86b remove temp mullvad 2026-08-11 17:08:51 +02:00
tomasr 1dab571e12 add archivebox extension 2026-08-11 17:08:51 +02:00
tomasr 93f7328a3b add browser bookmark noogle.dev 2026-08-11 17:08:51 +02:00
tomasr 0e222a9c50 rss reader 2026-08-04 19:50:42 +02:00
tomasr d1125d1571 fix calendar? 2026-08-04 11:30:00 +02:00
tomasr 550413c6b1 add kontact 2026-08-04 11:25:59 +02:00
tomasr b4537796a2 add KOrganizer 2026-08-04 11:21:26 +02:00
tomasr 4c0fbc5f0e librewolf: remove old bookmark 2026-07-30 21:28:41 +02:00
tomasr d0a9511ff7 first tmux config 2026-07-30 21:18:44 +02:00
tomasr 262476404e tmux: init config 2026-07-30 14:07:36 +02:00
tomasr 9f9906d423 replace rss reader 2026-07-30 14:07:36 +02:00
tomasr 0d616266ff fix pagers 2026-07-30 14:07:36 +02:00
tomasr 6b282b5344 somehow this file disappeared 2026-07-26 16:08:36 +02:00
tomasr 19fd3ec35d Auto: cleanup-2026-07-26T14-02-17Z 2026-07-26 16:06:33 +02:00
tomasr 324d54683c snapshot pre-cleanup-2026-07-26T14-02-17Z 2026-07-26 16:05:00 +02:00
tomasr 0030034418 snapshot pre-cleanup-2026-07-26T13-59-06Z 2026-07-26 16:05:00 +02:00
tomasr fb7be79e86 snapshot pre-cleanup-2026-07-26T13-57-11Z 2026-07-26 16:05:00 +02:00
tomasr 5db8135dd5 setup agenix and migrate from matrix-commander-rs to ntfy for phone notifications 2026-07-26 15:53:57 +02:00
tomasr 2107d23209 notewrapper: use kdrive directly 2026-07-24 17:40:39 +02:00
tomasr 77f4b0fc5f neovim: add hledger integration 2026-07-21 16:54:36 +02:00
tomasr 1642dc97ca neovim: add lean lsp and config 2026-07-21 16:54:36 +02:00
tomasr 2b59031896 hledger: init 2026-07-21 16:54:36 +02:00
tomasr d323e9f702 Merge branch 'main' into desktop 2026-06-24 16:39:59 -05:00
github-actions[bot] 25813d8ab5 Merge pull request #33 from tomasriveral/laptop
Weekly sync: laptop → main
2026-06-22 18:12:48 +00:00
tomasr 05ef065d75 snapshot pre-cleanup-2026-06-20T19-29-55Z 2026-06-20 21:29:55 +02:00
tomasr 2722840919 ollama: add desktop 2026-06-20 14:01:36 +02:00
tomasr 9e862337ca snapshot pre-autoupdate-2026-06-20T10-53-01Z 2026-06-20 12:53:01 +02:00
tomasr 876ec4ce21 icloud backup with kdrive 2026-06-18 19:47:29 +02:00
tomasr e2b7fd8a64 kdrive: setup sync with desktop 2026-06-18 17:00:20 +02:00
tomasr 752957818b gitBackup: add ngcp and ReSSPublica 2026-06-16 22:49:01 +02:00
tomasr 1c600dbf3c gitBackup: add ngcp and ReSSPublica 2026-06-16 22:45:12 +02:00
tomasr 4a648b7f7c Merge pull request #31 from tomasriveral/laptop 2026-06-15 18:45:41 +00:00
tomasr 67d21671c5 treesitter: add sparql 2026-06-14 17:29:16 +02:00
tomasr b8d8ef1aa8 treesitter: add sparql 2026-06-14 17:28:07 +02:00
tomasr 2d16f3893b Auto: cleanup-2026-06-14T15-26-03Z 2026-06-14 17:26:24 +02:00
tomasr 2a0c85275f snapshot pre-cleanup-2026-06-14T15-26-03Z 2026-06-14 17:26:03 +02:00
tomasr 23a9fdd4e8 snapshot pre-cleanup-2026-06-14T15-11-35Z 2026-06-14 17:11:35 +02:00
tomasr 246412ae4b custom-performance: entire rewrite
Now kills caelestia, change monitor hz and launches lightweight
alternative to calestia (waybar and swaync)
2026-06-14 11:19:36 +02:00
tomasr 88eb91c780 desktop: ported custom-performance 2026-06-14 11:14:48 +02:00
tomasr 3b73438d4f custom-performance: reset on startup 2026-06-14 11:11:05 +02:00
tomasr 8088f78f05 tlp:replace by powerprofilesdaemon 2026-06-14 11:08:03 +02:00
tomasr 3b89cf7b35 flake.lock: autoupdate-2026-06-14T09-01-11Z 2026-06-14 11:04:07 +02:00
tomasr 89eb25ca7d snapshot pre-autoupdate-2026-06-14T09-01-11Z 2026-06-14 11:01:11 +02:00
tomasr 3ea36fa6bb Merge pull request #30 from tomasriveral/main
desktop
2026-06-14 08:13:03 +00:00
tomasr 3d468572d5 Merge pull request #28 from tomasriveral/laptop
Weekly sync: laptop → main
2026-06-13 07:47:36 +00:00
github-actions[bot] d23c6979f9 Merge pull request #29 from tomasriveral/desktop
Weekly sync: desktop → main
2026-06-13 07:47:29 +00:00
tomasr 552d898680 librewolf: add rryan-tm logs bookmark 2026-06-13 09:45:16 +02:00
tomasr 5b7c43c8f9 librewolf: add r/Piracy megathread bookmark 2026-06-13 09:45:16 +02:00
tomasr f1e9c76d02 librewolf: add temp-mail.org bookmark 2026-06-13 09:45:16 +02:00
tomasr 37f76a4439 nixpkgs-master: follow unstable when unused 2026-06-13 09:37:43 +02:00
tomasr 143f699365 flake-utils: use flakehub cache 2026-06-13 09:29:18 +02:00
tomasr d20f0d87d5 flake-parts: use flakehub cache 2026-06-13 09:29:18 +02:00
github-actions[bot] 45639e2531 Merge pull request #27 from tomasriveral/desktop
Weekly sync: desktop → main
2026-06-12 14:38:11 +00:00
tomasr 2d2d4fd4a8 Merge pull request #26 from tomasriveral/laptop
Weekly sync: laptop → main
2026-06-12 14:32:48 +00:00
tomasr d49c7ba99e limine: rice 2026-06-12 15:58:28 +02:00
tomasr 29554e41ca nixUtils: add custom-trimmer 2026-06-12 15:49:23 +02:00
tomasr 2a318bdced hosts: forgot to use nixUtils module 2026-06-12 15:38:01 +02:00
tomasr 763bbbacd4 bootloader: limine 2026-06-12 15:10:49 +02:00
tomasr 99f1dd3ec8 bootloader: reunited desktop and laptop config 2026-06-12 15:07:17 +02:00
25 changed files with 937 additions and 318 deletions

No files matched your search

Generated
+19 -19
View File
@@ -11,11 +11,11 @@
]
},
"locked": {
"lastModified": 1780375472,
"narHash": "sha256-Q8RAJoYlakA6B2I5DVcuxzNbhCNU1nnIjqQZYP1KGrM=",
"lastModified": 1781239472,
"narHash": "sha256-WFL8jZMWNH1tx3UwaJ9aa9NN25uOEJ9mbKPRNQJY/xM=",
"owner": "caelestia-dots",
"repo": "cli",
"rev": "d1c8c8fc09738d1b40576e97c274b4a11a2e0ac7",
"rev": "3f3229aed4f36752a02fd870fd6cad94bd76555f",
"type": "github"
},
"original": {
@@ -34,11 +34,11 @@
"quickshell": "quickshell"
},
"locked": {
"lastModified": 1781178648,
"narHash": "sha256-z6V1T7MHShM7TfFIMCDp94Bi1Wk9LJfK96vm8YFGY5M=",
"lastModified": 1781408632,
"narHash": "sha256-kYVf3Jye4UhyBrtubYcSrmVyFv9uqOY2JvjmElFiZHE=",
"owner": "caelestia-dots",
"repo": "shell",
"rev": "a16c957a8bd13e0cfd09928ca0a22fecd3681e44",
"rev": "f86c359cd90530bacc800e94e35ffbebecd3f58f",
"type": "github"
},
"original": {
@@ -164,11 +164,11 @@
]
},
"locked": {
"lastModified": 1780928816,
"narHash": "sha256-s4wU4nfs8xsXvwPtD0yebTPaOgmtDesmEvWuKFES6cE=",
"lastModified": 1781373243,
"narHash": "sha256-CpZ5FEU1BtW6K4FywtCCE2wJs6R/Ifps3etRDh8NJ9w=",
"owner": "tomasriveral",
"repo": "nix-git-cherry-picker",
"rev": "785b747ebca67f3e11b49ef5a85f9d3635bfe85d",
"rev": "9865dba535620831ae7cab395bf404f8f464df0e",
"type": "github"
},
"original": {
@@ -179,11 +179,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1780902259,
"narHash": "sha256-q8yYEC5f1mFlQO9RGna4LTc9QrcvWunX6FYp83munkQ=",
"lastModified": 1781216227,
"narHash": "sha256-9mUW6gNwoN2SWc/l0fW4svPNOulXLl8ijqKyeSOGgJE=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "bd0ff2d3eac24699c3664d5966b9ef36f388e2ca",
"rev": "a0374025a863d007d98e3297f6aa46cc3141c2f0",
"type": "github"
},
"original": {
@@ -233,11 +233,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1781268102,
"narHash": "sha256-Zn5KTggEmUB3lXn/ccERNcBdddE6IaOFber9dWViWDg=",
"lastModified": 1781328464,
"narHash": "sha256-j9uBlHI0eJ9zWU9IlF6SlBBPdeJu30hcvar31IRKHpw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "49a4bd0573c376468dd7996ddb6f9fa31d8c4d97",
"rev": "5a722a7155bfc9fbe657f28d26b71860d95324bc",
"type": "github"
},
"original": {
@@ -302,11 +302,11 @@
]
},
"locked": {
"lastModified": 1780303737,
"narHash": "sha256-7HgdJBG4BgAPDyHKKxWtxj7nziqsQo6zQCXtwy+L9fs=",
"lastModified": 1781053488,
"narHash": "sha256-P4WEBaKgl8flRckHxXGHzT0potPvB3x8ZFIp9gLEAMY=",
"ref": "refs/heads/master",
"rev": "b66495fcc5022681b56b61f928c7acbe910e722c",
"revCount": 821,
"rev": "d99d87d5e5ec4e696815348692fdaaf0b6be1b2c",
"revCount": 822,
"type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
},
+2 -1
View File
@@ -70,7 +70,8 @@
"steam"
"steam-unwrapped"
"cheatsheet.nvim"
"zoom-us" "zoom"
"zoom-us"
"zoom"
];
mkUnfreePredicate = pkg:
builtins.elem (inputs.nixpkgs.lib.getName pkg) unfreePkgs;
+10 -6
View File
@@ -164,6 +164,10 @@
install_url = "https://addons.mozilla.org/firefox/downloads/file/4790089/consumer_rights_wiki-latest.xpi";
installation_mode = "force_installed";
};
"archivebox@tjhorner.dev" = {
install_url = "https://addons.mozilla.org/firefox/downloads/file/4820668/archivebox_exporter-latest.xpi";
installation_mode = "force_installed";
};
};
DisableTelemetry = true;
DisableFirefoxStudies = true;
@@ -344,12 +348,6 @@
keyword = "nixpkgs tracker";
url = "https://nixpk.gs/pr-tracker.html";
}
{
name = "fahrlehrer";
tags = ["theorie" "fahrlehrer" "conduite"];
keyword = "fahrlehrer24";
url = "https://app.fahrlehrer24.ch/";
}
{
name = "cogito";
tags = ["cogito" "esprit" "critique"];
@@ -398,6 +396,12 @@
keyword = "rryan-tm logs";
url = "https://nixpkgs-update-logs.nix-community.org";
}
{
name = "Nix function search";
tags = ["nixpkgs" "nix" "search"];
keyword = "nix function search";
url = "https://noogle.dev";
}
];
};
search = {
+655 -206
View File
@@ -37,12 +37,20 @@
# Enable the X11 windowing system.
services.xserver.enable = true;
};
flake.homeModules.hyprland-laptop = _: {
flake.homeModules.hyprland-laptop = {lib, ...}: {
wayland.windowManager.hyprland.settings = {
exec-once = [
"qtbatticon" # custom battery tray
"nixpkgs-notifier listen" # tracks PR merge in nixos-unstable
];
on = {
_args = [
"hyprland.start"
(lib.generators.mkLuaInline ''
function()
hl.exec_cmd("qtbatticon") --- custom battery tray
hl.exec_cmd("source /run/agenix/ntfy && nixpkgs-notifier listen") --- tracks PR merge in nixos-unstable
end
'')
];
};
monitor = [
"eDP-1, highres@highrr, 0x0, 1"
];
@@ -57,19 +65,25 @@
"if [ -e \"/home/tomasr/icloudSync.sh\" ]; then /home/tomasr/icloudSync.sh; else notify-send \"icloudSync.sh doesn't exist\" \"See ~/nixos/modules/applications/hyprland.nix for more information\"; fi"
# my icloud account uses an email that I don't want to make public. So the script isnt pushed to github. The script looks like:
/*
#!/etc/profiles/per-user/tomasr/bin/zsh
if ! icloudpd --auth-only --username tomas.rivera_2009@icloud.com --dry-run; then
notify-send "icloudpd is not logged in" "Please run icloudpd icloudpd --username my@email.address --password my_password --auth-only"
exit 1
fi
icloudpd --directory ~/hdd/kdrive/Photo/IPhone/icloudpd-backup --username tomas.rivera_2009@icloud.com --watch-with-interval 3600 --no-progress-bar
#!/etc/profiles/per-user/tomasr/bin/zsh
if ! icloudpd --auth-only --username tomas.rivera_2009@icloud.com --dry-run; then
notify-send "icloudpd is not logged in" "Please run icloudpd icloudpd --username my@email.address --password my_password --auth-only"
exit 1
fi
icloudpd --directory ~/hdd/kdrive/Photo/IPhone/icloudpd-backup --username tomas.rivera_2009@icloud.com --watch-with-interval 3600 --no-progress-bar
*/
];
};
};
flake.homeModules.hyprland = {pkgs-unstable, ...}: let
flake.homeModules.hyprland = {pkgs-unstable, lib, ...}: let
wallpaper = ../../assets/wallpaper1.jpg;
mod = "SUPER";
term = "kitty";
editor = "nvim";
notes = "kitty --class \\\"custom-obsidianvaults\\\" --name \\\"Select Obsidian vault\\\" --hold custom-obsidianvaults";
file = "dolphin";
browser = "kitty --class \\\"custom-browserprofiles\\\" --name \\\"Select browser profile\\\" --hold custom-browserprofiles";
in {
#refer to https://wiki.hypr.land/Nix/Hyprland-on-Home-Manager/
wayland.windowManager.hyprland.enable = true;
@@ -80,17 +94,69 @@
#pkgs-unstable.hyprlandPlugins.hyprspace # currently broken
pkgs-unstable.hyprlandPlugins.hypr-dynamic-cursors
];
wayland.windowManager.hyprland.configType = "hyprlang";
wayland.windowManager.hyprland.configType = "lua";
wayland.windowManager.hyprland.settings = {
"$mod" = "SUPER";
"$term" = "kitty";
"$editor" = "nvim";
"$notes" = "kitty --class \"custom-obsidianvaults\" --name \"Select Obsidian vault\" --hold custom-obsidianvaults";
"$file" = "dolphin";
"$browser" = "kitty --class \"custom-browserprofiles\" --name \"Select browser profile\" --hold custom-browserprofiles";
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
animations = {
config = {
input = {
kb_layout = "ch";
follow_mouse = 1;
sensitivity = 0;
force_no_accel = 1;
};
# █░░ ▄▀█ █▄█ █▀█ █░█ ▀█▀ █▀
# █▄▄ █▀█ ░█░ █▄█ █▄█ ░█░ ▄█
dwindle = {
preserve_split = true;
};
scrolling = {
column_width = 0.45;
};
# █▀▄▀█ █ █▀ █▀▀
# █░▀░█ █ ▄█ █▄▄
misc = {
vrr = 0;
force_default_wallpaper = 0;
};
xwayland = {
force_zero_scaling = true;
};
decoration = {
dim_special = 0.3;
rounding = 18;
blur = {
special = true;
enabled = true;
size = 4;
passes = 2;
new_optimizations = true;
ignore_opacity = true;
};
};
general = {
gaps_in = 5;
gaps_out = 15;
border_size = 4;
#"col.active_border" = "rgba(ca6702ff) rgba(ecd3a0ff) 45deg";
#"col.inactive_border" = "rgba(f1dca7d9) rgba(ffe1a8d9) 45deg";
layout = "dwindle";
resize_on_border = true;
};
group = {
#"col.border_active" = "rgba(ca6702ff) rgba(ecd3a0ff) 45deg";
#"col.border_inactive" = "rgba(f1dca7d9) rgba(ffe1a8d9) 45deg";
#"col.border_locked_active" = "rgba(ca6702ff) rgba(ecd3a0ff) 45deg";
#"col.border_locked_inactive" = "rgba(f1dca7d9) rgba(ffe1a8d9) 45deg";
};
};
/*animations = {
enabled = true;
bezier = [
"wind, 0.05, 0.9, 0.1, 1.05"
@@ -108,7 +174,7 @@
"fade, 1, 10, default"
"workspaces, 1, 5, wind"
];
};
};*/
# █▀▀ █▄░█ █░█
# ██▄ █░▀█ ▀▄▀
@@ -129,123 +195,568 @@
# █ █▄░█ █▀█ █░█ ▀█▀
# █ █░▀█ █▀▀ █▄█ ░█░
input = {
kb_layout = ["ch"];
follow_mouse = 1;
sensitivity = 0;
force_no_accel = 1;
};
# █▄▀ █▀▀ █▄█ █▄▄ █ █▄░█ █▀▄ █ █▄░█ █▀▀ █▀
# █░█ ██▄ ░█░ █▄█ █ █░▀█ █▄▀ █ █░▀█ █▄█ ▄█
# caelestia shell drawers toggle dashboard
# caelestia shell drawers toggle utilities
bind = [
{
_args = [
"SUPER + W"
(lib.generators.mkLuaInline "hl.dsp.window.float()")
];
}
bind = [
{
_args = [
"SUPER + G"
(lib.generators.mkLuaInline "hl.dsp.group.toggle()")
];
}
{
_args = [
"ALT + RETURN"
(lib.generators.mkLuaInline "hl.dsp.window.fullscreen()")
];
}
{
_args = [
"SUPER + LEFT"
(lib.generators.mkLuaInline ''hl.dsp.focus({ direction = "l" })'')
];
}
{
_args = [
"SUPER + RIGHT"
(lib.generators.mkLuaInline ''hl.dsp.focus({ direction = "r" })'')
];
}
{
_args = [
"SUPER + UP"
(lib.generators.mkLuaInline ''hl.dsp.focus({ direction = "u" })'')
];
}
{
_args = [
"SUPER + DOWN"
(lib.generators.mkLuaInline ''hl.dsp.focus({ direction = "d" })'')
];
}
{
_args = [
"ALT + TAB"
(lib.generators.mkLuaInline ''hl.dsp.focus({ direction = "d" })'')
];
}
{
_args = [
"SUPER + 1"
(lib.generators.mkLuaInline ''hl.dsp.focus({ workspace = "1" })'')
];
}
{
_args = [
"SUPER + 2"
(lib.generators.mkLuaInline ''hl.dsp.focus({ workspace = "2" })'')
];
}
{
_args = [
"SUPER + 3"
(lib.generators.mkLuaInline ''hl.dsp.focus({ workspace = "3" })'')
];
}
{
_args = [
"SUPER + 4"
(lib.generators.mkLuaInline ''hl.dsp.focus({ workspace = "4" })'')
];
}
{
_args = [
"SUPER + 5"
(lib.generators.mkLuaInline ''hl.dsp.focus({ workspace = "5" })'')
];
}
{
_args = [
"SUPER + 6"
(lib.generators.mkLuaInline ''hl.dsp.focus({ workspace = "6" })'')
];
}
{
_args = [
"SUPER + 7"
(lib.generators.mkLuaInline ''hl.dsp.focus({ workspace = "7" })'')
];
}
{
_args = [
"SUPER + 8"
(lib.generators.mkLuaInline ''hl.dsp.focus({ workspace = "8" })'')
];
}
{
_args = [
"SUPER + 9"
(lib.generators.mkLuaInline ''hl.dsp.focus({ workspace = "9" })'')
];
}
{
_args = [
"SUPER + 0"
(lib.generators.mkLuaInline ''hl.dsp.focus({ workspace = "10" })'')
];
}
{
_args = [
"SUPER + CTRL + RIGHT"
(lib.generators.mkLuaInline ''hl.dsp.focus({ workspace = "r+1" })'')
];
}
{
_args = [
"SUPER + CTRL + LEFT"
(lib.generators.mkLuaInline ''hl.dsp.focus({ workspace = "r-1" })'')
];
}
{
_args = [
"SUPER + CTRL + DOWN"
(lib.generators.mkLuaInline ''hl.dsp.focus({ workspace = "empty" })'')
];
}
{
_args = [
"SUPER + SHIFT + 1"
(lib.generators.mkLuaInline ''hl.dsp.window.move({ workspace = "1" })'')
];
}
{
_args = [
"SUPER + SHIFT + 2"
(lib.generators.mkLuaInline ''hl.dsp.window.move({ workspace = "2" })'')
];
}
{
_args = [
"SUPER + SHIFT + 3"
(lib.generators.mkLuaInline ''hl.dsp.window.move({ workspace = "3" })'')
];
}
{
_args = [
"SUPER + SHIFT + 4"
(lib.generators.mkLuaInline ''hl.dsp.window.move({ workspace = "4" })'')
];
}
{
_args = [
"SUPER + SHIFT + 5"
(lib.generators.mkLuaInline ''hl.dsp.window.move({ workspace = "5" })'')
];
}
{
_args = [
"SUPER + SHIFT + 6"
(lib.generators.mkLuaInline ''hl.dsp.window.move({ workspace = "6" })'')
];
}
{
_args = [
"SUPER + SHIFT + 7"
(lib.generators.mkLuaInline ''hl.dsp.window.move({ workspace = "7" })'')
];
}
{
_args = [
"SUPER + SHIFT + 8"
(lib.generators.mkLuaInline ''hl.dsp.window.move({ workspace = "8" })'')
];
}
{
_args = [
"SUPER + SHIFT + 9"
(lib.generators.mkLuaInline ''hl.dsp.window.move({ workspace = "9" })'')
];
}
{
_args = [
"SUPER + SHIFT + 0"
(lib.generators.mkLuaInline ''hl.dsp.window.move({ workspace = "10" })'')
];
}
{
_args = [
"SUPER + CTRL + ALT + RIGHT"
(lib.generators.mkLuaInline ''hl.dsp.window.move({ workspace = "r+1" })'')
];
}
{
_args = [
"SUPER + CTRL + ALT + LEFT"
(lib.generators.mkLuaInline ''hl.dsp.window.move({ workspace = "r-1" })'')
];
}
{
_args = [
"SUPER + BACKSPACE"
(lib.generators.mkLuaInline ''hl.dsp.exec_cmd("caelestia shell drawers toggle session")'')
];
}
{
_args = [
"SUPER + SHIFT + CTRL + LEFT"
(lib.generators.mkLuaInline ''hl.dsp.window.move({ direction = "l" })'')
];
}
{
_args = [
"SUPER + SHIFT + CTRL + RIGHT"
(lib.generators.mkLuaInline ''hl.dsp.window.move({ direction = "r" })'')
];
}
{
_args = [
"SUPER + SHIFT + CTRL + UP"
(lib.generators.mkLuaInline ''hl.dsp.window.move({ direction = "u" })'')
];
}
{
_args = [
"SUPER + SHIFT + CTRL + DOWN"
(lib.generators.mkLuaInline ''hl.dsp.window.move({ direction = "d" })'')
];
}
# {
# _args = [
# "SUPER + MOUSE_DOWN"
# (lib.generators.mkLuaInline ''hl.dsp.focus({ workspace = "e+1" })'')
# ];
# }
#
# {
# _args = [
# "SUPER + MOUSE_UP"
# (lib.generators.mkLuaInline ''hl.dsp.focus({ workspace = "e-1" })'')
# ];
# }
{
_args = [
"SUPER + V"
(lib.generators.mkLuaInline ''hl.dsp.exec_cmd("cliphist list | rofi -dmenu | cliphist decode | wl-copy")'')
];
}
{
_args = [
"SUPER + B"
(lib.generators.mkLuaInline ''hl.dsp.exec_cmd("hyprkeys -bkr | rofi -dmenu")'')
];
}
# {
# _args = [
# "SUPER + S"
# "togglespecialworkspace"
# ];
# }
# {
# _args = [
# "ALT + SUPER + S"
# "movetoworkspace"
# "special"
# ];
# }
# {
# _args = [
# "SUPER + A"
# "layoutmsg"
# "move -col"
# ];
# }
# {
# _args = [
# "SUPER + D"
# "layoutmsg"
# "move +col"
# ];
# }
{
_args = [
"SUPER + T"
(lib.generators.mkLuaInline ''hl.dsp.exec_cmd("${term}")'')
];
}
{
_args = [
"SUPER + E"
(lib.generators.mkLuaInline ''hl.dsp.exec_cmd("${file}")'')
];
}
{
_args = [
"SUPER + F"
(lib.generators.mkLuaInline ''hl.dsp.exec_cmd("${browser}")'')
];
}
{
_args = [
"SUPER + N"
(lib.generators.mkLuaInline ''hl.dsp.exec_cmd("${notes}")'')
];
}
{
_args = [
"SUPER + SHIFT + A"
(lib.generators.mkLuaInline ''hl.dsp.exec_cmd("caelestia shell drawers toggle launcher")'')
];
}
{
_args = [
"SUPER + Q"
#(lib.generators.mkLuaInline ''hl.dsp.exec_cmd("custom-dontkillsteam")'')
(lib.generators.mkLuaInline ''hl.dsp.window.kill()'')
];
}
{
_args = [
"CTRL + ALT + W"
(lib.generators.mkLuaInline ''hl.dsp.exec_cmd("caelestia shell drawers toggle sidebar")'')
];
}
{
_args = [
"SUPER + L"
(lib.generators.mkLuaInline ''hl.dsp.exec_cmd("caelestia shell lock lock")'')
];
}
{
_args = [
"F11"
(lib.generators.mkLuaInline ''hl.dsp.exec_cmd("caelestia screenshot")'')
];
}
{
_args = [
"SUPER + SHIFT + S"
(lib.generators.mkLuaInline ''hl.dsp.exec_cmd("caelestia shell picker open")'')
];
}
{
_args = [
"CTRL + SUPER + 6"
(lib.generators.mkLuaInline ''hl.dsp.exec_cmd("custom-killall")'')
];
}
{
_args = [
"CTRL + ALT + 7"
(lib.generators.mkLuaInline ''hl.dsp.exec_cmd("custom-performance")'')
];
}
{
_args = [
"CTRL + ALT + 1"
(lib.generators.mkLuaInline ''hl.dsp.exec_cmd("caelestia shell drawers toggle sidebar")'')
];
}
{
_args = [
"CTRL + SUPER + 4"
(lib.generators.mkLuaInline ''hl.dsp.exec_cmd("caelestia shell notifs toggleDnd")'')
];
}
{
_args = [
"CTRL + SUPER + 3"
(lib.generators.mkLuaInline ''hl.dsp.exec_cmd("pavucontrol")'')
];
}
{
_args = [
"CTRL + SHIFT + ALT + 0"
(lib.generators.mkLuaInline ''hl.dsp.exec_cmd("kitty --hold --class \"custom-changeAudioOutput\" --name \"Select audio output\" zsh -c \"custom-changeAudioOutput\"")'')
];
}
{
_args = [
"CTRL + SUPER + 5"
(lib.generators.mkLuaInline ''hl.dsp.exec_cmd("gnome-characters")'')
];
}
{
_args = [
"CTRL + ALT + 8"
(lib.generators.mkLuaInline ''hl.dsp.exec_cmd("hyprpicker | tee >(wl-copy) | cliphist store")'')
];
}
{
_args = [
"CTRL + ALT + 0"
(lib.generators.mkLuaInline ''hl.dsp.exec_cmd("custom-tomato")'')
];
}
{
_args = [
"CTRL + ALT + 2"
(lib.generators.mkLuaInline ''hl.dsp.exec_cmd("custom-bottom")'')
];
}
{
_args = [
"CTRL + ALT + 9"
(lib.generators.mkLuaInline ''hl.dsp.exec_cmd("anki")'')
];
}
];
/*bind = [
#hyprland/utility keybindings
"$mod, W, togglefloating"
"$mod, G, togglegroup"
"${mod}, W, togglefloating"
"${mod}, G, togglegroup"
"Alt, Return, fullscreen"
"$mod, Left, movefocus, l"
"$mod, Right, movefocus, r"
"$mod, Up, movefocus, u"
"$mod, Down, movefocus, d"
"Alt, Tab, movefocus, d"
"$mod, 1, workspace, 1"
"$mod, 2, workspace, 2"
"$mod, 3, workspace, 3"
"$mod, 4, workspace, 4"
"$mod, 5, workspace, 5"
"$mod, 6, workspace, 6"
"$mod, 7, workspace, 7"
"$mod, 8, workspace, 8"
"$mod, 9, workspace, 9"
"$mod, 0, workspace, 10"
"$mod+Ctrl, Right, workspace, r+1"
"$mod+Ctrl, Left, workspace, r-1"
"$mod+Ctrl, Doown, workspace, empty"
"$mod+Shift, 1, movetoworkspace, 1"
"$mod+Shift, 2, movetoworkspace, 2"
"$mod+Shift, 3, movetoworkspace, 3"
"$mod+Shift, 4, movetoworkspace, 4"
"$mod+Shift, 5, movetoworkspace, 5"
"$mod+Shift, 6, movetoworkspace, 6"
"$mod+Shift, 7, movetoworkspace, 7"
"$mod+Shift, 8, movetoworkspace, 8"
"$mod+Shift, 9, movetoworkspace, 9"
"$mod+Shift, 0, movetoworkspace, 10"
"$mod+Ctrl+Alt, Right, movetoworkspace, r+1"
"$mod+Ctrl+Alt, Left, movetoworkspace, r-1"
#"$mod, Backspace, exec, wlogout -b 4 -T 600 -B 600"
"$mod, Backspace, exec, caelestia shell drawers toggle session"
"$mod+Shift+Ctrl, Left, movewindow, l"
"$mod+Shift+Ctrl, Right, movewindow, r"
"$mod+Shift+Ctrl, Up, movewindow, u"
"$mod+Shift+Ctrl, Down, movewindow, d"
"$mod, mouse_down, workspace, e+1"
"$mod, mouse_up, workspace, e-1"
"$mod, V, exec, cliphist list | rofi -dmenu| cliphist decode | wl-copy" # copy paste
"$mod, B, exec, hyprkeys -bkr | rofi -dmenu"
"${mod}, Left, movefocus, l"
"${mod}, Right, movefocus, r"
"${mod}, Up, movefocus, u"
"${mod}, Down, movefocus, d"
"${mod}, 1, workspace, 1"
"${mod}, 2, workspace, 2"
"${mod}, 3, workspace, 3"
"${mod}, 4, workspace, 4"
"${mod}, 5, workspace, 5"
"${mod}, 6, workspace, 6"
"${mod}, 7, workspace, 7"
"${mod}, 8, workspace, 8"
"${mod}, 9, workspace, 9"
"${mod}, 0, workspace, 10"
"${mod}+Ctrl, Right, workspace, r+1"
"${mod}+Ctrl, Left, workspace, r-1"
"${mod}+Ctrl, Doown, workspace, empty"
"${mod}+Shift, 1, movetoworkspace, 1"
"${mod}+Shift, 2, movetoworkspace, 2"
"${mod}+Shift, 3, movetoworkspace, 3"
"${mod}+Shift, 4, movetoworkspace, 4"
"${mod}+Shift, 5, movetoworkspace, 5"
"${mod}+Shift, 6, movetoworkspace, 6"
"${mod}+Shift, 7, movetoworkspace, 7"
"${mod}+Shift, 8, movetoworkspace, 8"
"${mod}+Shift, 9, movetoworkspace, 9"
"${mod}+Shift, 0, movetoworkspace, 10"
"${mod}+Ctrl+Alt, Right, movetoworkspace, r+1"
"${mod}+Ctrl+Alt, Left, movetoworkspace, r-1"
#"{$mo}d, Backspace, exec, wlogout -b 4 -T 600 -B 600"
"${mod}, Backspace, exec, caelestia shell drawers toggle session"
"${mod}+Shift+Ctrl, Left, movewindow, l"
"${mod}+Shift+Ctrl, Right, movewindow, r"
"${mod}+Shift+Ctrl, Up, movewindow, u"
"${mod}+Shift+Ctrl, Down, movewindow, d"
"${mod}, mouse_down, workspace, e+1"
"${mod}, mouse_up, workspace, e-1"
"${mod}, V, exec, cliphist list | rofi -dmenu| cliphist decode | wl-copy" # copy paste
"${mod}, B, exec, hyprkeys -bkr | rofi -dmenu"
#"$mod, A, tagwindow, noborder" # used to not apply image border
"$mod, S, togglespecialworkspace,"
"Alt+$mod, S, movetoworkspace, special"
"${mod}, S, togglespecialworkspace,"
"Alt+${mod}, S, movetoworkspace, special"
# for the scrolling layout
"$mod, A, layoutmsg, move -col"
"$mod, D, layoutmsg, move +col"
"${mod}, A, layoutmsg, move -col"
"${mod}, D, layoutmsg, move +col"
#apps keybindings
"$mod, T, exec, $term"
"$mod, E, exec, $file"
"$mod, F, exec, $browser"
"$mod, N, exec, $notes"
"${mod}, T, exec, ${term}"
"${mod}, E, exec, ${file}"
"${mod}, F, exec, ${browser}"
"${mod}, N, exec, ${notes}"
#"$mod+Shift, A, exec, rofi -show drun"
"$mod+Shift, A, exec, caelestia shell drawers toggle launcher"
"$mod, Q, exec, custom-dontkillsteam"
"${mod}+Shift, A, exec, caelestia shell drawers toggle launcher"
"${mod}, Q, exec, custom-dontkillsteam"
#"Ctrl+Alt, W, exec, pkill waybar || waybar"
"Ctrl+Alt, W, exec, caelestia shell drawers toggle sidebar"
#"$mod, L, exec, swaylock -eFLK -i ${wallpaper}"
"$mod, L, exec, caelestia shell lock lock"
"${mod}, L, exec, caelestia shell lock lock"
#"$mod, F11, exec, hyprshot -m window"
", F11, exec, caelestia screenshot"
#"$mod_SHIFT, S, exec, hyprshot -m region --clipboard only"
# "$mod_SHIFT, S, exec, qs ipc call screenshot toggle"
"$mod_SHIFT, S, exec, caelestia shell picker open"
"${mod}+Shift, S, exec, caelestia shell picker open"
# framework 16 rgb macropad
"Ctrl+$mod, 6, exec, custom-killall" # pos 1 1 killall apps except focused one
"Ctrl+${mod}, 6, exec, custom-killall" # pos 1 1 killall apps except focused one
"Ctrl+Alt, 7, exec, custom-performance" # pos 2 1 start performance mode
#"Ctrl+Alt, 7, exec, caelestia shell gameMode toggle"
# reloads the autostart programs # pos 3 1
# we passed to caelestia-shell and stoped using that
/*
"Ctrl+$mod, 4, exec, sleep 1 && kitty -o font_size=16 -e sh -c 'custom-weather'"
"Ctrl+$mod, 4, exec, sleep 1 && kitty -o font_size=11 -e sh -c 'custom-cowsay'"
"Ctrl+$mod, 4, exec, kitty -e 'custom-launch'"
"Ctrl+$mod, 4, exec, sleep 1 && kitty -o font_size=5 -e btm --theme gruvbox --disable-click --disable_advanced_kill --enable_cache_memory -g -R -T "
"Ctrl+$mod, 4, exec, sleep 1 && kitty -o font_size=1 -e sh -c 'cmatrix -br'"
#"Ctrl+Alt, 1, exec, swaync-client -t" # pos 4 1 notification center
"Ctrl+Alt, 1, exec, qs ipc call notifications toggle"
*/
# pos 4 1 notification center.
"Ctrl+Alt, 1, exec, caelestia shell drawers toggle sidebar"
"Ctrl+Alt, 1, exec, [[ -f ~/.cache/hypr-battery-saver ]] || swaync-client -t"
"Ctrl+$mod, 4, exec, caelestia shell notifs toggleDnd"
"Ctrl+$mod, 3, exec, pavucontrol" # pos 1 2 audiocontrol
#"Ctrl+Alt, 1, exec, [[ -f ~/.cache/hypr-battery-saver ]] || swaync-client -t"
"Ctrl+${mod}, 4, exec, caelestia shell notifs toggleDnd"
"Ctrl+${mod}, 3, exec, pavucontrol" # pos 1 2 audiocontrol
"Ctrl+Shift+Alt, 0, exec, kitty --hold --class \"custom-changeAudioOutput\" --name \"Select audio output\" zsh -c \"custom-changeAudioOutput\"" # pos 2 2 change audio output fzf
"Ctrl+$mod, 5, exec, gnome-characters" # pos 3 2 special chars
"Ctrl+${mod}, 5, exec, gnome-characters" # pos 3 2 special chars
"Ctrl+Alt, 8, exec, hyprpicker | tee >(wl-copy) | cliphist store" # pos 4 2 colorpicker
"Ctrl+Alt, 0, exec, custom-tomato" # pos 1 3 pomodoro app
"Ctrl+Alt, 2, exec, custom-bottom" # pos 2 3 btm (like htop but cleaner)
"Ctrl+Alt, 9, exec, anki"
# if hyprexpo plugin enabled bind = $mainMod, Space, hyprexpo:expo, toggle
# maybe exec sudo framework-tools-tui
#plugins keybindings
#"$mod, SPACE, overview:toggle, "
];
binde = [
"$mod+Shift, Right, resizeactive, 30 0"
"$mod+Shift, Left, resizeactive, -30, 0"
"$mod+Shift, Up, resizeactive, 0 -30"
"$mod+Shift, Down, resizeactive,m 0 30"
];*/
/*binde = [
"${mod}+Shift, Right, resizeactive, 30 0"
"${mod}+Shift, Left, resizeactive, -30, 0"
"${mod}+Shift, Up, resizeactive, 0 -30"
"${mod}+Shift, Down, resizeactive,m 0 30"
];
bindl = [
", F1, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle" #toggle audio mute
@@ -260,55 +771,39 @@
", F8, exec, brightnessctl s +10%" # increase brightness
];
bindm = [
"$mod, mouse:272, movewindow"
"$mod, mouse:273, resizewindow"
"$mod, Z, movewindow"
"$mod, X, resizewindow"
];
"${mod}, mouse:272, movewindow"
"${mod}, mouse:273, resizewindow"
"${mod}, Z, movewindow"
"${mod}, X, resizewindow"
];*/
# █░░ ▄▀█ █░█ █▄░█ █▀▀ █░█
# █▄▄ █▀█ █▄█ █░▀█ █▄▄ █▀█
exec-once = [
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP" # for XDPH
"dbus-update-activation-environment --systemd --all" # for XDPH
"systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP" # for XDPH
"systemctl --user start xdg-desktop-portal-wlr.service"
"blueman-applet" # systray app for Bluetooth
"udiskie --no-automount --smart-tray" # front-end that allows to manage removable media
"nm-applet --indicator" # systray app for Network/wifi
#setups clipboard
"rm -rf ~/.cache/cliphist/ && wl-paste --type text --watch cliphist store & wl-paste --type image --watch cliphist store"
#"wl-paste --type text --watch cliphist store" # clipboard store text data
#"wl-paste --type image --watch cliphist store" # clipboard store image data
"custom-batterynotify"
"custom-batterywarning"
#"birdtray" # thunderbird tray app # curently broken
#wallpapers/b
"awww img ${wallpaper}"
"awww-daemon"
"sleep 1 && custom-wallpaper"
"custom-checkKdrive && custom-mountkdrive" # checks if the remote works and mount it
#"waybar"
"custom-gitnotify"
"custom-checkMatrix" # checks if matrix-commander-rs is connected which is important for other stuff
#"custom-obsidianbackup" # backups the obsidian notes to kdrive and to a timed hidden dir (~/.Notes.backup/)
#"QS-notifycache" # builds the cache that will be used for the notification history
"sleep 4 & caelestia-shell" #works better if it sleeps a bit before
"sleep 20 && ngcp pull --automatic" # see github.com/tomasriveral/nix-git-cherry-picker
"rm ~/.cache/hypr-battery-saver"
"rm ~/.cache/hypr-battery-saver.brightness"
/*
We stopped using that ######################### maybe we should desactivate those scripts
# login autostart
#######################
"[workspace 1 silent] sleep 1 && kitty -o font_size=16 -e sh -c 'custom-weather'"
"[workspace 1 silent] sleep 1 && kitty -o font_size=11 -e sh -c 'custom-cowsay'"
"[workspace 1 silent] kitty -e 'custom-launch'"
"[workspace 1 silent] sleep 1 && kitty -o font_size=5 -e btm --theme gruvbox --disable-click --disable_advanced_kill --enable_cache_memory -g -R -T "
"[workspace 1 silent] sleep 1 && kitty -o font_size=1 -e sh -c 'cmatrix -br'"
######################
######################
*/
];
on = {
_args = [
"hyprland.start"
(lib.generators.mkLuaInline ''
function()
hl.exec_cmd("dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP") -- for XDPH
hl.exec_cmd("dbus-update-activation-environment --systemd --all") -- for XDPH
hl.exec_cmd("systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP") -- for XDPH
hl.exec_cmd("systemctl --user start xdg-desktop-portal-wlr.service")
hl.exec_cmd("blueman-applet") -- systray app for Bluetooth
hl.exec_cmd("udiskie --no-automount --smart-tray") -- front-end that allows to manage removable media
hl.exec_cmd("nm-applet --indicator") -- systray app for Network/wifi
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("awww img ${wallpaper}")
hl.exec_cmd("awww-daemon")
hl.exec_cmd("sleep 1 && custom-wallpaper")
hl.exec_cmd("custom-checkKdrive && custom-mountkdrive") -- checks if the remote works and mount it
hl.exec_cmd("custom-gitnotify")
hl.exec_cmd("sleep 4 & caelestia-shell") -- works better if it sleeps a bit before
hl.exec_cmd("sleep 20 && ngcp pull --automatic") -- see github.com/tomasriveral/nix-git-cherry-picker
end
'')
];
};
splash = true; # remove default background on startup
# gestures (also keybindings)
gesture = [
@@ -316,26 +811,6 @@
"3, left, move, -col"
];
# █░░ ▄▀█ █▄█ █▀█ █░█ ▀█▀ █▀
# █▄▄ █▀█ ░█░ █▄█ █▄█ ░█░ ▄█
dwindle = {
preserve_split = true;
};
scrolling = {
column_width = 0.45;
};
# █▀▄▀█ █ █▀ █▀▀
# █░▀░█ █ ▄█ █▄▄
misc = {
vrr = 0;
force_default_wallpaper = 0;
};
xwayland = {
force_zero_scaling = true;
};
# █▀▄▀█ █▀█ █▄░█ █ ▀█▀ █▀█ █▀█
# █░▀░█ █▄█ █#░▀█ █ ░█░ █▄█ █▀▄
@@ -351,7 +826,8 @@
#| | | || || |_| || | | | | | _____| |
#|___| |_______||_______||_______||___| |_| |__||_______|
#
"plugin:dynamic-cursors" = {
/*"plugin:dynamic-cursors" = {
enabled = true;
threshold = 2;
mode = "rotate";
@@ -393,38 +869,11 @@
showEmptyWorkspace = true;
workspaceActiveBorder = "rgb(ab7746)";
disableBlur = true;
};
};*/
#####################################################
#####################################################
# theme
decoration = {
dim_special = 0.3;
rounding = 18;
blur = {
special = true;
enabled = true;
size = 4;
passes = 2;
new_optimizations = true;
ignore_opacity = true;
};
};
general = {
gaps_in = 5;
gaps_out = 15;
border_size = 4;
"col.active_border" = "rgba(ca6702ff) rgba(ecd3a0ff) 45deg";
"col.inactive_border" = "rgba(f1dca7d9) rgba(ffe1a8d9) 45deg";
layout = "dwindle";
resize_on_border = true;
};
group = {
"col.border_active" = "rgba(ca6702ff) rgba(ecd3a0ff) 45deg";
"col.border_inactive" = "rgba(f1dca7d9) rgba(ffe1a8d9) 45deg";
"col.border_locked_active" = "rgba(ca6702ff) rgba(ecd3a0ff) 45deg";
"col.border_locked_inactive" = "rgba(f1dca7d9) rgba(ffe1a8d9) 45deg";
};
####################################################
##################################################
+10 -7
View File
@@ -35,8 +35,8 @@
CPUWeight = 1; # minimum relative CPU share
};
};
systemd.user.timers.kdrive-sync = {
wantedBy = [ "timers.target" ];
systemd.user.timers.kdrive-sync = {
wantedBy = ["timers.target"];
timerConfig = {
OnBootSec = "10m";
OnUnitActiveSec = "1h";
@@ -48,11 +48,12 @@
name = "custom-checkKdrive";
runtimeInputs = with pkgs; [
rclone
matrix-commander-rs
curl
libnotify
];
text = ''
# shellcheck disable=SC1091
source /run/agenix/ntfy
# waits for an internet connection. It pings both Google DNS and Cloudfare dns in case one of them is down
until ping -c1 -W1 1.1.1.1 >/dev/null 2>&1 || \
ping -c1 -W1 8.8.8.8 >/dev/null 2>&1
@@ -72,9 +73,11 @@
else
echo "kdrive rclone failed with error: $output"
notify-send "rclone kdrive failed" "$output"
matrix-commander-rs --verbose -m "rclone kdrive failed.<br>Error: <pre>$output</pre><br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" \
--html \
-r "\!BXRRokBmEdNOyYdfOF:matrix.org"
curl \
-u ":$NTFY_TOKEN" \
-d "Rclone couldnt access kdrive (rclone lsd kdrive). Error: $output" \
-H "Title: Rclone kdrive" \
"$NTFY_SERVER/Alerts"
fi
'';
};
+2 -4
View File
@@ -1,15 +1,13 @@
_: {
flake.nixosModules.mullvad = {pkgs-unstable, ...}: {
flake.nixosModules.mullvad = _: {
services.mullvad-vpn = {
enable = true;
package = pkgs-unstable.mullvad-vpn;
};
};
flake.homeModules.mullvad = {pkgs-unstable, ...}: {
flake.homeModules.mullvad = _: {
programs.mullvad-vpn = {
# gui
enable = true;
package = pkgs-unstable.mullvad-vpn;
};
};
}
+9 -2
View File
@@ -53,6 +53,8 @@ _: {
pkgs-unstable.vimPlugins.nvim-treesitter-parsers.printf
pkgs-unstable.vimPlugins.nvim-treesitter-parsers.python
pkgs-unstable.vimPlugins.nvim-treesitter-parsers.sparql
pkgs-unstable.vimPlugins.lean-nvim
pkgs-unstable.vimPlugins.vim-ledger
pkgs-unstable.vimPlugins.telescope-nvim
pkgs-unstable.vimPlugins.nvim-scrollbar
pkgs-unstable.vimPlugins.promise-async
@@ -371,7 +373,7 @@ _: {
},
})
vim.lsp.enable({ "lua_ls", "clangd", "pylsp", "texlab", "nixd", "ltex"})
vim.lsp.enable({ "lua_ls", "clangd", "pylsp", "texlab", "nixd", "ltex", "leanls"})
-- =========================
-- DASHBOARD
-- =========================
@@ -474,7 +476,12 @@ _: {
-- =========================
require('lualine').setup { options = { theme = "gruvbox_dark" } }
-- ==================
-- lean
-- ==================
require('lean').setup({
mappings = true,
})
--==================0
-- Some utils
--==================
+32 -3
View File
@@ -1,5 +1,5 @@
{inputs, ...}: {
flake.homeModules.notewrapper = {pkgs, ...}: {
flake.homeModules.laptop-notewrapper = {pkgs, ...}: {
home.packages = [
inputs.notewrapper.packages.${pkgs.system}.default
];
@@ -8,7 +8,7 @@
force = true;
text = ''
{
"directory": ["~/Documents/Notes/", "~/test/"],
"directory": ["~/kdrive/Notes/"],
"render": true,
"jumpToEndOfFileOnLaunch": true,
"editor": "neovim",
@@ -16,7 +16,36 @@
"dateEntry": "# %Y %m %d %a",
"newLineOnOpening": true,
"backup": {
"enable": true,
"enable": false,
"directory": {
"~/Documents/Notes/": "~/kdrive/Notes/",
"~/test/": "~/backupTest/"
},
"interval": "daily",
"rsyncArgs": ["-Lqah", "--update"]
}
}
'';
};
};
flake.homeModules.desktop-notewrapper = {pkgs, ...}: {
home.packages = [
inputs.notewrapper.packages.${pkgs.system}.default
];
home.file.".config/notewrapper/config.json" = {
enable = true;
force = true;
text = ''
{
"directory": ["~/hdd/kdrive/Notes/"],
"render": true,
"jumpToEndOfFileOnLaunch": true,
"editor": "neovim",
"journalRegex": ".*journal.*",
"dateEntry": "# %Y %m %d %a",
"newLineOnOpening": true,
"backup": {
"enable": false,
"directory": {
"~/Documents/Notes/": "~/kdrive/Notes/",
"~/test/": "~/backupTest/"
+9
View File
@@ -0,0 +1,9 @@
_: {
flake.homeModules.tmux = _: {
programs.tmux = {
enable = true;
clock24 = true;
};
};
}
+1 -1
View File
@@ -50,7 +50,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 "$@"
+4 -2
View File
@@ -36,7 +36,8 @@
services.system76-scheduler.settings.cfsProfiles.enable = true; # Better scheduling for CPU cycles - thanks System76!!!
services.thermald.enable = false; # Enable thermald, the temperature management daemon. (only necessary if on Intel CPUs)
services.power-profiles-daemon.enable = true; # ppd is recommended over tlp for framework 16
/*services.tlp = {
/*
services.tlp = {
enable = true; # Enable TLP (better than gnomes internal power manager)
settings = {
CPU_BOOST_ON_AC = 1;
@@ -51,7 +52,8 @@
PLATFORM_PROFILE_ON_BAT = "powersave";
STOP_CHARGE_THRESH_BAT1 = 80;
};
};*/
};
*/
environment.systemPackages = [
self.packages.${pkgs.system}.custom-performance
];
+1 -1
View File
@@ -1,5 +1,5 @@
{self, ...}: {
flake.nixosModules.performance-desktop = {pkgs,...}: {
flake.nixosModules.performance-desktop = {pkgs, ...}: {
environment.systemPackages = [
self.packages.${pkgs.system}.custom-performance
];
+5 -2
View File
@@ -30,6 +30,8 @@
games
hardware-configuration-desktop
hdd
hledger
hledger-desktop
hyprland
IO
kdrive-desktop # we will setup this later
@@ -42,7 +44,7 @@
notifications
nvidia
office
#ollama
ollama
otherUtils
performance-desktop
printer
@@ -69,7 +71,7 @@
mullvad
neovim
nix-git-cherry-picker-desktop
notewrapper
desktop-notewrapper
oh-my-zsh
ripgrep
rofi
@@ -78,6 +80,7 @@
swaync # used in performance mode
thunderbird
tomasr
tmux
vivify
waybar-minimal # used in performance mode
zoxide
+6 -1
View File
@@ -31,6 +31,8 @@
gitBackup
hardware-configuration-laptop
hardwareUtils-laptop
hledger
hledger-laptop
hyprland
IO
kdrive-laptop
@@ -70,7 +72,7 @@
mullvad
neovim
nix-git-cherry-picker-laptop
notewrapper
laptop-notewrapper
oh-my-zsh
ripgrep
rofi
@@ -78,6 +80,7 @@
ssh
swaync # used in performance mode
thunderbird
tmux
tomasr
vivify
waybar-minimal # used in performance mode
@@ -128,6 +131,8 @@
home.sessionVariables = {
EDITOR = "neovim";
TERMINAL = "kitty";
SYSTEMD_PAGER = "cat";
PAGER = "cat";
};
# Required for Home Manager
+17
View File
@@ -0,0 +1,17 @@
{inputs, ...}: {
flake.nixosModules.agenix = {pkgs, ...}: {
environment.systemPackages = [
inputs.agenix.packages.${pkgs.system}.default
pkgs.age
];
age.identityPaths = [
"/etc/ssh/ssh_host_ed25519_key"
];
age.secrets.ntfy = {
file = ../../secrets/ntfy.age;
owner = "tomasr";
group = "users";
mode = "0400";
};
};
}
+2
View File
@@ -19,6 +19,8 @@
self.packages.${pkgs.system}.custom-changeAudioOutput
kdePackages.okular
kdePackages.dolphin
kdePackages.dolphin-plugins
kdePackages.ark
pulseaudio # sound server
playerctl # controls media player
pavucontrol # PulseAudio Volume Control
+48 -18
View File
@@ -2,8 +2,12 @@
flake.nixosModules.autoCleanup-laptop = {
pkgs,
pkgs-unstable,
config,
...
}: {
age.secrets.ntfy = {
file = ../../secrets/ntfy.age;
};
# Ensure your script is available system-wide
environment.systemPackages = [
self.packages.${pkgs.system}.custom-cleanNix-laptop
@@ -17,6 +21,9 @@
description = "NixOS configuration auto cleanup";
serviceConfig = {
Environment = [
"NTFY_SECRET=${config.age.secrets.ntfy.path}"
];
Type = "oneshot";
ExecStart = "/run/current-system/sw/bin/custom-cleanNix";
@@ -54,8 +61,12 @@
flake.nixosModules.autoCleanup-desktop = {
pkgs,
pkgs-unstable,
config,
...
}: {
age.secrets.ntfy = {
file = ../../secrets/ntfy.age;
};
# Ensure your script is available system-wide
environment.systemPackages = [
self.packages.${pkgs.system}.custom-cleanNix-desktop
@@ -69,6 +80,9 @@
description = "NixOS configuration auto cleanup";
serviceConfig = {
Environment = [
"NTFY_SECRET=${config.age.secrets.ntfy.path}"
];
Type = "oneshot";
ExecStart = "/run/current-system/sw/bin/custom-cleanNix";
@@ -108,14 +122,18 @@
runtimeInputs = with pkgs; [
git
nixos-rebuild
matrix-commander-rs
curl
libnotify
alejandra
deadnix
statix
];
text = ''
set -e
set -ex
# shellcheck disable=SC1090
source "$NTFY_SECRET"
FLAKE_DIR="/home/tomasr/nixos"
FLAKE="$FLAKE_DIR#laptop"
@@ -139,7 +157,7 @@
alejandra "$FLAKE_DIR" # formats the config
echo "--------------------------------------------------------------"
if sudo /run/current-system/sw/bin/nixos-rebuild switch --flake "$FLAKE" 2> "$ERROR_FILE"; then # use /run/.../bin/ uses the sudoless rule
if /run/wrappers/bin/sudo /run/current-system/sw/bin/nixos-rebuild switch --flake "$FLAKE" 2> "$ERROR_FILE"; then # use /run/.../bin/ uses the sudoless rule
if ! git -C "$FLAKE_DIR" diff --quiet HEAD; then
git -C "$FLAKE_DIR" add -A
@@ -148,9 +166,11 @@
notify-send "Nix auto cleanup" "Everything OK"
matrix-commander-rs --verbose -m "Nix auto cleanup. Everything OK.<br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" \
--html \
-r "\!BXRRokBmEdNOyYdfOF:matrix.org"
curl \
-u ":$NTFY_TOKEN" \
-d "Everything OK" \
-H "Title: Laptop Nix auto cleanup" \
"$NTFY_SERVER/Alerts"
else
notify-send "Nix auto cleanup" "No changes"
git -C "$FLAKE_DIR" push
@@ -161,9 +181,11 @@
notify-send -u critical "Nix auto cleanup" "FAILED"
matrix-commander-rs --verbose -m "Nix auto cleanup failed.<br>Error: <pre>$ERROR_MSG</pre><br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" \
--html \
-r "\!BXRRokBmEdNOyYdfOF:matrix.org"
curl \
-u ":$NTFY_TOKEN" \
-d "Nix auto cleanup failed. Error: $ERROR_MSG" \
-H "Title: Laptop Nix auto cleanup" \
"$NTFY_SERVER/Alerts"
git -C "$FLAKE_DIR" reset --hard "pre-cleanup-$TIME"
fi
@@ -178,14 +200,18 @@
runtimeInputs = with pkgs; [
git
nixos-rebuild
matrix-commander-rs
curl
libnotify
alejandra
deadnix
statix
];
text = ''
set -e
set -ex
# shellcheck disable=SC1090
source "$NTFY_SECRET"
FLAKE_DIR="/home/tomasr/nixos"
FLAKE="$FLAKE_DIR#desktop"
@@ -209,7 +235,7 @@
alejandra "$FLAKE_DIR" # formats the config
echo "--------------------------------------------------------------"
if sudo /run/current-system/sw/bin/nixos-rebuild switch --flake "$FLAKE" 2> "$ERROR_FILE"; then # use /run/.../bin/ uses the sudoless rule
if /run/wrappers/bin/sudo /run/current-system/sw/bin/nixos-rebuild switch --flake "$FLAKE" 2> "$ERROR_FILE"; then # use /run/.../bin/ uses the sudoless rule
if ! git -C "$FLAKE_DIR" diff --quiet HEAD; then
git -C "$FLAKE_DIR" add -A
@@ -218,9 +244,11 @@
notify-send "Nix auto cleanup" "Everything OK"
matrix-commander-rs --verbose -m "Nix auto cleanup. Everything OK.<br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" \
--html \
-r "\!BXRRokBmEdNOyYdfOF:matrix.org"
curl \
-u ":$NTFY_TOKEN" \
-d "Everything OK" \
-H "Title: Desktop Nix auto cleanup" \
"$NTFY_SERVER/Alerts"
else
notify-send "Nix auto cleanup" "No changes"
git -C "$FLAKE_DIR" push
@@ -231,9 +259,11 @@
notify-send -u critical "Nix auto cleanup" "FAILED"
matrix-commander-rs --verbose -m "Nix auto cleanup failed.<br>Error: <pre>$ERROR_MSG</pre><br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" \
--html \
-r "\!BXRRokBmEdNOyYdfOF:matrix.org"
curl \
-u ":$NTFY_TOKEN" \
-d "Nix auto cleanup failed. Error: $ERROR_MSG" \
-H "Title: Desktop Nix auto cleanup" \
"$NTFY_SERVER/Alerts"
git -C "$FLAKE_DIR" reset --hard "pre-cleanup-$TIME"
fi
+41 -14
View File
@@ -1,5 +1,12 @@
{self, ...}: {
flake.nixosModules.autoUpdate-laptop = {pkgs, ...}: {
flake.nixosModules.autoUpdate-laptop = {
pkgs,
config,
...
}: {
age.secrets.ntfy = {
file = ../../secrets/ntfy.age;
};
# Ensure your script is available system-wide
environment.systemPackages = [
self.packages.${pkgs.system}.custom-autoupdate-laptop
@@ -46,7 +53,14 @@
};
## desktop
flake.nixosModules.autoUpdate-desktop = {pkgs, ...}: {
flake.nixosModules.autoUpdate-desktop = {
pkgs,
config,
...
}: {
age.secrets.ntfy = {
file = ../../secrets/ntfy.age;
};
# Ensure your script is available system-wide
environment.systemPackages = [
self.packages.${pkgs.system}.custom-autoupdate-desktop
@@ -103,6 +117,8 @@
];
text = ''
# shellcheck disable=SC1090
source "$NTFY_SECRET"
set -e
FLAKE_DIR="/home/tomasr/nixos"
@@ -128,9 +144,11 @@
notify-send "Flake autoupdate" "Rebuild OK"
matrix-commander-rs --verbose -m "Flake rebuild succesfull.<br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" \
--html \
-r "\!BXRRokBmEdNOyYdfOF:matrix.org"
curl \
-u ":$NTFY_TOKEN" \
-d "Laptop Flake rebuild successful" \
-H "Title: Flake autoupdate" \
"$NTFY_SERVER/Alerts"
else
notify-send "Flake autoupdate" "No changes"
git -C "$FLAKE_DIR" push
@@ -141,9 +159,12 @@
notify-send -u critical "Flake autoupdate" "FAILED"
matrix-commander-rs --verbose -m "Flake rebuild failed.<br>Error: <pre>$ERROR_MSG</pre><br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" \
--html \
-r "\!BXRRokBmEdNOyYdfOF:matrix.org"
curl \
-u ":$NTFY_TOKEN" \
-d "Laptop Flake rebuild failed. Error: $ERROR_MSG" \
-H "Title: Flake autoupdate FAILED" \
-H "Priority: urgent" \
"$NTFY_SERVER/Alerts"
git -C "$FLAKE_DIR" reset --hard "pre-autoupdate-$TIME"
fi
@@ -189,9 +210,12 @@
notify-send "Flake autoupdate" "Rebuild OK"
matrix-commander-rs --verbose -m "Flake rebuild succesfull.<br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" \
--html \
-r "\!BXRRokBmEdNOyYdfOF:matrix.org"
curl \
-u ":$NTFY_TOKEN" \
-d "Flake rebuild successful" \
-H "Title: Desktop Flake autoupdate" \
"$NTFY_SERVER/Alerts"
else
notify-send "Flake autoupdate" "No changes"
git -C "$FLAKE_DIR" push
@@ -202,9 +226,12 @@
notify-send -u critical "Flake autoupdate" "FAILED"
matrix-commander-rs --verbose -m "Flake rebuild failed.<br>Error: <pre>$ERROR_MSG</pre><br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" \
--html \
-r "\!BXRRokBmEdNOyYdfOF:matrix.org"
curl \
-u ":$NTFY_TOKEN" \
-d "Flake rebuild failed. Error: $ERROR_MSG" \
-H "Title: Desktop Flake autoupdate FAILED" \
-H "Priority: urgent" \
"$NTFY_SERVER/Alerts"
git -C "$FLAKE_DIR" reset --hard "pre-autoupdate-$TIME"
fi
+20
View File
@@ -0,0 +1,20 @@
_: {
flake.nixosModules.hledger = {pkgs, ...}: {
environment.systemPackages = with pkgs; [
hledger
hledger-ui
hledger-web
asciinema # used for some hledger demos
];
};
flake.nixosModules.hledger-laptop = _: {
environment.variables = {
LEDGER_FILE = "/home/tomasr/kdrive/Budget/hledger.journal";
};
};
flake.nixosModules.hledger-desktop = _: {
environment.variables = {
LEDGER_FILE = "/home/tomasr/hdd/kdrive/Budget/hledger.journal";
};
};
}
@@ -3,44 +3,26 @@
environment.systemPackages = with pkgs; [
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)
matrix-commander-rs # matrix client used to send notifications from scripts to my phone
# battery notifications
self.packages.${pkgs.system}.custom-batterynotify
self.packages.${pkgs.system}.custom-batterywarning
# checks if matrix-commander-rs is installed and logged in
self.packages.${pkgs.system}.custom-checkMatrix
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
];
};
perSystem = {pkgs, ...}: {
packages.custom-checkMatrix = pkgs.writeShellApplication {
name = "custom-checkMatrix";
runtimeInputs = with pkgs; [
matrix-commander-rs
libnotify
];
text = ''
expected="@totorile1:unredacted.org"
current="$(matrix-commander-rs --whoami | tr -d '\n')"
if [ "$current" != "$expected" ]; then
notify-send "matrix-commander-rs" \
"You are not logged in as @totorile1:unredacted.org\nLog:\n$current"
fi
'';
};
packages.custom-gitnotify = pkgs.writeShellApplication {
name = "custom-gitnotify";
runtimeInputs = with pkgs; [
git
libnotify
curl
];
text = ''
# shellcheck disable=SC1091
source /run/agenix/ntfy
# Check if git is installed
if ! command -v git >/dev/null 2>&1; then
exit 0
@@ -53,9 +35,10 @@
notify-send \
"Git not configured" \
"Set your identity\n or remove this warning by removing the custom-gitnotify line in\n ~/nixos/modules/applications/hyprland.nix"
matrix-commander-rs --verbose -m "Git not configured.<br>Set your identify or remove this warning by removing the custom-gitnotify in ~/nixos/modules/applications/hyprland.nix<br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" \
--html \
-r "\!BXRRokBmEdNOyYdfOF:matrix.org"
curl \
-u ":$NTFY_TOKEN" \
-d "Git not configured" \
"$NTFY_SERVER/Alerts"
fi
'';
};
+20 -5
View File
@@ -1,5 +1,12 @@
{self, ...}: {
flake.nixosModules.gitBackup = {pkgs, ...}: {
flake.nixosModules.gitBackup = {
pkgs,
config,
...
}: {
age.secrets.ntfy = {
file = ../../secrets/ntfy.age;
};
environment.systemPackages = [
self.packages.${pkgs.system}.custom-gitBackup
];
@@ -9,6 +16,9 @@
serviceConfig = {
Type = "oneshot";
Environment = [
"NTFY_SECRET=${config.age.secrets.ntfy.path}"
];
ExecStart = "/run/current-system/sw/bin/custom-gitBackup";
@@ -41,11 +51,14 @@
name = "custom-gitBackup";
runtimeInputs = with pkgs; [
rsync
matrix-commander-rs
curl
libnotify
self.packages.${pkgs.system}.custom-checkKdrive
];
text = ''
# shellcheck disable=SC1090
source "$NTFY_SECRET"
# checks if kdrive is available
custom-checkKdrive
@@ -69,9 +82,11 @@
notify_error() {
local message="$1"
notify-send "Git Backup Failed" "$message"
matrix-commander-rs --verbose -m "Git Backup Failed: $message <br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" \
--html \
-r "\!BXRRokBmEdNOyYdfOF:matrix.org"
curl \
-u ":$NTFY_TOKEN" \
-d "Git backup failed. Error: $message" \
-H "Title: Git Backup" \
"$NTFY_SERVER/Alerts"
}
+6
View File
@@ -3,6 +3,12 @@ _: {
environment.systemPackages = with pkgs; [
libreoffice
birdtray
kdePackages.korganizer
#needed for korganizer
kdePackages.akonadi
kdePackages.akonadi-calendar
kdePackages.akonadi-calendar-tools
];
programs.kde-pim.kontact = true; # needed for korganizer
};
}
+1 -1
View File
@@ -1,7 +1,7 @@
_: {
flake.nixosModules.rss = {pkgs, ...}: {
environment.systemPackages = with pkgs; [
nom
newsflash
];
};
}
BIN
View File
Binary file not shown.
+9
View File
@@ -0,0 +1,9 @@
let
backupAgeKey = "age1y4lhpk7awhjyu42p46ulg5q2c49r2lnwu8tyyk4ejj6jztd64uksfhd670";
laptopHostKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJCsewl8ZXXMjRyO20cBIiuW2gA4mGoMkxQ0dcMyNidR root@nixos";
in {
"ntfy.age".publicKeys = [
backupAgeKey
laptopHostKey
];
}