From 991a5393d4153f3a13283898f9cac168a67dc536 Mon Sep 17 00:00:00 2001 From: DanyLE Date: Thu, 27 Jul 2023 12:40:46 +0200 Subject: [PATCH] add tofi + icons --- .../images/core-image-minimal.bbappend | 2 +- recipes-support/sfwbar/files/icon.svg | 7 + recipes-support/sfwbar/files/sfwbar.config | 86 ++++- recipes-support/sfwbar/sfwbar_git.bb | 9 +- recipes-support/tofi/files/config | 320 ++++++++++++++++++ recipes-support/tofi/files/icon.svg | 2 + recipes-support/tofi/tofi_git.bb | 33 ++ 7 files changed, 446 insertions(+), 13 deletions(-) create mode 100644 recipes-support/sfwbar/files/icon.svg create mode 100644 recipes-support/tofi/files/config create mode 100644 recipes-support/tofi/files/icon.svg create mode 100644 recipes-support/tofi/tofi_git.bb 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