mirror of
https://github.com/js0ny/dotfiles.git
synced 2025-12-21 00:33:00 +00:00
patch GNOME
This commit is contained in:
parent
44faec0e2a
commit
33e215b2bf
10 changed files with 126 additions and 103 deletions
|
|
@ -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/*";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,4 +10,11 @@
|
|||
unzip
|
||||
zip
|
||||
];
|
||||
# Explicitly define default EDITOR
|
||||
programs.nano.enable = false;
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
viAlias = true;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
pciutils
|
||||
usbutils
|
||||
v4l-utils
|
||||
f2fs-tools
|
||||
];
|
||||
|
||||
programs.gpu-screen-recorder.enable = true;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -3,46 +3,42 @@
|
|||
config,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
home.packages = with pkgs; [
|
||||
}: 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
|
||||
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
|
||||
];
|
||||
]
|
||||
++ 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";
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
runtimeInputs = [pkgs.podman];
|
||||
|
||||
text = ''
|
||||
|
||||
IMAGE_TAG="${imageTag}"
|
||||
|
||||
if ! podman image exists "$IMAGE_TAG"; then
|
||||
echo "[pdf2zh] Pulling image $IMAGE_TAG ..."
|
||||
podman pull "$IMAGE_TAG"
|
||||
fi
|
||||
|
||||
PODMAN_ENV_ARGS=()
|
||||
CMD_ARGS=()
|
||||
|
||||
${
|
||||
if withEnv
|
||||
then ''
|
||||
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
|
||||
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
|
||||
|
||||
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+=("-e" "OPENROUTER_API_KEY=$API_KEY")
|
||||
|
||||
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 \
|
||||
-e OPENROUTER_API_KEY="$API_KEY" \
|
||||
"''${PODMAN_ENV_ARGS[@]}" \
|
||||
"$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
|
||||
|
||||
IMAGE_TAG="${imageTag}"
|
||||
|
||||
if ! command -v podman &> /dev/null; then
|
||||
echo "Error: podman is not installed or not in PATH." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! podman image exists "$IMAGE_TAG"; then
|
||||
echo "[pdf2zh] Pulling image $IMAGE_TAG ..."
|
||||
podman pull "$IMAGE_TAG"
|
||||
fi
|
||||
|
||||
exec podman run \
|
||||
--rm \
|
||||
-it \
|
||||
-p 7860:7860 \
|
||||
-v "$(pwd):/data" \
|
||||
-w /data \
|
||||
"$IMAGE_TAG" \
|
||||
pdf2zh-unwrapped \
|
||||
"''${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 {
|
||||
|
|
|
|||
|
|
@ -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" ""
|
||||
'';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -119,5 +119,9 @@
|
|||
VISUAL = "nvim";
|
||||
};
|
||||
|
||||
home.sessionPath = [
|
||||
"$HOME/.local/bin"
|
||||
];
|
||||
|
||||
home.stateVersion = "25.05";
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue