搜索
Table_bottom

标签云
Table_bottom

分类
Table_bottom

声明
文章若未特別註明,皆採用 知识共享许可协议 請自覺遵守
Table_bottom

存档
Table_bottom

匆匆过客
28871
Table_bottom

功能
Table_bottom

長終端輸出“截屏”

今天偶然想把兩段終端輸出轉化成圖片發給別人(爲了保留顏色)。然而輸出特別長,一屏不足以顯示下來。於是想有沒有什麼方法可以讓我將終端的完整輸出截出來,畢竟手動一幅幅地裁剪太蠢了。

題目是聯想到一些Android設備上的所謂“長截屏”而取的,意義很是相似。

 

概要

由於沒有找到專門的工具,所以打算自己hack一個出來,故而事情分兩步:

  1. 將命令輸出存下來
  2. 將輸出轉化成圖片

然而在進行第二步的時候發現沒有工具可以一步到位,所以就通過HTML進行中轉。於是最終變成了三步:

  1. 將命令輸出存下來
  2. 將之前保存的輸出轉換成HTML
  3. 將HTML轉換成圖片

第一步:保存輸出

第一步可以直接重定向(加上強制彩色輸出),但我這種懶人使用了script命令。

script可以自動把我所有命令的輸出(帶提示行/prompt)都存下來,而且不用我再去一個個強制彩色輸出。而且啓動它以後會進入專門的環境,於是我可以首先在一個臨時目錄執行script,之後cd到我要執行命令的目錄,最後直接Ctrl+D以免弄亂我的正常目錄。

由於這許多優勢,我傾向於使用script,而不是採取輸出重定向的方案。

第二步:輸出轉HTML

第二步用ansi2html(AUR中有)將輸出轉換成HTML。由於是終端輸出,後面加上--bg=dark參數將背景設爲黑色會更合習慣;由於我的終端模擬器用的配色方案是Tango(我覺得比xterm-256color好看),所以還要加上--palette=tango。最終的命令就是這樣:

ansi2html --bg=dark --palette=tango < typescript > typescript.html

(理論上管道直接到ansi2html的輸入是可行的,但需要手動強制彩色輸出,畢竟多數軟件還是會探測輸出是否是終端的。)

然後可以先找你的瀏覽器看一下輸出是否符合你的預期(主要是配色方案這部分),確定後就可以進行下一步了。

第三步:HTML轉圖片

把HTML轉爲圖片的工具很多,我選了CutyCapt(依然是AUR上有)這麼一個傢伙,畢竟它滿足我目前的所有功能需求,而且用QtWebKit所以體積很小(我本來就有幾乎全套的Qt)。

對於我們的需求,其基本用法是:

CutyCapt --url=http://www.example.org/ --out=localfile.png

然而其默認的字號太小,怎麼看怎麼不舒服,所以我加了200%的縮放--zoom-factor=2。由於全都是文字,所以又加上僅縮放文字的開關--zoom-text-only=on(並沒有什麼卯月系列)。所以最終命令就成了:

CutyCapt --url=file://`pwd`/typescript.html --out=output.png --zoom-factor=2 --zoom-text-only=on

 

大功告成。(並沒有)

 

 

 

 

 

 

之後還需要手動使用圖片處理軟件(剪裁就可以了,所以gwenview足矣)將多餘部分去除。這樣就大功告成,可以拿去浪了。(其實還是有點小問題)

 

 

 

 

 

 

 

懸而未解

  • 經對比發現,輸出中的高亮並不正確,而且似乎沒有加粗。
  • powerline的輸出無法正確呈現。

 

Android搞機須知

(應求所作文……其實我更想寫成wiki)

 

雖然看起來每款Android手機都有自己的刷機、root教程,但其實萬變不離其宗,整體上看還是很有規律的。本文從整體上說說Android刷機是什麼、需要做什麼、每個步驟的目的以及效果都是什麼。

继续阅读

丙申有年

(框架乃前天即大年初一所寫)

新年。

