2014年05月24日

KRunnerのプラグインを作ってみる

私がWindows使ってて非常によく使うショートカットが「Win+R」です。
何が便利かって、主に以下の理由です。

1.「c:」や「e:」でドライブルートを即開ける(キーを5回押すだけ!)
2.「cmd」や「calc」等、パスが通ってるexeを即開ける
3.あらゆるWindowsで動作する

頻繁に使うものは自前で作ったランチャーで開くんですが、
そうでもないものは大体これで開く癖がついています。
(なので、スタートメニューから起動ってほとんどしません)

KDEにしてみた時、KRunnerがそれっぽかったんで
キー割り当てて使ってたんですが、やっぱりWin+Rみたいにはいかない。

一応Linuxルートは「/」だけで開けるんですが、
ドライブのルートを開くには「/media/USER/C」まで打たないといけない。
端末は「konsole」と7文字も必要。c:とかcmdとか使わせて欲しい。

なので、作ってみました。KRunnerのプラグイン。

で、まず困ったのは、日本語の情報少なすぎィ!
2大デスクトップの1機能のプラグインですよ?Windowsだったら
掃いて捨てるほど出てくるでしょうに、もう全然ない。皆無。空虚。

まあいい。仕方ない。英語大嫌いな私が頑張りました。
※ これ見たLinux好きでPGではなくて翻訳できる人、頑張ってください。

本家はこっち。英語出来る人ならすぐ分かります。
http://techbase.kde.org/Development/Tutorials/Plasma/PythonRunner
私はNifty翻訳先生に聞きながら。半分はソースなんで楽ではありました。

続きを見る

タグ:python KRunner
posted by Nick at 15:10| Comment(0) | TrackBack(0) | Linux

2014年05月20日

Linuxでゲーム

ああ、まあ、うん、無理なんでしょうね。 
結構色んな所で「それは諦めろ」的なことが書いてたので。 
 
とはいえ私はゲーマーですし、(爆音ゲームPCにする程ではないですが) 
そう言われてもなーってことでWinゲームを動かすために色々やってみたんですよ。 
 
wine 
 グラボの性能が50%ほどダウン。2Dは80%ダウン。これはひどい。
 加えて動かないのはよくある話。
 
VirtualBox 
 wine様助けて〜と言いたくなるレベルで遅い。
 そして想定外だったのが、動かないのが結構ある。
 ホストXPゲストXPで完全動作確認済みなのに、
 ホストLinuxゲストXPだと動かない。
 現象的にVBoxのグラボのせいっぽいんですが、これ直るんだろうか…?
 
VMWare 
 VirtualBoxとwineのいいとこ取り…かな。
 グラボ性能はwine並、動作するのはVirtualBox並。
 でもこれ使うの怖い。だってlinux使ってて初めてフリーズしたんですよ?
 
XPをサブマシンで動かしてRDC 
 RDCはゲームでやるもんじゃないってのを心底痛感しましたので論外で。
 
XPをサブマシンで動かしてデスクトップチェンジャー 
 うわ懐かしい単語。10年前ぐらいだと結構流行ってました。
 ケーブル関連はどうとでもなるのでまあ大体問題無いんですが、
 メインPCが宝の持ち腐れになってますねぇ…
 
結論は「wine/vbox/vmwで動かなければ素直にwindowsを使え」です。 
うーん、やはり先人は偉大ですなぁ。 
 
とはいえ収穫もありました。 
 
PCSX2です。これは凄いですよ。ほぼ完璧な動作と日本語。 
フルスクリーンにするともはや実機と変わらない。 
昔触った時は全然ダメで、まだまだ時間かかるんだろうなーと思ったんですが、 
ここまで来ているとは思いませんでした。しかもLinuxで実感するとは。 
※ ただし、スピードハックが出来ません。本当に実機と変わりませんね。 
posted by Nick at 20:40| Comment(0) | TrackBack(0) | Linux

2014年05月03日

はじめてのg++

フゥゥーー……
初めて…………g++でコンパイルしちまったァ〜〜〜〜〜♬
でも想像してたより、なんて事はないな。

