- 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」をリスタートして、確認します。

|