diff --git a/flake.lock b/flake.lock index 4a6c96d..3645bff 100644 --- a/flake.lock +++ b/flake.lock @@ -41,11 +41,11 @@ ] }, "locked": { - "lastModified": 1762356719, - "narHash": "sha256-qwd/xdoOya1m8FENle+4hWnydCtlXUWLAW/Auk6WL7s=", + "lastModified": 1765900596, + "narHash": "sha256-+hn8v9jkkLP9m+o0Nm5SiEq10W0iWDSotH2XfjU45fA=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "6d0b3567584691bf9d8fedb5d0093309e2f979c7", + "rev": "d83c97f8f5c0aae553c1489c7d9eff3eadcadace", "type": "github" }, "original": { @@ -98,11 +98,11 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1747046372, - "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", + "lastModified": 1761588595, + "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", "owner": "edolstra", "repo": "flake-compat", - "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", "type": "github" }, "original": { @@ -253,11 +253,11 @@ ] }, "locked": { - "lastModified": 1763416652, - "narHash": "sha256-8EBEEvtzQ11LCxpQHMNEBQAGtQiCu/pqP9zSovDSbNM=", + "lastModified": 1767104570, + "narHash": "sha256-GKgwu5//R+cLdKysZjGqvUEEOGXXLdt93sNXeb2M/Lk=", "owner": "nix-community", "repo": "home-manager", - "rev": "ea164b7c9ccdc2321379c2ff78fd4317b4c41312", + "rev": "e4e78a2cbeaddd07ab7238971b16468cc1d14daf", "type": "github" }, "original": { @@ -271,11 +271,11 @@ "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1759613406, - "narHash": "sha256-PzgQJydp+RlKvwDi807pXPlURdIAVqLppZDga3DwPqg=", + "lastModified": 1766066098, + "narHash": "sha256-d3HmUbmfTDIt9mXEHszqyo2byqQMoyJtUJCZ9U1IqHQ=", "owner": "hyprwm", "repo": "contrib", - "rev": "32e1a75b65553daefb419f0906ce19e04815aa3a", + "rev": "41dbcac8183bb1b3a4ade0d8276b2f2df6ae4690", "type": "github" }, "original": { @@ -329,11 +329,11 @@ ] }, "locked": { - "lastModified": 1762462052, - "narHash": "sha256-6roLYzcDf4V38RUMSqycsOwAnqfodL6BmhRkUtwIgdA=", + "lastModified": 1763733840, + "narHash": "sha256-JnET78yl5RvpGuDQy3rCycOCkiKoLr5DN1fPhRNNMco=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "ffc999d980c7b3bca85d3ebd0a9fbadf984a8162", + "rev": "8f1bec691b2d198c60cccabca7a94add2df4ed1a", "type": "github" }, "original": { @@ -352,6 +352,7 @@ "hyprlang": "hyprlang", "hyprutils": "hyprutils", "hyprwayland-scanner": "hyprwayland-scanner", + "hyprwire": "hyprwire", "nixpkgs": [ "nixpkgs" ], @@ -360,11 +361,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1763681820, - "narHash": "sha256-gAdAtZ/VLTrbLEQXeAZRk0OkmFrJucMLP3zdqHai/cc=", + "lastModified": 1767300597, + "narHash": "sha256-lGE1j1bEuNp7XoDP+oyyF/c+MzYAs6S+sz0NK71nXZE=", "ref": "refs/heads/main", - "rev": "b5a2ef77b7876798d33502f8de006f9c478c12db", - "revCount": 6636, + "rev": "31d3181e1ee91e338fb4fb8207d64b8d689310fc", + "revCount": 6766, "submodules": true, "type": "git", "url": "https://github.com/hyprwm/Hyprland" @@ -408,11 +409,11 @@ ] }, "locked": { - "lastModified": 1762755186, - "narHash": "sha256-ZjjETUHtoEhVN7JI1Cbt3p/KcXpK8ZQaPHx7UkG1OgA=", + "lastModified": 1765643131, + "narHash": "sha256-CCGohW5EBIRy4B7vTyBMqPgsNcaNenVad/wszfddET0=", "owner": "hyprwm", "repo": "hyprland-guiutils", - "rev": "66356e20a8ed348aa49c1b9ceace786e224225b3", + "rev": "e50ae912813bdfa8372d62daf454f48d6df02297", "type": "github" }, "original": { @@ -438,11 +439,11 @@ ] }, "locked": { - "lastModified": 1765207366, - "narHash": "sha256-s0jO2kEj5cLLTgTblKnAKjqt3MjYFnmyrQT3SxiUugM=", + "lastModified": 1767304464, + "narHash": "sha256-HsdfmPf5291Y3yXScMoj53P/9SS1DK3KgbprBuR8A4k=", "owner": "hyprwm", "repo": "hyprland-plugins", - "rev": "e058ea23b80775cf20c675d064678416df2d9d04", + "rev": "7a8521112361997d071fd1fef06d6becc7e53240", "type": "github" }, "original": { @@ -463,11 +464,11 @@ ] }, "locked": { - "lastModified": 1759610243, - "narHash": "sha256-+KEVnKBe8wz+a6dTLq8YDcF3UrhQElwsYJaVaHXJtoI=", + "lastModified": 1765214753, + "narHash": "sha256-P9zdGXOzToJJgu5sVjv7oeOGPIIwrd9hAUAP3PsmBBs=", "owner": "hyprwm", "repo": "hyprland-protocols", - "rev": "bd153e76f751f150a09328dbdeb5e4fab9d23622", + "rev": "3f3860b869014c00e8b9e0528c7b4ddc335c21ab", "type": "github" }, "original": { @@ -492,11 +493,11 @@ ] }, "locked": { - "lastModified": 1763254292, - "narHash": "sha256-JNgz3Fz2KMzkT7aR72wsgu/xNeJB//LSmdilh8Z/Zao=", + "lastModified": 1764612430, + "narHash": "sha256-54ltTSbI6W+qYGMchAgCR6QnC1kOdKXN6X6pJhOWxFg=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "deea98d5b61d066bdc7a68163edd2c4bd28d3a6b", + "rev": "0d00dc118981531aa731150b6ea551ef037acddd", "type": "github" }, "original": { @@ -544,11 +545,11 @@ ] }, "locked": { - "lastModified": 1762463729, - "narHash": "sha256-2fYkU/mdz8WKY3dkDPlE/j6hTxIwqultsx4gMMsMns0=", + "lastModified": 1764592794, + "narHash": "sha256-7CcO+wbTJ1L1NBQHierHzheQGPWwkIQug/w+fhTAVuU=", "owner": "hyprwm", "repo": "hyprtoolkit", - "rev": "88483bdee5329ec985f0c8f834c519cd18cfe532", + "rev": "5cfe0743f0e608e1462972303778d8a0859ee63e", "type": "github" }, "original": { @@ -569,11 +570,11 @@ ] }, "locked": { - "lastModified": 1763323331, - "narHash": "sha256-+Z0OfCo1MS8/aIutSAW5aJR9zTae1wz9kcJYMgpwN6M=", + "lastModified": 1766160771, + "narHash": "sha256-roINUGikWRqqgKrD4iotKbGj3ZKJl3hjMz5l/SyKrHw=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "0c6411851cc779d551edc89b83966696201611aa", + "rev": "5ac060bfcf2f12b3a6381156ebbc13826a05b09f", "type": "github" }, "original": { @@ -594,11 +595,11 @@ ] }, "locked": { - "lastModified": 1755184602, - "narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=", + "lastModified": 1763640274, + "narHash": "sha256-Uan1Nl9i4TF/kyFoHnTq1bd/rsWh4GAK/9/jDqLbY5A=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d", + "rev": "f6cf414ca0e16a4d30198fd670ec86df3c89f671", "type": "github" }, "original": { @@ -607,6 +608,35 @@ "type": "github" } }, + "hyprwire": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1766253200, + "narHash": "sha256-26qPwrd3od+xoYVywSB7hC2cz9ivN46VPLlrsXyGxvE=", + "owner": "hyprwm", + "repo": "hyprwire", + "rev": "1079777525b30a947c8d657fac158e00ae85de9d", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwire", + "type": "github" + } + }, "ixx": { "inputs": { "flake-utils": [ @@ -639,11 +669,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1762847253, - "narHash": "sha256-BWWnUUT01lPwCWUvS0p6Px5UOBFeXJ8jR+ZdLX8IbrU=", + "lastModified": 1767185284, + "narHash": "sha256-ljDBUDpD1Cg5n3mJI81Hz5qeZAwCGxon4kQW3Ho3+6Q=", "owner": "nixos", "repo": "nixos-hardware", - "rev": "899dc449bc6428b9ee6b3b8f771ca2b0ef945ab9", + "rev": "40b1a28dce561bea34858287fbb23052c3ee63fe", "type": "github" }, "original": { @@ -685,11 +715,11 @@ }, "nixpkgs_10": { "locked": { - "lastModified": 1762977756, - "narHash": "sha256-4PqRErxfe+2toFJFgcRKZ0UI9NSIOJa+7RXVtBhy4KE=", + "lastModified": 1766651565, + "narHash": "sha256-QEhk0eXgyIqTpJ/ehZKg9IKS7EtlWxF3N7DXy42zPfU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c5ae371f1a6a7fd27823bc500d9390b38c05fa55", + "rev": "3e2499d5539c16d0d173ba53552a4ff8547f4539", "type": "github" }, "original": { @@ -749,11 +779,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1764242076, - "narHash": "sha256-sKoIWfnijJ0+9e4wRvIgm/HgE27bzwQxcEmo2J/gNpI=", + "lastModified": 1767116409, + "narHash": "sha256-5vKw92l1GyTnjoLzEagJy5V5mDFck72LiQWZSOnSicw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2fad6eac6077f03fe109c4d4eb171cf96791faa4", + "rev": "cad22e7d996aea55ecab064e84834289143e44a0", "type": "github" }, "original": { @@ -797,11 +827,11 @@ }, "nixpkgs_8": { "locked": { - "lastModified": 1763421233, - "narHash": "sha256-Stk9ZYRkGrnnpyJ4eqt9eQtdFWRRIvMxpNRf4sIegnw=", + "lastModified": 1767116409, + "narHash": "sha256-5vKw92l1GyTnjoLzEagJy5V5mDFck72LiQWZSOnSicw=", "owner": "nixos", "repo": "nixpkgs", - "rev": "89c2b2330e733d6cdb5eae7b899326930c2c0648", + "rev": "cad22e7d996aea55ecab064e84834289143e44a0", "type": "github" }, "original": { @@ -813,11 +843,11 @@ }, "nixpkgs_9": { "locked": { - "lastModified": 1763191728, - "narHash": "sha256-esRhOS0APE6k40Hs/jjReXg+rx+J5LkWw7cuWFKlwYA=", + "lastModified": 1766840161, + "narHash": "sha256-Ss/LHpJJsng8vz1Pe33RSGIWUOcqM1fjrehjUkdrWio=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1d4c88323ac36805d09657d13a5273aea1b34f0c", + "rev": "3edc4a30ed3903fdf6f90c837f961fa6b49582d1", "type": "github" }, "original": { @@ -834,11 +864,11 @@ "nixvim": "nixvim_2" }, "locked": { - "lastModified": 1755612464, - "narHash": "sha256-a77eam3zh4Lr4CrzOo/QKBD+etz4+TQZv/THVoLAhBA=", + "lastModified": 1767307820, + "narHash": "sha256-5L9VbYzjeaq1npMXyAFFak9G/+c9akZoFummW7Een9c=", "owner": "ahwxorg", "repo": "nixvim-config", - "rev": "76880a7e5930e8255f0d5c19b865beada4bf0573", + "rev": "a0ff3802e67a281acc7ab957d716a994660bb3f9", "type": "github" }, "original": { @@ -873,11 +903,11 @@ "nixpkgs": "nixpkgs_8" }, "locked": { - "lastModified": 1763722179, - "narHash": "sha256-7czFIGsaaoO4oqL6srEd3LUyA7MDbuSknpN6GAvwWDc=", + "lastModified": 1767347500, + "narHash": "sha256-v+O3SCBPq5qSmz+trAvcizq+cKrd8qco7Z2XG+YLRC8=", "owner": "nix-community", "repo": "NUR", - "rev": "bb1508be2d4fbfe82bf010aaa3c0ecff6d27694d", + "rev": "91f6328555690ffc84ab2ada1d21f544940811ac", "type": "github" }, "original": { @@ -913,7 +943,7 @@ "oisd": { "flake": false, "locked": { - "narHash": "sha256-fgfgm5GHDqq/RIRF8M1j6H3OZ/r1DVPgwMvwikdauNI=", + "narHash": "sha256-FAfdtuHCMBZtkhSqHUCQj5AtMcfiem8/D3VuV+pOfo4=", "type": "file", "url": "https://big.oisd.nl/domainswild" }, @@ -932,11 +962,11 @@ ] }, "locked": { - "lastModified": 1763319842, - "narHash": "sha256-YG19IyrTdnVn0l3DvcUYm85u3PaqBt6tI6VvolcuHnA=", + "lastModified": 1765911976, + "narHash": "sha256-t3T/xm8zstHRLx+pIHxVpQTiySbKqcQbK+r+01XVKc0=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "7275fa67fbbb75891c16d9dee7d88e58aea2d761", + "rev": "b68b780b69702a090c8bb1b973bab13756cc7a27", "type": "github" }, "original": { @@ -985,11 +1015,11 @@ "nixpkgs": "nixpkgs_9" }, "locked": { - "lastModified": 1763607916, - "narHash": "sha256-VefBA1JWRXM929mBAFohFUtQJLUnEwZ2vmYUNkFnSjE=", + "lastModified": 1766894905, + "narHash": "sha256-pn8AxxfajqyR/Dmr1wnZYdUXHgM3u6z9x0Z1Ijmz2UQ=", "owner": "Mic92", "repo": "sops-nix", - "rev": "877bb495a6f8faf0d89fc10bd142c4b7ed2bcc0b", + "rev": "61b39c7b657081c2adc91b75dd3ad8a91d6f07a7", "type": "github" }, "original": { @@ -1004,11 +1034,11 @@ "systems": "systems_3" }, "locked": { - "lastModified": 1763267524, - "narHash": "sha256-CywB4iCpGr4CYZAD+WboFwBQ7Wnc7LdfSemFWuH/1Ro=", + "lastModified": 1767195736, + "narHash": "sha256-0xvPSbhIGeJzsJXNTkgJ3PjwdVItKm85wzYKA9NmSzI=", "owner": "Gerg-L", "repo": "spicetify-nix", - "rev": "cf33e39bd1a21993a28ffee8be433e212ecf346a", + "rev": "465adc0ab6ff0c4b9b1db1c6e7fd7eeb553b3261", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 2367a0e..9424688 100644 --- a/flake.nix +++ b/flake.nix @@ -173,6 +173,16 @@ inherit self inputs username; }; }; + april = nixpkgs.lib.nixosSystem { + inherit system; + modules = [ + (import ./hosts/april) + ]; + specialArgs = { + host = "april"; + inherit self inputs username; + }; + }; }; }; } diff --git a/hosts/april/default.nix b/hosts/april/default.nix new file mode 100644 index 0000000..5e84da4 --- /dev/null +++ b/hosts/april/default.nix @@ -0,0 +1,58 @@ +{ + lib, + config, + pkgs, + ... +}: + +{ + imports = [ + ./hardware-configuration.nix + ./../../modules/core + ./../../modules/services/tailscale.nix + ./../../modules/services/mpd.nix + ]; + + liv = { + laptop.enable = true; + gui.enable = true; + desktop.enable = false; + creative.enable = false; + amdgpu.enable = false; + }; + + services = { + vnstat.enable = true; + }; + + networking.hostName = "april"; + + powerManagement = { + enable = true; + powertop.enable = true; + cpuFreqGovernor = lib.mkDefault "ondemand"; + }; + + boot = { + kernelParams = [ + "mem_sleep_default=deep" + ]; + kernelModules = [ "acpi_call" ]; + kernelPackages = pkgs.linuxPackages_latest; + loader = { + systemd-boot.enable = true; + efi.canTouchEfiVariables = true; + systemd-boot.configurationLimit = 10; + }; + extraModulePackages = + with config.boot.kernelPackages; + [ + acpi_call + cpupower + ] + ++ [ pkgs.cpupower-gui ]; + }; + + time.timeZone = "Europe/Amsterdam"; + nixpkgs.config.allowUnfree = true; +} diff --git a/hosts/april/hardware-configuration.nix b/hosts/april/hardware-configuration.nix new file mode 100644 index 0000000..5704c3a --- /dev/null +++ b/hosts/april/hardware-configuration.nix @@ -0,0 +1,64 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ + config, + lib, + pkgs, + modulesPath, + ... +}: + +{ + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ + "xhci_pci" + "nvme" + "usb_storage" + "sd_mod" + ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + boot.initrd.luks.devices."luks-c4154cca-9246-40e7-9f92-f67cf412f718".device = + "/dev/disk/by-uuid/c4154cca-9246-40e7-9f92-f67cf412f718"; + + fileSystems."/" = { + device = "/dev/disk/by-uuid/28283b70-d1ab-4c1e-9e9e-4efdcb051553"; + fsType = "ext4"; + }; + + boot.initrd.luks.devices."luks-577b813a-bbe2-479c-b439-b91964e9b36c".device = + "/dev/disk/by-uuid/577b813a-bbe2-479c-b439-b91964e9b36c"; + + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/44F1-737B"; + fsType = "vfat"; + options = [ + "fmask=0077" + "dmask=0077" + ]; + }; + + swapDevices = [ + { device = "/dev/disk/by-uuid/41da47c8-b3ba-4773-941e-a35dfd73aaef"; } + ]; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/hosts/sakura/default.nix b/hosts/sakura/default.nix index 3650301..7f03056 100644 --- a/hosts/sakura/default.nix +++ b/hosts/sakura/default.nix @@ -50,7 +50,7 @@ in hardware.framework = { amd-7040.preventWakeOnAC = true; - laptop13.audioEnhancement.enable = true; + # laptop13.audioEnhancement.enable = true; }; # Disable light sensors and accelerometers as they are not used and consume extra battery diff --git a/modules/core/default-server.nix b/modules/core/default-server.nix index 25b122a..29b1e15 100644 --- a/modules/core/default-server.nix +++ b/modules/core/default-server.nix @@ -1,13 +1,14 @@ { ... }: { imports = - [ (import ./bootloader.nix) ] + [ (import ./bootloader.nix) ] ++ [ (import ./hardware.nix) ] ++ [ (import ./network.nix) ] + ++ [ (import ./nvim.nix) ] ++ [ (import ./program.nix) ] ++ [ (import ./security.nix) ] ++ [ (import ./services.nix) ] ++ [ (import ./system.nix) ] ++ [ (import ./user.nix) ]; - # ++ [ (import ./virtualization.nix) ]; + # ++ [ (import ./virtualization.nix) ]; } diff --git a/modules/home/hyprland/config.nix b/modules/home/hyprland/config.nix index e683cd2..d37d4cb 100644 --- a/modules/home/hyprland/config.nix +++ b/modules/home/hyprland/config.nix @@ -261,7 +261,8 @@ "$mainMod, Q, killactive," "$mainMod, F, fullscreen, 0" # set 1 to 0 to set full screen without waybar "$mainMod, Space, togglefloating," - "$mainMod, D, exec, bemenu-run -l 5 --ignorecase" + # "$mainMod, D, exec, bemenu-run -l 5 --ignorecase" + "$mainMod, D, exec, vicinae toggle" "SUPER SHIFT, L, exec, swaylock --image /home/${username}/.local/share/bg.png" "SUPER, L, exec, swaylock --image /home/${username}/.local/share/bg.png" "$mainMod, E, exec, nautilus" diff --git a/modules/home/hyprland/hyprland.nix b/modules/home/hyprland/hyprland.nix index e215b35..ccbcdb3 100644 --- a/modules/home/hyprland/hyprland.nix +++ b/modules/home/hyprland/hyprland.nix @@ -13,6 +13,7 @@ nwg-dock-hyprland hyprland-monitor-attached hypridle + vicinae ]; # systemd.user.targets.hyprland-session.Unit.Wants = [ "xdg-desktop-autostart.target" ]; wayland.windowManager.hyprland = { diff --git a/modules/home/kanshi.nix b/modules/home/kanshi.nix index 1d96caf..6c49088 100644 --- a/modules/home/kanshi.nix +++ b/modules/home/kanshi.nix @@ -24,6 +24,15 @@ position = "0,0"; } ] + else if (host == "april") then + [ + { + criteria = "eDP-1"; + scale = 1.0; + status = "enable"; + position = "0,0"; + } + ] else if (host == "imilia") then [ { diff --git a/modules/home/nvim.nix b/modules/home/nvim.nix index e0b493f..9289483 100644 --- a/modules/home/nvim.nix +++ b/modules/home/nvim.nix @@ -1,7 +1,28 @@ -{ pkgs, ... }: { + lib, + config, + pkgs, + inputs, + ... +}: +{ + # Nixvim is being used for this programs.neovim = { enable = false; vimAlias = false; }; + xdg.mimeApps.defaultApplications = lib.mkIf config.xdg.mimeApps.enable { + "text/markdown" = "nvim.desktop"; + "text/html" = "nvim.desktop"; + "text/xml" = "nvim.desktop"; + "text/plain" = "nvim.desktop"; + "text/x-shellscript" = "nvim.desktop"; + }; + + home.packages = with pkgs; [ + inputs.alejandra.defaultPackage.${pkgs.stdenv.hostPlatform.system} + inputs.nixvim.packages.${pkgs.stdenv.hostPlatform.system}.default # import config from github:ahwxorg/nixvim-config + mermaid-cli + gnuplot + ]; } diff --git a/modules/home/packages.nix b/modules/home/packages.nix index fa19aea..074b71b 100644 --- a/modules/home/packages.nix +++ b/modules/home/packages.nix @@ -1,10 +1,4 @@ -{ - inputs, - lib, - pkgs, - config, - ... -}: +{ pkgs, ... }: { home.packages = with pkgs; [ # Environment shit @@ -36,7 +30,7 @@ bitwarden-cli imagemagick foot - termpdfpy + # termpdfpy # shit broke again smfh vimv pass lm_sensors @@ -80,11 +74,6 @@ # pip install --user --break-system-packages # '') - inputs.alejandra.defaultPackage.${pkgs.stdenv.hostPlatform.system} - inputs.nixvim.packages.${pkgs.stdenv.hostPlatform.system}.default - mermaid-cli - gnuplot - # Email/calendar/etc neomutt w3m diff --git a/modules/home/packages.server.nix b/modules/home/packages.server.nix index 4aa8f2e..0fb401b 100644 --- a/modules/home/packages.server.nix +++ b/modules/home/packages.server.nix @@ -1,4 +1,4 @@ -{ inputs, pkgs, ... }: +{ pkgs, ... }: { home.packages = with pkgs; [ vimv @@ -27,7 +27,5 @@ wget xxd borgbackup - inputs.alejandra.defaultPackage.${pkgs.stdenv.hostPlatform.system} - inputs.nixvim.packages.${pkgs.stdenv.hostPlatform.system}.default ]; } diff --git a/modules/home/waybar/default.nix b/modules/home/waybar/default.nix index 6f2bfbf..193dd32 100644 --- a/modules/home/waybar/default.nix +++ b/modules/home/waybar/default.nix @@ -1,6 +1,4 @@ { - config, - lib, pkgs, username, ... @@ -50,6 +48,7 @@ // "wireplumber", "group/audio", "group/battery", + "custom/pomodoro", "group/clock" ], @@ -109,7 +108,7 @@ }, "custom/music": { - "interval": "once", + "interval": 60, "return-type": "json", "exec": "~/.local/bin/waybar-music", "on-click": "playerctl play-pause", @@ -367,6 +366,15 @@ "interval": 60, "format": "CEST: {} ", "exec": "~/.local/bin/waybar-minutes" + }, + + "custom/pomodoro": { + "interval": 1, + "format": "{}", + "return-type": "json", + "exec": "waybar-module-pomodoro --no-work-icons", + "on-click": "waybar-module-pomodoro toggle", + "on-click-right": "waybar-module-pomodoro reset" } } ] diff --git a/modules/home/waybar/scripts.nix b/modules/home/waybar/scripts.nix index c3723c0..b5ab0c7 100644 --- a/modules/home/waybar/scripts.nix +++ b/modules/home/waybar/scripts.nix @@ -1,12 +1,11 @@ { pkgs, username, - config, + lib, ... }: let - # homeExternalIPv4 = "${pkgs.coreutils}/bin/cat ${config.sops.secrets.homeExternalIPv4.path}"; - homeExternalIPv4 = "92.118.0.69"; + waybar-module-pomodoro = pkgs.callPackage ./waybar-module-pomodoro.nix { }; in { home.file = { @@ -242,7 +241,7 @@ in NODE="$(mullvad status | grep -Ei 'relay' | awk '{print $2}' | tr '[:upper:]' '[:lower:]')" LOCATION="$(mullvad status | grep -Ei 'location' | cut -d':' -f2 | cut -d'.' -f1 | sed 's/ //g')" IPV4="$(mullvad status | grep 'IPv4' | cut -d':' -f3 | sed 's/ //g')" - echo "$IPV4" | grep -q "${homeExternalIPv4}" && LOCATION="home" + echo "$IPV4" | grep -q "92.118.0.69" && LOCATION="home" echo "$STATUS" | grep -Eioq 'connected|connecting' && TEXT="{\"text\":\"$STATUS ($LOCATION)\",\"location\":\"$LOCATION\",\"node\":\"$NODE\"}" # || ip address show tailscale0 | grep "global tailscale0" && TEXT="{\"text\":\"tailscale ($LOCATION)\",\"location\":\"$LOCATION\",\"node\":\"$NODE\"}" echo "$STATUS" | grep -Eioq 'disconnected' && TEXT="{\"text\":\"$STATUS\",\"location\":\"$LOCATION\",\"node\":\"$NODE\"}" @@ -255,5 +254,6 @@ in wf-recorder bemenu ncspot + waybar-module-pomodoro ]; } diff --git a/modules/home/waybar/waybar-module-pomodoro.nix b/modules/home/waybar/waybar-module-pomodoro.nix new file mode 100644 index 0000000..170a50e --- /dev/null +++ b/modules/home/waybar/waybar-module-pomodoro.nix @@ -0,0 +1,31 @@ +{ + lib, + pkgs, + rustPlatform, + fetchFromGitHub, + writableTmpDirAsHomeHook, + ... +}: +rustPlatform.buildRustPackage { + pname = "waybar-module-pomodoro"; + version = "0.0.1"; + + src = fetchFromGitHub { + owner = "Andeskjerf"; + repo = "waybar-module-pomodoro"; + hash = "sha256-vB5WROn/GmaJyLNHnyfhTZItjQlJ+LMXMw8gOT1GM0s="; + rev = "3867b25ab691c4a697ee2ffca76d7cc9408675cc"; + }; + + cargoHash = "sha256-FTzqNkGn1dk+pdee8U07NI/uqUR6/gs51ZWOpYro3j8="; + + nativeCheckInputs = [ + writableTmpDirAsHomeHook + ]; + + meta = { + description = "waybar module that provides a pomodoro timer"; + homepage = "https://github.com/Andeskjerf/waybar-module-pomodoro"; + maintainers = [ ]; + }; +} diff --git a/modules/home/zsh.nix b/modules/home/zsh.nix index 244bd07..54f020d 100644 --- a/modules/home/zsh.nix +++ b/modules/home/zsh.nix @@ -128,6 +128,38 @@ printf "%s\n" "''${url}" } + function cd() { + if [ -f "$1" ]; then + ${pkgs.zoxide}/bin/zoxide "$(dirname "$1")" + return + fi + + ${pkgs.zoxide}/bin/zoxide $@ + } + + get-git-root() { + echo "$(${pkgs.git}/bin/git rev-parse --show-toplevel 2>/dev/null)" + } + + cd-git-root() { + pushd "$(get-git-root)" + } + + pushd-git-root-widget() { + setopt localoptions pipefail no_aliases 2> /dev/null + local dir="$(eval "get-git-root")" + if [[ -z "$dir" ]]; then + zle redisplay + return 0 + fi + zle push-line + BUFFER="builtin pushd -- ''${(q)dir}" + zle accept-line + local ret=$? + zle reset-prompt + return $ret + } + function nixcd () { PACKAGE_NAME="$1" if [[ "$PACKAGE_NAME" = "" ]]; then diff --git a/modules/security/dnscrypt.nix b/modules/security/dnscrypt.nix index a14d80d..c4c0785 100644 --- a/modules/security/dnscrypt.nix +++ b/modules/security/dnscrypt.nix @@ -25,7 +25,7 @@ in "https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v3/public-resolvers.md" "https://download.dnscrypt.info/resolvers-list/v3/public-resolvers.md" ]; - minisign_key = "sha256-fgfgm5GHDqq/RIRF8M1j6H3OZ/r1DVPgwMvwikdauNI="; # See https://github.com/DNSCrypt/dnscrypt-resolvers/blob/master/v3/public-resolvers.md + minisign_key = "sha256-BEGZgyaI3g9WwpnTyW2cYT0rh3248eL0sC0z76filNM="; # See https://github.com/DNSCrypt/dnscrypt-resolvers/blob/master/v3/public-resolvers.md cache_file = "/var/lib/dnscrypt/public-resolvers.md"; }; diff --git a/modules/services/mpd.nix b/modules/services/mpd.nix index ab504ce..e43b7fa 100644 --- a/modules/services/mpd.nix +++ b/modules/services/mpd.nix @@ -14,17 +14,19 @@ services.mpd = { enable = true; - musicDirectory = "/home/${username}/Music"; - playlistDirectory = "/home/${username}/Music/.playlists"; - extraConfig = '' - restore_paused "yes" - auto_update "yes" + settings = { + playlist_directory = "/home/${username}/Music/.playlists"; + music_directory = "/home/${username}/Music"; + restore_paused = "yes"; + auto_update = "yes"; - audio_output { - type "pipewire" - name "pipewire" - } - ''; + audio_output = [ + { + type = "pipewire"; + name = "pipewire"; + } + ]; + }; user = "${username}"; # PipeWire requires this as it runs as the normal user and mpd normally runs as a system user. # Optional: diff --git a/modules/services/ollama.nix b/modules/services/ollama.nix index 928725f..ee95a54 100644 --- a/modules/services/ollama.nix +++ b/modules/services/ollama.nix @@ -1,9 +1,10 @@ +{ pkgs, ... }: { 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 + package = pkgs.ollama-rocm; # nope, 5700XT is too old for this }; services.open-webui.enable = false; } diff --git a/roles/laptop.nix b/roles/laptop.nix index 9cd4403..6f1fa7a 100644 --- a/roles/laptop.nix +++ b/roles/laptop.nix @@ -56,6 +56,6 @@ in criticalPowerAction = "Hibernate"; }; }; - powerManagement.powertop.enable = false; # somehow figure out how to let this not apply to specific USB devices, as they will auto suspend and that is annoying. + # powerManagement.powertop.enable = false; # somehow figure out how to let this not apply to specific USB devices, as they will auto suspend and that is annoying. }; }