smplayerをソフトウェアの管理から入れてみたんですが、英語のまま。
管理経由で入れると結構英語のままになることが多いので、
たぶんLinuxMintKDEのどっかの設定ファイルがEnglishかDefaultのままだと
思うんですが、どこかがわからないので、とうとうやってしまいました。

なんなんでしょうね、これ。
なんて事はないどころか簡単すぎて愕然。

やったことと言えば解凍してsh流してdeb右クリックしただけ。
ヘッダが足りないとかlibが足りないとかDEFINEされてないとか
そんな関数はありませんとかセキュリティ上廃止されましたとか言われずに
平然と全コンパイル通った上にdebまで作ってくれてる。なにこれ怖い。

これがオープンソースの文化ってやつですか。
恐ろしいにもほどがある。

Windowsでもたまにソース置いてくれてたりするんですよ。
libzipとかフリー作者とか親切な人もいるもので。
でも、解凍したのをそのままコンパイルできたことがほとんど無い。
上記みたいなことを散々言われたあげく、ようやく通ったと思ったらクラッシュ。
libzipの時は諦めてコンパイル済みのlib使ってました。

これがLinuxの世界なんですねぇ。とうとう入門してしまいました。
タグ:Linux g++
posted by Nick at 18:48| Comment(0) | TrackBack(0) | Linux

2014年05月01日

失われしVBA

いやね、昔からオープンオフィス系はいろいろ期待してましてね。
でもまあどれもまず間違いなく無理だったのがVBAなんです。
(COMエディタ+言語みたいなものなので、無理なのは当たり前なんですが)

個人的な希望で言えばWin32APIやVarPtr、さらにCOMなんかを全サポートしてくれれば
最高なんですが、それはさすがに高望み。それはWindowsしか出来ないこと。

でもねぇ。

Msgbox "Hello?"

この程度すら、2、3年前のオープンオフィスは出来ませんでした。
LibreかOpenか、どちらかが落ちて、どちらかが関数が存在しませんエラー。

だからもう端から期待してなかったんですが、
LibreOfficeの設定に、「Excelのマクロを実行する」みたいなのがあって。

これ、つまりですね、「俺はそれぐらい動かせる」って自信でしょ?…本気?

で、やってみたら・・・

test0.png

おお!動いた!
これは…もしかしてやってみる価値はある?

じゃあ次だ。これは出来るかな?

Sub test()
 dim wb as workbook
 set wb = thisworkbook
 msgbox wb.worksheets.count
End Sub

実に簡単ですが、少なくともExcelのCOMはサポートしないと動きません。
さあどうだ?

test.png

おお、ちゃんと返した!まさかここまで進化してるとは!

ならWin32API抜きかつCOM抜きのVB6でどうだ?
Sub test2()
 ' ブートフォルダ直下にある全ファイル検索
 dim fnm$,ret$
 fnm = dir("/boot/",31)
 do
  if fnm= "" then exit do
  if fnm = "." then goto nd
  if fnm = ".." then goto nd
 
  ret = ret & fnm & vbcrlf
 
  nd:
  fnm = dir()
 loop

 msgbox ret
End Sub

test2.png

うおお!ここまで!ラピュタは本当にあったんだ!

じゃあ本番。適当にLibreOfficeの情報を書き出して保存。
Sub test3()
 dim xl as excel.application
 dim wb as workbook
 dim ws as worksheet
 set xl = application
 set wb = xl.workbooks.add()
 set ws = wb.worksheets(1)
 
 ws.range("A1").value = "情報"
 ws.range("A2").value = "ブック数":ws.range("B2").value = xl.workbooks.count
 ws.range("A3").value = "シート数":ws.range("B3").value = wb.worksheets.count
 ws.range("A4").value = "アプリケーション名":ws.range("B4").value = xl.name
 
 wb.saveas "~/test.xls"
 wb.close
End Sub

test3.png

おおー、でけたでええええ

なるほど、その自信のほどはよく分かった。よく頑張った。
でもアプリケーション名「Microsoft Excel」はワロタ。偽装すんなw

