* bug#24547: 24.4; dired should colour in sockets and pipes @ 2016-09-26 8:05 Trent W. Buck 2019-07-27 14:26 ` Lars Ingebrigtsen 0 siblings, 1 reply; 8+ messages in thread From: Trent W. Buck @ 2016-09-26 8:05 UTC (permalink / raw) To: 24547 With GNU ls --color in a terminal, different colors are used for regular files, directories, symlinks, sockets, pipes, (other stuff - dircolors?) In dired, the first three get different faces, but sockets and pipes look like regular files. I think it's probably easy to fix sockets and pipes, because the first character is "s" or "p", at least in GNU ls output. ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#24547: 24.4; dired should colour in sockets and pipes 2016-09-26 8:05 bug#24547: 24.4; dired should colour in sockets and pipes Trent W. Buck @ 2019-07-27 14:26 ` Lars Ingebrigtsen 2019-07-27 22:07 ` Juri Linkov 0 siblings, 1 reply; 8+ messages in thread From: Lars Ingebrigtsen @ 2019-07-27 14:26 UTC (permalink / raw) To: Trent W. Buck; +Cc: 24547 trentbuck@gmail.com (Trent W. Buck) writes: > With GNU ls --color in a terminal, different colors are used for > > regular files, > directories, > symlinks, > sockets, > pipes, > (other stuff - dircolors?) > > In dired, the first three get different faces, > but sockets and pipes look like regular files. > > I think it's probably easy to fix sockets and pipes, > because the first character is "s" or "p", > at least in GNU ls output. Sounds reasonable. I've now done this in Emacs 27, but I've used just a single face for both sockets and pipes. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#24547: 24.4; dired should colour in sockets and pipes 2019-07-27 14:26 ` Lars Ingebrigtsen @ 2019-07-27 22:07 ` Juri Linkov 2019-07-28 10:01 ` Lars Ingebrigtsen 2019-07-28 14:53 ` Trent W. Buck 0 siblings, 2 replies; 8+ messages in thread From: Juri Linkov @ 2019-07-27 22:07 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: Trent W. Buck, 24547 >> With GNU ls --color in a terminal, different colors are used for >> >> regular files, >> directories, >> symlinks, >> sockets, >> pipes, >> (other stuff - dircolors?) >> >> In dired, the first three get different faces, >> but sockets and pipes look like regular files. >> >> I think it's probably easy to fix sockets and pipes, >> because the first character is "s" or "p", >> at least in GNU ls output. > > Sounds reasonable. I've now done this in Emacs 27, but I've used just a > single face for both sockets and pipes. What are the remaining special file types possible in ls output? For example, in /run I see only "s" and "p" files. But in /dev there are also "b" and "c". These "block" and "character" device files could be highlighted using the same face with sockets and pipes. ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#24547: 24.4; dired should colour in sockets and pipes 2019-07-27 22:07 ` Juri Linkov @ 2019-07-28 10:01 ` Lars Ingebrigtsen 2019-07-28 14:53 ` Trent W. Buck 1 sibling, 0 replies; 8+ messages in thread From: Lars Ingebrigtsen @ 2019-07-28 10:01 UTC (permalink / raw) To: Juri Linkov; +Cc: Trent W. Buck, 24547 Juri Linkov <juri@linkov.net> writes: > For example, in /run I see only "s" and "p" files. But in /dev there are > also "b" and "c". These "block" and "character" device files could be > highlighted using the same face with sockets and pipes. Good idea. I've now added this to the trunk (as well as the NEWS item I forgot when I added the face originally). -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#24547: 24.4; dired should colour in sockets and pipes 2019-07-27 22:07 ` Juri Linkov 2019-07-28 10:01 ` Lars Ingebrigtsen @ 2019-07-28 14:53 ` Trent W. Buck 2019-07-31 20:45 ` Juri Linkov 1 sibling, 1 reply; 8+ messages in thread From: Trent W. Buck @ 2019-07-28 14:53 UTC (permalink / raw) To: Juri Linkov; +Cc: Lars Ingebrigtsen, 24547 TL;DR: explanation of dircolors(1) and terminfo(5). Juri Linkov wrote: > >> With GNU ls --color in a terminal, different colors are used for > >> > >> regular files, > >> directories, > >> symlinks, > >> sockets, > >> pipes, > >> (other stuff - dircolors?) > >> > >> In dired, the first three get different faces, > >> but sockets and pipes look like regular files. > >> > >> I think it's probably easy to fix sockets and pipes, > >> because the first character is "s" or "p", > >> at least in GNU ls output. > > > > Sounds reasonable. I've now done this in Emacs 27, but I've used just a > > single face for both sockets and pipes. Thanks! :-) > What are the remaining special file types possible in ls output? > > For example, in /run I see only "s" and "p" files. But in /dev there are > also "b" and "c". These "block" and "character" device files could be > highlighted using the same face with sockets and pipes. As I hinted earlier, GNU ls's --color output is governed by the dircolors program. "dircolors --print-database" gives a bunch of stuff. The part you asked about is: DIR 01;34 # directory LINK 01;36 # symbolic link. (If you set this to 'target' instead of a # numerical value, the color is as for the file pointed to.) MULTIHARDLINK 00 # regular file with more than one link FIFO 40;33 # pipe SOCK 01;35 # socket DOOR 01;35 # door BLK 40;33;01 # block device driver CHR 40;33;01 # character device driver ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file ... MISSING 00 # ... and the files they point to Note that GNU ls/dircolors also uses different colors for different kinds of regular files e.g. "video", "audio", "pictures", "compressed files", "executables". This is done by filename extension rather than MIME type, because GNU/* filesystems generally don't store MIME type metadata, and running libmagic on every ls would be slow :-( Those codes are SGR escape sequences, also called "ANSI color". See also "man 5 terminfo". 01 above is "tput bold" (I think). 4x above is "tput setab x" (set background color). 3x above is "tput setaf x" (set foreground color). There are 8 colors (0 through 7), which you can see at the top of "emacs -nw -f list-colors-display": black red green yellow blue magenta cyan white The "bright" variants are selected automatically when bold is also set (if the terminal supports that). You might also want to consider what "man 2 stat" has to say, viz: switch (sb.st_mode & S_IFMT) { case S_IFBLK: printf("block device\n"); break; case S_IFCHR: printf("character device\n"); break; case S_IFDIR: printf("directory\n"); break; case S_IFIFO: printf("FIFO/pipe\n"); break; case S_IFLNK: printf("symlink\n"); break; case S_IFREG: printf("regular file\n"); break; case S_IFSOCK: printf("socket\n"); break; default: printf("unknown?\n"); break; } dired (as at 26.1) doesn't seem to have faces for file types (or MIME types), except for dired-directory and dired-symlink. I suppose you could just add more faces. The only downside to that, AFAICT, is that it will annoy people who write emacs color themes. For my personal needs, I don't *REALLY* care about the details, so long as "special" inodes stand out from "regular" inodes. Doing so acts as a warning to me to e.g. add "--devices=skip" to "grep -r". ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#24547: 24.4; dired should colour in sockets and pipes 2019-07-28 14:53 ` Trent W. Buck @ 2019-07-31 20:45 ` Juri Linkov 2019-08-01 2:17 ` Trent W. Buck 2019-08-01 11:08 ` Lars Ingebrigtsen 0 siblings, 2 replies; 8+ messages in thread From: Juri Linkov @ 2019-07-31 20:45 UTC (permalink / raw) To: Trent W. Buck; +Cc: Lars Ingebrigtsen, 24547 >> What are the remaining special file types possible in ls output? >> >> For example, in /run I see only "s" and "p" files. But in /dev there are >> also "b" and "c". These "block" and "character" device files could be >> highlighted using the same face with sockets and pipes. > > As I hinted earlier, GNU ls's --color output is governed by the dircolors program. > "dircolors --print-database" gives a bunch of stuff. The part you asked about is: > > DIR 01;34 # directory > LINK 01;36 # symbolic link. (If you set this to 'target' instead of a > # numerical value, the color is as for the file pointed to.) > MULTIHARDLINK 00 # regular file with more than one link > FIFO 40;33 # pipe > SOCK 01;35 # socket > DOOR 01;35 # door > BLK 40;33;01 # block device driver > CHR 40;33;01 # character device driver > ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file ... > MISSING 00 # ... and the files they point to Thanks for the detailed explanation. I wonder what would be a common word for these special file types: pipe, socket, block and character device? Currently the face name is 'dired-socket', but this doesn't seem right since it's used not only for socket, but also for pipe, block and character devices. Is 'dired-special' a better name? At least the manual (info "(coreutils) What information is listed") named them "special file". ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#24547: 24.4; dired should colour in sockets and pipes 2019-07-31 20:45 ` Juri Linkov @ 2019-08-01 2:17 ` Trent W. Buck 2019-08-01 11:08 ` Lars Ingebrigtsen 1 sibling, 0 replies; 8+ messages in thread From: Trent W. Buck @ 2019-08-01 2:17 UTC (permalink / raw) To: Juri Linkov; +Cc: Lars Ingebrigtsen, 24547 Juri Linkov wrote: >>> What are the remaining special file types possible in ls output? >> [dircolors --print-database] > > [...] what would be a common word for these special file types: > pipe, socket, block and character device? > > Currently the face name is 'dired-socket', but this doesn't seem right > since it's used not only for socket, but also for pipe, block and character > devices. Is 'dired-special' a better name? At least the manual > (info "(coreutils) What information is listed") named them "special file". dired-special makes sense to me, and I can't think of a better term. ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#24547: 24.4; dired should colour in sockets and pipes 2019-07-31 20:45 ` Juri Linkov 2019-08-01 2:17 ` Trent W. Buck @ 2019-08-01 11:08 ` Lars Ingebrigtsen 1 sibling, 0 replies; 8+ messages in thread From: Lars Ingebrigtsen @ 2019-08-01 11:08 UTC (permalink / raw) To: Juri Linkov; +Cc: Trent W. Buck, 24547 Juri Linkov <juri@linkov.net> writes: > Currently the face name is 'dired-socket', but this doesn't seem right > since it's used not only for socket, but also for pipe, block and character > devices. Is 'dired-special' a better name? At least the manual > (info "(coreutils) What information is listed") named them "special file". `dired-special' sounds like a better name; yes. (I'm not sure whether sockets are usually called special files, but the other ones covered by the face are, I think.) -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2019-08-01 11:08 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-09-26 8:05 bug#24547: 24.4; dired should colour in sockets and pipes Trent W. Buck 2019-07-27 14:26 ` Lars Ingebrigtsen 2019-07-27 22:07 ` Juri Linkov 2019-07-28 10:01 ` Lars Ingebrigtsen 2019-07-28 14:53 ` Trent W. Buck 2019-07-31 20:45 ` Juri Linkov 2019-08-01 2:17 ` Trent W. Buck 2019-08-01 11:08 ` Lars Ingebrigtsen
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).