Regarding what process is a daemon, https://unix.stackexchange.com/a/175396/674 says
The big problem here comes when your system runs a graphical environment. Since GUI programs (i.e. Chromium) are not attached to a terminal, they also appear in the output.
... Basically, we would like to display all programs without a controlling terminal, but not GUI programs. Luckily for us, there is a program to list GUI processes :
Can a X client without a controlling terminal be a daemon?
Can a process running a GUI program without a controlling terminal be a daemon?
The link seems to say no to both questions. What aspect of a daemon makes a X client (or a process running a GUI program) without a controlling terminal not a daemon? That boils down to what the definition of a daemon is.
Are X clients and GUI programs the same concept? The link seems to say yes. But note that a X client doesn't necessarily have a window, while the name seems to me that a GUI program process must have at least one window. In particular, can a X client without any window run as a daemon?
Any process (X client, GUI program, and any others) can be in a process session with or without a controlling terminal (e.g. when starting an X client or GUI program from a shell with a controlling terminal, and when starting it from the menu of desktop environment). A daemon's process session can't have a controlling terminal, so I am considering the case without a controlling terminal.