feat: extend ghostty shader, add shadps4 builds, update nix, homepage
Some checks failed
Flake checker / Build Nix targets (push) Has been cancelled

This commit is contained in:
2026-01-21 20:21:25 +05:30
parent 3beb85c474
commit 230547eb92
6 changed files with 167 additions and 12 deletions

View File

@@ -22,13 +22,51 @@
# glsl # glsl
# */ # */
# '' # ''
# const float CURSOR_ANIMATION_SPEED = 150.0; // ms
# const float TRAILING_CURSORS = 3.0;
# bool at_pos(vec2 fragCoord, vec2 pos, vec2 size) {
# return (pos.x <= fragCoord.x && fragCoord.x <= pos.x + size.x &&
# pos.y - size.y <= fragCoord.y && fragCoord.y <= pos.y);
# }
# void mainImage(out vec4 fragColor, in vec2 fragCoord) { # void mainImage(out vec4 fragColor, in vec2 fragCoord) {
# // Normalized pixel coordinates (from 0 to 1)
# vec2 uv = fragCoord / iResolution.xy; # vec2 uv = fragCoord / iResolution.xy;
# vec3 col = vec3(0.0); # vec2 current_cursor = iCurrentCursor.xy;
# col.r = 0.1 + 0.9 * uv.x; # vec2 previous_cursor = iPreviousCursor.xy;
# col.g = 0.1 + 0.9 * uv.y; # float time_passed = (iTime - iTimeCursorChange) * 1000.0; // in ms
# col.b = 0.2; #
# fragColor = vec4(col, 1.0); # if (time_passed > CURSOR_ANIMATION_SPEED) {
# // No animation, just render normally
# fragColor = texture(iChannel0, uv);
# return;
# }
# // Animate cursor meovement
# vec4 col = texture(iChannel0, uv);
# // linear interpolation between current and previous cursor position based on time passed
# vec2 animated_cursor_pos = mix(previous_cursor, current_cursor, time_passed / CURSOR_ANIMATION_SPEED);
# // make 3 trailing cursors for smoother animation
# for (int i = 1; i <= int(TRAILING_CURSORS); i++) {
# float t = float(i) / TRAILING_CURSORS;
# vec2 trail_pos = mix(previous_cursor, current_cursor, (time_passed / CURSOR_ANIMATION_SPEED) * t);
# if (at_pos(fragCoord, trail_pos, iCurrentCursor.zw)) {
# col = mix(col, iCurrentCursorColor, t);
# }
# }
#
# // vec4 cursor_color = mix(iPreviousCursorColor, iCurrentCursorColor, time_passed / CURSOR_ANIMATION_SPEED);
# vec4 cursor_color = iCurrentCursorColor; // no color animation for now
# vec2 cursor_size = iCurrentCursor.zw;
# // check if fragCoord is within the animated cursor rectangle
# // y is in the negative direction
# // if (animated_cursor_pos.x <= fragCoord.x && fragCoord.x <= animated_cursor_pos.x + cursor_size.x &&
# // animated_cursor_pos.y - cursor_size.y <= fragCoord.y && fragCoord.y <= animated_cursor_pos.y) {
# // col = cursor_color;
# // }
# if (at_pos(fragCoord, animated_cursor_pos, cursor_size)) {
# col = cursor_color;
# }
#
# fragColor = col;
# } # }
# ''); # '');
}; };

View File