昨天一邊聽着春晚一邊在初中班級(微信)羣中聊天,聊着聊着就說到了仙劍四,然後突然意識到它已經是十年前的遊戲了,繼而引發了一波人生苦短的感嘆以及遊戲的回看。恍惚之間,忽然覺得連剛過去的那一年也不真實了起來。

仔細算算,去年一年間發生了許多遠超預期的事情。再加上前些年的事情,一些從小就在學的概念也似乎變得不再那麼確切了起來。雖然初中高中時候政治考試無論如何上不了80%,但當時學的一句話依然毫無疑義地生效:機遇與挑戰並存。

聽聞英國脫歐比美國大選鬧出的事要更令我驚訝,因爲我還記得當年課本中是如何盛讚歐共體和歐盟的,而且從那以後我們都考慮過當歐洲整合爲一個國家之後會是什麼樣子。然而英國居然進行投票脫歐,這點着實讓我深感意外——因爲只有當有大量民意(或者至少“上達天聽”的民意)表明有脫離需求的時候,全國範圍的投票纔有可能出現。更令人意外的是蘇格蘭在此以後再次以號稱獨立來表明留歐的立場、倫敦投票留歐以及許多人出來說自己當初“覺得無論如何都不可能脫,所以就投票給脫歐”。而扒一扒英國脫歐的原因,難民問題絕對佔一大頭——畢竟英國在歐盟這麼多年了,歐洲經濟年年都是那麼個樣子,今年基本上只有難民是新問題。

美國大選過後,川普當選,於是我所見到的報導全都一邊倒地在批判川普。然而我還記得,在大選前造勢的時候,希拉里被爆出來的種種醜聞無疑使得她並不應該當選總統。於是好玩的事情在川普當選之後發生了:因爲川普也有很多問題,所以媒體一邊倒地轟炸他,但是不再提希拉里的問題,進而導致一些人覺得應該讓希拉里來。就我所獲知的消息,從候選“人”的角度看,川普當總統是比希拉里更合適的。因爲希拉里的問題會導致上臺之後被之前的各種交易所制,甚至導致整個政府問題更加嚴重;而川普的問題在於他本人所秉持(或者表現出來秉持的)思維,但至少他不會污染政府機構,所以從這點看他是比希拉里合適的。當然了,我又不是搞政治的,說不定川普有什麼黑幕沒爆出來,或者希拉里的黑幕都是假的,但這些在當前的公共知識中是不成立的,所以我也就按照這些來評判。

不過雖然我覺得川普比希拉里適合當總統,但這只是瘸子裏面挑將軍。天知道美國政府以及黨派都在搞些什麼,從而最終弄了這麼兩個人來當總統候選人。不過這點也反映了美國的一個問題:當兩大黨派都不是玩意的時候,沒有行之有效的手段可以托起一個更加合理的黨派/候選人。這個也許是政治制度的缺陷,但也可能是其他方面的問題——比如如何讓更多人的發聲可以更加平等。

等到川普上臺,大新聞就沒有斷過——他本人的一些言論和做法實在是令人覺得匪夷所思。“反政治正確”我是支持的,但“逢政治正確所提倡的東西就反”就已經是另一回事了——政治正確是另一種形式的言論管制,反對管制是好的;但能成爲政治正確的言論和觀點中的多數都是良好的,反它們就不再是反管制而是開歷史倒車了。不過看他的言論,基本上就是不再講普世、不再宣稱要給全人類帶來民主與自由(“幸福”的同義詞),而是“別人死活與我何干,我只要美利堅強大就行”。對美國人來說,這顯然是好的——因爲前面那些年扯普世之類的開銷還是本國公民的稅款,卻沒用在本國人民身上。

作爲一個好歹有點全人類意識以及知道傳說中共產主義一定不可能只在一個國家實現的人,我只能說這都是歷史倒車,實在是看得人唏噓不已——曾經的燈塔國怎麼也破敗到這份田地了。曾經的美國雖然滿口“共產主義不是玩意”,但好歹(名義上)在做的事是在向更好的社會制度、實現全人類的福祉靠攏的,而且的確起到了一定作用,可是現在呢?

