10 Commits

13 changed files with 659 additions and 119 deletions

View File

@@ -0,0 +1,34 @@
general {
lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
before_sleep_cmd = loginctl lock-session # lock before suspend.
after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
}
listener {
timeout = 150 # 2.5min.
on-timeout = brightnessctl -s set 10 # set monitor backlight to minimum, avoid 0 on OLED monitor.
on-resume = brightnessctl -r # monitor backlight restore.
}
# turn off keyboard backlight, comment out this section if you dont have a keyboard backlight.
listener {
timeout = 150 # 2.5min.
on-timeout = brightnessctl -sd rgb:kbd_backlight set 0 # turn off keyboard backlight.
on-resume = brightnessctl -rd rgb:kbd_backlight # turn on keyboard backlight.
}
listener {
timeout = 300 # 5min
on-timeout = loginctl lock-session # lock screen when timeout has passed
}
listener {
timeout = 330 # 5.5min
on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
on-resume = hyprctl dispatch dpms on && brightnessctl -r # screen on when activity is detected after timeout has fired.
}
listener {
timeout = 1800 # 30min
on-timeout = systemctl suspend # suspend pc
}

View File

@@ -24,7 +24,7 @@ autogenerated = 0 # remove this line to remove the warning
# See https://wiki.hypr.land/Configuring/Monitors/
monitor=,preferred,auto,auto
exec-once = swaybg -i ~/Pictures/wallpapers/swoacyk0f3sf1.png
#exec-once = swaybg -i /usr/share/backgrounds/gnome/vnc-d.png
###################
@@ -49,14 +49,17 @@ $menu = wofi --show drun -GI
# exec-once = $terminal
# exec-once = nm-applet &
# exec-once = waybar & hyprpaper & firefox
exec-once = hypridle
exec-once = nm-applet &
exec-once = blueman-applet &
exec-once = shikane &
exec-once = waybar &
exec-once = waybar -c ~/.config/hypr/waybar/config.jsonc -s ~/.config/hypr/waybar/style.css &
exec-once = hyprpm reload -n
exec-once = flatpak run com.github.wwmm.easyeffects -w
exec-once = powertop --auto-tune
exec-once = systemctl --user start hyprpolkitagent
exec-once = xrdb -merge ~/.Xresources
exec-once = gsettings set org.gnome.desktop.interface color-scheme "prefer-dark"
#############################
@@ -94,8 +97,8 @@ permission = /usr/(bin|local/bin)/hyprpm, plugin, allow
# https://wiki.hypr.land/Configuring/Variables/#general
general {
gaps_in = 4
gaps_out = 4
gaps_in = 2
gaps_out = 2
border_size = 1
@@ -104,10 +107,10 @@ general {
col.inactive_border = rgba(595959aa)
# Set to true enable resizing windows by clicking and dragging on borders and gaps
resize_on_border = false
resize_on_border = true
# Please see https://wiki.hypr.land/Configuring/Tearing/ before you turn this on
allow_tearing = false
allow_tearing = true
#layout = dwindle
layout = hy3
@@ -116,7 +119,7 @@ general {
# https://wiki.hypr.land/Configuring/Variables/#decoration
decoration {
rounding = 6
rounding = 4
rounding_power = 2
# Change transparency of focused and unfocused windows
@@ -124,7 +127,7 @@ decoration {
inactive_opacity = 1.0
shadow {
enabled = true
enabled = false
range = 4
render_power = 3
color = rgba(1a1a1aee)
@@ -132,7 +135,7 @@ decoration {
# https://wiki.hypr.land/Configuring/Variables/#blur
blur {
enabled = true
enabled = false
size = 3
passes = 1
@@ -144,6 +147,7 @@ decoration {
animations {
enabled = yes, please :)
# Default curves, see https://wiki.hypr.land/Configuring/Animations/#curves
# NAME, X0, Y0, X1, Y1
bezier = easeOutQuint, 0.23, 1, 0.32, 1
@@ -196,10 +200,16 @@ master {
# https://wiki.hypr.land/Configuring/Variables/#misc
misc {
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers
disable_hyprland_logo = true# If true disables the random hyprland logo / anime girl background. :(
}
xwayland {
force_zero_scaling = true
}
env = GTK_SCALE,2
env = XCURSOR_SIZE,32
#############
### INPUT ###
@@ -245,21 +255,23 @@ $mainMod = SUPER # Sets "Windows" key as main modifier
bind = $mainMod, RETURN, exec, $terminal
bind = $mainMod, D, exec, $menu
bind = $mainMod, F, fullscreen
bind = $mainMod, S, pin
bind = $mainMod, M, exec, swaylock -c 0x000000; playerctl pause
bind = $mainMod SHIFT, SPACE, togglefloating,
bind = $mainMod SHIFT, Q, hy3:killactive,
bind = $mainMod SHIFT, M, exit,
bind = $mainMod SHIFT, S, pin
bind = $mainMod, B, hy3:makegroup, h
bind = $mainMod, V, hy3:makegroup, v
bind = $mainMod, W, hy3:makegroup, tab
bind = $mainMod, A, hy3:changefocus, raise
bind = $mainMod, X, hy3:locktab
bind = $mainMod, E, hy3:expand, expand
bind = $mainMod, R, hy3:changegroup, opposite
bind = $mainMod SHIFT, A, hy3:changefocus, lower
bind = $mainMod SHIFT, E, hy3:expand, base
#bind = $mainMod SHIFT, A, hy3:changefocus, lower
#bind = $mainMod, A, hy3:changefocus, raise
#bind = $mainMod SHIFT, E, hy3:expand, base
#bind = $mainMod, E, hy3:expand, expand
# Move focus with mainMod + arrow keys
bind = $mainMod, h, hy3:movefocus, l
@@ -331,6 +343,10 @@ bindl = , XF86AudioPause, exec, playerctl play-pause
bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioPrev, exec, playerctl previous
# Screenshots
bindel = $mainMod, p, exec, grimshot --notify savecopy anything
bindel = $mainMod, m, exec, shikanectl reload
##############################
### WINDOWS AND WORKSPACES ###
##############################
@@ -342,7 +358,7 @@ bindl = , XF86AudioPrev, exec, playerctl previous
# windowrule = float,class:^(kitty)$,title:^(kitty)$
# Ignore maximize requests from apps. You'll probably like this.
windowrule = suppressevent maximize, class:.*
#windowrule = suppressevent maximize, class:.*
# Fix some dragging issues with XWayland
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
#windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0

View File

@@ -0,0 +1,20 @@
background {
monitor = # monitor-agnostic
blur_passes = 1
blur_size = 7
}
input-field {
monitor =
size = 20%, 5%
font_family = Noto Sans
dots_size = 0.08
}
label {
monitor =
text = $TIME
font_size = 80
position = 0, -10
}

View File

@@ -0,0 +1,118 @@
// -*- mode: jsonc -*-
{
"spacing": 2, // Gaps between modules (4px)
"modules-left": [
"hyprland/workspaces",
"hyprland/mode",
"hyprland/scratchpad",
"hyprland/window"
],
"modules-center": [
//"sway/window"
"clock",
],
"modules-right": [
//"mpd",
"pulseaudio",
//"network",
"battery",
"tray"
//"custom/power"
],
"sway/mode": {
"format": "<span style=\"italic\">{}</span>"
},
"sway/scratchpad": {
"format": "{icon} {count}",
"show-empty": false,
"format-icons": ["", ""],
"tooltip": true,
"tooltip-format": "{app}: {title}"
},
"tray": {
// "icon-size": 21,
"spacing": 10,
// "icons": {
// "blueman": "bluetooth",
// "TelegramDesktop": "$HOME/.local/share/icons/hicolor/16x16/apps/telegram.png"
// }
},
"clock": {
//"timezone": "America/Los_Angeles",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format": "{:%c}",
//"format": "{:%R %p %Y-%m-%d}",
//"format-alt": "{:%Y-%m-%d}"
},
"battery": {
"states": {
// "good": 95,
"warning": 30,
"critical": 15
},
//"format": "{time} {capacity}% {icon}",
"format": "{capacity}% {icon}",
"format-full": "{capacity}% {icon}",
"format-charging": "{capacity}% C",
"format-plugged": "{capacity}% P",
"format-alt": "{time} {icon}",
// "format-good": "", // An empty format will hide the module
// "format-full": "",
"format-icons": ["", "", "", "", ""]
},
"battery#bat2": {
"bat": "BAT2"
},
"power-profiles-daemon": {
"format": "{icon}",
"tooltip-format": "Power profile: {profile}\nDriver: {driver}",
"tooltip": true,
"format-icons": {
"default": "",
"performance": "",
"balanced": "",
"power-saver": ""
}
},
"network": {
// "interface": "wlp2*", // (Optional) To force the use of this interface
//"format-wifi": "{essid} ({signalStrength}%) ",
//"format-ethernet": "{ipaddr}/{cidr} ",
//"tooltip-format": "{ifname} via {gwaddr} ",
//"format-linked": "{ifname} (No IP) ",
//"format-disconnected": "Disconnected ⚠",
"format-disconnected": "Disconnected",
"format-alt": "{ifname}: {ipaddr}/{cidr}"
},
"pulseaudio": {
// "scroll-step": 1, // %, can be a float
"format": "{volume}% {icon} {format_source}",
"format-bluetooth": "{volume}% {icon}  {format_source}",
"format-bluetooth-muted": " {icon}  {format_source}",
"format-muted": " {format_source}",
"format-source": "{volume}% ",
"format-source-muted": "",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", "", ""]
},
"on-click": "pavucontrol"
},
"custom/media": {
"format": "{icon} {text}",
"return-type": "json",
"max-length": 40,
"format-icons": {
"spotify": "",
"default": "🎜"
},
"escape": true,
"exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder
// "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
}
}

View File

@@ -0,0 +1,321 @@
* {
/* `otf-font-awesome` is required to be installed for icons */
/*font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif; */
/*font-family: "JetBrainsMono NF";*/
font-family: "JetBrainsMonoNFM-Regular";
font-size: 14px;
font-weight: bold;
}
window#waybar {
/*background-color: rgba(43, 48, 59, 0.5);
border-bottom: 3px solid rgba(100, 114, 125, 0.5); */
background-color: rgba(0, 0, 0, 1);
color: #ffffff;
transition-property: background-color;
transition-duration: .5s;
}
window#waybar.hidden {
opacity: 0.2;
}
window#waybar.empty {
/*background-color: transparent;*/
}
window#waybar.solo {
/*background-color: #FFFFFF;*/
}
button {
/* Use box-shadow instead of border so the text isn't offset */
box-shadow: inset 0 -3px transparent;
/* Avoid rounded borders under each button name */
border: none;
border-radius: 0;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
button:hover {
background: inherit;
box-shadow: inset 0 -3px #ffffff;
}
/* you can set a style on hover for any module like this */
#pulseaudio:hover {
/*background-color: #a37800;*/
}
#workspaces button {
padding: 0 4px;
/*background-color: transparent;*/
color: #ffffff;
}
#workspaces button:hover {
background: rgba(0, 0, 0, 0.2);
}
#workspaces button.focused {
background-color: #64727D;
/*box-shadow: inset 0 -3px #ffffff;*/
}
#workspaces button.urgent {
background-color: #eb4d4b;
}
#mode {
background-color: #64727D;
box-shadow: inset 0 -3px #ffffff;
}
#clock,
#battery,
#cpu,
#memory,
#disk,
#temperature,
#backlight,
#network,
#pulseaudio,
#wireplumber,
#custom-media,
#tray,
#mode,
#idle_inhibitor,
#scratchpad,
#power-profiles-daemon,
#mpd {
padding: 0 10px;
color: #ffffff;
}
#window,
#workspaces {
margin: 0 4px;
}
/* If workspaces is the leftmost module, omit left margin */
.modules-left > widget:first-child > #workspaces {
margin-left: 0;
}
/* If workspaces is the rightmost module, omit right margin */
.modules-right > widget:last-child > #workspaces {
margin-right: 0;
}
#clock {
/* background-color: #64727D;*/
}
#battery {
/*background-color: #ffffff;
color: #000000;*/
}
#battery.charging, #battery.plugged {
/*color: #ffffff;
background-color: #26A65B;*/
}
@keyframes blink {
to {
background-color: #ffffff;
color: #000000;
}
}
/* Using steps() instead of linear as a timing function to limit cpu usage */
#battery.critical:not(.charging) {
background-color: #f53c3c;
color: #ffffff;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: steps(12);
animation-iteration-count: infinite;
animation-direction: alternate;
}
#power-profiles-daemon {
padding-right: 15px;
}
#power-profiles-daemon.performance {
background-color: #f53c3c;
color: #ffffff;
}
#power-profiles-daemon.balanced {
background-color: #2980b9;
color: #ffffff;
}
#power-profiles-daemon.power-saver {
background-color: #2ecc71;
color: #000000;
}
label:focus {
background-color: #000000;
}
#cpu {
background-color: #2ecc71;
color: #000000;
}
#memory {
background-color: #9b59b6;
}
#disk {
background-color: #964B00;
}
#backlight {
background-color: #90b1b1;
}
#network {
/*background-color: #2980b9;*/
}
#network.disconnected {
/*background-color: #f53c3c;*/
}
#pulseaudio {
/*background-color: #f1c40f;*/
/*color: #000000;*/
}
#pulseaudio.muted {
/*background-color: #90b1b1;*/
/*color: #2a5c45;*/
}
#wireplumber {
background-color: #fff0f5;
color: #000000;
}
#wireplumber.muted {
background-color: #f53c3c;
}
#custom-media {
background-color: #66cc99;
color: #2a5c45;
min-width: 100px;
}
#custom-media.custom-spotify {
background-color: #66cc99;
}
#custom-media.custom-vlc {
background-color: #ffa000;
}
#temperature {
background-color: #f0932b;
}
#temperature.critical {
background-color: #eb4d4b;
}
#tray {
/*background-color: #2980b9;*/
}
#tray > .passive {
-gtk-icon-effect: dim;
}
#tray > .needs-attention {
-gtk-icon-effect: highlight;
background-color: #eb4d4b;
}
#idle_inhibitor {
background-color: #2d3436;
}
#idle_inhibitor.activated {
background-color: #ecf0f1;
color: #2d3436;
}
#mpd {
background-color: #66cc99;
color: #2a5c45;
}
#mpd.disconnected {
background-color: #f53c3c;
}
#mpd.stopped {
background-color: #90b1b1;
}
#mpd.paused {
background-color: #51a37a;
}
#language {
background: #00b093;
color: #740864;
padding: 0 5px;
margin: 0 5px;
min-width: 16px;
}
#keyboard-state {
background: #97e1ad;
color: #000000;
padding: 0 0px;
margin: 0 5px;
min-width: 16px;
}
#keyboard-state > label {
padding: 0 5px;
}
#keyboard-state > label.locked {
background: rgba(0, 0, 0, 0.2);
}
#scratchpad {
background: rgba(0, 0, 0, 0.2);
}
#scratchpad.empty {
background-color: transparent;
}
#privacy {
padding: 0;
}
#privacy-item {
padding: 0 5px;
color: white;
}
#privacy-item.screenshare {
background-color: #cf5700;
}
#privacy-item.audio-in {
background-color: #1ca000;
}
#privacy-item.audio-out {
background-color: #0069d4;
}

