Because of a bug in Finder (not TotalFinder), I have to restart/relaunch Finder often to make the icons on the Desktop match the content of the ‘~/Desktop’ folder. Sometimes, new files don’t appear, sometimes, deleted files still have icons on the Desktop.
I understand why restarting Finder doesn’t automatically restart TotalFinder, this may cause infinite restart loops.
I made a script to fully automate restarting Finder and TotalFinder from the command line. It’s included below for anyone else having the same issue I do.
A much better and more convenient solution would be to have a ‘Restart TotalFinder’ entry in the menu bar next to the existing ‘Restart Finder’ entry.
#!/usr/local/bin/python2.7 # -*- coding: utf-8 -*- # standard packages import os import signal import sys # non-standard packages which may need to be installed try: import psutil except ImportError: print("psutil not installed, do it by running:") print("pip install psutil") sys.exit(1) def killall_wait(match_string): # get list of process whose info contain 'match_string' cmd = os.popen("ps ax | grep " + match_string + " | grep -v grep") ps_lines = cmd.read().split("\n")[:-1] cmd.close() del cmd # extract pids pids = [int(ps_line.split()) for ps_line in ps_lines] del ps_lines # issue kill commands for pid in pids: os.kill(pid, signal.SIGKILL) # wait for kill commands to complete for pid in pids: while psutil.pid_exists(pid): pass if __name__ == "__main__": # kill all Finder related process (including TotalFinder if running) killall_wait("Finder") # Finder will automatically restart (fixing desktop as expected side effect), # we need to restart 'TotalFinder', not done automatically to avoid crashing # loop. os.popen("open /Applications/TotalFinder.app").close()