然而更可笑的不是美國自己打自己的臉,而是國內網絡輿論。十多年前網絡輿論幾乎一邊倒地在說:美利堅是燈塔、人類的希望,中國一定要效仿美國。當時我朝這邊的應對部門(包括各種官媒)真心是戰五渣,除了扯旗子還是扯旗子。後來的確是隨着中國國力的提升,有越來越多人意識到原先的說法有問題,開始能較爲理性地分析。而這兩年——尤其是剛過去的一年——網絡輿論開始有了這樣的趨勢:普世價值就是扯淡,原先美國扯着嗓子提倡的所有東西都不好,都不應該要。變成這種狀態的原因呢?我不知道,但應該和美國自己打臉有關:美國自己開始反自己以前所提倡的“一些”東西了,於是國內一些人忽然信仰崩塌,於是出於一種不明但是普遍存在的原因,他們便從一個極端(美國說什麼都是好的)走到了另一個極端(美國以前說的都是不好的)。

如果說上面這種輿論風向是可笑,那麼還有一些就是可怕了。由於前些年美國強勢輸出價值觀、我朝毫無招架之力,故而我朝無論如何沒法說美國很不好,所以對美國和美國宣揚的東西給予很高評價,比如什麼三權分立啊、普世價值啊之類的。前幾年的時候我朝國力提升帶來的自信心終於大規模提起了,於是也開始搞自己的一套價值觀(所謂中國夢),試圖驅逐美國之前輸出的價值觀(主要是針對其中的私貨,因爲這種虎皮真心沒什麼可搞的)。然而在美帝自己打臉之後,我朝有那麼一部分人開始將火力集中到了普世價值之類的東西上。平心而論,普世價值這玩意雖然其中有那麼一部分東西是有意識形態在其中的,但更多的內容的確是普世的;三權分立雖然“不適合中國”,但起碼也有一個成功的典型。然而在這一兩年中,人類作爲整體、先進拉動落後之類的觀點慢慢地在被“自己國家強大就行管別人幹嘛”、“落後/貧窮是你自己不努力所以和我沒關係”這樣的東西取代,司法獨立也被人炮轟成“錯誤觀點”而不是“不合適觀點”。再加上最近幾年領導人大規模爲自己著書立傳,隱隱有搞個人崇拜的風氣,接下來幾年會是個什麼樣的確說不來。

扯了這麼半天政治,只是因爲政治是所有人的,所以人們的其他思想、行爲都是受到政治的影響的。而接下來,就是各種政治影響以及經濟發展社會變動下人們的變化。

受美帝自己打臉、開始進行封閉以及我朝宣傳能力上升的影響,相當一些人對我朝很滿意。然而無論一個人對我朝秉持什麼看法,我朝存在的問題還是存在。從前,在美分的眼中所有問題都是政治制度的黑鍋。而現在燈塔國不好用了,但是問題依然存在(而且又不能說是政府的問題),怎麼辦呢?那就把黑鍋丟給“傳統”吧,反正人們都覺得自己所習慣性去做或者去認知的東西都是“傳統”。

說來讓傳統背黑鍋實在是有一定歷史了,最起碼我們知道新文化運動時候就已經開始了。再加上有個叫柏楊的傢伙有本叫《醜陋的中國人》的書,很符合洋奴們的心態從而廣爲流傳,在美分大戰五毛的時代人們已經開始甩鍋給傳統了。當時人們見到什麼社會問題,就長吁短嘆一番,唸唸有詞道“在外國就不會有這種事”,然後口宣什麼“中華民族的劣根性”。

而看看整體社會風氣,資本的確成功了,錢成了絕對主導的度量標準。2006年的《武林外傳》中尚且是“人家會說我傍大款,傳出去多不好聽啊”,而十年後的2016年人們已經可以毫無羞恥地喊道“(王)思聰老公”、“馬雲爸爸”了。

與之相關的還有對待窮人的態度。現在網絡上一大批人的觀點已經固化成了:窮就是懶。早幾年的時候這種說法出現在一些描述非洲貧窮的文章中,是說黑人就是懶惰就是不幹活就是下等人種;後來擴展到了東南亞;而現在已經擴展到了看待國內的狀況。大批的人無視了社會的種種問題,一味地指責貧窮的人;而在看着馬雲的時候脫口而出“馬雲爸爸”。這樣的嘴臉實在是連“嫌貧愛富”都不足以描述了。

