diff --git a/home-config/bashrc b/home-config/bashrc index d28af9d..0c61ee6 100644 --- a/home-config/bashrc +++ b/home-config/bashrc @@ -50,3 +50,6 @@ export XDG_DATA_DIRS=$XDG_DATA_DIRS:/var/lib/flatpak/exports/share:/home/ryan/.l #export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) #gpgconf --launch gpg-agent export GPG_TTY=$(tty) + +# Setup zoxide for cd command provider +eval "$(zoxide init --cmd cd bash)" diff --git a/home-config/nix-home-manager/home.nix b/home-config/nix-home-manager/home.nix index 5c0ee46..aa90213 100644 --- a/home-config/nix-home-manager/home.nix +++ b/home-config/nix-home-manager/home.nix @@ -15,6 +15,12 @@ # release notes. home.stateVersion = "22.11"; # Please read the comment before changing. + # Enable nix flakes + nix = { + package = pkgs.nix; + settings.experimental-features = [ "nix-command" "flakes" ]; + }; + # This value will set some environment variables to allow home-manager to # function better outside of NixOS nixpkgs.config.allowUnfree = true; @@ -30,12 +36,12 @@ yt-dlp #pass rustup + zoxide nodePackages.pnpm gcc pkg-config wttrbar swww - hyprpicker wl-clip-persist gifski waypaper diff --git a/home-config/waybar/config b/home-config/waybar/config index 8721a6a..99a7bef 100644 --- a/home-config/waybar/config +++ b/home-config/waybar/config @@ -5,7 +5,7 @@ "modules-left": ["hyprland/workspaces", "hyprland/submap"], "modules-center": ["hyprland/window"], - "modules-right": ["tray", "custom/spotify", "custom/weather", "custom/mail", "custom/storage", "backlight", "bluetooth", "pulseaudio", "network", "idle_inhibitor", "battery", "clock"], + "modules-right": ["tray", "custom/spotify", "privacy", "custom/weather", "custom/mail", "custom/storage", "backlight", "bluetooth", "pulseaudio", "network", "idle_inhibitor", "battery", "clock"], "hyprland/submap": { "format": " {}" }, @@ -59,6 +59,23 @@ "on-click": "foot -t alacritty doas nmtui", "tooltip": false }, + "privacy": { + "icon-spacing":4, + "icon-size":18, + "transition-duration":250, + "modules": [ + { + "type":"screenshare", + "tooltip":true, + "tooltip-icon-size":24 + }, + { + "type":"audio-in", + "tooltip":true, + "tooltip-icon-size":24 + } + ] + }, "pulseaudio": { "format-alt": "{icon}", "format": "{volume} {icon}", diff --git a/modules/ryan-packages/freedesktop.scm b/modules/ryan-packages/freedesktop.scm index ab610ce..4f28358 100644 --- a/modules/ryan-packages/freedesktop.scm +++ b/modules/ryan-packages/freedesktop.scm @@ -4,6 +4,7 @@ #:use-module (guix gexp) #:use-module (guix build-system meson) #:use-module (guix build-system cmake) + #:use-module (guix build-system qt) #:use-module (guix build utils) #:use-module (guix packages) #:use-module (guix git-download) @@ -43,7 +44,7 @@ (define-public xdg-desktop-portal-hyprland-ryan (package (name "xdg-desktop-portal-hyprland") - (version "1.2.6") + (version "1.3.1") (source (origin (method git-fetch) (uri (git-reference @@ -52,8 +53,8 @@ (file-name (git-file-name name version)) (sha256 (base32 - "0gjg4wy5jlv1mvaf49w6dwpqix6yhcipwdq5zvmm7z8jrrfzj6jm")))) - (build-system meson-build-system) + "0fdbzxanmmzrvb9wfzg1pdsnlg7dl6v5k8bl44w10n48s7bbbzn0")))) + (build-system qt-build-system) (arguments (list #:tests? #f @@ -69,13 +70,98 @@ (search-input-file inputs (string-append "/bin/" cmd))) (("\\<(hyprctl-share-picker)\\>" _ cmd) (string-append #$output "/bin/" cmd)))))))) - (native-inputs (list gcc-13 pkg-config wayland)) - (inputs (list bash-minimal grim hyprland hyprland-protocols mesa pipewire qtbase-5 sdbus-c++ slurp wayland-protocols)) + (native-inputs (list gcc-13 pkg-config wayland hyprlang)) + (inputs (list bash-minimal grim hyprland hyprland-protocols mesa pipewire qtbase-5 sdbus-c++ slurp wayland-protocols qtwayland-5)) (home-page "") (synopsis "test") (description "test") (license license:bsd-3))) +(define-public xdg-desktop-portal-hyprland-old + (package + (name "xdg-desktop-portal-hyprland") + (version "1.2.4") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hyprwm/xdg-desktop-portal-hyprland") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1m82rrir2fg7h2cpch6wm3h1rkpnbh9pawlw1wdknw75mi6139r0")))) + (build-system meson-build-system) + (arguments + (list + #:modules + '((guix build utils) + (guix build meson-build-system) + ((guix build qt-build-system) #:prefix qt:)) + #:imported-modules + (append %meson-build-system-modules + %qt-build-system-modules) + #:tests? #f + #:configure-flags #~(list "-Dsystemd=disabled") + #:phases + ;; After building the portal, we need to build the share selector using qt + #~(modify-phases %standard-phases + (add-after 'install 'chdir + (lambda _ (chdir "../source/hyprland-share-picker/"))) + (add-after 'chdir 'check-setup + (assoc-ref qt:%standard-phases 'check-setup)) + (add-after 'check-setup 'qt-build + (lambda* (#:key inputs outputs #:allow-other-keys) + ((assoc-ref qt:%standard-phases 'build) + #:inputs inputs + #:outputs outputs + #:configure-flags '() + #:qtbase #$(this-package-native-input "qtbase-5")))) + (add-after 'qt-build 'qt-install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((share-picker (string-append (assoc-ref outputs "out") + "/bin"))) + (install-file "build/hyprland-share-picker" share-picker) + #t))) + (add-after 'qt-install 'qt-wrap + (assoc-ref qt:%standard-phases 'qt-wrap)) + (add-after 'qt-wrap 'dep-wrap + (lambda* (#:key inputs #:allow-other-keys) + (let ((hyprland-share-picker (string-append #$output "/bin/hyprland-share-picker"))) + (wrap-program hyprland-share-picker + `("PATH" suffix + ,(map (lambda (program) + (dirname (search-input-file + inputs (string-append "/bin/" program)))) + '("slurp")))))))))) + (native-inputs (list gcc-13 cmake pkg-config qtbase-5)) + (inputs (list elogind hyprland hyprland-protocols slurp pipewire wayland-protocols wayland libinih mesa sdbus-c++ qtwayland-5 `(,util-linux "lib"))) + (home-page "") + (synopsis "test") + (description "test") + (license license:bsd-3))) + +(define-public hyprlang + (package + (name "hyprlang") + (version "0.3.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hyprwm/hyprlang") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1sxr7whzjamjg9pcvpbxniwph5p3yy2qs87n91zqwb5y9z3gfd7m")))) + (build-system cmake-build-system) + (native-inputs + (list gcc-13)) + (home-page "") + (synopsis "test") + (description "test") + (license license:gpl3))) + + (define-public wl-mirror (package (name "wl-mirror") @@ -106,4 +192,4 @@ (description "mirror displays") (license license:expat))) -wl-mirror +xdg-desktop-portal-hyprland-ryan diff --git a/modules/ryan-packages/wm.scm b/modules/ryan-packages/wm.scm index 5dfbf54..8f3be42 100644 --- a/modules/ryan-packages/wm.scm +++ b/modules/ryan-packages/wm.scm @@ -1,11 +1,15 @@ (define-module (ryan-packages wm) + #:use-module ((guix licenses) #:prefix license:) #:use-module (guix download) #:use-module (guix packages) #:use-module (guix gexp) #:use-module (gnu packages) + #:use-module (guix build-system cmake) #:use-module (gnu packages python) #:use-module (gnu packages audio) #:use-module (gnu packages glib) + #:use-module (gnu packages freedesktop) + #:use-module (gnu packages pkg-config) #:use-module (gnu packages gtk) #:use-module (gnu packages llvm) #:use-module (gnu packages gcc) @@ -48,4 +52,3 @@ #:configure-flags #~(list "--wrap-mode=nodownload" "-Dexperimental=true"))) (inputs (modify-inputs (package-inputs waybar) (delete "gtkmm") (prepend gtkmm-ryan))))) ;(prepend python cava catch2 gtkmm))))) ;(native-inputs (modify-inputs (package-native-inputs waybar) (prepend gcc-13))))) -swaylock-effects-new