patch GNOME

This commit is contained in:
js0ny 2025-12-05 16:38:10 +00:00
parent 44faec0e2a
commit 33e215b2bf
10 changed files with 126 additions and 103 deletions

View file

@ -16,4 +16,5 @@ in {
programs.fish.shellAliases = zoxideAliases;
programs.bash.shellAliases = zoxideAliases;
programs.zsh.shellAliases = zoxideAliases;
home.sessionVariables._ZO_EXCLUDE_DIRS = "/sys/*:/nix/*:/dev/*:/tmp/*:/proc/*";
}

View file

@ -10,4 +10,11 @@
unzip
zip
];
# Explicitly define default EDITOR
programs.nano.enable = false;
programs.neovim = {
enable = true;
defaultEditor = true;
viAlias = true;
};
}

View file

@ -8,9 +8,11 @@
gobject-introspection
];
environment.gnome.excludePackages = with pkgs; [
evince
totem
papers
gtop
evince # Document Viewer (Legacy)
totem # GNOME Videos (legacy)
papers # Document Viewer
tour
baobab # Disk Usage Analyzer, use dust instead
epiphany # GNOME Web
];
}

View file

@ -11,6 +11,7 @@
pciutils
usbutils
v4l-utils
f2fs-tools
];
programs.gpu-screen-recorder.enable = true;

View file

@ -55,7 +55,7 @@
srm
mediainfo
exiftool
ddgr # DuckDuckGo CLI
ddgr
jujutsu
github-copilot-cli
yt-dlp
@ -67,6 +67,7 @@
unar
trash-cli
aria2
gocryptfs
]
++ (
if pkgs.stdenv.isDarwin

View file

@ -3,46 +3,42 @@
config,
lib,
...
}: {
home.packages = with pkgs; [
gnome-tweaks
sushi
dconf-editor
gnome-menus
showtime
gobject-introspection
gnomeExtensions.dash-to-dock
gnomeExtensions.caffeine
gnomeExtensions.logo-menu
gnomeExtensions.kimpanel
gnomeExtensions.clipboard-indicator
gnomeExtensions.advanced-alttab-window-switcher
gnomeExtensions.paperwm
gnomeExtensions.blur-my-shell
gnomeExtensions.appindicator
gnomeExtensions.gsconnect
gnomeExtensions.resource-monitor
gnomeExtensions.lunar-calendar
}: let
extensions = with pkgs.gnomeExtensions; [
# dash-to-dock
caffeine
logo-menu
kimpanel
appindicator
gsconnect
clipboard-indicator
advanced-alttab-window-switcher
resource-monitor
lunar-calendar
];
in {
home.packages = with pkgs;
[
gnome-tweaks
sushi
dconf-editor
gnome-menus
showtime
gobject-introspection
]
++ extensions;
programs.gnome-shell.enable = true;
programs.gnome-shell.extensions = [
# { package = pkgs.gnomeExtensions.dash-to-dock; }
{package = pkgs.gnomeExtensions.caffeine;}
{package = pkgs.gnomeExtensions.logo-menu;}
{package = pkgs.gnomeExtensions.kimpanel;}
{package = pkgs.gnomeExtensions.appindicator;}
{package = pkgs.gnomeExtensions.gsconnect;}
{package = pkgs.gnomeExtensions.clipboard-indicator;}
{package = pkgs.gnomeExtensions.advanced-alttab-window-switcher;}
{package = pkgs.gnomeExtensions.resource-monitor;}
{package = pkgs.gnomeExtensions.lunar-calendar;}
];
programs.gnome-shell.extensions = let
extensionHelper = p: {
package = p;
};
in
map extensionHelper extensions;
dconf.settings = {
"org/gnome/desktop/interface" = {
clock-show-seconds = true;
clock-show-weekday = true;
icon-theme = "${config.my.desktop.style.iconTheme.dark}";
accent-color = "pink";
show-battery-percentage = true;
};
@ -69,6 +65,10 @@
"Print"
];
};
"org/gnome/desktop/wm/preferences" = {
# Win + Right Mouse Button to Resize Window
resize-with-right-button = true;
};
"org/gnome/desktop/wm/keybindings" = {
activate-window-menu = ["<Alt>F3"];
show-desktop = ["<Super>d"];
@ -105,9 +105,9 @@
binding = "<Super>e";
};
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom-1" = {
name = "Open Terminal via Win-R";
name = "Open Terminal via Win-CR";
command = "${lib.getExe config.my.desktop.preferredApps.terminal.package}";
binding = "<Super>r";
binding = "<Super>Return";
};
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom-2" = {
name = "Open Terminal via Ctrl-Alt-T";

View file

@ -23,7 +23,7 @@
"image/png"
"image/gif"
"image/bmp"
"image/avif"
# "image/avif"
"image/webp"
];
audio = [
@ -74,6 +74,12 @@ in {
"application/vnd.openxmlformats-officedocument.wordprocessingml.document"
"application/vnd.openxmlformats-officedocument.presentationml.presentation"
]
// {
# NOTE:
# Gwenview cannot open avif images properly
# See: https://github.com/NixOS/nixpkgs/issues/351863
"image/avif" = "org.gnome.Loupe.desktop;mpv.desktop";
}
# Audio:
# music: elisa: fully featured, good cjk support
# audio: mpv: simple and fast

View file

