From 4709a389ddfd0cc12c628bc831f74cfc30e87215 Mon Sep 17 00:00:00 2001 From: William Date: Tue, 18 Mar 2025 16:39:21 -0300 Subject: [PATCH] closer to a good hyprland session --- flake.lock | 114 +++++++++++++++++++++++++++++--- flake.nix | 2 + hosts/modules/users.nix | 4 +- users/modules/user/hyprland.nix | 47 ++++++++++++- 4 files changed, 153 insertions(+), 14 deletions(-) diff --git a/flake.lock b/flake.lock index 6582920..24779d5 100644 --- a/flake.lock +++ b/flake.lock @@ -202,6 +202,24 @@ "inputs": { "systems": "systems_3" }, + "locked": { + "lastModified": 1726560853, + "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "inputs": { + "systems": "systems_4" + }, "locked": { "lastModified": 1731533236, "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", @@ -216,7 +234,7 @@ "type": "github" } }, - "flake-utils_2": { + "flake-utils_3": { "inputs": { "systems": [ "stylix", @@ -382,6 +400,27 @@ } }, "home-manager_3": { + "inputs": { + "nixpkgs": [ + "mithril", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1730837930, + "narHash": "sha256-0kZL4m+bKBJUBQse0HanewWO0g8hDdCvBhudzxgehqc=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "2f607e07f3ac7e53541120536708e824acccfaa8", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_4": { "inputs": { "nixpkgs": [ "stylix", @@ -433,6 +472,27 @@ "type": "github" } }, + "mithril": { + "inputs": { + "flake-utils": "flake-utils", + "home-manager": "home-manager_3", + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1739875665, + "narHash": "sha256-QbGXbBQn6aq/hr0moKyaW3OdJKuH7uZN2zmH4T6+koU=", + "owner": "andreashgk", + "repo": "mithril-shell", + "rev": "7c1a609b86e875c854c5bf8a7da55cb405f43c6c", + "type": "github" + }, + "original": { + "owner": "andreashgk", + "ref": "7c1a609b86e875c854c5bf8a7da55cb405f43c6c", + "repo": "mithril-shell", + "type": "github" + } + }, "nix-flatpak": { "locked": { "lastModified": 1711997201, @@ -452,7 +512,7 @@ "nix-minecraft": { "inputs": { "flake-compat": "flake-compat_2", - "flake-utils": "flake-utils", + "flake-utils": "flake-utils_2", "nixpkgs": [ "nixpkgs" ] @@ -473,11 +533,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1741851582, - "narHash": "sha256-cPfs8qMccim2RBgtKGF+x9IBCduRvd/N5F4nYpU0TVE=", + "lastModified": 1730785428, + "narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=", "owner": "nixos", "repo": "nixpkgs", - "rev": "6607cf789e541e7873d40d3a8f7815ea92204f32", + "rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7", "type": "github" }, "original": { @@ -504,6 +564,22 @@ } }, "nixpkgs_2": { + "locked": { + "lastModified": 1741851582, + "narHash": "sha256-cPfs8qMccim2RBgtKGF+x9IBCduRvd/N5F4nYpU0TVE=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "6607cf789e541e7873d40d3a8f7815ea92204f32", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { "locked": { "lastModified": 1736798957, "narHash": "sha256-qwpCtZhSsSNQtK4xYGzMiyEDhkNzOCz/Vfu4oL2ETsQ=", @@ -527,9 +603,10 @@ "home-manager-stable": "home-manager-stable", "homepage": "homepage", "impermanence": "impermanence", + "mithril": "mithril", "nix-flatpak": "nix-flatpak", "nix-minecraft": "nix-minecraft", - "nixpkgs": "nixpkgs", + "nixpkgs": "nixpkgs_2", "nixpkgs-stable": "nixpkgs-stable", "stylix": "stylix" } @@ -542,12 +619,12 @@ "base16-vim": "base16-vim", "firefox-gnome-theme": "firefox-gnome-theme", "flake-compat": "flake-compat_3", - "flake-utils": "flake-utils_2", + "flake-utils": "flake-utils_3", "git-hooks": "git-hooks", "gnome-shell": "gnome-shell", - "home-manager": "home-manager_3", - "nixpkgs": "nixpkgs_2", - "systems": "systems_4", + "home-manager": "home-manager_4", + "nixpkgs": "nixpkgs_3", + "systems": "systems_5", "tinted-foot": "tinted-foot", "tinted-kitty": "tinted-kitty", "tinted-tmux": "tinted-tmux", @@ -599,6 +676,21 @@ } }, "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, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -613,7 +705,7 @@ "type": "github" } }, - "systems_4": { + "systems_5": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", diff --git a/flake.nix b/flake.nix index b8fae0c..ebf6196 100644 --- a/flake.nix +++ b/flake.nix @@ -38,6 +38,8 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + mithril.url = "github:andreashgk/mithril-shell?ref=7c1a609b86e875c854c5bf8a7da55cb405f43c6c"; + stylix.url = "github:danth/stylix?ref=b00c9f46ae6c27074d24d2db390f0ac5ebcc329f"; }; diff --git a/hosts/modules/users.nix b/hosts/modules/users.nix index 4473061..96f1ba5 100644 --- a/hosts/modules/users.nix +++ b/hosts/modules/users.nix @@ -1,6 +1,7 @@ { - lib, hostType, + inputs, + lib, pkgs, ... }: @@ -44,6 +45,7 @@ }; extraSpecialArgs = { inherit hostType; + inherit inputs; }; }; } diff --git a/users/modules/user/hyprland.nix b/users/modules/user/hyprland.nix index 8b09d8c..686c062 100644 --- a/users/modules/user/hyprland.nix +++ b/users/modules/user/hyprland.nix @@ -1,4 +1,9 @@ -{ lib, pkgs, ... }: +{ + inputs, + lib, + pkgs, + ... +}: let heightfittr = pkgs.writeShellApplication { @@ -52,8 +57,9 @@ in ################# ### AUTOSTART ### ################# - exec-once = ulauncher --hide-window + exec-once = ${pkgs.gnome-settings-daemon}/libexec/gsd-rfkill exec-once = waybar + exec-once = syshud exec-once = ${lib.getExe heightfittr} env = XCURSOR_SIZE,24 env = HYPRCURSOR_SIZE,24 @@ -206,6 +212,7 @@ in windowrule = noblur, ulauncher windowrulev2 = animation slide top, class:^(ulauncher)$ # firefox + windowrulev2 = float, class:^(firefox)$,title:^(Extension.*)$ windowrulev2 = plugin:scroller:columnwidth onehalf, class:(firefox) ''; }; @@ -271,6 +278,40 @@ in }; }; }; + clipman.enable = true; + }; + + systemd.user.services.ulauncher = { + Unit = { + "Description" = "Ulauncher Application Launcher"; + "PartOf" = [ "graphical-session.target" ]; + }; + Install.WantedBy = [ "graphical-session.target" ]; + Service = { + Type = "simple"; + Environment = + let + pydeps = pkgs.python3.withPackages ( + pp: with pp; [ + parsedatetime # https://github.com/tchar/ulauncher-albert-calculate-anything + pint # https://github.com/tchar/ulauncher-albert-calculate-anything + pydbus + pygobject3 + pytz # https://github.com/tchar/ulauncher-albert-calculate-anything + requests # https://github.com/tchar/ulauncher-albert-calculate-anything + simpleeval # https://github.com/tchar/ulauncher-albert-calculate-anything + ] + ); + in + [ + "PYTHONPATH=${pydeps}/${pydeps.sitePackages}" + ]; + ExecStart = pkgs.writeShellScript "ulauncher-env-wrapper.sh" '' + export PATH="''${XDG_BIN_HOME}:$HOME/.nix-profile/bin:/etc/profiles/per-user/$USER/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin" + export GDK_BACKEND=wayland + exec ${pkgs.ulauncher}/bin/ulauncher --hide-window + ''; + }; }; programs = { @@ -283,7 +324,9 @@ in hyprnome playerctl swaynotificationcenter + syshud ulauncher waybar + inputs.mithril.packages.${pkgs.system}.mithril-control-center ]; }