{"id":187,"date":"2013-06-15T23:18:34","date_gmt":"2013-06-16T04:18:34","guid":{"rendered":"http:\/\/codezen.org\/canto-ng\/?p=187"},"modified":"2013-06-15T23:18:34","modified_gmt":"2013-06-16T04:18:34","slug":"a-note-on-terminals","status":"publish","type":"post","link":"https:\/\/codezen.org\/canto-ng\/2013\/06\/15\/a-note-on-terminals\/","title":{"rendered":"A Note on Terminals"},"content":{"rendered":"<p>Recently I&#8217;ve been trying to track down some sudden slowness in <code>canto-curses<\/code>. Things like scrolling and other routine operations seemed to take many times longer than they should.<\/p>\n<p>Well. To make a long and ultimately fruitless debug session short, turns out that the problem wasn&#8217;t with <code>canto-curses<\/code> <strong>it was with the terminal<\/strong> I&#8217;ve been using. I&#8217;ve been distro-hopping again (sorry Arch, you broke my shit one too many goddam times) and lately I&#8217;ve been trying out LMDE with the Cinnamon desktop. I don&#8217;t feel as efficient as I do with a tiling WM like Qtile, but I&#8217;ve been mostly happy with it.<\/p>\n<p>As part of the Cinnamon desktop, I&#8217;ve been routinely using <code>gnome-terminal<\/code> which, in turn, uses <strong>cairo<\/strong> to do its font rendering like a lot of the other DE terms. Apparently <code>cairo<\/code> doesn&#8217;t like having walls of text thrown at it as often as <code>canto-curses<\/code> does, and as such, scrolling the terminal (which pretty much means every character on the screen needs to be updated) chokes <code>cairo<\/code> and slows scrolling to a comparative crawl.<\/p>\n<p>The solution? Well, I don&#8217;t have one in code yet. I&#8217;m wondering if I can workaround it or at least smooth it out. So, in the meantime, if <code>canto-curses<\/code> doesn&#8217;t scroll fast enough for you, <strong>use a non-cairo terminal<\/strong> like <strong>[u]xterm<\/strong> or <strong>[u]rxvt<\/strong>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recently I&#8217;ve been trying to track down some sudden slowness in canto-curses. Things like scrolling and other routine operations seemed to take many times longer than they should. Well. To make a long and ultimately fruitless debug session short, turns out that the problem wasn&#8217;t with canto-curses it was with the terminal I&#8217;ve been using. <a class=\"read-more\" href=\"https:\/\/codezen.org\/canto-ng\/2013\/06\/15\/a-note-on-terminals\/\">[&hellip;]<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"_links":{"self":[{"href":"https:\/\/codezen.org\/canto-ng\/wp-json\/wp\/v2\/posts\/187"}],"collection":[{"href":"https:\/\/codezen.org\/canto-ng\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codezen.org\/canto-ng\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codezen.org\/canto-ng\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/codezen.org\/canto-ng\/wp-json\/wp\/v2\/comments?post=187"}],"version-history":[{"count":4,"href":"https:\/\/codezen.org\/canto-ng\/wp-json\/wp\/v2\/posts\/187\/revisions"}],"predecessor-version":[{"id":191,"href":"https:\/\/codezen.org\/canto-ng\/wp-json\/wp\/v2\/posts\/187\/revisions\/191"}],"wp:attachment":[{"href":"https:\/\/codezen.org\/canto-ng\/wp-json\/wp\/v2\/media?parent=187"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codezen.org\/canto-ng\/wp-json\/wp\/v2\/categories?post=187"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codezen.org\/canto-ng\/wp-json\/wp\/v2\/tags?post=187"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}