ログイン
編集不可のページディスカッション情報添付ファイル
"clear/misc"の差分

MMA
23と24のリビジョン間の差分
2012-04-11 00:23:14時点のリビジョン23
サイズ: 3168
編集者: clear
コメント:
2012-04-22 17:15:48時点のリビジョン24
サイズ: 3517
編集者: clear
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 1: 行 1:
= 小物類いろいろ =
作りっぱなし置きっぱなし。
小物類いろいろ作りっぱなし置きっぱなし。

<<TableOfContents(3)>>
行 23: 行 24:

== dwmのパッチ ==
 * {{attachment:dwm-6.0-rotate.diff}} - ウィンドウ配置を時計回りに回転する機能を追加
 * {{attachment:dwm-6.0-statuscolor.diff}} - ステータス領域に独自の色を設定可能にする
 * {{attachment:dwm-6.0-rightlayout.diff}} - レイアウト表示を右端に移動

小物類いろいろ。作りっぱなし置きっぱなし。

スクリーンショット

タイマー付き、画面全体

第一引数にファイル名、第2引数に待ち時間(指定しなければ0)を与える。すぐに制御を返す。

   1 #!/usr/local/bin/bash
   2 if [ $# -eq 2 ]; then
   3     sleeptime=$2
   4 else
   5     sleeptime=0
   6 fi
   7 (sleep $sleeptime; import -window root $1; echo "captured.")&

クリックしたウィンドウ

実行するとマウスポインタが十字になるのでスクリーンショットを撮りたいウィンドウをクリックする。

   1 #!/bin/sh
   2 id=$(xwininfo | grep "Window id:" | awk '{ print $4 }') && import -window $id $(date +"scrnshot%y%m%d%H%M%S.png")

dwmのパッチ

       1 diff -u dwm-6.0/config.def.h dwm-6.0-rotate/config.def.h
       2 --- dwm-6.0/config.def.h	2011-12-20 00:02:46.000000000 +0900
       3 +++ dwm-6.0-rotate/config.def.h	2012-04-22 17:18:37.000000000 +0900
       4 @@ -62,6 +62,7 @@
       5  	{ MODKEY,                       XK_l,      setmfact,       {.f = +0.05} },
       6  	{ MODKEY,                       XK_Return, zoom,           {0} },
       7  	{ MODKEY,                       XK_Tab,    view,           {0} },
       8 +	{ MODKEY,                       XK_r,      rotate,         {0} },
       9  	{ MODKEY|ShiftMask,             XK_c,      killclient,     {0} },
      10  	{ MODKEY,                       XK_t,      setlayout,      {.v = &layouts[0]} },
      11  	{ MODKEY,                       XK_f,      setlayout,      {.v = &layouts[1]} },
      12 diff -u dwm-6.0/dwm.c dwm-6.0-rotate/dwm.c
      13 --- dwm-6.0/dwm.c	2011-12-20 00:02:46.000000000 +0900
      14 +++ dwm-6.0-rotate/dwm.c	2012-04-22 17:16:50.000000000 +0900
      15 @@ -211,6 +211,7 @@
      16  static void resizeclient(Client *c, int x, int y, int w, int h);
      17  static void resizemouse(const Arg *arg);
      18  static void restack(Monitor *m);
      19 +static void rotate(const Arg *arg);
      20  static void run(void);
      21  static void scan(void);
      22  static Bool sendevent(Client *c, Atom proto);
      23 @@ -1436,6 +1437,19 @@
      24  }
      25  
      26  void
      27 +rotate(const Arg *arg) {
      28 +	Client *c, *bottom;
      29 +
      30 +	if(!selmon->lt[selmon->sellt]->arrange)
      31 +		return;
      32 +
      33 +	for(bottom = c = nexttiled(selmon->clients); c; c = nexttiled(c->next))
      34 +		bottom = c;
      35 +	if(bottom)
      36 +		pop(bottom);
      37 +}
      38 +
      39 +void
      40  run(void) {
      41  	XEvent ev;
      42  	/* main event loop */
    
  • dwm-6.0-rotate.diff - ウィンドウ配置を時計回りに回転する機能を追加

       1 diff -u a/config.def.h b/config.def.h
       2 --- a/config.def.h	2011-12-20 00:02:46.000000000 +0900
       3 +++ b/config.def.h	2012-04-22 08:48:17.103205735 +0900
       4 @@ -8,6 +8,8 @@
       5  static const char selbordercolor[]  = "#005577";
       6  static const char selbgcolor[]      = "#005577";
       7  static const char selfgcolor[]      = "#eeeeee";
       8 +static const char statusbgcolor[]   = "#005577";
       9 +static const char statusfgcolor[]   = "#eeeeee";
      10  static const unsigned int borderpx  = 1;        /* border pixel of windows */
      11  static const unsigned int snap      = 32;       /* snap pixel */
      12  static const Bool showbar           = True;     /* False means no bar */
      13 diff -u a/dwm.c b/dwm.c
      14 --- a/dwm.c	2011-12-20 00:02:46.000000000 +0900
      15 +++ b/dwm.c	2012-04-21 09:41:52.985899280 +0900
      16 @@ -101,6 +101,7 @@
      17  	int x, y, w, h;
      18  	unsigned long norm[ColLast];
      19  	unsigned long sel[ColLast];
      20 +	unsigned long status[ColLast];
      21  	Drawable drawable;
      22  	GC gc;
      23  	struct {
      24 @@ -747,7 +748,7 @@
      25  			dc.x = x;
      26  			dc.w = m->ww - x;
      27  		}
      28 -		drawtext(stext, dc.norm, False);
      29 +		drawtext(stext, dc.status, False);
      30  	}
      31  	else
      32  		dc.x = m->ww;
      33 @@ -1618,6 +1619,9 @@
      34  	dc.sel[ColBorder] = getcolor(selbordercolor);
      35  	dc.sel[ColBG] = getcolor(selbgcolor);
      36  	dc.sel[ColFG] = getcolor(selfgcolor);
      37 +	dc.status[ColBorder] = 0;
      38 +	dc.status[ColBG] = getcolor(statusbgcolor);
      39 +	dc.status[ColFG] = getcolor(statusfgcolor);
      40  	dc.drawable = XCreatePixmap(dpy, root, DisplayWidth(dpy, screen), bh, DefaultDepth(dpy, screen));
      41  	dc.gc = XCreateGC(dpy, root, 0, NULL);
      42  	XSetLineAttributes(dpy, dc.gc, 1, LineSolid, CapButt, JoinMiter);
    
  • dwm-6.0-statuscolor.diff - ステータス領域に独自の色を設定可能にする

  • dwm-6.0-rightlayout.diff - レイアウト表示を右端に移動

