mirror of
https://github.com/tomasriveral/nixos.git
synced 2026-10-13 09:43:05 +02:00
Compare commits
38
Commits
1071ce70d7
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3ac5aaa396 | ||
|
|
21349e4585 | ||
|
|
1a19380962 | ||
|
|
f23ec09369 | ||
|
|
7d5ae9fa2c | ||
|
|
8f4117f3e7 | ||
|
|
bd97ba4df7 | ||
|
|
bd678ae32d | ||
|
|
3a51d3c14a | ||
|
|
9879131aca | ||
|
|
c2f733d4c9 | ||
|
|
44709a3b7c | ||
|
|
ce8c4f7d73 | ||
|
|
2f2d3cd2ba | ||
|
|
b738cbb8ef | ||
|
|
fdb4d53ec0 | ||
|
|
1a29fda1f9 | ||
|
|
bc5f00cf1d | ||
|
|
b760904557 | ||
|
|
28d56cf671 | ||
|
|
4db1f329f2 | ||
|
|
7afe2cf7b6 | ||
|
|
434e6ed31d | ||
|
|
f1e266331c | ||
|
|
f745a79af8 | ||
|
|
a99cb710b3 | ||
|
|
9805986c10 | ||
|
|
bc67f2b0e8 | ||
|
|
7cd934c58c | ||
|
|
6e3286419f | ||
|
|
c7781b7483 | ||
|
|
682a5c13df | ||
|
|
82bd78bc73 | ||
|
|
98bc46e67f | ||
|
|
07c2293f77 | ||
|
|
7f74878433 | ||
|
|
c235a0a724 | ||
|
|
3fc66623f2 |
No files matched your search
@@ -430,7 +430,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
|
||||||
@@ -650,6 +652,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
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -64,12 +64,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"
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -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 = {
|
||||||
|
|||||||
@@ -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"];
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -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";
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{...}: {
|
_: {
|
||||||
flake.nixosModules.hyprland = {
|
flake.nixosModules.hyprland = {
|
||||||
pkgs,
|
pkgs,
|
||||||
pkgs-unstable,
|
pkgs-unstable,
|
||||||
@@ -35,23 +35,22 @@
|
|||||||
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" = {
|
||||||
@@ -93,6 +92,7 @@ let
|
|||||||
(builtins.readFile ../../other/hyprland/hyprland.lua);
|
(builtins.readFile ../../other/hyprland/hyprland.lua);
|
||||||
in
|
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;
|
||||||
|
|||||||
@@ -14,7 +14,6 @@
|
|||||||
flake.nixosModules.kdrive-desktop = {pkgs-unstable, ...}: {
|
flake.nixosModules.kdrive-desktop = {pkgs-unstable, ...}: {
|
||||||
environment.systemPackages = with pkgs-unstable; [
|
environment.systemPackages = with pkgs-unstable; [
|
||||||
rclone
|
rclone
|
||||||
icloudpd
|
|
||||||
self.packages.${pkgs-unstable.system}.custom-checkKdrive
|
self.packages.${pkgs-unstable.system}.custom-checkKdrive
|
||||||
self.packages.${pkgs-unstable.system}.custom-synckdrive-desktop
|
self.packages.${pkgs-unstable.system}.custom-synckdrive-desktop
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
_: {
|
|
||||||
flake.nixosModules.mullvad = _: {
|
|
||||||
services.mullvad-vpn = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
flake.homeModules.mullvad = _: {
|
|
||||||
programs.mullvad-vpn = {
|
|
||||||
# gui
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -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",
|
||||||
@@ -16,13 +16,17 @@
|
|||||||
"dateEntry": "# %Y %m %d %a",
|
"dateEntry": "# %Y %m %d %a",
|
||||||
"newLineOnOpening": true,
|
"newLineOnOpening": true,
|
||||||
"backup": {
|
"backup": {
|
||||||
"enable": false,
|
"enable": true,
|
||||||
"directory": {
|
"directory": {
|
||||||
"~/Documents/Notes/": "~/kdrive/Notes/",
|
"~/Documents/Notes/": "~/kdrive/Notes/"
|
||||||
"~/test/": "~/backupTest/"
|
|
||||||
},
|
},
|
||||||
"interval": "daily",
|
"interval": "daily",
|
||||||
"rsyncArgs": ["-Lqah", "--update"]
|
"rsyncArgs": ["-Lqah", "--update"],
|
||||||
|
"git": {
|
||||||
|
"enable": true,
|
||||||
|
"name": "Tomas Rivera",
|
||||||
|
"email": "tomas.riveral@icloud.com"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
@@ -47,7 +51,7 @@
|
|||||||
"backup": {
|
"backup": {
|
||||||
"enable": false,
|
"enable": false,
|
||||||
"directory": {
|
"directory": {
|
||||||
"~/Documents/Notes/": "~/kdrive/Notes/",
|
"~/Documents/Notes/": "~/hdd/kdrive/Notes/",
|
||||||
"~/test/": "~/backupTest/"
|
"~/test/": "~/backupTest/"
|
||||||
},
|
},
|
||||||
"interval": "daily",
|
"interval": "daily",
|
||||||
|
|||||||
@@ -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";
|
||||||
|
|||||||
@@ -336,184 +336,5 @@
|
|||||||
install -m755 qtbatticon $out/bin/
|
install -m755 qtbatticon $out/bin/
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
# This was replaced by caelestia shell's Game Mode
|
|
||||||
packages.custom-performance = pkgs.writeShellApplication {
|
|
||||||
name = "custom-performance";
|
|
||||||
runtimeInputs = with pkgs; [
|
|
||||||
hyprland
|
|
||||||
brightnessctl
|
|
||||||
swaynotificationcenter
|
|
||||||
self.packages.${pkgs.system}.custom-wallpaper
|
|
||||||
libnotify
|
|
||||||
inputs.caelestia-shell.packages.${pkgs.system}.default
|
|
||||||
];
|
|
||||||
text = ''
|
|
||||||
STATE="$HOME/.cache/hypr-battery-saver"
|
|
||||||
|
|
||||||
enable() {
|
|
||||||
mkdir -p "$(dirname "$STATE")"
|
|
||||||
|
|
||||||
echo "Enabling battery saver mode..."
|
|
||||||
|
|
||||||
# Save brightness
|
|
||||||
brightnessctl get > "''${STATE}.brightness" 2>/dev/null || true
|
|
||||||
|
|
||||||
# Kill heavy UI components
|
|
||||||
pkill -f caelestia-shell || true
|
|
||||||
pkill -f caelestia || true
|
|
||||||
pkill shell || true
|
|
||||||
pkill -f custom-wallpaper || true
|
|
||||||
|
|
||||||
# Start lightweight notifications
|
|
||||||
pkill swaync || true
|
|
||||||
swaync & disown
|
|
||||||
|
|
||||||
# Start lightweight waybar
|
|
||||||
pkill waybar || true
|
|
||||||
waybar & disown
|
|
||||||
|
|
||||||
# Lower refresh rate (BIGGEST win)
|
|
||||||
hyprctl keyword monitor "eDP-1,2560x1600@60,0x0,1"
|
|
||||||
|
|
||||||
# Core performance toggles
|
|
||||||
hyprctl --batch "\
|
|
||||||
keyword animations:enabled 0;\
|
|
||||||
keyword animation borderangle,0;\
|
|
||||||
keyword decoration:shadow:enabled 0;\
|
|
||||||
keyword decoration:blur:enabled 0;\
|
|
||||||
keyword decoration:rounding 0;\
|
|
||||||
keyword decoration:fullscreen_opacity 1;\
|
|
||||||
keyword general:gaps_in 0;\
|
|
||||||
keyword general:gaps_out 0;\
|
|
||||||
keyword general:border_size 1;\
|
|
||||||
keyword decoration:active_opacity 1;\
|
|
||||||
keyword decoration:inactive_opacity 1;\
|
|
||||||
keyword misc:vfr true"
|
|
||||||
|
|
||||||
# Lower brightness
|
|
||||||
brightnessctl set 5% 2>/dev/null || true
|
|
||||||
|
|
||||||
touch "$STATE"
|
|
||||||
|
|
||||||
notify-send "Battery Saver" "Enabled"
|
|
||||||
}
|
|
||||||
|
|
||||||
disable() {
|
|
||||||
echo "Disabling battery saver mode..."
|
|
||||||
|
|
||||||
# Restore refresh rate
|
|
||||||
hyprctl keyword monitor "eDP-1,2560x1600@165,0x0,1"
|
|
||||||
|
|
||||||
# Restore Caelestia
|
|
||||||
pkill swaync || true
|
|
||||||
pkill waybar || true
|
|
||||||
caelestia shell -d >/dev/null 2>&1 &
|
|
||||||
disown
|
|
||||||
|
|
||||||
|
|
||||||
# Restart wallpaper
|
|
||||||
custom-wallpaper >/dev/null 2>&1 &
|
|
||||||
disown
|
|
||||||
|
|
||||||
# Restore full UI via reload (safe here on exit)
|
|
||||||
hyprctl reload
|
|
||||||
|
|
||||||
# Restore brightness
|
|
||||||
if [[ -f "''${STATE}.brightness" ]]; then
|
|
||||||
brightnessctl set "$(cat "''${STATE}.brightness")" 2>/dev/null || true
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -f "$STATE" "''${STATE}.brightness"
|
|
||||||
|
|
||||||
notify-send "Battery Saver" "Disabled"
|
|
||||||
}
|
|
||||||
|
|
||||||
if [[ -f "$STATE" ]]; then
|
|
||||||
disable
|
|
||||||
else
|
|
||||||
enable
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
# Old script that was used for the battery. Might not work.
|
|
||||||
packages.custom-olddeprecatedbatterynotify = pkgs.writeShellApplication {
|
|
||||||
name = "custom-olddeprecatedbatterynotify";
|
|
||||||
|
|
||||||
runtimeInputs = with pkgs; [
|
|
||||||
libnotify # provides notify-send
|
|
||||||
systemd # provides systemctl
|
|
||||||
];
|
|
||||||
|
|
||||||
text = ''
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
LOW="''${BATTERY_LOW_THRESHOLD:-20}"
|
|
||||||
CRITICAL="''${BATTERY_CRITICAL_THRESHOLD:-5}"
|
|
||||||
FULL="''${BATTERY_FULL_THRESHOLD:-95}"
|
|
||||||
INTERVAL="''${BATTERY_INTERVAL:-30}"
|
|
||||||
ACTION="''${BATTERY_CRITICAL_ACTION:-systemctl suspend}"
|
|
||||||
|
|
||||||
notify() {
|
|
||||||
notify-send -a "Battery" -u "$1" "$2" "$3"
|
|
||||||
}
|
|
||||||
|
|
||||||
get_info() {
|
|
||||||
total=0
|
|
||||||
count=0
|
|
||||||
|
|
||||||
for bat in /sys/class/power_supply/BAT*; do
|
|
||||||
[ -f "$bat/capacity" ] || continue
|
|
||||||
capacity=$(<"$bat/capacity")
|
|
||||||
status=$(<"$bat/status")
|
|
||||||
total=$((total + capacity))
|
|
||||||
count=$((count + 1))
|
|
||||||
done
|
|
||||||
|
|
||||||
[ "$count" -gt 0 ] || exit 0
|
|
||||||
percentage=$((total / count))
|
|
||||||
}
|
|
||||||
|
|
||||||
last_state=""
|
|
||||||
|
|
||||||
while true; do
|
|
||||||
get_info
|
|
||||||
|
|
||||||
if [[ "$status" == "Discharging" && "$percentage" -le "$CRITICAL" ]]; then
|
|
||||||
notify critical "Battery Critically Low" "$percentage% — suspending."
|
|
||||||
$ACTION
|
|
||||||
|
|
||||||
elif [[ "$status" == "Discharging" && "$percentage" -le "$LOW" ]]; then
|
|
||||||
if [[ "$last_state" != "low" ]]; then
|
|
||||||
notify normal "Battery Low" "$percentage% remaining."
|
|
||||||
last_state="low"
|
|
||||||
fi
|
|
||||||
|
|
||||||
elif [[ "$status" != "Discharging" && "$percentage" -ge "$FULL" ]]; then
|
|
||||||
if [[ "$last_state" != "full" ]]; then
|
|
||||||
notify normal "Battery Full" "$percentage% — unplug charger."
|
|
||||||
last_state="full"
|
|
||||||
fi
|
|
||||||
|
|
||||||
else
|
|
||||||
last_state=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
sleep "$INTERVAL"
|
|
||||||
done
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
flake.homeModules.cbatticon = _: {
|
|
||||||
# don't works. some GTK error. I let it here if someday, someone is interest in this shit.
|
|
||||||
# ChatGPT half baked a replacement that works on my system.
|
|
||||||
# see qtbatticon
|
|
||||||
services.cbatticon = {
|
|
||||||
enable = true;
|
|
||||||
lowLevelPercent = 20;
|
|
||||||
criticalLevelPercent = 5;
|
|
||||||
batteryId = "BAT1";
|
|
||||||
hideNotification = true; # we use another script for battery notifications
|
|
||||||
updateIntervalSeconds = 10;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -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
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -23,10 +23,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
|
||||||
@@ -39,7 +41,6 @@
|
|||||||
latex
|
latex
|
||||||
ly
|
ly
|
||||||
mathematics
|
mathematics
|
||||||
mullvad
|
|
||||||
networking
|
networking
|
||||||
nixUtils-laptop
|
nixUtils-laptop
|
||||||
nixUtils
|
nixUtils
|
||||||
@@ -51,6 +52,7 @@
|
|||||||
rss
|
rss
|
||||||
udev
|
udev
|
||||||
user
|
user
|
||||||
|
vpn
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
flake.homeModules.laptop = {...}: {
|
flake.homeModules.laptop = {...}: {
|
||||||
@@ -69,7 +71,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
|
||||||
|
|||||||
@@ -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"];
|
||||||
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -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,8 +4,8 @@
|
|||||||
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
|
||||||
|
|||||||
@@ -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
|
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, ...}: {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{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 +18,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
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -0,0 +1,100 @@
|
|||||||
|
# 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
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
+155
-10
@@ -38,6 +38,7 @@ local function close_other_windows()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local wallpapers_enabled = true
|
||||||
local wallpapers = {
|
local wallpapers = {
|
||||||
[1] = "WALLPAPER1/PATH/PLACEHOLDER",
|
[1] = "WALLPAPER1/PATH/PLACEHOLDER",
|
||||||
[2] = "WALLPAPER2/PATH/PLACEHOLDER",
|
[2] = "WALLPAPER2/PATH/PLACEHOLDER",
|
||||||
@@ -51,13 +52,144 @@ local wallpapers = {
|
|||||||
[10] = "WALLPAPER5/PATH/PLACEHOLDER",
|
[10] = "WALLPAPER5/PATH/PLACEHOLDER",
|
||||||
}
|
}
|
||||||
|
|
||||||
hl.on("workspace.active", function(workspace)
|
local function set_wallpaper(workspace)
|
||||||
|
if not wallpapers_enabled then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
local wallpaper = wallpapers[workspace.id]
|
local wallpaper = wallpapers[workspace.id]
|
||||||
|
|
||||||
if wallpaper then
|
if wallpaper then
|
||||||
hl.exec_cmd("awww img -t none " .. wallpaper)
|
hl.exec_cmd("awww img -t none " .. wallpaper)
|
||||||
end
|
end
|
||||||
end)
|
end
|
||||||
|
|
||||||
|
hl.on("workspace.active", set_wallpaper)
|
||||||
|
|
||||||
|
local performance_mode = false
|
||||||
|
local saved_brightness = nil
|
||||||
|
|
||||||
|
local function get_brightness()
|
||||||
|
local handle = io.popen("brightnessctl get 2>/dev/null")
|
||||||
|
|
||||||
|
if not handle then
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
|
local value = handle:read("*a")
|
||||||
|
handle:close()
|
||||||
|
|
||||||
|
if not value then
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
|
value = value:gsub("%s+$", "")
|
||||||
|
return tonumber(value)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function set_performance_mode()
|
||||||
|
if performance_mode then
|
||||||
|
hl.monitor({
|
||||||
|
output = "eDP-1",
|
||||||
|
mode = "2560x1600@165",
|
||||||
|
position = "0x0",
|
||||||
|
scale = 1,
|
||||||
|
})
|
||||||
|
|
||||||
|
hl.exec_cmd("pkill swaync || true")
|
||||||
|
hl.exec_cmd("pkill waybar || true")
|
||||||
|
hl.exec_cmd("caelestia shell -d")
|
||||||
|
|
||||||
|
if saved_brightness then
|
||||||
|
hl.exec_cmd("brightnessctl set " .. saved_brightness)
|
||||||
|
end
|
||||||
|
|
||||||
|
saved_brightness = nil
|
||||||
|
wallpapers_enabled = true
|
||||||
|
performance_mode = false
|
||||||
|
|
||||||
|
hl.exec_cmd("hyprctl reload")
|
||||||
|
|
||||||
|
local workspace = hl.get_active_workspace()
|
||||||
|
if workspace then
|
||||||
|
set_wallpaper(workspace)
|
||||||
|
end
|
||||||
|
|
||||||
|
hl.notification.create({
|
||||||
|
text = "Battery Saver",
|
||||||
|
subtext = "Disabled",
|
||||||
|
timeout = 3000,
|
||||||
|
})
|
||||||
|
|
||||||
|
return
|
||||||
|
end
|
||||||
|
-- Save current brightness.
|
||||||
|
saved_brightness = get_brightness()
|
||||||
|
|
||||||
|
-- Lower refresh rate.
|
||||||
|
hl.monitor({
|
||||||
|
output = "eDP-1",
|
||||||
|
mode = "2560x1600@60",
|
||||||
|
position = "0x0",
|
||||||
|
scale = 1,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Stop heavy UI components.
|
||||||
|
hl.exec_cmd("pkill -f caelestia-shell || true")
|
||||||
|
hl.exec_cmd("pkill -f caelestia || true")
|
||||||
|
|
||||||
|
-- Start lightweight notification daemon.
|
||||||
|
hl.exec_cmd("pkill swaync || true")
|
||||||
|
hl.exec_cmd("swaync")
|
||||||
|
|
||||||
|
-- Start lightweight status bar.
|
||||||
|
hl.exec_cmd("pkill waybar || true")
|
||||||
|
hl.exec_cmd("waybar")
|
||||||
|
|
||||||
|
-- Disable expensive Hyprland effects.
|
||||||
|
hl.config({
|
||||||
|
animations = {
|
||||||
|
enabled = false,
|
||||||
|
},
|
||||||
|
|
||||||
|
decoration = {
|
||||||
|
shadow = {
|
||||||
|
enabled = false,
|
||||||
|
},
|
||||||
|
blur = {
|
||||||
|
enabled = false,
|
||||||
|
},
|
||||||
|
rounding = 0,
|
||||||
|
fullscreen_opacity = 1,
|
||||||
|
active_opacity = 1,
|
||||||
|
inactive_opacity = 1,
|
||||||
|
},
|
||||||
|
|
||||||
|
general = {
|
||||||
|
gaps_in = 0,
|
||||||
|
gaps_out = 0,
|
||||||
|
border_size = 1,
|
||||||
|
},
|
||||||
|
|
||||||
|
misc = {
|
||||||
|
vfr = 1,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Lower brightness.
|
||||||
|
hl.exec_cmd("brightnessctl set 5%")
|
||||||
|
|
||||||
|
-- Disable workspace wallpaper switching.
|
||||||
|
wallpapers_enabled = false
|
||||||
|
|
||||||
|
performance_mode = true
|
||||||
|
|
||||||
|
hl.notification.create({
|
||||||
|
text = "Battery Saver",
|
||||||
|
subtext = "Enabled",
|
||||||
|
timeout = 3000,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
hl.curve("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } })
|
hl.curve("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } })
|
||||||
hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.1 }, { 0.1, 1.1 } } })
|
hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.1 }, { 0.1, 1.1 } } })
|
||||||
@@ -168,22 +300,29 @@ 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)
|
||||||
hl.bind("CTRL + ALT + W", hl.dsp.exec_cmd("caelestia shell drawers toggle sidebar"))
|
local function toggle_sidebar()
|
||||||
|
if performance_mode then
|
||||||
|
hl.exec_cmd("swaync-client -t")
|
||||||
|
else
|
||||||
|
hl.exec_cmd("caelestia shell drawers toggle sidebar")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
hl.bind("CTRL + ALT + W", toggle_sidebar)
|
||||||
hl.bind(mod .. " + L", hl.dsp.exec_cmd("caelestia shell lock lock"))
|
hl.bind(mod .. " + L", hl.dsp.exec_cmd("caelestia shell lock lock"))
|
||||||
hl.bind("F11", hl.dsp.exec_cmd("caelestia screenshot"))
|
hl.bind("F11", hl.dsp.exec_cmd("caelestia screenshot"))
|
||||||
hl.bind(mod .. " + SHIFT + S", hl.dsp.exec_cmd("caelestia shell picker open"))
|
hl.bind(mod .. " + SHIFT + S", hl.dsp.exec_cmd("caelestia shell picker open"))
|
||||||
hl.bind(mod .. " + CTRL + 6", close_other_windows)
|
hl.bind(mod .. " + CTRL + 6", close_other_windows)
|
||||||
hl.bind("CTRL + ALT + 7", hl.dsp.exec_cmd("custom-performance"))
|
hl.bind("CTRL + ALT + 7", set_performance_mode)
|
||||||
hl.bind("CTRL + ALT + 1", hl.dsp.exec_cmd("caelestia shell drawers toggle sidebar"))
|
hl.bind("CTRL + ALT + 1", hl.dsp.exec_cmd("caelestia shell drawers toggle sidebar"))
|
||||||
hl.bind(mod .. " + CTRL + 4", hl.dsp.exec_cmd("caelestia shell notifs toggleDnd"))
|
hl.bind(mod .. " + CTRL + 4", hl.dsp.exec_cmd("caelestia shell notifs toggleDnd"))
|
||||||
hl.bind(mod .. " + CTRL + 3", hl.dsp.exec_cmd("pavucontrol"))
|
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"))
|
||||||
|
|
||||||
@@ -673,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 = {
|
||||||
@@ -780,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")
|
||||||
@@ -790,12 +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("sleep 1 && custom-wallpaper")
|
|
||||||
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")
|
||||||
|
|||||||
@@ -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
|
backupAgeKey
|
||||||
laptopHostKey
|
laptopHostKey
|
||||||
];
|
];
|
||||||
|
"epfl.age".publicKeys = [
|
||||||
|
backupAgeKey
|
||||||
|
laptopHostKey
|
||||||
|
];
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user