From 7a372ed81256ce5d6aa608be9bebe173ab4e042e Mon Sep 17 00:00:00 2001 From: sefidel Date: Tue, 18 Jan 2022 17:38:31 +0900 Subject: project: rewrite --- home/alpha/boopy.nix | 9 + home/configurations/boopy@alpha.nix | 9 - home/configurations/default.nix | 5 - home/default.nix | 22 + home/modules/default.nix | 16 - home/modules/misc/home/default.nix | 31 - home/modules/profiles/base/config/dunst.nix | 47 - home/modules/profiles/base/config/foot.nix | 37 - home/modules/profiles/base/config/sway.nix | 204 --- .../profiles/base/config/waybar-settings-new.nix | 68 - .../profiles/base/config/waybar-settings.nix | 56 - home/modules/profiles/base/config/waybar-style.nix | 77 - home/modules/profiles/base/default.nix | 176 --- home/modules/profiles/base/p10k-config/p10k.zsh | 1604 -------------------- home/modules/profiles/browsing/default.nix | 30 - .../profiles/browsing/qutebrowser-settings.nix | 306 ---- home/modules/profiles/default.nix | 13 - home/modules/profiles/development/default.nix | 87 -- home/modules/profiles/messaging/default.nix | 14 - home/modules/profiles/multimedia/default.nix | 44 - home/modules/profiles/research/default.nix | 14 - home/profiles/base/config/dunst.nix | 47 + home/profiles/base/config/foot.nix | 37 + home/profiles/base/config/sway.nix | 204 +++ home/profiles/base/config/waybar-settings.nix | 54 + home/profiles/base/config/waybar-style.nix | 77 + home/profiles/base/default.nix | 184 +++ home/profiles/base/p10k-config/p10k.zsh | 1604 ++++++++++++++++++++ home/profiles/browsing/default.nix | 30 + home/profiles/browsing/qutebrowser-settings.nix | 306 ++++ home/profiles/default.nix | 13 + home/profiles/development/default.nix | 87 ++ home/profiles/messaging/default.nix | 17 + home/profiles/multimedia/default.nix | 49 + home/profiles/research/default.nix | 16 + 35 files changed, 2756 insertions(+), 2838 deletions(-) create mode 100644 home/alpha/boopy.nix delete mode 100644 home/configurations/boopy@alpha.nix delete mode 100644 home/configurations/default.nix create mode 100644 home/default.nix delete mode 100644 home/modules/default.nix delete mode 100644 home/modules/misc/home/default.nix delete mode 100644 home/modules/profiles/base/config/dunst.nix delete mode 100644 home/modules/profiles/base/config/foot.nix delete mode 100644 home/modules/profiles/base/config/sway.nix delete mode 100644 home/modules/profiles/base/config/waybar-settings-new.nix delete mode 100644 home/modules/profiles/base/config/waybar-settings.nix delete mode 100644 home/modules/profiles/base/config/waybar-style.nix delete mode 100644 home/modules/profiles/base/default.nix delete mode 100644 home/modules/profiles/base/p10k-config/p10k.zsh delete mode 100644 home/modules/profiles/browsing/default.nix delete mode 100644 home/modules/profiles/browsing/qutebrowser-settings.nix delete mode 100644 home/modules/profiles/default.nix delete mode 100644 home/modules/profiles/development/default.nix delete mode 100644 home/modules/profiles/messaging/default.nix delete mode 100644 home/modules/profiles/multimedia/default.nix delete mode 100644 home/modules/profiles/research/default.nix create mode 100644 home/profiles/base/config/dunst.nix create mode 100644 home/profiles/base/config/foot.nix create mode 100644 home/profiles/base/config/sway.nix create mode 100644 home/profiles/base/config/waybar-settings.nix create mode 100644 home/profiles/base/config/waybar-style.nix create mode 100644 home/profiles/base/default.nix create mode 100644 home/profiles/base/p10k-config/p10k.zsh create mode 100644 home/profiles/browsing/default.nix create mode 100644 home/profiles/browsing/qutebrowser-settings.nix create mode 100644 home/profiles/default.nix create mode 100644 home/profiles/development/default.nix create mode 100644 home/profiles/messaging/default.nix create mode 100644 home/profiles/multimedia/default.nix create mode 100644 home/profiles/research/default.nix (limited to 'home') diff --git a/home/alpha/boopy.nix b/home/alpha/boopy.nix new file mode 100644 index 0000000..237eb11 --- /dev/null +++ b/home/alpha/boopy.nix @@ -0,0 +1,9 @@ +{ pkgs, nixpkgs, self, ... }: + +{ + config = { + activeProfiles = [ "browsing" "development" "messaging" "multimedia" "research" ]; + + programs.htop.settings.detailed_cpu_time = true; + }; +} diff --git a/home/configurations/boopy@alpha.nix b/home/configurations/boopy@alpha.nix deleted file mode 100644 index 237eb11..0000000 --- a/home/configurations/boopy@alpha.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ pkgs, nixpkgs, self, ... }: - -{ - config = { - activeProfiles = [ "browsing" "development" "messaging" "multimedia" "research" ]; - - programs.htop.settings.detailed_cpu_time = true; - }; -} diff --git a/home/configurations/default.nix b/home/configurations/default.nix deleted file mode 100644 index ac44363..0000000 --- a/home/configurations/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ self, ... } @ inputs: - -{ - "boopy@alpha" = self.lib.mkHome "boopy" "alpha" "x86_64-linux" inputs.nixpkgs "22.05"; -} diff --git a/home/default.nix b/home/default.nix new file mode 100644 index 0000000..62e6aea --- /dev/null +++ b/home/default.nix @@ -0,0 +1,22 @@ +{ self, nixpkgs, ... } @ inputs: + +{ + "boopy@alpha" = self.lib.mkHome { + username = "boopy"; + hostname = "alpha"; + system = "x86_64-linux"; + pkgs = import nixpkgs { system = "x86_64-linux"; overlays = [ inputs.rust-overlay.overlay ]; }; + + extraModules = [ + ./profiles + ./profiles/base + ./profiles/browsing + ./profiles/development + ./profiles/messaging + ./profiles/multimedia + ./profiles/research + ]; + + version = "22.05"; + }; +} diff --git a/home/modules/default.nix b/home/modules/default.nix deleted file mode 100644 index b096729..0000000 --- a/home/modules/default.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ - "profiles" = import ./profiles; - "profiles/base" = import ./profiles/base; - "profiles/browsing" = import ./profiles/browsing; - "profiles/development" = import ./profiles/development; - "profiles/messaging" = import ./profiles/messaging; - "profiles/multimedia" = import ./profiles/multimedia; - "profiles/research" = import ./profiles/research; - - "programs/nixpkgs" = import ./programs/nixpkgs; - "programs/zshell" = import ./programs/zshell; - "programs/spotify-tui" = import ./programs/spotify-tui; - - "misc/home" = import ./misc/home; - "misc/neotheme" = import ./misc/neotheme; -} diff --git a/home/modules/misc/home/default.nix b/home/modules/misc/home/default.nix deleted file mode 100644 index 80232e7..0000000 --- a/home/modules/misc/home/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ config, pkgs, lib, nixpkgs, self, ... }: - -{ - profiles.base.enable = true; - fonts.fontconfig.enable = true; - - - home = { - stateVersion = "22.05"; - }; -} - - - - - - - - - - - - - - - - - - - - diff --git a/home/modules/profiles/base/config/dunst.nix b/home/modules/profiles/base/config/dunst.nix deleted file mode 100644 index 60ed15f..0000000 --- a/home/modules/profiles/base/config/dunst.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ 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 = "%s\\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/modules/profiles/base/config/foot.nix b/home/modules/profiles/base/config/foot.nix deleted file mode 100644 index 08a38e7..0000000 --- a/home/modules/profiles/base/config/foot.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ 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/modules/profiles/base/config/sway.nix b/home/modules/profiles/base/config/sway.nix deleted file mode 100644 index 00dae28..0000000 --- a/home/modules/profiles/base/config/sway.nix +++ /dev/null @@ -1,204 +0,0 @@ -{ 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/modules/profiles/base/config/waybar-settings-new.nix b/home/modules/profiles/base/config/waybar-settings-new.nix deleted file mode 100644 index 4b55a05..0000000 --- a/home/modules/profiles/base/config/waybar-settings-new.nix +++ /dev/null @@ -1,68 +0,0 @@ -{ - # DISCLAIMER! On 22.05, do NOT use this until https://github.com/nix-community/home-manager/issues/2546 is solved. - layer = "bottom"; - position = "top"; - height = 17; - modules-left = [ "sway/workspaces" "sway/language" "cpu" "memory" ]; - modules-center = [ "clock" ]; - modules-right = [ "custom/weather" "pulseaudio" "network" ]; - - "sway/workspaces" = { - all-outputs = true; - - persistent_workspaces = { - "α" = [ ]; - "β" = [ ]; - "γ" = [ ]; - "δ" = [ ]; - "ε" = [ ]; - "ζ" = [ ]; - "η" = [ ]; - "θ" = [ ]; - "ι" = [ ]; - "κ" = [ ]; - }; - }; - - "sway/language" = { - format = " {long}"; - }; - - "clock" = { - interval = 10; - format = "{: %m/%d/%Y %I:%M %p}"; - }; - - "cpu" = { - interval = 5; - format = " {load}%  {usage}%"; - }; - - "custom/weather" = { - format = " {}"; - exec = "curl 'wttr.in/?format='%t+-+%x+%C++%w'&M'"; - interval = 3600; - }; - - "network" = { - interface = "enp4s0"; - format = " {ifname}"; - format-wifi = " {essid}"; - format-ethernet = " {ifname} {ipaddr}"; - format-disconnected = " Disconnected"; - max-length = 50; - }; - - "pulseaudio" = { - format = "{icon} {volume}%"; - format-muted = "婢 Muted"; - format-source = ""; - format-source-muted = "Muted"; - format-icons.default = [ " " " " " " ]; - }; - - "memory" = { - interval = 5; - format = " {used:0.1f}G / {total:0.1f}G ({percentage}%)"; - }; -} diff --git a/home/modules/profiles/base/config/waybar-settings.nix b/home/modules/profiles/base/config/waybar-settings.nix deleted file mode 100644 index fb691c0..0000000 --- a/home/modules/profiles/base/config/waybar-settings.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ 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" ]; - - modules = { - "sway/workspaces" = { - all-outputs = true; - persistent_workspaces = { - "α" = [ ]; - "β" = [ ]; - "γ" = [ ]; - "δ" = [ ]; - "ε" = [ ]; - "ζ" = [ ]; - "η" = [ ]; - "θ" = [ ]; - "ι" = [ ]; - "κ" = [ ]; - }; - }; - - "clock" = { - interval = 10; - format = " {:%A, %b %d %H:%M}"; - }; - - "cpu" = { - interval = 5; - format = " {usage:3}%"; - }; - - "pulseaudio" = { - format = "{icon} {volume}%"; - format-muted = "ﱝ Muted"; - format-icons.default = [ " " " " " " ]; - }; - - "memory" = { - interval = 5; - format = " {used:0.2f}GiB"; - }; - - "custom/seperator" = { - format = "|"; - interval = "once"; - tooltip = false; - }; - }; -} diff --git a/home/modules/profiles/base/config/waybar-style.nix b/home/modules/profiles/base/config/waybar-style.nix deleted file mode 100644 index e3f30f6..0000000 --- a/home/modules/profiles/base/config/waybar-style.nix +++ /dev/null @@ -1,77 +0,0 @@ -{ 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: #${bright0}; - background-color: #${background}; - border-bottom: 1px solid #${bright0}; - } -'' diff --git a/home/modules/profiles/base/default.nix b/home/modules/profiles/base/default.nix deleted file mode 100644 index 3d75618..0000000 --- a/home/modules/profiles/base/default.nix +++ /dev/null @@ -1,176 +0,0 @@ -{ config, lib, pkgs, self, ... }: -let - cfg = config.profiles.base; - - neotheme = config.neotheme; - - inherit (self.packages.x86_64-linux) neovim iosevka-pure-bin phocus; - - inherit (self.non-flake) wallpapers; -in -{ - 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 = "${wallpapers}/nixos/nix-glow-fg-d4ae80.png"; - }; - - home.keyboard.layout = "us"; - home.packages = [ - pkgs.hydra-check - 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" ]; }) - ]; - - - 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/modules/profiles/base/p10k-config/p10k.zsh b/home/modules/profiles/base/p10k-config/p10k.zsh deleted file mode 100644 index aa6bc2c..0000000 --- a/home/modules/profiles/base/p10k-config/p10k.zsh +++ /dev/null @@ -1,1604 +0,0 @@ -# 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 ":" 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 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 - - # 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_FOREGROUND=4 - # typeset -g POWERLEVEL9K_DIR_WORK_SHORTENED_FOREGROUND=4 - # typeset -g POWERLEVEL9K_DIR_WORK_ANCHOR_FOREGROUND=4 - # - # # Styling for WORK_NOT_WRITABLE. - # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_FOREGROUND=4 - # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_SHORTENED_FOREGROUND=4 - # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_ANCHOR_FOREGROUND=4# - # - # Styling for WORK_NON_EXISTENT. - # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_FOREGROUND=4 - # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_SHORTENED_FOREGROUND=4 - # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_ANCHOR_FOREGROUND=4 - # - # 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='%fin ' - - #####################################[ vcs: git status ]###################################### - # Branch icon. Set this parameter to '\uF126 ' for the popular Powerline branch icon. - typeset -g POWERLEVEL9K_VCS_BRANCH_ICON= - - # 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 - - if (( $1 )); then - # Styling for up-to-date Git status. - local meta='%f' # default foreground - local clean='%2F' # green foreground - local modified='%3F' # yellow foreground - local untracked='%4F' # blue foreground - local conflicted='%1F' # red foreground - else - # Styling for incomplete and stale Git status. - local meta='%f' # default foreground - local clean='%f' # default foreground - local modified='%f' # default foreground - local untracked='%f' # default foreground - local conflicted='%f' # default foreground - fi - - 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 - - # ⇣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}" - # ⇠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(1)))+${my_git_format}}' - typeset -g POWERLEVEL9K_VCS_LOADING_CONTENT_EXPANSION='${$((my_git_formatter(0)))+${my_git_format}}' - # Enable counters for staged, unstaged, etc. - typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED,CONFLICTED,COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=-1 - - # Icon color. - typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_COLOR=2 - typeset -g POWERLEVEL9K_VCS_LOADING_VISUAL_IDENTIFIER_COLOR= - # Custom icon. - typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION= - # Custom prefix. - # typeset -g POWERLEVEL9K_VCS_PREFIX='%fon ' - - # 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 reposotiry. - typeset -g POWERLEVEL9K_VCS_BACKENDS=(git) - - # These settings are used for repositories other than Git or when gitstatusd fails and - # Powerlevel10k has to fall back to using vcs_info. - typeset -g POWERLEVEL9K_VCS_CLEAN_FOREGROUND=2 - typeset -g POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND=2 - typeset -g POWERLEVEL9K_VCS_MODIFIED_FOREGROUND=3 - - ##########################[ 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_FOREGROUND=2 - typeset -g POWERLEVEL9K_STATUS_OK_VISUAL_IDENTIFIER_EXPANSION='✔' - - # 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_FOREGROUND=2 - typeset -g POWERLEVEL9K_STATUS_OK_PIPE_VISUAL_IDENTIFIER_EXPANSION='✔' - - # 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_FOREGROUND=1 - typeset -g POWERLEVEL9K_STATUS_ERROR_VISUAL_IDENTIFIER_EXPANSION='✘' - - # Status when the last command was terminated by a signal. - typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL=true - typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_FOREGROUND=1 - # 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='✘' - - # 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_FOREGROUND=1 - typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_VISUAL_IDENTIFIER_EXPANSION='✘' - - ###################[ command_execution_time: duration of the last command ]################### - # 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 - # Execution time color. - typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=3 - # 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='%ftook ' - - #######################[ background_jobs: presence of background jobs ]####################### - # Don't show the number of background jobs. - typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=false - # Background jobs color. - typeset -g POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=1 - # Custom icon. - # typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #######################[ direnv: direnv status (https://direnv.net/) ]######################## - # Direnv color. - typeset -g POWERLEVEL9K_DIRENV_FOREGROUND=3 - # 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 this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_FOREGROUND. - typeset -g POWERLEVEL9K_ASDF_FOREGROUND=6 - - # 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=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=6 - # 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=6 - # 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=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=4 - # 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=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=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=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=4 - # 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=6 - # 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=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=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=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=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=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=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=6 - # 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 - # Custom icon. - # typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ######################[ nnn: nnn shell (https://github.com/jarun/nnn) ]####################### - # Nnn shell color. - typeset -g POWERLEVEL9K_NNN_FOREGROUND=3 - # Custom icon. - # typeset -g POWERLEVEL9K_NNN_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##################[ xplr: xplr shell (https://github.com/sayanarijit/xplr) ]################## - # xplr shell color. - typeset -g POWERLEVEL9K_XPLR_FOREGROUND=3 - # 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=3 - # 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 - # Cus