Commit f4c405f3 authored by vinceliuice's avatar vinceliuice 🎧


parent 05d569bb

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

------------------------ QOGIR GTK THEME ------------------------
horst3180 - Arc gtk theme:
Vince Liuice <> - Qogir Gtk Theme (
------------------------ QOGIR GTK THEME ------------------------
This diff is collapsed.
* Do not edit the CSS directly, edit the source SCSS files and process them with SASS (run
`./` when you have the required software installed, as described below)
* To be able to use the latest/adequate version of sass, install sassc.
How to tweak the theme
Adwaita is a complex theme, so to keep it maintainable it's written and processed in SASS. The
generated CSS is then transformed into a gresource file during gtk build and used at runtime in a
non-legible or editable form.
It is very likely your change will happen in the _common.scss file. That's where all the widget
selectors are defined. Here's a rundown of the "supporting" stylesheets, that are unlikely to be the
right place for a drive by stylesheet fix:
_colors.scss - global color definitions. We keep the number of defined colors to a necessary minimum,
most colors are derived form a handful of basics. It covers both the light variant and
the dark variant.
_colors-public.scss - SCSS colors exported through gtk to allow for 3rd party apps color mixing.
_drawing.scss - drawing helper mixings/functions to allow easier definition of widget drawing under
specific context. This is why Adwaita isn't 15000 LOC.
_common.scss - actual definitions of style for each widget. This is where you are likely to add/remove
your changes.
You can read about SASS at Once you make your changes to the
_common.scss file, you can either run the ./ script or keep SASS watching for changes as you
edit. This is done by running `bundle exec sass --watch --sourcemap=none .` If sass is out of date, or is
missing, you can install it with `bundle install`.
# Destination directory
if [ "$UID" -eq "$ROOT_UID" ]; then
SRC_DIR=$(cd $(dirname $0) && pwd)
WIN_VARIANTS=('' '-win')
COLOR_VARIANTS=('' '-light' '-dark')
usage() {
printf "%s\n" "Usage: $0 [OPTIONS...]"
printf "\n%s\n" "OPTIONS:"
printf " %-25s%s\n" "-d, --dest DIR" "Specify theme destination directory (Default: ${DEST_DIR})"
printf " %-25s%s\n" "-n, --name NAME" "Specify theme name (Default: ${THEME_NAME})"
printf " %-25s%s\n" "-w, --win VARIANTS..." "Specify titlebutton variant(s) [standard|square] (Default: All variants)"
printf " %-25s%s\n" "-c, --color VARIANTS..." "Specify theme color variant(s) [standard|light|dark] (Default: All variants)"
printf " %-25s%s\n" "-i, --image VARIANTS..." "Install theme with nautilus background image"
printf " %-25s%s\n" "-h, --help" "Show this help"
install() {
local dest=${1}
local name=${2}
local win=${3}
local color=${4}
[[ ${color} == '-dark' ]] && local ELSE_DARK=${color}
[[ ${color} == '-light' ]] && local ELSE_LIGHT=${color}
local THEME_DIR=${dest}/${name}${win}${color}
[[ -d ${THEME_DIR} ]] && rm -rf ${THEME_DIR}
echo "Installing '${THEME_DIR}'..."
mkdir -p ${THEME_DIR}
echo "[Desktop Entry]" >> ${THEME_DIR}/index.theme
echo "Type=X-GNOME-Metatheme" >> ${THEME_DIR}/index.theme
echo "Name=${name}${win}${color}" >> ${THEME_DIR}/index.theme
echo "Comment=An Clean Gtk+ theme based on Flat Design" >> ${THEME_DIR}/index.theme
echo "Encoding=UTF-8" >> ${THEME_DIR}/index.theme
echo "" >> ${THEME_DIR}/index.theme
echo "[X-GNOME-Metatheme]" >> ${THEME_DIR}/index.theme
echo "GtkTheme=${name}${win}${color}" >> ${THEME_DIR}/index.theme
echo "MetacityTheme=${name}${win}${color}" >> ${THEME_DIR}/index.theme
echo "IconTheme=Adwaita" >> ${THEME_DIR}/index.theme
echo "CursorTheme=Adwaita" >> ${THEME_DIR}/index.theme
echo "ButtonLayout=menu:minimize,maximize,close" >> ${THEME_DIR}/index.theme
mkdir -p ${THEME_DIR}/gtk-2.0
cp -ur ${SRC_DIR}/src/gtk-2.0/{apps.rc,panel.rc,main.rc,xfce-notify.rc} ${THEME_DIR}/gtk-2.0
cp -ur ${SRC_DIR}/src/gtk-2.0/assets${ELSE_DARK} ${THEME_DIR}/gtk-2.0/assets
cp -ur ${SRC_DIR}/src/gtk-2.0/gtkrc${color} ${THEME_DIR}/gtk-2.0/gtkrc
cp -ur ${SRC_DIR}/src/gtk-2.0/menubar-toolbar${color}.rc ${THEME_DIR}/gtk-2.0/menubar-toolbar.rc
mkdir -p ${THEME_DIR}/gtk-3.0
cp -ur ${SRC_DIR}/src/gtk-3.0/assets ${THEME_DIR}/gtk-3.0
cp -ur ${SRC_DIR}/src/gtk-3.0/gtk${win}${color}.css ${THEME_DIR}/gtk-3.0/gtk.css
[[ ${color} != '-dark' ]] && \
cp -ur ${SRC_DIR}/src/gtk-3.0/gtk${win}-dark.css ${THEME_DIR}/gtk-3.0/gtk-dark.css
cp -ur ${SRC_DIR}/src/gtk-3.0/thumbnail${ELSE_DARK}.png ${THEME_DIR}/gtk-3.0/thumbnail.png
mkdir -p ${THEME_DIR}/gnome-shell
cp -ur ${SRC_DIR}/src/gnome-shell/common-assets ${THEME_DIR}/gnome-shell
cp -ur ${SRC_DIR}/src/gnome-shell/assets${ELSE_DARK} ${THEME_DIR}/gnome-shell/assets
cp -ur ${SRC_DIR}/src/gnome-shell/gnome-shell${color}.css ${THEME_DIR}/gnome-shell/gnome-shell.css
mkdir -p ${THEME_DIR}/cinnamon
cp -ur ${SRC_DIR}/src/cinnamon/common-assets ${THEME_DIR}/cinnamon
cp -ur ${SRC_DIR}/src/cinnamon/assets${ELSE_DARK} ${THEME_DIR}/cinnamon/assets
cp -ur ${SRC_DIR}/src/cinnamon/cinnamon${ELSE_DARK}.css ${THEME_DIR}/cinnamon/cinnamon.css
cp -ur ${SRC_DIR}/src/cinnamon/thumbnail${ELSE_DARK}.png ${THEME_DIR}/cinnamon/thumbnail.png
mkdir -p ${THEME_DIR}/metacity-1
cp -ur ${SRC_DIR}/src/metacity-1/assets${ELSE_LIGHT}${win}/*.png ${THEME_DIR}/metacity-1
cp -ur ${SRC_DIR}/src/metacity-1/metacity-theme-3${win}.xml ${THEME_DIR}/metacity-1/metacity-theme-3.xml
cp -ur ${SRC_DIR}/src/metacity-1/metacity-theme-1${ELSE_LIGHT}${win}.xml ${THEME_DIR}/metacity-1/metacity-theme-1.xml
cp -ur ${SRC_DIR}/src/metacity-1/thumbnail${ELSE_LIGHT}.png ${THEME_DIR}/metacity-1/thumbnail.png
cd ${THEME_DIR}/metacity-1
ln -s metacity-theme-1.xml metacity-theme-2.xml
mkdir -p ${THEME_DIR}/xfwm4
cp -ur ${SRC_DIR}/src/xfwm4/themerc${ELSE_LIGHT} ${THEME_DIR}/xfwm4/themerc
cp -ur ${SRC_DIR}/src/xfwm4/assets${ELSE_LIGHT}/*.png ${THEME_DIR}/xfwm4
cp -ur ${SRC_DIR}/src/plank ${THEME_DIR}
NBG_N="background-image: none;"
NBG_I="@extend %nautilus_backimage;"
# check command avalibility
function has_command() {
command -v $1 > /dev/null
install_package() {
if [ ! "$(which sassc 2> /dev/null)" ]; then
echo sassc needs to be installed to generate the css.
if has_command zypper; then
sudo zypper in sassc
elif has_command apt-get; then
sudo apt-get install sassc
elif has_command dnf; then
sudo dnf install sassc
elif has_command yum; then
sudo yum install sassc
elif has_command pacman; then
sudo pacman -S --noconfirm sassc
parse_sass() {
cd ${SRC_DIR} && ./
install_theme() {
for win in "${wins[@]:-${WIN_VARIANTS[@]}}"; do
for color in "${colors[@]:-${COLOR_VARIANTS[@]}}"; do
install "${dest:-${DEST_DIR}}" "${name:-${THEME_NAME}}" "${win}" "${color}"
install_img() {
cd ${SRC_DIR}/src/_sass/gtk/apps
cp -an _gnome.scss _gnome.scss.bak
sed -i "s/$NBG_N/$NBG_I/g" _gnome.scss
echo -e "Specify theme with nautilus background image ..."
restore_img() {
cd ${SRC_DIR}/src/_sass/gtk/apps
[[ -d _gnome.scss.bak ]] && rm -rf _gnome.scss
mv _gnome.scss.bak _gnome.scss
echo -e "Restore scss files ..."
while [[ $# -gt 0 ]]; do
case "${1}" in
if [[ ! -d "${dest}" ]]; then
echo "ERROR: Destination directory does not exist."
exit 1
shift 2
shift 2
for win in "${@}"; do
case "${win}" in
shift 1
shift 1
echo "ERROR: Unrecognized color variant '$1'."
echo "Try '$0 --help' for more information."