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.fish.shellAliases = zoxideAliases;
|
||||||
programs.bash.shellAliases = zoxideAliases;
|
programs.bash.shellAliases = zoxideAliases;
|
||||||
programs.zsh.shellAliases = zoxideAliases;
|
programs.zsh.shellAliases = zoxideAliases;
|
||||||
|
home.sessionVariables._ZO_EXCLUDE_DIRS = "/sys/*:/nix/*:/dev/*:/tmp/*:/proc/*";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,4 +10,11 @@
|
||||||
unzip
|
unzip
|
||||||
zip
|
zip
|
||||||
];
|
];
|
||||||
|
# Explicitly define default EDITOR
|
||||||
|
programs.nano.enable = false;
|
||||||
|
programs.neovim = {
|
||||||
|
enable = true;
|
||||||
|
defaultEditor = true;
|
||||||
|
viAlias = true;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,9 +8,11 @@
|
||||||
gobject-introspection
|
gobject-introspection
|
||||||
];
|
];
|
||||||
environment.gnome.excludePackages = with pkgs; [
|
environment.gnome.excludePackages = with pkgs; [
|
||||||
evince
|
evince # Document Viewer (Legacy)
|
||||||
totem
|
totem # GNOME Videos (legacy)
|
||||||
papers
|
papers # Document Viewer
|
||||||
gtop
|
tour
|
||||||
|
baobab # Disk Usage Analyzer, use dust instead
|
||||||
|
epiphany # GNOME Web
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@
|
||||||
pciutils
|
pciutils
|
||||||
usbutils
|
usbutils
|
||||||
v4l-utils
|
v4l-utils
|
||||||
|
f2fs-tools
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.gpu-screen-recorder.enable = true;
|
programs.gpu-screen-recorder.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@
|
||||||
srm
|
srm
|
||||||
mediainfo
|
mediainfo
|
||||||
exiftool
|
exiftool
|
||||||
ddgr # DuckDuckGo CLI
|
ddgr
|
||||||
jujutsu
|
jujutsu
|
||||||
github-copilot-cli
|
github-copilot-cli
|
||||||
yt-dlp
|
yt-dlp
|
||||||
|
|
@ -67,6 +67,7 @@
|
||||||
unar
|
unar
|
||||||
trash-cli
|
trash-cli
|
||||||
aria2
|
aria2
|
||||||
|
gocryptfs
|
||||||
]
|
]
|
||||||
++ (
|
++ (
|
||||||
if pkgs.stdenv.isDarwin
|
if pkgs.stdenv.isDarwin
|
||||||
|
|
|
||||||
|
|
@ -3,46 +3,42 @@
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}: let
|
||||||
home.packages = with pkgs; [
|
extensions = with pkgs.gnomeExtensions; [
|
||||||
gnome-tweaks
|
# dash-to-dock
|
||||||
sushi
|
caffeine
|
||||||
dconf-editor
|
logo-menu
|
||||||
gnome-menus
|
kimpanel
|
||||||
showtime
|
appindicator
|
||||||
gobject-introspection
|
gsconnect
|
||||||
gnomeExtensions.dash-to-dock
|
clipboard-indicator
|
||||||
gnomeExtensions.caffeine
|
advanced-alttab-window-switcher
|
||||||
gnomeExtensions.logo-menu
|
resource-monitor
|
||||||
gnomeExtensions.kimpanel
|
lunar-calendar
|
||||||
gnomeExtensions.clipboard-indicator
|
|
||||||
gnomeExtensions.advanced-alttab-window-switcher
|
|
||||||
gnomeExtensions.paperwm
|
|
||||||
gnomeExtensions.blur-my-shell
|
|
||||||
gnomeExtensions.appindicator
|
|
||||||
gnomeExtensions.gsconnect
|
|
||||||
gnomeExtensions.resource-monitor
|
|
||||||
gnomeExtensions.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.enable = true;
|
||||||
programs.gnome-shell.extensions = [
|
programs.gnome-shell.extensions = let
|
||||||
# { package = pkgs.gnomeExtensions.dash-to-dock; }
|
extensionHelper = p: {
|
||||||
{package = pkgs.gnomeExtensions.caffeine;}
|
package = p;
|
||||||
{package = pkgs.gnomeExtensions.logo-menu;}
|
};
|
||||||
{package = pkgs.gnomeExtensions.kimpanel;}
|
in
|
||||||
{package = pkgs.gnomeExtensions.appindicator;}
|
map extensionHelper extensions;
|
||||||
{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;}
|
|
||||||
];
|
|
||||||
|
|
||||||
dconf.settings = {
|
dconf.settings = {
|
||||||
"org/gnome/desktop/interface" = {
|
"org/gnome/desktop/interface" = {
|
||||||
clock-show-seconds = true;
|
clock-show-seconds = true;
|
||||||
clock-show-weekday = true;
|
clock-show-weekday = true;
|
||||||
icon-theme = "${config.my.desktop.style.iconTheme.dark}";
|
|
||||||
accent-color = "pink";
|
accent-color = "pink";
|
||||||
show-battery-percentage = true;
|
show-battery-percentage = true;
|
||||||
};
|
};
|
||||||
|
|
@ -69,6 +65,10 @@
|
||||||
"Print"
|
"Print"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
"org/gnome/desktop/wm/preferences" = {
|
||||||
|
# Win + Right Mouse Button to Resize Window
|
||||||
|
resize-with-right-button = true;
|
||||||
|
};
|
||||||
"org/gnome/desktop/wm/keybindings" = {
|
"org/gnome/desktop/wm/keybindings" = {
|
||||||
activate-window-menu = ["<Alt>F3"];
|
activate-window-menu = ["<Alt>F3"];
|
||||||
show-desktop = ["<Super>d"];
|
show-desktop = ["<Super>d"];
|
||||||
|
|
@ -105,9 +105,9 @@
|
||||||
binding = "<Super>e";
|
binding = "<Super>e";
|
||||||
};
|
};
|
||||||
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom-1" = {
|
"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}";
|
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" = {
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom-2" = {
|
||||||
name = "Open Terminal via Ctrl-Alt-T";
|
name = "Open Terminal via Ctrl-Alt-T";
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@
|
||||||
"image/png"
|
"image/png"
|
||||||
"image/gif"
|
"image/gif"
|
||||||
"image/bmp"
|
"image/bmp"
|
||||||
"image/avif"
|
# "image/avif"
|
||||||
"image/webp"
|
"image/webp"
|
||||||
];
|
];
|
||||||
audio = [
|
audio = [
|
||||||
|
|
@ -74,6 +74,12 @@ in {
|
||||||
"application/vnd.openxmlformats-officedocument.wordprocessingml.document"
|
"application/vnd.openxmlformats-officedocument.wordprocessingml.document"
|
||||||
"application/vnd.openxmlformats-officedocument.presentationml.presentation"
|
"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:
|
# Audio:
|
||||||
# music: elisa: fully featured, good cjk support
|
# music: elisa: fully featured, good cjk support
|
||||||
# audio: mpv: simple and fast
|
# audio: mpv: simple and fast
|
||||||
|
|
|
||||||
|
|
@ -7,77 +7,78 @@
|
||||||
{pkgs, ...}: let
|
{pkgs, ...}: let
|
||||||
imageTag = "ghcr.io/pdfmathtranslate/pdfmathtranslate-next";
|
imageTag = "ghcr.io/pdfmathtranslate/pdfmathtranslate-next";
|
||||||
# version = "2.6.4";
|
# version = "2.6.4";
|
||||||
pdf2zhRunner = pkgs.writeShellScriptBin "pdf2zh" ''
|
mkPdf2zh = {
|
||||||
#!/usr/bin/env bash
|
name,
|
||||||
set -euo pipefail
|
withEnv,
|
||||||
|
}:
|
||||||
|
pkgs.writeShellApplication {
|
||||||
|
inherit name;
|
||||||
|
|
||||||
IMAGE_TAG="${imageTag}"
|
runtimeInputs = [pkgs.podman];
|
||||||
|
|
||||||
API_BASE="''${PDF2ZH_API_BASE:-https://openrouter.ai/api/v1}"
|
text = ''
|
||||||
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
|
|
||||||
|
|
||||||
if ! command -v podman &> /dev/null; then
|
IMAGE_TAG="${imageTag}"
|
||||||
echo "Error: podman is not installed or not in PATH." >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! podman image exists "$IMAGE_TAG"; then
|
if ! podman image exists "$IMAGE_TAG"; then
|
||||||
echo "[pdf2zh] Pulling image $IMAGE_TAG ..."
|
echo "[pdf2zh] Pulling image $IMAGE_TAG ..."
|
||||||
podman pull "$IMAGE_TAG"
|
podman pull "$IMAGE_TAG"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "[pdf2zh] Using Model: $MODEL"
|
PODMAN_ENV_ARGS=()
|
||||||
|
CMD_ARGS=()
|
||||||
|
|
||||||
exec podman run \
|
${
|
||||||
--rm \
|
if withEnv
|
||||||
-it \
|
then ''
|
||||||
-p 7860:7860 \
|
API_BASE="''${PDF2ZH_API_BASE:-https://openrouter.ai/api/v1}"
|
||||||
-v "$(pwd):/data" \
|
MODEL="''${PDF2ZH_MODEL:-google/gemini-2.5-flash}"
|
||||||
-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
|
|
||||||
|
|
||||||
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 "[pdf2zh] Using Model: $MODEL"
|
||||||
echo "Error: podman is not installed or not in PATH." >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! podman image exists "$IMAGE_TAG"; then
|
PODMAN_ENV_ARGS+=("-e" "OPENROUTER_API_KEY=$API_KEY")
|
||||||
echo "[pdf2zh] Pulling image $IMAGE_TAG ..."
|
|
||||||
podman pull "$IMAGE_TAG"
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec podman run \
|
CMD_ARGS+=(
|
||||||
--rm \
|
"--openaicompatible"
|
||||||
-it \
|
"--openai-compatible-model" "$MODEL"
|
||||||
-p 7860:7860 \
|
"--openai-compatible-base-url" "$API_BASE"
|
||||||
-v "$(pwd):/data" \
|
"--openai-compatible-api-key" "$API_KEY"
|
||||||
-w /data \
|
)
|
||||||
"$IMAGE_TAG" \
|
''
|
||||||
pdf2zh-unwrapped \
|
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";
|
descEn = "PDF scientific paper translation with preserved formats";
|
||||||
descZh = "基于 AI 完整保留排版的 PDF 文档全文双语翻译";
|
descZh = "基于 AI 完整保留排版的 PDF 文档全文双语翻译";
|
||||||
in {
|
in {
|
||||||
|
|
|
||||||
|
|
@ -181,6 +181,6 @@ in {
|
||||||
''
|
''
|
||||||
else
|
else
|
||||||
lib.hm.dag.entryAfter ["writeBoundary"] ''
|
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";
|
VISUAL = "nvim";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
home.sessionPath = [
|
||||||
|
"$HOME/.local/bin"
|
||||||
|
];
|
||||||
|
|
||||||
home.stateVersion = "25.05";
|
home.stateVersion = "25.05";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue