feat: extend ghostty shader, add shadps4 builds, update nix, homepage
Some checks failed
Flake checker / Build Nix targets (push) Has been cancelled
Some checks failed
Flake checker / Build Nix targets (push) Has been cancelled
This commit is contained in:
@@ -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;
|
||||||
# }
|
# }
|
||||||
# '');
|
# '');
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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
|
||||||
|
];
|
||||||
|
})
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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/"
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -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";
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user