diff --git a/flake.lock b/flake.lock
index bf17cbe..9d8ad16 100644
--- a/flake.lock
+++ b/flake.lock
@@ -41,11 +41,11 @@
]
},
"locked": {
- "lastModified": 1753216019,
- "narHash": "sha256-zik7WISrR1ks2l6T1MZqZHb/OqroHdJnSnAehkE0kCk=",
+ "lastModified": 1755946532,
+ "narHash": "sha256-POePremlUY5GyA1zfbtic6XLxDaQcqHN6l+bIxdT5gc=",
"owner": "hyprwm",
"repo": "aquamarine",
- "rev": "be166e11d86ba4186db93e10c54a141058bdce49",
+ "rev": "81584dae2df6ac79f6b6dae0ecb7705e95129ada",
"type": "github"
},
"original": {
@@ -235,11 +235,11 @@
]
},
"locked": {
- "lastModified": 1755397986,
- "narHash": "sha256-qwrF5laj6eE3Zht0wKYTmH6QzL7bdOyE2f6jd3WCO8g=",
+ "lastModified": 1758593331,
+ "narHash": "sha256-p+904PfmINyekyA/LieX3IYGsiFtExC00v5gSYfJtpM=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "8b4ac149687e8520187a66f05e9d4eafebf96522",
+ "rev": "9a2dc0efbc569ce9352a6ffb8e8ec8dbc098e142",
"type": "github"
},
"original": {
@@ -253,11 +253,11 @@
"nixpkgs": "nixpkgs_3"
},
"locked": {
- "lastModified": 1753252360,
- "narHash": "sha256-PFAJoEqQWMlo1J+yZb+4HixmhbRVmmNl58e/AkLYDDI=",
+ "lastModified": 1758531979,
+ "narHash": "sha256-iRv5afKzuu6SkwztqMwZ33161CzBJsyeRHp0uviN9TI=",
"owner": "hyprwm",
"repo": "contrib",
- "rev": "6839b23345b71db17cd408373de4f5605bf589b8",
+ "rev": "de79078fd59140067e53cd00ebdf17f96ce27846",
"type": "github"
},
"original": {
@@ -311,11 +311,11 @@
]
},
"locked": {
- "lastModified": 1754305013,
- "narHash": "sha256-u+M2f0Xf1lVHzIPQ7DsNCDkM1NYxykOSsRr4t3TbSM4=",
+ "lastModified": 1758192433,
+ "narHash": "sha256-CR6RnqEJSTiFgA6KQY4TTLUWbZ8RBnb+hxQqesuQNzQ=",
"owner": "hyprwm",
"repo": "hyprgraphics",
- "rev": "4c1d63a0f22135db123fc789f174b89544c6ec2d",
+ "rev": "c44e749dd611521dee940d00f7c444ee0ae4cfb7",
"type": "github"
},
"original": {
@@ -342,11 +342,11 @@
"xdph": "xdph"
},
"locked": {
- "lastModified": 1755416233,
- "narHash": "sha256-tydnBQmV8pPHPlvq7sTEOEhkjXnYaeJtMN+77Rf/1NU=",
+ "lastModified": 1758542519,
+ "narHash": "sha256-NHEzK6MN8Tv9YrnJb2A9KxcOI2cCsKRqZOC5kUeG8Aw=",
"ref": "refs/heads/main",
- "rev": "251288ec5942b3544ad31de1299569284d80f0d7",
- "revCount": 6370,
+ "rev": "70a7047ee175d2e7fca1575d50a3738ac40fd2c6",
+ "revCount": 6446,
"submodules": true,
"type": "git",
"url": "https://github.com/hyprwm/Hyprland"
@@ -462,11 +462,11 @@
]
},
"locked": {
- "lastModified": 1753819801,
- "narHash": "sha256-tHe6XeNeVeKapkNM3tcjW4RuD+tB2iwwoogWJOtsqTI=",
+ "lastModified": 1757694755,
+ "narHash": "sha256-j+w5QUUr2QT/jkxgVKecGYV8J7fpzXCMgzEEr6LG9ug=",
"owner": "hyprwm",
"repo": "hyprland-qtutils",
- "rev": "b308a818b9dcaa7ab8ccab891c1b84ebde2152bc",
+ "rev": "5ffdfc13ed03df1dae5084468d935f0a3f2c9a4c",
"type": "github"
},
"original": {
@@ -491,11 +491,11 @@
]
},
"locked": {
- "lastModified": 1753622892,
- "narHash": "sha256-0K+A+gmOI8IklSg5It1nyRNv0kCNL51duwnhUO/B8JA=",
+ "lastModified": 1756810301,
+ "narHash": "sha256-wgZ3VW4VVtjK5dr0EiK9zKdJ/SOqGIBXVG85C3LVxQA=",
"owner": "hyprwm",
"repo": "hyprlang",
- "rev": "23f0debd2003f17bd65f851cd3f930cff8a8c809",
+ "rev": "3d63fb4a42c819f198deabd18c0c2c1ded1de931",
"type": "github"
},
"original": {
@@ -541,11 +541,11 @@
"systems": "systems_2"
},
"locked": {
- "lastModified": 1750371999,
- "narHash": "sha256-de87tFOEhJiXTHNzG3LcwxGR1a/D6v+nC+9+V1GW1Zs=",
+ "lastModified": 1757972732,
+ "narHash": "sha256-V2lQfZyVMzlyQNtY7VZbJhh+fg9KsNztJynXBs3OgUc=",
"owner": "hyprwm",
"repo": "hyprpicker",
- "rev": "d6a1363a86cd99460f0020134e455d921e8bacd8",
+ "rev": "6f32582d2282fd97f18e54db0f45f53f18edde4f",
"type": "github"
},
"original": {
@@ -564,11 +564,11 @@
"systems": "systems_3"
},
"locked": {
- "lastModified": 1755112136,
- "narHash": "sha256-eYLtZJayWWbKBC3u/gvDSqVyffuD+egryr7zPWRAeyY=",
+ "lastModified": 1757678186,
+ "narHash": "sha256-YuvkWCVZKiUoUC2tx/N5KkPXWmje2UbeENYkOc2C31Y=",
"owner": "hyprwm",
"repo": "hyprsunset",
- "rev": "1f9afca28fac5f490e5f232e6f1887a69ff34896",
+ "rev": "72071709f58bc2fed8546288af295aa9153a287f",
"type": "github"
},
"original": {
@@ -589,11 +589,11 @@
]
},
"locked": {
- "lastModified": 1754481650,
- "narHash": "sha256-6u6HdEFJh5gY6VfyMQbhP7zDdVcqOrCDTkbiHJmAtMI=",
+ "lastModified": 1756117388,
+ "narHash": "sha256-oRDel6pNl/T2tI+nc/USU9ZP9w08dxtl7hiZxa0C/Wc=",
"owner": "hyprwm",
"repo": "hyprutils",
- "rev": "df6b8820c4a0835d83d0c7c7be86fbc555f1f7fd",
+ "rev": "b2ae3204845f5f2f79b4703b441252d8ad2ecfd0",
"type": "github"
},
"original": {
@@ -664,11 +664,11 @@
]
},
"locked": {
- "lastModified": 1751897909,
- "narHash": "sha256-FnhBENxihITZldThvbO7883PdXC/2dzW4eiNvtoV5Ao=",
+ "lastModified": 1755184602,
+ "narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
- "rev": "fcca0c61f988a9d092cbb33e906775014c61579d",
+ "rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d",
"type": "github"
},
"original": {
@@ -759,11 +759,11 @@
},
"nixos-hardware": {
"locked": {
- "lastModified": 1755330281,
- "narHash": "sha256-aJHFJWP9AuI8jUGzI77LYcSlkA9wJnOIg4ZqftwNGXA=",
+ "lastModified": 1757943327,
+ "narHash": "sha256-w6cDExPBqbq7fTLo4dZ1ozDGeq3yV6dSN4n/sAaS6OM=",
"owner": "nixos",
"repo": "nixos-hardware",
- "rev": "3dac8a872557e0ca8c083cdcfc2f218d18e113b0",
+ "rev": "67a709cfe5d0643dafd798b0b613ed579de8be05",
"type": "github"
},
"original": {
@@ -805,11 +805,11 @@
},
"nixpkgs_10": {
"locked": {
- "lastModified": 1744868846,
- "narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=",
+ "lastModified": 1758262103,
+ "narHash": "sha256-aBGl3XEOsjWw6W3AHiKibN7FeoG73dutQQEqnd/etR8=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c",
+ "rev": "12bd230118a1901a4a5d393f9f56b6ad7e571d01",
"type": "github"
},
"original": {
@@ -885,11 +885,11 @@
},
"nixpkgs_6": {
"locked": {
- "lastModified": 1755186698,
- "narHash": "sha256-wNO3+Ks2jZJ4nTHMuks+cxAiVBGNuEBXsT29Bz6HASo=",
+ "lastModified": 1758427187,
+ "narHash": "sha256-pHpxZ/IyCwoTQPtFIAG2QaxuSm8jWzrzBGjwQZIttJc=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "fbcf476f790d8a217c3eab4e12033dc4a0f6d23c",
+ "rev": "554be6495561ff07b6c724047bdd7e0716aa7b46",
"type": "github"
},
"original": {
@@ -933,11 +933,11 @@
},
"nixpkgs_9": {
"locked": {
- "lastModified": 1755186698,
- "narHash": "sha256-wNO3+Ks2jZJ4nTHMuks+cxAiVBGNuEBXsT29Bz6HASo=",
+ "lastModified": 1758427187,
+ "narHash": "sha256-pHpxZ/IyCwoTQPtFIAG2QaxuSm8jWzrzBGjwQZIttJc=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "fbcf476f790d8a217c3eab4e12033dc4a0f6d23c",
+ "rev": "554be6495561ff07b6c724047bdd7e0716aa7b46",
"type": "github"
},
"original": {
@@ -954,11 +954,11 @@
"nixvim": "nixvim_2"
},
"locked": {
- "lastModified": 1755007783,
- "narHash": "sha256-mxKUvsLy6Nf8Td8jQ0Q7q+A+FcTuYMyp/qmnnCRK1QE=",
+ "lastModified": 1755612464,
+ "narHash": "sha256-a77eam3zh4Lr4CrzOo/QKBD+etz4+TQZv/THVoLAhBA=",
"owner": "ahwxorg",
"repo": "nixvim-config",
- "rev": "d4b1e0a37718bd4b704c5c055151135094d911eb",
+ "rev": "76880a7e5930e8255f0d5c19b865beada4bf0573",
"type": "github"
},
"original": {
@@ -993,11 +993,11 @@
"nixpkgs": "nixpkgs_9"
},
"locked": {
- "lastModified": 1755435577,
- "narHash": "sha256-Rgcfyl8sWF+Uxe2HM51kJ72aNtaoy/UPiblwGTZHANU=",
+ "lastModified": 1758640565,
+ "narHash": "sha256-ElrlkD9NTp27BR+K8RO6KYF/5gHURj6b9Vpan/bf8wk=",
"owner": "nix-community",
"repo": "NUR",
- "rev": "199390e7082f9307578531d389cccd9f37412156",
+ "rev": "af2e804a55892665adfd0b30c75088b1ad1b462c",
"type": "github"
},
"original": {
@@ -1040,11 +1040,11 @@
]
},
"locked": {
- "lastModified": 1754416808,
- "narHash": "sha256-c6yg0EQ9xVESx6HGDOCMcyRSjaTpNJP10ef+6fRcofA=",
+ "lastModified": 1758108966,
+ "narHash": "sha256-ytw7ROXaWZ7OfwHrQ9xvjpUWeGVm86pwnEd1QhzawIo=",
"owner": "cachix",
"repo": "git-hooks.nix",
- "rev": "9c52372878df6911f9afc1e2a1391f55e4dfc864",
+ "rev": "54df955a695a84cd47d4a43e08e1feaf90b1fd9b",
"type": "github"
},
"original": {
@@ -1091,11 +1091,11 @@
"nixpkgs": "nixpkgs_10"
},
"locked": {
- "lastModified": 1754988908,
- "narHash": "sha256-t+voe2961vCgrzPFtZxha0/kmFSHFobzF00sT8p9h0U=",
+ "lastModified": 1758425756,
+ "narHash": "sha256-L3N8zV6wsViXiD8i3WFyrvjDdz76g3tXKEdZ4FkgQ+Y=",
"owner": "Mic92",
"repo": "sops-nix",
- "rev": "3223c7a92724b5d804e9988c6b447a0d09017d48",
+ "rev": "e0fdaea3c31646e252a60b42d0ed8eafdb289762",
"type": "github"
},
"original": {
@@ -1192,11 +1192,11 @@
]
},
"locked": {
- "lastModified": 1753633878,
- "narHash": "sha256-js2sLRtsOUA/aT10OCDaTjO80yplqwOIaLUqEe0nMx0=",
+ "lastModified": 1755354946,
+ "narHash": "sha256-zdov5f/GcoLQc9qYIS1dUTqtJMeDqmBmo59PAxze6e4=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
- "rev": "371b96bd11ad2006ed4f21229dbd1be69bed3e8a",
+ "rev": "a10726d6a8d0ef1a0c645378f983b6278c42eaa0",
"type": "github"
},
"original": {
diff --git a/hosts/dandelion/default.nix b/hosts/dandelion/default.nix
index 7349609..f950bc8 100644
--- a/hosts/dandelion/default.nix
+++ b/hosts/dandelion/default.nix
@@ -35,20 +35,20 @@
allowedUDPPorts = [
5201
];
- interfaces."ens4s1".allowedTCPPorts = [
- # allow everything for local link
- {
- from = 1;
- to = 65354;
- }
- ];
- interfaces."ens4s1".allowedUDPPorts = [
- # allow everything for local link
- {
- from = 1;
- to = 65354;
- }
- ];
+ #interfaces."ens4s1".allowedTCPPorts = [
+ # # allow everything for local link
+ # {
+ # from = 0;
+ # to = 60000;
+ # }
+ #];
+ #interfaces."ens4s1".allowedUDPPorts = [
+ # # allow everything for local link
+ # {
+ # from = 0;
+ # to = 65536;
+ # }
+ #];
};
};
@@ -82,6 +82,7 @@
services.zfs = {
autoScrub.enable = true;
+ autoScrub.interval = "weekly";
trim.enable = true;
};
diff --git a/hosts/iris/default.nix b/hosts/iris/default.nix
index bc47be4..3dec566 100644
--- a/hosts/iris/default.nix
+++ b/hosts/iris/default.nix
@@ -9,10 +9,11 @@
imports = [
./hardware-configuration.nix
./../../modules/core
- # ./../../modules/home/nfs.nix
+ ./../../modules/home/steam.nix
./../../modules/core/virtualization.nix
./../../modules/services/tailscale.nix
./../../modules/services/mpd.nix
+ ./../../modules/services/ollama.nix
];
powerManagement = {
@@ -26,17 +27,15 @@
networkmanager.enable = true;
};
- systemd.network.networks."99-local" = {
- matchConfig.name = "enp68s0";
- address = [
- "192.168.1.100/24"
- ];
- routes = [
- {
- Gateway = "172.16.10.1";
- GatewayOnLink = false;
- }
- ];
+ networking = {
+ interfaces.ens4d1 = {
+ ipv4.addresses = [
+ {
+ address = "192.168.1.101";
+ prefixLength = 24;
+ }
+ ];
+ };
};
liv = {
diff --git a/modules/core/default.nix b/modules/core/default.nix
index 10c17fa..96f0236 100644
--- a/modules/core/default.nix
+++ b/modules/core/default.nix
@@ -3,7 +3,7 @@
imports =
[ (import ./docker.nix) ]
++ [ (import ./hardware.nix) ]
- # ++ [(import ./displaylink.nix)]
+ # ++ [ (import ./displaylink.nix) ]
# ++ [(import ./printing.nix)]
++ [ (import ./xserver.nix) ]
++ [ (import ./network.nix) ]
diff --git a/modules/core/default.server.nix b/modules/core/default.server.nix
index 118f8a3..850882f 100644
--- a/modules/core/default.server.nix
+++ b/modules/core/default.server.nix
@@ -1,12 +1,13 @@
{ ... }:
{
imports =
- [(import ./hardware.nix)]
- ++ [(import ./network.nix)]
- ++ [(import ./program.nix)]
- ++ [(import ./sshd.nix)]
- ++ [(import ./security.nix)]
- ++ [(import ./services.nix)]
- ++ [(import ./system.nix)]
- ++ [(import ./user.nix)];
+ [ (import ./hardware.nix) ]
+ ++ [ (import ./network.nix) ]
+ ++ [ (import ./program.nix) ]
+ ++ [ (import ./sshd.nix) ]
+ ++ [ (import ./security.nix) ]
+ ++ [ (import ./services.nix) ]
+ ++ [ (import ./system.nix) ]
+ ++ [ (import ./user.nix) ]
+ ++ [ (import ./virtualization.nix) ];
}
diff --git a/modules/core/program.nix b/modules/core/program.nix
index 5def924..a0acdd6 100644
--- a/modules/core/program.nix
+++ b/modules/core/program.nix
@@ -1,4 +1,4 @@
-{ pkgs, ... }:
+{ pkgs, inputs, ... }:
{
programs = {
dconf.enable = true;
diff --git a/modules/core/services.nix b/modules/core/services.nix
index 0020bf2..63e7fcf 100644
--- a/modules/core/services.nix
+++ b/modules/core/services.nix
@@ -3,10 +3,9 @@
services = {
fstrim.enable = true;
};
- services.logind.extraConfig = ''
- # don’t shutdown when power button is short-pressed
- HandlePowerKey=ignore
- '';
+ services.logind.settings.Login = {
+ HandlePowerKey = "ignore"; # don’t shutdown when power button is short-pressed
+ };
# To prevent getting stuck at shutdown.
# systemd.extraConfig = "DefaultTimeoutStopSec=10s"; # Deprecated now
diff --git a/modules/core/sops.nix b/modules/core/sops.nix
index 27b1c10..91bd2f0 100644
--- a/modules/core/sops.nix
+++ b/modules/core/sops.nix
@@ -23,6 +23,7 @@
owner = "matrix-synapse";
};
"smbLoginDetails" = { };
+ "syncplay" = { };
}
else if (host == "sakura") then
{
diff --git a/modules/core/virtualization.nix b/modules/core/virtualization.nix
index e800e35..601680b 100644
--- a/modules/core/virtualization.nix
+++ b/modules/core/virtualization.nix
@@ -1,4 +1,10 @@
-{ pkgs, host, ... }:
+{
+ pkgs,
+ host,
+ config,
+ username,
+ ...
+}:
{
virtualisation = {
# vmware.host.enable = true; # Causes issues for now :p
@@ -6,6 +12,8 @@
libvirtd.enable =
if (host == "violet") then
true
+ else if (host == "dandelion") then
+ true
else if (host == "sakura") then
true
else if (host == "yoshino") then
@@ -14,10 +22,23 @@
true
else
false;
- spiceUSBRedirection.enable = true;
+ spiceUSBRedirection.enable =
+ if (config.virtualisation.libvirtd.enable == true) then true else false;
};
- programs.virt-manager.enable = true;
+ programs.virt-manager.enable =
+ if (config.virtualisation.waydroid.enable == true) then true else false;
+ #dconf.settings."org/virt-manager/virt-manager/connections" =
+ # if (config.programs.virt-manager.enable == true) then
+ # {
+ # autoconnect = [ "qemu:///system" ];
+ # uris = [ "qemu:///system" ];
+ # }
+ # else
+ # { };
+
+ users.groups.libvirtd.members =
+ if (config.virtualisation.libvirtd.enable == true) then [ username ] else [ ];
# Enable qemu etc
environment.systemPackages = with pkgs; [
diff --git a/modules/core/xserver.nix b/modules/core/xserver.nix
index 3e35c27..57fc11a 100644
--- a/modules/core/xserver.nix
+++ b/modules/core/xserver.nix
@@ -1,20 +1,20 @@
-{ username, ... }:
+{ username, ... }:
{
- services = {
- xserver = {
- enable = true;
- xkb.layout = "us";
- # displayManager.lightdm.greeters.slick.enable = true;
- displayManager.lightdm.greeters.mini = {
- enable = true;
- user = "liv";
- extraConfig = ''
- [greeter]
- show-password-label = false
- [greeter-theme]
- background-image = "/home/liv/Pictures/wallpapers/others/anime-sky-lonely.png"
- '';
- };
- };
- };
+ #services = {
+ # xserver = {
+ # enable = true;
+ # xkb.layout = "us";
+ # displayManager.lightdm.greeters.slick.enable = true;
+ # #displayManager.lightdm.greeters.mini = {
+ # # enable = true;
+ # # user = "liv";
+ # # extraConfig = ''
+ # # [greeter]
+ # # show-password-label = false
+ # # [greeter-theme]
+ # # background-image = "/home/liv/Pictures/wallpapers/others/anime-sky-lonely.png"
+ # # '';
+ # #};
+ # };
+ #};
}
diff --git a/modules/core/yubikey.nix b/modules/core/yubikey.nix
index 36080f0..1fdad61 100644
--- a/modules/core/yubikey.nix
+++ b/modules/core/yubikey.nix
@@ -18,17 +18,35 @@
};
services = {
- login.u2fAuth = true;
- greetd.u2fAuth = true;
+ login.u2fAuth = false;
+ greetd.u2fAuth = false;
sudo.u2fAuth = true;
- swaylock.fprintAuth = if (host == "sakura") then true else false;
+ swaylock.fprintAuth =
+ if (host == "sakura") then
+ true
+ else if (host == "zinnia") then
+ true
+ else
+ false;
# No longer using Hyprlock, might stay here for if I ever switch to it again.
- hyprlock.u2fAuth = true;
- hyprlock.fprintAuth = if (host == "sakura") then true else false;
+ hyprlock.u2fAuth = false;
+ hyprlock.fprintAuth =
+ if (host == "sakura") then
+ true
+ else if (host == "zinnia") then
+ true
+ else
+ false;
};
};
- services.fprintd.enable = if (host == "sakura") then true else false;
+ services.fprintd.enable =
+ if (host == "sakura") then
+ true
+ else if (host == "zinnia") then
+ true
+ else
+ false;
environment.systemPackages = with pkgs; [
yubikey-manager
diff --git a/modules/home/default.nix b/modules/home/default.nix
index 96bcd35..8e47e1e 100644
--- a/modules/home/default.nix
+++ b/modules/home/default.nix
@@ -7,6 +7,7 @@
++ [ (import ./hyprland) ]
++ [ (import ./hyprlock) ]
++ [ (import ./kitty.nix) ]
+ ++ [ (import ./foot.nix) ]
++ [ (import ./nvim.nix) ]
++ [ (import ./zathura.nix) ]
++ [ (import ./packages.nix) ]
diff --git a/modules/home/fonts.nix b/modules/home/fonts.nix
index f0a2a97..93abc8a 100644
--- a/modules/home/fonts.nix
+++ b/modules/home/fonts.nix
@@ -1,6 +1,7 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
+ scientifica
# nerd-fonts._0xproto
# nerd-fonts._3270
# nerd-fonts.agave
diff --git a/modules/home/foot.nix b/modules/home/foot.nix
new file mode 100644
index 0000000..bac074f
--- /dev/null
+++ b/modules/home/foot.nix
@@ -0,0 +1,48 @@
+{ pkgs, username, ... }:
+{
+ home.file."/home/${username}.config/foot/foot.ini".text = ''
+ # -*- conf -*-
+
+ # font=GohuFont 14 Nerd Font Mono:size=9
+ initial-window-mode=maximized
+ # [tweak]
+ # allow-overflowing-double-width-glyphs=true
+
+ [desktop-notifications]
+ # command=notify-send --wait --app-name $\{app-id} --icon $\{app-id} --category $\{category} --urgency $\{urgency} --expire-time $\{expire-time} --hint STRING:image-path:$\{icon} --hint BOOLEAN:suppress-sound:$\{muted} --hint STRING:sound-name:$\{sound-name} --replace-id $\{replace-id} $\{action-argument} --print-id -- $\{title} $\{body}
+ # command-action-argument=--action $\{action-name}=$\{action-label}
+ # close=""
+ # inhibit-when-focused=yes
+
+ [cursor]
+ style=block
+
+ [colors]
+ alpha=0.5
+
+ background=000000
+ foreground=878ba6
+ flash=7f7f00
+ flash-alpha=0.5
+
+ ## Normal/regular colors (color palette 0-7)
+ regular0=1e202f # black
+ regular1=7586f5 # red
+ regular2=fb6fa9 # green
+ regular3=ffb3d2 # yellow
+ regular4=8696fd # blue
+ regular5=fb6fa9 # magenta
+ regular6=a0acfe # cyan
+ regular7=878ba6 # white
+
+ ## Bright colors (color palette 8-15)
+ bright0=4f5472 # bright black
+ bright1=fe81b5 # bright red
+ bright2=292c3d # bright green
+ bright3=444864 # bright yellow
+ bright4=5b6080 # bright blue
+ bright5=d2d8fe # bright magenta
+ bright6=f764a1 # bright cyan
+ bright7=ebedff # bright white
+ '';
+}
diff --git a/modules/home/hyprland/config.nix b/modules/home/hyprland/config.nix
index 0bfab5d..8ed7e97 100644
--- a/modules/home/hyprland/config.nix
+++ b/modules/home/hyprland/config.nix
@@ -23,12 +23,12 @@
size = 14;
};
theme = {
- name = "Gruvbox-Green-Dark";
- package = pkgs.gruvbox-gtk-theme.override {
- colorVariants = [ "dark" ];
- themeVariants = [ "green" ];
- tweakVariants = [ "macos" ];
- };
+ name = "Juno";
+ package = pkgs.juno-theme; # .override {
+ # colorVariants = [ "dark" ];
+ # themeVariants = [ "green" ];
+ # tweakVariants = [ "macos" ];
+ # };
};
iconTheme = {
name = "Papirus-Dark";
@@ -85,6 +85,7 @@
"wl-paste --watch cliphist store &"
"yubikey-touch-detector --libnotify &"
"mpDris2 &"
+ "foot --server"
];
input = {
@@ -98,10 +99,10 @@
};
};
- gestures = {
- workspace_swipe = true;
- workspace_swipe_invert = true;
- };
+ #gestures = {
+ # workspace_swipe = true;
+ # workspace_swipe_invert = true;
+ #};
general = {
"$mainMod" = "ALT";
@@ -213,8 +214,8 @@
bind = [
# keybindings
- "$mainMod, Return, exec, kitty"
- "$mainMod SHIFT, Return, exec, [float; center; size 950 650] kitty"
+ "$mainMod, Return, exec, footclient"
+ "$mainMod SHIFT, Return, exec, [float; center; size 950 650] footclient"
"$mainMod, Q, killactive,"
"$mainMod, F, fullscreen, 0" # set 1 to 0 to set full screen without waybar
"$mainMod, Space, togglefloating,"
@@ -332,6 +333,9 @@
"float,title:^(float_kitty)$"
"center,title:^(float_kitty)$"
"size 950 600,title:^(float_kitty)$"
+ "float,title:^(float_foot)$"
+ "center,title:^(float_foot)$"
+ "size 950 600,title:^(float_foot)$"
"float,title:^(Volume Control)$"
"float,title:^(Librewolf — Sharing Indicator)$"
"move 0 0,title:^(Librewolf — Sharing Indicator)$"
diff --git a/modules/home/packages.nix b/modules/home/packages.nix
index 34db02f..b9e2bcc 100644
--- a/modules/home/packages.nix
+++ b/modules/home/packages.nix
@@ -31,6 +31,9 @@
python3
# CLI shit
+ fff
+ imagemagick
+ foot
termpdfpy
vimv
iamb
diff --git a/modules/home/steam.nix b/modules/home/steam.nix
new file mode 100644
index 0000000..05f296d
--- /dev/null
+++ b/modules/home/steam.nix
@@ -0,0 +1,3 @@
+{
+ programs.steam.enable = true;
+}
diff --git a/modules/home/waybar/default.nix b/modules/home/waybar/default.nix
index dfe464a..905cbf1 100644
--- a/modules/home/waybar/default.nix
+++ b/modules/home/waybar/default.nix
@@ -22,347 +22,349 @@
home.file = {
"/home/${username}/.config/waybar/config" = {
text = ''
- [{
- "layer": "bottom",
- "position": "bottom",
+ [{
+ "layer": "top",
+ "position": "top",
- "modules-left": [
- "privacy",
- "network",
- "custom/vpn",
- "custom/devices",
- "custom/spotify",
- "tray",
- ],
+ "modules-left": [
+ "privacy",
+ "network",
+ "custom/vpn",
+ "custom/devices",
+ "custom/spotify",
+ "tray",
+ ],
- "modules-center": [
- "hyprland/workspaces",
- ],
+ "modules-center": [
+ "hyprland/workspaces",
+ ],
- "modules-right": [
- "custom/yubikey#icon",
- "custom/yubikey#data",
- "group/hardware",
- "group/resources",
- "bluetooth",
- // "wireplumber",
- "group/audio",
- "group/battery",
- "group/clock"
- ],
+ "modules-right": [
+ "custom/yubikey#icon",
+ "custom/yubikey#data",
+ "group/hardware",
+ "group/resources",
+ "bluetooth",
+ // "wireplumber",
+ "group/audio",
+ "group/battery",
+ "group/clock"
+ ],
- "hyprland/window": {
- "format": "{}",
- "rewrite": {
- "(.*) - zsh": "> [$1]"
- },
- "separate-outputs": true
- },
+ "hyprland/window": {
+ "format": "{}",
+ "rewrite": {
+ "(.*) - zsh": "> [$1]"
+ },
+ "separate-outputs": true
+ },
- "sway/workspaces": {
- "all-outputs": true,
- "disable-scroll": true,
- "format": "{name}"
- },
+ "sway/workspaces": {
+ "all-outputs": true,
+ "disable-scroll": true,
+ "format": "{name}"
+ },
- "hyprland/workspaces": {
- "all-outputs": true,
- "disable-scroll": true,
- "format": "{name}"
- },
+ "hyprland/workspaces": {
+ "all-outputs": true,
+ "disable-scroll": true,
+ "format": "{name}"
+ },
- // "group/network": {
- // "orientation": "horizontal",
- // "modules": [
- // "network",
- // "custom/vpn",
- // ],
- // "drawer": {
- // "transition-left-to-right": true,
- // "transition-duration": 500
- // }
- // },
-
- "network": {
- "format": " {ifname}",
- "format-wifi": " {essid} - {ipaddr}/{cidr} {signalStrength}%",
- "format-ethernet": " {ipaddr}/{cidr}",
- "format-disconnected": "",
- "tooltip-format": "{ifname} via {gwaddr}",
- "tooltip-format-wifi": "{essid} ({signalStrength}%)",
- "tooltip-format-ethernet": "{ifname}",
- "tooltip-format-disconnected": "Disconnected"
- },
+ // "group/network": {
+ // "orientation": "horizontal",
+ // "modules": [
+ // "network",
+ // "custom/vpn",
+ // ],
+ // "drawer": {
+ // "transition-left-to-right": true,
+ // "transition-duration": 500
+ // }
+ // },
+
+ "network": {
+ "format": " {ifname}",
+ // "format-wifi": "WLAN: {essid} - {ipaddr}/{cidr} {signalStrength}%",
+ "format-wifi": "WLAN: {ipaddr}/{cidr} {signalStrength}%",
+ "format-ethernet": "LAN: {ipaddr}/{cidr}",
+ "format-disconnected": "WLAN: down",
+ "tooltip-format": "{ifname} via {gwaddr}",
+ "tooltip-format-wifi": "{essid} ({signalStrength}%)",
+ "tooltip-format-ethernet": "{ifname}",
+ "tooltip-format-disconnected": "Disconnected"
+ },
- "custom/vpn": {
- "format": "{icon}",
- "tooltip-format": "{text}",
- "format-icons": [ "","" ],
- "return-type": "json",
- "exec": "~/.local/bin/waybar-vpn",
- "interval": 30
- },
+ "custom/vpn": {
+ "format": "{icon}",
+ "tooltip-format": "{text}",
+ "format-icons": [ "","" ],
+ "return-type": "json",
+ "exec": "~/.local/bin/waybar-vpn",
+ "interval": 30
+ },
- "custom/spotify": {
- "interval": 5,
- "return-type": "json",
- "exec": "~/.local/bin/waybar-music",
- "on-click": "playerctl play-pause",
- "escape": true
- },
+ "custom/spotify": {
+ "interval": 5,
+ "return-type": "json",
+ "exec": "~/.local/bin/waybar-music",
+ "on-click": "playerctl play-pause",
+ "escape": true
+ },
- "custom/devices": {
- "interval": 60,
- "font-size": 14,
- // "return-type": "json",
- "exec": "~/.local/bin/waybar-devices",
- },
+ "custom/devices": {
+ "interval": 60,
+ "font-size": 14,
+ // "return-type": "json",
+ "exec": "~/.local/bin/waybar-devices",
+ },
- "privacy": {
- "icon-spacing": 8,
- "icon-size": 14,
- "transition-duration": 250,
- "modules": [
- {
- "type": "screenshare",
- "tooltip": true,
- "tooltip-icon-size": 24
- },
- {
- "type": "audio-out",
- "tooltip": true,
- "tooltip-icon-size": 24
- },
- {
- "type": "audio-in",
- "tooltip": true,
- "tooltip-icon-size": 24
- }
- ]
- },
+ "privacy": {
+ "icon-spacing": 8,
+ "icon-size": 14,
+ "transition-duration": 250,
+ "modules": [
+ {
+ "type": "screenshare",
+ "tooltip": true,
+ "tooltip-icon-size": 24
+ },
+ {
+ "type": "audio-out",
+ "tooltip": true,
+ "tooltip-icon-size": 24
+ },
+ {
+ "type": "audio-in",
+ "tooltip": true,
+ "tooltip-icon-size": 24
+ }
+ ]
+ },
- "tray": {
- "icon-size": 12,
- "spacing": 0
- },
+ "tray": {
+ "icon-size": 12,
+ "spacing": 0
+ },
- "sway/mode": {
- "format": " {}",
- "tooltip": false
- },
+ "sway/mode": {
+ "format": " {}",
+ "tooltip": false
+ },
- "custom/yubikey#icon": {
- "exec": "~/.local/bin/waybar-yubikey 0",
- "return-type": "json"
- },
+ "custom/yubikey#icon": {
+ "exec": "~/.local/bin/waybar-yubikey 0",
+ "return-type": "json"
+ },
- "custom/yubikey#data": {
- "exec": "~/.local/bin/waybar-yubikey 1",
- "return-type": "json"
- },
+ "custom/yubikey#data": {
+ "exec": "~/.local/bin/waybar-yubikey 1",
+ "return-type": "json"
+ },
- "group/hardware": {
- "orientation": "horizontal",
- "modules": [
- "cpu",
- "temperature#cpu",
- "temperature#gpu",
- "temperature#nvme",
- "temperature#wifi"
- ],
- "drawer": {
- "transition-left-to-right": false,
- "transition-duration": 500
- }
- },
+ "group/hardware": {
+ "orientation": "horizontal",
+ "modules": [
+ "cpu",
+ "temperature#cpu",
+ "temperature#gpu",
+ "temperature#nvme",
+ "temperature#wifi"
+ ],
+ "drawer": {
+ "transition-left-to-right": false,
+ "transition-duration": 500
+ }
+ },
- "cpu": {
- "interval": 30,
- "format": " {avg_frequency:3.2f}GHz {usage}%",
- "states": {
- "warning": 70,
- "critical": 90
- },
- },
+ "cpu": {
+ "interval": 30,
+ "format": "FREQ: {avg_frequency:3.2f}GHz {usage}% ",
+ "states": {
+ "warning": 70,
+ "critical": 90
+ },
+ },
- "temperature#cpu": {
- "hwmon-path": "/sys/class/hwmon/hwmon5/temp1_input",
- "critical-threshold": 80,
- "format": " CPU {temperatureC}°C"
- },
+ "temperature#cpu": {
+ "hwmon-path": "/sys/class/hwmon/hwmon5/temp1_input",
+ "critical-threshold": 80,
+ "format": "CPU {temperatureC}°C"
+ },
- "temperature#gpu": {
- "hwmon-path": "/sys/class/hwmon/hwmon0/temp1_input",
- "critical-threshold": 80,
- "format": "· GPU {temperatureC}°C"
- },
+ "temperature#gpu": {
+ "hwmon-path": "/sys/class/hwmon/hwmon0/temp1_input",
+ "critical-threshold": 80,
+ "format": "GPU {temperatureC}°C"
+ },
- "temperature#nvme": {
- "hwmon-path": "/sys/class/hwmon/hwmon1/temp1_input",
- "critical-threshold": 80,
- "format": "· NVMe {temperatureC}°C"
- },
+ "temperature#nvme": {
+ "hwmon-path": "/sys/class/hwmon/hwmon1/temp1_input",
+ "critical-threshold": 80,
+ "format": "NVMe {temperatureC}°C"
+ },
- "temperature#wifi": {
- "hwmon-path": "/sys/class/hwmon/hwmon11/temp1_input",
- "critical-threshold": 80,
- "format": "· WiFi {temperatureC}°C"
- },
+ "temperature#wifi": {
+ "hwmon-path": "/sys/class/hwmon/hwmon11/temp1_input",
+ "critical-threshold": 80,
+ "format": "WiFi {temperatureC}°C"
+ },
- "group/resources": {
- "orientation": "horizontal",
- "modules": [ "memory", "disk#root" ],
- "drawer": {
- "transition-left-to-right": false,
- "transition-duration": 500
- }
- },
+ "group/resources": {
+ "orientation": "horizontal",
+ "modules": [ "memory", "disk#root" ],
+ "drawer": {
+ "transition-left-to-right": false,
+ "transition-duration": 500
+ }
+ },
- "memory": {
- "interval": 60,
- "format": " {used:3.1f}GiB/{total:3.1f}GiB"
- },
+ "memory": {
+ "interval": 60,
+ "format": "RAM: {used:3.1f}GiB/{total:3.1f}GiB "
+ },
- "disk#root": {
- "interval": 360,
- "format": " {used}/{total}",
- "path": "/"
- },
+ "disk#root": {
+ "interval": 360,
+ "format": "DISK: {used}/{total}",
+ "path": "/"
+ },
- "bluetooth": {
- // "controller": "controller1",
- "on-click": "~/.local/bin/waybar-bluetooth toggle",
- "format": "",
- "format-disabled": "",
- "format-connected": "",
- "format-connected-battery": " {device_battery_percentage}%",
- "tooltip-format": "{controller_alias}\t\t[{controller_address}]",
- "tooltip-format-connected": "{controller_alias}\t\t[{controller_address}]\n\n{device_enumerate}",
- "tooltip-format-connected-battery": "{controller_alias}\t\t[{controller_address}]\n\n{device_enumerate}",
- "tooltip-format-enumerate-connected": "{device_alias}\t\t[{device_address}]",
- "tooltip-format-enumerate-connected-battery": "{device_alias} ({device_battery_percentage})\t\t[{device_address}]"
- },
+ "bluetooth": {
+ // "controller": "controller1",
+ "on-click": "~/.local/bin/waybar-bluetooth toggle",
+ "format": "",
+ "format-disabled": "",
+ "format-connected": "",
+ "format-connected-battery": " {device_battery_percentage}%",
+ "tooltip-format": "{controller_alias}\t\t[{controller_address}]",
+ "tooltip-format-connected": "{controller_alias}\t\t[{controller_address}]\n\n{device_enumerate}",
+ "tooltip-format-connected-battery": "{controller_alias}\t\t[{controller_address}]\n\n{device_enumerate}",
+ "tooltip-format-enumerate-connected": "{device_alias}\t\t[{device_address}]",
+ "tooltip-format-enumerate-connected-battery": "{device_alias} ({device_battery_percentage})\t\t[{device_address}]"
+ },
- "group/audio": {
- "orientation": "horizontal",
- "modules": [
- "wireplumber",
- "custom/audio-internal",
- "custom/audio-headphones",
- "custom/audio-hdmi"
- ],
- "drawer": {
- "transition-left-to-right": false,
- "transition-duration": 500
- }
- },
+ "group/audio": {
+ "orientation": "horizontal",
+ "modules": [
+ "wireplumber",
+ "custom/audio-internal",
+ "custom/audio-headphones",
+ "custom/audio-hdmi"
+ ],
+ "drawer": {
+ "transition-left-to-right": false,
+ "transition-duration": 500
+ }
+ },
- "wireplumber": {
- "format": "{icon} {node_name}/{volume}",
- "format-muted": "",
- "on-click": "pavucontrol-qt",
- "on-click-right": "helvum",
- "format-icons": ["", "", ""]
- },
+ "wireplumber": {
+ "format": "{icon} {node_name}/{volume}",
+ "format-muted": "",
+ "on-click": "pavucontrol-qt",
+ "on-click-right": "helvum",
+ "format-icons": ["", "", ""]
+ },
- "custom/audio-internal": {
- "format": " ",
- "tooltip-format": "Internal",
- "on-click": "audio-router analog",
- "interval": "once"
- },
+ "custom/audio-internal": {
+ "format": " ",
+ "tooltip-format": "Internal",
+ "on-click": "audio-router analog",
+ "interval": "once"
+ },
- "custom/audio-hdmi": {
- "format": " ",
- "tooltip-format": "HDMI",
- "on-click": "audio-router hdmi",
- "interval": "once"
- },
+ "custom/audio-hdmi": {
+ "format": " ",
+ "tooltip-format": "HDMI",
+ "on-click": "audio-router hdmi",
+ "interval": "once"
+ },
- "group/battery": {
- "orientation": "horizontal",
- "modules": [
- "battery",
- "custom/powerdraw"
- ],
- "drawer": {
- "transition-left-to-right": false,
- "transition-duration": 500
- }
- },
+ "group/battery": {
+ "orientation": "horizontal",
+ "modules": [
+ "battery",
+ "custom/powerdraw"
+ ],
+ "drawer": {
+ "transition-left-to-right": false,
+ "transition-duration": 500
+ }
+ },
- "battery": {
- "bat": "BAT1",
- "interval": 30,
- "states": {
- "warning": 20,
- "critical": 10
- },
- "format-time": "{H}:{m}",
- "format": "{icon} {time} {capacity}%",
- "format-discharging": "{icon} {capacity}%",
- "format-discharging-warning": "{icon} {capacity}%",
- "format-discharging-critical": "{icon} {capacity}%",
- "format-charging": "{icon} {capacity}% @ {power:2.0f}W",
- "format-full": " {capacity}%",
- "format-not-charging": " {capacity}%",
- "format-icons": [" ", " ", " ", " ", " "],
- },
+ "battery": {
+ "bat": "BAT1",
+ "interval": 20,
+ "states": {
+ "warning": 20,
+ "critical": 10
+ },
+ "format-time": "{H}:{m}",
+ "format": "BATT: {time} {capacity}%",
+ "format-alt": "BATT: {time} ",
+ "format-discharging": "BATT: {capacity}%",
+ "format-discharging-warning": "BATT: {capacity}%",
+ "format-discharging-critical": "BATT: {capacity}%",
+ "format-charging": "BATT: {capacity}% @ {power:2.0f}W",
+ "format-full": "BATT: {capacity}%",
+ "format-not-charging": "BATT: {capacity}%",
+ // "format-icons": [" ", " ", " ", " ", " "], // use {icon}
+ },
- "custom/powerdraw": {
- "interval": 60,
- "exec": "~/.local/bin/waybar-powerdraw",
- },
+ "custom/powerdraw": {
+ "interval": 60,
+ "exec": "~/.local/bin/waybar-powerdraw",
+ },
- "group/clock": {
- "orientation": "horizontal",
- "modules": [ "clock#time", "custom/clock#minutes", "clock#date" ],
- "drawer": {
- "transition-left-to-right": false,
- "transition-duration": 500
- }
- },
+ "group/clock": {
+ "orientation": "horizontal",
+ "modules": [ "clock#time", "custom/clock#minutes", "clock#date" ],
+ "drawer": {
+ "transition-left-to-right": false,
+ "transition-duration": 500
+ }
+ },
- "clock#date": {
- "interval": 60,
- "format": " {:%a %e %b %Y}",
- "tooltip-format": "{:%B %Y}\n{calendar}",
- "calendar": {
- "mode" : "year",
- "mode-mon-col" : 2,
- "weeks-pos" : "right",
- "on-scroll" : 1,
- "format": {
- "months": "{}",
- "days": "{}",
- "weeks": "W{}",
- "weekdays": "{}",
- "today": "{}"
- }
- },
- "actions": {
- "on-click-right": "mode",
- "on-scroll-up": "shift_up",
- "on-scroll-down": "shift_down"
- }
- },
+ "clock#date": {
+ "interval": 60,
+ "format": " {:%a %e %b %Y}",
+ "tooltip-format": "{:%B %Y}\n{calendar}",
+ "calendar": {
+ "mode" : "year",
+ "mode-mon-col" : 2,
+ "weeks-pos" : "right",
+ "on-scroll" : 1,
+ "format": {
+ "months": "{}",
+ "days": "{}",
+ "weeks": "W{}",
+ "weekdays": "{}",
+ "today": "{}"
+ }
+ },
+ "actions": {
+ "on-click-right": "mode",
+ "on-scroll-up": "shift_up",
+ "on-scroll-down": "shift_down"
+ }
+ },
- "clock#time": {
- "interval": 60,
- "format": " {:%I:%M %p}",
- "actions": {
- "on-scroll-up": "tz_up",
- "on-scroll-down": "tz_down"
- }
- },
+ "clock#time": {
+ "interval": 60,
+ "format": "CEST: {:%I:%M %p}",
+ "actions": {
+ "on-scroll-up": "tz_up",
+ "on-scroll-down": "tz_down"
+ }
+ },
- "custom/clock#minutes": {
- "interval": 60,
- "format": " {} ",
- "exec": "~/.local/bin/waybar-minutes"
- }
- }
- ]
+ "custom/clock#minutes": {
+ "interval": 60,
+ "format": "CEST: {} ",
+ "exec": "~/.local/bin/waybar-minutes"
+ }
+ }
+ ]
'';
};
"/home/${username}/.config/waybar/style.css" = {
@@ -377,17 +379,18 @@
/* margin: 0 0px; */
}
- window#waybar.bottom {
+ window#waybar.top {
/* background-color: rgba(115, 116, 116, 0.22); */
background-color: rgba(0, 0, 0, 0.25);
- border-bottom: none;
+ border-top: none;
color: #eeeeee;
transition-property: background-color;
transition-duration: .5s;
}
window#waybar.hidden {
- opacity: 0.25;
+ /* opacity: 0.25; */
+ opacity: 0.00;
}
label#window {
@@ -439,7 +442,7 @@
#workspaces button {
/*padding: 4px 6px;*/
padding: 4px 6px;
- color: #555555;
+ color: #aaaaaa;
border-radius: 0px;
/*min-width: 32px;*/
}
diff --git a/modules/home/waybar/scripts.nix b/modules/home/waybar/scripts.nix
index a4a7bb7..3c9b2e3 100644
--- a/modules/home/waybar/scripts.nix
+++ b/modules/home/waybar/scripts.nix
@@ -181,12 +181,6 @@
#!/usr/bin/env bash
if [[ "$(hostname)" == "sakura" ]]; then
- if [[ $(cat /proc/acpi/button/lid/LID0/state | grep "open") ]]; then
- LTEXT=" "
- else
- LTEXT=" "
- fi
-
MICROPHONE_STATE="$(sudo framework_tool --privacy | tail -n2 | head -n1)"
CAMERA_STATE="$(sudo framework_tool --privacy | tail -n1)"
@@ -206,7 +200,7 @@
CTEXT=" "
fi
- echo "$LTEXT $CTEXT $MTEXT"
+ echo "$CTEXT $MTEXT"
fi
'';
};
diff --git a/modules/services/librey-proxy.nix b/modules/services/librey-proxy.nix
index 2bd3e7d..09e95b4 100644
--- a/modules/services/librey-proxy.nix
+++ b/modules/services/librey-proxy.nix
@@ -3,7 +3,7 @@
services = {
anubis.instances.librey = {
settings = {
- TARGET = "http://localhost:8080";
+ TARGET = "http://localhost:8078";
BIND = ":8079";
BIND_NETWORK = "tcp";
};
diff --git a/modules/services/mumble.nix b/modules/services/mumble.nix
index eaa0836..febfefc 100644
--- a/modules/services/mumble.nix
+++ b/modules/services/mumble.nix
@@ -2,6 +2,7 @@
{
services.murmur = {
enable = true;
- openFirewall = false;
+ openFirewall = true;
+ bandwidth = 192000;
};
}
diff --git a/modules/services/nfs.nix b/modules/services/nfs.nix
index 2f9d3c4..40e4aa5 100644
--- a/modules/services/nfs.nix
+++ b/modules/services/nfs.nix
@@ -9,7 +9,7 @@
# Network shares
samba = {
package = pkgs.samba;
- # ^^ `samba4Full` is compiled with avahi, ldap, AD etc support (compared to the default package, `samba`
+ # ^^ `samba4Full` is compiled with avahi, ldap, AD etc support (compared to the default package, `samba`. samba4Full gives issue, however)
# Required for samba to register mDNS records for auto discovery
# See https://github.com/NixOS/nixpkgs/blob/592047fc9e4f7b74a4dc85d1b9f5243dfe4899e3/pkgs/top-level/all-packages.nix#L27268
enable = true;
@@ -19,6 +19,16 @@
writable = "true";
comment = "Hello world!";
};
+ shares.violet = {
+ path = "/spinners/violet";
+ writable = "true";
+ comment = "Hello world!";
+ };
+ shares.ahwx = {
+ path = "/spinners/ahwx";
+ writable = "true";
+ comment = "Hello world!";
+ };
};
avahi = {
publish.enable = true;
diff --git a/modules/services/ollama.nix b/modules/services/ollama.nix
new file mode 100644
index 0000000..8676727
--- /dev/null
+++ b/modules/services/ollama.nix
@@ -0,0 +1,9 @@
+{
+ services.ollama = {
+ enable = true;
+ # Optional: preload models, see https://ollama.com/library
+ # loadModels = [ "llama3.2:3b" "deepseek-r1:1.5b"];
+ # acceleration = "rocm"; # nope, 5700XT is too old for this
+ };
+ services.open-webui.enable = false;
+}
diff --git a/modules/services/syncplay.nix b/modules/services/syncplay.nix
new file mode 100644
index 0000000..ca4551b
--- /dev/null
+++ b/modules/services/syncplay.nix
@@ -0,0 +1,8 @@
+{ config, ... }:
+{
+ services.syncplay = {
+ enable = true;
+ passwordFile = config.sops.secrets.syncplay.path;
+ };
+ networking.firewall.allowedTCPPorts = [ 8999 ];
+}
diff --git a/modules/services/violet.nix b/modules/services/violet.nix
index 15639ef..53c8b39 100644
--- a/modules/services/violet.nix
+++ b/modules/services/violet.nix
@@ -13,6 +13,7 @@
++ [ (import ./guacamole.nix) ]
++ [ (import ./gokapi.nix) ]
++ [ (import ./jellyfin.nix) ]
+ # ++ [ (import ./jitsi-meet.nix) ]
++ [ (import ./librey-proxy.nix) ]
++ [ (import ./lidarr.nix) ]
++ [ (import ./matrix/default.nix) ]
@@ -23,6 +24,7 @@
++ [ (import ./ntfy.nix) ]
++ [ (import ./nginx.nix) ]
++ [ (import ./nix-serve.nix) ]
+ ++ [ (import ./ollama.nix) ]
++ [ (import ./paperless-ngx.nix) ]
++ [ (import ./radicale.nix) ]
++ [ (import ./remote-build.nix) ]
@@ -33,5 +35,4 @@
++ [ (import ./tailscale.nix) ]
++ [ (import ./vaultwarden.nix) ];
# ++ [ (import ./smart-monitoring.nix) ]
- # ++ [ (import ./jitsi-meet.nix) ]
}
diff --git a/roles/desktop.nix b/roles/desktop.nix
index fc6fcdb..23c75df 100644
--- a/roles/desktop.nix
+++ b/roles/desktop.nix
@@ -16,6 +16,7 @@ in
};
config = mkIf cfg.enable {
+ environment.systemPackages = with pkgs; [ cifs-utils ];
home-manager = {
users.${username} = {
home.packages = with pkgs; [
diff --git a/roles/gui.nix b/roles/gui.nix
index ff059bd..acc939d 100644
--- a/roles/gui.nix
+++ b/roles/gui.nix
@@ -27,7 +27,7 @@ in
home-manager.users.${username}.home.packages = with pkgs; [
element-desktop
- gajim
+ dino
signal-desktop
mumble
anki-bin
@@ -44,7 +44,7 @@ in
thunderbird
lxqt.pavucontrol-qt
mpv
- plasma5Packages.kdeconnect-kde
+ kdePackages.kdeconnect-kde
winbox
# onthespot-overlay
diff --git a/roles/laptop.nix b/roles/laptop.nix
index 4a61e0d..76cb8f8 100644
--- a/roles/laptop.nix
+++ b/roles/laptop.nix
@@ -1,13 +1,25 @@
-{ lib, pkgs, config, username, home-manager, ... }:
+{
+ lib,
+ pkgs,
+ config,
+ username,
+ home-manager,
+ ...
+}:
with lib;
let
cfg = config.liv.laptop;
-in {
+in
+{
options.liv.laptop = {
enable = mkEnableOption "Enable laptop";
};
config = mkIf cfg.enable {
+ environment.systemPackages = with pkgs; [
+ cifs-utils
+ powertop
+ ];
home-manager = {
users.${username} = {
home.packages = with pkgs; [
@@ -17,22 +29,25 @@ in {
};
};
+ # DisplayLink
+ services.xserver.videoDrivers = [
+ "displaylink"
+ "modesetting"
+ ];
+ systemd.services.dlm.wantedBy = [ "multi-user.target" ];
+
networking.networkmanager.enable = true;
- environment.systemPackages = with pkgs; [
- # powertop
- ];
boot = {
- kernelModules = ["acpi_call"];
- extraModulePackages = with config.boot.kernelPackages;
- [
- acpi_call
- ];
- };
- services = {
+ kernelModules = [ "acpi_call" ];
+ extraModulePackages = with config.boot.kernelPackages; [
+ acpi_call
+ ];
+ };
+ services = {
thermald.enable = true;
power-profiles-daemon.enable = true;
-
+
upower = {
enable = true;
percentageLow = 20;
@@ -41,6 +56,6 @@ in {
criticalPowerAction = "Hibernate";
};
};
- # powerManagement.powertop.enable = true;
+ powerManagement.powertop.enable = true;
};
}
diff --git a/roles/server.nix b/roles/server.nix
index 7eb2f8a..5a81e7d 100644
--- a/roles/server.nix
+++ b/roles/server.nix
@@ -17,7 +17,8 @@ in
config = mkIf cfg.enable {
environment.systemPackages = with pkgs; [
- pkgs.kitty.terminfo
+ kitty.terminfo
+ foot.terminfo
powertop
];
diff --git a/secrets/violet/secrets.yaml b/secrets/violet/secrets.yaml
index f8d5015..57aabc9 100644
--- a/secrets/violet/secrets.yaml
+++ b/secrets/violet/secrets.yaml
@@ -3,6 +3,7 @@ forgejoWorkerSecret: ENC[AES256_GCM,data:kmUjukTJ9SP6nJvfhIMFVTu5vAc9TIfZidUgejC
matrixRegistrationSecret: ENC[AES256_GCM,data:xDFYVpBJa+FHWjmLlZspJAzJcoav53nWPoctQ5+gAnDYMurtSCkmoQn8r5j6fOmiy56KQyk8AD2/kT1HeFFNKA==,iv:82eIoh1ePc0VxfTbBPxpwGhYrcdRMI6WjFhlUJhxuHk=,tag:FAYUXUy0lEQU56ni2dxvbg==,type:str]
minioRootCredentials: ENC[AES256_GCM,data:/IrpspB6Puy+6scHheBSBp6zQVh8uwpu4nFPLSkueuohSUESPHbRb0w1XAp4V5HraMtOThFqlm0JeBW0XbhY4E8L1P+S3/aMLKjp2voA928l9AjF6sTaSKsO7qh6LEmo90qm9Jo0nDo=,iv:M5NOGfSsl+LggLyEjV49vcWCaYmbG0eJcgwI2v7AKcI=,tag:A+CrDTL+TkEayOqBUII4aQ==,type:str]
smbLoginDetails: ENC[AES256_GCM,data:Puv+Vewv0TDpiYM+Uym180CLT+vXKoeSW/uNxAX7f9y0NvG2Uqqglj/HcCMhyQn9GpCIQyb+xidlLWn3Ywdg6ybaf4WN5EdAEXMK/FRQyVIvvOcCcwG+IeUc1Wc5NmM2qEbxLqLNDWxiH8/QsrT9rWWxxx4c4eD1HOpIv9LCuavXXLmKy6JvtxYwtOv4u8ukp+e0uP7pLN7d,iv:XH+6soi7lZiGz9ZGlQb49f44API715ib/Y7Zh3hFnDM=,tag:iz8RYRSwNxrMxy+rqeM07Q==,type:str]
+syncplay: ENC[AES256_GCM,data:Vrn1GmmUnIikiTKIQtP3qBfZIZRW2Za2Xhhegp7PAulujxumLGMAz9lBnTPBy3uofpayP8NJuU9v8cpU4a4w5A==,iv:s4RFaZwftqmI3BhpO1msvpfO2u3AGlPik7nMX2hjnyE=,tag:13zft7dmd85udoi7CnfWYg==,type:str]
sops:
age:
- recipient: age1yzapmznelujajfyrpw5mxmy86ckg377494w5ap4yej39jatewursfxls9w
@@ -23,7 +24,7 @@ sops:
S3pjSjlhZjZiSDBNakhLVzNKMjd3bWsKC2geLVXFp190lkjxtmZKq8aLN0XMNeAI
VqbwIY3a30iuWAaxqf8h1ZuCGJvbAZZBevFZraj9yktRHc54JV3Aww==
-----END AGE ENCRYPTED FILE-----
- lastmodified: "2025-08-19T12:23:05Z"
- mac: ENC[AES256_GCM,data:hH3cTyHeFMTH5zYpCWyM1uqLta/uzQcLc5HPSdsR52Skh89/5h51vC666g0JuVm/sXh3gv6XQ1AGidPMAmx60qmHjiWE/LRli7xDwKk3p4mldC7RC2FrR0JPmfhDzXIo7VL60PCq4CPWevyRpAWMEMgnc3Z/IzmfDObUsvU+rg0=,iv:CrL4uqV8keGMw+tuqvkNrpKoM0qqr1vsdhESPUb+Hig=,tag:O2NKejf2dpkrkTzX1IfQcA==,type:str]
+ lastmodified: "2025-09-19T10:22:44Z"
+ mac: ENC[AES256_GCM,data:aJcXcdCR9nKbiaGEcGIQxr0kW7D8p2OzC2YDh18AFinWhdUSUDh6B8vkHR3ScIgUOYWc70/vSVsn3+M5JmtH3+mKMwMwSKF2plhicSBGdRELkeeowy6tCZGOVUvRsBhUpynd86qxxvWbJO4Q6mCSNbBQ/cr8493OZWenzB/fedQ=,iv:UqgIWA4ZK3cVn0iepeBPF8KuNREuGKNnijo/oGd4/q0=,tag:CT2uFz+flsZyNAM6SnhveA==,type:str]
unencrypted_suffix: _unencrypted
version: 3.10.2