と、それなりに興奮したんですが、案の定制約が結構ある。

APIコール系はアウト。VarPtrも不可。
 これは仕方ない。
 
他COMは呼べない。作れない。
 dim xl as New Excel.Application
 こんなのも不可。どうも自プロセス限定ぽい。
 CreateObjectも当然不可。

インテリセンスが使えない
 これが正直一番痛い。サポートしてない関数結構あるっぽいのに
 使えるかどうかも分からない。

Debug不可
 ブレークポイントは可能。ウォッチも可能。
 でもイミディエイトウィンドウが無い。変なの。

結論として、当たり前ですが、COMではなく、
エクセルマクロエミュレーターってのが一番近そう。
でも、「もしかしたら2、3年前に落ちてたのは
Windowsで動かしてたから?」って思うぐらいには良くできてる。

インテリセンス使えるようになったら、
これだけでもLinuxにする価値はあるかもしれません。
(そんな評価するのは私ぐらいでしょうが)
posted by Nick at 06:38| Comment(0) | TrackBack(0) | Linux

2014年04月27日

LinuxMint 奮闘記

なんだかんだあって結局今KDEにしてます。
だってMATEってどうにも使いにくい。
チェックボックス見辛いとか、ファイルの空欄クリックできないとか。
Mintメニュー全般がそうなので、Mintはそういうもんなのでしょう。

ただKDEはいい。複数サウンドカードがあっても
ちゃんと出力先を選べる。VLCとか最高。
Windowsから愛用してただけあった。さすがですわ。
本当はアプリケーション別で管理したいんですが、
(たぶんShellでやればいけそうな気がしますし)
まだGUI操作に慣れたいので後回し。今はこれでいい。

で、次なる野望としたのはフォント。泥沼覚悟で。
だってアレとアレを組み合わせて使いたい。それで書きたい。
でもフォントリンクなんてマイナーな処理がLinuxにあるんだろうか?

それで色々調べてたんですが、それなりに分かったこと。

フォントのインストール自体は簡単
 フォントファイルを開いてインストールするだけ。
 個人だと/home/USER/.fontsに格納される
 システムだと./etc/fonts/になる(歴史的に色々変わったらしい)

fontconfigでフォントリンクと同様の処理が可能
 実際はfontconfigの設定ファイルをいじるらしい。
 自分の環境だと個人のは/home/USER/.fonts/fonts.dirぽい。
 システムは知らない。

設定ファイルってどういう仕様?
 ここら辺で思い出しました。linuxはマニュアルが完全装備だってこと。
 Windowsだとそんなの無いかゴミなのでネットで調べるんですが、
 manってのがありましたね。
 
 で、出力してみたんですが、基礎が無いと意味不明です。あはは。
 
 とりあえず分かったのは、fcってのがfontconfigの大元で、
 派生プログラムはfc-###って名称になるらしい。
 私には派生プログラムを別コンパイルしてIFにするという発想が無いんですが、
 部品の再利用が大前提になるとこういう感じになるのかなぁ。

ここまでで面倒なことだけは分かったので、fontconfigをいじるのは一旦中止。
とりあえずはGUIだけでやりたい。

FontForgeってありましたね
 そこで、かなーり昔、少しいじって挫折したFontForgeの出番です。
 Linuxだからなのか最近だからなのかは分かりませんが、
 結構簡単に2つのフォントを合成出来ました。
 で、個人にインストールして完了。よっしゃ!

今この文章もそのフォントで書いてます。
ああ、やっぱりこれでなきゃダメだ、うん。
posted by Nick at 13:59| Comment(0) | TrackBack(0) | Linux

2014年04月25日

WindowsXPとLinux

終了しましたね、XPのサポート。
まあ私はそんなの気にせず今後も使うんですが、
この際なのでLinux入れてみました。VirtualBoxではなく、直で。

さて、Linuxを実践で使うにあたって予想していたデメリットメリットは以下。

