<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Lua on meliplug.info</title><link>https://meliplug.info/tags/lua/</link><description>Recent content in Lua on meliplug.info</description><generator>Hugo -- 0.160.0-DEV</generator><language>en-us</language><managingEditor>ywbird@naver.com (ywbird)</managingEditor><webMaster>ywbird@naver.com (ywbird)</webMaster><lastBuildDate>Fri, 17 Jul 2026 13:53:54 +0900</lastBuildDate><atom:link href="https://meliplug.info/tags/lua/rss.xml" rel="self" type="application/rss+xml"/><item><title>Awesome WM 사용하기</title><link>https://meliplug.info/posts/awesomewm/</link><pubDate>Sun, 12 Jul 2026 00:00:00 +0900</pubDate><author>ywbird@naver.com (ywbird)</author><guid>https://meliplug.info/posts/awesomewm/</guid><description>&lt;p&gt;여태 i3wm을 사용하다가 최근 &lt;a href="https://awesomewm.org/" target="_blank" rel="noopener noreferrer" class="external" &gt;awesome WM[↗]&lt;/a&gt;
을 사용하기 시작 했다.&lt;/p&gt;
&lt;p&gt;awesome은 극도로 간단한 WM으로 유명한 dwm의 fork인 WM으로, Lua 통해 커스터마이징을 지원한다.&lt;/p&gt;
&lt;h2 id="desktop-environment"&gt;
&lt;a href="#desktop-environment" class="anchor"&gt;Desktop Environment&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;awesome을 사용하려고 하면서 알게된 사실은, 내가 여태 DE&lt;sub&gt;(Desktop Environment)&lt;/sub&gt; 없이 PC를 사용하고 있었다는 것이다. &lt;br /&gt;
하여 이번 기회에 LXQT를 DE로 설정하고, WM를 awesome으로 설정하였다.&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://meliplug.info/ox-hugo/20260712093055.png"&gt;
&lt;/figure&gt;
&lt;p&gt;기본으로 panel, desktop, notification daemon 등 불필요한 것이 많길래, policy kit 제외 전부 비활성화 했다.&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://meliplug.info/ox-hugo/20260712092945.png"&gt;
&lt;/figure&gt;
&lt;h2 id="startup"&gt;
&lt;a href="#startup" class="anchor"&gt;Startup&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;기존에 사용하던 i3wm의 설정에서 시작프로그램 목록만 가져왔다. &lt;br /&gt;
session settings에서 autostart를 사용할 수 도 있었는데, i3wm config에서 가져오는거라 귀찮아서 그냥 rc.lua에 넣어주었다.&lt;/p&gt;</description></item><item><title>vis-korea-ime 포팅하기</title><link>https://meliplug.info/articles/vis-korea-ime/</link><pubDate>Thu, 02 Jul 2026 00:00:00 +0900</pubDate><author>ywbird@naver.com (ywbird)</author><guid>https://meliplug.info/articles/vis-korea-ime/</guid><description>&lt;p&gt;&lt;a href="https://codeberg.org/ywbird/vis-korea-ime" target="_blank" rel="noopener noreferrer" class="external" &gt;https://codeberg.org/ywbird/vis-korea-ime[↗]&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;최근 Emacs랑 이거저거 editor 사용해 보고 있는데, vis에 한글 입력이 없더라구요. &lt;br /&gt;
vis 또한 플러그인으로 Lua를 사용하길래, kiyoon 님의 &lt;a href="https://github.com/kiyoon/Korean-IME.nvim" target="_blank" rel="noopener noreferrer" class="external" &gt;&lt;code&gt;Kiyoon/Korean-IME.nvim&lt;/code&gt;[↗]&lt;/a&gt;
(이 또한 &lt;a href="https://github.com/lifthrasiir/hangeul.vim" target="_blank" rel="noopener noreferrer" class="external" &gt;lifthrasiir/hangeul.vim[↗]&lt;/a&gt;
의 Lua 버전 재작성)을 vis로 포팅했습니다. &lt;br /&gt;&lt;/p&gt;
&lt;p&gt;구현 과정에서 neovim과 vis의 keymap 구현 방식의 차이 때문에 좀 고생했습니다.&lt;/p&gt;
&lt;h2 id="noremap의-부재"&gt;
&lt;a href="#noremap%ec%9d%98-%eb%b6%80%ec%9e%ac" class="anchor"&gt;noremap의 부재&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;먼저 neovim의 keymap 설정 방식은 아래와 같습니다.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-lua" data-lang="lua"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;vim.keymap&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;i&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;lt;space&amp;gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kr"&gt;function&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;finish_2s&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kr"&gt;return&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;lt;space&amp;gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;end&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;noremap&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;silent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;expr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;desc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;...&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;해석해 보자면,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;i&amp;quot;&lt;/code&gt; : &lt;code&gt;INSERT&lt;/code&gt; 모드에서&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;&amp;lt;space&amp;gt;&amp;quot;&lt;/code&gt; : &lt;code&gt;&amp;lt;space&amp;gt;&lt;/code&gt; 키를 누르면&lt;/li&gt;
&lt;li&gt;&lt;code&gt;finish_2s()&lt;/code&gt; : 해당 함수를 실행하고&lt;/li&gt;
&lt;li&gt;&lt;code&gt;return &amp;quot;&amp;lt;space&amp;gt;&amp;quot;&lt;/code&gt; : &lt;code&gt;&amp;lt;space&amp;gt;&lt;/code&gt; 를 키 입력한다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;noremap = true&lt;/code&gt; : 제귀 키 입력을 방지하고,&lt;/li&gt;
&lt;li&gt;&lt;code&gt;silent = true&lt;/code&gt; : 입력(&lt;code&gt;&amp;lt;space&amp;gt;&lt;/code&gt;)의 결과를 숨긴다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;expr = true&lt;/code&gt; : 함수의 반환 값을 입력으로 사용한다. &lt;br /&gt;
(이게 없다면 &lt;code&gt;&amp;lt;space&amp;gt;&lt;/code&gt; 는 키 입력으로 처리되지 않음)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;반면, vis에서는 아래와 같습니다.&lt;/p&gt;</description></item><item><title>Lua Snippets</title><link>https://meliplug.info/posts/lua-snippets/</link><pubDate>Sun, 14 Jun 2026 00:00:00 +0900</pubDate><author>ywbird@naver.com (ywbird)</author><guid>https://meliplug.info/posts/lua-snippets/</guid><description>&lt;p&gt;list of useful lua snippets for my own use&lt;/p&gt;
&lt;h2 id="web-lua-syntax-checker"&gt;
&lt;a href="#web-lua-syntax-checker" class="anchor"&gt;Web Lua syntax checker&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://fptje.github.io/glualint-web/" target="_blank" rel="noopener noreferrer" class="external" &gt;https://fptje.github.io/glualint-web/[↗]&lt;/a&gt;
&lt;/p&gt;</description></item></channel></rss>