转载

入手 ThinkPad L450

入手 ThinkPad L450

元宵的时候,我从师兄手里买下了这台机子,全新,i5 4300U,8G内存,256G SSD,14寸 1366x768 屏幕。 只有 SSD 而没有 HDD 这点颇合我意,毕竟我没有囤积资源的癖好,256G 足矣,而且还能省下一笔 HDD 的钱。 机子在 ebay 上是 ¥3200,到手花了 ¥3700,以国内的价格来算还是值得的。

之前用的电脑是 Lenove G455,这台 10 年生产的机器陪伴着我姐走过了四年大学, 又在我的高强度使用下度过了大三上学期,现在它终于可以要退役了。这台电脑除了硬盘有点噪音之外,其实一切都运行良好。 单纯做编程的话其实够用,痛点主要是:

  • 无法用 FlashPlayer 流畅地播放 720P 的视频(当然这和 FlashPlayer 糟糕的性能也有很大关系);
  • 跑不起最近的 firefox 和 YCM:Gtk3 版的 FF 的 bugs 还是很多,虽然平时的 UI 响应似乎比 Gtk2 的时候好了一点,但是打开某些网页的时候还是会完全卡住,而 YCM 则有时会吃掉我 1G-1.5G 的内存,然而我的内存才 3G,实在是不堪重负。

现在一切都没问题了,这样的配置在我这个不太关心硬件的人看来,暂时是够用了。

ThinkPad 的外观比我想象中还要漂亮一些,塑料外壳摸起来很舒服,机身还算薄(不插上那个凸起的电池的话),键盘手感也不错。 另外崔土豪说屏幕可以 180 度展开,试了一下果然可以!说到屏幕…… 1366x768 其实还是低了,仔细看很容易看出像素点来。

机器预装 Windows 7,尽管我已经不用 Windows 好几个月了,但毕竟是个正版系统,用了这么多年盗版了,还是洗白一下吧。

至此,我使用的全部软件,全都是自由软件 & 正版软件啦!

Win7 可以升级到 10,升级的过程略坎坷,不知道是怪微软的更新服务器好还是怪国内糟糕的网络环境好。 Check Update 一直不动,从官网下载了在线升级器,下完了整个镜像之后死掉了。最后还是手动从官网下了镜像才装上的。

