Заставить клавишу Backspace перейти в предыдущую папку в Finder

Есть ли способ изменить OSX так, чтобы он немного больше походил на Windows 7. В частности, я действительно хочу иметь возможность нажать BACKSPACE и Finder, чтобы показать предыдущую папку... точно так же, как Windows и Firefox.

Надеюсь, это понятно.

3 ответа

Решение

Хотя решение, предлагаемое barbaz, является приличным, на самом деле есть идеальное:), которое снимает ограничение, которое не позволяет использовать Backspace в текстовых полях в Finder (например, при переименовании файлов или вводе в поле поиска).).

  1. Установите потрясающее приложение Karabiner, которое позволит вам переназначить практически все, что вам не нравится, на что угодно
  2. Найдите и отредактируйте файл private.xml в соответствии с инструкциями в ссылке (и прочитайте, как обновить Karabiner для включения private.xml в основной список при переходе к шагу 4)
  3. Вставьте следующий код и сохраните файл private.xml:

    <item> <name>Backspace in Finder moves Up</name>⌥ <appendix> (except when editing text fields)</appendix> <identifier>private.Backspace_MoveUp</identifier> <only>FINDER</only> <uielementrole_not>AXTextArea, AXTextField</uielementrole_not> <autogen>__KeyToKey__ KeyCode::DELETE, ModifierFlag::NONE, KeyCode::CURSOR_UP, VK_COMMAND</autogen> </item>

    Это делает следующее:

    • Назначает ⌥ Opt + ↑ для клавиши Backspace.
      • Примечание: в моем OS X Yosemite это ярлык для команды "Перейти вверх" в Finder (например, она всегда переходит в папку на один уровень выше той, в которой вы находитесь). Если вам не нравится команда "Перейти вверх" и вы хотите перейти в предыдущую папку - определите свой собственный ярлык в соответствии с ответом "babraz", затем вставьте соответствующую комбинацию клавиш вместо CURSOR_UP, VK_COMMAND код выше
    • Ограничивает эту команду только Finder
    • Ограничивает эту команду только нетекстовыми полями
  4. Откройте Karabiner и нажмите кнопку "ReloadXML" (см. Ссылку в 2. для получения подробной информации о том, как добавить собственный файл private.xml).
  5. Выберите команду "Backspace в Finder движется вверх"
  6. Наслаждаться:)

