nix: Add goldendict-ng

This commit is contained in:
js0ny 2025-10-20 01:22:08 +01:00
parent a9d8bcb500
commit 5f1729caf4
6 changed files with 126 additions and 86 deletions

View file

@ -27,7 +27,8 @@
};
};
outputs = {
outputs =
{
self,
nixpkgs,
nix-flatpak,
@ -38,32 +39,36 @@
winboat,
caelestia-shell,
...
} @ inputs: let
}@inputs:
let
overlays = [
nur.overlays.default
(final: prev: {
winboat = winboat.packages.x86_64-linux.winboat;
})
];
forSystem = system:
forSystem =
system:
import nixpkgs {
inherit system overlays;
config.allowUnfree = true;
};
specialArgs = {inherit inputs;};
specialArgs = { inherit inputs; };
nixosHosts = [
"zp"
"zephyrus"
"nixvirt"
];
mkNixosSystem = hostname:
mkNixosSystem =
hostname:
nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
inherit specialArgs;
modules = [./hosts/${hostname}];
modules = [ ./hosts/${hostname} ];
};
in {
in
{
# This will automatically generate nixOS config for `nixosHosts'
# Include the module ./hosts/${hostname} by default.
nixosConfigurations = nixpkgs.lib.genAttrs nixosHosts mkNixosSystem;

View file

@ -2,7 +2,8 @@
config,
pkgs,
...
}: {
}:
{
security.pam.services.login.enableGnomeKeyring = true;
# Use latest kernel.
@ -83,7 +84,10 @@
# (/run/current-system/configuration.nix). This is useful in case you
# accidentally delete configuration.nix.
# system.copySystemConfiguration = true;
nix.settings.experimental-features = ["nix-command" "flakes"];
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
# Enable touchpad support (enabled default in most desktopManager).
services.libinput.enable = true;
@ -91,7 +95,12 @@
# Define a user account. Don't forget to set a password with passwd.
users.users.js0ny = {
isNormalUser = true;
extraGroups = ["wheel" "docker" "libvirtd" "dialout"]; # Enable sudo for the user.
extraGroups = [
"wheel"
"docker"
"libvirtd"
"dialout"
]; # Enable sudo for the user.
packages = with pkgs; [
tree
];

View file

@ -40,6 +40,7 @@
fish
zoxide
wakatime-cli
sdcv
# Langs
# lua luajit
lua51Packages.luarocks
@ -51,5 +52,6 @@
nushell
powershell
powershell-editor-services
package-version-server
];
}

View file

@ -1,6 +1,6 @@
{pkgs, ...}: {
home.packages = with pkgs;
[
{ pkgs, lib, ... }:
{
home.packages = with pkgs; [
kitty
ghostty
alacritty
@ -12,10 +12,13 @@
pcloud
telegram-desktop
steam
# Use Wayland for Jetbrains
(jetbrains.idea-ultimate.override {
vmopts = ''-Dawt.toolkit.name=WLToolkit'';})
vmopts = ''-Dawt.toolkit.name=WLToolkit'';
})
(jetbrains.rider.override {
vmopts = ''-Dawt.toolkit.name=WLToolkit'';})
vmopts = ''-Dawt.toolkit.name=WLToolkit'';
})
warp-terminal
# clash-verge-rev
haruna
@ -36,5 +39,36 @@
protonmail-bridge-gui
mpv
neovim-qt
goldendict-ng
];
xdg.desktopEntries = {
# Force wayland when running goldendict-ng
"io.github.xiaoyifang.goldendict_ng" = {
name = "GoldenDict-ng";
genericName = "Multiformat Dictionary";
comment = "A feature-rich dictionary lookup program";
icon = "goldendict";
type = "Application";
terminal = false;
categories = [
"Office"
"Dictionary"
"Education"
"Qt"
];
mimeType = [
"x-scheme-handler/goldendict"
"x-scheme-handler/dict"
];
exec = "env GOLDENDICT_FORCE_WAYLAND=1 ${pkgs.goldendict-ng}/bin/goldendict %u";
settings = {
"GenericName[zh_CN]" = "";
"Comment[zh_CN]" = "";
"Keywords" = "dict;dictionary";
"Keywords[zh_CN]" = "dict;dictionary;;";
"StartupWMClass" = "GoldenDict-ng";
};
};
};
}

View file

@ -1,9 +0,0 @@
{ pkgs }:
{
home.packages = with pkgs; [
sdcv
];
home.sessionVariables = {
STARDICT_DATA_DIR = "$HOME/.local/share/stardict/dic";
};
}

View file

@ -35,7 +35,6 @@ in
./programs/firefox.nix
./programs/distrobox.nix
./programs/mime.nix
./programs/sdcv.nix
./programs/zed-editor.nix
# ./programs/floorp.nix
../../modules/home/gnome-keyrings.nix