装完 Windows 后自然就装 Arch Linux 了,还好磁盘格式是 MBR(一直对 GPT 有莫名的恐惧),但是机器预装系统的时候已经把四个主分区都占用了 :( ,于是只好把最后的一个不知道是什么的 OS/2 格式的分区删掉,腾出主分区给 Arch。

在 Arch Wiki 的光芒照耀下 ,安装过程一切正常。

装好后尝试了一下 KDE,果然已经不适应了, pacman -Rsc 之,然后回到 XMoand。

趁着重新配置的时候更新了一下配置:

  • 使用 aur/ttf-iosevka 代替 Tsentsiu Mono HG 作为编辑器和终端的字体
  • 使用 xbindskey 管理快捷键,而不是用 xmoand 的 additionalKeys (听小药壶说可以用 scheme 来写 .xbindskeyrc)
  • 使用 terminator 代替 konsole
  • 使用 dzen2 +

    condy

    conky 代替 xmobar

    需要启动两个 dzen2,一个接受 xmoand 的输出,一个接受 conky 的输出,需要注意的是 dzen2 不支持 按屏幕的百分比显示, 我在网上找到了 这个脚本 ,可以从 xrandr 获取屏幕宽度,按指定的 比例算出宽度来,我针对我的需要做了一点修改:

#!/usr/bin/sh # Author: ervandew # Source: https://github.com/ervandew/dotfiles/blob/master/bin/dzen2 # # Wrapper around dzen2 that allows width and x to be defined as a screen # percentage.  The percentage width is define via the new '-wp' arg and # percentage x as -xp, both of which must be supplied before any other dzen # arguments. # #   $ dzen2 -wp 30 -xp 60 ... ##  external="^/(VGA/|DVI/|DP/|HDMI/)-/?[0-9]/+" internal="^/(eDP/|LVDS/)-/?[0-9]/+" pattern="connected /(primary /)/?/([0-9]/+/)x.*$"  # get internal monitor's width only # 仅获取笔记本屏幕的宽度 width=$(xrandr 2> /dev/null | grep "$internal $pattern" | sed "s/$internal $pattern//3/") # width=$(xrandr 2> /dev/null | grep "$external $pattern" | sed "s/$external $pattern//3/")  while [ 1 ] ; do     if [ "$1" == "-wp" ] ; then         arg="$arg -w `expr $(expr $width '*' $2) / 100`"     elif [ "$1" == "-xp" ] ; then         arg="$arg -x `expr $(expr $width '*' $2) / 100`"     else         break     fi     shift     shift done  FG='#aaaaaa' BG='#1a1a1a' FONT='-*-terminus-*-r-normal-*-*-110-*-*-*-*-iso8859-*'  cat - | dzen2 $arg "$@" -bg $BG -fg $FG -fn $FONT -e 'button2=;' -xs 1 

xmonad.hs 那边要这样写:

myLogHook xmproc = dynamicLogWithPP $ defaultPP                     { ppCurrent = dzenColor "#87ceff" "#1a1a1a" . pad                     , ppVisible = dzenColor "#aaaaaa" "#1a1a1a" . pad                     , ppHidden  = dzenColor "#aaaaaa" "#1a1a1a" . pad                     , ppUrgent  = dzenColor "#ff0000" "#1a1a1a" . pad                     , ppWsSep   = " "                     , ppSep     = "  |  "                     , ppLayout  = dzenColor "#87ceff" "#1a1a1a" .                                       ( /x -> case x of                                         "Tall"            -> "^i(" ++ myBitmapsDir ++ "/tall.xbm)"                                         "Mirror Tall"     -> "^i(" ++ myBitmapsDir ++ "/mtall.xbm)"                                         "Full"            -> "^i(" ++ myBitmapsDir ++ "/full.xbm)"                                         "Simple Float"    -> "~"                                         _                 -> x                                       )                     , ppTitle   = (" " ++) . dzenColor "white" "#1a1a1a" . dzenEscape . shorten 50                     , ppOutput  = hPutStrLn xmproc                     }  -- NB: dzen2 DOSEN'T support the option `-wp` and `-wx` (p => percentage), -- I use a shell wrapper from https://github.com/ervandew/dotfiles/blob/master/bin/dzen2 -- {bg,fg}color and font are also set by this wrapper -- myBitmapsDir = "/home/la/.xmonad/dzen2" myDzen2Wrapper = "/home/la/.xmonad/start_dzen2.sh" myXmonadBar = myDzen2Wrapper ++ " -wp 70 -h 18 -x 0 -y 0 -ta l" myStatusBar = "conky | " ++ myDzen2Wrapper ++" -xp 70 -wp 20 -h 18 -y 0 -ta r"  main = do     xmproc <- spawnPipe myXmonadBar     spawn myStatusBar     xmonad $ defaultConfig { --  ...     } 
  • 启用了 xmonad 的 smartBorder,这样在不需要边框的时候就不会有讨厌的边框了
myLayoutHook = avoidStruts $ layoutHook defaultConfig  main = do     xmproc <- spawnPipe myXmonadBar     spawn myStatusBar     xmonad $ defaultConfig { --  ...     myLayoutHook = avoidStruts $ layoutHook defaultConfig --  ...     } 
  • 受上面那个 dzen2 wrapper 启发,在 .xinitrc 里面增加了判断外接屏幕是否存在的脚本:
# Dual screens auto dectection internal="^/(/(eDP/|LVDS/)-/?[0-9]/+/)" external="^/(/(VGA/|DVI/|DP/|HDMI/)-/?[0-9]/+/)" pattern="connected /(primary /)/?/([0-9]/+/)x.*$"  inter_scr=$(xrandr 2> /dev/null | grep "$internal $pattern" | sed "s/$internal $pattern//1/") exter_scr=$(xrandr 2> /dev/null | grep "$external $pattern" | sed "s/$external $pattern//1/")  # 笔记本屏幕为主显示器 if [ ! -z "$exter_scr" ] ; then     xrandr --output ${exter_scr} --auto --output ${inter_scr} --primary --auto --right-of ${exter_scr} fi 
  • 使用 pacman 来管理 vim 插件(反正肥猫打包了一切

    • all plugins are managed by pacman
    • community/vim-nerdtree
    • community/powerline-vim
    • community/vim-doxygentoolkit
    • archlinuxcn/vim-fcitx
    • archlinuxcn/vim-youcompleteme-git

最后再贴一张图:

入手 ThinkPad L450

原文  https://lastavenger.github.io/2016/03/11/thinkpad-l450.html
正文到此结束
Loading...