View File

@@ -1,13 +0,0 @@
{
"black-metal-theme-neovim": { "branch": "main", "commit": "6d0207871387077f40d5396ab1ae90520e688d36" },
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "3b3571b4dadbcb464804466e9872e7246c316af7" },
"mason.nvim": { "branch": "main", "commit": "57e5a8addb8c71fb063ee4acda466c7cf6ad2800" },
"mini.completion": { "branch": "main", "commit": "7c5edfc0e479dd4edd898cc9ddd1920d8c1ce420" },
"mini.nvim": { "branch": "main", "commit": "6bd3a01aaf7d248aea1b78aacdd5d44bffa002c1" },
"nvim-lspconfig": { "branch": "master", "commit": "07f4e93de92e8d4ea7ab99602e3a8c9ac0fb778a" },
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"telescope.nvim": { "branch": "master", "commit": "84b9ba066d1860f7a586ce9cd732fd6c4f77d1d9" },
"vim-tmux-navigator": { "branch": "master", "commit": "c45243dc1f32ac6bcf6068e5300f3b2b237e576a" }
}

View File

@@ -15,8 +15,7 @@ return {
---
-- Autocompletion
---
require('mini.snippets').setup()
--require('mini.snippets').setup()
require('mini.completion').setup()
---

View File

@@ -2,45 +2,48 @@ return {
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate",
config = function()
require("nvim-treesitter.configs").setup {
-- A list of parser names, or "all" (the five listed parsers should always be installed)
ensure_installed = { "c", "lua", "vim", "vimdoc", "python", "bash", "make" },
require("nvim-treesitter").install({})
-- Install parsers synchronously (only applied to `ensure_installed`)
sync_install = false,
--require("nvim-treesitter.configs").setup ({
-- -- A list of parser names, or "all" (the five listed parsers should always be installed)
-- ensure_installed = { "c", "lua", "vim", "vimdoc", "python", "bash", "make" },
-- Automatically install missing parsers when entering buffer
-- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally
auto_install = true,
-- -- Install parsers synchronously (only applied to `ensure_installed`)
-- sync_install = false,
-- List of parsers to ignore installing (for "all")
ignore_install = { "javascript" },
-- -- Automatically install missing parsers when entering buffer
-- -- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally
-- auto_install = true,
---- If you need to change the installation directory of the parsers (see -> Advanced Setup)
-- parser_install_dir = "/some/path/to/store/parsers", -- Remember to run vim.opt.runtimepath:append("/some/path/to/store/parsers")!
-- -- List of parsers to ignore installing (for "all")
-- ignore_install = { "javascript" },
highlight = {
enable = true,
-- ---- If you need to change the installation directory of the parsers (see -> Advanced Setup)
-- -- parser_install_dir = "/some/path/to/store/parsers", -- Remember to run vim.opt.runtimepath:append("/some/path/to/store/parsers")!
-- NOTE: these are the names of the parsers and not the filetype. (for example if you want to
-- disable highlighting for the `tex` filetype, you need to include `latex` in this list as this is
-- the name of the parser)
-- list of language that will be disabled
-- disable = { "c", "rust" },
-- Or use a function for more flexibility, e.g. to disable slow treesitter highlight for large files
disable = function(lang, buf)
local max_filesize = 100 * 1024 -- 100 KB
local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf))
if ok and stats and stats.size > max_filesize then
return true
-- highlight = {
-- enable = true,
-- -- NOTE: these are the names of the parsers and not the filetype. (for example if you want to
-- -- disable highlighting for the `tex` filetype, you need to include `latex` in this list as this is
-- -- the name of the parser)
-- -- list of language that will be disabled
-- -- disable = { "c", "rust" },
-- -- Or use a function for more flexibility, e.g. to disable slow treesitter highlight for large files
-- disable = function(lang, buf)
-- local max_filesize = 100 * 1024 -- 100 KB
-- local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf))
-- if ok and stats and stats.size > max_filesize then
-- return true
-- end
-- end,
-- -- Setting this to true will run `:h syntax` and tree-sitter at the same time.
-- -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation).
-- -- Using this option may slow down your editor, and you may see some duplicate highlights.
-- -- Instead of true it can also be a list of languages
-- additional_vim_regex_highlighting = false,
-- },
--})
end
end,
-- Setting this to true will run `:h syntax` and tree-sitter at the same time.
-- Set this to `true` if you depend on 'syntax' being enabled (like for indentation).
-- Using this option may slow down your editor, and you may see some duplicate highlights.
-- Instead of true it can also be a list of languages
additional_vim_regex_highlighting = false,
},
}
end }
}

