From 6d58e202f50115ff23470b4bba2ff1dfc54195a5 Mon Sep 17 00:00:00 2001 From: "Matthieu Fortin (Home/Maison)" Date: Wed, 23 Oct 2024 15:33:56 -0400 Subject: [PATCH] updated --- bash/.bashrc | 458 ++++++++++------------------ hypr/.config/hypr/hyprland.conf | 5 +- hypr/.config/hypr/hyprland.conf-bak | 293 ++++++++++++++++++ hypr/.config/kanshi/config | 4 + kitty/.config/kitty/kitty.conf | 2 +- 5 files changed, 462 insertions(+), 300 deletions(-) create mode 100644 hypr/.config/hypr/hyprland.conf-bak create mode 100644 hypr/.config/kanshi/config diff --git a/bash/.bashrc b/bash/.bashrc index 71b9d13..22494e9 100644 --- a/bash/.bashrc +++ b/bash/.bashrc @@ -1,34 +1,42 @@ #!/bin/bash + +# Check for interactive shell iatest=$(expr index "$-" i) +# Display Fastfetch if available [ -f /usr/bin/fastfetch ] && fastfetch -c ~/.config/fastfetch/config-compact.jsonc -[ -f /etc/bashrc ] && . /etc/bashrc -[ -f /usr/share/bash-completion/bash-completion ] && . /usr/share/bash-completion/bash-completion -[ -f /etc/bash_completion ] && . /etc/bash_completion -if [[ $iatest -gt 0 ]]; then bind "set bell-style visible"; fi +# Source system-wide bashrc and completion files if they exist +for file in /etc/bashrc /usr/share/bash-completion/bash-completion /etc/bash_completion; do + [ -f "$file" ] && . "$file" +done -# History +# Configure bell style for interactive shells +[[ $iatest -gt 0 ]] && bind "set bell-style visible" + +# History settings export HISTFILESIZE=10000 export HISTSIZE=500 export HISTCONTROL=erasedups:ignoredups:ignorespace +# Set vi mode for command line set -o vi bind 'set show-mode-in-prompt on' set vi-ins-mode-string \1\e[6 q\2 set vi-cmd-mode-string \1\e[2 q\2 -shopt -s checkwinsize -shopt -s histappend +# Shell options +shopt -s checkwinsize histappend PROMPT_COMMAND='history -a' +# Terminal settings [[ $- == *i* ]] && stty -ixon -# Ignore case on auto-completion -if [[ $iatest -gt 0 ]]; then bind "set completion-ignore-case on"; fi - -# Show auto-completion list automatically, without double tab -if [[ $iatest -gt 0 ]]; then bind "set show-all-if-ambiguous on"; fi +# Auto-completion settings +[[ $iatest -gt 0 ]] && { + bind "set completion-ignore-case on" + bind "set show-all-if-ambiguous on" +} # Default editor export EDITOR=nvim @@ -40,14 +48,12 @@ alias snano='sedit' alias vim='nvim' alias cat='bat' -# To have colors for ls and all grep commands such as grep, egrep and zgrep +# Enable colors for various commands export CLICOLOR=1 export LS_COLORS='no=00:fi=00:di=00;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:*.xml=00;31:' -#export GREP_OPTIONS='--color=auto' #deprecated -alias grep="/usr/bin/grep $GREP_OPTIONS" -unset GREP_OPTIONS +alias grep="/usr/bin/grep --color=auto" -# Color for manpages in less makes manpages a little easier to read +# Configure man page colors export LESS_TERMCAP_mb=$'\E[01;31m' export LESS_TERMCAP_md=$'\E[01;31m' export LESS_TERMCAP_me=$'\E[0m' @@ -57,25 +63,12 @@ export LESS_TERMCAP_ue=$'\E[0m' export LESS_TERMCAP_us=$'\E[01;32m' ####################################################### -# GENERAL ALIAS'S +# GENERAL ALIASES ####################################################### -# To temporarily bypass an alias, we precede the command with a \ -# EG: the ls command is aliased, but to use the normal ls command you would type \ls - -# Add an "alert" alias for long running commands. Use like so: -# sleep 10; alert -alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' - -# Edit this .bashrc file +alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history | tail -n1 | sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'' )"' alias ebrc='edit ~/.bashrc' - -# Show help for this .bashrc file alias hlp='less ~/.bashrc_help' - -# alias to show the date alias da='date "+%Y-%m-%d %A %T %Z"' - -# Alias's to modified commands alias cp='cp -i' alias mv='mv -i' alias rm='trash -v' @@ -90,38 +83,30 @@ alias freshclam='sudo freshclam' alias vi='nvim' alias svi='sudo vi' alias vis='nvim "+set si"' - -# Change directory aliases alias home='cd ~' alias cd..='cd ..' alias ..='cd ..' alias ...='cd ../..' alias ....='cd ../../..' alias .....='cd ../../../..' - -# cd into the old directory alias bd='cd "$OLDPWD"' +alias rmd='/bin/rm --recursive --force --verbose ' +alias la='ls -Alh' +alias ls='ls -aFh --color=always' +alias lx='ls -lXBh' +alias lk='ls -lSrh' +alias lc='ls -lcrh' +alias lu='ls -lurh' +alias lr='ls -lRh' +alias lt='ls -ltrh' +alias lm='ls -alh | more' +alias lw='ls -xAh' +alias ll='ls -Fls' +alias labc='ls -lap' +alias lf="ls -l | grep -E -v '^d'" +alias ldir="ls -l | grep -E '^d'" -# Remove a directory and all files -alias rmd='/bin/rm --recursive --force --verbose ' - -# Alias's for multiple directory listing commands -alias la='ls -Alh' # show hidden files -alias ls='ls -aFh --color=always' # add colors and file type extensions -alias lx='ls -lXBh' # sort by extension -alias lk='ls -lSrh' # sort by size -alias lc='ls -lcrh' # sort by change time -alias lu='ls -lurh' # sort by access time -alias lr='ls -lRh' # recursive ls -alias lt='ls -ltrh' # sort by date -alias lm='ls -alh |more' # pipe through 'more' -alias lw='ls -xAh' # wide listing format -alias ll='ls -Fls' # long listing format -alias labc='ls -lap' #alphabetical sort -alias lf="ls -l | grep -E -v '^d'" # files only -alias ldir="ls -l | grep -E '^d'" # directories only - -# alias chmod commands +# File permission aliases alias mx='chmod a+x' alias 000='chmod -R 000' alias 644='chmod -R 644' @@ -129,319 +114,196 @@ alias 666='chmod -R 666' alias 755='chmod -R 755' alias 777='chmod -R 777' -# Search command line history +# History search alias hs="history | fzf " - -# Search running processes alias p="ps aux | grep " alias topcpu="/bin/ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10" - -# Search files in the current folder alias f="find . | grep " - -# Count all files (recursively) in the current folder alias countfiles="for t in files links directories; do echo \`find . -type \${t:0:1} | wc -l\` \$t; done 2> /dev/null" - -# To see if a command is aliased, a file, or a built-in command alias checkcommand="type -t" - -# Show open ports alias openports='netstat -nape --inet' - -# Alias's for safe and forced reboots alias rebootsafe='sudo shutdown -r now' alias rebootforce='sudo shutdown -r -n now' - -# Alias's to show disk space and space used in a folder -alias diskspace="du -S | sort -n -r |more" +alias diskspace="du -S | sort -n -r | more" alias folders='du -h --max-depth=1' alias folderssort='find . -maxdepth 1 -type d -print0 | xargs -0 du -sk | sort -rn' alias tree='tree -CAhF --dirsfirst' alias treed='tree -CAFd' alias mountedinfo='df -hT' - -# Alias's for archives alias mktar='tar -cvf' alias mkbz2='tar -cvjf' alias mkgz='tar -cvzf' alias untar='tar -xvf' alias unbz2='tar -xvjf' alias ungz='tar -xvzf' - -# Show all logs in /var/log alias logs="sudo find /var/log -type f -exec file {} \; | grep 'text' | cut -d' ' -f1 | sed -e's/:$//g' | grep -v '[0-9]$' | xargs tail -f" - -# SHA1 alias sha1='openssl sha1' - alias clickpaste='sleep 3; xdotool type "$(xclip -o -selection clipboard)"' - ####################################################### # SPECIAL FUNCTIONS ####################################################### -chezedit() { - if [ -z "$1" ]; then - echo "Usage: chezedit " - return 1 - fi - chezmoi edit "$1" && chezmoi apply "$1" -} - -# Extracts any archive(s) (if unp isn't installed) extract() { - for archive in "$@"; do - if [ -f "$archive" ]; then - case $archive in - *.tar.bz2) tar xvjf $archive ;; - *.tar.gz) tar xvzf $archive ;; - *.bz2) bunzip2 $archive ;; - *.rar) rar x $archive ;; - *.gz) gunzip $archive ;; - *.tar) tar xvf $archive ;; - *.tbz2) tar xvjf $archive ;; - *.tgz) tar xvzf $archive ;; - *.zip) unzip $archive ;; - *.Z) uncompress $archive ;; - *.7z) 7z x $archive ;; - *) echo "don't know how to extract '$archive'..." ;; - esac - else - echo "'$archive' is not a valid file!" - fi - done + for archive in "$@"; do + if [ -f "$archive" ]; then + case $archive in + *.tar.bz2) tar xvjf "$archive" ;; + *.tar.gz) tar xvzf "$archive" ;; + *.bz2) bunzip2 "$archive" ;; + *.rar) rar x "$archive" ;; + *.gz) gunzip "$archive" ;; + *.tar) tar xvf "$archive" ;; + *.tbz2) tar xvjf "$archive" ;; + *.tgz) tar xvzf "$archive" ;; + *.zip) unzip "$archive" ;; + *.Z) uncompress "$archive" ;; + *.7z) 7z x "$archive" ;; + *) echo "don't know how to extract '$archive'..." ;; + esac + else + echo "'$archive' is not a valid file!" + fi + done } -# Searches for text in all files in the current folder ftext() { - # -i case-insensitive - # -I ignore binary files - # -H causes filename to be printed - # -r recursive search - # -n causes line number to be printed - # optional: -F treat search term as a literal, not a regular expression - # optional: -l only print filenames and not the matching lines ex. grep -irl "$1" * - grep -iIHrn --color=always "$1" . | less -r + grep -iIHrn --color=always "$1" . | less -r } -# Copy file with a progress bar cpp() { - set -e - strace -q -ewrite cp -- "${1}" "${2}" 2>&1 | - awk '{ - count += $NF - if (count % 10 == 0) { - percent = count / total_size * 100 - printf "%3d%% [", percent - for (i=0;i<=percent;i++) - printf "=" - printf ">" - for (i=percent;i<100;i++) - printf " " - printf "]\r" - } - } - END { print "" }' total_size="$(stat -c '%s' "${1}")" count=0 + set -e + total_size="$(stat -c '%s' "$1")" + strace -q -ewrite cp -- "$1" "$2" 2>&1 | + awk -v total_size="$total_size" '{ + count += $NF + if (count % 10 == 0) { + percent = count / total_size * 100 + printf "%3d%% [", percent + for (i=0; i <= percent; i++) printf "=" + printf ">" + for (i=percent; i < 100; i++) printf " " + printf "]\r" + } + } + END { print "" }' } -# Copy and go to the directory cpg() { - if [ -d "$2" ]; then - cp "$1" "$2" && cd "$2" - else - cp "$1" "$2" - fi + cp "$1" "$2" && [ -d "$2" ] && cd "$2" } -# Move and go to the directory mvg() { - if [ -d "$2" ]; then - mv "$1" "$2" && cd "$2" - else - mv "$1" "$2" - fi + mv "$1" "$2" && [ -d "$2" ] && cd "$2" } -# Create and go to the directory mkdirg() { - mkdir -p "$1" - cd "$1" + mkdir -p "$1" && cd "$1" } -# Goes up a specified number of directories (i.e. up 4) up() { - local d="" - limit=$1 - for ((i = 1; i <= limit; i++)); do - d=$d/.. - done - d=$(echo $d | sed 's/^\///') - if [ -z "$d" ]; then - d=.. - fi - cd $d + local d="" + local limit=$1 + for ((i = 1; i <= limit; i++)); do + d="$d/.." + done + d=${d#/} # Remove leading slash + cd "${d:-..}" } -# Automatically do an ls after each cd, z, or zoxide -cd () -{ - if [ -n "$1" ]; then - builtin cd "$@" && ls - else - builtin cd ~ && ls - fi +cd() { + builtin cd "$@" && ls } -# Returns the last 2 fields of the working directory pwdtail() { - pwd | awk -F/ '{nlast = NF -1;print $nlast"/"$NF}' + pwd | awk -F/ '{nlast = NF -1; print $nlast"/"$NF}' } -# Show the current distribution -distribution () -{ - local dtype="unknown" # Default to unknown - - # Use /etc/os-release for modern distro identification - if [ -r /etc/os-release ]; then - source /etc/os-release - case $ID in - fedora|rhel|centos) - dtype="redhat" - ;; - sles|opensuse*) - dtype="suse" - ;; - ubuntu|debian) - dtype="debian" - ;; - gentoo) - dtype="gentoo" - ;; - arch) - dtype="arch" - ;; - slackware) - dtype="slackware" - ;; - *) - # If ID is not recognized, keep dtype as unknown - ;; - esac - fi - - echo $dtype +distribution() { + local dtype="unknown" + [ -r /etc/os-release ] && { + source /etc/os-release + case $ID in + fedora|rhel|centos) dtype="redhat" ;; + sles|opensuse*) dtype="suse" ;; + ubuntu|debian) dtype="debian" ;; + gentoo) dtype="gentoo" ;; + arch) dtype="arch" ;; + slackware) dtype="slackware" ;; + esac + } + echo "$dtype" } -# Show the current version of the operating system ver() { - local dtype - dtype=$(distribution) - - case $dtype in - "redhat") - if [ -s /etc/redhat-release ]; then - cat /etc/redhat-release - else - cat /etc/issue - fi - uname -a - ;; - "suse") - cat /etc/SuSE-release - ;; - "debian") - lsb_release -a - ;; - "gentoo") - cat /etc/gentoo-release - ;; - "arch") - cat /etc/os-release - ;; - "slackware") - cat /etc/slackware-version - ;; - *) - if [ -s /etc/issue ]; then - cat /etc/issue - else - echo "Error: Unknown distribution" - exit 1 - fi - ;; - esac + local dtype=$(distribution) + case $dtype in + redhat) [ -s /etc/redhat-release ] && cat /etc/redhat-release || cat /etc/issue ;; + suse) cat /etc/SuSE-release ;; + debian) lsb_release -a ;; + gentoo) cat /etc/gentoo-release ;; + arch) cat /etc/os-release ;; + slackware) cat /etc/slackware-version ;; + *) [ -s /etc/issue ] && cat /etc/issue || echo "Error: Unknown distribution" ;; + esac } -# IP address lookup -alias whatismyip="whatsmyip" -function whatsmyip () -{ - # Internal IP Lookup. - if [ -e /sbin/ip ]; then - echo -n "Internal IP: " - /sbin/ip addr show wlan0 | grep "inet " | awk -F: '{print $1}' | awk '{print $2}' - else - echo -n "Internal IP: " - /sbin/ifconfig wlan0 | grep "inet " | awk -F: '{print $1} |' | awk '{print $2}' - fi - - # External IP Lookup - echo -n "External IP: " - curl -s ifconfig.me +whatismyip() { + echo -n "Internal IP: " + if command -v ip &>/dev/null; then + /sbin/ip addr show wlan0 | awk '/inet /{print $2}' | cut -d/ -f1 + else + /sbin/ifconfig wlan0 | awk '/inet /{print $2}' + fi + echo -n "External IP: " + curl -s ifconfig.me } -# Trim leading and trailing spaces (for scripts) trim() { - local var=$* - var="${var#"${var%%[![:space:]]*}"}" # remove leading whitespace characters - var="${var%"${var##*[![:space:]]}"}" # remove trailing whitespace characters - echo -n "$var" + local var="$*" + var="${var#"${var%%[![:space:]]*}"}" # remove leading whitespace + var="${var%"${var##*[![:space:]]}"}" # remove trailing whitespace + echo -n "$var" } -# OS Specific aliases -if [[ "$(distribution)" = "arch" ]]; then - alias \ - pacfiles='pacman -F' \ - pacfileupg='sudo pacman -Fy' \ - pacin='sudo pacman -S' \ - pacins='sudo pacman -U' \ - pacinsd='sudo pacman -S --asdeps' \ - paclean='sudo pacman -Sc' \ - pacloc='pacman -Qi' \ - paclocs='pacman -Qs' \ - paclr='sudo pacman -Scc' \ - pacls='pacman -Ql' \ - paclsorphans='sudo pacman -Qdt' \ - pacmanallkeys='sudo pacman-key --refresh-keys' \ - pacmir='sudo pacman -Syy' \ - pacown='pacman -Qo' \ - pacre='sudo pacman -R' \ - pacrem='sudo pacman -Rns' \ - pacrep='pacman -Si' \ - pacreps='pacman -Ss' \ - pacrmorphans='sudo pacman -Rs $(pacman -Qtdq)' \ - pacupd='sudo pacman -Sy' \ - pacupg='sudo pacman -Syu' +# OS-specific aliases for Arch +if [[ "$(distribution)" == "arch" ]]; then + alias \ + pacfiles='pacman -F' \ + pacfileupg='sudo pacman -Fy' \ + pacin='sudo pacman -S' \ + pacins='sudo pacman -U' \ + pacinsd='sudo pacman -S --asdeps' \ + paclean='sudo pacman -Sc' \ + pacloc='pacman -Qi' \ + paclocs='pacman -Qs' \ + paclr='sudo pacman -Scc' \ + pacls='pacman -Ql' \ + paclsorphans='sudo pacman -Qdt' \ + pacmanallkeys='sudo pacman-key --refresh-keys' \ + pacmir='sudo pacman -Syy' \ + pacown='pacman -Qo' \ + pacre='sudo pacman -R' \ + pacrem='sudo pacman -Rns' \ + pacrep='pacman -Si' \ + pacreps='pacman -Ss' \ + pacrmorphans='sudo pacman -Rs $(pacman -Qtdq)' \ + pacupd='sudo pacman -Sy' \ + pacupg='sudo pacman -Syu' fi -# GitHub Titus Additions +# GitHub shortcuts gcom() { - git add . - git commit -m "$1" + git add . && git commit -m "$1" } + lazyg() { - git add . - git commit -m "$1" - git push + git add . && git commit -m "$1" && git push } -bind '"\C-f":"zi\n"' +# PATH modifications +export PATH="$PATH:$HOME/.local/bin:/var/lib/flatpak/exports/bin:$HOME/.local/share/flatpak/exports/bin:$HOME/.npm/bin" -export PATH=$PATH:"$HOME/.local/bin:/var/lib/flatpak/exports/bin:$HOME/.local/share/flatpak/exports/bin:$HOME/.npm/bin" - -# Install Starship - curl -sS https://starship.rs/install.sh | sh +# Initialize Starship, Zoxide, and other tools eval "$(starship init bash)" -#eval "$(oh-my-posh init bash --config "~/.cache/oh-my-posh/themes/catppuccin_mocha.omp.json")" eval "$(zoxide init bash)" diff --git a/hypr/.config/hypr/hyprland.conf b/hypr/.config/hypr/hyprland.conf index 9ea073b..7fdcab6 100644 --- a/hypr/.config/hypr/hyprland.conf +++ b/hypr/.config/hypr/hyprland.conf @@ -37,6 +37,7 @@ exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRE exec-once=hypridle exec-once=waybar exec-once=./xdg-desktop-portal.sh +exec-one=kanshi ##exec-once=nwg-dock-hyprland -i 32 -w 5 -mb 10 -ml 10 -mr 10 -x -c "tofi-drun --drun-launch=true" -lp start -f -a start ### ENVIRONMENT VARIABLES ### @@ -84,6 +85,8 @@ general { allow_tearing = false #layout = dwindle layout = master + resize_on_border = true + hover_icon_on_border = true } # https://wiki.hyprland.org/Configuring/Variables/#decoration @@ -169,7 +172,7 @@ device { $mainMod = SUPER # Sets "Windows" key as main modifier # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more -bindd = $mainMod, return, Launch a terminal, exec, $terminal +bindd = $mainMod, return, Launch a terminal, exec, $terminal bash --rcfile ~/.dotfiles/bash/.bashrc bindd = $mainMod, B, Launch the default browser, exec, $browser bindd = $mainMod, C, Launch Visual Studio Code, exec, $editor bindd = $mainMod, N, Launch Neovim, exec, $editor-alt diff --git a/hypr/.config/hypr/hyprland.conf-bak b/hypr/.config/hypr/hyprland.conf-bak new file mode 100644 index 0000000..80c0577 --- /dev/null +++ b/hypr/.config/hypr/hyprland.conf-bak @@ -0,0 +1,293 @@ +# __ __ __ +# / / __ _____ ____/ /__ ____ ___/ / +# / _ \/ // / _ \/ __/ / _ `/ _ \/ _ / +# /_//_/\_, / .__/_/ /_/\_,_/_//_/\_,_/ +# /___/_/ + +### MONITORS ### + +# See https://wiki.hyprland.org/Configuring/Monitors/ +monitor=,preferred,auto,1 + + +### MY PROGRAMS ### + +# See https://wiki.hyprland.org/Configuring/Keywords/ + +# Set programs that you use +$terminal = kitty +$fileManager = dolphin +#$menu = wofi --show drun +$menu = tofi-drun -c ~/.config/tofi/configA --drun-launch=true +$browser = librewolf +$editor = code +$editor-alt = nvim +$colorPicker = hyprpicker + + +### AUTOSTART ### + +exec-once=wl-paste --type text --watch cliphist store # clipboard +exec-once=wl-paste --type image --watch cliphist store +exec-once=swaync +#exec-once=/usr/lib/polkit-kde-authentication-agent-1 +#exec-once=/usr/lib/xfce-polkit/xfce-polkit +exec-once = systemctl --user start hyprpolkitagent +exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP +exec-once=hypridle +exec-once=waybar +exec-once=./xdg-desktop-portal.sh +##exec-once=nwg-dock-hyprland -i 32 -w 5 -mb 10 -ml 10 -mr 10 -x -c "tofi-drun --drun-launch=true" -lp start -f -a start + +### ENVIRONMENT VARIABLES ### + +env = XCURSOR_SIZE,24 +env = HYPRCURSOR_SIZE,24 +env = XDG_MENU_PREFIX,arch- + +# Firefox +env = MOZ_ENABLE_WAYLAND,1 + +# Nvidia +env = LIBVA_DRIVER_NAME,nvidia +env = XDG_SESSION_TYPE,wayland +env = GBM_BACKEND,nvidia-drm +env = __GLX_VENDOR_LIBRARY_NAME,nvidia # remove if firefox crashes +env = NVD_BACKEND,direct +env = ELECTRON_OZONE_PLATFORM_HINT,auto + +# QT +env = QT_QPA_PLATFORM,wayland +env = QT_QPA_PLATFORMTHEME,qt5ct +env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 +env = QT_AUTO_SCREEN_SCALE_FACTOR,1 +#env = QT_STYLE_OVERRIDE,kvantum + +# Toolkit Backend Variables +env = GDK_BACKEND,wayland,x11,* +env = SDL_VIDEODRIVER,wayland +env = CLUTTER_BACKEND,wayland + +# XDG Specifications +env = XDG_CURRENT_DESKTOP,Hyprland +env = XDG_SESSION_TYPE,wayland +env = XDG_SESSION_DESKTOP,Hyprland + +### LOOK AND FEEL ### + +general { + gaps_in = 5 + gaps_out = 5 + border_size = 2 + col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg + col.inactive_border = rgba(595959aa) + allow_tearing = false + #layout = dwindle + layout = master +} + +# https://wiki.hyprland.org/Configuring/Variables/#decoration +decoration { + rounding = 10 + + active_opacity = 1.0 + inactive_opacity = 0.9 + + drop_shadow = true + shadow_range = 4 + shadow_render_power = 3 + col.shadow = rgba(1a1a1aee) + + blur { + enabled = true + size = 3 + passes = 3 + new_optimizations = true + vibrancy = 0.1696 + ignore_opacity = true + } +} + +animations { + enabled = true + + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + + animation = windows, 1, 7, myBezier + animation = windowsOut, 1, 7, default, popin 80% + animation = border, 1, 10, default + animation = borderangle, 1, 8, default + animation = fade, 1, 7, default + animation = workspaces, 1, 6, default +} + +dwindle { + pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = true # You probably want this +} + +master { + new_status = master +} + +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. :( +} + + +### INPUT ### + +input { + kb_layout = us + kb_variant = + kb_model = + kb_options = + kb_rules = + + follow_mouse = 1 + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. + + touchpad { + natural_scroll = false + } +} + +gestures { + workspace_swipe = false +} + +device { + name = epic-mouse-v1 + sensitivity = -0.5 +} + + +### KEYBINDINGS ### + +$mainMod = SUPER # Sets "Windows" key as main modifier + +# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more +bindd = $mainMod, return, Launch a terminal, exec, $terminal bash --rcfile ~/.dotfiles/bash/.bashrc +bindd = $mainMod, B, Launch the default browser, exec, $browser +bindd = $mainMod, C, Launch Visual Studio Code, exec, $editor +bindd = $mainMod, N, Launch Neovim, exec, $editor-alt +bindd = $mainMod, Q, Kill active window, killactive, +bindd = $mainMod, M, Exit Hyprland, exit, +bindd = $mainMod, E, Launch the file manager, exec, $fileManager +bindd = $mainMod, W, Toggle floating, togglefloating, +bindd = $mainMod, space, Launch menu, exec, $menu +bind = $mainMod, P, pseudo, # dwindle +bind = $mainMod, J, togglesplit, # dwindle + +bindd = $mainMod, S, Launch menu to modify/create script, exec, autoscriptmenu + +bindd = $mainMod, period, Launch the Emoji Picker, exec, jome -d | wl-copy #Emojipicker + clipboard copy + +bindd = $mainMod, V, Clipboard History, exec, cliphist list | tofi -c ~/.config/tofi/configV | cliphist decode | wl-copy + +# Move focus with mainMod + arrow keys +bind = $mainMod, left, movefocus, l +bind = $mainMod, right, movefocus, r +bind = $mainMod, up, movefocus, u +bind = $mainMod, down, movefocus, d + +# Switch workspaces with mainMod + [0-9] +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 = $mainMod SHIFT, 1, movetoworkspace, 1 +bind = $mainMod SHIFT, 2, movetoworkspace, 2 +bind = $mainMod SHIFT, 3, movetoworkspace, 3 +bind = $mainMod SHIFT, 4, movetoworkspace, 4 +bind = $mainMod SHIFT, 5, movetoworkspace, 5 +bind = $mainMod SHIFT, 6, movetoworkspace, 6 +bind = $mainMod SHIFT, 7, movetoworkspace, 7 +bind = $mainMod SHIFT, 8, movetoworkspace, 8 +bind = $mainMod SHIFT, 9, movetoworkspace, 9 +bind = $mainMod SHIFT, 0, movetoworkspace, 10 + +# Example special workspace (scratchpad) +#bind = $mainMod, S, togglespecialworkspace, magic +bind = $mainMod SHIFT, S, movetoworkspace, special:magic + +# 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 + +# Color picker +bindd = $mainMod, P, Color Picker, exec, $colorPicker | wl-copy + +# Screen locking +bindd = $mainMod, L, Lock the screen, exec, hyprlock + +# Logout +bindd = $mainMod, Escape, Session logout, exec, wlogout + +# Waybar +bindd = CTRL, Escape, Toggle waybar, exec, killall waybar || waybar + +# Screenshot + +bindd = , Print, Screenshot entire screen, exec, grimblast --notify copysave screen +bindd = $mainMod, Print, Screenshot active window, exec, grimblast --notify copysave active +bindd = $mainMod Alt, Print, Screenshot selected area, exec, grimblast --notify copysave area + +# Laptop multimedia keys for volume and LCD brightness +bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ +bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- +bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle +bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle +#bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+ +#bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%- + +# Requires playerctl +bindl = , XF86AudioNext, exec, playerctl next +bindl = , XF86AudioPause, exec, playerctl play-pause +bindl = , XF86AudioPlay, exec, playerctl play-pause +bindl = , XF86AudioPrev, exec, playerctl previous + +############################## +### WINDOWS AND WORKSPACES ### +############################## + +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more +# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules + +# Example windowrule v1 +# windowrule = float, ^(kitty)$ + +# Example windowrule v2 +# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ + +# Ignore maximize requests from apps. You'll probably like this. +windowrulev2 = suppressevent maximize, class:.* + +# Fix some dragging issues with XWayland +windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 +windowrulev2 = float, class:(LibreWolf), title:(Picture-in-Picture) +windowrulev2 = move 100%-w-20 50, title:(Picture-in-Picture) +windowrulev2 = size 320 180, title:(Picture-in-Picture) +windowrulev2 = pin, title:(Picture-in-Picture) + +# windowrulev2 = opacity 0.80 0.80,class:^(kitty)$ + +windowrule = float,^(jome)$ + +layerrule = ignorezero,wofi +layerrule = ignorezero,swaync +layerrule = blur,swaync diff --git a/hypr/.config/kanshi/config b/hypr/.config/kanshi/config new file mode 100644 index 0000000..85dba84 --- /dev/null +++ b/hypr/.config/kanshi/config @@ -0,0 +1,4 @@ +profile home { + output DP-4 position 0,0 + output DP-5 disable + } diff --git a/kitty/.config/kitty/kitty.conf b/kitty/.config/kitty/kitty.conf index 83d09b5..c1111d2 100644 --- a/kitty/.config/kitty/kitty.conf +++ b/kitty/.config/kitty/kitty.conf @@ -25,7 +25,7 @@ repaint_delay 10 input_delay 3 visual_bell_duration 0.0 enable_audio_bell no -open_url_modifiers ctrl+shift +#open_url_modifiers ctrl+shift open_url_with default term xterm-kitty window_border_width 1