Любителям тайлинга ...

R.V.
где последняя версия автозакрытия?
Здесь. Ничего не менял.

Пошерстил этот скрипт. Автор наворотил, конечно... ) Ну и баг есть, если имеются заметки:
1
123
12345 какой-то текст
1 и т.д.
и вы удаляете первую (1), то вместе с ней удаляются все, которые начинаются с единички. Там грепать надо не только начало, но и конец строки.
К тому же количество строк в меню равно количеству строк в файле. А если их не 20-30, а полторы тысячи? Я не проверял что будет.
Короче, Aivar'Soft представляет:
#!/usr/bin/bash

_file=~/notes
[ ! -f $_file.gz ] && touch $_file && gzip $_file
gunzip $_file
_note=`cat $_file | dmenu -i -b -l 15 -p note:`
while [[ -n "$_note" ]]; do
if [[ -z `grep "^$_note$" $_file` ]]
        then _note="`date +%R` $_note"
        _date="-`date +%d.%m.%Y`-"
        [[ -z `grep "^$_date$" $_file` ]] && _note="$_date\n$_note"
        echo -e "$_note" >> $_file
        else sed -i /^$_note$/d $_file
fi
_note=`cat $_file | dmenu -i -b -l 15 -p note:`
done
gzip $_file
Дата добавляется раз в день перед первой заметкой, время - в начале строки.
Если нужно - меняйте шрифт, цвет... Мне не надо. )

Да, не вставляйте в сообщение слеш, не надо...
Aivar'Soft, конечно, звучит... Но нам бы без багов... )) Можно прям в терминале. Из моих ~/.bash_functions:


function note() {
    # if file doesn't exist, create it
    if [[ ! -f $HOME/notes ]]; then
        touch "$HOME/notes"
    fi

    if ! (($#)); then
        # no arguments, print file
        cat "$HOME/.notes"
    elif [[ "$1" == "-c" ]]; then
        # clear file
        printf "%s" > "$HOME/notes"
    else
        # add all arguments to file
        printf "%s\n" "$*" >> "$HOME/notes"
    fi
}
function todo() {
    if [[ ! -f $HOME/todo ]]; then
        touch "$HOME/todo"
    fi

    if ! (($#)); then
        cat "$HOME/todo"
    elif [[ "$1" == "-l" ]]; then
        nl -b a "$HOME/todo"
    elif [[ "$1" == "-c" ]]; then
        > $HOME/todo
    elif [[ "$1" == "-r" ]]; then
        nl -b a "$HOME/todo"
        eval printf %.0s- '{1..'"${COLUMNS:-$(tput cols)}"\}; echo
        read -p "Type a number to remove: " number
        sed -i ${number}d $HOME/todo "$HOME/todo"
    else
        printf "%s\n" "$*" >> "$HOME/todo"
    fi
}
Ёёёёёёё... У меня после последней перестановки вручную Арча не хватало в ~/.xinitrc нужных строк.

if [ -d /etc/X11/xinit/xinitrc.d ] ; then
 for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
  [ -x "$f" ] && . "$f"
 done
 unset f
fi
И теперь сhromium завершается как надо даже при обычном выключении/перезагрузке компа.
Из i3 User’s Guide:
2.5. Closing windows
If an application does not provide a mechanism for closing (most applications provide a menu, the escape key or a shortcut like Control+w to close), you can press $mod+Shift+q to kill a window. For applications which support the WM_DELETE protocol, this will correctly close the application (saving any modifications or doing other cleanup). If the application doesn’t support the WM_DELETE protocol your X server will kill the window and the behaviour depends on the application.
Так что проблему сами нарисовали на ровном месте. )) i3wm - тоже умный... :)
R.V.
теперь сhromium завершается как надо
у меня все равно часто падает его профиль... вот второй день присматриваюсь к опере
Ну, не знаю... Только что еще раз проверил - все как надо у меня. У кого что-то не так - Aivar'Soft based shutdown (d)menu:

#!/bin/bash

killx() {
# [[ `mount | grep /media/netdisk` ]] && umount.davfs /media/netdisk/
sleep .5
IFS=$'\n'
for i in `wmctrl -l | cut -d \  -f 1`; do
wmctrl -ic $i
done
sleep 1
while [[ -n `wmctrl -l` ]]
do
sleep 1
done
}

actions=("Logout\nSuspend\nHibernate\nHybrid_sleep\nReboot\nPoweroff")

action=$(echo -e $actions | dmenu -i -b -p Actions -fn Terminus-10 -nb '#3e3e3e' -nf '#aaaaaa' -sb '#5e5e5e' -sf '#dedede')

case "$action" in

    Logout) killx; i3-msg exit ;;
    Suspend) systemctl suspend ;;
    Hibernate) systemctl hibernate ;;
    Hybrid_sleep) systemctl hybrid-sleep ;;
    Reboot) killx; systemctl reboot ;;
    Poweroff) killx; systemctl poweroff ;;

esac

R.V.
Но нам бы без багов...
Где? Почему у меня работает?
Мда, сам удивляюсь, сегодня работает не так как вчера. А ведь ничего не менял. Где-то хомутнул перед тем как сохранить и запостить сюда. Странно...

Исправил.
О! Совсем другое дело... Намного лучше, чем оригинал! Респект... :)
Ну отладка все же...

R.V.
Из моих ~/.bash_functions:
Где-то я это уже видел... )
https://wiki.archlinux.org/index.php/Bash/Functions#Simple_note_taker
Ну, если они у меня там лежат, то не мои, что ли? )) Кстати, Extract у меня сильно отличается от Викиного. И есть еще несколько других, которых там нет. :)
 
Зарегистрироваться или войдите чтобы оставить сообщение.