summaryrefslogtreecommitdiffstats
path: root/pkgs/by-name/su/surf/package.nix
blob: 2ddb6426e00424a1366c6b106b0eeadbe2598bf5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
{
  lib,
  stdenv,
  fetchgit,
  pkg-config,
  wrapGAppsHook3,
  glib,
  gcr_3,
  glib-networking,
  gsettings-desktop-schemas,
  gtk3,
  libsoup_3,
  webkitgtk_4_1,
  xprop,
  dmenu,
  findutils,
  gnused,
  coreutils,
  gst_all_1,
  patches ? null,
}:
stdenv.mkDerivation {
  pname = "surf";
  version = "2.1-unstable-2025-04-19";

  # tarball is missing file common.h
  src = fetchgit {
    url = "git://git.suckless.org/surf";
    rev = "48517e586cdc98bc1af7115674b554cc70c8bc2e";
    hash = "sha256-+qg1mF5X/hYxCy7N3CxIEM2yHi1jmUGiK/vaQBjKy1I=";
  };

  nativeBuildInputs = [
    pkg-config
    wrapGAppsHook3
  ];
  buildInputs = [
    glib
    gcr_3
    glib-networking
    gsettings-desktop-schemas
    libsoup_3
    gtk3
    webkitgtk_4_1
  ]
  ++ (with gst_all_1; [
    # Audio & video support for webkitgtk WebView
    gstreamer
    gst-plugins-base
    gst-plugins-good
    gst-plugins-bad
  ]);

  inherit patches;

  makeFlags = [ "PREFIX=$(out)" ];

  # Add run-time dependencies to PATH. Append them to PATH so the user can
  # override the dependencies with their own PATH.
  preFixup =
    let
      depsPath = lib.makeBinPath [
        xprop
        dmenu
        findutils
        gnused
        coreutils
      ];
    in
    ''
      gappsWrapperArgs+=(
        --suffix PATH : ${depsPath}
        --set GDK_BACKEND x11
      )
    '';

  meta = {
    description = "Simple web browser based on WebKitGTK";
    mainProgram = "surf";
    longDescription = ''
      surf is a simple web browser based on WebKitGTK. It is able to display
      websites and follow links. It supports the XEmbed protocol which makes it
      possible to embed it in another application. Furthermore, one can point
      surf to another URI by setting its XProperties.
    '';
    homepage = "https://surf.suckless.org";
    license = lib.licenses.mit;
    platforms = webkitgtk_4_1.meta.platforms;
    maintainers = [ ];
  };
}