icewm教程

一 基本知识

  1. 安装后,默认配置文件在 /usr/share/icewm目录下。

    1
    2
    3
    4
    5
    $ sudo apt install icewm
    $ sudo apt install menu
    $ sudo updated-menus -v #自动生成icewm的程序菜单
    $ icewm-session # 启动iecwm后,会在/home/myname/目录下生成 .icewm目录。
    $ cp /usr/share/icewm/一些文件 ~/.icewm/

    要copy的文件不多,主要有以下几个:

    需要配置的文件不多,有以下几个
    menu 配置菜单
    preferences IceWM的系统配置
    keys 自定义快捷键
    toolbar 配置出现在任务栏的按钮
    winoptions 配置特定窗口的行为
    startup icewm-session启动后执行的脚本
    theme 当前的theme
    prefoverride 覆盖theme设置的

  2. 修扆背景图片
    vim ~/.icewm/preferences
    DesktopBackgroundImages = “/home/myname/wallpaper/bizhi.jpg”

二 配置文件menu

  1. 语法
    prog “标题“ 图标文件名(包括路径) 要执行的程序名(包括路径) 操作项
    menu “标题“ 图标文件名(包括路径) # 子菜单
    {
    prog “标题“ 图标文件名(包括路径) 要执行的程序名(包括路径) 操作项
    prog “标题“ 图标文件名(包括路径) 要执行的程序名(包括路径) 操作项
    menu “标题“ 图标文件名(包括路径) # 子子菜单
    {
    prog “标题“ 图标文件名(包括路径) 要执行的程序名(包括路径) 操作项
    prog “标题“ 图标文件名(包括路径) 要执行的程序名(包括路径) 操作项
    }
    }
    separator #分隔线
    prog “标题“ 图标文件名(包括路径) 要执行的程序名(包括路径) 操作项

  2. 例子
    prog “URxvt” /usr/share/pixmaps/urxvt.xpm /bin/sh -C “urxvt”
    separator
    prog “Xfce-terminal” ! x-terminal-emulator -ls
    prog “浏览器” /usr/share/pixmaps/mozilla-firefox.png mozilla-firefox
    separator
    menu “网络” folder
    {
    prog “FirFox” /usr/share/pixmaps/mozilla-firefox.png mozilla-firefox
    prog “Chrome” /usr/share/pixmaps/chromium-browser.png chromium-browser –no-sandbox
    }
    separator

/usr/share/pixmaps/里找到N多程序的图标

三 preferences 设置背影图,字体大小,图标大小等

  1. 例子
    MenuIconSize=24
    TitleFontNameXft=”Tahoma:size=9:bold,SimSun:size=9:bold”
    MenuFontNameXft=”Tahoma:size=9,SimSun:size=9”
    StatusFontNameXft=”Tahoma:size=9,SimSun:size=9”
    QuickSwitchFontNameXft=”Tahoma:size=9,SimSun:size=9”
    NormalButtonFontNameXft=”Tahoma:size=9,SimSun:size=9”
    ActiveButtonFontNameXft=”Tahoma:size=9:bold,SimSun:size=9:bold”
    NormalTaskBarFontNameXft=”Tahoma:size=9,SimSun:size=9”
    ActiveTaskBarFontNameXft=”Tahoma:size=9:bold,SimSun:size=9:bold”
    MinimizedWindowFontNameXft=”Tahoma:size=9,SimSun:size=9”
    ListBoxFontNameXft=”Tahoma:size=9,SimSun:size=9”
    ToolTipFontNameXft=”Tahoma:size=9,SimSun:size=9”
    ClockFontNameXft=”Tahoma:size=9:bold,SimSun:size=9:bold”
    ApmFontNameXft=”Tahoma:size=9,SimSun:size=9”
    InputFontNameXft=”Tahoma:size=9,SimSun:size=9”
    LabelFontNameXft=”Tahoma:size=9,SimSun:size=9”
    这样设置是针对某些theme所指定的字体不支持中文显式。Tahoma的英文字型比较好看,但其不支持中文,邃加入SimSun来支持中文
    ColorCPUStatusUser=”rgb:00/FF/00”
    ColorCPUStatusSystem=”rgb:FF/00/00”
    ColorCPUStatusInterrupts=”rgb:FF/FF/00”
    ColorCPUStatusIoWait=”rgb:60/00/60”
    ColorCPUStatusSoftIrq=”rgb:00/FF/FF”
    ColorCPUStatusNice=”rgb:00/00/FF”
    ColorCPUStatusIdle=”rgb:00/00/00”
    ColorNetSend=”rgb:FF/FF/00”
    ColorNetReceive=”rgb:FF/00/FF”
    ColorNetIdle=”rgb:00/00/00”
    WorkspaceNames=” 1 “, “ 2 “, “ 3 “, “ 4 “ #设定公作区的名字
    注意:这里的设置将影响所有的theme。
    DesktopBackgroundImages = “/home/myname/wallpaper/bizhi.jpg” # 壁纸

