boolean isModified() {
    KeymapScheme selected = selector.getSelectedScheme();
    Keymap active = selected == null ? null : selected.getOriginal();
    if (!Objects.equals(active, KeymapManager.getInstance().getActiveKeymap())) return true;

    Iterator<Keymap> keymaps = getKeymaps().stream().sorted(KeymapManagerImplKt.getKeymapComparator()).iterator();
    Iterator<KeymapScheme> schemes = list.iterator();
    while (keymaps.hasNext() && schemes.hasNext()) {
      if (!Objects.equals(keymaps.next(), schemes.next().getCurrent())) return true;
    }
    return keymaps.hasNext() || schemes.hasNext();
  }
boolean isModified()