<?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>Tools on MEMEX</title>
    <link>https://memex.keinmal.top/tags/tools/</link>
    <description>Recent content in Tools on MEMEX</description>
    <generator>Hugo --0.164.0</generator>
    <language>zh-cn</language><managingEditor>wyz2016zxc@outlook.com(Hiraeth)</managingEditor><webMaster>wyz2016zxc@outlook.com(Hiraeth)</webMaster><lastBuildDate>Wed, 30 Sep 2026 05:31:28 +0000</lastBuildDate><atom:link href="https://memex.keinmal.top/tags/tools/index.xml" rel="self" type="application/rss+xml" /><item>
      <title>linux手册</title>
      <link>https://memex.keinmal.top/docs/linux/linux-handbook/</link>
      <pubDate>Sat, 25 Oct 2025 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://memex.keinmal.top/docs/linux/linux-handbook/</guid>
      <description>&lt;h1 id=&#34;linux-handbook&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#linux-handbook&#34;&gt;#&lt;/a&gt;Linux Handbook&lt;/h1&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;details open&gt;
    &lt;summary&gt;TEXT&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-&#34; data-lang=&#34;&#34;&gt;bash &amp;lt;(curl -sSL https://linuxmirrors.cn/main.sh)&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;&lt;details open&gt;
    &lt;summary&gt;TEXT&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-&#34; data-lang=&#34;&#34;&gt;bash &amp;lt;(curl -sSL https://linuxmirrors.cn/docker.sh)&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;&lt;details open&gt;
    &lt;summary&gt;TEXT&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-&#34; data-lang=&#34;&#34;&gt;bash &amp;lt;(curl -sSL https://linuxmirrors.cn/docker.sh) --only-registry&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;&lt;h2 id=&#34;file&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#file&#34;&gt;##&lt;/a&gt;file&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;filedialog&lt;/code&gt; 是其他应用需要选择文件时的弹窗&lt;/p&gt;
&lt;h2 id=&#34;boot&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#boot&#34;&gt;##&lt;/a&gt;boot&lt;/h2&gt;
&lt;h2 id=&#34;display-manager&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#display-manager&#34;&gt;##&lt;/a&gt;display manager&lt;/h2&gt;
&lt;p&gt;lightdm 有一堆莫名其妙的问题&lt;/p&gt;
&lt;p&gt;gtk display还不知道怎么搞&lt;/p&gt;</description></item><item>
      <title>latex基本概念</title>
      <link>https://memex.keinmal.top/docs/software/latex/</link>
      <pubDate>Mon, 25 Aug 2025 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://memex.keinmal.top/docs/software/latex/</guid>
      <description>&lt;h1 id=&#34;latex概览&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#latex%e6%a6%82%e8%a7%88&#34;&gt;#&lt;/a&gt;latex概览&lt;/h1&gt;
&lt;h2 id=&#34;tex-和-latex&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#tex-%e5%92%8c-latex&#34;&gt;##&lt;/a&gt;tex 和 latex&lt;/h2&gt;
&lt;h3 id=&#34;1-tex底层排版引擎&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#1-tex%e5%ba%95%e5%b1%82%e6%8e%92%e7%89%88%e5%bc%95%e6%93%8e&#34;&gt;###&lt;/a&gt;&lt;strong&gt;1. TeX：底层排版引擎&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;作者&lt;/strong&gt;：Donald Knuth（高德纳）开发，1978 年发布。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;定位&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;是一个&lt;strong&gt;底层的排版编程语言&lt;/strong&gt;，提供精确的排版控制（如盒模型、断行算法、数学公式布局等）。&lt;/li&gt;
&lt;li&gt;语法类似编程（需手动处理格式细节），适合专业人士或极客。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;特点&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;直接操作命令（如 &lt;code&gt;\hbox&lt;/code&gt;, &lt;code&gt;\vskip&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;默认生成 &lt;code&gt;.dvi&lt;/code&gt; 文件（需转换为 PDF/PS）。&lt;/li&gt;
&lt;li&gt;无预定义的高层结构（如章节、目录需手动实现）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;示例（纯 TeX 代码）&lt;/strong&gt;：&lt;/p&gt;</description></item><item>
      <title>一些nvim的配置和使用技巧</title>
      <link>https://memex.keinmal.top/docs/software/nvim-trick/</link>
      <pubDate>Wed, 06 Aug 2025 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://memex.keinmal.top/docs/software/nvim-trick/</guid>
      <description>&lt;h1 id=&#34;一些nvim的配置和使用技巧&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#%e4%b8%80%e4%ba%9bnvim%e7%9a%84%e9%85%8d%e7%bd%ae%e5%92%8c%e4%bd%bf%e7%94%a8%e6%8a%80%e5%b7%a7&#34;&gt;#&lt;/a&gt;一些nvim的配置和使用技巧&lt;/h1&gt;
