mirror of
https://github.com/elwrcl/copnix.git
synced 2026-10-31 06:18:03 +03:00
Compare commits
5
Commits
b3e875d876
...
de1da1007a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
de1da1007a | ||
|
|
cd010829e8 | ||
|
|
18cbfa9b74 | ||
|
|
73debe3b6c | ||
|
|
188ee1338c |
No files matched your search
@@ -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.
@@ -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";
|
||||||
|
|||||||
@@ -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,33 +4,55 @@
|
|||||||
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
|
||||||
accent = p.accent or p.base06;
|
# 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;
|
||||||
|
in
|
||||||
|
''
|
||||||
|
#root.root {
|
||||||
|
--frame-bg: ${p.base00};
|
||||||
|
--frame-fg: ${p.base05};
|
||||||
|
--toolbar-bg: ${p.base01};
|
||||||
|
--toolbar-fg: ${p.base05};
|
||||||
|
--popup-bg: ${p.base01};
|
||||||
|
--popup-fg: ${p.base05};
|
||||||
|
--s-accent: ${accent};
|
||||||
|
--nav-btn-active-shadow: inset 0 0 0 1px ${accent};
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-color=red] { --color: ${p.base08}; }
|
||||||
|
[data-color=orange] { --color: ${p.base09}; }
|
||||||
|
[data-color=yellow] { --color: ${p.base0A}; }
|
||||||
|
[data-color=green] { --color: ${p.base0B}; }
|
||||||
|
[data-color=cyan],
|
||||||
|
[data-color=turquoise] { --color: ${p.base0C}; }
|
||||||
|
[data-color=blue] { --color: ${p.base0D}; }
|
||||||
|
[data-color=purple] { --color: ${p.base0E}; }
|
||||||
|
[data-color=pink] { --color: color-mix(in oklab, white 25%, ${p.base0E}); }
|
||||||
|
[data-color=gray] { --color: ${p.base04}; }
|
||||||
|
'';
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
elars.sidechery.extraCss = ''
|
elars.sidechery.extraCss = ''
|
||||||
/* generated from elars.theme.palette */
|
/* generated from elars.theme.palette / paletteLight */
|
||||||
#root.root {
|
@media (prefers-color-scheme: dark) {
|
||||||
--frame-bg: ${p.base00};
|
${colors config.elars.theme.palette}
|
||||||
--toolbar-bg: ${p.base01};
|
}
|
||||||
--s-accent: ${accent};
|
|
||||||
|
|
||||||
--nav-btn-active-shadow: inset 0 0 0 1px ${accent};
|
@media (prefers-color-scheme: light) {
|
||||||
|
${colors config.elars.theme.paletteLight}
|
||||||
|
}
|
||||||
|
|
||||||
|
#root.root {
|
||||||
--nav-btn-len-margin: 2px;
|
--nav-btn-len-margin: 2px;
|
||||||
--tabs-border-radius: 0px;
|
--tabs-border-radius: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
[data-color=red] { --color: ${p.base08}; }
|
|
||||||
[data-color=orange] { --color: ${p.base09}; }
|
|
||||||
[data-color=yellow] { --color: ${p.base0A}; }
|
|
||||||
[data-color=green] { --color: ${p.base0B}; }
|
|
||||||
[data-color=cyan],
|
|
||||||
[data-color=turquoise] { --color: ${p.base0C}; }
|
|
||||||
[data-color=blue] { --color: ${p.base0D}; }
|
|
||||||
[data-color=purple] { --color: ${p.base0E}; }
|
|
||||||
[data-color=pink] { --color: color-mix(in oklab, white 25%, ${p.base0E}); }
|
|
||||||
[data-color=gray] { --color: ${p.base04}; }
|
|
||||||
|
|
||||||
.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
|
||||||
|
|||||||
Reference in new issue
Block a user