1362
コメント:
|
3002
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 1: | 行 1: |
作ったものの置き場所。プログラムに限らないかもしれない | = 小物類いろいろ = 作りっぱなし置きっぱなし。 |
行 3: | 行 4: |
=== お手軽ストップウォッチ === 1秒未満の精度がいらないとき用。英語の課題でスピーチの原稿を書いているとき、時間が測りたくなって5分足らずで書いた。このとき`difftime()`の存在を初めて知った。 * `clock_t`と`clock()`を使って`(end - start) / CLOCKS_PER_SEC`の方が良かった気がする {{{#!highlight c /* stopwatch.c */ #include <stdio.h> #include <time.h> int main(void) { time_t start, end; puts("Enter to start:"); getchar(); start = time(NULL); puts("Enter to stop:"); getchar(); end = time(NULL); printf("%.0f sec.\n", difftime(end, start)); return 0; } }}} === セルフタイマー付きでスクリーンショットを撮る === 一定時間`sleep`した後、ImageMagickの`import`を使って画面全体のキャプチャをするだけ。 * すぐに制御を返すので、このコマンド自体のコマンドラインを隠せる |
== スクリーンショット == === タイマー付き、画面全体 === 第一引数にファイル名、第2引数に待ち時間(指定しなければ0)を与える。すぐに制御を返す。 |
行 35: | 行 9: |
if [ $# -eq 0 ] then echo "usage: desktopcap filename [sleeptime]" exit 0 elif [ $# -eq 2 ] then |
if [ $# -eq 2 ]; then |
行 47: | 行 16: |
=== クリックしたウィンドウ === 実行するとマウスポインタが十字になるのでスクリーンショットを撮りたいウィンドウをクリックする。 {{{#!highlight sh #!/bin/sh id=$(xwininfo | grep "Window id:" | awk '{ print $4 }') && import -window $id $(date +"~/picture/scrnshot/scrnshot%y%m%d%H%M%S.png") }}} == dwm用ステータスバー == 環境や起動の仕方によってはdwmが終了しても生き残る場合があるので、そのような場合は生存確認をする。 {{{ pgrep -aU $(id -u) dwm > /dev/null if [ $? -eq 1 ]; then exit 0 else sleep 30 fi }}} === シンプルなバッテリ状態+時計 === あまり画面に余裕のないラップトップ用。 {{{#!highlight sh #!/bin/sh export LC_TIME=C # 曜日の表記のため while true; do b=$(acpi) state=$(echo $b | awk 'BEGIN{s=" "}/Discharging/{s="- "}/Charging/{s="+ "}END{print s}') remain=$(echo $b | awk '{print $4}'|tr -d '%,') xsetroot -name "$remain$state$(date +"%a %d %R")" sleep 30 done }}} === 普通の時計 === 月日と曜日、時刻。 {{{#!highlight sh #!/bin/sh while true; do xsetroot -name "$(date +"%m/%d(%a) %R")" sleep 30 done }}} == 色 == === 16色端末 === {{{#!highlight bash #!/usr/local/bin/bash reset="\033[0m" echo -e "\033[30mblack\t\033[1;30mbold black$reset" echo -e "\033[31mred\t\033[1;31mbold red$reset" echo -e "\033[32mgreen\t\033[1;32mbold green$reset" echo -e "\033[33myellow\t\033[1;33mbold yellow$reset" echo -e "\033[34mblue\t\033[1;34mbold blue$reset" echo -e "\033[35mmagenta\t\033[1;35mbold magenta$reset" echo -e "\033[36mcyan\t\033[1;36mbold cyan$reset" echo -e "\033[37mwhite\t\033[1;37mbold white$reset" }}} == デュアルディスプレイ == {{{#!highlight sh #!/bin/sh # vgaout.sh [l|r|t|b] on|off # monitor on the laptop LCD=LVDS1 # external monitor VGA=VGA1 orientation='-below' if [ $# -gt 1 ]; then case $1 in l) orientation='-left-of' ;; r) orientation='-right-of' ;; t) orientation='-upper' ;; b|*) orientation='-below' ;; esac op=$2 else op=$1 fi case $op in on) echo "$VGA: on($(echo $orientation | tr - \ | sed 's/^ \(.*\)/\1/') $LCD)" xrandr --output $VGA --auto $orientation $LCD ;; off) echo $VGA: off xrandr --output $VGA --off ;; *) echo unknown option exit 1 ;; esac }}} |
小物類いろいろ
作りっぱなし置きっぱなし。
スクリーンショット
タイマー付き、画面全体
第一引数にファイル名、第2引数に待ち時間(指定しなければ0)を与える。すぐに制御を返す。
クリックしたウィンドウ
実行するとマウスポインタが十字になるのでスクリーンショットを撮りたいウィンドウをクリックする。
dwm用ステータスバー
環境や起動の仕方によってはdwmが終了しても生き残る場合があるので、そのような場合は生存確認をする。
pgrep -aU $(id -u) dwm > /dev/null if [ $? -eq 1 ]; then exit 0 else sleep 30 fi
シンプルなバッテリ状態+時計
あまり画面に余裕のないラップトップ用。
普通の時計
月日と曜日、時刻。
色
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"
デュアルディスプレイ
1 #!/bin/sh
2 # vgaout.sh [l|r|t|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 t)
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