docs: def get_user_config_filename(appname='notify'):
      """
      Get user config filename.
  
      It will return operating system dependent config filename.
  
      Parameters
      ----------
      appname : string
          An application name used for filename
  
      Returns
      -------
      string
          A filename of user configuration.
  
      """
      import platform
      system = platform.system()
      if system == 'Windows':
          rootname = os.path.join(os.environ['APPDATA'], appname)
          filename = appname + ".cfg"
          prefix = ''
      elif system == 'Linux':
          XDG_CONFIG_HOME = os.environ.get('XDG_CONFIG_HOME', None)
          rootname = XDG_CONFIG_HOME or os.path.join('~', '.config')
          rootname = os.path.expanduser(rootname)
          # check if XDG_CONFIG_HOME exists
          if not os.path.exists(rootname) and XDG_CONFIG_HOME is None:
              # XDG_CONFIG_HOME is not used
              rootname = os.path.expanduser('~')
              filename = appname + ".cfg"
              prefix = '.'
          else:
              rootname = os.path.join(rootname, appname)
              filename = appname + ".cfg"
              prefix = ''
      elif system == 'Darwin':
          rootname = os.path.expanduser('~')
          filename = appname + ".cfg"
          prefix = '.'
      else:
          # Unknown
          rootname = os.path.expanduser('~')
          filename = appname + ".cfg"
          prefix = ''
      return os.path.join(rootname, prefix + filename)