aboutsummaryrefslogtreecommitdiff
path: root/home/profiles
diff options
context:
space:
mode:
Diffstat (limited to 'home/profiles')
-rw-r--r--home/profiles/base/config/dunst.nix47
-rw-r--r--home/profiles/base/config/foot.nix37
-rw-r--r--home/profiles/base/config/sway.nix204
-rw-r--r--home/profiles/base/config/waybar-settings.nix54
-rw-r--r--home/profiles/base/config/waybar-style.nix77
-rw-r--r--home/profiles/base/default.nix184
-rw-r--r--home/profiles/base/p10k-config/p10k.zsh1604
-rw-r--r--home/profiles/browsing/default.nix30
-rw-r--r--home/profiles/browsing/qutebrowser-settings.nix306
-rw-r--r--home/profiles/default.nix13
-rw-r--r--home/profiles/development/default.nix87
-rw-r--r--home/profiles/messaging/default.nix17
-rw-r--r--home/profiles/multimedia/default.nix49
-rw-r--r--home/profiles/research/default.nix16
14 files changed, 2725 insertions, 0 deletions
diff --git a/home/profiles/base/config/dunst.nix b/home/profiles/base/config/dunst.nix
new file mode 100644
index 0000000..60ed15f
--- /dev/null
+++ b/home/profiles/base/config/dunst.nix
@@ -0,0 +1,47 @@
+{ neotheme }:
+
+with neotheme.colors;
+{
+ global = {
+ padding = 8;
+ width = "330";
+ height = "500";
+ origin = "top-right";
+ offset = "8x25";
+ notification_limit = 5;
+ frame_width = 2;
+ vertical_alignment = "center";
+ horizontal_padding = 8;
+ icon_position = "left";
+ corner_radius = 10;
+
+ markup = "full";
+ word_wrap = true;
+ show_indicators = false;
+ format = "<b>%s</b>\\n\\n%b";
+ font = "Dina 10";
+ frame_color = "#${color3}";
+ separator_color = "auto";
+ max_icon_size = 80;
+ };
+
+ urgency_low = {
+ foreground = "#${foreground}";
+ background = "#${background}";
+ frame_color = "#${color4}";
+ timeout = 4;
+ };
+
+ urgency_normal = {
+ foreground = "#${foreground}";
+ background = "#${background}";
+ frame_color = "#${color3}";
+ timeout = 8;
+ };
+
+ urgency_critical = {
+ foreground = "#${foreground}";
+ background = "#${background}";
+ frame_color = "#${color1}";
+ };
+}
diff --git a/home/profiles/base/config/foot.nix b/home/profiles/base/config/foot.nix
new file mode 100644
index 0000000..08a38e7
--- /dev/null
+++ b/home/profiles/base/config/foot.nix
@@ -0,0 +1,37 @@
+{ neotheme }:
+
+with neotheme.colors;
+
+{
+ main = {
+ term = "foot";
+ font = "dina:size=10,JetBrainsMono Nerd Font:size=11";
+ letter-spacing = 0;
+ line-height = 13;
+ dpi-aware = "yes";
+ pad = "16x16 center";
+ };
+
+ cursor.style = "beam";
+
+ colors = {
+ background = background;
+ foreground = foreground;
+ regular0 = color0;
+ regular1 = color1;
+ regular2 = color2;
+ regular3 = color3;
+ regular4 = color4;
+ regular5 = color5;
+ regular6 = color6;
+ regular7 = color7;
+ bright0 = bright0;
+ bright1 = bright1;
+ bright2 = bright2;
+ bright3 = bright3;
+ bright4 = bright4;
+ bright5 = bright5;
+ bright6 = bright6;
+ bright7 = bright7;
+ };
+}
diff --git a/home/profiles/base/config/sway.nix b/home/profiles/base/config/sway.nix
new file mode 100644
index 0000000..00dae28
--- /dev/null
+++ b/home/profiles/base/config/sway.nix
@@ -0,0 +1,204 @@
+{ pkgs, neotheme }:
+
+with neotheme.colors;
+
+''
+ exec autotiling
+
+ # set modifiers
+ set $mod Mod4
+ set $alt Mod1
+ set $floating_modifier $mod
+ set $left h
+ set $down j
+ set $up k
+ set $right l
+
+ # set terminal
+
+ set $term foot
+ bindsym $mod+Return exec $term
+
+ # set menu
+ set $menu "${pkgs.bemenu}/bin/bemenu-run -H 18 -l 5 --fn 'Iosevka Pure 10.5' -p 'run::' --tb '$primary' --tf '$color0' --hb '$primary' --hf '$color0'"
+ bindsym $mod+d exec $menu
+
+ # change focus
+ # vim-style
+ bindsym $mod+$left focus left
+ bindsym $mod+$down focus down
+ bindsym $mod+$up focus up
+ bindsym $mod+$right focus right
+ # arrows
+ bindsym $mod+Left focus left
+ bindsym $mod+Down focus down
+ bindsym $mod+Up focus up
+ bindsym $mod+Right focus right
+
+ # move focused window
+ # vim-style
+ bindsym $mod+Shift+$left move left
+ bindsym $mod+Shift+$down move down
+ bindsym $mod+Shift+$up move up
+ bindsym $mod+Shift+$right move right
+ # arrows
+ bindsym $mod+Shift+Left move left
+ bindsym $mod+Shift+Down move down
+ bindsym $mod+Shift+Up move up
+ bindsym $mod+Shift+Right move right
+
+ # split
+ bindsym $mod+c split h # horizontal
+ bindsym $mod+v split v # vertical
+
+ # fullscreen
+ bindsym $mod+e fullscreen toggle
+
+ # floating
+ bindsym $mod+f floating toggle
+
+ # kill focused
+ bindsym $mod+w kill
+
+ font "pango:Iosevka Pure 5"
+
+ # window rules
+ for_window [window_role="pop-up"] floating enable
+ for_window [window_role="bubble"] floating enable
+ for_window [window_role="task_dialog"] floating enable
+ for_window [window_role="Preferences"] floating enable
+ for_window [window_type="dialog"] floating enable
+ for_window [window_type="menu"] floating enable
+ for_window [class="mpv"] floating enable
+ for_window [class=".*"] inhibit_idle fullscreen
+ for_window [app_id=".*"] title_format ""
+ for_window [class=".*"] title_format ""
+
+ titlebar_border_thickness 0
+ titlebar_padding 0 0
+
+ # workspace names
+ set $ws1 "α"
+ set $ws2 "β"
+ set $ws3 "γ"
+ set $ws4 "δ"
+ set $ws5 "ε"
+ set $ws6 "ζ"
+ set $ws7 "η"
+ set $ws8 "θ"
+ set $ws9 "ι"
+ set $ws10 "κ"
+
+ # switch to named ws
+ bindsym $mod+1 workspace $ws1
+ bindsym $mod+2 workspace $ws2
+ bindsym $mod+3 workspace $ws3
+ bindsym $mod+4 workspace $ws4
+ bindsym $mod+5 workspace $ws5
+ bindsym $mod+6 workspace $ws6
+ bindsym $mod+7 workspace $ws7
+ bindsym $mod+8 workspace $ws8
+ bindsym $mod+9 workspace $ws9
+ bindsym $mod+0 workspace $ws10
+
+ # switch to prev/next ws
+ bindsym $mod+z workspace prev
+ bindsym $mod+x workspace next
+
+ # move focused container to ws
+ bindsym $mod+Shift+1 move container to workspace $ws1
+ bindsym $mod+Shift+2 move container to workspace $ws2
+ bindsym $mod+Shift+3 move container to workspace $ws3
+ bindsym $mod+Shift+4 move container to workspace $ws4
+ bindsym $mod+Shift+5 move container to workspace $ws5
+ bindsym $mod+Shift+6 move container to workspace $ws6
+ bindsym $mod+Shift+7 move container to workspace $ws7
+ bindsym $mod+Shift+8 move container to workspace $ws8
+ bindsym $mod+Shift+9 move container to workspace $ws9
+ bindsym $mod+Shift+0 move container to workspace $ws10
+ bindsym $mod+Shift+z move container to workspace prev
+ bindsym $mod+Shift+x move container to workspace next
+
+ # ws back-and-forth
+ workspace_auto_back_and_forth no
+
+ # reload
+ bindsym $mod+q reload
+
+ # application shortcuts
+ bindsym $mod+a exec qutebrowser
+ # bindsym $mod+Shift+a
+
+ # Volume control
+ bindsym XF86AudioRaiseVolume exec ~/.local/bin/volume up
+ bindsym XF86AudioLowerVolume exec ~/.local/bin/volume down
+ bindsym XF86AudioMute exec ~/.local/bin/volume toggle
+ #HHKB
+ bindsym $mod+equal exec ~/.local/bin/volume up
+ bindsym $mod+minus exec ~/.local/bin/volume down
+ bindsym $mod+backslash exec ~/.local/bin/volume toggle
+
+ # Brightness
+ bindsym XF86MonBrightnessDown exec brightnessctl -q set 10%-
+ bindsym XF86MonBrightnessUp exec brightnessctl -q set 10%+
+
+ # Screenshot
+ bindsym $mod+Print exec grimshot copy area
+ bindsym Print exec grimshot copy active
+ bindsym $alt+Print exec grimshot save screen
+
+ # Toggle waybar
+ bindsym $mod+b exec pkill -USR1 waybar
+
+ # Exit
+ bindsym $mod+Shift+q exec swaynag -t warning -m 'Do you really want to exit sway?' -b 'Yes, exit sway' 'swaymsg exit'
+
+ # Aesthetics
+ default_border pixel 3
+ hide_edge_borders --i3 smart
+ gaps inner 8
+ smart_borders on
+
+ set $color0 #${color0}
+ set $color1 #${color1}
+ set $color2 #${color2}
+ set $color3 #${color3}
+ set $color4 #${color4}
+ set $color5 #${color5}
+ set $color6 #${color6}
+ set $color7 #${color7}
+ set $color8 #${bright0}
+ set $color9 #${bright1}
+ set $color10 #${bright2}
+ set $color11 #${bright3}
+ set $color12 #${bright4}
+ set $color13 #${bright5}
+ set $color14 #${bright6}
+ set $color15 #${bright7}
+
+ set $primary $color4
+ set $muted #4d698f
+
+ # class border backgr text indicator
+ client.focused $primary $primary $color0 $color5
+ client.focused_inactive $muted $muted $color0 $color5
+ client.unfocused $muted $muted $color7 $color5
+ client.urgent $color10 $color10 $color0 $color5
+ output "*" bg ${neotheme.wallpaper} fill
+ output "*" scale 1
+ output "*" scale_filter nearest
+
+ input type:touchpad {
+ tap enabled
+ natural_scroll enabled
+ }
+
+ input type:keyboard {
+ repeat_rate 40
+ repeat_delay 350
+ xkb_layout us,se
+ # xkb_variant ,dvorak
+ xkb_options 'grp:alt_shift_toggle,caps:escape'
+ # xkb_options ctrl:swapcaps
+ }
+''
diff --git a/home/profiles/base/config/waybar-settings.nix b/home/profiles/base/config/waybar-settings.nix
new file mode 100644
index 0000000..089fefb
--- /dev/null
+++ b/home/profiles/base/config/waybar-settings.nix
@@ -0,0 +1,54 @@
+{ neotheme }:
+
+with neotheme.colors;
+{
+ layer = "bottom";
+ position = "top";
+ height = 21;
+ modules-left = [ "pulseaudio" "custom/seperator" "cpu" "custom/seperator" "memory" ];
+ modules-center = [ "sway/workspaces" ];
+ modules-right = [ "clock" ];
+
+ "sway/workspaces" = {
+ all-outputs = true;
+ persistent_workspaces = {
+ "α" = [ ];
+ "β" = [ ];
+ "γ" = [ ];
+ "δ" = [ ];
+ "ε" = [ ];
+ "ζ" = [ ];
+ "η" = [ ];
+ "θ" = [ ];
+ "ι" = [ ];
+ "κ" = [ ];
+ };
+ };
+
+ "clock" = {
+ interval = 10;
+ format = "<span foreground='#${color5}'></span> {:%A, %b %d %H:%M}";
+ };
+
+ "cpu" = {
+ interval = 5;
+ format = "<span foreground='#${color2}'></span> {usage:3}%";
+ };
+
+ "pulseaudio" = {
+ format = "<span foreground='#${color4}'>{icon}</span> {volume}%";
+ format-muted = "ﱝ Muted";
+ format-icons.default = [ " " " " " " ];
+ };
+
+ "memory" = {
+ interval = 5;
+ format = "<span foreground='#${color3}'>﬙</span> {used:0.2f}GiB";
+ };
+
+ "custom/seperator" = {
+ format = "|";
+ interval = "once";
+ tooltip = false;
+ };
+}
diff --git a/home/profiles/base/config/waybar-style.nix b/home/profiles/base/config/waybar-style.nix
new file mode 100644
index 0000000..0901a6a
--- /dev/null
+++ b/home/profiles/base/config/waybar-style.nix
@@ -0,0 +1,77 @@
+{ neotheme }:
+
+with neotheme.colors;
+
+''
+ * {
+ border: none;
+ border-radius: 0;
+ font-family: "JetBrainsMono Nerd Font";
+ font-size: 14px;
+ min-height: 0;
+ }
+
+ window#waybar {
+ background: #${background};
+ color: #${foreground};
+ border-bottom: 1px solid #${bright0};
+ }
+
+ #workspaces button {
+ padding: 0 8px;
+ background: #${background};
+ color: #${foreground};
+ border-bottom: 1px solid #${bright0};
+ }
+
+ #workspaces button.focused {
+ color: #${foreground};
+ background-color: #${bright0};
+ }
+
+ #workspaces button.urgent {
+ color: #${color1};
+ }
+
+ #workspaces button.persistent {
+ color: #${alt1};
+ }
+
+ #workspaces button:hover {
+ color: #${foreground};
+ background: #${alt1};
+ box-shadow: inherit;
+ text-shadow: inherit;
+ }
+
+ #clock,
+ #cpu,
+ #temperature,
+ #backlight,
+ #network,
+ #memory,
+ #language,
+ #pulseaudio,
+ #tray,
+ #mode,
+ #mpd {
+ padding: 0.2rem 0.6rem;
+ margin: 0 2px;
+ color: #${foreground};
+ background-color: #${background};
+ border-bottom: 1px solid #${bright0};
+ }
+
+ @keyframes blink {
+ to {
+ background-color: #${color4};
+ color: #${background};
+ }
+ }
+
+ #custom-seperator {
+ color: #${alt1};
+ background-color: #${background};
+ border-bottom: 1px solid #${bright0};
+ }
+''
diff --git a/home/profiles/base/default.nix b/home/profiles/base/default.nix
new file mode 100644
index 0000000..7b62442
--- /dev/null
+++ b/home/profiles/base/default.nix
@@ -0,0 +1,184 @@
+{ config, lib, pkgs, self, ... }:
+let
+ cfg = config.profiles.base;
+
+ neotheme = config.neotheme;
+
+ inherit (self.packages.x86_64-linux) neovim iosevka-pure-bin phocus;
+in
+{
+ imports = [
+ ../../modules/programs/nixpkgs
+ ../../modules/programs/zshell
+ ../../modules/misc/neotheme
+ ];
+
+ options.profiles.base.enable = lib.mkEnableOption
+ "The base profile, should be always enabled";
+
+ config = lib.mkIf cfg.enable {
+
+ home.sessionVariables = rec {
+ EDITOR = "nvim";
+ VISUAL = "nvim";
+ GIT_EDITOR = EDITOR;
+ };
+
+ gtk.enable = true;
+ gtk.iconTheme.package = pkgs.papirus-icon-theme;
+ gtk.iconTheme.name = "Papirus-Dark";
+ gtk.theme.package = phocus;
+ gtk.theme.name = "phocus";
+
+ home.file.".icons/default".source = "${pkgs.vanilla-dmz}/share/icons/Vanilla-DMZ-AA";
+
+ neotheme = {
+ name = "Nightlamp Theme - Iceberg Variant";
+ identifier = "nightlamp-iceberg";
+
+ colors = {
+ background = "18191f";
+ foreground = "cbc0ab";
+ alt0 = "404147";
+ alt1 = "54555b";
+ color0 = "222329";
+ color1 = "b17f81";
+ color2 = "8aa387";
+ color3 = "d4ae80";
+ color4 = "84a0c6";
+ color5 = "a093c7";
+ color6 = "7aacaa";
+ color7 = "d0d0c7";
+ bright0 = "36373d";
+ bright1 = "c59395";
+ bright2 = "9eb79b";
+ bright3 = "e8c294";
+ bright4 = "a2bee4";
+ bright5 = "beb1e5";
+ bright6 = "8ec0be";
+ bright7 = "e4e4db";
+ };
+
+ wallpaper = "${self.inputs.wallpapers}/nixos/nix-glow-fg-d4ae80.png";
+ };
+
+ home.keyboard.layout = "us";
+ home.packages = [
+ pkgs.hydra-check
+ pkgs.sops
+ neovim
+
+ # Fonts
+ iosevka-pure-bin
+ pkgs.dina-font
+ pkgs.sarasa-gothic
+ pkgs.scientifica
+ pkgs.jetbrains-mono
+ pkgs.twemoji-color-font
+ pkgs.symbola
+ pkgs.emacs-all-the-icons-fonts
+ (pkgs.nerdfonts.override { fonts = [ "Iosevka" "JetBrainsMono" ]; })
+ ];
+
+ fonts.fontconfig.enable = true;
+
+
+ wayland.windowManager.sway = {
+ enable = true;
+
+ config = {
+ bars = [{ command = "${pkgs.waybar}/bin/waybar"; }];
+ keybindings = { };
+ };
+
+ extraConfig = import ./config/sway.nix { inherit pkgs neotheme; };
+ };
+
+ programs = {
+ bat.enable = true;
+ direnv.enable = true;
+ direnv.nix-direnv.enable = true;
+ exa.enable = true;
+ exa.enableAliases = true;
+ home-manager.enable = true;
+ htop.enable = true;
+
+ foot = {
+ enable = true;
+
+ settings = import ./config/foot.nix { inherit neotheme; };
+ };
+
+ password-store.enable = true;
+
+ waybar = {
+ enable = config.wayland.windowManager.sway.enable;
+
+ settings = [ (import ./config/waybar-settings.nix { inherit neotheme; }) ];
+
+ style = import ./config/waybar-style.nix { inherit neotheme; };
+ };
+
+ zsh = {
+ enable = true;
+
+ enableCompletion = true;
+ enableAutosuggestions = true;
+
+ autocd = true;
+
+ dotDir = ".config/zsh";
+
+ plugins = [
+ {
+ name = "powerlevel10k";
+ src = pkgs.zsh-powerlevel10k;
+ file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme";
+ }
+
+ {
+ name = "powerlevel10k-config";
+ src = lib.cleanSource ./p10k-config;
+ file = "p10k.zsh";
+ }
+
+ {
+ name = "zsh-syntax-highlighting";
+ src = pkgs.fetchFromGitHub {
+ owner = "zsh-users";
+ repo = "zsh-syntax-highlighting";
+ rev = "0.7.1";
+ sha256 = "03r6hpb5fy4yaakqm3lbf4xcvd408r44jgpv4lnzl9asp4sb9qc0";
+ };
+ }
+ ];
+
+ shellAliases = config.programs.zshell.aliases;
+ };
+
+ zshell.aliases = {
+ e = "nvim";
+ };
+
+ zoxide = {
+ enable = true;
+ enableZshIntegration = true;
+ };
+ };
+
+ services = {
+ dunst = {
+ enable = true;
+ settings = import ./config/dunst.nix { inherit neotheme; };
+ };
+
+ wlsunset = {
+ enable = true;
+ latitude = "36.5";
+ longitude = "127.2";
+ };
+ };
+
+ nixpkgs.allowedUnfree = [ "symbola" ];
+ };
+}
diff --git a/home/profiles/base/p10k-config/p10k.zsh b/home/profiles/base/p10k-config/p10k.zsh
new file mode 100644
index 0000000..aa6bc2c
--- /dev/null
+++ b/home/profiles/base/p10k-config/p10k.zsh
@@ -0,0 +1,1604 @@
+# Generated by Powerlevel10k configuration wizard on 2022-01-02 at 08:00 UTC.
+# Based on romkatv/powerlevel10k/config/p10k-lean-8colors.zsh.
+# Wizard options: nerdfont-complete + powerline, large icons, unicode, lean_8colors,
+# 24h time, 2 lines, disconnected, no frame, sparse, few icons, concise,
+# transient_prompt, instant_prompt=verbose.
+# Type `p10k configure` to generate another config.
+#
+# Config for Powerlevel10k with 8-color lean prompt style. 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.
+ autoload -Uz is-at-least && is-at-least 5.1 || 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)
+ 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)
+ 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)
+ context # user@hostname
+ nordvpn # nordvpn connection status, linux only (https://nordvpn.com/)
+ ranger # ranger shell (https://github.com/ranger/ranger)
+ nnn # nnn shell (https://github.com/jarun/nnn)
+ 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)
+ # 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/)
+ time # current time
+ # =========================[ Line #2 ]=========================
+ newline # \n
+ # 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-complete
+ # 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
+
+ # Basic style options that define the overall look of your prompt. You probably don't want to
+ # change them.
+ typeset -g POWERLEVEL9K_BACKGROUND= # transparent background
+ typeset -g POWERLEVEL9K_{LEFT,RIGHT}_{LEFT,RIGHT}_WHITESPACE= # no surrounding whitespace
+ typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SUBSEGMENT_SEPARATOR=' ' # separate segments with a space
+ typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SEGMENT_SEPARATOR= # no end-of-line symbol
+
+ # 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=true
+
+ # Add an empty line before each prompt.
+ typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=true
+
+ # Connect left prompt lines with these symbols.
+ 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=
+
+ # 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=
+
+ # Ruler, a.k.a. the horizontal line before each prompt. If you set it to true, you'll
+ # probably want to set POWERLEVEL9K_PROMPT_ADD_NEWLINE=false above and
+ # POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR=' ' below.
+ typeset -g POWERLEVEL9K_SHOW_RULER=false
+ typeset -g POWERLEVEL9K_RULER_CHAR='─' # reasonable alternative: '·'
+ typeset -g POWERLEVEL9K_RULER_FOREGROUND=7
+
+ # Filler between left and right prompt on the first prompt line. You can set it to '·' or '─'
+ # to make it easier to see the alignment between left and right prompt and to separate prompt
+ # from command output. It serves the same purpose as ruler (see above) without increasing
+ # the number of prompt lines. You'll probably want to set POWERLEVEL9K_SHOW_RULER=false
+ # if using this. You might also like POWERLEVEL9K_PROMPT_ADD_NEWLINE=false for more compact
+ # prompt.
+ typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR=' '
+ if [[ $POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR != ' ' ]]; then
+ # The color of the filler.
+ typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND=7
+ # Add a space between the end of left prompt and the filler.
+ typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=' '
+ # Add a space between the filler and the start of right prompt.
+ typeset -g POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL=' '
+ # 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
+
+ #################################[ os_icon: os identifier ]##################################
+ # OS identifier color.
+ typeset -g POWERLEVEL9K_OS_ICON_FOREGROUND=
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION='⭐'
+
+ ################################[ prompt_char: prompt symbol ]################################
+ # Green prompt symbol if the last command succeeded.
+ typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=5
+ # Red prompt symbol if the last command failed.
+ typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=1
+ # 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=
+
+ ##################################[ dir: current directory ]##################################
+ # Default current directory color.
+ typeset -g POWERLEVEL9K_DIR_FOREGROUND=4
+ # 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=4
+ # Color of the anchor directory segments. Anchor segments are never shortened. The first
+ # segment is always an anchor.
+ typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND=4
+ # Set to true to display anchor directory segments in bold.
+ typeset -g POWERLEVEL9K_DIR_ANCHOR_BOLD=false
+ # 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-version
+ .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 ":<offset>" where <offset> 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 directories. See POWERLEVEL9K_LOCK_ICON and
+ # POWERLEVEL9K_DIR_CLASSES below.
+ typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=v2
+
+ # 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
+
+ #