diff options
-rw-r--r-- | .config/env | 6 | ||||
-rw-r--r-- | .config/mpv/mpv.conf | 4 | ||||
-rw-r--r-- | .config/newsboat/config | 60 | ||||
-rw-r--r-- | .config/x11/xinitrc | 4 | ||||
-rwxr-xr-x | .local/bin/linkview | 604 | ||||
-rwxr-xr-x | .local/bin/nb | 1 | ||||
-rwxr-xr-x | .local/bin/ndate | 5 | ||||
-rwxr-xr-x | .local/bin/newsboat-notif | 3 | ||||
-rwxr-xr-x | .local/bin/ref-newsboat | 24 | ||||
-rwxr-xr-x | .local/bin/scr2 | 4 | ||||
-rwxr-xr-x | .local/bin/scr3 | 6 | ||||
-rw-r--r-- | .local/state/w3m/history | 2 |
12 files changed, 414 insertions, 309 deletions
diff --git a/.config/env b/.config/env index 761ef8b..ff8f825 100644 --- a/.config/env +++ b/.config/env @@ -37,10 +37,10 @@ export FILE='lf' # UTF-8 export CHARSET='UTF-8' -export LANG='en_US.UTF-8' -# export LANG='C' +export LC_ALL=en_US.UTF-8 export LC_COLLATE='C' -export LC_ALL='' +export LC_CTYPE=en_US.UTF-8 +export LANG=en_US.UTF-8 # Cleanup export ANDROID_SDK_HOME="$XDG_CONFIG_HOME"/android diff --git a/.config/mpv/mpv.conf b/.config/mpv/mpv.conf index fbb1019..b33320e 100644 --- a/.config/mpv/mpv.conf +++ b/.config/mpv/mpv.conf @@ -1,4 +1,6 @@ -video-sync=display-resample +# video-sync=display-resample osc=yes demuxer-max-bytes=1GiB +ytdl=yes script-opts=ytdl_hook-ytdl_path=yt-dlp,ytdl_hook-try_ytdl_first=yes,ytdl_hook-exclude="%.webm$|%.ts$|%.mp3$|%.m3u8$|%.m3u$|%.mkv$|%.mp4$|%.VOB$" +term-osd-bar=yes diff --git a/.config/newsboat/config b/.config/newsboat/config index c1036c9..dfa91a2 100644 --- a/.config/newsboat/config +++ b/.config/newsboat/config @@ -1,8 +1,17 @@ -#how-read-feeds no -auto-reload no +auto-reload yes +refresh-on-startup yes +reload-time 30 confirm-mark-all-feeds-read yes confirm-mark-feed-read no -reload-threads 4 +reload-threads 100 +text-width 80 +show-keymap-hint no +show-title-bar no +swap-title-and-hints no +ignore-mode download +notify-program ~/.local/bin/newsboat-notif +notify-always yes +notify-format "%d" external-url-viewer "urlview" @@ -31,22 +40,30 @@ bind-key v show-urls bind-key x pb-delete bind-key ^t next-unread -color listnormal white default -color listfocus black white standout -color listnormal_unread red default bold -color listfocus_unread red black bold -color info yellow black bold -color article default default +ignore-article "*" "title =~ \"#shorts$\"" +ignore-article "*" "link =~ \"youtube.com/shorts/\"" -browser "linkview %u" +color background default default +color listnormal default default dim +color listnormal_unread default default bold +color listfocus default black dim +color listfocus_unread default black bold +color info yellow black bold +color article default default + +search-highlight-colors yellow black bold + +browser "linkview %u %T" macro , open-in-browser macro t set browser "youtube-dl --add-metadata -ic"; open-in-browser ; set browser linkhandler macro a set browser "youtube-dl --add-metadata -xic -f bestaudio/best"; open-in-browser ; set browser linkhandler macro v set browser "linkview"; open-in-browser ; set browser linkhandler macro w set browser "linkview"; open-in-browser ; set browser linkhandler -highlight all "---.*---" yellow -highlight feedlist ".*(0/0))" black +datetime-format "%y-%m-%d %H:%M" +articlelist-format "%D - %t" +feedlist-format "%?T?%n%8u %t [%T]&#%-8t----------------------------------------------------------?" + highlight article "(^Feed:.*|^Title:.*|^Author:.*)" cyan default bold highlight article "(^Link:.*|^Date:.*)" default default highlight article "https?://[^ ]+" green default @@ -57,3 +74,22 @@ highlight article "\\[embedded flash: [0-9][0-9]*\\]" green default bold highlight article ":.*\\(link\\)$" cyan default highlight article ":.*\\(image\\)$" blue default highlight article ":.*\\(embedded flash\\)$" magenta default + +highlight feedlist ".*(0/0))" black +highlight feedlist ".* \\[(news|tech|normies|gaming|space|skate|music)\\]$" default default dim +highlight feedlist "^N.* \\[tech\\]$" cyan default bold +highlight feedlist "^N.* \\[normies\\]$" red default bold +highlight feedlist "^N.* \\[news\\]$" green default bold +highlight feedlist "^N.* \\[gaming\\]$" yellow default bold +highlight feedlist "^N.* \\[space\\]$" blue default bold +highlight feedlist "^N.* \\[skate\\]$" magenta default bold +highlight feedlist "^N.* \\[music\\]$" white default bold +highlight feedlist "^#tech .*" cyan default bold +highlight feedlist "^#normies .*" red default bold +highlight feedlist "^#news .*" green default bold +highlight feedlist "^#gaming .*" yellow default bold +highlight feedlist "^#space .*" blue default bold +highlight feedlist "^#skate .*" magenta default bold +highlight feedlist "^#music .*" white default bold +highlight feedlist "^N" default default invis +highlight feedlist "\\[(news|tech|normies|gaming|space|skate|music)\\]$" default default invis diff --git a/.config/x11/xinitrc b/.config/x11/xinitrc index 59b01e8..782f441 100644 --- a/.config/x11/xinitrc +++ b/.config/x11/xinitrc @@ -65,11 +65,11 @@ start_apps() { export LANG='en_US.UTF-8' [ $host = "mother" ] && xrandr \ --output HDMI-0 --primary --mode 1920x1080 --pos 0x0 --rotate normal \ - --output DP-0 --mode 1680x1050 --pos 1920x0 --rotate normal \ + --output DP-0 --off \ --output DP-1 --off \ --output DP-2 --off \ --output DP-3 --off \ - --output DP-4 --off \ + --output DP-4 --mode 1680x1050 --pos 1920x0 --rotate normal \ --output DP-5 --off # --output DP-4 --mode 1440x900 --pos 0x0 --rotate normal \ [ $host = "po-rbo" ] && xrandr \ diff --git a/.local/bin/linkview b/.local/bin/linkview index ca07feb..2d4fc9f 100755 --- a/.local/bin/linkview +++ b/.local/bin/linkview @@ -8,12 +8,9 @@ use File::HomeDir qw(home); use File::Basename qw(basename fileparse); use Cwd qw(cwd); use Env qw(BROWSER TERMINAL); -use Term::ReadKey; use Capture::Tiny qw(capture); use POSIX qw(setsid); use Data::UUID; -use feature qw(switch); -no warnings qw(experimental::smartmatch); my $menu = "fzf"; @@ -31,14 +28,12 @@ use constant { COPYQ_PATH => 'copyq', HOSTNAME => (split /\./, hostname())[0] }; -use constant PROG_LIST => "" . -"play" . "\n" . -"img" . "\n" . -"dl" . "\n" . -"pdf" . "\n" . -"w3m" . "\n" . -"browser" . "\n" . -"clip"; + +my @keys = ( 'vid', 'img', 'dl', 'audio', 'pdf', 'w3m', 'web', 'clip' ); +my @func_refs = ( \&vid, \&img_pdf, \&dl, \&audio, \&img_pdf, \&w3m, \&web, \&clip ); +my %func_list; +@func_list{@keys} = @func_refs; + use constant QUAL_LIST => "" . "uncap" . "\n" . "1440" . "\n" . @@ -49,188 +44,201 @@ use constant QUAL_LIST => "" . "240" . "\n" . "144" . "\n"; -sub open_link +sub vid { - my ($a, $url) = @_; - my $count; + my ($url, $article_name) = @_; + my $pid; + + $article_name = "some media" if ($article_name eq ""); + $pid = fork(); + if (not $pid) { + setsid(); + close_io(); + system( + NOTIFYSEND_PATH, + '-t', '2000', + 'playing media', + ' playing <b>' . $article_name . '</b>' + ); + if (system(MPV_PATH, "--force-window=yes", $url) != 0) { + exec( + NOTIFYSEND_PATH, + '-u', 'critical', + '-t', '10000', + 'playback failed', + ' failed to open <b>' . $url . '</b>' + ); + } + return; + } + return; +} + +sub img_pdf +{ + my ($url, $article_name, $key) = @_; my $file_name; - my $i; - my $list; + my $new_file_name; my $pid; - my $pid2; - my $pwd; - my $quality; my $ret; my $tmp; - my $tmpfile; my $ug; my $uuid; - my $val; - my @wc; - if ($a eq "play") { - $pid = fork(); - if (not $pid) { - setsid(); - close_io(); + $article_name = "some media" if ($article_name eq ""); + $pid = fork(); + if (not $pid) { + setsid(); + close_io(); + chdir '/tmp' or die $!; + $file_name = $url; + $file_name =~ s/.+\///g; + if (is_yt($url) != 0) { system( NOTIFYSEND_PATH, - '-u', 'low', - '-t', '2000', - 'playing media', - ' playing <b>' . $url . '</b>' + '-t', '5000', + 'fetching thumbnail', + ' fetching thumbnail for <b>' . $article_name . '</b>' ); - if (system(MPV_PATH, $url) != 0) { - exec( + ($tmp, undef, $ret) = capture { + system(YTDL_PATH, '--get-thumbnail', $url); + }; + chomp $tmp; + if ($ret != 0) { + system( NOTIFYSEND_PATH, '-u', 'critical', - '-t', '10000', - 'playback failed', - ' failed to open <b>' . $url . '</b>' + 'failed to get thumbnail', + ' failed to get thumbail for <b>' . $article_name . '</b>' ); + return; } - return; + $url = $tmp; } + else { + system( + NOTIFYSEND_PATH, + '-t', '5000', + 'download started', + ' fetching <b>'. $file_name . '</b> to <b>/tmp</b>' + ); + } + $file_name = $url; + $file_name =~ s/.+\///g; + if (HOSTNAME eq "mother" or "po-rbo") { + system(CURL_PATH, "-fsSLO", $url); + } elsif (HOSTNAME == "mars") { + system(FETCH_PATH, "-q", $url); + } + my ($name, undef, $ext) = fileparse($file_name, qr/\.[^.]*/); + $ug = Data::UUID->new; + $uuid = $ug->create_str(); + $ext =~ s/\?.*//; + $new_file_name = $uuid . $ext; + rename($file_name, $new_file_name) or die $!; + if ($key =~ /img/) { + $ret = system(IMGVIEW_PATH . " " . $new_file_name); + } + else { + $ret = system(ZATHURA_PATH, $new_file_name); + } + if ($ret != 0) { + system( + NOTIFYSEND_PATH, + '-u', 'critical', + 'failed to open image', + ' failed to open file <b>/tmp/'. $new_file_name . '</b>' + ); + } + unlink($new_file_name); return; } - elsif ($a eq "mpv-term") { - exec(TERMINAL_PATH, '-e', MPV_PATH, '--audio-channels=stereo', $url); + return; +} + +sub dl +{ + my ($url) = @_; + my $count; + my $file_name; + my $i; + my $list; + my $pid; + my $pid2; + my $pwd; + my $quality; + my $ret; + my $tmpfile; + my $val; + my @wc; + + if (is_yt($url) != 0) { + $list = QUAL_LIST; + $quality = `printf "$list" | $menu --prompt 'quality > '`; + if (not $quality) { + return; + } + chomp $quality; } - elsif ($a eq "dl") { + $pid = fork(); + if (not $pid) { + setsid(); + close_io(); + $ret = -1; + chdir home() . "/dl" or + chdir home() . "/Downloads" or + chdir home() or die $!; + if (basename(cwd()) eq basename(home())) { + $pwd = '~/'; + } + else { + $pwd = '~/' . basename(cwd()); + } if (is_yt($url) != 0) { - $list = QUAL_LIST; - $quality = `printf "$list" | $menu --prompt 'quality > '`; - if (not $quality) { - return; - } - chomp $quality; + $file_name = get_yt_vid_name($url); } - $pid = fork(); - if (not $pid) { - setsid(); - close_io(); - $ret = -1; - chdir home() . "/dl" or - chdir home() . "/Downloads" or - chdir home() or die $!; - if (basename(cwd()) eq basename(home())) { - $pwd = '~/'; - } - else { - $pwd = '~/' . basename(cwd()); - } - if (is_yt($url) != 0) { - $file_name = get_yt_vid_name($url); - } - else { - $file_name = $url; - $file_name =~ s/.+\///g; - } - chomp $file_name; - @wc = split / /, $file_name; - if (@wc > 8) { - $file_name = ""; - $i = 0; - while ($i < 8) { - $file_name .= "$wc[$i] "; - $i++; - } - $file_name .= "[...]"; + else { + $file_name = $url; + $file_name =~ s/.+\///g; + } + chomp $file_name; + @wc = split / /, $file_name; + if (@wc > 8) { + $file_name = ""; + $i = 0; + while ($i < 8) { + $file_name .= "$wc[$i] "; + $i++; } - $file_name =~ s/^[0-9]+/\[\.\.\.\]/; - system( - NOTIFYSEND_PATH, - '-u', 'low', - '-t', '2000', - 'download starting', - ' downloading <b>' . $file_name . '</b>' - ); - if (is_yt($url) != 0) { - $tmpfile = `mktemp`; - chomp $tmpfile; - $pid2 = fork(); - if (not $pid2) { - (undef, undef, $ret) = capture { - if ($quality eq 'uncap') { - system(YTDL_PATH . ' -f \'bestvideo*+bestaudio/best\' --newline --add-metadata ' . $url . ' >' . $tmpfile); - } - elsif ($quality eq '1440') { - system(YTDL_PATH . " -f '308+140' --newline --add-metadata " . $url . ' >' . $tmpfile); - } - elsif ($quality eq '1080') { - system(YTDL_PATH . " -f '299+140' --newline --add-metadata " . $url . ' >' . $tmpfile); - } - elsif ($quality eq '720') { - system(YTDL_PATH . " -f '298+140' --newline --add-metadata " . $url . ' >' . $tmpfile); - } - else { - system(YTDL_PATH . " -f '[height<=" . $quality . "]' --newline --add-metadata " . $url . ' >' . $tmpfile); - } - }; - if ($ret == 0) { - system( - NOTIFYSEND_PATH, - '-u', 'normal', - 'download complete', - ' <b>' . $file_name . '</b> downloaded successfully to ' . - '<b>' . $pwd . '</b>' - ); + $file_name .= "[...]"; + } + $file_name =~ s/^[0-9]+/\[\.\.\.\]/; + system( + NOTIFYSEND_PATH, + '-t', '2000', + 'download starting', + ' downloading <b>' . $file_name . '</b>' + ); + if (is_yt($url) != 0) { + $tmpfile = `mktemp`; + chomp $tmpfile; + $pid2 = fork(); + if (not $pid2) { + (undef, undef, $ret) = capture { + if ($quality eq 'uncap') { + system(YTDL_PATH . ' --newline --add-metadata ' . $url . ' >' . $tmpfile); } - else { - system( - NOTIFYSEND_PATH, - '-u', 'critical', - 'download failed', - ' failed to download <b>' . $file_name . '</b>' - ); + elsif ($quality eq '1440') { + system(YTDL_PATH . " -f '308+140' --newline --add-metadata " . $url . ' >' . $tmpfile); } - return; - } - elsif ($pid2 < 0) { - system( - NOTIFYSEND_PATH, - '-u', 'critical', - 'download failed', - ' failed to <b>fork(2)</b>' - ); - return; - } - else { - $count = 0; - while (1) { - $val = `tail -n 1 "$tmpfile" | awk '{print \$2}' | tr -d '%'`; - if (looks_like_number($val) != 0) { - system( - NOTIFYSEND_PATH, - '-h', - 'int:value:' . $val, - '-u', 'low', - '-t', '5000', - 'downloading', - ' downloading <b>' . $file_name . '</b>' - ); - if ($val == 100 || system('pgrep yt-dlp >/dev/null 2>&1') != 0) { - last; - } - } - else { - if ($count == 10) { - last; - } - $count += 1; - } - sleep 2; + elsif ($quality eq '1080') { + system(YTDL_PATH . " -f '299+140' --newline --add-metadata " . $url . ' >' . $tmpfile); } - unlink $tmpfile; - } - return; - } - else { - (undef, undef, $ret) = capture { - if (HOSTNAME eq "mother" or "po-rbo") { - system(CURL_PATH, "-fsSLO", $url); - } elsif (HOSTNAME == "mars") { - system(FETCH_PATH, $url); + elsif ($quality eq '720') { + system(YTDL_PATH . " -f '298+140' --newline --add-metadata " . $url . ' >' . $tmpfile); + } + else { + system(YTDL_PATH . " -f '[height<=" . $quality . "]' --newline --add-metadata " . $url . ' >' . $tmpfile); } }; if ($ret == 0) { @@ -250,132 +258,188 @@ sub open_link ' failed to download <b>' . $file_name . '</b>' ); } + return; } - return; - } - elsif ($pid < 0) { - system( - NOTIFYSEND_PATH, - '-u', 'critical', - '-t', '10000', - 'download failed', - ' failed to <b>fork(2)</b>' - ); - return; - } - return; - } - elsif ($a eq "img" || $a eq "pdf") { - $pid = fork(); - if (not $pid) { - setsid(); - close_io(); - chdir '/tmp' or die $!; - $file_name = $url; - $file_name =~ s/.+\///g; - if (is_yt($url) != 0) { + elsif ($pid2 < 0) { system( NOTIFYSEND_PATH, - '-u', 'low', - '-t', '5000', - 'download started', - ' fetching thumbnail' - ); - ($tmp, undef, $ret) = capture { - system(YTDL_PATH, '--get-thumbnail', $url); - }; - chomp $tmp; - if ($ret != 0) { - system( - NOTIFYSEND_PATH, - '-u', 'critical', - 'failed to get thumbnail', - ' failed to get thumbail' + '-u', 'critical', + 'download failed', + ' failed to <b>fork(2)</b>' ); - return; - } - $url = $tmp; + return; } else { - system( - NOTIFYSEND_PATH, - '-u', 'low', - '-t', '5000', - 'download started', - ' fetching <b>'. $file_name . '</b> to <b>/tmp</b>' - ); + $count = 0; + while (1) { + $val = `tail -n 1 "$tmpfile" | awk '{print \$2}' | tr -d '%'`; + if (looks_like_number($val) != 0) { + system( + NOTIFYSEND_PATH, + '-h', + 'int:value:' . $val, + '-u', 'low', + '-t', '5000', + 'downloading', + ' downloading <b>' . $file_name . '</b>' + ); + if ($val == 100 || system('pgrep yt-dlp >/dev/null 2>&1') != 0) { + last; + } + } + else { + if ($count == 10) { + last; + } + $count += 1; + } + sleep 2; + } + unlink $tmpfile; } - $file_name = $url; - $file_name =~ s/.+\///g; - given (HOSTNAME) { - when(["mother", "po-rbo"]) { + return; + } + else { + (undef, undef, $ret) = capture { + if (HOSTNAME eq "mother" or "po-rbo") { system(CURL_PATH, "-fsSLO", $url); + } elsif (HOSTNAME == "mars") { + system(FETCH_PATH, "-q", $url); } - when("mars") { - system(FETCH_PATH, '-q', $url); - } - } - my ($name, undef, $ext) = fileparse($file_name, qr/\.[^.]*/); - $ug = Data::UUID->new; - $uuid = $ug->create_str(); - rename($file_name, $uuid . $ext); - $file_name = $uuid . $ext; - if ($a eq "img") { - $ret = system(IMGVIEW_PATH . " " . $file_name); + }; + if ($ret == 0) { + system( + NOTIFYSEND_PATH, + '-u', 'normal', + 'download complete', + ' <b>' . $file_name . '</b> downloaded successfully to ' . + '<b>' . $pwd . '</b>' + ); } else { - $ret = system(ZATHURA_PATH, $file_name); - } - if ($ret != 0) { system( NOTIFYSEND_PATH, '-u', 'critical', - 'failed to open image', - ' failed to open image <b>/tmp/'. $file_name . '</b>' + 'download failed', + ' failed to download <b>' . $file_name . '</b>' ); } - unlink($file_name); - return; } + return; } - elsif ($a eq "w3m") { - close_io(); - exec(TERMINAL_PATH, '-e', W3M_PATH, $url); - } - elsif ($a eq "browser") { - $pid = fork(); - if (not $pid) { - setsid(); - close_io(); - exec(BROWSER_PATH, $url); - } + elsif ($pid < 0) { + system( + NOTIFYSEND_PATH, + '-u', 'critical', + '-t', '10000', + 'download failed', + ' failed to <b>fork(2)</b>' + ); return; } - elsif ($a eq "clip") { - $pid = fork(); - if (not $pid) { - setsid(); - close_io(); - if (defined $ENV{WAYLAND_DISPLAY}) { - system("echo -n " . $url . " | wl-copy"); - return; - } - else { - exec(COPYQ_PATH, "copy", $url); - } - } + return; +} + +sub audio +{ + my ($url, $article_name) = @_; + my $pid; + + $pid = fork(); + if (not $pid) { + setsid(); + close_io(); system( NOTIFYSEND_PATH, - '-u', 'low', '-t', '2000', - 'clipped url', - ' clipped url' + 'playing media', + ' playing <b>' . $article_name . '</b>' ); + if (system( + TERMINAL_PATH, + "-e", + MPV_PATH, + "--vo=null", + "--video=no", + "--no-video", + $url + ) != 0) { + exec( + NOTIFYSEND_PATH, + '-u', 'critical', + '-t', '10000', + 'playback failed', + ' failed to open <b>' . $url . '</b>' + ); + } return; } return; } +sub w3m +{ + my ($url) = @_; + my $pid; + + $pid = fork(); + if (not $pid) { + setsid(); + close_io(); + if (system(TERMINAL_PATH, '-e', W3M_PATH, $url) != 0) { + exec( + NOTIFYSEND_PATH, + '-u', 'critical', + '-t', '10000', + 'w3m failed', + ' failed to open <b>' . $url . '</b>' + ); + } + return; + } + return; +} + +sub web +{ + my ($url) = @_; + my $pid; + + $pid = fork(); + if (not $pid) { + setsid(); + close_io(); + exec(BROWSER_PATH, $url); + } + return; +} + +sub clip +{ + my ($url) = @_; + my $pid; + + $pid = fork(); + if (not $pid) { + setsid(); + close_io(); + if (defined $ENV{WAYLAND_DISPLAY}) { + system("echo -n " . $url . " | wl-copy"); + return; + } + else { + exec(COPYQ_PATH, "copy", $url); + } + } + system( + NOTIFYSEND_PATH, + '-t', '2000', + 'clipped url', + ' clipped url' + ); + return; +} + sub close_io { open STDIN, '<', '/dev/null' or die $!; @@ -406,7 +470,6 @@ sub get_yt_vid_name system( NOTIFYSEND_PATH, - '-u', 'low', '-t', '4000', 'checking name', ' looking for video name' @@ -423,8 +486,9 @@ sub fzf_prompt { my ($url) = @_; my $answer; - my $list = PROG_LIST; + my $list; + $list = join("\n", @keys); $answer = `printf "$list\n" | $menu --prompt '$url > '`; chomp $answer; return $answer; @@ -434,12 +498,14 @@ sub linkview { my $answer; - if (@ARGV == 0) { + if (@ARGV == 0 || $ARGV[0] eq '') { print STDERR "linkview: no URL\n"; exit 1; } + $answer = fzf_prompt($ARGV[0]); - open_link($answer, $ARGV[0]); + return unless exists $func_list{$answer}; + $func_list{$answer}->($ARGV[0], $ARGV[1], $answer); return; } diff --git a/.local/bin/nb b/.local/bin/nb index 117840d..3b36835 100755 --- a/.local/bin/nb +++ b/.local/bin/nb @@ -1,5 +1,6 @@ #!/bin/sh +[ $(hostname -s) = "po-rbo" ] && exec newsboat [ -f /tmp/cache.db ] && exec newsboat -c /tmp/cache.db -u /tmp/urls cache_file="$XDG_DATA_HOME/newsboat/cache.db.gpg" urls_file="$XDG_CONFIG_HOME/newsboat/urls.gpg" diff --git a/.local/bin/ndate b/.local/bin/ndate index 9811bff..323be43 100755 --- a/.local/bin/ndate +++ b/.local/bin/ndate @@ -69,10 +69,7 @@ sub main $date = scalar reverse $date; system( NOTIFYSEND_PATH, - '-u', - 'low', - '-t', - '4000', + '-t', '4000', 'date', $date ); diff --git a/.local/bin/newsboat-notif b/.local/bin/newsboat-notif new file mode 100755 index 0000000..cc2b385 --- /dev/null +++ b/.local/bin/newsboat-notif @@ -0,0 +1,3 @@ +#!/bin/sh + +[ $1 -gt 0 ] && notify-send -u normal -t 6000 newsboat " <b>$@</b> new articles" diff --git a/.local/bin/ref-newsboat b/.local/bin/ref-newsboat index 090ca63..ca1aee1 100755 --- a/.local/bin/ref-newsboat +++ b/.local/bin/ref-newsboat @@ -5,27 +5,25 @@ use warnings; use Capture::Tiny qw(capture); use constant { - NEWSBOAT_PATH => '/usr/local/bin/newsboat', - NOTIFY_SEND_PATH => '/usr/local/bin/notify-send' + NEWSBOAT_PATH => 'newsboat', + NOTIFY_SEND_PATH => 'notify-send' }; sub main { my $stdout; + my $nb; + + $nb = NEWSBOAT_PATH; if (system( - NEWSBOAT_PATH, + $nb, '-x', 'reload' ) != 0) { exit 1; } - ($stdout, undef, undef) = capture { - system( - NEWSBOAT_PATH, - '-x', - 'print-unread' - ); - }; + + $stdout = qx($nb -x print-unread); $stdout =~ s/\s.+//; chomp $stdout; if ($stdout != 0) { @@ -33,11 +31,13 @@ sub main NOTIFY_SEND_PATH, '-u', 'low', + '-t', + '4000', 'newsboat', - ' ' . $stdout . ' new articles' + ' <b>' . $stdout . '</b> new articles' ); } - exit 0; + return; } main(); diff --git a/.local/bin/scr2 b/.local/bin/scr2 index 24c1b64..48a4a03 100755 --- a/.local/bin/scr2 +++ b/.local/bin/scr2 @@ -2,11 +2,11 @@ xrandr \ --output HDMI-0 --primary --mode 1920x1080 --pos 0x0 --rotate normal \ - --output DP-0 --mode 1680x1050 --pos 1920x0 --rotate normal \ + --output DP-0 --off \ --output DP-1 --off \ --output DP-2 --off \ --output DP-3 --off \ - --output DP-4 --off \ + --output DP-4 --mode 1680x1050 --pos 1920x0 --rotate normal \ --output DP-5 --off setwp "$HOME"/pics/wp.png diff --git a/.local/bin/scr3 b/.local/bin/scr3 index f94fb6c..17b9fe7 100755 --- a/.local/bin/scr3 +++ b/.local/bin/scr3 @@ -2,11 +2,11 @@ xrandr \ --output HDMI-0 --primary --mode 1920x1080 --pos 1440x0 --rotate normal \ - --output DP-0 --mode 1680x1050 --pos 3360x0 --rotate normal \ + --output DP-0 --off \ --output DP-1 --off \ - --output DP-2 --off \ + --output DP-2 --mode 1440x900 --pos 0x0 --rotate normal \ --output DP-3 --off \ - --output DP-4 --mode 1440x900 --pos 0x0 --rotate normal \ + --output DP-4 --mode 1680x1050 --pos 3360x0 --rotate normal \ --output DP-5 --off diff --git a/.local/state/w3m/history b/.local/state/w3m/history index d59a3a0..842aa12 100644 --- a/.local/state/w3m/history +++ b/.local/state/w3m/history @@ -6,5 +6,5 @@ https://atlas.nuabee.fr/ file:///tmp/tmpmail/tmpmail.html file:///home/r_bousset/nuabee.fr https://nuabee.fr/ -https://lite.duckduckgo.com/lite/ https://jozan.org/ +https://lite.duckduckgo.com/lite/ |