diff --git a/.config/Code/User/keybindings.json b/.config/Code/User/keybindings.json index 9fab160..24d2508 100644 --- a/.config/Code/User/keybindings.json +++ b/.config/Code/User/keybindings.json @@ -417,4 +417,18 @@ "command": "-workbench.action.navigateForward", "when": "canNavigateForward" }, + { + "key": "ctrl+i", + "command": "-workbench.action.chat.startVoiceChat", + "when": "chatIsEnabled && hasSpeechProvider && inChatInput && !editorFocus && !notebookEditorFocused && !scopedVoiceChatGettingReady && !speechToTextInProgress || chatIsEnabled && hasSpeechProvider && inlineChatFocused && !editorFocus && !notebookEditorFocused && !scopedVoiceChatGettingReady && !speechToTextInProgress" + }, + { + "key": "ctrl+i", + "command": "-workbench.action.chat.stopListeningAndSubmit", + "when": "inChatInput && voiceChatInProgress && scopedVoiceChatInProgress == 'editor' || inChatInput && voiceChatInProgress && scopedVoiceChatInProgress == 'inline' || inChatInput && voiceChatInProgress && scopedVoiceChatInProgress == 'quick' || inChatInput && voiceChatInProgress && scopedVoiceChatInProgress == 'view' || inlineChatFocused && voiceChatInProgress && scopedVoiceChatInProgress == 'editor' || inlineChatFocused && voiceChatInProgress && scopedVoiceChatInProgress == 'inline' || inlineChatFocused && voiceChatInProgress && scopedVoiceChatInProgress == 'quick' || inlineChatFocused && voiceChatInProgress && scopedVoiceChatInProgress == 'view'" + }, + { + "key": "ctrl+i", + "command": "workbench.action.openChatToSide" + }, ] \ No newline at end of file diff --git a/.config/Code/User/settings.json b/.config/Code/User/settings.json index 6f9bd01..3b642bf 100644 --- a/.config/Code/User/settings.json +++ b/.config/Code/User/settings.json @@ -117,16 +117,20 @@ "git.blame.editorDecoration.enabled": true, "python.analysis.typeCheckingMode": "basic", "workbench.editor.empty.hint": "hidden", - "python.defaultInterpreterPath": "/home/paul/.pyenv/versions/3.12.5/envs/wasteside-tools", + "python.defaultInterpreterPath": "", "editor.lineNumbers": "relative", "github.copilot.nextEditSuggestions.enabled": true, "json.schemaDownload.trustedDomains": { - "https://schemastore.azurewebsites.net/": true, - "https://raw.githubusercontent.com/": true, - "https://www.schemastore.org/": true, - "https://json.schemastore.org/": true, + "https://developer.microsoft.com/json-schemas/": true, "https://json-schema.org/": true, - "https://vicinae.com/schemas/config.json": true + "https://json.schemastore.org/": true, + "https://raw.githubusercontent.com/": true, + "https://raw.githubusercontent.com/devcontainers/spec/": true, + "https://raw.githubusercontent.com/microsoft/vscode/": true, + "https://schemastore.azurewebsites.net/": true, + "https://unpkg.com": true, + "https://vicinae.com/schemas/config.json": true, + "https://www.schemastore.org/": true }, "workbench.colorTheme": "Monokai Pro Light", "workbench.editor.editorActionsLocation": "hidden", diff --git a/.config/config.toml b/.config/config.toml new file mode 100644 index 0000000..e69de29 diff --git a/.config/helix/config.toml b/.config/helix/config.toml new file mode 100644 index 0000000..b57ab35 --- /dev/null +++ b/.config/helix/config.toml @@ -0,0 +1,18 @@ +theme = "base16_transparent" + +[editor] +line-number = "relative" +end-of-line-diagnostics="error" +completion-replace = true + +[editor.file-picker] +hidden = false + +[editor.statusline] +left = ["mode", "spinner", "read-only-indicator", ] +center = ["file-name", "file-modification-indicator", "spacer", "version-control"] +right = ["diagnostics", "selections", "position", "file-encoding", "file-line-ending", "file-type"] +separator = "|" + +[editor.soft-wrap] +enable = true diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf index 2667ce2..fccf13a 100644 --- a/.config/hypr/hyprland.conf +++ b/.config/hypr/hyprland.conf @@ -69,13 +69,12 @@ exec-once = ~/.config/hypr/scripts/float-bitwarden.sh # Makes sure ratbag is running exec-once = ratbagctl list -# Plugins -exec-once = hyprpm enable Hyprspace -exec-once = hyprpm reload - # Custom scripts exec-once = ~/code/ha-notifications/ha-notifications +# Plugins +exec-once = hyprpm reload + ############################# ### ENVIRONMENT VARIABLES ### ############################# @@ -88,7 +87,7 @@ env = XDG_SESSION_TYPE,wayland env = HYPRSHOT_DIR,/home/paul/screenshots cursor { - no_hardware_cursors = true + no_hardware_cursors = 0 } @@ -259,9 +258,10 @@ bind = $mainMod SHIFT, S, exec, hyprshot -m region bind = $mainMod, PRINT, exec, hyprshot -m window bind = $mainMod SHIFT, B, exec, pkill waybar & hyprctl dispatch exec waybar bind = $mainMod SHIFT, C, exec, hyprpicker | wl-copy -# bind = $mainMod, TAB, overview:toggle +bind = $mainMod, TAB, hyprtasking:toggle, cursor bind = $mainMod, END, exec, wlogout -b 6 -L 1100 -R 1100 -T 650 -B 650 + # Move focus with mainMod + arrow keys bind = $mainMod, left, movefocus, l bind = $mainMod, right, movefocus, r @@ -413,6 +413,14 @@ windowrule { no_anim = on } +# ClickUp Command Bar will disappear if mouse is not over it, so we pin it and disable focus loss +windowrule { + name = "clickup-command-bar" + match:initial_title = ClickUp Command Bar + float = 1 + stay_focused = on +} + # UXPlay windows are always floating and exact size windowrule { name = "uxplay" @@ -422,6 +430,18 @@ windowrule { center = 1 } +# Import Modal for LibreOffice calc is always floating and exact size +windowrule { + name = "libreoffice-import-modal" + match:initial_class = soffice + match:initial_title = Text Import.* + float = 1 + size = 800 400 + stay_focused = on + dim_around = on + move = 1320 520 +} + # Notification animation style layerrule = match:namespace notifications, animation slide diff --git a/.config/hypr/scripts/float-bitwarden.sh b/.config/hypr/scripts/float-bitwarden.sh deleted file mode 100755 index 0cae111..0000000 --- a/.config/hypr/scripts/float-bitwarden.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash - -timeout=0 -handle() { - case $1 in - windowtitle*) - # Extract the window ID from the line - window_id=${1#*>>} - - # Fetch the list of windows and parse it using jq to find the window by its decimal ID - window_info=$(hyprctl clients -j | jq --arg id "0x$window_id" '.[] | select(.address == ($id))') - - # Extract the title from the window info - window_title=$(echo "$window_info" | jq -r '.title') - - # Check if the title matches the characteristics of the Bitwarden popup window - if [[ "$window_title" == *"(Bitwarden"*"Password Manager) - Bitwarden"* ]]; then - - # in case of double rename only allow once per second - if ((SECONDS < timeout)); then - return - fi - timeout=$((SECONDS + 1)) - - # echo "$window_id", "$window_title" - hyprctl --batch "dispatch togglefloating address:0x$window_id; dispatch resizewindowpixel exact 20% 54%,address:0x$window_id; dispatch centerwindow" - fi - ;; - esac -} - -# Listen to the Hyprland socket for events and process each line with the handle function -socat -U - UNIX-CONNECT:"$XDG_RUNTIME_DIR"/hypr/"$HYPRLAND_INSTANCE_SIGNATURE"/.socket2.sock | while read -r line; do handle "$line"; done \ No newline at end of file diff --git a/.config/systemd/user/.#hyprland-session.targetd943184b27236f14 b/.config/systemd/user/.#hyprland-session.targetd943184b27236f14 new file mode 100644 index 0000000..20f93d8 --- /dev/null +++ b/.config/systemd/user/.#hyprland-session.targetd943184b27236f14 @@ -0,0 +1,6 @@ +[Unit] +Description=Hyprland session +BindsTo=graphical-session.target +Wants=graphical-session-pre.target +After=graphical-session-pre.target +PropagatesStopTo=graphical-session.target \ No newline at end of file diff --git a/.icons/com.usebruno.app.Bruno.ico b/.icons/com.usebruno.app.Bruno.ico new file mode 100644 index 0000000..d84a011 Binary files /dev/null and b/.icons/com.usebruno.app.Bruno.ico differ diff --git a/.icons/com.usebruno.app.Bruno.svg b/.icons/com.usebruno.app.Bruno.svg new file mode 100644 index 0000000..42ceec2 --- /dev/null +++ b/.icons/com.usebruno.app.Bruno.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/.zprofile b/.zprofile index 9eaa048..8b13789 100644 --- a/.zprofile +++ b/.zprofile @@ -1,3 +1 @@ -export PYENV_ROOT="$HOME/.pyenv" -[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH" -eval "$(pyenv init -)" + diff --git a/.zshrc b/.zshrc index 0d55778..989cbe6 100644 --- a/.zshrc +++ b/.zshrc @@ -1,7 +1,3 @@ -# If you come from bash you might have to change your $PATH. -# export PATH=$HOME/bin:/usr/local/bin:$PATH - -# Path to your oh-my-zsh installation. export ZSH="$HOME/.oh-my-zsh" # Set name of the theme to load --- if set to "random", it will @@ -10,77 +6,22 @@ export ZSH="$HOME/.oh-my-zsh" # See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes ZSH_THEME="custom" -# Set list of themes to pick from when loading at random -# Setting this variable when ZSH_THEME=random will cause zsh to load -# a theme from this variable instead of looking in $ZSH/themes/ -# If set to an empty array, this variable will have no effect. -# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) - -# Uncomment the following line to use case-sensitive completion. -# CASE_SENSITIVE="true" - -# Uncomment the following line to use hyphen-insensitive completion. -# Case-sensitive completion must be off. _ and - will be interchangeable. -# HYPHEN_INSENSITIVE="true" - -# Uncomment one of the following lines to change the auto-update behavior -# zstyle ':omz:update' mode disabled # disable automatic updates -# zstyle ':omz:update' mode auto # update automatically without asking -# zstyle ':omz:update' mode reminder # just remind me to update when it's time - -# Uncomment the following line to change how often to auto-update (in days). -# zstyle ':omz:update' frequency 13 - -# Uncomment the following line if pasting URLs and other text is messed up. -# DISABLE_MAGIC_FUNCTIONS="true" - -# Uncomment the following line to disable colors in ls. -# DISABLE_LS_COLORS="true" - -# Uncomment the following line to disable auto-setting terminal title. -# DISABLE_AUTO_TITLE="true" - -# Uncomment the following line to enable command auto-correction. -# ENABLE_CORRECTION="true" - -# Uncomment the following line to display red dots whilst waiting for completion. -# You can also set it to another string to have that shown instead of the default red dots. -# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f" -# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765) -# COMPLETION_WAITING_DOTS="true" - # Uncomment the following line if you want to disable marking untracked files # under VCS as dirty. This makes repository status check for large repositories # much, much faster. DISABLE_UNTRACKED_FILES_DIRTY="true" -# Uncomment the following line if you want to change the command execution time -# stamp shown in the history command output. -# You can set one of the optional three formats: -# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" -# or set a custom format using the strftime function format specifications, -# see 'man strftime' for details. -# HIST_STAMPS="mm/dd/yyyy" - -# Would you like to use another custom folder than $ZSH/custom? -# ZSH_CUSTOM=/path/to/new-custom-folder - -# Force pyenv to stop complaining about non-interactive shells -ZSH_PYENV_QUIET="true" - # Which plugins would you like to load? # Standard plugins can be found in $ZSH/plugins/ # Custom plugins may be added to $ZSH_CUSTOM/plugins/ # Example format: plugins=(rails git textmate ruby lighthouse) # Add wisely, as too many plugins slow down shell startup. -plugins=(git zsh-autosuggestions zsh-syntax-highlighting fast-syntax-highlighting macos pip pyenv docker colorize copyfile brew) +plugins=(git zsh-autosuggestions zsh-syntax-highlighting fast-syntax-highlighting pip docker uv zsh-uv-env colorize copyfile) source $ZSH/oh-my-zsh.sh # User configuration -# export MANPATH="/usr/local/man:$MANPATH" - # You may need to manually set your language environment # export LANG=en_US.UTF-8 @@ -96,32 +37,16 @@ fi if [[ -n $SSH_CONNECTION ]]; then export EDITOR='nano' else - export EDITOR=$codewait + export EDITOR="helix" export VISUAL=$codewait fi # Compilation flags # export ARCHFLAGS="-arch x86_64" -# Set personal aliases, overriding those provided by oh-my-zsh libs, -# plugins, and themes. Aliases can be placed here, though oh-my-zsh -# users are encouraged to define aliases within the ZSH_CUSTOM folder. -# For a full list of active aliases, run `alias`. -# -# Example aliases -# alias zshconfig="mate ~/.zshrc" -# alias ohmyzsh="mate ~/.oh-my-zsh" - -# Reboot to Windows (REPLACED WITH SCRIPT) -# reboot_windows() -# { -# windows_title=$(grep -i windows /boot/grub/grub.cfg | cut -d "'" -f 2) -# sudo grub-reboot "$windows_title" && sudo reboot -# } -# alias reboot-windows='reboot_windows' - # Command aliases alias py=python3 +alias pip=pip3 alias ll="ls -lah" qrshow(){ @@ -133,23 +58,19 @@ alias sshconfig="$EDITOR ~/.ssh/config" alias zshconfig="$EDITOR ~/.zshrc" alias zshreload="source ~/.zshrc" alias zshsource="source ~/.zshrc" -alias home="cd ~" -alias userchrome="$EDITOR ~/.mozilla/firefox/jcjwalyb.default-release/chrome/userChrome.css" -alias kw='echo Current Week: $((10#$(date +"%V")))' alias wol=wakeonlan -alias ge=gnome-extensions alias open="xdg-open" alias lg="lazygit" alias ccat="pygmentize -g -O style=monokai,linenos=1" alias rm="echo Use the full path i.e. '/bin/rm', consider using: trash" -alias explain="copilot explain" alias csv="csvlens" alias ccopilot="cd ~/code/copilot && copilot" - -alias wstmux="cd ~/code/wasteside/app && tmux new -A -s wasteside" +alias hx="helix" alias R="R --no-save" +export GOPATH="$HOME/.local/share/go" +export GOBIN="$HOME/.local/bin" # Python tkinter stuff export PATH="/usr/local/opt/tcl-tk/bin:$PATH" @@ -186,7 +107,7 @@ export PATH="$PATH:$ANDROID_SDK_ROOT/emulator" # Unlock hyprlock alias unlock=pkill -USR1 hyprlock -# zoxide +# zoxided eval "$(zoxide init --cmd cd zsh)" # SDKMAN & Java @@ -199,11 +120,6 @@ export PATH="$HOME/.yarn/bin:$PATH" # More path stuff export PATH="$HOME/.local/bin:$PATH" -# pyenv stuff (make sure this is at the end of the file) -export PYENV_ROOT="$HOME/.pyenv" -[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH" -eval "$(pyenv init -)" - #nvm source /usr/share/nvm/init-nvm.sh diff --git a/makepkg.conf b/makepkg.conf new file mode 100644 index 0000000..de354d7 --- /dev/null +++ b/makepkg.conf @@ -0,0 +1,24 @@ +#!/hint/bash +# shellcheck disable=2034 + +######################################################################### +# GLOBAL PACKAGE OPTIONS +# These are default values for the options=() settings +######################################################################### +# +# Makepkg defaults: +# OPTIONS=(!strip docs libtool staticlibs emptydirs !zipman !purge !debug !lto !autodeps) +# A negated option will do the opposite of the comments below. +# +#-- strip: Strip symbols from binaries/libraries +#-- docs: Save doc directories specified by DOC_DIRS +#-- libtool: Leave libtool (.la) files in packages +#-- staticlibs: Leave static library (.a) files in packages +#-- emptydirs: Leave empty directories in packages +#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip +#-- purge: Remove files specified by PURGE_TARGETS +#-- debug: Add debugging flags as specified in DEBUG_* variables +#-- lto: Add compile flags for building with link time optimization +#-- autodeps: Automatically add depends/provides +# +OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug lto)