Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / by-name / ic / icewm / package.nix
blob186810876b32a78379a2ffa5d07788ca8b9d5622
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , fetchpatch
5 , cmake
6 , expat
7 , flac
8 , fontconfig
9 , freetype
10 , fribidi
11 , gdk-pixbuf
12 , gdk-pixbuf-xlib
13 , gettext
14 , giflib
15 , glib
16 , imlib2
17 , libICE
18 , libSM
19 , libX11
20 , libXcomposite
21 , libXdamage
22 , libXdmcp
23 , libXext
24 , libXfixes
25 , libXft
26 , libXinerama
27 , libXpm
28 , libXrandr
29 , libjpeg
30 , libogg
31 , libpng
32 , libpthreadstubs
33 , libsndfile
34 , libtiff
35 , libxcb
36 , mkfontdir
37 , pcre2
38 , perl
39 , pkg-config
42 stdenv.mkDerivation (finalAttrs: {
43   pname = "icewm";
44   version = "3.4.4";
46   src = fetchFromGitHub {
47     owner = "ice-wm";
48     repo = "icewm";
49     rev = finalAttrs.version;
50     hash = "sha256-bnoNkBsNJ/6CVmm5I/nwy6LGxYhxPXssjZ3TT7FdEz8=";
51   };
53   nativeBuildInputs = [
54     cmake
55     perl
56     pkg-config
57   ];
59   buildInputs = [
60     expat
61     flac
62     fontconfig
63     freetype
64     fribidi
65     gdk-pixbuf
66     gdk-pixbuf-xlib
67     gettext
68     giflib
69     glib
70     imlib2
71     libICE
72     libSM
73     libX11
74     libXcomposite
75     libXdamage
76     libXdmcp
77     libXext
78     libXfixes
79     libXft
80     libXinerama
81     libXpm
82     libXrandr
83     libjpeg
84     libogg
85     libpng
86     libpthreadstubs
87     libsndfile
88     libtiff
89     libxcb
90     mkfontdir
91     pcre2
92   ];
94   cmakeFlags = [
95     "-DPREFIX=$out"
96     "-DCFGDIR=/etc/icewm"
97   ];
99   # install legacy themes
100   postInstall = ''
101     cp -r ../lib/themes/{gtk2,Natural,nice,nice2,warp3,warp4,yellowmotif} \
102       $out/share/icewm/themes/
103   '';
105   meta = with lib; {
106     homepage = "https://ice-wm.org/";
107     description = "A simple, lightweight X window manager";
108     longDescription = ''
109       IceWM is a window manager for the X Window System. The goal of IceWM is
110       speed, simplicity, and not getting in the user’s way. It comes with a
111       taskbar with pager, global and per-window keybindings and a dynamic menu
112       system. Application windows can be managed by keyboard and mouse. Windows
113       can be iconified to the taskbar, to the tray, to the desktop or be made
114       hidden. They are controllable by a quick switch window (Alt+Tab) and in a
115       window list. A handful of configurable focus models are menu-selectable.
116       Setups with multiple monitors are supported by RandR and Xinerama. IceWM
117       is very configurable, themeable and well documented. It includes an
118       optional external background wallpaper manager with transparency support,
119       a simple session manager and a system tray.
120     '';
121     license = licenses.lgpl2Only;
122     maintainers = [ maintainers.AndersonTorres ];
123     platforms = platforms.linux;
124   };