diff --git a/recipes-core/images/core-image-minimal.bbappend b/recipes-core/images/core-image-minimal.bbappend
index d7e584c..d8d38b9 100644
--- a/recipes-core/images/core-image-minimal.bbappend
+++ b/recipes-core/images/core-image-minimal.bbappend
@@ -50,7 +50,7 @@ IMAGE_INSTALL:append = "libcurl \
rsync \
coreutils \
wayland wayland-protocols \
- labwc foot swaybg swayidle swaylock wlr-randr wlopm sfwbar \
+ labwc foot swaybg swayidle swaylock wlr-randr wlopm sfwbar tofi \
gdbserver \
"
diff --git a/recipes-support/sfwbar/files/icon.svg b/recipes-support/sfwbar/files/icon.svg
new file mode 100644
index 0000000..e4601fa
--- /dev/null
+++ b/recipes-support/sfwbar/files/icon.svg
@@ -0,0 +1,7 @@
+
+
+
\ No newline at end of file
diff --git a/recipes-support/sfwbar/files/sfwbar.config b/recipes-support/sfwbar/files/sfwbar.config
index ab5327a..e13c800 100644
--- a/recipes-support/sfwbar/files/sfwbar.config
+++ b/recipes-support/sfwbar/files/sfwbar.config
@@ -23,6 +23,54 @@ function("ToggleMaximize") {
[Maximized] UnMaximize
}
+
+function("ShowDesktopSaveFocus") {
+ [Focused] UserState "2:on"
+ [!Focused] UserState "2:off"
+}
+
+function("ShowdesktopMinimize") {
+ [!Minimized] UserState "on"
+ [Minimized] UserState "off"
+ [!Minimized] Minimize
+}
+
+function("ShowDesktopRestore") {
+ [UserState] UnMinimize
+}
+
+function("ShowDesktopRestoreFocus") {
+ [UserState2] Focus
+}
+
+function("ShowDesktopCheckWindow") {
+ [!Minimized] UserState "target","2:on"
+}
+
+function("ShowDesktopReminimize")
+{
+ [!Minimized] UserState "on"
+ [!Minimized] Minimize
+}
+
+function("ShowDesktopUnminimized") {
+ [UserState2 | Children] Function "ShowDesktopSaveFocus"
+ [UserState2 | Children] Function "ShowDesktopReminimize"
+ [!UserState2 | Children] Function "ShowDesktopRestore"
+ [!UserState2 | Children] Function "ShowDesktopRestoreFocus"
+ [!UserState2] UserState "off"
+ [UserState2] UserState "on"
+}
+
+function("ShowDesktop") {
+ [!UserState | Children] Function "ShowDesktopSaveFocus"
+ [!UserState | Children] Function "ShowDesktopMinimize"
+ [UserState] UserState "2:off"
+ [UserState| Children ] Function "ShowDesktopCheckWindow"
+ [UserState] Function "target","ShowDesktopUnminimized"
+ [!UserState] UserState "on"
+}
+
menu("winops") {
item("focus", Focus );
item("close", Close );
@@ -33,16 +81,30 @@ menu("winops") {
# Panel layout
layout {
+ button {
+ style = "launcher"
+ value = "/usr/share/icons/hicolor/scalable/apps/tofi.svg"
+ tooltip = "Quick menu"
+ action = Exec "bash -c \"`tofi-drun`\""
+ }
+ button {
+ value = "/usr/share/icons/hicolor/scalable/actions/show-desktop.svg"
+ style = "launcher"
+ tooltip = "Show Desktop"
+ action = Function "target", "ShowDesktop"
+ }
button {
style = "launcher"
value = $Term
+ tooltip = "Terminal"
action = Exec $Term
}
-
- taskbar {
+ taskbar "target" {
rows = 1
css = "* { -GtkWidget-hexpand: false; }" # stretch horizontally
icons = true
+ group = false
+ sort = false
labels = true
action[3] = Menu "winops"
action[2] = Close
@@ -55,14 +117,14 @@ layout {
#CSS
button#launcher, button#module{
- padding: 0px 5px 0px 5px;
+ padding: 0px 2px 0px 2px;
background: none;
border-style:none;
box-shadow: none;
}
window {
- -GtkWidget-direction: bottom;
+ -GtkWidget-direction: top;
background-color: rgba(0,0,0,0.6);
border-color: rgba(0,0,0,0.3);
}
@@ -77,7 +139,7 @@ button#taskbar_normal grid {
margin-right: 0px;
}
-button#taskbar_normal image, button#taskbar_active image, button#taskbar_normal:hover image {
+button#launcher image, button#taskbar_normal image, button#taskbar_active image, button#taskbar_normal:hover image {
-GtkWidget-vexpand: true;
box-shadow: none;
border: none;
@@ -103,21 +165,23 @@ button#taskbar_normal , button#taskbar_active , button#taskbar_normal:hover {
padding-top: 0.5mm;
padding-bottom: 0.5mm;
background-image: none;
- border-radius: 4px;
+ border-radius: 0;
border-image: none;
-GtkWidget-hexpand: false;
-GtkWidget-vexpand: true;
background-color: rgba(119,119,119,0.2);
- border-color: rgba(119,119,119,0.3);
+ border: none;
+ /*border-color: rgba(119,119,119,0.3);*/
box-shadow: none;
}
button#taskbar_active {
- background-color: rgba(255,255,255,0.2);
- border-color: rgba(255,255,255,0.4);
+ /* background-color: rgba(255,255,255,0.2);
+ border-color: rgba(255,255,255,0.4); */
+ border-bottom:3px solid #116cd6;
}
-
-button#taskbar_normal:hover , button#taskbar_active:hover {
+/* button#taskbar_active:hover*/
+button#taskbar_normal:hover {
background-color: rgba(176,176,176,0.22);
border-color: rgba(234,234,234,0.44);
}
diff --git a/recipes-support/sfwbar/sfwbar_git.bb b/recipes-support/sfwbar/sfwbar_git.bb
index e480f9f..a32ef85 100644
--- a/recipes-support/sfwbar/sfwbar_git.bb
+++ b/recipes-support/sfwbar/sfwbar_git.bb
@@ -10,7 +10,7 @@ DEPENDS = "gtk+3 gtk-layer-shell json-c wayland-native"
SRCREV = "${AUTOREV}"
SRC_URI = "git://github.com/LBCrion/sfwbar.git;protocol=https;branch=main"
-SRC_URI += " file://sfwbar.config "
+SRC_URI += " file://sfwbar.config file://icon.svg "
S="${WORKDIR}/git"
@@ -21,6 +21,13 @@ EXTRA_OEMESON += "--buildtype release"
do_install:append () {
install -d ${D}/${sysconfdir}/sfwbar/
install -m 0755 ${WORKDIR}/sfwbar.config ${D}/${sysconfdir}/sfwbar/
+
+ install -d ${D}/usr/share
+ install -d ${D}/usr/share/icons
+ install -d ${D}/usr/share/icons/hicolor
+ install -d ${D}/usr/share/icons/hicolor/scalable
+ install -d ${D}/usr/share/icons/hicolor/scalable/actions/
+ install -m 0755 ${WORKDIR}/icon.svg ${D}/usr/share/icons/hicolor/scalable/actions/show-desktop.svg
}
FILES:${PN} += "/usr/share/icons/*"
\ No newline at end of file
diff --git a/recipes-support/tofi/files/config b/recipes-support/tofi/files/config
new file mode 100644
index 0000000..3074b41
--- /dev/null
+++ b/recipes-support/tofi/files/config
@@ -0,0 +1,320 @@
+# Default config for tofi
+#
+# Copy this file to ~/.config/tofi/config and get customising!
+#
+# A complete reference of available options can be found in `man 5 tofi`.
+
+#
+### Fonts
+#
+ # Font to use, either a path to a font file or a name.
+ #
+ # If a path is given, tofi will startup much quicker, but any
+ # characters not in the chosen font will fail to render.
+ #
+ # Otherwise, fonts are interpreted in Pango format.
+ font = "Sans"
+
+ # Point size of text.
+ font-size = 24
+
+ # Comma separated list of OpenType font feature settings to apply,
+ # if supported by the chosen font. The format is similar to the CSS
+ # "font-feature-settings" property.
+ #
+ # Examples:
+ #
+ # font-features = "smcp, c2sc" (all small caps)
+ # font-features = "liga 0" (disable ligatures)
+ font-features = ""
+
+ # Comma separated list of OpenType font variation settings to apply
+ # to variable fonts. The format is similar to the CSS
+ # "font-variation-settings" property.
+ #
+ # Examples:
+ #
+ # font-variations = "wght 900" (Extra bold)
+ # font-variations = "wdth 25, slnt -10" (Narrow and slanted)
+ font-variations = ""
+
+ # Perform font hinting. Only applies when a path to a font has been
+ # specified via `font`. Disabling font hinting speeds up text
+ # rendering appreciably, but will likely look poor at small font pixel
+ # sizes.
+ hint-font = true
+
+#
+### Text theming
+#
+ # Default text color
+ #
+ # All text defaults to this color if not otherwise specified.
+ text-color = #FFFFFF
+
+ # All pieces of text have the same theming attributes available:
+ #
+ # *-color
+ # Foreground color
+ #
+ # *-background
+ # Background color
+ #
+ # *-background-padding
+ # Background padding in pixels (comma-delimited, CSS-style list).
+ # See "DIRECTIONAL VALUES" under `man 5 tofi` for more info.
+ #
+ # *-background-corner-radius
+ # Radius of background box corners in pixels
+
+ # Prompt text theme
+ # prompt-color = #FFFFFF
+ prompt-background = #00000000
+ prompt-background-padding = 0
+ prompt-background-corner-radius = 0
+
+ # Placeholder text theme
+ placeholder-color = #FFFFFFA8
+ placeholder-background = #00000000
+ placeholder-background-padding = 0
+ placeholder-background-corner-radius = 0
+
+ # Input text theme
+ # input-color = #FFFFFF
+ input-background = #00000000
+ input-background-padding = 0
+ input-background-corner-radius = 0
+
+ # Default result text theme
+ # default-result-color = #FFFFFF
+ default-result-background = #00000000
+ default-result-background-padding = 0
+ default-result-background-corner-radius = 0
+
+ # Alternate (even-numbered) result text theme
+ #
+ # If unspecified, these all default to the corresponding
+ # default-result-* attribute.
+ #
+ # alternate-result-color = #FFFFFF
+ # alternate-result-background = #00000000
+ # alternate-result-background-padding = 0
+ # alternate-result-background-corner-radius = 0
+
+ # Selection text
+ selection-color = #F92672
+ selection-background = #00000000
+ selection-background-padding = 0
+ selection-background-corner-radius = 0
+
+ # Matching portion of selection text
+ selection-match-color = #00000000
+
+
+#
+### Text cursor theme
+#
+ # Style of the optional text cursor.
+ #
+ # Supported values: bar, block, underscore
+ text-cursor-style = bar
+
+ # Color of the text cursor
+ #
+ # If unspecified, defaults to the same as input-color
+ # text-cursor-color = #FFFFFF
+
+ # Color of text behind the text cursor when text-cursor-style = block
+ #
+ # If unspecified, defaults to the same as background-color
+ # text-cursor-background = #000000
+
+ # Corner radius of the text cursor
+ text-cursor-corner-radius = 0
+
+ # Thickness of the bar and underscore text cursors.
+ #
+ # If unspecified, defaults to a font-dependent value when
+ # text-cursor-style = underscore, or to 2 otherwise.
+ # text-cursor-thickness = 2
+
+#
+### Text layout
+#
+ # Prompt to display.
+ prompt-text = "run: "
+
+ # Extra horizontal padding between prompt and input.
+ prompt-padding = 0
+
+ # Placeholder input text.
+ placeholder-text = ""
+
+ # Maximum number of results to display.
+ # If 0, tofi will draw as many results as it can fit in the window.
+ num-results = 0
+
+ # Spacing between results in pixels. Can be negative.
+ result-spacing = 0
+
+ # List results horizontally.
+ horizontal = false
+
+ # Minimum width of input in horizontal mode.
+ min-input-width = 0
+
+#
+### Window theming
+#
+ # Width and height of the window. Can be pixels or a percentage.
+ width = 640
+ height = 480
+
+ # Window background color
+ background-color = #1B1D1E
+
+ # Width of the border outlines in pixels.
+ outline-width = 4
+
+ # Border outline color
+ outline-color = #080800
+
+ # Width of the border in pixels.
+ border-width = 12
+
+ # Border color
+ border-color = #F92672
+
+ # Radius of window corners in pixels.
+ corner-radius = 0
+
+ # Padding between borders and text. Can be pixels or a percentage.
+ padding-top = 8
+ padding-bottom = 8
+ padding-left = 8
+ padding-right = 8
+
+ # Whether to clip text drawing to be within the specified padding. This
+ # is mostly important for allowing text to be inset from the border,
+ # while still allowing text backgrounds to reach right to the edge.
+ clip-to-padding = true
+
+ # Whether to scale the window by the output's scale factor.
+ scale = true
+
+#
+### Window positioning
+#
+ # The name of the output to appear on. An empty string will use the
+ # default output chosen by the compositor.
+ output = ""
+
+ # Location on screen to anchor the window to.
+ #
+ # Supported values: top-left, top, top-right, right, bottom-right,
+ # bottom, bottom-left, left, center.
+ anchor = center
+
+ # Set the size of the exclusive zone.
+ #
+ # A value of -1 means ignore exclusive zones completely.
+ # A value of 0 will move tofi out of the way of other windows' zones.
+ # A value greater than 0 will set that much space as an exclusive zone.
+ #
+ # Values greater than 0 are only meaningful when tofi is anchored to a
+ # single edge.
+ exclusive-zone = -1
+
+ # Window offset from edge of screen. Only has an effect when anchored
+ # to the relevant edge. Can be pixels or a percentage.
+ margin-top = 0
+ margin-bottom = 0
+ margin-left = 0
+ margin-right = 0
+
+#
+### Behaviour
+#
+ # Hide the mouse cursor.
+ hide-cursor = true
+
+ # Show a text cursor in the input field.
+ text-cursor = true
+
+ # Sort results by number of usages in run and drun modes.
+ history = true
+
+ # Specify an alternate file to read and store history information
+ # from / to. This shouldn't normally be needed, and is intended to
+ # facilitate the creation of custom modes.
+ # history-file = /path/to/histfile
+
+ # Select the matching algorithm used. If normal, substring matching is
+ # used, weighted to favour matches closer to the beginning of the
+ # string. If prefix, only substrings at the beginning of the string are
+ # matched. If fuzzy, searching is performed via a simple fuzzy matching
+ # algorithm.
+ #
+ # Supported values: normal, prefix, fuzzy
+ matching-algorithm = normal
+
+ # If true, require a match to allow a selection to be made. If false,
+ # making a selection with no matches will print input to stdout.
+ # In drun mode, this is always true.
+ require-match = true
+
+ # If true, automatically accept a result if it is the only one
+ # remaining. If there's only one result on startup, window creation is
+ # skipped altogether.
+ auto-accept-single = false
+
+ # If true, typed input will be hidden, and what is displayed (if
+ # anything) is determined by the hidden-character option.
+ hide-input = false
+
+ # Replace displayed input characters with a character. If the empty
+ # string is given, input will be completely hidden.
+ # This option only has an effect when hide-input is set to true.
+ hidden-character = "*"
+
+ # If true, use physical keys for shortcuts, regardless of the current
+ # keyboard layout. If false, use the current layout's keys.
+ physical-keybindings = true
+
+ # Instead of printing the selected entry, print the 1-based index of
+ # the selection. This option has no effect in run or drun mode. If
+ # require-match is set to false, non-matching input will still result
+ # in the input being printed.
+ print-index = false
+
+ # If true, directly launch applications on selection when in drun mode.
+ # Otherwise, just print the command line to stdout.
+ drun-launch = false
+
+ # The terminal to run terminal programs in when in drun mode.
+ # This option has no effect if drun-launch is set to true.
+ # Defaults to the value of the TERMINAL environment variable.
+ terminal = foot
+
+ # Delay keyboard initialisation until after the first draw to screen.
+ # This option is experimental, and will cause tofi to miss keypresses
+ # for a short time after launch. The only reason to use this option is
+ # performance on slow systems.
+ late-keyboard-init = false
+
+ # If true, allow multiple simultaneous processes.
+ # If false, create a lock file on startup to prevent multiple instances
+ # from running simultaneously.
+ multi-instance = false
+
+ # Assume input is plain ASCII, and disable some Unicode handling
+ # functions. This is faster, but means e.g. a search for "e" will not
+ # match "é".
+ ascii-input = false
+
+#
+### Inclusion
+#
+ # Configs can be split between multiple files, and then included
+ # within each other.
+ # include = /path/to/config
diff --git a/recipes-support/tofi/files/icon.svg b/recipes-support/tofi/files/icon.svg
new file mode 100644
index 0000000..0a3cd43
--- /dev/null
+++ b/recipes-support/tofi/files/icon.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/recipes-support/tofi/tofi_git.bb b/recipes-support/tofi/tofi_git.bb
new file mode 100644
index 0000000..b9c9ae3
--- /dev/null
+++ b/recipes-support/tofi/tofi_git.bb
@@ -0,0 +1,33 @@
+DESCRIPTION = "tofi menu for wayland"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
+
+DEPENDS = "wayland wayland-native wayland-protocols"
+
+SRCREV = "${AUTOREV}"
+
+SRC_URI = "git://github.com/philj56/tofi.git;protocol=https;branch=master"
+SRC_URI += " file://icon.svg file://config "
+
+S="${WORKDIR}/git"
+
+inherit meson pkgconfig
+
+EXTRA_OEMESON += "--buildtype release"
+
+do_install:append () {
+ install -d ${D}/usr/share
+ install -d ${D}/usr/share/icons
+ install -d ${D}/usr/share/icons/hicolor
+ install -d ${D}/usr/share/icons/hicolor/scalable
+ install -d ${D}/usr/share/icons/hicolor/scalable/apps
+ install -m 0755 ${WORKDIR}/icon.svg ${D}/usr/share/icons/hicolor/scalable/apps/tofi.svg
+
+ # replace the default config
+ install -m 0755 ${WORKDIR}/config ${D}/${sysconfdir}/xdg/tofi/
+}
+
+# FILES:${PN} += "/usr/share/icons/*"
\ No newline at end of file