From fa53413b024f4e07c2217c2dc52a06b82917546a Mon Sep 17 00:00:00 2001 From: Massaki Archambault Date: Wed, 9 Apr 2025 22:42:16 -0400 Subject: [PATCH] Update home/.config/electron-flags.conf Update home/.config/gamemode.ini Update home/.config/gtk-3.0/settings.ini Update home/.config/sunshine/sunshine.conf Update home/.config/sway/config Update home/.config/systemd/user/swayidle.service Update home/.config/waybar/config Update home/.config/waybar/style.css Update home/.gtkrc-2.0 Update home/.local/bin/gamemode-start Update home/.local/bin/gamemode-stop Update home/.local/bin/sunshine-prepare Update home/.local/bin/sunshine-restore Update home/.local/bin/sway Update home/.vim/vimrc Update home/.zshrc --- home/dot_config/electron-flags.conf | 2 +- home/dot_config/gamemode.ini | 10 +- home/dot_config/gtk-3.0/settings.ini | 5 +- home/dot_config/sunshine/sunshine.conf | 4 +- home/dot_config/sway/config | 48 ++++--- home/dot_config/systemd/user/swayidle.service | 2 +- home/dot_config/waybar/config | 5 +- home/dot_config/waybar/style.css | 36 ++++- home/dot_gtkrc-2.0 | 5 +- home/dot_local/bin/executable_gamemode-start | 9 +- home/dot_local/bin/executable_gamemode-stop | 7 +- .../dot_local/bin/executable_sunshine-prepare | 11 +- .../dot_local/bin/executable_sunshine-restore | 5 +- home/dot_local/bin/executable_sway | 37 +++-- home/dot_vim/vimrc | 128 +++++++++--------- home/dot_zshrc | 5 +- 16 files changed, 201 insertions(+), 118 deletions(-) diff --git a/home/dot_config/electron-flags.conf b/home/dot_config/electron-flags.conf index 1e391db..ca81139 100644 --- a/home/dot_config/electron-flags.conf +++ b/home/dot_config/electron-flags.conf @@ -1,4 +1,4 @@ --enable-features=VaapiVideoDecoder --enable-features=UseOzonePlatform ---ozone-platform=wayland +--ozone-platform-hint=auto --enable-features=WebRTCPipeWireCapturer diff --git a/home/dot_config/gamemode.ini b/home/dot_config/gamemode.ini index add6196..1071eb4 100644 --- a/home/dot_config/gamemode.ini +++ b/home/dot_config/gamemode.ini @@ -1,3 +1,11 @@ +[gpu] +#apply_gpu_optimisations=accept-responsibility +#gpu_device=2 + +# https://gitlab.freedesktop.org/drm/amd/-/issues/1974 +#amd_performance_level=high + + [custom] start=gamemode-start -end=gamemode-stop \ No newline at end of file +end=gamemode-stop diff --git a/home/dot_config/gtk-3.0/settings.ini b/home/dot_config/gtk-3.0/settings.ini index 3efb24a..7ce9c7c 100644 --- a/home/dot_config/gtk-3.0/settings.ini +++ b/home/dot_config/gtk-3.0/settings.ini @@ -1,6 +1,6 @@ [Settings] -gtk-icon-theme-name=Mint-Y-Orange -gtk-theme-name=Matcha-aliz +gtk-icon-theme-name=Tela-circle +gtk-theme-name=Orchis-Light gtk-application-prefer-dark-theme=0 gtk-font-name=Cantarell 11 gtk-cursor-theme-name=Breeze_Light @@ -14,3 +14,4 @@ gtk-enable-input-feedback-sounds=1 gtk-xft-antialias=1 gtk-xft-hinting=1 gtk-xft-hintstyle=hintfull +gtk-xft-rgba=none diff --git a/home/dot_config/sunshine/sunshine.conf b/home/dot_config/sunshine/sunshine.conf index 8338cba..0eece09 100644 --- a/home/dot_config/sunshine/sunshine.conf +++ b/home/dot_config/sunshine/sunshine.conf @@ -1,3 +1,3 @@ -adapter_name = /dev/dri/by-path/pci-0000:03:00.0-render -output_name = 1 global_prep_cmd = [{"do":"sunshine-prepare","undo":"sunshine-restore"}] +output_name = 1 +adapter_name = /dev/dri/renderD129 diff --git a/home/dot_config/sway/config b/home/dot_config/sway/config index c435315..fbfb5ae 100644 --- a/home/dot_config/sway/config +++ b/home/dot_config/sway/config @@ -38,11 +38,12 @@ for_window [floating] default_border pixel 1 smart_borders on # Gaps -gaps inner 16 -gaps outer -8 +gaps inner 8 +gaps outer -4 smart_gaps on # Floating mod +for_window [floating] shadows enable for_window [app_id="pavucontrol"] floating enable for_window [app_id="org.remmina.Remmina" title="Remmina Remote Desktop Client"] floating enable for_window [app_id="desktopclient.nextcloud.com.nextcloud"] floating enable @@ -64,6 +65,8 @@ for_window [window_type="utility"] floating enable for_window [window_type="toolbar"] floating enable for_window [window_type="splash"] floating enable +#for_window [class="^steam_app.*"] allow_tearing yes + # https://github.com/ValveSoftware/steam-for-linux/issues/1040 for_window [class="^Steam$" title="^Friends$"] floating enable for_window [class="^Steam$" title="Steam - News"] floating enable @@ -89,9 +92,14 @@ for_window [app_id="^.*"] inhibit_idle fullscreen ### Output configuration output "*" { background ~/.local/share/wallpaper fill + + adaptive_sync off + allow_tearing no + max_render_time off } -set $output1 "LG Electronics LG QHD 0x00051E95" +#set $output1 "LG Electronics LG QHD 0x00051E95" +set $output1 "Philips Consumer Electronics Company PHL 34M2C8600 AU42410000051" workspace $ws3 output $output1 VGA-1 workspace $ws4 output $output1 VGA-1 workspace $ws5 output $output1 VGA-1 @@ -101,25 +109,28 @@ workspace $ws8 output $output1 VGA-1 workspace $ws9 output $output1 VGA-1 workspace sunshine output $output1 VGA-1 output $output1 { - position 0 270 - # we need to explicitly select the mode - mode 2560x1440@144Hz - adaptive_sync on + position 0 0 + allow_tearing yes } -set $output2 "Ancor Communications Inc ASUS VH238 BALMIB547836" +set $output2 "Hewlett Packard HP ZR2440w CN44020RJF" workspace $ws1 output $output2 eDP-1 workspace $ws2 output $output2 eDP-1 output $output2 { - position 2560 0 + position 3440 0 transform 270 + max_render_time 5 } set $output3 "Sony SONY TV *30 0x01010101" workspace $ws10 output $output3 output $output3 { mode 3840x2160@120Hz - adaptive_sync on + disable +} + +exec "swaymsg create_output" +output HEADLESS-1 { disable } @@ -160,7 +171,7 @@ input "*" { bindsym $mod+Return exec $terminal # thunar -bindsym $mod+Mod1+Return exec dolphin +bindsym $mod+Mod1+Return exec thunar # kill focused window bindsym $mod+Shift+q kill @@ -252,13 +263,15 @@ 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 -# toggle TV -bindsym $mod+Alt+0 output $output3 toggle +# toggle +bindsym $mod+Alt+0 exec "swaymsg output DP-3 toggle; swaymsg output DP-4 toggle; swaymsg output HDMI-A-6 toggle;" # Assignation -assign [class="^[Ss]lack$"] $ws1 -assign [class="^[Dd]iscord$"] $ws1 -#assign [class="^looking-glass-client$"] $ws3 +assign { + [app_id="[Dd]iscord"] $ws1 + [title="Microsoft Teams$"] $ws1 + [class="steam"] $ws4 +} # screen # workspace $ws1 output HDMI-A-2 @@ -319,6 +332,9 @@ mode "resize" { bindsym $mod+r mode "resize" ### Startup +# setup theme +exec_always import-gsettings + # reach systemd target exec /bin/systemctl --user import-environment exec /bin/systemctl --user start sway-session.target diff --git a/home/dot_config/systemd/user/swayidle.service b/home/dot_config/systemd/user/swayidle.service index da3632e..a5fcc03 100644 --- a/home/dot_config/systemd/user/swayidle.service +++ b/home/dot_config/systemd/user/swayidle.service @@ -6,7 +6,7 @@ PartOf=graphical-session.target [Service] Type=simple ExecStart=/usr/bin/swayidle -w \ - timeout 1200 'echo RELOADAGENT | gpg-connect-agent; swaylock -f' \ + timeout 1800 'echo RELOADAGENT | gpg-connect-agent; swaylock -f' \ timeout 600 'swaymsg "output * dpms off"' \ resume 'swaymsg "output * dpms on"' \ before-sleep 'echo RELOADAGENT | gpg-connect-agent; swaylock -f' diff --git a/home/dot_config/waybar/config b/home/dot_config/waybar/config index a47f5fb..842c49d 100644 --- a/home/dot_config/waybar/config +++ b/home/dot_config/waybar/config @@ -1,7 +1,8 @@ { "layer": "top", // Waybar at top layer - // "position": "bottom", // Waybar position (top|bottom|left|right) + "position": "bottom", // Waybar position (top|bottom|left|right) "height": 23, // Waybar height (to be removed for auto height) + "output": ["DP-3", "HDMI-A-6", "HEADLESS-1"], // Choose the order of the modules "modules-left": ["sway/workspaces", "sway/mode"], "modules-center": [], @@ -10,7 +11,7 @@ // Modules configuration "sway/workspaces": { "disable-scroll": true, - "all-outputs": false, + "all-outputs": true, "format": "{name}" }, "sway/mode": { diff --git a/home/dot_config/waybar/style.css b/home/dot_config/waybar/style.css index 96419c8..adc238f 100644 --- a/home/dot_config/waybar/style.css +++ b/home/dot_config/waybar/style.css @@ -26,8 +26,11 @@ label, button { font-weight: 900; } -#custom-spotify, #clock, #battery, #cpu, #memory, #temperature, #backlight, #network, #pulseaudio, #custom-vpn { +#custom-spotify, #clock, #battery, #network, #cpu, #memory, #temperature, #backlight, #pulseaudio, #custom-vpn { padding: 0 10px; +/* + margin-left: 15px +*/ border-left: 1px dotted #ebdbb2; border-radius: 6.5px; } @@ -42,6 +45,37 @@ label, button { color: white; } +/* +#clock { + color: #66899d; + border-bottom: 2px solid #66899d; +} + +#network { + color: #527c77; + border-bottom: 2px solid #527c77; +} + +#cpu { + color: #919652; + border-bottom: 2px solid #919652; +} + +#memory { + color: #8d6494; + border-bottom: 2px solid #8d6494; +} + +#pulseaudio { + color: #b04c50; + border-bottom: 2px solid #b04c50; +} + +#custom-vpn { + border-left: 1px dotted #ebdbb2; + border-radius: 6.5px; +} +*/ #tray { margin-left: 5px; font-family: sans-serif; diff --git a/home/dot_gtkrc-2.0 b/home/dot_gtkrc-2.0 index 876298f..e3db747 100644 --- a/home/dot_gtkrc-2.0 +++ b/home/dot_gtkrc-2.0 @@ -2,8 +2,8 @@ # Any customization should be done in ~/.gtkrc-2.0.mine instead. include "/home/marchambault/.gtkrc-2.0.mine" -gtk-theme-name="Matcha-aliz" -gtk-icon-theme-name="Mint-Y-Orange" +gtk-theme-name="Orchis-Light" +gtk-icon-theme-name="Tela-circle" gtk-font-name="Cantarell 11" gtk-cursor-theme-name="Breeze_Light" gtk-cursor-theme-size=0 @@ -16,3 +16,4 @@ gtk-enable-input-feedback-sounds=1 gtk-xft-antialias=1 gtk-xft-hinting=1 gtk-xft-hintstyle="hintfull" +gtk-xft-rgba="none" diff --git a/home/dot_local/bin/executable_gamemode-start b/home/dot_local/bin/executable_gamemode-start index 50ffa3c..f7184f6 100644 --- a/home/dot_local/bin/executable_gamemode-start +++ b/home/dot_local/bin/executable_gamemode-start @@ -1,6 +1,11 @@ #!/bin/bash xrandr --output "$(xrandr | grep '+0+' | grep -Eo '^DP-[0-9]')" --primary +#swaymsg 'output "DP-4" disable' +#swaymsg 'output * adaptive_sync on' + +#systemctl --user stop gammastep +sudo systemctl stop docker.service + +sudo bash -c 'echo high >/sys/class/drm/card2/device/power_dpm_force_performance_level' -systemctl --user stop gammastep -sudo systemctl stop docker.service docker.socket diff --git a/home/dot_local/bin/executable_gamemode-stop b/home/dot_local/bin/executable_gamemode-stop index cfd6b8b..ab782f4 100644 --- a/home/dot_local/bin/executable_gamemode-stop +++ b/home/dot_local/bin/executable_gamemode-stop @@ -1,5 +1,10 @@ #!/bin/bash -systemctl --user start gammastep +swaymsg 'output "DP-4" enable' +swaymsg 'output * adaptive_sync off' + +#systemctl --user start gammastep sudo systemctl start docker +sudo bash -c 'echo auto >/sys/class/drm/card2/device/power_dpm_force_performance_level' + diff --git a/home/dot_local/bin/executable_sunshine-prepare b/home/dot_local/bin/executable_sunshine-prepare index a946c78..b18456f 100644 --- a/home/dot_local/bin/executable_sunshine-prepare +++ b/home/dot_local/bin/executable_sunshine-prepare @@ -1,6 +1,11 @@ #!/bin/bash +width="${SUNSHINE_CLIENT_WIDTH:-1920}" +height="${SUNSHINE_CLIENT_HEIGHT:-1080}" +fps="${SUNSHINE_CLIENT_FPS:-60}" + pkill --signal SIGUSR1 swaylock -xrandr --output DP-4 --primary -swaymsg output HDMI-A-2 disable -swaymsg workspace sunshine +swaymsg output '*' disable +# steam deck is 16:10 +swaymsg output HEADLESS-1 mode "$width"x"$height"@"$fps"Hz position 0 0 transform 0 enable +swaymsg workspace 4 diff --git a/home/dot_local/bin/executable_sunshine-restore b/home/dot_local/bin/executable_sunshine-restore index 58f9be2..7e379ae 100644 --- a/home/dot_local/bin/executable_sunshine-restore +++ b/home/dot_local/bin/executable_sunshine-restore @@ -1,5 +1,4 @@ #!/bin/bash - -swaymsg output HDMI-A-2 enable -swaymsg workspace back_and_forth + +swaymsg reload diff --git a/home/dot_local/bin/executable_sway b/home/dot_local/bin/executable_sway index 424fcb7..64daa62 100644 --- a/home/dot_local/bin/executable_sway +++ b/home/dot_local/bin/executable_sway @@ -1,24 +1,30 @@ #!/bin/bash import-gsettings() { - # usage: import-gsettings : : ... - expression="" - for pair in "$@"; do - IFS=:; set -- $pair - expressions="$expressions -e 's:^$2=(.*)$:gsettings set org.gnome.desktop.interface $1 \1:e'" - done - IFS= - eval sed -E $expressions "${XDG_CONFIG_HOME:-$HOME/.config}"/gtk-3.0/settings.ini >/dev/null + # usage: import-gsettings + config="${XDG_CONFIG_HOME:-$HOME/.config}/gtk-3.0/settings.ini" + if [ ! -f "$config" ]; then exit 1; fi + + gnome_schema="org.gnome.desktop.interface" + gtk_theme="$(grep 'gtk-theme-name' "$config" | sed 's/.*\s*=\s*//')" + icon_theme="$(grep 'gtk-icon-theme-name' "$config" | sed 's/.*\s*=\s*//')" + cursor_theme="$(grep 'gtk-cursor-theme-name' "$config" | sed 's/.*\s*=\s*//')" + font_name="$(grep 'gtk-font-name' "$config" | sed 's/.*\s*=\s*//')" + gsettings set "$gnome_schema" gtk-theme "$gtk_theme" + gsettings set "$gnome_schema" icon-theme "$icon_theme" + gsettings set "$gnome_schema" cursor-theme "$cursor_theme" + gsettings set "$gnome_schema" font-name "$font_name" } +WLR_RENDERER=vulkan # list DRM device priority -# Set intel graphics as lowest priority +# Set intel graphics as high priority # https://github.com/swaywm/sway/wiki#i-have-a-multi-gpu-setup-like-intelnvidia-or-intelamd-and-sway-does-not-start export WLR_DRM_DEVICES="$(drm_info -j | jq --raw-output 'to_entries[] | [if .value.driver.desc == "Intel Graphics" then 1 else 0 end, .key] | @tsv' | sort | awk '{printf "%s:", $2}' | sed -e 's/:$//')" # temporary fix # # https://github.com/swaywm/sway/issues/4763 -export WLR_DRM_NO_ATOMIC=1 +#export WLR_DRM_NO_ATOMIC=1 # disable hardware cursor (cause mouse to stutter on my setup) #export WLR_NO_HARDWARE_CURSORS=1 @@ -28,17 +34,15 @@ export XDG_SESSION_TYPE=wayland # Qt #export DESKTOP_SESSION=gnome #export QT_STYLE_OVERRIDE=gtk -#export QT_QPA_PLATFORMTHEME=gtk2 +export QT_QPA_PLATFORMTHEME=gtk3 export QT_AUTO_SCREEN_SCALE_FACTOR=0 #export QT_QPA_PLATFORM=wayland-egl export QT_WAYLAND_DISABLE_WINDOWDECORATION=1 # GTK export CLUTTER_BACKEND=wayland -import-gsettings \ - gtk-theme:gtk-theme-name \ - icon-theme:gtk-icon-theme-name \ - cursor-theme:gtk-cursor-theme-name +export GTK_THEME=Orchis +import-gsettings # Elementary/EFL export ECORE_EVAS_ENGINE=wayland_egl @@ -54,4 +58,7 @@ export _JAVA_AWT_WM_NONREPARENTING=1 export MOZ_ENABLE_WAYLAND=1 export MOZ_DBUS_REMOTE=1 +# Electron +export ELECTRON_OZONE_PLATFORM_HINT=auto + exec /usr/bin/sway $@ diff --git a/home/dot_vim/vimrc b/home/dot_vim/vimrc index da67acf..fbdb45b 100644 --- a/home/dot_vim/vimrc +++ b/home/dot_vim/vimrc @@ -31,7 +31,7 @@ set updatetime=500 set ignorecase set smartcase " Clipboard -set clipboard^=unnamed,unnamedplus +"set clipboard^=unnamed,unnamedplus " Remap arrow keys noremap @@ -49,62 +49,72 @@ augroup resCur augroup END " Plugins -let deinpath=$HOME.'/.vim/bundle/repos/github.com/Shougo/dein.vim' -let pluginpath=$HOME.'/.vim/bundle' -let &rtp.=','.deinpath - -if dein#load_state(pluginpath) - call dein#begin(pluginpath) - - "call dein#add(deinpath) - call dein#add('tpope/vim-sensible') - - " Colorscheme - call dein#add('https://git.sr.ht/~ackyshake/spacegray.vim') - - " Interface - call dein#add('itchyny/lightline.vim') - call dein#add('mgee/lightline-bufferline') - call dein#add('ryanoasis/vim-devicons') - call dein#add('airblade/vim-gitgutter') - call dein#add('scrooloose/nerdtree') - call dein#add('Yggdroot/indentLine') - - " Movement - call dein#add('christoomey/vim-tmux-navigator') - "call dein#add('easymotion/vim-easymotion') - call dein#add('unblevable/quick-scope') - - " Tools / Commands - call dein#add('tpope/vim-surround') - call dein#add('jiangmiao/auto-pairs') - call dein#add('tpope/vim-endwise') - "call dein#add('chrisbra/unicode.vim') - call dein#add('ctrlpvim/ctrlp.vim') - "call dein#add('junegunn/fzf.vim') - call dein#add('tpope/vim-obsession') - - " Linting / Completion - call dein#add('w0rp/ale') - call dein#add('Shougo/deoplete.nvim') - call dein#add('ervandew/supertab') - call dein#add('autozimu/LanguageClient-neovim', { 'rev': 'next', 'build': 'bash install.sh'}) - - " Language - call dein#add('sheerun/vim-polyglot') - - call dein#end() - call dein#save_state() +" Install vim-plug if not found +if empty(glob('~/.vim/autoload/plug.vim')) + silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs + \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim endif +" Run PlugInstall if there are missing plugins +autocmd VimEnter * if len(filter(values(g:plugs), '!isdirectory(v:val.dir)')) + \| PlugInstall --sync | source $MYVIMRC +\| endif + +call plug#begin() +Plug 'tpope/vim-sensible' + +" Colorscheme +Plug 'https://git.sr.ht/~ackyshake/spacegray.vim' + +" Interface +Plug 'itchyny/lightline.vim' +Plug 'mgee/lightline-bufferline' +Plug 'ryanoasis/vim-devicons' +Plug 'airblade/vim-gitgutter' +Plug 'scrooloose/nerdtree' +Plug 'Yggdroot/indentLine' + +" Movement +Plug 'christoomey/vim-tmux-navigator' +"Plug 'easymotion/vim-easymotion' +Plug 'unblevable/quick-scope' + +" Tools / Commands +Plug 'tpope/vim-surround' +Plug 'jiangmiao/auto-pairs' +Plug 'tpope/vim-endwise' +"Plug'chrisbra/unicode.vim' +Plug 'ctrlpvim/ctrlp.vim' +"Plug 'junegunn/fzf.vim' +Plug 'tpope/vim-obsession' + +" Linting / Completion +Plug 'w0rp/ale' +Plug 'ervandew/supertab' +Plug 'neoclide/coc.nvim', {'branch': 'release'} +if has('nvim') + Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } +else + Plug 'Shougo/deoplete.nvim' + Plug 'roxma/nvim-yarp' + Plug 'roxma/vim-hug-neovim-rpc' +endif +Plug 'neoclide/coc-tsserver', {'do': 'yarn install --frozen-lockfile'} +Plug 'neoclide/coc-json', {'do': 'yarn install --frozen-lockfile'} +Plug 'neoclide/coc-yaml', {'do': 'yarn install --frozen-lockfile'} +Plug 'josa42/coc-sh', {'do': 'yarn install --frozen-lockfile'} +Plug 'josa42/coc-go', {'do': 'yarn install --frozen-lockfile'} +Plug 'josa42/coc-docker', {'do': 'yarn install --frozen-lockfile'} +Plug 'yaegassy/coc-pylsp', {'do': 'yarn install --frozen-lockfile'} + +" Language +Plug 'sheerun/vim-polyglot' + +call plug#end() + filetype plugin indent on syntax enable -" Automatically install plugins -if dein#check_install() - call dein#install() -endif - " Color scheme colorscheme spacegray " 16 millions colors @@ -118,19 +128,7 @@ set t_ZH= set t_ZR= " deoplete -let g:deoplete#enable_at_startup = 1 - -" LanguageClient -set hidden -let g:LanguageClient_serverCommands = { - \ 'python': ['/usr/bin/pyls'], - \ 'sh': ['bash-language-server', 'start'], - \ 'terraform': ['/usr/bin/terraform-lsp'], - \ 'yaml': ['/usr/bin/yaml-language-server'], - \ } -nnoremap K :call LanguageClient#textDocument_hover() -nnoremap :call LanguageClient#textDocument_definition() -nnoremap :call LanguageClient#textDocument_rename() +"let g:deoplete#enable_at_startup = 1 " supertab let g:SuperTabDefaultCompletionType = "" diff --git a/home/dot_zshrc b/home/dot_zshrc index 00a52bd..f36035e 100644 --- a/home/dot_zshrc +++ b/home/dot_zshrc @@ -1,5 +1,5 @@ # If you come from bash you might have to change your $PATH. -# export PATH=$HOME/bin:/usr/local/bin:$PATH +export PATH=$HOME/go/bin:$HOME/bin:/usr/local/bin:$PATH # Path to your oh-my-zsh installation. export ZSH="$HOME/.config/zsh/oh-my-zsh/" @@ -86,3 +86,6 @@ source $ZSH/oh-my-zsh.sh # Example aliases # alias zshconfig="mate ~/.zshrc" # alias ohmyzsh="mate ~/.oh-my-zsh" +export PYENV_ROOT="$HOME/.pyenv" +[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH" +eval "$(pyenv init -)"