terminology/THEMES.md

8.6 KiB

Themes in Terminology

This document describes how Terminology interacts with themes and what needs to be handled by themes.

See ChangeLog.theme on changes related to themes.

Color classes

Based on the chosen color scheme, Terminology sets the following color classes on all the following edje groups:

  • BG: the background color of the terminal
  • FG: the default foreground color
  • CURSOR: the color of the cursor
  • GLOW: the color in the UI to ouline elements
  • HIGHLIGHT: the color used as main color when an element is highlighted
  • GLOW_TXT: text colors with some glow
  • GLOW_TXT_HIGHLIGHT: text with glow that is highlighted
  • END_SELECTION: on selections, the color of the handles used to expand or shrink the area of the selection
  • TAB_MISSED: the number of tabs where a bell has rung, tabs that need attention
  • TAB_MISSED_OVER: same but when the mouse is over that number
  • TAB_TITLE: the colors of the active tab title
  • BG_SENDFILE is the background color when there is a sendfile action. See man tysend. It is set to #404040.

The following table explains how color classes are set from color scheme values:

Color Class Object color Outline color Shadow color
BG Colors.bg Colors.bg Colors.bg
FG Normal.def Normal.def Normal.def
CURSOR Colors.main Colors.main Colors.main
GLOW Colors.main Colors.main Colors.main
GLOW_TXT_HIGHLIGHT Colors.hl Colors.main Colors.main
END_SELECTION Colors.end_sel Colors.end_sel Colors.end_sel
TAB_MISSED Colors.tab_missed_1 Colors.tab_missed_2 Colors.tab_missed_3
TAB_MISSED_OVER Colors.tab_missed_1 Colors.tab_missed_2 Colors.tab_missed_3
TAB_TITLE Normal.def Colors.tab_title_2 Colors.bg
BG_SENDFILE #404040 #404040 #404040

Let's dive into the edje groups that Terminology uses.

Group terminology/base

All windows contain a group terminology/base. Contains what is global to a window.

Swallowed parts

Part terminology.content

where terminology/background, or a split widget can be swallowed.

Part terminology.cmdbox

To swallow a command box. It reacts to the following signals:

  • cmdbox,show
  • cmdbox,hide

Part terminology.about

It reacts to the following signals:

  • about,show
  • about,hide

Part terminology.optdetails

Detailed settings panel. It reacts to the following signals:

  • optdetails,show
  • optdetails,hide It emits the following signal:
  • optdetails,hide,done

Part terminology.options

It reacts to the following signals:

  • options,show
  • options,hide

Part terminology.controls

The controls box shown on right click. It reacts to the following signals:

  • controls,show
  • controls,hide

Special parts

Part youtube.txt

A text part used to hold YouTube channel when the About is shown.

Part twitter.txt

A text part used to hold YouTube channel when the About is shown.

Signals emitted

Signal about,twitter

When the Twitter link on the About page is clicked.

Signal about,twitter,ctx

When the Twitter link on the About page is right-clicked.

Signal about,youtube

When the YouTube link on the About page is clicked.

Signal about,youtube,ctx

When the YouTube link on the About page is right-clicked.

Signal optdetails,hide,done

When the swallowed part terminology.optdetails is finally hidden.

Signals received

Signals about,show and about,hide

Used to hide or show the about page, swallowed in terminology.about.

Signals controls,show and controls,hide

Used to hide or show the controls, swallowed in terminology.controls.

Signals options,show and options,hide

Used to hide or show the options panel, swallowed in terminology.options.

Signals optdetails,show and optdetails,hide

Used to hide or show the options details settings panel, swallowed in terminology.optdetails.

Signals cmdbox,show and cmdbox,hide

Used to hide or show the command box, swallowed in terminology.cmdbox.

Group terminology/background

Swallowed parts

Parts terminology.content

Here is swallowed an object of group terminology.background.

Special parts

Parts tabdrag and tabmiddle

Their geometry are used to adjust drag values.

Parts drag_left_outline, drag_right_outline, drag_top_outline, drag_bottom_outline and terminology.tabregion

Their geometry are used to know when the cursor enters them when dragging a tab.

Signals received

Signals tabbar,off and tabbar,on

Whether to display a tab bar. Default is off.

Signals tab_btn,off and tab_btn,on

Whether to display a tab button to easily navigate through tabs. Default is off.

Signals drag_left,on, drag_right,on, drag_top,on, drag_bottom,on

When to start an animation when the cursor enters drag_XXXX_outline while dragging a tab.

Signals drag_left,off, drag_right,off, drag_top,off, drag_bottom,off

When to stop an animation started by the related *,on signals.

Signals drag_over_tabs,on and drag_over_tabs,off

When the mouse, while dragging a tab, enters or leaves the tab region.

Signals grouped,on and grouped,off

When input is broadcast to multiple terminals.

Signal emitted

Signal tab,hdrag

To notify that the current tab is being dragged.

Signal tab,drag,stop

To notify that the current tab is no longer being dragged.

Signal tab,drag,move

To notify that the current tab is being dragged outside of other tabs.

Group terminology/core

Swallowed parts

Part terminology.background

Actual background. It reacts to the following signals based on the media to play in background:

  • media,off
  • media,image
  • media,scale
  • media,edje
  • media,movie

Part terminology.tabregion

Here is swalloed a fully transparent rectangle to move down the textgrid.

Part terminology.content

Where actual text grid goes.

Signals received

Signals tabbar,off and tabbar,on

Whether to display a tab bar. Default is off.

Signals tab_btn,off and tab_btn,on

Whether to display a tab button to easily navigate through tabs. Default is off.

Signals hdrag,on and hdrag,off

Whether to restrict (default) horizontal tab drag

Signal emitted

Signals tab,drag and tab,drag,stop

To notify that the current tab is being dragged.

Signals tab,mouse,down

Whenever the left mouse button is pressed on a tab.

Group terminology/about

Text parts

Part terminology.text

The text of the About message.

Group terminology.tabbar_back

An inactive tab item

Text parts

Part terminology.title

Title of the tab.

Signal emitted

Signal tab,activate

When clicked on it, to notify that the user wants to go to that tab.

Signals received

Signal bell

To mark the tab as having missed a bell.

Signal bell,off

To unmark the tab as having missed a bell.

Signals grouped,on and grouped,off

When input is broadcast to multiple terminals.

Group terminology/keybinding

TODO

Group terminology/miniview

TODO

Group terminology/fontpreview

TODO

Group terminology/selection

An object used when selecting text. TODO

Group terminology/cursor

TODO

Group terminology/cursor_bar

TODO

Group terminology/cursor_underline

TODO

Group terminology/sel/base

TODO

Group terminology/sel/item

TODO

Group terminology/link

An object overlayd on text that is a link.

Group terminology/mediabusy

TODO

Group terminology/mediactrl

TODO

Group terminology/tab_drag_thumb

A thumbnail of a tab being dragged.

Swallowed part

Part terminology.content

Here is swallowed an object of group terminology.background.

Text part

Part terminology.title

Title of the tab.

Signal received

Signal bell

To mark the tab as having missed a bell.

Group terminology/colorscheme_preview

A group to preview a colorscheme. Used in the Colors panel in the settings.

Swallowed part

Part terminology.content

Where a textgrid showing off a color scheme is displayed.

Group terminology/color_preview

A group to preview a color in a tooltip. The color is defined by the color class color_preview.

Text part

Part name

Name of the color being previewed