From 26ee304dcb4fa78b820fcef142a19124b6e2f9fb Mon Sep 17 00:00:00 2001 From: GazzD Date: Sat, 11 Apr 2026 15:39:35 +0200 Subject: [PATCH 1/8] [WIP] GNU Stow refactor --- .config | 1 + linux/fastfetch/.config/fastfetch/ascii.txt | 24 + .../fastfetch/.config/fastfetch/config.jsonc | 106 + .../{ => .config/ghostty}/auto/theme.ghostty | 0 linux/ghostty/.config/ghostty/config.ghostty | 8 + linux/ghostty/config.ghostty | 8 - .../hypr}/caelestia/hyprland.conf | 6 +- .../hypr}/caelestia/hyprland/animations.conf | 0 .../hypr}/caelestia/hyprland/decoration.conf | 0 .../hypr}/caelestia/hyprland/env.conf | 0 .../hypr}/caelestia/hyprland/execs.conf | 9 +- .../hypr}/caelestia/hyprland/general.conf | 0 .../hypr}/caelestia/hyprland/gestures.conf | 0 .../hypr}/caelestia/hyprland/group.conf | 0 .../hypr}/caelestia/hyprland/input.conf | 0 .../hypr}/caelestia/hyprland/keybinds.conf | 0 .../hypr}/caelestia/hyprland/misc.conf | 0 .../hypr}/caelestia/hyprland/rules.conf | 0 .../hypr}/caelestia/scheme/current.conf | 0 .../hypr}/caelestia/scheme/default.conf | 0 .../hypr}/caelestia/scripts/wsaction.fish | 0 .../hypr}/caelestia/variables.conf | 0 .../{ => .config/hypr}/default/hyprland.conf | 0 .../hypr}/default/hyprland/binds.conf | 0 .../hypr}/default/hyprland/env.conf | 0 .../hypr}/default/hyprland/exec.conf | 0 .../hypr/default/hyprland}/general.conf | 0 .../hypr/default/hyprland}/input.conf | 0 .../hypr/default/hyprland}/misc.conf | 0 .../hypr/default/hyprland}/monitors.conf | 0 .../hypr/default/hyprland}/rules.conf | 0 .../hypr}/default/scripts/screenshot.sh | 0 linux/hypr/{ => .config/hypr}/hypridle.conf | 0 linux/hypr/.config/hypr/hypridle.conf.new | 26 + linux/hypr/.config/hypr/hyprland.conf | 6 + linux/hypr/.config/hypr/hyprland/colors.conf | 32 + linux/hypr/.config/hypr/hyprland/env.conf | 13 + linux/hypr/.config/hypr/hyprland/execs.conf | 25 + linux/hypr/.config/hypr/hyprland/general.conf | 171 ++ .../hypr/.config/hypr/hyprland/keybinds.conf | 272 +++ linux/hypr/.config/hypr/hyprland/rules.conf | 173 ++ .../ai/license_show-loaded-ollama-models.txt | 201 ++ .../scripts/ai/primary-buffer-query.sh | 43 + .../scripts/ai/show-loaded-ollama-models.sh | 99 + .../hypr/hyprland/scripts/fuzzel-emoji.sh | 1888 +++++++++++++++++ .../scripts/launch_first_available.sh | 7 + .../hypr/hyprland/scripts/snip_to_search.sh | 5 + .../hyprland/scripts/start_geoclue_agent.sh | 30 + .../hypr/hyprland/scripts/workspace_action.sh | 18 + .../.config/hypr/hyprland/scripts/zoom.sh | 54 + .../hypr/hyprland/shellOverrides/main.conf | 0 .../hypr/.config/hypr/hyprland/variables.conf | 23 + linux/hypr/{ => .config/hypr}/hyprlock.conf | 0 linux/hypr/.config/hypr/hyprlock.conf.new | 93 + linux/hypr/.config/hypr/hyprlock/colors.conf | 12 + linux/hypr/.config/hypr/ii/custom/env.conf | 23 + linux/hypr/.config/hypr/ii/custom/execs.conf | 7 + .../hypr/.config/hypr/ii/custom/general.conf | 27 + .../hypr/.config/hypr/ii/custom/keybinds.conf | 62 + linux/hypr/.config/hypr/ii/custom/rules.conf | 12 + .../scripts/__restore_video_wallpaper.sh | 2 + .../.config/hypr/ii/custom/variables.conf | 25 + linux/hypr/.config/hypr/ii/hypridle.conf | 45 + linux/hypr/.config/hypr/ii/hypridle.conf.new | 26 + linux/hypr/.config/hypr/ii/hyprland.conf | 49 + .../hypr/.config/hypr/ii/hyprland/colors.conf | 34 + linux/hypr/.config/hypr/ii/hyprland/env.conf | 13 + .../hypr/.config/hypr/ii/hyprland/execs.conf | 25 + .../.config/hypr/ii/hyprland/general.conf | 171 ++ .../.config/hypr/ii/hyprland/keybinds.conf | 272 +++ .../hypr/.config/hypr/ii/hyprland/rules.conf | 173 ++ .../ai/license_show-loaded-ollama-models.txt | 201 ++ .../scripts/ai/primary-buffer-query.sh | 43 + .../scripts/ai/show-loaded-ollama-models.sh | 99 + .../hypr/ii/hyprland/scripts/fuzzel-emoji.sh | 1888 +++++++++++++++++ .../scripts/launch_first_available.sh | 7 + .../ii/hyprland/scripts/snip_to_search.sh | 5 + .../hyprland/scripts/start_geoclue_agent.sh | 30 + .../ii/hyprland/scripts/workspace_action.sh | 18 + .../.config/hypr/ii/hyprland/scripts/zoom.sh | 54 + .../hypr/ii/hyprland/shellOverrides/main.conf | 0 .../.config/hypr/ii/hyprland/variables.conf | 23 + linux/hypr/.config/hypr/ii/hyprlock.conf | 14 + linux/hypr/.config/hypr/ii/hyprlock.conf.new | 93 + .../hypr/.config/hypr/ii/hyprlock/colors.conf | 12 + linux/hypr/.config/hypr/ii/monitors.conf | 4 + linux/hypr/.config/hypr/ii/monitors.conf.new | 4 + linux/hypr/.config/hypr/ii/workspaces.conf | 4 + linux/hypr/.config/hypr/monitors.conf | 4 + linux/hypr/.config/hypr/monitors.conf.new | 4 + linux/hypr/.config/hypr/scheme/current.conf | 110 + linux/hypr/.config/hypr/workspaces.conf | 4 + linux/hypr/.config/hypr/workspaces.conf.new | 4 + .../2026-02-14_20-10-46/default/binds.conf | 93 - .../2026-02-14_20-10-46/default/env.conf | 9 - .../2026-02-14_20-10-46/default/exec.conf | 14 - .../backups/2026-02-14_20-10-46/hyprland.conf | 35 - linux/hypr/default/hyprland/general.conf | 118 -- linux/hypr/default/hyprland/input.conf | 31 - linux/hypr/default/hyprland/misc.conf | 5 - linux/hypr/default/hyprland/monitors.conf | 10 - linux/hypr/default/hyprland/rules.conf | 39 - linux/hypr/hyprland.conf | 11 - linux/hypr/scheme/current.conf | 120 -- .../.config/illogical-impulse/config.json | 575 +++++ .../illogical-impulse/installed_listfile | 1023 +++++++++ .../.config/illogical-impulse/installed_true | 0 linux/nvim/.config/nvim/LICENSE | 201 ++ linux/nvim/.config/nvim/README.md | 4 + linux/nvim/.config/nvim/init.lua | 2 + linux/nvim/.config/nvim/lazy-lock.json | 34 + linux/nvim/.config/nvim/lazyvim.json | 10 + .../nvim/.config/nvim/lua/config/autocmds.lua | 8 + .../nvim/.config/nvim/lua/config/keymaps.lua | 3 + linux/nvim/.config/nvim/lua/config/lazy.lua | 53 + .../nvim/.config/nvim/lua/config/options.lua | 4 + .../nvim/.config/nvim/lua/plugins/example.lua | 197 ++ linux/nvim/.config/nvim/stylua.toml | 3 + linux/nvim/.gitignore | 8 + linux/nvim/.neoconf.json | 15 + linux/starship/.config/starship.toml | 103 + linux/thunar/.config/Thunar/accels.scm | 126 ++ linux/thunar/.config/Thunar/uca.xml | 15 + linux/zsh/.p10k.zsh | 25 +- linux/zsh/.p10k.zsh.bak | 1840 ++++++++++++++++ linux/zsh/.zshrc | 51 +- 126 files changed, 11194 insertions(+), 535 deletions(-) create mode 120000 .config create mode 100644 linux/fastfetch/.config/fastfetch/ascii.txt create mode 100644 linux/fastfetch/.config/fastfetch/config.jsonc rename linux/ghostty/{ => .config/ghostty}/auto/theme.ghostty (100%) create mode 100644 linux/ghostty/.config/ghostty/config.ghostty delete mode 100644 linux/ghostty/config.ghostty rename linux/hypr/{ => .config/hypr}/caelestia/hyprland.conf (92%) rename linux/hypr/{ => .config/hypr}/caelestia/hyprland/animations.conf (100%) rename linux/hypr/{ => .config/hypr}/caelestia/hyprland/decoration.conf (100%) rename linux/hypr/{ => .config/hypr}/caelestia/hyprland/env.conf (100%) rename linux/hypr/{ => .config/hypr}/caelestia/hyprland/execs.conf (79%) rename linux/hypr/{ => .config/hypr}/caelestia/hyprland/general.conf (100%) rename linux/hypr/{ => .config/hypr}/caelestia/hyprland/gestures.conf (100%) rename linux/hypr/{ => .config/hypr}/caelestia/hyprland/group.conf (100%) rename linux/hypr/{ => .config/hypr}/caelestia/hyprland/input.conf (100%) rename linux/hypr/{ => .config/hypr}/caelestia/hyprland/keybinds.conf (100%) rename linux/hypr/{ => .config/hypr}/caelestia/hyprland/misc.conf (100%) rename linux/hypr/{ => .config/hypr}/caelestia/hyprland/rules.conf (100%) rename linux/hypr/{ => .config/hypr}/caelestia/scheme/current.conf (100%) rename linux/hypr/{ => .config/hypr}/caelestia/scheme/default.conf (100%) rename linux/hypr/{ => .config/hypr}/caelestia/scripts/wsaction.fish (100%) rename linux/hypr/{ => .config/hypr}/caelestia/variables.conf (100%) rename linux/hypr/{ => .config/hypr}/default/hyprland.conf (100%) rename linux/hypr/{ => .config/hypr}/default/hyprland/binds.conf (100%) rename linux/hypr/{ => .config/hypr}/default/hyprland/env.conf (100%) rename linux/hypr/{ => .config/hypr}/default/hyprland/exec.conf (100%) rename linux/hypr/{backups/2026-02-14_20-10-46/default => .config/hypr/default/hyprland}/general.conf (100%) rename linux/hypr/{backups/2026-02-14_20-10-46/default => .config/hypr/default/hyprland}/input.conf (100%) rename linux/hypr/{backups/2026-02-14_20-10-46/default => .config/hypr/default/hyprland}/misc.conf (100%) rename linux/hypr/{backups/2026-02-14_20-10-46/default => .config/hypr/default/hyprland}/monitors.conf (100%) rename linux/hypr/{backups/2026-02-14_20-10-46/default => .config/hypr/default/hyprland}/rules.conf (100%) rename linux/hypr/{ => .config/hypr}/default/scripts/screenshot.sh (100%) rename linux/hypr/{ => .config/hypr}/hypridle.conf (100%) create mode 100644 linux/hypr/.config/hypr/hypridle.conf.new create mode 100644 linux/hypr/.config/hypr/hyprland.conf create mode 100644 linux/hypr/.config/hypr/hyprland/colors.conf create mode 100644 linux/hypr/.config/hypr/hyprland/env.conf create mode 100644 linux/hypr/.config/hypr/hyprland/execs.conf create mode 100644 linux/hypr/.config/hypr/hyprland/general.conf create mode 100644 linux/hypr/.config/hypr/hyprland/keybinds.conf create mode 100644 linux/hypr/.config/hypr/hyprland/rules.conf create mode 100644 linux/hypr/.config/hypr/hyprland/scripts/ai/license_show-loaded-ollama-models.txt create mode 100755 linux/hypr/.config/hypr/hyprland/scripts/ai/primary-buffer-query.sh create mode 100755 linux/hypr/.config/hypr/hyprland/scripts/ai/show-loaded-ollama-models.sh create mode 100755 linux/hypr/.config/hypr/hyprland/scripts/fuzzel-emoji.sh create mode 100755 linux/hypr/.config/hypr/hyprland/scripts/launch_first_available.sh create mode 100755 linux/hypr/.config/hypr/hyprland/scripts/snip_to_search.sh create mode 100755 linux/hypr/.config/hypr/hyprland/scripts/start_geoclue_agent.sh create mode 100755 linux/hypr/.config/hypr/hyprland/scripts/workspace_action.sh create mode 100755 linux/hypr/.config/hypr/hyprland/scripts/zoom.sh create mode 100644 linux/hypr/.config/hypr/hyprland/shellOverrides/main.conf create mode 100644 linux/hypr/.config/hypr/hyprland/variables.conf rename linux/hypr/{ => .config/hypr}/hyprlock.conf (100%) create mode 100644 linux/hypr/.config/hypr/hyprlock.conf.new create mode 100644 linux/hypr/.config/hypr/hyprlock/colors.conf create mode 100644 linux/hypr/.config/hypr/ii/custom/env.conf create mode 100644 linux/hypr/.config/hypr/ii/custom/execs.conf create mode 100644 linux/hypr/.config/hypr/ii/custom/general.conf create mode 100644 linux/hypr/.config/hypr/ii/custom/keybinds.conf create mode 100644 linux/hypr/.config/hypr/ii/custom/rules.conf create mode 100644 linux/hypr/.config/hypr/ii/custom/scripts/__restore_video_wallpaper.sh create mode 100644 linux/hypr/.config/hypr/ii/custom/variables.conf create mode 100644 linux/hypr/.config/hypr/ii/hypridle.conf create mode 100644 linux/hypr/.config/hypr/ii/hypridle.conf.new create mode 100644 linux/hypr/.config/hypr/ii/hyprland.conf create mode 100644 linux/hypr/.config/hypr/ii/hyprland/colors.conf create mode 100644 linux/hypr/.config/hypr/ii/hyprland/env.conf create mode 100644 linux/hypr/.config/hypr/ii/hyprland/execs.conf create mode 100644 linux/hypr/.config/hypr/ii/hyprland/general.conf create mode 100644 linux/hypr/.config/hypr/ii/hyprland/keybinds.conf create mode 100644 linux/hypr/.config/hypr/ii/hyprland/rules.conf create mode 100644 linux/hypr/.config/hypr/ii/hyprland/scripts/ai/license_show-loaded-ollama-models.txt create mode 100755 linux/hypr/.config/hypr/ii/hyprland/scripts/ai/primary-buffer-query.sh create mode 100755 linux/hypr/.config/hypr/ii/hyprland/scripts/ai/show-loaded-ollama-models.sh create mode 100755 linux/hypr/.config/hypr/ii/hyprland/scripts/fuzzel-emoji.sh create mode 100755 linux/hypr/.config/hypr/ii/hyprland/scripts/launch_first_available.sh create mode 100755 linux/hypr/.config/hypr/ii/hyprland/scripts/snip_to_search.sh create mode 100755 linux/hypr/.config/hypr/ii/hyprland/scripts/start_geoclue_agent.sh create mode 100755 linux/hypr/.config/hypr/ii/hyprland/scripts/workspace_action.sh create mode 100755 linux/hypr/.config/hypr/ii/hyprland/scripts/zoom.sh create mode 100644 linux/hypr/.config/hypr/ii/hyprland/shellOverrides/main.conf create mode 100644 linux/hypr/.config/hypr/ii/hyprland/variables.conf create mode 100644 linux/hypr/.config/hypr/ii/hyprlock.conf create mode 100644 linux/hypr/.config/hypr/ii/hyprlock.conf.new create mode 100644 linux/hypr/.config/hypr/ii/hyprlock/colors.conf create mode 100644 linux/hypr/.config/hypr/ii/monitors.conf create mode 100644 linux/hypr/.config/hypr/ii/monitors.conf.new create mode 100644 linux/hypr/.config/hypr/ii/workspaces.conf create mode 100644 linux/hypr/.config/hypr/monitors.conf create mode 100644 linux/hypr/.config/hypr/monitors.conf.new create mode 100644 linux/hypr/.config/hypr/scheme/current.conf create mode 100644 linux/hypr/.config/hypr/workspaces.conf create mode 100644 linux/hypr/.config/hypr/workspaces.conf.new delete mode 100644 linux/hypr/backups/2026-02-14_20-10-46/default/binds.conf delete mode 100644 linux/hypr/backups/2026-02-14_20-10-46/default/env.conf delete mode 100644 linux/hypr/backups/2026-02-14_20-10-46/default/exec.conf delete mode 100644 linux/hypr/backups/2026-02-14_20-10-46/hyprland.conf delete mode 100644 linux/hypr/default/hyprland/general.conf delete mode 100644 linux/hypr/default/hyprland/input.conf delete mode 100644 linux/hypr/default/hyprland/misc.conf delete mode 100644 linux/hypr/default/hyprland/monitors.conf delete mode 100644 linux/hypr/default/hyprland/rules.conf delete mode 100644 linux/hypr/hyprland.conf delete mode 100644 linux/hypr/scheme/current.conf create mode 100644 linux/illogical-impulse/.config/illogical-impulse/config.json create mode 100644 linux/illogical-impulse/.config/illogical-impulse/installed_listfile create mode 100644 linux/illogical-impulse/.config/illogical-impulse/installed_true create mode 100644 linux/nvim/.config/nvim/LICENSE create mode 100644 linux/nvim/.config/nvim/README.md create mode 100644 linux/nvim/.config/nvim/init.lua create mode 100644 linux/nvim/.config/nvim/lazy-lock.json create mode 100644 linux/nvim/.config/nvim/lazyvim.json create mode 100644 linux/nvim/.config/nvim/lua/config/autocmds.lua create mode 100644 linux/nvim/.config/nvim/lua/config/keymaps.lua create mode 100644 linux/nvim/.config/nvim/lua/config/lazy.lua create mode 100644 linux/nvim/.config/nvim/lua/config/options.lua create mode 100644 linux/nvim/.config/nvim/lua/plugins/example.lua create mode 100644 linux/nvim/.config/nvim/stylua.toml create mode 100644 linux/nvim/.gitignore create mode 100644 linux/nvim/.neoconf.json create mode 100644 linux/starship/.config/starship.toml create mode 100644 linux/thunar/.config/Thunar/accels.scm create mode 100644 linux/thunar/.config/Thunar/uca.xml create mode 100644 linux/zsh/.p10k.zsh.bak diff --git a/.config b/.config new file mode 120000 index 0000000..f0353b4 --- /dev/null +++ b/.config @@ -0,0 +1 @@ +linux/hypr/.config \ No newline at end of file diff --git a/linux/fastfetch/.config/fastfetch/ascii.txt b/linux/fastfetch/.config/fastfetch/ascii.txt new file mode 100644 index 0000000..7ff96e6 --- /dev/null +++ b/linux/fastfetch/.config/fastfetch/ascii.txt @@ -0,0 +1,24 @@ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⢀⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠐⠀⣴⣤⡀⠀⢀⣀⣤⠤⠤⠶⠖⠒⠒⠒⠒⠒⠲⠶⠤⢤⣀⡀⣼⣛⣧⠀⢁⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣸⣏⢻⣍⠁⠀⢀⡀⠤⠄⠒⠒⠒⠒⠒⠒⠀⠤⠄⠀⠀⢸⡳⢾⢹⡀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⣠⠖⠋⠀⢯⡞⣎⡆⠁⠀⠀⠀⢀⡀⠀⠤⠤⠤⠤⠄⠀⡀⠀⠀⠻⣽⣻⡌⠹⣄⠀⠐⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⢀⡾⠁⠀⠀⢀⢾⣹⢿⣸⠀⣰⠎⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠆⠹⡿⣏⢆⠈⢷⡀⠀⠆⠀⠀ +⠀⠀⠀⠀⣰⠏⠀⠀⢀⠔⠛⠄⠙⠫⠇⢀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢄⠠⠒⠒⠵⡈⢳⡀⠀⠀⠀ +⠀⠄⠀⡰⠁⠀⠀⢠⠊⠄⠂⠁⠈⠁⠒⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⡀⠀⠀⠀⠀⠈⠀⠀⠀⠀⠀⠄⢳⡀⠈⠀ +⠈⠀⣸⠃⠀⠀⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠀⠀⠐⠀⠀⠐⠀⢀⠀⠀⠀⠀⢷⠀⠀ +⠀⢠⠇⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠀⠀⠀⠀⠀⠰⠀⠀⠀⠀⠀⠀⡄⠀⡀⠆⢰⠀⠀⠀⡄⠀⠀⠀⠸⡄⠀ +⠀⣼⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠉⠀⡄⠀⢀⠀⠀⡄⠂⠆⠀⠀⠀⠀⢁⠀⢁⠀⢸⠀⢇⠀⡇⠀⠀⠀⠀⣧⠀ +⠀⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠰⡃⠄⠈⡄⠀⡇⢀⢰⠀⠀⠀⠀⡼⠀⠸⢰⠀⣤⣅⣁⣴⠀⠀⠀⠀⢻⠀ +⢠⡇⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠱⢀⣁⣤⣧⣴⣧⣄⡇⢸⣸⡄⠀⢀⣆⠀⣦⠊⢹⣿⣿⡛⠻⢿⠀⠀⠀⠀⢸⡇ +⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⣃⠀⠀⢴⣿⠟⠉⢈⣿⣿⣿⡟⠇⠀⠀⠀⠀⠀⠀⢸⣶⣿⣿⡿⣧⠀⢸⡇⠀⢃⠀⢸⡇ +⠈⡇⠀⠀⠀⠀⠀⠀⠀⡀⢉⡄⠀⢸⠁⠀⣷⣾⣿⣿⡟⣿⠀⠀⠀⠀⠀⠀⠀⠀⢧⠙⠋⢁⡟⢀⡦⢧⠀⠸⡇⢸⡇ +⠀⣿⠀⠀⠀⠀⠀⠀⢀⠔⠪⡄⠀⠸⣁⠀⠹⣉⠉⠉⢠⠏⠀⠀⠀⠀⠀⠀⠀⠀⠈⠓⢲⠛⠆⢉⠀⢸⠀⢀⢇⢸⡇ +⠀⢿⠀⠀⠀⠀⠀⢀⠃⡐⠐⣴⠀⠀⠏⠉⠖⠉⠋⡙⠁⠀⠀⠀⠀⠀⠀⢀⠀⠀⠀⢀⡠⠀⠊⠄⠌⢘⠀⠀⠸⢸⠀ +⠀⢸⠀⠀⠀⠀⠀⠈⣆⢃⠘⠘⡀⠀⡸⡘⡐⡐⠠⠁⠀⡴⡖⣲⠒⠊⠉⠉⠉⠙⢿⣤⡇⠀⠀⠀⠈⢐⠀⠀⠁⣿⠀ +⠀⠘⡇⠀⠀⠀⠀⠀⠈⢶⠬⣁⡇⠀⠀⠑⠐⠤⠐⠀⠀⡇⠉⠀⠀⠀⠀⠀⠀⠀⠀⢙⠇⠀⠀⠀⠀⣼⢀⠀⠀⣿⠀ +⠀⠀⣇⠀⠀⠀⢰⠀⠀⠈⠀⠂⡇⠀⠃⢡⠀⠀⠀⠀⠀⠹⡄⠀⠀⠀⠀⠀⠀⠀⣠⠎⠀⠀⢀⡴⡞⡉⠈⠀⠀⣿⠀ +⠀⠀⣹⠀⠀⠀⠀⠀⠀⠀⠀⡀⡇⠀⢰⠈⡷⡀⠀⠀⠀⠀⠸⢶⣀⠀⠀⢀⣰⠎⠁⢀⡶⠏⠁⣈⠆⠁⡀⠰⢸⡇⠀ +⠀⠀⢸⡀⢸⠀⠀⠆⠀⠀⠀⠀⡇⠀⠀⠀⢡⡄⡏⢆⠒⠢⠤⠤⠤⢨⠥⡴⠒⠚⠉⠉⠀⠀⡠⠁⡘⢠⠁⢀⠆⡇⠀ +⠀⠀⢸⡇⠀⡀⠀⠀⠀⠀⢠⢠⠁⠀⠘⡀⠠⣷⠃⠀⠀⠀⠀⠉⢰⠈⢱⠄⡀⡄⠀⢸⠀⠐⠀⠰⠁⠀⠀⡞⠄⣷⠀ +⠀⠀⠀⣷⠀⡇⠀⠀⠀⠸⠀⡈⠀⠀⢂⠃⠀⡄⠇⠀⠀⠀⠀⠀⢔⠳⠀⠀⠣⠍⠒⠤⣰⠁⢠⠃⢠⠀⠀⠅⠀⢻⡀ +⠀⠀⠀⠉⠀⠁⠀⠀⠀⠀⠀⠁⠀⠀⠈⠀⠀⠁⠈⠀⠀⠀⠀⠀⠀⠉⠁⠀⠀⠈⠁⠀⠈⠀⠁⠀⠈⠀⠀⠁⠀⠈⠁ diff --git a/linux/fastfetch/.config/fastfetch/config.jsonc b/linux/fastfetch/.config/fastfetch/config.jsonc new file mode 100644 index 0000000..94a4125 --- /dev/null +++ b/linux/fastfetch/.config/fastfetch/config.jsonc @@ -0,0 +1,106 @@ +// ______ __ ______ __ +// / ____/___ ______/ /_/ ____/___ _/ /_ +// / /_ / __ `/ ___/ __/ / / __ `/ __/ +// / __/ / /_/ (__ ) /_/ /___/ /_/ / /_ +///_/ \__,_/____/\__/\____/\__,_/\__/ +// https://github.com/m3tozz/FastCat +{ + "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", + "logo": { + "source": "~/.config/fastfetch/ascii.txt", + "color": { + "1": "0" + } + }, + "modules": [ + "break", + "break", + { + "type": "os", + "key": "OS ", + "keyColor": "31", // = color1 + }, + { + "type": "kernel", + "key": " ├  ", + "keyColor": "31", + }, + { + "type": "packages", + "format": "{} (pacman)", + "key": " ├ 󰏖 ", + "keyColor": "31", + }, + { + "type": "shell", + "key": " └  ", + "keyColor": "31", + }, + "break", + { + "type": "wm", + "key": "WM ", + "keyColor": "32", + }, + { + "type": "wmtheme", + "key": " ├ 󰉼 ", + "keyColor": "32", + }, + { + "type": "icons", + "key": " ├ 󰀻 ", + "keyColor": "32", + }, + { + "type": "cursor", + "key": " ├  ", + "keyColor": "32", + }, + { + "type": "terminal", + "key": " ├  ", + "keyColor": "32", + }, + { + "type": "terminalfont", + "key": " └  ", + "keyColor": "32", + }, + "break", + { + "type": "cpu", + "format": "{1} ({3}) @ {7} GHz", + "key": "CPU", + "keyColor": "33", + }, + { + "type": "gpu", + "format": "{1} {2} @ {12} GHz", + "key": " ├ 󰢮 ", + "keyColor": "33", + }, + { + "type": "memory", + "key": " ├  ", + "keyColor": "33", + }, + { + "type": "swap", + "key": " ├ 󰓡 ", + "keyColor": "33", + }, + { + "type": "disk", + "key": " ├ 󰋊 ", + "keyColor": "33", + }, + { + "type": "monitor", + "key": " └  ", + "keyColor": "33", + }, + "break", + "break", + ] +} diff --git a/linux/ghostty/auto/theme.ghostty b/linux/ghostty/.config/ghostty/auto/theme.ghostty similarity index 100% rename from linux/ghostty/auto/theme.ghostty rename to linux/ghostty/.config/ghostty/auto/theme.ghostty diff --git a/linux/ghostty/.config/ghostty/config.ghostty b/linux/ghostty/.config/ghostty/config.ghostty new file mode 100644 index 0000000..42e8ab2 --- /dev/null +++ b/linux/ghostty/.config/ghostty/config.ghostty @@ -0,0 +1,8 @@ +theme = "Catppuccin Mocha" + +background-opacity=0.85 + +keybind = ctrl+shift+up=new_split:up +keybind = ctrl+shift+down=new_split:down +keybind = ctrl+shift+left=new_split:left +keybind = ctrl+shift+right=new_split:right diff --git a/linux/ghostty/config.ghostty b/linux/ghostty/config.ghostty deleted file mode 100644 index d5001b1..0000000 --- a/linux/ghostty/config.ghostty +++ /dev/null @@ -1,8 +0,0 @@ -theme = "Catppuccin Mocha" - -background-opacity=0.8 - -keybind = alt+up=new_split:up -keybind = alt+down=new_split:down -keybind = alt+left=new_split:left -keybind = alt+right=new_split:right \ No newline at end of file diff --git a/linux/hypr/caelestia/hyprland.conf b/linux/hypr/.config/hypr/caelestia/hyprland.conf similarity index 92% rename from linux/hypr/caelestia/hyprland.conf rename to linux/hypr/.config/hypr/caelestia/hyprland.conf index 5fc3906..676ef95 100644 --- a/linux/hypr/caelestia/hyprland.conf +++ b/linux/hypr/.config/hypr/caelestia/hyprland.conf @@ -12,11 +12,13 @@ exec = mkdir -p $cConf && touch -a $cConf/hypr-vars.conf source = $cConf/hypr-vars.conf # Default monitor conf -$monitorLeft = DP-1 -$monitorRight = HDMI-A-1 +$monitorLeft = DP-4 +$monitorRight = HDMI-A-2 monitor=$monitorLeft,2560x1440@144,0x0,1 monitor=$monitorRight,1920x1080@60,2560x0,1 monitor=,preferred,auto,auto +#monitor=,preferred,auto,1 + # Configs diff --git a/linux/hypr/caelestia/hyprland/animations.conf b/linux/hypr/.config/hypr/caelestia/hyprland/animations.conf similarity index 100% rename from linux/hypr/caelestia/hyprland/animations.conf rename to linux/hypr/.config/hypr/caelestia/hyprland/animations.conf diff --git a/linux/hypr/caelestia/hyprland/decoration.conf b/linux/hypr/.config/hypr/caelestia/hyprland/decoration.conf similarity index 100% rename from linux/hypr/caelestia/hyprland/decoration.conf rename to linux/hypr/.config/hypr/caelestia/hyprland/decoration.conf diff --git a/linux/hypr/caelestia/hyprland/env.conf b/linux/hypr/.config/hypr/caelestia/hyprland/env.conf similarity index 100% rename from linux/hypr/caelestia/hyprland/env.conf rename to linux/hypr/.config/hypr/caelestia/hyprland/env.conf diff --git a/linux/hypr/caelestia/hyprland/execs.conf b/linux/hypr/.config/hypr/caelestia/hyprland/execs.conf similarity index 79% rename from linux/hypr/caelestia/hyprland/execs.conf rename to linux/hypr/.config/hypr/caelestia/hyprland/execs.conf index af7f2f6..b9f745e 100644 --- a/linux/hypr/caelestia/hyprland/execs.conf +++ b/linux/hypr/.config/hypr/caelestia/hyprland/execs.conf @@ -11,7 +11,7 @@ exec-once = gsettings set org.gnome.desktop.interface cursor-theme '$cursorTheme exec-once = gsettings set org.gnome.desktop.interface cursor-size $cursorSize # Location provider and night light -exec-once = app2unit -- sunsetr +# exec-once = app2unit -- sunsetr # Forward bluetooth media commands to MPRIS exec-once = mpris-proxy @@ -19,10 +19,11 @@ exec-once = mpris-proxy # Resize and move windows based on matches (e.g. pip) exec-once = caelestia resizer -d -exec-once = app2unit -- qs -c overview +exec-once = qs -c overview -# Splir workspace plugin +# Split workspace plugin exec-once = hyprpm reload -n # Start shell -exec-once = bash -lc 'sleep 4; caelestia shell -d' +exec-once = caelestia shell -d +# exec-once = bash -lc 'sleep 4; caelestia shell -d' diff --git a/linux/hypr/caelestia/hyprland/general.conf b/linux/hypr/.config/hypr/caelestia/hyprland/general.conf similarity index 100% rename from linux/hypr/caelestia/hyprland/general.conf rename to linux/hypr/.config/hypr/caelestia/hyprland/general.conf diff --git a/linux/hypr/caelestia/hyprland/gestures.conf b/linux/hypr/.config/hypr/caelestia/hyprland/gestures.conf similarity index 100% rename from linux/hypr/caelestia/hyprland/gestures.conf rename to linux/hypr/.config/hypr/caelestia/hyprland/gestures.conf diff --git a/linux/hypr/caelestia/hyprland/group.conf b/linux/hypr/.config/hypr/caelestia/hyprland/group.conf similarity index 100% rename from linux/hypr/caelestia/hyprland/group.conf rename to linux/hypr/.config/hypr/caelestia/hyprland/group.conf diff --git a/linux/hypr/caelestia/hyprland/input.conf b/linux/hypr/.config/hypr/caelestia/hyprland/input.conf similarity index 100% rename from linux/hypr/caelestia/hyprland/input.conf rename to linux/hypr/.config/hypr/caelestia/hyprland/input.conf diff --git a/linux/hypr/caelestia/hyprland/keybinds.conf b/linux/hypr/.config/hypr/caelestia/hyprland/keybinds.conf similarity index 100% rename from linux/hypr/caelestia/hyprland/keybinds.conf rename to linux/hypr/.config/hypr/caelestia/hyprland/keybinds.conf diff --git a/linux/hypr/caelestia/hyprland/misc.conf b/linux/hypr/.config/hypr/caelestia/hyprland/misc.conf similarity index 100% rename from linux/hypr/caelestia/hyprland/misc.conf rename to linux/hypr/.config/hypr/caelestia/hyprland/misc.conf diff --git a/linux/hypr/caelestia/hyprland/rules.conf b/linux/hypr/.config/hypr/caelestia/hyprland/rules.conf similarity index 100% rename from linux/hypr/caelestia/hyprland/rules.conf rename to linux/hypr/.config/hypr/caelestia/hyprland/rules.conf diff --git a/linux/hypr/caelestia/scheme/current.conf b/linux/hypr/.config/hypr/caelestia/scheme/current.conf similarity index 100% rename from linux/hypr/caelestia/scheme/current.conf rename to linux/hypr/.config/hypr/caelestia/scheme/current.conf diff --git a/linux/hypr/caelestia/scheme/default.conf b/linux/hypr/.config/hypr/caelestia/scheme/default.conf similarity index 100% rename from linux/hypr/caelestia/scheme/default.conf rename to linux/hypr/.config/hypr/caelestia/scheme/default.conf diff --git a/linux/hypr/caelestia/scripts/wsaction.fish b/linux/hypr/.config/hypr/caelestia/scripts/wsaction.fish similarity index 100% rename from linux/hypr/caelestia/scripts/wsaction.fish rename to linux/hypr/.config/hypr/caelestia/scripts/wsaction.fish diff --git a/linux/hypr/caelestia/variables.conf b/linux/hypr/.config/hypr/caelestia/variables.conf similarity index 100% rename from linux/hypr/caelestia/variables.conf rename to linux/hypr/.config/hypr/caelestia/variables.conf diff --git a/linux/hypr/default/hyprland.conf b/linux/hypr/.config/hypr/default/hyprland.conf similarity index 100% rename from linux/hypr/default/hyprland.conf rename to linux/hypr/.config/hypr/default/hyprland.conf diff --git a/linux/hypr/default/hyprland/binds.conf b/linux/hypr/.config/hypr/default/hyprland/binds.conf similarity index 100% rename from linux/hypr/default/hyprland/binds.conf rename to linux/hypr/.config/hypr/default/hyprland/binds.conf diff --git a/linux/hypr/default/hyprland/env.conf b/linux/hypr/.config/hypr/default/hyprland/env.conf similarity index 100% rename from linux/hypr/default/hyprland/env.conf rename to linux/hypr/.config/hypr/default/hyprland/env.conf diff --git a/linux/hypr/default/hyprland/exec.conf b/linux/hypr/.config/hypr/default/hyprland/exec.conf similarity index 100% rename from linux/hypr/default/hyprland/exec.conf rename to linux/hypr/.config/hypr/default/hyprland/exec.conf diff --git a/linux/hypr/backups/2026-02-14_20-10-46/default/general.conf b/linux/hypr/.config/hypr/default/hyprland/general.conf similarity index 100% rename from linux/hypr/backups/2026-02-14_20-10-46/default/general.conf rename to linux/hypr/.config/hypr/default/hyprland/general.conf diff --git a/linux/hypr/backups/2026-02-14_20-10-46/default/input.conf b/linux/hypr/.config/hypr/default/hyprland/input.conf similarity index 100% rename from linux/hypr/backups/2026-02-14_20-10-46/default/input.conf rename to linux/hypr/.config/hypr/default/hyprland/input.conf diff --git a/linux/hypr/backups/2026-02-14_20-10-46/default/misc.conf b/linux/hypr/.config/hypr/default/hyprland/misc.conf similarity index 100% rename from linux/hypr/backups/2026-02-14_20-10-46/default/misc.conf rename to linux/hypr/.config/hypr/default/hyprland/misc.conf diff --git a/linux/hypr/backups/2026-02-14_20-10-46/default/monitors.conf b/linux/hypr/.config/hypr/default/hyprland/monitors.conf similarity index 100% rename from linux/hypr/backups/2026-02-14_20-10-46/default/monitors.conf rename to linux/hypr/.config/hypr/default/hyprland/monitors.conf diff --git a/linux/hypr/backups/2026-02-14_20-10-46/default/rules.conf b/linux/hypr/.config/hypr/default/hyprland/rules.conf similarity index 100% rename from linux/hypr/backups/2026-02-14_20-10-46/default/rules.conf rename to linux/hypr/.config/hypr/default/hyprland/rules.conf diff --git a/linux/hypr/default/scripts/screenshot.sh b/linux/hypr/.config/hypr/default/scripts/screenshot.sh similarity index 100% rename from linux/hypr/default/scripts/screenshot.sh rename to linux/hypr/.config/hypr/default/scripts/screenshot.sh diff --git a/linux/hypr/hypridle.conf b/linux/hypr/.config/hypr/hypridle.conf similarity index 100% rename from linux/hypr/hypridle.conf rename to linux/hypr/.config/hypr/hypridle.conf diff --git a/linux/hypr/.config/hypr/hypridle.conf.new b/linux/hypr/.config/hypr/hypridle.conf.new new file mode 100644 index 0000000..a77bbb2 --- /dev/null +++ b/linux/hypr/.config/hypr/hypridle.conf.new @@ -0,0 +1,26 @@ +$lock_cmd = hyprctl dispatch global quickshell:lock & pidof qs quickshell hyprlock || hyprlock +# $lock_cmd = pidof hyprlock || hyprlock +$suspend_cmd = systemctl suspend || loginctl suspend + +general { + lock_cmd = $lock_cmd + before_sleep_cmd = loginctl lock-session + after_sleep_cmd = hyprctl dispatch global quickshell:lockFocus + inhibit_sleep = 3 +} + +listener { + timeout = 300 # 5mins + on-timeout = loginctl lock-session +} + +listener { + timeout = 600 # 10mins + on-timeout = hyprctl dispatch dpms off + on-resume = hyprctl dispatch dpms on +} + +listener { + timeout = 900 # 15mins + on-timeout = $suspend_cmd +} diff --git a/linux/hypr/.config/hypr/hyprland.conf b/linux/hypr/.config/hypr/hyprland.conf new file mode 100644 index 0000000..6a19a57 --- /dev/null +++ b/linux/hypr/.config/hypr/hyprland.conf @@ -0,0 +1,6 @@ +# This file sources other files in `hyprland` and `custom` folders +# You wanna add your stuff in files in `custom` + +$profile = ii + +source = $profile/hyprland.conf diff --git a/linux/hypr/.config/hypr/hyprland/colors.conf b/linux/hypr/.config/hypr/hyprland/colors.conf new file mode 100644 index 0000000..72aabd2 --- /dev/null +++ b/linux/hypr/.config/hypr/hyprland/colors.conf @@ -0,0 +1,32 @@ +general { + col.active_border = rgba(91909177) + col.inactive_border = rgba(46474755) +} + +misc { + background_color = rgba(121314FF) +} + +plugin { + hyprbars { + # Honestly idk if it works like css, but well, why not + bar_text_font = Google Sans Flex Medium, Rubik, Geist, AR One Sans, Reddit Sans, Inter, Roboto, Ubuntu, Noto Sans, sans-serif + bar_height = 30 + bar_padding = 10 + bar_button_padding = 5 + bar_precedence_over_border = true + bar_part_of_window = true + + bar_color = rgba(121314FF) + col.text = rgba(e3e2e2FF) + + + # example buttons (R -> L) + # hyprbars-button = color, size, on-click + hyprbars-button = rgb(e3e2e2), 13, 󰖭, hyprctl dispatch killactive + hyprbars-button = rgb(e3e2e2), 13, 󰖯, hyprctl dispatch fullscreen 1 + hyprbars-button = rgb(e3e2e2), 13, 󰖰, hyprctl dispatch movetoworkspacesilent special + } +} + +windowrule = border_color rgba(bac9d1AA) rgba(bac9d177), match:pin 1 diff --git a/linux/hypr/.config/hypr/hyprland/env.conf b/linux/hypr/.config/hypr/hyprland/env.conf new file mode 100644 index 0000000..29a171f --- /dev/null +++ b/linux/hypr/.config/hypr/hyprland/env.conf @@ -0,0 +1,13 @@ +# ############ Wayland ############# +env = ELECTRON_OZONE_PLATFORM_HINT,auto + +######### Applications ######### +env = XDG_DATA_DIRS,$HOME/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share + +# ############ Themes ############# +env = QT_QPA_PLATFORM, wayland;xcb +env = QT_QPA_PLATFORMTHEME, kde +env = XDG_MENU_PREFIX, plasma- + +# ######## Virtual envrionment ######### +env = ILLOGICAL_IMPULSE_VIRTUAL_ENV, ~/.local/state/quickshell/.venv diff --git a/linux/hypr/.config/hypr/hyprland/execs.conf b/linux/hypr/.config/hypr/hyprland/execs.conf new file mode 100644 index 0000000..1f4b0e9 --- /dev/null +++ b/linux/hypr/.config/hypr/hyprland/execs.conf @@ -0,0 +1,25 @@ +# Bar, wallpaper +exec-once = ~/.config/hypr/hyprland/scripts/start_geoclue_agent.sh +exec-once = qs -c $qsConfig & +exec-once = ~/.config/hypr/custom/scripts/__restore_video_wallpaper.sh + +# Core components (authentication, lock screen, notification daemon) +exec-once = gnome-keyring-daemon --start --components=secrets +exec-once = hypridle +exec-once = dbus-update-activation-environment --all +exec-once = sleep 1 && dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # Some fix idk + +# Audio +exec-once = easyeffects --hide-window --service-mode + +# Clipboard: history +# exec-once = wl-paste --watch cliphist store & +exec-once = wl-paste --type text --watch bash -c 'cliphist store && qs -c $qsConfig ipc call cliphistService update' +exec-once = wl-paste --type image --watch bash -c 'cliphist store && qs -c $qsConfig ipc call cliphistService update' + +# Cursor +exec-once = hyprctl setcursor Bibata-Modern-Classic 24 + +# Fix dock pinned apps not launching properly (https://github.com/end-4/dots-hyprland/issues/2200) +# This causes https://github.com/end-4/dots-hyprland/issues/2427 +# exec-once = sleep 3.5 && hyprctl reload && sleep 0.5 && touch ~/.config/quickshell/ii/shell.qml diff --git a/linux/hypr/.config/hypr/hyprland/general.conf b/linux/hypr/.config/hypr/hyprland/general.conf new file mode 100644 index 0000000..9a0649c --- /dev/null +++ b/linux/hypr/.config/hypr/hyprland/general.conf @@ -0,0 +1,171 @@ +# MONITOR CONFIG +monitor=,preferred,auto,1 + +gesture = 3, swipe, move, +gesture = 3, pinch, float +gesture = 4, horizontal, workspace +gesture = 4, up, dispatcher, global, quickshell:overviewWorkspacesToggle +gesture = 4, down, dispatcher, global, quickshell:overviewWorkspacesClose +gestures { + workspace_swipe_distance = 700 + workspace_swipe_cancel_ratio = 0.2 + workspace_swipe_min_speed_to_force = 5 + workspace_swipe_direction_lock = true + workspace_swipe_direction_lock_threshold = 10 + workspace_swipe_create_new = true +} + +general { + # Gaps and border + gaps_in = 4 + gaps_out = 5 + gaps_workspaces = 50 + + border_size = 1 + col.active_border = rgba(0DB7D455) + col.inactive_border = rgba(31313600) + resize_on_border = true + + no_focus_fallback = true + + allow_tearing = true # This just allows the `immediate` window rule to work + + snap { + enabled = true + window_gap = 4 + monitor_gap = 5 + respect_gaps = true + } +} + +dwindle { + preserve_split = true + smart_split = false + smart_resizing = false + # precise_mouse_move = true +} + +decoration { + # 2 = circle, higher = squircle, 4 = very obvious squircle + # Clear squircles look really off; we use only extra .4 here to make the rounding feel more continuous + rounding_power = 2 + rounding = 18 + + blur { + enabled = true + xray = true + special = false + new_optimizations = true + size = 10 + passes = 3 + brightness = 1 + noise = 0.05 + contrast = 0.89 + vibrancy = 0.5 + vibrancy_darkness = 0.5 + popups = false + popups_ignorealpha = 0.6 + input_methods = true + input_methods_ignorealpha = 0.8 + } + + shadow { + enabled = true + ignore_window = true + range = 50 + offset = 0 4 + render_power = 10 + color = rgba(00000027) + } + + # Dim + dim_inactive = true + dim_strength = 0.05 + dim_special = 0.2 +} + +animations { + enabled = true + # Curves + bezier = expressiveFastSpatial, 0.42, 1.67, 0.21, 0.90 + bezier = expressiveSlowSpatial, 0.39, 1.29, 0.35, 0.98 + bezier = expressiveDefaultSpatial, 0.38, 1.21, 0.22, 1.00 + bezier = emphasizedDecel, 0.05, 0.7, 0.1, 1 + bezier = emphasizedAccel, 0.3, 0, 0.8, 0.15 + bezier = standardDecel, 0, 0, 0, 1 + bezier = menu_decel, 0.1, 1, 0, 1 + bezier = menu_accel, 0.52, 0.03, 0.72, 0.08 + bezier = stall, 1, -0.1, 0.7, 0.85 + # Configs + # windows + animation = windowsIn, 1, 3, emphasizedDecel, popin 80% + animation = fadeIn, 1, 3, emphasizedDecel + animation = windowsOut, 1, 2, emphasizedDecel, popin 90% + animation = fadeOut, 1, 2, emphasizedDecel + animation = windowsMove, 1, 3, emphasizedDecel, slide + animation = border, 1, 10, emphasizedDecel + # layers + animation = layersIn, 1, 2.7, emphasizedDecel, popin 93% + animation = layersOut, 1, 2.4, menu_accel, popin 94% + # fade + animation = fadeLayersIn, 1, 0.5, menu_decel + animation = fadeLayersOut, 1, 2.7, stall + # workspaces + animation = workspaces, 1, 7, menu_decel, slide + ## specialWorkspace + animation = specialWorkspaceIn, 1, 2.8, emphasizedDecel, slidevert + animation = specialWorkspaceOut, 1, 1.2, emphasizedAccel, slidevert + # zoom + animation = zoomFactor, 1, 3, standardDecel +} + +input { + kb_layout = us + numlock_by_default = true + repeat_delay = 250 + repeat_rate = 35 + + follow_mouse = 1 + off_window_axis_events = 2 + + touchpad { + natural_scroll = yes + disable_while_typing = true + clickfinger_behavior = true + scroll_factor = 0.7 + } +} + +misc { + disable_hyprland_logo = true + disable_splash_rendering = true + vfr = 1 + vrr = 0 + mouse_move_enables_dpms = true + key_press_enables_dpms = true + animate_manual_resizes = false + animate_mouse_windowdragging = false + enable_swallow = false + swallow_regex = (foot|kitty|allacritty|Alacritty) + on_focus_under_fullscreen = 2 + allow_session_lock_restore = true + session_lock_xray = true + initial_workspace_tracking = false + focus_on_activate = true +} + +binds { + scroll_event_delay = 0 + hide_special_on_workspace_change = true +} + +cursor { + zoom_factor = 1 + zoom_rigid = false + zoom_disable_aa = true + hotspot_padding = 1 +} + +xwayland { + force_zero_scaling = true +} diff --git a/linux/hypr/.config/hypr/hyprland/keybinds.conf b/linux/hypr/.config/hypr/hyprland/keybinds.conf new file mode 100644 index 0000000..7b0c4d1 --- /dev/null +++ b/linux/hypr/.config/hypr/hyprland/keybinds.conf @@ -0,0 +1,272 @@ +# Lines ending with `# [hidden]` won't be shown on cheatsheet +# Lines starting with #! are section headings + +# DO NOT REMOVE THIS EXEC OR YOU WON'T BE ABLE TO USE ANY KEYBIND +exec = hyprctl dispatch submap global +# This is required for catchall to work +submap = global + +#! +##! Shell +# These absolutely need to be on top, or they won't work consistently +bindid = Super, Super_L, Toggle search, global, quickshell:searchToggleRelease # Toggle search +bindid = Super, Super_R, Toggle search, global, quickshell:searchToggleRelease # [hidden] Toggle search +bind = Super, Super_L, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill fuzzel || fuzzel # [hidden] Launcher (fallback) +bind = Super, Super_R, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill fuzzel || fuzzel # [hidden] Launcher (fallback) +binditn = Super, catchall, global, quickshell:searchToggleReleaseInterrupt # [hidden] +bind = Ctrl, Super_L, global, quickshell:searchToggleReleaseInterrupt # [hidden] +bind = Ctrl, Super_R, global, quickshell:searchToggleReleaseInterrupt # [hidden] +bind = Super, mouse:272, global, quickshell:searchToggleReleaseInterrupt # [hidden] +bind = Super, mouse:273, global, quickshell:searchToggleReleaseInterrupt # [hidden] +bind = Super, mouse:274, global, quickshell:searchToggleReleaseInterrupt # [hidden] +bind = Super, mouse:275, global, quickshell:searchToggleReleaseInterrupt # [hidden] +bind = Super, mouse:276, global, quickshell:searchToggleReleaseInterrupt # [hidden] +bind = Super, mouse:277, global, quickshell:searchToggleReleaseInterrupt # [hidden] +bind = Super, mouse_up, global, quickshell:searchToggleReleaseInterrupt # [hidden] +bind = Super, mouse_down,global, quickshell:searchToggleReleaseInterrupt # [hidden] + +bindit = ,Super_L, global, quickshell:workspaceNumber # [hidden] +bindit = ,Super_R, global, quickshell:workspaceNumber # [hidden] +bind = Super, Tab, global, quickshell:overviewWorkspacesToggle # Toggle overview +bindd = Super, V, Clipboard history >> clipboard, global, quickshell:overviewClipboardToggle # Clipboard history >> clipboard +bindd = Super, Period, Emoji >> clipboard, global, quickshell:overviewEmojiToggle # Emoji >> clipboard +bind = Super, A, global, quickshell:sidebarLeftToggle # Toggle left sidebar +bind = Super+Alt, A, global, quickshell:sidebarLeftToggleDetach # [hidden] +bind = Super, B, global, quickshell:sidebarLeftToggle # [hidden] +bind = Super, O, global, quickshell:sidebarLeftToggle # [hidden] +bindd = Super, N, Toggle right sidebar, global, quickshell:sidebarRightToggle # Toggle right sidebar +bindd = Super, Slash, Toggle cheatsheet, global, quickshell:cheatsheetToggle # Toggle cheatsheet +bindd = Super, K, Toggle on-screen keyboard, global, quickshell:oskToggle # Toggle on-screen keyboard +bindd = Super, M, Toggle media controls, global, quickshell:mediaControlsToggle # Toggle media controls +bind = Super, G, global, quickshell:overlayToggle # Toggle overlay +bindd = Ctrl+Alt, Delete, Toggle session menu, global, quickshell:sessionToggle # Toggle session menu +bindd = Super, J, Toggle bar, global, quickshell:barToggle # Toggle bar +bind = Ctrl+Alt, Delete, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill wlogout || wlogout -p layer-shell # [hidden] Session menu (fallback) +bind = Shift+Super+Alt, Slash, exec, qs -p ~/.config/quickshell/$qsConfig/welcome.qml # [hidden] Launch welcome app + +bindle=, XF86MonBrightnessUp, exec, qs -c $qsConfig ipc call brightness increment || brightnessctl s 5%+ # [hidden] +bindle=, XF86MonBrightnessDown, exec, qs -c $qsConfig ipc call brightness decrement || brightnessctl s 5%- # [hidden] +bindle=, XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%+ -l 1.5# [hidden] +bindle=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%- # [hidden] + +bindl = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_SINK@ toggle # [hidden] +bindld = Super+Shift,M, Toggle mute, exec, wpctl set-mute @DEFAULT_SINK@ toggle # [hidden] +bindl = Alt ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle # [hidden] +bindl = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle # [hidden] +bindld = Super+Alt,M, Toggle mic, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle # [hidden] +bindd = Ctrl+Super, T, Toggle wallpaper selector, global, quickshell:wallpaperSelectorToggle # Wallpaper selector +bindd = Ctrl+Super+Alt, T, Select random wallpaper, global, quickshell:wallpaperSelectorRandom # Random wallpaper +bindd = Ctrl+Super, T, Change wallpaper, exec, qs -c $qsConfig ipc call TEST_ALIVE || ~/.config/quickshell/$qsConfig/scripts/colors/switchwall.sh # [hidden] Change wallpaper (fallback) +bind = Ctrl+Super, R, exec, killall ydotool qs quickshell; qs -c $qsConfig & # Restart widgets +bind = Ctrl+Super, P, global, quickshell:panelFamilyCycle # Cycle panel family + +##! Utilities +# Screenshot, Record, OCR, Color picker, Clipboard history +bindd = Super, V, Copy clipboard history entry, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill fuzzel || cliphist list | fuzzel --match-mode fzf --dmenu | cliphist decode | wl-copy # [hidden] Clipboard history >> clipboard (fallback) +bindd = Super, Period, Copy an emoji, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill fuzzel || ~/.config/hypr/hyprland/scripts/fuzzel-emoji.sh copy # [hidden] Emoji >> clipboard (fallback) +bind = Super+Shift, S, global, quickshell:regionScreenshot # Screen snip +bind = Super+Shift, S, exec, qs -c $qsConfig ipc call TEST_ALIVE || pidof slurp || hyprshot --freeze --clipboard-only --mode region --silent # [hidden] Screen snip (fallback) +bind = Super+Shift, A, global, quickshell:regionSearch # Google Lens +bind = Super+Shift, A, exec, qs -c $qsConfig ipc call TEST_ALIVE || pidof slurp || ~/.config/hypr/hyprland/scripts/snip_to_search.sh # [hidden] Google Lens (fallback) +# OCR +bind = Super+Shift, X, global, quickshell:regionOcr # Character recognition >> clipboard +bind = Super+Shift, T, global, quickshell:screenTranslate # Translate screen content +bind = Super+Shift, X,exec, qs -c $qsConfig ipc call TEST_ALIVE || pidof slurp || grim -g "$(slurp $SLURP_ARGS)" "/tmp/ocr_image.png" && tesseract "/tmp/ocr_image.png" stdout -l $(tesseract --list-langs | awk 'NR>1{print $1}' | tr '\\n' '+' | sed 's/\\+$/\\n/') | wl-copy && rm "/tmp/ocr_image.png" # [hidden] +# Color picker +bindd = Super+Shift, C, Color picker, exec, hyprpicker -a # Pick color (Hex) >> clipboard +# Recording stuff +bindl = Super+Shift, R, global, quickshell:regionRecord # Record region (no sound) +bindl = Super+Shift, R, exec, qs -c $qsConfig ipc call TEST_ALIVE || ~/.config/quickshell/$qsConfig/scripts/videos/record.sh # [hidden] Record region (no sound) (fallback) +bindl = Super+Alt, R, global, quickshell:regionRecord # [hidden] Record region (no sound) +bindl = Super+Alt, R, exec, qs -c $qsConfig ipc call TEST_ALIVE || ~/.config/quickshell/$qsConfig/scripts/videos/record.sh # [hidden] Record region (no sound) (fallback) +bindl = Ctrl+Alt, R, exec, ~/.config/quickshell/$qsConfig/scripts/videos/record.sh --fullscreen # [hidden] Record screen (no sound) +bindl = Super+Shift+Alt, R, exec, ~/.config/quickshell/$qsConfig/scripts/videos/record.sh --fullscreen --sound # Record screen (with sound) +# Fullscreen screenshot +bindl = ,Print,exec,grim -o "$(hyprctl activeworkspace -j | jq -r '.monitor')" - | wl-copy # Screenshot >> clipboard +bindln = Ctrl,Print, exec, mkdir -p $(xdg-user-dir PICTURES)/Screenshots && grim -o "$(hyprctl activeworkspace -j | jq -r '.monitor')" $(xdg-user-dir PICTURES)/Screenshots/Screenshot_"$(date '+%Y-%m-%d_%H.%M.%S')".png # Screenshot >> clipboard & file +bindln = Ctrl,Print,exec,grim -o "$(hyprctl activeworkspace -j | jq -r '.monitor')" - | wl-copy # [hidden] Screenshot >> clipboard & file (clipboard) +# AI +bindd = Super+Shift+Alt, mouse:273, Generate AI summary for selected text, exec, ~/.config/hypr/hyprland/scripts/ai/primary-buffer-query.sh # [hidden] AI summary for selected text (requires a running ollama model) + +#! +##! Window +# Focusing +bindm = Super, mouse:272, movewindow # Move +bindm = Super, mouse:274, movewindow # [hidden] +bindm = Super, mouse:273, resizewindow # Resize +#/# bind = Super, ←/↑/→/↓,, # Focus in direction +bind = Super, Left, movefocus, l # [hidden] +bind = Super, Right, movefocus, r # [hidden] +bind = Super, Up, movefocus, u # [hidden] +bind = Super, Down, movefocus, d # [hidden] +bind = Super, BracketLeft, movefocus, l # [hidden] +bind = Super, BracketRight, movefocus, r # [hidden] +#/# bind = Super+Shift, ←/↑/→/↓,, # Move in direction +bind = Super+Shift, Left, movewindow, l # [hidden] +bind = Super+Shift, Right, movewindow, r # [hidden] +bind = Super+Shift, Up, movewindow, u # [hidden] +bind = Super+Shift, Down, movewindow, d # [hidden] +bind = Alt, F4, killactive, # [hidden] Close (Windows) +bind = Super, Q, killactive, # Close +bind = Super+Shift+Alt, Q, exec, hyprctl kill # Forcefully zap a window + + +# Window split ratio +#/# binde = Super, ;/',, # Adjust split ratio +binde = Super, Semicolon, layoutmsg, splitratio -0.1 # [hidden] +binde = Super, Apostrophe, layoutmsg, splitratio +0.1 # [hidden] +# Positioning mode +bind = Super+Alt, Space, togglefloating, # Float/Tile +bind = Super, D, fullscreen, 1 # Maximize +bind = Super, F, fullscreen, 0 # Fullscreen +bind = Super+Alt, F, fullscreenstate, 0 3 # Fullscreen spoof +bind = Super, P, pin # Pin + +#/# bind = Super+Alt, Hash,, # Send to workspace # (1, 2, 3,...) +# We use raw keycodes because some keyboard layouts register number keys as different chars. The codes can be verified with `wev` +bind = Super+Alt, code:10, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 1 # [hidden] +bind = Super+Alt, code:11, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 2 # [hidden] +bind = Super+Alt, code:12, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 3 # [hidden] +bind = Super+Alt, code:13, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 4 # [hidden] +bind = Super+Alt, code:14, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 5 # [hidden] +bind = Super+Alt, code:15, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 6 # [hidden] +bind = Super+Alt, code:16, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 7 # [hidden] +bind = Super+Alt, code:17, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 8 # [hidden] +bind = Super+Alt, code:18, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 9 # [hidden] +bind = Super+Alt, code:19, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 10 # [hidden] +# keypad numbers +bind = Super+Alt, code:87, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 1 # [hidden] +bind = Super+Alt, code:88, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 2 # [hidden] +bind = Super+Alt, code:89, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 3 # [hidden] +bind = Super+Alt, code:83, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 4 # [hidden] +bind = Super+Alt, code:84, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 5 # [hidden] +bind = Super+Alt, code:85, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 6 # [hidden] +bind = Super+Alt, code:79, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 7 # [hidden] +bind = Super+Alt, code:80, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 8 # [hidden] +bind = Super+Alt, code:81, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 9 # [hidden] +bind = Super+Alt, code:90, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 10 # [hidden] + +# #/# bind = Super+Shift, Scroll ↑/↓,, # Send to workspace left/right +bind = Super+Shift, mouse_down, movetoworkspace, r-1 # [hidden] +bind = Super+Shift, mouse_up, movetoworkspace, r+1 # [hidden] +bind = Super+Alt, mouse_down, movetoworkspace, -1 # [hidden] +bind = Super+Alt, mouse_up, movetoworkspace, +1 # [hidden] + +#/# bind = Super+Shift, Page_↑/↓,, # Send to workspace left/right +bind = Super+Alt, Page_Down, movetoworkspace, +1 # [hidden] +bind = Super+Alt, Page_Up, movetoworkspace, -1 # [hidden] +bind = Super+Shift, Page_Down, movetoworkspace, r+1 # [hidden] +bind = Super+Shift, Page_Up, movetoworkspace, r-1 # [hidden] +bind = Ctrl+Super+Shift, Right, movetoworkspace, r+1 # [hidden] +bind = Ctrl+Super+Shift, Left, movetoworkspace, r-1 # [hidden] + +bind = Super+Alt, S, movetoworkspacesilent, special # Send to scratchpad + +bind = Ctrl+Super, S, togglespecialworkspace, # [hidden] + +##! Workspace +# Switching +#/# bind = Super, Hash,, # Focus workspace # (1, 2, 3,...) +# We use raw keycodes because some keyboard layouts register number keys as different chars. The codes can be verified with `wev` +bind = Super, code:10, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 1 # [hidden] +bind = Super, code:11, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 2 # [hidden] +bind = Super, code:12, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 3 # [hidden] +bind = Super, code:13, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 4 # [hidden] +bind = Super, code:14, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 5 # [hidden] +bind = Super, code:15, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 6 # [hidden] +bind = Super, code:16, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 7 # [hidden] +bind = Super, code:17, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 8 # [hidden] +bind = Super, code:18, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 9 # [hidden] +bind = Super, code:19, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 10 # [hidden] +# keypad numbers +bindp = Super, code:87, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 1 # [hidden] +bindp = Super, code:88, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 2 # [hidden] +bindp = Super, code:89, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 3 # [hidden] +bindp = Super, code:83, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 4 # [hidden] +bindp = Super, code:84, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 5 # [hidden] +bindp = Super, code:85, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 6 # [hidden] +bindp = Super, code:79, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 7 # [hidden] +bindp = Super, code:80, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 8 # [hidden] +bindp = Super, code:81, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 9 # [hidden] +bindp = Super, code:90, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 10 # [hidden] + +#/# bind = Ctrl+Super, ←/→,, # Focus left/right +bind = Ctrl+Super, Right, workspace, r+1 # [hidden] +bind = Ctrl+Super, Left, workspace, r-1 # [hidden] +#/# bind = Ctrl+Super+Alt, ←/→,, # [hidden] Focus busy left/right +bind = Ctrl+Super+Alt, Right, workspace, m+1 # [hidden] +bind = Ctrl+Super+Alt, Left, workspace, m-1 # [hidden] +#/# bind = Super, Page_↑/↓,, # Focus left/right +bind = Super, Page_Down, workspace, +1 # [hidden] +bind = Super, Page_Up, workspace, -1 # [hidden] +bind = Ctrl+Super, Page_Down, workspace, r+1 # [hidden] +bind = Ctrl+Super, Page_Up, workspace, r-1 # [hidden] +#/# bind = Super, Scroll ↑/↓,, # Focus left/right +bind = Super, mouse_up, workspace, +1 # [hidden] +bind = Super, mouse_down, workspace, -1 # [hidden] +bind = Ctrl+Super, mouse_up, workspace, r+1 # [hidden] +bind = Ctrl+Super, mouse_down, workspace, r-1 # [hidden] +## Special +bind = Super, S, togglespecialworkspace, # Toggle scratchpad +bind = Super, mouse:275, togglespecialworkspace, # [hidden] +bind = Ctrl+Super, BracketLeft, workspace, -1 # [hidden] +bind = Ctrl+Super, BracketRight, workspace, +1 # [hidden] +bind = Ctrl+Super, Up, workspace, r-5 # [hidden] +bind = Ctrl+Super, Down, workspace, r+5 # [hidden] + +##! Virtual machines +bind = Super+Alt, F1, exec, notify-send 'Entered Virtual Machine submap' 'Keybinds disabled. Hit Super+Alt+F1 to escape' -a 'Hyprland' && hyprctl dispatch submap virtual-machine # Disable keybinds +submap = virtual-machine +bind = Super+Alt, F1, exec, notify-send 'Exited Virtual Machine submap' 'Keybinds re-enabled' -a 'Hyprland' && hyprctl dispatch submap global # [hidden] +submap = global + +#! +# Testing +bind = Super+Alt, f11, exec, bash -c 'RANDOM_IMAGE=$(find ~/Pictures -type f | grep -v -i "nipple" | grep -v -i "pussy" | shuf -n 1); ACTION=$(notify-send "Test notification with body image" "This notification should contain your user account image and Discord icon. Oh and here is a random image in your Pictures folder: \"Testing" -a "Hyprland keybind" -p -h "string:image-path:/var/lib/AccountsService/icons/$USER" -t 6000 -i "discord" -A "openImage=Profile image" -A "action2=Open the random image" -A "action3=Useless button"); [[ $ACTION == *openImage ]] && xdg-open "/var/lib/AccountsService/icons/$USER"; [[ $ACTION == *action2 ]] && xdg-open \"$RANDOM_IMAGE\"' # [hidden] +bind = Super+Alt, f12, exec, bash -c 'RANDOM_IMAGE=$(find ~/Pictures -type f | grep -v -i "nipple" | grep -v -i "pussy" | shuf -n 1); ACTION=$(notify-send "Test notification" "This notification should contain a random image in your Pictures folder and Discord icon.\nFlick right to dismiss!" -a "Discord (fake)" -p -h "string:image-path:$RANDOM_IMAGE" -t 6000 -i "discord" -A "openImage=Profile image" -A "action2=Useless button"); [[ $ACTION == *openImage ]] && xdg-open "/var/lib/AccountsService/icons/$USER"' # [hidden] +bind = Super+Alt, Equal, exec, notify-send "Urgent notification" "Ah hell no" -u critical -a 'Hyprland keybind' # [hidden] + +##! Session +bindd = Super, L, Lock, exec, loginctl lock-session # Lock +bindld = Super+Shift, L, Suspend system, exec, systemctl suspend || loginctl suspend # Sleep +# bindl=,switch:on:Lid Switch, exec, systemctl suspend || loginctl suspend # [hidden] Suspend when laptop lid is closed, uncomment if for whatever reason it's not the default behavior +bindd = Ctrl+Shift+Alt+Super, Delete, Shutdown, exec, systemctl poweroff || loginctl poweroff # [hidden] Power off + +##! Screen +# Zoom +binde = Super, Minus, exec, ~/.config/hypr/hyprland/scripts/zoom.sh decrease 0.3 # Zoom out +binde = Super, Equal, exec, ~/.config/hypr/hyprland/scripts/zoom.sh increase 0.3 # Zoom in +# Zoom with keypad +binde = Super, code:82, exec, qs -c $qsConfig ipc call zoom zoomOut # [hidden] Zoom out +binde = Super, code:86, exec, qs -c $qsConfig ipc call zoom zoomIn # [hidden] Zoom in +binde = Super, code:82, exec, qs -c $qsConfig ipc call TEST_ALIVE || ~/.config/hypr/hyprland/scripts/zoom.sh decrease 0.1 # [hidden] Zoom out +binde = Super, code:86, exec, qs -c $qsConfig ipc call TEST_ALIVE || ~/.config/hypr/hyprland/scripts/zoom.sh increase 0.1 # [hidden] Zoom in + +##! Media +bindl= Super+Shift, N, exec, playerctl next || playerctl position `bc <<< "100 * $(playerctl metadata mpris:length) / 1000000 / 100"` # Next track +bindl= ,XF86AudioNext, exec, playerctl next || playerctl position `bc <<< "100 * $(playerctl metadata mpris:length) / 1000000 / 100"` # [hidden] +bindl= ,XF86AudioPrev, exec, playerctl previous # [hidden] +bind = Super+Shift+Alt, mouse:275, exec, playerctl previous # [hidden] +bind = Super+Shift+Alt, mouse:276, exec, playerctl next || playerctl position `bc <<< "100 * $(playerctl metadata mpris:length) / 1000000 / 100"` # [hidden] +bindl= Super+Shift, B, exec, playerctl previous # Previous track +bindl= Super+Shift, P, exec, playerctl play-pause # Play/pause media +bindl= ,XF86AudioPlay, exec, playerctl play-pause # [hidden] +bindl= ,XF86AudioPause, exec, playerctl play-pause # [hidden] + +##! Apps +bind = Super, Return, exec, $terminal # Terminal +bind = Super, T, exec, $terminal # [hidden] (terminal) (alt) +bind = Ctrl+Alt, T, exec, $terminal # [hidden] (terminal) (for Ubuntu people) +bind = Super, E, exec, $fileManager # File manager +bind = Super, W, exec, $browser # Browser +bind = Super, C, exec, $codeEditor # Code editor +bind = Ctrl+Super+Shift+Alt, W, exec, $officeSoftware # Office software +bind = Super, X, exec, $textEditor # Text editor +bind = Ctrl+Super, V, exec, $volumeMixer # Volume mixer +bind = Super, I, exec, $settingsApp # Settings app +bind = Ctrl+Shift, Escape, exec, $taskManager # Task manager + +# Cursed stuff +## Make window not amogus large +bind = Ctrl+Super, Backslash, resizeactive, exact 640 480 # [hidden] + diff --git a/linux/hypr/.config/hypr/hyprland/rules.conf b/linux/hypr/.config/hypr/hyprland/rules.conf new file mode 100644 index 0000000..38e8cf5 --- /dev/null +++ b/linux/hypr/.config/hypr/hyprland/rules.conf @@ -0,0 +1,173 @@ +# ######## Window rules ######## + +# Disable blur for xwayland context menus +windowrule = match:class ^()$, match:title ^()$, no_blur on + +# Disable blur for every window +windowrule = match:class .*, no_blur on + +# Floating +windowrule = match:title ^(Open File)(.*)$, center on +windowrule = match:title ^(Open File)(.*)$, float on +windowrule = match:title ^(Select a File)(.*)$, center on +windowrule = match:title ^(Select a File)(.*)$, float on +windowrule = match:title ^(Choose wallpaper)(.*)$, center on +windowrule = match:title ^(Choose wallpaper)(.*)$, float on +windowrule = match:title ^(Choose wallpaper)(.*)$, size (monitor_w*.60) (monitor_h*.65) +windowrule = match:title ^(Open Folder)(.*)$, center on +windowrule = match:title ^(Open Folder)(.*)$, float on +windowrule = match:title ^(Save As)(.*)$, center on +windowrule = match:title ^(Save As)(.*)$, float on +windowrule = match:title ^(Library)(.*)$, center on +windowrule = match:title ^(Library)(.*)$, float on +windowrule = match:title ^(File Upload)(.*)$, center on +windowrule = match:title ^(File Upload)(.*)$, float on +windowrule = match:title ^(.*)(wants to save)$, center on +windowrule = match:title ^(.*)(wants to save)$, float on +windowrule = match:title ^(.*)(wants to open)$, center on +windowrule = match:title ^(.*)(wants to open)$, float on +windowrule = match:class ^(blueberry\.py)$, float on +windowrule = match:class ^(guifetch)$ , float on # FlafyDev/guifetch +windowrule = match:class ^(pavucontrol)$, float on +windowrule = match:class ^(pavucontrol)$, size (monitor_w*.45) (monitor_h*.45) +windowrule = match:class ^(pavucontrol)$, center on +windowrule = match:class ^(org.pulseaudio.pavucontrol)$, float on +windowrule = match:class ^(org.pulseaudio.pavucontrol)$, size (monitor_w*.45) (monitor_h*.45) +windowrule = match:class ^(org.pulseaudio.pavucontrol)$, center on +windowrule = match:class ^(nm-connection-editor)$, float on +windowrule = match:class ^(nm-connection-editor)$, size (monitor_w*.45) (monitor_h*.45) +windowrule = match:class ^(nm-connection-editor)$, center on +windowrule = match:class .*plasmawindowed.*, float on +windowrule = match:class kcm_.*, float on +windowrule = match:class .*bluedevilwizard, float on +windowrule = match:title .*Welcome, float on +windowrule = match:title ^(illogical-impulse Settings)$, float on +windowrule = match:title .*Shell conflicts.*, float on +windowrule = match:class org.freedesktop.impl.portal.desktop.kde, float on +windowrule = match:class org.freedesktop.impl.portal.desktop.kde, size (monitor_w*.60) (monitor_h*.65) +windowrule = match:class ^(Zotero)$, float on +windowrule = match:class ^(Zotero)$, size (monitor_w*.45) (monitor_h*.45) + +# Move +# kde-material-you-colors spawns a window when changing dark/light theme. This is to make sure it doesn't interfere at all. +windowrule = match:class ^(plasma-changeicons)$, float on +windowrule = match:class ^(plasma-changeicons)$, no_initial_focus on +windowrule = match:class ^(plasma-changeicons)$, move 999999 999999 +# stupid dolphin copy +windowrule = match:title ^(Copying — Dolphin)$, move 40 80 + +# Tiling +windowrule = match:class ^dev\.warp\.Warp$, tile on + +# Picture-in-Picture +windowrule = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, float on +windowrule = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, keep_aspect_ratio on +windowrule = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, move (monitor_w*.73) (monitor_h*.72) +windowrule = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, size (monitor_w*.25) (monitor_h*.25) +windowrule = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, float on +windowrule = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, pin on + +# Screen sharing +windowrule = match:title .*is sharing (a window|your screen).*, float on +windowrule = match:title .*is sharing (a window|your screen).*, pin on +windowrule = match:title .*is sharing (a window|your screen).*, move (monitor_w*.5-window_w*.5) (monitor_h-window_h-12) + +# --- Tearing --- +windowrule = match:title .*\.exe, immediate on +windowrule = match:title .*minecraft.*, immediate on +windowrule = match:class ^(steam_app).*, immediate on + +# Fix Jetbrain IDEs focus/rerendering problem +windowrule = match:class ^jetbrains-.*$, match:float 1, match:title ^$|^\s$|^win\d+$, no_initial_focus on + +# No shadow for tiled windows (matches windows that are not floating). +windowrule = match:float 0, no_shadow on + +# ######## Workspace rules ######## +workspace = special:special, gapsout:30 + +# ######## Layer rules ######## +layerrule = match:namespace .*, xray on +# layerrule = match:namespace .*, no_anim on +layerrule = match:namespace walker, no_anim on +layerrule = match:namespace selection, no_anim on +layerrule = match:namespace overview, no_anim on +layerrule = match:namespace anyrun, no_anim on +layerrule = match:namespace indicator.*, no_anim on +layerrule = match:namespace osk, no_anim on +layerrule = match:namespace hyprpicker, no_anim on + +layerrule = match:namespace noanim, no_anim on +layerrule = match:namespace gtk-layer-shell, blur on +layerrule = match:namespace gtk-layer-shell, ignore_alpha 0 +layerrule = match:namespace launcher, blur on +layerrule = match:namespace launcher, ignore_alpha 0.5 +layerrule = match:namespace notifications, blur on +layerrule = match:namespace notifications, ignore_alpha 0.69 +layerrule = match:namespace logout_dialog # wlogout, blur on + +# ags +layerrule = match:namespace sideleft.*, animation slide left +layerrule = match:namespace sideright.*, animation slide right +layerrule = match:namespace session[0-9]*, blur on +layerrule = match:namespace bar[0-9]*, blur on +layerrule = match:namespace bar[0-9]*, ignore_alpha 0.6 +layerrule = match:namespace barcorner.*, blur on +layerrule = match:namespace barcorner.*, ignore_alpha 0.6 +layerrule = match:namespace dock[0-9]*, blur on +layerrule = match:namespace dock[0-9]*, ignore_alpha 0.6 +layerrule = match:namespace indicator.*, blur on +layerrule = match:namespace indicator.*, ignore_alpha 0.6 +layerrule = match:namespace overview[0-9]*, blur on +layerrule = match:namespace overview[0-9]*, ignore_alpha 0.6 +layerrule = match:namespace cheatsheet[0-9]*, blur on +layerrule = match:namespace cheatsheet[0-9]*, ignore_alpha 0.6 +layerrule = match:namespace sideright[0-9]*, blur on +layerrule = match:namespace sideright[0-9]*, ignore_alpha 0.6 +layerrule = match:namespace sideleft[0-9]*, blur on +layerrule = match:namespace sideleft[0-9]*, ignore_alpha 0.6 +layerrule = match:namespace indicator.*, blur on +layerrule = match:namespace indicator.*, ignore_alpha 0.6 +layerrule = match:namespace osk[0-9]*, blur on +layerrule = match:namespace osk[0-9]*, ignore_alpha 0.6 + +# Quickshell +# Quickshell: illogical-impulse +layerrule = match:namespace quickshell:.*, blur_popups on +layerrule = match:namespace quickshell:.*, blur on +layerrule = match:namespace quickshell:.*, ignore_alpha 0.79 +layerrule = match:namespace quickshell:bar, animation slide +layerrule = match:namespace quickshell:actionCenter, no_anim on +layerrule = match:namespace quickshell:cheatsheet, animation slide bottom +layerrule = match:namespace quickshell:dock, animation slide bottom +layerrule = match:namespace quickshell:screenCorners, animation popin 120% +layerrule = match:namespace quickshell:lockWindowPusher, no_anim on +layerrule = match:namespace quickshell:notificationPopup, animation fade +layerrule = match:namespace quickshell:overlay, no_anim on +layerrule = match:namespace quickshell:overlay, ignore_alpha 1 +layerrule = match:namespace quickshell:overview, no_anim on +layerrule = match:namespace quickshell:osk, animation slide bottom +layerrule = match:namespace quickshell:polkit, no_anim on +layerrule = match:namespace quickshell:popup, xray off # No weird color for bar tooltips (this in theory should suffice) +layerrule = match:namespace quickshell:popup, ignore_alpha 1 # No weird color for bar tooltips (but somehow this is necessary) +layerrule = match:namespace quickshell:mediaControls, ignore_alpha 1 # Same as above +layerrule = match:namespace quickshell:reloadPopup, animation slide +layerrule = match:namespace quickshell:regionSelector, no_anim on +layerrule = match:namespace quickshell:screenshot, no_anim on +layerrule = match:namespace quickshell:session, blur on +layerrule = match:namespace quickshell:session, no_anim on +layerrule = match:namespace quickshell:session, ignore_alpha 0 +layerrule = match:namespace quickshell:sidebarRight, animation slide right +layerrule = match:namespace quickshell:sidebarLeft, animation slide left +layerrule = match:namespace quickshell:verticalBar, animation slide +layerrule = match:namespace quickshell:osk, order -1 +# Quickshell: waffles +layerrule = match:namespace quickshell:wallpaperSelector, animation slide top +layerrule = match:namespace quickshell:wNotificationCenter, no_anim on +layerrule = match:namespace quickshell:wOnScreenDisplay, no_anim on +layerrule = match:namespace quickshell:wStartMenu, no_anim on +layerrule = match:namespace quickshell:wTaskView, ignore_alpha 0 +layerrule = match:namespace quickshell:wTaskView, no_anim on + +# Launchers need to be FAST +layerrule = match:namespace gtk4-layer-shell, no_anim on diff --git a/linux/hypr/.config/hypr/hyprland/scripts/ai/license_show-loaded-ollama-models.txt b/linux/hypr/.config/hypr/hyprland/scripts/ai/license_show-loaded-ollama-models.txt new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/linux/hypr/.config/hypr/hyprland/scripts/ai/license_show-loaded-ollama-models.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/linux/hypr/.config/hypr/hyprland/scripts/ai/primary-buffer-query.sh b/linux/hypr/.config/hypr/hyprland/scripts/ai/primary-buffer-query.sh new file mode 100755 index 0000000..eac998a --- /dev/null +++ b/linux/hypr/.config/hypr/hyprland/scripts/ai/primary-buffer-query.sh @@ -0,0 +1,43 @@ +#!/usr/bin/env bash + +# Default system prompt +SYSTEM_PROMPT="You are a helpful, quick assistant that provides brief and concise explanation \ +to given content in at most 100 characters. If the given content is not in English, translate \ +it to English. If the content is an English word, provide its meaning. If the content is a name, \ +provide some info about it. For a math expression, provide a simplification, \ +each step on a line following this style: \`2x=11 (subtract 7 from both sides)\`. \ +If you do not know the answer, simply say 'No info available'. \ +Only respond for the appropriate case and use as little text as possible.\ +The content:" + +first_loaded_model=$("$(dirname "$0")/show-loaded-ollama-models.sh" -j | jq -r '.[0].model' 2>/dev/null) || first_loaded_model="" +model=${first_loaded_model:-"llama3.2"} + +# Parse command-line arguments +while [[ "$#" -gt 0 ]]; do + case $1 in + --model) model="$2"; shift ;; # Set the model from the flag + *) echo "Unknown parameter: $1"; exit 1 ;; + esac + shift +done + +# Combine the system prompt with the clipboard content +content=$(wl-paste -p | tr '\n' ' ' | head -c 2000) # 2000 char limit to prevent overflow + +# Properly escape content for JSON using jq +prompt_json=$(jq -n --arg system_prompt "$SYSTEM_PROMPT" --arg content "$content" '$system_prompt + " " + $content') + +# Make the API call with the specified or default model +api_payload=$(jq -n --arg model "$model" --argjson prompt "$prompt_json" --argjson stream false \ + '{model: $model, prompt: $prompt, stream: $stream}') +response=$(curl -s http://localhost:11434/api/generate -d "$api_payload" | jq -r '.response' 2>/dev/null) + +# Check if content is a single line and no longer than 30 characters +if [[ ${#content} -le 30 && "$content" != *$'\n'* ]]; then + notify-send --app-name="Text selection query" --expire-time=10000 \ + "$content" "$response" +else + notify-send --app-name="Text selection query" --expire-time=10000 \ + "AI Response" "$response" +fi diff --git a/linux/hypr/.config/hypr/hyprland/scripts/ai/show-loaded-ollama-models.sh b/linux/hypr/.config/hypr/hyprland/scripts/ai/show-loaded-ollama-models.sh new file mode 100755 index 0000000..8dc8878 --- /dev/null +++ b/linux/hypr/.config/hypr/hyprland/scripts/ai/show-loaded-ollama-models.sh @@ -0,0 +1,99 @@ +#!/bin/bash + +# From strikeoncmputrz/LLM_Scripts +# License: Apache-2.0, can be found in the same folder as this script + +# Global Vars +ollama_url=http://localhost +port="11434" +blobs=() +model_name_paths=() + + +#Parse arguments +while [ "$#" -gt 0 ]; do + case $1 in + -h|--help) + echo + echo " Identifies Ollama models running on this operating system by parsing running processes." + echo + echo " Usage: $0 [options]" + echo + echo " Options:" + echo " -j, --json_output Prints result as a json object. Other output disabled. (Default: false)" + echo " -p, --port [port number] Specify Ollama Server port (Default: 11434)" + echo " -u, --ollama_url [url] Specify Ollama Server URL (Default: http://localhost)" + echo + echo " Dependencies: jq" + exit 0 + ;; + -j|--json_output) + json_out=1 + shift 1 + ;; + -u|--ollama_url) + ollama_url=$2 + shift 2 + ;; + -p|--port) + port=$2 + shift 2 + ;; + *) + echo "Unknown option: $1" + exit 1 + ;; + esac +done + +compare_running_models_and_modelfiles() { + json_match=() + json_output=() + local matching_models=() + OLDIFS=$IFS + for ((i=0; i<${#model_name_paths[@]}; i++)); do # Iterate over the array of modelname,blob-path + for blob in "${blobs[@]}"; do + IFS=',', read -ra fields <<< "${model_name_paths[i]}" # Split the string into parts + if [ "${fields[1]}" == "$blob" ]; then # Check if current 'field' matches a blob + matching_models+=( '{ "model": "'"${fields[0]}"'", "path": "'"${fields[1]}"'"}') # Add to list of matching models + fi + done + done + + if [ -z "$json_out" ]; then + echo -e "\nModel Found: \n $(echo ${matching_models[*]} | jq '.' | sed s/[{}]//g) \n" + else + local json_match="${matching_models[*]}" + json_output=$(echo $json_match | jq -c -s .) + echo "$json_output" + fi + IFS=$OLDIFS +} + +get_running_model_paths() { + blobs=$(ps aux | grep -- '--model' | grep -v grep | grep -Po '(?<=--model\s).*' | cut -d ' ' -f1) + if [ -z "$blobs" ]; then + echo -e "\n\n Warning: No running Ollama models detected!\n" + exit 0 + fi +} + +parse_modelfiles() { + if [ -z "$json_out" ]; then + echo -e "\nConnecting to $ollama_url:$port\n" + if [ -z "$(curl -s $ollama_url:$port)" ]; then + echo -e "Could not connect to Ollama. Check the ollama_url parameter and that the server is running\n" + exit 1 + fi + curl -s "$ollama_url:$port" + fi + local models=( $(curl -s "$ollama_url:$port/api/tags" | jq -r '.models[].name') ) + for model in "${models[@]}"; do + local modelfile=$(curl -s "$ollama_url:$port/api/show" -d '{ "name": "'"$model"'", "modelfile": true }' | jq -r '.modelfile') + model_name_paths+=($model,$(echo "$modelfile" | awk '/^FROM/{print $2}')) + done +} + +parse_modelfiles +get_running_model_paths +compare_running_models_and_modelfiles diff --git a/linux/hypr/.config/hypr/hyprland/scripts/fuzzel-emoji.sh b/linux/hypr/.config/hypr/hyprland/scripts/fuzzel-emoji.sh new file mode 100755 index 0000000..7a1b9e1 --- /dev/null +++ b/linux/hypr/.config/hypr/hyprland/scripts/fuzzel-emoji.sh @@ -0,0 +1,1888 @@ +#!/bin/bash +set -euo pipefail + +MODE="${1:-type}" + +emoji="$(sed '1,/^### DATA ###$/d' "$0" | fuzzel --match-mode fzf --dmenu | cut -d ' ' -f 1 | tr -d '\n')" + +case "$MODE" in + type) + wtype "${emoji}" || wl-copy "${emoji}" + ;; + copy) + wl-copy "${emoji}" + ;; + both) + wtype "${emoji}" || true + wl-copy "${emoji}" + ;; + *) + echo "Usage: $0 [type|copy|both]" + exit 1 + ;; +esac +exit +### DATA ### +😀 grinning face face smile happy joy :D grin +😃 grinning face with big eyes face happy joy haha :D :) smile funny +😄 grinning face with smiling eyes face happy joy funny haha laugh like :D :) smile +😁 beaming face with smiling eyes face happy smile joy kawaii +😆 grinning squinting face happy joy lol satisfied haha face glad XD laugh +😅 grinning face with sweat face hot happy laugh sweat smile relief +🤣 rolling on the floor laughing face rolling floor laughing lol haha rofl +😂 face with tears of joy face cry tears weep happy happytears haha +🙂 slightly smiling face face smile +🙃 upside down face face flipped silly smile +😉 winking face face happy mischievous secret ;) smile eye +😊 smiling face with smiling eyes face smile happy flushed crush embarrassed shy joy +😇 smiling face with halo face angel heaven halo +🥰 smiling face with hearts face love like affection valentines infatuation crush hearts adore +😍 smiling face with heart eyes face love like affection valentines infatuation crush heart +🤩 star struck face smile starry eyes grinning +😘 face blowing a kiss face love like affection valentines infatuation kiss +😗 kissing face love like face 3 valentines infatuation kiss +☺️ smiling face face blush massage happiness +😚 kissing face with closed eyes face love like affection valentines infatuation kiss +😙 kissing face with smiling eyes face affection valentines infatuation kiss +😋 face savoring food happy joy tongue smile face silly yummy nom delicious savouring +😛 face with tongue face prank childish playful mischievous smile tongue +😜 winking face with tongue face prank childish playful mischievous smile wink tongue +🤪 zany face face goofy crazy +😝 squinting face with tongue face prank playful mischievous smile tongue +🤑 money mouth face face rich dollar money +🤗 hugging face face smile hug +🤭 face with hand over mouth face whoops shock surprise +🤫 shushing face face quiet shhh +🤔 thinking face face hmmm think consider +🤐 zipper mouth face face sealed zipper secret +🤨 face with raised eyebrow face distrust scepticism disapproval disbelief surprise +😐 neutral face indifference meh :| neutral +😑 expressionless face face indifferent - - meh deadpan +😶 face without mouth face hellokitty +😏 smirking face face smile mean prank smug sarcasm +😒 unamused face indifference bored straight face serious sarcasm unimpressed skeptical dubious side eye +🙄 face with rolling eyes face eyeroll frustrated +😬 grimacing face face grimace teeth +🤥 lying face face lie pinocchio +😌 relieved face face relaxed phew massage happiness +😔 pensive face face sad depressed upset +😪 sleepy face face tired rest nap +🤤 drooling face face +😴 sleeping face face tired sleepy night zzz +😷 face with medical mask face sick ill disease +🤒 face with thermometer sick temperature thermometer cold fever +🤕 face with head bandage injured clumsy bandage hurt +🤢 nauseated face face vomit gross green sick throw up ill +🤮 face vomiting face sick +🤧 sneezing face face gesundheit sneeze sick allergy +🥵 hot face face feverish heat red sweating +🥶 cold face face blue freezing frozen frostbite icicles +🥴 woozy face face dizzy intoxicated tipsy wavy +😵 dizzy face spent unconscious xox dizzy +🤯 exploding head face shocked mind blown +🤠 cowboy hat face face cowgirl hat +🥳 partying face face celebration woohoo +😎 smiling face with sunglasses face cool smile summer beach sunglass +🤓 nerd face face nerdy geek dork +🧐 face with monocle face stuffy wealthy +😕 confused face face indifference huh weird hmmm :/ +😟 worried face face concern nervous :( +🙁 slightly frowning face face frowning disappointed sad upset +☹️ frowning face face sad upset frown +😮 face with open mouth face surprise impressed wow whoa :O +😯 hushed face face woo shh +😲 astonished face face xox surprised poisoned +😳 flushed face face blush shy flattered sex +🥺 pleading face face begging mercy +😦 frowning face with open mouth face aw what +😧 anguished face face stunned nervous +😨 fearful face face scared terrified nervous oops huh +😰 anxious face with sweat face nervous sweat +😥 sad but relieved face face phew sweat nervous +😢 crying face face tears sad depressed upset :'( +😭 loudly crying face face cry tears sad upset depressed sob +😱 face screaming in fear face munch scared omg +😖 confounded face face confused sick unwell oops :S +😣 persevering face face sick no upset oops +😞 disappointed face face sad upset depressed :( +😓 downcast face with sweat face hot sad tired exercise +😩 weary face face tired sleepy sad frustrated upset +😫 tired face sick whine upset frustrated +🥱 yawning face tired sleepy +😤 face with steam from nose face gas phew proud pride +😡 pouting face angry mad hate despise +😠 angry face mad face annoyed frustrated +🤬 face with symbols on mouth face swearing cursing cussing profanity expletive +😈 smiling face with horns devil horns +👿 angry face with horns devil angry horns +💀 skull dead skeleton creepy death +☠️ skull and crossbones poison danger deadly scary death pirate evil +💩 pile of poo hankey shitface fail turd shit +🤡 clown face face +👹 ogre monster red mask halloween scary creepy devil demon japanese ogre +👺 goblin red evil mask monster scary creepy japanese goblin +👻 ghost halloween spooky scary +👽 alien UFO paul weird outer space +👾 alien monster game arcade play +🤖 robot computer machine bot +😺 grinning cat animal cats happy smile +😸 grinning cat with smiling eyes animal cats smile +😹 cat with tears of joy animal cats haha happy tears +😻 smiling cat with heart eyes animal love like affection cats valentines heart +😼 cat with wry smile animal cats smirk +😽 kissing cat animal cats kiss +🙀 weary cat animal cats munch scared scream +😿 crying cat animal tears weep sad cats upset cry +😾 pouting cat animal cats +🙈 see no evil monkey monkey animal nature haha +🙉 hear no evil monkey animal monkey nature +🙊 speak no evil monkey monkey animal nature omg +💋 kiss mark face lips love like affection valentines +💌 love letter email like affection envelope valentines +💘 heart with arrow love like heart affection valentines +💝 heart with ribbon love valentines +💖 sparkling heart love like affection valentines +💗 growing heart like love affection valentines pink +💓 beating heart love like affection valentines pink heart +💞 revolving hearts love like affection valentines +💕 two hearts love like affection valentines heart +💟 heart decoration purple-square love like +❣️ heart exclamation decoration love +💔 broken heart sad sorry break heart heartbreak +❤️ red heart love like valentines +🧡 orange heart love like affection valentines +💛 yellow heart love like affection valentines +💚 green heart love like affection valentines +💙 blue heart love like affection valentines +💜 purple heart love like affection valentines +🤎 brown heart coffee +🖤 black heart evil +🤍 white heart pure +💯 hundred points score perfect numbers century exam quiz test pass hundred +💢 anger symbol angry mad +💥 collision bomb explode explosion collision blown +💫 dizzy star sparkle shoot magic +💦 sweat droplets water drip oops +💨 dashing away wind air fast shoo fart smoke puff +🕳️ hole embarrassing +💣 bomb boom explode explosion terrorism +💬 speech balloon bubble words message talk chatting +👁️‍🗨️ eye in speech bubble info +🗨️ left speech bubble words message talk chatting +🗯️ right anger bubble caption speech thinking mad +💭 thought balloon bubble cloud speech thinking dream +💤 zzz sleepy tired dream +👋 waving hand hands gesture goodbye solong farewell hello hi palm +🤚 raised back of hand fingers raised backhand +🖐️ hand with fingers splayed hand fingers palm +✋ raised hand fingers stop highfive palm ban +🖖 vulcan salute hand fingers spock star trek +👌 ok hand fingers limbs perfect ok okay +🤏 pinching hand tiny small size +✌️ victory hand fingers ohyeah hand peace victory two +🤞 crossed fingers good lucky +🤟 love you gesture hand fingers gesture +🤘 sign of the horns hand fingers evil eye sign of horns rock on +🤙 call me hand hands gesture shaka +👈 backhand index pointing left direction fingers hand left +👉 backhand index pointing right fingers hand direction right +👆 backhand index pointing up fingers hand direction up +🖕 middle finger hand fingers rude middle flipping +👇 backhand index pointing down fingers hand direction down +☝️ index pointing up hand fingers direction up +👍 thumbs up thumbsup yes awesome good agree accept cool hand like +1 +👎 thumbs down thumbsdown no dislike hand -1 +✊ raised fist fingers hand grasp +👊 oncoming fist angry violence fist hit attack hand +🤛 left facing fist hand fistbump +🤜 right facing fist hand fistbump +👏 clapping hands hands praise applause congrats yay +🙌 raising hands gesture hooray yea celebration hands +👐 open hands fingers butterfly hands open +🤲 palms up together hands gesture cupped prayer +🤝 handshake agreement shake +🙏 folded hands please hope wish namaste highfive pray +✍️ writing hand lower left ballpoint pen stationery write compose +💅 nail polish beauty manicure finger fashion nail +🤳 selfie camera phone +💪 flexed biceps arm flex hand summer strong biceps +🦾 mechanical arm accessibility +🦿 mechanical leg accessibility +🦵 leg kick limb +🦶 foot kick stomp +👂 ear face hear sound listen +🦻 ear with hearing aid accessibility +👃 nose smell sniff +🧠 brain smart intelligent +🦷 tooth teeth dentist +🦴 bone skeleton +👀 eyes look watch stalk peek see +👁️ eye face look see watch stare +👅 tongue mouth playful +👄 mouth mouth kiss +👶 baby child boy girl toddler +🧒 child gender-neutral young +👦 boy man male guy teenager +👧 girl female woman teenager +🧑 person gender-neutral person +👱 person blond hair hairstyle +👨 man mustache father dad guy classy sir moustache +🧔 man beard person bewhiskered +👨‍🦰 man red hair hairstyle +👨‍🦱 man curly hair hairstyle +👨‍🦳 man white hair old elder +👨‍🦲 man bald hairless +👩 woman female girls lady +👩‍🦰 woman red hair hairstyle +🧑‍🦰 person red hair hairstyle +👩‍🦱 woman curly hair hairstyle +🧑‍🦱 person curly hair hairstyle +👩‍🦳 woman white hair old elder +🧑‍🦳 person white hair elder old +👩‍🦲 woman bald hairless +🧑‍🦲 person bald hairless +👱‍♀️ woman blond hair woman female girl blonde person +👱‍♂️ man blond hair man male boy blonde guy person +🧓 older person human elder senior gender-neutral +👴 old man human male men old elder senior +👵 old woman human female women lady old elder senior +🙍 person frowning worried +🙍‍♂️ man frowning male boy man sad depressed discouraged unhappy +🙍‍♀️ woman frowning female girl woman sad depressed discouraged unhappy +🙎 person pouting upset +🙎‍♂️ man pouting male boy man +🙎‍♀️ woman pouting female girl woman +🙅 person gesturing no decline +🙅‍♂️ man gesturing no male boy man nope +🙅‍♀️ woman gesturing no female girl woman nope +🙆 person gesturing ok agree +🙆‍♂️ man gesturing ok men boy male blue human man +🙆‍♀️ woman gesturing ok women girl female pink human woman +💁 person tipping hand information +💁‍♂️ man tipping hand male boy man human information +💁‍♀️ woman tipping hand female girl woman human information +🙋 person raising hand question +🙋‍♂️ man raising hand male boy man +🙋‍♀️ woman raising hand female girl woman +🧏 deaf person accessibility +🧏‍♂️ deaf man accessibility +🧏‍♀️ deaf woman accessibility +🙇 person bowing respectiful +🙇‍♂️ man bowing man male boy +🙇‍♀️ woman bowing woman female girl +🤦 person facepalming disappointed +🤦‍♂️ man facepalming man male boy disbelief +🤦‍♀️ woman facepalming woman female girl disbelief +🤷 person shrugging regardless +🤷‍♂️ man shrugging man male boy confused indifferent doubt +🤷‍♀️ woman shrugging woman female girl confused indifferent doubt +🧑‍⚕️ health worker hospital +👨‍⚕️ man health worker doctor nurse therapist healthcare man human +👩‍⚕️ woman health worker doctor nurse therapist healthcare woman human +🧑‍🎓 student learn +👨‍🎓 man student graduate man human +👩‍🎓 woman student graduate woman human +🧑‍🏫 teacher professor +👨‍🏫 man teacher instructor professor man human +👩‍🏫 woman teacher instructor professor woman human +🧑‍⚖️ judge law +👨‍⚖️ man judge justice court man human +👩‍⚖️ woman judge justice court woman human +🧑‍🌾 farmer crops +👨‍🌾 man farmer rancher gardener man human +👩‍🌾 woman farmer rancher gardener woman human +🧑‍🍳 cook food kitchen culinary +👨‍🍳 man cook chef man human +👩‍🍳 woman cook chef woman human +🧑‍🔧 mechanic worker technician +👨‍🔧 man mechanic plumber man human wrench +👩‍🔧 woman mechanic plumber woman human wrench +🧑‍🏭 factory worker labor +👨‍🏭 man factory worker assembly industrial man human +👩‍🏭 woman factory worker assembly industrial woman human +🧑‍💼 office worker business +👨‍💼 man office worker business manager man human +👩‍💼 woman office worker business manager woman human +🧑‍🔬 scientist chemistry +👨‍🔬 man scientist biologist chemist engineer physicist man human +👩‍🔬 woman scientist biologist chemist engineer physicist woman human +🧑‍💻 technologist computer +👨‍💻 man technologist coder developer engineer programmer software man human laptop computer +👩‍💻 woman technologist coder developer engineer programmer software woman human laptop computer +🧑‍🎤 singer song artist performer +👨‍🎤 man singer rockstar entertainer man human +👩‍🎤 woman singer rockstar entertainer woman human +🧑‍🎨 artist painting draw creativity +👨‍🎨 man artist painter man human +👩‍🎨 woman artist painter woman human +🧑‍✈️ pilot fly plane airplane +👨‍✈️ man pilot aviator plane man human +👩‍✈️ woman pilot aviator plane woman human +🧑‍🚀 astronaut outerspace +👨‍🚀 man astronaut space rocket man human +👩‍🚀 woman astronaut space rocket woman human +🧑‍🚒 firefighter fire +👨‍🚒 man firefighter fireman man human +👩‍🚒 woman firefighter fireman woman human +👮 police officer cop +👮‍♂️ man police officer man police law legal enforcement arrest 911 +👮‍♀️ woman police officer woman police law legal enforcement arrest 911 female +🕵️ detective human spy detective +🕵️‍♂️ man detective crime +🕵️‍♀️ woman detective human spy detective female woman +💂 guard protect +💂‍♂️ man guard uk gb british male guy royal +💂‍♀️ woman guard uk gb british female royal woman +👷 construction worker labor build +👷‍♂️ man construction worker male human wip guy build construction worker labor +👷‍♀️ woman construction worker female human wip build construction worker labor woman +🤴 prince boy man male crown royal king +👸 princess girl woman female blond crown royal queen +👳 person wearing turban headdress +👳‍♂️ man wearing turban male indian hinduism arabs +👳‍♀️ woman wearing turban female indian hinduism arabs woman +👲 man with skullcap male boy chinese +🧕 woman with headscarf female hijab mantilla tichel +🤵 man in tuxedo couple marriage wedding groom +👰 bride with veil couple marriage wedding woman bride +🤰 pregnant woman baby +🤱 breast feeding nursing baby +👼 baby angel heaven wings halo +🎅 santa claus festival man male xmas father christmas +🤶 mrs claus woman female xmas mother christmas +🦸 superhero marvel +🦸‍♂️ man superhero man male good hero superpowers +🦸‍♀️ woman superhero woman female good heroine superpowers +🦹 supervillain marvel +🦹‍♂️ man supervillain man male evil bad criminal hero superpowers +🦹‍♀️ woman supervillain woman female evil bad criminal heroine superpowers +🧙 mage magic +🧙‍♂️ man mage man male mage sorcerer +🧙‍♀️ woman mage woman female mage witch +🧚 fairy wings magical +🧚‍♂️ man fairy man male +🧚‍♀️ woman fairy woman female +🧛 vampire blood twilight +🧛‍♂️ man vampire man male dracula +🧛‍♀️ woman vampire woman female +🧜 merperson sea +🧜‍♂️ merman man male triton +🧜‍♀️ mermaid woman female merwoman ariel +🧝 elf magical +🧝‍♂️ man elf man male +🧝‍♀️ woman elf woman female +🧞 genie magical wishes +🧞‍♂️ man genie man male +🧞‍♀️ woman genie woman female +🧟 zombie dead +🧟‍♂️ man zombie man male dracula undead walking dead +🧟‍♀️ woman zombie woman female undead walking dead +💆 person getting massage relax +💆‍♂️ man getting massage male boy man head +💆‍♀️ woman getting massage female girl woman head +💇 person getting haircut hairstyle +💇‍♂️ man getting haircut male boy man +💇‍♀️ woman getting haircut female girl woman +🚶 person walking move +🚶‍♂️ man walking human feet steps +🚶‍♀️ woman walking human feet steps woman female +🧍 person standing still +🧍‍♂️ man standing still +🧍‍♀️ woman standing still +🧎 person kneeling pray respectful +🧎‍♂️ man kneeling pray respectful +🧎‍♀️ woman kneeling respectful pray +🧑‍🦯 person with probing cane blind +👨‍🦯 man with probing cane blind +👩‍🦯 woman with probing cane blind +🧑‍🦼 person in motorized wheelchair disability accessibility +👨‍🦼 man in motorized wheelchair disability accessibility +👩‍🦼 woman in motorized wheelchair disability accessibility +🧑‍🦽 person in manual wheelchair disability accessibility +👨‍🦽 man in manual wheelchair disability accessibility +👩‍🦽 woman in manual wheelchair disability accessibility +🏃 person running move +🏃‍♂️ man running man walking exercise race running +🏃‍♀️ woman running woman walking exercise race running female +💃 woman dancing female girl woman fun +🕺 man dancing male boy fun dancer +🕴️ man in suit levitating suit business levitate hover jump +👯 people with bunny ears perform costume +👯‍♂️ men with bunny ears male bunny men boys +👯‍♀️ women with bunny ears female bunny women girls +🧖 person in steamy room relax spa +🧖‍♂️ man in steamy room male man spa steamroom sauna +🧖‍♀️ woman in steamy room female woman spa steamroom sauna +🧗 person climbing sport +🧗‍♂️ man climbing sports hobby man male rock +🧗‍♀️ woman climbing sports hobby woman female rock +🤺 person fencing sports fencing sword +🏇 horse racing animal betting competition gambling luck +⛷️ skier sports winter snow +🏂 snowboarder sports winter +🏌️ person golfing sports business +🏌️‍♂️ man golfing sport +🏌️‍♀️ woman golfing sports business woman female +🏄 person surfing sport sea +🏄‍♂️ man surfing sports ocean sea summer beach +🏄‍♀️ woman surfing sports ocean sea summer beach woman female +🚣 person rowing boat sport move +🚣‍♂️ man rowing boat sports hobby water ship +🚣‍♀️ woman rowing boat sports hobby water ship woman female +🏊 person swimming sport pool +🏊‍♂️ man swimming sports exercise human athlete water summer +🏊‍♀️ woman swimming sports exercise human athlete water summer woman female +⛹️ person bouncing ball sports human +⛹️‍♂️ man bouncing ball sport +⛹️‍♀️ woman bouncing ball sports human woman female +🏋️ person lifting weights sports training exercise +🏋️‍♂️ man lifting weights sport +🏋️‍♀️ woman lifting weights sports training exercise woman female +🚴 person biking sport move +🚴‍♂️ man biking sports bike exercise hipster +🚴‍♀️ woman biking sports bike exercise hipster woman female +🚵 person mountain biking sport move +🚵‍♂️ man mountain biking transportation sports human race bike +🚵‍♀️ woman mountain biking transportation sports human race bike woman female +🤸 person cartwheeling sport gymnastic +🤸‍♂️ man cartwheeling gymnastics +🤸‍♀️ woman cartwheeling gymnastics +🤼 people wrestling sport +🤼‍♂️ men wrestling sports wrestlers +🤼‍♀️ women wrestling sports wrestlers +🤽 person playing water polo sport +🤽‍♂️ man playing water polo sports pool +🤽‍♀️ woman playing water polo sports pool +🤾 person playing handball sport +🤾‍♂️ man playing handball sports +🤾‍♀️ woman playing handball sports +🤹 person juggling performance balance +🤹‍♂️ man juggling juggle balance skill multitask +🤹‍♀️ woman juggling juggle balance skill multitask +🧘 person in lotus position meditate +🧘‍♂️ man in lotus position man male meditation yoga serenity zen mindfulness +🧘‍♀️ woman in lotus position woman female meditation yoga serenity zen mindfulness +🛀 person taking bath clean shower bathroom +🛌 person in bed bed rest +🧑‍🤝‍🧑 people holding hands friendship +👭 women holding hands pair friendship couple love like female people human +👫 woman and man holding hands pair people human love date dating like affection valentines marriage +👬 men holding hands pair couple love like bromance friendship people human +💏 kiss pair valentines love like dating marriage +👩‍❤️‍💋‍👨 kiss woman man love +👨‍❤️‍💋‍👨 kiss man man pair valentines love like dating marriage +👩‍❤️‍💋‍👩 kiss woman woman pair valentines love like dating marriage +💑 couple with heart pair love like affection human dating valentines marriage +👩‍❤️‍👨 couple with heart woman man love +👨‍❤️‍👨 couple with heart man man pair love like affection human dating valentines marriage +👩‍❤️‍👩 couple with heart woman woman pair love like affection human dating valentines marriage +👪 family home parents child mom dad father mother people human +👨‍👩‍👦 family man woman boy love +👨‍👩‍👧 family man woman girl home parents people human child +👨‍👩‍👧‍👦 family man woman girl boy home parents people human children +👨‍👩‍👦‍👦 family man woman boy boy home parents people human children +👨‍👩‍👧‍👧 family man woman girl girl home parents people human children +👨‍👨‍👦 family man man boy home parents people human children +👨‍👨‍👧 family man man girl home parents people human children +👨‍👨‍👧‍👦 family man man girl boy home parents people human children +👨‍👨‍👦‍👦 family man man boy boy home parents people human children +👨‍👨‍👧‍👧 family man man girl girl home parents people human children +👩‍👩‍👦 family woman woman boy home parents people human children +👩‍👩‍👧 family woman woman girl home parents people human children +👩‍👩‍👧‍👦 family woman woman girl boy home parents people human children +👩‍👩‍👦‍👦 family woman woman boy boy home parents people human children +👩‍👩‍👧‍👧 family woman woman girl girl home parents people human children +👨‍👦 family man boy home parent people human child +👨‍👦‍👦 family man boy boy home parent people human children +👨‍👧 family man girl home parent people human child +👨‍👧‍👦 family man girl boy home parent people human children +👨‍👧‍👧 family man girl girl home parent people human children +👩‍👦 family woman boy home parent people human child +👩‍👦‍👦 family woman boy boy home parent people human children +👩‍👧 family woman girl home parent people human child +👩‍👧‍👦 family woman girl boy home parent people human children +👩‍👧‍👧 family woman girl girl home parent people human children +🗣️ speaking head user person human sing say talk +👤 bust in silhouette user person human +👥 busts in silhouette user person human group team +👣 footprints feet tracking walking beach +🐵 monkey face animal nature circus +🐒 monkey animal nature banana circus +🦍 gorilla animal nature circus +🦧 orangutan animal +🐶 dog face animal friend nature woof puppy pet faithful +🐕 dog animal nature friend doge pet faithful +🦮 guide dog animal blind +🐕‍🦺 service dog blind animal +🐩 poodle dog animal 101 nature pet +🐺 wolf animal nature wild +🦊 fox animal nature face +🦝 raccoon animal nature +🐱 cat face animal meow nature pet kitten +🐈 cat animal meow pet cats +🦁 lion animal nature +🐯 tiger face animal cat danger wild nature roar +🐅 tiger animal nature roar +🐆 leopard animal nature +🐴 horse face animal brown nature +🐎 horse animal gamble luck +🦄 unicorn animal nature mystical +🦓 zebra animal nature stripes safari +🦌 deer animal nature horns venison +🐮 cow face beef ox animal nature moo milk +🐂 ox animal cow beef +🐃 water buffalo animal nature ox cow +🐄 cow beef ox animal nature moo milk +🐷 pig face animal oink nature +🐖 pig animal nature +🐗 boar animal nature +🐽 pig nose animal oink +🐏 ram animal sheep nature +🐑 ewe animal nature wool shipit +🐐 goat animal nature +🐪 camel animal hot desert hump +🐫 two hump camel animal nature hot desert hump +🦙 llama animal nature alpaca +🦒 giraffe animal nature spots safari +🐘 elephant animal nature nose th circus +🦏 rhinoceros animal nature horn +🦛 hippopotamus animal nature +🐭 mouse face animal nature cheese wedge rodent +🐁 mouse animal nature rodent +🐀 rat animal mouse rodent +🐹 hamster animal nature +🐰 rabbit face animal nature pet spring magic bunny +🐇 rabbit animal nature pet magic spring +🐿️ chipmunk animal nature rodent squirrel +🦔 hedgehog animal nature spiny +🦇 bat animal nature blind vampire +🐻 bear animal nature wild +🐨 koala animal nature +🐼 panda animal nature panda +🦥 sloth animal +🦦 otter animal +🦨 skunk animal +🦘 kangaroo animal nature australia joey hop marsupial +🦡 badger animal nature honey +🐾 paw prints animal tracking footprints dog cat pet feet +🦃 turkey animal bird +🐔 chicken animal cluck nature bird +🐓 rooster animal nature chicken +🐣 hatching chick animal chicken egg born baby bird +🐤 baby chick animal chicken bird +🐥 front facing baby chick animal chicken baby bird +🐦 bird animal nature fly tweet spring +🐧 penguin animal nature +🕊️ dove animal bird +🦅 eagle animal nature bird +🦆 duck animal nature bird mallard +🦢 swan animal nature bird +🦉 owl animal nature bird hoot +🦩 flamingo animal +🦚 peacock animal nature peahen bird +🦜 parrot animal nature bird pirate talk +🐸 frog animal nature croak toad +🐊 crocodile animal nature reptile lizard alligator +🐢 turtle animal slow nature tortoise +🦎 lizard animal nature reptile +🐍 snake animal evil nature hiss python +🐲 dragon face animal myth nature chinese green +🐉 dragon animal myth nature chinese green +🦕 sauropod animal nature dinosaur brachiosaurus brontosaurus diplodocus extinct +🦖 t rex animal nature dinosaur tyrannosaurus extinct +🐳 spouting whale animal nature sea ocean +🐋 whale animal nature sea ocean +🐬 dolphin animal nature fish sea ocean flipper fins beach +🐟 fish animal food nature +🐠 tropical fish animal swim ocean beach nemo +🐡 blowfish animal nature food sea ocean +🦈 shark animal nature fish sea ocean jaws fins beach +🐙 octopus animal creature ocean sea nature beach +🐚 spiral shell nature sea beach +🐌 snail slow animal shell +🦋 butterfly animal insect nature caterpillar +🐛 bug animal insect nature worm +🐜 ant animal insect nature bug +🐝 honeybee animal insect nature bug spring honey +🐞 lady beetle animal insect nature ladybug +🦗 cricket animal cricket chirp +🕷️ spider animal arachnid +🕸️ spider web animal insect arachnid silk +🦂 scorpion animal arachnid +🦟 mosquito animal nature insect malaria +🦠 microbe amoeba bacteria germs virus +💐 bouquet flowers nature spring +🌸 cherry blossom nature plant spring flower +💮 white flower japanese spring +🏵️ rosette flower decoration military +🌹 rose flowers valentines love spring +🥀 wilted flower plant nature flower +🌺 hibiscus plant vegetable flowers beach +🌻 sunflower nature plant fall +🌼 blossom nature flowers yellow +🌷 tulip flowers plant nature summer spring +🌱 seedling plant nature grass lawn spring +🌲 evergreen tree plant nature +🌳 deciduous tree plant nature +🌴 palm tree plant vegetable nature summer beach mojito tropical +🌵 cactus vegetable plant nature +🌾 sheaf of rice nature plant +🌿 herb vegetable plant medicine weed grass lawn +☘️ shamrock vegetable plant nature irish clover +🍀 four leaf clover vegetable plant nature lucky irish +🍁 maple leaf nature plant vegetable ca fall +🍂 fallen leaf nature plant vegetable leaves +🍃 leaf fluttering in wind nature plant tree vegetable grass lawn spring +🍇 grapes fruit food wine +🍈 melon fruit nature food +🍉 watermelon fruit food picnic summer +🍊 tangerine food fruit nature orange +🍋 lemon fruit nature +🍌 banana fruit food monkey +🍍 pineapple fruit nature food +🥭 mango fruit food tropical +🍎 red apple fruit mac school +🍏 green apple fruit nature +🍐 pear fruit nature food +🍑 peach fruit nature food +🍒 cherries food fruit +🍓 strawberry fruit food nature +🥝 kiwi fruit fruit food +🍅 tomato fruit vegetable nature food +🥥 coconut fruit nature food palm +🥑 avocado fruit food +🍆 eggplant vegetable nature food aubergine +🥔 potato food tuber vegatable starch +🥕 carrot vegetable food orange +🌽 ear of corn food vegetable plant +🌶️ hot pepper food spicy chilli chili +🥒 cucumber fruit food pickle +🥬 leafy green food vegetable plant bok choy cabbage kale lettuce +🥦 broccoli fruit food vegetable +🧄 garlic food spice cook +🧅 onion cook food spice +🍄 mushroom plant vegetable +🥜 peanuts food nut +🌰 chestnut food squirrel +🍞 bread food wheat breakfast toast +🥐 croissant food bread french +🥖 baguette bread food bread french +🥨 pretzel food bread twisted +🥯 bagel food bread bakery schmear +🥞 pancakes food breakfast flapjacks hotcakes +🧇 waffle food breakfast +🧀 cheese wedge food chadder +🍖 meat on bone good food drumstick +🍗 poultry leg food meat drumstick bird chicken turkey +🥩 cut of meat food cow meat cut chop lambchop porkchop +🥓 bacon food breakfast pork pig meat +🍔 hamburger meat fast food beef cheeseburger mcdonalds burger king +🍟 french fries chips snack fast food +🍕 pizza food party +🌭 hot dog food frankfurter +🥪 sandwich food lunch bread +🌮 taco food mexican +🌯 burrito food mexican +🥙 stuffed flatbread food flatbread stuffed gyro +🧆 falafel food +🥚 egg food chicken breakfast +🍳 cooking food breakfast kitchen egg +🥘 shallow pan of food food cooking casserole paella +🍲 pot of food food meat soup +🥣 bowl with spoon food breakfast cereal oatmeal porridge +🥗 green salad food healthy lettuce +🍿 popcorn food movie theater films snack +🧈 butter food cook +🧂 salt condiment shaker +🥫 canned food food soup +🍱 bento box food japanese box +🍘 rice cracker food japanese +🍙 rice ball food japanese +🍚 cooked rice food china asian +🍛 curry rice food spicy hot indian +🍜 steaming bowl food japanese noodle chopsticks +🍝 spaghetti food italian noodle +🍠 roasted sweet potato food nature +🍢 oden food japanese +🍣 sushi food fish japanese rice +🍤 fried shrimp food animal appetizer summer +🍥 fish cake with swirl food japan sea beach narutomaki pink swirl kamaboko surimi ramen +🥮 moon cake food autumn +🍡 dango food dessert sweet japanese barbecue meat +🥟 dumpling food empanada pierogi potsticker +🥠 fortune cookie food prophecy +🥡 takeout box food leftovers +🦀 crab animal crustacean +🦞 lobster animal nature bisque claws seafood +🦐 shrimp animal ocean nature seafood +🦑 squid animal nature ocean sea +🦪 oyster food +🍦 soft ice cream food hot dessert summer +🍧 shaved ice hot dessert summer +🍨 ice cream food hot dessert +🍩 doughnut food dessert snack sweet donut +🍪 cookie food snack oreo chocolate sweet dessert +🎂 birthday cake food dessert cake +🍰 shortcake food dessert +🧁 cupcake food dessert bakery sweet +🥧 pie food dessert pastry +🍫 chocolate bar food snack dessert sweet +🍬 candy snack dessert sweet lolly +🍭 lollipop food snack candy sweet +🍮 custard dessert food +🍯 honey pot bees sweet kitchen +🍼 baby bottle food container milk +🥛 glass of milk beverage drink cow +☕ hot beverage beverage caffeine latte espresso coffee +🍵 teacup without handle drink bowl breakfast green british +🍶 sake wine drink drunk beverage japanese alcohol booze +🍾 bottle with popping cork drink wine bottle celebration +🍷 wine glass drink beverage drunk alcohol booze +🍸 cocktail glass drink drunk alcohol beverage booze mojito +🍹 tropical drink beverage cocktail summer beach alcohol booze mojito +🍺 beer mug relax beverage drink drunk party pub summer alcohol booze +🍻 clinking beer mugs relax beverage drink drunk party pub summer alcohol booze +🥂 clinking glasses beverage drink party alcohol celebrate cheers wine champagne toast +🥃 tumbler glass drink beverage drunk alcohol liquor booze bourbon scotch whisky glass shot +🥤 cup with straw drink soda +🧃 beverage box drink +🧉 mate drink tea beverage +🧊 ice water cold +🥢 chopsticks food +🍽️ fork and knife with plate food eat meal lunch dinner restaurant +🍴 fork and knife cutlery kitchen +🥄 spoon cutlery kitchen tableware +🔪 kitchen knife knife blade cutlery kitchen weapon +🏺 amphora vase jar +🌍 globe showing europe africa globe world international +🌎 globe showing americas globe world USA international +🌏 globe showing asia australia globe world east international +🌐 globe with meridians earth international world internet interweb i18n +🗺️ world map location direction +🗾 map of japan nation country japanese asia +🧭 compass magnetic navigation orienteering +🏔️ snow capped mountain photo nature environment winter cold +⛰️ mountain photo nature environment +🌋 volcano photo nature disaster +🗻 mount fuji photo mountain nature japanese +🏕️ camping photo outdoors tent +🏖️ beach with umbrella weather summer sunny sand mojito +🏜️ desert photo warm saharah +🏝️ desert island photo tropical mojito +🏞️ national park photo environment nature +🏟️ stadium photo place sports concert venue +🏛️ classical building art culture history +🏗️ building construction wip working progress +🧱 brick bricks +🏘️ houses buildings photo +🏚️ derelict house abandon evict broken building +🏠 house building home +🏡 house with garden home plant nature +🏢 office building building bureau work +🏣 japanese post office building envelope communication +🏤 post office building email +🏥 hospital building health surgery doctor +🏦 bank building money sales cash business enterprise +🏨 hotel building accomodation checkin +🏩 love hotel like affection dating +🏪 convenience store building shopping groceries +🏫 school building student education learn teach +🏬 department store building shopping mall +🏭 factory building industry pollution smoke +🏯 japanese castle photo building +🏰 castle building royalty history +💒 wedding love like affection couple marriage bride groom +🗼 tokyo tower photo japanese +🗽 statue of liberty american newyork +⛪ church building religion christ +🕌 mosque islam worship minaret +🛕 hindu temple religion +🕍 synagogue judaism worship temple jewish +⛩️ shinto shrine temple japan kyoto +🕋 kaaba mecca mosque islam +⛲ fountain photo summer water fresh +⛺ tent photo camping outdoors +🌁 foggy photo mountain +🌃 night with stars evening city downtown +🏙️ cityscape photo night life urban +🌄 sunrise over mountains view vacation photo +🌅 sunrise morning view vacation photo +🌆 cityscape at dusk photo evening sky buildings +🌇 sunset photo good morning dawn +🌉 bridge at night photo sanfrancisco +♨️ hot springs bath warm relax +🎠 carousel horse photo carnival +🎡 ferris wheel photo carnival londoneye +🎢 roller coaster carnival playground photo fun +💈 barber pole hair salon style +🎪 circus tent festival carnival party +🚂 locomotive transportation vehicle train +🚃 railway car transportation vehicle +🚄 high speed train transportation vehicle +🚅 bullet train transportation vehicle speed fast public travel +🚆 train transportation vehicle +🚇 metro transportation blue-square mrt underground tube +🚈 light rail transportation vehicle +🚉 station transportation vehicle public +🚊 tram transportation vehicle +🚝 monorail transportation vehicle +🚞 mountain railway transportation vehicle +🚋 tram car transportation vehicle carriage public travel +🚌 bus car vehicle transportation +🚍 oncoming bus vehicle transportation +🚎 trolleybus bart transportation vehicle +🚐 minibus vehicle car transportation +🚑 ambulance health 911 hospital +🚒 fire engine transportation cars vehicle +🚓 police car vehicle cars transportation law legal enforcement +🚔 oncoming police car vehicle law legal enforcement 911 +🚕 taxi uber vehicle cars transportation +🚖 oncoming taxi vehicle cars uber +🚗 automobile red transportation vehicle +🚘 oncoming automobile car vehicle transportation +🚙 sport utility vehicle transportation vehicle +🚚 delivery truck cars transportation +🚛 articulated lorry vehicle cars transportation express +🚜 tractor vehicle car farming agriculture +🏎️ racing car sports race fast formula f1 +🏍️ motorcycle race sports fast +🛵 motor scooter vehicle vespa sasha +🦽 manual wheelchair accessibility +🦼 motorized wheelchair accessibility +🛺 auto rickshaw move transportation +🚲 bicycle sports bicycle exercise hipster +🛴 kick scooter vehicle kick razor +🛹 skateboard board +🚏 bus stop transportation wait +🛣️ motorway road cupertino interstate highway +🛤️ railway track train transportation +🛢️ oil drum barrell +⛽ fuel pump gas station petroleum +🚨 police car light police ambulance 911 emergency alert error pinged law legal +🚥 horizontal traffic light transportation signal +🚦 vertical traffic light transportation driving +🛑 stop sign stop +🚧 construction wip progress caution warning +⚓ anchor ship ferry sea boat +⛵ sailboat ship summer transportation water sailing +🛶 canoe boat paddle water ship +🚤 speedboat ship transportation vehicle summer +🛳️ passenger ship yacht cruise ferry +⛴️ ferry boat ship yacht +🛥️ motor boat ship +🚢 ship transportation titanic deploy +✈️ airplane vehicle transportation flight fly +🛩️ small airplane flight transportation fly vehicle +🛫 airplane departure airport flight landing +🛬 airplane arrival airport flight boarding +🪂 parachute fly glide +💺 seat sit airplane transport bus flight fly +🚁 helicopter transportation vehicle fly +🚟 suspension railway vehicle transportation +🚠 mountain cableway transportation vehicle ski +🚡 aerial tramway transportation vehicle ski +🛰️ satellite communication gps orbit spaceflight NASA ISS +🚀 rocket launch ship staffmode NASA outer space outer space fly +🛸 flying saucer transportation vehicle ufo +🛎️ bellhop bell service +🧳 luggage packing travel +⌛ hourglass done time clock oldschool limit exam quiz test +⏳ hourglass not done oldschool time countdown +⌚ watch time accessories +⏰ alarm clock time wake +⏱️ stopwatch time deadline +⏲️ timer clock alarm +🕰️ mantelpiece clock time +🕛 twelve o clock time noon midnight midday late early schedule +🕧 twelve thirty time late early schedule +🕐 one o clock time late early schedule +🕜 one thirty time late early schedule +🕑 two o clock time late early schedule +🕝 two thirty time late early schedule +🕒 three o clock time late early schedule +🕞 three thirty time late early schedule +🕓 four o clock time late early schedule +🕟 four thirty time late early schedule +🕔 five o clock time late early schedule +🕠 five thirty time late early schedule +🕕 six o clock time late early schedule dawn dusk +🕡 six thirty time late early schedule +🕖 seven o clock time late early schedule +🕢 seven thirty time late early schedule +🕗 eight o clock time late early schedule +🕣 eight thirty time late early schedule +🕘 nine o clock time late early schedule +🕤 nine thirty time late early schedule +🕙 ten o clock time late early schedule +🕥 ten thirty time late early schedule +🕚 eleven o clock time late early schedule +🕦 eleven thirty time late early schedule +🌑 new moon nature twilight planet space night evening sleep +🌒 waxing crescent moon nature twilight planet space night evening sleep +🌓 first quarter moon nature twilight planet space night evening sleep +🌔 waxing gibbous moon nature night sky gray twilight planet space evening sleep +🌕 full moon nature yellow twilight planet space night evening sleep +🌖 waning gibbous moon nature twilight planet space night evening sleep waxing gibbous moon +🌗 last quarter moon nature twilight planet space night evening sleep +🌘 waning crescent moon nature twilight planet space night evening sleep +🌙 crescent moon night sleep sky evening magic +🌚 new moon face nature twilight planet space night evening sleep +🌛 first quarter moon face nature twilight planet space night evening sleep +🌜 last quarter moon face nature twilight planet space night evening sleep +🌡️ thermometer weather temperature hot cold +☀️ sun weather nature brightness summer beach spring +🌝 full moon face nature twilight planet space night evening sleep +🌞 sun with face nature morning sky +🪐 ringed planet outerspace +⭐ star night yellow +🌟 glowing star night sparkle awesome good magic +🌠 shooting star night photo +🌌 milky way photo space stars +☁️ cloud weather sky +⛅ sun behind cloud weather nature cloudy morning fall spring +⛈️ cloud with lightning and rain weather lightning +🌤️ sun behind small cloud weather +🌥️ sun behind large cloud weather +🌦️ sun behind rain cloud weather +🌧️ cloud with rain weather +🌨️ cloud with snow weather +🌩️ cloud with lightning weather thunder +🌪️ tornado weather cyclone twister +🌫️ fog weather +🌬️ wind face gust air +🌀 cyclone weather swirl blue cloud vortex spiral whirlpool spin tornado hurricane typhoon +🌈 rainbow nature happy unicorn face photo sky spring +🌂 closed umbrella weather rain drizzle +☂️ umbrella weather spring +☔ umbrella with rain drops rainy weather spring +⛱️ umbrella on ground weather summer +⚡ high voltage thunder weather lightning bolt fast +❄️ snowflake winter season cold weather christmas xmas +☃️ snowman winter season cold weather christmas xmas frozen +⛄ snowman without snow winter season cold weather christmas xmas frozen without snow +☄️ comet space +🔥 fire hot cook flame +💧 droplet water drip faucet spring +🌊 water wave sea water wave nature tsunami disaster +🎃 jack o lantern halloween light pumpkin creepy fall +🎄 christmas tree festival vacation december xmas celebration +🎆 fireworks photo festival carnival congratulations +🎇 sparkler stars night shine +🧨 firecracker dynamite boom explode explosion explosive +✨ sparkles stars shine shiny cool awesome good magic +🎈 balloon party celebration birthday circus +🎉 party popper party congratulations birthday magic circus celebration tada +🎊 confetti ball festival party birthday circus +🎋 tanabata tree plant nature branch summer +🎍 pine decoration plant nature vegetable panda pine decoration +🎎 japanese dolls japanese toy kimono +🎏 carp streamer fish japanese koinobori carp banner +🎐 wind chime nature ding spring bell +🎑 moon viewing ceremony photo japan asia tsukimi +🧧 red envelope gift +🎀 ribbon decoration pink girl bowtie +🎁 wrapped gift present birthday christmas xmas +🎗️ reminder ribbon sports cause support awareness +🎟️ admission tickets sports concert entrance +🎫 ticket event concert pass +🎖️ military medal award winning army +🏆 trophy win award contest place ftw ceremony +🏅 sports medal award winning +🥇 1st place medal award winning first +🥈 2nd place medal award second +🥉 3rd place medal award third +⚽ soccer ball sports football +⚾ baseball sports balls +🥎 softball sports balls +🏀 basketball sports balls NBA +🏐 volleyball sports balls +🏈 american football sports balls NFL +🏉 rugby football sports team +🎾 tennis sports balls green +🥏 flying disc sports frisbee ultimate +🎳 bowling sports fun play +🏏 cricket game sports +🏑 field hockey sports +🏒 ice hockey sports +🥍 lacrosse sports ball stick +🏓 ping pong sports pingpong +🏸 badminton sports +🥊 boxing glove sports fighting +🥋 martial arts uniform judo karate taekwondo +🥅 goal net sports +⛳ flag in hole sports business flag hole summer +⛸️ ice skate sports +🎣 fishing pole food hobby summer +🤿 diving mask sport ocean +🎽 running shirt play pageant +🎿 skis sports winter cold snow +🛷 sled sleigh luge toboggan +🥌 curling stone sports +🎯 direct hit game play bar target bullseye +🪀 yo yo toy +🪁 kite wind fly +🎱 pool 8 ball pool hobby game luck magic +🔮 crystal ball disco party magic circus fortune teller +🧿 nazar amulet bead charm +🎮 video game play console PS4 Wii GameCube controller +🕹️ joystick game play +🎰 slot machine bet gamble vegas fruit machine luck casino +🎲 game die dice random tabletop play luck +🧩 puzzle piece interlocking puzzle piece +🧸 teddy bear plush stuffed +♠️ spade suit poker cards suits magic +♥️ heart suit poker cards magic suits +♦️ diamond suit poker cards magic suits +♣️ club suit poker cards magic suits +♟️ chess pawn expendable +🃏 joker poker cards game play magic +🀄 mahjong red dragon game play chinese kanji +🎴 flower playing cards game sunset red +🎭 performing arts acting theater drama +🖼️ framed picture photography +🎨 artist palette design paint draw colors +🧵 thread needle sewing spool string +🧶 yarn ball crochet knit +👓 glasses fashion accessories eyesight nerdy dork geek +🕶️ sunglasses face cool accessories +🥽 goggles eyes protection safety +🥼 lab coat doctor experiment scientist chemist +🦺 safety vest protection +👔 necktie shirt suitup formal fashion cloth business +👕 t shirt fashion cloth casual shirt tee +👖 jeans fashion shopping +🧣 scarf neck winter clothes +🧤 gloves hands winter clothes +🧥 coat jacket +🧦 socks stockings clothes +👗 dress clothes fashion shopping +👘 kimono dress fashion women female japanese +🥻 sari dress +🩱 one piece swimsuit fashion +🩲 briefs clothing +🩳 shorts clothing +👙 bikini swimming female woman girl fashion beach summer +👚 woman s clothes fashion shopping bags female +👛 purse fashion accessories money sales shopping +👜 handbag fashion accessory accessories shopping +👝 clutch bag bag accessories shopping +🛍️ shopping bags mall buy purchase +🎒 backpack student education bag backpack +👞 man s shoe fashion male +👟 running shoe shoes sports sneakers +🥾 hiking boot backpacking camping hiking +🥿 flat shoe ballet slip-on slipper +👠 high heeled shoe fashion shoes female pumps stiletto +👡 woman s sandal shoes fashion flip flops +🩰 ballet shoes dance +👢 woman s boot shoes fashion +👑 crown king kod leader royalty lord +👒 woman s hat fashion accessories female lady spring +🎩 top hat magic gentleman classy circus +🎓 graduation cap school college degree university graduation cap hat legal learn education +🧢 billed cap cap baseball +⛑️ rescue worker s helmet construction build +📿 prayer beads dhikr religious +💄 lipstick female girl fashion woman +💍 ring wedding propose marriage valentines diamond fashion jewelry gem engagement +💎 gem stone blue ruby diamond jewelry +🔇 muted speaker sound volume silence quiet +🔈 speaker low volume sound volume silence broadcast +🔉 speaker medium volume volume speaker broadcast +🔊 speaker high volume volume noise noisy speaker broadcast +📢 loudspeaker volume sound +📣 megaphone sound speaker volume +📯 postal horn instrument music +🔔 bell sound notification christmas xmas chime +🔕 bell with slash sound volume mute quiet silent +🎼 musical score treble clef compose +🎵 musical note score tone sound +🎶 musical notes music score +🎙️ studio microphone sing recording artist talkshow +🎚️ level slider scale +🎛️ control knobs dial +🎤 microphone sound music PA sing talkshow +🎧 headphone music score gadgets +📻 radio communication music podcast program +🎷 saxophone music instrument jazz blues +🎸 guitar music instrument +🎹 musical keyboard piano instrument compose +🎺 trumpet music brass +🎻 violin music instrument orchestra symphony +🪕 banjo music instructment +🥁 drum music instrument drumsticks snare +📱 mobile phone technology apple gadgets dial +📲 mobile phone with arrow iphone incoming +☎️ telephone technology communication dial telephone +📞 telephone receiver technology communication dial +📟 pager bbcall oldschool 90s +📠 fax machine communication technology +🔋 battery power energy sustain +🔌 electric plug charger power +💻 laptop technology laptop screen display monitor +🖥️ desktop computer technology computing screen +🖨️ printer paper ink +⌨️ keyboard technology computer type input text +🖱️ computer mouse click +🖲️ trackball technology trackpad +💽 computer disk technology record data disk 90s +💾 floppy disk oldschool technology save 90s 80s +💿 optical disk technology dvd disk disc 90s +📀 dvd cd disk disc +🧮 abacus calculation +🎥 movie camera film record +🎞️ film frames movie +📽️ film projector video tape record movie +🎬 clapper board movie film record +📺 television technology program oldschool show television +📷 camera gadgets photography +📸 camera with flash photography gadgets +📹 video camera film record +📼 videocassette record video oldschool 90s 80s +🔍 magnifying glass tilted left search zoom find detective +🔎 magnifying glass tilted right search zoom find detective +🕯️ candle fire wax +💡 light bulb light electricity idea +🔦 flashlight dark camping sight night +🏮 red paper lantern light paper halloween spooky +🪔 diya lamp lighting +📔 notebook with decorative cover classroom notes record paper study +📕 closed book read library knowledge textbook learn +📖 open book book read library knowledge literature learn study +📗 green book read library knowledge study +📘 blue book read library knowledge learn study +📙 orange book read library knowledge textbook study +📚 books literature library study +📓 notebook stationery record notes paper study +📒 ledger notes paper +📃 page with curl documents office paper +📜 scroll documents ancient history paper +📄 page facing up documents office paper information +📰 newspaper press headline +🗞️ rolled up newspaper press headline +📑 bookmark tabs favorite save order tidy +🔖 bookmark favorite label save +🏷️ label sale tag +💰 money bag dollar payment coins sale +💴 yen banknote money sales japanese dollar currency +💵 dollar banknote money sales bill currency +💶 euro banknote money sales dollar currency +💷 pound banknote british sterling money sales bills uk england currency +💸 money with wings dollar bills payment sale +💳 credit card money sales dollar bill payment shopping +🧾 receipt accounting expenses +💹 chart increasing with yen green-square graph presentation stats +💱 currency exchange money sales dollar travel +💲 heavy dollar sign money sales payment currency buck +✉️ envelope letter postal inbox communication +📧 e mail communication inbox +📨 incoming envelope email inbox +📩 envelope with arrow email communication +📤 outbox tray inbox email +📥 inbox tray email documents +📦 package mail gift cardboard box moving +📫 closed mailbox with raised flag email inbox communication +📪 closed mailbox with lowered flag email communication inbox +📬 open mailbox with raised flag email inbox communication +📭 open mailbox with lowered flag email inbox +📮 postbox email letter envelope +🗳️ ballot box with ballot election vote +✏️ pencil stationery write paper writing school study +✒️ black nib pen stationery writing write +🖋️ fountain pen stationery writing write +🖊️ pen stationery writing write +🖌️ paintbrush drawing creativity art +🖍️ crayon drawing creativity +📝 memo write documents stationery pencil paper writing legal exam quiz test study compose +💼 briefcase business documents work law legal job career +📁 file folder documents business office +📂 open file folder documents load +🗂️ card index dividers organizing business stationery +📅 calendar calendar schedule +📆 tear off calendar schedule date planning +🗒️ spiral notepad memo stationery +🗓️ spiral calendar date schedule planning +📇 card index business stationery +📈 chart increasing graph presentation stats recovery business economics money sales good success +📉 chart decreasing graph presentation stats recession business economics money sales bad failure +📊 bar chart graph presentation stats +📋 clipboard stationery documents +📌 pushpin stationery mark here +📍 round pushpin stationery location map here +📎 paperclip documents stationery +🖇️ linked paperclips documents stationery +📏 straight ruler stationery calculate length math school drawing architect sketch +📐 triangular ruler stationery math architect sketch +✂️ scissors stationery cut +🗃️ card file box business stationery +🗄️ file cabinet filing organizing +🗑️ wastebasket bin trash rubbish garbage toss +🔒 locked security password padlock +🔓 unlocked privacy security +🔏 locked with pen security secret +🔐 locked with key security privacy +🔑 key lock door password +🗝️ old key lock door password +🔨 hammer tools build create +🪓 axe tool chop cut +⛏️ pick tools dig +⚒️ hammer and pick tools build create +🛠️ hammer and wrench tools build create +🗡️ dagger weapon +⚔️ crossed swords weapon +🔫 pistol violence weapon pistol revolver +🏹 bow and arrow sports +🛡️ shield protection security +🔧 wrench tools diy ikea fix maintainer +🔩 nut and bolt handy tools fix +⚙️ gear cog +🗜️ clamp tool +⚖️ balance scale law fairness weight +🦯 probing cane accessibility +🔗 link rings url +⛓️ chains lock arrest +🧰 toolbox tools diy fix maintainer mechanic +🧲 magnet attraction magnetic +⚗️ alembic distilling science experiment chemistry +🧪 test tube chemistry experiment lab science +🧫 petri dish bacteria biology culture lab +🧬 dna biologist genetics life +🔬 microscope laboratory experiment zoomin science study +🔭 telescope stars space zoom science astronomy +📡 satellite antenna communication future radio space +💉 syringe health hospital drugs blood medicine needle doctor nurse +🩸 drop of blood period hurt harm wound +💊 pill health medicine doctor pharmacy drug +🩹 adhesive bandage heal +🩺 stethoscope health +🚪 door house entry exit +🛏️ bed sleep rest +🛋️ couch and lamp read chill +🪑 chair sit furniture +🚽 toilet restroom wc washroom bathroom potty +🚿 shower clean water bathroom +🛁 bathtub clean shower bathroom +🪒 razor cut +🧴 lotion bottle moisturizer sunscreen +🧷 safety pin diaper +🧹 broom cleaning sweeping witch +🧺 basket laundry +🧻 roll of paper roll +🧼 soap bar bathing cleaning lather +🧽 sponge absorbing cleaning porous +🧯 fire extinguisher quench +🛒 shopping cart trolley +🚬 cigarette kills tobacco cigarette joint smoke +⚰️ coffin vampire dead die death rip graveyard cemetery casket funeral box +⚱️ funeral urn dead die death rip ashes +🗿 moai rock easter island moai +🏧 atm sign money sales cash blue-square payment bank +🚮 litter in bin sign blue-square sign human info +🚰 potable water blue-square liquid restroom cleaning faucet +♿ wheelchair symbol blue-square disabled accessibility +🚹 men s room toilet restroom wc blue-square gender male +🚺 women s room purple-square woman female toilet loo restroom gender +🚻 restroom blue-square toilet refresh wc gender +🚼 baby symbol orange-square child +🚾 water closet toilet restroom blue-square +🛂 passport control custom blue-square +🛃 customs passport border blue-square +🛄 baggage claim blue-square airport transport +🛅 left luggage blue-square travel +⚠️ warning exclamation wip alert error problem issue +🚸 children crossing school warning danger sign driving yellow-diamond +⛔ no entry limit security privacy bad denied stop circle +🚫 prohibited forbid stop limit denied disallow circle +🚳 no bicycles cyclist prohibited circle +🚭 no smoking cigarette blue-square smell smoke +🚯 no littering trash bin garbage circle +🚱 non potable water drink faucet tap circle +🚷 no pedestrians rules crossing walking circle +📵 no mobile phones iphone mute circle +🔞 no one under eighteen 18 drink pub night minor circle +☢️ radioactive nuclear danger +☣️ biohazard danger +⬆️ up arrow blue-square continue top direction +↗️ up right arrow blue-square point direction diagonal northeast +➡️ right arrow blue-square next +↘️ down right arrow blue-square direction diagonal southeast +⬇️ down arrow blue-square direction bottom +↙️ down left arrow blue-square direction diagonal southwest +⬅️ left arrow blue-square previous back +↖️ up left arrow blue-square point direction diagonal northwest +↕️ up down arrow blue-square direction way vertical +↔️ left right arrow shape direction horizontal sideways +↩️ right arrow curving left back return blue-square undo enter +↪️ left arrow curving right blue-square return rotate direction +⤴️ right arrow curving up blue-square direction top +⤵️ right arrow curving down blue-square direction bottom +🔃 clockwise vertical arrows sync cycle round repeat +🔄 counterclockwise arrows button blue-square sync cycle +🔙 back arrow arrow words return +🔚 end arrow words arrow +🔛 on arrow arrow words +🔜 soon arrow arrow words +🔝 top arrow words blue-square +🛐 place of worship religion church temple prayer +⚛️ atom symbol science physics chemistry +🕉️ om hinduism buddhism sikhism jainism +✡️ star of david judaism +☸️ wheel of dharma hinduism buddhism sikhism jainism +☯️ yin yang balance +✝️ latin cross christianity +☦️ orthodox cross suppedaneum religion +☪️ star and crescent islam +☮️ peace symbol hippie +🕎 menorah hanukkah candles jewish +🔯 dotted six pointed star purple-square religion jewish hexagram +♈ aries sign purple-square zodiac astrology +♉ taurus purple-square sign zodiac astrology +♊ gemini sign zodiac purple-square astrology +♋ cancer sign zodiac purple-square astrology +♌ leo sign purple-square zodiac astrology +♍ virgo sign zodiac purple-square astrology +♎ libra sign purple-square zodiac astrology +♏ scorpio sign zodiac purple-square astrology scorpio +♐ sagittarius sign zodiac purple-square astrology +♑ capricorn sign zodiac purple-square astrology +♒ aquarius sign purple-square zodiac astrology +♓ pisces purple-square sign zodiac astrology +⛎ ophiuchus sign purple-square constellation astrology +🔀 shuffle tracks button blue-square shuffle music random +🔁 repeat button loop record +🔂 repeat single button blue-square loop +▶️ play button blue-square right direction play +⏩ fast forward button blue-square play speed continue +⏭️ next track button forward next blue-square +⏯️ play or pause button blue-square play pause +◀️ reverse button blue-square left direction +⏪ fast reverse button play blue-square +⏮️ last track button backward +🔼 upwards button blue-square triangle direction point forward top +⏫ fast up button blue-square direction top +🔽 downwards button blue-square direction bottom +⏬ fast down button blue-square direction bottom +⏸️ pause button pause blue-square +⏹️ stop button blue-square +⏺️ record button blue-square +⏏️ eject button blue-square +🎦 cinema blue-square record film movie curtain stage theater +🔅 dim button sun afternoon warm summer +🔆 bright button sun light +📶 antenna bars blue-square reception phone internet connection wifi bluetooth bars +📳 vibration mode orange-square phone +📴 mobile phone off mute orange-square silence quiet +♀️ female sign woman women lady girl +♂️ male sign man boy men +⚕️ medical symbol health hospital +♾️ infinity forever +♻️ recycling symbol arrow environment garbage trash +⚜️ fleur de lis decorative scout +🔱 trident emblem weapon spear +📛 name badge fire forbid +🔰 japanese symbol for beginner badge shield +⭕ hollow red circle circle round +✅ check mark button green-square ok agree vote election answer tick +☑️ check box with check ok agree confirm black-square vote election yes tick +✔️ check mark ok nike answer yes tick +✖️ multiplication sign math calculation +❌ cross mark no delete remove cancel red +❎ cross mark button x green-square no deny +➕ plus sign math calculation addition more increase +➖ minus sign math calculation subtract less +➗ division sign divide math calculation +➰ curly loop scribble draw shape squiggle +➿ double curly loop tape cassette +〽️ part alternation mark graph presentation stats business economics bad +✳️ eight spoked asterisk star sparkle green-square +✴️ eight pointed star orange-square shape polygon +❇️ sparkle stars green-square awesome good fireworks +‼️ double exclamation mark exclamation surprise +⁉️ exclamation question mark wat punctuation surprise +❓ question mark doubt confused +❔ white question mark doubts gray huh confused +❕ white exclamation mark surprise punctuation gray wow warning +❗ exclamation mark heavy exclamation mark danger surprise punctuation wow warning +〰️ wavy dash draw line moustache mustache squiggle scribble +©️ copyright ip license circle law legal +®️ registered alphabet circle +™️ trade mark trademark brand law legal +#️⃣ keycap symbol blue-square twitter +*️⃣ keycap star keycap +0️⃣ keycap 0 0 numbers blue-square null +1️⃣ keycap 1 blue-square numbers 1 +2️⃣ keycap 2 numbers 2 prime blue-square +3️⃣ keycap 3 3 numbers prime blue-square +4️⃣ keycap 4 4 numbers blue-square +5️⃣ keycap 5 5 numbers blue-square prime +6️⃣ keycap 6 6 numbers blue-square +7️⃣ keycap 7 7 numbers blue-square prime +8️⃣ keycap 8 8 blue-square numbers +9️⃣ keycap 9 blue-square numbers 9 +🔟 keycap 10 numbers 10 blue-square +🔠 input latin uppercase alphabet words blue-square +🔡 input latin lowercase blue-square alphabet +🔢 input numbers numbers blue-square +🔣 input symbols blue-square music note ampersand percent glyphs characters +🔤 input latin letters blue-square alphabet +🅰️ a button red-square alphabet letter +🆎 ab button red-square alphabet +🅱️ b button red-square alphabet letter +🆑 cl button alphabet words red-square +🆒 cool button words blue-square +🆓 free button blue-square words +ℹ️ information blue-square alphabet letter +🆔 id button purple-square words +Ⓜ️ circled m alphabet blue-circle letter +🆕 new button blue-square words start +🆖 ng button blue-square words shape icon +🅾️ o button alphabet red-square letter +🆗 ok button good agree yes blue-square +🅿️ p button cars blue-square alphabet letter +🆘 sos button help red-square words emergency 911 +🆙 up button blue-square above high +🆚 vs button words orange-square +🈁 japanese here button blue-square here katakana japanese destination +🈂️ japanese service charge button japanese blue-square katakana +🈷️ japanese monthly amount button chinese month moon japanese orange-square kanji +🈶 japanese not free of charge button orange-square chinese have kanji +🈯 japanese reserved button chinese point green-square kanji +🉐 japanese bargain button chinese kanji obtain get circle +🈹 japanese discount button cut divide chinese kanji pink-square +🈚 japanese free of charge button nothing chinese kanji japanese orange-square +🈲 japanese prohibited button kanji japanese chinese forbidden limit restricted red-square +🉑 japanese acceptable button ok good chinese kanji agree yes orange-circle +🈸 japanese application button chinese japanese kanji orange-square +🈴 japanese passing grade button japanese chinese join kanji red-square +🈳 japanese vacancy button kanji japanese chinese empty sky blue-square +㊗️ japanese congratulations button chinese kanji japanese red-circle +㊙️ japanese secret button privacy chinese sshh kanji red-circle +🈺 japanese open for business button japanese opening hours orange-square +🈵 japanese no vacancy button full chinese japanese red-square kanji +🔴 red circle shape error danger +🟠 orange circle round +🟡 yellow circle round +🟢 green circle round +🔵 blue circle shape icon button +🟣 purple circle round +🟤 brown circle round +⚫ black circle shape button round +⚪ white circle shape round +🟥 red square +🟧 orange square +🟨 yellow square +🟩 green square +🟦 blue square +🟪 purple square +🟫 brown square +⬛ black large square shape icon button +⬜ white large square shape icon stone button +◼️ black medium square shape button icon +◻️ white medium square shape stone icon +◾ black medium small square icon shape button +◽ white medium small square shape stone icon button +▪️ black small square shape icon +▫️ white small square shape icon +🔶 large orange diamond shape jewel gem +🔷 large blue diamond shape jewel gem +🔸 small orange diamond shape jewel gem +🔹 small blue diamond shape jewel gem +🔺 red triangle pointed up shape direction up top +🔻 red triangle pointed down shape direction bottom +💠 diamond with a dot jewel blue gem crystal fancy +🔘 radio button input old music circle +🔳 white square button shape input +🔲 black square button shape input frame +🏁 chequered flag contest finishline race gokart +🚩 triangular flag mark milestone place +🎌 crossed flags japanese nation country border +🏴 black flag pirate +🏳️ white flag losing loser lost surrender give up fail +🏳️‍🌈 rainbow flag flag rainbow pride gay lgbt glbt queer homosexual lesbian bisexual transgender +🏴‍☠️ pirate flag skull crossbones flag banner +🇦🇨 flag ascension island +🇦🇩 flag andorra ad flag nation country banner andorra +🇦🇪 flag united arab emirates united arab emirates flag nation country banner united arab emirates +🇦🇫 flag afghanistan af flag nation country banner afghanistan +🇦🇬 flag antigua barbuda antigua barbuda flag nation country banner antigua barbuda +🇦🇮 flag anguilla ai flag nation country banner anguilla +🇦🇱 flag albania al flag nation country banner albania +🇦🇲 flag armenia am flag nation country banner armenia +🇦🇴 flag angola ao flag nation country banner angola +🇦🇶 flag antarctica aq flag nation country banner antarctica +🇦🇷 flag argentina ar flag nation country banner argentina +🇦🇸 flag american samoa american ws flag nation country banner american samoa +🇦🇹 flag austria at flag nation country banner austria +🇦🇺 flag australia au flag nation country banner australia +🇦🇼 flag aruba aw flag nation country banner aruba +🇦🇽 flag aland islands Åland islands flag nation country banner aland islands +🇦🇿 flag azerbaijan az flag nation country banner azerbaijan +🇧🇦 flag bosnia herzegovina bosnia herzegovina flag nation country banner bosnia herzegovina +🇧🇧 flag barbados bb flag nation country banner barbados +🇧🇩 flag bangladesh bd flag nation country banner bangladesh +🇧🇪 flag belgium be flag nation country banner belgium +🇧🇫 flag burkina faso burkina faso flag nation country banner burkina faso +🇧🇬 flag bulgaria bg flag nation country banner bulgaria +🇧🇭 flag bahrain bh flag nation country banner bahrain +🇧🇮 flag burundi bi flag nation country banner burundi +🇧🇯 flag benin bj flag nation country banner benin +🇧🇱 flag st barthelemy saint barthélemy flag nation country banner st barthelemy +🇧🇲 flag bermuda bm flag nation country banner bermuda +🇧🇳 flag brunei bn darussalam flag nation country banner brunei +🇧🇴 flag bolivia bo flag nation country banner bolivia +🇧🇶 flag caribbean netherlands bonaire flag nation country banner caribbean netherlands +🇧🇷 flag brazil br flag nation country banner brazil +🇧🇸 flag bahamas bs flag nation country banner bahamas +🇧🇹 flag bhutan bt flag nation country banner bhutan +🇧🇻 flag bouvet island norway +🇧🇼 flag botswana bw flag nation country banner botswana +🇧🇾 flag belarus by flag nation country banner belarus +🇧🇿 flag belize bz flag nation country banner belize +🇨🇦 flag canada ca flag nation country banner canada +🇨🇨 flag cocos islands cocos keeling islands flag nation country banner cocos islands +🇨🇩 flag congo kinshasa congo democratic republic flag nation country banner congo kinshasa +🇨🇫 flag central african republic central african republic flag nation country banner central african republic +🇨🇬 flag congo brazzaville congo flag nation country banner congo brazzaville +🇨🇭 flag switzerland ch flag nation country banner switzerland +🇨🇮 flag cote d ivoire ivory coast flag nation country banner cote d ivoire +🇨🇰 flag cook islands cook islands flag nation country banner cook islands +🇨🇱 flag chile flag nation country banner chile +🇨🇲 flag cameroon cm flag nation country banner cameroon +🇨🇳 flag china china chinese prc flag country nation banner china +🇨🇴 flag colombia co flag nation country banner colombia +🇨🇵 flag clipperton island +🇨🇷 flag costa rica costa rica flag nation country banner costa rica +🇨🇺 flag cuba cu flag nation country banner cuba +🇨🇻 flag cape verde cabo verde flag nation country banner cape verde +🇨🇼 flag curacao curaçao flag nation country banner curacao +🇨🇽 flag christmas island christmas island flag nation country banner christmas island +🇨🇾 flag cyprus cy flag nation country banner cyprus +🇨🇿 flag czechia cz flag nation country banner czechia +🇩🇪 flag germany german nation flag country banner germany +🇩🇬 flag diego garcia +🇩🇯 flag djibouti dj flag nation country banner djibouti +🇩🇰 flag denmark dk flag nation country banner denmark +🇩🇲 flag dominica dm flag nation country banner dominica +🇩🇴 flag dominican republic dominican republic flag nation country banner dominican republic +🇩🇿 flag algeria dz flag nation country banner algeria +🇪🇦 flag ceuta melilla +🇪🇨 flag ecuador ec flag nation country banner ecuador +🇪🇪 flag estonia ee flag nation country banner estonia +🇪🇬 flag egypt eg flag nation country banner egypt +🇪🇭 flag western sahara western sahara flag nation country banner western sahara +🇪🇷 flag eritrea er flag nation country banner eritrea +🇪🇸 flag spain spain flag nation country banner spain +🇪🇹 flag ethiopia et flag nation country banner ethiopia +🇪🇺 flag european union european union flag banner +🇫🇮 flag finland fi flag nation country banner finland +🇫🇯 flag fiji fj flag nation country banner fiji +🇫🇰 flag falkland islands falkland islands malvinas flag nation country banner falkland islands +🇫🇲 flag micronesia micronesia federated states flag nation country banner micronesia +🇫🇴 flag faroe islands faroe islands flag nation country banner faroe islands +🇫🇷 flag france banner flag nation france french country france +🇬🇦 flag gabon ga flag nation country banner gabon +🇬🇧 flag united kingdom united kingdom great britain northern ireland flag nation country banner british UK english england union jack united kingdom +🇬🇩 flag grenada gd flag nation country banner grenada +🇬🇪 flag georgia ge flag nation country banner georgia +🇬🇫 flag french guiana french guiana flag nation country banner french guiana +🇬🇬 flag guernsey gg flag nation country banner guernsey +🇬🇭 flag ghana gh flag nation country banner ghana +🇬🇮 flag gibraltar gi flag nation country banner gibraltar +🇬🇱 flag greenland gl flag nation country banner greenland +🇬🇲 flag gambia gm flag nation country banner gambia +🇬🇳 flag guinea gn flag nation country banner guinea +🇬🇵 flag guadeloupe gp flag nation country banner guadeloupe +🇬🇶 flag equatorial guinea equatorial gn flag nation country banner equatorial guinea +🇬🇷 flag greece gr flag nation country banner greece +🇬🇸 flag south georgia south sandwich islands south georgia sandwich islands flag nation country banner south georgia south sandwich islands +🇬🇹 flag guatemala gt flag nation country banner guatemala +🇬🇺 flag guam gu flag nation country banner guam +🇬🇼 flag guinea bissau gw bissau flag nation country banner guinea bissau +🇬🇾 flag guyana gy flag nation country banner guyana +🇭🇰 flag hong kong sar china hong kong flag nation country banner hong kong sar china +🇭🇲 flag heard mcdonald islands +🇭🇳 flag honduras hn flag nation country banner honduras +🇭🇷 flag croatia hr flag nation country banner croatia +🇭🇹 flag haiti ht flag nation country banner haiti +🇭🇺 flag hungary hu flag nation country banner hungary +🇮🇨 flag canary islands canary islands flag nation country banner canary islands +🇮🇩 flag indonesia flag nation country banner indonesia +🇮🇪 flag ireland ie flag nation country banner ireland +🇮🇱 flag israel il flag nation country banner israel +🇮🇲 flag isle of man isle man flag nation country banner isle of man +🇮🇳 flag india in flag nation country banner india +🇮🇴 flag british indian ocean territory british indian ocean territory flag nation country banner british indian ocean territory +🇮🇶 flag iraq iq flag nation country banner iraq +🇮🇷 flag iran iran islamic republic flag nation country banner iran +🇮🇸 flag iceland is flag nation country banner iceland +🇮🇹 flag italy italy flag nation country banner italy +🇯🇪 flag jersey je flag nation country banner jersey +🇯🇲 flag jamaica jm flag nation country banner jamaica +🇯🇴 flag jordan jo flag nation country banner jordan +🇯🇵 flag japan japanese nation flag country banner japan +🇰🇪 flag kenya ke flag nation country banner kenya +🇰🇬 flag kyrgyzstan kg flag nation country banner kyrgyzstan +🇰🇭 flag cambodia kh flag nation country banner cambodia +🇰🇮 flag kiribati ki flag nation country banner kiribati +🇰🇲 flag comoros km flag nation country banner comoros +🇰🇳 flag st kitts nevis saint kitts nevis flag nation country banner st kitts nevis +🇰🇵 flag north korea north korea nation flag country banner north korea +🇰🇷 flag south korea south korea nation flag country banner south korea +🇰🇼 flag kuwait kw flag nation country banner kuwait +🇰🇾 flag cayman islands cayman islands flag nation country banner cayman islands +🇰🇿 flag kazakhstan kz flag nation country banner kazakhstan +🇱🇦 flag laos lao democratic republic flag nation country banner laos +🇱🇧 flag lebanon lb flag nation country banner lebanon +🇱🇨 flag st lucia saint lucia flag nation country banner st lucia +🇱🇮 flag liechtenstein li flag nation country banner liechtenstein +🇱🇰 flag sri lanka sri lanka flag nation country banner sri lanka +🇱🇷 flag liberia lr flag nation country banner liberia +🇱🇸 flag lesotho ls flag nation country banner lesotho +🇱🇹 flag lithuania lt flag nation country banner lithuania +🇱🇺 flag luxembourg lu flag nation country banner luxembourg +🇱🇻 flag latvia lv flag nation country banner latvia +🇱🇾 flag libya ly flag nation country banner libya +🇲🇦 flag morocco ma flag nation country banner morocco +🇲🇨 flag monaco mc flag nation country banner monaco +🇲🇩 flag moldova moldova republic flag nation country banner moldova +🇲🇪 flag montenegro me flag nation country banner montenegro +🇲🇫 flag st martin +🇲🇬 flag madagascar mg flag nation country banner madagascar +🇲🇭 flag marshall islands marshall islands flag nation country banner marshall islands +🇲🇰 flag north macedonia macedonia flag nation country banner north macedonia +🇲🇱 flag mali ml flag nation country banner mali +🇲🇲 flag myanmar mm flag nation country banner myanmar +🇲🇳 flag mongolia mn flag nation country banner mongolia +🇲🇴 flag macao sar china macao flag nation country banner macao sar china +🇲🇵 flag northern mariana islands northern mariana islands flag nation country banner northern mariana islands +🇲🇶 flag martinique mq flag nation country banner martinique +🇲🇷 flag mauritania mr flag nation country banner mauritania +🇲🇸 flag montserrat ms flag nation country banner montserrat +🇲🇹 flag malta mt flag nation country banner malta +🇲🇺 flag mauritius mu flag nation country banner mauritius +🇲🇻 flag maldives mv flag nation country banner maldives +🇲🇼 flag malawi mw flag nation country banner malawi +🇲🇽 flag mexico mx flag nation country banner mexico +🇲🇾 flag malaysia my flag nation country banner malaysia +🇲🇿 flag mozambique mz flag nation country banner mozambique +🇳🇦 flag namibia na flag nation country banner namibia +🇳🇨 flag new caledonia new caledonia flag nation country banner new caledonia +🇳🇪 flag niger ne flag nation country banner niger +🇳🇫 flag norfolk island norfolk island flag nation country banner norfolk island +🇳🇬 flag nigeria flag nation country banner nigeria +🇳🇮 flag nicaragua ni flag nation country banner nicaragua +🇳🇱 flag netherlands nl flag nation country banner netherlands +🇳🇴 flag norway no flag nation country banner norway +🇳🇵 flag nepal np flag nation country banner nepal +🇳🇷 flag nauru nr flag nation country banner nauru +🇳🇺 flag niue nu flag nation country banner niue +🇳🇿 flag new zealand new zealand flag nation country banner new zealand +🇴🇲 flag oman om symbol flag nation country banner oman +🇵🇦 flag panama pa flag nation country banner panama +🇵🇪 flag peru pe flag nation country banner peru +🇵🇫 flag french polynesia french polynesia flag nation country banner french polynesia +🇵🇬 flag papua new guinea papua new guinea flag nation country banner papua new guinea +🇵🇭 flag philippines ph flag nation country banner philippines +🇵🇰 flag pakistan pk flag nation country banner pakistan +🇵🇱 flag poland pl flag nation country banner poland +🇵🇲 flag st pierre miquelon saint pierre miquelon flag nation country banner st pierre miquelon +🇵🇳 flag pitcairn islands pitcairn flag nation country banner pitcairn islands +🇵🇷 flag puerto rico puerto rico flag nation country banner puerto rico +🇵🇸 flag palestinian territories palestine palestinian territories flag nation country banner palestinian territories +🇵🇹 flag portugal pt flag nation country banner portugal +🇵🇼 flag palau pw flag nation country banner palau +🇵🇾 flag paraguay py flag nation country banner paraguay +🇶🇦 flag qatar qa flag nation country banner qatar +🇷🇪 flag reunion réunion flag nation country banner reunion +🇷🇴 flag romania ro flag nation country banner romania +🇷🇸 flag serbia rs flag nation country banner serbia +🇷🇺 flag russia russian federation flag nation country banner russia +🇷🇼 flag rwanda rw flag nation country banner rwanda +🇸🇦 flag saudi arabia flag nation country banner saudi arabia +🇸🇧 flag solomon islands solomon islands flag nation country banner solomon islands +🇸🇨 flag seychelles sc flag nation country banner seychelles +🇸🇩 flag sudan sd flag nation country banner sudan +🇸🇪 flag sweden se flag nation country banner sweden +🇸🇬 flag singapore sg flag nation country banner singapore +🇸🇭 flag st helena saint helena ascension tristan cunha flag nation country banner st helena +🇸🇮 flag slovenia si flag nation country banner slovenia +🇸🇯 flag svalbard jan mayen +🇸🇰 flag slovakia sk flag nation country banner slovakia +🇸🇱 flag sierra leone sierra leone flag nation country banner sierra leone +🇸🇲 flag san marino san marino flag nation country banner san marino +🇸🇳 flag senegal sn flag nation country banner senegal +🇸🇴 flag somalia so flag nation country banner somalia +🇸🇷 flag suriname sr flag nation country banner suriname +🇸🇸 flag south sudan south sd flag nation country banner south sudan +🇸🇹 flag sao tome principe sao tome principe flag nation country banner sao tome principe +🇸🇻 flag el salvador el salvador flag nation country banner el salvador +🇸🇽 flag sint maarten sint maarten dutch flag nation country banner sint maarten +🇸🇾 flag syria syrian arab republic flag nation country banner syria +🇸🇿 flag eswatini sz flag nation country banner eswatini +🇹🇦 flag tristan da cunha +🇹🇨 flag turks caicos islands turks caicos islands flag nation country banner turks caicos islands +🇹🇩 flag chad td flag nation country banner chad +🇹🇫 flag french southern territories french southern territories flag nation country banner french southern territories +🇹🇬 flag togo tg flag nation country banner togo +🇹🇭 flag thailand th flag nation country banner thailand +🇹🇯 flag tajikistan tj flag nation country banner tajikistan +🇹🇰 flag tokelau tk flag nation country banner tokelau +🇹🇱 flag timor leste timor leste flag nation country banner timor leste +🇹🇲 flag turkmenistan flag nation country banner turkmenistan +🇹🇳 flag tunisia tn flag nation country banner tunisia +🇹🇴 flag tonga to flag nation country banner tonga +🇹🇷 flag turkey turkey flag nation country banner turkey +🇹🇹 flag trinidad tobago trinidad tobago flag nation country banner trinidad tobago +🇹🇻 flag tuvalu flag nation country banner tuvalu +🇹🇼 flag taiwan tw flag nation country banner taiwan +🇹🇿 flag tanzania tanzania united republic flag nation country banner tanzania +🇺🇦 flag ukraine ua flag nation country banner ukraine +🇺🇬 flag uganda ug flag nation country banner uganda +🇺🇲 flag u s outlying islands +🇺🇳 flag united nations un flag banner +🇺🇸 flag united states united states america flag nation country banner united states +🇺🇾 flag uruguay uy flag nation country banner uruguay +🇺🇿 flag uzbekistan uz flag nation country banner uzbekistan +🇻🇦 flag vatican city vatican city flag nation country banner vatican city +🇻🇨 flag st vincent grenadines saint vincent grenadines flag nation country banner st vincent grenadines +🇻🇪 flag venezuela ve bolivarian republic flag nation country banner venezuela +🇻🇬 flag british virgin islands british virgin islands bvi flag nation country banner british virgin islands +🇻🇮 flag u s virgin islands virgin islands us flag nation country banner u s virgin islands +🇻🇳 flag vietnam viet nam flag nation country banner vietnam +🇻🇺 flag vanuatu vu flag nation country banner vanuatu +🇼🇫 flag wallis futuna wallis futuna flag nation country banner wallis futuna +🇼🇸 flag samoa ws flag nation country banner samoa +🇽🇰 flag kosovo xk flag nation country banner kosovo +🇾🇪 flag yemen ye flag nation country banner yemen +🇾🇹 flag mayotte yt flag nation country banner mayotte +🇿🇦 flag south africa south africa flag nation country banner south africa +🇿🇲 flag zambia zm flag nation country banner zambia +🇿🇼 flag zimbabwe zw flag nation country banner zimbabwe +🏴󠁧󠁢󠁥󠁮󠁧󠁿 flag england flag english +🏴󠁧󠁢󠁳󠁣󠁴󠁿 flag scotland flag scottish +🏴󠁧󠁢󠁷󠁬󠁳󠁿 flag wales flag welsh +🥲 smiling face with tear sad cry pretend +🥸 disguised face pretent brows glasses moustache +🤌 pinched fingers size tiny small +🫀 anatomical heart health heartbeat +🫁 lungs breathe +🥷 ninja ninjutsu skills japanese +🤵‍♂️ man in tuxedo formal fashion +🤵‍♀️ woman in tuxedo formal fashion +👰‍♂️ man with veil wedding marriage +👰‍♀️ woman with veil wedding marriage +👩‍🍼 woman feeding baby birth food +👨‍🍼 man feeding baby birth food +🧑‍🍼 person feeding baby birth food +🧑‍🎄 mx claus christmas +🫂 people hugging care +🐈‍⬛ black cat superstition luck +🦬 bison ox +🦣 mammoth elephant tusks +🦫 beaver animal rodent +🐻‍❄️ polar bear animal arctic +🦤 dodo animal bird +🪶 feather bird fly +🦭 seal animal creature sea +🪲 beetle insect +🪳 cockroach insect pests +🪰 fly insect +🪱 worm animal +🪴 potted plant greenery house +🫐 blueberries fruit +🫒 olive fruit +🫑 bell pepper fruit plant +🫓 flatbread flour food +🫔 tamale food masa +🫕 fondue cheese pot food +🫖 teapot drink hot +🧋 bubble tea taiwan boba milk tea straw +🪨 rock stone +🪵 wood nature timber trunk +🛖 hut house structure +🛻 pickup truck car transportation +🛼 roller skate footwear sports +🪄 magic wand supernature power +🪅 pinata mexico candy celebration +🪆 nesting dolls matryoshka toy +🪡 sewing needle stitches +🪢 knot rope scout +🩴 thong sandal footwear summer +🪖 military helmet army protection +🪗 accordion music +🪘 long drum music +🪙 coin money currency +🪃 boomerang weapon +🪚 carpentry saw cut chop +🪛 screwdriver tools +🪝 hook tools +🪜 ladder tools +🛗 elevator lift +🪞 mirror reflection +🪟 window scenery +🪠 plunger toilet +🪤 mouse trap cheese +🪣 bucket water container +🪥 toothbrush hygiene dental +🪦 headstone death rip grave +🪧 placard announcement +⚧️ transgender symbol lgbtq +🏳️‍⚧️ transgender flag lgbtq +😶‍🌫️ face in clouds shower steam dream +😮‍💨 face exhaling relieve relief tired sigh +😵‍💫 face with spiral eyes sick ill confused nauseous nausea +❤️‍🔥 heart on fire passionate enthusiastic +❤️‍🩹 mending heart broken heart bandage wounded +🧔‍♂️ man beard facial hair +🧔‍♀️ woman beard facial hair +🫠 melting face hot heat +🫢 face with open eyes and hand over mouth silence secret shock surprise +🫣 face with peeking eye scared frightening embarrassing +🫡 saluting face respect salute +🫥 dotted line face invisible lonely isolation depression +🫤 face with diagonal mouth skeptic confuse frustrated indifferent +🥹 face holding back tears touched gratitude +🫱 rightwards hand palm offer +🫲 leftwards hand palm offer +🫳 palm down hand palm drop +🫴 palm up hand lift offer demand +🫰 hand with index finger and thumb crossed heart love money expensive +🫵 index pointing at the viewer you recruit +🫶 heart hands love appreciation support +🫦 biting lip flirt sexy pain worry +🫅 person with crown royalty power +🫃 pregnant man baby belly +🫄 pregnant person baby belly +🧌 troll mystical monster +🪸 coral ocean sea reef +🪷 lotus flower calm meditation +🪹 empty nest bird +🪺 nest with eggs bird +🫘 beans food +🫗 pouring liquid cup water +🫙 jar container sauce +🛝 playground slide fun park +🛞 wheel car transport +🛟 ring buoy life saver life preserver +🪬 hamsa religion protection +🪩 mirror ball disco dance party +🪫 low battery drained dead +🩼 crutch accessibility assist +🩻 x-ray skeleton medicine +🫧 bubbles soap fun carbonation sparkling +🪪 identification card document +🟰 heavy equals sign math +¿? question upside down reversed spanish +← left arrow +↑ up arrow +→ right arrow +↓ down arrow +←↑→↓ all directions up down left right arrows +AH↗️HA↘️HA↗️HA↘️ pekora arrows hahaha rabbit +• dot circle separator +「」 japanese quote square bracket +¯\_(ツ)_/¯ shrug idk i dont know +↵ enter key return +𝕏 twitter x logo +👉👈 etou ughhhhhhh shy +👉👌 put it in imagination perv \ No newline at end of file diff --git a/linux/hypr/.config/hypr/hyprland/scripts/launch_first_available.sh b/linux/hypr/.config/hypr/hyprland/scripts/launch_first_available.sh new file mode 100755 index 0000000..31dd23a --- /dev/null +++ b/linux/hypr/.config/hypr/hyprland/scripts/launch_first_available.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +for cmd in "$@"; do + [[ -z "$cmd" ]] && continue + eval "command -v ${cmd%% *}" >/dev/null 2>&1 || continue + eval "$cmd" & + exit +done diff --git a/linux/hypr/.config/hypr/hyprland/scripts/snip_to_search.sh b/linux/hypr/.config/hypr/hyprland/scripts/snip_to_search.sh new file mode 100755 index 0000000..60a68fe --- /dev/null +++ b/linux/hypr/.config/hypr/hyprland/scripts/snip_to_search.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +grim -g "$(slurp)" /tmp/image.png +imageLink=$(curl -sF files[]=@/tmp/image.png 'https://uguu.se/upload' | jq -r '.files[0].url') +xdg-open "https://lens.google.com/uploadbyurl?url=${imageLink}" +rm /tmp/image.png diff --git a/linux/hypr/.config/hypr/hyprland/scripts/start_geoclue_agent.sh b/linux/hypr/.config/hypr/hyprland/scripts/start_geoclue_agent.sh new file mode 100755 index 0000000..b4b8fa1 --- /dev/null +++ b/linux/hypr/.config/hypr/hyprland/scripts/start_geoclue_agent.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash + +# Check if GeoClue agent is already running +if pgrep -f 'geoclue-2.0/demos/agent' > /dev/null; then + echo "GeoClue agent is already running." + exit 0 +fi + +# List of known possible GeoClue agent paths +AGENT_PATHS=( + /usr/libexec/geoclue-2.0/demos/agent + /usr/lib/geoclue-2.0/demos/agent + "$HOME/.nix-profile/libexec/geoclue-2.0/demos/agent" + "$HOME/.nix-profile/lib/geoclue-2.0/demos/agent" + /run/current-system/sw/libexec/geoclue-2.0/demos/agent +) + +# Find the first valid agent path +for path in "${AGENT_PATHS[@]}"; do + if [ -x "$path" ]; then + echo "Starting GeoClue agent from: $path" + "$path" & # starts in the background + exit 0 + fi +done + +# If we got here, none of the paths worked +echo "GeoClue agent not found in known paths." +echo "Please install GeoClue or update the script with the correct path." +exit 1 diff --git a/linux/hypr/.config/hypr/hyprland/scripts/workspace_action.sh b/linux/hypr/.config/hypr/hyprland/scripts/workspace_action.sh new file mode 100755 index 0000000..fa63d71 --- /dev/null +++ b/linux/hypr/.config/hypr/hyprland/scripts/workspace_action.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash +curr_workspace="$(hyprctl activeworkspace -j | jq -r ".id")" +dispatcher="$1" +shift ## The target is now in $1, not $2 + +if [[ -z "${dispatcher}" || "${dispatcher}" == "--help" || "${dispatcher}" == "-h" || -z "$1" ]]; then + echo "Usage: $0 " + exit 1 +fi +if [[ "$1" == *"+"* || "$1" == *"-"* ]]; then ## Is this something like r+1 or -1? + hyprctl dispatch "${dispatcher}" "$1" ## $1 = workspace id since we shifted earlier. +elif [[ "$1" =~ ^[0-9]+$ ]]; then ## Is this just a number? + target_workspace=$((((curr_workspace - 1) / 10 ) * 10 + $1)) + hyprctl dispatch "${dispatcher}" "${target_workspace}" +else + hyprctl dispatch "${dispatcher}" "$1" ## In case the target in a string, required for special workspaces. + exit 1 +fi diff --git a/linux/hypr/.config/hypr/hyprland/scripts/zoom.sh b/linux/hypr/.config/hypr/hyprland/scripts/zoom.sh new file mode 100755 index 0000000..4713684 --- /dev/null +++ b/linux/hypr/.config/hypr/hyprland/scripts/zoom.sh @@ -0,0 +1,54 @@ +#!/usr/bin/env bash + +# Controls Hyprland's cursor zoom_factor, clamped between 1.0 and 3.0 + +# Get current zoom level +get_zoom() { + hyprctl getoption -j cursor:zoom_factor | jq '.float' +} + +# Clamp a value between 1.0 and 3.0 +clamp() { + local val="$1" + awk "BEGIN { + v = $val; + if (v < 1.0) v = 1.0; + if (v > 3.0) v = 3.0; + print v; + }" +} + +# Set zoom level +set_zoom() { + local value="$1" + clamped=$(clamp "$value") + hyprctl keyword cursor:zoom_factor "$clamped" +} + +case "$1" in + reset) + set_zoom 1.0 + ;; + increase) + if [[ -z "$2" ]]; then + echo "Usage: $0 increase STEP" + exit 1 + fi + current=$(get_zoom) + new=$(awk "BEGIN { print $current + $2 }") + set_zoom "$new" + ;; + decrease) + if [[ -z "$2" ]]; then + echo "Usage: $0 decrease STEP" + exit 1 + fi + current=$(get_zoom) + new=$(awk "BEGIN { print $current - $2 }") + set_zoom "$new" + ;; + *) + echo "Usage: $0 {reset|increase STEP|decrease STEP}" + exit 1 + ;; +esac diff --git a/linux/hypr/.config/hypr/hyprland/shellOverrides/main.conf b/linux/hypr/.config/hypr/hyprland/shellOverrides/main.conf new file mode 100644 index 0000000..e69de29 diff --git a/linux/hypr/.config/hypr/hyprland/variables.conf b/linux/hypr/.config/hypr/hyprland/variables.conf new file mode 100644 index 0000000..a320137 --- /dev/null +++ b/linux/hypr/.config/hypr/hyprland/variables.conf @@ -0,0 +1,23 @@ +# Default variables +# Copy these to ~/.config/hypr/custom/variables.conf to make changes in a dotfiles-update-friendly manner + +# Apps +# PULL REQUESTS ADDING MORE WILL NOT BE ACCEPTED, CONFIG FOR YOURSELF +$terminal = ~/.config/hypr/hyprland/scripts/launch_first_available.sh "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" +$fileManager = ~/.config/hypr/hyprland/scripts/launch_first_available.sh "dolphin" "nautilus" "nemo" "thunar" "kitty -1 fish -c yazi" +$browser = ~/.config/hypr/hyprland/scripts/launch_first_available.sh "google-chrome-stable" "zen-browser" "firefox" "brave" "chromium" "microsoft-edge-stable" "opera" "librewolf" +$codeEditor = ~/.config/hypr/hyprland/scripts/launch_first_available.sh "antigravity" "code" "codium" "cursor" "zed" "zedit" "zeditor" "kate" "gnome-text-editor" "emacs" "command -v nvim && kitty -1 nvim" "command -v micro && kitty -1 micro" +$officeSoftware = ~/.config/hypr/hyprland/scripts/launch_first_available.sh "wps" "onlyoffice-desktopeditors" "libreoffice" +$textEditor = ~/.config/hypr/hyprland/scripts/launch_first_available.sh "kate" "gnome-text-editor" "emacs" +$volumeMixer = ~/.config/hypr/hyprland/scripts/launch_first_available.sh "pavucontrol-qt" "pavucontrol" +$settingsApp = XDG_CURRENT_DESKTOP=gnome ~/.config/hypr/hyprland/scripts/launch_first_available.sh "qs -p ~/.config/quickshell/$qsConfig/settings.qml" "systemsettings" "gnome-control-center" "better-control" +$taskManager = ~/.config/hypr/hyprland/scripts/launch_first_available.sh "gnome-system-monitor" "plasma-systemmonitor --page-name Processes" "command -v btop && kitty -1 fish -c btop" + +# The folder within ~/.config/quickshell containing the config +$qsConfig = ii + +# Leave blank like this to load default config. Set to anything to not. +$dontLoadDefaultExecs = +$dontLoadDefaultGeneral = +$dontLoadDefaultRules = +$dontLoadDefaultKeybinds = diff --git a/linux/hypr/hyprlock.conf b/linux/hypr/.config/hypr/hyprlock.conf similarity index 100% rename from linux/hypr/hyprlock.conf rename to linux/hypr/.config/hypr/hyprlock.conf diff --git a/linux/hypr/.config/hypr/hyprlock.conf.new b/linux/hypr/.config/hypr/hyprlock.conf.new new file mode 100644 index 0000000..208f7cf --- /dev/null +++ b/linux/hypr/.config/hypr/hyprlock.conf.new @@ -0,0 +1,93 @@ +source=~/.config/hypr/hyprlock/colors.conf + +background { + color = rgba(181818FF) +} +input-field { + monitor = + size = 250, 50 + outline_thickness = 2 + dots_size = 0.1 + dots_spacing = 0.3 + outer_color = $entry_border_color + inner_color = $entry_background_color + font_color = $entry_color + fade_on_empty = true + + position = 0, 20 + halign = center + valign = center +} + +label { + monitor = + text = $LAYOUT + color = $text_color + font_size = 14 + font_family = $font_family + position = -30, 30 + halign = right + valign = bottom +} + +label { # Caps Lock Warning + monitor = + text = cmd[update:250] ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/hyprlock/check-capslock.sh + color = $text_color + font_size = 13 + font_family = $font_family + position = 0, -25 + halign = center + valign = center +} + + +label { # Clock + monitor = + text = $TIME + color = $text_color + font_size = 65 + font_family = $font_family_clock + + position = 0, 300 + halign = center + valign = center +} +label { # Date + monitor = + text = cmd[update:5000] date +"%A, %B %d" + color = $text_color + font_size = 17 + font_family = $font_family_clock + + position = 0, 240 + halign = center + valign = center +} + +label { # User + monitor = + text =  $USER + color = $text_color + outline_thickness = 2 + dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8 + dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0 + dots_center = true + font_size = 20 + font_family = $font_family + position = 0, 50 + halign = center + valign = bottom +} + +label { # Status + monitor = + text = cmd[update:5000] ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/hyprlock/status.sh + color = $text_color + font_size = 14 + font_family = $font_family + + position = 30, -30 + halign = left + valign = top +} \ No newline at end of file diff --git a/linux/hypr/.config/hypr/hyprlock/colors.conf b/linux/hypr/.config/hypr/hyprlock/colors.conf new file mode 100644 index 0000000..aac599f --- /dev/null +++ b/linux/hypr/.config/hypr/hyprlock/colors.conf @@ -0,0 +1,12 @@ +# This configuration is generated by matugen +# Changing these variables with matugen still enabled will overwrite them. + +$text_color = rgba(d6e5edFF) +$entry_background_color = rgba(101d2311) +$entry_border_color = rgba(91909155) +$entry_color = rgba(d6e5edFF) +$font_family = Google Sans Flex Medium +$font_family_clock = Google Sans Flex Medium +$font_material_symbols = Material Symbols Rounded + +$background_image = /home/gazzd/Pictures/Wallpapers/wallhaven-3qwmz3.jpg \ No newline at end of file diff --git a/linux/hypr/.config/hypr/ii/custom/env.conf b/linux/hypr/.config/hypr/ii/custom/env.conf new file mode 100644 index 0000000..6ba3cdd --- /dev/null +++ b/linux/hypr/.config/hypr/ii/custom/env.conf @@ -0,0 +1,23 @@ +# hyprlang noerror false +# You can put extra environment variables here +# https://wiki.hyprland.org/Configuring/Environment-variables/ + +# ######### Input method ########## +# See https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland +#env = QT_IM_MODULE, fcitx +#env = XMODIFIERS, @im=fcitx +#env = SDL_IM_MODULE, fcitx +#env = GLFW_IM_MODULE, ibus +#env = INPUT_METHOD, fcitx + +# ######## Wayland ######### +# Tearing +# env = WLR_DRM_NO_ATOMIC, 1 +# ? +# env = WLR_NO_HARDWARE_CURSORS, 1 + +# ######## EDITOR ######### +#https://wiki.archlinux.org/title/Category:Text_editors +# for example: vi nano nvim ... + +#env = EDITOR, nvim diff --git a/linux/hypr/.config/hypr/ii/custom/execs.conf b/linux/hypr/.config/hypr/ii/custom/execs.conf new file mode 100644 index 0000000..fbabcc7 --- /dev/null +++ b/linux/hypr/.config/hypr/ii/custom/execs.conf @@ -0,0 +1,7 @@ +# hyprlang noerror false +# You can make apps auto-start here +# Relevant Hyprland wiki section: https://wiki.hyprland.org/Configuring/Keywords/#executing + +# Input method +# exec-once = fcitx5 + diff --git a/linux/hypr/.config/hypr/ii/custom/general.conf b/linux/hypr/.config/hypr/ii/custom/general.conf new file mode 100644 index 0000000..033867e --- /dev/null +++ b/linux/hypr/.config/hypr/ii/custom/general.conf @@ -0,0 +1,27 @@ +# hyprlang noerror false +# Put general config stuff here +# Here's a list of every variable: https://wiki.hyprland.org/Configuring/Variables/ + +# monitor=,addreserved, 0, 0, 0, 0 # Custom reserved area + +# HDMI port: mirror display. To see device name, use `hyprctl monitors` + +exec-once = hyprpm reload -n + +input { + kb_layout = us + kb_variant = altgr-intl + numlock_by_default = true + repeat_delay = 250 + repeat_rate = 35 + + follow_mouse = 1 + off_window_axis_events = 2 + + touchpad { + natural_scroll = yes + disable_while_typing = true + clickfinger_behavior = true + scroll_factor = 0.7 + } +} diff --git a/linux/hypr/.config/hypr/ii/custom/keybinds.conf b/linux/hypr/.config/hypr/ii/custom/keybinds.conf new file mode 100644 index 0000000..3a10b3a --- /dev/null +++ b/linux/hypr/.config/hypr/ii/custom/keybinds.conf @@ -0,0 +1,62 @@ +# hyprlang noerror false +# See https://wiki.hyprland.org/Configuring/Binds/ +#! +##! User +bind = Ctrl+Super, Slash, exec, xdg-open ~/.config/illogical-impulse/config.json # Edit shell config +bind = Ctrl+Super+Alt, Slash, exec, xdg-open ~/.config/hypr/custom/keybinds.conf # Edit extra keybinds + +##! Apps +# bind = Super, Return, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "${TERMINAL}" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # Terminal +# bind = Super, T, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "${TERMINAL}" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # [hidden] (terminal) (alt) +# bind = Ctrl+Alt, T, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "${TERMINAL}" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # [hidden] (terminal) (for Ubuntu people) +# bind = Super, E, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "dolphin" "nautilus" "nemo" "thunar" "${TERMINAL}" "kitty -1 fish -c yazi" # File manager +# bind = Super, W, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "google-chrome-stable" "zen-browser" "firefox" "brave" "chromium" "microsoft-edge-stable" "opera" "librewolf" # Browser +# bind = Super, C, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "code" "codium" "cursor" "zed" "zedit" "zeditor" "kate" "gnome-text-editor" "emacs" "command -v nvim && kitty -1 nvim" "command -v micro && kitty -1 micro" # Code editor +# bind = Ctrl+Super+Shift+Alt, W, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "wps" "onlyoffice-desktopeditors" "libreoffice" # Office software +# bind = Super, X, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "kate" "gnome-text-editor" "emacs" # Text editor +# bind = Ctrl+Super, V, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "pavucontrol-qt" "pavucontrol" # Volume mixer +# bind = Super, I, exec, XDG_CURRENT_DESKTOP=gnome ~/.config/hypr/hyprland/scripts/launch_first_available.sh "qs -p ~/.config/quickshell/$qsConfig/settings.qml" "systemsettings" "gnome-control-center" "better-control" # Settings app +# bind = Ctrl+Shift, Escape, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "gnome-system-monitor" "plasma-systemmonitor --page-name Processes" "command -v btop && kitty -1 fish -c btop" # Task manager + +# Add stuff here +# Use #! to add an extra column on the cheatsheet +# Use ##! to add a section in that column +# Add a comment after a bind to add a description, like above + +#/# bind = Super+Shift, Hash,, # Send to workspace # (1, 2, 3,...) +# We use raw keycodes because some keyboard layouts register number keys as different chars. The codes can be verified with `wev` +bind = Super+Shift, code:10, exec, $scriptsPath/workspace_action.sh movetoworkspace 1 # [hidden] +bind = Super+Shift, code:11, exec, $scriptsPath/workspace_action.sh movetoworkspace 2 # [hidden] +bind = Super+Shift, code:12, exec, $scriptsPath/workspace_action.sh movetoworkspace 3 # [hidden] +bind = Super+Shift, code:15, exec, $scriptsPath/workspace_action.sh movetoworkspace 6 # [hidden] +bind = Super+Shift, code:16, exec, $scriptsPath/workspace_action.sh movetoworkspace 7 # [hidden] +bind = Super+Shift, code:13, exec, $scriptsPath/workspace_action.sh movetoworkspace 4 # [hidden] +bind = Super+Shift, code:14, exec, $scriptsPath/workspace_action.sh movetoworkspace 5 # [hidden] +bind = Super+Shift, code:17, exec, $scriptsPath/workspace_action.sh movetoworkspace 8 # [hidden] +bind = Super+Shift, code:18, exec, $scriptsPath/workspace_action.sh movetoworkspace 9 # [hidden] +bind = Super+Shift, code:19, exec, $scriptsPath/workspace_action.sh movetoworkspace 10 # [hidden] +# keypad numbers +bind = Super+Shift, code:87, exec, $scriptsPath/workspace_action.sh movetoworkspace 1 # [hidden] +bind = Super+Shift, code:88, exec, $scriptsPath/workspace_action.sh movetoworkspace 2 # [hidden] +bind = Super+Shift, code:89, exec, $scriptsPath/workspace_action.sh movetoworkspace 3 # [hidden] +bind = Super+Shift, code:83, exec, $scriptsPath/workspace_action.sh movetoworkspace 4 # [hidden] +bind = Super+Shift, code:84, exec, $scriptsPath/workspace_action.sh movetoworkspace 5 # [hidden] +bind = Super+Shift, code:85, exec, $scriptsPath/workspace_action.sh movetoworkspace 6 # [hidden] +bind = Super+Shift, code:79, exec, $scriptsPath/workspace_action.sh movetoworkspace 7 # [hidden] +bind = Super+Shift, code:80, exec, $scriptsPath/workspace_action.sh movetoworkspace 8 # [hidden] +bind = Super+Shift, code:81, exec, $scriptsPath/workspace_action.sh movetoworkspace 9 # [hidden] +bind = Super+Shift, code:90, exec, $scriptsPath/workspace_action.sh movetoworkspace 10 # [hidden] + +# #/# bind = Super+Shift, Scroll ↑/↓,, # Send to workspace left/right +bind = Super+Shift, mouse_down, movetoworkspace, r-1 # [hidden] +bind = Super+Shift, mouse_up, movetoworkspace, r+1 # [hidden] +bind = Super+Alt, mouse_down, movetoworkspace, -1 # [hidden] +bind = Super+Alt, mouse_up, movetoworkspace, +1 # [hidden] + +#/# bind = Super+Shift, Page_↑/↓,, # Send to workspace left/right +bind = Super+Alt, Page_Down, movetoworkspace, +1 # [hidden] +bind = Super+Alt, Page_Up, movetoworkspace, -1 # [hidden] +bind = Super+Shift, Page_Down, movetoworkspace, r+1 # [hidden] +bind = Super+Shift, Page_Up, movetoworkspace, r-1 # [hidden] +bind = Ctrl+Super+Shift, Right, movetoworkspace, r+1 # [hidden] +bind = Ctrl+Super+Shift, Left, movetoworkspace, r-1 # [hidden] diff --git a/linux/hypr/.config/hypr/ii/custom/rules.conf b/linux/hypr/.config/hypr/ii/custom/rules.conf new file mode 100644 index 0000000..59772d6 --- /dev/null +++ b/linux/hypr/.config/hypr/ii/custom/rules.conf @@ -0,0 +1,12 @@ +# hyprlang noerror false +# You can put custom rules here +# Window/layer rules: https://wiki.hyprland.org/Configuring/Window-Rules/ +# Workspace rules: https://wiki.hyprland.org/Configuring/Workspace-Rules/ + +# ######## Window rules ######## + +# Uncomment to apply global transparency to all windows: +# windowrule = opacity 0.89 override 0.89 override, match:class .* + +# Disable blur for all xwayland apps +# windowrule = no_blur on, match:xwayland 1 diff --git a/linux/hypr/.config/hypr/ii/custom/scripts/__restore_video_wallpaper.sh b/linux/hypr/.config/hypr/ii/custom/scripts/__restore_video_wallpaper.sh new file mode 100644 index 0000000..ea4b4fb --- /dev/null +++ b/linux/hypr/.config/hypr/ii/custom/scripts/__restore_video_wallpaper.sh @@ -0,0 +1,2 @@ +#!/bin/bash +# The content of this script will be generated by switchwall.sh - Don't modify it by yourself. diff --git a/linux/hypr/.config/hypr/ii/custom/variables.conf b/linux/hypr/.config/hypr/ii/custom/variables.conf new file mode 100644 index 0000000..c845c32 --- /dev/null +++ b/linux/hypr/.config/hypr/ii/custom/variables.conf @@ -0,0 +1,25 @@ +# hyprlang noerror false +# For all available variables, see ~/.config/hypr/hyprland/variables.conf + +$scriptsPath = ~/.config/hypr/ii/hyprland/scripts + +# Apps +# PULL REQUESTS ADDING MORE WILL NOT BE ACCEPTED, CONFIG FOR YOURSELF +$terminal = $scriptsPath/launch_first_available.sh "ghostty" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" +$fileManager = $scriptsPath/launch_first_available.sh "thunar" "dolphin" "nautilus" "nemo" "kitty -1 fish -c yazi" +$browser = $scriptsPath/launch_first_available.sh "google-chrome-stable" "zen-browser" "firefox" "brave" "chromium" "microsoft-edge-stable" "opera" "librewolf" +$codeEditor = $scriptsPath/launch_first_available.sh "zeditor" "antigravity" "code" "codium" "cursor" "zed" "zedit" "kate" "gnome-text-editor" "emacs" "command -v nvim && kitty -1 nvim" "command -v micro && kitty -1 micro" +$officeSoftware = $scriptsPath/launch_first_available.sh "wps" "onlyoffice-desktopeditors" "libreoffice" +$textEditor = $scriptsPath/launch_first_available.sh "kate" "gnome-text-editor" "emacs" +$volumeMixer = $scriptsPath/launch_first_available.sh "pavucontrol-qt" "pavucontrol" +$settingsApp = XDG_CURRENT_DESKTOP=gnome $scriptsPath/launch_first_available.sh "qs -p ~/.config/quickshell/$qsConfig/settings.qml" "systemsettings" "gnome-control-center" "better-control" +$taskManager = $scriptsPath/launch_first_available.sh "gnome-system-monitor" "plasma-systemmonitor --page-name Processes" "command -v btop && kitty -1 fish -c btop" + +# The folder within ~/.config/quickshell containing the config +$qsConfig = ii + +# Leave blank like this to load default config. Set to anything to not. +$dontLoadDefaultExecs = +$dontLoadDefaultGeneral = +$dontLoadDefaultRules = +$dontLoadDefaultKeybinds = diff --git a/linux/hypr/.config/hypr/ii/hypridle.conf b/linux/hypr/.config/hypr/ii/hypridle.conf new file mode 100644 index 0000000..5831e26 --- /dev/null +++ b/linux/hypr/.config/hypr/ii/hypridle.conf @@ -0,0 +1,45 @@ +listener { + timeout = 600 + on-timeout = hyprlock +} + +# listener { +# timeout = 620 +# on-timeout = hyprctl dispatch dpms off +# on-resume = hyprctl dispatch dpms on +# } + +general { + lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances. + before_sleep_cmd = pidof hyprlock || (hyprlock & sleep 0.5) # lock screen before suspend, with a small delay to ensure it locks before the screen turns off. + after_sleep_cmd = hyprctl dispatch dpms on # turn screen back on after resume, in case it doesn't turn on automatically. +} + +# listener { +# timeout = 150 # 2.5min. +# on-timeout = brightnessctl -s set 10 # set monitor backlight to minimum, avoid 0 on OLED monitor. +# on-resume = brightnessctl -r # monitor backlight restore. +# } + +# # turn off keyboard backlight, comment out this section if you dont have a keyboard backlight. +# listener { +# timeout = 150 # 2.5min. +# on-timeout = brightnessctl -sd rgb:kbd_backlight set 0 # turn off keyboard backlight. +# on-resume = brightnessctl -rd rgb:kbd_backlight # turn on keyboard backlight. +# } + +# listener { +# timeout = 300 # 5min +# on-timeout = loginctl lock-session # lock screen when timeout has passed +# } + +# listener { +# timeout = 330 # 5.5min +# on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed +# on-resume = hyprctl dispatch dpms on && brightnessctl -r # screen on when activity is detected after timeout has fired. +# } + +# listener { +# timeout = 1800 # 30min +# on-timeout = systemctl suspend # suspend pc +# } diff --git a/linux/hypr/.config/hypr/ii/hypridle.conf.new b/linux/hypr/.config/hypr/ii/hypridle.conf.new new file mode 100644 index 0000000..a77bbb2 --- /dev/null +++ b/linux/hypr/.config/hypr/ii/hypridle.conf.new @@ -0,0 +1,26 @@ +$lock_cmd = hyprctl dispatch global quickshell:lock & pidof qs quickshell hyprlock || hyprlock +# $lock_cmd = pidof hyprlock || hyprlock +$suspend_cmd = systemctl suspend || loginctl suspend + +general { + lock_cmd = $lock_cmd + before_sleep_cmd = loginctl lock-session + after_sleep_cmd = hyprctl dispatch global quickshell:lockFocus + inhibit_sleep = 3 +} + +listener { + timeout = 300 # 5mins + on-timeout = loginctl lock-session +} + +listener { + timeout = 600 # 10mins + on-timeout = hyprctl dispatch dpms off + on-resume = hyprctl dispatch dpms on +} + +listener { + timeout = 900 # 15mins + on-timeout = $suspend_cmd +} diff --git a/linux/hypr/.config/hypr/ii/hyprland.conf b/linux/hypr/.config/hypr/ii/hyprland.conf new file mode 100644 index 0000000..819c6cf --- /dev/null +++ b/linux/hypr/.config/hypr/ii/hyprland.conf @@ -0,0 +1,49 @@ +# This file sources other files in `hyprland` and `custom` folders +# You wanna add your stuff in files in `custom` + +# --- Environment variables --- +source=hyprland/env.conf +# hyprlang noerror true +source=custom/env.conf +# hyprlang noerror false + +# --- Other vars --- +source=hyprland/variables.conf +# hyprlang noerror true +source=custom/variables.conf +# hyprlang noerror false + +# --- Defaults --- +# hyprlang if !dontLoadDefaultExecs +source=hyprland/execs.conf +# hyprlang endif +# hyprlang if !dontLoadDefaultGeneral +source=hyprland/general.conf +# hyprlang endif +# hyprlang if !dontLoadDefaultRules +source=hyprland/rules.conf +# hyprlang endif +# hyprlang if !dontLoadDefaultColors +source=hyprland/colors.conf +# hyprlang endif +# hyprlang if !dontLoadDefaultKeybinds +source=hyprland/keybinds.conf +# hyprlang endif + +# --- Custom --- +# hyprlang noerror true +source=custom/execs.conf +# hyprlang noerror true +source=custom/general.conf +# hyprlang noerror true +source=custom/rules.conf +# hyprlang noerror true +source=custom/keybinds.conf +# hyprlang noerror false + +# --- nwg-displays support --- +source=workspaces.conf +source=monitors.conf + +# --- Shell overrides --- +source=hyprland/shellOverrides/main.conf diff --git a/linux/hypr/.config/hypr/ii/hyprland/colors.conf b/linux/hypr/.config/hypr/ii/hyprland/colors.conf new file mode 100644 index 0000000..28863e3 --- /dev/null +++ b/linux/hypr/.config/hypr/ii/hyprland/colors.conf @@ -0,0 +1,34 @@ +# exec = export SLURP_ARGS='-d -c FFDAD4BB -b 673B3444 -s 00000000' + +general { + col.active_border = rgba(F7DCDE39) + col.inactive_border = rgba(A58A8D30) +} + +misc { + background_color = rgba(1D1011FF) +} + +plugin { + hyprbars { + # Honestly idk if it works like css, but well, why not + bar_text_font = Google Sans Flex Medium, Rubik, Geist, AR One Sans, Reddit Sans, Inter, Roboto, Ubuntu, Noto Sans, sans-serif + bar_height = 30 + bar_padding = 10 + bar_button_padding = 5 + bar_precedence_over_border = true + bar_part_of_window = true + + bar_color = rgba(1D1011FF) + col.text = rgba(F7DCDEFF) + + + # example buttons (R -> L) + # hyprbars-button = color, size, on-click + hyprbars-button = rgb(F7DCDE), 13, 󰖭, hyprctl dispatch killactive + hyprbars-button = rgb(F7DCDE), 13, 󰖯, hyprctl dispatch fullscreen 1 + hyprbars-button = rgb(F7DCDE), 13, 󰖰, hyprctl dispatch movetoworkspacesilent special + } +} + +windowrule = border_color rgba(FFB2BCAA) rgba(FFB2BC77), match:pin 1 diff --git a/linux/hypr/.config/hypr/ii/hyprland/env.conf b/linux/hypr/.config/hypr/ii/hyprland/env.conf new file mode 100644 index 0000000..29a171f --- /dev/null +++ b/linux/hypr/.config/hypr/ii/hyprland/env.conf @@ -0,0 +1,13 @@ +# ############ Wayland ############# +env = ELECTRON_OZONE_PLATFORM_HINT,auto + +######### Applications ######### +env = XDG_DATA_DIRS,$HOME/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share + +# ############ Themes ############# +env = QT_QPA_PLATFORM, wayland;xcb +env = QT_QPA_PLATFORMTHEME, kde +env = XDG_MENU_PREFIX, plasma- + +# ######## Virtual envrionment ######### +env = ILLOGICAL_IMPULSE_VIRTUAL_ENV, ~/.local/state/quickshell/.venv diff --git a/linux/hypr/.config/hypr/ii/hyprland/execs.conf b/linux/hypr/.config/hypr/ii/hyprland/execs.conf new file mode 100644 index 0000000..1f4b0e9 --- /dev/null +++ b/linux/hypr/.config/hypr/ii/hyprland/execs.conf @@ -0,0 +1,25 @@ +# Bar, wallpaper +exec-once = ~/.config/hypr/hyprland/scripts/start_geoclue_agent.sh +exec-once = qs -c $qsConfig & +exec-once = ~/.config/hypr/custom/scripts/__restore_video_wallpaper.sh + +# Core components (authentication, lock screen, notification daemon) +exec-once = gnome-keyring-daemon --start --components=secrets +exec-once = hypridle +exec-once = dbus-update-activation-environment --all +exec-once = sleep 1 && dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # Some fix idk + +# Audio +exec-once = easyeffects --hide-window --service-mode + +# Clipboard: history +# exec-once = wl-paste --watch cliphist store & +exec-once = wl-paste --type text --watch bash -c 'cliphist store && qs -c $qsConfig ipc call cliphistService update' +exec-once = wl-paste --type image --watch bash -c 'cliphist store && qs -c $qsConfig ipc call cliphistService update' + +# Cursor +exec-once = hyprctl setcursor Bibata-Modern-Classic 24 + +# Fix dock pinned apps not launching properly (https://github.com/end-4/dots-hyprland/issues/2200) +# This causes https://github.com/end-4/dots-hyprland/issues/2427 +# exec-once = sleep 3.5 && hyprctl reload && sleep 0.5 && touch ~/.config/quickshell/ii/shell.qml diff --git a/linux/hypr/.config/hypr/ii/hyprland/general.conf b/linux/hypr/.config/hypr/ii/hyprland/general.conf new file mode 100644 index 0000000..9a0649c --- /dev/null +++ b/linux/hypr/.config/hypr/ii/hyprland/general.conf @@ -0,0 +1,171 @@ +# MONITOR CONFIG +monitor=,preferred,auto,1 + +gesture = 3, swipe, move, +gesture = 3, pinch, float +gesture = 4, horizontal, workspace +gesture = 4, up, dispatcher, global, quickshell:overviewWorkspacesToggle +gesture = 4, down, dispatcher, global, quickshell:overviewWorkspacesClose +gestures { + workspace_swipe_distance = 700 + workspace_swipe_cancel_ratio = 0.2 + workspace_swipe_min_speed_to_force = 5 + workspace_swipe_direction_lock = true + workspace_swipe_direction_lock_threshold = 10 + workspace_swipe_create_new = true +} + +general { + # Gaps and border + gaps_in = 4 + gaps_out = 5 + gaps_workspaces = 50 + + border_size = 1 + col.active_border = rgba(0DB7D455) + col.inactive_border = rgba(31313600) + resize_on_border = true + + no_focus_fallback = true + + allow_tearing = true # This just allows the `immediate` window rule to work + + snap { + enabled = true + window_gap = 4 + monitor_gap = 5 + respect_gaps = true + } +} + +dwindle { + preserve_split = true + smart_split = false + smart_resizing = false + # precise_mouse_move = true +} + +decoration { + # 2 = circle, higher = squircle, 4 = very obvious squircle + # Clear squircles look really off; we use only extra .4 here to make the rounding feel more continuous + rounding_power = 2 + rounding = 18 + + blur { + enabled = true + xray = true + special = false + new_optimizations = true + size = 10 + passes = 3 + brightness = 1 + noise = 0.05 + contrast = 0.89 + vibrancy = 0.5 + vibrancy_darkness = 0.5 + popups = false + popups_ignorealpha = 0.6 + input_methods = true + input_methods_ignorealpha = 0.8 + } + + shadow { + enabled = true + ignore_window = true + range = 50 + offset = 0 4 + render_power = 10 + color = rgba(00000027) + } + + # Dim + dim_inactive = true + dim_strength = 0.05 + dim_special = 0.2 +} + +animations { + enabled = true + # Curves + bezier = expressiveFastSpatial, 0.42, 1.67, 0.21, 0.90 + bezier = expressiveSlowSpatial, 0.39, 1.29, 0.35, 0.98 + bezier = expressiveDefaultSpatial, 0.38, 1.21, 0.22, 1.00 + bezier = emphasizedDecel, 0.05, 0.7, 0.1, 1 + bezier = emphasizedAccel, 0.3, 0, 0.8, 0.15 + bezier = standardDecel, 0, 0, 0, 1 + bezier = menu_decel, 0.1, 1, 0, 1 + bezier = menu_accel, 0.52, 0.03, 0.72, 0.08 + bezier = stall, 1, -0.1, 0.7, 0.85 + # Configs + # windows + animation = windowsIn, 1, 3, emphasizedDecel, popin 80% + animation = fadeIn, 1, 3, emphasizedDecel + animation = windowsOut, 1, 2, emphasizedDecel, popin 90% + animation = fadeOut, 1, 2, emphasizedDecel + animation = windowsMove, 1, 3, emphasizedDecel, slide + animation = border, 1, 10, emphasizedDecel + # layers + animation = layersIn, 1, 2.7, emphasizedDecel, popin 93% + animation = layersOut, 1, 2.4, menu_accel, popin 94% + # fade + animation = fadeLayersIn, 1, 0.5, menu_decel + animation = fadeLayersOut, 1, 2.7, stall + # workspaces + animation = workspaces, 1, 7, menu_decel, slide + ## specialWorkspace + animation = specialWorkspaceIn, 1, 2.8, emphasizedDecel, slidevert + animation = specialWorkspaceOut, 1, 1.2, emphasizedAccel, slidevert + # zoom + animation = zoomFactor, 1, 3, standardDecel +} + +input { + kb_layout = us + numlock_by_default = true + repeat_delay = 250 + repeat_rate = 35 + + follow_mouse = 1 + off_window_axis_events = 2 + + touchpad { + natural_scroll = yes + disable_while_typing = true + clickfinger_behavior = true + scroll_factor = 0.7 + } +} + +misc { + disable_hyprland_logo = true + disable_splash_rendering = true + vfr = 1 + vrr = 0 + mouse_move_enables_dpms = true + key_press_enables_dpms = true + animate_manual_resizes = false + animate_mouse_windowdragging = false + enable_swallow = false + swallow_regex = (foot|kitty|allacritty|Alacritty) + on_focus_under_fullscreen = 2 + allow_session_lock_restore = true + session_lock_xray = true + initial_workspace_tracking = false + focus_on_activate = true +} + +binds { + scroll_event_delay = 0 + hide_special_on_workspace_change = true +} + +cursor { + zoom_factor = 1 + zoom_rigid = false + zoom_disable_aa = true + hotspot_padding = 1 +} + +xwayland { + force_zero_scaling = true +} diff --git a/linux/hypr/.config/hypr/ii/hyprland/keybinds.conf b/linux/hypr/.config/hypr/ii/hyprland/keybinds.conf new file mode 100644 index 0000000..7b0c4d1 --- /dev/null +++ b/linux/hypr/.config/hypr/ii/hyprland/keybinds.conf @@ -0,0 +1,272 @@ +# Lines ending with `# [hidden]` won't be shown on cheatsheet +# Lines starting with #! are section headings + +# DO NOT REMOVE THIS EXEC OR YOU WON'T BE ABLE TO USE ANY KEYBIND +exec = hyprctl dispatch submap global +# This is required for catchall to work +submap = global + +#! +##! Shell +# These absolutely need to be on top, or they won't work consistently +bindid = Super, Super_L, Toggle search, global, quickshell:searchToggleRelease # Toggle search +bindid = Super, Super_R, Toggle search, global, quickshell:searchToggleRelease # [hidden] Toggle search +bind = Super, Super_L, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill fuzzel || fuzzel # [hidden] Launcher (fallback) +bind = Super, Super_R, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill fuzzel || fuzzel # [hidden] Launcher (fallback) +binditn = Super, catchall, global, quickshell:searchToggleReleaseInterrupt # [hidden] +bind = Ctrl, Super_L, global, quickshell:searchToggleReleaseInterrupt # [hidden] +bind = Ctrl, Super_R, global, quickshell:searchToggleReleaseInterrupt # [hidden] +bind = Super, mouse:272, global, quickshell:searchToggleReleaseInterrupt # [hidden] +bind = Super, mouse:273, global, quickshell:searchToggleReleaseInterrupt # [hidden] +bind = Super, mouse:274, global, quickshell:searchToggleReleaseInterrupt # [hidden] +bind = Super, mouse:275, global, quickshell:searchToggleReleaseInterrupt # [hidden] +bind = Super, mouse:276, global, quickshell:searchToggleReleaseInterrupt # [hidden] +bind = Super, mouse:277, global, quickshell:searchToggleReleaseInterrupt # [hidden] +bind = Super, mouse_up, global, quickshell:searchToggleReleaseInterrupt # [hidden] +bind = Super, mouse_down,global, quickshell:searchToggleReleaseInterrupt # [hidden] + +bindit = ,Super_L, global, quickshell:workspaceNumber # [hidden] +bindit = ,Super_R, global, quickshell:workspaceNumber # [hidden] +bind = Super, Tab, global, quickshell:overviewWorkspacesToggle # Toggle overview +bindd = Super, V, Clipboard history >> clipboard, global, quickshell:overviewClipboardToggle # Clipboard history >> clipboard +bindd = Super, Period, Emoji >> clipboard, global, quickshell:overviewEmojiToggle # Emoji >> clipboard +bind = Super, A, global, quickshell:sidebarLeftToggle # Toggle left sidebar +bind = Super+Alt, A, global, quickshell:sidebarLeftToggleDetach # [hidden] +bind = Super, B, global, quickshell:sidebarLeftToggle # [hidden] +bind = Super, O, global, quickshell:sidebarLeftToggle # [hidden] +bindd = Super, N, Toggle right sidebar, global, quickshell:sidebarRightToggle # Toggle right sidebar +bindd = Super, Slash, Toggle cheatsheet, global, quickshell:cheatsheetToggle # Toggle cheatsheet +bindd = Super, K, Toggle on-screen keyboard, global, quickshell:oskToggle # Toggle on-screen keyboard +bindd = Super, M, Toggle media controls, global, quickshell:mediaControlsToggle # Toggle media controls +bind = Super, G, global, quickshell:overlayToggle # Toggle overlay +bindd = Ctrl+Alt, Delete, Toggle session menu, global, quickshell:sessionToggle # Toggle session menu +bindd = Super, J, Toggle bar, global, quickshell:barToggle # Toggle bar +bind = Ctrl+Alt, Delete, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill wlogout || wlogout -p layer-shell # [hidden] Session menu (fallback) +bind = Shift+Super+Alt, Slash, exec, qs -p ~/.config/quickshell/$qsConfig/welcome.qml # [hidden] Launch welcome app + +bindle=, XF86MonBrightnessUp, exec, qs -c $qsConfig ipc call brightness increment || brightnessctl s 5%+ # [hidden] +bindle=, XF86MonBrightnessDown, exec, qs -c $qsConfig ipc call brightness decrement || brightnessctl s 5%- # [hidden] +bindle=, XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%+ -l 1.5# [hidden] +bindle=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%- # [hidden] + +bindl = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_SINK@ toggle # [hidden] +bindld = Super+Shift,M, Toggle mute, exec, wpctl set-mute @DEFAULT_SINK@ toggle # [hidden] +bindl = Alt ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle # [hidden] +bindl = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle # [hidden] +bindld = Super+Alt,M, Toggle mic, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle # [hidden] +bindd = Ctrl+Super, T, Toggle wallpaper selector, global, quickshell:wallpaperSelectorToggle # Wallpaper selector +bindd = Ctrl+Super+Alt, T, Select random wallpaper, global, quickshell:wallpaperSelectorRandom # Random wallpaper +bindd = Ctrl+Super, T, Change wallpaper, exec, qs -c $qsConfig ipc call TEST_ALIVE || ~/.config/quickshell/$qsConfig/scripts/colors/switchwall.sh # [hidden] Change wallpaper (fallback) +bind = Ctrl+Super, R, exec, killall ydotool qs quickshell; qs -c $qsConfig & # Restart widgets +bind = Ctrl+Super, P, global, quickshell:panelFamilyCycle # Cycle panel family + +##! Utilities +# Screenshot, Record, OCR, Color picker, Clipboard history +bindd = Super, V, Copy clipboard history entry, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill fuzzel || cliphist list | fuzzel --match-mode fzf --dmenu | cliphist decode | wl-copy # [hidden] Clipboard history >> clipboard (fallback) +bindd = Super, Period, Copy an emoji, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill fuzzel || ~/.config/hypr/hyprland/scripts/fuzzel-emoji.sh copy # [hidden] Emoji >> clipboard (fallback) +bind = Super+Shift, S, global, quickshell:regionScreenshot # Screen snip +bind = Super+Shift, S, exec, qs -c $qsConfig ipc call TEST_ALIVE || pidof slurp || hyprshot --freeze --clipboard-only --mode region --silent # [hidden] Screen snip (fallback) +bind = Super+Shift, A, global, quickshell:regionSearch # Google Lens +bind = Super+Shift, A, exec, qs -c $qsConfig ipc call TEST_ALIVE || pidof slurp || ~/.config/hypr/hyprland/scripts/snip_to_search.sh # [hidden] Google Lens (fallback) +# OCR +bind = Super+Shift, X, global, quickshell:regionOcr # Character recognition >> clipboard +bind = Super+Shift, T, global, quickshell:screenTranslate # Translate screen content +bind = Super+Shift, X,exec, qs -c $qsConfig ipc call TEST_ALIVE || pidof slurp || grim -g "$(slurp $SLURP_ARGS)" "/tmp/ocr_image.png" && tesseract "/tmp/ocr_image.png" stdout -l $(tesseract --list-langs | awk 'NR>1{print $1}' | tr '\\n' '+' | sed 's/\\+$/\\n/') | wl-copy && rm "/tmp/ocr_image.png" # [hidden] +# Color picker +bindd = Super+Shift, C, Color picker, exec, hyprpicker -a # Pick color (Hex) >> clipboard +# Recording stuff +bindl = Super+Shift, R, global, quickshell:regionRecord # Record region (no sound) +bindl = Super+Shift, R, exec, qs -c $qsConfig ipc call TEST_ALIVE || ~/.config/quickshell/$qsConfig/scripts/videos/record.sh # [hidden] Record region (no sound) (fallback) +bindl = Super+Alt, R, global, quickshell:regionRecord # [hidden] Record region (no sound) +bindl = Super+Alt, R, exec, qs -c $qsConfig ipc call TEST_ALIVE || ~/.config/quickshell/$qsConfig/scripts/videos/record.sh # [hidden] Record region (no sound) (fallback) +bindl = Ctrl+Alt, R, exec, ~/.config/quickshell/$qsConfig/scripts/videos/record.sh --fullscreen # [hidden] Record screen (no sound) +bindl = Super+Shift+Alt, R, exec, ~/.config/quickshell/$qsConfig/scripts/videos/record.sh --fullscreen --sound # Record screen (with sound) +# Fullscreen screenshot +bindl = ,Print,exec,grim -o "$(hyprctl activeworkspace -j | jq -r '.monitor')" - | wl-copy # Screenshot >> clipboard +bindln = Ctrl,Print, exec, mkdir -p $(xdg-user-dir PICTURES)/Screenshots && grim -o "$(hyprctl activeworkspace -j | jq -r '.monitor')" $(xdg-user-dir PICTURES)/Screenshots/Screenshot_"$(date '+%Y-%m-%d_%H.%M.%S')".png # Screenshot >> clipboard & file +bindln = Ctrl,Print,exec,grim -o "$(hyprctl activeworkspace -j | jq -r '.monitor')" - | wl-copy # [hidden] Screenshot >> clipboard & file (clipboard) +# AI +bindd = Super+Shift+Alt, mouse:273, Generate AI summary for selected text, exec, ~/.config/hypr/hyprland/scripts/ai/primary-buffer-query.sh # [hidden] AI summary for selected text (requires a running ollama model) + +#! +##! Window +# Focusing +bindm = Super, mouse:272, movewindow # Move +bindm = Super, mouse:274, movewindow # [hidden] +bindm = Super, mouse:273, resizewindow # Resize +#/# bind = Super, ←/↑/→/↓,, # Focus in direction +bind = Super, Left, movefocus, l # [hidden] +bind = Super, Right, movefocus, r # [hidden] +bind = Super, Up, movefocus, u # [hidden] +bind = Super, Down, movefocus, d # [hidden] +bind = Super, BracketLeft, movefocus, l # [hidden] +bind = Super, BracketRight, movefocus, r # [hidden] +#/# bind = Super+Shift, ←/↑/→/↓,, # Move in direction +bind = Super+Shift, Left, movewindow, l # [hidden] +bind = Super+Shift, Right, movewindow, r # [hidden] +bind = Super+Shift, Up, movewindow, u # [hidden] +bind = Super+Shift, Down, movewindow, d # [hidden] +bind = Alt, F4, killactive, # [hidden] Close (Windows) +bind = Super, Q, killactive, # Close +bind = Super+Shift+Alt, Q, exec, hyprctl kill # Forcefully zap a window + + +# Window split ratio +#/# binde = Super, ;/',, # Adjust split ratio +binde = Super, Semicolon, layoutmsg, splitratio -0.1 # [hidden] +binde = Super, Apostrophe, layoutmsg, splitratio +0.1 # [hidden] +# Positioning mode +bind = Super+Alt, Space, togglefloating, # Float/Tile +bind = Super, D, fullscreen, 1 # Maximize +bind = Super, F, fullscreen, 0 # Fullscreen +bind = Super+Alt, F, fullscreenstate, 0 3 # Fullscreen spoof +bind = Super, P, pin # Pin + +#/# bind = Super+Alt, Hash,, # Send to workspace # (1, 2, 3,...) +# We use raw keycodes because some keyboard layouts register number keys as different chars. The codes can be verified with `wev` +bind = Super+Alt, code:10, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 1 # [hidden] +bind = Super+Alt, code:11, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 2 # [hidden] +bind = Super+Alt, code:12, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 3 # [hidden] +bind = Super+Alt, code:13, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 4 # [hidden] +bind = Super+Alt, code:14, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 5 # [hidden] +bind = Super+Alt, code:15, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 6 # [hidden] +bind = Super+Alt, code:16, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 7 # [hidden] +bind = Super+Alt, code:17, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 8 # [hidden] +bind = Super+Alt, code:18, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 9 # [hidden] +bind = Super+Alt, code:19, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 10 # [hidden] +# keypad numbers +bind = Super+Alt, code:87, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 1 # [hidden] +bind = Super+Alt, code:88, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 2 # [hidden] +bind = Super+Alt, code:89, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 3 # [hidden] +bind = Super+Alt, code:83, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 4 # [hidden] +bind = Super+Alt, code:84, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 5 # [hidden] +bind = Super+Alt, code:85, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 6 # [hidden] +bind = Super+Alt, code:79, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 7 # [hidden] +bind = Super+Alt, code:80, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 8 # [hidden] +bind = Super+Alt, code:81, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 9 # [hidden] +bind = Super+Alt, code:90, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 10 # [hidden] + +# #/# bind = Super+Shift, Scroll ↑/↓,, # Send to workspace left/right +bind = Super+Shift, mouse_down, movetoworkspace, r-1 # [hidden] +bind = Super+Shift, mouse_up, movetoworkspace, r+1 # [hidden] +bind = Super+Alt, mouse_down, movetoworkspace, -1 # [hidden] +bind = Super+Alt, mouse_up, movetoworkspace, +1 # [hidden] + +#/# bind = Super+Shift, Page_↑/↓,, # Send to workspace left/right +bind = Super+Alt, Page_Down, movetoworkspace, +1 # [hidden] +bind = Super+Alt, Page_Up, movetoworkspace, -1 # [hidden] +bind = Super+Shift, Page_Down, movetoworkspace, r+1 # [hidden] +bind = Super+Shift, Page_Up, movetoworkspace, r-1 # [hidden] +bind = Ctrl+Super+Shift, Right, movetoworkspace, r+1 # [hidden] +bind = Ctrl+Super+Shift, Left, movetoworkspace, r-1 # [hidden] + +bind = Super+Alt, S, movetoworkspacesilent, special # Send to scratchpad + +bind = Ctrl+Super, S, togglespecialworkspace, # [hidden] + +##! Workspace +# Switching +#/# bind = Super, Hash,, # Focus workspace # (1, 2, 3,...) +# We use raw keycodes because some keyboard layouts register number keys as different chars. The codes can be verified with `wev` +bind = Super, code:10, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 1 # [hidden] +bind = Super, code:11, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 2 # [hidden] +bind = Super, code:12, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 3 # [hidden] +bind = Super, code:13, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 4 # [hidden] +bind = Super, code:14, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 5 # [hidden] +bind = Super, code:15, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 6 # [hidden] +bind = Super, code:16, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 7 # [hidden] +bind = Super, code:17, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 8 # [hidden] +bind = Super, code:18, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 9 # [hidden] +bind = Super, code:19, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 10 # [hidden] +# keypad numbers +bindp = Super, code:87, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 1 # [hidden] +bindp = Super, code:88, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 2 # [hidden] +bindp = Super, code:89, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 3 # [hidden] +bindp = Super, code:83, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 4 # [hidden] +bindp = Super, code:84, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 5 # [hidden] +bindp = Super, code:85, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 6 # [hidden] +bindp = Super, code:79, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 7 # [hidden] +bindp = Super, code:80, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 8 # [hidden] +bindp = Super, code:81, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 9 # [hidden] +bindp = Super, code:90, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 10 # [hidden] + +#/# bind = Ctrl+Super, ←/→,, # Focus left/right +bind = Ctrl+Super, Right, workspace, r+1 # [hidden] +bind = Ctrl+Super, Left, workspace, r-1 # [hidden] +#/# bind = Ctrl+Super+Alt, ←/→,, # [hidden] Focus busy left/right +bind = Ctrl+Super+Alt, Right, workspace, m+1 # [hidden] +bind = Ctrl+Super+Alt, Left, workspace, m-1 # [hidden] +#/# bind = Super, Page_↑/↓,, # Focus left/right +bind = Super, Page_Down, workspace, +1 # [hidden] +bind = Super, Page_Up, workspace, -1 # [hidden] +bind = Ctrl+Super, Page_Down, workspace, r+1 # [hidden] +bind = Ctrl+Super, Page_Up, workspace, r-1 # [hidden] +#/# bind = Super, Scroll ↑/↓,, # Focus left/right +bind = Super, mouse_up, workspace, +1 # [hidden] +bind = Super, mouse_down, workspace, -1 # [hidden] +bind = Ctrl+Super, mouse_up, workspace, r+1 # [hidden] +bind = Ctrl+Super, mouse_down, workspace, r-1 # [hidden] +## Special +bind = Super, S, togglespecialworkspace, # Toggle scratchpad +bind = Super, mouse:275, togglespecialworkspace, # [hidden] +bind = Ctrl+Super, BracketLeft, workspace, -1 # [hidden] +bind = Ctrl+Super, BracketRight, workspace, +1 # [hidden] +bind = Ctrl+Super, Up, workspace, r-5 # [hidden] +bind = Ctrl+Super, Down, workspace, r+5 # [hidden] + +##! Virtual machines +bind = Super+Alt, F1, exec, notify-send 'Entered Virtual Machine submap' 'Keybinds disabled. Hit Super+Alt+F1 to escape' -a 'Hyprland' && hyprctl dispatch submap virtual-machine # Disable keybinds +submap = virtual-machine +bind = Super+Alt, F1, exec, notify-send 'Exited Virtual Machine submap' 'Keybinds re-enabled' -a 'Hyprland' && hyprctl dispatch submap global # [hidden] +submap = global + +#! +# Testing +bind = Super+Alt, f11, exec, bash -c 'RANDOM_IMAGE=$(find ~/Pictures -type f | grep -v -i "nipple" | grep -v -i "pussy" | shuf -n 1); ACTION=$(notify-send "Test notification with body image" "This notification should contain your user account image and Discord icon. Oh and here is a random image in your Pictures folder: \"Testing" -a "Hyprland keybind" -p -h "string:image-path:/var/lib/AccountsService/icons/$USER" -t 6000 -i "discord" -A "openImage=Profile image" -A "action2=Open the random image" -A "action3=Useless button"); [[ $ACTION == *openImage ]] && xdg-open "/var/lib/AccountsService/icons/$USER"; [[ $ACTION == *action2 ]] && xdg-open \"$RANDOM_IMAGE\"' # [hidden] +bind = Super+Alt, f12, exec, bash -c 'RANDOM_IMAGE=$(find ~/Pictures -type f | grep -v -i "nipple" | grep -v -i "pussy" | shuf -n 1); ACTION=$(notify-send "Test notification" "This notification should contain a random image in your Pictures folder and Discord icon.\nFlick right to dismiss!" -a "Discord (fake)" -p -h "string:image-path:$RANDOM_IMAGE" -t 6000 -i "discord" -A "openImage=Profile image" -A "action2=Useless button"); [[ $ACTION == *openImage ]] && xdg-open "/var/lib/AccountsService/icons/$USER"' # [hidden] +bind = Super+Alt, Equal, exec, notify-send "Urgent notification" "Ah hell no" -u critical -a 'Hyprland keybind' # [hidden] + +##! Session +bindd = Super, L, Lock, exec, loginctl lock-session # Lock +bindld = Super+Shift, L, Suspend system, exec, systemctl suspend || loginctl suspend # Sleep +# bindl=,switch:on:Lid Switch, exec, systemctl suspend || loginctl suspend # [hidden] Suspend when laptop lid is closed, uncomment if for whatever reason it's not the default behavior +bindd = Ctrl+Shift+Alt+Super, Delete, Shutdown, exec, systemctl poweroff || loginctl poweroff # [hidden] Power off + +##! Screen +# Zoom +binde = Super, Minus, exec, ~/.config/hypr/hyprland/scripts/zoom.sh decrease 0.3 # Zoom out +binde = Super, Equal, exec, ~/.config/hypr/hyprland/scripts/zoom.sh increase 0.3 # Zoom in +# Zoom with keypad +binde = Super, code:82, exec, qs -c $qsConfig ipc call zoom zoomOut # [hidden] Zoom out +binde = Super, code:86, exec, qs -c $qsConfig ipc call zoom zoomIn # [hidden] Zoom in +binde = Super, code:82, exec, qs -c $qsConfig ipc call TEST_ALIVE || ~/.config/hypr/hyprland/scripts/zoom.sh decrease 0.1 # [hidden] Zoom out +binde = Super, code:86, exec, qs -c $qsConfig ipc call TEST_ALIVE || ~/.config/hypr/hyprland/scripts/zoom.sh increase 0.1 # [hidden] Zoom in + +##! Media +bindl= Super+Shift, N, exec, playerctl next || playerctl position `bc <<< "100 * $(playerctl metadata mpris:length) / 1000000 / 100"` # Next track +bindl= ,XF86AudioNext, exec, playerctl next || playerctl position `bc <<< "100 * $(playerctl metadata mpris:length) / 1000000 / 100"` # [hidden] +bindl= ,XF86AudioPrev, exec, playerctl previous # [hidden] +bind = Super+Shift+Alt, mouse:275, exec, playerctl previous # [hidden] +bind = Super+Shift+Alt, mouse:276, exec, playerctl next || playerctl position `bc <<< "100 * $(playerctl metadata mpris:length) / 1000000 / 100"` # [hidden] +bindl= Super+Shift, B, exec, playerctl previous # Previous track +bindl= Super+Shift, P, exec, playerctl play-pause # Play/pause media +bindl= ,XF86AudioPlay, exec, playerctl play-pause # [hidden] +bindl= ,XF86AudioPause, exec, playerctl play-pause # [hidden] + +##! Apps +bind = Super, Return, exec, $terminal # Terminal +bind = Super, T, exec, $terminal # [hidden] (terminal) (alt) +bind = Ctrl+Alt, T, exec, $terminal # [hidden] (terminal) (for Ubuntu people) +bind = Super, E, exec, $fileManager # File manager +bind = Super, W, exec, $browser # Browser +bind = Super, C, exec, $codeEditor # Code editor +bind = Ctrl+Super+Shift+Alt, W, exec, $officeSoftware # Office software +bind = Super, X, exec, $textEditor # Text editor +bind = Ctrl+Super, V, exec, $volumeMixer # Volume mixer +bind = Super, I, exec, $settingsApp # Settings app +bind = Ctrl+Shift, Escape, exec, $taskManager # Task manager + +# Cursed stuff +## Make window not amogus large +bind = Ctrl+Super, Backslash, resizeactive, exact 640 480 # [hidden] + diff --git a/linux/hypr/.config/hypr/ii/hyprland/rules.conf b/linux/hypr/.config/hypr/ii/hyprland/rules.conf new file mode 100644 index 0000000..38e8cf5 --- /dev/null +++ b/linux/hypr/.config/hypr/ii/hyprland/rules.conf @@ -0,0 +1,173 @@ +# ######## Window rules ######## + +# Disable blur for xwayland context menus +windowrule = match:class ^()$, match:title ^()$, no_blur on + +# Disable blur for every window +windowrule = match:class .*, no_blur on + +# Floating +windowrule = match:title ^(Open File)(.*)$, center on +windowrule = match:title ^(Open File)(.*)$, float on +windowrule = match:title ^(Select a File)(.*)$, center on +windowrule = match:title ^(Select a File)(.*)$, float on +windowrule = match:title ^(Choose wallpaper)(.*)$, center on +windowrule = match:title ^(Choose wallpaper)(.*)$, float on +windowrule = match:title ^(Choose wallpaper)(.*)$, size (monitor_w*.60) (monitor_h*.65) +windowrule = match:title ^(Open Folder)(.*)$, center on +windowrule = match:title ^(Open Folder)(.*)$, float on +windowrule = match:title ^(Save As)(.*)$, center on +windowrule = match:title ^(Save As)(.*)$, float on +windowrule = match:title ^(Library)(.*)$, center on +windowrule = match:title ^(Library)(.*)$, float on +windowrule = match:title ^(File Upload)(.*)$, center on +windowrule = match:title ^(File Upload)(.*)$, float on +windowrule = match:title ^(.*)(wants to save)$, center on +windowrule = match:title ^(.*)(wants to save)$, float on +windowrule = match:title ^(.*)(wants to open)$, center on +windowrule = match:title ^(.*)(wants to open)$, float on +windowrule = match:class ^(blueberry\.py)$, float on +windowrule = match:class ^(guifetch)$ , float on # FlafyDev/guifetch +windowrule = match:class ^(pavucontrol)$, float on +windowrule = match:class ^(pavucontrol)$, size (monitor_w*.45) (monitor_h*.45) +windowrule = match:class ^(pavucontrol)$, center on +windowrule = match:class ^(org.pulseaudio.pavucontrol)$, float on +windowrule = match:class ^(org.pulseaudio.pavucontrol)$, size (monitor_w*.45) (monitor_h*.45) +windowrule = match:class ^(org.pulseaudio.pavucontrol)$, center on +windowrule = match:class ^(nm-connection-editor)$, float on +windowrule = match:class ^(nm-connection-editor)$, size (monitor_w*.45) (monitor_h*.45) +windowrule = match:class ^(nm-connection-editor)$, center on +windowrule = match:class .*plasmawindowed.*, float on +windowrule = match:class kcm_.*, float on +windowrule = match:class .*bluedevilwizard, float on +windowrule = match:title .*Welcome, float on +windowrule = match:title ^(illogical-impulse Settings)$, float on +windowrule = match:title .*Shell conflicts.*, float on +windowrule = match:class org.freedesktop.impl.portal.desktop.kde, float on +windowrule = match:class org.freedesktop.impl.portal.desktop.kde, size (monitor_w*.60) (monitor_h*.65) +windowrule = match:class ^(Zotero)$, float on +windowrule = match:class ^(Zotero)$, size (monitor_w*.45) (monitor_h*.45) + +# Move +# kde-material-you-colors spawns a window when changing dark/light theme. This is to make sure it doesn't interfere at all. +windowrule = match:class ^(plasma-changeicons)$, float on +windowrule = match:class ^(plasma-changeicons)$, no_initial_focus on +windowrule = match:class ^(plasma-changeicons)$, move 999999 999999 +# stupid dolphin copy +windowrule = match:title ^(Copying — Dolphin)$, move 40 80 + +# Tiling +windowrule = match:class ^dev\.warp\.Warp$, tile on + +# Picture-in-Picture +windowrule = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, float on +windowrule = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, keep_aspect_ratio on +windowrule = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, move (monitor_w*.73) (monitor_h*.72) +windowrule = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, size (monitor_w*.25) (monitor_h*.25) +windowrule = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, float on +windowrule = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, pin on + +# Screen sharing +windowrule = match:title .*is sharing (a window|your screen).*, float on +windowrule = match:title .*is sharing (a window|your screen).*, pin on +windowrule = match:title .*is sharing (a window|your screen).*, move (monitor_w*.5-window_w*.5) (monitor_h-window_h-12) + +# --- Tearing --- +windowrule = match:title .*\.exe, immediate on +windowrule = match:title .*minecraft.*, immediate on +windowrule = match:class ^(steam_app).*, immediate on + +# Fix Jetbrain IDEs focus/rerendering problem +windowrule = match:class ^jetbrains-.*$, match:float 1, match:title ^$|^\s$|^win\d+$, no_initial_focus on + +# No shadow for tiled windows (matches windows that are not floating). +windowrule = match:float 0, no_shadow on + +# ######## Workspace rules ######## +workspace = special:special, gapsout:30 + +# ######## Layer rules ######## +layerrule = match:namespace .*, xray on +# layerrule = match:namespace .*, no_anim on +layerrule = match:namespace walker, no_anim on +layerrule = match:namespace selection, no_anim on +layerrule = match:namespace overview, no_anim on +layerrule = match:namespace anyrun, no_anim on +layerrule = match:namespace indicator.*, no_anim on +layerrule = match:namespace osk, no_anim on +layerrule = match:namespace hyprpicker, no_anim on + +layerrule = match:namespace noanim, no_anim on +layerrule = match:namespace gtk-layer-shell, blur on +layerrule = match:namespace gtk-layer-shell, ignore_alpha 0 +layerrule = match:namespace launcher, blur on +layerrule = match:namespace launcher, ignore_alpha 0.5 +layerrule = match:namespace notifications, blur on +layerrule = match:namespace notifications, ignore_alpha 0.69 +layerrule = match:namespace logout_dialog # wlogout, blur on + +# ags +layerrule = match:namespace sideleft.*, animation slide left +layerrule = match:namespace sideright.*, animation slide right +layerrule = match:namespace session[0-9]*, blur on +layerrule = match:namespace bar[0-9]*, blur on +layerrule = match:namespace bar[0-9]*, ignore_alpha 0.6 +layerrule = match:namespace barcorner.*, blur on +layerrule = match:namespace barcorner.*, ignore_alpha 0.6 +layerrule = match:namespace dock[0-9]*, blur on +layerrule = match:namespace dock[0-9]*, ignore_alpha 0.6 +layerrule = match:namespace indicator.*, blur on +layerrule = match:namespace indicator.*, ignore_alpha 0.6 +layerrule = match:namespace overview[0-9]*, blur on +layerrule = match:namespace overview[0-9]*, ignore_alpha 0.6 +layerrule = match:namespace cheatsheet[0-9]*, blur on +layerrule = match:namespace cheatsheet[0-9]*, ignore_alpha 0.6 +layerrule = match:namespace sideright[0-9]*, blur on +layerrule = match:namespace sideright[0-9]*, ignore_alpha 0.6 +layerrule = match:namespace sideleft[0-9]*, blur on +layerrule = match:namespace sideleft[0-9]*, ignore_alpha 0.6 +layerrule = match:namespace indicator.*, blur on +layerrule = match:namespace indicator.*, ignore_alpha 0.6 +layerrule = match:namespace osk[0-9]*, blur on +layerrule = match:namespace osk[0-9]*, ignore_alpha 0.6 + +# Quickshell +# Quickshell: illogical-impulse +layerrule = match:namespace quickshell:.*, blur_popups on +layerrule = match:namespace quickshell:.*, blur on +layerrule = match:namespace quickshell:.*, ignore_alpha 0.79 +layerrule = match:namespace quickshell:bar, animation slide +layerrule = match:namespace quickshell:actionCenter, no_anim on +layerrule = match:namespace quickshell:cheatsheet, animation slide bottom +layerrule = match:namespace quickshell:dock, animation slide bottom +layerrule = match:namespace quickshell:screenCorners, animation popin 120% +layerrule = match:namespace quickshell:lockWindowPusher, no_anim on +layerrule = match:namespace quickshell:notificationPopup, animation fade +layerrule = match:namespace quickshell:overlay, no_anim on +layerrule = match:namespace quickshell:overlay, ignore_alpha 1 +layerrule = match:namespace quickshell:overview, no_anim on +layerrule = match:namespace quickshell:osk, animation slide bottom +layerrule = match:namespace quickshell:polkit, no_anim on +layerrule = match:namespace quickshell:popup, xray off # No weird color for bar tooltips (this in theory should suffice) +layerrule = match:namespace quickshell:popup, ignore_alpha 1 # No weird color for bar tooltips (but somehow this is necessary) +layerrule = match:namespace quickshell:mediaControls, ignore_alpha 1 # Same as above +layerrule = match:namespace quickshell:reloadPopup, animation slide +layerrule = match:namespace quickshell:regionSelector, no_anim on +layerrule = match:namespace quickshell:screenshot, no_anim on +layerrule = match:namespace quickshell:session, blur on +layerrule = match:namespace quickshell:session, no_anim on +layerrule = match:namespace quickshell:session, ignore_alpha 0 +layerrule = match:namespace quickshell:sidebarRight, animation slide right +layerrule = match:namespace quickshell:sidebarLeft, animation slide left +layerrule = match:namespace quickshell:verticalBar, animation slide +layerrule = match:namespace quickshell:osk, order -1 +# Quickshell: waffles +layerrule = match:namespace quickshell:wallpaperSelector, animation slide top +layerrule = match:namespace quickshell:wNotificationCenter, no_anim on +layerrule = match:namespace quickshell:wOnScreenDisplay, no_anim on +layerrule = match:namespace quickshell:wStartMenu, no_anim on +layerrule = match:namespace quickshell:wTaskView, ignore_alpha 0 +layerrule = match:namespace quickshell:wTaskView, no_anim on + +# Launchers need to be FAST +layerrule = match:namespace gtk4-layer-shell, no_anim on diff --git a/linux/hypr/.config/hypr/ii/hyprland/scripts/ai/license_show-loaded-ollama-models.txt b/linux/hypr/.config/hypr/ii/hyprland/scripts/ai/license_show-loaded-ollama-models.txt new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/linux/hypr/.config/hypr/ii/hyprland/scripts/ai/license_show-loaded-ollama-models.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/linux/hypr/.config/hypr/ii/hyprland/scripts/ai/primary-buffer-query.sh b/linux/hypr/.config/hypr/ii/hyprland/scripts/ai/primary-buffer-query.sh new file mode 100755 index 0000000..eac998a --- /dev/null +++ b/linux/hypr/.config/hypr/ii/hyprland/scripts/ai/primary-buffer-query.sh @@ -0,0 +1,43 @@ +#!/usr/bin/env bash + +# Default system prompt +SYSTEM_PROMPT="You are a helpful, quick assistant that provides brief and concise explanation \ +to given content in at most 100 characters. If the given content is not in English, translate \ +it to English. If the content is an English word, provide its meaning. If the content is a name, \ +provide some info about it. For a math expression, provide a simplification, \ +each step on a line following this style: \`2x=11 (subtract 7 from both sides)\`. \ +If you do not know the answer, simply say 'No info available'. \ +Only respond for the appropriate case and use as little text as possible.\ +The content:" + +first_loaded_model=$("$(dirname "$0")/show-loaded-ollama-models.sh" -j | jq -r '.[0].model' 2>/dev/null) || first_loaded_model="" +model=${first_loaded_model:-"llama3.2"} + +# Parse command-line arguments +while [[ "$#" -gt 0 ]]; do + case $1 in + --model) model="$2"; shift ;; # Set the model from the flag + *) echo "Unknown parameter: $1"; exit 1 ;; + esac + shift +done + +# Combine the system prompt with the clipboard content +content=$(wl-paste -p | tr '\n' ' ' | head -c 2000) # 2000 char limit to prevent overflow + +# Properly escape content for JSON using jq +prompt_json=$(jq -n --arg system_prompt "$SYSTEM_PROMPT" --arg content "$content" '$system_prompt + " " + $content') + +# Make the API call with the specified or default model +api_payload=$(jq -n --arg model "$model" --argjson prompt "$prompt_json" --argjson stream false \ + '{model: $model, prompt: $prompt, stream: $stream}') +response=$(curl -s http://localhost:11434/api/generate -d "$api_payload" | jq -r '.response' 2>/dev/null) + +# Check if content is a single line and no longer than 30 characters +if [[ ${#content} -le 30 && "$content" != *$'\n'* ]]; then + notify-send --app-name="Text selection query" --expire-time=10000 \ + "$content" "$response" +else + notify-send --app-name="Text selection query" --expire-time=10000 \ + "AI Response" "$response" +fi diff --git a/linux/hypr/.config/hypr/ii/hyprland/scripts/ai/show-loaded-ollama-models.sh b/linux/hypr/.config/hypr/ii/hyprland/scripts/ai/show-loaded-ollama-models.sh new file mode 100755 index 0000000..8dc8878 --- /dev/null +++ b/linux/hypr/.config/hypr/ii/hyprland/scripts/ai/show-loaded-ollama-models.sh @@ -0,0 +1,99 @@ +#!/bin/bash + +# From strikeoncmputrz/LLM_Scripts +# License: Apache-2.0, can be found in the same folder as this script + +# Global Vars +ollama_url=http://localhost +port="11434" +blobs=() +model_name_paths=() + + +#Parse arguments +while [ "$#" -gt 0 ]; do + case $1 in + -h|--help) + echo + echo " Identifies Ollama models running on this operating system by parsing running processes." + echo + echo " Usage: $0 [options]" + echo + echo " Options:" + echo " -j, --json_output Prints result as a json object. Other output disabled. (Default: false)" + echo " -p, --port [port number] Specify Ollama Server port (Default: 11434)" + echo " -u, --ollama_url [url] Specify Ollama Server URL (Default: http://localhost)" + echo + echo " Dependencies: jq" + exit 0 + ;; + -j|--json_output) + json_out=1 + shift 1 + ;; + -u|--ollama_url) + ollama_url=$2 + shift 2 + ;; + -p|--port) + port=$2 + shift 2 + ;; + *) + echo "Unknown option: $1" + exit 1 + ;; + esac +done + +compare_running_models_and_modelfiles() { + json_match=() + json_output=() + local matching_models=() + OLDIFS=$IFS + for ((i=0; i<${#model_name_paths[@]}; i++)); do # Iterate over the array of modelname,blob-path + for blob in "${blobs[@]}"; do + IFS=',', read -ra fields <<< "${model_name_paths[i]}" # Split the string into parts + if [ "${fields[1]}" == "$blob" ]; then # Check if current 'field' matches a blob + matching_models+=( '{ "model": "'"${fields[0]}"'", "path": "'"${fields[1]}"'"}') # Add to list of matching models + fi + done + done + + if [ -z "$json_out" ]; then + echo -e "\nModel Found: \n $(echo ${matching_models[*]} | jq '.' | sed s/[{}]//g) \n" + else + local json_match="${matching_models[*]}" + json_output=$(echo $json_match | jq -c -s .) + echo "$json_output" + fi + IFS=$OLDIFS +} + +get_running_model_paths() { + blobs=$(ps aux | grep -- '--model' | grep -v grep | grep -Po '(?<=--model\s).*' | cut -d ' ' -f1) + if [ -z "$blobs" ]; then + echo -e "\n\n Warning: No running Ollama models detected!\n" + exit 0 + fi +} + +parse_modelfiles() { + if [ -z "$json_out" ]; then + echo -e "\nConnecting to $ollama_url:$port\n" + if [ -z "$(curl -s $ollama_url:$port)" ]; then + echo -e "Could not connect to Ollama. Check the ollama_url parameter and that the server is running\n" + exit 1 + fi + curl -s "$ollama_url:$port" + fi + local models=( $(curl -s "$ollama_url:$port/api/tags" | jq -r '.models[].name') ) + for model in "${models[@]}"; do + local modelfile=$(curl -s "$ollama_url:$port/api/show" -d '{ "name": "'"$model"'", "modelfile": true }' | jq -r '.modelfile') + model_name_paths+=($model,$(echo "$modelfile" | awk '/^FROM/{print $2}')) + done +} + +parse_modelfiles +get_running_model_paths +compare_running_models_and_modelfiles diff --git a/linux/hypr/.config/hypr/ii/hyprland/scripts/fuzzel-emoji.sh b/linux/hypr/.config/hypr/ii/hyprland/scripts/fuzzel-emoji.sh new file mode 100755 index 0000000..7a1b9e1 --- /dev/null +++ b/linux/hypr/.config/hypr/ii/hyprland/scripts/fuzzel-emoji.sh @@ -0,0 +1,1888 @@ +#!/bin/bash +set -euo pipefail + +MODE="${1:-type}" + +emoji="$(sed '1,/^### DATA ###$/d' "$0" | fuzzel --match-mode fzf --dmenu | cut -d ' ' -f 1 | tr -d '\n')" + +case "$MODE" in + type) + wtype "${emoji}" || wl-copy "${emoji}" + ;; + copy) + wl-copy "${emoji}" + ;; + both) + wtype "${emoji}" || true + wl-copy "${emoji}" + ;; + *) + echo "Usage: $0 [type|copy|both]" + exit 1 + ;; +esac +exit +### DATA ### +😀 grinning face face smile happy joy :D grin +😃 grinning face with big eyes face happy joy haha :D :) smile funny +😄 grinning face with smiling eyes face happy joy funny haha laugh like :D :) smile +😁 beaming face with smiling eyes face happy smile joy kawaii +😆 grinning squinting face happy joy lol satisfied haha face glad XD laugh +😅 grinning face with sweat face hot happy laugh sweat smile relief +🤣 rolling on the floor laughing face rolling floor laughing lol haha rofl +😂 face with tears of joy face cry tears weep happy happytears haha +🙂 slightly smiling face face smile +🙃 upside down face face flipped silly smile +😉 winking face face happy mischievous secret ;) smile eye +😊 smiling face with smiling eyes face smile happy flushed crush embarrassed shy joy +😇 smiling face with halo face angel heaven halo +🥰 smiling face with hearts face love like affection valentines infatuation crush hearts adore +😍 smiling face with heart eyes face love like affection valentines infatuation crush heart +🤩 star struck face smile starry eyes grinning +😘 face blowing a kiss face love like affection valentines infatuation kiss +😗 kissing face love like face 3 valentines infatuation kiss +☺️ smiling face face blush massage happiness +😚 kissing face with closed eyes face love like affection valentines infatuation kiss +😙 kissing face with smiling eyes face affection valentines infatuation kiss +😋 face savoring food happy joy tongue smile face silly yummy nom delicious savouring +😛 face with tongue face prank childish playful mischievous smile tongue +😜 winking face with tongue face prank childish playful mischievous smile wink tongue +🤪 zany face face goofy crazy +😝 squinting face with tongue face prank playful mischievous smile tongue +🤑 money mouth face face rich dollar money +🤗 hugging face face smile hug +🤭 face with hand over mouth face whoops shock surprise +🤫 shushing face face quiet shhh +🤔 thinking face face hmmm think consider +🤐 zipper mouth face face sealed zipper secret +🤨 face with raised eyebrow face distrust scepticism disapproval disbelief surprise +😐 neutral face indifference meh :| neutral +😑 expressionless face face indifferent - - meh deadpan +😶 face without mouth face hellokitty +😏 smirking face face smile mean prank smug sarcasm +😒 unamused face indifference bored straight face serious sarcasm unimpressed skeptical dubious side eye +🙄 face with rolling eyes face eyeroll frustrated +😬 grimacing face face grimace teeth +🤥 lying face face lie pinocchio +😌 relieved face face relaxed phew massage happiness +😔 pensive face face sad depressed upset +😪 sleepy face face tired rest nap +🤤 drooling face face +😴 sleeping face face tired sleepy night zzz +😷 face with medical mask face sick ill disease +🤒 face with thermometer sick temperature thermometer cold fever +🤕 face with head bandage injured clumsy bandage hurt +🤢 nauseated face face vomit gross green sick throw up ill +🤮 face vomiting face sick +🤧 sneezing face face gesundheit sneeze sick allergy +🥵 hot face face feverish heat red sweating +🥶 cold face face blue freezing frozen frostbite icicles +🥴 woozy face face dizzy intoxicated tipsy wavy +😵 dizzy face spent unconscious xox dizzy +🤯 exploding head face shocked mind blown +🤠 cowboy hat face face cowgirl hat +🥳 partying face face celebration woohoo +😎 smiling face with sunglasses face cool smile summer beach sunglass +🤓 nerd face face nerdy geek dork +🧐 face with monocle face stuffy wealthy +😕 confused face face indifference huh weird hmmm :/ +😟 worried face face concern nervous :( +🙁 slightly frowning face face frowning disappointed sad upset +☹️ frowning face face sad upset frown +😮 face with open mouth face surprise impressed wow whoa :O +😯 hushed face face woo shh +😲 astonished face face xox surprised poisoned +😳 flushed face face blush shy flattered sex +🥺 pleading face face begging mercy +😦 frowning face with open mouth face aw what +😧 anguished face face stunned nervous +😨 fearful face face scared terrified nervous oops huh +😰 anxious face with sweat face nervous sweat +😥 sad but relieved face face phew sweat nervous +😢 crying face face tears sad depressed upset :'( +😭 loudly crying face face cry tears sad upset depressed sob +😱 face screaming in fear face munch scared omg +😖 confounded face face confused sick unwell oops :S +😣 persevering face face sick no upset oops +😞 disappointed face face sad upset depressed :( +😓 downcast face with sweat face hot sad tired exercise +😩 weary face face tired sleepy sad frustrated upset +😫 tired face sick whine upset frustrated +🥱 yawning face tired sleepy +😤 face with steam from nose face gas phew proud pride +😡 pouting face angry mad hate despise +😠 angry face mad face annoyed frustrated +🤬 face with symbols on mouth face swearing cursing cussing profanity expletive +😈 smiling face with horns devil horns +👿 angry face with horns devil angry horns +💀 skull dead skeleton creepy death +☠️ skull and crossbones poison danger deadly scary death pirate evil +💩 pile of poo hankey shitface fail turd shit +🤡 clown face face +👹 ogre monster red mask halloween scary creepy devil demon japanese ogre +👺 goblin red evil mask monster scary creepy japanese goblin +👻 ghost halloween spooky scary +👽 alien UFO paul weird outer space +👾 alien monster game arcade play +🤖 robot computer machine bot +😺 grinning cat animal cats happy smile +😸 grinning cat with smiling eyes animal cats smile +😹 cat with tears of joy animal cats haha happy tears +😻 smiling cat with heart eyes animal love like affection cats valentines heart +😼 cat with wry smile animal cats smirk +😽 kissing cat animal cats kiss +🙀 weary cat animal cats munch scared scream +😿 crying cat animal tears weep sad cats upset cry +😾 pouting cat animal cats +🙈 see no evil monkey monkey animal nature haha +🙉 hear no evil monkey animal monkey nature +🙊 speak no evil monkey monkey animal nature omg +💋 kiss mark face lips love like affection valentines +💌 love letter email like affection envelope valentines +💘 heart with arrow love like heart affection valentines +💝 heart with ribbon love valentines +💖 sparkling heart love like affection valentines +💗 growing heart like love affection valentines pink +💓 beating heart love like affection valentines pink heart +💞 revolving hearts love like affection valentines +💕 two hearts love like affection valentines heart +💟 heart decoration purple-square love like +❣️ heart exclamation decoration love +💔 broken heart sad sorry break heart heartbreak +❤️ red heart love like valentines +🧡 orange heart love like affection valentines +💛 yellow heart love like affection valentines +💚 green heart love like affection valentines +💙 blue heart love like affection valentines +💜 purple heart love like affection valentines +🤎 brown heart coffee +🖤 black heart evil +🤍 white heart pure +💯 hundred points score perfect numbers century exam quiz test pass hundred +💢 anger symbol angry mad +💥 collision bomb explode explosion collision blown +💫 dizzy star sparkle shoot magic +💦 sweat droplets water drip oops +💨 dashing away wind air fast shoo fart smoke puff +🕳️ hole embarrassing +💣 bomb boom explode explosion terrorism +💬 speech balloon bubble words message talk chatting +👁️‍🗨️ eye in speech bubble info +🗨️ left speech bubble words message talk chatting +🗯️ right anger bubble caption speech thinking mad +💭 thought balloon bubble cloud speech thinking dream +💤 zzz sleepy tired dream +👋 waving hand hands gesture goodbye solong farewell hello hi palm +🤚 raised back of hand fingers raised backhand +🖐️ hand with fingers splayed hand fingers palm +✋ raised hand fingers stop highfive palm ban +🖖 vulcan salute hand fingers spock star trek +👌 ok hand fingers limbs perfect ok okay +🤏 pinching hand tiny small size +✌️ victory hand fingers ohyeah hand peace victory two +🤞 crossed fingers good lucky +🤟 love you gesture hand fingers gesture +🤘 sign of the horns hand fingers evil eye sign of horns rock on +🤙 call me hand hands gesture shaka +👈 backhand index pointing left direction fingers hand left +👉 backhand index pointing right fingers hand direction right +👆 backhand index pointing up fingers hand direction up +🖕 middle finger hand fingers rude middle flipping +👇 backhand index pointing down fingers hand direction down +☝️ index pointing up hand fingers direction up +👍 thumbs up thumbsup yes awesome good agree accept cool hand like +1 +👎 thumbs down thumbsdown no dislike hand -1 +✊ raised fist fingers hand grasp +👊 oncoming fist angry violence fist hit attack hand +🤛 left facing fist hand fistbump +🤜 right facing fist hand fistbump +👏 clapping hands hands praise applause congrats yay +🙌 raising hands gesture hooray yea celebration hands +👐 open hands fingers butterfly hands open +🤲 palms up together hands gesture cupped prayer +🤝 handshake agreement shake +🙏 folded hands please hope wish namaste highfive pray +✍️ writing hand lower left ballpoint pen stationery write compose +💅 nail polish beauty manicure finger fashion nail +🤳 selfie camera phone +💪 flexed biceps arm flex hand summer strong biceps +🦾 mechanical arm accessibility +🦿 mechanical leg accessibility +🦵 leg kick limb +🦶 foot kick stomp +👂 ear face hear sound listen +🦻 ear with hearing aid accessibility +👃 nose smell sniff +🧠 brain smart intelligent +🦷 tooth teeth dentist +🦴 bone skeleton +👀 eyes look watch stalk peek see +👁️ eye face look see watch stare +👅 tongue mouth playful +👄 mouth mouth kiss +👶 baby child boy girl toddler +🧒 child gender-neutral young +👦 boy man male guy teenager +👧 girl female woman teenager +🧑 person gender-neutral person +👱 person blond hair hairstyle +👨 man mustache father dad guy classy sir moustache +🧔 man beard person bewhiskered +👨‍🦰 man red hair hairstyle +👨‍🦱 man curly hair hairstyle +👨‍🦳 man white hair old elder +👨‍🦲 man bald hairless +👩 woman female girls lady +👩‍🦰 woman red hair hairstyle +🧑‍🦰 person red hair hairstyle +👩‍🦱 woman curly hair hairstyle +🧑‍🦱 person curly hair hairstyle +👩‍🦳 woman white hair old elder +🧑‍🦳 person white hair elder old +👩‍🦲 woman bald hairless +🧑‍🦲 person bald hairless +👱‍♀️ woman blond hair woman female girl blonde person +👱‍♂️ man blond hair man male boy blonde guy person +🧓 older person human elder senior gender-neutral +👴 old man human male men old elder senior +👵 old woman human female women lady old elder senior +🙍 person frowning worried +🙍‍♂️ man frowning male boy man sad depressed discouraged unhappy +🙍‍♀️ woman frowning female girl woman sad depressed discouraged unhappy +🙎 person pouting upset +🙎‍♂️ man pouting male boy man +🙎‍♀️ woman pouting female girl woman +🙅 person gesturing no decline +🙅‍♂️ man gesturing no male boy man nope +🙅‍♀️ woman gesturing no female girl woman nope +🙆 person gesturing ok agree +🙆‍♂️ man gesturing ok men boy male blue human man +🙆‍♀️ woman gesturing ok women girl female pink human woman +💁 person tipping hand information +💁‍♂️ man tipping hand male boy man human information +💁‍♀️ woman tipping hand female girl woman human information +🙋 person raising hand question +🙋‍♂️ man raising hand male boy man +🙋‍♀️ woman raising hand female girl woman +🧏 deaf person accessibility +🧏‍♂️ deaf man accessibility +🧏‍♀️ deaf woman accessibility +🙇 person bowing respectiful +🙇‍♂️ man bowing man male boy +🙇‍♀️ woman bowing woman female girl +🤦 person facepalming disappointed +🤦‍♂️ man facepalming man male boy disbelief +🤦‍♀️ woman facepalming woman female girl disbelief +🤷 person shrugging regardless +🤷‍♂️ man shrugging man male boy confused indifferent doubt +🤷‍♀️ woman shrugging woman female girl confused indifferent doubt +🧑‍⚕️ health worker hospital +👨‍⚕️ man health worker doctor nurse therapist healthcare man human +👩‍⚕️ woman health worker doctor nurse therapist healthcare woman human +🧑‍🎓 student learn +👨‍🎓 man student graduate man human +👩‍🎓 woman student graduate woman human +🧑‍🏫 teacher professor +👨‍🏫 man teacher instructor professor man human +👩‍🏫 woman teacher instructor professor woman human +🧑‍⚖️ judge law +👨‍⚖️ man judge justice court man human +👩‍⚖️ woman judge justice court woman human +🧑‍🌾 farmer crops +👨‍🌾 man farmer rancher gardener man human +👩‍🌾 woman farmer rancher gardener woman human +🧑‍🍳 cook food kitchen culinary +👨‍🍳 man cook chef man human +👩‍🍳 woman cook chef woman human +🧑‍🔧 mechanic worker technician +👨‍🔧 man mechanic plumber man human wrench +👩‍🔧 woman mechanic plumber woman human wrench +🧑‍🏭 factory worker labor +👨‍🏭 man factory worker assembly industrial man human +👩‍🏭 woman factory worker assembly industrial woman human +🧑‍💼 office worker business +👨‍💼 man office worker business manager man human +👩‍💼 woman office worker business manager woman human +🧑‍🔬 scientist chemistry +👨‍🔬 man scientist biologist chemist engineer physicist man human +👩‍🔬 woman scientist biologist chemist engineer physicist woman human +🧑‍💻 technologist computer +👨‍💻 man technologist coder developer engineer programmer software man human laptop computer +👩‍💻 woman technologist coder developer engineer programmer software woman human laptop computer +🧑‍🎤 singer song artist performer +👨‍🎤 man singer rockstar entertainer man human +👩‍🎤 woman singer rockstar entertainer woman human +🧑‍🎨 artist painting draw creativity +👨‍🎨 man artist painter man human +👩‍🎨 woman artist painter woman human +🧑‍✈️ pilot fly plane airplane +👨‍✈️ man pilot aviator plane man human +👩‍✈️ woman pilot aviator plane woman human +🧑‍🚀 astronaut outerspace +👨‍🚀 man astronaut space rocket man human +👩‍🚀 woman astronaut space rocket woman human +🧑‍🚒 firefighter fire +👨‍🚒 man firefighter fireman man human +👩‍🚒 woman firefighter fireman woman human +👮 police officer cop +👮‍♂️ man police officer man police law legal enforcement arrest 911 +👮‍♀️ woman police officer woman police law legal enforcement arrest 911 female +🕵️ detective human spy detective +🕵️‍♂️ man detective crime +🕵️‍♀️ woman detective human spy detective female woman +💂 guard protect +💂‍♂️ man guard uk gb british male guy royal +💂‍♀️ woman guard uk gb british female royal woman +👷 construction worker labor build +👷‍♂️ man construction worker male human wip guy build construction worker labor +👷‍♀️ woman construction worker female human wip build construction worker labor woman +🤴 prince boy man male crown royal king +👸 princess girl woman female blond crown royal queen +👳 person wearing turban headdress +👳‍♂️ man wearing turban male indian hinduism arabs +👳‍♀️ woman wearing turban female indian hinduism arabs woman +👲 man with skullcap male boy chinese +🧕 woman with headscarf female hijab mantilla tichel +🤵 man in tuxedo couple marriage wedding groom +👰 bride with veil couple marriage wedding woman bride +🤰 pregnant woman baby +🤱 breast feeding nursing baby +👼 baby angel heaven wings halo +🎅 santa claus festival man male xmas father christmas +🤶 mrs claus woman female xmas mother christmas +🦸 superhero marvel +🦸‍♂️ man superhero man male good hero superpowers +🦸‍♀️ woman superhero woman female good heroine superpowers +🦹 supervillain marvel +🦹‍♂️ man supervillain man male evil bad criminal hero superpowers +🦹‍♀️ woman supervillain woman female evil bad criminal heroine superpowers +🧙 mage magic +🧙‍♂️ man mage man male mage sorcerer +🧙‍♀️ woman mage woman female mage witch +🧚 fairy wings magical +🧚‍♂️ man fairy man male +🧚‍♀️ woman fairy woman female +🧛 vampire blood twilight +🧛‍♂️ man vampire man male dracula +🧛‍♀️ woman vampire woman female +🧜 merperson sea +🧜‍♂️ merman man male triton +🧜‍♀️ mermaid woman female merwoman ariel +🧝 elf magical +🧝‍♂️ man elf man male +🧝‍♀️ woman elf woman female +🧞 genie magical wishes +🧞‍♂️ man genie man male +🧞‍♀️ woman genie woman female +🧟 zombie dead +🧟‍♂️ man zombie man male dracula undead walking dead +🧟‍♀️ woman zombie woman female undead walking dead +💆 person getting massage relax +💆‍♂️ man getting massage male boy man head +💆‍♀️ woman getting massage female girl woman head +💇 person getting haircut hairstyle +💇‍♂️ man getting haircut male boy man +💇‍♀️ woman getting haircut female girl woman +🚶 person walking move +🚶‍♂️ man walking human feet steps +🚶‍♀️ woman walking human feet steps woman female +🧍 person standing still +🧍‍♂️ man standing still +🧍‍♀️ woman standing still +🧎 person kneeling pray respectful +🧎‍♂️ man kneeling pray respectful +🧎‍♀️ woman kneeling respectful pray +🧑‍🦯 person with probing cane blind +👨‍🦯 man with probing cane blind +👩‍🦯 woman with probing cane blind +🧑‍🦼 person in motorized wheelchair disability accessibility +👨‍🦼 man in motorized wheelchair disability accessibility +👩‍🦼 woman in motorized wheelchair disability accessibility +🧑‍🦽 person in manual wheelchair disability accessibility +👨‍🦽 man in manual wheelchair disability accessibility +👩‍🦽 woman in manual wheelchair disability accessibility +🏃 person running move +🏃‍♂️ man running man walking exercise race running +🏃‍♀️ woman running woman walking exercise race running female +💃 woman dancing female girl woman fun +🕺 man dancing male boy fun dancer +🕴️ man in suit levitating suit business levitate hover jump +👯 people with bunny ears perform costume +👯‍♂️ men with bunny ears male bunny men boys +👯‍♀️ women with bunny ears female bunny women girls +🧖 person in steamy room relax spa +🧖‍♂️ man in steamy room male man spa steamroom sauna +🧖‍♀️ woman in steamy room female woman spa steamroom sauna +🧗 person climbing sport +🧗‍♂️ man climbing sports hobby man male rock +🧗‍♀️ woman climbing sports hobby woman female rock +🤺 person fencing sports fencing sword +🏇 horse racing animal betting competition gambling luck +⛷️ skier sports winter snow +🏂 snowboarder sports winter +🏌️ person golfing sports business +🏌️‍♂️ man golfing sport +🏌️‍♀️ woman golfing sports business woman female +🏄 person surfing sport sea +🏄‍♂️ man surfing sports ocean sea summer beach +🏄‍♀️ woman surfing sports ocean sea summer beach woman female +🚣 person rowing boat sport move +🚣‍♂️ man rowing boat sports hobby water ship +🚣‍♀️ woman rowing boat sports hobby water ship woman female +🏊 person swimming sport pool +🏊‍♂️ man swimming sports exercise human athlete water summer +🏊‍♀️ woman swimming sports exercise human athlete water summer woman female +⛹️ person bouncing ball sports human +⛹️‍♂️ man bouncing ball sport +⛹️‍♀️ woman bouncing ball sports human woman female +🏋️ person lifting weights sports training exercise +🏋️‍♂️ man lifting weights sport +🏋️‍♀️ woman lifting weights sports training exercise woman female +🚴 person biking sport move +🚴‍♂️ man biking sports bike exercise hipster +🚴‍♀️ woman biking sports bike exercise hipster woman female +🚵 person mountain biking sport move +🚵‍♂️ man mountain biking transportation sports human race bike +🚵‍♀️ woman mountain biking transportation sports human race bike woman female +🤸 person cartwheeling sport gymnastic +🤸‍♂️ man cartwheeling gymnastics +🤸‍♀️ woman cartwheeling gymnastics +🤼 people wrestling sport +🤼‍♂️ men wrestling sports wrestlers +🤼‍♀️ women wrestling sports wrestlers +🤽 person playing water polo sport +🤽‍♂️ man playing water polo sports pool +🤽‍♀️ woman playing water polo sports pool +🤾 person playing handball sport +🤾‍♂️ man playing handball sports +🤾‍♀️ woman playing handball sports +🤹 person juggling performance balance +🤹‍♂️ man juggling juggle balance skill multitask +🤹‍♀️ woman juggling juggle balance skill multitask +🧘 person in lotus position meditate +🧘‍♂️ man in lotus position man male meditation yoga serenity zen mindfulness +🧘‍♀️ woman in lotus position woman female meditation yoga serenity zen mindfulness +🛀 person taking bath clean shower bathroom +🛌 person in bed bed rest +🧑‍🤝‍🧑 people holding hands friendship +👭 women holding hands pair friendship couple love like female people human +👫 woman and man holding hands pair people human love date dating like affection valentines marriage +👬 men holding hands pair couple love like bromance friendship people human +💏 kiss pair valentines love like dating marriage +👩‍❤️‍💋‍👨 kiss woman man love +👨‍❤️‍💋‍👨 kiss man man pair valentines love like dating marriage +👩‍❤️‍💋‍👩 kiss woman woman pair valentines love like dating marriage +💑 couple with heart pair love like affection human dating valentines marriage +👩‍❤️‍👨 couple with heart woman man love +👨‍❤️‍👨 couple with heart man man pair love like affection human dating valentines marriage +👩‍❤️‍👩 couple with heart woman woman pair love like affection human dating valentines marriage +👪 family home parents child mom dad father mother people human +👨‍👩‍👦 family man woman boy love +👨‍👩‍👧 family man woman girl home parents people human child +👨‍👩‍👧‍👦 family man woman girl boy home parents people human children +👨‍👩‍👦‍👦 family man woman boy boy home parents people human children +👨‍👩‍👧‍👧 family man woman girl girl home parents people human children +👨‍👨‍👦 family man man boy home parents people human children +👨‍👨‍👧 family man man girl home parents people human children +👨‍👨‍👧‍👦 family man man girl boy home parents people human children +👨‍👨‍👦‍👦 family man man boy boy home parents people human children +👨‍👨‍👧‍👧 family man man girl girl home parents people human children +👩‍👩‍👦 family woman woman boy home parents people human children +👩‍👩‍👧 family woman woman girl home parents people human children +👩‍👩‍👧‍👦 family woman woman girl boy home parents people human children +👩‍👩‍👦‍👦 family woman woman boy boy home parents people human children +👩‍👩‍👧‍👧 family woman woman girl girl home parents people human children +👨‍👦 family man boy home parent people human child +👨‍👦‍👦 family man boy boy home parent people human children +👨‍👧 family man girl home parent people human child +👨‍👧‍👦 family man girl boy home parent people human children +👨‍👧‍👧 family man girl girl home parent people human children +👩‍👦 family woman boy home parent people human child +👩‍👦‍👦 family woman boy boy home parent people human children +👩‍👧 family woman girl home parent people human child +👩‍👧‍👦 family woman girl boy home parent people human children +👩‍👧‍👧 family woman girl girl home parent people human children +🗣️ speaking head user person human sing say talk +👤 bust in silhouette user person human +👥 busts in silhouette user person human group team +👣 footprints feet tracking walking beach +🐵 monkey face animal nature circus +🐒 monkey animal nature banana circus +🦍 gorilla animal nature circus +🦧 orangutan animal +🐶 dog face animal friend nature woof puppy pet faithful +🐕 dog animal nature friend doge pet faithful +🦮 guide dog animal blind +🐕‍🦺 service dog blind animal +🐩 poodle dog animal 101 nature pet +🐺 wolf animal nature wild +🦊 fox animal nature face +🦝 raccoon animal nature +🐱 cat face animal meow nature pet kitten +🐈 cat animal meow pet cats +🦁 lion animal nature +🐯 tiger face animal cat danger wild nature roar +🐅 tiger animal nature roar +🐆 leopard animal nature +🐴 horse face animal brown nature +🐎 horse animal gamble luck +🦄 unicorn animal nature mystical +🦓 zebra animal nature stripes safari +🦌 deer animal nature horns venison +🐮 cow face beef ox animal nature moo milk +🐂 ox animal cow beef +🐃 water buffalo animal nature ox cow +🐄 cow beef ox animal nature moo milk +🐷 pig face animal oink nature +🐖 pig animal nature +🐗 boar animal nature +🐽 pig nose animal oink +🐏 ram animal sheep nature +🐑 ewe animal nature wool shipit +🐐 goat animal nature +🐪 camel animal hot desert hump +🐫 two hump camel animal nature hot desert hump +🦙 llama animal nature alpaca +🦒 giraffe animal nature spots safari +🐘 elephant animal nature nose th circus +🦏 rhinoceros animal nature horn +🦛 hippopotamus animal nature +🐭 mouse face animal nature cheese wedge rodent +🐁 mouse animal nature rodent +🐀 rat animal mouse rodent +🐹 hamster animal nature +🐰 rabbit face animal nature pet spring magic bunny +🐇 rabbit animal nature pet magic spring +🐿️ chipmunk animal nature rodent squirrel +🦔 hedgehog animal nature spiny +🦇 bat animal nature blind vampire +🐻 bear animal nature wild +🐨 koala animal nature +🐼 panda animal nature panda +🦥 sloth animal +🦦 otter animal +🦨 skunk animal +🦘 kangaroo animal nature australia joey hop marsupial +🦡 badger animal nature honey +🐾 paw prints animal tracking footprints dog cat pet feet +🦃 turkey animal bird +🐔 chicken animal cluck nature bird +🐓 rooster animal nature chicken +🐣 hatching chick animal chicken egg born baby bird +🐤 baby chick animal chicken bird +🐥 front facing baby chick animal chicken baby bird +🐦 bird animal nature fly tweet spring +🐧 penguin animal nature +🕊️ dove animal bird +🦅 eagle animal nature bird +🦆 duck animal nature bird mallard +🦢 swan animal nature bird +🦉 owl animal nature bird hoot +🦩 flamingo animal +🦚 peacock animal nature peahen bird +🦜 parrot animal nature bird pirate talk +🐸 frog animal nature croak toad +🐊 crocodile animal nature reptile lizard alligator +🐢 turtle animal slow nature tortoise +🦎 lizard animal nature reptile +🐍 snake animal evil nature hiss python +🐲 dragon face animal myth nature chinese green +🐉 dragon animal myth nature chinese green +🦕 sauropod animal nature dinosaur brachiosaurus brontosaurus diplodocus extinct +🦖 t rex animal nature dinosaur tyrannosaurus extinct +🐳 spouting whale animal nature sea ocean +🐋 whale animal nature sea ocean +🐬 dolphin animal nature fish sea ocean flipper fins beach +🐟 fish animal food nature +🐠 tropical fish animal swim ocean beach nemo +🐡 blowfish animal nature food sea ocean +🦈 shark animal nature fish sea ocean jaws fins beach +🐙 octopus animal creature ocean sea nature beach +🐚 spiral shell nature sea beach +🐌 snail slow animal shell +🦋 butterfly animal insect nature caterpillar +🐛 bug animal insect nature worm +🐜 ant animal insect nature bug +🐝 honeybee animal insect nature bug spring honey +🐞 lady beetle animal insect nature ladybug +🦗 cricket animal cricket chirp +🕷️ spider animal arachnid +🕸️ spider web animal insect arachnid silk +🦂 scorpion animal arachnid +🦟 mosquito animal nature insect malaria +🦠 microbe amoeba bacteria germs virus +💐 bouquet flowers nature spring +🌸 cherry blossom nature plant spring flower +💮 white flower japanese spring +🏵️ rosette flower decoration military +🌹 rose flowers valentines love spring +🥀 wilted flower plant nature flower +🌺 hibiscus plant vegetable flowers beach +🌻 sunflower nature plant fall +🌼 blossom nature flowers yellow +🌷 tulip flowers plant nature summer spring +🌱 seedling plant nature grass lawn spring +🌲 evergreen tree plant nature +🌳 deciduous tree plant nature +🌴 palm tree plant vegetable nature summer beach mojito tropical +🌵 cactus vegetable plant nature +🌾 sheaf of rice nature plant +🌿 herb vegetable plant medicine weed grass lawn +☘️ shamrock vegetable plant nature irish clover +🍀 four leaf clover vegetable plant nature lucky irish +🍁 maple leaf nature plant vegetable ca fall +🍂 fallen leaf nature plant vegetable leaves +🍃 leaf fluttering in wind nature plant tree vegetable grass lawn spring +🍇 grapes fruit food wine +🍈 melon fruit nature food +🍉 watermelon fruit food picnic summer +🍊 tangerine food fruit nature orange +🍋 lemon fruit nature +🍌 banana fruit food monkey +🍍 pineapple fruit nature food +🥭 mango fruit food tropical +🍎 red apple fruit mac school +🍏 green apple fruit nature +🍐 pear fruit nature food +🍑 peach fruit nature food +🍒 cherries food fruit +🍓 strawberry fruit food nature +🥝 kiwi fruit fruit food +🍅 tomato fruit vegetable nature food +🥥 coconut fruit nature food palm +🥑 avocado fruit food +🍆 eggplant vegetable nature food aubergine +🥔 potato food tuber vegatable starch +🥕 carrot vegetable food orange +🌽 ear of corn food vegetable plant +🌶️ hot pepper food spicy chilli chili +🥒 cucumber fruit food pickle +🥬 leafy green food vegetable plant bok choy cabbage kale lettuce +🥦 broccoli fruit food vegetable +🧄 garlic food spice cook +🧅 onion cook food spice +🍄 mushroom plant vegetable +🥜 peanuts food nut +🌰 chestnut food squirrel +🍞 bread food wheat breakfast toast +🥐 croissant food bread french +🥖 baguette bread food bread french +🥨 pretzel food bread twisted +🥯 bagel food bread bakery schmear +🥞 pancakes food breakfast flapjacks hotcakes +🧇 waffle food breakfast +🧀 cheese wedge food chadder +🍖 meat on bone good food drumstick +🍗 poultry leg food meat drumstick bird chicken turkey +🥩 cut of meat food cow meat cut chop lambchop porkchop +🥓 bacon food breakfast pork pig meat +🍔 hamburger meat fast food beef cheeseburger mcdonalds burger king +🍟 french fries chips snack fast food +🍕 pizza food party +🌭 hot dog food frankfurter +🥪 sandwich food lunch bread +🌮 taco food mexican +🌯 burrito food mexican +🥙 stuffed flatbread food flatbread stuffed gyro +🧆 falafel food +🥚 egg food chicken breakfast +🍳 cooking food breakfast kitchen egg +🥘 shallow pan of food food cooking casserole paella +🍲 pot of food food meat soup +🥣 bowl with spoon food breakfast cereal oatmeal porridge +🥗 green salad food healthy lettuce +🍿 popcorn food movie theater films snack +🧈 butter food cook +🧂 salt condiment shaker +🥫 canned food food soup +🍱 bento box food japanese box +🍘 rice cracker food japanese +🍙 rice ball food japanese +🍚 cooked rice food china asian +🍛 curry rice food spicy hot indian +🍜 steaming bowl food japanese noodle chopsticks +🍝 spaghetti food italian noodle +🍠 roasted sweet potato food nature +🍢 oden food japanese +🍣 sushi food fish japanese rice +🍤 fried shrimp food animal appetizer summer +🍥 fish cake with swirl food japan sea beach narutomaki pink swirl kamaboko surimi ramen +🥮 moon cake food autumn +🍡 dango food dessert sweet japanese barbecue meat +🥟 dumpling food empanada pierogi potsticker +🥠 fortune cookie food prophecy +🥡 takeout box food leftovers +🦀 crab animal crustacean +🦞 lobster animal nature bisque claws seafood +🦐 shrimp animal ocean nature seafood +🦑 squid animal nature ocean sea +🦪 oyster food +🍦 soft ice cream food hot dessert summer +🍧 shaved ice hot dessert summer +🍨 ice cream food hot dessert +🍩 doughnut food dessert snack sweet donut +🍪 cookie food snack oreo chocolate sweet dessert +🎂 birthday cake food dessert cake +🍰 shortcake food dessert +🧁 cupcake food dessert bakery sweet +🥧 pie food dessert pastry +🍫 chocolate bar food snack dessert sweet +🍬 candy snack dessert sweet lolly +🍭 lollipop food snack candy sweet +🍮 custard dessert food +🍯 honey pot bees sweet kitchen +🍼 baby bottle food container milk +🥛 glass of milk beverage drink cow +☕ hot beverage beverage caffeine latte espresso coffee +🍵 teacup without handle drink bowl breakfast green british +🍶 sake wine drink drunk beverage japanese alcohol booze +🍾 bottle with popping cork drink wine bottle celebration +🍷 wine glass drink beverage drunk alcohol booze +🍸 cocktail glass drink drunk alcohol beverage booze mojito +🍹 tropical drink beverage cocktail summer beach alcohol booze mojito +🍺 beer mug relax beverage drink drunk party pub summer alcohol booze +🍻 clinking beer mugs relax beverage drink drunk party pub summer alcohol booze +🥂 clinking glasses beverage drink party alcohol celebrate cheers wine champagne toast +🥃 tumbler glass drink beverage drunk alcohol liquor booze bourbon scotch whisky glass shot +🥤 cup with straw drink soda +🧃 beverage box drink +🧉 mate drink tea beverage +🧊 ice water cold +🥢 chopsticks food +🍽️ fork and knife with plate food eat meal lunch dinner restaurant +🍴 fork and knife cutlery kitchen +🥄 spoon cutlery kitchen tableware +🔪 kitchen knife knife blade cutlery kitchen weapon +🏺 amphora vase jar +🌍 globe showing europe africa globe world international +🌎 globe showing americas globe world USA international +🌏 globe showing asia australia globe world east international +🌐 globe with meridians earth international world internet interweb i18n +🗺️ world map location direction +🗾 map of japan nation country japanese asia +🧭 compass magnetic navigation orienteering +🏔️ snow capped mountain photo nature environment winter cold +⛰️ mountain photo nature environment +🌋 volcano photo nature disaster +🗻 mount fuji photo mountain nature japanese +🏕️ camping photo outdoors tent +🏖️ beach with umbrella weather summer sunny sand mojito +🏜️ desert photo warm saharah +🏝️ desert island photo tropical mojito +🏞️ national park photo environment nature +🏟️ stadium photo place sports concert venue +🏛️ classical building art culture history +🏗️ building construction wip working progress +🧱 brick bricks +🏘️ houses buildings photo +🏚️ derelict house abandon evict broken building +🏠 house building home +🏡 house with garden home plant nature +🏢 office building building bureau work +🏣 japanese post office building envelope communication +🏤 post office building email +🏥 hospital building health surgery doctor +🏦 bank building money sales cash business enterprise +🏨 hotel building accomodation checkin +🏩 love hotel like affection dating +🏪 convenience store building shopping groceries +🏫 school building student education learn teach +🏬 department store building shopping mall +🏭 factory building industry pollution smoke +🏯 japanese castle photo building +🏰 castle building royalty history +💒 wedding love like affection couple marriage bride groom +🗼 tokyo tower photo japanese +🗽 statue of liberty american newyork +⛪ church building religion christ +🕌 mosque islam worship minaret +🛕 hindu temple religion +🕍 synagogue judaism worship temple jewish +⛩️ shinto shrine temple japan kyoto +🕋 kaaba mecca mosque islam +⛲ fountain photo summer water fresh +⛺ tent photo camping outdoors +🌁 foggy photo mountain +🌃 night with stars evening city downtown +🏙️ cityscape photo night life urban +🌄 sunrise over mountains view vacation photo +🌅 sunrise morning view vacation photo +🌆 cityscape at dusk photo evening sky buildings +🌇 sunset photo good morning dawn +🌉 bridge at night photo sanfrancisco +♨️ hot springs bath warm relax +🎠 carousel horse photo carnival +🎡 ferris wheel photo carnival londoneye +🎢 roller coaster carnival playground photo fun +💈 barber pole hair salon style +🎪 circus tent festival carnival party +🚂 locomotive transportation vehicle train +🚃 railway car transportation vehicle +🚄 high speed train transportation vehicle +🚅 bullet train transportation vehicle speed fast public travel +🚆 train transportation vehicle +🚇 metro transportation blue-square mrt underground tube +🚈 light rail transportation vehicle +🚉 station transportation vehicle public +🚊 tram transportation vehicle +🚝 monorail transportation vehicle +🚞 mountain railway transportation vehicle +🚋 tram car transportation vehicle carriage public travel +🚌 bus car vehicle transportation +🚍 oncoming bus vehicle transportation +🚎 trolleybus bart transportation vehicle +🚐 minibus vehicle car transportation +🚑 ambulance health 911 hospital +🚒 fire engine transportation cars vehicle +🚓 police car vehicle cars transportation law legal enforcement +🚔 oncoming police car vehicle law legal enforcement 911 +🚕 taxi uber vehicle cars transportation +🚖 oncoming taxi vehicle cars uber +🚗 automobile red transportation vehicle +🚘 oncoming automobile car vehicle transportation +🚙 sport utility vehicle transportation vehicle +🚚 delivery truck cars transportation +🚛 articulated lorry vehicle cars transportation express +🚜 tractor vehicle car farming agriculture +🏎️ racing car sports race fast formula f1 +🏍️ motorcycle race sports fast +🛵 motor scooter vehicle vespa sasha +🦽 manual wheelchair accessibility +🦼 motorized wheelchair accessibility +🛺 auto rickshaw move transportation +🚲 bicycle sports bicycle exercise hipster +🛴 kick scooter vehicle kick razor +🛹 skateboard board +🚏 bus stop transportation wait +🛣️ motorway road cupertino interstate highway +🛤️ railway track train transportation +🛢️ oil drum barrell +⛽ fuel pump gas station petroleum +🚨 police car light police ambulance 911 emergency alert error pinged law legal +🚥 horizontal traffic light transportation signal +🚦 vertical traffic light transportation driving +🛑 stop sign stop +🚧 construction wip progress caution warning +⚓ anchor ship ferry sea boat +⛵ sailboat ship summer transportation water sailing +🛶 canoe boat paddle water ship +🚤 speedboat ship transportation vehicle summer +🛳️ passenger ship yacht cruise ferry +⛴️ ferry boat ship yacht +🛥️ motor boat ship +🚢 ship transportation titanic deploy +✈️ airplane vehicle transportation flight fly +🛩️ small airplane flight transportation fly vehicle +🛫 airplane departure airport flight landing +🛬 airplane arrival airport flight boarding +🪂 parachute fly glide +💺 seat sit airplane transport bus flight fly +🚁 helicopter transportation vehicle fly +🚟 suspension railway vehicle transportation +🚠 mountain cableway transportation vehicle ski +🚡 aerial tramway transportation vehicle ski +🛰️ satellite communication gps orbit spaceflight NASA ISS +🚀 rocket launch ship staffmode NASA outer space outer space fly +🛸 flying saucer transportation vehicle ufo +🛎️ bellhop bell service +🧳 luggage packing travel +⌛ hourglass done time clock oldschool limit exam quiz test +⏳ hourglass not done oldschool time countdown +⌚ watch time accessories +⏰ alarm clock time wake +⏱️ stopwatch time deadline +⏲️ timer clock alarm +🕰️ mantelpiece clock time +🕛 twelve o clock time noon midnight midday late early schedule +🕧 twelve thirty time late early schedule +🕐 one o clock time late early schedule +🕜 one thirty time late early schedule +🕑 two o clock time late early schedule +🕝 two thirty time late early schedule +🕒 three o clock time late early schedule +🕞 three thirty time late early schedule +🕓 four o clock time late early schedule +🕟 four thirty time late early schedule +🕔 five o clock time late early schedule +🕠 five thirty time late early schedule +🕕 six o clock time late early schedule dawn dusk +🕡 six thirty time late early schedule +🕖 seven o clock time late early schedule +🕢 seven thirty time late early schedule +🕗 eight o clock time late early schedule +🕣 eight thirty time late early schedule +🕘 nine o clock time late early schedule +🕤 nine thirty time late early schedule +🕙 ten o clock time late early schedule +🕥 ten thirty time late early schedule +🕚 eleven o clock time late early schedule +🕦 eleven thirty time late early schedule +🌑 new moon nature twilight planet space night evening sleep +🌒 waxing crescent moon nature twilight planet space night evening sleep +🌓 first quarter moon nature twilight planet space night evening sleep +🌔 waxing gibbous moon nature night sky gray twilight planet space evening sleep +🌕 full moon nature yellow twilight planet space night evening sleep +🌖 waning gibbous moon nature twilight planet space night evening sleep waxing gibbous moon +🌗 last quarter moon nature twilight planet space night evening sleep +🌘 waning crescent moon nature twilight planet space night evening sleep +🌙 crescent moon night sleep sky evening magic +🌚 new moon face nature twilight planet space night evening sleep +🌛 first quarter moon face nature twilight planet space night evening sleep +🌜 last quarter moon face nature twilight planet space night evening sleep +🌡️ thermometer weather temperature hot cold +☀️ sun weather nature brightness summer beach spring +🌝 full moon face nature twilight planet space night evening sleep +🌞 sun with face nature morning sky +🪐 ringed planet outerspace +⭐ star night yellow +🌟 glowing star night sparkle awesome good magic +🌠 shooting star night photo +🌌 milky way photo space stars +☁️ cloud weather sky +⛅ sun behind cloud weather nature cloudy morning fall spring +⛈️ cloud with lightning and rain weather lightning +🌤️ sun behind small cloud weather +🌥️ sun behind large cloud weather +🌦️ sun behind rain cloud weather +🌧️ cloud with rain weather +🌨️ cloud with snow weather +🌩️ cloud with lightning weather thunder +🌪️ tornado weather cyclone twister +🌫️ fog weather +🌬️ wind face gust air +🌀 cyclone weather swirl blue cloud vortex spiral whirlpool spin tornado hurricane typhoon +🌈 rainbow nature happy unicorn face photo sky spring +🌂 closed umbrella weather rain drizzle +☂️ umbrella weather spring +☔ umbrella with rain drops rainy weather spring +⛱️ umbrella on ground weather summer +⚡ high voltage thunder weather lightning bolt fast +❄️ snowflake winter season cold weather christmas xmas +☃️ snowman winter season cold weather christmas xmas frozen +⛄ snowman without snow winter season cold weather christmas xmas frozen without snow +☄️ comet space +🔥 fire hot cook flame +💧 droplet water drip faucet spring +🌊 water wave sea water wave nature tsunami disaster +🎃 jack o lantern halloween light pumpkin creepy fall +🎄 christmas tree festival vacation december xmas celebration +🎆 fireworks photo festival carnival congratulations +🎇 sparkler stars night shine +🧨 firecracker dynamite boom explode explosion explosive +✨ sparkles stars shine shiny cool awesome good magic +🎈 balloon party celebration birthday circus +🎉 party popper party congratulations birthday magic circus celebration tada +🎊 confetti ball festival party birthday circus +🎋 tanabata tree plant nature branch summer +🎍 pine decoration plant nature vegetable panda pine decoration +🎎 japanese dolls japanese toy kimono +🎏 carp streamer fish japanese koinobori carp banner +🎐 wind chime nature ding spring bell +🎑 moon viewing ceremony photo japan asia tsukimi +🧧 red envelope gift +🎀 ribbon decoration pink girl bowtie +🎁 wrapped gift present birthday christmas xmas +🎗️ reminder ribbon sports cause support awareness +🎟️ admission tickets sports concert entrance +🎫 ticket event concert pass +🎖️ military medal award winning army +🏆 trophy win award contest place ftw ceremony +🏅 sports medal award winning +🥇 1st place medal award winning first +🥈 2nd place medal award second +🥉 3rd place medal award third +⚽ soccer ball sports football +⚾ baseball sports balls +🥎 softball sports balls +🏀 basketball sports balls NBA +🏐 volleyball sports balls +🏈 american football sports balls NFL +🏉 rugby football sports team +🎾 tennis sports balls green +🥏 flying disc sports frisbee ultimate +🎳 bowling sports fun play +🏏 cricket game sports +🏑 field hockey sports +🏒 ice hockey sports +🥍 lacrosse sports ball stick +🏓 ping pong sports pingpong +🏸 badminton sports +🥊 boxing glove sports fighting +🥋 martial arts uniform judo karate taekwondo +🥅 goal net sports +⛳ flag in hole sports business flag hole summer +⛸️ ice skate sports +🎣 fishing pole food hobby summer +🤿 diving mask sport ocean +🎽 running shirt play pageant +🎿 skis sports winter cold snow +🛷 sled sleigh luge toboggan +🥌 curling stone sports +🎯 direct hit game play bar target bullseye +🪀 yo yo toy +🪁 kite wind fly +🎱 pool 8 ball pool hobby game luck magic +🔮 crystal ball disco party magic circus fortune teller +🧿 nazar amulet bead charm +🎮 video game play console PS4 Wii GameCube controller +🕹️ joystick game play +🎰 slot machine bet gamble vegas fruit machine luck casino +🎲 game die dice random tabletop play luck +🧩 puzzle piece interlocking puzzle piece +🧸 teddy bear plush stuffed +♠️ spade suit poker cards suits magic +♥️ heart suit poker cards magic suits +♦️ diamond suit poker cards magic suits +♣️ club suit poker cards magic suits +♟️ chess pawn expendable +🃏 joker poker cards game play magic +🀄 mahjong red dragon game play chinese kanji +🎴 flower playing cards game sunset red +🎭 performing arts acting theater drama +🖼️ framed picture photography +🎨 artist palette design paint draw colors +🧵 thread needle sewing spool string +🧶 yarn ball crochet knit +👓 glasses fashion accessories eyesight nerdy dork geek +🕶️ sunglasses face cool accessories +🥽 goggles eyes protection safety +🥼 lab coat doctor experiment scientist chemist +🦺 safety vest protection +👔 necktie shirt suitup formal fashion cloth business +👕 t shirt fashion cloth casual shirt tee +👖 jeans fashion shopping +🧣 scarf neck winter clothes +🧤 gloves hands winter clothes +🧥 coat jacket +🧦 socks stockings clothes +👗 dress clothes fashion shopping +👘 kimono dress fashion women female japanese +🥻 sari dress +🩱 one piece swimsuit fashion +🩲 briefs clothing +🩳 shorts clothing +👙 bikini swimming female woman girl fashion beach summer +👚 woman s clothes fashion shopping bags female +👛 purse fashion accessories money sales shopping +👜 handbag fashion accessory accessories shopping +👝 clutch bag bag accessories shopping +🛍️ shopping bags mall buy purchase +🎒 backpack student education bag backpack +👞 man s shoe fashion male +👟 running shoe shoes sports sneakers +🥾 hiking boot backpacking camping hiking +🥿 flat shoe ballet slip-on slipper +👠 high heeled shoe fashion shoes female pumps stiletto +👡 woman s sandal shoes fashion flip flops +🩰 ballet shoes dance +👢 woman s boot shoes fashion +👑 crown king kod leader royalty lord +👒 woman s hat fashion accessories female lady spring +🎩 top hat magic gentleman classy circus +🎓 graduation cap school college degree university graduation cap hat legal learn education +🧢 billed cap cap baseball +⛑️ rescue worker s helmet construction build +📿 prayer beads dhikr religious +💄 lipstick female girl fashion woman +💍 ring wedding propose marriage valentines diamond fashion jewelry gem engagement +💎 gem stone blue ruby diamond jewelry +🔇 muted speaker sound volume silence quiet +🔈 speaker low volume sound volume silence broadcast +🔉 speaker medium volume volume speaker broadcast +🔊 speaker high volume volume noise noisy speaker broadcast +📢 loudspeaker volume sound +📣 megaphone sound speaker volume +📯 postal horn instrument music +🔔 bell sound notification christmas xmas chime +🔕 bell with slash sound volume mute quiet silent +🎼 musical score treble clef compose +🎵 musical note score tone sound +🎶 musical notes music score +🎙️ studio microphone sing recording artist talkshow +🎚️ level slider scale +🎛️ control knobs dial +🎤 microphone sound music PA sing talkshow +🎧 headphone music score gadgets +📻 radio communication music podcast program +🎷 saxophone music instrument jazz blues +🎸 guitar music instrument +🎹 musical keyboard piano instrument compose +🎺 trumpet music brass +🎻 violin music instrument orchestra symphony +🪕 banjo music instructment +🥁 drum music instrument drumsticks snare +📱 mobile phone technology apple gadgets dial +📲 mobile phone with arrow iphone incoming +☎️ telephone technology communication dial telephone +📞 telephone receiver technology communication dial +📟 pager bbcall oldschool 90s +📠 fax machine communication technology +🔋 battery power energy sustain +🔌 electric plug charger power +💻 laptop technology laptop screen display monitor +🖥️ desktop computer technology computing screen +🖨️ printer paper ink +⌨️ keyboard technology computer type input text +🖱️ computer mouse click +🖲️ trackball technology trackpad +💽 computer disk technology record data disk 90s +💾 floppy disk oldschool technology save 90s 80s +💿 optical disk technology dvd disk disc 90s +📀 dvd cd disk disc +🧮 abacus calculation +🎥 movie camera film record +🎞️ film frames movie +📽️ film projector video tape record movie +🎬 clapper board movie film record +📺 television technology program oldschool show television +📷 camera gadgets photography +📸 camera with flash photography gadgets +📹 video camera film record +📼 videocassette record video oldschool 90s 80s +🔍 magnifying glass tilted left search zoom find detective +🔎 magnifying glass tilted right search zoom find detective +🕯️ candle fire wax +💡 light bulb light electricity idea +🔦 flashlight dark camping sight night +🏮 red paper lantern light paper halloween spooky +🪔 diya lamp lighting +📔 notebook with decorative cover classroom notes record paper study +📕 closed book read library knowledge textbook learn +📖 open book book read library knowledge literature learn study +📗 green book read library knowledge study +📘 blue book read library knowledge learn study +📙 orange book read library knowledge textbook study +📚 books literature library study +📓 notebook stationery record notes paper study +📒 ledger notes paper +📃 page with curl documents office paper +📜 scroll documents ancient history paper +📄 page facing up documents office paper information +📰 newspaper press headline +🗞️ rolled up newspaper press headline +📑 bookmark tabs favorite save order tidy +🔖 bookmark favorite label save +🏷️ label sale tag +💰 money bag dollar payment coins sale +💴 yen banknote money sales japanese dollar currency +💵 dollar banknote money sales bill currency +💶 euro banknote money sales dollar currency +💷 pound banknote british sterling money sales bills uk england currency +💸 money with wings dollar bills payment sale +💳 credit card money sales dollar bill payment shopping +🧾 receipt accounting expenses +💹 chart increasing with yen green-square graph presentation stats +💱 currency exchange money sales dollar travel +💲 heavy dollar sign money sales payment currency buck +✉️ envelope letter postal inbox communication +📧 e mail communication inbox +📨 incoming envelope email inbox +📩 envelope with arrow email communication +📤 outbox tray inbox email +📥 inbox tray email documents +📦 package mail gift cardboard box moving +📫 closed mailbox with raised flag email inbox communication +📪 closed mailbox with lowered flag email communication inbox +📬 open mailbox with raised flag email inbox communication +📭 open mailbox with lowered flag email inbox +📮 postbox email letter envelope +🗳️ ballot box with ballot election vote +✏️ pencil stationery write paper writing school study +✒️ black nib pen stationery writing write +🖋️ fountain pen stationery writing write +🖊️ pen stationery writing write +🖌️ paintbrush drawing creativity art +🖍️ crayon drawing creativity +📝 memo write documents stationery pencil paper writing legal exam quiz test study compose +💼 briefcase business documents work law legal job career +📁 file folder documents business office +📂 open file folder documents load +🗂️ card index dividers organizing business stationery +📅 calendar calendar schedule +📆 tear off calendar schedule date planning +🗒️ spiral notepad memo stationery +🗓️ spiral calendar date schedule planning +📇 card index business stationery +📈 chart increasing graph presentation stats recovery business economics money sales good success +📉 chart decreasing graph presentation stats recession business economics money sales bad failure +📊 bar chart graph presentation stats +📋 clipboard stationery documents +📌 pushpin stationery mark here +📍 round pushpin stationery location map here +📎 paperclip documents stationery +🖇️ linked paperclips documents stationery +📏 straight ruler stationery calculate length math school drawing architect sketch +📐 triangular ruler stationery math architect sketch +✂️ scissors stationery cut +🗃️ card file box business stationery +🗄️ file cabinet filing organizing +🗑️ wastebasket bin trash rubbish garbage toss +🔒 locked security password padlock +🔓 unlocked privacy security +🔏 locked with pen security secret +🔐 locked with key security privacy +🔑 key lock door password +🗝️ old key lock door password +🔨 hammer tools build create +🪓 axe tool chop cut +⛏️ pick tools dig +⚒️ hammer and pick tools build create +🛠️ hammer and wrench tools build create +🗡️ dagger weapon +⚔️ crossed swords weapon +🔫 pistol violence weapon pistol revolver +🏹 bow and arrow sports +🛡️ shield protection security +🔧 wrench tools diy ikea fix maintainer +🔩 nut and bolt handy tools fix +⚙️ gear cog +🗜️ clamp tool +⚖️ balance scale law fairness weight +🦯 probing cane accessibility +🔗 link rings url +⛓️ chains lock arrest +🧰 toolbox tools diy fix maintainer mechanic +🧲 magnet attraction magnetic +⚗️ alembic distilling science experiment chemistry +🧪 test tube chemistry experiment lab science +🧫 petri dish bacteria biology culture lab +🧬 dna biologist genetics life +🔬 microscope laboratory experiment zoomin science study +🔭 telescope stars space zoom science astronomy +📡 satellite antenna communication future radio space +💉 syringe health hospital drugs blood medicine needle doctor nurse +🩸 drop of blood period hurt harm wound +💊 pill health medicine doctor pharmacy drug +🩹 adhesive bandage heal +🩺 stethoscope health +🚪 door house entry exit +🛏️ bed sleep rest +🛋️ couch and lamp read chill +🪑 chair sit furniture +🚽 toilet restroom wc washroom bathroom potty +🚿 shower clean water bathroom +🛁 bathtub clean shower bathroom +🪒 razor cut +🧴 lotion bottle moisturizer sunscreen +🧷 safety pin diaper +🧹 broom cleaning sweeping witch +🧺 basket laundry +🧻 roll of paper roll +🧼 soap bar bathing cleaning lather +🧽 sponge absorbing cleaning porous +🧯 fire extinguisher quench +🛒 shopping cart trolley +🚬 cigarette kills tobacco cigarette joint smoke +⚰️ coffin vampire dead die death rip graveyard cemetery casket funeral box +⚱️ funeral urn dead die death rip ashes +🗿 moai rock easter island moai +🏧 atm sign money sales cash blue-square payment bank +🚮 litter in bin sign blue-square sign human info +🚰 potable water blue-square liquid restroom cleaning faucet +♿ wheelchair symbol blue-square disabled accessibility +🚹 men s room toilet restroom wc blue-square gender male +🚺 women s room purple-square woman female toilet loo restroom gender +🚻 restroom blue-square toilet refresh wc gender +🚼 baby symbol orange-square child +🚾 water closet toilet restroom blue-square +🛂 passport control custom blue-square +🛃 customs passport border blue-square +🛄 baggage claim blue-square airport transport +🛅 left luggage blue-square travel +⚠️ warning exclamation wip alert error problem issue +🚸 children crossing school warning danger sign driving yellow-diamond +⛔ no entry limit security privacy bad denied stop circle +🚫 prohibited forbid stop limit denied disallow circle +🚳 no bicycles cyclist prohibited circle +🚭 no smoking cigarette blue-square smell smoke +🚯 no littering trash bin garbage circle +🚱 non potable water drink faucet tap circle +🚷 no pedestrians rules crossing walking circle +📵 no mobile phones iphone mute circle +🔞 no one under eighteen 18 drink pub night minor circle +☢️ radioactive nuclear danger +☣️ biohazard danger +⬆️ up arrow blue-square continue top direction +↗️ up right arrow blue-square point direction diagonal northeast +➡️ right arrow blue-square next +↘️ down right arrow blue-square direction diagonal southeast +⬇️ down arrow blue-square direction bottom +↙️ down left arrow blue-square direction diagonal southwest +⬅️ left arrow blue-square previous back +↖️ up left arrow blue-square point direction diagonal northwest +↕️ up down arrow blue-square direction way vertical +↔️ left right arrow shape direction horizontal sideways +↩️ right arrow curving left back return blue-square undo enter +↪️ left arrow curving right blue-square return rotate direction +⤴️ right arrow curving up blue-square direction top +⤵️ right arrow curving down blue-square direction bottom +🔃 clockwise vertical arrows sync cycle round repeat +🔄 counterclockwise arrows button blue-square sync cycle +🔙 back arrow arrow words return +🔚 end arrow words arrow +🔛 on arrow arrow words +🔜 soon arrow arrow words +🔝 top arrow words blue-square +🛐 place of worship religion church temple prayer +⚛️ atom symbol science physics chemistry +🕉️ om hinduism buddhism sikhism jainism +✡️ star of david judaism +☸️ wheel of dharma hinduism buddhism sikhism jainism +☯️ yin yang balance +✝️ latin cross christianity +☦️ orthodox cross suppedaneum religion +☪️ star and crescent islam +☮️ peace symbol hippie +🕎 menorah hanukkah candles jewish +🔯 dotted six pointed star purple-square religion jewish hexagram +♈ aries sign purple-square zodiac astrology +♉ taurus purple-square sign zodiac astrology +♊ gemini sign zodiac purple-square astrology +♋ cancer sign zodiac purple-square astrology +♌ leo sign purple-square zodiac astrology +♍ virgo sign zodiac purple-square astrology +♎ libra sign purple-square zodiac astrology +♏ scorpio sign zodiac purple-square astrology scorpio +♐ sagittarius sign zodiac purple-square astrology +♑ capricorn sign zodiac purple-square astrology +♒ aquarius sign purple-square zodiac astrology +♓ pisces purple-square sign zodiac astrology +⛎ ophiuchus sign purple-square constellation astrology +🔀 shuffle tracks button blue-square shuffle music random +🔁 repeat button loop record +🔂 repeat single button blue-square loop +▶️ play button blue-square right direction play +⏩ fast forward button blue-square play speed continue +⏭️ next track button forward next blue-square +⏯️ play or pause button blue-square play pause +◀️ reverse button blue-square left direction +⏪ fast reverse button play blue-square +⏮️ last track button backward +🔼 upwards button blue-square triangle direction point forward top +⏫ fast up button blue-square direction top +🔽 downwards button blue-square direction bottom +⏬ fast down button blue-square direction bottom +⏸️ pause button pause blue-square +⏹️ stop button blue-square +⏺️ record button blue-square +⏏️ eject button blue-square +🎦 cinema blue-square record film movie curtain stage theater +🔅 dim button sun afternoon warm summer +🔆 bright button sun light +📶 antenna bars blue-square reception phone internet connection wifi bluetooth bars +📳 vibration mode orange-square phone +📴 mobile phone off mute orange-square silence quiet +♀️ female sign woman women lady girl +♂️ male sign man boy men +⚕️ medical symbol health hospital +♾️ infinity forever +♻️ recycling symbol arrow environment garbage trash +⚜️ fleur de lis decorative scout +🔱 trident emblem weapon spear +📛 name badge fire forbid +🔰 japanese symbol for beginner badge shield +⭕ hollow red circle circle round +✅ check mark button green-square ok agree vote election answer tick +☑️ check box with check ok agree confirm black-square vote election yes tick +✔️ check mark ok nike answer yes tick +✖️ multiplication sign math calculation +❌ cross mark no delete remove cancel red +❎ cross mark button x green-square no deny +➕ plus sign math calculation addition more increase +➖ minus sign math calculation subtract less +➗ division sign divide math calculation +➰ curly loop scribble draw shape squiggle +➿ double curly loop tape cassette +〽️ part alternation mark graph presentation stats business economics bad +✳️ eight spoked asterisk star sparkle green-square +✴️ eight pointed star orange-square shape polygon +❇️ sparkle stars green-square awesome good fireworks +‼️ double exclamation mark exclamation surprise +⁉️ exclamation question mark wat punctuation surprise +❓ question mark doubt confused +❔ white question mark doubts gray huh confused +❕ white exclamation mark surprise punctuation gray wow warning +❗ exclamation mark heavy exclamation mark danger surprise punctuation wow warning +〰️ wavy dash draw line moustache mustache squiggle scribble +©️ copyright ip license circle law legal +®️ registered alphabet circle +™️ trade mark trademark brand law legal +#️⃣ keycap symbol blue-square twitter +*️⃣ keycap star keycap +0️⃣ keycap 0 0 numbers blue-square null +1️⃣ keycap 1 blue-square numbers 1 +2️⃣ keycap 2 numbers 2 prime blue-square +3️⃣ keycap 3 3 numbers prime blue-square +4️⃣ keycap 4 4 numbers blue-square +5️⃣ keycap 5 5 numbers blue-square prime +6️⃣ keycap 6 6 numbers blue-square +7️⃣ keycap 7 7 numbers blue-square prime +8️⃣ keycap 8 8 blue-square numbers +9️⃣ keycap 9 blue-square numbers 9 +🔟 keycap 10 numbers 10 blue-square +🔠 input latin uppercase alphabet words blue-square +🔡 input latin lowercase blue-square alphabet +🔢 input numbers numbers blue-square +🔣 input symbols blue-square music note ampersand percent glyphs characters +🔤 input latin letters blue-square alphabet +🅰️ a button red-square alphabet letter +🆎 ab button red-square alphabet +🅱️ b button red-square alphabet letter +🆑 cl button alphabet words red-square +🆒 cool button words blue-square +🆓 free button blue-square words +ℹ️ information blue-square alphabet letter +🆔 id button purple-square words +Ⓜ️ circled m alphabet blue-circle letter +🆕 new button blue-square words start +🆖 ng button blue-square words shape icon +🅾️ o button alphabet red-square letter +🆗 ok button good agree yes blue-square +🅿️ p button cars blue-square alphabet letter +🆘 sos button help red-square words emergency 911 +🆙 up button blue-square above high +🆚 vs button words orange-square +🈁 japanese here button blue-square here katakana japanese destination +🈂️ japanese service charge button japanese blue-square katakana +🈷️ japanese monthly amount button chinese month moon japanese orange-square kanji +🈶 japanese not free of charge button orange-square chinese have kanji +🈯 japanese reserved button chinese point green-square kanji +🉐 japanese bargain button chinese kanji obtain get circle +🈹 japanese discount button cut divide chinese kanji pink-square +🈚 japanese free of charge button nothing chinese kanji japanese orange-square +🈲 japanese prohibited button kanji japanese chinese forbidden limit restricted red-square +🉑 japanese acceptable button ok good chinese kanji agree yes orange-circle +🈸 japanese application button chinese japanese kanji orange-square +🈴 japanese passing grade button japanese chinese join kanji red-square +🈳 japanese vacancy button kanji japanese chinese empty sky blue-square +㊗️ japanese congratulations button chinese kanji japanese red-circle +㊙️ japanese secret button privacy chinese sshh kanji red-circle +🈺 japanese open for business button japanese opening hours orange-square +🈵 japanese no vacancy button full chinese japanese red-square kanji +🔴 red circle shape error danger +🟠 orange circle round +🟡 yellow circle round +🟢 green circle round +🔵 blue circle shape icon button +🟣 purple circle round +🟤 brown circle round +⚫ black circle shape button round +⚪ white circle shape round +🟥 red square +🟧 orange square +🟨 yellow square +🟩 green square +🟦 blue square +🟪 purple square +🟫 brown square +⬛ black large square shape icon button +⬜ white large square shape icon stone button +◼️ black medium square shape button icon +◻️ white medium square shape stone icon +◾ black medium small square icon shape button +◽ white medium small square shape stone icon button +▪️ black small square shape icon +▫️ white small square shape icon +🔶 large orange diamond shape jewel gem +🔷 large blue diamond shape jewel gem +🔸 small orange diamond shape jewel gem +🔹 small blue diamond shape jewel gem +🔺 red triangle pointed up shape direction up top +🔻 red triangle pointed down shape direction bottom +💠 diamond with a dot jewel blue gem crystal fancy +🔘 radio button input old music circle +🔳 white square button shape input +🔲 black square button shape input frame +🏁 chequered flag contest finishline race gokart +🚩 triangular flag mark milestone place +🎌 crossed flags japanese nation country border +🏴 black flag pirate +🏳️ white flag losing loser lost surrender give up fail +🏳️‍🌈 rainbow flag flag rainbow pride gay lgbt glbt queer homosexual lesbian bisexual transgender +🏴‍☠️ pirate flag skull crossbones flag banner +🇦🇨 flag ascension island +🇦🇩 flag andorra ad flag nation country banner andorra +🇦🇪 flag united arab emirates united arab emirates flag nation country banner united arab emirates +🇦🇫 flag afghanistan af flag nation country banner afghanistan +🇦🇬 flag antigua barbuda antigua barbuda flag nation country banner antigua barbuda +🇦🇮 flag anguilla ai flag nation country banner anguilla +🇦🇱 flag albania al flag nation country banner albania +🇦🇲 flag armenia am flag nation country banner armenia +🇦🇴 flag angola ao flag nation country banner angola +🇦🇶 flag antarctica aq flag nation country banner antarctica +🇦🇷 flag argentina ar flag nation country banner argentina +🇦🇸 flag american samoa american ws flag nation country banner american samoa +🇦🇹 flag austria at flag nation country banner austria +🇦🇺 flag australia au flag nation country banner australia +🇦🇼 flag aruba aw flag nation country banner aruba +🇦🇽 flag aland islands Åland islands flag nation country banner aland islands +🇦🇿 flag azerbaijan az flag nation country banner azerbaijan +🇧🇦 flag bosnia herzegovina bosnia herzegovina flag nation country banner bosnia herzegovina +🇧🇧 flag barbados bb flag nation country banner barbados +🇧🇩 flag bangladesh bd flag nation country banner bangladesh +🇧🇪 flag belgium be flag nation country banner belgium +🇧🇫 flag burkina faso burkina faso flag nation country banner burkina faso +🇧🇬 flag bulgaria bg flag nation country banner bulgaria +🇧🇭 flag bahrain bh flag nation country banner bahrain +🇧🇮 flag burundi bi flag nation country banner burundi +🇧🇯 flag benin bj flag nation country banner benin +🇧🇱 flag st barthelemy saint barthélemy flag nation country banner st barthelemy +🇧🇲 flag bermuda bm flag nation country banner bermuda +🇧🇳 flag brunei bn darussalam flag nation country banner brunei +🇧🇴 flag bolivia bo flag nation country banner bolivia +🇧🇶 flag caribbean netherlands bonaire flag nation country banner caribbean netherlands +🇧🇷 flag brazil br flag nation country banner brazil +🇧🇸 flag bahamas bs flag nation country banner bahamas +🇧🇹 flag bhutan bt flag nation country banner bhutan +🇧🇻 flag bouvet island norway +🇧🇼 flag botswana bw flag nation country banner botswana +🇧🇾 flag belarus by flag nation country banner belarus +🇧🇿 flag belize bz flag nation country banner belize +🇨🇦 flag canada ca flag nation country banner canada +🇨🇨 flag cocos islands cocos keeling islands flag nation country banner cocos islands +🇨🇩 flag congo kinshasa congo democratic republic flag nation country banner congo kinshasa +🇨🇫 flag central african republic central african republic flag nation country banner central african republic +🇨🇬 flag congo brazzaville congo flag nation country banner congo brazzaville +🇨🇭 flag switzerland ch flag nation country banner switzerland +🇨🇮 flag cote d ivoire ivory coast flag nation country banner cote d ivoire +🇨🇰 flag cook islands cook islands flag nation country banner cook islands +🇨🇱 flag chile flag nation country banner chile +🇨🇲 flag cameroon cm flag nation country banner cameroon +🇨🇳 flag china china chinese prc flag country nation banner china +🇨🇴 flag colombia co flag nation country banner colombia +🇨🇵 flag clipperton island +🇨🇷 flag costa rica costa rica flag nation country banner costa rica +🇨🇺 flag cuba cu flag nation country banner cuba +🇨🇻 flag cape verde cabo verde flag nation country banner cape verde +🇨🇼 flag curacao curaçao flag nation country banner curacao +🇨🇽 flag christmas island christmas island flag nation country banner christmas island +🇨🇾 flag cyprus cy flag nation country banner cyprus +🇨🇿 flag czechia cz flag nation country banner czechia +🇩🇪 flag germany german nation flag country banner germany +🇩🇬 flag diego garcia +🇩🇯 flag djibouti dj flag nation country banner djibouti +🇩🇰 flag denmark dk flag nation country banner denmark +🇩🇲 flag dominica dm flag nation country banner dominica +🇩🇴 flag dominican republic dominican republic flag nation country banner dominican republic +🇩🇿 flag algeria dz flag nation country banner algeria +🇪🇦 flag ceuta melilla +🇪🇨 flag ecuador ec flag nation country banner ecuador +🇪🇪 flag estonia ee flag nation country banner estonia +🇪🇬 flag egypt eg flag nation country banner egypt +🇪🇭 flag western sahara western sahara flag nation country banner western sahara +🇪🇷 flag eritrea er flag nation country banner eritrea +🇪🇸 flag spain spain flag nation country banner spain +🇪🇹 flag ethiopia et flag nation country banner ethiopia +🇪🇺 flag european union european union flag banner +🇫🇮 flag finland fi flag nation country banner finland +🇫🇯 flag fiji fj flag nation country banner fiji +🇫🇰 flag falkland islands falkland islands malvinas flag nation country banner falkland islands +🇫🇲 flag micronesia micronesia federated states flag nation country banner micronesia +🇫🇴 flag faroe islands faroe islands flag nation country banner faroe islands +🇫🇷 flag france banner flag nation france french country france +🇬🇦 flag gabon ga flag nation country banner gabon +🇬🇧 flag united kingdom united kingdom great britain northern ireland flag nation country banner british UK english england union jack united kingdom +🇬🇩 flag grenada gd flag nation country banner grenada +🇬🇪 flag georgia ge flag nation country banner georgia +🇬🇫 flag french guiana french guiana flag nation country banner french guiana +🇬🇬 flag guernsey gg flag nation country banner guernsey +🇬🇭 flag ghana gh flag nation country banner ghana +🇬🇮 flag gibraltar gi flag nation country banner gibraltar +🇬🇱 flag greenland gl flag nation country banner greenland +🇬🇲 flag gambia gm flag nation country banner gambia +🇬🇳 flag guinea gn flag nation country banner guinea +🇬🇵 flag guadeloupe gp flag nation country banner guadeloupe +🇬🇶 flag equatorial guinea equatorial gn flag nation country banner equatorial guinea +🇬🇷 flag greece gr flag nation country banner greece +🇬🇸 flag south georgia south sandwich islands south georgia sandwich islands flag nation country banner south georgia south sandwich islands +🇬🇹 flag guatemala gt flag nation country banner guatemala +🇬🇺 flag guam gu flag nation country banner guam +🇬🇼 flag guinea bissau gw bissau flag nation country banner guinea bissau +🇬🇾 flag guyana gy flag nation country banner guyana +🇭🇰 flag hong kong sar china hong kong flag nation country banner hong kong sar china +🇭🇲 flag heard mcdonald islands +🇭🇳 flag honduras hn flag nation country banner honduras +🇭🇷 flag croatia hr flag nation country banner croatia +🇭🇹 flag haiti ht flag nation country banner haiti +🇭🇺 flag hungary hu flag nation country banner hungary +🇮🇨 flag canary islands canary islands flag nation country banner canary islands +🇮🇩 flag indonesia flag nation country banner indonesia +🇮🇪 flag ireland ie flag nation country banner ireland +🇮🇱 flag israel il flag nation country banner israel +🇮🇲 flag isle of man isle man flag nation country banner isle of man +🇮🇳 flag india in flag nation country banner india +🇮🇴 flag british indian ocean territory british indian ocean territory flag nation country banner british indian ocean territory +🇮🇶 flag iraq iq flag nation country banner iraq +🇮🇷 flag iran iran islamic republic flag nation country banner iran +🇮🇸 flag iceland is flag nation country banner iceland +🇮🇹 flag italy italy flag nation country banner italy +🇯🇪 flag jersey je flag nation country banner jersey +🇯🇲 flag jamaica jm flag nation country banner jamaica +🇯🇴 flag jordan jo flag nation country banner jordan +🇯🇵 flag japan japanese nation flag country banner japan +🇰🇪 flag kenya ke flag nation country banner kenya +🇰🇬 flag kyrgyzstan kg flag nation country banner kyrgyzstan +🇰🇭 flag cambodia kh flag nation country banner cambodia +🇰🇮 flag kiribati ki flag nation country banner kiribati +🇰🇲 flag comoros km flag nation country banner comoros +🇰🇳 flag st kitts nevis saint kitts nevis flag nation country banner st kitts nevis +🇰🇵 flag north korea north korea nation flag country banner north korea +🇰🇷 flag south korea south korea nation flag country banner south korea +🇰🇼 flag kuwait kw flag nation country banner kuwait +🇰🇾 flag cayman islands cayman islands flag nation country banner cayman islands +🇰🇿 flag kazakhstan kz flag nation country banner kazakhstan +🇱🇦 flag laos lao democratic republic flag nation country banner laos +🇱🇧 flag lebanon lb flag nation country banner lebanon +🇱🇨 flag st lucia saint lucia flag nation country banner st lucia +🇱🇮 flag liechtenstein li flag nation country banner liechtenstein +🇱🇰 flag sri lanka sri lanka flag nation country banner sri lanka +🇱🇷 flag liberia lr flag nation country banner liberia +🇱🇸 flag lesotho ls flag nation country banner lesotho +🇱🇹 flag lithuania lt flag nation country banner lithuania +🇱🇺 flag luxembourg lu flag nation country banner luxembourg +🇱🇻 flag latvia lv flag nation country banner latvia +🇱🇾 flag libya ly flag nation country banner libya +🇲🇦 flag morocco ma flag nation country banner morocco +🇲🇨 flag monaco mc flag nation country banner monaco +🇲🇩 flag moldova moldova republic flag nation country banner moldova +🇲🇪 flag montenegro me flag nation country banner montenegro +🇲🇫 flag st martin +🇲🇬 flag madagascar mg flag nation country banner madagascar +🇲🇭 flag marshall islands marshall islands flag nation country banner marshall islands +🇲🇰 flag north macedonia macedonia flag nation country banner north macedonia +🇲🇱 flag mali ml flag nation country banner mali +🇲🇲 flag myanmar mm flag nation country banner myanmar +🇲🇳 flag mongolia mn flag nation country banner mongolia +🇲🇴 flag macao sar china macao flag nation country banner macao sar china +🇲🇵 flag northern mariana islands northern mariana islands flag nation country banner northern mariana islands +🇲🇶 flag martinique mq flag nation country banner martinique +🇲🇷 flag mauritania mr flag nation country banner mauritania +🇲🇸 flag montserrat ms flag nation country banner montserrat +🇲🇹 flag malta mt flag nation country banner malta +🇲🇺 flag mauritius mu flag nation country banner mauritius +🇲🇻 flag maldives mv flag nation country banner maldives +🇲🇼 flag malawi mw flag nation country banner malawi +🇲🇽 flag mexico mx flag nation country banner mexico +🇲🇾 flag malaysia my flag nation country banner malaysia +🇲🇿 flag mozambique mz flag nation country banner mozambique +🇳🇦 flag namibia na flag nation country banner namibia +🇳🇨 flag new caledonia new caledonia flag nation country banner new caledonia +🇳🇪 flag niger ne flag nation country banner niger +🇳🇫 flag norfolk island norfolk island flag nation country banner norfolk island +🇳🇬 flag nigeria flag nation country banner nigeria +🇳🇮 flag nicaragua ni flag nation country banner nicaragua +🇳🇱 flag netherlands nl flag nation country banner netherlands +🇳🇴 flag norway no flag nation country banner norway +🇳🇵 flag nepal np flag nation country banner nepal +🇳🇷 flag nauru nr flag nation country banner nauru +🇳🇺 flag niue nu flag nation country banner niue +🇳🇿 flag new zealand new zealand flag nation country banner new zealand +🇴🇲 flag oman om symbol flag nation country banner oman +🇵🇦 flag panama pa flag nation country banner panama +🇵🇪 flag peru pe flag nation country banner peru +🇵🇫 flag french polynesia french polynesia flag nation country banner french polynesia +🇵🇬 flag papua new guinea papua new guinea flag nation country banner papua new guinea +🇵🇭 flag philippines ph flag nation country banner philippines +🇵🇰 flag pakistan pk flag nation country banner pakistan +🇵🇱 flag poland pl flag nation country banner poland +🇵🇲 flag st pierre miquelon saint pierre miquelon flag nation country banner st pierre miquelon +🇵🇳 flag pitcairn islands pitcairn flag nation country banner pitcairn islands +🇵🇷 flag puerto rico puerto rico flag nation country banner puerto rico +🇵🇸 flag palestinian territories palestine palestinian territories flag nation country banner palestinian territories +🇵🇹 flag portugal pt flag nation country banner portugal +🇵🇼 flag palau pw flag nation country banner palau +🇵🇾 flag paraguay py flag nation country banner paraguay +🇶🇦 flag qatar qa flag nation country banner qatar +🇷🇪 flag reunion réunion flag nation country banner reunion +🇷🇴 flag romania ro flag nation country banner romania +🇷🇸 flag serbia rs flag nation country banner serbia +🇷🇺 flag russia russian federation flag nation country banner russia +🇷🇼 flag rwanda rw flag nation country banner rwanda +🇸🇦 flag saudi arabia flag nation country banner saudi arabia +🇸🇧 flag solomon islands solomon islands flag nation country banner solomon islands +🇸🇨 flag seychelles sc flag nation country banner seychelles +🇸🇩 flag sudan sd flag nation country banner sudan +🇸🇪 flag sweden se flag nation country banner sweden +🇸🇬 flag singapore sg flag nation country banner singapore +🇸🇭 flag st helena saint helena ascension tristan cunha flag nation country banner st helena +🇸🇮 flag slovenia si flag nation country banner slovenia +🇸🇯 flag svalbard jan mayen +🇸🇰 flag slovakia sk flag nation country banner slovakia +🇸🇱 flag sierra leone sierra leone flag nation country banner sierra leone +🇸🇲 flag san marino san marino flag nation country banner san marino +🇸🇳 flag senegal sn flag nation country banner senegal +🇸🇴 flag somalia so flag nation country banner somalia +🇸🇷 flag suriname sr flag nation country banner suriname +🇸🇸 flag south sudan south sd flag nation country banner south sudan +🇸🇹 flag sao tome principe sao tome principe flag nation country banner sao tome principe +🇸🇻 flag el salvador el salvador flag nation country banner el salvador +🇸🇽 flag sint maarten sint maarten dutch flag nation country banner sint maarten +🇸🇾 flag syria syrian arab republic flag nation country banner syria +🇸🇿 flag eswatini sz flag nation country banner eswatini +🇹🇦 flag tristan da cunha +🇹🇨 flag turks caicos islands turks caicos islands flag nation country banner turks caicos islands +🇹🇩 flag chad td flag nation country banner chad +🇹🇫 flag french southern territories french southern territories flag nation country banner french southern territories +🇹🇬 flag togo tg flag nation country banner togo +🇹🇭 flag thailand th flag nation country banner thailand +🇹🇯 flag tajikistan tj flag nation country banner tajikistan +🇹🇰 flag tokelau tk flag nation country banner tokelau +🇹🇱 flag timor leste timor leste flag nation country banner timor leste +🇹🇲 flag turkmenistan flag nation country banner turkmenistan +🇹🇳 flag tunisia tn flag nation country banner tunisia +🇹🇴 flag tonga to flag nation country banner tonga +🇹🇷 flag turkey turkey flag nation country banner turkey +🇹🇹 flag trinidad tobago trinidad tobago flag nation country banner trinidad tobago +🇹🇻 flag tuvalu flag nation country banner tuvalu +🇹🇼 flag taiwan tw flag nation country banner taiwan +🇹🇿 flag tanzania tanzania united republic flag nation country banner tanzania +🇺🇦 flag ukraine ua flag nation country banner ukraine +🇺🇬 flag uganda ug flag nation country banner uganda +🇺🇲 flag u s outlying islands +🇺🇳 flag united nations un flag banner +🇺🇸 flag united states united states america flag nation country banner united states +🇺🇾 flag uruguay uy flag nation country banner uruguay +🇺🇿 flag uzbekistan uz flag nation country banner uzbekistan +🇻🇦 flag vatican city vatican city flag nation country banner vatican city +🇻🇨 flag st vincent grenadines saint vincent grenadines flag nation country banner st vincent grenadines +🇻🇪 flag venezuela ve bolivarian republic flag nation country banner venezuela +🇻🇬 flag british virgin islands british virgin islands bvi flag nation country banner british virgin islands +🇻🇮 flag u s virgin islands virgin islands us flag nation country banner u s virgin islands +🇻🇳 flag vietnam viet nam flag nation country banner vietnam +🇻🇺 flag vanuatu vu flag nation country banner vanuatu +🇼🇫 flag wallis futuna wallis futuna flag nation country banner wallis futuna +🇼🇸 flag samoa ws flag nation country banner samoa +🇽🇰 flag kosovo xk flag nation country banner kosovo +🇾🇪 flag yemen ye flag nation country banner yemen +🇾🇹 flag mayotte yt flag nation country banner mayotte +🇿🇦 flag south africa south africa flag nation country banner south africa +🇿🇲 flag zambia zm flag nation country banner zambia +🇿🇼 flag zimbabwe zw flag nation country banner zimbabwe +🏴󠁧󠁢󠁥󠁮󠁧󠁿 flag england flag english +🏴󠁧󠁢󠁳󠁣󠁴󠁿 flag scotland flag scottish +🏴󠁧󠁢󠁷󠁬󠁳󠁿 flag wales flag welsh +🥲 smiling face with tear sad cry pretend +🥸 disguised face pretent brows glasses moustache +🤌 pinched fingers size tiny small +🫀 anatomical heart health heartbeat +🫁 lungs breathe +🥷 ninja ninjutsu skills japanese +🤵‍♂️ man in tuxedo formal fashion +🤵‍♀️ woman in tuxedo formal fashion +👰‍♂️ man with veil wedding marriage +👰‍♀️ woman with veil wedding marriage +👩‍🍼 woman feeding baby birth food +👨‍🍼 man feeding baby birth food +🧑‍🍼 person feeding baby birth food +🧑‍🎄 mx claus christmas +🫂 people hugging care +🐈‍⬛ black cat superstition luck +🦬 bison ox +🦣 mammoth elephant tusks +🦫 beaver animal rodent +🐻‍❄️ polar bear animal arctic +🦤 dodo animal bird +🪶 feather bird fly +🦭 seal animal creature sea +🪲 beetle insect +🪳 cockroach insect pests +🪰 fly insect +🪱 worm animal +🪴 potted plant greenery house +🫐 blueberries fruit +🫒 olive fruit +🫑 bell pepper fruit plant +🫓 flatbread flour food +🫔 tamale food masa +🫕 fondue cheese pot food +🫖 teapot drink hot +🧋 bubble tea taiwan boba milk tea straw +🪨 rock stone +🪵 wood nature timber trunk +🛖 hut house structure +🛻 pickup truck car transportation +🛼 roller skate footwear sports +🪄 magic wand supernature power +🪅 pinata mexico candy celebration +🪆 nesting dolls matryoshka toy +🪡 sewing needle stitches +🪢 knot rope scout +🩴 thong sandal footwear summer +🪖 military helmet army protection +🪗 accordion music +🪘 long drum music +🪙 coin money currency +🪃 boomerang weapon +🪚 carpentry saw cut chop +🪛 screwdriver tools +🪝 hook tools +🪜 ladder tools +🛗 elevator lift +🪞 mirror reflection +🪟 window scenery +🪠 plunger toilet +🪤 mouse trap cheese +🪣 bucket water container +🪥 toothbrush hygiene dental +🪦 headstone death rip grave +🪧 placard announcement +⚧️ transgender symbol lgbtq +🏳️‍⚧️ transgender flag lgbtq +😶‍🌫️ face in clouds shower steam dream +😮‍💨 face exhaling relieve relief tired sigh +😵‍💫 face with spiral eyes sick ill confused nauseous nausea +❤️‍🔥 heart on fire passionate enthusiastic +❤️‍🩹 mending heart broken heart bandage wounded +🧔‍♂️ man beard facial hair +🧔‍♀️ woman beard facial hair +🫠 melting face hot heat +🫢 face with open eyes and hand over mouth silence secret shock surprise +🫣 face with peeking eye scared frightening embarrassing +🫡 saluting face respect salute +🫥 dotted line face invisible lonely isolation depression +🫤 face with diagonal mouth skeptic confuse frustrated indifferent +🥹 face holding back tears touched gratitude +🫱 rightwards hand palm offer +🫲 leftwards hand palm offer +🫳 palm down hand palm drop +🫴 palm up hand lift offer demand +🫰 hand with index finger and thumb crossed heart love money expensive +🫵 index pointing at the viewer you recruit +🫶 heart hands love appreciation support +🫦 biting lip flirt sexy pain worry +🫅 person with crown royalty power +🫃 pregnant man baby belly +🫄 pregnant person baby belly +🧌 troll mystical monster +🪸 coral ocean sea reef +🪷 lotus flower calm meditation +🪹 empty nest bird +🪺 nest with eggs bird +🫘 beans food +🫗 pouring liquid cup water +🫙 jar container sauce +🛝 playground slide fun park +🛞 wheel car transport +🛟 ring buoy life saver life preserver +🪬 hamsa religion protection +🪩 mirror ball disco dance party +🪫 low battery drained dead +🩼 crutch accessibility assist +🩻 x-ray skeleton medicine +🫧 bubbles soap fun carbonation sparkling +🪪 identification card document +🟰 heavy equals sign math +¿? question upside down reversed spanish +← left arrow +↑ up arrow +→ right arrow +↓ down arrow +←↑→↓ all directions up down left right arrows +AH↗️HA↘️HA↗️HA↘️ pekora arrows hahaha rabbit +• dot circle separator +「」 japanese quote square bracket +¯\_(ツ)_/¯ shrug idk i dont know +↵ enter key return +𝕏 twitter x logo +👉👈 etou ughhhhhhh shy +👉👌 put it in imagination perv \ No newline at end of file diff --git a/linux/hypr/.config/hypr/ii/hyprland/scripts/launch_first_available.sh b/linux/hypr/.config/hypr/ii/hyprland/scripts/launch_first_available.sh new file mode 100755 index 0000000..31dd23a --- /dev/null +++ b/linux/hypr/.config/hypr/ii/hyprland/scripts/launch_first_available.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +for cmd in "$@"; do + [[ -z "$cmd" ]] && continue + eval "command -v ${cmd%% *}" >/dev/null 2>&1 || continue + eval "$cmd" & + exit +done diff --git a/linux/hypr/.config/hypr/ii/hyprland/scripts/snip_to_search.sh b/linux/hypr/.config/hypr/ii/hyprland/scripts/snip_to_search.sh new file mode 100755 index 0000000..60a68fe --- /dev/null +++ b/linux/hypr/.config/hypr/ii/hyprland/scripts/snip_to_search.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +grim -g "$(slurp)" /tmp/image.png +imageLink=$(curl -sF files[]=@/tmp/image.png 'https://uguu.se/upload' | jq -r '.files[0].url') +xdg-open "https://lens.google.com/uploadbyurl?url=${imageLink}" +rm /tmp/image.png diff --git a/linux/hypr/.config/hypr/ii/hyprland/scripts/start_geoclue_agent.sh b/linux/hypr/.config/hypr/ii/hyprland/scripts/start_geoclue_agent.sh new file mode 100755 index 0000000..b4b8fa1 --- /dev/null +++ b/linux/hypr/.config/hypr/ii/hyprland/scripts/start_geoclue_agent.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash + +# Check if GeoClue agent is already running +if pgrep -f 'geoclue-2.0/demos/agent' > /dev/null; then + echo "GeoClue agent is already running." + exit 0 +fi + +# List of known possible GeoClue agent paths +AGENT_PATHS=( + /usr/libexec/geoclue-2.0/demos/agent + /usr/lib/geoclue-2.0/demos/agent + "$HOME/.nix-profile/libexec/geoclue-2.0/demos/agent" + "$HOME/.nix-profile/lib/geoclue-2.0/demos/agent" + /run/current-system/sw/libexec/geoclue-2.0/demos/agent +) + +# Find the first valid agent path +for path in "${AGENT_PATHS[@]}"; do + if [ -x "$path" ]; then + echo "Starting GeoClue agent from: $path" + "$path" & # starts in the background + exit 0 + fi +done + +# If we got here, none of the paths worked +echo "GeoClue agent not found in known paths." +echo "Please install GeoClue or update the script with the correct path." +exit 1 diff --git a/linux/hypr/.config/hypr/ii/hyprland/scripts/workspace_action.sh b/linux/hypr/.config/hypr/ii/hyprland/scripts/workspace_action.sh new file mode 100755 index 0000000..fa63d71 --- /dev/null +++ b/linux/hypr/.config/hypr/ii/hyprland/scripts/workspace_action.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash +curr_workspace="$(hyprctl activeworkspace -j | jq -r ".id")" +dispatcher="$1" +shift ## The target is now in $1, not $2 + +if [[ -z "${dispatcher}" || "${dispatcher}" == "--help" || "${dispatcher}" == "-h" || -z "$1" ]]; then + echo "Usage: $0 " + exit 1 +fi +if [[ "$1" == *"+"* || "$1" == *"-"* ]]; then ## Is this something like r+1 or -1? + hyprctl dispatch "${dispatcher}" "$1" ## $1 = workspace id since we shifted earlier. +elif [[ "$1" =~ ^[0-9]+$ ]]; then ## Is this just a number? + target_workspace=$((((curr_workspace - 1) / 10 ) * 10 + $1)) + hyprctl dispatch "${dispatcher}" "${target_workspace}" +else + hyprctl dispatch "${dispatcher}" "$1" ## In case the target in a string, required for special workspaces. + exit 1 +fi diff --git a/linux/hypr/.config/hypr/ii/hyprland/scripts/zoom.sh b/linux/hypr/.config/hypr/ii/hyprland/scripts/zoom.sh new file mode 100755 index 0000000..4713684 --- /dev/null +++ b/linux/hypr/.config/hypr/ii/hyprland/scripts/zoom.sh @@ -0,0 +1,54 @@ +#!/usr/bin/env bash + +# Controls Hyprland's cursor zoom_factor, clamped between 1.0 and 3.0 + +# Get current zoom level +get_zoom() { + hyprctl getoption -j cursor:zoom_factor | jq '.float' +} + +# Clamp a value between 1.0 and 3.0 +clamp() { + local val="$1" + awk "BEGIN { + v = $val; + if (v < 1.0) v = 1.0; + if (v > 3.0) v = 3.0; + print v; + }" +} + +# Set zoom level +set_zoom() { + local value="$1" + clamped=$(clamp "$value") + hyprctl keyword cursor:zoom_factor "$clamped" +} + +case "$1" in + reset) + set_zoom 1.0 + ;; + increase) + if [[ -z "$2" ]]; then + echo "Usage: $0 increase STEP" + exit 1 + fi + current=$(get_zoom) + new=$(awk "BEGIN { print $current + $2 }") + set_zoom "$new" + ;; + decrease) + if [[ -z "$2" ]]; then + echo "Usage: $0 decrease STEP" + exit 1 + fi + current=$(get_zoom) + new=$(awk "BEGIN { print $current - $2 }") + set_zoom "$new" + ;; + *) + echo "Usage: $0 {reset|increase STEP|decrease STEP}" + exit 1 + ;; +esac diff --git a/linux/hypr/.config/hypr/ii/hyprland/shellOverrides/main.conf b/linux/hypr/.config/hypr/ii/hyprland/shellOverrides/main.conf new file mode 100644 index 0000000..e69de29 diff --git a/linux/hypr/.config/hypr/ii/hyprland/variables.conf b/linux/hypr/.config/hypr/ii/hyprland/variables.conf new file mode 100644 index 0000000..a320137 --- /dev/null +++ b/linux/hypr/.config/hypr/ii/hyprland/variables.conf @@ -0,0 +1,23 @@ +# Default variables +# Copy these to ~/.config/hypr/custom/variables.conf to make changes in a dotfiles-update-friendly manner + +# Apps +# PULL REQUESTS ADDING MORE WILL NOT BE ACCEPTED, CONFIG FOR YOURSELF +$terminal = ~/.config/hypr/hyprland/scripts/launch_first_available.sh "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" +$fileManager = ~/.config/hypr/hyprland/scripts/launch_first_available.sh "dolphin" "nautilus" "nemo" "thunar" "kitty -1 fish -c yazi" +$browser = ~/.config/hypr/hyprland/scripts/launch_first_available.sh "google-chrome-stable" "zen-browser" "firefox" "brave" "chromium" "microsoft-edge-stable" "opera" "librewolf" +$codeEditor = ~/.config/hypr/hyprland/scripts/launch_first_available.sh "antigravity" "code" "codium" "cursor" "zed" "zedit" "zeditor" "kate" "gnome-text-editor" "emacs" "command -v nvim && kitty -1 nvim" "command -v micro && kitty -1 micro" +$officeSoftware = ~/.config/hypr/hyprland/scripts/launch_first_available.sh "wps" "onlyoffice-desktopeditors" "libreoffice" +$textEditor = ~/.config/hypr/hyprland/scripts/launch_first_available.sh "kate" "gnome-text-editor" "emacs" +$volumeMixer = ~/.config/hypr/hyprland/scripts/launch_first_available.sh "pavucontrol-qt" "pavucontrol" +$settingsApp = XDG_CURRENT_DESKTOP=gnome ~/.config/hypr/hyprland/scripts/launch_first_available.sh "qs -p ~/.config/quickshell/$qsConfig/settings.qml" "systemsettings" "gnome-control-center" "better-control" +$taskManager = ~/.config/hypr/hyprland/scripts/launch_first_available.sh "gnome-system-monitor" "plasma-systemmonitor --page-name Processes" "command -v btop && kitty -1 fish -c btop" + +# The folder within ~/.config/quickshell containing the config +$qsConfig = ii + +# Leave blank like this to load default config. Set to anything to not. +$dontLoadDefaultExecs = +$dontLoadDefaultGeneral = +$dontLoadDefaultRules = +$dontLoadDefaultKeybinds = diff --git a/linux/hypr/.config/hypr/ii/hyprlock.conf b/linux/hypr/.config/hypr/ii/hyprlock.conf new file mode 100644 index 0000000..386f638 --- /dev/null +++ b/linux/hypr/.config/hypr/ii/hyprlock.conf @@ -0,0 +1,14 @@ +general { + hide_cursor = true +} + +background { + color = rgba(0, 0, 0, 1.0) +} + +input-field { + size = 250, 50 + position = 0, -100 + dots_center = true + fade_on_empty = false +} diff --git a/linux/hypr/.config/hypr/ii/hyprlock.conf.new b/linux/hypr/.config/hypr/ii/hyprlock.conf.new new file mode 100644 index 0000000..208f7cf --- /dev/null +++ b/linux/hypr/.config/hypr/ii/hyprlock.conf.new @@ -0,0 +1,93 @@ +source=~/.config/hypr/hyprlock/colors.conf + +background { + color = rgba(181818FF) +} +input-field { + monitor = + size = 250, 50 + outline_thickness = 2 + dots_size = 0.1 + dots_spacing = 0.3 + outer_color = $entry_border_color + inner_color = $entry_background_color + font_color = $entry_color + fade_on_empty = true + + position = 0, 20 + halign = center + valign = center +} + +label { + monitor = + text = $LAYOUT + color = $text_color + font_size = 14 + font_family = $font_family + position = -30, 30 + halign = right + valign = bottom +} + +label { # Caps Lock Warning + monitor = + text = cmd[update:250] ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/hyprlock/check-capslock.sh + color = $text_color + font_size = 13 + font_family = $font_family + position = 0, -25 + halign = center + valign = center +} + + +label { # Clock + monitor = + text = $TIME + color = $text_color + font_size = 65 + font_family = $font_family_clock + + position = 0, 300 + halign = center + valign = center +} +label { # Date + monitor = + text = cmd[update:5000] date +"%A, %B %d" + color = $text_color + font_size = 17 + font_family = $font_family_clock + + position = 0, 240 + halign = center + valign = center +} + +label { # User + monitor = + text =  $USER + color = $text_color + outline_thickness = 2 + dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8 + dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0 + dots_center = true + font_size = 20 + font_family = $font_family + position = 0, 50 + halign = center + valign = bottom +} + +label { # Status + monitor = + text = cmd[update:5000] ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/hyprlock/status.sh + color = $text_color + font_size = 14 + font_family = $font_family + + position = 30, -30 + halign = left + valign = top +} \ No newline at end of file diff --git a/linux/hypr/.config/hypr/ii/hyprlock/colors.conf b/linux/hypr/.config/hypr/ii/hyprlock/colors.conf new file mode 100644 index 0000000..ea67795 --- /dev/null +++ b/linux/hypr/.config/hypr/ii/hyprlock/colors.conf @@ -0,0 +1,12 @@ +# This configuration is generated by matugen +# Changing these variables with matugen still enabled will overwrite them. + +$text_color = rgba(ffdad3FF) +$entry_background_color = rgba(3a0a0311) +$entry_border_color = rgba(a08c8855) +$entry_color = rgba(ffdad3FF) +$font_family = Google Sans Flex Medium +$font_family_clock = Google Sans Flex Medium +$font_material_symbols = Material Symbols Rounded + +$background_image = /home/gazzd/Pictures/Wallpapers/wallhaven-ml16w8.jpg \ No newline at end of file diff --git a/linux/hypr/.config/hypr/ii/monitors.conf b/linux/hypr/.config/hypr/ii/monitors.conf new file mode 100644 index 0000000..4dccdd4 --- /dev/null +++ b/linux/hypr/.config/hypr/ii/monitors.conf @@ -0,0 +1,4 @@ +# Generated by nwg-displays on 2026-04-03 at 23:44:11. Do not edit manually. + +monitor=HDMI-A-2,1920x1080@60.0,2560x0,1.0 +monitor=DP-4,2560x1440@143.97,0x0,1.0 diff --git a/linux/hypr/.config/hypr/ii/monitors.conf.new b/linux/hypr/.config/hypr/ii/monitors.conf.new new file mode 100644 index 0000000..67c6e19 --- /dev/null +++ b/linux/hypr/.config/hypr/ii/monitors.conf.new @@ -0,0 +1,4 @@ +# This file is to be overwritten by nwg-displays if you choose to use it. +# nwg-displays is a graphical tool for managing monitors. +# - Installation for Arch Linux: sudo pacman -S nwg-displays +# - Repo: https://github.com/nwg-piotr/nwg-displays diff --git a/linux/hypr/.config/hypr/ii/workspaces.conf b/linux/hypr/.config/hypr/ii/workspaces.conf new file mode 100644 index 0000000..67c6e19 --- /dev/null +++ b/linux/hypr/.config/hypr/ii/workspaces.conf @@ -0,0 +1,4 @@ +# This file is to be overwritten by nwg-displays if you choose to use it. +# nwg-displays is a graphical tool for managing monitors. +# - Installation for Arch Linux: sudo pacman -S nwg-displays +# - Repo: https://github.com/nwg-piotr/nwg-displays diff --git a/linux/hypr/.config/hypr/monitors.conf b/linux/hypr/.config/hypr/monitors.conf new file mode 100644 index 0000000..4dccdd4 --- /dev/null +++ b/linux/hypr/.config/hypr/monitors.conf @@ -0,0 +1,4 @@ +# Generated by nwg-displays on 2026-04-03 at 23:44:11. Do not edit manually. + +monitor=HDMI-A-2,1920x1080@60.0,2560x0,1.0 +monitor=DP-4,2560x1440@143.97,0x0,1.0 diff --git a/linux/hypr/.config/hypr/monitors.conf.new b/linux/hypr/.config/hypr/monitors.conf.new new file mode 100644 index 0000000..67c6e19 --- /dev/null +++ b/linux/hypr/.config/hypr/monitors.conf.new @@ -0,0 +1,4 @@ +# This file is to be overwritten by nwg-displays if you choose to use it. +# nwg-displays is a graphical tool for managing monitors. +# - Installation for Arch Linux: sudo pacman -S nwg-displays +# - Repo: https://github.com/nwg-piotr/nwg-displays diff --git a/linux/hypr/.config/hypr/scheme/current.conf b/linux/hypr/.config/hypr/scheme/current.conf new file mode 100644 index 0000000..f02c19e --- /dev/null +++ b/linux/hypr/.config/hypr/scheme/current.conf @@ -0,0 +1,110 @@ +$primary_paletteKeyColor = 7171ac +$secondary_paletteKeyColor = 76758e +$tertiary_paletteKeyColor = 9e648e +$neutral_paletteKeyColor = 78767b +$neutral_variant_paletteKeyColor = 777680 +$background = 131317 +$onBackground = e5e1e7 +$surface = 131317 +$surfaceDim = 131317 +$surfaceBright = 39393d +$surfaceContainerLowest = 0e0e12 +$surfaceContainerLow = 1c1b1f +$surfaceContainer = 201f23 +$surfaceContainerHigh = 2a292e +$surfaceContainerHighest = 353438 +$onSurface = e5e1e7 +$surfaceVariant = 47464f +$onSurfaceVariant = c8c5d1 +$inverseSurface = e5e1e7 +$inverseOnSurface = 313034 +$outline = 918f9a +$outlineVariant = 47464f +$shadow = 000000 +$scrim = 000000 +$surfaceTint = c2c1ff +$primary = c2c1ff +$onPrimary = 2a2a60 +$primaryContainer = 7171ac +$onPrimaryContainer = ffffff +$inversePrimary = 595992 +$secondary = c6c4e0 +$onSecondary = 2e2e44 +$secondaryContainer = 45455c +$onSecondaryContainer = b4b2ce +$tertiary = f5b2e0 +$onTertiary = 4e1e44 +$tertiaryContainer = bb7da9 +$onTertiaryContainer = 000000 +$error = ffb4ab +$onError = 690005 +$errorContainer = 93000a +$onErrorContainer = ffdad6 +$primaryFixed = e2dfff +$primaryFixedDim = c2c1ff +$onPrimaryFixed = 14134a +$onPrimaryFixedVariant = 414178 +$secondaryFixed = e2e0fd +$secondaryFixedDim = c6c4e0 +$onSecondaryFixed = 19192e +$onSecondaryFixedVariant = 45455c +$tertiaryFixed = ffd7f0 +$tertiaryFixedDim = f5b2e0 +$onTertiaryFixed = 35082e +$onTertiaryFixedVariant = 68355c +$term0 = 353434 +$term1 = ac73ff +$term2 = 44def5 +$term3 = ffdcf2 +$term4 = 99aad8 +$term5 = b49fea +$term6 = 9dceff +$term7 = e8d3de +$term8 = ac9fa9 +$term9 = c093ff +$term10 = 89ecff +$term11 = fff0f6 +$term12 = b5c1dd +$term13 = c9b5f4 +$term14 = bae0ff +$term15 = ffffff +$rosewater = f7eff9 +$flamingo = e9def3 +$pink = e2d7ff +$mauve = bfb8ff +$red = c1a5fd +$maroon = c9b5ed +$peach = e0c2f9 +$yellow = ffecf3 +$green = c8e3ff +$teal = d3dfff +$sky = d0daff +$sapphire = b7c5ff +$blue = b0b8ff +$lavender = c7c8ff +$klink = 7382d2 +$klinkSelection = 7382d2 +$kvisited = 8172da +$kvisitedSelection = 8172da +$knegative = a167ff +$knegativeSelection = a167ff +$kneutral = ca92ff +$kneutralSelection = c992ff +$kpositive = 60adff +$kpositiveSelection = 60adff +$text = e5e1e7 +$subtext1 = c8c5d1 +$subtext0 = 918f9a +$overlay2 = 7e7c86 +$overlay1 = 6b6972 +$overlay0 = 595860 +$surface2 = 48474e +$surface1 = 37373d +$surface0 = 25252a +$base = 131317 +$mantle = 131317 +$crust = 121216 +$success = B5CCBA +$onSuccess = 213528 +$successContainer = 374B3E +$onSuccessContainer = D1E9D6 diff --git a/linux/hypr/.config/hypr/workspaces.conf b/linux/hypr/.config/hypr/workspaces.conf new file mode 100644 index 0000000..67c6e19 --- /dev/null +++ b/linux/hypr/.config/hypr/workspaces.conf @@ -0,0 +1,4 @@ +# This file is to be overwritten by nwg-displays if you choose to use it. +# nwg-displays is a graphical tool for managing monitors. +# - Installation for Arch Linux: sudo pacman -S nwg-displays +# - Repo: https://github.com/nwg-piotr/nwg-displays diff --git a/linux/hypr/.config/hypr/workspaces.conf.new b/linux/hypr/.config/hypr/workspaces.conf.new new file mode 100644 index 0000000..67c6e19 --- /dev/null +++ b/linux/hypr/.config/hypr/workspaces.conf.new @@ -0,0 +1,4 @@ +# This file is to be overwritten by nwg-displays if you choose to use it. +# nwg-displays is a graphical tool for managing monitors. +# - Installation for Arch Linux: sudo pacman -S nwg-displays +# - Repo: https://github.com/nwg-piotr/nwg-displays diff --git a/linux/hypr/backups/2026-02-14_20-10-46/default/binds.conf b/linux/hypr/backups/2026-02-14_20-10-46/default/binds.conf deleted file mode 100644 index 6393a70..0000000 --- a/linux/hypr/backups/2026-02-14_20-10-46/default/binds.conf +++ /dev/null @@ -1,93 +0,0 @@ -################### -### MY PROGRAMS ### -################### - -# See https://wiki.hypr.land/Configuring/Keywords/ - -# Set programs that you use -# $terminal = kitty -$terminal = ghostty -$fileManager = thunar -$menu = hyprlauncher -$browser = zen-browser -$editor = code - -################### -### KEYBINDINGS ### -################### - -# See https://wiki.hypr.land/Configuring/Keywords/ -$mainMod = SUPER # Sets "Windows" key as main modifier - -# Example binds, see https://wiki.hypr.land/Configuring/Binds/ for more -bind = $mainMod, return, exec, app2unit -- $terminal -bind = $mainMod, W, exec, app2unit -- $browser -bind = $mainMod, C, exec, app2unit -- $editor -bind = $mainMod, Q, killactive, -bind = $mainMod, M, exec, command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch exit -bind = $mainMod, E, exec, app2unit -- $fileManager -bind = $mainMod, V, togglefloating, -bind = $mainMod, R, exec, app2unit -- $menu -bind = $mainMod, P, pseudo, # dwindle -bind = $mainMod, J, layoutmsg, # dwindle - -# Move focus with mainMod + arrow keys -bind = $mainMod, left, movefocus, l -bind = $mainMod, right, movefocus, r -bind = $mainMod, up, movefocus, u -bind = $mainMod, down, movefocus, d - -# Switch workspaces with mainMod + [0-9] -bind = $mainMod, 1, workspace, 1 -bind = $mainMod, 2, workspace, 2 -bind = $mainMod, 3, workspace, 3 -bind = $mainMod, 4, workspace, 4 -bind = $mainMod, 5, workspace, 5 -bind = $mainMod, 6, workspace, 6 -bind = $mainMod, 7, workspace, 7 -bind = $mainMod, 8, workspace, 8 -bind = $mainMod, 9, workspace, 9 -bind = $mainMod, 0, workspace, 10 - -# Move active window to a workspace with mainMod + SHIFT + [0-9] -bind = $mainMod SHIFT, 1, movetoworkspace, 1 -bind = $mainMod SHIFT, 2, movetoworkspace, 2 -bind = $mainMod SHIFT, 3, movetoworkspace, 3 -bind = $mainMod SHIFT, 4, movetoworkspace, 4 -bind = $mainMod SHIFT, 5, movetoworkspace, 5 -bind = $mainMod SHIFT, 6, movetoworkspace, 6 -bind = $mainMod SHIFT, 7, movetoworkspace, 7 -bind = $mainMod SHIFT, 8, movetoworkspace, 8 -bind = $mainMod SHIFT, 9, movetoworkspace, 9 -bind = $mainMod SHIFT, 0, movetoworkspace, 10 - -bind = $mainMod+Shift, left, movewindow, l -bind = $mainMod+Shift, right, movewindow, r -bind = $mainMod+Shift, up, movewindow, u -bind = $mainMod+Shift, down, movewindow, d - -# Example special workspace (scratchpad) -bind = $mainMod, S, togglespecialworkspace, magic -bind = $mainMod SHIFT, S, movetoworkspace, special:magic - -# Scroll through existing workspaces with mainMod + scroll -bind = $mainMod, mouse_down, workspace, e+1 -bind = $mainMod, mouse_up, workspace, e-1 - -# Move/resize windows with mainMod + LMB/RMB and dragging -bindm = $mainMod, mouse:272, movewindow -bindm = $mainMod, mouse:273, resizewindow - -# Laptop multimedia keys for volume and LCD brightness -bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ -bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- -bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle -bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle -bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+ -bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%- - -# Requires playerctl -bindl = , XF86AudioNext, exec, playerctl next -bindl = , XF86AudioPause, exec, playerctl play-pause -bindl = , XF86AudioPlay, exec, playerctl play-pause -bindl = , XF86AudioPrev, exec, playerctl previous diff --git a/linux/hypr/backups/2026-02-14_20-10-46/default/env.conf b/linux/hypr/backups/2026-02-14_20-10-46/default/env.conf deleted file mode 100644 index 9a2193e..0000000 --- a/linux/hypr/backups/2026-02-14_20-10-46/default/env.conf +++ /dev/null @@ -1,9 +0,0 @@ -############################# -### ENVIRONMENT VARIABLES ### -############################# - -# See https://wiki.hypr.land/Configuring/Environment-variables/ - -env = XCURSOR_SIZE,24 -env = HYPRCURSOR_SIZE,24 -env = SSH_AUTH_SOCK,/run/user/1000/keyring/ssh \ No newline at end of file diff --git a/linux/hypr/backups/2026-02-14_20-10-46/default/exec.conf b/linux/hypr/backups/2026-02-14_20-10-46/default/exec.conf deleted file mode 100644 index 3664135..0000000 --- a/linux/hypr/backups/2026-02-14_20-10-46/default/exec.conf +++ /dev/null @@ -1,14 +0,0 @@ -################# -### AUTOSTART ### -################# - -# Autostart necessary processes (like notifications daemons, status bars, etc.) -# Or execute your favorite apps at launch like this: - -# exec-once = $terminal -# exec-once = nm-applet & -# exec-once = waybar & hyprpaper & firefox -# Start gnome-keyring -# exec-once = dbus-update-activation-environment --systemd --all -# exec-once = gnome-keyring-daemon --start --components=secrets,ssh,pkcs11 -# exec-once = /usr/lib/hyprpolkitagent \ No newline at end of file diff --git a/linux/hypr/backups/2026-02-14_20-10-46/hyprland.conf b/linux/hypr/backups/2026-02-14_20-10-46/hyprland.conf deleted file mode 100644 index c216d49..0000000 --- a/linux/hypr/backups/2026-02-14_20-10-46/hyprland.conf +++ /dev/null @@ -1,35 +0,0 @@ -# This is an example Hyprland config file. -# Refer to the wiki for more information. -# https://wiki.hypr.land/Configuring/ - -# Please note not all available settings / options are set here. -# For a full list, see the wiki - -# You can split this configuration into multiple files -# Create your files separately and then link them to this file like this: -# source = ~/.config/hypr/myColors.conf - -source = ~/.config/hypr/default/env.conf -source = ~/.config/hypr/default/monitors.conf -source = ~/.config/hypr/default/input.conf -source = ~/.config/hypr/default/general.conf -source = ~/.config/hypr/default/rules.conf -source = ~/.config/hypr/default/binds.conf -source = ~/.config/hypr/default/exec.conf -source = ~/.config/hypr/default/misc.conf - -################### -### PERMISSIONS ### -################### - -# See https://wiki.hypr.land/Configuring/Permissions/ -# Please note permission changes here require a Hyprland restart and are not applied on-the-fly -# for security reasons - -# ecosystem { -# enforce_permissions = 1 -# } - -# permission = /usr/(bin|local/bin)/grim, screencopy, allow -# permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow -# permission = /usr/(bin|local/bin)/hyprpm, plugin, allow \ No newline at end of file diff --git a/linux/hypr/default/hyprland/general.conf b/linux/hypr/default/hyprland/general.conf deleted file mode 100644 index a8460ae..0000000 --- a/linux/hypr/default/hyprland/general.conf +++ /dev/null @@ -1,118 +0,0 @@ -##################### -### LOOK AND FEEL ### -##################### - -# Refer to https://wiki.hypr.land/Configuring/Variables/ - -# https://wiki.hypr.land/Configuring/Variables/#general -general { - gaps_in = 5 - gaps_out = 20 - - border_size = 2 - - # https://wiki.hypr.land/Configuring/Variables/#variable-types for info about colors - col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg - col.inactive_border = rgba(595959aa) - - # Set to true enable resizing windows by clicking and dragging on borders and gaps - resize_on_border = false - - # Please see https://wiki.hypr.land/Configuring/Tearing/ before you turn this on - allow_tearing = false - - layout = dwindle -} - -# https://wiki.hypr.land/Configuring/Variables/#decoration -decoration { - rounding = 10 - rounding_power = 2 - - # Change transparency of focused and unfocused windows - active_opacity = 1.0 - inactive_opacity = 1.0 - - shadow { - enabled = true - range = 4 - render_power = 3 - color = rgba(1a1a1aee) - } - - # https://wiki.hypr.land/Configuring/Variables/#blur - blur { - enabled = true - size = 3 - passes = 1 - - vibrancy = 0.1696 - } -} - -# https://wiki.hypr.land/Configuring/Variables/#animations -animations { - enabled = yes, please :) - - # Default curves, see https://wiki.hypr.land/Configuring/Animations/#curves - # NAME, X0, Y0, X1, Y1 - bezier = easeOutQuint, 0.23, 1, 0.32, 1 - bezier = easeInOutCubic, 0.65, 0.05, 0.36, 1 - bezier = linear, 0, 0, 1, 1 - bezier = almostLinear, 0.5, 0.5, 0.75, 1 - bezier = quick, 0.15, 0, 0.1, 1 - - # Default animations, see https://wiki.hypr.land/Configuring/Animations/ - # NAME, ONOFF, SPEED, CURVE, [STYLE] - animation = global, 1, 10, default - animation = border, 1, 5.39, easeOutQuint - animation = windows, 1, 4.79, easeOutQuint - animation = windowsIn, 1, 4.1, easeOutQuint, popin 87% - animation = windowsOut, 1, 1.49, linear, popin 87% - animation = fadeIn, 1, 1.73, almostLinear - animation = fadeOut, 1, 1.46, almostLinear - animation = fade, 1, 3.03, quick - animation = layers, 1, 3.81, easeOutQuint - animation = layersIn, 1, 4, easeOutQuint, fade - animation = layersOut, 1, 1.5, linear, fade - animation = fadeLayersIn, 1, 1.79, almostLinear - animation = fadeLayersOut, 1, 1.39, almostLinear - animation = workspaces, 1, 1.94, almostLinear, fade - animation = workspacesIn, 1, 1.21, almostLinear, fade - animation = workspacesOut, 1, 1.94, almostLinear, fade - animation = zoomFactor, 1, 7, quick -} - -# Ref https://wiki.hypr.land/Configuring/Workspace-Rules/ -# "Smart gaps" / "No gaps when only" -# uncomment all if you wish to use that. -# workspace = w[tv1], gapsout:0, gapsin:0 -# workspace = f[1], gapsout:0, gapsin:0 -# windowrule { -# name = no-gaps-wtv1 -# match:float = false -# match:workspace = w[tv1] -# -# border_size = 0 -# rounding = 0 -# } -# -# windowrule { -# name = no-gaps-f1 -# match:float = false -# match:workspace = f[1] -# -# border_size = 0 -# rounding = 0 -# } - -# See https://wiki.hypr.land/Configuring/Dwindle-Layout/ for more -dwindle { - pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below - preserve_split = true # You probably want this -} - -# See https://wiki.hypr.land/Configuring/Master-Layout/ for more -master { - new_status = master -} \ No newline at end of file diff --git a/linux/hypr/default/hyprland/input.conf b/linux/hypr/default/hyprland/input.conf deleted file mode 100644 index 6c7235d..0000000 --- a/linux/hypr/default/hyprland/input.conf +++ /dev/null @@ -1,31 +0,0 @@ -############# -### INPUT ### -############# - -# https://wiki.hypr.land/Configuring/Variables/#input -input { - kb_layout = us - kb_variant = altgr-intl - kb_options = lv3:lalt_switch - follow_mouse = 1 - - touchpad { - natural_scroll = false - } -} - -cursor { - # See https://wiki.hypr.land/Configuring/Variables/#cursor for more - no_warps = false - # warp_on_change_workspace = true -} - -# See https://wiki.hypr.land/Configuring/Gestures -gesture = 3, horizontal, workspace - -# Example per-device config -# See https://wiki.hypr.land/Configuring/Keywords/#per-device-input-configs for more -device { - name = epic-mouse-v1 - sensitivity = -0.5 -} diff --git a/linux/hypr/default/hyprland/misc.conf b/linux/hypr/default/hyprland/misc.conf deleted file mode 100644 index 83dbcf3..0000000 --- a/linux/hypr/default/hyprland/misc.conf +++ /dev/null @@ -1,5 +0,0 @@ -# https://wiki.hypr.land/Configuring/Variables/#misc -misc { - force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers - disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :( -} \ No newline at end of file diff --git a/linux/hypr/default/hyprland/monitors.conf b/linux/hypr/default/hyprland/monitors.conf deleted file mode 100644 index 455ef68..0000000 --- a/linux/hypr/default/hyprland/monitors.conf +++ /dev/null @@ -1,10 +0,0 @@ -################ -### MONITORS ### -################ - -# See https://wiki.hypr.land/Configuring/Monitors/ -$monitorLeft = DP-1 -$monitorRight = HDMI-A-1 -monitor=$monitorLeft,2560x1440@144,0x0,1 -monitor=$monitorRight,1920x1080@60,2560x0,1 -monitor=,preferred,auto,auto diff --git a/linux/hypr/default/hyprland/rules.conf b/linux/hypr/default/hyprland/rules.conf deleted file mode 100644 index 52a174f..0000000 --- a/linux/hypr/default/hyprland/rules.conf +++ /dev/null @@ -1,39 +0,0 @@ -############################## -### WINDOWS AND WORKSPACES ### -############################## - -# See https://wiki.hypr.land/Configuring/Window-Rules/ for more -# See https://wiki.hypr.land/Configuring/Workspace-Rules/ for workspace rules - -# Example windowrules that are useful - -windowrule { - # Ignore maximize requests from all apps. You'll probably like this. - name = suppress-maximize-events - match:class = .* - - suppress_event = maximize -} - -windowrule { - # Fix some dragging issues with XWayland - name = fix-xwayland-drags - match:class = ^$ - match:title = ^$ - match:xwayland = true - match:float = true - match:fullscreen = false - match:pin = false - - no_focus = true -} - -# Hyprland-run windowrule -windowrule { - name = move-hyprland-run - - match:class = hyprland-run - - move = 20 monitor_h-120 - float = yes -} diff --git a/linux/hypr/hyprland.conf b/linux/hypr/hyprland.conf deleted file mode 100644 index dd909d0..0000000 --- a/linux/hypr/hyprland.conf +++ /dev/null @@ -1,11 +0,0 @@ -# Hyprland configuration file -# This file is the main configuration file for Hyprland. It is used to set up the basic settings for the window manager, such as keybindings, workspace behavior, and other global settings. -# This file is sourced by the main Hyprland configuration file, which can be found at ~/.config/hypr/hyprland.conf. -# You can create a profile for your specific setup (e.g. caelestia) and source this file from there. - -$profile = caelestia -$hypr = ~/.config/hypr/$profile -$hl = $hypr/hyprland - -# Default config -source = $hypr/hyprland.conf diff --git a/linux/hypr/scheme/current.conf b/linux/hypr/scheme/current.conf deleted file mode 100644 index aeeb64c..0000000 --- a/linux/hypr/scheme/current.conf +++ /dev/null @@ -1,120 +0,0 @@ -$background = 0e0e0e -$onBackground = e5e5e5 -$surface = 0e0e0e -$surfaceDim = 0e0e0e -$surfaceBright = 2c2c2c -$surfaceContainerLowest = 000000 -$surfaceContainerLow = 131313 -$surfaceContainer = 191919 -$surfaceContainerHigh = 202020 -$surfaceContainerHighest = 262626 -$onSurface = e5e5e5 -$surfaceVariant = 262626 -$onSurfaceVariant = ababab -$outline = 757575 -$outlineVariant = 484848 -$inverseSurface = f9f9f9 -$inverseOnSurface = 555555 -$shadow = 000000 -$scrim = 000000 -$surfaceTint = c7c7c7 -$primary = c7c7c7 -$primaryDim = b9b9b9 -$onPrimary = 404040 -$primaryContainer = 474747 -$onPrimaryContainer = d0d0d0 -$inversePrimary = 5f5f5f -$primaryFixed = e3e3e3 -$primaryFixedDim = d4d4d4 -$onPrimaryFixed = 3f3f3f -$onPrimaryFixedVariant = 5b5b5b -$secondary = 9e9e9e -$secondaryDim = 9e9e9e -$onSecondary = 202020 -$secondaryContainer = 3b3b3b -$onSecondaryContainer = bfbfbf -$secondaryFixed = e2e2e2 -$secondaryFixedDim = d4d4d4 -$onSecondaryFixed = 3f3f3f -$onSecondaryFixedVariant = 5b5b5b -$tertiary = eeeeee -$tertiaryDim = e1dee5 -$onTertiary = 58575d -$tertiaryContainer = e1dee5 -$onTertiaryContainer = 504f55 -$tertiaryFixed = e1dee5 -$tertiaryFixedDim = d3d0d6 -$onTertiaryFixed = 3e3d42 -$onTertiaryFixedVariant = 5a595f -$error = d98883 -$errorDim = aa605c -$onError = 400e0e -$errorContainer = 723431 -$onErrorContainer = e8a49f -$primaryPaletteKeyColor = 777777 -$secondaryPaletteKeyColor = 777777 -$tertiaryPaletteKeyColor = 777777 -$neutralPaletteKeyColor = 777777 -$neutralVariantPaletteKeyColor = 777777 -$errorPaletteKeyColor = ac625e -$primary_paletteKeyColor = 777777 -$secondary_paletteKeyColor = 777777 -$tertiary_paletteKeyColor = 777777 -$neutral_paletteKeyColor = 777777 -$neutral_variant_paletteKeyColor = 777777 -$term0 = 343434 -$term1 = 8888de -$term2 = 88d8e7 -$term3 = a6f5df -$term4 = 9dacbb -$term5 = a2a8d2 -$term6 = b0cde2 -$term7 = d8d8d8 -$term8 = a3a3a3 -$term9 = a5a2e1 -$term10 = b3e6f1 -$term11 = e7f8f3 -$term12 = bfc1c4 -$term13 = babddd -$term14 = ccddea -$term15 = ffffff -$rosewater = f2f2f2 -$flamingo = e2e2e2 -$pink = dcdce5 -$mauve = b3bfe3 -$red = abb1e1 -$maroon = bbbdd6 -$peach = d8c8e2 -$yellow = ecf2f0 -$green = d7e1ea -$teal = d9e0e9 -$sky = d3dce7 -$sapphire = b4c9e5 -$blue = a7bee3 -$lavender = c2cce4 -$klink = 6989b1 -$klinkSelection = 688ab1 -$kvisited = 677fbd -$kvisitedSelection = 6580bd -$knegative = 7580dd -$knegativeSelection = 7381dd -$kneutral = bf9ce4 -$kneutralSelection = bf9ce4 -$kpositive = 65b2dd -$kpositiveSelection = 65b1db -$text = e5e5e5 -$subtext1 = ababab -$subtext0 = 757575 -$overlay2 = 666666 -$overlay1 = 575757 -$overlay0 = 494949 -$surface2 = 3b3b3b -$surface1 = 2d2d2d -$surface0 = 1d1d1d -$base = 0e0e0e -$mantle = 0e0e0e -$crust = 0d0d0d -$success = B5CCBA -$onSuccess = 213528 -$successContainer = 374B3E -$onSuccessContainer = D1E9D6 diff --git a/linux/illogical-impulse/.config/illogical-impulse/config.json b/linux/illogical-impulse/.config/illogical-impulse/config.json new file mode 100644 index 0000000..f87424e --- /dev/null +++ b/linux/illogical-impulse/.config/illogical-impulse/config.json @@ -0,0 +1,575 @@ +{ + "ai": { + "extraModels": [ + { + "api_format": "openai", + "description": "This is a custom model. Edit the config to add more! | Anyway, this is DeepSeek R1 Distill LLaMA 70B", + "endpoint": "https://openrouter.ai/api/v1/chat/completions", + "homepage": "https://openrouter.ai/deepseek/deepseek-r1-distill-llama-70b:free", + "icon": "spark-symbolic", + "key_get_link": "https://openrouter.ai/settings/keys", + "key_id": "openrouter", + "model": "deepseek/deepseek-r1-distill-llama-70b:free", + "name": "Custom: DS R1 Dstl. LLaMA 70B", + "requires_key": true + } + ], + "systemPrompt": "## Style\n- Use casual tone, don't be formal! Make sure you answer precisely without hallucination and prefer bullet points over walls of text. You can have a friendly greeting at the beginning of the conversation, but don't repeat the user's question\n\n## Context (ignore when irrelevant)\n- You are a helpful and inspiring sidebar assistant on a {DISTRO} Linux system\n- Desktop environment: {DE}\n- Current date & time: {DATETIME}\n- Focused app: {WINDOWCLASS}\n\n## Presentation\n- Use Markdown features in your response: \n - **Bold** text to **highlight keywords** in your response\n - **Split long information into small sections** with h2 headers and a relevant emoji at the start of it (for example `## 🐧 Linux`). Bullet points are preferred over long paragraphs, unless you're offering writing support or instructed otherwise by the user.\n- Asked to compare different options? You should firstly use a table to compare the main aspects, then elaborate or include relevant comments from online forums *after* the table. Make sure to provide a final recommendation for the user's use case!\n- Use LaTeX formatting for mathematical and scientific notations whenever appropriate. Enclose all LaTeX '$$' delimiters. NEVER generate LaTeX code in a latex block unless the user explicitly asks for it. DO NOT use LaTeX for regular documents (resumes, letters, essays, CVs, etc.).\n", + "tool": "functions" + }, + "appearance": { + "extraBackgroundTint": true, + "fakeScreenRounding": 2, + "fonts": { + "expressive": "Space Grotesk", + "iconNerd": "JetBrains Mono NF", + "main": "Google Sans Flex", + "monospace": "JetBrains Mono NF", + "numbers": "Google Sans Flex", + "reading": "Readex Pro", + "title": "Google Sans Flex" + }, + "palette": { + "accentColor": "", + "type": "auto" + }, + "transparency": { + "automatic": true, + "backgroundTransparency": 0.11, + "contentTransparency": 0.57, + "enable": true + }, + "wallpaperTheming": { + "enableAppsAndShell": true, + "enableQtApps": true, + "enableTerminal": true, + "terminalGenerationProps": { + "forceDarkMode": true, + "harmonizeThreshold": 100, + "harmony": 0.6, + "termFgBoost": 0.35 + } + } + }, + "apps": { + "bluetooth": "kcmshell6 kcm_bluetooth", + "changePassword": "kitty -1 --hold=yes fish -i -c 'passwd'", + "manageUser": "kcmshell6 kcm_users", + "network": "kcmshell6 kcm_networkmanagement", + "networkEthernet": "kcmshell6 kcm_networkmanagement", + "taskManager": "plasma-systemmonitor --page-name Processes", + "terminal": "kitty -1", + "update": "kitty -1 --hold=yes fish -i -c 'pkexec pacman -Syu'", + "volumeMixer": "~/.config/hypr/hyprland/scripts/launch_first_available.sh \"pavucontrol-qt\" \"pavucontrol\"" + }, + "audio": { + "protection": { + "enable": false, + "maxAllowed": 99, + "maxAllowedIncrease": 10 + } + }, + "background": { + "hideWhenFullscreen": true, + "parallax": { + "autoVertical": false, + "enableSidebar": true, + "enableWorkspace": true, + "vertical": false, + "widgetsFactor": 1.2, + "workspaceZoom": 1.07 + }, + "thumbnailPath": "", + "wallpaperPath": "/home/gazzd/Wallpapers/random_wallpaper-1.jpg", + "widgets": { + "clock": { + "cookie": { + "aiStyling": false, + "constantlyRotate": false, + "dateInClock": true, + "dateStyle": "bubble", + "dialNumberStyle": "full", + "hourHandStyle": "fill", + "hourMarks": false, + "minuteHandStyle": "medium", + "secondHandStyle": "dot", + "sides": 14, + "timeIndicators": true, + "useSineCookie": false + }, + "digital": { + "adaptiveAlignment": true, + "animateChange": true, + "font": { + "family": "Google Sans Flex", + "roundness": 0, + "size": 90, + "weight": 350, + "width": 100 + }, + "showDate": true, + "vertical": false + }, + "enable": true, + "placementStrategy": "leastBusy", + "quote": { + "enable": true, + "text": "I use arch btw" + }, + "showOnlyWhenLocked": false, + "style": "cookie", + "styleLocked": "cookie", + "x": 100, + "y": 100 + }, + "weather": { + "enable": false, + "placementStrategy": "free", + "x": 400, + "y": 100 + } + } + }, + "bar": { + "autoHide": { + "enable": false, + "hoverRegionWidth": 2, + "pushWindows": false, + "showWhenPressingSuper": { + "delay": 140, + "enable": true + } + }, + "borderless": false, + "bottom": false, + "cornerStyle": 0, + "floatStyleShadow": true, + "indicators": { + "notifications": { + "showUnreadCount": false + } + }, + "resources": { + "alwaysShowCpu": true, + "alwaysShowSwap": true, + "cpuWarningThreshold": 90, + "memoryWarningThreshold": 95, + "swapWarningThreshold": 85 + }, + "screenList": [], + "showBackground": true, + "tooltips": { + "clickToShow": false + }, + "topLeftIcon": "spark", + "utilButtons": { + "showColorPicker": true, + "showDarkModeToggle": false, + "showKeyboardToggle": true, + "showMicToggle": true, + "showPerformanceProfileToggle": false, + "showScreenRecord": true, + "showScreenSnip": true + }, + "verbose": true, + "vertical": false, + "weather": { + "city": "Madrid", + "enable": true, + "enableGPS": true, + "fetchInterval": 10, + "useUSCS": false + }, + "workspaces": { + "alwaysShowNumbers": false, + "monochromeIcons": true, + "numberMap": [ + "1", + "2" + ], + "showAppIcons": true, + "showNumberDelay": 300, + "shown": 10, + "useNerdFont": false + } + }, + "battery": { + "automaticSuspend": true, + "critical": 5, + "full": 101, + "low": 20, + "suspend": 3 + }, + "calendar": { + "locale": "en-GB" + }, + "cheatsheet": { + "fontSize": { + "comment": 12, + "key": 12 + }, + "splitButtons": false, + "superKey": "󰣇", + "useFnSymbol": false, + "useMacSymbol": false, + "useMouseSymbol": false + }, + "conflictKiller": { + "autoKillNotificationDaemons": false, + "autoKillTrays": false + }, + "crosshair": { + "code": "0;P;d;1;0l;10;0o;2;1b;0" + }, + "dock": { + "enable": false, + "height": 60, + "hoverRegionHeight": 2, + "hoverToReveal": true, + "ignoredAppRegexes": [], + "monochromeIcons": true, + "pinnedApps": [ + "org.kde.dolphin", + "kitty" + ], + "pinnedOnStartup": false + }, + "hacks": { + "arbitraryRaceConditionDelay": 20 + }, + "interactions": { + "deadPixelWorkaround": { + "enable": false + }, + "scrolling": { + "fasterTouchpadScroll": false, + "mouseScrollDeltaThreshold": 120, + "mouseScrollFactor": 120, + "touchpadScrollFactor": 450 + } + }, + "language": { + "translator": { + "engine": "auto", + "sourceLanguage": "auto", + "targetLanguage": "auto" + }, + "ui": "auto" + }, + "launcher": { + "pinnedApps": [ + "org.kde.dolphin", + "kitty", + "cmake-gui" + ] + }, + "light": { + "antiFlashbang": { + "enable": false + }, + "night": { + "automatic": true, + "colorTemperature": 5000, + "from": "19:00", + "to": "06:30" + } + }, + "lock": { + "blur": { + "enable": true, + "extraZoom": 1.1, + "radius": 100 + }, + "centerClock": true, + "launchOnStartup": false, + "materialShapeChars": true, + "security": { + "requirePasswordToPower": false, + "unlockKeyring": true + }, + "showLockedText": true, + "useHyprlock": false + }, + "media": { + "filterDuplicatePlayers": true + }, + "musicRecognition": { + "interval": 4, + "timeout": 16 + }, + "networking": { + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36" + }, + "notifications": { + "timeout": 7000 + }, + "osd": { + "timeout": 1000 + }, + "osk": { + "layout": "qwerty_full", + "pinnedOnStartup": false + }, + "overlay": { + "clickthroughOpacity": 0.8, + "darkenScreen": true, + "floatingImage": { + "imageSource": "https://media.tenor.com/H5U5bJzj3oAAAAAi/kukuru.gif", + "scale": 0.5 + }, + "openingZoomAnimation": true + }, + "overview": { + "centerIcons": true, + "columns": 5, + "enable": true, + "orderBottomUp": false, + "orderRightLeft": false, + "rows": 2, + "scale": 0.18 + }, + "panelFamily": "ii", + "policies": { + "ai": 1, + "weeb": 1 + }, + "regionSelector": { + "annotation": { + "useSatty": false + }, + "circle": { + "padding": 10, + "strokeWidth": 6 + }, + "rect": { + "showAimLines": true + }, + "targetRegions": { + "content": true, + "contentRegionOpacity": 0.8, + "layers": false, + "opacity": 0.3, + "selectionPadding": 5, + "showLabel": false, + "windows": true + } + }, + "resources": { + "historyLength": 60, + "updateInterval": 3000 + }, + "screenRecord": { + "savePath": "/home/gazzd/Videos" + }, + "screenSnip": { + "savePath": "" + }, + "search": { + "engineBaseUrl": "https://www.google.com/search?q=", + "excludedSites": [ + "quora.com", + "facebook.com" + ], + "imageSearch": { + "imageSearchEngineBaseUrl": "https://lens.google.com/uploadbyurl?url=", + "useCircleSelection": false + }, + "nonAppResultDelay": 30, + "prefix": { + "action": "/", + "app": ">", + "clipboard": ";", + "emojis": ":", + "math": "=", + "shellCommand": "$", + "showDefaultActionsWithoutPrefix": true, + "webSearch": "?" + }, + "sloppy": false + }, + "sidebar": { + "ai": { + "textFadeIn": false + }, + "booru": { + "allowNsfw": false, + "defaultProvider": "yandere", + "limit": 20, + "zerochan": { + "username": "[unset]" + } + }, + "cornerOpen": { + "bottom": false, + "clickless": true, + "clicklessCornerEnd": true, + "clicklessCornerVerticalOffset": 1, + "cornerRegionHeight": 5, + "cornerRegionWidth": 250, + "enable": true, + "valueScroll": true, + "visualize": false + }, + "keepRightSidebarLoaded": true, + "quickSliders": { + "enable": false, + "showBrightness": true, + "showMic": false, + "showVolume": true + }, + "quickToggles": { + "android": { + "columns": 5, + "toggles": [ + { + "size": 2, + "type": "network" + }, + { + "size": 2, + "type": "bluetooth" + }, + { + "size": 1, + "type": "idleInhibitor" + }, + { + "size": 1, + "type": "mic" + }, + { + "size": 2, + "type": "audio" + }, + { + "size": 2, + "type": "nightLight" + } + ] + }, + "style": "android" + }, + "translator": { + "delay": 300, + "enable": false + } + }, + "sounds": { + "battery": false, + "pomodoro": false, + "theme": "freedesktop" + }, + "time": { + "dateFormat": "ddd, dd/MM", + "dateWithYearFormat": "dd/MM/yyyy", + "format": "hh:mm", + "pomodoro": { + "breakTime": 300, + "cyclesBeforeLongBreak": 4, + "focus": 1500, + "longBreak": 900 + }, + "secondPrecision": false, + "shortDateFormat": "dd/MM" + }, + "tray": { + "filterPassive": true, + "invertPinnedItems": true, + "monochromeIcons": true, + "pinnedItems": [ + "Fcitx" + ], + "showItemId": false + }, + "updates": { + "adviseUpdateThreshold": 75, + "checkInterval": 120, + "enableCheck": true, + "stronglyAdviseUpdateThreshold": 200 + }, + "waffles": { + "actionCenter": { + "toggles": [ + "network", + "bluetooth", + "easyEffects", + "powerProfile", + "idleInhibitor", + "nightLight", + "darkMode", + "antiFlashbang", + "cloudflareWarp", + "mic", + "musicRecognition", + "notifications", + "onScreenKeyboard", + "gameMode", + "screenSnip", + "colorPicker" + ] + }, + "bar": { + "bottom": true, + "leftAlignApps": false + }, + "calendar": { + "force2CharDayOfWeek": true + }, + "tweaks": { + "smootherMenuAnimations": true, + "smootherSearchBar": true, + "switchHandlePositionFix": true + } + }, + "wallpaperSelector": { + "useSystemFileDialog": false + }, + "windows": { + "centerTitle": true, + "showTitlebar": true + }, + "workSafety": { + "enable": { + "clipboard": false, + "wallpaper": false + }, + "triggerCondition": { + "fileKeywords": [ + "anime", + "booru", + "ecchi", + "hentai", + "yande.re", + "konachan", + "breast", + "nipples", + "pussy", + "nsfw", + "spoiler", + "girl" + ], + "linkKeywords": [ + "hentai", + "porn", + "sukebei", + "hitomi.la", + "rule34", + "gelbooru", + "fanbox", + "dlsite" + ], + "networkNameKeywords": [ + "airport", + "cafe", + "college", + "company", + "eduroam", + "free", + "guest", + "public", + "school", + "university" + ] + } + } +} diff --git a/linux/illogical-impulse/.config/illogical-impulse/installed_listfile b/linux/illogical-impulse/.config/illogical-impulse/installed_listfile new file mode 100644 index 0000000..226418e --- /dev/null +++ b/linux/illogical-impulse/.config/illogical-impulse/installed_listfile @@ -0,0 +1,1023 @@ +/home/gazzd/.config/chrome-flags.conf +/home/gazzd/.config/code-flags.conf +/home/gazzd/.config/darklyrc +/home/gazzd/.config/dolphinrc +/home/gazzd/.config/fish/auto-Hypr.fish +/home/gazzd/.config/fish/config.fish +/home/gazzd/.config/fish/fish_variables +/home/gazzd/.config/fontconfig/fonts.conf +/home/gazzd/.config/foot/foot.ini +/home/gazzd/.config/fuzzel/fuzzel.ini +/home/gazzd/.config/fuzzel/fuzzel_theme.ini +/home/gazzd/.config/hypr/custom/env.conf +/home/gazzd/.config/hypr/custom/execs.conf +/home/gazzd/.config/hypr/custom/general.conf +/home/gazzd/.config/hypr/custom/keybinds.conf +/home/gazzd/.config/hypr/custom/rules.conf +/home/gazzd/.config/hypr/custom/scripts/__restore_video_wallpaper.sh +/home/gazzd/.config/hypr/hypridle.conf +/home/gazzd/.config/hypr/hyprland/colors.conf +/home/gazzd/.config/hypr/hyprland.conf +/home/gazzd/.config/hypr/hyprland/env.conf +/home/gazzd/.config/hypr/hyprland/execs.conf +/home/gazzd/.config/hypr/hyprland/general.conf +/home/gazzd/.config/hypr/hyprland/keybinds.conf +/home/gazzd/.config/hypr/hyprland/rules.conf +/home/gazzd/.config/hypr/hyprland/scripts/ai/license_show-loaded-ollama-models.txt +/home/gazzd/.config/hypr/hyprland/scripts/ai/primary-buffer-query.sh +/home/gazzd/.config/hypr/hyprland/scripts/ai/show-loaded-ollama-models.sh +/home/gazzd/.config/hypr/hyprland/scripts/fuzzel-emoji.sh +/home/gazzd/.config/hypr/hyprland/scripts/launch_first_available.sh +/home/gazzd/.config/hypr/hyprland/scripts/snip_to_search.sh +/home/gazzd/.config/hypr/hyprland/scripts/start_geoclue_agent.sh +/home/gazzd/.config/hypr/hyprland/scripts/workspace_action.sh +/home/gazzd/.config/hypr/hyprland/scripts/zoom.sh +/home/gazzd/.config/hypr/hyprland/shellOverrides/main.conf +/home/gazzd/.config/hypr/hyprlock.conf +/home/gazzd/.config/hypr/monitors.conf +/home/gazzd/.config/hypr/workspaces.conf +/home/gazzd/.config/illogical-impulse/installed_true +/home/gazzd/.config/kdeglobals +/home/gazzd/.config/kde-material-you-colors/config.conf +/home/gazzd/.config/kitty/kitty.conf +/home/gazzd/.config/kitty/scroll_mark.py +/home/gazzd/.config/kitty/search.py +/home/gazzd/.config/konsolerc +/home/gazzd/.config/Kvantum/Colloid/ColloidDark.kvconfig +/home/gazzd/.config/Kvantum/Colloid/ColloidDark.svg +/home/gazzd/.config/Kvantum/Colloid/Colloid.kvconfig +/home/gazzd/.config/Kvantum/Colloid/Colloid.svg +/home/gazzd/.config/Kvantum/kvantum.kvconfig +/home/gazzd/.config/Kvantum/MaterialAdw/MaterialAdw.kvconfig +/home/gazzd/.config/Kvantum/MaterialAdw/MaterialAdw.svg +/home/gazzd/.config/matugen/config.toml +/home/gazzd/.config/matugen/templates/ags/_material.scss +/home/gazzd/.config/matugen/templates/ags/sourceviewtheme-light.xml +/home/gazzd/.config/matugen/templates/ags/sourceviewtheme.xml +/home/gazzd/.config/matugen/templates/colors.json +/home/gazzd/.config/matugen/templates/fuzzel/fuzzel_theme.ini +/home/gazzd/.config/matugen/templates/gtk-3.0/gtk.css +/home/gazzd/.config/matugen/templates/gtk-4.0/gtk.css +/home/gazzd/.config/matugen/templates/hyprland/colors.conf +/home/gazzd/.config/matugen/templates/hyprland/hyprlock-colors.conf +/home/gazzd/.config/matugen/templates/kde/color.txt +/home/gazzd/.config/matugen/templates/kde/kde-material-you-colors-wrapper.sh +/home/gazzd/.config/matugen/templates/wallpaper.txt +/home/gazzd/.config/mpv/mpv.conf +/home/gazzd/.config/quickshell/ii/assets/icons/arch-symbolic.svg +/home/gazzd/.config/quickshell/ii/assets/icons/cachyos-symbolic.svg +/home/gazzd/.config/quickshell/ii/assets/icons/cloudflare-dns-symbolic.svg +/home/gazzd/.config/quickshell/ii/assets/icons/crosshair-symbolic.svg +/home/gazzd/.config/quickshell/ii/assets/icons/debian-symbolic.svg +/home/gazzd/.config/quickshell/ii/assets/icons/deepseek-symbolic.svg +/home/gazzd/.config/quickshell/ii/assets/icons/desktop-symbolic.svg +/home/gazzd/.config/quickshell/ii/assets/icons/endeavouros-symbolic.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fedora-symbolic.svg +/home/gazzd/.config/quickshell/ii/assets/icons/flatpak-symbolic.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/add-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/add.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/alert-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/alert-off-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/alert-off.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/alert-snooze-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/alert-snooze.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/alert.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/app-generic-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/app-generic.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/apps-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/apps.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/arrow-clockwise-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/arrow-clockwise.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/arrow-counterclockwise-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/arrow-counterclockwise.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/arrow-enter-left-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/arrow-enter-left.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/arrow-left-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/arrow-left.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/arrow-right-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/arrow-right.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/arrow-sync.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/arrow-up-left-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/arrow-up-left.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/auto-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/auto.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/battery-0.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/battery-1.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/battery-2.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/battery-3.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/battery-4.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/battery-5.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/battery-6.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/battery-7.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/battery-8.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/battery-9.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/battery-charge.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/battery-full.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/battery-saver.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/battery-warning.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/bluetooth-connected-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/bluetooth-connected.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/bluetooth-disabled-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/bluetooth-disabled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/bluetooth-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/bluetooth-searching.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/bluetooth.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/calculator-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/calculator.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/calendar-add-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/calendar-add.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/camera-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/camera.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/caret-down-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/caret-down.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/caret-up-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/caret-up.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/checkmark-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/checkmark.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/chevron-down-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/chevron-down.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/chevron-left-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/chevron-left.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/chevron-right-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/chevron-right.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/chevron-up-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/chevron-up.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/corporation.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/crop-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/crop.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/cut-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/cut.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/dark-theme-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/dark-theme.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/desktop-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/desktop-speaker-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/desktop-speaker.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/desktop.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/device-eq-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/device-eq.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/dismiss.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/drink-coffee-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/drink-coffee.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/empty.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/ethernet-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/ethernet.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/eyedropper-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/eyedropper.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/eye-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/eye-off-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/eye-off.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/eye.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/fire-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/fire.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/flash-off-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/flash-off.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/flash-on-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/flash-on.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/games-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/games.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/globe-search-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/globe-search.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/globe-shield-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/globe-shield.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/headphones-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/headphones.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/image-copy-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/image-copy.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/image-edit-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/image-edit.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/image-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/image.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/keyboard-dock-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/keyboard-dock.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/keyboard-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/keyboard.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/leaf-two-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/leaf-two.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/library-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/library.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/lock-closed-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/lock-closed.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/lock-open-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/lock-open.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/mic-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/mic-off-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/mic-off.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/mic-on.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/mic.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/more-horizontal-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/more-horizontal.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/music-note-2-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/music-note-2.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/news-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/news.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/next-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/next.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/open-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/open.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/options-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/options.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/pause-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/pause.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/people-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/people-settings-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/people-settings.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/people.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/people-team-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/people-team.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/phone-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/phone.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/pin-off.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/pin.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/play-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/play.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/power-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/power.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/previous-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/previous.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/README.md +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/record-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/record.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/scan-text-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/scan-text.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/search-visual-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/search-visual.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/server-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/server.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/settings-cog-multiple-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/settings-cog-multiple.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/settings.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/shield-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/shield-lock-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/shield-lock.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/shield.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/speaker-0.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/speaker-1.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/speaker-2-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/speaker-mute-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/speaker-mute.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/speaker-none.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/speaker-off.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/speaker-settings.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/speaker.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/start-here-pressed.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/start-here.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/stop-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/stop.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/store-microsoft-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/store-microsoft.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/subtract-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/subtract.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/system-search-checked-dark.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/system-search-checked-light.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/system-search-dark.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/system-search-light.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/task-view-dark.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/task-view-light.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/task-view-pressed-dark.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/task-view-pressed-light.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/temperature-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/temperature.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/video-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/video.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/wand-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/wand.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/weather-moon-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/weather-moon-off-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/weather-moon-off.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/weather-moon.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/weather-sunny-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/weather-sunny.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/widgets.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/wifi-1-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/wifi-1.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/wifi-2-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/wifi-2.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/wifi-3-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/wifi-3.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/wifi-4-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/wifi-4.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/wifi-lock-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/wifi-lock.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/wifi-off-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/wifi-off.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/wifi-warning-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/wifi-warning.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/window-shield-filled.svg +/home/gazzd/.config/quickshell/ii/assets/icons/fluent/window-shield.svg +/home/gazzd/.config/quickshell/ii/assets/icons/gentoo-symbolic.svg +/home/gazzd/.config/quickshell/ii/assets/icons/github-symbolic.svg +/home/gazzd/.config/quickshell/ii/assets/icons/linux-symbolic.svg +/home/gazzd/.config/quickshell/ii/assets/icons/microsoft-symbolic.svg +/home/gazzd/.config/quickshell/ii/assets/icons/mistral-symbolic.svg +/home/gazzd/.config/quickshell/ii/assets/icons/nixos-symbolic.svg +/home/gazzd/.config/quickshell/ii/assets/icons/nyarch-symbolic.svg +/home/gazzd/.config/quickshell/ii/assets/icons/ollama-symbolic.svg +/home/gazzd/.config/quickshell/ii/assets/icons/openai-symbolic.svg +/home/gazzd/.config/quickshell/ii/assets/icons/openrouter-symbolic.svg +/home/gazzd/.config/quickshell/ii/assets/icons/spark-symbolic.svg +/home/gazzd/.config/quickshell/ii/assets/icons/ubuntu-symbolic.svg +/home/gazzd/.config/quickshell/ii/assets/images/default_wallpaper.png +/home/gazzd/.config/quickshell/ii/defaults/ai/prompts/ii-Default.md +/home/gazzd/.config/quickshell/ii/defaults/ai/prompts/ii-Imouto.md +/home/gazzd/.config/quickshell/ii/defaults/ai/prompts/NoPrompt.md +/home/gazzd/.config/quickshell/ii/defaults/ai/prompts/nyarch-Acchan.md +/home/gazzd/.config/quickshell/ii/defaults/ai/prompts/w-FourPointedSparkle.md +/home/gazzd/.config/quickshell/ii/defaults/ai/prompts/w-OpenMechanicalFlower.md +/home/gazzd/.config/quickshell/ii/defaults/ai/README.md +/home/gazzd/.config/quickshell/ii/GlobalStates.qml +/home/gazzd/.config/quickshell/ii/killDialog.qml +/home/gazzd/.config/quickshell/ii/modules/common/Appearance.qml +/home/gazzd/.config/quickshell/ii/modules/common/Config.qml +/home/gazzd/.config/quickshell/ii/modules/common/Directories.qml +/home/gazzd/.config/quickshell/ii/modules/common/functions/ColorUtils.qml +/home/gazzd/.config/quickshell/ii/modules/common/functions/DateUtils.qml +/home/gazzd/.config/quickshell/ii/modules/common/functions/FileUtils.qml +/home/gazzd/.config/quickshell/ii/modules/common/functions/Fuzzy.qml +/home/gazzd/.config/quickshell/ii/modules/common/functions/fuzzysort.js +/home/gazzd/.config/quickshell/ii/modules/common/functions/levendist.js +/home/gazzd/.config/quickshell/ii/modules/common/functions/Levendist.qml +/home/gazzd/.config/quickshell/ii/modules/common/functions/NotificationUtils.qml +/home/gazzd/.config/quickshell/ii/modules/common/functions/ObjectUtils.qml +/home/gazzd/.config/quickshell/ii/modules/common/functions/Session.qml +/home/gazzd/.config/quickshell/ii/modules/common/functions/StringUtils.qml +/home/gazzd/.config/quickshell/ii/modules/common/Icons.qml +/home/gazzd/.config/quickshell/ii/modules/common/Images.qml +/home/gazzd/.config/quickshell/ii/modules/common/models/AdaptedMaterialScheme.qml +/home/gazzd/.config/quickshell/ii/modules/common/models/AnimatedTabIndexPair.qml +/home/gazzd/.config/quickshell/ii/modules/common/models/FolderListModelWithHistory.qml +/home/gazzd/.config/quickshell/ii/modules/common/models/hyprland/HyprlandConfigOption.qml +/home/gazzd/.config/quickshell/ii/modules/common/models/IndexModel.qml +/home/gazzd/.config/quickshell/ii/modules/common/models/LauncherSearchResult.qml +/home/gazzd/.config/quickshell/ii/modules/common/models/NestableObject.qml +/home/gazzd/.config/quickshell/ii/modules/common/models/quickToggles/AntiFlashbangToggle.qml +/home/gazzd/.config/quickshell/ii/modules/common/models/quickToggles/AudioToggle.qml +/home/gazzd/.config/quickshell/ii/modules/common/models/quickToggles/BluetoothToggle.qml +/home/gazzd/.config/quickshell/ii/modules/common/models/quickToggles/CloudflareWarpToggle.qml +/home/gazzd/.config/quickshell/ii/modules/common/models/quickToggles/ColorPickerToggle.qml +/home/gazzd/.config/quickshell/ii/modules/common/models/quickToggles/DarkModeToggle.qml +/home/gazzd/.config/quickshell/ii/modules/common/models/quickToggles/EasyEffectsToggle.qml +/home/gazzd/.config/quickshell/ii/modules/common/models/quickToggles/GameModeToggle.qml +/home/gazzd/.config/quickshell/ii/modules/common/models/quickToggles/IdleInhibitorToggle.qml +/home/gazzd/.config/quickshell/ii/modules/common/models/quickToggles/MicToggle.qml +/home/gazzd/.config/quickshell/ii/modules/common/models/quickToggles/MusicRecognitionToggle.qml +/home/gazzd/.config/quickshell/ii/modules/common/models/quickToggles/NetworkToggle.qml +/home/gazzd/.config/quickshell/ii/modules/common/models/quickToggles/NightLightToggle.qml +/home/gazzd/.config/quickshell/ii/modules/common/models/quickToggles/NotificationToggle.qml +/home/gazzd/.config/quickshell/ii/modules/common/models/quickToggles/OnScreenKeyboardToggle.qml +/home/gazzd/.config/quickshell/ii/modules/common/models/quickToggles/PowerProfilesToggle.qml +/home/gazzd/.config/quickshell/ii/modules/common/models/quickToggles/QuickToggleModel.qml +/home/gazzd/.config/quickshell/ii/modules/common/models/quickToggles/ScreenSnipToggle.qml +/home/gazzd/.config/quickshell/ii/modules/common/panels/lock/LockContext.qml +/home/gazzd/.config/quickshell/ii/modules/common/panels/lock/LockScreen.qml +/home/gazzd/.config/quickshell/ii/modules/common/panels/lock/pam/fprintd.conf +/home/gazzd/.config/quickshell/ii/modules/common/Persistent.qml +/home/gazzd/.config/quickshell/ii/modules/common/utils/ImageDownloaderProcess.qml +/home/gazzd/.config/quickshell/ii/modules/common/utils/ScreenshotAction.qml +/home/gazzd/.config/quickshell/ii/modules/common/utils/TempScreenshotProcess.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/AddressBar.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/AddressBreadcrumb.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/ButtonGroup.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/CalendarView.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/Circle.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/CircularProgress.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/CliphistImage.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/ClippedFilledCircularProgress.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/ClippedProgressBar.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/ConfigRow.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/ConfigSelectionArray.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/ConfigSlider.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/ConfigSpinBox.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/ConfigSwitch.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/ContentPage.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/ContentSection.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/ContentSubsectionLabel.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/ContentSubsection.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/CustomIcon.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/DashedBorder.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/DialogButton.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/DialogListItem.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/DirectoryIcon.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/DragManager.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/FadeLoader.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/Favicon.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/FloatingActionButton.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/FlowButtonGroup.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/FocusedScrollMouseArea.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/FullscreenPolkitWindow.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/Graph.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/GroupButton.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/IconAndTextToolbarButton.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/IconToolbarButton.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/KeyboardKey.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/LightDarkPreferenceButton.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/MaterialCookie.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/MaterialLoadingIndicator.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/MaterialShape.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/MaterialShapeWrappedMaterialSymbol.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/MaterialSymbol.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/MaterialTextArea.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/MaterialTextField.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/MenuButton.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/NavigationRailButton.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/NavigationRailExpandButton.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/NavigationRail.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/NavigationRailTabArray.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/NoticeBox.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/NotificationActionButton.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/NotificationAppIcon.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/NotificationGroupExpandButton.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/NotificationGroup.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/NotificationItem.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/NotificationListView.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/OptionalMaterialSymbol.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/PagePlaceholder.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/PointingHandInteraction.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/PointingHandLinkHover.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/PopupToolTip.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/Revealer.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/RippleButton.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/RippleButtonWithIcon.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/RoundCorner.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/ScrollEdgeFade.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/SecondaryTabBar.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/SecondaryTabButton.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/SelectionDialog.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/SelectionGroupButton.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/shapes/example.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/shapes/example-squircle.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/shapes/geometry/offset.js +/home/gazzd/.config/quickshell/ii/modules/common/widgets/shapes/.git +/home/gazzd/.config/quickshell/ii/modules/common/widgets/shapes/.gitignore +/home/gazzd/.config/quickshell/ii/modules/common/widgets/shapes/graphics/matrix.js +/home/gazzd/.config/quickshell/ii/modules/common/widgets/shapes/LICENSE +/home/gazzd/.config/quickshell/ii/modules/common/widgets/shapes/material-shapes.js +/home/gazzd/.config/quickshell/ii/modules/common/widgets/shapes/README.md +/home/gazzd/.config/quickshell/ii/modules/common/widgets/shapes/ShapeCanvas.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/shapes/shapes/corner-rounding.js +/home/gazzd/.config/quickshell/ii/modules/common/widgets/shapes/shapes/cubic.js +/home/gazzd/.config/quickshell/ii/modules/common/widgets/shapes/shapes/feature.js +/home/gazzd/.config/quickshell/ii/modules/common/widgets/shapes/shapes/feature-mapping.js +/home/gazzd/.config/quickshell/ii/modules/common/widgets/shapes/shapes/float-mapping.js +/home/gazzd/.config/quickshell/ii/modules/common/widgets/shapes/shapes/morph.js +/home/gazzd/.config/quickshell/ii/modules/common/widgets/shapes/shapes/point.js +/home/gazzd/.config/quickshell/ii/modules/common/widgets/shapes/shapes/polygon-measure.js +/home/gazzd/.config/quickshell/ii/modules/common/widgets/shapes/shapes/rounded-corner.js +/home/gazzd/.config/quickshell/ii/modules/common/widgets/shapes/shapes/rounded-polygon.js +/home/gazzd/.config/quickshell/ii/modules/common/widgets/shapes/shapes/utils.js +/home/gazzd/.config/quickshell/ii/modules/common/widgets/SineCookie.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/StyledBlurEffect.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/StyledComboBox.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/StyledDropShadow.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/StyledFlickable.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/StyledImage.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/StyledIndeterminateProgressBar.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/StyledListView.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/StyledProgressBar.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/StyledRadioButton.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/StyledRectangularShadow.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/StyledScrollBar.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/StyledSlider.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/StyledSpinBox.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/StyledSwitch.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/StyledTextArea.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/StyledTextInput.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/StyledText.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/StyledToolTipContent.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/StyledToolTip.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/ThumbnailImage.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/ToolbarButton.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/Toolbar.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/ToolbarTabBar.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/ToolbarTabButton.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/ToolbarTextField.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/VerticalButtonGroup.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/VibrantToolbarButton.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/WaveVisualizer.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/WavyLine.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/WeekRow.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/widgetCanvas/AbstractOverlayWidget.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/widgetCanvas/AbstractWidget.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/widgetCanvas/WidgetCanvas.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/WindowDialogButtonRow.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/WindowDialogParagraph.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/WindowDialog.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/WindowDialogSectionHeader.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/WindowDialogSeparator.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/WindowDialogSlider.qml +/home/gazzd/.config/quickshell/ii/modules/common/widgets/WindowDialogTitle.qml +/home/gazzd/.config/quickshell/ii/modules/ii/background/Background.qml +/home/gazzd/.config/quickshell/ii/modules/ii/background/widgets/AbstractBackgroundWidget.qml +/home/gazzd/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockText.qml +/home/gazzd/.config/quickshell/ii/modules/ii/background/widgets/clock/ClockWidget.qml +/home/gazzd/.config/quickshell/ii/modules/ii/background/widgets/clock/CookieClock.qml +/home/gazzd/.config/quickshell/ii/modules/ii/background/widgets/clock/CookieQuote.qml +/home/gazzd/.config/quickshell/ii/modules/ii/background/widgets/clock/dateIndicator/BubbleDate.qml +/home/gazzd/.config/quickshell/ii/modules/ii/background/widgets/clock/dateIndicator/DateIndicator.qml +/home/gazzd/.config/quickshell/ii/modules/ii/background/widgets/clock/dateIndicator/RectangleDate.qml +/home/gazzd/.config/quickshell/ii/modules/ii/background/widgets/clock/dateIndicator/RotatingDate.qml +/home/gazzd/.config/quickshell/ii/modules/ii/background/widgets/clock/DigitalClock.qml +/home/gazzd/.config/quickshell/ii/modules/ii/background/widgets/clock/HourHand.qml +/home/gazzd/.config/quickshell/ii/modules/ii/background/widgets/clock/HourMarks.qml +/home/gazzd/.config/quickshell/ii/modules/ii/background/widgets/clock/MinuteHand.qml +/home/gazzd/.config/quickshell/ii/modules/ii/background/widgets/clock/minuteMarks/BigHourNumbers.qml +/home/gazzd/.config/quickshell/ii/modules/ii/background/widgets/clock/minuteMarks/Dots.qml +/home/gazzd/.config/quickshell/ii/modules/ii/background/widgets/clock/minuteMarks/Lines.qml +/home/gazzd/.config/quickshell/ii/modules/ii/background/widgets/clock/minuteMarks/MinuteMarks.qml +/home/gazzd/.config/quickshell/ii/modules/ii/background/widgets/clock/SecondHand.qml +/home/gazzd/.config/quickshell/ii/modules/ii/background/widgets/clock/TimeColumn.qml +/home/gazzd/.config/quickshell/ii/modules/ii/background/widgets/weather/WeatherWidget.qml +/home/gazzd/.config/quickshell/ii/modules/ii/bar/ActiveWindow.qml +/home/gazzd/.config/quickshell/ii/modules/ii/bar/BarContent.qml +/home/gazzd/.config/quickshell/ii/modules/ii/bar/BarGroup.qml +/home/gazzd/.config/quickshell/ii/modules/ii/bar/Bar.qml +/home/gazzd/.config/quickshell/ii/modules/ii/bar/BatteryIndicator.qml +/home/gazzd/.config/quickshell/ii/modules/ii/bar/BatteryPopup.qml +/home/gazzd/.config/quickshell/ii/modules/ii/bar/CircleUtilButton.qml +/home/gazzd/.config/quickshell/ii/modules/ii/bar/ClockWidgetPopup.qml +/home/gazzd/.config/quickshell/ii/modules/ii/bar/ClockWidget.qml +/home/gazzd/.config/quickshell/ii/modules/ii/bar/HyprlandXkbIndicator.qml +/home/gazzd/.config/quickshell/ii/modules/ii/bar/LeftSidebarButton.qml +/home/gazzd/.config/quickshell/ii/modules/ii/bar/Media.qml +/home/gazzd/.config/quickshell/ii/modules/ii/bar/NotificationUnreadCount.qml +/home/gazzd/.config/quickshell/ii/modules/ii/bar/Resource.qml +/home/gazzd/.config/quickshell/ii/modules/ii/bar/ResourcesPopup.qml +/home/gazzd/.config/quickshell/ii/modules/ii/bar/Resources.qml +/home/gazzd/.config/quickshell/ii/modules/ii/bar/ScrollHint.qml +/home/gazzd/.config/quickshell/ii/modules/ii/bar/StyledPopupHeaderRow.qml +/home/gazzd/.config/quickshell/ii/modules/ii/bar/StyledPopup.qml +/home/gazzd/.config/quickshell/ii/modules/ii/bar/StyledPopupValueRow.qml +/home/gazzd/.config/quickshell/ii/modules/ii/bar/SysTrayItem.qml +/home/gazzd/.config/quickshell/ii/modules/ii/bar/SysTrayMenuEntry.qml +/home/gazzd/.config/quickshell/ii/modules/ii/bar/SysTrayMenu.qml +/home/gazzd/.config/quickshell/ii/modules/ii/bar/SysTray.qml +/home/gazzd/.config/quickshell/ii/modules/ii/bar/UtilButtons.qml +/home/gazzd/.config/quickshell/ii/modules/ii/bar/weather/WeatherBar.qml +/home/gazzd/.config/quickshell/ii/modules/ii/bar/weather/WeatherCard.qml +/home/gazzd/.config/quickshell/ii/modules/ii/bar/weather/WeatherPopup.qml +/home/gazzd/.config/quickshell/ii/modules/ii/bar/Workspaces.qml +/home/gazzd/.config/quickshell/ii/modules/ii/cheatsheet/CheatsheetKeybinds.qml +/home/gazzd/.config/quickshell/ii/modules/ii/cheatsheet/CheatsheetPeriodicTable.qml +/home/gazzd/.config/quickshell/ii/modules/ii/cheatsheet/Cheatsheet.qml +/home/gazzd/.config/quickshell/ii/modules/ii/cheatsheet/ElementTile.qml +/home/gazzd/.config/quickshell/ii/modules/ii/cheatsheet/periodic_table.js +/home/gazzd/.config/quickshell/ii/modules/ii/dock/DockAppButton.qml +/home/gazzd/.config/quickshell/ii/modules/ii/dock/DockApps.qml +/home/gazzd/.config/quickshell/ii/modules/ii/dock/DockButton.qml +/home/gazzd/.config/quickshell/ii/modules/ii/dock/Dock.qml +/home/gazzd/.config/quickshell/ii/modules/ii/dock/DockSeparator.qml +/home/gazzd/.config/quickshell/ii/modules/ii/lock/Lock.qml +/home/gazzd/.config/quickshell/ii/modules/ii/lock/LockSurface.qml +/home/gazzd/.config/quickshell/ii/modules/ii/lock/PasswordChars.qml +/home/gazzd/.config/quickshell/ii/modules/ii/mediaControls/MediaControls.qml +/home/gazzd/.config/quickshell/ii/modules/ii/mediaControls/PlayerControl.qml +/home/gazzd/.config/quickshell/ii/modules/ii/notificationPopup/NotificationPopup.qml +/home/gazzd/.config/quickshell/ii/modules/ii/onScreenDisplay/indicators/BrightnessIndicator.qml +/home/gazzd/.config/quickshell/ii/modules/ii/onScreenDisplay/indicators/GammaIndicator.qml +/home/gazzd/.config/quickshell/ii/modules/ii/onScreenDisplay/indicators/VolumeIndicator.qml +/home/gazzd/.config/quickshell/ii/modules/ii/onScreenDisplay/OnScreenDisplay.qml +/home/gazzd/.config/quickshell/ii/modules/ii/onScreenDisplay/OsdValueIndicator.qml +/home/gazzd/.config/quickshell/ii/modules/ii/onScreenKeyboard/layouts.js +/home/gazzd/.config/quickshell/ii/modules/ii/onScreenKeyboard/OnScreenKeyboard.qml +/home/gazzd/.config/quickshell/ii/modules/ii/onScreenKeyboard/OskContent.qml +/home/gazzd/.config/quickshell/ii/modules/ii/onScreenKeyboard/OskKey.qml +/home/gazzd/.config/quickshell/ii/modules/ii/overlay/crosshair/CrosshairContent.qml +/home/gazzd/.config/quickshell/ii/modules/ii/overlay/crosshair/Crosshair.qml +/home/gazzd/.config/quickshell/ii/modules/ii/overlay/floatingImage/FloatingImage.qml +/home/gazzd/.config/quickshell/ii/modules/ii/overlay/fpsLimiter/FpsLimiterContent.qml +/home/gazzd/.config/quickshell/ii/modules/ii/overlay/fpsLimiter/FpsLimiter.qml +/home/gazzd/.config/quickshell/ii/modules/ii/overlay/notes/NotesContent.qml +/home/gazzd/.config/quickshell/ii/modules/ii/overlay/notes/Notes.qml +/home/gazzd/.config/quickshell/ii/modules/ii/overlay/OverlayBackground.qml +/home/gazzd/.config/quickshell/ii/modules/ii/overlay/OverlayContent.qml +/home/gazzd/.config/quickshell/ii/modules/ii/overlay/OverlayContext.qml +/home/gazzd/.config/quickshell/ii/modules/ii/overlay/Overlay.qml +/home/gazzd/.config/quickshell/ii/modules/ii/overlay/OverlayTaskbar.qml +/home/gazzd/.config/quickshell/ii/modules/ii/overlay/OverlayWidgetDelegateChooser.qml +/home/gazzd/.config/quickshell/ii/modules/ii/overlay/recorder/Recorder.qml +/home/gazzd/.config/quickshell/ii/modules/ii/overlay/resources/Resources.qml +/home/gazzd/.config/quickshell/ii/modules/ii/overlay/StyledOverlayWidget.qml +/home/gazzd/.config/quickshell/ii/modules/ii/overlay/volumeMixer/VolumeMixer.qml +/home/gazzd/.config/quickshell/ii/modules/ii/overview/Overview.qml +/home/gazzd/.config/quickshell/ii/modules/ii/overview/OverviewWidget.qml +/home/gazzd/.config/quickshell/ii/modules/ii/overview/OverviewWindow.qml +/home/gazzd/.config/quickshell/ii/modules/ii/overview/SearchBar.qml +/home/gazzd/.config/quickshell/ii/modules/ii/overview/SearchItem.qml +/home/gazzd/.config/quickshell/ii/modules/ii/overview/SearchWidget.qml +/home/gazzd/.config/quickshell/ii/modules/ii/polkit/PolkitContent.qml +/home/gazzd/.config/quickshell/ii/modules/ii/polkit/Polkit.qml +/home/gazzd/.config/quickshell/ii/modules/ii/regionSelector/CircleSelectionDetails.qml +/home/gazzd/.config/quickshell/ii/modules/ii/regionSelector/CursorGuide.qml +/home/gazzd/.config/quickshell/ii/modules/ii/regionSelector/OptionsToolbar.qml +/home/gazzd/.config/quickshell/ii/modules/ii/regionSelector/RectCornersSelectionDetails.qml +/home/gazzd/.config/quickshell/ii/modules/ii/regionSelector/RegionFunctions.qml +/home/gazzd/.config/quickshell/ii/modules/ii/regionSelector/RegionSelection.qml +/home/gazzd/.config/quickshell/ii/modules/ii/regionSelector/RegionSelector.qml +/home/gazzd/.config/quickshell/ii/modules/ii/regionSelector/TargetRegion.qml +/home/gazzd/.config/quickshell/ii/modules/ii/screenCorners/ScreenCorners.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sessionScreen/SessionActionButton.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sessionScreen/SessionScreen.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarLeft/aiChat/AiMessageControlButton.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarLeft/aiChat/AiMessage.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarLeft/aiChat/AnnotationSourceButton.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarLeft/aiChat/AttachedFileIndicator.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarLeft/aiChat/MessageCodeBlock.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarLeft/aiChat/MessageTextBlock.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarLeft/aiChat/MessageThinkBlock.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarLeft/AiChat.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarLeft/aiChat/SearchQueryButton.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarLeft/anime/BooruImage.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarLeft/anime/BooruResponse.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarLeft/Anime.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarLeft/ApiCommandButton.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarLeft/ApiInputBoxIndicator.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarLeft/DescriptionBox.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarLeft/ScrollToBottomButton.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarLeft/SidebarLeftContent.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarLeft/SidebarLeft.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarLeft/translator/LanguageSelectorButton.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarLeft/Translator.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarLeft/translator/TextCanvas.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/bluetoothDevices/BluetoothDeviceItem.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/bluetoothDevices/BluetoothDialog.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/BottomWidgetGroup.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/calendar/CalendarDayButton.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/calendar/CalendarHeaderButton.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/calendar/calendar_layout.js +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/calendar/CalendarWidget.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/CenterWidgetGroup.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/nightLight/NightLightDialog.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/notifications/NotificationList.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/notifications/NotificationStatusButton.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/pomodoro/PomodoroTimer.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/pomodoro/PomodoroWidget.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/pomodoro/Stopwatch.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/QuickSliders.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/AbstractQuickPanel.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/AndroidQuickPanel.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/androidStyle/AndroidAntiFlashbangToggle.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/androidStyle/AndroidAudioToggle.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/androidStyle/AndroidBluetoothToggle.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/androidStyle/AndroidCloudflareWarpToggle.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/androidStyle/AndroidColorPickerToggle.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/androidStyle/AndroidDarkModeToggle.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/androidStyle/AndroidEasyEffectsToggle.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/androidStyle/AndroidGameModeToggle.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/androidStyle/AndroidIdleInhibitorToggle.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/androidStyle/AndroidMicToggle.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/androidStyle/AndroidMusicRecognition.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/androidStyle/AndroidNetworkToggle.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/androidStyle/AndroidNightLightToggle.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/androidStyle/AndroidNotificationToggle.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/androidStyle/AndroidOnScreenKeyboardToggle.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/androidStyle/AndroidPowerProfileToggle.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/androidStyle/AndroidQuickToggleButton.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/androidStyle/AndroidScreenSnipToggle.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/androidStyle/AndroidToggleDelegateChooser.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/ClassicQuickPanel.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/classicStyle/BluetoothToggle.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/classicStyle/CloudflareWarp.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/classicStyle/EasyEffectsToggle.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/classicStyle/GameMode.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/classicStyle/IdleInhibitor.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/classicStyle/NetworkToggle.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/classicStyle/NightLight.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/quickToggles/classicStyle/QuickToggleButton.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/SidebarRightContent.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/SidebarRight.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/todo/TaskList.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/todo/TodoItemActionButton.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/todo/TodoWidget.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/volumeMixer/AudioDeviceSelectorButton.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/volumeMixer/VolumeDialogContent.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/volumeMixer/VolumeDialog.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/volumeMixer/VolumeMixerEntry.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/wifiNetworks/WifiDialog.qml +/home/gazzd/.config/quickshell/ii/modules/ii/sidebarRight/wifiNetworks/WifiNetworkItem.qml +/home/gazzd/.config/quickshell/ii/modules/ii/verticalBar/BatteryIndicator.qml +/home/gazzd/.config/quickshell/ii/modules/ii/verticalBar/Resource.qml +/home/gazzd/.config/quickshell/ii/modules/ii/verticalBar/Resources.qml +/home/gazzd/.config/quickshell/ii/modules/ii/verticalBar/VerticalBarContent.qml +/home/gazzd/.config/quickshell/ii/modules/ii/verticalBar/VerticalBar.qml +/home/gazzd/.config/quickshell/ii/modules/ii/verticalBar/VerticalClockWidget.qml +/home/gazzd/.config/quickshell/ii/modules/ii/verticalBar/VerticalDateWidget.qml +/home/gazzd/.config/quickshell/ii/modules/ii/verticalBar/VerticalMedia.qml +/home/gazzd/.config/quickshell/ii/modules/ii/wallpaperSelector/WallpaperDirectoryItem.qml +/home/gazzd/.config/quickshell/ii/modules/ii/wallpaperSelector/WallpaperSelectorContent.qml +/home/gazzd/.config/quickshell/ii/modules/ii/wallpaperSelector/WallpaperSelector.qml +/home/gazzd/.config/quickshell/ii/modules/settings/About.qml +/home/gazzd/.config/quickshell/ii/modules/settings/AdvancedConfig.qml +/home/gazzd/.config/quickshell/ii/modules/settings/BackgroundConfig.qml +/home/gazzd/.config/quickshell/ii/modules/settings/BarConfig.qml +/home/gazzd/.config/quickshell/ii/modules/settings/GeneralConfig.qml +/home/gazzd/.config/quickshell/ii/modules/settings/InterfaceConfig.qml +/home/gazzd/.config/quickshell/ii/modules/settings/QuickConfig.qml +/home/gazzd/.config/quickshell/ii/modules/settings/ServicesConfig.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/actionCenter/ActionCenterContent.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/actionCenter/ActionCenterContext.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/actionCenter/bluetooth/BluetoothControl.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/actionCenter/bluetooth/BluetoothDeviceItem.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/actionCenter/ExpandableChoiceButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/actionCenter/HeaderRow.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/actionCenter/mainPage/MainPageBody.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/actionCenter/mainPage/MainPageBodySliders.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/actionCenter/mainPage/MainPageBodyToggles.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/actionCenter/mainPage/MainPageFooter.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/actionCenter/MediaPaneContent.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/actionCenter/nightLight/NightLightControl.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/actionCenter/SectionText.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/actionCenter/ToggleItem.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/actionCenter/toggles/ActionCenterToggleButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/actionCenter/toggles/ActionCenterTogglesDelegateChooser.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/actionCenter/toggles/WNetworkToggle.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/actionCenter/volumeControl/VolumeControl.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/actionCenter/volumeControl/VolumeEntry.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/actionCenter/WaffleActionCenter.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/actionCenter/wifi/WifiControl.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/actionCenter/wifi/WWifiNetworkItem.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/background/WaffleBackground.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/bar/AppButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/bar/BarButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/bar/BarIconButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/bar/BarMenu.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/bar/BarPopup.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/bar/BarToolTip.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/bar/SearchButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/bar/StartButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/bar/SystemButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/bar/tasks/TaskAppButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/bar/tasks/TaskPreview.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/bar/tasks/Tasks.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/bar/tasks/WindowPreview.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/bar/TaskViewButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/bar/TimeButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/bar/tray/TrayButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/bar/tray/TrayOverflowMenu.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/bar/tray/Tray.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/bar/UpdatesButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/bar/WaffleBarContent.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/bar/WaffleBar.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/bar/WidgetsButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/lock/WaffleLock.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/AcrylicButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/AcrylicRectangle.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/BodyRectangle.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/CloseButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/FluentIcon.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/FooterRectangle.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/Looks.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/VerticalPageIndicator.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WAmbientShadow.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WAppIcon.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WBarAttachedPanelContent.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WBorderedButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WBorderlessButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WChoiceButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WFadeLoader.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WIcons.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WIndeterminateProgressBar.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WListView.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WMenuItem.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WMenu.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WMouseAreaButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WPanelIconButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WPanelPageColumn.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WPanelSeparator.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WPane.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WPopupToolTip.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WProgressBar.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WRectangularShadow.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WRectangularShadowThis.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WScrollBar.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WSlider.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WStackView.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WSwitch.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WTextButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WTextField.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WTextInput.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WText.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WTextWithFixedWidth.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WToolbarButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WToolbarIconButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WToolbarIconTabButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WToolbar.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WToolbarSeparator.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WToolbarTabBar.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WToolTipContent.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WToolTip.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/looks/WUserAvatar.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/notificationCenter/CalendarWidget.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/notificationCenter/DateHeader.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/notificationCenter/FocusFooter.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/notificationCenter/NotificationCenterContent.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/notificationCenter/NotificationHeaderButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/notificationCenter/NotificationPaneContent.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/notificationCenter/SmallBorderedIconAndTextButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/notificationCenter/SmallBorderedIconButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/notificationCenter/WaffleNotificationCenter.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/notificationCenter/WNotificationAppIcon.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/notificationCenter/WNotificationDismissAnim.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/notificationCenter/WNotificationGroup.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/notificationCenter/WSingleNotification.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/notificationPopup/WaffleNotificationPopup.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/onScreenDisplay/BrightnessOSD.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/onScreenDisplay/OSDValue.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/onScreenDisplay/VolumeOSD.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/onScreenDisplay/WaffleOSD.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/polkit/WafflePolkit.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/polkit/WPolkitContent.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/README.md +/home/gazzd/.config/quickshell/ii/modules/waffle/screenSnip/WRectangularSelection.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/screenSnip/WRegionSelectionPanel.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/screenSnip/WScreenSnip.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/sessionScreen/PowerButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/sessionScreen/SessionScreenContent.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/sessionScreen/WaffleSessionScreen.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/sessionScreen/WSessionScreenTextButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/startMenu/SearchBar.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/startMenu/searchPage/SearchEntryIcon.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/startMenu/searchPage/SearchPageContent.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/startMenu/searchPage/SearchResultButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/startMenu/searchPage/SearchResults.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/startMenu/searchPage/TagStrip.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/startMenu/StartMenuContent.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/startMenu/StartMenuContext.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/startMenu/startPage/AggregatedAppCategoryModel.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/startMenu/startPage/AllAppsGrid.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/startMenu/startPage/AppCategoryGrid.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/startMenu/startPage/BigAppGrid.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/startMenu/startPage/StartAppButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/startMenu/startPage/StartPageApps.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/startMenu/startPage/StartPageContent.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/startMenu/startPage/StartUserButton.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/startMenu/WaffleStartMenu.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/taskView/TaskViewContent.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/taskView/TaskViewWindow.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/taskView/TaskViewWorkspace.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/taskView/WaffleTaskView.qml +/home/gazzd/.config/quickshell/ii/modules/waffle/taskView/window-layout.js +/home/gazzd/.config/quickshell/ii/panelFamilies/IllogicalImpulseFamily.qml +/home/gazzd/.config/quickshell/ii/panelFamilies/PanelLoader.qml +/home/gazzd/.config/quickshell/ii/panelFamilies/WaffleFamily.qml +/home/gazzd/.config/quickshell/ii/.qmlformat.ini +/home/gazzd/.config/quickshell/ii/ReloadPopup.qml +/home/gazzd/.config/quickshell/ii/scripts/ai/gemini-categorize-wallpaper.sh +/home/gazzd/.config/quickshell/ii/scripts/ai/gemini-translate.sh +/home/gazzd/.config/quickshell/ii/scripts/ai/show-installed-ollama-models.sh +/home/gazzd/.config/quickshell/ii/scripts/cava/raw_output_config.txt +/home/gazzd/.config/quickshell/ii/scripts/colors/applycolor.sh +/home/gazzd/.config/quickshell/ii/scripts/colors/code/material-code-set-color.sh +/home/gazzd/.config/quickshell/ii/scripts/colors/generate_colors_material.py +/home/gazzd/.config/quickshell/ii/scripts/colors/random/random_konachan_wall.sh +/home/gazzd/.config/quickshell/ii/scripts/colors/random/random_osu_wall.sh +/home/gazzd/.config/quickshell/ii/scripts/colors/scheme_for_image.py +/home/gazzd/.config/quickshell/ii/scripts/colors/switchwall.sh +/home/gazzd/.config/quickshell/ii/scripts/colors/terminal/kitty-theme.conf +/home/gazzd/.config/quickshell/ii/scripts/colors/terminal/scheme-base.json +/home/gazzd/.config/quickshell/ii/scripts/colors/terminal/sequences.txt +/home/gazzd/.config/quickshell/ii/scripts/hyprland/get_keybinds.py +/home/gazzd/.config/quickshell/ii/scripts/hyprland/hyprconfigurator.py +/home/gazzd/.config/quickshell/ii/scripts/images/find_regions.py +/home/gazzd/.config/quickshell/ii/scripts/images/find-regions-venv.sh +/home/gazzd/.config/quickshell/ii/scripts/images/least_busy_region.py +/home/gazzd/.config/quickshell/ii/scripts/images/least-busy-region-venv.sh +/home/gazzd/.config/quickshell/ii/scripts/keyring/is_unlocked.sh +/home/gazzd/.config/quickshell/ii/scripts/keyring/try_lookup.sh +/home/gazzd/.config/quickshell/ii/scripts/keyring/unlock.sh +/home/gazzd/.config/quickshell/ii/scripts/kvantum/adwsvgDark.py +/home/gazzd/.config/quickshell/ii/scripts/kvantum/adwsvg.py +/home/gazzd/.config/quickshell/ii/scripts/kvantum/changeAdwColors.py +/home/gazzd/.config/quickshell/ii/scripts/kvantum/materialQT.sh +/home/gazzd/.config/quickshell/ii/scripts/musicRecognition/recognize-music.sh +/home/gazzd/.config/quickshell/ii/scripts/thumbnails/generate-thumbnails-magick.sh +/home/gazzd/.config/quickshell/ii/scripts/thumbnails/thumbgen.py +/home/gazzd/.config/quickshell/ii/scripts/thumbnails/thumbgen-venv.sh +/home/gazzd/.config/quickshell/ii/scripts/videos/record.sh +/home/gazzd/.config/quickshell/ii/services/ai/AiMessageData.qml +/home/gazzd/.config/quickshell/ii/services/ai/AiModel.qml +/home/gazzd/.config/quickshell/ii/services/ai/ApiStrategy.qml +/home/gazzd/.config/quickshell/ii/services/ai/GeminiApiStrategy.qml +/home/gazzd/.config/quickshell/ii/services/ai/MistralApiStrategy.qml +/home/gazzd/.config/quickshell/ii/services/ai/OpenAiApiStrategy.qml +/home/gazzd/.config/quickshell/ii/services/Ai.qml +/home/gazzd/.config/quickshell/ii/services/AppSearch.qml +/home/gazzd/.config/quickshell/ii/services/Audio.qml +/home/gazzd/.config/quickshell/ii/services/Battery.qml +/home/gazzd/.config/quickshell/ii/services/BluetoothStatus.qml +/home/gazzd/.config/quickshell/ii/services/Booru.qml +/home/gazzd/.config/quickshell/ii/services/BooruResponseData.qml +/home/gazzd/.config/quickshell/ii/services/Brightness.qml +/home/gazzd/.config/quickshell/ii/services/Cliphist.qml +/home/gazzd/.config/quickshell/ii/services/ConflictKiller.qml +/home/gazzd/.config/quickshell/ii/services/DateTime.qml +/home/gazzd/.config/quickshell/ii/services/EasyEffects.qml +/home/gazzd/.config/quickshell/ii/services/Emojis.qml +/home/gazzd/.config/quickshell/ii/services/FirstRunExperience.qml +/home/gazzd/.config/quickshell/ii/services/GlobalFocusGrab.qml +/home/gazzd/.config/quickshell/ii/services/hyprlandAntiFlashbangShader/anti-flashbang.glsl +/home/gazzd/.config/quickshell/ii/services/HyprlandAntiFlashbangShader.qml +/home/gazzd/.config/quickshell/ii/services/HyprlandConfig.qml +/home/gazzd/.config/quickshell/ii/services/HyprlandData.qml +/home/gazzd/.config/quickshell/ii/services/HyprlandKeybinds.qml +/home/gazzd/.config/quickshell/ii/services/HyprlandXkb.qml +/home/gazzd/.config/quickshell/ii/services/Hyprsunset.qml +/home/gazzd/.config/quickshell/ii/services/Idle.qml +/home/gazzd/.config/quickshell/ii/services/KeyringStorage.qml +/home/gazzd/.config/quickshell/ii/services/LatexRenderer.qml +/home/gazzd/.config/quickshell/ii/services/LauncherApps.qml +/home/gazzd/.config/quickshell/ii/services/LauncherSearch.qml +/home/gazzd/.config/quickshell/ii/services/MaterialThemeLoader.qml +/home/gazzd/.config/quickshell/ii/services/MprisController.qml +/home/gazzd/.config/quickshell/ii/services/Network.qml +/home/gazzd/.config/quickshell/ii/services/network/WifiAccessPoint.qml +/home/gazzd/.config/quickshell/ii/services/Notifications.qml +/home/gazzd/.config/quickshell/ii/services/PolkitService.qml +/home/gazzd/.config/quickshell/ii/services/Privacy.qml +/home/gazzd/.config/quickshell/ii/services/ResourceUsage.qml +/home/gazzd/.config/quickshell/ii/services/SessionWarnings.qml +/home/gazzd/.config/quickshell/ii/services/SongRec.qml +/home/gazzd/.config/quickshell/ii/services/SystemInfo.qml +/home/gazzd/.config/quickshell/ii/services/TaskbarApps.qml +/home/gazzd/.config/quickshell/ii/services/TimerService.qml +/home/gazzd/.config/quickshell/ii/services/Todo.qml +/home/gazzd/.config/quickshell/ii/services/Translation.qml +/home/gazzd/.config/quickshell/ii/services/TrayService.qml +/home/gazzd/.config/quickshell/ii/services/Updates.qml +/home/gazzd/.config/quickshell/ii/services/Wallpapers.qml +/home/gazzd/.config/quickshell/ii/services/Weather.qml +/home/gazzd/.config/quickshell/ii/services/Ydotool.qml +/home/gazzd/.config/quickshell/ii/settings.qml +/home/gazzd/.config/quickshell/ii/shell.qml +/home/gazzd/.config/quickshell/ii/translations/de_DE.json +/home/gazzd/.config/quickshell/ii/translations/en_US.json +/home/gazzd/.config/quickshell/ii/translations/es_MX.json +/home/gazzd/.config/quickshell/ii/translations/fr_FR.json +/home/gazzd/.config/quickshell/ii/translations/he_HE.json +/home/gazzd/.config/quickshell/ii/translations/id_ID.json +/home/gazzd/.config/quickshell/ii/translations/it_IT.json +/home/gazzd/.config/quickshell/ii/translations/ja_JP.json +/home/gazzd/.config/quickshell/ii/translations/pt_BR.json +/home/gazzd/.config/quickshell/ii/translations/ru_RU.json +/home/gazzd/.config/quickshell/ii/translations/tools/guide/translation-tools-guide.md +/home/gazzd/.config/quickshell/ii/translations/tools/guide/translation-tools-guide-zh_CN.md +/home/gazzd/.config/quickshell/ii/translations/tools/manage-translations.sh +/home/gazzd/.config/quickshell/ii/translations/tools/README.md +/home/gazzd/.config/quickshell/ii/translations/tools/translation-cleaner.py +/home/gazzd/.config/quickshell/ii/translations/tools/translation-manager.py +/home/gazzd/.config/quickshell/ii/translations/tr_TR.json +/home/gazzd/.config/quickshell/ii/translations/uk_UA.json +/home/gazzd/.config/quickshell/ii/translations/vi_VN.json +/home/gazzd/.config/quickshell/ii/translations/zh_CN.json +/home/gazzd/.config/quickshell/ii/welcome.qml +/home/gazzd/.config/starship.toml +/home/gazzd/.config/thorium-flags.conf +/home/gazzd/.config/wlogout/layout +/home/gazzd/.config/wlogout/style.css +/home/gazzd/.config/xdg-desktop-portal/hyprland-portals.conf +/home/gazzd/.config/zshrc.d/auto-Hypr.sh +/home/gazzd/.config/zshrc.d/dots-hyprland.zsh +/home/gazzd/.config/zshrc.d/shortcuts.zsh +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/config +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/description +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/FETCH_HEAD +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/HEAD +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/hooks/applypatch-msg.sample +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/hooks/commit-msg.sample +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/hooks/fsmonitor-watchman.sample +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/hooks/post-update.sample +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/hooks/pre-applypatch.sample +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/hooks/pre-commit.sample +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/hooks/pre-merge-commit.sample +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/hooks/prepare-commit-msg.sample +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/hooks/pre-push.sample +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/hooks/pre-rebase.sample +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/hooks/pre-receive.sample +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/hooks/push-to-checkout.sample +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/hooks/sendemail-validate.sample +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/hooks/update.sample +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/index +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/info/exclude +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/logs/HEAD +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/logs/refs/heads/main +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/logs/refs/remotes/origin/main +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/objects/25/1aa5abd30496368f634e54ce2a508fe5a2fdfa +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/objects/40/bd8a65d5330c74be756ce4c024d1363b77675c +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/objects/45/3d044402800a9a3770e76e56a0b3b44fb699d1 +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/objects/4b/c7a9cbb19bfae23ef56f71d4e4432e11c726b5 +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/objects/7c/d06f54af89e48c836e4dd7b8c888b921bdea6f +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/objects/83/f272d2271c17ade8b4cda6363d7dfc777cd3eb +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/objects/91/7b9517ac08d00d03e61105c652395edac6c21b +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/objects/93/967a7a0f877ad553cc53e30658241a36acbe0c +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/objects/9f/0f6c87c41377fd5118dc9d8c09fa12964f91ec +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/objects/b2/d7128afb7c59748d990f6df6cebde5c036250f +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/objects/b4/10ad5ce629691fe07fec74ab5fcd280a881456 +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/objects/d3/28ead3e4c6b7f90287755fa161bd772ccea116 +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/refs/heads/main +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/.git/refs/remotes/origin/main +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/GoogleSansFlex-VariableFont_GRAD,ROND,opsz,slnt,wdth,wght.ttf +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/LICENSE +/home/gazzd/.local/share/fonts/illogical-impulse-google-sans-flex/README.md +/home/gazzd/.local/share/icons/illogical-impulse.svg +/home/gazzd/.local/share/konsole/Profile 1.profile diff --git a/linux/illogical-impulse/.config/illogical-impulse/installed_true b/linux/illogical-impulse/.config/illogical-impulse/installed_true new file mode 100644 index 0000000..e69de29 diff --git a/linux/nvim/.config/nvim/LICENSE b/linux/nvim/.config/nvim/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/linux/nvim/.config/nvim/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/linux/nvim/.config/nvim/README.md b/linux/nvim/.config/nvim/README.md new file mode 100644 index 0000000..185280b --- /dev/null +++ b/linux/nvim/.config/nvim/README.md @@ -0,0 +1,4 @@ +# 💤 LazyVim + +A starter template for [LazyVim](https://github.com/LazyVim/LazyVim). +Refer to the [documentation](https://lazyvim.github.io/installation) to get started. diff --git a/linux/nvim/.config/nvim/init.lua b/linux/nvim/.config/nvim/init.lua new file mode 100644 index 0000000..2514f9e --- /dev/null +++ b/linux/nvim/.config/nvim/init.lua @@ -0,0 +1,2 @@ +-- bootstrap lazy.nvim, LazyVim and your plugins +require("config.lazy") diff --git a/linux/nvim/.config/nvim/lazy-lock.json b/linux/nvim/.config/nvim/lazy-lock.json new file mode 100644 index 0000000..1b9592b --- /dev/null +++ b/linux/nvim/.config/nvim/lazy-lock.json @@ -0,0 +1,34 @@ +{ + "LazyVim": { "branch": "main", "commit": "fca0af57cc3851b14f96a795a9c9bfafc5096dd1" }, + "blink.cmp": { "branch": "main", "commit": "451168851e8e2466bc97ee3e026c3dcb9141ce07" }, + "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, + "catppuccin": { "branch": "main", "commit": "a7788416689dbefea659d9e9415c87926b0ba5d8" }, + "conform.nvim": { "branch": "master", "commit": "086a40dc7ed8242c03be9f47fbcee68699cc2395" }, + "flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" }, + "friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" }, + "gitsigns.nvim": { "branch": "main", "commit": "0f00d07c2c3106ba6abd594ac1c17f211141b7b5" }, + "grug-far.nvim": { "branch": "main", "commit": "dc4684e163971bb1f5bfb93fbd4bb3e892bf9b15" }, + "lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" }, + "lazydev.nvim": { "branch": "main", "commit": "ff2cbcba459b637ec3fd165a2be59b7bbaeedf0d" }, + "lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "25f609e7fca78af7cede4f9fa3af8a94b1c4950b" }, + "mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" }, + "mini.ai": { "branch": "main", "commit": "4b0a6207341d895b6cfe9bcb1e4d3e8607bfe4f4" }, + "mini.icons": { "branch": "main", "commit": "5b9076dae1bfbe47ba4a14bc8b967cde0ab5d77e" }, + "mini.pairs": { "branch": "main", "commit": "b7fde3719340946feb75017ef9d75edebdeb0566" }, + "noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" }, + "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, + "nvim-lint": { "branch": "master", "commit": "4b03656c09c1561f89b6aa0665c15d292ba9499d" }, + "nvim-lspconfig": { "branch": "master", "commit": "8e2084bf5e40c79c1f42210a6ef96a0a4793a763" }, + "nvim-treesitter": { "branch": "main", "commit": "7caec274fd19c12b55902a5b795100d21531391f" }, + "nvim-treesitter-textobjects": { "branch": "main", "commit": "93d60a475f0b08a8eceb99255863977d3a25f310" }, + "nvim-ts-autotag": { "branch": "main", "commit": "8e1c0a389f20bf7f5b0dd0e00306c1247bda2595" }, + "persistence.nvim": { "branch": "main", "commit": "b20b2a7887bd39c1a356980b45e03250f3dce49c" }, + "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, + "snacks.nvim": { "branch": "main", "commit": "ad9ede6a9cddf16cedbd31b8932d6dcdee9b716e" }, + "todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" }, + "tokyonight.nvim": { "branch": "main", "commit": "cdc07ac78467a233fd62c493de29a17e0cf2b2b6" }, + "trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" }, + "ts-comments.nvim": { "branch": "main", "commit": "123a9fb12e7229342f807ec9e6de478b1102b041" }, + "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" } +} diff --git a/linux/nvim/.config/nvim/lazyvim.json b/linux/nvim/.config/nvim/lazyvim.json new file mode 100644 index 0000000..d8bcaf6 --- /dev/null +++ b/linux/nvim/.config/nvim/lazyvim.json @@ -0,0 +1,10 @@ +{ + "extras": [ + + ], + "install_version": 8, + "news": { + "NEWS.md": "11866" + }, + "version": 8 +} \ No newline at end of file diff --git a/linux/nvim/.config/nvim/lua/config/autocmds.lua b/linux/nvim/.config/nvim/lua/config/autocmds.lua new file mode 100644 index 0000000..4221e75 --- /dev/null +++ b/linux/nvim/.config/nvim/lua/config/autocmds.lua @@ -0,0 +1,8 @@ +-- Autocmds are automatically loaded on the VeryLazy event +-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua +-- +-- Add any additional autocmds here +-- with `vim.api.nvim_create_autocmd` +-- +-- Or remove existing autocmds by their group name (which is prefixed with `lazyvim_` for the defaults) +-- e.g. vim.api.nvim_del_augroup_by_name("lazyvim_wrap_spell") diff --git a/linux/nvim/.config/nvim/lua/config/keymaps.lua b/linux/nvim/.config/nvim/lua/config/keymaps.lua new file mode 100644 index 0000000..2c134f7 --- /dev/null +++ b/linux/nvim/.config/nvim/lua/config/keymaps.lua @@ -0,0 +1,3 @@ +-- Keymaps are automatically loaded on the VeryLazy event +-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua +-- Add any additional keymaps here diff --git a/linux/nvim/.config/nvim/lua/config/lazy.lua b/linux/nvim/.config/nvim/lua/config/lazy.lua new file mode 100644 index 0000000..d73bfa1 --- /dev/null +++ b/linux/nvim/.config/nvim/lua/config/lazy.lua @@ -0,0 +1,53 @@ +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not (vim.uv or vim.loop).fs_stat(lazypath) then + local lazyrepo = "https://github.com/folke/lazy.nvim.git" + local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) + if vim.v.shell_error ~= 0 then + vim.api.nvim_echo({ + { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, + { out, "WarningMsg" }, + { "\nPress any key to exit..." }, + }, true, {}) + vim.fn.getchar() + os.exit(1) + end +end +vim.opt.rtp:prepend(lazypath) + +require("lazy").setup({ + spec = { + -- add LazyVim and import its plugins + { "LazyVim/LazyVim", import = "lazyvim.plugins" }, + -- import/override with your plugins + { import = "plugins" }, + }, + defaults = { + -- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup. + -- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default. + lazy = false, + -- It's recommended to leave version=false for now, since a lot the plugin that support versioning, + -- have outdated releases, which may break your Neovim install. + version = false, -- always use the latest git commit + -- version = "*", -- try installing the latest stable version for plugins that support semver + }, + install = { colorscheme = { "tokyonight", "habamax" } }, + checker = { + enabled = true, -- check for plugin updates periodically + notify = false, -- notify on update + }, -- automatically check for plugin updates + performance = { + rtp = { + -- disable some rtp plugins + disabled_plugins = { + "gzip", + -- "matchit", + -- "matchparen", + -- "netrwPlugin", + "tarPlugin", + "tohtml", + "tutor", + "zipPlugin", + }, + }, + }, +}) diff --git a/linux/nvim/.config/nvim/lua/config/options.lua b/linux/nvim/.config/nvim/lua/config/options.lua new file mode 100644 index 0000000..77a0560 --- /dev/null +++ b/linux/nvim/.config/nvim/lua/config/options.lua @@ -0,0 +1,4 @@ +-- Options are automatically loaded before lazy.nvim startup +-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua +-- Add any additional options here +vim.opt.clipboard = "unnamedplus" diff --git a/linux/nvim/.config/nvim/lua/plugins/example.lua b/linux/nvim/.config/nvim/lua/plugins/example.lua new file mode 100644 index 0000000..17f53d6 --- /dev/null +++ b/linux/nvim/.config/nvim/lua/plugins/example.lua @@ -0,0 +1,197 @@ +-- since this is just an example spec, don't actually load anything here and return an empty spec +-- stylua: ignore +if true then return {} end + +-- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim +-- +-- In your plugin files, you can: +-- * add extra plugins +-- * disable/enabled LazyVim plugins +-- * override the configuration of LazyVim plugins +return { + -- add gruvbox + { "ellisonleao/gruvbox.nvim" }, + + -- Configure LazyVim to load gruvbox + { + "LazyVim/LazyVim", + opts = { + colorscheme = "gruvbox", + }, + }, + + -- change trouble config + { + "folke/trouble.nvim", + -- opts will be merged with the parent spec + opts = { use_diagnostic_signs = true }, + }, + + -- disable trouble + { "folke/trouble.nvim", enabled = false }, + + -- override nvim-cmp and add cmp-emoji + { + "hrsh7th/nvim-cmp", + dependencies = { "hrsh7th/cmp-emoji" }, + ---@param opts cmp.ConfigSchema + opts = function(_, opts) + table.insert(opts.sources, { name = "emoji" }) + end, + }, + + -- change some telescope options and a keymap to browse plugin files + { + "nvim-telescope/telescope.nvim", + keys = { + -- add a keymap to browse plugin files + -- stylua: ignore + { + "fp", + function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end, + desc = "Find Plugin File", + }, + }, + -- change some options + opts = { + defaults = { + layout_strategy = "horizontal", + layout_config = { prompt_position = "top" }, + sorting_strategy = "ascending", + winblend = 0, + }, + }, + }, + + -- add pyright to lspconfig + { + "neovim/nvim-lspconfig", + ---@class PluginLspOpts + opts = { + ---@type lspconfig.options + servers = { + -- pyright will be automatically installed with mason and loaded with lspconfig + pyright = {}, + }, + }, + }, + + -- add tsserver and setup with typescript.nvim instead of lspconfig + { + "neovim/nvim-lspconfig", + dependencies = { + "jose-elias-alvarez/typescript.nvim", + init = function() + require("lazyvim.util").lsp.on_attach(function(_, buffer) + -- stylua: ignore + vim.keymap.set( "n", "co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" }) + vim.keymap.set("n", "cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer }) + end) + end, + }, + ---@class PluginLspOpts + opts = { + ---@type lspconfig.options + servers = { + -- tsserver will be automatically installed with mason and loaded with lspconfig + tsserver = {}, + }, + -- you can do any additional lsp server setup here + -- return true if you don't want this server to be setup with lspconfig + ---@type table + setup = { + -- example to setup with typescript.nvim + tsserver = function(_, opts) + require("typescript").setup({ server = opts }) + return true + end, + -- Specify * to use this function as a fallback for any server + -- ["*"] = function(server, opts) end, + }, + }, + }, + + -- for typescript, LazyVim also includes extra specs to properly setup lspconfig, + -- treesitter, mason and typescript.nvim. So instead of the above, you can use: + { import = "lazyvim.plugins.extras.lang.typescript" }, + + -- add more treesitter parsers + { + "nvim-treesitter/nvim-treesitter", + opts = { + ensure_installed = { + "bash", + "html", + "javascript", + "json", + "lua", + "markdown", + "markdown_inline", + "python", + "query", + "regex", + "tsx", + "typescript", + "vim", + "yaml", + }, + }, + }, + + -- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above + -- would overwrite `ensure_installed` with the new value. + -- If you'd rather extend the default config, use the code below instead: + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + -- add tsx and treesitter + vim.list_extend(opts.ensure_installed, { + "tsx", + "typescript", + }) + end, + }, + + -- the opts function can also be used to change the default opts: + { + "nvim-lualine/lualine.nvim", + event = "VeryLazy", + opts = function(_, opts) + table.insert(opts.sections.lualine_x, { + function() + return "😄" + end, + }) + end, + }, + + -- or you can return new options to override all the defaults + { + "nvim-lualine/lualine.nvim", + event = "VeryLazy", + opts = function() + return { + --[[add your custom lualine config here]] + } + end, + }, + + -- use mini.starter instead of alpha + { import = "lazyvim.plugins.extras.ui.mini-starter" }, + + -- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc + { import = "lazyvim.plugins.extras.lang.json" }, + + -- add any tools you want to have installed below + { + "williamboman/mason.nvim", + opts = { + ensure_installed = { + "stylua", + "shellcheck", + "shfmt", + "flake8", + }, + }, + }, +} diff --git a/linux/nvim/.config/nvim/stylua.toml b/linux/nvim/.config/nvim/stylua.toml new file mode 100644 index 0000000..5d6c50d --- /dev/null +++ b/linux/nvim/.config/nvim/stylua.toml @@ -0,0 +1,3 @@ +indent_type = "Spaces" +indent_width = 2 +column_width = 120 \ No newline at end of file diff --git a/linux/nvim/.gitignore b/linux/nvim/.gitignore new file mode 100644 index 0000000..cc5457a --- /dev/null +++ b/linux/nvim/.gitignore @@ -0,0 +1,8 @@ +tt.* +.tests +doc/tags +debug +.repro +foo.* +*.log +data diff --git a/linux/nvim/.neoconf.json b/linux/nvim/.neoconf.json new file mode 100644 index 0000000..7c48087 --- /dev/null +++ b/linux/nvim/.neoconf.json @@ -0,0 +1,15 @@ +{ + "neodev": { + "library": { + "enabled": true, + "plugins": true + } + }, + "neoconf": { + "plugins": { + "lua_ls": { + "enabled": true + } + } + } +} diff --git a/linux/starship/.config/starship.toml b/linux/starship/.config/starship.toml new file mode 100644 index 0000000..7126829 --- /dev/null +++ b/linux/starship/.config/starship.toml @@ -0,0 +1,103 @@ +# Don't print a new line at the start of the prompt +add_newline = false +# Pipes ╰─ ╭─ +# Powerline symbols                                    +# Wedges 🭧🭒 🭣🭧🭓 +# Random noise 🬖🬥🬔🬗 +# Cool stuff 󰜥    + +# format = """ +# $directory $fill $git_branch $cmd_duration +# $character""" +format = """ +$cmd_duration $directory$git_branch + $character""" + +[fill] +symbol = '-' +style = 'fg:245' + +# Replace the "❯" symbol in the prompt with "➜" +[character] # The name of the module we are configuring is "character" +success_symbol = "[ ](bold fg:243)" +error_symbol = "[ ](bold fg:244)" + +# Disable the package module, hiding it from the prompt completely +[package] +disabled = true + +[git_branch] +style = "bg: 252" +symbol = "󰘬" +truncation_length = 12 +truncation_symbol = "" +format = " 󰜥 [](bold fg:252)[$symbol $branch(:$remote_branch)](fg:235 bg:252)[ ](bold fg:252)" + +[git_commit] +commit_hash_length = 4 +tag_symbol = " " + +[git_state] +format = '[\($state( $progress_current of $progress_total)\)]($style) ' +cherry_pick = "[🍒 PICKING](bold red)" + +[git_status] +conflicted = " 🏳 " +ahead = " 🏎💨 " +behind = " 😰 " +diverged = " 😵 " +untracked = " 🤷 ‍" +stashed = " 📦 " +modified = " 📝 " +staged = '[++\($count\)](green)' +renamed = " ✍️ " +deleted = " 🗑 " + +[hostname] +ssh_only = false +format = "[•$hostname](bg:252 bold fg:235)[](bold fg:252)" +trim_at = ".companyname.com" +disabled = false + +[line_break] +disabled = false + +[memory_usage] +disabled = true +threshold = -1 +symbol = " " +style = "bold dimmed green" + +[time] +disabled = true +format = '🕙[\[ $time \]]($style) ' +time_format = "%T" + +[username] +style_user = "bold bg:252 fg:235" +style_root = "red bold" +format = "[](bold fg:252)[$user]($style)" +disabled = false +show_always = true + +[directory] +home_symbol = " " +read_only = "  " +style = "bg:255 fg:240" +truncation_length = 2 +truncation_symbol = ".../" +format = '[](bold fg:255)[󰉋 → $path]($style)[](bold fg:255)' + + +[directory.substitutions] +"Desktop" = "  " +"Documents" = "  " +"Downloads" = "  " +"Music" = " 󰎈 " +"Pictures" = "  " +"Videos" = "  " +"GitHub" = " 󰊤 " + +[cmd_duration] +min_time = 0 +format = '[](bold fg:252)[󰪢 $duration](bold bg:252 fg:235)[](bold fg:252)' diff --git a/linux/thunar/.config/Thunar/accels.scm b/linux/thunar/.config/Thunar/accels.scm new file mode 100644 index 0000000..24d5a23 --- /dev/null +++ b/linux/thunar/.config/Thunar/accels.scm @@ -0,0 +1,126 @@ +; thunar GtkAccelMap rc-file -*- scheme -*- +; this file is an automated accelerator map dump +; +; (gtk_accel_path "/ThunarStandardView/sort-by-type" "") +; (gtk_accel_path "/ThunarStatusBar/toggle-last-modified" "") +; (gtk_accel_path "/Thunarwindow/menu" "") +; (gtk_accel_path "/ThunarActionManager/cut" "x") +; (gtk_accel_path "/ThunarStandardView/sort-by-size" "") +; (gtk_accel_path "/ThunarWindow/file-menu" "") +; (gtk_accel_path "/ThunarWindow/close-tab" "w") +; (gtk_accel_path "/ThunarWindow/switch-previous-tab-alt" "ISO_Left_Tab") +; (gtk_accel_path "/ThunarStatusBar/toggle-size" "") +; (gtk_accel_path "/ThunarWindow/new-window" "n") +; (gtk_accel_path "/ThunarWindow/clear-directory-specific-settings" "") +; (gtk_accel_path "/ThunarWindow/close-window" "q") +; (gtk_accel_path "/ThunarWindow/open-parent" "Up") +; (gtk_accel_path "/ThunarWindow/view-side-pane-menu" "") +; (gtk_accel_path "/ThunarStatusBar/toggle-size-in-bytes" "") +; (gtk_accel_path "/ThunarWindow/switch-previous-tab" "Page_Up") +; (gtk_accel_path "/ThunarActionManager/open" "o") +; (gtk_accel_path "/ThunarStandardView/sort-ascending" "") +; (gtk_accel_path "/ThunarWindow/toggle-split-view" "F3") +; (gtk_accel_path "/ThunarActionManager/copy-2" "Insert") +; (gtk_accel_path "/ThunarActionManager/trash-delete" "Delete") +; (gtk_accel_path "/ThunarWindow/open-recent" "") +; (gtk_accel_path "/ThunarWindow/view-configure-toolbar" "") +; (gtk_accel_path "/ThunarStandardView/forward" "Right") +; (gtk_accel_path "/ThunarActionManager/restore" "") +; (gtk_accel_path "/ThunarWindow/open-location-alt" "d") +; (gtk_accel_path "/ThunarWindow/zoom-out-alt" "KP_Subtract") +; (gtk_accel_path "/ThunarStandardView/select-by-pattern" "s") +; (gtk_accel_path "/ThunarWindow/open-file-menu" "F10") +; (gtk_accel_path "/ThunarWindow/contents" "F1") +; (gtk_accel_path "/ThunarWindow/show-highlight" "") +; (gtk_accel_path "/ThunarStandardView/sort-descending" "") +; (gtk_accel_path "/ThunarStandardView/sort-by-name" "") +; (gtk_accel_path "/ThunarStandardView/select-all-files" "a") +; (gtk_accel_path "/ThunarActionManager/execute" "") +; (gtk_accel_path "/ThunarStandardView/properties" "Return") +; (gtk_accel_path "/ThunarActionManager/cut-2" "") +; (gtk_accel_path "/ThunarStandardView/sort-by-dtime" "") +; (gtk_accel_path "/ThunarWindow/switch-next-tab" "Page_Down") +; (gtk_accel_path "/ThunarWindow/open-templates" "") +; (gtk_accel_path "/ThunarActionManager/paste-2" "Insert") +; (gtk_accel_path "/ThunarStatusBar/toggle-filetype" "") +; (gtk_accel_path "/ThunarWindow/close-all-windows" "w") +; (gtk_accel_path "/ThunarStandardView/create-document" "") +; (gtk_accel_path "/ThunarWindow/detach-tab" "") +; (gtk_accel_path "/ThunarWindow/cancel-search" "Escape") +; (gtk_accel_path "/ThunarWindow/zoom-in-alt2" "equal") +; (gtk_accel_path "/ThunarStatusBar/toggle-hidden-count" "") +; (gtk_accel_path "/ThunarShortcutsPane/sendto-shortcuts" "d") +; (gtk_accel_path "/ThunarActionManager/undo" "z") +; (gtk_accel_path "/ThunarStandardView/toggle-sort-order" "") +; (gtk_accel_path "/ThunarWindow/view-location-selector-entry" "") +; (gtk_accel_path "/ThunarActionManager/paste" "v") +; (gtk_accel_path "/ThunarWindow/zoom-in-alt1" "KP_Add") +; (gtk_accel_path "/ThunarWindow/view-menubar" "m") +; (gtk_accel_path "/ThunarStandardView/back" "Left") +; (gtk_accel_path "/ThunarWindow/open-desktop" "") +; (gtk_accel_path "/ThunarWindow/view-as-detailed-list" "2") +; (gtk_accel_path "/ThunarActionManager/restore-show" "") +; (gtk_accel_path "/ThunarWindow/sendto-menu" "") +; (gtk_accel_path "/ThunarStatusBar/toggle-display-name" "") +; (gtk_accel_path "/ThunarWindow/go-menu" "") +; (gtk_accel_path "/ThunarWindow/zoom-out" "minus") +; (gtk_accel_path "/ThunarWindow/remove-from-recent" "") +; (gtk_accel_path "/ThunarActionManager/open-with-other" "") +; (gtk_accel_path "/ThunarStandardView/invert-selection" "i") +; (gtk_accel_path "/ThunarWindow/view-side-pane-shortcuts" "b") +; (gtk_accel_path "/ThunarWindow/reload-alt-2" "Reload") +; (gtk_accel_path "/ThunarWindow/view-location-selector-menu" "") +; (gtk_accel_path "/ThunarWindow/reload" "r") +; (gtk_accel_path "/ThunarWindow/edit-menu" "") +; (gtk_accel_path "/ThunarBookmarks/338d2c31554563c5888627b1bd14ecab" "") +; (gtk_accel_path "/ThunarActionManager/copy" "c") +; (gtk_accel_path "/ThunarWindow/bookmarks-menu" "") +; (gtk_accel_path "/ThunarStandardView/forward-alt" "Forward") +; (gtk_accel_path "/ThunarActionManager/move-to-trash" "") +; (gtk_accel_path "/ThunarWindow/reload-alt-1" "F5") +; (gtk_accel_path "/ThunarActionManager/delete-3" "KP_Delete") +; (gtk_accel_path "/ThunarStandardView/unselect-all-files" "Escape") +; (gtk_accel_path "/ThunarWindow/contents/help-menu" "") +; (gtk_accel_path "/ThunarStandardView/arrange-items-menu" "") +; (gtk_accel_path "/ThunarStandardView/sort-by-mtime" "") +; (gtk_accel_path "/ThunarWindow/open-computer" "") +; (gtk_accel_path "/ThunarWindow/toggle-image-preview" "") +; (gtk_accel_path "/ThunarWindow/toggle-side-pane" "F9") +; (gtk_accel_path "/ThunarWindow/view-as-icons" "1") +; (gtk_accel_path "/ThunarActionManager/delete-2" "Delete") +; (gtk_accel_path "/ThunarWindow/zoom-in" "plus") +; (gtk_accel_path "/ThunarStandardView/rename" "F2") +; (gtk_accel_path "/ThunarWindow/open-location" "l") +; (gtk_accel_path "/ThunarWindow/view-as-compact-list" "3") +; (gtk_accel_path "/ThunarWindow/view-menu" "") +; (gtk_accel_path "/ThunarWindow/search" "f") +; (gtk_accel_path "/ThunarWindow/new-tab" "t") +; (gtk_accel_path "/ThunarWindow/zoom-reset" "0") +; (gtk_accel_path "/ThunarStandardView/back-alt2" "Back") +; (gtk_accel_path "/ThunarActionManager/open-in-new-tab" "p") +; (gtk_accel_path "/ThunarWindow/view-location-selector-buttons" "") +; (gtk_accel_path "/ThunarActionManager/redo" "z") +; (gtk_accel_path "/ThunarWindow/open-trash" "") +; (gtk_accel_path "/ThunarActionManager/open-in-new-window" "o") +; (gtk_accel_path "/ThunarWindow/view-statusbar" "") +; (gtk_accel_path "/ThunarActionManager/open-location" "") +; (gtk_accel_path "/ThunarStandardView/duplicate" "") +; (gtk_accel_path "/ThunarActionManager/trash-delete-2" "KP_Delete") +; (gtk_accel_path "/ThunarStandardView/back-alt1" "BackSpace") +; (gtk_accel_path "/ThunarStandardView/create-folder" "n") +; (gtk_accel_path "/ThunarWindow/open-home" "Home") +; (gtk_accel_path "/ThunarWindow/switch-focused-split-view-pane" "") +; (gtk_accel_path "/ThunarWindow/show-hidden" "h") +; (gtk_accel_path "/ThunarStandardView/set-default-app" "") +; (gtk_accel_path "/ThunarWindow/empty-trash" "") +; (gtk_accel_path "/ThunarWindow/preferences" "") +; (gtk_accel_path "/ThunarActionManager/delete" "") +; (gtk_accel_path "/ThunarWindow/open-network" "") +; (gtk_accel_path "/ThunarWindow/view-side-pane-tree" "e") +; (gtk_accel_path "/ThunarWindow/open-file-system" "") +; (gtk_accel_path "/ThunarWindow/search-alt" "Search") +; (gtk_accel_path "/ThunarWindow/switch-next-tab-alt" "Tab") +; (gtk_accel_path "/ThunarActionManager/sendto-desktop" "") +; (gtk_accel_path "/ThunarStandardView/make-link" "") +; (gtk_accel_path "/ThunarWindow/zoom-reset-alt" "KP_0") +; (gtk_accel_path "/ThunarWindow/about" "") diff --git a/linux/thunar/.config/Thunar/uca.xml b/linux/thunar/.config/Thunar/uca.xml new file mode 100644 index 0000000..a200b8e --- /dev/null +++ b/linux/thunar/.config/Thunar/uca.xml @@ -0,0 +1,15 @@ + + + + utilities-terminal + Open Terminal Here + + 1774964429059311-1 + ghostty --working-directory=%f + Example for a custom action + + * + + + + diff --git a/linux/zsh/.p10k.zsh b/linux/zsh/.p10k.zsh index 96675e7..a51949e 100644 --- a/linux/zsh/.p10k.zsh +++ b/linux/zsh/.p10k.zsh @@ -1,8 +1,9 @@ -# Generated by Powerlevel10k configuration wizard on 2026-02-14 at 15:53 CET. +# Generated by Powerlevel10k configuration wizard on 2026-04-07 at 22:26 CEST. # Based on romkatv/powerlevel10k/config/p10k-rainbow.zsh, checksum 57633. # Wizard options: nerdfont-v3 + powerline, small icons, rainbow, unicode, 24h time, -# angled separators, blurred heads, flat tails, 2 lines, dotted, full frame, -# dark-ornaments, compact, many icons, fluent, transient_prompt, instant_prompt=verbose. +# angled separators, blurred heads, blurred tails, 2 lines, dotted, full frame, +# lightest-ornaments, compact, many icons, fluent, transient_prompt, +# instant_prompt=verbose. # Type `p10k configure` to generate another config. # # Config for Powerlevel10k with powerline prompt style with colorful background. @@ -142,13 +143,13 @@ # Connect left prompt lines with these symbols. You'll probably want to use the same color # as POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND below. - typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX='%240F╭─' - typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX='%240F├─' - typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX='%240F╰─' + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX='%244F╭─' + typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX='%244F├─' + typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX='%244F╰─' # Connect right prompt lines with these symbols. - typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX='%240F─╮' - typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX='%240F─┤' - typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX='%240F─╯' + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX='%244F─╮' + typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX='%244F─┤' + typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX='%244F─╯' # Filler between left and right prompt on the first prompt line. You can set it to ' ', '·' or # '─'. The last two make it easier to see the alignment between left and right prompt and to @@ -160,7 +161,7 @@ if [[ $POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR != ' ' ]]; then # The color of the filler. You'll probably want to match the color of POWERLEVEL9K_MULTILINE # ornaments defined above. - typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND=240 + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND=244 # Start filler from the edge of the screen if there are no left segments on the first line. typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_FIRST_SEGMENT_END_SYMBOL='%{%}' # End filler on the edge of the screen if there are no right segments on the first line. @@ -183,9 +184,9 @@ # The left end of right prompt. typeset -g POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='░▒▓' # The left end of left prompt. - typeset -g POWERLEVEL9K_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL='' + typeset -g POWERLEVEL9K_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL='░▒▓' # The right end of right prompt. - typeset -g POWERLEVEL9K_RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL='' + typeset -g POWERLEVEL9K_RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL='▓▒░' # Left prompt terminator for lines without any segments. typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL= diff --git a/linux/zsh/.p10k.zsh.bak b/linux/zsh/.p10k.zsh.bak new file mode 100644 index 0000000..96675e7 --- /dev/null +++ b/linux/zsh/.p10k.zsh.bak @@ -0,0 +1,1840 @@ +# Generated by Powerlevel10k configuration wizard on 2026-02-14 at 15:53 CET. +# Based on romkatv/powerlevel10k/config/p10k-rainbow.zsh, checksum 57633. +# Wizard options: nerdfont-v3 + powerline, small icons, rainbow, unicode, 24h time, +# angled separators, blurred heads, flat tails, 2 lines, dotted, full frame, +# dark-ornaments, compact, many icons, fluent, transient_prompt, instant_prompt=verbose. +# Type `p10k configure` to generate another config. +# +# Config for Powerlevel10k with powerline prompt style with colorful background. +# Type `p10k configure` to generate your own config based on it. +# +# Tip: Looking for a nice color? Here's a one-liner to print colormap. +# +# for i in {0..255}; do print -Pn "%K{$i} %k%F{$i}${(l:3::0:)i}%f " ${${(M)$((i%6)):#3}:+$'\n'}; done + +# Temporarily change options. +'builtin' 'local' '-a' 'p10k_config_opts' +[[ ! -o 'aliases' ]] || p10k_config_opts+=('aliases') +[[ ! -o 'sh_glob' ]] || p10k_config_opts+=('sh_glob') +[[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand') +'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand' + +() { + emulate -L zsh -o extended_glob + + # Unset all configuration options. This allows you to apply configuration changes without + # restarting zsh. Edit ~/.p10k.zsh and type `source ~/.p10k.zsh`. + unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR' + + # Zsh >= 5.1 is required. + [[ $ZSH_VERSION == (5.<1->*|<6->.*) ]] || return + + # The list of segments shown on the left. Fill it with the most important segments. + typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=( + # =========================[ Line #1 ]========================= + os_icon # os identifier + dir # current directory + vcs # git status + # =========================[ Line #2 ]========================= + newline # \n + # prompt_char # prompt symbol + ) + + # The list of segments shown on the right. Fill it with less important segments. + # Right prompt on the last prompt line (where you are typing your commands) gets + # automatically hidden when the input line reaches it. Right prompt above the + # last prompt line gets hidden if it would overlap with left prompt. + typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=( + # =========================[ Line #1 ]========================= + status # exit code of the last command + command_execution_time # duration of the last command + background_jobs # presence of background jobs + direnv # direnv status (https://direnv.net/) + asdf # asdf version manager (https://github.com/asdf-vm/asdf) + virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html) + anaconda # conda environment (https://conda.io/) + pyenv # python environment (https://github.com/pyenv/pyenv) + goenv # go environment (https://github.com/syndbg/goenv) + nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv) + nvm # node.js version from nvm (https://github.com/nvm-sh/nvm) + nodeenv # node.js environment (https://github.com/ekalinin/nodeenv) + # node_version # node.js version + # go_version # go version (https://golang.org) + # rust_version # rustc version (https://www.rust-lang.org) + # dotnet_version # .NET version (https://dotnet.microsoft.com) + # php_version # php version (https://www.php.net/) + # laravel_version # laravel php framework version (https://laravel.com/) + # java_version # java version (https://www.java.com/) + # package # name@version from package.json (https://docs.npmjs.com/files/package.json) + rbenv # ruby version from rbenv (https://github.com/rbenv/rbenv) + rvm # ruby version from rvm (https://rvm.io) + fvm # flutter version management (https://github.com/leoafarias/fvm) + luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv) + jenv # java version from jenv (https://github.com/jenv/jenv) + plenv # perl version from plenv (https://github.com/tokuhirom/plenv) + perlbrew # perl version from perlbrew (https://github.com/gugod/App-perlbrew) + phpenv # php version from phpenv (https://github.com/phpenv/phpenv) + scalaenv # scala version from scalaenv (https://github.com/scalaenv/scalaenv) + haskell_stack # haskell version from stack (https://haskellstack.org/) + kubecontext # current kubernetes context (https://kubernetes.io/) + terraform # terraform workspace (https://www.terraform.io) + # terraform_version # terraform version (https://www.terraform.io) + aws # aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) + aws_eb_env # aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/) + azure # azure account name (https://docs.microsoft.com/en-us/cli/azure) + gcloud # google cloud cli account and project (https://cloud.google.com/) + google_app_cred # google application credentials (https://cloud.google.com/docs/authentication/production) + toolbox # toolbox name (https://github.com/containers/toolbox) + context # user@hostname + nordvpn # nordvpn connection status, linux only (https://nordvpn.com/) + ranger # ranger shell (https://github.com/ranger/ranger) + yazi # yazi shell (https://github.com/sxyazi/yazi) + nnn # nnn shell (https://github.com/jarun/nnn) + lf # lf shell (https://github.com/gokcehan/lf) + xplr # xplr shell (https://github.com/sayanarijit/xplr) + vim_shell # vim shell indicator (:sh) + midnight_commander # midnight commander shell (https://midnight-commander.org/) + nix_shell # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) + chezmoi_shell # chezmoi shell (https://www.chezmoi.io/) + vi_mode # vi mode (you don't need this if you've enabled prompt_char) + # vpn_ip # virtual private network indicator + # load # CPU load + # disk_usage # disk usage + # ram # free RAM + # swap # used swap + todo # todo items (https://github.com/todotxt/todo.txt-cli) + timewarrior # timewarrior tracking status (https://timewarrior.net/) + taskwarrior # taskwarrior task count (https://taskwarrior.org/) + per_directory_history # Oh My Zsh per-directory-history local/global indicator + # cpu_arch # CPU architecture + time # current time + # =========================[ Line #2 ]========================= + newline + # ip # ip address and bandwidth usage for a specified network interface + # public_ip # public IP address + # proxy # system-wide http/https/ftp proxy + # battery # internal battery + # wifi # wifi speed + # example # example user-defined segment (see prompt_example function below) + ) + + # Defines character set used by powerlevel10k. It's best to let `p10k configure` set it for you. + typeset -g POWERLEVEL9K_MODE=nerdfont-v3 + # When set to `moderate`, some icons will have an extra space after them. This is meant to avoid + # icon overlap when using non-monospace fonts. When set to `none`, spaces are not added. + typeset -g POWERLEVEL9K_ICON_PADDING=none + + # When set to true, icons appear before content on both sides of the prompt. When set + # to false, icons go after content. If empty or not set, icons go before content in the left + # prompt and after content in the right prompt. + # + # You can also override it for a specific segment: + # + # POWERLEVEL9K_STATUS_ICON_BEFORE_CONTENT=false + # + # Or for a specific segment in specific state: + # + # POWERLEVEL9K_DIR_NOT_WRITABLE_ICON_BEFORE_CONTENT=false + typeset -g POWERLEVEL9K_ICON_BEFORE_CONTENT= + + # Add an empty line before each prompt. + typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=false + + # Connect left prompt lines with these symbols. You'll probably want to use the same color + # as POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND below. + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX='%240F╭─' + typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX='%240F├─' + typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX='%240F╰─' + # Connect right prompt lines with these symbols. + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX='%240F─╮' + typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX='%240F─┤' + typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX='%240F─╯' + + # Filler between left and right prompt on the first prompt line. You can set it to ' ', '·' or + # '─'. The last two make it easier to see the alignment between left and right prompt and to + # separate prompt from command output. You might want to set POWERLEVEL9K_PROMPT_ADD_NEWLINE=false + # for more compact prompt if using this option. + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR='·' + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_BACKGROUND= + typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_GAP_BACKGROUND= + if [[ $POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR != ' ' ]]; then + # The color of the filler. You'll probably want to match the color of POWERLEVEL9K_MULTILINE + # ornaments defined above. + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND=240 + # Start filler from the edge of the screen if there are no left segments on the first line. + typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_FIRST_SEGMENT_END_SYMBOL='%{%}' + # End filler on the edge of the screen if there are no right segments on the first line. + typeset -g POWERLEVEL9K_EMPTY_LINE_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='%{%}' + fi + + # Separator between same-color segments on the left. + typeset -g POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR='\uE0B1' + # Separator between same-color segments on the right. + typeset -g POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR='\uE0B3' + # Separator between different-color segments on the left. + typeset -g POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR='\uE0B0' + # Separator between different-color segments on the right. + typeset -g POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR='\uE0B2' + # To remove a separator between two segments, add "_joined" to the second segment name. + # For example: POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(os_icon context_joined) + + # The right end of left prompt. + typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL='▓▒░' + # The left end of right prompt. + typeset -g POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='░▒▓' + # The left end of left prompt. + typeset -g POWERLEVEL9K_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL='' + # The right end of right prompt. + typeset -g POWERLEVEL9K_RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL='' + # Left prompt terminator for lines without any segments. + typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL= + + #################################[ os_icon: os identifier ]################################## + # OS identifier color. + typeset -g POWERLEVEL9K_OS_ICON_FOREGROUND=232 + typeset -g POWERLEVEL9K_OS_ICON_BACKGROUND=7 + # Custom icon. + # typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION='⭐' + + ################################[ prompt_char: prompt symbol ]################################ + # Transparent background. + typeset -g POWERLEVEL9K_PROMPT_CHAR_BACKGROUND= + # Green prompt symbol if the last command succeeded. + typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=76 + # Red prompt symbol if the last command failed. + typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=196 + # Default prompt symbol. + typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION='❯' + # Prompt symbol in command vi mode. + typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION='❮' + # Prompt symbol in visual vi mode. + typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION='V' + # Prompt symbol in overwrite vi mode. + typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIOWR_CONTENT_EXPANSION='▶' + typeset -g POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE=true + # No line terminator if prompt_char is the last segment. + typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL= + # No line introducer if prompt_char is the first segment. + typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL= + # No surrounding whitespace. + typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_{LEFT,RIGHT}_WHITESPACE= + + ##################################[ dir: current directory ]################################## + # Current directory background color. + typeset -g POWERLEVEL9K_DIR_BACKGROUND=4 + # Default current directory foreground color. + typeset -g POWERLEVEL9K_DIR_FOREGROUND=254 + # If directory is too long, shorten some of its segments to the shortest possible unique + # prefix. The shortened directory can be tab-completed to the original. + typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_unique + # Replace removed segment suffixes with this symbol. + typeset -g POWERLEVEL9K_SHORTEN_DELIMITER= + # Color of the shortened directory segments. + typeset -g POWERLEVEL9K_DIR_SHORTENED_FOREGROUND=250 + # Color of the anchor directory segments. Anchor segments are never shortened. The first + # segment is always an anchor. + typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND=255 + # Display anchor directory segments in bold. + typeset -g POWERLEVEL9K_DIR_ANCHOR_BOLD=true + # Don't shorten directories that contain any of these files. They are anchors. + local anchor_files=( + .bzr + .citc + .git + .hg + .node-version + .python-version + .go-version + .ruby-version + .lua-version + .java-version + .perl-version + .php-version + .tool-versions + .mise.toml + .shorten_folder_marker + .svn + .terraform + CVS + Cargo.toml + composer.json + go.mod + package.json + stack.yaml + ) + typeset -g POWERLEVEL9K_SHORTEN_FOLDER_MARKER="(${(j:|:)anchor_files})" + # If set to "first" ("last"), remove everything before the first (last) subdirectory that contains + # files matching $POWERLEVEL9K_SHORTEN_FOLDER_MARKER. For example, when the current directory is + # /foo/bar/git_repo/nested_git_repo/baz, prompt will display git_repo/nested_git_repo/baz (first) + # or nested_git_repo/baz (last). This assumes that git_repo and nested_git_repo contain markers + # and other directories don't. + # + # Optionally, "first" and "last" can be followed by ":" where is an integer. + # This moves the truncation point to the right (positive offset) or to the left (negative offset) + # relative to the marker. Plain "first" and "last" are equivalent to "first:0" and "last:0" + # respectively. + typeset -g POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER=false + # Don't shorten this many last directory segments. They are anchors. + typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1 + # Shorten directory if it's longer than this even if there is space for it. The value can + # be either absolute (e.g., '80') or a percentage of terminal width (e.g, '50%'). If empty, + # directory will be shortened only when prompt doesn't fit or when other parameters demand it + # (see POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS and POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT below). + # If set to `0`, directory will always be shortened to its minimum length. + typeset -g POWERLEVEL9K_DIR_MAX_LENGTH=80 + # When `dir` segment is on the last prompt line, try to shorten it enough to leave at least this + # many columns for typing commands. + typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS=40 + # When `dir` segment is on the last prompt line, try to shorten it enough to leave at least + # COLUMNS * POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT * 0.01 columns for typing commands. + typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT=50 + # If set to true, embed a hyperlink into the directory. Useful for quickly + # opening a directory in the file manager simply by clicking the link. + # Can also be handy when the directory is shortened, as it allows you to see + # the full directory that was used in previous commands. + typeset -g POWERLEVEL9K_DIR_HYPERLINK=false + + # Enable special styling for non-writable and non-existent directories. See POWERLEVEL9K_LOCK_ICON + # and POWERLEVEL9K_DIR_CLASSES below. + typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=v3 + + # The default icon shown next to non-writable and non-existent directories when + # POWERLEVEL9K_DIR_SHOW_WRITABLE is set to v3. + # typeset -g POWERLEVEL9K_LOCK_ICON='⭐' + + # POWERLEVEL9K_DIR_CLASSES allows you to specify custom icons and colors for different + # directories. It must be an array with 3 * N elements. Each triplet consists of: + # + # 1. A pattern against which the current directory ($PWD) is matched. Matching is done with + # extended_glob option enabled. + # 2. Directory class for the purpose of styling. + # 3. An empty string. + # + # Triplets are tried in order. The first triplet whose pattern matches $PWD wins. + # + # If POWERLEVEL9K_DIR_SHOW_WRITABLE is set to v3, non-writable and non-existent directories + # acquire class suffix _NOT_WRITABLE and NON_EXISTENT respectively. + # + # For example, given these settings: + # + # typeset -g POWERLEVEL9K_DIR_CLASSES=( + # '~/work(|/*)' WORK '' + # '~(|/*)' HOME '' + # '*' DEFAULT '') + # + # Whenever the current directory is ~/work or a subdirectory of ~/work, it gets styled with one + # of the following classes depending on its writability and existence: WORK, WORK_NOT_WRITABLE or + # WORK_NON_EXISTENT. + # + # Simply assigning classes to directories doesn't have any visible effects. It merely gives you an + # option to define custom colors and icons for different directory classes. + # + # # Styling for WORK. + # typeset -g POWERLEVEL9K_DIR_WORK_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_DIR_WORK_BACKGROUND=4 + # typeset -g POWERLEVEL9K_DIR_WORK_FOREGROUND=254 + # typeset -g POWERLEVEL9K_DIR_WORK_SHORTENED_FOREGROUND=250 + # typeset -g POWERLEVEL9K_DIR_WORK_ANCHOR_FOREGROUND=255 + # + # # Styling for WORK_NOT_WRITABLE. + # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_BACKGROUND=4 + # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_FOREGROUND=254 + # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_SHORTENED_FOREGROUND=250 + # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_ANCHOR_FOREGROUND=255 + # + # # Styling for WORK_NON_EXISTENT. + # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_BACKGROUND=4 + # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_FOREGROUND=254 + # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_SHORTENED_FOREGROUND=250 + # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_ANCHOR_FOREGROUND=255 + # + # If a styling parameter isn't explicitly defined for some class, it falls back to the classless + # parameter. For example, if POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_FOREGROUND is not set, it falls + # back to POWERLEVEL9K_DIR_FOREGROUND. + # + # typeset -g POWERLEVEL9K_DIR_CLASSES=() + + # Custom prefix. + # typeset -g POWERLEVEL9K_DIR_PREFIX='in ' + + #####################################[ vcs: git status ]###################################### + # Version control background colors. + typeset -g POWERLEVEL9K_VCS_CLEAN_BACKGROUND=2 + typeset -g POWERLEVEL9K_VCS_MODIFIED_BACKGROUND=3 + typeset -g POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND=2 + typeset -g POWERLEVEL9K_VCS_CONFLICTED_BACKGROUND=3 + typeset -g POWERLEVEL9K_VCS_LOADING_BACKGROUND=8 + + # Branch icon. Set this parameter to '\UE0A0 ' for the popular Powerline branch icon. + typeset -g POWERLEVEL9K_VCS_BRANCH_ICON='\uF126 ' + + # Untracked files icon. It's really a question mark, your font isn't broken. + # Change the value of this parameter to show a different icon. + typeset -g POWERLEVEL9K_VCS_UNTRACKED_ICON='?' + + # Formatter for Git status. + # + # Example output: master wip ⇣42⇡42 *42 merge ~42 +42 !42 ?42. + # + # You can edit the function to customize how Git status looks. + # + # VCS_STATUS_* parameters are set by gitstatus plugin. See reference: + # https://github.com/romkatv/gitstatus/blob/master/gitstatus.plugin.zsh. + function my_git_formatter() { + emulate -L zsh + + if [[ -n $P9K_CONTENT ]]; then + # If P9K_CONTENT is not empty, use it. It's either "loading" or from vcs_info (not from + # gitstatus plugin). VCS_STATUS_* parameters are not available in this case. + typeset -g my_git_format=$P9K_CONTENT + return + fi + + # Styling for different parts of Git status. + local meta='%7F' # white foreground + local clean='%0F' # black foreground + local modified='%0F' # black foreground + local untracked='%0F' # black foreground + local conflicted='%1F' # red foreground + + local res + + if [[ -n $VCS_STATUS_LOCAL_BRANCH ]]; then + local branch=${(V)VCS_STATUS_LOCAL_BRANCH} + # If local branch name is at most 32 characters long, show it in full. + # Otherwise show the first 12 … the last 12. + # Tip: To always show local branch name in full without truncation, delete the next line. + (( $#branch > 32 )) && branch[13,-13]="…" # <-- this line + res+="${clean}${(g::)POWERLEVEL9K_VCS_BRANCH_ICON}${branch//\%/%%}" + fi + + if [[ -n $VCS_STATUS_TAG + # Show tag only if not on a branch. + # Tip: To always show tag, delete the next line. + && -z $VCS_STATUS_LOCAL_BRANCH # <-- this line + ]]; then + local tag=${(V)VCS_STATUS_TAG} + # If tag name is at most 32 characters long, show it in full. + # Otherwise show the first 12 … the last 12. + # Tip: To always show tag name in full without truncation, delete the next line. + (( $#tag > 32 )) && tag[13,-13]="…" # <-- this line + res+="${meta}#${clean}${tag//\%/%%}" + fi + + # Display the current Git commit if there is no branch and no tag. + # Tip: To always display the current Git commit, delete the next line. + [[ -z $VCS_STATUS_LOCAL_BRANCH && -z $VCS_STATUS_TAG ]] && # <-- this line + res+="${meta}@${clean}${VCS_STATUS_COMMIT[1,8]}" + + # Show tracking branch name if it differs from local branch. + if [[ -n ${VCS_STATUS_REMOTE_BRANCH:#$VCS_STATUS_LOCAL_BRANCH} ]]; then + res+="${meta}:${clean}${(V)VCS_STATUS_REMOTE_BRANCH//\%/%%}" + fi + + # Display "wip" if the latest commit's summary contains "wip" or "WIP". + if [[ $VCS_STATUS_COMMIT_SUMMARY == (|*[^[:alnum:]])(wip|WIP)(|[^[:alnum:]]*) ]]; then + res+=" ${modified}wip" + fi + + if (( VCS_STATUS_COMMITS_AHEAD || VCS_STATUS_COMMITS_BEHIND )); then + # ⇣42 if behind the remote. + (( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}⇣${VCS_STATUS_COMMITS_BEHIND}" + # ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42. + (( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && res+=" " + (( VCS_STATUS_COMMITS_AHEAD )) && res+="${clean}⇡${VCS_STATUS_COMMITS_AHEAD}" + elif [[ -n $VCS_STATUS_REMOTE_BRANCH ]]; then + # Tip: Uncomment the next line to display '=' if up to date with the remote. + # res+=" ${clean}=" + fi + + # ⇠42 if behind the push remote. + (( VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" ${clean}⇠${VCS_STATUS_PUSH_COMMITS_BEHIND}" + (( VCS_STATUS_PUSH_COMMITS_AHEAD && !VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" " + # ⇢42 if ahead of the push remote; no leading space if also behind: ⇠42⇢42. + (( VCS_STATUS_PUSH_COMMITS_AHEAD )) && res+="${clean}⇢${VCS_STATUS_PUSH_COMMITS_AHEAD}" + # *42 if have stashes. + (( VCS_STATUS_STASHES )) && res+=" ${clean}*${VCS_STATUS_STASHES}" + # 'merge' if the repo is in an unusual state. + [[ -n $VCS_STATUS_ACTION ]] && res+=" ${conflicted}${VCS_STATUS_ACTION}" + # ~42 if have merge conflicts. + (( VCS_STATUS_NUM_CONFLICTED )) && res+=" ${conflicted}~${VCS_STATUS_NUM_CONFLICTED}" + # +42 if have staged changes. + (( VCS_STATUS_NUM_STAGED )) && res+=" ${modified}+${VCS_STATUS_NUM_STAGED}" + # !42 if have unstaged changes. + (( VCS_STATUS_NUM_UNSTAGED )) && res+=" ${modified}!${VCS_STATUS_NUM_UNSTAGED}" + # ?42 if have untracked files. It's really a question mark, your font isn't broken. + # See POWERLEVEL9K_VCS_UNTRACKED_ICON above if you want to use a different icon. + # Remove the next line if you don't want to see untracked files at all. + (( VCS_STATUS_NUM_UNTRACKED )) && res+=" ${untracked}${(g::)POWERLEVEL9K_VCS_UNTRACKED_ICON}${VCS_STATUS_NUM_UNTRACKED}" + # "─" if the number of unstaged files is unknown. This can happen due to + # POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY (see below) being set to a non-negative number lower + # than the number of files in the Git index, or due to bash.showDirtyState being set to false + # in the repository config. The number of staged and untracked files may also be unknown + # in this case. + (( VCS_STATUS_HAS_UNSTAGED == -1 )) && res+=" ${modified}─" + + typeset -g my_git_format=$res + } + functions -M my_git_formatter 2>/dev/null + + # Don't count the number of unstaged, untracked and conflicted files in Git repositories with + # more than this many files in the index. Negative value means infinity. + # + # If you are working in Git repositories with tens of millions of files and seeing performance + # sagging, try setting POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY to a number lower than the output + # of `git ls-files | wc -l`. Alternatively, add `bash.showDirtyState = false` to the repository's + # config: `git config bash.showDirtyState false`. + typeset -g POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY=-1 + + # Don't show Git status in prompt for repositories whose workdir matches this pattern. + # For example, if set to '~', the Git repository at $HOME/.git will be ignored. + # Multiple patterns can be combined with '|': '~(|/foo)|/bar/baz/*'. + typeset -g POWERLEVEL9K_VCS_DISABLED_WORKDIR_PATTERN='~' + + # Disable the default Git status formatting. + typeset -g POWERLEVEL9K_VCS_DISABLE_GITSTATUS_FORMATTING=true + # Install our own Git status formatter. + typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${$((my_git_formatter()))+${my_git_format}}' + # Enable counters for staged, unstaged, etc. + typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED,CONFLICTED,COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=-1 + + # Custom icon. + # typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION='⭐' + # Custom prefix. + typeset -g POWERLEVEL9K_VCS_PREFIX='on ' + + # Show status of repositories of these types. You can add svn and/or hg if you are + # using them. If you do, your prompt may become slow even when your current directory + # isn't in an svn or hg repository. + typeset -g POWERLEVEL9K_VCS_BACKENDS=(git) + + ##########################[ status: exit code of the last command ]########################### + # Enable OK_PIPE, ERROR_PIPE and ERROR_SIGNAL status states to allow us to enable, disable and + # style them independently from the regular OK and ERROR state. + typeset -g POWERLEVEL9K_STATUS_EXTENDED_STATES=true + + # Status on success. No content, just an icon. No need to show it if prompt_char is enabled as + # it will signify success by turning green. + typeset -g POWERLEVEL9K_STATUS_OK=true + typeset -g POWERLEVEL9K_STATUS_OK_VISUAL_IDENTIFIER_EXPANSION='✔' + typeset -g POWERLEVEL9K_STATUS_OK_FOREGROUND=2 + typeset -g POWERLEVEL9K_STATUS_OK_BACKGROUND=0 + + # Status when some part of a pipe command fails but the overall exit status is zero. It may look + # like this: 1|0. + typeset -g POWERLEVEL9K_STATUS_OK_PIPE=true + typeset -g POWERLEVEL9K_STATUS_OK_PIPE_VISUAL_IDENTIFIER_EXPANSION='✔' + typeset -g POWERLEVEL9K_STATUS_OK_PIPE_FOREGROUND=2 + typeset -g POWERLEVEL9K_STATUS_OK_PIPE_BACKGROUND=0 + + # Status when it's just an error code (e.g., '1'). No need to show it if prompt_char is enabled as + # it will signify error by turning red. + typeset -g POWERLEVEL9K_STATUS_ERROR=true + typeset -g POWERLEVEL9K_STATUS_ERROR_VISUAL_IDENTIFIER_EXPANSION='✘' + typeset -g POWERLEVEL9K_STATUS_ERROR_FOREGROUND=3 + typeset -g POWERLEVEL9K_STATUS_ERROR_BACKGROUND=1 + + # Status when the last command was terminated by a signal. + typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL=true + # Use terse signal names: "INT" instead of "SIGINT(2)". + typeset -g POWERLEVEL9K_STATUS_VERBOSE_SIGNAME=false + typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_VISUAL_IDENTIFIER_EXPANSION='✘' + typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_FOREGROUND=3 + typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_BACKGROUND=1 + + # Status when some part of a pipe command fails and the overall exit status is also non-zero. + # It may look like this: 1|0. + typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE=true + typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_VISUAL_IDENTIFIER_EXPANSION='✘' + typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_FOREGROUND=3 + typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_BACKGROUND=1 + + ###################[ command_execution_time: duration of the last command ]################### + # Execution time color. + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=0 + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_BACKGROUND=3 + # Show duration of the last command if takes at least this many seconds. + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3 + # Show this many fractional digits. Zero means round to seconds. + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0 + # Duration format: 1d 2h 3m 4s. + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s' + # Custom icon. + # typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_VISUAL_IDENTIFIER_EXPANSION='⭐' + # Custom prefix. + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PREFIX='took ' + + #######################[ background_jobs: presence of background jobs ]####################### + # Background jobs color. + typeset -g POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=6 + typeset -g POWERLEVEL9K_BACKGROUND_JOBS_BACKGROUND=0 + # Don't show the number of background jobs. + typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=false + # Custom icon. + # typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #######################[ direnv: direnv status (https://direnv.net/) ]######################## + # Direnv color. + typeset -g POWERLEVEL9K_DIRENV_FOREGROUND=3 + typeset -g POWERLEVEL9K_DIRENV_BACKGROUND=0 + # Custom icon. + # typeset -g POWERLEVEL9K_DIRENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###############[ asdf: asdf version manager (https://github.com/asdf-vm/asdf) ]############### + # Default asdf color. Only used to display tools for which there is no color override (see below). + # Tip: Override these parameters for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_FOREGROUND and + # POWERLEVEL9K_ASDF_${TOOL}_BACKGROUND. + typeset -g POWERLEVEL9K_ASDF_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_BACKGROUND=7 + + # There are four parameters that can be used to hide asdf tools. Each parameter describes + # conditions under which a tool gets hidden. Parameters can hide tools but not unhide them. If at + # least one parameter decides to hide a tool, that tool gets hidden. If no parameter decides to + # hide a tool, it gets shown. + # + # Special note on the difference between POWERLEVEL9K_ASDF_SOURCES and + # POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW. Consider the effect of the following commands: + # + # asdf local python 3.8.1 + # asdf global python 3.8.1 + # + # After running both commands the current python version is 3.8.1 and its source is "local" as + # it takes precedence over "global". If POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW is set to false, + # it'll hide python version in this case because 3.8.1 is the same as the global version. + # POWERLEVEL9K_ASDF_SOURCES will hide python version only if the value of this parameter doesn't + # contain "local". + + # Hide tool versions that don't come from one of these sources. + # + # Available sources: + # + # - shell `asdf current` says "set by ASDF_${TOOL}_VERSION environment variable" + # - local `asdf current` says "set by /some/not/home/directory/file" + # - global `asdf current` says "set by /home/username/file" + # + # Note: If this parameter is set to (shell local global), it won't hide tools. + # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SOURCES. + typeset -g POWERLEVEL9K_ASDF_SOURCES=(shell local global) + + # If set to false, hide tool versions that are the same as global. + # + # Note: The name of this parameter doesn't reflect its meaning at all. + # Note: If this parameter is set to true, it won't hide tools. + # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_PROMPT_ALWAYS_SHOW. + typeset -g POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW=false + + # If set to false, hide tool versions that are equal to "system". + # + # Note: If this parameter is set to true, it won't hide tools. + # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SHOW_SYSTEM. + typeset -g POWERLEVEL9K_ASDF_SHOW_SYSTEM=true + + # If set to non-empty value, hide tools unless there is a file matching the specified file pattern + # in the current directory, or its parent directory, or its grandparent directory, and so on. + # + # Note: If this parameter is set to empty value, it won't hide tools. + # Note: SHOW_ON_UPGLOB isn't specific to asdf. It works with all prompt segments. + # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SHOW_ON_UPGLOB. + # + # Example: Hide nodejs version when there is no package.json and no *.js files in the current + # directory, in `..`, in `../..` and so on. + # + # typeset -g POWERLEVEL9K_ASDF_NODEJS_SHOW_ON_UPGLOB='*.js|package.json' + typeset -g POWERLEVEL9K_ASDF_SHOW_ON_UPGLOB= + + # Ruby version from asdf. + typeset -g POWERLEVEL9K_ASDF_RUBY_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_RUBY_BACKGROUND=1 + # typeset -g POWERLEVEL9K_ASDF_RUBY_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_RUBY_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Python version from asdf. + typeset -g POWERLEVEL9K_ASDF_PYTHON_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_PYTHON_BACKGROUND=4 + # typeset -g POWERLEVEL9K_ASDF_PYTHON_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_PYTHON_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Go version from asdf. + typeset -g POWERLEVEL9K_ASDF_GOLANG_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_GOLANG_BACKGROUND=4 + # typeset -g POWERLEVEL9K_ASDF_GOLANG_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_GOLANG_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Node.js version from asdf. + typeset -g POWERLEVEL9K_ASDF_NODEJS_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_NODEJS_BACKGROUND=2 + # typeset -g POWERLEVEL9K_ASDF_NODEJS_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_NODEJS_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Rust version from asdf. + typeset -g POWERLEVEL9K_ASDF_RUST_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_RUST_BACKGROUND=208 + # typeset -g POWERLEVEL9K_ASDF_RUST_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_RUST_SHOW_ON_UPGLOB='*.foo|*.bar' + + # .NET Core version from asdf. + typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_BACKGROUND=5 + # typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Flutter version from asdf. + typeset -g POWERLEVEL9K_ASDF_FLUTTER_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_FLUTTER_BACKGROUND=4 + # typeset -g POWERLEVEL9K_ASDF_FLUTTER_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_FLUTTER_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Lua version from asdf. + typeset -g POWERLEVEL9K_ASDF_LUA_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_LUA_BACKGROUND=4 + # typeset -g POWERLEVEL9K_ASDF_LUA_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_LUA_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Java version from asdf. + typeset -g POWERLEVEL9K_ASDF_JAVA_FOREGROUND=1 + typeset -g POWERLEVEL9K_ASDF_JAVA_BACKGROUND=7 + # typeset -g POWERLEVEL9K_ASDF_JAVA_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_JAVA_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Perl version from asdf. + typeset -g POWERLEVEL9K_ASDF_PERL_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_PERL_BACKGROUND=4 + # typeset -g POWERLEVEL9K_ASDF_PERL_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_PERL_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Erlang version from asdf. + typeset -g POWERLEVEL9K_ASDF_ERLANG_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_ERLANG_BACKGROUND=1 + # typeset -g POWERLEVEL9K_ASDF_ERLANG_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_ERLANG_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Elixir version from asdf. + typeset -g POWERLEVEL9K_ASDF_ELIXIR_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_ELIXIR_BACKGROUND=5 + # typeset -g POWERLEVEL9K_ASDF_ELIXIR_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_ELIXIR_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Postgres version from asdf. + typeset -g POWERLEVEL9K_ASDF_POSTGRES_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_POSTGRES_BACKGROUND=6 + # typeset -g POWERLEVEL9K_ASDF_POSTGRES_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_POSTGRES_SHOW_ON_UPGLOB='*.foo|*.bar' + + # PHP version from asdf. + typeset -g POWERLEVEL9K_ASDF_PHP_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_PHP_BACKGROUND=5 + # typeset -g POWERLEVEL9K_ASDF_PHP_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_PHP_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Haskell version from asdf. + typeset -g POWERLEVEL9K_ASDF_HASKELL_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_HASKELL_BACKGROUND=3 + # typeset -g POWERLEVEL9K_ASDF_HASKELL_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_HASKELL_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Julia version from asdf. + typeset -g POWERLEVEL9K_ASDF_JULIA_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_JULIA_BACKGROUND=2 + # typeset -g POWERLEVEL9K_ASDF_JULIA_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_JULIA_SHOW_ON_UPGLOB='*.foo|*.bar' + + ##########[ nordvpn: nordvpn connection status, linux only (https://nordvpn.com/) ]########### + # NordVPN connection indicator color. + typeset -g POWERLEVEL9K_NORDVPN_FOREGROUND=7 + typeset -g POWERLEVEL9K_NORDVPN_BACKGROUND=4 + # Hide NordVPN connection indicator when not connected. + typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_CONTENT_EXPANSION= + typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_VISUAL_IDENTIFIER_EXPANSION= + # Custom icon. + # typeset -g POWERLEVEL9K_NORDVPN_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #################[ ranger: ranger shell (https://github.com/ranger/ranger) ]################## + # Ranger shell color. + typeset -g POWERLEVEL9K_RANGER_FOREGROUND=3 + typeset -g POWERLEVEL9K_RANGER_BACKGROUND=0 + # Custom icon. + # typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ####################[ yazi: yazi shell (https://github.com/sxyazi/yazi) ]##################### + # Yazi shell color. + typeset -g POWERLEVEL9K_YAZI_FOREGROUND=3 + typeset -g POWERLEVEL9K_YAZI_BACKGROUND=0 + # Custom icon. + # typeset -g POWERLEVEL9K_YAZI_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ######################[ nnn: nnn shell (https://github.com/jarun/nnn) ]####################### + # Nnn shell color. + typeset -g POWERLEVEL9K_NNN_FOREGROUND=0 + typeset -g POWERLEVEL9K_NNN_BACKGROUND=6 + # Custom icon. + # typeset -g POWERLEVEL9K_NNN_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ######################[ lf: lf shell (https://github.com/gokcehan/lf) ]####################### + # lf shell color. + typeset -g POWERLEVEL9K_LF_FOREGROUND=0 + typeset -g POWERLEVEL9K_LF_BACKGROUND=6 + # Custom icon. + # typeset -g POWERLEVEL9K_LF_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##################[ xplr: xplr shell (https://github.com/sayanarijit/xplr) ]################## + # xplr shell color. + typeset -g POWERLEVEL9K_XPLR_FOREGROUND=0 + typeset -g POWERLEVEL9K_XPLR_BACKGROUND=6 + # Custom icon. + # typeset -g POWERLEVEL9K_XPLR_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###########################[ vim_shell: vim shell indicator (:sh) ]########################### + # Vim shell indicator color. + typeset -g POWERLEVEL9K_VIM_SHELL_FOREGROUND=0 + typeset -g POWERLEVEL9K_VIM_SHELL_BACKGROUND=2 + # Custom icon. + # typeset -g POWERLEVEL9K_VIM_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ######[ midnight_commander: midnight commander shell (https://midnight-commander.org/) ]###### + # Midnight Commander shell color. + typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_FOREGROUND=3 + typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_BACKGROUND=0 + # Custom icon. + # typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #[ nix_shell: nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) ]## + # Nix shell color. + typeset -g POWERLEVEL9K_NIX_SHELL_FOREGROUND=0 + typeset -g POWERLEVEL9K_NIX_SHELL_BACKGROUND=4 + + # Display the icon of nix_shell if PATH contains a subdirectory of /nix/store. + # typeset -g POWERLEVEL9K_NIX_SHELL_INFER_FROM_PATH=false + + # Tip: If you want to see just the icon without "pure" and "impure", uncomment the next line. + # typeset -g POWERLEVEL9K_NIX_SHELL_CONTENT_EXPANSION= + + # Custom icon. + # typeset -g POWERLEVEL9K_NIX_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##################[ chezmoi_shell: chezmoi shell (https://www.chezmoi.io/) ]################## + # chezmoi shell color. + typeset -g POWERLEVEL9K_CHEZMOI_SHELL_FOREGROUND=0 + typeset -g POWERLEVEL9K_CHEZMOI_SHELL_BACKGROUND=4 + # Custom icon. + # typeset -g POWERLEVEL9K_CHEZMOI_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##################################[ disk_usage: disk usage ]################################## + # Colors for different levels of disk usage. + typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=3 + typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_BACKGROUND=0 + typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_FOREGROUND=0 + typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_BACKGROUND=3 + typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_FOREGROUND=7 + typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_BACKGROUND=1 + # Thresholds for different levels of disk usage (percentage points). + typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL=90 + typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_LEVEL=95 + # If set to true, hide disk usage when below $POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL percent. + typeset -g POWERLEVEL9K_DISK_USAGE_ONLY_WARNING=false + # Custom icon. + # typeset -g POWERLEVEL9K_DISK_USAGE_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###########[ vi_mode: vi mode (you don't need this if you've enabled prompt_char) ]########### + # Foreground color. + typeset -g POWERLEVEL9K_VI_MODE_FOREGROUND=0 + # Text and color for normal (a.k.a. command) vi mode. + typeset -g POWERLEVEL9K_VI_COMMAND_MODE_STRING=NORMAL + typeset -g POWERLEVEL9K_VI_MODE_NORMAL_BACKGROUND=2 + # Text and color for visual vi mode. + typeset -g POWERLEVEL9K_VI_VISUAL_MODE_STRING=VISUAL + typeset -g POWERLEVEL9K_VI_MODE_VISUAL_BACKGROUND=4 + # Text and color for overtype (a.k.a. overwrite and replace) vi mode. + typeset -g POWERLEVEL9K_VI_OVERWRITE_MODE_STRING=OVERTYPE + typeset -g POWERLEVEL9K_VI_MODE_OVERWRITE_BACKGROUND=3 + # Text and color for insert vi mode. + typeset -g POWERLEVEL9K_VI_INSERT_MODE_STRING= + typeset -g POWERLEVEL9K_VI_MODE_INSERT_FOREGROUND=8 + # Custom icon. + # typeset -g POWERLEVEL9K_VI_MODE_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ######################################[ ram: free RAM ]####################################### + # RAM color. + typeset -g POWERLEVEL9K_RAM_FOREGROUND=0 + typeset -g POWERLEVEL9K_RAM_BACKGROUND=3 + # Custom icon. + # typeset -g POWERLEVEL9K_RAM_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #####################################[ swap: used swap ]###################################### + # Swap color. + typeset -g POWERLEVEL9K_SWAP_FOREGROUND=0 + typeset -g POWERLEVEL9K_SWAP_BACKGROUND=3 + # Custom icon. + # typeset -g POWERLEVEL9K_SWAP_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ######################################[ load: CPU load ]###################################### + # Show average CPU load over this many last minutes. Valid values are 1, 5 and 15. + typeset -g POWERLEVEL9K_LOAD_WHICH=5 + # Load color when load is under 50%. + typeset -g POWERLEVEL9K_LOAD_NORMAL_FOREGROUND=0 + typeset -g POWERLEVEL9K_LOAD_NORMAL_BACKGROUND=2 + # Load color when load is between 50% and 70%. + typeset -g POWERLEVEL9K_LOAD_WARNING_FOREGROUND=0 + typeset -g POWERLEVEL9K_LOAD_WARNING_BACKGROUND=3 + # Load color when load is over 70%. + typeset -g POWERLEVEL9K_LOAD_CRITICAL_FOREGROUND=0 + typeset -g POWERLEVEL9K_LOAD_CRITICAL_BACKGROUND=1 + # Custom icon. + # typeset -g POWERLEVEL9K_LOAD_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ################[ todo: todo items (https://github.com/todotxt/todo.txt-cli) ]################ + # Todo color. + typeset -g POWERLEVEL9K_TODO_FOREGROUND=0 + typeset -g POWERLEVEL9K_TODO_BACKGROUND=8 + # Hide todo when the total number of tasks is zero. + typeset -g POWERLEVEL9K_TODO_HIDE_ZERO_TOTAL=true + # Hide todo when the number of tasks after filtering is zero. + typeset -g POWERLEVEL9K_TODO_HIDE_ZERO_FILTERED=false + + # Todo format. The following parameters are available within the expansion. + # + # - P9K_TODO_TOTAL_TASK_COUNT The total number of tasks. + # - P9K_TODO_FILTERED_TASK_COUNT The number of tasks after filtering. + # + # These variables correspond to the last line of the output of `todo.sh -p ls`: + # + # TODO: 24 of 42 tasks shown + # + # Here 24 is P9K_TODO_FILTERED_TASK_COUNT and 42 is P9K_TODO_TOTAL_TASK_COUNT. + # + # typeset -g POWERLEVEL9K_TODO_CONTENT_EXPANSION='$P9K_TODO_FILTERED_TASK_COUNT' + + # Custom icon. + # typeset -g POWERLEVEL9K_TODO_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###########[ timewarrior: timewarrior tracking status (https://timewarrior.net/) ]############ + # Timewarrior color. + typeset -g POWERLEVEL9K_TIMEWARRIOR_FOREGROUND=255 + typeset -g POWERLEVEL9K_TIMEWARRIOR_BACKGROUND=8 + + # If the tracked task is longer than 24 characters, truncate and append "…". + # Tip: To always display tasks without truncation, delete the following parameter. + # Tip: To hide task names and display just the icon when time tracking is enabled, set the + # value of the following parameter to "". + typeset -g POWERLEVEL9K_TIMEWARRIOR_CONTENT_EXPANSION='${P9K_CONTENT:0:24}${${P9K_CONTENT:24}:+…}' + + # Custom icon. + # typeset -g POWERLEVEL9K_TIMEWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##############[ taskwarrior: taskwarrior task count (https://taskwarrior.org/) ]############## + # Taskwarrior color. + typeset -g POWERLEVEL9K_TASKWARRIOR_FOREGROUND=0 + typeset -g POWERLEVEL9K_TASKWARRIOR_BACKGROUND=6 + + # Taskwarrior segment format. The following parameters are available within the expansion. + # + # - P9K_TASKWARRIOR_PENDING_COUNT The number of pending tasks: `task +PENDING count`. + # - P9K_TASKWARRIOR_OVERDUE_COUNT The number of overdue tasks: `task +OVERDUE count`. + # + # Zero values are represented as empty parameters. + # + # The default format: + # + # '${P9K_TASKWARRIOR_OVERDUE_COUNT:+"!$P9K_TASKWARRIOR_OVERDUE_COUNT/"}$P9K_TASKWARRIOR_PENDING_COUNT' + # + # typeset -g POWERLEVEL9K_TASKWARRIOR_CONTENT_EXPANSION='$P9K_TASKWARRIOR_PENDING_COUNT' + + # Custom icon. + # typeset -g POWERLEVEL9K_TASKWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ######[ per_directory_history: Oh My Zsh per-directory-history local/global indicator ]####### + # Color when using local/global history. + typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_FOREGROUND=0 + typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_BACKGROUND=5 + typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_FOREGROUND=0 + typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_BACKGROUND=3 + + # Tip: Uncomment the next two lines to hide "local"/"global" text and leave just the icon. + # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_CONTENT_EXPANSION='' + # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_CONTENT_EXPANSION='' + + # Custom icon. + # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ################################[ cpu_arch: CPU architecture ]################################ + # CPU architecture color. + typeset -g POWERLEVEL9K_CPU_ARCH_FOREGROUND=0 + typeset -g POWERLEVEL9K_CPU_ARCH_BACKGROUND=3 + + # Hide the segment when on a specific CPU architecture. + # typeset -g POWERLEVEL9K_CPU_ARCH_X86_64_CONTENT_EXPANSION= + # typeset -g POWERLEVEL9K_CPU_ARCH_X86_64_VISUAL_IDENTIFIER_EXPANSION= + + # Custom icon. + # typeset -g POWERLEVEL9K_CPU_ARCH_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##################################[ context: user@hostname ]################################## + # Context color when running with privileges. + typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=1 + typeset -g POWERLEVEL9K_CONTEXT_ROOT_BACKGROUND=0 + # Context color in SSH without privileges. + typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_FOREGROUND=3 + typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_BACKGROUND=0 + # Default context color (no privileges, no SSH). + typeset -g POWERLEVEL9K_CONTEXT_FOREGROUND=3 + typeset -g POWERLEVEL9K_CONTEXT_BACKGROUND=0 + + # Context format when running with privileges: user@hostname. + typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE='%n@%m' + # Context format when in SSH without privileges: user@hostname. + typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_TEMPLATE='%n@%m' + # Default context format (no privileges, no SSH): user@hostname. + typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE='%n@%m' + + # Don't show context unless running with privileges or in SSH. + # Tip: Remove the next line to always show context. + typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_{CONTENT,VISUAL_IDENTIFIER}_EXPANSION= + + # Custom icon. + # typeset -g POWERLEVEL9K_CONTEXT_VISUAL_IDENTIFIER_EXPANSION='⭐' + # Custom prefix. + typeset -g POWERLEVEL9K_CONTEXT_PREFIX='with ' + + ###[ virtualenv: python virtual environment (https://docs.python.org/3/library/venv.html) ]### + # Python virtual environment color. + typeset -g POWERLEVEL9K_VIRTUALENV_FOREGROUND=0 + typeset -g POWERLEVEL9K_VIRTUALENV_BACKGROUND=4 + # Don't show Python version next to the virtual environment name. + typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_PYTHON_VERSION=false + # If set to "false", won't show virtualenv if pyenv is already shown. + # If set to "if-different", won't show virtualenv if it's the same as pyenv. + typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_WITH_PYENV=false + # Separate environment name from Python version only with a space. + typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER= + # Custom icon. + # typeset -g POWERLEVEL9K_VIRTUALENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #####################[ anaconda: conda environment (https://conda.io/) ]###################### + # Anaconda environment color. + typeset -g POWERLEVEL9K_ANACONDA_FOREGROUND=0 + typeset -g POWERLEVEL9K_ANACONDA_BACKGROUND=4 + + # Anaconda segment format. The following parameters are available within the expansion. + # + # - CONDA_PREFIX Absolute path to the active Anaconda/Miniconda environment. + # - CONDA_DEFAULT_ENV Name of the active Anaconda/Miniconda environment. + # - CONDA_PROMPT_MODIFIER Configurable prompt modifier (see below). + # - P9K_ANACONDA_PYTHON_VERSION Current python version (python --version). + # + # CONDA_PROMPT_MODIFIER can be configured with the following command: + # + # conda config --set env_prompt '({default_env}) ' + # + # The last argument is a Python format string that can use the following variables: + # + # - prefix The same as CONDA_PREFIX. + # - default_env The same as CONDA_DEFAULT_ENV. + # - name The last segment of CONDA_PREFIX. + # - stacked_env Comma-separated list of names in the environment stack. The first element is + # always the same as default_env. + # + # Note: '({default_env}) ' is the default value of env_prompt. + # + # The default value of POWERLEVEL9K_ANACONDA_CONTENT_EXPANSION expands to $CONDA_PROMPT_MODIFIER + # without the surrounding parentheses, or to the last path component of CONDA_PREFIX if the former + # is empty. + typeset -g POWERLEVEL9K_ANACONDA_CONTENT_EXPANSION='${${${${CONDA_PROMPT_MODIFIER#\(}% }%\)}:-${CONDA_PREFIX:t}}' + + # Custom icon. + # typeset -g POWERLEVEL9K_ANACONDA_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ################[ pyenv: python environment (https://github.com/pyenv/pyenv) ]################ + # Pyenv color. + typeset -g POWERLEVEL9K_PYENV_FOREGROUND=0 + typeset -g POWERLEVEL9K_PYENV_BACKGROUND=4 + # Hide python version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_PYENV_SOURCES=(shell local global) + # If set to false, hide python version if it's the same as global: + # $(pyenv version-name) == $(pyenv global). + typeset -g POWERLEVEL9K_PYENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide python version if it's equal to "system". + typeset -g POWERLEVEL9K_PYENV_SHOW_SYSTEM=true + + # Pyenv segment format. The following parameters are available within the expansion. + # + # - P9K_CONTENT Current pyenv environment (pyenv version-name). + # - P9K_PYENV_PYTHON_VERSION Current python version (python --version). + # + # The default format has the following logic: + # + # 1. Display just "$P9K_CONTENT" if it's equal to "$P9K_PYENV_PYTHON_VERSION" or + # starts with "$P9K_PYENV_PYTHON_VERSION/". + # 2. Otherwise display "$P9K_CONTENT $P9K_PYENV_PYTHON_VERSION". + typeset -g POWERLEVEL9K_PYENV_CONTENT_EXPANSION='${P9K_CONTENT}${${P9K_CONTENT:#$P9K_PYENV_PYTHON_VERSION(|/*)}:+ $P9K_PYENV_PYTHON_VERSION}' + + # Custom icon. + # typeset -g POWERLEVEL9K_PYENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ################[ goenv: go environment (https://github.com/syndbg/goenv) ]################ + # Goenv color. + typeset -g POWERLEVEL9K_GOENV_FOREGROUND=0 + typeset -g POWERLEVEL9K_GOENV_BACKGROUND=4 + # Hide go version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_GOENV_SOURCES=(shell local global) + # If set to false, hide go version if it's the same as global: + # $(goenv version-name) == $(goenv global). + typeset -g POWERLEVEL9K_GOENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide go version if it's equal to "system". + typeset -g POWERLEVEL9K_GOENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_GOENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##########[ nodenv: node.js version from nodenv (https://github.com/nodenv/nodenv) ]########## + # Nodenv color. + typeset -g POWERLEVEL9K_NODENV_FOREGROUND=2 + typeset -g POWERLEVEL9K_NODENV_BACKGROUND=0 + # Hide node version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_NODENV_SOURCES=(shell local global) + # If set to false, hide node version if it's the same as global: + # $(nodenv version-name) == $(nodenv global). + typeset -g POWERLEVEL9K_NODENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide node version if it's equal to "system". + typeset -g POWERLEVEL9K_NODENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_NODENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##############[ nvm: node.js version from nvm (https://github.com/nvm-sh/nvm) ]############### + # Nvm color. + typeset -g POWERLEVEL9K_NVM_FOREGROUND=0 + typeset -g POWERLEVEL9K_NVM_BACKGROUND=5 + # If set to false, hide node version if it's the same as default: + # $(nvm version current) == $(nvm version default). + typeset -g POWERLEVEL9K_NVM_PROMPT_ALWAYS_SHOW=false + # If set to false, hide node version if it's equal to "system". + typeset -g POWERLEVEL9K_NVM_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ############[ nodeenv: node.js environment (https://github.com/ekalinin/nodeenv) ]############ + # Nodeenv color. + typeset -g POWERLEVEL9K_NODEENV_FOREGROUND=2 + typeset -g POWERLEVEL9K_NODEENV_BACKGROUND=0 + # Don't show Node version next to the environment name. + typeset -g POWERLEVEL9K_NODEENV_SHOW_NODE_VERSION=false + # Separate environment name from Node version only with a space. + typeset -g POWERLEVEL9K_NODEENV_{LEFT,RIGHT}_DELIMITER= + # Custom icon. + # typeset -g POWERLEVEL9K_NODEENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##############################[ node_version: node.js version ]############################### + # Node version color. + typeset -g POWERLEVEL9K_NODE_VERSION_FOREGROUND=7 + typeset -g POWERLEVEL9K_NODE_VERSION_BACKGROUND=2 + # Show node version only when in a directory tree containing package.json. + typeset -g POWERLEVEL9K_NODE_VERSION_PROJECT_ONLY=true + # Custom icon. + # typeset -g POWERLEVEL9K_NODE_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #######################[ go_version: go version (https://golang.org) ]######################## + # Go version color. + typeset -g POWERLEVEL9K_GO_VERSION_FOREGROUND=255 + typeset -g POWERLEVEL9K_GO_VERSION_BACKGROUND=2 + # Show go version only when in a go project subdirectory. + typeset -g POWERLEVEL9K_GO_VERSION_PROJECT_ONLY=true + # Custom icon. + # typeset -g POWERLEVEL9K_GO_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #################[ rust_version: rustc version (https://www.rust-lang.org) ]################## + # Rust version color. + typeset -g POWERLEVEL9K_RUST_VERSION_FOREGROUND=0 + typeset -g POWERLEVEL9K_RUST_VERSION_BACKGROUND=208 + # Show rust version only when in a rust project subdirectory. + typeset -g POWERLEVEL9K_RUST_VERSION_PROJECT_ONLY=true + # Custom icon. + # typeset -g POWERLEVEL9K_RUST_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###############[ dotnet_version: .NET version (https://dotnet.microsoft.com) ]################ + # .NET version color. + typeset -g POWERLEVEL9K_DOTNET_VERSION_FOREGROUND=7 + typeset -g POWERLEVEL9K_DOTNET_VERSION_BACKGROUND=5 + # Show .NET version only when in a .NET project subdirectory. + typeset -g POWERLEVEL9K_DOTNET_VERSION_PROJECT_ONLY=true + # Custom icon. + # typeset -g POWERLEVEL9K_DOTNET_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #####################[ php_version: php version (https://www.php.net/) ]###################### + # PHP version color. + typeset -g POWERLEVEL9K_PHP_VERSION_FOREGROUND=0 + typeset -g POWERLEVEL9K_PHP_VERSION_BACKGROUND=5 + # Show PHP version only when in a PHP project subdirectory. + typeset -g POWERLEVEL9K_PHP_VERSION_PROJECT_ONLY=true + # Custom icon. + # typeset -g POWERLEVEL9K_PHP_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##########[ laravel_version: laravel php framework version (https://laravel.com/) ]########### + # Laravel version color. + typeset -g POWERLEVEL9K_LARAVEL_VERSION_FOREGROUND=1 + typeset -g POWERLEVEL9K_LARAVEL_VERSION_BACKGROUND=7 + # Custom icon. + # typeset -g POWERLEVEL9K_LARAVEL_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #############[ rbenv: ruby version from rbenv (https://github.com/rbenv/rbenv) ]############## + # Rbenv color. + typeset -g POWERLEVEL9K_RBENV_FOREGROUND=0 + typeset -g POWERLEVEL9K_RBENV_BACKGROUND=1 + # Hide ruby version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_RBENV_SOURCES=(shell local global) + # If set to false, hide ruby version if it's the same as global: + # $(rbenv version-name) == $(rbenv global). + typeset -g POWERLEVEL9K_RBENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide ruby version if it's equal to "system". + typeset -g POWERLEVEL9K_RBENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_RBENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ####################[ java_version: java version (https://www.java.com/) ]#################### + # Java version color. + typeset -g POWERLEVEL9K_JAVA_VERSION_FOREGROUND=1 + typeset -g POWERLEVEL9K_JAVA_VERSION_BACKGROUND=7 + # Show java version only when in a java project subdirectory. + typeset -g POWERLEVEL9K_JAVA_VERSION_PROJECT_ONLY=true + # Show brief version. + typeset -g POWERLEVEL9K_JAVA_VERSION_FULL=false + # Custom icon. + # typeset -g POWERLEVEL9K_JAVA_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###[ package: name@version from package.json (https://docs.npmjs.com/files/package.json) ]#### + # Package color. + typeset -g POWERLEVEL9K_PACKAGE_FOREGROUND=0 + typeset -g POWERLEVEL9K_PACKAGE_BACKGROUND=6 + + # Package format. The following parameters are available within the expansion. + # + # - P9K_PACKAGE_NAME The value of `name` field in package.json. + # - P9K_PACKAGE_VERSION The value of `version` field in package.json. + # + # typeset -g POWERLEVEL9K_PACKAGE_CONTENT_EXPANSION='${P9K_PACKAGE_NAME//\%/%%}@${P9K_PACKAGE_VERSION//\%/%%}' + + # Custom icon. + # typeset -g POWERLEVEL9K_PACKAGE_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #######################[ rvm: ruby version from rvm (https://rvm.io) ]######################## + # Rvm color. + typeset -g POWERLEVEL9K_RVM_FOREGROUND=0 + typeset -g POWERLEVEL9K_RVM_BACKGROUND=240 + # Don't show @gemset at the end. + typeset -g POWERLEVEL9K_RVM_SHOW_GEMSET=false + # Don't show ruby- at the front. + typeset -g POWERLEVEL9K_RVM_SHOW_PREFIX=false + # Custom icon. + # typeset -g POWERLEVEL9K_RVM_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###########[ fvm: flutter version management (https://github.com/leoafarias/fvm) ]############ + # Fvm color. + typeset -g POWERLEVEL9K_FVM_FOREGROUND=0 + typeset -g POWERLEVEL9K_FVM_BACKGROUND=4 + # Custom icon. + # typeset -g POWERLEVEL9K_FVM_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##########[ luaenv: lua version from luaenv (https://github.com/cehoffman/luaenv) ]########### + # Lua color. + typeset -g POWERLEVEL9K_LUAENV_FOREGROUND=0 + typeset -g POWERLEVEL9K_LUAENV_BACKGROUND=4 + # Hide lua version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_LUAENV_SOURCES=(shell local global) + # If set to false, hide lua version if it's the same as global: + # $(luaenv version-name) == $(luaenv global). + typeset -g POWERLEVEL9K_LUAENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide lua version if it's equal to "system". + typeset -g POWERLEVEL9K_LUAENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_LUAENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###############[ jenv: java version from jenv (https://github.com/jenv/jenv) ]################ + # Java color. + typeset -g POWERLEVEL9K_JENV_FOREGROUND=1 + typeset -g POWERLEVEL9K_JENV_BACKGROUND=7 + # Hide java version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_JENV_SOURCES=(shell local global) + # If set to false, hide java version if it's the same as global: + # $(jenv version-name) == $(jenv global). + typeset -g POWERLEVEL9K_JENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide java version if it's equal to "system". + typeset -g POWERLEVEL9K_JENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_JENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###########[ plenv: perl version from plenv (https://github.com/tokuhirom/plenv) ]############ + # Perl color. + typeset -g POWERLEVEL9K_PLENV_FOREGROUND=0 + typeset -g POWERLEVEL9K_PLENV_BACKGROUND=4 + # Hide perl version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_PLENV_SOURCES=(shell local global) + # If set to false, hide perl version if it's the same as global: + # $(plenv version-name) == $(plenv global). + typeset -g POWERLEVEL9K_PLENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide perl version if it's equal to "system". + typeset -g POWERLEVEL9K_PLENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_PLENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###########[ perlbrew: perl version from perlbrew (https://github.com/gugod/App-perlbrew) ]############ + # Perlbrew color. + typeset -g POWERLEVEL9K_PERLBREW_FOREGROUND=67 + # Show perlbrew version only when in a perl project subdirectory. + typeset -g POWERLEVEL9K_PERLBREW_PROJECT_ONLY=true + # Don't show "perl-" at the front. + typeset -g POWERLEVEL9K_PERLBREW_SHOW_PREFIX=false + # Custom icon. + # typeset -g POWERLEVEL9K_PERLBREW_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ############[ phpenv: php version from phpenv (https://github.com/phpenv/phpenv) ]############ + # PHP color. + typeset -g POWERLEVEL9K_PHPENV_FOREGROUND=0 + typeset -g POWERLEVEL9K_PHPENV_BACKGROUND=5 + # Hide php version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_PHPENV_SOURCES=(shell local global) + # If set to false, hide php version if it's the same as global: + # $(phpenv version-name) == $(phpenv global). + typeset -g POWERLEVEL9K_PHPENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide PHP version if it's equal to "system". + typeset -g POWERLEVEL9K_PHPENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_PHPENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #######[ scalaenv: scala version from scalaenv (https://github.com/scalaenv/scalaenv) ]####### + # Scala color. + typeset -g POWERLEVEL9K_SCALAENV_FOREGROUND=0 + typeset -g POWERLEVEL9K_SCALAENV_BACKGROUND=1 + # Hide scala version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_SCALAENV_SOURCES=(shell local global) + # If set to false, hide scala version if it's the same as global: + # $(scalaenv version-name) == $(scalaenv global). + typeset -g POWERLEVEL9K_SCALAENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide scala version if it's equal to "system". + typeset -g POWERLEVEL9K_SCALAENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_SCALAENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##########[ haskell_stack: haskell version from stack (https://haskellstack.org/) ]########### + # Haskell color. + typeset -g POWERLEVEL9K_HASKELL_STACK_FOREGROUND=0 + typeset -g POWERLEVEL9K_HASKELL_STACK_BACKGROUND=3 + + # Hide haskell version if it doesn't come from one of these sources. + # + # shell: version is set by STACK_YAML + # local: version is set by stack.yaml up the directory tree + # global: version is set by the implicit global project (~/.stack/global-project/stack.yaml) + typeset -g POWERLEVEL9K_HASKELL_STACK_SOURCES=(shell local) + # If set to false, hide haskell version if it's the same as in the implicit global project. + typeset -g POWERLEVEL9K_HASKELL_STACK_ALWAYS_SHOW=true + # Custom icon. + # typeset -g POWERLEVEL9K_HASKELL_STACK_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ################[ terraform: terraform workspace (https://www.terraform.io) ]################# + # Don't show terraform workspace if it's literally "default". + typeset -g POWERLEVEL9K_TERRAFORM_SHOW_DEFAULT=false + # POWERLEVEL9K_TERRAFORM_CLASSES is an array with even number of elements. The first element + # in each pair defines a pattern against which the current terraform workspace gets matched. + # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below) + # that gets matched. If you unset all POWERLEVEL9K_TERRAFORM_*CONTENT_EXPANSION parameters, + # you'll see this value in your prompt. The second element of each pair in + # POWERLEVEL9K_TERRAFORM_CLASSES defines the workspace class. Patterns are tried in order. The + # first match wins. + # + # For example, given these settings: + # + # typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=( + # '*prod*' PROD + # '*test*' TEST + # '*' OTHER) + # + # If your current terraform workspace is "project_test", its class is TEST because "project_test" + # doesn't match the pattern '*prod*' but does match '*test*'. + # + # You can define different colors, icons and content expansions for different classes: + # + # typeset -g POWERLEVEL9K_TERRAFORM_TEST_FOREGROUND=2 + # typeset -g POWERLEVEL9K_TERRAFORM_TEST_BACKGROUND=0 + # typeset -g POWERLEVEL9K_TERRAFORM_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_TERRAFORM_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <' + typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=( + # '*prod*' PROD # These values are examples that are unlikely + # '*test*' TEST # to match your needs. Customize them as needed. + '*' OTHER) + typeset -g POWERLEVEL9K_TERRAFORM_OTHER_FOREGROUND=4 + typeset -g POWERLEVEL9K_TERRAFORM_OTHER_BACKGROUND=0 + # typeset -g POWERLEVEL9K_TERRAFORM_OTHER_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #############[ terraform_version: terraform version (https://www.terraform.io) ]############## + # Terraform version color. + typeset -g POWERLEVEL9K_TERRAFORM_VERSION_FOREGROUND=4 + typeset -g POWERLEVEL9K_TERRAFORM_VERSION_BACKGROUND=0 + # Custom icon. + # typeset -g POWERLEVEL9K_TERRAFORM_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]############# + # Show kubecontext only when the command you are typing invokes one of these tools. + # Tip: Remove the next line to always show kubecontext. + typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile|flux|fluxctl|stern|kubeseal|skaffold|kubent|kubecolor|cmctl|sparkctl' + + # Kubernetes context classes for the purpose of using different colors, icons and expansions with + # different contexts. + # + # POWERLEVEL9K_KUBECONTEXT_CLASSES is an array with even number of elements. The first element + # in each pair defines a pattern against which the current kubernetes context gets matched. + # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below) + # that gets matched. If you unset all POWERLEVEL9K_KUBECONTEXT_*CONTENT_EXPANSION parameters, + # you'll see this value in your prompt. The second element of each pair in + # POWERLEVEL9K_KUBECONTEXT_CLASSES defines the context class. Patterns are tried in order. The + # first match wins. + # + # For example, given these settings: + # + # typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=( + # '*prod*' PROD + # '*test*' TEST + # '*' DEFAULT) + # + # If your current kubernetes context is "deathray-testing/default", its class is TEST + # because "deathray-testing/default" doesn't match the pattern '*prod*' but does match '*test*'. + # + # You can define different colors, icons and content expansions for different classes: + # + # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_FOREGROUND=0 + # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_BACKGROUND=2 + # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <' + typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=( + # '*prod*' PROD # These values are examples that are unlikely + # '*test*' TEST # to match your needs. Customize them as needed. + '*' DEFAULT) + typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_FOREGROUND=7 + typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_BACKGROUND=5 + # typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐' + + # Use POWERLEVEL9K_KUBECONTEXT_CONTENT_EXPANSION to specify the content displayed by kubecontext + # segment. Parameter expansions are very flexible and fast, too. See reference: + # http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion. + # + # Within the expansion the following parameters are always available: + # + # - P9K_CONTENT The content that would've been displayed if there was no content + # expansion defined. + # - P9K_KUBECONTEXT_NAME The current context's name. Corresponds to column NAME in the + # output of `kubectl config get-contexts`. + # - P9K_KUBECONTEXT_CLUSTER The current context's cluster. Corresponds to column CLUSTER in the + # output of `kubectl config get-contexts`. + # - P9K_KUBECONTEXT_NAMESPACE The current context's namespace. Corresponds to column NAMESPACE + # in the output of `kubectl config get-contexts`. If there is no + # namespace, the parameter is set to "default". + # - P9K_KUBECONTEXT_USER The current context's user. Corresponds to column AUTHINFO in the + # output of `kubectl config get-contexts`. + # + # If the context points to Google Kubernetes Engine (GKE) or Elastic Kubernetes Service (EKS), + # the following extra parameters are available: + # + # - P9K_KUBECONTEXT_CLOUD_NAME Either "gke" or "eks". + # - P9K_KUBECONTEXT_CLOUD_ACCOUNT Account/project ID. + # - P9K_KUBECONTEXT_CLOUD_ZONE Availability zone. + # - P9K_KUBECONTEXT_CLOUD_CLUSTER Cluster. + # + # P9K_KUBECONTEXT_CLOUD_* parameters are derived from P9K_KUBECONTEXT_CLUSTER. For example, + # if P9K_KUBECONTEXT_CLUSTER is "gke_my-account_us-east1-a_my-cluster-01": + # + # - P9K_KUBECONTEXT_CLOUD_NAME=gke + # - P9K_KUBECONTEXT_CLOUD_ACCOUNT=my-account + # - P9K_KUBECONTEXT_CLOUD_ZONE=us-east1-a + # - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01 + # + # If P9K_KUBECONTEXT_CLUSTER is "arn:aws:eks:us-east-1:123456789012:cluster/my-cluster-01": + # + # - P9K_KUBECONTEXT_CLOUD_NAME=eks + # - P9K_KUBECONTEXT_CLOUD_ACCOUNT=123456789012 + # - P9K_KUBECONTEXT_CLOUD_ZONE=us-east-1 + # - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01 + typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION= + # Show P9K_KUBECONTEXT_CLOUD_CLUSTER if it's not empty and fall back to P9K_KUBECONTEXT_NAME. + POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${P9K_KUBECONTEXT_CLOUD_CLUSTER:-${P9K_KUBECONTEXT_NAME}}' + # Append the current context's namespace if it's not "default". + POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${${:-/$P9K_KUBECONTEXT_NAMESPACE}:#/default}' + + # Custom prefix. + typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX='at ' + + #[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]# + # Show aws only when the command you are typing invokes one of these tools. + # Tip: Remove the next line to always show aws. + typeset -g POWERLEVEL9K_AWS_SHOW_ON_COMMAND='aws|awless|cdk|terraform|tofu|pulumi|terragrunt' + + # POWERLEVEL9K_AWS_CLASSES is an array with even number of elements. The first element + # in each pair defines a pattern against which the current AWS profile gets matched. + # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below) + # that gets matched. If you unset all POWERLEVEL9K_AWS_*CONTENT_EXPANSION parameters, + # you'll see this value in your prompt. The second element of each pair in + # POWERLEVEL9K_AWS_CLASSES defines the profile class. Patterns are tried in order. The + # first match wins. + # + # For example, given these settings: + # + # typeset -g POWERLEVEL9K_AWS_CLASSES=( + # '*prod*' PROD + # '*test*' TEST + # '*' DEFAULT) + # + # If your current AWS profile is "company_test", its class is TEST + # because "company_test" doesn't match the pattern '*prod*' but does match '*test*'. + # + # You can define different colors, icons and content expansions for different classes: + # + # typeset -g POWERLEVEL9K_AWS_TEST_FOREGROUND=28 + # typeset -g POWERLEVEL9K_AWS_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_AWS_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <' + typeset -g POWERLEVEL9K_AWS_CLASSES=( + # '*prod*' PROD # These values are examples that are unlikely + # '*test*' TEST # to match your needs. Customize them as needed. + '*' DEFAULT) + typeset -g POWERLEVEL9K_AWS_DEFAULT_FOREGROUND=7 + typeset -g POWERLEVEL9K_AWS_DEFAULT_BACKGROUND=1 + # typeset -g POWERLEVEL9K_AWS_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐' + + # AWS segment format. The following parameters are available within the expansion. + # + # - P9K_AWS_PROFILE The name of the current AWS profile. + # - P9K_AWS_REGION The region associated with the current AWS profile. + typeset -g POWERLEVEL9K_AWS_CONTENT_EXPANSION='${P9K_AWS_PROFILE//\%/%%}${P9K_AWS_REGION:+ ${P9K_AWS_REGION//\%/%%}}' + + #[ aws_eb_env: aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/) ]# + # AWS Elastic Beanstalk environment color. + typeset -g POWERLEVEL9K_AWS_EB_ENV_FOREGROUND=2 + typeset -g POWERLEVEL9K_AWS_EB_ENV_BACKGROUND=0 + # Custom icon. + # typeset -g POWERLEVEL9K_AWS_EB_ENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##########[ azure: azure account name (https://docs.microsoft.com/en-us/cli/azure) ]########## + # Show azure only when the command you are typing invokes one of these tools. + # Tip: Remove the next line to always show azure. + typeset -g POWERLEVEL9K_AZURE_SHOW_ON_COMMAND='az|terraform|tofu|pulumi|terragrunt' + + # POWERLEVEL9K_AZURE_CLASSES is an array with even number of elements. The first element + # in each pair defines a pattern against which the current azure account name gets matched. + # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below) + # that gets matched. If you unset all POWERLEVEL9K_AZURE_*CONTENT_EXPANSION parameters, + # you'll see this value in your prompt. The second element of each pair in + # POWERLEVEL9K_AZURE_CLASSES defines the account class. Patterns are tried in order. The + # first match wins. + # + # For example, given these settings: + # + # typeset -g POWERLEVEL9K_AZURE_CLASSES=( + # '*prod*' PROD + # '*test*' TEST + # '*' OTHER) + # + # If your current azure account is "company_test", its class is TEST because "company_test" + # doesn't match the pattern '*prod*' but does match '*test*'. + # + # You can define different colors, icons and content expansions for different classes: + # + # typeset -g POWERLEVEL9K_AZURE_TEST_FOREGROUND=2 + # typeset -g POWERLEVEL9K_AZURE_TEST_BACKGROUND=0 + # typeset -g POWERLEVEL9K_AZURE_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_AZURE_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <' + typeset -g POWERLEVEL9K_AZURE_CLASSES=( + # '*prod*' PROD # These values are examples that are unlikely + # '*test*' TEST # to match your needs. Customize them as needed. + '*' OTHER) + + # Azure account name color. + typeset -g POWERLEVEL9K_AZURE_OTHER_FOREGROUND=7 + typeset -g POWERLEVEL9K_AZURE_OTHER_BACKGROUND=4 + # Custom icon. + # typeset -g POWERLEVEL9K_AZURE_OTHER_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##########[ gcloud: google cloud account and project (https://cloud.google.com/) ]########### + # Show gcloud only when the command you are typing invokes one of these tools. + # Tip: Remove the next line to always show gcloud. + typeset -g POWERLEVEL9K_GCLOUD_SHOW_ON_COMMAND='gcloud|gcs|gsutil' + # Google cloud color. + typeset -g POWERLEVEL9K_GCLOUD_FOREGROUND=7 + typeset -g POWERLEVEL9K_GCLOUD_BACKGROUND=4 + + # Google cloud format. Change the value of POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION and/or + # POWERLEVEL9K_GCLOUD_COMPLETE_CONTENT_EXPANSION if the default is too verbose or not informative + # enough. You can use the following parameters in the expansions. Each of them corresponds to the + # output of `gcloud` tool. + # + # Parameter | Source + # -------------------------|-------------------------------------------------------------------- + # P9K_GCLOUD_CONFIGURATION | gcloud config configurations list --format='value(name)' + # P9K_GCLOUD_ACCOUNT | gcloud config get-value account + # P9K_GCLOUD_PROJECT_ID | gcloud config get-value project + # P9K_GCLOUD_PROJECT_NAME | gcloud projects describe $P9K_GCLOUD_PROJECT_ID --format='value(name)' + # + # Note: ${VARIABLE//\%/%%} expands to ${VARIABLE} with all occurrences of '%' replaced with '%%'. + # + # Obtaining project name requires sending a request to Google servers. This can take a long time + # and even fail. When project name is unknown, P9K_GCLOUD_PROJECT_NAME is not set and gcloud + # prompt segment is in state PARTIAL. When project name gets known, P9K_GCLOUD_PROJECT_NAME gets + # set and gcloud prompt segment transitions to state COMPLETE. + # + # You can customize the format, icon and colors of gcloud segment separately for states PARTIAL + # and COMPLETE. You can also hide gcloud in state PARTIAL by setting + # POWERLEVEL9K_GCLOUD_PARTIAL_VISUAL_IDENTIFIER_EXPANSION and + # POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION to empty. + typeset -g POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION='${P9K_GCLOUD_PROJECT_ID//\%/%%}' + typeset -g POWERLEVEL9K_GCLOUD_COMPLETE_CONTENT_EXPANSION='${P9K_GCLOUD_PROJECT_NAME//\%/%%}' + + # Send a request to Google (by means of `gcloud projects describe ...`) to obtain project name + # this often. Negative value disables periodic polling. In this mode project name is retrieved + # only when the current configuration, account or project id changes. + typeset -g POWERLEVEL9K_GCLOUD_REFRESH_PROJECT_NAME_SECONDS=60 + + # Custom icon. + # typeset -g POWERLEVEL9K_GCLOUD_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #[ google_app_cred: google application credentials (https://cloud.google.com/docs/authentication/production) ]# + # Show google_app_cred only when the command you are typing invokes one of these tools. + # Tip: Remove the next line to always show google_app_cred. + typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_SHOW_ON_COMMAND='terraform|tofu|pulumi|terragrunt' + + # Google application credentials classes for the purpose of using different colors, icons and + # expansions with different credentials. + # + # POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES is an array with even number of elements. The first + # element in each pair defines a pattern against which the current kubernetes context gets + # matched. More specifically, it's P9K_CONTENT prior to the application of context expansion + # (see below) that gets matched. If you unset all POWERLEVEL9K_GOOGLE_APP_CRED_*CONTENT_EXPANSION + # parameters, you'll see this value in your prompt. The second element of each pair in + # POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES defines the context class. Patterns are tried in order. + # The first match wins. + # + # For example, given these settings: + # + # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES=( + # '*:*prod*:*' PROD + # '*:*test*:*' TEST + # '*' DEFAULT) + # + # If your current Google application credentials is "service_account deathray-testing x@y.com", + # its class is TEST because it doesn't match the pattern '* *prod* *' but does match '* *test* *'. + # + # You can define different colors, icons and content expansions for different classes: + # + # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_FOREGROUND=28 + # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_CONTENT_EXPANSION='$P9K_GOOGLE_APP_CRED_PROJECT_ID' + typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES=( + # '*:*prod*:*' PROD # These values are examples that are unlikely + # '*:*test*:*' TEST # to match your needs. Customize them as needed. + '*' DEFAULT) + typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_FOREGROUND=7 + typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_BACKGROUND=4 + # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐' + + # Use POWERLEVEL9K_GOOGLE_APP_CRED_CONTENT_EXPANSION to specify the content displayed by + # google_app_cred segment. Parameter expansions are very flexible and fast, too. See reference: + # http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion. + # + # You can use the following parameters in the expansion. Each of them corresponds to one of the + # fields in the JSON file pointed to by GOOGLE_APPLICATION_CREDENTIALS. + # + # Parameter | JSON key file field + # ---------------------------------+--------------- + # P9K_GOOGLE_APP_CRED_TYPE | type + # P9K_GOOGLE_APP_CRED_PROJECT_ID | project_id + # P9K_GOOGLE_APP_CRED_CLIENT_EMAIL | client_email + # + # Note: ${VARIABLE//\%/%%} expands to ${VARIABLE} with all occurrences of '%' replaced by '%%'. + typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_CONTENT_EXPANSION='${P9K_GOOGLE_APP_CRED_PROJECT_ID//\%/%%}' + + ##############[ toolbox: toolbox name (https://github.com/containers/toolbox) ]############### + # Toolbox color. + typeset -g POWERLEVEL9K_TOOLBOX_FOREGROUND=0 + typeset -g POWERLEVEL9K_TOOLBOX_BACKGROUND=3 + # Don't display the name of the toolbox if it matches fedora-toolbox-*. + typeset -g POWERLEVEL9K_TOOLBOX_CONTENT_EXPANSION='${P9K_TOOLBOX_NAME:#fedora-toolbox-*}' + # Custom icon. + # typeset -g POWERLEVEL9K_TOOLBOX_VISUAL_IDENTIFIER_EXPANSION='⭐' + # Custom prefix. + typeset -g POWERLEVEL9K_TOOLBOX_PREFIX='in ' + + ###############################[ public_ip: public IP address ]############################### + # Public IP color. + typeset -g POWERLEVEL9K_PUBLIC_IP_FOREGROUND=7 + typeset -g POWERLEVEL9K_PUBLIC_IP_BACKGROUND=0 + # Custom icon. + # typeset -g POWERLEVEL9K_PUBLIC_IP_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ########################[ vpn_ip: virtual private network indicator ]######################### + # VPN IP color. + typeset -g POWERLEVEL9K_VPN_IP_FOREGROUND=0 + typeset -g POWERLEVEL9K_VPN_IP_BACKGROUND=6 + # When on VPN, show just an icon without the IP address. + # Tip: To display the private IP address when on VPN, remove the next line. + typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION= + # Regular expression for the VPN network interface. Run `ifconfig` or `ip -4 a show` while on VPN + # to see the name of the interface. + typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(gpd|wg|(.*tun)|tailscale)[0-9]*|(zt.*)' + # If set to true, show one segment per matching network interface. If set to false, show only + # one segment corresponding to the first matching network interface. + # Tip: If you set it to true, you'll probably want to unset POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION. + typeset -g POWERLEVEL9K_VPN_IP_SHOW_ALL=false + # Custom icon. + # typeset -g POWERLEVEL9K_VPN_IP_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###########[ ip: ip address and bandwidth usage for a specified network interface ]########### + # IP color. + typeset -g POWERLEVEL9K_IP_BACKGROUND=4 + typeset -g POWERLEVEL9K_IP_FOREGROUND=0 + # The following parameters are accessible within the expansion: + # + # Parameter | Meaning + # ----------------------+------------------------------------------- + # P9K_IP_IP | IP address + # P9K_IP_INTERFACE | network interface + # P9K_IP_RX_BYTES | total number of bytes received + # P9K_IP_TX_BYTES | total number of bytes sent + # P9K_IP_RX_BYTES_DELTA | number of bytes received since last prompt + # P9K_IP_TX_BYTES_DELTA | number of bytes sent since last prompt + # P9K_IP_RX_RATE | receive rate (since last prompt) + # P9K_IP_TX_RATE | send rate (since last prompt) + typeset -g POWERLEVEL9K_IP_CONTENT_EXPANSION='${P9K_IP_RX_RATE:+⇣$P9K_IP_RX_RATE }${P9K_IP_TX_RATE:+⇡$P9K_IP_TX_RATE }$P9K_IP_IP' + # Show information for the first network interface whose name matches this regular expression. + # Run `ifconfig` or `ip -4 a show` to see the names of all network interfaces. + typeset -g POWERLEVEL9K_IP_INTERFACE='[ew].*' + # Custom icon. + # typeset -g POWERLEVEL9K_IP_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #########################[ proxy: system-wide http/https/ftp proxy ]########################## + # Proxy color. + typeset -g POWERLEVEL9K_PROXY_FOREGROUND=4 + typeset -g POWERLEVEL9K_PROXY_BACKGROUND=0 + # Custom icon. + # typeset -g POWERLEVEL9K_PROXY_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ################################[ battery: internal battery ]################################# + # Show battery in red when it's below this level and not connected to power supply. + typeset -g POWERLEVEL9K_BATTERY_LOW_THRESHOLD=20 + typeset -g POWERLEVEL9K_BATTERY_LOW_FOREGROUND=1 + # Show battery in green when it's charging or fully charged. + typeset -g POWERLEVEL9K_BATTERY_{CHARGING,CHARGED}_FOREGROUND=2 + # Show battery in yellow when it's discharging. + typeset -g POWERLEVEL9K_BATTERY_DISCONNECTED_FOREGROUND=3 + # Battery pictograms going from low to high level of charge. + typeset -g POWERLEVEL9K_BATTERY_STAGES='\UF008E\UF007A\UF007B\UF007C\UF007D\UF007E\UF007F\UF0080\UF0081\UF0082\UF0079' + # Don't show the remaining time to charge/discharge. + typeset -g POWERLEVEL9K_BATTERY_VERBOSE=false + typeset -g POWERLEVEL9K_BATTERY_BACKGROUND=0 + + #####################################[ wifi: wifi speed ]##################################### + # WiFi color. + typeset -g POWERLEVEL9K_WIFI_FOREGROUND=0 + typeset -g POWERLEVEL9K_WIFI_BACKGROUND=4 + # Custom icon. + # typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='⭐' + + # Use different colors and icons depending on signal strength ($P9K_WIFI_BARS). + # + # # Wifi colors and icons for different signal strength levels (low to high). + # typeset -g my_wifi_fg=(0 0 0 0 0) # <-- change these values + # typeset -g my_wifi_icon=('WiFi' 'WiFi' 'WiFi' 'WiFi' 'WiFi') # <-- change these values + # + # typeset -g POWERLEVEL9K_WIFI_CONTENT_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}$P9K_WIFI_LAST_TX_RATE Mbps' + # typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}${my_wifi_icon[P9K_WIFI_BARS+1]}' + # + # The following parameters are accessible within the expansions: + # + # Parameter | Meaning + # ----------------------+--------------- + # P9K_WIFI_SSID | service set identifier, a.k.a. network name + # P9K_WIFI_LINK_AUTH | authentication protocol such as "wpa2-psk" or "none"; empty if unknown + # P9K_WIFI_LAST_TX_RATE | wireless transmit rate in megabits per second + # P9K_WIFI_RSSI | signal strength in dBm, from -120 to 0 + # P9K_WIFI_NOISE | noise in dBm, from -120 to 0 + # P9K_WIFI_BARS | signal strength in bars, from 0 to 4 (derived from P9K_WIFI_RSSI and P9K_WIFI_NOISE) + + ####################################[ time: current time ]#################################### + # Current time color. + typeset -g POWERLEVEL9K_TIME_FOREGROUND=0 + typeset -g POWERLEVEL9K_TIME_BACKGROUND=7 + # Format for the current time: 09:51:02. See `man 3 strftime`. + typeset -g POWERLEVEL9K_TIME_FORMAT='%D{%H:%M:%S}' + # If set to true, time will update when you hit enter. This way prompts for the past + # commands will contain the start times of their commands as opposed to the default + # behavior where they contain the end times of their preceding commands. + typeset -g POWERLEVEL9K_TIME_UPDATE_ON_COMMAND=false + # Custom icon. + # typeset -g POWERLEVEL9K_TIME_VISUAL_IDENTIFIER_EXPANSION='⭐' + # Custom prefix. + typeset -g POWERLEVEL9K_TIME_PREFIX='at ' + + # Example of a user-defined prompt segment. Function prompt_example will be called on every + # prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or + # POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and yellow text on red background + # greeting the user. + # + # Type `p10k help segment` for documentation and a more sophisticated example. + function prompt_example() { + p10k segment -b 1 -f 3 -i '⭐' -t 'hello, %n' + } + + # User-defined prompt segments may optionally provide an instant_prompt_* function. Its job + # is to generate the prompt segment for display in instant prompt. See + # https://github.com/romkatv/powerlevel10k#instant-prompt. + # + # Powerlevel10k will call instant_prompt_* at the same time as the regular prompt_* function + # and will record all `p10k segment` calls it makes. When displaying instant prompt, Powerlevel10k + # will replay these calls without actually calling instant_prompt_*. It is imperative that + # instant_prompt_* always makes the same `p10k segment` calls regardless of environment. If this + # rule is not observed, the content of instant prompt will be incorrect. + # + # Usually, you should either not define instant_prompt_* or simply call prompt_* from it. If + # instant_prompt_* is not defined for a segment, the segment won't be shown in instant prompt. + function instant_prompt_example() { + # Since prompt_example always makes the same `p10k segment` calls, we can call it from + # instant_prompt_example. This will give us the same `example` prompt segment in the instant + # and regular prompts. + prompt_example + } + + # User-defined prompt segments can be customized the same way as built-in segments. + typeset -g POWERLEVEL9K_EXAMPLE_FOREGROUND=3 + typeset -g POWERLEVEL9K_EXAMPLE_BACKGROUND=1 + # typeset -g POWERLEVEL9K_EXAMPLE_VISUAL_IDENTIFIER_EXPANSION='⭐' + + # Transient prompt works similarly to the builtin transient_rprompt option. It trims down prompt + # when accepting a command line. Supported values: + # + # - off: Don't change prompt when accepting a command line. + # - always: Trim down prompt when accepting a command line. + # - same-dir: Trim down prompt when accepting a command line unless this is the first command + # typed after changing current working directory. + typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=always + + # Instant prompt mode. + # + # - off: Disable instant prompt. Choose this if you've tried instant prompt and found + # it incompatible with your zsh configuration files. + # - quiet: Enable instant prompt and don't print warnings when detecting console output + # during zsh initialization. Choose this if you've read and understood + # https://github.com/romkatv/powerlevel10k#instant-prompt. + # - verbose: Enable instant prompt and print a warning when detecting console output during + # zsh initialization. Choose this if you've never tried instant prompt, haven't + # seen the warning, or if you are unsure what this all means. + typeset -g POWERLEVEL9K_INSTANT_PROMPT=verbose + + # Hot reload allows you to change POWERLEVEL9K options after Powerlevel10k has been initialized. + # For example, you can type POWERLEVEL9K_BACKGROUND=red and see your prompt turn red. Hot reload + # can slow down prompt by 1-2 milliseconds, so it's better to keep it turned off unless you + # really need it. + typeset -g POWERLEVEL9K_DISABLE_HOT_RELOAD=true + + # If p10k is already loaded, reload configuration. + # This works even with POWERLEVEL9K_DISABLE_HOT_RELOAD=true. + (( ! $+functions[p10k] )) || p10k reload +} + +# Tell `p10k configure` which file it should overwrite. +typeset -g POWERLEVEL9K_CONFIG_FILE=${${(%):-%x}:a} + +(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]} +'builtin' 'unset' 'p10k_config_opts' diff --git a/linux/zsh/.zshrc b/linux/zsh/.zshrc index b61810a..d804090 100644 --- a/linux/zsh/.zshrc +++ b/linux/zsh/.zshrc @@ -1,28 +1,29 @@ -# ─── SDKMAN (MUST BE BEFORE POWERLEVEL10K) ───────────────────────────── -export SDKMAN_DIR="$HOME/.sdkman" -[[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh" - +# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc. +# Initialization code that may require console input (password prompts, [y/n] +# confirmations, etc.) must go above this block; everything else may go below. +# if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then +# source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" +# fi # Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc. # Initialization code that may require console input (password prompts, [y/n] # confirmations, etc.) must go above this block; everything else may go below. -if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then - source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" -fi +# if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then +# source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" +# fi # If you come from bash you might have to change your $PATH. # export PATH=$HOME/bin:$HOME/.local/bin:/usr/local/bin:$PATH # Path to your Oh My Zsh installation. export ZSH="$HOME/.oh-my-zsh" -export ZSH_COMPDUMP="$ZDOTDIR/.zcompdump" # Set name of the theme to load --- if set to "random", it will # load a random theme each time Oh My Zsh is loaded, in which case, # to know which specific one was loaded, run: echo $RANDOM_THEME # See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes # ZSH_THEME="robbyrussell" -ZSH_THEME="powerlevel10k/powerlevel10k" +# ZSH_THEME="powerlevel10k/powerlevel10k" # Set list of themes to pick from when loading at random # Setting this variable when ZSH_THEME=random will cause zsh to load @@ -85,12 +86,11 @@ ZSH_THEME="powerlevel10k/powerlevel10k" # Example format: plugins=(rails git textmate ruby lighthouse) # Add wisely, as too many plugins slow down shell startup. plugins=( - git - fzf - zsh-syntax-highlighting - zsh-autosuggestions + git + fzf + zsh-syntax-highlighting + zsh-autosuggestions ) - source $ZSH/oh-my-zsh.sh # User configuration @@ -119,9 +119,8 @@ source $ZSH/oh-my-zsh.sh # For a full list of active aliases, run `alias`. # # Example aliases -# alias zshconfig="mate ~/.zshrc" +alias zshconfig="nvim ~/.zshrc" # alias ohmyzsh="mate ~/.oh-my-zsh" -# alias cat='bat --paging=never' alias grep='rg' alias ogrep='grep' @@ -133,14 +132,18 @@ alias vi="nvim" setopt complete_aliases # To customize prompt, run `p10k configure` or edit ~/.p10k.zsh. -[[ ! -f ~/.config/zsh/.p10k.zsh ]] || source ~/.config/zsh/.p10k.zsh +# [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh -eval "$(zoxide init zsh)" +eval "$(starship init zsh)" + +# opencode +export PATH=/home/gazzd/.opencode/bin:$PATH -export PYENV_ROOT="$HOME/.pyenv" -[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH" -eval "$(pyenv init - zsh)" +# Activate mise (version manager tool) +eval "$($HOME/.local/bin/mise activate zsh)" -export NVM_DIR="$HOME/.config/nvm" -[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm -[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion +# Activate zoxide (better cd) +eval "$(zoxide init zsh)" + +# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh. +# [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh From f3252c6ff22082376f2aa29400644177646f4638 Mon Sep 17 00:00:00 2001 From: GazzD Date: Sat, 11 Apr 2026 22:40:39 +0200 Subject: [PATCH 2/8] Adds thunar basic config --- linux/thunar/.config/Thunar/accels.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/linux/thunar/.config/Thunar/accels.scm b/linux/thunar/.config/Thunar/accels.scm index 24d5a23..a31d053 100644 --- a/linux/thunar/.config/Thunar/accels.scm +++ b/linux/thunar/.config/Thunar/accels.scm @@ -79,10 +79,10 @@ ; (gtk_accel_path "/ThunarActionManager/move-to-trash" "") ; (gtk_accel_path "/ThunarWindow/reload-alt-1" "F5") ; (gtk_accel_path "/ThunarActionManager/delete-3" "KP_Delete") -; (gtk_accel_path "/ThunarStandardView/unselect-all-files" "Escape") +; (gtk_accel_path "/ThunarStandardView/sort-by-mtime" "") ; (gtk_accel_path "/ThunarWindow/contents/help-menu" "") ; (gtk_accel_path "/ThunarStandardView/arrange-items-menu" "") -; (gtk_accel_path "/ThunarStandardView/sort-by-mtime" "") +; (gtk_accel_path "/ThunarStandardView/unselect-all-files" "Escape") ; (gtk_accel_path "/ThunarWindow/open-computer" "") ; (gtk_accel_path "/ThunarWindow/toggle-image-preview" "") ; (gtk_accel_path "/ThunarWindow/toggle-side-pane" "F9") From 9f9b88cd6777f2538925712fd0427ef581ed508a Mon Sep 17 00:00:00 2001 From: GazzD Date: Sun, 12 Apr 2026 22:12:18 +0200 Subject: [PATCH 3/8] Enhance hyprland config to allow multiple shells --- linux/hypr/.config/hypr/hyprland.conf | 12 +- linux/hypr/.config/hypr/hyprland/colors.conf | 18 +- linux/hypr/.config/hypr/hyprlock/colors.conf | 10 +- linux/hypr/.config/hypr/shared/env.conf | 23 ++ linux/hypr/.config/hypr/shared/execs.conf | 8 + linux/hypr/.config/hypr/shared/general.conf | 84 ++++++ linux/hypr/.config/hypr/shared/keybinds.conf | 62 ++++ linux/hypr/.config/hypr/shared/rules.conf | 12 + linux/hypr/.config/hypr/shared/variables.conf | 25 ++ linux/starship/.config/starship.toml | 276 +++++++++++++----- linux/zsh/.zshrc | 1 + 11 files changed, 435 insertions(+), 96 deletions(-) create mode 100644 linux/hypr/.config/hypr/shared/env.conf create mode 100644 linux/hypr/.config/hypr/shared/execs.conf create mode 100644 linux/hypr/.config/hypr/shared/general.conf create mode 100644 linux/hypr/.config/hypr/shared/keybinds.conf create mode 100644 linux/hypr/.config/hypr/shared/rules.conf create mode 100644 linux/hypr/.config/hypr/shared/variables.conf diff --git a/linux/hypr/.config/hypr/hyprland.conf b/linux/hypr/.config/hypr/hyprland.conf index 6a19a57..209adeb 100644 --- a/linux/hypr/.config/hypr/hyprland.conf +++ b/linux/hypr/.config/hypr/hyprland.conf @@ -1,6 +1,14 @@ -# This file sources other files in `hyprland` and `custom` folders -# You wanna add your stuff in files in `custom` +# This file sources other files in `hyprland` and `shared` folders +# You wanna add your stuff in files in `shared` $profile = ii source = $profile/hyprland.conf + +# --- Shared configuration for all profiles --- +source=shared/env.conf +source=shared/variables.conf +source=shared/execs.conf +source=shared/general.conf +source=shared/rules.conf +source=shared/keybinds.conf diff --git a/linux/hypr/.config/hypr/hyprland/colors.conf b/linux/hypr/.config/hypr/hyprland/colors.conf index 72aabd2..9758514 100644 --- a/linux/hypr/.config/hypr/hyprland/colors.conf +++ b/linux/hypr/.config/hypr/hyprland/colors.conf @@ -1,10 +1,10 @@ general { - col.active_border = rgba(91909177) - col.inactive_border = rgba(46474755) + col.active_border = rgba(90909a77) + col.inactive_border = rgba(45464f55) } misc { - background_color = rgba(121314FF) + background_color = rgba(121318FF) } plugin { @@ -17,16 +17,16 @@ plugin { bar_precedence_over_border = true bar_part_of_window = true - bar_color = rgba(121314FF) - col.text = rgba(e3e2e2FF) + bar_color = rgba(121318FF) + col.text = rgba(e3e1e9FF) # example buttons (R -> L) # hyprbars-button = color, size, on-click - hyprbars-button = rgb(e3e2e2), 13, 󰖭, hyprctl dispatch killactive - hyprbars-button = rgb(e3e2e2), 13, 󰖯, hyprctl dispatch fullscreen 1 - hyprbars-button = rgb(e3e2e2), 13, 󰖰, hyprctl dispatch movetoworkspacesilent special + hyprbars-button = rgb(e3e1e9), 13, 󰖭, hyprctl dispatch killactive + hyprbars-button = rgb(e3e1e9), 13, 󰖯, hyprctl dispatch fullscreen 1 + hyprbars-button = rgb(e3e1e9), 13, 󰖰, hyprctl dispatch movetoworkspacesilent special } } -windowrule = border_color rgba(bac9d1AA) rgba(bac9d177), match:pin 1 +windowrule = border_color rgba(b6c4ffAA) rgba(b6c4ff77), match:pin 1 diff --git a/linux/hypr/.config/hypr/hyprlock/colors.conf b/linux/hypr/.config/hypr/hyprlock/colors.conf index aac599f..f660590 100644 --- a/linux/hypr/.config/hypr/hyprlock/colors.conf +++ b/linux/hypr/.config/hypr/hyprlock/colors.conf @@ -1,12 +1,12 @@ # This configuration is generated by matugen # Changing these variables with matugen still enabled will overwrite them. -$text_color = rgba(d6e5edFF) -$entry_background_color = rgba(101d2311) -$entry_border_color = rgba(91909155) -$entry_color = rgba(d6e5edFF) +$text_color = rgba(dce1ffFF) +$entry_background_color = rgba(04174b11) +$entry_border_color = rgba(90909a55) +$entry_color = rgba(dce1ffFF) $font_family = Google Sans Flex Medium $font_family_clock = Google Sans Flex Medium $font_material_symbols = Material Symbols Rounded -$background_image = /home/gazzd/Pictures/Wallpapers/wallhaven-3qwmz3.jpg \ No newline at end of file +$background_image = /home/gazzd/Pictures/Wallpapers/random_wallpaper-1.png \ No newline at end of file diff --git a/linux/hypr/.config/hypr/shared/env.conf b/linux/hypr/.config/hypr/shared/env.conf new file mode 100644 index 0000000..6ba3cdd --- /dev/null +++ b/linux/hypr/.config/hypr/shared/env.conf @@ -0,0 +1,23 @@ +# hyprlang noerror false +# You can put extra environment variables here +# https://wiki.hyprland.org/Configuring/Environment-variables/ + +# ######### Input method ########## +# See https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland +#env = QT_IM_MODULE, fcitx +#env = XMODIFIERS, @im=fcitx +#env = SDL_IM_MODULE, fcitx +#env = GLFW_IM_MODULE, ibus +#env = INPUT_METHOD, fcitx + +# ######## Wayland ######### +# Tearing +# env = WLR_DRM_NO_ATOMIC, 1 +# ? +# env = WLR_NO_HARDWARE_CURSORS, 1 + +# ######## EDITOR ######### +#https://wiki.archlinux.org/title/Category:Text_editors +# for example: vi nano nvim ... + +#env = EDITOR, nvim diff --git a/linux/hypr/.config/hypr/shared/execs.conf b/linux/hypr/.config/hypr/shared/execs.conf new file mode 100644 index 0000000..916fe35 --- /dev/null +++ b/linux/hypr/.config/hypr/shared/execs.conf @@ -0,0 +1,8 @@ +# hyprlang noerror false +# You can make apps auto-start here +# Relevant Hyprland wiki section: https://wiki.hyprland.org/Configuring/Keywords/#executing + +# Input method +# exec-once = fcitx5 + +exec-once = hyprpm reload -n diff --git a/linux/hypr/.config/hypr/shared/general.conf b/linux/hypr/.config/hypr/shared/general.conf new file mode 100644 index 0000000..3ab3b89 --- /dev/null +++ b/linux/hypr/.config/hypr/shared/general.conf @@ -0,0 +1,84 @@ +# hyprlang noerror false +# Put general config stuff here +# Here's a list of every variable: https://wiki.hyprland.org/Configuring/Variables/ + +# monitor=,addreserved, 0, 0, 0, 0 # Custom reserved area + +# HDMI port: mirror display. To see device name, use `hyprctl monitors` + +# Blur +$blurEnabled = true +$blurSpecialWs = true +$blurPopups = true +$blurInputMethods = true +$blurSize = 8 +$blurPasses = 2 +$blurXray = false + +# Shadow +$shadowEnabled = true +$shadowRange = 20 +$shadowRenderPower = 3 + +# Gaps +$workspaceGaps = 10 +$windowGapsIn = 10 +$windowGapsOut = 20 +$singleWindowGapsOut = 20 + +# Window styling +$windowOpacity = 0.95 +$windowRounding = 10 + +$windowBorderSize = 3 +$activeWindowBorderColour = rgba(255,0,0,1) +$inactiveWindowBorderColour = rgba(255,255,0,1) + +input { + kb_layout = us + kb_variant = altgr-intl + numlock_by_default = true + repeat_delay = 250 + repeat_rate = 35 + + follow_mouse = 1 + off_window_axis_events = 2 + + touchpad { + natural_scroll = yes + disable_while_typing = true + clickfinger_behavior = true + scroll_factor = 0.7 + } +} + +general { + layout = dwindle + + allow_tearing = false # Allows `immediate` window rule to work + + gaps_workspaces = $workspaceGaps + gaps_in = $windowGapsIn + gaps_out = $windowGapsOut + border_size = $windowBorderSize + + #col.active_border = $activeWindowBorderColour + #col.inactive_border = $inactiveWindowBorderColour +} + +decoration { + rounding = $windowRounding + + blur { + enabled = $blurEnabled + xray = $blurXray + special = $blurSpecialWs + ignore_opacity = true # Allows opacity blurring + new_optimizations = true + popups = $blurPopups + input_methods = $blurInputMethods + size = $blurSize + passes = $blurPasses + } + +} diff --git a/linux/hypr/.config/hypr/shared/keybinds.conf b/linux/hypr/.config/hypr/shared/keybinds.conf new file mode 100644 index 0000000..3a10b3a --- /dev/null +++ b/linux/hypr/.config/hypr/shared/keybinds.conf @@ -0,0 +1,62 @@ +# hyprlang noerror false +# See https://wiki.hyprland.org/Configuring/Binds/ +#! +##! User +bind = Ctrl+Super, Slash, exec, xdg-open ~/.config/illogical-impulse/config.json # Edit shell config +bind = Ctrl+Super+Alt, Slash, exec, xdg-open ~/.config/hypr/custom/keybinds.conf # Edit extra keybinds + +##! Apps +# bind = Super, Return, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "${TERMINAL}" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # Terminal +# bind = Super, T, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "${TERMINAL}" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # [hidden] (terminal) (alt) +# bind = Ctrl+Alt, T, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "${TERMINAL}" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # [hidden] (terminal) (for Ubuntu people) +# bind = Super, E, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "dolphin" "nautilus" "nemo" "thunar" "${TERMINAL}" "kitty -1 fish -c yazi" # File manager +# bind = Super, W, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "google-chrome-stable" "zen-browser" "firefox" "brave" "chromium" "microsoft-edge-stable" "opera" "librewolf" # Browser +# bind = Super, C, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "code" "codium" "cursor" "zed" "zedit" "zeditor" "kate" "gnome-text-editor" "emacs" "command -v nvim && kitty -1 nvim" "command -v micro && kitty -1 micro" # Code editor +# bind = Ctrl+Super+Shift+Alt, W, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "wps" "onlyoffice-desktopeditors" "libreoffice" # Office software +# bind = Super, X, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "kate" "gnome-text-editor" "emacs" # Text editor +# bind = Ctrl+Super, V, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "pavucontrol-qt" "pavucontrol" # Volume mixer +# bind = Super, I, exec, XDG_CURRENT_DESKTOP=gnome ~/.config/hypr/hyprland/scripts/launch_first_available.sh "qs -p ~/.config/quickshell/$qsConfig/settings.qml" "systemsettings" "gnome-control-center" "better-control" # Settings app +# bind = Ctrl+Shift, Escape, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "gnome-system-monitor" "plasma-systemmonitor --page-name Processes" "command -v btop && kitty -1 fish -c btop" # Task manager + +# Add stuff here +# Use #! to add an extra column on the cheatsheet +# Use ##! to add a section in that column +# Add a comment after a bind to add a description, like above + +#/# bind = Super+Shift, Hash,, # Send to workspace # (1, 2, 3,...) +# We use raw keycodes because some keyboard layouts register number keys as different chars. The codes can be verified with `wev` +bind = Super+Shift, code:10, exec, $scriptsPath/workspace_action.sh movetoworkspace 1 # [hidden] +bind = Super+Shift, code:11, exec, $scriptsPath/workspace_action.sh movetoworkspace 2 # [hidden] +bind = Super+Shift, code:12, exec, $scriptsPath/workspace_action.sh movetoworkspace 3 # [hidden] +bind = Super+Shift, code:15, exec, $scriptsPath/workspace_action.sh movetoworkspace 6 # [hidden] +bind = Super+Shift, code:16, exec, $scriptsPath/workspace_action.sh movetoworkspace 7 # [hidden] +bind = Super+Shift, code:13, exec, $scriptsPath/workspace_action.sh movetoworkspace 4 # [hidden] +bind = Super+Shift, code:14, exec, $scriptsPath/workspace_action.sh movetoworkspace 5 # [hidden] +bind = Super+Shift, code:17, exec, $scriptsPath/workspace_action.sh movetoworkspace 8 # [hidden] +bind = Super+Shift, code:18, exec, $scriptsPath/workspace_action.sh movetoworkspace 9 # [hidden] +bind = Super+Shift, code:19, exec, $scriptsPath/workspace_action.sh movetoworkspace 10 # [hidden] +# keypad numbers +bind = Super+Shift, code:87, exec, $scriptsPath/workspace_action.sh movetoworkspace 1 # [hidden] +bind = Super+Shift, code:88, exec, $scriptsPath/workspace_action.sh movetoworkspace 2 # [hidden] +bind = Super+Shift, code:89, exec, $scriptsPath/workspace_action.sh movetoworkspace 3 # [hidden] +bind = Super+Shift, code:83, exec, $scriptsPath/workspace_action.sh movetoworkspace 4 # [hidden] +bind = Super+Shift, code:84, exec, $scriptsPath/workspace_action.sh movetoworkspace 5 # [hidden] +bind = Super+Shift, code:85, exec, $scriptsPath/workspace_action.sh movetoworkspace 6 # [hidden] +bind = Super+Shift, code:79, exec, $scriptsPath/workspace_action.sh movetoworkspace 7 # [hidden] +bind = Super+Shift, code:80, exec, $scriptsPath/workspace_action.sh movetoworkspace 8 # [hidden] +bind = Super+Shift, code:81, exec, $scriptsPath/workspace_action.sh movetoworkspace 9 # [hidden] +bind = Super+Shift, code:90, exec, $scriptsPath/workspace_action.sh movetoworkspace 10 # [hidden] + +# #/# bind = Super+Shift, Scroll ↑/↓,, # Send to workspace left/right +bind = Super+Shift, mouse_down, movetoworkspace, r-1 # [hidden] +bind = Super+Shift, mouse_up, movetoworkspace, r+1 # [hidden] +bind = Super+Alt, mouse_down, movetoworkspace, -1 # [hidden] +bind = Super+Alt, mouse_up, movetoworkspace, +1 # [hidden] + +#/# bind = Super+Shift, Page_↑/↓,, # Send to workspace left/right +bind = Super+Alt, Page_Down, movetoworkspace, +1 # [hidden] +bind = Super+Alt, Page_Up, movetoworkspace, -1 # [hidden] +bind = Super+Shift, Page_Down, movetoworkspace, r+1 # [hidden] +bind = Super+Shift, Page_Up, movetoworkspace, r-1 # [hidden] +bind = Ctrl+Super+Shift, Right, movetoworkspace, r+1 # [hidden] +bind = Ctrl+Super+Shift, Left, movetoworkspace, r-1 # [hidden] diff --git a/linux/hypr/.config/hypr/shared/rules.conf b/linux/hypr/.config/hypr/shared/rules.conf new file mode 100644 index 0000000..59772d6 --- /dev/null +++ b/linux/hypr/.config/hypr/shared/rules.conf @@ -0,0 +1,12 @@ +# hyprlang noerror false +# You can put custom rules here +# Window/layer rules: https://wiki.hyprland.org/Configuring/Window-Rules/ +# Workspace rules: https://wiki.hyprland.org/Configuring/Workspace-Rules/ + +# ######## Window rules ######## + +# Uncomment to apply global transparency to all windows: +# windowrule = opacity 0.89 override 0.89 override, match:class .* + +# Disable blur for all xwayland apps +# windowrule = no_blur on, match:xwayland 1 diff --git a/linux/hypr/.config/hypr/shared/variables.conf b/linux/hypr/.config/hypr/shared/variables.conf new file mode 100644 index 0000000..c845c32 --- /dev/null +++ b/linux/hypr/.config/hypr/shared/variables.conf @@ -0,0 +1,25 @@ +# hyprlang noerror false +# For all available variables, see ~/.config/hypr/hyprland/variables.conf + +$scriptsPath = ~/.config/hypr/ii/hyprland/scripts + +# Apps +# PULL REQUESTS ADDING MORE WILL NOT BE ACCEPTED, CONFIG FOR YOURSELF +$terminal = $scriptsPath/launch_first_available.sh "ghostty" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" +$fileManager = $scriptsPath/launch_first_available.sh "thunar" "dolphin" "nautilus" "nemo" "kitty -1 fish -c yazi" +$browser = $scriptsPath/launch_first_available.sh "google-chrome-stable" "zen-browser" "firefox" "brave" "chromium" "microsoft-edge-stable" "opera" "librewolf" +$codeEditor = $scriptsPath/launch_first_available.sh "zeditor" "antigravity" "code" "codium" "cursor" "zed" "zedit" "kate" "gnome-text-editor" "emacs" "command -v nvim && kitty -1 nvim" "command -v micro && kitty -1 micro" +$officeSoftware = $scriptsPath/launch_first_available.sh "wps" "onlyoffice-desktopeditors" "libreoffice" +$textEditor = $scriptsPath/launch_first_available.sh "kate" "gnome-text-editor" "emacs" +$volumeMixer = $scriptsPath/launch_first_available.sh "pavucontrol-qt" "pavucontrol" +$settingsApp = XDG_CURRENT_DESKTOP=gnome $scriptsPath/launch_first_available.sh "qs -p ~/.config/quickshell/$qsConfig/settings.qml" "systemsettings" "gnome-control-center" "better-control" +$taskManager = $scriptsPath/launch_first_available.sh "gnome-system-monitor" "plasma-systemmonitor --page-name Processes" "command -v btop && kitty -1 fish -c btop" + +# The folder within ~/.config/quickshell containing the config +$qsConfig = ii + +# Leave blank like this to load default config. Set to anything to not. +$dontLoadDefaultExecs = +$dontLoadDefaultGeneral = +$dontLoadDefaultRules = +$dontLoadDefaultKeybinds = diff --git a/linux/starship/.config/starship.toml b/linux/starship/.config/starship.toml index 7126829..fb5c3d0 100644 --- a/linux/starship/.config/starship.toml +++ b/linux/starship/.config/starship.toml @@ -1,103 +1,219 @@ -# Don't print a new line at the start of the prompt -add_newline = false -# Pipes ╰─ ╭─ -# Powerline symbols                                    -# Wedges 🭧🭒 🭣🭧🭓 -# Random noise 🬖🬥🬔🬗 -# Cool stuff 󰜥    - -# format = """ -# $directory $fill $git_branch $cmd_duration -# $character""" -format = """ -$cmd_duration $directory$git_branch - $character""" +### Prompt + +# The format layout for the prompt is as follows: + +# left side +# fill (expands to fill the remaining space between left and right prompts) +# right side info +# right side additional tools and versions +# prompt character + +# Commands may be slower in restricted environments, e.g. containers +command_timeout = 10000 + +format = """$sudo$username$hostname$directory$git_branch$git_commit$git_state$git_status\ +$fill\ +$jobs$status$cmd_duration\ +$nix_shell$terraform${custom.terraform}${custom.terragrunt}$kubernetes$python$aws$nodejs$docker_context$golang${custom.loadavg-linux}${custom.loadavg-mac}${custom.disk-linux}${custom.disk-mac}$memory_usage$time$os +$character""" + +# TODO: transient prompt released in v1.10.1 + +# Additional padding between newlines +add_newline = true [fill] -symbol = '-' -style = 'fg:245' +symbol = " " + +[character] +vimcmd_symbol = "[NORMAL ❯](#73cef4)" +success_symbol = "[❯](green)" +format = "\n$symbol " + +### Left prompt -# Replace the "❯" symbol in the prompt with "➜" -[character] # The name of the module we are configuring is "character" -success_symbol = "[ ](bold fg:243)" -error_symbol = "[ ](bold fg:244)" +[sudo] +disabled = false +symbol = "🧙" +format = "[$symbol]($style)" -# Disable the package module, hiding it from the prompt completely -[package] +[username] +# Don't display for normal logged in user disabled = true +style_user = "#d3b987" +format = "[$user]($style)" -[git_branch] -style = "bg: 252" -symbol = "󰘬" -truncation_length = 12 -truncation_symbol = "" -format = " 󰜥 [](bold fg:252)[$symbol $branch(:$remote_branch)](fg:235 bg:252)[ ](bold fg:252)" +[hostname] +disabled = true +ssh_only = true +style = "#d3b987" +format = "[@$hostname]($style)[ ❯](#767676)" -[git_commit] -commit_hash_length = 4 -tag_symbol = " " +[directory] +read_only = " " +truncation_length = 2 +truncate_to_repo = false +repo_root_style = "#0087af" +fish_style_pwd_dir_length = 2 +style = "#00afff" +# Repo format +repo_root_format = "[ $before_root_path]($style)[$repo_root]($repo_root_style)[$path]($style)[$read_only]($read_only_style) " +# Non repo format +format = "[ $path]($style)[$read_only]($read_only_style) " -[git_state] -format = '[\($state( $progress_current of $progress_total)\)]($style) ' -cherry_pick = "[🍒 PICKING](bold red)" +[git_branch] +symbol = "  " +style = "green" +format = "[❯ ](#767676)[$symbol$branch]($style)" [git_status] -conflicted = " 🏳 " -ahead = " 🏎💨 " -behind = " 😰 " -diverged = " 😵 " -untracked = " 🤷 ‍" -stashed = " 📦 " -modified = " 📝 " -staged = '[++\($count\)](green)' -renamed = " ✍️ " -deleted = " 🗑 " +stashed = "[*${count}](blue) " +modified = "[!${count}](yellow) " +staged = "[+${count}](green) " +untracked = "[?${count}](blue) " +deleted = "[-${count}](red) " +format = " ([$stashed$modified$staged$untracked $ahead_behind]($style))" +#format = " ([$all_status $ahead_behind]($style))" -[hostname] -ssh_only = false -format = "[•$hostname](bg:252 bold fg:235)[](bold fg:252)" -trim_at = ".companyname.com" +### Right prompt info + +[jobs] disabled = false +format = "[$number]($style)" -[line_break] +[status] disabled = false +map_symbol = false +format = "[$symbol$status]($style)" -[memory_usage] -disabled = true -threshold = -1 -symbol = " " -style = "bold dimmed green" +[cmd_duration] +style = "#a8a8a8" +format = "([ ❮ ](#767676)[$duration ]($style))" -[time] +### Right prompt tools and versions + +[terraform] +# We disable the native tf plugin because it is much slower than tfenv disabled = true -format = '🕙[\[ $time \]]($style) ' -time_format = "%T" +format = "[ ❮ ](#767676)[tf $version]($style)" +detect_extensions = ["tf"] +detect_files = ["terragrunt.hcl"] -[username] -style_user = "bold bg:252 fg:235" -style_root = "red bold" -format = "[](bold fg:252)[$user]($style)" +[kubernetes] disabled = false -show_always = true +style = "blue" +format = '([ ❮ ](#767676)[$symbol$context (\[$namespace\])]($style))' +detect_extensions = [] +detect_files = ['Chart.yaml'] +detect_folders = ['*helm*'] -[directory] -home_symbol = " " -read_only = "  " -style = "bg:255 fg:240" -truncation_length = 2 -truncation_symbol = ".../" -format = '[](bold fg:255)[󰉋 → $path]($style)[](bold fg:255)' +[golang] +symbol = " " +format = "([ ❮ ](#767676)[$symbol($version)]($style))" +[nodejs] +symbol = " " +format = "([ ❮ ](#767676)[$symbol($version)]($style))" -[directory.substitutions] -"Desktop" = "  " -"Documents" = "  " -"Downloads" = "  " -"Music" = " 󰎈 " -"Pictures" = "  " -"Videos" = "  " -"GitHub" = " 󰊤 " +[python] +symbol = " " +format = '([ ❮ ](#767676)[${symbol}${pyenv_prefix}(${version}) ([\($virtualenv\)](#306998))]($style))' -[cmd_duration] -min_time = 0 -format = '[](bold fg:252)[󰪢 $duration](bold bg:252 fg:235)[](bold fg:252)' +[aws] +disabled = false +symbol = " " +format = '([ ❮ ](#767676)[$symbol$profile(\[$duration\])]($style))' + +[conda] +symbol = " " + +[docker_context] +symbol = " " +format = "([ ❮ ](#767676)[$symbol$context]($style))" + +[nix_shell] +symbol = " " +format = "[${symbol}nix ${state} ]($style)" + +[memory_usage] +disabled = false +threshold = -1 +symbol = "" +style = "#5f8787" +format = "([ ❮ ](#767676)[$ram_pct $symbol]($style))" + +[time] +disabled = true +format = "([ ❮ ](#767676)[$time]($style))" + +[shlvl] +disabled = true + +[os] +disabled = false +format = "[ ❮ ](#767676)[$symbol]($style)" + +[os.symbols] +"Alpine" = "" +"Arch" = "" +"CentOS" = "" +"Debian" = "" +"Fedora" = "" +"Gentoo" = "" +"Linux" = "" +"Macos" = "" +"Manjaro" = "" +"Mint" = "" +"NixOS" = "" +"Raspbian" = "" +"Ubuntu" = "" +"Windows" = "" + +### Custom plugins + +[custom.terragrunt] +description = "Shows the currently active tgenv Terragrunt version" +command = "cat $(pwd)/.terragrunt-version || cat $(git rev-parse --show-toplevel)/.terragrunt-version || cat ~/.tgenv/version" +files = ["terragrunt.hcl"] +style = "#0bb9f2" +format = "([ ❮ ](#767676)[tg $output]($style))" + +[custom.terraform] +description = "Shows the currently active tfenv Terraform version" +command = "cat $(pwd)/.terraform-version || cat $(git rev-parse --show-toplevel)/.terraform-version || cat ~/.tfenv/version" +extensions = ["tf"] +files = ["terragrunt.hcl"] +style = "#7b42bc" +format = "([ ❮ ](#767676)[tf $output]($style))" + +[custom.disk-linux] +description = "Show disk used" +command = 'df -h --output=avail "$PWD" | tail -n 1' +style = "#00af5f" +format = "[ ❮ ](#767676)[$output ]($style)" +when = "true" +os = "linux" + +[custom.disk-mac] +description = "Show % of disk used" +command = "df -k | grep -E '/dev/disk(1|3)s(3|4)' | awk '{ print $5 }' | head -n 1 | sed 's/%//'" +style = "#00af5f" +format = "[ ❮ ](#767676)[$output% ]($style)" +when = "true" +os = "macos" + +[custom.loadavg-linux] +description = "Show load average" +command = "cat /proc/loadavg | cut -d' ' -f 2" +style = "#5f8787" +format = "([ ❮ ](#767676)[$output ]($style))" +when = "true" +os = "linux" + +[custom.loadavg-mac] +description = "Show load average" +command = "sysctl -n vm.loadavg | cut -d' ' -f 2" +style = "#5f8787" +format = "([ ❮ ](#767676)[$output ]($style))" +when = "true" +os = "macos" diff --git a/linux/zsh/.zshrc b/linux/zsh/.zshrc index d804090..ed561ac 100644 --- a/linux/zsh/.zshrc +++ b/linux/zsh/.zshrc @@ -145,5 +145,6 @@ eval "$($HOME/.local/bin/mise activate zsh)" # Activate zoxide (better cd) eval "$(zoxide init zsh)" +fastfetch # To customize prompt, run `p10k configure` or edit ~/.p10k.zsh. # [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh From 4e84af311ccbcb7430a3a2fc698e606ba72e02ba Mon Sep 17 00:00:00 2001 From: GazzD Date: Wed, 15 Apr 2026 07:45:47 +0200 Subject: [PATCH 4/8] Set ii configuration as default --- .../hypr/.config/hypr/ii/custom/general.conf | 20 ---- .../hypr/.config/hypr/ii/custom/keybinds.conf | 37 ------- .../.config/hypr/ii/custom/variables.conf | 23 ----- linux/hypr/.config/hypr/ii/hypridle.conf | 59 ++++------- linux/hypr/.config/hypr/ii/hypridle.conf.new | 26 ----- .../.config/hypr/ii/hyprland/general.conf | 6 +- linux/hypr/.config/hypr/ii/hyprlock.conf | 97 +++++++++++++++++-- linux/hypr/.config/hypr/ii/hyprlock.conf.new | 93 ------------------ .../hypr/.config/hypr/ii/hyprlock/colors.conf | 10 +- linux/hypr/.config/hypr/ii/monitors.conf | 8 +- linux/hypr/.config/hypr/ii/monitors.conf.new | 4 - 11 files changed, 120 insertions(+), 263 deletions(-) delete mode 100644 linux/hypr/.config/hypr/ii/hypridle.conf.new delete mode 100644 linux/hypr/.config/hypr/ii/hyprlock.conf.new delete mode 100644 linux/hypr/.config/hypr/ii/monitors.conf.new diff --git a/linux/hypr/.config/hypr/ii/custom/general.conf b/linux/hypr/.config/hypr/ii/custom/general.conf index 033867e..f5b34b5 100644 --- a/linux/hypr/.config/hypr/ii/custom/general.conf +++ b/linux/hypr/.config/hypr/ii/custom/general.conf @@ -5,23 +5,3 @@ # monitor=,addreserved, 0, 0, 0, 0 # Custom reserved area # HDMI port: mirror display. To see device name, use `hyprctl monitors` - -exec-once = hyprpm reload -n - -input { - kb_layout = us - kb_variant = altgr-intl - numlock_by_default = true - repeat_delay = 250 - repeat_rate = 35 - - follow_mouse = 1 - off_window_axis_events = 2 - - touchpad { - natural_scroll = yes - disable_while_typing = true - clickfinger_behavior = true - scroll_factor = 0.7 - } -} diff --git a/linux/hypr/.config/hypr/ii/custom/keybinds.conf b/linux/hypr/.config/hypr/ii/custom/keybinds.conf index 3a10b3a..bc6fc20 100644 --- a/linux/hypr/.config/hypr/ii/custom/keybinds.conf +++ b/linux/hypr/.config/hypr/ii/custom/keybinds.conf @@ -23,40 +23,3 @@ bind = Ctrl+Super+Alt, Slash, exec, xdg-open ~/.config/hypr/custom/keybinds.conf # Use ##! to add a section in that column # Add a comment after a bind to add a description, like above -#/# bind = Super+Shift, Hash,, # Send to workspace # (1, 2, 3,...) -# We use raw keycodes because some keyboard layouts register number keys as different chars. The codes can be verified with `wev` -bind = Super+Shift, code:10, exec, $scriptsPath/workspace_action.sh movetoworkspace 1 # [hidden] -bind = Super+Shift, code:11, exec, $scriptsPath/workspace_action.sh movetoworkspace 2 # [hidden] -bind = Super+Shift, code:12, exec, $scriptsPath/workspace_action.sh movetoworkspace 3 # [hidden] -bind = Super+Shift, code:15, exec, $scriptsPath/workspace_action.sh movetoworkspace 6 # [hidden] -bind = Super+Shift, code:16, exec, $scriptsPath/workspace_action.sh movetoworkspace 7 # [hidden] -bind = Super+Shift, code:13, exec, $scriptsPath/workspace_action.sh movetoworkspace 4 # [hidden] -bind = Super+Shift, code:14, exec, $scriptsPath/workspace_action.sh movetoworkspace 5 # [hidden] -bind = Super+Shift, code:17, exec, $scriptsPath/workspace_action.sh movetoworkspace 8 # [hidden] -bind = Super+Shift, code:18, exec, $scriptsPath/workspace_action.sh movetoworkspace 9 # [hidden] -bind = Super+Shift, code:19, exec, $scriptsPath/workspace_action.sh movetoworkspace 10 # [hidden] -# keypad numbers -bind = Super+Shift, code:87, exec, $scriptsPath/workspace_action.sh movetoworkspace 1 # [hidden] -bind = Super+Shift, code:88, exec, $scriptsPath/workspace_action.sh movetoworkspace 2 # [hidden] -bind = Super+Shift, code:89, exec, $scriptsPath/workspace_action.sh movetoworkspace 3 # [hidden] -bind = Super+Shift, code:83, exec, $scriptsPath/workspace_action.sh movetoworkspace 4 # [hidden] -bind = Super+Shift, code:84, exec, $scriptsPath/workspace_action.sh movetoworkspace 5 # [hidden] -bind = Super+Shift, code:85, exec, $scriptsPath/workspace_action.sh movetoworkspace 6 # [hidden] -bind = Super+Shift, code:79, exec, $scriptsPath/workspace_action.sh movetoworkspace 7 # [hidden] -bind = Super+Shift, code:80, exec, $scriptsPath/workspace_action.sh movetoworkspace 8 # [hidden] -bind = Super+Shift, code:81, exec, $scriptsPath/workspace_action.sh movetoworkspace 9 # [hidden] -bind = Super+Shift, code:90, exec, $scriptsPath/workspace_action.sh movetoworkspace 10 # [hidden] - -# #/# bind = Super+Shift, Scroll ↑/↓,, # Send to workspace left/right -bind = Super+Shift, mouse_down, movetoworkspace, r-1 # [hidden] -bind = Super+Shift, mouse_up, movetoworkspace, r+1 # [hidden] -bind = Super+Alt, mouse_down, movetoworkspace, -1 # [hidden] -bind = Super+Alt, mouse_up, movetoworkspace, +1 # [hidden] - -#/# bind = Super+Shift, Page_↑/↓,, # Send to workspace left/right -bind = Super+Alt, Page_Down, movetoworkspace, +1 # [hidden] -bind = Super+Alt, Page_Up, movetoworkspace, -1 # [hidden] -bind = Super+Shift, Page_Down, movetoworkspace, r+1 # [hidden] -bind = Super+Shift, Page_Up, movetoworkspace, r-1 # [hidden] -bind = Ctrl+Super+Shift, Right, movetoworkspace, r+1 # [hidden] -bind = Ctrl+Super+Shift, Left, movetoworkspace, r-1 # [hidden] diff --git a/linux/hypr/.config/hypr/ii/custom/variables.conf b/linux/hypr/.config/hypr/ii/custom/variables.conf index c845c32..b692ce1 100644 --- a/linux/hypr/.config/hypr/ii/custom/variables.conf +++ b/linux/hypr/.config/hypr/ii/custom/variables.conf @@ -1,25 +1,2 @@ # hyprlang noerror false # For all available variables, see ~/.config/hypr/hyprland/variables.conf - -$scriptsPath = ~/.config/hypr/ii/hyprland/scripts - -# Apps -# PULL REQUESTS ADDING MORE WILL NOT BE ACCEPTED, CONFIG FOR YOURSELF -$terminal = $scriptsPath/launch_first_available.sh "ghostty" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" -$fileManager = $scriptsPath/launch_first_available.sh "thunar" "dolphin" "nautilus" "nemo" "kitty -1 fish -c yazi" -$browser = $scriptsPath/launch_first_available.sh "google-chrome-stable" "zen-browser" "firefox" "brave" "chromium" "microsoft-edge-stable" "opera" "librewolf" -$codeEditor = $scriptsPath/launch_first_available.sh "zeditor" "antigravity" "code" "codium" "cursor" "zed" "zedit" "kate" "gnome-text-editor" "emacs" "command -v nvim && kitty -1 nvim" "command -v micro && kitty -1 micro" -$officeSoftware = $scriptsPath/launch_first_available.sh "wps" "onlyoffice-desktopeditors" "libreoffice" -$textEditor = $scriptsPath/launch_first_available.sh "kate" "gnome-text-editor" "emacs" -$volumeMixer = $scriptsPath/launch_first_available.sh "pavucontrol-qt" "pavucontrol" -$settingsApp = XDG_CURRENT_DESKTOP=gnome $scriptsPath/launch_first_available.sh "qs -p ~/.config/quickshell/$qsConfig/settings.qml" "systemsettings" "gnome-control-center" "better-control" -$taskManager = $scriptsPath/launch_first_available.sh "gnome-system-monitor" "plasma-systemmonitor --page-name Processes" "command -v btop && kitty -1 fish -c btop" - -# The folder within ~/.config/quickshell containing the config -$qsConfig = ii - -# Leave blank like this to load default config. Set to anything to not. -$dontLoadDefaultExecs = -$dontLoadDefaultGeneral = -$dontLoadDefaultRules = -$dontLoadDefaultKeybinds = diff --git a/linux/hypr/.config/hypr/ii/hypridle.conf b/linux/hypr/.config/hypr/ii/hypridle.conf index 5831e26..a77bbb2 100644 --- a/linux/hypr/.config/hypr/ii/hypridle.conf +++ b/linux/hypr/.config/hypr/ii/hypridle.conf @@ -1,45 +1,26 @@ -listener { - timeout = 600 - on-timeout = hyprlock -} - -# listener { -# timeout = 620 -# on-timeout = hyprctl dispatch dpms off -# on-resume = hyprctl dispatch dpms on -# } +$lock_cmd = hyprctl dispatch global quickshell:lock & pidof qs quickshell hyprlock || hyprlock +# $lock_cmd = pidof hyprlock || hyprlock +$suspend_cmd = systemctl suspend || loginctl suspend general { - lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances. - before_sleep_cmd = pidof hyprlock || (hyprlock & sleep 0.5) # lock screen before suspend, with a small delay to ensure it locks before the screen turns off. - after_sleep_cmd = hyprctl dispatch dpms on # turn screen back on after resume, in case it doesn't turn on automatically. + lock_cmd = $lock_cmd + before_sleep_cmd = loginctl lock-session + after_sleep_cmd = hyprctl dispatch global quickshell:lockFocus + inhibit_sleep = 3 } -# listener { -# timeout = 150 # 2.5min. -# on-timeout = brightnessctl -s set 10 # set monitor backlight to minimum, avoid 0 on OLED monitor. -# on-resume = brightnessctl -r # monitor backlight restore. -# } - -# # turn off keyboard backlight, comment out this section if you dont have a keyboard backlight. -# listener { -# timeout = 150 # 2.5min. -# on-timeout = brightnessctl -sd rgb:kbd_backlight set 0 # turn off keyboard backlight. -# on-resume = brightnessctl -rd rgb:kbd_backlight # turn on keyboard backlight. -# } - -# listener { -# timeout = 300 # 5min -# on-timeout = loginctl lock-session # lock screen when timeout has passed -# } +listener { + timeout = 300 # 5mins + on-timeout = loginctl lock-session +} -# listener { -# timeout = 330 # 5.5min -# on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed -# on-resume = hyprctl dispatch dpms on && brightnessctl -r # screen on when activity is detected after timeout has fired. -# } +listener { + timeout = 600 # 10mins + on-timeout = hyprctl dispatch dpms off + on-resume = hyprctl dispatch dpms on +} -# listener { -# timeout = 1800 # 30min -# on-timeout = systemctl suspend # suspend pc -# } +listener { + timeout = 900 # 15mins + on-timeout = $suspend_cmd +} diff --git a/linux/hypr/.config/hypr/ii/hypridle.conf.new b/linux/hypr/.config/hypr/ii/hypridle.conf.new deleted file mode 100644 index a77bbb2..0000000 --- a/linux/hypr/.config/hypr/ii/hypridle.conf.new +++ /dev/null @@ -1,26 +0,0 @@ -$lock_cmd = hyprctl dispatch global quickshell:lock & pidof qs quickshell hyprlock || hyprlock -# $lock_cmd = pidof hyprlock || hyprlock -$suspend_cmd = systemctl suspend || loginctl suspend - -general { - lock_cmd = $lock_cmd - before_sleep_cmd = loginctl lock-session - after_sleep_cmd = hyprctl dispatch global quickshell:lockFocus - inhibit_sleep = 3 -} - -listener { - timeout = 300 # 5mins - on-timeout = loginctl lock-session -} - -listener { - timeout = 600 # 10mins - on-timeout = hyprctl dispatch dpms off - on-resume = hyprctl dispatch dpms on -} - -listener { - timeout = 900 # 15mins - on-timeout = $suspend_cmd -} diff --git a/linux/hypr/.config/hypr/ii/hyprland/general.conf b/linux/hypr/.config/hypr/ii/hyprland/general.conf index 9a0649c..239e193 100644 --- a/linux/hypr/.config/hypr/ii/hyprland/general.conf +++ b/linux/hypr/.config/hypr/ii/hyprland/general.conf @@ -72,10 +72,10 @@ decoration { shadow { enabled = true ignore_window = true - range = 50 - offset = 0 4 + range = 20 + offset = 0 2 render_power = 10 - color = rgba(00000027) + color = rgba(00000020) } # Dim diff --git a/linux/hypr/.config/hypr/ii/hyprlock.conf b/linux/hypr/.config/hypr/ii/hyprlock.conf index 386f638..208f7cf 100644 --- a/linux/hypr/.config/hypr/ii/hyprlock.conf +++ b/linux/hypr/.config/hypr/ii/hyprlock.conf @@ -1,14 +1,93 @@ -general { - hide_cursor = true -} +source=~/.config/hypr/hyprlock/colors.conf background { - color = rgba(0, 0, 0, 1.0) + color = rgba(181818FF) } - input-field { - size = 250, 50 - position = 0, -100 - dots_center = true - fade_on_empty = false + monitor = + size = 250, 50 + outline_thickness = 2 + dots_size = 0.1 + dots_spacing = 0.3 + outer_color = $entry_border_color + inner_color = $entry_background_color + font_color = $entry_color + fade_on_empty = true + + position = 0, 20 + halign = center + valign = center +} + +label { + monitor = + text = $LAYOUT + color = $text_color + font_size = 14 + font_family = $font_family + position = -30, 30 + halign = right + valign = bottom } + +label { # Caps Lock Warning + monitor = + text = cmd[update:250] ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/hyprlock/check-capslock.sh + color = $text_color + font_size = 13 + font_family = $font_family + position = 0, -25 + halign = center + valign = center +} + + +label { # Clock + monitor = + text = $TIME + color = $text_color + font_size = 65 + font_family = $font_family_clock + + position = 0, 300 + halign = center + valign = center +} +label { # Date + monitor = + text = cmd[update:5000] date +"%A, %B %d" + color = $text_color + font_size = 17 + font_family = $font_family_clock + + position = 0, 240 + halign = center + valign = center +} + +label { # User + monitor = + text =  $USER + color = $text_color + outline_thickness = 2 + dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8 + dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0 + dots_center = true + font_size = 20 + font_family = $font_family + position = 0, 50 + halign = center + valign = bottom +} + +label { # Status + monitor = + text = cmd[update:5000] ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/hyprlock/status.sh + color = $text_color + font_size = 14 + font_family = $font_family + + position = 30, -30 + halign = left + valign = top +} \ No newline at end of file diff --git a/linux/hypr/.config/hypr/ii/hyprlock.conf.new b/linux/hypr/.config/hypr/ii/hyprlock.conf.new deleted file mode 100644 index 208f7cf..0000000 --- a/linux/hypr/.config/hypr/ii/hyprlock.conf.new +++ /dev/null @@ -1,93 +0,0 @@ -source=~/.config/hypr/hyprlock/colors.conf - -background { - color = rgba(181818FF) -} -input-field { - monitor = - size = 250, 50 - outline_thickness = 2 - dots_size = 0.1 - dots_spacing = 0.3 - outer_color = $entry_border_color - inner_color = $entry_background_color - font_color = $entry_color - fade_on_empty = true - - position = 0, 20 - halign = center - valign = center -} - -label { - monitor = - text = $LAYOUT - color = $text_color - font_size = 14 - font_family = $font_family - position = -30, 30 - halign = right - valign = bottom -} - -label { # Caps Lock Warning - monitor = - text = cmd[update:250] ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/hyprlock/check-capslock.sh - color = $text_color - font_size = 13 - font_family = $font_family - position = 0, -25 - halign = center - valign = center -} - - -label { # Clock - monitor = - text = $TIME - color = $text_color - font_size = 65 - font_family = $font_family_clock - - position = 0, 300 - halign = center - valign = center -} -label { # Date - monitor = - text = cmd[update:5000] date +"%A, %B %d" - color = $text_color - font_size = 17 - font_family = $font_family_clock - - position = 0, 240 - halign = center - valign = center -} - -label { # User - monitor = - text =  $USER - color = $text_color - outline_thickness = 2 - dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8 - dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0 - dots_center = true - font_size = 20 - font_family = $font_family - position = 0, 50 - halign = center - valign = bottom -} - -label { # Status - monitor = - text = cmd[update:5000] ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/hyprlock/status.sh - color = $text_color - font_size = 14 - font_family = $font_family - - position = 30, -30 - halign = left - valign = top -} \ No newline at end of file diff --git a/linux/hypr/.config/hypr/ii/hyprlock/colors.conf b/linux/hypr/.config/hypr/ii/hyprlock/colors.conf index ea67795..11fbbb9 100644 --- a/linux/hypr/.config/hypr/ii/hyprlock/colors.conf +++ b/linux/hypr/.config/hypr/ii/hyprlock/colors.conf @@ -1,12 +1,10 @@ # This configuration is generated by matugen # Changing these variables with matugen still enabled will overwrite them. -$text_color = rgba(ffdad3FF) -$entry_background_color = rgba(3a0a0311) -$entry_border_color = rgba(a08c8855) -$entry_color = rgba(ffdad3FF) +$text_color = rgba(d9e2ffFF) +$entry_background_color = rgba(00194411) +$entry_border_color = rgba(8f909955) +$entry_color = rgba(d9e2ffFF) $font_family = Google Sans Flex Medium $font_family_clock = Google Sans Flex Medium $font_material_symbols = Material Symbols Rounded - -$background_image = /home/gazzd/Pictures/Wallpapers/wallhaven-ml16w8.jpg \ No newline at end of file diff --git a/linux/hypr/.config/hypr/ii/monitors.conf b/linux/hypr/.config/hypr/ii/monitors.conf index 4dccdd4..d654c48 100644 --- a/linux/hypr/.config/hypr/ii/monitors.conf +++ b/linux/hypr/.config/hypr/ii/monitors.conf @@ -1,4 +1,6 @@ -# Generated by nwg-displays on 2026-04-03 at 23:44:11. Do not edit manually. +# This file is to be overwritten by nwg-displays if you choose to use it. +# nwg-displays is a graphical tool for managing monitors. +# - Installation for Arch Linux: sudo pacman -S nwg-displays +# - Repo: https://github.com/nwg-piotr/nwg-displays -monitor=HDMI-A-2,1920x1080@60.0,2560x0,1.0 -monitor=DP-4,2560x1440@143.97,0x0,1.0 +source = ~/.config/hypr/monitors.conf diff --git a/linux/hypr/.config/hypr/ii/monitors.conf.new b/linux/hypr/.config/hypr/ii/monitors.conf.new deleted file mode 100644 index 67c6e19..0000000 --- a/linux/hypr/.config/hypr/ii/monitors.conf.new +++ /dev/null @@ -1,4 +0,0 @@ -# This file is to be overwritten by nwg-displays if you choose to use it. -# nwg-displays is a graphical tool for managing monitors. -# - Installation for Arch Linux: sudo pacman -S nwg-displays -# - Repo: https://github.com/nwg-piotr/nwg-displays From 7a01354e3821ccba759f9fc1821c32513d476347 Mon Sep 17 00:00:00 2001 From: GazzD Date: Wed, 15 Apr 2026 07:48:31 +0200 Subject: [PATCH 5/8] Enhance Hyprlock config and add scripts Expand hyprlock layout (background blur/brightness, avatar, clock, date, input field, capslock and status labels). Update colors and wallpaper path and add helper scripts: check-capslock.sh and status.sh. --- linux/hypr/.config/hypr/hyprlock.conf | 141 +++++++++++++++++- .../.config/hypr/hyprlock/check-capslock.sh | 9 ++ linux/hypr/.config/hypr/hyprlock/colors.conf | 10 +- linux/hypr/.config/hypr/hyprlock/status.sh | 29 ++++ 4 files changed, 178 insertions(+), 11 deletions(-) create mode 100755 linux/hypr/.config/hypr/hyprlock/check-capslock.sh create mode 100755 linux/hypr/.config/hypr/hyprlock/status.sh diff --git a/linux/hypr/.config/hypr/hyprlock.conf b/linux/hypr/.config/hypr/hyprlock.conf index 386f638..47980e1 100644 --- a/linux/hypr/.config/hypr/hyprlock.conf +++ b/linux/hypr/.config/hypr/hyprlock.conf @@ -1,14 +1,143 @@ +source = ~/.config/hypr/hyprlock/colors.conf + general { - hide_cursor = true + hide_cursor = true + grace = 0 + no_fade_in = false + no_fade_out = false + ignore_empty_input = true } +# ─── Background ────────────────────────────────────────────── background { - color = rgba(0, 0, 0, 1.0) + monitor = + path = $background_image + blur_passes = 3 + blur_size = 7 + brightness = 0.65 + vibrancy = 0.12 + vibrancy_darkness = 0.0 + contrast = 0.95 +} + +# ─── Avatar ────────────────────────────────────────────────── +image { + monitor = + path = ~/.face + size = 110 + rounding = -1 + border_size = 3 + border_color = $entry_border_color + position = 0, 290 + halign = center + valign = center + shadow_passes = 2 + shadow_size = 4 +} + +# ─── Clock ─────────────────────────────────────────────────── +label { + monitor = + text = $TIME + color = $text_color + font_size = 72 + font_family = $font_family_clock + shadow_passes = 3 + shadow_size = 5 + position = 0, 140 + halign = center + valign = center +} + +# ─── Date ──────────────────────────────────────────────────── +label { + monitor = + text = cmd[update:5000] date +"󰃶 %A, %B %d" + color = $text_color + font_size = 17 + font_family = $font_family + shadow_passes = 2 + shadow_size = 3 + position = 0, 75 + halign = center + valign = center } +# ─── Input field ───────────────────────────────────────────── input-field { - size = 250, 50 - position = 0, -100 - dots_center = true - fade_on_empty = false + monitor = + size = 280, 55 + outline_thickness = 2 + dots_size = 0.25 + dots_spacing = 0.15 + dots_center = true + dots_rounding = -1 + outer_color = $entry_border_color + inner_color = $entry_background_color + font_color = $entry_color + fade_on_empty = true + fade_timeout = 1500 + placeholder_text = Enter password + rounding = 12 + check_color = rgba(CCA020FF) + fail_color = rgba(CC3333FF) + fail_text = $FAIL ($ATTEMPTS attempts) + capslock_color = rgba(DD8811FF) + shadow_passes = 2 + position = 0, -10 + halign = center + valign = center +} + +# ─── Caps Lock warning ─────────────────────────────────────── +label { + monitor = + text = cmd[update:250] ~/.config/hypr/hyprlock/check-capslock.sh + color = rgba(DD8811FF) + font_size = 13 + font_family = $font_family + shadow_passes = 2 + position = 0, -80 + halign = center + valign = center +} + +# ─── Username ──────────────────────────────────────────────── +label { + monitor = + text = $USER + color = $text_color + font_size = 16 + font_family = $font_family + shadow_passes = 2 + shadow_size = 3 + position = 0, 60 + halign = center + valign = bottom +} + +# ─── Status (battery / charging) ───────────────────────────── +label { + monitor = + text = cmd[update:5000] ~/.config/hypr/hyprlock/status.sh + color = $text_color + font_size = 14 + font_family = $font_family + shadow_passes = 2 + position = 30, -30 + halign = left + valign = top +} + +# ─── Keyboard layout ───────────────────────────────────────── +label { + monitor = + text = $LAYOUT + color = $text_color + font_size = 14 + font_family = $font_family + shadow_passes = 2 + position = -30, 30 + halign = right + valign = bottom } diff --git a/linux/hypr/.config/hypr/hyprlock/check-capslock.sh b/linux/hypr/.config/hypr/hyprlock/check-capslock.sh new file mode 100755 index 0000000..ca56178 --- /dev/null +++ b/linux/hypr/.config/hypr/hyprlock/check-capslock.sh @@ -0,0 +1,9 @@ +#!/bin/env bash + +MAIN_KB_CAPS=$(hyprctl devices | grep -B 6 "main: yes" | grep "capsLock" | head -1 | awk '{print $2}') + +if [ "$MAIN_KB_CAPS" = "yes" ]; then + echo "Caps Lock active" +else + echo "" +fi diff --git a/linux/hypr/.config/hypr/hyprlock/colors.conf b/linux/hypr/.config/hypr/hyprlock/colors.conf index f660590..2b03c24 100644 --- a/linux/hypr/.config/hypr/hyprlock/colors.conf +++ b/linux/hypr/.config/hypr/hyprlock/colors.conf @@ -1,12 +1,12 @@ # This configuration is generated by matugen # Changing these variables with matugen still enabled will overwrite them. -$text_color = rgba(dce1ffFF) -$entry_background_color = rgba(04174b11) -$entry_border_color = rgba(90909a55) -$entry_color = rgba(dce1ffFF) +$text_color = rgba(dde1f9FF) +$entry_background_color = rgba(161b2b11) +$entry_border_color = rgba(90909755) +$entry_color = rgba(dde1f9FF) $font_family = Google Sans Flex Medium $font_family_clock = Google Sans Flex Medium $font_material_symbols = Material Symbols Rounded -$background_image = /home/gazzd/Pictures/Wallpapers/random_wallpaper-1.png \ No newline at end of file +$background_image = /home/gazzd/Pictures/Wallpapers/random_wallpaper.jpg \ No newline at end of file diff --git a/linux/hypr/.config/hypr/hyprlock/status.sh b/linux/hypr/.config/hypr/hyprlock/status.sh new file mode 100755 index 0000000..dd80633 --- /dev/null +++ b/linux/hypr/.config/hypr/hyprlock/status.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +############ Variables ############ +enable_battery=false +battery_charging=false + +####### Check availability ######## +for battery in /sys/class/power_supply/*BAT*; do + if [[ -f "$battery/uevent" ]]; then + enable_battery=true + if [[ $(cat /sys/class/power_supply/*/status | head -1) == "Charging" ]]; then + battery_charging=true + fi + break + fi +done + +############# Output ############# +if [[ $enable_battery == true ]]; then + if [[ $battery_charging == true ]]; then + echo -n "(+) " + fi + echo -n "$(cat /sys/class/power_supply/*/capacity | head -1)"% + if [[ $battery_charging == false ]]; then + echo -n " remaining" + fi +fi + +echo '' \ No newline at end of file From 611825aa643db182b296f4455bde4aae77b67e2e Mon Sep 17 00:00:00 2001 From: GazzD Date: Wed, 15 Apr 2026 07:49:52 +0200 Subject: [PATCH 6/8] Adjust Hyprland colors palette Tweak active/inactive border, background, bar, text/button and windowrule colors to refine gray/blue tones. --- linux/hypr/.config/hypr/hyprland/colors.conf | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/linux/hypr/.config/hypr/hyprland/colors.conf b/linux/hypr/.config/hypr/hyprland/colors.conf index 9758514..1faeeba 100644 --- a/linux/hypr/.config/hypr/hyprland/colors.conf +++ b/linux/hypr/.config/hypr/hyprland/colors.conf @@ -1,10 +1,10 @@ general { - col.active_border = rgba(90909a77) - col.inactive_border = rgba(45464f55) + col.active_border = rgba(90909777) + col.inactive_border = rgba(46464c55) } misc { - background_color = rgba(121318FF) + background_color = rgba(131315FF) } plugin { @@ -17,16 +17,16 @@ plugin { bar_precedence_over_border = true bar_part_of_window = true - bar_color = rgba(121318FF) - col.text = rgba(e3e1e9FF) + bar_color = rgba(131315FF) + col.text = rgba(e5e2e3FF) # example buttons (R -> L) # hyprbars-button = color, size, on-click - hyprbars-button = rgb(e3e1e9), 13, 󰖭, hyprctl dispatch killactive - hyprbars-button = rgb(e3e1e9), 13, 󰖯, hyprctl dispatch fullscreen 1 - hyprbars-button = rgb(e3e1e9), 13, 󰖰, hyprctl dispatch movetoworkspacesilent special + hyprbars-button = rgb(e5e2e3), 13, 󰖭, hyprctl dispatch killactive + hyprbars-button = rgb(e5e2e3), 13, 󰖯, hyprctl dispatch fullscreen 1 + hyprbars-button = rgb(e5e2e3), 13, 󰖰, hyprctl dispatch movetoworkspacesilent special } } -windowrule = border_color rgba(b6c4ffAA) rgba(b6c4ff77), match:pin 1 +windowrule = border_color rgba(c1c5dcAA) rgba(c1c5dc77), match:pin 1 From 31cf9f4c2625ba2f54c7dea9e8a31043e892a8e5 Mon Sep 17 00:00:00 2001 From: GazzD Date: Wed, 15 Apr 2026 22:52:24 +0200 Subject: [PATCH 7/8] Clean up Hypr configs and update shell PATHs Remove deprecated Hypr .new configs and a large p10k backup Rewrite keybinds to use hypr-launch; add numeric workspace and move-to-workspace binds and unbind defaults Add $HOME/.local/bin to env PATH and normalize opencode PATH Rename satty and sunsetr config files into their .config locations --- linux/hypr/.config/hypr/hypridle.conf.new | 26 - linux/hypr/.config/hypr/hyprlock.conf.new | 93 - linux/hypr/.config/hypr/monitors.conf.new | 4 - linux/hypr/.config/hypr/shared/env.conf | 3 + linux/hypr/.config/hypr/shared/keybinds.conf | 86 +- linux/hypr/.config/hypr/workspaces.conf.new | 4 - linux/satty/{ => .config/statty}/config.toml | 0 .../{ => .config/sunsetr}/sunsetr.toml | 0 linux/zsh/.p10k.zsh.bak | 1840 ----------------- linux/zsh/.zshrc | 5 +- 10 files changed, 53 insertions(+), 2008 deletions(-) delete mode 100644 linux/hypr/.config/hypr/hypridle.conf.new delete mode 100644 linux/hypr/.config/hypr/hyprlock.conf.new delete mode 100644 linux/hypr/.config/hypr/monitors.conf.new delete mode 100644 linux/hypr/.config/hypr/workspaces.conf.new rename linux/satty/{ => .config/statty}/config.toml (100%) rename linux/sunsetr/{ => .config/sunsetr}/sunsetr.toml (100%) delete mode 100644 linux/zsh/.p10k.zsh.bak diff --git a/linux/hypr/.config/hypr/hypridle.conf.new b/linux/hypr/.config/hypr/hypridle.conf.new deleted file mode 100644 index a77bbb2..0000000 --- a/linux/hypr/.config/hypr/hypridle.conf.new +++ /dev/null @@ -1,26 +0,0 @@ -$lock_cmd = hyprctl dispatch global quickshell:lock & pidof qs quickshell hyprlock || hyprlock -# $lock_cmd = pidof hyprlock || hyprlock -$suspend_cmd = systemctl suspend || loginctl suspend - -general { - lock_cmd = $lock_cmd - before_sleep_cmd = loginctl lock-session - after_sleep_cmd = hyprctl dispatch global quickshell:lockFocus - inhibit_sleep = 3 -} - -listener { - timeout = 300 # 5mins - on-timeout = loginctl lock-session -} - -listener { - timeout = 600 # 10mins - on-timeout = hyprctl dispatch dpms off - on-resume = hyprctl dispatch dpms on -} - -listener { - timeout = 900 # 15mins - on-timeout = $suspend_cmd -} diff --git a/linux/hypr/.config/hypr/hyprlock.conf.new b/linux/hypr/.config/hypr/hyprlock.conf.new deleted file mode 100644 index 208f7cf..0000000 --- a/linux/hypr/.config/hypr/hyprlock.conf.new +++ /dev/null @@ -1,93 +0,0 @@ -source=~/.config/hypr/hyprlock/colors.conf - -background { - color = rgba(181818FF) -} -input-field { - monitor = - size = 250, 50 - outline_thickness = 2 - dots_size = 0.1 - dots_spacing = 0.3 - outer_color = $entry_border_color - inner_color = $entry_background_color - font_color = $entry_color - fade_on_empty = true - - position = 0, 20 - halign = center - valign = center -} - -label { - monitor = - text = $LAYOUT - color = $text_color - font_size = 14 - font_family = $font_family - position = -30, 30 - halign = right - valign = bottom -} - -label { # Caps Lock Warning - monitor = - text = cmd[update:250] ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/hyprlock/check-capslock.sh - color = $text_color - font_size = 13 - font_family = $font_family - position = 0, -25 - halign = center - valign = center -} - - -label { # Clock - monitor = - text = $TIME - color = $text_color - font_size = 65 - font_family = $font_family_clock - - position = 0, 300 - halign = center - valign = center -} -label { # Date - monitor = - text = cmd[update:5000] date +"%A, %B %d" - color = $text_color - font_size = 17 - font_family = $font_family_clock - - position = 0, 240 - halign = center - valign = center -} - -label { # User - monitor = - text =  $USER - color = $text_color - outline_thickness = 2 - dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8 - dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0 - dots_center = true - font_size = 20 - font_family = $font_family - position = 0, 50 - halign = center - valign = bottom -} - -label { # Status - monitor = - text = cmd[update:5000] ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/hyprlock/status.sh - color = $text_color - font_size = 14 - font_family = $font_family - - position = 30, -30 - halign = left - valign = top -} \ No newline at end of file diff --git a/linux/hypr/.config/hypr/monitors.conf.new b/linux/hypr/.config/hypr/monitors.conf.new deleted file mode 100644 index 67c6e19..0000000 --- a/linux/hypr/.config/hypr/monitors.conf.new +++ /dev/null @@ -1,4 +0,0 @@ -# This file is to be overwritten by nwg-displays if you choose to use it. -# nwg-displays is a graphical tool for managing monitors. -# - Installation for Arch Linux: sudo pacman -S nwg-displays -# - Repo: https://github.com/nwg-piotr/nwg-displays diff --git a/linux/hypr/.config/hypr/shared/env.conf b/linux/hypr/.config/hypr/shared/env.conf index 6ba3cdd..9f811af 100644 --- a/linux/hypr/.config/hypr/shared/env.conf +++ b/linux/hypr/.config/hypr/shared/env.conf @@ -21,3 +21,6 @@ # for example: vi nano nvim ... #env = EDITOR, nvim + +# Add custom scripts to PATH +env = PATH,$PATH:$HOME/.local/bin diff --git a/linux/hypr/.config/hypr/shared/keybinds.conf b/linux/hypr/.config/hypr/shared/keybinds.conf index 3a10b3a..52b5e67 100644 --- a/linux/hypr/.config/hypr/shared/keybinds.conf +++ b/linux/hypr/.config/hypr/shared/keybinds.conf @@ -2,50 +2,56 @@ # See https://wiki.hyprland.org/Configuring/Binds/ #! ##! User -bind = Ctrl+Super, Slash, exec, xdg-open ~/.config/illogical-impulse/config.json # Edit shell config -bind = Ctrl+Super+Alt, Slash, exec, xdg-open ~/.config/hypr/custom/keybinds.conf # Edit extra keybinds +unbind = Ctrl+Super, Slash +bind = Ctrl+Super, Slash, exec, zeditor ~/.config/illogical-impulse/config.json # Edit shell config ##! Apps -# bind = Super, Return, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "${TERMINAL}" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # Terminal -# bind = Super, T, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "${TERMINAL}" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # [hidden] (terminal) (alt) -# bind = Ctrl+Alt, T, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "${TERMINAL}" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # [hidden] (terminal) (for Ubuntu people) -# bind = Super, E, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "dolphin" "nautilus" "nemo" "thunar" "${TERMINAL}" "kitty -1 fish -c yazi" # File manager -# bind = Super, W, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "google-chrome-stable" "zen-browser" "firefox" "brave" "chromium" "microsoft-edge-stable" "opera" "librewolf" # Browser -# bind = Super, C, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "code" "codium" "cursor" "zed" "zedit" "zeditor" "kate" "gnome-text-editor" "emacs" "command -v nvim && kitty -1 nvim" "command -v micro && kitty -1 micro" # Code editor -# bind = Ctrl+Super+Shift+Alt, W, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "wps" "onlyoffice-desktopeditors" "libreoffice" # Office software -# bind = Super, X, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "kate" "gnome-text-editor" "emacs" # Text editor -# bind = Ctrl+Super, V, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "pavucontrol-qt" "pavucontrol" # Volume mixer -# bind = Super, I, exec, XDG_CURRENT_DESKTOP=gnome ~/.config/hypr/hyprland/scripts/launch_first_available.sh "qs -p ~/.config/quickshell/$qsConfig/settings.qml" "systemsettings" "gnome-control-center" "better-control" # Settings app -# bind = Ctrl+Shift, Escape, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "gnome-system-monitor" "plasma-systemmonitor --page-name Processes" "command -v btop && kitty -1 fish -c btop" # Task manager +unbind = Super, Return +bind = Super, Return, exec, hypr-launch "${TERMINAL}" "ghostty" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # Terminal +unbind = Super, T +bind = Super, T, exec, hypr-launch "${TERMINAL}" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # [hidden] (terminal) (alt) +unbind = Ctrl+Alt, T +bind = Ctrl+Alt, T, exec, hypr-launch "${TERMINAL}" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # [hidden] (terminal) (for Ubuntu people) +unbind = Super, E +bind = Super, E, exec, hypr-launch "dolphin" "nautilus" "nemo" "thunar" "${TERMINAL}" "kitty -1 fish -c yazi" # File manager +unbind = Super, W +bind = Super, W, exec, hypr-launch "google-chrome-stable" "zen-browser" "firefox" "brave" "chromium" "microsoft-edge-stable" "opera" "librewolf" # Browser +unbind = Super, C +bind = Super, C, exec, hypr-launch "code" "codium" "cursor" "zed" "zedit" "zeditor" "kate" "gnome-text-editor" "emacs" "command -v nvim && kitty -1 nvim" "command -v micro && kitty -1 micro" # Code editor +unbind = Ctrl+Super+Shift+Alt, W +bind = Ctrl+Super+Shift+Alt, W, exec, hypr-launch "wps" "onlyoffice-desktopeditors" "libreoffice" # Office software +unbind = Super, X +bind = Super, X, exec, hypr-launch "kate" "gnome-text-editor" "emacs" # Text editor +unbind = Ctrl+Super, V +bind = Ctrl+Super, V, exec, hypr-launch "pavucontrol-qt" "pavucontrol" # Volume mixer +unbind = Super, I +bind = Super, I, exec, XDG_CURRENT_DESKTOP=gnome hypr-launch "qs -p ~/.config/quickshell/$qsConfig/settings.qml" "systemsettings" "gnome-control-center" "better-control" # Settings app +unbind = Ctrl+Shift, Escape +bind = Ctrl+Shift, Escape, exec, hypr-launch "gnome-system-monitor" "plasma-systemmonitor --page-name Processes" "command -v btop && kitty -1 fish -c btop" # Task manager -# Add stuff here -# Use #! to add an extra column on the cheatsheet -# Use ##! to add a section in that column -# Add a comment after a bind to add a description, like above +# Switch workspaces with mainMod + [0-9] +bind = Super, 1, split-workspace, 1 +bind = Super, 2, split-workspace, 2 +bind = Super, 3, split-workspace, 3 +bind = Super, 4, split-workspace, 4 +bind = Super, 5, split-workspace, 5 +bind = Super, 6, split-workspace, 6 +bind = Super, 7, split-workspace, 7 +bind = Super, 8, split-workspace, 8 +bind = Super, 9, split-workspace, 9 +bind = Super, 0, split-workspace, 10 -#/# bind = Super+Shift, Hash,, # Send to workspace # (1, 2, 3,...) -# We use raw keycodes because some keyboard layouts register number keys as different chars. The codes can be verified with `wev` -bind = Super+Shift, code:10, exec, $scriptsPath/workspace_action.sh movetoworkspace 1 # [hidden] -bind = Super+Shift, code:11, exec, $scriptsPath/workspace_action.sh movetoworkspace 2 # [hidden] -bind = Super+Shift, code:12, exec, $scriptsPath/workspace_action.sh movetoworkspace 3 # [hidden] -bind = Super+Shift, code:15, exec, $scriptsPath/workspace_action.sh movetoworkspace 6 # [hidden] -bind = Super+Shift, code:16, exec, $scriptsPath/workspace_action.sh movetoworkspace 7 # [hidden] -bind = Super+Shift, code:13, exec, $scriptsPath/workspace_action.sh movetoworkspace 4 # [hidden] -bind = Super+Shift, code:14, exec, $scriptsPath/workspace_action.sh movetoworkspace 5 # [hidden] -bind = Super+Shift, code:17, exec, $scriptsPath/workspace_action.sh movetoworkspace 8 # [hidden] -bind = Super+Shift, code:18, exec, $scriptsPath/workspace_action.sh movetoworkspace 9 # [hidden] -bind = Super+Shift, code:19, exec, $scriptsPath/workspace_action.sh movetoworkspace 10 # [hidden] -# keypad numbers -bind = Super+Shift, code:87, exec, $scriptsPath/workspace_action.sh movetoworkspace 1 # [hidden] -bind = Super+Shift, code:88, exec, $scriptsPath/workspace_action.sh movetoworkspace 2 # [hidden] -bind = Super+Shift, code:89, exec, $scriptsPath/workspace_action.sh movetoworkspace 3 # [hidden] -bind = Super+Shift, code:83, exec, $scriptsPath/workspace_action.sh movetoworkspace 4 # [hidden] -bind = Super+Shift, code:84, exec, $scriptsPath/workspace_action.sh movetoworkspace 5 # [hidden] -bind = Super+Shift, code:85, exec, $scriptsPath/workspace_action.sh movetoworkspace 6 # [hidden] -bind = Super+Shift, code:79, exec, $scriptsPath/workspace_action.sh movetoworkspace 7 # [hidden] -bind = Super+Shift, code:80, exec, $scriptsPath/workspace_action.sh movetoworkspace 8 # [hidden] -bind = Super+Shift, code:81, exec, $scriptsPath/workspace_action.sh movetoworkspace 9 # [hidden] -bind = Super+Shift, code:90, exec, $scriptsPath/workspace_action.sh movetoworkspace 10 # [hidden] +# Move active window to a workspace with mainMod + SHIFT + [0-9] +bind = Super+Shift, 1, split-movetoworkspace, 1 +bind = Super+Shift, 2, split-movetoworkspace, 2 +bind = Super+Shift, 3, split-movetoworkspace, 3 +bind = Super+Shift, 4, split-movetoworkspace, 4 +bind = Super+Shift, 5, split-movetoworkspace, 5 +bind = Super+Shift, 6, split-movetoworkspace, 6 +bind = Super+Shift, 7, split-movetoworkspace, 7 +bind = Super+Shift, 8, split-movetoworkspace, 8 +bind = Super+Shift, 9, split-movetoworkspace, 9 +bind = Super+Shift, 0, split-movetoworkspace, 10 # #/# bind = Super+Shift, Scroll ↑/↓,, # Send to workspace left/right bind = Super+Shift, mouse_down, movetoworkspace, r-1 # [hidden] diff --git a/linux/hypr/.config/hypr/workspaces.conf.new b/linux/hypr/.config/hypr/workspaces.conf.new deleted file mode 100644 index 67c6e19..0000000 --- a/linux/hypr/.config/hypr/workspaces.conf.new +++ /dev/null @@ -1,4 +0,0 @@ -# This file is to be overwritten by nwg-displays if you choose to use it. -# nwg-displays is a graphical tool for managing monitors. -# - Installation for Arch Linux: sudo pacman -S nwg-displays -# - Repo: https://github.com/nwg-piotr/nwg-displays diff --git a/linux/satty/config.toml b/linux/satty/.config/statty/config.toml similarity index 100% rename from linux/satty/config.toml rename to linux/satty/.config/statty/config.toml diff --git a/linux/sunsetr/sunsetr.toml b/linux/sunsetr/.config/sunsetr/sunsetr.toml similarity index 100% rename from linux/sunsetr/sunsetr.toml rename to linux/sunsetr/.config/sunsetr/sunsetr.toml diff --git a/linux/zsh/.p10k.zsh.bak b/linux/zsh/.p10k.zsh.bak deleted file mode 100644 index 96675e7..0000000 --- a/linux/zsh/.p10k.zsh.bak +++ /dev/null @@ -1,1840 +0,0 @@ -# Generated by Powerlevel10k configuration wizard on 2026-02-14 at 15:53 CET. -# Based on romkatv/powerlevel10k/config/p10k-rainbow.zsh, checksum 57633. -# Wizard options: nerdfont-v3 + powerline, small icons, rainbow, unicode, 24h time, -# angled separators, blurred heads, flat tails, 2 lines, dotted, full frame, -# dark-ornaments, compact, many icons, fluent, transient_prompt, instant_prompt=verbose. -# Type `p10k configure` to generate another config. -# -# Config for Powerlevel10k with powerline prompt style with colorful background. -# Type `p10k configure` to generate your own config based on it. -# -# Tip: Looking for a nice color? Here's a one-liner to print colormap. -# -# for i in {0..255}; do print -Pn "%K{$i} %k%F{$i}${(l:3::0:)i}%f " ${${(M)$((i%6)):#3}:+$'\n'}; done - -# Temporarily change options. -'builtin' 'local' '-a' 'p10k_config_opts' -[[ ! -o 'aliases' ]] || p10k_config_opts+=('aliases') -[[ ! -o 'sh_glob' ]] || p10k_config_opts+=('sh_glob') -[[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand') -'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand' - -() { - emulate -L zsh -o extended_glob - - # Unset all configuration options. This allows you to apply configuration changes without - # restarting zsh. Edit ~/.p10k.zsh and type `source ~/.p10k.zsh`. - unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR' - - # Zsh >= 5.1 is required. - [[ $ZSH_VERSION == (5.<1->*|<6->.*) ]] || return - - # The list of segments shown on the left. Fill it with the most important segments. - typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=( - # =========================[ Line #1 ]========================= - os_icon # os identifier - dir # current directory - vcs # git status - # =========================[ Line #2 ]========================= - newline # \n - # prompt_char # prompt symbol - ) - - # The list of segments shown on the right. Fill it with less important segments. - # Right prompt on the last prompt line (where you are typing your commands) gets - # automatically hidden when the input line reaches it. Right prompt above the - # last prompt line gets hidden if it would overlap with left prompt. - typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=( - # =========================[ Line #1 ]========================= - status # exit code of the last command - command_execution_time # duration of the last command - background_jobs # presence of background jobs - direnv # direnv status (https://direnv.net/) - asdf # asdf version manager (https://github.com/asdf-vm/asdf) - virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html) - anaconda # conda environment (https://conda.io/) - pyenv # python environment (https://github.com/pyenv/pyenv) - goenv # go environment (https://github.com/syndbg/goenv) - nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv) - nvm # node.js version from nvm (https://github.com/nvm-sh/nvm) - nodeenv # node.js environment (https://github.com/ekalinin/nodeenv) - # node_version # node.js version - # go_version # go version (https://golang.org) - # rust_version # rustc version (https://www.rust-lang.org) - # dotnet_version # .NET version (https://dotnet.microsoft.com) - # php_version # php version (https://www.php.net/) - # laravel_version # laravel php framework version (https://laravel.com/) - # java_version # java version (https://www.java.com/) - # package # name@version from package.json (https://docs.npmjs.com/files/package.json) - rbenv # ruby version from rbenv (https://github.com/rbenv/rbenv) - rvm # ruby version from rvm (https://rvm.io) - fvm # flutter version management (https://github.com/leoafarias/fvm) - luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv) - jenv # java version from jenv (https://github.com/jenv/jenv) - plenv # perl version from plenv (https://github.com/tokuhirom/plenv) - perlbrew # perl version from perlbrew (https://github.com/gugod/App-perlbrew) - phpenv # php version from phpenv (https://github.com/phpenv/phpenv) - scalaenv # scala version from scalaenv (https://github.com/scalaenv/scalaenv) - haskell_stack # haskell version from stack (https://haskellstack.org/) - kubecontext # current kubernetes context (https://kubernetes.io/) - terraform # terraform workspace (https://www.terraform.io) - # terraform_version # terraform version (https://www.terraform.io) - aws # aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) - aws_eb_env # aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/) - azure # azure account name (https://docs.microsoft.com/en-us/cli/azure) - gcloud # google cloud cli account and project (https://cloud.google.com/) - google_app_cred # google application credentials (https://cloud.google.com/docs/authentication/production) - toolbox # toolbox name (https://github.com/containers/toolbox) - context # user@hostname - nordvpn # nordvpn connection status, linux only (https://nordvpn.com/) - ranger # ranger shell (https://github.com/ranger/ranger) - yazi # yazi shell (https://github.com/sxyazi/yazi) - nnn # nnn shell (https://github.com/jarun/nnn) - lf # lf shell (https://github.com/gokcehan/lf) - xplr # xplr shell (https://github.com/sayanarijit/xplr) - vim_shell # vim shell indicator (:sh) - midnight_commander # midnight commander shell (https://midnight-commander.org/) - nix_shell # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) - chezmoi_shell # chezmoi shell (https://www.chezmoi.io/) - vi_mode # vi mode (you don't need this if you've enabled prompt_char) - # vpn_ip # virtual private network indicator - # load # CPU load - # disk_usage # disk usage - # ram # free RAM - # swap # used swap - todo # todo items (https://github.com/todotxt/todo.txt-cli) - timewarrior # timewarrior tracking status (https://timewarrior.net/) - taskwarrior # taskwarrior task count (https://taskwarrior.org/) - per_directory_history # Oh My Zsh per-directory-history local/global indicator - # cpu_arch # CPU architecture - time # current time - # =========================[ Line #2 ]========================= - newline - # ip # ip address and bandwidth usage for a specified network interface - # public_ip # public IP address - # proxy # system-wide http/https/ftp proxy - # battery # internal battery - # wifi # wifi speed - # example # example user-defined segment (see prompt_example function below) - ) - - # Defines character set used by powerlevel10k. It's best to let `p10k configure` set it for you. - typeset -g POWERLEVEL9K_MODE=nerdfont-v3 - # When set to `moderate`, some icons will have an extra space after them. This is meant to avoid - # icon overlap when using non-monospace fonts. When set to `none`, spaces are not added. - typeset -g POWERLEVEL9K_ICON_PADDING=none - - # When set to true, icons appear before content on both sides of the prompt. When set - # to false, icons go after content. If empty or not set, icons go before content in the left - # prompt and after content in the right prompt. - # - # You can also override it for a specific segment: - # - # POWERLEVEL9K_STATUS_ICON_BEFORE_CONTENT=false - # - # Or for a specific segment in specific state: - # - # POWERLEVEL9K_DIR_NOT_WRITABLE_ICON_BEFORE_CONTENT=false - typeset -g POWERLEVEL9K_ICON_BEFORE_CONTENT= - - # Add an empty line before each prompt. - typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=false - - # Connect left prompt lines with these symbols. You'll probably want to use the same color - # as POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND below. - typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX='%240F╭─' - typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX='%240F├─' - typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX='%240F╰─' - # Connect right prompt lines with these symbols. - typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX='%240F─╮' - typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX='%240F─┤' - typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX='%240F─╯' - - # Filler between left and right prompt on the first prompt line. You can set it to ' ', '·' or - # '─'. The last two make it easier to see the alignment between left and right prompt and to - # separate prompt from command output. You might want to set POWERLEVEL9K_PROMPT_ADD_NEWLINE=false - # for more compact prompt if using this option. - typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR='·' - typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_BACKGROUND= - typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_GAP_BACKGROUND= - if [[ $POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR != ' ' ]]; then - # The color of the filler. You'll probably want to match the color of POWERLEVEL9K_MULTILINE - # ornaments defined above. - typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND=240 - # Start filler from the edge of the screen if there are no left segments on the first line. - typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_FIRST_SEGMENT_END_SYMBOL='%{%}' - # End filler on the edge of the screen if there are no right segments on the first line. - typeset -g POWERLEVEL9K_EMPTY_LINE_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='%{%}' - fi - - # Separator between same-color segments on the left. - typeset -g POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR='\uE0B1' - # Separator between same-color segments on the right. - typeset -g POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR='\uE0B3' - # Separator between different-color segments on the left. - typeset -g POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR='\uE0B0' - # Separator between different-color segments on the right. - typeset -g POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR='\uE0B2' - # To remove a separator between two segments, add "_joined" to the second segment name. - # For example: POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(os_icon context_joined) - - # The right end of left prompt. - typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL='▓▒░' - # The left end of right prompt. - typeset -g POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='░▒▓' - # The left end of left prompt. - typeset -g POWERLEVEL9K_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL='' - # The right end of right prompt. - typeset -g POWERLEVEL9K_RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL='' - # Left prompt terminator for lines without any segments. - typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL= - - #################################[ os_icon: os identifier ]################################## - # OS identifier color. - typeset -g POWERLEVEL9K_OS_ICON_FOREGROUND=232 - typeset -g POWERLEVEL9K_OS_ICON_BACKGROUND=7 - # Custom icon. - # typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION='⭐' - - ################################[ prompt_char: prompt symbol ]################################ - # Transparent background. - typeset -g POWERLEVEL9K_PROMPT_CHAR_BACKGROUND= - # Green prompt symbol if the last command succeeded. - typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=76 - # Red prompt symbol if the last command failed. - typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=196 - # Default prompt symbol. - typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION='❯' - # Prompt symbol in command vi mode. - typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION='❮' - # Prompt symbol in visual vi mode. - typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION='V' - # Prompt symbol in overwrite vi mode. - typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIOWR_CONTENT_EXPANSION='▶' - typeset -g POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE=true - # No line terminator if prompt_char is the last segment. - typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL= - # No line introducer if prompt_char is the first segment. - typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL= - # No surrounding whitespace. - typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_{LEFT,RIGHT}_WHITESPACE= - - ##################################[ dir: current directory ]################################## - # Current directory background color. - typeset -g POWERLEVEL9K_DIR_BACKGROUND=4 - # Default current directory foreground color. - typeset -g POWERLEVEL9K_DIR_FOREGROUND=254 - # If directory is too long, shorten some of its segments to the shortest possible unique - # prefix. The shortened directory can be tab-completed to the original. - typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_unique - # Replace removed segment suffixes with this symbol. - typeset -g POWERLEVEL9K_SHORTEN_DELIMITER= - # Color of the shortened directory segments. - typeset -g POWERLEVEL9K_DIR_SHORTENED_FOREGROUND=250 - # Color of the anchor directory segments. Anchor segments are never shortened. The first - # segment is always an anchor. - typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND=255 - # Display anchor directory segments in bold. - typeset -g POWERLEVEL9K_DIR_ANCHOR_BOLD=true - # Don't shorten directories that contain any of these files. They are anchors. - local anchor_files=( - .bzr - .citc - .git - .hg - .node-version - .python-version - .go-version - .ruby-version - .lua-version - .java-version - .perl-version - .php-version - .tool-versions - .mise.toml - .shorten_folder_marker - .svn - .terraform - CVS - Cargo.toml - composer.json - go.mod - package.json - stack.yaml - ) - typeset -g POWERLEVEL9K_SHORTEN_FOLDER_MARKER="(${(j:|:)anchor_files})" - # If set to "first" ("last"), remove everything before the first (last) subdirectory that contains - # files matching $POWERLEVEL9K_SHORTEN_FOLDER_MARKER. For example, when the current directory is - # /foo/bar/git_repo/nested_git_repo/baz, prompt will display git_repo/nested_git_repo/baz (first) - # or nested_git_repo/baz (last). This assumes that git_repo and nested_git_repo contain markers - # and other directories don't. - # - # Optionally, "first" and "last" can be followed by ":" where is an integer. - # This moves the truncation point to the right (positive offset) or to the left (negative offset) - # relative to the marker. Plain "first" and "last" are equivalent to "first:0" and "last:0" - # respectively. - typeset -g POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER=false - # Don't shorten this many last directory segments. They are anchors. - typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1 - # Shorten directory if it's longer than this even if there is space for it. The value can - # be either absolute (e.g., '80') or a percentage of terminal width (e.g, '50%'). If empty, - # directory will be shortened only when prompt doesn't fit or when other parameters demand it - # (see POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS and POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT below). - # If set to `0`, directory will always be shortened to its minimum length. - typeset -g POWERLEVEL9K_DIR_MAX_LENGTH=80 - # When `dir` segment is on the last prompt line, try to shorten it enough to leave at least this - # many columns for typing commands. - typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS=40 - # When `dir` segment is on the last prompt line, try to shorten it enough to leave at least - # COLUMNS * POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT * 0.01 columns for typing commands. - typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT=50 - # If set to true, embed a hyperlink into the directory. Useful for quickly - # opening a directory in the file manager simply by clicking the link. - # Can also be handy when the directory is shortened, as it allows you to see - # the full directory that was used in previous commands. - typeset -g POWERLEVEL9K_DIR_HYPERLINK=false - - # Enable special styling for non-writable and non-existent directories. See POWERLEVEL9K_LOCK_ICON - # and POWERLEVEL9K_DIR_CLASSES below. - typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=v3 - - # The default icon shown next to non-writable and non-existent directories when - # POWERLEVEL9K_DIR_SHOW_WRITABLE is set to v3. - # typeset -g POWERLEVEL9K_LOCK_ICON='⭐' - - # POWERLEVEL9K_DIR_CLASSES allows you to specify custom icons and colors for different - # directories. It must be an array with 3 * N elements. Each triplet consists of: - # - # 1. A pattern against which the current directory ($PWD) is matched. Matching is done with - # extended_glob option enabled. - # 2. Directory class for the purpose of styling. - # 3. An empty string. - # - # Triplets are tried in order. The first triplet whose pattern matches $PWD wins. - # - # If POWERLEVEL9K_DIR_SHOW_WRITABLE is set to v3, non-writable and non-existent directories - # acquire class suffix _NOT_WRITABLE and NON_EXISTENT respectively. - # - # For example, given these settings: - # - # typeset -g POWERLEVEL9K_DIR_CLASSES=( - # '~/work(|/*)' WORK '' - # '~(|/*)' HOME '' - # '*' DEFAULT '') - # - # Whenever the current directory is ~/work or a subdirectory of ~/work, it gets styled with one - # of the following classes depending on its writability and existence: WORK, WORK_NOT_WRITABLE or - # WORK_NON_EXISTENT. - # - # Simply assigning classes to directories doesn't have any visible effects. It merely gives you an - # option to define custom colors and icons for different directory classes. - # - # # Styling for WORK. - # typeset -g POWERLEVEL9K_DIR_WORK_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_DIR_WORK_BACKGROUND=4 - # typeset -g POWERLEVEL9K_DIR_WORK_FOREGROUND=254 - # typeset -g POWERLEVEL9K_DIR_WORK_SHORTENED_FOREGROUND=250 - # typeset -g POWERLEVEL9K_DIR_WORK_ANCHOR_FOREGROUND=255 - # - # # Styling for WORK_NOT_WRITABLE. - # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_BACKGROUND=4 - # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_FOREGROUND=254 - # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_SHORTENED_FOREGROUND=250 - # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_ANCHOR_FOREGROUND=255 - # - # # Styling for WORK_NON_EXISTENT. - # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_BACKGROUND=4 - # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_FOREGROUND=254 - # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_SHORTENED_FOREGROUND=250 - # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_ANCHOR_FOREGROUND=255 - # - # If a styling parameter isn't explicitly defined for some class, it falls back to the classless - # parameter. For example, if POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_FOREGROUND is not set, it falls - # back to POWERLEVEL9K_DIR_FOREGROUND. - # - # typeset -g POWERLEVEL9K_DIR_CLASSES=() - - # Custom prefix. - # typeset -g POWERLEVEL9K_DIR_PREFIX='in ' - - #####################################[ vcs: git status ]###################################### - # Version control background colors. - typeset -g POWERLEVEL9K_VCS_CLEAN_BACKGROUND=2 - typeset -g POWERLEVEL9K_VCS_MODIFIED_BACKGROUND=3 - typeset -g POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND=2 - typeset -g POWERLEVEL9K_VCS_CONFLICTED_BACKGROUND=3 - typeset -g POWERLEVEL9K_VCS_LOADING_BACKGROUND=8 - - # Branch icon. Set this parameter to '\UE0A0 ' for the popular Powerline branch icon. - typeset -g POWERLEVEL9K_VCS_BRANCH_ICON='\uF126 ' - - # Untracked files icon. It's really a question mark, your font isn't broken. - # Change the value of this parameter to show a different icon. - typeset -g POWERLEVEL9K_VCS_UNTRACKED_ICON='?' - - # Formatter for Git status. - # - # Example output: master wip ⇣42⇡42 *42 merge ~42 +42 !42 ?42. - # - # You can edit the function to customize how Git status looks. - # - # VCS_STATUS_* parameters are set by gitstatus plugin. See reference: - # https://github.com/romkatv/gitstatus/blob/master/gitstatus.plugin.zsh. - function my_git_formatter() { - emulate -L zsh - - if [[ -n $P9K_CONTENT ]]; then - # If P9K_CONTENT is not empty, use it. It's either "loading" or from vcs_info (not from - # gitstatus plugin). VCS_STATUS_* parameters are not available in this case. - typeset -g my_git_format=$P9K_CONTENT - return - fi - - # Styling for different parts of Git status. - local meta='%7F' # white foreground - local clean='%0F' # black foreground - local modified='%0F' # black foreground - local untracked='%0F' # black foreground - local conflicted='%1F' # red foreground - - local res - - if [[ -n $VCS_STATUS_LOCAL_BRANCH ]]; then - local branch=${(V)VCS_STATUS_LOCAL_BRANCH} - # If local branch name is at most 32 characters long, show it in full. - # Otherwise show the first 12 … the last 12. - # Tip: To always show local branch name in full without truncation, delete the next line. - (( $#branch > 32 )) && branch[13,-13]="…" # <-- this line - res+="${clean}${(g::)POWERLEVEL9K_VCS_BRANCH_ICON}${branch//\%/%%}" - fi - - if [[ -n $VCS_STATUS_TAG - # Show tag only if not on a branch. - # Tip: To always show tag, delete the next line. - && -z $VCS_STATUS_LOCAL_BRANCH # <-- this line - ]]; then - local tag=${(V)VCS_STATUS_TAG} - # If tag name is at most 32 characters long, show it in full. - # Otherwise show the first 12 … the last 12. - # Tip: To always show tag name in full without truncation, delete the next line. - (( $#tag > 32 )) && tag[13,-13]="…" # <-- this line - res+="${meta}#${clean}${tag//\%/%%}" - fi - - # Display the current Git commit if there is no branch and no tag. - # Tip: To always display the current Git commit, delete the next line. - [[ -z $VCS_STATUS_LOCAL_BRANCH && -z $VCS_STATUS_TAG ]] && # <-- this line - res+="${meta}@${clean}${VCS_STATUS_COMMIT[1,8]}" - - # Show tracking branch name if it differs from local branch. - if [[ -n ${VCS_STATUS_REMOTE_BRANCH:#$VCS_STATUS_LOCAL_BRANCH} ]]; then - res+="${meta}:${clean}${(V)VCS_STATUS_REMOTE_BRANCH//\%/%%}" - fi - - # Display "wip" if the latest commit's summary contains "wip" or "WIP". - if [[ $VCS_STATUS_COMMIT_SUMMARY == (|*[^[:alnum:]])(wip|WIP)(|[^[:alnum:]]*) ]]; then - res+=" ${modified}wip" - fi - - if (( VCS_STATUS_COMMITS_AHEAD || VCS_STATUS_COMMITS_BEHIND )); then - # ⇣42 if behind the remote. - (( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}⇣${VCS_STATUS_COMMITS_BEHIND}" - # ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42. - (( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && res+=" " - (( VCS_STATUS_COMMITS_AHEAD )) && res+="${clean}⇡${VCS_STATUS_COMMITS_AHEAD}" - elif [[ -n $VCS_STATUS_REMOTE_BRANCH ]]; then - # Tip: Uncomment the next line to display '=' if up to date with the remote. - # res+=" ${clean}=" - fi - - # ⇠42 if behind the push remote. - (( VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" ${clean}⇠${VCS_STATUS_PUSH_COMMITS_BEHIND}" - (( VCS_STATUS_PUSH_COMMITS_AHEAD && !VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" " - # ⇢42 if ahead of the push remote; no leading space if also behind: ⇠42⇢42. - (( VCS_STATUS_PUSH_COMMITS_AHEAD )) && res+="${clean}⇢${VCS_STATUS_PUSH_COMMITS_AHEAD}" - # *42 if have stashes. - (( VCS_STATUS_STASHES )) && res+=" ${clean}*${VCS_STATUS_STASHES}" - # 'merge' if the repo is in an unusual state. - [[ -n $VCS_STATUS_ACTION ]] && res+=" ${conflicted}${VCS_STATUS_ACTION}" - # ~42 if have merge conflicts. - (( VCS_STATUS_NUM_CONFLICTED )) && res+=" ${conflicted}~${VCS_STATUS_NUM_CONFLICTED}" - # +42 if have staged changes. - (( VCS_STATUS_NUM_STAGED )) && res+=" ${modified}+${VCS_STATUS_NUM_STAGED}" - # !42 if have unstaged changes. - (( VCS_STATUS_NUM_UNSTAGED )) && res+=" ${modified}!${VCS_STATUS_NUM_UNSTAGED}" - # ?42 if have untracked files. It's really a question mark, your font isn't broken. - # See POWERLEVEL9K_VCS_UNTRACKED_ICON above if you want to use a different icon. - # Remove the next line if you don't want to see untracked files at all. - (( VCS_STATUS_NUM_UNTRACKED )) && res+=" ${untracked}${(g::)POWERLEVEL9K_VCS_UNTRACKED_ICON}${VCS_STATUS_NUM_UNTRACKED}" - # "─" if the number of unstaged files is unknown. This can happen due to - # POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY (see below) being set to a non-negative number lower - # than the number of files in the Git index, or due to bash.showDirtyState being set to false - # in the repository config. The number of staged and untracked files may also be unknown - # in this case. - (( VCS_STATUS_HAS_UNSTAGED == -1 )) && res+=" ${modified}─" - - typeset -g my_git_format=$res - } - functions -M my_git_formatter 2>/dev/null - - # Don't count the number of unstaged, untracked and conflicted files in Git repositories with - # more than this many files in the index. Negative value means infinity. - # - # If you are working in Git repositories with tens of millions of files and seeing performance - # sagging, try setting POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY to a number lower than the output - # of `git ls-files | wc -l`. Alternatively, add `bash.showDirtyState = false` to the repository's - # config: `git config bash.showDirtyState false`. - typeset -g POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY=-1 - - # Don't show Git status in prompt for repositories whose workdir matches this pattern. - # For example, if set to '~', the Git repository at $HOME/.git will be ignored. - # Multiple patterns can be combined with '|': '~(|/foo)|/bar/baz/*'. - typeset -g POWERLEVEL9K_VCS_DISABLED_WORKDIR_PATTERN='~' - - # Disable the default Git status formatting. - typeset -g POWERLEVEL9K_VCS_DISABLE_GITSTATUS_FORMATTING=true - # Install our own Git status formatter. - typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${$((my_git_formatter()))+${my_git_format}}' - # Enable counters for staged, unstaged, etc. - typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED,CONFLICTED,COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=-1 - - # Custom icon. - # typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION='⭐' - # Custom prefix. - typeset -g POWERLEVEL9K_VCS_PREFIX='on ' - - # Show status of repositories of these types. You can add svn and/or hg if you are - # using them. If you do, your prompt may become slow even when your current directory - # isn't in an svn or hg repository. - typeset -g POWERLEVEL9K_VCS_BACKENDS=(git) - - ##########################[ status: exit code of the last command ]########################### - # Enable OK_PIPE, ERROR_PIPE and ERROR_SIGNAL status states to allow us to enable, disable and - # style them independently from the regular OK and ERROR state. - typeset -g POWERLEVEL9K_STATUS_EXTENDED_STATES=true - - # Status on success. No content, just an icon. No need to show it if prompt_char is enabled as - # it will signify success by turning green. - typeset -g POWERLEVEL9K_STATUS_OK=true - typeset -g POWERLEVEL9K_STATUS_OK_VISUAL_IDENTIFIER_EXPANSION='✔' - typeset -g POWERLEVEL9K_STATUS_OK_FOREGROUND=2 - typeset -g POWERLEVEL9K_STATUS_OK_BACKGROUND=0 - - # Status when some part of a pipe command fails but the overall exit status is zero. It may look - # like this: 1|0. - typeset -g POWERLEVEL9K_STATUS_OK_PIPE=true - typeset -g POWERLEVEL9K_STATUS_OK_PIPE_VISUAL_IDENTIFIER_EXPANSION='✔' - typeset -g POWERLEVEL9K_STATUS_OK_PIPE_FOREGROUND=2 - typeset -g POWERLEVEL9K_STATUS_OK_PIPE_BACKGROUND=0 - - # Status when it's just an error code (e.g., '1'). No need to show it if prompt_char is enabled as - # it will signify error by turning red. - typeset -g POWERLEVEL9K_STATUS_ERROR=true - typeset -g POWERLEVEL9K_STATUS_ERROR_VISUAL_IDENTIFIER_EXPANSION='✘' - typeset -g POWERLEVEL9K_STATUS_ERROR_FOREGROUND=3 - typeset -g POWERLEVEL9K_STATUS_ERROR_BACKGROUND=1 - - # Status when the last command was terminated by a signal. - typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL=true - # Use terse signal names: "INT" instead of "SIGINT(2)". - typeset -g POWERLEVEL9K_STATUS_VERBOSE_SIGNAME=false - typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_VISUAL_IDENTIFIER_EXPANSION='✘' - typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_FOREGROUND=3 - typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_BACKGROUND=1 - - # Status when some part of a pipe command fails and the overall exit status is also non-zero. - # It may look like this: 1|0. - typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE=true - typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_VISUAL_IDENTIFIER_EXPANSION='✘' - typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_FOREGROUND=3 - typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_BACKGROUND=1 - - ###################[ command_execution_time: duration of the last command ]################### - # Execution time color. - typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=0 - typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_BACKGROUND=3 - # Show duration of the last command if takes at least this many seconds. - typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3 - # Show this many fractional digits. Zero means round to seconds. - typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0 - # Duration format: 1d 2h 3m 4s. - typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s' - # Custom icon. - # typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_VISUAL_IDENTIFIER_EXPANSION='⭐' - # Custom prefix. - typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PREFIX='took ' - - #######################[ background_jobs: presence of background jobs ]####################### - # Background jobs color. - typeset -g POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=6 - typeset -g POWERLEVEL9K_BACKGROUND_JOBS_BACKGROUND=0 - # Don't show the number of background jobs. - typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=false - # Custom icon. - # typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #######################[ direnv: direnv status (https://direnv.net/) ]######################## - # Direnv color. - typeset -g POWERLEVEL9K_DIRENV_FOREGROUND=3 - typeset -g POWERLEVEL9K_DIRENV_BACKGROUND=0 - # Custom icon. - # typeset -g POWERLEVEL9K_DIRENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###############[ asdf: asdf version manager (https://github.com/asdf-vm/asdf) ]############### - # Default asdf color. Only used to display tools for which there is no color override (see below). - # Tip: Override these parameters for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_FOREGROUND and - # POWERLEVEL9K_ASDF_${TOOL}_BACKGROUND. - typeset -g POWERLEVEL9K_ASDF_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_BACKGROUND=7 - - # There are four parameters that can be used to hide asdf tools. Each parameter describes - # conditions under which a tool gets hidden. Parameters can hide tools but not unhide them. If at - # least one parameter decides to hide a tool, that tool gets hidden. If no parameter decides to - # hide a tool, it gets shown. - # - # Special note on the difference between POWERLEVEL9K_ASDF_SOURCES and - # POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW. Consider the effect of the following commands: - # - # asdf local python 3.8.1 - # asdf global python 3.8.1 - # - # After running both commands the current python version is 3.8.1 and its source is "local" as - # it takes precedence over "global". If POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW is set to false, - # it'll hide python version in this case because 3.8.1 is the same as the global version. - # POWERLEVEL9K_ASDF_SOURCES will hide python version only if the value of this parameter doesn't - # contain "local". - - # Hide tool versions that don't come from one of these sources. - # - # Available sources: - # - # - shell `asdf current` says "set by ASDF_${TOOL}_VERSION environment variable" - # - local `asdf current` says "set by /some/not/home/directory/file" - # - global `asdf current` says "set by /home/username/file" - # - # Note: If this parameter is set to (shell local global), it won't hide tools. - # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SOURCES. - typeset -g POWERLEVEL9K_ASDF_SOURCES=(shell local global) - - # If set to false, hide tool versions that are the same as global. - # - # Note: The name of this parameter doesn't reflect its meaning at all. - # Note: If this parameter is set to true, it won't hide tools. - # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_PROMPT_ALWAYS_SHOW. - typeset -g POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW=false - - # If set to false, hide tool versions that are equal to "system". - # - # Note: If this parameter is set to true, it won't hide tools. - # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SHOW_SYSTEM. - typeset -g POWERLEVEL9K_ASDF_SHOW_SYSTEM=true - - # If set to non-empty value, hide tools unless there is a file matching the specified file pattern - # in the current directory, or its parent directory, or its grandparent directory, and so on. - # - # Note: If this parameter is set to empty value, it won't hide tools. - # Note: SHOW_ON_UPGLOB isn't specific to asdf. It works with all prompt segments. - # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SHOW_ON_UPGLOB. - # - # Example: Hide nodejs version when there is no package.json and no *.js files in the current - # directory, in `..`, in `../..` and so on. - # - # typeset -g POWERLEVEL9K_ASDF_NODEJS_SHOW_ON_UPGLOB='*.js|package.json' - typeset -g POWERLEVEL9K_ASDF_SHOW_ON_UPGLOB= - - # Ruby version from asdf. - typeset -g POWERLEVEL9K_ASDF_RUBY_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_RUBY_BACKGROUND=1 - # typeset -g POWERLEVEL9K_ASDF_RUBY_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_RUBY_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Python version from asdf. - typeset -g POWERLEVEL9K_ASDF_PYTHON_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_PYTHON_BACKGROUND=4 - # typeset -g POWERLEVEL9K_ASDF_PYTHON_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_PYTHON_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Go version from asdf. - typeset -g POWERLEVEL9K_ASDF_GOLANG_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_GOLANG_BACKGROUND=4 - # typeset -g POWERLEVEL9K_ASDF_GOLANG_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_GOLANG_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Node.js version from asdf. - typeset -g POWERLEVEL9K_ASDF_NODEJS_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_NODEJS_BACKGROUND=2 - # typeset -g POWERLEVEL9K_ASDF_NODEJS_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_NODEJS_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Rust version from asdf. - typeset -g POWERLEVEL9K_ASDF_RUST_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_RUST_BACKGROUND=208 - # typeset -g POWERLEVEL9K_ASDF_RUST_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_RUST_SHOW_ON_UPGLOB='*.foo|*.bar' - - # .NET Core version from asdf. - typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_BACKGROUND=5 - # typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Flutter version from asdf. - typeset -g POWERLEVEL9K_ASDF_FLUTTER_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_FLUTTER_BACKGROUND=4 - # typeset -g POWERLEVEL9K_ASDF_FLUTTER_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_FLUTTER_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Lua version from asdf. - typeset -g POWERLEVEL9K_ASDF_LUA_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_LUA_BACKGROUND=4 - # typeset -g POWERLEVEL9K_ASDF_LUA_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_LUA_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Java version from asdf. - typeset -g POWERLEVEL9K_ASDF_JAVA_FOREGROUND=1 - typeset -g POWERLEVEL9K_ASDF_JAVA_BACKGROUND=7 - # typeset -g POWERLEVEL9K_ASDF_JAVA_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_JAVA_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Perl version from asdf. - typeset -g POWERLEVEL9K_ASDF_PERL_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_PERL_BACKGROUND=4 - # typeset -g POWERLEVEL9K_ASDF_PERL_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_PERL_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Erlang version from asdf. - typeset -g POWERLEVEL9K_ASDF_ERLANG_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_ERLANG_BACKGROUND=1 - # typeset -g POWERLEVEL9K_ASDF_ERLANG_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_ERLANG_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Elixir version from asdf. - typeset -g POWERLEVEL9K_ASDF_ELIXIR_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_ELIXIR_BACKGROUND=5 - # typeset -g POWERLEVEL9K_ASDF_ELIXIR_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_ELIXIR_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Postgres version from asdf. - typeset -g POWERLEVEL9K_ASDF_POSTGRES_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_POSTGRES_BACKGROUND=6 - # typeset -g POWERLEVEL9K_ASDF_POSTGRES_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_POSTGRES_SHOW_ON_UPGLOB='*.foo|*.bar' - - # PHP version from asdf. - typeset -g POWERLEVEL9K_ASDF_PHP_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_PHP_BACKGROUND=5 - # typeset -g POWERLEVEL9K_ASDF_PHP_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_PHP_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Haskell version from asdf. - typeset -g POWERLEVEL9K_ASDF_HASKELL_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_HASKELL_BACKGROUND=3 - # typeset -g POWERLEVEL9K_ASDF_HASKELL_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_HASKELL_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Julia version from asdf. - typeset -g POWERLEVEL9K_ASDF_JULIA_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_JULIA_BACKGROUND=2 - # typeset -g POWERLEVEL9K_ASDF_JULIA_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_JULIA_SHOW_ON_UPGLOB='*.foo|*.bar' - - ##########[ nordvpn: nordvpn connection status, linux only (https://nordvpn.com/) ]########### - # NordVPN connection indicator color. - typeset -g POWERLEVEL9K_NORDVPN_FOREGROUND=7 - typeset -g POWERLEVEL9K_NORDVPN_BACKGROUND=4 - # Hide NordVPN connection indicator when not connected. - typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_CONTENT_EXPANSION= - typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_VISUAL_IDENTIFIER_EXPANSION= - # Custom icon. - # typeset -g POWERLEVEL9K_NORDVPN_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #################[ ranger: ranger shell (https://github.com/ranger/ranger) ]################## - # Ranger shell color. - typeset -g POWERLEVEL9K_RANGER_FOREGROUND=3 - typeset -g POWERLEVEL9K_RANGER_BACKGROUND=0 - # Custom icon. - # typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ####################[ yazi: yazi shell (https://github.com/sxyazi/yazi) ]##################### - # Yazi shell color. - typeset -g POWERLEVEL9K_YAZI_FOREGROUND=3 - typeset -g POWERLEVEL9K_YAZI_BACKGROUND=0 - # Custom icon. - # typeset -g POWERLEVEL9K_YAZI_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ######################[ nnn: nnn shell (https://github.com/jarun/nnn) ]####################### - # Nnn shell color. - typeset -g POWERLEVEL9K_NNN_FOREGROUND=0 - typeset -g POWERLEVEL9K_NNN_BACKGROUND=6 - # Custom icon. - # typeset -g POWERLEVEL9K_NNN_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ######################[ lf: lf shell (https://github.com/gokcehan/lf) ]####################### - # lf shell color. - typeset -g POWERLEVEL9K_LF_FOREGROUND=0 - typeset -g POWERLEVEL9K_LF_BACKGROUND=6 - # Custom icon. - # typeset -g POWERLEVEL9K_LF_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##################[ xplr: xplr shell (https://github.com/sayanarijit/xplr) ]################## - # xplr shell color. - typeset -g POWERLEVEL9K_XPLR_FOREGROUND=0 - typeset -g POWERLEVEL9K_XPLR_BACKGROUND=6 - # Custom icon. - # typeset -g POWERLEVEL9K_XPLR_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###########################[ vim_shell: vim shell indicator (:sh) ]########################### - # Vim shell indicator color. - typeset -g POWERLEVEL9K_VIM_SHELL_FOREGROUND=0 - typeset -g POWERLEVEL9K_VIM_SHELL_BACKGROUND=2 - # Custom icon. - # typeset -g POWERLEVEL9K_VIM_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ######[ midnight_commander: midnight commander shell (https://midnight-commander.org/) ]###### - # Midnight Commander shell color. - typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_FOREGROUND=3 - typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_BACKGROUND=0 - # Custom icon. - # typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #[ nix_shell: nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) ]## - # Nix shell color. - typeset -g POWERLEVEL9K_NIX_SHELL_FOREGROUND=0 - typeset -g POWERLEVEL9K_NIX_SHELL_BACKGROUND=4 - - # Display the icon of nix_shell if PATH contains a subdirectory of /nix/store. - # typeset -g POWERLEVEL9K_NIX_SHELL_INFER_FROM_PATH=false - - # Tip: If you want to see just the icon without "pure" and "impure", uncomment the next line. - # typeset -g POWERLEVEL9K_NIX_SHELL_CONTENT_EXPANSION= - - # Custom icon. - # typeset -g POWERLEVEL9K_NIX_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##################[ chezmoi_shell: chezmoi shell (https://www.chezmoi.io/) ]################## - # chezmoi shell color. - typeset -g POWERLEVEL9K_CHEZMOI_SHELL_FOREGROUND=0 - typeset -g POWERLEVEL9K_CHEZMOI_SHELL_BACKGROUND=4 - # Custom icon. - # typeset -g POWERLEVEL9K_CHEZMOI_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##################################[ disk_usage: disk usage ]################################## - # Colors for different levels of disk usage. - typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=3 - typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_BACKGROUND=0 - typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_FOREGROUND=0 - typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_BACKGROUND=3 - typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_FOREGROUND=7 - typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_BACKGROUND=1 - # Thresholds for different levels of disk usage (percentage points). - typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL=90 - typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_LEVEL=95 - # If set to true, hide disk usage when below $POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL percent. - typeset -g POWERLEVEL9K_DISK_USAGE_ONLY_WARNING=false - # Custom icon. - # typeset -g POWERLEVEL9K_DISK_USAGE_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###########[ vi_mode: vi mode (you don't need this if you've enabled prompt_char) ]########### - # Foreground color. - typeset -g POWERLEVEL9K_VI_MODE_FOREGROUND=0 - # Text and color for normal (a.k.a. command) vi mode. - typeset -g POWERLEVEL9K_VI_COMMAND_MODE_STRING=NORMAL - typeset -g POWERLEVEL9K_VI_MODE_NORMAL_BACKGROUND=2 - # Text and color for visual vi mode. - typeset -g POWERLEVEL9K_VI_VISUAL_MODE_STRING=VISUAL - typeset -g POWERLEVEL9K_VI_MODE_VISUAL_BACKGROUND=4 - # Text and color for overtype (a.k.a. overwrite and replace) vi mode. - typeset -g POWERLEVEL9K_VI_OVERWRITE_MODE_STRING=OVERTYPE - typeset -g POWERLEVEL9K_VI_MODE_OVERWRITE_BACKGROUND=3 - # Text and color for insert vi mode. - typeset -g POWERLEVEL9K_VI_INSERT_MODE_STRING= - typeset -g POWERLEVEL9K_VI_MODE_INSERT_FOREGROUND=8 - # Custom icon. - # typeset -g POWERLEVEL9K_VI_MODE_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ######################################[ ram: free RAM ]####################################### - # RAM color. - typeset -g POWERLEVEL9K_RAM_FOREGROUND=0 - typeset -g POWERLEVEL9K_RAM_BACKGROUND=3 - # Custom icon. - # typeset -g POWERLEVEL9K_RAM_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #####################################[ swap: used swap ]###################################### - # Swap color. - typeset -g POWERLEVEL9K_SWAP_FOREGROUND=0 - typeset -g POWERLEVEL9K_SWAP_BACKGROUND=3 - # Custom icon. - # typeset -g POWERLEVEL9K_SWAP_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ######################################[ load: CPU load ]###################################### - # Show average CPU load over this many last minutes. Valid values are 1, 5 and 15. - typeset -g POWERLEVEL9K_LOAD_WHICH=5 - # Load color when load is under 50%. - typeset -g POWERLEVEL9K_LOAD_NORMAL_FOREGROUND=0 - typeset -g POWERLEVEL9K_LOAD_NORMAL_BACKGROUND=2 - # Load color when load is between 50% and 70%. - typeset -g POWERLEVEL9K_LOAD_WARNING_FOREGROUND=0 - typeset -g POWERLEVEL9K_LOAD_WARNING_BACKGROUND=3 - # Load color when load is over 70%. - typeset -g POWERLEVEL9K_LOAD_CRITICAL_FOREGROUND=0 - typeset -g POWERLEVEL9K_LOAD_CRITICAL_BACKGROUND=1 - # Custom icon. - # typeset -g POWERLEVEL9K_LOAD_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ################[ todo: todo items (https://github.com/todotxt/todo.txt-cli) ]################ - # Todo color. - typeset -g POWERLEVEL9K_TODO_FOREGROUND=0 - typeset -g POWERLEVEL9K_TODO_BACKGROUND=8 - # Hide todo when the total number of tasks is zero. - typeset -g POWERLEVEL9K_TODO_HIDE_ZERO_TOTAL=true - # Hide todo when the number of tasks after filtering is zero. - typeset -g POWERLEVEL9K_TODO_HIDE_ZERO_FILTERED=false - - # Todo format. The following parameters are available within the expansion. - # - # - P9K_TODO_TOTAL_TASK_COUNT The total number of tasks. - # - P9K_TODO_FILTERED_TASK_COUNT The number of tasks after filtering. - # - # These variables correspond to the last line of the output of `todo.sh -p ls`: - # - # TODO: 24 of 42 tasks shown - # - # Here 24 is P9K_TODO_FILTERED_TASK_COUNT and 42 is P9K_TODO_TOTAL_TASK_COUNT. - # - # typeset -g POWERLEVEL9K_TODO_CONTENT_EXPANSION='$P9K_TODO_FILTERED_TASK_COUNT' - - # Custom icon. - # typeset -g POWERLEVEL9K_TODO_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###########[ timewarrior: timewarrior tracking status (https://timewarrior.net/) ]############ - # Timewarrior color. - typeset -g POWERLEVEL9K_TIMEWARRIOR_FOREGROUND=255 - typeset -g POWERLEVEL9K_TIMEWARRIOR_BACKGROUND=8 - - # If the tracked task is longer than 24 characters, truncate and append "…". - # Tip: To always display tasks without truncation, delete the following parameter. - # Tip: To hide task names and display just the icon when time tracking is enabled, set the - # value of the following parameter to "". - typeset -g POWERLEVEL9K_TIMEWARRIOR_CONTENT_EXPANSION='${P9K_CONTENT:0:24}${${P9K_CONTENT:24}:+…}' - - # Custom icon. - # typeset -g POWERLEVEL9K_TIMEWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##############[ taskwarrior: taskwarrior task count (https://taskwarrior.org/) ]############## - # Taskwarrior color. - typeset -g POWERLEVEL9K_TASKWARRIOR_FOREGROUND=0 - typeset -g POWERLEVEL9K_TASKWARRIOR_BACKGROUND=6 - - # Taskwarrior segment format. The following parameters are available within the expansion. - # - # - P9K_TASKWARRIOR_PENDING_COUNT The number of pending tasks: `task +PENDING count`. - # - P9K_TASKWARRIOR_OVERDUE_COUNT The number of overdue tasks: `task +OVERDUE count`. - # - # Zero values are represented as empty parameters. - # - # The default format: - # - # '${P9K_TASKWARRIOR_OVERDUE_COUNT:+"!$P9K_TASKWARRIOR_OVERDUE_COUNT/"}$P9K_TASKWARRIOR_PENDING_COUNT' - # - # typeset -g POWERLEVEL9K_TASKWARRIOR_CONTENT_EXPANSION='$P9K_TASKWARRIOR_PENDING_COUNT' - - # Custom icon. - # typeset -g POWERLEVEL9K_TASKWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ######[ per_directory_history: Oh My Zsh per-directory-history local/global indicator ]####### - # Color when using local/global history. - typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_FOREGROUND=0 - typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_BACKGROUND=5 - typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_FOREGROUND=0 - typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_BACKGROUND=3 - - # Tip: Uncomment the next two lines to hide "local"/"global" text and leave just the icon. - # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_CONTENT_EXPANSION='' - # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_CONTENT_EXPANSION='' - - # Custom icon. - # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ################################[ cpu_arch: CPU architecture ]################################ - # CPU architecture color. - typeset -g POWERLEVEL9K_CPU_ARCH_FOREGROUND=0 - typeset -g POWERLEVEL9K_CPU_ARCH_BACKGROUND=3 - - # Hide the segment when on a specific CPU architecture. - # typeset -g POWERLEVEL9K_CPU_ARCH_X86_64_CONTENT_EXPANSION= - # typeset -g POWERLEVEL9K_CPU_ARCH_X86_64_VISUAL_IDENTIFIER_EXPANSION= - - # Custom icon. - # typeset -g POWERLEVEL9K_CPU_ARCH_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##################################[ context: user@hostname ]################################## - # Context color when running with privileges. - typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=1 - typeset -g POWERLEVEL9K_CONTEXT_ROOT_BACKGROUND=0 - # Context color in SSH without privileges. - typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_FOREGROUND=3 - typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_BACKGROUND=0 - # Default context color (no privileges, no SSH). - typeset -g POWERLEVEL9K_CONTEXT_FOREGROUND=3 - typeset -g POWERLEVEL9K_CONTEXT_BACKGROUND=0 - - # Context format when running with privileges: user@hostname. - typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE='%n@%m' - # Context format when in SSH without privileges: user@hostname. - typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_TEMPLATE='%n@%m' - # Default context format (no privileges, no SSH): user@hostname. - typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE='%n@%m' - - # Don't show context unless running with privileges or in SSH. - # Tip: Remove the next line to always show context. - typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_{CONTENT,VISUAL_IDENTIFIER}_EXPANSION= - - # Custom icon. - # typeset -g POWERLEVEL9K_CONTEXT_VISUAL_IDENTIFIER_EXPANSION='⭐' - # Custom prefix. - typeset -g POWERLEVEL9K_CONTEXT_PREFIX='with ' - - ###[ virtualenv: python virtual environment (https://docs.python.org/3/library/venv.html) ]### - # Python virtual environment color. - typeset -g POWERLEVEL9K_VIRTUALENV_FOREGROUND=0 - typeset -g POWERLEVEL9K_VIRTUALENV_BACKGROUND=4 - # Don't show Python version next to the virtual environment name. - typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_PYTHON_VERSION=false - # If set to "false", won't show virtualenv if pyenv is already shown. - # If set to "if-different", won't show virtualenv if it's the same as pyenv. - typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_WITH_PYENV=false - # Separate environment name from Python version only with a space. - typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER= - # Custom icon. - # typeset -g POWERLEVEL9K_VIRTUALENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #####################[ anaconda: conda environment (https://conda.io/) ]###################### - # Anaconda environment color. - typeset -g POWERLEVEL9K_ANACONDA_FOREGROUND=0 - typeset -g POWERLEVEL9K_ANACONDA_BACKGROUND=4 - - # Anaconda segment format. The following parameters are available within the expansion. - # - # - CONDA_PREFIX Absolute path to the active Anaconda/Miniconda environment. - # - CONDA_DEFAULT_ENV Name of the active Anaconda/Miniconda environment. - # - CONDA_PROMPT_MODIFIER Configurable prompt modifier (see below). - # - P9K_ANACONDA_PYTHON_VERSION Current python version (python --version). - # - # CONDA_PROMPT_MODIFIER can be configured with the following command: - # - # conda config --set env_prompt '({default_env}) ' - # - # The last argument is a Python format string that can use the following variables: - # - # - prefix The same as CONDA_PREFIX. - # - default_env The same as CONDA_DEFAULT_ENV. - # - name The last segment of CONDA_PREFIX. - # - stacked_env Comma-separated list of names in the environment stack. The first element is - # always the same as default_env. - # - # Note: '({default_env}) ' is the default value of env_prompt. - # - # The default value of POWERLEVEL9K_ANACONDA_CONTENT_EXPANSION expands to $CONDA_PROMPT_MODIFIER - # without the surrounding parentheses, or to the last path component of CONDA_PREFIX if the former - # is empty. - typeset -g POWERLEVEL9K_ANACONDA_CONTENT_EXPANSION='${${${${CONDA_PROMPT_MODIFIER#\(}% }%\)}:-${CONDA_PREFIX:t}}' - - # Custom icon. - # typeset -g POWERLEVEL9K_ANACONDA_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ################[ pyenv: python environment (https://github.com/pyenv/pyenv) ]################ - # Pyenv color. - typeset -g POWERLEVEL9K_PYENV_FOREGROUND=0 - typeset -g POWERLEVEL9K_PYENV_BACKGROUND=4 - # Hide python version if it doesn't come from one of these sources. - typeset -g POWERLEVEL9K_PYENV_SOURCES=(shell local global) - # If set to false, hide python version if it's the same as global: - # $(pyenv version-name) == $(pyenv global). - typeset -g POWERLEVEL9K_PYENV_PROMPT_ALWAYS_SHOW=false - # If set to false, hide python version if it's equal to "system". - typeset -g POWERLEVEL9K_PYENV_SHOW_SYSTEM=true - - # Pyenv segment format. The following parameters are available within the expansion. - # - # - P9K_CONTENT Current pyenv environment (pyenv version-name). - # - P9K_PYENV_PYTHON_VERSION Current python version (python --version). - # - # The default format has the following logic: - # - # 1. Display just "$P9K_CONTENT" if it's equal to "$P9K_PYENV_PYTHON_VERSION" or - # starts with "$P9K_PYENV_PYTHON_VERSION/". - # 2. Otherwise display "$P9K_CONTENT $P9K_PYENV_PYTHON_VERSION". - typeset -g POWERLEVEL9K_PYENV_CONTENT_EXPANSION='${P9K_CONTENT}${${P9K_CONTENT:#$P9K_PYENV_PYTHON_VERSION(|/*)}:+ $P9K_PYENV_PYTHON_VERSION}' - - # Custom icon. - # typeset -g POWERLEVEL9K_PYENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ################[ goenv: go environment (https://github.com/syndbg/goenv) ]################ - # Goenv color. - typeset -g POWERLEVEL9K_GOENV_FOREGROUND=0 - typeset -g POWERLEVEL9K_GOENV_BACKGROUND=4 - # Hide go version if it doesn't come from one of these sources. - typeset -g POWERLEVEL9K_GOENV_SOURCES=(shell local global) - # If set to false, hide go version if it's the same as global: - # $(goenv version-name) == $(goenv global). - typeset -g POWERLEVEL9K_GOENV_PROMPT_ALWAYS_SHOW=false - # If set to false, hide go version if it's equal to "system". - typeset -g POWERLEVEL9K_GOENV_SHOW_SYSTEM=true - # Custom icon. - # typeset -g POWERLEVEL9K_GOENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##########[ nodenv: node.js version from nodenv (https://github.com/nodenv/nodenv) ]########## - # Nodenv color. - typeset -g POWERLEVEL9K_NODENV_FOREGROUND=2 - typeset -g POWERLEVEL9K_NODENV_BACKGROUND=0 - # Hide node version if it doesn't come from one of these sources. - typeset -g POWERLEVEL9K_NODENV_SOURCES=(shell local global) - # If set to false, hide node version if it's the same as global: - # $(nodenv version-name) == $(nodenv global). - typeset -g POWERLEVEL9K_NODENV_PROMPT_ALWAYS_SHOW=false - # If set to false, hide node version if it's equal to "system". - typeset -g POWERLEVEL9K_NODENV_SHOW_SYSTEM=true - # Custom icon. - # typeset -g POWERLEVEL9K_NODENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##############[ nvm: node.js version from nvm (https://github.com/nvm-sh/nvm) ]############### - # Nvm color. - typeset -g POWERLEVEL9K_NVM_FOREGROUND=0 - typeset -g POWERLEVEL9K_NVM_BACKGROUND=5 - # If set to false, hide node version if it's the same as default: - # $(nvm version current) == $(nvm version default). - typeset -g POWERLEVEL9K_NVM_PROMPT_ALWAYS_SHOW=false - # If set to false, hide node version if it's equal to "system". - typeset -g POWERLEVEL9K_NVM_SHOW_SYSTEM=true - # Custom icon. - # typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ############[ nodeenv: node.js environment (https://github.com/ekalinin/nodeenv) ]############ - # Nodeenv color. - typeset -g POWERLEVEL9K_NODEENV_FOREGROUND=2 - typeset -g POWERLEVEL9K_NODEENV_BACKGROUND=0 - # Don't show Node version next to the environment name. - typeset -g POWERLEVEL9K_NODEENV_SHOW_NODE_VERSION=false - # Separate environment name from Node version only with a space. - typeset -g POWERLEVEL9K_NODEENV_{LEFT,RIGHT}_DELIMITER= - # Custom icon. - # typeset -g POWERLEVEL9K_NODEENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##############################[ node_version: node.js version ]############################### - # Node version color. - typeset -g POWERLEVEL9K_NODE_VERSION_FOREGROUND=7 - typeset -g POWERLEVEL9K_NODE_VERSION_BACKGROUND=2 - # Show node version only when in a directory tree containing package.json. - typeset -g POWERLEVEL9K_NODE_VERSION_PROJECT_ONLY=true - # Custom icon. - # typeset -g POWERLEVEL9K_NODE_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #######################[ go_version: go version (https://golang.org) ]######################## - # Go version color. - typeset -g POWERLEVEL9K_GO_VERSION_FOREGROUND=255 - typeset -g POWERLEVEL9K_GO_VERSION_BACKGROUND=2 - # Show go version only when in a go project subdirectory. - typeset -g POWERLEVEL9K_GO_VERSION_PROJECT_ONLY=true - # Custom icon. - # typeset -g POWERLEVEL9K_GO_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #################[ rust_version: rustc version (https://www.rust-lang.org) ]################## - # Rust version color. - typeset -g POWERLEVEL9K_RUST_VERSION_FOREGROUND=0 - typeset -g POWERLEVEL9K_RUST_VERSION_BACKGROUND=208 - # Show rust version only when in a rust project subdirectory. - typeset -g POWERLEVEL9K_RUST_VERSION_PROJECT_ONLY=true - # Custom icon. - # typeset -g POWERLEVEL9K_RUST_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###############[ dotnet_version: .NET version (https://dotnet.microsoft.com) ]################ - # .NET version color. - typeset -g POWERLEVEL9K_DOTNET_VERSION_FOREGROUND=7 - typeset -g POWERLEVEL9K_DOTNET_VERSION_BACKGROUND=5 - # Show .NET version only when in a .NET project subdirectory. - typeset -g POWERLEVEL9K_DOTNET_VERSION_PROJECT_ONLY=true - # Custom icon. - # typeset -g POWERLEVEL9K_DOTNET_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #####################[ php_version: php version (https://www.php.net/) ]###################### - # PHP version color. - typeset -g POWERLEVEL9K_PHP_VERSION_FOREGROUND=0 - typeset -g POWERLEVEL9K_PHP_VERSION_BACKGROUND=5 - # Show PHP version only when in a PHP project subdirectory. - typeset -g POWERLEVEL9K_PHP_VERSION_PROJECT_ONLY=true - # Custom icon. - # typeset -g POWERLEVEL9K_PHP_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##########[ laravel_version: laravel php framework version (https://laravel.com/) ]########### - # Laravel version color. - typeset -g POWERLEVEL9K_LARAVEL_VERSION_FOREGROUND=1 - typeset -g POWERLEVEL9K_LARAVEL_VERSION_BACKGROUND=7 - # Custom icon. - # typeset -g POWERLEVEL9K_LARAVEL_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #############[ rbenv: ruby version from rbenv (https://github.com/rbenv/rbenv) ]############## - # Rbenv color. - typeset -g POWERLEVEL9K_RBENV_FOREGROUND=0 - typeset -g POWERLEVEL9K_RBENV_BACKGROUND=1 - # Hide ruby version if it doesn't come from one of these sources. - typeset -g POWERLEVEL9K_RBENV_SOURCES=(shell local global) - # If set to false, hide ruby version if it's the same as global: - # $(rbenv version-name) == $(rbenv global). - typeset -g POWERLEVEL9K_RBENV_PROMPT_ALWAYS_SHOW=false - # If set to false, hide ruby version if it's equal to "system". - typeset -g POWERLEVEL9K_RBENV_SHOW_SYSTEM=true - # Custom icon. - # typeset -g POWERLEVEL9K_RBENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ####################[ java_version: java version (https://www.java.com/) ]#################### - # Java version color. - typeset -g POWERLEVEL9K_JAVA_VERSION_FOREGROUND=1 - typeset -g POWERLEVEL9K_JAVA_VERSION_BACKGROUND=7 - # Show java version only when in a java project subdirectory. - typeset -g POWERLEVEL9K_JAVA_VERSION_PROJECT_ONLY=true - # Show brief version. - typeset -g POWERLEVEL9K_JAVA_VERSION_FULL=false - # Custom icon. - # typeset -g POWERLEVEL9K_JAVA_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###[ package: name@version from package.json (https://docs.npmjs.com/files/package.json) ]#### - # Package color. - typeset -g POWERLEVEL9K_PACKAGE_FOREGROUND=0 - typeset -g POWERLEVEL9K_PACKAGE_BACKGROUND=6 - - # Package format. The following parameters are available within the expansion. - # - # - P9K_PACKAGE_NAME The value of `name` field in package.json. - # - P9K_PACKAGE_VERSION The value of `version` field in package.json. - # - # typeset -g POWERLEVEL9K_PACKAGE_CONTENT_EXPANSION='${P9K_PACKAGE_NAME//\%/%%}@${P9K_PACKAGE_VERSION//\%/%%}' - - # Custom icon. - # typeset -g POWERLEVEL9K_PACKAGE_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #######################[ rvm: ruby version from rvm (https://rvm.io) ]######################## - # Rvm color. - typeset -g POWERLEVEL9K_RVM_FOREGROUND=0 - typeset -g POWERLEVEL9K_RVM_BACKGROUND=240 - # Don't show @gemset at the end. - typeset -g POWERLEVEL9K_RVM_SHOW_GEMSET=false - # Don't show ruby- at the front. - typeset -g POWERLEVEL9K_RVM_SHOW_PREFIX=false - # Custom icon. - # typeset -g POWERLEVEL9K_RVM_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###########[ fvm: flutter version management (https://github.com/leoafarias/fvm) ]############ - # Fvm color. - typeset -g POWERLEVEL9K_FVM_FOREGROUND=0 - typeset -g POWERLEVEL9K_FVM_BACKGROUND=4 - # Custom icon. - # typeset -g POWERLEVEL9K_FVM_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##########[ luaenv: lua version from luaenv (https://github.com/cehoffman/luaenv) ]########### - # Lua color. - typeset -g POWERLEVEL9K_LUAENV_FOREGROUND=0 - typeset -g POWERLEVEL9K_LUAENV_BACKGROUND=4 - # Hide lua version if it doesn't come from one of these sources. - typeset -g POWERLEVEL9K_LUAENV_SOURCES=(shell local global) - # If set to false, hide lua version if it's the same as global: - # $(luaenv version-name) == $(luaenv global). - typeset -g POWERLEVEL9K_LUAENV_PROMPT_ALWAYS_SHOW=false - # If set to false, hide lua version if it's equal to "system". - typeset -g POWERLEVEL9K_LUAENV_SHOW_SYSTEM=true - # Custom icon. - # typeset -g POWERLEVEL9K_LUAENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###############[ jenv: java version from jenv (https://github.com/jenv/jenv) ]################ - # Java color. - typeset -g POWERLEVEL9K_JENV_FOREGROUND=1 - typeset -g POWERLEVEL9K_JENV_BACKGROUND=7 - # Hide java version if it doesn't come from one of these sources. - typeset -g POWERLEVEL9K_JENV_SOURCES=(shell local global) - # If set to false, hide java version if it's the same as global: - # $(jenv version-name) == $(jenv global). - typeset -g POWERLEVEL9K_JENV_PROMPT_ALWAYS_SHOW=false - # If set to false, hide java version if it's equal to "system". - typeset -g POWERLEVEL9K_JENV_SHOW_SYSTEM=true - # Custom icon. - # typeset -g POWERLEVEL9K_JENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###########[ plenv: perl version from plenv (https://github.com/tokuhirom/plenv) ]############ - # Perl color. - typeset -g POWERLEVEL9K_PLENV_FOREGROUND=0 - typeset -g POWERLEVEL9K_PLENV_BACKGROUND=4 - # Hide perl version if it doesn't come from one of these sources. - typeset -g POWERLEVEL9K_PLENV_SOURCES=(shell local global) - # If set to false, hide perl version if it's the same as global: - # $(plenv version-name) == $(plenv global). - typeset -g POWERLEVEL9K_PLENV_PROMPT_ALWAYS_SHOW=false - # If set to false, hide perl version if it's equal to "system". - typeset -g POWERLEVEL9K_PLENV_SHOW_SYSTEM=true - # Custom icon. - # typeset -g POWERLEVEL9K_PLENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###########[ perlbrew: perl version from perlbrew (https://github.com/gugod/App-perlbrew) ]############ - # Perlbrew color. - typeset -g POWERLEVEL9K_PERLBREW_FOREGROUND=67 - # Show perlbrew version only when in a perl project subdirectory. - typeset -g POWERLEVEL9K_PERLBREW_PROJECT_ONLY=true - # Don't show "perl-" at the front. - typeset -g POWERLEVEL9K_PERLBREW_SHOW_PREFIX=false - # Custom icon. - # typeset -g POWERLEVEL9K_PERLBREW_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ############[ phpenv: php version from phpenv (https://github.com/phpenv/phpenv) ]############ - # PHP color. - typeset -g POWERLEVEL9K_PHPENV_FOREGROUND=0 - typeset -g POWERLEVEL9K_PHPENV_BACKGROUND=5 - # Hide php version if it doesn't come from one of these sources. - typeset -g POWERLEVEL9K_PHPENV_SOURCES=(shell local global) - # If set to false, hide php version if it's the same as global: - # $(phpenv version-name) == $(phpenv global). - typeset -g POWERLEVEL9K_PHPENV_PROMPT_ALWAYS_SHOW=false - # If set to false, hide PHP version if it's equal to "system". - typeset -g POWERLEVEL9K_PHPENV_SHOW_SYSTEM=true - # Custom icon. - # typeset -g POWERLEVEL9K_PHPENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #######[ scalaenv: scala version from scalaenv (https://github.com/scalaenv/scalaenv) ]####### - # Scala color. - typeset -g POWERLEVEL9K_SCALAENV_FOREGROUND=0 - typeset -g POWERLEVEL9K_SCALAENV_BACKGROUND=1 - # Hide scala version if it doesn't come from one of these sources. - typeset -g POWERLEVEL9K_SCALAENV_SOURCES=(shell local global) - # If set to false, hide scala version if it's the same as global: - # $(scalaenv version-name) == $(scalaenv global). - typeset -g POWERLEVEL9K_SCALAENV_PROMPT_ALWAYS_SHOW=false - # If set to false, hide scala version if it's equal to "system". - typeset -g POWERLEVEL9K_SCALAENV_SHOW_SYSTEM=true - # Custom icon. - # typeset -g POWERLEVEL9K_SCALAENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##########[ haskell_stack: haskell version from stack (https://haskellstack.org/) ]########### - # Haskell color. - typeset -g POWERLEVEL9K_HASKELL_STACK_FOREGROUND=0 - typeset -g POWERLEVEL9K_HASKELL_STACK_BACKGROUND=3 - - # Hide haskell version if it doesn't come from one of these sources. - # - # shell: version is set by STACK_YAML - # local: version is set by stack.yaml up the directory tree - # global: version is set by the implicit global project (~/.stack/global-project/stack.yaml) - typeset -g POWERLEVEL9K_HASKELL_STACK_SOURCES=(shell local) - # If set to false, hide haskell version if it's the same as in the implicit global project. - typeset -g POWERLEVEL9K_HASKELL_STACK_ALWAYS_SHOW=true - # Custom icon. - # typeset -g POWERLEVEL9K_HASKELL_STACK_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ################[ terraform: terraform workspace (https://www.terraform.io) ]################# - # Don't show terraform workspace if it's literally "default". - typeset -g POWERLEVEL9K_TERRAFORM_SHOW_DEFAULT=false - # POWERLEVEL9K_TERRAFORM_CLASSES is an array with even number of elements. The first element - # in each pair defines a pattern against which the current terraform workspace gets matched. - # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below) - # that gets matched. If you unset all POWERLEVEL9K_TERRAFORM_*CONTENT_EXPANSION parameters, - # you'll see this value in your prompt. The second element of each pair in - # POWERLEVEL9K_TERRAFORM_CLASSES defines the workspace class. Patterns are tried in order. The - # first match wins. - # - # For example, given these settings: - # - # typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=( - # '*prod*' PROD - # '*test*' TEST - # '*' OTHER) - # - # If your current terraform workspace is "project_test", its class is TEST because "project_test" - # doesn't match the pattern '*prod*' but does match '*test*'. - # - # You can define different colors, icons and content expansions for different classes: - # - # typeset -g POWERLEVEL9K_TERRAFORM_TEST_FOREGROUND=2 - # typeset -g POWERLEVEL9K_TERRAFORM_TEST_BACKGROUND=0 - # typeset -g POWERLEVEL9K_TERRAFORM_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_TERRAFORM_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <' - typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=( - # '*prod*' PROD # These values are examples that are unlikely - # '*test*' TEST # to match your needs. Customize them as needed. - '*' OTHER) - typeset -g POWERLEVEL9K_TERRAFORM_OTHER_FOREGROUND=4 - typeset -g POWERLEVEL9K_TERRAFORM_OTHER_BACKGROUND=0 - # typeset -g POWERLEVEL9K_TERRAFORM_OTHER_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #############[ terraform_version: terraform version (https://www.terraform.io) ]############## - # Terraform version color. - typeset -g POWERLEVEL9K_TERRAFORM_VERSION_FOREGROUND=4 - typeset -g POWERLEVEL9K_TERRAFORM_VERSION_BACKGROUND=0 - # Custom icon. - # typeset -g POWERLEVEL9K_TERRAFORM_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]############# - # Show kubecontext only when the command you are typing invokes one of these tools. - # Tip: Remove the next line to always show kubecontext. - typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile|flux|fluxctl|stern|kubeseal|skaffold|kubent|kubecolor|cmctl|sparkctl' - - # Kubernetes context classes for the purpose of using different colors, icons and expansions with - # different contexts. - # - # POWERLEVEL9K_KUBECONTEXT_CLASSES is an array with even number of elements. The first element - # in each pair defines a pattern against which the current kubernetes context gets matched. - # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below) - # that gets matched. If you unset all POWERLEVEL9K_KUBECONTEXT_*CONTENT_EXPANSION parameters, - # you'll see this value in your prompt. The second element of each pair in - # POWERLEVEL9K_KUBECONTEXT_CLASSES defines the context class. Patterns are tried in order. The - # first match wins. - # - # For example, given these settings: - # - # typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=( - # '*prod*' PROD - # '*test*' TEST - # '*' DEFAULT) - # - # If your current kubernetes context is "deathray-testing/default", its class is TEST - # because "deathray-testing/default" doesn't match the pattern '*prod*' but does match '*test*'. - # - # You can define different colors, icons and content expansions for different classes: - # - # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_FOREGROUND=0 - # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_BACKGROUND=2 - # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <' - typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=( - # '*prod*' PROD # These values are examples that are unlikely - # '*test*' TEST # to match your needs. Customize them as needed. - '*' DEFAULT) - typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_FOREGROUND=7 - typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_BACKGROUND=5 - # typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐' - - # Use POWERLEVEL9K_KUBECONTEXT_CONTENT_EXPANSION to specify the content displayed by kubecontext - # segment. Parameter expansions are very flexible and fast, too. See reference: - # http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion. - # - # Within the expansion the following parameters are always available: - # - # - P9K_CONTENT The content that would've been displayed if there was no content - # expansion defined. - # - P9K_KUBECONTEXT_NAME The current context's name. Corresponds to column NAME in the - # output of `kubectl config get-contexts`. - # - P9K_KUBECONTEXT_CLUSTER The current context's cluster. Corresponds to column CLUSTER in the - # output of `kubectl config get-contexts`. - # - P9K_KUBECONTEXT_NAMESPACE The current context's namespace. Corresponds to column NAMESPACE - # in the output of `kubectl config get-contexts`. If there is no - # namespace, the parameter is set to "default". - # - P9K_KUBECONTEXT_USER The current context's user. Corresponds to column AUTHINFO in the - # output of `kubectl config get-contexts`. - # - # If the context points to Google Kubernetes Engine (GKE) or Elastic Kubernetes Service (EKS), - # the following extra parameters are available: - # - # - P9K_KUBECONTEXT_CLOUD_NAME Either "gke" or "eks". - # - P9K_KUBECONTEXT_CLOUD_ACCOUNT Account/project ID. - # - P9K_KUBECONTEXT_CLOUD_ZONE Availability zone. - # - P9K_KUBECONTEXT_CLOUD_CLUSTER Cluster. - # - # P9K_KUBECONTEXT_CLOUD_* parameters are derived from P9K_KUBECONTEXT_CLUSTER. For example, - # if P9K_KUBECONTEXT_CLUSTER is "gke_my-account_us-east1-a_my-cluster-01": - # - # - P9K_KUBECONTEXT_CLOUD_NAME=gke - # - P9K_KUBECONTEXT_CLOUD_ACCOUNT=my-account - # - P9K_KUBECONTEXT_CLOUD_ZONE=us-east1-a - # - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01 - # - # If P9K_KUBECONTEXT_CLUSTER is "arn:aws:eks:us-east-1:123456789012:cluster/my-cluster-01": - # - # - P9K_KUBECONTEXT_CLOUD_NAME=eks - # - P9K_KUBECONTEXT_CLOUD_ACCOUNT=123456789012 - # - P9K_KUBECONTEXT_CLOUD_ZONE=us-east-1 - # - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01 - typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION= - # Show P9K_KUBECONTEXT_CLOUD_CLUSTER if it's not empty and fall back to P9K_KUBECONTEXT_NAME. - POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${P9K_KUBECONTEXT_CLOUD_CLUSTER:-${P9K_KUBECONTEXT_NAME}}' - # Append the current context's namespace if it's not "default". - POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${${:-/$P9K_KUBECONTEXT_NAMESPACE}:#/default}' - - # Custom prefix. - typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX='at ' - - #[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]# - # Show aws only when the command you are typing invokes one of these tools. - # Tip: Remove the next line to always show aws. - typeset -g POWERLEVEL9K_AWS_SHOW_ON_COMMAND='aws|awless|cdk|terraform|tofu|pulumi|terragrunt' - - # POWERLEVEL9K_AWS_CLASSES is an array with even number of elements. The first element - # in each pair defines a pattern against which the current AWS profile gets matched. - # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below) - # that gets matched. If you unset all POWERLEVEL9K_AWS_*CONTENT_EXPANSION parameters, - # you'll see this value in your prompt. The second element of each pair in - # POWERLEVEL9K_AWS_CLASSES defines the profile class. Patterns are tried in order. The - # first match wins. - # - # For example, given these settings: - # - # typeset -g POWERLEVEL9K_AWS_CLASSES=( - # '*prod*' PROD - # '*test*' TEST - # '*' DEFAULT) - # - # If your current AWS profile is "company_test", its class is TEST - # because "company_test" doesn't match the pattern '*prod*' but does match '*test*'. - # - # You can define different colors, icons and content expansions for different classes: - # - # typeset -g POWERLEVEL9K_AWS_TEST_FOREGROUND=28 - # typeset -g POWERLEVEL9K_AWS_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_AWS_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <' - typeset -g POWERLEVEL9K_AWS_CLASSES=( - # '*prod*' PROD # These values are examples that are unlikely - # '*test*' TEST # to match your needs. Customize them as needed. - '*' DEFAULT) - typeset -g POWERLEVEL9K_AWS_DEFAULT_FOREGROUND=7 - typeset -g POWERLEVEL9K_AWS_DEFAULT_BACKGROUND=1 - # typeset -g POWERLEVEL9K_AWS_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐' - - # AWS segment format. The following parameters are available within the expansion. - # - # - P9K_AWS_PROFILE The name of the current AWS profile. - # - P9K_AWS_REGION The region associated with the current AWS profile. - typeset -g POWERLEVEL9K_AWS_CONTENT_EXPANSION='${P9K_AWS_PROFILE//\%/%%}${P9K_AWS_REGION:+ ${P9K_AWS_REGION//\%/%%}}' - - #[ aws_eb_env: aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/) ]# - # AWS Elastic Beanstalk environment color. - typeset -g POWERLEVEL9K_AWS_EB_ENV_FOREGROUND=2 - typeset -g POWERLEVEL9K_AWS_EB_ENV_BACKGROUND=0 - # Custom icon. - # typeset -g POWERLEVEL9K_AWS_EB_ENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##########[ azure: azure account name (https://docs.microsoft.com/en-us/cli/azure) ]########## - # Show azure only when the command you are typing invokes one of these tools. - # Tip: Remove the next line to always show azure. - typeset -g POWERLEVEL9K_AZURE_SHOW_ON_COMMAND='az|terraform|tofu|pulumi|terragrunt' - - # POWERLEVEL9K_AZURE_CLASSES is an array with even number of elements. The first element - # in each pair defines a pattern against which the current azure account name gets matched. - # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below) - # that gets matched. If you unset all POWERLEVEL9K_AZURE_*CONTENT_EXPANSION parameters, - # you'll see this value in your prompt. The second element of each pair in - # POWERLEVEL9K_AZURE_CLASSES defines the account class. Patterns are tried in order. The - # first match wins. - # - # For example, given these settings: - # - # typeset -g POWERLEVEL9K_AZURE_CLASSES=( - # '*prod*' PROD - # '*test*' TEST - # '*' OTHER) - # - # If your current azure account is "company_test", its class is TEST because "company_test" - # doesn't match the pattern '*prod*' but does match '*test*'. - # - # You can define different colors, icons and content expansions for different classes: - # - # typeset -g POWERLEVEL9K_AZURE_TEST_FOREGROUND=2 - # typeset -g POWERLEVEL9K_AZURE_TEST_BACKGROUND=0 - # typeset -g POWERLEVEL9K_AZURE_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_AZURE_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <' - typeset -g POWERLEVEL9K_AZURE_CLASSES=( - # '*prod*' PROD # These values are examples that are unlikely - # '*test*' TEST # to match your needs. Customize them as needed. - '*' OTHER) - - # Azure account name color. - typeset -g POWERLEVEL9K_AZURE_OTHER_FOREGROUND=7 - typeset -g POWERLEVEL9K_AZURE_OTHER_BACKGROUND=4 - # Custom icon. - # typeset -g POWERLEVEL9K_AZURE_OTHER_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##########[ gcloud: google cloud account and project (https://cloud.google.com/) ]########### - # Show gcloud only when the command you are typing invokes one of these tools. - # Tip: Remove the next line to always show gcloud. - typeset -g POWERLEVEL9K_GCLOUD_SHOW_ON_COMMAND='gcloud|gcs|gsutil' - # Google cloud color. - typeset -g POWERLEVEL9K_GCLOUD_FOREGROUND=7 - typeset -g POWERLEVEL9K_GCLOUD_BACKGROUND=4 - - # Google cloud format. Change the value of POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION and/or - # POWERLEVEL9K_GCLOUD_COMPLETE_CONTENT_EXPANSION if the default is too verbose or not informative - # enough. You can use the following parameters in the expansions. Each of them corresponds to the - # output of `gcloud` tool. - # - # Parameter | Source - # -------------------------|-------------------------------------------------------------------- - # P9K_GCLOUD_CONFIGURATION | gcloud config configurations list --format='value(name)' - # P9K_GCLOUD_ACCOUNT | gcloud config get-value account - # P9K_GCLOUD_PROJECT_ID | gcloud config get-value project - # P9K_GCLOUD_PROJECT_NAME | gcloud projects describe $P9K_GCLOUD_PROJECT_ID --format='value(name)' - # - # Note: ${VARIABLE//\%/%%} expands to ${VARIABLE} with all occurrences of '%' replaced with '%%'. - # - # Obtaining project name requires sending a request to Google servers. This can take a long time - # and even fail. When project name is unknown, P9K_GCLOUD_PROJECT_NAME is not set and gcloud - # prompt segment is in state PARTIAL. When project name gets known, P9K_GCLOUD_PROJECT_NAME gets - # set and gcloud prompt segment transitions to state COMPLETE. - # - # You can customize the format, icon and colors of gcloud segment separately for states PARTIAL - # and COMPLETE. You can also hide gcloud in state PARTIAL by setting - # POWERLEVEL9K_GCLOUD_PARTIAL_VISUAL_IDENTIFIER_EXPANSION and - # POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION to empty. - typeset -g POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION='${P9K_GCLOUD_PROJECT_ID//\%/%%}' - typeset -g POWERLEVEL9K_GCLOUD_COMPLETE_CONTENT_EXPANSION='${P9K_GCLOUD_PROJECT_NAME//\%/%%}' - - # Send a request to Google (by means of `gcloud projects describe ...`) to obtain project name - # this often. Negative value disables periodic polling. In this mode project name is retrieved - # only when the current configuration, account or project id changes. - typeset -g POWERLEVEL9K_GCLOUD_REFRESH_PROJECT_NAME_SECONDS=60 - - # Custom icon. - # typeset -g POWERLEVEL9K_GCLOUD_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #[ google_app_cred: google application credentials (https://cloud.google.com/docs/authentication/production) ]# - # Show google_app_cred only when the command you are typing invokes one of these tools. - # Tip: Remove the next line to always show google_app_cred. - typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_SHOW_ON_COMMAND='terraform|tofu|pulumi|terragrunt' - - # Google application credentials classes for the purpose of using different colors, icons and - # expansions with different credentials. - # - # POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES is an array with even number of elements. The first - # element in each pair defines a pattern against which the current kubernetes context gets - # matched. More specifically, it's P9K_CONTENT prior to the application of context expansion - # (see below) that gets matched. If you unset all POWERLEVEL9K_GOOGLE_APP_CRED_*CONTENT_EXPANSION - # parameters, you'll see this value in your prompt. The second element of each pair in - # POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES defines the context class. Patterns are tried in order. - # The first match wins. - # - # For example, given these settings: - # - # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES=( - # '*:*prod*:*' PROD - # '*:*test*:*' TEST - # '*' DEFAULT) - # - # If your current Google application credentials is "service_account deathray-testing x@y.com", - # its class is TEST because it doesn't match the pattern '* *prod* *' but does match '* *test* *'. - # - # You can define different colors, icons and content expansions for different classes: - # - # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_FOREGROUND=28 - # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_CONTENT_EXPANSION='$P9K_GOOGLE_APP_CRED_PROJECT_ID' - typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES=( - # '*:*prod*:*' PROD # These values are examples that are unlikely - # '*:*test*:*' TEST # to match your needs. Customize them as needed. - '*' DEFAULT) - typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_FOREGROUND=7 - typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_BACKGROUND=4 - # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐' - - # Use POWERLEVEL9K_GOOGLE_APP_CRED_CONTENT_EXPANSION to specify the content displayed by - # google_app_cred segment. Parameter expansions are very flexible and fast, too. See reference: - # http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion. - # - # You can use the following parameters in the expansion. Each of them corresponds to one of the - # fields in the JSON file pointed to by GOOGLE_APPLICATION_CREDENTIALS. - # - # Parameter | JSON key file field - # ---------------------------------+--------------- - # P9K_GOOGLE_APP_CRED_TYPE | type - # P9K_GOOGLE_APP_CRED_PROJECT_ID | project_id - # P9K_GOOGLE_APP_CRED_CLIENT_EMAIL | client_email - # - # Note: ${VARIABLE//\%/%%} expands to ${VARIABLE} with all occurrences of '%' replaced by '%%'. - typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_CONTENT_EXPANSION='${P9K_GOOGLE_APP_CRED_PROJECT_ID//\%/%%}' - - ##############[ toolbox: toolbox name (https://github.com/containers/toolbox) ]############### - # Toolbox color. - typeset -g POWERLEVEL9K_TOOLBOX_FOREGROUND=0 - typeset -g POWERLEVEL9K_TOOLBOX_BACKGROUND=3 - # Don't display the name of the toolbox if it matches fedora-toolbox-*. - typeset -g POWERLEVEL9K_TOOLBOX_CONTENT_EXPANSION='${P9K_TOOLBOX_NAME:#fedora-toolbox-*}' - # Custom icon. - # typeset -g POWERLEVEL9K_TOOLBOX_VISUAL_IDENTIFIER_EXPANSION='⭐' - # Custom prefix. - typeset -g POWERLEVEL9K_TOOLBOX_PREFIX='in ' - - ###############################[ public_ip: public IP address ]############################### - # Public IP color. - typeset -g POWERLEVEL9K_PUBLIC_IP_FOREGROUND=7 - typeset -g POWERLEVEL9K_PUBLIC_IP_BACKGROUND=0 - # Custom icon. - # typeset -g POWERLEVEL9K_PUBLIC_IP_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ########################[ vpn_ip: virtual private network indicator ]######################### - # VPN IP color. - typeset -g POWERLEVEL9K_VPN_IP_FOREGROUND=0 - typeset -g POWERLEVEL9K_VPN_IP_BACKGROUND=6 - # When on VPN, show just an icon without the IP address. - # Tip: To display the private IP address when on VPN, remove the next line. - typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION= - # Regular expression for the VPN network interface. Run `ifconfig` or `ip -4 a show` while on VPN - # to see the name of the interface. - typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(gpd|wg|(.*tun)|tailscale)[0-9]*|(zt.*)' - # If set to true, show one segment per matching network interface. If set to false, show only - # one segment corresponding to the first matching network interface. - # Tip: If you set it to true, you'll probably want to unset POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION. - typeset -g POWERLEVEL9K_VPN_IP_SHOW_ALL=false - # Custom icon. - # typeset -g POWERLEVEL9K_VPN_IP_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###########[ ip: ip address and bandwidth usage for a specified network interface ]########### - # IP color. - typeset -g POWERLEVEL9K_IP_BACKGROUND=4 - typeset -g POWERLEVEL9K_IP_FOREGROUND=0 - # The following parameters are accessible within the expansion: - # - # Parameter | Meaning - # ----------------------+------------------------------------------- - # P9K_IP_IP | IP address - # P9K_IP_INTERFACE | network interface - # P9K_IP_RX_BYTES | total number of bytes received - # P9K_IP_TX_BYTES | total number of bytes sent - # P9K_IP_RX_BYTES_DELTA | number of bytes received since last prompt - # P9K_IP_TX_BYTES_DELTA | number of bytes sent since last prompt - # P9K_IP_RX_RATE | receive rate (since last prompt) - # P9K_IP_TX_RATE | send rate (since last prompt) - typeset -g POWERLEVEL9K_IP_CONTENT_EXPANSION='${P9K_IP_RX_RATE:+⇣$P9K_IP_RX_RATE }${P9K_IP_TX_RATE:+⇡$P9K_IP_TX_RATE }$P9K_IP_IP' - # Show information for the first network interface whose name matches this regular expression. - # Run `ifconfig` or `ip -4 a show` to see the names of all network interfaces. - typeset -g POWERLEVEL9K_IP_INTERFACE='[ew].*' - # Custom icon. - # typeset -g POWERLEVEL9K_IP_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #########################[ proxy: system-wide http/https/ftp proxy ]########################## - # Proxy color. - typeset -g POWERLEVEL9K_PROXY_FOREGROUND=4 - typeset -g POWERLEVEL9K_PROXY_BACKGROUND=0 - # Custom icon. - # typeset -g POWERLEVEL9K_PROXY_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ################################[ battery: internal battery ]################################# - # Show battery in red when it's below this level and not connected to power supply. - typeset -g POWERLEVEL9K_BATTERY_LOW_THRESHOLD=20 - typeset -g POWERLEVEL9K_BATTERY_LOW_FOREGROUND=1 - # Show battery in green when it's charging or fully charged. - typeset -g POWERLEVEL9K_BATTERY_{CHARGING,CHARGED}_FOREGROUND=2 - # Show battery in yellow when it's discharging. - typeset -g POWERLEVEL9K_BATTERY_DISCONNECTED_FOREGROUND=3 - # Battery pictograms going from low to high level of charge. - typeset -g POWERLEVEL9K_BATTERY_STAGES='\UF008E\UF007A\UF007B\UF007C\UF007D\UF007E\UF007F\UF0080\UF0081\UF0082\UF0079' - # Don't show the remaining time to charge/discharge. - typeset -g POWERLEVEL9K_BATTERY_VERBOSE=false - typeset -g POWERLEVEL9K_BATTERY_BACKGROUND=0 - - #####################################[ wifi: wifi speed ]##################################### - # WiFi color. - typeset -g POWERLEVEL9K_WIFI_FOREGROUND=0 - typeset -g POWERLEVEL9K_WIFI_BACKGROUND=4 - # Custom icon. - # typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='⭐' - - # Use different colors and icons depending on signal strength ($P9K_WIFI_BARS). - # - # # Wifi colors and icons for different signal strength levels (low to high). - # typeset -g my_wifi_fg=(0 0 0 0 0) # <-- change these values - # typeset -g my_wifi_icon=('WiFi' 'WiFi' 'WiFi' 'WiFi' 'WiFi') # <-- change these values - # - # typeset -g POWERLEVEL9K_WIFI_CONTENT_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}$P9K_WIFI_LAST_TX_RATE Mbps' - # typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}${my_wifi_icon[P9K_WIFI_BARS+1]}' - # - # The following parameters are accessible within the expansions: - # - # Parameter | Meaning - # ----------------------+--------------- - # P9K_WIFI_SSID | service set identifier, a.k.a. network name - # P9K_WIFI_LINK_AUTH | authentication protocol such as "wpa2-psk" or "none"; empty if unknown - # P9K_WIFI_LAST_TX_RATE | wireless transmit rate in megabits per second - # P9K_WIFI_RSSI | signal strength in dBm, from -120 to 0 - # P9K_WIFI_NOISE | noise in dBm, from -120 to 0 - # P9K_WIFI_BARS | signal strength in bars, from 0 to 4 (derived from P9K_WIFI_RSSI and P9K_WIFI_NOISE) - - ####################################[ time: current time ]#################################### - # Current time color. - typeset -g POWERLEVEL9K_TIME_FOREGROUND=0 - typeset -g POWERLEVEL9K_TIME_BACKGROUND=7 - # Format for the current time: 09:51:02. See `man 3 strftime`. - typeset -g POWERLEVEL9K_TIME_FORMAT='%D{%H:%M:%S}' - # If set to true, time will update when you hit enter. This way prompts for the past - # commands will contain the start times of their commands as opposed to the default - # behavior where they contain the end times of their preceding commands. - typeset -g POWERLEVEL9K_TIME_UPDATE_ON_COMMAND=false - # Custom icon. - # typeset -g POWERLEVEL9K_TIME_VISUAL_IDENTIFIER_EXPANSION='⭐' - # Custom prefix. - typeset -g POWERLEVEL9K_TIME_PREFIX='at ' - - # Example of a user-defined prompt segment. Function prompt_example will be called on every - # prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or - # POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and yellow text on red background - # greeting the user. - # - # Type `p10k help segment` for documentation and a more sophisticated example. - function prompt_example() { - p10k segment -b 1 -f 3 -i '⭐' -t 'hello, %n' - } - - # User-defined prompt segments may optionally provide an instant_prompt_* function. Its job - # is to generate the prompt segment for display in instant prompt. See - # https://github.com/romkatv/powerlevel10k#instant-prompt. - # - # Powerlevel10k will call instant_prompt_* at the same time as the regular prompt_* function - # and will record all `p10k segment` calls it makes. When displaying instant prompt, Powerlevel10k - # will replay these calls without actually calling instant_prompt_*. It is imperative that - # instant_prompt_* always makes the same `p10k segment` calls regardless of environment. If this - # rule is not observed, the content of instant prompt will be incorrect. - # - # Usually, you should either not define instant_prompt_* or simply call prompt_* from it. If - # instant_prompt_* is not defined for a segment, the segment won't be shown in instant prompt. - function instant_prompt_example() { - # Since prompt_example always makes the same `p10k segment` calls, we can call it from - # instant_prompt_example. This will give us the same `example` prompt segment in the instant - # and regular prompts. - prompt_example - } - - # User-defined prompt segments can be customized the same way as built-in segments. - typeset -g POWERLEVEL9K_EXAMPLE_FOREGROUND=3 - typeset -g POWERLEVEL9K_EXAMPLE_BACKGROUND=1 - # typeset -g POWERLEVEL9K_EXAMPLE_VISUAL_IDENTIFIER_EXPANSION='⭐' - - # Transient prompt works similarly to the builtin transient_rprompt option. It trims down prompt - # when accepting a command line. Supported values: - # - # - off: Don't change prompt when accepting a command line. - # - always: Trim down prompt when accepting a command line. - # - same-dir: Trim down prompt when accepting a command line unless this is the first command - # typed after changing current working directory. - typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=always - - # Instant prompt mode. - # - # - off: Disable instant prompt. Choose this if you've tried instant prompt and found - # it incompatible with your zsh configuration files. - # - quiet: Enable instant prompt and don't print warnings when detecting console output - # during zsh initialization. Choose this if you've read and understood - # https://github.com/romkatv/powerlevel10k#instant-prompt. - # - verbose: Enable instant prompt and print a warning when detecting console output during - # zsh initialization. Choose this if you've never tried instant prompt, haven't - # seen the warning, or if you are unsure what this all means. - typeset -g POWERLEVEL9K_INSTANT_PROMPT=verbose - - # Hot reload allows you to change POWERLEVEL9K options after Powerlevel10k has been initialized. - # For example, you can type POWERLEVEL9K_BACKGROUND=red and see your prompt turn red. Hot reload - # can slow down prompt by 1-2 milliseconds, so it's better to keep it turned off unless you - # really need it. - typeset -g POWERLEVEL9K_DISABLE_HOT_RELOAD=true - - # If p10k is already loaded, reload configuration. - # This works even with POWERLEVEL9K_DISABLE_HOT_RELOAD=true. - (( ! $+functions[p10k] )) || p10k reload -} - -# Tell `p10k configure` which file it should overwrite. -typeset -g POWERLEVEL9K_CONFIG_FILE=${${(%):-%x}:a} - -(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]} -'builtin' 'unset' 'p10k_config_opts' diff --git a/linux/zsh/.zshrc b/linux/zsh/.zshrc index ed561ac..16ef481 100644 --- a/linux/zsh/.zshrc +++ b/linux/zsh/.zshrc @@ -137,7 +137,10 @@ setopt complete_aliases eval "$(starship init zsh)" # opencode -export PATH=/home/gazzd/.opencode/bin:$PATH +export PATH=$HOME/.opencode/bin:$PATH + +# custom scripts +export PATH=$HOME/.local/bin:$PATH # Activate mise (version manager tool) eval "$($HOME/.local/bin/mise activate zsh)" From cebf5df24e9fbca3ab0d16946d35f43af7b6bf9a Mon Sep 17 00:00:00 2001 From: GazzD Date: Wed, 15 Apr 2026 23:21:12 +0200 Subject: [PATCH 8/8] Expand platform READMEs and add stow docs --- README.md | 78 ++++++++++++++++++---- linux/README.md | 107 ++++++++++++++++++++++-------- linux/nvim/.config/nvim/README.md | 32 ++++++++- windows/README.md | 62 ++++++++++++----- 4 files changed, 218 insertions(+), 61 deletions(-) diff --git a/README.md b/README.md index 4bf4a8c..db75a82 100644 --- a/README.md +++ b/README.md @@ -11,30 +11,84 @@ just my personal daily setup dotfiles 👀 ![My Desktop Screenshot](screenshot.png) _I still need to upload one 😅._ ---- +### Linux (Arch + Hyprland) + +These are the Linux modules currently tracked here: + +- `fastfetch` +- `ghostty` +- `hypr` +- `illogical-impulse` +- `nvim` +- `satty` +- `starship` +- `sunsetr` +- `system` (`pkglist.txt` as a reference) +- `thunar` +- `uwsm` +- `zsh` -These are the configs I use every day on: +### Windows (Komorebi + YASB + terminal/editor tooling) -- Arch Linux + Hyprland -- Windows (Komorebi + YASB + terminal/editor tooling) +These are the Windows modules currently tracked here: -This repository is intentionally split by platform so each setup is easier to navigate and maintain. +- `fastfetch` +- `komorebi` +- `powershell` +- `wezterm` +- `yasb` ## Structure ```text . ├── linux/ # Arch Linux + Hyprland setup -└── windows/ # Windows setup +└── windows/ # Windows configuration +``` + +## Installation with GNU Stow + +[GNU Stow](https://www.gnu.org/software/stow/) is a symlink farm manager which takes distinct packages of software and/or data located in separate directories on the filesystem, and makes them appear to be installed in the same place. + +To easily add this config you may need first to install `stow` and back up any existing config you do not want to overwrite. + + +### Linux + +Most Linux packages already follow a structure designed to be linked into `$HOME`. + +```bash +sudo pacman -S stow +git clone dotfiles +cd dotfiles + +stow -d linux -t "$HOME" fastfetch ghostty hypr illogical-impulse nvim satty starship sunsetr thunar zsh +mkdir -p "$HOME/.config/uwsm" +stow -d linux -t "$HOME/.config/uwsm" uwsm ``` -## Where things live +`linux/system/` is not installed with stow: it only keeps a reference list of installed packages. + +### Windows + +On Windows there is no single target root for everything, so it is better to use **stow per package** and point it at the real directory each app uses. + +```bash +stow -d windows -t "$KOMOREBI_CONFIG_HOME" komorebi +stow -d windows -t "$HOME/.config/yasb" yasb +stow -d windows -t "$HOME/.config/fastfetch" fastfetch +stow -d windows -t "$HOME/.config/wezterm" wezterm +``` + +`windows/powershell/profile.ps1` is still better copied or adapted manually to your `$PROFILE`, because the final file name depends on how PowerShell is configured on your system. + +## Platform documentation -- 🐧 Arch Linux (btw) + Hyprland setup: see [linux/README.md](linux/README.md) -- 🪟 Windows setup: see [windows/README.md](windows/README.md) +- 🐧 [linux/README.md](linux/README.md) +- 🪟 [windows/README.md](windows/README.md) ## Notes -- This repo is a real-world personal setup, not a one-click installer. -- Copy/symlink only the parts you need. I will try to improve the descriptions of each part of the setup -- Paths and app availability can differ by machine. +- This is a personal setup, not a one-command installer. +- Some paths, monitors, binaries, and apps are specific to my machine. +- The idea is to use these configs as a base and adapt them to your environment. diff --git a/linux/README.md b/linux/README.md index 35a0bb0..c304f8a 100644 --- a/linux/README.md +++ b/linux/README.md @@ -1,49 +1,98 @@ # Linux setup (Arch + Hyprland) -This folder has my Linux dotfiles (Arch + Hyprland). +This folder contains my main Linux setup (Arch + Hyprland). The goal is to keep it modular so I can install only what I need and swap pieces without rebuilding the whole environment. -Nothing super fancy here: it is just the setup I use, shared as a base in case it helps you build your own. The main goal is to make it modular and easy to switch without installing or configuring stuff you will never use. - -## Directory layout +## What is currently updated here ```text linux/ -├── ghostty/ # Ghostty terminal config -├── hypr/ # Hyprland configs and profile variants -├── satty/ # Screenshot annotation tool -├── system/ # Package snapshot (pkglist) -├── uwsm/ # UWSM environment files -└── zsh/ # Zsh config +├── fastfetch/ # System info on shell startup +├── ghostty/ # Ghostty terminal +├── hypr/ # Hyprland, Hypridle, Hyprlock, and scripts +├── illogical-impulse/ # Illogical Impulse config +├── nvim/ # LazyVim-based Neovim setup +├── satty/ # Screenshot annotation config +├── starship/ # Starship prompt +├── sunsetr/ # Screen color temperature +├── system/ # Installed package snapshot +├── thunar/ # Thunar shortcuts and custom actions +├── uwsm/ # UWSM environment files +└── zsh/ # Zsh + aliases + plugins ``` -## Hyprland overview +## Hyprland + +The Hyprland setup is split into a shared base and several profiles: + +- `shared/`: common rules and variables for every profile +- `default/`: clean and functional profile (no quickshell) +- `caelestia/`: caelestia shell integration configuration +- `ii/`: end4-dots illogical impulse shell configuration + +The current selector lives in `linux/hypr/.config/hypr/hyprland.conf`, where `\$profile = ii`. -My Hyprland config is split into two different profiles: +Besides the window manager itself, this package also includes: -- `hypr/default/hyprland.conf` # Clean functional profile (no shell) -- `hypr/caelestia/hyprland.conf` # Caelestia shell bindings +- `hypridle.conf` +- `hyprlock.conf` +- helper scripts for launchers, screenshots, workspaces, and AI helpers -The Hyprland setup is modular and split by concern (`env`, `input`, `general`, `rules`, etc.), which makes it easier to maintain and override. +## Shell and terminal -## Quick usage +- **Zsh:** Oh My Zsh + `fzf`, `zsh-syntax-highlighting`, `zsh-autosuggestions`, personal aliases, and startup for `starship`, `mise`, `zoxide`, and `fastfetch`. There is an optional configuration with p10k +- **Ghostty:** `Catppuccin Mocha` theme, transparency, and split keybindings. +- **Starship:** prompt kept in its own package so it can be installed without pulling in the full shell setup. -If you want to try this setup, copy or symlink only what you need. Useful target paths: +## Editor -- `linux/hypr/` -> `~/.config/hypr/` -- `linux/ghostty/` -> `~/.config/ghostty/` -- `linux/satty/` -> `~/.config/satty/` -- `linux/uwsm/` -> `~/.config/uwsm/` -- `linux/zsh/` -> usually `~/.config/zsh/` and/or `~/.zshrc` flow, depending on your setup +- **Neovim:** LazyVim-based configuration in `nvim/.config/nvim`. -## Package snapshot +## Reference files -- File: `linux/system/pkglist.txt` -- Purpose: reference list of packages installed on my machine +- `system/pkglist.txt`: list of packages installed on my machine. It is a reference, not a required install list. + +## Installation with GNU Stow + +### Requirements + +```bash +sudo pacman -S stow +``` + +### Install packages that link into `$HOME` + +```bash +cd /path/to/dotfiles +stow -d linux -t "$HOME" fastfetch ghostty hypr illogical-impulse nvim satty starship sunsetr thunar zsh +``` + +### Install `uwsm` + +Since this package does not mirror `$HOME` directly, it is better to point it to its final directory: + +```bash +mkdir -p "$HOME/.config/uwsm" +stow -d linux -t "$HOME/.config/uwsm" uwsm +``` -It is a reference list, not a strict “install everything” requirement. +## Common targets + +| Package | Target | +| --- | --- | +| `fastfetch` | `~/.config/fastfetch/` | +| `ghostty` | `~/.config/ghostty/` | +| `hypr` | `~/.config/hypr/` | +| `illogical-impulse` | `~/.config/illogical-impulse/` | +| `nvim` | `~/.config/nvim/` | +| `satty` | `~/.config/statty/` | +| `starship` | `~/.config/starship.toml` | +| `sunsetr` | `~/.config/sunsetr/` | +| `thunar` | `~/.config/Thunar/` | +| `uwsm` | `~/.config/uwsm/` | +| `zsh` | `~/.zshrc` and `~/.p10k.zsh` | ## Notes -- Some values are hardware-specific (monitors, GPU, peripherals). -- You will likely need to adjust monitor definitions and startup apps. -- Use this as a starting point and make it yours. +- Some values are hardware-specific, especially monitors, startup apps, and peripherals. +- Before linking anything, check whether you already have conflicting files. +- The best way to use this setup is package by package, adjusting as you go. diff --git a/linux/nvim/.config/nvim/README.md b/linux/nvim/.config/nvim/README.md index 185280b..5434442 100644 --- a/linux/nvim/.config/nvim/README.md +++ b/linux/nvim/.config/nvim/README.md @@ -1,4 +1,30 @@ -# 💤 LazyVim +# Neovim -A starter template for [LazyVim](https://github.com/LazyVim/LazyVim). -Refer to the [documentation](https://lazyvim.github.io/installation) to get started. +This Neovim configuration is based on [LazyVim](https://github.com/LazyVim/LazyVim) and lives inside my Linux dotfiles. + +## What is here + +- `init.lua`: entry point +- `lua/config/`: options, keymaps, autocmds, and Lazy bootstrap +- `lua/plugins/`: extra plugins or overrides +- `lazy-lock.json`: plugin lockfile + +## Installation with GNU Stow + +From the repository root: + +```bash +stow -d linux -t "$HOME" nvim +``` + +That links this folder to: + +```text +~/.config/nvim +``` + +## Note + +This setup starts from LazyVim, so its official documentation still applies for base plugins and requirements: + + diff --git a/windows/README.md b/windows/README.md index c42d49f..39bfb80 100644 --- a/windows/README.md +++ b/windows/README.md @@ -1,33 +1,61 @@ # Windows setup -This directory contains my Windows desktop and shell tooling configuration. +This folder contains my desktop and terminal configuration for Windows. -## Directory layout +## What is currently updated here ```text windows/ -├── fastfetch/ # Fastfetch config -├── komorebi/ # Komorebi window manager + related files +├── fastfetch/ # Fastfetch +├── komorebi/ # Komorebi + whkd + app rules ├── powershell/ # PowerShell profile -└── yasb/ # YASB bar config + styles +├── wezterm/ # WezTerm terminal +└── yasb/ # YASB bar + styles ``` -## Core components +## Main components -- `komorebi/`: tiling WM behavior, workspace rules, app-specific behavior -- `yasb/`: top bar widgets and styling -- `powershell/profile.ps1`: shell customizations +- **Komorebi:** `komorebi.json`, `applications.json`, `komorebi.bar.json`, `whkdrc`, and `komorebi.ahk`. +- **YASB:** top bar with workspaces, active window, clock, weather, media, CPU, memory, language, notifications, and power menu. +- **PowerShell:** minimal UTF-8 profile, helper functions, and `fastfetch` on startup. +- **WezTerm:** OpenGL, translucent background, WSL as the default domain, splits, and pane navigation keybindings. +- **Fastfetch:** visual system summary consistent with the rest of the setup. -## Suggested target paths +## Installation with GNU Stow -Use these as a reference; exact paths depend on your environment variables and app setup: +On Windows, the most practical approach is to link **each package to its real target**, because not every application uses the same configuration root. -- `windows/komorebi/` -> `%KOMOREBI_CONFIG_HOME%` (or your Komorebi config directory) -- `windows/yasb/` -> `%USERPROFILE%\\.config\\yasb\\` (common pattern) -- `windows/powershell/profile.ps1` -> your PowerShell `$PROFILE` +### Examples + +```bash +stow -d windows -t "$KOMOREBI_CONFIG_HOME" komorebi +stow -d windows -t "$HOME/.config/yasb" yasb +stow -d windows -t "$HOME/.config/fastfetch" fastfetch +stow -d windows -t "$HOME/.config/wezterm" wezterm +``` + +### PowerShell + +`powershell/profile.ps1` is kept as a plain file in the repo. Depending on your setup, your real profile path may look like: + +```powershell +$PROFILE +``` + +If your actual profile file name is not `profile.ps1`, copy or rename this file manually instead of using stow as-is. + +## Common targets + +| Package | Suggested target | +| --- | --- | +| `komorebi` | `%KOMOREBI_CONFIG_HOME%` | +| `yasb` | `%USERPROFILE%\.config\yasb\` | +| `fastfetch` | `%USERPROFILE%\.config\fastfetch\` | +| `wezterm` | `%USERPROFILE%\.config\wezterm\` | +| `powershell/profile.ps1` | your `$PROFILE` path | ## Notes -- Some options are machine-specific (monitor count, DPI/scaling, app paths). -- Keep backups before replacing existing configs. -- Copy what you need, test, then tweak. +- Some app paths, monitor layouts, and scaling values are specific to my machine. +- Back up existing configs before replacing them. +- On Windows this repo works best when installed component by component, not all at once.