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