@@ -2,12 +2,122 @@
pkgs, pkgs,
lib, lib,
... ...
}: { }: let
shadps4_qtlauncher = pkgs.fetchFromGitHub {
owner = "shadps4-emu";
repo = "shadps4-qtlauncher";
rev = "1f4e59f6110d5f991cead5a3e9f72671fced2c70";
sha256 = "sha256-AAxj3Eqp7iGJgRgJki/93fln5Z6ae8AydJLGZ6Dbb00=";
fetchSubmodules = true;
};
# diegolixShadps4 = pkgs.fetchFromGitHub {
# owner = "diegolix";
# repo = "shadps4-qtlauncher";
# rev = "a1b2c3d4e5f67890123456789abcdef01234567";
# sha256 = "sha256-PLACEHOLDERFORHASHVALUE1234567890ABCDEFGH=";
# fetchSubmodules = true;
# };
bblauncher = pkgs.fetchFromGitHub {
owner = "rainmakerv3";
repo = "BB_Launcher";
rev = "2280c90974d2d741ce927dfc88f0ecf98c8bd2df";
sha256 = "sha256-jPcIQp2EBAEiaTLvC/OBH0BgcfYv3zo2H7akHJSlPaI=";
fetchSubmodules = true;
};
in {
home.packages = lib.optionals pkgs.stdenv.isLinux [ home.packages = lib.optionals pkgs.stdenv.isLinux [
(pkgs.shadps4.overrideAttrs (pkgs.shadps4.overrideAttrs
(oldAttrs: { (oldAttrs: {
nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [pkgs.cudatoolkit]; nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [pkgs.cudatoolkit];
buildInputs = oldAttrs.buildInputs ++ [pkgs.cudatoolkit]; buildInputs = oldAttrs.buildInputs ++ [pkgs.cudatoolkit];
})) }))
(pkgs.stdenv.mkDerivation {
pname = "shadps4-qt";
version = "1.0.0";
src = shadps4_qtlauncher;
nativeBuildInputs = [
pkgs.cmake
pkgs.pkg-config
pkgs.qt6.wrapQtAppsHook
];
buildInputs = [
pkgs.alsa-lib
pkgs.ffmpeg
pkgs.fmt
pkgs.glslang
pkgs.jack2
pkgs.libedit
pkgs.libevdev
pkgs.libpng
pkgs.libpulseaudio
pkgs.libxkbcommon
pkgs.openal
pkgs.openssl
pkgs.qt6.qtbase
pkgs.qt6.qtmultimedia
pkgs.qt6.qttools
pkgs.qt6.qtwayland
pkgs.SDL2
pkgs.sdl3
pkgs.sndio
pkgs.stb
pkgs.udev
pkgs.vulkan-headers
pkgs.vulkan-tools
pkgs.vulkan-utility-libraries
pkgs.wayland
pkgs.wayland-protocols
pkgs.xorg.libxcb
pkgs.xorg.xcbutil
pkgs.xorg.xcbutilkeysyms
pkgs.xorg.xcbutilwm
pkgs.zlib
];
})
(pkgs.stdenv.mkDerivation {
pname = "BBLauncher";
version = "1.0.0";
src = bblauncher;
nativeBuildInputs = [
pkgs.cmake
pkgs.pkg-config
pkgs.qt6.wrapQtAppsHook
];
buildInputs = [
pkgs.alsa-lib
pkgs.ffmpeg
pkgs.fmt
pkgs.glslang
pkgs.jack2
pkgs.libedit
pkgs.libevdev
pkgs.libpng
pkgs.libpulseaudio
pkgs.libxkbcommon
pkgs.openal
pkgs.openssl
pkgs.qt6.qtbase
pkgs.qt6.qtmultimedia
pkgs.qt6.qttools
pkgs.qt6.qtwayland
pkgs.qt6.qtwebview
pkgs.SDL2
pkgs.sdl3
pkgs.sndio
pkgs.stb
pkgs.udev
pkgs.vulkan-headers
pkgs.vulkan-tools
pkgs.vulkan-utility-libraries
pkgs.wayland
pkgs.wayland-protocols
pkgs.xorg.libxcb
pkgs.xorg.xcbutil
pkgs.xorg.xcbutilkeysyms
pkgs.xorg.xcbutilwm
pkgs.zlib
];
})
]; ];
} }

View File

@@ -190,8 +190,8 @@
]; ];
bind = [ bind = [
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
"$mainMod, Return, exec, ${lib.getExe pkgs.wezterm}" "$mainMod, Return, exec, ${lib.getExe pkgs.kitty}"
"$mainModShift, Return, exec, ${lib.getExe pkgs.kitty}" "$mainModShift, Return, exec, ${lib.getExe pkgs.ghostty}"
# "$mainModShift, Return, exec, ${pkgs.foot}/bin/foot" # "$mainModShift, Return, exec, ${pkgs.foot}/bin/foot"
"$mainModShift, Q, killactive," "$mainModShift, Q, killactive,"
"$mainModShift, s, exec, ${lib.getExe pkgs.hyprshot} -m region -o ~/Pictures/Screenshots/" "$mainModShift, s, exec, ${lib.getExe pkgs.hyprshot} -m region -o ~/Pictures/Screenshots/"

View File

@@ -67,7 +67,7 @@
dates = "daily"; dates = "daily";
options = "--delete-older-than +5"; options = "--delete-older-than +5";
}; };
package = pkgs.nixVersions.latest; # deploy-rs doesn't work with nix >= 2.32 package = pkgs.nixVersions.nix_2_32; # deploy-rs doesn't work with nix >= 2.33
buildMachines = [ buildMachines = [
../../builders/tako.nix ../../builders/tako.nix
../../builders/shiro.nix ../../builders/shiro.nix

View File

@@ -65,7 +65,7 @@
dates = "daily"; dates = "daily";
options = "--delete-older-than 5d"; options = "--delete-older-than 5d";
}; };
package = pkgs.nixVersions.latest; # deploy-rs doesn't work with nix >= 2.32 package = pkgs.nixVersions.nix_2_32; # deploy-rs doesn't work with nix >= 2.32
distributedBuilds = true; distributedBuilds = true;
}; };

View File

@@ -59,7 +59,6 @@
siteMonitor = "https://deluge.tsuba.darksailor.dev"; siteMonitor = "https://deluge.tsuba.darksailor.dev";
}; };
} }
{ {
"Home Assistant" = { "Home Assistant" = {
icon = "home-assistant.png"; icon = "home-assistant.png";
@@ -68,6 +67,14 @@
siteMonitor = "https://home.darksailor.dev"; siteMonitor = "https://home.darksailor.dev";
}; };
} }
{
"Pi Hole" = {
icon = "pi-hole.png";
description = "Pi-hole: Network-wide Ad Blocker";
href = "https://pihole.darksailor.dev";
siteMonitor = "https://pihole.darksailor.dev";
};
}
]; ];
} }
{ {
@@ -99,7 +106,7 @@
{ {
"Excalidraw" = { "Excalidraw" = {
icon = "excalidraw.png"; icon = "excalidraw.png";
description = "Excalidraw: Self-hosted Collaborative Whiteboard"; description = "Excalidraw: Self-hosted Whiteboard";
href = "https://draw.darksailor.dev"; href = "https://draw.darksailor.dev";
siteMonitor = "https://draw.darksailor.dev"; siteMonitor = "https://draw.darksailor.dev";
}; };