diff --git a/home/config/hypr/config.d/theme.conf b/home/config/hypr/config.d/theme.conf index 8917bd6..f42f464 100644 --- a/home/config/hypr/config.d/theme.conf +++ b/home/config/hypr/config.d/theme.conf @@ -35,6 +35,7 @@ plugin { hyprbars { bar_height = 24 + bar_part_of_window = true bar_color = $base_color col.text = $text_color bar_text_size = 9 @@ -50,7 +51,7 @@ plugin { decoration { rounding = $radius - drop_shadow = no + drop_shadow = yes blur { enabled = true diff --git a/home/config/hypr/config.d/workspaces.conf b/home/config/hypr/config.d/workspaces.conf index 408b05f..c25a0a8 100644 --- a/home/config/hypr/config.d/workspaces.conf +++ b/home/config/hypr/config.d/workspaces.conf @@ -49,16 +49,16 @@ bind = $mod SHIFT, 0, movetoworkspacesilent, 10 # Move to tab -bind = $mod CONTROL, 1, hy3:focustab, index, 01 -bind = $mod CONTROL, 2, hy3:focustab, index, 02 -bind = $mod CONTROL, 3, hy3:focustab, index, 03 -bind = $mod CONTROL, 4, hy3:focustab, index, 04 -bind = $mod CONTROL, 5, hy3:focustab, index, 05 -bind = $mod CONTROL, 6, hy3:focustab, index, 06 -bind = $mod CONTROL, 7, hy3:focustab, index, 07 -bind = $mod CONTROL, 8, hy3:focustab, index, 08 -bind = $mod CONTROL, 9, hy3:focustab, index, 09 -bind = $mod CONTROL, 0, hy3:focustab, index, 10 +bind = LALT, 1, hy3:focustab, index, 01 +bind = LALT, 2, hy3:focustab, index, 02 +bind = LALT, 3, hy3:focustab, index, 03 +bind = LALT, 4, hy3:focustab, index, 04 +bind = LALT, 5, hy3:focustab, index, 05 +bind = LALT, 6, hy3:focustab, index, 06 +bind = LALT, 7, hy3:focustab, index, 07 +bind = LALT, 8, hy3:focustab, index, 08 +bind = LALT, 9, hy3:focustab, index, 09 +bind = LALT, 0, hy3:focustab, index, 10 bindn = , mouse:272, hy3:focustab, mouse bindn = , mouse_down, hy3:focustab, l, require_hovered diff --git a/home/config/hypr/scripts.d/autostart.sh b/home/config/hypr/scripts.d/autostart.sh index 0b782b7..c101f8e 100755 --- a/home/config/hypr/scripts.d/autostart.sh +++ b/home/config/hypr/scripts.d/autostart.sh @@ -1,10 +1,10 @@ -#!/bin/bash +#!/bin/sh -waybar --config $HOME/.config/waybar/config.hypr --style $HOME/.config/waybar/style.hypr.css & +waybar --config $HOME/.config/waybar/config.hypr & nm-applet --indicator & -/usr/bin/gnome-keyring-daemon --foreground & +gnome-keyring-daemon --foreground & wl-clip-persist --clipboard both & gtk-launch discord & diff --git a/home/config/waybar/style.css b/home/config/waybar/style.css index 0d159fd..0783055 100644 --- a/home/config/waybar/style.css +++ b/home/config/waybar/style.css @@ -1,43 +1,32 @@ -* { - font-family: "JetBrains Mono", "Font Awesome 6 Pro", monospace; - font-size: 13.5px; - transition: none; - margin: 0; - padding: 0; -} +/** Base */ window#waybar { + font-family: "JetBrains Mono", "Font Awesome 6 Pro", monospace; + font-size: 13.5px; + color: #c7c6c3; background-color: transparent; } window#waybar > box { margin: 10px; margin-bottom: 0px; - padding: 0; - color: #c7c6c3; -} - -button { - border: none; - border-radius: 0; } .modules-left, .modules-right { - margin: 0; padding: 2px 0px; background-color: #14171d; border-radius: 4px; } +/** Workspaces */ + #workspaces { - padding: 0px 0px; + margin-left: 2px; } #workspaces button { all: initial; - box-shadow: inherit; - text-shadow: inherit; color: #c7c6c3; background-color: transparent; border-radius: 4px; @@ -58,6 +47,17 @@ button { background-color: #cc5c5c; } +/** Window */ + +window#waybar:not(.empty) #window { + padding: 0 10px; + border-left: 1px solid #4d4754; + color: #c7c6c3; + margin: 0 2px; +} + +/** Tray */ + #clock, #battery, #cpu, @@ -84,15 +84,12 @@ button { border: none; } -#window { - padding: 0 10px; - border-left: 1px solid #4d4754; - color: #c7c6c3; +#tray > .passive { + -gtk-icon-effect: dim; } -#window, -#workspaces { - margin: 0 4px; +#tray > .needs-attention { + -gtk-icon-effect: highlight; } #battery { @@ -141,10 +138,3 @@ button { color: #cc5c5c; } -#tray > .passive { - -gtk-icon-effect: dim; -} - -#tray > .needs-attention { - -gtk-icon-effect: highlight; -} diff --git a/home/home.scm b/home/home.scm index 77a927a..aa03ec0 100644 --- a/home/home.scm +++ b/home/home.scm @@ -28,63 +28,70 @@ (home-environment ;; Below is the list of packages that will show up in your ;; Home profile, unser ~/.guix-home/profile. - (packages (append (specifications->packages (list "xdg-utils" - "mako" - "vscodium" - "libnotify" + (packages (append (specifications->packages (list ; desktop programs + "gnome-keyring" + "gimp" + "ungoogled-chromium" + "librewolf" + "steam" + + ; terminal + "alacritty" + "kitty" + + ; desktop integration "i3-autotiling" "wofi" + "nm-tray" + "mako" + "grim" + "slurp" + + ; devtools "qrencode" "sassc" "binutils" + "make" + "nasm" + "node" + "pkg-config" + "python-pynvim" + "git" + "openssl" + + ; langs + "gcc-toolchain" "clang-toolchain" + "rust" "racket" + "python" + + ; social + "gajim" + "gajim-omemo" + "gajim-openpgp" + "element-desktop" + "weechat" + + ; multimedia "libreoffice" - "gnupg" "pavucontrol" - "bind:utils" - "syncthing" + "mpv" "imv" - "unzip" - "p7zip" - "curl" - "htop" - "curl" "zathura" "zathura-pdf-mupdf" - "gimp" - "weechat" - "mpv" - "git" - "pinentry" - "ungoogled-chromium" - "element-desktop" - "nm-tray" - "pfetch" - "acpi" - "brightnessctl" - "neofetch" - "python" - "make" - "tree" - "rlwrap" - "netcat" - "ripgrep" - "fd" - "nasm" - "wine-staging" - "winetricks" - "steam" - "node" - "ncurses" - "jq" - "rust" - "gcc-toolchain" - "openssl" - "pkg-config" - "tree-sitter-cli" + + ; shell "zsh-syntax-highlighting" - "python-pynvim")) + "tree-sitter-cli" + "neofetch" + "pfetch" + "fd" + + ; utilities + "syncthing" + "wine-staging" + "winetricks")) (list neovim-new easyeffects diff --git a/home/nix-channels b/home/nix-channels index c040488..811c0f6 100644 --- a/home/nix-channels +++ b/home/nix-channels @@ -1,3 +1,4 @@ https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager +https://github.com/nix-community/nixGL/archive/main.tar.gz nixgl https://nixos.org/channels/nixpkgs-unstable nixpkgs diff --git a/modules/freya/packages/wm.scm b/modules/freya/packages/wm.scm index f333fcb..0d355e4 100644 --- a/modules/freya/packages/wm.scm +++ b/modules/freya/packages/wm.scm @@ -12,6 +12,8 @@ #:use-module (gnu packages gl) #:use-module (gnu packages linux) #:use-module (gnu packages pciutils) + #:use-module (gnu packages image) + #:use-module (gnu packages glib) #:use-module (guix download) #:use-module (guix packages) #:use-module (guix gexp) @@ -39,6 +41,46 @@ (inputs (modify-inputs (package-inputs swaylock-effects) (delete "linux-pam"))))) +(define-public waybar-new + (package + (inherit waybar) + (name "waybar-new") + (version "0.10.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Alexays/Waybar") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "04xd61ycn1nisq1s5ch14zkbsjcfcy6n29nkjn68s2ribmws0iid")))) + (arguments + (list + #:configure-flags #~(list "--wrap-mode=nodownload" "-Dexperimental=true"))))) + + +(define cairo-for-hyprland + (package + (inherit cairo) + (name "cairo") + (version "1.18.0") + (source (origin + (method url-fetch) + (uri (string-append "https://cairographics.org/releases/cairo-" + version ".tar.xz")) + (sha256 + (base32 + "0r0by563s75xyzz0d0j1nmjqmdrk2x9agk7r57p3v8vqp4v0ffi4")))) + (build-system meson-build-system) + (arguments + (list #:tests? #f + #:glib-or-gtk? #t + #:configure-flags + #~(list "-Dspectre=disabled"))) + (outputs '("out")))) + + (define hwdata-for-hyprland (package (inherit hwdata) @@ -63,22 +105,6 @@ "0yijzgg6rdsa68bz03sw0lcfa2nclv9m3as1cja50wkcyxim7x9v")))))) -(define wayland-protocols-new - (package - (inherit wayland-protocols) - (name "wayland-protocols") - (version "1.36") - (source (origin - (method url-fetch) - (uri (string-append - "https://gitlab.freedesktop.org/wayland/wayland-protocols" - "/-/releases/" version "/downloads/" - "wayland-protocols-" version ".tar.xz")) - (sha256 - (base32 - "14kyxywpfkgpjpkrybs28q1s2prnz30k1b4zap5a3ybrbvh4vzbi")))))) - - (define hyprland-unbundle-wlroots-patch (origin (method url-fetch) @@ -141,25 +167,6 @@ (replace "hwdata" `(,hwdata-for-hyprland "out"))))))) -(define-public hyprland-new - (package - (inherit hyprland) - (version "0.40.0") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/hyprwm/Hyprland" - "/releases/download/v" version - "/source-v" version ".tar.gz")) - (patches (list hyprland-unbundle-wlroots-patch)) - (sha256 - (base32 - "0f4hs8qzmfmg4lr491b2inanb02xn4xa0gwb8a0ks3m64iwzx589")))) - (inputs - (modify-inputs - (package-inputs hyprland) - (append tomlplusplus))))) - - (define-public hyprland-plugin-hy3 (package (name "hyprland-plugin-hy3") @@ -183,10 +190,10 @@ pango gcc-13 libinput - hyprland-new hyprland-protocols hyprwayland-scanner hyprlang + hyprland wayland wlroots-for-hyprland)) (license license:gpl3) @@ -224,10 +231,10 @@ (list pango gcc-13 libinput - hyprland-new hyprland-protocols hyprwayland-scanner hyprlang + hyprland wayland wlroots-for-hyprland)) (license license:bsd-3) @@ -253,25 +260,99 @@ (base32 "19cg8vj4sgz5pxib9m08af1lilay9bckjhlr6h333s014l7y09sw")))) (build-system cmake-build-system) (arguments - `(#:tests? #f)) + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-egl + (lambda _ + (substitute* (list "src/core/Egl.hpp" + "src/renderer/DMAFrame.cpp") + (("#include " include) + (string-append include "\n#include \n"))) + #t))))) (native-inputs (list gcc-13 pkg-config - mesa-headers - wayland)) + mesa-headers)) (inputs - (list cairo + (list cairo-for-hyprland pango libxkbcommon hyprlang mesa - wayland-protocols - linux-pam)) - (propagated-inputs - (list libdrm + wayland-protocols-for-hyprland + wlroots-for-hyprland + linux-pam + libdrm-for-hyprland libglvnd)) (home-page "https://github.com/hyprwm/hyprlock") (license license:bsd-3) (synopsis "Screen locker for Hyprland") (description "Screen locker for hyprland.")))) + +(define-public hyprpaper + (package + (name "hyprpaper") + (version "0.7.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/hyprwm/hyprpaper" + "/archive/refs/tags/v" version ".tar.gz")) + (sha256 + (base32 + "1d23nsj5hzyxwvhkg9a7x1b8jgyqwzad91zb1894jnxr2d844h28")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f)) + (native-inputs + (list gcc-13 + pkg-config)) + (inputs + (list hyprlang + wayland-protocols-for-hyprland + wayland + cairo-for-hyprland + libjpeg-turbo + libwebp + mesa + pango + libglvnd)) + (home-page "https://github.com/hyprwm/hyprpaper") + (license license:bsd-3) + (synopsis "Hyprpaper is a blazing fast wayland wallpaper utility with IPC controls.") + (description "Hyprpaper is a blazing fast wayland wallpaper utility with IPC controls."))) + + +(define-public hypridle + (package + (name "hypridle") + (version "0.1.2") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/hyprwm/hypridle" + "/archive/refs/tags/v" version ".tar.gz")) + (sha256 + (base32 + "0ybwip7yq9q569naz5bnrvcdz99648c4pln2zi30z21y333hpas0")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f)) + (native-inputs + (list gcc-13 + pkg-config)) + (inputs + (list hyprlang + wayland-protocols-for-hyprland + wayland + sdbus-c++)) + (home-page "https://github.com/hyprwm/hypridle") + (license license:bsd-3) + (synopsis "Hyprland's idle daemon ") + (description "Hyprland's idle daemon "))) + + + + + + diff --git a/modules/freya/system.scm b/modules/freya/system.scm index 6ff5d19..1432b5a 100644 --- a/modules/freya/system.scm +++ b/modules/freya/system.scm @@ -51,7 +51,9 @@ (define-public base-operating-system (operating-system (kernel linux) - (firmware (list linux-firmware amd-microcode sof-firmware)) + (firmware (list linux-firmware + amd-microcode + sof-firmware)) (locale "en_US.utf8") (timezone "America/New_York") (keyboard-layout (keyboard-layout "us")) @@ -64,78 +66,120 @@ (group "users") (home-directory "/home/freya") (shell (file-append zsh "/bin/zsh")) - (supplementary-groups '("wheel" "audio" "lp" "docker" "plugdev" "libvirt" "kvm" "netdev" "video" "tty"))) + (supplementary-groups '("wheel" + "audio" + "lp" + "docker" + "plugdev" + "libvirt" + "kvm" + "netdev" + "video" + "tty"))) %base-user-accounts)) - (packages (append (map specification->package (list "swayfx" - "swaybg" - "wlogout" - "cage" - "sof-firmware" - "amd-microcode" - "alsa-utils" - "chrony" - "swayidle" - "dconf" - "alacritty" - "kitty" - "gnome-themes-extra" - "adwaita-icon-theme" - "hicolor-icon-theme" - "git" - "gvfs" - "gnupg" - "light" - "waybar" - "avahi" - "mako" - "grim" - "slurp" - "wl-clipboard" - "bluez" - "blueman" - "opendoas" - "wireguard-tools" - "xdg-desktop-portal" - "xdg-desktop-portal-wlr" - "xdg-desktop-portal-hyprland" - "v4l2loopback-linux-module" - "docker" - "linux-pam" - "pulseaudio" - "libx11" - "xorg-server-xwayland" - "fprintd" - "wireplumber" - "qemu" - "spice" - "xf86-video-qxl" - "zsh" - "mesa" - "mesa-utils" - "glu" - "vulkan-loader" - "vulkan-validationlayers" - "vulkan-tools" - "vulkan-headers" - "spirv-tools" - "spirv-headers" - "sdl2" - "openal" - "freealut" - "wxwidgets" - "libpcap" - "v4l2loopback-linux-module" - "neovim" - "gtk+" - "font-jetbrains-mono")) + (packages (append (specifications->packages (list ; desktop + "swayfx" + "swaybg" + "swayidle" + "hyprland" + "cage" + "libnotify" + + ; gtk + "wxwidgets" + "gtk+" + "dconf" + "gnome-themes-extra" + "adwaita-icon-theme" + "hicolor-icon-theme" + + ; wayland x11 + "wl-clipboard" + "libx11" + "xorg-server-xwayland" + "xf86-video-qxl" + + ; video audio + "mesa" + "mesa-utils" + "glu" + "libglvnd" + "vulkan-loader" + "vulkan-validationlayers" + "vulkan-tools" + "vulkan-headers" + "spirv-tools" + "spirv-headers" + "sdl2" + "openal" + "freealut" + + ; xdg + "xdg-utils" + "xdg-desktop-portal" + "xdg-desktop-portal-wlr" + "xdg-desktop-portal-hyprland" + + ; firmware + "sof-firmware" + "amd-microcode" + "v4l2loopback-linux-module" + + ; needed programs + "qemu" + "pulseaudio" + "alsa-utils" + "neovim" + + ; basic utils + "curl" + "htop" + "git" + "zsh" + "opendoas" + "linux-pam" + "bind:utils" + "unzip" + "p7zip" + "acpi" + "tree" + "rlwrap" + "netcat" + "ripgrep" + "ncurses" + "jq" + "openssl" + + ; system daemons + "chrony" + "docker" + "avahi" + "gnupg" + "pinentry" + "light" + "brightnessctl" + "bluez" + "blueman" + "wireguard-tools" + "fprintd" + "wireplumber" + "libpcap" + + ; fonts + "font-fira-mono" + "font-google-noto-sans-cjk" + "font-jetbrains-mono" + "font-dejavu")) (list swaylock-effects-new + waybar-new virt-manager-new freya-ca-certs - hyprland-new hyprland-plugin-hy3 hyprland-plugin-hyprbars - hyprlock) + hyprlock + hyprpaper + hypridle) %my-base-packages)) ;; Below is the list of system services. TO search for available