X-Git-Url: https://ruderich.org/simon/gitweb/?p=fcscs%2Ffcscs.git;a=blobdiff_plain;f=bin%2Ffcscs;h=42b63db010c192edd6baa14187f14fc94a485742;hp=f7752209145c213fcc9000b27ebe7ed2fd93dffb;hb=HEAD;hpb=59ecf9b92140258c9ec311f35aa5ea2440b68c1b diff --git a/bin/fcscs b/bin/fcscs index f775220..42b63db 100755 --- a/bin/fcscs +++ b/bin/fcscs @@ -2,7 +2,7 @@ # fcscs - fast curses screen content select -# Copyright (C) 2013-2016 Simon Ruderich +# Copyright (C) 2013-2017 Simon Ruderich # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -44,9 +44,9 @@ B [I] I B is a small tool which allows quick selection of terminal screen contents (like URLs, paths, regex matches, etc.) and passes the selection to -GNU Screen's or Tmux's buffer or any other program. The selection can then -quickly be pasted, e.g. in the shell. Requires GNU Screen or Tmux. It's -licensed under the GPL 3 or later. +GNU Screen's or Tmux's paste buffer or any other program. The selection can +then quickly be pasted, e.g. in the shell. Requires GNU Screen or Tmux to +capture the terminal content. It's licensed under the GPL 3 or later. =head1 OPTIONS @@ -111,7 +111,9 @@ explained below. Per default URLs are selected, see options for a way to change this. I: Opening URLs in the browser passes the URL via the command line which -leaks URLs to other users on the current system via C or C. +might leak URLs to other users on the current system via C or C +(mount C with C on Linux to prevent this information +leakage). I: When yanking (copying) a temporary file is used to pass the data to GNU screen/Tmux without exposing it to C or C. However this may @@ -506,7 +508,7 @@ sub run_in_background { # Necessary for GNU screen or it'll keep the window open until an # external command has run. - require File::Spec; + require File::Spec; # load here to speedup startup my $devnull = File::Spec->devnull(); open STDIN, '<', $devnull or die $!; open STDOUT, '>', $devnull or die $!; @@ -590,7 +592,7 @@ sub select_match { $number = 1; } - $screen->draw_matches($config, $matches, []); # remove matches + $screen->draw_matches($config, $matches, []); # clear matches foreach (@{$matches}) { return { match => $_ } if $_->{id} == $number; @@ -890,7 +892,7 @@ sub handler_yank { $screen->debug('handler_yank', 'started'); - require File::Temp; + require File::Temp; # load here to speedup startup # Use a temporary file to prevent leaking the yanked data to other users # with the command line, e.g. ps aux or top. @@ -945,7 +947,7 @@ sub handler_paste { $screen->debug('handler_paste', 'started'); - require Time::HiRes; + require Time::HiRes; # load here to speedup startup my @cmd; if ($config->{setting}{multiplexer} eq 'screen') { @@ -988,8 +990,9 @@ sub handler_url { =head1 CONFIGURATION -fcscs is configured through F<~/.fcscsrc> or F<~/.config/fcscs/fcscsrc> which -is a normal Perl script with all of Perl's usual features. +fcscs is configured through F<~/.fcscsrc> (preferred) or +F<~/.config/fcscs/fcscsrc> which is a normal Perl script with all of Perl's +usual features (only loaded if not writable by others). All configuration values are stored in the hash C<%config>. All manually defined keys overwrite the default settings. @@ -1009,8 +1012,8 @@ settings see below): # Draw numbers in bold yellow. $config{attribute}{match_id} = color_pair(COLOR_YELLOW, -1) | A_BOLD; - # Disable Vim-like 'smartcase', ignore case until an upper character is - # searched. + # Disable Vim-like 'smartcase' (ignore case until an upper character is + # searched) which is enabled by default. $config{setting}{smartcase} = 0; # Use chromium to open URLs if running under X, elinks otherwise. @@ -1191,7 +1194,7 @@ Defaults in parentheses. =item B sleep x us before running paste command (C<100_000>) -=item B GNU Screen's msgwait variable, used when yanking (C<5>) +=item B GNU Screen's msgwait variable, overwritten with this value when yanking (C<5>) =item B additional accept key like return, set to C<\n> to disable (C) @@ -1616,7 +1619,7 @@ Simon Ruderich Esimon@ruderich.orgE =head1 LICENSE AND COPYRIGHT -Copyright (C) 2013-2016 by Simon Ruderich +Copyright (C) 2013-2017 by Simon Ruderich This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by