TL;DR

  • Hafþi for Mac은 Swift와 AppKit으로 구현한 네이티브 macOS 터미널이며, SwiftTerm 에뮬레이션과 Metal 렌더링(사용 가능할 때), Core Graphics 대체 렌더링을 제공함.
  • 0.1.0 베타 3은 Apple Silicon 및 macOS 13 이상을 지원하며, Xcode나 빌드 도구 없이 설치 가능함.
  • macOS 유사 터미널에서 로컬 셸을 실행하고, 창·입력·글꼴·색상·배경 이미지·스크롤백 설정을 제공함.
  • Fish, Starship, tgpt는 별도 설치하는 선택 기능이며, tgpt가 제안하는 명령은 앱에서 자동 실행되지 않음.
  • Linux 버전과 달리 Mac 앱은 AppKit 환경설정과 macOS 투명도를 사용하며, MIT 라이선스가 적용됨.

Hafþi for Mac

  • Linux용 Hafþi의 네이티브 macOS 버전으로, Swift와 AppKit으로 작성됨.
  • 터미널 에뮬레이션은 SwiftTerm이 처리하며, Metal 렌더링을 사용할 수 있을 때 적용하고 사용할 수 없으면 Core Graphics로 대체함.

다운로드

  • Apple Silicon용 Hafþi 0.1.0 beta 3 다운로드 파일은 Hafthi-0.1.0-beta.3-macOS-arm64.zip이며, 압축을 푼 뒤 Hafþi.app을 Applications로 드래그해 설치함.
  • 실행 조건은 macOS 13 이상이며, 다운로드한 앱 실행에는 Xcode나 빌드 도구가 필요하지 않음.
  • 베타는 임시 서명(ad hoc signing) 상태이며 Apple Developer ID로 공증되지 않음.
  • macOS가 첫 실행을 차단하면 앱을 연 뒤 System Settings → Privacy & Security → Open Anyway에서 Hafþi를 허용하면 됨. Mac 전체에서 Gatekeeper를 비활성화할 필요는 없음.

기능

  • 터미널: macOS 유사 터미널에서 실제 로컬 셸을 실행하며, ANSI 색상, 선택, 스크롤백, 대화형 전체 화면 프로그램을 지원함. 명령은 Mac에서 실행됨.
  • 창과 입력: 크기 조절이 가능한 여러 창, 복사, 붙여넣기, 전체 선택, 스크롤백 지우기, 오른쪽 클릭 메뉴, Control과 마우스 휠을 이용한 글꼴 확대·축소를 제공함. å, ä, ö 같은 문자를 입력할 때 Option을 계속 사용할 수 있음.
  • 모양: 글꼴 종류와 크기, 글자·배경·커서 색상, 배경 불투명도, 터미널 여백, 스크롤백 길이를 설정할 수 있으며, 변경 사항은 열린 창에도 적용됨.
  • 이미지: PNG, JPEG, WebP 또는 애니메이션 GIF를 선택적 배경으로 설정할 수 있으며, Off, Banner, Full 이미지 모드를 제공함. Banner는 터미널 텍스트 위쪽에 이미지를 두고, Full image는 창 전체에서 텍스트 뒤에 이미지를 표시함.
  • 셸과 프롬프트: Fish가 설치되어 있으면 자동으로 사용하고, 그렇지 않으면 기본 로그인 셸을 사용함. Hafþi에서는 Fish 시작 메시지가 기본적으로 숨겨지며, Fish가 설치된 경우 Starship을 자동으로 활성화할 수 있음.
  • 명령 도움말: 환경설정과 오른쪽 클릭 메뉴에서 선택적으로 tgpt를 연동함. 질문은 tgpt의 온라인 제공업체로 전송되며, 제안된 셸 명령은 표시만 되고 실행되지 않음.