@ -7,77 +7,78 @@
{pkgs, ...}: let
imageTag = "ghcr.io/pdfmathtranslate/pdfmathtranslate-next";
# version = "2.6.4";
pdf2zhRunner = pkgs.writeShellScriptBin "pdf2zh" ''
#!/usr/bin/env bash
set -euo pipefail
mkPdf2zh = {
name,
withEnv,
}:
pkgs.writeShellApplication {
inherit name;
IMAGE_TAG="${imageTag}"
runtimeInputs = [pkgs.podman];
API_BASE="''${PDF2ZH_API_BASE:-https://openrouter.ai/api/v1}"
MODEL="''${PDF2ZH_MODEL:-google/gemini-2.5-flash}"
if [[ -n "''${PDF2ZH_API_KEY:-}" ]]; then
API_KEY="$PDF2ZH_API_KEY"
elif [[ -n "''${OPENROUTER_API_KEY:-}" ]]; then
API_KEY="$OPENROUTER_API_KEY"
else
echo "Error: Neither OPENROUTER_API_KEY nor PDF2ZH_API_KEY is set." >&2
echo "Please export one of them explicitly or use a .env file helper." >&2
exit 1
fi
text = ''
if ! command -v podman &> /dev/null; then
echo "Error: podman is not installed or not in PATH." >&2
exit 1
fi
IMAGE_TAG="${imageTag}"
if ! podman image exists "$IMAGE_TAG"; then
echo "[pdf2zh] Pulling image $IMAGE_TAG ..."
podman pull "$IMAGE_TAG"
fi
if ! podman image exists "$IMAGE_TAG"; then
echo "[pdf2zh] Pulling image $IMAGE_TAG ..."
podman pull "$IMAGE_TAG"
fi
echo "[pdf2zh] Using Model: $MODEL"
PODMAN_ENV_ARGS=()
CMD_ARGS=()
exec podman run \
--rm \
-it \
-p 7860:7860 \
-v "$(pwd):/data" \
-w /data \
-e OPENROUTER_API_KEY="$API_KEY" \
"$IMAGE_TAG" \
pdf2zh \
--openaicompatible \
--openai-compatible-model "$MODEL" \
--openai-compatible-base-url "$API_BASE" \
--openai-compatible-api-key "$API_KEY" \
"$@"
'';
pdf2zhUnwrapped = pkgs.writeShellScriptBin "pdf2zh-unwrapped" ''
#!/usr/bin/env bash
set -euo pipefail
${
if withEnv
then ''
API_BASE="''${PDF2ZH_API_BASE:-https://openrouter.ai/api/v1}"
MODEL="''${PDF2ZH_MODEL:-google/gemini-2.5-flash}"
IMAGE_TAG="${imageTag}"
if [[ -n "''${PDF2ZH_API_KEY:-}" ]]; then
API_KEY="$PDF2ZH_API_KEY"
elif [[ -n "''${OPENROUTER_API_KEY:-}" ]]; then
API_KEY="$OPENROUTER_API_KEY"
else
echo "Error: Neither OPENROUTER_API_KEY nor PDF2ZH_API_KEY is set." >&2
echo "Please export one of them explicitly." >&2
exit 1
fi
if ! command -v podman &> /dev/null; then
echo "Error: podman is not installed or not in PATH." >&2
exit 1
fi
echo "[pdf2zh] Using Model: $MODEL"
if ! podman image exists "$IMAGE_TAG"; then
echo "[pdf2zh] Pulling image $IMAGE_TAG ..."
podman pull "$IMAGE_TAG"
fi
PODMAN_ENV_ARGS+=("-e" "OPENROUTER_API_KEY=$API_KEY")
exec podman run \
--rm \
-it \
-p 7860:7860 \
-v "$(pwd):/data" \
-w /data \
"$IMAGE_TAG" \
pdf2zh-unwrapped \
"$@"
'';
CMD_ARGS+=(
"--openaicompatible"
"--openai-compatible-model" "$MODEL"
"--openai-compatible-base-url" "$API_BASE"
"--openai-compatible-api-key" "$API_KEY"
)
''
else ""
}
exec podman run \
--rm \
-it \
-p 7860:7860 \
-v "$(pwd):/data" \
-w /data \
"''${PODMAN_ENV_ARGS[@]}" \
"$IMAGE_TAG" \
pdf2zh \
"''${CMD_ARGS[@]}" \
"$@"
'';
};
pdf2zhRunner = mkPdf2zh {
name = "pdf2zh";
withEnv = true;
};
pdf2zhUnwrapped = mkPdf2zh {
name = "pdf2zh-unwrapped";
withEnv = false;
};
descEn = "PDF scientific paper translation with preserved formats";
descZh = " AI PDF ";
in {

View file

@ -181,6 +181,6 @@ in {
''
else
lib.hm.dag.entryAfter ["writeBoundary"] ''
# ${pkgs.kdePackages.qttools}/bin/qdbus org.fcitx.Fcitx5 /controller org.fcitx.Fcitx.Controller1.SetConfig "fcitx://onfig/addon/rime/deploy" ""
# ${pkgs.kdePackages.qttools}/bin/qdbus org.fcitx.Fcitx5 /controller org.fcitx.Fcitx.Controller1.SetConfig "fcitx://config/addon/rime/deploy" ""
'';
}

View file

@ -119,5 +119,9 @@
VISUAL = "nvim";
};
home.sessionPath = [
"$HOME/.local/bin"
];
home.stateVersion = "25.05";
}