mirror of
https://github.com/anotherhadi/nixy.git
synced 2026-08-21 10:45:49 +02:00
120 lines
3.4 KiB
Nix
120 lines
3.4 KiB
Nix
{
|
|
pkgs,
|
|
config,
|
|
...
|
|
}: let
|
|
c = config.lib.stylix.colors;
|
|
# TODO: Waiting for a version in nixpkgs
|
|
version = "1.11.2";
|
|
sources = {
|
|
"x86_64-linux" = {
|
|
url = "https://github.com/elio-fm/elio/releases/download/v${version}/elio-${version}-x86_64-unknown-linux-gnu.tar.gz";
|
|
hash = "sha256-9cW/xUA9p0LEYI3/j4MGPVZvcyJpV1JYKYBuHur4sTM=";
|
|
};
|
|
"aarch64-linux" = {
|
|
url = "https://github.com/elio-fm/elio/releases/download/v${version}/elio-${version}-aarch64-unknown-linux-gnu.tar.gz";
|
|
hash = "sha256-zg141Dp+jHwAqzoaCNvOoC7ZFeAX+cO8HZF5W7wz1Qs=";
|
|
};
|
|
};
|
|
source =
|
|
sources.${pkgs.stdenv.hostPlatform.system}
|
|
or (throw "elio: unsupported platform ${pkgs.stdenv.hostPlatform.system}");
|
|
|
|
elio = pkgs.stdenv.mkDerivation {
|
|
pname = "elio";
|
|
inherit version;
|
|
|
|
src = pkgs.fetchurl {inherit (source) url hash;};
|
|
|
|
nativeBuildInputs = [pkgs.autoPatchelfHook];
|
|
|
|
buildInputs = [pkgs.stdenv.cc.cc.lib];
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
install -Dm755 elio -t $out/bin
|
|
|
|
for size in 48 128 256 512; do
|
|
install -Dm644 \
|
|
"packaging/linux/icons/hicolor/''${size}x''${size}/apps/elio.png" \
|
|
"$out/share/icons/hicolor/''${size}x''${size}/apps/elio.png"
|
|
done
|
|
install -Dm644 packaging/linux/elio.desktop -t $out/share/applications
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
meta = {
|
|
description = "Terminal file manager";
|
|
homepage = "https://github.com/elio-fm/elio";
|
|
license = pkgs.lib.licenses.mit;
|
|
mainProgram = "elio";
|
|
platforms = builtins.attrNames sources;
|
|
sourceProvenance = [pkgs.lib.sourceTypes.binaryNativeCode];
|
|
};
|
|
};
|
|
in {
|
|
home.packages = [elio];
|
|
|
|
xdg.desktopEntries.elio = {
|
|
name = "elio";
|
|
exec = "${pkgs.ghostty}/bin/ghostty +new-window -e ${elio}/bin/elio %f";
|
|
terminal = false;
|
|
icon = "elio";
|
|
mimeType = ["inode/directory"];
|
|
categories = ["System" "FileManager" "FileTools" "ConsoleOnly"];
|
|
};
|
|
|
|
xdg.configFile."elio/theme.toml".text = ''
|
|
[palette]
|
|
bg = "#${c.base00}"
|
|
chrome = "#${c.base01}"
|
|
chrome_alt = "#${c.base01}"
|
|
chip_text = "#${c.base00}"
|
|
panel = "#${c.base00}"
|
|
panel_alt = "#${c.base00}"
|
|
surface = "#${c.base02}"
|
|
elevated = "#${c.base02}"
|
|
border = "#${c.base03}"
|
|
text = "#${c.base05}"
|
|
muted = "#${c.base04}"
|
|
accent = "#${c.base0D}"
|
|
accent_soft = "#${c.base02}"
|
|
accent_text = "#${c.base06}"
|
|
selected_bg = "#${c.base02}"
|
|
selected_border = "#${c.base0D}"
|
|
selection_bar = "#${c.base09}"
|
|
yank_bar = "#${c.base0B}"
|
|
cut_bar = "#${c.base08}"
|
|
progress_bar = "#${c.base0D}"
|
|
grid_selection_band = "#${c.base02}"
|
|
grid_yank_band = "#${c.base01}"
|
|
grid_cut_band = "#${c.base01}"
|
|
sidebar_active = "#${c.base02}"
|
|
button_bg = "#${c.base01}"
|
|
button_disabled_bg = "#${c.base01}"
|
|
path_bg = "#${c.base00}"
|
|
|
|
[preview.code]
|
|
fg = "#${c.base05}"
|
|
bg = "#${c.base01}"
|
|
selection_bg = "#${c.base02}"
|
|
selection_fg = "#${c.base06}"
|
|
caret = "#${c.base0C}"
|
|
line_highlight = "#${c.base01}"
|
|
line_number = "#${c.base03}"
|
|
comment = "#${c.base03}"
|
|
string = "#${c.base0B}"
|
|
constant = "#${c.base09}"
|
|
keyword = "#${c.base0E}"
|
|
function = "#${c.base0D}"
|
|
type = "#${c.base0A}"
|
|
parameter = "#${c.base08}"
|
|
tag = "#${c.base0C}"
|
|
operator = "#${c.base0C}"
|
|
macro = "#${c.base0F}"
|
|
invalid = "#${c.base08}"
|
|
'';
|
|
}
|