Mac-застосунки

З папки завантажень

понеділок, 6 січня 2025 р.
Оновлено понеділок, 26 жовтня 2026 р.

TOC

Переглянув свою папку завантажень і вирішив поділитися списком корисних Mac-застосунків, які я встановив. Багато з них можна встановити через Homebrew.

Встановлення Homebrew

Якщо у вас ще немає Homebrew, встановіть його:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Продуктивність і утиліти

Rectangle - керування вікнами за допомогою клавіатурних скорочень

brew install --cask rectangle

Karabiner-Elements - потужна утиліта для налаштування клавіатури

brew install --cask karabiner-elements

AlDente - контроль заряду батареї для збереження її здоров’я

brew install --cask aldente

Syncthing - синхронізація файлів між пристроями без хмари

brew install --cask syncthing

HiddenBar - приховування іконок у рядку меню

brew install --cask hiddenbar

Maccy - менеджер буфера обміну

brew install --cask maccy

Raycast - потужна заміна Spotlight з розширеннями

brew install --cask raycast

CLDownloader - завантажувач файлів з підтримкою торрентів

boringNotch - корисні функції для Dynamic Island на MacBook Pro

brew install --cask boringnotch

Usage - моніторинг використання системних ресурсів

brew install --cask usage

Комунікація та AI

Slack - корпоративний месенджер

brew install --cask slack

Spark - розумний email-клієнт

brew install --cask spark

ChatGPT - десктопний клієнт для ChatGPT

brew install --cask chatgpt

Claude - десктопний клієнт для Claude AI

brew install --cask claude

Notion - організація нотаток і проєктів

brew install --cask notion

Simplenote - мінімалістичний застосунок для нотаток з синхронізацією

brew install --cask simplenote

Розробка

kitty - швидкий термінал на GPU, тепер мій основний. Вкладки, розбиття вікон, сесії та все інше налаштовуються в текстових файлах у ~/.config/kitty

brew install --cask kitty
brew install --cask font-jetbrains-mono-nerd-font   # шрифт із конфігу нижче

Мій ~/.config/kitty/kitty.conf (коментарі англійською, як у самому файлі):

# Font
font_family      family="JetBrainsMono Nerd Font Mono"
bold_font        auto
italic_font      auto
bold_italic_font auto
font_size        15.0
modify_font      cell_height 110%
text_composition_strategy 1.3 30

# Colours live in dark-theme.auto.conf and light-theme.auto.conf;
# kitty switches between them with the macOS appearance.

# Window
window_padding_width    8
macos_option_as_alt     yes
confirm_os_window_close -1
copy_on_select          clipboard

# F5 saves the open tabs and layout as a session. kitty asks for a path:
# use ~/.config/kitty/session.kitty. The program that runs in each window is
# saved too and starts again on launch, so do not press F5 during rm or mv.
map f5 save_as_session --use-foreground-process --relocatable
# Uncomment after the first F5, when the file exists.
# startup_session session.kitty

