Compare commits

...
5 Commits
Author SHA1 Message Date
elwrcl de1da1007a disks 2026-10-16 16:15:38 +03:00
elwrcl cd010829e8 fm-actions 2026-10-16 16:15:38 +03:00
elwrcl 18cbfa9b74 helum 2026-10-16 16:15:22 +03:00
elwrcl 73debe3b6c drivers 2026-10-16 16:14:56 +03:00
elwrcl 188ee1338c davinci 2026-10-16 16:13:49 +03:00
10 changed files with 171 additions and 26 deletions

No files matched your search

+2 -2
View File
@@ -1,2 +1,2 @@
pocl 40a0f3c94206 gen7: report the GPU's real maximum clock (i915 gt_RP0_freq_mhz of the card with this PCI id) instead of a fixed 1000 MHz pocl f621e6b531a3 gen7: the recorder saves a program's source before building it, so a compiler crash still leaves it
libgbe 4db13eafb096 backend: keep the MAD bank conflict hint (any non-ternary use reset it, so both MAD sources landed in the same GRF bank: +28% float4 MAD throughput on IVB, 166 -> 212 GFLOPS); OCL_OUTPUT_KERNEL_STATS prints per-kernel SIMD width, spill strategy and code size libgbe c3af170fe1e9 backend: lock the clang stage of programNewFromSource like the other entry points (it resets and parses process-wide llvm::cl options, so two programs built at once raced); report a failed link with the builtin library as a build error instead of an empty, successful program
Binary file not shown.
Binary file not shown.
Binary file not shown.
-13
View File
@@ -46,19 +46,6 @@
]; ];
}; };
fileSystems."/mnt/HDD/ortak" = {
device = "/dev/disk/by-uuid/6F92430E6B0054D2";
fsType = "ntfs3";
options = [
"defaults"
"nofail"
"x-systemd.automount"
"uid=1000"
"gid=100"
"umask=022"
];
};
fileSystems."/boot" = { fileSystems."/boot" = {
device = "/dev/disk/by-uuid/1B3D-5A7D"; device = "/dev/disk/by-uuid/1B3D-5A7D";
fsType = "vfat"; fsType = "vfat";
@@ -88,7 +88,6 @@
extraFlags = [ "--load-extension=${sidechery-styled}" ]; extraFlags = [ "--load-extension=${sidechery-styled}" ];
preferences = { preferences = {
helium.browser.layout = 2;
extensions.commands."linux:Ctrl+S" = { extensions.commands."linux:Ctrl+S" = {
command_name = "_execute_action"; command_name = "_execute_action";
extension = "napehjbogfncaoogcckddbidjgcapclg"; extension = "napehjbogfncaoogcckddbidjgcapclg";
+3 -3
View File
@@ -62,10 +62,10 @@
preferences = { preferences = {
helium.browser = { helium.browser = {
zen_mode = true; zen_mode = true;
zen_mode_sidebar_pinned = true; zen_mode_sidebar_pinned = false;
zen_mode_top_chrome_pinned = true; zen_mode_top_chrome_pinned = true;
centered_location_bar = true; centered_location_bar = false;
minimal_location_bar = true; minimal_location_bar = false;
rounded_frame = false; rounded_frame = false;
new_tab_next_to_active = false; new_tab_next_to_active = false;
show_back_button = true; show_back_button = true;
@@ -35,6 +35,72 @@
} }
trap finish EXIT trap finish EXIT
stem() { printf '%s' "''${1%.*}"; } stem() { printf '%s' "''${1%.*}"; }
resolve_dnxhr() {
profile="$1"; shift
for f in "$@"; do
ffmpeg -nostdin -hide_banner -n -hwaccel auto -i "$f" \
-map 0:v:0 -map '0:a?' -fps_mode cfr \
-vf 'scale=trunc(iw/2)*2:trunc(ih/2)*2,format=yuv422p' \
-c:v dnxhd -profile:v "$profile" \
-c:a pcm_s24le -ar 48000 -ac 2 \
"$(stem "$f")-resolve.mov"
done
notify "ready for Resolve" "$# video(s), ''${profile#dnxhr_}"
}
vaapi_dev=/dev/dri/renderD128
h264_backend() {
if [ -e "$vaapi_dev" ] && ffmpeg -nostdin -v error \
-init_hw_device vaapi=va:"$vaapi_dev" -filter_hw_device va \
-f lavfi -i nullsrc=s=256x256 -vf format=nv12,hwupload \
-frames:v 1 -c:v h264_vaapi -f null - 2>/dev/null; then
echo vaapi
elif ffmpeg -nostdin -v error -f lavfi -i nullsrc=s=256x256 \
-frames:v 1 -c:v h264_nvenc -f null - 2>/dev/null; then
echo nvenc
else
echo cpu
fi
}
# $1 = hq | small | tiny, rest = files
export_h264() {
mode="$1"; shift
even='scale=trunc(iw/2)*2:trunc(ih/2)*2'
cap='scale=min(iw\,1920):min(ih\,1920):force_original_aspect_ratio=decrease:force_divisible_by=2'
case "$mode" in
hq) vf="$even" qp=20 cq=21 crf=19 preset=medium ab=192k ;;
small) vf="$cap" qp=26 cq=28 crf=24 preset=medium ab=160k ;;
tiny) vf="$cap" crf=24 preset=slow ab=128k ;;
esac
if [ "$mode" = tiny ]; then backend=cpu; else backend="$(h264_backend)"; fi
echo "[fm-actions] H.264 encoder: $backend"
for f in "$@"; do
out="$(stem "$f")-h264.mp4"
case "$backend" in
vaapi)
ffmpeg -nostdin -hide_banner -n \
-init_hw_device vaapi=va:"$vaapi_dev" -filter_hw_device va \
-i "$f" -map 0:v:0 -map '0:a?' \
-vf "$vf,format=nv12,hwupload" \
-c:v h264_vaapi -profile:v high -rc_mode CQP -qp "$qp" \
-c:a aac -b:a "$ab" -movflags +faststart "$out"
;;
nvenc)
ffmpeg -nostdin -hide_banner -n -i "$f" -map 0:v:0 -map '0:a?' \
-vf "$vf,format=yuv420p" \
-c:v h264_nvenc -preset p5 -rc vbr -cq "$cq" -b:v 0 \
-c:a aac -b:a "$ab" -movflags +faststart "$out"
;;
cpu)
ffmpeg -nostdin -hide_banner -n -i "$f" -map 0:v:0 -map '0:a?' \
-vf "$vf,format=yuv420p" \
-c:v libx264 -crf "$crf" -preset "$preset" \
-c:a aac -b:a "$ab" -movflags +faststart "$out"
;;
esac
done
notify "exported H.264 ($backend)" "$# video(s)"
}
require_count() { require_count() {
n="$1"; shift n="$1"; shift
if [ "$#" -ne "$n" ]; then if [ "$#" -ne "$n" ]; then
@@ -112,6 +178,19 @@
rm -f "$palette" rm -f "$palette"
done done
;; ;;
resolve-lb) resolve_dnxhr dnxhr_lb "$@" ;;
resolve-sq) resolve_dnxhr dnxhr_sq "$@" ;;
resolve-hq) resolve_dnxhr dnxhr_hq "$@" ;;
resolve-wav)
for f in "$@"; do
ffmpeg -nostdin -hide_banner -n -i "$f" -vn \
-c:a pcm_s24le -ar 48000 -ac 2 "$(stem "$f")-resolve.wav"
done
notify "ready for Resolve" "$# audio file(s)"
;;
h264-hq) export_h264 hq "$@" ;;
h264-small) export_h264 small "$@" ;;
h264-tiny) export_h264 tiny "$@" ;;
media-info) media-info)
for f in "$@"; do for f in "$@"; do
printf '\n=== %s ===\n' "$f" printf '\n=== %s ===\n' "$f"
@@ -290,6 +369,62 @@
]; ];
submenu = "Media"; submenu = "Media";
} }
{
id = "resolve-dnxhr-lb";
name = "for Resolve: DNxHR LB (small, fast)";
icon = "video-x-generic";
command = "ghostty -e ${fm} resolve-lb %F";
types = [ "video-files" ];
submenu = "Resolve";
}
{
id = "resolve-dnxhr-sq";
name = "for Resolve: DNxHR SQ (balanced)";
icon = "video-x-generic";
command = "ghostty -e ${fm} resolve-sq %F";
types = [ "video-files" ];
submenu = "Resolve";
}
{
id = "resolve-dnxhr-hq";
name = "for Resolve: DNxHR HQ (quality)";
icon = "video-x-generic";
command = "ghostty -e ${fm} resolve-hq %F";
types = [ "video-files" ];
submenu = "Resolve";
}
{
id = "resolve-audio-wav";
name = "for Resolve: audio to WAV (PCM)";
icon = "audio-x-generic";
command = "ghostty -e ${fm} resolve-wav %F";
types = [ "audio-files" ];
submenu = "Resolve";
}
{
id = "resolve-export-h264-hq";
name = "to H.264 MP4: GPU, quality";
icon = "video-x-generic";
command = "ghostty -e ${fm} h264-hq %F";
types = [ "video-files" ];
submenu = "Resolve";
}
{
id = "resolve-export-h264-small";
name = "to H.264 MP4: GPU, small (max 1080p)";
icon = "video-x-generic";
command = "ghostty -e ${fm} h264-small %F";
types = [ "video-files" ];
submenu = "Resolve";
}
{
id = "resolve-export-h264-tiny";
name = "to H.264 MP4: CPU, smallest (slow)";
icon = "video-x-generic";
command = "ghostty -e ${fm} h264-tiny %F";
types = [ "video-files" ];
submenu = "Resolve";
}
{ {
id = "pdf-to-images"; id = "pdf-to-images";
name = "render to PNG"; name = "render to PNG";
@@ -4,20 +4,25 @@
flake.homeModules.home-theme-sidechery = flake.homeModules.home-theme-sidechery =
{ config, ... }: { config, ... }:
let let
p = config.elars.theme.palette.withHashtag; # Colour variables for one palette. sidechery's sidebar follows the
# browser's light/dark mode, so each palette goes under its own
# prefers-color-scheme query.
colors =
palette:
let
p = palette.withHashtag;
accent = p.accent or p.base06; accent = p.accent or p.base06;
in in
{ ''
elars.sidechery.extraCss = ''
/* generated from elars.theme.palette */
#root.root { #root.root {
--frame-bg: ${p.base00}; --frame-bg: ${p.base00};
--frame-fg: ${p.base05};
--toolbar-bg: ${p.base01}; --toolbar-bg: ${p.base01};
--toolbar-fg: ${p.base05};
--popup-bg: ${p.base01};
--popup-fg: ${p.base05};
--s-accent: ${accent}; --s-accent: ${accent};
--nav-btn-active-shadow: inset 0 0 0 1px ${accent}; --nav-btn-active-shadow: inset 0 0 0 1px ${accent};
--nav-btn-len-margin: 2px;
--tabs-border-radius: 0px;
} }
[data-color=red] { --color: ${p.base08}; } [data-color=red] { --color: ${p.base08}; }
@@ -30,6 +35,23 @@
[data-color=purple] { --color: ${p.base0E}; } [data-color=purple] { --color: ${p.base0E}; }
[data-color=pink] { --color: color-mix(in oklab, white 25%, ${p.base0E}); } [data-color=pink] { --color: color-mix(in oklab, white 25%, ${p.base0E}); }
[data-color=gray] { --color: ${p.base04}; } [data-color=gray] { --color: ${p.base04}; }
'';
in
{
elars.sidechery.extraCss = ''
/* generated from elars.theme.palette / paletteLight */
@media (prefers-color-scheme: dark) {
${colors config.elars.theme.palette}
}
@media (prefers-color-scheme: light) {
${colors config.elars.theme.paletteLight}
}
#root.root {
--nav-btn-len-margin: 2px;
--tabs-border-radius: 0px;
}
.Tab[data-pin=false] .fav { .Tab[data-pin=false] .fav {
margin: 0 var(--tabs-inner-gap) 0 var(--tabs-inner-gap); margin: 0 var(--tabs-inner-gap) 0 var(--tabs-inner-gap);
@@ -12,6 +12,7 @@
# apps # apps
onlyoffice-desktopeditors onlyoffice-desktopeditors
telegram-desktop telegram-desktop
davinci-resolve
prismlauncher prismlauncher
gparted-full gparted-full
moonlight-qt moonlight-qt
@@ -20,6 +21,7 @@
spotifast spotifast
picotool picotool
sunshine sunshine
whatsie
loupe loupe
gimp gimp
wine wine