LAMP-SERVER 与 flask结合

结合php与python二者的优点,哈哈。咱菜鸟就是有奇葩的想法

一 安装 lamp-server 与 phpmyamdin
1
2
3
$ sudo apt install lamp-server^ -y
$ sudo apt install phpmyadmin -y
$ sudo ln -s /usr/share/phpmyadmin /home/me/mywww
二 安装 flask, 并验证其
1
2
3
4
5
6
$ sudo apt install python3
$ python3 -m venv myflask3 #建立虚环境
$ cd myflask3
$ source bin/activate #进入虚环境
$ pip install flask
# 编写 app.py,并验证。此处不多说
三 安装 wsgi
1
2
3
$ sudo apt install libapache2-mod-wsgi 
# 安装后会自动在/etc/apache2/mods-available/目录下生成 wsgi.conf wsgi.loadg两个文件
# /usr/lib/apache2/moudules/在wsgi两个文件
四 试验 wsgi 是否可用
  1. 在/var/www/目录下编写test.wsgi文件,内容为
    1
    2
    3
    4
    5
    6
    def application(environ,start-response)
    status="200 OK"
    output="Hellow,apache2+wsgi"
    response_headers=[('content-type','text/plain'),('contnet-type',str(len(output)))]
    start_response(status,response_headers)
    return[output]
  2. 修改/etc/apache2/apache2.conf 在末尾加上
    WSGIScriptAlias /test /var/www/test.wsgi
  3. 重启动apache2
    1
    $ sudo service apache2 restart 
    浏览器输入 localhost/test,如果网页上能看到 Hello,apache2+wsgi,则说明成功
五 把第二步的app.py改名为app.wsgi,并编辑
1
2
3
4
5
6
7
8
9
10
11
#coding:utf8  必须加,否则网页无法显示中文

activate_this = "/home/me/myflask/bin/activate_this.py" #让wsgi知道启动脚本的环境
exfile(activate_this,dict(__file__=activate_this))

from flask import Flask

application=Flask(__name__) # wsgi的应用对象必须命名为application,所以不是app
@application.rout('/')
def index():
return( " <H2>你好,apache2+flask! </H2>" )
六,再次编辑/etc/apache2/apache2.conf,在末尾

WSGIScriptAlias app /home/me/myflask/app.wsgi
重启apache服务,浏览器输入 localhost/app ,发现失败了。
查看apache2的错误信息

1
2
$ tail -f /var/log/apache2/error.log # 发现是存取目录失败。于是再次 
$ sudo vim /etc/apache2/apache2.conf

在末尾添加
| <Directory /home/me/myflask>
| require all granted
| require host ip
| Allow from all
|
保存退出,重启apache, 然后浏览器,成功得到flash的信息。

简易配置openbox

