diff --git a/.config/dwm/autostart.sh b/.config/dwm/autostart.sh index 1841dfd..bc3ac26 100755 --- a/.config/dwm/autostart.sh +++ b/.config/dwm/autostart.sh @@ -5,6 +5,7 @@ picom & nitrogen --restore & $HOME/.scripts/launch-conky_dwm.sh & sxhkd -c $HOME/.config/sxhkd/dwm & +easyeffects --gapplication-service & if [ x$(pidof dwmblocks) = "x" ] then dwmblocks & diff --git a/.config/eww/eww.yuck b/.config/eww/eww.yuck new file mode 100644 index 0000000..d57cfab --- /dev/null +++ b/.config/eww/eww.yuck @@ -0,0 +1,52 @@ +;; Listeners +(deflisten active-workspace + `stdbuf -oL $HOME/.local/bin/scripts/eww-hyprland-active-workspace-listener`) + +(deflisten workspace-list :initial '[1]' + `stdbuf -oL $HOME/.local/bin/scripts/eww-hyprland-workspace-list-listener`) + +(deflisten datetime + `stdbuf -oL $HOME/.local/bin/scripts/eww-datetime-listener`) + +;; Windows +(defwindow bar + :monitor 0 + :stacking "fg" + :exclusive true + :geometry (geometry :width "100%" :height "28px" :anchor "top center") + (bar)) + +(defwidget bar [] + (centerbox + (start) + (middle) + (end))) + +(defwidget start [] + (workspaces)) + +(defwidget middle [] + (label :text "test")) + +(defwidget end [] + (box :halign "end" + :class "end" + :space-evenly false + (clock))) + +(defwidget workspaces [] + (box :class "workspaces" + :space-evenly false + (for id in workspace-list + (button :class {active-workspace == id ? "active" : ""} + :onclick `hyprctl dispatch workspace ${id}` + id)))) + +(defwidget clock [] + (pair :icon "a" :text {datetime.full}))) + +(defwidget pair [icon text] + (box :width 70 + :space-evenly false + (label :text icon) + (label :text text))) diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf new file mode 100644 index 0000000..2e04dd8 --- /dev/null +++ b/.config/hypr/hyprland.conf @@ -0,0 +1,148 @@ +exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP +exec-once = xrdb ${XDG_CONFIG_HOME:-$HOME/.config}/Xresources +exec-once = eww daemon && eww open bar +exec-once = unclutter +exec-once = dunst +exec-once = numlockx +exec-once = lxpolkit +exec-once = nitrogen --restore +exec-once = fcitx5 -d +exec-once = xsettingsd & +#exec-once = mpvpaper -vs -o "no-audio loop" VGA-1 /home/ziro/my\ Files/Wallpaper/HoloLive/Torii\ Gate/Torii\ Gate.webm & + +monitor=,preferred,auto,auto + +# For all categories, see https://wiki.hyprland.org/Configuring/Variables/ +input { + kb_layout = us + kb_variant = + kb_model = + kb_options = + kb_rules = + + follow_mouse = 1 + + natural_scroll = yes + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. +} + +general { + gaps_in = 5 + gaps_out = 20 + border_size = 2 + col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg + col.inactive_border = rgba(595959aa) + + layout = dwindle +} + +decoration { + rounding = 5 + blur { + enabled = 1 + size = 3 + passes = 1 + new_optimizations = 1 + } + + drop_shadow = yes + shadow_range = 4 + shadow_render_power = 3 + col.shadow = rgba(1a1a1aee) +} + +animations { + enabled = yes + + bezier = myBezier, 0.05, 1, 0.1, 1 + + animation = windows, 1, 5, myBezier + animation = windowsOut, 1, 6, default, popin 80% + animation = border, 1, 10, default + animation = borderangle, 1, 8, default + animation = fade, 1, 7, default + animation = workspaces, 1, 5, default +} + +dwindle { + pseudotile = on + preserve_split = on + no_gaps_when_only = on +} + +master { + # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more + new_is_master = on +} + +# I don't use Trackpads/Touchpads, gestures basically useless for me (for now) +#gestures { +# # See https://wiki.hyprland.org/Configuring/Variables/ for more +# workspace_swipe = off +#} + +# Seems like spotify spawn act a bit different compared to most process spawn, +# my workaround for now is by creating a shell script, since I use shell script for spotify anyway to inject adblocker it's no problem to me: +# ======================== +# #!/bin/sh +# LD_PRELOAD=/usr/local/lib/spotify-adblock.so $(realpath -L $(which spotify)) --no-zygote --disable-gpu --disable-software-rasterizer & +# sleep 0.5 # wait a bit until spotify ready before toggling off float for spotify +# hyprctl dispatch togglefloating '^(Spotify)$' +# ======================== +#windowrule = unset,^(Spotify)$ +#windowrule = tile,^(Spotify)$ + + # Alt Key = Mostly for terminals only +$mainMod = SUPER # Super Key = General MOD for WM +$metaMod = SUPER ALT # Super + Alt = MOD key(s) that control/modify the WM's behaviour +$spaceMod = SUPER SHIFT # Super + Shift = MOD key(s) that control/modify the Workspace's behaviour + +bind = $mainMod, T, exec, kitty +bind = $mainMod, Q, killactive, +bind = $mainMod, B, exec, $BROWSER +bind = , Print, exec, grim -g "$(slurp)" - | wl-copy +bind = $mainMod, Space, exec, exec `tofi-run` 2>/dev/null +bind = $metaMod, Q, exit, +bind = $metaMod, F, togglefloating, +bind = $metaMod, S, pin, +bind = $metaMod, P, pseudo, # for dwindle only +bind = $metaMod, J, togglesplit, # for dwindle only + +# Window focus +bind = $mainMod, H, movefocus, l +bind = $mainMod, L, movefocus, r +bind = $mainMod, K, movefocus, u +bind = $mainMod, J, movefocus, d + +# Workspace +bind = $mainMod, 1, workspace, 1 +bind = $mainMod, 2, workspace, 2 +bind = $mainMod, 3, workspace, 3 +bind = $mainMod, 4, workspace, 4 +bind = $mainMod, 5, workspace, 5 +bind = $mainMod, 6, workspace, 6 +bind = $mainMod, 7, workspace, 7 +bind = $mainMod, 8, workspace, 8 +bind = $mainMod, 9, workspace, 9 +bind = $mainMod, 0, workspace, 10 + +# Move active window to a workspace with mainMod + SHIFT + [0-9] +bind = $spaceMod, 1, movetoworkspace, 1 +bind = $spaceMod, 2, movetoworkspace, 2 +bind = $spaceMod, 3, movetoworkspace, 3 +bind = $spaceMod, 4, movetoworkspace, 4 +bind = $spaceMod, 5, movetoworkspace, 5 +bind = $spaceMod, 6, movetoworkspace, 6 +bind = $spaceMod, 7, movetoworkspace, 7 +bind = $spaceMod, 8, movetoworkspace, 8 +bind = $spaceMod, 9, movetoworkspace, 9 +bind = $spaceMod, 0, movetoworkspace, 10 + +# Scroll through existing workspaces with mainMod + scroll +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow diff --git a/.config/hypr/hyprpaper.conf b/.config/hypr/hyprpaper.conf new file mode 100644 index 0000000..583be6d --- /dev/null +++ b/.config/hypr/hyprpaper.conf @@ -0,0 +1,2 @@ +preload = ~/my Files/Wallpaper/HoloLive/Torii Gate/preview.jpg +wallpaper = VGA-1,~/my Files/Wallpaper/HoloLive/Torii Gate/preview.jpg diff --git a/.config/paru/paru.conf b/.config/paru/paru.conf new file mode 100644 index 0000000..7539c54 --- /dev/null +++ b/.config/paru/paru.conf @@ -0,0 +1,10 @@ +[bin] +Sudo = doas + +[z] +Url = https://github.com/null2264/pkgbuilds/ + +[zl] +Depth = 2 +SkipReview +Path = /home/ziro/Build/GIT/pkgbuilds/ diff --git a/.config/powershell/profile.ps1 b/.config/powershell/profile.ps1 index 0dc637f..f97491b 100644 --- a/.config/powershell/profile.ps1 +++ b/.config/powershell/profile.ps1 @@ -17,13 +17,6 @@ function UsernameAtComputer } "`e[35;1m" + $username + "`e[0m`e[1m@" + "`e[35;1m" + $compname } -Write-Host " `e[34;1m ,___---'‾‾‾|`e[0m " (UsernameAtComputer) -Write-Host " `e[34;1m|'‾ | | " -Write-Host " `e[34;1m| | |" -Write-Host " `e[34;1m|------|------|" -Write-Host " `e[34;1m| | |" -Write-Host " `e[34;1m|,_ | |" -Write-Host " `e[34;1m '‾‾‾---,___|" # ----- set default color Set-PSReadlineOption -Colors @{ Parameter = "`e[96m"} diff --git a/.config/tdm/default b/.config/tdm/default index 5ef608d..77969e2 120000 --- a/.config/tdm/default +++ b/.config/tdm/default @@ -1 +1 @@ -/home/ziro/.config/tdm/sessions/dwm \ No newline at end of file +/home/ziro/.config/tdm/sessions/Gamescope \ No newline at end of file diff --git a/.config/tofi/config b/.config/tofi/config new file mode 100644 index 0000000..aa3a2cd --- /dev/null +++ b/.config/tofi/config @@ -0,0 +1,10 @@ +width = 100% +height = 100% +border-width = 0 +outline-width = 0 +padding-left = 35% +padding-top = 35% +result-spacing = 25 +num-results = 5 +font = monospace +background-color = #000A diff --git a/.config/vim/vim_plug b/.config/vim/vim_plug index 184f77d..552575a 100644 --- a/.config/vim/vim_plug +++ b/.config/vim/vim_plug @@ -39,7 +39,7 @@ Plug 'ryanoasis/vim-devicons' " ====== " -- Markdown preview, not really useful since it's only support github's md format. -Plug 'iamcco/markdown-preview.nvim', { 'do': 'cd app & yarn install' } +Plug 'iamcco/markdown-preview.nvim', { 'do': { -> mkdp#util#install() }, 'for': ['markdown', 'vim-plug']} " --- Auto complete with NCM2 (nvim-completion-manager) " Plug 'ncm2/ncm2' @@ -62,11 +62,11 @@ Plug 'neovim/nvim-lspconfig' " Plug 'Shougo/ddc-sorter_rank', { 'branch': 'main' } " --- Auto complete with CMP -Plug 'hrsh7th/cmp-nvim-lsp' -Plug 'hrsh7th/cmp-buffer' -Plug 'hrsh7th/cmp-path' -Plug 'hrsh7th/cmp-cmdline' -Plug 'hrsh7th/nvim-cmp' +Plug 'hrsh7th/cmp-nvim-lsp', { 'branch': 'main' } +Plug 'hrsh7th/cmp-buffer', { 'branch': 'main' } +Plug 'hrsh7th/cmp-path', { 'branch': 'main' } +Plug 'hrsh7th/cmp-cmdline', { 'branch': 'main' } +Plug 'hrsh7th/nvim-cmp', { 'branch': 'main' } " --- Indent visualization " Plug 'Yggdroot/indentLine' @@ -78,7 +78,7 @@ Plug 'hrsh7th/nvim-cmp' Plug 'JuliaEditorSupport/julia-vim' " --- enhanced python highlighting -Plug 'numirias/semshi', {'do': ':UpdateRemotePlugins'} +"Plug 'wookayin/semshi', {'do': ':UpdateRemotePlugins'} " --- For golang Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' } @@ -93,6 +93,12 @@ Plug 'wakatime/vim-wakatime' Plug 'GutenYe/json5.vim' +" --- Project Fluent support +Plug 'projectfluent/fluent.vim' + +" --- AIO solution for highlighting +Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} + call plug#end() " ====================== @@ -312,6 +318,7 @@ let g:ale_linters = { lua <"] = cmp.mapping(function(fallback) if cmp.visible() then cmp.select_next_item() - elseif has_words_before() then - cmp.complete() + -- elseif has_words_before() then + -- cmp.complete() else fallback() -- The fallback function sends a already mapped key. In this case, it's probably ``. end @@ -398,9 +405,12 @@ lua < with each lsp server you've enabled. require('lspconfig')['pyright'].setup { capabilities = capabilities } EOF + +" --- TSTree +lua require'nvim-treesitter.configs'.setup{highlight={enable=true}} diff --git a/.config/vim/vim_uni b/.config/vim/vim_uni index 8d30f3d..5d557b0 100644 --- a/.config/vim/vim_uni +++ b/.config/vim/vim_uni @@ -52,10 +52,9 @@ noremap "+y noremap "+P " Shortcut to comment a line -" means ctrl+/ for vim, for some reason... -map gcc -vmap gc -imap gc +map gcc +vmap gc +imap gc " Clear last search result map c :noh @@ -94,8 +93,9 @@ autocmd BufEnter *.py set ai sw=4 ts=4 sta et fo=croql autocmd BufEnter *.c set ai sw=4 ts=4 sta noet fo=croql autocmd BufEnter *.md set ai sw=3 ts=3 sta et fo=croql autocmd Filetype html* set ai sw=4 ts=4 sta et fo=croql -autocmd Filetype css set ai sw=4 ts=4 sta et fo=croql -autocmd Filetype javascript set ai sw=4 ts=4 sta et fo=croql +autocmd Filetype *css set ai sw=4 ts=4 sta et fo=croql +autocmd Filetype javascript* set ai sw=4 ts=4 sta et fo=croql +autocmd Filetype json set ai sw=4 ts=4 sta et fo=croql autocmd Filetype vue set ai sw=4 ts=4 sta et fo=croql autocmd Filetype php set ai sw=4 ts=4 sta et fo=croql diff --git a/.config/vim/vimrc b/.config/vim/vimrc index d4c768b..77496bd 100755 --- a/.config/vim/vimrc +++ b/.config/vim/vimrc @@ -26,17 +26,18 @@ " Automatically source config for the correct OS " NOTE: By default the directory of Windows config will be located on " "C:\_config\vim" + if has('win64') || has('win32') || has('win16') - " Windows - so C:\_config\vim\vim_win - " Universal - so C:\_config\vim\vim_uni + let $ZVIM_CONFIG_DIR = "C:/_config/vim" + let $ZVIM_OS_TYPE = "win" else - " *nix (Linux/Mac) - so ~/.config/vim/vim_nix - " Universal - so ~/.config/vim/vim_uni + let $ZVIM_CONFIG_DIR = "~/.config/vim" + let $ZVIM_OS_TYPE = "nix" endif -" ----- PlugIns -source ~/.config/vim/vim_plug +so $ZVIM_CONFIG_DIR/vim_$ZVIM_OS_TYPE +so $ZVIM_CONFIG_DIR/vim_uni + +if !exists('g:vscode') + source $ZVIM_CONFIG_DIR/vim_plug +endif diff --git a/.config/waybar/config b/.config/waybar/config new file mode 100644 index 0000000..e99e0f4 --- /dev/null +++ b/.config/waybar/config @@ -0,0 +1,92 @@ +{ + "layer": "top", + "height": 28, // Waybar height (to be removed for auto height) + "spacing": 0, // Gaps between modules (4px) + "modules-left": ["hyprland/workspaces", "custom/media"], + "modules-center": ["hyprland/window"], + "modules-right": ["idle_inhibitor", "pulseaudio", "network", "disk", "memory", "temperature", "clock", "tray"], + "hyprland/workspaces": { + "format": "{id}", + "on-click": "activate", + "sort-by": "number" + }, + "keyboard-state": { + "numlock": true, + "capslock": true, + "format": "{name} {icon}", + "format-icons": { + "locked": "", + "unlocked": "" + } + }, + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "", + "deactivated": "" + } + }, + "disk": { + "interval": 30, + "format": "{free} free 󰋊" + }, + "tray": { + // "icon-size": 21, + "spacing": 10 + }, + "clock": { + // "timezone": "America/New_York", + "tooltip-format": "{:%Y %B}\n{calendar}", + "format": "{:%a, %d %b %Y • %H:%M %Z} 󰥔", + "format-alt": "{:%Y-%m-%d} 󰥔" + }, + "memory": { + "format": "{}% 󰍛" + }, + "temperature": { + // "thermal-zone": 2, + // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input", + "critical-threshold": 80, + // "format-critical": "{temperatureC}°C {icon}", + "format": "{temperatureC}°C {icon}", + "format-icons": ["󱃃", "󰔏", "󱃂"] + }, + "network": { + // "interface": "wlp2*", // (Optional) To force the use of this interface + "format-wifi": "{essid} ({signalStrength}%) 󰤨", + "format-ethernet": "󰌘", + "tooltip-format": "{ifname} via {gwaddr}", + "format-linked": "󰌚", + "format-disconnected": "󰌙", + "format-alt": "{ipaddr}/{cidr} 󰌘" + }, + "pulseaudio": { + // "scroll-step": 1, // %, can be a float + "format": "{volume}% {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} {}", + "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 + } +} diff --git a/.config/waybar/style.css b/.config/waybar/style.css new file mode 100644 index 0000000..eba8cc2 --- /dev/null +++ b/.config/waybar/style.css @@ -0,0 +1,62 @@ +* { + font-family: Sarasa Term J, Iosevka Nerd Font, monoscope; + font-weight: bold; +} + +window#waybar { + background-color: rgba(43, 48, 59, 0.5); + color: #ffffff; + transition-property: background-color; + transition-duration: .5s; +} + +#workspaces { + background-color: #0E1418; + border-radius: 6px; +} + +#workspaces button { + padding: 0 5px; + background-color: transparent; + color: #ffffff; + border-radius: 6px; + border-bottom: 3px solid transparent; +} + +#workspaces button:hover { + background: #2c363d; + border-bottom: 3px solid #FFF; +} + +#workspaces button.active { + border-bottom: 3px solid #08A5DE; +} + +#workspaces button.urgent { + background-color: #eb4d4b; +} + +#clock, +#battery, +#cpu, +#memory, +#disk, +#temperature, +#backlight, +#network, +#pulseaudio, +#wireplumber, +#custom-media, +#tray, +#mode, +#idle_inhibitor, +#scratchpad, +#mpd { + padding: 0 10px; + color: #ffffff; +} + +box.modules-right { + background-color: #0E1418; + border-radius: 6px; +} diff --git a/.config/xprofile b/.config/xprofile index 91ed4d0..4e839bc 100644 --- a/.config/xprofile +++ b/.config/xprofile @@ -12,13 +12,17 @@ if [[ "$OSTYPE" == "linux-gnu" ]]; then # Slow app startup fix (for flatpaks) dbus-update-activation-environment --systemd DBUS_SESSION_BUS_ADDRESS DISPLAY XAUTHORITY - # Universal Autostarts - # fcitx5 -d & - xrdb ${XDG_CONFIG_HOME:-$HOME/.config}/Xresources & - unclutter & - dunst & - numlockx & - lxpolkit & + if [[ "1$(pidof dwm)" == "1" ]]; then + echo + else + # Autostarts for DWM + # fcitx5 -d & + xrdb ${XDG_CONFIG_HOME:-$HOME/.config}/Xresources & + unclutter & + dunst & + numlockx & + lxpolkit & + fi # Custom Resolutions xrandr --newmode "768x432" 25.75 768 792 864 960 432 435 440 450 -hsync +vsync diff --git a/.config/zsh/.zshenv b/.config/zsh/.zshenv index 7013f87..0aec33b 100644 --- a/.config/zsh/.zshenv +++ b/.config/zsh/.zshenv @@ -2,34 +2,66 @@ # -- XDG export XDG_CACHE_HOME="$HOME/.cache" export XDG_DATA_HOME="$HOME/.local/share" +export XDG_STATE_HOME="$HOME/.local/state" export XDG_CONFIG_HOME="$HOME/.config" if [[ "$OSTYPE" == "darwin"* ]]; then export JAVA_HOME="$HOME/.sdkman/candidates/java/current" + export CHROME_EXECUTABLE=/Applications/Brave\ Browser.app/Contents/MacOS/Brave\ Browser else export JAVA_HOME="/usr/lib/jvm/java-11-openjdk" + + # Android stuff + export ANDROID_SDK_ROOT="${XDG_CONFIG_HOME:-$HOME/.config}/android/Android/Sdk" + export ANDROID_PREFS_ROOT="${XDG_CONFIG_HOME:-$HOME/.config}/android/Android/Sdk" + export ANDROID_HOME="${XDG_CONFIG_HOME:-$HOME/.config}/android/Android/Sdk" + export ANDROID_AVD_HOME="${XDG_CONFIG_HOME:-$HOME/.config}/android/.android/avd" fi -# Android stuff -export ANDROID_SDK_ROOT="${XDG_CONFIG_HOME:-$HOME/.config}/android/Android/Sdk" -export ANDROID_PREFS_ROOT="${XDG_CONFIG_HOME:-$HOME/.config}/android/Android/Sdk" -export ANDROID_HOME="${XDG_CONFIG_HOME:-$HOME/.config}/android/Android/Sdk" -export ANDROID_AVD_HOME="${XDG_CONFIG_HOME:-$HOME/.config}/android/.android/avd" +# -- Wayland +if [[ "$XDG_SESSION_TYPE" == "wayland" ]]; then + export MOZ_ENABLE_WAYLAND=1 +fi + +# -- Python +if [[ "$OSTYPE" == "darwin"* ]]; then + export PYTHONNOUSERSITE=1 +fi # -- Path +export BUN_INSTALL="$HOME/.bun" if [[ "$OSTYPE" == "darwin"* ]]; then + export PYTHONPATH="$HOME/Library/Python/3.10/lib:$PYTHONPATH" LOCAL_PATH=$(du "$HOME/.local/bin/" | cut -f2 > /tmp/path && paste -sd ':' /tmp/path) + LOCAL_PATH="$HOME/Library/Python/3.10/bin:$LOCAL_PATH" elif [[ "$OSTYPE" == "linux-gnu" ]]; then LOCAL_PATH="$(du "$HOME/.local/bin/" | cut -f2 | paste -sd ':')${PATH:+:${PATH}}" fi -PATH="$HOME/.local/share/go/bin:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_AVD_HOME:$HOME/.local/share/npm/bin:$HOME/.local/share/cargo/bin:$LOCAL_PATH${PATH:+:${PATH}}" +PATH="$BUN_INSTALL/bin:$HOME/.pub-cache/bin:$HOME/.local/share/go/bin:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_AVD_HOME:$HOME/.local/share/npm/bin:$HOME/.local/share/cargo/bin:$LOCAL_PATH${PATH:+:${PATH}}" # export RUST_SRC_PATH=$(rustc --print sysroot)/lib/rustlib/src/rust/library # -- IBus stuff (IME) -export GTK_IM_MODULE="ibus" -export QT_IM_MODULE="ibus" -export GLFW_IM_MODULE="ibus" -export XMODIFIERS=@im="ibus" +if [[ "$XDG_SESSION_TYPE" != "wayland" ]]; then + export GTK_IM_MODULE="ibus" + export QT_IM_MODULE="ibus" + export GLFW_IM_MODULE="ibus" + export XMODIFIERS=@im="ibus" +fi + +# -- rootless docker +if [[ "$OSTYPE" == "darwin"* ]]; then + export DOCKER_HOST=unix:///var/run/docker.sock +elif [[ "$OSTYPE" == "linux-gnu" ]]; then + export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/docker.sock +fi + +# -- Proxy +# export HTTP_PROXY="127.0.0.1:8080" +# export HTTPS_PROXY="$HTTP_PROXY" +# export FTP_PROXY="$HTTP_PROXY" +# export http_proxy="$HTTP_PROXY" +# export https_proxy="$HTTP_PROXY" +# export ftp_proxy="$HTTP_PROXY" # -- DEFAULT export QT_QPA_PLATFORMTHEME="qt5ct" @@ -40,17 +72,17 @@ else export VISUAL="nvim" export EDITOR="nvim" fi -export BROWSER="librewolf" +export BROWSER="pulse-browser" export TERMINAL="kitty" export READER="zathura" export HTTPS="localhost:9050" export GOOGLE_APPLICATION_CREDENTIALS="$HOME/Downloads/youtube-9ab71578c563.json" # vim/nvim as manpager -if [[ "$OSTYPE" == "linux-gnu" ]]; then - export MANPAGER="nvimpager" +# if [[ "$OSTYPE" == "linux-gnu" ]]; then + # export MANPAGER="nvimpager" # export MANPAGER="/bin/sh -c \"col -b | vim --not-a-term -c 'set ft=man ts=8 nomod nolist noma' -\"" -fi +# fi # -- Wine problem workaround # - NOTE to self: this will prevent some (probably wine issue) games from launching diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc index 04f7bcc..5213d07 100644 --- a/.config/zsh/.zshrc +++ b/.config/zsh/.zshrc @@ -9,11 +9,12 @@ # rateUSD | sed 's/^/ /g' setopt auto_cd # auto cd if directory + # highlight on tab (completion) [ -f ~/.config/zsh/completion ] && source ~/.config/zsh/completion # zstyle ':completion:*:*:git:*' script /usr/local/etc/bash_completion.d/git-completion.bash # fpath=(/usr/local/share/zsh-completions $fpath) -# autoload -U compinit && compinit +# autoload -U compinit && compinit -u # zmodload -i zsh/complist # zstyle ':completion:*' menu select @@ -58,3 +59,7 @@ if [[ "$OSTYPE" == "darwin"* ]]; then export SDKMAN_DIR="$HOME/.sdkman" [[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh" fi +export PATH=$PATH:/home/ziro/.spicetify + +# bun completions +[ -s "/home/ziro/.bun/_bun" ] && source "/home/ziro/.bun/_bun" diff --git a/.config/zsh/aliases b/.config/zsh/aliases index 8b4f558..472debb 100644 --- a/.config/zsh/aliases +++ b/.config/zsh/aliases @@ -1,5 +1,12 @@ #!/usr/bin/env bash +if [[ "$OSTYPE" == "darwin"* ]]; then + # i need sudo to launch emulator + alias pixelemu="sudo $HOME/Library/Android/sdk/emulator/emulator @Pixel_2_API_28" + alias mbrew="sudo -H -u maintenance -g staff brew" +fi + +alias punten='doas' #sudo + vim without sacrificing config alias sudovim='sudoedit' alias doasvim='doasedit' @@ -32,8 +39,8 @@ alias p='doas pacman' alias a='paru' #ripper -alias yt='youtube-dl --add-metadata' -alias yta='youtube-dl --add-metadata -x --audio-format' +alias yt='yt-dlp --add-metadata' +alias yta='yt-dlp --add-metadata -x --audio-format' alias xreload='xrdb $HOME/.config/Xresources' #clean up @@ -121,3 +128,5 @@ alias qn='vim $HOME/Documents/QuickNote' alias docx2pdf='lowriter --convert-to pdf' alias mirror-update='curl -s "https://archlinux.org/mirrorlist/?country=ID&country=SG&country=US&protocol=https&use_mirror_status=on" | sed -e 's/^#Server/Server/' -e '/^#/d' | rankmirrors -n 5 -' +alias center-pfetch="printf '\n'; pfetch | sed '\$d' | center -l" +[ "$TERM" = "xterm-kitty" ] && alias ssh="kitty +kitten ssh" diff --git a/.config/zsh/completion b/.config/zsh/completion index 3392dc6..100100e 100644 --- a/.config/zsh/completion +++ b/.config/zsh/completion @@ -1,7 +1,16 @@ # vim: filetype=zsh zstyle ':completion:*:*:git:*' script /usr/local/etc/bash_completion.d/git-completion.bash fpath=(/usr/local/share/zsh-completions $fpath) -autoload -U compinit && compinit + +autoload -Uz compinit + +if [[ "$OSTYPE" == "darwin"* ]]; then + FPATH="$(brew --prefix)/share/zsh/site-functions:${FPATH}" + compinit -u # homebrew moment, not recommended but whatever +else + compinit +fi + zmodload -i zsh/complist zstyle ':completion:*' menu select diff --git a/.config/zsh/theme b/.config/zsh/theme index 51bd1d4..26e4a63 100644 --- a/.config/zsh/theme +++ b/.config/zsh/theme @@ -30,12 +30,32 @@ function zle-line-init zle-keymap-select { PS2="%B%F{blue}?>%f%b " # RPS1="${${KEYMAP/vicmd/-- NORMAL --}/(main|viins)/-- INSERT --}" # RPS2=$RPS1 + + if [[ ${KEYMAP} == vicmd ]] || + [[ $1 = 'block' ]]; then + echo -ne '\e[1 q' + + elif [[ ${KEYMAP} == main ]] || + [[ ${KEYMAP} == viins ]] || + [[ ${KEYMAP} = '' ]] || + [[ $1 = 'beam' ]]; then + echo -ne '\e[5 q' + fi + zle reset-prompt } zle -N zle-line-init zle -N zle-keymap-select -precmd () { vcs_info } +_fix_cursor() { + echo -ne '\e[5 q' +} + +precmd () { + RPROMPT="" # for some reason path added to RPROMPT in macOS, I have no idea where it's coming from + vcs_info + _fix_cursor +} #RPROMPT=\$vcs_info_msg_0_ ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#60C0FF,bold,underline" ZSH_AUTOSUGGEST_HISTORY_IGNORE="ls *,cd *"