docs: def make_application_icon(exe_fpath, dry=True, props={}):
      r"""
      CommandLine:
          python -m utool.util_ubuntu --exec-make_application_icon --exe=cockatrice --icon=/home/joncrall/code/Cockatrice/cockatrice/resources/cockatrice.png
          python -m utool.util_ubuntu --exec-make_application_icon --exe=cockatrice --icon=/home/joncrall/code/Cockatrice/cockatrice/resources/cockatrice.png
          python -m utool.util_ubuntu --exec-make_application_icon --exe=/opt/zotero/zotero --icon=/opt/zotero/chrome/icons/default/main-window.ico
  
          python -m utool.util_ubuntu --exec-make_application_icon --exe "env WINEPREFIX="/home/joncrall/.wine" wine C:\\\\windows\\\\command\\\\start.exe /Unix /home/joncrall/.wine32-dotnet45/dosdevices/c:/users/Public/Desktop/Hearthstone.lnk" --path "/home/joncrall/.wine/dosdevices/c:/Program Files (x86)/Hearthstone"
          # Exec=env WINEPREFIX="/home/joncrall/.wine" wine /home/joncrall/.wine/drive_c/Program\ Files\ \(x86\)/Battle.net/Battle.net.exe
  
          --icon=/opt/zotero/chrome/icons/default/main-window.ico
  
          python -m utool.util_ubuntu --exec-make_application_icon --exe=/home/joncrall/code/build-ArenaTracker-Desktop_Qt_5_6_1_GCC_64bit-Debug
  
          update-desktop-database ~/.local/share/applications
  
  
      Example:
          >>> # DISABLE_DOCTEST
          >>> from utool.util_ubuntu import *  # NOQA
          >>> import utool as ut
          >>> exe_fpath = ut.get_argval('--exe', default='cockatrice')
          >>> icon = ut.get_argval('--icon', default=None)
          >>> dry = not ut.get_argflag(('--write', '-w'))
          >>> props = {'terminal': False, 'icon': icon}
          >>> result = make_application_icon(exe_fpath, dry, props)
          >>> print(result)
      """
      import utool as ut
      exe_fname_noext = splitext(basename(exe_fpath))[0]
      app_name = exe_fname_noext.replace('_', '-')
      nice_name = ' '.join(
          [word[0].upper() + word[1:].lower()
           for word in app_name.replace('-', ' ').split(' ')]
      )
      lines = [
          '[Desktop Entry]',
          'Name={nice_name}',
          'Exec={exe_fpath}',
      ]
  
      if 'mime_name' in props:
          lines += ['MimeType=application/x-{mime_name}']
  
      if 'icon' in props:
          lines += ['Icon={icon}']
  
      if props.get('path'):
          lines += ['Path={path}']
  
      # if props.get('comment'):
      #     lines += ['Path={comment}']
  
      lines += [
          'Terminal={terminal}',
          'Type=Application',
          'Categories=Utility;Application;',
          'Comment=Custom App',
      ]
      fmtdict = locals()
      fmtdict.update(props)
  
      prefix = ut.truepath('~/.local/share')
      app_codeblock = '\n'.join(lines).format(**fmtdict)
      app_dpath = join(prefix, 'applications')
      app_fpath = join(app_dpath, '{app_name}.desktop'.format(**locals()))
  
      print(app_codeblock)
      print('---')
      print(app_fpath)
      print('L___')
  
      if not dry:
          ut.writeto(app_fpath, app_codeblock, verbose=ut.NOT_QUIET, n=None)
          ut.cmd('update-desktop-database ~/.local/share/applications')