Вы можете нажать CMD-[ (как показано в меню "Go"). Использование обычного способа оттуда (Настройки клавиатуры -> Сочетания клавиш и назначение нового сочетания клавиш для записи "Назад") не работает, так как поле "Сочетание клавиш" не принимает символ возврата. Но вы можете:

  • Перейдите в Системные настройки, Клавиатура, Сочетания клавиш
  • Создайте новую комбинацию клавиш для Finder с заголовком меню "Назад"введите описание здесь
  • Используйте любое произвольное сочетание клавиш

Затем отредактируйте файл $HOME/Library/Preferences/com.apple.finder.plist и измените сочетание клавиш на "⌫", например, используя XCode:

введите описание здесь

Теперь, если вы перезапустите Finder (используя killall Finder или диалоговое окно принудительного выхода из приложений) вы сможете использовать ярлык:

введите описание здесь

Однако, как отмечено в комментариях, клавиша возврата, вероятно, не используется в диалоговом окне клавиатуры по той или иной причине, поскольку ее использование в качестве ярлыка вызовет действие, когда у вас есть курсор в поле редактирования, где вы хотите клавишу возврата. удалить персонажей.

Хотя ответ с наибольшим количеством голосов с «uielementrole_not» в свое время был идеальным, он не работает в последних версиях Karabiner, поскольку опция uielementrole_not недоступна.

Отсутствие возможности добавить это конкретное состояние имело очень серьезные побочные эффекты, подобные тем, которые указаны в оригинальном плакате, и другим.

Что ж, я нашел способ избежать этого в новых версиях, используя переменные Карабинера. Идея заключается в том, чтобы определить, когда вы находитесь в режиме редактирования. Это далеко не идеально (см. примечания внизу), но это намного лучше, чем ничего.

Вот список нажатий клавиш и то, как они должны работать:

  • F2 ----> Переименовать файл
  • Ввод -> Открыть файл
  • Backspace -> Верхняя папка

Вот что я делаю:

  • Когда кто-то нажимает F2 в Finder, я заменяю его на Enter (клавиша по умолчанию для «переименования») и устанавливаю для переменной «onedit» значение 1.
  • Когда кто-то нажимает Enter или Esc в Finder, если onedit=1, я сохраняю тот же код ключа и устанавливаю onedit равным 0.
  • Когда кто-то нажимает Enter и onedit=0, я отправляю нажатия клавиш «открыть».
  • Когда кто-то нажимает Backspace и onedit=0, я отправляю нажатия клавиш «папка вверх».
  • Когда кто-то нажимает клавишу Backspace и onedit=1, я сохраняю клавишу Backspace.

Вот все правила для выполнения этого:

      {
    "description": "Use F2 as Rename and enter edit mode",
    "manipulators": [
        {
            "conditions": [
                {
                    "bundle_identifiers": [
                        "^com.apple.finder"
                    ],
                    "type": "frontmost_application_if"
                }
            ],
            "from": {
                "key_code": "f2"
            },
            "to": [
                    {"key_code": "return_or_enter"},
                    {"set_variable": 
                        {
                        "name": "onedit",
                        "value": 1
                        }
                    }
            ],
            "type": "basic"
        }
    ]
}
,
{
    "description": "Use Backspace as Go to Previous Folder in Finder if not editing",
    "manipulators": [
        {
            "conditions": [
                {
                    "bundle_identifiers": [
                        "^com.apple.finder"
                    ],
                    "type": "frontmost_application_if"
                }
                ,
                {
                    "type": "variable_unless",
                    "name": "onedit",
                    "value": 1
                }
            ],
            "from": {
                "key_code": "delete_or_backspace"
            },
            "to": [
                {
                    "key_code": "open_bracket",
                    "modifiers": [
                        "left_command",
                        "left_option"
                    ]
                }
            ],
            "type": "basic"
        }
    ]
},
{
    "description": "Use Return as Open if not renaming file",
    "manipulators": [
        {
            "conditions": [
                {
                    "bundle_identifiers": [
                        "^com.apple.finder"
                    ],
                    "type": "frontmost_application_if"
                }
                ,
                {
                    "type": "variable_unless",
                    "name": "onedit",
                    "value": 1
                }
            ],
            "from": {
                "key_code": "return_or_enter",
                "modifiers": {
                    "optional": [
                        "any"
                    ]
                }
            },
            "to": [
                {
                    "key_code": "o",
                    "modifiers": [
                        "right_command"
                    ]
                }
            ],
            "type": "basic"
        }
    ]
},
{
    "description": "Use Return to finish renaming when onedit=1",
    "manipulators": [
        {
            "conditions": [
                {
                    "bundle_identifiers": [
                        "^com.apple.finder"
                    ],
                    "type": "frontmost_application_if"
                },
                {
                    "name": "onedit",
                    "type": "variable_if",
                    "value": 1
                }
            ],
            "from": {
                "key_code": "return_or_enter",
                "modifiers": {
                    "optional": [
                        "any"
                    ]
                }
            },
            "to": [
                {"key_code": "return_or_enter"},
                {"set_variable": 
                    {
                    "name": "onedit",
                    "value": 0
                    }
                }
            ],
            "type": "basic"
        }
    ]
},
{
    "description": "Use Esc to finish renaming when onedit=1",
    "manipulators": [
        {
            "conditions": [
                {
                    "bundle_identifiers": [
                        "^com.apple.finder"
                    ],
                    "type": "frontmost_application_if"
                },
                {
                    "name": "onedit",
                    "type": "variable_if",
                    "value": 1
                }
            ],
            "from": {
                "key_code": "escape",
                "modifiers": {
                    "optional": [
                        "any"
                    ]
                }
            },
            "to": [
                {"key_code": "escape"},
                {"set_variable": 
                    {
                    "name": "onedit",
                    "value": 0
                    }
                }
            ],
            "type": "basic"
        }
    ]
}

Примечания:

  • Любое нажатие F2 в Finder приведет к тому, что Карабинер перейдет в режим переименования, поэтому, если вы нажмете F2 на чем-либо, кроме файла, клавиша Backspace и другие ярлыки, подобные Windows, перестанут работать, пока вы не нажмете Esc или Enter.
  • Убедитесь, что у вас нет других правил для F2, Enter, Backspace, поскольку они могут сработать раньше этих правил и все испортить.
Другие вопросы по тегам