st

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 71f9529a6d06df140909d60df5901b02fedee1bf
parent df114a3730140548cc7c9e76bc96a450e0897caa
Author: Sidhanth Rathod <siduck@tutanota.com>
Date:   Thu, 21 Jul 2022 20:59:40 +0530

Merge pull request #40 from sioodmy/implement/nix-flake

Implement Nix flakes :snowflake: 
Diffstat:
MREADME.md | 32+++++++++++++++++++++++---------
Adefault.nix | 42++++++++++++++++++++++++++++++++++++++++++
Aflake.lock | 43+++++++++++++++++++++++++++++++++++++++++++
Aflake.nix | 35+++++++++++++++++++++++++++++++++++
Dshell.nix | 5-----
5 files changed, 143 insertions(+), 14 deletions(-)

diff --git a/README.md b/README.md @@ -7,29 +7,42 @@ ## Dependencies ``` -# Void +# Void xbps-install libXft-devel libX11-devel harfbuzz-devel libXext-devel libXrender-devel libXinerama-devel - + # Debian (and ubuntu probably) -apt install build-essential libxft-dev libharfbuzz-dev +apt install build-essential libxft-dev libharfbuzz-dev + +# Nix +nix develop github:siduck/st (most of these are already installed on Arch based distros) # Install font-symbola and libXft-bgra ``` +## Try it out! + +Before you install st on your system, you might want to try it out first. +To do so, simply run (requires [Nix](https://nixos.org/download.html)) +`nix run github:siduck/st` + ## Install ``` git clone https://github.com/siduck/st.git cd st -sudo make install +sudo make install xrdb merge pathToXresourcesFile ``` -(note : put the xrdb merge command in your wm's autostart or similar) +(note : put the xrdb merge command in your wm's autostart or similar) -## Fonts +### Using Nix flakes + +Add `st.url = "github:siduck/st";` to your inputs and install `inputs.st.packages."${system}".st-snazzy` package + +## Fonts - Install JetbrainsMono Mono Nerd Font or any nerd font from [here](https://www.nerdfonts.com/font-downloads) @@ -62,6 +75,7 @@ alias rel="xrdb merge pathToXresourcesFile && kill -USR1 $(pidof st)" ``` ## Ram usage comparison with other terminals and speed test + <img src="https://raw.githubusercontent.com/siduck/dotfiles/all/rice%20flex/terminal_ramUsage.jpg"> <br><br> <img src="https://raw.githubusercontent.com/siduck/dotfiles/all/rice%20flex/speedTest.png"> <br><br> <img src="https://raw.githubusercontent.com/siduck/dotfiles/all/rice%20flex/speedTest1.png"> <br><br> @@ -73,7 +87,7 @@ alias rel="xrdb merge pathToXresourcesFile && kill -USR1 $(pidof st)" <pre> ctrl + shift + c Copy <br> ctrl + shift + v Paste <br> -right click on the terminal ( will paste the copied thing ) +right click on the terminal ( will paste the copied thing ) (Zoom) alt + comma Zoom in <br> @@ -85,7 +99,7 @@ alt + s Increase Transparency<br> alt + a Decrease Transparency<br> alt + m Reset Transparency<br> -alt + k scroll down +alt + k scroll down alt + j scroll up mod + shift + enter open a new terminal with same cwd ( current working directory ) @@ -109,5 +123,5 @@ you can change all of these in config.h # Credits -- [live-reload](https://github.com/nimaipatel/st) +- [live-reload](https://github.com/nimaipatel/st) - [patch_column](https://github.com/nimaipatel/st/blob/all/patches/7672445bab01cb4e861651dc540566ac22e25812.diff) diff --git a/default.nix b/default.nix @@ -0,0 +1,42 @@ +{ lib, stdenv, fetchurl, pkg-config, fontconfig, freetype, libX11, libXft +, harfbuzz, gd, glib, ncurses, writeText, conf ? null, patches ? [ ] +, extraLibs ? [ ], nixosTests }: + +stdenv.mkDerivation rec { + pname = "st-snazzy"; + version = "0.8.5"; + + src = ./.; + inherit patches; + + configFile = + lib.optionalString (conf != null) (writeText "config.def.h" conf); + + postPatch = lib.optionalString (conf != null) "cp ${configFile} config.def.h" + + lib.optionalString stdenv.isDarwin '' + substituteInPlace config.mk --replace "-lrt" "" + ''; + + strictDeps = true; + + makeFlags = [ "PKG_CONFIG=${stdenv.cc.targetPrefix}pkg-config" ]; + + nativeBuildInputs = [ pkg-config ncurses fontconfig freetype ]; + buildInputs = [ libX11 libXft harfbuzz gd glib ] ++ extraLibs; + + preInstall = '' + export TERMINFO=$out/share/terminfo + ''; + + installFlags = [ "PREFIX=$(out)" ]; + + passthru.tests.test = nixosTests.terminal-emulators.st; + + meta = with lib; { + homepage = "https://github.com/siduck/st"; + description = "snazzy terminal (suckless + lightweight)"; + license = licenses.mit; + maintainers = with maintainers; [ sioodmy ]; + platforms = platforms.unix; + }; +} diff --git a/flake.lock b/flake.lock @@ -0,0 +1,43 @@ +{ + "nodes": { + "flake-utils": { + "locked": { + "lastModified": 1656928814, + "narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1658161305, + "narHash": "sha256-X/nhnMCa1Wx4YapsspyAs6QYz6T/85FofrI6NpdPDHg=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "e4d49de45a3b5dbcb881656b4e3986e666141ea9", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix @@ -0,0 +1,35 @@ +{ + description = "snazzy terminal (suckless + lightweight)"; + + inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + inputs.flake-utils.url = "github:numtide/flake-utils"; + + outputs = { self, nixpkgs, flake-utils }: + flake-utils.lib.eachDefaultSystem (system: + let pkgs = nixpkgs.legacyPackages.${system}; + in rec { + packages = flake-utils.lib.flattenTree { + st-snazzy = pkgs.callPackage ./default.nix { }; + }; + defaultPackage = packages.st-snazzy; + apps.st-snazzy = flake-utils.lib.mkApp { + drv = packages.st-snazzy; + exePath = "/bin/st"; + }; + apps.default = apps.st-snazzy; + defaultApp = apps.st-snazzy; + devShell = pkgs.mkShell rec { + name = "st-snazzy"; + packages = with pkgs; [ + pkgconfig + xorg.libX11 + xorg.libXft + fontconfig + harfbuzz + gd + glib + ]; + }; + + }); +} diff --git a/shell.nix b/shell.nix @@ -1,5 +0,0 @@ -{ pkgs ? import <nixpkgs> {} }: - -pkgs.mkShell { - nativeBuildInputs = with pkgs; [ pkgconfig xorg.libX11 xorg.libXft fontconfig harfbuzz ]; -}