xmonadの使い方

厳密には意味が違うけどこんな感じの動きをするよって感じのところがいくつかあるので、その辺は多めに見てください
こんなに素晴らしいWMはもっと広がるべき
http://xmonad.org/


ディストリビューション別インストール方法


使い方

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をタイルスタイルに戻す

電卓できたよー><

卒研用のネタに朝から頑張ってたんだ。
疲れた。


式を入力するタイプのを作らなきゃいけないからちょっちめんどー。
字句解析、逆ポーランド記法変換、逆ポーランド記法計算
って感じで作った。


やっぱりC言語ってめんどくさいね。
特に文字列の扱いにくさ、メモリ管理とか。


まあとりあえず動くものが作れてよかった、よかった。


でも字句解析らへんでメモリリーkじゃkfl;

ポインタを理解してるというのは気のせいだった

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;
}