[ GNOMEプログラミング | gdmから使う | GNOMEリンク | 0からインストールした時の記録 ]
GNOMEプログラミング |
とりあえずGtk+が使えないとダメ
いまのとこ、Gnomeアプリを作るした準備の段階
GtkTargetEntry drop_types[] = {
{ "text/uri-list", 0, TARGET_URL },
{ "x-url/http", 0, TARGET_URL },
{ "x-url/ftp", 0, TARGET_NETSCAPE_URL },
{ "_NETSCAPE_URL", 0, TARGET_NETSCAPE_URL }
};
GtkTargetEntry drag_types[] = {
{ "_NETSCAPE_URL", 0, TARGET_URL }
};
gint n_drop_types =
sizeof(drop_types) / sizeof(drop_types[0]);
gint n_drag_types =
sizeof(drag_types) / sizeof(drag_types[0]);
シグナルのバインド
gtk_signal_connect (GTK_OBJECT (foo0), "drag_data_received",
GTK_SIGNAL_FUNC (receive_cb), &state);
gtk_signal_connect (GTK_OBJECT (foo1), "drag_data_get",
GTK_SIGNAL_FUNC (drag_cb), &state);
gtk_drag_dest_set (GTK_WIDGET (foo0),
GTK_DEST_DEFAULT_MOTION |
GTK_DEST_DEFAULT_HIGHLIGHT |
GTK_DEST_DEFAULT_DROP,
drop_types, n_drop_types,
GDK_ACTION_MOVE |
GDK_ACTION_COPY);
gtk_drag_source_set (GTK_WIDGET(foo1),
GDK_BUTTON1_MASK,
drag_types, n_drag_types,
GDK_ACTION_MOVE |
GDK_ACTION_COPY);
connect_to_method(Gtk_Main::timeout(jikan), this, &idle);
gdk_draw_rectangle(buffer, GTK_WIDGET(gtkobject)->style->white_gc, true, 0, 0, width, height);
struct _GdkImage
{
GdkImageType type;
GdkVisual *visual; /* visual used to create the image */
GdkByteOrder byte_order;
guint16 width;
guint16 height;
guint16 depth;
guint16 bpp; /* bytes per pixel */
guint16 bpl; /* bytes per line */
gpointer mem;
};
gdkImage = gdk_image_new(GDK_IMAGE_NORMAL, gdk_visual_get_system(), 640, 480);
void gdk_image_put_pixel (GdkImage *image, gint x, gint y, guint32 pixel);出来上がったら
gdk_draw_image(buffer, getGC(), gdkImage, 0, 0, 0, 0, 640, 480);
void gdk_image_destroy (GdkImage *image);
#include <iostream.h>
#include <fstream.h>
#include <streambuf.h>
#include <procbuf.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
int main() {
procbuf *myproc;
char ch;
myproc = new procbuf;
myproc->open("w", ios::in);
cout << myproc;
return 0;
}
static void get_mouse_position(gint *x, gint *y)
{
Window QueryRoot, QueryChild;
int AbsoluteX, AbsoluteY;
int RelativeX, RelativeY;
unsigned int ModKeyMask;
XQueryPointer(GDK_DISPLAY(), GDK_ROOT_WINDOW(),
&QueryRoot, &QueryChild, &AbsoluteX, &AbsoluteY,
&RelativeX, &RelativeY, &ModKeyMask );
*x = AbsoluteX;
*y = AbsoluteY;
}
gdmから使う |
% cp ~/.xsession ~/.gnomerc
#!/bin/shを先頭に書く
exec wmakerなどのウインドウマネージャの起動を指定している行をコメントアウトして
/usr/bin/gnome-sessionを追加(ここでexec /usr/bin/gnome-sessionで起動するとその後のセッションの記録が取れなくなりました。)
READMEによると gdm というユーザを作れ、とあったのでこれを作る。
# su -
# /usr/sbin/adduser gdm
% tar zxvf ../SOURCES/gdm-
% cd gdm
% ./configure;make
% sudo make install
% cd config
% ./configure;make
% sudo make install
で入れた。
/usr/local/etc/gdm以下の設定ファイルを編集 # cp /usr/local/etc/gdm/gnomerc /usr/local/etc/(シンボリックリンクの方が良いかも) /etc/inittabの書き換え # Run xdm in runlevel 5 x:5:respawn:/usr/local/bin/gdm -nodaemonとしておきました。 |
GNOMEリンク |
アプリケーション |
ビデオ編集ツール
各種SQLのためのフロントエンド
私の環境ではリリースバージョンはコンパイルできませんでした。
アプレット |
Lm_sensorsを利用して、CPUの温度やファンの回転を表示する。このアプレットの良い点は、表示したい項目をGUIでユーザが完全に設定できる点。
Ctrl+Alt+'+/-'とかしなくても、マウスだけで解像度が変えられる。
壁紙チェンジャー。複数の壁紙をランダムに定期的に変えることができる。
モジラからURLをDrag&DropしてURLリストを作る。Drag&Dropアプリ作成のの参考にしよう!
最高にクールなGNOMEアプレットの一つ!!Let's try it!。またアプレットを作成する際の参考としても最適。
NICの監視ができる。ちゃんとネットと通信してるか目安になる。
0からインストールした時の記録 |
最近やっとrpmシステムの概要が理解しつつあるので、 ファイルも多いことだしrpmで楽しようと考えた。
でも、バイナリで入れるのには抵抗があるし、普段使っていないCPUのためにも specファイルを元に自分でパッケージを作ってそれをインストールするという かたちにした。インストールするパッケージが多く、ルートでこの作業を続けるのは危険なため、 ユーザのディレクトリ以下でパッケージ作成を行えるように設定した。
rpmパッケージ作成作業をユーザのディレクトリで行う ~/.rpmrcに topdir: /home/GONBEE/local/rpm と記述(GONBEEを各自の環境に合わせる) 作業に必要なディレクトリを作成
% mkdir ~/local/rpm % mkdir ~/local/rpm/BUILD % mkdir ~/local/rpm/RPMS/ % mkdir ~/local/rpm/SOURCES % mkdir ~/local/rpm/SPECS % mkdir ~/local/rpm/SRPMSダウンロードしてきたファイルを~/local/rpm/SOURCESに入れる。
% cd ~/local/rpm/BUILD
% tar zxvf ../SOURCES/foo-1.0.1.tar.gz
% cp foo-1.0.1/foo.spec ../SPECS
% rpm --clean -ba ../SPEC/foo.spec
でchwonでrootにしようとするパッケージは
% sudo rpm --clean -ba ../SPEC/foo.spec
として対処 また、
% sudo rpm -Uvh ../RPMS/i386/foo.rpm
としたとき、依存関係でイチャモンをつけられたら、 ちょうどUnixUserのにVineが入っていたので
このSRPMSの中から
% rpm --rebuild /CDROM/SRPMS/tarinakatta-1.2.3.src.rpm
% rpm -ivh ../RPMS/i386/tarinakatta-1.2.3.rpm
このときもイチャモン付けられたら --nodepsオプションで対処。
% rpm --rebuild egcs-1.0.3a-14vl1.src.rpm % rpm -Uvi egcs-1.0.3a-14vl1.rpm % rpm -Uvi egcs-c++-1.0.3a-14vl1.rpm % rpm -Uvi egcs-objc-1.0.3a-14vl1 % rpm -Uvi egcs-g77-1.0.3a-14vl1
GNOME環境の整備ログ(挫折) |
| 19990608 |
edit spec package /usr/share/doc/gnome-doc.el not listed in file index package /usr/share/doc/mkstub not listed in file index みたいな文句を言われた | |||||||||||||||||||||
| 19990604 |
| |||||||||||||||||||||
| 19990514 |
[GNOME環境のアップデート]edit spec failed dependencies:
libghttp.so.0 is needed by gnorpm-0.7-1
libghttp.so.0 is needed by gnome-core-1.0.5-1
よって--nodeps
edit spec edit spec edit spec 要root権限 failed dependencies:
/usr/local/bin/perl is needed by gnome-print-0.1.1-1
よって--nodeps
そしたら何か、
Font URWChanceryL-MediItal already present.
みたいなのがぞろぞろでてきた。
要root権限 | |||||||||||||||||||||
| 19990418 |
File not found: /var/tmp/gnome-core-root/usr/share/default.session package /usr/share/locale/it not listed in file index package /usr/share/locale/it/LC_MESSAGES not listed in file index package /usr/share/locale/it/LC_MESSAGES/gnome-pim.mo not listed in file index package /usr/share/locale/ja not listed in file index package /usr/share/locale/ja/LC_MESSAGES not listed in file index package /usr/share/locale/ja/LC_MESSAGES/gnome-pim.mo not listed in file index package /usr/share/locale/ko not listed in file index package /usr/share/locale/ko/LC_MESSAGES not listed in file index package /usr/share/locale/ko/LC_MESSAGES/gnome-pim.mo not listed in file index package /usr/share/locale/no not listed in file index package /usr/share/locale/no/LC_MESSAGES not listed in file index package /usr/share/locale/no/LC_MESSAGES/gnome-pim.mo not listed in file index package /usr/share/locale/pt not listed in file index package /usr/share/locale/pt/LC_MESSAGES not listed in file index package /usr/share/locale/pt/LC_MESSAGES/gnome-pim.mo not listed in file index package /usr/share/locale/ru not listed in file index package /usr/share/locale/ru/LC_MESSAGES not listed in file index package /usr/share/locale/ru/LC_MESSAGES/gnome-pim.mo not listed in file index package /usr/share/locale/sv not listed in file index package /usr/share/locale/sv/LC_MESSAGES not listed in file index package /usr/share/locale/sv/LC_MESSAGES/gnome-pim.mo not listed in file index package /usr/share/mime-info/gnome-pim.keys not listed in file index みたいなのが出て来た | |||||||||||||||||||||
| 19990409 |
| |||||||||||||||||||||
| 19990408 |
プログラムの先頭で gtk_set_locate() を呼べばいい! | |||||||||||||||||||||
| 19990403 |
| |||||||||||||||||||||
| 19990402 |
| |||||||||||||||||||||
| 19990328 | ||||||||||||||||||||||
| 19990327 | Enlightenmentにしてから、XEmacsのコンパイルボタンが言うことを聞かない! コンパイル対象外のファイルを開いたフレームがあると、たとえコンパイル対象ソースを表示したフレームのコンパイルボタンを押しても、何故か対象がのファイルがコンパイルの対象と誤解されてしまう。 | |||||||||||||||||||||
| 19990325 | .gtkrcに日本語フォントの設定を書いていないと日本語が出ない!
----- BEGIN -----
# -- THEME AUTO-WRITTEN DO NOT EDIT
include "/usr/share/themes/Metal/gtk/gtkrc"
style "all"
{
fontset = "rk14,k14"
}
widget_class "*" style "all"
----- END -----
| |||||||||||||||||||||
| 19990317 |
Gnomeページャで日本語を表示を可能にするパッチを作成ま、あれこれ試して出来たパッチがこれです。 (じつはこれWindowMakerの関数をパクっているだけだったりします。)
| |||||||||||||||||||||
| 19990316 |
.deskファイルを/usr/share/gnome/apps以下のジャンル別ディレクトリに 入れることで実現している。 でこの調査をしたら /usr以下にgnomeをいれたので specファイルが無いアプリも/usr 以下に入れないとダメそうなので 自作のspec自動生成ツール(autoSpec.tcl)をつくってこれに対応しようとしている。 ところが、既に入れたee(ElectricEyes)が /usr/share/apps以下に.desktopファイルが置かれてしまっていた。 またspecファイルがなかったdisk_catalogも同様であった。 このため手動でこれに対処した。 |