{"id":18109336,"url":"https://github.com/habamax/vim-ii","last_synced_at":"2025-05-05T02:31:26.673Z","repository":{"id":211588643,"uuid":"729526919","full_name":"habamax/vim-ii","owner":"habamax","description":"IRC with suckless Irc it (ii) and vim","archived":false,"fork":false,"pushed_at":"2025-03-05T23:56:41.000Z","size":35,"stargazers_count":11,"open_issues_count":4,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-08T15:49:40.820Z","etag":null,"topics":["ii","irc","suckless","vim"],"latest_commit_sha":null,"homepage":"","language":"Vim Script","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/habamax.png","metadata":{"files":{"readme":"README.rst","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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-09T14:09:22.000Z","updated_at":"2025-03-05T23:56:45.000Z","dependencies_parsed_at":"2024-01-12T06:31:40.554Z","dependency_job_id":"d0253a6f-dec5-43a4-8732-23b1683a9195","html_url":"https://github.com/habamax/vim-ii","commit_stats":null,"previous_names":["habamax/vim-ii"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/habamax%2Fvim-ii","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/habamax%2Fvim-ii/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/habamax%2Fvim-ii/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/habamax%2Fvim-ii/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/habamax","download_url":"https://codeload.github.com/habamax/vim-ii/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252427868,"owners_count":21746288,"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","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":["ii","irc","suckless","vim"],"created_at":"2024-11-01T00:01:42.502Z","updated_at":"2025-05-05T02:31:25.969Z","avatar_url":"https://github.com/habamax.png","language":"Vim Script","funding_links":[],"categories":["Integrations"],"sub_categories":[],"readme":"################################################################################\n                       vim-ii: suckless ii (irc) and vim\n################################################################################\n\nWIP\n===\n\nThin integration layer over `Irc it (ii)`_ to do irc in vim.\n\n.. image:: https://github.com/habamax/vim-ii/assets/234774/e76452f6-85ea-4a19-9530-cc8400fdb58e\n\n.. _Irc it (ii):  https://tools.suckless.org/ii/\n\n\nQuickstart\n==========\n\nPrerequisites:\n\n- GNU/Linux -- I doubt it would work on Windows, haven't tested OSX.\n- ``ii`` suckless irc client\n- ``tail`` command\n- ``vim9`` compiled as ``huge``\n\n\nInstall ``ii``\n--------------\n\n.. code:: sh\n\n  $ git clone https://git.suckless.org/ii\n\nEdit ``Makefile`` if you want to have a different ``PREFIX`` (I have ``PREFIX=$(HOME)/.local``).\n\n.. code:: sh\n\n  $ cd ii\n  $ make\n  $ make install\n\n``ii`` should be installed into ``PREFIX`` dir. Make sure it is in ``PATH``.\n\n\nRun ``ii``\n----------\n\n.. code::\n\n  $ ii -s irc.libera.chat -p 6667 -n mynickname \u0026\n  $ cd ~/irc/irc.libera.chat\n  $ echo \"/j nickserv identify mynickname password\" \u003e in\n\nChange ``mynickname`` and ``password`` to your own. \n\nThe ``~/irc/irc.libera.chat`` directories will be created by ``ii`` automatically. \n\n\nVim\n---\n\nNow when ii is up and running, connected to libera.chat, in vim do::\n\n  :IIJoin irc.libera.chat #vim\n\nto join ``#vim`` channel.\n\n.. raw:: html\n\n  \u003ca href=\"https://asciinema.org/a/uh4wIwbtFURb7CBznIIkIGysv\" target=\"_blank\"\u003e\u003cimg src=\"https://asciinema.org/a/uh4wIwbtFURb7CBznIIkIGysv.svg\" /\u003e\u003c/a\u003e\n\nNow you are able to send and recieve messages. \n\nTreat the windows as you normally do in Vim. \n\nFor example ``C-w H`` to make the current window split, a vertical split. \n\nSee ``:h windows`` for more information. \n\nQuickstart 2\n============\n\nShell script to connect/reconnect libera\n----------------------------------------\n\n.. code:: sh\n\n  #!/usr/bin/env sh\n\n  # https://github.com/c00kiemon5ter/iii/blob/master/connect.sh\n\n  : \"${ircdir:=$HOME/irc}\"\n  : \"${nick:=$USER}\"\n\n  # server info functions\n  libera() {\n      server='irc.libera.chat'\n      channels=\"#vim #emacs #perl #python\"\n  }\n\n  # these match the functions above\n  networks=\"libera\"\n\n  for network in $networks; do\n      unset server channels port\n      \"$network\" # set the appropriate vars\n\n      while true; do\n          # cleanup\n          rm -f \"$ircdir/$server/in\"\n          # connect to network -- password is set through the env var synonym to the network name\n          ii -i \"$ircdir\" -n \"$nick\" -k \"$network\" -s \"$server\" -p \"${port:-6667}\" \u0026\n          pid=\"$!\"\n\n          # wait for the connection\n          while ! test -p \"$ircdir/$server/in\"; do sleep .3; done\n\n          # auth to services either using plain password stored in ident file\n          # or using pass\n          if [ -e \"$ircdir/$server/ident\" ]\n              then printf \"/j nickserv identify %s\\n\" \"$(cat \"$ircdir/$server/ident\")\" \u003e \"$ircdir/$server/in\"\n          else\n              printf \"/j nickserv identify %s\\n\" \"$(pass libera)\" \u003e \"$ircdir/$server/in\"\n          fi \u0026\u0026 rm -f \"$ircdir/$server/nickserv/out\" # clean that up - ident passwd is in there\n\n          # join channels\n          printf \"/j %s\\n\" $channels \u003e \"$ircdir/$server/in\"\n\n          # if connection is lost reconnect\n          wait \"$pid\"\n      done \u0026\n  done\n\n\nvim command to open windows with 4 channels\n-------------------------------------------\n\n.. code:: vim\n\n  vim9script\n\n  def Irc()\n      exe \"IIJoin irc.libera.chat #vim\"\n      wincmd o\n      exe \"IIJoin irc.libera.chat #python\"\n      wincmd L\n      exe \"IIJoin irc.libera.chat #perl\"\n      wincmd h\n      exe \"IIJoin irc.libera.chat #emacs\"\n  enddef\n  command! Irc Irc()\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhabamax%2Fvim-ii","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhabamax%2Fvim-ii","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhabamax%2Fvim-ii/lists"}