用Inkscape制作xfce4窗口管理器xfwm4主题

2023-10-31 05:40

本文主要是介绍用Inkscape制作xfce4窗口管理器xfwm4主题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在阅读本文前,建议先阅读怎样制作xfwm4主题官方教程,了解制作xfwm主题需要哪些文件。
本文简译自此教程,并在其基础上撰写本文,点此下载示例svg源文件

一、用Inkscape 批量制作窗口管理器部件所需图像

1.打开Inkscape建立文件。
点击菜单栏文件>文档属性(或者按快捷键shift+ctrl+D),在页面选项卡>自定义尺寸中设置单位为px(像素),宽高根据需要设定,然后保存为svg格式文件。

2.建立3层图层。
打开图层窗格(按快捷键shift+ctrl+L),
在这里插入图片描述
框架层(frame):在此层制作整个窗口主题需要的各部位图像画出各个部件目标的图形,根据需要定义颜色,大小等;
背景层(background):(可选)一般按等于整个画布大小定义;
命名层(name):(可选)对每个对应部位图像加上名字显示,比如 [left, right, bottom, 1, 2, 3 ,4 5]。

给出的示例中,采用了10像素的窗口边框大小,通过Inkscape的矩形画制。
Bottom Left: [10px * 10px]
Bottom Right: [10px * 10px]
Top Left: [10px * 10px]
Top Right: [10px * 10px]
Bottom: [20px * 10px]
Left: [10px * 20px]
Right: [10px * 20px]
Each [1, 2, 3, 4, 5]: [10px * 10px]
在这里插入图片描述
3.输出图像。
文件>导出png图像(按快捷键shift+ctrl+E),
可以在导出图像窗格看到,我们能选择框架(frame)层中每一个选区单独导出,对每一个选区按对应的命名导出为png图片。
在这里插入图片描述
导出后可以看到生成的文件
在这里插入图片描述

二、完成XFWM4主题制作

除需要png(或xpm)格式图片外(经实践,png会转化为位图显示,如果有圆角的,其边缘细节较差;不支持颜色透明度,但支持颜色为空的纯透明,半透明的会丢失颜色),xfwm主题还需要文本定义文件themerc(此处贴上本人使用的dark主题的themerc文件,示例的配置可以去原文看),

button_offset=3
button_spacing=0
full_width_title=true
title_horizontal_offset=0
title_vertical_offset_active=1
title_vertical_offset_inactive=1
active_text_color=#fffbf9
active_text_shadow_color=#efebe9
inactive_text_color=#b0b0b0
inactive_text_shadow_color=#aaaaaa
shadow_delta_height=2
shadow_delta_width=0
shadow_delta_x=0
shadow_delta_y=-10
shadow_opacity=35
title_shadow_active=false
resize_opacity=100
move_opacity=100
popup_opacity=100
show_frame_shadow=true
show_popup_shadow=true
show_app_icon=true

最后,要应用主题,需要把以上文件复制到文件夹
~/.themes/themename/xfwm4
然后,在窗口管理器样式里选择自己制作的主题样式的名字themename,下图为上面svg定义的窗口实际效果。
在这里插入图片描述
在这里插入图片描述

三、个人补充

根据官网教程,定义xfwm4窗口主题完整的图片需求为60张。本人制作了一个仿OSX窗口按钮的暗色主题(配合使用gtk主题$yay x-arc-darker)
在这里插入图片描述
如上图所示,为方便从制作好的各部位图像批量导出,对每一个制作好部件组合成单一的对象(按快捷键Ctrl+G)后,再打开对象的属性(按快捷键Shift+Ctrl+O),对其ID命名。
然后编写两个文件(批量生成图像的脚本render-assets.sh及需要导出对象的ID列表assets.txt)
render-assets.sh内容如下:

#! /bin/bashINKSCAPE="/usr/bin/inkscape"
OPTIPNG="/usr/bin/optipng"SRC_FILE="Aob-dark-xfwm.svg"
ASSETS_DIR="xfwm4"
INDEX="assets.txt"for i in `cat $INDEX`
do 
if [ -f $ASSETS_DIR/$i.png ]; thenecho $ASSETS_DIR/$i.png exists.
elseechoecho Rendering $ASSETS_DIR/$i.png$INKSCAPE --export-id=$i \--export-id-only \--export-png=$ASSETS_DIR/$i.png $SRC_FILE >/dev/null \&& $OPTIPNG -o7 --quiet $ASSETS_DIR/$i.png 
fi
done
exit 0