2012年的女權主義者還能做出在女廁所安裝立式便器的事(雖然是重複18世紀法國已經發生的行爲),好歹也算是真心實意認爲男女應該相同。然而到了這兩年,“女權主義者”已經開始主動爲男性爲尊添磚加瓦;甚至到了2017年春晚,“女人就是應該疼的”這樣的話也並沒有遭到任何批評。(女權主義者們卻在批別的槽點。爲什麼不同時帶上這一點呢?所以我實在無法理解他們到底是如何認知的。)

 

接下來幾年會是什麼樣,誰也說不好。全球都有封閉的趨勢,但表現方法不一樣,於是產生的影響也會不一樣。只能說走一步看一步,期望世界和平、向更好的社會制度穩步前進。

遷移到awesome 4

前兩天隨手全局刷了一下更新,結果一不留神awesome提示我的配置文件有問題。檢查之下,發現awesome已經到了4了,所以立即意識到配置文件又改了。然而由於當時較爲忙碌,就又downgrade回了3.5,直到週末纔重新更上4並折騰配置,到今天算是初有所成。

 

由於我的配置沒有魔改,所以遷移起來還是比較簡單的。遷移前毫無疑問地,首要事情就是備份自己原來的配置文件;同時可以去看看官方說明文檔。

官方文檔分爲兩個,一個是“簡明遷移文檔”(然而官方自己都說這個只能保證你的配置能用,新功能就別想了),另一個是新的特性文檔。遷移文檔我看了一下就扔下了,然後對着新特性研究了一大半(然而還是沒看完)。

簡而言之呢,在我修改的時候,涉及到的新特性有這麼幾個:

  1. 增加了快捷鍵功能顯示界面(modekey+s)
    • 這個功能實際上是爲每個快捷鍵定義增加了一個可選參數,在其中寫上說明以及分組
    • 正確使用需要手動在快捷鍵設置的函數定義後增加這個參數,比葫蘆畫瓢即可
  2. 又重新增加了declarative layout(聲明式佈局?),同時默認配置中的頂部面板(panel)佈局改爲使用declarative layout
  3. 對象的屬性可以直接賦值(想來是有了鉤子/監聽器),而不必再使用set_xxx()
  4. screen現在是動態的(以前不是?)而且是個對象,並且遍歷所有屏幕建議使用awful.screen.connect_for_each_screen(function(s)
  5. 許多舊的api列爲deprecated,並將在日後逐步刪除
  6. 默認爲每個normal(通常?)和dialog(對話框)窗口加上標題欄

由於我之前也沒用什麼奇怪的庫(僅用了awesome-freedesktop和vicious),所以整個過程其實不難:將原來的配置文件($HOME/.config/awesome/rc.lua)備份一下,將新的配置文件/etc/xdg/awesome/rc.lua複製過去,然後開始vimdiff。

  • 一部分設置的位置變了,但內容沒變,所以保留原始狀態不變
  • menu的項目改成原來的
  • tasklist右鍵的默認動作單獨提了出來,不知道具體爲了什麼,但我將它留在原地
  • widget配置方式改成declarative的
    • 糅合panel配置,都放到專門的panels.lua中(因爲我搞了倆panel,上面一個、左邊一個)
  • 爲自己的快捷鍵增加說明
  • 調整窗口默認規則
  • 把normal窗口的默認標題欄去掉

嗯,基本就是這些了吧。剩下的那些邊邊角角的情況都是比葫蘆畫瓢即可。

 

讓我感到比較奇妙的是awesome 4增加的這倆東西:

  1. 新的widget
    • 尤其是其中的piechart和arcchart,感覺可以用來更好地顯示資源佔用了(我原來是用的vicious的文本)
  2. shape api
    • 其中有圓角的支持

然而由於我功力不夠,沒能摸索出來如何更好地使用這些東西……而直接搜索也沒搜到有用的信息(因爲太新了?)。所以接下來一段時間就要摸索這個咯(當然,有時間的話)……