&lt;h2 id=&#34;cmd&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#cmd&#34;&gt;##&lt;/a&gt;cmd&lt;/h2&gt;
&lt;p&gt;Lua 输出：&lt;/p&gt;
&lt;details open&gt;
    &lt;summary&gt;nvim&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-nvim&#34; data-lang=&#34;nvim&#34;&gt;:lua =vim.opt.runtimepath:get()&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;&lt;p&gt;&lt;code&gt;:setl ma! ma?&lt;/code&gt; 可以切换一个buffer的只读状态。
注意其他编辑器的只读一般是“你可以修改但不能保存“，这个是你根本不能修改，比如说根本就不能进入插入模式。
可以设一个顺手的keymap，比如说我是nnoremap &lt;silent&gt; ;m :setl ma! ma?&lt;cr&gt; 。&lt;/p&gt;</description></item><item>
      <title>timewarrior</title>
      <link>https://memex.keinmal.top/docs/software/timewarrior/</link>
      <pubDate>Wed, 18 Jun 2025 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://memex.keinmal.top/docs/software/timewarrior/</guid>
      <description>&lt;h1 id=&#34;timewarrior&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#timewarrior&#34;&gt;#&lt;/a&gt;timewarrior&lt;/h1&gt;
&lt;h2 id=&#34;help&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#help&#34;&gt;##&lt;/a&gt;help&lt;/h2&gt;
&lt;p&gt;A time tracking tool used to measure the duration of activities. 
.&lt;/p&gt;
&lt;details open&gt;
    &lt;summary&gt;TEXT&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-&#34; data-lang=&#34;&#34;&gt;
  Start tracking an activity:

      timew start

  Tag the current activity:

      timew tag activity_tag

  Start tracking and tag a new activity:

      timew start activity_tag

  Stop the current activity:

      timew stop

  Track an activity in the past:

      timew track start_time - end_time activity_tag

  View tracked items of the day:

      timew summary

  View report for the last day, week, current month, etc.:

      timew summary :today|yesterday|week|lastweek|month|lastmonth|year|lastyear&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;&lt;details open&gt;
    &lt;summary&gt;TEXT&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-&#34; data-lang=&#34;&#34;&gt;Usage: timew [--version]
       timew annotate @&amp;lt;id&amp;gt; [@&amp;lt;id&amp;gt; ...] &amp;lt;annotation&amp;gt;
       timew cancel
       timew config [&amp;lt;name&amp;gt; [&amp;lt;value&amp;gt; | &amp;#39;&amp;#39;]]
       timew continue [@&amp;lt;id&amp;gt;] [&amp;lt;date&amp;gt;|&amp;lt;interval&amp;gt;]
       timew day [&amp;lt;interval&amp;gt;] [&amp;lt;tag&amp;gt; ...]
       timew delete @&amp;lt;id&amp;gt; [@&amp;lt;id&amp;gt; ...]
       timew diagnostics
       timew export [&amp;lt;interval&amp;gt;] [&amp;lt;tag&amp;gt; ...]
       timew extensions
       timew gaps [&amp;lt;interval&amp;gt;] [&amp;lt;tag&amp;gt; ...]
       timew get &amp;lt;DOM&amp;gt; [&amp;lt;DOM&amp;gt; ...]
       timew help [&amp;lt;command&amp;gt; | dates | dom | durations | hints | ranges]
       timew join @&amp;lt;id&amp;gt; @&amp;lt;id&amp;gt;
       timew lengthen @&amp;lt;id&amp;gt; [@&amp;lt;id&amp;gt; ...] &amp;lt;duration&amp;gt;
       timew modify (start|end) @&amp;lt;id&amp;gt; &amp;lt;date&amp;gt;
       timew modify range @&amp;lt;id&amp;gt; &amp;lt;interval&amp;gt;
       timew month [&amp;lt;interval&amp;gt;] [&amp;lt;tag&amp;gt; ...]
       timew move @&amp;lt;id&amp;gt; &amp;lt;date&amp;gt;
       timew [report] &amp;lt;report&amp;gt; [&amp;lt;interval&amp;gt;] [&amp;lt;tag&amp;gt; ...]
       timew retag @&amp;lt;id&amp;gt; [@&amp;lt;id&amp;gt; ...] &amp;lt;tag&amp;gt; [&amp;lt;tag&amp;gt; ...]
       timew shorten @&amp;lt;id&amp;gt; [@&amp;lt;id&amp;gt; ...] &amp;lt;duration&amp;gt;
       timew show
       timew split @&amp;lt;id&amp;gt; [@&amp;lt;id&amp;gt; ...]
       timew start [&amp;lt;date&amp;gt;] [&amp;lt;tag&amp;gt; ...]
       timew stop [&amp;lt;tag&amp;gt; ...]
       timew summary [&amp;lt;interval&amp;gt;] [&amp;lt;tag&amp;gt; ...]
       timew tag @&amp;lt;id&amp;gt; [@&amp;lt;id&amp;gt; ...] &amp;lt;tag&amp;gt; [&amp;lt;tag&amp;gt; ...]
       timew tags [&amp;lt;interval&amp;gt;] [&amp;lt;tag&amp;gt; ...]
       timew track &amp;lt;interval&amp;gt; [&amp;lt;tag&amp;gt; ...]
       timew undo
       timew untag @&amp;lt;id&amp;gt; [@&amp;lt;id&amp;gt; ...] &amp;lt;tag&amp;gt; [&amp;lt;tag&amp;gt; ...]
       timew week [&amp;lt;interval&amp;gt;] [&amp;lt;tag&amp;gt; ...]

Additional help:
       timew help &amp;lt;command&amp;gt;
       timew help dates
       timew help dom
       timew help durations
       timew help hints
       timew help ranges

Interval:
       [from] &amp;lt;date&amp;gt;
       [from] &amp;lt;date&amp;gt; to/- &amp;lt;date&amp;gt;
       [from] &amp;lt;date&amp;gt; for &amp;lt;duration&amp;gt;
       &amp;lt;duration&amp;gt; before/after &amp;lt;date&amp;gt;
       &amp;lt;duration&amp;gt; ago
       [for] &amp;lt;duration&amp;gt;

Tag:
       Word
       &amp;#39;Single Quoted Words&amp;#39;
       &amp;#34;Double Quoted Words&amp;#34;
       Escaped\ Spaces

Configuration overrides:
       rc.&amp;lt;name&amp;gt;=&amp;lt;value&amp;gt;&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;&lt;h2 id=&#34;timew-dom---timewarrior-dom&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#timew-dom---timewarrior-dom&#34;&gt;##&lt;/a&gt;timew-dom - Timewarrior DOM&lt;/h2&gt;
&lt;p&gt;Supported DOM references are:&lt;/p&gt;</description></item><item>
      <title>taskwarrior</title>
      <link>https://memex.keinmal.top/docs/software/taskwarrior/</link>
      <pubDate>Tue, 17 Jun 2025 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://memex.keinmal.top/docs/software/taskwarrior/</guid>
      <description>&lt;h1 id=&#34;taskwarrior&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#taskwarrior&#34;&gt;#&lt;/a&gt;taskwarrior&lt;/h1&gt;
&lt;p&gt;Command-line to-do list manager. 
.&lt;/p&gt;
&lt;h2 id=&#34;overview&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#overview&#34;&gt;##&lt;/a&gt;overview&lt;/h2&gt;
&lt;p&gt;Taskwarrior has a flexible command line syntax, but it may not be clear at first what the underlying structure means. Here is the general form of the syntax:&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
  &lt;a
    href=&#34;https://taskwarrior.org/images/syntax.png&#34;
    class=&#34;img-link&#34;
    data-sub-html=&#34;&#34;
    target=&#34;_blank&#34;
  &gt;
    &lt;img
      src=&#34;https://taskwarrior.org/images/syntax.png&#34;
      alt=&#34;&#34;loading=&#34;lazy&#34;
    /&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;There are four parts to the syntax (&lt;code&gt;filter&lt;/code&gt;, &lt;code&gt;command&lt;/code&gt;, &lt;code&gt;modifications&lt;/code&gt;, and &lt;code&gt;miscellaneous&lt;/code&gt;), and each part is optional.&lt;/p&gt;
&lt;details open&gt;
    &lt;summary&gt;tldr&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-tldr&#34; data-lang=&#34;tldr&#34;&gt;  Add a new task which is due tomorrow:
      task add description due:tomorrow

  Update a task&amp;#39;s priority:

      task task_id modify priority:H|M|L

  Complete a task:

      task task_id done

  Delete a task:

      task task_id delete

  List all open tasks:

      task list

  List open tasks due before the end of the week:

      task list due.before:eow

  Show a graphical burndown chart, by day:

      task burndown.daily

  List all reports:

      task reports&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;&lt;p&gt;man:&lt;/p&gt;</description></item><item>
      <title>ffmpeg</title>
      <link>https://memex.keinmal.top/docs/software/ffmpeg/</link>
      <pubDate>Tue, 17 Jun 2025 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://memex.keinmal.top/docs/software/ffmpeg/</guid>
      <description>&lt;h1 id=&#34;ffmpeg&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#ffmpeg&#34;&gt;#&lt;/a&gt;ffmpeg&lt;/h1&gt;
&lt;details open&gt;
    &lt;summary&gt;tldr&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-tldr&#34; data-lang=&#34;tldr&#34;&gt;  Video conversion tool.
  More information: &amp;lt;https://ffmpeg.org&amp;gt;.

  Extract the sound from a video and save it as MP3:

      ffmpeg -i path/to/video.mp4 -vn path/to/sound.mp3

  Transcode a FLAC file to Red Book CD format (44100kHz, 16bit):

      ffmpeg -i path/to/input_audio.flac -ar 44100 -sample_fmt s16 path/to/output_audio.wav

  Save a video as GIF, scaling the height to 1000px and setting framerate to 15:

      ffmpeg -i path/to/video.mp4 [-vf|-filter:v] &amp;#39;scale=-1:1000&amp;#39; -r 15 path/to/output.gif

  Combine numbered images (`frame_1.jpg`, `frame_2.jpg`, etc) into a video or GIF:

      ffmpeg -i path/to/frame_%d.jpg -f image2 video.mpg|video.gif

  Trim a video from a given start time mm:ss to an end time mm2:ss2 (omit the -to flag to trim till the end):

      ffmpeg -i path/to/input_video.mp4 -ss mm:ss -to mm2:ss2 [-c|-codec] copy path/to/output_video.mp4

  Convert AVI video to MP4. AAC Audio @ 128kbit, h264 Video @ CRF 23:

      ffmpeg -i path/to/input_video.avi [-c|-codec]:a aac -b:a 128k [-c|-codec]:v libx264 -crf 23 path/to/output_video.mp4

  Remux MKV video to MP4 without re-encoding audio or video streams:

      ffmpeg -i path/to/input_video.mkv [-c|-codec] copy path/to/output_video.mp4

  Convert MP4 video to VP9 codec. For the best quality, use a CRF value (recommended range 15-35) and -b:v MUST be 0:

      ffmpeg -i path/to/input_video.mp4 [-c|-codec]:v libvpx-vp9 -crf 30 -b:v 0 [-c|-codec]:a libopus -vbr on -threads number_of_threads path/to/output_video.webm&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;</description></item><item>
      <title>pake打包web应用</title>
      <link>https://memex.keinmal.top/docs/dev/pake/</link>
      <pubDate>Sun, 08 Jun 2025 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://memex.keinmal.top/docs/dev/pake/</guid>
      <description>&lt;h1 id=&#34;pake打包web应用&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#pake%e6%89%93%e5%8c%85web%e5%ba%94%e7%94%a8&#34;&gt;#&lt;/a&gt;pake打包web应用&lt;/h1&gt;
&lt;p&gt;
可以将web转化为桌面应用，比&lt;code&gt;electron&lt;/code&gt;更轻量。&lt;/p&gt;
&lt;h2 id=&#34;安装pake&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#%e5%ae%89%e8%a3%85pake&#34;&gt;##&lt;/a&gt;安装pake&lt;/h2&gt;
&lt;p&gt;用户级安装：&lt;/p&gt;
&lt;details open&gt;
    &lt;summary&gt;TEXT&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-&#34; data-lang=&#34;&#34;&gt;npm -g install pake-cli&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;&lt;p&gt;需要&lt;code&gt;rust&lt;/code&gt;等工具链&lt;/p&gt;
&lt;h2 id=&#34;打包web应用&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#%e6%89%93%e5%8c%85web%e5%ba%94%e7%94%a8&#34;&gt;##&lt;/a&gt;打包web应用&lt;/h2&gt;
&lt;p&gt;例如&lt;/p&gt;
&lt;details open&gt;
    &lt;summary&gt;TEXT&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-&#34; data-lang=&#34;&#34;&gt;pake chat.deepseek.com --name deepseek --width 1080 --height 1920 --show-system-tray --icon 512x512-RGBA.png&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;&lt;p&gt;要注意的是分辨率设置，以及icon格式为512x512的png，似乎必须是&lt;code&gt;RGBA&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;会得到&lt;code&gt;deepseek.deb&lt;/code&gt;，内部结构为&lt;/p&gt;</description></item><item>
      <title>pake打包web应用</title>
      <link>https://memex.keinmal.top/docs/code/pake/</link>
      <pubDate>Sun, 08 Jun 2025 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://memex.keinmal.top/docs/code/pake/</guid>
      <description>&lt;h1 id=&#34;pake打包web应用&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#pake%e6%89%93%e5%8c%85web%e5%ba%94%e7%94%a8&#34;&gt;#&lt;/a&gt;pake打包web应用&lt;/h1&gt;
&lt;p&gt;
可以将web转化为桌面应用，比&lt;code&gt;electron&lt;/code&gt;更轻量。&lt;/p&gt;
&lt;h2 id=&#34;安装pake&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#%e5%ae%89%e8%a3%85pake&#34;&gt;##&lt;/a&gt;安装pake&lt;/h2&gt;
&lt;p&gt;用户级安装：&lt;/p&gt;
&lt;details open&gt;
    &lt;summary&gt;TEXT&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-&#34; data-lang=&#34;&#34;&gt;npm -g install pake-cli&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;&lt;p&gt;需要&lt;code&gt;rust&lt;/code&gt;等工具链&lt;/p&gt;
&lt;h2 id=&#34;打包web应用&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#%e6%89%93%e5%8c%85web%e5%ba%94%e7%94%a8&#34;&gt;##&lt;/a&gt;打包web应用&lt;/h2&gt;
&lt;p&gt;例如&lt;/p&gt;
&lt;details open&gt;
    &lt;summary&gt;TEXT&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-&#34; data-lang=&#34;&#34;&gt;pake chat.deepseek.com --name deepseek --width 1080 --height 1920 --show-system-tray --icon 512x512-RGBA.png&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;&lt;p&gt;要注意的是分辨率设置，以及icon格式为512x512的png，似乎必须是&lt;code&gt;RGBA&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;会得到&lt;code&gt;deepseek.deb&lt;/code&gt;，内部结构为&lt;/p&gt;</description></item><item>
      <title>Archlinux 上的包管理</title>
      <link>https://memex.keinmal.top/docs/linux/pacman/</link>
      <pubDate>Sun, 08 Jun 2025 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://memex.keinmal.top/docs/linux/pacman/</guid>
      <description>pacman的一些使用技巧</description></item><item>
      <title>grep</title>
      <link>https://memex.keinmal.top/docs/dev/grep/</link>
      <pubDate>Mon, 05 May 2025 00:00:00 +0000</pubDate><author>wyz2016zxc@outlook.com(Hiraeth)</author><guid>https://memex.keinmal.top/docs/dev/grep/</guid>
      <description>&lt;h2 id=&#34;grep&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#grep&#34;&gt;##&lt;/a&gt;grep&lt;/h2&gt;
&lt;p&gt;ref: 
&lt;/p&gt;
&lt;h2 id=&#34;count-occurrence--c&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#count-occurrence--c&#34;&gt;##&lt;/a&gt;Count Occurrence: &lt;code&gt;-c&lt;/code&gt;&lt;/h2&gt;
&lt;details open&gt;
    &lt;summary&gt;TEXT&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-&#34; data-lang=&#34;&#34;&gt;$ cat example.txt | grep -c good
2&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;&lt;h2 id=&#34;get-context--c&#34;&gt;
  &lt;a class=&#34;anchor inpage&#34; href=&#34;#get-context--c&#34;&gt;##&lt;/a&gt;Get Context: &lt;code&gt;-C&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Set &lt;code&gt;--context=0&lt;/code&gt; to print that line alone&lt;/p&gt;
&lt;details open&gt;
    &lt;summary&gt;TEXT&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-&#34; data-lang=&#34;&#34;&gt;$ cat example.txt | grep --context=0 &amp;#34;good luck&amp;#34;
good luck&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;&lt;p&gt;Set &lt;code&gt;--context=1&lt;/code&gt; to print 1 line below and 1 line above&lt;/p&gt;
&lt;details open&gt;
    &lt;summary&gt;TEXT&lt;/summary&gt;&lt;pre
        class=&#34;codeblock&#34;
      &gt;&lt;code class=&#34;language-&#34; data-lang=&#34;&#34;&gt;$ cat example.txt | grep --context=1 &amp;#34;good luck&amp;#34;
hello world
good luck
good day&lt;/code&gt;&lt;button type=&#34;button&#34; class=&#34;copybtn&#34;&gt;copy&lt;/button&gt;&lt;/pre&gt;&lt;/details&gt;&lt;p&gt;or use &lt;code&gt;-C 1&lt;/code&gt;&lt;/p&gt;</description></item></channel>
</rss>
