| 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 | (define-module (gnu packages lxde)
|
| 32 | #:use-module (gnu packages)
|
| 33 | #:use-module (gnu packages admin)
|
| 34 | #:use-module (gnu packages autotools)
|
| 35 | #:use-module (gnu packages base)
|
| 36 | #:use-module (gnu packages bash)
|
| 37 | #:use-module (gnu packages curl)
|
| 38 | #:use-module (gnu packages disk)
|
| 39 | #:use-module (gnu packages docbook)
|
| 40 | #:use-module (gnu packages file-systems)
|
| 41 | #:use-module (gnu packages freedesktop)
|
| 42 | #:use-module (gnu packages gettext)
|
| 43 | #:use-module (gnu packages glib)
|
| 44 | #:use-module (gnu packages gnome)
|
| 45 | #:use-module (gnu packages gtk)
|
| 46 | #:use-module (gnu packages image-viewers)
|
| 47 | #:use-module (gnu packages libusb)
|
| 48 | #:use-module (gnu packages linux)
|
| 49 | #:use-module (gnu packages lsof)
|
| 50 | #:use-module (gnu packages photo)
|
| 51 | #:use-module (gnu packages pkg-config)
|
| 52 | #:use-module (gnu packages polkit)
|
| 53 | #:use-module (gnu packages text-editors)
|
| 54 | #:use-module (gnu packages video)
|
| 55 | #:use-module (gnu packages wget)
|
| 56 | #:use-module (gnu packages window-management)
|
| 57 | #:use-module (gnu packages xdisorg)
|
| 58 | #:use-module (gnu packages xml)
|
| 59 | #:use-module (gnu packages xorg)
|
| 60 | #:use-module (guix build-system glib-or-gtk)
|
| 61 | #:use-module (guix build-system gnu)
|
| 62 | #:use-module (guix build-system trivial)
|
| 63 | #:use-module (guix download)
|
| 64 | #:use-module (guix gexp)
|
| 65 | #:use-module (guix git-download)
|
| 66 | #:use-module ((guix licenses) #:prefix license:)
|
| 67 | #:use-module (guix packages)
|
| 68 | #:use-module (guix utils))
|
| 69 |
|
| 70 | (define delete-generated-c-files
|
| 71 | |
| 72 | '(let* ((c->vala
|
| 73 | (lambda (file)
|
| 74 | (string-append (string-drop-right file 2)
|
| 75 | ".vala")))
|
| 76 | (generated-c-file?
|
| 77 | (lambda (file stat)
|
| 78 | (and (string-suffix? ".c" file)
|
| 79 | (file-exists? (c->vala file))))))
|
| 80 | (for-each delete-file
|
| 81 | (find-files "." generated-c-file?))))
|
| 82 |
|
| 83 | (define-public libfm
|
| 84 | (package
|
| 85 | (name "libfm")
|
| 86 | (version "1.4.0")
|
| 87 | (source (origin
|
| 88 | (method git-fetch)
|
| 89 | (uri
|
| 90 | (git-reference
|
| 91 | (url "https://github.com/lxde/libfm")
|
| 92 | (commit version)))
|
| 93 | (file-name (git-file-name name version))
|
| 94 | (sha256
|
| 95 | (base32 "1gxg09lcacy7dh5pg1bm3rw11jffg7y59j0cb2cfsrgf0g5bjsvn"))
|
| 96 | (modules '((guix build utils)))
|
| 97 | (snippet delete-generated-c-files)))
|
| 98 | (build-system gnu-build-system)
|
| 99 | (arguments (list #:configure-flags #~(list "--with-gtk=3")))
|
| 100 | (inputs (list glib gtk+))
|
| 101 | (native-inputs (list intltool
|
| 102 | which
|
| 103 | automake
|
| 104 | autoconf
|
| 105 | gtk-doc
|
| 106 | `(,glib "bin") |
| 107 | libtool
|
| 108 | menu-cache
|
| 109 | pkg-config
|
| 110 | vala))
|
| 111 | (synopsis "File management support (core library)")
|
| 112 | (description "LibFM provides file management functions built on top of
|
| 113 | Glib/GIO giving a higher-level API.")
|
| 114 | (home-page "https://www.lxde.org/")
|
| 115 | (license license:gpl2+)))
|
| 116 |
|
| 117 | (define-public libfm-extra
|
| 118 | (package (inherit libfm)
|
| 119 | (name "libfm-extra")
|
| 120 | (arguments '(#:configure-flags '("--with-extra-only")))
|
| 121 | (inputs (list glib libexif))
|
| 122 | (native-inputs
|
| 123 | (list autoconf automake gtk-doc intltool libtool pkg-config which))
|
| 124 | (synopsis "File management support (extra library)")
|
| 125 | (description "This package contains a stand-alone library which extends the
|
| 126 | libFM file management library.")))
|
| 127 |
|
| 128 | (define-public lxappearance
|
| 129 | (package
|
| 130 | (name "lxappearance")
|
| 131 | (version "0.6.4")
|
| 132 | (source (origin
|
| 133 | (method git-fetch)
|
| 134 | (uri
|
| 135 | (git-reference
|
| 136 | (url "https://github.com/lxde/lxappearance")
|
| 137 | (commit version)))
|
| 138 | (file-name (git-file-name name version))
|
| 139 | (sha256
|
| 140 | (base32 "1cia6mkb3fqy3rgfprlmq0ajh15cnazdwdkv4zd19klrh4jzg4xp"))))
|
| 141 | (build-system gnu-build-system)
|
| 142 | (arguments (list #:configure-flags #~(list "--enable-gtk3")))
|
| 143 | (inputs (list gtk+))
|
| 144 | (native-inputs (list automake autoconf intltool pkg-config))
|
| 145 | (synopsis "LXDE GTK+ theme switcher")
|
| 146 | (description "LXAppearance is a desktop-independent GTK+ theme switcher
|
| 147 | able to change themes, icons, and fonts used by GTK+ applications.")
|
| 148 | (home-page "https://www.lxde.org/")
|
| 149 | (license license:gpl2+)))
|
| 150 |
|
| 151 | (define-public lxrandr
|
| 152 | (package
|
| 153 | (name "lxrandr")
|
| 154 | (version "0.3.3")
|
| 155 | (source (origin
|
| 156 | (method git-fetch)
|
| 157 | (uri
|
| 158 | (git-reference
|
| 159 | (url "https://github.com/lxde/lxrandr")
|
| 160 | (commit version)))
|
| 161 | (file-name (git-file-name name version))
|
| 162 | (sha256
|
| 163 | (base32 "1vh5r6bwafh9mq7syhdw1f2ahwvibq2wdc1ij84hbaa5bnyjfr8h"))))
|
| 164 | (build-system gnu-build-system)
|
| 165 | (arguments
|
| 166 | `(#:configure-flags (list "--enable-gtk3")
|
| 167 | #:phases
|
| 168 | (modify-phases %standard-phases
|
| 169 | (add-after 'unpack 'xrandr-absolutely
|
| 170 | |
| 171 | |
| 172 | (lambda* (#:key input #:allow-other-keys)
|
| 173 | (substitute* "src/lxrandr.c"
|
| 174 | (("(\"|')xrandr\"" _ match)
|
| 175 | (string-append match (which "xrandr") "\""))))))))
|
| 176 | (inputs (list gtk+ xrandr))
|
| 177 | (native-inputs (list automake autoconf intltool pkg-config))
|
| 178 | (synopsis "LXDE monitor configuration tool")
|
| 179 | (description "LXRandR is a very basic monitor configuration tool. It
|
| 180 | relies on the X11 resize-and-rotate (RandR) extension but doesn't aim to be a
|
| 181 | full frontend of it. LXRandR only gives you some easy and quick options which
|
| 182 | are intuitive. It's suitable for laptop users who frequently uses projectors
|
| 183 | or external monitor.")
|
| 184 | (home-page "https://www.lxde.org/")
|
| 185 | (license license:gpl2+)))
|
| 186 |
|
| 187 | (define-public lxtask
|
| 188 | (package
|
| 189 | (name "lxtask")
|
| 190 | (version "0.1.12")
|
| 191 | (source (origin
|
| 192 | (method git-fetch)
|
| 193 | (uri
|
| 194 | (git-reference
|
| 195 | (url "https://github.com/lxde/lxtask")
|
| 196 | (commit version)))
|
| 197 | (file-name (git-file-name name version))
|
| 198 | (sha256
|
| 199 | (base32 "11vcl0k2yhx59599fdk8gv5jh2gsgh7rmp2syybk3vpmby6p93h4"))))
|
| 200 | (build-system gnu-build-system)
|
| 201 | (arguments (list #:configure-flags #~(list "--enable-gtk3")))
|
| 202 | (inputs (list gtk+))
|
| 203 | (native-inputs (list automake autoconf intltool pkg-config))
|
| 204 | (synopsis "LXDE task manager")
|
| 205 | (description "LXTask is a lightweight task manager derived from Xfce task
|
| 206 | manager with all dependencies on Xfce removed. LXTask is based on the GTK+
|
| 207 | toolkit. It allows users to monitor and control of running processes.")
|
| 208 | (home-page "https://www.lxde.org/")
|
| 209 | (license license:gpl2+)))
|
| 210 |
|
| 211 | (define-public lxterminal
|
| 212 | (package
|
| 213 | (name "lxterminal")
|
| 214 | (version "0.4.1")
|
| 215 | (source (origin
|
| 216 | (method git-fetch)
|
| 217 | (uri
|
| 218 | (git-reference
|
| 219 | (url "https://github.com/lxde/lxterminal")
|
| 220 | (commit version)))
|
| 221 | (file-name (git-file-name name version))
|
| 222 | (sha256
|
| 223 | (base32 "159p34caid7ca679ly1lhvw4qclqh23ddsiphlw9yn0h9v8s2dd0"))))
|
| 224 | (build-system gnu-build-system)
|
| 225 | (arguments (list #:configure-flags #~(list "--enable-gtk3")))
|
| 226 | (inputs (list gtk+ vte/gtk+-3))
|
| 227 | (native-inputs (list automake autoconf intltool pkg-config))
|
| 228 | (synopsis "LXDE terminal emulator")
|
| 229 | (description "LXTerminal is a VTE-based terminal emulator. It supports
|
| 230 | multiple tabs and has only minimal dependencies thus being completely
|
| 231 | desktop-independent. In order to reduce memory usage and increase the
|
| 232 | performance, all instances of the terminal are sharing a single process.")
|
| 233 | (home-page "https://www.lxde.org/")
|
| 234 | (license license:gpl2+)))
|
| 235 |
|
| 236 | (define-public menu-cache
|
| 237 | (package
|
| 238 | (name "menu-cache")
|
| 239 | (version "1.1.1")
|
| 240 | (source (origin
|
| 241 | (method git-fetch)
|
| 242 | (uri
|
| 243 | (git-reference
|
| 244 | (url "https://github.com/lxde/menu-cache")
|
| 245 | (commit version)))
|
| 246 | (file-name (git-file-name name version))
|
| 247 | (sha256
|
| 248 | (base32 "0qhc72xinxmd68nfrph9jfwymkw9x71drgksz2r2k5nzv9p7cnp5"))))
|
| 249 | (build-system gnu-build-system)
|
| 250 | (inputs (list glib libfm-extra))
|
| 251 | (native-inputs (list automake autoconf libtool gtk-doc pkg-config))
|
| 252 | (arguments
|
| 253 | `(#:configure-flags '("CFLAGS=-fcommon")))
|
| 254 | (synopsis "LXDE implementation of the freedesktop menu's cache")
|
| 255 | (description "Menu-cache is a library creating and utilizing caches to
|
| 256 | speed up the access to freedesktop.org defined application menus.")
|
| 257 | (home-page "https://www.lxde.org/")
|
| 258 | (license license:lgpl2.1+)))
|
| 259 |
|
| 260 | (define-public pcmanfm
|
| 261 | (package
|
| 262 | (name "pcmanfm")
|
| 263 | (version "1.4.0")
|
| 264 | (source (origin
|
| 265 | (method git-fetch)
|
| 266 | (uri
|
| 267 | (git-reference
|
| 268 | (url "https://github.com/lxde/pcmanfm")
|
| 269 | (commit version)))
|
| 270 | (file-name (git-file-name name version))
|
| 271 | (sha256
|
| 272 | (base32
|
| 273 | "0dkl12a6x9w3ka4g2qx0ssxdv7v432xar6v2gddzbzsxg4546hp2"))))
|
| 274 | (build-system gnu-build-system)
|
| 275 | (arguments (list #:configure-flags #~(list "--with-gtk=3")))
|
| 276 | (inputs (list gtk+ gvfs |
| 277 | libfm libx11))
|
| 278 | (native-inputs (list intltool automake autoconf libtool pkg-config))
|
| 279 | (propagated-inputs
|
| 280 | (list lxmenu-data)) |
| 281 | (synopsis "LXDE file manager")
|
| 282 | (description "PCMan is a lightweight GTK+ based file manager, compliant
|
| 283 | with freedesktop.org standard.")
|
| 284 | (home-page "https://www.lxde.org/")
|
| 285 | (license license:gpl2+)))
|
| 286 |
|
| 287 | (define-public lxmenu-data
|
| 288 | (package
|
| 289 | (name "lxmenu-data")
|
| 290 | (version "0.1.6")
|
| 291 | (source (origin
|
| 292 | (method git-fetch)
|
| 293 | (uri
|
| 294 | (git-reference
|
| 295 | (url "https://github.com/lxde/lxmenu-data")
|
| 296 | (commit version)))
|
| 297 | (file-name (git-file-name name version))
|
| 298 | (sha256
|
| 299 | (base32 "1abicrm66pn4vphlwx0rg2q3wvjmzijf0vgpml1vr3zkp7xm01z5"))))
|
| 300 | (build-system gnu-build-system)
|
| 301 | (native-inputs
|
| 302 | (list glib automake autoconf pkg-config intltool))
|
| 303 | (synopsis "Freedesktop.org desktop menus for LXDE")
|
| 304 | (description
|
| 305 | "Lxmenu-data provides files required to build freedesktop.org
|
| 306 | menu spec-compliant desktop menus for LXDE.")
|
| 307 | (home-page "https://www.lxde.org/")
|
| 308 | (license license:lgpl2.1+)))
|
| 309 |
|
| 310 | (define-public lxde-icon-theme
|
| 311 | (package
|
| 312 | (name "lxde-icon-theme")
|
| 313 | (version "0.5.2")
|
| 314 | (source (origin
|
| 315 | (method git-fetch)
|
| 316 | (uri
|
| 317 | (git-reference
|
| 318 | (url "https://github.com/lxde/lxde-icon-theme")
|
| 319 | (commit version)))
|
| 320 | (file-name (git-file-name name version))
|
| 321 | (sha256
|
| 322 | (base32 "0sv3pzvxs1gxa7dpqs7zls3wc7kj9x8w99i4h56mdsc6vz61y3mp"))))
|
| 323 | (build-system gnu-build-system)
|
| 324 | (native-inputs
|
| 325 | (list automake autoconf pkg-config))
|
| 326 | (synopsis "LXDE default icon theme based on nuoveXT2")
|
| 327 | (description
|
| 328 | "Lxde-icon-theme provides an default icon theme for LXDE.")
|
| 329 | (home-page "https://www.lxde.org/")
|
| 330 | (license license:lgpl3)))
|
| 331 |
|
| 332 | (define-public lxde-common
|
| 333 | (package
|
| 334 | (name "lxde-common")
|
| 335 | (version "0.99.3")
|
| 336 | (source (origin
|
| 337 | (method git-fetch)
|
| 338 | (uri
|
| 339 | (git-reference
|
| 340 | (url "https://github.com/lxde/lxde-common")
|
| 341 | (commit version)))
|
| 342 | (file-name (git-file-name name version))
|
| 343 | (sha256
|
| 344 | (base32 "0py5dazjmz7yh5p0zv7psgsx4291cg21h5kw6ww5bzvr34kpbnwc"))))
|
| 345 | (build-system gnu-build-system)
|
| 346 | (arguments
|
| 347 | '(#:phases (modify-phases %standard-phases
|
| 348 | (add-before 'configure 'set-lxsession
|
| 349 | (lambda* (#:key inputs #:allow-other-keys)
|
| 350 | |
| 351 | (let ((lxsession (assoc-ref inputs "lxsession")))
|
| 352 | (substitute* "startlxde.in"
|
| 353 | (("^exec .*/bin/lxsession")
|
| 354 | (string-append "exec " lxsession
|
| 355 | "/bin/lxsession")))
|
| 356 | #t))))))
|
| 357 | (native-inputs
|
| 358 | (list automake autoconf pkg-config intltool lxmenu-data lxde-icon-theme))
|
| 359 | (inputs
|
| 360 | (list lxsession
|
| 361 | |
| 362 | ))
|
| 363 | (synopsis "Common files of the LXDE Desktop")
|
| 364 | (description
|
| 365 | "Lxde-common provides common files of the LXDE Desktop.")
|
| 366 | (home-page "https://www.lxde.org/")
|
| 367 | (license license:gpl2+)))
|
| 368 |
|
| 369 | (define-public lxinput
|
| 370 | (package
|
| 371 | (name "lxinput")
|
| 372 | (version "0.3.6")
|
| 373 | (source (origin
|
| 374 | (method git-fetch)
|
| 375 | (uri
|
| 376 | (git-reference
|
| 377 | (url "https://github.com/lxde/lxinput")
|
| 378 | (commit version)))
|
| 379 | (file-name (git-file-name name version))
|
| 380 | (sha256
|
| 381 | (base32 "13xqxwsb00h20yg514pjmdlvmfqv029nwdy70aaqn0r0jz670sm7"))))
|
| 382 | (build-system gnu-build-system)
|
| 383 | (arguments (list #:configure-flags #~(list "--enable-gtk3")))
|
| 384 | (inputs
|
| 385 | (list gtk+))
|
| 386 | (native-inputs
|
| 387 | (list automake autoconf pkg-config intltool))
|
| 388 | (synopsis "Tool for mouse and keyboard configuration in LXDE")
|
| 389 | (description
|
| 390 | "Lxinput provides a small program to configure keyboard and mouse
|
| 391 | in LXDE.")
|
| 392 | (home-page "https://www.lxde.org/")
|
| 393 | (license license:gpl2+)))
|
| 394 |
|
| 395 | (define-public lxsession
|
| 396 | (package
|
| 397 | (name "lxsession")
|
| 398 | (version "0.5.6")
|
| 399 | (source
|
| 400 | (origin
|
| 401 | (method git-fetch)
|
| 402 | (uri
|
| 403 | (git-reference
|
| 404 | (url "https://github.com/lxde/lxsession")
|
| 405 | (commit version)))
|
| 406 | (file-name (git-file-name name version))
|
| 407 | (sha256
|
| 408 | (base32 "0mgykzhd5n11mfcbpaqb841f4jwy1yhmd1xn49dxc2hci8bx26fx"))
|
| 409 | |
| 410 | (patches (search-patches "lxsession-potfiles-ignore.patch"))
|
| 411 | (modules '((guix build utils)))
|
| 412 | (snippet delete-generated-c-files)))
|
| 413 | (build-system gnu-build-system)
|
| 414 | (arguments
|
| 415 | `(#:configure-flags (list "--enable-gtk3")))
|
| 416 | (inputs
|
| 417 | (list gtk+
|
| 418 | polkit))
|
| 419 | (native-inputs
|
| 420 | (list pkg-config
|
| 421 | intltool
|
| 422 | docbook-xsl
|
| 423 | vala
|
| 424 | |
| 425 | autoconf
|
| 426 | automake))
|
| 427 | (synopsis "Lightweight X11 session manager")
|
| 428 | (description
|
| 429 | "Lxsession provides an lightweight X11 session manager.")
|
| 430 | (home-page "https://www.lxde.org/")
|
| 431 | (license license:gpl2+)))
|
| 432 |
|
| 433 | (define-public lxpanel
|
| 434 | (package
|
| 435 | (name "lxpanel")
|
| 436 | (version "0.11.1")
|
| 437 | (source
|
| 438 | (origin
|
| 439 | (method git-fetch)
|
| 440 | (uri
|
| 441 | (git-reference
|
| 442 | (url "https://github.com/lxde/lxpanel")
|
| 443 | (commit version)))
|
| 444 | (file-name (git-file-name name version))
|
| 445 | (sha256
|
| 446 | (base32 "1xqhxcwhx2qlgsri10gwldb0xz9ajsc3iqnn8d53bjb4yh0vk5wf"))))
|
| 447 | (build-system gnu-build-system)
|
| 448 | (arguments
|
| 449 | (list
|
| 450 | #:configure-flags #~(list "--enable-gtk3")
|
| 451 | #:phases
|
| 452 | #~(modify-phases %standard-phases
|
| 453 | (add-after 'install 'wrap
|
| 454 | (lambda* (#:key inputs outputs #:allow-other-keys)
|
| 455 | (wrap-program (search-input-file outputs "bin/lxpanel")
|
| 456 | `("XDG_DATA_DIRS" ":" prefix
|
| 457 | (,(string-append #$(this-package-input "lxmenu-data")
|
| 458 | "/share")))))))))
|
| 459 | (inputs
|
| 460 | (list alsa-lib
|
| 461 | bash-minimal |
| 462 | cairo
|
| 463 | curl
|
| 464 | gtk+
|
| 465 | keybinder
|
| 466 | libindicator
|
| 467 | libwnck
|
| 468 | libx11
|
| 469 | libxml2
|
| 470 | libxmu
|
| 471 | libxpm
|
| 472 | wireless-tools))
|
| 473 | (native-inputs
|
| 474 | (list docbook-xml
|
| 475 | libtool
|
| 476 | automake
|
| 477 | autoconf
|
| 478 | gettext-minimal
|
| 479 | intltool
|
| 480 | pkg-config))
|
| 481 | (propagated-inputs
|
| 482 | (list libfm
|
| 483 | lxmenu-data
|
| 484 | menu-cache))
|
| 485 | (synopsis "X11 Desktop panel for LXDE")
|
| 486 | (description
|
| 487 | "Lxpanel provides an X11 desktop panel for LXDE.")
|
| 488 | (home-page "https://www.lxde.org/")
|
| 489 | (license license:gpl2+)))
|
| 490 |
|
| 491 | (define-public lxde
|
| 492 | (package
|
| 493 | (name "lxde")
|
| 494 | (version (package-version lxde-common))
|
| 495 | (source #f)
|
| 496 | (build-system trivial-build-system)
|
| 497 | (arguments '(#:builder (begin (mkdir %output) #t)))
|
| 498 | (propagated-inputs
|
| 499 | |
| 500 | |
| 501 | |
| 502 | (list menu-cache
|
| 503 | gpicview
|
| 504 | leafpad
|
| 505 | lxappearance
|
| 506 | lxde-icon-theme
|
| 507 | lxde-common
|
| 508 | lxmenu-data
|
| 509 | lxpanel
|
| 510 | lxrandr
|
| 511 | lxsession
|
| 512 | libfm
|
| 513 | libfm-extra
|
| 514 | lxtask
|
| 515 | lxterminal
|
| 516 | pcmanfm
|
| 517 | openbox
|
| 518 | obconf))
|
| 519 | (synopsis "Lightweight X11 Desktop Environment")
|
| 520 | (description
|
| 521 | "LXDE, which stands for Lightweight X11 Desktop Environment, is a
|
| 522 | desktop environment which is lightweight and fast. It is designed to be
|
| 523 | user friendly and slim, while keeping the resource usage low. LXDE uses
|
| 524 | less RAM and less CPU while being a feature rich desktop environment. Unlike
|
| 525 | other tightly integrated desktops LXDE strives to be modular, so each
|
| 526 | component can be used independently with few dependencies.")
|
| 527 | (home-page "https://www.lxde.org/")
|
| 528 | (license license:gpl2+))) |
| 529 |
|
| 530 | |