awesome - 共通事項 - 組み込みメニュー - 調査

 クラウディア
1. 概要
2. git インストール
3. freedesktop を展開
4. コンフィグレーションファイル編集
5. 確認

1. 概要

 さて、前項までやると

/usr/local/share/applications/
 配下の「.desktop」を元にメニューを組み込めないかと思うのは人情です。  以下、「Awesome で freedesktop を利用したメニューをつくる - Memorandum」を参考にさせていただき、不細工ながらも思うようにやってみました。  決して、正当なやり方ではないと思うし、労力が結果に見合うかどうか悩ましいところですが、せっかくなので紹介してみます。

2. git インストール

 思い通りのことをするには、「freedesktop」という、「lua」のモジュールが必要なのですが、「FreeBSD」には、存在しません。  「git」でとってくる必要があります。  まずは、「git」をインストールするところから。

pkg install -y git

3. freedesktop を展開

 「git」で、「freedesktop」を取得します。

mkdir -pv /tmp/awesome
cd /tmp/awesome
git clone https://github.com/terceiro/awesome-freedesktop
 これで、とってきたは、いいが、展開先は「FreeBSD」の場合、参考サイトと異なるのです。

cd /usr/local/share/lua/5.2/
cp -R /tmp/awesome/awesome-freedesktop/freedesktop freedesktop
 読みこませるには、「init.lua」というモジュールが必要になりますが、これが存在しないので、「Manjaro」のものをパクります。

vi /usr/local/share/lua/5.2/freedesktop/init.lua
 中身は、下記のように記述します(コピーライトまで、まるパクっちゃった、著作権的に問題ないんか心配です)。

--[[

     Awesome-Freedesktop
     Freedesktop.org compliant desktop entries and menu

     Licensed under GNU General Public License v2
      * (c) 2016,      Luke Bonham
      * (c) 2009-2015, Antonio Terceiro

--]]

return {
    desktop  = require("freedesktop.desktop"),
    menu     = require("freedesktop.menu")
}

4. コンフィグレーションファイル編集

 コンフィグレーションファイルを編集して組み込みます。  前ページで設定している内容もまとめておりますので、ご注意ください。

vi ~/.config/awesome/rc.lua
 先頭部分で、「freedesktop」を読みこみます。

local hotkeys_popup = require("awful.hotkeys_popup")
-- Enable hotkeys help widget for VIM and other apps
 の箇所を、下記へ

local hotkeys_popup = require("awful.hotkeys_popup")
-- Freedesktop menu
local freedesktop = require("freedesktop")
-- Enable hotkeys help widget for VIM and other apps
 メニューのフォントも好みのものへ

-- {{{ Variable definitions
-- Themes define colours, icons, font and wallpapers.
beautiful.init(gears.filesystem.get_themes_dir() .. "default/theme.lua")
 を下記のように書き換えます。

-- {{{ Variable definitions
-- Themes define colours, icons, font and wallpapers.
beautiful.init(gears.filesystem.get_themes_dir() .. "default/theme.lua")
beautiful.icon_theme            = "Papirus-Dark"
beautiful.menu_font             = "MigMix 1M normal 9"
 次の箇所が本番、メニューの組み込みです。

-- {{{ Menu
-- Create a launcher widget and a main menu
myawesomemenu = {
   { "hotkeys", function() hotkeys_popup.show_help(nil, awful.screen.focused()) end },
   { "manual", terminal .. " -e man awesome" },
   { "edit config", editor_cmd .. " " .. awesome.conffile },
   { "restart", awesome.restart },
   { "quit", function() awesome.quit() end },
}

mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
                                    { "open terminal", terminal }
                                  }
                        })

mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
                                     menu = mymainmenu })
 を下記のように書き換えます。

-- {{{ Menu
-- Create a launcher widget and a main menu

menu_items = freedesktop.menu.new()

myawesomemenu = {
   { "hotkeys", function() hotkeys_popup.show_help(nil, awful.screen.focused()) end, menubar.utils.lookup_icon("preferences-desktop-keyboard-shortcuts") },
   { "manual", terminal .. " -e man awesome", menubar.utils.lookup_icon("system-help") },
   { "edit config", editor_cmd .. " " .. awesome.conffile,  menubar.utils.lookup_icon("accessories-text-editor") },
   { "restart", awesome.restart, menubar.utils.lookup_icon("system-restart") },
   { "quit", function() awesome.quit() end, menubar.utils.lookup_icon("system-log-out") },
}

myexitmenu = {
    { "log out", function() awesome.quit() end, menubar.utils.lookup_icon("system-log-out") },
    { "reboot", "sudo /sbin/reboot", menubar.utils.lookup_icon("system-reboot") },
    { "shutdown", "sudo /sbin/poweroff", menubar.utils.lookup_icon("system-shutdown") }
}

mymainmenu = awful.menu({ items =
        {
        { "Awesome", myawesomemenu, beautiful.awesome_icon },
        { "アプリケーション", menu_items, menubar.utils.lookup_icon("application-default-icon") },
        { "終了", myexitmenu, menubar.utils.lookup_icon("system-shutdown") },
        }, theme = { width = 180 }
        })

mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
                                     menu = mymainmenu })

5. 確認

 さて、前項まで終わったら、Ctrl+Win+R で、「awesome」をリスタートして、確認します。
「awesome」-「FreeBSD」「組み込みメニュー」「freedesktop」

ハイスピードプラン
【usus ウズウズ】
メンズミレット