View File

@@ -50,13 +50,18 @@ seat seat0 xcursor_theme Adwaita 35
#exec pipewire
exec swaync
exec waybar
exec shikane
exec nm-applet
exec blueman-applet
exec mpd
exec syncthing
exec systemctl --user start hyperolkitagent
exec waybar -c ~/.config/sway/waybar/config.jsonc -s ~/.config/sway/waybar/style.css
exec flatpak run com.github.wwmm.easyeffects -w
exec xrdb -merge ~/.Xresources
exec wl-paste -t text --watch clipman store --no-persist
#exec mpd
#exec syncthing
# Auto start .desktop files using dex
exec dex -a

1
.config/sway/waybar Symbolic link
View File

@@ -0,0 +1 @@
/home/jozamudi/.dotfiles/.config/waybar

View File

@@ -3,7 +3,7 @@ set -g default-terminal "xterm-256color"
bind-key r source-file ~/.config/tmux/tmux.conf \; display "Reloaded!"
set-option -g default-shell /bin/zsh
#set-option -g default-shell /bin/zsh
# remap prefix
unbind C-b
@@ -51,9 +51,9 @@ set-option -g update-environment "SSH_AUTH_SOCK \
SSH_CONNECTION \
DISPLAY "
set -g status-position bottom
set -g status-left " #{session_name} "
set -g status-right ""
set -g status-right-length 100
# set -g status-position bottom
# set -g status-left " #{session_name} "
# set -g status-right ""
# set -g status-right-length 100
# set -g status-style 'fg=default'

View File

@@ -2,10 +2,10 @@
{
"spacing": 2, // Gaps between modules (4px)
"modules-left": [
"hyprland/workspaces",
"hyprland/mode",
"hyprland/scratchpad",
"hyprland/window"
"sway/workspaces",
"sway/mode",
"sway/scratchpad",
"sway/window"
],
//"modules-center": [
//"sway/window"

36
.zshrc Normal file
View File

@@ -0,0 +1,36 @@
# Auto Complete
autoload -Uz compinit
compinit
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
alias dir='dir --color=auto'
alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
# Alias
alias vim='nvim'
alias ssh='ssh -XC'
# Config
source <(fzf --zsh)
autoload -Uz vcs_info
precmd_vcs_info() { vcs_info }
precmd_functions+=( precmd_vcs_info )
setopt prompt_subst
RPROMPT='${vcs_info_msg_0_}'
#PROMPT='${vcs_info_msg_0_}%# '
PROMPT='%~%# '
zstyle ':vcs_info:git:*' formats '%b'