dwm用ステータスバー

環境や起動の仕方によってはdwmが終了しても生き残る場合があるので、そのような場合は生存確認をする。

pgrep -aU $(id -u) dwm > /dev/null
if [ $? -eq 1 ]; then
    exit 0
else
    sleep 30
fi

シンプルなバッテリ状態+時計

あまり画面に余裕のないラップトップ用。

   1 #!/bin/sh
   2 export LC_TIME=C # 曜日の表記のため
   3 while true; do
   4     b=$(acpi)
   5     state=$(echo $b | awk 'BEGIN{s=" "}/Discharging/{s="- "}/Charging/{s="+ "}END{print s}')
   6     remain=$(echo $b | awk '{print $4}'|tr -d '%,')
   7     xsetroot -name "$remain$state$(date +"%a %d %R")"
   8     sleep 30
   9 done

普通の時計

月日と曜日、時刻。

   1 #!/bin/sh
   2 while true; do
   3     xsetroot -name "$(date +"%m/%d(%a) %R")"
   4     sleep 30
   5 done

16色端末

端末エミュレータの色設定を確認するためのもの。

   1 #!/usr/local/bin/bash
   2 reset="\033[0m"
   3 echo -e "\033[30mblack\t\033[1;30mbold black$reset"
   4 echo -e "\033[31mred\t\033[1;31mbold red$reset"
   5 echo -e "\033[32mgreen\t\033[1;32mbold green$reset"
   6 echo -e "\033[33myellow\t\033[1;33mbold yellow$reset"
   7 echo -e "\033[34mblue\t\033[1;34mbold blue$reset"
   8 echo -e "\033[35mmagenta\t\033[1;35mbold magenta$reset"
   9 echo -e "\033[36mcyan\t\033[1;36mbold cyan$reset"
  10 echo -e "\033[37mwhite\t\033[1;37mbold white$reset"

デュアルディスプレイ

ノートPCをプロジェクタ等に接続して外部出力する際の設定を行うスクリプト。

   1 #!/bin/sh
   2 # vgaout.sh [l|r|u|b] on|off
   3 
   4 # monitor on the laptop
   5 LCD=LVDS1
   6 # external monitor
   7 VGA=VGA1
   8 
   9 orientation='--below'
  10 if [ $# -gt 1 ]; then
  11     case $1 in
  12     l)
  13         orientation='--left-of'
  14         ;;
  15     r)
  16         orientation='--right-of'
  17         ;;
  18     u)
  19         orientation='--upper'
  20         ;;
  21     b|*)
  22         orientation='--below'
  23         ;;
  24     esac
  25     op=$2
  26 else
  27     op=$1
  28 fi
  29 
  30 case $op in
  31 on)
  32     echo "$VGA: on($(echo $orientation | tr - \  | sed 's/^ \(.*\)/\1/') $LCD)"
  33     xrandr --output $VGA --auto $orientation $LCD
  34     ;;
  35 off)
  36     echo $VGA: off
  37     xrandr --output $VGA --off
  38     ;;
  39 *)
  40     echo unknown option
  41     exit 1
  42     ;;
  43 esac

clear/misc (最終更新日時 2013-05-31 16:43:07 更新者 clear)