Skip to content
Permalink
Browse files
Add workaround for trash deletion bug
  • Loading branch information
joshua-stone committed Oct 24, 2020
1 parent 2d09336 commit f0cb1ef5472ceee6f3ab4b87da17f2b29bb12778
Showing with 43 additions and 0 deletions.
  1. +4 −0 md.obsidian.Obsidian.yml
  2. +39 −0 set-trash-behavior.py
@@ -24,6 +24,7 @@ modules:
- mkdir -p bin share/{appdata,applications,icons/hicolor/512x512/apps}
- mv md.obsidian.Obsidian.png share/icons/hicolor/512x512/apps/md.obsidian.Obsidian.png
- mv md.obsidian.Obsidian.desktop share/applications/md.obsidian.Obsidian.desktop
- mv set-trash-behavior.py bin/set-trash-behavior.py
- mv obsidian.sh bin/obsidian.sh
- mv md.obsidian.Obsidian.appdata.xml share/appdata/md.obsidian.Obsidian.appdata.xml
- cp -r * ${FLATPAK_DEST}
@@ -35,7 +36,10 @@ modules:
path: md.obsidian.Obsidian.desktop
- type: file
path: md.obsidian.Obsidian.appdata.xml
- type: file
path: set-trash-behavior.py
- type: script
dest-filename: obsidian.sh
commands:
- /app/bin/set-trash-behavior.py
- zypak-wrapper /app/obsidian $@
@@ -0,0 +1,39 @@
#!/usr/bin/env python3

# This script serves to work around an issue with folder deletion not behaving properly

import os
import sys
import json

try:
obsidian_config_home = os.environ['XDG_CONFIG_HOME']
obsidian_config = f'{obsidian_config_home}/obsidian/obsidian.json'

with open(obsidian_config, 'r') as f:
obsidian_data = json.loads(f.read())

vaults = obsidian_data['vaults']
except:
print('Could not get Obsidian config. Quitting now.')
sys.exit(0)

# Obsidian doesn't have a global trash preference, each vault has to be checked. This also means
# trash behavior has to be set for each new vault upon creation, or have Obsidian restart
for vault, vault_config in vaults.items():
try:
vault_path = vault_config['path']
vault_config = f'{vault_path}/.obsidian/config'

with open(vault_config, 'r') as f:
vault_data = json.loads(f.read())

if not 'trashOption' in vault_data or vault_data['trashOption'] == 'system':
vault_data['trashOption'] = 'local'

with open(vault_config, 'w') as outfile:
json.dump(vault_data, outfile, indent=2)

except:
print(f'Could not open/update vault \'{vault}\'')

0 comments on commit f0cb1ef

Please sign in to comment.