ソースからgnome-screenshotを収集して、スクリーンショットファイル名の形式を変更します

ソースデータ。 しばらく前に、gnome-screenshotプログラム(別名「スクリーンショット」)が「Screenshot from 2022-02-02 10:11」という名前のホットキー(PrtScr、Alt + PrtScr)を使用するとスクリーンショットを保存するという事実に出会いました。 59.png "。 私は「2022-02-02_101159.png」というフォームの名前を使用することに慣れています。 さらに、ファイル名のコロンはWindowsによって制限されます。 その後、ホットキーで撮影するときにファイル名を構成する方法を見つけることができず、目的の結果を提供する小さなbashスクリプト作成しました。



解決策を探しているときに、askubuntu.comで問題の説明に出会いました 。 答えの中で、私の注意は次のように引き出されました:「本当のLinuxの方法-ソースから独自のgnome-screenshotをコンパイルしてください!」。 その瞬間、私はそれが複雑すぎると思いました。 そして先日、私は試してみることにしました。 次に、アクションの順序を説明します。 この資料は、経験豊富なユーザーにとって新しいものではないでしょう。 したがって、私はそれが面白いかもしれないと信じています:



1)私のように、ファイル名形式の問題を修正したい人のために、

2)ソースからまだ何も収集していない人向け。



それでは、独自のgnome-screenshotアセンブリの作成に移りましょう。



UPD:それから私は非常に難しい方法で目標に行きました。 発表直後のコメントで彼らが私に示したこと。 判明したように、私は多くの「間違った」ことを行ったので、すでに書かれた内容に変更を加えるよりも、アクションの正しいシーケンスを記述する方が簡単です。 ターミナルで:

1)ソースコードをダウンロードします。

apt-get source gnome-screenshot
      
      





2)アセンブリに必要なすべてのパッケージがシステムに存在することを確認します。

 sudo apt-get build-dep gnome-screenshot
      
      





3)ソースフォルダーに移動します。

 cd gnome-screenshot-3.10.1/
      
      





4)日付形式を担当するファイルを編集します-詳細は以下のネタバレです:

 gedit src/screenshot-filename-builder.c
      
      





5)パッケージを作成します。

 dpkg-buildpackage -b
      
      





6)パッケージをインストールします。

 sudo dpkg -i ../gnome-screenshot_3.10.1-0ubuntu1_i386.deb
      
      





そして、これは写真で私の元の紛らわしいパスです
1) Gitリポジトリからソースをダウンロードします 。 たとえば、私は控えめにバージョン3.10.1を選択しました。これは、これまでUbuntu 14.04に含まれていました。 新製品のファンは最新バージョンを選択できると思います(現在は3.16.2です)。



2)アーカイブを解凍します。 src / screenshot-filename-builder.cファイルを開きます。 135行目を見つけ、ファイル名の日付形式を変更します。 行のorigin = g_date_time_format (d, "%Y-%m-%d %H:%M:%S")



origin = g_date_time_format (d, "%Y-%m-%d_%H%M%S")











同じファイルの145行目と152行目で、file_name変数を作成したときに「スクリーンショット」テキストを削除しました。 このテキストは、システムのローカライズによって異なることに注意してください。 したがって、完全に削除するのではなく、編集する場合は、po / ru.poファイルを参照してください。 ファイルを閉じて保存します。



3)ターミナルを起動し、ソースが展開されているフォルダーに移動します。 autogen.shファイルを実行可能にし、実行します。



 cd /home/user//gnome-screenshot-3.10.1 sudo chmod +x autogen.sh ./autogen.sh
      
      





ファイルを開始した後、システムはほとんどの場合、パッケージの不足を報告します。 パッケージをインストールし、再度実行して、何か他のものが欠落していることを確認します。 そして何度も。 アセンブリ中に何も必要ありませんでした、なぜなら 以前に3.16.2をビルドして、必要なすべてのパッケージをインストールしようとしました。 3.10.1の場合、ここで何かが冗長になるかもしれませんが、念のため、システムが要求したパッケージと、私がそれらに入れたコマンドを簡単に説明します。



>> glib-gettext> = 2.2.0がインストールされている必要があります

sudo apt-get install libglib2.0-dev



>>パッケージ 'xext'が見つかりません

>>パッケージ 'x11'が見つかりません

sudo apt-get install libxext-dev

sudo apt-get install libxdamage-dev



>>パッケージ 'gtk + -3.0'が見つかりません

>>パッケージ「libcanberra-gtk3」が見つかりません

sudo apt-get install libgtk-3-dev

sudo apt-get install libcanberra-gtk3-dev



4)その後、システムからすべてが正常であることが通知され、makeを使用できます。







このコマンドを実行します。 エラーメッセージはないため、すべてをインストールする準備ができています。







5)さらに、 このマニュアルに従って、sudo make installを使用すること(ネットワーク上のどこか、それとは反対に、推奨されます)、および可能な方法の1つでdebパッケージをビルドすることは決して推奨されません。



checkinstallプログラムを使用するオプションを選択しました。 インストール:



 sudo apt-get install checkinstall
      
      





次に行います:



 sudo checkinstall -D --install=no
      
      





キーの意味:

-D-debパッケージを作成し、

--install = no-インストールなし。



作成中のパッケージの説明を入力するプロンプトが表示されます。 「gnome-screenshot-3.10.1-fixname」と書きました。 説明は複数の行で構成できるため、Enterキーを2回押して終了します。



完全な説明が表示され、編集するか、次の手順に進むことができます。







データを確認して、Enterキーを押します。 パッケージが形成されたことを示すメッセージが表示され、コマンドを使用してシステムにインストールできます。



 sudo dpkg -i gnome-screenshot_3.10.1-1_i386.deb
      
      









6)パッケージをインストールします。


ホットキーを使用してスクリーンショットを撮ります。 「Images」フォルダーに移動して、ファイル名を確認します。





問題は解決しました!



PSすでにテキストを完成させていたときに、 make installを使用する価値がない理由が詳細に説明されている記事に出会いました。



All Articles