{"id":13412024,"url":"https://github.com/ojroques/nvim-hardline","last_synced_at":"2025-08-10T10:05:32.423Z","repository":{"id":44663615,"uuid":"323619564","full_name":"ojroques/nvim-hardline","owner":"ojroques","description":"A simple Neovim statusline","archived":false,"fork":false,"pushed_at":"2023-12-27T09:36:10.000Z","size":147,"stargazers_count":188,"open_issues_count":2,"forks_count":27,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-08-02T14:59:23.354Z","etag":null,"topics":["neovim-lua","neovim-plugin","statusline"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ojroques.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-12-22T12:27:30.000Z","updated_at":"2025-07-26T14:32:27.000Z","dependencies_parsed_at":"2023-12-27T10:24:45.282Z","dependency_job_id":"a3ec93a2-9093-475f-8d5c-ed90597bdc0c","html_url":"https://github.com/ojroques/nvim-hardline","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ojroques/nvim-hardline","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ojroques%2Fnvim-hardline","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ojroques%2Fnvim-hardline/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ojroques%2Fnvim-hardline/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ojroques%2Fnvim-hardline/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ojroques","download_url":"https://codeload.github.com/ojroques/nvim-hardline/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ojroques%2Fnvim-hardline/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269706669,"owners_count":24462208,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-10T02:00:08.965Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["neovim-lua","neovim-plugin","statusline"],"created_at":"2024-07-30T20:01:20.230Z","updated_at":"2025-08-10T10:05:32.392Z","avatar_url":"https://github.com/ojroques.png","language":"Lua","readme":"# nvim-hardline\n\nA statusline / bufferline for Neovim written in Lua. It is inspired by\n[vim-airline](https://github.com/vim-airline/vim-airline) but aims to\nbe as light and simple as possible.\n\n_**Note**: I won't add new features/parts/themes if I don't need them. Feel free\nto submit PRs or fork the plugin though._\n\n![screenshot](https://user-images.githubusercontent.com/23409060/188603562-aff6f003-69bc-4bd2-b4c5-83007f338d25.png)\n\n## Installation\nWith [packer.nvim](https://github.com/wbthomason/packer.nvim):\n```lua\nuse {'ojroques/nvim-hardline'}\n```\n\nWith [paq-nvim](https://github.com/savq/paq-nvim):\n```lua\npaq {'ojroques/nvim-hardline'}\n```\n\nWith [lazy.nvim](https://github.com/folke/lazy.nvim):\n```lua\n-- init.lua:\n{'ojroques/nvim-hardline'},\n\n-- plugins/hardline.lua:\nreturn {\n'ojroques/nvim-hardline',\n}\n```\n\n## Usage\nIn your *init.lua*:\n```lua\nrequire('hardline').setup {}\n```\n\nIf you're using a *.vimrc* or *init.vim*:\n```vim\nlua require('hardline').setup {}\n```\n\n## Configuration\nYou can pass options to the `setup()` function. Here are all available options\nwith their default settings:\n```lua\nrequire('hardline').setup {\n  bufferline = false,  -- disable bufferline\n  bufferline_settings = {\n    exclude_terminal = false,  -- don't show terminal buffers in bufferline\n    show_index = false,        -- show buffer indexes (not the actual buffer numbers) in bufferline\n  },\n  theme = 'default',   -- change theme\n  sections = {         -- define sections\n    {class = 'mode', item = require('hardline.parts.mode').get_item},\n    {class = 'high', item = require('hardline.parts.git').get_item, hide = 100},\n    {class = 'med', item = require('hardline.parts.filename').get_item},\n    '%\u003c',\n    {class = 'med', item = '%='},\n    {class = 'low', item = require('hardline.parts.wordcount').get_item, hide = 100},\n    {class = 'error', item = require('hardline.parts.lsp').get_error},\n    {class = 'warning', item = require('hardline.parts.lsp').get_warning},\n    {class = 'warning', item = require('hardline.parts.whitespace').get_item},\n    {class = 'high', item = require('hardline.parts.filetype').get_item, hide = 60},\n    {class = 'mode', item = require('hardline.parts.line').get_item},\n  },\n}\n```\n\nYou can define your own sections using the `sections` list. Each element of\nthat list is a table with the following attributes:\n* `class`: the section colorscheme. The following classes are currently\n  available:\n  * `mode`: change color based on the current mode.\n  * `low`, `med`, `high`: colors for different levels of importance.\n  * `bufferline`: colors for the bufferline.\n  * `error`, `warning`: colors for the diagnostics of Neovim built-in LSP\n    client.\n* `item`: the actual text being displayed. Must be a string or a function\n  returning a string.\n* `hide`: threshold (in number of characters) below which the section will be\n  hidden.\n\n## Available section parts\n| Part | Description |\n|------|-------------|\n| `cwd` | Current working directory |\n| `filename` | Filename and file status (readonly, modified, ...) |\n| `filetype` | Filetype |\n| `git` | Git hunks (requires [vim-gitgutter](https://github.com/airblade/vim-gitgutter) / [vim-signify](https://github.com/mhinz/vim-signify) / [gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim)) and Git branch (requires [vim-fugitive](https://github.com/tpope/vim-fugitive) / [gina.vim](https://github.com/lambdalisue/gina.vim) / [vim-branchname](https://github.com/itchyny/vim-gitbranch) / [gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim)) |\n| `line` | Line and column positions |\n| `lsp` | Diagnostics from Neovim LSP client |\n| `mode` | Current mode |\n| `treesitter-context` | Current treesitter node (requires [nvim-gps](https://github.com/SmiteshP/nvim-gps)) |\n| `whitespace` | Trailing whitespaces, mixed indent and Git conflict markers warnings |\n| `wordcount` | Current word count (enabled only for [some filetypes](https://github.com/ojroques/nvim-hardline/blob/5fc738bb7991f7d7890be14e7a74a50e21f0bd81/lua/hardline/parts/wordcount.lua#L8-L19)) |\n\n## License\n[LICENSE](./LICENSE)\n","funding_links":[],"categories":["Bars and Lines","Lua"],"sub_categories":["Statusline"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fojroques%2Fnvim-hardline","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fojroques%2Fnvim-hardline","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fojroques%2Fnvim-hardline/lists"}