mirror of
https://github.com/NotAShelf/nyxexprs.git
synced 2024-11-22 13:20:44 +00:00
initial commit
This commit is contained in:
commit
a7d89a9499
10 changed files with 412 additions and 0 deletions
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
# ignore build symlinks
|
||||
result*
|
64
flake.lock
Normal file
64
flake.lock
Normal file
|
@ -0,0 +1,64 @@
|
|||
{
|
||||
"nodes": {
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1698882062,
|
||||
"narHash": "sha256-HkhafUayIqxXyHH1X8d9RDl1M2CkFgZLjKD3MzabiEo=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "8c9fa2545007b49a5db5f650ae91f227672c3877",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1698611440,
|
||||
"narHash": "sha256-jPjHjrerhYDy3q9+s5EAsuhyhuknNfowY6yt6pjn9pc=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "0cbe9f69c234a7700596e943bfae7ef27a31b735",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"dir": "lib",
|
||||
"lastModified": 1698611440,
|
||||
"narHash": "sha256-jPjHjrerhYDy3q9+s5EAsuhyhuknNfowY6yt6pjn9pc=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "0cbe9f69c234a7700596e943bfae7ef27a31b735",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"dir": "lib",
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts",
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
18
flake.nix
Normal file
18
flake.nix
Normal file
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
description = "Description for the project";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
flake-parts.url = "github:hercules-ci/flake-parts";
|
||||
};
|
||||
|
||||
outputs = inputs @ {flake-parts, ...}:
|
||||
flake-parts.lib.mkFlake {inherit inputs;} {
|
||||
systems = ["x86_64-linux" "aarch64-linux"];
|
||||
imports = [./pkgs];
|
||||
|
||||
perSystem = _: {};
|
||||
|
||||
flake = {};
|
||||
};
|
||||
}
|
85
patches/0001-foot-transparent.patch
Normal file
85
patches/0001-foot-transparent.patch
Normal file
|
@ -0,0 +1,85 @@
|
|||
diff --git a/CHANGELOG.md b/CHANGELOG.md
|
||||
index 84a8aef4..9332efed 100644
|
||||
--- a/CHANGELOG.md
|
||||
+++ b/CHANGELOG.md
|
||||
@@ -63,7 +63,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/meson.build b/meson.build
|
||||
index aeb2daa6..6a19db47 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -73,6 +73,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',
|
||||
@@ -388,6 +391,7 @@ summary(
|
||||
'Documentation': scdoc.found(),
|
||||
'Themes': get_option('themes'),
|
||||
'IME': get_option('ime'),
|
||||
+ 'Fullscreen alpha': get_option('fullscreen_alpha'),
|
||||
'Grapheme clustering': utf8proc.found(),
|
||||
'Wayland: xdg-activation-v1': xdg_activation,
|
||||
'Wayland: fractional-scale-v1': fractional_scale,
|
||||
diff --git a/meson_options.txt b/meson_options.txt
|
||||
index d16e23ae..153c5453 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 48957a0a..21f335eb 100644
|
||||
--- a/render.c
|
||||
+++ b/render.c
|
||||
@@ -534,6 +534,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.
|
||||
@@ -559,6 +566,7 @@ render_cell(struct terminal *term, pixman_image_t *pix,
|
||||
} else {
|
||||
alpha = term->colors.alpha;
|
||||
}
|
||||
+#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2163,7 +2171,7 @@ render_csd_button_maximize_maximized(
|
||||
{ x_margin + shrink, y_margin + thick, thick, width - 2 * thick - shrink },
|
||||
{ x_margin + width - thick - shrink, y_margin + thick, thick, width - 2 * thick - shrink },
|
||||
{ x_margin + shrink, y_margin + width - thick - shrink, width - 2 * shrink, thick }});
|
||||
-
|
||||
+
|
||||
pixman_image_unref(src);
|
||||
|
||||
}
|
||||
|
41
pkgs/ani-cli/default.nix
Normal file
41
pkgs/ani-cli/default.nix
Normal file
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
fetchFromGitHub,
|
||||
makeWrapper,
|
||||
stdenvNoCC,
|
||||
lib,
|
||||
gnugrep,
|
||||
gnused,
|
||||
wget,
|
||||
fzf,
|
||||
mpv,
|
||||
aria2,
|
||||
}:
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "ani-cli";
|
||||
version = "4.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pystardust";
|
||||
repo = "${pname}";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-ahyCD4QsYyb3xtNK03HITeF0+hJFIHZ+PAjisuS/Kdo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [makeWrapper];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
install -Dm755 ani-cli $out/bin/ani-cli
|
||||
wrapProgram $out/bin/ani-cli \
|
||||
--prefix PATH : ${lib.makeBinPath [gnugrep gnused wget fzf mpv aria2]}
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/pystardust/ani-cli";
|
||||
description = "A cli tool to browse and play anime";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [skykanin];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
38
pkgs/cloneit/default.nix
Normal file
38
pkgs/cloneit/default.nix
Normal file
|
@ -0,0 +1,38 @@
|
|||
{
|
||||
lib,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
pkg-config,
|
||||
openssl,
|
||||
...
|
||||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cloneit";
|
||||
version = "0.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "alok8bb";
|
||||
repo = "cloneit";
|
||||
rev = version;
|
||||
sha256 = "CyR/vdg6xqlxmv8jOXka3JIBhi8zafHiBOL67XLf5KM=";
|
||||
};
|
||||
|
||||
cargoSha256 = "zhsFIU7gmP4gR5NhrFslFSvYIXH1fxJLZU8nV67PluQ=";
|
||||
|
||||
nativeBuildInputs = [pkg-config];
|
||||
|
||||
buildInputs = [openssl];
|
||||
|
||||
meta2 = with lib; {
|
||||
mainProgram = "cloneit";
|
||||
homepage = "https://github.com/alok8bb/cloneit";
|
||||
license = licenses.mit;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "CLI tool to download specific GitHub directories or files";
|
||||
homepage = "https://github.com/alok8bb/cloneit";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [NotAShelf];
|
||||
};
|
||||
}
|
37
pkgs/default.nix
Normal file
37
pkgs/default.nix
Normal file
|
@ -0,0 +1,37 @@
|
|||
{
|
||||
inputs,
|
||||
self,
|
||||
...
|
||||
}: {
|
||||
systems = ["x86_64-linux"];
|
||||
|
||||
imports = [inputs.flake-parts.flakeModules.easyOverlay];
|
||||
|
||||
perSystem = {
|
||||
config,
|
||||
system,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
_module.args.pkgs = import inputs.nixpkgs {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
|
||||
packages = {
|
||||
ani-cli = pkgs.callPackage ./ani-cli {};
|
||||
rat = pkgs.callPackage ./rat {};
|
||||
mov-cli = pkgs.callPackage ./mov-cli {};
|
||||
reposilite-bin = pkgs.callPackage ./reposilite-bin {};
|
||||
cloneit = pkgs.callPackage ./cloneit {};
|
||||
|
||||
foot-transparent = pkgs.foot.overrideAttrs (old: {
|
||||
patches =
|
||||
(old.patches or [])
|
||||
++ [
|
||||
../patches/0001-foot-transparent.patch
|
||||
];
|
||||
});
|
||||
};
|
||||
};
|
||||
}
|
53
pkgs/mov-cli/default.nix
Normal file
53
pkgs/mov-cli/default.nix
Normal file
|
@ -0,0 +1,53 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
python3Packages,
|
||||
fetchFromGitHub,
|
||||
fetchPypi,
|
||||
}:
|
||||
python3Packages.buildPythonPackage rec {
|
||||
pname = "mov-cli";
|
||||
version = "1.5.1";
|
||||
format = "pyproject";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mov-cli";
|
||||
repo = "mov-cli";
|
||||
rev = "${version}";
|
||||
hash = "sha256-ixv9guHfXy1kQbpAWAVwPtpxX5IwAQ8CQ2hvhM7sewg=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
poetry-core
|
||||
pycryptodome
|
||||
lxml
|
||||
six
|
||||
beautifulsoup4
|
||||
tldextract
|
||||
(python3Packages.httpx.overrideAttrs (_old: {
|
||||
src = fetchFromGitHub {
|
||||
owner = "encode";
|
||||
repo = "httpx";
|
||||
rev = "refs/tags/0.24.0";
|
||||
hash = "sha256-eLCqmYKfBZXCQvFFh5kGoO91rtsvjbydZhPNtjL3Zaw=";
|
||||
};
|
||||
}))
|
||||
(
|
||||
python3Packages.buildPythonPackage rec {
|
||||
pname = "krfzf_py";
|
||||
version = "0.0.4";
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-W0wpR1/HRrtYC3vqEwh+Jwkgwnfa49LCFIArOXaSPCE=";
|
||||
};
|
||||
}
|
||||
)
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/mov-cli/mov-cli";
|
||||
description = "A cli tool to browse and watch movies";
|
||||
license = licenses.gpl3Only;
|
||||
mainProgram = "mov-cli";
|
||||
};
|
||||
}
|
36
pkgs/rat/default.nix
Normal file
36
pkgs/rat/default.nix
Normal file
|
@ -0,0 +1,36 @@
|
|||
{
|
||||
stdenv,
|
||||
fetchurl,
|
||||
gnused,
|
||||
makeWrapper,
|
||||
pkgs,
|
||||
lib,
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rat";
|
||||
version = "1.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/Mcharlsto/rat/releases/download/${version}/rat";
|
||||
sha256 = "sha256-93sspjvXFPocGFPeCF1AWoWYx5hI7vMltx9SQ7x25z4=";
|
||||
};
|
||||
|
||||
buildInputs = [gnused makeWrapper];
|
||||
|
||||
phases = ["installPhase" "postInstall"];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
|
||||
cp $src $out/bin/rat
|
||||
|
||||
chmod +x $out/bin/rat
|
||||
|
||||
sed -i '1 s/^.*$/#\/usr\/bin\/env bash/' $out/bin/rat
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/rat \
|
||||
--prefix PATH : ${lib.makeBinPath (with pkgs; [sharutils opusfile sox bash])}
|
||||
'';
|
||||
}
|
38
pkgs/reposilite-bin/default.nix
Normal file
38
pkgs/reposilite-bin/default.nix
Normal file
|
@ -0,0 +1,38 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
javaJdk ? pkgs.openjdk17_headless,
|
||||
...
|
||||
}: let
|
||||
inherit (pkgs) stdenv;
|
||||
|
||||
jdk = javaJdk;
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "reposilite-bin";
|
||||
version = "3.4.10";
|
||||
|
||||
jar = builtins.fetchurl {
|
||||
url = "https://maven.reposilite.com/releases/com/reposilite/reposilite/${finalAttrs.version}/reposilite-${finalAttrs.version}-all.jar";
|
||||
sha256 = "0ca6awmzsmap28l0f65h71i3kfl5jfqr4c19hadixlp5k0s8qppm";
|
||||
};
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
nativeBuildInputs = [pkgs.makeWrapper];
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
makeWrapper ${jdk}/bin/java $out/bin/reposilite \
|
||||
--add-flags "-Xmx40m -jar $jar" \
|
||||
--set JAVA_HOME ${jdk}
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "A lightweight repository manager for Maven artifacts";
|
||||
homepage = "https://reposilite.com";
|
||||
license = lib.licenses.asl20;
|
||||
mainPackage = finalAttrs.pname;
|
||||
maintainers = with lib.maintainers; [NotAShelf];
|
||||
};
|
||||
})
|
Loading…
Reference in a new issue