diff options
| author | sefidel <contact@sefidel.net> | 2021-12-28 01:11:25 +0900 |
|---|---|---|
| committer | sefidel <contact@sefidel.net> | 2021-12-28 01:12:48 +0900 |
| commit | 56992b8c945d497a623fe693847c91235be1ae02 (patch) | |
| tree | 102ff8c8872d7e14ce3e3dba69bf16685374504e /home/modules | |
| download | nixrc-56992b8c945d497a623fe693847c91235be1ae02.zip | |
initial commit
Diffstat (limited to 'home/modules')
| -rw-r--r-- | home/modules/default.nix | 13 | ||||
| -rw-r--r-- | home/modules/misc/home/default.nix | 31 | ||||
| -rw-r--r-- | home/modules/profiles/base/config/foot.nix | 33 | ||||
| -rw-r--r-- | home/modules/profiles/base/config/sway.nix | 202 | ||||
| -rw-r--r-- | home/modules/profiles/base/config/waybar-settings-new.nix | 68 | ||||
| -rw-r--r-- | home/modules/profiles/base/config/waybar-settings.nix | 68 | ||||
| -rw-r--r-- | home/modules/profiles/base/config/waybar-style.nix | 97 | ||||
| -rw-r--r-- | home/modules/profiles/base/default.nix | 123 | ||||
| -rw-r--r-- | home/modules/profiles/base/p10k-config/p10k.zsh | 1469 | ||||
| -rw-r--r-- | home/modules/profiles/browsing/default.nix | 13 | ||||
| -rw-r--r-- | home/modules/profiles/default.nix | 13 | ||||
| -rw-r--r-- | home/modules/profiles/development/default.nix | 78 | ||||
| -rw-r--r-- | home/modules/profiles/messaging/default.nix | 14 | ||||
| -rw-r--r-- | home/modules/profiles/misc/default.nix | 14 | ||||
| -rw-r--r-- | home/modules/programs/nixpkgs/default.nix | 20 | ||||
| -rw-r--r-- | home/modules/programs/zshell/default.nix | 44 |
16 files changed, 2300 insertions, 0 deletions
diff --git a/home/modules/default.nix b/home/modules/default.nix new file mode 100644 index 0000000..d290e17 --- /dev/null +++ b/home/modules/default.nix @@ -0,0 +1,13 @@ +{ + "profiles" = import ./profiles; + "profiles/base" = import ./profiles/base; + "profiles/browsing" = import ./profiles/browsing; + "profiles/development" = import ./profiles/development; + "profiles/messaging" = import ./profiles/messaging; + "profiles/misc" = import ./profiles/misc; + + "programs/nixpkgs" = import ./programs/nixpkgs; + "programs/zshell" = import ./programs/zshell; + + "misc/home" = import ./misc/home; +} diff --git a/home/modules/misc/home/default.nix b/home/modules/misc/home/default.nix new file mode 100644 index 0000000..80232e7 --- /dev/null +++ b/home/modules/misc/home/default.nix @@ -0,0 +1,31 @@ +{ 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/foot.nix b/home/modules/profiles/base/config/foot.nix new file mode 100644 index 0000000..d53dba7 --- /dev/null +++ b/home/modules/profiles/base/config/foot.nix @@ -0,0 +1,33 @@ +{ + main = { + term = "foot"; + font = "dina:size=10,Liga SFMono Nerd Font:size=10"; + letter-spacing = 0; + line-height = 13; + dpi-aware = "yes"; + pad = "16x16 center"; + }; + + cursor.style = "beam"; + + colors = { + background = "18191f"; + foreground = "cbc0ab"; + regular0 = "222329"; + regular1 = "b17f81"; + regular2 = "8aa387"; + regular3 = "d4ae80"; + regular4 = "8896ae"; + regular5 = "c495a2"; + regular6 = "7aacaa"; + regular7 = "d0d0c7"; + bright0 = "36373d"; + bright1 = "c59395"; + bright2 = "9eb79b"; + bright3 = "e8c294"; + bright4 = "9caac2"; + bright5 = "d8a9b6"; + bright6 = "8ec0be"; + bright7 = "e4e4db"; + }; +}
\ No newline at end of file diff --git a/home/modules/profiles/base/config/sway.nix b/home/modules/profiles/base/config/sway.nix new file mode 100644 index 0000000..d04673e --- /dev/null +++ b/home/modules/profiles/base/config/sway.nix @@ -0,0 +1,202 @@ +{ pkgs, wallpapers }: + +'' + 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 footclient + bindsym $mod+Return exec $term + + # set menu + set $menu "${pkgs.bemenu}/bin/bemenu-run -H 18 -l 5 --fn 'Iosevka Pure 10.5' --tb '#c495a2' --tf '#18191f' --hb '#c495a2' --hf '#18191f'" + 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 sublime4 + bindsym $mod+Shift+a exec brave + + # 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 #222329 + set $color1 #b17f81 + set $color2 #8aa387 + set $color3 #d4ae80 + set $color4 #8896ae + set $color5 #c495a2 + set $color6 #7aacaa + set $color7 #d0d0c7 + set $color8 #36373d + set $color9 #c59395 + set $color10 #9eb79b + set $color11 #e8c294 + set $color12 #9caac2 + set $color13 #d8a9b6 + set $color14 #8ec0be + set $color15 #e4e4db + + set $primary $color5 + set $muted #b58693 + + # 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 ${wallpapers}/nixos/nix-glow-gruvbox.png 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 new file mode 100644 index 0000000..4b55a05 --- /dev/null +++ b/home/modules/profiles/base/config/waybar-settings-new.nix @@ -0,0 +1,68 @@ +{ + # 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 new file mode 100644 index 0000000..e208895 --- /dev/null +++ b/home/modules/profiles/base/config/waybar-settings.nix @@ -0,0 +1,68 @@ +{ + layer = "bottom"; + position = "top"; + height = 17; + modules-left = [ "sway/workspaces" "sway/language" "cpu" "memory" ]; + modules-center = [ "clock" ]; + modules-right = [ "custom/weather" "pulseaudio" "network" ]; + + modules = { + "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 = " {usage:3}%"; + }; + + "custom/weather" = { + format = " {}"; + exec = "curl 'wttr.in/?format='%t+-+%x+%C++%w'&M'"; + interval = 3600; + }; + + "network" = { + interval = 5; + interface = "enp4s0"; + format = " {ifname}"; + format-wifi = " {essid} {bandwidthUpBits} {bandwidthDownBits}"; + format-ethernet = " {bandwidthUpBits:>} {bandwidthDownBits:>}"; + format-disconnected = " Disconnected"; + max-length = 50; + }; + + "pulseaudio" = { + format = "{icon} {volume}%"; + format-muted = "ﱝ Muted"; + format-icons.default = [ " " " " " " ]; + }; + + "memory" = { + interval = 5; + format = " {used:0.1f}G / {total:0.1f}G ({percentage:3}%)"; + }; + }; +} diff --git a/home/modules/profiles/base/config/waybar-style.nix b/home/modules/profiles/base/config/waybar-style.nix new file mode 100644 index 0000000..45edf60 --- /dev/null +++ b/home/modules/profiles/base/config/waybar-style.nix @@ -0,0 +1,97 @@ +'' + * { + border: none; + border-radius: 0; + font-family: "JetBrainsMono Nerd Font"; + font-size: 14px; + min-height: 0; + } + + window#waybar { + background: #18191f; + color: #cbc0ab; + } + + #workspaces button { + padding: 0 4px; + background: #c495a2; + color: #18191f; + border-bottom: 2px solid #c495a2; + } + + #workspaces button.focused { + background: #c495a2; + border-bottom: 2px solid #18191f; + } + + #clock, + #cpu, + #battery, + #temperature, + #backlight, + #network, + #memory, + #language, + #pulseaudio, + #tray, + #mode, + #mpd, + #custom-weather { + padding: 0 6px; + margin: 0; + background-color: #c495a2; + color: #18191f; + } + + @keyframes blink { + to { + background-color: #c495a2; + color: #18191f; + } + } + + #cpu { + background-color: #8bb0a6; + } + + #network { + background-color: #8bb0a6; + } + + #memory { + background-color: #8bb0a6; + } + + #pulseaudio { + background-color: #8bb0a6; + } + + #battery { + background-color: #8bb0a6; + } + + #battery.full { + background-color: #8bb0a6; + color: #18191f; + } + + #battery.discharging { + background-color: #8bb0a6; + color: #18191f; + } + + #battery.charging { + background-color: #8bb0a6; + color: #18191f; + } + + #battery.warning:not(.charging) { + background-color: #8bb0a6; + color: #18191f; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; + } +'' diff --git a/home/modules/profiles/base/default.nix b/home/modules/profiles/base/default.nix new file mode 100644 index 0000000..1c584f0 --- /dev/null +++ b/home/modules/profiles/base/default.nix @@ -0,0 +1,123 @@ +{ config, lib, pkgs, self, ... }: +let + cfg = config.profiles.base; + + inherit (self.packages.x86_64-linux) neovim iosevka-pure-bin sf-mono-liga-bin 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 = pkgs.phocus; + #gtk.theme.name = "phocus"; + + home.keyboard.layout = "us"; + home.packages = [ + pkgs.hydra-check + neovim + + # Fonts + iosevka-pure-bin + sf-mono-liga-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 wallpapers; }; + }; + + 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; + server.enable = true; + settings = import ./config/foot.nix; + }; + + waybar = { + enable = config.wayland.windowManager.sway.enable; + + settings = [ (import ./config/waybar-settings.nix) ]; + + style = import ./config/waybar-style.nix; + }; + + 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; + }; + }; + + services.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 new file mode 100644 index 0000000..8705be0 --- /dev/null +++ b/home/modules/profiles/base/p10k-config/p10k.zsh @@ -0,0 +1,1469 @@ +# Generated by Powerlevel10k configuration wizard on 2020-02-27 at 13:48 UTC. +# Based on romkatv/powerlevel10k/config/p10k-classic.zsh. +# Wizard options: powerline, classic, darkest, time, angled separators, sharp heads, +# flat tails, 2 lines, solid, full frame, compact, concise, transient_prompt, +# instant_prompt=off. +# Type `p10k configure` to generate another config. +# +# Config for Powerlevel10k with classic powerline 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%8)):#7}:+$'\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 + setopt no_unset extended_glob + + # Unset all configuration options. This allows you to apply configiguration changes without + # restarting zsh. Edit ~/.p10k.zsh and type `source ~/.p10k.zsh`. + unset -m 'POWERLEVEL9K_*' + + autoload -Uz is-at-least && is-at-least 5.1 || return + + zmodload zsh/langinfo + if [[ ${langinfo[CODESET]:-} != (utf|UTF)(-|)8 ]]; then + local LC_ALL=${${(@M)$(locale -a):#*.(utf|UTF)(-|)8}[1]:-en_US.UTF-8} + fi + + # 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/) + 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) + 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) + 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) + 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/) + 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) + ) + + # To enable default icons for all segments, don't define POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION + # or set it to '${P9K_VISUAL_IDENTIFIER}'. + # + # To remove trailing space from all default icons, set POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION + # to '${P9K_VISUAL_IDENTIFIER% }'. + # + # To enable default icons for one segment (e.g., dir), set + # POWERLEVEL9K_DIR_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER}'. + # + # To assign a specific icon to one segment (e.g., dir), set + # POWERLEVEL9K_DIR_VISUAL_IDENTIFIER_EXPANSION='⭐'. + # + # To assign a specific icon to a segment in a given state (e.g., dir in state NOT_WRITABLE), + # set POWERLEVEL9K_DIR_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='⭐'. + # + # Note: You can use $'\u2B50' instead of '⭐'. It's especially convenient when specifying + # icons that your text editor cannot render. Don't forget to put $ and use single quotes when + # defining icons via Unicode codepoints. + # + # Note: Many default icons cannot be displayed with system fonts. You'll need to install a + # capable font to use them. See POWERLEVEL9K_MODE below. + typeset -g POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER}' + + # This option makes a difference only when default icons are enabled for all or some prompt + # segments (see POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION above). LOCK_ICON can be printed as + # $'\uE0A2', $'\uE138' or $'\uF023' depending on POWERLEVEL9K_MODE. The correct value of this + # parameter depends on the provider of the font your terminal is using. + # + # Font Provider | POWERLEVEL9K_MODE + # ---------------------------------+------------------- + # Powerline | powerline + # Font Awesome | awesome-fontconfig + # Adobe Source Code Pro | awesome-fontconfig + # Source Code Pro | awesome-fontconfig + # Awesome-Terminal Fonts (regular) | awesome-fontconfig + # Awesome-Terminal Fonts (patched) | awesome-patched + # Nerd Fonts | nerdfont-complete + # Other | compatible + # + # If this looks overwhelming, either stick with a preinstalled system font and set + # POWERLEVEL9K_MODE=compatible, or install the recommended Powerlevel10k font from + # https://github.com/romkatv/powerlevel10k/#recommended-meslo-nerd-font-patched-for-powerlevel10k + # and set POWERLEVEL9K_MODE=nerdfont-complete. + typeset -g POWERLEVEL9K_MODE=powerline + + # When set to true, icons appear before content on both sides of the prompt. When set + # to false, icons go after content. If empty or not set, icons go before content in the left + # prompt and after content in the right prompt. + # + # You can also override it for a specific segment: + # + # POWERLEVEL9K_STATUS_ICON_BEFORE_CONTENT=false + # + # Or for a specific segment in specific state: + # + # POWERLEVEL9K_DIR_NOT_WRITABLE_ICON_BEFORE_CONTENT=false + typeset -g POWERLEVEL9K_ICON_BEFORE_CONTENT= + + # Add an empty line before each prompt. + typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=false + + # Connect left prompt lines with these symbols. You'll probably want to use the same color + # as POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND below. + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX='%238F╭─' + typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX='%238F├─' + typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX='%238F╰─' + # Connect right prompt lines with these symbols. + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX='%238F─╮' + typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX='%238F─┤' + typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX='%238F─╯' + + # 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 using this option. + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR='─' + typeset -g POWERLEVEL9K_MULTILINE_FIRST_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=238 + # 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 + + # Default background color. + typeset -g POWERLEVEL9K_BACKGROUND=234 + + # Separator between same-color segments on the left. + typeset -g POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR='%242F\uE0B1' + # Separator between same-color segments on the right. + typeset -g POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR='%242F\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' + # 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=255 + # Make the icon bold. + typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION='%B${P9K_CONTENT}' + + ################################[ 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='Ⅴ' + # 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_LEF |