단축키

  • 새 창: ⌘ N
  • 환경설정: ⌘ ,
  • 복사 / 붙여넣기 / 전체 선택: ⌘ C / ⌘ V / ⌘ A
  • 글꼴 크기 확대 / 축소: ⌘ + / ⌘ − 또는 Control과 마우스 휠
  • tgpt에 질문하기(활성화된 경우): Control + Shift + H
  • 실행 중인 명령 중단: Control + C
  • 오른쪽 클릭 메뉴에는 Reset Font Size, Clear Scrollback, Edit Hafþi Config도 포함됨. 마지막 창을 닫으면 앱이 종료됨.

선택 사항인 Fish와 Starship

  • Fish를 Hafþi의 기본 셸로 사용하려면 brew install fish로 별도 설치함. Fish가 없으면 일반 로그인 셸이 열림.
  • 새 창에서 Fish 환영 메시지를 표시하려면 환경설정에서 켬. 메시지 숨김 설정은 Hafþi가 시작한 Fish 세션에만 적용되며 Fish 설정 파일은 수정하지 않음.
  • Starship은 brew install starship으로 별도 설치함. Fish와 Starship이 모두 설치된 경우 새 Fish 창은 기본적으로 Starship을 사용함.
  • 환경설정에서 Hafþi의 자동 Starship 초기화를 전환할 수 있음. config.fish가 이미 Starship을 초기화하면 Hafþi는 해당 설정을 유지함.
  • 전환 설정은 새 창에 적용되며 config.fish를 변경하지 않음. 다른 로그인 셸을 사용하는 경우 Starship 셸 설정 안내를 따라야 함. Fish와 Starship은 앱에 포함되지 않음.

선택 사항인 명령 도움말

  • 환경설정에서 Command help를 활성화함. brew install tgpttgpt를 별도 설치하거나, Install tgpt…를 클릭해 명령을 터미널 프롬프트에 입력한 뒤 직접 Enter를 누를 수 있음.
  • 환경설정에서 macOS 터미널 관련 질문을 입력하고 Ask tgpt를 클릭하거나, 오른쪽 클릭 메뉴에서 질문 입력란을 열 수 있음. 답변은 터미널에 표시됨.
  • 질문은 tgpt의 온라인 제공업체로 전송되며 Hafþi는 제안된 명령을 자동으로 실행하지 않음.

환경설정과 구성

  • ⌘ ,에서 글꼴, 색상, 불투명도, 여백, 스크롤백, 이미지·GIF 모드, Fish 환영 메시지, Starship, 명령 도움말을 설정함.
  • 환경설정은 ~/Library/Application Support/Hafthi/config.json에 저장됨. 오른쪽 클릭 메뉴의 Edit Hafþi Config에서 해당 파일을 열 수 있음.
  • Fish 환영 메시지와 Starship 자동 시작 변경 사항은 새 창부터 적용됨.

소스에서 빌드

  • 빌드 요구 사항은 macOS 13 이상, Apple Silicon Mac, Xcode Command Line Tools임. 도구 설치 명령은 xcode-select --install임.
  • 저장소 https://github.com/pdahlbeck/hafthi-mac.git을 복제하고 hafthi-mac 디렉터리에서 swift run --build-system native HafthiMac을 실행해 빌드함.
  • 독립 실행형 앱 번들을 로컬에서 만들려면 bash build-app.sh를 실행한 뒤 open build/Hafþi.app으로 엶.

포팅 상태

  • 이 버전은 macOS 베타임.
  • Linux 버전은 자체 wgpu 환경설정 인터페이스와 Wayland 전용 투명도를 사용함. Mac 앱은 네이티브 AppKit 환경설정, macOS 투명도, 선택적 Metal 렌더링을 사용함.
  • 분할 창과 Open File Manager Here처럼 Linux에서 개발 중인 기능은 Mac 기능으로 안내하지 않음.

라이선스

  • Hafþi는 MIT 라이선스를 적용함. SwiftTerm도 MIT 라이선스이며 해당 라이선스 문서를 참조함.
  • Starship은 사용자가 설치하는 구성 요소로 Hafþi에 포함되지 않으며 ISC 라이선스를 적용함.