mirror of
https://github.com/js0ny/dotfiles.git
synced 2026-03-22 18:52:43 +00:00
feat(pcloud): fake home
This commit is contained in:
parent
1d5c363220
commit
b714297442
11 changed files with 176 additions and 73 deletions
|
|
@ -8,61 +8,6 @@
|
||||||
mergetools = import ../../../modules/lib/mergetools.nix {inherit pkgs lib config;};
|
mergetools = import ../../../modules/lib/mergetools.nix {inherit pkgs lib config;};
|
||||||
mkMergedJson = mergetools.mkMergedJson;
|
mkMergedJson = mergetools.mkMergedJson;
|
||||||
mkMergedIni = mergetools.mkMergedIni;
|
mkMergedIni = mergetools.mkMergedIni;
|
||||||
pdxrel = "${config.home.homeDirectory}/.local/share/Paradox Interactive";
|
|
||||||
# pdxbase = "${config.home.homeDirectory}/${pdxrel}";
|
|
||||||
euvbase = "${config.home.homeDirectory}/.local/share/Steam/steamapps/compatdata/3450310/pfx/drive_c/users/steamuser/Documents/Paradox Interactive/Europa Universalis V";
|
|
||||||
paradoxLauncherUserSettings = mkMergedJson {
|
|
||||||
name = "paradox-launcher-usersettings";
|
|
||||||
target = "${pdxrel}/launcher-v2/userSettings.json";
|
|
||||||
settings = {
|
|
||||||
"optionalTelemetryDisabled" = true;
|
|
||||||
"language" = "zh-hans";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
pdxSdkSettingsEU5 = mkMergedJson {
|
|
||||||
name = "pdxSdkaccountJsonEU5";
|
|
||||||
target = "${euvbase}/PDX/SDK/eu5/account.json";
|
|
||||||
settings = {
|
|
||||||
telemetryEnabled = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
# 经典 $HOME 下拉屎
|
|
||||||
pdxSdkSettingsV3 = mkMergedJson {
|
|
||||||
name = "pdxSdkaccountJsonV3";
|
|
||||||
target = "${config.home.homeDirectory}/PDX/SDK/victoria3/account.json";
|
|
||||||
settings = {
|
|
||||||
telemetryEnabled = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
pdxSdkTelemetryEU5 = mkMergedJson {
|
|
||||||
name = "pdxSdktelemetryConsentEU5";
|
|
||||||
target = "${euvbase}/PDX/SDK/eu5/telemetry_consent.json";
|
|
||||||
settings = {
|
|
||||||
telemetry_consent_choice = "denied";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
pdxSdkTelemetryV3 = mkMergedJson {
|
|
||||||
name = "pdxSdktelemetryConsentV3";
|
|
||||||
target = "${config.home.homeDirectory}/PDX/SDK/victoria3/telemetry_consent.json";
|
|
||||||
settings = {
|
|
||||||
telemetry_consent_choice = "denied";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
victoria3Settings = mkMergedJson {
|
|
||||||
name = "victoria3-settings";
|
|
||||||
target = "${pdxrel}/Victoria 3/pdx_settings.json";
|
|
||||||
settings = {
|
|
||||||
Account = {
|
|
||||||
telemetry_consent = false;
|
|
||||||
};
|
|
||||||
game = {
|
|
||||||
save_on_exit = true;
|
|
||||||
};
|
|
||||||
Theme = {
|
|
||||||
daynight_cycle = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
prismLauncherCfg = mkMergedIni {
|
prismLauncherCfg = mkMergedIni {
|
||||||
name = "prism-launcher-config";
|
name = "prism-launcher-config";
|
||||||
target = "${config.home.homeDirectory}/.local/share/PrismLauncher/prismlauncher.cfg";
|
target = "${config.home.homeDirectory}/.local/share/PrismLauncher/prismlauncher.cfg";
|
||||||
|
|
@ -120,20 +65,10 @@ in {
|
||||||
steamcmd
|
steamcmd
|
||||||
];
|
];
|
||||||
imports = [
|
imports = [
|
||||||
../programs/retroarch.nix
|
../programs/gaming/retroarch.nix
|
||||||
../programs/celeste
|
../programs/gaming/celeste
|
||||||
paradoxLauncherUserSettings
|
../programs/gaming/PDS
|
||||||
victoria3Settings
|
|
||||||
pdxSdkSettingsEU5
|
|
||||||
pdxSdkSettingsV3
|
|
||||||
pdxSdkTelemetryEU5
|
|
||||||
pdxSdkTelemetryV3
|
|
||||||
prismLauncherCfg
|
prismLauncherCfg
|
||||||
ryujinxConfig
|
ryujinxConfig
|
||||||
];
|
];
|
||||||
xdg.dataFile = {
|
|
||||||
"Paradox Interactive/launcherpath".text = ''
|
|
||||||
${config.home.homeDirectory}/.local/share/paradoxlauncher
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,6 @@ in {
|
||||||
# Terminal Emulator
|
# Terminal Emulator
|
||||||
kitty
|
kitty
|
||||||
alacritty
|
alacritty
|
||||||
warp-terminal
|
|
||||||
|
|
||||||
# PDF Viewer
|
# PDF Viewer
|
||||||
kdePackages.okular
|
kdePackages.okular
|
||||||
|
|
@ -83,7 +82,6 @@ in {
|
||||||
# Theming
|
# Theming
|
||||||
papirus-icon-theme
|
papirus-icon-theme
|
||||||
|
|
||||||
pcloud
|
|
||||||
nixpaks.qq
|
nixpaks.qq
|
||||||
nixpaks.termius
|
nixpaks.termius
|
||||||
signal-desktop
|
signal-desktop
|
||||||
|
|
@ -106,7 +104,6 @@ in {
|
||||||
onlyoffice-desktopeditors
|
onlyoffice-desktopeditors
|
||||||
# wayland-bongocat
|
# wayland-bongocat
|
||||||
kdePackages.qttools
|
kdePackages.qttools
|
||||||
nur.repos.forkprince.helium-nightly
|
|
||||||
obsidian
|
obsidian
|
||||||
file-roller
|
file-roller
|
||||||
dex
|
dex
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,7 @@ in {
|
||||||
W3M_DIR = "${xdg-state}/w3m";
|
W3M_DIR = "${xdg-state}/w3m";
|
||||||
WAKATIME_HOME = "${xdg-config}/wakatime"; # ~/.wakatime
|
WAKATIME_HOME = "${xdg-config}/wakatime"; # ~/.wakatime
|
||||||
WGETRC = "${xdg-config}/wget/wgetrc";
|
WGETRC = "${xdg-config}/wget/wgetrc";
|
||||||
|
WINEPREFIX = "${xdg-data}/wineprefixes/default";
|
||||||
};
|
};
|
||||||
xdg.configFile."npm/npmrc".text = ''
|
xdg.configFile."npm/npmrc".text = ''
|
||||||
prefix=${xdg-data}/npm
|
prefix=${xdg-data}/npm
|
||||||
|
|
@ -41,5 +42,6 @@ in {
|
||||||
'';
|
'';
|
||||||
systemd.user.tmpfiles.rules = [
|
systemd.user.tmpfiles.rules = [
|
||||||
"d ${xdg-config}/wakatime 0700 ${user} users -"
|
"d ${xdg-config}/wakatime 0700 ${user} users -"
|
||||||
|
"d ${xdg-data}/wineprefixes 0700 ${user} users -"
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,20 @@
|
||||||
{config, ...}: {
|
{config, ...}: let
|
||||||
|
cleanerPdxSaveData = name: path: {
|
||||||
|
inherit path;
|
||||||
|
olderThan = 30;
|
||||||
|
filesOnly = false;
|
||||||
|
recursive = false;
|
||||||
|
onCalendar = "weekly";
|
||||||
|
};
|
||||||
|
pdxrel = "${config.xdg.dataHome}/Paradox Interactive";
|
||||||
|
pdxSaveDataPaths = {
|
||||||
|
ck3 = "${pdxrel}/Crusader Kings III/save games/";
|
||||||
|
eu4 = "${pdxrel}/Europa Universalis IV/save games/";
|
||||||
|
hoi4 = "${pdxrel}/Hearts of Iron IV/save games/";
|
||||||
|
vicky3 = "${pdxrel}/Victoria 3/save games/";
|
||||||
|
eu5 = "${pdxrel}/Europa Universalis V/save games/";
|
||||||
|
};
|
||||||
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
./lib-cleaner.nix
|
./lib-cleaner.nix
|
||||||
];
|
];
|
||||||
|
|
@ -10,5 +26,9 @@
|
||||||
recursive = false;
|
recursive = false;
|
||||||
onCalendar = "weekly";
|
onCalendar = "weekly";
|
||||||
};
|
};
|
||||||
|
ck3-save-data = cleanerPdxSaveData "ck3" pdxSaveDataPaths.ck3;
|
||||||
|
eu4-save-data = cleanerPdxSaveData "eu4" pdxSaveDataPaths.eu4;
|
||||||
|
hoi4-save-data = cleanerPdxSaveData "hoi4" pdxSaveDataPaths.hoi4;
|
||||||
|
vicky3-save-data = cleanerPdxSaveData "vicky3" pdxSaveDataPaths.vicky3;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
108
nixcfgs/users/js0ny/programs/gaming/PDS/default.nix
Normal file
108
nixcfgs/users/js0ny/programs/gaming/PDS/default.nix
Normal file
|
|
@ -0,0 +1,108 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
mergetools = import ../../../../../modules/lib/mergetools.nix {inherit pkgs lib config;};
|
||||||
|
mkMergedJson = mergetools.mkMergedJson;
|
||||||
|
mkMergedIni = mergetools.mkMergedIni;
|
||||||
|
pdxrel = "${config.home.homeDirectory}/.local/share/Paradox Interactive";
|
||||||
|
# pdxbase = "${config.home.homeDirectory}/${pdxrel}";
|
||||||
|
euvbase = "${config.home.homeDirectory}/.local/share/Steam/steamapps/compatdata/3450310/pfx/drive_c/users/steamuser/Documents/Paradox Interactive/Europa Universalis V";
|
||||||
|
paradoxLauncherUserSettings = mkMergedJson {
|
||||||
|
name = "paradox-launcher-usersettings";
|
||||||
|
target = "${pdxrel}/launcher-v2/userSettings.json";
|
||||||
|
settings = {
|
||||||
|
"optionalTelemetryDisabled" = true;
|
||||||
|
"language" = "zh-hans";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
pdxSdkSettingsEU5 = mkMergedJson {
|
||||||
|
name = "pdxSdkaccountJsonEU5";
|
||||||
|
target = "${euvbase}/PDX/SDK/eu5/account.json";
|
||||||
|
settings = {
|
||||||
|
telemetryEnabled = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# 经典 $HOME 下拉屎
|
||||||
|
pdxSdkSettingsV3 = mkMergedJson {
|
||||||
|
name = "pdxSdkaccountJsonV3";
|
||||||
|
target = "${config.home.homeDirectory}/PDX/SDK/victoria3/account.json";
|
||||||
|
settings = {
|
||||||
|
telemetryEnabled = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
pdxSdkTelemetryEU5 = mkMergedJson {
|
||||||
|
name = "pdxSdktelemetryConsentEU5";
|
||||||
|
target = "${euvbase}/PDX/SDK/eu5/telemetry_consent.json";
|
||||||
|
settings = {
|
||||||
|
telemetry_consent_choice = "denied";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
pdxSdkTelemetryV3 = mkMergedJson {
|
||||||
|
name = "pdxSdktelemetryConsentV3";
|
||||||
|
target = "${config.home.homeDirectory}/PDX/SDK/victoria3/telemetry_consent.json";
|
||||||
|
settings = {
|
||||||
|
telemetry_consent_choice = "denied";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
victoria3Settings = mkMergedJson {
|
||||||
|
name = "victoria3-settings";
|
||||||
|
target = "${pdxrel}/Victoria 3/pdx_settings.json";
|
||||||
|
settings = {
|
||||||
|
Account = {
|
||||||
|
telemetry_consent = false;
|
||||||
|
};
|
||||||
|
game = {
|
||||||
|
save_on_exit = true;
|
||||||
|
};
|
||||||
|
Theme = {
|
||||||
|
daynight_cycle = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
cleanerPdxSaveData = name: path: {
|
||||||
|
inherit path;
|
||||||
|
olderThan = 30;
|
||||||
|
filesOnly = false;
|
||||||
|
recursive = false;
|
||||||
|
onCalendar = "weekly";
|
||||||
|
};
|
||||||
|
pdxSaveDataPaths = {
|
||||||
|
ck3 = "${pdxrel}/Crusader Kings III/save games/";
|
||||||
|
eu4 = "${pdxrel}/Europa Universalis IV/save games/";
|
||||||
|
hoi4 = "${pdxrel}/Hearts of Iron IV/save games/";
|
||||||
|
vicky3 = "${pdxrel}/Victoria 3/save games/";
|
||||||
|
eu5 = "${euvbase}/save games/";
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
imports = [
|
||||||
|
../../lib-cleaner.nix
|
||||||
|
paradoxLauncherUserSettings
|
||||||
|
victoria3Settings
|
||||||
|
pdxSdkSettingsEU5
|
||||||
|
pdxSdkSettingsV3
|
||||||
|
pdxSdkTelemetryEU5
|
||||||
|
pdxSdkTelemetryV3
|
||||||
|
];
|
||||||
|
xdg.dataFile = {
|
||||||
|
"Paradox Interactive/launcherpath".text = ''
|
||||||
|
${config.home.homeDirectory}/.local/share/paradoxlauncher
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
my.cleanup.jobs = {
|
||||||
|
vicky3-crash-reports = {
|
||||||
|
path = "${config.home.homeDirectory}/.local/share/Paradox Interactive/Victoria 3/crashes/";
|
||||||
|
olderThan = 7;
|
||||||
|
filesOnly = false;
|
||||||
|
recursive = false;
|
||||||
|
onCalendar = "weekly";
|
||||||
|
};
|
||||||
|
ck3-save-data = cleanerPdxSaveData "ck3" pdxSaveDataPaths.ck3;
|
||||||
|
eu4-save-data = cleanerPdxSaveData "eu4" pdxSaveDataPaths.eu4;
|
||||||
|
hoi4-save-data = cleanerPdxSaveData "hoi4" pdxSaveDataPaths.hoi4;
|
||||||
|
vicky3-save-data = cleanerPdxSaveData "vicky3" pdxSaveDataPaths.vicky3;
|
||||||
|
eu5-save-data = cleanerPdxSaveData "eu5" pdxSaveDataPaths.eu5;
|
||||||
|
};
|
||||||
|
}
|
||||||
41
nixcfgs/users/js0ny/programs/pcloud.nix
Normal file
41
nixcfgs/users/js0ny/programs/pcloud.nix
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
pcloudAntidots = pkgs.writeShellScriptBin "pcloud-antidots" ''
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
real_home="$HOME"
|
||||||
|
fake_home="$real_home/.sandbox/.per-app/pcloud"
|
||||||
|
|
||||||
|
mkdir -p \
|
||||||
|
"$fake_home" \
|
||||||
|
"$fake_home/.config" \
|
||||||
|
"$fake_home/.cache" \
|
||||||
|
"$fake_home/.local/share" \
|
||||||
|
"$fake_home/.local/state"
|
||||||
|
|
||||||
|
export HOME="$fake_home"
|
||||||
|
export XDG_CONFIG_HOME="$HOME/.config"
|
||||||
|
export XDG_CACHE_HOME="$HOME/.cache"
|
||||||
|
export XDG_DATA_HOME="$HOME/.local/share"
|
||||||
|
export XDG_STATE_HOME="$HOME/.local/state"
|
||||||
|
|
||||||
|
exec ${lib.getExe pkgs.pcloud} "$@"
|
||||||
|
'';
|
||||||
|
|
||||||
|
pcloudAntidotsDesktop = pkgs.makeDesktopItem {
|
||||||
|
name = "pcloud-antidots";
|
||||||
|
desktopName = "pCloud (Antidots)";
|
||||||
|
exec = "${lib.getExe pcloudAntidots}";
|
||||||
|
terminal = false;
|
||||||
|
categories = ["Network" "FileTransfer"];
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
home.packages = [
|
||||||
|
pkgs.pcloud
|
||||||
|
pcloudAntidots
|
||||||
|
pcloudAntidotsDesktop
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
@ -25,6 +25,7 @@ in {
|
||||||
|
|
||||||
./programs/antidots.nix
|
./programs/antidots.nix
|
||||||
./programs/sandboxed.nix
|
./programs/sandboxed.nix
|
||||||
|
./programs/pcloud.nix
|
||||||
|
|
||||||
# Shell
|
# Shell
|
||||||
./programs/shell/bash.nix
|
./programs/shell/bash.nix
|
||||||
|
|
@ -90,7 +91,6 @@ in {
|
||||||
./programs/dolphin.nix
|
./programs/dolphin.nix
|
||||||
./programs/magick.nix
|
./programs/magick.nix
|
||||||
./programs/miniserve.nix
|
./programs/miniserve.nix
|
||||||
./programs/retroarch.nix
|
|
||||||
./programs/edit-clipboard.nix
|
./programs/edit-clipboard.nix
|
||||||
./programs/aichat.nix
|
./programs/aichat.nix
|
||||||
./programs/wine.nix
|
./programs/wine.nix
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue