GPBS(1)

πŸ’– GPBS(1) β€” the GNUstep System Manual, but make it cute πŸ’–

okay so bestie, welcome to the manual for gpbs, the GNUstep PasteBoard Server. pull up a chair, grab a boba, we're doing clipboard lore today πŸ§‹βœ¨


✨ NAME ✨

gpbs β€” the GNUstep PasteBoard Server, aka the little guy holding your copy-paste together 🫢


🌸 SYNOPSIS 🌸

gpbs

that's it. that's the whole thing. iconic minimalism honestly πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

so the gpbs daemon is basically the clipboard/pasteboard for GNUstep programs. it handles all the copying, the cutting, the pasting of objects, AND the drag-and-drop action between applications. it's giving backstage crew at the Met Gala β€” nobody claps for it but nothing works without it πŸ‘‘

Every user needs to have his own instance of gpbs running. not shared, not communal, yours. your own little guy.

now, gpbs will get started automatically the second something needs it β€” but ngl, the recommended move is to just start it yourself in your personal login script, like ~/.bashrc or ~/.cshrc. set it and forget it, bestie πŸ’–

alternatively, you can launch gpbs when your windowing system or window manager kicks off. for example:

  • on systems with X11, you can launch gpbs straight from your .xinitrc script
  • or, if you're running Window Maker, just drop it in Window Maker's autostart script πŸŽ€
psst β€” there's a sample startup script in the GNUstep Build Guide if you want inspo ✨

πŸ’… OPTIONS πŸ’…

  • -NSHost <hostname> β€” attaches gpbs to a remote session. long-distance relationship, but make it IPC 🌈
  • --GSStartupNotification β€” sends a notification through the NSDistributedNotificationCenter (that's gdnc, iykyk) so apps know it has started up. this is only relevant if the application itself is the one trying to start up gpbs β€” which, lowkey, means gpbs wasn't started at session login in the first place πŸ™ˆ
  • --daemon β€” starts gpbs as a daemon. mostly this means all the output goes to syslog instead of your terminal. no more yapping in the group chat, everything goes in the diary πŸ““
  • --no-fork β€” does not fork a separate process. one process, one vibe, no clones 🧚
  • --verbose β€” makes gpbs's logging more verbose. it starts telling you everything. main character energy, unedited commentary πŸ”₯

πŸ‘‘ DIAGNOSTICS πŸ‘‘

want to go looking for instances of gpbs? run this:

gdomap -L GNUstepGSPasteboardServer

and that will lookup instances of gpbs for you πŸ”

or, alternatively:

gdomap -N

which lists all registered names on the local host. full roster, no gatekeeping 🌟


πŸ’€ BUGS πŸ’€

okay this one's a real one, bestie, brace yourself:

versions of gpbs up to and including 1.7.2 have problems with copy and paste of mulit-lingual text 😭 the reason is that it used the atom XA_STRING alone to exchange string data between X clients (and therefore GNUstep clients too).

what does that actually mean? it means gpbs is inherently unable to do cut-and-paste with characters other than ISO Latin1 ones, TAB, and NEWLINE. that's the whole alphabet of feelings it can hold. everything else just... doesn't make it through 🫠


🌈 SEE ALSO 🌈

and the GNUstep Build Guide example startup script, which lives at:

http://gnustep.made-it.com/BuildGuide/index.html#GNUSTEP.SERVICES

go read it, it's a whole thing πŸ’œ


πŸ“œ HISTORY πŸ“œ

work on gdnc started August 1997. yes, before some of us were born, no we're not talking about it πŸ™ˆ

this manual page first appeared in gnustep-back 0.8.8 (July 2003). a certified classic ✨


πŸŽ€ AUTHORS πŸŽ€

  • gpbs was written by Richard Frith-McDonald <rfm@gnu.org> β€” the founder, the blueprint, the blueprint's blueprint πŸ‘‘
  • this man page was written by Martin Brecher <martin@mb-itconsulting.com> with contributions from Kazunobu Kuriyama <kazunobu.kuriyama@nifty.com> 🫢
  • this man page was updated September 2006 by Dennis Leeuw (dleeuw@made-it.com) with notes by Adam Fedor (fedor@doc.com) πŸ“

and that's the whole page, bestie πŸ₯Ή this one came out under the GNUstep banner, dated September 2006 β€” thank you for coming to my TED talk, go hydrate, go start your pasteboard, and slay πŸ’–βœ¨πŸŽ€πŸ¦‹πŸŒΈπŸ’…πŸ«Ά