From a4144ec9fdf3277c0b010a4237563b2d8ed976e6 Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 4 Jun 2024 16:20:48 +0000 Subject: [PATCH 1/8] zfs on dlaptop --- hosts/dlaptop/hardware.nix | 62 ++++++++++++++++++++++++++------------ hosts/dlaptop/system.nix | 2 ++ 2 files changed, 45 insertions(+), 19 deletions(-) diff --git a/hosts/dlaptop/hardware.nix b/hosts/dlaptop/hardware.nix index 84485bc..9eeeaaa 100644 --- a/hosts/dlaptop/hardware.nix +++ b/hosts/dlaptop/hardware.nix @@ -40,13 +40,6 @@ interval = "weekly"; }; - # nix.gc = { - # automatic = true; - # dates = "weekly"; - # options = "--delete-older-than 7d"; - # # randomizedDelaySec = "30m"; - # }; - programs.nh = { enable = true; clean.enable = true; @@ -65,22 +58,37 @@ ]; boot.kernelModules = [ "amd-pstate" "acpi_call" "amdgpu" "kvm-amd" "vfat" "nls_cp437" "nls_iso8859-1" ]; - boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "sd_mod" "vfat" "nls_cp437" "nls_iso8859-1" ]; + boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "usbhid" "sd_mod" "vfat" "nls_cp437" "nls_iso8859-1" ]; boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.efiSysMountPoint = "/boot"; boot.initrd.kernelModules = [ ]; boot.kernelPackages = unstable.linuxPackages_xanmod_latest; - boot.extraModulePackages = with config.boot.kernelPackages; [ acpi_call cpupower ]; + boot.extraModulePackages = with config.boot.kernelPackages; [ usbip.out ]; + boot.kernelPackages = + with builtins; with lib; let + latestCompatibleVersion = config.boot.zfs.package.latestCompatibleLinuxPackages.kernel.version; + xanPackages = filterAttrs (name: packages: hasSuffix "_xanmod" name && (tryEval packages).success) pkgs.linuxKernel.packages; + compatiblePackages = filter (packages: compareVersions packages.kernel.version latestCompatibleVersion <= 0) (attrValues xanPackages); + orderedCompatiblePackages = sort (x: y: compareVersions x.kernel.version y.kernel.version > 0) compatiblePackages; + in head orderedCompatiblePackages; - fileSystems."/" = { - device = "/dev/disk/by-uuid/6b2d5c46-92de-42d0-a272-16b7ef7f30af"; - fsType = "ext4"; - }; + boot.plymouth.enable = false; + + boot.supportedFilesystems = [ "zfs" ]; + + boot.initrd.extraUtilsCommands = '' + copy_bin_and_libs ${pkgs.multipath-tools}/bin/kpartx + ''; boot.initrd.luks = { yubikeySupport = true; - devices."cryptroot" = { + devices."cryptroot0" = { device = "/dev/nvme0n1p2"; + postOpenCommands = " + kpartx -u /dev/mapper/cryptroot0 + kpartx -u /dev/mapper/cryptroot0p1 + kpartx -u /dev/mapper/cryptroot0p2 + "; yubikey = { slot = 2; gracePeriod = 7; @@ -97,14 +105,29 @@ }; fileSystems."/boot" = { - device = "/dev/disk/by-uuid/6770-34DC"; + device = "/dev/disk/by-uuid/4E0B-6C2F"; fsType = "vfat"; }; - swapDevices = [{ - device = "/var/lib/swapfile"; - size = 32 * 1024; - }]; + + fileSystems."/" = + { device = "zroot/ROOT/default"; + fsType = "zfs"; + }; + + fileSystems."/nix/store" = + { device = "zroot/nix/store"; + fsType = "zfs"; + }; + + fileSystems."/var/log" = + { device = "zroot/var/log"; + fsType = "zfs"; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/a2ff20bd-56f3-4c83-b1b4-933ba0c82f36"; } + ]; hardware.opengl = { enable = true; @@ -118,6 +141,7 @@ }; networking.useDHCP = lib.mkDefault true; + networking.hostId = "11C0FFEE"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; diff --git a/hosts/dlaptop/system.nix b/hosts/dlaptop/system.nix index adf1254..fd72e5a 100644 --- a/hosts/dlaptop/system.nix +++ b/hosts/dlaptop/system.nix @@ -156,6 +156,8 @@ }; environment.systemPackages = with pkgs; [ + multipath-tools #ZFS in LUKS mount + openvpn any-nix-shell comma From e6c91a257d9753a1b89005d352dea970d6072398 Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 4 Jun 2024 17:03:55 +0000 Subject: [PATCH 2/8] fix double kernelPackages --- hosts/dlaptop/hardware.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/hosts/dlaptop/hardware.nix b/hosts/dlaptop/hardware.nix index 9eeeaaa..8216c7b 100644 --- a/hosts/dlaptop/hardware.nix +++ b/hosts/dlaptop/hardware.nix @@ -62,7 +62,6 @@ boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.efiSysMountPoint = "/boot"; boot.initrd.kernelModules = [ ]; - boot.kernelPackages = unstable.linuxPackages_xanmod_latest; boot.extraModulePackages = with config.boot.kernelPackages; [ usbip.out ]; boot.kernelPackages = with builtins; with lib; let From ec3f81e68299e89c518e6efd88c1df9a6b9c4b77 Mon Sep 17 00:00:00 2001 From: delta Date: Sat, 8 Jun 2024 00:27:59 +0300 Subject: [PATCH 3/8] dlaptop on zfs --- flake.lock | 276 ++++++++++++++----------------- home/home.nix | 2 +- hosts/dlaptop/hardware.nix | 60 +++++-- hosts/dlaptop/system.nix | 8 +- hosts/generic.nix | 2 +- pkgs/hyprland/hypr/default.nix | 2 +- pkgs/hyprland/hypr/hyprland.conf | 8 +- pkgs/waybar/config-offline.jsonc | 189 +++++++++++++++++++++ pkgs/waybar/config-online.jsonc | 188 +++++++++++++++++++++ pkgs/waybar/config-sway.jsonc | 159 ++++++++++++++++++ pkgs/waybar/config.jsonc | 1 + pkgs/waybar/default.nix | 8 + pkgs/waybar/mesu.jsonc | 38 +++++ pkgs/waybar/style.css | 161 ++++++++++++++++++ 14 files changed, 925 insertions(+), 177 deletions(-) create mode 100644 pkgs/waybar/config-offline.jsonc create mode 100644 pkgs/waybar/config-online.jsonc create mode 100644 pkgs/waybar/config-sway.jsonc create mode 120000 pkgs/waybar/config.jsonc create mode 100644 pkgs/waybar/default.nix create mode 100644 pkgs/waybar/mesu.jsonc create mode 100644 pkgs/waybar/style.css diff --git a/flake.lock b/flake.lock index 089b528..edb744b 100644 --- a/flake.lock +++ b/flake.lock @@ -5,14 +5,15 @@ "flake-parts": "flake-parts", "nixpkgs": [ "nixpkgs" - ] + ], + "systems": "systems" }, "locked": { - "lastModified": 1713259062, - "narHash": "sha256-WTO84hUL8IlNuHDK2yOCeJ38EewFzGt5E0kzBjNWxa8=", + "lastModified": 1717576207, + "narHash": "sha256-LU6d1xX7jN1zt10YU7Oym07MtzVfziSmUEznGFdbuaw=", "owner": "anyrun-org", "repo": "anyrun", - "rev": "f9d30e34fa4ccb2797c6becec37e8bcff6585d39", + "rev": "7aabad8d5bb7d1bffae903ce86427b888ab824b4", "type": "github" }, "original": { @@ -70,11 +71,11 @@ ] }, "locked": { - "lastModified": 1716035127, - "narHash": "sha256-qqxeTHGDvCcer1QEGlu81MmRfbkNHBqCD9Ue7S2yHBE=", + "lastModified": 1717590482, + "narHash": "sha256-TbKrGVHIXTdanGtit/NghkQ4qeCdP7W775VKmPm0tnM=", "owner": "nix-community", "repo": "flake-firefox-nightly", - "rev": "ee25f2df1923145abee8aa8096f9b45065b535fb", + "rev": "e7deec85c929653bc1aa034a3c2f0a588614e10b", "type": "github" }, "original": { @@ -85,11 +86,11 @@ }, "flake-compat": { "locked": { - "lastModified": 1688025799, - "narHash": "sha256-ktpB4dRtnksm9F5WawoIkEneh1nrEvuxb5lJFt1iOyw=", + "lastModified": 1717312683, + "narHash": "sha256-FrlieJH50AuvagamEvWMIE6D2OAnERuDboFDYAED/dE=", "owner": "nix-community", "repo": "flake-compat", - "rev": "8bf105319d44f6b9f0d764efa4fdef9f1cc9ba1c", + "rev": "38fd3954cf65ce6faf3d0d45cd26059e059f07ea", "type": "github" }, "original": { @@ -136,11 +137,11 @@ ] }, "locked": { - "lastModified": 1696343447, - "narHash": "sha256-B2xAZKLkkeRFG5XcHHSXXcP7To9Xzr59KXeZiRf4vdQ=", + "lastModified": 1717285511, + "narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "c9afaba3dfa4085dbd2ccb38dfade5141e33d9d4", + "rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8", "type": "github" }, "original": { @@ -157,11 +158,11 @@ ] }, "locked": { - "lastModified": 1714641030, - "narHash": "sha256-yzcRNDoyVP7+SCNX0wmuDju1NUCt8Dz9+lyUXEI0dbI=", + "lastModified": 1715865404, + "narHash": "sha256-/GJvTdTpuDjNn84j82cU6bXztE0MSkdnTWClUCRub78=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "e5d10a24b66c3ea8f150e47dfdb0416ab7c3390e", + "rev": "8dc45382d5206bd292f9c2768b8058a8fd8311d9", "type": "github" }, "original": { @@ -170,24 +171,9 @@ "type": "github" } }, - "flake-root": { - "locked": { - "lastModified": 1713493429, - "narHash": "sha256-ztz8JQkI08tjKnsTpfLqzWoKFQF4JGu2LRz8bkdnYUk=", - "owner": "srid", - "repo": "flake-root", - "rev": "bc748b93b86ee76e2032eecda33440ceb2532fcd", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "flake-root", - "type": "github" - } - }, "flake-utils": { "inputs": { - "systems": "systems" + "systems": "systems_2" }, "locked": { "lastModified": 1710146030, @@ -205,7 +191,7 @@ }, "flake-utils_2": { "inputs": { - "systems": "systems_3" + "systems": "systems_4" }, "locked": { "lastModified": 1701680307, @@ -223,7 +209,7 @@ }, "flake-utils_3": { "inputs": { - "systems": "systems_4" + "systems": "systems_5" }, "locked": { "lastModified": 1710146030, @@ -240,24 +226,6 @@ } }, "flake-utils_4": { - "inputs": { - "systems": "systems_5" - }, - "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_5": { "inputs": { "systems": "systems_6" }, @@ -275,11 +243,38 @@ "type": "github" } }, + "git-hooks": { + "inputs": { + "flake-compat": "flake-compat_3", + "gitignore": "gitignore", + "nixpkgs": [ + "nixvim", + "nixpkgs" + ], + "nixpkgs-stable": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1716213921, + "narHash": "sha256-xrsYFST8ij4QWaV6HEokCUNIZLjjLP1bYC60K8XiBVA=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "0e8fcc54b842ad8428c9e705cb5994eaf05c26a0", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, "gitignore": { "inputs": { "nixpkgs": [ "nixvim", - "pre-commit-hooks", + "git-hooks", "nixpkgs" ] }, @@ -304,11 +299,11 @@ ] }, "locked": { - "lastModified": 1715486357, - "narHash": "sha256-4pRuzsHZOW5W4CsXI9uhKtiJeQSUoe1d2M9mWU98HC4=", + "lastModified": 1717525419, + "narHash": "sha256-5z2422pzWnPXHgq2ms8lcCfttM0dz+hg+x1pCcNkAws=", "owner": "nix-community", "repo": "home-manager", - "rev": "44677a1c96810a8e8c4ffaeaad10c842402647c1", + "rev": "a7117efb3725e6197dd95424136f79147aa35e5b", "type": "github" }, "original": { @@ -325,11 +320,11 @@ ] }, "locked": { - "lastModified": 1715486357, - "narHash": "sha256-4pRuzsHZOW5W4CsXI9uhKtiJeQSUoe1d2M9mWU98HC4=", + "lastModified": 1717052710, + "narHash": "sha256-LRhOxzXmOza5SymhOgnEzA8EAQp+94kkeUYWKKpLJ/U=", "owner": "nix-community", "repo": "home-manager", - "rev": "44677a1c96810a8e8c4ffaeaad10c842402647c1", + "rev": "29c69d9a466e41d46fd3a7a9d0591ef9c113c2ae", "type": "github" }, "original": { @@ -354,11 +349,11 @@ ] }, "locked": { - "lastModified": 1715791817, - "narHash": "sha256-J069Uhv/gCMFLX1dSh2f+9ZTM09r1Nv3oUfocCnWKow=", + "lastModified": 1716576411, + "narHash": "sha256-FIN1wMoyePBTtibCbaeJaoKNLuAYIGwLCWAYC1DJanw=", "owner": "hyprwm", "repo": "hyprcursor", - "rev": "7c3aa03dffb53921e583ade3d4ae3f487e390e7e", + "rev": "57298fc4f13c807e50ada2c986a3114b7fc2e621", "type": "github" }, "original": { @@ -373,15 +368,15 @@ "hyprlang": "hyprlang", "hyprwayland-scanner": "hyprwayland-scanner", "nixpkgs": "nixpkgs", - "systems": "systems_2", + "systems": "systems_3", "xdph": "xdph" }, "locked": { - "lastModified": 1716316196, - "narHash": "sha256-ynu+Ii1PTtnz4YdjP2CJbnxaie9aETNAds9lwDzeQus=", + "lastModified": 1717576964, + "narHash": "sha256-+iTjt2ujiWJZW7J36s/CzMiF1CEOi20TTK+Uq53tlxk=", "ref": "refs/heads/main", - "rev": "e419ef1873de01b0762f7f1a411994170a4d8cab", - "revCount": 4723, + "rev": "fefa55d406e38eda481ce75178cef3e43298762d", + "revCount": 4763, "submodules": true, "type": "git", "url": "https://github.com/hyprwm/Hyprland" @@ -399,11 +394,11 @@ ] }, "locked": { - "lastModified": 1715621965, - "narHash": "sha256-S5Wzi3hhFOiCaeZqmx3zBdrv8KzaEafD5hCfY8ixz0A=", + "lastModified": 1716228712, + "narHash": "sha256-y+LOXuSRMfkR2Vfwl5K2NVrszi1h5MJpML+msLnVS8U=", "owner": "hyprwm", "repo": "contrib", - "rev": "46d2206858657d439792926958f52b037534de49", + "rev": "33b38358559054d316eb605ccb733980dfa7dc63", "type": "github" }, "original": { @@ -451,11 +446,11 @@ ] }, "locked": { - "lastModified": 1715791527, - "narHash": "sha256-HhQ4zvGHrRjR63ltySSeg+x+0jb0lepiutWdnFhLRoo=", + "lastModified": 1716473782, + "narHash": "sha256-+qLn4lsHU6iL3+HTo1gTQ1tWzet8K9h+IfVemzEQZj8=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "969cb076e5b76f2e823aeca1937a3e1f159812ee", + "rev": "87d5d984109c839482b88b4795db073eb9ed446f", "type": "github" }, "original": { @@ -495,11 +490,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1716725378, - "narHash": "sha256-bNTVDAVBLFSSTU+q54cJnntmFKBi+F/D8sSqlZwBGiM=", + "lastModified": 1717330178, + "narHash": "sha256-rRZjmC3xcPpHTJHnEy3T99O86Ecjao5YhakzaoNiRcs=", "owner": "nix-community", "repo": "lib-aggregate", - "rev": "dbc9130fe1455e0f6ee4d8f5f799f9be551f866b", + "rev": "64d43e2bbc6eab8d1cbdfba96d90a71e15a847d7", "type": "github" }, "original": { @@ -532,11 +527,11 @@ ] }, "locked": { - "lastModified": 1713946171, - "narHash": "sha256-lc75rgRQLdp4Dzogv5cfqOg6qYc5Rp83oedF2t0kDp8=", + "lastModified": 1716993688, + "narHash": "sha256-vo5k2wQekfeoq/2aleQkBN41dQiQHNTniZeVONWiWLs=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "230a197063de9287128e2c68a7a4b0cd7d0b50a7", + "rev": "c0d5b8c54d6828516c97f6be9f2d00c63a363df4", "type": "github" }, "original": { @@ -547,11 +542,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1716137900, - "narHash": "sha256-sowPU+tLQv8GlqtVtsXioTKeaQvlMz/pefcdwg8MvfM=", + "lastModified": 1716330097, + "narHash": "sha256-8BO3B7e3BiyIDsaKA0tY8O88rClYRTjvAp66y+VBUeU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "6c0b7a92c30122196a761b440ac0d46d3d9954f1", + "rev": "5710852ba686cc1fd0d3b8e22b3117d43ba374c2", "type": "github" }, "original": { @@ -563,11 +558,11 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1716684580, - "narHash": "sha256-sIbMJWJr4hl2PWd9/iWlh89QfVzBn1NJ3u5RjeZADuM=", + "lastModified": 1717289404, + "narHash": "sha256-4q6ZO3BqHgdd3Aacb/xiQXB4g9TQKpQg/praTpD9vbI=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "d0d27192931680482081aa1c38389da2af84a651", + "rev": "e090cb30ae82f4b4461aafdb808847c6c97b08c2", "type": "github" }, "original": { @@ -578,11 +573,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1715668745, - "narHash": "sha256-xp62OkRkbUDNUc6VSqH02jB0FbOS+MsfMb7wL1RJOfA=", + "lastModified": 1717530100, + "narHash": "sha256-b4Dn+PnrZoVZ/BoR9JN2fTxXxplJrAsdSUIePf4Cacs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9ddcaffecdf098822d944d4147dd8da30b4e6843", + "rev": "a2e1d0414259a144ebdc048408a807e69e0565af", "type": "github" }, "original": { @@ -610,11 +605,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1715534503, - "narHash": "sha256-5ZSVkFadZbFP1THataCaSf0JH2cAH3S29hU9rrxTEqk=", + "lastModified": 1717196966, + "narHash": "sha256-yZKhxVIKd2lsbOqYd5iDoUIwsRZFqE87smE2Vzf6Ck0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2057814051972fa1453ddfb0d98badbea9b83c06", + "rev": "57610d2f8f0937f39dbd72251e9614b1561942d8", "type": "github" }, "original": { @@ -658,11 +653,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1715534503, - "narHash": "sha256-5ZSVkFadZbFP1THataCaSf0JH2cAH3S29hU9rrxTEqk=", + "lastModified": 1717602782, + "narHash": "sha256-pL9jeus5QpX5R+9rsp3hhZ+uplVHscNJh8n8VpqscM0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2057814051972fa1453ddfb0d98badbea9b83c06", + "rev": "e8057b67ebf307f01bdcc8fba94d94f75039d1f6", "type": "github" }, "original": { @@ -674,11 +669,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1715447595, - "narHash": "sha256-VsVAUQOj/cS1LCOmMjAGeRksXIAdPnFIjCQ0XLkCsT0=", + "lastModified": 1716769173, + "narHash": "sha256-7EXDb5WBw+d004Agt+JHC/Oyh/KTUglOaQ4MNjBbo5w=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "062ca2a9370a27a35c524dc82d540e6e9824b652", + "rev": "9ca3f649614213b2aaf5f1e16ec06952fe4c2632", "type": "github" }, "original": { @@ -741,19 +736,18 @@ "devshell": "devshell", "flake-compat": "flake-compat_2", "flake-parts": "flake-parts_2", - "flake-root": "flake-root", + "git-hooks": "git-hooks", "home-manager": "home-manager_2", "nix-darwin": "nix-darwin", "nixpkgs": "nixpkgs_3", - "pre-commit-hooks": "pre-commit-hooks", "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1715758881, - "narHash": "sha256-0W9F2F9YnqMZPBrz68VrTALlhTyBBeuuh/xD8C0PEVg=", + "lastModified": 1717574948, + "narHash": "sha256-8C2S1WWC4ty1LePzFWp+D6re/pggCJj9tWslddJ/wUw=", "owner": "nix-community", "repo": "nixvim", - "rev": "e035d22b64a9bd5f469664cbe42ea798d7c16b2e", + "rev": "a54ee8ad64c91b587c3460126bad25a441c1118c", "type": "github" }, "original": { @@ -762,34 +756,6 @@ "type": "github" } }, - "pre-commit-hooks": { - "inputs": { - "flake-compat": "flake-compat_3", - "flake-utils": "flake-utils_3", - "gitignore": "gitignore", - "nixpkgs": [ - "nixvim", - "nixpkgs" - ], - "nixpkgs-stable": [ - "nixvim", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1714478972, - "narHash": "sha256-q//cgb52vv81uOuwz1LaXElp3XAe1TqrABXODAEF6Sk=", - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "rev": "2849da033884f54822af194400f8dff435ada242", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "type": "github" - } - }, "root": { "inputs": { "anyrun": "anyrun", @@ -813,11 +779,11 @@ "sops-nix": "sops-nix" }, "locked": { - "lastModified": 1716081545, - "narHash": "sha256-ypSvXHziqSlX/dafHm0SWS2TiaAEoswWr/0LrzPC8Xc=", + "lastModified": 1717693242, + "narHash": "sha256-yRPXkZ6Uc4M585Hq1hxNtSBlgGnzDEVFcs2+xccDcXs=", "ref": "refs/heads/main", - "rev": "33beddf3a50f2a15266f847e298b50ce54077ef8", - "revCount": 33, + "rev": "dc80291b90317d2b88665392858c4191ebb6f6ad", + "revCount": 36, "type": "git", "url": "ssh://git@github.com/deltathetawastaken/secrets.git" }, @@ -828,7 +794,7 @@ }, "shwewo": { "inputs": { - "flake-utils": "flake-utils_4", + "flake-utils": "flake-utils_3", "nixpkgs": [ "nixpkgs" ], @@ -871,21 +837,6 @@ } }, "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "systems_2": { "locked": { "lastModified": 1689347949, "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", @@ -900,7 +851,7 @@ "type": "github" } }, - "systems_3": { + "systems_2": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -915,6 +866,21 @@ "type": "github" } }, + "systems_3": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, "systems_4": { "locked": { "lastModified": 1681028828, @@ -962,7 +928,7 @@ }, "tdesktop": { "inputs": { - "flake-utils": "flake-utils_5", + "flake-utils": "flake-utils_4", "nixpkgs": "nixpkgs_6" }, "locked": { @@ -987,11 +953,11 @@ ] }, "locked": { - "lastModified": 1714058656, - "narHash": "sha256-Qv4RBm4LKuO4fNOfx9wl40W2rBbv5u5m+whxRYUMiaA=", + "lastModified": 1715940852, + "narHash": "sha256-wJqHMg/K6X3JGAE9YLM0LsuKrKb4XiBeVaoeMNlReZg=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "c6aaf729f34a36c445618580a9f95a48f5e4e03f", + "rev": "2fba33a182602b9d49f0b2440513e5ee091d838b", "type": "github" }, "original": { diff --git a/home/home.nix b/home/home.nix index f470b26..3dee4e3 100644 --- a/home/home.nix +++ b/home/home.nix @@ -7,6 +7,7 @@ ./theme.nix ../pkgs/helix ../pkgs/yazi + ../pkgs/waybar ]; #services.blueman-applet.enable = true; @@ -15,7 +16,6 @@ enable = true; package = pkgs.vscode; extensions = with pkgs.vscode-extensions; [ - matklad.rust-analyzer jnoortheen.nix-ide b4dm4n.vscode-nixpkgs-fmt usernamehw.errorlens diff --git a/hosts/dlaptop/hardware.nix b/hosts/dlaptop/hardware.nix index 8216c7b..3c1e374 100644 --- a/hosts/dlaptop/hardware.nix +++ b/hosts/dlaptop/hardware.nix @@ -2,7 +2,6 @@ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. { stable, unstable, config, lib, pkgs, modulesPath, ... }: - { imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; @@ -29,12 +28,44 @@ pkgs.wireless-regdb ]; + console = { + earlySetup = true; + font = "${pkgs.spleen}/share/consolefonts/spleen-16x32.psfu"; + packages = with pkgs; [ spleen ]; + keyMap = "us"; + }; + boot.initrd = { + preDeviceCommands = '' + cat << "EOF" + ____ + /\ \ + / \ \ + / \ \ + / \ \ + / /\ \ \ + / / \ \ \ + / / /\ \ \ + / / / \ \ \ + / / /____\___\ \ + / / / \ +/ / /________________\ +\ / / + \/_____________________/ +EOF +echo kernel: $(uname -r | tr '[:upper:]' '[:lower:]') + ''; + }; + # boot.initrd = { + # preDeviceCommands = ''/bin/initrd.sh''; + # secrets."/bin/initrd.sh" = ./initrd.sh; + # }; + # 5 GHZ wifi boot.extraModprobeConfig = '' - options cfg80211 ieee80211_regdom="RU" + options cfg80211 ieee80211_regdom="RU" ''; - + services.zfs.autoScrub.enable = true; services.fstrim = { enable = true; interval = "weekly"; @@ -55,6 +86,8 @@ "initcall_blacklist=acpi_cpufreq_init" "nowatchdog" "amd_pstate.shared_mem=1" + "zfs.zfs_arc_max=19327352832" + "resume=UUID=a2ff20bd-56f3-4c83-b1b4-933ba0c82f36" ]; boot.kernelModules = [ "amd-pstate" "acpi_call" "amdgpu" "kvm-amd" "vfat" "nls_cp437" "nls_iso8859-1" ]; @@ -69,7 +102,10 @@ xanPackages = filterAttrs (name: packages: hasSuffix "_xanmod" name && (tryEval packages).success) pkgs.linuxKernel.packages; compatiblePackages = filter (packages: compareVersions packages.kernel.version latestCompatibleVersion <= 0) (attrValues xanPackages); orderedCompatiblePackages = sort (x: y: compareVersions x.kernel.version y.kernel.version > 0) compatiblePackages; - in head orderedCompatiblePackages; + selectedKernelPackage = head orderedCompatiblePackages; + in selectedKernelPackage // { + extraPackages = with selectedKernelPackage; [ acpi_call ]; + }; boot.plymouth.enable = false; @@ -80,7 +116,7 @@ ''; boot.initrd.luks = { - yubikeySupport = true; + yubikeySupport = false; devices."cryptroot0" = { device = "/dev/nvme0n1p2"; postOpenCommands = " @@ -103,24 +139,20 @@ }; }; + sops.age.keyFile = lib.mkForce "/root/keys.txt"; + fileSystems."/boot" = { device = "/dev/disk/by-uuid/4E0B-6C2F"; fsType = "vfat"; }; - fileSystems."/" = - { device = "zroot/ROOT/default"; + { device = "zroot/root"; fsType = "zfs"; }; - fileSystems."/nix/store" = - { device = "zroot/nix/store"; - fsType = "zfs"; - }; - - fileSystems."/var/log" = - { device = "zroot/var/log"; + fileSystems."/home" = + { device = "zroot/home"; fsType = "zfs"; }; diff --git a/hosts/dlaptop/system.nix b/hosts/dlaptop/system.nix index fd72e5a..ee84223 100644 --- a/hosts/dlaptop/system.nix +++ b/hosts/dlaptop/system.nix @@ -21,10 +21,16 @@ time.timeZone = "Europe/Moscow"; i18n.defaultLocale = "en_GB.UTF-8"; + i18n.extraLocaleSettings = { + LANGUAGE = "en_GB.UTF-8"; + LC_ALL = "en_GB.UTF-8"; + LC_TIME = "en_GB.UTF-8"; + }; networking = { hostName = "dlaptop"; - nameservers = [ "100.92.15.128" "fd7a:115c:a1e0::b21c:f80" ]; + nameservers = [ "1.1.1.1" ]; + #nameservers = [ "100.92.15.128" "fd7a:115c:a1e0::b21c:f80" ]; networkmanager.dns = "none"; networkmanager.enable = true; useDHCP = lib.mkDefault true; diff --git a/hosts/generic.nix b/hosts/generic.nix index d162e43..a091d73 100644 --- a/hosts/generic.nix +++ b/hosts/generic.nix @@ -129,7 +129,7 @@ in { ",s" = ", -s"; }; promptInit = '' - # set TERM "xterm-256color" + set TERM "xterm-256color" set fish_greeting export STARSHIP_CONFIG=/etc/starship.toml ${pkgs.zoxide}/bin/zoxide init fish | source diff --git a/pkgs/hyprland/hypr/default.nix b/pkgs/hyprland/hypr/default.nix index c831cf6..b1e5b06 100644 --- a/pkgs/hyprland/hypr/default.nix +++ b/pkgs/hyprland/hypr/default.nix @@ -10,7 +10,7 @@ programs.hyprland.package = inputs.hyprland.packages.${pkgs.system}.hyprland; users.users.delta.packages = with pkgs; [ swww - stable.waybar + waybar stable.swaynotificationcenter cliphist fzf diff --git a/pkgs/hyprland/hypr/hyprland.conf b/pkgs/hyprland/hypr/hyprland.conf index eca1924..52e680f 100644 --- a/pkgs/hyprland/hypr/hyprland.conf +++ b/pkgs/hyprland/hypr/hyprland.conf @@ -7,7 +7,7 @@ # monitor=eDP-1,2944x1840@60,auto,1.333333 # monitor=eDP-1,preferred,auto,1.6 -monitor=eDP-1,preferred,auto,1.333333 +monitor=eDP-1,preferred,auto,1.6 #monitor=eDP-1,preferred,auto,1.066667 #source = ~/.config/hypr/monitors.conf @@ -33,7 +33,7 @@ exec-once = sh -c "sleep 2 && swww clear" #exec-once = mpvpaper '*' -o "video-scale-y=1.1 --gpu-context=wayland --vo=gpu --hwdec=vaapi-copy" videowork/bgloop.webm # exec-once = gtk-launch autostart exec-once = -exec-once = waybar -c ~/.config/waybar/config-offline.jsonc +exec-once = waybar #exec-once = ags exec-once = nm-applet @@ -525,5 +525,5 @@ binde = $mainMod SHIFT CTRL, L, moveactive, 30 0 # Source a file (multi-file configs) # source = ~/.config/hypr/myColors.conf -source = ~/.config/hypr/media-binds.conf -source = ~/.config/hypr/env_var.conf +###source = ~/.config/hypr/media-binds.conf +###source = ~/.config/hypr/env_var.conf diff --git a/pkgs/waybar/config-offline.jsonc b/pkgs/waybar/config-offline.jsonc new file mode 100644 index 0000000..38308f4 --- /dev/null +++ b/pkgs/waybar/config-offline.jsonc @@ -0,0 +1,189 @@ +{ + "layer": "top", + "position": "top", + "mod": "dock", + "exclusive": true, + "passthrough": false, + "gtk-layer-shell": true, + "height": 20, + "modules-left": [ + "custom/power_btn", + "custom/launch_apps", + "idle_inhibitor", + "hyprland/workspaces", + "hyprland/window" + ], + "modules-center": [ + "clock" + ], + "modules-right": [ + //"custom/updates", + "cpu", + "pulseaudio", + "custom/bluetoothcharge", + "pulseaudio#microphone", + "backlight", + "tray", + //"temperature", + "custom/power_profile", + "battery", + "hyprland/language" + //"custom/myutils", + //"custom/weather" + //"custom/light_dark" + ], + + "include": [ + "~/.config/waybar/mesu.jsonc" + // "~/.config/utils/waybar/conf/asus-rog.jsonc", + // "~/.config/utils/waybar/conf/utils-util.jsonc" + ], + + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "󰛐", + "deactivated": "󰛑" + }, + "timeout": 180, + "tooltip": true + }, + + "custom/launch_apps": { + "format": "󱗼 ", + "on-click": "sh -c '(nwg-drawer -term foot)'", + "tooltip": false + }, + + "hyprland/language": { + "interval": 30, + "format": "{}", + "format-en": "🇬🇧", + "format-ru": "🇷🇺", + "on-click": "hyprctl switchxkblayout at-translated-set-2-keyboard next", + "signal": 8 + }, + + "hyprland/window": { + "max-length": 200, + "separate-outputs": true + }, + + "custom/power_btn": { + "format": "", + "on-click": "sh -c '(wlogout --protocol layer-shell)'", + "tooltip": false + }, + + "custom/lock_screen": { + "format": "", + "on-click": "sh -c '(swaylock)'", + "tooltip": false + }, + + "hyprland/workspaces": { + "disable-scroll": true, + "all-outputs": true, + "on-scroll-up": "hyprctl dispatch workspace e+1", + "on-scroll-down": "hyprctl dispatch workspace e-1", + "on-click": "activate" + }, + + "cpu": { + "states": { + "high": 80, + "med": 40, + "low": 15 + }, + "interval": 10, + "format": " {usage}%", + "max-length": 10, + "format-alt-click": "click-right", + "format-alt": " ", + "on-click": "footclient --fullscreen --title=btop -o colors.alpha=0.3 sh -c 'btop'" + }, + + "battery": { + "states": { + "good": 80, + "warning": 30, + "critical": 20 + }, + "format": "{icon} {capacity}%", + "format-charging": " {capacity}%", + "format-plugged": " {capacity}%", + "format-alt-click": "click-right", + "format-alt": "{icon}", + "format-icons": ["󰂎", "󰁺", "󰁻", "󰁼", "󰁽", "󰁾", "󰁿", "󰂀", "󰂁", "󰂂", "󰁹"] + }, + + "pulseaudio": { + "format": "{icon}", + "format-muted": "", + "on-click": "~/.config/utils/waybar/scripts/volume --toggle", + "on-click-right": "pavucontrol", + "on-scroll-up": "~/.config/utils/waybar/scripts/volume --inc", + "on-scroll-down": "~/.config/utils/waybar/scripts/volume --dec", + "scroll-step": 5, + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + }, + "format-alt-click": "click-middle", + "format-alt": "{icon} {volume}%", + "tooltip": true, + "tooltip-format": "{volume}%" + }, + + "pulseaudio#microphone": { + "format": "{format_source}", + "format-source": "", + "format-source-muted": "", + "on-click": "~/.config/utils/waybar/scripts/volume --toggle-mic", + "on-click-right": "pavucontrol", + "on-scroll-up": "~/.config/utils/waybar/scripts/volume --mic-inc", + "on-scroll-down": "~/.config/utils/waybar/scripts/volume --mic-dec", + "scroll-step": 5, + "format-alt-click": "click-middle", + "format-alt": " {volume}%", + "tooltip": true, + "tooltip-format": " {volume}%" + }, + + "backlight": { + "device": "intel_backlight", + "format": "{icon}", + "format-alt-click": "click-right", + "format-alt": "{icon} {percent}%", + "format-icons": ["󰃞", "󰃟", "󰃠"], + "on-scroll-up": "~/.config/utils/waybar/scripts/brightness --inc", + "on-scroll-down": "~/.config/utils/waybar/scripts/brightness --dec" + }, + + "tray": { + "icon-size": 16, + "spacing": 10 + }, + + "custom/updates": { + "format": "{}", + "exec": "~/.config/utils/waybar/scripts/update-sys", + "on-click": "~/.config/utils/waybar/scripts/update-sys update", + "interval": 3600, + "tooltip": true + }, + + "custom/bluetoothcharge": { + "format": "{}", + "tooltip-format": "{}", + "exec": "~/.config/utils/waybar/scripts/bluetoothcharge", + "on-click": "~/.config/utils/waybar/scripts/bluetoothcharge", + "interval": 60, + "tooltip": true + } +} diff --git a/pkgs/waybar/config-online.jsonc b/pkgs/waybar/config-online.jsonc new file mode 100644 index 0000000..a7bf53c --- /dev/null +++ b/pkgs/waybar/config-online.jsonc @@ -0,0 +1,188 @@ +{ + "layer": "top", + "position": "top", + "mod": "dock", + "exclusive": true, + "passthrough": false, + "gtk-layer-shell": true, + "height": 20, + "modules-left": [ + "custom/power_btn", + "custom/launch_apps", + "idle_inhibitor", + "hyprland/workspaces", + "hyprland/window" + ], + "modules-center": [ + "clock" + ], + "modules-right": [ + "custom/updates", + "cpu", + "pulseaudio", + "custom/bluetoothcharge", + "pulseaudio#microphone", + "backlight", + "tray", + //"temperature", + "custom/power_profile", + "battery", + "hyprland/language", + //"custom/myhyprv", + "custom/weather" + //"custom/light_dark" + ], + + "include": [ + "~/.config/HyprV/waybar/conf/mesu.jsonc", + // "~/.config/HyprV/waybar/conf/asus-rog.jsonc", + "~/.config/HyprV/waybar/conf/hyprv-util.jsonc" + ], + + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "󰛐", + "deactivated": "󰛑" + }, + "tooltip": true + }, + + "custom/launch_apps": { + "format": "󱗼 ", + "on-click": "sh -c '(nwg-drawer -term wezterm)'", + "tooltip": false + }, + + "hyprland/language": { + "interval": 30, + "format": "{}", + "format-en": "🇬🇧", + "format-ru": "🇷🇺", + "on-click": "hyprctl switchxkblayout at-translated-set-2-keyboard next", + "signal": 8 + }, + + "hyprland/window": { + "max-length": 200, + "separate-outputs": true + }, + + "custom/power_btn": { + "format": "", + "on-click": "sh -c '(sleep 0.5s; wlogout --protocol layer-shell)'", + "tooltip": false + }, + + "custom/lock_screen": { + "format": "", + "on-click": "sh -c '(sleep 0.5s; swaylock)'", + "tooltip": false + }, + + "hyprland/workspaces": { + "disable-scroll": true, + "all-outputs": true, + "on-scroll-up": "hyprctl dispatch workspace e+1", + "on-scroll-down": "hyprctl dispatch workspace e-1", + "on-click": "activate" + }, + + "cpu": { + "states": { + "high": 80, + "med": 40, + "low": 15 + }, + "interval": 10, + "format": " {usage}%", + "max-length": 10, + "format-alt-click": "click-right", + "format-alt": " ", + "on-click": "footclient --fullscreen --title=btop -o colors.alpha=0.3 sh -c 'btop'" + }, + + "battery": { + "states": { + "good": 80, + "warning": 30, + "critical": 20 + }, + "format": "{icon} {capacity}%", + "format-charging": " {capacity}%", + "format-plugged": " {capacity}%", + "format-alt-click": "click-right", + "format-alt": "{icon}", + "format-icons": ["󰂎", "󰁺", "󰁻", "󰁼", "󰁽", "󰁾", "󰁿", "󰂀", "󰂁", "󰂂", "󰁹"] + }, + + "pulseaudio": { + "format": "{icon}", + "format-muted": "", + "on-click": "~/.config/HyprV/waybar/scripts/volume --toggle", + "on-click-right": "pavucontrol", + "on-scroll-up": "~/.config/HyprV/waybar/scripts/volume --inc", + "on-scroll-down": "~/.config/HyprV/waybar/scripts/volume --dec", + "scroll-step": 5, + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + }, + "format-alt-click": "click-middle", + "format-alt": "{icon} {volume}%", + "tooltip": true, + "tooltip-format": "{volume}%" + }, + + "pulseaudio#microphone": { + "format": "{format_source}", + "format-source": "", + "format-source-muted": "", + "on-click": "~/.config/HyprV/waybar/scripts/volume --toggle-mic", + "on-click-right": "pavucontrol", + "on-scroll-up": "~/.config/HyprV/waybar/scripts/volume --mic-inc", + "on-scroll-down": "~/.config/HyprV/waybar/scripts/volume --mic-dec", + "scroll-step": 5, + "format-alt-click": "click-middle", + "format-alt": " {volume}%", + "tooltip": true, + "tooltip-format": " {volume}%" + }, + + "backlight": { + "device": "intel_backlight", + "format": "{icon}", + "format-alt-click": "click-right", + "format-alt": "{icon} {percent}%", + "format-icons": ["󰃞", "󰃟", "󰃠"], + "on-scroll-up": "~/.config/HyprV/waybar/scripts/brightness --inc", + "on-scroll-down": "~/.config/HyprV/waybar/scripts/brightness --dec" + }, + + "tray": { + "icon-size": 16, + "spacing": 10 + }, + + "custom/updates": { + "format": "{}", + "exec": "~/.config/HyprV/waybar/scripts/update-sys", + "on-click": "~/.config/HyprV/waybar/scripts/update-sys update", + "interval": 3600, + "tooltip": true + }, + + "custom/bluetoothcharge": { + "format": "{}", + "tooltip-format": "{}", + "exec": "~/.config/HyprV/waybar/scripts/bluetoothcharge", + "on-click": "~/.config/HyprV/waybar/scripts/bluetoothcharge", + "interval": 60, + "tooltip": true + } +} diff --git a/pkgs/waybar/config-sway.jsonc b/pkgs/waybar/config-sway.jsonc new file mode 100644 index 0000000..6ae9225 --- /dev/null +++ b/pkgs/waybar/config-sway.jsonc @@ -0,0 +1,159 @@ +{ + "layer": "top", + "position": "top", + "mod": "dock", + "exclusive": true, + "passthrough": false, + "gtk-layer-shell": true, + "height": 20, + "modules-left": [ + "custom/power_btn", + "custom/launch_apps", + "idle_inhibitor", + "sway/workspaces", + "sway/mode" + ], + "modules-center": [ + "clock" + ], + "modules-right": [ + "custom/updates", + "cpu", + "pulseaudio", + "pulseaudio#microphone", + "backlight", + "tray", + "temperature", + "custom/power_profile", + "battery", + "sway/language", + "custom/weather" + ], + + "include": [ + "~/.config/HyprV/waybar/conf/mesu.jsonc", + // "~/.config/HyprV/waybar/conf/asus-rog.jsonc", + "~/.config/HyprV/waybar/conf/hyprv-util.jsonc" + ], + + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "󰛐", + "deactivated": "󰛑" + }, + "tooltip": true + }, + + "custom/launch_apps": { + "format": "󱗼 ", + "on-click": "sh -c '(sleep 0.5s; pkill nwg-drawer || nwg-drawer -term wezterm)' & disown", + "tooltip": false + }, + + "sway/language": { + "interval": 30, + "format": " {}", + "format-en": "🇬🇧", + "format-ru": "🇷🇺", + "on-click": "hyprctl switchxkblayout at-translated-set-2-keyboard next", + "signal": 8 + }, + + + "custom/power_btn": { + "format": "", + "on-click": "sh -c '(sleep 0.5s; wlogout --protocol layer-shell)' & disown", + "tooltip": false + }, + + "custom/lock_screen": { + "format": "", + "on-click": "sh -c '(sleep 0.5s; swaylock)' & disown", + "tooltip": false + }, + + "cpu": { + "interval": 10, + "format": "", + "max-length": 10, + "format-alt-click": "click-right", + "format-alt": " {usage}%", + "on-click": "kitty --start-as=fullscreen --title btop sh -c 'btop'" + }, + + "battery": { + "states": { + "good": 80, + "warning": 30, + "critical": 20 + }, + "format": "{icon}", + "format-charging": " {capacity}%", + "format-plugged": " {capacity}%", + "format-alt-click": "click-right", + "format-alt": "{icon} {capacity}%", + "format-icons": ["󰂎", "󰁺", "󰁻", "󰁼", "󰁽", "󰁾", "󰁿", "󰂀", "󰂁", "󰂂", "󰁹"] + }, + + "pulseaudio": { + "format": "{icon}", + "format-muted": "", + "on-click": "~/.config/HyprV/waybar/scripts/volume --toggle", + "on-click-right": "pavucontrol", + "on-scroll-up": "~/.config/HyprV/waybar/scripts/volume --inc", + "on-scroll-down": "~/.config/HyprV/waybar/scripts/volume --dec", + "scroll-step": 5, + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + }, + "format-alt-click": "click-middle", + "format-alt": "{icon} {volume}%", + "tooltip": true, + "tooltip-format": "{icon} {volume}%" + }, + + "pulseaudio#microphone": { + "format": "{format_source}", + "format-source": "", + "format-source-muted": "", + "on-click": "~/.config/HyprV/waybar/scripts/volume --toggle-mic", + "on-click-right": "pavucontrol", + "on-scroll-up": "~/.config/HyprV/waybar/scripts/volume --mic-inc", + "on-scroll-down": "~/.config/HyprV/waybar/scripts/volume --mic-dec", + "scroll-step": 5, + "format-alt-click": "click-middle", + "format-alt": " {volume}%", + "tooltip": true, + "tooltip-format": " {volume}%" + }, + + "backlight": { + "device": "intel_backlight", + "format": "{icon}", + "format-alt-click": "click-right", + "format-alt": "{icon} {percent}%", + "format-icons": ["󰃞", "󰃟", "󰃠"], + "on-scroll-up": "~/.config/HyprV/waybar/scripts/brightness --inc", + "on-scroll-down": "~/.config/HyprV/waybar/scripts/brightness --dec" + }, + + "tray": { + "icon-size": 16, + "spacing": 10 + }, + + "custom/updates": { + "format": "{}", + "exec": "~/.config/HyprV/waybar/scripts/update-sys", + "on-click": "~/.config/HyprV/waybar/scripts/update-sys update", + "interval": 300, + "tooltip": true + } +} diff --git a/pkgs/waybar/config.jsonc b/pkgs/waybar/config.jsonc new file mode 120000 index 0000000..61f95fc --- /dev/null +++ b/pkgs/waybar/config.jsonc @@ -0,0 +1 @@ +config-offline.jsonc \ No newline at end of file diff --git a/pkgs/waybar/default.nix b/pkgs/waybar/default.nix new file mode 100644 index 0000000..ec7fcd9 --- /dev/null +++ b/pkgs/waybar/default.nix @@ -0,0 +1,8 @@ +{ pkgs, lib, ... }: + +{ + home.file.".config/waybar/config.jsonc".text = builtins.readFile ./config-offline.jsonc; + home.file.".config/waybar/style.css".text = builtins.readFile ./style.css; + home.file.".config/waybar/mesu.jsonc".text = builtins.readFile ./mesu.jsonc; + +} \ No newline at end of file diff --git a/pkgs/waybar/mesu.jsonc b/pkgs/waybar/mesu.jsonc new file mode 100644 index 0000000..eb9ea42 --- /dev/null +++ b/pkgs/waybar/mesu.jsonc @@ -0,0 +1,38 @@ +{ + "clock": { + "format": "{:%H:%M}", + "format-alt": "{:%a %d %R}", + "tooltip-format": "{calendar}", + "calendar": { + "mode" : "month", + "mode-mon-col" : 3, + "weeks-pos" : "right", + "on-scroll" : 1, + "on-click-right": "mode", + "format": { + "months": "{}", + "days": "{}", + "weeks": "{}", + "weekdays": "{}", + "today": "{}" + } + }, + "actions": { + "on-click-right": "mode", + "on-click-forward": "tz_up", + "on-click-backward": "tz_down", + "on-scroll-up": "shift_up", + "on-scroll-down": "shift_down" + } +}, + +"temperature": { + "thermal-zone": 1, + "format": "", + "format-alt-click": "click-right", + "format-alt": " {temperatureC}°C", + "critical-threshold": 70, + "format-critical": " {temperatureC}°C", + "on-click": "kitty --start-as=fullscreen --title btop sh -c 'btop'" +} +} diff --git a/pkgs/waybar/style.css b/pkgs/waybar/style.css new file mode 100644 index 0000000..12b41a2 --- /dev/null +++ b/pkgs/waybar/style.css @@ -0,0 +1,161 @@ +* { + border: none; + border-radius: 0; + font-family: "IosevkaDiosevka"; + font-weight: bold; + font-size: 16px; + min-height: 0; +} + +#language { + font-size: 20px; + font-family: "Twemoji"; +} + +window#waybar { + background: rgba(21, 18, 27, 0); + color: #f6f7fc; +} + +tooltip { + font-family: "Iosevka\ Fixed\ Heavy\ Extended"; + background: #000000; + opacity: 1; + border-radius: 10px; + border-width: 2px; + border-style: solid; + border-color: #11111b; +} + +tooltip label{ + color: #cdd6f4; +} + +#workspaces button { + padding: 5px; + color: #f6f7fc; + margin-right: 5px; +} + +#workspaces button.active { + color: #000000; + background: #a6e3a1; + border-radius: 10px; +} + +#workspaces button:hover { + background: #11111b; + color: #cdd6f4; + border-radius: 10px; +} + +#custom-launch_wofi, +#custom-launch_firefox, +#custom-launch_thunderbird, +#custom-launch_thunar, +#custom-launch_kitty, +#custom-lock_screen, +#custom-light_dark, +#custom-power_btn, +#custom-power_profile, +#custom-weather, +#custom-myhyprv, +#window, +#cpu, +#disk, +#custom-updates, +#memory, +#clock, +#battery, +#pulseaudio, +#network, +#tray, +#temperature, +#workspaces, +#idle_inhibitor, +#backlight { + background: rgba(21, 18, 27, 0); + opacity: 1; + padding: 0px 8px; + margin: 0px 3px; + border: 0px; +} + +#temperature.critical { + color: #e92d4d; +} + +#workspaces { + padding-right: 0px; + padding-left: 5px; +} + +#window { + border-radius: 10px; + margin-left: 0px; + margin-right: 0px; +} + +#custom-launch_firefox, +#custom-launch_thunderbird, +#custom-launch_thunar, +#custom-launch_wofi, +#custom-launch_kitty, +#custom-weather { + margin-left: 0px; + border-right: 0px; + font-size: 24px; + margin-right: 20px; +} + +#custom-launch_firefox, +#custom-launch_kitty { + font-size: 20px; +} + +#battery { + color: #FFFFFF; +} + +#battery.charging { + color: #7bc275; +} + +#battery.warning:not(.charging) { + color: #FCCE7B; +} + +#battery.critical:not(.charging) { + color: #f44336; +} + +#cpu { + color: #FFFFFF; +} + +#cpu.crit { + color: #70140d +} + +#cpu.high { + color: #f44336 +} + +#cpu.med { + color: #FCCE7B; +} + +#cpu.low { + color: #99d8ff; +} + +#custom-bluetoothcharge { + color: #757de8; +} + +#clock { + font-size: 17px; + margin-left: 0px; + border-right: 0px; + margin-right: 0px; +} From a9401d4deec562f62d0be733d0749b8f24c9d036 Mon Sep 17 00:00:00 2001 From: delta Date: Sat, 8 Jun 2024 00:31:49 +0300 Subject: [PATCH 4/8] small cfg fiddling --- derivations/hyprdrop.nix | 26 ++++++++++++++++++++++++++ pkgs/gnome.nix | 6 +++--- 2 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 derivations/hyprdrop.nix diff --git a/derivations/hyprdrop.nix b/derivations/hyprdrop.nix new file mode 100644 index 0000000..17be4b5 --- /dev/null +++ b/derivations/hyprdrop.nix @@ -0,0 +1,26 @@ +{ lib +, rustPlatform +, fetchFromGitHub +}: + +rustPlatform.buildRustPackage rec { + pname = "hyprdrop"; + version = "0.2.0"; + + src = fetchFromGitHub { + owner = "kjlo"; + repo = "hyprdrop"; + rev = "v${version}"; + hash = "sha256-QKkXJV8xU3JWbLw87Apfs54BaPXjrr7Uf2gm9I0PXa0="; + }; + + cargoHash = "sha256-TPfEEnK8peO5/SnrUNbaYd8l60V4azqySRWqBhLwl6E="; + + meta = with lib; { + description = "Rust implementation of Hdrop"; + homepage = "https://github.com/kjlo/hyprdrop"; + license = licenses.mit; + maintainers = with maintainers; [ ]; + mainProgram = "hyprdrop"; + }; +} diff --git a/pkgs/gnome.nix b/pkgs/gnome.nix index e81cfc8..067654e 100644 --- a/pkgs/gnome.nix +++ b/pkgs/gnome.nix @@ -53,9 +53,9 @@ in programs.dconf.profiles.user.databases = [ { settings = { - #"org/gnome/mutter" = { - # experimental-features = [ "scale-monitor-framebuffer" ]; - #}; + "org/gnome/mutter" = { + experimental-features = [ "scale-monitor-framebuffer" ]; + }; "org/gnome/settings-daemon/plugins/media-keys" = { custom-keybindings = [ "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/" From 49d72b08f898983e8f977b0d9b3c673d10ab4604 Mon Sep 17 00:00:00 2001 From: delta Date: Sat, 8 Jun 2024 00:32:35 +0300 Subject: [PATCH 5/8] socks builder now accepts sockets + autostart option + new socks services derivations --- derivations/hola-proxy.nix | 28 +++++++++++++ derivations/opera-proxy.nix | 28 +++++++++++++ derivations/windscribe-proxy.nix | 28 +++++++++++++ pkgs/apps.nix | 13 +++--- pkgs/socks.nix | 70 ++++++++++++++++++++++++++++---- 5 files changed, 155 insertions(+), 12 deletions(-) create mode 100644 derivations/hola-proxy.nix create mode 100644 derivations/opera-proxy.nix create mode 100644 derivations/windscribe-proxy.nix diff --git a/derivations/hola-proxy.nix b/derivations/hola-proxy.nix new file mode 100644 index 0000000..0a2c36a --- /dev/null +++ b/derivations/hola-proxy.nix @@ -0,0 +1,28 @@ +{ lib +, buildGoModule +, fetchFromGitHub +}: + +buildGoModule rec { + pname = "hola-proxy"; + version = "1.13.3"; + + src = fetchFromGitHub { + owner = "Snawoot"; + repo = "hola-proxy"; + rev = "v${version}"; + hash = "sha256-T4kXwseOspXtu6jMCytCqROwQP1XjKFT2ejfAA36HUY="; + }; + + vendorHash = "sha256-1mQzeopJzzXV4cCHu30QelCIz6NivOImpiCTpGnAtzY="; + + ldflags = [ "-s" "-w" ]; + + meta = with lib; { + description = "Standalone Hola proxy client"; + homepage = "https://github.com/Snawoot/hola-proxy"; + license = licenses.mit; + maintainers = with maintainers; [ ]; + mainProgram = "hola-proxy"; + }; +} diff --git a/derivations/opera-proxy.nix b/derivations/opera-proxy.nix new file mode 100644 index 0000000..1d993a0 --- /dev/null +++ b/derivations/opera-proxy.nix @@ -0,0 +1,28 @@ +{ lib +, buildGoModule +, fetchFromGitHub +}: + +buildGoModule rec { + pname = "opera-proxy"; + version = "1.2.5"; + + src = fetchFromGitHub { + owner = "Snawoot"; + repo = "opera-proxy"; + rev = "v${version}"; + hash = "sha256-ZTebhXmyUPONxcOR7+1qQzGKcGlGfOu2OToFaCgSPCQ="; + }; + + vendorHash = "sha256-IlkMeihvGwuvswOFC8+8ZJCCVWbFnLH51X7Z+VDnZx4="; + + ldflags = [ "-s" "-w" ]; + + meta = with lib; { + description = "Standalone client for proxies of Opera VPN"; + homepage = "https://github.com/Snawoot/opera-proxy"; + license = licenses.mit; + maintainers = with maintainers; [ ]; + mainProgram = "opera-proxy"; + }; +} diff --git a/derivations/windscribe-proxy.nix b/derivations/windscribe-proxy.nix new file mode 100644 index 0000000..f97aeb1 --- /dev/null +++ b/derivations/windscribe-proxy.nix @@ -0,0 +1,28 @@ +{ lib +, buildGoModule +, fetchFromGitHub +}: + +buildGoModule rec { + pname = "windscribe-proxy"; + version = "1.4.0"; + + src = fetchFromGitHub { + owner = "Snawoot"; + repo = "windscribe-proxy"; + rev = "v${version}"; + hash = "sha256-bVW/cdG1/5WiVZD5yXdkoVqUlYas/CkTD82WANne9gA="; + }; + + vendorHash = "sha256-K1ca//RdFGbNLrLDHsjaCcChHREO/dvOWg7/auRbFhs="; + + ldflags = [ "-s" "-w" ]; + + meta = with lib; { + description = "Standalone client for proxies of Windscribe browser extension"; + homepage = "https://github.com/Snawoot/windscribe-proxy"; + license = licenses.mit; + maintainers = with maintainers; [ ]; + mainProgram = "windscribe-proxy"; + }; +} diff --git a/pkgs/apps.nix b/pkgs/apps.nix index 07948ee..7fbd30a 100644 --- a/pkgs/apps.nix +++ b/pkgs/apps.nix @@ -40,6 +40,7 @@ in { wl-clipboard-x11 #(callPackage ../derivations/nu_plugin_dns.nix { }) (fishPlugins.callPackage ../derivations/fish/fish-functions.nix { }) + (callPackage ../derivations/opera-proxy.nix { }) xorg.xwininfo jq dropbox @@ -74,11 +75,11 @@ in { lexend # font from google (non-mono) ibm-plex fira-code - # iosevka-comfy.comfy + iosevka-comfy.comfy # iosevka-comfy.comfy-duo - # iosevka-comfy.comfy-wide - # iosevka-comfy.comfy-wide-duo - iosevka-comfy.comfy-motion-duo + iosevka-comfy.comfy-wide + iosevka-comfy.comfy-wide-duo + # iosevka-comfy.comfy-motion-duo jamesdsp easyeffects nmap wget @@ -94,7 +95,8 @@ in { # ''; #}) shwewo.audiorelay - shwewo.tdesktop + # shwewo.tdesktop + # _64gram (pkgs.writeScriptBin "tlp" ''/run/wrappers/bin/sudo ${pkgs.tlp}/bin/tlp $@'') prismlauncher stable.teleport_12 #work @@ -104,6 +106,7 @@ in { atool #unarchive open-interpreter overrides.diosevka + # iosevka-bin # overrides.iosevka-comfy overrides.vesktop # overrides.input-font diff --git a/pkgs/socks.nix b/pkgs/socks.nix index 368bc33..ec4450f 100644 --- a/pkgs/socks.nix +++ b/pkgs/socks.nix @@ -1,15 +1,15 @@ { pkgs, lib, inputs, ... }: let nixpkgs2305 = import inputs.nixpkgs2305 { system = "${pkgs.system}"; config = { allowUnfree = true; }; }; - socksBuilder = attrs: + socksBuilder = { name, script, autostart ? true, socketConfig ? null }: { - inherit (attrs) name; + inherit name; value = { enable = true; after = [ "novpn.service" "network-online.target" ]; wants = [ "novpn.service" "network-online.target" ]; bindsTo = [ "novpn.service" ]; - wantedBy = [ "multi-user.target" ]; + wantedBy = if autostart then [ "multi-user.target" ] else [ ]; serviceConfig = { Restart = "on-failure"; @@ -20,7 +20,7 @@ let Group = "socks"; }; - script = attrs.script; + script = script; preStart = "while true; do ip addr show dev novpn1 | grep -q 'inet' && break; sleep 1; done"; path = with pkgs; [ @@ -28,18 +28,62 @@ let shadowsocks-libev shadowsocks-v2ray-plugin sing-box - wireproxy + wireproxy gost + (callPackage ../derivations/opera-proxy.nix { }) ]; }; }; socksed = [ # IP of the proxies is 192.168.150.2 { name = "singbox-aus"; script = "sing-box run -c /run/secrets/singbox-aus";} # port 4000 - { name = "socks-warp"; script = "wireproxy -c /etc/wireguard/cproxy.conf"; } # port 3333 + { name = "socks-warp" ; script = "wireproxy -c /etc/wireguzard/cproxy.conf"; } # port 3333 { name = "socks-novpn"; script = "gost -L socks5://192.168.150.2:3334"; } # port 3334 + { name = "opera-socks"; + script = "sing-box run -c ${opera-singboxcfg} & opera-proxy -bootstrap-dns https://1.1.1.1/dns-query -bind-address 192.168.150.2:18088"; + autostart = false; + socketConfig = { port = "3335"; idleStopSec = "180s"; }; + } # port 3335 ]; + socketsServiceGenerator = { name, port, idleStopSec }: { + inherit name; + value = { + description = "Socket activation for ${name}"; + wantedBy = [ "sockets.target" ]; + + socketConfig = { + ListenStream = "${port}"; + IdleStopSec = idleStopSec; + }; + }; + }; + + opera-singboxcfg = pkgs.writeText "opera-singboxcfg" '' + { + "log": { + "disabled": true, + "output": "stdout" + }, + "inbounds": [ + { + "type": "socks", + "listen": "192.168.150.2", + "listen_port": 3335, + "sniff": true, + "sniff_override_destination": true + } + ], + "outbounds": [ + { + "type": "http", + "server": "192.168.150.2", + "server_port": 18088 + } + ] + } + ''; + delete_rules = pkgs.writeScriptBin "delete_rules" '' #!${pkgs.bash}/bin/bash default_gateway=$(cat /etc/netns/novpn/default_gateway) @@ -117,6 +161,11 @@ let ip netns del novpn rm -rf /var/run/netns/novpn/ ''; + + socketsBuilder = socketsServiceGenerator; + withSockets = lib.filter (s: lib.hasAttr "socketConfig" s) socksed; + + enabledSocksed = lib.filter (s: !lib.hasAttr "autostart" s || s.autostart) socksed; in { users.users.socks = { group = "socks"; @@ -124,13 +173,20 @@ in { }; users.groups.socks = {}; + + systemd.sockets = builtins.listToAttrs (map (s: socketsBuilder { + name = s.name; + port = s.socketConfig.port; + idleStopSec = s.socketConfig.idleStopSec; + }) withSockets); + systemd.services = builtins.listToAttrs (map socksBuilder socksed) // { novpn = { enable = true; description = "novpn namespace"; after = [ "network-online.target" ]; wantedBy = [ "multi-user.target" ]; - wants = map (s: "${s.name}.service") socksed ++ [ "network-online.target"]; + wants = map (s: "${s.name}.service") enabledSocksed ++ [ "network-online.target"]; serviceConfig = { Restart = "on-failure"; From 644c52d610f440b21f783978ca19f9dbeb898d2a Mon Sep 17 00:00:00 2001 From: delta Date: Sat, 8 Jun 2024 00:36:17 +0300 Subject: [PATCH 6/8] hyprdrop enable --- pkgs/apps.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/apps.nix b/pkgs/apps.nix index 7fbd30a..249db3d 100644 --- a/pkgs/apps.nix +++ b/pkgs/apps.nix @@ -41,6 +41,7 @@ in { #(callPackage ../derivations/nu_plugin_dns.nix { }) (fishPlugins.callPackage ../derivations/fish/fish-functions.nix { }) (callPackage ../derivations/opera-proxy.nix { }) + (callPackage ../derivations/hyprdrop.nix { }) xorg.xwininfo jq dropbox From 42bc13e1fa62ab4441f70d76760bf51ae22e7417 Mon Sep 17 00:00:00 2001 From: delta Date: Sat, 8 Jun 2024 00:39:27 +0300 Subject: [PATCH 7/8] forgot indents --- pkgs/socks.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/socks.nix b/pkgs/socks.nix index ec4450f..a19ccc0 100644 --- a/pkgs/socks.nix +++ b/pkgs/socks.nix @@ -40,9 +40,9 @@ let { name = "socks-warp" ; script = "wireproxy -c /etc/wireguzard/cproxy.conf"; } # port 3333 { name = "socks-novpn"; script = "gost -L socks5://192.168.150.2:3334"; } # port 3334 { name = "opera-socks"; - script = "sing-box run -c ${opera-singboxcfg} & opera-proxy -bootstrap-dns https://1.1.1.1/dns-query -bind-address 192.168.150.2:18088"; - autostart = false; - socketConfig = { port = "3335"; idleStopSec = "180s"; }; + script = "sing-box run -c ${opera-singboxcfg} & opera-proxy -bootstrap-dns https://1.1.1.1/dns-query -bind-address 192.168.150.2:18088"; + autostart = false; + socketConfig = { port = "3335"; idleStopSec = "180s"; }; } # port 3335 ]; From 177bac0a07393971113283f956dbddd8d64b98bf Mon Sep 17 00:00:00 2001 From: delta Date: Sat, 8 Jun 2024 01:32:17 +0300 Subject: [PATCH 8/8] add hyprdrop --- derivations/hyprdrop/Cargo.lock | 722 ++++++++++++++++++++++++ derivations/{ => hyprdrop}/hyprdrop.nix | 13 +- pkgs/apps.nix | 2 +- pkgs/hyprland/hypr/hyprland.conf | 9 +- 4 files changed, 739 insertions(+), 7 deletions(-) create mode 100644 derivations/hyprdrop/Cargo.lock rename derivations/{ => hyprdrop}/hyprdrop.nix (56%) diff --git a/derivations/hyprdrop/Cargo.lock b/derivations/hyprdrop/Cargo.lock new file mode 100644 index 0000000..0281061 --- /dev/null +++ b/derivations/hyprdrop/Cargo.lock @@ -0,0 +1,722 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "once_cell", + "serde", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +dependencies = [ + "memchr", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "backtrace" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bytes" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" + +[[package]] +name = "cc" +version = "1.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "libc", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "clap" +version = "2.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" +dependencies = [ + "ansi_term", + "atty", + "bitflags", + "strsim", + "textwrap", + "unicode-width", + "vec_map", +] + +[[package]] +name = "colored" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8" +dependencies = [ + "lazy_static", + "windows-sys", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "gimli" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hyprdrop" +version = "0.2.0" +dependencies = [ + "hyprland", + "log", + "simple_logger", + "structopt", + "time", +] + +[[package]] +name = "hyprland" +version = "0.4.0-alpha.2" +source = "git+https://github.com/hyprland-community/hyprland-rs.git?tag=0.4.0-alpha.2#11f8a9fc85c03a889b1b53d750ccef6149cbed9a" +dependencies = [ + "ahash", + "derive_more", + "hyprland-macros", + "num-traits", + "once_cell", + "paste", + "regex", + "serde", + "serde_json", + "serde_repr", + "tokio", +] + +[[package]] +name = "hyprland-macros" +version = "0.4.0-alpha.2" +source = "git+https://github.com/hyprland-community/hyprland-rs.git?tag=0.4.0-alpha.2#11f8a9fc85c03a889b1b53d750ccef6149cbed9a" +dependencies = [ + "quote", + "syn 2.0.48", +] + +[[package]] +name = "itoa" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.153" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" + +[[package]] +name = "log" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" + +[[package]] +name = "memchr" +version = "2.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" + +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +dependencies = [ + "libc", + "wasi", + "windows-sys", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_threads" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" +dependencies = [ + "libc", +] + +[[package]] +name = "object" +version = "0.32.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + +[[package]] +name = "pin-project-lite" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "regex" +version = "1.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "ryu" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" + +[[package]] +name = "serde" +version = "1.0.196" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.196" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "serde_json" +version = "1.0.113" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "simple_logger" +version = "4.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e7e46c8c90251d47d08b28b8a419ffb4aede0f87c2eea95e17d1d5bacbf3ef1" +dependencies = [ + "colored", + "log", + "time", + "windows-sys", +] + +[[package]] +name = "socket2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" + +[[package]] +name = "structopt" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10" +dependencies = [ + "clap", + "lazy_static", + "structopt-derive", +] + +[[package]] +name = "structopt-derive" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" +dependencies = [ + "heck", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "textwrap" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "time" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe80ced77cbfb4cb91a94bf72b378b4b6791a0d9b7f09d0be747d1bdff4e68bd" +dependencies = [ + "deranged", + "itoa", + "libc", + "num-conv", + "num_threads", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tokio" +version = "1.35.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "pin-project-lite", + "socket2", + "windows-sys", +] + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-segmentation" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" + +[[package]] +name = "unicode-width" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" + +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "zerocopy" +version = "0.7.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] diff --git a/derivations/hyprdrop.nix b/derivations/hyprdrop/hyprdrop.nix similarity index 56% rename from derivations/hyprdrop.nix rename to derivations/hyprdrop/hyprdrop.nix index 17be4b5..5676ec4 100644 --- a/derivations/hyprdrop.nix +++ b/derivations/hyprdrop/hyprdrop.nix @@ -5,16 +5,21 @@ rustPlatform.buildRustPackage rec { pname = "hyprdrop"; - version = "0.2.0"; + version = "unstable-2024-05-12"; src = fetchFromGitHub { owner = "kjlo"; repo = "hyprdrop"; - rev = "v${version}"; - hash = "sha256-QKkXJV8xU3JWbLw87Apfs54BaPXjrr7Uf2gm9I0PXa0="; + rev = "d21001d1589e0f4d3b809a6b6efa18c411421c30"; + hash = "sha256-t/sxLtpPFHOWTSivMdh+7C8Ba4bBObZgjisgSkRcOpc="; }; - cargoHash = "sha256-TPfEEnK8peO5/SnrUNbaYd8l60V4azqySRWqBhLwl6E="; + cargoLock = { + lockFile = ./Cargo.lock; + outputHashes = { + "hyprland-0.4.0-alpha.2" = "sha256-+AkB1ZltdqPn2ZRzU5FIQVWwuvm2TWhnNJnnG/oUIfI="; + }; + }; meta = with lib; { description = "Rust implementation of Hdrop"; diff --git a/pkgs/apps.nix b/pkgs/apps.nix index 249db3d..11bf784 100644 --- a/pkgs/apps.nix +++ b/pkgs/apps.nix @@ -41,7 +41,7 @@ in { #(callPackage ../derivations/nu_plugin_dns.nix { }) (fishPlugins.callPackage ../derivations/fish/fish-functions.nix { }) (callPackage ../derivations/opera-proxy.nix { }) - (callPackage ../derivations/hyprdrop.nix { }) + (callPackage ../derivations/hyprdrop/hyprdrop.nix { }) xorg.xwininfo jq dropbox diff --git a/pkgs/hyprland/hypr/hyprland.conf b/pkgs/hyprland/hypr/hyprland.conf index 52e680f..be7d1b0 100644 --- a/pkgs/hyprland/hypr/hyprland.conf +++ b/pkgs/hyprland/hypr/hyprland.conf @@ -327,7 +327,11 @@ windowrulev2 = fakefullscreen,class:^(org.telegram.desktop|telegramdesktop)$,tit # windowrulev2 = center,initialTitle:^(Media viewer)$ # windowrulev2 = fakefullscreen,initialTitle:^(Media viewer)$ # windowrulev2 = noshadow,initialTitle:^(Media viewer)$ - +windowrulev2 = float, class:^(kitty_hyprdrop)$ +windowrulev2 = center 1, class:^(kitty_hyprdrop)$ +windowrulev2 = size 100% 98%, class:^(kitty_hyprdrop)$ +windowrulev2 = noanim,class:^(kitty_hyprdrop)$ +windowrule = noblur,^(kitty_hyprdrop)$ #layerrules @@ -355,7 +359,8 @@ bind = $mainMod, U, togglesplit #bind = $mainMod, RETURN, exec, footclient #open the terminal bind = $mainMod, RETURN, exec, footclient bind = $mainMod, Q, exec, footclient -bind = ALT, RETURN, exec, sh -c "/home/delta/.config/hypr/hdrop -g '30' -h '98' -p t -f kitty --class kitty_drop" +# bind = ALT, RETURN, exec, sh -c "/home/delta/.config/hypr/hdrop -g '30' -h '98' -p t -f kitty --class kitty_drop" +bind = ALT, RETURN, exec, hyprdrop kitty -i kitty_hyprdrop bind = ALT, X, exec, sh -c "/home/delta/.config/hypr/hdrop -g '30' -h '60' -f 'keepassxc_lite' --class org.keepassxc.KeePassXC" # bind = ALT, T, exec, sh -c "QT_QPA_PLATFORM=xcb /home/delta/.config/hypr/hdrop -h '60' -g '30' -f 'telegram-desktop' --class TelegramDesktop" #bind = $mainMod SHIFT, RETURN, exec, alacritty #open the terminal