openbox
opmenu—选择安装主题,修改鼠标行为,设置桌面。
obmenu—-用来配置窗口管理器的其它部分。
stalonetray—-系统托盘
Tint22—-任务栏
xfce4-panel—另一种任务栏
openbox-themes—-
OpenBox的个人配置文件只有:
~/.config/openbox/autostart.sh
~/.config/openbox/menu.xml
~/.config/openbox/rc.xml
$ sudo updated-menus 获取原始数据,生成配置文件
/etc/X11/openbox/*
/etc/xdg/openbox/*
从这里把menu.xml和 rc.xml 拷贝到 ~/.config/openbox/里
$ sudo vim ~/.config/openbox/autostart.sh

$GLOBALAUTOSTART

墙纸

hsetroot - fill ~/wallpaper.jpg
xcompmgr -f -F -c -t-5 -l-5 -r4.2 -o.55 &

DOCK 设置,可以设成别的dock,不过不加dock也行

cairo-dock &

独立托盘

stalonetray -W –sticky -t –fuzzy -edges 3 –geometry 4x24 +O -O –skip-taskbar –respect -icon -hints &

保存后,进入openbox桌面
$ exec /openbox/bin/openbox-session
1 启动obmenu,原有的菜单不喜欢,就改。
2 用obconf修改dock的设置,这个“独立托盘”就会自动隐藏了

LAMP安装后,phpmyadmin无法空密码登录

LAMP刚安装完后,mysql的用户root密码是空的,导致phpmyadmin无法登录,该如何解决呢?

一 安装 lamp-server 与 phpmyamdin
1
2
3
$ sudo apt install lamp-server^ -y
$ sudo apt install phpmyadmin -y
$ sudo ln -s /usr/share/phpmyadmin /home/me/mywww
二 修改 phpmyadmin配置
1
2
3
4
5
6
$ cd /usr/share/phpmyadmin/libraries
$ vim config.default.php
# 305行 $cfg['Servers'][$i]['nopassword']=false;
# 538行 $cfg['Servers'][$i]['AllowNopassword']=false;
# 把以上的false 改为 true
# 大约270行 $cfg['Servers][$i]['password']='';

保存后,则phpmyadmin允许空密码登录了。然而用root用户名依然不能登录!!!

四 查原因

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ sudo mysql
mysql> use mysql
mysql> select user,plugin from user;
+--------------------+-------------------------+
| user | plugin |
+--------------------+-------------------------+
| debian-sys-maint | mysql_native_password |
| mysql.infoschema | mysql_native_password |
| mysql.session | mysql_native_password |
| mysql.sys | mysql_native_password |
| phpmyadmin | mysql_native_password |
| root | auth_socket |
+--------------------+-------------------------+
# plugin=auth_socket则表示不允许ph登录, 所认必须把 root的plugin属性改为mysql_native_password

但是可以用phpmyadmin的用户名来登录

修改 root的plugin属性

1
2
3
mysql> updated user SET plugin='mysql_native_password' WHERE user='root';
mysql> flush privileges;
mysql> quit;

修改 root的密码

1
mysql> set password for 'root'@'localhost' = password('你设置的密码'

手工安装 LAMP-SERVER

安装
1
2
3
4
5
6
7
8
$ sudo apt install apache2
$ sudo apt install mysql-server mysql-client
$ sudo apt install php
$ sudo apt install libapache2-mcd-php7.x
$ sudo apt install php7.x-mysql

$ sudo service apache2 restart
$ sudo service mysql restart
卸载
1
2
3
$ sudo apt --purge remove apache2*
$ sudo apt --purge remove php*
.......

开关电源的QR模式

最近在冲电头展上,常听厂家上去说QR模式,什么是QR模式呢? 上网找了资料一查….

原来就是准谐振模式,那么究竟什么是准谐振开关电源呢?众所周知,开关电源的损耗主要来自于开关管的开关过程,由于开关管不是理想的开关器件,开关过程不是瞬间完成的,存在一定的过渡时间,传统的方波开关电源在这个过渡转换的时间里电压和电流均为零,存在重叠的区域,因而会产生开关的损耗,随着频率的升高,这种损耗会逐渐加大而限制开关电源频率的提高,同时由于在转换过程中电压和电流短时间内的急剧变化,也会产生很大的开关噪声,形成电磁干扰EMT。为克服方波开关电源的这一缺点,二十多年来人们一直致力于低功耗的软开关电源技术的探索,在电路中加入小电感或电容元件,利用谐振的原理,使开关两端的电压或电流的变化呈正弦波的变化规律,基本的设想是想办法使开关管能在电压过零ZVS (ZeroVoltage Switching)或电流过零ZCS (Zero Current Switching)的时候完成开关转换,以消除电压和电流的重叠,实现消除或减小功耗的目的。
谐振电源(Resonant SwitchingPower)的开关损耗能够降低,但电路相对复杂。在反激式开关电源中广泛应用的是准谐振的模式。所谓反激式是指原边主功率开关管与副边整流管的开关状态相反,开关管导通时,副边的整流二极管截止,反激式变换器只是在原边开关管导通时储存能量,当它截止时才向负载释放能量,故高频变压器在开关过程中,既起变压隔离作用,又是电感储能元件。反激式开关电源因电路简洁,容易实现多路输出而在彩电中得到广泛应用。不同于谐振开关电源谐振过程主动参与整个能量变化的过程(振荡>l}形为正弦波),准谐振模式是谐振只在整个电源能量变换的一个阶段—开关转换的时候完成(波形仍接近为方波),通过谐振使开关管在零电压(或最小电压)或者是零电流的时刻完成开关转换,同时又保持方波开关电源的高能量传输模式,因此称为准谐振(quasi-resanent )QR。

PFM对比PWM,区别和优势在哪里?

开关电源的控制技术主要有三种:

1.脉冲宽度调制(PWM);
2.脉冲频率调制(PFM);
3.脉冲宽度频率调制(PWM-PFM).

PWM:(pulse width modulation)脉冲宽度调制

脉宽调制 PWM 是开关型稳压电源中的术语。这是按稳压的控制方式分类的,除了 PWM 型,还有 PFM 型和 PWM、PFM 混合型。脉宽宽度调制式(PWM)开关型稳压电路是在控制电路输出频率不变的情况下,通过电压反馈调整其占空比,从而达到稳定输出电压的目的。

PFM:(Pulse frequency modulation) 脉冲频率调制

一种脉冲调制技术,调制信号的频率随输入信号幅值而变化,其占空比不变。由于调制信号通常为频率变化的方波信号,因此,PFM 也叫做方波 FM

PWM 是频率的宽和窄的变化,PFM 是频率的有和无的变化, PWM 是利用波脉冲宽度控制输出,PFM 是利用脉冲的有无控制输出 .

其中 PWM 是目前应用在开关电源中最为广泛的一种控制方式,它的特点是噪音低、满负载时效率高且能工作在连续导电模式,现在市场上有多款性能好、价格低的 PWM 集成芯片,如 UCl842/2842/3842、TDAl6846、TL494、SGl525/2525/3525 等;

PFM 具有静态功耗小的优点,但它没有限流的功能也不能工作于连续导电方式,具有 PFM 功能的集成芯片有 MAX641、TL497 等;

PWM-PFM 兼有 PWM 和 PFM 的优点。

DC/DC 变换器

DC/DC 变换器是通过与内部频率同步开关进行升压或降压,通过变化开关次数进行控制,从而得到与设定电压相同的输出电压。PFM 控制时,当输出电压达到在设定电压以上时即会停止开关,在下降到设定电压前,DC/DC 变换器不会进行任何操作。但如果输出电压下降到设定电压以下,DC/DC 变换器会再次开始开关,使输出电压达到设定电压。PWM 控制也是与频率同步进行开关,但是它会在达到升压设定值时,尽量减少流入线圈的电流,调整升压使其与设定电压保持一致。

与 PWM 相比,PFM 的输出电流小,但是因 PFM 控制的 DC/DC 变换器在达到设定电压以上时就会停止动作,所以消耗的电流就会变得很小。因此,消耗电流的减少可改进低负荷时的效率。PWM 在低负荷时虽然效率较逊色,但是因其纹波电压小,且开关频率固定,所以噪声滤波器设计比较容易,消除噪声也较简单。

若需同时具备 PFM 与 PWM 的优点的话,可选择 PWM/PFM 切换控制式 DC/DC 变换器。此功能是在重负荷时由 PWM 控制,低负荷时自动切换到 PFM 控制,即在一款产品中同时具备 PWM 的优点与 PFM 的优点。在备有待机模式的系统中,采用 PFM/PWM 切换控制的产品能得到较高效率。

就 DC-DC 变换器而言目前业界 PFM 只有 Single Phase,且以 Ripple Mode 的模式来实现,故需求输出端的 Ripple 较大。没有负向电感电流,故可提高轻载效率。由于是看输出 Ripple,所以 Transient 很好,在做 Dynamic 的时候没有 under-shoot。PWM 有 Single Phase &Multi-phase,多以 Voltage Mode or Current Mode 来实现,对输出 Ripple 没有要求,轻载时存在电感负向电流,故轻载效率较差,Compensation 较 Ripple 相比较慢。将 PWM 于 PFM 结合使用,当侦测到电感负电流的时候,变出现 Pulse Skipping,而不再受内部 Clock 控制。此时,controller will turnoff both h-mos & l-mos,Coss & L 会出现阻尼振荡。

每位工程师接触的领域不一样,可能有的领域是用 PFM 比较多,有的是用 PWM 比较多,但从整个电源行业来说,相信目前还是 PWM 用的多 . 上世纪 80 年代至今,PWM 开始了在电源变换领域的“王朝统治”地位,因为每种方式都有缺点和优点 . 关键还是看是否适合客户需要吧在论坛看到一位网友是这样写的,我觉得写的比较形象,他说如果把 PFM 与 PWM 的电源用车来比较的话,用 PFM 的=奔驰,用 PWM 的=大众。

PFM 相比较 PWM 主要优点在于效率
  1. 对于外围电路一样的 PFM 和 PWM 而言,其峰值效率 PFM 与 PWM 相当,但在峰值效率以前,PFM 的效率远远高于 PWM 的效率,这是 PFM 的主要优势 .
  2. PWM 由于误差放大器的影响,回路增益及响应速度受到限制,PFM 具有较快的响应速度
PFM 相比较 PWM 主要缺点在于滤波困难
  1. 滤波困难(谐波频谱太宽)。
  2. 峰值效率以前,PFM 的频率低于 PWM 的频率,会造成输出纹波比 PWM 偏大。
  3. PFM 控制相比 PWM 控制 IC 价格要贵。

PFM 之所以应用没有 PWM 多最主要的一个原因就是另外一个原因就是 PWM 的巨大优点了:控制方法实现起来容易,PFM 控制方法实现起来不太容易

有趣的话二

  1. 很多时候网上的正义不值一提,因为你以为的正义有可能不是正义

  2. 既然己经跌到谷底了,怎么走都是向上。

  3. 他那么普通,却那么自信

  4. 如果你仅仅只是专程夸我那么就大可不必了,我也觉得我自己很不错。

  5. 甜言与我三冬暖,恶语伤人六月寒

  6. 有趣的灵魂精神出轨,好看的皮囊现实劈腿。

  7. 反正我不尴尬,尴尬的就是别人。

  8. 我15岁以前的新事物都是史前文明,我15-30岁之间的新事物都是改变人类历史的最重要发明,我30岁以后的新事物都是异端邪说。

  9. 人们需要的也不是真相,人们南要的是自己相看的真相。

  10. 喂,120吗?这里有人社死了,快来一辆救护车啊。

    喂,114吗?请问社死了肿么办?啥,直接送火葬场,电话号,好……,我记一下。

    喂,119吗?社死是拿板子还是拿钳子救?可以动用云梯吗?

    喂,110吗?请问社死的人抓不抓,算不算刑事罪?

  11. 所谓营销,就是让顾客以为自己不是来买东西的,而是来占便宜的。

  12. 一个十八九岁没有女朋友的男孩子,往往心里藏的女人抵得上皇帝古十六宫的数目,心里的污秽有时过于公共厕所—–钱钟书

  13. 忍一时海阔天空,退一步越想越气。

有趣的话一

  1. 只有孤独的灵魂,才会越晚越清醒;
  2. 我们都曾不堪一击,我们终将刀枪不入;
  3. 爱已时过境迁,恨已沧海桑田;
  4. 小舟从此逝,江海寄余生;
  5. 酒杯太浅敬不了来日方长,巷子太短到不了白发苍苍;
  6. 想念有个别名叫做自捅千刀;
  7. 有一种悲伤,是你的名字刻在我的过往;
  8. 原来念念不忘的那些年,只是因为得不到;
  9. 离开你并不可怕,可怕的是我要收起对你的依赖;
  10. 愿你的故事细水长流,也祝我的孤独择日而止;
  11. 长不过执念,短不过善变;
  12. 我遇见过很多人,唯独没有再遇见你;
  13. 无论你有多坚强,总有人是你的致命伤;
  14. 任何关系,你想要陌生,我都不会多看你一眼;
  15. 白天笑给别人看,晚上哭给自己听;
  16. 我喜欢你,从天南到地北,从地老到天荒;
  17. 没有什么是不可替代的,包括你;
  18. 故事的开始我们无话不说,故事的结尾我们不发一言;
  19. 你不懂我的沉默,又怎知我的难过;
  20. 每当与锣鼓花轿错身而过,那往日的誓言就绞痛心扉。

Hexo添加菜单与分类

为 hexo添加菜单,并在其显示分类文章

在这个菜单增加多个文章

一 菜单项下的文章按分类(categories)来归档,比如增加termux菜单
  1. 编辑 themes/当前主题/_config.yml文件,在menu下添加
    1
    2
    menu:
    termux: categories/termux
  2. 修改themes/当前主题/languges/目录下zh-CN.yml,增加对应的中文名

二 菜单项下的文章按标签(tags)来归档

  1. 编辑 themes/当前主题/_config.yml文件,在menu下添加
    1
    2
    menu:
    termux: tags/termux
  2. 修改themes/当前主题/languges/目录下zh-CN.yml,增加对应的中文名

三 在菜单下增加 categories 或 tags菜单

1.

1
2
3
4
$ hexo new page categories
# 会在 myblog/source目录下生成categories目录,并在里生成index.html文件
$ hexo new page tags
# 会在 myblog/source目录下生成tags目录,并在里生成index.html文件
  1. 编辑 myblog/source/categories/index.html文档

title: 文章分类
date: 1999-01-01 09:01:01
type: “categories”
layout: “categories”

  1. 编辑 myblog/source/tags/index.html文档

title: 文章分类
date: 1999-01-01 09:01:01
type: “tags”
layout: “tags”

在这个菜单下只有一个文章

  1. $ hexo new page termux,会在 myblog/source目录下生成termux目录,并在里面生产一个index.md文件
  2. 编辑 themes/当前主题/_config.yml文件,在menu下添加
    1
    2
    menu:
    termux: termux
  3. 修改themes/当前主题/languges/目录下zh-CN.yml,增加对应的
  4. 修改 myblog/source/termux/index.md文件,这个文件就是此菜单要显示的内容。往往ablout就是这么来的。