{"id":26050261,"url":"https://github.com/abilkhan024/vimium-native","last_synced_at":"2026-05-07T19:04:54.217Z","repository":{"id":280113648,"uuid":"926171171","full_name":"abilkhan024/vimium-native","owner":"abilkhan024","description":"Vimium on your MacOS","archived":false,"fork":false,"pushed_at":"2026-02-02T20:18:58.000Z","size":209,"stargazers_count":48,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-03T09:54:26.436Z","etag":null,"topics":["macos","swift","vim"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/abilkhan024.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-02-02T18:07:53.000Z","updated_at":"2026-02-02T20:19:01.000Z","dependencies_parsed_at":"2025-03-30T13:20:02.141Z","dependency_job_id":"a80de7dc-4a4e-4615-a6dd-d7c326172363","html_url":"https://github.com/abilkhan024/vimium-native","commit_stats":null,"previous_names":["abilkhan024/vimium-native","abilkhan024/vimium-mac"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/abilkhan024/vimium-native","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abilkhan024%2Fvimium-native","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abilkhan024%2Fvimium-native/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abilkhan024%2Fvimium-native/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abilkhan024%2Fvimium-native/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/abilkhan024","download_url":"https://codeload.github.com/abilkhan024/vimium-native/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abilkhan024%2Fvimium-native/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29634860,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T18:02:07.722Z","status":"ssl_error","status_checked_at":"2026-02-19T18:01:46.144Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["macos","swift","vim"],"created_at":"2025-03-08T02:27:39.513Z","updated_at":"2026-05-07T19:04:54.203Z","avatar_url":"https://github.com/abilkhan024.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Overview\n\n`VimiumNative` is a free and open-source MacOS app that allows you to use your\nmac without mouse in your day to day. It's some combination of other tools like\n`HomeRow`, `Shortcat`, `Mouseless`, `Warpd`. To some degree you may use this app\nas an alternative to any of them. If you find that some part lacks in\nfunctionality or performance it's highly encouraged to contribute to the project\n:)\n\nP.S. More about contribution to the project could be found\n[here](./CONTRIBUTING.md)\n\n# Quick demo\n\nhttps://github.com/user-attachments/assets/de0c46ed-926b-4da0-998f-dea710d05745\n\nIf the video fails to play you can view it on my\n[GitHub pages](https://abilkhan024.github.io/vimium-native-demo.mp4)\n\n## Breakdown\n\nLet's breakdown what is being showed on the demo, to start using the app\n\n### Hints\n\nTrigger hint view by pressing `Cmd + Shift + .` which will hint interactive\nelements, which you can click, if some hints overlap you can toggle their\nz-index by pressing `;`\n\n### Hints with search\n\nTrigger hint view by pressing default key binding of `Cmd + Shift + .` which\nwill hint interactive elements, press `/` which will enter search mode and start\ntyping the text that you want to click, once the hint is focused press enter\n\n### Grid \u0026 Mouse\n\nTrigger grid view by pressing default key binding of `Cmd + Shift + ,` which\nwill show labeled cells where you can place your mouse, and left click using\n`\u003cCR\u003e` (aka Enter), or right click using `.`, or move your mouse using `hjkl`\n(directions are just like in vi), toggle dragging by pressing `v`, show grid\nhint again to place mouse to different point using `/`\n\n### Scroll\n\nTrigger scrolling by pressing default key binding of `Cmd + Shift + j`, now you\ncan use keys `d,u,\u003cS\u003eh,\u003cS\u003ej,\u003cS\u003ek,\u003cS\u003el` directions are just like in vi (`\u003cS\u003e`\nindicates shift) to scroll the current cursor position which is center of screen\nby default\n\n## Keybindings\n\nEvery keybinding used in this demo can be customized using config file more in\n[options](#options)\n\n# Getting started\n\n## Install\n\n```sh\n# Tap formula that contains latest build\nbrew tap abilkhan024/tools\n\n# Install latest build\nbrew install vimium-native\n```\n\n## Upgrade via homebrew\n\n```sh\nbrew upgrade vimium-native\n```\n\n## Uninstall\n\nIf you didn't like the application you can easily uninstall it by following:\n\n_P.S. constructive criticism is appreciated in the `Issues` section_\n\n```sh\n# Uninstall binary\nbrew uninstall vimium-native\n# Untap homebrew formula\nbrew untap abilkhan024/tools\n```\n\n# Options\n\nConfig file will be read from $HOME/.config/vimium or `$VIMIUM_CONFIG_PATH` if\nit's set\n\nDefault config:\n\n```sh\n# Key bindings, format is \u003cMod\u003e{key} mapping can be found in \n# `Sources/VimiumNative/Core/KeyMapping.swift` -\u003e `let mappingToValue`\nkey_show_hints='\u003cD\u003e\u003cS\u003e.'\nkey_show_grid='\u003cD\u003e\u003cS\u003e,'\nkey_start_scroll='\u003cD\u003e\u003cS\u003ej'\nkey_close='\u003cEsc\u003e'\nkey_enter_search_mode='/'\nkey_next_search_occurence='\u003cTab\u003e'\nkey_prev_search_occurence='\u003cS\u003e\u003cTab\u003e'\nkey_select_occurence='\u003cCR\u003e'\nkey_drop_last_search_char='\u003cBS\u003e'\nkey_toggle_z_index=';'\nkey_mouse_left='h'\nkey_mouse_down='j'\nkey_mouse_up='k'\nkey_mouse_right='l'\nkey_scroll_left='\u003cS\u003eh'\nkey_scroll_down='\u003cS\u003ej'\nkey_scroll_up='\u003cS\u003ek'\nkey_scroll_right='\u003cS\u003el'\nkey_scroll_page_down='d'\nkey_scroll_page_up='u'\nkey_scroll_full_down='\u003cS\u003eg'\nkey_scroll_full_up='g'\nkey_enter_visual='v'\nkey_reopen_grid_view='/'\nkey_right_click='.'\nkey_left_click='\u003cCR\u003e'\n\n# Font family used in hints use vimium list-fonts to view all fonts\nfont_family=system\n\n# Letter spacing for hint text\nletter_spacing=0.0\n\n# Font size of the hint label\nhint_font_size=14.0\n\n# Height of the triangle indicating point that will be clicked\nhint_triangle_height=6.0\n\n# Mouse params when entering grid mode:\n# Color by default\nmouse_color_normal=#ff0000\n# Color when dragging\nmouse_color_visual=#00ffff\n# Color of the outline when in mouse mode\nmouse_outline_color=#00ffff\n# Hides Outline when set to 0\nmouse_outline_width=8.0\n# Virtual circle cursor size\nmouse_size=10.0\n\n# Scroll scale vertical when using jk, horizontal for hl, verticalPage: du\nscroll_size_vertical=5\nscroll_size_horizontal=40\nscroll_size_vertical_page=100\n\n# Cursor move size\ncursor_step=5\n\n# Traverse the children of the node if the node has dimensions of \u003c=1\n# Generally advised against, because slows down performance\ntraverse_hidden=false\n\n# Interval for system menu poll in seconds, 0 doesn't poll system menu\n# therefore won't show it. Min value that won't degrade performance is 10\nsystem_menu_poll=10\n\n# Colors used for hints\ncolor_bg=#e6d278\ncolor_fg=#000000\n\n# Chars that will be used when generating hints\nhint_chars=jklhgasdfweruio\n\n# Some websites may use text as buttons. You can enable this to hint text nodes,\n# but it may slow down rendering, sometimes significantly.\n# P.s HomeRow doesn't do it, that's why it's false by default\nhint_text=false\n\n# How to determine if the element is hintable.\n# Possible values: action | role\n# ----------------------------------------------------------------\n# role: Replicates HomeRow behavior, generally faster but ignores some elements\n# action: Shows if element provides non-ignored action\n# ----------------------------------------------------------------\nhint_selection=role\n\n# Rows and cols dimensions when using grid mode.\n# Change is a trade-off between precision and performance\ngrid_rows=36\ngrid_cols=36\ngrid_font_size=14.0\n\n# Sometimes macOS refuses to register drag when you immediately jump\n# between labels. You can enable this flag to jiggle once you start dragging\njiggle_when_dragging=false\n\n# Indicates your preferred abc layout i.e. layout\n# that contains english letters, layout will be switched to it when selecting label\n# set to random value e.g. \"nil\" if you don't want the described behaviour\nabc_layout=com.apple.keylayout.ABC\n\n# Controls if menu item should be visible in the system tray: true | false\nshow_menu_item=true\n\n# When developing and want to check performance\ndebug_perf=false\n```\n\n# Building from source\n\n```sh\n# Prerequisites: \n# - Clone however you want and cd into the dir\n# - Ensure that dev utils are installed so swift is available and matches\n#   with Package.swift version (6.0 as of now)\n\n# Build in release mode\nswift build -c release\n\n# Run\n.build/release/VimiumNative\n```\n\n## Build for distribution\n\nShown for transparency of the build step, no need to run it\n\n```sh\n# Build the application striping symbols \u0026 remove unnecessary files that expose symbols\nswift build --disable-prefetching -Xswiftc -gnone -c release --scratch-path ./vimium-native-build \u0026\u0026 \\\ntar -czvf vimium-native-build.tar.gz --no-xattrs -C vimium-native-build/release VimiumNative \u0026\u0026 \\\nrm -rf ./vimium-native-build\n```\n\n# Known limitations\n\n- Multiple screen navigation, fzfind works for main screen only _(feel free to\n  contribute if that's an issue)_\n- Smooth scrolling _(feel free to contribute if that's an issue)_\n- AeroSpace support. Due to how aerospace manages workspaces, hinting behaviour\n  is unstable and unpleasant to work with, instead prefer some manager that\n  won't change window sizes and their positions, e.g. custom hammerspon\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabilkhan024%2Fvimium-native","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabilkhan024%2Fvimium-native","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabilkhan024%2Fvimium-native/lists"}