xmonadの使い方
厳密には意味が違うけどこんな感じの動きをするよって感じのところがいくつかあるので、その辺は多めに見てください
こんなに素晴らしいWMはもっと広がるべき
http://xmonad.org/
ディストリビューション別インストール方法
- Debian (GNU/Linux)←ココ重要
- Ubuntu
- Debianと同じ
- Arch
- pacmanでインストールできる
- wikiにいろいろ載ってる
- http://wiki.archlinux.org/index.php/Xmonad
使い方
mod + shift + return | terminalを起動 |
mod + p | dmenuを起動 |
mod + shift + c | windowを閉じる |
mod + space | レイアウトの切り替え(ローテート) |
mod + shift + space | デフォルトのレイアウトに戻す |
mod + j, mod + k | フォーカスの移動 |
mod + return | フォーカスのあるwindowとマスターwindowを入れ替える |
mod + shift + j, mod + shift + k | フォーカスのあるwindowと次のwindowを入れ替える |
mod + h, mod + l | マスターエリアの大きさを変更 |
mod + shift + q | xmonadを終了 |
mod + q | xmonadを再起動 |
mod + [1-9] | ワークスペースを移動 |
マウス関連
mod + 左クリック | windowを掴みながら動かす |
mod + 右クリック | windowを掴みながらリサイズ |
mod + t | 掴んで浮いたwindowをタイルスタイルに戻す |
ポインタを理解してるというのは気のせいだった
void copy_test (char *pointer) { char *str = "test"; pointer = malloc(strlen(str) + 1); strcpy(pointer, str); } int main (void) { char *test; copy_test(test); printf("%s\n", test); free(test); return 0; }
なんでうまくいかないのか理解できなかった
void copy_test (char **pointer) { char *str = "test"; *pointer = malloc(strlen(str) + 1); strcpy(*pointer, str); } int main (void) { char *test; copy_test(&test); printf("%s\n", test); free(test); return 0; }
こうしなきゃいけないよね
%と/と-を使わないFizz Buzz
眠い、寝る。
#include <stdio.h> #include <stdlib.h> int *table; void set (int to) { int i; table = calloc(to + 1, sizeof(int)); for (i = 0; i <= to; i++) table[i] = 0; for (i = 3; i <= to; i += 3) table[i] = 1; for (i = 5; i <= to; i += 5) table[i] = 2; for (i = 15; i <= to; i += 15) table[i] = 3; } void unset () { free(table); } void fizzbuzz (int to) { int i; set(to); for (i = 1; i <= to; i++) { switch (table[i]) { case 1: printf("Fizz\n"); break; case 2: printf("Buzz\n"); break; case 3: printf("Fizz Buzz\n"); break; default : printf("%d\n", i); break; } } unset(); } int main (void) { fizzbuzz(100); return 0; }
%と/を使わないFizz Buzz
暇だから考えてみた
#include <stdio.h> int keisan (int num1, int num2) { while (num1 > 0) num1 -= num2; return num1; } void fizzbuzz (int to) { int i; for (i = 1; i <= to; i++) { if (!keisan(i, 15)) printf("Fizz Buzz\n"); else if (!keisan(i, 3)) printf("Fizz\n"); else if (!keisan(i, 5)) printf("Buzz\n"); else printf("%d\n", i); } } int main (void) { fizzbuzz(100); return 0; }