From e57cdd246cb45f1bb6fd683aa16fe6ba7baa7bc9 Mon Sep 17 00:00:00 2001 From: dichgrem Date: Tue, 22 Jul 2025 12:18:15 +0800 Subject: [PATCH] Init:start-nix --- .gitattributes | 1 + .gitignore | 3 + Justfile | 97 + README.md | 23 +- .../catppuccin-mocha-lavender.kvconfig | 467 +++ .../catppuccin-mocha-lavender.svg | 1958 +++++++++ dotfiles/.config/Kvantum/kvantum.kvconfig | 2 + dotfiles/.config/alacritty/alacritty.toml | 133 + .../.config/alacritty/catppuccin-mocha.toml | 65 + .../aria2/AriaNg-1.3.10-AllInOne/LICENSE | 21 + .../aria2/AriaNg-1.3.10-AllInOne/index | 559 +++ dotfiles/.config/aria2/aria2.conf | 9 + dotfiles/.config/atuin/config.toml | 10 + dotfiles/.config/bat/config | 1 + .../bat/themes/Catppuccin Mocha.tmTheme | 2059 +++++++++ dotfiles/.config/btop/btop.conf | 254 ++ .../btop/themes/catppuccin_frappe.theme | 83 + .../btop/themes/catppuccin_latte.theme | 84 + .../btop/themes/catppuccin_macchiato.theme | 83 + .../btop/themes/catppuccin_mocha.theme | 83 + .../.config/easyeffects/output/Prime.json | 172 + .../.config/easyeffects/output/Speaker.json | 18 + dotfiles/.config/fastfetch/config.jsonc | 181 + dotfiles/.config/fcitx5/conf/cached_layouts | 3705 +++++++++++++++++ dotfiles/.config/fcitx5/conf/classicui.conf | 35 + dotfiles/.config/fcitx5/conf/clipboard.conf | 13 + dotfiles/.config/fcitx5/conf/keyboard.conf | 29 + .../.config/fcitx5/conf/notifications.conf | 3 + dotfiles/.config/fcitx5/conf/quickphrase.conf | 9 + dotfiles/.config/fcitx5/conf/rime.conf | 13 + dotfiles/.config/fcitx5/conf/spell.conf | 5 + dotfiles/.config/fcitx5/conf/wayland.conf | 3 + dotfiles/.config/fcitx5/config | 73 + dotfiles/.config/fcitx5/profile | 23 + dotfiles/.config/fuzzel/fuzzel.ini | 21 + dotfiles/.config/hypr/hyprland/autostart.conf | 9 + dotfiles/.config/hypr/hyprland/basic.conf | 136 + dotfiles/.config/hypr/hyprland/bind.conf | 178 + dotfiles/.config/hypr/hyprlock.conf | 77 + dotfiles/.config/hypr/theme.conf | 79 + dotfiles/.config/keepassxc/keepassxc.ini | 31 + dotfiles/.config/kwalletrc | 14 + dotfiles/.config/nushell/config.nu | 821 ++++ dotfiles/.config/nushell/env.nu | 57 + .../basic/profiles/Untitled/basic.ini | 113 + .../obs-studio/basic/scenes/Untitled.json | 247 ++ .../obs-studio/basic/scenes/Untitled.json.bak | 247 ++ dotfiles/.config/obs-studio/global.ini | 19 + .../rtmp-services/amazon_ivs_ingests.json | 625 +++ .../plugin_config/rtmp-services/package.json | 11 + .../plugin_config/rtmp-services/services.json | 3586 ++++++++++++++++ .../rtmp-services/twitch_ingests.json | 625 +++ dotfiles/.config/obs-studio/user.ini | 68 + .../colors/catppuccin-mocha-lavender.conf | 4 + dotfiles/.config/qt5ct/qt5ct.conf | 35 + .../colors/catppuccin-mocha-lavender.conf | 4 + dotfiles/.config/qt6ct/qt6ct.conf | 35 + dotfiles/.config/starship.toml | 80 + dotfiles/.config/strawberry/strawberry.conf | 415 ++ dotfiles/.config/swappy/config | 11 + dotfiles/.config/waybar/config.jsonc | 171 + dotfiles/.config/waybar/mocha.css | 26 + .../.config/waybar/scripts/Screenshot-Area.sh | 3 + .../waybar/scripts/Screenshot-Fullscreen.sh | 3 + .../scripts/Screenshot-Hyprland-Window.sh | 3 + .../.config/waybar/scripts/Screenshot-OCR.sh | 4 + .../waybar/scripts/Screenshot-sway-Window.sh | 3 + dotfiles/.config/waybar/style.css | 133 + dotfiles/.config/wlogout/layout | 36 + dotfiles/.config/xarchiver/xarchiverrc | 29 + dotfiles/.config/zed/keymap.json | 18 + dotfiles/.config/zed/settings.json | 65 + dotfiles/.config/zellij/config.kdl | 466 +++ .../catppuccin-mocha-flamingo/arrow.png | Bin 0 -> 694 bytes .../catppuccin-mocha-flamingo/radio.png | Bin 0 -> 617 bytes .../catppuccin-mocha-flamingo/theme.conf | 110 + dotfiles/.local/share/oculante/config.json | 66 + dotfiles/.local/share/wallpapers/nixos-1.png | Bin 0 -> 43317 bytes flake.lock | 837 ++++ flake.nix | 27 + home/cli/alejandra.nix | 5 + home/cli/atuin.nix | 5 + home/cli/deadnix.nix | 5 + home/cli/direnv.nix | 6 + home/cli/expect.nix | 5 + home/cli/fastfetch.nix | 5 + home/cli/fd.nix | 6 + home/cli/fzf.nix | 5 + home/cli/just.nix | 5 + home/cli/nom.nix | 5 + home/cli/nushell.nix | 5 + home/cli/onefetch.nix | 5 + home/cli/ripgrep.nix | 5 + home/cli/starship.nix | 5 + home/cli/tesseract.nix | 5 + home/cli/zoxide.nix | 5 + home/default.nix | 35 + home/gui/archiver/peazip.nix | 5 + home/gui/browser/floorp.nix | 52 + home/gui/code-editor&IDE/zed-editor.nix | 82 + home/gui/communication/legcord.nix | 5 + home/gui/communication/materialgram.nix | 5 + home/gui/ebook-reader/foliate.nix | 5 + home/gui/file-manager/nemo.nix | 14 + home/gui/file-sync/syncthingtray.nix | 6 + home/gui/image-viewer/oculante.nix | 5 + home/gui/localsend/localsend.nix | 5 + home/gui/media-player/vlc.nix | 5 + home/gui/music-player/strawberry.nix | 5 + home/gui/office/onlyoffice.nix | 5 + home/gui/password-manager/keepassxc.nix | 6 + home/gui/screencast/obs-studio.nix | 5 + home/gui/terminal/alacritty.nix | 5 + .../virtual-machine-manager/virt-manager.nix | 21 + home/tui/btop.nix | 5 + home/tui/nixvim/keymaps.nix | 225 + home/tui/nixvim/nixvim.nix | 61 + home/tui/nixvim/opts.nix | 44 + home/tui/nixvim/plugins/autopairs.nix | 10 + home/tui/nixvim/plugins/bufferline.nix | 175 + home/tui/nixvim/plugins/conform.nix | 44 + home/tui/nixvim/plugins/edgy.nix | 7 + home/tui/nixvim/plugins/indent-blankline.nix | 7 + home/tui/nixvim/plugins/lint.nix | 34 + home/tui/nixvim/plugins/lsp.nix | 125 + home/tui/nixvim/plugins/mini.nix | 23 + home/tui/nixvim/plugins/nvim-cmp.nix | 56 + home/tui/nixvim/plugins/nvim-tree.nix | 17 + home/tui/nixvim/plugins/telescope.nix | 137 + home/tui/nixvim/plugins/toggleterm.nix | 66 + home/tui/nixvim/plugins/treesitter.nix | 35 + home/tui/nixvim/plugins/ui.nix | 189 + home/tui/nixvim/plugins/which-key.nix | 43 + home/tui/termshark.nix | 5 + home/tui/zellij.nix | 5 + home/wayland/blueman-applet.nix | 5 + home/wayland/brightnessctl.nix | 5 + home/wayland/easyeffects.nix | 3 + home/wayland/fcitx5.nix | 25 + home/wayland/fuzzel.nix | 5 + home/wayland/hyprland.nix | 60 + home/wayland/hyprlock.nix | 5 + home/wayland/hyprpolkitagent.nix | 3 + home/wayland/linux-wifi-hotspot.nix | 15 + home/wayland/nm-applet.nix | 5 + home/wayland/playerctl.nix | 5 + home/wayland/pwvucontrol.nix | 5 + home/wayland/screenshot.nix | 8 + home/wayland/swaync.nix | 3 + home/wayland/swayosd.nix | 5 + home/wayland/swww.nix | 5 + home/wayland/theme.nix | 51 + home/wayland/waybar.nix | 5 + home/wayland/waytrogen.nix | 5 + home/wayland/wl-clipboard-rs.nix | 5 + home/wayland/wl-gammarelay-rs.nix | 5 + home/wayland/wlogout.nix | 5 + home/wayland/xdg.nix | 106 + hosts/default.nix | 21 + hosts/example/default.nix | 32 + hosts/example/env.nix | 66 + hosts/example/hardware.nix | 39 + install.sh | 68 + modules/drivers/amd-gpu.nix | 14 + modules/drivers/bluetooth.nix | 16 + modules/services/audio.nix | 13 + modules/services/daed.nix | 14 + modules/services/ddm.nix | 29 + modules/services/keyd.nix | 25 + modules/services/misc.nix | 13 + modules/services/ntp.nix | 22 + modules/services/qemu.nix | 16 + modules/system/bootstrap.nix | 148 + modules/system/environment.nix | 83 + modules/system/minimize.nix | 70 + modules/system/nix.nix | 50 + modules/system/stylix.nix | 52 + modules/system/zfs.nix | 42 + 178 files changed, 22667 insertions(+), 1 deletion(-) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 Justfile create mode 100644 dotfiles/.config/Kvantum/catppuccin-mocha-lavender/catppuccin-mocha-lavender.kvconfig create mode 100644 dotfiles/.config/Kvantum/catppuccin-mocha-lavender/catppuccin-mocha-lavender.svg create mode 100644 dotfiles/.config/Kvantum/kvantum.kvconfig create mode 100644 dotfiles/.config/alacritty/alacritty.toml create mode 100644 dotfiles/.config/alacritty/catppuccin-mocha.toml create mode 100644 dotfiles/.config/aria2/AriaNg-1.3.10-AllInOne/LICENSE create mode 100644 dotfiles/.config/aria2/AriaNg-1.3.10-AllInOne/index create mode 100644 dotfiles/.config/aria2/aria2.conf create mode 100644 dotfiles/.config/atuin/config.toml create mode 100644 dotfiles/.config/bat/config create mode 100644 dotfiles/.config/bat/themes/Catppuccin Mocha.tmTheme create mode 100644 dotfiles/.config/btop/btop.conf create mode 100644 dotfiles/.config/btop/themes/catppuccin_frappe.theme create mode 100644 dotfiles/.config/btop/themes/catppuccin_latte.theme create mode 100644 dotfiles/.config/btop/themes/catppuccin_macchiato.theme create mode 100644 dotfiles/.config/btop/themes/catppuccin_mocha.theme create mode 100644 dotfiles/.config/easyeffects/output/Prime.json create mode 100644 dotfiles/.config/easyeffects/output/Speaker.json create mode 100644 dotfiles/.config/fastfetch/config.jsonc create mode 100644 dotfiles/.config/fcitx5/conf/cached_layouts create mode 100644 dotfiles/.config/fcitx5/conf/classicui.conf create mode 100644 dotfiles/.config/fcitx5/conf/clipboard.conf create mode 100644 dotfiles/.config/fcitx5/conf/keyboard.conf create mode 100644 dotfiles/.config/fcitx5/conf/notifications.conf create mode 100644 dotfiles/.config/fcitx5/conf/quickphrase.conf create mode 100644 dotfiles/.config/fcitx5/conf/rime.conf create mode 100644 dotfiles/.config/fcitx5/conf/spell.conf create mode 100644 dotfiles/.config/fcitx5/conf/wayland.conf create mode 100644 dotfiles/.config/fcitx5/config create mode 100644 dotfiles/.config/fcitx5/profile create mode 100644 dotfiles/.config/fuzzel/fuzzel.ini create mode 100644 dotfiles/.config/hypr/hyprland/autostart.conf create mode 100644 dotfiles/.config/hypr/hyprland/basic.conf create mode 100644 dotfiles/.config/hypr/hyprland/bind.conf create mode 100644 dotfiles/.config/hypr/hyprlock.conf create mode 100644 dotfiles/.config/hypr/theme.conf create mode 100644 dotfiles/.config/keepassxc/keepassxc.ini create mode 100644 dotfiles/.config/kwalletrc create mode 100644 dotfiles/.config/nushell/config.nu create mode 100644 dotfiles/.config/nushell/env.nu create mode 100644 dotfiles/.config/obs-studio/basic/profiles/Untitled/basic.ini create mode 100644 dotfiles/.config/obs-studio/basic/scenes/Untitled.json create mode 100644 dotfiles/.config/obs-studio/basic/scenes/Untitled.json.bak create mode 100644 dotfiles/.config/obs-studio/global.ini create mode 100644 dotfiles/.config/obs-studio/plugin_config/rtmp-services/amazon_ivs_ingests.json create mode 100644 dotfiles/.config/obs-studio/plugin_config/rtmp-services/package.json create mode 100644 dotfiles/.config/obs-studio/plugin_config/rtmp-services/services.json create mode 100644 dotfiles/.config/obs-studio/plugin_config/rtmp-services/twitch_ingests.json create mode 100644 dotfiles/.config/obs-studio/user.ini create mode 100644 dotfiles/.config/qt5ct/colors/catppuccin-mocha-lavender.conf create mode 100644 dotfiles/.config/qt5ct/qt5ct.conf create mode 100644 dotfiles/.config/qt6ct/colors/catppuccin-mocha-lavender.conf create mode 100644 dotfiles/.config/qt6ct/qt6ct.conf create mode 100644 dotfiles/.config/starship.toml create mode 100644 dotfiles/.config/strawberry/strawberry.conf create mode 100644 dotfiles/.config/swappy/config create mode 100644 dotfiles/.config/waybar/config.jsonc create mode 100644 dotfiles/.config/waybar/mocha.css create mode 100644 dotfiles/.config/waybar/scripts/Screenshot-Area.sh create mode 100644 dotfiles/.config/waybar/scripts/Screenshot-Fullscreen.sh create mode 100644 dotfiles/.config/waybar/scripts/Screenshot-Hyprland-Window.sh create mode 100644 dotfiles/.config/waybar/scripts/Screenshot-OCR.sh create mode 100644 dotfiles/.config/waybar/scripts/Screenshot-sway-Window.sh create mode 100644 dotfiles/.config/waybar/style.css create mode 100644 dotfiles/.config/wlogout/layout create mode 100644 dotfiles/.config/xarchiver/xarchiverrc create mode 100644 dotfiles/.config/zed/keymap.json create mode 100644 dotfiles/.config/zed/settings.json create mode 100644 dotfiles/.config/zellij/config.kdl create mode 100644 dotfiles/.local/share/fcitx5/themes/catppuccin-mocha-flamingo/arrow.png create mode 100644 dotfiles/.local/share/fcitx5/themes/catppuccin-mocha-flamingo/radio.png create mode 100644 dotfiles/.local/share/fcitx5/themes/catppuccin-mocha-flamingo/theme.conf create mode 100644 dotfiles/.local/share/oculante/config.json create mode 100644 dotfiles/.local/share/wallpapers/nixos-1.png create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 home/cli/alejandra.nix create mode 100644 home/cli/atuin.nix create mode 100644 home/cli/deadnix.nix create mode 100644 home/cli/direnv.nix create mode 100644 home/cli/expect.nix create mode 100644 home/cli/fastfetch.nix create mode 100644 home/cli/fd.nix create mode 100644 home/cli/fzf.nix create mode 100644 home/cli/just.nix create mode 100644 home/cli/nom.nix create mode 100644 home/cli/nushell.nix create mode 100644 home/cli/onefetch.nix create mode 100644 home/cli/ripgrep.nix create mode 100644 home/cli/starship.nix create mode 100644 home/cli/tesseract.nix create mode 100644 home/cli/zoxide.nix create mode 100644 home/default.nix create mode 100644 home/gui/archiver/peazip.nix create mode 100644 home/gui/browser/floorp.nix create mode 100644 home/gui/code-editor&IDE/zed-editor.nix create mode 100644 home/gui/communication/legcord.nix create mode 100644 home/gui/communication/materialgram.nix create mode 100644 home/gui/ebook-reader/foliate.nix create mode 100644 home/gui/file-manager/nemo.nix create mode 100644 home/gui/file-sync/syncthingtray.nix create mode 100644 home/gui/image-viewer/oculante.nix create mode 100644 home/gui/localsend/localsend.nix create mode 100644 home/gui/media-player/vlc.nix create mode 100644 home/gui/music-player/strawberry.nix create mode 100644 home/gui/office/onlyoffice.nix create mode 100644 home/gui/password-manager/keepassxc.nix create mode 100644 home/gui/screencast/obs-studio.nix create mode 100644 home/gui/terminal/alacritty.nix create mode 100644 home/gui/virtual-machine-manager/virt-manager.nix create mode 100644 home/tui/btop.nix create mode 100644 home/tui/nixvim/keymaps.nix create mode 100644 home/tui/nixvim/nixvim.nix create mode 100644 home/tui/nixvim/opts.nix create mode 100755 home/tui/nixvim/plugins/autopairs.nix create mode 100644 home/tui/nixvim/plugins/bufferline.nix create mode 100755 home/tui/nixvim/plugins/conform.nix create mode 100644 home/tui/nixvim/plugins/edgy.nix create mode 100755 home/tui/nixvim/plugins/indent-blankline.nix create mode 100755 home/tui/nixvim/plugins/lint.nix create mode 100755 home/tui/nixvim/plugins/lsp.nix create mode 100755 home/tui/nixvim/plugins/mini.nix create mode 100755 home/tui/nixvim/plugins/nvim-cmp.nix create mode 100644 home/tui/nixvim/plugins/nvim-tree.nix create mode 100755 home/tui/nixvim/plugins/telescope.nix create mode 100644 home/tui/nixvim/plugins/toggleterm.nix create mode 100755 home/tui/nixvim/plugins/treesitter.nix create mode 100644 home/tui/nixvim/plugins/ui.nix create mode 100755 home/tui/nixvim/plugins/which-key.nix create mode 100644 home/tui/termshark.nix create mode 100644 home/tui/zellij.nix create mode 100644 home/wayland/blueman-applet.nix create mode 100644 home/wayland/brightnessctl.nix create mode 100644 home/wayland/easyeffects.nix create mode 100644 home/wayland/fcitx5.nix create mode 100644 home/wayland/fuzzel.nix create mode 100644 home/wayland/hyprland.nix create mode 100644 home/wayland/hyprlock.nix create mode 100644 home/wayland/hyprpolkitagent.nix create mode 100644 home/wayland/linux-wifi-hotspot.nix create mode 100644 home/wayland/nm-applet.nix create mode 100644 home/wayland/playerctl.nix create mode 100644 home/wayland/pwvucontrol.nix create mode 100644 home/wayland/screenshot.nix create mode 100644 home/wayland/swaync.nix create mode 100644 home/wayland/swayosd.nix create mode 100644 home/wayland/swww.nix create mode 100644 home/wayland/theme.nix create mode 100644 home/wayland/waybar.nix create mode 100644 home/wayland/waytrogen.nix create mode 100644 home/wayland/wl-clipboard-rs.nix create mode 100644 home/wayland/wl-gammarelay-rs.nix create mode 100644 home/wayland/wlogout.nix create mode 100644 home/wayland/xdg.nix create mode 100644 hosts/default.nix create mode 100644 hosts/example/default.nix create mode 100644 hosts/example/env.nix create mode 100644 hosts/example/hardware.nix create mode 100644 install.sh create mode 100644 modules/drivers/amd-gpu.nix create mode 100644 modules/drivers/bluetooth.nix create mode 100644 modules/services/audio.nix create mode 100644 modules/services/daed.nix create mode 100644 modules/services/ddm.nix create mode 100644 modules/services/keyd.nix create mode 100644 modules/services/misc.nix create mode 100644 modules/services/ntp.nix create mode 100644 modules/services/qemu.nix create mode 100644 modules/system/bootstrap.nix create mode 100644 modules/system/environment.nix create mode 100644 modules/system/minimize.nix create mode 100644 modules/system/nix.nix create mode 100644 modules/system/stylix.nix create mode 100644 modules/system/zfs.nix diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..1b218a7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +dotfiles/** linguist-vendored diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bfd0425 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.direnv +result +result/ diff --git a/Justfile b/Justfile new file mode 100644 index 0000000..fb304ff --- /dev/null +++ b/Justfile @@ -0,0 +1,97 @@ +# Set current hostname +hostname := `hostname` + +# Set current username +username := `whoami` + + +anywhere input: + # Perform nixos-anywhere install + nix run github:nix-community/nixos-anywhere -- --generate-hardware-config nixos-generate-config ./hosts/{{input}}/hardware.nix --flake .#{{input}} --target-host root@{{input}} + + +anywhere-lb input: + # Perform nixos-anywhere install (local builder) + nix run github:nix-community/nixos-anywhere -- --generate-hardware-config nixos-generate-config ./hosts/{{input}}/hardware.nix --flake .#{{input}} --target-host root@{{input}} --build-on local + + +anywhere-vm input: + # Test nixos-anywhere install in vm + nix run github:nix-community/nixos-anywhere -- --flake .#{{input}} --vm-test + + +build input: + # Build + sudo nixos-rebuild build --flake .#{{input}} --show-trace -L -v + + +build-vm input: + # Build a vm + sudo nixos-rebuild build-vm --flake .#{{input}} --show-trace -L -v + + +clean: + # Remove useless nix-channel files + sudo rm -rf /nix/var/nix/profiles/per-user/root/channels /root/.nix-defexpr/channels + + +format: + # Use alejandra and deadnix to format code + deadnix -e + alejandra . + + +gc: + # Do garbage-clean (remove unused packages, etc) + sudo nix profile wipe-history --older-than 7d --profile /nix/var/nix/profiles/system + sudo nix-collect-garbage --delete-old + + +ghc: + # Generate hardware.nix + nixos-generate-config --show-hardware-config > ./hosts/{{hostname}}/hardware.nix + + +install: + # Install this flake + bash install.sh + + +list: + # List system packages + nix-store -qR /run/current-system | cat + + +profile: + # Show system profile + sudo nix profile history --profile /nix/var/nix/profiles/system + + +switch input: + # Let system rebuild and switch + sudo nixos-rebuild switch --flake .#{{input}} --show-trace -L -v + + +update: + # Update flake.lock + nix flake update --extra-experimental-features flakes --extra-experimental-features nix-command --show-trace + + +upgrade: + # Let system totally upgrade + ## Set hostname and username in flake.nix + sed -i "/^\s*hostname[[:space:]]*=[[:space:]]*\"/s/\"\(.*\)\"/\"{{hostname}}\"/" ./flake.nix + sed -i "/^\s*username[[:space:]]*=[[:space:]]*\"/s/\"\(.*\)\"/\"{{username}}\"/" ./flake.nix + git add . + ## Rebuild the system + sudo nixos-rebuild switch --flake .#{{hostname}} --show-trace + + +upgrade-debug: + # Let system totally upgrade (deBug Mode) + ## Set hostname and username in flake.nix + sed -i "/^\s*hostname[[:space:]]*=[[:space:]]*\"/s/\"\(.*\)\"/\"{{hostname}}\"/" ./flake.nix + sed -i "/^\s*username[[:space:]]*=[[:space:]]*\"/s/\"\(.*\)\"/\"{{username}}\"/" ./flake.nix + git add . + ## Rebuild the system + sudo unbuffer nixos-rebuild switch --flake .#{{hostname}} --sudo --log-format internal-json --show-trace -L -v |& nom --json diff --git a/README.md b/README.md index 81e0acc..67fb767 100644 --- a/README.md +++ b/README.md @@ -1 +1,22 @@ -# DCGOS \ No newline at end of file +
+
+ +# DCGOS + +
+ +## Install + +``` +nix-shell -p git + +git clone https://github.com/Dichgrem/DCGOS.git && cd DCGOS && bash install.sh +``` +## Acknowledgements +- +- +- +- +- +- +- diff --git a/dotfiles/.config/Kvantum/catppuccin-mocha-lavender/catppuccin-mocha-lavender.kvconfig b/dotfiles/.config/Kvantum/catppuccin-mocha-lavender/catppuccin-mocha-lavender.kvconfig new file mode 100644 index 0000000..ee9cc6e --- /dev/null +++ b/dotfiles/.config/Kvantum/catppuccin-mocha-lavender/catppuccin-mocha-lavender.kvconfig @@ -0,0 +1,467 @@ +[%General] +author=elkrien based on Arc Dark style +comment=Catppuccin-Mocha-Lavender +combo_focus_rect=true +spread_menuitems=true +left_tabs=true +mirror_doc_tabs=true +scroll_width=8 +attach_active_tab=true +composite=false +menu_shadow_depth=7 +tooltip_shadow_depth=0 +splitter_width=7 +check_size=16 +slider_width=4 +slider_handle_width=18 +slider_handle_length=18 +textless_progressbar=false +menubar_mouse_tracking=true +slim_toolbars=false +toolbutton_style=1 +x11drag=menubar_and_primary_toolbar +double_click=false +translucent_windows=false +blurring=false +popup_blurring=false +opaque=kaffeine,kmplayer,subtitlecomposer,kdenlive,vlc,smplayer,smplayer2,avidemux,avidemux2_qt4,avidemux3_qt4,avidemux3_qt5,kamoso,QtCreator,VirtualBox,trojita,dragon,digikam,qmplay2 +group_toolbar_buttons=false +vertical_spin_indicators=false +fill_rubberband=false +spread_progressbar=true +merge_menubar_with_toolbar=true +small_icon_size=16 +large_icon_size=32 +button_icon_size=16 +scroll_arrows=false +iconless_pushbutton=true +toolbar_icon_size=16 +combo_as_lineedit=true +button_contents_shift=false +groupbox_top_label=true +inline_spin_indicators=true +joined_inactive_tabs=false +layout_spacing=2 +submenu_overlap=0 +tooltip_delay=-1 +animate_states=false +transient_scrollbar=false +alt_mnemonic=true +combo_menu=true +layout_margin=4 +no_window_pattern=false +respect_DE=true +scroll_min_extent=36 +scrollable_menu=false +scrollbar_in_view=false +spin_button_width=16 +submenu_delay=250 +tree_branch_line=true +progressbar_thickness=8 +click_behavior=0 +contrast=1.00 +dialog_button_layout=0 +drag_from_buttons=false +hide_combo_checkboxes=false +intensity=1.00 +no_inactiveness=false +reduce_menu_opacity=0 +reduce_window_opacity=10 +saturation=1.00 +shadowless_popup=false +transient_groove=false +menu_blur_radius=0 +tooltip_blur_radius=0 + +[GeneralColors] +window.color=#1E1E2E +base.color=#181825 +alt.base.color=#181825 +button.color=#313244 +light.color=#45475A +mid.light.color=#45475A +dark.color=#181825 +mid.color=#181825 +highlight.color=#B4BEFE +inactive.highlight.color=#B4BEFE +text.color=#CDD6F4 +window.text.color=#CDD6F4 +button.text.color=#CDD6F4 +disabled.text.color=#585B70 +tooltip.text.color=#CDD6F4 +highlight.text.color=#181825 +link.color=#F5E0DC +link.visited.color=#89B4FA + +[ItemView] +inherits=PanelButtonCommand +frame.element=itemview +interior.element=itemview +frame=true +interior=true +text.iconspacing=3 +text.toggle.color=#181825 + +[RadioButton] +inherits=PanelButtonCommand +frame=false +interior.element=radio + +[CheckBox] +inherits=PanelButtonCommand +frame=false +interior.element=checkbox + +[TreeExpander] +indicator.element=tree +indicator.size=8 + +[ToolTip] +frame.top=4 +frame.right=4 +frame.bottom=4 +frame.left=4 +frame=true + +[PanelButtonCommand] +inherits=PanelButtonCommand +interior.element=button +frame.element=button +text.normal.color=#CDD6F4 +text.focus.color=#CDD6F4 +text.press.color=#181825 +text.toggle.color=#181825 + +[PanelButtonTool] +inherits=PanelButtonCommand + +[DockTitle] +inherits=PanelButtonCommand +interior=false +frame=false +text.margin.top=5 +text.margin.bottom=5 +text.margin.left=5 +text.margin.right=5 +indicator.size=0 + +[Dock] +interior.element=toolbar +frame.element=toolbar +frame=true +interior=true + +[GroupBox] +inherits=PanelButtonCommand +interior.element=tabframe +interior=true +frame=false + +[Focus] +inherits=PanelButtonCommand +frame=true +frame.element=focus +frame.top=1 +frame.bottom=1 +frame.left=1 +frame.right=1 +frame.patternsize=20 + +[GenericFrame] +inherits=PanelButtonCommand +frame.element=common +frame.top=1 +frame.bottom=1 +frame.left=1 +frame.right=1 + +[Slider] +inherits=PanelButtonCommand +interior=true +frame.element=slider +interior.element=slider +frame.top=3 +frame.bottom=3 +frame.left=3 +frame.right=3 +focusFrame=true + +[SliderCursor] +inherits=PanelButtonCommand +interior=true +interior.element=slidercursor +frame=false + +[LineEdit] +inherits=PanelButtonCommand +frame.element=lineedit +interior.element=lineedit + +[IndicatorSpinBox] +inherits=LineEdit +frame.element=lineedit +interior.element=lineedit +frame.top=0 +frame.bottom=2 +frame.left=2 +frame.right=2 +indicator.size=8 + +[DropDownButton] +inherits=PanelButtonCommand +frame.top=2 +frame.bottom=2 +frame.left=0 +frame.right=1 +indicator.size=8 + +[ToolboxTab] +inherits=PanelButtonCommand +frame.element=tabframe +frame.top=1 +frame.bottom=1 +frame.left=1 +frame.right=1 + +[Tab] +inherits=PanelButtonCommand +interior.element=tab +frame.element=tab +frame.top=2 +frame.bottom=3 +frame.left=3 +frame.right=3 +indicator.size=10 +text.normal.color=#585B70 +text.focus.color=#CDD6F4 +text.press.color=#CDD6F4 +text.toggle.color=#CDD6F4 +focusFrame=true + +[TabBarFrame] +inherits=GenericFrame +frame=true +frame.element=tabBarFrame +interior=false +frame.top=4 +frame.bottom=4 +frame.left=4 +frame.right=4 + +[TabFrame] +inherits=PanelButtonCommand +frame.element=tabframe +interior.element=tabframe + +[Dialog] +inherits=TabBarFrame +frame.element=tabframe +interior=false +frame=false +frame.top=1 +frame.bottom=1 +frame.left=1 +frame.right=1 + +[HeaderSection] +inherits=PanelButtonCommand +interior.element=header +frame.element=header +frame.top=0 +frame.bottom=1 +frame.left=1 +frame.right=1 +frame.expansion=0 +text.normal.color=#CDD6F4 +text.focus.color=#B4BEFE +text.press.color=#CDD6F4 +text.toggle.color=#CDD6F4 +indicator.element=harrow + +[SizeGrip] +inherits=PanelButtonCommand +frame=false +interior=false +indicator.element=resize-grip +indicator.size=0 + +[Toolbar] +inherits=PanelButtonCommand +interior.element=menubar +frame.element=menubar +frame=true +frame.bottom=4 +frame.left=4 +frame.right=4 +text.normal.color=#CDD6F4 +text.focus.color=#CDD6F4 +text.press.color=#B4BEFE +text.toggle.color=#B4BEFE +text.bold=false + +[MenuBar] +inherits=PanelButtonCommand +frame.element=menubar +interior.element=menubar +frame.bottom=0 +text.normal.color=#CDD6F4 +frame.expansion=0 +text.bold=false + +[ToolbarButton] +frame.element=tbutton +interior.element=tbutton +indicator.element=arrow +text.normal.color=#CDD6F4 +text.focus.color=#CDD6F4 +text.press.color=#181825 +text.toggle.color=#181825 +text.bold=false + +[Scrollbar] +inherits=PanelButtonCommand +indicator.size=0 +interior=false +frame=false + +[ScrollbarGroove] +inherits=PanelButtonCommand +interior=false +frame=false + +[ScrollbarSlider] +inherits=PanelButtonCommand +interior=false +frame.element=scrollbarslider +frame.top=4 +frame.bottom=4 +frame.left=4 +frame.right=4 + +[ProgressbarContents] +inherits=PanelButtonCommand +frame=true +frame.element=progress-pattern +interior.element=progress-pattern +frame.top=2 +frame.bottom=2 +frame.left=2 +frame.right=2 + +[Progressbar] +inherits=PanelButtonCommand +frame.element=progress +interior.element=progress +frame.top=2 +frame.bottom=2 +frame.left=2 +frame.right=2 +text.margin=0 +text.normal.color=#CDD6F4 +text.focus.color=#CDD6F4 +text.press.color=#181825 +text.toggle.color=#181825 +text.bold=false +frame.expansion=18 + +[RadioButton] +inherits=PanelButtonCommand + +[Menu] +frame.element=menu +interior.element=menu +inherits=PanelButtonCommand +text.press.color=#181825 +text.toggle.color=#181825 +text.bold=false +frame.top=3 +frame.bottom=3 +frame.left=3 +frame.right=3 + +[MenuItem] +inherits=PanelButtonCommand +interior.element=menuitem +indicator.size=8 +text.focus.color=#CDD6F4 +text.press.color=#CDD6F4 + +[MenuBarItem] +inherits=PanelButtonCommand +interior.element=menubaritem +frame=false +text.margin.top=3 +text.margin.bottom=3 +text.margin.left=5 +text.margin.right=5 + +[StatusBar] +inherits=Toolbar +frame.element=toolbar +font.bold=true +text.normal.color=#CDD6F4 +frame=true +frame.top=0 +frame.bottom=0 + +[TitleBar] +inherits=PanelButtonCommand +frame=false +interior=false +text.margin.top=2 +text.margin.bottom=2 +text.margin.left=3 +text.margin.right=3 + +[ComboBox] +inherits=PanelButtonCommand +indicator.size=8 +frame.top=3 +frame.bottom=3 +frame.left=3 +frame.right=3 +text.margin.top=1 +text.margin.bottom=1 +text.margin.left=3 +text.margin.right=3 +text.toggle.color=#CDD6F4 + +[ToolboxTab] +inherits=PanelButtonCommand +text.normal.color=#CDD6F4 +text.press.color=#CDD6F4 +text.focus.color=#CDD6F4 + +[Hacks] +transparent_dolphin_view=false +blur_konsole=true +transparent_ktitle_label=false +transparent_menutitle=false +respect_darkness=true +kcapacitybar_as_progressbar=true +force_size_grip=false +iconless_pushbutton=true +iconless_menu=false +disabled_icon_opacity=100 +lxqtmainmenu_iconsize=0 +normal_default_pushbutton=true +single_top_toolbar=false +tint_on_mouseover=0 +transparent_pcmanfm_sidepane=false +transparent_pcmanfm_view=false +blur_translucent=false +centered_forms=false +kinetic_scrolling=false +middle_click_scroll=false +no_selection_tint=false +noninteger_translucency=false +style_vertical_toolbars=false +blur_only_active_window=false + +[Window] +interior=true +interior.element=window +frame.top=0 +frame.bottom=0 +frame.left=0 +frame.right=0 diff --git a/dotfiles/.config/Kvantum/catppuccin-mocha-lavender/catppuccin-mocha-lavender.svg b/dotfiles/.config/Kvantum/catppuccin-mocha-lavender/catppuccin-mocha-lavender.svg new file mode 100644 index 0000000..311513c --- /dev/null +++ b/dotfiles/.config/Kvantum/catppuccin-mocha-lavender/catppuccin-mocha-lavender.svg @@ -0,0 +1,1958 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dotfiles/.config/Kvantum/kvantum.kvconfig b/dotfiles/.config/Kvantum/kvantum.kvconfig new file mode 100644 index 0000000..bfb2462 --- /dev/null +++ b/dotfiles/.config/Kvantum/kvantum.kvconfig @@ -0,0 +1,2 @@ +[General] +theme=catppuccin-mocha-lavender diff --git a/dotfiles/.config/alacritty/alacritty.toml b/dotfiles/.config/alacritty/alacritty.toml new file mode 100644 index 0000000..844e8d6 --- /dev/null +++ b/dotfiles/.config/alacritty/alacritty.toml @@ -0,0 +1,133 @@ +[general] +live_config_reload = false +import = ["~/.config/alacritty/catppuccin-mocha.toml"] + +[env] +TERM = "xterm-256color" + +[window] +dynamic_padding = true +decorations = "None" + +[window.dimensions] +columns = 100 +lines = 30 + +[window.class] +instance = "Alacritty" +general = "Alacritty" + +[scrolling] +history = 10000 +multiplier = 3 + +[font] +size = 12 + +[font.normal] +family = "JetBrainsMono Nerd Font" +style = "Regular" + +[font.bold] +family = "JetBrainsMono Nerd Font" +style = "Bold" + +[font.italic] +family = "JetBrainsMono Nerd Font" +style = "Italic" + +[font.bold_italic] +family = "JetBrainsMono Nerd Font" +style = "Bold Italic" + +[selection] +semantic_escape_chars = ",│`|:\"' ()[]{}<>\t" +save_to_clipboard = true + +[cursor] +style = "Underline" +vi_mode_style = "None" +unfocused_hollow = true +thickness = 0.15 + +[mouse] +hide_when_typing = true + +[[mouse.bindings]] +mouse = "Middle" +action = "PasteSelection" + +[keyboard] +[[keyboard.bindings]] +key = "Paste" +action = "Paste" + +[[keyboard.bindings]] +key = "Copy" +action = "Copy" + +[[keyboard.bindings]] +key = "L" +mods = "Control" +action = "ClearLogNotice" + +[[keyboard.bindings]] +key = "L" +mods = "Control" +mode = "~Vi" +chars = "\f" + +[[keyboard.bindings]] +key = "PageUp" +mods = "Shift" +mode = "~Alt" +action = "ScrollPageUp" + +[[keyboard.bindings]] +key = "PageDown" +mods = "Shift" +mode = "~Alt" +action = "ScrollPageDown" + +[[keyboard.bindings]] +key = "Home" +mods = "Shift" +mode = "~Alt" +action = "ScrollToTop" + +[[keyboard.bindings]] +key = "End" +mods = "Shift" +mode = "~Alt" +action = "ScrollToBottom" + +[[keyboard.bindings]] +key = "V" +mods = "Control|Shift" +action = "Paste" + +[[keyboard.bindings]] +key = "C" +mods = "Control|Shift" +action = "Copy" + +[[keyboard.bindings]] +key = "F" +mods = "Control|Shift" +action = "SearchForward" + +[[keyboard.bindings]] +key = "B" +mods = "Control|Shift" +action = "SearchBackward" + +[[keyboard.bindings]] +key = "C" +mods = "Control|Shift" +mode = "Vi" +action = "ClearSelection" + +[[keyboard.bindings]] +key = "Key0" +mods = "Control" +action = "ResetFontSize" diff --git a/dotfiles/.config/alacritty/catppuccin-mocha.toml b/dotfiles/.config/alacritty/catppuccin-mocha.toml new file mode 100644 index 0000000..7762dcd --- /dev/null +++ b/dotfiles/.config/alacritty/catppuccin-mocha.toml @@ -0,0 +1,65 @@ +[colors.primary] +background = "#1e1e2e" +foreground = "#cdd6f4" +dim_foreground = "#7f849c" +bright_foreground = "#cdd6f4" + +[colors.cursor] +text = "#1e1e2e" +cursor = "#f5e0dc" + +[colors.vi_mode_cursor] +text = "#1e1e2e" +cursor = "#b4befe" + +[colors.search.matches] +foreground = "#1e1e2e" +background = "#a6adc8" + +[colors.search.focused_match] +foreground = "#1e1e2e" +background = "#a6e3a1" + +[colors.footer_bar] +foreground = "#1e1e2e" +background = "#a6adc8" + +[colors.hints.start] +foreground = "#1e1e2e" +background = "#f9e2af" + +[colors.hints.end] +foreground = "#1e1e2e" +background = "#a6adc8" + +[colors.selection] +text = "#1e1e2e" +background = "#f5e0dc" + +[colors.normal] +black = "#45475a" +red = "#f38ba8" +green = "#a6e3a1" +yellow = "#f9e2af" +blue = "#89b4fa" +magenta = "#f5c2e7" +cyan = "#94e2d5" +white = "#bac2de" + +[colors.bright] +black = "#585b70" +red = "#f38ba8" +green = "#a6e3a1" +yellow = "#f9e2af" +blue = "#89b4fa" +magenta = "#f5c2e7" +cyan = "#94e2d5" +white = "#a6adc8" + +[[colors.indexed_colors]] +index = 16 +color = "#fab387" + +[[colors.indexed_colors]] +index = 17 +color = "#f5e0dc" diff --git a/dotfiles/.config/aria2/AriaNg-1.3.10-AllInOne/LICENSE b/dotfiles/.config/aria2/AriaNg-1.3.10-AllInOne/LICENSE new file mode 100644 index 0000000..732ce99 --- /dev/null +++ b/dotfiles/.config/aria2/AriaNg-1.3.10-AllInOne/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016-2025 MaysWind (i@mayswind.net) + +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/dotfiles/.config/aria2/AriaNg-1.3.10-AllInOne/index b/dotfiles/.config/aria2/AriaNg-1.3.10-AllInOne/index new file mode 100644 index 0000000..56d5ff2 --- /dev/null +++ b/dotfiles/.config/aria2/AriaNg-1.3.10-AllInOne/index @@ -0,0 +1,559 @@ +AriaNg \ No newline at end of file diff --git a/dotfiles/.config/aria2/aria2.conf b/dotfiles/.config/aria2/aria2.conf new file mode 100644 index 0000000..10f2df0 --- /dev/null +++ b/dotfiles/.config/aria2/aria2.conf @@ -0,0 +1,9 @@ +enable-rpc=true +rpc-listen-all=true +rpc-allow-origin-all=true +rpc-listen-port=6800 +continue=true +dir=/home/dich/Downloads +input-file=/home/dich/.config/aria2/aria2.session +save-session=/home/dich/.config/aria2/aria2.session +save-session-interval=60 diff --git a/dotfiles/.config/atuin/config.toml b/dotfiles/.config/atuin/config.toml new file mode 100644 index 0000000..eedc858 --- /dev/null +++ b/dotfiles/.config/atuin/config.toml @@ -0,0 +1,10 @@ +enter_accept = true + +[sync] +records = true + +[preview] +strategy = "auto" + +[daemon] +enabled = false diff --git a/dotfiles/.config/bat/config b/dotfiles/.config/bat/config new file mode 100644 index 0000000..b7de378 --- /dev/null +++ b/dotfiles/.config/bat/config @@ -0,0 +1 @@ +--theme="Catppuccin Mocha" diff --git a/dotfiles/.config/bat/themes/Catppuccin Mocha.tmTheme b/dotfiles/.config/bat/themes/Catppuccin Mocha.tmTheme new file mode 100644 index 0000000..cd3a27b --- /dev/null +++ b/dotfiles/.config/bat/themes/Catppuccin Mocha.tmTheme @@ -0,0 +1,2059 @@ + + + + + name + Catppuccin Mocha + semanticClass + theme.dark.catppuccin-mocha + uuid + 627ce890-fabb-4d39-9819-7be71f4bdca7 + author + Catppuccin Org + colorSpaceName + sRGB + settings + + + settings + + background + #1e1e2e + foreground + #cdd6f4 + caret + #f5e0dc + lineHighlight + #313244 + misspelling + #f38ba8 + accent + #cba6f7 + selection + #9399b240 + activeGuide + #45475a + findHighlight + #3e5767 + gutterForeground + #7f849c + + + + name + Basic text & variable names (incl. leading punctuation) + scope + text, source, variable.other.readwrite, punctuation.definition.variable + settings + + foreground + #cdd6f4 + + + + name + Parentheses, Brackets, Braces + scope + punctuation + settings + + foreground + #9399b2 + fontStyle + + + + + name + Comments + scope + comment, punctuation.definition.comment + settings + + foreground + #6c7086 + fontStyle + italic + + + + scope + string, punctuation.definition.string + settings + + foreground + #a6e3a1 + + + + scope + constant.character.escape + settings + + foreground + #f5c2e7 + + + + name + Booleans, constants, numbers + scope + constant.numeric, variable.other.constant, entity.name.constant, constant.language.boolean, constant.language.false, constant.language.true, keyword.other.unit.user-defined, keyword.other.unit.suffix.floating-point + settings + + foreground + #fab387 + + + + scope + keyword, keyword.operator.word, keyword.operator.new, variable.language.super, support.type.primitive, storage.type, storage.modifier, punctuation.definition.keyword + settings + + foreground + #cba6f7 + fontStyle + + + + + scope + entity.name.tag.documentation + settings + + foreground + #cba6f7 + + + + name + Punctuation + scope + keyword.operator, punctuation.accessor, punctuation.definition.generic, meta.function.closure punctuation.section.parameters, punctuation.definition.tag, punctuation.separator.key-value + settings + + foreground + #94e2d5 + + + + scope + entity.name.function, meta.function-call.method, support.function, support.function.misc, variable.function + settings + + foreground + #89b4fa + fontStyle + italic + + + + name + Classes + scope + entity.name.class, entity.other.inherited-class, support.class, meta.function-call.constructor, entity.name.struct + settings + + foreground + #f9e2af + fontStyle + italic + + + + name + Enum + scope + entity.name.enum + settings + + foreground + #f9e2af + fontStyle + italic + + + + name + Enum member + scope + meta.enum variable.other.readwrite, variable.other.enummember + settings + + foreground + #94e2d5 + + + + name + Object properties + scope + meta.property.object + settings + + foreground + #94e2d5 + + + + name + Types + scope + meta.type, meta.type-alias, support.type, entity.name.type + settings + + foreground + #f9e2af + fontStyle + italic + + + + name + Decorators + scope + meta.annotation variable.function, meta.annotation variable.annotation.function, meta.annotation punctuation.definition.annotation, meta.decorator, punctuation.decorator + settings + + foreground + #fab387 + + + + scope + variable.parameter, meta.function.parameters + settings + + foreground + #eba0ac + fontStyle + italic + + + + name + Built-ins + scope + constant.language, support.function.builtin + settings + + foreground + #f38ba8 + + + + scope + entity.other.attribute-name.documentation + settings + + foreground + #f38ba8 + + + + name + Preprocessor directives + scope + keyword.control.directive, punctuation.definition.directive + settings + + foreground + #f9e2af + + + + name + Type parameters + scope + punctuation.definition.typeparameters + settings + + foreground + #89dceb + + + + name + Namespaces + scope + entity.name.namespace + settings + + foreground + #f9e2af + + + + name + Property names (left hand assignments in json/yaml/css) + scope + support.type.property-name.css + settings + + foreground + #89b4fa + fontStyle + + + + + name + This/Self keyword + scope + variable.language.this, variable.language.this punctuation.definition.variable + settings + + foreground + #f38ba8 + + + + name + Object properties + scope + variable.object.property + settings + + foreground + #cdd6f4 + + + + name + String template interpolation + scope + string.template variable, string variable + settings + + foreground + #cdd6f4 + + + + name + `new` as bold + scope + keyword.operator.new + settings + + fontStyle + bold + + + + name + C++ extern keyword + scope + storage.modifier.specifier.extern.cpp + settings + + foreground + #cba6f7 + + + + name + C++ scope resolution + scope + entity.name.scope-resolution.template.call.cpp, entity.name.scope-resolution.parameter.cpp, entity.name.scope-resolution.cpp, entity.name.scope-resolution.function.definition.cpp + settings + + foreground + #f9e2af + + + + name + C++ doc keywords + scope + storage.type.class.doxygen + settings + + fontStyle + + + + + name + C++ operators + scope + storage.modifier.reference.cpp + settings + + foreground + #94e2d5 + + + + name + C# Interpolated Strings + scope + meta.interpolation.cs + settings + + foreground + #cdd6f4 + + + + name + C# xml-style docs + scope + comment.block.documentation.cs + settings + + foreground + #cdd6f4 + + + + name + Classes, reflecting the className color in JSX + scope + source.css entity.other.attribute-name.class.css, entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css + settings + + foreground + #f9e2af + + + + name + Operators + scope + punctuation.separator.operator.css + settings + + foreground + #94e2d5 + + + + name + Pseudo classes + scope + source.css entity.other.attribute-name.pseudo-class + settings + + foreground + #94e2d5 + + + + scope + source.css constant.other.unicode-range + settings + + foreground + #fab387 + + + + scope + source.css variable.parameter.url + settings + + foreground + #a6e3a1 + fontStyle + + + + + name + CSS vendored property names + scope + support.type.vendored.property-name + settings + + foreground + #89dceb + + + + name + Less/SCSS right-hand variables (@/$-prefixed) + scope + source.css meta.property-value variable, source.css meta.property-value variable.other.less, source.css meta.property-value variable.other.less punctuation.definition.variable.less, meta.definition.variable.scss + settings + + foreground + #eba0ac + + + + name + CSS variables (--prefixed) + scope + source.css meta.property-list variable, meta.property-list variable.other.less, meta.property-list variable.other.less punctuation.definition.variable.less + settings + + foreground + #89b4fa + + + + name + CSS Percentage values, styled the same as numbers + scope + keyword.other.unit.percentage.css + settings + + foreground + #fab387 + + + + name + CSS Attribute selectors, styled the same as strings + scope + source.css meta.attribute-selector + settings + + foreground + #a6e3a1 + + + + name + JSON/YAML keys, other left-hand assignments + scope + keyword.other.definition.ini, punctuation.support.type.property-name.json, support.type.property-name.json, punctuation.support.type.property-name.toml, support.type.property-name.toml, entity.name.tag.yaml, punctuation.support.type.property-name.yaml, support.type.property-name.yaml + settings + + foreground + #89b4fa + fontStyle + + + + + name + JSON/YAML constants + scope + constant.language.json, constant.language.yaml + settings + + foreground + #fab387 + + + + name + YAML anchors + scope + entity.name.type.anchor.yaml, variable.other.alias.yaml + settings + + foreground + #f9e2af + fontStyle + + + + + name + TOML tables / ini groups + scope + support.type.property-name.table, entity.name.section.group-title.ini + settings + + foreground + #f9e2af + + + + name + TOML dates + scope + constant.other.time.datetime.offset.toml + settings + + foreground + #f5c2e7 + + + + name + YAML anchor puctuation + scope + punctuation.definition.anchor.yaml, punctuation.definition.alias.yaml + settings + + foreground + #f5c2e7 + + + + name + YAML triple dashes + scope + entity.other.document.begin.yaml + settings + + foreground + #f5c2e7 + + + + name + Markup Diff + scope + markup.changed.diff + settings + + foreground + #fab387 + + + + name + Diff + scope + meta.diff.header.from-file, meta.diff.header.to-file, punctuation.definition.from-file.diff, punctuation.definition.to-file.diff + settings + + foreground + #89b4fa + + + + name + Diff Inserted + scope + markup.inserted.diff + settings + + foreground + #a6e3a1 + + + + name + Diff Deleted + scope + markup.deleted.diff + settings + + foreground + #f38ba8 + + + + name + dotenv left-hand side assignments + scope + variable.other.env + settings + + foreground + #89b4fa + + + + name + dotenv reference to existing env variable + scope + string.quoted variable.other.env + settings + + foreground + #cdd6f4 + + + + name + GDScript functions + scope + support.function.builtin.gdscript + settings + + foreground + #89b4fa + + + + name + GDScript constants + scope + constant.language.gdscript + settings + + foreground + #fab387 + + + + name + Comment keywords + scope + comment meta.annotation.go + settings + + foreground + #eba0ac + + + + name + go:embed, go:build, etc. + scope + comment meta.annotation.parameters.go + settings + + foreground + #fab387 + + + + name + Go constants (nil, true, false) + scope + constant.language.go + settings + + foreground + #fab387 + + + + name + GraphQL variables + scope + variable.graphql + settings + + foreground + #cdd6f4 + + + + name + GraphQL aliases + scope + string.unquoted.alias.graphql + settings + + foreground + #f2cdcd + + + + name + GraphQL enum members + scope + constant.character.enum.graphql + settings + + foreground + #94e2d5 + + + + name + GraphQL field in types + scope + meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql + settings + + foreground + #f2cdcd + + + + name + HTML/XML DOCTYPE as keyword + scope + keyword.other.doctype, meta.tag.sgml.doctype punctuation.definition.tag, meta.tag.metadata.doctype entity.name.tag, meta.tag.metadata.doctype punctuation.definition.tag + settings + + foreground + #cba6f7 + + + + name + HTML/XML-like <tags/> + scope + entity.name.tag + settings + + foreground + #89b4fa + fontStyle + + + + + name + Special characters like &amp; + scope + text.html constant.character.entity, text.html constant.character.entity punctuation, constant.character.entity.xml, constant.character.entity.xml punctuation, constant.character.entity.js.jsx, constant.charactger.entity.js.jsx punctuation, constant.character.entity.tsx, constant.character.entity.tsx punctuation + settings + + foreground + #f38ba8 + + + + name + HTML/XML tag attribute values + scope + entity.other.attribute-name + settings + + foreground + #f9e2af + + + + name + Components + scope + support.class.component, support.class.component.jsx, support.class.component.tsx, support.class.component.vue + settings + + foreground + #f5c2e7 + fontStyle + + + + + name + Annotations + scope + punctuation.definition.annotation, storage.type.annotation + settings + + foreground + #fab387 + + + + name + Java enums + scope + constant.other.enum.java + settings + + foreground + #94e2d5 + + + + name + Java imports + scope + storage.modifier.import.java + settings + + foreground + #cdd6f4 + + + + name + Javadoc + scope + comment.block.javadoc.java keyword.other.documentation.javadoc.java + settings + + fontStyle + + + + + name + Exported Variable + scope + meta.export variable.other.readwrite.js + settings + + foreground + #eba0ac + + + + name + JS/TS constants & properties + scope + variable.other.constant.js, variable.other.constant.ts, variable.other.property.js, variable.other.property.ts + settings + + foreground + #cdd6f4 + + + + name + JSDoc; these are mainly params, so styled as such + scope + variable.other.jsdoc, comment.block.documentation variable.other + settings + + foreground + #eba0ac + fontStyle + + + + + name + JSDoc keywords + scope + storage.type.class.jsdoc + settings + + fontStyle + + + + + scope + support.type.object.console.js + settings + + foreground + #cdd6f4 + + + + name + Node constants as keywords (module, etc.) + scope + support.constant.node, support.type.object.module.js + settings + + foreground + #cba6f7 + + + + name + implements as keyword + scope + storage.modifier.implements + settings + + foreground + #cba6f7 + + + + name + Builtin types + scope + constant.language.null.js, constant.language.null.ts, constant.language.undefined.js, constant.language.undefined.ts, support.type.builtin.ts + settings + + foreground + #cba6f7 + + + + scope + variable.parameter.generic + settings + + foreground + #f9e2af + + + + name + Arrow functions + scope + keyword.declaration.function.arrow.js, storage.type.function.arrow.ts + settings + + foreground + #94e2d5 + + + + name + Decorator punctuations (decorators inherit from blue functions, instead of styleguide peach) + scope + punctuation.decorator.ts + settings + + foreground + #89b4fa + fontStyle + italic + + + + name + Extra JS/TS keywords + scope + keyword.operator.expression.in.js, keyword.operator.expression.in.ts, keyword.operator.expression.infer.ts, keyword.operator.expression.instanceof.js, keyword.operator.expression.instanceof.ts, keyword.operator.expression.is, keyword.operator.expression.keyof.ts, keyword.operator.expression.of.js, keyword.operator.expression.of.ts, keyword.operator.expression.typeof.ts + settings + + foreground + #cba6f7 + + + + name + Julia macros + scope + support.function.macro.julia + settings + + foreground + #94e2d5 + fontStyle + italic + + + + name + Julia language constants (true, false) + scope + constant.language.julia + settings + + foreground + #fab387 + + + + name + Julia other constants (these seem to be arguments inside arrays) + scope + constant.other.symbol.julia + settings + + foreground + #eba0ac + + + + name + LaTeX preamble + scope + text.tex keyword.control.preamble + settings + + foreground + #94e2d5 + + + + name + LaTeX be functions + scope + text.tex support.function.be + settings + + foreground + #89dceb + + + + name + LaTeX math + scope + constant.other.general.math.tex + settings + + foreground + #f2cdcd + + + + name + Lua docstring keywords + scope + comment.line.double-dash.documentation.lua storage.type.annotation.lua + settings + + foreground + #cba6f7 + fontStyle + + + + + name + Lua docstring variables + scope + comment.line.double-dash.documentation.lua entity.name.variable.lua, comment.line.double-dash.documentation.lua variable.lua + settings + + foreground + #cdd6f4 + + + + scope + heading.1.markdown punctuation.definition.heading.markdown, heading.1.markdown, markup.heading.atx.1.mdx, markup.heading.atx.1.mdx punctuation.definition.heading.mdx, markup.heading.setext.1.markdown, markup.heading.heading-0.asciidoc + settings + + foreground + #f38ba8 + + + + scope + heading.2.markdown punctuation.definition.heading.markdown, heading.2.markdown, markup.heading.atx.2.mdx, markup.heading.atx.2.mdx punctuation.definition.heading.mdx, markup.heading.setext.2.markdown, markup.heading.heading-1.asciidoc + settings + + foreground + #fab387 + + + + scope + heading.3.markdown punctuation.definition.heading.markdown, heading.3.markdown, markup.heading.atx.3.mdx, markup.heading.atx.3.mdx punctuation.definition.heading.mdx, markup.heading.heading-2.asciidoc + settings + + foreground + #f9e2af + + + + scope + heading.4.markdown punctuation.definition.heading.markdown, heading.4.markdown, markup.heading.atx.4.mdx, markup.heading.atx.4.mdx punctuation.definition.heading.mdx, markup.heading.heading-3.asciidoc + settings + + foreground + #a6e3a1 + + + + scope + heading.5.markdown punctuation.definition.heading.markdown, heading.5.markdown, markup.heading.atx.5.mdx, markup.heading.atx.5.mdx punctuation.definition.heading.mdx, markup.heading.heading-4.asciidoc + settings + + foreground + #89b4fa + + + + scope + heading.6.markdown punctuation.definition.heading.markdown, heading.6.markdown, markup.heading.atx.6.mdx, markup.heading.atx.6.mdx punctuation.definition.heading.mdx, markup.heading.heading-5.asciidoc + settings + + foreground + #cba6f7 + + + + scope + markup.bold + settings + + foreground + #f38ba8 + fontStyle + bold + + + + scope + markup.italic + settings + + foreground + #f38ba8 + fontStyle + italic + + + + scope + markup.strikethrough + settings + + foreground + #a6adc8 + fontStyle + strikethrough + + + + name + Markdown auto links + scope + punctuation.definition.link, markup.underline.link + settings + + foreground + #89b4fa + + + + name + Markdown links + scope + text.html.markdown punctuation.definition.link.title, string.other.link.title.markdown, markup.link, punctuation.definition.constant.markdown, constant.other.reference.link.markdown, markup.substitution.attribute-reference + settings + + foreground + #b4befe + + + + name + Markdown code spans + scope + punctuation.definition.raw.markdown, markup.inline.raw.string.markdown, markup.raw.block.markdown + settings + + foreground + #a6e3a1 + + + + name + Markdown triple backtick language identifier + scope + fenced_code.block.language + settings + + foreground + #89dceb + + + + name + Markdown triple backticks + scope + markup.fenced_code.block punctuation.definition, markup.raw support.asciidoc + settings + + foreground + #9399b2 + + + + name + Markdown quotes + scope + markup.quote, punctuation.definition.quote.begin + settings + + foreground + #f5c2e7 + + + + name + Markdown separators + scope + meta.separator.markdown + settings + + foreground + #94e2d5 + + + + name + Markdown list bullets + scope + punctuation.definition.list.begin.markdown, markup.list.bullet + settings + + foreground + #94e2d5 + + + + name + Nix attribute names + scope + entity.other.attribute-name.multipart.nix, entity.other.attribute-name.single.nix + settings + + foreground + #89b4fa + + + + name + Nix parameter names + scope + variable.parameter.name.nix + settings + + foreground + #cdd6f4 + fontStyle + + + + + name + Nix interpolated parameter names + scope + meta.embedded variable.parameter.name.nix + settings + + foreground + #b4befe + fontStyle + + + + + name + Nix paths + scope + string.unquoted.path.nix + settings + + foreground + #f5c2e7 + fontStyle + + + + + name + PHP Attributes + scope + support.attribute.builtin, meta.attribute.php + settings + + foreground + #f9e2af + + + + name + PHP Parameters (needed for the leading dollar sign) + scope + meta.function.parameters.php punctuation.definition.variable.php + settings + + foreground + #eba0ac + + + + name + PHP Constants (null, __FILE__, etc.) + scope + constant.language.php + settings + + foreground + #cba6f7 + + + + name + PHP functions + scope + text.html.php support.function + settings + + foreground + #89dceb + + + + name + PHPdoc keywords + scope + keyword.other.phpdoc.php + settings + + fontStyle + + + + + name + Python argument functions reset to text, otherwise they inherit blue from function-call + scope + support.variable.magic.python, meta.function-call.arguments.python + settings + + foreground + #cdd6f4 + + + + name + Python double underscore functions + scope + support.function.magic.python + settings + + foreground + #89dceb + fontStyle + italic + + + + name + Python `self` keyword + scope + variable.parameter.function.language.special.self.python, variable.language.special.self.python + settings + + foreground + #f38ba8 + fontStyle + italic + + + + name + python keyword flow/logical (for ... in) + scope + keyword.control.flow.python, keyword.operator.logical.python + settings + + foreground + #cba6f7 + + + + name + python storage type + scope + storage.type.function.python + settings + + foreground + #cba6f7 + + + + name + python function support + scope + support.token.decorator.python, meta.function.decorator.identifier.python + settings + + foreground + #89dceb + + + + name + python function calls + scope + meta.function-call.python + settings + + foreground + #89b4fa + + + + name + python function decorators + scope + entity.name.function.decorator.python, punctuation.definition.decorator.python + settings + + foreground + #fab387 + fontStyle + italic + + + + name + python placeholder reset to normal string + scope + constant.character.format.placeholder.other.python + settings + + foreground + #f5c2e7 + + + + name + Python exception & builtins such as exit() + scope + support.type.exception.python, support.function.builtin.python + settings + + foreground + #fab387 + + + + name + entity.name.type + scope + support.type.python + settings + + foreground + #fab387 + + + + name + python constants (True/False) + scope + constant.language.python + settings + + foreground + #cba6f7 + + + + name + Arguments accessed later in the function body + scope + meta.indexed-name.python, meta.item-access.python + settings + + foreground + #eba0ac + fontStyle + italic + + + + name + Python f-strings/binary/unicode storage types + scope + storage.type.string.python + settings + + foreground + #a6e3a1 + fontStyle + italic + + + + name + Python type hints + scope + meta.function.parameters.python + settings + + fontStyle + + + + + name + Regex string begin/end in JS/TS + scope + string.regexp punctuation.definition.string.begin, string.regexp punctuation.definition.string.end + settings + + foreground + #f5c2e7 + + + + name + Regex anchors (^, $) + scope + keyword.control.anchor.regexp + settings + + foreground + #cba6f7 + + + + name + Regex regular string match + scope + string.regexp.ts + settings + + foreground + #cdd6f4 + + + + name + Regex group parenthesis & backreference (\1, \2, \3, ...) + scope + punctuation.definition.group.regexp, keyword.other.back-reference.regexp + settings + + foreground + #a6e3a1 + + + + name + Regex character class [] + scope + punctuation.definition.character-class.regexp + settings + + foreground + #f9e2af + + + + name + Regex character classes (\d, \w, \s) + scope + constant.other.character-class.regexp + settings + + foreground + #f5c2e7 + + + + name + Regex range + scope + constant.other.character-class.range.regexp + settings + + foreground + #f5e0dc + + + + name + Regex quantifier + scope + keyword.operator.quantifier.regexp + settings + + foreground + #94e2d5 + + + + name + Regex constant/numeric + scope + constant.character.numeric.regexp + settings + + foreground + #fab387 + + + + name + Regex lookaheads, negative lookaheads, lookbehinds, negative lookbehinds + scope + punctuation.definition.group.no-capture.regexp, meta.assertion.look-ahead.regexp, meta.assertion.negative-look-ahead.regexp + settings + + foreground + #89b4fa + + + + name + Rust attribute + scope + meta.annotation.rust, meta.annotation.rust punctuation, meta.attribute.rust, punctuation.definition.attribute.rust + settings + + foreground + #f9e2af + fontStyle + italic + + + + name + Rust attribute strings + scope + meta.attribute.rust string.quoted.double.rust, meta.attribute.rust string.quoted.single.char.rust + settings + + fontStyle + + + + + name + Rust keyword + scope + entity.name.function.macro.rules.rust, storage.type.module.rust, storage.modifier.rust, storage.type.struct.rust, storage.type.enum.rust, storage.type.trait.rust, storage.type.union.rust, storage.type.impl.rust, storage.type.rust, storage.type.function.rust, storage.type.type.rust + settings + + foreground + #cba6f7 + fontStyle + + + + + name + Rust u/i32, u/i64, etc. + scope + entity.name.type.numeric.rust + settings + + foreground + #cba6f7 + fontStyle + + + + + name + Rust generic + scope + meta.generic.rust + settings + + foreground + #fab387 + + + + name + Rust impl + scope + entity.name.impl.rust + settings + + foreground + #f9e2af + fontStyle + italic + + + + name + Rust module + scope + entity.name.module.rust + settings + + foreground + #fab387 + + + + name + Rust trait + scope + entity.name.trait.rust + settings + + foreground + #f9e2af + fontStyle + italic + + + + name + Rust struct + scope + storage.type.source.rust + settings + + foreground + #f9e2af + + + + name + Rust union + scope + entity.name.union.rust + settings + + foreground + #f9e2af + + + + name + Rust enum member + scope + meta.enum.rust storage.type.source.rust + settings + + foreground + #94e2d5 + + + + name + Rust macro + scope + support.macro.rust, meta.macro.rust support.function.rust, entity.name.function.macro.rust + settings + + foreground + #89b4fa + fontStyle + italic + + + + name + Rust lifetime + scope + storage.modifier.lifetime.rust, entity.name.type.lifetime + settings + + foreground + #89b4fa + fontStyle + italic + + + + name + Rust string formatting + scope + string.quoted.double.rust constant.other.placeholder.rust + settings + + foreground + #f5c2e7 + + + + name + Rust return type generic + scope + meta.function.return-type.rust meta.generic.rust storage.type.rust + settings + + foreground + #cdd6f4 + + + + name + Rust functions + scope + meta.function.call.rust + settings + + foreground + #89b4fa + + + + name + Rust angle brackets + scope + punctuation.brackets.angle.rust + settings + + foreground + #89dceb + + + + name + Rust constants + scope + constant.other.caps.rust + settings + + foreground + #fab387 + + + + name + Rust function parameters + scope + meta.function.definition.rust variable.other.rust + settings + + foreground + #eba0ac + + + + name + Rust closure variables + scope + meta.function.call.rust variable.other.rust + settings + + foreground + #cdd6f4 + + + + name + Rust self + scope + variable.language.self.rust + settings + + foreground + #f38ba8 + + + + name + Rust metavariable names + scope + variable.other.metavariable.name.rust, meta.macro.metavariable.rust keyword.operator.macro.dollar.rust + settings + + foreground + #f5c2e7 + + + + name + Shell shebang + scope + comment.line.shebang, comment.line.shebang punctuation.definition.comment, comment.line.shebang, punctuation.definition.comment.shebang.shell, meta.shebang.shell + settings + + foreground + #f5c2e7 + fontStyle + italic + + + + name + Shell shebang command + scope + comment.line.shebang constant.language + settings + + foreground + #94e2d5 + fontStyle + italic + + + + name + Shell interpolated command + scope + meta.function-call.arguments.shell punctuation.definition.variable.shell, meta.function-call.arguments.shell punctuation.section.interpolation, meta.function-call.arguments.shell punctuation.definition.variable.shell, meta.function-call.arguments.shell punctuation.section.interpolation + settings + + foreground + #f38ba8 + + + + name + Shell interpolated command variable + scope + meta.string meta.interpolation.parameter.shell variable.other.readwrite + settings + + foreground + #fab387 + fontStyle + italic + + + + scope + source.shell punctuation.section.interpolation, punctuation.definition.evaluation.backticks.shell + settings + + foreground + #94e2d5 + + + + name + Shell EOF + scope + entity.name.tag.heredoc.shell + settings + + foreground + #cba6f7 + + + + name + Shell quoted variable + scope + string.quoted.double.shell variable.other.normal.shell + settings + + foreground + #cdd6f4 + + + + scope + markup.heading.synopsis.man, markup.heading.title.man, markup.heading.other.man, markup.heading.env.man + settings + + foreground + #cba6f7 + + + + scope + markup.heading.commands.man + settings + + foreground + #89b4fa + + + + scope + markup.heading.env.man + settings + + foreground + #f5c2e7 + + + + name + Man page options + scope + entity.name + settings + + foreground + #94e2d5 + + + + scope + markup.heading.1.markdown + settings + + foreground + #f38ba8 + + + + scope + markup.heading.2.markdown + settings + + foreground + #fab387 + + + + scope + markup.heading.markdown + settings + + foreground + #f9e2af + + + + + \ No newline at end of file diff --git a/dotfiles/.config/btop/btop.conf b/dotfiles/.config/btop/btop.conf new file mode 100644 index 0000000..3b4551c --- /dev/null +++ b/dotfiles/.config/btop/btop.conf @@ -0,0 +1,254 @@ +#? Config file for btop v. 1.4.3 + +#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes. +#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes" +color_theme = "/home/dich/.config/btop/themes/catppuccin_frappe.theme" + +#* If the theme set background should be shown, set to False if you want terminal background transparency. +theme_background = True + +#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false. +truecolor = True + +#* Set to true to force tty mode regardless if a real tty has been detected or not. +#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols. +force_tty = False + +#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets. +#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box. +#* Use whitespace " " as separator between different presets. +#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty" +presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty" + +#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists. +#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift. +vim_keys = False + +#* Rounded corners on boxes, is ignored if TTY mode is ON. +rounded_corners = True + +#* Default symbols to use for graph creation, "braille", "block" or "tty". +#* "braille" offers the highest resolution but might not be included in all fonts. +#* "block" has half the resolution of braille but uses more common characters. +#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY. +#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view. +graph_symbol = "braille" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_cpu = "default" + +# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty". +graph_symbol_gpu = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_mem = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_net = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_proc = "default" + +#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace. +shown_boxes = "proc mem cpu" + +#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs. +update_ms = 2000 + +#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct", +#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly. +proc_sorting = "cpu lazy" + +#* Reverse sorting order, True or False. +proc_reversed = False + +#* Show processes as a tree. +proc_tree = False + +#* Use the cpu graph colors in the process list. +proc_colors = True + +#* Use a darkening gradient in the process list. +proc_gradient = True + +#* If process cpu usage should be of the core it's running on or usage of the total available cpu power. +proc_per_core = False + +#* Show process memory as bytes instead of percent. +proc_mem_bytes = True + +#* Show cpu graph for each process. +proc_cpu_graphs = True + +#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate) +proc_info_smaps = False + +#* Show proc box on left side of screen instead of right. +proc_left = False + +#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop). +proc_filter_kernel = False + +#* In tree-view, always accumulate child process resources in the parent process. +proc_aggregate = False + +#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available. +#* Select from a list of detected attributes from the options menu. +cpu_graph_upper = "Auto" + +#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available. +#* Select from a list of detected attributes from the options menu. +cpu_graph_lower = "Auto" + +#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off". +show_gpu_info = "Auto" + +#* Toggles if the lower CPU graph should be inverted. +cpu_invert_lower = True + +#* Set to True to completely disable the lower CPU graph. +cpu_single_graph = False + +#* Show cpu box at bottom of screen instead of top. +cpu_bottom = False + +#* Shows the system uptime in the CPU box. +show_uptime = True + +#* Show cpu temperature. +check_temp = True + +#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors. +cpu_sensor = "Auto" + +#* Show temperatures for cpu cores also if check_temp is True and sensors has been found. +show_coretemp = True + +#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core. +#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine. +#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries. +#* Example: "4:0 5:1 6:3" +cpu_core_map = "" + +#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine". +temp_scale = "celsius" + +#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024. +base_10_sizes = False + +#* Show CPU frequency. +show_cpu_freq = True + +#* Draw a clock at top of screen, formatting according to strftime, empty string to disable. +#* Special formatting: /host = hostname | /user = username | /uptime = system uptime +clock_format = "%X" + +#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort. +background_update = True + +#* Custom cpu model name, empty string to disable. +custom_cpu_name = "" + +#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ". +#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user". +disks_filter = "" + +#* Show graphs instead of meters for memory values. +mem_graphs = True + +#* Show mem box below net box instead of above. +mem_below_net = False + +#* Count ZFS ARC in cached and available memory. +zfs_arc_cached = True + +#* If swap memory should be shown in memory box. +show_swap = True + +#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk. +swap_disk = True + +#* If mem box should be split to also show disks info. +show_disks = True + +#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar. +only_physical = True + +#* Read disks list from /etc/fstab. This also disables only_physical. +use_fstab = True + +#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool) +zfs_hide_datasets = False + +#* Set to true to show available disk space for privileged users. +disk_free_priv = False + +#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view. +show_io_stat = True + +#* Toggles io mode for disks, showing big graphs for disk read/write speeds. +io_mode = False + +#* Set to True to show combined read/write io graphs in io mode. +io_graph_combined = False + +#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ". +#* Example: "/mnt/media:100 /:20 /boot:1". +io_graph_speeds = "" + +#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False. +net_download = 100 + +net_upload = 100 + +#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest. +net_auto = True + +#* Sync the auto scaling for download and upload to whichever currently has the highest scale. +net_sync = True + +#* Starts with the Network Interface specified here. +net_iface = "" + +#* "True" shows bitrates in base 10 (Kbps, Mbps). "False" shows bitrates in binary sizes (Kibps, Mibps, etc.). "Auto" uses base_10_sizes. +base_10_bitrate = "Auto" + +#* Show battery stats in top right if battery is present. +show_battery = True + +#* Which battery to use if multiple are present. "Auto" for auto detection. +selected_battery = "Auto" + +#* Show power stats of battery next to charge indicator. +show_battery_watts = True + +#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG". +#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info. +log_level = "WARNING" + +#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards. +nvml_measure_pcie_speeds = True + +#* Measure PCIe throughput on AMD cards, may impact performance on certain cards. +rsmi_measure_pcie_speeds = True + +#* Horizontally mirror the GPU graph. +gpu_mirror_graph = True + +#* Custom gpu0 model name, empty string to disable. +custom_gpu_name0 = "" + +#* Custom gpu1 model name, empty string to disable. +custom_gpu_name1 = "" + +#* Custom gpu2 model name, empty string to disable. +custom_gpu_name2 = "" + +#* Custom gpu3 model name, empty string to disable. +custom_gpu_name3 = "" + +#* Custom gpu4 model name, empty string to disable. +custom_gpu_name4 = "" + +#* Custom gpu5 model name, empty string to disable. +custom_gpu_name5 = "" diff --git a/dotfiles/.config/btop/themes/catppuccin_frappe.theme b/dotfiles/.config/btop/themes/catppuccin_frappe.theme new file mode 100644 index 0000000..20a91ca --- /dev/null +++ b/dotfiles/.config/btop/themes/catppuccin_frappe.theme @@ -0,0 +1,83 @@ +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="#303446" + +# Main text color +theme[main_fg]="#C6D0F5" + +# Title color for boxes +theme[title]="#C6D0F5" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#8CAAEE" + +# Background color of selected item in processes box +theme[selected_bg]="#51576D" + +# Foreground color of selected item in processes box +theme[selected_fg]="#8CAAEE" + +# Color of inactive/disabled text +theme[inactive_fg]="#838BA7" + +# Color of text appearing on top of graphs, i.e uptime and current network graph scaling +theme[graph_text]="#F2D5CF" + +# Background color of the percentage meters +theme[meter_bg]="#51576D" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#F2D5CF" + +# CPU, Memory, Network, Proc box outline colors +theme[cpu_box]="#ca9ee6" #Mauve +theme[mem_box]="#a6d189" #Green +theme[net_box]="#ea999c" #Maroon +theme[proc_box]="#8caaee" #Blue + +# Box divider line and small boxes line color +theme[div_line]="#737994" + +# Temperature graph color (Green -> Yellow -> Red) +theme[temp_start]="#a6d189" +theme[temp_mid]="#e5c890" +theme[temp_end]="#e78284" + +# CPU graph colors (Teal -> Lavender) +theme[cpu_start]="#81c8be" +theme[cpu_mid]="#85c1dc" +theme[cpu_end]="#babbf1" + +# Mem/Disk free meter (Mauve -> Lavender -> Blue) +theme[free_start]="#ca9ee6" +theme[free_mid]="#babbf1" +theme[free_end]="#8caaee" + +# Mem/Disk cached meter (Sapphire -> Lavender) +theme[cached_start]="#85c1dc" +theme[cached_mid]="#8caaee" +theme[cached_end]="#babbf1" + +# Mem/Disk available meter (Peach -> Red) +theme[available_start]="#ef9f76" +theme[available_mid]="#ea999c" +theme[available_end]="#e78284" + +# Mem/Disk used meter (Green -> Sky) +theme[used_start]="#a6d189" +theme[used_mid]="#81c8be" +theme[used_end]="#99d1db" + +# Download graph colors (Peach -> Red) +theme[download_start]="#ef9f76" +theme[download_mid]="#ea999c" +theme[download_end]="#e78284" + +# Upload graph colors (Green -> Sky) +theme[upload_start]="#a6d189" +theme[upload_mid]="#81c8be" +theme[upload_end]="#99d1db" + +# Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve) +theme[process_start]="#85c1dc" +theme[process_mid]="#babbf1" +theme[process_end]="#ca9ee6" diff --git a/dotfiles/.config/btop/themes/catppuccin_latte.theme b/dotfiles/.config/btop/themes/catppuccin_latte.theme new file mode 100644 index 0000000..792679c --- /dev/null +++ b/dotfiles/.config/btop/themes/catppuccin_latte.theme @@ -0,0 +1,84 @@ +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="#EFF1F5" + +# Main text color +theme[main_fg]="#4C4F69" + +# Title color for boxes +theme[title]="#4C4F69" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#1E66F5" + +# Background color of selected item in processes box +theme[selected_bg]="#BCC0CC" + +# Foreground color of selected item in processes box +theme[selected_fg]="#1E66F5" + +# Color of inactive/disabled text +theme[inactive_fg]="#8C8FA1" + +# Color of text appearing on top of graphs, i.e uptime and current network graph scaling +theme[graph_text]="#DC8A78" + +# Background color of the percentage meters +theme[meter_bg]="#BCC0CC" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#DC8A78" + +# CPU, Memory, Network, Proc box outline colors +theme[cpu_box]="#8839ef" #Mauve +theme[mem_box]="#40a02b" #Green +theme[net_box]="#e64553" #Maroon +theme[proc_box]="#1e66f5" #Blue + +# Box divider line and small boxes line color +theme[div_line]="#9CA0B0" + +# Temperature graph color (Green -> Yellow -> Red) +theme[temp_start]="#40a02b" +theme[temp_mid]="#df8e1d" +theme[temp_end]="#d20f39" + +# CPU graph colors (Teal -> Lavender) +theme[cpu_start]="#179299" +theme[cpu_mid]="#209fb5" +theme[cpu_end]="#7287fd" + +# Mem/Disk free meter (Mauve -> Lavender -> Blue) +theme[free_start]="#8839ef" +theme[free_mid]="#7287fd" +theme[free_end]="#1e66f5" + +# Mem/Disk cached meter (Sapphire -> Lavender) +theme[cached_start]="#209fb5" +theme[cached_mid]="#1e66f5" +theme[cached_end]="#7287fd" + +# Mem/Disk available meter (Peach -> Red) +theme[available_start]="#fe640b" +theme[available_mid]="#e64553" +theme[available_end]="#d20f39" + + +# Mem/Disk used meter (Green -> Sky) +theme[used_start]="#40a02b" +theme[used_mid]="#179299" +theme[used_end]="#04a5e5" + +# Download graph colors (Peach -> Red) +theme[download_start]="#fe640b" +theme[download_mid]="#e64553" +theme[download_end]="#d20f39" + +# Upload graph colors (Green -> Sky) +theme[upload_start]="#40a02b" +theme[upload_mid]="#179299" +theme[upload_end]="#04a5e5" + +# Process box color gradient for threads, mem and cpu usage (Sapphire -> Lavender-> Mauve) +theme[process_start]="#209fb5" +theme[process_mid]="#7287fd" +theme[process_end]="#8839ef" diff --git a/dotfiles/.config/btop/themes/catppuccin_macchiato.theme b/dotfiles/.config/btop/themes/catppuccin_macchiato.theme new file mode 100644 index 0000000..86819d2 --- /dev/null +++ b/dotfiles/.config/btop/themes/catppuccin_macchiato.theme @@ -0,0 +1,83 @@ +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="#24273A" + +# Main text color +theme[main_fg]="#CAD3F5" + +# Title color for boxes +theme[title]="#CAD3F5" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#8AADF4" + +# Background color of selected item in processes box +theme[selected_bg]="#494D64" + +# Foreground color of selected item in processes box +theme[selected_fg]="#8AADF4" + +# Color of inactive/disabled text +theme[inactive_fg]="#8087A2" + +# Color of text appearing on top of graphs, i.e uptime and current network graph scaling +theme[graph_text]="#F4DBD6" + +# Background color of the percentage meters +theme[meter_bg]="#494D64" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#F4DBD6" + +# CPU, Memory, Network, Proc box outline colors +theme[cpu_box]="#c6a0f6" #Mauve +theme[mem_box]="#a6da95" #Green +theme[net_box]="#ee99a0" #Maroon +theme[proc_box]="#8aadf4" #Blue + +# Box divider line and small boxes line color +theme[div_line]="#6E738D" + +# Temperature graph color (Green -> Yellow -> Red) +theme[temp_start]="#a6da95" +theme[temp_mid]="#eed49f" +theme[temp_end]="#ed8796" + +# CPU graph colors (Teal -> Lavender) +theme[cpu_start]="#8bd5ca" +theme[cpu_mid]="#7dc4e4" +theme[cpu_end]="#b7bdf8" + +# Mem/Disk free meter (Mauve -> Lavender -> Blue) +theme[free_start]="#c6a0f6" +theme[free_mid]="#b7bdf8" +theme[free_end]="#8aadf4" + +# Mem/Disk cached meter (Sapphire -> Lavender) +theme[cached_start]="#7dc4e4" +theme[cached_mid]="#8aadf4" +theme[cached_end]="#b7bdf8" + +# Mem/Disk available meter (Peach -> Red) +theme[available_start]="#f5a97f" +theme[available_mid]="#ee99a0" +theme[available_end]="#ed8796" + +# Mem/Disk used meter (Green -> Sky) +theme[used_start]="#a6da95" +theme[used_mid]="#8bd5ca" +theme[used_end]="#91d7e3" + +# Download graph colors (Peach -> Red) +theme[download_start]="#f5a97f" +theme[download_mid]="#ee99a0" +theme[download_end]="#ed8796" + +# Upload graph colors (Green -> Sky) +theme[upload_start]="#a6da95" +theme[upload_mid]="#8bd5ca" +theme[upload_end]="#91d7e3" + +# Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve) +theme[process_start]="#7dc4e4" +theme[process_mid]="#b7bdf8" +theme[process_end]="#c6a0f6" diff --git a/dotfiles/.config/btop/themes/catppuccin_mocha.theme b/dotfiles/.config/btop/themes/catppuccin_mocha.theme new file mode 100644 index 0000000..6915504 --- /dev/null +++ b/dotfiles/.config/btop/themes/catppuccin_mocha.theme @@ -0,0 +1,83 @@ +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="#1E1E2E" + +# Main text color +theme[main_fg]="#CDD6F4" + +# Title color for boxes +theme[title]="#CDD6F4" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#89B4FA" + +# Background color of selected item in processes box +theme[selected_bg]="#45475A" + +# Foreground color of selected item in processes box +theme[selected_fg]="#89B4FA" + +# Color of inactive/disabled text +theme[inactive_fg]="#7F849C" + +# Color of text appearing on top of graphs, i.e uptime and current network graph scaling +theme[graph_text]="#F5E0DC" + +# Background color of the percentage meters +theme[meter_bg]="#45475A" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#F5E0DC" + +# CPU, Memory, Network, Proc box outline colors +theme[cpu_box]="#cba6f7" #Mauve +theme[mem_box]="#a6e3a1" #Green +theme[net_box]="#eba0ac" #Maroon +theme[proc_box]="#89b4fa" #Blue + +# Box divider line and small boxes line color +theme[div_line]="#6C7086" + +# Temperature graph color (Green -> Yellow -> Red) +theme[temp_start]="#a6e3a1" +theme[temp_mid]="#f9e2af" +theme[temp_end]="#f38ba8" + +# CPU graph colors (Teal -> Lavender) +theme[cpu_start]="#94e2d5" +theme[cpu_mid]="#74c7ec" +theme[cpu_end]="#b4befe" + +# Mem/Disk free meter (Mauve -> Lavender -> Blue) +theme[free_start]="#cba6f7" +theme[free_mid]="#b4befe" +theme[free_end]="#89b4fa" + +# Mem/Disk cached meter (Sapphire -> Lavender) +theme[cached_start]="#74c7ec" +theme[cached_mid]="#89b4fa" +theme[cached_end]="#b4befe" + +# Mem/Disk available meter (Peach -> Red) +theme[available_start]="#fab387" +theme[available_mid]="#eba0ac" +theme[available_end]="#f38ba8" + +# Mem/Disk used meter (Green -> Sky) +theme[used_start]="#a6e3a1" +theme[used_mid]="#94e2d5" +theme[used_end]="#89dceb" + +# Download graph colors (Peach -> Red) +theme[download_start]="#fab387" +theme[download_mid]="#eba0ac" +theme[download_end]="#f38ba8" + +# Upload graph colors (Green -> Sky) +theme[upload_start]="#a6e3a1" +theme[upload_mid]="#94e2d5" +theme[upload_end]="#89dceb" + +# Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve) +theme[process_start]="#74C7EC" +theme[process_mid]="#89DCEB" +theme[process_end]="#cba6f7" diff --git a/dotfiles/.config/easyeffects/output/Prime.json b/dotfiles/.config/easyeffects/output/Prime.json new file mode 100644 index 0000000..e7b30b1 --- /dev/null +++ b/dotfiles/.config/easyeffects/output/Prime.json @@ -0,0 +1,172 @@ +{ + "output": { + "bass_loudness#0": { + "bypass": false, + "input-gain": 0.0, + "link": -9.0, + "loudness": -3.0, + "output": -5.0000000000000036, + "output-gain": 0.0 + }, + "blocklist": [], + "compressor#0": { + "attack": 20.0, + "boost-amount": 6.0, + "boost-threshold": -72.0, + "bypass": false, + "dry": -100.0, + "hpf-frequency": 10.0, + "hpf-mode": "off", + "input-gain": 0.0, + "knee": -6.0, + "lpf-frequency": 20000.0, + "lpf-mode": "off", + "makeup": 0.0, + "mode": "Downward", + "output-gain": 0.0, + "ratio": 4.0, + "release": 100.0, + "release-threshold": -100.0, + "sidechain": { + "lookahead": 0.0, + "mode": "RMS", + "preamp": 0.0, + "reactivity": 10.0, + "source": "Middle", + "stereo-split-source": "Left/Right", + "type": "Feed-forward" + }, + "stereo-split": false, + "threshold": -12.0, + "wet": 2.7755575615628914e-17 + }, + "crossfeed#0": { + "bypass": false, + "fcut": 700, + "feed": 6.0, + "input-gain": 0.0, + "output-gain": 0.0 + }, + "crystalizer#0": { + "band0": { + "bypass": false, + "intensity": 0.0, + "mute": false + }, + "band1": { + "bypass": false, + "intensity": -1.0, + "mute": false + }, + "band10": { + "bypass": false, + "intensity": -10.0, + "mute": false + }, + "band11": { + "bypass": false, + "intensity": -11.0, + "mute": false + }, + "band12": { + "bypass": false, + "intensity": -12.0, + "mute": false + }, + "band2": { + "bypass": false, + "intensity": -2.0, + "mute": false + }, + "band3": { + "bypass": false, + "intensity": -3.0, + "mute": false + }, + "band4": { + "bypass": false, + "intensity": -4.0, + "mute": false + }, + "band5": { + "bypass": false, + "intensity": -5.0, + "mute": false + }, + "band6": { + "bypass": false, + "intensity": -6.0, + "mute": false + }, + "band7": { + "bypass": false, + "intensity": -7.0, + "mute": false + }, + "band8": { + "bypass": false, + "intensity": -8.0, + "mute": false + }, + "band9": { + "bypass": false, + "intensity": -9.0, + "mute": false + }, + "bypass": false, + "input-gain": 0.0, + "output-gain": 0.0 + }, + "deesser#0": { + "bypass": false, + "detection": "RMS", + "f1-freq": 6000.0, + "f1-level": 0.0, + "f2-freq": 4500.0, + "f2-level": 12.0, + "f2-q": 1.0, + "input-gain": 0.0, + "laxity": 15, + "makeup": 0.0, + "mode": "Wide", + "output-gain": 0.0, + "ratio": 3.0, + "sc-listen": false, + "threshold": -18.0 + }, + "exciter#0": { + "amount": 0.9999999999999992, + "blend": 0.0, + "bypass": false, + "ceil": 16000.0, + "ceil-active": false, + "harmonics": 0.5000000000000001, + "input-gain": 0.0, + "output-gain": 0.0, + "scope": 2000.0 + }, + "plugins_order": [ + "deesser#0", + "crystalizer#0", + "crossfeed#0", + "compressor#0", + "exciter#0", + "reverb#0", + "bass_loudness#0" + ], + "reverb#0": { + "amount": 0.499999999999974, + "bass-cut": 300.0, + "bypass": false, + "decay-time": 0.4999999999999991, + "diffusion": 0.49999999999999956, + "dry": 0.49999999999999933, + "hf-damp": 5000.0, + "input-gain": 0.0, + "output-gain": 0.0, + "predelay": 0.0, + "room-size": "Large", + "treble-cut": 5000.0 + } + } +} diff --git a/dotfiles/.config/easyeffects/output/Speaker.json b/dotfiles/.config/easyeffects/output/Speaker.json new file mode 100644 index 0000000..8d9a0ee --- /dev/null +++ b/dotfiles/.config/easyeffects/output/Speaker.json @@ -0,0 +1,18 @@ +{ + "output": { + "blocklist": [], + "loudness#1": { + "bypass": false, + "clipping": false, + "clipping-range": 6.0, + "fft": "4096", + "input-gain": 0.0, + "output-gain": 10.0, + "std": "ISO226-2003", + "volume": 6.999999999999991 + }, + "plugins_order": [ + "loudness#1" + ] + } +} diff --git a/dotfiles/.config/fastfetch/config.jsonc b/dotfiles/.config/fastfetch/config.jsonc new file mode 100644 index 0000000..d150bcc --- /dev/null +++ b/dotfiles/.config/fastfetch/config.jsonc @@ -0,0 +1,181 @@ +{ + "display": { + "separator": " ", + }, + "logo": { + "padding": { + "top": 0, + }, + }, + "modules": [ + { + "type": "custom", + "format": "\u001b[36m╭────────────┬──────────────────Hardware───────────────────────╮", + }, + { + "type": "host", + "key": " PC │", + "keyColor": "cyan", + "format": "{2}", + "outputColor": "cyan", + }, + { + "type": "board", + "key": "│ ╠ Board │", + "keyColor": "cyan", + "format": "{1}", + "outputColor": "cyan", + }, + { + "type": "cpu", + "key": "│ ╠ CPU │", + "keyColor": "cyan", + "format": "{1}", + "outputColor": "cyan", + }, + { + "type": "gpu", + "key": "│ ╠ GPU │", + "keyColor": "cyan", + "format": "{1} {2}", + "outputColor": "cyan", + }, + { + "type": "memory", + "key": "│ ╠ RAM │", + "keyColor": "cyan", + "outputColor": "cyan", + }, + { + "type": "disk", + "key": "│ ╠ Disk │", + "keyColor": "cyan", + "outputColor": "cyan", + "format": "{1} / {2} ({3}) {9}", + }, + { + "type": "display", + "key": "│ ╠󰍺 Display │", + "keyColor": "cyan", + "outputColor": "cyan", + "format": "{1}x{2}@{3}Hz in {12}-inch", + }, + { + "type": "battery", + "key": "│ ╠ Battery │", + "keyColor": "cyan", + "outputColor": "cyan", + }, + { + "type": "uptime", + "key": "│ ╚ Uptime │", + "keyColor": "cyan", + "format": "{1} days {2} hours {3} minutes", + "outputColor": "cyan", + }, + { + "type": "custom", + "format": "\u001b[36m╰────────────┴─────────────────────────────────────────────────╯", + }, + { + "type": "custom", + "format": "\u001b[34m╭────────────┬──────────────────Software───────────────────────╮", + }, + { + "type": "os", + "key": " OS │", + "keyColor": "blue", + "format": "{2} {8} {12}", + "outputColor": "blue", + }, + { + "type": "kernel", + "key": "│ ╠ Kernel │", + "keyColor": "blue", + "format": "{1} {2}", + "outputColor": "blue", + }, + { + "type": "packages", + "key": "│ ╠󰏖 Packages│", + "keyColor": "blue", + "outputColor": "blue", + }, + { + "type": "shell", + "key": "│ ╠ Shell │", + "keyColor": "blue", + "outputColor": "blue", + "format": "{6} {4}", + }, + { + "type": "terminal", + "key": "│ ╠ Terminal│", + "keyColor": "blue", + "outputColor": "blue", + "format": "{5} {6}", + }, + { + "type": "lm", + "key": "│ ╠󰍂 LM │", + "keyColor": "blue", + "outputColor": "blue", + }, + { + "type": "de", + "key": "│ ╠ DE │", + "keyColor": "blue", + "outputColor": "blue", + "format": "{2}", + }, + { + "type": "wm", + "key": "│ ╠󱂬 WM │", + "keyColor": "blue", + "outputColor": "blue", + "format": "{2} {5}", + }, + { + "type": "cursor", + "key": "│ ╠󱄨 Cursor │", + "keyColor": "blue", + "outputColor": "blue", + }, + { + "type": "font", + "key": "│ ╠ Font │", + "keyColor": "blue", + "outputColor": "blue", + "format": "{1}", + }, + { + "type": "terminalfont", + "key": "│ ╠󰬴 TermFont│", + "keyColor": "blue", + "outputColor": "blue", + }, + { + "type": "icons", + "key": "│ ╠ Icons │", + "keyColor": "blue", + "outputColor": "blue", + "format": "{1} {2}", + }, + { + "type": "title", + "key": "│ ╚ Hostname│", + "keyColor": "blue", + "outputColor": "blue", + "format": "{8}", + }, + { + "type": "custom", + "format": "\u001b[34m╰────────────┴─────────────────────────────────────────────────╯", + }, + { + "type": "custom", + "format": "\u001b[90m \u001b[91m \u001b[92m \u001b[93m \u001b[94m \u001b[95m \u001b[96m \u001b[97m \u001b[97m \u001b[96m \u001b[95m \u001b[94m \u001b[93m \u001b[92m \u001b[91m \u001b[90m", + }, + ], +} + diff --git a/dotfiles/.config/fcitx5/conf/cached_layouts b/dotfiles/.config/fcitx5/conf/cached_layouts new file mode 100644 index 0000000..72334da --- /dev/null +++ b/dotfiles/.config/fcitx5/conf/cached_layouts @@ -0,0 +1,3705 @@ +[keyboard-bqn] +Description="Keyboard - BQN" +Language=en +Label=bqn + +[keyboard-apl] +Description="Keyboard - APL" +Language=en +Label=apl + +[keyboard-apl-dyalog] +Description="Keyboard - APL - APL symbols (Dyalog APL)" +Language=en +Label="dlg (dyalog)" + +[keyboard-apl-sax] +Description="Keyboard - APL - APL symbols (SAX, Sharp APL for Unix)" +Language=en +Label=sax + +[keyboard-apl-unified] +Description="Keyboard - APL - APL symbols (unified)" +Language=en +Label="ufd (unified)" + +[keyboard-apl-apl2] +Description="Keyboard - APL - APL symbols (IBM APL2)" +Language=en +Label=apl2 + +[keyboard-apl-aplplusII] +Description="Keyboard - APL - APL symbols (Manugistics APL*PLUS II)" +Language=en +Label="aplII (aplplusII)" + +[keyboard-apl-aplx] +Description="Keyboard - APL - APL symbols (APLX unified)" +Language=en +Label=aplx + +[keyboard-ua] +Description="Keyboard - Ukrainian" +Language=uk +Label=uk + +[keyboard-ua-phonetic] +Description="Keyboard - Ukrainian - Ukrainian (phonetic)" +Language=uk +Label="ua (phonetic)" + +[keyboard-ua-typewriter] +Description="Keyboard - Ukrainian - Ukrainian (typewriter)" +Language=uk +Label="ua (typewriter)" + +[keyboard-ua-winkeys] +Description="Keyboard - Ukrainian - Ukrainian (Windows)" +Language=uk +Label="ua (winkeys)" + +[keyboard-ua-macOS] +Description="Keyboard - Ukrainian - Ukrainian (macOS)" +Language=uk +Label="ua (macOS)" + +[keyboard-ua-legacy] +Description="Keyboard - Ukrainian - Ukrainian (legacy)" +Language=uk +Label="ua (legacy)" + +[keyboard-ua-homophonic] +Description="Keyboard - Ukrainian - Ukrainian (homophonic)" +Language=uk +Label="ua (homophonic)" + +[keyboard-ua-crh] +Description="Keyboard - Ukrainian - Crimean Tatar (Turkish Q)" +Language=crh +Label=crh + +[keyboard-ua-crh_f] +Description="Keyboard - Ukrainian - Crimean Tatar (Turkish F)" +Language=crh +Label="crh (crh_f)" + +[keyboard-ua-crh_alt] +Description="Keyboard - Ukrainian - Crimean Tatar (Turkish Alt-Q)" +Language=crh +Label="crh (crh_alt)" + +[keyboard-ua-sun_type6] +Description="Keyboard - Ukrainian - Ukrainian (Sun Type 6/7)" +Language=uk +Label="ua (sun_type6)" + +[keyboard-th] +Description="Keyboard - Thai" +Language=th +Label=th + +[keyboard-th-tis] +Description="Keyboard - Thai - Thai (TIS-820.2538)" +Language=th +Label="th (tis)" + +[keyboard-th-pat] +Description="Keyboard - Thai - Thai (Pattachote)" +Language=th +Label="th (pat)" + +[keyboard-tz] +Description="Keyboard - Swahili (Tanzania)" +Language=sw +Label=sw + +[keyboard-latam] +Description="Keyboard - Spanish (Latin American)" +Language=es +Label=es + +[keyboard-latam-nodeadkeys] +Description="Keyboard - Spanish (Latin American) - Spanish (Latin American, no dead keys)" +Language=es +Label="latam (nodeadkeys)" + +[keyboard-latam-deadtilde] +Description="Keyboard - Spanish (Latin American) - Spanish (Latin American, dead tilde)" +Language=es +Label="latam (deadtilde)" + +[keyboard-latam-dvorak] +Description="Keyboard - Spanish (Latin American) - Spanish (Latin American, Dvorak)" +Language=es +Label="latam (dvorak)" + +[keyboard-latam-colemak] +Description="Keyboard - Spanish (Latin American) - Spanish (Latin American, Colemak)" +Language=es +Label="latam (colemak)" + +[keyboard-sk] +Description="Keyboard - Slovak" +Language=sk +Label=sk + +[keyboard-sk-bksl] +Description="Keyboard - Slovak - Slovak (extra backslash)" +Language=sk +Label="sk (bksl)" + +[keyboard-sk-qwerty] +Description="Keyboard - Slovak - Slovak (QWERTY)" +Language=sk +Label="sk (qwerty)" + +[keyboard-sk-qwerty_bksl] +Description="Keyboard - Slovak - Slovak (QWERTY, extra backslash)" +Language=sk +Label="sk (qwerty_bksl)" + +[keyboard-sk-acc] +Description="Keyboard - Slovak - Slovak (ACC layout, only accented letters)" +Language=sk +Label="sk (acc)" + +[keyboard-sk-sun_type6] +Description="Keyboard - Slovak - Slovak (Sun Type 6/7)" +Language=sk +Label="sk (sun_type6)" + +[keyboard-ru] +Description="Keyboard - Russian" +Language=ru +Label=ru + +[keyboard-ru-phonetic] +Description="Keyboard - Russian - Russian (phonetic)" +Language=ru +Label="ru (phonetic)" + +[keyboard-ru-phonetic_winkeys] +Description="Keyboard - Russian - Russian (phonetic, Windows)" +Language=ru +Label="ru (phonetic_winkeys)" + +[keyboard-ru-phonetic_YAZHERTY] +Description="Keyboard - Russian - Russian (phonetic, YAZHERTY)" +Language=ru +Label="ru (phonetic_YAZHERTY)" + +[keyboard-ru-phonetic_azerty] +Description="Keyboard - Russian - Russian (phonetic, AZERTY)" +Language=ru +Label="ru (phonetic_azerty)" + +[keyboard-ru-phonetic_dvorak] +Description="Keyboard - Russian - Russian (phonetic, Dvorak)" +Language=ru +Label="ru (phonetic_dvorak)" + +[keyboard-ru-typewriter] +Description="Keyboard - Russian - Russian (typewriter)" +Language=ru +Label="ru (typewriter)" + +[keyboard-ru-ruchey_ru] +Description="Keyboard - Russian - Russian (engineering, RU)" +Language=ru +Label="ru (ruchey_ru)" + +[keyboard-ru-ruchey_en] +Description="Keyboard - Russian - Russian (engineering, EN)" +Language=ru +Label="en (ruchey_en)" + +[keyboard-ru-legacy] +Description="Keyboard - Russian - Russian (legacy)" +Language=ru +Label="ru (legacy)" + +[keyboard-ru-typewriter-legacy] +Description="Keyboard - Russian - Russian (typewriter, legacy)" +Language=ru +Label="ru (typewriter-legacy)" + +[keyboard-ru-dos] +Description="Keyboard - Russian - Russian (DOS)" +Language=ru +Label="ru (dos)" + +[keyboard-ru-mac] +Description="Keyboard - Russian - Russian (Macintosh)" +Language=ru +Label="ru (mac)" + +[keyboard-ru-ab] +Description="Keyboard - Russian - Abkhazian (Russia)" +Language=ab +Label="ru (ab)" + +[keyboard-ru-bak] +Description="Keyboard - Russian - Bashkirian" +Language=ba +Label="ru (bak)" + +[keyboard-ru-cv] +Description="Keyboard - Russian - Chuvash" +Language=cv +Label="ru (cv)" + +[keyboard-ru-cv_latin] +Description="Keyboard - Russian - Chuvash (Latin)" +Language=cv +Label="ru (cv_latin)" + +[keyboard-ru-xal] +Description="Keyboard - Russian - Kalmyk" +Language=xal +Label="ru (xal)" + +[keyboard-ru-kom] +Description="Keyboard - Russian - Komi" +Language=kv +Label="ru (kom)" + +[keyboard-ru-chm] +Description="Keyboard - Russian - Mari" +Language=chm +Label="ru (chm)" + +[keyboard-ru-os_legacy] +Description="Keyboard - Russian - Ossetian (legacy)" +Language=os +Label="ru (os_legacy)" + +[keyboard-ru-os_winkeys] +Description="Keyboard - Russian - Ossetian (Windows)" +Language=os +Label="ru (os_winkeys)" + +[keyboard-ru-srp] +Description="Keyboard - Russian - Serbian (Russia)" +Language=ru +Label="ru (srp)" + +[keyboard-ru-tt] +Description="Keyboard - Russian - Tatar" +Language=tt +Label="ru (tt)" + +[keyboard-ru-udm] +Description="Keyboard - Russian - Udmurt" +Language=udm +Label="ru (udm)" + +[keyboard-ru-sah] +Description="Keyboard - Russian - Yakut" +Language=sah +Label="ru (sah)" + +[keyboard-ru-chu] +Description="Keyboard - Russian - Church Slavonic" +Language=cu +Label="ru (chu)" + +[keyboard-ru-ruu] +Description="Keyboard - Russian - Russian (plus Ukrainian and Belarusian letters)" +Language=ru +Label="ru (ruu)" + +[keyboard-ru-rulemak] +Description="Keyboard - Russian - Russian (Rulemak, phonetic Colemak)" +Language=ru +Label="ru (rulemak)" + +[keyboard-ru-phonetic_mac] +Description="Keyboard - Russian - Russian (phonetic, Macintosh)" +Language=ru +Label="ru (phonetic_mac)" + +[keyboard-ru-sun_type6] +Description="Keyboard - Russian - Russian (Sun Type 6/7)" +Language=ru +Label="ru (sun_type6)" + +[keyboard-ru-unipunct] +Description="Keyboard - Russian - Russian (with US punctuation)" +Language=ru +Label="ru (unipunct)" + +[keyboard-ru-gost-6431-75-48] +Description="Keyboard - Russian - Russian (GOST 6431-75)" +Language=ru +Label="ru (gost-6431-75-48)" + +[keyboard-ru-gost-14289-88] +Description="Keyboard - Russian - Russian (GOST 14289-88)" +Language=ru +Label="ru (gost-14289-88)" + +[keyboard-ru-prxn] +Description="Keyboard - Russian - Russian (Polyglot and Reactionary)" +Language=ru +Label="ru (prxn)" + +[keyboard-ru-winkeys-p] +Description="Keyboard - Russian - Russian (Programmer)" +Language=ru +Label=winkeys-p + +[keyboard-ru-typo] +Description="Keyboard - Russian - Russian (plus typographic symbols)" +Language=ru +Label="ru (typo)" + +[keyboard-ru-rtu] +Description="Keyboard - Russian - Russian (plus Tatar letters)" +Language=ru +Label="ru (rtu)" + +[keyboard-ru-diktor] +Description="Keyboard - Russian - Russian (Diktor)" +Language=ru +Label=diktor + +[keyboard-ru-ruintl_ru] +Description="Keyboard - Russian - Russian (international, RU)" +Language=ru +Label="ru (ruintl_ru)" + +[keyboard-ru-ruintl_en] +Description="Keyboard - Russian - Russian (international, EN)" +Language=en +Label="en (ruintl_en)" + +[keyboard-br] +Description="Keyboard - Portuguese (Brazil)" +Language=pt +Label=pt + +[keyboard-br-nodeadkeys] +Description="Keyboard - Portuguese (Brazil) - Portuguese (Brazil, no dead keys)" +Language=pt +Label="br (nodeadkeys)" + +[keyboard-br-dvorak] +Description="Keyboard - Portuguese (Brazil) - Portuguese (Brazil, Dvorak)" +Language=pt +Label="br (dvorak)" + +[keyboard-br-nativo] +Description="Keyboard - Portuguese (Brazil) - Portuguese (Brazil, Nativo)" +Language=pt +Label="br (nativo)" + +[keyboard-br-nativo-us] +Description="Keyboard - Portuguese (Brazil) - Portuguese (Brazil, Nativo for US keyboards)" +Language=pt +Label="br (nativo-us)" + +[keyboard-br-thinkpad] +Description="Keyboard - Portuguese (Brazil) - Portuguese (Brazil, IBM/Lenovo ThinkPad)" +Language=pt +Label="br (thinkpad)" + +[keyboard-br-nativo-epo] +Description="Keyboard - Portuguese (Brazil) - Esperanto (Brazil, Nativo)" +Language=eo +Label="br (nativo-epo)" + +[keyboard-br-rus] +Description="Keyboard - Portuguese (Brazil) - Russian (Brazil, phonetic)" +Language=ru +Label="ru (rus)" + +[keyboard-br-sun_type6] +Description="Keyboard - Portuguese (Brazil) - Portuguese (Brazil, Sun Type 6/7)" +Language=pt +Label="br (sun_type6)" + +[keyboard-ro] +Description="Keyboard - Romanian" +Language=ro +Label=ro + +[keyboard-ro-std] +Description="Keyboard - Romanian - Romanian (standard)" +Language=ro +Label="ro (std)" + +[keyboard-ro-winkeys] +Description="Keyboard - Romanian - Romanian (Windows)" +Language=ro +Label="ro (winkeys)" + +[keyboard-ro-crh_dobruja] +Description="Keyboard - Romanian - Crimean Tatar (Dobruja Q)" +Language=crh +Label="crh (crh_dobruja)" + +[keyboard-ro-ergonomic] +Description="Keyboard - Romanian - Romanian (ergonomic Touchtype)" +Language=ro +Label="ro (ergonomic)" + +[keyboard-ro-sun_type6] +Description="Keyboard - Romanian - Romanian (Sun Type 6/7)" +Language=ro +Label="ro (sun_type6)" + +[keyboard-pl] +Description="Keyboard - Polish" +Language=pl +Label=pl + +[keyboard-pl-legacy] +Description="Keyboard - Polish - Polish (legacy)" +Language=pl +Label="pl (legacy)" + +[keyboard-pl-qwertz] +Description="Keyboard - Polish - Polish (QWERTZ)" +Language=pl +Label="pl (qwertz)" + +[keyboard-pl-dvorak] +Description="Keyboard - Polish - Polish (Dvorak)" +Language=pl +Label="pl (dvorak)" + +[keyboard-pl-dvorak_quotes] +Description="Keyboard - Polish - Polish (Dvorak, with Polish quotes on quotemark key)" +Language=pl +Label="pl (dvorak_quotes)" + +[keyboard-pl-dvorak_altquotes] +Description="Keyboard - Polish - Polish (Dvorak, with Polish quotes on key 1)" +Language=pl +Label="pl (dvorak_altquotes)" + +[keyboard-pl-dvp] +Description="Keyboard - Polish - Polish (programmer Dvorak)" +Language=pl +Label="pl (dvp)" + +[keyboard-pl-csb] +Description="Keyboard - Polish - Kashubian" +Language=csb +Label="pl (csb)" + +[keyboard-pl-szl] +Description="Keyboard - Polish - Silesian" +Language=szl +Label="pl (szl)" + +[keyboard-pl-ru_phonetic_dvorak] +Description="Keyboard - Polish - Russian (Poland, phonetic Dvorak)" +Language=ru +Label="ru (ru_phonetic_dvorak)" + +[keyboard-pl-intl] +Description="Keyboard - Polish - Polish (intl., with dead keys)" +Language=pl +Label="pl (intl)" + +[keyboard-pl-colemak] +Description="Keyboard - Polish - Polish (Colemak)" +Language=pl +Label="pl (colemak)" + +[keyboard-pl-colemak_dh_ansi] +Description="Keyboard - Polish - Polish (Colemak-DH)" +Language=pl +Label="pl (colemak_dh_ansi)" + +[keyboard-pl-colemak_dh] +Description="Keyboard - Polish - Polish (Colemak-DH ISO)" +Language=pl +Label="pl (colemak_dh)" + +[keyboard-pl-sun_type6] +Description="Keyboard - Polish - Polish (Sun Type 6/7)" +Language=pl +Label="pl (sun_type6)" + +[keyboard-pl-glagolica] +Description="Keyboard - Polish - Polish (Glagolica)" +Language=pl +Label="pl (glagolica)" + +[keyboard-pl-lefty] +Description="Keyboard - Polish - Polish (lefty)" +Language=pl +Label="pl (lefty)" + +[keyboard-trans] +Description="Keyboard - International Phonetic Alphabet" +Language= +Label=ipa + +[keyboard-trans-qwerty] +Description="Keyboard - International Phonetic Alphabet - International Phonetic Alphabet (QWERTY)" +Language= +Label="trans (qwerty)" + +[keyboard-ir] +Description="Keyboard - Persian" +Language=fa +Label=fa + +[keyboard-ir-pes_keypad] +Description="Keyboard - Persian - Persian (with Persian keypad)" +Language=fa +Label="ir (pes_keypad)" + +[keyboard-ir-winkeys] +Description="Keyboard - Persian - Persian (Windows)" +Language=fa +Label="ir (winkeys)" + +[keyboard-ir-azb] +Description="Keyboard - Persian - Azerbaijani (Iran)" +Language=azb +Label=azb + +[keyboard-ir-ku] +Description="Keyboard - Persian - Kurdish (Iran, Latin Q)" +Language=ku +Label=ku + +[keyboard-ir-ku_alt] +Description="Keyboard - Persian - Kurdish (Iran, Latin Alt-Q)" +Language=ku +Label="ku (ku_alt)" + +[keyboard-ir-ku_f] +Description="Keyboard - Persian - Kurdish (Iran, F)" +Language=ku +Label="ku (ku_f)" + +[keyboard-ir-ku_ara] +Description="Keyboard - Persian - Kurdish (Iran, Arabic-Latin)" +Language=ku +Label="ku (ku_ara)" + +[keyboard-custom] +Description="Keyboard - A user-defined custom Layout" +Language=und +Label=custom + +[keyboard-no] +Description="Keyboard - Norwegian" +Language=no +Label=no + +[keyboard-no-nodeadkeys] +Description="Keyboard - Norwegian - Norwegian (no dead keys)" +Language=no +Label="no (nodeadkeys)" + +[keyboard-no-winkeys] +Description="Keyboard - Norwegian - Norwegian (Windows)" +Language=no +Label="no (winkeys)" + +[keyboard-no-mac] +Description="Keyboard - Norwegian - Norwegian (Macintosh)" +Language=no +Label="no (mac)" + +[keyboard-no-mac_nodeadkeys] +Description="Keyboard - Norwegian - Norwegian (Macintosh, no dead keys)" +Language=no +Label="no (mac_nodeadkeys)" + +[keyboard-no-colemak] +Description="Keyboard - Norwegian - Norwegian (Colemak)" +Language=no +Label="no (colemak)" + +[keyboard-no-colemak_dh] +Description="Keyboard - Norwegian - Norwegian (Colemak-DH)" +Language=no +Label="no (colemak_dh)" + +[keyboard-no-colemak_dh_wide] +Description="Keyboard - Norwegian - Norwegian (Colemak-DH Wide)" +Language=no +Label="no (colemak_dh_wide)" + +[keyboard-no-dvorak] +Description="Keyboard - Norwegian - Norwegian (Dvorak)" +Language=no +Label="no (dvorak)" + +[keyboard-no-smi] +Description="Keyboard - Norwegian - Northern Saami (Norway)" +Language=se +Label="no (smi)" + +[keyboard-no-smi_nodeadkeys] +Description="Keyboard - Norwegian - Northern Saami (Norway, no dead keys)" +Language=se +Label="no (smi_nodeadkeys)" + +[keyboard-no-sun_type6] +Description="Keyboard - Norwegian - Norwegian (Sun Type 6/7)" +Language=no +Label="no (sun_type6)" + +[keyboard-gn] +Description="Keyboard - N'Ko (AZERTY)" +Language=nqo +Label=nqo + +[keyboard-tm] +Description="Keyboard - Turkmen" +Language=tk +Label=tk + +[keyboard-tm-alt] +Description="Keyboard - Turkmen - Turkmen (Alt-Q)" +Language=tk +Label="tm (alt)" + +[keyboard-np] +Description="Keyboard - Nepali" +Language=ne +Label=ne + +[keyboard-ancient] +Description="Keyboard - Ancient" +Language=got +Label=xx + +[keyboard-ancient-got] +Description="Keyboard - Ancient - Gothic" +Language=got +Label="ancient (got)" + +[keyboard-ancient-uga] +Description="Keyboard - Ancient - Ugaritic" +Language=uga +Label="ancient (uga)" + +[keyboard-ancient-ave] +Description="Keyboard - Ancient - Avestan" +Language=ae +Label="ancient (ave)" + +[keyboard-mt] +Description="Keyboard - Maltese" +Language=mt +Label=mt + +[keyboard-mt-us] +Description="Keyboard - Maltese - Maltese (US)" +Language=mt +Label="mt (us)" + +[keyboard-mt-alt-us] +Description="Keyboard - Maltese - Maltese (US, with AltGr overrides)" +Language=mt +Label="mt (alt-us)" + +[keyboard-mt-alt-gb] +Description="Keyboard - Maltese - Maltese (UK, with AltGr overrides)" +Language=mt +Label="mt (alt-gb)" + +[keyboard-pt] +Description="Keyboard - Portuguese" +Language=pt +Label=pt + +[keyboard-pt-nodeadkeys] +Description="Keyboard - Portuguese - Portuguese (no dead keys)" +Language=pt +Label="pt (nodeadkeys)" + +[keyboard-pt-mac] +Description="Keyboard - Portuguese - Portuguese (Macintosh)" +Language=pt +Label="pt (mac)" + +[keyboard-pt-mac_nodeadkeys] +Description="Keyboard - Portuguese - Portuguese (Macintosh, no dead keys)" +Language=pt +Label="pt (mac_nodeadkeys)" + +[keyboard-pt-nativo] +Description="Keyboard - Portuguese - Portuguese (Nativo)" +Language=pt +Label="pt (nativo)" + +[keyboard-pt-nativo-us] +Description="Keyboard - Portuguese - Portuguese (Nativo for US keyboards)" +Language=pt +Label="pt (nativo-us)" + +[keyboard-pt-nativo-epo] +Description="Keyboard - Portuguese - Esperanto (Portugal, Nativo)" +Language=eo +Label="pt (nativo-epo)" + +[keyboard-pt-sun_type6] +Description="Keyboard - Portuguese - Portuguese (Sun Type 6/7)" +Language=pt +Label="pt (sun_type6)" + +[keyboard-pt-colemak] +Description="Keyboard - Portuguese - Portuguese (Colemak)" +Language=pt +Label="pt (colemak)" + +[keyboard-my] +Description="Keyboard - Malay (Jawi, Arabic Keyboard)" +Language=id +Label=ms + +[keyboard-my-phonetic] +Description="Keyboard - Malay (Jawi, Arabic Keyboard) - Malay (Jawi, phonetic)" +Language=id +Label="my (phonetic)" + +[keyboard-mk] +Description="Keyboard - Macedonian" +Language=mk +Label=mk + +[keyboard-mk-nodeadkeys] +Description="Keyboard - Macedonian - Macedonian (no dead keys)" +Language=mk +Label="mk (nodeadkeys)" + +[keyboard-kg] +Description="Keyboard - Kyrgyz" +Language=ky +Label=ki + +[keyboard-kg-phonetic] +Description="Keyboard - Kyrgyz - Kyrgyz (phonetic)" +Language=ky +Label="kg (phonetic)" + +[keyboard-tj] +Description="Keyboard - Tajik" +Language=tg +Label=tg + +[keyboard-tj-legacy] +Description="Keyboard - Tajik - Tajik (legacy)" +Language=tg +Label="tj (legacy)" + +[keyboard-mv] +Description="Keyboard - Dhivehi" +Language=dv +Label=dv + +[keyboard-lk] +Description="Keyboard - Sinhala (phonetic)" +Language=si +Label=si + +[keyboard-lk-us] +Description="Keyboard - Sinhala (phonetic) - Sinhala (US)" +Language=si +Label="si (us)" + +[keyboard-lk-tam_unicode] +Description="Keyboard - Sinhala (phonetic) - Tamil (Sri Lanka, TamilNet '99)" +Language=ta +Label="ta (tam_unicode)" + +[keyboard-lk-tam_TAB] +Description="Keyboard - Sinhala (phonetic) - Tamil (Sri Lanka, TamilNet '99, TAB encoding)" +Language=ta +Label="lk (tam_TAB)" + +[keyboard-al] +Description="Keyboard - Albanian" +Language=sq +Label=sq + +[keyboard-al-plisi] +Description="Keyboard - Albanian - Albanian (Plisi)" +Language=sq +Label="al (plisi)" + +[keyboard-al-veqilharxhi] +Description="Keyboard - Albanian - Albanian (Veqilharxhi)" +Language=sq +Label="al (veqilharxhi)" + +[keyboard-cz] +Description="Keyboard - Czech" +Language=cs +Label=cs + +[keyboard-cz-bksl] +Description="Keyboard - Czech - Czech (extra backslash)" +Language=cs +Label="cz (bksl)" + +[keyboard-cz-qwerty] +Description="Keyboard - Czech - Czech (QWERTY)" +Language=cs +Label="cz (qwerty)" + +[keyboard-cz-qwerty_bksl] +Description="Keyboard - Czech - Czech (QWERTY, extra backslash)" +Language=cs +Label="cz (qwerty_bksl)" + +[keyboard-cz-winkeys] +Description="Keyboard - Czech - Czech (QWERTZ, Windows)" +Language=cs +Label="cz (winkeys)" + +[keyboard-cz-winkeys-qwerty] +Description="Keyboard - Czech - Czech (QWERTY, Windows)" +Language=cs +Label="cz (winkeys-qwerty)" + +[keyboard-cz-qwerty-mac] +Description="Keyboard - Czech - Czech (QWERTY, Macintosh)" +Language=cs +Label="cz (qwerty-mac)" + +[keyboard-cz-ucw] +Description="Keyboard - Czech - Czech (UCW, only accented letters)" +Language=cs +Label="cz (ucw)" + +[keyboard-cz-dvorak-ucw] +Description="Keyboard - Czech - Czech (US, Dvorak, UCW support)" +Language=cs +Label="cz (dvorak-ucw)" + +[keyboard-cz-rus] +Description="Keyboard - Czech - Russian (Czechia, phonetic)" +Language=ru +Label="ru (rus)" + +[keyboard-cz-sun_type6] +Description="Keyboard - Czech - Czech (Sun Type 6/7)" +Language=cs +Label="cz (sun_type6)" + +[keyboard-cz-prog] +Description="Keyboard - Czech - Czech (programming)" +Language=cs +Label="cz (prog)" + +[keyboard-cz-prog_typo] +Description="Keyboard - Czech - Czech (programming, typographic)" +Language=cs +Label="cz (prog_typo)" + +[keyboard-cz-coder] +Description="Keyboard - Czech - Czech (coder)" +Language=cs +Label="cz (coder)" + +[keyboard-cz-colemak-ucw] +Description="Keyboard - Czech - Czech (US, Colemak, UCW support)" +Language=cs +Label="cz (colemak-ucw)" + +[keyboard-brai] +Description="Keyboard - Braille" +Language= +Label=brl + +[keyboard-brai-left_hand] +Description="Keyboard - Braille - Braille (left-handed)" +Language= +Label="brai (left_hand)" + +[keyboard-brai-left_hand_invert] +Description="Keyboard - Braille - Braille (left-handed inverted thumb)" +Language= +Label="brai (left_hand_invert)" + +[keyboard-brai-right_hand] +Description="Keyboard - Braille - Braille (right-handed)" +Language= +Label="brai (right_hand)" + +[keyboard-brai-right_hand_invert] +Description="Keyboard - Braille - Braille (right-handed inverted thumb)" +Language= +Label="brai (right_hand_invert)" + +[keyboard-se] +Description="Keyboard - Swedish" +Language=sv +Label=sv + +[keyboard-se-nodeadkeys] +Description="Keyboard - Swedish - Swedish (no dead keys)" +Language=sv +Label="se (nodeadkeys)" + +[keyboard-se-dvorak] +Description="Keyboard - Swedish - Swedish (Dvorak)" +Language=sv +Label="se (dvorak)" + +[keyboard-se-us_dvorak] +Description="Keyboard - Swedish - Swedish (Dvorak, intl.)" +Language=sv +Label="se (us_dvorak)" + +[keyboard-se-svdvorak] +Description="Keyboard - Swedish - Swedish (Svdvorak)" +Language=sv +Label="se (svdvorak)" + +[keyboard-se-mac] +Description="Keyboard - Swedish - Swedish (Macintosh)" +Language=sv +Label="se (mac)" + +[keyboard-se-us] +Description="Keyboard - Swedish - Swedish (US)" +Language=sv +Label="se (us)" + +[keyboard-se-swl] +Description="Keyboard - Swedish - Swedish Sign Language" +Language=swl +Label="se (swl)" + +[keyboard-se-smi] +Description="Keyboard - Swedish - Northern Saami (Sweden)" +Language=se +Label="se (smi)" + +[keyboard-se-rus] +Description="Keyboard - Swedish - Russian (Sweden, phonetic)" +Language=ru +Label="ru (rus)" + +[keyboard-se-dvorak_a5] +Description="Keyboard - Swedish - Swedish (Dvorak A5)" +Language=sv +Label="se (dvorak_a5)" + +[keyboard-se-sun_type6] +Description="Keyboard - Swedish - Swedish (Sun Type 6/7)" +Language=sv +Label="se (sun_type6)" + +[keyboard-se-ovd] +Description="Keyboard - Swedish - Elfdalian (Sweden, with combining ogonek)" +Language=ovd +Label="se (ovd)" + +[keyboard-bg] +Description="Keyboard - Bulgarian" +Language=bg +Label=bg + +[keyboard-bg-phonetic] +Description="Keyboard - Bulgarian - Bulgarian (traditional phonetic)" +Language=bg +Label="bg (phonetic)" + +[keyboard-bg-bas_phonetic] +Description="Keyboard - Bulgarian - Bulgarian (new phonetic)" +Language=bg +Label="bg (bas_phonetic)" + +[keyboard-bg-bekl] +Description="Keyboard - Bulgarian - Bulgarian (enhanced)" +Language=bg +Label="bg (bekl)" + +[keyboard-pk] +Description="Keyboard - Urdu (Pakistan)" +Language=ur +Label=ur + +[keyboard-pk-urd-crulp] +Description="Keyboard - Urdu (Pakistan) - Urdu (Pakistan, CRULP)" +Language=ur +Label="pk (urd-crulp)" + +[keyboard-pk-urd-nla] +Description="Keyboard - Urdu (Pakistan) - Urdu (Pakistan, NLA)" +Language=ur +Label="pk (urd-nla)" + +[keyboard-pk-ara] +Description="Keyboard - Urdu (Pakistan) - Arabic (Pakistan)" +Language=ar +Label="ar (ara)" + +[keyboard-pk-snd] +Description="Keyboard - Urdu (Pakistan) - Sindhi" +Language=sd +Label="sd (snd)" + +[keyboard-pk-urd-navees] +Description="Keyboard - Urdu (Pakistan) - Urdu (Pakistan, Navees)" +Language=ur +Label="pk (urd-navees)" + +[keyboard-au] +Description="Keyboard - English (Australia)" +Language=en +Label=en + +[keyboard-mn] +Description="Keyboard - Mongolian" +Language=mn +Label=mn + +[keyboard-dz] +Description="Keyboard - Berber (Algeria, Latin)" +Language=tzm +Label=kab + +[keyboard-dz-ber] +Description="Keyboard - Berber (Algeria, Latin) - Berber (Algeria, Tifinagh)" +Language=kab +Label="kab (ber)" + +[keyboard-dz-azerty-deadkeys] +Description="Keyboard - Berber (Algeria, Latin) - Kabyle (AZERTY, with dead keys)" +Language=kab +Label="kab (azerty-deadkeys)" + +[keyboard-dz-qwerty-gb-deadkeys] +Description="Keyboard - Berber (Algeria, Latin) - Kabyle (QWERTY, UK, with dead keys)" +Language=kab +Label="kab (qwerty-gb-deadkeys)" + +[keyboard-dz-qwerty-us-deadkeys] +Description="Keyboard - Berber (Algeria, Latin) - Kabyle (QWERTY, US, with dead keys)" +Language=kab +Label="kab (qwerty-us-deadkeys)" + +[keyboard-dz-ar] +Description="Keyboard - Berber (Algeria, Latin) - Arabic (Algeria)" +Language=ar +Label=ar + +[keyboard-me] +Description="Keyboard - Montenegrin" +Language=sr +Label=sr + +[keyboard-me-cyrillic] +Description="Keyboard - Montenegrin - Montenegrin (Cyrillic)" +Language=sr +Label="me (cyrillic)" + +[keyboard-me-cyrillicyz] +Description="Keyboard - Montenegrin - Montenegrin (Cyrillic, ZE and ZHE swapped)" +Language=sr +Label="me (cyrillicyz)" + +[keyboard-me-cyrillicalternatequotes] +Description="Keyboard - Montenegrin - Montenegrin (Cyrillic, with guillemets)" +Language=sr +Label="me (cyrillicalternatequotes)" + +[keyboard-me-latinunicode] +Description="Keyboard - Montenegrin - Montenegrin (Latin, Unicode)" +Language=sr +Label="me (latinunicode)" + +[keyboard-me-latinyz] +Description="Keyboard - Montenegrin - Montenegrin (Latin, QWERTY)" +Language=sr +Label="me (latinyz)" + +[keyboard-me-latinunicodeyz] +Description="Keyboard - Montenegrin - Montenegrin (Latin, Unicode, QWERTY)" +Language=sr +Label="me (latinunicodeyz)" + +[keyboard-me-latinalternatequotes] +Description="Keyboard - Montenegrin - Montenegrin (Latin, with guillemets)" +Language=sr +Label="me (latinalternatequotes)" + +[keyboard-lv] +Description="Keyboard - Latvian" +Language=lv +Label=lv + +[keyboard-lv-apostrophe] +Description="Keyboard - Latvian - Latvian (apostrophe)" +Language=lv +Label="lv (apostrophe)" + +[keyboard-lv-tilde] +Description="Keyboard - Latvian - Latvian (tilde)" +Language=lv +Label="lv (tilde)" + +[keyboard-lv-fkey] +Description="Keyboard - Latvian - Latvian (F)" +Language=lv +Label="lv (fkey)" + +[keyboard-lv-modern] +Description="Keyboard - Latvian - Latvian (Modern Latin)" +Language=lv +Label="lv (modern)" + +[keyboard-lv-modern-cyr] +Description="Keyboard - Latvian - Latvian (Modern Cyrillic)" +Language=lv +Label="lv (modern-cyr)" + +[keyboard-lv-ergonomic] +Description="Keyboard - Latvian - Latvian (ergonomic, ŪGJRMV)" +Language=lv +Label="lv (ergonomic)" + +[keyboard-lv-adapted] +Description="Keyboard - Latvian - Latvian (adapted)" +Language=lv +Label="lv (adapted)" + +[keyboard-lv-dvorak] +Description="Keyboard - Latvian - Latvian (Dvorak)" +Language=lv +Label="lv (dvorak)" + +[keyboard-lv-ykeydvorak] +Description="Keyboard - Latvian - Latvian (Dvorak, with Y)" +Language=lv +Label="lv (ykeydvorak)" + +[keyboard-lv-minuskeydvorak] +Description="Keyboard - Latvian - Latvian (Dvorak, with minus)" +Language=lv +Label="lv (minuskeydvorak)" + +[keyboard-lv-dvorakprogr] +Description="Keyboard - Latvian - Latvian (programmer Dvorak)" +Language=lv +Label="lv (dvorakprogr)" + +[keyboard-lv-ykeydvorakprogr] +Description="Keyboard - Latvian - Latvian (programmer Dvorak, with Y)" +Language=lv +Label="lv (ykeydvorakprogr)" + +[keyboard-lv-minuskeydvorakprogr] +Description="Keyboard - Latvian - Latvian (programmer Dvorak, with minus)" +Language=lv +Label="lv (minuskeydvorakprogr)" + +[keyboard-lv-colemak] +Description="Keyboard - Latvian - Latvian (Colemak)" +Language=lv +Label="lv (colemak)" + +[keyboard-lv-apostrophecolemak] +Description="Keyboard - Latvian - Latvian (Colemak, with apostrophe)" +Language=lv +Label="lv (apostrophecolemak)" + +[keyboard-lv-sun_type6] +Description="Keyboard - Latvian - Latvian (Sun Type 6/7)" +Language=lv +Label="lv (sun_type6)" + +[keyboard-lv-apostrophe-deadquotes] +Description="Keyboard - Latvian - Latvian (apostrophe, dead quotes)" +Language=lv +Label="lv (apostrophe-deadquotes)" + +[keyboard-ba] +Description="Keyboard - Bosnian" +Language=bs +Label=bs + +[keyboard-ba-alternatequotes] +Description="Keyboard - Bosnian - Bosnian (with guillemets)" +Language=bs +Label="ba (alternatequotes)" + +[keyboard-ba-unicode] +Description="Keyboard - Bosnian - Bosnian (with Bosnian digraphs)" +Language=bs +Label="ba (unicode)" + +[keyboard-ba-unicodeus] +Description="Keyboard - Bosnian - Bosnian (US, with Bosnian digraphs)" +Language=bs +Label="ba (unicodeus)" + +[keyboard-ba-us] +Description="Keyboard - Bosnian - Bosnian (US)" +Language=bs +Label="ba (us)" + +[keyboard-tw] +Description="Keyboard - Taiwanese" +Language= +Label=zh + +[keyboard-tw-indigenous] +Description="Keyboard - Taiwanese - Taiwanese (indigenous)" +Language=tay +Label="tw (indigenous)" + +[keyboard-tw-saisiyat] +Description="Keyboard - Taiwanese - Saisiyat (Taiwan)" +Language=xsy +Label="xsy (saisiyat)" + +[keyboard-rs] +Description="Keyboard - Serbian" +Language=sr +Label=sr + +[keyboard-rs-alternatequotes] +Description="Keyboard - Serbian - Serbian (Cyrillic, with guillemets)" +Language=sr +Label="rs (alternatequotes)" + +[keyboard-rs-yz] +Description="Keyboard - Serbian - Serbian (Cyrillic, ZE and ZHE swapped)" +Language=sr +Label="rs (yz)" + +[keyboard-rs-latin] +Description="Keyboard - Serbian - Serbian (Latin)" +Language=sr +Label="rs (latin)" + +[keyboard-rs-latinalternatequotes] +Description="Keyboard - Serbian - Serbian (Latin, with guillemets)" +Language=sr +Label="rs (latinalternatequotes)" + +[keyboard-rs-latinunicode] +Description="Keyboard - Serbian - Serbian (Latin, Unicode)" +Language=sr +Label="rs (latinunicode)" + +[keyboard-rs-latinyz] +Description="Keyboard - Serbian - Serbian (Latin, QWERTY)" +Language=sr +Label="rs (latinyz)" + +[keyboard-rs-latinunicodeyz] +Description="Keyboard - Serbian - Serbian (Latin, Unicode, QWERTY)" +Language=sr +Label="rs (latinunicodeyz)" + +[keyboard-rs-rue] +Description="Keyboard - Serbian - Pannonian Rusyn" +Language=rue +Label="rs (rue)" + +[keyboard-rs-combiningkeys] +Description="Keyboard - Serbian - Serbian (combining accents instead of dead keys)" +Language=sr +Label="rs (combiningkeys)" + +[keyboard-dk] +Description="Keyboard - Danish" +Language=da +Label=da + +[keyboard-dk-nodeadkeys] +Description="Keyboard - Danish - Danish (no dead keys)" +Language=da +Label="dk (nodeadkeys)" + +[keyboard-dk-winkeys] +Description="Keyboard - Danish - Danish (Windows)" +Language=da +Label="dk (winkeys)" + +[keyboard-dk-mac] +Description="Keyboard - Danish - Danish (Macintosh)" +Language=da +Label="dk (mac)" + +[keyboard-dk-mac_nodeadkeys] +Description="Keyboard - Danish - Danish (Macintosh, no dead keys)" +Language=da +Label="dk (mac_nodeadkeys)" + +[keyboard-dk-dvorak] +Description="Keyboard - Danish - Danish (Dvorak)" +Language=da +Label="dk (dvorak)" + +[keyboard-dk-sun_type6] +Description="Keyboard - Danish - Danish (Sun Type 6/7)" +Language=da +Label="dk (sun_type6)" + +[keyboard-bw] +Description="Keyboard - Tswana" +Language=tn +Label=tn + +[keyboard-kr] +Description="Keyboard - Korean" +Language=ko +Label=ko + +[keyboard-kr-kr104] +Description="Keyboard - Korean - Korean (101/104-key compatible)" +Language=ko +Label="kr (kr104)" + +[keyboard-kr-sun_type6] +Description="Keyboard - Korean - Korean (Sun Type 6/7)" +Language=ko +Label="kr (sun_type6)" + +[keyboard-nl] +Description="Keyboard - Dutch" +Language=nl +Label=nl + +[keyboard-nl-us] +Description="Keyboard - Dutch - Dutch (US)" +Language=nl +Label="nl (us)" + +[keyboard-nl-mac] +Description="Keyboard - Dutch - Dutch (Macintosh)" +Language=nl +Label="nl (mac)" + +[keyboard-nl-std] +Description="Keyboard - Dutch - Dutch (standard)" +Language=nl +Label="nl (std)" + +[keyboard-nl-sun_type6] +Description="Keyboard - Dutch - Dutch (Sun Type 6/7)" +Language=nl +Label="nl (sun_type6)" + +[keyboard-et] +Description="Keyboard - Amharic" +Language=am +Label=am + +[keyboard-be] +Description="Keyboard - Belgian" +Language=de +Label=be + +[keyboard-be-oss] +Description="Keyboard - Belgian - Belgian (alt.)" +Language=de +Label="be (oss)" + +[keyboard-be-oss_latin9] +Description="Keyboard - Belgian - Belgian (Latin-9 only, alt.)" +Language=de +Label="be (oss_latin9)" + +[keyboard-be-iso-alternate] +Description="Keyboard - Belgian - Belgian (ISO, alt.)" +Language=de +Label="be (iso-alternate)" + +[keyboard-be-nodeadkeys] +Description="Keyboard - Belgian - Belgian (no dead keys)" +Language=de +Label="be (nodeadkeys)" + +[keyboard-be-wang] +Description="Keyboard - Belgian - Belgian (Wang 724 AZERTY)" +Language=de +Label="be (wang)" + +[keyboard-be-sun_type6] +Description="Keyboard - Belgian - Belgian (Sun Type 6/7)" +Language=de +Label="be (sun_type6)" + +[keyboard-la] +Description="Keyboard - Lao" +Language=lo +Label=lo + +[keyboard-la-stea] +Description="Keyboard - Lao - Lao (STEA)" +Language=lo +Label="la (stea)" + +[keyboard-bt] +Description="Keyboard - Dzongkha" +Language=dz +Label=dz + +[keyboard-mm] +Description="Keyboard - Burmese" +Language=my +Label=my + +[keyboard-mm-zawgyi] +Description="Keyboard - Burmese - Burmese (Zawgyi)" +Language=my +Label="my-zwg (zawgyi)" + +[keyboard-mm-mnw] +Description="Keyboard - Burmese - Mon" +Language=mnw +Label=mnw + +[keyboard-mm-mnw-a1] +Description="Keyboard - Burmese - Mon (A1)" +Language=mnw +Label="mnw (mnw-a1)" + +[keyboard-mm-shn] +Description="Keyboard - Burmese - Shan" +Language=shn +Label=shn + +[keyboard-mm-zgt] +Description="Keyboard - Burmese - Shan (Zawgyi)" +Language=shn +Label="shn-zwg (zgt)" + +[keyboard-si] +Description="Keyboard - Slovenian" +Language=sl +Label=sl + +[keyboard-si-alternatequotes] +Description="Keyboard - Slovenian - Slovenian (with guillemets)" +Language=sl +Label="si (alternatequotes)" + +[keyboard-si-us] +Description="Keyboard - Slovenian - Slovenian (US)" +Language=sl +Label="si (us)" + +[keyboard-am] +Description="Keyboard - Armenian" +Language=hy +Label=hy + +[keyboard-am-phonetic] +Description="Keyboard - Armenian - Armenian (phonetic)" +Language=hy +Label="am (phonetic)" + +[keyboard-am-phonetic-alt] +Description="Keyboard - Armenian - Armenian (alt. phonetic)" +Language=hy +Label="am (phonetic-alt)" + +[keyboard-am-eastern] +Description="Keyboard - Armenian - Armenian (eastern)" +Language=hy +Label="am (eastern)" + +[keyboard-am-eastern-alt] +Description="Keyboard - Armenian - Armenian (alt. eastern)" +Language=hy +Label="am (eastern-alt)" + +[keyboard-am-western] +Description="Keyboard - Armenian - Armenian (western)" +Language=hy +Label="am (western)" + +[keyboard-am-olpc-phonetic] +Description="Keyboard - Armenian - Armenian (OLPC, phonetic)" +Language=hy +Label="am (olpc-phonetic)" + +[keyboard-by] +Description="Keyboard - Belarusian" +Language=be +Label=by + +[keyboard-by-legacy] +Description="Keyboard - Belarusian - Belarusian (legacy)" +Language=be +Label="by (legacy)" + +[keyboard-by-latin] +Description="Keyboard - Belarusian - Belarusian (Latin)" +Language=be +Label="by (latin)" + +[keyboard-by-intl] +Description="Keyboard - Belarusian - Belarusian (intl.)" +Language=be +Label="by (intl)" + +[keyboard-by-phonetic] +Description="Keyboard - Belarusian - Belarusian (phonetic)" +Language=be +Label="by (phonetic)" + +[keyboard-by-ru] +Description="Keyboard - Belarusian - Russian (Belarus)" +Language=ru +Label="by (ru)" + +[keyboard-vn] +Description="Keyboard - Vietnamese" +Language=vi +Label=vi + +[keyboard-vn-us] +Description="Keyboard - Vietnamese - Vietnamese (US)" +Language=vi +Label="vn (us)" + +[keyboard-vn-fr] +Description="Keyboard - Vietnamese - Vietnamese (France)" +Language=vi +Label="vn (fr)" + +[keyboard-vn-aderty] +Description="Keyboard - Vietnamese - Vietnamese (AÐERTY)" +Language=vi +Label="vn (aderty)" + +[keyboard-vn-qderty] +Description="Keyboard - Vietnamese - Vietnamese (QĐERTY)" +Language=vi +Label="vn (qderty)" + +[keyboard-ml] +Description="Keyboard - Bambara" +Language=bm +Label=bm + +[keyboard-ml-fr-oss] +Description="Keyboard - Bambara - French (Mali, alt.)" +Language=fr +Label="fr (fr-oss)" + +[keyboard-ml-us-mac] +Description="Keyboard - Bambara - English (Mali, US, Macintosh)" +Language=en +Label="en (us-mac)" + +[keyboard-ml-us-intl] +Description="Keyboard - Bambara - English (Mali, US, intl.)" +Language=en +Label="en (us-intl)" + +[keyboard-ara] +Description="Keyboard - Arabic" +Language=ar +Label=ar + +[keyboard-ara-digits] +Description="Keyboard - Arabic - Arabic (Eastern Arabic numerals)" +Language=ar +Label="ara (digits)" + +[keyboard-ara-azerty] +Description="Keyboard - Arabic - Arabic (AZERTY)" +Language=ar +Label="ara (azerty)" + +[keyboard-ara-azerty_digits] +Description="Keyboard - Arabic - Arabic (AZERTY, Eastern Arabic numerals)" +Language=ar +Label="ara (azerty_digits)" + +[keyboard-ara-buckwalter] +Description="Keyboard - Arabic - Arabic (Buckwalter)" +Language=ar +Label="ara (buckwalter)" + +[keyboard-ara-mac] +Description="Keyboard - Arabic - Arabic (Macintosh)" +Language=ar +Label="ara (mac)" + +[keyboard-ara-mac-phonetic] +Description="Keyboard - Arabic - Arabic (Macintosh, phonetic)" +Language=ar +Label="ara (mac-phonetic)" + +[keyboard-ara-olpc] +Description="Keyboard - Arabic - Arabic (OLPC)" +Language=ar +Label="ara (olpc)" + +[keyboard-ara-sun_type6] +Description="Keyboard - Arabic - Arabic (Sun Type 6/7)" +Language=ar +Label="ara (sun_type6)" + +[keyboard-ara-basic_ext] +Description="Keyboard - Arabic - Arabic (Arabic numerals, extensions in the 4th level)" +Language=ar +Label="ara (basic_ext)" + +[keyboard-ara-basic_ext_digits] +Description="Keyboard - Arabic - Arabic (Eastern Arabic numerals, extensions in the 4th level)" +Language=ar +Label="ara (basic_ext_digits)" + +[keyboard-ara-ergoarabic] +Description="Keyboard - Arabic - Arabic (ErgoArabic)" +Language=ar +Label="ara (ergoarabic)" + +[keyboard-ie] +Description="Keyboard - Irish" +Language=en +Label=ie + +[keyboard-ie-UnicodeExpert] +Description="Keyboard - Irish - Irish (UnicodeExpert)" +Language=en +Label="ie (UnicodeExpert)" + +[keyboard-ie-CloGaelach] +Description="Keyboard - Irish - CloGaelach" +Language=ga +Label="ie (CloGaelach)" + +[keyboard-ie-ogam] +Description="Keyboard - Irish - Ogham" +Language=sga +Label="ie (ogam)" + +[keyboard-ie-ogam_is434] +Description="Keyboard - Irish - Ogham (IS434)" +Language=sga +Label="ie (ogam_is434)" + +[keyboard-cm] +Description="Keyboard - English (Cameroon)" +Language=en +Label=cm + +[keyboard-cm-french] +Description="Keyboard - English (Cameroon) - French (Cameroon)" +Language=fr +Label="fr (french)" + +[keyboard-cm-qwerty] +Description="Keyboard - English (Cameroon) - Cameroon Multilingual (QWERTY, intl.)" +Language=en +Label="cm (qwerty)" + +[keyboard-cm-azerty] +Description="Keyboard - English (Cameroon) - Cameroon (AZERTY, intl.)" +Language=fr +Label="cm (azerty)" + +[keyboard-cm-dvorak] +Description="Keyboard - English (Cameroon) - Cameroon (Dvorak, intl.)" +Language=en +Label="cm (dvorak)" + +[keyboard-cm-mmuock] +Description="Keyboard - English (Cameroon) - Mmuock" +Language=en +Label="cm (mmuock)" + +[keyboard-iq] +Description="Keyboard - Arabic (Iraq)" +Language=ar +Label=ar + +[keyboard-iq-ku] +Description="Keyboard - Arabic (Iraq) - Kurdish (Iraq, Latin Q)" +Language=ku +Label=ku + +[keyboard-iq-ku_alt] +Description="Keyboard - Arabic (Iraq) - Kurdish (Iraq, Latin Alt-Q)" +Language=ku +Label="ku (ku_alt)" + +[keyboard-iq-ku_f] +Description="Keyboard - Arabic (Iraq) - Kurdish (Iraq, F)" +Language=ku +Label="ku (ku_f)" + +[keyboard-iq-ku_ara] +Description="Keyboard - Arabic (Iraq) - Kurdish (Iraq, Arabic-Latin)" +Language=ku +Label="ku (ku_ara)" + +[keyboard-af] +Description="Keyboard - Dari" +Language=prs +Label=fa + +[keyboard-af-ps] +Description="Keyboard - Dari - Pashto" +Language=ps +Label=ps + +[keyboard-af-uz] +Description="Keyboard - Dari - Uzbek (Afghanistan)" +Language=uz +Label=uz + +[keyboard-af-fa-olpc] +Description="Keyboard - Dari - Dari (Afghanistan, OLPC)" +Language=prs +Label="fa (fa-olpc)" + +[keyboard-af-ps-olpc] +Description="Keyboard - Dari - Pashto (Afghanistan, OLPC)" +Language=ps +Label="ps (ps-olpc)" + +[keyboard-af-uz-olpc] +Description="Keyboard - Dari - Uzbek (Afghanistan, OLPC)" +Language=uz +Label="uz (uz-olpc)" + +[keyboard-hr] +Description="Keyboard - Croatian" +Language=hr +Label=hr + +[keyboard-hr-alternatequotes] +Description="Keyboard - Croatian - Croatian (with guillemets)" +Language=hr +Label="hr (alternatequotes)" + +[keyboard-hr-unicode] +Description="Keyboard - Croatian - Croatian (with Croatian digraphs)" +Language=hr +Label="hr (unicode)" + +[keyboard-hr-unicodeus] +Description="Keyboard - Croatian - Croatian (US, with Croatian digraphs)" +Language=hr +Label="hr (unicodeus)" + +[keyboard-hr-us] +Description="Keyboard - Croatian - Croatian (US)" +Language=hr +Label="hr (us)" + +[keyboard-ma] +Description="Keyboard - Arabic (Morocco)" +Language=ary +Label=ar + +[keyboard-ma-tifinagh] +Description="Keyboard - Arabic (Morocco) - Berber (Morocco, Tifinagh)" +Language= +Label="ber (tifinagh)" + +[keyboard-ma-tifinagh-alt] +Description="Keyboard - Arabic (Morocco) - Berber (Morocco, Tifinagh alt.)" +Language= +Label="ber (tifinagh-alt)" + +[keyboard-ma-tifinagh-alt-phonetic] +Description="Keyboard - Arabic (Morocco) - Berber (Morocco, Tifinagh phonetic, alt.)" +Language= +Label="ber (tifinagh-alt-phonetic)" + +[keyboard-ma-tifinagh-extended] +Description="Keyboard - Arabic (Morocco) - Berber (Morocco, Tifinagh extended)" +Language= +Label="ber (tifinagh-extended)" + +[keyboard-ma-tifinagh-phonetic] +Description="Keyboard - Arabic (Morocco) - Berber (Morocco, Tifinagh phonetic)" +Language= +Label="ber (tifinagh-phonetic)" + +[keyboard-ma-tifinagh-extended-phonetic] +Description="Keyboard - Arabic (Morocco) - Berber (Morocco, Tifinagh extended phonetic)" +Language= +Label="ber (tifinagh-extended-phonetic)" + +[keyboard-ma-french] +Description="Keyboard - Arabic (Morocco) - French (Morocco)" +Language=fr +Label="fr (french)" + +[keyboard-ma-rif] +Description="Keyboard - Arabic (Morocco) - Tarifit" +Language=rif +Label=rif + +[keyboard-sy] +Description="Keyboard - Arabic (Syria)" +Language=syr +Label=ar + +[keyboard-sy-syc] +Description="Keyboard - Arabic (Syria) - Syriac" +Language=syr +Label=syc + +[keyboard-sy-syc_phonetic] +Description="Keyboard - Arabic (Syria) - Syriac (phonetic)" +Language=syr +Label="syc (syc_phonetic)" + +[keyboard-sy-ku] +Description="Keyboard - Arabic (Syria) - Kurdish (Syria, Latin Q)" +Language=ku +Label=ku + +[keyboard-sy-ku_alt] +Description="Keyboard - Arabic (Syria) - Kurdish (Syria, Latin Alt-Q)" +Language=ku +Label="ku (ku_alt)" + +[keyboard-sy-ku_f] +Description="Keyboard - Arabic (Syria) - Kurdish (Syria, F)" +Language=ku +Label="ku (ku_f)" + +[keyboard-at] +Description="Keyboard - German (Austria)" +Language=de +Label=de + +[keyboard-at-nodeadkeys] +Description="Keyboard - German (Austria) - German (Austria, no dead keys)" +Language=de +Label="at (nodeadkeys)" + +[keyboard-at-mac] +Description="Keyboard - German (Austria) - German (Austria, Macintosh)" +Language=de +Label="at (mac)" + +[keyboard-nz] +Description="Keyboard - English (New Zealand)" +Language=en +Label=en + +[keyboard-nz-mao] +Description="Keyboard - English (New Zealand) - Maori" +Language=mi +Label="mi (mao)" + +[keyboard-epo] +Description="Keyboard - Esperanto" +Language=eo +Label=eo + +[keyboard-epo-legacy] +Description="Keyboard - Esperanto - Esperanto (legacy)" +Language=eo +Label="epo (legacy)" + +[keyboard-eu] +Description="Keyboard - EurKEY (US)" +Language=ca +Label=eu + +[keyboard-za] +Description="Keyboard - English (South Africa)" +Language=en +Label=en + +[keyboard-fo] +Description="Keyboard - Faroese" +Language=fo +Label=fo + +[keyboard-fo-nodeadkeys] +Description="Keyboard - Faroese - Faroese (no dead keys)" +Language=fo +Label="fo (nodeadkeys)" + +[keyboard-gb] +Description="Keyboard - English (UK)" +Language=en +Label=en + +[keyboard-gb-extd] +Description="Keyboard - English (UK) - English (UK, extended, Windows)" +Language=en +Label="gb (extd)" + +[keyboard-gb-intl] +Description="Keyboard - English (UK) - English (UK, intl., with dead keys)" +Language=en +Label="gb (intl)" + +[keyboard-gb-dvorak] +Description="Keyboard - English (UK) - English (UK, Dvorak)" +Language=en +Label="gb (dvorak)" + +[keyboard-gb-dvorakukp] +Description="Keyboard - English (UK) - English (UK, Dvorak, with UK punctuation)" +Language=en +Label="gb (dvorakukp)" + +[keyboard-gb-mac] +Description="Keyboard - English (UK) - English (UK, Macintosh)" +Language=en +Label="gb (mac)" + +[keyboard-gb-mac_intl] +Description="Keyboard - English (UK) - English (UK, Macintosh, intl.)" +Language=en +Label="gb (mac_intl)" + +[keyboard-gb-colemak] +Description="Keyboard - English (UK) - English (UK, Colemak)" +Language=en +Label="gb (colemak)" + +[keyboard-gb-colemak_dh] +Description="Keyboard - English (UK) - English (UK, Colemak-DH)" +Language=en +Label="gb (colemak_dh)" + +[keyboard-gb-gla] +Description="Keyboard - English (UK) - Scottish Gaelic" +Language=en +Label="gd (gla)" + +[keyboard-gb-pl] +Description="Keyboard - English (UK) - Polish (British keyboard)" +Language=pl +Label=pl + +[keyboard-gb-sun_type6] +Description="Keyboard - English (UK) - English (UK, Sun Type 6/7)" +Language=en +Label="gb (sun_type6)" + +[keyboard-ke] +Description="Keyboard - Swahili (Kenya)" +Language=sw +Label=sw + +[keyboard-ke-kik] +Description="Keyboard - Swahili (Kenya) - Kikuyu" +Language=ki +Label="ki (kik)" + +[keyboard-md] +Description="Keyboard - Moldavian" +Language=ro +Label=ro + +[keyboard-md-gag] +Description="Keyboard - Moldavian - Gagauz (Moldova)" +Language=gag +Label=gag + +[keyboard-us] +Description="Keyboard - English (US)" +Language=en +Label=en + +[keyboard-us-euro] +Description="Keyboard - English (US) - English (US, euro on 5)" +Language=en +Label="us (euro)" + +[keyboard-us-intl] +Description="Keyboard - English (US) - English (US, intl., with dead keys)" +Language=en +Label="us (intl)" + +[keyboard-us-alt-intl] +Description="Keyboard - English (US) - English (US, alt. intl.)" +Language=en +Label="us (alt-intl)" + +[keyboard-us-altgr-intl] +Description="Keyboard - English (US) - English (intl., with AltGr dead keys)" +Language=en +Label="us (altgr-intl)" + +[keyboard-us-mac] +Description="Keyboard - English (US) - English (Macintosh)" +Language=en +Label="us (mac)" + +[keyboard-us-colemak] +Description="Keyboard - English (US) - English (Colemak)" +Language=en +Label="us (colemak)" + +[keyboard-us-colemak_dh] +Description="Keyboard - English (US) - English (Colemak-DH)" +Language=en +Label="us (colemak_dh)" + +[keyboard-us-colemak_dh_wide] +Description="Keyboard - English (US) - English (Colemak-DH Wide)" +Language=en +Label="us (colemak_dh_wide)" + +[keyboard-us-colemak_dh_ortho] +Description="Keyboard - English (US) - English (Colemak-DH Ortholinear)" +Language=en +Label="us (colemak_dh_ortho)" + +[keyboard-us-colemak_dh_iso] +Description="Keyboard - English (US) - English (Colemak-DH ISO)" +Language=en +Label="us (colemak_dh_iso)" + +[keyboard-us-colemak_dh_wide_iso] +Description="Keyboard - English (US) - English (Colemak-DH Wide ISO)" +Language=en +Label="us (colemak_dh_wide_iso)" + +[keyboard-us-dvorak] +Description="Keyboard - English (US) - English (Dvorak)" +Language=en +Label="us (dvorak)" + +[keyboard-us-dvorak-intl] +Description="Keyboard - English (US) - English (Dvorak, intl., with dead keys)" +Language=en +Label="us (dvorak-intl)" + +[keyboard-us-dvorak-alt-intl] +Description="Keyboard - English (US) - English (Dvorak, alt. intl.)" +Language=en +Label="us (dvorak-alt-intl)" + +[keyboard-us-dvorak-l] +Description="Keyboard - English (US) - English (Dvorak, left-handed)" +Language=en +Label="us (dvorak-l)" + +[keyboard-us-dvorak-r] +Description="Keyboard - English (US) - English (Dvorak, right-handed)" +Language=en +Label="us (dvorak-r)" + +[keyboard-us-dvorak-classic] +Description="Keyboard - English (US) - English (classic Dvorak)" +Language=en +Label="us (dvorak-classic)" + +[keyboard-us-dvp] +Description="Keyboard - English (US) - English (programmer Dvorak)" +Language=en +Label="us (dvp)" + +[keyboard-us-dvorak-mac] +Description="Keyboard - English (US) - English (Dvorak, Macintosh)" +Language=en +Label="us (dvorak-mac)" + +[keyboard-us-norman] +Description="Keyboard - English (US) - English (Norman)" +Language=en +Label="us (norman)" + +[keyboard-us-symbolic] +Description="Keyboard - English (US) - English (US, Symbolic)" +Language=en +Label="us (symbolic)" + +[keyboard-us-workman] +Description="Keyboard - English (US) - English (Workman)" +Language=en +Label="us (workman)" + +[keyboard-us-workman-intl] +Description="Keyboard - English (US) - English (Workman, intl., with dead keys)" +Language=en +Label="us (workman-intl)" + +[keyboard-us-olpc2] +Description="Keyboard - English (US) - English (the divide/multiply toggle the layout)" +Language=en +Label="us (olpc2)" + +[keyboard-us-chr] +Description="Keyboard - English (US) - Cherokee" +Language=chr +Label=chr + +[keyboard-us-haw] +Description="Keyboard - English (US) - Hawaiian" +Language=haw +Label=haw + +[keyboard-us-rus] +Description="Keyboard - English (US) - Russian (US, phonetic)" +Language=ru +Label="ru (rus)" + +[keyboard-us-hbs] +Description="Keyboard - English (US) - Serbo-Croatian (US)" +Language=en +Label="us (hbs)" + +[keyboard-us-intl-unicode] +Description="Keyboard - English (US) - English (US, intl., AltGr Unicode combining)" +Language=en +Label="us (intl-unicode)" + +[keyboard-us-alt-intl-unicode] +Description="Keyboard - English (US) - English (US, intl., AltGr Unicode combining, alt.)" +Language=en +Label="us (alt-intl-unicode)" + +[keyboard-us-ats] +Description="Keyboard - English (US) - Atsina" +Language=en +Label="us (ats)" + +[keyboard-us-crd] +Description="Keyboard - English (US) - Coeur d'Alene Salish" +Language=crd +Label="us (crd)" + +[keyboard-us-cz_sk_de] +Description="Keyboard - English (US) - Czech, Slovak and German (US)" +Language=en +Label="us (cz_sk_de)" + +[keyboard-us-cz_sk_pl_de_es_fi_sv] +Description="Keyboard - English (US) - Czech, Slovak, Polish, Spanish, Finnish, Swedish and German (US)" +Language=en +Label="us (cz_sk_pl_de_es_fi_sv)" + +[keyboard-us-drix] +Description="Keyboard - English (US) - English (Drix)" +Language=en +Label="us (drix)" + +[keyboard-us-de_se_fi] +Description="Keyboard - English (US) - German, Swedish and Finnish (US)" +Language=en +Label="us (de_se_fi)" + +[keyboard-us-ibm238l] +Description="Keyboard - English (US) - English (US, IBM Arabic 238_L)" +Language=en +Label="us (ibm238l)" + +[keyboard-us-sun_type6] +Description="Keyboard - English (US) - English (US, Sun Type 6/7)" +Language=en +Label="us (sun_type6)" + +[keyboard-us-carpalx] +Description="Keyboard - English (US) - English (Carpalx)" +Language=en +Label="us (carpalx)" + +[keyboard-us-carpalx-intl] +Description="Keyboard - English (US) - English (Carpalx, intl., with dead keys)" +Language=en +Label="us (carpalx-intl)" + +[keyboard-us-carpalx-altgr-intl] +Description="Keyboard - English (US) - English (Carpalx, intl., with AltGr dead keys)" +Language=en +Label="us (carpalx-altgr-intl)" + +[keyboard-us-carpalx-full] +Description="Keyboard - English (US) - English (Carpalx, full optimization)" +Language=en +Label="us (carpalx-full)" + +[keyboard-us-carpalx-full-intl] +Description="Keyboard - English (US) - English (Carpalx, full optimization, intl., with dead keys)" +Language=en +Label="us (carpalx-full-intl)" + +[keyboard-us-carpalx-full-altgr-intl] +Description="Keyboard - English (US) - English (Carpalx, full optimization, intl., with AltGr dead keys)" +Language=en +Label="us (carpalx-full-altgr-intl)" + +[keyboard-us-3l] +Description="Keyboard - English (US) - English (3l)" +Language=en +Label="us (3l)" + +[keyboard-us-3l-cros] +Description="Keyboard - English (US) - English (3l, Chromebook)" +Language=en +Label="us (3l-cros)" + +[keyboard-us-3l-emacs] +Description="Keyboard - English (US) - English (3l, emacs)" +Language=en +Label="us (3l-emacs)" + +[keyboard-us-workman-p] +Description="Keyboard - English (US) - English (Workman-P)" +Language=en +Label=workman-p + +[keyboard-us-scn] +Description="Keyboard - English (US) - Sicilian (US keyboard)" +Language=en +Label="us (scn)" + +[keyboard-us-altgr-weur] +Description="Keyboard - English (US) - English (Western European AltGr dead keys)" +Language=en +Label="us (altgr-weur)" + +[keyboard-ge] +Description="Keyboard - Georgian" +Language=ka +Label=ka + +[keyboard-ge-ergonomic] +Description="Keyboard - Georgian - Georgian (ergonomic)" +Language=ka +Label="ge (ergonomic)" + +[keyboard-ge-mess] +Description="Keyboard - Georgian - Georgian (MESS)" +Language=ka +Label="ge (mess)" + +[keyboard-ge-os] +Description="Keyboard - Georgian - Ossetian (Georgia)" +Language=os +Label="ge (os)" + +[keyboard-ge-ru] +Description="Keyboard - Georgian - Russian (Georgia)" +Language=ru +Label=ru + +[keyboard-es] +Description="Keyboard - Spanish" +Language=es +Label=es + +[keyboard-es-nodeadkeys] +Description="Keyboard - Spanish - Spanish (no dead keys)" +Language=es +Label="es (nodeadkeys)" + +[keyboard-es-deadtilde] +Description="Keyboard - Spanish - Spanish (dead tilde)" +Language=es +Label="es (deadtilde)" + +[keyboard-es-winkeys] +Description="Keyboard - Spanish - Spanish (Windows)" +Language=es +Label="es (winkeys)" + +[keyboard-es-dvorak] +Description="Keyboard - Spanish - Spanish (Dvorak)" +Language=es +Label="es (dvorak)" + +[keyboard-es-ast] +Description="Keyboard - Spanish - Asturian (Spain, with bottom-dot H and L)" +Language=ast +Label=ast + +[keyboard-es-cat] +Description="Keyboard - Spanish - Catalan (Spain, with middle-dot L)" +Language=ca +Label="ca (cat)" + +[keyboard-es-sun_type6] +Description="Keyboard - Spanish - Spanish (Sun Type 6/7)" +Language=es +Label="es (sun_type6)" + +[keyboard-ee] +Description="Keyboard - Estonian" +Language=et +Label=et + +[keyboard-ee-nodeadkeys] +Description="Keyboard - Estonian - Estonian (no dead keys)" +Language=et +Label="ee (nodeadkeys)" + +[keyboard-ee-dvorak] +Description="Keyboard - Estonian - Estonian (Dvorak)" +Language=et +Label="ee (dvorak)" + +[keyboard-ee-us] +Description="Keyboard - Estonian - Estonian (US)" +Language=et +Label="ee (us)" + +[keyboard-ee-sun_type6] +Description="Keyboard - Estonian - Estonian (Sun Type 6/7)" +Language=et +Label="ee (sun_type6)" + +[keyboard-bd] +Description="Keyboard - Bangla" +Language=bn +Label=bn + +[keyboard-bd-probhat] +Description="Keyboard - Bangla - Bangla (Probhat)" +Language=bn +Label="bd (probhat)" + +[keyboard-ph] +Description="Keyboard - Filipino" +Language=fil +Label=ph + +[keyboard-ph-qwerty-bay] +Description="Keyboard - Filipino - Filipino (QWERTY, Baybayin)" +Language=fil +Label="ph (qwerty-bay)" + +[keyboard-ph-capewell-dvorak] +Description="Keyboard - Filipino - Filipino (Capewell-Dvorak, Latin)" +Language=fil +Label="ph (capewell-dvorak)" + +[keyboard-ph-capewell-dvorak-bay] +Description="Keyboard - Filipino - Filipino (Capewell-Dvorak, Baybayin)" +Language=fil +Label="ph (capewell-dvorak-bay)" + +[keyboard-ph-capewell-qwerf2k6] +Description="Keyboard - Filipino - Filipino (Capewell-QWERF 2006, Latin)" +Language=fil +Label="ph (capewell-qwerf2k6)" + +[keyboard-ph-capewell-qwerf2k6-bay] +Description="Keyboard - Filipino - Filipino (Capewell-QWERF 2006, Baybayin)" +Language=fil +Label="ph (capewell-qwerf2k6-bay)" + +[keyboard-ph-colemak] +Description="Keyboard - Filipino - Filipino (Colemak, Latin)" +Language=fil +Label="ph (colemak)" + +[keyboard-ph-colemak-bay] +Description="Keyboard - Filipino - Filipino (Colemak, Baybayin)" +Language=fil +Label="ph (colemak-bay)" + +[keyboard-ph-dvorak] +Description="Keyboard - Filipino - Filipino (Dvorak, Latin)" +Language=fil +Label="ph (dvorak)" + +[keyboard-ph-dvorak-bay] +Description="Keyboard - Filipino - Filipino (Dvorak, Baybayin)" +Language=fil +Label="ph (dvorak-bay)" + +[keyboard-uz] +Description="Keyboard - Uzbek" +Language=uz +Label=uz + +[keyboard-uz-latin] +Description="Keyboard - Uzbek - Uzbek (Latin)" +Language=uz +Label="uz (latin)" + +[keyboard-lt] +Description="Keyboard - Lithuanian" +Language=lt +Label=lt + +[keyboard-lt-std] +Description="Keyboard - Lithuanian - Lithuanian (standard)" +Language=lt +Label="lt (std)" + +[keyboard-lt-us] +Description="Keyboard - Lithuanian - Lithuanian (US)" +Language=lt +Label="lt (us)" + +[keyboard-lt-ibm] +Description="Keyboard - Lithuanian - Lithuanian (IBM)" +Language=lt +Label="lt (ibm)" + +[keyboard-lt-lekp] +Description="Keyboard - Lithuanian - Lithuanian (LEKP)" +Language=lt +Label="lt (lekp)" + +[keyboard-lt-lekpa] +Description="Keyboard - Lithuanian - Lithuanian (LEKPa)" +Language=lt +Label="lt (lekpa)" + +[keyboard-lt-ratise] +Description="Keyboard - Lithuanian - Lithuanian (Ratise)" +Language=lt +Label="lt (ratise)" + +[keyboard-lt-sgs] +Description="Keyboard - Lithuanian - Samogitian" +Language=sgs +Label="lt (sgs)" + +[keyboard-lt-us_dvorak] +Description="Keyboard - Lithuanian - Lithuanian (Dvorak)" +Language=lt +Label="lt (us_dvorak)" + +[keyboard-lt-sun_type6] +Description="Keyboard - Lithuanian - Lithuanian (Sun Type 6/7)" +Language=lt +Label="lt (sun_type6)" + +[keyboard-fi] +Description="Keyboard - Finnish" +Language=fi +Label=fi + +[keyboard-fi-winkeys] +Description="Keyboard - Finnish - Finnish (Windows)" +Language=fi +Label="fi (winkeys)" + +[keyboard-fi-classic] +Description="Keyboard - Finnish - Finnish (classic)" +Language=fi +Label="fi (classic)" + +[keyboard-fi-nodeadkeys] +Description="Keyboard - Finnish - Finnish (classic, no dead keys)" +Language=fi +Label="fi (nodeadkeys)" + +[keyboard-fi-mac] +Description="Keyboard - Finnish - Finnish (Macintosh)" +Language=fi +Label="fi (mac)" + +[keyboard-fi-smi] +Description="Keyboard - Finnish - Northern Saami (Finland)" +Language=se +Label="fi (smi)" + +[keyboard-fi-sun_type6] +Description="Keyboard - Finnish - Finnish (Sun Type 6/7)" +Language=fi +Label="fi (sun_type6)" + +[keyboard-fi-das] +Description="Keyboard - Finnish - Finnish (DAS)" +Language=fi +Label="fi (das)" + +[keyboard-fi-fidvorak] +Description="Keyboard - Finnish - Finnish (Dvorak)" +Language=fi +Label="fi (fidvorak)" + +[keyboard-cn] +Description="Keyboard - Chinese" +Language=zh +Label=zh + +[keyboard-cn-altgr-pinyin] +Description="Keyboard - Chinese - Hanyu Pinyin Letters (with AltGr dead keys)" +Language=zh +Label="cn (altgr-pinyin)" + +[keyboard-cn-mon_trad] +Description="Keyboard - Chinese - Mongolian (Bichig)" +Language=mvf +Label="cn (mon_trad)" + +[keyboard-cn-mon_trad_todo] +Description="Keyboard - Chinese - Mongolian (Todo)" +Language=mvf +Label="cn (mon_trad_todo)" + +[keyboard-cn-mon_trad_xibe] +Description="Keyboard - Chinese - Mongolian (Xibe)" +Language=sjo +Label="cn (mon_trad_xibe)" + +[keyboard-cn-mon_trad_manchu] +Description="Keyboard - Chinese - Mongolian (Manchu)" +Language=mnc +Label="cn (mon_trad_manchu)" + +[keyboard-cn-mon_trad_galik] +Description="Keyboard - Chinese - Mongolian (Galik)" +Language=mvf +Label="cn (mon_trad_galik)" + +[keyboard-cn-mon_todo_galik] +Description="Keyboard - Chinese - Mongolian (Todo Galik)" +Language=mvf +Label="cn (mon_todo_galik)" + +[keyboard-cn-mon_manchu_galik] +Description="Keyboard - Chinese - Mongolian (Manchu Galik)" +Language=mnc +Label="cn (mon_manchu_galik)" + +[keyboard-cn-tib] +Description="Keyboard - Chinese - Tibetan" +Language=bo +Label="cn (tib)" + +[keyboard-cn-tib_asciinum] +Description="Keyboard - Chinese - Tibetan (with ASCII numerals)" +Language=bo +Label="cn (tib_asciinum)" + +[keyboard-cn-ug] +Description="Keyboard - Chinese - Uyghur" +Language=ug +Label=ug + +[keyboard-ca] +Description="Keyboard - French (Canada)" +Language=fr +Label=fr + +[keyboard-ca-fr-dvorak] +Description="Keyboard - French (Canada) - French (Canada, Dvorak)" +Language=fr +Label="fr (fr-dvorak)" + +[keyboard-ca-fr-legacy] +Description="Keyboard - French (Canada) - French (Canada, legacy)" +Language=fr +Label="fr (fr-legacy)" + +[keyboard-ca-multix] +Description="Keyboard - French (Canada) - Canadian (CSA)" +Language=fr +Label="ca (multix)" + +[keyboard-ca-eng] +Description="Keyboard - French (Canada) - English (Canada)" +Language=en +Label="en (eng)" + +[keyboard-ca-ike] +Description="Keyboard - French (Canada) - Inuktitut" +Language=iu +Label=ike + +[keyboard-ca-kut] +Description="Keyboard - French (Canada) - Kutenai" +Language=fr +Label=kut + +[keyboard-ca-shs] +Description="Keyboard - French (Canada) - Secwepemctsin" +Language=fr +Label=shs + +[keyboard-ca-sun_type6] +Description="Keyboard - French (Canada) - Multilingual (Canada, Sun Type 6/7)" +Language=fr +Label="ca (sun_type6)" + +[keyboard-gh] +Description="Keyboard - English (Ghana)" +Language=en +Label=en + +[keyboard-gh-generic] +Description="Keyboard - English (Ghana) - English (Ghana, multilingual)" +Language=en +Label="gh (generic)" + +[keyboard-gh-gillbt] +Description="Keyboard - English (Ghana) - English (Ghana, GILLBT)" +Language=en +Label="gh (gillbt)" + +[keyboard-gh-akan] +Description="Keyboard - English (Ghana) - Akan" +Language=ak +Label="ak (akan)" + +[keyboard-gh-avn] +Description="Keyboard - English (Ghana) - Avatime" +Language=avn +Label=avn + +[keyboard-gh-ewe] +Description="Keyboard - English (Ghana) - Ewe" +Language=ee +Label="ee (ewe)" + +[keyboard-gh-fula] +Description="Keyboard - English (Ghana) - Fula" +Language=ff +Label="ff (fula)" + +[keyboard-gh-ga] +Description="Keyboard - English (Ghana) - Ga" +Language=gaa +Label="gaa (ga)" + +[keyboard-gh-hausa] +Description="Keyboard - English (Ghana) - Hausa (Ghana)" +Language=ha +Label="ha (hausa)" + +[keyboard-fr] +Description="Keyboard - French" +Language=fr +Label=fr + +[keyboard-fr-nodeadkeys] +Description="Keyboard - French - French (no dead keys)" +Language=fr +Label="fr (nodeadkeys)" + +[keyboard-fr-oss] +Description="Keyboard - French - French (alt.)" +Language=fr +Label="fr (oss)" + +[keyboard-fr-oss_nodeadkeys] +Description="Keyboard - French - French (alt., no dead keys)" +Language=fr +Label="fr (oss_nodeadkeys)" + +[keyboard-fr-oss_latin9] +Description="Keyboard - French - French (alt., Latin-9 only)" +Language=fr +Label="fr (oss_latin9)" + +[keyboard-fr-latin9] +Description="Keyboard - French - French (legacy, alt.)" +Language=fr +Label="fr (latin9)" + +[keyboard-fr-latin9_nodeadkeys] +Description="Keyboard - French - French (legacy, alt., no dead keys)" +Language=fr +Label="fr (latin9_nodeadkeys)" + +[keyboard-fr-azerty] +Description="Keyboard - French - French (AZERTY)" +Language=fr +Label="fr (azerty)" + +[keyboard-fr-afnor] +Description="Keyboard - French - French (AZERTY, AFNOR)" +Language=fr +Label="fr (afnor)" + +[keyboard-fr-bepo] +Description="Keyboard - French - French (BEPO)" +Language=fr +Label="fr (bepo)" + +[keyboard-fr-bepo_latin9] +Description="Keyboard - French - French (BEPO, Latin-9 only)" +Language=fr +Label="fr (bepo_latin9)" + +[keyboard-fr-bepo_afnor] +Description="Keyboard - French - French (BEPO, AFNOR)" +Language=fr +Label="fr (bepo_afnor)" + +[keyboard-fr-dvorak] +Description="Keyboard - French - French (Dvorak)" +Language=fr +Label="fr (dvorak)" + +[keyboard-fr-ergol] +Description="Keyboard - French - French (Ergo‑L)" +Language=fr +Label="fr (ergol)" + +[keyboard-fr-ergol_iso] +Description="Keyboard - French - French (Ergo‑L, ISO variant)" +Language=fr +Label="fr (ergol_iso)" + +[keyboard-fr-mac] +Description="Keyboard - French - French (Macintosh)" +Language=fr +Label="fr (mac)" + +[keyboard-fr-us] +Description="Keyboard - French - French (US)" +Language=fr +Label="fr (us)" + +[keyboard-fr-bre] +Description="Keyboard - French - Breton (France)" +Language=br +Label="fr (bre)" + +[keyboard-fr-oci] +Description="Keyboard - French - Occitan" +Language=oc +Label="fr (oci)" + +[keyboard-fr-geo] +Description="Keyboard - French - Georgian (France, AZERTY Tskapo)" +Language=ka +Label="fr (geo)" + +[keyboard-fr-sun_type6] +Description="Keyboard - French - French (Sun Type 6/7)" +Language=fr +Label="fr (sun_type6)" + +[keyboard-fr-us-alt] +Description="Keyboard - French - French (US with dead keys, alt.)" +Language=fr +Label="fr (us-alt)" + +[keyboard-fr-us-azerty] +Description="Keyboard - French - French (US, AZERTY)" +Language=fr +Label="fr (us-azerty)" + +[keyboard-eg] +Description="Keyboard - Arabic (Egypt)" +Language=ar +Label=ar + +[keyboard-eg-cop] +Description="Keyboard - Arabic (Egypt) - Coptic" +Language=cop +Label=cop + +[keyboard-cd] +Description="Keyboard - French (Democratic Republic of the Congo)" +Language=fr +Label=fr + +[keyboard-tg] +Description="Keyboard - French (Togo)" +Language=fr +Label=fr + +[keyboard-kz] +Description="Keyboard - Kazakh" +Language=kk +Label=kk + +[keyboard-kz-kazrus] +Description="Keyboard - Kazakh - Kazakh (with Russian)" +Language=kk +Label="kz (kazrus)" + +[keyboard-kz-ext] +Description="Keyboard - Kazakh - Kazakh (extended)" +Language=kk +Label="kz (ext)" + +[keyboard-kz-latin] +Description="Keyboard - Kazakh - Kazakh (Latin)" +Language=kk +Label="kz (latin)" + +[keyboard-kz-ruskaz] +Description="Keyboard - Kazakh - Russian (Kazakhstan, with Kazakh)" +Language=ru +Label="ru (ruskaz)" + +[keyboard-ch] +Description="Keyboard - German (Switzerland)" +Language=de +Label=de + +[keyboard-ch-de_nodeadkeys] +Description="Keyboard - German (Switzerland) - German (Switzerland, no dead keys)" +Language=de +Label="de (de_nodeadkeys)" + +[keyboard-ch-de_mac] +Description="Keyboard - German (Switzerland) - German (Switzerland, Macintosh)" +Language=de +Label="de (de_mac)" + +[keyboard-ch-legacy] +Description="Keyboard - German (Switzerland) - German (Switzerland, legacy)" +Language=de +Label="ch (legacy)" + +[keyboard-ch-fr] +Description="Keyboard - German (Switzerland) - French (Switzerland)" +Language=fr +Label=fr + +[keyboard-ch-fr_nodeadkeys] +Description="Keyboard - German (Switzerland) - French (Switzerland, no dead keys)" +Language=fr +Label="fr (fr_nodeadkeys)" + +[keyboard-ch-fr_mac] +Description="Keyboard - German (Switzerland) - French (Switzerland, Macintosh)" +Language=fr +Label="fr (fr_mac)" + +[keyboard-ch-sun_type6_de] +Description="Keyboard - German (Switzerland) - German (Switzerland, Sun Type 6/7)" +Language=de +Label="ch (sun_type6_de)" + +[keyboard-ch-sun_type6_fr] +Description="Keyboard - German (Switzerland) - French (Switzerland, Sun Type 6/7)" +Language=de +Label="ch (sun_type6_fr)" + +[keyboard-gr] +Description="Keyboard - Greek" +Language=el +Label=gr + +[keyboard-gr-simple] +Description="Keyboard - Greek - Greek (simple)" +Language=el +Label="gr (simple)" + +[keyboard-gr-nodeadkeys] +Description="Keyboard - Greek - Greek (no dead keys)" +Language=el +Label="gr (nodeadkeys)" + +[keyboard-gr-polytonic] +Description="Keyboard - Greek - Greek (polytonic)" +Language=el +Label="gr (polytonic)" + +[keyboard-gr-sun_type6] +Description="Keyboard - Greek - Greek (Sun Type 6/7)" +Language=el +Label="gr (sun_type6)" + +[keyboard-gr-colemak] +Description="Keyboard - Greek - Greek (Colemak)" +Language=el +Label="gr (colemak)" + +[keyboard-tr] +Description="Keyboard - Turkish" +Language=tr +Label=tr + +[keyboard-tr-f] +Description="Keyboard - Turkish - Turkish (F)" +Language=tr +Label="tr (f)" + +[keyboard-tr-e] +Description="Keyboard - Turkish - Turkish (E)" +Language=tr +Label="tr (e)" + +[keyboard-tr-alt] +Description="Keyboard - Turkish - Turkish (Alt-Q)" +Language=tr +Label="tr (alt)" + +[keyboard-tr-intl] +Description="Keyboard - Turkish - Turkish (intl., with dead keys)" +Language=tr +Label="tr (intl)" + +[keyboard-tr-ku] +Description="Keyboard - Turkish - Kurdish (Turkey, Latin Q)" +Language=ku +Label=ku + +[keyboard-tr-ku_f] +Description="Keyboard - Turkish - Kurdish (Turkey, F)" +Language=ku +Label="ku (ku_f)" + +[keyboard-tr-ku_alt] +Description="Keyboard - Turkish - Kurdish (Turkey, Latin Alt-Q)" +Language=ku +Label="ku (ku_alt)" + +[keyboard-tr-sun_type6] +Description="Keyboard - Turkish - Turkish (Sun Type 6/7)" +Language=tr +Label="tr (sun_type6)" + +[keyboard-tr-us] +Description="Keyboard - Turkish - Turkish (i and ı swapped)" +Language=tr +Label="tr (us)" + +[keyboard-tr-otk] +Description="Keyboard - Turkish - Old Turkic" +Language=tr +Label="tr (otk)" + +[keyboard-tr-otkf] +Description="Keyboard - Turkish - Old Turkic (F)" +Language=tr +Label="tr (otkf)" + +[keyboard-tr-ot] +Description="Keyboard - Turkish - Ottoman (Q)" +Language=tr +Label="tr (ot)" + +[keyboard-tr-otf] +Description="Keyboard - Turkish - Ottoman (F)" +Language=tr +Label="tr (otf)" + +[keyboard-il] +Description="Keyboard - Hebrew" +Language=he +Label=he + +[keyboard-il-si2] +Description="Keyboard - Hebrew - Hebrew (SI-1452-2)" +Language=he +Label="il (si2)" + +[keyboard-il-lyx] +Description="Keyboard - Hebrew - Hebrew (lyx)" +Language=he +Label="il (lyx)" + +[keyboard-il-phonetic] +Description="Keyboard - Hebrew - Hebrew (phonetic)" +Language=he +Label="il (phonetic)" + +[keyboard-il-biblical] +Description="Keyboard - Hebrew - Hebrew (Biblical, Tiro)" +Language=he +Label="il (biblical)" + +[keyboard-il-biblicalSIL] +Description="Keyboard - Hebrew - Hebrew (Biblical, SIL phonetic)" +Language=he +Label="il (biblicalSIL)" + +[keyboard-de] +Description="Keyboard - German" +Language=de +Label=de + +[keyboard-de-deadacute] +Description="Keyboard - German - German (dead acute)" +Language=de +Label="de (deadacute)" + +[keyboard-de-deadgraveacute] +Description="Keyboard - German - German (dead grave acute)" +Language=de +Label="de (deadgraveacute)" + +[keyboard-de-deadtilde] +Description="Keyboard - German - German (dead tilde)" +Language=de +Label="de (deadtilde)" + +[keyboard-de-nodeadkeys] +Description="Keyboard - German - German (no dead keys)" +Language=de +Label="de (nodeadkeys)" + +[keyboard-de-e1] +Description="Keyboard - German - German (E1)" +Language=de +Label="de (e1)" + +[keyboard-de-e2] +Description="Keyboard - German - German (E2)" +Language=de +Label="de (e2)" + +[keyboard-de-T3] +Description="Keyboard - German - German (T3)" +Language=de +Label="de (T3)" + +[keyboard-de-us] +Description="Keyboard - German - German (US)" +Language=de +Label="de (us)" + +[keyboard-de-dvorak] +Description="Keyboard - German - German (Dvorak)" +Language=de +Label="de (dvorak)" + +[keyboard-de-mac] +Description="Keyboard - German - German (Macintosh)" +Language=de +Label="de (mac)" + +[keyboard-de-mac_nodeadkeys] +Description="Keyboard - German - German (Macintosh, no dead keys)" +Language=de +Label="de (mac_nodeadkeys)" + +[keyboard-de-neo] +Description="Keyboard - German - German (Neo 2)" +Language=de +Label="de (neo)" + +[keyboard-de-qwerty] +Description="Keyboard - German - German (QWERTY)" +Language=de +Label="de (qwerty)" + +[keyboard-de-dsb] +Description="Keyboard - German - Lower Sorbian" +Language=dsb +Label="de (dsb)" + +[keyboard-de-dsb_qwertz] +Description="Keyboard - German - Lower Sorbian (QWERTZ)" +Language=dsb +Label="de (dsb_qwertz)" + +[keyboard-de-ro] +Description="Keyboard - German - Romanian (Germany)" +Language=ro +Label="de (ro)" + +[keyboard-de-ro_nodeadkeys] +Description="Keyboard - German - Romanian (Germany, no dead keys)" +Language=ro +Label="de (ro_nodeadkeys)" + +[keyboard-de-ru] +Description="Keyboard - German - Russian (Germany, phonetic)" +Language=ru +Label=ru + +[keyboard-de-tr] +Description="Keyboard - German - Turkish (Germany)" +Language=tr +Label="de (tr)" + +[keyboard-de-hu] +Description="Keyboard - German - German (with Hungarian letters, no dead keys)" +Language=de +Label="de (hu)" + +[keyboard-de-pl] +Description="Keyboard - German - Polish (Germany, no dead keys)" +Language=de +Label="de (pl)" + +[keyboard-de-sun_type6] +Description="Keyboard - German - German (Sun Type 6/7)" +Language=de +Label="de (sun_type6)" + +[keyboard-de-adnw] +Description="Keyboard - German - German (Aus der Neo-Welt)" +Language=de +Label="de (adnw)" + +[keyboard-de-koy] +Description="Keyboard - German - German (KOY)" +Language=de +Label="de (koy)" + +[keyboard-de-bone] +Description="Keyboard - German - German (Bone)" +Language=de +Label="de (bone)" + +[keyboard-de-bone_eszett_home] +Description="Keyboard - German - German (Bone, eszett in the home row)" +Language=de +Label="de (bone_eszett_home)" + +[keyboard-de-neo_qwertz] +Description="Keyboard - German - German (Neo, QWERTZ)" +Language=de +Label="de (neo_qwertz)" + +[keyboard-de-neo_qwerty] +Description="Keyboard - German - German (Neo, QWERTY)" +Language=de +Label="de (neo_qwerty)" + +[keyboard-de-ru-recom] +Description="Keyboard - German - Russian (Germany, recommended)" +Language=ru +Label="ru (ru-recom)" + +[keyboard-de-ru-translit] +Description="Keyboard - German - Russian (Germany, transliteration)" +Language=ru +Label="ru (ru-translit)" + +[keyboard-id] +Description="Keyboard - Indonesian (Latin)" +Language=id +Label=id + +[keyboard-id-melayu-phonetic] +Description="Keyboard - Indonesian (Latin) - Indonesian (Arab Melayu, phonetic)" +Language=id +Label="id (melayu-phonetic)" + +[keyboard-id-melayu-phoneticx] +Description="Keyboard - Indonesian (Latin) - Indonesian (Arab Melayu, extended phonetic)" +Language=id +Label="id (melayu-phoneticx)" + +[keyboard-id-pegon-phonetic] +Description="Keyboard - Indonesian (Latin) - Indonesian (Arab Pegon, phonetic)" +Language=id +Label="id (pegon-phonetic)" + +[keyboard-id-javanese] +Description="Keyboard - Indonesian (Latin) - Javanese" +Language=jax +Label="id (javanese)" + +[keyboard-sn] +Description="Keyboard - Wolof" +Language=wo +Label=wo + +[keyboard-az] +Description="Keyboard - Azerbaijani" +Language=az +Label=az + +[keyboard-az-cyrillic] +Description="Keyboard - Azerbaijani - Azerbaijani (Cyrillic)" +Language=az +Label="az (cyrillic)" + +[keyboard-kh] +Description="Keyboard - Khmer (Cambodia)" +Language=km +Label=km + +[keyboard-hu] +Description="Keyboard - Hungarian" +Language=hu +Label=hu + +[keyboard-hu-standard] +Description="Keyboard - Hungarian - Hungarian (standard)" +Language=hu +Label="hu (standard)" + +[keyboard-hu-nodeadkeys] +Description="Keyboard - Hungarian - Hungarian (no dead keys)" +Language=hu +Label="hu (nodeadkeys)" + +[keyboard-hu-qwerty] +Description="Keyboard - Hungarian - Hungarian (QWERTY)" +Language=hu +Label="hu (qwerty)" + +[keyboard-hu-101_qwertz_comma_dead] +Description="Keyboard - Hungarian - Hungarian (QWERTZ, 101-key, comma, dead keys)" +Language=hu +Label="hu (101_qwertz_comma_dead)" + +[keyboard-hu-101_qwertz_comma_nodead] +Description="Keyboard - Hungarian - Hungarian (QWERTZ, 101-key, comma, no dead keys)" +Language=hu +Label="hu (101_qwertz_comma_nodead)" + +[keyboard-hu-101_qwertz_dot_dead] +Description="Keyboard - Hungarian - Hungarian (QWERTZ, 101-key, dot, dead keys)" +Language=hu +Label="hu (101_qwertz_dot_dead)" + +[keyboard-hu-101_qwertz_dot_nodead] +Description="Keyboard - Hungarian - Hungarian (QWERTZ, 101-key, dot, no dead keys)" +Language=hu +Label="hu (101_qwertz_dot_nodead)" + +[keyboard-hu-101_qwerty_comma_dead] +Description="Keyboard - Hungarian - Hungarian (QWERTY, 101-key, comma, dead keys)" +Language=hu +Label="hu (101_qwerty_comma_dead)" + +[keyboard-hu-101_qwerty_comma_nodead] +Description="Keyboard - Hungarian - Hungarian (QWERTY, 101-key, comma, no dead keys)" +Language=hu +Label="hu (101_qwerty_comma_nodead)" + +[keyboard-hu-101_qwerty_dot_dead] +Description="Keyboard - Hungarian - Hungarian (QWERTY, 101-key, dot, dead keys)" +Language=hu +Label="hu (101_qwerty_dot_dead)" + +[keyboard-hu-101_qwerty_dot_nodead] +Description="Keyboard - Hungarian - Hungarian (QWERTY, 101-key, dot, no dead keys)" +Language=hu +Label="hu (101_qwerty_dot_nodead)" + +[keyboard-hu-102_qwertz_comma_dead] +Description="Keyboard - Hungarian - Hungarian (QWERTZ, 102-key, comma, dead keys)" +Language=hu +Label="hu (102_qwertz_comma_dead)" + +[keyboard-hu-102_qwertz_comma_nodead] +Description="Keyboard - Hungarian - Hungarian (QWERTZ, 102-key, comma, no dead keys)" +Language=hu +Label="hu (102_qwertz_comma_nodead)" + +[keyboard-hu-102_qwertz_dot_dead] +Description="Keyboard - Hungarian - Hungarian (QWERTZ, 102-key, dot, dead keys)" +Language=hu +Label="hu (102_qwertz_dot_dead)" + +[keyboard-hu-102_qwertz_dot_nodead] +Description="Keyboard - Hungarian - Hungarian (QWERTZ, 102-key, dot, no dead keys)" +Language=hu +Label="hu (102_qwertz_dot_nodead)" + +[keyboard-hu-102_qwerty_comma_dead] +Description="Keyboard - Hungarian - Hungarian (QWERTY, 102-key, comma, dead keys)" +Language=hu +Label="hu (102_qwerty_comma_dead)" + +[keyboard-hu-102_qwerty_comma_nodead] +Description="Keyboard - Hungarian - Hungarian (QWERTY, 102-key, comma, no dead keys)" +Language=hu +Label="hu (102_qwerty_comma_nodead)" + +[keyboard-hu-102_qwerty_dot_dead] +Description="Keyboard - Hungarian - Hungarian (QWERTY, 102-key, dot, dead keys)" +Language=hu +Label="hu (102_qwerty_dot_dead)" + +[keyboard-hu-102_qwerty_dot_nodead] +Description="Keyboard - Hungarian - Hungarian (QWERTY, 102-key, dot, no dead keys)" +Language=hu +Label="hu (102_qwerty_dot_nodead)" + +[keyboard-hu-oldhunlig] +Description="Keyboard - Hungarian - Old Hungarian (for ligatures)" +Language=hu +Label="oldhun(lig) (oldhunlig)" + +[keyboard-hu-oldhun_sk_sh] +Description="Keyboard - Hungarian - Old Hungarian (Carpathian Highlands, S as Sh)" +Language=hu +Label="oldhun(SK,Sh) (oldhun_sk_sh)" + +[keyboard-hu-oldhun_sk_sz] +Description="Keyboard - Hungarian - Old Hungarian (Carpathian Highlands, S as Sz)" +Language=hu +Label="oldhun(SK,Sz) (oldhun_sk_sz)" + +[keyboard-hu-us] +Description="Keyboard - Hungarian - Hungarian (US)" +Language=hu +Label=us + +[keyboard-ng] +Description="Keyboard - English (Nigeria)" +Language=en +Label=en + +[keyboard-ng-hausa] +Description="Keyboard - English (Nigeria) - Hausa (Nigeria)" +Language=ha +Label="ha (hausa)" + +[keyboard-ng-igbo] +Description="Keyboard - English (Nigeria) - Igbo" +Language=ig +Label="ig (igbo)" + +[keyboard-ng-yoruba] +Description="Keyboard - English (Nigeria) - Yoruba" +Language=yo +Label="yo (yoruba)" + +[keyboard-is] +Description="Keyboard - Icelandic" +Language=is +Label=is + +[keyboard-is-mac_legacy] +Description="Keyboard - Icelandic - Icelandic (Macintosh, legacy)" +Language=is +Label="is (mac_legacy)" + +[keyboard-is-mac] +Description="Keyboard - Icelandic - Icelandic (Macintosh)" +Language=is +Label="is (mac)" + +[keyboard-is-dvorak] +Description="Keyboard - Icelandic - Icelandic (Dvorak)" +Language=is +Label="is (dvorak)" + +[keyboard-in] +Description="Keyboard - Indian" +Language=hi +Label=in + +[keyboard-in-asm-kagapa] +Description="Keyboard - Indian - Assamese (KaGaPa, phonetic)" +Language=as +Label="as (asm-kagapa)" + +[keyboard-in-ben] +Description="Keyboard - Indian - Bangla (India)" +Language=bn +Label="bn (ben)" + +[keyboard-in-ben_probhat] +Description="Keyboard - Indian - Bangla (India, Probhat)" +Language=bn +Label="bn (ben_probhat)" + +[keyboard-in-ben_baishakhi] +Description="Keyboard - Indian - Bangla (India, Baishakhi)" +Language=bn +Label="in (ben_baishakhi)" + +[keyboard-in-ben_bornona] +Description="Keyboard - Indian - Bangla (India, Bornona)" +Language=bn +Label="in (ben_bornona)" + +[keyboard-in-ben-kagapa] +Description="Keyboard - Indian - Bangla (India, KaGaPa, phonetic)" +Language=bn +Label="in (ben-kagapa)" + +[keyboard-in-ben_gitanjali] +Description="Keyboard - Indian - Bangla (India, Gitanjali)" +Language=bn +Label="in (ben_gitanjali)" + +[keyboard-in-ben_inscript] +Description="Keyboard - Indian - Bangla (India, Baishakhi InScript)" +Language=bn +Label="in (ben_inscript)" + +[keyboard-in-eng] +Description="Keyboard - Indian - English (India, with rupee)" +Language=en +Label="en (eng)" + +[keyboard-in-guj] +Description="Keyboard - Indian - Gujarati" +Language=gu +Label="gu (guj)" + +[keyboard-in-guj-kagapa] +Description="Keyboard - Indian - Gujarati (KaGaPa, phonetic)" +Language=gu +Label="gu (guj-kagapa)" + +[keyboard-in-bolnagri] +Description="Keyboard - Indian - Hindi (Bolnagri)" +Language=hi +Label="hi (bolnagri)" + +[keyboard-in-hin-wx] +Description="Keyboard - Indian - Hindi (Wx)" +Language=hi +Label="hi (hin-wx)" + +[keyboard-in-hin-kagapa] +Description="Keyboard - Indian - Hindi (KaGaPa, phonetic)" +Language=hi +Label="hi (hin-kagapa)" + +[keyboard-in-kan] +Description="Keyboard - Indian - Kannada" +Language=kn +Label="kn (kan)" + +[keyboard-in-kan-kagapa] +Description="Keyboard - Indian - Kannada (KaGaPa, phonetic)" +Language=kn +Label="kn (kan-kagapa)" + +[keyboard-in-mal] +Description="Keyboard - Indian - Malayalam" +Language=ml +Label="ml (mal)" + +[keyboard-in-mal_lalitha] +Description="Keyboard - Indian - Malayalam (Lalitha)" +Language=ml +Label="ml (mal_lalitha)" + +[keyboard-in-mal_enhanced] +Description="Keyboard - Indian - Malayalam (enhanced InScript, with rupee)" +Language=ml +Label="ml (mal_enhanced)" + +[keyboard-in-mal_poorna] +Description="Keyboard - Indian - Malayalam (Poorna, extended InScript)" +Language=ml +Label="ml (mal_poorna)" + +[keyboard-in-mni] +Description="Keyboard - Indian - Manipuri (Meitei)" +Language=mni +Label="in (mni)" + +[keyboard-in-mar-kagapa] +Description="Keyboard - Indian - Marathi (KaGaPa, phonetic)" +Language=mr +Label="mr (mar-kagapa)" + +[keyboard-in-marathi] +Description="Keyboard - Indian - Marathi (enhanced InScript)" +Language=mr +Label="in (marathi)" + +[keyboard-in-ori] +Description="Keyboard - Indian - Oriya" +Language=or +Label="or (ori)" + +[keyboard-in-ori-bolnagri] +Description="Keyboard - Indian - Oriya (Bolnagri)" +Language=or +Label="or (ori-bolnagri)" + +[keyboard-in-ori-wx] +Description="Keyboard - Indian - Oriya (Wx)" +Language=or +Label="or (ori-wx)" + +[keyboard-in-guru] +Description="Keyboard - Indian - Punjabi (Gurmukhi)" +Language=pa +Label="pa (guru)" + +[keyboard-in-jhelum] +Description="Keyboard - Indian - Punjabi (Gurmukhi Jhelum)" +Language=pa +Label="pa (jhelum)" + +[keyboard-in-san-kagapa] +Description="Keyboard - Indian - Sanskrit (KaGaPa, phonetic)" +Language=sa +Label="sa (san-kagapa)" + +[keyboard-in-sat] +Description="Keyboard - Indian - Santali (Ol Chiki)" +Language=sat +Label=sat + +[keyboard-in-tamilnet] +Description="Keyboard - Indian - Tamil (TamilNet '99)" +Language=ta +Label="ta (tamilnet)" + +[keyboard-in-tamilnet_tamilnumbers] +Description="Keyboard - Indian - Tamil (TamilNet '99 with Tamil numerals)" +Language=ta +Label="ta (tamilnet_tamilnumbers)" + +[keyboard-in-tamilnet_TAB] +Description="Keyboard - Indian - Tamil (TamilNet '99, TAB encoding)" +Language=ta +Label="ta (tamilnet_TAB)" + +[keyboard-in-tamilnet_TSCII] +Description="Keyboard - Indian - Tamil (TamilNet '99, TSCII encoding)" +Language=ta +Label="ta (tamilnet_TSCII)" + +[keyboard-in-tam] +Description="Keyboard - Indian - Tamil (InScript, with Arabic numerals)" +Language=ta +Label="ta (tam)" + +[keyboard-in-tam_tamilnumbers] +Description="Keyboard - Indian - Tamil (InScript, with Tamil numerals)" +Language=ta +Label="ta (tam_tamilnumbers)" + +[keyboard-in-tel] +Description="Keyboard - Indian - Telugu" +Language=te +Label="te (tel)" + +[keyboard-in-tel-kagapa] +Description="Keyboard - Indian - Telugu (KaGaPa, phonetic)" +Language=te +Label="te (tel-kagapa)" + +[keyboard-in-tel-sarala] +Description="Keyboard - Indian - Telugu (Sarala)" +Language=te +Label="te (tel-sarala)" + +[keyboard-in-urd-phonetic] +Description="Keyboard - Indian - Urdu (phonetic)" +Language=ur +Label="ur (urd-phonetic)" + +[keyboard-in-urd-phonetic3] +Description="Keyboard - Indian - Urdu (alt. phonetic)" +Language=ur +Label="ur (urd-phonetic3)" + +[keyboard-in-urd-winkeys] +Description="Keyboard - Indian - Urdu (Windows)" +Language=ur +Label="ur (urd-winkeys)" + +[keyboard-in-iipa] +Description="Keyboard - Indian - Indic IPA" +Language=en +Label="in (iipa)" + +[keyboard-in-modi-kagapa] +Description="Keyboard - Indian - Modi (KaGaPa, phonetic)" +Language=mr +Label="mr (modi-kagapa)" + +[keyboard-in-san-misc] +Description="Keyboard - Indian - Sanskrit symbols" +Language=sa +Label="sas (san-misc)" + +[keyboard-in-urd-navees] +Description="Keyboard - Indian - Urdu (Navees)" +Language=ur +Label="ur (urd-navees)" + +[keyboard-it] +Description="Keyboard - Italian" +Language=it +Label=it + +[keyboard-it-nodeadkeys] +Description="Keyboard - Italian - Italian (no dead keys)" +Language=it +Label="it (nodeadkeys)" + +[keyboard-it-winkeys] +Description="Keyboard - Italian - Italian (Windows)" +Language=it +Label="it (winkeys)" + +[keyboard-it-mac] +Description="Keyboard - Italian - Italian (Macintosh)" +Language=it +Label="it (mac)" + +[keyboard-it-us] +Description="Keyboard - Italian - Italian (US)" +Language=it +Label="it (us)" + +[keyboard-it-ibm] +Description="Keyboard - Italian - Italian (IBM 142)" +Language=it +Label="it (ibm)" + +[keyboard-it-fur] +Description="Keyboard - Italian - Friulian (Italy)" +Language=fur +Label="it (fur)" + +[keyboard-it-scn] +Description="Keyboard - Italian - Sicilian" +Language=it +Label="it (scn)" + +[keyboard-it-geo] +Description="Keyboard - Italian - Georgian (Italy)" +Language=ka +Label="it (geo)" + +[keyboard-it-sun_type6] +Description="Keyboard - Italian - Italian (Sun Type 6/7)" +Language=it +Label="it (sun_type6)" + +[keyboard-it-lld] +Description="Keyboard - Italian - Ladin (Italian keyboard)" +Language=it +Label="it_lld (lld)" + +[keyboard-it-lldde] +Description="Keyboard - Italian - Ladin (German keyboard)" +Language=de +Label="de_lld (lldde)" + +[keyboard-it-dvorak] +Description="Keyboard - Italian - Italian (Dvorak)" +Language=it +Label="it (dvorak)" + +[keyboard-jp] +Description="Keyboard - Japanese" +Language=ja +Label=ja + +[keyboard-jp-kana] +Description="Keyboard - Japanese - Japanese (Kana)" +Language=ja +Label="jp (kana)" + +[keyboard-jp-kana86] +Description="Keyboard - Japanese - Japanese (Kana 86)" +Language=ja +Label="jp (kana86)" + +[keyboard-jp-OADG109A] +Description="Keyboard - Japanese - Japanese (OADG 109A)" +Language=ja +Label="jp (OADG109A)" + +[keyboard-jp-mac] +Description="Keyboard - Japanese - Japanese (Macintosh)" +Language=ja +Label="jp (mac)" + +[keyboard-jp-dvorak] +Description="Keyboard - Japanese - Japanese (Dvorak)" +Language=ja +Label="jp (dvorak)" + +[keyboard-jp-sun_type6] +Description="Keyboard - Japanese - Japanese (Sun Type 6)" +Language=ja +Label="jp (sun_type6)" + +[keyboard-jp-sun_type7] +Description="Keyboard - Japanese - Japanese (Sun Type 7, PC-compatible)" +Language=ja +Label="jp (sun_type7)" + +[keyboard-jp-sun_type7_suncompat] +Description="Keyboard - Japanese - Japanese (Sun Type 7, Sun-compatible)" +Language=ja +Label="jp (sun_type7_suncompat)" + diff --git a/dotfiles/.config/fcitx5/conf/classicui.conf b/dotfiles/.config/fcitx5/conf/classicui.conf new file mode 100644 index 0000000..8cc16b5 --- /dev/null +++ b/dotfiles/.config/fcitx5/conf/classicui.conf @@ -0,0 +1,35 @@ +# Vertical Candidate List +Vertical Candidate List=False +# Use mouse wheel to go to prev or next page +WheelForPaging=True +# Font +Font="Sarasa Gothic SC 14" +# Menu Font +MenuFont="Sarasa Gothic SC 14" +# Tray Font +TrayFont="Sarasa Gothic SC 12" +# Tray Label Outline Color +TrayOutlineColor=#000000 +# Tray Label Text Color +TrayTextColor=#ffffff +# Prefer Text Icon +PreferTextIcon=False +# Show Layout Name In Icon +ShowLayoutNameInIcon=True +# Use input method language to display text +UseInputMethodLanguageToDisplayText=True +# Theme +Theme=catppuccin-mocha-flamingo +# Dark Theme +DarkTheme=catppuccin-mocha-flamingo +# Follow system light/dark color scheme +UseDarkTheme=True +# Follow system accent color if it is supported by theme and desktop +UseAccentColor=True +# Use Per Screen DPI on X11 +PerScreenDPI=False +# Force font DPI on Wayland +ForceWaylandDPI=0 +# Enable fractional scale under Wayland +EnableFractionalScale=True + diff --git a/dotfiles/.config/fcitx5/conf/clipboard.conf b/dotfiles/.config/fcitx5/conf/clipboard.conf new file mode 100644 index 0000000..c2d6def --- /dev/null +++ b/dotfiles/.config/fcitx5/conf/clipboard.conf @@ -0,0 +1,13 @@ +# Paste Primary +PastePrimaryKey= +# Number of entries +Number of entries=10 +# Do not show password from password managers +IgnorePasswordFromPasswordManager=False +# Hidden clipboard content that contains a password +ShowPassword=False +# Seconds before clearing password +ClearPasswordAfter=30 + +[TriggerKey] +0=Super+V diff --git a/dotfiles/.config/fcitx5/conf/keyboard.conf b/dotfiles/.config/fcitx5/conf/keyboard.conf new file mode 100644 index 0000000..4793bba --- /dev/null +++ b/dotfiles/.config/fcitx5/conf/keyboard.conf @@ -0,0 +1,29 @@ +# Page size +PageSize=5 +# Enable emoji in hint +EnableEmoji=True +# Enable emoji in quickphrase +EnableQuickPhraseEmoji=True +# Choose key modifier +Choose Modifier=Alt +# Enable hint by default +EnableHintByDefault=False +# Use new compose behavior +UseNewComposeBehavior=True +# Type special characters with long press +EnableLongPress=False +# Applications disabled for long press +LongPressBlocklist= + +[PrevCandidate] +0=Shift+Tab + +[NextCandidate] +0=Tab + +[Hint Trigger] +0=Control+Alt+H + +[One Time Hint Trigger] +0=Control+Alt+J + diff --git a/dotfiles/.config/fcitx5/conf/notifications.conf b/dotfiles/.config/fcitx5/conf/notifications.conf new file mode 100644 index 0000000..6e7d1b9 --- /dev/null +++ b/dotfiles/.config/fcitx5/conf/notifications.conf @@ -0,0 +1,3 @@ +# Hidden Notifications +HiddenNotifications= + diff --git a/dotfiles/.config/fcitx5/conf/quickphrase.conf b/dotfiles/.config/fcitx5/conf/quickphrase.conf new file mode 100644 index 0000000..90b06be --- /dev/null +++ b/dotfiles/.config/fcitx5/conf/quickphrase.conf @@ -0,0 +1,9 @@ +# Trigger Key +TriggerKey= +# Choose key modifier +Choose Modifier=None +# Enable Spell check +Spell=False +# Fallback Spell check language +FallbackSpellLanguage=en + diff --git a/dotfiles/.config/fcitx5/conf/rime.conf b/dotfiles/.config/fcitx5/conf/rime.conf new file mode 100644 index 0000000..1f68a4a --- /dev/null +++ b/dotfiles/.config/fcitx5/conf/rime.conf @@ -0,0 +1,13 @@ +# Preedit Mode +PreeditMode="Do not show" +# Shared Input State +InputState=All +# Fix embedded preedit cursor at the beginning of the preedit +PreeditCursorPositionAtBeginning=True +# Action when switching input method +SwitchInputMethodBehavior="Commit commit preview" +# Deploy +Deploy= +# Synchronize +Synchronize= + diff --git a/dotfiles/.config/fcitx5/conf/spell.conf b/dotfiles/.config/fcitx5/conf/spell.conf new file mode 100644 index 0000000..25197e3 --- /dev/null +++ b/dotfiles/.config/fcitx5/conf/spell.conf @@ -0,0 +1,5 @@ +[ProviderOrder] +0=Presage +1=Custom +2=Enchant + diff --git a/dotfiles/.config/fcitx5/conf/wayland.conf b/dotfiles/.config/fcitx5/conf/wayland.conf new file mode 100644 index 0000000..6d970c1 --- /dev/null +++ b/dotfiles/.config/fcitx5/conf/wayland.conf @@ -0,0 +1,3 @@ +# Allow Overriding System XKB Settings (Only support KDE 5) +Allow Overriding System XKB Settings=False + diff --git a/dotfiles/.config/fcitx5/config b/dotfiles/.config/fcitx5/config new file mode 100644 index 0000000..0443fe2 --- /dev/null +++ b/dotfiles/.config/fcitx5/config @@ -0,0 +1,73 @@ +[Hotkey] +# Enumerate when press trigger key repeatedly +EnumerateWithTriggerKeys=True +# Temporally switch between first and current Input Method +AltTriggerKeys= +# Enumerate Input Method Forward +EnumerateForwardKeys= +# Enumerate Input Method Backward +EnumerateBackwardKeys= +# Skip first input method while enumerating +EnumerateSkipFirst=False +# Enumerate Input Method Group Forward +EnumerateGroupForwardKeys= +# Enumerate Input Method Group Backward +EnumerateGroupBackwardKeys= +# Activate Input Method +ActivateKeys= +# Deactivate Input Method +DeactivateKeys= +# Toggle embedded preedit +TogglePreedit= + +[Hotkey/TriggerKeys] +0=Super+space + +[Hotkey/PrevPage] +0=Up + +[Hotkey/NextPage] +0=Down + +[Hotkey/PrevCandidate] +0=Shift+Tab + +[Hotkey/NextCandidate] +0=Tab + +[Behavior] +# Active By Default +ActiveByDefault=False +# Reset state on Focus In +resetStateWhenFocusIn=No +# Share Input State +ShareInputState=No +# Show preedit in application +PreeditEnabledByDefault=True +# Show Input Method Information when switch input method +ShowInputMethodInformation=True +# Show Input Method Information when changing focus +showInputMethodInformationWhenFocusIn=False +# Show compact input method information +CompactInputMethodInformation=True +# Show first input method information +ShowFirstInputMethodInformation=True +# Default page size +DefaultPageSize=5 +# Override Xkb Option +OverrideXkbOption=False +# Custom Xkb Option +CustomXkbOption= +# Force Enabled Addons +EnabledAddons= +# Force Disabled Addons +DisabledAddons= +# Preload input method to be used by default +PreloadInputMethod=True +# Allow input method in the password field +AllowInputMethodForPassword=False +# Show preedit text when typing password +ShowPreeditForPassword=False +# Interval of saving user data in minutes +AutoSavePeriod=30 + diff --git a/dotfiles/.config/fcitx5/profile b/dotfiles/.config/fcitx5/profile new file mode 100644 index 0000000..d28185b --- /dev/null +++ b/dotfiles/.config/fcitx5/profile @@ -0,0 +1,23 @@ +[Groups/0] +# Group Name +Name=Default +# Layout +Default Layout=us +# Default Input Method +DefaultIM=rime + +[Groups/0/Items/0] +# Name +Name=keyboard-us +# Layout +Layout= + +[Groups/0/Items/1] +# Name +Name=rime +# Layout +Layout= + +[GroupOrder] +0=Default + diff --git a/dotfiles/.config/fuzzel/fuzzel.ini b/dotfiles/.config/fuzzel/fuzzel.ini new file mode 100644 index 0000000..9da285f --- /dev/null +++ b/dotfiles/.config/fuzzel/fuzzel.ini @@ -0,0 +1,21 @@ +[colors] +background=1e1e2edd +text=cdd6f4ff +prompt=bac2deff +placeholder=7f849cff +input=cdd6f4ff +match=b4befeff +selection=585b70ff +selection-text=cdd6f4ff +selection-match=b4befeff +counter=7f849cff +border=b4befeff + +[main] +font=Sarasa Gothic SC:size=18 +icon-theme=Papirus-Dark +icons-enabled=yes +delayed-filter-ms=0 +delayed-filter-limit=0 +lines=10 +sort-result=yes diff --git a/dotfiles/.config/hypr/hyprland/autostart.conf b/dotfiles/.config/hypr/hyprland/autostart.conf new file mode 100644 index 0000000..907a5b7 --- /dev/null +++ b/dotfiles/.config/hypr/hyprland/autostart.conf @@ -0,0 +1,9 @@ +exec-once = fcitx5 -d -r +exec-once = nm-applet +exec-once = swayosd-server +exec-once = swww-daemon +exec-once = swww restore +exec-once = xprop -root -f _XWAYLAND_GLOBAL_OUTPUT_SCALE 32c -set _XWAYLAND_GLOBAL_OUTPUT_SCALE $SCALE +exec-once = waybar + +# exec-once = sleep 1 && strawberry diff --git a/dotfiles/.config/hypr/hyprland/basic.conf b/dotfiles/.config/hypr/hyprland/basic.conf new file mode 100644 index 0000000..66bedbc --- /dev/null +++ b/dotfiles/.config/hypr/hyprland/basic.conf @@ -0,0 +1,136 @@ +source = ~/.config/hypr/theme.conf + +animations { + enabled = true + bezier = liner, 1, 1, 1, 1 + bezier = overshot, 0.13, 0.99, 0.29, 1.1 + bezier = wind, 0.05, 0.9, 0.1, 1.05 + bezier = winIn, 0.1, 1.1, 0.1, 1.1 + animation = windows, 1, 6, wind, slide + animation = windowsIn, 1, 7, winIn, slide + animation = windowsOut, 1, 7, default, popin 80% + animation = windowsMove, 1, 5, wind, slide + animation = border, 1, 1, liner + animation = fade, 1, 10, default + animation = workspaces, 1, 8, default, slidefade 20% + animation = specialWorkspaceIn, 1, 8, default, fade + animation = specialWorkspaceOut, 1, 8, default, fade +} + + +debug { + suppress_errors = true + watchdog_timeout = 0 +} + + +decoration { + active_opacity = 1.0 + blur { + enabled = false + } + dim_inactive = false + fullscreen_opacity = 1.0 + inactive_opacity = 1.0 + rounding = 4 + shadow { + enabled = false + } +} + + +ecosystem { + no_donation_nag = true + no_update_news = true +} + + +env = XDG_SESSION_DESKTOP, Hyprland + + +general { + gaps_in = 1 + gaps_out = 1 + border_size = 1 + col.active_border = $lavender + col.inactive_border = $base + layout = hy3 +} + + +gestures { + workspace_swipe = true + workspace_swipe_fingers = 3 + workspace_swipe_distance = 250 + workspace_swipe_invert = true + workspace_swipe_min_speed_to_force = 15 + workspace_swipe_cancel_ratio = 0.5 + workspace_swipe_create_new = false +} + + +input { + follow_mouse = 1 + float_switch_override_focus = 2 + kb_layout = $KEYBOARDLAYOUT + numlock_by_default = false + sensitivity = 0 + touchpad { + disable_while_typing = true + natural_scroll = true + scroll_factor = 0.5 + } +} + + +misc { + always_follow_on_dnd = true + disable_autoreload = true + disable_hyprland_logo = true + disable_hyprland_qtutils_check = true; + disable_splash_rendering = true; + disable_xdg_env_checks = true; + enable_anr_dialog = false; + enable_swallow = true + focus_on_activate = true + initial_workspace_tracking = 0 + key_press_enables_dpms = false + layers_hog_keyboard_focus = true + mouse_move_enables_dpms = false + vfr = true +} + + +plugin { + hy3 { + no_gaps_when_only = 1 + node_collapse_policy = 1 + group_inset = 10 + tab_first_window = true + tabs { + col.active = rgb(b4befe) + col.active.border = rgb(313244) + col.active.text = rgb(181825) + col.inactive = rgb(181825) + col.inactive.border = rgb(313244) + col.inactive.text = rgb(b4befe) + col.urgent = rgb(f2cdcd) + col.urgent.border = rgb(313244) + col.urgent.text = rgb(181825) + from_top = false + height = 14 + padding = 2 + render_text = true + rounding = 6 + text_center = true + text_font = Sarasa Gothic SC + text_height = 10 + text_padding = 0 + } + } +} + + +xwayland { + force_zero_scaling = true +} diff --git a/dotfiles/.config/hypr/hyprland/bind.conf b/dotfiles/.config/hypr/hyprland/bind.conf new file mode 100644 index 0000000..e450e49 --- /dev/null +++ b/dotfiles/.config/hypr/hyprland/bind.conf @@ -0,0 +1,178 @@ +## bind settings +binds { + workspace_back_and_forth = 1 + allow_workspace_cycles = 1 +} + + +## App Launcher +bindr = ALT, SPACE, exec, fuzzel + + +## Restart some programs +### Input Tool +bind = Ctrl_ALT, I, exec, pkill fcitx5 -9;sleep 1;fcitx5 -d --replace; sleep 1;fcitx5-remote -r +### Notification Manager +bind = Ctrl_ALT, N, exec, swaync-client -rs +### Status Bar +bind = Ctrl_ALT, B, exec, pkill waybar;sleep 1;waybar # Status Bar + + +## Shortcuts +### File Explorer +bind = SUPER, E, exec, nemo +### Logout Menu +bind = CTRL_SUPER, Q, exec, wlogout +### Terminal Emulator +bind = SUPER, T, exec, alacritty +### Screenshot (Area Mod) +bind = SUPER, S, exec, sh ~/.config/waybar/scripts/Screenshot-Area.sh +### Screenshot (Fullscreen Mod) +bind = SUPER_ALT, S, exec, sh ~/.config/waybar/scripts/Screenshot-Fullscreen.sh +### Screenshot (Window Mod) +bind = SUPER_CTRL, S, exec, sh ~/.config/waybar/scripts/Screenshot-Hyprland-Window.sh +### Screenshot (OCR Mod) +bind = SUPER_CTRL_ALT, S, exec, sh ~/.config/waybar/scripts/Screenshot-OCR.sh + + +## Window actions +bind = SUPER, F, fullscreen +bind = SUPER, Q, hy3:killactive + +## Window actions (bonus) +bind = SUPER_SHIFT, F, togglefloating + + +## Workspace jumping +bind = SUPER,1,workspace,1 +bind = SUPER,2,workspace,2 +bind = SUPER,3,workspace,3 +bind = SUPER,4,workspace,4 +bind = SUPER,5,workspace,5 +bind = SUPER,6,workspace,6 +bind = SUPER,7,workspace,7 +bind = SUPER,8,workspace,8 +bind = SUPER,9,workspace,9 +bind = SUPER,0,workspace,10 + + +## Window movement between Workspace +### without switching to the Workspace +bind = SUPER_CTRL, 1, movetoworkspacesilent, 1 +bind = SUPER_CTRL, 2, movetoworkspacesilent, 2 +bind = SUPER_CTRL, 3, movetoworkspacesilent, 3 +bind = SUPER_CTRL, 4, movetoworkspacesilent, 4 +bind = SUPER_CTRL, 5, movetoworkspacesilent, 5 +bind = SUPER_CTRL, 6, movetoworkspacesilent, 6 +bind = SUPER_CTRL, 7, movetoworkspacesilent, 7 +bind = SUPER_CTRL, 8, movetoworkspacesilent, 8 +bind = SUPER_CTRL, 9, movetoworkspacesilent, 9 +bind = SUPER_CTRL, 0, movetoworkspacesilent, 10 + +### also switching to the Workspace +bind = SUPER_SHIFT, 1, movetoworkspace, 1 +bind = SUPER_SHIFT, 2, movetoworkspace, 2 +bind = SUPER_SHIFT, 3, movetoworkspace, 3 +bind = SUPER_SHIFT, 4, movetoworkspace, 4 +bind = SUPER_SHIFT, 5, movetoworkspace, 5 +bind = SUPER_SHIFT, 6, movetoworkspace, 6 +bind = SUPER_SHIFT, 7, movetoworkspace, 7 +bind = SUPER_SHIFT, 8, movetoworkspace, 8 +bind = SUPER_SHIFT, 9, movetoworkspace, 9 +bind = SUPER_SHIFT, 0, movetoworkspace, 10 + +bind = SUPER_SHIFT, mouse_down, movetoworkspace, -1 +bind = SUPER_SHIFT, mouse_up, movetoworkspace, +1 + +bind = SUPER_SHIFT, mouse:275, movetoworkspace, e+1 +bind = SUPER_SHIFT, mouse:276, movetoworkspace, e-1 + + +### Special Workspace +bind = SUPER, Grave, togglespecialworkspace +bind = SUPER_CTRL, Grave, movetoworkspacesilent, special +bind = SUPER_SHIFT, Grave, movetoworkspace, special + + +## Workspace movement +bind = SUPER_CTRL, left, workspace, -1 +bind = SUPER_CTRL, right, workspace, +1 + +### Using Vim-like keys +bind = SUPER_CTRL, H, workspace, -1 +bind = SUPER_CTRL, L, workspace, +1 + +## Window focus movement +### Using Alt+Tab +bind = ALT, Tab, hy3:movefocus, r +bind = ALT_SHIFT, Tab, hy3:movefocus, l + +### Using Arrow keys +bind = SUPER, left, hy3:movefocus,l +bind = SUPER, right, hy3:movefocus,r +bind = SUPER, up, hy3:movefocus,u +bind = SUPER, down, hy3:movefocus,d + +### Using Vim-like keys +bind = SUPER_Alt, H, hy3:movefocus, l +bind = SUPER_Alt, L, hy3:movefocus, r +bind = SUPER_Alt, K, hy3:movefocus, u +bind = SUPER_Alt, J, hy3:movefocus, d + + +## Window direction movement +### Using Arrow keys +bind = SUPER_SHIFT, left, hy3:movewindow,l +bind = SUPER_SHIFT, right, hy3:movewindow,r +bind = SUPER_SHIFT, up, hy3:movewindow,u +bind = SUPER_SHIFT, down, hy3:movewindow,d + +### Using Vim-like keys +bind = SUPER_SHIFT, H, hy3:movefocus, l +bind = SUPER_SHIFT, L, hy3:movefocus, r +bind = SUPER_SHIFT, K, hy3:movefocus, u +bind = SUPER_SHIFT, J, hy3:movefocus, d + + +## Some smart actions with Mouse +bindm = SUPER, mouse:272, movewindow +bindm = SUPER, mouse:273, resizewindow + +bind = SUPER, mouse_down, workspace, -1 +bind = SUPER, mouse_up, workspace, +1 + +bind = SUPER, mouse:275, workspace, e+1 +bind = SUPER, mouse:276, workspace, e-1 + +### hy3 bonus +bindn = , mouse:272, hy3:focustab, mouse +bindn = , mouse_down, hy3:focustab, l, require_hovered +bindn = , mouse_up, hy3:focustab, r, require_hovered + + +## Brightness control +bindel = , XF86MonBrightnessUp, exec, swayosd-client --brightness +5 +bindel = , XF86MonBrightnessDown, exec, swayosd-client --brightness -5 + + +## Playback control +bindl = ,XF86AudioPlay,exec, playerctl play-pause +bindl = ,XF86AudioNext,exec, playerctl next +bindl = ,XF86AudioPrev,exec, playerctl previous + +### Playback control (bonus) +bindl = CONTROL_ALT, Return, exec, playerctl play-pause +bindl = CONTROL_ALT, right, exec, playerctl next +bindl = CONTROL_ALT, left, exec, playerctl previous + + +## Volume control +bindel = ,XF86AudioRaiseVolume, exec, swayosd-client --output-volume +2 +bindel = ,XF86AudioLowerVolume, exec, swayosd-client --output-volume -2 +bindl = ,XF86AudioMicMute, exec, swayosd-client --input-volume mute-toggle +bindl = ,XF86AudioMute, exec, swayosd-client --output-volume mute-toggle + + +## Volume control (bonus) +bindel = CONTROL_ALT, up, exec, swayosd-client --output-volume +2 +bindel = CONTROL_ALT, down, exec, swayosd-client --output-volume -2 diff --git a/dotfiles/.config/hypr/hyprlock.conf b/dotfiles/.config/hypr/hyprlock.conf new file mode 100644 index 0000000..a8212e1 --- /dev/null +++ b/dotfiles/.config/hypr/hyprlock.conf @@ -0,0 +1,77 @@ +source = $HOME/.config/hypr/theme.conf + +$accent = $mauve +$accentAlpha = $mauveAlpha +$font = JetBrainsMono Nerd Font + +# GENERAL +general { + disable_loading_bar = true + hide_cursor = true +} + +# BACKGROUND +background { + monitor = + blur_passes = 0 + color = $base +} + +# LAYOUT +label { + monitor = + text = Layout: $LAYOUT + color = $text + font_size = 25 + font_family = $font + position = 30, -30 + halign = left + valign = top +} + +# TIME +label { + monitor = + text = $TIME + color = $text + font_size = 90 + font_family = $font + position = -30, 0 + halign = right + valign = top +} + +# DATE +label { + monitor = + text = cmd[update:43200000] date +"%A, %d %B %Y" + color = $text + font_size = 25 + font_family = $font + position = -30, -150 + halign = right + valign = top +} + +# INPUT FIELD +input-field { + monitor = + size = 300, 60 + outline_thickness = 4 + dots_size = 0.2 + dots_spacing = 0.2 + dots_center = true + outer_color = $accent + inner_color = $surface0 + font_color = $text + fade_on_empty = false + placeholder_text = 󰌾 Logged in as $USER + hide_input = false + check_color = $accent + fail_color = $red + fail_text = $FAIL ($ATTEMPTS) + capslock_color = $yellow + position = 0, -47 + halign = center + valign = center +} diff --git a/dotfiles/.config/hypr/theme.conf b/dotfiles/.config/hypr/theme.conf new file mode 100644 index 0000000..0855b5d --- /dev/null +++ b/dotfiles/.config/hypr/theme.conf @@ -0,0 +1,79 @@ +# Catpucchin Mocha + +$rosewater = rgb(f5e0dc) +$rosewaterAlpha = f5e0dc + +$flamingo = rgb(f2cdcd) +$flamingoAlpha = f2cdcd + +$pink = rgb(f5c2e7) +$pinkAlpha = f5c2e7 + +$mauve = rgb(cba6f7) +$mauveAlpha = cba6f7 + +$red = rgb(f38ba8) +$redAlpha = f38ba8 + +$maroon = rgb(eba0ac) +$maroonAlpha = eba0ac + +$peach = rgb(fab387) +$peachAlpha = fab387 + +$yellow = rgb(f9e2af) +$yellowAlpha = f9e2af + +$green = rgb(a6e3a1) +$greenAlpha = a6e3a1 + +$teal = rgb(94e2d5) +$tealAlpha = 94e2d5 + +$sky = rgb(89dceb) +$skyAlpha = 89dceb + +$sapphire = rgb(74c7ec) +$sapphireAlpha = 74c7ec + +$blue = rgb(89b4fa) +$blueAlpha = 89b4fa + +$lavender = rgb(b4befe) +$lavenderAlpha = b4befe + +$text = rgb(cdd6f4) +$textAlpha = cdd6f4 + +$subtext1 = rgb(bac2de) +$subtext1Alpha = bac2de + +$subtext0 = rgb(a6adc8) +$subtext0Alpha = a6adc8 + +$overlay2 = rgb(9399b2) +$overlay2Alpha = 9399b2 + +$overlay1 = rgb(7f849c) +$overlay1Alpha = 7f849c + +$overlay0 = rgb(6c7086) +$overlay0Alpha = 6c7086 + +$surface2 = rgb(585b70) +$surface2Alpha = 585b70 + +$surface1 = rgb(45475a) +$surface1Alpha = 45475a + +$surface0 = rgb(313244) +$surface0Alpha = 313244 + +$base = rgb(1e1e2e) +$baseAlpha = 1e1e2e + +$mantle = rgb(181825) +$mantleAlpha = 181825 + +$crust = rgb(11111b) +$crustAlpha = 11111b diff --git a/dotfiles/.config/keepassxc/keepassxc.ini b/dotfiles/.config/keepassxc/keepassxc.ini new file mode 100644 index 0000000..e1d1059 --- /dev/null +++ b/dotfiles/.config/keepassxc/keepassxc.ini @@ -0,0 +1,31 @@ +[General] +ConfigVersion=2 + +[Browser] +AlwaysAllowAccess=true +CustomProxyLocation= +Enabled=false + +[FdoSecrets] +Enabled=false + +[GUI] +ApplicationTheme=classic +MinimizeOnClose=true +MinimizeOnStartup=false +MinimizeToTray=true +ShowTrayIcon=true +ToolButtonStyle=0 +TrayIconAppearance=monochrome-dark + +[PasswordGenerator] +AdditionalChars= +ExcludedChars= +SpecialChars=false + +[SSHAgent] +Enabled=true + +[Security] +ClearClipboard=false +IconDownloadFallback=true diff --git a/dotfiles/.config/kwalletrc b/dotfiles/.config/kwalletrc new file mode 100644 index 0000000..95510c3 --- /dev/null +++ b/dotfiles/.config/kwalletrc @@ -0,0 +1,14 @@ +[Wallet] +Close When Idle=true +Close on Screensaver=true +Enabled=false +First Use=false +Idle Timeout=1 +Launch Manager=false +Leave Manager Open=false +Leave Open=false +Prompt on Open=false +Use One Wallet=true + +[org.freedesktop.secrets] +apiEnabled=false diff --git a/dotfiles/.config/nushell/config.nu b/dotfiles/.config/nushell/config.nu new file mode 100644 index 0000000..04df2f9 --- /dev/null +++ b/dotfiles/.config/nushell/config.nu @@ -0,0 +1,821 @@ + +let dark_theme = { + separator: white + leading_trailing_space_bg: { attr: n } + header: green_bold + bool: light_cyan + int: white + filesize: cyan + duration: white + date: purple + range: white + float: white + string: white + nothing: white + binary: white + cell-path: white + row_index: green_bold + record: white + list: white + block: white + hints: dark_gray + search_result: { bg: red fg: white } + shape_and: purple_bold + shape_binary: purple_bold + shape_block: blue_bold + shape_bool: light_cyan + shape_closure: green_bold + shape_custom: green + shape_datetime: cyan_bold + shape_directory: cyan + shape_external: cyan + shape_externalarg: green_bold + shape_external_resolved: light_yellow_bold + shape_filepath: cyan + shape_flag: blue_bold + shape_float: purple_bold + shape_garbage: { fg: white bg: red attr: b } + shape_glob_interpolation: cyan_bold + shape_globpattern: cyan_bold + shape_int: purple_bold + shape_internalcall: cyan_bold + shape_keyword: cyan_bold + shape_list: cyan_bold + shape_literal: blue + shape_match_pattern: green + shape_matching_brackets: { attr: u } + shape_nothing: light_cyan + shape_operator: yellow + shape_or: purple_bold + shape_pipe: purple_bold + shape_range: yellow_bold + shape_record: cyan_bold + shape_redirection: purple_bold + shape_signature: green_bold + shape_string: green + shape_string_interpolation: cyan_bold + shape_table: blue_bold + shape_variable: purple + shape_vardecl: purple + shape_raw_string: light_purple +} + +let light_theme = { + separator: dark_gray + leading_trailing_space_bg: { attr: n } + header: green_bold + empty: blue + bool: dark_cyan + int: dark_gray + filesize: cyan_bold + duration: dark_gray + date: purple + range: dark_gray + float: dark_gray + string: dark_gray + nothing: dark_gray + binary: dark_gray + cell-path: dark_gray + row_index: green_bold + record: dark_gray + list: dark_gray + block: dark_gray + hints: dark_gray + search_result: { fg: white bg: red } + shape_and: purple_bold + shape_binary: purple_bold + shape_block: blue_bold + shape_bool: light_cyan + shape_closure: green_bold + shape_custom: green + shape_datetime: cyan_bold + shape_directory: cyan + shape_external: cyan + shape_externalarg: green_bold + shape_external_resolved: light_purple_bold + shape_filepath: cyan + shape_flag: blue_bold + shape_float: purple_bold + shape_garbage: { fg: white bg: red attr: b } + shape_glob_interpolation: cyan_bold + shape_globpattern: cyan_bold + shape_int: purple_bold + shape_internalcall: cyan_bold + shape_keyword: cyan_bold + shape_list: cyan_bold + shape_literal: blue + shape_match_pattern: green + shape_matching_brackets: { attr: u } + shape_nothing: light_cyan + shape_operator: yellow + shape_or: purple_bold + shape_pipe: purple_bold + shape_range: yellow_bold + shape_record: cyan_bold + shape_redirection: purple_bold + shape_signature: green_bold + shape_string: green + shape_string_interpolation: cyan_bold + shape_table: blue_bold + shape_variable: purple + shape_vardecl: purple + shape_raw_string: light_purple +} +$env.config = { + show_banner: false + + ls: { + use_ls_colors: true + clickable_links: true + } + + rm: { + always_trash: false + } + + table: { + mode: rounded + index_mode: always + show_empty: true + padding: { left: 1, right: 1 } + trim: { + methodology: wrapping + wrapping_try_keep_words: true + truncating_suffix: "..." + } + header_on_separator: false + } + + error_style: "fancy" + display_errors: { + exit_code: false + termination_signal: true + } + datetime_format: { + } + + explore: { + status_bar_background: { fg: "#1D1F21", bg: "#C4C9C6" }, + command_bar_text: { fg: "#C4C9C6" }, + highlight: { fg: "black", bg: "yellow" }, + status: { + error: { fg: "white", bg: "red" }, + warn: {} + info: {} + }, + selected_cell: { bg: light_blue }, + } + + history: { + max_size: 100_000 + sync_on_enter: true + file_format: "plaintext" + isolation: false + } + + completions: { + case_sensitive: false + quick: true + partial: true + algorithm: "prefix" + sort: "smart" + external: { + enable: true + max_results: 100 + completer: null + } + use_ls_colors: true + } + + cursor_shape: { + emacs: line + vi_insert: block + vi_normal: underscore + } + + color_config: $dark_theme + footer_mode: 25 + float_precision: 2 + buffer_editor: micro + use_ansi_coloring: true + bracketed_paste: true + edit_mode: emacs + shell_integration: { + osc2: true + osc7: true + osc8: true + osc9_9: false + osc133: true + osc633: true + reset_application_mode: true + } + render_right_prompt_on_last_line: false + use_kitty_protocol: false + highlight_resolved_externals: false + recursion_limit: 50 + + plugins: {} + + plugin_gc: { + default: { + enabled: true + stop_after: 10sec + } + plugins: { + } + } + + hooks: { + pre_prompt: [{ null }] + pre_execution: [{ null }] + env_change: { + PWD: [{|before, after| + if (which direnv | is-empty) { + return + } + + direnv export json | from json | default {} | load-env + }] + } + display_output: "if (term size).columns >= 100 { table -e } else { table }" + command_not_found: { null } + } + + menus: [ + { + name: completion_menu + only_buffer_difference: false + marker: "| " + type: { + layout: columnar + columns: 4 + col_width: 20 + col_padding: 2 + } + style: { + text: green + selected_text: { attr: r } + description_text: yellow + match_text: { attr: u } + selected_match_text: { attr: ur } + } + } + { + name: ide_completion_menu + only_buffer_difference: false + marker: "| " + type: { + layout: ide + min_completion_width: 0, + max_completion_width: 50, + max_completion_height: 10, + padding: 0, + border: true, + cursor_offset: 0, + description_mode: "prefer_right" + min_description_width: 0 + max_description_width: 50 + max_description_height: 10 + description_offset: 1 + correct_cursor_pos: false + } + style: { + text: green + selected_text: { attr: r } + description_text: yellow + match_text: { attr: u } + selected_match_text: { attr: ur } + } + } + { + name: history_menu + only_buffer_difference: true + marker: "? " + type: { + layout: list + page_size: 10 + } + style: { + text: green + selected_text: green_reverse + description_text: yellow + } + } + { + name: help_menu + only_buffer_difference: true + marker: "? " + type: { + layout: description + columns: 4 + col_width: 20 + col_padding: 2 + selection_rows: 4 + description_rows: 10 + } + style: { + text: green + selected_text: green_reverse + description_text: yellow + } + } + ] + + keybindings: [ + { + name: completion_menu + modifier: none + keycode: tab + mode: [emacs vi_normal vi_insert] + event: { + until: [ + { send: menu name: completion_menu } + { send: menunext } + { edit: complete } + ] + } + } + { + name: completion_previous_menu + modifier: shift + keycode: backtab + mode: [emacs, vi_normal, vi_insert] + event: { send: menuprevious } + } + { + name: ide_completion_menu + modifier: control + keycode: space + mode: [emacs vi_normal vi_insert] + event: { + until: [ + { send: menu name: ide_completion_menu } + { send: menunext } + { edit: complete } + ] + } + } + { + name: history_menu + modifier: control + keycode: char_r + mode: [emacs, vi_insert, vi_normal] + event: { send: menu name: history_menu } + } + { + name: help_menu + modifier: none + keycode: f1 + mode: [emacs, vi_insert, vi_normal] + event: { send: menu name: help_menu } + } + { + name: next_page_menu + modifier: control + keycode: char_x + mode: emacs + event: { send: menupagenext } + } + { + name: undo_or_previous_page_menu + modifier: control + keycode: char_z + mode: emacs + event: { + until: [ + { send: menupageprevious } + { edit: undo } + ] + } + } + { + name: escape + modifier: none + keycode: escape + mode: [emacs, vi_normal, vi_insert] + event: { send: esc } # NOTE: does not appear to work + } + { + name: cancel_command + modifier: control + keycode: char_c + mode: [emacs, vi_normal, vi_insert] + event: { send: ctrlc } + } + { + name: quit_shell + modifier: control + keycode: char_d + mode: [emacs, vi_normal, vi_insert] + event: { send: ctrld } + } + { + name: clear_screen + modifier: control + keycode: char_l + mode: [emacs, vi_normal, vi_insert] + event: { send: clearscreen } + } + { + name: search_history + modifier: control + keycode: char_q + mode: [emacs, vi_normal, vi_insert] + event: { send: searchhistory } + } + { + name: open_command_editor + modifier: control + keycode: char_o + mode: [emacs, vi_normal, vi_insert] + event: { send: openeditor } + } + { + name: move_up + modifier: none + keycode: up + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + { send: menuup } + { send: up } + ] + } + } + { + name: move_down + modifier: none + keycode: down + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + { send: menudown } + { send: down } + ] + } + } + { + name: move_left + modifier: none + keycode: left + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + { send: menuleft } + { send: left } + ] + } + } + { + name: move_right_or_take_history_hint + modifier: none + keycode: right + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + { send: historyhintcomplete } + { send: menuright } + { send: right } + ] + } + } + { + name: move_one_word_left + modifier: control + keycode: left + mode: [emacs, vi_normal, vi_insert] + event: { edit: movewordleft } + } + { + name: move_one_word_right_or_take_history_hint + modifier: control + keycode: right + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + { send: historyhintwordcomplete } + { edit: movewordright } + ] + } + } + { + name: move_to_line_start + modifier: none + keycode: home + mode: [emacs, vi_normal, vi_insert] + event: { edit: movetolinestart } + } + { + name: move_to_line_start + modifier: control + keycode: char_a + mode: [emacs, vi_normal, vi_insert] + event: { edit: movetolinestart } + } + { + name: move_to_line_end_or_take_history_hint + modifier: none + keycode: end + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + { send: historyhintcomplete } + { edit: movetolineend } + ] + } + } + { + name: move_to_line_end_or_take_history_hint + modifier: control + keycode: char_e + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + { send: historyhintcomplete } + { edit: movetolineend } + ] + } + } + { + name: move_to_line_start + modifier: control + keycode: home + mode: [emacs, vi_normal, vi_insert] + event: { edit: movetolinestart } + } + { + name: move_to_line_end + modifier: control + keycode: end + mode: [emacs, vi_normal, vi_insert] + event: { edit: movetolineend } + } + { + name: move_down + modifier: control + keycode: char_n + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + { send: menudown } + { send: down } + ] + } + } + { + name: move_up + modifier: control + keycode: char_p + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + { send: menuup } + { send: up } + ] + } + } + { + name: delete_one_character_backward + modifier: none + keycode: backspace + mode: [emacs, vi_insert] + event: { edit: backspace } + } + { + name: delete_one_word_backward + modifier: control + keycode: backspace + mode: [emacs, vi_insert] + event: { edit: backspaceword } + } + { + name: delete_one_character_forward + modifier: none + keycode: delete + mode: [emacs, vi_insert] + event: { edit: delete } + } + { + name: delete_one_character_forward + modifier: control + keycode: delete + mode: [emacs, vi_insert] + event: { edit: delete } + } + { + name: delete_one_character_backward + modifier: control + keycode: char_h + mode: [emacs, vi_insert] + event: { edit: backspace } + } + { + name: delete_one_word_backward + modifier: control + keycode: char_w + mode: [emacs, vi_insert] + event: { edit: backspaceword } + } + { + name: move_left + modifier: none + keycode: backspace + mode: vi_normal + event: { edit: moveleft } + } + { + name: newline_or_run_command + modifier: none + keycode: enter + mode: emacs + event: { send: enter } + } + { + name: move_left + modifier: control + keycode: char_b + mode: emacs + event: { + until: [ + { send: menuleft } + { send: left } + ] + } + } + { + name: move_right_or_take_history_hint + modifier: control + keycode: char_f + mode: emacs + event: { + until: [ + { send: historyhintcomplete } + { send: menuright } + { send: right } + ] + } + } + { + name: redo_change + modifier: control + keycode: char_g + mode: emacs + event: { edit: redo } + } + { + name: undo_change + modifier: control + keycode: char_z + mode: emacs + event: { edit: undo } + } + { + name: paste_before + modifier: control + keycode: char_y + mode: emacs + event: { edit: pastecutbufferbefore } + } + { + name: cut_word_left + modifier: control + keycode: char_w + mode: emacs + event: { edit: cutwordleft } + } + { + name: cut_line_to_end + modifier: control + keycode: char_k + mode: emacs + event: { edit: cuttolineend } + } + { + name: cut_line_from_start + modifier: control + keycode: char_u + mode: emacs + event: { edit: cutfromstart } + } + { + name: swap_graphemes + modifier: control + keycode: char_t + mode: emacs + event: { edit: swapgraphemes } + } + { + name: move_one_word_left + modifier: alt + keycode: left + mode: emacs + event: { edit: movewordleft } + } + { + name: move_one_word_right_or_take_history_hint + modifier: alt + keycode: right + mode: emacs + event: { + until: [ + { send: historyhintwordcomplete } + { edit: movewordright } + ] + } + } + { + name: move_one_word_left + modifier: alt + keycode: char_b + mode: emacs + event: { edit: movewordleft } + } + { + name: move_one_word_right_or_take_history_hint + modifier: alt + keycode: char_f + mode: emacs + event: { + until: [ + { send: historyhintwordcomplete } + { edit: movewordright } + ] + } + } + { + name: delete_one_word_forward + modifier: alt + keycode: delete + mode: emacs + event: { edit: deleteword } + } + { + name: delete_one_word_backward + modifier: alt + keycode: backspace + mode: emacs + event: { edit: backspaceword } + } + { + name: delete_one_word_backward + modifier: alt + keycode: char_m + mode: emacs + event: { edit: backspaceword } + } + { + name: cut_word_to_right + modifier: alt + keycode: char_d + mode: emacs + event: { edit: cutwordright } + } + { + name: upper_case_word + modifier: alt + keycode: char_u + mode: emacs + event: { edit: uppercaseword } + } + { + name: lower_case_word + modifier: alt + keycode: char_l + mode: emacs + event: { edit: lowercaseword } + } + { + name: capitalize_char + modifier: alt + keycode: char_c + mode: emacs + event: { edit: capitalizechar } + } + { + name: copy_selection + modifier: control_shift + keycode: char_c + mode: emacs + event: { edit: copyselection } + } + { + name: cut_selection + modifier: control_shift + keycode: char_x + mode: emacs + event: { edit: cutselection } + } + { + name: select_all + modifier: control_shift + keycode: char_a + mode: emacs + event: { edit: selectall } + } + ] +} + +mkdir ($nu.data-dir | path join "vendor/autoload") +atuin init nu | save -f ($nu.data-dir | path join "vendor/autoload/atuin.nu") +starship init nu | save -f ($nu.data-dir | path join "vendor/autoload/starship.nu") +zoxide init nushell | save -f ($nu.data-dir | path join "vendor/autoload/zoxide.nu") diff --git a/dotfiles/.config/nushell/env.nu b/dotfiles/.config/nushell/env.nu new file mode 100644 index 0000000..9006520 --- /dev/null +++ b/dotfiles/.config/nushell/env.nu @@ -0,0 +1,57 @@ +def create_left_prompt [] { + let dir = match (do --ignore-errors { $env.PWD | path relative-to $nu.home-path }) { + null => $env.PWD + '' => '~' + $relative_pwd => ([~ $relative_pwd] | path join) + } + + let path_color = (if (is-admin) { ansi red_bold } else { ansi green_bold }) + let separator_color = (if (is-admin) { ansi light_red_bold } else { ansi light_green_bold }) + let path_segment = $"($path_color)($dir)(ansi reset)" + + $path_segment | str replace --all (char path_sep) $"($separator_color)(char path_sep)($path_color)" +} + +def create_right_prompt [] { + let time_segment = ([ + (ansi reset) + (ansi magenta) + (date now | format date '%x %X') + ] | str join | str replace --regex --all "([/:])" $"(ansi green)${1}(ansi magenta)" | + str replace --regex --all "([AP]M)" $"(ansi magenta_underline)${1}") + + let last_exit_code = if ($env.LAST_EXIT_CODE != 0) {([ + (ansi rb) + ($env.LAST_EXIT_CODE) + ] | str join) + } else { "" } + + ([$last_exit_code, (char space), $time_segment] | str join) +} + +$env.PROMPT_COMMAND = {|| create_left_prompt } +$env.PROMPT_COMMAND_RIGHT = {|| create_right_prompt } +$env.PROMPT_INDICATOR = {|| "> " } +$env.PROMPT_INDICATOR_VI_INSERT = {|| ": " } +$env.PROMPT_INDICATOR_VI_NORMAL = {|| "> " } +$env.PROMPT_MULTILINE_INDICATOR = {|| "::: " } + +$env.ENV_CONVERSIONS = { + "PATH": { + from_string: { |s| $s | split row (char esep) | path expand --no-symlink } + to_string: { |v| $v | path expand --no-symlink | str join (char esep) } + } + "Path": { + from_string: { |s| $s | split row (char esep) | path expand --no-symlink } + to_string: { |v| $v | path expand --no-symlink | str join (char esep) } + } +} + +$env.NU_LIB_DIRS = [ + ($nu.default-config-dir | path join 'scripts') + ($nu.data-dir | path join 'completions') +] + +$env.NU_PLUGIN_DIRS = [ + ($nu.default-config-dir | path join 'plugins') +] diff --git a/dotfiles/.config/obs-studio/basic/profiles/Untitled/basic.ini b/dotfiles/.config/obs-studio/basic/profiles/Untitled/basic.ini new file mode 100644 index 0000000..63a657c --- /dev/null +++ b/dotfiles/.config/obs-studio/basic/profiles/Untitled/basic.ini @@ -0,0 +1,113 @@ +[General] +Name=Untitled + +[Output] +Mode=Simple +FilenameFormatting=%CCYY-%MM-%DD %hh-%mm-%ss +DelayEnable=false +DelaySec=20 +DelayPreserve=true +Reconnect=true +RetryDelay=2 +MaxRetries=25 +BindIP=default +IPFamily=IPv4+IPv6 +NewSocketLoopEnable=false +LowLatencyEnable=false + +[Stream1] +IgnoreRecommended=false +EnableMultitrackVideo=false +MultitrackVideoMaximumAggregateBitrateAuto=true +MultitrackVideoMaximumVideoTracksAuto=true + +[SimpleOutput] +FilePath=/home/dich +RecFormat2=mp4 +VBitrate=2500 +ABitrate=160 +UseAdvanced=false +Preset=veryfast +NVENCPreset2=p5 +RecQuality=Stream +RecRB=false +RecRBTime=20 +RecRBSize=512 +RecRBPrefix=Replay +StreamAudioEncoder=aac +RecAudioEncoder=aac +RecTracks=1 +StreamEncoder=x264 +RecEncoder=x264 + +[AdvOut] +ApplyServiceSettings=true +UseRescale=false +TrackIndex=1 +VodTrackIndex=2 +Encoder=obs_x264 +RecType=Standard +RecFilePath=/home/dich +RecFormat2=mkv +RecUseRescale=false +RecTracks=1 +RecEncoder=none +FLVTrack=1 +StreamMultiTrackAudioMixes=1 +FFOutputToFile=true +FFFilePath=/home/dich +FFVBitrate=2500 +FFVGOPSize=250 +FFUseRescale=false +FFIgnoreCompat=false +FFABitrate=160 +FFAudioMixes=1 +Track1Bitrate=160 +Track2Bitrate=160 +Track3Bitrate=160 +Track4Bitrate=160 +Track5Bitrate=160 +Track6Bitrate=160 +RecSplitFileTime=15 +RecSplitFileSize=2048 +RecRB=false +RecRBTime=20 +RecRBSize=512 +AudioEncoder=libfdk_aac +RecAudioEncoder=libfdk_aac +RecSplitFileType=Time +FFFormat= +FFFormatMimeType= +FFVEncoderId=0 +FFVEncoder= +FFAEncoderId=0 +FFAEncoder= +FFExtension=mp4 + +[Video] +BaseCX=1920 +BaseCY=1080 +OutputCX=1280 +OutputCY=720 +FPSType=0 +FPSCommon=30 +FPSInt=30 +FPSNum=30 +FPSDen=1 +ScaleType=bicubic +ColorFormat=NV12 +ColorSpace=709 +ColorRange=Partial +SdrWhiteLevel=300 +HdrNominalPeakLevel=1000 + +[Audio] +MonitoringDeviceId=alsa_output.pci-0000_05_00.6.analog-stereo +MonitoringDeviceName=Family 17h/19h/1ah HD Audio Controller Analog Stereo +SampleRate=48000 +ChannelSetup=Stereo +MeterDecayRate=23.53 +PeakMeterType=0 + +[Panels] +CookieId=9FF9985CAAB5C18B diff --git a/dotfiles/.config/obs-studio/basic/scenes/Untitled.json b/dotfiles/.config/obs-studio/basic/scenes/Untitled.json new file mode 100644 index 0000000..1cb6079 --- /dev/null +++ b/dotfiles/.config/obs-studio/basic/scenes/Untitled.json @@ -0,0 +1,247 @@ +{ + "DesktopAudioDevice1": { + "prev_ver": 520093699, + "name": "Desktop Audio", + "uuid": "02d5047a-68ce-43a6-a1c2-401dfb117480", + "id": "pulse_output_capture", + "versioned_id": "pulse_output_capture", + "settings": { + "device_id": "alsa_output.pci-0000_05_00.6.analog-stereo.monitor" + }, + "mixers": 255, + "sync": 0, + "flags": 0, + "volume": 0.32882726192474365, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": { + "libobs.mute": [], + "libobs.unmute": [], + "libobs.push-to-mute": [], + "libobs.push-to-talk": [] + }, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {} + }, + "AuxAudioDevice1": { + "prev_ver": 520093699, + "name": "Mic/Aux", + "uuid": "72203d14-38fc-419b-aac9-46a4c1385437", + "id": "pulse_input_capture", + "versioned_id": "pulse_input_capture", + "settings": { + "device_id": "alsa_input.pci-0000_05_00.6.analog-stereo" + }, + "mixers": 255, + "sync": 0, + "flags": 0, + "volume": 0.31743475794792175, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": { + "libobs.mute": [], + "libobs.unmute": [], + "libobs.push-to-mute": [], + "libobs.push-to-talk": [] + }, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {}, + "filters": [ + { + "prev_ver": 520093699, + "name": "噪声抑制", + "uuid": "fd3d521b-86d5-48c6-b720-264c708ea2cb", + "id": "noise_suppress_filter", + "versioned_id": "noise_suppress_filter_v2", + "settings": {}, + "mixers": 255, + "sync": 0, + "flags": 0, + "volume": 1.0, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": {}, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {} + } + ] + }, + "current_scene": "Scene", + "current_program_scene": "Scene", + "scene_order": [ + { + "name": "Scene" + } + ], + "name": "Untitled", + "sources": [ + { + "prev_ver": 520093699, + "name": "Scene", + "uuid": "aa201eee-721f-44aa-8e7a-6383fa5da63a", + "id": "scene", + "versioned_id": "scene", + "settings": { + "id_counter": 1, + "custom_size": false, + "items": [ + { + "name": "Screen Capture (PipeWire)", + "source_uuid": "385bea17-7de2-41ea-9fbb-acc8c50c9fb3", + "visible": true, + "locked": false, + "rot": 0.0, + "scale_ref": { + "x": 1920.0, + "y": 1080.0 + }, + "align": 5, + "bounds_type": 0, + "bounds_align": 0, + "bounds_crop": false, + "crop_left": 0, + "crop_top": 0, + "crop_right": 0, + "crop_bottom": 0, + "id": 1, + "group_item_backup": false, + "pos": { + "x": 0.0, + "y": 0.0 + }, + "pos_rel": { + "x": -1.7777777910232544, + "y": -1.0 + }, + "scale": { + "x": 0.75, + "y": 0.75 + }, + "scale_rel": { + "x": 0.75, + "y": 0.75 + }, + "bounds": { + "x": 0.0, + "y": 0.0 + }, + "bounds_rel": { + "x": 0.0, + "y": 0.0 + }, + "scale_filter": "disable", + "blend_method": "default", + "blend_type": "normal", + "show_transition": { + "duration": 0 + }, + "hide_transition": { + "duration": 0 + }, + "private_settings": {} + } + ] + }, + "mixers": 0, + "sync": 0, + "flags": 0, + "volume": 1.0, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": { + "OBSBasic.SelectScene": [], + "libobs.show_scene_item.1": [], + "libobs.hide_scene_item.1": [] + }, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {} + }, + { + "prev_ver": 520093699, + "name": "Screen Capture (PipeWire)", + "uuid": "385bea17-7de2-41ea-9fbb-acc8c50c9fb3", + "id": "pipewire-screen-capture-source", + "versioned_id": "pipewire-screen-capture-source", + "settings": { + "RestoreToken": "5f9f4fdb-56d1-45a2-aedf-19564983774a" + }, + "mixers": 0, + "sync": 0, + "flags": 0, + "volume": 1.0, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": {}, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {} + } + ], + "groups": [], + "quick_transitions": [], + "transitions": [], + "saved_projectors": [], + "current_transition": "淡入淡出", + "transition_duration": 300, + "preview_locked": false, + "scaling_enabled": false, + "scaling_level": 0, + "scaling_off_x": 0.0, + "scaling_off_y": 0.0, + "virtual-camera": { + "type2": 3 + }, + "modules": { + "scripts-tool": [], + "output-timer": { + "streamTimerHours": 0, + "streamTimerMinutes": 0, + "streamTimerSeconds": 30, + "recordTimerHours": 0, + "recordTimerMinutes": 0, + "recordTimerSeconds": 30, + "autoStartStreamTimer": false, + "autoStartRecordTimer": false, + "pauseRecordTimer": true + } + }, + "resolution": { + "x": 1920, + "y": 1080 + }, + "version": 2 +} \ No newline at end of file diff --git a/dotfiles/.config/obs-studio/basic/scenes/Untitled.json.bak b/dotfiles/.config/obs-studio/basic/scenes/Untitled.json.bak new file mode 100644 index 0000000..1cb6079 --- /dev/null +++ b/dotfiles/.config/obs-studio/basic/scenes/Untitled.json.bak @@ -0,0 +1,247 @@ +{ + "DesktopAudioDevice1": { + "prev_ver": 520093699, + "name": "Desktop Audio", + "uuid": "02d5047a-68ce-43a6-a1c2-401dfb117480", + "id": "pulse_output_capture", + "versioned_id": "pulse_output_capture", + "settings": { + "device_id": "alsa_output.pci-0000_05_00.6.analog-stereo.monitor" + }, + "mixers": 255, + "sync": 0, + "flags": 0, + "volume": 0.32882726192474365, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": { + "libobs.mute": [], + "libobs.unmute": [], + "libobs.push-to-mute": [], + "libobs.push-to-talk": [] + }, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {} + }, + "AuxAudioDevice1": { + "prev_ver": 520093699, + "name": "Mic/Aux", + "uuid": "72203d14-38fc-419b-aac9-46a4c1385437", + "id": "pulse_input_capture", + "versioned_id": "pulse_input_capture", + "settings": { + "device_id": "alsa_input.pci-0000_05_00.6.analog-stereo" + }, + "mixers": 255, + "sync": 0, + "flags": 0, + "volume": 0.31743475794792175, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": { + "libobs.mute": [], + "libobs.unmute": [], + "libobs.push-to-mute": [], + "libobs.push-to-talk": [] + }, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {}, + "filters": [ + { + "prev_ver": 520093699, + "name": "噪声抑制", + "uuid": "fd3d521b-86d5-48c6-b720-264c708ea2cb", + "id": "noise_suppress_filter", + "versioned_id": "noise_suppress_filter_v2", + "settings": {}, + "mixers": 255, + "sync": 0, + "flags": 0, + "volume": 1.0, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": {}, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {} + } + ] + }, + "current_scene": "Scene", + "current_program_scene": "Scene", + "scene_order": [ + { + "name": "Scene" + } + ], + "name": "Untitled", + "sources": [ + { + "prev_ver": 520093699, + "name": "Scene", + "uuid": "aa201eee-721f-44aa-8e7a-6383fa5da63a", + "id": "scene", + "versioned_id": "scene", + "settings": { + "id_counter": 1, + "custom_size": false, + "items": [ + { + "name": "Screen Capture (PipeWire)", + "source_uuid": "385bea17-7de2-41ea-9fbb-acc8c50c9fb3", + "visible": true, + "locked": false, + "rot": 0.0, + "scale_ref": { + "x": 1920.0, + "y": 1080.0 + }, + "align": 5, + "bounds_type": 0, + "bounds_align": 0, + "bounds_crop": false, + "crop_left": 0, + "crop_top": 0, + "crop_right": 0, + "crop_bottom": 0, + "id": 1, + "group_item_backup": false, + "pos": { + "x": 0.0, + "y": 0.0 + }, + "pos_rel": { + "x": -1.7777777910232544, + "y": -1.0 + }, + "scale": { + "x": 0.75, + "y": 0.75 + }, + "scale_rel": { + "x": 0.75, + "y": 0.75 + }, + "bounds": { + "x": 0.0, + "y": 0.0 + }, + "bounds_rel": { + "x": 0.0, + "y": 0.0 + }, + "scale_filter": "disable", + "blend_method": "default", + "blend_type": "normal", + "show_transition": { + "duration": 0 + }, + "hide_transition": { + "duration": 0 + }, + "private_settings": {} + } + ] + }, + "mixers": 0, + "sync": 0, + "flags": 0, + "volume": 1.0, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": { + "OBSBasic.SelectScene": [], + "libobs.show_scene_item.1": [], + "libobs.hide_scene_item.1": [] + }, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {} + }, + { + "prev_ver": 520093699, + "name": "Screen Capture (PipeWire)", + "uuid": "385bea17-7de2-41ea-9fbb-acc8c50c9fb3", + "id": "pipewire-screen-capture-source", + "versioned_id": "pipewire-screen-capture-source", + "settings": { + "RestoreToken": "5f9f4fdb-56d1-45a2-aedf-19564983774a" + }, + "mixers": 0, + "sync": 0, + "flags": 0, + "volume": 1.0, + "balance": 0.5, + "enabled": true, + "muted": false, + "push-to-mute": false, + "push-to-mute-delay": 0, + "push-to-talk": false, + "push-to-talk-delay": 0, + "hotkeys": {}, + "deinterlace_mode": 0, + "deinterlace_field_order": 0, + "monitoring_type": 0, + "private_settings": {} + } + ], + "groups": [], + "quick_transitions": [], + "transitions": [], + "saved_projectors": [], + "current_transition": "淡入淡出", + "transition_duration": 300, + "preview_locked": false, + "scaling_enabled": false, + "scaling_level": 0, + "scaling_off_x": 0.0, + "scaling_off_y": 0.0, + "virtual-camera": { + "type2": 3 + }, + "modules": { + "scripts-tool": [], + "output-timer": { + "streamTimerHours": 0, + "streamTimerMinutes": 0, + "streamTimerSeconds": 30, + "recordTimerHours": 0, + "recordTimerMinutes": 0, + "recordTimerSeconds": 30, + "autoStartStreamTimer": false, + "autoStartRecordTimer": false, + "pauseRecordTimer": true + } + }, + "resolution": { + "x": 1920, + "y": 1080 + }, + "version": 2 +} \ No newline at end of file diff --git a/dotfiles/.config/obs-studio/global.ini b/dotfiles/.config/obs-studio/global.ini new file mode 100644 index 0000000..9102158 --- /dev/null +++ b/dotfiles/.config/obs-studio/global.ini @@ -0,0 +1,19 @@ +[General] +Pre31Migrated=true +MaxLogs=10 +InfoIncrement=-1 +ProcessPriority=Normal +EnableAutoUpdates=true +LastVersion=520093699 + +[Video] +Renderer=OpenGL + +[Locations] +Configuration=/home/dich/.config +SceneCollections=/home/dich/.config +Profiles=/home/dich/.config + +[PropertiesWindow] +cx=720 +cy=580 diff --git a/dotfiles/.config/obs-studio/plugin_config/rtmp-services/amazon_ivs_ingests.json b/dotfiles/.config/obs-studio/plugin_config/rtmp-services/amazon_ivs_ingests.json new file mode 100644 index 0000000..2cb31e4 --- /dev/null +++ b/dotfiles/.config/obs-studio/plugin_config/rtmp-services/amazon_ivs_ingests.json @@ -0,0 +1,625 @@ +{ + "ingests": [ + { + "_id": 0, + "availability": 1.0, + "default": false, + "name": "Asia: Japan, Narita (10)", + "url_template": "rtmp://apn10.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://apn10.contribute.live-video.net/app/{stream_key}", + "priority": 0 + }, + { + "_id": 1, + "availability": 1.0, + "default": false, + "name": "Asia: Japan, Tokyo (3)", + "url_template": "rtmp://tyo03.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://tyo03.contribute.live-video.net/app/{stream_key}", + "priority": 1 + }, + { + "_id": 2, + "availability": 1.0, + "default": false, + "name": "Asia: Japan, Tokyo (5)", + "url_template": "rtmp://tyo05.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://tyo05.contribute.live-video.net/app/{stream_key}", + "priority": 2 + }, + { + "_id": 3, + "availability": 1.0, + "default": false, + "name": "Asia: Japan, Osaka (1)", + "url_template": "rtmp://osa01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://osa01.contribute.live-video.net/app/{stream_key}", + "priority": 3 + }, + { + "_id": 4, + "availability": 1.0, + "default": false, + "name": "Asia: South Korea, Seoul (3)", + "url_template": "rtmp://sel03.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://sel03.contribute.live-video.net/app/{stream_key}", + "priority": 4 + }, + { + "_id": 5, + "availability": 1.0, + "default": false, + "name": "Asia: South Korea, Seoul (4)", + "url_template": "rtmp://sel04.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://sel04.contribute.live-video.net/app/{stream_key}", + "priority": 5 + }, + { + "_id": 6, + "availability": 1.0, + "default": false, + "name": "Asia: Taiwan, Taipei (3)", + "url_template": "rtmp://tpe03.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://tpe03.contribute.live-video.net/app/{stream_key}", + "priority": 6 + }, + { + "_id": 7, + "availability": 1.0, + "default": false, + "name": "Asia: Taiwan, Taipei (1)", + "url_template": "rtmp://tpe01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://tpe01.contribute.live-video.net/app/{stream_key}", + "priority": 7 + }, + { + "_id": 8, + "availability": 1.0, + "default": false, + "name": "Asia: China, Hong Kong (6)", + "url_template": "rtmp://hkg06.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://hkg06.contribute.live-video.net/app/{stream_key}", + "priority": 8 + }, + { + "_id": 9, + "availability": 1.0, + "default": false, + "name": "Asia: Manila, Philippines (1)", + "url_template": "rtmp://mnl01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://mnl01.contribute.live-video.net/app/{stream_key}", + "priority": 9 + }, + { + "_id": 10, + "availability": 1.0, + "default": false, + "name": "Asia: Thailand, Bangkok (2)", + "url_template": "rtmp://bkk02.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://bkk02.contribute.live-video.net/app/{stream_key}", + "priority": 10 + }, + { + "_id": 11, + "availability": 1.0, + "default": false, + "name": "Asia: Singapore (1)", + "url_template": "rtmp://sin01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://sin01.contribute.live-video.net/app/{stream_key}", + "priority": 11 + }, + { + "_id": 12, + "availability": 1.0, + "default": false, + "name": "Asia: Indonesia, Jakarta (2)", + "url_template": "rtmp://jkt02.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://jkt02.contribute.live-video.net/app/{stream_key}", + "priority": 12 + }, + { + "_id": 13, + "availability": 1.0, + "default": false, + "name": "Asia: India, Hyderabad (1)", + "url_template": "rtmp://hyd01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://hyd01.contribute.live-video.net/app/{stream_key}", + "priority": 13 + }, + { + "_id": 14, + "availability": 1.0, + "default": false, + "name": "Asia: India, Chennai (1)", + "url_template": "rtmp://maa01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://maa01.contribute.live-video.net/app/{stream_key}", + "priority": 14 + }, + { + "_id": 15, + "availability": 1.0, + "default": false, + "name": "Asia: India, New Delhi (1)", + "url_template": "rtmp://del01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://del01.contribute.live-video.net/app/{stream_key}", + "priority": 15 + }, + { + "_id": 16, + "availability": 1.0, + "default": false, + "name": "Asia: India, Bangalore (1)", + "url_template": "rtmp://blr01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://blr01.contribute.live-video.net/app/{stream_key}", + "priority": 16 + }, + { + "_id": 17, + "availability": 1.0, + "default": false, + "name": "Asia: India, Mumbai", + "url_template": "rtmp://bom01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://bom01.contribute.live-video.net/app/{stream_key}", + "priority": 17 + }, + { + "_id": 18, + "availability": 1.0, + "default": false, + "name": "US West: Seattle, WA (2)", + "url_template": "rtmp://sea02.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://sea02.contribute.live-video.net/app/{stream_key}", + "priority": 18 + }, + { + "_id": 19, + "availability": 1.0, + "default": false, + "name": "Europe: Finland, Helsinki (3)", + "url_template": "rtmp://hel03.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://hel03.contribute.live-video.net/app/{stream_key}", + "priority": 19 + }, + { + "_id": 20, + "availability": 1.0, + "default": false, + "name": "Oceania: Australia, Sydney (2)", + "url_template": "rtmp://syd02.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://syd02.contribute.live-video.net/app/{stream_key}", + "priority": 20 + }, + { + "_id": 21, + "availability": 1.0, + "default": false, + "name": "Oceania: Australia, Sydney (3)", + "url_template": "rtmp://syd03.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://syd03.contribute.live-video.net/app/{stream_key}", + "priority": 21 + }, + { + "_id": 22, + "availability": 1.0, + "default": false, + "name": "Europe: Sweden, Stockholm (3)", + "url_template": "rtmp://arn03.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://arn03.contribute.live-video.net/app/{stream_key}", + "priority": 22 + }, + { + "_id": 23, + "availability": 1.0, + "default": false, + "name": "Europe: Sweden, Stockholm (4)", + "url_template": "rtmp://arn04.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://arn04.contribute.live-video.net/app/{stream_key}", + "priority": 23 + }, + { + "_id": 24, + "availability": 1.0, + "default": false, + "name": "US West: San Jose, California (6)", + "url_template": "rtmp://sjc06.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://sjc06.contribute.live-video.net/app/{stream_key}", + "priority": 24 + }, + { + "_id": 25, + "availability": 1.0, + "default": false, + "name": "Europe: Norway, Oslo", + "url_template": "rtmp://osl.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://osl.contribute.live-video.net/app/{stream_key}", + "priority": 25 + }, + { + "_id": 26, + "availability": 1.0, + "default": false, + "name": "Europe: Poland, Warsaw (2)", + "url_template": "rtmp://waw02.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://waw02.contribute.live-video.net/app/{stream_key}", + "priority": 26 + }, + { + "_id": 27, + "availability": 1.0, + "default": false, + "name": "Europe: Denmark, Copenhagen", + "url_template": "rtmp://cph.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://cph.contribute.live-video.net/app/{stream_key}", + "priority": 27 + }, + { + "_id": 28, + "availability": 1.0, + "default": false, + "name": "US West: Los Angeles, CA", + "url_template": "rtmp://lax.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://lax.contribute.live-video.net/app/{stream_key}", + "priority": 28 + }, + { + "_id": 29, + "availability": 1.0, + "default": false, + "name": "Europe: Czech Republic, Prague", + "url_template": "rtmp://prg03.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://prg03.contribute.live-video.net/app/{stream_key}", + "priority": 29 + }, + { + "_id": 30, + "availability": 1.0, + "default": false, + "name": "Europe: Austria, Vienna (2)", + "url_template": "rtmp://vie02.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://vie02.contribute.live-video.net/app/{stream_key}", + "priority": 30 + }, + { + "_id": 31, + "availability": 1.0, + "default": false, + "name": "Europe: Netherlands, Amsterdam (3)", + "url_template": "rtmp://ams03.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://ams03.contribute.live-video.net/app/{stream_key}", + "priority": 31 + }, + { + "_id": 32, + "availability": 1.0, + "default": false, + "name": "Europe: Netherlands, Amsterdam (2)", + "url_template": "rtmp://ams02.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://ams02.contribute.live-video.net/app/{stream_key}", + "priority": 32 + }, + { + "_id": 33, + "availability": 1.0, + "default": false, + "name": "Europe: Germany, Dusseldorf (1)", + "url_template": "rtmp://dus01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://dus01.contribute.live-video.net/app/{stream_key}", + "priority": 33 + }, + { + "_id": 34, + "availability": 1.0, + "default": false, + "name": "US Central: Denver, CO (52)", + "url_template": "rtmp://den52.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://den52.contribute.live-video.net/app/{stream_key}", + "priority": 34 + }, + { + "_id": 35, + "availability": 1.0, + "default": false, + "name": "Europe: Germany, Munich (1)", + "url_template": "rtmp://muc01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://muc01.contribute.live-video.net/app/{stream_key}", + "priority": 35 + }, + { + "_id": 36, + "availability": 1.0, + "default": false, + "name": "Europe: UK, London (8)", + "url_template": "rtmp://lhr08.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://lhr08.contribute.live-video.net/app/{stream_key}", + "priority": 36 + }, + { + "_id": 37, + "availability": 1.0, + "default": false, + "name": "Europe: UK, London (3)", + "url_template": "rtmp://lhr03.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://lhr03.contribute.live-video.net/app/{stream_key}", + "priority": 37 + }, + { + "_id": 38, + "availability": 1.0, + "default": false, + "name": "Europe: France, Paris (2)", + "url_template": "rtmp://cdg02.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://cdg02.contribute.live-video.net/app/{stream_key}", + "priority": 38 + }, + { + "_id": 39, + "availability": 1.0, + "default": false, + "name": "Europe: France, Paris (10)", + "url_template": "rtmp://cdg10.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://cdg10.contribute.live-video.net/app/{stream_key}", + "priority": 39 + }, + { + "_id": 40, + "availability": 1.0, + "default": false, + "name": "Europe: Italy, Milan (2)", + "url_template": "rtmp://mil02.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://mil02.contribute.live-video.net/app/{stream_key}", + "priority": 40 + }, + { + "_id": 41, + "availability": 1.0, + "default": false, + "name": "Europe: Germany, Frankfurt (5)", + "url_template": "rtmp://fra05.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://fra05.contribute.live-video.net/app/{stream_key}", + "priority": 41 + }, + { + "_id": 42, + "availability": 1.0, + "default": false, + "name": "Europe: Germany, Frankfurt (2)", + "url_template": "rtmp://fra02.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://fra02.contribute.live-video.net/app/{stream_key}", + "priority": 42 + }, + { + "_id": 43, + "availability": 1.0, + "default": false, + "name": "Europe: France, Marseille (2)", + "url_template": "rtmp://mrs02.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://mrs02.contribute.live-video.net/app/{stream_key}", + "priority": 43 + }, + { + "_id": 44, + "availability": 1.0, + "default": false, + "name": "US East: Chicago, IL (3)", + "url_template": "rtmp://ord03.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://ord03.contribute.live-video.net/app/{stream_key}", + "priority": 44 + }, + { + "_id": 45, + "availability": 1.0, + "default": false, + "name": "US East: Chicago, IL (56)", + "url_template": "rtmp://ord56.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://ord56.contribute.live-video.net/app/{stream_key}", + "priority": 45 + }, + { + "_id": 46, + "availability": 1.0, + "default": false, + "name": "NA: Canada, Toronto", + "url_template": "rtmp://yto.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://yto.contribute.live-video.net/app/{stream_key}", + "priority": 46 + }, + { + "_id": 47, + "availability": 1.0, + "default": false, + "name": "NA: Canada, Quebec", + "url_template": "rtmp://ymq03.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://ymq03.contribute.live-video.net/app/{stream_key}", + "priority": 47 + }, + { + "_id": 48, + "availability": 1.0, + "default": false, + "name": "US Central: Garland, TX (56)", + "url_template": "rtmp://dfw56.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://dfw56.contribute.live-video.net/app/{stream_key}", + "priority": 48 + }, + { + "_id": 49, + "availability": 1.0, + "default": false, + "name": "US Central: Dallas, TX (2)", + "url_template": "rtmp://dfw02.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://dfw02.contribute.live-video.net/app/{stream_key}", + "priority": 49 + }, + { + "_id": 50, + "availability": 1.0, + "default": false, + "name": "US Central: Houston, TX (50)", + "url_template": "rtmp://iah50.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://iah50.contribute.live-video.net/app/{stream_key}", + "priority": 50 + }, + { + "_id": 51, + "availability": 1.0, + "default": false, + "name": "Europe: Spain, Madrid (2)", + "url_template": "rtmp://mad02.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://mad02.contribute.live-video.net/app/{stream_key}", + "priority": 51 + }, + { + "_id": 52, + "availability": 1.0, + "default": false, + "name": "Europe: Spain, Madrid (1)", + "url_template": "rtmp://mad01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://mad01.contribute.live-video.net/app/{stream_key}", + "priority": 52 + }, + { + "_id": 53, + "availability": 1.0, + "default": false, + "name": "US East: McAllen, TX (1)", + "url_template": "rtmp://mfe01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://mfe01.contribute.live-video.net/app/{stream_key}", + "priority": 53 + }, + { + "_id": 54, + "availability": 1.0, + "default": false, + "name": "US East: New York, NY (50)", + "url_template": "rtmp://jfk50.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://jfk50.contribute.live-video.net/app/{stream_key}", + "priority": 54 + }, + { + "_id": 55, + "availability": 1.0, + "default": false, + "name": "US East: New York, NY", + "url_template": "rtmp://jfk.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://jfk.contribute.live-video.net/app/{stream_key}", + "priority": 55 + }, + { + "_id": 56, + "availability": 1.0, + "default": false, + "name": "US East: Ashburn, VA (5)", + "url_template": "rtmp://iad05.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://iad05.contribute.live-video.net/app/{stream_key}", + "priority": 56 + }, + { + "_id": 57, + "availability": 1.0, + "default": false, + "name": "US East: Atlanta, GA", + "url_template": "rtmp://atl.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://atl.contribute.live-video.net/app/{stream_key}", + "priority": 57 + }, + { + "_id": 58, + "availability": 1.0, + "default": false, + "name": "NA: Mexico, Queretaro (4)", + "url_template": "rtmp://qro04.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://qro04.contribute.live-video.net/app/{stream_key}", + "priority": 58 + }, + { + "_id": 59, + "availability": 1.0, + "default": false, + "name": "NA: Mexico, Queretaro (3)", + "url_template": "rtmp://qro03.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://qro03.contribute.live-video.net/app/{stream_key}", + "priority": 59 + }, + { + "_id": 60, + "availability": 1.0, + "default": false, + "name": "US East: Miami, FL (5)", + "url_template": "rtmp://mia05.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://mia05.contribute.live-video.net/app/{stream_key}", + "priority": 60 + }, + { + "_id": 61, + "availability": 1.0, + "default": false, + "name": "South America: Colombia, Bogota (1)", + "url_template": "rtmp://bog01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://bog01.contribute.live-video.net/app/{stream_key}", + "priority": 61 + }, + { + "_id": 62, + "availability": 1.0, + "default": false, + "name": "South America: Brazil, Fortaleza (1)", + "url_template": "rtmp://for01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://for01.contribute.live-video.net/app/{stream_key}", + "priority": 62 + }, + { + "_id": 63, + "availability": 1.0, + "default": false, + "name": "South America : chile, Santiago (1)", + "url_template": "rtmp://scl01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://scl01.contribute.live-video.net/app/{stream_key}", + "priority": 63 + }, + { + "_id": 64, + "availability": 1.0, + "default": false, + "name": "South America: Buenos Aires, Argentina (1)", + "url_template": "rtmp://bue01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://bue01.contribute.live-video.net/app/{stream_key}", + "priority": 64 + }, + { + "_id": 65, + "availability": 1.0, + "default": false, + "name": "South America: Brazil, Sao Paulo (5)", + "url_template": "rtmp://sao05.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://sao05.contribute.live-video.net/app/{stream_key}", + "priority": 65 + }, + { + "_id": 66, + "availability": 1.0, + "default": false, + "name": "South America: Brazil, Sao Paulo", + "url_template": "rtmp://sao03.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://sao03.contribute.live-video.net/app/{stream_key}", + "priority": 66 + }, + { + "_id": 67, + "availability": 1.0, + "default": false, + "name": "South America: Brazil, Rio de Janeiro (4)", + "url_template": "rtmp://rio04.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://rio04.contribute.live-video.net/app/{stream_key}", + "priority": 67 + }, + { + "_id": 68, + "availability": 1.0, + "default": false, + "name": "South America: Brazil, Rio de Janeiro (3)", + "url_template": "rtmp://rio03.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://rio03.contribute.live-video.net/app/{stream_key}", + "priority": 68 + } + ] +} diff --git a/dotfiles/.config/obs-studio/plugin_config/rtmp-services/package.json b/dotfiles/.config/obs-studio/plugin_config/rtmp-services/package.json new file mode 100644 index 0000000..7a60fe0 --- /dev/null +++ b/dotfiles/.config/obs-studio/plugin_config/rtmp-services/package.json @@ -0,0 +1,11 @@ +{ + "$schema": "schema/package-schema.json", + "url": "https://obsproject.com/obs2_update/rtmp-services/v5", + "version": 268, + "files": [ + { + "name": "services.json", + "version": 268 + } + ] +} diff --git a/dotfiles/.config/obs-studio/plugin_config/rtmp-services/services.json b/dotfiles/.config/obs-studio/plugin_config/rtmp-services/services.json new file mode 100644 index 0000000..3ddd184 --- /dev/null +++ b/dotfiles/.config/obs-studio/plugin_config/rtmp-services/services.json @@ -0,0 +1,3586 @@ +{ + "$schema": "schema/service-schema-v5.json", + "format_version": 5, + "services": [ + { + "name": "Twitch", + "common": true, + "stream_key_link": "https://dashboard.twitch.tv/settings/stream", + "multitrack_video_configuration_url": "https://ingest.twitch.tv/api/v3/GetClientConfiguration", + "multitrack_video_name": "Enhanced Broadcasting", + "multitrack_video_learn_more_link": "https://help.twitch.tv/s/article/multiple-encodes", + "servers": [ + { + "name": "Asia: Hong Kong", + "url": "rtmp://live-hkg.twitch.tv/app" + }, + { + "name": "Asia: Seoul, South Korea", + "url": "rtmp://live-sel.twitch.tv/app" + }, + { + "name": "Asia: Singapore", + "url": "rtmp://live-sin.twitch.tv/app" + }, + { + "name": "Asia: Taipei, Taiwan", + "url": "rtmp://live-tpe.twitch.tv/app" + }, + { + "name": "Asia: Tokyo, Japan", + "url": "rtmp://live-tyo.twitch.tv/app" + }, + { + "name": "Australia: Sydney", + "url": "rtmp://live-syd.twitch.tv/app" + }, + { + "name": "EU: Amsterdam, NL", + "url": "rtmp://live-ams.twitch.tv/app" + }, + { + "name": "EU: Berlin, DE", + "url": "rtmp://live-ber.twitch.tv/app" + }, + { + "name": "Europe: Copenhagen, DK", + "url": "rtmp://live-cph.twitch.tv/app" + }, + { + "name": "EU: Frankfurt, DE", + "url": "rtmp://live-fra.twitch.tv/app" + }, + { + "name": "EU: Helsinki, FI", + "url": "rtmp://live-hel.twitch.tv/app" + }, + { + "name": "EU: Lisbon, Portugal", + "url": "rtmp://live-lis.twitch.tv/app" + }, + { + "name": "EU: London, UK", + "url": "rtmp://live-lhr.twitch.tv/app" + }, + { + "name": "EU: Madrid, Spain", + "url": "rtmp://live-mad.twitch.tv/app" + }, + { + "name": "EU: Marseille, FR", + "url": "rtmp://live-mrs.twitch.tv/app" + }, + { + "name": "EU: Milan, Italy", + "url": "rtmp://live-mil.twitch.tv/app" + }, + { + "name": "EU: Norway, Oslo", + "url": "rtmp://live-osl.twitch.tv/app" + }, + { + "name": "EU: Paris, FR", + "url": "rtmp://live-cdg.twitch.tv/app" + }, + { + "name": "EU: Prague, CZ", + "url": "rtmp://live-prg.twitch.tv/app" + }, + { + "name": "EU: Stockholm, SE", + "url": "rtmp://live-arn.twitch.tv/app" + }, + { + "name": "EU: Vienna, Austria", + "url": "rtmp://live-vie.twitch.tv/app" + }, + { + "name": "EU: Warsaw, Poland", + "url": "rtmp://live-waw.twitch.tv/app" + }, + { + "name": "NA: Mexico City", + "url": "rtmp://live-qro.twitch.tv/app" + }, + { + "name": "NA: Quebec, Canada", + "url": "rtmp://live-ymq.twitch.tv/app" + }, + { + "name": "NA: Toronto, Canada", + "url": "rtmp://live-yto.twitch.tv/app" + }, + { + "name": "South America: Argentina", + "url": "rtmp://live-eze.twitch.tv/app" + }, + { + "name": "South America: Chile", + "url": "rtmp://live-scl.twitch.tv/app" + }, + { + "name": "South America: Lima, Peru", + "url": "rtmp://live-lim.twitch.tv/app" + }, + { + "name": "South America: Medellin, Colombia", + "url": "rtmp://live-mde.twitch.tv/app" + }, + { + "name": "South America: Rio de Janeiro, Brazil", + "url": "rtmp://live-rio.twitch.tv/app" + }, + { + "name": "South America: Sao Paulo, Brazil", + "url": "rtmp://live-sao.twitch.tv/app" + }, + { + "name": "US Central: Dallas, TX", + "url": "rtmp://live-dfw.twitch.tv/app" + }, + { + "name": "US Central: Denver, CO", + "url": "rtmp://live-den.twitch.tv/app" + }, + { + "name": "US Central: Houston, TX", + "url": "rtmp://live-hou.twitch.tv/app" + }, + { + "name": "US Central: Salt Lake City, UT", + "url": "rtmp://live-slc.twitch.tv/app" + }, + { + "name": "US East: Ashburn, VA", + "url": "rtmp://live-iad.twitch.tv/app" + }, + { + "name": "US East: Atlanta, GA", + "url": "rtmp://live-atl.twitch.tv/app" + }, + { + "name": "US East: Chicago", + "url": "rtmp://live-ord.twitch.tv/app" + }, + { + "name": "US East: Miami, FL", + "url": "rtmp://live-mia.twitch.tv/app" + }, + { + "name": "US East: New York, NY", + "url": "rtmp://live-jfk.twitch.tv/app" + }, + { + "name": "US West: Los Angeles, CA", + "url": "rtmp://live-lax.twitch.tv/app" + }, + { + "name": "US West: Phoenix, AZ", + "url": "rtmp://live-phx.twitch.tv/app" + }, + { + "name": "US West: Portland, Oregon", + "url": "rtmp://live-pdx.twitch.tv/app" + }, + { + "name": "US West: San Francisco, CA", + "url": "rtmp://live-sfo.twitch.tv/app" + }, + { + "name": "US West: San Jose, CA", + "url": "rtmp://live-sjc.twitch.tv/app" + }, + { + "name": "US West: Seattle, WA", + "url": "rtmp://live-sea.twitch.tv/app" + } + ], + "recommended": { + "keyint": 2, + "max video bitrate": 6000, + "max audio bitrate": 320, + "x264opts": "scenecut=0" + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "YouTube - HLS", + "common": false, + "more_info_link": "https://developers.google.com/youtube/v3/live/guides/ingestion-protocol-comparison", + "stream_key_link": "https://www.youtube.com/live_dashboard", + "protocol": "HLS", + "supported video codecs": [ + "h264", + "hevc" + ], + "servers": [ + { + "name": "Primary YouTube ingest server", + "url": "https://a.upload.youtube.com/http_upload_hls?cid={stream_key}©=0&file=out.m3u8" + }, + { + "name": "Backup YouTube ingest server", + "url": "https://b.upload.youtube.com/http_upload_hls?cid={stream_key}©=1&file=out.m3u8" + } + ], + "recommended": { + "keyint": 2, + "output": "ffmpeg_hls_muxer", + "max video bitrate": 51000, + "max audio bitrate": 160 + } + }, + { + "name": "YouTube - RTMPS", + "common": true, + "stream_key_link": "https://www.youtube.com/live_dashboard", + "alt_names": [ + "YouTube / YouTube Gaming", + "YouTube - RTMP", + "YouTube - RTMPS (Beta)" + ], + "supported video codecs": [ + "h264", + "hevc", + "av1" + ], + "servers": [ + { + "name": "Primary YouTube ingest server", + "url": "rtmps://a.rtmps.youtube.com:443/live2" + }, + { + "name": "Backup YouTube ingest server", + "url": "rtmps://b.rtmps.youtube.com:443/live2?backup=1" + }, + { + "name": "Primary YouTube ingest server (legacy RTMP)", + "url": "rtmp://a.rtmp.youtube.com/live2" + }, + { + "name": "Backup YouTube ingest server (legacy RTMP)", + "url": "rtmp://b.rtmp.youtube.com/live2?backup=1" + } + ], + "recommended": { + "keyint": 2, + "max video bitrate": 51000, + "max audio bitrate": 160 + } + }, + { + "name": "Loola.tv", + "common": false, + "servers": [ + { + "name": "US East: Virginia", + "url": "rtmp://rtmp.loola.tv/push" + }, + { + "name": "EU Central: Germany", + "url": "rtmp://rtmp-eu.loola.tv/push" + }, + { + "name": "South America: Brazil", + "url": "rtmp://rtmp-sa.loola.tv/push" + }, + { + "name": "Asia/Pacific: Singapore", + "url": "rtmp://rtmp-sg.loola.tv/push" + }, + { + "name": "Middle East: Bahrain", + "url": "rtmp://rtmp-me.loola.tv/push" + } + ], + "recommended": { + "keyint": 2, + "profile": "high", + "max video bitrate": 2500, + "max audio bitrate": 160, + "bframes": 2, + "x264opts": "scenecut=0" + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Lovecast", + "servers": [ + { + "name": "Default", + "url": "rtmp://live-a.lovecastapp.com:5222/app" + } + ], + "recommended": { + "keyint": 2, + "profile": "main", + "max video bitrate": 8000, + "max audio bitrate": 192, + "supported resolutions": [ + "1920x1080", + "1280x720" + ], + "max fps": 30 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Luzento.com - RTMP", + "stream_key_link": "https://cms.luzento.com/dashboard/stream-key?from=OBS", + "servers": [ + { + "name": "Primary", + "url": "rtmp://ingest.luzento.com/live" + }, + { + "name": "Primary (Test)", + "url": "rtmp://ingest.luzento.com/test" + } + ], + "recommended": { + "keyint": 2, + "max video bitrate": 6000, + "max audio bitrate": 256, + "bframes": 2, + "x264opts": "scenecut=0" + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Web.TV", + "servers": [ + { + "name": "Primary", + "url": "rtmp://live3.origins.web.tv/liveext" + } + ], + "recommended": { + "keyint": 2, + "profile": "main", + "max video bitrate": 3500, + "max audio bitrate": 160 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "GoodGame.ru", + "servers": [ + { + "name": "Моscow", + "url": "rtmp://msk.goodgame.ru:1940/live" + } + ], + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Vaughn Live / iNSTAGIB", + "servers": [ + { + "name": "US: Vint Hill, VA", + "url": "rtmp://live-iad.vaughnsoft.net/live" + }, + { + "name": "US: Vint Hill, VA #2", + "url": "rtmp://live-iad2.vaughnsoft.net/live" + }, + { + "name": "US: Dallas, TX", + "url": "rtmp://live-dfw.vaughnsoft.net/live" + }, + { + "name": "US: Denver, CO", + "url": "rtmp://live-den.vaughnsoft.net/live" + }, + { + "name": "US: New York, NY", + "url": "rtmp://live-nyc.vaughnsoft.net/live" + }, + { + "name": "US: Miami, FL", + "url": "rtmp://live-mia.vaughnsoft.net/live" + }, + { + "name": "US: Seattle, WA", + "url": "rtmp://live-sea.vaughnsoft.net/live" + }, + { + "name": "CA: Toronto", + "url": "rtmp://live-tor.vaughnsoft.net/live" + }, + { + "name": "EU: Amsterdam, NL", + "url": "rtmp://live-ams.vaughnsoft.net/live" + }, + { + "name": "EU: London, UK", + "url": "rtmp://live-lhr.vaughnsoft.net/live" + }, + { + "name": "EU: Paris, FR", + "url": "rtmp://live-lhr.vaughnsoft.net/live" + }, + { + "name": "Tokyo, JP", + "url": "rtmp://live-lhr.vaughnsoft.net/live" + } + ], + "recommended": { + "keyint": 2, + "max video bitrate": 15000, + "max audio bitrate": 320 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Breakers.TV", + "servers": [ + { + "name": "US: Vint Hill, VA", + "url": "rtmp://live-iad.vaughnsoft.net/live" + }, + { + "name": "US: Vint Hill, VA #2", + "url": "rtmp://live-iad2.vaughnsoft.net/live" + }, + { + "name": "US: Dallas, TX", + "url": "rtmp://live-dfw.vaughnsoft.net/live" + }, + { + "name": "US: Denver, CO", + "url": "rtmp://live-den.vaughnsoft.net/live" + }, + { + "name": "US: New York, NY", + "url": "rtmp://live-nyc.vaughnsoft.net/live" + }, + { + "name": "US: Miami, FL", + "url": "rtmp://live-mia.vaughnsoft.net/live" + }, + { + "name": "US: Seattle, WA", + "url": "rtmp://live-sea.vaughnsoft.net/live" + }, + { + "name": "CA: Toronto", + "url": "rtmp://live-tor.vaughnsoft.net/live" + }, + { + "name": "EU: Amsterdam, NL", + "url": "rtmp://live-ams.vaughnsoft.net/live" + }, + { + "name": "EU: London, UK", + "url": "rtmp://live-lhr.vaughnsoft.net/live" + }, + { + "name": "EU: Paris, FR", + "url": "rtmp://live-lhr.vaughnsoft.net/live" + }, + { + "name": "Tokyo, JP", + "url": "rtmp://live-lhr.vaughnsoft.net/live" + } + ], + "recommended": { + "keyint": 2, + "max video bitrate": 15000, + "max audio bitrate": 320 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Facebook Live", + "common": true, + "stream_key_link": "https://www.facebook.com/live/producer?ref=OBS", + "servers": [ + { + "name": "Default", + "url": "rtmps://rtmp-api.facebook.com:443/rtmp/" + } + ], + "recommended": { + "keyint": 2, + "profile": "main", + "supported resolutions": [ + "1920x1080", + "1280x720", + "852x480", + "640x360" + ], + "bitrate matrix": [ + { + "res": "640x360", + "fps": 30, + "max bitrate": 1000 + }, + { + "res": "640x360", + "fps": 60, + "max bitrate": 1500 + }, + { + "res": "852x480", + "fps": 30, + "max bitrate": 2000 + }, + { + "res": "852x480", + "fps": 60, + "max bitrate": 3000 + }, + { + "res": "1280x720", + "fps": 30, + "max bitrate": 4000 + }, + { + "res": "1280x720", + "fps": 60, + "max bitrate": 6000 + }, + { + "res": "1920x1080", + "fps": 30, + "max bitrate": 6000 + }, + { + "res": "1920x1080", + "fps": 60, + "max bitrate": 9000 + } + ], + "max fps": 60, + "max video bitrate": 9000, + "max audio bitrate": 128 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Restream.io", + "alt_names": [ + "Restream.io - RTMP", + "Restream.io - FTL" + ], + "common": true, + "stream_key_link": "https://restream.io/settings/streaming-setup?from=OBS", + "servers": [ + { + "name": "Autodetect", + "url": "rtmp://live.restream.io/live" + }, + { + "name": "EU-West (London, GB)", + "url": "rtmp://london.restream.io/live" + }, + { + "name": "EU-West (Amsterdam, NL)", + "url": "rtmp://amsterdam.restream.io/live" + }, + { + "name": "EU-West (Paris, FR)", + "url": "rtmp://paris.restream.io/live" + }, + { + "name": "EU-Central (Frankfurt, DE)", + "url": "rtmp://frankfurt.restream.io/live" + }, + { + "name": "EU-South (Madrid, Spain)", + "url": "rtmp://madrid.restream.io/live" + }, + { + "name": "Turkey (Istanbul)", + "url": "rtmp://istanbul.restream.io/live" + }, + { + "name": "US-West (Seattle, WA)", + "url": "rtmp://seattle.restream.io/live" + }, + { + "name": "US-West (San Jose, CA)", + "url": "rtmp://sanjose.restream.io/live" + }, + { + "name": "US-Central (Dallas, TX)", + "url": "rtmp://dallas.restream.io/live" + }, + { + "name": "US-East (Chicago, IL)", + "url": "rtmp://chicago.restream.io/live" + }, + { + "name": "US-East (New York, NY)", + "url": "rtmp://newyork.restream.io/live" + }, + { + "name": "US-East (Washington, DC)", + "url": "rtmp://washington.restream.io/live" + }, + { + "name": "NA-East (Toronto, Canada)", + "url": "rtmp://toronto.restream.io/live" + }, + { + "name": "SA (Saint Paul, Brazil)", + "url": "rtmp://saopaulo.restream.io/live" + }, + { + "name": "India (Bangalore)", + "url": "rtmp://bangalore.restream.io/live" + }, + { + "name": "Asia (Hong Kong)", + "url": "rtmp://hongkong.restream.io/live" + }, + { + "name": "Asia (Singapore)", + "url": "rtmp://singapore.restream.io/live" + }, + { + "name": "Asia (Seoul, South Korea)", + "url": "rtmp://seoul.restream.io/live" + }, + { + "name": "Asia (Tokyo, Japan)", + "url": "rtmp://tokyo.restream.io/live" + }, + { + "name": "Australia (Sydney)", + "url": "rtmp://sydney.restream.io/live" + } + ], + "recommended": { + "keyint": 2 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Castr.io", + "servers": [ + { + "name": "US-East (Chicago, IL)", + "url": "rtmp://cg.castr.io/static" + }, + { + "name": "US-East (New York, NY)", + "url": "rtmp://ny.castr.io/static" + }, + { + "name": "US-East (Miami, FL)", + "url": "rtmp://mi.castr.io/static" + }, + { + "name": "US-West (Seattle, WA)", + "url": "rtmp://se.castr.io/static" + }, + { + "name": "US-West (Los Angeles, CA)", + "url": "rtmp://la.castr.io/static" + }, + { + "name": "US-Central (Dallas, TX)", + "url": "rtmp://da.castr.io/static" + }, + { + "name": "NA-East (Toronto, CA)", + "url": "rtmp://qc.castr.io/static" + }, + { + "name": "Mexico", + "url": "rtmp://mexico.castr.io/static" + }, + { + "name": "Sao Paulo, BR", + "url": "rtmp://br.castr.io/static" + }, + { + "name": "Colombia", + "url": "rtmp://bogota.castr.io/static" + }, + { + "name": "Santiago, Chile", + "url": "rtmp://santiago.castr.io/static" + }, + { + "name": "Istanbul, TR", + "url": "rtmp://istanbul.castr.io/static" + }, + { + "name": "Tel Aviv, IL", + "url": "rtmp://telaviv.castr.io/static" + }, + { + "name": "EU-West (London, UK)", + "url": "rtmp://uk.castr.io/static" + }, + { + "name": "EU-West (Paris, FR)", + "url": "rtmp://paris.castr.io/static" + }, + { + "name": "EU-West (Madrid, ES)", + "url": "rtmp://madrid.castr.io/static" + }, + { + "name": "EU-Central (Frankfurt, DE)", + "url": "rtmp://fr.castr.io/static" + }, + { + "name": "EU-Central (Milan, IT)", + "url": "rtmp://milan.castr.io/static" + }, + { + "name": "EU-North (Stockholm, SE)", + "url": "rtmp://stockholm.castr.io/static" + }, + { + "name": "EU-North (Copenhagen, DK)", + "url": "rtmp://copenhagen.castr.io/static" + }, + { + "name": "Russia (Moscow)", + "url": "rtmp://ru.castr.io/static" + }, + { + "name": "Asia (Singapore)", + "url": "rtmp://sg.castr.io/static" + }, + { + "name": "Asia (Hong Kong, HK)", + "url": "rtmp://hongkong.castr.io/static" + }, + { + "name": "Asia (India)", + "url": "rtmp://in.castr.io/static" + }, + { + "name": "Australia (Sydney)", + "url": "rtmp://au.castr.io/static" + }, + { + "name": "UAE (Dubai)", + "url": "rtmp://dubai.castr.io/static" + }, + { + "name": "Africa (Johannesburg, ZA)", + "url": "rtmp://southafrica.castr.io/static" + }, + { + "name": "Africa (Lagos, NG)", + "url": "rtmp://lagos.castr.io/static" + }, + { + "name": "US Central", + "url": "rtmp://us-central.castr.io/static" + }, + { + "name": "US West", + "url": "rtmp://us-west.castr.io/static" + }, + { + "name": "US East", + "url": "rtmp://us-east.castr.io/static" + }, + { + "name": "US South", + "url": "rtmp://us-south.castr.io/static" + }, + { + "name": "South America", + "url": "rtmp://south-am.castr.io/static" + }, + { + "name": "EU Central", + "url": "rtmp://eu-central.castr.io/static" + }, + { + "name": "Singapore", + "url": "rtmp://sg-central.castr.io/static" + } + ], + "recommended": { + "keyint": 2 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Boomstream", + "servers": [ + { + "name": "Default", + "url": "rtmp://live.boomstream.com/live" + } + ], + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Meridix Live Sports Platform", + "servers": [ + { + "name": "Primary", + "url": "rtmp://publish.meridix.com/live" + } + ], + "recommended": { + "max video bitrate": 3500 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "AfreecaTV", + "alt_names": [ + "아프리카TV", + "Afreeca.TV" + ], + "servers": [ + { + "name": "Asia : Korea", + "url": "rtmp://rtmpmanager-freecat.afreeca.tv/app" + }, + { + "name": "North America : US East", + "url": "rtmp://rtmp-esu.afreecatv.com/app" + }, + { + "name": "North America : US West", + "url": "rtmp://rtmp-wsu.afreecatv.com/app" + }, + { + "name": "South America : Brazil", + "url": "rtmp://rtmp-brz.afreecatv.com/app" + }, + { + "name": "Europe : UK", + "url": "rtmp://rtmp-uk.afreecatv.com/app" + }, + { + "name": "Asia : Singapore", + "url": "rtmp://rtmp-sgp.afreecatv.com/app" + } + ], + "recommended": { + "keyint": 2, + "profile": "main", + "max video bitrate": 8000, + "max audio bitrate": 192 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "CAM4", + "servers": [ + { + "name": "CAM4", + "url": "rtmp://origin.cam4.com/cam4-origin-live" + } + ], + "recommended": { + "keyint": 1, + "profile": "baseline", + "max video bitrate": 3000, + "max audio bitrate": 128 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "ePlay", + "servers": [ + { + "name": "ePlay Primary", + "url": "rtmp://live.eplay.link/origin" + } + ], + "recommended": { + "keyint": 2, + "profile": "main", + "max video bitrate": 7500, + "max audio bitrate": 192 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Picarto", + "servers": [ + { + "name": "Autoselect closest server", + "url": "rtmp://live.us.picarto.tv/golive" + }, + { + "name": "Los Angeles, USA", + "url": "rtmp://live.us-losangeles.picarto.tv/golive" + }, + { + "name": "Dallas, USA", + "url": "rtmp://live.us-dallas.picarto.tv/golive" + }, + { + "name": "Miami, USA", + "url": "rtmp://live.us-miami.picarto.tv/golive" + }, + { + "name": "New York, USA", + "url": "rtmp://live.us-newyork.picarto.tv/golive" + }, + { + "name": "Europe", + "url": "rtmp://live.eu-west1.picarto.tv/golive" + } + ], + "recommended": { + "keyint": 2, + "profile": "main", + "max video bitrate": 3500 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Livestream", + "servers": [ + { + "name": "Primary", + "url": "rtmp://rtmpin.livestreamingest.com/rtmpin" + } + ], + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Uscreen", + "servers": [ + { + "name": "Default", + "url": "rtmp://global-live.uscreen.app:5222/app" + } + ], + "recommended": { + "keyint": 2, + "max video bitrate": 8000, + "max audio bitrate": 192 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Stripchat", + "servers": [ + { + "name": "Auto", + "url": "rtmp://live.doppiocdn.com/ext" + } + ], + "recommended": { + "keyint": 2, + "profile": "main", + "bframes": 0, + "max video bitrate": 6000, + "max audio bitrate": 128, + "x264opts": "tune=zerolatency" + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "CamSoda", + "servers": [ + { + "name": "North America", + "url": "rtmp://obs-ingest-na.livemediahost.com/cam_obs" + }, + { + "name": "South America", + "url": "rtmp://obs-ingest-sa.livemediahost.com/cam_obs" + }, + { + "name": "Asia", + "url": "rtmp://obs-ingest-as.livemediahost.com/cam_obs" + }, + { + "name": "Europe", + "url": "rtmp://obs-ingest-eu.livemediahost.com/cam_obs" + }, + { + "name": "Oceania", + "url": "rtmp://obs-ingest-oc.livemediahost.com/cam_obs" + } + ], + "recommended": { + "supported resolutions": [ + "1920x1080", + "1280x720", + "852x480", + "480x360" + ], + "max fps": 30, + "max video bitrate": 6000, + "max audio bitrate": 160, + "x264opts": "tune=zerolatency" + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Chaturbate", + "stream_key_link": "https://chaturbate.com/b/?useExternalSoftware=true", + "more_info_link": "https://support.chaturbate.com/hc/en-us/articles/360037971952-How-do-I-set-up-OBS", + "servers": [ + { + "name": "Global Main Fastest - Recommended", + "url": "rtmp://global.live.mmcdn.com/live-origin" + }, + { + "name": "Global Backup", + "url": "rtmp://global-backup.live.mmcdn.com/live-origin" + }, + { + "name": "Asia: Mumbai, India", + "url": "rtmp://bom.live.mmcdn.com/live-origin" + }, + { + "name": "Asia: Singapore", + "url": "rtmp://sin.live.mmcdn.com/live-origin" + }, + { + "name": "Asia: Taiwan", + "url": "rtmp://tsa.live.mmcdn.com/live-origin" + }, + { + "name": "Asia: Tokyo, Japan", + "url": "rtmp://nrt.live.mmcdn.com/live-origin" + }, + { + "name": "Australasia: Sydney, Australia", + "url": "rtmp://syd.live.mmcdn.com/live-origin" + }, + { + "name": "EU East: Sofia, Bulgaria", + "url": "rtmp://sof.live.mmcdn.com/live-origin" + }, + { + "name": "EU East: Warsaw, Poland", + "url": "rtmp://waw.live.mmcdn.com/live-origin" + }, + { + "name": "EU North: Helsinki, Finland", + "url": "rtmp://hel.live.mmcdn.com/live-origin" + }, + { + "name": "EU West: Amsterdam, Netherlands", + "url": "rtmp://ams.live.mmcdn.com/live-origin" + }, + { + "name": "EU West: Frankfurt, Germany", + "url": "rtmp://fra.live.mmcdn.com/live-origin" + }, + { + "name": "EU West: Madrid, Spain", + "url": "rtmp://mad.live.mmcdn.com/live-origin" + }, + { + "name": "EU West: Milan, Italy", + "url": "rtmp://mxp.live.mmcdn.com/live-origin" + }, + { + "name": "EU West: Rotterdam, Netherlands", + "url": "rtmp://rtm.live.mmcdn.com/live-origin" + }, + { + "name": "South America: Bogota, Colombia", + "url": "rtmp://bog.live.mmcdn.com/live-origin" + }, + { + "name": "South America: Sao Paulo, Brazil", + "url": "rtmp://gru.live.mmcdn.com/live-origin" + }, + { + "name": "US Central: Austin, TX", + "url": "rtmp://aus.live.mmcdn.com/live-origin" + }, + { + "name": "US Central: Chicago, IL", + "url": "rtmp://chi.live.mmcdn.com/live-origin" + }, + { + "name": "US East: Ashburn, VA", + "url": "rtmp://ash.live.mmcdn.com/live-origin" + }, + { + "name": "US East: Atlanta, GA", + "url": "rtmp://atl.live.mmcdn.com/live-origin" + }, + { + "name": "US East: Miami, FL", + "url": "rtmp://mia.live.mmcdn.com/live-origin" + }, + { + "name": "US West: Los Angeles, CA", + "url": "rtmp://lax.live.mmcdn.com/live-origin" + }, + { + "name": "US West: Phoenix, AZ", + "url": "rtmp://phx.live.mmcdn.com/live-origin" + }, + { + "name": "US West: Salt Lake City, UT", + "url": "rtmp://slc.live.mmcdn.com/live-origin" + }, + { + "name": "US West: Seattle, WA", + "url": "rtmp://sea.live.mmcdn.com/live-origin" + } + ], + "recommended": { + "keyint": 2, + "max video bitrate": 50000, + "max audio bitrate": 192, + "supported resolutions": [ + "3840x2160", + "2560x1440", + "1920x1080", + "1280x720", + "960x540", + "852x480", + "640x360" + ], + "max fps": 60 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "WpStream", + "more_info_link": "https://wpstream.net/obs-more-info", + "stream_key_link": "https://wpstream.net/obs-get-stream-key", + "servers": [ + { + "name": "Closest server - Automatic", + "url": "rtmp://ingest.wpstream.net/golive" + }, + { + "name": "North America", + "url": "rtmp://ingest-na.wpstream.net/golive" + }, + { + "name": "Europe", + "url": "rtmp://ingest-eu.wpstream.net/golive" + }, + { + "name": "Asia", + "url": "rtmp://ingest-as.wpstream.net/golive" + }, + { + "name": "South America", + "url": "rtmp://ingest-sa.wpstream.net/golive" + }, + { + "name": "Australia & Oceania", + "url": "rtmp://ingest-au.wpstream.net/golive" + } + ], + "recommended": { + "keyint": 2, + "max audio bitrate": 160 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Twitter", + "common": true, + "stream_key_link": "https://studio.twitter.com/producer/sources", + "alt_names": [ + "Twitter / Periscope" + ], + "servers": [ + { + "name": "US West: California", + "url": "rtmp://ca.pscp.tv:80/x" + }, + { + "name": "US West: Oregon", + "url": "rtmp://or.pscp.tv:80/x" + }, + { + "name": "US East: Virginia", + "url": "rtmp://va.pscp.tv:80/x" + }, + { + "name": "South America: Brazil", + "url": "rtmp://br.pscp.tv:80/x" + }, + { + "name": "EU West: France", + "url": "rtmp://fr.pscp.tv:80/x" + }, + { + "name": "EU West: Ireland", + "url": "rtmp://ie.pscp.tv:80/x" + }, + { + "name": "EU Central: Germany", + "url": "rtmp://de.pscp.tv:80/x" + }, + { + "name": "Asia/Pacific: Australia", + "url": "rtmp://au.pscp.tv:80/x" + }, + { + "name": "Asia/Pacific: India", + "url": "rtmp://in.pscp.tv:80/x" + }, + { + "name": "Asia/Pacific: Japan", + "url": "rtmp://jp.pscp.tv:80/x" + }, + { + "name": "Asia/Pacific: Korea", + "url": "rtmp://kr.pscp.tv:80/x" + }, + { + "name": "Asia/Pacific: Singapore", + "url": "rtmp://sg.pscp.tv:80/x" + } + ], + "recommended": { + "keyint": 3, + "max video bitrate": 12000, + "max audio bitrate": 128, + "max fps": 60 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Switchboard Live", + "alt_names": [ + "Switchboard Live (Joicaster)" + ], + "servers": [ + { + "name": "Default", + "url": "rtmps://live.sb.zone:443/live" + } + ], + "recommended": { + "keyint": 2, + "profile": "high" + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Eventials", + "servers": [ + { + "name": "Default", + "url": "rtmp://transmission.eventials.com/eventialsLiveOrigin" + } + ], + "recommended": { + "keyint": 1, + "profile": "baseline", + "max video bitrate": 900, + "max audio bitrate": 96 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "EventLive.pro", + "servers": [ + { + "name": "Default", + "url": "rtmp://go.eventlive.pro/live" + } + ], + "recommended": { + "keyint": 2, + "max video bitrate": 3000, + "max audio bitrate": 192, + "supported resolutions": [ + "1920x1080", + "1280x720" + ], + "max fps": 30 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Lahzenegar - StreamG | لحظه‌نگار - استریمجی", + "servers": [ + { + "name": "Primary", + "url": "rtmp://rtmp.lahzecdn.com/pro" + }, + { + "name": "Iran", + "url": "rtmp://rtmp-iran.lahzecdn.com/pro" + } + ], + "recommended": { + "keyint": 2, + "profile": "main", + "max video bitrate": 4000, + "max audio bitrate": 192 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "MyLive", + "servers": [ + { + "name": "Default", + "url": "rtmp://stream.mylive.in.th/live" + } + ], + "recommended": { + "keyint": 2, + "profile": "main", + "max video bitrate": 7000, + "max audio bitrate": 192 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Trovo", + "alt_names": [ + "Madcat" + ], + "stream_key_link": "https://studio.trovo.live/mychannel/stream", + "servers": [ + { + "name": "Default", + "url": "rtmp://livepush.trovo.live/live/" + } + ], + "recommended": { + "keyint": 2, + "max video bitrate": 9000, + "max audio bitrate": 160, + "x264opts": "scenecut=0" + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Mixcloud", + "servers": [ + { + "name": "Default", + "url": "rtmp://rtmp.mixcloud.com/broadcast" + } + ], + "recommended": { + "keyint": 2, + "max video bitrate": 6000, + "max audio bitrate": 320, + "supported resolutions": [ + "1280x720", + "852x480", + "480x360" + ], + "max fps": 30, + "x264opts": "scenecut=0" + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "SermonAudio Cloud", + "alt_names": [ + "SermonAudio.com" + ], + "servers": [ + { + "name": "Primary", + "url": "rtmp://webcast.sermonaudio.com/sa" + } + ], + "recommended": { + "max video bitrate": 2000, + "max audio bitrate": 128 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Vimeo", + "servers": [ + { + "name": "Default", + "url": "rtmp://rtmp.cloud.vimeo.com/live" + } + ], + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Aparat", + "servers": [ + { + "name": "Default", + "url": "rtmp://rtmp.cdn.asset.aparat.com:443/event" + } + ], + "recommended": { + "keyint": 2, + "max video bitrate": 6000, + "max audio bitrate": 320, + "x264opts": "scenecut=0" + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "KakaoTV", + "servers": [ + { + "name": "Default", + "url": "rtmp://rtmp.play.kakao.com/kakaotv" + } + ], + "recommended": { + "max video bitrate": 8000, + "max audio bitrate": 192 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Piczel.tv", + "servers": [ + { + "name": "Default", + "url": "rtmp://piczel.tv:1935/live" + } + ], + "recommended": { + "keyint": 4, + "max video bitrate": 2500, + "max audio bitrate": 256, + "x264opts": "tune=zerolatency" + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "STAGE TEN", + "servers": [ + { + "name": "STAGE TEN", + "url": "rtmps://app-rtmp.stageten.tv:443/stageten" + } + ], + "recommended": { + "keyint": 2, + "profile": "baseline", + "max video bitrate": 4000, + "max audio bitrate": 128 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "DLive", + "servers": [ + { + "name": "Default", + "url": "rtmp://stream.dlive.tv/live" + } + ], + "recommended": { + "keyint": 2, + "max video bitrate": 6000, + "max audio bitrate": 160 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Lightcast.com", + "servers": [ + { + "name": "North America 1", + "url": "rtmp://ingest-na1.live.lightcast.com/in" + }, + { + "name": "North America 2", + "url": "rtmp://ingest-na2.live.lightcast.com/in" + }, + { + "name": "Europe", + "url": "rtmp://ingest-eu1.live.lightcast.com/in" + } + ], + "recommended": { + "keyint": 2, + "max video bitrate": 6000, + "max audio bitrate": 320, + "x264opts": "scenecut=0" + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Bongacams", + "servers": [ + { + "name": "Automatic / Default", + "url": "rtmp://auto.origin.gnsbc.com:1934/live" + }, + { + "name": "Automatic / Backup", + "url": "rtmp://origin.bcvidorigin.com:1934/live" + }, + { + "name": "Europe", + "url": "rtmp://z-eu.origin.gnsbc.com:1934/live" + }, + { + "name": "North America", + "url": "rtmp://z-us.origin.gnsbc.com:1934/live" + } + ], + "recommended": { + "keyint": 2, + "max video bitrate": 6000, + "max audio bitrate": 192, + "bframes": 0, + "x264opts": "tune=zerolatency" + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "OnlyFans.com", + "stream_key_link": "https://onlyfans.com/my/settings/other", + "servers": [ + { + "name": "CloudBeta", + "url": "rtmp://cloudbetastreaming.onlyfans.com/live" + } + ], + "recommended": { + "keyint": 2, + "profile": "main", + "max video bitrate": 2500, + "max audio bitrate": 192, + "bframes": 0, + "x264opts": "tune=zerolatency" + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Steam", + "common": false, + "servers": [ + { + "name": "Default", + "url": "rtmp://ingest-rtmp.broadcast.steamcontent.com/app" + } + ], + "recommended": { + "keyint": 2, + "profile": "high", + "max video bitrate": 7000, + "max audio bitrate": 128 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Konduit.live", + "servers": [ + { + "name": "Default", + "url": "rtmp://rtmp.konduit.live/live" + } + ], + "recommended": { + "keyint": 2, + "x264opts": "scenecut=0" + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "LOCO", + "servers": [ + { + "name": "Default", + "url": "rtmp://ivory-ingest.getloconow.com:1935/stream" + } + ], + "recommended": { + "keyint": 2 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "niconico, premium member (ニコニコ生放送 プレミアム会員)", + "servers": [ + { + "name": "Default", + "url": "rtmp://aliveorigin.dmc.nico/named_input" + } + ], + "recommended": { + "keyint": 2, + "profile": "high", + "max audio bitrate": 192, + "max video bitrate": 5808, + "x264opts": "tune=zerolatency" + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "niconico, free member (ニコニコ生放送 一般会員)", + "servers": [ + { + "name": "Default", + "url": "rtmp://aliveorigin.dmc.nico/named_input" + } + ], + "recommended": { + "keyint": 2, + "profile": "high", + "max audio bitrate": 96, + "max video bitrate": 904, + "x264opts": "tune=zerolatency" + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Nimo TV", + "servers": [ + { + "name": "Global:2", + "url": "rtmp://txpush.rtmp.nimo.tv/live/" + }, + { + "name": "Global:3", + "url": "rtmp://alpush.rtmp.nimo.tv/live/" + } + ], + "recommended": { + "keyint": 2, + "max video bitrate": 6000, + "max audio bitrate": 160 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "XLoveCam.com", + "servers": [ + { + "name": "Europe(main)", + "url": "rtmp://nl.eu.stream.xlove.com/performer-origin" + }, + { + "name": "Europe(Romania)", + "url": "rtmp://ro.eu.stream.xlove.com/performer-origin" + }, + { + "name": "Europe(Russia)", + "url": "rtmp://ru.eu.stream.xlove.com/performer-origin" + }, + { + "name": "North America(US East)", + "url": "rtmp://usec.na.stream.xlove.com/performer-origin" + }, + { + "name": "North America(US West)", + "url": "rtmp://uswc.na.stream.xlove.com/performer-origin" + }, + { + "name": "North America(Canada)", + "url": "rtmp://ca.na.stream.xlove.com/performer-origin" + }, + { + "name": "South America", + "url": "rtmp://co.sa.stream.xlove.com/performer-origin" + }, + { + "name": "Asia", + "url": "rtmp://sg.as.stream.xlove.com/performer-origin" + } + ], + "recommended": { + "x264opts": "scenecut=0" + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "AngelThump", + "servers": [ + { + "name": "Auto", + "url": "rtmp://ingest.angelthump.com/live" + }, + { + "name": "New York 3", + "url": "rtmp://nyc-ingest.angelthump.com:1935/live" + }, + { + "name": "San Francisco 2", + "url": "rtmp://sfo-ingest.angelthump.com:1935/live" + }, + { + "name": "Singapore 1", + "url": "rtmp://sgp-ingest.angelthump.com:1935/live" + }, + { + "name": "London 1", + "url": "rtmp://lon-ingest.angelthump.com:1935/live" + }, + { + "name": "Frankfurt 1", + "url": "rtmp://fra-ingest.angelthump.com:1935/live" + }, + { + "name": "Toronto 1", + "url": "rtmp://tor-ingest.angelthump.com:1935/live" + }, + { + "name": "Amsterdam 3", + "url": "rtmp://ams-ingest.angelthump.com:1935/live" + } + ], + "recommended": { + "keyint": 2, + "profile": "high", + "max video bitrate": 3500, + "max audio bitrate": 160 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "api.video", + "servers": [ + { + "name": "Default", + "url": "rtmp://broadcast.api.video/s" + } + ], + "recommended": { + "keyint": 2, + "max video bitrate": 20000, + "max audio bitrate": 192 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "SHOWROOM", + "protocol": "RTMP", + "servers": [ + { + "name": "Default", + "url": "https://www.showroom-live.com/api/obs/streaming_info?obs_key=" + } + ], + "recommended": { + "keyint": 2, + "profile": "main", + "max video bitrate": 1500, + "max audio bitrate": 160, + "x264opts": "tune=zerolatency" + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Mux", + "servers": [ + { + "name": "Global (RTMPS)", + "url": "rtmps://global-live.mux.com:443/app" + }, + { + "name": "Global (RTMP)", + "url": "rtmp://global-live.mux.com:5222/app" + } + ], + "recommended": { + "keyint": 2, + "max video bitrate": 5000, + "max audio bitrate": 160 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Viloud", + "servers": [ + { + "name": "Default", + "url": "rtmp://live.viloud.tv:5222/app" + } + ], + "recommended": { + "keyint": 2, + "max video bitrate": 5000, + "max audio bitrate": 160 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "MyFreeCams", + "servers": [ + { + "name": "Automatic", + "url": "rtmp://publish.myfreecams.com/NxServer" + }, + { + "name": "Australia", + "url": "rtmp://publish-syd.myfreecams.com/NxServer" + }, + { + "name": "East Asia", + "url": "rtmp://publish-tyo.myfreecams.com/NxServer" + }, + { + "name": "Europe (East)", + "url": "rtmp://publish-buh.myfreecams.com/NxServer" + }, + { + "name": "Europe (West)", + "url": "rtmp://publish-ams.myfreecams.com/NxServer" + }, + { + "name": "North America (East Coast)", + "url": "rtmp://publish-ord.myfreecams.com/NxServer" + }, + { + "name": "North America (West Coast)", + "url": "rtmp://publish-tuk.myfreecams.com/NxServer" + }, + { + "name": "South America", + "url": "rtmp://publish-sao.myfreecams.com/NxServer" + } + ], + "recommended": { + "keyint": 1, + "profile": "high", + "max fps": 60, + "max video bitrate": 10000, + "max audio bitrate": 192, + "x264opts": "tune=zerolatency scenecut=0" + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "PolyStreamer.com", + "servers": [ + { + "name": "Auto-select closest server", + "url": "rtmp://live.polystreamer.com/live" + }, + { + "name": "United States - West", + "url": "rtmp://us-west.live.polystreamer.com/live" + }, + { + "name": "United States - East", + "url": "rtmp://us-east.live.polystreamer.com/live" + }, + { + "name": "Australia", + "url": "rtmp://aus.live.polystreamer.com/live" + }, + { + "name": "India", + "url": "rtmp://ind.live.polystreamer.com/live" + }, + { + "name": "Germany", + "url": "rtmp://deu.live.polystreamer.com/live" + }, + { + "name": "Japan", + "url": "rtmp://jpn.live.polystreamer.com/live" + }, + { + "name": "Singapore", + "url": "rtmp://sgp.live.polystreamer.com/live" + } + ], + "recommended": { + "keyint": 2 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "OPENREC.tv - Premium member (プレミアム会員)", + "stream_key_link": "https://www.openrec.tv/login?keep_login=true&url=https://www.openrec.tv/dashboard/live?from=obs", + "servers": [ + { + "name": "Default", + "url": "rtmp://a.station.openrec.tv:1935/live1" + } + ], + "recommended": { + "keyint": 2, + "max video bitrate": 5000, + "max audio bitrate": 160 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "nanoStream Cloud / bintu", + "more_info_link": "https://www.nanocosmos.de/obs", + "stream_key_link": "https://bintu-cloud-frontend.nanocosmos.de/organisation", + "servers": [ + { + "name": "bintu-stream global ingest (rtmp)", + "url": "rtmp://bintu-stream.nanocosmos.de/live" + }, + { + "name": "bintu-stream global ingest (rtmps)", + "url": "rtmps://bintu-stream.nanocosmos.de:1937/live" + }, + { + "name": "bintu-vtrans global ingest with transcoding/ABR (rtmp)", + "url": "rtmp://bintu-vtrans.nanocosmos.de/live" + }, + { + "name": "bintu-vtrans global ingest with transcoding/ABR (rtmps)", + "url": "rtmps://bintu-vtrans.nanocosmos.de:1937/live" + }, + { + "name": "bintu-stream Europe (EU)", + "url": "rtmp://bintu-stream-eu.nanocosmos.de/live" + }, + { + "name": "bintu-stream USA West (USW)", + "url": "rtmp://bintu-stream-usw.nanocosmos.de/live" + }, + { + "name": "bintu-stream US East (USE)", + "url": "rtmp://bintu-stream-use.nanocosmos.de/live" + }, + { + "name": "bintu-stream Asia South (ASS)", + "url": "rtmp://bintu-stream-ass.nanocosmos.de/live" + }, + { + "name": "bintu-stream Australia (AU)", + "url": "rtmp://bintu-stream-au.nanocosmos.de/live" + }, + { + "name": "bintu-vtrans Europe (EU)", + "url": "rtmp://bintu-vtrans-eu.nanocosmos.de/live" + }, + { + "name": "bintu-vtrans USA West (USW)", + "url": "rtmp://bintu-vtrans-usw.nanocosmos.de/live" + }, + { + "name": "bintu-vtrans US East (USE)", + "url": "rtmp://bintu-vtrans-use.nanocosmos.de/live" + }, + { + "name": "bintu-vtrans Asia South (ASS)", + "url": "rtmp://bintu-vtrans-ass.nanocosmos.de/live" + }, + { + "name": "bintu-vtrans Australia (AU)", + "url": "rtmp://bintu-vtrans-au.nanocosmos.de/live" + } + ], + "recommended": { + "keyint": 2, + "profile": "baseline", + "bframes": 0, + "max video bitrate": 5000, + "max audio bitrate": 192, + "x264opts": "tune=zerolatency b-pyramid=0 scenecut=0" + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Dacast", + "protocol": "RTMP", + "servers": [ + { + "name": "Default", + "url": "https://developer.dacast.com/v3/encoder-setup/" + } + ], + "recommended": { + "keyint": 1, + "profile": "high", + "max video bitrate": 7000, + "max audio bitrate": 128 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Bilibili Live - RTMP | 哔哩哔哩直播 - RTMP", + "more_info_link": "https://link.bilibili.com/p/help/index?id=4#/tools-tutorial", + "stream_key_link": "https://link.bilibili.com/p/center/index#/my-room/start-live", + "alt_names": [ + "Bilibili Live" + ], + "servers": [ + { + "name": "Global - Primary | 全球 - 主要", + "url": "rtmp://live-push.bilivideo.com/live-bvc/" + }, + { + "name": "Non Chinese Mainland - Primary | 非中国大陆地区 - 主要", + "url": "rtmp://bdy.live-push.bilivideo.com/live-bvc/" + }, + { + "name": "Chinese Mainland - Backup | 中国大陆地区 - 备用", + "url": "rtmp://txy2.live-push.bilivideo.com/live-bvc/" + }, + { + "name": "Non Chinese Mainland - Backup | 非中国大陆地区 - 备用", + "url": "rtmp://txy.live-push.bilivideo.com/live-bvc/" + } + ], + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Volume.com", + "stream_key_link": "https://volume.com/b?show_key=1&webrtc=0", + "servers": [ + { + "name": "Default - Recommended", + "url": "rtmp://live.volume.com/live-origin" + }, + { + "name": "US - West", + "url": "rtmp://live-pdx.volume.com/live-origin" + }, + { + "name": "US - East", + "url": "rtmp://live-ash.volume.com/live-origin" + } + ], + "recommended": { + "keyint": 2, + "max video bitrate": 20000, + "max fps": 60 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "BoxCast", + "stream_key_link": "https://dashboard.boxcast.com/#/sources", + "servers": [ + { + "name": "BoxCast", + "url": "rtmp://rtmp.boxcast.com/live" + } + ], + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Disciple Media", + "servers": [ + { + "name": "Default", + "url": "rtmp://rtmp.disciplemedia.com/b-fme" + } + ], + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Jio Games", + "servers": [ + { + "name": "Primary", + "url": "rtmp://livepub1.api.engageapps.jio/live" + }, + { + "name": "Secondary", + "url": "rtmp://livepub2.api.engageapps.jio/live" + } + ], + "recommended": { + "keyint": 2, + "max video bitrate": 32000, + "max audio bitrate": 256 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Kuaishou Live", + "stream_key_link": "https://studio.kuaishou.com/live/list", + "servers": [ + { + "name": "Default", + "url": "rtmp://open-push.voip.yximgs.com/gifshow/" + }, + { + "name": "North America", + "url": "rtmp://tx.push.yximgs.com/live/" + } + ], + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Playeur", + "alt_names": [ + "Utreon" + ], + "servers": [ + { + "name": "Default", + "url": "rtmp://live.playeur.com:5222/app" + } + ], + "recommended": { + "keyint": 2, + "max video bitrate": 5000, + "max audio bitrate": 160 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "PhoneLiveStreaming", + "stream_key_link": "https://app.phonelivestreaming.com/media/rtmp", + "servers": [ + { + "name": "PhoneLiveStreaming", + "url": "rtmp://live.phonelivestreaming.com/live/" + } + ], + "recommended": { + "keyint": 2, + "max video bitrate": 128, + "max audio bitrate": 160 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Sympla", + "servers": [ + { + "name": "Sympla RTMP", + "url": "rtmp://rtmp.sympla.com.br:5222/app" + } + ], + "recommended": { + "keyint": 2, + "max video bitrate": 5000, + "max audio bitrate": 160 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Livepush", + "more_info_link": "https://docs.livepush.io/en/articles/5065323-how-to-stream-live-from-obs-to-livepush", + "servers": [ + { + "name": "Livepush Global (Default)", + "url": "rtmp://dc-global.livepush.io/live" + }, + { + "name": "Chicago, US", + "url": "rtmp://us-central-ch.livepush.io/live" + }, + { + "name": "New York, US", + "url": "rtmp://us-east-ny.livepush.io/live" + }, + { + "name": "Los Angeles, US", + "url": "rtmp://us-west-la.livepush.io/live" + }, + { + "name": "Miami, US", + "url": "rtmp://us-south-mia.livepush.io/live" + }, + { + "name": "Dallas, US", + "url": "rtmp://us-central-dal.livepush.io/live" + }, + { + "name": "Montreal, CA", + "url": "rtmp://ca-central-mon.livepush.io/live" + }, + { + "name": "Toronto, CA", + "url": "rtmp://ca-south-tor.livepush.io/live" + }, + { + "name": "Sydney, AU", + "url": "rtmp://au-east-syd.livepush.io/live" + }, + { + "name": "London, UK", + "url": "rtmp://uk-central-ldn.livepush.io/live" + }, + { + "name": "Milan, Italy", + "url": "rtmp://it-north-mln.livepush.io/live" + }, + { + "name": "Paris, FR", + "url": "rtmp://fr-central-par.livepush.io/live" + }, + { + "name": "Singapore", + "url": "rtmp://as-southeast-sg.livepush.io/live" + }, + { + "name": "Bangalore, IN", + "url": "rtmp://in-south-blr.livepush.io/live" + } + ], + "recommended": { + "keyint": 2, + "max video bitrate": 16000 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Vindral", + "more_info_link": "https://docs.vindral.com/docs/vindral-cdn/", + "stream_key_link": "https://portal.cdn.vindral.com/channels", + "servers": [ + { + "name": "Global", + "url": "rtmps://rtmp.global.cdn.vindral.com/publish" + } + ], + "recommended": { + "keyint": 1, + "profile": "high", + "bframes": 0, + "max video bitrate": 20000, + "max audio bitrate": 192 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Whowatch (ふわっち)", + "more_info_link": "https://whowatch.tv/help/encoder", + "stream_key_link": "https://whowatch.tv/publish", + "servers": [ + { + "name": "default", + "url": "rtmp://live.whowatch.tv/live/" + } + ], + "recommended": { + "keyint": 2, + "max video bitrate": 1800, + "max audio bitrate": 192 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "IRLToolkit", + "stream_key_link": "https://irl.run/settings/ingest/", + "servers": [ + { + "name": "Global (Recommended)", + "url": "rtmps://stream.global.irl.run/ingest" + }, + { + "name": "Los Angeles, US", + "url": "rtmps://stream.lax.irl.run/ingest" + }, + { + "name": "Dallas, US", + "url": "rtmps://stream.dal.irl.run/ingest" + }, + { + "name": "New York, US", + "url": "rtmps://stream.ewr.irl.run/ingest" + }, + { + "name": "Miami, US", + "url": "rtmps://stream.mia.irl.run/ingest" + }, + { + "name": "Amsterdam, NL", + "url": "rtmps://stream.ams.irl.run/ingest" + }, + { + "name": "Frankfurt, DE", + "url": "rtmps://stream.fra.irl.run/ingest" + }, + { + "name": "Singapore", + "url": "rtmps://stream.sin.irl.run/ingest" + }, + { + "name": "Tokyo, JP", + "url": "rtmps://stream.tyo.irl.run/ingest" + }, + { + "name": "Sydney, AU", + "url": "rtmps://stream.syd.irl.run/ingest" + } + ], + "recommended": { + "keyint": 2, + "bframes": 2, + "max video bitrate": 20000, + "max audio bitrate": 256 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Bitmovin", + "more_info_link": "https://developer.bitmovin.com/docs/overview", + "stream_key_link": "https://bitmovin.com/dashboard/streams?streamsTab=LIVE", + "servers": [ + { + "name": "Streams Live", + "url": "rtmp://live-input.bitmovin.com/streams" + } + ], + "recommended": { + "keyint": 2 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Live Streamer Cafe", + "more_info_link": "https://livestreamercafe.com/help.php", + "stream_key_link": "https://livestreamercafe.com/profile.php", + "servers": [ + { + "name": "Live Streamer Cafe Server", + "url": "rtmp://tophicles.com/live" + } + ], + "recommended": { + "keyint": 2, + "max video bitrate": 6000 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Enchant.events", + "more_info_link": "https://docs.enchant.events/knowledge-base-y4pOb", + "servers": [ + { + "name": "Primary RTMPS", + "url": "rtmps://stream.enchant.cloud:443/live" + } + ], + "recommended": { + "keyint": 2, + "profile": "high", + "max video bitrate": 9000, + "max audio bitrate": 192 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Joystick.TV", + "more_info_link": "https://support.joystick.tv/live_streaming/", + "stream_key_link": "https://joystick.tv/stream-settings", + "servers": [ + { + "name": "North America", + "url": "rtmp://live.joystick.tv/live/" + }, + { + "name": "Europe", + "url": "rtmp://eu.live.joystick.tv/live/" + } + ], + "recommended": { + "keyint": 2, + "max video bitrate": 7500, + "max audio bitrate": 192, + "max fps": 60, + "profile": "main", + "bframes": 0, + "x264opts": "tune=zerolatency scenecut=0" + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Livepeer Studio", + "more_info_link": "https://docs.livepeer.org/guides/developing/stream-via-obs", + "stream_key_link": "https://livepeer.studio/dashboard/streams", + "servers": [ + { + "name": "Global (RTMP)", + "url": "rtmp://rtmp.livepeer.com/live" + }, + { + "name": "Global (RTMP Primary)", + "url": "rtmp://rtmp-a.livepeer.com/live" + }, + { + "name": "Global (RTMP Backup)", + "url": "rtmp://rtmp-b.livepeer.com/live" + } + ], + "recommended": { + "keyint": 1, + "profile": "high", + "bframes": 0, + "max video bitrate": 20000, + "max audio bitrate": 512 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "MasterStream.iR | مستراستریم | ری استریم و استریم همزمان", + "common": false, + "more_info_link": "https://masterstream.ir/webpage/page/docs", + "stream_key_link": "https://masterstream.ir/managestreams.php", + "servers": [ + { + "name": "Iran Server 1 - Bandwidth Required", + "url": "rtmp://live-vip1.masterstream.ir/live" + }, + { + "name": "Iran Server 2 - Bandwidth Required", + "url": "rtmp://live-vip2.masterstream.ir/live" + }, + { + "name": "Turkey Server 1", + "url": "rtmp://tr-live1.masterstream.ir/live" + }, + { + "name": "Russia Server 1", + "url": "rtmp://ru-live1.masterstream.ir/live" + } + ], + "protocol": "RTMP", + "supported video codecs": [ + "h264" + ], + "recommended": { + "keyint": 2, + "supported resolutions": [ + "1920x1080", + "1280x720", + "852x480", + "640x360" + ], + "max video bitrate": 6000, + "max audio bitrate": 320, + "x264opts": "scenecut=0" + } + }, + { + "name": "PandaTV | 팬더티비", + "common": false, + "servers": [ + { + "name": "Default", + "url": "rtmp://rtmp.pandalive.co.kr/app" + } + ], + "recommended": { + "keyint": 2, + "supported resolutions": [ + "1920x1080", + "1280x720", + "852x480", + "640x360" + ], + "max video bitrate": 7500, + "max audio bitrate": 320, + "x264opts": "scenecut=0" + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "Vault - by CommanderRoot", + "common": false, + "more_info_link": "https://vault.root-space.eu/", + "stream_key_link": "https://vault.root-space.eu/recordings", + "servers": [ + { + "name": "EU - Central", + "url": "rtmp://ingest-eu-central.vault.root-space.eu/app" + }, + { + "name": "US - West", + "url": "rtmp://ingest-us-west.vault.root-space.eu/app" + } + ], + "protocol": "RTMP", + "supported video codecs": [ + "h264" + ], + "supported audio codecs": [ + "aac" + ], + "recommended": { + "keyint": 2, + "max video bitrate": 7800, + "max audio bitrate": 320, + "x264opts": "scenecut=0" + } + }, + { + "name": "CHZZK", + "common": false, + "stream_key_link": "https://studio.chzzk.naver.com/setting", + "servers": [ + { + "name": "Default", + "url": "rtmp://global-rtmp.lip2.navercorp.com:8080/relay" + } + ], + "supported video codecs": [ + "h264" + ], + "recommended": { + "keyint": 1, + "bframes": 0, + "max fps": 60, + "max video bitrate": 8000, + "max audio bitrate": 192, + "x264opts": "tune=zerolatency scenecut=0", + "supported resolutions": [ + "1920x1080" + ] + } + }, + { + "name": "Streamway", + "common": false, + "more_info_link": "https://support.streamway.in/how-to-connect-obs-studio-to-streamway/", + "stream_key_link": "https://app.streamway.in/broadcasts", + "servers": [ + { + "name": "Primary", + "url": "rtmp://injest.streamway.in/LiveApp" + }, + { + "name": "Backup", + "url": "rtmps://bkp.streamway.in:443/live" + } + ], + "protocol": "RTMP", + "supported video codecs": [ + "h264" + ], + "recommended": { + "keyint": 2 + } + }, + { + "name": "SharePlay.tv", + "common": false, + "stream_key_link": "https://playstudio.shareplay.tv/stream/settings", + "servers": [ + { + "name": "Default (Auto Detect)", + "url": "rtmp://stream.shareplay.tv" + }, + { + "name": "Miami, Florida, USA", + "url": "rtmp://live-us-mia-stream.shareplay.tv" + }, + { + "name": "Chicago, Illinois, USA", + "url": "rtmp://live-us-ord-stream.shareplay.tv" + }, + { + "name": "Washington D.C., USA", + "url": "rtmp://live-us-iad-stream.shareplay.tv" + }, + { + "name": "Los Angeles, California, USA", + "url": "rtmp://live-us-lax-stream.shareplay.tv" + }, + { + "name": "Milan, Italy", + "url": "rtmp://live-it-mil-stream.shareplay.tv" + }, + { + "name": "Toronto, Canada", + "url": "rtmp://live-ca-yyz-stream.shareplay.tv" + }, + { + "name": "London, UK", + "url": "rtmp://live-uk-lhr-stream.shareplay.tv" + }, + { + "name": "Atlanta, Georgia, USA", + "url": "rtmp://live-us-atl-stream.shareplay.tv" + }, + { + "name": "Dallas, Texas, USA", + "url": "rtmp://live-us-dfw-stream.shareplay.tv" + } + ], + "supported video codecs": [ + "h264" + ], + "recommended": { + "keyint": 2, + "max video bitrate": 12000, + "max audio bitrate": 320 + } + }, + { + "name": "sheeta", + "common": false, + "more_info_link": "https://partner-support.sheeta.com/hc/ja/articles/4404573942425-%E7%94%9F%E6%94%BE%E9%80%81%E3%81%AE%E9%85%8D%E4%BF%A1%E6%96%B9%E6%B3%95", + "servers": [ + { + "name": "Default", + "url": "rtmp://lsm.sheeta.com:1935/lsm" + } + ], + "protocol": "RTMP", + "supported video codecs": [ + "h264" + ], + "supported audio codecs": [ + "aac" + ], + "recommended": { + "keyint": 1, + "profile": "main", + "supported resolutions": [ + "1920x1080", + "1280x720", + "854x480", + "640x480" + ], + "bitrate matrix": [ + { + "res": "1920x1080", + "fps": 30, + "max bitrate": 6000 + }, + { + "res": "1280x720", + "fps": 30, + "max bitrate": 4700 + }, + { + "res": "854x480", + "fps": 30, + "max bitrate": 3400 + }, + { + "res": "640x480", + "fps": 30, + "max bitrate": 3400 + }, + { + "res": "1920x1080", + "fps": 60, + "max bitrate": 9000 + }, + { + "res": "1280x720", + "fps": 60, + "max bitrate": 7000 + }, + { + "res": "854x480", + "fps": 60, + "max bitrate": 5000 + }, + { + "res": "640x480", + "fps": 60, + "max bitrate": 5000 + } + ], + "max fps": 60, + "max video bitrate": 9000, + "max audio bitrate": 512, + "x264opts": "scenecut=0", + "output": "rtmp_output" + } + }, + { + "name": "Amazon IVS", + "supported video codecs": [ + "h264" + ], + "servers": [ + { + "name": "Asia: China, Hong Kong (6) (RTMPS)", + "url": "rtmps://hkg06.contribute.live-video.net/app" + }, + { + "name": "Asia: India, Bangalore (1) (RTMPS)", + "url": "rtmps://blr01.contribute.live-video.net/app" + }, + { + "name": "Asia: India, Chennai (RTMPS)", + "url": "rtmps://maa01.contribute.live-video.net/app" + }, + { + "name": "Asia: India, Hyderabad (1) (RTMPS)", + "url": "rtmps://hyd01.contribute.live-video.net/app" + }, + { + "name": "Asia: India, Mumbai (RTMPS)", + "url": "rtmps://bom01.contribute.live-video.net/app" + }, + { + "name": "Asia: India, New Delhi (RTMPS)", + "url": "rtmps://del01.contribute.live-video.net/app" + }, + { + "name": "Asia: Indonesia, Cikarang Barat (1) (RTMPS)", + "url": "rtmps://jkt01.contribute.live-video.net/app" + }, + { + "name": "Asia: Indonesia, Jakarta (2) (RTMPS)", + "url": "rtmps://jkt02.contribute.live-video.net/app" + }, + { + "name": "Asia: Japan, Osaka (1) (RTMPS)", + "url": "rtmps://osa01.contribute.live-video.net/app" + }, + { + "name": "Asia: Japan, Tokyo (3) (RTMPS)", + "url": "rtmps://tyo03.contribute.live-video.net/app" + }, + { + "name": "Asia: Japan, Tokyo (5) (RTMPS)", + "url": "rtmps://tyo05.contribute.live-video.net/app" + }, + { + "name": "Asia: Manila, Philippines (1) (RTMPS)", + "url": "rtmps://mnl01.contribute.live-video.net/app" + }, + { + "name": "Asia: Singapore (1) (RTMPS)", + "url": "rtmps://sin01.contribute.live-video.net/app" + }, + { + "name": "Asia: Singapore (4) (RTMPS)", + "url": "rtmps://sin04.contribute.live-video.net/app" + }, + { + "name": "Asia: South Korea, Seoul (3) (RTMPS)", + "url": "rtmps://sel03.contribute.live-video.net/app" + }, + { + "name": "Asia: South Korea, Seoul (4) (RTMPS)", + "url": "rtmps://sel04.contribute.live-video.net/app" + }, + { + "name": "Asia: Taiwan, Taipei (1) (RTMPS)", + "url": "rtmps://tpe01.contribute.live-video.net/app" + }, + { + "name": "Asia: Taiwan, Taipei (3) (RTMPS)", + "url": "rtmps://tpe03.contribute.live-video.net/app" + }, + { + "name": "Asia: Thailand, Bangkok (2) (RTMPS)", + "url": "rtmps://bkk02.contribute.live-video.net/app" + }, + { + "name": "Europe: Austria, Vienna (2) (RTMPS)", + "url": "rtmps://vie02.contribute.live-video.net/app" + }, + { + "name": "Europe: Czech Republic, Prague (RTMPS)", + "url": "rtmps://prg03.contribute.live-video.net/app" + }, + { + "name": "Europe: Denmark, Copenhagen (RTMPS)", + "url": "rtmps://cph.contribute.live-video.net/app" + }, + { + "name": "Europe: Finland, Helsinki (3) (RTMPS)", + "url": "rtmps://hel03.contribute.live-video.net/app" + }, + { + "name": "Europe: France, Marseille (RTMPS)", + "url": "rtmps://mrs.contribute.live-video.net/app" + }, + { + "name": "Europe: France, Marseille (2) (RTMPS)", + "url": "rtmps://mrs02.contribute.live-video.net/app" + }, + { + "name": "Europe: France, Paris (10) (RTMPS)", + "url": "rtmps://cdg10.contribute.live-video.net/app" + }, + { + "name": "Europe: France, Paris (2) (RTMPS)", + "url": "rtmps://cdg02.contribute.live-video.net/app" + }, + { + "name": "Europe: Germany, Berlin (RTMPS)", + "url": "rtmps://ber.contribute.live-video.net/app" + }, + { + "name": "Europe: Germany, Dusseldorf (1) (RTMPS)", + "url": "rtmps://dus01.contribute.live-video.net/app" + }, + { + "name": "Europe: Germany, Frankfurt (2) (RTMPS)", + "url": "rtmps://fra02.contribute.live-video.net/app" + }, + { + "name": "Europe: Germany, Frankfurt (5) (RTMPS)", + "url": "rtmps://fra05.contribute.live-video.net/app" + }, + { + "name": "Europe: Germany, Frankfurt (6) (RTMPS)", + "url": "rtmps://fra06.contribute.live-video.net/app" + }, + { + "name": "Europe: Germany, Munich (1) (RTMPS)", + "url": "rtmps://muc01.contribute.live-video.net/app" + }, + { + "name": "Europe: Italy, Milan (2) (RTMPS)", + "url": "rtmps://mil02.contribute.live-video.net/app" + }, + { + "name": "Europe: Netherlands, Amsterdam (2) (RTMPS)", + "url": "rtmps://ams02.contribute.live-video.net/app" + }, + { + "name": "Europe: Netherlands, Amsterdam (3) (RTMPS)", + "url": "rtmps://ams03.contribute.live-video.net/app" + }, + { + "name": "Europe: Norway, Oslo (RTMPS)", + "url": "rtmps://osl.contribute.live-video.net/app" + }, + { + "name": "Europe: Poland, Warsaw (2) (RTMPS)", + "url": "rtmps://waw02.contribute.live-video.net/app" + }, + { + "name": "Europe: Spain, Madrid (1) (RTMPS)", + "url": "rtmps://mad01.contribute.live-video.net/app" + }, + { + "name": "Europe: Spain, Madrid (2) (RTMPS)", + "url": "rtmps://mad02.contribute.live-video.net/app" + }, + { + "name": "Europe: Sweden, Stockholm (3) (RTMPS)", + "url": "rtmps://arn03.contribute.live-video.net/app" + }, + { + "name": "Europe: Sweden, Stockholm (4) (RTMPS)", + "url": "rtmps://arn04.contribute.live-video.net/app" + }, + { + "name": "Europe: UK, London (3) (RTMPS)", + "url": "rtmps://lhr03.contribute.live-video.net/app" + }, + { + "name": "Europe: UK, London (4) (RTMPS)", + "url": "rtmps://lhr04.contribute.live-video.net/app" + }, + { + "name": "Europe: UK, London (8) (RTMPS)", + "url": "rtmps://lhr08.contribute.live-video.net/app" + }, + { + "name": "NA: Canada, Quebec (RTMPS)", + "url": "rtmps://ymq03.contribute.live-video.net/app" + }, + { + "name": "NA: Canada, Toronto (RTMPS)", + "url": "rtmps://yto.contribute.live-video.net/app" + }, + { + "name": "NA: Mexico, Queretaro (3) (RTMPS)", + "url": "rtmps://qro03.contribute.live-video.net/app" + }, + { + "name": "NA: Mexico, Queretaro (4) (RTMPS)", + "url": "rtmps://qro04.contribute.live-video.net/app" + }, + { + "name": "Oceania: Australia, Sydney (2) (RTMPS)", + "url": "rtmps://syd02.contribute.live-video.net/app" + }, + { + "name": "Oceania: Australia, Sydney (3) (RTMPS)", + "url": "rtmps://syd03.contribute.live-video.net/app" + }, + { + "name": "South America: Brazil, Fortaleza (1) (RTMPS)", + "url": "rtmps://for01.contribute.live-video.net/app" + }, + { + "name": "South America: Brazil, Rio de Janeiro (3) (RTMPS)", + "url": "rtmps://rio03.contribute.live-video.net/app" + }, + { + "name": "South America: Brazil, Rio de Janeiro (4) (RTMPS)", + "url": "rtmps://rio04.contribute.live-video.net/app" + }, + { + "name": "South America: Brazil, Sao Paulo (RTMPS)", + "url": "rtmps://sao03.contribute.live-video.net/app" + }, + { + "name": "South America: Brazil, Sao Paulo (5) (RTMPS)", + "url": "rtmps://sao05.contribute.live-video.net/app" + }, + { + "name": "South America: Buenos Aires, Argentina (1) (RTMPS)", + "url": "rtmps://bue01.contribute.live-video.net/app" + }, + { + "name": "South America: Colombia, Bogota (1) (RTMPS)", + "url": "rtmps://bog01.contribute.live-video.net/app" + }, + { + "name": "US Central: Dallas, TX (RTMPS)", + "url": "rtmps://dfw.contribute.live-video.net/app" + }, + { + "name": "US Central: Dallas, TX (2) (RTMPS)", + "url": "rtmps://dfw02.contribute.live-video.net/app" + }, + { + "name": "US Central: Denver, CO (52) (RTMPS)", + "url": "rtmps://den52.contribute.live-video.net/app" + }, + { + "name": "US Central: Garland, TX (56) (RTMPS)", + "url": "rtmps://dfw56.contribute.live-video.net/app" + }, + { + "name": "US Central: Houston, TX (50) (RTMPS)", + "url": "rtmps://iah50.contribute.live-video.net/app" + }, + { + "name": "US East: Ashburn, VA (5) (RTMPS)", + "url": "rtmps://iad05.contribute.live-video.net/app" + }, + { + "name": "US East: Atlanta, GA (RTMPS)", + "url": "rtmps://atl.contribute.live-video.net/app" + }, + { + "name": "US East: Chicago, IL (3) (RTMPS)", + "url": "rtmps://ord03.contribute.live-video.net/app" + }, + { + "name": "US East: Chicago, IL (56) (RTMPS)", + "url": "rtmps://ord56.contribute.live-video.net/app" + }, + { + "name": "US East: McAllen, TX (1) (RTMPS)", + "url": "rtmps://mfe01.contribute.live-video.net/app" + }, + { + "name": "US East: Miami, FL (5) (RTMPS)", + "url": "rtmps://mia05.contribute.live-video.net/app" + }, + { + "name": "US East: New York, NY (RTMPS)", + "url": "rtmps://jfk.contribute.live-video.net/app" + }, + { + "name": "US East: New York, NY (50) (RTMPS)", + "url": "rtmps://jfk50.contribute.live-video.net/app" + }, + { + "name": "US West: Los Angeles, CA (RTMPS)", + "url": "rtmps://lax.contribute.live-video.net/app" + }, + { + "name": "US West: Salt Lake City, UT (RTMPS)", + "url": "rtmps://slc.contribute.live-video.net/app" + }, + { + "name": "US West: San Francisco, CA (RTMPS)", + "url": "rtmps://sfo.contribute.live-video.net/app" + }, + { + "name": "US West: San Jose, California (6) (RTMPS)", + "url": "rtmps://sjc06.contribute.live-video.net/app" + }, + { + "name": "US West: Seattle, WA (RTMPS)", + "url": "rtmps://sea.contribute.live-video.net/app" + }, + { + "name": "US West: Seattle, WA (2) (RTMPS)", + "url": "rtmps://sea02.contribute.live-video.net/app" + }, + { + "name": "Asia: China, Hong Kong (6) (RTMP)", + "url": "rtmp://hkg06.contribute.live-video.net/app" + }, + { + "name": "Asia: India, Bangalore (1) (RTMP)", + "url": "rtmp://blr01.contribute.live-video.net/app" + }, + { + "name": "Asia: India, Chennai (RTMP)", + "url": "rtmp://maa01.contribute.live-video.net/app" + }, + { + "name": "Asia: India, Hyderabad (1) (RTMP)", + "url": "rtmp://hyd01.contribute.live-video.net/app" + }, + { + "name": "Asia: India, Mumbai (RTMP)", + "url": "rtmp://bom01.contribute.live-video.net/app" + }, + { + "name": "Asia: India, New Delhi (RTMP)", + "url": "rtmp://del01.contribute.live-video.net/app" + }, + { + "name": "Asia: Indonesia, Cikarang Barat (1) (RTMP)", + "url": "rtmp://jkt01.contribute.live-video.net/app" + }, + { + "name": "Asia: Indonesia, Jakarta (2) (RTMP)", + "url": "rtmp://jkt02.contribute.live-video.net/app" + }, + { + "name": "Asia: Japan, Osaka (1) (RTMP)", + "url": "rtmp://osa01.contribute.live-video.net/app" + }, + { + "name": "Asia: Japan, Tokyo (3) (RTMP)", + "url": "rtmp://tyo03.contribute.live-video.net/app" + }, + { + "name": "Asia: Japan, Tokyo (5) (RTMP)", + "url": "rtmp://tyo05.contribute.live-video.net/app" + }, + { + "name": "Asia: Manila, Philippines (1) (RTMP)", + "url": "rtmp://mnl01.contribute.live-video.net/app" + }, + { + "name": "Asia: Singapore (1) (RTMP)", + "url": "rtmp://sin01.contribute.live-video.net/app" + }, + { + "name": "Asia: Singapore (4) (RTMP)", + "url": "rtmp://sin04.contribute.live-video.net/app" + }, + { + "name": "Asia: South Korea, Seoul (3) (RTMP)", + "url": "rtmp://sel03.contribute.live-video.net/app" + }, + { + "name": "Asia: South Korea, Seoul (4) (RTMP)", + "url": "rtmp://sel04.contribute.live-video.net/app" + }, + { + "name": "Asia: Taiwan, Taipei (1) (RTMP)", + "url": "rtmp://tpe01.contribute.live-video.net/app" + }, + { + "name": "Asia: Taiwan, Taipei (3) (RTMP)", + "url": "rtmp://tpe03.contribute.live-video.net/app" + }, + { + "name": "Asia: Thailand, Bangkok (2) (RTMP)", + "url": "rtmp://bkk02.contribute.live-video.net/app" + }, + { + "name": "Europe: Austria, Vienna (2) (RTMP)", + "url": "rtmp://vie02.contribute.live-video.net/app" + }, + { + "name": "Europe: Czech Republic, Prague (RTMP)", + "url": "rtmp://prg03.contribute.live-video.net/app" + }, + { + "name": "Europe: Denmark, Copenhagen (RTMP)", + "url": "rtmp://cph.contribute.live-video.net/app" + }, + { + "name": "Europe: Finland, Helsinki (3) (RTMP)", + "url": "rtmp://hel03.contribute.live-video.net/app" + }, + { + "name": "Europe: France, Marseille (RTMP)", + "url": "rtmp://mrs.contribute.live-video.net/app" + }, + { + "name": "Europe: France, Marseille (2) (RTMP)", + "url": "rtmp://mrs02.contribute.live-video.net/app" + }, + { + "name": "Europe: France, Paris (10) (RTMP)", + "url": "rtmp://cdg10.contribute.live-video.net/app" + }, + { + "name": "Europe: France, Paris (2) (RTMP)", + "url": "rtmp://cdg02.contribute.live-video.net/app" + }, + { + "name": "Europe: Germany, Berlin (RTMP)", + "url": "rtmp://ber.contribute.live-video.net/app" + }, + { + "name": "Europe: Germany, Dusseldorf (1) (RTMP)", + "url": "rtmp://dus01.contribute.live-video.net/app" + }, + { + "name": "Europe: Germany, Frankfurt (2) (RTMP)", + "url": "rtmp://fra02.contribute.live-video.net/app" + }, + { + "name": "Europe: Germany, Frankfurt (5) (RTMP)", + "url": "rtmp://fra05.contribute.live-video.net/app" + }, + { + "name": "Europe: Germany, Frankfurt (6) (RTMP)", + "url": "rtmp://fra06.contribute.live-video.net/app" + }, + { + "name": "Europe: Germany, Munich (1) (RTMP)", + "url": "rtmp://muc01.contribute.live-video.net/app" + }, + { + "name": "Europe: Italy, Milan (2) (RTMP)", + "url": "rtmp://mil02.contribute.live-video.net/app" + }, + { + "name": "Europe: Netherlands, Amsterdam (2) (RTMP)", + "url": "rtmp://ams02.contribute.live-video.net/app" + }, + { + "name": "Europe: Netherlands, Amsterdam (3) (RTMP)", + "url": "rtmp://ams03.contribute.live-video.net/app" + }, + { + "name": "Europe: Norway, Oslo (RTMP)", + "url": "rtmp://osl.contribute.live-video.net/app" + }, + { + "name": "Europe: Poland, Warsaw (2) (RTMP)", + "url": "rtmp://waw02.contribute.live-video.net/app" + }, + { + "name": "Europe: Spain, Madrid (1) (RTMP)", + "url": "rtmp://mad01.contribute.live-video.net/app" + }, + { + "name": "Europe: Spain, Madrid (2) (RTMP)", + "url": "rtmp://mad02.contribute.live-video.net/app" + }, + { + "name": "Europe: Sweden, Stockholm (3) (RTMP)", + "url": "rtmp://arn03.contribute.live-video.net/app" + }, + { + "name": "Europe: Sweden, Stockholm (4) (RTMP)", + "url": "rtmp://arn04.contribute.live-video.net/app" + }, + { + "name": "Europe: UK, London (3) (RTMP)", + "url": "rtmp://lhr03.contribute.live-video.net/app" + }, + { + "name": "Europe: UK, London (4) (RTMP)", + "url": "rtmp://lhr04.contribute.live-video.net/app" + }, + { + "name": "Europe: UK, London (8) (RTMP)", + "url": "rtmp://lhr08.contribute.live-video.net/app" + }, + { + "name": "NA: Canada, Quebec (RTMP)", + "url": "rtmp://ymq03.contribute.live-video.net/app" + }, + { + "name": "NA: Canada, Toronto (RTMP)", + "url": "rtmp://yto.contribute.live-video.net/app" + }, + { + "name": "NA: Mexico, Queretaro (3) (RTMP)", + "url": "rtmp://qro03.contribute.live-video.net/app" + }, + { + "name": "NA: Mexico, Queretaro (4) (RTMP)", + "url": "rtmp://qro04.contribute.live-video.net/app" + }, + { + "name": "Oceania: Australia, Sydney (2) (RTMP)", + "url": "rtmp://syd02.contribute.live-video.net/app" + }, + { + "name": "Oceania: Australia, Sydney (3) (RTMP)", + "url": "rtmp://syd03.contribute.live-video.net/app" + }, + { + "name": "South America: Brazil, Fortaleza (1) (RTMP)", + "url": "rtmp://for01.contribute.live-video.net/app" + }, + { + "name": "South America: Brazil, Rio de Janeiro (3) (RTMP)", + "url": "rtmp://rio03.contribute.live-video.net/app" + }, + { + "name": "South America: Brazil, Rio de Janeiro (4) (RTMP)", + "url": "rtmp://rio04.contribute.live-video.net/app" + }, + { + "name": "South America: Brazil, Sao Paulo (RTMP)", + "url": "rtmp://sao03.contribute.live-video.net/app" + }, + { + "name": "South America: Brazil, Sao Paulo (5) (RTMP)", + "url": "rtmp://sao05.contribute.live-video.net/app" + }, + { + "name": "South America: Buenos Aires, Argentina (1) (RTMP)", + "url": "rtmp://bue01.contribute.live-video.net/app" + }, + { + "name": "South America: Colombia, Bogota (1) (RTMP)", + "url": "rtmp://bog01.contribute.live-video.net/app" + }, + { + "name": "US Central: Dallas, TX (RTMP)", + "url": "rtmp://dfw.contribute.live-video.net/app" + }, + { + "name": "US Central: Dallas, TX (2) (RTMP)", + "url": "rtmp://dfw02.contribute.live-video.net/app" + }, + { + "name": "US Central: Denver, CO (52) (RTMP)", + "url": "rtmp://den52.contribute.live-video.net/app" + }, + { + "name": "US Central: Garland, TX (56) (RTMP)", + "url": "rtmp://dfw56.contribute.live-video.net/app" + }, + { + "name": "US Central: Houston, TX (50) (RTMP)", + "url": "rtmp://iah50.contribute.live-video.net/app" + }, + { + "name": "US East: Ashburn, VA (5) (RTMP)", + "url": "rtmp://iad05.contribute.live-video.net/app" + }, + { + "name": "US East: Atlanta, GA (RTMP)", + "url": "rtmp://atl.contribute.live-video.net/app" + }, + { + "name": "US East: Chicago, IL (3) (RTMP)", + "url": "rtmp://ord03.contribute.live-video.net/app" + }, + { + "name": "US East: Chicago, IL (56) (RTMP)", + "url": "rtmp://ord56.contribute.live-video.net/app" + }, + { + "name": "US East: McAllen, TX (1) (RTMP)", + "url": "rtmp://mfe01.contribute.live-video.net/app" + }, + { + "name": "US East: Miami, FL (5) (RTMP)", + "url": "rtmp://mia05.contribute.live-video.net/app" + }, + { + "name": "US East: New York, NY (RTMP)", + "url": "rtmp://jfk.contribute.live-video.net/app" + }, + { + "name": "US East: New York, NY (50) (RTMP)", + "url": "rtmp://jfk50.contribute.live-video.net/app" + }, + { + "name": "US West: Los Angeles, CA (RTMP)", + "url": "rtmp://lax.contribute.live-video.net/app" + }, + { + "name": "US West: Salt Lake City, UT (RTMP)", + "url": "rtmp://slc.contribute.live-video.net/app" + }, + { + "name": "US West: San Francisco, CA (RTMP)", + "url": "rtmp://sfo.contribute.live-video.net/app" + }, + { + "name": "US West: San Jose, California (6) (RTMP)", + "url": "rtmp://sjc06.contribute.live-video.net/app" + }, + { + "name": "US West: Seattle, WA (RTMP)", + "url": "rtmp://sea.contribute.live-video.net/app" + }, + { + "name": "US West: Seattle, WA (2) (RTMP)", + "url": "rtmp://sea02.contribute.live-video.net/app" + } + ], + "multitrack_video_configuration_url": "https://ingest.contribute.live-video.net/api/v3/GetClientConfiguration", + "recommended": { + "keyint": 2, + "x264opts": "scenecut=0" + } + }, + { + "name": "Dolby Millicast", + "common": false, + "more_info_link": "https://docs.dolby.io/streaming-apis/docs/using-obs", + "stream_key_link": "https://streaming.dolby.io", + "servers": [ + { + "name": "Global (RTMPS)", + "url": "rtmps://rtmp-auto.millicast.com:443/v2/pub" + }, + { + "name": "Global (RTMP)", + "url": "rtmp://rtmp-auto.millicast.com:1935/v2/pub" + }, + { + "name": "Bangalore, India (RTMPS)", + "url": "rtmps://rtmp-blr-1.millicast.com:443/v2/pub" + }, + { + "name": "Bangalore, India (RTMP)", + "url": "rtmp://rtmp-blr-1.millicast.com:1935/v2/pub" + }, + { + "name": "Frankfurt, Germany (RTMPS)", + "url": "rtmps://rtmp-fra-1.millicast.com:443/v2/pub" + }, + { + "name": "Frankfurt, Germany (RTMP)", + "url": "rtmp://rtmp-fra-1.millicast.com:1935/v2/pub" + }, + { + "name": "Ashburn, Virginia, USA (RTMPS)", + "url": "rtmps://rtmp-iad-1.millicast.com:443/v2/pub" + }, + { + "name": "Ashburn, Virginia, USA (RTMP)", + "url": "rtmp://rtmp-iad-1.millicast.com:1935/v2/pub" + }, + { + "name": "London, England (RTMPS)", + "url": "rtmps://rtmp-lon-1.millicast.com:443/v2/pub" + }, + { + "name": "London, England (RTMP)", + "url": "rtmp://rtmp-lon-1.millicast.com:1935/v2/pub" + }, + { + "name": "Phoenix, AZ, USA (RTMPS)", + "url": "rtmps://rtmp-phx-1.millicast.com:443/v2/pub" + }, + { + "name": "Phoenix, AZ, USA (RTMP)", + "url": "rtmp://rtmp-phx-1.millicast.com:1935/v2/pub" + }, + { + "name": "Sao Paulo, Brazil (RTMPS)", + "url": "rtmps://rtmp-sao-1.millicast.com:443/v2/pub" + }, + { + "name": "Sao Paulo, Brazil (RTMP)", + "url": "rtmp://rtmp-sao-1.millicast.com:1935/v2/pub" + }, + { + "name": "Singapore (RTMPS)", + "url": "rtmps://rtmp-sgp-1.millicast.com:443/v2/pub" + }, + { + "name": "Singapore (RTMP)", + "url": "rtmp://rtmp-sgp-1.millicast.com:1935/v2/pub" + }, + { + "name": "Sydney, Australia (RTMPS)", + "url": "rtmps://rtmp-syd-1.millicast.com:443/v2/pub" + }, + { + "name": "Sydney, Australia (RTMP)", + "url": "rtmp://rtmp-syd-1.millicast.com:1935/v2/pub" + } + ], + "supported video codecs": [ + "h264", + "hevc", + "av1" + ], + "recommended": { + "keyint": 1, + "bframes": 0 + } + }, + { + "name": "NFHS Network", + "more_info_link": "https://support.nfhsnetwork.com/hc/en-us", + "stream_key_link": "https://console.nfhsnetwork.com/nfhs-events/", + "servers": [ + { + "name": "Manual Broadcasts", + "url": "rtmp://video.nfhsnetwork.com/manual" + } + ], + "recommended": { + "supported resolutions": [ + "1920x1080", + "1280x720", + "640x360" + ], + "max fps": 60 + }, + "supported video codecs": [ + "h264" + ] + }, + { + "name": "VRCDN - Live", + "more_info_link": "https://vrcdn.live", + "servers": [ + { + "name": "Automatic", + "url": "rtmp://ingest.vrcdn.live/live" + } + ], + "supported video codecs": ["h264"], + "recommended": { + "keyint": 1, + "max video bitrate": 6000 + } + } + ] +} diff --git a/dotfiles/.config/obs-studio/plugin_config/rtmp-services/twitch_ingests.json b/dotfiles/.config/obs-studio/plugin_config/rtmp-services/twitch_ingests.json new file mode 100644 index 0000000..2cb31e4 --- /dev/null +++ b/dotfiles/.config/obs-studio/plugin_config/rtmp-services/twitch_ingests.json @@ -0,0 +1,625 @@ +{ + "ingests": [ + { + "_id": 0, + "availability": 1.0, + "default": false, + "name": "Asia: Japan, Narita (10)", + "url_template": "rtmp://apn10.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://apn10.contribute.live-video.net/app/{stream_key}", + "priority": 0 + }, + { + "_id": 1, + "availability": 1.0, + "default": false, + "name": "Asia: Japan, Tokyo (3)", + "url_template": "rtmp://tyo03.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://tyo03.contribute.live-video.net/app/{stream_key}", + "priority": 1 + }, + { + "_id": 2, + "availability": 1.0, + "default": false, + "name": "Asia: Japan, Tokyo (5)", + "url_template": "rtmp://tyo05.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://tyo05.contribute.live-video.net/app/{stream_key}", + "priority": 2 + }, + { + "_id": 3, + "availability": 1.0, + "default": false, + "name": "Asia: Japan, Osaka (1)", + "url_template": "rtmp://osa01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://osa01.contribute.live-video.net/app/{stream_key}", + "priority": 3 + }, + { + "_id": 4, + "availability": 1.0, + "default": false, + "name": "Asia: South Korea, Seoul (3)", + "url_template": "rtmp://sel03.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://sel03.contribute.live-video.net/app/{stream_key}", + "priority": 4 + }, + { + "_id": 5, + "availability": 1.0, + "default": false, + "name": "Asia: South Korea, Seoul (4)", + "url_template": "rtmp://sel04.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://sel04.contribute.live-video.net/app/{stream_key}", + "priority": 5 + }, + { + "_id": 6, + "availability": 1.0, + "default": false, + "name": "Asia: Taiwan, Taipei (3)", + "url_template": "rtmp://tpe03.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://tpe03.contribute.live-video.net/app/{stream_key}", + "priority": 6 + }, + { + "_id": 7, + "availability": 1.0, + "default": false, + "name": "Asia: Taiwan, Taipei (1)", + "url_template": "rtmp://tpe01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://tpe01.contribute.live-video.net/app/{stream_key}", + "priority": 7 + }, + { + "_id": 8, + "availability": 1.0, + "default": false, + "name": "Asia: China, Hong Kong (6)", + "url_template": "rtmp://hkg06.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://hkg06.contribute.live-video.net/app/{stream_key}", + "priority": 8 + }, + { + "_id": 9, + "availability": 1.0, + "default": false, + "name": "Asia: Manila, Philippines (1)", + "url_template": "rtmp://mnl01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://mnl01.contribute.live-video.net/app/{stream_key}", + "priority": 9 + }, + { + "_id": 10, + "availability": 1.0, + "default": false, + "name": "Asia: Thailand, Bangkok (2)", + "url_template": "rtmp://bkk02.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://bkk02.contribute.live-video.net/app/{stream_key}", + "priority": 10 + }, + { + "_id": 11, + "availability": 1.0, + "default": false, + "name": "Asia: Singapore (1)", + "url_template": "rtmp://sin01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://sin01.contribute.live-video.net/app/{stream_key}", + "priority": 11 + }, + { + "_id": 12, + "availability": 1.0, + "default": false, + "name": "Asia: Indonesia, Jakarta (2)", + "url_template": "rtmp://jkt02.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://jkt02.contribute.live-video.net/app/{stream_key}", + "priority": 12 + }, + { + "_id": 13, + "availability": 1.0, + "default": false, + "name": "Asia: India, Hyderabad (1)", + "url_template": "rtmp://hyd01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://hyd01.contribute.live-video.net/app/{stream_key}", + "priority": 13 + }, + { + "_id": 14, + "availability": 1.0, + "default": false, + "name": "Asia: India, Chennai (1)", + "url_template": "rtmp://maa01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://maa01.contribute.live-video.net/app/{stream_key}", + "priority": 14 + }, + { + "_id": 15, + "availability": 1.0, + "default": false, + "name": "Asia: India, New Delhi (1)", + "url_template": "rtmp://del01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://del01.contribute.live-video.net/app/{stream_key}", + "priority": 15 + }, + { + "_id": 16, + "availability": 1.0, + "default": false, + "name": "Asia: India, Bangalore (1)", + "url_template": "rtmp://blr01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://blr01.contribute.live-video.net/app/{stream_key}", + "priority": 16 + }, + { + "_id": 17, + "availability": 1.0, + "default": false, + "name": "Asia: India, Mumbai", + "url_template": "rtmp://bom01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://bom01.contribute.live-video.net/app/{stream_key}", + "priority": 17 + }, + { + "_id": 18, + "availability": 1.0, + "default": false, + "name": "US West: Seattle, WA (2)", + "url_template": "rtmp://sea02.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://sea02.contribute.live-video.net/app/{stream_key}", + "priority": 18 + }, + { + "_id": 19, + "availability": 1.0, + "default": false, + "name": "Europe: Finland, Helsinki (3)", + "url_template": "rtmp://hel03.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://hel03.contribute.live-video.net/app/{stream_key}", + "priority": 19 + }, + { + "_id": 20, + "availability": 1.0, + "default": false, + "name": "Oceania: Australia, Sydney (2)", + "url_template": "rtmp://syd02.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://syd02.contribute.live-video.net/app/{stream_key}", + "priority": 20 + }, + { + "_id": 21, + "availability": 1.0, + "default": false, + "name": "Oceania: Australia, Sydney (3)", + "url_template": "rtmp://syd03.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://syd03.contribute.live-video.net/app/{stream_key}", + "priority": 21 + }, + { + "_id": 22, + "availability": 1.0, + "default": false, + "name": "Europe: Sweden, Stockholm (3)", + "url_template": "rtmp://arn03.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://arn03.contribute.live-video.net/app/{stream_key}", + "priority": 22 + }, + { + "_id": 23, + "availability": 1.0, + "default": false, + "name": "Europe: Sweden, Stockholm (4)", + "url_template": "rtmp://arn04.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://arn04.contribute.live-video.net/app/{stream_key}", + "priority": 23 + }, + { + "_id": 24, + "availability": 1.0, + "default": false, + "name": "US West: San Jose, California (6)", + "url_template": "rtmp://sjc06.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://sjc06.contribute.live-video.net/app/{stream_key}", + "priority": 24 + }, + { + "_id": 25, + "availability": 1.0, + "default": false, + "name": "Europe: Norway, Oslo", + "url_template": "rtmp://osl.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://osl.contribute.live-video.net/app/{stream_key}", + "priority": 25 + }, + { + "_id": 26, + "availability": 1.0, + "default": false, + "name": "Europe: Poland, Warsaw (2)", + "url_template": "rtmp://waw02.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://waw02.contribute.live-video.net/app/{stream_key}", + "priority": 26 + }, + { + "_id": 27, + "availability": 1.0, + "default": false, + "name": "Europe: Denmark, Copenhagen", + "url_template": "rtmp://cph.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://cph.contribute.live-video.net/app/{stream_key}", + "priority": 27 + }, + { + "_id": 28, + "availability": 1.0, + "default": false, + "name": "US West: Los Angeles, CA", + "url_template": "rtmp://lax.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://lax.contribute.live-video.net/app/{stream_key}", + "priority": 28 + }, + { + "_id": 29, + "availability": 1.0, + "default": false, + "name": "Europe: Czech Republic, Prague", + "url_template": "rtmp://prg03.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://prg03.contribute.live-video.net/app/{stream_key}", + "priority": 29 + }, + { + "_id": 30, + "availability": 1.0, + "default": false, + "name": "Europe: Austria, Vienna (2)", + "url_template": "rtmp://vie02.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://vie02.contribute.live-video.net/app/{stream_key}", + "priority": 30 + }, + { + "_id": 31, + "availability": 1.0, + "default": false, + "name": "Europe: Netherlands, Amsterdam (3)", + "url_template": "rtmp://ams03.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://ams03.contribute.live-video.net/app/{stream_key}", + "priority": 31 + }, + { + "_id": 32, + "availability": 1.0, + "default": false, + "name": "Europe: Netherlands, Amsterdam (2)", + "url_template": "rtmp://ams02.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://ams02.contribute.live-video.net/app/{stream_key}", + "priority": 32 + }, + { + "_id": 33, + "availability": 1.0, + "default": false, + "name": "Europe: Germany, Dusseldorf (1)", + "url_template": "rtmp://dus01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://dus01.contribute.live-video.net/app/{stream_key}", + "priority": 33 + }, + { + "_id": 34, + "availability": 1.0, + "default": false, + "name": "US Central: Denver, CO (52)", + "url_template": "rtmp://den52.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://den52.contribute.live-video.net/app/{stream_key}", + "priority": 34 + }, + { + "_id": 35, + "availability": 1.0, + "default": false, + "name": "Europe: Germany, Munich (1)", + "url_template": "rtmp://muc01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://muc01.contribute.live-video.net/app/{stream_key}", + "priority": 35 + }, + { + "_id": 36, + "availability": 1.0, + "default": false, + "name": "Europe: UK, London (8)", + "url_template": "rtmp://lhr08.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://lhr08.contribute.live-video.net/app/{stream_key}", + "priority": 36 + }, + { + "_id": 37, + "availability": 1.0, + "default": false, + "name": "Europe: UK, London (3)", + "url_template": "rtmp://lhr03.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://lhr03.contribute.live-video.net/app/{stream_key}", + "priority": 37 + }, + { + "_id": 38, + "availability": 1.0, + "default": false, + "name": "Europe: France, Paris (2)", + "url_template": "rtmp://cdg02.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://cdg02.contribute.live-video.net/app/{stream_key}", + "priority": 38 + }, + { + "_id": 39, + "availability": 1.0, + "default": false, + "name": "Europe: France, Paris (10)", + "url_template": "rtmp://cdg10.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://cdg10.contribute.live-video.net/app/{stream_key}", + "priority": 39 + }, + { + "_id": 40, + "availability": 1.0, + "default": false, + "name": "Europe: Italy, Milan (2)", + "url_template": "rtmp://mil02.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://mil02.contribute.live-video.net/app/{stream_key}", + "priority": 40 + }, + { + "_id": 41, + "availability": 1.0, + "default": false, + "name": "Europe: Germany, Frankfurt (5)", + "url_template": "rtmp://fra05.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://fra05.contribute.live-video.net/app/{stream_key}", + "priority": 41 + }, + { + "_id": 42, + "availability": 1.0, + "default": false, + "name": "Europe: Germany, Frankfurt (2)", + "url_template": "rtmp://fra02.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://fra02.contribute.live-video.net/app/{stream_key}", + "priority": 42 + }, + { + "_id": 43, + "availability": 1.0, + "default": false, + "name": "Europe: France, Marseille (2)", + "url_template": "rtmp://mrs02.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://mrs02.contribute.live-video.net/app/{stream_key}", + "priority": 43 + }, + { + "_id": 44, + "availability": 1.0, + "default": false, + "name": "US East: Chicago, IL (3)", + "url_template": "rtmp://ord03.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://ord03.contribute.live-video.net/app/{stream_key}", + "priority": 44 + }, + { + "_id": 45, + "availability": 1.0, + "default": false, + "name": "US East: Chicago, IL (56)", + "url_template": "rtmp://ord56.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://ord56.contribute.live-video.net/app/{stream_key}", + "priority": 45 + }, + { + "_id": 46, + "availability": 1.0, + "default": false, + "name": "NA: Canada, Toronto", + "url_template": "rtmp://yto.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://yto.contribute.live-video.net/app/{stream_key}", + "priority": 46 + }, + { + "_id": 47, + "availability": 1.0, + "default": false, + "name": "NA: Canada, Quebec", + "url_template": "rtmp://ymq03.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://ymq03.contribute.live-video.net/app/{stream_key}", + "priority": 47 + }, + { + "_id": 48, + "availability": 1.0, + "default": false, + "name": "US Central: Garland, TX (56)", + "url_template": "rtmp://dfw56.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://dfw56.contribute.live-video.net/app/{stream_key}", + "priority": 48 + }, + { + "_id": 49, + "availability": 1.0, + "default": false, + "name": "US Central: Dallas, TX (2)", + "url_template": "rtmp://dfw02.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://dfw02.contribute.live-video.net/app/{stream_key}", + "priority": 49 + }, + { + "_id": 50, + "availability": 1.0, + "default": false, + "name": "US Central: Houston, TX (50)", + "url_template": "rtmp://iah50.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://iah50.contribute.live-video.net/app/{stream_key}", + "priority": 50 + }, + { + "_id": 51, + "availability": 1.0, + "default": false, + "name": "Europe: Spain, Madrid (2)", + "url_template": "rtmp://mad02.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://mad02.contribute.live-video.net/app/{stream_key}", + "priority": 51 + }, + { + "_id": 52, + "availability": 1.0, + "default": false, + "name": "Europe: Spain, Madrid (1)", + "url_template": "rtmp://mad01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://mad01.contribute.live-video.net/app/{stream_key}", + "priority": 52 + }, + { + "_id": 53, + "availability": 1.0, + "default": false, + "name": "US East: McAllen, TX (1)", + "url_template": "rtmp://mfe01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://mfe01.contribute.live-video.net/app/{stream_key}", + "priority": 53 + }, + { + "_id": 54, + "availability": 1.0, + "default": false, + "name": "US East: New York, NY (50)", + "url_template": "rtmp://jfk50.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://jfk50.contribute.live-video.net/app/{stream_key}", + "priority": 54 + }, + { + "_id": 55, + "availability": 1.0, + "default": false, + "name": "US East: New York, NY", + "url_template": "rtmp://jfk.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://jfk.contribute.live-video.net/app/{stream_key}", + "priority": 55 + }, + { + "_id": 56, + "availability": 1.0, + "default": false, + "name": "US East: Ashburn, VA (5)", + "url_template": "rtmp://iad05.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://iad05.contribute.live-video.net/app/{stream_key}", + "priority": 56 + }, + { + "_id": 57, + "availability": 1.0, + "default": false, + "name": "US East: Atlanta, GA", + "url_template": "rtmp://atl.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://atl.contribute.live-video.net/app/{stream_key}", + "priority": 57 + }, + { + "_id": 58, + "availability": 1.0, + "default": false, + "name": "NA: Mexico, Queretaro (4)", + "url_template": "rtmp://qro04.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://qro04.contribute.live-video.net/app/{stream_key}", + "priority": 58 + }, + { + "_id": 59, + "availability": 1.0, + "default": false, + "name": "NA: Mexico, Queretaro (3)", + "url_template": "rtmp://qro03.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://qro03.contribute.live-video.net/app/{stream_key}", + "priority": 59 + }, + { + "_id": 60, + "availability": 1.0, + "default": false, + "name": "US East: Miami, FL (5)", + "url_template": "rtmp://mia05.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://mia05.contribute.live-video.net/app/{stream_key}", + "priority": 60 + }, + { + "_id": 61, + "availability": 1.0, + "default": false, + "name": "South America: Colombia, Bogota (1)", + "url_template": "rtmp://bog01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://bog01.contribute.live-video.net/app/{stream_key}", + "priority": 61 + }, + { + "_id": 62, + "availability": 1.0, + "default": false, + "name": "South America: Brazil, Fortaleza (1)", + "url_template": "rtmp://for01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://for01.contribute.live-video.net/app/{stream_key}", + "priority": 62 + }, + { + "_id": 63, + "availability": 1.0, + "default": false, + "name": "South America : chile, Santiago (1)", + "url_template": "rtmp://scl01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://scl01.contribute.live-video.net/app/{stream_key}", + "priority": 63 + }, + { + "_id": 64, + "availability": 1.0, + "default": false, + "name": "South America: Buenos Aires, Argentina (1)", + "url_template": "rtmp://bue01.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://bue01.contribute.live-video.net/app/{stream_key}", + "priority": 64 + }, + { + "_id": 65, + "availability": 1.0, + "default": false, + "name": "South America: Brazil, Sao Paulo (5)", + "url_template": "rtmp://sao05.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://sao05.contribute.live-video.net/app/{stream_key}", + "priority": 65 + }, + { + "_id": 66, + "availability": 1.0, + "default": false, + "name": "South America: Brazil, Sao Paulo", + "url_template": "rtmp://sao03.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://sao03.contribute.live-video.net/app/{stream_key}", + "priority": 66 + }, + { + "_id": 67, + "availability": 1.0, + "default": false, + "name": "South America: Brazil, Rio de Janeiro (4)", + "url_template": "rtmp://rio04.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://rio04.contribute.live-video.net/app/{stream_key}", + "priority": 67 + }, + { + "_id": 68, + "availability": 1.0, + "default": false, + "name": "South America: Brazil, Rio de Janeiro (3)", + "url_template": "rtmp://rio03.contribute.live-video.net/app/{stream_key}", + "url_template_secure": "rtmps://rio03.contribute.live-video.net/app/{stream_key}", + "priority": 68 + } + ] +} diff --git a/dotfiles/.config/obs-studio/user.ini b/dotfiles/.config/obs-studio/user.ini new file mode 100644 index 0000000..7222899 --- /dev/null +++ b/dotfiles/.config/obs-studio/user.ini @@ -0,0 +1,68 @@ +[General] +Pre19Defaults=false +Pre21Defaults=false +Pre23Defaults=false +Pre24.1Defaults=false +ConfirmOnExit=true +HotkeyFocusType=NeverDisableHotkeys +FirstRun=true +Language=zh-CN + +[BasicWindow] +PreviewEnabled=true +PreviewProgramMode=false +SceneDuplicationMode=true +SwapScenesMode=true +SnappingEnabled=true +ScreenSnapping=true +SourceSnapping=true +CenterSnapping=false +SnapDistance=10 +SpacingHelpersEnabled=true +RecordWhenStreaming=false +KeepRecordingWhenStreamStops=false +SysTrayEnabled=true +SysTrayWhenStarted=false +SaveProjectors=false +ShowTransitions=true +ShowListboxToolbars=true +ShowStatusBar=true +ShowSourceIcons=true +ShowContextToolbars=true +StudioModeLabels=true +VerticalVolControl=false +MultiviewMouseSwitch=true +MultiviewDrawNames=true +MultiviewDrawAreas=true +MediaControlsCountdownTimer=true +WarnBeforeStartingStream=false +WarnBeforeStoppingStream=false +WarnBeforeStoppingRecord=false +geometry=AdnQywADAAAAAAAAAAAAAAAAA2oAAAPwAAAAAAAAAAAAAANqAAAD8AAAAAAAAAAAB2gAAAAAAAAAAAAAA2oAAAPw +DockState=AAAA/wAAAAD9AAAAAQAAAAMAAANrAAAA/PwBAAAABvsAAAAUAHMAYwBlAG4AZQBzAEQAbwBjAGsBAAAAAAAAAKMAAACYAP////sAAAAWAHMAbwB1AHIAYwBlAHMARABvAGMAawEAAACnAAAAowAAAJgA////+wAAABIAbQBpAHgAZQByAEQAbwBjAGsBAAABTgAAAN4AAADeAP////sAAAAeAHQAcgBhAG4AcwBpAHQAaQBvAG4AcwBEAG8AYwBrAQAAAjAAAACIAAAAiAD////7AAAAGABjAG8AbgB0AHIAbwBsAHMARABvAGMAawEAAAK8AAAArwAAAK8A////+wAAABIAcwB0AGEAdABzAEQAbwBjAGsCAAACVgAAAbIAAAK8AAAAyAAAA2sAAAK4AAAABAAAAAQAAAAIAAAACPwAAAAA +AlwaysOnTop=false +EditPropertiesMode=false +DocksLocked=false +SideDocks=false +AdvAudioVolumeType=1 + +[Basic] +Profile=Untitled +ProfileDir=Untitled +SceneCollection=Untitled +SceneCollectionFile=Untitled +ConfigOnNewProfile=true + +[Accessibility] +SelectRed=255 +SelectGreen=65280 +SelectBlue=16744192 +MixerGreen=2522918 +MixerYellow=2523007 +MixerRed=2500223 +MixerGreenActive=5046092 +MixerYellowActive=5046271 +MixerRedActive=5000447 + +[ScriptLogWindow] +geometry=AdnQywADAAAAAAABAAAAGQAAAlgAAAGoAAAAAQAAABkAAAJYAAABqAAAAAAAAAAAB2gAAAABAAAAGQAAAlgAAAGo diff --git a/dotfiles/.config/qt5ct/colors/catppuccin-mocha-lavender.conf b/dotfiles/.config/qt5ct/colors/catppuccin-mocha-lavender.conf new file mode 100644 index 0000000..4d19c93 --- /dev/null +++ b/dotfiles/.config/qt5ct/colors/catppuccin-mocha-lavender.conf @@ -0,0 +1,4 @@ +[ColorScheme] +active_colors= #ffcdd6f4, #ff45475a, #ff585b70, #ff313244, #ff11111b, #ff181825, #ffcdd6f4, #ffcdd6f4, #ffcdd6f4, #ff1e1e2e, #ff181825, #ff11111b, #ffb4befe, #ff11111b, #ff89b4fa, #ffb4befe, #ff181825, #ffffffff, #ff1e1e2e, #ffcdd6f4, #806c7086 +inactive_colors=#ff7f849c, #ff1e1e2e, #ff45475a, #ff313244, #ff11111b, #ff181825, #ff7f849c, #ffcdd6f4, #ff7f849c, #ff1e1e2e, #ff181825, #ff11111b, #ff313244, #ff7f849c, #ff7f849c, #ff7f849c, #ff181825, #ffffffff, #ff1e1e2e, #ffcdd6f4, #806c7086 +disabled_colors=#ff6c7086, #ff313244, #ff45475a, #ff313244, #ff11111b, #ff181825, #ff6c7086, #ffcdd6f4, #ff6c7086, #ff1e1e2e, #ff181825, #ff11111b, #ff181825, #ff6c7086, #ffa9bcdb, #ffc7cceb, #ff181825, #ffffffff, #ff1e1e2e, #ffcdd6f4, #806c7086 diff --git a/dotfiles/.config/qt5ct/qt5ct.conf b/dotfiles/.config/qt5ct/qt5ct.conf new file mode 100644 index 0000000..5e69bad --- /dev/null +++ b/dotfiles/.config/qt5ct/qt5ct.conf @@ -0,0 +1,35 @@ +[Appearance] +color_scheme_path=/home/admin/.config/qt5ct/colors/catppuccin-mocha-lavender.conf +custom_palette=true +icon_theme=Papirus-Dark +standard_dialogs=default +style=kvantum + +[Fonts] +fixed="Sarasa Gothic SC,16,-1,5,50,0,0,0,0,0,Regular" +general="Sarasa Gothic SC,16,-1,5,50,0,0,0,0,0,Regular" + +[Interface] +activate_item_on_single_click=1 +buttonbox_layout=0 +cursor_flash_time=1000 +dialog_buttons_have_icons=1 +double_click_interval=400 +gui_effects=@Invalid() +keyboard_scheme=2 +menus_have_icons=true +show_shortcuts_in_context_menus=true +stylesheets=@Invalid() +toolbutton_style=4 +underline_shortcut=1 +wheel_scroll_lines=3 + +[PaletteEditor] +geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x2{\0\0\0\xd2\0\0\x4\xf1\0\0\x2\xe2\0\0\x2{\0\0\0\xd2\0\0\x4\xf1\0\0\x2\xe2\0\0\0\0\x2\0\0\0\a\x80\0\0\x2{\0\0\0\xd2\0\0\x4\xf1\0\0\x2\xe2) + +[SettingsWindow] +geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x3\xd6\0\0\x2\xaa\0\0\0\0\0\0\0\0\xff\xff\xff\xfe\xff\xff\xff\xfe\0\0\0\0\x2\0\0\0\a\x80\0\0\0\0\0\0\0\0\0\0\x3\xd6\0\0\x2\xaa) + +[Troubleshooting] +force_raster_widgets=1 +ignored_applications=@Invalid() diff --git a/dotfiles/.config/qt6ct/colors/catppuccin-mocha-lavender.conf b/dotfiles/.config/qt6ct/colors/catppuccin-mocha-lavender.conf new file mode 100644 index 0000000..4d19c93 --- /dev/null +++ b/dotfiles/.config/qt6ct/colors/catppuccin-mocha-lavender.conf @@ -0,0 +1,4 @@ +[ColorScheme] +active_colors= #ffcdd6f4, #ff45475a, #ff585b70, #ff313244, #ff11111b, #ff181825, #ffcdd6f4, #ffcdd6f4, #ffcdd6f4, #ff1e1e2e, #ff181825, #ff11111b, #ffb4befe, #ff11111b, #ff89b4fa, #ffb4befe, #ff181825, #ffffffff, #ff1e1e2e, #ffcdd6f4, #806c7086 +inactive_colors=#ff7f849c, #ff1e1e2e, #ff45475a, #ff313244, #ff11111b, #ff181825, #ff7f849c, #ffcdd6f4, #ff7f849c, #ff1e1e2e, #ff181825, #ff11111b, #ff313244, #ff7f849c, #ff7f849c, #ff7f849c, #ff181825, #ffffffff, #ff1e1e2e, #ffcdd6f4, #806c7086 +disabled_colors=#ff6c7086, #ff313244, #ff45475a, #ff313244, #ff11111b, #ff181825, #ff6c7086, #ffcdd6f4, #ff6c7086, #ff1e1e2e, #ff181825, #ff11111b, #ff181825, #ff6c7086, #ffa9bcdb, #ffc7cceb, #ff181825, #ffffffff, #ff1e1e2e, #ffcdd6f4, #806c7086 diff --git a/dotfiles/.config/qt6ct/qt6ct.conf b/dotfiles/.config/qt6ct/qt6ct.conf new file mode 100644 index 0000000..cf2c582 --- /dev/null +++ b/dotfiles/.config/qt6ct/qt6ct.conf @@ -0,0 +1,35 @@ +[Appearance] +color_scheme_path=~/.config/qt6ct/colors/catppuccin-mocha-lavender.conf +custom_palette=true +icon_theme=Papirus-Dark +standard_dialogs=default +style=kvantum + +[Fonts] +fixed="Sarasa Gothic SC,16,-1,5,400,0,0,0,0,0,0,0,0,0,0,1,Regular" +general="Sarasa Gothic SC,16,-1,5,400,0,0,0,0,0,0,0,0,0,0,1,Regular" + +[Interface] +activate_item_on_single_click=1 +buttonbox_layout=0 +cursor_flash_time=1000 +dialog_buttons_have_icons=1 +double_click_interval=400 +gui_effects=@Invalid() +keyboard_scheme=2 +menus_have_icons=true +show_shortcuts_in_context_menus=true +stylesheets=@Invalid() +toolbutton_style=4 +underline_shortcut=1 +wheel_scroll_lines=3 + +[PaletteEditor] +geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x2{\0\0\0\xd2\0\0\x4\xf1\0\0\x2\xe2\0\0\x2{\0\0\0\xd2\0\0\x4\xf1\0\0\x2\xe2\0\0\0\0\x2\0\0\0\a\x80\0\0\x2{\0\0\0\xd2\0\0\x4\xf1\0\0\x2\xe2) + +[SettingsWindow] +geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\a\x7f\0\0\x4\x4\0\0\0\0\0\0\0\0\0\0\x2\xde\0\0\x2\x44\0\0\0\0\x2\0\0\0\a\x80\0\0\0\0\0\0\0\0\0\0\a\x7f\0\0\x4\x4) + +[Troubleshooting] +force_raster_widgets=1 +ignored_applications=@Invalid() diff --git a/dotfiles/.config/starship.toml b/dotfiles/.config/starship.toml new file mode 100644 index 0000000..557ecd0 --- /dev/null +++ b/dotfiles/.config/starship.toml @@ -0,0 +1,80 @@ +palette = "catppuccin_mocha" + +[palettes.catppuccin_mocha] +rosewater = "#f5e0dc" +flamingo = "#f2cdcd" +pink = "#f5c2e7" +mauve = "#cba6f7" +red = "#f38ba8" +maroon = "#eba0ac" +peach = "#fab387" +yellow = "#f9e2af" +green = "#a6e3a1" +teal = "#94e2d5" +sky = "#89dceb" +sapphire = "#74c7ec" +blue = "#89b4fa" +lavender = "#b4befe" +text = "#cdd6f4" +subtext1 = "#bac2de" +subtext0 = "#a6adc8" +overlay2 = "#9399b2" +overlay1 = "#7f849c" +overlay0 = "#6c7086" +surface2 = "#585b70" +surface1 = "#45475a" +surface0 = "#313244" +base = "#1e1e2e" +mantle = "#181825" +crust = "#11111b" + +continuation_prompt = '▶▶ ' + +format = """ +$username\ +$hostname\ +$directory\ +$git_branch\ +$git_state\ +$git_status\ +$cmd_duration\ +$line_break\ +$python\ +$character""" + +[directory] +style = "blue" + +[character] +success_symbol = "[❯](purple)" +error_symbol = "[❯](red)" +vimcmd_symbol = "[❮](green)" + +[git_branch] +format = "[$branch]($style)" +style = "bright-black" + +[git_status] +format = "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](218) ($ahead_behind$stashed)]($style)" +style = "cyan" +conflicted = "​" +untracked = "​" +modified = "​" +staged = "​" +renamed = "​" +deleted = "​" +stashed = "≡" + +[git_state] +format = '\([$state( $progress_current/$progress_total)]($style)\) ' +style = "bright-black" + +[cmd_duration] +format = "[$duration]($style) " +style = "yellow" + +[python] +format = "[$virtualenv]($style) " +style = "bright-black" + + diff --git a/dotfiles/.config/strawberry/strawberry.conf b/dotfiles/.config/strawberry/strawberry.conf new file mode 100644 index 0000000..4fbfc12 --- /dev/null +++ b/dotfiles/.config/strawberry/strawberry.conf @@ -0,0 +1,415 @@ +[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=18 +icon_size_left_panel_buttons=28 +icon_size_play_control_buttons=36 +icon_size_playlist_buttons=28 +icon_size_tabbar_large_mode=34 +icon_size_tabbar_small_mode=30 +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\xffZ<33\x9f\x38\0\0) +tab_gradient=true +tab_system_color=true + +[Backend] +AutoCrossfadeEnabled=false +CrossfadeEnabled=false +Device=@Invalid() +FadeoutDuration=2000 +FadeoutEnabled=false +FadeoutPauseDuration=250 +FadeoutPauseEnabled=false +NoCrossfadeSameAlbum=true +Output=autoaudiosink +alsaplugin=3 +bs2b=false +bufferduration=4000 +bufferhighwatermark=0.99 +bufferlowwatermark=0.33 +channels=2 +channels_enabled=false +ebur128_loudness_normalization=false +ebur128_target_level_lufs=-23 +http2=false +rgcompression=true +rgenabled=false +rgfallbackgain=0 +rgmode=0 +rgpreamp=0 +strict_ssl=false +volume_control=true + +[Behaviour] +doubleclick_addmode=1 +doubleclick_playlist_addmode=1 +doubleclick_playmode=2 +keeprunning=true +language= +menu_playmode=2 +menu_previousmode=1 +playing_widget=true +resumeplayback=false +seek_step_sec=10 +showtrayicon=true +startupbehaviour=3 +taskbar_progress=false +trayicon_progress=false +volume_increment=5 + +[Collection] +auto_open=true +cache_size=160 +cache_size_unit=1 +cover_art_patterns=front, cover +delete_files=false +disk_cache_enable=false +disk_cache_size=360 +disk_cache_size_unit=1 +expire_unavailable_songs=60 +group_by1=3 +group_by2=0 +group_by3=0 +group_by_version=1 +last_path= +mark_songs_unavailable=true +monitor=true +overwrite_playcount=false +overwrite_rating=false +pretty_covers=true +save_playcounts=false +save_ratings=false +separate_albums_by_grouping=false +show_dividers=true +song_ebur128_loudness_analysis=false +song_tracking=false +sort_skips_articles=true +startup_scan=true +various_artists=true + +[Context] +AlbumEnable=true +SearchCoverEnable=true +SearchLyricsEnable=true +SongLyricsEnable=true +SummaryFmt=%album% +TechnicalDataEnable=false +TitleFmt=%title% - %artist% +font_headline=Sarasa Gothic SC +font_normal=Sarasa Gothic SC +font_size_headline=16 +font_size_normal=14 + +[Covers] +providers=@Invalid() +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 + +[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= +restart_or_prev_track= +seek_backward= +seek_forward= +show_hide= +show_osd= +shuffle_mode= +stop=Media Stop +stop_after= +toggle_pretty_osd= +toggle_scrobbling= +use_kglobalaccel=false +use_x11=false + +[LastFM] +enabled=false + +[LibreFM] +enabled=false + +[ListenBrainz] +enabled=false +user_token= + +[Lyrics] +providers=@Invalid() + +[MainWindow] +current_tab=5 +do_not_show_sponsor_message=true +file_path= +geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\a\xf7\0\0\x4>\0\0\0\0\0\0\0\0\0\0\a\xf7\0\0\x4>\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\0\0\0\0\a\xf7\0\0\x4>) +hidden=false +maximized=false +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\x8a\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=true +save=false +show=true +style=4 + +[NetworkProxy] +engine=true +hostname= +mode=0 +password= +port=0 +type=3 +use_authentication=false +username= + +[OSD] +Behaviour=1 +CustomText1= +CustomText2= +CustomTextEnabled=false +ShowArt=true +ShowOnPausePlayback=true +ShowOnPlayModeChange=true +ShowOnResumePlayback=false +ShowOnVolumeChange=false +Timeout=3000 + +[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(1652 0) +popup_screen=DP-3 + +[Player] +playback_playlist=1 +playback_position=179 +playback_state=2 +volume=50 + +[Playlist] +alternating_row_colors=true +auto_sort=false +column_alignments=@Variant(\0\0\0\x7f\0\0\0\x13\x43olumnAlignmentMap\0\0\0\0\xe\0\0\0\0\0\0\0\x81\0\0\0\x2\0\0\0\x81\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\x12\0\0\0\x81\0\0\0\x15\0\0\0\x82\0\0\0\x16\0\0\0\x82) +continue_on_error=false +delete_files=false +editmetadatainline=false +glow_effect=false +greyout_songs_play=true +greyout_songs_startup=true +path_type=0 +playlist_clear=true +rating_locked=false +select_track=false +show_bars=true +show_toolbar=true +state="@ByteArray(P,\x95\x10\x1\0\0\0 \0\0\0\b\0\0\0\0\0\0\0\x1\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\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 \0\0\x1r\0\0\x1\x64\0\0\x1h\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\x66\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0o\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x66\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\x6\0\0\0\0\0\0\0\x1\0\0\0\x2\0\0\0\n\0\0\0\xe\0\0\0\x12\0\0\0 ?\xd0\xe5}\xdb\xf1\x97t?\xd0>\xc5y\xb2\xd6\x9c?\xd0k\xa6/\xa2--\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?\xb2\xbf\xff\xcf\x9e\xd2{\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\xb4K\xe\x1a\xe6\xbf\xd7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\xb2\xb5L\0`\0\xbb\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\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)" +state_version=1 +warn_close_playlist=true +write_metadata=false + +[PlaylistSequence] +repeat_mode=3 +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, spotify, stream, somafm, radioparadise, unknown +strip_remastered=true +submit=0 + +[SerializedSmartPlaylists] +songs_version=3 + +[SettingsDialog] +geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\x4\0\0\0 \0\0\a\xfb\0\0\x4^\0\0\0\x4\0\0\0 \0\0\a\xfb\0\0\x4^\0\0\0\0\0\0\0\0\b\0\0\0\0\x4\0\0\0 \0\0\a\xfb\0\0\x4^) + +[Spotify] +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 + +[Subsonic] +group_by1=1 +group_by2=4 +group_by3=0 +group_by_version=1 +separate_albums_by_grouping=false + +[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 +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/dotfiles/.config/swappy/config b/dotfiles/.config/swappy/config new file mode 100644 index 0000000..d1eb6bb --- /dev/null +++ b/dotfiles/.config/swappy/config @@ -0,0 +1,11 @@ +[Default] +auto_save = false +early_exit = true +fill_shape = false +line_size = 5 +paint_mode = brush +save_dir = ~/Pictures/Screenshots +save_filename_format = SCREENSHOT-%Y-%m-%d-%H:%M:%S.png +show_panel = false +text_font = Sarasa Gothic SC +text_size = 20 diff --git a/dotfiles/.config/waybar/config.jsonc b/dotfiles/.config/waybar/config.jsonc new file mode 100644 index 0000000..681e134 --- /dev/null +++ b/dotfiles/.config/waybar/config.jsonc @@ -0,0 +1,171 @@ +{ + "layer": "top", + "position": "top", + //"height": 20, + "margin-left": 10, + "margin-bottom": 0, + "margin-right": 10, + "spacing": 8, + "modules-left": [ + "custom/startmenu", + "backlight", + "battery", + "network", + "hyprland/workspaces", + "niri/workspaces", + "sway/workspaces" + ], + "modules-center": [ + "wlr/taskbar" + ], + "modules-right": [ + "custom/screenshot", + "tray", + "custom/wl-gammarelay-brightness", + "custom/wl-gammarelay-temperature", + "wireplumber", + "clock", + "custom/swaync", + ], + + // ------------------------------------------------------------------------- + // Modules + // ------------------------------------------------------------------------- + + "custom/startmenu": { + "format": " ", + "tooltip": false, + "on-click": "wlogout", + "on-click-right": "fuzzel", + }, + + "backlight": { + "device": "intel_backlight", + "format": "{icon} {percent}%", + "format-icons": [""], + "on-scroll-down": "brightnessctl s 2%-", + "on-scroll-up": "brightnessctl s +2%", + }, + + "battery": { + "interval": 5, + "states": { + "good": 95, + "warning": 15, + "critical": 10, + }, + "format": "{icon} {capacity}%", + "format-charging": " {capacity}%", + "format-plugged": " {capacity}%", + "format-icons": ["", "", "", "", ""], + }, + + "network": { + "interval": 3, + "format": "{bandwidthUpBytes} {bandwidthDownBytes}", + "format-disconnected": "󰲜 ", + "on-click": "alacritty -e zenith", + "on-click-right": "corestats", + "tooltip-format": "{ifname}\n{ipaddr}/{cidr}\n", + }, + + "hyprland/workspaces": { + "all-outputs": true, + "format": "{name}", + "on-scroll-down": "hyprctl dispatch workspace e+1 1>/dev/null", + "on-scroll-up": "hyprctl dispatch workspace e-1 1>/dev/null", + "sort-by-number": true, + "active-only": false, + }, + + "niri/workspaces": { + "format": "{icon}", + }, + + "sway/workspaces": { + "all-outputs": true, + "format": "{name}", + }, + + "wlr/taskbar": { + "format": "{icon}", + "icon-size": 22, + "spacing": 3, + "tooltip-format": "{title}", + "ignore-list": [], + "on-click": "activate", + "on-click-middle": "close", + }, + + "custom/screenshot": { + "format": " 󰨵 ", + "on-click": "sh ~/.config/waybar/scripts/Screenshot-Area.sh", + "on-click-right": "nemo ~/Pictures/Screenshots", + "on-click-middle": "sh ~/.config/waybar/scripts/Screenshot-Fullscreen.sh", + "tooltip": false, + }, + + "tray": { + "spacing": 8, + }, + + "custom/wl-gammarelay-brightness": { + "format": "{}%", + "exec": "wl-gammarelay-rs watch {bp}", + "on-click": "busctl --user set-property rs.wl-gammarelay / rs.wl.gammarelay Brightness d 0.7", + "on-click-right": "busctl --user set-property rs.wl-gammarelay / rs.wl.gammarelay Brightness d 1", + "on-scroll-up": "busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay UpdateBrightness d +0.02", + "on-scroll-down": "busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay UpdateBrightness d -0.02", + "tooltip": false + }, + "custom/wl-gammarelay-temperature": { + "format": "{}K", + "exec": "wl-gammarelay-rs watch {t}", + "on-click": "busctl --user set-property rs.wl-gammarelay / rs.wl.gammarelay Temperature q 4500", + "on-click-right": "busctl --user set-property rs.wl-gammarelay / rs.wl.gammarelay Temperature q 6500", + "on-scroll-up": "busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay UpdateTemperature n +100", + "on-scroll-down": "busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay UpdateTemperature n -100", + "tooltip": false + }, + + "wireplumber": { + "on-click": "pwvucontrol", + "on-click-right": "easyeffects", + "on-click-middle": "swayosd-client --output-volume mute-toggle", + "on-scroll-down": "swayosd-client --output-volume -2", + "on-scroll-up": "swayosd-client --output-volume +2", + "format": "{icon} {volume}%", + "format-muted": "MUTE", + "format-source": "", + "format-source-muted": "", + "format-icons": { + "default": ["", "", ""], + }, + }, + + "clock": { + "interval": 60, + "align": 0, + "rotate": 0, + "tooltip-format": "{calendar}", + "format": " {:%H:%M}", + "format-alt": " {:%a %b %d, %G}", + }, + + "custom/swaync": { + "tooltip": true, + "format": " {icon} ", + "format-icons": { + "notification": "", + "none": "", + "dnd-notification": "", + "dnd-none": "", + }, + "return-type": "json", + "exec-if": "which swaync-client", + "exec": "swaync-client -swb", + "on-click": "swaync-client -t -sw", + "escape": true, + }, +} + diff --git a/dotfiles/.config/waybar/mocha.css b/dotfiles/.config/waybar/mocha.css new file mode 100644 index 0000000..75cfb9d --- /dev/null +++ b/dotfiles/.config/waybar/mocha.css @@ -0,0 +1,26 @@ +@define-color rosewater #f5e0dc; +@define-color flamingo #f2cdcd; +@define-color pink #f5c2e7; +@define-color mauve #cba6f7; +@define-color red #f38ba8; +@define-color maroon #eba0ac; +@define-color peach #fab387; +@define-color yellow #f9e2af; +@define-color green #a6e3a1; +@define-color teal #94e2d5; +@define-color sky #89dceb; +@define-color sapphire #74c7ec; +@define-color blue #89b4fa; +@define-color lavender #b4befe; +@define-color text #cdd6f4; +@define-color subtext1 #bac2de; +@define-color subtext0 #a6adc8; +@define-color overlay2 #9399b2; +@define-color overlay1 #7f849c; +@define-color overlay0 #6c7086; +@define-color surface2 #585b70; +@define-color surface1 #45475a; +@define-color surface0 #313244; +@define-color base #1e1e2e; +@define-color mantle #181825; +@define-color crust #11111b; diff --git a/dotfiles/.config/waybar/scripts/Screenshot-Area.sh b/dotfiles/.config/waybar/scripts/Screenshot-Area.sh new file mode 100644 index 0000000..ee12ad2 --- /dev/null +++ b/dotfiles/.config/waybar/scripts/Screenshot-Area.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +grim -g "$(slurp)" - | swappy -f - diff --git a/dotfiles/.config/waybar/scripts/Screenshot-Fullscreen.sh b/dotfiles/.config/waybar/scripts/Screenshot-Fullscreen.sh new file mode 100644 index 0000000..ce131b7 --- /dev/null +++ b/dotfiles/.config/waybar/scripts/Screenshot-Fullscreen.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +grim - | wl-copy -t image/png;notify-send "Screenshot copied to clipboard" diff --git a/dotfiles/.config/waybar/scripts/Screenshot-Hyprland-Window.sh b/dotfiles/.config/waybar/scripts/Screenshot-Hyprland-Window.sh new file mode 100644 index 0000000..08305ba --- /dev/null +++ b/dotfiles/.config/waybar/scripts/Screenshot-Hyprland-Window.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +grim -g "$(hyprctl clients -j | jq '.[] | select(.hidden | not) | "\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"' -r | slurp)" - | swappy -f - diff --git a/dotfiles/.config/waybar/scripts/Screenshot-OCR.sh b/dotfiles/.config/waybar/scripts/Screenshot-OCR.sh new file mode 100644 index 0000000..eebdf67 --- /dev/null +++ b/dotfiles/.config/waybar/scripts/Screenshot-OCR.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +## only support EN +grim -g "$(slurp)" - | tesseract -l "eng" stdin stdout | wl-copy;notify-send "OCR content copied to clipboard" diff --git a/dotfiles/.config/waybar/scripts/Screenshot-sway-Window.sh b/dotfiles/.config/waybar/scripts/Screenshot-sway-Window.sh new file mode 100644 index 0000000..4d0977c --- /dev/null +++ b/dotfiles/.config/waybar/scripts/Screenshot-sway-Window.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +grim -g "$(swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | .rect | "\(.x),\(.y) \(.width)x\(.height)"' | slurp)" - | swappy -f - diff --git a/dotfiles/.config/waybar/style.css b/dotfiles/.config/waybar/style.css new file mode 100644 index 0000000..c79b262 --- /dev/null +++ b/dotfiles/.config/waybar/style.css @@ -0,0 +1,133 @@ +@import "mocha.css"; + +* { + /* https://docs.gtk.org/gtk3/css-overview.html#colors */ + color: @text; + font-family: "JetBrainsMono Nerd Font"; + font-size: 12pt; + font-weight: bold; + border-radius: 8px; + transition-property: background-color; + transition-duration: 0.5s; +} +@keyframes blink_red { + to { + background-color: @red; + color: @base; + } +} +.warning, +.critical, +.urgent { + animation-name: blink_red; + animation-duration: 2s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} +window#waybar { + background-color: @mantle; + border: 2px solid alpha(@crust, 0.3); +} +/* +window > box { + margin-left: 5px; + margin-right: 5px; + margin-top: 5px; + background-color: shade(@base, 0.9); + padding: 3px; + padding-left: 8px; + border: 2px none @blue; +} +*/ +#workspaces { + padding-left: 0px; + padding-right: 4px; +} +#workspaces button { + padding-top: 5px; + padding-bottom: 5px; + padding-left: 6px; + padding-right: 6px; +} +#workspaces button.active { + background-color: @surface2; + color: @base; +} +#workspaces button.urgent { + color: @base; +} +#workspaces button:hover { + background-color: @surface0; + color: @base; +} +tooltip { + background: @mantle; +} +tooltip label { + color: @subtext1; +} +#custom-launcher { + font-size: 20px; + padding-left: 8px; + padding-right: 6px; + color: #7ebae4; +} + +#custom-powermenu { + color: @red; + padding-left: 10px; + padding-right: 10px; +} + +#memory { + color: @teal; +} +#cpu { + color: @maroon; +} +#clock { + color: @subtext1; +} + +#idle_inhibitor { + color: @pink; + padding-right: 8px; +} +#battery { + min-width: 55px; + color: @sky; +} +#battery.charging, +#battery.full, +#battery.plugged { + color: @green; +} +#battery.warning:not(.charging) { + color: @yellow; +} +#battery.critical:not(.charging) { + color: @red; +} +#custom-wall { + color: @sky; +} +#temperature { + color: @sky; +} +#backlight { + color: @peach; +} +#pulseaudio { + color: @flamingo; +} +#network { + color: @sapphire; +} +#network.disconnected { + color: @subtext0; +} +#tray { + padding-right: 8px; + padding-left: 10px; +} diff --git a/dotfiles/.config/wlogout/layout b/dotfiles/.config/wlogout/layout new file mode 100644 index 0000000..30b3392 --- /dev/null +++ b/dotfiles/.config/wlogout/layout @@ -0,0 +1,36 @@ +{ + "label" : "lock", + "action" : "hyprlock", + "text" : "Lock", + "keybind" : "l" +} +{ + "label" : "hibernate", + "action" : "systemctl hibernate", + "text" : "Hibernate", + "keybind" : "h" +} +{ + "label" : "logout", + "action" : "loginctl terminate-user $USER", + "text" : "Logout", + "keybind" : "e" +} +{ + "label" : "shutdown", + "action" : "systemctl poweroff", + "text" : "Shutdown", + "keybind" : "s" +} +{ + "label" : "suspend", + "action" : "systemctl suspend", + "text" : "Suspend", + "keybind" : "u" +} +{ + "label" : "reboot", + "action" : "systemctl reboot", + "text" : "Reboot", + "keybind" : "r" +} diff --git a/dotfiles/.config/xarchiver/xarchiverrc b/dotfiles/.config/xarchiver/xarchiverrc new file mode 100644 index 0000000..382ab63 --- /dev/null +++ b/dotfiles/.config/xarchiver/xarchiverrc @@ -0,0 +1,29 @@ +[xarchiver] +preferred_format=0 +prefer_unzip=true +confirm_deletion=true +sort_filename_content=false +advanced_isearch=true +auto_expand=true +store_output=false +icon_size=4 +show_archive_comment=false +show_sidebar=true +show_location_bar=true +show_toolbar=true +preferred_custom_cmd= +preferred_temp_dir=/tmp +preferred_extract_dir=/tmp +allow_sub_dir=0 +ensure_directory=true +overwrite=false +full_path=2 +touch=false +fresh=false +update=false +store_path=false +updadd=true +freshen=false +recurse=true +solid_archive=false +remove_files=false diff --git a/dotfiles/.config/zed/keymap.json b/dotfiles/.config/zed/keymap.json new file mode 100644 index 0000000..c81d4ad --- /dev/null +++ b/dotfiles/.config/zed/keymap.json @@ -0,0 +1,18 @@ +[ + { + "context": "Editor", + "bindings": { + "ctrl-q": null, + "ctrl-/": "workspace::ToggleBottomDock", + "ctrl-\\": "workspace::ToggleLeftDock" + } + }, + { + "context": "Workspace", + "bindings": { + "ctrl-q": null, + "ctrl-/": "workspace::ToggleBottomDock", + "ctrl-\\": "workspace::ToggleLeftDock" + } + } +] diff --git a/dotfiles/.config/zed/settings.json b/dotfiles/.config/zed/settings.json new file mode 100644 index 0000000..44f6d85 --- /dev/null +++ b/dotfiles/.config/zed/settings.json @@ -0,0 +1,65 @@ +{ + "assistant": { + "enabled": false, + "version": "2" + }, + "auto_install_extensions": { + "catppucchin-icons": true, + "catppuccin": true, + "nix": true + }, + "auto_update": false, + "base_keymap": "VSCode", + "features": { + "copilot": false, + "inline_completion_provider": "none" + }, + "hour_format": "hour24", + "icon_theme": { + "dark": "Catppuccin Mocha", + "light": "Catppuccin Mocha", + "mode": "system" + }, + "load_direnv": "shell_hook", + "lsp": { + "nix": { + "binary": { + "path_lookup": true + } + } + }, + "show_whitespaces": "all", + "terminal": { + "alternate_scroll": "off", + "blinking": "off", + "button": true, + "copy_on_select": false, + "detect_venv": { + "on": { + "activate_script": "default", + "directories": [".env", "env", ".venv", "venv"] + } + }, + "dock": "bottom", + "env": { + "TERM": "alacritty" + }, + "font_family": "JetBrainsMono Nerd Font", + "font_features": null, + "font_size": null, + "line_height": "comfortable", + "option_as_meta": false, + "shell": "system", + "toolbar": { + "breadcrumbs": false, + "title": true + }, + "working_directory": "current_project_directory" + }, + "theme": { + "dark": "Catppuccin Mocha", + "light": "Catppuccin Mocha", + "mode": "system" + }, + "vim_mode": false +} diff --git a/dotfiles/.config/zellij/config.kdl b/dotfiles/.config/zellij/config.kdl new file mode 100644 index 0000000..6a8808a --- /dev/null +++ b/dotfiles/.config/zellij/config.kdl @@ -0,0 +1,466 @@ +// +// THIS FILE WAS AUTOGENERATED BY ZELLIJ, THE PREVIOUS FILE AT THIS LOCATION WAS COPIED TO: /home/dich/.config/zellij/config.kdl.bak.1 +// + +keybinds clear-defaults=true { + locked { + bind "Ctrl g" { SwitchToMode "normal"; } + } + pane { + bind "left" { MoveFocus "left"; } + bind "down" { MoveFocus "down"; } + bind "up" { MoveFocus "up"; } + bind "right" { MoveFocus "right"; } + bind "c" { SwitchToMode "renamepane"; PaneNameInput 0; } + bind "d" { NewPane "down"; SwitchToMode "normal"; } + bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "normal"; } + bind "f" { ToggleFocusFullscreen; SwitchToMode "normal"; } + bind "h" { MoveFocus "left"; } + bind "i" { TogglePanePinned; SwitchToMode "normal"; } + bind "j" { MoveFocus "down"; } + bind "k" { MoveFocus "up"; } + bind "l" { MoveFocus "right"; } + bind "n" { NewPane; SwitchToMode "normal"; } + bind "p" { SwitchFocus; } + bind "Ctrl p" { SwitchToMode "normal"; } + bind "r" { NewPane "right"; SwitchToMode "normal"; } + bind "w" { ToggleFloatingPanes; SwitchToMode "normal"; } + bind "z" { TogglePaneFrames; SwitchToMode "normal"; } + } + tab { + bind "left" { GoToPreviousTab; } + bind "down" { GoToNextTab; } + bind "up" { GoToPreviousTab; } + bind "right" { GoToNextTab; } + bind "1" { GoToTab 1; SwitchToMode "normal"; } + bind "2" { GoToTab 2; SwitchToMode "normal"; } + bind "3" { GoToTab 3; SwitchToMode "normal"; } + bind "4" { GoToTab 4; SwitchToMode "normal"; } + bind "5" { GoToTab 5; SwitchToMode "normal"; } + bind "6" { GoToTab 6; SwitchToMode "normal"; } + bind "7" { GoToTab 7; SwitchToMode "normal"; } + bind "8" { GoToTab 8; SwitchToMode "normal"; } + bind "9" { GoToTab 9; SwitchToMode "normal"; } + bind "[" { BreakPaneLeft; SwitchToMode "normal"; } + bind "]" { BreakPaneRight; SwitchToMode "normal"; } + bind "b" { BreakPane; SwitchToMode "normal"; } + bind "h" { GoToPreviousTab; } + bind "j" { GoToNextTab; } + bind "k" { GoToPreviousTab; } + bind "l" { GoToNextTab; } + bind "n" { NewTab; SwitchToMode "normal"; } + bind "r" { SwitchToMode "renametab"; TabNameInput 0; } + bind "s" { ToggleActiveSyncTab; SwitchToMode "normal"; } + bind "Ctrl t" { SwitchToMode "normal"; } + bind "x" { CloseTab; SwitchToMode "normal"; } + bind "tab" { ToggleTab; } + } + resize { + bind "left" { Resize "Increase left"; } + bind "down" { Resize "Increase down"; } + bind "up" { Resize "Increase up"; } + bind "right" { Resize "Increase right"; } + bind "+" { Resize "Increase"; } + bind "-" { Resize "Decrease"; } + bind "=" { Resize "Increase"; } + bind "H" { Resize "Decrease left"; } + bind "J" { Resize "Decrease down"; } + bind "K" { Resize "Decrease up"; } + bind "L" { Resize "Decrease right"; } + bind "h" { Resize "Increase left"; } + bind "j" { Resize "Increase down"; } + bind "k" { Resize "Increase up"; } + bind "l" { Resize "Increase right"; } + bind "Ctrl n" { SwitchToMode "normal"; } + } + move { + bind "left" { MovePane "left"; } + bind "down" { MovePane "down"; } + bind "up" { MovePane "up"; } + bind "right" { MovePane "right"; } + bind "h" { MovePane "left"; } + bind "Ctrl h" { SwitchToMode "normal"; } + bind "j" { MovePane "down"; } + bind "k" { MovePane "up"; } + bind "l" { MovePane "right"; } + bind "n" { MovePane; } + bind "p" { MovePaneBackwards; } + bind "tab" { MovePane; } + } + scroll { + bind "Alt left" { MoveFocusOrTab "left"; SwitchToMode "normal"; } + bind "Alt down" { MoveFocus "down"; SwitchToMode "normal"; } + bind "Alt up" { MoveFocus "up"; SwitchToMode "normal"; } + bind "Alt right" { MoveFocusOrTab "right"; SwitchToMode "normal"; } + bind "e" { EditScrollback; SwitchToMode "normal"; } + bind "Alt h" { MoveFocusOrTab "left"; SwitchToMode "normal"; } + bind "Alt j" { MoveFocus "down"; SwitchToMode "normal"; } + bind "Alt k" { MoveFocus "up"; SwitchToMode "normal"; } + bind "Alt l" { MoveFocusOrTab "right"; SwitchToMode "normal"; } + bind "s" { SwitchToMode "entersearch"; SearchInput 0; } + } + search { + bind "c" { SearchToggleOption "CaseSensitivity"; } + bind "n" { Search "down"; } + bind "o" { SearchToggleOption "WholeWord"; } + bind "p" { Search "up"; } + bind "w" { SearchToggleOption "Wrap"; } + } + session { + bind "a" { + LaunchOrFocusPlugin "zellij:about" { + floating true + move_to_focused_tab true + } + SwitchToMode "normal" + } + bind "c" { + LaunchOrFocusPlugin "configuration" { + floating true + move_to_focused_tab true + } + SwitchToMode "normal" + } + bind "Ctrl o" { SwitchToMode "normal"; } + bind "p" { + LaunchOrFocusPlugin "plugin-manager" { + floating true + move_to_focused_tab true + } + SwitchToMode "normal" + } + bind "w" { + LaunchOrFocusPlugin "session-manager" { + floating true + move_to_focused_tab true + } + SwitchToMode "normal" + } + } + shared_except "locked" { + bind "Alt +" { Resize "Increase"; } + bind "Alt -" { Resize "Decrease"; } + bind "Alt =" { Resize "Increase"; } + bind "Alt [" { PreviousSwapLayout; } + bind "Alt ]" { NextSwapLayout; } + bind "Alt f" { ToggleFloatingPanes; } + bind "Ctrl g" { SwitchToMode "locked"; } + bind "Alt i" { MoveTab "left"; } + bind "Alt n" { NewPane; } + bind "Alt o" { MoveTab "right"; } + bind "Ctrl q" { Quit; } + } + shared_except "locked" "move" { + bind "Ctrl h" { SwitchToMode "move"; } + } + shared_except "locked" "session" { + bind "Ctrl o" { SwitchToMode "session"; } + } + shared_except "locked" "scroll" { + bind "Alt left" { MoveFocusOrTab "left"; } + bind "Alt down" { MoveFocus "down"; } + bind "Alt up" { MoveFocus "up"; } + bind "Alt right" { MoveFocusOrTab "right"; } + bind "Alt h" { MoveFocusOrTab "left"; } + bind "Alt j" { MoveFocus "down"; } + bind "Alt k" { MoveFocus "up"; } + bind "Alt l" { MoveFocusOrTab "right"; } + } + shared_except "locked" "scroll" "search" "tmux" { + bind "Ctrl b" { SwitchToMode "tmux"; } + } + shared_except "locked" "scroll" "search" { + bind "Ctrl s" { SwitchToMode "scroll"; } + } + shared_except "locked" "tab" { + bind "Ctrl t" { SwitchToMode "tab"; } + } + shared_except "locked" "pane" { + bind "Ctrl p" { SwitchToMode "pane"; } + } + shared_except "locked" "resize" { + bind "Ctrl n" { SwitchToMode "resize"; } + } + shared_except "normal" "locked" "entersearch" { + bind "enter" { SwitchToMode "normal"; } + } + shared_except "normal" "locked" "entersearch" "renametab" "renamepane" { + bind "esc" { SwitchToMode "normal"; } + } + shared_among "pane" "tmux" { + bind "x" { CloseFocus; SwitchToMode "normal"; } + } + shared_among "scroll" "search" { + bind "PageDown" { PageScrollDown; } + bind "PageUp" { PageScrollUp; } + bind "left" { PageScrollUp; } + bind "down" { ScrollDown; } + bind "up" { ScrollUp; } + bind "right" { PageScrollDown; } + bind "Ctrl b" { PageScrollUp; } + bind "Ctrl c" { ScrollToBottom; SwitchToMode "normal"; } + bind "d" { HalfPageScrollDown; } + bind "Ctrl f" { PageScrollDown; } + bind "h" { PageScrollUp; } + bind "j" { ScrollDown; } + bind "k" { ScrollUp; } + bind "l" { PageScrollDown; } + bind "Ctrl s" { SwitchToMode "normal"; } + bind "u" { HalfPageScrollUp; } + } + entersearch { + bind "Ctrl c" { SwitchToMode "scroll"; } + bind "esc" { SwitchToMode "scroll"; } + bind "enter" { SwitchToMode "search"; } + } + renametab { + bind "esc" { UndoRenameTab; SwitchToMode "tab"; } + } + shared_among "renametab" "renamepane" { + bind "Ctrl c" { SwitchToMode "normal"; } + } + renamepane { + bind "esc" { UndoRenamePane; SwitchToMode "pane"; } + } + shared_among "session" "tmux" { + bind "d" { Detach; } + } + tmux { + bind "left" { MoveFocus "left"; SwitchToMode "normal"; } + bind "down" { MoveFocus "down"; SwitchToMode "normal"; } + bind "up" { MoveFocus "up"; SwitchToMode "normal"; } + bind "right" { MoveFocus "right"; SwitchToMode "normal"; } + bind "space" { NextSwapLayout; } + bind "\"" { NewPane "down"; SwitchToMode "normal"; } + bind "%" { NewPane "right"; SwitchToMode "normal"; } + bind "," { SwitchToMode "renametab"; } + bind "[" { SwitchToMode "scroll"; } + bind "Ctrl b" { Write 2; SwitchToMode "normal"; } + bind "c" { NewTab; SwitchToMode "normal"; } + bind "h" { MoveFocus "left"; SwitchToMode "normal"; } + bind "j" { MoveFocus "down"; SwitchToMode "normal"; } + bind "k" { MoveFocus "up"; SwitchToMode "normal"; } + bind "l" { MoveFocus "right"; SwitchToMode "normal"; } + bind "n" { GoToNextTab; SwitchToMode "normal"; } + bind "o" { FocusNextPane; } + bind "p" { GoToPreviousTab; SwitchToMode "normal"; } + bind "z" { ToggleFocusFullscreen; SwitchToMode "normal"; } + } +} + +// Plugin aliases - can be used to change the implementation of Zellij +// changing these requires a restart to take effect +plugins { + about location="zellij:about" + compact-bar location="zellij:compact-bar" + configuration location="zellij:configuration" + filepicker location="zellij:strider" { + cwd "/" + } + plugin-manager location="zellij:plugin-manager" + session-manager location="zellij:session-manager" + status-bar location="zellij:status-bar" + strider location="zellij:strider" + tab-bar location="zellij:tab-bar" + welcome-screen location="zellij:session-manager" { + welcome_screen true + } +} + +// Plugins to load in the background when a new session starts +// eg. "file:/path/to/my-plugin.wasm" +// eg. "https://example.com/my-plugin.wasm" +load_plugins { +} + +// Use a simplified UI without special fonts (arrow glyphs) +// Options: +// - true +// - false (Default) +// +// simplified_ui true + +// Choose the theme that is specified in the themes section. +// Default: default +// +// theme "dracula" + +// Choose the base input mode of zellij. +// Default: normal +// +default_mode "normal" + +// Choose the path to the default shell that zellij will use for opening new panes +// Default: $SHELL +// +// default_shell "fish" + +// Choose the path to override cwd that zellij will use for opening new panes +// +// default_cwd "/tmp" + +// The name of the default layout to load on startup +// Default: "default" +// +// default_layout "compact" + +// The folder in which Zellij will look for layouts +// (Requires restart) +// +// layout_dir "/tmp" + +// The folder in which Zellij will look for themes +// (Requires restart) +// +// theme_dir "/tmp" + +// Toggle enabling the mouse mode. +// On certain configurations, or terminals this could +// potentially interfere with copying text. +// Options: +// - true (default) +// - false +// +// mouse_mode false + +// Toggle having pane frames around the panes +// Options: +// - true (default, enabled) +// - false +// +// pane_frames false + +// When attaching to an existing session with other users, +// should the session be mirrored (true) +// or should each user have their own cursor (false) +// (Requires restart) +// Default: false +// +// mirror_session true + +// Choose what to do when zellij receives SIGTERM, SIGINT, SIGQUIT or SIGHUP +// eg. when terminal window with an active zellij session is closed +// (Requires restart) +// Options: +// - detach (Default) +// - quit +// +// on_force_close "quit" + +// Configure the scroll back buffer size +// This is the number of lines zellij stores for each pane in the scroll back +// buffer. Excess number of lines are discarded in a FIFO fashion. +// (Requires restart) +// Valid values: positive integers +// Default value: 10000 +// +// scroll_buffer_size 10000 + +// Provide a command to execute when copying text. The text will be piped to +// the stdin of the program to perform the copy. This can be used with +// terminal emulators which do not support the OSC 52 ANSI control sequence +// that will be used by default if this option is not set. +// Examples: +// +// copy_command "xclip -selection clipboard" // x11 +// copy_command "wl-copy" // wayland +// copy_command "pbcopy" // osx +// +// copy_command "pbcopy" + +// Choose the destination for copied text +// Allows using the primary selection buffer (on x11/wayland) instead of the system clipboard. +// Does not apply when using copy_command. +// Options: +// - system (default) +// - primary +// +// copy_clipboard "primary" + +// Enable automatic copying (and clearing) of selection when releasing mouse +// Default: true +// +// copy_on_select true + +// Path to the default editor to use to edit pane scrollbuffer +// Default: $EDITOR or $VISUAL +// scrollback_editor "/usr/bin/vim" + +// A fixed name to always give the Zellij session. +// Consider also setting `attach_to_session true,` +// otherwise this will error if such a session exists. +// Default: +// +// session_name "My singleton session" + +// When `session_name` is provided, attaches to that session +// if it is already running or creates it otherwise. +// Default: false +// +// attach_to_session true + +// Toggle between having Zellij lay out panes according to a predefined set of layouts whenever possible +// Options: +// - true (default) +// - false +// +// auto_layout false + +// Whether sessions should be serialized to the cache folder (including their tabs/panes, cwds and running commands) so that they can later be resurrected +// Options: +// - true (default) +// - false +// +// session_serialization false + +// Whether pane viewports are serialized along with the session, default is false +// Options: +// - true +// - false (default) +// +// serialize_pane_viewport false + +// Scrollback lines to serialize along with the pane viewport when serializing sessions, 0 +// defaults to the scrollback size. If this number is higher than the scrollback size, it will +// also default to the scrollback size. This does nothing if `serialize_pane_viewport` is not true. +// +// scrollback_lines_to_serialize 10000 + +// Enable or disable the rendering of styled and colored underlines (undercurl). +// May need to be disabled for certain unsupported terminals +// (Requires restart) +// Default: true +// +// styled_underlines false + +// How often in seconds sessions are serialized +// +// serialization_interval 10000 + +// Enable or disable writing of session metadata to disk (if disabled, other sessions might not know +// metadata info on this session) +// (Requires restart) +// Default: false +// +// disable_session_metadata false + +// Enable or disable support for the enhanced Kitty Keyboard Protocol (the host terminal must also support it) +// (Requires restart) +// Default: true (if the host terminal supports it) +// +// support_kitty_keyboard_protocol false + +// Whether to stack panes when resizing beyond a certain size +// Default: true +// +// stacked_resize false + +// Whether to show tips on startup +// Default: true +// +show_startup_tips false + +// Whether to show release notes on first version run +// Default: true +// +// show_release_notes false diff --git a/dotfiles/.local/share/fcitx5/themes/catppuccin-mocha-flamingo/arrow.png b/dotfiles/.local/share/fcitx5/themes/catppuccin-mocha-flamingo/arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..b10ddb5db27b3b1dc13910767069d0206b5d8fd4 GIT binary patch literal 694 zcmV;n0!jUeP)j0QEaQAR>d(ir8}X6DT= zH8WoCJxR98c8U@kzZU!jY?ZZAL`s&jCN}6fZ{E~M=G@LbpZmS{obEjrT+ytWGim~m z%bR*+ETqiN%`5I_Jk(Nyo7R|WXv0%eVJh0k9aVO`@!Pd3pZnM96G=mbsyg8zRntx3 zapCZ)soA_O+@fY;3E@-WZe1=Yd~54*hhJXhB`aHC(?<1&wgo}JR zfB66g-bF8zHQzpXH{k5Dti^ZWd=uIpw3r?%O4Z`7R0>{Cpm7eGufen6^sKbc@jXP> z<*Tk>cMrPcym#>j^ z&oN3wK@7(6|2$T_ORiyQI)frwTP%WTCyR(83)?O75X4qRA!0M7SFjzAVk2r3VR&y8 zOqVY|5|TWZ1oXh0sr39(9dH9oflJS2`WJiwK7a)Dp36ZKn#u#PTj8bWa@^X8sXPKZ zfdS^8%dCc}ZafzQ?tztvPE6%u1OqGJz-mONrgA=lf!Bej3NN}AY}ES*dM+El^WgN^ z|DW+(Hi0`}64A_5=0EckXbZRv^aUK5%Cf%Jc`n-nbT~xBaIHf7rgGJKdjjkMpTMiB cT(=OwH(M)8w{tEbssI2007*qoM6N<$g7if?UH||9 literal 0 HcmV?d00001 diff --git a/dotfiles/.local/share/fcitx5/themes/catppuccin-mocha-flamingo/radio.png b/dotfiles/.local/share/fcitx5/themes/catppuccin-mocha-flamingo/radio.png new file mode 100644 index 0000000000000000000000000000000000000000..d2d87ec82b2a716b33404835b9b01f37fe663178 GIT binary patch literal 617 zcmV-v0+#)WP)j0QEaQAR>d(ir8}X6DT= zH8WoCJxR98c8U@kzZU!jY?ZZAL`s&jCN}6fZ{E~M=G@LbpZmS{obEjrT+ytWGim~m z%bR*+ETqiN%`5I_Jk(Nyo7R|WXv0%eVJh0k9aVO`@!Pd3pZnM96G=mbsyg8zRntx3 zapCZ)soA_O+@fY;3E@-WZe1=Yd~54*hhJXhB`aHC(?<1&wgo}JR zfB66g-bF8zHQzpXH{k5Dti^ZWd=uIpw3r?%O4Z`7R0>{Cpm7eGufen6^sKbc@jXP> z<*Tk>cMrPcym#>jK zk}(Q|Fc3wb7J8w@b_G-EHPYog>2eK`Wuv{|g|ynjEW3qZB$o5Kd@}#RFdzs*7W>gU z-vN*CT#Q!zZ36533#fr2L@O{Et=hBMJfge1D(}Z$ngv<&vG?}3>e9tq_^Gt>B_j!Ho`@XyTOux+Ib|0_%e_hxAzV7>;@zc@L zoI6{5HUI!~_w3$z5CG%CG%{MOpx0Ik0EvPkOEmJ&haYg1=DY)rG&78j(C7 zD4F~VFNWKs2$uTfMf_#uv`>Bo9~~DHKTlcy6cG75%L*Zr&l6^C0H%MIqJC)_)V)t$ z+eIj!{02ULa}t2Y`|(BmX1e^x-=L>ou&w}@R6rnLSOJBAX%GNlb_E0iW^F+sU_J=+ z^_XYINCKz}7)gMHfRO}H2pCDgNCKn`7)gMHfRO}@BtSU8A_<@j{)-|Bs$A!F(6q=G z)7-_COQcP9j*SJ)9~(c?m|+5y`1o2pe@vVTs|3Jg0$?~HV!DHw0?ZTum?;1-QvhJ5 z05b)cDFE3&#tQyHrl9SI0TpoR&p!)*ESWH3jHv+T4FSv>V%`w+hIQF-;j3$vf(kO) zcUmrUVBauZy7K(5vu--Q-`?_qSZ?hOwbvvF-KRUdK!;7gGky>>L7<1z3{H!qns^wS~$QNO9fuw+e0g?g+2EG(9 zFkoQdO91+TfdK;p1_pryFfa&2fmsF&41X0cY?4H7kx=T7Up*7i|J<*d&ggVr!^`uT z=4l6yLMJNK*&<(VFESn^DMKz|G%?TInIC!z06PVO4z8#J=NMgGGbLflw%`0&`9U*Gh@`h$R!_NuPhf{ zo`e@=*Dr%RqN9&CXLYTfv_@CoZeC8eb4J;JEG+ee85Cp)biAkQks!(Gtsd~r8sg}Ig89hbkT-SF zQRHTh`ug`?jPP7LJE0cIkt2$}?hICiZM}zzBU7rTJjwObPMh{tY^QA)Q_;nX(x0ag zCD6g4=@ZEEXHEEz>XQ2nqvVone9pOOYA$`#%8kZ-S8-w|*OQQ!woJ6SwkXiP&$gU2 zdm>T9FIpudw$FmyMah;k)~}GvjNb87m3CxZEPV%O!0JuYiEFqz3y)d+hA44Kui+=O zQ^0cHsjRvK(v{~BiUgIw4@-u}UO$>Kf9$QMZ>Ej8q4ZbFV!0L3qPK1D-Z(Fjic=ym zoHO>VAqekK;kZ3IUMS<;NH6a__<_B|Qwzpq{1v{E>cUcb`J{ZQT0uh0%aRPuNN#E=od%NtXNo0u*f{PRV zI~v{}jEW&_?6dXuPVezF+LHJL7jQa`DHoPy0Yb<*y(i}gl*TT~g%yc%`)edFlc^J3 z9<|YFfKAD^b%9h>{yM?7{7RDY4o-TinbtFho?s7Qemlei3lS*jEREYD6`|2yt8FMF zqvE@rz!|D+ugZMisLJ^`ZVDM4!pp+`{u4M=XVKvmTu`5X7l?-9J>HRr)A{r&I*<#P1h7DC& zsVsJNaZEcPns+Zs_chdqTKc~3*I*x-Rtqz0%DyI;R_ z;l6Wv({%1GZf6fG@L83cs-y9}!xfTSqZOjT{u5wyQI2kwfS&|C?f7O2Y8L{6^cr(a z1a7&HH)?T_+KE&05tDEu|G_M%83rhC>YbOwkwBHUwT-A^D)Xg5^sdYHd3CGi(OinQ z{=>>bMnhTkEiW7K4&m?WbtL?SAIMxK#<#9fs#Cb8*|)-RxzfU|4;G#<^%d{l^j+E_ zE1TupW4v#r+<$$;`IYLP6zgyo{KFd7gO(W$F*5Lzy;JhoV8vbE)~$jWtIP-Y7}8wp_^?C7wA(!d(bNL(#n5>cbB_mGL06h zdsftxZMbQX=}2L5o{MuwBukHp;Com^(8acLW0xC)z1+BvVBzUI5b!F=%%&i{d3xZU zm}VjJOUU*U2){rQfDm6r1m6_x#h%T9x!Tmd*12+x_G>FnlwI{_*!HMM)^qe5?aSQm zaOS|JybAX}Oy9am2(1HtFTN%Z+gU+!@s58F;tSBeKVCZrb>Xi0ds{HA*X8o%LD zzrxs1f_Jl@kJvH$j)3E$aQ!41R0M-x54bBE?BndSmQuAPWwx&M^>dd^d30j{e~K1o zL&|hrqp5XK0xqSbePJwZStbw_((#Z>UybprKU^Q{75vIJ9lN{3R4`Qj15qMp5(7pj z8!bCUxcyVBxoM6d81E%3_xrPVRk>9SBO~UHw0osV^1d59WNnk5z4HM9leeU~sN22+ z7BfXp2T@p}gWlcsg~JKm3F%(mnp)2w)vP=cFtk*f+fpAY4SQJNmd1ERnFK0c1|YLq zL2d1}?IE}yHs~hQhr^oe=wiz3D$XM}gbP~vGZZPLpy^rI=}oo~HKOyB&-S_P3zERu z7k;1kfYn#BcM~JPklL*!kyH1ZpcChjfvGR}Opk~%nqWzKm~OqBYr15zuXHWzRQuCi zI=Jd6#F$==pMu7V|9blu0D#W|5O3N`p(bV_H=bB(=+qBXDb^nm@sF;kP=7>0htRJZ_-8t>w!;x1B(+huyRf9*8cxdrhqIzwdlbQtFizgIF{!)}lA@KNnI;qfT z0U3~I$Qqt5?CELBpz=ntFD({_O^|#z3TyDFhKKhs{lL0mFIFQxV${&Tz5QH1EFROO zDS`N7)o?Wv2pRQul(fe=_ZOA! zF=@6#Uyg-q3yh8jsN1`BIQh|HRzylf%?F+&A7BbAaA5>vm|hMzI(O)ieCR3#ESO$} zT=?kiOqu14*$2L*jegfT=xVZ>-&acAK>-0a>5-HiX#1lWrdY)1I^&S}dM*Vn^-}y( ziV13ow8eJ&wcNZv7=q1|rj>l51~wlSAnb>ZhHt}~BLesyhZd`NUk9PXe3OixV= z%8wiRX|y|A_V(RhC>)mobwjgaMu#4oaMo<4xQj*#-AP8&$maQ;$ac;}x+K3VCJRty z(!FbBr)k~gW!YO$6u3}Ki(g!;f>e?x$0wcOM1Z6-axJ~KV=(u%8*CmUXH2Qj81Li@ zANjE$X$flcLh>&pn3vVi^9T$wL2QGBc-c)R_kwv@#mIdo&t?7z8b2ek>z2SK-s~%) z1)qFPjiITMZH)cf^C>2)2((ew>P23oCupNti;9Za@Ki_IexbQS5rd9F{rk=6;*bNcOjhyy((E6 z)El^&kywG|hCGQOGc@`eIo@VU%S1%X#M!*w=GDJSv3YfQFopZr!!;5E?q^SlRA(?X zbCn+S!*#73FNl_peWAo>FZIxl3#)Oz_vp>3=6jGMw(Q8uvnfqdLc6Y5ZIdh-h|U@! z2>aD2O-3d24mDF~!bHpvHP-S!cc%Qlv%R9Xs^K+EWx1f~uH9Ifv@B_m7AmQnpXRZwHtI@(I zOtl`aT5a1Pie|m3MIinKHw*;$lxEbN9Lk3lop2xr!rnFsjzjyqiM97(0-`aLBeyq0 zv7CV_1M)*iUny=%Y*rGq77gXTWflvRMoapa68XR*T$RMxn|G?!EqqO2(k3W z5fY3lBkIL}n;@7uPA5K6Ws2kD`!56PKR`@5gZcf%9X_y?B|3a`wz_YF$x_dr#3_;q zUiEp4ihNL}Ou_v)727|Vh^&AdSaiKhPCw#>znAuC)KlScaP1qt$m#NIn%Erc)SONB z%NQU}<~^3c>BhhsvR@8Wp$ffE-75(G03K)8nGKzCfh1puHQ(9_Ln_ip0CV|-mSHEw zUuk)x-IRV4gdGDRM1d3DpLD}WE+_zTfmLh94Zjcl_`-^ppE^`M62H&JV9=<#*liG8 z+>(+i;973gPPk~Bn)O4&*28iR&|;Mi(PEhXhDyuq5vA0Pwq#~52rMjibA`QXM={O} zwmtG*2uz5hNnX%e6$-&Z9oaM+R_2%v~Z1zg5aexvRg~g_}br>4i9>> z877;5b(}lBFXEBV&oO>o1edL%JH&DE8%1W+wp}PIT>8zoITwzSVncpZnssy*j z_y1@$$QBLJzq>Fu?1<;P+i8!uRw_c&!*7a1FaIDM&!#SA{g_&p)Z?4oy<Uwc_t zjk9rbQEUAj30%Y$P`fysp|B%8dhCMcfyJIj!W8n6m8H^L#80*!*=4<=lhLv!c`g^+ zk~4fOL2RJW{4Ydi8`aPAJ!Zd(1j8LjtejF@4Bes)QV_Q(s_>6UNarbnYJ{{yK2uad zFYy|5(yjOf`~+g?)w;>Nq4`bfxH!@OOR-y(9x6s$A7}*wJ*{Wd*hY56p$?V~tJvJf zkG@Sl{Dv#>-jrEdnAHJ9{4sLXW;E+ILQ?VK2sxmnMrXKJ5I%0+S8)+YDn z83gA)JcL_Vw#TJ~u75IB7nj0UuVg1t6WaY?nAlOe&_Klx2R?CM7Ef?p6&|VIIMn`F zw7KaH;jY{}7U}~+F;r=j%Sdw2X$6W4lYzb!wa$5Df%BS_Hu@Re~lzVah=UrEy z;=cccQuv4L`+r=#+-iUO%Goe$BbUd*52}7&_|fJ&eT-J>zGG>Vi-v>Ao}-gZTm zmAeHdJDxEm&&fUGp)4gnzY zH#M3{fJXa0^4s7b4f~OEh{wFG{7IIA0-n;gD=cj!q@vzDUUO0QLsSs|-_`Pp!fT{@ zAT!|4@OuxUbF;op76un{!gkzLj{6R+CnU#OYI?%y^tDA!FM@OBmO^49(xs^D`8q{0 zyNSfO3=PVU<^G{cFf`x}diFk@IS*I;e2)unlSgH*UQjpW@KWr7zTx()nf!vDeqjmd zS%COEs8K-mG{jf1h(?koIEOQydn)uY-qnpgdMAvAywJ)g2r&Og*F0Z{G@{grSe@mb zE~%eV<~6!aA}{z-YCfPI%Vfqn8(NO^j*Kt}PwRNdZig(2QKf`9?++@S-otOWbhQx= z<)9!9@YtMF9(k0@i5wlU<8WGfmBh2iu)m3&r-A!-@LEni7R5uv;Yx!`S=laotqVrNNng|PWh6d9jbh>Vfkuczfc8&eFgOWz z*%IH=vwbU14-Z5%R#q140PzeChqg?k-Iv@<(_}FD*(vW)A5B>!xr|Zt`Wgt(p2g)h%^brmjKoAh%dowe6q?+r=Hkb ztIemtbnDEOGL}Jv{m=o3Z5gl*@ApA{g?b=wsIlPma9^!4S@TBdHGsW?yMmud#{p%J zz-H%6vXpNjV4?;eCX~H0o*tqbba;&$`OZB#u1CS0+J{HE61N@*BN+a$9aYiRwP~ zN?E__?jfA9Ft3jLU|OcgUGTb(^(=Aa=!c*UUa-a`9gz2sWL#P z7ecfciUqmUn)aPI6h!)PoXRzJ@*3=x>$m}VSol@phiWfy7FJ9+J!JcM zwLys-(P7hvN0Q2M#^E(=&~=9DQoG&mODfB)EgAsBu%EOYJs|)$1t4vsZ<9KLfLh_! z4)c4U@;Q;yobfOr?%2OxrkUB+c`$7m$aIl-k#05`I@3m>i=SN%EmEO{Yg~<%Ve1uX z`Z`>fmlzZ&GQg!kQCOpr(90`e3IJ5-j+X$+*U+9%DnvRll|XGAS``2tLKrn=dKp|d zY*!Mc1uaZ)E2|Fg|Ls{0X(HVv`QFvC1Zc!C-HfQJuu%JG|(Wh{}FxkN!8-YmR%s8Uqw;M{F@b@;^2z8}{6rA*t#;Xm`zV zYww(x={wSm+~(<{kfiU zLKbpXx@K**G+uq(CM5q?Xv;*0{-Ma|?*mro^D=e@wm>v0DL_aqtO9*BJ$uHf<= z$=}Dv9H&$q1xcpdJQb#)fPBu{pwE#4*bk!WpmdHM*ZY9QIz!FwWI8!`%F+Du>;03# zq+84pPeVntO93yJIvg(=Q_Yg`6{B58b53yGT@Srg9Pzv^z5d``l^(YYGWh`8D>=&H zqJyUkEp}R+f6T)K_HAaicf)EAW^Ea+01Xo_Kv6Fn*55x=73o#OVsL}QOnrko2N|96 zeWS}-uF3_95oo-DlGN$?Xmq&e(3iQP7V2)A(mi&W>|-oA)d>&#?|4H^puQ4L16H{K zK|zwL83xAt)*Kg}UXaPG9@x0m>lBUbxjw-fK1B$$UPtd}5|?F+9AA5Rv`N`>q>r|} z%dtUJ=;B$LF{sd7O*X;nnqvcUj0uo6cs4fTDEdY2>xSHshUcbrW7dYOBj&f_*g1{O z$JZaDg_q~^&U!07H`;b&odT81pk}{%Fkn@W`k)nP^AUT~w;o!RLhEv?wK@~+!)+hI zSLNRRIm|Dcz_Bo`M)S`^^S@|kMaU!^9O5QE)k^HuF*(BF^msvsx8E2 z!oubD_*RM5gFPM(kNyrXiGhx!aTn%aiy>#sGxZw0AC*>6GgO$-RAFXI4-^{KA^}}gE7dRliiiVEnbc)*6a$pyi?g>Jvr6|>VS<4v3NDry@fEEYTtAJg+$X1PKZK_ ze1O-@>!6Bv4%dzgD>19EV5Nqj>Z2eoo*(g|>64&hkLbr)oX5CKDnp^*f!MJ| zGy2ao-cY73+IrRQ+zqu(NR24mLat3kr~)2>zgn159&XTkf|||a1wP_KBcgTzR&c-QEE0*?QoFfjA(wzce$A=#^Q2d z$?h;y;gn9etMVe_MSvPFbTAXR`f*u`CzL|IoB)4tW$J(V4{7-Oee47_A`qJxF!>7l zSNq5m47(V1Vb1~p7gu_4RyGHn$gTWqyJqCM76|nE%#J+eB`?f9217fBCvWD2Vj$z+AhLK^6 z6=0?SlmKQ5FjMelOuV83j}Pj zfLVS3v;3Il$4tTB-11M++Uszg*Fi<)i)rrS$|cg+t~a*T^@ZZwp@7FPZj7L|ME