assets.txt内容如下:

top-left-active
top-left-inactive
title-1-active
title-1-inactive
title-2-active
title-2-inactive
title-3-active
title-3-inactive
title-4-active
title-4-inactive
title-5-active
title-5-inactive
top-right-active
top-right-inactive
right-active
right-inactive
bottom-right-active
bottom-right-inactive
bottom-active
bottom-inactive
bottom-left-active
bottom-left-inactive
left-active
left-inactive
close-active
close-inactive
close-prelight
close-pressed
maximize-toggled-active
maximize-toggled-inactive
maximize-toggled-prelight
maximize-toggled-pressed
maximize-active
maximize-inactive
maximize-prelight
maximize-pressed
hide-active
hide-inactive
hide-prelight
hide-pressed
stick-toggled-active
stick-toggled-inactive
stick-toggled-prelight
stick-toggled-pressed
stick-active
stick-inactive
stick-prelight
stick-pressed
shade-active
shade-inactive
shade-prelight
shade-pressed
shade-toggled-active
shade-toggled-inactive
shade-toggled-prelight
shade-toggled-pressed
menu-active
menu-inactive
menu-prelight
menu-pressed

将这两个文件与制作好的svg文件放在同一文件夹,并在此建立xfwm4文件夹,打开终端执行脚本render-assets.sh即可在xfwm4文件夹看到批量生成的60张图片,配合上文的themerc文件,即完成xfwm4主题制作。

这篇关于用Inkscape制作xfce4窗口管理器xfwm4主题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/313189

相关文章

用Unity2D制作一个人物,实现移动、跳起、人物静止和动起来时的动画:中(人物移动、跳起、静止动作)

上回我们学到创建一个地形和一个人物,今天我们实现一下人物实现移动和跳起,依次点击,我们准备创建一个C#文件 创建好我们点击进去,就会跳转到我们的Vision Studio,然后输入这些代码 using UnityEngine;public class Move : MonoBehaviour // 定义一个名为Move的类,继承自MonoBehaviour{private Rigidbo

使用JS/Jquery获得父窗口的几个方法(笔记)

<pre name="code" class="javascript">取父窗口的元素方法:$(selector, window.parent.document);那么你取父窗口的父窗口的元素就可以用:$(selector, window.parent.parent.document);如题: $(selector, window.top.document);//获得顶级窗口里面的元素 $(

专题二_滑动窗口_算法专题详细总结

目录 滑动窗口,引入: 滑动窗口,本质:就是同向双指针; 1.⻓度最⼩的⼦数组(medium) 1.解析:给我们一个数组nums,要我们找出最小子数组的和==target,首先想到的就是暴力解法 1)暴力: 2)优化,滑动窗口: 1.进窗口 2.出窗口 3.更新值 2.⽆重复字符的最⻓⼦串(medium) 1)仍然是暴力解法: 2)优化: 进窗口:hash[s[rig

【Python知识宝库】上下文管理器与with语句:资源管理的优雅方式

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言一、什么是上下文管理器?二、上下文管理器的实现三、使用内置上下文管理器四、使用`contextlib`模块五、总结 前言 在Python编程中,资源管理是一个重要的主题,尤其是在处理文件、网络连接和数据库

Apache Tiles 布局管理器

陈科肇 =========== 1.简介 一个免费的开源模板框架现代Java应用程序。  基于该复合图案它是建立以简化的用户界面的开发。 对于复杂的网站,它仍然最简单,最优雅的方式来一起工作的任何MVC技术。 Tiles允许作者定义页面片段可被组装成在运行一个完整的网页。  这些片段,或Tiles,可以用于为了降低公共页面元素的重复,简单地包括或嵌入在其它瓦片,制定了一系列可重复使用

OpenStack离线Train版安装系列—0制作yum源

本系列文章包含从OpenStack离线源制作到完成OpenStack安装的全部过程。 在本系列教程中使用的OpenStack的安装版本为第20个版本Train(简称T版本),2020年5月13日,OpenStack社区发布了第21个版本Ussuri(简称U版本)。 OpenStack部署系列文章 OpenStack Victoria版 安装部署系列教程 OpenStack Ussuri版

OpenStack镜像制作系列5—Linux镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作

OpenStack镜像制作系列4—Windows Server2019镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录  CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作系

OpenStack镜像制作系列2—Windows7镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作系列

OpenStack镜像制作系列1—环境准备

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作