# Cmd+arrow: start / end of line. Alt+arrow: previous / next word.
# The Alt+arrow lines send Ctrl+arrow codes, which oh-my-zsh binds to word moves;
# a stock shell needs \x1bb and \x1bf instead.
map cmd+left  send_text all \x1b[H
map cmd+right send_text all \x1b[F
map alt+left  send_text all \x1b[1;5D
map alt+right send_text all \x1b[1;5C

# Shift+Enter sends a newline (Ctrl+J): Claude Code starts a new line
# instead of submitting, also over ssh inside tmux.
map shift+enter send_text all \n

# Ctrl+click opens a link even when the program grabs the mouse (tmux with mouse on).
mouse_map ctrl+left press grabbed discard_event
mouse_map ctrl+left release grabbed,ungrabbed mouse_handle_click link

# Tabs
tab_bar_edge            top
tab_bar_style           powerline
tab_powerline_style     slanted
active_tab_font_style   bold
inactive_tab_font_style normal

# No sound. A tab whose program rang the bell gets a ◆ in front of its title.
enable_audio_bell  no
bell_on_tab        "◆ "
tab_title_template "{bell_symbol}{title}"

# Cmd+Shift+T: pick a tab from a list, tabs that rang the bell first (pick_tab.py below)
map cmd+shift+t kitten pick_tab.py

map cmd+t     launch --type=tab --cwd=current --location=after
map cmd+enter new_window_with_cwd
map cmd+n     new_os_window_with_cwd
map cmd+w     close_window_with_confirmation ignore-shell

map cmd+1 goto_tab 1
map cmd+2 goto_tab 2
map cmd+3 goto_tab 3
map cmd+4 goto_tab 4
map cmd+5 goto_tab 5
map cmd+6 goto_tab 6
map cmd+7 goto_tab 7
map cmd+8 goto_tab 8
map cmd+9 goto_tab 9

Кольори перемикаються разом з темою macOS: kitty читає dark-theme.auto.conf або light-theme.auto.conf з тієї ж папки. kitten themes дозволяє вибрати тему і записати її в будь-який з цих файлів. Я використовую Solarized Dark Higher Contrast і Selenized Light.

~/.config/kitty/pick_tab.py, вибір вкладки на Cmd+Shift+T. Він показує вкладки всіх вікон kitty і перемикає на вибрану:

# Cmd+Shift+T: kitty's tab picker with the tab bar's ◆ marker. Tabs that rang
# the bell are listed first. Tabs from every OS window are listed.
from kittens.tui.handler import result_handler


def main(args):
    pass


@result_handler(no_ui=True)
def handle_result(args, answer, target_window_id, boss):
    def waiting(tab):
        return any(w.needs_attention for w in tab)

    def label(tab):
        return ('◆ ' if waiting(tab) else '  ') + (tab.name or tab.title)

    def chosen(ans):
        if not isinstance(ans, int):
            return
        for tab in boss.all_tabs:
            if tab.id == ans:
                # boss.set_active_tab() only searches the active OS window,
                # so switch through the tab's own manager and focus its window.
                # TabManager.set_active_tab() returns None, so its result is not checked.
                manager = tab.tab_manager_ref()
                if manager is not None:
                    manager.set_active_tab(tab)
                    boss.focus_os_window(tab.os_window_id)
                return

    w = boss.window_id_map.get(target_window_id)
    current = w.tabref() if w else None
    tabs = sorted(boss.all_tabs, key=lambda t: not waiting(t))
    boss.choose_entry(
        'Choose a tab (◆ = rang the bell)',
        ((None, f'{label(t)}   (current)') if t is current else (t.id, label(t)) for t in tabs),
        chosen,
    )

Warp - сучасний термінал з AI-функціями

brew install --cask warp

Windsurf - IDE від Codeium з вбудованим AI

brew install --cask windsurf

VSCodium - вільна версія VS Code без телеметрії Microsoft

brew install --cask vscodium

Ollama - запуск локальних LLM моделей

brew install ollama

Мережа та безпека

Tailscale - проста VPN на основі WireGuard

brew install --cask tailscale

NordVPN - популярний VPN-сервіс

brew install --cask nordvpn

Медіа

IINA - сучасний відеоплеєр для macOS

brew install --cask iina

Firefox - альтернативний веб-браузер

brew install --cask firefox

Швидке встановлення всіх застосунків

Ви можете встановити всі ці застосунки одразу:

brew install --cask rectangle karabiner-elements aldente syncthing \
  hiddenbar maccy raycast boringnotch usage slack spark chatgpt \
  claude notion simplenote kitty warp windsurf vscodium tailscale \
  nordvpn iina firefox

brew install ollama

Усі ці застосунки я активно використовую або тестую. Більшість з них безкоштовні або мають безкоштовні версії. Особливо рекомендую Rectangle для керування вікнами, Raycast як заміну Spotlight, та IINA як заміну стандартному плеєру.