diff --git a/archive/README.md b/archive/README.md deleted file mode 100644 index f9e4058..0000000 --- a/archive/README.md +++ /dev/null @@ -1 +0,0 @@ -Тут будут файлы, которые больше не нужны. Но может быть они мне пригодятся в будущем. \ No newline at end of file diff --git a/archive/browsers/chromium.nix b/archive/browsers/chromium.nix deleted file mode 100644 index 7635ef7..0000000 --- a/archive/browsers/chromium.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ - programs.chromium = { - enable = true; - - # Пока что передумал настраивать браузер. Бекаплю каталог целиком - }; -} \ No newline at end of file diff --git a/archive/browsers/firefox.nix b/archive/browsers/firefox.nix deleted file mode 100644 index 80eb972..0000000 --- a/archive/browsers/firefox.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ - programs.firefox = { # Пока что передумал настраивать браузер. Бекаплю каталог целиком - enable = true; - - # profiles.buliway = { - - # search = { - # engines = { - - # }; - - # force = true; - # }; - - # nativeMessagingHosts.ff2mpv = true; # Чтоб ff2mpv работал - - # settings = { - # # "extensions.autoDisableScopes" = 0; # To automatically enable extensions - # "browser.bookmarks.openInTabClosesMenu" = false; - # "browser.tabs.loadBookmarksInBackground" = true; - # "layout.css.has-selector.enabled" = true; - # # https://github.com/K3V1991/Disable-Firefox-Telemetry-and-Data-Collection - # "browser.newtabpage.activity-stream.feeds.telemetry" = false; - # "browser.newtabpage.activity-stream.telemetry" = false; - # "datareporting.healthreport.uploadEnabled" = false; - # "datareporting.policy.dataSubmissionEnabled" = false; - # "toolkit.telemetry.archive.enabled" = false; - # "toolkit.telemetry.bhrPing.enabled" = false; - # "toolkit.telemetry.enabled" = false; - # "toolkit.telemetry.firstShutdownPing.enabled" = false; - # "toolkit.telemetry.newProfilePing.enabled" = false; - # "toolkit.telemetry.reportingpolicy.firstRun" = false; - # "toolkit.telemetry.server" = ""; - # "toolkit.telemetry.shutdownPingSender.enabled" = false; - # "toolkit.telemetry.unified" = false; - # "toolkit.telemetry.updatePing.enabled" = false; - # }; - # }; - }; -} \ No newline at end of file diff --git a/archive/browsers/librewolf.nix b/archive/browsers/librewolf.nix deleted file mode 100644 index a24b649..0000000 --- a/archive/browsers/librewolf.nix +++ /dev/null @@ -1,57 +0,0 @@ -{ pkgs, ... }: { - programs.librewolf = { # Пока что передумал настраивать браузер. Бекаплю каталог целиком - enable = true; - - # settings = { # Надо из about:config записать сюда свои изменения - # "browser.bookmarks.openInTabClosesMenu" = false; # Не закрывать каталог закладок при открытии через СКМ? Не помню - # "browser.tabs.loadBookmarksInBackground" = true; # Не перекидывать меня сразу на открытую закладку через СКМ? Не помню - # "layout.css.has-selector.enabled" = true; # Некоторые кастом стили это требуют - - # # General - - # # # Search (Если надо вернуть гугл поисковик в стоке) - # # "browser.policies.runOncePerModification.extensionsUninstall" = [ # Удалить расширения - # # "amazondotcom@search.mozilla.org" - # # "ebay@search.mozilla.org" - # # "twitter@search.mozilla.org" - # # ]; - # # "browser.policies.runOncePerModification.removeSearchEngines" = [ # Удалить поисковые движки - # # "Amazon.com" - # # "eBay" - # # "Twitter" - # # ]; - # # "browser.policies.runOncePerModification.setDefaultSearchEngine" = "Google"; # Стандартный поисковик - - # # Privacy & Security - - # # LibreWolf - # "clipboard.autocopy" = false; # Выкл копирование колесом мыши - # "middlemouse.paste" = false; # Выкл копирование колесом мыши - # "network.dns.disableIPv6" = true; # Выкл ivp6 - # "privacy.resistFingerprinting" = false; # Лайтовое и мб не ломает работу сайтов - # "privacy.fingerprintingProtection" = false; # Хардовее и может ломать работу сайтов? - # "webgl.disabled" = false; # Включить WebGL - - # # Extensions - # "browser.policies.runOncePerModification.extensionsInstall" = [ # Установка расширений - # "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi" # uBlock - # "https://addons.mozilla.org/firefox/downloads/latest/privacy-badger/latest.xpi" # Privacy Badger - # ]; - # }; - }; - - # Чтоб ff2mpv работал. Не надо юзать их скрипт с гитхаба - # Надо будет потом написать "nix-build -A ff2mpv", чтоб проверить реальный путь до ff2mpv бинаря - # home.file.".librewolf/native-messaging-hosts/ff2mpv.json".text = '' - # { - # "name": "ff2mpv", - # "description": "ff2mpv's external manifest", - # "path": "${pkgs.ff2mpv}/bin/ff2mpv.py", - # "type": "stdio", - # "allowed_extensions": ["ff2mpv@yossarian.net"] - # } - # ''; - - # Ниже сделать настройки расширений декларативными - # home.file.".librewolf/?".source = ./?; -} \ No newline at end of file diff --git a/archive/bspwmrc b/archive/bspwmrc deleted file mode 100644 index d9261e3..0000000 --- a/archive/bspwmrc +++ /dev/null @@ -1,105 +0,0 @@ -#!/usr/bin/env bash - -# Дефолт конфиг https://github.com/baskerville/bspwm/blob/master/examples/bspwmrc -# Описание настроек можно найти тут https://manpages.debian.org/testing/bspwm/bspc.1.en.html -# Или через "man bspc" в терминале -# Или в ./bspwm.md -# https://my-take-on.tech/2020/07/03/some-tricks-for-sxhkd-and-bspwm/ - -################ -## Автозапуск ## -################ - -# Это по сути терминал. Пишем то, как запускается прога через терминал и в конце & обязательно - -# # Как я понял, их не надо запускать, ведь они активированы через services..enable = true; -# # Если в nixos что-то включается через services, а не через programs, то nixos сам отвечает за автозапуск сервисов -# pgrep -x sxhkd > /dev/null || sxhkd & # Запускаем sxhkd если он не запущен -# pgrep -x polybar > /dev/null || polybar & # Запускаем polybar если он не запущен -# pgrep -x dunst > /dev/null || dunst & # Запускаем dunst если он не запущен - -# Изменить настройки для основного монитора. Мб вместе с --primary надо -xrandr --output DisplayPort-2 --mode 1920x1080 --rate 165 -# Изменить настройки для второго (правого) монитора -xrandr --output HDMI-A-0 --mode 1920x1080 --rate 100 --right-of DisplayPort-2 - -ksnip & -# nekoray & -# obsidian & -# planify & -lxqt-policykit-agent & - -# Я ебал рот видеть инет в трее. Замени эту ёбань на rofi и отдельную кнопку в polybar -nm-applet & - -######################### -## Настройки мониторов ## -######################### - -# Получаем имена активных мониторов -MONITORS=( $(xrandr --listactivemonitors | grep -E '^ [0-9]+:' | cut -d' ' -f6 | sed 's/\n/ /') ) - -# Если переменная MONITOR уже задана, то используется её значение. -# Если она не задана (то есть пуста или не существует), то используется первый элемент из массива MONITORS (то есть, первый активный монитор). -# Это гарантирует, что переменная MONITOR всегда будет содержать значение: либо установленное ранее, либо первый активный монитор по умолчанию. -# ":-" Это оператор в Bash, который используется для установки значения по умолчанию. Если переменная не задана или пуста, используется значение после :- -MONITOR="${MONITOR:-${MONITORS[0]}}" - -# Для запуска приложений на втором мониторе, если он доступен. Если второго монитора нет, используем первый. -MONITOR2="${MONITORS[1]:-${MONITORS[0]}}" - -# # Устанавливаем рабочие столы с именами от 1 до 10 для каждого монитора -for mon in ${MONITORS[@]}; do - bspc monitor $mon -d {1,2,3,4,5,6,7,8,9,10} -done - -# Устанавливаем рабочие столы с именами от 1 до 10 для каждого монитора -#bspc monitor -d 1 2 3 4 5 6 7 8 9 10 # Можно заменить на {1,2,3,4,5,6,7,8,9,10} - -# Настройка автоматического удаления настроек для отключённых и отсоединённых мониторов -bspc config remove_disabled_monitors false -bspc config remove_unplugged_monitors false - -##################### -## Настройки bspwm ## -##################### - -# Syntax - bspc config [-m MONITOR_SEL|-d DESKTOP_SEL|-n NODE_SEL] [] - -# Устанавливает ширину границ окон в 2 пикселя. -bspc config border_width 2 - -# Задаёт расстояние между окнами (отступ) в 5 пикселей. -bspc config window_gap 5 - -# Настраивает коэффициент разделения окон при их разделении. Значение 0.52 означает, что при разделении окно будет занимать 52% доступного пространства. -bspc config split_ratio 0.52 - -# В режиме monocle (максимизация окна на весь экран) границы окон будут скрыты. -bspc config borderless_monocle true - -# В режиме monocle будет отсутствовать отступ между окнами. -bspc config gapless_monocle true - -# Eсли вы активируете режим "monocle" на одном мониторе, другие мониторы остаются в обычном режиме -bspc config single_monocle false - -# Фокусировка следует за курсором -bspc config focus_follows_pointer true - - -############################### -## Поведение конкретных окон ## -############################### - - -# Yдаляет все существующие правила для всех окон -# bspc rule -r '*' - -bspc rule -a "polybar" layer=above - -bspc rule -a "Screenkey" manage=off - -bspc rule -a "ksnip" state=floating center=true focus=on rectangle=1600x900+0+0 -bspc rule -a "org.kde.ark" state=floating center=true focus=on rectangle=1200x800+0+0 -bspc rule -a "floating-terminal" state=floating center=true focus=on rectangle=1200x800+0+0 diff --git a/archive/default-apps.nix b/archive/default-apps.nix deleted file mode 100644 index 907685d..0000000 --- a/archive/default-apps.nix +++ /dev/null @@ -1,121 +0,0 @@ -# Команды для терминала -# Узнать тип файла - xdg-mime query filetype foo.pdf -# Узнать нынешнее дефолт приложения - xdg-mime query default application/pdf -# Узнать имя приложения. Для примера взять evince - fd evince.desktop / -# Выведет пути, по которым можно понять как называется приложение -# В список [] можно через пробел добавить другие варианты. Если первая прога не откроет, то попытается вторая -# Список mime types смотрел тут https://mimetype.io/all-types -# Нагуглить значение "x-scheme-handler" невозможно. Как я понял, это кастом типы - -############################################################################## -# Как система готова, то замени имена прог на реальные. Сейчас на абум стоят # -############################################################################## - -{ - xdg.mimeApps = { # Конфиг для `~/.config/mimeapps.list` - enable = true; - defaultApplications = { # Стандартные приложения для открытия нужного файла - # Browser - "application/x-extension-htm" = [ "librewolf.desktop" ]; - "application/x-extension-html" = [ "librewolf.desktop" ]; - "application/x-extension-shtml" = [ "librewolf.desktop" ]; - "application/x-extension-xht" = [ "librewolf.desktop" ]; - "application/x-extension-xhtml" = [ "librewolf.desktop" ]; - "application/xhtml+xml" = [ "librewolf.desktop" ]; - "x-scheme-handler/about" = [ "librewolf.desktop" ]; - "x-scheme-handler/chrome" = [ "librewolf.desktop" ]; - "x-scheme-handler/http" = [ "librewolf.desktop" ]; - "x-scheme-handler/https" = [ "librewolf.desktop" ]; - "x-scheme-handler/unknown" = [ "librewolf.desktop" ]; - # Images - "image/*" = [ "qview.desktop" ]; - "image/avif" = [ "qview.desktop" ]; - "image/gif" = [ "qview.desktop" ]; - "image/jpeg" = [ "qview.desktop" ]; # Обычный jpeg, прогрузка сверху вниз - "image/pjpeg" = [ "qview.desktop" ]; # Сначала размытый и постепенной лучше видно, для медленного инета - "image/apng" = [ "qview.desktop" ]; # Анимированный png - "image/png" = [ "qview.desktop" ]; - "image/svg+xml" = [ "qview.desktop" ]; - "image/webp" = [ "qview.desktop" ]; - "image/x-icon" = [ "qview.desktop" ]; - "image/vnd.microsoft.icon" = [ "qview.desktop" ]; - # Video - "video/*" = [ "mpv.desktop" ]; - "video/mp4" = [ "mpv.desktop" ]; - "video/mpeg" = [ "mpv.desktop" ]; - "video/quicktime" = [ "mpv.desktop" ]; - "video/webm" = [ "mpv.desktop" ]; - "video/x-matroska" = [ "mpv.desktop" ]; - # Audio - "audio/*" = [ "mpv.desktop" ]; - "audio/aac" = [ "mpv.desktop" ]; - "audio/flac" = [ "mpv.desktop" ]; - "audio/mp4" = [ "mpv.desktop" ]; - "audio/mpeg" = [ "mpv.desktop" ]; - "audio/ogg" = [ "mpv.desktop" ]; - "audio/opus" = [ "mpv.desktop" ]; - "audio/vnd.wav" = [ "mpv.desktop" ]; - "audio/webm" = [ "mpv.desktop" ]; - "audio/x-matroska" = [ "mpv.desktop" ]; - "audio/x-mpegurl" = [ "mpv.desktop" ]; # Для .m3u. Это файл-плейлист - "audio/x-opus+ogg" = [ "mpv.desktop" ]; # What's this? Why not "audio/ogg" and "audio/opus"? - # Text - "text/*" = [ "nvim.desktop" "code.desktop" ]; - "text/css" = [ "nvim.desktop" "code.desktop" ]; - "text/csv" = [ "nvim.desktop" "code.desktop" ]; - "text/html" = [ "nvim.desktop" "code.desktop" "librewolf.desktop" "firefox.desktop" "chromium.desktop" ]; - "text/javascript" = [ "nvim.desktop" "code.desktop" ]; - "text/markdown" = [ "nvim.desktop" "code.desktop" ]; - "text/plain" = [ "nvim.desktop" "code.desktop" ]; - "text/x-asm" = [ "nvim.desktop" "code.desktop" ]; - "text/x-c" = [ "nvim.desktop" "code.desktop" ]; - "text/x-python" = [ "nvim.desktop" "code.desktop" ]; - "application/json" = [ "nvim.desktop" "code.desktop" "librewolf.desktop" "firefox.desktop" "chromium.desktop" ]; - "application/x-sh" = [ "nvim.desktop" "code.desktop" ]; - "application/x-shellscript" = [ "nvim.desktop" "code.desktop" ]; - "application/xml" = [ "nvim.desktop" "code.desktop" ]; - "application/yaml" = [ "nvim.desktop" "code.desktop" ]; - # Мб потом добавить для docs варианты и разные виды архивов и ebook - # Other - "application/pdf" = [ "org.gnome.Evince.desktop" ]; - "application/x-zerosize" = [ "nvim.desktop" "code.desktop" ]; # Файл нулевого размера - "application/zip" = [ "ark.desktop" ]; - "application/x-bittorrent" = [ "qbittorrent.desktop" ]; - "x-scheme-handler/magnet" = [ "qbittorrent.desktop" ]; - "inode/directory" = [ "thunar.desktop" ]; - "x-scheme-handler/mailto" = [ "thunderbird.desktop" ]; - "x-scheme-handler/jetbrains" = [ "jetbrains-toolbox.desktop" ]; - }; - - associations.added = { # Дополнительные приложения для нужного файла. Будет в меню "Открыть с помощью" - # Images - "image/*" = [ "qview.desktop" ]; - "image/avif" = [ "qview.desktop" ]; - "image/gif" = [ "qview.desktop" ]; - "image/jpeg" = [ "qview.desktop" ]; # Обычный jpeg, прогрузка сверху вниз - "image/pjpeg" = [ "qview.desktop" ]; # Сначала размытый и постепенной лучше видно, для медленного инета - "image/apng" = [ "qview.desktop" ]; # Анимированный png - "image/png" = [ "qview.desktop" ]; - "image/svg+xml" = [ "qview.desktop" ]; - "image/webp" = [ "qview.desktop" ]; - "image/x-icon" = [ "qview.desktop" ]; - "image/vnd.microsoft.icon" = [ "qview.desktop" ]; - # Text - "text/*" = [ "nvim.desktop" "code.desktop" ]; - "text/css" = [ "nvim.desktop" "code.desktop" ]; - "text/csv" = [ "nvim.desktop" "code.desktop" ]; - "text/html" = [ "nvim.desktop" "code.desktop" "librewolf.desktop" "firefox.desktop" "chromium.desktop" ]; - "text/javascript" = [ "nvim.desktop" "code.desktop" ]; - "text/markdown" = [ "nvim.desktop" "code.desktop" ]; - "text/plain" = [ "nvim.desktop" "code.desktop" ]; - "text/x-asm" = [ "nvim.desktop" "code.desktop" ]; - "text/x-c" = [ "nvim.desktop" "code.desktop" ]; - "text/x-python" = [ "nvim.desktop" "code.desktop" ]; - "application/json" = [ "nvim.desktop" "code.desktop" "librewolf.desktop" "firefox.desktop" "chromium.desktop" ]; - "application/x-sh" = [ "nvim.desktop" "code.desktop" ]; - "application/x-shellscript" = [ "nvim.desktop" "code.desktop" ]; - "application/xml" = [ "nvim.desktop" "code.desktop" ]; - "application/yaml" = [ "nvim.desktop" "code.desktop" ]; - }; - }; -} diff --git a/archive/fish.nix b/archive/fish.nix deleted file mode 100644 index 14ca526..0000000 --- a/archive/fish.nix +++ /dev/null @@ -1,93 +0,0 @@ -{ pkgs, ... }: { - programs.fish = { - enable = true; - - shellAliases = let - flakeDir = "~/dots"; - in { - rbs = "sudo nixos-rebuild switch --impure --flake ${flakeDir}"; # Применить новый конфиг сразу - rbb = "sudo nixos-rebuild boot --impure --flake ${flakeDir}"; # Применить новый конфиг после ребута пк - - # Можно назвать аналогом "sudo pacman -Su", не "Syu", репу не обновляет - upg = "sudo nixos-rebuild switch --impure --upgrade --flake ${flakeDir}"; # Обновить пакеты, но не репозиторий во fleke.lock - - # Обновить все flake inputs до последних версий. Возможно это аналог "sudo pacman -Sy" на Arch Linux - # Если после upd дописать название инпута из flake.nix, то обновится только указанный инпут - # Например `upd nixpkgs2` для обновления анстабле репы - upd = "sudo nix flake update --flake ${flakeDir}"; - - # Garbage collector. Удалить все не используемые пакеты (например после обновы) - grb = "sudo nix-collect-garbage -d"; - - pkgs = "nvim ${flakeDir}/nixos/packages.nix"; - - vim = "nvim"; - vi = "nvim"; - v = "nvim"; - - t = "timer"; - r = "ranger"; - g = "gitui"; - f = "fastfetch"; - yt = "cd /mnt/backups/Media/yt-dlp"; # Конфиги для бекапа YouTube - qb = "cd /mnt/backups/Media/Music/Qobuz/qdl"; # Бекапить музыку с Qobuz - html = "python3 /mnt/backups/html-library/generate_gallery.py --path"; # Html image gallery - }; - - # Всё, что в комментах ниже, лишнее. Я нашёл норм способ. Пишем "nix-prefetch-git link" и получаем всю инфу - # Узнать rev - git ls-remote https://github.com/{owner}/{repo}.git HEAD - # На гитхабе вроде можно просто на странице коммитов нажать ... и copy full SHA - # Узнать sha256 - sudo nix-prefetch-url --unpack https://github.com/{owner}/{repo}/archive/{rev}.tar.gz - # Ссылку проще получить, открыв страницу релизов и оттуда скопировать ссылку на архив - # Если нет релизов - sudo nix-prefetch-url --unpack https://github.com/{owner}/{repo}/archive/refs/heads/{branch}.zip - plugin = [ - { # The Node.js version manager you'll adore, crafted just for Fish - name = "nvm.fish"; # https://github.com/jorgebucaran/nvm.fish - src = pkgs.fetchFromGitHub { - owner = "jorgebucaran"; - repo = "nvm.fish"; - rev = "b8edb1ee24cbbf7259196b0cb3c6c4ab65b07929"; - sha256 = "17vk608mbmb9mwvvm18hs63iy7vzdrd1ymia94szy1hy5d0li77c"; - }; - } - { # Utility functions to start your ssh agent when using fish shell - name = "fish-ssh-agent"; # https://github.com/danhper/fish-ssh-agent - src = pkgs.fetchFromGitHub { - owner = "danhper"; - repo = "fish-ssh-agent"; - rev = "fd70a2afdd03caf9bf609746bf6b993b9e83be57"; - sha256 = "1fvl23y9lylj4nz6k7yfja6v9jlsg8jffs2m5mq0ql4ja5vi5pkv"; - }; - } - ]; - }; - - home = { - packages = with pkgs.fishPlugins; [ # Плагины для Fish из репы никса - z # Частые директории https://github.com/jethrokuan/z/blob/master/man/man1/z.md - plugin-git # Алиасы для гита https://github.com/jhillyerd/plugin-git - fzf-fish # https://github.com/PatrickF1/fzf.fish - done # Оповещения для длительных процессов https://github.com/franciscolourenco/done - bass # Позволяет юзать bash в fish https://github.com/edc/bass - ]; - - # Чтоб при выходе из ranger я всегда cd в каталог, из которого вышел - file.".config/fish/functions/ranger.fish".text = '' - function ranger - set tempfile (mktemp -t tmp.XXXXXX) - command ranger --choosedir=$tempfile $argv - set return_value $status - - if test -s $tempfile - set ranger_pwd (cat $tempfile) - if test -n $ranger_pwd -a -d $ranger_pwd - builtin cd -- $ranger_pwd - end - end - - command rm -f -- $tempfile - return $return_value - end - ''; - }; -} diff --git a/archive/git.nix b/archive/git.nix deleted file mode 100644 index 6e61317..0000000 --- a/archive/git.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ - programs.git = { # https://nixos.wiki/wiki/Git - enable = true; - - # lfs.enable = true; # https://git-lfs.com/ - - userName = "Buliway"; - userEmail = "me@buliway.ru"; - - # aliases = { - # pu = "push"; - # co = "checkout"; - # cm = "commit"; - # s = "status"; - # }; - }; - - programs.gitui = { # Terminal UI - enable = true; - }; -} \ No newline at end of file diff --git a/archive/imv/config b/archive/imv/config deleted file mode 100644 index b8ed334..0000000 --- a/archive/imv/config +++ /dev/null @@ -1,62 +0,0 @@ -# Default config for imv - -[options] - -# Suppress built-in key bindings, and specify them explicitly in this -# config file. -suppress_default_binds = true -title_text = imv - $(basename "$imv_current_file") - -[aliases] -# Define aliases here. Any arguments passed to an alias are appended to the -# command. -# alias = command to run - -[binds] -# Define some key bindings -q = quit -y = exec echo working! - -# Image navigation - = prev - = prev - = next - = next -gg = goto 1 - = goto -1 - -# Panning -j = pan 0 -50 -k = pan 0 50 -h = pan 50 0 -l = pan -50 0 - -# Zooming - = zoom 1 - = zoom 1 -i = zoom 1 - = zoom -1 - = zoom -1 -o = zoom -1 - -# Rotate Clockwise by 90 degrees - = rotate by 90 - -# Other commands -x = close -f = fullscreen -d = overlay -p = exec echo $imv_current_file -c = center -s = scaling next - = upscaling next -a = zoom actual -r = reset - -# Gif playback - = next_frame - = toggle_playing - -# Slideshow control -t = slideshow +5 - = slideshow -1 diff --git a/archive/imv/imv.nix b/archive/imv/imv.nix deleted file mode 100644 index 78e0b08..0000000 --- a/archive/imv/imv.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ - programs.imv.enable = true; - - xdg.configFile."imv/config".source = ./config; -} \ No newline at end of file diff --git a/archive/lynx.nix b/archive/lynx.nix deleted file mode 100644 index cc493ff..0000000 --- a/archive/lynx.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ pkgs, ... }: { - home = { - packages = [ pkgs.lynx ]; # Текстовый браузер в терминале. Без картинок - - # Чтоб lynx отображал все символы, а не транслит - file.".lynxrc".text = '' - accept_all_cookies=on - force_ssl_cookies_secure=on - - case_sensitive_searching=off - character_set=UNICODE (UTF-8) - ''; - }; -} \ No newline at end of file diff --git a/archive/strawberry.conf b/archive/strawberry.conf deleted file mode 100644 index 70e92ee..0000000 --- a/archive/strawberry.conf +++ /dev/null @@ -1,443 +0,0 @@ -[Analyzer] -framerate=25 -type=BlockAnalyzer - -[Appearance] -background_image_do_not_cut=true -background_image_keep_aspect_ratio=true -background_image_max_size=0 -background_image_position=5 -background_image_stretch=false -background_image_type=1 -blur_radius=0 -icon_size_configure_buttons=16 -icon_size_left_panel_buttons=22 -icon_size_play_control_buttons=32 -icon_size_playlist_buttons=20 -icon_size_tabbar_large_mode=40 -icon_size_tabbar_small_mode=32 -opacity_level=40 -playlist_playing_song_color=@Variant(\0\0\0\x43\0\xff\xff\0\0\0\0\0\0\0\0) -style=default -system_icons=false -tab_color=@Variant(\0\0\0\x43\x2\xff\xffOL\x87\x87\x92+\0\0) -tab_gradient=true -tab_system_color=true - -[Backend] -AutoCrossfadeEnabled=false -CrossfadeEnabled=false -FadeoutDuration=2000 -FadeoutEnabled=false -FadeoutPauseDuration=250 -FadeoutPauseEnabled=false -NoCrossfadeSameAlbum=true -alsaplugin=3 -bs2b=false -bufferduration=4000 -bufferhighwatermark=0.99 -bufferlowwatermark=0.33 -channels=2 -channels_enabled=false -device=@Invalid() -ebur128_loudness_normalization=false -ebur128_target_level_lufs=-23 -engine=gstreamer -http2=false -output=autoaudiosink -rgcompression=true -rgenabled=false -rgfallbackgain=0 -rgmode=1 -rgpreamp=0 -strict_ssl=false -volume_control=true - -[Behaviour] -doubleclick_addmode=1 -doubleclick_playlist_addmode=1 -doubleclick_playmode=1 -keeprunning=false -language= -menu_playmode=1 -menu_previousmode=1 -playing_widget=true -resumeplayback=false -seek_step_sec=10 -showtrayicon=true -startupbehaviour=1 -trayicon_progress=false - -[Collection] -auto_open=true -cache_size=160 -cache_size_unit=1 -cover_art_patterns=front, cover -delete_files=true -disk_cache_enable=false -disk_cache_size=360 -disk_cache_size_unit=1 -expire_unavailable_songs=60 -group_by1=1 -group_by2=4 -group_by3=0 -group_by_version=1 -last_path=/home/buliway/backups/Media/Music -mark_songs_unavailable=true -monitor=true -overwrite_playcount=false -overwrite_rating=false -pretty_covers=true -save_playcounts=true -save_ratings=true -separate_albums_by_grouping=false -show_dividers=true -song_ebur128_loudness_analysis=false -song_tracking=false -startup_scan=true - -[Context] -AlbumEnable=true -SearchCoverEnable=true -SearchLyricsEnable=true -SongLyricsEnable=true -SummaryFmt=%album% -TechnicalDataEnable=false -TitleFmt=%title% - %artist% -font_headline=Noto Sans -font_normal=Noto Sans -font_size_headline=11 -font_size_normal=9 - -[Covers] -providers=Last.fm, MusicBrainz, Deezer, Musixmatch, Spotify, Tidal, Qobuz -save_filename=2 -save_lowercase=true -save_overwrite=false -save_pattern=%albumartist-%album -save_replace_spaces=true -save_type=1 -types=art_unset, art_manual, art_automatic, art_embedded - -[EditTagDialog] -current_tab=1 -geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\xf\x1\0\0\0\x19\0\0\x12\xb1\0\0\x4\x10\0\0\xf\x1\0\0\0\x19\0\0\x12\xc0\0\0\x4$\0\0\0\x1\x2\0\0\0\a\x80\0\0\xf\x1\0\0\0\x19\0\0\x12\xb1\0\0\x4\x10) - -[Equalizer] -enable_stereo_balancer=false -enabled=false -presets\1\name=Classical -presets\1\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xd8\xff\xff\xff\xd8\xff\xff\xff\xd8\xff\xff\xff\xce) -presets\10\name=Live -presets\10\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\xff\xff\xff\xe7\0\0\0\0\0\0\0\x14\0\0\0\x19\0\0\0\x1e\0\0\0\x1e\0\0\0\x14\0\0\0\xf\0\0\0\xf\0\0\0\n) -presets\11\name=Party -presets\11\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0#\0\0\0#\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0#\0\0\0#) -presets\12\name=Pop -presets\12\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\xff\xff\xff\xf6\0\0\0\x19\0\0\0#\0\0\0(\0\0\0\x19\xff\xff\xff\xfb\xff\xff\xff\xf1\xff\xff\xff\xf1\xff\xff\xff\xf6\xff\xff\xff\xf6) -presets\13\name=Reggae -presets\13\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xfb\xff\xff\xff\xe2\0\0\0\0\xff\xff\xff\xdd\xff\xff\xff\xdd\0\0\0\0\0\0\0\0\0\0\0\0) -presets\14\name=Rock -presets\14\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0(\0\0\0\x19\xff\xff\xff\xe2\xff\xff\xff\xd8\xff\xff\xff\xec\0\0\0\x14\0\0\0-\0\0\0\x37\0\0\0\x37\0\0\0\x37) -presets\15\name=Ska -presets\15\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\xff\xff\xff\xf1\xff\xff\xff\xe7\xff\xff\xff\xe7\xff\xff\xff\xfb\0\0\0\x14\0\0\0\x1e\0\0\0-\0\0\0\x32\0\0\0\x37\0\0\0\x32) -presets\16\name=Soft -presets\16\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\x19\0\0\0\n\xff\xff\xff\xfb\xff\xff\xff\xf1\xff\xff\xff\xfb\0\0\0\x14\0\0\0-\0\0\0\x32\0\0\0\x37\0\0\0<) -presets\17\name=Soft Rock -presets\17\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\x14\0\0\0\x14\0\0\0\n\xff\xff\xff\xfb\xff\xff\xff\xe7\xff\xff\xff\xe2\xff\xff\xff\xec\xff\xff\xff\xfb\0\0\0\xf\0\0\0-) -presets\18\name=Techno -presets\18\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0(\0\0\0\x1e\0\0\0\0\xff\xff\xff\xe2\xff\xff\xff\xe7\0\0\0\0\0\0\0(\0\0\0\x32\0\0\0\x32\0\0\0-) -presets\19\name=Zero -presets\19\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0) -presets\2\name=Club -presets\2\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x14\0\0\0\x1e\0\0\0\x1e\0\0\0\x1e\0\0\0\x14\0\0\0\0\0\0\0\0\0\0\0\0) -presets\3\name=Custom -presets\3\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0) -presets\4\name=Dance -presets\4\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\x32\0\0\0#\0\0\0\n\0\0\0\0\0\0\0\0\xff\xff\xff\xe2\xff\xff\xff\xd8\xff\xff\xff\xd8\0\0\0\0\0\0\0\0) -presets\5\name=Full Bass -presets\5\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\x46\0\0\0\x46\0\0\0\x46\0\0\0(\0\0\0\x14\xff\xff\xff\xd3\xff\xff\xff\xce\xff\xff\xff\xc9\xff\xff\xff\xc9\xff\xff\xff\xc9) -presets\6\name=Full Bass + Treble -presets\6\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0#\0\0\0\x1e\0\0\0\0\xff\xff\xff\xd8\xff\xff\xff\xe7\0\0\0\n\0\0\0-\0\0\0\x37\0\0\0<\0\0\0<) -presets\7\name=Full Treble -presets\7\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\xff\xff\xff\xce\xff\xff\xff\xce\xff\xff\xff\xce\xff\xff\xff\xe7\0\0\0\xf\0\0\0\x37\0\0\0P\0\0\0P\0\0\0P\0\0\0U) -presets\8\name=Laptop/Headphones -presets\8\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\x19\0\0\0\x32\0\0\0\x19\xff\xff\xff\xec\0\0\0\0\xff\xff\xff\xe2\xff\xff\xff\xd8\xff\xff\xff\xd8\0\0\0\0\0\0\0\0) -presets\9\name=Large Hall -presets\9\params=@Variant(\0\0\0\x7f\0\0\0\x12\x45qualizer::Params\0\0\0\0\0\0\0\0\x32\0\0\0\x32\0\0\0\x1e\0\0\0\x1e\0\0\0\0\xff\xff\xff\xe7\xff\xff\xff\xe7\xff\xff\xff\xe7\0\0\0\0\0\0\0\0) -presets\size=19 -selected_preset=Custom -stereo_balance=0 - -[GlobalShortcuts] -dec_volume= -inc_volume= -love= -mute= -next_track=Media Next -pause= -play= -play_pause=Media Play -prev_track=Media Previous -repeat_mode= -seek_backward= -seek_forward= -show_hide= -show_osd= -shuffle_mode= -stop=Media Stop -stop_after= -toggle_pretty_osd= -toggle_scrobbling= -use_gnome=false -use_kde=true -use_mate=false -use_x11=false - -[LastFM] -enabled=false - -[LibreFM] -enabled=false - -[ListenBrainz] -enabled=false -user_token= - -[Lyrics] -providers=Genius, Lyrics.ovh, LoloLyrics, Musixmatch, songlyrics.com, azlyrics.com, elyrics.net, lyricsmode.com - -[MainWindow] -add_folder_path=/home/buliway/backups/Media/Music -current_tab=1 -do_not_show_sponsor_message=true -file_path=/home/buliway -geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\xf\0\0\0\0\0\0\0\x16k\0\0\x4\a\0\0\xf\0\0\0\0\0\0\0\x16\x7f\0\0\x4\x37\0\0\0\x1\x2\0\0\0\a\x80\0\0\xf\0\0\0\0\0\0\0\x16k\0\0\x4\a) -hidden=false -maximized=true -minimized=false -search_for_cover_auto=true -show_sidebar=true -splitter_state=@ByteArray(\0\0\0\xff\0\0\0\x1\0\0\0\x2\0\0\x1>\0\0\x4W\0\xff\xff\xff\xff\x1\0\0\0\x1\0) -tab_collection=1 -tab_context=0 -tab_devices=7 -tab_files=5 -tab_mode=1 -tab_playlists=3 -tab_queue=2 -tab_radios=6 -tab_smartplaylists=4 - -[Moodbar] -enabled=false -save=false -show=false -style=0 - -[NetworkProxy] -engine=true -hostname= -mode=0 -password= -port=0 -type=3 -use_authentication=false -username= - -[OSD] -Behaviour=0 -CustomText1= -CustomText2= -CustomTextEnabled=false -ShowArt=true -ShowOnPausePlayback=false -ShowOnPlayModeChange=false -ShowOnResumePlayback=false -ShowOnVolumeChange=false -Timeout=5000 - -[OSDPretty] -background_color=4284913379 -background_opacity=0.8500000238418579 -disable_duration=false -fading=false -font="Verdana,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1" -foreground_color=4278190080 -popup_pos=@Point(1460 0) -popup_screen=DP-3 - -[Player] -playback_playlist=22 -playback_position=37 -playback_state=3 -volume=6 - -[Playlist] -alternating_row_colors=true -auto_sort=false -column_alignments=@Variant(\0\0\0\x7f\0\0\0\x13\x43olumnAlignmentMap\0\0\0\0\v\0\0\0\x6\0\0\0\x82\0\0\0\a\0\0\0\x82\0\0\0\b\0\0\0\x82\0\0\0\t\0\0\0\x82\0\0\0\n\0\0\0\x82\0\0\0\f\0\0\0\x82\0\0\0\r\0\0\0\x82\0\0\0\xe\0\0\0\x82\0\0\0\x11\0\0\0\x82\0\0\0\x15\0\0\0\x82\0\0\0\x16\0\0\0\x82) -continue_on_error=false -current_playlist=22 -delete_files=true -editmetadatainline=false -glow_effect=true -greyout_songs_play=true -greyout_songs_startup=true -last_load_playlist=/home/buliway/backups/Media/Music/Strawberry/Rofl.xspf -last_save_all_extension=xspf -last_save_all_path=/home/buliway/backups/Media/Music/Strawberry -last_save_extension=xspf -last_save_filter=XSPF playlists (*.xspf) -last_save_path=/home/buliway/backups/Media/Music/Strawberry -path_type=2 -playlist_clear=true -rating_locked=false -select_track=false -show_bars=true -show_toolbar=true -state="@ByteArray(P,\x95\xf\x1\0\0\0 \0\0\x1\xc4\0\0\0\xdc\0\0\0\0\0\0\0\xdc\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0,\0\0\0\0\0\0\0R\0\0\0\0\0\0\0\x82\0\0\0\x36\0\0\0R\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0K\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0i\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\b\0\0\0\0\0\0\0\x2\0\0\0\x3\0\0\0\x4\0\0\0\x5\0\0\0\x6\0\0\0\a\0\0\0\t\0\0\0\x1\0\0\0\n\0\0\0\v\0\0\0\f\0\0\0\r\0\0\0\xe\0\0\0\xf\0\0\0\x10\0\0\0\x11\0\0\0\x12\0\0\0\x13\0\0\0\x14\0\0\0\x15\0\0\0\x16\0\0\0\x17\0\0\0\x18\0\0\0\x19\0\0\0\x1a\0\0\0\x1b\0\0\0\x1c\0\0\0\x1d\0\0\0\x1e\0\0\0\x1f\0\0\0 ?\xd3\xb4\xaa\x33\x9eW\xe4?\xc3@\x1a\xf9\xf9<\xa4\0\0\0\0\0\0\0\0?\xc3\x41\b\xc4\x39@\x5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\x9e\xd3)\"~\x95\xa7\0\0\0\0\0\0\0\0?\xac\xbb\x86<\xb6:\xdd\0\0\0\0\0\0\0\0?\xb6\xc0\x15\x89h\xe7X?\xa2\xd8)B\xc5\xa6\x33?\xac\xdb\x2\x96\xb7[\x9f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\xaaJ?\x87\x39\x9b<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\xb2Y\xb7\x14\x62\xae`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\n)" -state_version=1 -warn_close_playlist=true -write_metadata=true - -[PlaylistSequence] -repeat_mode=0 -shuffle_mode=0 - -[Qobuz] -albums_group_by1=1 -albums_group_by2=4 -albums_group_by3=0 -albums_group_by_version=1 -albums_separate_albums_by_grouping=false -artists_group_by1=1 -artists_group_by2=4 -artists_group_by3=0 -artists_group_by_version=1 -artists_separate_albums_by_grouping=false -search_group_by1=1 -search_group_by2=4 -search_group_by3=0 -search_group_by_version=1 -songs_group_by1=1 -songs_group_by2=4 -songs_group_by3=0 -songs_group_by_version=1 -songs_separate_albums_by_grouping=false -tab=artists - -[Scrobbler] -albumartist=false -enabled=false -love_button=false -offline=false -scrobble_button=false -show_error_dialog=true -sources=collection, file, cd, device, subsonic, tidal, qobuz, stream, somafm, radioparadise, unknown -submit=0 - -[SerializedSmartPlaylists] -songs\1\data=@ByteArray(\0\0\0\0\x2\x11\0\0\0\x14\x2\0) -songs\1\name=Newest tracks -songs\1\type=1 -songs\10\data=@ByteArray(\0\0\0\0\0\x3\0\0\0\x14\x2\x1) -songs\10\name=Dynamic random mix -songs\10\type=1 -songs\2\data=@ByteArray(\0\0\0\0\0\x3\0\0\0\x32\x2\0) -songs\2\name=50 random tracks -songs\2\type=1 -songs\3\data=@ByteArray(\0\0\0\x1\x13\x4\0\0\0\x2\0\0\0\0\0\0\0\0\0\x1\0\0\x3\0\0\0\x14\0\0) -songs\3\name=Ever played -songs\3\type=1 -songs\4\data=@ByteArray(\0\0\0\x1\x13\x6\0\0\0\x2\0\0\0\0\0\0\0\0\0\x1\0\0\x3\0\0\0\x14\0\0) -songs\4\name=Never played -songs\4\type=1 -songs\5\data=@ByteArray(\0\0\0\0\x2\x15\0\0\0\x14\x2\0) -songs\5\name=Last played -songs\5\type=1 -songs\6\data=@ByteArray(\0\0\0\0\x2\x13\0\0\0\x14\x2\0) -songs\6\name=Most played -songs\6\type=1 -songs\7\data=@ByteArray(\0\0\0\0\x2\x16\0\0\0\x14\x2\0) -songs\7\name=Favourite tracks -songs\7\type=1 -songs\8\data=@ByteArray(\0\0\0\x2\x16\x5\0\0\0\x6\0?\xe0\0\0\0\0\0\0\0\0\0\0\x1\0\x14\x4\0\0\0\x2\0\0\0\0\x4\0\0\0\0\x1\0\x2\x14\0\0\0\x14\x1\0) -songs\8\name=Least favourite tracks -songs\8\type=1 -songs\9\data=@ByteArray(\0\0\0\0\x1\x1\xff\xff\xff\xff\x2\0) -songs\9\name=All tracks -songs\9\type=1 -songs\size=10 -songs_version=3 - -[SettingsDialog] -geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x11\"\0\0\0\x9c\0\0\x14\\\0\0\x3\x9b\0\0\x11\"\0\0\0\x9c\0\0\x14\\\0\0\x3\x9b\0\0\0\x1\x2\0\0\0\a\x80\0\0\x11\"\0\0\0\x9c\0\0\x14\\\0\0\x3\x9b) - -[Subsonic] -authmethod=1 -downloadalbumcovers=false -enabled=false -group_by1=1 -group_by2=4 -group_by3=0 -group_by_version=1 -http2=false -password= -separate_albums_by_grouping=false -serversidescrobbling=true -url=@Variant(\0\0\0\x11\xff\xff\xff\xff) -username= -verifycertificate=true - -[Tidal] -albums_group_by1=1 -albums_group_by2=4 -albums_group_by3=0 -albums_group_by_version=1 -albums_separate_albums_by_grouping=false -artists_group_by1=1 -artists_group_by2=4 -artists_group_by3=0 -artists_group_by_version=1 -artists_separate_albums_by_grouping=false -search_group_by1=1 -search_group_by2=4 -search_group_by3=0 -search_group_by_version=1 -songs_group_by1=1 -songs_group_by2=4 -songs_group_by3=0 -songs_group_by_version=1 -songs_separate_albums_by_grouping=false -tab=artists - -[Transcoder] -faac\bitrate=320000 -faac\midside=true -faac\profile=2 -faac\shortctl=0 -faac\tns=false -ffenc_wmav2\bitrate=320000 -flacenc\quality=5 -geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\xf\0\0\0\0\0\0\0\x12\xb0\0\0\x4\a\0\0\xf\0\0\0\0\0\0\0\x12\xbf\0\0\x4\x1b\0\0\0\x1\x2\0\0\0\a\x80\0\0\xf\0\0\0\0\0\0\0\x12\xb0\0\0\x4\a) -lamemp3enc\bitrate=320 -lamemp3enc\cbr=false -lamemp3enc\encoding-engine-quality=2 -lamemp3enc\mono=false -lamemp3enc\quality=10 -lamemp3enc\target=1 -opusenc\bitrate=320000 -speexenc\abr=0 -speexenc\bitrate=0 -speexenc\complexity=3 -speexenc\dtx=false -speexenc\mode=0 -speexenc\nframes=1 -speexenc\quality=10 -speexenc\vad=false -speexenc\vbr=false -vorbisenc\bitrate=-1 -vorbisenc\managed=false -vorbisenc\max-bitrate=-1 -vorbisenc\min-bitrate=-1 -vorbisenc\quality=1 diff --git a/archive/thunar.xml b/archive/thunar.xml deleted file mode 100644 index 1e17fe3..0000000 --- a/archive/thunar.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archive/vscode.nix b/archive/vscode.nix deleted file mode 100644 index ffee404..0000000 --- a/archive/vscode.nix +++ /dev/null @@ -1,81 +0,0 @@ -{ pkgs, ... }: { # https://nixos.wiki/wiki/Visual_Studio_Code - programs.vscode = { - enable = true; - - # Что-то из этого может пригодиться, если хочу ставить пакеты без декларативности - # package = pkgs.vscode.fhs; # Почему в вики написано ".fhs", если пакет называется "-fhs"? - # package = pkgs.vscode-with-extensions; # Мб это надо? - - - # Чтоб узнать sha256, я скачал расширение напрямую с сайта маркетплейса - # А потом в терминале написал "sha256sum filename" - # В оф репе юзают такой скрипт для установки расширений, не знаю поможет ли - # https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vscode/extensions/update_installed_exts.sh#L34 - # Имя и паблишер берутся из ссылки. После "?itemName" идёт паблишер.нейм - extensions = with pkgs.vscode-extensions; [ - jdinhlife.gruvbox # Gruvbox theme - eamodio.gitlens # GitLens - Git supercharged - jnoortheen.nix-ide # Nix language support - syntax highlighting, formatting, and error reporting. - sumneko.lua # Lua language server - naumovs.color-highlight # Highlight web colors in your editor - tamasfe.even-better-toml # Fully-featured TOML support - ms-python.python # Python language support - golang.go # Rich Go language support - mechatroner.rainbow-csv # Rainbow syntax higlighting for CSV and TSV files - # redhat.vscode-xml # XML Language Support by Red Hat - # dotjoshjohnson.xml # XML Tools - # bradlc.vscode-tailwindcss # Tailwind CSS tooling - ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ # Руками с гита ставить - { # https://marketplace.visualstudio.com/items?itemName=budparr.language-hugo-vscode - name = "language-hugo-vscode"; - publisher = "budparr"; - version = "1.3.1"; - sha256 = "f5da7cfe02c06fc3899e6b0b55b380280619e7085abcf5b6024f9684ba846c99"; - } - # { # https://marketplace.visualstudio.com/items?itemName=dlasagno.rasi - # name = "rasi"; - # publisher = "dlasagno"; - # version = "1.0.0"; - # sha256 = "b3ad1a95e8f770d01b489c6c4652111364216baa00b2670e05b5a8aa9fb0e9f9"; - # } - # { # https://marketplace.visualstudio.com/items?itemName=a-h.templ - # name = "templ"; - # publisher = "a-h"; - # version = "0.0.29"; - # sha256 = "459fbec312f63aa061de188b030288c3940b8d4fe29ac2bb8ab4141db27fb6a3"; - # } - # { # https://marketplace.visualstudio.com/items?itemName=CraigRBroughton.htmx-attributes - # name = "htmx-attributes"; - # publisher = "CraigRBroughton"; - # version = "0.8.0"; - # sha256 = "4ec7a63d992ad99d77fef6a145a3fbcf6d3a0496826754d1e8e56fe9a783bf29"; - # } - # { # https://marketplace.visualstudio.com/items?itemName=Codeium.codeium - # name = "codeium"; - # publisher = "Codeium"; - # version = "1.29.2"; - # sha256 = "86e075c4fd0d60f7fa7b32e497260a86a94ec812d95e3d9f058ce45e77648f89"; - # } - ]; - - # userSettings = { - # "telemetry.telemetryLevel" = "off"; - # "update.showReleaseNotes" = false; - # "workbench.colorTheme" = "Gruvbox Dark Medium"; - # "editor.fontFamily" = "JetBrainsMono Nerd Font"; - # "editor.lineNumbers" = "relative"; - # }; - - # globalSnippets = {}; - - # languageSnippets = {}; - - # keybindings = [ - # { - # key = "ctrl+c"; - # command = "editor.action.clipboardCopyAction"; - # when = "textInputFocus"; - # } - # ]; - }; -} diff --git a/archive/yazi/init.lua b/archive/yazi/init.lua deleted file mode 100644 index cd855dd..0000000 --- a/archive/yazi/init.lua +++ /dev/null @@ -1,2 +0,0 @@ -require("starship"):setup() -require("full-border"):setup() \ No newline at end of file diff --git a/archive/yazi/keymap.toml b/archive/yazi/keymap.toml deleted file mode 100644 index 05f68fd..0000000 --- a/archive/yazi/keymap.toml +++ /dev/null @@ -1,18 +0,0 @@ -# [[manager.prepend_keymap]] -# on = [ "y" ] -# run = [ "yank", ''' -# shell --confirm 'for path in "$@"; do echo "file://$path"; done | wl-copy -t text/uri-list' -# ''' ] -# desc = "Copy to clipboard on Wayland" # https://yazi-rs.github.io/docs/tips - -[[manager.prepend_keymap]] -on = [ "y" ] -run = [ "yank", ''' - shell --confirm 'echo "$@" | xclip -i -selection clipboard -t text/uri-list' -''' ] -desc = "Copy to clipboard on Xorg" # https://yazi-rs.github.io/docs/tips - -[[manager.prepend_keymap]] -on = ["C"] -run = "plugin ouch --args=zip" -desc = "Compress with ouch" diff --git a/archive/yazi/plugins/exifaudio.yazi/LICENSE b/archive/yazi/plugins/exifaudio.yazi/LICENSE deleted file mode 100644 index 78aae84..0000000 --- a/archive/yazi/plugins/exifaudio.yazi/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2024 Sonico98 - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/archive/yazi/plugins/exifaudio.yazi/README.md b/archive/yazi/plugins/exifaudio.yazi/README.md deleted file mode 100644 index 69a1597..0000000 --- a/archive/yazi/plugins/exifaudio.yazi/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# exifaudio.yazi - -Preview audio metadata and cover on [Yazi](https://github.com/sxyazi/yazi). - -![image](https://github.com/Sonico98/exifaudio.yazi/assets/61394886/53c1492c-9f05-4c80-a4e7-94fb36f35ca9) - -## Installation - -```sh -# Linux/macOS -git clone https://github.com/Sonico98/exifaudio.yazi.git ~/.config/yazi/plugins/exifaudio.yazi - -# Windows -git clone https://github.com/Sonico98/exifaudio.yazi.git %AppData%\yazi\config\plugins\exifaudio.yazi -``` - -## Usage - -Add the following to your `yazi.toml`: - -```toml -[plugin] -prepend_previewers = [ - { mime = "audio/*", run = "exifaudio"} -] -``` - -Make sure you have [exiftool](https://exiftool.org/) installed and in your `PATH`. - -## Thanks - -Thanks to [sxyazi](https://github.com/sxyazi) for the PDF previewer code, on which this previewer is based on. diff --git a/archive/yazi/plugins/exifaudio.yazi/init.lua b/archive/yazi/plugins/exifaudio.yazi/init.lua deleted file mode 100644 index 521ff33..0000000 --- a/archive/yazi/plugins/exifaudio.yazi/init.lua +++ /dev/null @@ -1,139 +0,0 @@ -local M = {} - -function M:peek() - local cache = ya.file_cache(self) - if not cache then - return - end - - local child = Command("exiftool") - :args({ - "-q", "-q", "-S", "-Title", "-SortName", - "-TitleSort", "-TitleSortOrder", "-Artist", - "-SortArtist", "-ArtistSort", "-PerformerSortOrder", - "-Album", "-SortAlbum", "-AlbumSort", "-AlbumSortOrder", - "-AlbumArtist", "-SortAlbumArtist", "-AlbumArtistSort", - "-AlbumArtistSortOrder", "-Genre", "-TrackNumber", - "-Year", "-Duration", "-SampleRate", - "-AudioSampleRate", "-AudioBitrate", "-AvgBitrate", - "-Channels", "-AudioChannels", tostring(self.file.url), - }) - :stdout(Command.PIPED) - :stderr(Command.NULL) - :spawn() - - local limit = self.area.h - local i, metadata = 0, {} - repeat - local next, event = child:read_line() - if event == 1 then - return self:fallback_to_builtin() - elseif event ~= 0 then - break - end - - i = i + 1 - if i > self.skip then - local m_title, m_tag = prettify(next) - local ti = ui.Span(m_title):bold() - local ta = ui.Span(m_tag) - table.insert(metadata, ui.Line{ti, ta}) - table.insert(metadata, ui.Line{}) - end - until i >= self.skip + limit - - local p = ui.Paragraph(self.area, metadata):wrap(ui.Paragraph.WRAP) - ya.preview_widgets(self, { p }) - - local cover_width = self.area.w / 2 - 5 - local cover_height = (self.area.h / 4) + 3 - - local bottom_right = ui.Rect { - x = self.area.right - cover_width, - y = self.area.bottom - cover_height, - w = cover_width, - h = cover_height, - } - - if self:preload() == 1 then - ya.image_show(cache, bottom_right) - end -end - -function prettify(metadata) - local substitutions = { - Sortname = "Sort Title:", - SortName = "Sort Title:", - TitleSort = "Sort Title:", - TitleSortOrder = "Sort Title:", - ArtistSort = "Sort Artist:", - SortArtist = "Sort Artist:", - Artist = "Artist:", - ARTIST = "Artist:", - PerformerSortOrder = "Sort Artist:", - SortAlbumArtist = "Sort Album Artist:", - AlbumArtistSortOrder = "Sort Album Artist:", - AlbumArtistSort = "Sort Album Artist:", - AlbumSortOrder = "Sort Album:", - AlbumSort = "Sort Album:", - SortAlbum = "Sort Album:", - Album = "Album:", - ALBUM = "Album:", - AlbumArtist = "Album Artist:", - Genre = "Genre:", - GENRE = "Genre:", - TrackNumber = "Track Number:", - Year = "Year:", - Duration = "Duration:", - AudioBitrate = "Bitrate:", - AvgBitrate = "Average Bitrate:", - AudioSampleRate = "Sample Rate:", - SampleRate = "Sample Rate:", - AudioChannels = "Channels:" - } - - for k, v in pairs(substitutions) do - metadata = metadata:gsub(tostring(k)..":", v, 1) - end - - -- Separate the tag title from the tag data - local t={} - for str in string.gmatch(metadata , "([^"..":".."]+)") do - table.insert(t, str) - end - - -- Add back semicolon to title, rejoin tag data if it happened to contain a semicolon - return t[1]..":", table.concat(t, ":", 2) - -end - -function M:seek(units) - local h = cx.active.current.hovered - if h and h.url == self.file.url then - ya.manager_emit("peek", { - tostring(math.max(0, cx.active.preview.skip + units)), - only_if = tostring(self.file.url), - }) - end -end - -function M:preload() - local cache = ya.file_cache(self) - if not cache or fs.cha(cache) then - return 1 - end - - local output = Command("exiftool") - :args({ "-b", "-CoverArt", "-Picture", tostring(self.file.url) }) - :stdout(Command.PIPED) - :stderr(Command.PIPED) - :output() - - if not output then - return 0 - end - - return fs.write(cache, output.stdout) and 1 or 2 -end - -return M diff --git a/archive/yazi/plugins/full-border.yazi/LICENSE b/archive/yazi/plugins/full-border.yazi/LICENSE deleted file mode 100644 index fb5b1d6..0000000 --- a/archive/yazi/plugins/full-border.yazi/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2023 yazi-rs - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/archive/yazi/plugins/full-border.yazi/README.md b/archive/yazi/plugins/full-border.yazi/README.md deleted file mode 100644 index b1c9a52..0000000 --- a/archive/yazi/plugins/full-border.yazi/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# full-border.yazi - -Add a full border to Yazi to make it look fancier. - -![full-border](https://github.com/yazi-rs/plugins/assets/17523360/ef81b560-2465-4d36-abf2-5d21dcb7b987) - -## Installation - -```sh -ya pack -a yazi-rs/plugins#full-border -``` - -## Usage - -Add this to your `init.lua` to enable the plugin: - -```lua -require("full-border"):setup() -``` - -Or you can customize the border type: - -```lua -require("full-border"):setup { - -- Available values: ui.Border.PLAIN, ui.Border.ROUNDED - type = ui.Border.PLAIN, -} -``` diff --git a/archive/yazi/plugins/full-border.yazi/init.lua b/archive/yazi/plugins/full-border.yazi/init.lua deleted file mode 100644 index fcd0cbe..0000000 --- a/archive/yazi/plugins/full-border.yazi/init.lua +++ /dev/null @@ -1,40 +0,0 @@ -local function setup(_, opts) - local type = opts and opts.type or ui.Border.ROUNDED - local old_build = Tab.build - - Tab.build = function(self, ...) - local bar = function(c, x, y) - if x <= 0 or x == self._area.w - 1 then - return ui.Bar(ui.Rect.default, ui.Bar.TOP) - end - - return ui.Bar( - ui.Rect { x = x, y = math.max(0, y), w = ya.clamp(0, self._area.w - x, 1), h = math.min(1, self._area.h) }, - ui.Bar.TOP - ):symbol(c) - end - - local c = self._chunks - self._chunks = { - c[1]:padding(ui.Padding.y(1)), - c[2]:padding(ui.Padding(c[1].w > 0 and 0 or 1, c[3].w > 0 and 0 or 1, 1, 1)), - c[3]:padding(ui.Padding.y(1)), - } - - local style = THEME.manager.border_style - self._base = ya.list_merge(self._base or {}, { - ui.Border(self._area, ui.Border.ALL):type(type):style(style), - ui.Bar(self._chunks[1], ui.Bar.RIGHT):style(style), - ui.Bar(self._chunks[3], ui.Bar.LEFT):style(style), - - bar("┬", c[1].right - 1, c[1].y), - bar("┴", c[1].right - 1, c[1].bottom - 1), - bar("┬", c[2].right, c[2].y), - bar("┴", c[2].right, c[2].bottom - 1), - }) - - old_build(self, ...) - end -end - -return { setup = setup } diff --git a/archive/yazi/plugins/glow.yazi/LICENSE b/archive/yazi/plugins/glow.yazi/LICENSE deleted file mode 100644 index de882e5..0000000 --- a/archive/yazi/plugins/glow.yazi/LICENSE +++ /dev/null @@ -1,7 +0,0 @@ -Copyright © 2024 Reledia - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/archive/yazi/plugins/glow.yazi/README.md b/archive/yazi/plugins/glow.yazi/README.md deleted file mode 100644 index fdfefa2..0000000 --- a/archive/yazi/plugins/glow.yazi/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# glow.yazi - -Plugin for [Yazi](https://github.com/sxyazi/yazi) to preview markdown files with [glow](https://github.com/charmbracelet/glow). To install, clone the repo inside your `~/.config/yazi/plugins/`: - -```bash -git clone https://github.com/Reledia/glow.yazi.git -``` - -then include it in your `yazi.toml` to use: - -```toml -[plugin] -prepend_previewers = [ - { name = "*.md", run = "glow" }, -] -``` - -Make sure you have [glow](https://github.com/charmbracelet/glow) installed, and can be found in `PATH`. diff --git a/archive/yazi/plugins/glow.yazi/init.lua b/archive/yazi/plugins/glow.yazi/init.lua deleted file mode 100644 index bad70d2..0000000 --- a/archive/yazi/plugins/glow.yazi/init.lua +++ /dev/null @@ -1,66 +0,0 @@ -local M = {} - -function M:peek() - local child = Command("glow") - :args({ - "--style", - "dark", - "--width", - tostring(self.area.w), - tostring(self.file.url), - }) - :stdout(Command.PIPED) - :stderr(Command.PIPED) - :spawn() - - if not child then - return self:fallback_to_builtin() - end - - local limit = self.area.h - local i, lines = 0, "" - repeat - local next, event = child:read_line() - if event == 1 then - return self:fallback_to_builtin() - elseif event ~= 0 then - break - end - - i = i + 1 - if i > self.skip then - lines = lines .. next - end - until i >= self.skip + limit - - child:start_kill() - if self.skip > 0 and i < self.skip + limit then - ya.manager_emit( - "peek", - { tostring(math.max(0, i - limit)), only_if = tostring(self.file.url), upper_bound = "" } - ) - else - lines = lines:gsub("\t", string.rep(" ", PREVIEW.tab_size)) - ya.preview_widgets(self, { ui.Paragraph.parse(self.area, lines) }) - end -end - -function M:seek(units) - local h = cx.active.current.hovered - if h and h.url == self.file.url then - local step = math.floor(units * self.area.h / 10) - ya.manager_emit("peek", { - tostring(math.max(0, cx.active.preview.skip + step)), - only_if = tostring(self.file.url), - }) - end -end - -function M:fallback_to_builtin() - local _, bound = ya.preview_code(self) - if bound then - ya.manager_emit("peek", { tostring(bound), only_if = tostring(self.file.url), upper_bound = "" }) - end -end - -return M diff --git a/archive/yazi/plugins/miller.yazi/LICENSE b/archive/yazi/plugins/miller.yazi/LICENSE deleted file mode 100644 index de882e5..0000000 --- a/archive/yazi/plugins/miller.yazi/LICENSE +++ /dev/null @@ -1,7 +0,0 @@ -Copyright © 2024 Reledia - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/archive/yazi/plugins/miller.yazi/README.md b/archive/yazi/plugins/miller.yazi/README.md deleted file mode 100644 index 172674e..0000000 --- a/archive/yazi/plugins/miller.yazi/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# miller.yazi - -[Miller](https://github.com/johnkerl/miller) now in [yazi](https://github.com/sxyazi/yazi). To install, clone the repo inside `~/.config/yazi/plugins/`: - -```toml -[plugin] -prepend_previewers = [ - { mime = "text/csv", run = "miller"}, -] -``` - -## Preview - -![preview](https://github.com/Reledia/miller.yazi/blob/main/preview.png?raw=true) - -## Color - -To change colors of keys and values, edit the `init.lua` file after the `--key-color` and `--value-color` flags. To view a list of possible colors, use `mlr --list-color-names`. Make sure to have miller installed and inside your PATH. - -## Other types of file - -To adapt this plugin to the other format supported from miller (like json): -- copy the plugin folder -- change the name of the copied folder into miller_(fmt) -- change the `--icsv` flag inside `init.lua` to `--i(fmt)` -- add the correct mime/name rule into `prepend_previewers` and the exec as `miller_(fmt)` diff --git a/archive/yazi/plugins/miller.yazi/init.lua b/archive/yazi/plugins/miller.yazi/init.lua deleted file mode 100644 index 9a4a752..0000000 --- a/archive/yazi/plugins/miller.yazi/init.lua +++ /dev/null @@ -1,59 +0,0 @@ -local M = {} - -function M:peek() - local child = Command("mlr") - :args({ - "--icsv", - "--opprint", - "-C", - "--key-color", - "darkcyan", - "--value-color", - "grey70", - "cat", - tostring(self.file.url), - }) - :stdout(Command.PIPED) - :stderr(Command.PIPED) - :spawn() - - local limit = self.area.h - local i, lines = 0, "" - repeat - local next, event = child:read_line() - if event == 1 then - ya.err(tostring(event)) - elseif event ~= 0 then - break - end - - i = i + 1 - if i > self.skip then - lines = lines .. next - end - until i >= self.skip + limit - - child:start_kill() - if self.skip > 0 and i < self.skip + limit then - ya.manager_emit( - "peek", - { tostring(math.max(0, i - limit)), only_if = tostring(self.file.url), upper_bound = "" } - ) - else - lines = lines:gsub("\t", string.rep(" ", PREVIEW.tab_size)) - ya.preview_widgets(self, { ui.Paragraph.parse(self.area, lines) }) - end -end - -function M:seek(units) - local h = cx.active.current.hovered - if h and h.url == self.file.url then - local step = math.floor(units * self.area.h / 10) - ya.manager_emit("peek", { - tostring(math.max(0, cx.active.preview.skip + step)), - only_if = tostring(self.file.url), - }) - end -end - -return M diff --git a/archive/yazi/plugins/ouch.yazi/LICENSE b/archive/yazi/plugins/ouch.yazi/LICENSE deleted file mode 100644 index 3f9d766..0000000 --- a/archive/yazi/plugins/ouch.yazi/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2024 ndtoan96 - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/archive/yazi/plugins/ouch.yazi/README.md b/archive/yazi/plugins/ouch.yazi/README.md deleted file mode 100644 index 2b49af2..0000000 --- a/archive/yazi/plugins/ouch.yazi/README.md +++ /dev/null @@ -1,67 +0,0 @@ -# ouch.yazi - -[ouch](https://github.com/ouch-org/ouch) plugin for [Yazi](https://github.com/sxyazi/yazi). - -![ouch.yazi](https://github.com/ndtoan96/ouch.yazi/assets/33489972/946397ec-b37b-4bf4-93f1-c676fc8e59f2) - -## Features -- Archive preview -- Compression - -## Installation - -```bash -# Linux/macOS -git clone https://github.com/ndtoan96/ouch.yazi.git ~/.config/yazi/plugins/ouch.yazi - -# Windows -git clone https://github.com/ndtoan96/ouch.yazi.git %AppData%\yazi\config\plugins\ouch.yazi -``` - -Make sure you have [ouch](https://github.com/ouch-org/ouch) installed and in your `PATH`. - -## Usage - -### Preview -For archive preview, add this to your `yazi.toml`: - -```toml -[plugin] -prepend_previewers = [ - # Archive previewer - { mime = "application/*zip", run = "ouch" }, - { mime = "application/x-tar", run = "ouch" }, - { mime = "application/x-bzip2", run = "ouch" }, - { mime = "application/x-7z-compressed", run = "ouch" }, - { mime = "application/x-rar", run = "ouch" }, - { mime = "application/x-xz", run = "ouch" }, -] -``` - -Now go to an archive on Yazi, you should see the archive's content in the preview pane. You can use `Alt-j` and `Alt-k` to roll up and down the preview. - -If you want to change the icon or the style of text, you can modify the `peek` function in `init.lua` file (all of them are stored in the `lines` variable). - -### Compression -For compession, add this to your `keymap.toml`: - -```toml -[[manager.prepend_keymap]] -on = ["C"] -run = "plugin ouch --args=zip" -desc = "Compress with ouch" -``` - -The `--args=zip` part tells the plugin that default format is `zip`. You can change that to whatever format you want. - -### Decompression -This plugin does not provide a decompression feature because it already is supported by Yazi. -To decompress with `ouch`, configure the opener in `yazi.toml`. - -```toml -[opener] -extract = [ - { run = 'ouch d -y "%*"', desc = "Extract here with ouch", for = "windows" }, - { run = 'ouch d -y "$@"', desc = "Extract here with ouch", for = "unix" }, -] -``` diff --git a/archive/yazi/plugins/ouch.yazi/init.lua b/archive/yazi/plugins/ouch.yazi/init.lua deleted file mode 100644 index c6f2e69..0000000 --- a/archive/yazi/plugins/ouch.yazi/init.lua +++ /dev/null @@ -1,143 +0,0 @@ -local M = {} - -function M:peek() - local child = Command("ouch") - :args({ "l", "-t", "-y", tostring(self.file.url) }) - :stdout(Command.PIPED) - :stderr(Command.PIPED) - :spawn() - local limit = self.area.h - local file_name = string.match(tostring(self.file.url), ".*[/\\](.*)") - local lines = string.format("\x1b[2m📁 %s\x1b[0m\n", file_name) - local num_lines = 1 - local num_skip = 0 - repeat - local line, event = child:read_line() - if event == 1 then - ya.err(tostring(event)) - elseif event ~= 0 then - break - end - - if line:find('Archive', 1, true) ~= 1 and line:find('[INFO]', 1, true) ~= 1 then - if num_skip >= self.skip then - lines = lines .. line - num_lines = num_lines + 1 - else - num_skip = num_skip + 1 - end - end - until num_lines >= limit - - child:start_kill() - if self.skip > 0 and num_lines < limit then - ya.manager_emit( - "peek", - { tostring(math.max(0, self.skip - (limit - num_lines))), only_if = tostring(self.file.url), upper_bound = "" } - ) - else - ya.preview_widgets(self, { ui.Paragraph.parse(self.area, lines) }) - end -end - -function M:seek(units) - local h = cx.active.current.hovered - if h and h.url == self.file.url then - local step = math.floor(units * self.area.h / 10) - ya.manager_emit("peek", { - math.max(0, cx.active.preview.skip + step), - only_if = tostring(self.file.url), - }) - end -end - --- Check if file exists -local function file_exists(name) - local f = io.open(name, "r") - if f ~= nil then - io.close(f) - return true - else - return false - end -end - --- Get the files that need to be compressed and infer a default archive name -local get_compression_target = ya.sync(function() - local tab = cx.active - local default_name - local paths = {} - if #tab.selected == 0 then - if tab.current.hovered then - local name = tab.current.hovered.name - default_name = name - table.insert(paths, name) - else - return - end - else - default_name = tab.current.cwd:name() - for _, url in pairs(tab.selected) do - table.insert(paths, tostring(url)) - end - -- The compression targets are aquired, now unselect them - ya.manager_emit("escape", {}) - end - return paths, default_name -end) - -local function invoke_compress_command(paths, name) - local cmd_output, err_code = Command("ouch") - :args({ "c", "-y" }) - :args(paths) - :arg(name) - :stderr(Command.PIPED) - :output() - if err_code ~= nil then - ya.notify({ - title = "Failed to run ouch command", - content = "Status: " .. err_code, - timeout = 5.0, - level = "error", - }) - elseif not cmd_output.status.success then - ya.notify({ - title = "Compression failed: status code " .. cmd_output.status.code, - content = cmd_output.stderr, - timeout = 5.0, - level = "error", - }) - end -end - -function M:entry(args) - local default_fmt = args[1] - - -- Get the files that need to be compressed and infer a default archive name - local paths, default_name = get_compression_target() - - -- Get archive name from user - local output_name, name_event = ya.input({ - title = "Create archive:", - value = default_name .. "." .. default_fmt, - position = { "top-center", y = 3, w = 40 }, - }) - if name_event ~= 1 then - return - end - - -- Get confirmation if file exists - if file_exists(output_name) then - local confirm, confirm_event = ya.input({ - title = "Overwrite " .. output_name .. "? (y/N)", - position = { "top-center", y = 3, w = 40 }, - }) - if not (confirm_event == 1 and confirm:lower() == "y") then - return - end - end - - invoke_compress_command(paths, output_name) -end - -return M diff --git a/archive/yazi/plugins/starship.yazi/LICENSE b/archive/yazi/plugins/starship.yazi/LICENSE deleted file mode 100644 index c03ce66..0000000 --- a/archive/yazi/plugins/starship.yazi/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2024 Rolv Apneseth - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/archive/yazi/plugins/starship.yazi/README.md b/archive/yazi/plugins/starship.yazi/README.md deleted file mode 100644 index cc75d15..0000000 --- a/archive/yazi/plugins/starship.yazi/README.md +++ /dev/null @@ -1,99 +0,0 @@ -# starship.yazi - -Starship prompt plugin for [Yazi](https://github.com/sxyazi/yazi) - - - -## Requirements - -- [Yazi](https://github.com/sxyazi/yazi) - latest main branch -- [starship](https://github.com/starship/starship) - -### Package manager - -```bash -ya pack -a Rolv-Apneseth/starship -``` - -### Manual - -#### Linux / MacOS - -```sh -git clone https://github.com/Rolv-Apneseth/starship.yazi.git ~/.config/yazi/plugins/starship.yazi -``` - -#### Windows - -```sh -git clone https://github.com/Rolv-Apneseth/starship.yazi.git %AppData%\yazi\config\plugins\starship.yazi -``` - -## Usage - -Add this to `~/.config/yazi/init.lua`: - -```lua -require("starship"):setup() -``` - -Make sure you have [starship](https://github.com/starship/starship) installed and in your `PATH`. - -## Extra - -If you use a `starship` theme with a background colour, it might look a bit to cramped on just the one line `Yazi` gives the header by default. To fix this, you can add this to your `init.lua`: - -
-Click to expand - -```lua -local old_build = Tab.build -Tab.build = function(self, ...) - local bar = function(c, x, y) - if x <= 0 or x == self._area.w - 1 then - return ui.Bar(ui.Rect.default, ui.Bar.TOP) - end - - return ui.Bar( - ui.Rect({ - x = x, - y = math.max(0, y), - w = ya.clamp(0, self._area.w - x, 1), - h = math.min(1, self._area.h), - }), - ui.Bar.TOP - ):symbol(c) - end - - local c = self._chunks - self._chunks = { - c[1]:padding(ui.Padding.y(1)), - c[2]:padding(ui.Padding(c[1].w > 0 and 0 or 1, c[3].w > 0 and 0 or 1, 1, 1)), - c[3]:padding(ui.Padding.y(1)), - } - - local style = THEME.manager.border_style - self._base = ya.list_merge(self._base or {}, { - -- Enable for full border - --[[ ui.Border(self._area, ui.Border.ALL):type(ui.Border.ROUNDED):style(style), ]] - ui.Bar(self._chunks[1], ui.Bar.RIGHT):style(style), - ui.Bar(self._chunks[3], ui.Bar.LEFT):style(style), - - bar("┬", c[1].right - 1, c[1].y), - bar("┴", c[1].right - 1, c[1].bottom - 1), - bar("┬", c[2].right, c[2].y), - bar("┴", c[2].right, c[1].bottom - 1), - }) - - old_build(self, ...) -end -``` - -
- -> [!NOTE] -> This works by overriding your `Tab.build` function so make sure this is the only place you're doing that in your config. For example, this would be incompatible with the [full-border plugin](https://github.com/yazi-rs/plugins/tree/main/full-border.yazi) - -## Thanks - -- [sxyazi](https://github.com/sxyazi) for providing the code for this plugin and the demo video [in this comment](https://github.com/sxyazi/yazi/issues/767#issuecomment-1977082834) diff --git a/archive/yazi/plugins/starship.yazi/init.lua b/archive/yazi/plugins/starship.yazi/init.lua deleted file mode 100644 index 87d97c0..0000000 --- a/archive/yazi/plugins/starship.yazi/init.lua +++ /dev/null @@ -1,28 +0,0 @@ -local save = ya.sync(function(st, cwd, output) - if cx.active.current.cwd == Url(cwd) then - st.output = output - ya.render() - end -end) - -return { - setup = function(st) - Header:children_remove(1, Header.LEFT) - Header:children_add(function() return ui.Line.parse(st.output or "") end, 1000, Header.LEFT) - - ps.sub("cd", function() - local cwd = cx.active.current.cwd - if st.cwd ~= cwd then - st.cwd = cwd - ya.manager_emit("plugin", { st._id, args = ya.quote(tostring(cwd), true) }) - end - end) - end, - - entry = function(_, args) - local output = Command("starship"):arg("prompt"):cwd(args[1]):env("STARSHIP_SHELL", ""):output() - if output then - save(args[1], output.stdout:gsub("^%s+", "")) - end - end, -} diff --git a/archive/yazi/yazi.nix b/archive/yazi/yazi.nix deleted file mode 100644 index f6052bf..0000000 --- a/archive/yazi/yazi.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ pkgs, ... }: { - - # yazi хуже ranger для моих потребностей, стоит на тесты. Ниже один из примеров, где yazi уступает - # Если открыть картинку через yazi, то он просто передаст картинку или каталог в качестве аргумента, - # из-за чего сортировка при пролистывании картинок будет "рандомной" - # Если же открыть картинку через ranger, то в качетве аргумента он передаст список файлов, - # где они отсортированы в том порядке, в котором отображаются у меня на экране в самом ranger - - home = { - packages = with pkgs; [ - ffmpegthumbnailer # for video thumbnails - unar # for archive preview - jq # for JSON preview - poppler # for PDF preview - fd # for file searching - ripgrep # for file content searching - fzf # for quick file subtree navigation - zoxide # for historical directories navigation - xclip # for system clipboard support on x11 - #xsel # как xclip, но вроде как функционал больше - #wl-clipboard # for system clipboard support on wayland - - # for plugins - exiftool # for exifaudio.yazi - glow # for glow.yazi - ouch # for ouch.yazi - miller # for miller.yazi - starship # for starship.yazi - ]; - - file = { - ".config/yazi/yazi.toml".source = ./yazi.toml; - ".config/yazi/keymap.toml".source = ./keymap.toml; - ".config/yazi/plugins".source = ./plugins; # https://yazi-rs.github.io/docs/resources/#functional - }; - }; - - programs.yazi = { # Файловый менеджер в терминале https://yazi-rs.github.io/features - enable = true; - - enableBashIntegration = true; - enableZshIntegration = true; - # enableFishIntegration = true; - # enableNushellIntegration = true; - }; -} \ No newline at end of file diff --git a/archive/yazi/yazi.toml b/archive/yazi/yazi.toml deleted file mode 100644 index c89a599..0000000 --- a/archive/yazi/yazi.toml +++ /dev/null @@ -1,33 +0,0 @@ -# Тут будут мои настройки - -[manager] -sort_by = "natural" # Как алфавит, но не "1 < 10 < 2", а "1 < 2 < 10" -sort_dir_first = true # Чтоб директории были первыми, не смотря на сортировку -#show_hidden = true # Показывать скрытые файлы. Спорно, потому что они первые в списке, бесит. Мб проще бинд юзать - -[plugin] -prepend_previewers = [ - # Preview markdown files - { name = "*.md", run = "glow" }, - # Preview audio metadata and cover - { mime = "audio/*", run = "exifaudio"}, - # Preview csv files - { mime = "text/csv", run = "miller"}, - # Preview archives - { mime = "application/*zip", run = "ouch" }, - { mime = "application/x-tar", run = "ouch" }, - { mime = "application/x-bzip2", run = "ouch" }, - { mime = "application/x-7z-compressed", run = "ouch" }, - { mime = "application/x-rar", run = "ouch" }, - { mime = "application/x-xz", run = "ouch" }, -] - -[opener] -view = [ - { run = 'imv "$@"', desc = "View selected images", orphan = true }, -] - -[open] -prepend_rules = [ # Чтоб мои настройки были в приоритете - { mime = "image/*", use = "view" }, -] \ No newline at end of file diff --git a/nixos/packages.nix b/nixos/packages.nix index 36bf607..8df7874 100644 --- a/nixos/packages.nix +++ b/nixos/packages.nix @@ -447,9 +447,8 @@ ## Design ## ############ - inputs.affinity-nix.packages.${pkgs.system}.v3 - # krita # Рисовать 1. Часто крашится - # pkgs2.gimp3 # Рисовать 2. Потом выберу что оставить + inputs.affinity-nix.packages.${pkgs.system}.v3 # Бесплатная замена photoshop через wine + krita # Рисовать pkgs2.davinci-resolve # Рендер видео. Проприетарное, бесплатная версия blender-hip # 3д графика и рендер видео gcolor3 # GUI color picker @@ -462,6 +461,7 @@ obsidian # Заметки pkgs2.planify # Task manager + pkgs2.ticktick # Powerful to-do app, proprietary ######### ## IDE ##