デメリット
  1.ハードのうちマイナーなものは動かない
    主にこれぐらいは動かないと見てました。
      Winで動く無線親機
      KEIANのTVチューナー
      PS3コントローラー
  2.COMが全滅
    VBAやVB6系統ですね。これ取られると非常に効率的に困るんです。
  
  ハードは諦めるなりXPマシンを別に用意して使うとかもありですが、
  COMは非常に辛い。これがあるからWindowsを使っていたと言っても過言ではないので。
  
メリット
  1.ウィルス知らず
    Linux初心者ですが、これはたぶん嘘でしょう。
  2.堅牢
    使い続けないと分からないので現状では評価不可。
  3.フリーのOS
    個人的には大きなメリットでは無いんですが、
    アクティベーション関連が皆無ってのは素晴らしいですね。
  4.サポートがある
    Linusさんが飽きたらどうなるんでしょうね、Linux。
    まあそれでも脆弱性ぐらいは誰かが直すんでしょうけど。
  5.軽い
    軽くもできる、が一番正しい気がします。

ということで、メリットとデメリット含めて考えるとやっぱXPなんですよねぇ。
まあでもやっぱり使ってみないとわからないな!ってことで
LinuxMint MATEを入れてみました。

以下、雑感。

インストール
  ライブUSBで立ち上げてパーティション割ってインストール。
  デュアルブートに苦労するかと思ってたら
  死ぬほどすんなりいきました。
  
ハードウェア全般
  動かないと思ってたのは案の定動かない。
  ただ動くと思ってたのはほぼすんなり動きました。
  特にHPの結構最近のプリンタがデフォで動いたのは驚き。
  海外メーカーだからなんでしょうかね?
  逆に超古いCreativeのUSBサウンドはノイズ出まくりで無理。
  どうもドライバが誤解してるっぽいんですが、まだ理由は不明。

ソフトウェア全般
  ウィルス知らずってのはディストリビューターが
  チェックしてるからなんでしょうね。
  ソフトウェアの管理からインストールすればほぼ無問題ぽい。

Wine
  思ってたより動くけど思ったよりは動かない。
  意味不明ですが正直な感想。COM無しなら大体動く感じ。
  某乙女は動きました。Linuxで動かしてると思うと笑えます。
  自分で作ったのも、COMをヘビーに使ってないものは
  vb6run入れれば大体動きます。Win32APIゴリゴリのC++はまず大丈夫。
  .NETは普段使うものには無いんでまだ分かりません。
  ああ、あとwinetricksはほぼ必須。
  
まとめ
  うんまあ悪くない。ハードウェアはなんとかする、がとりあえずの課題で、
  それ以外はmonoとか面白そうだしffmpegとかgpsfishとかLinux発祥で
  ソースとか凄く簡単にビルドできそうだし総合的に見てやっぱり悪くないですね。
  ハードウェアなんとかするまで完全移行はしませんけど。
posted by Nick at 19:55| Comment(0) | TrackBack(0) | Linux

2013年07月12日

Hello, Linux world!

色々思う所あって、最近はLinuxいじってます。
メインには出来ないんですが、それなりに少しずつ。

Linux…というより、UNIXのカーネル思想を今更知り、それがまた刺激的でして。

以下Wikipediaより。
UNIXの設計段階で、全ての高レベルのデバイスをファイルとして抽象化することが決定された。
何故ならUNIX設計者は情報処理の目的をデータの変換であると考えていたからである

すんごいわかります。てか私の考え方もそう。
「結局HDDのビットいじるだけなんだから」とかよく言ってたんですが、
コンピュータ使ってやることって、結局のとこデータ変換だけなんですよね。

mp3もh264も、スマホもC++もCGもDTMも全部そう。流れとして、
アナログからの入力をデジタルへ→0回以上の操作→デジタルをアナログへ出力
という形は、ENIACからCDやPCを経てiPadに至るまで、何一つ変わってはないんです。

これを前提にして作られたOSとかワクワクしませんか?
…しませんよね。たぶん。PG仲間でもあまりいませんでしたし。でも私はします。

今は色々調べたりいじったり、それなりに少しずつ。
posted by Nick at 07:23| Comment(0) | TrackBack(0) | Linux