From 8d3c4f4acbcb28b66165705d7dc4d453b74afef6 Mon Sep 17 00:00:00 2001 From: Lucas Date: Thu, 18 Jun 2026 09:55:42 +0200 Subject: [PATCH] Initial full commit for Dell16 Arch --- .config/alacritty/alacritty.toml | 61 + .config/btop/btop.conf | 286 +++ .config/gtk-3.0/bookmarks | 13 + .config/gtk-3.0/settings.ini | 17 + .config/gtk-4.0/assets | 1 + .config/gtk-4.0/gtk-dark.css | 1 + .config/gtk-4.0/gtk.css | 1 + .config/gtk-4.0/settings.ini | 7 + .config/hypr/hypridle-eco.conf | 21 + .config/hypr/hypridle.conf | 23 + .config/hypr/hyprland.conf | 163 ++ .config/hypr/hyprland.conf.save | 56 + .config/hypr/hyprlock.conf | 64 + .config/hypr/monitors.conf | 11 + .config/hypr/scripts/display-mode.sh | 32 + .config/hypr/scripts/power-save.sh | 25 + .config/hypr/scripts/suspend.sh | 7 + .config/hypr/scripts/wallpaper.sh | 6 + .config/hypr/workspaces.conf | 12 + .config/hyprdynamicmonitors/config.toml | 24 + .../hyprconfigs/dual.go.tmpl | 11 + .config/mako/config | 6 + .config/mimeapps.list | 47 + .config/ncspot/config.toml | 0 .config/ncspot/userstate.cbor | Bin 0 -> 18819 bytes .config/networkmanager-dmenu/config.ini | 29 + .config/nwg-look/config | 7 + .config/rofi/catppuccin-lavrent-mocha.rasi | 114 + .config/rofi/config.rasi | 18 + .config/systemd/user/checkupdates.service | 6 + .config/systemd/user/checkupdates.timer | 8 + .../appimagelauncherd.service | 1 + .../hyprdynamicmonitors-prepare.service | 1 + .../pipewire-pulse.service | 1 + .../default.target.wants/pipewire.service | 1 + .../power-monitor.service | 1 + .../default.target.wants/syncthing.service | 1 + .../hyprdynamicmonitors-prepare.service | 1 + .../hyprdynamicmonitors.service | 1 + .../user/pipewire-session-manager.service | 1 + .../wireplumber.service | 1 + .config/systemd/user/power-monitor.service | 11 + .../pipewire-pulse.socket | 1 + .../user/sockets.target.wants/pipewire.socket | 1 + .../timers.target.wants/checkupdates.timer | 1 + .config/user-dirs.dirs | 16 + .config/waybar/config-hdmi.jsonc | 157 ++ .config/waybar/config.jsonc | 157 ++ .config/waybar/config.jsonc.bak | 110 + .config/waybar/style.css | 76 + .config/wlogout/layout | 30 + .config/wlogout/layout.save | 36 + .config/wlogout/style.css | 51 + .config/xsettingsd/xsettingsd.conf | 9 + .gitconfig | 3 + .gtkrc-2.0 | 19 + .p10k.zsh | 1840 +++++++++++++++++ .zprofile | 3 + .zshrc | 62 + pkglist_aur.txt | 41 + pkglist_officiel.txt | 180 ++ 61 files changed, 3891 insertions(+) create mode 100644 .config/alacritty/alacritty.toml create mode 100644 .config/btop/btop.conf create mode 100644 .config/gtk-3.0/bookmarks create mode 100644 .config/gtk-3.0/settings.ini create mode 120000 .config/gtk-4.0/assets create mode 120000 .config/gtk-4.0/gtk-dark.css create mode 120000 .config/gtk-4.0/gtk.css create mode 100644 .config/gtk-4.0/settings.ini create mode 100644 .config/hypr/hypridle-eco.conf create mode 100644 .config/hypr/hypridle.conf create mode 100644 .config/hypr/hyprland.conf create mode 100644 .config/hypr/hyprland.conf.save create mode 100644 .config/hypr/hyprlock.conf create mode 100644 .config/hypr/monitors.conf create mode 100755 .config/hypr/scripts/display-mode.sh create mode 100755 .config/hypr/scripts/power-save.sh create mode 100755 .config/hypr/scripts/suspend.sh create mode 100755 .config/hypr/scripts/wallpaper.sh create mode 100644 .config/hypr/workspaces.conf create mode 100644 .config/hyprdynamicmonitors/config.toml create mode 100644 .config/hyprdynamicmonitors/hyprconfigs/dual.go.tmpl create mode 100644 .config/mako/config create mode 100644 .config/mimeapps.list create mode 100644 .config/ncspot/config.toml create mode 100644 .config/ncspot/userstate.cbor create mode 100644 .config/networkmanager-dmenu/config.ini create mode 100644 .config/nwg-look/config create mode 100644 .config/rofi/catppuccin-lavrent-mocha.rasi create mode 100644 .config/rofi/config.rasi create mode 100644 .config/systemd/user/checkupdates.service create mode 100644 .config/systemd/user/checkupdates.timer create mode 120000 .config/systemd/user/default.target.wants/appimagelauncherd.service create mode 120000 .config/systemd/user/default.target.wants/hyprdynamicmonitors-prepare.service create mode 120000 .config/systemd/user/default.target.wants/pipewire-pulse.service create mode 120000 .config/systemd/user/default.target.wants/pipewire.service create mode 120000 .config/systemd/user/default.target.wants/power-monitor.service create mode 120000 .config/systemd/user/default.target.wants/syncthing.service create mode 120000 .config/systemd/user/graphical-session-pre.target.wants/hyprdynamicmonitors-prepare.service create mode 120000 .config/systemd/user/graphical-session.target.wants/hyprdynamicmonitors.service create mode 120000 .config/systemd/user/pipewire-session-manager.service create mode 120000 .config/systemd/user/pipewire.service.wants/wireplumber.service create mode 100644 .config/systemd/user/power-monitor.service create mode 120000 .config/systemd/user/sockets.target.wants/pipewire-pulse.socket create mode 120000 .config/systemd/user/sockets.target.wants/pipewire.socket create mode 120000 .config/systemd/user/timers.target.wants/checkupdates.timer create mode 100644 .config/user-dirs.dirs create mode 100644 .config/waybar/config-hdmi.jsonc create mode 100644 .config/waybar/config.jsonc create mode 100644 .config/waybar/config.jsonc.bak create mode 100644 .config/waybar/style.css create mode 100644 .config/wlogout/layout create mode 100644 .config/wlogout/layout.save create mode 100644 .config/wlogout/style.css create mode 100644 .config/xsettingsd/xsettingsd.conf create mode 100644 .gitconfig create mode 100644 .gtkrc-2.0 create mode 100644 .p10k.zsh create mode 100644 .zprofile create mode 100644 .zshrc create mode 100644 pkglist_aur.txt create mode 100644 pkglist_officiel.txt diff --git a/.config/alacritty/alacritty.toml b/.config/alacritty/alacritty.toml new file mode 100644 index 0000000..626e9c8 --- /dev/null +++ b/.config/alacritty/alacritty.toml @@ -0,0 +1,61 @@ +# Configuration Alacritty - Catppuccin Mocha + +[general] +live_config_reload = true + +[window] +opacity = 0.95 +blur = false +dimensions = { columns = 120, lines = 30 } + +[scrolling] +history = 10000 + +# Couleurs Catppuccin Mocha +[colors.primary] +background = "#1e1e2e" +foreground = "#cdd6f4" + +[colors.normal] +black = "#45475a" +red = "#f38ba8" +green = "#a6e3a1" +yellow = "#f9e2af" +blue = "#89b4fa" +magenta = "#f5c2e7" +cyan = "#94e2d5" +white = "#bac2de" + +[colors.bright] +black = "#585b70" +red = "#f38ba8" +green = "#a6e3a1" +yellow = "#f9e2af" +blue = "#89b4fa" +magenta = "#f5c2e7" +cyan = "#94e2d5" +white = "#a6adc8" + +[colors.selection] +background = "#585b70" +foreground = "#cdd6f4" + +[colors.cursor] +text = "#1e1e2e" +cursor = "#f5c2e7" + +[colors.vi_mode_cursor] +text = "#1e1e2e" +cursor = "#f38ba8" + +[colors.search.matches] +foreground = "#1e1e2e" +background = "#f9e2af" + +[colors.search.focused_match] +foreground = "#1e1e2e" +background = "#a6e3a1" + +[cursor] +style = { shape = "Block", blinking = "Off" } +vi_mode_style = { shape = "Block", blinking = "Off" } diff --git a/.config/btop/btop.conf b/.config/btop/btop.conf new file mode 100644 index 0000000..da0f72f --- /dev/null +++ b/.config/btop/btop.conf @@ -0,0 +1,286 @@ +#? Config file for btop v.1.4.7 + +#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes. +#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes" +color_theme = "Default" + +#* If the theme set background should be shown, set to False if you want terminal background transparency. +theme_background = true + +#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false. +truecolor = true + +#* Set to true to force tty mode regardless if a real tty has been detected or not. +#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols. +force_tty = false + +#* Option to disable presets. Either the default preset, custom presets, or all presets. +#* "Off" All presets are enabled. +#* "Default" preset is disabled.#* "Custom" presets are disabled.#* "All" presets are disabled. +disable_presets = "Off" + +#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets. +#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box. +#* Use whitespace " " as separator between different presets. +#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty" +presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty" + +#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists. +#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift. +vim_keys = false + +#* Disable all mouse events. +disable_mouse = false + +#* Rounded corners on boxes, is ignored if TTY mode is ON. +rounded_corners = true + +#* Use terminal synchronized output sequences to reduce flickering on supported terminals. +terminal_sync = true + +#* Default symbols to use for graph creation, "braille", "block" or "tty". +#* "braille" offers the highest resolution but might not be included in all fonts. +#* "block" has half the resolution of braille but uses more common characters. +#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY. +#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view. +graph_symbol = "braille" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_cpu = "default" + +# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty". +graph_symbol_gpu = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_mem = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_net = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_proc = "default" + +#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace. +shown_boxes = "cpu mem net proc" + +#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs. +update_ms = 2000 + +#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct", +#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly. +proc_sorting = "cpu lazy" + +#* Reverse sorting order, True or False. +proc_reversed = false + +#* Show processes as a tree. +proc_tree = false + +#* Use the cpu graph colors in the process list. +proc_colors = true + +#* Use a darkening gradient in the process list. +proc_gradient = true + +#* If process cpu usage should be of the core it's running on or usage of the total available cpu power. +proc_per_core = false + +#* Show process memory as bytes instead of percent. +proc_mem_bytes = true + +#* Show cpu graph for each process. +proc_cpu_graphs = true + +#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate) +proc_info_smaps = false + +#* Show proc box on left side of screen instead of right. +proc_left = false + +#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop). +proc_filter_kernel = false + +#* Should the process list follow the selected process when detailed view is open. +proc_follow_detailed = true + +#* In tree-view, always accumulate child process resources in the parent process. +proc_aggregate = false + +#* Should cpu and memory usage display be preserved for dead processes when paused. +keep_dead_proc_usage = false + +#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available. +#* Select from a list of detected attributes from the options menu. +cpu_graph_upper = "Auto" + +#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available. +#* Select from a list of detected attributes from the options menu. +cpu_graph_lower = "Auto" + +#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off". +show_gpu_info = "Auto" + +#* Toggles if the lower CPU graph should be inverted. +cpu_invert_lower = true + +#* Set to True to completely disable the lower CPU graph. +cpu_single_graph = false + +#* Show cpu box at bottom of screen instead of top. +cpu_bottom = false + +#* Shows the system uptime in the CPU box. +show_uptime = true + +#* Shows the CPU package current power consumption in watts. Requires running `make setcap` or `make setuid` or running with sudo. +show_cpu_watts = true + +#* Show cpu temperature. +check_temp = true + +#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors. +cpu_sensor = "Auto" + +#* Show temperatures for cpu cores also if check_temp is True and sensors has been found. +show_coretemp = true + +#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core. +#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine. +#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries. +#* Example: "4:0 5:1 6:3" +cpu_core_map = "" + +#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine". +temp_scale = "celsius" + +#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024. +base_10_sizes = false + +#* Show CPU frequency. +show_cpu_freq = true + +#* How to calculate CPU frequency, available values: "first", "range", "lowest", "highest" and "average". +freq_mode = "first" + +#* Draw a clock at top of screen, formatting according to strftime, empty string to disable. +#* Special formatting: /host = hostname | /user = username | /uptime = system uptime +clock_format = "%X" + +#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort. +background_update = true + +#* Custom cpu model name, empty string to disable. +custom_cpu_name = "" + +#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ". +#* Only disks matching the filter will be shown. Prepend exclude= to only show disks not matching the filter. Examples: disk_filter="/boot /home/user", disks_filter="exclude=/boot /home/user" +disks_filter = "" + +#* Show graphs instead of meters for memory values. +mem_graphs = true + +#* Show mem box below net box instead of above. +mem_below_net = false + +#* Count ZFS ARC in cached and available memory. +zfs_arc_cached = true + +#* If swap memory should be shown in memory box. +show_swap = true + +#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk. +swap_disk = true + +#* If mem box should be split to also show disks info. +show_disks = true + +#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar. +only_physical = true + +#* Read disks list from /etc/fstab. This also disables only_physical. +use_fstab = true + +#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool) +zfs_hide_datasets = false + +#* Set to true to show available disk space for privileged users. +disk_free_priv = false + +#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view. +show_io_stat = true + +#* Toggles io mode for disks, showing big graphs for disk read/write speeds. +io_mode = false + +#* Set to True to show combined read/write io graphs in io mode. +io_graph_combined = false + +#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ". +#* Example: "/mnt/media:100 /:20 /boot:1". +io_graph_speeds = "" + +#* Swap the positions of the upload and download speed graphs. When true, upload will be on top. +swap_upload_download = false + +#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False. +net_download = 100 + +net_upload = 100 + +#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest. +net_auto = true + +#* Sync the auto scaling for download and upload to whichever currently has the highest scale. +net_sync = true + +#* Starts with the Network Interface specified here. +net_iface = "" + +#* "True" shows bitrates in base 10 (Kbps, Mbps). "False" shows bitrates in binary sizes (Kibps, Mibps, etc.). "Auto" uses base_10_sizes. +base_10_bitrate = "Auto" + +#* Show battery stats in top right if battery is present. +show_battery = true + +#* Which battery to use if multiple are present. "Auto" for auto detection. +selected_battery = "Auto" + +#* Show power stats of battery next to charge indicator. +show_battery_watts = true + +#* Set loglevel for "~/.local/state/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG". +#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info. +log_level = "WARNING" + +#* Automatically save current settings to config file on exit. +save_config_on_exit = true + +#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards. +nvml_measure_pcie_speeds = true + +#* Measure PCIe throughput on AMD cards, may impact performance on certain cards. +rsmi_measure_pcie_speeds = true + +#* Horizontally mirror the GPU graph. +gpu_mirror_graph = true + +#* Set which GPU vendors to show. Available values are "nvidia amd intel apple" +shown_gpus = "nvidia amd intel" + +#* Custom gpu0 model name, empty string to disable. +custom_gpu_name0 = "" + +#* Custom gpu1 model name, empty string to disable. +custom_gpu_name1 = "" + +#* Custom gpu2 model name, empty string to disable. +custom_gpu_name2 = "" + +#* Custom gpu3 model name, empty string to disable. +custom_gpu_name3 = "" + +#* Custom gpu4 model name, empty string to disable. +custom_gpu_name4 = "" + +#* Custom gpu5 model name, empty string to disable. +custom_gpu_name5 = "" diff --git a/.config/gtk-3.0/bookmarks b/.config/gtk-3.0/bookmarks new file mode 100644 index 0000000..444d502 --- /dev/null +++ b/.config/gtk-3.0/bookmarks @@ -0,0 +1,13 @@ +file:///home/lucas/Documents +file:///home/lucas/Images +file:///home/lucas/Musique +file:///home/lucas/Vid%C3%A9os +file:///home/lucas/T%C3%A9l%C3%A9chargements +file:///home/lucas/LocalProjets +file:///home/lucas/Nextcloud +file:///home/lucas/Nextcloud/Projets +file:///home/lucas/Nextcloud/Projets/2Limited +file:///home/lucas/Nextcloud2 +file:///home/lucas/Nextcloud2/03.%20Associatif/V%C3%A9lo%20Boom%20Boom +file:///home/lucas/Nextcloud2/03.%20Associatif/V%C3%A9lo%20Boom%20Boom/01%20Communication +sftp://lucas@vps-eb9864cc.vps.ovh.net:34567/home/lucas diff --git a/.config/gtk-3.0/settings.ini b/.config/gtk-3.0/settings.ini new file mode 100644 index 0000000..6530dbc --- /dev/null +++ b/.config/gtk-3.0/settings.ini @@ -0,0 +1,17 @@ +[Settings] +gtk-theme-name=catppuccin-mocha-mauve-standard+default +gtk-icon-theme-name=Papirus-Dark +gtk-font-name=Adwaita Sans 11 +gtk-cursor-theme-name=Bibata-Modern-Classic +gtk-cursor-theme-size=24 +gtk-toolbar-style=GTK_TOOLBAR_ICONS +gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR +gtk-button-images=0 +gtk-menu-images=0 +gtk-enable-event-sounds=1 +gtk-enable-input-feedback-sounds=0 +gtk-xft-antialias=1 +gtk-xft-hinting=1 +gtk-xft-hintstyle=hintslight +gtk-xft-rgba=rgb +gtk-application-prefer-dark-theme=0 diff --git a/.config/gtk-4.0/assets b/.config/gtk-4.0/assets new file mode 120000 index 0000000..234c8c6 --- /dev/null +++ b/.config/gtk-4.0/assets @@ -0,0 +1 @@ +/usr/share/themes/catppuccin-mocha-mauve-standard+default/gtk-4.0/assets \ No newline at end of file diff --git a/.config/gtk-4.0/gtk-dark.css b/.config/gtk-4.0/gtk-dark.css new file mode 120000 index 0000000..1cf1391 --- /dev/null +++ b/.config/gtk-4.0/gtk-dark.css @@ -0,0 +1 @@ +/usr/share/themes/catppuccin-mocha-mauve-standard+default/gtk-4.0/gtk-dark.css \ No newline at end of file diff --git a/.config/gtk-4.0/gtk.css b/.config/gtk-4.0/gtk.css new file mode 120000 index 0000000..ba34b8c --- /dev/null +++ b/.config/gtk-4.0/gtk.css @@ -0,0 +1 @@ +/usr/share/themes/catppuccin-mocha-mauve-standard+default/gtk-4.0/gtk.css \ No newline at end of file diff --git a/.config/gtk-4.0/settings.ini b/.config/gtk-4.0/settings.ini new file mode 100644 index 0000000..a513207 --- /dev/null +++ b/.config/gtk-4.0/settings.ini @@ -0,0 +1,7 @@ +[Settings] +gtk-theme-name=catppuccin-mocha-mauve-standard+default +gtk-icon-theme-name=Papirus-Dark +gtk-font-name=Adwaita Sans 11 +gtk-cursor-theme-name=Bibata-Modern-Classic +gtk-cursor-theme-size=24 +gtk-application-prefer-dark-theme=0 diff --git a/.config/hypr/hypridle-eco.conf b/.config/hypr/hypridle-eco.conf new file mode 100644 index 0000000..3b53533 --- /dev/null +++ b/.config/hypr/hypridle-eco.conf @@ -0,0 +1,21 @@ +general { + lock_cmd = pidof hyprlock || hyprlock + unlock_cmd = pkill -x hyprlock + before_sleep_cmd = loginctl lock-session + after_sleep_cmd = hyprctl dispatch dpms on && ./home/lucas/scripts/restart-external-screen + ignore_dbus_inhibit = false + no_fade_in = true +} +listener { + timeout = 180 + on-timeout = hyprctl dispatch dpms off + on-resume = hyprctl dispatch dpms on +} +listener { + timeout = 300 + on-timeout = loginctl lock-session +} +listener { + timeout = 360 # lock d'abord, suspend après + on-timeout = systemctl suspend +} diff --git a/.config/hypr/hypridle.conf b/.config/hypr/hypridle.conf new file mode 100644 index 0000000..c0d218c --- /dev/null +++ b/.config/hypr/hypridle.conf @@ -0,0 +1,23 @@ +general { + lock_cmd = pidof hyprlock || hyprlock # Commande de verrouillage + unlock_cmd = pkill -x hyprlock # Commande de déverrouillage + before_sleep_cmd = loginctl lock-session # Avant la mise en veille + after_sleep_cmd = hyprctl dispatch dpms on && ./home/lucas/scripts/restart-external-screen # Après réveil + ignore_dbus_inhibit = false # Respecte les inhibiteurs DBus + no_fade_in = true +} + +listener { + timeout = 600 # 10 minutes d'inactivité + on-timeout = loginctl lock-session # Verrouille l'écran +} + +listener { + timeout = 900 # 15 minutes d'inactivité + on-timeout = systemctl suspend # Met en veille +} + +animations { + animation = fadeIn, 0 + animation = fadeOut, 0 +} diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf new file mode 100644 index 0000000..c9ab351 --- /dev/null +++ b/.config/hypr/hyprland.conf @@ -0,0 +1,163 @@ +source = ~/.config/hypr/monitors.conf + +workspace = 1, monitor:eDP-1 +workspace = 2, monitor:eDP-1 +workspace = 3, monitor:eDP-1 +workspace = 4, monitor:HDMI-A-1 +workspace = 5, monitor:HDMI-A-1 +workspace = 6, monitor:HDMI-A-1 + +xwayland { + force_zero_scaling = true +} + + +misc { + vrr = 2 # 0: off, 1: on, 2: fullscreen only +} + +# --- IDENTITÉ DE LA SESSION --- +env = XDG_SESSION_TYPE,wayland +env = XDG_CURRENT_DESKTOP,Hyprland +env = XDG_SESSION_DESKTOP,Hyprland + +# --- HARDWARE & GPU (Stabilité Hybride) --- +env = LIBVA_DRIVER_NAME,nvidia +env = __GLX_VENDOR_LIBRARY_NAME,nvidia +env = NVD_BACKEND,direct + +# --- TOOLKIT & RENDU --- +env = QT_QPA_PLATFORM,wayland;xcb +env = GDK_BACKEND,wayland,x11 +env = SDL_VIDEODRIVER,wayland +env = CLUTTER_BACKEND,wayland + +# --- THEME --- +env = GTK_THEME,Adwaita:dark +env = QT_STYLE_OVERRIDE,adwaita-dark + +# --- CURSOR --- +env = XCURSOR_THEME,Adwaita +env = XCURSOR_SIZE,24 + + +# --- LANCEMENT AUTOMATIQUE --- +exec-once = waybar & +exec-once = mako & +exec-once = ~/scripts/hypridle-launch & +exec-once = nm-applet --indicator & +exec-once = blueman-applet & +exec-once = /usr/lib/polkit-kde-authentication-agent-1 & +exec-once = wl-paste --type text --watch cliphist store & +exec-once = wl-paste --type image --watch cliphist store & +exec-once = dex -a & +exec-once = ~/.config/hypr/scripts/wallpaper.sh & +exec-once = gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' +exec-once = gsettings set org.gnome.desktop.interface gtk-theme 'Adwaita-dark's + +# --- CLAVIER & TRACKPAD --- +input { + kb_layout = fr + kb_options = caps:shiftlock + numlock_by_default = true + follow_mouse = 1 + touchpad { + natural_scroll = true + tap-to-click = true + } + numlock_by_default = true + scroll_factor = 1.0 +} + +# --- RACCOURCIS CLAVIER --- +$mainMod = SUPER + +bind = $mainMod, C, exec, alacritty +bind = $mainMod, Q, killactive, +bind = $mainMod, E, exec, thunar +bind = $mainMod, X, togglefloating, +bind = $mainMod, D, exec, rofi -show drun +bind = $mainMod, L, exec, hyprlock +bind = $mainMod, M, exit, +bind = $mainMod, ugrave, exec, systemctl poweroff +bind = $mainMod, asterisk, exec, systemctl reboot +bind = $mainMod, V, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy + +# Navigation Workspaces (AZERTY) +bind = $mainMod, ampersand, workspace, 1 +bind = $mainMod, eacute, workspace, 2 +bind = $mainMod, quotedbl, workspace, 3 +bind = $mainMod, apostrophe, workspace, 4 +bind = $mainMod, parenleft, workspace, 5 +bind = $mainMod, minus, workspace, 6 + +# Déplacement fenêtres vers Workspaces (SHIFT + AZERTY) +bind = $mainMod SHIFT, ampersand, movetoworkspace, 1 +bind = $mainMod SHIFT, eacute, movetoworkspace, 2 +bind = $mainMod SHIFT, quotedbl, movetoworkspace, 3 +bind = $mainMod SHIFT, apostrophe, movetoworkspace, 4 +bind = $mainMod SHIFT, parenleft, movetoworkspace, 5 +bind = $mainMod SHIFT, minus, movetoworkspace, 6 + +# Gestion fenêtres +bind = $mainMod SHIFT, Right, resizeactive, 50 0 +bind = $mainMod SHIFT, Left, resizeactive, -50 0 +bind = $mainMod SHIFT, Up, resizeactive, 0 -50 +bind = $mainMod SHIFT, Down, resizeactive, 0 50 +bind = $mainMod SHIFT, F, togglefloating +bind = $mainMod SHIFT, G, pin +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindowss + +# Screenshot +bind = , Print, exec, grim -g "$(slurp)" - | wl-copy + +# Display mode +bind = $mainMod, P, exec, ~/.config/hypr/scripts/display-mode.sh + +# Contrôles Hardware +bindel = , XF86MonBrightnessUp, exec, brightnessctl set 5%+ +bindel = , XF86MonBrightnessDown, exec, brightnessctl set 5%- +bindel = , XF86AudioRaiseVolume, exec, pamixer -i 5 +bindel = , XF86AudioLowerVolume, exec, pamixer -d 5 +bindl = , XF86AudioMute, exec, pamixer -t + +windowrule = workspace 1, match:class ^(Alacritty)$ +windowrule = workspace 2, match:title ^(Obsidian)$ +windowrule = workspace 3, match:title ^(Beeper)$ +windowrule = workspace 4, match:class ^(firefox)$ +windowrule = workspace 5, match:class ^(org.inkscape.Inkscape)$ +windowrule = workspace 6, match:title ^(ncspot)$ +windowrule = workspace 6, match:title ^(Kasts)$ + + +# --- APPARENCE (Catppuccin Mocha) --- +general { + gaps_in = 0 + gaps_out = 0 + border_size = 0 # Pas de bordure comme demandé + col.active_border = rgb(cba6f7) rgb(89b4fa) 45deg + col.inactive_border = rgba(1e1e2eaa) + layout = dwindle +} + +decoration { + rounding = 3 + active_opacity = 1.0 + inactive_opacity = 1.0 + shadow { + enabled = false + range = 4 + render_power = 3 + color = rgba(1a1a1aee) + } + blur { + enabled = false + size = 3 + passes = 1 + } +} + +cursor { + no_hardware_cursors = true +} diff --git a/.config/hypr/hyprland.conf.save b/.config/hypr/hyprland.conf.save new file mode 100644 index 0000000..faf77a1 --- /dev/null +++ b/.config/hypr/hyprland.conf.save @@ -0,0 +1,56 @@ + + + +monitor=,highres,auto,1.25 + + +env = XDG_SESSION_TYPE,wayland +env = XDG_CURRENT_DESTKOP,Hyprland +env = XDG_SESSION_DESKTOP,Hyprland +env = LIBVA_DRIVER_NAME,nvidia +env = GBM_BACKEND,nvidia-drm +env = __GLX_VENDOR_LIBRARY_NAME,nvidia +env = QT_QPA_PLATFORM,wayland + +exec-once = waybar & +exec-one = + + + +input { + kb_layout = fr + follow_mouse = 1 + touchpad { + natural_scroll = true + tap-to-click = true + } +} + + +$mainMod = SUPER + +bind = $mainMod, Q, exec, alacritty +bind = $mainMod, C, killactive, +bind = $mainMod, M, exit, +bind = $mainMod, E, exec, thunar +bind = $mainMod, V, togglefloating, +bind = $mainMod, D, exec, rofi -show drun +bind = $mainMod, L, exec, swaylock + +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, 0 +bind = $mainMod SHIFT, 1, movetoworkspace, 1 + +bindel = , XF86MonBrightnessUp, exec, brightnessctl set 5%+ +bindel = , XF86MonBrightnessDown, exec, brightnessctl set 5%- +bindel = , XF86AudioRaiseVolume, exec, pamixer -i 5 +bindel = , XF86AudioLowerVolume, exec, pamixer -d 5 +bindl = , XF86AudioMute, exec, pamixer -t diff --git a/.config/hypr/hyprlock.conf b/.config/hypr/hyprlock.conf new file mode 100644 index 0000000..825bfa0 --- /dev/null +++ b/.config/hypr/hyprlock.conf @@ -0,0 +1,64 @@ +$base = rgb(1e1e2e) +$surface0 = rgb(313244) +$overlay0 = rgb(6c7086) +$text = rgb(cdd6f4) +$mauve = rgb(cba6f7) +$red = rgb(f38ba8) + +background { +monitor = +path = screenshot +blur_passes = 3 +blur_size = 7 +color = $base +} + +input-field { +monitor = +size = 300, 50 +position = 0, -100 +halign = center +valign = center + +outline_thickness = 2 +dots_size = 0.25 +dots_spacing = 0.2 + +outer_color = $mauve +inner_color = $surface0 +font_color = $text +fail_color = $red +check_color = $mauve +placeholder_text = Mot de passe +fail_text = Échec + +rounding = 8 +} + +label { +monitor = +text = cmd[update:1000] echo "$(date +"%H:%M")" +color = $text +font_size = 64 +font_family = JetBrains Mono +position = 0, 200 +halign = center +valign = center +} + +label { +monitor = +text = cmd[update:60000] echo "$(date +"%A %d %B")" +color = $overlay0 +font_size = 18 +font_family = JetBrains Mono +position = 0, 120 +halign = center +valign = center +} + +auth { + fingerprint { + enabled = false + } +} diff --git a/.config/hypr/monitors.conf b/.config/hypr/monitors.conf new file mode 100644 index 0000000..fa69af5 --- /dev/null +++ b/.config/hypr/monitors.conf @@ -0,0 +1,11 @@ +# Generated with hyprdynamicmonitors freeze. +# This is a template that you can edit, it is just a starter that pulled your current monitor setup, +# adjust as needed. +# You can use templates here etc, see https://github.com/fiffeek/hyprdynamicmonitors/blob/main/examples/basic/hyprconfigs/template.go.tmpl. +# Monitors are given arbitrary tags (the "monitor" prefix and the ID coming from hyprland). +# If you are using tui to edit, leave this at the end of your file (the last monitor config applies) +# and leave the markers. +# <<<<< TUI AUTO START +monitor=desc:BOE 0x0B29,2560x1600@120.00200,320x1440,1.33333333,transform,0,vrr,0 +monitor=desc:Shenzhen KTC Technology Group H27T7P-2 0000000000000,2560x1440@119.99800,0x0,1.00000000,transform,0,vrr,0 +# <<<<< TUI AUTO END diff --git a/.config/hypr/scripts/display-mode.sh b/.config/hypr/scripts/display-mode.sh new file mode 100755 index 0000000..c004a93 --- /dev/null +++ b/.config/hypr/scripts/display-mode.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +STATE_FILE="/tmp/hypr_display_mode" +INTERNAL="eDP-1" +EXTERNAL=$(hyprctl monitors all -j | jq -r '.[].name' | grep -v "$INTERNAL" | head -1) +CURRENT=$(cat "$STATE_FILE" 2>/dev/null || echo "both") + +if [ -z "$EXTERNAL" ]; then + notify-send "Display" "Aucun écran externe détecté" -t 2000 + exit 0 +fi + +case "$CURRENT" in + "both") + hyprctl keyword monitor "$INTERNAL, disable" + echo "external" > "$STATE_FILE" + notify-send "Display" "Externe uniquement ($EXTERNAL)" -t 2000 + ;; + "external") + hyprctl keyword monitor "$EXTERNAL, disable" + hyprctl keyword monitor "$INTERNAL, 2560x1600@120.0, 0x0, 1.33" + echo "internal" > "$STATE_FILE" + notify-send "Display" "Interne uniquement" -t 2000 + ;; + "internal") + hyprctl keyword monitor "$INTERNAL, 2560x1600@120.0, 1995x1440, 1.33" + sleep 0.5 + hyprctl keyword monitor "$EXTERNAL, 2560x1440@120.0, 1697x0, 1" + echo "both" > "$STATE_FILE" + notify-send "Display" "Double écran" -t 2000 + ;; +esac \ No newline at end of file diff --git a/.config/hypr/scripts/power-save.sh b/.config/hypr/scripts/power-save.sh new file mode 100755 index 0000000..2637dc8 --- /dev/null +++ b/.config/hypr/scripts/power-save.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +# Chemins (à adapter) +VIDEO="$HOME/Videos/wallpaper.mp4" +IMAGE="$HOME/Pictures/wallpaper.jpg" + +while true; do + # Vérifie si le chargeur est branché (ADP1 ou AC sur Dell) + if cat /sys/class/power_supply/AC*/online | grep -q '1'; then + # SUR SECTEUR : Lancer l'animation si elle n'est pas là + if ! pgrep -x "mpvpaper" > /dev/null; then + pkill hyprpaper + mpvpaper -o "no-audio --loop" eDP-1 "$VIDEO" & + fi + else + # SUR BATTERIE : Couper l'animation et mettre l'image fixe + if pgrep -x "mpvpaper" > /dev/null; then + pkill mpvpaper + hyprpaper & + # Optionnel : baisser les effets Hyprland ici + hyprctl reload + fi + fi + sleep 5 # Vérifie toutes les 5 secondes +done diff --git a/.config/hypr/scripts/suspend.sh b/.config/hypr/scripts/suspend.sh new file mode 100755 index 0000000..035492c --- /dev/null +++ b/.config/hypr/scripts/suspend.sh @@ -0,0 +1,7 @@ +#!/bin/bash +hyprlock & +sleep 0.5 +systemctl suspend +sleep 1 +hyprctl dispatch dpms on +hyprctl reload \ No newline at end of file diff --git a/.config/hypr/scripts/wallpaper.sh b/.config/hypr/scripts/wallpaper.sh new file mode 100755 index 0000000..3be9548 --- /dev/null +++ b/.config/hypr/scripts/wallpaper.sh @@ -0,0 +1,6 @@ +#!/bin/bash +if grep -q "eco_mode=1" /proc/cmdline; then + swaybg -c 000000 & +else + swaybg -i ~/Pictures/wallpaper.jpg -m fill & +fi \ No newline at end of file diff --git a/.config/hypr/workspaces.conf b/.config/hypr/workspaces.conf new file mode 100644 index 0000000..759a2e0 --- /dev/null +++ b/.config/hypr/workspaces.conf @@ -0,0 +1,12 @@ +# Generated by nwg-displays on 2026-03-18 at 17:54:45. Do not edit manually. + +workspace=1,monitor:eDP-1,default:true +workspace=2,monitor:eDP-1 +workspace=3,monitor:eDP-1 +workspace=4,monitor:eDP-1 +workspace=5,monitor:eDP-1 +workspace=6,monitor:eDP-1 +workspace=7,monitor:eDP-1 +workspace=8,monitor:eDP-1 +workspace=9,monitor:eDP-1 +workspace=10,monitor:eDP-1 diff --git a/.config/hyprdynamicmonitors/config.toml b/.config/hyprdynamicmonitors/config.toml new file mode 100644 index 0000000..f78ae31 --- /dev/null +++ b/.config/hyprdynamicmonitors/config.toml @@ -0,0 +1,24 @@ +[general] +destination = "$HOME/.config/hypr/monitors.conf" + +[power_events] + +[power_events.dbus_query_object] +path = "/org/freedesktop/UPower/devices/line_power_AC" + +[[power_events.dbus_signal_match_rules]] +object_path = "/org/freedesktop/UPower/devices/line_power_AC" + + +[profiles.dual] +config_file = "/home/lucas/.config/hyprdynamicmonitors/hyprconfigs/dual.go.tmpl" +config_file_type = "template" +[profiles.dual.conditions] + +[[profiles.dual.conditions.required_monitors]] +description = "BOE 0x0B29" +monitor_tag = "monitor0" + +[[profiles.dual.conditions.required_monitors]] +description = "Shenzhen KTC Technology Group H27T7P-2 0000000000000" +monitor_tag = "monitor1" diff --git a/.config/hyprdynamicmonitors/hyprconfigs/dual.go.tmpl b/.config/hyprdynamicmonitors/hyprconfigs/dual.go.tmpl new file mode 100644 index 0000000..fa69af5 --- /dev/null +++ b/.config/hyprdynamicmonitors/hyprconfigs/dual.go.tmpl @@ -0,0 +1,11 @@ +# Generated with hyprdynamicmonitors freeze. +# This is a template that you can edit, it is just a starter that pulled your current monitor setup, +# adjust as needed. +# You can use templates here etc, see https://github.com/fiffeek/hyprdynamicmonitors/blob/main/examples/basic/hyprconfigs/template.go.tmpl. +# Monitors are given arbitrary tags (the "monitor" prefix and the ID coming from hyprland). +# If you are using tui to edit, leave this at the end of your file (the last monitor config applies) +# and leave the markers. +# <<<<< TUI AUTO START +monitor=desc:BOE 0x0B29,2560x1600@120.00200,320x1440,1.33333333,transform,0,vrr,0 +monitor=desc:Shenzhen KTC Technology Group H27T7P-2 0000000000000,2560x1440@119.99800,0x0,1.00000000,transform,0,vrr,0 +# <<<<< TUI AUTO END diff --git a/.config/mako/config b/.config/mako/config new file mode 100644 index 0000000..6925c3c --- /dev/null +++ b/.config/mako/config @@ -0,0 +1,6 @@ +background-color=#1e1e2e +text-color=#cdd6f4 +border-color=#cba6f7 +border-size=2 +border-radius=8 +default-timeout=5000 diff --git a/.config/mimeapps.list b/.config/mimeapps.list new file mode 100644 index 0000000..4ab2d7d --- /dev/null +++ b/.config/mimeapps.list @@ -0,0 +1,47 @@ +[Default Applications] +x-scheme-handler/discord=vesktop.desktop +x-scheme-handler/http=firefox.desktop +x-scheme-handler/https=firefox.desktop +x-scheme-handler/chrome=firefox.desktop +text/html=firefox.desktop +application/x-extension-htm=firefox.desktop +application/x-extension-html=firefox.desktop +application/x-extension-shtml=firefox.desktop +application/xhtml+xml=firefox.desktop +application/x-extension-xhtml=firefox.desktop +application/x-extension-xht=firefox.desktop +inode/directory=thunar.desktop +video/mp4=mpv.desktop +x-terminal-emulator=Alacritty.desktop +image/svg+xml=org.inkscape.Inkscape.desktop +application/x-zerosize=codium.desktop +image/jpeg=viewnior.desktop +image/png=viewnior.desktop +model/stl=f3d.desktop +application/pdf=firefox.desktop +audio/x-opus+ogg=mpv.desktop +audio/flac=mpv.desktop +video/x-matroska=mpv.desktop +application/json=codium.desktop + +[Added Associations] +x-scheme-handler/http=firefox.desktop; +x-scheme-handler/https=firefox.desktop; +x-scheme-handler/chrome=firefox.desktop; +text/html=firefox.desktop; +application/x-extension-htm=firefox.desktop; +application/x-extension-html=firefox.desktop; +application/x-extension-shtml=firefox.desktop; +application/xhtml+xml=firefox.desktop; +application/x-extension-xhtml=firefox.desktop; +application/x-extension-xht=firefox.desktop; +video/mp4=mpv.desktop; +application/x-zerosize=codium.desktop;onlyoffice-desktopeditors.desktop; +image/jpeg=com.github.PintaProject.Pinta.desktop;imv.desktop;nsxiv.desktop;viewnior.desktop; +image/png=com.github.PintaProject.Pinta.desktop;imv.desktop;viewnior.desktop; +application/pdf=firefox.desktop;onlyoffice-desktopeditors.desktop; +audio/x-opus+ogg=mpv.desktop; +audio/flac=mpv.desktop; +text/csv=onlyoffice-desktopeditors.desktop;codium.desktop; +video/x-matroska=mpv.desktop; +application/json=codium.desktop; diff --git a/.config/ncspot/config.toml b/.config/ncspot/config.toml new file mode 100644 index 0000000..e69de29 diff --git a/.config/ncspot/userstate.cbor b/.config/ncspot/userstate.cbor new file mode 100644 index 0000000000000000000000000000000000000000..3ab005de51f7e4e6f97e03d3343925936411b5d8 GIT binary patch literal 18819 zcmeI4NslDkRe=4vpN-9E2IKbgK!P97&yxLK%tLuYqf+lA!EvnDI-%z zsM_8k5F1N|1u_;A65b$WBoIPEtXLrQ%mRrG3;qHI2_yqID=I59vZKmD3M3YEw^Y?# zx8vNr-#O==d(OG>2U_gekpn;V{k0w#k*3-3dzuf|5QN6s20Pmf!qp~%5ez~Q!ryn4 z$oHWez6^b!SRb-|;HsYU((_g5|EqiVk1yB0r~5DnzNH3G30`~}y1?~-JDzNnB(hT@pQ?W{A5ICM|!Ck3iCU!bQH*#d?KeJRbP+q2gdBad6AB3jo zzV)Gxe&tVe;D_j=2e-BeY&%j+*VCc9O8@nxsRp+(EkT=BamuT2E7V+WS7SnG&mgen z$O)QmsT#>8$4sDFl6R$E7#ep!LH{>q-OZ$3)+R%LTov*4CTf9IY&hx9a|N4<7eoJL z<+4~&(@JFN^_7OU=Hqe4bX17CM)vx>5+PbMkatgsVQ zMhc?|(7RhtqgPU!ZT46n*Ds(RBwfQ&Au&v&NDg8&N0SW4$~?`>8eNEG{?a|hlEQ8< z=A7jl1zD0pZ)g&Ay>BmpTuqYAs>OG;JeK(*Q&##;C&+9sj6pU93e9PY*D(4NFtm!FM27oQuAsVc}u zP>+{-kYc}|*Sn`_eeuMeobN?fSS3N#u4v^|X!RPsXq{!BH>qn>0mlibYO;&LjKA>p$a&5t_shJs)AJA_vp%=G!k{KNh82agRY;e3b`XwRWQmxjsn91 z1r^{o-#se8t=U9gNb&s0IpcmC<8E~@XFKGWE5}oll-0^$=Q}Cj2Wcm)lrFWU=Cq5! z+C&@*b4jnRFglC%Ow=_rX$EpYV<5vQxW-X5Nyz9AUyx?*;yp!^Jg51*AWb3)YcxxD zG=rU47Tt(Ru>xF*aL|FG#;G{2Jm6 zj(j*rV90hAN@H=H1T=|bTp|0-U*IQ*6Z|>xH;WP{4JmfxWX1ZzcHhG&iKNG~T;jPS zQ{vn1d$spE?;&5_7z$I<94|^kh$5n5*q^`qjU)C~#_<7$1cH(f!{7}2s~F!Y2?#K8 zV=M;)h22|5IB6|nOqM0a@fOk~VtHahEY+Dlzu(1=b9?vrd;geH?pF-^!__(wGXzsY*?4;Rz~Y$D(S z=QemZ+4j`9+QQmW56jbp{E?|9th*3}ugKjL+25?4gyoD5`5aY- z^er59ZlrU%=%j@^!?IP!{Rx?nY_}t}=n&3Rj2USsoOr+I&55y9wn*KRe5opLz<|HN znToo~bY%s~1c#hAPRWo`S(@TFQX>nQZvNsuMKj~Xf2bf$njoaQip(Mwt?mFWTD}lB zD|s~YN2W9l5eDYr=wFQFvu}L+M6z!xig#wGw=rYlmGU-*vat4n*q%>}jyP!F2Vh4@ zXB4|@qg!iJx5TDMgdVf>PNG6{8@=|M=Ds<14L$PW@)$ zj8W7!^b`w*4mi(*pySlA0~>sY8`Sqfz{`TX;rX@@GlCzEF;a|qk){`9Z3sYatqT^lZFRYx?AJ%SokZs0(EnOmEPrGQKY39@yYDVEOjj>0 zyr?9C7?!G@`-DwDJ4=T>lW)$Hp;nzN1+7u*)<(@U+eTWD4CfVPH0OBe$(kP+qp7-! zVyf5Rjb1;{gxcP0$Gz5y7&X{b3$)JN(@rXYo9q6HNNVPEX3Bksnc~u>resy%_Wple z1D#V@jYPQ=Rpl_1U@?keC{4qeLeTTq_$lZazx~4np)(${V!PI$Rre}03$I~iYXQf3 z(DO&8(6zSjp{#2$bAMC*%8~Fb6q{d`dS_&BW2`oA4K&Y>>E2wg>ZUq~`HgyyFqLyc zNKPF-a(Jt3Xgfm~?Ds={*|IMXrb4bE$nzB7H9(OBBSTqX2tYxSql%er{(?P0kj(h( zA1O+ZU|UO4ovIu+SLmiE_F#9MYqm`8$dsUd2$W0Bg6XekzxKBe2(@~1B-Vx*hWNCF z$-dd`+4Eu8nh1Mu(o(~eA?%r@o_RuuX^E3;dis`t4Av?y2-sLEgA0WBLat$`Ffv0> z6p%R_(-;|(Ihx>PtypF{f61O=n8{54XhDX=&R)xbxM@s;nA`)ZW$ilpKFmqVk+$f68D86 zK{cwZpg8(ywVMxpz_Aw~&qZBBli+z&SioouBWY9*Az75k;(>}6@~QcY_XJG}KaZk* ztRPKVX&M#X15;xm%}iF>I%H%Bc{KA!rZm+a+D8kr{N42fOE?Z9%gk6Kv1`d@0L#mI z>{r@!BZ87^-EWF_QcesB3m1(^8+r|5Eme3eYKnq*X^g3eYv^g{B!eO!2uNgqs>Y!( z2uEAv;fVi(t3>&W^(Z~^CL06)cu{(k!f$6D8f}-WY1rxJCLrnDktx08Gm;q} zLLkpAO-&UZiVQ=bnqH|^yvXpeQ)N)=1IrAv=Nqanx~$pvt@S3DjJLy4qRlBgwNCFs z{0T9sEVgt9OguPqD$8mQwuM>?UYO~u=~Il^ za|`{6f{gJA>59PQBiO1$wK*yaj^lE!h31dE-!mnYUp6DBn2|pF=Z6&It=?1BQpb}s zW=d_OZ8$S*V<&h6YQ#GuzdGYnoMzS3v?xFY;}b}tW#HsoX{!qjnr*&Us|Iy+a>|@w z9wc2uQd5DZunPJ@&@9h0kit0>#8QQ3; zrh-lo8GbMZ^P1nV;{J?Z53t5!L5UX-@18OmAlczUhZOLx!aA#=s=OjFn{E|$0bne0G3cML>={spstK}w}v4r9CzkmA({A)(FRT{a#f?E1uc=uQ> zecqWGd@ZIaEN+56(b}#CsAlSrK=1`B#@p+P$(MUtY*wa*vu;uiB3Q)i7Kh_5>Xjwd5x*K`@B8wT}Mmz)YpQ@~Q$MxWMzCzT>P^${~`Fe|q& z=y7X3CHv4AUZ~W==eS0x6riEj4p}BhlH)jxW?4wFgj_6@mCx`grOLSYpDL(SY@{-- zJ!@=y7lcV{JEWD2tURU4ADJqZF*2f1^|nP*%kMKsO?l;13?HSXB~*HJ_ns+w_72q~ zJnc+LUd3$a@Z(5fF&)l(y4Zp*Xo{o`CYSmeIB;81@J0tjnnyxP+RttJs+r=!d26V4h-FGjH z`!%W8Fvb}g<*Q^~VJMO$X@y~+Dsx=1>{b4fKE*h*bNoy}#yIAM?zl5|NzLGu<<{$y z^iCyCa4BvgM{%X81q`f2 zX0Z9+fU99Ls}L9lXjPRpg~D+bS71Q{&R@%?;ATAdCyK)D6LWmin~#Nwh2yf;nO7y& z$TMI(cjUbXZ@Pi!xMsn=o@c*RJ(7L38lpZ_-&8`V>fL60G|ptXkn?sD#%yf+b)077 z`F5e$cy&O=lpPxLYBE-EJ;8jhx@$rJ%+#ul<7`gQNu}EciZZNP#t?) z+^4)e?D->8?AwZsI%3P_9-t25(z|zmLoK=4i0{!7@w2ag^QZ-1RVF;M9!0KgS}54^ zJ=9O+2P@RM2fKG2yk{Q$tEf0-xb4>1*piG`H^a?>Q5U)zGeF10L})whLA^Sksv%RK zOp}<2d&YPqiEF26H`-hijtB)Ddqy7l04K%4CkcU$30&u*@FO9uug}!F1n2&~lANiH(*w`k!B=BaCX$&b*h6pZd98NMH55XLV=C;}!!ZXLO`Pwgkt|Qwu`-Pb zZs^i&ts1Py6H!|CwSJwe)l#iF`xxkkK>nvV>n&yD#=v%|U zf4Fh>n)e`bN8YQ{XHntYStI9B>g-Bolw5qg(DP{2@cj2`M`gNITO*t~Qyi2fpek#| zn@O7hi;U)Kr=v7Kr8;y2hYgsp{B2~-o7^$#p z2&<@fjlprAATS!IA^H}&(gi83LVL2Wn66>ky*!lpBkzs%tqw$e4kGFfM|OI+ z7$TvYj%(nfZ7;+2(Ov(ee|@^hr&j@r{5(5jtk||UZ&QucM5s@yhRQl|yDZ<|(@dTa zf5J^_OOsthot+qNrr6AKK%$N>j&-+3+1CKaQSF^!0lEn!(~QOficnFsr>JN(e{c~# ze|et(ei7S!t{`w`8tyv5WKafrOmBvf%`FMMo(DXCWC~oXLr3;@8Mcqd_uwxdys+N) zJ;w~l3|oe^>{{JrgYlHW_}D9tN6RvoTJF816GqH&%q2brLvb#zWh$C0u*)wltoA78 z8jL_DG=f97xOf`Z7=G6N@a|JQ7%C3<(k}J;aZHV$rJ~3SG z8+jP>N2VC9s)t(B4ts3j1~ucajx1kkLS-l{YkCDGZp^?qL;5PF*6y0x@;Zs_ByHLh z>h7{LRAU@fWOfz61w*}Q4icLbd$qckl0Kiz2{)BYu+}K7JMm!cM;z0!tJGS%z^R-ZJ>1$328W&<)VX|uO9UFlwaP-!(0fdxE_Vv3V#Ed9b9vVg z=6Rgp6d9u^jA!}7rFxE02~e!2mcO2l5+*Nh(7*WkqJ+nr&0@#R=bG4X+=aQEQm~cl zmg(G)DPgnL?2byyS*=;nGk@{lAFvurp^q;3wS_Y~zKtob0wf3ZU3935MNJ#NV^Gt3 zrYC79qI9cjXzbP-auZvyh`v1&D%3^N{q{lBH8@cN6vYFUM8#1Iq8s#3=6C?rV!Leq z;^pHcQA~A%XASlj3gW~_7j{T-<`H~5>0}ole9G$)a_-3cUA9@OLu6{_rL)I( z*|)!QWcli0fnlXKtc}iyBF~&lG$skFKiIEu-=bW%(QLNX%?Wx1$6fTSrSmvZW|m+c zZKR~J2+J+64g39(+m*9+dpU_~SQDs*0#pp`z#2r?d{7F71sX&ZwIa?rpFuur>V_b0 z=YSd^uh0Z@TcFs{ov2P`|BV4S?PoC zeDFsf{Ka=~3!?w{CywY(wsi*mX*153e1c6aWN9o-60GWsA*%fk_DNOpvanBLufdFB zE7aw{qZcBOG={ST!=rojT*1!9{6&2XGl|`hnfn|s-Y$qa|6MA1CY?Vr#r*#-xB0*R vavOB5IelSL`Z}cGn~nld8`w+KG=69keZxKcTt2*;=I&iedKGE_T@CmzKdPM+ literal 0 HcmV?d00001 diff --git a/.config/networkmanager-dmenu/config.ini b/.config/networkmanager-dmenu/config.ini new file mode 100644 index 0000000..ee0779f --- /dev/null +++ b/.config/networkmanager-dmenu/config.ini @@ -0,0 +1,29 @@ +[dmenu] +dmenu_command = rofi +active_chars = == +highlight = True +highlight_fg = +highlight_bg = +highlight_bold = True +compact = False +pinentry = +wifi_icons = 󰤯󰤟󰤢󰤥󰤨 +format = {name:<{max_len_name}s} {sec:<{max_len_sec}s} {icon:>4} +list_saved = False +prompt = Networks + +[dmenu_passphrase] +obscure = False +obscure_color = #222222 + +[pinentry] +description = Get network password +prompt = Password: + +[editor] +terminal = alacritty +gui_if_available = True +gui = nm-connection-editor + +[nmdm] +rescan_delay = 5 diff --git a/.config/nwg-look/config b/.config/nwg-look/config new file mode 100644 index 0000000..3f49ae5 --- /dev/null +++ b/.config/nwg-look/config @@ -0,0 +1,7 @@ +{ + "export-settings-ini": true, + "export-gtkrc-20": true, + "export-index-theme": true, + "export-xsettingsd": true, + "export-gtk4-symlinks": true +} \ No newline at end of file diff --git a/.config/rofi/catppuccin-lavrent-mocha.rasi b/.config/rofi/catppuccin-lavrent-mocha.rasi new file mode 100644 index 0000000..3c5b70d --- /dev/null +++ b/.config/rofi/catppuccin-lavrent-mocha.rasi @@ -0,0 +1,114 @@ +/** + * Catppuccin Mocha theme + * Color palette copied from https://catppuccin.com/palette + * https://github.com/hiimsergey/rofi-catppuccin + */ + +* { + base: #1e1e2e; + surface0: #313244; + overlay0: #6c7086; + text: #cdd6f4; + + mauve: #cba6f7; + red: #f38ba8; + peach: #fab387; + green: #a6e3a1; + lavender: #b4befe; + + background-color: @base; +} + +window { + height: 600; + width: 600; + + border: 3; + border-radius: 10; + border-color: @lavender; +} + +mainbox { + spacing: 0; + children: [inputbar, message, listview]; +} + +inputbar { + color: @text; + padding: 14; + background-color: @base; +} + +message { + padding: 10; + background-color: @overlay0; +} + +listview { + padding: 8; + border-radius: 0 0 10 10; + border: 2 2 2 2; + border-color: @base; + background-color: @base; + dynamic: false; +} + +textbox { + text-color: @text; + background-color: inherit; +} + +error-message { + border: 20 20 20 20; +} + +entry, prompt, case-indicator { + text-color: inherit; +} + +prompt { + margin: 0 10 0 0; +} + +element { + padding: 5; + vertical-align: 0.5; + border-radius: 10; + background-color: @surface0; +} + +element.selected.normal { + background-color: @overlay0; +} + +element.alternate.normal { + background-color: inherit; +} + +element.normal.active, element.alternate.active { + background-color: @peach; +} + +element.selected.active { + background-color: @green; +} + +element.normal.urgent, element.alternate.urgent { + background-color: @red; +} + +element.selected.urgent { + background-color: @mauve; +} + +element-text, element-icon { + size: 40; + margin: 0 10 0 0; + vertical-align: 0.5; + background-color: inherit; + text-color: @text; +} + +element-text .active, element-text .urgent { + text-color: @base; +} \ No newline at end of file diff --git a/.config/rofi/config.rasi b/.config/rofi/config.rasi new file mode 100644 index 0000000..79ff48d --- /dev/null +++ b/.config/rofi/config.rasi @@ -0,0 +1,18 @@ +configuration { + show-icons: true; + + display-ssh: "󰣀 ssh:"; + display-run: "󱓞 run:"; + display-drun: "󰣖 drun:"; + display-window: "󱂬 window:"; + display-combi: "󰕘 combi:"; + display-filebrowser: "󰉋 filebrowser:"; + + border: 2px; /* Évitez 1px sur les écrans haute résolution */ + border-radius: 10px; /* Des coins arrondis lissent l'aspect visuel */ + border-color: @mauve; + + font: "JetBrainsMono Nerd Font 12"; +} + +@theme "~/.config/rofi/catppuccin-lavrent-mocha.rasi" diff --git a/.config/systemd/user/checkupdates.service b/.config/systemd/user/checkupdates.service new file mode 100644 index 0000000..aa420c6 --- /dev/null +++ b/.config/systemd/user/checkupdates.service @@ -0,0 +1,6 @@ +[Unit] +Description=Check pacman updates + +[Service] +Type=oneshot +ExecStart=/bin/sh -c 'checkupdates > ~/.cache/updates-count 2>/dev/null || true' diff --git a/.config/systemd/user/checkupdates.timer b/.config/systemd/user/checkupdates.timer new file mode 100644 index 0000000..42d1954 --- /dev/null +++ b/.config/systemd/user/checkupdates.timer @@ -0,0 +1,8 @@ +[Unit] +Description=Check updates on boot + +[Timer] +OnBootSec=1min + +[Install] +WantedBy=timers.target diff --git a/.config/systemd/user/default.target.wants/appimagelauncherd.service b/.config/systemd/user/default.target.wants/appimagelauncherd.service new file mode 120000 index 0000000..686d96b --- /dev/null +++ b/.config/systemd/user/default.target.wants/appimagelauncherd.service @@ -0,0 +1 @@ +/usr/lib/systemd/user/appimagelauncherd.service \ No newline at end of file diff --git a/.config/systemd/user/default.target.wants/hyprdynamicmonitors-prepare.service b/.config/systemd/user/default.target.wants/hyprdynamicmonitors-prepare.service new file mode 120000 index 0000000..915246b --- /dev/null +++ b/.config/systemd/user/default.target.wants/hyprdynamicmonitors-prepare.service @@ -0,0 +1 @@ +/usr/lib/systemd/user/hyprdynamicmonitors-prepare.service \ No newline at end of file diff --git a/.config/systemd/user/default.target.wants/pipewire-pulse.service b/.config/systemd/user/default.target.wants/pipewire-pulse.service new file mode 120000 index 0000000..f631f69 --- /dev/null +++ b/.config/systemd/user/default.target.wants/pipewire-pulse.service @@ -0,0 +1 @@ +/usr/lib/systemd/user/pipewire-pulse.service \ No newline at end of file diff --git a/.config/systemd/user/default.target.wants/pipewire.service b/.config/systemd/user/default.target.wants/pipewire.service new file mode 120000 index 0000000..47f171d --- /dev/null +++ b/.config/systemd/user/default.target.wants/pipewire.service @@ -0,0 +1 @@ +/usr/lib/systemd/user/pipewire.service \ No newline at end of file diff --git a/.config/systemd/user/default.target.wants/power-monitor.service b/.config/systemd/user/default.target.wants/power-monitor.service new file mode 120000 index 0000000..7cbd46e --- /dev/null +++ b/.config/systemd/user/default.target.wants/power-monitor.service @@ -0,0 +1 @@ +/home/lucas/.config/systemd/user/power-monitor.service \ No newline at end of file diff --git a/.config/systemd/user/default.target.wants/syncthing.service b/.config/systemd/user/default.target.wants/syncthing.service new file mode 120000 index 0000000..d55cc27 --- /dev/null +++ b/.config/systemd/user/default.target.wants/syncthing.service @@ -0,0 +1 @@ +/usr/lib/systemd/user/syncthing.service \ No newline at end of file diff --git a/.config/systemd/user/graphical-session-pre.target.wants/hyprdynamicmonitors-prepare.service b/.config/systemd/user/graphical-session-pre.target.wants/hyprdynamicmonitors-prepare.service new file mode 120000 index 0000000..915246b --- /dev/null +++ b/.config/systemd/user/graphical-session-pre.target.wants/hyprdynamicmonitors-prepare.service @@ -0,0 +1 @@ +/usr/lib/systemd/user/hyprdynamicmonitors-prepare.service \ No newline at end of file diff --git a/.config/systemd/user/graphical-session.target.wants/hyprdynamicmonitors.service b/.config/systemd/user/graphical-session.target.wants/hyprdynamicmonitors.service new file mode 120000 index 0000000..88a21d1 --- /dev/null +++ b/.config/systemd/user/graphical-session.target.wants/hyprdynamicmonitors.service @@ -0,0 +1 @@ +/usr/lib/systemd/user/hyprdynamicmonitors.service \ No newline at end of file diff --git a/.config/systemd/user/pipewire-session-manager.service b/.config/systemd/user/pipewire-session-manager.service new file mode 120000 index 0000000..a092a62 --- /dev/null +++ b/.config/systemd/user/pipewire-session-manager.service @@ -0,0 +1 @@ +/usr/lib/systemd/user/wireplumber.service \ No newline at end of file diff --git a/.config/systemd/user/pipewire.service.wants/wireplumber.service b/.config/systemd/user/pipewire.service.wants/wireplumber.service new file mode 120000 index 0000000..a092a62 --- /dev/null +++ b/.config/systemd/user/pipewire.service.wants/wireplumber.service @@ -0,0 +1 @@ +/usr/lib/systemd/user/wireplumber.service \ No newline at end of file diff --git a/.config/systemd/user/power-monitor.service b/.config/systemd/user/power-monitor.service new file mode 100644 index 0000000..4f9dd8b --- /dev/null +++ b/.config/systemd/user/power-monitor.service @@ -0,0 +1,11 @@ +[Unit] +Description=RAPL power monitor +After=graphical-session.target + +[Service] +Type=simple +ExecStart=/home/lucas/scripts/power-monitor +Restart=always + +[Install] +WantedBy=default.target diff --git a/.config/systemd/user/sockets.target.wants/pipewire-pulse.socket b/.config/systemd/user/sockets.target.wants/pipewire-pulse.socket new file mode 120000 index 0000000..45f6209 --- /dev/null +++ b/.config/systemd/user/sockets.target.wants/pipewire-pulse.socket @@ -0,0 +1 @@ +/usr/lib/systemd/user/pipewire-pulse.socket \ No newline at end of file diff --git a/.config/systemd/user/sockets.target.wants/pipewire.socket b/.config/systemd/user/sockets.target.wants/pipewire.socket new file mode 120000 index 0000000..d871d81 --- /dev/null +++ b/.config/systemd/user/sockets.target.wants/pipewire.socket @@ -0,0 +1 @@ +/usr/lib/systemd/user/pipewire.socket \ No newline at end of file diff --git a/.config/systemd/user/timers.target.wants/checkupdates.timer b/.config/systemd/user/timers.target.wants/checkupdates.timer new file mode 120000 index 0000000..67d30b7 --- /dev/null +++ b/.config/systemd/user/timers.target.wants/checkupdates.timer @@ -0,0 +1 @@ +/home/lucas/.config/systemd/user/checkupdates.timer \ No newline at end of file diff --git a/.config/user-dirs.dirs b/.config/user-dirs.dirs new file mode 100644 index 0000000..a4416da --- /dev/null +++ b/.config/user-dirs.dirs @@ -0,0 +1,16 @@ +# This file is written by xdg-user-dirs-update +# If you want to change or add directories, just edit the line you're +# interested in. All local changes will be retained on the next run. +# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped +# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an +# absolute path. No other format is supported. +# +XDG_DESKTOP_DIR="$HOME/Bureau" +XDG_DOWNLOAD_DIR="$HOME/Téléchargements" +XDG_TEMPLATES_DIR="$HOME/Modèles" +XDG_PUBLICSHARE_DIR="$HOME/Public" +XDG_DOCUMENTS_DIR="$HOME/Documents" +XDG_MUSIC_DIR="$HOME/Musique" +XDG_PICTURES_DIR="$HOME/Images" +XDG_VIDEOS_DIR="$HOME/Vidéos" +XDG_PROJECTS_DIR="$HOME/" diff --git a/.config/waybar/config-hdmi.jsonc b/.config/waybar/config-hdmi.jsonc new file mode 100644 index 0000000..03f0eaf --- /dev/null +++ b/.config/waybar/config-hdmi.jsonc @@ -0,0 +1,157 @@ +{ + "output": "HDMI-A-1", + "position": "bottom", + "layer": "top", + "height": 36, + "spacing": 3, + "modules-left": [ + "hyprland/workspaces", + "hyprland/submap" + ], + "modules-center": [ + "hyprland/window" + ], + "modules-right": [ + "pulseaudio", + "pulseaudio#microphone", + "network", + "cpu", + "memory", + "temperature", + "backlight", + "custom/battery", + "clock", + "tray", + "custom/power" + ], + + // Le module workspaces s'adapte selon l'écran + "hyprland/workspaces": { + "format": "{name} {icon}", + "on-click": "activate", + "format-icons": { + "active": "", + "default": "", + "empty": "" + }, + "all-outputs": false, + // Ici on définit les workspaces persistants pour chaque écran + "persistent-workspaces": { + "eDP-1": [1, 2, 3], + "HDMI-A-1": [4, 5, 6] + } + }, + + "hyprland/window": { + "format": "󱂬 {title}", + "rewrite": { + "(.*) — Mozilla Firefox": "󰈹 Firefox", + "(.*) - Visual Studio Code": "󰨞 VS Code", + "(.*)vlc": "󰕼 VLC", + "lucas@dell16-lucas:(.*)": " Terminal" + }, + "separate-outputs": true + }, + + "pulseaudio": { + "format": "{icon} {volume}%", + "format-muted": "󰝟 {volume}%", + "format-icons": { + "default": [ + "", + "", + "" + ] + }, + "on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle", + "on-click-right": "pavucontrol" + }, + "pulseaudio#microphone": { + "type": "pulseaudio", + "format": "{format_source}", + "format-source": " {volume}%", + "format-source-muted": "", + "on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle", + "on-click-right": "pavucontrol" + }, + "network": { + "interval": 10, + "format-wifi": "{icon} {essid} {signalStrength}%", + "format-icons": [ + "󰤯", + "󰤟", + "󰤢", + "󰤥", + "󰤨" + ], + "format-ethernet": "󰈁 {ifname}", + "format-disconnected": "󰈂 Disconnected", + "format-alt": "{ipaddr}/{cidr}", + "on-click-right": "networkmanager_dmenu" + }, + "cpu": { + "interval": 5, + "format": " {usage}%", + "tooltip": false, + "on-click": "alacritty -e btop" + }, + "memory": { + "interval": 5, + "format": " {percentage}%", + "on-click": "alacritty -e btop" + }, + "temperature": { + "interval": 5, + "hwmon-path": "/sys/class/hwmon/hwmon7/temp1_input", + "critical-threshold": 80, + "format-critical": "{icon} {temperatureC}°C", + "format": "{icon} {temperatureC}°C", + "format-icons": [ + "", + "", + "", + "", + "" + ], + "tooltip": false, + "on-click": "alacritty -e btop" + }, + "backlight": { + "format": "{icon} {percent}%", + "format-icons": [ + "", + "" + ] + }, + "custom/battery": { + "exec": "~/scripts/batt-info", + "interval": 2, + "on-click": "~/scripts/batt-toggle", + "on-click-right": "", + "tooltip-format": "Clic: basculer limite charge" + }, + "clock": { + "format": " {:%H:%M}", + "format-alt": " {:%d/%m/%Y}", + "smooth-scrolling-threshold": 1, + "actions": { + "on-scroll-up": "shift_up", + "on-scroll-down": "shift_down" + }, + "tooltip-format": "{calendar}", + "calendar": { + "mode": "month", + "mode-mon-col": 1, + "format": { + "months": "{}", + "days": "{}", + "weekdays": "{}", + "today": "{}" + } + } + }, + "custom/power": { + "format": "⏻", + "on-click": "wlogout" + } +} diff --git a/.config/waybar/config.jsonc b/.config/waybar/config.jsonc new file mode 100644 index 0000000..00bdfcb --- /dev/null +++ b/.config/waybar/config.jsonc @@ -0,0 +1,157 @@ +{ + "output": "eDP-1", + "position": "bottom", + "layer": "top", + "height": 36, + "spacing": 3, + "modules-left": [ + "hyprland/workspaces", + "hyprland/submap" + ], + "modules-center": [ + "hyprland/window" + ], + "modules-right": [ + "pulseaudio", + "pulseaudio#microphone", + "network", + "cpu", + "memory", + "temperature", + "backlight", + "custom/battery", + "clock", + "tray", + "custom/power" + ], + + // Le module workspaces s'adapte selon l'écran + "hyprland/workspaces": { + "format": "{name} {icon}", + "on-click": "activate", + "format-icons": { + "active": "", + "default": "", + "empty": "" + }, + "all-outputs": false, + // Ici on définit les workspaces persistants pour chaque écran + "persistent-workspaces": { + "eDP-1": [1, 2, 3], + "HDMI-A-1": [4, 5, 6] + } + }, + + "hyprland/window": { + "format": "󱂬 {title}", + "rewrite": { + "(.*) — Mozilla Firefox": "󰈹 Firefox", + "(.*) - Visual Studio Code": "󰨞 VS Code", + "(.*)vlc": "󰕼 VLC", + "lucas@dell16-lucas:(.*)": " Terminal" + }, + "separate-outputs": true + }, + + "pulseaudio": { + "format": "{icon} {volume}%", + "format-muted": "󰝟 {volume}%", + "format-icons": { + "default": [ + "", + "", + "" + ] + }, + "on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle", + "on-click-right": "pavucontrol" + }, + "pulseaudio#microphone": { + "type": "pulseaudio", + "format": "{format_source}", + "format-source": " {volume}%", + "format-source-muted": "", + "on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle", + "on-click-right": "pavucontrol" + }, + "network": { + "interval": 10, + "format-wifi": "{icon} {essid} {signalStrength}%", + "format-icons": [ + "󰤯", + "󰤟", + "󰤢", + "󰤥", + "󰤨" + ], + "format-ethernet": "󰈁 {ifname}", + "format-disconnected": "󰈂 Disconnected", + "format-alt": "{ipaddr}/{cidr}", + "on-click-right": "networkmanager_dmenu" + }, + "cpu": { + "interval": 5, + "format": " {usage}%", + "tooltip": false, + "on-click": "alacritty -e btop" + }, + "memory": { + "interval": 5, + "format": " {percentage}%", + "on-click": "alacritty -e btop" + }, + "temperature": { + "interval": 5, + "hwmon-path": "/sys/class/hwmon/hwmon7/temp1_input", + "critical-threshold": 80, + "format-critical": "{icon} {temperatureC}°C", + "format": "{icon} {temperatureC}°C", + "format-icons": [ + "", + "", + "", + "", + "" + ], + "tooltip": false, + "on-click": "alacritty -e btop" + }, + "backlight": { + "format": "{icon} {percent}%", + "format-icons": [ + "", + "" + ] + }, + "custom/battery": { + "exec": "~/scripts/batt-info", + "interval": 2, + "on-click": "~/scripts/batt-toggle", + "on-click-right": "", + "tooltip-format": "Clic: basculer limite charge" + }, + "clock": { + "format": " {:%H:%M}", + "format-alt": " {:%d/%m/%Y}", + "smooth-scrolling-threshold": 1, + "actions": { + "on-scroll-up": "shift_up", + "on-scroll-down": "shift_down" + }, + "tooltip-format": "{calendar}", + "calendar": { + "mode": "month", + "mode-mon-col": 1, + "format": { + "months": "{}", + "days": "{}", + "weekdays": "{}", + "today": "{}" + } + } + }, + "custom/power": { + "format": "⏻", + "on-click": "wlogout" + } +} diff --git a/.config/waybar/config.jsonc.bak b/.config/waybar/config.jsonc.bak new file mode 100644 index 0000000..c21cd03 --- /dev/null +++ b/.config/waybar/config.jsonc.bak @@ -0,0 +1,110 @@ +{ + "position": "bottom", + "layer": "top", + "height": 34, + "spacing": 3, + + "modules-left": ["hyprland/workspaces", "hyprland/submap"], + "modules-center": ["hyprland/window"], + "modules-right": [ + "pulseaudio", + "pulseaudio#microphone", + "network", + "cpu", + "memory", + "temperature", + "backlight", + "battery", + "clock", + "tray", + "custom/power" + ], + + "pulseaudio": { + "format": "{icon} {volume}%", + "format-muted": "", + "format-icons": { + "default": ["", "", ""] + }, + "on-click": "pavucontrol" + }, + + "pulseaudio#microphone": { + "format": "{format_source}", + "format-source": " {volume}%", + "format-source-muted": "", + "on-click": "pamixer --default-source -t" + }, + + "network": { + "interval": 10, + "format-wifi": "{icon} {essid} {signalStrength}%", + "format-icons": ["󰤯", "󰤟", "󰤢", "󰤥", "󰤨"], + "format-ethernet": "󰈁 {ifname}", + "format-disconnected": "󰈂 Disconnected", + // Clic gauche : Bascule l'affichage vers l'IP (format-alt) + // Pas de commande nécessaire, c'est le comportement natif de Waybar au clic + "format-alt": "{ipaddr}/{cidr}", + // Clic droit : Ouvre le menu de NetworkManager + "on-click-right": "networkmanager_dmenu" + }, + + "cpu": { + "interval": 5, + "format": " {usage}%", + "tooltip": false + }, + + "memory": { + "interval": 5, + "format": " {percentage}%", // Vérifiez bien l'espace entre l'icône et le texte + }, + + "temperature": { + "interval": 5, + "hwmon-path": "/sys/class/hwmon/hwmon7/temp1_input", + "critical-threshold": 80, + "format-critical": "{icon} {temperatureC}°C", + "format": "{icon} {temperatureC}°C", + "format-icons": ["", "", "", "", ""], + "tooltip": true + }, + + "backlight": { + "format": "{icon} {percent}%", + "format-icons": ["", ""] + }, + + "battery": { + "states": { + "warning": 30, + "critical": 15 + }, + "format": "{icon} {capacity}%", + "format-charging": " {capacity}%", + "format-plugged": " {capacity}%", + "format-icons": ["", "", "", "", ""] + }, + + "clock": { + "format": " {:%H:%M}", + "format-alt": " {:%d/%m/%Y}", + "tooltip-format": "{:%Y %B}\n{calendar}", + "calendar": { + "mode" : "month", + "mode-mon-col" : 3, + "on-scroll" : 1, + "format": { + "months": "{}", + "days": "{}", + "weekdays": "{}", + "today": "{}" + } + } + }, + + "custom/power": { + "format": "⏻", + "on-click": "wlogout" + } +} diff --git a/.config/waybar/style.css b/.config/waybar/style.css new file mode 100644 index 0000000..333182f --- /dev/null +++ b/.config/waybar/style.css @@ -0,0 +1,76 @@ +@define-color base #1e1e2e; +@define-color mantle #181825; +@define-color mauve #cba6f7; +@define-color blue #89b4fa; +@define-color text #cdd6f4; + +window#waybar { + background: rgba(30, 30, 46, 0.85); + border-top: 2px solid @mauve; + color: @text; + margin: 0; /* On colle la barre aux bords ou on réduit fortement */ +} + +/* On réduit drastiquement les marges ici */ +#workspaces, +#window, +#network, +#cpu, +#memory, +#temperature, +#backlight, +#battery, +#clock, +#tray, +#custom-power { + padding: 0 6px; /* Réduit de 10 à 6 */ + margin: 0 2px; /* Réduit de 4 à 2 */ + background-color: transparent; +} + +#pulseaudio, +#pulseaudio.microphone { + padding: 0 6px; + margin: 0 2px; +} + +#network { + color: @blue; +} + +#network.disconnected { + color: #f38ba8; /* Red pour l'alerte */ +} + +/* On force la taille de la police pour gagner en place si besoin */ +label { + font-family: "JetBrainsMono Nerd Font"; + font-size: 13px; +} + +tooltip { + background: rgba(30, 30, 46, 0.95); + border: 1px solid @mauve; + border-radius: 8px; +} + +tooltip label { + font-family: "JetBrainsMono Nerd Font"; + font-size: 14px; + color: @text; +} + +#tray { + padding: 0; + margin: 0 4px; +} + +#tray > widget > image { + padding: 0 6px; /* C'est ici que l'espacement se crée réellement */ +} + +#tray > .passive, +#tray > .active, +#tray > .needs-attention { + padding: 0 3px; +} \ No newline at end of file diff --git a/.config/wlogout/layout b/.config/wlogout/layout new file mode 100644 index 0000000..3fe0241 --- /dev/null +++ b/.config/wlogout/layout @@ -0,0 +1,30 @@ +{ + "label" : "lock", + "action" : "hyprlock", + "text" : "Verrouiller", + "keybind" : "l" +} +{ + "label" : "logout", + "action" : "hyprctl dispatch exit" + "text" : "Déconnecter", + "keybind" : "e" +} +{ + "label" : "shutdown", + "action" : "systemctl poweroff", + "text" : "Éteindre", + "keybind" : "s" +} +{ + "label" : "suspend", + "action" : "~/.config/hypr/scripts/suspend.sh", + "text" : "Veille", + "keybind" : "u" +} +{ + "label" : "reboot", + "action" : "systemctl reboot", + "text" : "Redémarrer", + "keybind" : "r" +} diff --git a/.config/wlogout/layout.save b/.config/wlogout/layout.save new file mode 100644 index 0000000..86b2469 --- /dev/null +++ b/.config/wlogout/layout.save @@ -0,0 +1,36 @@ +{ + "label" : "lock", + "action" : "loginctl lock-session", + "text" : "Verrouiller", + "keybind" : "l" +} +{ + "label" : "hibernate", + "action" : "systemctl hibernate", + "text" : "Hibernate", + "keybind" : "h" +} +{ + "label" : "logout", + "action" : "loginctl terminate-user $USER", + "text" : "Logout", + "keybind" : "e" +} +{ + "label" : "shutdown", + "action" : "systemctl poweroff", + "text" : "Shutdown", + "keybind" : "s" +} +{ + "label" : "suspend", + "action" : "systemctl suspend", + "text" : "Suspend", + "keybind" : "u" +} +{ + "label" : "reboot", + "action" : "systemctl reboot", + "text" : "Reboot", + "keybind" : "r" +} diff --git a/.config/wlogout/style.css b/.config/wlogout/style.css new file mode 100644 index 0000000..d200279 --- /dev/null +++ b/.config/wlogout/style.css @@ -0,0 +1,51 @@ +* { + background-image: none; + box-shadow: none; +} + +window { + background-color: rgba(30, 30, 46, 0.90); +} + +button { + border-radius: 0; + border-color: #b4befe; + text-decoration-color: #cdd6f4; + color: #cdd6f4; + background-color: #181825; + border-style: solid; + border-width: 1px; + background-repeat: no-repeat; + background-position: center; + background-size: 25%; +} + +button:focus, button:active, button:hover { + /* 20% Overlay 2, 80% mantle */ + background-color: rgb(48, 50, 66); + outline-style: none; +} + +#lock { + background-image: image(url("/usr/share/wlogout/icons/lock.png"), url("/usr/local/share/wlogout/icons/lock.png")); +} + +#logout { + background-image: image(url("/usr/share/wlogout/icons/logout.png"), url("/usr/local/share/wlogout/icons/logout.png")); +} + +#suspend { + background-image: image(url("/usr/share/wlogout/icons/suspend.png"), url("/usr/local/share/wlogout/icons/suspend.png")); +} + +#hibernate { + background-image: image(url("/usr/share/wlogout/icons/hibernate.png"), url("/usr/local/share/wlogout/icons/hibernate.png")); +} + +#shutdown { + background-image: image(url("/usr/share/wlogout/icons/shutdown.png"), url("/usr/local/share/wlogout/icons/shutdown.png")); +} + +#reboot { + background-image: image(url("/usr/share/wlogout/icons/reboot.png"), url("/usr/local/share/wlogout/icons/reboot.png")); +} diff --git a/.config/xsettingsd/xsettingsd.conf b/.config/xsettingsd/xsettingsd.conf new file mode 100644 index 0000000..2cf8d61 --- /dev/null +++ b/.config/xsettingsd/xsettingsd.conf @@ -0,0 +1,9 @@ +Net/ThemeName "catppuccin-mocha-mauve-standard+default" +Net/IconThemeName "Papirus-Dark" +Gtk/CursorThemeName "Bibata-Modern-Classic" +Net/EnableEventSounds 1 +EnableInputFeedbackSounds 0 +Xft/Antialias 1 +Xft/Hinting 1 +Xft/HintStyle "hintslight" +Xft/RGBA "rgb" diff --git a/.gitconfig b/.gitconfig new file mode 100644 index 0000000..e7fee8a --- /dev/null +++ b/.gitconfig @@ -0,0 +1,3 @@ +[user] + email = lucasroyer.dev@gmail.com + name = Lucas diff --git a/.gtkrc-2.0 b/.gtkrc-2.0 new file mode 100644 index 0000000..664dca4 --- /dev/null +++ b/.gtkrc-2.0 @@ -0,0 +1,19 @@ +# DO NOT EDIT! This file will be overwritten by nwg-look. +# Any customization should be done in ~/.gtkrc-2.0.mine instead. + +include "/home/lucas/.gtkrc-2.0.mine" +gtk-theme-name="catppuccin-mocha-mauve-standard+default" +gtk-icon-theme-name="Papirus-Dark" +gtk-font-name="Adwaita Sans 11" +gtk-cursor-theme-name="Bibata-Modern-Classic" +gtk-cursor-theme-size=24 +gtk-toolbar-style=GTK_TOOLBAR_ICONS +gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR +gtk-button-images=0 +gtk-menu-images=0 +gtk-enable-event-sounds=1 +gtk-enable-input-feedback-sounds=0 +gtk-xft-antialias=1 +gtk-xft-hinting=1 +gtk-xft-hintstyle="hintslight" +gtk-xft-rgba="rgb" diff --git a/.p10k.zsh b/.p10k.zsh new file mode 100644 index 0000000..539fbea --- /dev/null +++ b/.p10k.zsh @@ -0,0 +1,1840 @@ +# Generated by Powerlevel10k configuration wizard on 2026-03-24 at 13:30 CET. +# Based on romkatv/powerlevel10k/config/p10k-rainbow.zsh, checksum 57633. +# Wizard options: nerdfont-v3 + powerline, large icons, rainbow, unicode, 24h time, +# angled separators, sharp heads, flat tails, 2 lines, disconnected, no frame, sparse, +# many icons, concise, 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=moderate + + # 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=true + + # 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= + typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX= + typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX= + # Connect right prompt lines with these symbols. + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX= + typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX= + typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX= + + # 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=242 + # 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='\uE0B0' + # The left end of right prompt. + typeset -g POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='\uE0B2' + # 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="#89b4fa" + # Default current directory foreground color. + typeset -g POWERLEVEL9K_DIR_FOREGROUND="#1e1e2e" + # 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="#1e1e2e" + # Color of the anchor directory segments. Anchor segments are never shortened. The first + # segment is always an anchor. + typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND="#1e1e2e" + # 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=false + 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=false + 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/.zprofile b/.zprofile new file mode 100644 index 0000000..457f71b --- /dev/null +++ b/.zprofile @@ -0,0 +1,3 @@ + +# Created by `pipx` on 2026-06-16 16:04:30 +export PATH="$PATH:/home/lucas/.local/bin" diff --git a/.zshrc b/.zshrc new file mode 100644 index 0000000..4ef67b4 --- /dev/null +++ b/.zshrc @@ -0,0 +1,62 @@ +[[ -f ~/.cache/updates-count ]] && \ + count=$(wc -l < ~/.cache/updates-count) && \ + (( count > 0 )) && echo "⚠ $count paquets en attente" + +# 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 + +# ~/.zshrc + +# Si le shell n'est pas interactif, ne rien faire +[[ $- != *i* ]] && return + +# History +HISTFILE=~/.zsh_history +HISTSIZE=10000 +SAVEHIST=10000 +setopt inc_append_history # Sauvegarde immédiate +setopt hist_ignore_all_dups # Ignorer les doublons + +# Alias (identiques à ceux du bashrc) +alias ls='eza --icons --group-directories-first' +alias ll='eza -lh --icons --grid --group-directories-first' + +# Variables d’environnement +export EDITOR=nano +export VISUAL=nano + +# Shortcuts +bindkey "^[[H" beginning-of-line # Begin +bindkey "^[[F" end-of-line # End +bindkey "^[[5~" history-beginning-search-backward # PageUp +bindkey "^[[6~" history-beginning-search-forward # PageDown +bindkey "^[[Z" reverse-menu-complete # Reverse completion +bindkey "^[[1;5D" backward-word # Previous word +bindkey "^[[1;5C" forward-word # Next word +bindkey "^[[3;5~" delete-word # Ctrl+Suppr +bindkey "^H" backward-delete-word # Ctrl+Backspace (parfois ^?) + +# powerlevel10k +source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme + +# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh. +[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh +export TERMINAL=alacritty + +# Bind SUPPR +bindkey '^[[3~' delete-char + +# Update and clean +alias update='yay -Syu --noconfirm && yay -Yc --noconfirm && sudo mkinitcpio -P && sudo /home/lucas/scripts/mkinitcpio-eco && clean' +alias clean='sudo rm -f /var/cache/pacman/pkg/download-* 2>/dev/null; yay -Sc --noconfirm 2>/dev/null; sudo journalctl --vacuum-time=2weeks; sudo pacman -Rns $(pacman -Qdtq) 2>/dev/null' +alias clr='clear' +alias rembg='~/.venv/rembg/bin/rembg' +alias pio="$HOME/.platformio/penv/bin/pio" + +# Created by `pipx` on 2026-06-16 16:04:30 +export PATH="$PATH:/home/lucas/.local/bin" +alias config='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME' diff --git a/pkglist_aur.txt b/pkglist_aur.txt new file mode 100644 index 0000000..601a051 --- /dev/null +++ b/pkglist_aur.txt @@ -0,0 +1,41 @@ +adwaita-qt5-git +adwaita-qt6-git +android-studio +appimagelauncher +balena-etcher +beeper-v4-bin +bibata-cursor-theme-bin +catppuccin-gtk-theme-mocha +chirp-next +chromium-widevine +cnrdrvcups-lb-bin +collabora-office +dell-command-configure +dupeguru +electron40-bin +gimp-plugin-resynthesizer +google-chrome +hyprdynamicmonitors-bin +hyprgraphics-git +hyprlang-git +hyprutils-git +hyprwayland-scanner-git +kdeconnect-git +libjpeg6-turbo +log2ram +networkmanager-dmenu-git +onlyoffice-bin +openssl-1.1 +orca-slicer-bin +pinta +python-yattag +refind-theme-catppuccin-git +rustdesk-bin +sddm-theme-catppuccin-git +ungoogled-chromium-bin +ventoy-bin +vesktop-bin +vscodium-bin +wlogout +yay +zsh-theme-powerlevel10k-git diff --git a/pkglist_officiel.txt b/pkglist_officiel.txt new file mode 100644 index 0000000..5a9e566 --- /dev/null +++ b/pkglist_officiel.txt @@ -0,0 +1,180 @@ +adwaita-qt5-git +adwaita-qt6-git +alacritty +android-studio +appimagelauncher +audacity +balena-etcher +base +base-devel +bc +beeper-v4-bin +bibata-cursor-theme-bin +blender +blueman +bluez +bluez-utils +bolt +brightnessctl +btop +catppuccin-gtk-theme-mocha +chirp-next +chromium-widevine +cliphist +cnrdrvcups-lb-bin +collabora-office +converseen +cups +dell-command-configure +dex +dnsmasq +drawio-desktop +dupeguru +exfat-utils +eza +f3d +file-roller +firefox +flatpak +fwupd +gamemode +ghostscript +gimp +gimp-plugin-gmic +gimp-plugin-resynthesizer +git +github-cli +gnome-calculator +gnome-characters +gnome-keyring +godot +google-chrome +gptfdisk +grim +gst-plugin-pipewire +gvfs +gvfs-afc +gvfs-mtp +gvfs-smb +handbrake +hyprdynamicmonitors-bin +hypridle +hyprland +hyprlock +inkscape +intel-gpu-tools +intel-media-driver +intel-ucode +iwd +jq +kasts +kdeconnect-git +kdenlive +kid3-qt +lib32-gamemode +lib32-nvidia-utils +libva-utils +libvirt +linux +linux-firmware +linux-headers +log2ram +mako +man-db +man-pages +mesa-utils +mixxx +mpv +mtools +mumble +nano +ncdu +ncspot +network-manager-applet +networkmanager +networkmanager-dmenu-git +nextcloud-client +nm-connection-editor +nmap +noto-fonts-cjk +nvidia-open-dkms +nvidia-settings +nvidia-utils +nvtop +nwg-look +obs-studio +obsidian +onlyoffice-bin +orca-slicer-bin +pacman-contrib +pamixer +papirus-icon-theme +pavucontrol +pinta +pipewire-alsa +pipewire-pulse +plymouth +polkit-kde-agent +power-profiles-daemon +powertop +python-build +python-installer +python-pipx +qemu-full +qt5-graphicaleffects +qt5-quickcontrols2 +qt5-svg +qt5-wayland +qt6-5compat +qt6-wayland +refind +refind-theme-catppuccin-git +rofi +rustdesk-bin +sane-airscan +sddm +sddm-theme-catppuccin-git +seahorse +signal-desktop +slurp +sof-firmware +steam +swaybg +syncthing +system-config-printer +texinfo +thermald +throttled +thunar +thunar-archive-plugin +thunderbird +timeshift +tree +ttf-jetbrains-mono-nerd +tumbler +ungoogled-chromium-bin +unzip +ventoy-bin +vesktop-bin +viewnior +virt-manager +vscodium-bin +vulkan-intel +waybar +websocat +wget +wine +wine-gecko +wine-mono +wireguard-tools +wl-clipboard +wlogout +woff2-font-awesome +wol +xdg-desktop-portal-hyprland +yay +ydotool +yt-dlp +zram-generator +zsh +zsh-theme-powerlevel10k-git