https://github.com/oleksiym/maclngswitcher
Lightweight macOS menu bar utility for fast, single-tap layout switching using customizable modifier keys (Control/Option) with automatic MacBook detection.
https://github.com/oleksiym/maclngswitcher
input-source keyboard-layout keyboard-switcher macos menu-bar swift utility vibrancy-ui
Last synced: 7 days ago
JSON representation
Lightweight macOS menu bar utility for fast, single-tap layout switching using customizable modifier keys (Control/Option) with automatic MacBook detection.
- Host: GitHub
- URL: https://github.com/oleksiym/maclngswitcher
- Owner: OleksiyM
- Created: 2026-06-07T19:26:55.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-06-29T18:13:52.000Z (19 days ago)
- Last Synced: 2026-06-29T20:11:33.228Z (18 days ago)
- Topics: input-source, keyboard-layout, keyboard-switcher, macos, menu-bar, swift, utility, vibrancy-ui
- Language: Swift
- Size: 28.3 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# MacLngSwitcher
`MacLngSwitcher` is a lightweight macOS menu bar utility designed for fast and seamless keyboard layout switching using modifier keys:
- **Left Modifier Action** — Tap once to immediately switch to a specific layout (e.g., English / U.S. / ABC).
- **Right Modifier Action** — Tap once to cycle between your other selected keyboard layouts (e.g., Russian, Ukrainian).
- **Modifier Combination Safety** — Normal shortcuts (like keyboard shortcuts or holding modifiers down) are preserved and will not trigger a layout switch.
The utility features a premium, native macOS settings window designed to blend perfectly with system windows, featuring real-time system vibrancy (Vibrancy Popover material), support for Dark/Light themes, and system accent colors.
## Features
- **Dynamic Modifier Key Selection**: Select either **Control (⌃)** or **Option (⌥)** for both Left (Switch) and Right (Cycle) actions via clean, native drop-down pickers.
- **MacBook Auto-Detection**: Automatically detects if you are using a portable Mac (MacBook) which lacks a physical Right Control key, defaulting the Right modifier to **Option (⌥)** on MacBooks, and **Control (⌃)** on desktop Macs.
- **Custom Sensitivity**: Slider to adjust the tap timeout sensitivity (between 0.15s and 0.60s).
- **Auto-Start**: Modern `SMAppService` API integration to launch automatically at macOS boot.
- **Vibrancy Design**: High-fidelity, flat native UI with zero CPU overhead in idle state.
- **Self-Contained Build**: Built completely via command line without heavy Xcode workspace overhead.
## Requirements
- macOS 13.0 (Ventura) or newer.
- **Accessibility Access** is required for the application to monitor global modifier keys.
---
## How to Build
You do not need Xcode GUI to build this application. A lightweight compilation script using `swiftc` is provided.
1. **Clone the repository**:
```bash
git clone https://github.com//MacLngSwitcher.git
cd MacLngSwitcher
```
2. **Make the build script executable**:
```bash
chmod +x build.sh
```
3. **Build the application**:
```bash
./build.sh
```
This will:
- Generate `AppIcon.icns` from CoreGraphics script.
- Compile all Swift sources.
- Output a native macOS bundle named `MacLngSwitcher.app` in the root folder.
---
## How to Install and Run
1. **Copy the application to your Applications folder**:
```bash
rm -rf /Applications/MacLngSwitcher.app
cp -R MacLngSwitcher.app /Applications/
```
2. **Open the application**:
```bash
open /Applications/MacLngSwitcher.app
```
3. **Grant Accessibility Permissions**:
- The application will request Accessibility access on first launch.
- Go to **System Settings > Privacy & Security > Accessibility** and enable `MacLngSwitcher`.
- Click **Restart Application** in the settings window to apply permissions.