The way to CLI
在Linuxtoy上看到关于awesome的介绍后,突然想要摆脱Gnome或KDE或Xfce,决定要尽量向CLI迈进了。于是便有了这篇不短不长的文章。本文着重于常用软件的CLI解决,所以高深的东西就不谈了(其实也没资格)。
1. Awesome的安装
Awesome的维基其实是蛮囧的。我使用的发行版为兼容Ubuntu Hardy的LinumMInt Elyssa,但是按照其官方for Ubuntu Hardy的安装指南却装不上,最后还是用git的方式才把awesome3装上。详见此页,基本生一步一步照做就行了。要注意的是几乎一定会出现该指南中第三个Note所说的错误的,而且解决时后面的路径还是Tab出来吧,如果直接把指南中的代码复制进去会让人崩溃的。
2. Awesome的配置
装好就基本能用了,下面修改一下其默认配置文件基本就可用了:
1). 安装和使用wicked:
git clone git://git.glacicle.com/awesome/wicked.git
sudo cp wicked/wicked.lua /usr/share/awesome/lib/
sudo cp wicked/wicked.7.gz /usr/share/man/man7/
2). 修改默认主题,其实改一下背景就好了。最简单的方法是把/etc/xdg/awesome/themes拷贝到.config/awesome。以default为蓝本自己修改背景文件即可。较为灵活的方式是把自己的配置文件link到default。
注意:主题配置文件和rc.lua中最好都用绝对路径
3). 去掉窗口之间的缝隙:编辑rc.lua,查找honorsizehints,将其值改为false即可
4). 关于widgets在statusbar(就是桌面最上方的那条bar)中的排列顺序:首先分左右,也就是在statusbar的左端还是右端。这是由定 义widget时的aligh='right/left'指定的。然后再按照statusbar中列举的顺序分别排列。左边和右边的顺序各自是独立的。
5). 一个很有用的组合键:ctrl+win+r,可以让awesome重读rc.lua,马上看到修改rc.lua的效果
6). 最后一点注意的:awesome的配置文件的语法千变万化(orz...),所以看官方指南的时候一定要先滑到底部看到底是for awesome2还是for awesome3的指南。更囧的是官方一些for awesome3的widget也不能正常使用。如果不想再去学习一门lua语言的话,还是配置得简单一点吧。
3. 一些常用的CLI程序
1). 终端模拟器urxvt:为什么用urxvt呢?因为默认的xterm要正确显示中文还是需要一番设置的,想要速成的话还是用urxvt吧。ubuntu下 安装rxvt-unicode就可以了。之后在rc.lua中把xterm改成urxvt,我还加上了一些优化参数如下:
-tr:打开透明支持
-tint color:在打开透明支持的前提下,在背景上做一个单色alpha蒙版
-fg color:终端下主要字体的颜色。比如我使用的是一个黑色背景,则应该把该选项设置为亮色,如white,cyan,magenta等
-sr:把滚动条放在右边,比较符合习惯
在awesome中win+enter可以呼出默认终端,所以就不需要把上述优化参数加在.bashrc中了
另外,使用urxvt远程登入时会被提示unknown terminal而导致一些功能无法使用。解决方法是把本地机器的/usr/share/terminfo/r/rxvt-unicode拷贝到远程机器的同一目录中。
2). 音频播放器:个人还是比较习惯用mocp,安装的时候可以把它的ffmpeg插件也一并安装了。当然还有mp3blaster和mpd等可选,不过前者强烈不推荐,后者想要速成的话还是放弃吧。
mocp的爆音问题:其实是PCM设得太大了,其它程序也会有爆音的。我的解决方法是让mocp内置的音量调节功能不要去调节PCM而去调节Master。编辑.moc/config,找到关于alsa或oss的段落,把首选device从PCM改成Master就可以了。
mocp显示中文:当然可以把所有音乐的标签转换成utf8,不过为了兼容性考虑还是算了吧。我采用的是一种折衷的方法,让mocp不要去读取标签,改为直接显示文件名。在.moc/config中找到ReadTags,把值设为no就可以了。
mocp背景透明:编辑theme文件,把background和frame的背景色改为default就可以了。
3). 视频播放器:毫无疑问的mplayer,快捷键man去吧。关于中文字幕问题,要在.mplayer/config中加上subcp=936
4). 辞典:星际译王的终端接口sdcv
5). 文件管理器:推荐gnu的MC(midnight commander)。F1~F10为功能键。
默认使用vim编辑器:在mc的选项中取消“使用内置编辑器”,然后
sudo update-alternatives --config editor
选择vim.basic
设置透明:在.mc/ini最后加入
[Colors]
base_color=normal=white,default:marked=magenta,default
其实还可以完全透明掉,不过不知道为什么我这里总是不成功。不想折腾,爱折腾的可以自己google一下,绝对是可以实现的。
设置文件操作规则:编辑/etc/mc/mc.ext,看一下文件头的说明吧,语法还是很好懂的。
6). 图片查看器:用feh吧。推荐在rc.lua中把feh设置为浮动窗口启动(搜到Mplayer,然后把feh也像模像样加进去就可以了)
7). Todo list:本来想用todo.txt的todo.sh的,不过很神奇这个东西有语法错误。然后基于不折腾原则,找到了ikog,可用性还不错,也是基于todo.txt的
4. 其它需要注意的终端操作
awesome的program launcher:如果使用默认配置文件的话,win+F1就可以打开launcher了,之后应该输入命令
调节音量:amixer set Master/PCM 5%+,具体的man amixer
查看电池电量:acpi
终端的复制/粘贴操作:复制的话选中就可以了,粘贴一般可以用shift+insert,在opera中要用鼠标中键,不过应该可以map到键盘
休眠:sudo pmi action suspend
至此,实现了无折腾达到基本可用。之后怎么搞,爱深入研究什么东西就看个人意愿了。恩,也不知道我的the way会不会继续更新下去。
The way to CLI相关推荐
- 基于Golang的CLI 命令行程序开发
基于Golang的CLI 命令行程序开发 [阅读时间:约15分钟] 一. CLI 命令行程序概述 二. 系统环境&项目介绍&开发准备 1.系统环境 2.项目介绍 3.开发准备 三.具体 ...
- cli vue 卸载,vue Cli 环境删除与重装教程 - 版本文档
vue-cli 卸载,版本选择,安装 · 检测(图文教程:vue Cli 环境删除与重装) 重要说明: vue-cli 3.0+版本,使用的不是vue-cli,而是@vue/cli: 如果用以上的安装 ...
- ng命令汇总:Angular CLI 使用教程指南参考
Angular CLI 使用教程指南参考 Angular CLI 现在虽然可以正常使用但仍然处于测试阶段. Angular CLI 依赖 Node 4 和 NPM 3 或更高版本. 安装 要安装Ang ...
- Angular CLI在线安装和离线安装
Angular CLI 安装方式 默认已经安装了 Node.js 和 npm 包管理器. 1. 在线安装 可以使用外网的情况下,可以使用在线安装的方式. 要使用 npm 命令全局安装 CLI,请打开终 ...
- [Vue CLI 3] 插件编写实战和源码分析
当你看过了官方的几个插件之后,慢慢地,其实你也有需求了. 那如何编写一个 Vue CLI 3 的插件呢? 本文代码已经放到 github 上,地址:https://github.com/dailyno ...
- 命令行接口(CLI)将被取而代之,它不再是网络运维的主要工具
Gartner声称:到2020年,CLI的使用将日渐式微. 多年来,网络工程师依赖命令行接口:据市场研究公司Gartner的分析师们声称,但是这种使用很普遍的工具正在迅速让位于配置和运维网络的其他方法 ...
- neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead
1.现象描述: 以前在测试环境中使用过icehouse版本,记得当时查看网络列表是使用neutron net-list,最近两天在测试openstack ocata的时候发现好多之前的命令都不能正常使 ...
- 使用 Azure CLI 管理 Azure 虚拟网络和 Linux 虚拟机
Azure 虚拟机使用 Azure 网络进行内部和外部网络通信. 本教程将指导读者部署两个虚拟机,并为这些 VM 配置 Azure 网络. 本教程中的示例假设 VM 将要托管包含数据库后端的 Web ...
- 如何用node开发自己的cli工具
如何用node开发自己的cli工具 灵感 写这个工具的灵感以及场景源于youtube的一次闲聊 github 地址 blog首发 使用场景 原本我们写博客展示shell,例如:安装运转docker,一 ...
- Asterisk cli模块分析
最近写一些工具库,需要远程命令行调试(cli)功能,原有的一个cli模块是将接收处理的命令具体实现在cli模块中,其他模块需要修改添加自己的cli命令都需要去修改cli模块代码,觉得模块间耦合度太高, ...
最新文章
- java--String与int相互转换
- css 剪辑图片_CSS clip:rect 矩形剪裁功能,截取图片某一块
- shell变量$#,$@,$0,$1,$2解释
- VALSE 2020 公开征集 Workshop 候选讲者
- window.open('') 火狐,IE事件冒泡处理,点击事件冒泡处理
- spring mvc静态资源放行
- mac下使用php cURL方法nginx502错误
- STM32显示图片,将图片转换为十六进制数组便捷工具
- RPG游戏制作-06-与NPC的交互
- JavaScript权威指南7(四) 第十一章 JavaScript 标准库
- 振荡次数计算机控制系统,计算机控制第四章.ppt
- 51单片机仿真例程-PWM直流电动机
- IT行业怎么了?程序员按时上下班也被开除
- 驰骋BPM系统-表单引擎-流程引擎 页面更换
- android 拍摄视频后返回九宫格,抖音九宫格不同视频怎么拍 九个不同的视频在一个画面播放...
- 小伙的java之旅(4)
- android工具类怎么写,用kotlin写了一些android常用的一些工具类
- mmrotate学习记录
- 链夹式烟苗注水移栽机的总体设计
- 将基于Spring的UnitTest集成到Maven中