diff --git a/pkgs/foot-git/package.nix b/pkgs/foot-git/package.nix new file mode 100644 index 0000000..4aaf266 --- /dev/null +++ b/pkgs/foot-git/package.nix @@ -0,0 +1,28 @@ +{ + lib, + fetchFromGitea, + foot, + pins, + date, + ... +}: +foot.overrideAttrs (let + pin = pins.foot; +in { + pname = "foot-transparent"; + version = "0-unstable-${date}"; + + src = fetchFromGitea { + domain = "codeberg.org"; + owner = "dnkl"; + repo = "foot"; + rev = pin.revision; + sha256 = pin.hash; + }; + + meta = { + description = "An auto-upgrading version of FOot to ensure we are always up to dates"; + mainProgram = "foot"; + maintainers = with lib.maintainers; [NotAShelf]; + }; +}) diff --git a/pkgs/foot-transparent/0001-fullscreen-transparency.patch b/pkgs/foot-transparent/0001-fullscreen-transparency.patch deleted file mode 100644 index 3c1d165..0000000 --- a/pkgs/foot-transparent/0001-fullscreen-transparency.patch +++ /dev/null @@ -1,113 +0,0 @@ -diff --git a/CHANGELOG.md b/CHANGELOG.md -index 7ed4bd7a..013ff1be 100644 ---- a/CHANGELOG.md -+++ b/CHANGELOG.md -@@ -913,7 +913,7 @@ - instead of the one least recently. - * Starlight theme (the default theme) updated to [V4][starlight-v4] - * Background transparency (alpha) is now disabled in fullscreened -- windows ([#1416][1416]). -+ windows ([#1416][1416]) by default but can be enabled with `fullscreen_alpha`. - * Foot server systemd units now use the standard - graphical-session.target ([#1281][1281]). - * If `$XDG_RUNTIME_DIR/foot-$WAYLAND_DISPLAY.sock` does not exist, -diff --git a/INSTALL.md b/INSTALL.md -index 7df8d0b8..0f7f1aef 100644 ---- a/INSTALL.md -+++ b/INSTALL.md -@@ -148,6 +148,7 @@ Available compile-time options: - | `-Ddocs` | feature | `auto` | Builds and install documentation | scdoc | - | `-Dtests` | bool | `true` | Build tests (adds a `ninja test` build target) | None | - | `-Dime` | bool | `true` | Enables IME support | None | -+| `-Dfullscreen-alpha` | bool | `false` | Enables transparency on fullscreen windows | None | - | `-Dgrapheme-clustering` | feature | `auto` | Enables grapheme clustering | libutf8proc | - | `-Dterminfo` | feature | `enabled` | Build and install terminfo files | tic (ncurses) | - | `-Ddefault-terminfo` | string | `foot` | Default value of `TERM` | None | -diff --git a/meson.build b/meson.build -index e85d95e5..bf9b021a 100644 ---- a/meson.build -+++ b/meson.build -@@ -82,6 +82,9 @@ add_project_arguments( - (get_option('b_pgo') == 'use' - ? ['-DFOOT_PGO_ENABLED=1'] - : []) + -+ (get_option('fullscreen-alpha') -+ ? ['-DFOOT_FULLSCREEN_ALPHA_ENABLED=1'] -+ : []) + - cc.get_supported_arguments( - ['-pedantic', - '-fstrict-aliasing', -@@ -414,6 +417,7 @@ summary( - 'Documentation': scdoc.found(), - 'Themes': get_option('themes'), - 'IME': get_option('ime'), -+ 'Fullscreen alpha': get_option('fullscreen-alpha'), - 'Grapheme clustering': utf8proc.found(), - 'utmp backend': utmp_backend, - 'utmp helper default path': utmp_default_helper_path, -diff --git a/meson_options.txt b/meson_options.txt -index ab7a07be..30078102 100644 ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -7,6 +7,9 @@ option('themes', type: 'boolean', value: true, - option('ime', type: 'boolean', value: true, - description: 'IME (Input Method Editor) support') - -+option('fullscreen-alpha', type: 'boolean', value: false, -+ description: 'Enables transparency on fullscreen windows') -+ - option('grapheme-clustering', type: 'feature', - description: 'Enables grapheme clustering using libutf8proc. Requires fcft with harfbuzz support to be useful.') - -diff --git a/render.c b/render.c -index 4975394f..eddf465a 100644 ---- a/render.c -+++ b/render.c -@@ -746,6 +746,13 @@ render_cell(struct terminal *term, pixman_image_t *pix, - } - - else if (cell->attrs.bg_src == COLOR_DEFAULT) { -+#if defined(FOOT_FULLSCREEN_ALPHA_ENABLED) && FOOT_FULLSCREEN_ALPHA_ENABLED -+ /* -+ * Note: I don't care about the stupid ass wayland -+ * protocol I want transparent fullscreen windows. -+ */ -+ alpha = term->colors.alpha; -+#else - if (term->window->is_fullscreen) { - /* - * Note: disable transparency when fullscreened. -@@ -783,6 +790,7 @@ render_cell(struct terminal *term, pixman_image_t *pix, - } else { - alpha = term->colors.alpha; - } -+#endif - } - } - -@@ -1191,10 +1199,12 @@ render_margin(struct terminal *term, struct buffer *buf, - const uint32_t _bg = !term->reverse ? term->colors.bg : term->colors.fg; - uint16_t alpha = term->colors.alpha; - -+#if !defined(FOOT_FULLSCREEN_ALPHA_ENABLED) || !FOOT_FULLSCREEN_ALPHA_ENABLED - if (term->window->is_fullscreen) { - /* Disable alpha in fullscreen - see render_cell() for details */ - alpha = 0xffff; - } -+#endif - - pixman_color_t bg = color_hex_to_pixman_with_alpha(_bg, alpha, gamma_correct); - -@@ -3220,8 +3230,12 @@ grid_render(struct terminal *term) - xassert(term->height > 0); - - struct buffer_chain *chain = term->render.chains.grid; -+#if defined(FOOT_FULLSCREEN_ALPHA_ENABLED) && FOOT_FULLSCREEN_ALPHA_ENABLED -+ bool use_alpha = term->colors.alpha != 0xffff; -+#else - bool use_alpha = !term->window->is_fullscreen && - term->colors.alpha != 0xffff; -+#endif - struct buffer *buf = shm_get_buffer( - chain, term->width, term->height, use_alpha); - diff --git a/pkgs/foot-transparent/package.nix b/pkgs/foot-transparent/package.nix deleted file mode 100644 index 223a694..0000000 --- a/pkgs/foot-transparent/package.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ - lib, - fetchFromGitea, - fcft, - foot, - pins, - date, - ... -}: -foot.overrideAttrs (prev: let - pin = pins.foot; -in { - pname = "foot-transparent"; - version = "0-unstable-${date}"; - - src = fetchFromGitea { - domain = "codeberg.org"; - owner = "dnkl"; - repo = "foot"; - rev = pin.revision; - sha256 = pin.hash; - }; - - patches = (prev.patches or []) ++ [./0001-fullscreen-transparency.patch]; - mesonFlags = (prev.mesonFlags or []) ++ ["-Dfullscreen-alpha=true"]; - nativeBuildInputs = - (prev.nativeBuildInputs or []) - ++ [ - (fcft.overrideAttrs { - src = fetchFromGitea { - domain = "codeberg.org"; - owner = "dnkl"; - repo = "fcft"; - tag = "3.3.1"; - hash = "sha256-qgNNowWQhiu6pr9bmWbBo3mHgdkmNpDHDBeTidk32SE="; - }; - }) - ]; - - meta = { - description = "Patched version of Foor terminal emulator that brings back fullscreen transparency"; - mainProgram = "foot"; - maintainers = with lib.maintainers; [NotAShelf]; - }; -})