From c649953048f0f1213f2fcb5d898aaa730ef9b39a Mon Sep 17 00:00:00 2001 From: GitIR Date: Mon, 10 Jul 2023 22:35:58 -0500 Subject: Add PATH checking if dir exists --- zsh/.zshenv | 86 ++++++++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 65 insertions(+), 21 deletions(-) diff --git a/zsh/.zshenv b/zsh/.zshenv index 228d6f8..70b37b1 100644 --- a/zsh/.zshenv +++ b/zsh/.zshenv @@ -79,26 +79,70 @@ export SRCDIR="$HOME/.local/src" export ENV="$XDG_CONFIG_HOME/mksh/mkshrc" # PATH -export PATH="$HOME/.local/bin/testing" -export PATH="$PATH:$HOME/.local/bin/shortcmds" -export PATH="$PATH:$HOME/.local/bin/generics" -export PATH="$PATH:$HOME/.local/bin/scripts" -export PATH="$PATH:$HOME/.local/bin/sp" -export PATH="$PATH:$HOME/.local/bin/blocks" -export PATH="$PATH:$HOME/.local/bin/ignore" -export PATH="$PATH:$HOME/.local/bin" -export PATH="$PATH:$HOME/.local/bin/flatpak-sc" -export PATH="$PATH:$HOME/.local/share/flatpak/exports/bin/" -export PATH="$PATH:$CARGO_HOME/bin" -export PATH="$PATH:$GOPATH/bin" -export PATH="$PATH:/opt/REAPER" -export PATH="$PATH:/usr/local/bin" -export PATH="$PATH:/usr/local/sbin" -export PATH="$PATH:/opt/safing/portmaster" -export PATH="$PATH:/var/lib/flatpak/exports/bin" -export PATH="$PATH:/usr/bin" -export PATH="$PATH:/usr/sbin" -export PATH="$PATH:/bin" -export PATH="$PATH:/sbin" +if [ -d "$HOME/.local/bin/testing" ]; then + export PATH="$HOME/.local/bin/testing" +fi +if [ -d "$HOME/.local/bin/shortcmds" ]; then + export PATH="$PATH:$HOME/.local/bin/shortcmds" +fi +if [ -d "$HOME/.local/bin/generics" ]; then + export PATH="$PATH:$HOME/.local/bin/generics" +fi +if [ -d "$HOME/.local/bin/scripts" ]; then + export PATH="$PATH:$HOME/.local/bin/scripts" +fi +if [ -d "$HOME/.local/bin/sp" ]; then + export PATH="$PATH:$HOME/.local/bin/sp" +fi +if [ -d "$HOME/.local/bin/blocks" ]; then + export PATH="$PATH:$HOME/.local/bin/blocks" +fi +if [ -d "$HOME/.local/bin/ignore" ]; then + export PATH="$PATH:$HOME/.local/bin/ignore" +fi +if [ -d "$HOME/.local/bin" ]; then + export PATH="$PATH:$HOME/.local/bin" +fi +if [ -d "$HOME/.local/bin/flatpak-sc" ]; then + export PATH="$PATH:$HOME/.local/bin/flatpak-sc" +fi +if [ -d "$HOME/.local/bin/flatpak/exports/bin" ]; then + export PATH="$PATH:$HOME/.local/share/flatpak/exports/bin/" +fi +if [ -d "$CARGO_HOME/bin" ]; then + export PATH="$PATH:$CARGO_HOME/bin" +fi +if [ -d "$GOPATH/bin" ]; then + export PATH="$PATH:$GOPATH/bin" +fi +if [ -d "/opt/REAPER" ]; then + export PATH="$PATH:/opt/REAPER" +fi +if [ -d "/usr/local/bin" ]; then + export PATH="$PATH:/usr/local/bin" +fi +if [ -d "/usr/local/sbin" ]; then + export PATH="$PATH:/usr/local/sbin" +fi +if [ -d "/opt/safing/portmaster" ]; then + export PATH="$PATH:/opt/safing/portmaster" +fi +if [ -d "/var/lib/flatpak/exports/bin" ]; then + export PATH="$PATH:/var/lib/flatpak/exports/bin" +fi +if [ -d "/usr/bin" ]; then + export PATH="$PATH:/usr/bin" +fi +if [ -d "/usr/sbin" ]; then + export PATH="$PATH:/usr/sbin" +fi +if [ -d "/bin" ]; then + export PATH="$PATH:/bin" +fi +if [ -d "/sbin" ]; then + export PATH="$PATH:/sbin" +fi + +[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs" ] && . "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs" [ -f /etc/profile.d/nix-daemon.sh ] && . /etc/profile.d/nix-daemon.sh -- cgit v1.2.3 From 55a08c94e654a5d6f58f1bd2de0ac98f7df7341a Mon Sep 17 00:00:00 2001 From: ZachIR Date: Mon, 10 Jul 2023 22:39:55 -0500 Subject: Update README to be accurate for, quite possibly, the second time ever. --- README.md | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 9acdf05..2644588 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,22 @@ ## Zachir's Config Files -Hello! These are all the config files I thought could potentially be useful, both to myself to make reinstalling Linux faster, as well as for anyone interested. There are a few notes I feel I should make: +Hello! These are all the config files I thought could potentially be useful, +both to myself to make reinstalling Linux faster, as well as for anyone +interested. There are a few notes I feel I should make: -- I have a custom dwm build, which sources 'autostart.sh' and 'autostart_blocking.sh' from __*.config/dwm*__ not *.dwm*. This is available [here](https://gitlab.com/zachir/dwm-zir). -- I also have a custom st build, which sources '.Xresources' (this is a common enough patch, but I thought I would mention it, as I include my .Xresources file) available [here](https://gitlab.com/zachir/st-zir). -- I have gone through everything to remove personal information, however I might have missed something. If that happens, this repo will be updated, and the branch history deleted. +- I have gone through everything to remove personal information, however I might + have missed something. If that happens, this repo will be updated, and the + branch history deleted. -My personal installation method is as follows (performed immediately following a clean install): -`git clone https://gitlab.com/zachir/dotfiles ~/.config +My personal installation method is as follows (performed immediately following a +clean install): +`git clone https://git.zachir.xyz/dotfiles.git ~/.config cd ~/.config make install` -Note that the `make install` will only install the files in `HOME` to their corresponding place in the home dir as hard links. Make sure to save changes to these files before cloning! Additionally, if you only want my configs for specific programs, I would recommend cloning it into a separate directory and avoiding the `make install`. +Note that the `make install` will only install the files that are required to be +in the home dir to their corresponding place as hard links and install vimplug +for neovim, vim, or both (depending on which are installed). Make sure to save +changes to these files before running `make install`! Additionally, if you only +want my configs for specific programs, I would recommend cloning it into a +separate directory and avoiding the `make install`. -- cgit v1.2.3 From 5f136203cc781ed2195fa5e885d60fbbcc39ea61 Mon Sep 17 00:00:00 2001 From: ZachIR Date: Mon, 10 Jul 2023 22:42:05 -0500 Subject: Do not install doas.conf automatically --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index b1ba142..966bde8 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ DCONFS := doas.conf all: -install: install-xconfigs install-zshconfigs vimplug-vim vimplug-nvim doas-conf +install: install-xconfigs install-zshconfigs vimplug-vim vimplug-nvim install-xconfigs: $(XCONFS) @echo "Installing Xorg conf files..." -- cgit v1.2.3 From 82f8607df7ff29f5a8f179e81a96c49bab4ff185 Mon Sep 17 00:00:00 2001 From: zachir Date: Mon, 10 Jul 2023 23:05:43 -0500 Subject: Update path setting to be what it probably should have been --- zsh/.zshenv | 43 ++++++++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/zsh/.zshenv b/zsh/.zshenv index 70b37b1..1840082 100644 --- a/zsh/.zshenv +++ b/zsh/.zshenv @@ -1,10 +1,13 @@ +# Import ENV from system +. /etc/profile +[ -f /etc/profile.d/nix-daemon.sh ] && . /etc/profile.d/nix-daemon.sh + unset HISTFILE # Other XDG paths export XDG_DATA_HOME=${XDG_DATA_HOME:="$HOME/.local/share"} export XDG_CACHE_HOME=${XDG_CACHE_HOME:="$HOME/.cache"} export XDG_CONFIG_HOME=${XDG_CONFIG_HOME:="$HOME/.config"} - [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs" ] && . "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs" # Doesn't seem to work @@ -78,42 +81,46 @@ export SRCDIR="$HOME/.local/src" # KSH export ENV="$XDG_CONFIG_HOME/mksh/mkshrc" -# PATH +# OLD PATH +export SYSPATH="$PATH" + +# NEW PATH +unset PATH if [ -d "$HOME/.local/bin/testing" ]; then - export PATH="$HOME/.local/bin/testing" + PATH="$HOME/.local/bin/testing" fi if [ -d "$HOME/.local/bin/shortcmds" ]; then - export PATH="$PATH:$HOME/.local/bin/shortcmds" + PATH="$PATH:$HOME/.local/bin/shortcmds" fi if [ -d "$HOME/.local/bin/generics" ]; then - export PATH="$PATH:$HOME/.local/bin/generics" + PATH="$PATH:$HOME/.local/bin/generics" fi if [ -d "$HOME/.local/bin/scripts" ]; then - export PATH="$PATH:$HOME/.local/bin/scripts" + PATH="$PATH:$HOME/.local/bin/scripts" fi if [ -d "$HOME/.local/bin/sp" ]; then - export PATH="$PATH:$HOME/.local/bin/sp" + PATH="$PATH:$HOME/.local/bin/sp" fi if [ -d "$HOME/.local/bin/blocks" ]; then - export PATH="$PATH:$HOME/.local/bin/blocks" + PATH="$PATH:$HOME/.local/bin/blocks" fi if [ -d "$HOME/.local/bin/ignore" ]; then - export PATH="$PATH:$HOME/.local/bin/ignore" + PATH="$PATH:$HOME/.local/bin/ignore" fi if [ -d "$HOME/.local/bin" ]; then - export PATH="$PATH:$HOME/.local/bin" + PATH="$PATH:$HOME/.local/bin" fi if [ -d "$HOME/.local/bin/flatpak-sc" ]; then - export PATH="$PATH:$HOME/.local/bin/flatpak-sc" + PATH="$PATH:$HOME/.local/bin/flatpak-sc" fi if [ -d "$HOME/.local/bin/flatpak/exports/bin" ]; then - export PATH="$PATH:$HOME/.local/share/flatpak/exports/bin/" + PATH="$PATH:$HOME/.local/share/flatpak/exports/bin/" fi if [ -d "$CARGO_HOME/bin" ]; then - export PATH="$PATH:$CARGO_HOME/bin" + PATH="$PATH:$CARGO_HOME/bin" fi if [ -d "$GOPATH/bin" ]; then - export PATH="$PATH:$GOPATH/bin" + PATH="$PATH:$GOPATH/bin" fi if [ -d "/opt/REAPER" ]; then export PATH="$PATH:/opt/REAPER" @@ -128,7 +135,7 @@ if [ -d "/opt/safing/portmaster" ]; then export PATH="$PATH:/opt/safing/portmaster" fi if [ -d "/var/lib/flatpak/exports/bin" ]; then - export PATH="$PATH:/var/lib/flatpak/exports/bin" + PATH="$PATH:/var/lib/flatpak/exports/bin" fi if [ -d "/usr/bin" ]; then export PATH="$PATH:/usr/bin" @@ -143,6 +150,8 @@ if [ -d "/sbin" ]; then export PATH="$PATH:/sbin" fi -[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs" ] && . "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs" +# MERGE PATHS +export PATH="$PATH:$SYSPATH" -[ -f /etc/profile.d/nix-daemon.sh ] && . /etc/profile.d/nix-daemon.sh +# CLEANUP +unset SYSPATH -- cgit v1.2.3 From 8afad1f7ac3813c57c851c510ef062fa3739d385 Mon Sep 17 00:00:00 2001 From: GitIR Date: Mon, 10 Jul 2023 23:08:40 -0500 Subject: Fix zsh path exports again because I merged badly --- zsh/.zshenv | 27 --------------------------- 1 file changed, 27 deletions(-) diff --git a/zsh/.zshenv b/zsh/.zshenv index 1840082..1ac6756 100644 --- a/zsh/.zshenv +++ b/zsh/.zshenv @@ -122,33 +122,6 @@ fi if [ -d "$GOPATH/bin" ]; then PATH="$PATH:$GOPATH/bin" fi -if [ -d "/opt/REAPER" ]; then - export PATH="$PATH:/opt/REAPER" -fi -if [ -d "/usr/local/bin" ]; then - export PATH="$PATH:/usr/local/bin" -fi -if [ -d "/usr/local/sbin" ]; then - export PATH="$PATH:/usr/local/sbin" -fi -if [ -d "/opt/safing/portmaster" ]; then - export PATH="$PATH:/opt/safing/portmaster" -fi -if [ -d "/var/lib/flatpak/exports/bin" ]; then - PATH="$PATH:/var/lib/flatpak/exports/bin" -fi -if [ -d "/usr/bin" ]; then - export PATH="$PATH:/usr/bin" -fi -if [ -d "/usr/sbin" ]; then - export PATH="$PATH:/usr/sbin" -fi -if [ -d "/bin" ]; then - export PATH="$PATH:/bin" -fi -if [ -d "/sbin" ]; then - export PATH="$PATH:/sbin" -fi # MERGE PATHS export PATH="$PATH:$SYSPATH" -- cgit v1.2.3 From cd934044acabb919e34a1bf3d13719bcb13decdb Mon Sep 17 00:00:00 2001 From: ZachIR Date: Sat, 15 Jul 2023 15:14:21 -0500 Subject: Install .profile separately from .zshenv --- Makefile | 9 +++- sh/profile | 134 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ zsh/.zshenv | 129 +-------------------------------------------------------- 3 files changed, 143 insertions(+), 129 deletions(-) create mode 100644 sh/profile diff --git a/Makefile b/Makefile index 966bde8..0faf846 100644 --- a/Makefile +++ b/Makefile @@ -2,11 +2,12 @@ VIM := $(shell command -v vim 2>/dev/null) NVIM := $(shell command -v nvim 2>/dev/null) XCONFS := X11/Xresources ZCONFS := zsh/.zshenv +SCONFS := sh/profile DCONFS := doas.conf all: -install: install-xconfigs install-zshconfigs vimplug-vim vimplug-nvim +install: install-xconfigs install-shconfigs install-zshconfigs vimplug-vim vimplug-nvim install-xconfigs: $(XCONFS) @echo "Installing Xorg conf files..." @@ -14,6 +15,12 @@ install-xconfigs: $(XCONFS) @ln -sf `pwd`/X11/Xresources ~/.Xresources @echo "Done." +install-shconfigs: $(SCONFS) + @echo "Installing SH conf files..." + @echo ".profile..." + @ln -sf `pwd`/sh/profile ~/.profile + @echo "Done." + install-zshconfigs: $(ZCONFS) @echo "Installing zsh conf files..." @echo ".zshenv..." diff --git a/sh/profile b/sh/profile new file mode 100644 index 0000000..09a81c1 --- /dev/null +++ b/sh/profile @@ -0,0 +1,134 @@ +# Import ENV from system +. /etc/profile +[ -f /etc/profile.d/nix-daemon.sh ] && . /etc/profile.d/nix-daemon.sh + +# Other XDG paths +export XDG_DATA_HOME=${XDG_DATA_HOME:="$HOME/.local/share"} +export XDG_CACHE_HOME=${XDG_CACHE_HOME:="$HOME/.cache"} +export XDG_CONFIG_HOME=${XDG_CONFIG_HOME:="$HOME/.config"} +[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs" ] && . "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs" + +# Doesn't seem to work +export ANDROID_SDK_HOME="$XDG_CONFIG_HOME"/android +export ANDROID_AVD_HOME="$XDG_DATA_HOME"/android/ +export ANDROID_EMULATOR_HOME="$XDG_DATA_HOME"/android/ +export ADB_VENDOR_KEY="$XDG_CONFIG_HOME"/android + +# Disable files +export LESSHISTFILE=- + +# Fixing Paths +export MBSYNCRC="$XDG_CONFIG_HOME"/isync/mbsyncrc +export ATOM_HOME="$XDG_DATA_HOME"/atom +export XINITRC="$XDG_CONFIG_HOME"/X11/xinitrc +export XSERVERRC="$XDG_CONFIG_HOME"/X11/xserverrc +export GEM_SPEC_CACHE="$XDG_DATA_HOME/ruby/specs" +export GEM_HOME="$XDG_DATA_HOME/ruby/gems" +export NPM_CONFIG_USERCONFIG=$XDG_CONFIG_HOME/npm/npmrc +export GOPATH="$XDG_DATA_HOME"/go +export GNUPGHOME="$XDG_DATA_HOME"/gnupg +export GRADLE_USER_HOME="$XDG_DATA_HOME"/gradle +export NUGET_PACKAGES="$XDG_CACHE_HOME"/NuGetPackages +export RXVT_SOCKET="$XDG_RUNTIME_DIR"/urxvtd +export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java +export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc +export ZDOTDIR=$HOME/.config/zsh +export CARGO_HOME="$XDG_DATA_HOME"/cargo +export WEECHAT_HOME="$XDG_CONFIG_HOME"/weechat +export PASSWORD_STORE_DIR="$XDG_DATA_HOME"/pass +export NOTMUCH_CONFIG="$XDG_CONFIG_HOME"/notmuch/notmuchrc +export NMBGIT="$XDG_DATA_HOME"/notmuch/nmbug +export WINEROOT="$XDG_DATA_HOME"/wineprefixes +export WINEPREFIX="$WINEROOT"/default +export MPD_HOST="$XDG_CONFIG_HOME/mpd/socket" + +# Scaling +export QT_AUTO_SCREEN_SCALE_FACTOR=0 +export QT_SCALE_FACTOR=1 +export QT_SCREEN_SCALE_FACTORS="1;1;1" +export GDK_SCALE=1 +export GDK_DPI_SCALE=1 + +# Theming +export QT_QPA_PLATFORMTHEME=qt5ct + +# Configure apps +export BEMENU_OPTS="-H 36 --fn \"mononoki Nerd Font Mono 24\" --nb \"#000000\" --nf \"#c5c8c6\" --hb \"#39c1ed\" --hf \"#000000\" --cb \"#000000\" --cf \"#000000\" --tf \"#000000\" --tb \"#39c1ed\" --fb \"#000000\" --ff \"#c5c8c6\" --fbb \"#39c1ed\" --fbf \"#198844\"" + +# Fix wayland stuff +export MOZ_ENABLE_WAYLAND=1 +export XKB_DEFAULT_OPTIONS=caps:escape +export XDG_CURRENT_DESKTOP=Unity + +# Default Apps +export EDITOR="nvim" +export READER="zathura" +export VISUAL="nvim" +export TERMINAL="alacritty" +export BROWSER="browser" +export VIDEO="mpv" +export IMAGE="sxiv" +export OPENER="xdg-open" +export PAGER="less" + +# Modern SDK +export N64_LIBGCCDIR="/opt/crashsdk/lib/gcc/mips64-elf/12.2.0" +export ROOT=/etc/n64 +export BLENDER_3_0="/usr/bin/blender" + +# DIRS +export SRCDIR="$HOME/.local/src" + +# OLD PATH +export SYSPATH="$PATH" + +# NEW PATH +unset PATH +if [ -d "$HOME/.local/bin/testing" ]; then + PATH="$HOME/.local/bin/testing" +fi +if [ -d "$HOME/.local/bin/shortcmds" ]; then + PATH="$PATH:$HOME/.local/bin/shortcmds" +fi +if [ -d "$HOME/.local/bin/generics" ]; then + PATH="$PATH:$HOME/.local/bin/generics" +fi +if [ -d "$HOME/.local/bin/scripts" ]; then + PATH="$PATH:$HOME/.local/bin/scripts" +fi +if [ -d "$HOME/.local/bin/sp" ]; then + PATH="$PATH:$HOME/.local/bin/sp" +fi +if [ -d "$HOME/.local/bin/blocks" ]; then + PATH="$PATH:$HOME/.local/bin/blocks" +fi +if [ -d "$HOME/.local/bin/ignore" ]; then + PATH="$PATH:$HOME/.local/bin/ignore" +fi +if [ -d "$HOME/local/bin/volsv" ]; then + PATH="$PATH:$HOME/.local/volsv" +fi +if [ -d "$HOME/.local/bin" ]; then + PATH="$PATH:$HOME/.local/bin" +fi +if [ -d "$HOME/.local/bin/flatpak-sc" ]; then + PATH="$PATH:$HOME/.local/bin/flatpak-sc" +fi +if [ -d "$HOME/.local/bin/flatpak/exports/bin" ]; then + PATH="$PATH:$HOME/.local/share/flatpak/exports/bin/" +fi +if [ -d "$CARGO_HOME/bin" ]; then + PATH="$PATH:$CARGO_HOME/bin" +fi +if [ -d "$GOPATH/bin" ]; then + PATH="$PATH:$GOPATH/bin" +fi +if [ -d "/var/lib/flatpak/exports/bin" ]; then + PATH="$PATH:/var/lib/flatpak/exports/bin" +fi + +# MERGE PATHS +export PATH="$PATH:$SYSPATH" + +# CLEANUP +unset SYSPATH diff --git a/zsh/.zshenv b/zsh/.zshenv index 1ac6756..286e11a 100644 --- a/zsh/.zshenv +++ b/zsh/.zshenv @@ -1,130 +1,3 @@ -# Import ENV from system -. /etc/profile -[ -f /etc/profile.d/nix-daemon.sh ] && . /etc/profile.d/nix-daemon.sh - +# ZSH SPECIFIC CONFIGS unset HISTFILE - -# Other XDG paths -export XDG_DATA_HOME=${XDG_DATA_HOME:="$HOME/.local/share"} -export XDG_CACHE_HOME=${XDG_CACHE_HOME:="$HOME/.cache"} -export XDG_CONFIG_HOME=${XDG_CONFIG_HOME:="$HOME/.config"} -[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs" ] && . "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs" - -# Doesn't seem to work -export ANDROID_SDK_HOME="$XDG_CONFIG_HOME"/android -export ANDROID_AVD_HOME="$XDG_DATA_HOME"/android/ -export ANDROID_EMULATOR_HOME="$XDG_DATA_HOME"/android/ -export ADB_VENDOR_KEY="$XDG_CONFIG_HOME"/android - -# Disable files -export LESSHISTFILE=- - -# Fixing Paths -export MBSYNCRC="$XDG_CONFIG_HOME"/isync/mbsyncrc -export ATOM_HOME="$XDG_DATA_HOME"/atom -export XINITRC="$XDG_CONFIG_HOME"/X11/xinitrc -export XSERVERRC="$XDG_CONFIG_HOME"/X11/xserverrc -export GEM_SPEC_CACHE="$XDG_DATA_HOME/ruby/specs" -export GEM_HOME="$XDG_DATA_HOME/ruby/gems" -export NPM_CONFIG_USERCONFIG=$XDG_CONFIG_HOME/npm/npmrc -export GOPATH="$XDG_DATA_HOME"/go -export GNUPGHOME="$XDG_DATA_HOME"/gnupg -export GRADLE_USER_HOME="$XDG_DATA_HOME"/gradle -export NUGET_PACKAGES="$XDG_CACHE_HOME"/NuGetPackages -export RXVT_SOCKET="$XDG_RUNTIME_DIR"/urxvtd -export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java -export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc export ZDOTDIR=$HOME/.config/zsh -#export HISTFILE="$XDG_DATA_HOME"/zsh/history -export CARGO_HOME="$XDG_DATA_HOME"/cargo -export WEECHAT_HOME="$XDG_CONFIG_HOME"/weechat -export PASSWORD_STORE_DIR="$XDG_DATA_HOME"/pass -export NOTMUCH_CONFIG="$XDG_CONFIG_HOME"/notmuch/notmuchrc -export NMBGIT="$XDG_DATA_HOME"/notmuch/nmbug -export WINEROOT="$XDG_DATA_HOME"/wineprefixes -export WINEPREFIX="$WINEROOT"/default - -export MPD_HOST="$XDG_CONFIG_HOME/mpd/socket" - -# Scaling -export QT_AUTO_SCREEN_SCALE_FACTOR=0 -export QT_SCALE_FACTOR=1 -export QT_SCREEN_SCALE_FACTORS="1;1;1" -export GDK_SCALE=1 -export GDK_DPI_SCALE=1 - -# Theming -export QT_QPA_PLATFORMTHEME=qt5ct - -# Configure apps -export BEMENU_OPTS="-H 36 --fn \"mononoki Nerd Font Mono 24\" --nb \"#000000\" --nf \"#c5c8c6\" --hb \"#39c1ed\" --hf \"#000000\" --cb \"#000000\" --cf \"#000000\" --tf \"#000000\" --tb \"#39c1ed\" --fb \"#000000\" --ff \"#c5c8c6\" --fbb \"#39c1ed\" --fbf \"#198844\"" - -# Fix wayland stuff -export MOZ_ENABLE_WAYLAND=1 -export XKB_DEFAULT_OPTIONS=caps:escape -export XDG_CURRENT_DESKTOP=Unity - -# Default Apps -export EDITOR="nvim" -export READER="zathura" -export VISUAL="nvim" -export TERMINAL="alacritty" -export BROWSER="browser" -export VIDEO="mpv" -export IMAGE="sxiv" -export OPENER="xdg-open" -export PAGER="less" - -# DIRS -export SRCDIR="$HOME/.local/src" - -# KSH -export ENV="$XDG_CONFIG_HOME/mksh/mkshrc" - -# OLD PATH -export SYSPATH="$PATH" - -# NEW PATH -unset PATH -if [ -d "$HOME/.local/bin/testing" ]; then - PATH="$HOME/.local/bin/testing" -fi -if [ -d "$HOME/.local/bin/shortcmds" ]; then - PATH="$PATH:$HOME/.local/bin/shortcmds" -fi -if [ -d "$HOME/.local/bin/generics" ]; then - PATH="$PATH:$HOME/.local/bin/generics" -fi -if [ -d "$HOME/.local/bin/scripts" ]; then - PATH="$PATH:$HOME/.local/bin/scripts" -fi -if [ -d "$HOME/.local/bin/sp" ]; then - PATH="$PATH:$HOME/.local/bin/sp" -fi -if [ -d "$HOME/.local/bin/blocks" ]; then - PATH="$PATH:$HOME/.local/bin/blocks" -fi -if [ -d "$HOME/.local/bin/ignore" ]; then - PATH="$PATH:$HOME/.local/bin/ignore" -fi -if [ -d "$HOME/.local/bin" ]; then - PATH="$PATH:$HOME/.local/bin" -fi -if [ -d "$HOME/.local/bin/flatpak-sc" ]; then - PATH="$PATH:$HOME/.local/bin/flatpak-sc" -fi -if [ -d "$HOME/.local/bin/flatpak/exports/bin" ]; then - PATH="$PATH:$HOME/.local/share/flatpak/exports/bin/" -fi -if [ -d "$CARGO_HOME/bin" ]; then - PATH="$PATH:$CARGO_HOME/bin" -fi -if [ -d "$GOPATH/bin" ]; then - PATH="$PATH:$GOPATH/bin" -fi - -# MERGE PATHS -export PATH="$PATH:$SYSPATH" - -# CLEANUP -unset SYSPATH -- cgit v1.2.3 From 1af44e735c4b23d209ad50391be257bad68390bd Mon Sep 17 00:00:00 2001 From: ZachIR Date: Sat, 15 Jul 2023 15:11:46 -0500 Subject: Add keybinding to set image to wallpaper in nsxiv --- nsxiv/exec/key-handler | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100755 nsxiv/exec/key-handler diff --git a/nsxiv/exec/key-handler b/nsxiv/exec/key-handler new file mode 100755 index 0000000..3db850a --- /dev/null +++ b/nsxiv/exec/key-handler @@ -0,0 +1,9 @@ +#!/bin/sh +while read file; do + case "$1" in + "w") + cp "$file" ~/background.jpg + t -r hyprpaper + ;; + esac +done -- cgit v1.2.3 From 26e98434af9d2e2e3c221d243543e7bb8a9c24af Mon Sep 17 00:00:00 2001 From: ZachIR Date: Sat, 15 Jul 2023 16:32:11 -0500 Subject: Use cptv for image preview in lf --- lf/3q | 2 -- lf/cleaner | 4 --- lf/lfrc | 6 +++-- lf/preview | 91 -------------------------------------------------------------- 4 files changed, 4 insertions(+), 99 deletions(-) delete mode 100755 lf/3q delete mode 100755 lf/cleaner delete mode 100755 lf/preview diff --git a/lf/3q b/lf/3q deleted file mode 100755 index 06ec272..0000000 --- a/lf/3q +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -chafa "$1" diff --git a/lf/cleaner b/lf/cleaner deleted file mode 100755 index a184d84..0000000 --- a/lf/cleaner +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -if [ -n "$FIFO_UEBERZUG" ]; then - printf '{"action": "remove", "identifier": "PREVIEW"}\n' > "$FIFO_UEBERZUG" -fi diff --git a/lf/lfrc b/lf/lfrc index df622de..d83069e 100644 --- a/lf/lfrc +++ b/lf/lfrc @@ -1,6 +1,8 @@ set ratios 1:2:3 -set cleaner ~/.config/lf/cleaner -set previewer ~/.config/lf/preview +set cleaner ctpvclear +set previewer ctpv +&ctpv -s $id . +&ctpvquit $id # Basic Settings set preview true set drawbox false diff --git a/lf/preview b/lf/preview deleted file mode 100755 index 6140cf7..0000000 --- a/lf/preview +++ /dev/null @@ -1,91 +0,0 @@ -#!/bin/sh - -image() { - geometry="$(($2-2))x$3" - chafa "$1" -f sixel -s "$geometry" --animate false | fold -w 65535 -} - -batorcat() { - file="$1" - shift - if command -v bat > /dev/null 2>&1 - then - bat --color=always --style=plain --pager=never "$file" "$@" - else - cat "$file" - fi -} - -glowormdcat() { - file="$1" - shift - if command -v glow > /dev/null 2>&1 - then - glow "$file" - else - mdcat "$file" - fi -} - -CACHE="$HOME/.cache/lf/thumbnail.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | awk '{print $1}'))" - -case "$(printf "%s\n" "$(readlink -f "$1")" | awk '{print tolower($0)}')" in - *.tgz|*.tar.gz) tar tzf "$1" ;; - *.tar.bz2|*.tbz2) tar tjf "$1" ;; - *.tar.txz|*.txz) xz --list "$1" ;; - *.tar) tar tf "$1" ;; - *.zip|*.jar|*.war|*.ear|*.oxt) unzip -l "$1" ;; - *.rar) unrar l "$1" ;; - *.md) - glowormdcat "$1";; - *.7z) 7z l "$1" ;; - *.[1-8]) man "$1" | col -b ;; - *.o) nm "$1";; - *.torrent) transmission-show "$1" ;; - *.iso) iso-info --no-header -l "$1" ;; - *.odt|*.ods|*.odp|*.sxw) odt2txt "$1" ;; - *.doc) catdoc "$1" ;; - *.docx) docx2txt "$1" ;; - *.xml|*.html) w3m -dump "$1";; - *.xls|*.xlsx) - ssconvert --export-type=Gnumeric_stf:stf_csv "$1" "fd://1" | batorcat --language=csv - ;; - *.wav|*.mp3|*.flac|*.m4a|*.wma|*.ape|*.ac3|*.og[agx]|*.spx|*.opus|*.as[fx]|*.mka) - exiftool "$1" - ;; - *.pdf) - [ ! -f "${CACHE}.jpg" ] && \ - pdftoppm -jpeg -f 1 -singlefile "$1" "$CACHE" - image "${CACHE}.jpg" "$2" "$3" "$4" "$5" - ;; - *.epub) - [ ! -f "$CACHE" ] && \ - epub-thumbnailer "$1" "$CACHE" 1024 - image "$CACHE" "$2" "$3" "$4" "$5" - ;; - *.cbz|*.cbr|*.cbt) - [ ! -f "$CACHE" ] && \ - comicthumb "$1" "$CACHE" 1024 - image "$CACHE" "$2" "$3" "$4" "$5" - ;; - *.avi|*.mp4|*.wmv|*.dat|*.3gp|*.ogv|*.mkv|*.mpg|*.mpeg|*.vob|*.fl[icv]|*.m2v|*.mov|*.webm|*.ts|*.mts|*.m4v|*.r[am]|*.qt|*.divx) - [ ! -f "${CACHE}.jpg" ] && \ - ffmpegthumbnailer -i "$1" -o "${CACHE}.jpg" -s 0 -q 5 - image "${CACHE}.jpg" "$2" "$3" "$4" "$5" - ;; - *.bmp|*.jpg|*.jpeg|*.png|*.xpm|*.webp|*.tiff|*.gif|*.jfif|*.ico) - image "$1" "$2" "$3" "$4" "$5" - ;; - *.svg) - [ ! -f "${CACHE}.jpg" ] && \ - convert "$1" "${CACHE}.jpg" - image "${CACHE}.jpg" "$2" "$3" "$4" "$5" - ;; - *.ino) - batorcat --language=cpp "$1" - ;; - *) - batorcat "$1" - ;; -esac -exit 0 -- cgit v1.2.3 From 6389e00e02f22e8b28dd0cce020f231838cd9c21 Mon Sep 17 00:00:00 2001 From: ZachIR Date: Sat, 15 Jul 2023 16:32:41 -0500 Subject: Use kitty instead of alacritty --- hypr/hyprland.conf | 4 +- kitty/kitty.conf | 2343 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 2345 insertions(+), 2 deletions(-) create mode 100644 kitty/kitty.conf diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 4cd8511..fa6e506 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -279,8 +279,8 @@ bind = $mainMod $secdMod, P, exec, passmenu #}}} #{{{ Misc bindings -bind = $mainMod, Return, exec, alacritty -bind = $mainMod $secdMod, F, exec, alacritty -e lfrun +bind = $mainMod, Return, exec, kitty +bind = $mainMod $secdMod, F, exec, kitty -e lfrun bind = $mainMod, W, exec, t waybar bind = $mainMod, Q, exec, loginctl lock-session bind = $mainMod $secdMod CONTROL, Q, exec, systemctl suspend diff --git a/kitty/kitty.conf b/kitty/kitty.conf new file mode 100644 index 0000000..e15933c --- /dev/null +++ b/kitty/kitty.conf @@ -0,0 +1,2343 @@ +# vim:fileencoding=utf-8:foldmethod=marker + +#: Fonts {{{ + +#: kitty has very powerful font management. You can configure +#: individual font faces and even specify special fonts for particular +#: characters. + +font_family mononoki Nerd Font +bold_font auto +italic_font auto +bold_italic_font auto + +#: You can specify different fonts for the bold/italic/bold-italic +#: variants. To get a full list of supported fonts use the `kitty +#: +list-fonts` command. By default they are derived automatically, by +#: the OSes font system. When bold_font or bold_italic_font is set to +#: auto on macOS, the priority of bold fonts is semi-bold, bold, +#: heavy. Setting them manually is useful for font families that have +#: many weight variants like Book, Medium, Thick, etc. For example:: + +#: font_family Operator Mono Book +#: bold_font Operator Mono Medium +#: italic_font Operator Mono Book Italic +#: bold_italic_font Operator Mono Medium Italic + +font_size 10.0 + +#: Font size (in pts) + +# force_ltr no + +#: kitty does not support BIDI (bidirectional text), however, for RTL +#: scripts, words are automatically displayed in RTL. That is to say, +#: in an RTL script, the words "HELLO WORLD" display in kitty as +#: "WORLD HELLO", and if you try to select a substring of an RTL- +#: shaped string, you will get the character that would be there had +#: the the string been LTR. For example, assuming the Hebrew word +#: ירושלים, selecting the character that on the screen appears to be ם +#: actually writes into the selection buffer the character י. kitty's +#: default behavior is useful in conjunction with a filter to reverse +#: the word order, however, if you wish to manipulate RTL glyphs, it +#: can be very challenging to work with, so this option is provided to +#: turn it off. Furthermore, this option can be used with the command +#: line program GNU FriBidi +#: to get BIDI +#: support, because it will force kitty to always treat the text as +#: LTR, which FriBidi expects for terminals. + +# symbol_map + +#: E.g. symbol_map U+E0A0-U+E0A3,U+E0C0-U+E0C7 PowerlineSymbols + +#: Map the specified Unicode codepoints to a particular font. Useful +#: if you need special rendering for some symbols, such as for +#: Powerline. Avoids the need for patched fonts. Each Unicode code +#: point is specified in the form `U+`. You +#: can specify multiple code points, separated by commas and ranges +#: separated by hyphens. This option can be specified multiple times. +#: The syntax is:: + +#: symbol_map codepoints Font Family Name + +# narrow_symbols + +#: E.g. narrow_symbols U+E0A0-U+E0A3,U+E0C0-U+E0C7 1 + +#: Usually, for Private Use Unicode characters and some symbol/dingbat +#: characters, if the character is followed by one or more spaces, +#: kitty will use those extra cells to render the character larger, if +#: the character in the font has a wide aspect ratio. Using this +#: option you can force kitty to restrict the specified code points to +#: render in the specified number of cells (defaulting to one cell). +#: This option can be specified multiple times. The syntax is:: + +#: narrow_symbols codepoints [optionally the number of cells] + +# disable_ligatures never + +#: Choose how you want to handle multi-character ligatures. The +#: default is to always render them. You can tell kitty to not render +#: them when the cursor is over them by using cursor to make editing +#: easier, or have kitty never render them at all by using always, if +#: you don't like them. The ligature strategy can be set per-window +#: either using the kitty remote control facility or by defining +#: shortcuts for it in kitty.conf, for example:: + +#: map alt+1 disable_ligatures_in active always +#: map alt+2 disable_ligatures_in all never +#: map alt+3 disable_ligatures_in tab cursor + +#: Note that this refers to programming ligatures, typically +#: implemented using the calt OpenType feature. For disabling general +#: ligatures, use the font_features option. + +# font_features + +#: E.g. font_features none + +#: Choose exactly which OpenType features to enable or disable. This +#: is useful as some fonts might have features worthwhile in a +#: terminal. For example, Fira Code includes a discretionary feature, +#: zero, which in that font changes the appearance of the zero (0), to +#: make it more easily distinguishable from Ø. Fira Code also includes +#: other discretionary features known as Stylistic Sets which have the +#: tags ss01 through ss20. + +#: For the exact syntax to use for individual features, see the +#: HarfBuzz documentation . + +#: Note that this code is indexed by PostScript name, and not the font +#: family. This allows you to define very precise feature settings; +#: e.g. you can disable a feature in the italic font but not in the +#: regular font. + +#: On Linux, font features are first read from the FontConfig database +#: and then this option is applied, so they can be configured in a +#: single, central place. + +#: To get the PostScript name for a font, use `kitty +list-fonts +#: --psnames`: + +#: .. code-block:: sh + +#: $ kitty +list-fonts --psnames | grep Fira +#: Fira Code +#: Fira Code Bold (FiraCode-Bold) +#: Fira Code Light (FiraCode-Light) +#: Fira Code Medium (FiraCode-Medium) +#: Fira Code Regular (FiraCode-Regular) +#: Fira Code Retina (FiraCode-Retina) + +#: The part in brackets is the PostScript name. + +#: Enable alternate zero and oldstyle numerals:: + +#: font_features FiraCode-Retina +zero +onum + +#: Enable only alternate zero in the bold font:: + +#: font_features FiraCode-Bold +zero + +#: Disable the normal ligatures, but keep the calt feature which (in +#: this font) breaks up monotony:: + +#: font_features TT2020StyleB-Regular -liga +calt + +#: In conjunction with force_ltr, you may want to disable Arabic +#: shaping entirely, and only look at their isolated forms if they +#: show up in a document. You can do this with e.g.:: + +#: font_features UnifontMedium +isol -medi -fina -init + +# modify_font + +#: Modify font characteristics such as the position or thickness of +#: the underline and strikethrough. The modifications can have the +#: suffix px for pixels or % for percentage of original value. No +#: suffix means use pts. For example:: + +#: modify_font underline_position -2 +#: modify_font underline_thickness 150% +#: modify_font strikethrough_position 2px + +#: Additionally, you can modify the size of the cell in which each +#: font glyph is rendered and the baseline at which the glyph is +#: placed in the cell. For example:: + +#: modify_font cell_width 80% +#: modify_font cell_height -2px +#: modify_font baseline 3 + +#: Note that modifying the baseline will automatically adjust the +#: underline and strikethrough positions by the same amount. +#: Increasing the baseline raises glyphs inside the cell and +#: decreasing it lowers them. Decreasing the cell size might cause +#: rendering artifacts, so use with care. + +# box_drawing_scale 0.001, 1, 1.5, 2 + +#: The sizes of the lines used for the box drawing Unicode characters. +#: These values are in pts. They will be scaled by the monitor DPI to +#: arrive at a pixel value. There must be four values corresponding to +#: thin, normal, thick, and very thick lines. + +# undercurl_style thin-sparse + +#: The style with which undercurls are rendered. This option takes the +#: form (thin|thick)-(sparse|dense). Thin and thick control the +#: thickness of the undercurl. Sparse and dense control how often the +#: curl oscillates. With sparse the curl will peak once per character, +#: with dense twice. + +# text_composition_strategy platform + +#: Control how kitty composites text glyphs onto the background color. +#: The default value of platform tries for text rendering as close to +#: "native" for the platform kitty is running on as possible. + +#: A value of legacy uses the old (pre kitty 0.28) strategy for how +#: glyphs are composited. This will make dark text on light +#: backgrounds look thicker and light text on dark backgrounds +#: thinner. It might also make some text appear like the strokes are +#: uneven. + +#: You can fine tune the actual contrast curve used for glyph +#: composition by specifying two space separated numbers for this +#: setting. + +#: The first number is the gamma adjustment, which controls the +#: thickness of dark text on light backgrounds. Increasing the value +#: will make text appear thicker. The default value for this is 1.0 on +#: Linux and 1.7 on macOS. Valid values are 0.01 and above. The result +#: is scaled based on the luminance difference between the background +#: and the foreground. Dark text on light backgrounds receives the +#: full impact of the curve while light text on dark backgrounds is +#: affected very little. + +#: The second number is an additional multiplicative contrast. It is +#: percentage ranging from 0 to 100. The default value is 0 on Linux +#: and 30 on macOS. + +#: If you wish to achieve similar looking thickness in light and dark +#: themes, a good way to experiment is start by setting the value to +#: 1.0 0 and use a dark theme. Then adjust the second parameter until +#: it looks good. Then switch to a light theme and adjust the first +#: parameter until the perceived thickness matches the dark theme. + +#: }}} + +#: Cursor customization {{{ + +cursor #c5c8c6 + +#: Default cursor color. If set to the special value none the cursor +#: will be rendered with a "reverse video" effect. It's color will be +#: the color of the text in the cell it is over and the text will be +#: rendered with the background color of the cell. Note that if the +#: program running in the terminal sets a cursor color, this takes +#: precedence. Also, the cursor colors are modified if the cell +#: background and foreground colors have very low contrast. + +cursor_text_color #333536 + +#: The color of text under the cursor. If you want it rendered with +#: the background color of the cell underneath instead, use the +#: special keyword: background. Note that if cursor is set to none +#: then this option is ignored. + +cursor_shape block + +#: The cursor shape can be one of block, beam, underline. Note that +#: when reloading the config this will be changed only if the cursor +#: shape has not been set by the program running in the terminal. This +#: sets the default cursor shape, applications running in the terminal +#: can override it. In particular, shell integration +#: in kitty sets +#: the cursor shape to beam at shell prompts. You can avoid this by +#: setting shell_integration to no-cursor. + +# cursor_beam_thickness 1.5 + +#: The thickness of the beam cursor (in pts). + +# cursor_underline_thickness 2.0 + +#: The thickness of the underline cursor (in pts). + +# cursor_blink_interval -1 + +#: The interval to blink the cursor (in seconds). Set to zero to +#: disable blinking. Negative values mean use system default. Note +#: that the minimum interval will be limited to repaint_delay. + +# cursor_stop_blinking_after 15.0 + +#: Stop blinking cursor after the specified number of seconds of +#: keyboard inactivity. Set to zero to never stop blinking. + +#: }}} + +#: Scrollback {{{ + +# scrollback_lines 2000 + +#: Number of lines of history to keep in memory for scrolling back. +#: Memory is allocated on demand. Negative numbers are (effectively) +#: infinite scrollback. Note that using very large scrollback is not +#: recommended as it can slow down performance of the terminal and +#: also use large amounts of RAM. Instead, consider using +#: scrollback_pager_history_size. Note that on config reload if this +#: is changed it will only affect newly created windows, not existing +#: ones. + +# scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER + +#: Program with which to view scrollback in a new window. The +#: scrollback buffer is passed as STDIN to this program. If you change +#: it, make sure the program you use can handle ANSI escape sequences +#: for colors and text formatting. INPUT_LINE_NUMBER in the command +#: line above will be replaced by an integer representing which line +#: should be at the top of the screen. Similarly CURSOR_LINE and +#: CURSOR_COLUMN will be replaced by the current cursor position or +#: set to 0 if there is no cursor, for example, when showing the last +#: command output. + +# scrollback_pager_history_size 0 + +#: Separate scrollback history size (in MB), used only for browsing +#: the scrollback buffer with pager. This separate buffer is not +#: available for interactive scrolling but will be piped to the pager +#: program when viewing scrollback buffer in a separate window. The +#: current implementation stores the data in UTF-8, so approximatively +#: 10000 lines per megabyte at 100 chars per line, for pure ASCII, +#: unformatted text. A value of zero or less disables this feature. +#: The maximum allowed size is 4GB. Note that on config reload if this +#: is changed it will only affect newly created windows, not existing +#: ones. + +scrollback_fill_enlarged_window no + +#: Fill new space with lines from the scrollback buffer after +#: enlarging a window. + +# wheel_scroll_multiplier 5.0 + +#: Multiplier for the number of lines scrolled by the mouse wheel. +#: Note that this is only used for low precision scrolling devices, +#: not for high precision scrolling devices on platforms such as macOS +#: and Wayland. Use negative numbers to change scroll direction. See +#: also wheel_scroll_min_lines. + +# wheel_scroll_min_lines 1 + +#: The minimum number of lines scrolled by the mouse wheel. The scroll +#: multiplier wheel_scroll_multiplier only takes effect after it +#: reaches this number. Note that this is only used for low precision +#: scrolling devices like wheel mice that scroll by very small amounts +#: when using the wheel. With a negative number, the minimum number of +#: lines will always be added. + +# touch_scroll_multiplier 1.0 + +#: Multiplier for the number of lines scrolled by a touchpad. Note +#: that this is only used for high precision scrolling devices on +#: platforms such as macOS and Wayland. Use negative numbers to change +#: scroll direction. + +#: }}} + +#: Mouse {{{ + +mouse_hide_wait -1.0 + +#: Hide mouse cursor after the specified number of seconds of the +#: mouse not being used. Set to zero to disable mouse cursor hiding. +#: Set to a negative value to hide the mouse cursor immediately when +#: typing text. Disabled by default on macOS as getting it to work +#: robustly with the ever-changing sea of bugs that is Cocoa is too +#: much effort. + +url_color #0087bd +url_style curly + +#: The color and style for highlighting URLs on mouse-over. url_style +#: can be one of: none, straight, double, curly, dotted, dashed. + +open_url_with url_handler.sh + +#: The program to open clicked URLs. The special value default with +#: first look for any URL handlers defined via the open_actions +#: facility and if non +#: are found, it will use the Operating System's default URL handler +#: (open on macOS and xdg-open on Linux). + +url_prefixes file ftp ftps gemini git gopher http https irc ircs kitty mailto news sftp ssh + +#: The set of URL prefixes to look for when detecting a URL under the +#: mouse cursor. + +detect_urls yes + +#: Detect URLs under the mouse. Detected URLs are highlighted with an +#: underline and the mouse cursor becomes a hand over them. Even if +#: this option is disabled, URLs are still clickable. + +# url_excluded_characters + +#: Additional characters to be disallowed from URLs, when detecting +#: URLs under the mouse cursor. By default, all characters that are +#: legal in URLs are allowed. Additionally, newlines are allowed (but +#: stripped). This is to accommodate programs such as mutt that add +#: hard line breaks even for continued lines. \n can be added to this +#: option to disable this behavior. Special characters can be +#: specified using backslash escapes, to specify a backslash use a +#: double backslash. + +show_hyperlink_targets no + +#: When the mouse hovers over a terminal hyperlink, show the actual +#: URL that will be activated when the hyperlink is clicked. + +copy_on_select no + +#: Copy to clipboard or a private buffer on select. With this set to +#: clipboard, selecting text with the mouse will cause the text to be +#: copied to clipboard. Useful on platforms such as macOS that do not +#: have the concept of primary selection. You can instead specify a +#: name such as a1 to copy to a private kitty buffer. Map a shortcut +#: with the paste_from_buffer action to paste from this private +#: buffer. For example:: + +#: copy_on_select a1 +#: map shift+cmd+v paste_from_buffer a1 + +#: Note that copying to the clipboard is a security risk, as all +#: programs, including websites open in your browser can read the +#: contents of the system clipboard. + +paste_actions quote-urls-at-prompt + +#: A comma separated list of actions to take when pasting text into +#: the terminal. The supported paste actions are: + +#: quote-urls-at-prompt: +#: If the text being pasted is a URL and the cursor is at a shell prompt, +#: automatically quote the URL (needs shell_integration). +#: confirm: +#: Confirm the paste if bracketed paste mode is not active or there is +#: a large amount of text being pasted. +#: filter: +#: Run the filter_paste() function from the file paste-actions.py in +#: the kitty config directory on the pasted text. The text returned by the +#: function will be actually pasted. + +strip_trailing_spaces smart + +#: Remove spaces at the end of lines when copying to clipboard. A +#: value of smart will do it when using normal selections, but not +#: rectangle selections. A value of always will always do it. + +select_by_word_characters @-./_~?&=%+# + +#: Characters considered part of a word when double clicking. In +#: addition to these characters any character that is marked as an +#: alphanumeric character in the Unicode database will be matched. + +# select_by_word_characters_forward + +#: Characters considered part of a word when extending the selection +#: forward on double clicking. In addition to these characters any +#: character that is marked as an alphanumeric character in the +#: Unicode database will be matched. + +#: If empty (default) select_by_word_characters will be used for both +#: directions. + +# click_interval -1.0 + +#: The interval between successive clicks to detect double/triple +#: clicks (in seconds). Negative numbers will use the system default +#: instead, if available, or fallback to 0.5. + +focus_follows_mouse yes + +#: Set the active window to the window under the mouse when moving the +#: mouse around. + +# pointer_shape_when_grabbed arrow + +#: The shape of the mouse pointer when the program running in the +#: terminal grabs the mouse. Valid values are: arrow, beam and hand. + +# default_pointer_shape beam + +#: The default shape of the mouse pointer. Valid values are: arrow, +#: beam and hand. + +# pointer_shape_when_dragging beam + +#: The default shape of the mouse pointer when dragging across text. +#: Valid values are: arrow, beam and hand. + +#: Mouse actions {{{ + +#: Mouse buttons can be mapped to perform arbitrary actions. The +#: syntax is: + +#: .. code-block:: none + +#: mouse_map button-name event-type modes action + +#: Where button-name is one of left, middle, right, b1 ... b8 with +#: added keyboard modifiers. For example: ctrl+shift+left refers to +#: holding the Ctrl+Shift keys while clicking with the left mouse +#: button. The value b1 ... b8 can be used to refer to up to eight +#: buttons on a mouse. + +#: event-type is one of press, release, doublepress, triplepress, +#: click, doubleclick. modes indicates whether the action is performed +#: when the mouse is grabbed by the program running in the terminal, +#: or not. The values are grabbed or ungrabbed or a comma separated +#: combination of them. grabbed refers to when the program running in +#: the terminal has requested mouse events. Note that the click and +#: double click events have a delay of click_interval to disambiguate +#: from double and triple presses. + +#: You can run kitty with the kitty --debug-input command line option +#: to see mouse events. See the builtin actions below to get a sense +#: of what is possible. + +#: If you want to unmap an action, map it to no_op. For example, to +#: disable opening of URLs with a plain click:: + +#: mouse_map left click ungrabbed no_op + +#: See all the mappable actions including mouse actions here +#: . + +#: .. note:: +#: Once a selection is started, releasing the button that started it will +#: automatically end it and no release event will be dispatched. + +# clear_all_mouse_actions no + +#: Remove all mouse action definitions up to this point. Useful, for +#: instance, to remove the default mouse actions. + +#: Click the link under the mouse or move the cursor + +# mouse_map left click ungrabbed mouse_handle_click selection link prompt + +#:: First check for a selection and if one exists do nothing. Then +#:: check for a link under the mouse cursor and if one exists, click +#:: it. Finally check if the click happened at the current shell +#:: prompt and if so, move the cursor to the click location. Note +#:: that this requires shell integration +#:: to work. + +#: Click the link under the mouse or move the cursor even when grabbed + +# mouse_map shift+left click grabbed,ungrabbed mouse_handle_click selection link prompt + +#:: Same as above, except that the action is performed even when the +#:: mouse is grabbed by the program running in the terminal. + +#: Click the link under the mouse cursor + +# mouse_map ctrl+shift+left release grabbed,ungrabbed mouse_handle_click link + +#:: Variant with Ctrl+Shift is present because the simple click based +#:: version has an unavoidable delay of click_interval, to +#:: disambiguate clicks from double clicks. + +#: Discard press event for link click + +# mouse_map ctrl+shift+left press grabbed discard_event + +#:: Prevent this press event from being sent to the program that has +#:: grabbed the mouse, as the corresponding release event is used to +#:: open a URL. + +#: Paste from the primary selection + +# mouse_map middle release ungrabbed paste_from_selection + +#: Start selecting text + +# mouse_map left press ungrabbed mouse_selection normal + +#: Start selecting text in a rectangle + +# mouse_map ctrl+alt+left press ungrabbed mouse_selection rectangle + +#: Select a word + +# mouse_map left doublepress ungrabbed mouse_selection word + +#: Select a line + +# mouse_map left triplepress ungrabbed mouse_selection line + +#: Select line from point + +# mouse_map ctrl+alt+left triplepress ungrabbed mouse_selection line_from_point + +#:: Select from the clicked point to the end of the line. + +#: Extend the current selection + +# mouse_map right press ungrabbed mouse_selection extend + +#:: If you want only the end of the selection to be moved instead of +#:: the nearest boundary, use move-end instead of extend. + +#: Paste from the primary selection even when grabbed + +# mouse_map shift+middle release ungrabbed,grabbed paste_selection +# mouse_map shift+middle press grabbed discard_event + +#: Start selecting text even when grabbed + +# mouse_map shift+left press ungrabbed,grabbed mouse_selection normal + +#: Start selecting text in a rectangle even when grabbed + +# mouse_map ctrl+shift+alt+left press ungrabbed,grabbed mouse_selection rectangle + +#: Select a word even when grabbed + +# mouse_map shift+left doublepress ungrabbed,grabbed mouse_selection word + +#: Select a line even when grabbed + +# mouse_map shift+left triplepress ungrabbed,grabbed mouse_selection line + +#: Select line from point even when grabbed + +# mouse_map ctrl+shift+alt+left triplepress ungrabbed,grabbed mouse_selection line_from_point + +#:: Select from the clicked point to the end of the line even when +#:: grabbed. + +#: Extend the current selection even when grabbed + +# mouse_map shift+right press ungrabbed,grabbed mouse_selection extend + +#: Show clicked command output in pager + +# mouse_map ctrl+shift+right press ungrabbed mouse_show_command_output + +#:: Requires shell integration +#:: to work. + +#: }}} + +#: }}} + +#: Performance tuning {{{ + +# repaint_delay 8.3 + +#: Delay between screen updates (in milliseconds). Decreasing it, +#: increases frames-per-second (FPS) at the cost of more CPU usage. +#: The default value yields ~100 FPS which is more than sufficient for +#: most uses. Note that to actually achieve 100 FPS, you have to +#: either set sync_to_monitor to no or use a monitor with a high +#: refresh rate. Also, to minimize latency when there is pending input +#: to be processed, this option is ignored. + +# input_delay 3 + +#: Delay before input from the program running in the terminal is +#: processed (in milliseconds). Note that decreasing it will increase +#: responsiveness, but also increase CPU usage and might cause flicker +#: in full screen programs that redraw the entire screen on each loop, +#: because kitty is so fast that partial screen updates will be drawn. + +sync_to_monitor no + +#: Sync screen updates to the refresh rate of the monitor. This +#: prevents screen tearing +#: when scrolling. +#: However, it limits the rendering speed to the refresh rate of your +#: monitor. With a very high speed mouse/high keyboard repeat rate, +#: you may notice some slight input latency. If so, set this to no. + +#: }}} + +#: Terminal bell {{{ + +enable_audio_bell no + +#: The audio bell. Useful to disable it in environments that require +#: silence. + +visual_bell_duration 0.0 + +#: The visual bell duration (in seconds). Flash the screen when a bell +#: occurs for the specified number of seconds. Set to zero to disable. + +visual_bell_color none + +#: The color used by visual bell. Set to none will fall back to +#: selection background color. If you feel that the visual bell is too +#: bright, you can set it to a darker color. + +window_alert_on_bell yes + +#: Request window attention on bell. Makes the dock icon bounce on +#: macOS or the taskbar flash on linux. + +# bell_on_tab "🔔 " + +#: Some text or a Unicode symbol to show on the tab if a window in the +#: tab that does not have focus has a bell. If you want to use leading +#: or trailing spaces, surround the text with quotes. See +#: tab_title_template for how this is rendered. + +#: For backwards compatibility, values of yes, y and true are +#: converted to the default bell symbol and no, n, false and none are +#: converted to the empty string. + +command_on_bell none + +#: Program to run when a bell occurs. The environment variable +#: KITTY_CHILD_CMDLINE can be used to get the program running in the +#: window in which the bell occurred. + +bell_path none + +#: Path to a sound file to play as the bell sound. If set to none, the +#: system default bell sound is used. Must be in a format supported by +#: the operating systems sound API, such as WAV or OGA on Linux +#: (libcanberra) or AIFF, MP3 or WAV on macOS (NSSound) + +# linux_bell_theme __custom + +#: The XDG Sound Theme kitty will use to play the bell sound. Defaults +#: to the custom theme name used by GNOME and Budgie, falling back to +#: the default freedesktop theme if it does not exist. This option may +#: be removed if Linux ever provides desktop-agnostic support for +#: setting system sound themes. + +#: }}} + +#: Window layout {{{ + +# remember_window_size yes +initial_window_width 960 +initial_window_height 540 + +#: If enabled, the OS Window size will be remembered so that new +#: instances of kitty will have the same size as the previous +#: instance. If disabled, the OS Window will initially have size +#: configured by initial_window_width/height, in pixels. You can use a +#: suffix of "c" on the width/height values to have them interpreted +#: as number of cells instead of pixels. + +enabled_layouts all + +#: The enabled window layouts. A comma separated list of layout names. +#: The special value all means all layouts. The first listed layout +#: will be used as the startup layout. Default configuration is all +#: layouts in alphabetical order. For a list of available layouts, see +#: the layouts . + +window_resize_step_cells 2 +window_resize_step_lines 2 + +#: The step size (in units of cell width/cell height) to use when +#: resizing kitty windows in a layout with the shortcut +#: start_resizing_window. The cells value is used for horizontal +#: resizing, and the lines value is used for vertical resizing. + +window_border_width 0.5pt + +#: The width of window borders. Can be either in pixels (px) or pts +#: (pt). Values in pts will be rounded to the nearest number of pixels +#: based on screen resolution. If not specified, the unit is assumed +#: to be pts. Note that borders are displayed only when more than one +#: window is visible. They are meant to separate multiple windows. + +draw_minimal_borders yes + +#: Draw only the minimum borders needed. This means that only the +#: borders that separate the window from a neighbor are drawn. Note +#: that setting a non-zero window_margin_width overrides this and +#: causes all borders to be drawn. + +window_margin_width 0 + +#: The window margin (in pts) (blank area outside the border). A +#: single value sets all four sides. Two values set the vertical and +#: horizontal sides. Three values set top, horizontal and bottom. Four +#: values set top, right, bottom and left. + +# single_window_margin_width -1 + +#: The window margin to use when only a single window is visible (in +#: pts). Negative values will cause the value of window_margin_width +#: to be used instead. A single value sets all four sides. Two values +#: set the vertical and horizontal sides. Three values set top, +#: horizontal and bottom. Four values set top, right, bottom and left. + +# window_padding_width 0 + +#: The window padding (in pts) (blank area between the text and the +#: window border). A single value sets all four sides. Two values set +#: the vertical and horizontal sides. Three values set top, horizontal +#: and bottom. Four values set top, right, bottom and left. + +placement_strategy center + +#: When the window size is not an exact multiple of the cell size, the +#: cell area of the terminal window will have some extra padding on +#: the sides. You can control how that padding is distributed with +#: this option. Using a value of center means the cell area will be +#: placed centrally. A value of top-left means the padding will be +#: only at the bottom and right edges. + +# active_border_color #00ff00 + +#: The color for the border of the active window. Set this to none to +#: not draw borders around the active window. + +# inactive_border_color #cccccc + +#: The color for the border of inactive windows. + +# bell_border_color #ff5a00 + +#: The color for the border of inactive windows in which a bell has +#: occurred. + +# inactive_text_alpha 1.0 + +#: Fade the text in inactive windows by the specified amount (a number +#: between zero and one, with zero being fully faded). + +# hide_window_decorations no + +#: Hide the window decorations (title-bar and window borders) with +#: yes. On macOS, titlebar-only can be used to only hide the titlebar. +#: Whether this works and exactly what effect it has depends on the +#: window manager/operating system. Note that the effects of changing +#: this option when reloading config are undefined. + +# window_logo_path none + +#: Path to a logo image. Must be in PNG format. Relative paths are +#: interpreted relative to the kitty config directory. The logo is +#: displayed in a corner of every kitty window. The position is +#: controlled by window_logo_position. Individual windows can be +#: configured to have different logos either using the launch action +#: or the remote control facility. + +# window_logo_position bottom-right + +#: Where to position the window logo in the window. The value can be +#: one of: top-left, top, top-right, left, center, right, bottom-left, +#: bottom, bottom-right. + +# window_logo_alpha 0.5 + +#: The amount the logo should be faded into the background. With zero +#: being fully faded and one being fully opaque. + +# resize_debounce_time 0.1 + +#: The time to wait before redrawing the screen when a resize event is +#: received (in seconds). On platforms such as macOS, where the +#: operating system sends events corresponding to the start and end of +#: a resize, this number is ignored. + +resize_draw_strategy static + +#: Choose how kitty draws a window while a resize is in progress. A +#: value of static means draw the current window contents, mostly +#: unchanged. A value of scale means draw the current window contents +#: scaled. A value of blank means draw a blank window. A value of size +#: means show the window size in cells. + +# resize_in_steps no + +#: Resize the OS window in steps as large as the cells, instead of +#: with the usual pixel accuracy. Combined with initial_window_width +#: and initial_window_height in number of cells, this option can be +#: used to keep the margins as small as possible when resizing the OS +#: window. Note that this does not currently work on Wayland. + +# visual_window_select_characters 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ + +#: The list of characters for visual window selection. For example, +#: for selecting a window to focus on with focus_visible_window. The +#: value should be a series of unique numbers or alphabets, case +#: insensitive, from the set [0-9A-Z]. Specify your preference as a +#: string of characters. + +# confirm_os_window_close -1 + +#: Ask for confirmation when closing an OS window or a tab with at +#: least this number of kitty windows in it by window manager (e.g. +#: clicking the window close button or pressing the operating system +#: shortcut to close windows) or by the close_tab action. A value of +#: zero disables confirmation. This confirmation also applies to +#: requests to quit the entire application (all OS windows, via the +#: quit action). Negative values are converted to positive ones, +#: however, with shell_integration enabled, using negative values +#: means windows sitting at a shell prompt are not counted, only +#: windows where some command is currently running. Note that if you +#: want confirmation when closing individual windows, you can map the +#: close_window_with_confirmation action. + +#: }}} + +#: Tab bar {{{ + +# tab_bar_edge bottom + +#: The edge to show the tab bar on, top or bottom. + +# tab_bar_margin_width 0.0 + +#: The margin to the left and right of the tab bar (in pts). + +# tab_bar_margin_height 0.0 0.0 + +#: The margin above and below the tab bar (in pts). The first number +#: is the margin between the edge of the OS Window and the tab bar. +#: The second number is the margin between the tab bar and the +#: contents of the current tab. + +# tab_bar_style fade + +#: The tab bar style, can be one of: + +#: fade +#: Each tab's edges fade into the background color. (See also tab_fade) +#: slant +#: Tabs look like the tabs in a physical file. +#: separator +#: Tabs are separated by a configurable separator. (See also +#: tab_separator) +#: powerline +#: Tabs are shown as a continuous line with "fancy" separators. +#: (See also tab_powerline_style) +#: custom +#: A user-supplied Python function called draw_tab is loaded from the file +#: tab_bar.py in the kitty config directory. For examples of how to +#: write such a function, see the functions named draw_tab_with_* in +#: kitty's source code: kitty/tab_bar.py. See also +#: this discussion +#: for examples from kitty users. +#: hidden +#: The tab bar is hidden. If you use this, you might want to create +#: a mapping for the select_tab action which presents you with a list of +#: tabs and allows for easy switching to a tab. + +# tab_bar_align left + +#: The horizontal alignment of the tab bar, can be one of: left, +#: center, right. + +# tab_bar_min_tabs 2 + +#: The minimum number of tabs that must exist before the tab bar is +#: shown. + +# tab_switch_strategy previous + +#: The algorithm to use when switching to a tab when the current tab +#: is closed. The default of previous will switch to the last used +#: tab. A value of left will switch to the tab to the left of the +#: closed tab. A value of right will switch to the tab to the right of +#: the closed tab. A value of last will switch to the right-most tab. + +# tab_fade 0.25 0.5 0.75 1 + +#: Control how each tab fades into the background when using fade for +#: the tab_bar_style. Each number is an alpha (between zero and one) +#: that controls how much the corresponding cell fades into the +#: background, with zero being no fade and one being full fade. You +#: can change the number of cells used by adding/removing entries to +#: this list. + +# tab_separator " ┇" + +#: The separator between tabs in the tab bar when using separator as +#: the tab_bar_style. + +# tab_powerline_style angled + +#: The powerline separator style between tabs in the tab bar when +#: using powerline as the tab_bar_style, can be one of: angled, +#: slanted, round. + +# tab_activity_symbol none + +#: Some text or a Unicode symbol to show on the tab if a window in the +#: tab that does not have focus has some activity. If you want to use +#: leading or trailing spaces, surround the text with quotes. See +#: tab_title_template for how this is rendered. + +# tab_title_max_length 0 + +#: The maximum number of cells that can be used to render the text in +#: a tab. A value of zero means that no limit is applied. + +# tab_title_template "{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{title}" + +#: A template to render the tab title. The default just renders the +#: title with optional symbols for bell and activity. If you wish to +#: include the tab-index as well, use something like: {index}:{title}. +#: Useful if you have shortcuts mapped for goto_tab N. If you prefer +#: to see the index as a superscript, use {sup.index}. All data +#: available is: + +#: title +#: The current tab title. +#: index +#: The tab index useable with goto_tab N goto_tab shortcuts. +#: layout_name +#: The current layout name. +#: num_windows +#: The number of windows in the tab. +#: num_window_groups +#: The number of window groups (not counting overlay windows) in the tab. +#: tab.active_wd +#: The working directory of the currently active window in the tab +#: (expensive, requires syscall). Use active_oldest_wd to get +#: the directory of the oldest foreground process rather than the newest. +#: tab.active_exe +#: The name of the executable running in the foreground of the currently +#: active window in the tab (expensive, requires syscall). Use +#: active_oldest_exe for the oldest foreground process. +#: max_title_length +#: The maximum title length available. + +#: Note that formatting is done by Python's string formatting +#: machinery, so you can use, for instance, {layout_name[:2].upper()} +#: to show only the first two letters of the layout name, upper-cased. +#: If you want to style the text, you can use styling directives, for +#: example: +#: `{fmt.fg.red}red{fmt.fg.tab}normal{fmt.bg._00FF00}greenbg{fmt.bg.tab}`. +#: Similarly, for bold and italic: +#: `{fmt.bold}bold{fmt.nobold}normal{fmt.italic}italic{fmt.noitalic}`. +#: Note that for backward compatibility, if {bell_symbol} or +#: {activity_symbol} are not present in the template, they are +#: prepended to it. + +# active_tab_title_template none + +#: Template to use for active tabs. If not specified falls back to +#: tab_title_template. + +# active_tab_foreground #000 +# active_tab_background #eee +# active_tab_font_style bold-italic +# inactive_tab_foreground #444 +# inactive_tab_background #999 +# inactive_tab_font_style normal + +#: Tab bar colors and styles. + +# tab_bar_background none + +#: Background color for the tab bar. Defaults to using the terminal +#: background color. + +# tab_bar_margin_color none + +#: Color for the tab bar margin area. Defaults to using the terminal +#: background color for margins above and below the tab bar. For side +#: margins the default color is chosen to match the background color +#: of the neighboring tab. + +#: }}} + +#: Color scheme {{{ + +foreground #c5c8c6 +background #000000 + +#: The foreground and background colors. + +background_opacity 0.8 + +#: The opacity of the background. A number between zero and one, where +#: one is opaque and zero is fully transparent. This will only work if +#: supported by the OS (for instance, when using a compositor under +#: X11). Note that it only sets the background color's opacity in +#: cells that have the same background color as the default terminal +#: background, so that things like the status bar in vim, powerline +#: prompts, etc. still look good. But it means that if you use a color +#: theme with a background color in your editor, it will not be +#: rendered as transparent. Instead you should change the default +#: background color in your kitty config and not use a background +#: color in the editor color scheme. Or use the escape codes to set +#: the terminals default colors in a shell script to launch your +#: editor. Be aware that using a value less than 1.0 is a (possibly +#: significant) performance hit. If you want to dynamically change +#: transparency of windows, set dynamic_background_opacity to yes +#: (this is off by default as it has a performance cost). Changing +#: this option when reloading the config will only work if +#: dynamic_background_opacity was enabled in the original config. + +background_image none + +#: Path to a background image. Must be in PNG format. + +# background_image_layout tiled + +#: Whether to tile, scale or clamp the background image. The value can +#: be one of tiled, mirror-tiled, scaled, clamped or centered. + +# background_image_linear no + +#: When background image is scaled, whether linear interpolation +#: should be used. + +# dynamic_background_opacity no + +#: Allow changing of the background_opacity dynamically, using either +#: keyboard shortcuts (increase_background_opacity and +#: decrease_background_opacity) or the remote control facility. +#: Changing this option by reloading the config is not supported. + +# background_tint 0.0 + +#: How much to tint the background image by the background color. This +#: option makes it easier to read the text. Tinting is done using the +#: current background color for each window. This option applies only +#: if background_opacity is set and transparent windows are supported +#: or background_image is set. + +# background_tint_gaps 1.0 + +#: How much to tint the background image at the window gaps by the +#: background color, after applying background_tint. Since this is +#: multiplicative with background_tint, it can be used to lighten the +#: tint over the window gaps for a *separated* look. + +# dim_opacity 0.75 + +#: How much to dim text that has the DIM/FAINT attribute set. One +#: means no dimming and zero means fully dimmed (i.e. invisible). + +# selection_foreground #000000 +# selection_background #fffacd + +#: The foreground and background colors for text selected with the +#: mouse. Setting both of these to none will cause a "reverse video" +#: effect for selections, where the selection will be the cell text +#: color and the text will become the cell background color. Setting +#: only selection_foreground to none will cause the foreground color +#: to be used unchanged. Note that these colors can be overridden by +#: the program running in the terminal. + +#: The color table {{{ + +#: The 256 terminal colors. There are 8 basic colors, each color has a +#: dull and bright version, for the first 16 colors. You can set the +#: remaining 240 colors as color16 to color255. + +color0 #1b1d1c +color8 #969896 + +#: black + +color1 #89231d +color9 #cc342b + +#: red + +color2 #198844 +color10 #4eec4e + +#: green + +color3 #ae7518 +color11 #fba922 + +#: yellow + +color4 #2b55b2 +color12 #3971ed + +#: blue + +color5 #784e93 +color13 #a36ac7 + +#: magenta + +color6 #2783a1 +color14 #39c1ed + +#: cyan + +color7 #b4b7b5 +color15 #ffffff + +#: white + +# mark1_foreground black + +#: Color for marks of type 1 + +# mark1_background #98d3cb + +#: Color for marks of type 1 (light steel blue) + +# mark2_foreground black + +#: Color for marks of type 2 + +# mark2_background #f2dcd3 + +#: Color for marks of type 1 (beige) + +# mark3_foreground black + +#: Color for marks of type 3 + +# mark3_background #f274bc + +#: Color for marks of type 3 (violet) + +#: }}} + +#: }}} + +#: Advanced {{{ + +# shell . + +#: The shell program to execute. The default value of . means to use +#: whatever shell is set as the default shell for the current user. +#: Note that on macOS if you change this, you might need to add +#: --login and --interactive to ensure that the shell starts in +#: interactive mode and reads its startup rc files. + +# editor . + +#: The terminal based text editor (such as vim or nano) to use when +#: editing the kitty config file or similar tasks. + +#: The default value of . means to use the environment variables +#: VISUAL and EDITOR in that order. If these variables aren't set, +#: kitty will run your shell ($SHELL -l -i -c env) to see if your +#: shell startup rc files set VISUAL or EDITOR. If that doesn't work, +#: kitty will cycle through various known editors (vim, emacs, etc.) +#: and take the first one that exists on your system. + +# close_on_child_death no + +#: Close the window when the child process (shell) exits. With the +#: default value no, the terminal will remain open when the child +#: exits as long as there are still processes outputting to the +#: terminal (for example disowned or backgrounded processes). When +#: enabled with yes, the window will close as soon as the child +#: process exits. Note that setting it to yes means that any +#: background processes still using the terminal can fail silently +#: because their stdout/stderr/stdin no longer work. + +# remote_control_password + +#: Allow other programs to control kitty using passwords. This option +#: can be specified multiple times to add multiple passwords. If no +#: passwords are present kitty will ask the user for permission if a +#: program tries to use remote control with a password. A password can +#: also *optionally* be associated with a set of allowed remote +#: control actions. For example:: + +#: remote_control_password "my passphrase" get-colors set-colors focus-window focus-tab + +#: Only the specified actions will be allowed when using this +#: password. Glob patterns can be used too, for example:: + +#: remote_control_password "my passphrase" set-tab-* resize-* + +#: To get a list of available actions, run:: + +#: kitty @ --help + +#: A set of actions to be allowed when no password is sent can be +#: specified by using an empty password. For example:: + +#: remote_control_password "" *-colors + +#: Finally, the path to a python module can be specified that provides +#: a function is_cmd_allowed that is used to check every remote +#: control command. For example:: + +#: remote_control_password "my passphrase" my_rc_command_checker.py + +#: Relative paths are resolved from the kitty configuration directory. +#: See rc_custom_auth for details. + +# allow_remote_control no + +#: Allow other programs to control kitty. If you turn this on, other +#: programs can control all aspects of kitty, including sending text +#: to kitty windows, opening new windows, closing windows, reading the +#: content of windows, etc. Note that this even works over SSH +#: connections. The default setting of no prevents any form of remote +#: control. The meaning of the various values are: + +#: password +#: Remote control requests received over both the TTY device and the socket +#: are confirmed based on passwords, see remote_control_password. + +#: socket-only +#: Remote control requests received over a socket are accepted +#: unconditionally. Requests received over the TTY are denied. +#: See listen_on. + +#: socket +#: Remote control requests received over a socket are accepted +#: unconditionally. Requests received over the TTY are confirmed based on +#: password. + +#: no +#: Remote control is completely disabled. + +#: yes +#: Remote control requests are always accepted. + +# listen_on none + +#: Listen to the specified UNIX socket for remote control connections. +#: Note that this will apply to all kitty instances. It can be +#: overridden by the kitty --listen-on command line option, which also +#: supports listening on a TCP socket. This option accepts only UNIX +#: sockets, such as unix:${TEMP}/mykitty or unix:@mykitty (on Linux). +#: Environment variables are expanded and relative paths are resolved +#: with respect to the temporary directory. If {kitty_pid} is present, +#: then it is replaced by the PID of the kitty process, otherwise the +#: PID of the kitty process is appended to the value, with a hyphen. +#: See the help for kitty --listen-on for more details. Note that this +#: will be ignored unless allow_remote_control is set to either: yes, +#: socket or socket-only. Changing this option by reloading the config +#: is not supported. + +# env + +#: Specify the environment variables to be set in all child processes. +#: Using the name with an equal sign (e.g. env VAR=) will set it to +#: the empty string. Specifying only the name (e.g. env VAR) will +#: remove the variable from the child process' environment. Note that +#: environment variables are expanded recursively, for example:: + +#: env VAR1=a +#: env VAR2=${HOME}/${VAR1}/b + +#: The value of VAR2 will be /a/b. + +# watcher + +#: Path to python file which will be loaded for watchers +#: . Can be +#: specified more than once to load multiple watchers. The watchers +#: will be added to every kitty window. Relative paths are resolved +#: relative to the kitty config directory. Note that reloading the +#: config will only affect windows created after the reload. + +# exe_search_path + +#: Control where kitty finds the programs to run. The default search +#: order is: First search the system wide PATH, then ~/.local/bin and +#: ~/bin. If still not found, the PATH defined in the login shell +#: after sourcing all its startup files is tried. Finally, if present, +#: the PATH specified by the env option is tried. + +#: This option allows you to prepend, append, or remove paths from +#: this search order. It can be specified multiple times for multiple +#: paths. A simple path will be prepended to the search order. A path +#: that starts with the + sign will be append to the search order, +#: after ~/bin above. A path that starts with the - sign will be +#: removed from the entire search order. For example:: + +#: exe_search_path /some/prepended/path +#: exe_search_path +/some/appended/path +#: exe_search_path -/some/excluded/path + +# update_check_interval 24 + +#: The interval to periodically check if an update to kitty is +#: available (in hours). If an update is found, a system notification +#: is displayed informing you of the available update. The default is +#: to check every 24 hours, set to zero to disable. Update checking is +#: only done by the official binary builds. Distro packages or source +#: builds do not do update checking. Changing this option by reloading +#: the config is not supported. + +# startup_session none + +#: Path to a session file to use for all kitty instances. Can be +#: overridden by using the kitty --session =none command line option +#: for individual instances. See sessions +#: in the kitty +#: documentation for details. Note that relative paths are interpreted +#: with respect to the kitty config directory. Environment variables +#: in the path are expanded. Changing this option by reloading the +#: config is not supported. + +# clipboard_control write-clipboard write-primary read-clipboard-ask read-primary-ask + +#: Allow programs running in kitty to read and write from the +#: clipboard. You can control exactly which actions are allowed. The +#: possible actions are: write-clipboard, read-clipboard, write- +#: primary, read-primary, read-clipboard-ask, read-primary-ask. The +#: default is to allow writing to the clipboard and primary selection +#: and to ask for permission when a program tries to read from the +#: clipboard. Note that disabling the read confirmation is a security +#: risk as it means that any program, even the ones running on a +#: remote server via SSH can read your clipboard. See also +#: clipboard_max_size. + +# clipboard_max_size 512 + +#: The maximum size (in MB) of data from programs running in kitty +#: that will be stored for writing to the system clipboard. A value of +#: zero means no size limit is applied. See also clipboard_control. + +# file_transfer_confirmation_bypass + +#: The password that can be supplied to the file transfer kitten +#: to skip the +#: transfer confirmation prompt. This should only be used when +#: initiating transfers from trusted computers, over trusted networks +#: or encrypted transports, as it allows any programs running on the +#: remote machine to read/write to the local filesystem, without +#: permission. + +# allow_hyperlinks yes + +#: Process hyperlink escape sequences (OSC 8). If disabled OSC 8 +#: escape sequences are ignored. Otherwise they become clickable +#: links, that you can click with the mouse or by using the hints +#: kitten . The +#: special value of ask means that kitty will ask before opening the +#: link when clicked. + +# shell_integration enabled + +#: Enable shell integration on supported shells. This enables features +#: such as jumping to previous prompts, browsing the output of the +#: previous command in a pager, etc. on supported shells. Set to +#: disabled to turn off shell integration, completely. It is also +#: possible to disable individual features, set to a space separated +#: list of these values: no-rc, no-cursor, no-title, no-cwd, no- +#: prompt-mark, no-complete. See Shell integration +#: for details. + +# allow_cloning ask + +#: Control whether programs running in the terminal can request new +#: windows to be created. The canonical example is clone-in-kitty +#: . +#: By default, kitty will ask for permission for each clone request. +#: Allowing cloning unconditionally gives programs running in the +#: terminal (including over SSH) permission to execute arbitrary code, +#: as the user who is running the terminal, on the computer that the +#: terminal is running on. + +# clone_source_strategies venv,conda,env_var,path + +#: Control what shell code is sourced when running clone-in-kitty in +#: the newly cloned window. The supported strategies are: + +#: venv +#: Source the file $VIRTUAL_ENV/bin/activate. This is used by the +#: Python stdlib venv module and allows cloning venvs automatically. +#: conda +#: Run conda activate $CONDA_DEFAULT_ENV. This supports the virtual +#: environments created by conda. +#: env_var +#: Execute the contents of the environment variable +#: KITTY_CLONE_SOURCE_CODE with eval. +#: path +#: Source the file pointed to by the environment variable +#: KITTY_CLONE_SOURCE_PATH. + +#: This option must be a comma separated list of the above values. +#: This only source the first valid one in the above order. + +# term xterm-kitty + +#: The value of the TERM environment variable to set. Changing this +#: can break many terminal programs, only change it if you know what +#: you are doing, not because you read some advice on "Stack Overflow" +#: to change it. The TERM variable is used by various programs to get +#: information about the capabilities and behavior of the terminal. If +#: you change it, depending on what programs you run, and how +#: different the terminal you are changing it to is, various things +#: from key-presses, to colors, to various advanced features may not +#: work. Changing this option by reloading the config will only affect +#: newly created windows. + +#: }}} + +#: OS specific tweaks {{{ + +# wayland_titlebar_color system + +#: The color of the kitty window's titlebar on Wayland systems with +#: client side window decorations such as GNOME. A value of system +#: means to use the default system color, a value of background means +#: to use the background color of the currently active window and +#: finally you can use an arbitrary color, such as #12af59 or red. + +# macos_titlebar_color system + +#: The color of the kitty window's titlebar on macOS. A value of +#: system means to use the default system color, light or dark can +#: also be used to set it explicitly. A value of background means to +#: use the background color of the currently active window and finally +#: you can use an arbitrary color, such as #12af59 or red. WARNING: +#: This option works by using a hack when arbitrary color (or +#: background) is configured, as there is no proper Cocoa API for it. +#: It sets the background color of the entire window and makes the +#: titlebar transparent. As such it is incompatible with +#: background_opacity. If you want to use both, you are probably +#: better off just hiding the titlebar with hide_window_decorations. + +# macos_option_as_alt no + +#: Use the Option key as an Alt key on macOS. With this set to no, +#: kitty will use the macOS native Option+Key to enter Unicode +#: character behavior. This will break any Alt+Key keyboard shortcuts +#: in your terminal programs, but you can use the macOS Unicode input +#: technique. You can use the values: left, right or both to use only +#: the left, right or both Option keys as Alt, instead. Note that +#: kitty itself always treats Option the same as Alt. This means you +#: cannot use this option to configure different kitty shortcuts for +#: Option+Key vs. Alt+Key. Also, any kitty shortcuts using +#: Option/Alt+Key will take priority, so that any such key presses +#: will not be passed to terminal programs running inside kitty. +#: Changing this option by reloading the config is not supported. + +# macos_hide_from_tasks no + +#: Hide the kitty window from running tasks on macOS (⌘+Tab and the +#: Dock). Changing this option by reloading the config is not +#: supported. + +# macos_quit_when_last_window_closed no + +#: Have kitty quit when all the top-level windows are closed on macOS. +#: By default, kitty will stay running, even with no open windows, as +#: is the expected behavior on macOS. + +# macos_window_resizable yes + +#: Disable this if you want kitty top-level OS windows to not be +#: resizable on macOS. Changing this option by reloading the config +#: will only affect newly created OS windows. + +# macos_thicken_font 0 + +#: Draw an extra border around the font with the given width, to +#: increase legibility at small font sizes on macOS. For example, a +#: value of 0.75 will result in rendering that looks similar to sub- +#: pixel antialiasing at common font sizes. Note that in modern kitty, +#: this option is obsolete (although still supported). Consider using +#: text_composition_strategy instead. + +# macos_traditional_fullscreen no + +#: Use the macOS traditional full-screen transition, that is faster, +#: but less pretty. + +# macos_show_window_title_in all + +#: Control where the window title is displayed on macOS. A value of +#: window will show the title of the currently active window at the +#: top of the macOS window. A value of menubar will show the title of +#: the currently active window in the macOS global menu bar, making +#: use of otherwise wasted space. A value of all will show the title +#: in both places, and none hides the title. See +#: macos_menubar_title_max_length for how to control the length of the +#: title in the menu bar. + +# macos_menubar_title_max_length 0 + +#: The maximum number of characters from the window title to show in +#: the macOS global menu bar. Values less than one means that there is +#: no maximum limit. + +# macos_custom_beam_cursor no + +#: Use a custom mouse cursor for macOS that is easier to see on both +#: light and dark backgrounds. Nowadays, the default macOS cursor +#: already comes with a white border. WARNING: this might make your +#: mouse cursor invisible on dual GPU machines. Changing this option +#: by reloading the config is not supported. + +# macos_colorspace srgb + +#: The colorspace in which to interpret terminal colors. The default +#: of srgb will cause colors to match those seen in web browsers. The +#: value of default will use whatever the native colorspace of the +#: display is. The value of displayp3 will use Apple's special +#: snowflake display P3 color space, which will result in over +#: saturated (brighter) colors with some color shift. Reloading +#: configuration will change this value only for newly created OS +#: windows. + +# linux_display_server auto + +#: Choose between Wayland and X11 backends. By default, an appropriate +#: backend based on the system state is chosen automatically. Set it +#: to x11 or wayland to force the choice. Changing this option by +#: reloading the config is not supported. + +#: }}} + +#: Keyboard shortcuts {{{ + +#: Keys are identified simply by their lowercase Unicode characters. +#: For example: a for the A key, [ for the left square bracket key, +#: etc. For functional keys, such as Enter or Escape, the names are +#: present at Functional key definitions +#: . +#: For modifier keys, the names are ctrl (control, ⌃), shift (⇧), alt +#: (opt, option, ⌥), super (cmd, command, ⌘). See also: GLFW mods +#: + +#: On Linux you can also use XKB key names to bind keys that are not +#: supported by GLFW. See XKB keys +#: for a list of key names. The name to use is the part +#: after the XKB_KEY_ prefix. Note that you can only use an XKB key +#: name for keys that are not known as GLFW keys. + +#: Finally, you can use raw system key codes to map keys, again only +#: for keys that are not known as GLFW keys. To see the system key +#: code for a key, start kitty with the kitty --debug-input option, +#: kitty will output some debug text for every key event. In that text +#: look for native_code, the value of that becomes the key name in the +#: shortcut. For example: + +#: .. code-block:: none + +#: on_key_input: glfw key: 0x61 native_code: 0x61 action: PRESS mods: none text: 'a' + +#: Here, the key name for the A key is 0x61 and you can use it with:: + +#: map ctrl+0x61 something + +#: to map Ctrl+A to something. + +#: You can use the special action no_op to unmap a keyboard shortcut +#: that is assigned in the default configuration:: + +#: map kitty_mod+space no_op + +#: If you would like kitty to completely ignore a key event, not even +#: sending it to the program running in the terminal, map it to +#: discard_event:: + +#: map kitty_mod+f1 discard_event + +#: You can combine multiple actions to be triggered by a single +#: shortcut with combine action, using the syntax below:: + +#: map key combine action1 action2 action3 ... + +#: For example:: + +#: map kitty_mod+e combine : new_window : next_layout + +#: This will create a new window and switch to the next available +#: layout. + +#: You can use multi-key shortcuts with the syntax shown below:: + +#: map key1>key2>key3 action + +#: For example:: + +#: map ctrl+f>2 set_font_size 20 + +#: The full list of actions that can be mapped to key presses is +#: available here . + +# kitty_mod ctrl+shift + +#: Special modifier key alias for default shortcuts. You can change +#: the value of this option to alter all default shortcuts that use +#: kitty_mod. + +# clear_all_shortcuts no + +#: Remove all shortcut definitions up to this point. Useful, for +#: instance, to remove the default shortcuts. + +# action_alias + +#: E.g. action_alias launch_tab launch --type=tab --cwd=current + +#: Define action aliases to avoid repeating the same options in +#: multiple mappings. Aliases can be defined for any action and will +#: be expanded recursively. For example, the above alias allows you to +#: create mappings to launch a new tab in the current working +#: directory without duplication:: + +#: map f1 launch_tab vim +#: map f2 launch_tab emacs + +#: Similarly, to alias kitten invocation:: + +#: action_alias hints kitten hints --hints-offset=0 + +# kitten_alias + +#: E.g. kitten_alias hints hints --hints-offset=0 + +#: Like action_alias above, but specifically for kittens. Generally, +#: prefer to use action_alias. This option is a legacy version, +#: present for backwards compatibility. It causes all invocations of +#: the aliased kitten to be substituted. So the example above will +#: cause all invocations of the hints kitten to have the --hints- +#: offset=0 option applied. + +#: Clipboard {{{ + +#: Copy to clipboard + +# map kitty_mod+c copy_to_clipboard +# map cmd+c copy_to_clipboard + +#:: There is also a copy_or_interrupt action that can be optionally +#:: mapped to Ctrl+C. It will copy only if there is a selection and +#:: send an interrupt otherwise. Similarly, +#:: copy_and_clear_or_interrupt will copy and clear the selection or +#:: send an interrupt if there is no selection. + +#: Paste from clipboard + +# map kitty_mod+v paste_from_clipboard +# map cmd+v paste_from_clipboard + +#: Paste from selection + +# map kitty_mod+s paste_from_selection +# map shift+insert paste_from_selection + +#: Pass selection to program + +# map kitty_mod+o pass_selection_to_program + +#:: You can also pass the contents of the current selection to any +#:: program with pass_selection_to_program. By default, the system's +#:: open program is used, but you can specify your own, the selection +#:: will be passed as a command line argument to the program. For +#:: example:: + +#:: map kitty_mod+o pass_selection_to_program firefox + +#:: You can pass the current selection to a terminal program running +#:: in a new kitty window, by using the @selection placeholder:: + +#:: map kitty_mod+y new_window less @selection + +#: }}} + +#: Scrolling {{{ + +#: Scroll line up + +# map kitty_mod+up scroll_line_up +# map kitty_mod+k scroll_line_up +# map opt+cmd+page_up scroll_line_up +# map cmd+up scroll_line_up + +#: Scroll line down + +# map kitty_mod+down scroll_line_down +# map kitty_mod+j scroll_line_down +# map opt+cmd+page_down scroll_line_down +# map cmd+down scroll_line_down + +#: Scroll page up + +# map kitty_mod+page_up scroll_page_up +# map cmd+page_up scroll_page_up + +#: Scroll page down + +# map kitty_mod+page_down scroll_page_down +# map cmd+page_down scroll_page_down + +#: Scroll to top + +# map kitty_mod+home scroll_home +# map cmd+home scroll_home + +#: Scroll to bottom + +# map kitty_mod+end scroll_end +# map cmd+end scroll_end + +#: Scroll to previous shell prompt + +# map kitty_mod+z scroll_to_prompt -1 + +#:: Use a parameter of 0 for scroll_to_prompt to scroll to the last +#:: jumped to or the last clicked position. Requires shell +#:: integration +#:: to work. + +#: Scroll to next shell prompt + +# map kitty_mod+x scroll_to_prompt 1 + +#: Browse scrollback buffer in pager + +# map kitty_mod+h show_scrollback + +#:: You can pipe the contents of the current screen and history +#:: buffer as STDIN to an arbitrary program using launch --stdin- +#:: source. For example, the following opens the scrollback buffer in +#:: less in an overlay window:: + +#:: map f1 launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay less +G -R + +#:: For more details on piping screen and buffer contents to external +#:: programs, see launch . + +#: Browse output of the last shell command in pager + +# map kitty_mod+g show_last_command_output + +#:: You can also define additional shortcuts to get the command +#:: output. For example, to get the first command output on screen:: + +#:: map f1 show_first_command_output_on_screen + +#:: To get the command output that was last accessed by a keyboard +#:: action or mouse action:: + +#:: map f1 show_last_visited_command_output + +#:: You can pipe the output of the last command run in the shell +#:: using the launch action. For example, the following opens the +#:: output in less in an overlay window:: + +#:: map f1 launch --stdin-source=@last_cmd_output --stdin-add-formatting --type=overlay less +G -R + +#:: To get the output of the first command on the screen, use +#:: @first_cmd_output_on_screen. To get the output of the last jumped +#:: to command, use @last_visited_cmd_output. + +#:: Requires shell integration +#:: to work. + +#: }}} + +#: Window management {{{ + +#: New window + +# map kitty_mod+enter new_window +# map cmd+enter new_window + +#:: You can open a new kitty window running an arbitrary program, for +#:: example:: + +#:: map kitty_mod+y launch mutt + +#:: You can open a new window with the current working directory set +#:: to the working directory of the current window using:: + +#:: map ctrl+alt+enter launch --cwd=current + +#:: You can open a new window that is allowed to control kitty via +#:: the kitty remote control facility with launch --allow-remote- +#:: control. Any programs running in that window will be allowed to +#:: control kitty. For example:: + +#:: map ctrl+enter launch --allow-remote-control some_program + +#:: You can open a new window next to the currently active window or +#:: as the first window, with:: + +#:: map ctrl+n launch --location=neighbor +#:: map ctrl+f launch --location=first + +#:: For more details, see launch +#:: . + +#: New OS window + +# map kitty_mod+n new_os_window +# map cmd+n new_os_window + +#:: Works like new_window above, except that it opens a top-level OS +#:: window. In particular you can use new_os_window_with_cwd to open +#:: a window with the current working directory. + +#: Close window + +# map kitty_mod+w close_window +# map shift+cmd+d close_window + +#: Next window + +# map kitty_mod+] next_window + +#: Previous window + +# map kitty_mod+[ previous_window + +#: Move window forward + +# map kitty_mod+f move_window_forward + +#: Move window backward + +# map kitty_mod+b move_window_backward + +#: Move window to top + +# map kitty_mod+` move_window_to_top + +#: Start resizing window + +# map kitty_mod+r start_resizing_window +# map cmd+r start_resizing_window + +#: First window + +# map kitty_mod+1 first_window +# map cmd+1 first_window + +#: Second window + +# map kitty_mod+2 second_window +# map cmd+2 second_window + +#: Third window + +# map kitty_mod+3 third_window +# map cmd+3 third_window + +#: Fourth window + +# map kitty_mod+4 fourth_window +# map cmd+4 fourth_window + +#: Fifth window + +# map kitty_mod+5 fifth_window +# map cmd+5 fifth_window + +#: Sixth window + +# map kitty_mod+6 sixth_window +# map cmd+6 sixth_window + +#: Seventh window + +# map kitty_mod+7 seventh_window +# map cmd+7 seventh_window + +#: Eight window + +# map kitty_mod+8 eighth_window +# map cmd+8 eighth_window + +#: Ninth window + +# map kitty_mod+9 ninth_window +# map cmd+9 ninth_window + +#: Tenth window + +# map kitty_mod+0 tenth_window + +#: Visually select and focus window + +# map kitty_mod+f7 focus_visible_window + +#:: Display overlay numbers and alphabets on the window, and switch +#:: the focus to the window when you press the key. When there are +#:: only two windows, the focus will be switched directly without +#:: displaying the overlay. You can change the overlay characters and +#:: their order with option visual_window_select_characters. + +#: Visually swap window with another + +# map kitty_mod+f8 swap_with_window + +#:: Works like focus_visible_window above, but swaps the window. + +#: }}} + +#: Tab management {{{ + +#: Next tab + +# map kitty_mod+right next_tab +# map shift+cmd+] next_tab +# map ctrl+tab next_tab + +#: Previous tab + +# map kitty_mod+left previous_tab +# map shift+cmd+[ previous_tab +# map ctrl+shift+tab previous_tab + +#: New tab + +# map kitty_mod+t new_tab +# map cmd+t new_tab + +#: Close tab + +# map kitty_mod+q close_tab +# map cmd+w close_tab + +#: Close OS window + +# map shift+cmd+w close_os_window + +#: Move tab forward + +# map kitty_mod+. move_tab_forward + +#: Move tab backward + +# map kitty_mod+, move_tab_backward + +#: Set tab title + +# map kitty_mod+alt+t set_tab_title +# map shift+cmd+i set_tab_title + + +#: You can also create shortcuts to go to specific tabs, with 1 being +#: the first tab, 2 the second tab and -1 being the previously active +#: tab, and any number larger than the last tab being the last tab:: + +#: map ctrl+alt+1 goto_tab 1 +#: map ctrl+alt+2 goto_tab 2 + +#: Just as with new_window above, you can also pass the name of +#: arbitrary commands to run when using new_tab and new_tab_with_cwd. +#: Finally, if you want the new tab to open next to the current tab +#: rather than at the end of the tabs list, use:: + +#: map ctrl+t new_tab !neighbor [optional cmd to run] +#: }}} + +#: Layout management {{{ + +#: Next layout + +# map kitty_mod+l next_layout + + +#: You can also create shortcuts to switch to specific layouts:: + +#: map ctrl+alt+t goto_layout tall +#: map ctrl+alt+s goto_layout stack + +#: Similarly, to switch back to the previous layout:: + +#: map ctrl+alt+p last_used_layout + +#: There is also a toggle_layout action that switches to the named +#: layout or back to the previous layout if in the named layout. +#: Useful to temporarily "zoom" the active window by switching to the +#: stack layout:: + +#: map ctrl+alt+z toggle_layout stack +#: }}} + +#: Font sizes {{{ + +#: You can change the font size for all top-level kitty OS windows at +#: a time or only the current one. + +#: Increase font size + +# map kitty_mod+equal change_font_size all +2.0 +# map kitty_mod+plus change_font_size all +2.0 +# map kitty_mod+kp_add change_font_size all +2.0 +# map cmd+plus change_font_size all +2.0 +# map cmd+equal change_font_size all +2.0 +# map shift+cmd+equal change_font_size all +2.0 + +#: Decrease font size + +# map kitty_mod+minus change_font_size all -2.0 +# map kitty_mod+kp_subtract change_font_size all -2.0 +# map cmd+minus change_font_size all -2.0 +# map shift+cmd+minus change_font_size all -2.0 + +#: Reset font size + +# map kitty_mod+backspace change_font_size all 0 +# map cmd+0 change_font_size all 0 + + +#: To setup shortcuts for specific font sizes:: + +#: map kitty_mod+f6 change_font_size all 10.0 + +#: To setup shortcuts to change only the current OS window's font +#: size:: + +#: map kitty_mod+f6 change_font_size current 10.0 +#: }}} + +#: Select and act on visible text {{{ + +#: Use the hints kitten to select text and either pass it to an +#: external program or insert it into the terminal or copy it to the +#: clipboard. + +#: Open URL + +# map kitty_mod+e open_url_with_hints + +#:: Open a currently visible URL using the keyboard. The program used +#:: to open the URL is specified in open_url_with. + +#: Insert selected path + +# map kitty_mod+p>f kitten hints --type path --program - + +#:: Select a path/filename and insert it into the terminal. Useful, +#:: for instance to run git commands on a filename output from a +#:: previous git command. + +#: Open selected path + +# map kitty_mod+p>shift+f kitten hints --type path + +#:: Select a path/filename and open it with the default open program. + +#: Insert selected line + +# map kitty_mod+p>l kitten hints --type line --program - + +#:: Select a line of text and insert it into the terminal. Useful for +#:: the output of things like: `ls -1`. + +#: Insert selected word + +# map kitty_mod+p>w kitten hints --type word --program - + +#:: Select words and insert into terminal. + +#: Insert selected hash + +# map kitty_mod+p>h kitten hints --type hash --program - + +#:: Select something that looks like a hash and insert it into the +#:: terminal. Useful with git, which uses SHA1 hashes to identify +#:: commits. + +#: Open the selected file at the selected line + +# map kitty_mod+p>n kitten hints --type linenum + +#:: Select something that looks like filename:linenum and open it in +#:: vim at the specified line number. + +#: Open the selected hyperlink + +# map kitty_mod+p>y kitten hints --type hyperlink + +#:: Select a hyperlink (i.e. a URL that has been marked as such by +#:: the terminal program, for example, by `ls --hyperlink=auto`). + + +#: The hints kitten has many more modes of operation that you can map +#: to different shortcuts. For a full description see hints kitten +#: . +#: }}} + +#: Miscellaneous {{{ + +#: Show documentation + +# map kitty_mod+f1 show_kitty_doc overview + +#: Toggle fullscreen + +# map kitty_mod+f11 toggle_fullscreen +# map ctrl+cmd+f toggle_fullscreen + +#: Toggle maximized + +# map kitty_mod+f10 toggle_maximized + +#: Toggle macOS secure keyboard entry + +# map opt+cmd+s toggle_macos_secure_keyboard_entry + +#: Unicode input + +# map kitty_mod+u kitten unicode_input +# map ctrl+cmd+space kitten unicode_input + +#: Edit config file + +# map kitty_mod+f2 edit_config_file +# map cmd+, edit_config_file + +#: Open the kitty command shell + +# map kitty_mod+escape kitty_shell window + +#:: Open the kitty shell in a new window / tab / overlay / os_window +#:: to control kitty using commands. + +#: Increase background opacity + +# map kitty_mod+a>m set_background_opacity +0.1 + +#: Decrease background opacity + +# map kitty_mod+a>l set_background_opacity -0.1 + +#: Make background fully opaque + +# map kitty_mod+a>1 set_background_opacity 1 + +#: Reset background opacity + +# map kitty_mod+a>d set_background_opacity default + +#: Reset the terminal + +# map kitty_mod+delete clear_terminal reset active +# map opt+cmd+r clear_terminal reset active + +#:: You can create shortcuts to clear/reset the terminal. For +#:: example:: + +#:: # Reset the terminal +#:: map f1 clear_terminal reset active +#:: # Clear the terminal screen by erasing all contents +#:: map f1 clear_terminal clear active +#:: # Clear the terminal scrollback by erasing it +#:: map f1 clear_terminal scrollback active +#:: # Scroll the contents of the screen into the scrollback +#:: map f1 clear_terminal scroll active +#:: # Clear everything up to the line with the cursor +#:: map f1 clear_terminal to_cursor active + +#:: If you want to operate on all kitty windows instead of just the +#:: current one, use all instead of active. + +#:: It is also possible to remap Ctrl+L to both scroll the current +#:: screen contents into the scrollback buffer and clear the screen, +#:: instead of just clearing the screen, for example, for ZSH add the +#:: following to ~/.zshrc: + +#:: .. code-block:: zsh + +#:: scroll-and-clear-screen() { +#:: printf '\n%.0s' {1..$LINES} +#:: zle clear-screen +#:: } +#:: zle -N scroll-and-clear-screen +#:: bindkey '^l' scroll-and-clear-screen + +#: Clear up to cursor line + +# map cmd+k clear_terminal to_cursor active + +#: Reload kitty.conf + +# map kitty_mod+f5 load_config_file +# map ctrl+cmd+, load_config_file + +#:: Reload kitty.conf, applying any changes since the last time it +#:: was loaded. Note that a handful of options cannot be dynamically +#:: changed and require a full restart of kitty. Particularly, when +#:: changing shortcuts for actions located on the macOS global menu +#:: bar, a full restart is needed. You can also map a keybinding to +#:: load a different config file, for example:: + +#:: map f5 load_config /path/to/alternative/kitty.conf + +#:: Note that all options from the original kitty.conf are discarded, +#:: in other words the new configuration *replace* the old ones. + +#: Debug kitty configuration + +# map kitty_mod+f6 debug_config +# map opt+cmd+, debug_config + +#:: Show details about exactly what configuration kitty is running +#:: with and its host environment. Useful for debugging issues. + +#: Send arbitrary text on key presses + +#:: E.g. map ctrl+shift+alt+h send_text all Hello World + +#:: You can tell kitty to send arbitrary (UTF-8) encoded text to the +#:: client program when pressing specified shortcut keys. For +#:: example:: + +#:: map ctrl+alt+a send_text all Special text + +#:: This will send "Special text" when you press the Ctrl+Alt+A key +#:: combination. The text to be sent decodes ANSI C escapes +#:: so you can use escapes like \e to send control +#:: codes or \u21fb to send Unicode characters (or you can just input +#:: the Unicode characters directly as UTF-8 text). You can use +#:: `kitty +kitten show_key` to get the key escape codes you want to +#:: emulate. + +#:: The first argument to send_text is the keyboard modes in which to +#:: activate the shortcut. The possible values are normal, +#:: application, kitty or a comma separated combination of them. The +#:: modes normal and application refer to the DECCKM cursor key mode +#:: for terminals, and kitty refers to the kitty extended keyboard +#:: protocol. The special value all means all of them. + +#:: Some more examples:: + +#:: # Output a word and move the cursor to the start of the line (like typing and pressing Home) +#:: map ctrl+alt+a send_text normal Word\e[H +#:: map ctrl+alt+a send_text application Word\eOH +#:: # Run a command at a shell prompt (like typing the command and pressing Enter) +#:: map ctrl+alt+a send_text normal,application some command with arguments\r + +#: Open kitty Website + +# map shift+cmd+/ open_url https://sw.kovidgoyal.net/kitty/ + +#: Hide macOS kitty application + +# map cmd+h hide_macos_app + +#: Hide macOS other applications + +# map opt+cmd+h hide_macos_other_apps + +#: Minimize macOS window + +# map cmd+m minimize_macos_window + +#: Quit kitty + +# map cmd+q quit + +#: }}} + +#: }}} -- cgit v1.2.3 From 26902ca0a06e2760bcc5e044c436e995215ed01c Mon Sep 17 00:00:00 2001 From: ZachIR Date: Sat, 15 Jul 2023 16:33:05 -0500 Subject: Add puffyan invidious as search engine --- qutebrowser/config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qutebrowser/config.py b/qutebrowser/config.py index e75f46c..7d0f4a6 100644 --- a/qutebrowser/config.py +++ b/qutebrowser/config.py @@ -192,7 +192,7 @@ c.url.default_page = 'https://search.brave.com' # the search engine name to the search term, e.g. `:open google # qutebrowser`. # Type: Dict -c.url.searchengines = {'DEFAULT': 'https://search.brave.com/search?q={}', 'dg': 'https://duckduckgo.com/?q={}', 'aw': 'https://wiki.archlinux.org/?search={}', 'sp': 'https://startpage.com/sp/search?q={}', 'yt': 'https://yewtu.be/search?q={}', 'lv': 'https://videos.lukesmith.xyz/search?search={}&searchTarget=local'} +c.url.searchengines = {'DEFAULT': 'https://search.brave.com/search?q={}', 'dg': 'https://duckduckgo.com/?q={}', 'aw': 'https://wiki.archlinux.org/?search={}', 'sp': 'https://startpage.com/sp/search?q={}', 'py': 'https://vid.puffyan.us/search?q={}', 'yt': 'https://yewtu.be/search?q={}', 'lv': 'https://videos.lukesmith.xyz/search?search={}&searchTarget=local'} # Page(s) to open at the start. # Type: List of FuzzyUrl, or FuzzyUrl -- cgit v1.2.3 From 4583c3a72a5372f282f21fa2d85af5996c886a7e Mon Sep 17 00:00:00 2001 From: ZachIR Date: Sat, 15 Jul 2023 16:34:03 -0500 Subject: Add blank cptv config file --- ctpv/config | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 ctpv/config diff --git a/ctpv/config b/ctpv/config new file mode 100644 index 0000000..e69de29 -- cgit v1.2.3 From 8b013be40cacce92964fc5ef145a4b8762e38e2f Mon Sep 17 00:00:00 2001 From: ZachIR Date: Sun, 16 Jul 2023 12:52:49 -0500 Subject: Set master split to 0.55 by default --- hypr/hyprland.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index fa6e506..3831cd5 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -102,7 +102,7 @@ dwindle { #{{{ Master layout options master { special_scale_factor = 0.55 - mfact = 0.69 + mfact = 0.55 # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more new_is_master = false new_on_top = true @@ -164,7 +164,7 @@ binde = $mainMod, J, layoutmsg, cyclenext #MASTER binde = $mainMod, K, layoutmsg, cycleprev #MASTER binde = $mainMod, H, splitratio, -0.01 #MASTER binde = $mainMod, L, splitratio, +0.01 #MASTER -bind = $mainMod+SHIFT, O, splitratio, exact 0.5 #MASTER +bind = $mainMod+SHIFT, O, splitratio, exact 0.55 #MASTER bind = $mainMod, O, splitratio, exact 0.69 #MASTER #}}} -- cgit v1.2.3 From 16ba0c8b76a0b3d34910a8a65f7a3f0bd6f704dd Mon Sep 17 00:00:00 2001 From: ZachIR Date: Sun, 16 Jul 2023 17:50:11 -0500 Subject: Fix window swallowing to kitty --- hypr/hyprland.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 3831cd5..f118d75 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -55,7 +55,7 @@ general { #{{{ Misc options misc { enable_swallow = true - swallow_regex = ^(Alacritty)$ + swallow_regex = ^(kitty)$ vfr = false } #}}} -- cgit v1.2.3 From d300dc0020fbe7579be489a03ece7b62ad33ffd2 Mon Sep 17 00:00:00 2001 From: zachir Date: Mon, 17 Jul 2023 22:16:01 -0500 Subject: Make ^l reset to delete terminal history --- zsh/.zshrc | 1 + 1 file changed, 1 insertion(+) diff --git a/zsh/.zshrc b/zsh/.zshrc index d11c091..91abe7c 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -94,6 +94,7 @@ bindkey -- '^[[B' down-line-or-beg [[ -n "${key[Right]}" ]] && bindkey -- "${key[Right]}" forward-char [[ -n "${key[Shift-Tab]}" ]] && bindkey -- "${key[Shift-Tab]}" reverse-menu-complete [[ -n "${key[Delete]}" ]] && bindkey -- "${key[Delete]}" delete-char +bindkey -s '^l' "^ureset^M" #eval "$(starship init zsh)" type portmaster-start 2>&1 >/dev/null && eval "$(portmaster-start --data=/opt/safing/portmaster completion zsh)" -- cgit v1.2.3 From e6e39108c14cf31ff014148f06f07d2dbb3d7546 Mon Sep 17 00:00:00 2001 From: zachir Date: Mon, 17 Jul 2023 22:17:19 -0500 Subject: Add resize keybindings and sync to mon --- kitty/kitty.conf | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/kitty/kitty.conf b/kitty/kitty.conf index e15933c..3adc435 100644 --- a/kitty/kitty.conf +++ b/kitty/kitty.conf @@ -639,7 +639,7 @@ focus_follows_mouse yes #: Performance tuning {{{ -# repaint_delay 8.3 +repaint_delay 10 #: Delay between screen updates (in milliseconds). Decreasing it, #: increases frames-per-second (FPS) at the cost of more CPU usage. @@ -657,7 +657,7 @@ focus_follows_mouse yes #: in full screen programs that redraw the entire screen on each loop, #: because kitty is so fast that partial screen updates will be drawn. -sync_to_monitor no +sync_to_monitor yes #: Sync screen updates to the refresh rate of the monitor. This #: prevents screen tearing @@ -2069,22 +2069,23 @@ color15 #ffffff #: Increase font size -# map kitty_mod+equal change_font_size all +2.0 +map kitty_mod+equal change_font_size all +0.5 # map kitty_mod+plus change_font_size all +2.0 # map kitty_mod+kp_add change_font_size all +2.0 # map cmd+plus change_font_size all +2.0 -# map cmd+equal change_font_size all +2.0 +map cmd+equal change_font_size all +0.5 # map shift+cmd+equal change_font_size all +2.0 #: Decrease font size -# map kitty_mod+minus change_font_size all -2.0 +map kitty_mod+minus change_font_size all -0.5 # map kitty_mod+kp_subtract change_font_size all -2.0 -# map cmd+minus change_font_size all -2.0 +map cmd+minus change_font_size all -0.5 # map shift+cmd+minus change_font_size all -2.0 #: Reset font size +map kitty_mod+plus change_font_size all 0 # map kitty_mod+backspace change_font_size all 0 # map cmd+0 change_font_size all 0 -- cgit v1.2.3 From e09c03565380ee4f171ad4f7e0c8e575af360acb Mon Sep 17 00:00:00 2001 From: zachir Date: Mon, 17 Jul 2023 22:18:29 -0500 Subject: Simplify ytfzf conf to only what's needed --- ytfzf/conf.sh | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/ytfzf/conf.sh b/ytfzf/conf.sh index d715a7e..13a1368 100644 --- a/ytfzf/conf.sh +++ b/ytfzf/conf.sh @@ -1,9 +1,4 @@ -YTFZF_EXTMENU=' bemenu -i -l 30 -p "Search:" ' - -YTFZF_PLAYER='mpv --save-position-on-quit' -YTFZF_PLAYER_FORMAT='mpv --save-position-on-quit --ytdl-format=' - cache_dir="$XDG_CACHE_HOME/ytfzf" history_file="$cache_dir/ytfzf_hst" current_file="$cache_dir/ytfzf_cur" -thumbnail_viewer="catimg" +thumbnail_viewer=kitty -- cgit v1.2.3 From 08ad7323467cf935cfaea311b4bd274da367407c Mon Sep 17 00:00:00 2001 From: zachir Date: Mon, 17 Jul 2023 22:21:56 -0500 Subject: Ignore some more stuff --- .gitignore | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index f9ecd3e..987656f 100644 --- a/.gitignore +++ b/.gitignore @@ -95,8 +95,9 @@ mpd/socket mpd/state mpd/sticker.sql mpd/playlists/ -modprobed.db monero-project/ +modprobed-db.conf +modprobed.db mimeapps.list mksh/history minigalaxy/ @@ -174,7 +175,7 @@ calcurse/* caffeine blender/ autostart/ -ardour6/ +ardour*/ amsynth/ aIR Impulse RackEX.settings abook/ -- cgit v1.2.3 From de292fa493b8ba10d656f87f1dbc7ce2fa35ba85 Mon Sep 17 00:00:00 2001 From: zachir Date: Mon, 17 Jul 2023 22:22:19 -0500 Subject: Ignore one more thing --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 987656f..a662c8f 100644 --- a/.gitignore +++ b/.gitignore @@ -130,6 +130,7 @@ kaidan/ joplin/ joplin-desktop/ java/ +jamesdsp/ jack_mixer/ jack/ isync/ -- cgit v1.2.3 From 9aeae2e662aa1384b14fa507b525dadd30300499 Mon Sep 17 00:00:00 2001 From: zachir Date: Mon, 17 Jul 2023 22:25:31 -0500 Subject: On second thought, reset should be alias --- sh/aliases | 2 +- zsh/.zshrc | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/sh/aliases b/sh/aliases index e3996bd..93672b9 100644 --- a/sh/aliases +++ b/sh/aliases @@ -43,7 +43,7 @@ alias ga='git add -A' alias gd='git diff' ## Single Chars -alias r='cd ~ && clear && exec $SHELL' +alias r='cd ~ && reset && exec $SHELL' alias q='exit' alias c='clear' alias m='make' diff --git a/zsh/.zshrc b/zsh/.zshrc index 91abe7c..d11c091 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -94,7 +94,6 @@ bindkey -- '^[[B' down-line-or-beg [[ -n "${key[Right]}" ]] && bindkey -- "${key[Right]}" forward-char [[ -n "${key[Shift-Tab]}" ]] && bindkey -- "${key[Shift-Tab]}" reverse-menu-complete [[ -n "${key[Delete]}" ]] && bindkey -- "${key[Delete]}" delete-char -bindkey -s '^l' "^ureset^M" #eval "$(starship init zsh)" type portmaster-start 2>&1 >/dev/null && eval "$(portmaster-start --data=/opt/safing/portmaster completion zsh)" -- cgit v1.2.3 From f8168692d7c42a168270c73974607730619342ce Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 20 Jul 2023 00:58:46 -0500 Subject: Fix catclip on wayland --- sh/functions | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sh/functions b/sh/functions index 3c73fb7..e8515d8 100644 --- a/sh/functions +++ b/sh/functions @@ -1,6 +1,10 @@ #!/bin/sh catclip () { - cat $@ | xclip -selection clipboard + if [ -n "$WAYLAND_DISPLAY" ]; then + cat $@ | wl-copy + elif [ -n "$DISPLAY" ]; then + cat $@ | xclip -selection clipboard + fi } catpass () { -- cgit v1.2.3 From d3efffcf885facbbf60066401729d35c67a5eabf Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 20 Jul 2023 01:00:42 -0500 Subject: Ignore some more unnecessary things --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index a662c8f..d3f3c69 100644 --- a/.gitignore +++ b/.gitignore @@ -49,6 +49,7 @@ qtile/__pycache__/ qt6ct/* !qt5ct/qt5ct.conf qt5ct/* +qrcp/ pupgui/ pulse/ protonvpn/ @@ -123,6 +124,7 @@ khal/ keepassxc/ kdenlive-layoutsrc kdenlive-appimagerc +kdenlive.* kdenliverc kdeglobals kdeconnect/ @@ -155,6 +157,7 @@ falkTX/ evolution/ enchant/ emacs/ +easyeffects/ dolphin-emu/ dde-printer.ini dconf/ -- cgit v1.2.3 From 3cf9f7eab68a7070b1eaa3e42a88bd880aa21bd8 Mon Sep 17 00:00:00 2001 From: zachir Date: Wed, 26 Jul 2023 03:32:31 -0500 Subject: add scrolling + scrollback bindings --- kitty/kitty.conf | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/kitty/kitty.conf b/kitty/kitty.conf index 3adc435..99d5440 100644 --- a/kitty/kitty.conf +++ b/kitty/kitty.conf @@ -1755,40 +1755,40 @@ color15 #ffffff #: Scroll line up # map kitty_mod+up scroll_line_up -# map kitty_mod+k scroll_line_up +map kitty_mod+k scroll_line_up # map opt+cmd+page_up scroll_line_up # map cmd+up scroll_line_up #: Scroll line down # map kitty_mod+down scroll_line_down -# map kitty_mod+j scroll_line_down +map kitty_mod+j scroll_line_down # map opt+cmd+page_down scroll_line_down # map cmd+down scroll_line_down #: Scroll page up -# map kitty_mod+page_up scroll_page_up +map kitty_mod+page_up scroll_page_up # map cmd+page_up scroll_page_up #: Scroll page down -# map kitty_mod+page_down scroll_page_down +map kitty_mod+page_down scroll_page_down # map cmd+page_down scroll_page_down #: Scroll to top -# map kitty_mod+home scroll_home +map kitty_mod+home scroll_home # map cmd+home scroll_home #: Scroll to bottom -# map kitty_mod+end scroll_end +map kitty_mod+end scroll_end # map cmd+end scroll_end #: Scroll to previous shell prompt -# map kitty_mod+z scroll_to_prompt -1 +map kitty_mod+z scroll_to_prompt -1 #:: Use a parameter of 0 for scroll_to_prompt to scroll to the last #:: jumped to or the last clicked position. Requires shell @@ -1797,11 +1797,11 @@ color15 #ffffff #: Scroll to next shell prompt -# map kitty_mod+x scroll_to_prompt 1 +map kitty_mod+x scroll_to_prompt 1 #: Browse scrollback buffer in pager -# map kitty_mod+h show_scrollback +map kitty_mod+h show_scrollback #:: You can pipe the contents of the current screen and history #:: buffer as STDIN to an arbitrary program using launch --stdin- @@ -1815,7 +1815,7 @@ color15 #ffffff #: Browse output of the last shell command in pager -# map kitty_mod+g show_last_command_output +map kitty_mod+g show_last_command_output #:: You can also define additional shortcuts to get the command #:: output. For example, to get the first command output on screen:: @@ -1833,6 +1833,8 @@ color15 #ffffff #:: map f1 launch --stdin-source=@last_cmd_output --stdin-add-formatting --type=overlay less +G -R +map f1 launch --stdin-source=@last_cmd_output --type=background wl-copy + #:: To get the output of the first command on the screen, use #:: @first_cmd_output_on_screen. To get the output of the last jumped #:: to command, use @last_visited_cmd_output. -- cgit v1.2.3 From 34dcb8ffa22f836a86a4b80b508b66234722ab44 Mon Sep 17 00:00:00 2001 From: zachir Date: Wed, 26 Jul 2023 03:34:39 -0500 Subject: Ignore ladybird config for now --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index d3f3c69..e40c5ab 100644 --- a/.gitignore +++ b/.gitignore @@ -190,6 +190,7 @@ The Crown EXEX.settings SUPERHOT/ Shibalba EXEX.settings Session/ +Serenity/ SchildiChat/ RVXX v2/ RVXX v2.settings -- cgit v1.2.3 From bada6ae699540b949c2755c2e127b228a2f6b98a Mon Sep 17 00:00:00 2001 From: zachir Date: Wed, 26 Jul 2023 03:54:06 -0500 Subject: Add tofi vertical and use for menu --- hypr/hyprland.conf | 4 ++-- tofi/themes/dmenu_vertical | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 tofi/themes/dmenu_vertical diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index f118d75..f004eb9 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -264,8 +264,8 @@ submap = reset #}}} #{{{ Menu bindings -bind = $mainMod, R, exec, exec j4-dmenu-desktop --dmenu="bemenu -i -l 10 -p \"Run:\"" -bind = $mainMod, D, exec, exec bemenu-run -i -l 15 -p "Run:" +bind = $mainMod, R, exec, exec tofi-drun -c ~/.config/tofi/themes/dmenu_vertical --prompt-text "Run:" +bind = $mainMod, D, exec, exec tofi-run -c ~/.config/tofi/themes/dmenu_vertical --prompt-text "Run:" bind = $mainMod $secdMod, Q, exec, qbc bind = $mainMod $secdMod, W, exec, lwc bind = $mainMod $secdMod, E, exec, mbc diff --git a/tofi/themes/dmenu_vertical b/tofi/themes/dmenu_vertical new file mode 100644 index 0000000..5c7af8b --- /dev/null +++ b/tofi/themes/dmenu_vertical @@ -0,0 +1,21 @@ +include = "colors" + +hidden-character = "*" +anchor = top +width = 100% +height = 600 +horizontal = false +font-size = 24 +prompt-text = "" +font = mononoki Nerd Font Mono +outline-width = 0 +border-width = 0 +min-input-width = 424 +result-spacing = 0 +padding-top = 0 +padding-bottom = 0 +padding-left = 0 +padding-right = 0 +history = false +selection-background-padding = 0 +require-match=false -- cgit v1.2.3 From 1c07e2121563da0de05ccba3188d9f96bbac7265 Mon Sep 17 00:00:00 2001 From: zachir Date: Wed, 2 Aug 2023 01:50:48 -0500 Subject: Make hyprland use 9 workspaces with better waybar --- hypr/hyprland.conf | 3 --- waybar/config | 13 ++++++++++++- waybar/style.css | 4 ++++ 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index f004eb9..915c9cc 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -220,7 +220,6 @@ 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, movetoworkspacesilent, 1 bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2 @@ -231,7 +230,6 @@ bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6 bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7 bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8 bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9 -bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10 bind = $mainMod CONTROL SHIFT, 1, movetoworkspace, 1 bind = $mainMod CONTROL SHIFT, 2, movetoworkspace, 2 bind = $mainMod CONTROL SHIFT, 3, movetoworkspace, 3 @@ -241,7 +239,6 @@ bind = $mainMod CONTROL SHIFT, 6, movetoworkspace, 6 bind = $mainMod CONTROL SHIFT, 7, movetoworkspace, 7 bind = $mainMod CONTROL SHIFT, 8, movetoworkspace, 8 bind = $mainMod CONTROL SHIFT, 9, movetoworkspace, 9 -bind = $mainMod CONTROL SHIFT, 0, movetoworkspace, 10 bind = $mainMod, mouse_down, workspace, e+1 bind = $mainMod, mouse_up, workspace, e-1 #}}} diff --git a/waybar/config b/waybar/config index d762544..63ac30e 100644 --- a/waybar/config +++ b/waybar/config @@ -18,7 +18,18 @@ "wlr/workspaces": { "format": "{name}", "active-only": false, - "all-outputs": true, + "all-outputs": false, + "persistent_workspaces": { + "1": [], + "2": [], + "3": [], + "4": [], + "5": [], + "6": [], + "7": [], + "8": [], + "9": [] + }, "on-scroll-up": "hyprctl dispatch workspace e+1", "on-scroll-down": "hyprctl dispatch workspace e-1", "on-click": "activate" diff --git a/waybar/style.css b/waybar/style.css index f002c9b..8b15dfb 100644 --- a/waybar/style.css +++ b/waybar/style.css @@ -62,6 +62,10 @@ window#waybar.hidden { background-color: #eb4d4b; } +#workspaces button.persistent { + background: black; +} + #mode { background-color: #64727D; border-bottom: 3px solid #ffffff; -- cgit v1.2.3 From 1fc2fe8ecffc349019f31d765d1a1ec13613dd27 Mon Sep 17 00:00:00 2001 From: zachir Date: Wed, 2 Aug 2023 01:51:18 -0500 Subject: Better optimize dmenu_vertical tofi --- tofi/themes/dmenu_vertical | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/tofi/themes/dmenu_vertical b/tofi/themes/dmenu_vertical index 5c7af8b..7b8703f 100644 --- a/tofi/themes/dmenu_vertical +++ b/tofi/themes/dmenu_vertical @@ -11,11 +11,17 @@ font = mononoki Nerd Font Mono outline-width = 0 border-width = 0 min-input-width = 424 -result-spacing = 0 +result-spacing = 0, 12 +selection-background-padding = 0, 12 padding-top = 0 padding-bottom = 0 -padding-left = 0 -padding-right = 0 +padding-left = 12 +padding-right = 12 +margin-top = 0 +margin-bottom = 0 +margin-left = 12 +margin-right = 12 +clip-to-padding=true history = false -selection-background-padding = 0 require-match=false +num-results = true -- cgit v1.2.3 From 58be66b66e6afcd92c1a14e4182df941bb3d36da Mon Sep 17 00:00:00 2001 From: zachir Date: Wed, 16 Aug 2023 13:14:58 -0500 Subject: Fix hyprland new submenu blur --- hypr/hyprland.conf | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 915c9cc..86b4557 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -64,18 +64,24 @@ misc { decoration { # See https://wiki.hyprland.org/Configuring/Variables/ for more rounding = 10 - blur = yes - blur_size = 3 - blur_passes = 1 - blur_new_optimizations = on - blur_xray = yes drop_shadow = yes shadow_range = 4 shadow_render_power = 3 col.shadow = rgba(1a1a1aee) + #{{{ Blur options + blur { + enabled = true + size = 3 + passes = 1 + new_optimizations = true + xray = true + } + #}}} } + #}}} + #{{{ Animations options animations { enabled = no -- cgit v1.2.3 From 4dc7cfd4bab368b26c9803fb14715297ba5505ee Mon Sep 17 00:00:00 2001 From: zachir Date: Wed, 16 Aug 2023 13:15:36 -0500 Subject: Fix menu bindings and add xf86 --- hypr/hyprland.conf | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 86b4557..aa2c040 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -267,8 +267,8 @@ submap = reset #}}} #{{{ Menu bindings -bind = $mainMod, R, exec, exec tofi-drun -c ~/.config/tofi/themes/dmenu_vertical --prompt-text "Run:" -bind = $mainMod, D, exec, exec tofi-run -c ~/.config/tofi/themes/dmenu_vertical --prompt-text "Run:" +bind = $mainMod, R, exec, exec sh -c "$(tofi-drun -c ~/.config/tofi/themes/dmenu_vertical --prompt-text Run:)" +bind = $mainMod, D, exec, exec sh -c "$(tofi-run -c ~/.config/tofi/themes/dmenu_vertical --prompt-text Run:)" bind = $mainMod $secdMod, Q, exec, qbc bind = $mainMod $secdMod, W, exec, lwc bind = $mainMod $secdMod, E, exec, mbc @@ -329,6 +329,10 @@ submap = reset bindl = $secdMod, P, exec, playerctl play-pause bindel = , XF86AudioRaiseVolume, exec, volsv -i 5 bindel = , XF86AudioLowerVolume, exec, volsv -d 5 +bind = , XF86AudioPlay, exec, playerctl play-pause +bind = , XF86AudioStop, exec, playerctl stop +bind = , XF86AudioPrev, exec, playerctl previous +bind = , XF86AudioNext, exec, playerctl next bind = , XF86AudioMute, exec, volsv -t bindl = , XF86AudioMicMute, exec, volsv -m bindel = , XF86MonBrightnessUp, exec, bl -i -- cgit v1.2.3 From dc9907cb8f0e46443e54061f130fa8d65b15a3ce Mon Sep 17 00:00:00 2001 From: zachir Date: Wed, 16 Aug 2023 13:16:41 -0500 Subject: Not using bemenu anymore --- sh/profile | 3 --- 1 file changed, 3 deletions(-) diff --git a/sh/profile b/sh/profile index 09a81c1..1174421 100644 --- a/sh/profile +++ b/sh/profile @@ -52,9 +52,6 @@ export GDK_DPI_SCALE=1 # Theming export QT_QPA_PLATFORMTHEME=qt5ct -# Configure apps -export BEMENU_OPTS="-H 36 --fn \"mononoki Nerd Font Mono 24\" --nb \"#000000\" --nf \"#c5c8c6\" --hb \"#39c1ed\" --hf \"#000000\" --cb \"#000000\" --cf \"#000000\" --tf \"#000000\" --tb \"#39c1ed\" --fb \"#000000\" --ff \"#c5c8c6\" --fbb \"#39c1ed\" --fbf \"#198844\"" - # Fix wayland stuff export MOZ_ENABLE_WAYLAND=1 export XKB_DEFAULT_OPTIONS=caps:escape -- cgit v1.2.3 From e5bad143b929decfbf6cb12a238a9dc115b7a3e9 Mon Sep 17 00:00:00 2001 From: zachir Date: Wed, 16 Aug 2023 13:17:30 -0500 Subject: Fix broken tofi args --- tofi/themes/dmenu_vertical | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tofi/themes/dmenu_vertical b/tofi/themes/dmenu_vertical index 7b8703f..0eb8a30 100644 --- a/tofi/themes/dmenu_vertical +++ b/tofi/themes/dmenu_vertical @@ -11,7 +11,7 @@ font = mononoki Nerd Font Mono outline-width = 0 border-width = 0 min-input-width = 424 -result-spacing = 0, 12 +result-spacing = 0 selection-background-padding = 0, 12 padding-top = 0 padding-bottom = 0 @@ -23,5 +23,5 @@ margin-left = 12 margin-right = 12 clip-to-padding=true history = false -require-match=false -num-results = true +require-match = false +num-results = 15 -- cgit v1.2.3 From ee385d7d75c299c0e6e5ea8daa30f76a65cf39d5 Mon Sep 17 00:00:00 2001 From: zachir Date: Sat, 19 Aug 2023 12:02:40 -0500 Subject: Fix tofi dmenu_vertical --- tofi/themes/dmenu_vertical | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tofi/themes/dmenu_vertical b/tofi/themes/dmenu_vertical index 0eb8a30..1b7259a 100644 --- a/tofi/themes/dmenu_vertical +++ b/tofi/themes/dmenu_vertical @@ -7,11 +7,12 @@ height = 600 horizontal = false font-size = 24 prompt-text = "" +prompt-padding = 24 font = mononoki Nerd Font Mono outline-width = 0 border-width = 0 min-input-width = 424 -result-spacing = 0 +result-spacing = 12 selection-background-padding = 0, 12 padding-top = 0 padding-bottom = 0 -- cgit v1.2.3 From c8e2a28ede55b095c902af8159d7aadcf5af807a Mon Sep 17 00:00:00 2001 From: zachir Date: Sat, 19 Aug 2023 12:03:05 -0500 Subject: Make srsync an alias, and not a script --- sh/aliases | 1 + 1 file changed, 1 insertion(+) diff --git a/sh/aliases b/sh/aliases index 93672b9..6b254d7 100644 --- a/sh/aliases +++ b/sh/aliases @@ -35,6 +35,7 @@ alias v='nvim' ## Change utils alias rm='rm -i' alias cp='cp -i' +alias srsync='rsync -KPUcrtvyz' ## git stuff alias gs='git status' -- cgit v1.2.3 From 0ecfabfed9023dd5c45a9851f452c87eaf56723a Mon Sep 17 00:00:00 2001 From: zachir Date: Sat, 19 Aug 2023 12:03:44 -0500 Subject: Add DP-2 for hyprpaper --- hypr/hyprpaper.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/hypr/hyprpaper.conf b/hypr/hyprpaper.conf index 65bc2e3..daf4d23 100644 --- a/hypr/hyprpaper.conf +++ b/hypr/hyprpaper.conf @@ -8,6 +8,7 @@ wallpaper = eDP-1,~/background.jpg wallpaper = HDMI-A-1,~/background.jpg wallpaper = HDMI-A-2,~/background.jpg wallpaper = DP-1,~/background.jpg +wallpaper = DP-2,~/background.jpg #if more than one monitor in use, can load a 2nd image #wallpaper = monitor2,~/background.jpg # .. more monitors -- cgit v1.2.3 From e3970f64a516957c5c59ed326dc6316919d73f12 Mon Sep 17 00:00:00 2001 From: zachir Date: Wed, 23 Aug 2023 02:02:19 -0500 Subject: Better nvim mapping formatting --- nvim/init.vim | 65 ++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 35 insertions(+), 30 deletions(-) diff --git a/nvim/init.vim b/nvim/init.vim index 6df2934..080625e 100644 --- a/nvim/init.vim +++ b/nvim/init.vim @@ -200,6 +200,8 @@ augroup end " }}} " keybindings {{{ +" direction keys + inoremap gj inoremap gk inoremap g @@ -208,35 +210,38 @@ vnoremap gj vnoremap gk vnoremap g vnoremap g -noremap gj -noremap gk +nnoremap gj +nnoremap gk + +" clear search highlights +nnoremap / :noh " toggles -noremap tn :set number! -noremap tr :set relativenumber! -noremap tt :NERDTreeToggle +nnoremap tn :set number! +nnoremap tr :set relativenumber! +nnoremap tt :NERDTreeToggle " tabs -noremap th :tabprevious -noremap tl :tabnext -noremap tk :tabnew -noremap tj :tabclose +nnoremap th :tabprevious +nnoremap tl :tabnext +nnoremap tk :tabnew +nnoremap tj :tabclose " splits -noremap wh :vertical resize -1 -noremap wj :resize -1 -noremap wk :resize +1 -noremap wl :vertical resize +1 +nnoremap wh :vertical resize -1 +nnoremap wj :resize -1 +nnoremap wk :resize +1 +nnoremap wl :vertical resize +1 " config -noremap en :e ~/.config/nvim/init.vim -noremap ec :source % +nnoremap en :e ~/.config/nvim/init.vim +nnoremap ec :source % " write as root -noremap ZW :w !pkexec tee % >/dev/null +nnoremap ZW :w !pkexec tee % >/dev/null " Goyo -noremap G :Goyo +nnoremap G :Goyo " windows nnoremap h @@ -250,26 +255,26 @@ vnoremap l " files " these may go away soon -noremap xx :q -noremap x! :q! +nnoremap xx :q +nnoremap x! :q! " these are the new standard -noremap qq :q -noremap q! :q! -noremap wq :wq -noremap ww :w -noremap ee :e +nnoremap qq :q +nnoremap q! :q! +nnoremap wq :wq +nnoremap ww :w +nnoremap ee :e " escape for term windows tnoremap " vim-plug -noremap pi :PlugInstall -noremap pu :PlugUpdate -noremap pU :PlugUpgrade -noremap pc :PlugClean +nnoremap pi :PlugInstall +nnoremap pu :PlugUpdate +nnoremap pU :PlugUpgrade +nnoremap pc :PlugClean " fugitive -noremap gp :G pull -noremap gd :G diff % +nnoremap gp :G pull +nnoremap gd :G diff % " }}} -- cgit v1.2.3 From 0e3d7c9afdc49e1b81f976a380a878db0d0c3947 Mon Sep 17 00:00:00 2001 From: zachir Date: Wed, 23 Aug 2023 02:02:51 -0500 Subject: Add zfunc completion path support --- zsh/.zshrc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/zsh/.zshrc b/zsh/.zshrc index d11c091..0c0366f 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -63,6 +63,8 @@ zle -N zle-line-init zle -N zle-keymap-select export KEYTIMEOUT=1 +fpath+="$ZDOTDIR/zfunc" + autoload -Uz compinit promptinit compinit -d $CONFIG/zcompdump promptinit -- cgit v1.2.3 From 6d2ec75f9360a6c61bcc1c27ef012e738be3af9a Mon Sep 17 00:00:00 2001 From: zachir Date: Sat, 24 Jun 2023 15:44:25 -0500 Subject: Not using hyprland anymore. --- hypr/gamemode.sh | 14 --- hypr/hyprland.conf | 343 ---------------------------------------------------- hypr/hyprpaper.conf | 14 --- 3 files changed, 371 deletions(-) delete mode 100755 hypr/gamemode.sh delete mode 100644 hypr/hyprland.conf delete mode 100644 hypr/hyprpaper.conf diff --git a/hypr/gamemode.sh b/hypr/gamemode.sh deleted file mode 100755 index a07ac4a..0000000 --- a/hypr/gamemode.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env sh -HYPRGAMEMODE=$(hyprctl getoption animations:enabled | sed -n '2p' | awk '{print $2}') -if [ $HYPRGAMEMODE = 1 ] ; then - hyprctl --batch "\ - keyword animations:enabled 0;\ - keyword decoration:drop_shadow 0;\ - keyword decoration:blur 0;\ - keyword general:gaps_in 0;\ - keyword general:gaps_out 0;\ - keyword general:border_size 1;\ - keyword decoration:rounding 0" - exit -fi -hyprctl reload diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf deleted file mode 100644 index aa2c040..0000000 --- a/hypr/hyprland.conf +++ /dev/null @@ -1,343 +0,0 @@ -# See https://wiki.hyprland.org/Configuring/Monitors/ -#{{{ Monitor config -monitor = , preferred, auto, 1 -monitor = HDMI-A-1, 1920x1080@60, 0x0, 1 -monitor = DP-1, 1920x1080@60, 1920x0, 1 -#}}} - -# See https://wiki.hyprland.org/Configuring/Keywords/ for more - -#{{{ Autostart -# Execute your favorite apps at launch -# exec-once = waybar & hyprpaper & firefox -exec-once = ~/.config/autostart.sh -exec-once = /usr/lib/polkit-kde-authentication-agent-1 -exec-once = xdph -#}}} - -# Source a file (multi-file configs) -# source = ~/.config/hypr/myColors.conf - -#{{{ Input options -# For all categories, see https://wiki.hyprland.org/Configuring/Variables/ -input { - kb_layout = us - kb_variant = - kb_model = - kb_options = caps:escape - kb_rules = - numlock_by_default = true - scroll_method = "2fg" - follow_mouse = 1 - touchpad { - natural_scroll = no - } - float_switch_override_focus = 0 - sensitivity = 0 # -1.0 - 1.0, 0 means no modification. -} -#}}} - -#{{{ General options -general { - # See https://wiki.hyprland.org/Configuring/Variables/ for more - gaps_in = 5 - gaps_out = 20 - border_size = 2 - #col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg - #col.inactive_border = rgba(595959aa) - col.active_border = rgba(198844ee) - col.inactive_border = rgba(1b1d1cee) - layout = master - no_cursor_warps = false -} -#}}} - -#{{{ Misc options -misc { - enable_swallow = true - swallow_regex = ^(kitty)$ - vfr = false -} -#}}} - -#{{{ Decoration options -decoration { - # See https://wiki.hyprland.org/Configuring/Variables/ for more - rounding = 10 - drop_shadow = yes - shadow_range = 4 - shadow_render_power = 3 - col.shadow = rgba(1a1a1aee) - #{{{ Blur options - blur { - enabled = true - size = 3 - passes = 1 - new_optimizations = true - xray = true - } - #}}} -} - -#}}} - - -#{{{ Animations options -animations { - enabled = no - # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more - 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 layout options -dwindle { - # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more - pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below - preserve_split = yes # you probably want this - special_scale_factor = 0.55 -} -#}}} - -#{{{ Master layout options -master { - special_scale_factor = 0.55 - mfact = 0.55 - # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more - new_is_master = false - new_on_top = true - no_gaps_when_only = true - orientation = left - inherit_fullscreen = true -} -#}}} - -#{{{ Gestures options -gestures { - # See https://wiki.hyprland.org/Configuring/Variables/ for more - workspace_swipe = off -} -#}}} - -#{{{ Device options -# Example per-device config -# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more -device:epic mouse V1 { - sensitivity = -0.5 -} -#}}} - -#{{{ Windowrules -# Example windowrule v1 -# windowrule = float, ^(kitty)$ -# Example windowrule v2 -# windowrulev2 = float, class:^(kitty)$, title:^(kitty)$ -# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more -windowrule = windowdance, title:^(Rhythm Doctor)$ -windowrule = fullscreen, ^(Xephyr)$ -windowrule = float, title:^(LibreWolf - Choose User Profile)$ -windowrulev2 = float, class:^(yabridge-host.exe.so)$, title:^(menu)$ -windowrulev2 = float,floating:0,title:^(menu*) -windowrulev2 = forceinput,title:^(menu*) -windowrulev2 = windowdance,title:^(menu*) -#}}} - -#{{{ Mods -# See https://wiki.hyprland.org/Configuring/Keywords/ for more -$mainMod = ALT -$secdMod = SUPER -#}}} - -#{{{ Layout toggle bind -# Layout toggle -#bind = $mainMod $secdMod, A, exec, hypr-layout -t -#}}} - -#{{{ Master layout binds -# Master layout binds -bind = $mainMod+SHIFT, Return, layoutmsg, swapwithmaster master #MASTER -bind = $mainMod+SHIFT, J, layoutmsg, swapnext #MASTER -bind = $mainMod+SHIFT, K, layoutmsg, swapprev #MASTER -bind = $mainMod+SHIFT, H, layoutmsg, addmaster #MASTER -bind = $mainMod+SHIFT, L, layoutmsg, removemaster #MASTER -binde = $mainMod, J, layoutmsg, cyclenext #MASTER -binde = $mainMod, K, layoutmsg, cycleprev #MASTER -binde = $mainMod, H, splitratio, -0.01 #MASTER -binde = $mainMod, L, splitratio, +0.01 #MASTER -bind = $mainMod+SHIFT, O, splitratio, exact 0.55 #MASTER -bind = $mainMod, O, splitratio, exact 0.69 #MASTER -#}}} - -#{{{ Dwindle layout binds -## Dwindle layout binds -#bind = $mainMod, P, pseudo, #DWINDLE -#bind = $mainMod $secdMod, S, togglesplit, #DWINDLE -## Move focus with mainMod + HJKL -#bind = $mainMod, H, movefocus, l #DWINDLE -#bind = $mainMod, L, movefocus, r #DWINDLE -#bind = $mainMod, K, movefocus, u #DWINDLE -#bind = $mainMod, J, movefocus, d #DWINDLE -## Move window with mainMod + HJKL -#bind = $mainMod SHIFT, L, movewindow, r #DWINDLE -#bind = $mainMod SHIFT, H, movewindow, l #DWINDLE -#bind = $mainMod SHIFT, J, movewindow, d #DWINDLE -#bind = $mainMod SHIFT, K, movewindow, u #DWINDLE -## Resize clients with mainMod + secdMod + HJKL -#binde = $mainMod $secdMod, L, resizeactive, 10 0 #DWINDLE -#binde = $mainMod $secdMod, H, resizeactive, -10 0 #DWINDLE -#binde = $mainMod $secdMod, K, resizeactive, 0 -10 #DWINDLE -#binde = $mainMod $secdMod, J, resizeactive, 0 10 #DWINDLE -#}}} - -#{{{ Group binds -# Group binds -#bind = $mainMod CONTROL, G, togglegroup, -#bind = $mainMod CONTROL, I, lockgroups, lock -#bind = $mainMod CONTROL, U, lockgroups, unlock -#bind = $mainMod CONTROL, H, moveintogroup, r -#bind = $mainMod CONTROL, L, moveintogroup, l -#bind = $mainMod CONTROL, J, moveintogroup, d -#bind = $mainMod CONTROL, K, moveintogroup, u -#}}} - -#{{{ WC binds -bind = $mainMod SHIFT, Q, killactive, -bind = $mainMod SHIFT, E, exit, -bind = $mainMod SHIFT, SPACE, togglefloating, -bind = $mainMod $secdMod, F2, exec, ~/.config/hypr/gamemode.sh -bind = $mainMod, F, fullscreen, 0 -bind = $mainMod, M, fullscreen, 1 -#}}} - -#{{{ Workspace binds -# 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 -# Move active window to a workspace with mainMod + SHIFT + [0-9] -bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1 -bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2 -bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3 -bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4 -bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5 -bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6 -bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7 -bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8 -bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9 -bind = $mainMod CONTROL SHIFT, 1, movetoworkspace, 1 -bind = $mainMod CONTROL SHIFT, 2, movetoworkspace, 2 -bind = $mainMod CONTROL SHIFT, 3, movetoworkspace, 3 -bind = $mainMod CONTROL SHIFT, 4, movetoworkspace, 4 -bind = $mainMod CONTROL SHIFT, 5, movetoworkspace, 5 -bind = $mainMod CONTROL SHIFT, 6, movetoworkspace, 6 -bind = $mainMod CONTROL SHIFT, 7, movetoworkspace, 7 -bind = $mainMod CONTROL SHIFT, 8, movetoworkspace, 8 -bind = $mainMod CONTROL SHIFT, 9, movetoworkspace, 9 -bind = $mainMod, mouse_down, workspace, e+1 -bind = $mainMod, mouse_up, workspace, e-1 -#}}} - -#{{{ Mouse binds -# Move/resize windows with mainMod + LMB/RMB and dragging -bindm = $mainMod, mouse:272, movewindow -bindm = $mainMod, mouse:273, resizewindow -#}}} - -#{{{ Resize submap binds -bind = $mainMod $secdMod, R, submap, resize -submap = resize -binde = CONTROL, L, resizeactive, 10 0 -binde = CONTROL, H, resizeactive, -10 0 -binde = CONTROL, K, resizeactive, 0 -10 -binde = CONTROL, J, resizeactive, 0 10 -binde = , escape, submap, reset -submap = reset -#}}} - -#{{{ Menu bindings -bind = $mainMod, R, exec, exec sh -c "$(tofi-drun -c ~/.config/tofi/themes/dmenu_vertical --prompt-text Run:)" -bind = $mainMod, D, exec, exec sh -c "$(tofi-run -c ~/.config/tofi/themes/dmenu_vertical --prompt-text Run:)" -bind = $mainMod $secdMod, Q, exec, qbc -bind = $mainMod $secdMod, W, exec, lwc -bind = $mainMod $secdMod, E, exec, mbc -bind = $mainMod $secdMod, R, exec, ffc -bind = $mainMod $secdMod, 1, exec, bm -bind = $mainMod $secdMod, comma, exec, dmount -p -bind = $mainMod $secdMod, period, exec, dmenuumount -bind = $mainMod $secdMod CONTROL, U, exec, dmenuunicode -bind = $mainMod $secdMod, U, exec, mprisctl -bind = $mainMod $secdMod, P, exec, passmenu -#}}} - -#{{{ Misc bindings -bind = $mainMod, Return, exec, kitty -bind = $mainMod $secdMod, F, exec, kitty -e lfrun -bind = $mainMod, W, exec, t waybar -bind = $mainMod, Q, exec, loginctl lock-session -bind = $mainMod $secdMod CONTROL, Q, exec, systemctl suspend -bind = $mainMod SHIFT, G, exec, get-app-id -#bind = $mainMod CONTROL, R, exec, startx -- /usr/bin/Xephyr -screen 1920x1080 :1 -#}}} - -#{{{ Scratchpads -bind = $mainMod CONTROL, Z, exec, [workspace special:sphtop;float;noanim] sphtop -bind = $mainMod CONTROL, X, exec, [workspace special:spterm;float;noanim] spterm -bind = $mainMod CONTROL, C, exec, [workspace special:sppmxr;float;noanim] sppmxr -bind = $mainMod CONTROL, V, exec, [workspace special:spblue;float;noanim] spblue -bind = $mainMod CONTROL, B, exec, [workspace special:spncmp;float;noanim] spncmp -bind = $mainMod CONTROL, A, exec, [workspace special:spmutt;float;noanim] spmutt -bind = $mainMod CONTROL, S, exec, [workspace special:spprof;float;noanim] spprof -bind = $mainMod CONTROL, D, exec, [workspace special:spirss;float;noanim] spirss -bind = $mainMod CONTROL, F, exec, [workspace special:sptodo;float;noanim] sptodo -bind = $mainMod CONTROL, G, exec, [workspace special:sptrmc;float;noanim] sptrmc -bind = $mainMod CONTROL, Q, exec, [workspace special:spqpwg;float;noanim] spqpwg -#}}} - -#{{{ OBS bindings -bind = $mainMod CONTROL, 1, pass, ^(com\.obsproject\.Studio)$ -bind = $mainMod CONTROL, 2, pass, ^(com\.obsproject\.Studio)$ -bind = $mainMod CONTROL, 3, pass, ^(com\.obsproject\.Studio)$ -bind = $mainMod CONTROL, 4, pass, ^(com\.obsproject\.Studio)$ -bind = $mainMod CONTROL, 5, pass, ^(com\.obsproject\.Studio)$ -bind = $mainMod CONTROL, 6, pass, ^(com\.obsproject\.Studio)$ -bind = $mainMod CONTROL, 7, pass, ^(com\.obsproject\.Studio)$ -bind = $mainMod CONTROL, 8, pass, ^(com\.obsproject\.Studio)$ -bind = $mainMod CONTROL, 9, pass, ^(com\.obsproject\.Studio)$ -bind = $mainMod CONTROL, 0, pass, ^(com\.obsproject\.Studio)$ -#}}} - -#{{{ Inert submap binds -bind = $mainMod, B, submap, inert -submap = inert -bind = $mainMod, B, submap, reset -submap = reset -#}}} - -#{{{ Media bindings -bindl = $secdMod, P, exec, playerctl play-pause -bindel = , XF86AudioRaiseVolume, exec, volsv -i 5 -bindel = , XF86AudioLowerVolume, exec, volsv -d 5 -bind = , XF86AudioPlay, exec, playerctl play-pause -bind = , XF86AudioStop, exec, playerctl stop -bind = , XF86AudioPrev, exec, playerctl previous -bind = , XF86AudioNext, exec, playerctl next -bind = , XF86AudioMute, exec, volsv -t -bindl = , XF86AudioMicMute, exec, volsv -m -bindel = , XF86MonBrightnessUp, exec, bl -i -bindel = , XF86MonBrightnessDown, exec, bl -d -bindl = $mainMod, XF86MonBrightnessUp, exec, bl -s 100 -bindl = $mainMod, XF86MonBrightnessDown, exec, bl -s 1 -bind = , Print, exec, scrshot -#}}} diff --git a/hypr/hyprpaper.conf b/hypr/hyprpaper.conf deleted file mode 100644 index daf4d23..0000000 --- a/hypr/hyprpaper.conf +++ /dev/null @@ -1,14 +0,0 @@ -preload = ~/background.jpg -#if more than one preload is desired then continue to preload other backgrounds -#preload = /path/to/next_image.png -# .. more preloads - -#set the default wallpaper(s) seen on inital workspace(s) --depending on the number of monitors used -wallpaper = eDP-1,~/background.jpg -wallpaper = HDMI-A-1,~/background.jpg -wallpaper = HDMI-A-2,~/background.jpg -wallpaper = DP-1,~/background.jpg -wallpaper = DP-2,~/background.jpg -#if more than one monitor in use, can load a 2nd image -#wallpaper = monitor2,~/background.jpg -# .. more monitors -- cgit v1.2.3 From 84946c4f5ea15e611d92ee296be80e0ceb0b0ed5 Mon Sep 17 00:00:00 2001 From: zachir Date: Sat, 24 Jun 2023 15:44:47 -0500 Subject: Fix gtk3 setting --- autostart.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/autostart.sh b/autostart.sh index f1a84af..6ef26b6 100755 --- a/autostart.sh +++ b/autostart.sh @@ -22,9 +22,10 @@ if [ -n "${WAYLAND_DISPLAY}${DISPLAY}" ]; then runifnot swayidle killandrun hyprpaper runifnot waybar - gsettings set $gnome-schema gtk-theme 'Plata-Noir-Compact' - gsettings set $gnome-schema icon-theme 'Mint-Y-Dark-Blue' - gsettings set $gnome-schema cursor-theme 'Adwaita' + gnome="org.gnome.desktop.interface" + gsettings set $gnome gtk-theme 'Plata-Noir-Compact' + gsettings set $gnome icon-theme 'Mint-Y-Dark-Blue' + gsettings set $gnome cursor-theme 'Adwaita' xrdb ~/.Xresources runifnot portmaster-start --data=/opt/safing/portmaster notifier runifnot jamesdsp -t -- cgit v1.2.3 From 33e3750a15ab57b25ff924ded0a0ecfadb5ce184 Mon Sep 17 00:00:00 2001 From: zachir Date: Sat, 24 Jun 2023 15:45:02 -0500 Subject: Use mpv preview for audio files --- lf/lfrc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lf/lfrc b/lf/lfrc index d83069e..702fc2d 100644 --- a/lf/lfrc +++ b/lf/lfrc @@ -15,6 +15,9 @@ cmd open ${{ jnlp) javaws "$f" ;; + mp3|flac|webm|ogg) + mpv "$f" + ;; *) case $(file --mime-type "$f" -bL) in text/*|application/json) $EDITOR "$f" ;; -- cgit v1.2.3 From 626876154ca85698abd25e239ecdbef7846fef44 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 19 Oct 2023 09:17:03 -0500 Subject: Removing hyprland again and pipewire eqs, fix zsh --- .../toharmantarget/akg271mkii.conf | 98 ---------------------- .../filters-available/toharmantarget/atm50x.conf | 98 ---------------------- .../filters-available/toharmantarget/jbudsair.conf | 98 ---------------------- swayidle/config | 2 +- waybar/config | 2 +- 5 files changed, 2 insertions(+), 296 deletions(-) delete mode 100644 pipewire/filters-available/toharmantarget/akg271mkii.conf delete mode 100644 pipewire/filters-available/toharmantarget/atm50x.conf delete mode 100644 pipewire/filters-available/toharmantarget/jbudsair.conf diff --git a/pipewire/filters-available/toharmantarget/akg271mkii.conf b/pipewire/filters-available/toharmantarget/akg271mkii.conf deleted file mode 100644 index 883e52d..0000000 --- a/pipewire/filters-available/toharmantarget/akg271mkii.conf +++ /dev/null @@ -1,98 +0,0 @@ -# 6 band sink equalizer -# -# Copy this file into a conf.d/ directory such as -# ~/.config/pipewire/filter-chain.conf.d/ -# -context.modules = [ - { name = libpipewire-module-filter-chain - args = { - node.description = "AKG k271 mkii Match" - media.name = "AKG k271 mkii Match" - filter.graph = { - nodes = [ - { - type = builtin - name = eq_band_1 - label = bq_lowshelf - control = { "Freq" = 62.0 "Q" = 0.9 "Gain" = 7.0 } - } - { - type = builtin - name = eq_band_2 - label = bq_peaking - control = { "Freq" = 140.0 "Q" = 2.5 "Gain" = 3.0 } - } - { - type = builtin - name = eq_band_3 - label = bq_highshelf - control = { "Freq" = 200.0 "Q" = 1.2 "Gain" = -4.7 } - } - { - type = builtin - name = eq_band_4 - label = bq_peaking - control = { "Freq" = 660.0 "Q" = 2.8 "Gain" = -6.6 } - } - { - type = builtin - name = eq_band_5 - label = bq_peaking - control = { "Freq" = 745.0 "Q" = 2.5 "Gain" = 5.5 } - } - { - type = builtin - name = eq_band_6 - label = bq_peaking - control = { "Freq" = 1820.0 "Q" = 1.5 "Gain" = -4.4 } - } - { - type = builtin - name = eq_band_7 - label = bq_peaking - control = { "Freq" = 3000.0 "Q" = 1.8 "Gain" = 5.4 } - } - { - type = builtin - name = eq_band_8 - label = bq_peaking - control = { "Freq" = 3200.0 "Q" = 5.0 "Gain" = -2.3 } - } - { - type = builtin - name = eq_band_9 - label = bq_peaking - control = { "Freq" = 4800.0 "Q" = 2.0 "Gain" = 3.6 } - } - { - type = builtin - name = eq_band_10 - label = bq_highshelf - control = { "Freq" = 6500.0 "Q" = 2.5 "Gain" = -1.5 } - } - ] - links = [ - { output = "eq_band_1:Out" input = "eq_band_2:In" } - { output = "eq_band_2:Out" input = "eq_band_3:In" } - { output = "eq_band_3:Out" input = "eq_band_4:In" } - { output = "eq_band_4:Out" input = "eq_band_5:In" } - { output = "eq_band_5:Out" input = "eq_band_6:In" } - { output = "eq_band_6:Out" input = "eq_band_7:In" } - { output = "eq_band_7:Out" input = "eq_band_8:In" } - { output = "eq_band_8:Out" input = "eq_band_9:In" } - { output = "eq_band_9:Out" input = "eq_band_10:In" } - ] - } - audio.channels = 2 - audio.position = [ FL FR ] - capture.props = { - node.name = "effect_input.k271ii" - media.class = Audio/Sink - } - playback.props = { - node.name = "effect_output.k271ii" - node.passive = true - } - } - } -] diff --git a/pipewire/filters-available/toharmantarget/atm50x.conf b/pipewire/filters-available/toharmantarget/atm50x.conf deleted file mode 100644 index 7dced89..0000000 --- a/pipewire/filters-available/toharmantarget/atm50x.conf +++ /dev/null @@ -1,98 +0,0 @@ -# 6 band sink equalizer -# -# Copy this file into a conf.d/ directory such as -# ~/.config/pipewire/filter-chain.conf.d/ -# -context.modules = [ - { name = libpipewire-module-filter-chain - args = { - node.description = "AT m50x Match" - media.name = "AT m50x Match" - filter.graph = { - nodes = [ - { - type = builtin - name = eq_band_1 - label = bq_peaking - control = { "Freq" = 40.0 "Q" = 0.5 "Gain" = -4.9 } - } - { - type = builtin - name = eq_band_2 - label = bq_lowshelf - control = { "Freq" = 105.0 "Q" = 0.71 "Gain" = 5.5 } - } - { - type = builtin - name = eq_band_3 - label = bq_peaking - control = { "Freq" = 150.0 "Q" = 0.8 "Gain" = -4.0 } - } - { - type = builtin - name = eq_band_4 - label = bq_peaking - control = { "Freq" = 335.0 "Q" = 1.3 "Gain" = 5.7 } - } - { - type = builtin - name = eq_band_5 - label = bq_peaking - control = { "Freq" = 1550 "Q" = 1.2 "Gain" = 1.5 } - } - { - type = builtin - name = eq_band_6 - label = bq_peaking - control = { "Freq" = 2600.0 "Q" = 1.6 "Gain" = -1.1 } - } - { - type = builtin - name = eq_band_7 - label = bq_peaking - control = { "Freq" = 4350.0 "Q" = 4.0 "Gain" = -5.0 } - } - { - type = builtin - name = eq_band_8 - label = bq_peaking - control = { "Freq" = 5300.0 "Q" = 1.0 "Gain" = 5.5 } - } - { - type = builtin - name = eq_band_9 - label = bq_peaking - control = { "Freq" = 5700.0 "Q" = 4.0 "Gain" = -3.5 } - } - { - type = builtin - name = eq_band_10 - label = bq_highshelf - control = { "Freq" = 10000.0 "Q" = 0.71 "Gain" = -1.0 } - } - ] - links = [ - { output = "eq_band_1:Out" input = "eq_band_2:In" } - { output = "eq_band_2:Out" input = "eq_band_3:In" } - { output = "eq_band_3:Out" input = "eq_band_4:In" } - { output = "eq_band_4:Out" input = "eq_band_5:In" } - { output = "eq_band_5:Out" input = "eq_band_6:In" } - { output = "eq_band_6:Out" input = "eq_band_7:In" } - { output = "eq_band_7:Out" input = "eq_band_8:In" } - { output = "eq_band_8:Out" input = "eq_band_9:In" } - { output = "eq_band_9:Out" input = "eq_band_10:In" } - ] - } - audio.channels = 2 - audio.position = [ FL FR ] - capture.props = { - node.name = "effect_input.atm50x" - media.class = Audio/Sink - } - playback.props = { - node.name = "effect_output.atm50x" - node.passive = true - } - } - } -] diff --git a/pipewire/filters-available/toharmantarget/jbudsair.conf b/pipewire/filters-available/toharmantarget/jbudsair.conf deleted file mode 100644 index 9b21ab5..0000000 --- a/pipewire/filters-available/toharmantarget/jbudsair.conf +++ /dev/null @@ -1,98 +0,0 @@ -# 6 band sink equalizer -# -# Copy this file into a conf.d/ directory such as -# ~/.config/pipewire/filter-chain.conf.d/ -# -context.modules = [ - { name = libpipewire-module-filter-chain - args = { - node.description = "JBuds Air Match" - media.name = "JBuds Air Match" - filter.graph = { - nodes = [ - { - type = builtin - name = eq_band_1 - label = bq_lowshelf - control = { "Freq" = 105.0 "Q" = 0.7 "Gain" = -6.4 } - } - { - type = builtin - name = eq_band_2 - label = bq_peaking - control = { "Freq" = 183.0 "Q" = 1.19 "Gain" = -4.7 } - } - { - type = builtin - name = eq_band_3 - label = bq_peaking - control = { "Freq" = 769.0 "Q" = 0.65 "Gain" = 2.0 } - } - { - type = builtin - name = eq_band_4 - label = bq_peaking - control = { "Freq" = 2724.0 "Q" = 1.58 "Gain" = 5.7 } - } - { - type = builtin - name = eq_band_5 - label = bq_peaking - control = { "Freq" = 3849.0 "Q" = 3.9 "Gain" = -3.7 } - } - { - type = builtin - name = eq_band_6 - label = bq_peaking - control = { "Freq" = 66.0 "Q" = 2.29 "Gain" = 1.4 } - } - { - type = builtin - name = eq_band_7 - label = bq_peaking - control = { "Freq" = 122.0 "Q" = 2.76 "Gain" = -0.8 } - } - { - type = builtin - name = eq_band_8 - label = bq_peaking - control = { "Freq" = 6673.0 "Q" = 4.97 "Gain" = -2.9 } - } - { - type = builtin - name = eq_band_9 - label = bq_peaking - control = { "Freq" = 9784.0 "Q" = 2.89 "Gain" = -1.3 } - } - { - type = builtin - name = eq_band_10 - label = bq_highshelf - control = { "Freq" = 10000.0 "Q" = 0.7 "Gain" = 0.6 } - } - ] - links = [ - { output = "eq_band_1:Out" input = "eq_band_2:In" } - { output = "eq_band_2:Out" input = "eq_band_3:In" } - { output = "eq_band_3:Out" input = "eq_band_4:In" } - { output = "eq_band_4:Out" input = "eq_band_5:In" } - { output = "eq_band_5:Out" input = "eq_band_6:In" } - { output = "eq_band_6:Out" input = "eq_band_7:In" } - { output = "eq_band_7:Out" input = "eq_band_8:In" } - { output = "eq_band_8:Out" input = "eq_band_9:In" } - { output = "eq_band_9:Out" input = "eq_band_10:In" } - ] - } - audio.channels = 2 - audio.position = [ FL FR ] - capture.props = { - node.name = "effect_input.jbudsair" - media.class = Audio/Sink - } - playback.props = { - node.name = "effect_output.jbudsair" - node.passive = true - } - } - } -] diff --git a/swayidle/config b/swayidle/config index 210ff01..00fb5a7 100644 --- a/swayidle/config +++ b/swayidle/config @@ -1,3 +1,3 @@ timeout 600 swaylockd before-sleep swaylockd -lock waylockd +lock swaylockd diff --git a/waybar/config b/waybar/config index 63ac30e..843b427 100644 --- a/waybar/config +++ b/waybar/config @@ -83,7 +83,7 @@ }, "temperature#cpu": { // "thermal-zone": 2, - "hwmon-path": "/sys/class/hwmon/hwmon3/temp1_input", + "hwmon-path": "/sys/class/hwmon/hwmon4/temp1_input", "critical-threshold": 80, // "format-critical": "{temperatureC}°C {icon}", "format": "{temperatureC}°C", -- cgit v1.2.3 From ebe7519e4096c9302fab472b932e0e5d1add5417 Mon Sep 17 00:00:00 2001 From: ZachIR Date: Sat, 15 Jul 2023 15:49:08 -0500 Subject: Theme waybar with cyan instead of green --- waybar/style.css | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/waybar/style.css b/waybar/style.css index 8b15dfb..d7438dd 100644 --- a/waybar/style.css +++ b/waybar/style.css @@ -47,7 +47,8 @@ window#waybar.hidden { */ #workspaces button.active { - background: #198844; + background: #39c1ed; + color: black; } /* @@ -155,8 +156,8 @@ label:focus { } #memory { - background-color: #198844; - color: #ffffff; + background-color: #39c1ed; + color: black; } #disk { @@ -165,13 +166,13 @@ label:focus { } #backlight { - background-color: #198844; - color: #ffffff; + background-color: #39c1ed; + color: black; } #network { - background-color: #198844; - color: #ffffff; + background-color: #39c1ed; + color: black; } #network.disconnected { @@ -180,13 +181,13 @@ label:focus { } #pulseaudio { - background-color: #198844; - color: #ffffff; + background-color: #39c1ed; + color: black; } #pulseaudio.muted { - background-color: #1b1d1c; - color: #198844; + background-color: black; + color: #39c1ed; } #custom-media { @@ -276,20 +277,20 @@ label:focus { } #tray { - background-color: #198844; - color: #ffffff; + background-color: #39c1ed; + color: black; } #tray > .passive { -gtk-icon-effect: dim; - background-color: #198844; - color: #ffffff; + background-color: #39c1ed; + color: black; } #tray > .needs-attention { -gtk-icon-effect: highlight; - background-color: #198844; - color: #ffffff; + background-color: #39c1ed; + color: black; } #idle_inhibitor { @@ -299,8 +300,8 @@ label:focus { } #idle_inhibitor.activated { - background-color: #198844; - color: #ffffff; + background-color: #39c1ed; + color: black; border-radius: 20px 0px 0px 20px; } -- cgit v1.2.3 From 88d8ef52a5812047e82eedf0cb30fe7e5f9bf9e1 Mon Sep 17 00:00:00 2001 From: ZachIR Date: Sat, 15 Jul 2023 16:33:32 -0500 Subject: Restart audio server on login --- autostart.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/autostart.sh b/autostart.sh index 6ef26b6..d81aa92 100755 --- a/autostart.sh +++ b/autostart.sh @@ -18,6 +18,7 @@ killandrun () { } if [ -n "${WAYLAND_DISPLAY}${DISPLAY}" ]; then + snd.sh notify-sound.sh off & runifnot swayidle killandrun hyprpaper -- cgit v1.2.3 From 41cf87f2ff5af43dd643864466526284ee89ba4b Mon Sep 17 00:00:00 2001 From: zachir Date: Mon, 17 Jul 2023 22:16:46 -0500 Subject: Remove snd.sh from claudia --- autostart.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/autostart.sh b/autostart.sh index d81aa92..6ef26b6 100755 --- a/autostart.sh +++ b/autostart.sh @@ -18,7 +18,6 @@ killandrun () { } if [ -n "${WAYLAND_DISPLAY}${DISPLAY}" ]; then - snd.sh notify-sound.sh off & runifnot swayidle killandrun hyprpaper -- cgit v1.2.3 From 580f3152e9aaac76474706a8525d3ae866349586 Mon Sep 17 00:00:00 2001 From: ZachIR Date: Sat, 15 Jul 2023 16:32:41 -0500 Subject: override kitty --- kitty/kitty.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kitty/kitty.conf b/kitty/kitty.conf index 99d5440..fb18d08 100644 --- a/kitty/kitty.conf +++ b/kitty/kitty.conf @@ -639,7 +639,7 @@ focus_follows_mouse yes #: Performance tuning {{{ -repaint_delay 10 +# repaint_delay 8.3 #: Delay between screen updates (in milliseconds). Decreasing it, #: increases frames-per-second (FPS) at the cost of more CPU usage. -- cgit v1.2.3 From 9f6ccda2ffc53012c2e2b165e421c39d9fb3aab1 Mon Sep 17 00:00:00 2001 From: zachir Date: Mon, 17 Jul 2023 22:17:19 -0500 Subject: Add resize keybindings and sync to mon --- kitty/kitty.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kitty/kitty.conf b/kitty/kitty.conf index fb18d08..99d5440 100644 --- a/kitty/kitty.conf +++ b/kitty/kitty.conf @@ -639,7 +639,7 @@ focus_follows_mouse yes #: Performance tuning {{{ -# repaint_delay 8.3 +repaint_delay 10 #: Delay between screen updates (in milliseconds). Decreasing it, #: increases frames-per-second (FPS) at the cost of more CPU usage. -- cgit v1.2.3 From 2ad198b2ef6f6036da279292126b4d479c9d3bc9 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 10 Aug 2023 21:35:20 -0500 Subject: Ignore kde.org --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index e40c5ab..460bd94 100644 --- a/.gitignore +++ b/.gitignore @@ -128,6 +128,7 @@ kdenlive.* kdenliverc kdeglobals kdeconnect/ +kde.org/ kaidan/ joplin/ joplin-desktop/ -- cgit v1.2.3 From d0bf30e1a6e9d7a79bb367d6ce349f67ec2ea3ab Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 10 Aug 2023 21:36:05 -0500 Subject: Add dmenu_vertical --- tofi/dmenu_vertical | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 tofi/dmenu_vertical diff --git a/tofi/dmenu_vertical b/tofi/dmenu_vertical new file mode 100644 index 0000000..7b8703f --- /dev/null +++ b/tofi/dmenu_vertical @@ -0,0 +1,27 @@ +include = "colors" + +hidden-character = "*" +anchor = top +width = 100% +height = 600 +horizontal = false +font-size = 24 +prompt-text = "" +font = mononoki Nerd Font Mono +outline-width = 0 +border-width = 0 +min-input-width = 424 +result-spacing = 0, 12 +selection-background-padding = 0, 12 +padding-top = 0 +padding-bottom = 0 +padding-left = 12 +padding-right = 12 +margin-top = 0 +margin-bottom = 0 +margin-left = 12 +margin-right = 12 +clip-to-padding=true +history = false +require-match=false +num-results = true -- cgit v1.2.3 From d2bfa8425823f116af8f641496a6a7af72318717 Mon Sep 17 00:00:00 2001 From: zachir Date: Sat, 19 Aug 2023 12:04:53 -0500 Subject: cla: Fix temps for CPU and GPU --- waybar/config | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/waybar/config b/waybar/config index 843b427..4b4ec00 100644 --- a/waybar/config +++ b/waybar/config @@ -83,10 +83,10 @@ }, "temperature#cpu": { // "thermal-zone": 2, - "hwmon-path": "/sys/class/hwmon/hwmon4/temp1_input", + "hwmon-path": "/sys/class/hwmon/hwmon2/temp3_input", "critical-threshold": 80, // "format-critical": "{temperatureC}°C {icon}", - "format": "{temperatureC}°C", + "format": "CPU {temperatureC}°C", "format-icons": ["", "", ""] }, "temperature#gpu": { @@ -94,7 +94,7 @@ "hwmon-path": "/sys/class/hwmon/hwmon1/temp2_input", "critical-threshold": 110, // "format-critical": "{temperatureC}°C {icon}", - "format": "{temperatureC}°C", + "format": "GPU {temperatureC}°C", "format-icons": ["", "", ""] }, "backlight": { -- cgit v1.2.3 From 98f46e3b56a94067218a991a93ffd0f5e2554e11 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 19 Oct 2023 09:22:58 -0500 Subject: Use X11 and not Wayland now --- .gitmodules | 6 + X11/Xresources | 10 +- X11/xinitrc | 5 + X11/xprofile | 1 + autostart.sh | 34 - awesome/awesome-wm-widgets | 1 + awesome/bling | 1 + awesome/rc.lua | 1110 ++++++++++++++++++++ awesome/themes/zachir/README | 3 + awesome/themes/zachir/background.jpg | 1 + awesome/themes/zachir/background.png | Bin 0 -> 222973 bytes awesome/themes/zachir/background_white.png | Bin 0 -> 267935 bytes awesome/themes/zachir/layouts/cornerne.png | Bin 0 -> 272 bytes awesome/themes/zachir/layouts/cornernew.png | Bin 0 -> 272 bytes awesome/themes/zachir/layouts/cornernw.png | Bin 0 -> 263 bytes awesome/themes/zachir/layouts/cornernww.png | Bin 0 -> 264 bytes awesome/themes/zachir/layouts/cornerse.png | Bin 0 -> 264 bytes awesome/themes/zachir/layouts/cornersew.png | Bin 0 -> 264 bytes awesome/themes/zachir/layouts/cornersw.png | Bin 0 -> 263 bytes awesome/themes/zachir/layouts/cornersww.png | Bin 0 -> 264 bytes awesome/themes/zachir/layouts/dwindle.png | Bin 0 -> 320 bytes awesome/themes/zachir/layouts/dwindlew.png | Bin 0 -> 320 bytes awesome/themes/zachir/layouts/fairh.png | Bin 0 -> 245 bytes awesome/themes/zachir/layouts/fairhw.png | Bin 0 -> 245 bytes awesome/themes/zachir/layouts/fairv.png | Bin 0 -> 246 bytes awesome/themes/zachir/layouts/fairvw.png | Bin 0 -> 246 bytes awesome/themes/zachir/layouts/floating.png | Bin 0 -> 282 bytes awesome/themes/zachir/layouts/floatingw.png | Bin 0 -> 282 bytes awesome/themes/zachir/layouts/fullscreen.png | Bin 0 -> 866 bytes awesome/themes/zachir/layouts/fullscreenw.png | Bin 0 -> 865 bytes awesome/themes/zachir/layouts/magnifier.png | Bin 0 -> 345 bytes awesome/themes/zachir/layouts/magnifierw.png | Bin 0 -> 345 bytes awesome/themes/zachir/layouts/max.png | Bin 0 -> 574 bytes awesome/themes/zachir/layouts/maxw.png | Bin 0 -> 581 bytes awesome/themes/zachir/layouts/spiral.png | Bin 0 -> 328 bytes awesome/themes/zachir/layouts/spiralw.png | Bin 0 -> 328 bytes awesome/themes/zachir/layouts/tile.png | Bin 0 -> 265 bytes awesome/themes/zachir/layouts/tilebottom.png | Bin 0 -> 264 bytes awesome/themes/zachir/layouts/tilebottomw.png | Bin 0 -> 264 bytes awesome/themes/zachir/layouts/tileleft.png | Bin 0 -> 266 bytes awesome/themes/zachir/layouts/tileleftw.png | Bin 0 -> 266 bytes awesome/themes/zachir/layouts/tiletop.png | Bin 0 -> 260 bytes awesome/themes/zachir/layouts/tiletopw.png | Bin 0 -> 265 bytes awesome/themes/zachir/layouts/tilew.png | Bin 0 -> 265 bytes awesome/themes/zachir/submenu.png | Bin 0 -> 440 bytes awesome/themes/zachir/taglist/squarefw.png | Bin 0 -> 187 bytes awesome/themes/zachir/taglist/squarew.png | Bin 0 -> 193 bytes awesome/themes/zachir/theme.lua | 240 +++++ awesome/themes/zachir/titlebar/close_focus.png | Bin 0 -> 966 bytes awesome/themes/zachir/titlebar/close_normal.png | Bin 0 -> 966 bytes .../zachir/titlebar/floating_focus_active.png | Bin 0 -> 386 bytes .../zachir/titlebar/floating_focus_inactive.png | Bin 0 -> 237 bytes .../zachir/titlebar/floating_normal_active.png | Bin 0 -> 386 bytes .../zachir/titlebar/floating_normal_inactive.png | Bin 0 -> 237 bytes .../zachir/titlebar/maximized_focus_active.png | Bin 0 -> 480 bytes .../zachir/titlebar/maximized_focus_inactive.png | Bin 0 -> 452 bytes .../zachir/titlebar/maximized_normal_active.png | Bin 0 -> 480 bytes .../zachir/titlebar/maximized_normal_inactive.png | Bin 0 -> 452 bytes awesome/themes/zachir/titlebar/minimize_focus.png | Bin 0 -> 234 bytes awesome/themes/zachir/titlebar/minimize_normal.png | Bin 0 -> 225 bytes .../themes/zachir/titlebar/ontop_focus_active.png | Bin 0 -> 467 bytes .../zachir/titlebar/ontop_focus_inactive.png | Bin 0 -> 604 bytes .../themes/zachir/titlebar/ontop_normal_active.png | Bin 0 -> 467 bytes .../zachir/titlebar/ontop_normal_inactive.png | Bin 0 -> 604 bytes .../themes/zachir/titlebar/sticky_focus_active.png | Bin 0 -> 654 bytes .../zachir/titlebar/sticky_focus_inactive.png | Bin 0 -> 758 bytes .../zachir/titlebar/sticky_normal_active.png | Bin 0 -> 654 bytes .../zachir/titlebar/sticky_normal_inactive.png | Bin 0 -> 758 bytes foot/foot.ini | 199 ---- nwg-bar/bar.json | 22 - river/init | 223 ---- river/sp/river_sp | 51 - river/sp/sp_a | 3 - river/sp/sp_b | 3 - river/sp/sp_c | 3 - river/sp/sp_d | 3 - river/sp/sp_f | 3 - river/sp/sp_g | 3 - river/sp/sp_q | 3 - river/sp/sp_s | 3 - river/sp/sp_v | 3 - river/sp/sp_x | 3 - river/sp/sp_z | 3 - swayidle/config | 3 - swaylock/config | 2 - sxhkd/sxhkdrc | 140 +++ tofi/config | 1 - tofi/dmenu_vertical | 27 - tofi/themes/colors | 17 - tofi/themes/dmenu | 22 - tofi/themes/dmenu_vertical | 28 - waybar/config | 168 --- waybar/style.css | 327 ------ 93 files changed, 1513 insertions(+), 1162 deletions(-) create mode 100755 X11/xinitrc create mode 100755 X11/xprofile delete mode 100755 autostart.sh create mode 160000 awesome/awesome-wm-widgets create mode 160000 awesome/bling create mode 100644 awesome/rc.lua create mode 100644 awesome/themes/zachir/README create mode 120000 awesome/themes/zachir/background.jpg create mode 100644 awesome/themes/zachir/background.png create mode 100644 awesome/themes/zachir/background_white.png create mode 100644 awesome/themes/zachir/layouts/cornerne.png create mode 100644 awesome/themes/zachir/layouts/cornernew.png create mode 100644 awesome/themes/zachir/layouts/cornernw.png create mode 100644 awesome/themes/zachir/layouts/cornernww.png create mode 100644 awesome/themes/zachir/layouts/cornerse.png create mode 100644 awesome/themes/zachir/layouts/cornersew.png create mode 100644 awesome/themes/zachir/layouts/cornersw.png create mode 100644 awesome/themes/zachir/layouts/cornersww.png create mode 100644 awesome/themes/zachir/layouts/dwindle.png create mode 100644 awesome/themes/zachir/layouts/dwindlew.png create mode 100644 awesome/themes/zachir/layouts/fairh.png create mode 100644 awesome/themes/zachir/layouts/fairhw.png create mode 100644 awesome/themes/zachir/layouts/fairv.png create mode 100644 awesome/themes/zachir/layouts/fairvw.png create mode 100644 awesome/themes/zachir/layouts/floating.png create mode 100644 awesome/themes/zachir/layouts/floatingw.png create mode 100644 awesome/themes/zachir/layouts/fullscreen.png create mode 100644 awesome/themes/zachir/layouts/fullscreenw.png create mode 100644 awesome/themes/zachir/layouts/magnifier.png create mode 100644 awesome/themes/zachir/layouts/magnifierw.png create mode 100644 awesome/themes/zachir/layouts/max.png create mode 100644 awesome/themes/zachir/layouts/maxw.png create mode 100644 awesome/themes/zachir/layouts/spiral.png create mode 100644 awesome/themes/zachir/layouts/spiralw.png create mode 100644 awesome/themes/zachir/layouts/tile.png create mode 100644 awesome/themes/zachir/layouts/tilebottom.png create mode 100644 awesome/themes/zachir/layouts/tilebottomw.png create mode 100644 awesome/themes/zachir/layouts/tileleft.png create mode 100644 awesome/themes/zachir/layouts/tileleftw.png create mode 100644 awesome/themes/zachir/layouts/tiletop.png create mode 100644 awesome/themes/zachir/layouts/tiletopw.png create mode 100644 awesome/themes/zachir/layouts/tilew.png create mode 100644 awesome/themes/zachir/submenu.png create mode 100644 awesome/themes/zachir/taglist/squarefw.png create mode 100644 awesome/themes/zachir/taglist/squarew.png create mode 100644 awesome/themes/zachir/theme.lua create mode 100644 awesome/themes/zachir/titlebar/close_focus.png create mode 100644 awesome/themes/zachir/titlebar/close_normal.png create mode 100644 awesome/themes/zachir/titlebar/floating_focus_active.png create mode 100644 awesome/themes/zachir/titlebar/floating_focus_inactive.png create mode 100644 awesome/themes/zachir/titlebar/floating_normal_active.png create mode 100644 awesome/themes/zachir/titlebar/floating_normal_inactive.png create mode 100644 awesome/themes/zachir/titlebar/maximized_focus_active.png create mode 100644 awesome/themes/zachir/titlebar/maximized_focus_inactive.png create mode 100644 awesome/themes/zachir/titlebar/maximized_normal_active.png create mode 100644 awesome/themes/zachir/titlebar/maximized_normal_inactive.png create mode 100644 awesome/themes/zachir/titlebar/minimize_focus.png create mode 100644 awesome/themes/zachir/titlebar/minimize_normal.png create mode 100644 awesome/themes/zachir/titlebar/ontop_focus_active.png create mode 100644 awesome/themes/zachir/titlebar/ontop_focus_inactive.png create mode 100644 awesome/themes/zachir/titlebar/ontop_normal_active.png create mode 100644 awesome/themes/zachir/titlebar/ontop_normal_inactive.png create mode 100644 awesome/themes/zachir/titlebar/sticky_focus_active.png create mode 100644 awesome/themes/zachir/titlebar/sticky_focus_inactive.png create mode 100644 awesome/themes/zachir/titlebar/sticky_normal_active.png create mode 100644 awesome/themes/zachir/titlebar/sticky_normal_inactive.png delete mode 100644 foot/foot.ini delete mode 100644 nwg-bar/bar.json delete mode 100755 river/init delete mode 100755 river/sp/river_sp delete mode 100755 river/sp/sp_a delete mode 100755 river/sp/sp_b delete mode 100755 river/sp/sp_c delete mode 100755 river/sp/sp_d delete mode 100755 river/sp/sp_f delete mode 100755 river/sp/sp_g delete mode 100755 river/sp/sp_q delete mode 100755 river/sp/sp_s delete mode 100755 river/sp/sp_v delete mode 100755 river/sp/sp_x delete mode 100755 river/sp/sp_z delete mode 100644 swayidle/config delete mode 100644 swaylock/config create mode 100755 sxhkd/sxhkdrc delete mode 120000 tofi/config delete mode 100644 tofi/dmenu_vertical delete mode 100644 tofi/themes/colors delete mode 100644 tofi/themes/dmenu delete mode 100644 tofi/themes/dmenu_vertical delete mode 100644 waybar/config delete mode 100644 waybar/style.css diff --git a/.gitmodules b/.gitmodules index f477143..89c69a1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,3 +7,9 @@ [submodule "qutebrowser/jmatrix"] path = qutebrowser/jmatrix url = https://gitlab.com/jgkamat/jmatrix.git +[submodule "awesome/awesome-wm-widgets"] + path = awesome/awesome-wm-widgets + url = https://github.com/streetturtle/awesome-wm-widgets +[submodule "awesome/bling"] + path = awesome/bling + url = https://github.com/BlingCorp/bling.git diff --git a/X11/Xresources b/X11/Xresources index e5b0aea..d5c4550 100644 --- a/X11/Xresources +++ b/X11/Xresources @@ -30,12 +30,12 @@ st.termname: st-256color st.shell: /usr/bin/tmux ! The following options options can be reloaded via USR1 signal. -st.font: mononoki Nerd Font Mono:pixelsize=9:antialias=true:autohint=true; -st.font2: Symbola:pixelsize=12:antialias=true:autohint=true; +!st.font: mononoki Nerd Font Mono:pixelsize=12:antialias=true:autohint=true; +!st.font2: Symbola:pixelsize=12:antialias=true:autohint=true; st.borderpx: 3 ! st alpha -! st.alpha: 0.8 -! st.alphaUnfocused: 0.8 +st.alpha: 0.8 +st.alphaUnfocused: 0.8 ! Available cursor values: 2 4 6 7 = █ _ | ☃ ( 1 3 5 are blinking versions) st.cursorshape: 6 ! thickness of underline and bar cursors @@ -111,7 +111,7 @@ URxvt.keysym.C-Minus: resize-font:smaller URxvt.keysym.C-Plus: resize-font:bigger ! "Enabled modi" Set from: Default -rofi.modi: window,run,ssh,drun +rofi.modi: window,run,ssh,drun.5 ! "Window width" Set from: Default rofi.width: 1366 ! "Number of lines" Set from: Default diff --git a/X11/xinitrc b/X11/xinitrc new file mode 100755 index 0000000..534bfc6 --- /dev/null +++ b/X11/xinitrc @@ -0,0 +1,5 @@ +#!/bin/sh +[ -x ~/.screenlayout/layout.sh ] && ~/.screenlayout/layout.sh +setxkbmap -option "caps:escape" & +xrdb ~/.Xresources +exec awesome diff --git a/X11/xprofile b/X11/xprofile new file mode 100755 index 0000000..1a24852 --- /dev/null +++ b/X11/xprofile @@ -0,0 +1 @@ +#!/bin/sh diff --git a/autostart.sh b/autostart.sh deleted file mode 100755 index 6ef26b6..0000000 --- a/autostart.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh -runifnot () { - if type $1 >/dev/null; then - echo $1 - if [ -z "$(pgrep -Uzachir -f $1)" ]; then - $@ & - fi - fi -} -killandrun () { - if type $1 >/dev/null; then - echo $1 - if [ -n "$(pgrep -Uzachir -f $1)" ]; then - pkill -Uzachir $1 - fi - $@ & - fi -} - -if [ -n "${WAYLAND_DISPLAY}${DISPLAY}" ]; then - notify-sound.sh off & - runifnot swayidle - killandrun hyprpaper - runifnot waybar - gnome="org.gnome.desktop.interface" - gsettings set $gnome gtk-theme 'Plata-Noir-Compact' - gsettings set $gnome icon-theme 'Mint-Y-Dark-Blue' - gsettings set $gnome cursor-theme 'Adwaita' - xrdb ~/.Xresources - runifnot portmaster-start --data=/opt/safing/portmaster notifier - runifnot jamesdsp -t -fi - -[ -x "$XDG_CONFIG_HOME/computerrc.sh" ] && "$XDG_CONFIG_HOME/computerrc.sh" diff --git a/awesome/awesome-wm-widgets b/awesome/awesome-wm-widgets new file mode 160000 index 0000000..4381a89 --- /dev/null +++ b/awesome/awesome-wm-widgets @@ -0,0 +1 @@ +Subproject commit 4381a89ee06d91278f62bdd3762b3859b8775bf3 diff --git a/awesome/bling b/awesome/bling new file mode 160000 index 0000000..1f6bd0d --- /dev/null +++ b/awesome/bling @@ -0,0 +1 @@ +Subproject commit 1f6bd0d5ef150a1801d20c69437ceff61d65fac5 diff --git a/awesome/rc.lua b/awesome/rc.lua new file mode 100644 index 0000000..650e61e --- /dev/null +++ b/awesome/rc.lua @@ -0,0 +1,1110 @@ +-- If LuaRocks is installed, make sure that packages installed through it are +-- found (e.g. lgi). If LuaRocks is not installed, do nothing. +pcall(require, "luarocks.loader") + +-- Standard awesome library +local gears = require("gears") +local awful = require("awful") +require("awful.autofocus") +-- Widget and layout library +local wibox = require("wibox") +-- Theme handling library +local beautiful = require("beautiful") +-- Notification library +local naughty = require("naughty") +package.loaded["naughty.dbus"] = {} +local menubar = require("menubar") +local hotkeys_popup = require("awful.hotkeys_popup") +-- Enable hotkeys help widget for VIM and other apps +-- when client with a matching name is opened: +require("awful.hotkeys_popup.keys") + +-- {{{ Error handling +-- Check if awesome encountered an error during startup and fell back to +-- another config (This code will only ever execute for the fallback config) +if awesome.startup_errors then + naughty.notify({ preset = naughty.config.presets.critical, + title = "Oops, there were errors during startup!", + text = awesome.startup_errors }) +end + +-- Handle runtime errors after startup +do + local in_error = false + awesome.connect_signal("debug::error", function (err) + -- Make sure we don't go into an endless error loop + if in_error then return end + in_error = true + + naughty.notify({ preset = naughty.config.presets.critical, + title = "Oops, an error happened!", + text = tostring(err) }) + in_error = false + end) +end +-- }}} + +-- {{{ Variable definitions +-- Themes define colours, icons, font and wallpapers. +local theme = {} +theme.name = "zachir" +home_dir = os.getenv("HOME") +if (os.getenv("XDG_CONFIG_HOME")) then + config_dir = os.getenv("XDG_CONFIG_HOME") +else + config_dir = string.format("%s/.config", os.getenv("HOME")) +end +awesome_config_folder = config_dir .. "awesome" +theme.dir = string.format("%s/awesome/themes/%s", config_dir, theme.name) +beautiful.init(theme.dir .. "/theme.lua") +beautiful.useless_gap = 5 +font = beautiful.font or "mononoki Nerd Font Mono 18" + +-- Library I'm using for swallowing, but it does much more + +local bling = require("bling") + +-- Widget definitions/initializations + +local battery_widget = require("awesome-wm-widgets.batteryarc-widget.batteryarc") +local mpd_widget = require("awesome-wm-widgets.mpdarc-widget.mpdarc") +local volume_widget = require("awesome-wm-widgets.volume-widget.volume") +local ram_widget = require("awesome-wm-widgets.ram-widget.ram-widget") +local cpu_widget = require("awesome-wm-widgets.cpu-widget.cpu-widget") +local brightness_widget = require("awesome-wm-widgets.brightness-widget.brightness") +local net_speed = require("awesome-wm-widgets.net-speed-widget.net-speed") + +-- Disable keybindings + +local inertmode = false + +-- Spawn windows at bottom of stack + +local spawnatbottom = false + + +-- Default modkey. +-- Usually, Mod4 is the key with a logo between Control and Alt. +-- If you do not like this or do not have such a key, +-- I suggest you to remap Mod4 to another key using xmodmap or other tools. +-- However, you can use another modifier like Mod1, but it may interact with others. +modkey = "Mod4" + +-- Table of layouts to cover with awful.layout.inc, order matters. +awful.layout.layouts = { + --awful.layout.suit.floating, + awful.layout.suit.tile, + --awful.layout.suit.tile.left, + --awful.layout.suit.tile.bottom, + --awful.layout.suit.tile.top, + --awful.layout.suit.fair, + --awful.layout.suit.fair.horizontal, + --awful.layout.suit.spiral, + --awful.layout.suit.spiral.dwindle, + --awful.layout.suit.max, + --awful.layout.suit.max.fullscreen, + --awful.layout.suit.magnifier, + --awful.layout.suit.corner.nw, + -- awful.layout.suit.corner.ne, + -- awful.layout.suit.corner.sw, + -- awful.layout.suit.corner.se, +} +-- }}} + +-- Config function definitions {{{ + +function crcparse(substr) + local file=assert(io.open(config_dir .. "/computerrc","r")) + local line = "" + repeat + line=file:read("*line") + if line and line:find(string.format("^%s=",substr)) then + return string.sub(line,#substr + 2,-1) + end + until not line +end + +function terminal_sp_cmd (spc, cmd, geo) + if terminal == "st" then + cflag = "-c" + gflag = "-g" + xflag = "-e" + elseif terminal == "alacritty" then + cflag = "--class" + gflag = false + xflag = "-e" + elseif terminal == "kitty" then + cflag = "--class" + gflag = false + xflag = "" + end + if cflag and spc then + cl = " " .. cflag .. " " .. spc + else + cl = "" + end + if gflag and geo then + gl = " " .. gflag .. " " .. geo + else + gl = "" + end + if xflag and cmd then + xl = " " .. xflag .. " " .. cmd + else + xl = "" + end + return terminal .. cl .. gl .. xl +end + +-- }}} + +-- {{{ crcparse Definitions + +-- terminal +terminal="kitty" +editor = os.getenv("EDITOR") or "nvim" +editor_cmd = terminal .. " -e " .. editor + +-- is linux +function is_linux () + return crcparse("OS") == "Linux" +end + +-- is openbsd +function is_obsd () + return crcparse("OS") == "OpenBSD" +end + +-- }}} + +--{{{ bling scratchpad definitions +--{{{ sphtop +local sphtop = bling.module.scratchpad { + command = terminal_sp_cmd("sphtop", "htop", nil), + rule = { class = "sphtop" }, + sticky = true, + autoclose = true, + floating = true, + geometry = { x = 575, y = 275, height = 530, width = 770 }, + reapply = true, + dont_focus_before_close = false +} +--}}} +--{{{ spterm +local spterm = bling.module.scratchpad { + command = terminal_sp_cmd("spterm", nil, nil), + rule = { class = "spterm" }, + sticky = true, + autoclose = true, + floating = true, + geometry = { x = 575, y = 275, height = 530, width = 770 }, + reapply = true, + dont_focus_before_close = false +} +--}}} +--{{{ sppmxr +local sppmxr = bling.module.scratchpad { + command = terminal_sp_cmd("sppmxr", "pulsemixer", nil), + rule = { class = "sppmxr" }, + sticky = true, + autoclose = true, + floating = true, + geometry = { x = 575, y = 275, height = 530, width = 770 }, + reapply = true, + dont_focus_before_close = false +} +--}}} +--{{{ spblue +local spblue = bling.module.scratchpad { + command = terminal_sp_cmd("spblue", "bluetoothctl", nil), + rule = { class = "spblue" }, + sticky = true, + autoclose = true, + floating = true, + geometry = { x = 575, y = 275, height = 530, width = 770 }, + reapply = true, + dont_focus_before_close = false +} +--}}} +--{{{ spncmp +local spncmp = bling.module.scratchpad { + command = terminal_sp_cmd("spncmp", "ncmpcpp", nil), + rule = { class = "spncmp" }, + sticky = true, + autoclose = true, + floating = true, + geometry = { x = 575, y = 275, height = 530, width = 770 }, + reapply = true, + dont_focus_before_close = false +} +--}}} +--{{{ spmutt +local spmutt = bling.module.scratchpad { + command = terminal_sp_cmd("spmutt", "neomutt", nil), + rule = { class = "spmutt" }, + sticky = true, + autoclose = true, + floating = true, + geometry = { x = 575, y = 275, height = 530, width = 770 }, + reapply = true, + dont_focus_before_close = false +} +--}}} +--{{{ spprof +local spprof = bling.module.scratchpad { + command = terminal_sp_cmd("spprof", "profanity", nil), + rule = { class = "spprof" }, + sticky = true, + autoclose = true, + floating = true, + geometry = { x = 575, y = 275, height = 530, width = 770 }, + reapply = true, + dont_focus_before_close = false +} +--}}} +--{{{ spirss +local spirss = bling.module.scratchpad { + command = terminal_sp_cmd("spirss", "irssi", nil), + rule = { class = "spirss" }, + sticky = true, + autoclose = true, + floating = true, + geometry = { x = 575, y = 275, height = 530, width = 770 }, + reapply = true, + dont_focus_before_close = false +} +--}}} +--{{{ sptodo +local sptodo = bling.module.scratchpad { + command = terminal_sp_cmd("sptodo", "todo", nil), + rule = { class = "sptodo" }, + sticky = true, + autoclose = true, + floating = true, + geometry = { x = 575, y = 275, height = 530, width = 770 }, + reapply = true, + dont_focus_before_close = false +} +--}}} +--{{{ sptrem +local sptrem = bling.module.scratchpad { + command = terminal_sp_cmd("sptrem", "tremc", nil), + rule = { class = "sptrem" }, + sticky = true, + autoclose = true, + floating = true, + geometry = { x = 575, y = 275, height = 530, width = 770 }, + reapply = true, + dont_focus_before_close = false +} +--}}} +--{{{ qpwgraph +local qpwgraph = bling.module.scratchpad { + command = "qpwgraph", + rule = { class = "qpwgraph" }, + sticky = true, + autoclose = true, + floating = true, + geometry = { x = 575, y = 275, height = 530, width = 770 }, + reapply = true, + dont_focus_before_close = false +} +--}}} +--}}} + +-- {{{ Menu +-- Create a launcher widget and a main menu +myawesomemenu = { + { "hotkeys", function() hotkeys_popup.show_help(nil, awful.screen.focused()) end }, + { "manual", terminal .. " -e man awesome" }, + { "edit config", editor_cmd .. " " .. awesome.conffile }, + { "restart", awesome.restart }, + { "quit", function() awesome.quit() end }, +} + +mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon }, + { "open terminal", terminal } + } + }) + +mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon, + menu = mymainmenu }) + +-- Menubar configuration +menubar.utils.terminal = terminal -- Set the terminal for applications that require it +-- }}} + +-- Keyboard map indicator and switcher +mykeyboardlayout = awful.widget.keyboardlayout() + +-- {{{ Wibar +-- Create a textclock widget +mytextclock = wibox.widget.textclock() + +-- Create a wibox for each screen and add it +local taglist_buttons = gears.table.join( + awful.button({ }, 1, function(t) t:view_only() end), + awful.button({ modkey }, 1, function(t) + if client.focus then + client.focus:move_to_tag(t) + end + end), + awful.button({ }, 3, awful.tag.viewtoggle), + awful.button({ modkey }, 3, function(t) + if client.focus then + client.focus:toggle_tag(t) + end + end), + awful.button({ }, 4, function(t) awful.tag.viewnext(t.screen) end), + awful.button({ }, 5, function(t) awful.tag.viewprev(t.screen) end) + ) + +local tasklist_buttons = gears.table.join( + awful.button({ }, 1, function (c) + if c == client.focus then + c.minimized = true + else + c:emit_signal( + "request::activate", + "tasklist", + {raise = true} + ) + end + end), + awful.button({ }, 3, function() + awful.menu.client_list({ theme = { width = 250 } }) + end), + awful.button({ }, 4, function () + awful.client.focus.byidx(1) + end), + awful.button({ }, 5, function () + awful.client.focus.byidx(-1) + end)) + +local function set_wallpaper(s) + -- Wallpaper + if beautiful.wallpaper then + local wallpaper = beautiful.wallpaper + -- If wallpaper is a function, call it with the screen + if type(wallpaper) == "function" then + wallpaper = wallpaper(s) + end + gears.wallpaper.maximized(wallpaper, s, true) + end +end + +-- Re-set wallpaper when a screen's geometry changes (e.g. different resolution) +screen.connect_signal("property::geometry", set_wallpaper) + +awful.screen.connect_for_each_screen(function(s) + -- -- Wallpaper + set_wallpaper(s) + + -- Each screen has its own tag table. + awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8", "9" }, s, awful.layout.layouts[1]) + + -- Create a promptbox for each screen + s.mypromptbox = awful.widget.prompt() + -- Create an imagebox widget which will contain an icon indicating which layout we're using. + -- We need one layoutbox per screen. + s.mylayoutbox = awful.widget.layoutbox(s) + s.mylayoutbox:buttons(gears.table.join( + awful.button({ }, 1, function () awful.layout.inc( 1) end), + awful.button({ }, 3, function () awful.layout.inc(-1) end), + awful.button({ }, 4, function () awful.layout.inc( 1) end), + awful.button({ }, 5, function () awful.layout.inc(-1) end))) + -- Create a taglist widget + s.mytaglist = awful.widget.taglist { + screen = s, + filter = awful.widget.taglist.filter.all, + buttons = taglist_buttons + } + + -- Create a tasklist widget + s.mytasklist = awful.widget.tasklist { + screen = s, + filter = awful.widget.tasklist.filter.focused, + buttons = tasklist_buttons + } + + -- Create the wibox + s.mywibox = awful.wibar({ position = "top", screen = s, height = 36}) + + if (crcparse("snd") == "pipewire") or (crcparse("snd") == "pulseaudio") or (crcparse("snd") == "pulse") then + snd="pulse" + else + snd="default" + end + + net = crcparse("inet") + + batt = crcparse("batt") + + light = crcparse("bl") + + if batt == "y" then + battery = battery_widget { + font = font, + arc_thickness = 2, + show_current_level = false, + size = 18, + timeout = 10, + main_color = beautiful.fg_color, + bg_color = "#ffffff11", + low_level_color = "#e53935", + medium_level_color = "#c0ca33", + warning_msg_title = "Houston, we have a problem", + warning_msg_text = "Battery is dying", + warning_msg_position = "bottom_right", -- "bottom_right" is default, or top_right, top_left, bottom_left, bottom_right, top_middle, bottom_middle + warning_msg_icon = "~/.config/awesome/awesome-wm-widgets/batteryarc-widget/spaceman.jpg", + enable_battery_warning = true, + show_notification_mode = "on_click", -- "on_hover" is default, or "on_click" or "off" + notification_position = "top_right" -- "top_left is default, or top_right, top_left, bottom_left, bottom_right, top_middle, bottom_middle + } + else + battery = nil + end + + -- Add widgets to the wibox + ---[[ Uncomment for Linux + s.mywibox:setup { + layout = wibox.layout.align.horizontal, + { -- Left widgets + layout = wibox.layout.fixed.horizontal, + mylauncher, + s.mytaglist, + s.mypromptbox, + }, + s.mytasklist, -- Middle widget + { + layout = wibox.layout.fixed.horizontal, + mpd_widget, + net_speed { + font = beautiful.font2, + interface = net + }, + ram_widget({ + color_used=beautiful.bg_focus, + color_free=beautiful.fg_normal, + color_buf=beautiful.bg_accent, + widget_height=32, + widget_width=32, + widget_show_buf=true, + timeout=1 + }), + cpu_widget({ + width=50, + step_width=2, + step_spacing=1, + color=beautiful.fg_normal, + enable_kill_button=false, + process_info_max_length=-1, + timeout=1 + }), + brightness_widget { + type = "arc", + program = light, + step = 5, + base = 20, + path_to_icon = "/usr/share/icons/Paper/scalable/status/display-brightness-symbolic.svg", + timeout = 1, + tooltip = false, + percentage = false + }, + volume_widget { + path_to_icon = "/usr/share/icons/Paper/scalable/status/audio-volume-muted-symbolic.svg", + widget_type = "arc", + mute_color = "#ff111111", + device = snd, + }, + battery, + mykeyboardlayout, + wibox.widget.systray(), + mytextclock, + s.mylayoutbox, + }, + } + --]] + --[[ Uncomment for OpenBSD + -- Add widgets to the wibox + s.mywibox:setup { + layout = wibox.layout.align.horizontal, + { -- Left widgets + layout = wibox.layout.fixed.horizontal, + mylauncher, + s.mytaglist, + s.mypromptbox, + }, + s.mytasklist, -- Middle widget + { + layout = wibox.layout.fixed.horizontal, + mpd_widget, + mykeyboardlayout, + wibox.widget.systray(), + mytextclock, + s.mylayoutbox, + }, + } + --]] +end) + +-- }}} + +-- {{{ Mouse bindings +root.buttons(gears.table.join( + --[[ + awful.button({ }, 3, function () mymainmenu:toggle() end), + awful.button({ }, 4, awful.tag.viewnext), + awful.button({ }, 5, awful.tag.viewprev) + --]] +)) + +client.connect_signal("mouse::enter", function(c) + c:emit_signal("request::activate", "mouse_enter", {raise = false}) +end) +-- }}} + +-- {{{ Key bindings + + +globalkeys = gears.table.join( + ---[[ Toggles scratchpads + awful.key({ modkey, "Control" }, "z", + function () + sphtop:toggle() + end, + {description = "Toggle htop scratchpad"}), + awful.key({ modkey, "Control" }, "x", + function () + spterm:toggle() + end, + {description = "Toggle term scratchpad"}), + awful.key({ modkey, "Control" }, "c", + function () + sppmxr:toggle() + end, + {description = "Toggle pulsemixer scratchpad"}), + awful.key({ modkey, "Control" }, "v", + function () + spblue:toggle() + end, + {description = "Toggle bluetoothctl scratchpad"}), + awful.key({ modkey, "Control" }, "b", + function () + spncmp:toggle() + end, + {description = "Toggle ncmpcpp scratchpad"}), + awful.key({ modkey, "Control" }, "a", + function () + spmutt:toggle() + end, + {description = "Toggle neomutt scratchpad"}), + awful.key({ modkey, "Control" }, "s", + function () + spprof:toggle() + end, + {description = "Toggle profanity scratchpad"}), + awful.key({ modkey, "Control" }, "d", + function () + spirss:toggle() + end, + {description = "Toggle irssi scratchpad"}), + awful.key({ modkey, "Control" }, "f", + function () + sptodo:toggle() + end, + {description = "Toggle todo.txt scratchpad"}), + awful.key({ modkey, "Control" }, "g", + function () + sptrem:toggle() + end, + {description = "Toggle tremc scratchpad"}), + awful.key({ modkey, "Control" }, "q", + function () + qpwgraph:toggle() + end, + {description = "Toggle qpwgraph scratchpad"}), + --]] + + ---[[ spawnatbottom Toggles where in the stack new windows spawn + -- (at the bottom or not) + awful.key({ modkey }, "a", + function () + spawnatbottom = not spawnatbottom + end, + {description = "toggle attach at bottom", group = "layout"}), + --]] + + ---[[ inertkeys toggles keybindings on and off + awful.key({ modkey }, "b", + function () + root.keys(inertkeys) + end, + {description = "turn inert mode on", group = "awesome"}), + --]] + + --[[ Shows the awesome menu where the mouse is + awful.key({ modkey }, "w", + function () + mymainmenu:show() + end, + {description = "show main menu", group = "awesome"}), + --]] + + ---[[ Standard programs + -- Spawns the terminal defined by "terminal" + awful.key({ modkey }, "Return", + function () + awful.spawn(terminal) + end, + {description = "open a terminal", group = "launcher"}), + --]] + + ---[[ Awesome stop/restart + awful.key({ modkey, "Shift" }, "e", + function () + awesome.quit() + end, + {description = "quit awesome", group = "awesome"}), + awful.key({ modkey, "Shift" }, "r", + function () + awesome.restart() + end, + {description = "reload awesome", group = "awesome"}), + --]] + + ---[[ Changes master/slave ratio + awful.key({ modkey }, "l", + function () + awful.tag.incmwfact( 0.05) + end, + {description = "increase master width factor", group = "layout"}), + awful.key({ modkey }, "h", + function () + awful.tag.incmwfact(-0.05) + end, + {description = "decrease master width factor", group = "layout"}), + --]] + + ---[[ Changes the number of masters + awful.key({ modkey, "Shift" }, "h", + function () + awful.tag.incnmaster( 1, nil, true) + end, + {description = "increase te number of master clients", group = "layout"}), + awful.key({ modkey, "Shift" }, "l", + function () + awful.tag.incnmaster(-1, nil, true) + end, + {description = "decrease the number of master clients", group = "layout"}), + --]] + + ---[[ Changes the number of columns + awful.key({ modkey, "Control" }, "h", + function () + awful.tag.incncol( 1, nil, true) + end, + {description = "increase the number of columns", group = "layout"}), + awful.key({ modkey, "Control" }, "l", + function () + awful.tag.incncol(-1, nil, true) + end, + {description = "decrease the number of columns", group = "layout"}) + --]] + + --[[ Changes the layout used + awful.key({ modkey }, "space", + function () + awful.layout.inc( 1) + end, + {description = "select next", group = "layout"}), + awful.key({ modkey, "Shift" }, "space", + function () + awful.layout.inc(-1) + end, + {description = "select previous", group = "layout"}), + --]] + + --[[ Runs arbitrary Lua code + awful.key({ modkey }, "x", + function () + awful.prompt.run { + prompt = "Run Lua code: ", + textbox = awful.screen.focused().mypromptbox.widget, + exe_callback = awful.util.eval, + history_path = awful.util.get_cache_dir() .. "/history_eval" + } + end, + {description = "lua execute prompt", group = "awesome"}) + --]] +) + +---[[ Keybindings for messing with clients +globalkeys = gears.table.join( globalkeys, + ---[[ Client manipulation + -- Moves focus up and down the stack + awful.key({ modkey }, "j", + function () + awful.client.focus.byidx( 1) + end, + {description = "focus next by index", group = "client"}), + awful.key({ modkey }, "k", + function () + awful.client.focus.byidx(-1) + end, + {description = "focus previous by index", group = "client"}), + -- Moves client up and down the stack + awful.key({ modkey, "Shift" }, "j", + function () + awful.client.swap.byidx( 1) + end, + {description = "swap with next client by index", group = "client"}), + awful.key({ modkey, "Shift" }, "k", + function () + awful.client.swap.byidx( -1) + end, + {description = "swap with previous client by index", group = "client"}), + -- Moves focus between screens + awful.key({ modkey, "Control" }, "j", + function () + awful.screen.focus_relative( 1) + end, + {description = "focus the next screen", group = "screen"}), + awful.key({ modkey, "Control" }, "k", + function () + awful.screen.focus_relative(-1) + end, + {description = "focus the previous screen", group = "screen"}), + -- Focuses the previous client + awful.key({ modkey }, "Tab", + function () + awful.client.focus.history.previous() + if client.focus then + client.focus:raise() + end + end, + {description = "go back", group = "client"}), + --]] + + ---[[ Closes client + awful.key({ modkey, "Shift" }, "q", + function (c) + c:kill() + end, + {description = "close", group = "client"}), + --]] + + ---[[ Toggles client state + -- Toggles fullscreen + awful.key({ modkey }, "f", + function (c) + c.fullscreen = not c.fullscreen + c:raise() + end, + {description = "toggle fullscreen", group = "client"}), + + -- Toggles client floating + awful.key({ modkey, "Control" }, "space", + function (c) + c.floating = not c.floating + end, + {description = "toggle floating", group = "client"}), + + -- Toggles keeping the client on top + awful.key({ modkey }, "t", + function (c) + c.ontop = not c.ontop + end, + {description = "toggle keep on top", group = "client"}), + + -- Toggles maximizing the client + awful.key({ modkey }, "m", + function (c) + c.maximized = not c.maximized + c:raise() + end, + {description = "toggle maximize", group = "client"}), + + -- Toggles vertically maximizing the client + awful.key({ modkey, "Control" }, "m", + function (c) + c.maximized_vertical = not c.maximized_vertical + c:raise() + end, + {description = "toggle maximize vertically", group = "client"}), + + -- Toggles horizontally maximizing the client + awful.key({ modkey, "Shift" }, "m", + function (c) + c.maximized_horizontal = not c.maximized_horizontal + c:raise() + end, + {description = "toggle maximize horizontally", group = "client"}), + --]] + + ---[[ Moves the client to the master position + -- Or, if client is the master, does nothing + awful.key({ modkey, "Shift" }, "Return", + function (c) + c:swap(awful.client.getmaster()) + end, + {description = "move to master", group = "client"}), + --]] + + ---[[ Moves the client to the next screen + awful.key({ modkey }, "o", + function (c) + c:move_to_screen() + end, + {description = "move to screen", group = "client"}), + --]] + + ---[[ Minimization + -- Minimizes the client + awful.key({ modkey }, "n", + function (c) + -- The client currently has the input focus, so it cannot be + -- minimized, since minimized clients can't have the focus. + c.minimized = true + end , + {description = "minimize", group = "client"}), + + -- Unminimizes one client + awful.key({ modkey, "Control" }, "n", + function () + local c = awful.client.restore() + -- Focus restored client + if c then + c:emit_signal("request::activate", "key.unminimize", {raise = true}) + end + end, + {description = "restore minimized", group = "client"}) + --]] +) + +---[[ Tag keybindings +-- Bind all key numbers to tags. +-- Be careful: we use keycodes to make it work on any keyboard layout. +-- This should map on the top row of your keyboard, usually 1 to 9. +for i = 1, 9 do + globalkeys = gears.table.join(globalkeys, + ---[[ View tag only. + awful.key({ modkey }, "#" .. i + 9, + function () + local screen = awful.screen.focused() + local tag = screen.tags[i] + if tag then + tag:view_only() + end + end, + {description = "view tag #"..i, group = "tag"}), + --]] + ---[[ Toggle tag display. + awful.key({ modkey, "Control" }, "#" .. i + 9, + function () + local screen = awful.screen.focused() + local tag = screen.tags[i] + if tag then + awful.tag.viewtoggle(tag) + end + end, + {description = "toggle tag #" .. i, group = "tag"}), + --]] + ---[[ Move client to tag. + awful.key({ modkey, "Shift" }, "#" .. i + 9, + function () + if client.focus then + local tag = client.focus.screen.tags[i] + if tag then + client.focus:move_to_tag(tag) + end + end + end, + {description = "move focused client to tag #"..i, group = "tag"}), + --]] + ---[[ Toggle tag on focused client. + awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9, + function () + if client.focus then + local tag = client.focus.screen.tags[i] + if tag then + client.focus:toggle_tag(tag) + end + end + end, + {description = "toggle focused client on tag #" .. i, group = "tag"}) + --]] + ) +end +--]] + +---[[ Mouse keybindings +clientbuttons = gears.table.join( + ---[[ Focus client when clicked on + awful.button({ 0 }, 1, + function (c) + c:emit_signal("request::activate", "mouse_click", {raise = true}) + end), + --]] + ---[[ Move client when left clicked with modkey + awful.button({ modkey }, 1, + function (c) + c:emit_signal("request::activate", "mouse_click", {raise = true}) + awful.mouse.client.move(c) + end), + --]] + ---[[ Resize client when right clicked with modkey + awful.button({ modkey }, 3, + function (c) + c:emit_signal("request::activate", "mouse_click", {raise = true}) + awful.mouse.client.resize(c) + end) + --]] +) +--]] + +---[[ Keybindings for the "inert" mode +inertkeys = gears.table.join( + ---[[ Go back to normal bindings + awful.key({ modkey }, "b", + function () + root.keys(globalkeys) + end, + {description = "turn inert mode off", group = "awesome"}) + --]] +) +--]] + +-- Set keys +root.keys(globalkeys) +-- }}} + +-- {{{ Rules +-- Rules to apply to new clients (through the "manage" signal). +awful.rules.rules = { + -- All clients will match this rule. + { rule = { }, + properties = { border_width = beautiful.border_width, + border_color = beautiful.border_normal, + focus = awful.client.focus.filter, + raise = true, + keys = nil, + buttons = clientbuttons, + screen = awful.screen.preferred, + placement = awful.placement.no_overlap+awful.placement.no_offscreen + } + }, + + { rule_any = { + class = { + "QjackCtl", + "Tk", + "gcr-prompter" + } + }, + properties = { floating = true }, + callback = function(c) + awful.placement.centered(c,nil) + end + }, + + -- Floating clients. + { rule_any = { + instance = { + "DTA", -- Firefox addon DownThemAll. + "copyq", -- Includes session name in class. + "pinentry", + }, + class = { + --"mpv", + "ProtonMail Bridge", + "TheFiniteDemo", + "Arandr", + "Blueman-manager", + "Gpick", + "Kruler", + "MessageWin", -- kalarm. + -- "Sxiv", + "Tor Browser", -- Needs a fixed window size to avoid fingerprinting by screen size. + "Wpa_gui", + "veromix", + "xtightvncviewer" + }, + + -- Note that the name property shown in xprop might be set slightly after creation of the client + -- and the name shown there might not match defined rules here. + name = { + "Event Tester", -- xev. + }, + role = { + "AlarmWindow", -- Thunderbird's calendar. + "ConfigManager", -- Thunderbird's about:config. + "pop-up", -- e.g. Google Chrome's (detached) Developer Tools. + } + }, properties = { floating = true } + }, + + -- Add titlebars to normal clients and dialogs + { rule_any = { + type = { "normal", "dialog" } + }, + properties = { titlebars_enabled = true } + }, + + -- These windows will be force resized to fit + { rule_any = + { + class = { + "mpv", + "Lutris", + "polychromatic-controller" + }, + }, properties = { size_hints_honor = false } + }, +} +-- }}} + +--{{{ bling window swallowing +bling.module.window_swallowing.start() +--}}} + +-- {{{ Autostart +--[[ Commands to run: + xrdb ~/.Xresources + setxkbmap -option 'caps:escape' + picom + sxhkd + xwallpaper --center ~/background.jpg + jamesdsp -t +--]] +-- Autostart commands that only run once +awful.spawn.with_shell( + 'if (xrdb -query | grep -q "^awesome\\.started:\\s*true$"); then exit; fi;' .. + 'xrdb -merge <<< "awesome.started:true";' .. + -- list each of your autostart commands, followed by ; inside single quotes, + -- followed by .. + 'xss-lock slockd' +) +-- Autostart commands that run every restart +awful.spawn.with_shell( + -- list each of your autostart commands, followed by ; inside single quotes, + -- followed by .. + 'setxkbmap -option "caps:escape";' .. + 'picom &;' .. + 'sxhkd &;' .. + 'jamedsp -t &' +) +-- }}} + +-- spawn windows as slaves {{{ +client.connect_signal( + "manage", + function(c) + if not awesome.startup then + if spawnatbottom then + awful.client.setslave(c) + end + end + end +) +-- }}} diff --git a/awesome/themes/zachir/README b/awesome/themes/zachir/README new file mode 100644 index 0000000..1ddb349 --- /dev/null +++ b/awesome/themes/zachir/README @@ -0,0 +1,3 @@ +Background images: + Mikael Eriksson + Licensed under CC-BY-SA-3.0 diff --git a/awesome/themes/zachir/background.jpg b/awesome/themes/zachir/background.jpg new file mode 120000 index 0000000..525f4e6 --- /dev/null +++ b/awesome/themes/zachir/background.jpg @@ -0,0 +1 @@ +/home/zachir/background.jpg \ No newline at end of file diff --git a/awesome/themes/zachir/background.png b/awesome/themes/zachir/background.png new file mode 100644 index 0000000..8f52b6b Binary files /dev/null and b/awesome/themes/zachir/background.png differ diff --git a/awesome/themes/zachir/background_white.png b/awesome/themes/zachir/background_white.png new file mode 100644 index 0000000..bb0c5d0 Binary files /dev/null and b/awesome/themes/zachir/background_white.png differ diff --git a/awesome/themes/zachir/layouts/cornerne.png b/awesome/themes/zachir/layouts/cornerne.png new file mode 100644 index 0000000..c85bd56 Binary files /dev/null and b/awesome/themes/zachir/layouts/cornerne.png differ diff --git a/awesome/themes/zachir/layouts/cornernew.png b/awesome/themes/zachir/layouts/cornernew.png new file mode 100644 index 0000000..c3fd986 Binary files /dev/null and b/awesome/themes/zachir/layouts/cornernew.png differ diff --git a/awesome/themes/zachir/layouts/cornernw.png b/awesome/themes/zachir/layouts/cornernw.png new file mode 100644 index 0000000..dfe78b3 Binary files /dev/null and b/awesome/themes/zachir/layouts/cornernw.png differ diff --git a/awesome/themes/zachir/layouts/cornernww.png b/awesome/themes/zachir/layouts/cornernww.png new file mode 100644 index 0000000..f489010 Binary files /dev/null and b/awesome/themes/zachir/layouts/cornernww.png differ diff --git a/awesome/themes/zachir/layouts/cornerse.png b/awesome/themes/zachir/layouts/cornerse.png new file mode 100644 index 0000000..023ae79 Binary files /dev/null and b/awesome/themes/zachir/layouts/cornerse.png differ diff --git a/awesome/themes/zachir/layouts/cornersew.png b/awesome/themes/zachir/layouts/cornersew.png new file mode 100644 index 0000000..f7cfa1c Binary files /dev/null and b/awesome/themes/zachir/layouts/cornersew.png differ diff --git a/awesome/themes/zachir/layouts/cornersw.png b/awesome/themes/zachir/layouts/cornersw.png new file mode 100644 index 0000000..c1453c9 Binary files /dev/null and b/awesome/themes/zachir/layouts/cornersw.png differ diff --git a/awesome/themes/zachir/layouts/cornersww.png b/awesome/themes/zachir/layouts/cornersww.png new file mode 100644 index 0000000..a65a043 Binary files /dev/null and b/awesome/themes/zachir/layouts/cornersww.png differ diff --git a/awesome/themes/zachir/layouts/dwindle.png b/awesome/themes/zachir/layouts/dwindle.png new file mode 100644 index 0000000..9902d22 Binary files /dev/null and b/awesome/themes/zachir/layouts/dwindle.png differ diff --git a/awesome/themes/zachir/layouts/dwindlew.png b/awesome/themes/zachir/layouts/dwindlew.png new file mode 100644 index 0000000..9199049 Binary files /dev/null and b/awesome/themes/zachir/layouts/dwindlew.png differ diff --git a/awesome/themes/zachir/layouts/fairh.png b/awesome/themes/zachir/layouts/fairh.png new file mode 100644 index 0000000..d41deea Binary files /dev/null and b/awesome/themes/zachir/layouts/fairh.png differ diff --git a/awesome/themes/zachir/layouts/fairhw.png b/awesome/themes/zachir/layouts/fairhw.png new file mode 100644 index 0000000..bb50e3a Binary files /dev/null and b/awesome/themes/zachir/layouts/fairhw.png differ diff --git a/awesome/themes/zachir/layouts/fairv.png b/awesome/themes/zachir/layouts/fairv.png new file mode 100644 index 0000000..f5f0288 Binary files /dev/null and b/awesome/themes/zachir/layouts/fairv.png differ diff --git a/awesome/themes/zachir/layouts/fairvw.png b/awesome/themes/zachir/layouts/fairvw.png new file mode 100644 index 0000000..4f4ed52 Binary files /dev/null and b/awesome/themes/zachir/layouts/fairvw.png differ diff --git a/awesome/themes/zachir/layouts/floating.png b/awesome/themes/zachir/layouts/floating.png new file mode 100644 index 0000000..b8061a0 Binary files /dev/null and b/awesome/themes/zachir/layouts/floating.png differ diff --git a/awesome/themes/zachir/layouts/floatingw.png b/awesome/themes/zachir/layouts/floatingw.png new file mode 100644 index 0000000..4815894 Binary files /dev/null and b/awesome/themes/zachir/layouts/floatingw.png differ diff --git a/awesome/themes/zachir/layouts/fullscreen.png b/awesome/themes/zachir/layouts/fullscreen.png new file mode 100644 index 0000000..d02f6fc Binary files /dev/null and b/awesome/themes/zachir/layouts/fullscreen.png differ diff --git a/awesome/themes/zachir/layouts/fullscreenw.png b/awesome/themes/zachir/layouts/fullscreenw.png new file mode 100644 index 0000000..5c35bfa Binary files /dev/null and b/awesome/themes/zachir/layouts/fullscreenw.png differ diff --git a/awesome/themes/zachir/layouts/magnifier.png b/awesome/themes/zachir/layouts/magnifier.png new file mode 100644 index 0000000..2925414 Binary files /dev/null and b/awesome/themes/zachir/layouts/magnifier.png differ diff --git a/awesome/themes/zachir/layouts/magnifierw.png b/awesome/themes/zachir/layouts/magnifierw.png new file mode 100644 index 0000000..6209556 Binary files /dev/null and b/awesome/themes/zachir/layouts/magnifierw.png differ diff --git a/awesome/themes/zachir/layouts/max.png b/awesome/themes/zachir/layouts/max.png new file mode 100644 index 0000000..8d20844 Binary files /dev/null and b/awesome/themes/zachir/layouts/max.png differ diff --git a/awesome/themes/zachir/layouts/maxw.png b/awesome/themes/zachir/layouts/maxw.png new file mode 100644 index 0000000..85f5ce3 Binary files /dev/null and b/awesome/themes/zachir/layouts/maxw.png differ diff --git a/awesome/themes/zachir/layouts/spiral.png b/awesome/themes/zachir/layouts/spiral.png new file mode 100644 index 0000000..d9434be Binary files /dev/null and b/awesome/themes/zachir/layouts/spiral.png differ diff --git a/awesome/themes/zachir/layouts/spiralw.png b/awesome/themes/zachir/layouts/spiralw.png new file mode 100644 index 0000000..b78dd86 Binary files /dev/null and b/awesome/themes/zachir/layouts/spiralw.png differ diff --git a/awesome/themes/zachir/layouts/tile.png b/awesome/themes/zachir/layouts/tile.png new file mode 100644 index 0000000..3ede21e Binary files /dev/null and b/awesome/themes/zachir/layouts/tile.png differ diff --git a/awesome/themes/zachir/layouts/tilebottom.png b/awesome/themes/zachir/layouts/tilebottom.png new file mode 100644 index 0000000..6f8c257 Binary files /dev/null and b/awesome/themes/zachir/layouts/tilebottom.png differ diff --git a/awesome/themes/zachir/layouts/tilebottomw.png b/awesome/themes/zachir/layouts/tilebottomw.png new file mode 100644 index 0000000..a1de7b2 Binary files /dev/null and b/awesome/themes/zachir/layouts/tilebottomw.png differ diff --git a/awesome/themes/zachir/layouts/tileleft.png b/awesome/themes/zachir/layouts/tileleft.png new file mode 100644 index 0000000..31d6870 Binary files /dev/null and b/awesome/themes/zachir/layouts/tileleft.png differ diff --git a/awesome/themes/zachir/layouts/tileleftw.png b/awesome/themes/zachir/layouts/tileleftw.png new file mode 100644 index 0000000..cf14c25 Binary files /dev/null and b/awesome/themes/zachir/layouts/tileleftw.png differ diff --git a/awesome/themes/zachir/layouts/tiletop.png b/awesome/themes/zachir/layouts/tiletop.png new file mode 100644 index 0000000..98cade2 Binary files /dev/null and b/awesome/themes/zachir/layouts/tiletop.png differ diff --git a/awesome/themes/zachir/layouts/tiletopw.png b/awesome/themes/zachir/layouts/tiletopw.png new file mode 100644 index 0000000..d1d0872 Binary files /dev/null and b/awesome/themes/zachir/layouts/tiletopw.png differ diff --git a/awesome/themes/zachir/layouts/tilew.png b/awesome/themes/zachir/layouts/tilew.png new file mode 100644 index 0000000..fde2ca4 Binary files /dev/null and b/awesome/themes/zachir/layouts/tilew.png differ diff --git a/awesome/themes/zachir/submenu.png b/awesome/themes/zachir/submenu.png new file mode 100644 index 0000000..b2778e2 Binary files /dev/null and b/awesome/themes/zachir/submenu.png differ diff --git a/awesome/themes/zachir/taglist/squarefw.png b/awesome/themes/zachir/taglist/squarefw.png new file mode 100644 index 0000000..2a86430 Binary files /dev/null and b/awesome/themes/zachir/taglist/squarefw.png differ diff --git a/awesome/themes/zachir/taglist/squarew.png b/awesome/themes/zachir/taglist/squarew.png new file mode 100644 index 0000000..913f2ca Binary files /dev/null and b/awesome/themes/zachir/taglist/squarew.png differ diff --git a/awesome/themes/zachir/theme.lua b/awesome/themes/zachir/theme.lua new file mode 100644 index 0000000..bef4f5c --- /dev/null +++ b/awesome/themes/zachir/theme.lua @@ -0,0 +1,240 @@ +--------------------------- +-- Default awesome theme -- +--------------------------- + +local theme_assets = require("beautiful.theme_assets") +local xresources = require("beautiful.xresources") +local dpi = xresources.apply_dpi +local xrdb = xresources.get_current_theme() + +local gfs = require("gears.filesystem") +local themes_path = gfs.get_themes_dir() + +local theme = {} + +theme.font = "mononoki Nerd Font Mono 18" +theme.font2 = "mononoki Nerd Font Mono 12" + +theme.bg_normal = xrdb.background +theme.bg_focus = xrdb.color2 +theme.bg_accent = xrdb.color8 +theme.bg_urgent = xrdb.color9 +theme.bg_minimize = xrdb.color0 +theme.bg_systray = theme.bg_focus + +theme.fg_normal = xrdb.color7 +theme.fg_focus = xrdb.background +theme.fg_urgent = xrdb.color15 +theme.fg_minimize = xrdb.color15 +theme.useless_gap = dpi(0) +theme.border_width = dpi(1) +theme.border_normal = xrdb.color0 +theme.border_focus = xrdb.color2 +theme.border_marked = xrdb.color8 + +-- There are other variable sets +-- overriding the default one when +-- defined, the sets are: +-- taglist_[bg|fg]_[focus|urgent|occupied|empty|volatile] +-- tasklist_[bg|fg]_[focus|urgent] +-- titlebar_[bg|fg]_[normal|focus] +-- tooltip_[font|opacity|fg_color|bg_color|border_width|border_color] +-- mouse_finder_[color|timeout|animate_timeout|radius|factor] +-- prompt_[fg|bg|fg_cursor|bg_cursor|font] +-- hotkeys_[bg|fg|border_width|border_color|shape|opacity|modifiers_fg|label_bg|label_fg|group_margin|font|description_font] +-- Example: +--theme.taglist_bg_focus = "#ff0000" + +-- Generate taglist squares: +local taglist_square_size = dpi(4) +theme.taglist_squares_sel = theme_assets.taglist_squares_sel( + taglist_square_size, theme.fg_normal +) +theme.taglist_squares_unsel = theme_assets.taglist_squares_unsel( + taglist_square_size, theme.fg_normal +) + +-- Variables set for theming notifications: +-- notification_font +-- notification_[bg|fg] +-- notification_[width|height|margin] +-- notification_[border_color|border_width|shape|opacity] + +-- Variables set for theming the menu: +-- menu_[bg|fg]_[normal|focus] +-- menu_[border_color|border_width] +theme.menu_submenu_icon = themes_path.."zachir/submenu.png" +theme.menu_height = dpi(15) +theme.menu_width = dpi(100) + +-- You can add as many variables as +-- you wish and access them by using +-- beautiful.variable in your rc.lua +--theme.bg_widget = "#cc0000" + +-- Define the image to load +theme.titlebar_close_button_normal = themes_path.."zachir/titlebar/close_normal.png" +theme.titlebar_close_button_focus = themes_path.."zachir/titlebar/close_focus.png" + +theme.titlebar_minimize_button_normal = themes_path.."zachir/titlebar/minimize_normal.png" +theme.titlebar_minimize_button_focus = themes_path.."zachir/titlebar/minimize_focus.png" + +theme.titlebar_ontop_button_normal_inactive = themes_path.."zachir/titlebar/ontop_normal_inactive.png" +theme.titlebar_ontop_button_focus_inactive = themes_path.."zachir/titlebar/ontop_focus_inactive.png" +theme.titlebar_ontop_button_normal_active = themes_path.."zachir/titlebar/ontop_normal_active.png" +theme.titlebar_ontop_button_focus_active = themes_path.."zachir/titlebar/ontop_focus_active.png" + +theme.titlebar_sticky_button_normal_inactive = themes_path.."zachir/titlebar/sticky_normal_inactive.png" +theme.titlebar_sticky_button_focus_inactive = themes_path.."zachir/titlebar/sticky_focus_inactive.png" +theme.titlebar_sticky_button_normal_active = themes_path.."zachir/titlebar/sticky_normal_active.png" +theme.titlebar_sticky_button_focus_active = themes_path.."zachir/titlebar/sticky_focus_active.png" + +theme.titlebar_floating_button_normal_inactive = themes_path.."zachir/titlebar/floating_normal_inactive.png" +theme.titlebar_floating_button_focus_inactive = themes_path.."zachir/titlebar/floating_focus_inactive.png" +theme.titlebar_floating_button_normal_active = themes_path.."zachir/titlebar/floating_normal_active.png" +theme.titlebar_floating_button_focus_active = themes_path.."zachir/titlebar/floating_focus_active.png" + +theme.titlebar_maximized_button_normal_inactive = themes_path.."zachir/titlebar/maximized_normal_inactive.png" +theme.titlebar_maximized_button_focus_inactive = themes_path.."zachir/titlebar/maximized_focus_inactive.png" +theme.titlebar_maximized_button_normal_active = themes_path.."zachir/titlebar/maximized_normal_active.png" +theme.titlebar_maximized_button_focus_active = themes_path.."zachir/titlebar/maximized_focus_active.png" + +local home_dir = os.getenv("HOME") +theme.wallpaper = home_dir .. "/background.jpg" + +-- You can use your own layout icons like this: +theme.layout_fairh = themes_path.."zachir/layouts/fairhw.png" +theme.layout_fairv = themes_path.."zachir/layouts/fairvw.png" +theme.layout_floating = themes_path.."zachir/layouts/floatingw.png" +theme.layout_magnifier = themes_path.."zachir/layouts/magnifierw.png" +theme.layout_max = themes_path.."zachir/layouts/maxw.png" +theme.layout_fullscreen = themes_path.."zachir/layouts/fullscreenw.png" +theme.layout_tilebottom = themes_path.."zachir/layouts/tilebottomw.png" +theme.layout_tileleft = themes_path.."zachir/layouts/tileleftw.png" +theme.layout_tile = themes_path.."zachir/layouts/tilew.png" +theme.layout_tiletop = themes_path.."zachir/layouts/tiletopw.png" +theme.layout_spiral = themes_path.."zachir/layouts/spiralw.png" +theme.layout_dwindle = themes_path.."zachir/layouts/dwindlew.png" +theme.layout_cornernw = themes_path.."zachir/layouts/cornernww.png" +theme.layout_cornerne = themes_path.."zachir/layouts/cornernew.png" +theme.layout_cornersw = themes_path.."zachir/layouts/cornersww.png" +theme.layout_cornerse = themes_path.."zachir/layouts/cornersew.png" + +-- Generate Awesome icon: +theme.awesome_icon = theme_assets.awesome_icon( + theme.menu_height, theme.bg_focus, theme.fg_focus +) + +-- Define the icon theme for application icons. If not set then the icons +-- from /usr/share/icons and /usr/share/icons/hicolor will be used. +theme.icon_theme = nil + +-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80 +--[[ Bling theme variables template + +This file has all theme variables of the bling module. +Every variable has a small comment on what it does. +You might just want to copy that whole part into your theme.lua and start adjusting from there. + +--]] +-- LuaFormatter off +-- window swallowing +theme.parent_filter_list = { "ampbox.exe", "Brave-browser", "Carla2", "carla", "firefox", "Gimp", "LibreWolf", "Lutris", "MultiMC", "obs", "REAPER", "steam", "xviix64.exe", "yabridge" } -- class names list of parents that should not be swallowed +theme.child_filter_list = { "Brave-browser", "Dragon", "librepcb", "LibrePCB", "REAPER", "yabridge" } -- class names list that should not swallow their parents +theme.swallowing_filter = true -- whether the filters above should be active + +-- flash focus +theme.flash_focus_start_opacity = 0.6 -- the starting opacity +theme.flash_focus_step = 0.01 -- the step of animation + +-- playerctl signal +theme.playerctl_backend = "playerctl_cli" -- backend to use +theme.playerctl_ignore = {} -- list of players to be ignored +theme.playerctl_player = {} -- list of players to be used in priority order +theme.playerctl_update_on_activity = true -- whether to prioritize the most recently active players or not +theme.playerctl_position_update_interval = 1 -- the update interval for fetching the position from playerctl + +-- tabbed +theme.tabbed_spawn_in_tab = false -- whether a new client should spawn into the focused tabbing container + +-- tabbar general +theme.tabbar_disable = false -- disable the tab bar entirely +theme.tabbar_ontop = false +theme.tabbar_radius = 0 -- border radius of the tabbar +theme.tabbar_style = "default" -- style of the tabbar ("default", "boxes" or "modern") +theme.tabbar_font = "mononoki Nerd Font Mono 24" -- font of the tabbar +theme.tabbar_size = 40 -- size of the tabbar +theme.tabbar_position = "top" -- position of the tabbar +theme.tabbar_bg_normal = "#000000" -- background color of the focused client on the tabbar +theme.tabbar_fg_normal = "#ffffff" -- foreground color of the focused client on the tabbar +theme.tabbar_bg_focus = "#1A2026" -- background color of unfocused clients on the tabbar +theme.tabbar_fg_focus = "#ff0000" -- foreground color of unfocused clients on the tabbar +theme.tabbar_bg_focus_inactive = nil -- background color of the focused client on the tabbar when inactive +theme.tabbar_fg_focus_inactive = nil -- foreground color of the focused client on the tabbar when inactive +theme.tabbar_bg_normal_inactive = nil -- background color of unfocused clients on the tabbar when inactive +theme.tabbar_fg_normal_inactive = nil -- foreground color of unfocused clients on the tabbar when inactive + +-- mstab +theme.mstab_bar_disable = false -- disable the tabbar +theme.mstab_bar_ontop = false -- whether you want to allow the bar to be ontop of clients +theme.mstab_dont_resize_slaves = false -- whether the tabbed stack windows should be smaller than the +-- currently focused stack window (set it to true if you use +-- transparent terminals. False if you use shadows on solid ones +theme.mstab_bar_padding = "default" -- how much padding there should be between clients and your tabbar +-- by default it will adjust based on your useless gaps. +-- If you want a custom value. Set it to the number of pixels (int) +theme.mstab_border_radius = 0 -- border radius of the tabbar +theme.mstab_bar_height = 40 -- height of the tabbar +theme.mstab_tabbar_position = "top" -- position of the tabbar (mstab currently does not support left,right) +theme.mstab_tabbar_style = "default" -- style of the tabbar ("default", "boxes" or "modern") +-- defaults to the tabbar_style so only change if you want a +-- different style for mstab and tabbed + +-- the following variables are currently only for the "modern" tabbar style +theme.tabbar_color_close = "#f9929b" -- changes the color of the close button +theme.tabbar_color_min = "#fbdf90" -- changes the color of the minimize button +theme.tabbar_color_float = "#ccaced" -- changes the color of the float button + +-- tag preview widget +theme.tag_preview_widget_border_radius = 0 -- Border radius of the widget (With AA) +theme.tag_preview_client_border_radius = 0 -- Border radius of each client in the widget (With AA) +theme.tag_preview_client_opacity = 0.5 -- Opacity of each client +theme.tag_preview_client_bg = "#000000" -- The bg color of each client +theme.tag_preview_client_border_color = "#ffffff" -- The border color of each client +theme.tag_preview_client_border_width = 3 -- The border width of each client +theme.tag_preview_widget_bg = "#000000" -- The bg color of the widget +theme.tag_preview_widget_border_color = "#ffffff" -- The border color of the widget +theme.tag_preview_widget_border_width = 3 -- The border width of the widget +theme.tag_preview_widget_margin = 0 -- The margin of the widget + +-- task preview widget +theme.task_preview_widget_border_radius = 0 -- Border radius of the widget (With AA) +theme.task_preview_widget_bg = "#000000" -- The bg color of the widget +theme.task_preview_widget_border_color = "#ffffff" -- The border color of the widget +theme.task_preview_widget_border_width = 3 -- The border width of the widget +theme.task_preview_widget_margin = 0 -- The margin of the widget + +-- window switcher +theme.window_switcher_widget_bg = "#000000" -- The bg color of the widget +theme.window_switcher_widget_border_width = 3 -- The border width of the widget +theme.window_switcher_widget_border_radius = 0 -- The border radius of the widget +theme.window_switcher_widget_border_color = "#ffffff" -- The border color of the widget +theme.window_switcher_clients_spacing = 20 -- The space between each client item +theme.window_switcher_client_icon_horizontal_spacing = 5 -- The space between client icon and text +theme.window_switcher_client_width = 150 -- The width of one client widget +theme.window_switcher_client_height = 250 -- The height of one client widget +theme.window_switcher_client_margins = 10 -- The margin between the content and the border of the widget +theme.window_switcher_thumbnail_margins = 10 -- The margin between one client thumbnail and the rest of the widget +theme.thumbnail_scale = false -- If set to true, the thumbnails fit policy will be set to "fit" instead of "auto" +theme.window_switcher_name_margins = 10 -- The margin of one clients title to the rest of the widget +theme.window_switcher_name_valign = "center" -- How to vertically align one clients title +theme.window_switcher_name_forced_width = 200 -- The width of one title +theme.window_switcher_name_font = "Sans 11" -- The font of all titles +theme.window_switcher_name_normal_color = "#ffffff" -- The color of one title if the client is unfocused +theme.window_switcher_name_focus_color = "#ff0000" -- The color of one title if the client is focused +theme.window_switcher_icon_valign = "center" -- How to vertically align the one icon +theme.window_switcher_icon_width = 40 -- The width of one icon + +-- LuaFormatter on +return theme + diff --git a/awesome/themes/zachir/titlebar/close_focus.png b/awesome/themes/zachir/titlebar/close_focus.png new file mode 100644 index 0000000..01ef825 Binary files /dev/null and b/awesome/themes/zachir/titlebar/close_focus.png differ diff --git a/awesome/themes/zachir/titlebar/close_normal.png b/awesome/themes/zachir/titlebar/close_normal.png new file mode 100644 index 0000000..5448ed8 Binary files /dev/null and b/awesome/themes/zachir/titlebar/close_normal.png differ diff --git a/awesome/themes/zachir/titlebar/floating_focus_active.png b/awesome/themes/zachir/titlebar/floating_focus_active.png new file mode 100644 index 0000000..82dcc7c Binary files /dev/null and b/awesome/themes/zachir/titlebar/floating_focus_active.png differ diff --git a/awesome/themes/zachir/titlebar/floating_focus_inactive.png b/awesome/themes/zachir/titlebar/floating_focus_inactive.png new file mode 100644 index 0000000..c19ba80 Binary files /dev/null and b/awesome/themes/zachir/titlebar/floating_focus_inactive.png differ diff --git a/awesome/themes/zachir/titlebar/floating_normal_active.png b/awesome/themes/zachir/titlebar/floating_normal_active.png new file mode 100644 index 0000000..62342d1 Binary files /dev/null and b/awesome/themes/zachir/titlebar/floating_normal_active.png differ diff --git a/awesome/themes/zachir/titlebar/floating_normal_inactive.png b/awesome/themes/zachir/titlebar/floating_normal_inactive.png new file mode 100644 index 0000000..e2bbdfa Binary files /dev/null and b/awesome/themes/zachir/titlebar/floating_normal_inactive.png differ diff --git a/awesome/themes/zachir/titlebar/maximized_focus_active.png b/awesome/themes/zachir/titlebar/maximized_focus_active.png new file mode 100644 index 0000000..d7dffd7 Binary files /dev/null and b/awesome/themes/zachir/titlebar/maximized_focus_active.png differ diff --git a/awesome/themes/zachir/titlebar/maximized_focus_inactive.png b/awesome/themes/zachir/titlebar/maximized_focus_inactive.png new file mode 100644 index 0000000..844389f Binary files /dev/null and b/awesome/themes/zachir/titlebar/maximized_focus_inactive.png differ diff --git a/awesome/themes/zachir/titlebar/maximized_normal_active.png b/awesome/themes/zachir/titlebar/maximized_normal_active.png new file mode 100644 index 0000000..a705f81 Binary files /dev/null and b/awesome/themes/zachir/titlebar/maximized_normal_active.png differ diff --git a/awesome/themes/zachir/titlebar/maximized_normal_inactive.png b/awesome/themes/zachir/titlebar/maximized_normal_inactive.png new file mode 100644 index 0000000..4c1ab1f Binary files /dev/null and b/awesome/themes/zachir/titlebar/maximized_normal_inactive.png differ diff --git a/awesome/themes/zachir/titlebar/minimize_focus.png b/awesome/themes/zachir/titlebar/minimize_focus.png new file mode 100644 index 0000000..caaceb2 Binary files /dev/null and b/awesome/themes/zachir/titlebar/minimize_focus.png differ diff --git a/awesome/themes/zachir/titlebar/minimize_normal.png b/awesome/themes/zachir/titlebar/minimize_normal.png new file mode 100644 index 0000000..36621d0 Binary files /dev/null and b/awesome/themes/zachir/titlebar/minimize_normal.png differ diff --git a/awesome/themes/zachir/titlebar/ontop_focus_active.png b/awesome/themes/zachir/titlebar/ontop_focus_active.png new file mode 100644 index 0000000..312c00b Binary files /dev/null and b/awesome/themes/zachir/titlebar/ontop_focus_active.png differ diff --git a/awesome/themes/zachir/titlebar/ontop_focus_inactive.png b/awesome/themes/zachir/titlebar/ontop_focus_inactive.png new file mode 100644 index 0000000..a48e1c5 Binary files /dev/null and b/awesome/themes/zachir/titlebar/ontop_focus_inactive.png differ diff --git a/awesome/themes/zachir/titlebar/ontop_normal_active.png b/awesome/themes/zachir/titlebar/ontop_normal_active.png new file mode 100644 index 0000000..117a203 Binary files /dev/null and b/awesome/themes/zachir/titlebar/ontop_normal_active.png differ diff --git a/awesome/themes/zachir/titlebar/ontop_normal_inactive.png b/awesome/themes/zachir/titlebar/ontop_normal_inactive.png new file mode 100644 index 0000000..d3a10c8 Binary files /dev/null and b/awesome/themes/zachir/titlebar/ontop_normal_inactive.png differ diff --git a/awesome/themes/zachir/titlebar/sticky_focus_active.png b/awesome/themes/zachir/titlebar/sticky_focus_active.png new file mode 100644 index 0000000..814499b Binary files /dev/null and b/awesome/themes/zachir/titlebar/sticky_focus_active.png differ diff --git a/awesome/themes/zachir/titlebar/sticky_focus_inactive.png b/awesome/themes/zachir/titlebar/sticky_focus_inactive.png new file mode 100644 index 0000000..21b000d Binary files /dev/null and b/awesome/themes/zachir/titlebar/sticky_focus_inactive.png differ diff --git a/awesome/themes/zachir/titlebar/sticky_normal_active.png b/awesome/themes/zachir/titlebar/sticky_normal_active.png new file mode 100644 index 0000000..bdb5595 Binary files /dev/null and b/awesome/themes/zachir/titlebar/sticky_normal_active.png differ diff --git a/awesome/themes/zachir/titlebar/sticky_normal_inactive.png b/awesome/themes/zachir/titlebar/sticky_normal_inactive.png new file mode 100644 index 0000000..a96b9b1 Binary files /dev/null and b/awesome/themes/zachir/titlebar/sticky_normal_inactive.png differ diff --git a/foot/foot.ini b/foot/foot.ini deleted file mode 100644 index 11ebba6..0000000 --- a/foot/foot.ini +++ /dev/null @@ -1,199 +0,0 @@ -# -*- conf -*- - -# shell=$SHELL (if set, otherwise user's default shell from /etc/passwd) -# term=foot (or xterm-256color if built with -Dterminfo=disabled) -# login-shell=no - -# app-id=foot -# title=foot -# locked-title=no - -font=mononoki Nerd Font Mono:size=10 -# font-bold= -# font-italic= -# font-bold-italic= -# font-size-adjustment=0.5 -# line-height= -# letter-spacing=0 -# horizontal-letter-offset=0 -# vertical-letter-offset=0 -# underline-offset= -# underline-thickness= -# box-drawings-uses-font-glyphs=no -# dpi-aware=auto - -# initial-window-size-pixels=700x500 # Or, -# initial-window-size-chars= -# initial-window-mode=windowed -# pad=0x0 # optionally append 'center' -# resize-delay-ms=100 - -# notify=notify-send -a ${app-id} -i ${app-id} ${title} ${body} - -# bold-text-in-bright=no -# word-delimiters=,│`|:"'()[]{}<> -# selection-target=primary -# workers= -# utempter=/usr/lib/utempter/utempter - -[environment] -# name=value - -[bell] -# urgent=no -# notify=no -# command= -# command-focused=no - -[scrollback] -# lines=1000 -# multiplier=3.0 -# indicator-position=relative -# indicator-format="" - -[url] -launch=browser ${url} -# label-letters=sadfjklewcmpgh -# osc8-underline=url-mode -# protocols=http, https, ftp, ftps, file, gemini, gopher -# uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[] - -[cursor] -# style=block -# color= -# blink=no -# beam-thickness=1.5 -# underline-thickness= - -[mouse] -hide-when-typing=yes -# alternate-scroll-mode=yes - -[colors] -alpha=0.8 -background=000000 -foreground=c5c8c6 - -## Normal/regular colors (color palette 0-7) -regular0=1b1d1c # black -regular1=89231d # red -regular2=198844 # green -regular3=ae7518 # yellow -regular4=2b55b2 # blue -regular5=784e93 # magenta -regular6=2783a1 # cyan -regular7=b4b7b5 # white - -## Bright colors (color palette 8-15) -bright0=969896 # bright black -bright1=cc342b # bright red -bright2=4eec4e # bright green -bright3=fba922 # bright yellow -bright4=3971ed # bright blue -bright5=a36ac7 # bright magenta -bright6=39c1ed # bright cyan -bright7=ffffff # bright white - -## dimmed colors (see foot.ini(5) man page) -# dim0= -# ... -# dim7= - -## The remaining 256-color palette -# 16 = <256-color palette #16> -# ... -# 255 = <256-color palette #255> - -## Misc colors -# selection-foreground= -# selection-background= -# jump-labels= # black-on-yellow -# scrollback-indicator= # black-on-bright-blue -# search-box-no-match= # black-on-red -# search-box-match= # black-on-yellow -# urls= - -[csd] -# preferred=server -# size=26 -# font= -# color= -# hide-when-typing=no -# border-width=0 -# border-color= -# button-width=26 -# button-color= -# button-minimize-color= -# button-maximize-color= -# button-close-color= - -[key-bindings] -# scrollback-up-page=Shift+Page_Up -# scrollback-up-half-page=none -# scrollback-up-line=none -# scrollback-down-page=Shift+Page_Down -# scrollback-down-half-page=none -# scrollback-down-line=none -# clipboard-copy=Control+Shift+c XF86Copy -# clipboard-paste=Control+Shift+v XF86Paste -# primary-paste=Shift+Insert -# search-start=Control+Shift+r -# font-increase=Control+plus Control+equal Control+KP_Add -# font-decrease=Control+minus Control+KP_Subtract -# font-reset=Control+0 Control+KP_0 -# spawn-terminal=Control+Shift+n -# minimize=none -# maximize=none -# fullscreen=none -pipe-visible=[sh -c "xurls | xargs -r browser"] none -pipe-scrollback=[sh -c "xurls | xargs -r browser"] Mod4+l -pipe-selected=[xargs -r browser] none -# show-urls-launch=Control+Shift+u -# show-urls-copy=none -# show-urls-persistent=none -# prompt-prev=Control+Shift+z -# prompt-next=Control+Shift+x -# unicode-input=none -# noop=none - -[search-bindings] -# cancel=Control+g Control+c Escape -# commit=Return -# find-prev=Control+r -# find-next=Control+s -# cursor-left=Left Control+b -# cursor-left-word=Control+Left Mod1+b -# cursor-right=Right Control+f -# cursor-right-word=Control+Right Mod1+f -# cursor-home=Home Control+a -# cursor-end=End Control+e -# delete-prev=BackSpace -# delete-prev-word=Mod1+BackSpace Control+BackSpace -# delete-next=Delete -# delete-next-word=Mod1+d Control+Delete -# extend-to-word-boundary=Control+w -# extend-to-next-whitespace=Control+Shift+w -# clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste -# primary-paste=Shift+Insert -# unicode-input=none - -[url-bindings] -# cancel=Control+g Control+c Control+d Escape -# toggle-url-visible=t - -[text-bindings] -# \x03=Mod4+c # Map Super+c -> Ctrl+c - -[mouse-bindings] -# selection-override-modifiers=Shift -# primary-paste=BTN_MIDDLE -# select-begin=BTN_LEFT -# select-begin-block=Control+BTN_LEFT -# select-extend=BTN_RIGHT -# select-extend-character-wise=Control+BTN_RIGHT -# select-word=BTN_LEFT-2 -# select-word-whitespace=Control+BTN_LEFT-2 -# select-row=BTN_LEFT-3 - -# vim: ft=dosini - diff --git a/nwg-bar/bar.json b/nwg-bar/bar.json deleted file mode 100644 index 82bc6ed..0000000 --- a/nwg-bar/bar.json +++ /dev/null @@ -1,22 +0,0 @@ -[ - { - "label": "Lock", - "exec": "loginctl lock-session self", - "icon": "/usr/share/nwg-bar/images/system-lock-screen.svg" - }, - { - "label": "Logout", - "exec": "hyprctl dispatch exit", - "icon": "/usr/share/nwg-bar/images/system-log-out.svg" - }, - { - "label": "Reboot", - "exec": "loginctl reboot", - "icon": "/usr/share/nwg-bar/images/system-reboot.svg" - }, - { - "label": "Shutdown", - "exec": "loginctl -i poweroff", - "icon": "/usr/share/nwg-bar/images/system-shutdown.svg" - } -] diff --git a/river/init b/river/init deleted file mode 100755 index cfa8c39..0000000 --- a/river/init +++ /dev/null @@ -1,223 +0,0 @@ -#!/bin/sh - -# This is the example configuration file for river. -# -# If you wish to edit this, you will probably want to copy it to -# $XDG_CONFIG_HOME/river/init or $HOME/.config/river/init first. -# -# See the river(1), riverctl(1), and rivertile(1) man pages for complete -# documentation. - -# Note: the "$mod1" modifier is also known as Logo, GUI, Windows, Mod4, etc. - -mod1="Alt" -mod2="Super" - -# $mod1+Shift+Return to start an instance of foot (https://codeberg.org/dnkl/foot) -riverctl map normal $mod1 Return spawn foot - -# $mod1+Q to close the focused view -riverctl map normal $mod1+Shift Q close - -# $mod1+Shift+E to exit river -riverctl map normal $mod1+Shift E exit - -# $mod1+J and $mod1+K to focus the next/previous view in the layout stack -riverctl map normal $mod1 J focus-view next -riverctl map normal $mod1 K focus-view previous - -# $mod1+Shift+J and $mod1+Shift+K to swap the focused view with the next/previous -# view in the layout stack -riverctl map normal $mod1+Shift J swap next -riverctl map normal $mod1+Shift K swap previous - -# $mod1+Period and $mod1+Comma to focus the next/previous output -riverctl map normal $mod1 Period focus-output next -riverctl map normal $mod1 Comma focus-output previous - -# $mod1+Shift+{Period,Comma} to send the focused view to the next/previous output -riverctl map normal $mod1+Shift Period send-to-output next -riverctl map normal $mod1+Shift Comma send-to-output previous - -# $mod1+Return to bump the focused view to the top of the layout stack -riverctl map normal $mod1+Shift Return zoom - -# $mod1+H and $mod1+L to decrease/increase the main ratio of rivertile(1) -riverctl map normal $mod1 H send-layout-cmd rivertile "main-ratio -0.05" -riverctl map normal $mod1 L send-layout-cmd rivertile "main-ratio +0.05" - -# $mod1+Shift+H and $mod1+Shift+L to increment/decrement the main count of rivertile(1) -riverctl map normal $mod1+Shift H send-layout-cmd rivertile "main-count +1" -riverctl map normal $mod1+Shift L send-layout-cmd rivertile "main-count -1" - -# $mod1+$mod2+{H,J,K,L} to move views -riverctl map normal $mod1+$mod2 H move left 100 -riverctl map normal $mod1+$mod2 J move down 100 -riverctl map normal $mod1+$mod2 K move up 100 -riverctl map normal $mod1+$mod2 L move right 100 - -# $mod1+$mod2+Control+{H,J,K,L} to snap views to screen edges -riverctl map normal $mod1+$mod2+Control H snap left -riverctl map normal $mod1+$mod2+Control J snap down -riverctl map normal $mod1+$mod2+Control K snap up -riverctl map normal $mod1+$mod2+Control L snap right - -# $mod1+$mod2+Shift+{H,J,K,L} to resize views -riverctl map normal $mod1+$mod2+Shift H resize horizontal -100 -riverctl map normal $mod1+$mod2+Shift J resize vertical 100 -riverctl map normal $mod1+$mod2+Shift K resize vertical -100 -riverctl map normal $mod1+$mod2+Shift L resize horizontal 100 - -# $mod1 + Left Mouse Button to move views -riverctl map-pointer normal $mod1 BTN_LEFT move-view - -# $mod1 + Right Mouse Button to resize views -riverctl map-pointer normal $mod1 BTN_RIGHT resize-view - -# $mod1 + Middle Mouse Button to toggle float -riverctl map-pointer normal $mod1 BTN_MIDDLE toggle-float - -# Mouse rules -riverctl set-cursor-warp on-output-change -riverctl focus-follors-cursor always - -for i in $(seq 1 9) -do - tags=$((1 << ($i - 1))) - - # $mod1+[1-9] to focus tag [0-8] - riverctl map normal $mod1 $i set-focused-tags $tags - - # $mod1+Shift+[1-9] to tag focused view with tag [0-8] - riverctl map normal $mod1+Shift $i set-view-tags $tags - - # $mod1+Ctrl+[1-9] to toggle focus of tag [0-8] - riverctl map normal $mod1+Control $i toggle-focused-tags $tags - - # $mod1+Shift+Ctrl+[1-9] to toggle tag [0-8] of focused view - riverctl map normal $mod1+Shift+Control $i toggle-view-tags $tags -done - -# $mod1+0 to focus all tags -# $mod1+Shift+0 to tag focused view with all tags -all_tags=$(((1 << 9) - 1)) -riverctl map normal $mod1 0 set-focused-tags $all_tags -riverctl map normal $mod1+Shift 0 set-view-tags $all_tags - -# scratchpad tags -BINPATH="${XDG_CONFIG_HOME:-$HOME/.config}/river/sp" -riverctl map normal $mod1+Control z spawn "$BINPATH/river_sp z" -riverctl map normal $mod1+Control x spawn "$BINPATH/river_sp x" -riverctl map normal $mod1+Control c spawn "$BINPATH/river_sp c" -riverctl map normal $mod1+Control v spawn "$BINPATH/river_sp v" -riverctl map normal $mod1+Control b spawn "$BINPATH/river_sp b" -riverctl map normal $mod1+Control a spawn "$BINPATH/river_sp a" -riverctl map normal $mod1+Control s spawn "$BINPATH/river_sp s" -riverctl map normal $mod1+Control d spawn "$BINPATH/river_sp d" -riverctl map normal $mod1+Control f spawn "$BINPATH/river_sp f" -riverctl map normal $mod1+Control g spawn "$BINPATH/river_sp g" -riverctl map normal $mod1+Control q spawn "$BINPATH/river_sp q" - -# $mod1+Space to toggle float -riverctl map normal $mod1+Control Space toggle-float - -# $mod1+F to toggle fullscreen -riverctl map normal $mod1 F toggle-fullscreen - -# $mod1+{Up,Right,Down,Left} to change layout orientation -riverctl map normal $mod1 Up send-layout-cmd rivertile "main-location top" -riverctl map normal $mod1 Right send-layout-cmd rivertile "main-location right" -riverctl map normal $mod1 Down send-layout-cmd rivertile "main-location bottom" -riverctl map normal $mod1 Left send-layout-cmd rivertile "main-location left" - -# Declare a passthrough mode. This mode has only a single mapping to return to -# normal mode. This makes it useful for testing a nested wayland compositor -riverctl declare-mode passthrough - -# $mod1+F11 to enter passthrough mode -riverctl map normal $mod1 b enter-mode passthrough - -# $mod1+F11 to return to normal mode -riverctl map passthrough $mod1 b enter-mode normal - -# Various media key mapping examples for both normal and locked mode which do -# not have a modifier -for mode in normal locked -do - # Eject the optical drive (well if you still have one that is) - riverctl map $mode None XF86Eject spawn 'eject -T' - - # Control pulse audio volume with pamixer (https://github.com/cdemoulins/pamixer) - riverctl map $mode None XF86AudioRaiseVolume spawn 'volsv -i' - riverctl map $mode None XF86AudioLowerVolume spawn 'volsv -d' - riverctl map $mode None XF86AudioMute spawn 'volsv -t' - riverctl map $mode None XF86AudioMicMute spawn 'volsv -m' - - # Control MPRIS aware media players with playerctl (https://github.com/altdesktop/playerctl) - riverctl map $mode None XF86AudioMedia spawn 'playerctl play-pause' - riverctl map $mode None XF86AudioPlay spawn 'playerctl play-pause' - riverctl map $mode None XF86AudioPrev spawn 'playerctl previous' - riverctl map $mode None XF86AudioNext spawn 'playerctl next' - - # Control screen backlight brightness with light (https://github.com/haikarainen/light) - riverctl map $mode None XF86MonBrightnessUp spawn 'bl -i 5' - riverctl map $mode None XF86MonBrightnessDown spawn 'bl -d 5' -done - -# add browser shortcuts -riverctl map normal $mod1+$mod2 1 spawn "bm -w" -riverctl map normal $mod1+$mod2 q spawn "qbc -w" -riverctl map normal $mod1+$mod2 w spawn "lwc -w" -riverctl map normal $mod1+$mod2 e spawn "ffc -w" - -# add other menu shortcuts -riverctl map normal $mod1+$mod2 p spawn passmenu -riverctl map normal $mod1 r spawn 'exec $(tofi-drun)' -riverctl map normal $mod1 d spawn 'exec $(tofi-run)' -riverctl map normal $mod1+$mod2+Control u spawn 'dmenuunicode -w' -riverctl map normal $mod1+$mod2 Comma spawn 'dmenumount -w' -riverctl map normal $mod1+$mod2 Period spawn 'dmenuumount -w' -riverctl map normal $mod1+$mod2 b spawn 'dmenu_books -w' -riverctl map normal $mod1+$mod2 u spawn 'mprisctl -w' - -# add other shortcuts -riverctl map normal $mod1 q spawn 'loginctl lock-session self' -riverctl map normal $mod1+$mod2 f spawn 'foot lf' -riverctl map normal $mod1+$mod2 m spawn 'volsv -t' -riverctl map normal $mod1+$mod2+Shift m spawn 'volsv -m' - -# secondary mod shortcuts -riverctl map normal $mod2 p spawn 'playerctl play-pause' - -# Set background and border color -riverctl background-color 0x000000 -riverctl border-color-focused 0x535d6c -riverctl border-color-unfocused 0x000000 - -# Set keyboard repeat rate -riverctl set-repeat 50 300 - -# Make certain views start floating -riverctl float-filter-add app-id float -riverctl float-filter-add app-id "sphtop" -riverctl float-filter-add app-id "spterm" -riverctl float-filter-add app-id "sppmxr" -riverctl float-filter-add app-id "spblue" -riverctl float-filter-add app-id "spncmp" -riverctl float-filter-add app-id "spmutt" -riverctl float-filter-add app-id "spprof" -riverctl float-filter-add app-id "spirss" -riverctl float-filter-add app-id "sptodo" -riverctl float-filter-add app-id "sptrmc" -riverctl float-filter-add app-id "qpwgraph" -riverctl float-filter-add title "popup title with spaces" - -# Set app-ids and titles of views which should use client side decorations -riverctl csd-filter-add app-id "gedit" - -# Set the default layout generator to be rivertile and start it. -# River will send the process group of the init executable SIGTERM on exit. -riverctl default-layout rivertile -rivertile -view-padding 6 -outer-padding 6 & - -sh ~/.config/autostart.sh & diff --git a/river/sp/river_sp b/river/sp/river_sp deleted file mode 100755 index 9b1e1ad..0000000 --- a/river/sp/river_sp +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/sh - -#{{{ binpath -BINPATH="${XDG_CONFIG_HOME:-$HOME/.config}/river/sp" -#}}} - -#{{{ spawnwindow -spawnwindow () { - case "$1" in - 1) pgrep -x sp_z || ${BINPATH}/sp_z ;; - 2) pgrep -x sp_x || ${BINPATH}/sp_x ;; - 3) pgrep -x sp_c || ${BINPATH}/sp_c ;; - 4) pgrep -x sp_v || ${BINPATH}/sp_v ;; - 5) pgrep -x sp_b || ${BINPATH}/sp_b ;; - 6) pgrep -x sp_a || ${BINPATH}/sp_a ;; - 7) pgrep -x sp_s || ${BINPATH}/sp_s ;; - 8) pgrep -x sp_d || ${BINPATH}/sp_d ;; - 9) pgrep -x sp_f || ${BINPATH}/sp_f ;; - 10) pgrep -x sp_g || ${BINPATH}/sp_g ;; - 11) pgrep -x sp_q || ${BINPATH}/sp_q ;; - *) printf "Unknown scratchpad $1!\n" ; exit 1 ;; - esac -} -#}}} - -#{{{ getopts -for i in "$@"; do - case "$i" in - z) ARG=1 ;; - x) ARG=2 ;; - c) ARG=3 ;; - v) ARG=4 ;; - b) ARG=5 ;; - a) ARG=6 ;; - s) ARG=7 ;; - d) ARG=8 ;; - f) ARG=9 ;; - g) ARG=10 ;; - q) ARG=11 ;; - *) printf "Unknown scratchpad $i!\n" ; exit 1 ;; - esac - if pgrep -x "sp_$i"; then - riverctl toggle-focused-tags $((1 << ($ARG + 9))) - else - riverctl toggle-focused-tags $(( 1 << ($ARG + 9))) - riverctl spawn-tagmask $(( 1 << ($ARG + 9))) - spawnwindow "$ARG" - riverctl spawn-tagmask $(( (1 << 9) - 1)) - fi -done -#}}} diff --git a/river/sp/sp_a b/river/sp/sp_a deleted file mode 100755 index d76f78e..0000000 --- a/river/sp/sp_a +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -foot -a "spmutt" neomutt diff --git a/river/sp/sp_b b/river/sp/sp_b deleted file mode 100755 index 208cf4c..0000000 --- a/river/sp/sp_b +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -foot -a "spncmp" ncmpcpp diff --git a/river/sp/sp_c b/river/sp/sp_c deleted file mode 100755 index 0201227..0000000 --- a/river/sp/sp_c +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -foot -a "sppmxr" pulsemixer diff --git a/river/sp/sp_d b/river/sp/sp_d deleted file mode 100755 index 1545c87..0000000 --- a/river/sp/sp_d +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -foot -a "spirss" irssi diff --git a/river/sp/sp_f b/river/sp/sp_f deleted file mode 100755 index f2468ea..0000000 --- a/river/sp/sp_f +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -foot -a "sptodo" todo diff --git a/river/sp/sp_g b/river/sp/sp_g deleted file mode 100755 index 7b3a393..0000000 --- a/river/sp/sp_g +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -foot -a "sptrmc" tremc diff --git a/river/sp/sp_q b/river/sp/sp_q deleted file mode 100755 index 9202782..0000000 --- a/river/sp/sp_q +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -qpwgraph diff --git a/river/sp/sp_s b/river/sp/sp_s deleted file mode 100755 index 288373c..0000000 --- a/river/sp/sp_s +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -foot -a "spprof" profanity diff --git a/river/sp/sp_v b/river/sp/sp_v deleted file mode 100755 index 009e18d..0000000 --- a/river/sp/sp_v +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -foot -a "spblue" bluetoothctl diff --git a/river/sp/sp_x b/river/sp/sp_x deleted file mode 100755 index ef07b51..0000000 --- a/river/sp/sp_x +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -foot -a "spterm" diff --git a/river/sp/sp_z b/river/sp/sp_z deleted file mode 100755 index c6414ed..0000000 --- a/river/sp/sp_z +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -foot -a "sphtop" htop diff --git a/swayidle/config b/swayidle/config deleted file mode 100644 index 00fb5a7..0000000 --- a/swayidle/config +++ /dev/null @@ -1,3 +0,0 @@ -timeout 600 swaylockd -before-sleep swaylockd -lock swaylockd diff --git a/swaylock/config b/swaylock/config deleted file mode 100644 index 55ca360..0000000 --- a/swaylock/config +++ /dev/null @@ -1,2 +0,0 @@ -ignore-empty-password -color=000000 diff --git a/sxhkd/sxhkdrc b/sxhkd/sxhkdrc new file mode 100755 index 0000000..1c10dfe --- /dev/null +++ b/sxhkd/sxhkdrc @@ -0,0 +1,140 @@ +# +# wm independent hotkeys +# + +# reload sxhkd config +super + Escape + pkill -USR1 -x sxhkd + +# +# dmenu interfaces +# + +# program launcher +super + d + dmenu_run -i -l 15 -h 36 -fn 'mononoki Nerd Font Mono' -nb '#000' -nf '#c5c8c6' -sb '#198844' -sf '#000' + +# desktop application launcher +super + r + j4-dmenu-desktop --dmenu="dmenu -i -l 15 -h 36 -fn 'mononoki Nerd Font Mono' -nb '#000' -nf '#c5c8c6' -sb '#198844' -sf '#000'" + +# dmenu prompt for recording +super + control + r + dmenurecord + +# run dmenu interface for pass +super + alt + p + passmenu + +# run dmenu interface for ytfzf +super + y + ytfzf-launcher -D 'dmenu -l 15' + +# run dmenu interface to spawn browsers +super + alt + 1 + bm + +# run dmenu interface for qutebrowser profile chooser +super + alt + q + qbc + #qbpm choose + +# run dmenu interface for librewolf profile chooser +super + alt + w + lwc + +# run dmenu interface for mpris +super + alt + u + mprisctl + +# run dmenu interface for mount +super + alt + comma + dmount + +# run dmenu interface for umount +super + alt + period + dmenuumount + +#run dmenu prompt for unicode chars +super + alt + u + dmenuunicode + +# +# utilities +# + +# get xprop +super + grave + notifyprop + +# warp cursor to left or right monitor +super + {Left,Right} + mwarp.py {left,right} + +# lock the screen +super + q + loginctl lock-session self + +# spawn file manager +super + alt + f + kitty lfrun + +# toggle touchpad +super + alt + t + toggletouchpad + +# notify-send firewall rules +super + alt + f + notify-iptables + +# mute volume +super + alt + m + volsv -t + +# mute microphone +super + alt + shift + m + volsv -m + +# load nsxiv for backgrounds +super + alt + x + nsxiv ~/.local/src/wallpapers + +# xkill +super + x + xkill + +# pause mpd +alt + p + playerctl play-pause + +# +# xf86 keys +# + +# manipulate audio stream +XF86Audio{Prev,Next,Play,Stop} + playerctl {previous,next,play-pause,stop} + +# turn the brightness up +XF86MonBrightnessUp + bl -i 1 + +# turn the brightness down +XF86MonBrightnessDown + bl -d 1 + +# raise the volume +XF86AudioRaiseVolume + volsv -i + +# lower the volume +XF86AudioLowerVolume + volsv -d + +# toggle mute +XF86AudioMute + volsv -t + +# mute mic +XF86AudioMicMute + volsv -m diff --git a/tofi/config b/tofi/config deleted file mode 120000 index 54cdd97..0000000 --- a/tofi/config +++ /dev/null @@ -1 +0,0 @@ -/home/zachir/.config/tofi/themes/dmenu \ No newline at end of file diff --git a/tofi/dmenu_vertical b/tofi/dmenu_vertical deleted file mode 100644 index 7b8703f..0000000 --- a/tofi/dmenu_vertical +++ /dev/null @@ -1,27 +0,0 @@ -include = "colors" - -hidden-character = "*" -anchor = top -width = 100% -height = 600 -horizontal = false -font-size = 24 -prompt-text = "" -font = mononoki Nerd Font Mono -outline-width = 0 -border-width = 0 -min-input-width = 424 -result-spacing = 0, 12 -selection-background-padding = 0, 12 -padding-top = 0 -padding-bottom = 0 -padding-left = 12 -padding-right = 12 -margin-top = 0 -margin-bottom = 0 -margin-left = 12 -margin-right = 12 -clip-to-padding=true -history = false -require-match=false -num-results = true diff --git a/tofi/themes/colors b/tofi/themes/colors deleted file mode 100644 index a5f480c..0000000 --- a/tofi/themes/colors +++ /dev/null @@ -1,17 +0,0 @@ -background-color = #000000 -outline-color = #39c1ed -border-color = #39c1ed -text-color = #ffffff -prompt-color = #39c1ed -prompt-background = #000000 -placeholder-color = #39c1ed -placeholder-background = #000000 -input-color = #ffffff -input-background = #000000 -default-result-background = #000000 -alternate-result-color = #ffffff -alternate-result-background = #000000 -selection-color = #000000 -selection-match-color = #198844 -selection-background = #39c1ed - diff --git a/tofi/themes/dmenu b/tofi/themes/dmenu deleted file mode 100644 index 6bf9074..0000000 --- a/tofi/themes/dmenu +++ /dev/null @@ -1,22 +0,0 @@ -include = "themes/colors" - -hidden-character = "*" -anchor = top -width = 100% -height = 36 -horizontal = true -font-size = 24 -prompt-text = "" -font = mononoki Nerd Font Mono -outline-width = 0 -border-width = 0 -min-input-width = 424 -result-spacing = 15 -padding-top = 0 -padding-bottom = 0 -padding-left = 0 -padding-right = 0 -history = false -selection-background-padding = 12 -result-spacing = 24 -require-match=false diff --git a/tofi/themes/dmenu_vertical b/tofi/themes/dmenu_vertical deleted file mode 100644 index 1b7259a..0000000 --- a/tofi/themes/dmenu_vertical +++ /dev/null @@ -1,28 +0,0 @@ -include = "colors" - -hidden-character = "*" -anchor = top -width = 100% -height = 600 -horizontal = false -font-size = 24 -prompt-text = "" -prompt-padding = 24 -font = mononoki Nerd Font Mono -outline-width = 0 -border-width = 0 -min-input-width = 424 -result-spacing = 12 -selection-background-padding = 0, 12 -padding-top = 0 -padding-bottom = 0 -padding-left = 12 -padding-right = 12 -margin-top = 0 -margin-bottom = 0 -margin-left = 12 -margin-right = 12 -clip-to-padding=true -history = false -require-match = false -num-results = 15 diff --git a/waybar/config b/waybar/config deleted file mode 100644 index 4b4ec00..0000000 --- a/waybar/config +++ /dev/null @@ -1,168 +0,0 @@ -{ - "layer": "top", - "position": "top", - "height": 36, - //"output": "%%DISPLAY%%", - "spacing": 4, - //"margin-top": 5, - //"margin-bottom":5, - - // Choose the order of the modules - - "modules-left":[ "wlr/workspaces", "custom/launcher", "hyprland/window"], - "modules-center":[], - "modules-right":[ "mpd", "idle_inhibitor", "pulseaudio", "cpu", "memory", "temperature#cpu", "temperature#gpu", "backlight", "network", "clock", "tray", "custom/power"], - - // Modules configuration - - "wlr/workspaces": { - "format": "{name}", - "active-only": false, - "all-outputs": false, - "persistent_workspaces": { - "1": [], - "2": [], - "3": [], - "4": [], - "5": [], - "6": [], - "7": [], - "8": [], - "9": [] - }, - "on-scroll-up": "hyprctl dispatch workspace e+1", - "on-scroll-down": "hyprctl dispatch workspace e-1", - "on-click": "activate" - }, - "hyprland/window": { - "separate-outputs": true, - "format": "{}" - }, - "keyboard-state": { - "numlock": true, - "capslock": true, - "format": " {name} {icon}", - "format-icons": { - "locked": "", - "unlocked": "" - } - }, - "mpd": { - "format": "{artist} - {title}", - "format-stopped": "", - "format-paused": "{artist} - {title}", - "format-disconnected": "", - "artist-len": 15, - "title-len": 15, - //"album-len": 15, - //"max-length": 200, - "on-click": "mpc toggle" - }, - "idle_inhibitor": { - "format": "{icon}", - "format-icons": { - "activated": "", - "deactivated": "" - } - }, - "tray": { - "icon-size": 20, - "spacing": 10 - }, - "clock": { - // "timezone": "America/New_York", - "tooltip-format": "{:%Y %B}\n{calendar}", - "format-alt": "{:%Y-%m-%d}" - }, - "cpu": { - "format": "{usage}% ", - "tooltip": false - }, - "memory": { - "format": "{}% " - }, - "temperature#cpu": { - // "thermal-zone": 2, - "hwmon-path": "/sys/class/hwmon/hwmon2/temp3_input", - "critical-threshold": 80, - // "format-critical": "{temperatureC}°C {icon}", - "format": "CPU {temperatureC}°C", - "format-icons": ["", "", ""] - }, - "temperature#gpu": { - // "thermal-zone": 2, - "hwmon-path": "/sys/class/hwmon/hwmon1/temp2_input", - "critical-threshold": 110, - // "format-critical": "{temperatureC}°C {icon}", - "format": "GPU {temperatureC}°C", - "format-icons": ["", "", ""] - }, - "backlight": { - // "device": "acpi_video1", - "format": "{percent}%" - //"format-icons": ["", ""] - }, - "battery": { - "states": { - // "good": 95, - "warning": 30, - "critical": 15 - }, - "format": "{capacity}%", - "format-charging": "{capacity}% +", - "format-plugged": "{capacity}% =", - "format-alt": "{time}", - // "format-good": "", // An empty format will hide the module - // "format-full": "", - //"format-icons": ["", "", "", "", ""] - }, - "battery#bat0": { - "bat": "BAT0" - }, - "battery#bat1": { - "bat": "BAT1" - }, - "network": { - // "interface": "wlp2*", // (Optional) To force the use of this interface - "format-wifi": "{essid} ({signalStrength}%) ", - "format-ethernet": "Connected  ", - "tooltip-format": "{ifname} via {gwaddr} ", - "format-linked": "{ifname} (No IP) ", - "format-disconnected": "Disconnected ⚠", - "format-alt": "{ifname}: {ipaddr}/{cidr}", - "on-click-right": "bash ~/.config/rofi/wifi_menu/rofi_wifi_menu" - }, - "pulseaudio": { - // "scroll-step": 1, // %, can be a float - "format": "{volume}% {icon}", - "format-bluetooth": "{volume}% {icon}", - "format-bluetooth-muted": "{icon} {format_source}", - "format-muted": "{format_source}", - "format-source": "", - "format-source-muted": "", - "format-icons": { - "headphone": "", - "hands-free": "", - "headset": "", - "phone": "", - "portable": "", - "car": "", - "default": ["", "", ""] - }, - "on-click": "pavucontrol" - }, - "custom/launcher":{ - "format": "", - "on-click": "exec $(tofi-drun)", - "on-click-right": "killall tofi" - }, - "custom/power":{ - "format": " ", - "on-click": "nwg-bar", - "on-click-right": "killall nwg-bar" - }, - "custom/snip":{ - "format": " ", - "on-click": "grimshot --notify save area $HOME/Pictures/$(zenity --entry --text 'Set filename:' --entry-text '.png')" - } -} diff --git a/waybar/style.css b/waybar/style.css deleted file mode 100644 index d7438dd..0000000 --- a/waybar/style.css +++ /dev/null @@ -1,327 +0,0 @@ -* { - border: 0px; - margin: 0px; - border-radius: 0px; - /* `otf-font-awesome` is required to be installed for icons */ - font-family: mononoki Nerd Font Mono; - font-size: 18px; - min-height: 0px; - min-width: 0px; -} - -window#waybar { - background-color: transparent; - color: #ffffff; - transition-property: background-color; - transition-duration: .5s; -} - -window#waybar.hidden { - opacity: 0.2; -} - - -/* -#workspaces button { - background: #1f1f1f; - color: #ffffff; - border-radius: 20px; -} -*/ - -/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ - -#workspaces button { - background: #333333; - color: white; - border-bottom: 3px solid #1b1d1c; -} - -/* -#workspaces button:hover { - background: #39c1ed; - color: black; - border-bottom: 3px solid #ffffff; - -} -*/ - -#workspaces button.active { - background: #39c1ed; - color: black; -} - -/* -#workspaces button.active:hover { - background: #39c1ed; - color: black; - border-bottom: 3px solid #ffffff; -} -*/ - -#workspaces button.urgent { - background-color: #eb4d4b; -} - -#workspaces button.persistent { - background: black; -} - -#mode { - background-color: #64727D; - border-bottom: 3px solid #ffffff; -} - -#clock, -#battery, -#cpu, -#memory, -#disk, -#temperature, -#backlight, -#network, -#pulseaudio, -#custom-media, -#custom-launcher, -#custom-power, -#custom-layout, -#custom-updater, -#custom-snip, -#custom-wallpaper, -#tags, -#taskbar, -#tray, -#mode, -#idle_inhibitor, -#mpd { - padding: 0px 9px; - margin: 0px; - color: #ffffff; -} - -#window, -#workspaces { - margin: 0px 4px; -} - -/* If workspaces is the leftmost module, omit left margin */ -.modules-left > widget:first-child > #workspaces { - margin-left: 0px; -} - -/* If workspaces is the rightmost module, omit right margin */ -.modules-right > widget:last-child > #workspaces { - margin-right: 0px; -} - -#clock { - background-color: #1b1d1c; - color: #ffffff; -} - -#battery { - background-color: #1b1d1c; - color: #ffffff; -} - -#battery.charging, #battery.plugged { - color: #26A65B; - background-color: #1b1d1c; -} - -@keyframes blink { - to { - background-color: #ffffff; - color: #000000; - } -} - -#battery.critical:not(.charging) { - background-color: #f53c3c; - color: #ffffff; - animation-name: blink; - animation-duration: 0.5s; - animation-timing-function: linear; - animation-iteration-count: infinite; - animation-direction: alternate; -} - -label:focus { - background-color: #000000; -} - -#cpu { - background-color: #1b1d1c; - color: #ffffff; -} - -#memory { - background-color: #39c1ed; - color: black; -} - -#disk { - background-color: #1b1d1c; - color: #ffffff; -} - -#backlight { - background-color: #39c1ed; - color: black; -} - -#network { - background-color: #39c1ed; - color: black; -} - -#network.disconnected { - background-color: #1b1d1c; - color: #ffffff; -} - -#pulseaudio { - background-color: #39c1ed; - color: black; -} - -#pulseaudio.muted { - background-color: black; - color: #39c1ed; -} - -#custom-media { - background-color: #1b1d1c; - color: white; -} - -#custom-media.custom-spotify { - background-color: #1b1d1c; - color: white; - -} - -#custom-media.custom-vlc { - background-color: #1b1d1c; - color: white; -} - -#custom-power{ - background-color: #1b1d1c; - font-size: 18px; - margin-right: 5px; - -} - -#custom-launcher{ - background-color: #1b1d1c; - font-size: 20px; - margin-left: 5px; - -} - -#custom-layout{ - background-color: #1b1d1c; - color: white; - font-size:20px; -} - -#custom-updater { - background-color: #1b1d1c; - color: white; -} - -#custom-snip { - background-color: #1b1d1c; - color: skyblue; - font-size: 20px; -} - -#custom-wallpaper { - background-color: #1b1d1c; - color: pink; - font-size: 20px; -} - -#tags{ - background-color: #1b1d1c; - font-size: 20px; -} - -#tags button.occupied { - color: skyblue; - background-color: #272727; -} -#tags button.focused { - color: black; - background-color: white; -} -#tags button.urgent{ - color: red; - background-color:white; -} - - -#taskbar{ - background-color: #1b1d1c; - border-radius: 0px 20px 20px 0px; -} - -#temperature { - background-color: #1b1d1c; - color: #ffffff; -} - -#temperature.critical { - background-color: #eb4d4b; -} - -#tray { - background-color: #39c1ed; - color: black; -} - -#tray > .passive { - -gtk-icon-effect: dim; - background-color: #39c1ed; - color: black; -} - -#tray > .needs-attention { - -gtk-icon-effect: highlight; - background-color: #39c1ed; - color: black; -} - -#idle_inhibitor { - background-color: #1b1d1c; - border-radius: 20px 0px 0px 20px; - -} - -#idle_inhibitor.activated { - background-color: #39c1ed; - color: black; - border-radius: 20px 0px 0px 20px; - -} - -#language { - background-color: #1b1d1c; - color: #ffffff; - min-width: 16px; -} - -#keyboard-state { - background: #97e1ad; - color: #000000; - min-width: 16px; -} - -#keyboard-state > label { - padding: 0px 5px; -} - -#keyboard-state > label.locked { - background: rgba(0, 0, 0, 0.2); -} -- cgit v1.2.3 From e7f2de1fc4362673d4cce38441e396e08929c942 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 19 Oct 2023 09:07:03 -0500 Subject: Change shell alias and ENV, set kitty title Adding in lb=lsblk, adding in more XDG dirs, and permanently set kitty title to 'terminal' from zsh. --- sh/aliases | 2 +- sh/profile | 9 +++++++-- zsh/.zshrc | 3 +-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/sh/aliases b/sh/aliases index 6b254d7..ef9a53b 100644 --- a/sh/aliases +++ b/sh/aliases @@ -24,13 +24,13 @@ esac alias ll='ls -l' alias la='ls -A' alias lla='ls -lA' +alias lb='lsblk' alias md='mkdir -p' alias ch='cd $HOME' #alias nvim='vim' alias nv='nvim' alias v='nvim' -#alias lf='lfrun' ## Change utils alias rm='rm -i' diff --git a/sh/profile b/sh/profile index 1174421..79151b9 100644 --- a/sh/profile +++ b/sh/profile @@ -2,11 +2,17 @@ . /etc/profile [ -f /etc/profile.d/nix-daemon.sh ] && . /etc/profile.d/nix-daemon.sh -# Other XDG paths +# Other XDG vars export XDG_DATA_HOME=${XDG_DATA_HOME:="$HOME/.local/share"} export XDG_CACHE_HOME=${XDG_CACHE_HOME:="$HOME/.cache"} export XDG_CONFIG_HOME=${XDG_CONFIG_HOME:="$HOME/.config"} [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs" ] && . "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs" +export XDG_CURRENT_DESKTOP="i3" +export XDG_DOCUMENTS_DIR=${HOME}/Documents +export XDG_DOWNLOAD_DIR=${HOME}/Downloads +export XDG_DESKTOP_DIR=${HOME}/Desktop +export XDG_VIDEOS_DIR=${HOME}/Videos + # Doesn't seem to work export ANDROID_SDK_HOME="$XDG_CONFIG_HOME"/android @@ -55,7 +61,6 @@ export QT_QPA_PLATFORMTHEME=qt5ct # Fix wayland stuff export MOZ_ENABLE_WAYLAND=1 export XKB_DEFAULT_OPTIONS=caps:escape -export XDG_CURRENT_DESKTOP=Unity # Default Apps export EDITOR="nvim" diff --git a/zsh/.zshrc b/zsh/.zshrc index 0c0366f..3314bb3 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -97,5 +97,4 @@ bindkey -- '^[[B' down-line-or-beg [[ -n "${key[Shift-Tab]}" ]] && bindkey -- "${key[Shift-Tab]}" reverse-menu-complete [[ -n "${key[Delete]}" ]] && bindkey -- "${key[Delete]}" delete-char -#eval "$(starship init zsh)" -type portmaster-start 2>&1 >/dev/null && eval "$(portmaster-start --data=/opt/safing/portmaster completion zsh)" +precmd () {print -Pn "\e]0;terminal\a"} -- cgit v1.2.3 From 48384a10be7bb8f70fbb70aa465270691a1a2ec5 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 19 Oct 2023 09:09:09 -0500 Subject: Use sudo instead of doas --- yay/config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yay/config.json b/yay/config.json index 21bab87..0e764be 100644 --- a/yay/config.json +++ b/yay/config.json @@ -22,7 +22,7 @@ "searchby": "name-desc", "gitflags": "", "removemake": "ask", - "sudobin": "doas", + "sudobin": "sudo", "sudoflags": "", "requestsplitn": 150, "sortmode": 0, -- cgit v1.2.3 From 4d8a4886291d265f6d73283dc4d55998dae7ff37 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 19 Oct 2023 09:09:54 -0500 Subject: Add picom config --- picom.conf | 429 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 429 insertions(+) create mode 100644 picom.conf diff --git a/picom.conf b/picom.conf new file mode 100644 index 0000000..3f0b9f7 --- /dev/null +++ b/picom.conf @@ -0,0 +1,429 @@ +################################# +# Shadows # +################################# + + +# Enabled client-side shadows on windows. Note desktop windows +# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow, +# unless explicitly requested using the wintypes option. +# +# shadow = false +shadow = true; + +# The blur radius for shadows, in pixels. (defaults to 12) +# shadow-radius = 12 +shadow-radius = 7; + +# The opacity of shadows. (0.0 - 1.0, defaults to 0.75) +# shadow-opacity = .75 + +# The left offset for shadows, in pixels. (defaults to -15) +# shadow-offset-x = -15 +shadow-offset-x = -7; + +# The top offset for shadows, in pixels. (defaults to -15) +# shadow-offset-y = -15 +shadow-offset-y = -7; + +# Red color value of shadow (0.0 - 1.0, defaults to 0). +# shadow-red = 0 + +# Green color value of shadow (0.0 - 1.0, defaults to 0). +# shadow-green = 0 + +# Blue color value of shadow (0.0 - 1.0, defaults to 0). +# shadow-blue = 0 + +# Hex string color value of shadow (#000000 - #FFFFFF, defaults to #000000). This option will override options set shadow-(red/green/blue) +# shadow-color = "#000000" + +# Specify a list of conditions of windows that should have no shadow. +# +# examples: +# shadow-exclude = "n:e:Notification"; +# +# shadow-exclude = [] +shadow-exclude = [ + "name = 'Notification'", + "class_g = 'Conky'", + "class_g ?= 'Notify-osd'", + "class_g = 'Cairo-clock'", + "_GTK_FRAME_EXTENTS@:c" +]; + +# Specify a list of conditions of windows that should have no shadow painted over, such as a dock window. +# clip-shadow-above = [] + +# Specify a X geometry that describes the region in which shadow should not +# be painted in, such as a dock window region. Use +# shadow-exclude-reg = "x10+0+0" +# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on. +# +# shadow-exclude-reg = "" + +# Crop shadow of a window fully on a particular Xinerama screen to the screen. +# xinerama-shadow-crop = false + + +################################# +# Fading # +################################# + + +# Fade windows in/out when opening/closing and when opacity changes, +# unless no-fading-openclose is used. +# fading = false +fading = false; + +# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028) +# fade-in-step = 0.028 +fade-in-step = 0.03; + +# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03) +# fade-out-step = 0.03 +fade-out-step = 0.03; + +# The time between steps in fade step, in milliseconds. (> 0, defaults to 10) +# fade-delta = 10 + +# Specify a list of conditions of windows that should not be faded. +# fade-exclude = [] + +# Do not fade on window open/close. +# no-fading-openclose = false + +# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc. +# no-fading-destroyed-argb = false + + +################################# +# Transparency / Opacity # +################################# + + +# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0) +# inactive-opacity = 1 +inactive-opacity = 1; + +# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default) +# frame-opacity = 1.0 +frame-opacity = 0.9; + +# Let inactive opacity set by -i override the '_NET_WM_WINDOW_OPACITY' values of windows. +# inactive-opacity-override = true +inactive-opacity-override = false; + +# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0) +# active-opacity = 1.0 + +# Dim inactive windows. (0.0 - 1.0, defaults to 0.0) +# inactive-dim = 0.0 + +# Specify a list of conditions of windows that should never be considered focused. +# focus-exclude = [] +focus-exclude = [ "class_g = 'Cairo-clock'" ]; + +# Use fixed inactive dim value, instead of adjusting according to window opacity. +# inactive-dim-fixed = 1.0 + +# Specify a list of opacity rules, in the format `PERCENT:PATTERN`, +# like `50:name *= "Firefox"`. picom-trans is recommended over this. +# Note we don't make any guarantee about possible conflicts with other +# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows. +# example: +# opacity-rule = [ "80:class_g = 'URxvt'" ]; +# +# opacity-rule = [] +# opacity-rule [ "100:name = 'REAPER'" ]; + + +################################# +# Corners # +################################# + +# Sets the radius of rounded window corners. When > 0, the compositor will +# round the corners of windows. Does not interact well with +# `transparent-clipping`. +corner-radius = 0 + +# Exclude conditions for rounded corners. +rounded-corners-exclude = [ + "window_type = 'dock'", + "window_type = 'desktop'" +]; + + +################################# +# Background-Blurring # +################################# + + +# Parameters for background blurring, see the *BLUR* section for more information. +# blur-method = +# blur-size = 12 +# +# blur-deviation = false +# +# blur-strength = 5 + +# Blur background of semi-transparent / ARGB windows. +# Bad in performance, with driver-dependent behavior. +# The name of the switch may change without prior notifications. +# +# blur-background = false + +# Blur background of windows when the window frame is not opaque. +# Implies: +# blur-background +# Bad in performance, with driver-dependent behavior. The name may change. +# +# blur-background-frame = false + + +# Use fixed blur strength rather than adjusting according to window opacity. +# blur-background-fixed = false + + +# Specify the blur convolution kernel, with the following format: +# example: +# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"; +# +# blur-kern = "" +blur-kern = "3x3box"; + + +# Exclude conditions for background blur. +# blur-background-exclude = [] +blur-background-exclude = [ + "window_type = 'dock'", + "window_type = 'desktop'", + "_GTK_FRAME_EXTENTS@:c" +]; + +################################# +# General Settings # +################################# + +# Enable remote control via D-Bus. See the man page for more details. +# dbus = true + +# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers. +# daemon = false + +# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`. +# `xrender` is the default one. +# +# backend = "glx" +backend = "xrender"; + +# Enable/disable VSync. +# vsync = false +vsync = true; + +# Enable remote control via D-Bus. See the *D-BUS API* section below for more details. +# dbus = false + +# Try to detect WM windows (a non-override-redirect window with no +# child that has 'WM_STATE') and mark them as active. +# +# mark-wmwin-focused = false +mark-wmwin-focused = true; + +# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused. +# mark-ovredir-focused = false +mark-ovredir-focused = true; + +# Try to detect windows with rounded corners and don't consider them +# shaped windows. The accuracy is not very high, unfortunately. +# +# detect-rounded-corners = false +detect-rounded-corners = true; + +# Detect '_NET_WM_WINDOW_OPACITY' on client windows, useful for window managers +# not passing '_NET_WM_WINDOW_OPACITY' of client windows to frame windows. +# +# detect-client-opacity = false +detect-client-opacity = true; + +# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window, +# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy, +# provided that the WM supports it. +# +# use-ewmh-active-win = false + +# Unredirect all windows if a full-screen opaque window is detected, +# to maximize performance for full-screen windows. Known to cause flickering +# when redirecting/unredirecting windows. +# +# unredir-if-possible = false + +# Delay before unredirecting the window, in milliseconds. Defaults to 0. +# unredir-if-possible-delay = 0 + +# Conditions of windows that shouldn't be considered full-screen for unredirecting screen. +# unredir-if-possible-exclude = [] + +# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows +# in the same group focused at the same time. +# +# detect-transient = false +detect-transient = true; + +# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same +# group focused at the same time. This usually means windows from the same application +# will be considered focused or unfocused at the same time. +# 'WM_TRANSIENT_FOR' has higher priority if detect-transient is enabled, too. +# +# detect-client-leader = false + +# Resize damaged region by a specific number of pixels. +# A positive value enlarges it while a negative one shrinks it. +# If the value is positive, those additional pixels will not be actually painted +# to screen, only used in blur calculation, and such. (Due to technical limitations, +# with use-damage, those pixels will still be incorrectly painted to screen.) +# Primarily used to fix the line corruption issues of blur, +# in which case you should use the blur radius value here +# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`, +# with a 5x5 one you use `--resize-damage 2`, and so on). +# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly. +# +# resize-damage = 1 + +# Specify a list of conditions of windows that should be painted with inverted color. +# Resource-hogging, and is not well tested. +# +# invert-color-include = [] + +# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer. +# Might cause incorrect opacity when rendering transparent content (but never +# practically happened) and may not work with blur-background. +# My tests show a 15% performance boost. Recommended. +# +glx-no-stencil = true; + +# GLX backend: Avoid rebinding pixmap on window damage. +# Probably could improve performance on rapid window content changes, +# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.). +# Recommended if it works. +# +# glx-no-rebind-pixmap = false + +# Disable the use of damage information. +# This cause the whole screen to be redrawn every time, instead of the part of the screen +# has actually changed. Potentially degrades the performance, but might fix some artifacts. +# The opposing option is use-damage +# +# no-use-damage = false +use-damage = true; + +# Use X Sync fence to sync clients' draw calls, to make sure all draw +# calls are finished before picom starts drawing. Needed on nvidia-drivers +# with GLX backend for some users. +# +# xrender-sync-fence = false + +# GLX backend: Use specified GLSL fragment shader for rendering window +# contents. Read the man page for a detailed explanation of the interface. +# +# window-shader-fg = "default" + +# Use rules to set per-window shaders. Syntax is SHADER_PATH:PATTERN, similar +# to opacity-rule. SHADER_PATH can be "default". This overrides window-shader-fg. +# +# window-shader-fg-rule = [ +# "my_shader.frag:window_type != 'dock'" +# ] + +# Force all windows to be painted with blending. Useful if you +# have a glx-fshader-win that could turn opaque pixels transparent. +# +# force-win-blend = false + +# Do not use EWMH to detect fullscreen windows. +# Reverts to checking if a window is fullscreen based only on its size and coordinates. +# +# no-ewmh-fullscreen = false + +# Dimming bright windows so their brightness doesn't exceed this set value. +# Brightness of a window is estimated by averaging all pixels in the window, +# so this could comes with a performance hit. +# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0) +# +# max-brightness = 1.0 + +# Make transparent windows clip other windows like non-transparent windows do, +# instead of blending on top of them. +# +# transparent-clipping = false + +# Specify a list of conditions of windows that should never have transparent +# clipping applied. Useful for screenshot tools, where you need to be able to +# see through transparent parts of the window. +# +# transparent-clipping-exclude = [] + +# Set the log level. Possible values are: +# "trace", "debug", "info", "warn", "error" +# in increasing level of importance. Case doesn't matter. +# If using the "TRACE" log level, it's better to log into a file +# using *--log-file*, since it can generate a huge stream of logs. +# +# log-level = "debug" +log-level = "warn"; + +# Set the log file. +# If *--log-file* is never specified, logs will be written to stderr. +# Otherwise, logs will to written to the given file, though some of the early +# logs might still be written to the stderr. +# When setting this option from the config file, it is recommended to use an absolute path. +# +# log-file = "/path/to/your/log/file" + +# Show all X errors (for debugging) +# show-all-xerrors = false + +# Write process ID to a file. +# write-pid-path = "/path/to/your/log/file" + +# Window type settings +# +# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard: +# "unknown", "desktop", "dock", "toolbar", "menu", "utility", +# "splash", "dialog", "normal", "dropdown_menu", "popup_menu", +# "tooltip", "notification", "combo", and "dnd". +# +# Following per window-type options are available: :: +# +# fade, shadow::: +# Controls window-type-specific shadow and fade settings. +# +# opacity::: +# Controls default opacity of the window type. +# +# focus::: +# Controls whether the window of this type is to be always considered focused. +# (By default, all window types except "normal" and "dialog" has this on.) +# +# full-shadow::: +# Controls whether shadow is drawn under the parts of the window that you +# normally won't be able to see. Useful when the window has parts of it +# transparent, and you want shadows in those areas. +# +# clip-shadow-above::: +# Controls whether shadows that would have been drawn above the window should +# be clipped. Useful for dock windows that should have no shadow painted on top. +# +# redir-ignore::: +# Controls whether this type of windows should cause screen to become +# redirected again after been unredirected. If you have unredir-if-possible +# set, and doesn't want certain window to cause unnecessary screen redirection, +# you can set this to `true`. +# +wintypes: +{ + tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; }; + dock = { shadow = false; clip-shadow-above = true; } + dnd = { shadow = false; } + popup_menu = { opacity = 0.8; } + dropdown_menu = { opacity = 0.8; } +}; -- cgit v1.2.3 From 8bafc5c23c736cce003902cfbcc896175aeb9ed4 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 19 Oct 2023 09:11:42 -0500 Subject: Ignore more random utilities that shouldn't sync --- .gitignore | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 460bd94..651a166 100644 --- a/.gitignore +++ b/.gitignore @@ -62,8 +62,7 @@ pop-shell/ polychromatic/ poezio/ pmbootstrap.cfg -pipewire/pipewire.conf.d/ -pipewire/media-session.d/ +pipewire/ PCSX2/ pcmanfm-qt/ pcmanfm/ @@ -99,8 +98,9 @@ mpd/playlists/ monero-project/ modprobed-db.conf modprobed.db -mimeapps.list mksh/history +mixbus9/ +mimeapps.list minigalaxy/ micro/buffers/ mgba/ @@ -146,6 +146,7 @@ guitarix/ gtk-2.0/ gtk-3.0/ gomuks/ +godot/ goa-1.0/ gnome-session/ gnome-initial-setup-done @@ -228,6 +229,8 @@ BraveSoftware/ Blacksun.settings Blacksun/ Binance/ +Amp Locker.settings +Amp Locker/ AHM 5050 v3.settings AHM 5050 v3/ @joplin/ -- cgit v1.2.3 From c81018b4514b26a6f5716deb2100a7a0b88c9aa2 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 19 Oct 2023 09:35:29 -0500 Subject: Fix awesome client keybindings --- awesome/rc.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/awesome/rc.lua b/awesome/rc.lua index 650e61e..54d17aa 100644 --- a/awesome/rc.lua +++ b/awesome/rc.lua @@ -740,7 +740,7 @@ globalkeys = gears.table.join( ) ---[[ Keybindings for messing with clients -globalkeys = gears.table.join( globalkeys, +clientkeys = gears.table.join( ---[[ Client manipulation -- Moves focus up and down the stack awful.key({ modkey }, "j", @@ -988,7 +988,7 @@ awful.rules.rules = { border_color = beautiful.border_normal, focus = awful.client.focus.filter, raise = true, - keys = nil, + keys = clientkeys, buttons = clientbuttons, screen = awful.screen.preferred, placement = awful.placement.no_overlap+awful.placement.no_offscreen -- cgit v1.2.3 From a693e7f975efb9b382fce871b7b5384a83d0f837 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 19 Oct 2023 11:24:49 -0500 Subject: Update modules for bling and awesome-wm-widgets --- .gitmodules | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index 89c69a1..579657f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,9 +7,9 @@ [submodule "qutebrowser/jmatrix"] path = qutebrowser/jmatrix url = https://gitlab.com/jgkamat/jmatrix.git -[submodule "awesome/awesome-wm-widgets"] - path = awesome/awesome-wm-widgets - url = https://github.com/streetturtle/awesome-wm-widgets [submodule "awesome/bling"] path = awesome/bling url = https://github.com/BlingCorp/bling.git +[submodule "awesome/awesome-wm-widgets"] + path = awesome/awesome-wm-widgets + url = https://github.com/streetturtle/awesome-wm-widgets.git -- cgit v1.2.3 From fd993bf7c55beea099b2a146be102137b94593fe Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 19 Oct 2023 11:31:29 -0500 Subject: Big nvim config changes Use tabs instead of spaces by default, change the colorscheme to SlateDark, and set indent spacing to 4. Also, don't auto preview or auto :make LaTeX documents. --- nvim/init.vim | 39 ++++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/nvim/init.vim b/nvim/init.vim index 080625e..9b952d3 100644 --- a/nvim/init.vim +++ b/nvim/init.vim @@ -42,31 +42,30 @@ set showmatch " Highlight matching brace set number set relativenumber -colorscheme BlackSea +"colorscheme CandyPaper +colorscheme SlateDark -set hlsearch " Highlight all search results -set smartcase " Enable smart-case search -set incsearch " Searches for strings incrementally +set hlsearch " Highlight all search results +set smartcase " Enable smart-case search +set incsearch " Searches for strings incrementally -set expandtab " Use spaces instead of tabs -set shiftwidth=2 " Number of auto-indent spaces -set smartindent " Enable smart-indent -set smarttab " Enable smart-tabs -set softtabstop=2 " Number of spaces per Tab +set noexpandtab " Use spaces instead of tabs +set shiftwidth=4 " Number of auto-indent spaces +set smartindent " Enable smart-indent +set nosmarttab " Enable smart-tabs +"set softtabstop=2 " Number of spaces per Tab +set tabstop=4 + "" Advanced -set ruler " Show row and column ruler information -set undolevels=1000 " Number of undo levels +set ruler " Show row and column ruler information +set undolevels=1000 " Number of undo levels set backspace=indent,eol,start " Backspace behaviour filetype plugin indent on "" GUI Config set guifont=mononoki\ Nerd\ Font\ Mono:h12 -hi Normal guibg=NONE ctermbg=NONE -hi NonText guibg=NONE ctermbg=NONE -set background=dark - set foldmethod=marker set conceallevel=2 @@ -187,11 +186,17 @@ autocmd BufWinEnter * if getcmdwintype() == '' | silent NERDTreeMirror | endif " custom augroup {{{ augroup custom autocmd! - au BufEnter *.tex :LLPStartPreview + " au BufEnter *.tex :LLPStartPreview au BufEnter *.md :set textwidth=80 au BufEnter *.ms :set textwidth=80 + " au BufEnter *.c :colo DevC++ + " au BufEnter *.h :colo DevC++ + " au BufEnter *.cc :colo DevC++ + " au BufEnter *.hh :colo DevC++ + " au BufEnter *.cpp :colo DevC++ + " au BufEnter *.hpp :colo DevC++ au BufWritePost init.vim :source % - au BufWritePost *.tex :make + " au BufWritePost *.tex :make au BufWritePost *sxhkdrc* :!pkill -USR1 -x sxhkd au BufWritePost .Xresources :!xrdb ~/.Xresources au BufWritePost .gitignore :!git add .gitignore -- cgit v1.2.3 From e45369eb774737d6820a672fd7e3b638221be6ce Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 19 Oct 2023 11:36:44 -0500 Subject: Ignore more various utilities Ignoring ears.cfg, galculator, and filezilla. --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 651a166..22e1103 100644 --- a/.gitignore +++ b/.gitignore @@ -153,13 +153,16 @@ gnome-initial-setup-done gnome-control-center/ glib-2.0/ ghb/ +galculator/ gaiasky/ fontconfig/ +filezilla/ falkTX/ evolution/ enchant/ emacs/ easyeffects/ +ears.cfg dolphin-emu/ dde-printer.ini dconf/ -- cgit v1.2.3 From c3d6accf202cbcd7bf3dab03fc541bb6e06a9eda Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 19 Oct 2023 11:37:14 -0500 Subject: Add vlcrc (for customization later) --- vlc/vlcrc | 5075 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 5075 insertions(+) create mode 100644 vlc/vlcrc diff --git a/vlc/vlcrc b/vlc/vlcrc new file mode 100644 index 0000000..7a1ca14 --- /dev/null +++ b/vlc/vlcrc @@ -0,0 +1,5075 @@ +### +### vlc 3.0.18 +### + +### +### lines beginning with a '#' character are comments +### + +[visual] # Visualizer filter + +# Effects list (string) +#effect-list=spectrum + +# Video width (integer) +#effect-width=800 + +# Video height (integer) +#effect-height=500 + +# FFT window (string) +#effect-fft-window=flat + +# Kaiser window parameter (float) +#effect-kaiser-param=3.000000 + +# Show 80 bands instead of 20 (boolean) +#visual-80-bands=1 + +# Draw peaks in the analyzer (boolean) +#visual-peaks=1 + +# Enable original graphic spectrum (boolean) +#spect-show-original=0 + +# Draw the base of the bands (boolean) +#spect-show-base=1 + +# Base pixel radius (integer) +#spect-radius=42 + +# Spectral sections (integer) +#spect-sections=3 + +# V-plane color (integer) +#spect-color=80 + +# Draw bands in the spectrometer (boolean) +#spect-show-bands=1 + +# Show 80 bands instead of 20 (boolean) +#spect-80-bands=1 + +# Number of blank pixels between bands. (integer) +#spect-separ=1 + +# Amplification (integer) +#spect-amp=8 + +# Draw peaks in the analyzer (boolean) +#spect-show-peaks=1 + +# Peak extra width (integer) +#spect-peak-width=61 + +# Peak height (integer) +#spect-peak-height=1 + +[glspectrum] # 3D OpenGL spectrum visualization + +# Video width (integer) +#glspectrum-width=400 + +# Video height (integer) +#glspectrum-height=300 + +[wall] # Wall video filter + +# Number of columns (integer) +#wall-cols=3 + +# Number of rows (integer) +#wall-rows=3 + +# Active windows (string) +#wall-active= + +# Element aspect ratio (string) +#wall-element-aspect=16:9 + +[panoramix] # Panoramix: wall with overlap video filter + +# Number of columns (integer) +#panoramix-cols=-1 + +# Number of rows (integer) +#panoramix-rows=-1 + +# length of the overlapping area (in %) (integer) +#panoramix-bz-length=100 + +# height of the overlapping area (in %) (integer) +#panoramix-bz-height=100 + +# Attenuation (boolean) +#panoramix-attenuate=1 + +# Attenuation, begin (in %) (integer) +#panoramix-bz-begin=0 + +# Attenuation, middle (in %) (integer) +#panoramix-bz-middle=50 + +# Attenuation, end (in %) (integer) +#panoramix-bz-end=100 + +# middle position (in %) (integer) +#panoramix-bz-middle-pos=50 + +# Gamma (Red) correction (float) +#panoramix-bz-gamma-red=1.000000 + +# Gamma (Green) correction (float) +#panoramix-bz-gamma-green=1.000000 + +# Gamma (Blue) correction (float) +#panoramix-bz-gamma-blue=1.000000 + +# Black Crush for Red (integer) +#panoramix-bz-blackcrush-red=140 + +# Black Crush for Green (integer) +#panoramix-bz-blackcrush-green=140 + +# Black Crush for Blue (integer) +#panoramix-bz-blackcrush-blue=140 + +# White Crush for Red (integer) +#panoramix-bz-whitecrush-red=200 + +# White Crush for Green (integer) +#panoramix-bz-whitecrush-green=200 + +# White Crush for Blue (integer) +#panoramix-bz-whitecrush-blue=200 + +# Black Level for Red (integer) +#panoramix-bz-blacklevel-red=150 + +# Black Level for Green (integer) +#panoramix-bz-blacklevel-green=150 + +# Black Level for Blue (integer) +#panoramix-bz-blacklevel-blue=150 + +# White Level for Red (integer) +#panoramix-bz-whitelevel-red=0 + +# White Level for Green (integer) +#panoramix-bz-whitelevel-green=0 + +# White Level for Blue (integer) +#panoramix-bz-whitelevel-blue=0 + +# Active windows (string) +#panoramix-active= + +[clone] # Clone video filter + +# Number of clones (integer) +#clone-count=2 + +# Video output modules (string) +#clone-vout-list= + +[yuv] # YUV video output + +# device, fifo or filename (string) +#yuv-file=stream.yuv + +# Chroma used (string) +#yuv-chroma= + +# Add a YUV4MPEG2 header (boolean) +#yuv-yuv4mpeg2=0 + +[xdg_shell] # XDG shell surface + +# Wayland display (string) +#wl-display= + +[xcb_xv] # XVideo output (XCB) + +# XVideo adaptor number (integer) +#xvideo-adaptor=-1 + +# XVideo format id (integer) +#xvideo-format-id=0 + +[xcb_x11] # X11 video output (XCB) + +[xcb_window] # X11 video window (XCB) + +# X11 display (string) +#x11-display= + +[wl_shell] # Wayland shell surface + +# Wayland display (string) +#wl-display= + +[vmem] # Video memory output + +# Width (integer) +#vmem-width=320 + +# Height (integer) +#vmem-height=200 + +# Pitch (integer) +#vmem-pitch=640 + +# Chroma (string) +#vmem-chroma=RV16 + +[vdummy] # Dummy video output + +# Dummy image chroma format (string) +#dummy-chroma= + +[gl] # OpenGL video output + +# OpenGL extension (string) +#gl= + +# Open GL/GLES hardware converter (string) +#glconv= + +# Rendering intent for color conversion (integer) +#rendering-intent=1 + +# Display primaries (integer) +#target-prim=0 + +# Display gamma / transfer function (integer) +#target-trc=0 + +# Tone-mapping algorithm (integer) +#tone-mapping=3 + +# Tone-mapping parameter (float) +#tone-mapping-param=0.000000 + +# Highlight clipped pixels (boolean) +#tone-mapping-warn=0 + +# Dithering algorithm (integer) +#dither-algo=-1 + +# Dither depth override (0 = framebuffer depth) (integer) +#dither-depth=0 + +# Desaturation strength (float) +#desat-strength=0.000000 + +# Desaturation exponent (float) +#desat-exponent=0.000000 + +# Desaturation base (float) +#desat-base=0.000000 + +# Maximum brightness boost (float) +#max-boost=0.000000 + +[flaschen] # Flaschen-Taschen video output + +# Flaschen-Taschen display address (string) +#flaschen-display= + +# Width (integer) +#flaschen-width=25 + +# Height (integer) +#flaschen-height=20 + +[fb] # GNU/Linux framebuffer video output + +# Framebuffer device (string) +#fbdev=/dev/fb0 + +# Run fb on current tty (boolean) +#fb-tty=1 + +# Image format (default RGB) (string) +#fb-chroma= + +# Framebuffer resolution to use (integer) +#fb-mode=4 + +# Framebuffer uses hw acceleration (boolean) +#fb-hw-accel=1 + +[transform] # Video transformation filter + +# Transform type (string) +#transform-type=90 + +[sharpen] # Sharpen video filter + +# Sharpen strength (0-2) (float) +#sharpen-sigma=0.050000 + +[sepia] # Sepia video filter + +# Sepia intensity (integer) +#sepia-intensity=120 + +[scene] # Scene video filter + +# Image format (string) +#scene-format=png + +# Image width (integer) +#scene-width=-1 + +# Image height (integer) +#scene-height=-1 + +# Filename prefix (string) +#scene-prefix=scene + +# Directory path prefix (string) +#scene-path= + +# Always write to the same file (boolean) +#scene-replace=0 + +# Recording ratio (integer) +#scene-ratio=50 + +[rotate] # Rotate video filter + +# Angle in degrees (float) +#rotate-angle=30.000000 + +# Use motion sensors (boolean) +#rotate-use-motion=0 + +[puzzle] # Puzzle interactive game video filter + +# Number of puzzle rows (integer) +#puzzle-rows=4 + +# Number of puzzle columns (integer) +#puzzle-cols=4 + +# Border (integer) +#puzzle-border=3 + +# Small preview (boolean) +#puzzle-preview=0 + +# Small preview size (integer) +#puzzle-preview-size=15 + +# Piece edge shape size (integer) +#puzzle-shape-size=90 + +# Auto shuffle (integer) +#puzzle-auto-shuffle=0 + +# Auto solve (integer) +#puzzle-auto-solve=0 + +# Rotation (integer) +#puzzle-rotation=0 + +# Game mode (integer) +#puzzle-mode=0 + +[postproc] # Video post processing filter + +# Post processing quality (integer) +#postproc-q=6 + +# FFmpeg post processing filter chains (string) +#postproc-name=default + +[posterize] # Posterize video filter + +# Posterize level (integer) +#posterize-level=6 + +[motionblur] # Motion blur filter + +# Blur factor (1-127) (integer) +#blur-factor=80 + +[mirror] # Mirror video filter + +# Mirror orientation (integer) +#mirror-split=0 + +# Direction (integer) +#mirror-direction=0 + +[hqdn3d] # High Quality 3D Denoiser filter + +# Spatial luma strength (0-254) (float) +#hqdn3d-luma-spat=4.000000 + +# Spatial chroma strength (0-254) (float) +#hqdn3d-chroma-spat=3.000000 + +# Temporal luma strength (0-254) (float) +#hqdn3d-luma-temp=6.000000 + +# Temporal chroma strength (0-254) (float) +#hqdn3d-chroma-temp=4.500000 + +[grain] # Grain video filter + +# Variance (float) +#grain-variance=2.000000 + +# Minimal period (integer) +#grain-period-min=1 + +# Maximal period (integer) +#grain-period-max=48 + +[gradient] # Gradient video filter + +# Distort mode (string) +#gradient-mode=gradient + +# Gradient image type (integer) +#gradient-type=0 + +# Apply cartoon effect (boolean) +#gradient-cartoon=1 + +[gradfun] # Gradfun video filter + +# Radius (integer) +#gradfun-radius=16 + +# Strength (float) +#gradfun-strength=1.200000 + +[gaussianblur] # Gaussian blur video filter + +# Gaussian's std deviation (float) +#gaussianblur-sigma=2.000000 + +[fps] # FPS conversion video filter + +# Frame rate (string) +#fps-fps= + +[extract] # Extract RGB component video filter + +# RGB component to extract (integer) +#extract-component=16711680 + +[erase] # Erase video filter + +# Image mask (string) +#erase-mask= + +# X coordinate (integer) +#erase-x=0 + +# Y coordinate (integer) +#erase-y=0 + +[deinterlace] # Deinterlacing video filter + +# Streaming deinterlace mode (string) +#sout-deinterlace-mode=blend + +# Phosphor chroma mode for 4:2:0 input (integer) +#sout-deinterlace-phosphor-chroma=2 + +# Phosphor old field dimmer strength (integer) +#sout-deinterlace-phosphor-dimmer=2 + +[croppadd] # Video cropping filter + +# Pixels to crop from top (integer) +#croppadd-croptop=0 + +# Pixels to crop from bottom (integer) +#croppadd-cropbottom=0 + +# Pixels to crop from left (integer) +#croppadd-cropleft=0 + +# Pixels to crop from right (integer) +#croppadd-cropright=0 + +# Pixels to padd to top (integer) +#croppadd-paddtop=0 + +# Pixels to padd to bottom (integer) +#croppadd-paddbottom=0 + +# Pixels to padd to left (integer) +#croppadd-paddleft=0 + +# Pixels to padd to right (integer) +#croppadd-paddright=0 + +[colorthres] # Color threshold filter + +# Color (integer) +#colorthres-color=16711680 + +# Saturation threshold (integer) +#colorthres-saturationthres=20 + +# Similarity threshold (integer) +#colorthres-similaritythres=15 + +[canvas] # Canvas video filter + +# Output width (integer) +#canvas-width=0 + +# Output height (integer) +#canvas-height=0 + +# Output picture aspect ratio (string) +#canvas-aspect= + +# Pad video (boolean) +#canvas-padd=1 + +[bluescreen] # Bluescreen video filter + +# Bluescreen U value (integer) +#bluescreen-u=120 + +# Bluescreen V value (integer) +#bluescreen-v=90 + +# Bluescreen U tolerance (integer) +#bluescreen-ut=17 + +# Bluescreen V tolerance (integer) +#bluescreen-vt=17 + +[blendbench] # Blending benchmark filter + +# Number of time to blend (integer) +#blendbench-loops=1000 + +# Alpha of the blended image (integer) +#blendbench-alpha=128 + +# Image to be blended onto (string) +#blendbench-base-image= + +# Chroma for the base image (string) +#blendbench-base-chroma=I420 + +# Image which will be blended (string) +#blendbench-blend-image= + +# Chroma for the blend image (string) +#blendbench-blend-chroma=YUVA + +[ball] # Ball video filter + +# Ball color (string) +#ball-color=red + +# Ball speed (integer) +#ball-speed=4 + +# Ball size (integer) +#ball-size=10 + +# Gradient threshold (integer) +#ball-gradient-threshold=40 + +# Edge visible (boolean) +#ball-edge-visible=1 + +[antiflicker] # antiflicker video filter + +# Window size (integer) +#antiflicker-window-size=10 + +# Softening value (integer) +#antiflicker-softening-size=10 + +[anaglyph] # Convert 3D picture to anaglyph image video filter + +# Color scheme (string) +#anaglyph-scheme=red-cyan + +[alphamask] # Alpha mask video filter + +# Transparency mask (string) +#alphamask-mask= + +[adjust] # Image properties filter + +# Image contrast (0-2) (float) +#contrast=1.000000 + +# Image brightness (0-2) (float) +#brightness=1.000000 + +# Image hue (-180..180) (float) +#hue=0.000000 + +# Image saturation (0-3) (float) +#saturation=1.000000 + +# Image gamma (0-10) (float) +#gamma=1.000000 + +# Brightness threshold (boolean) +#brightness-threshold=0 + +[swscale] # Video scaling filter + +# Scaling mode (integer) +#swscale-mode=2 + +[vdpau_chroma] # VDPAU surface conversions + +# Deinterlace (integer) +#vdpau-deinterlace=1 + +# Inverse telecine (boolean) +#vdpau-ivtc=0 + +# Deinterlace chroma skip (boolean) +#vdpau-chroma-skip=0 + +# Noise reduction level (float) +#vdpau-noise-reduction=0.000000 + +# Scaling quality (integer) +#vdpau-scaling=0 + +[vaapi_filters] # Video Accelerated API filters + +# Denoise strength (0-2) (float) +#denoise-sigma=1.000000 + +[svg] # svg + +# SVG template file (string) +#svg-template-file= + +[freetype] # Freetype2 font renderer + +# Font (string) +#freetype-font=Serif Bold + +# Monospace Font (string) +#freetype-monofont=Monospace + +# Font size in pixels (integer) +#freetype-fontsize=0 + +# Relative font size (integer) +#freetype-rel-fontsize=0 + +# Text opacity (integer) +#freetype-opacity=255 + +# Text default color (integer) +#freetype-color=16777215 + +# Force bold (boolean) +#freetype-bold=0 + +# Background opacity (integer) +#freetype-background-opacity=0 + +# Background color (integer) +#freetype-background-color=0 + +# Outline opacity (integer) +#freetype-outline-opacity=255 + +# Outline color (integer) +#freetype-outline-color=0 + +# Outline thickness (integer) +#freetype-outline-thickness=4 + +# Shadow opacity (integer) +#freetype-shadow-opacity=128 + +# Shadow color (integer) +#freetype-shadow-color=0 + +# Shadow angle (float) +#freetype-shadow-angle=-45.000000 + +# Shadow distance (float) +#freetype-shadow-distance=0.060000 + +# Use YUVP renderer (boolean) +#freetype-yuvp=0 + +# Text direction (integer) +#freetype-text-direction=0 + +[stream_out_transcode] # Transcode stream output + +# Video encoder (string) +#sout-transcode-venc= + +# Destination video codec (string) +#sout-transcode-vcodec= + +# Video bitrate (integer) +#sout-transcode-vb=0 + +# Video scaling (float) +#sout-transcode-scale=0.000000 + +# Video frame-rate (string) +#sout-transcode-fps= + +# Deinterlace video (boolean) +#sout-transcode-deinterlace=0 + +# Deinterlace module (string) +#sout-transcode-deinterlace-module=deinterlace + +# Video width (integer) +#sout-transcode-width=0 + +# Video height (integer) +#sout-transcode-height=0 + +# Maximum video width (integer) +#sout-transcode-maxwidth=0 + +# Maximum video height (integer) +#sout-transcode-maxheight=0 + +# Video filter (string) +#sout-transcode-vfilter= + +# Audio encoder (string) +#sout-transcode-aenc= + +# Destination audio codec (string) +#sout-transcode-acodec= + +# Audio bitrate (integer) +#sout-transcode-ab=96 + +# Audio language (string) +#sout-transcode-alang= + +# Audio channels (integer) +#sout-transcode-channels=0 + +# Audio sample rate (integer) +#sout-transcode-samplerate=0 + +# Audio filter (string) +#sout-transcode-afilter= + +# Subtitle encoder (string) +#sout-transcode-senc= + +# Destination subtitle codec (string) +#sout-transcode-scodec= + +# Destination subtitle codec (boolean) +#sout-transcode-soverlay=0 + +# Overlays (string) +#sout-transcode-sfilter= + +# Number of threads (integer) +#sout-transcode-threads=0 + +# Picture pool size (integer) +#sout-transcode-pool-size=10 + +# High priority (boolean) +#sout-transcode-high-priority=0 + +[stats] # Writes statistic info about stream + +# Output file (string) +#sout-stats-output= + +# Prefix to show on output line (string) +#sout-stats-prefix=stats + +[stream_out_standard] # Standard stream output + +# Output access method (string) +#sout-standard-access= + +# Output muxer (string) +#sout-standard-mux= + +# Output destination (string) +#sout-standard-dst= + +# Address to bind to (helper setting for dst) (string) +#sout-standard-bind= + +# Filename for stream (helper setting for dst) (string) +#sout-standard-path= + +# SAP announcing (boolean) +#sout-standard-sap=0 + +# Session name (string) +#sout-standard-name= + +# Session description (string) +#sout-standard-description= + +# Session URL (string) +#sout-standard-url= + +# Session email (string) +#sout-standard-email= + +[smem] # Stream output to memory buffer + +# Time Synchronized output (boolean) +#sout-smem-time-sync=1 + +[setid] # Change the id of an elementary stream + +# Elementary Stream ID (integer) +#sout-setid-id=0 + +# New ES ID (integer) +#sout-setid-new-id=0 + +# Elementary Stream ID (integer) +#sout-setlang-id=0 + +# Language (string) +#sout-setlang-lang=eng + +[stream_out_rtp] # RTP stream output + +# Destination (string) +#sout-rtp-dst= + +# SDP (string) +#sout-rtp-sdp= + +# Muxer (string) +#sout-rtp-mux= + +# SAP announcing (boolean) +#sout-rtp-sap=0 + +# Session name (string) +#sout-rtp-name= + +# Session category (string) +#sout-rtp-cat= + +# Session description (string) +#sout-rtp-description= + +# Session URL (string) +#sout-rtp-url= + +# Session email (string) +#sout-rtp-email= + +# Transport protocol (string) +#sout-rtp-proto=udp + +# Port (integer) +#sout-rtp-port=5004 + +# Audio port (integer) +#sout-rtp-port-audio=0 + +# Video port (integer) +#sout-rtp-port-video=0 + +# Hop limit (TTL) (integer) +#sout-rtp-ttl=-1 + +# RTP/RTCP multiplexing (boolean) +#sout-rtp-rtcp-mux=0 + +# Caching value (ms) (integer) +#sout-rtp-caching=300 + +# MP4A LATM (boolean) +#sout-rtp-mp4a-latm=0 + +# RTSP session timeout (s) (integer) +#rtsp-timeout=60 + +# Username (string) +#sout-rtsp-user= + +# Password (string) +#sout-rtsp-pwd= + +[record] # Record stream output + +# Destination prefix (string) +#sout-record-dst-prefix= + +[mosaic_bridge] # Mosaic bridge stream output + +# ID (string) +#sout-mosaic-bridge-id=Id + +# Video width (integer) +#sout-mosaic-bridge-width=0 + +# Video height (integer) +#sout-mosaic-bridge-height=0 + +# Sample aspect ratio (string) +#sout-mosaic-bridge-sar=1:1 + +# Image chroma (string) +#sout-mosaic-bridge-chroma= + +# Video filter (string) +#sout-mosaic-bridge-vfilter= + +# Transparency (integer) +#sout-mosaic-bridge-alpha=255 + +# X offset (integer) +#sout-mosaic-bridge-x=-1 + +# Y offset (integer) +#sout-mosaic-bridge-y=-1 + +[es] # Elementary stream output + +# Output access method (string) +#sout-es-access= + +# Output muxer (string) +#sout-es-mux= + +# Output URL (string) +#sout-es-dst= + +# Audio output access method (string) +#sout-es-access-audio= + +# Audio output muxer (string) +#sout-es-mux-audio= + +# Audio output URL (string) +#sout-es-dst-audio= + +# Video output access method (string) +#sout-es-access-video= + +# Video output muxer (string) +#sout-es-mux-video= + +# Video output URL (string) +#sout-es-dst-video= + +[display] # Display stream output + +# Enable audio (boolean) +#sout-display-audio=1 + +# Enable video (boolean) +#sout-display-video=1 + +# Delay (ms) (integer) +#sout-display-delay=100 + +[delay] # Delay a stream + +# Elementary Stream ID (integer) +#sout-delay-id=0 + +# Delay of the ES (ms) (integer) +#sout-delay-delay=0 + +[stream_out_chromecast] # Chromecast stream output + +# ? (string) +#sout-chromecast-ip= + +# ? (integer) +#sout-chromecast-port=8009 + +# ? (boolean) +#sout-chromecast-video=1 + +# HTTP port (integer) +#sout-chromecast-http-port=8010 + +# Performance warning (integer) +#sout-chromecast-show-perf-warning=1 + +# Enable Audio passthrough (boolean) +#sout-chromecast-audio-passthrough=0 + +# Conversion quality (integer) +#sout-chromecast-conversion-quality=1 + +[bridge] # Bridge stream output + +# ID (integer) +#sout-bridge-out-id=0 + +# Destination bridge-in name (string) +#sout-bridge-out-in-name=default + +# Delay (integer) +#sout-bridge-in-delay=0 + +# ID Offset (integer) +#sout-bridge-in-id-offset=8192 + +# Name of current instance (string) +#sout-bridge-in-name=default + +# Fallback to placeholder stream when out of data (boolean) +#sout-bridge-in-placeholder=0 + +# Placeholder delay (integer) +#sout-bridge-in-placeholder-delay=200 + +# Wait for I frame before toggling placeholder (boolean) +#sout-bridge-in-placeholder-switch-on-iframe=1 + +[prefetch] # Stream prefetch filter + +# Buffer size (integer) +#prefetch-buffer-size=16384 + +# Read size (integer) +#prefetch-read-size=16777216 + +# Seek threshold (integer) +#prefetch-seek-threshold=16384 + +[subsdelay] # Subtitle delay + +# Delay calculation mode (integer) +#subsdelay-mode=1 + +# Calculation factor (float) +#subsdelay-factor=2.000000 + +# Maximum overlapping subtitles (integer) +#subsdelay-overlap=3 + +# Minimum alpha value (integer) +#subsdelay-min-alpha=70 + +# Interval between two disappearances (integer) +#subsdelay-min-stops=1000 + +# Interval between appearance and disappearance (integer) +#subsdelay-min-start-stop=1000 + +# Interval between disappearance and appearance (integer) +#subsdelay-min-stop-start=1000 + +[rss] # RSS and Atom feed display + +# Feed URLs (string) +#rss-urls= + +# X offset (integer) +#rss-x=0 + +# Y offset (integer) +#rss-y=0 + +# Text position (integer) +#rss-position=-1 + +# Opacity (integer) +#rss-opacity=255 + +# Color (integer) +#rss-color=16777215 + +# Font size, pixels (integer) +#rss-size=0 + +# Speed of feeds (integer) +#rss-speed=100000 + +# Max length (integer) +#rss-length=60 + +# Refresh time (integer) +#rss-ttl=1800 + +# Feed images (boolean) +#rss-images=1 + +# Title display mode (integer) +#rss-title=-1 + +[mosaic] # Mosaic video sub source + +# Transparency (integer) +#mosaic-alpha=255 + +# Height (integer) +#mosaic-height=100 + +# Width (integer) +#mosaic-width=100 + +# Mosaic alignment (integer) +#mosaic-align=5 + +# Top left corner X coordinate (integer) +#mosaic-xoffset=0 + +# Top left corner Y coordinate (integer) +#mosaic-yoffset=0 + +# Border width (integer) +#mosaic-borderw=0 + +# Border height (integer) +#mosaic-borderh=0 + +# Positioning method (integer) +#mosaic-position=0 + +# Number of rows (integer) +#mosaic-rows=2 + +# Number of columns (integer) +#mosaic-cols=2 + +# Keep aspect ratio (boolean) +#mosaic-keep-aspect-ratio=0 + +# Keep original size (boolean) +#mosaic-keep-picture=0 + +# Elements order (string) +#mosaic-order= + +# Offsets in order (string) +#mosaic-offsets= + +# Delay (integer) +#mosaic-delay=0 + +[marq] # Marquee display + +# Text (string) +#marq-marquee=VLC + +# Text file (string) +#marq-file= + +# X offset (integer) +#marq-x=0 + +# Y offset (integer) +#marq-y=0 + +# Marquee position (integer) +#marq-position=-1 + +# Opacity (integer) +#marq-opacity=255 + +# Color (integer) +#marq-color=16777215 + +# Font size, pixels (integer) +#marq-size=0 + +# Timeout (integer) +#marq-timeout=0 + +# Refresh period in ms (integer) +#marq-refresh=1000 + +[logo] # Logo sub source + +# Logo filenames (string) +#logo-file= + +# X coordinate (integer) +#logo-x=-1 + +# Y coordinate (integer) +#logo-y=-1 + +# Logo individual image time in ms (integer) +#logo-delay=1000 + +# Logo animation # of loops (integer) +#logo-repeat=-1 + +# Opacity of the logo (integer) +#logo-opacity=255 + +# Logo position (integer) +#logo-position=-1 + +[dynamicoverlay] # Dynamic video overlay + +# Input FIFO (string) +#overlay-input= + +# Output FIFO (string) +#overlay-output= + +[audiobargraph_v] # Audio Bar Graph Video sub source + +# X coordinate (integer) +#audiobargraph_v-x=0 + +# Y coordinate (integer) +#audiobargraph_v-y=0 + +# Transparency of the bargraph (integer) +#audiobargraph_v-transparency=255 + +# Bargraph position (integer) +#audiobargraph_v-position=-1 + +# Bar width in pixel (integer) +#audiobargraph_v-barWidth=10 + +# Bar Height in pixel (integer) +#audiobargraph_v-barHeight=400 + +[upnp] # Universal Plug'n'Play + +# SAT>IP channel list (string) +#satip-channelist=auto + +# Custom SAT>IP channel list URL (string) +#satip-channellist-url= + +[sap] # Network streams (SAP) + +# SAP multicast address (string) +#sap-addr= + +# SAP timeout (seconds) (integer) +#sap-timeout=1800 + +# Try to parse the announce (boolean) +#sap-parse=1 + +# SAP Strict mode (boolean) +#sap-strict=0 + +[podcast] # Podcasts + +# Podcast URLs list (string) +#podcast-urls= + +[mpegvideo] # MPEG-I/II video packetizer + +# Sync on Intra Frame (boolean) +#packetizer-mpegvideo-sync-iframe=0 + +[notify] # LibNotify Notification Plugin + +# Timeout (ms) (integer) +#notify-timeout=4000 + +[mux_ts] # TS muxer (libdvbpsi) + +# Digital TV Standard (string) +#sout-ts-standard=dvb + +# Video PID (integer) +#sout-ts-pid-video=100 + +# Audio PID (integer) +#sout-ts-pid-audio=200 + +# SPU PID (integer) +#sout-ts-pid-spu=300 + +# PMT PID (integer) +#sout-ts-pid-pmt=32 + +# TS ID (integer) +#sout-ts-tsid=0 + +# NET ID (integer) +#sout-ts-netid=0 + +# PMT Program numbers (string) +#sout-ts-program-pmt= + +# Set PID to ID of ES (boolean) +#sout-ts-es-id-pid=0 + +# Mux PMT (requires --sout-ts-es-id-pid) (string) +#sout-ts-muxpmt= + +# SDT Descriptors (requires --sout-ts-es-id-pid) (string) +#sout-ts-sdtdesc= + +# Data alignment (boolean) +#sout-ts-alignment=1 + +# Shaping delay (ms) (integer) +#sout-ts-shaping=200 + +# Use keyframes (boolean) +#sout-ts-use-key-frames=0 + +# PCR interval (ms) (integer) +#sout-ts-pcr=70 + +# Minimum B (deprecated) (integer) +#sout-ts-bmin=0 + +# Maximum B (deprecated) (integer) +#sout-ts-bmax=0 + +# DTS delay (ms) (integer) +#sout-ts-dts-delay=400 + +# Crypt audio (boolean) +#sout-ts-crypt-audio=1 + +# Crypt video (boolean) +#sout-ts-crypt-video=1 + +# CSA Key (string) +#sout-ts-csa-ck= + +# Second CSA Key (string) +#sout-ts-csa2-ck= + +# CSA Key in use (string) +#sout-ts-csa-use=1 + +# Packet size in bytes to encrypt (integer) +#sout-ts-csa-pkt=188 + +[ps] # PS muxer + +# DTS delay (ms) (integer) +#sout-ps-dts-delay=200 + +# PES maximum size (integer) +#sout-ps-pes-max-size=65500 + +[mux_ogg] # Ogg/OGM muxer + +# Index interval (integer) +#sout-ogg-indexintvl=1000 + +# Index size ratio (float) +#sout-ogg-indexratio=1.000000 + +[mp4] # MP4/MOV muxer + +# Create "Fast Start" files (boolean) +#sout-mp4-faststart=1 + +[avi] # AVI muxer + +# Artist (string) +#sout-avi-artist= + +# Date (string) +#sout-avi-date= + +# Genre (string) +#sout-avi-genre= + +# Copyright (string) +#sout-avi-copyright= + +# Comment (string) +#sout-avi-comment= + +# Name (string) +#sout-avi-name= + +# Subject (string) +#sout-avi-subject= + +# Encoder (string) +#sout-avi-encoder=VLC Media Player - 3.0.18 Vetinari + +# Keywords (string) +#sout-avi-keywords= + +[asf] # ASF muxer + +# Title (string) +#sout-asf-title= + +# Author (string) +#sout-asf-author= + +# Copyright (string) +#sout-asf-copyright= + +# Comment (string) +#sout-asf-comment= + +# Rating (string) +#sout-asf-rating= + +# Packet Size (integer) +#sout-asf-packet-size=4096 + +# Bitrate override (integer) +#sout-asf-bitrate-override=0 + +[rtsp] # Legacy RTSP VoD server + +# MUX for RAW RTSP transport (string) +#rtsp-raw-mux=ts + +# Maximum number of connections (integer) +#rtsp-throttle-users=0 + +# Sets the timeout option in the RTSP session string (integer) +#rtsp-session-timeout=5 + +[logger] # File logging + +[gnutls] # GNU TLS transport layer security + +# Use system trust database (boolean) +#gnutls-system-trust=1 + +# Trust directory (string) +#gnutls-dir-trust= + +# TLS cipher priorities (string) +#gnutls-priorities=NORMAL + +[audioscrobbler] # Submission of played songs to last.fm + +# Username (string) +#lastfm-username= + +# Password (string) +#lastfm-password= + +# Scrobbler URL (string) +#scrobbler-url=post.audioscrobbler.com + +[folder] # Folder meta data + +# Album art filename (string) +#album-art-filename= + +[lua] # Lua interpreter + +# Lua interface (string) +#lua-intf=dummy + +# Lua interface configuration (string) +#lua-config= + +# Password (string) +#http-password= + +# Source directory (string) +#http-src= + +# Directory index (boolean) +#http-index=0 + +# TCP command input (string) +#rc-host= + +# CLI input (string) +#cli-host= + +# Host (string) +#telnet-host=localhost + +# Port (integer) +#telnet-port=4212 + +# Password (string) +#telnet-password= + +[syslog] # System logger (syslog) + +# System log (syslog) (boolean) +#syslog=0 + +# Debug messages (boolean) +#syslog-debug=0 + +# Identity (string) +#syslog-ident=vlc + +# Facility (string) +#syslog-facility=user + +[file] # File logger + +# Log to file (boolean) +#file-logging=0 + +# Log filename (string) +#logfile= + +# Log format (string) +#logmode=text + +# Verbosity (integer) +#log-verbose=-1 + +[console] # Console logger + +[file] # Secrets are stored on a file without any encryption + +# ? (string) +#keystore-file= + +[skins2] # Skinnable Interface + +# Skin to use (string) +#skins2-last= + +# Config of last used skin (string) +#skins2-config= + +# Enable transparency effects (boolean) +#skins2-transparency=0 + +# Use a skinned playlist (boolean) +#skinned-playlist=1 + +# Display video in a skinned window if any (boolean) +#skinned-video=1 + +[qt] # Qt interface + +# Start in minimal view (without menus) (boolean) +#qt-minimal-view=0 + +# Systray icon (boolean) +#qt-system-tray=1 + +# Show notification popup on track change (integer) +#qt-notification=1 + +# Start VLC with only a systray icon (boolean) +#qt-start-minimized=0 + +# Pause the video playback when minimized (boolean) +#qt-pause-minimized=0 + +# Windows opacity between 0.1 and 1 (float) +#qt-opacity=1.000000 + +# Fullscreen controller opacity between 0.1 and 1 (float) +#qt-fs-opacity=0.800000 + +# Resize interface to the native video size (boolean) +#qt-video-autoresize=1 + +# Show playing item name in window title (boolean) +#qt-name-in-title=1 + +# Show a controller in fullscreen mode (boolean) +#qt-fs-controller=1 + +# Save the recently played items in the menu (boolean) +#qt-recentplay=1 + +# List of words separated by | to filter (string) +#qt-recentplay-filter= + +# Continue playback? (integer) +#qt-continue=1 + +# Embed the file browser in open dialog (boolean) +#qt-embedded-open=0 + +# Show advanced preferences over simple ones (boolean) +#qt-advanced-pref=0 + +# Show unimportant error and warnings dialogs (boolean) +#qt-error-dialogs=1 + +# Define the colors of the volume slider (string) +#qt-slider-colours=153;210;153;20;210;20;255;199;15;245;39;29 + +# Ask for network policy at start (boolean) +qt-privacy-ask=0 + +# Define which screen fullscreen goes (integer) +#qt-fullscreen-screennumber=-1 + +# Load extensions on startup (boolean) +#qt-autoload-extensions=1 + +# Display background cone or art (boolean) +#qt-bgcone=1 + +# Expanding background cone or art (boolean) +#qt-bgcone-expands=0 + +# Allow automatic icon changes (boolean) +#qt-icon-change=1 + +# Maximum Volume displayed (integer) +#qt-max-volume=125 + +# Fullscreen controller mouse sensitivity (integer) +#qt-fs-sensitivity=3 + +# When to raise the interface (integer) +#qt-auto-raise=1 + +[ncurses] # Ncurses interface + +# Filebrowser starting point (string) +#browse-dir= + +[vc1] # VC1 video demuxer + +# Frames per Second (float) +#vc1-fps=25.000000 + +[ts] # MPEG Transport Stream demuxer + +# Digital TV Standard (string) +#ts-standard=auto + +# Extra PMT (string) +#ts-extra-pmt= + +# Trust in-stream PCR (boolean) +#ts-trust-pcr=1 + +# Set id of ES to PID (boolean) +#ts-es-id-pid=1 + +# CSA Key (string) +#ts-csa-ck= + +# Second CSA Key (string) +#ts-csa2-ck= + +# Packet size in bytes to decrypt (integer) +#ts-csa-pkt=188 + +# Separate sub-streams (boolean) +#ts-split-es=1 + +# Seek based on percent not time (boolean) +#ts-seek-percent=0 + +# Check packets continuity counter (boolean) +#ts-cc-check=1 + +# Only create ES on program sending data (boolean) +#ts-pmtfix-waitdata=1 + +# Try to generate PAT/PMT if missing (boolean) +#ts-patfix=1 + +# Try to fix too early PCR (or late DTS) (boolean) +#ts-pcr-offsetfix=1 + +[subtitle] # Text subtitle parser + +# Frames per Second (float) +#sub-fps=0.000000 + +# Subtitle delay (integer) +#sub-delay=0 + +# Subtitle format (string) +#sub-type=auto + +# Subtitle description (string) +#sub-description= + +[rawvid] # Raw video demuxer + +# Frames per Second (string) +#rawvid-fps= + +# Width (integer) +#rawvid-width=0 + +# Height (integer) +#rawvid-height=0 + +# Force chroma (Use carefully) (string) +#rawvid-chroma= + +# Aspect ratio (string) +#rawvid-aspect-ratio= + +[rawdv] # DV (Digital Video) demuxer + +# Hurry up (boolean) +#rawdv-hurry-up=0 + +[rawaud] # Raw audio demuxer + +# Audio channels (integer) +#rawaud-channels=2 + +# Audio samplerate (Hz) (integer) +#rawaud-samplerate=48000 + +# FOURCC code of raw input format (string) +#rawaud-fourcc=s16l + +# Forces the audio language (string) +#rawaud-lang=eng + +[ps] # MPEG-PS demuxer + +# Trust MPEG timestamps (boolean) +#ps-trust-timestamps=1 + +[playlist] # Playlist + +# Skip ads (boolean) +#playlist-skip-ads=1 + +# Show shoutcast adult content (boolean) +#shoutcast-show-adult=0 + +[mp4] # MP4 stream demuxer + +# M4A audio only (boolean) +#mp4-m4a-audioonly=0 + +[mod] # MOD demuxer (libmodplug) + +# Noise reduction (boolean) +#mod-noisereduction=1 + +# Reverb (boolean) +#mod-reverb=0 + +# Reverberation level (integer) +#mod-reverb-level=0 + +# Reverberation delay (integer) +#mod-reverb-delay=40 + +# Mega bass (boolean) +#mod-megabass=0 + +# Mega bass level (integer) +#mod-megabass-level=0 + +# Mega bass cutoff (integer) +#mod-megabass-range=10 + +# Surround (boolean) +#mod-surround=0 + +# Surround level (integer) +#mod-surround-level=0 + +# Surround delay (ms) (integer) +#mod-surround-delay=5 + +[mkv] # Matroska stream demuxer + +# Respect ordered chapters (boolean) +#mkv-use-ordered-chapters=1 + +# Chapter codecs (boolean) +#mkv-use-chapter-codec=1 + +# Preload MKV files in the same directory (boolean) +#mkv-preload-local-dir=1 + +# Seek based on percent not time (boolean) +#mkv-seek-percent=0 + +# Dummy Elements (boolean) +#mkv-use-dummy=0 + +# Preload clusters (boolean) +#mkv-preload-clusters=0 + +[mjpeg] # M-JPEG camera demuxer + +# Frames per Second (float) +#mjpeg-fps=0.000000 + +[image] # Image demuxer + +# ES ID (integer) +#image-id=-1 + +# Group (integer) +#image-group=0 + +# Decode (boolean) +#image-decode=1 + +# Forced chroma (string) +#image-chroma= + +# Duration in seconds (float) +#image-duration=10.000000 + +# Frame rate (string) +#image-fps=10/1 + +# Real-time (boolean) +#image-realtime=0 + +[h26x] # H264 video demuxer + +# Frames per Second (float) +#h264-fps=0.000000 + +# Frames per Second (float) +#hevc-fps=0.000000 + +[es] # MPEG-I/II/4 / A52 / DTS / MLP audio + +# Frames per Second (float) +#es-fps=25.000000 + +[diracsys] # Dirac video demuxer + +# Value to adjust dts by (integer) +#dirac-dts-offset=0 + +[demuxdump] # File dumper + +# Dump module (string) +#demuxdump-access=file + +# Dump filename (string) +#demuxdump-file=stream-demux.dump + +# Append to existing file (boolean) +#demuxdump-append=0 + +[avi] # AVI demuxer + +# Force interleaved method (boolean) +#avi-interleaved=0 + +# Force index creation (integer) +#avi-index=0 + +[avformat] # Avformat demuxer + +# Format name (string) +#avformat-format= + +# Advanced options (string) +#avformat-options= + +# Avformat mux (string) +#sout-avformat-mux= + +# Advanced options (string) +#sout-avformat-options= + +# Reset timestamps (boolean) +#sout-avformat-reset-ts=0 + +[adaptive] # Unified adaptive streaming for DASH/HLS + +# Adaptive Logic (string) +#adaptive-logic= + +# Maximum device width (integer) +#adaptive-maxwidth=0 + +# Maximum device height (integer) +#adaptive-maxheight=0 + +# Fixed Bandwidth in KiB/s (integer) +#adaptive-bw=250 + +# Use regular HTTP modules (boolean) +#adaptive-use-access=0 + +# Live Playback delay (ms) (integer) +#adaptive-livedelay=15000 + +# Max buffering (ms) (integer) +#adaptive-maxbuffer=30000 + +# Low latency (integer) +#adaptive-lowlatency=-1 + +[oldrc] # Remote control interface + +# Show stream position (boolean) +#rc-show-pos=0 + +# Fake TTY (boolean) +#rc-fake-tty=0 + +# UNIX socket command input (string) +#rc-unix= + +# TCP command input (string) +#rc-host= + +[netsync] # Network synchronization + +# Network master clock (boolean) +#netsync-master=0 + +# Master server IP address (string) +#netsync-master-ip= + +# UDP timeout (in ms) (integer) +#netsync-timeout=500 + +[motion] # motion control interface + +[gestures] # Mouse gestures control interface + +# Motion threshold (10-100) (integer) +#gestures-threshold=30 + +# Trigger button (string) +#gestures-button=left + +[zvbi] # VBI and Teletext decoder + +# Teletext page (integer) +#vbi-page=100 + +# Opacity (boolean) +#vbi-opaque=0 + +# Teletext alignment (integer) +#vbi-position=8 + +# Teletext text subtitles (boolean) +#vbi-text=0 + +# Presentation Level (integer) +#vbi-level=3 + +[x264] # H.264/MPEG-4 Part 10/AVC encoder (x264) + +# Maximum GOP size (integer) +#sout-x264-keyint=250 + +# Minimum GOP size (integer) +#sout-x264-min-keyint=25 + +# Use recovery points to close GOPs (boolean) +#sout-x264-opengop=0 + +# Enable compatibility hacks for Blu-ray support (boolean) +#sout-x264-bluray-compat=0 + +# Extra I-frames aggressivity (integer) +#sout-x264-scenecut=40 + +# B-frames between I and P (integer) +#sout-x264-bframes=3 + +# Adaptive B-frame decision (integer) +#sout-x264-b-adapt=1 + +# Influence (bias) B-frames usage (integer) +#sout-x264-b-bias=0 + +# Keep some B-frames as references (string) +#sout-x264-bpyramid=normal + +# CABAC (boolean) +#sout-x264-cabac=1 + +# Use fullrange instead of TV colorrange (boolean) +#sout-x264-fullrange=0 + +# Number of reference frames (integer) +#sout-x264-ref=3 + +# Skip loop filter (boolean) +#sout-x264-nf=0 + +# Loop filter AlphaC0 and Beta parameters alpha:beta (string) +#sout-x264-deblock=0:0 + +# Strength of psychovisual optimization, default is "1.0:0.0" (string) +#sout-x264-psy-rd=1.0:0.0 + +# Use Psy-optimizations (boolean) +#sout-x264-psy=1 + +# H.264 level (string) +#sout-x264-level=0 + +# H.264 profile (string) +#sout-x264-profile=high + +# Interlaced mode (boolean) +#sout-x264-interlaced=0 + +# Frame packing (integer) +#sout-x264-frame-packing=-1 + +# Force number of slices per frame (integer) +#sout-x264-slices=0 + +# Limit the size of each slice in bytes (integer) +#sout-x264-slice-max-size=0 + +# Limit the size of each slice in macroblocks (integer) +#sout-x264-slice-max-mbs=0 + +# HRD-timing information (string) +#sout-x264-hrd=none + +# Set QP (integer) +#sout-x264-qp=-1 + +# Quality-based VBR (integer) +#sout-x264-crf=23 + +# Min QP (integer) +#sout-x264-qpmin=10 + +# Max QP (integer) +#sout-x264-qpmax=51 + +# Max QP step (integer) +#sout-x264-qpstep=4 + +# Average bitrate tolerance (float) +#sout-x264-ratetol=1.000000 + +# Max local bitrate (integer) +#sout-x264-vbv-maxrate=0 + +# VBV buffer (integer) +#sout-x264-vbv-bufsize=0 + +# Initial VBV buffer occupancy (float) +#sout-x264-vbv-init=0.900000 + +# QP factor between I and P (float) +#sout-x264-ipratio=1.400000 + +# QP factor between P and B (float) +#sout-x264-pbratio=1.300000 + +# QP difference between chroma and luma (integer) +#sout-x264-chroma-qp-offset=0 + +# Multipass ratecontrol (integer) +#sout-x264-pass=0 + +# QP curve compression (float) +#sout-x264-qcomp=0.600000 + +# Reduce fluctuations in QP (float) +#sout-x264-cplxblur=20.000000 + +# Reduce fluctuations in QP (float) +#sout-x264-qblur=0.500000 + +# How AQ distributes bits (integer) +#sout-x264-aq-mode=1 + +# Strength of AQ (float) +#sout-x264-aq-strength=1.000000 + +# Partitions to consider (string) +#sout-x264-partitions=normal + +# Direct MV prediction mode (string) +#sout-x264-direct=spatial + +# Direct prediction size (integer) +#sout-x264-direct-8x8=1 + +# Weighted prediction for B-frames (boolean) +#sout-x264-weightb=1 + +# Weighted prediction for P-frames (integer) +#sout-x264-weightp=2 + +# Integer pixel motion estimation method (string) +#sout-x264-me=hex + +# Maximum motion vector search range (integer) +#sout-x264-merange=16 + +# Maximum motion vector length (integer) +#sout-x264-mvrange=-1 + +# Minimum buffer space between threads (integer) +#sout-x264-mvrange-thread=-1 + +# Subpixel motion estimation and partition decision quality (integer) +#sout-x264-subme=7 + +# Decide references on a per partition basis (boolean) +#sout-x264-mixed-refs=1 + +# Chroma in motion estimation (boolean) +#sout-x264-chroma-me=1 + +# Adaptive spatial transform size (boolean) +#sout-x264-8x8dct=1 + +# Trellis RD quantization (integer) +#sout-x264-trellis=1 + +# Framecount to use on frametype lookahead (integer) +#sout-x264-lookahead=40 + +# Use Periodic Intra Refresh (boolean) +#sout-x264-intra-refresh=0 + +# Use mb-tree ratecontrol (boolean) +#sout-x264-mbtree=1 + +# Early SKIP detection on P-frames (boolean) +#sout-x264-fast-pskip=1 + +# Coefficient thresholding on P-frames (boolean) +#sout-x264-dct-decimate=1 + +# Noise reduction (integer) +#sout-x264-nr=0 + +# Inter luma quantization deadzone (integer) +#sout-x264-deadzone-inter=21 + +# Intra luma quantization deadzone (integer) +#sout-x264-deadzone-intra=11 + +# Non-deterministic optimizations when threaded (boolean) +#sout-x264-non-deterministic=0 + +# CPU optimizations (boolean) +#sout-x264-asm=1 + +# PSNR computation (boolean) +#sout-x264-psnr=0 + +# SSIM computation (boolean) +#sout-x264-ssim=0 + +# Quiet mode (boolean) +#sout-x264-quiet=0 + +# SPS and PPS id numbers (integer) +#sout-x264-sps-id=0 + +# Access unit delimiters (boolean) +#sout-x264-aud=0 + +# Statistics (boolean) +#sout-x264-verbose=0 + +# Filename for 2 pass stats file (string) +#sout-x264-stats=x264_2pass.log + +# Default preset setting used (string) +#sout-x264-preset= + +# Default tune setting used (string) +#sout-x264-tune= + +# x264 advanced options (string) +#sout-x264-options= + +[x26410b] # H.264/MPEG-4 Part 10/AVC encoder (x264 10-bit) + +# Maximum GOP size (integer) +#sout-x26410b-keyint=250 + +# Minimum GOP size (integer) +#sout-x26410b-min-keyint=25 + +# Use recovery points to close GOPs (boolean) +#sout-x26410b-opengop=0 + +# Enable compatibility hacks for Blu-ray support (boolean) +#sout-x26410b-bluray-compat=0 + +# Extra I-frames aggressivity (integer) +#sout-x26410b-scenecut=40 + +# B-frames between I and P (integer) +#sout-x26410b-bframes=3 + +# Adaptive B-frame decision (integer) +#sout-x26410b-b-adapt=1 + +# Influence (bias) B-frames usage (integer) +#sout-x26410b-b-bias=0 + +# Keep some B-frames as references (string) +#sout-x26410b-bpyramid=normal + +# CABAC (boolean) +#sout-x26410b-cabac=1 + +# Use fullrange instead of TV colorrange (boolean) +#sout-x26410b-fullrange=0 + +# Number of reference frames (integer) +#sout-x26410b-ref=3 + +# Skip loop filter (boolean) +#sout-x26410b-nf=0 + +# Loop filter AlphaC0 and Beta parameters alpha:beta (string) +#sout-x26410b-deblock=0:0 + +# Strength of psychovisual optimization, default is "1.0:0.0" (string) +#sout-x26410b-psy-rd=1.0:0.0 + +# Use Psy-optimizations (boolean) +#sout-x26410b-psy=1 + +# H.264 level (string) +#sout-x26410b-level=0 + +# H.264 profile (string) +#sout-x26410b-profile=high + +# Interlaced mode (boolean) +#sout-x26410b-interlaced=0 + +# Frame packing (integer) +#sout-x26410b-frame-packing=-1 + +# Force number of slices per frame (integer) +#sout-x26410b-slices=0 + +# Limit the size of each slice in bytes (integer) +#sout-x26410b-slice-max-size=0 + +# Limit the size of each slice in macroblocks (integer) +#sout-x26410b-slice-max-mbs=0 + +# HRD-timing information (string) +#sout-x26410b-hrd=none + +# Set QP (integer) +#sout-x26410b-qp=-1 + +# Quality-based VBR (integer) +#sout-x26410b-crf=23 + +# Min QP (integer) +#sout-x26410b-qpmin=10 + +# Max QP (integer) +#sout-x26410b-qpmax=51 + +# Max QP step (integer) +#sout-x26410b-qpstep=4 + +# Average bitrate tolerance (float) +#sout-x26410b-ratetol=1.000000 + +# Max local bitrate (integer) +#sout-x26410b-vbv-maxrate=0 + +# VBV buffer (integer) +#sout-x26410b-vbv-bufsize=0 + +# Initial VBV buffer occupancy (float) +#sout-x26410b-vbv-init=0.900000 + +# QP factor between I and P (float) +#sout-x26410b-ipratio=1.400000 + +# QP factor between P and B (float) +#sout-x26410b-pbratio=1.300000 + +# QP difference between chroma and luma (integer) +#sout-x26410b-chroma-qp-offset=0 + +# Multipass ratecontrol (integer) +#sout-x26410b-pass=0 + +# QP curve compression (float) +#sout-x26410b-qcomp=0.600000 + +# Reduce fluctuations in QP (float) +#sout-x26410b-cplxblur=20.000000 + +# Reduce fluctuations in QP (float) +#sout-x26410b-qblur=0.500000 + +# How AQ distributes bits (integer) +#sout-x26410b-aq-mode=1 + +# Strength of AQ (float) +#sout-x26410b-aq-strength=1.000000 + +# Partitions to consider (string) +#sout-x26410b-partitions=normal + +# Direct MV prediction mode (string) +#sout-x26410b-direct=spatial + +# Direct prediction size (integer) +#sout-x26410b-direct-8x8=1 + +# Weighted prediction for B-frames (boolean) +#sout-x26410b-weightb=1 + +# Weighted prediction for P-frames (integer) +#sout-x26410b-weightp=2 + +# Integer pixel motion estimation method (string) +#sout-x26410b-me=hex + +# Maximum motion vector search range (integer) +#sout-x26410b-merange=16 + +# Maximum motion vector length (integer) +#sout-x26410b-mvrange=-1 + +# Minimum buffer space between threads (integer) +#sout-x26410b-mvrange-thread=-1 + +# Subpixel motion estimation and partition decision quality (integer) +#sout-x26410b-subme=7 + +# Decide references on a per partition basis (boolean) +#sout-x26410b-mixed-refs=1 + +# Chroma in motion estimation (boolean) +#sout-x26410b-chroma-me=1 + +# Adaptive spatial transform size (boolean) +#sout-x26410b-8x8dct=1 + +# Trellis RD quantization (integer) +#sout-x26410b-trellis=1 + +# Framecount to use on frametype lookahead (integer) +#sout-x26410b-lookahead=40 + +# Use Periodic Intra Refresh (boolean) +#sout-x26410b-intra-refresh=0 + +# Use mb-tree ratecontrol (boolean) +#sout-x26410b-mbtree=1 + +# Early SKIP detection on P-frames (boolean) +#sout-x26410b-fast-pskip=1 + +# Coefficient thresholding on P-frames (boolean) +#sout-x26410b-dct-decimate=1 + +# Noise reduction (integer) +#sout-x26410b-nr=0 + +# Inter luma quantization deadzone (integer) +#sout-x26410b-deadzone-inter=21 + +# Intra luma quantization deadzone (integer) +#sout-x26410b-deadzone-intra=11 + +# Non-deterministic optimizations when threaded (boolean) +#sout-x26410b-non-deterministic=0 + +# CPU optimizations (boolean) +#sout-x26410b-asm=1 + +# PSNR computation (boolean) +#sout-x26410b-psnr=0 + +# SSIM computation (boolean) +#sout-x26410b-ssim=0 + +# Quiet mode (boolean) +#sout-x26410b-quiet=0 + +# SPS and PPS id numbers (integer) +#sout-x26410b-sps-id=0 + +# Access unit delimiters (boolean) +#sout-x26410b-aud=0 + +# Statistics (boolean) +#sout-x26410b-verbose=0 + +# Filename for 2 pass stats file (string) +#sout-x26410b-stats=x264_2pass.log + +# Default preset setting used (string) +#sout-x26410b-preset= + +# Default tune setting used (string) +#sout-x26410b-tune= + +# x264 advanced options (string) +#sout-x26410b-options= + +[vpx] # WebM video decoder + +# Quality mode (integer) +#sout-vpx-quality-mode=1000000 + +[vorbis] # Vorbis audio decoder + +# Encoding quality (integer) +#sout-vorbis-quality=0 + +# Maximum encoding bitrate (integer) +#sout-vorbis-max-bitrate=0 + +# Minimum encoding bitrate (integer) +#sout-vorbis-min-bitrate=0 + +# CBR encoding (boolean) +#sout-vorbis-cbr=0 + +[twolame] # Libtwolame audio encoder + +# Encoding quality (float) +#sout-twolame-quality=0.000000 + +# Stereo mode (integer) +#sout-twolame-mode=0 + +# VBR mode (boolean) +#sout-twolame-vbr=0 + +# Psycho-acoustic model (integer) +#sout-twolame-psy=3 + +[ttml] # TTML subtitles decoder + +# Subtitle justification (integer) +#ttml-align=0 + +[theora] # Theora video decoder + +# Post processing quality (integer) +#theora-postproc=-1 + +# Encoding quality (integer) +#sout-theora-quality=2 + +[telx] # Teletext subtitles decoder + +# Override page (integer) +#telx-override-page=-1 + +# Ignore subtitle flag (boolean) +#telx-ignore-subtitle-flag=0 + +# Workaround for France (boolean) +#telx-french-workaround=0 + +[svgdec] # SVG video decoder + +# Image width (integer) +#svg-width=-1 + +# Image height (integer) +#svg-height=-1 + +# Scale factor (float) +#svg-scale=-1.000000 + +[svcdsub] # Philips OGT (SVCD subtitle) decoder + +[subsusf] # USF subtitles decoder + +# Formatted Subtitles (boolean) +#subsdec-formatted=1 + +[subsdec] # Text subtitle decoder + +# Subtitle justification (integer) +#subsdec-align=-1 + +# Subtitle text encoding (string) +#subsdec-encoding= + +# UTF-8 subtitle autodetection (boolean) +#subsdec-autodetect-utf8=1 + +[spudec] # DVD subtitles decoder + +# Disable DVD subtitle transparency (boolean) +#dvdsub-transparency=0 + +[speex] # Speex audio decoder + +# Mode (integer) +#sout-speex-mode=0 + +# Encoding complexity (integer) +#sout-speex-complexity=3 + +# CBR encoding (boolean) +#sout-speex-cbr=0 + +# Encoding quality (float) +#sout-speex-quality=8.000000 + +# Maximal bitrate (integer) +#sout-speex-max-bitrate=0 + +# Voice activity detection (boolean) +#sout-speex-vad=1 + +# Discontinuous Transmission (boolean) +#sout-speex-dtx=0 + +[qsv] # Intel QuickSync Video encoder for MPEG4-Part10/MPEG2 (aka H.264/H.262) + +# Enable software mode (boolean) +#sout-qsv-software=0 + +# Codec Profile (string) +#sout-qsv-h264-profile=unspecified + +# Codec Level (string) +#sout-qsv-h264-level=unspecified + +# Codec Profile (string) +#sout-qsv-mpeg2-profile=unspecified + +# Codec Level (string) +#sout-qsv-mpeg2-level=unspecified + +# Group of Picture size (integer) +#sout-qsv-gop-size=32 + +# Group of Picture Reference Distance (integer) +#sout-qsv-gop-refdist=4 + +# IDR interval (integer) +#sout-qsv-idr-interval=0 + +# Target Usage (string) +#sout-qsv-target-usage=quality + +# Rate Control Method (string) +#sout-qsv-rc-method=vbr + +# Quantization parameter (integer) +#sout-qsv-qp=0 + +# Quantization parameter for I-frames (integer) +#sout-qsv-qpi=0 + +# Quantization parameter for P-frames (integer) +#sout-qsv-qpp=0 + +# Quantization parameter for B-frames (integer) +#sout-qsv-qpb=0 + +# Maximum Bitrate (integer) +#sout-qsv-bitrate-max=0 + +# Accuracy of RateControl (integer) +#sout-qsv-accuracy=0 + +# Convergence time of 'avbr' RateControl (integer) +#sout-qsv-convergence=0 + +# Number of slices per frame (integer) +#sout-qsv-num-slice=0 + +# Number of reference frames (integer) +#sout-qsv-num-ref-frame=0 + +# Number of parallel operations (integer) +#sout-qsv-async-depth=4 + +[libass] # Subtitle renderers using libass + +# Additional fonts directory (string) +#ssa-fontsdir= + +[jpeg] # JPEG image decoder + +# Quality level (integer) +#sout-jpeg-quality=95 + +[gstdecode] # GStreamer Based Decoder + +# Use DecodeBin (boolean) +#use-decodebin=1 + +[dvbsub] # DVB subtitles decoder + +# Subpicture position (integer) +#dvbsub-position=8 + +# Decoding X coordinate (integer) +#dvbsub-x=-1 + +# Decoding Y coordinate (integer) +#dvbsub-y=-1 + +# Encoding X coordinate (integer) +#sout-dvbsub-x=-1 + +# Encoding Y coordinate (integer) +#sout-dvbsub-y=-1 + +[ddummy] # Dummy decoder + +# Save raw codec data (boolean) +#dummy-save-es=0 + +[dca] # DTS Coherent Acoustics audio decoder + +# DTS dynamic range compression (boolean) +#dts-dynrng=1 + +[dav1d] # Dav1d video decoder + +# Frames Threads (integer) +#dav1d-thread-frames=0 + +[cc] # Closed Captions decoder + +# Opacity (boolean) +#cc-opaque=1 + +[avcodec] # FFmpeg audio/video decoder + +# Direct rendering (boolean) +#avcodec-dr=1 + +# Show corrupted frames (boolean) +#avcodec-corrupted=1 + +# Error resilience (integer) +#avcodec-error-resilience=1 + +# Workaround bugs (integer) +#avcodec-workaround-bugs=1 + +# Hurry up (boolean) +#avcodec-hurry-up=1 + +# Skip frame (default=0) (integer) +#avcodec-skip-frame=0 + +# Skip idct (default=0) (integer) +#avcodec-skip-idct=0 + +# Allow speed tricks (boolean) +#avcodec-fast=0 + +# Skip the loop filter for H.264 decoding (integer) +#avcodec-skiploopfilter=0 + +# Debug mask (integer) +#avcodec-debug=0 + +# Codec name (string) +#avcodec-codec= + +# Hardware decoding (string) +#avcodec-hw=any + +# Threads (integer) +#avcodec-threads=0 + +# Advanced options (string) +#avcodec-options= + +# Codec name (string) +#sout-avcodec-codec= + +# Quality level (string) +#sout-avcodec-hq=rd + +# Ratio of key frames (integer) +#sout-avcodec-keyint=0 + +# Ratio of B frames (integer) +#sout-avcodec-bframes=0 + +# Hurry up (boolean) +#sout-avcodec-hurry-up=0 + +# Interlaced encoding (boolean) +#sout-avcodec-interlace=0 + +# Interlaced motion estimation (boolean) +#sout-avcodec-interlace-me=1 + +# Video bitrate tolerance (integer) +#sout-avcodec-vt=0 + +# Pre-motion estimation (boolean) +#sout-avcodec-pre-me=0 + +# Rate control buffer size (integer) +#sout-avcodec-rc-buffer-size=0 + +# Rate control buffer aggressiveness (float) +#sout-avcodec-rc-buffer-aggressivity=1.000000 + +# I quantization factor (float) +#sout-avcodec-i-quant-factor=0.000000 + +# Noise reduction (integer) +#sout-avcodec-noise-reduction=0 + +# MPEG4 quantization matrix (boolean) +#sout-avcodec-mpeg4-matrix=0 + +# Minimum video quantizer scale (integer) +#sout-avcodec-qmin=0 + +# Maximum video quantizer scale (integer) +#sout-avcodec-qmax=0 + +# Trellis quantization (boolean) +#sout-avcodec-trellis=0 + +# Fixed quantizer scale (float) +#sout-avcodec-qscale=3.000000 + +# Strict standard compliance (integer) +#sout-avcodec-strict=0 + +# Luminance masking (float) +#sout-avcodec-lumi-masking=0.000000 + +# Darkness masking (float) +#sout-avcodec-dark-masking=0.000000 + +# Motion masking (float) +#sout-avcodec-p-masking=0.000000 + +# Border masking (float) +#sout-avcodec-border-masking=0.000000 + +# Luminance elimination (integer) +#sout-avcodec-luma-elim-threshold=0 + +# Chrominance elimination (integer) +#sout-avcodec-chroma-elim-threshold=0 + +# Specify AAC audio profile to use (string) +#sout-avcodec-aac-profile=low + +# Advanced options (string) +#sout-avcodec-options= + +[aribsub] # ARIB subtitles decoder + +# Ignore ruby (furigana) (boolean) +#aribsub-ignore-ruby=0 + +# Use Core Text renderer (boolean) +#aribsub-use-coretext=0 + +[a52] # ATSC A/52 (AC-3) audio decoder + +# A/52 dynamic range compression (boolean) +#a52-dynrng=1 + +[jack] # JACK audio output + +# Automatically connect to writable clients (boolean) +#jack-auto-connect=1 + +# Connect to clients matching (string) +#jack-connect-regex=system + +# JACK client name (string) +#jack-name= + +# Software gain (float) +#jack-gain=1.000000 + +[amem] # Audio memory output + +# Sample format (string) +#amem-format=S16N + +# Sample rate (integer) +#amem-rate=44100 + +# Channels count (integer) +#amem-channels=2 + +[alsa] # ALSA audio output + +# Audio output device (string) +#alsa-audio-device=default + +# Audio output channels (integer) +#alsa-audio-channels=6 + +# Software gain (float) +#alsa-gain=1.000000 + +[afile] # File audio output + +# Output file (string) +#audiofile-file=audiofile.wav + +# Output format (string) +#audiofile-format=s16 + +# Number of output channels (integer) +#audiofile-channels=0 + +# Add WAVE header (boolean) +#audiofile-wav=1 + +[stereo_widen] # Simple stereo widening effect + +# Delay time (float) +#stereowiden-delay=20.000000 + +# Feedback gain (float) +#stereowiden-feedback=0.300000 + +# Crossfeed (float) +#stereowiden-crossfeed=0.300000 + +# Dry mix (float) +#stereowiden-dry-mix=0.800000 + +[speex_resampler] # Speex resampler + +# Resampling quality (integer) +#speex-resampler-quality=4 + +[spatializer] # Audio Spatializer + +# Room size (float) +#spatializer-roomsize=0.850000 + +# Room width (float) +#spatializer-width=1.000000 + +# Wet (float) +#spatializer-wet=0.400000 + +# Dry (float) +#spatializer-dry=0.500000 + +# Damp (float) +#spatializer-damp=0.500000 + +[soxr] # soxr + +# Resampling quality (integer) +#soxr-resampler-quality=2 + +[scaletempo] # Audio tempo scaler synched with rate + +# Stride Length (integer) +#scaletempo-stride=30 + +# Overlap Length (float) +#scaletempo-overlap=0.200000 + +# Search Length (integer) +#scaletempo-search=14 + +[scaletempo_pitch] # Pitch Shifter + +# Stride Length (integer) +#scaletempo-stride=30 + +# Overlap Length (float) +#scaletempo-overlap=0.200000 + +# Search Length (integer) +#scaletempo-search=14 + +# Pitch Shift (float) +#pitch-shift=0.000000 + +[samplerate] # Secret Rabbit Code (libsamplerate) resampler + +# Sample rate converter type (integer) +#src-converter-type=2 + +[remap] # Audio channel remapper + +# Left (integer) +#aout-remap-channel-left=0 + +# Center (integer) +#aout-remap-channel-center=1 + +# Right (integer) +#aout-remap-channel-right=2 + +# Rear left (integer) +#aout-remap-channel-rearleft=3 + +# Rear center (integer) +#aout-remap-channel-rearcenter=4 + +# Rear right (integer) +#aout-remap-channel-rearright=5 + +# Side left (integer) +#aout-remap-channel-middleleft=6 + +# Side right (integer) +#aout-remap-channel-middleright=7 + +# Low-frequency effects (integer) +#aout-remap-channel-lfe=8 + +# Normalize channels (boolean) +#aout-remap-normalize=1 + +[param_eq] # Parametric Equalizer + +# Low freq (Hz) (float) +#param-eq-lowf=100.000000 + +# Low freq gain (dB) (float) +#param-eq-lowgain=0.000000 + +# High freq (Hz) (float) +#param-eq-highf=10000.000000 + +# High freq gain (dB) (float) +#param-eq-highgain=0.000000 + +# Freq 1 (Hz) (float) +#param-eq-f1=300.000000 + +# Freq 1 gain (dB) (float) +#param-eq-gain1=0.000000 + +# Freq 1 Q (float) +#param-eq-q1=3.000000 + +# Freq 2 (Hz) (float) +#param-eq-f2=1000.000000 + +# Freq 2 gain (dB) (float) +#param-eq-gain2=0.000000 + +# Freq 2 Q (float) +#param-eq-q2=3.000000 + +# Freq 3 (Hz) (float) +#param-eq-f3=3000.000000 + +# Freq 3 gain (dB) (float) +#param-eq-gain3=0.000000 + +# Freq 3 Q (float) +#param-eq-q3=3.000000 + +[normvol] # Volume normalizer + +# Number of audio buffers (integer) +#norm-buff-size=20 + +# Maximal volume level (float) +#norm-max-level=2.000000 + +[mono] # Stereo to mono downmixer + +# Use downmix algorithm (boolean) +#sout-mono-downmix=1 + +# Select channel to keep (integer) +#sout-mono-channel=-1 + +[headphone] # Headphone virtual spatialization effect + +# Characteristic dimension (integer) +#headphone-dim=10 + +# Compensate delay (boolean) +#headphone-compensate=0 + +# No decoding of Dolby Surround (boolean) +#headphone-dolby=0 + +[gain] # Gain control filter + +# Gain multiplier (float) +#gain-value=1.000000 + +[equalizer] # Equalizer with 10 bands + +# Equalizer preset (string) +#equalizer-preset=flat + +# Bands gain (string) +#equalizer-bands= + +# Two pass (boolean) +#equalizer-2pass=0 + +# Use VLC frequency bands (boolean) +#equalizer-vlcfreqs=1 + +# Global gain (float) +#equalizer-preamp=12.000000 + +[compressor] # Dynamic range compressor + +# RMS/peak (float) +#compressor-rms-peak=0.200000 + +# Attack time (float) +#compressor-attack=25.000000 + +# Release time (float) +#compressor-release=100.000000 + +# Threshold level (float) +#compressor-threshold=-11.000000 + +# Ratio (float) +#compressor-ratio=4.000000 + +# Knee radius (float) +#compressor-knee=5.000000 + +# Makeup gain (float) +#compressor-makeup-gain=7.000000 + +[chorus_flanger] # Sound Delay + +# Delay time (float) +#delay-time=20.000000 + +# Sweep Depth (float) +#sweep-depth=6.000000 + +# Sweep Rate (float) +#sweep-rate=6.000000 + +# Feedback gain (float) +#feedback-gain=0.500000 + +# Wet mix (float) +#wet-mix=0.400000 + +# Dry Mix (float) +#dry-mix=0.400000 + +[audiobargraph_a] # Audio part of the BarGraph function + +# Defines if BarGraph information should be sent (integer) +#audiobargraph_a-bargraph=1 + +# Sends the barGraph information every n audio packets (integer) +#audiobargraph_a-bargraph_repetition=4 + +# Defines if silence alarm information should be sent (integer) +#audiobargraph_a-silence=1 + +# Time window to use in ms (integer) +#audiobargraph_a-time_window=5000 + +# Minimum Audio level to raise the alarm (float) +#audiobargraph_a-alarm_threshold=0.020000 + +# Time between two alarm messages in ms (integer) +#audiobargraph_a-repetition_time=2000 + +[udp] # UDP stream output + +# Caching value (ms) (integer) +#sout-udp-caching=300 + +# Group packets (integer) +#sout-udp-group=1 + +[access_output_srt] # SRT stream output + +# Return poll wait after timeout milliseconds (-1 = infinite) (integer) +#poll-timeout=-1 + +# SRT latency (ms) (integer) +#latency=120 + +# Password for stream encryption (string) +#passphrase= + +# SRT maximum payload size (bytes) (integer) +#payload-size=1316 + +# SRT maximum bandwidth ceiling (bytes) (integer) +#bandwidth-overhead-limit=25 + +# Crypto key length in bytes (integer) +#key-length=16 + +# SRT Stream ID (string) +#streamid= + +[access_output_shout] # IceCAST output + +# Stream name (string) +#sout-shout-name=VLC media player - Live stream + +# Stream description (string) +#sout-shout-description=Live stream from VLC media player + +# Stream MP3 (boolean) +#sout-shout-mp3=0 + +# Genre description (string) +#sout-shout-genre=Alternative + +# URL description (string) +#sout-shout-url=http://www.videolan.org/vlc + +# Bitrate (string) +#sout-shout-bitrate= + +# Samplerate (string) +#sout-shout-samplerate= + +# Number of channels (string) +#sout-shout-channels= + +# Ogg Vorbis Quality (string) +#sout-shout-quality= + +# Stream public (boolean) +#sout-shout-public=0 + +[access_output_rist] # RIST stream output + +# RIST target packet size (bytes) (integer) +#sout-rist-packet-size=1328 + +# RIST data output caching size (ms) (integer) +#sout-rist-caching=50 + +# RIST retry-buffer queue size (ms) (integer) +#sout-rist-buffer-size=0 + +# SSRC used in RTP output (default is random, i.e. 0) (integer) +#sout-rist-ssrc=0 + +# Stream name (string) +#sout-rist-stream-name= + +[http] # HTTP stream output + +# Username (string) +#sout-http-user= + +# Password (string) +#sout-http-pwd= + +# Mime (string) +#sout-http-mime= + +# Metacube (boolean) +#sout-http-metacube=0 + +[file] # File stream output + +# Overwrite existing file (boolean) +#sout-file-overwrite=1 + +# Append to file (boolean) +#sout-file-append=0 + +# Format time and date (boolean) +#sout-file-format=0 + +# Synchronous writing (boolean) +#sout-file-sync=0 + +[xcb_screen] # Screen capture (with X11/XCB) + +# Frame rate (float) +#screen-fps=2.000000 + +# Region left column (integer) +#screen-left=0 + +# Region top row (integer) +#screen-top=0 + +# Capture region width (integer) +#screen-width=0 + +# Capture region height (integer) +#screen-height=0 + +# Follow the mouse (boolean) +#screen-follow-mouse=0 + +[vdr] # VDR recordings + +# Chapter offset in ms (integer) +#vdr-chapter-offset=0 + +# Frame rate (float) +#vdr-fps=25.000000 + +[v4l2] # Video4Linux input + +# Video capture device (string) +#v4l2-dev=/dev/video0 + +# VBI capture device (string) +#v4l2-vbidev= + +# Standard (string) +#v4l2-standard= + +# Video input chroma format (string) +#v4l2-chroma= + +# Input (integer) +#v4l2-input=0 + +# Audio input (integer) +#v4l2-audio-input=-1 + +# Width (integer) +#v4l2-width=0 + +# Height (integer) +#v4l2-height=0 + +# Picture aspect-ratio n:m (string) +#v4l2-aspect-ratio=4:3 + +# Frame rate (string) +#v4l2-fps=60 + +# Radio device (string) +#v4l2-radio-dev=/dev/radio0 + +# Frequency (integer) +#v4l2-tuner-frequency=-1 + +# Audio mode (integer) +#v4l2-tuner-audio-mode=3 + +# Reset controls (boolean) +#v4l2-controls-reset=0 + +# Brightness (integer) +#v4l2-brightness=-1 + +# Automatic brightness (integer) +#v4l2-brightness-auto=-1 + +# Contrast (integer) +#v4l2-contrast=-1 + +# Saturation (integer) +#v4l2-saturation=-1 + +# Hue (integer) +#v4l2-hue=-1 + +# Automatic hue (integer) +#v4l2-hue-auto=-1 + +# White balance temperature (K) (integer) +#v4l2-white-balance-temperature=-1 + +# Automatic white balance (integer) +#v4l2-auto-white-balance=-1 + +# Red balance (integer) +#v4l2-red-balance=-1 + +# Blue balance (integer) +#v4l2-blue-balance=-1 + +# Gamma (integer) +#v4l2-gamma=-1 + +# Automatic gain (integer) +#v4l2-autogain=-1 + +# Gain (integer) +#v4l2-gain=-1 + +# Sharpness (integer) +#v4l2-sharpness=-1 + +# Chroma gain (integer) +#v4l2-chroma-gain=-1 + +# Automatic chroma gain (integer) +#v4l2-chroma-gain-auto=-1 + +# Power line frequency (integer) +#v4l2-power-line-frequency=-1 + +# Backlight compensation (integer) +#v4l2-backlight-compensation=-1 + +# Band-stop filter (integer) +#v4l2-band-stop-filter=-1 + +# Horizontal flip (boolean) +#v4l2-hflip=0 + +# Vertical flip (boolean) +#v4l2-vflip=0 + +# Rotate (degrees) (integer) +#v4l2-rotate=-1 + +# Color killer (integer) +#v4l2-color-killer=-1 + +# Color effect (integer) +#v4l2-color-effect=-1 + +# Audio volume (integer) +#v4l2-audio-volume=-1 + +# Audio balance (integer) +#v4l2-audio-balance=-1 + +# Mute (boolean) +#v4l2-audio-mute=0 + +# Bass level (integer) +#v4l2-audio-bass=-1 + +# Treble level (integer) +#v4l2-audio-treble=-1 + +# Loudness mode (boolean) +#v4l2-audio-loudness=0 + +# v4l2 driver controls (string) +#v4l2-set-ctrls= + +[udp] # UDP input + +# UDP Source timeout (sec) (integer) +#udp-timeout=-1 + +[timecode] # Time code subpicture elementary stream generator + +# Frame rate (string) +#timecode-fps=25/1 + +[shm] # Shared memory framebuffer + +# Frame rate (float) +#shm-fps=10.000000 + +# Frame buffer depth (integer) +#shm-depth=0 + +# Frame buffer width (integer) +#shm-width=800 + +# Frame buffer height (integer) +#shm-height=480 + +[sftp] # SFTP input + +# SFTP port (integer) +#sftp-port=22 + +# Username (string) +#sftp-user= + +# Password (string) +#sftp-pwd= + +[satip] # SAT>IP Receiver Plugin + +# Receive buffer (integer) +#satip-buffer=4194304 + +# Request multicast stream (boolean) +#satip-multicast=0 + +# Host (string) +#satip-host= + +[rtp] # Real-Time Protocol (RTP) input + +# RTCP (local) port (integer) +#rtcp-port=0 + +# Maximum RTP sources (integer) +#rtp-max-src=1 + +# RTP source timeout (sec) (integer) +#rtp-timeout=5 + +# Maximum RTP sequence number dropout (integer) +#rtp-max-dropout=3000 + +# Maximum RTP sequence number misordering (integer) +#rtp-max-misorder=100 + +# RTP payload format assumed for dynamic payloads (string) +#rtp-dynamic-pt= + +[rist] # RIST input + +# RIST maximum packet size (bytes) (integer) +#packet-size=1472 + +# RIST demux/decode maximum jitter (default is 5ms) (integer) +#maximum-jitter=5 + +# RIST latency (ms) (integer) +#latency=1000 + +# RIST nack retry interval (ms) (integer) +#retry-interval=132 + +# RIST reorder buffer (ms) (integer) +#reorder-buffer=70 + +# RIST maximum retry count (integer) +#max-retries=10 + +# RIST nack type, 0 = range, 1 = bitmask. Default is range (integer) +#nack-type=0 + +# Disable NACK output packets (boolean) +#disable-nacks=0 + +# Do not check for a valid rtcp message from the encoder (boolean) +#mcast-blind-nacks=0 + +[nfs] # NFS input + +# Set NFS uid/guid automatically (boolean) +#nfs-auto-guid=1 + +[linsys_sdi] # SDI Input + +# Link # (integer) +#linsys-sdi-link=0 + +# Video ID (integer) +#linsys-sdi-id-video=0 + +# Aspect ratio (string) +#linsys-sdi-aspect-ratio= + +# Audio configuration (string) +#linsys-sdi-audio=0=1,1 + +# Teletext configuration (string) +#linsys-sdi-telx= + +# Teletext language (string) +#linsys-sdi-telx-lang= + +[linsys_hdsdi] # HD-SDI Input + +# Link # (integer) +#linsys-hdsdi-link=0 + +# Video ID (integer) +#linsys-hdsdi-id-video=0 + +# Aspect ratio (string) +#linsys-hdsdi-aspect-ratio= + +# Audio configuration (string) +#linsys-hdsdi-audio=0=1,1 + +[libbluray] # Blu-ray Disc support (libbluray) + +# Blu-ray menus (boolean) +#bluray-menu=1 + +# Region code (string) +#bluray-region=B + +[access] # HTTPS input + +# Cookies forwarding (boolean) +#http-forward-cookies=1 + +# User agent (string) +#http-user-agent= + +[http] # HTTP input + +# Auto re-connect (boolean) +#http-reconnect=0 + +[ftp] # FTP input + +# Username (string) +#ftp-user= + +# Password (string) +#ftp-pwd= + +# FTP account (string) +#ftp-account=anonymous + +[filesystem] # File input + +# List special files (boolean) +#list-special-files=0 + +[dvdread] # DVDRead Input (no menu support) + +# DVD angle (integer) +#dvdread-angle=1 + +[dvdnav] # DVDnav Input + +# DVD angle (integer) +#dvdnav-angle=1 + +# Start directly in menu (boolean) +#dvdnav-menu=1 + +[dvb] # DVB input with v4l2 support + +# Probe DVB card for capabilities (boolean) +#dvb-probe=1 + +# Satellite scanning config (string) +#dvb-satellite= + +# Scan tuning list (string) +#dvb-scanlist= + +# Use NIT for scanning services (boolean) +#dvb-scan-nit=1 + +[dtv] # Digital Television and Radio + +# DVB adapter (integer) +#dvb-adapter=0 + +# DVB device (integer) +#dvb-device=0 + +# Do not demultiplex (boolean) +#dvb-budget-mode=0 + +# Frequency (Hz) (integer) +#dvb-frequency=0 + +# Spectrum inversion (integer) +#dvb-inversion=-1 + +# Bandwidth (MHz) (integer) +#dvb-bandwidth=0 + +# Transmission mode (integer) +#dvb-transmission=0 + +# Guard interval (string) +#dvb-guard= + +# High-priority code rate (string) +#dvb-code-rate-hp= + +# Low-priority code rate (string) +#dvb-code-rate-lp= + +# Hierarchy mode (integer) +#dvb-hierarchy=-1 + +# DVB-T2 Physical Layer Pipe (integer) +#dvb-plp-id=0 + +# Layer A modulation (string) +#dvb-a-modulation= + +# Layer A code rate (string) +#dvb-a-fec= + +# Layer A segments count (integer) +#dvb-a-count=0 + +# Layer A time interleaving (integer) +#dvb-a-interleaving=0 + +# Layer B modulation (string) +#dvb-b-modulation= + +# Layer B code rate (string) +#dvb-b-fec= + +# Layer B segments count (integer) +#dvb-b-count=0 + +# Layer B time interleaving (integer) +#dvb-b-interleaving=0 + +# Layer C modulation (string) +#dvb-c-modulation= + +# Layer C code rate (string) +#dvb-c-fec= + +# Layer C segments count (integer) +#dvb-c-count=0 + +# Layer C time interleaving (integer) +#dvb-c-interleaving=0 + +# Modulation / Constellation (string) +#dvb-modulation= + +# Symbol rate (bauds) (integer) +#dvb-srate=0 + +# FEC code rate (string) +#dvb-fec= + +# Stream identifier (integer) +#dvb-stream=0 + +# Pilot (integer) +#dvb-pilot=-1 + +# Roll-off factor (integer) +#dvb-rolloff=-1 + +# Transport stream ID (integer) +#dvb-ts-id=0 + +# Polarization (Voltage) (string) +#dvb-polarization= + +# (integer) +#dvb-voltage=13 + +# High LNB voltage (boolean) +#dvb-high-voltage=0 + +# Local oscillator low frequency (kHz) (integer) +#dvb-lnb-low=0 + +# Local oscillator high frequency (kHz) (integer) +#dvb-lnb-high=0 + +# Universal LNB switch frequency (kHz) (integer) +#dvb-lnb-switch=11700000 + +# DiSEqC LNB number (integer) +#dvb-satno=0 + +# Uncommitted DiSEqC LNB number (integer) +#dvb-uncommitted=0 + +# Continuous 22kHz tone (integer) +#dvb-tone=-1 + +[cdda] # Audio CD input + +# Audio CD device (string) +#cd-audio=/dev/sr0 + +# Musicbrainz Server (string) +#musicbrainz-server=musicbrainz.org + +[avio] # libavformat AVIO access + +# Advanced options (string) +#avio-options= + +# Advanced options (string) +#sout-avio-options= + +[access_srt] # SRT input + +# Return poll wait after timeout milliseconds (-1 = infinite) (integer) +#poll-timeout=-1 + +# SRT latency (ms) (integer) +#latency=120 + +# Password for stream encryption (string) +#passphrase= + +# Crypto key length in bytes (integer) +#key-length=16 + +# SRT Stream ID (string) +#streamid= + +[access_mms] # Microsoft Media Server (MMS) input + +# TCP/UDP timeout (ms) (integer) +#mms-timeout=5000 + +# Force selection of all streams (boolean) +#mms-all=0 + +# Maximum bitrate (integer) +#mms-maxbitrate=0 + +[access_jack] # JACK audio input + +# Pace (boolean) +#jack-input-use-vlc-pace=0 + +# Auto connection (boolean) +#jack-input-auto-connect=0 + +[imem] # Memory input + +# ID (integer) +#imem-id=-1 + +# Group (integer) +#imem-group=0 + +# Category (integer) +#imem-cat=0 + +# Codec (string) +#imem-codec= + +# Language (string) +#imem-language= + +# Sample rate (integer) +#imem-samplerate=0 + +# Channels count (integer) +#imem-channels=0 + +# Width (integer) +#imem-width=0 + +# Height (integer) +#imem-height=0 + +# Display aspect ratio (string) +#imem-dar= + +# Frame rate (string) +#imem-fps= + +# Size (integer) +#imem-size=0 + +[concat] # Concatenated inputs + +# Inputs list (string) +#concat-list= + +[access_alsa] # ALSA audio capture + +# Stereo (boolean) +#alsa-stereo=1 + +# Sample rate (integer) +#alsa-samplerate=48000 + +[core] # core program + +# Enable audio (boolean) +#audio=1 + +# Audio gain (float) +#gain=1.000000 + +# Audio output volume step (float) +#volume-step=12.800000 + +# Remember the audio volume (boolean) +#volume-save=1 + +# Force S/PDIF support (boolean) +#spdif=0 + +# Force detection of Dolby Surround (integer) +#force-dolby-surround=0 + +# Stereo audio output mode (integer) +#stereo-mode=0 + +# Audio desynchronization compensation (integer) +#audio-desync=0 + +# Replay gain mode (string) +#audio-replay-gain-mode=none + +# Replay preamp (float) +#audio-replay-gain-preamp=0.000000 + +# Default replay gain (float) +#audio-replay-gain-default=-7.000000 + +# Peak protection (boolean) +#audio-replay-gain-peak-protection=1 + +# Enable time stretching audio (boolean) +#audio-time-stretch=1 + +# Audio output module (string) +#aout= + +# Media role (string) +#role=video + +# Audio filters (string) +#audio-filter= + +# Audio visualizations (string) +#audio-visual=none + +# Audio resampler (string) +#audio-resampler= + +# Enable video (boolean) +#video=1 + +# Grayscale video output (boolean) +#grayscale=0 + +# Fullscreen video output (boolean) +#fullscreen=0 + +# Embedded video (boolean) +#embedded-video=1 + +# (boolean) +#xlib=1 + +# Drop late frames (boolean) +#drop-late-frames=1 + +# Skip frames (boolean) +#skip-frames=1 + +# Quiet synchro (boolean) +#quiet-synchro=0 + +# Key press events (boolean) +#keyboard-events=1 + +# Mouse events (boolean) +#mouse-events=1 + +# Always on top (boolean) +#video-on-top=0 + +# Enable wallpaper mode (boolean) +#video-wallpaper=0 + +# Disable screensaver (boolean) +#disable-screensaver=1 + +# Show media title on video (boolean) +#video-title-show=1 + +# Show video title for x milliseconds (integer) +#video-title-timeout=5000 + +# Position of video title (integer) +#video-title-position=8 + +# Hide cursor and fullscreen controller after x milliseconds (integer) +#mouse-hide-timeout=1000 + +# Video snapshot directory (or filename) (string) +#snapshot-path= + +# Video snapshot file prefix (string) +#snapshot-prefix=vlcsnap- + +# Video snapshot format (string) +#snapshot-format=png + +# Display video snapshot preview (boolean) +#snapshot-preview=1 + +# Use sequential numbers instead of timestamps (boolean) +#snapshot-sequential=0 + +# Video snapshot width (integer) +#snapshot-width=-1 + +# Video snapshot height (integer) +#snapshot-height=-1 + +# Video width (integer) +#width=-1 + +# Video height (integer) +#height=-1 + +# Video X coordinate (integer) +#video-x=0 + +# Video Y coordinate (integer) +#video-y=0 + +# Video cropping (string) +#crop= + +# Custom crop ratios list (string) +#custom-crop-ratios= + +# Source aspect ratio (string) +#aspect-ratio= + +# Video Auto Scaling (boolean) +#autoscale=1 + +# Monitor pixel aspect ratio (string) +#monitor-par= + +# Custom aspect ratios list (string) +#custom-aspect-ratios= + +# Fix HDTV height (boolean) +#hdtv-fix=1 + +# Window decorations (boolean) +#video-deco=1 + +# Video title (string) +#video-title= + +# Video alignment (integer) +#align=0 + +# Zoom video (float) +#zoom=1.000000 + +# Deinterlace (integer) +#deinterlace=-1 + +# Deinterlace mode (string) +#deinterlace-mode=auto + +# Video output module (string) +#vout= + +# Video filter module (string) +#video-filter= + +# Video splitter module (string) +#video-splitter= + +# Enable sub-pictures (boolean) +#spu=1 + +# On Screen Display (boolean) +#osd=1 + +# Text rendering module (string) +#text-renderer= + +# Use subtitle file (string) +#sub-file= + +# Autodetect subtitle files (boolean) +#sub-autodetect-file=1 + +# Subtitle autodetection fuzziness (integer) +#sub-autodetect-fuzzy=3 + +# Subtitle autodetection paths (string) +#sub-autodetect-path=./Subtitles, ./subtitles, ./Subs, ./subs + +# Force subtitle position (integer) +#sub-margin=0 + +# Subpictures source module (string) +#sub-source= + +# Subpictures filter module (string) +#sub-filter= + +# Program (integer) +#program=0 + +# Programs (string) +#programs= + +# Audio track (integer) +#audio-track=-1 + +# Subtitle track (integer) +#sub-track=-1 + +# Audio language (string) +#audio-language= + +# Subtitle language (string) +#sub-language= + +# Menu language (string) +#menu-language= + +# Audio track ID (integer) +#audio-track-id=-1 + +# Subtitle track ID (integer) +#sub-track-id=-1 + +# Preferred Closed Captions decoder (integer) +#captions=608 + +# Preferred video resolution (integer) +#preferred-resolution=-1 + +# Input repetitions (integer) +#input-repeat=0 + +# Start time (float) +#start-time=0.000000 + +# Stop time (float) +#stop-time=0.000000 + +# Run time (float) +#run-time=0.000000 + +# Fast seek (boolean) +#input-fast-seek=0 + +# Playback speed (float) +#rate=1.000000 + +# Input list (string) +#input-list= + +# Input slave (experimental) (string) +#input-slave= + +# Bookmarks list for a stream (string) +#bookmarks= + +# DVD device (string) +#dvd=/dev/sr0 + +# VCD device (string) +#vcd=/dev/sr0 + +# MTU of the network interface (integer) +#mtu=1400 + +# TCP connection timeout (integer) +#ipv4-timeout=5000 + +# HTTP server address (string) +#http-host= + +# HTTP server port (integer) +#http-port=8080 + +# HTTPS server port (integer) +#https-port=8443 + +# RTSP server address (string) +#rtsp-host= + +# RTSP server port (integer) +#rtsp-port=554 + +# HTTP/TLS server certificate (string) +#http-cert= + +# HTTP/TLS server private key (string) +#http-key= + +# SOCKS server (string) +#socks= + +# SOCKS user name (string) +#socks-user= + +# SOCKS password (string) +#socks-pwd= + +# Title metadata (string) +#meta-title= + +# Author metadata (string) +#meta-author= + +# Artist metadata (string) +#meta-artist= + +# Genre metadata (string) +#meta-genre= + +# Copyright metadata (string) +#meta-copyright= + +# Description metadata (string) +#meta-description= + +# Date metadata (string) +#meta-date= + +# URL metadata (string) +#meta-url= + +# File caching (ms) (integer) +#file-caching=1000 + +# Live capture caching (ms) (integer) +#live-caching=300 + +# Disc caching (ms) (integer) +#disc-caching=300 + +# Network caching (ms) (integer) +#network-caching=1000 + +# Clock reference average counter (integer) +#cr-average=40 + +# Clock synchronisation (integer) +#clock-synchro=-1 + +# Clock jitter (integer) +#clock-jitter=5000 + +# Network synchronisation (boolean) +#network-synchronisation=0 + +# Record directory (string) +#input-record-path= + +# Prefer native stream recording (boolean) +#input-record-native=1 + +# Timeshift directory (string) +#input-timeshift-path= + +# Timeshift granularity (integer) +#input-timeshift-granularity=-1 + +# Change title according to current media (string) +#input-title-format=$Z + +# Disable all lua plugins (boolean) +#lua=1 + +# Preferred decoders list (string) +#codec= + +# Preferred encoders list (string) +#encoder= + +# Access module (string) +#access= + +# Demux module (string) +#demux=any + +# Stream filter module (string) +#stream-filter= + +# Demux filter module (string) +#demux-filter= + +# Default stream output chain (string) +#sout= + +# Display while streaming (boolean) +#sout-display=0 + +# Keep stream output open (boolean) +#sout-keep=0 + +# Enable streaming of all ES (boolean) +#sout-all=1 + +# Enable audio stream output (boolean) +#sout-audio=1 + +# Enable video stream output (boolean) +#sout-video=1 + +# Enable SPU stream output (boolean) +#sout-spu=1 + +# Stream output muxer caching (ms) (integer) +#sout-mux-caching=1500 + +# VLM configuration file (string) +#vlm-conf= + +# SAP announcement interval (integer) +#sap-interval=5 + +# Mux module (string) +#mux= + +# Access output module (string) +#access_output= + +# Hop limit (TTL) (integer) +#ttl=-1 + +# Multicast output interface (string) +#miface= + +# DiffServ Code Point (integer) +#dscp=0 + +# Preferred packetizer list (string) +#packetizer= + +# VoD server module (string) +#vod-server= + +# Use a plugins cache (boolean) +#plugins-cache=1 + +# Scan for new plugins (boolean) +#plugins-scan=1 + +# Preferred keystore list (string) +#keystore= + +# Allow real-time priority (boolean) +#rt-priority=0 + +# Adjust VLC priority (integer) +#rt-offset=0 + +# Play files randomly forever (boolean) +#random=0 + +# Repeat all (boolean) +#loop=0 + +# Repeat current item (boolean) +#repeat=0 + +# Play and exit (boolean) +#play-and-exit=0 + +# Play and stop (boolean) +#play-and-stop=0 + +# Play and pause (boolean) +#play-and-pause=0 + +# Start paused (boolean) +#start-paused=0 + +# Auto start (boolean) +#playlist-autostart=1 + +# Pause on audio communication (boolean) +#playlist-cork=1 + +# Allow only one running instance (boolean) +#one-instance=0 + +# Use only one instance when started from file manager (boolean) +#one-instance-when-started-from-file=1 + +# Enqueue items into playlist in one instance mode (boolean) +#playlist-enqueue=0 + +# Expose media player via D-Bus (boolean) +#dbus=0 + +# Use media library (boolean) +#media-library=0 + +# Display playlist tree (boolean) +#playlist-tree=0 + +# Default stream (string) +#open= + +# Automatically preparse items (boolean) +#auto-preparse=1 + +# Preparsing timeout (integer) +#preparse-timeout=5000 + +# Allow metadata network access (boolean) +#metadata-network-access=0 + +# Subdirectory behavior (string) +#recursive=collapse + +# Ignored extensions (string) +#ignore-filetypes=m3u,db,nfo,ini,jpg,jpeg,ljpg,gif,png,pgm,pgmyuv,pbm,pam,tga,bmp,pnm,xpm,xcf,pcx,tif,tiff,lbm,sfv,txt,sub,idx,srt,cue,ssa + +# Show hidden files (boolean) +#show-hiddenfiles=0 + +# Services discovery modules (string) +#services-discovery= + +# Run as daemon process (boolean) +#daemon=0 + +# Write process id to file (string) +#pidfile= + +# Show advanced options (boolean) +#advanced=0 + +# Interface interaction (boolean) +#interact=1 + +# Locally collect statistics (boolean) +#stats=1 + +# Interface module (string) +#intf= + +# Extra interface modules (string) +#extraintf= + +# Control interfaces (string) +#control= + +# Mouse wheel vertical axis control (integer) +#hotkeys-y-wheel-mode=0 + +# Mouse wheel horizontal axis control (integer) +#hotkeys-x-wheel-mode=2 + +# Fullscreen (string) +#global-key-toggle-fullscreen= + +# Fullscreen (string) +#key-toggle-fullscreen=f + +# Exit fullscreen (string) +#global-key-leave-fullscreen= + +# Exit fullscreen (string) +#key-leave-fullscreen=Esc + +# Play/Pause (string) +#global-key-play-pause= + +# Play/Pause (string) +#key-play-pause=Space Media Play Pause + +# Pause only (string) +#global-key-pause= + +# Pause only (string) +#key-pause=Browser Stop + +# Play only (string) +#global-key-play= + +# Play only (string) +#key-play=Browser Refresh + +# Faster (string) +#global-key-faster= + +# Faster (string) +#key-faster=+ + +# Slower (string) +#global-key-slower= + +# Slower (string) +#key-slower=- + +# Normal rate (string) +#global-key-rate-normal= + +# Normal rate (string) +#key-rate-normal== + +# Faster (fine) (string) +#global-key-rate-faster-fine= + +# Faster (fine) (string) +#key-rate-faster-fine=] + +# Slower (fine) (string) +#global-key-rate-slower-fine= + +# Slower (fine) (string) +#key-rate-slower-fine=[ + +# Next (string) +#global-key-next= + +# Next (string) +#key-next=n Media Next Track + +# Previous (string) +#global-key-prev= + +# Previous (string) +#key-prev=p Media Prev Track + +# Stop (string) +#global-key-stop= + +# Stop (string) +#key-stop=s Media Stop + +# Position (string) +#global-key-position= + +# Position (string) +#key-position=t + +# Very short backwards jump (string) +#global-key-jump-extrashort= + +# Very short backwards jump (string) +#key-jump-extrashort=Shift+Left + +# Very short forward jump (string) +#global-key-jump+extrashort= + +# Very short forward jump (string) +#key-jump+extrashort=Shift+Right + +# Short backwards jump (string) +#global-key-jump-short= + +# Short backwards jump (string) +#key-jump-short=Alt+Left + +# Short forward jump (string) +#global-key-jump+short= + +# Short forward jump (string) +#key-jump+short=Alt+Right + +# Medium backwards jump (string) +#global-key-jump-medium= + +# Medium backwards jump (string) +#key-jump-medium=Ctrl+Left + +# Medium forward jump (string) +#global-key-jump+medium= + +# Medium forward jump (string) +#key-jump+medium=Ctrl+Right + +# Long backwards jump (string) +#global-key-jump-long= + +# Long backwards jump (string) +#key-jump-long=Ctrl+Alt+Left + +# Long forward jump (string) +#global-key-jump+long= + +# Long forward jump (string) +#key-jump+long=Ctrl+Alt+Right + +# Next frame (string) +#global-key-frame-next= + +# Next frame (string) +#key-frame-next=e Browser Next + +# Activate (string) +#global-key-nav-activate= + +# Activate (string) +#key-nav-activate=Enter + +# Navigate up (string) +#global-key-nav-up= + +# Navigate up (string) +#key-nav-up=Up + +# Navigate down (string) +#global-key-nav-down= + +# Navigate down (string) +#key-nav-down=Down + +# Navigate left (string) +#global-key-nav-left= + +# Navigate left (string) +#key-nav-left=Left + +# Navigate right (string) +#global-key-nav-right= + +# Navigate right (string) +#key-nav-right=Right + +# Go to the DVD menu (string) +#global-key-disc-menu= + +# Go to the DVD menu (string) +#key-disc-menu=Shift+m + +# Select previous DVD title (string) +#global-key-title-prev= + +# Select previous DVD title (string) +#key-title-prev=Shift+o + +# Select next DVD title (string) +#global-key-title-next= + +# Select next DVD title (string) +#key-title-next=Shift+b + +# Select prev DVD chapter (string) +#global-key-chapter-prev= + +# Select prev DVD chapter (string) +#key-chapter-prev=Shift+p + +# Select next DVD chapter (string) +#global-key-chapter-next= + +# Select next DVD chapter (string) +#key-chapter-next=Shift+n + +# Quit (string) +#global-key-quit= + +# Quit (string) +#key-quit=Ctrl+q + +# Volume up (string) +#global-key-vol-up= + +# Volume up (string) +#key-vol-up=Ctrl+Up Volume Up + +# Volume down (string) +#global-key-vol-down= + +# Volume down (string) +#key-vol-down=Ctrl+Down Volume Down + +# Mute (string) +#global-key-vol-mute= + +# Mute (string) +#key-vol-mute=m Volume Mute + +# Subtitle delay up (string) +#global-key-subdelay-up= + +# Subtitle delay up (string) +#key-subdelay-up=h + +# Subtitle delay down (string) +#global-key-subdelay-down= + +# Subtitle delay down (string) +#key-subdelay-down=g + +# Subtitle sync / bookmark audio timestamp (string) +#global-key-subsync-markaudio= + +# Subtitle sync / bookmark audio timestamp (string) +#key-subsync-markaudio=Shift+h + +# Subtitle sync / bookmark subtitle timestamp (string) +#global-key-subsync-marksub= + +# Subtitle sync / bookmark subtitle timestamp (string) +#key-subsync-marksub=Shift+j + +# Subtitle sync / synchronize audio & subtitle timestamps (string) +#global-key-subsync-apply= + +# Subtitle sync / synchronize audio & subtitle timestamps (string) +#key-subsync-apply=Shift+k + +# Subtitle sync / reset audio & subtitle synchronization (string) +#global-key-subsync-reset= + +# Subtitle sync / reset audio & subtitle synchronization (string) +#key-subsync-reset=Ctrl+Shift+k + +# Subtitle position up (string) +#global-key-subpos-up= + +# Subtitle position up (string) +#key-subpos-up= + +# Subtitle position down (string) +#global-key-subpos-down= + +# Subtitle position down (string) +#key-subpos-down= + +# Audio delay up (string) +#global-key-audiodelay-up= + +# Audio delay up (string) +#key-audiodelay-up=k + +# Audio delay down (string) +#global-key-audiodelay-down= + +# Audio delay down (string) +#key-audiodelay-down=j + +# Cycle audio track (string) +#global-key-audio-track= + +# Cycle audio track (string) +#key-audio-track=b + +# Cycle through audio devices (string) +#global-key-audiodevice-cycle= + +# Cycle through audio devices (string) +#key-audiodevice-cycle=Shift+a + +# Cycle subtitle track in reverse order (string) +#global-key-subtitle-revtrack= + +# Cycle subtitle track in reverse order (string) +#key-subtitle-revtrack=Alt+v + +# Cycle subtitle track (string) +#global-key-subtitle-track= + +# Cycle subtitle track (string) +#key-subtitle-track=v + +# Toggle subtitles (string) +#global-key-subtitle-toggle= + +# Toggle subtitles (string) +#key-subtitle-toggle=Shift+v + +# Cycle next program Service ID (string) +#global-key-program-sid-next= + +# Cycle next program Service ID (string) +#key-program-sid-next=x + +# Cycle previous program Service ID (string) +#global-key-program-sid-prev= + +# Cycle previous program Service ID (string) +#key-program-sid-prev=Shift+x + +# Cycle source aspect ratio (string) +#global-key-aspect-ratio= + +# Cycle source aspect ratio (string) +#key-aspect-ratio=a + +# Cycle video crop (string) +#global-key-crop= + +# Cycle video crop (string) +#key-crop=c + +# Toggle autoscaling (string) +#global-key-toggle-autoscale= + +# Toggle autoscaling (string) +#key-toggle-autoscale=o + +# Increase scale factor (string) +#global-key-incr-scalefactor= + +# Increase scale factor (string) +#key-incr-scalefactor=Alt+o + +# Decrease scale factor (string) +#global-key-decr-scalefactor= + +# Decrease scale factor (string) +#key-decr-scalefactor=Alt+Shift+o + +# Toggle deinterlacing (string) +#global-key-deinterlace= + +# Toggle deinterlacing (string) +#key-deinterlace=d + +# Cycle deinterlace modes (string) +#global-key-deinterlace-mode= + +# Cycle deinterlace modes (string) +#key-deinterlace-mode=Shift+d + +# Show controller in fullscreen (string) +#global-key-intf-show= + +# Show controller in fullscreen (string) +#key-intf-show=i + +# Boss key (string) +#global-key-intf-boss= + +# Boss key (string) +#key-intf-boss= + +# Context menu (string) +#global-key-intf-popup-menu= + +# Context menu (string) +#key-intf-popup-menu=Menu + +# Take video snapshot (string) +#global-key-snapshot= + +# Take video snapshot (string) +#key-snapshot=Shift+s + +# Record (string) +#global-key-record= + +# Record (string) +#key-record=Shift+r + +# Zoom (string) +#global-key-zoom= + +# Zoom (string) +#key-zoom=z + +# Un-Zoom (string) +#global-key-unzoom= + +# Un-Zoom (string) +#key-unzoom=Shift+z + +# Toggle wallpaper mode in video output (string) +#global-key-wallpaper= + +# Toggle wallpaper mode in video output (string) +#key-wallpaper=w + +# Crop one pixel from the top of the video (string) +#global-key-crop-top= + +# Crop one pixel from the top of the video (string) +#key-crop-top=Alt+r + +# Uncrop one pixel from the top of the video (string) +#global-key-uncrop-top= + +# Uncrop one pixel from the top of the video (string) +#key-uncrop-top=Alt+Shift+r + +# Crop one pixel from the left of the video (string) +#global-key-crop-left= + +# Crop one pixel from the left of the video (string) +#key-crop-left=Alt+d + +# Uncrop one pixel from the left of the video (string) +#global-key-uncrop-left= + +# Uncrop one pixel from the left of the video (string) +#key-uncrop-left=Alt+Shift+d + +# Crop one pixel from the bottom of the video (string) +#global-key-crop-bottom= + +# Crop one pixel from the bottom of the video (string) +#key-crop-bottom=Alt+c + +# Uncrop one pixel from the bottom of the video (string) +#global-key-uncrop-bottom= + +# Uncrop one pixel from the bottom of the video (string) +#key-uncrop-bottom=Alt+Shift+c + +# Crop one pixel from the right of the video (string) +#global-key-crop-right= + +# Crop one pixel from the right of the video (string) +#key-crop-right=Alt+f + +# Uncrop one pixel from the right of the video (string) +#global-key-uncrop-right= + +# Uncrop one pixel from the right of the video (string) +#key-uncrop-right=Alt+Shift+f + +# Random (string) +#global-key-random= + +# Random (string) +#key-random=r + +# Normal/Loop/Repeat (string) +#global-key-loop= + +# Normal/Loop/Repeat (string) +#key-loop=l + +# Shrink the viewpoint field of view (360°) (string) +#global-key-viewpoint-fov-in= + +# Shrink the viewpoint field of view (360°) (string) +#key-viewpoint-fov-in=Page Up + +# Expand the viewpoint field of view (360°) (string) +#global-key-viewpoint-fov-out= + +# Expand the viewpoint field of view (360°) (string) +#key-viewpoint-fov-out=Page Down + +# Roll the viewpoint clockwise (360°) (string) +#global-key-viewpoint-roll-clock= + +# Roll the viewpoint clockwise (360°) (string) +#key-viewpoint-roll-clock= + +# Roll the viewpoint anti-clockwise (360°) (string) +#global-key-viewpoint-roll-anticlock= + +# Roll the viewpoint anti-clockwise (360°) (string) +#key-viewpoint-roll-anticlock= + +# 1:4 Quarter (string) +#global-key-zoom-quarter= + +# 1:4 Quarter (string) +#key-zoom-quarter=Alt+1 + +# 1:2 Half (string) +#global-key-zoom-half= + +# 1:2 Half (string) +#key-zoom-half=Alt+2 + +# 1:1 Original (string) +#global-key-zoom-original= + +# 1:1 Original (string) +#key-zoom-original=Alt+3 + +# 2:1 Double (string) +#global-key-zoom-double= + +# 2:1 Double (string) +#key-zoom-double=Alt+4 + +# Very short jump length (integer) +#extrashort-jump-size=3 + +# Short jump length (integer) +#short-jump-size=10 + +# Medium jump length (integer) +#medium-jump-size=60 + +# Long jump length (integer) +#long-jump-size=300 + +# Set playlist bookmark 1 (string) +#global-key-set-bookmark1= + +# Set playlist bookmark 1 (string) +#key-set-bookmark1=Ctrl+F1 + +# Set playlist bookmark 2 (string) +#global-key-set-bookmark2= + +# Set playlist bookmark 2 (string) +#key-set-bookmark2=Ctrl+F2 + +# Set playlist bookmark 3 (string) +#global-key-set-bookmark3= + +# Set playlist bookmark 3 (string) +#key-set-bookmark3=Ctrl+F3 + +# Set playlist bookmark 4 (string) +#global-key-set-bookmark4= + +# Set playlist bookmark 4 (string) +#key-set-bookmark4=Ctrl+F4 + +# Set playlist bookmark 5 (string) +#global-key-set-bookmark5= + +# Set playlist bookmark 5 (string) +#key-set-bookmark5=Ctrl+F5 + +# Set playlist bookmark 6 (string) +#global-key-set-bookmark6= + +# Set playlist bookmark 6 (string) +#key-set-bookmark6=Ctrl+F6 + +# Set playlist bookmark 7 (string) +#global-key-set-bookmark7= + +# Set playlist bookmark 7 (string) +#key-set-bookmark7=Ctrl+F7 + +# Set playlist bookmark 8 (string) +#global-key-set-bookmark8= + +# Set playlist bookmark 8 (string) +#key-set-bookmark8=Ctrl+F8 + +# Set playlist bookmark 9 (string) +#global-key-set-bookmark9= + +# Set playlist bookmark 9 (string) +#key-set-bookmark9=Ctrl+F9 + +# Set playlist bookmark 10 (string) +#global-key-set-bookmark10= + +# Set playlist bookmark 10 (string) +#key-set-bookmark10=Ctrl+F10 + +# Play playlist bookmark 1 (string) +#global-key-play-bookmark1= + +# Play playlist bookmark 1 (string) +#key-play-bookmark1=F1 + +# Play playlist bookmark 2 (string) +#global-key-play-bookmark2= + +# Play playlist bookmark 2 (string) +#key-play-bookmark2=F2 + +# Play playlist bookmark 3 (string) +#global-key-play-bookmark3= + +# Play playlist bookmark 3 (string) +#key-play-bookmark3=F3 + +# Play playlist bookmark 4 (string) +#global-key-play-bookmark4= + +# Play playlist bookmark 4 (string) +#key-play-bookmark4=F4 + +# Play playlist bookmark 5 (string) +#global-key-play-bookmark5= + +# Play playlist bookmark 5 (string) +#key-play-bookmark5=F5 + +# Play playlist bookmark 6 (string) +#global-key-play-bookmark6= + +# Play playlist bookmark 6 (string) +#key-play-bookmark6=F6 + +# Play playlist bookmark 7 (string) +#global-key-play-bookmark7= + +# Play playlist bookmark 7 (string) +#key-play-bookmark7=F7 + +# Play playlist bookmark 8 (string) +#global-key-play-bookmark8= + +# Play playlist bookmark 8 (string) +#key-play-bookmark8=F8 + +# Play playlist bookmark 9 (string) +#global-key-play-bookmark9= + +# Play playlist bookmark 9 (string) +#key-play-bookmark9=F9 + +# Play playlist bookmark 10 (string) +#global-key-play-bookmark10= + +# Play playlist bookmark 10 (string) +#key-play-bookmark10=F10 + +# Clear the playlist (string) +#global-key-clear-playlist= + +# Clear the playlist (string) +#key-clear-playlist=Ctrl+w + +# Reset subtitles text scale (string) +#global-key-subtitle-text-scale-normal= + +# Reset subtitles text scale (string) +#key-subtitle-text-scale-normal=Ctrl+0 + +# Scale down subtitles text (string) +#global-key-subtitle-text-scale-up= + +# Scale down subtitles text (string) +#key-subtitle-text-scale-up=Ctrl+Mouse Wheel Up + +# Scale up subtitles text (string) +#global-key-subtitle-text-scale-down= + +# Scale up subtitles text (string) +#key-subtitle-text-scale-down=Ctrl+Mouse Wheel Down + +# Playlist bookmark 1 (string) +#bookmark1= + +# Playlist bookmark 2 (string) +#bookmark2= + +# Playlist bookmark 3 (string) +#bookmark3= + +# Playlist bookmark 4 (string) +#bookmark4= + +# Playlist bookmark 5 (string) +#bookmark5= + +# Playlist bookmark 6 (string) +#bookmark6= + +# Playlist bookmark 7 (string) +#bookmark7= + +# Playlist bookmark 8 (string) +#bookmark8= + +# Playlist bookmark 9 (string) +#bookmark9= + +# Playlist bookmark 10 (string) +#bookmark10= + -- cgit v1.2.3 From 64d0c1f60e65464aa0be23d454eb389d88ce0756 Mon Sep 17 00:00:00 2001 From: zachir Date: Mon, 23 Oct 2023 00:13:04 -0500 Subject: Update awesome to not use crcparse --- awesome/rc.lua | 113 ++++++++++++--------------------------------------------- 1 file changed, 23 insertions(+), 90 deletions(-) diff --git a/awesome/rc.lua b/awesome/rc.lua index 54d17aa..32bc508 100644 --- a/awesome/rc.lua +++ b/awesome/rc.lua @@ -82,6 +82,9 @@ local inertmode = false local spawnatbottom = false +terminal="kitty" +editor = os.getenv("EDITOR") or "nvim" +editor_cmd = terminal .. " -e " .. editor -- Default modkey. -- Usually, Mod4 is the key with a logo between Control and Alt. @@ -112,18 +115,6 @@ awful.layout.layouts = { -- }}} -- Config function definitions {{{ - -function crcparse(substr) - local file=assert(io.open(config_dir .. "/computerrc","r")) - local line = "" - repeat - line=file:read("*line") - if line and line:find(string.format("^%s=",substr)) then - return string.sub(line,#substr + 2,-1) - end - until not line -end - function terminal_sp_cmd (spc, cmd, geo) if terminal == "st" then cflag = "-c" @@ -158,25 +149,6 @@ end -- }}} --- {{{ crcparse Definitions - --- terminal -terminal="kitty" -editor = os.getenv("EDITOR") or "nvim" -editor_cmd = terminal .. " -e " .. editor - --- is linux -function is_linux () - return crcparse("OS") == "Linux" -end - --- is openbsd -function is_obsd () - return crcparse("OS") == "OpenBSD" -end - --- }}} - --{{{ bling scratchpad definitions --{{{ sphtop local sphtop = bling.module.scratchpad { @@ -430,41 +402,6 @@ awful.screen.connect_for_each_screen(function(s) -- Create the wibox s.mywibox = awful.wibar({ position = "top", screen = s, height = 36}) - if (crcparse("snd") == "pipewire") or (crcparse("snd") == "pulseaudio") or (crcparse("snd") == "pulse") then - snd="pulse" - else - snd="default" - end - - net = crcparse("inet") - - batt = crcparse("batt") - - light = crcparse("bl") - - if batt == "y" then - battery = battery_widget { - font = font, - arc_thickness = 2, - show_current_level = false, - size = 18, - timeout = 10, - main_color = beautiful.fg_color, - bg_color = "#ffffff11", - low_level_color = "#e53935", - medium_level_color = "#c0ca33", - warning_msg_title = "Houston, we have a problem", - warning_msg_text = "Battery is dying", - warning_msg_position = "bottom_right", -- "bottom_right" is default, or top_right, top_left, bottom_left, bottom_right, top_middle, bottom_middle - warning_msg_icon = "~/.config/awesome/awesome-wm-widgets/batteryarc-widget/spaceman.jpg", - enable_battery_warning = true, - show_notification_mode = "on_click", -- "on_hover" is default, or "on_click" or "off" - notification_position = "top_right" -- "top_left is default, or top_right, top_left, bottom_left, bottom_right, top_middle, bottom_middle - } - else - battery = nil - end - -- Add widgets to the wibox ---[[ Uncomment for Linux s.mywibox:setup { @@ -503,7 +440,7 @@ awful.screen.connect_for_each_screen(function(s) }), brightness_widget { type = "arc", - program = light, + program = "light", step = 5, base = 20, path_to_icon = "/usr/share/icons/Paper/scalable/status/display-brightness-symbolic.svg", @@ -515,30 +452,26 @@ awful.screen.connect_for_each_screen(function(s) path_to_icon = "/usr/share/icons/Paper/scalable/status/audio-volume-muted-symbolic.svg", widget_type = "arc", mute_color = "#ff111111", - device = snd, + device = "pulse", }, - battery, - mykeyboardlayout, - wibox.widget.systray(), - mytextclock, - s.mylayoutbox, - }, - } - --]] - --[[ Uncomment for OpenBSD - -- Add widgets to the wibox - s.mywibox:setup { - layout = wibox.layout.align.horizontal, - { -- Left widgets - layout = wibox.layout.fixed.horizontal, - mylauncher, - s.mytaglist, - s.mypromptbox, - }, - s.mytasklist, -- Middle widget - { - layout = wibox.layout.fixed.horizontal, - mpd_widget, + battery = battery_widget { + font = font, + arc_thickness = 2, + show_current_level = false, + size = 18, + timeout = 10, + main_color = beautiful.fg_color, + bg_color = "#ffffff11", + low_level_color = "#e53935", + medium_level_color = "#c0ca33", + warning_msg_title = "Houston, we have a problem", + warning_msg_text = "Battery is dying", + warning_msg_position = "bottom_right", -- "bottom_right" is default, or top_right, top_left, bottom_left, bottom_right, top_middle, bottom_middle + warning_msg_icon = "~/.config/awesome/awesome-wm-widgets/batteryarc-widget/spaceman.jpg", + enable_battery_warning = true, + show_notification_mode = "on_click", -- "on_hover" is default, or "on_click" or "off" + notification_position = "top_right" -- "top_left is default, or top_right, top_left, bottom_left, bottom_right, top_middle, bottom_middle + }, mykeyboardlayout, wibox.widget.systray(), mytextclock, -- cgit v1.2.3 From c599f7ea5d79030fdaae5df120898f5eeaf0559e Mon Sep 17 00:00:00 2001 From: zachir Date: Mon, 23 Oct 2023 00:14:52 -0500 Subject: New addtopath function to fix issues with PATH var --- sh/profile | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/sh/profile b/sh/profile index 79151b9..901c581 100644 --- a/sh/profile +++ b/sh/profile @@ -85,48 +85,56 @@ export SRCDIR="$HOME/.local/src" export SYSPATH="$PATH" # NEW PATH +addtopath () { + if [ -n "$PATH" ]; then + PATH="$@:$PATH" + else + PATH="$@" + fi +} + unset PATH if [ -d "$HOME/.local/bin/testing" ]; then - PATH="$HOME/.local/bin/testing" + addtopath "$HOME/.local/bin/testing" fi if [ -d "$HOME/.local/bin/shortcmds" ]; then - PATH="$PATH:$HOME/.local/bin/shortcmds" + addtopath "$HOME/.local/bin/shortcmds" fi if [ -d "$HOME/.local/bin/generics" ]; then - PATH="$PATH:$HOME/.local/bin/generics" + addtopath "$HOME/.local/bin/generics" fi if [ -d "$HOME/.local/bin/scripts" ]; then - PATH="$PATH:$HOME/.local/bin/scripts" + addtopath "$HOME/.local/bin/scripts" fi if [ -d "$HOME/.local/bin/sp" ]; then - PATH="$PATH:$HOME/.local/bin/sp" + addtopath "$HOME/.local/bin/sp" fi if [ -d "$HOME/.local/bin/blocks" ]; then - PATH="$PATH:$HOME/.local/bin/blocks" + addtopath "$HOME/.local/bin/blocks" fi if [ -d "$HOME/.local/bin/ignore" ]; then - PATH="$PATH:$HOME/.local/bin/ignore" + addtopath "$HOME/.local/bin/ignore" fi if [ -d "$HOME/local/bin/volsv" ]; then - PATH="$PATH:$HOME/.local/volsv" + addtopath "$HOME/.local/volsv" fi if [ -d "$HOME/.local/bin" ]; then - PATH="$PATH:$HOME/.local/bin" + addtopath "$HOME/.local/bin" fi if [ -d "$HOME/.local/bin/flatpak-sc" ]; then - PATH="$PATH:$HOME/.local/bin/flatpak-sc" + addtopath "$HOME/.local/bin/flatpak-sc" fi if [ -d "$HOME/.local/bin/flatpak/exports/bin" ]; then - PATH="$PATH:$HOME/.local/share/flatpak/exports/bin/" + addtopath "$HOME/.local/share/flatpak/exports/bin/" fi if [ -d "$CARGO_HOME/bin" ]; then - PATH="$PATH:$CARGO_HOME/bin" + addtopath "$CARGO_HOME/bin" fi if [ -d "$GOPATH/bin" ]; then - PATH="$PATH:$GOPATH/bin" + addtopath "$GOPATH/bin" fi if [ -d "/var/lib/flatpak/exports/bin" ]; then - PATH="$PATH:/var/lib/flatpak/exports/bin" + addtopath "/var/lib/flatpak/exports/bin" fi # MERGE PATHS -- cgit v1.2.3 From cadac910760bb608f7811ac465b353ebe05b5644 Mon Sep 17 00:00:00 2001 From: zachir Date: Mon, 23 Oct 2023 00:19:23 -0500 Subject: Fix awesome tabs->spaces and set net-widget width --- awesome/rc.lua | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/awesome/rc.lua b/awesome/rc.lua index 32bc508..a77ffa4 100644 --- a/awesome/rc.lua +++ b/awesome/rc.lua @@ -418,6 +418,7 @@ awful.screen.connect_for_each_screen(function(s) mpd_widget, net_speed { font = beautiful.font2, + width = 100, interface = net }, ram_widget({ @@ -454,24 +455,24 @@ awful.screen.connect_for_each_screen(function(s) mute_color = "#ff111111", device = "pulse", }, - battery = battery_widget { - font = font, - arc_thickness = 2, - show_current_level = false, - size = 18, - timeout = 10, - main_color = beautiful.fg_color, - bg_color = "#ffffff11", - low_level_color = "#e53935", - medium_level_color = "#c0ca33", - warning_msg_title = "Houston, we have a problem", - warning_msg_text = "Battery is dying", - warning_msg_position = "bottom_right", -- "bottom_right" is default, or top_right, top_left, bottom_left, bottom_right, top_middle, bottom_middle - warning_msg_icon = "~/.config/awesome/awesome-wm-widgets/batteryarc-widget/spaceman.jpg", - enable_battery_warning = true, - show_notification_mode = "on_click", -- "on_hover" is default, or "on_click" or "off" - notification_position = "top_right" -- "top_left is default, or top_right, top_left, bottom_left, bottom_right, top_middle, bottom_middle - }, + battery = battery_widget { + font = font, + arc_thickness = 2, + show_current_level = false, + size = 18, + timeout = 10, + main_color = beautiful.fg_color, + bg_color = "#ffffff11", + low_level_color = "#e53935", + medium_level_color = "#c0ca33", + warning_msg_title = "Houston, we have a problem", + warning_msg_text = "Battery is dying", + warning_msg_position = "bottom_right", -- "bottom_right" is default, or top_right, top_left, bottom_left, bottom_right, top_middle, bottom_middle + warning_msg_icon = "~/.config/awesome/awesome-wm-widgets/batteryarc-widget/spaceman.jpg", + enable_battery_warning = true, + show_notification_mode = "on_click", -- "on_hover" is default, or "on_click" or "off" + notification_position = "top_right" -- "top_left is default, or top_right, top_left, bottom_left, bottom_right, top_middle, bottom_middle + }, mykeyboardlayout, wibox.widget.systray(), mytextclock, -- cgit v1.2.3 From 42bc82cbd959079f6f3492d03e9c599f161c3652 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 24 Oct 2023 07:53:29 -0500 Subject: Fix battery widget not showing (because I'm dumb) --- awesome/rc.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/awesome/rc.lua b/awesome/rc.lua index a77ffa4..70141cf 100644 --- a/awesome/rc.lua +++ b/awesome/rc.lua @@ -455,7 +455,7 @@ awful.screen.connect_for_each_screen(function(s) mute_color = "#ff111111", device = "pulse", }, - battery = battery_widget { + battery_widget { font = font, arc_thickness = 2, show_current_level = false, -- cgit v1.2.3 From 56ad0cf61acc1d68f0bcb389503fbb39a5eb4a91 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 2 Nov 2023 16:09:35 -0500 Subject: Ignore solaar config --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 22e1103..29c21b6 100644 --- a/.gitignore +++ b/.gitignore @@ -36,6 +36,7 @@ switcher/ straw-viewer/ spotify-tui/ spotifyd/ +solaar/ snownews/urls.opml sh/weather rtorrent/ -- cgit v1.2.3 From afc6de5dfd55256e5b78e126b212a514513f6481 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 2 Nov 2023 16:07:43 -0500 Subject: Use user permission flag for dmount --- sxhkd/sxhkdrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sxhkd/sxhkdrc b/sxhkd/sxhkdrc index 1c10dfe..26e633b 100755 --- a/sxhkd/sxhkdrc +++ b/sxhkd/sxhkdrc @@ -49,7 +49,7 @@ super + alt + u # run dmenu interface for mount super + alt + comma - dmount + dmount -p # run dmenu interface for umount super + alt + period -- cgit v1.2.3 From 4b1cc8a76ff8ee613d18e6b0b3362907e8a33258 Mon Sep 17 00:00:00 2001 From: zachir Date: Sun, 5 Nov 2023 17:20:13 -0600 Subject: Remove old awesome-wm-widgets The upstream might not be maintained, so I'll be maintaining my own version. I'll move back to upstream if I'm mistaken. --- .gitmodules | 3 --- awesome/awesome-wm-widgets | 1 - 2 files changed, 4 deletions(-) delete mode 160000 awesome/awesome-wm-widgets diff --git a/.gitmodules b/.gitmodules index 579657f..99733c8 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,6 +10,3 @@ [submodule "awesome/bling"] path = awesome/bling url = https://github.com/BlingCorp/bling.git -[submodule "awesome/awesome-wm-widgets"] - path = awesome/awesome-wm-widgets - url = https://github.com/streetturtle/awesome-wm-widgets.git diff --git a/awesome/awesome-wm-widgets b/awesome/awesome-wm-widgets deleted file mode 160000 index 4381a89..0000000 --- a/awesome/awesome-wm-widgets +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 4381a89ee06d91278f62bdd3762b3859b8775bf3 -- cgit v1.2.3 From c1626768985083add2760ab34f0787cb3ef4130b Mon Sep 17 00:00:00 2001 From: zachir Date: Sun, 5 Nov 2023 17:21:48 -0600 Subject: Add my awesome-wm-widgets repo I still need the widgets, but I'll be using my own version unless/until the upstream gets updated with some fixes. --- .gitmodules | 3 +++ awesome/awesome-wm-widgets | 1 + 2 files changed, 4 insertions(+) create mode 160000 awesome/awesome-wm-widgets diff --git a/.gitmodules b/.gitmodules index 99733c8..b3d9f09 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,3 +10,6 @@ [submodule "awesome/bling"] path = awesome/bling url = https://github.com/BlingCorp/bling.git +[submodule "awesome/awesome-wm-widgets"] + path = awesome/awesome-wm-widgets + url = https://git.zachir.xyz/awesome-wm-widgets.git diff --git a/awesome/awesome-wm-widgets b/awesome/awesome-wm-widgets new file mode 160000 index 0000000..f067285 --- /dev/null +++ b/awesome/awesome-wm-widgets @@ -0,0 +1 @@ +Subproject commit f0672850764fa8957198b9266d4518ddea45c90f -- cgit v1.2.3 From 8b2425c9cdb2451bdae282654ea368c2655d9bb9 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 7 Nov 2023 09:09:54 -0600 Subject: Use preglow for nvim (my old colorscheme) I'm switching the color scheme for neovim to my old one, preglow (which I forked from the afterglow color scheme). It's purely subjective, but I do like it and intend to stick with it for a while. --- nvim/init.vim | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nvim/init.vim b/nvim/init.vim index 9b952d3..59332e9 100644 --- a/nvim/init.vim +++ b/nvim/init.vim @@ -3,6 +3,7 @@ call plug#begin('~/.config/nvim/plugged') " colorschemes {{{ Plug 'tomasiser/vim-code-dark' " codedark color scheme Plug 'flazz/vim-colorschemes' " meta-color scheme package +Plug 'ZachIndigo/vim-preglow' " my old color scheme " }}} " language support {{{ Plug 'axvr/org.vim' " basic org markup language implementation @@ -43,7 +44,8 @@ set number set relativenumber "colorscheme CandyPaper -colorscheme SlateDark +"colorscheme SlateDark +colorscheme preglow set hlsearch " Highlight all search results set smartcase " Enable smart-case search -- cgit v1.2.3 From 78024fd968c9d0ba2c919c50afb16ce4b335d863 Mon Sep 17 00:00:00 2001 From: zachir Date: Sat, 18 Nov 2023 15:02:34 -0600 Subject: Update awesome-wm-widgets Added an upstream (from me) fix for an error message in mpdarc, because reset_garbage_collector was not initialized in one instance. --- awesome/awesome-wm-widgets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/awesome/awesome-wm-widgets b/awesome/awesome-wm-widgets index f067285..d36ed61 160000 --- a/awesome/awesome-wm-widgets +++ b/awesome/awesome-wm-widgets @@ -1 +1 @@ -Subproject commit f0672850764fa8957198b9266d4518ddea45c90f +Subproject commit d36ed61f905a3b6264cf3e5d583a7895281525e9 -- cgit v1.2.3 From 73ac8f91cea35b9a89a4fc47d9613410aa30bb29 Mon Sep 17 00:00:00 2001 From: zachir Date: Sat, 18 Nov 2023 15:05:14 -0600 Subject: Add binding to hide statusbar --- awesome/rc.lua | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/awesome/rc.lua b/awesome/rc.lua index 70141cf..a5605d1 100644 --- a/awesome/rc.lua +++ b/awesome/rc.lua @@ -643,7 +643,16 @@ globalkeys = gears.table.join( function () awful.tag.incncol(-1, nil, true) end, - {description = "decrease the number of columns", group = "layout"}) + {description = "decrease the number of columns", group = "layout"}), + --]] + + ---[[ Hides the statusbar + awful.key({ modkey, "Shift" }, "b", + function () + myscreen = awful.screen.focused() + myscreen.mywibox.visible = not myscreen.mywibox.visible + end, + { description = "toggle statusbar", group = "awesome" }) --]] --[[ Changes the layout used -- cgit v1.2.3 From f25463aecc783c5802eda6c15ff3cbd26cbaa447 Mon Sep 17 00:00:00 2001 From: zachir Date: Sun, 19 Nov 2023 15:11:32 -0600 Subject: Downstream awesome-wm-widgets net-speed fix Upstream, I fixed a logical error in the net-speed widget presentation, and now I'm adding it here as well. --- awesome/awesome-wm-widgets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/awesome/awesome-wm-widgets b/awesome/awesome-wm-widgets index d36ed61..c7a6cdb 160000 --- a/awesome/awesome-wm-widgets +++ b/awesome/awesome-wm-widgets @@ -1 +1 @@ -Subproject commit d36ed61f905a3b6264cf3e5d583a7895281525e9 +Subproject commit c7a6cdb5c0535aec008e397e89be891734f3917f -- cgit v1.2.3 From 46e9dddabd2237f0ea8cc6cb4fed9e9ed269a03a Mon Sep 17 00:00:00 2001 From: zachir Date: Sun, 19 Nov 2023 15:22:10 -0600 Subject: Improve bit/byte logic in net-speed awesome widget Upstream I added in a bit of logic to be able to use either bits or bytes when calculating net-speed. --- awesome/awesome-wm-widgets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/awesome/awesome-wm-widgets b/awesome/awesome-wm-widgets index c7a6cdb..15f4ff3 160000 --- a/awesome/awesome-wm-widgets +++ b/awesome/awesome-wm-widgets @@ -1 +1 @@ -Subproject commit c7a6cdb5c0535aec008e397e89be891734f3917f +Subproject commit 15f4ff3a389cce34f2134c4b65414b1204a0f43f -- cgit v1.2.3 From 7398ca44ead21f64e9ce2a0f3c2bc5de3d2f103b Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 2 Jan 2024 15:45:51 -0600 Subject: autostart.sh: fix gsettings import These lines were totally borked, because I copied them from a help thing without copying the necessary environment variable. Instead, now I have an import-gsettings script to do that for me. --- autostart.sh | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100755 autostart.sh diff --git a/autostart.sh b/autostart.sh new file mode 100755 index 0000000..f2b53a7 --- /dev/null +++ b/autostart.sh @@ -0,0 +1,33 @@ +#!/bin/sh +runifnot () { + if type $1 >/dev/null; then + echo $1 + if [ -z "$(pgrep -Uzachir -f $1)" ]; then + $@ & + fi + fi +} +killandrun () { + if type $1 >/dev/null; then + echo $1 + if [ -n "$(pgrep -Uzachir -f $1)" ]; then + pkill -Uzachir $1 + fi + $@ & + fi +} + +if [ -n "${WAYLAND_DISPLAY}${DISPLAY}" ]; then + notify-sound.sh off & + runifnot swayidle + killandrun hyprpaper + runifnot waybar + import-gsettings gtk-theme 'Flat-Remix-GTK-Green-Darkest-Solid' + import-gsettings icon-theme 'Mint-X-Grey' + import-gsettings cursor-theme 'Adwaita' + xrdb ~/.Xresources + runifnot portmaster-start --data=/opt/safing/portmaster notifier + runifnot jamesdsp -t +fi + +[ -x "$XDG_CONFIG_HOME/computerrc.sh" ] && "$XDG_CONFIG_HOME/computerrc.sh" -- cgit v1.2.3 From f0d02f9bc6e6021b90f7cd5d3cd2eb9cb8758f31 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 2 Jan 2024 15:47:18 -0600 Subject: autostart.sh: Remove non-generic apps Autostart should not try to start apps that probably aren't installed. (You know what they say about assuming). At least, for the master branch. --- autostart.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/autostart.sh b/autostart.sh index f2b53a7..311953f 100755 --- a/autostart.sh +++ b/autostart.sh @@ -26,8 +26,6 @@ if [ -n "${WAYLAND_DISPLAY}${DISPLAY}" ]; then import-gsettings icon-theme 'Mint-X-Grey' import-gsettings cursor-theme 'Adwaita' xrdb ~/.Xresources - runifnot portmaster-start --data=/opt/safing/portmaster notifier - runifnot jamesdsp -t fi [ -x "$XDG_CONFIG_HOME/computerrc.sh" ] && "$XDG_CONFIG_HOME/computerrc.sh" -- cgit v1.2.3 From d2eb1117491d91ac0bf7e2bbe90d60d000314375 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 2 Jan 2024 15:50:25 -0600 Subject: hypr: Adding in pyprland and hyprload extensions We're going to be using two extensions, so naturally we need to have two extension managers (-_-). This should configure both the pyprland and hyprload widgets in full, assuming both are already installed. --- hypr/hyprland.conf | 417 +++++++++++++++++++++++++++++++++++++++++++++++++++++ hypr/hyprload.toml | 3 + hypr/pyprland.toml | 77 ++++++++++ 3 files changed, 497 insertions(+) create mode 100644 hypr/hyprland.conf create mode 100644 hypr/hyprload.toml create mode 100644 hypr/pyprland.toml diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf new file mode 100644 index 0000000..153ff91 --- /dev/null +++ b/hypr/hyprland.conf @@ -0,0 +1,417 @@ +# See https://wiki.hyprland.org/Configuring/Monitors/ +#{{{ Monitor config +monitor = , preferred, auto, 1 +monitor = HDMI-A-1, 1920x1080@60, 0x0, 1 +monitor = DP-1, 1920x1080@60, 1920x0, 1 +#}}} + +# See https://wiki.hyprland.org/Configuring/Keywords/ for more + +#{{{ Autostart +# Execute your favorite apps at launch +# exec-once = waybar & hyprpaper & firefox +exec-once = ~/.config/autostart.sh +exec-once = /usr/lib/polkit-kde-authentication-agent-1 +exec-once = xdph +exec-once = $HOME/.local/share/hyprload/hyprload.sh +exec-once = pypr +#}}} + +# Source a file (multi-file configs) +# source = ~/.config/hypr/myColors.conf + +#{{{ Input options +# For all categories, see https://wiki.hyprland.org/Configuring/Variables/ +input { + kb_layout = us + kb_variant = + kb_model = + kb_options = caps:escape + kb_rules = + numlock_by_default = true + scroll_method = "2fg" + follow_mouse = 1 + touchpad { + natural_scroll = no + } + float_switch_override_focus = 0 + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. +} +#}}} + +#{{{ General options +general { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + gaps_in = 5 + gaps_out = 20 + border_size = 2 + #col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg + #col.inactive_border = rgba(595959aa) + col.active_border = rgba(198844ee) + col.inactive_border = rgba(1b1d1cee) + layout = master + no_cursor_warps = false +} +#}}} + +#{{{ Misc options +misc { + enable_swallow = true + swallow_regex = ^(kitty)$ + vfr = false +} +#}}} + +#{{{ Decoration options +decoration { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + rounding = 10 + drop_shadow = yes + shadow_range = 4 + shadow_render_power = 3 + col.shadow = rgba(1a1a1aee) + #{{{ Blur options + blur { + enabled = true + size = 3 + passes = 1 + new_optimizations = true + xray = true + } + #}}} +} + +#}}} + +#{{{ Animations options +animations { + enabled = no + # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + 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 layout options +dwindle { + # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more + pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = yes # you probably want this + special_scale_factor = 0.55 +} +#}}} + +#{{{ Master layout options +master { + special_scale_factor = 0.55 + mfact = 0.55 + # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more + new_is_master = false + new_on_top = true + no_gaps_when_only = true + orientation = left + inherit_fullscreen = true +} +#}}} + +#{{{ Gestures options +gestures { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + workspace_swipe = off +} +#}}} + +#{{{ Device options +# Example per-device config +# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more +device:epic mouse V1 { + sensitivity = -0.5 +} +#}}} + +#{{{ plugin options +plugin { + split-monitor-workspaces { + count = 9 + } +} +#}}} + +#{{{ Windowrules +# Example windowrule v1 +# windowrule = float, ^(kitty)$ +# Example windowrule v2 +# windowrulev2 = float, class:^(kitty)$, title:^(kitty)$ +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more +windowrule = windowdance, title:^(Rhythm Doctor)$ +windowrule = fullscreen, ^(Xephyr)$ +windowrule = float, title:^(LibreWolf - Choose User Profile)$ +windowrulev2 = float, class:^(yabridge-host.exe.so)$, title:^(menu)$ +windowrulev2 = float,floating:0,title:^(menu*) +windowrulev2 = forceinput,title:^(menu*) +windowrulev2 = windowdance,title:^(menu*) +#}}} + +#{{{ Mods +# See https://wiki.hyprland.org/Configuring/Keywords/ for more +$mainMod = SUPER +$secdMod = ALT +#}}} + +#{{{ Layout toggle bind +# Layout toggle +#bind = $mainMod $secdMod, A, exec, hypr-layout -t +#}}} + +#{{{ Master layout binds +# Master layout binds +bind = $mainMod+SHIFT, Return, layoutmsg, swapwithmaster master #MASTER +bind = $mainMod+SHIFT, J, layoutmsg, swapnext #MASTER +bind = $mainMod+SHIFT, K, layoutmsg, swapprev #MASTER +bind = $mainMod+SHIFT, H, layoutmsg, addmaster #MASTER +bind = $mainMod+SHIFT, L, layoutmsg, removemaster #MASTER +binde = $mainMod, J, layoutmsg, cyclenext #MASTER +binde = $mainMod, K, layoutmsg, cycleprev #MASTER +binde = $mainMod, H, splitratio, -0.01 #MASTER +binde = $mainMod, L, splitratio, +0.01 #MASTER +bind = $mainMod+SHIFT, O, splitratio, exact 0.55 #MASTER +bind = $mainMod, O, splitratio, exact 0.69 #MASTER +#}}} + +#{{{ Dwindle layout binds +## Dwindle layout binds +#bind = $mainMod, P, pseudo, #DWINDLE +#bind = $mainMod $secdMod, S, togglesplit, #DWINDLE +## Move focus with mainMod + HJKL +#bind = $mainMod, H, movefocus, l #DWINDLE +#bind = $mainMod, L, movefocus, r #DWINDLE +#bind = $mainMod, K, movefocus, u #DWINDLE +#bind = $mainMod, J, movefocus, d #DWINDLE +## Move window with mainMod + HJKL +#bind = $mainMod SHIFT, L, movewindow, r #DWINDLE +#bind = $mainMod SHIFT, H, movewindow, l #DWINDLE +#bind = $mainMod SHIFT, J, movewindow, d #DWINDLE +#bind = $mainMod SHIFT, K, movewindow, u #DWINDLE +## Resize clients with mainMod + secdMod + HJKL +#binde = $mainMod $secdMod, L, resizeactive, 10 0 #DWINDLE +#binde = $mainMod $secdMod, H, resizeactive, -10 0 #DWINDLE +#binde = $mainMod $secdMod, K, resizeactive, 0 -10 #DWINDLE +#binde = $mainMod $secdMod, J, resizeactive, 0 10 #DWINDLE +#}}} + +#{{{ Group binds +# Group binds +#bind = $mainMod CONTROL, G, togglegroup, +#bind = $mainMod CONTROL, I, lockgroups, lock +#bind = $mainMod CONTROL, U, lockgroups, unlock +#bind = $mainMod CONTROL, H, moveintogroup, r +#bind = $mainMod CONTROL, L, moveintogroup, l +#bind = $mainMod CONTROL, J, moveintogroup, d +#bind = $mainMod CONTROL, K, moveintogroup, u +#}}} + +#{{{ WC binds +bind = $mainMod SHIFT, Q, killactive, +bind = $mainMod SHIFT, E, exit, +bind = $mainMod SHIFT, SPACE, togglefloating, +bind = $mainMod $secdMod, F2, exec, ~/.config/hypr/gamemode.sh +bind = $mainMod, F, fullscreen, 0 +bind = $mainMod, M, fullscreen, 1 +#}}} + +#{{{ Workspace binds (implied using split-monitor-workspaces plugin!) +# Switch workspaces with mainMod + [0-9] +bind = $mainMod, 1, split-workspace, 1 +bind = $mainMod, 2, split-workspace, 2 +bind = $mainMod, 3, split-workspace, 3 +bind = $mainMod, 4, split-workspace, 4 +bind = $mainMod, 5, split-workspace, 5 +bind = $mainMod, 6, split-workspace, 6 +bind = $mainMod, 7, split-workspace, 7 +bind = $mainMod, 8, split-workspace, 8 +bind = $mainMod, 9, split-workspace, 9 +# Move active window to a workspace with mainMod + SHIFT + [0-9] +bind = $mainMod SHIFT, 1, split-movetoworkspacesilent, 1 +bind = $mainMod SHIFT, 2, split-movetoworkspacesilent, 2 +bind = $mainMod SHIFT, 3, split-movetoworkspacesilent, 3 +bind = $mainMod SHIFT, 4, split-movetoworkspacesilent, 4 +bind = $mainMod SHIFT, 5, split-movetoworkspacesilent, 5 +bind = $mainMod SHIFT, 6, split-movetoworkspacesilent, 6 +bind = $mainMod SHIFT, 7, split-movetoworkspacesilent, 7 +bind = $mainMod SHIFT, 8, split-movetoworkspacesilent, 8 +bind = $mainMod SHIFT, 9, split-movetoworkspacesilent, 9 +bind = $mainMod CONTROL SHIFT, 1, split-movetoworkspace, 1 +bind = $mainMod CONTROL SHIFT, 2, split-movetoworkspace, 2 +bind = $mainMod CONTROL SHIFT, 3, split-movetoworkspace, 3 +bind = $mainMod CONTROL SHIFT, 4, split-movetoworkspace, 4 +bind = $mainMod CONTROL SHIFT, 5, split-movetoworkspace, 5 +bind = $mainMod CONTROL SHIFT, 6, split-movetoworkspace, 6 +bind = $mainMod CONTROL SHIFT, 7, split-movetoworkspace, 7 +bind = $mainMod CONTROL SHIFT, 8, split-movetoworkspace, 8 +bind = $mainMod CONTROL SHIFT, 9, split-movetoworkspace, 9 +bind = $mainMod, mouse_down, split-workspace, e+1 +bind = $mainMod, mouse_up, split-workspace, e-1 +bind = $mainMod, comma, split-changemonitor, +1 +bind = $mainMod, period, split-changemonitor, -1 +#}}} + +#{{{ Mouse binds +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow +#}}} + +#{{{ Resize submap binds +bind = $mainMod $secdMod, R, submap, resize +submap = resize +binde = CONTROL, L, resizeactive, 10 0 +binde = CONTROL, H, resizeactive, -10 0 +binde = CONTROL, K, resizeactive, 0 -10 +binde = CONTROL, J, resizeactive, 0 10 +binde = , escape, submap, reset +submap = reset +#}}} + +#{{{ Menu bindings +bind = $mainMod, R, exec, exec sh -c "$(tofi-drun -c ~/.config/tofi/themes/dmenu_vertical --prompt-text Run:)" +bind = $mainMod, D, exec, exec sh -c "$(tofi-run -c ~/.config/tofi/themes/dmenu_vertical --prompt-text Run:)" +bind = $mainMod $secdMod, Q, exec, qbc +bind = $mainMod $secdMod, W, exec, lwc +bind = $mainMod $secdMod, E, exec, mbc +bind = $mainMod $secdMod, R, exec, ffc +bind = $mainMod $secdMod, 1, exec, bm +bind = $mainMod $secdMod, comma, exec, dmount -p +bind = $mainMod $secdMod, period, exec, dmenuumount +bind = $mainMod $secdMod CONTROL, U, exec, dmenuunicode +bind = $mainMod $secdMod, U, exec, mprisctl +bind = $mainMod $secdMod, P, exec, passmenu +#}}} + +#{{{ Misc bindings +bind = $mainMod, Return, exec, kitty +bind = $mainMod $secdMod, F, exec, kitty -e lfrun +bind = $mainMod, W, exec, t waybar +bind = $mainMod, Q, exec, loginctl lock-session +bind = $mainMod $secdMod CONTROL, Q, exec, systemctl suspend +bind = $mainMod SHIFT, G, exec, get-app-id +#bind = $mainMod CONTROL, R, exec, startx -- /usr/bin/Xephyr -screen 1920x1080 :1 +#}}} + +#{{{ Scratchpads +bind = $mainMod CONTROL, Z, exec, pypr toggle sphtop +$sphtop = ^(sphtop)$ +windowrule = float,$sphtop +windowrule = workspace special:sphtop silent,$sphtop +windowrule = size 50% 50%,$sphtop +windowrule = move 25% 25%,$sphtop +bind = $mainMod CONTROL, X, exec, pypr toggle spterm +$spterm = ^(spterm)$ +windowrule = float,$spterm +windowrule = workspace special:spterm silent,$dropterm +windowrule = size 50% 50%,$spterm +windowrule = move 25% 25%,$spterm +bind = $mainMod CONTROL, C, exec, pypr toggle sppmxr +$sppmxr = ^(sppmxr)$ +windowrule = float,$sppmxr +windowrule = workspace special:sppmxr silent,$sppmxr +windowrule = size 50% 50%,$sppmxr +windowrule = move 25% 25%,$sppmxr +bind = $mainMod CONTROL, V, exec, pypr toggle spblue +$spblue = ^(spblue)$ +windowrule = float,$spblue +windowrule = workspace special:spblue silent,$spblue +windowrule = size 50% 50%,$spblue +windowrule = move 25% 25%,$spblue +bind = $mainMod CONTROL, B, exec, pypr toggle spncmp +$spncmp = ^(spncmp)$ +windowrule = float,$spncmp +windowrule = workspace special:spncmp silent,$spncmp +windowrule = size 50% 50%,$spncmp +windowrule = move 25% 25%,$spncmp +bind = $mainMod CONTROL, A, exec, pypr toggle spmutt +$spmutt = ^(spmutt)$ +windowrule = float,$spmutt +windowrule = workspace special:spmutt silent,$spmutt +windowrule = size 50% 50%,$spmutt +windowrule = move 25% 25%,$spmutt +bind = $mainMod CONTROL, S, exec, pypr toggle spprof +$spprof = ^(spprof)$ +windowrule = float,$spprof +windowrule = workspace special:spprof silent,$spprof +windowrule = size 50% 50%,$spprof +windowrule = move 25% 25%,$spprof +bind = $mainMod CONTROL, D, exec, pypr toggle spirss +$spirss = ^(spirss)$ +windowrule = float,$spirss +windowrule = workspace special:spirss silent,$spirss +windowrule = size 50% 50%,$spirss +windowrule = move 25% 25%,$spirss +bind = $mainMod CONTROL, F, exec, pypr toggle sptodo +$sptodo = ^(sptodo)$ +windowrule = float,$sptodo +windowrule = workspace special:sptodo silent,$sptodo +windowrule = size 50% 50%,$sptodo +windowrule = move 25% 25%,$sptodo +bind = $mainMod CONTROL, G, exec, pypr toggle sptrmc +$sptrmc = ^(sptrmc)$ +windowrule = float,$sptrmc +windowrule = workspace special:sptrmc silent,$sptrmc +windowrule = size 50% 50%,$sptrmc +windowrule = move 25% 25%,$sptrmc + +bind = $mainMod CONTROL, Q, exec, pypr toggle qpwgraph +$spqpwg = ^(org\.rncbc\.qpwgraph)$ +windowrule = float,$spqpwg +windowrule = workspace special:spqpwg silent,$spqpwg +windowrule = size 50% 50%,$spqpwg +windowrule = move 25% 25%,$spqpwg + +bind = $mainMod CONTROL, E, togglespecialworkspace, speasy +$speasy = ^(com\.github\.wwmm\.easyeffects)$ +windowrule = float,$speasy +windowrule = workspace special:speasy silent,$speasy +windowrule = size 50% 50%,$speasy +windowrule = move 25% 25%,$speasy +#}}} + +#{{{ OBS bindings +bind = $mainMod CONTROL, 1, pass, ^(com\.obsproject\.Studio)$ +bind = $mainMod CONTROL, 2, pass, ^(com\.obsproject\.Studio)$ +bind = $mainMod CONTROL, 3, pass, ^(com\.obsproject\.Studio)$ +bind = $mainMod CONTROL, 4, pass, ^(com\.obsproject\.Studio)$ +bind = $mainMod CONTROL, 5, pass, ^(com\.obsproject\.Studio)$ +bind = $mainMod CONTROL, 6, pass, ^(com\.obsproject\.Studio)$ +bind = $mainMod CONTROL, 7, pass, ^(com\.obsproject\.Studio)$ +bind = $mainMod CONTROL, 8, pass, ^(com\.obsproject\.Studio)$ +bind = $mainMod CONTROL, 9, pass, ^(com\.obsproject\.Studio)$ +bind = $mainMod CONTROL, 0, pass, ^(com\.obsproject\.Studio)$ +#}}} + +#{{{ Inert submap binds +bind = $mainMod, B, submap, inert +submap = inert +bind = $mainMod, B, submap, reset +submap = reset +#}}} + +#{{{ Media bindings +bindl = $secdMod, P, exec, playerctl play-pause +bindel = , XF86AudioRaiseVolume, exec, volsv -i 5 +bindel = , XF86AudioLowerVolume, exec, volsv -d 5 +bind = , XF86AudioPlay, exec, playerctl play-pause +bind = , XF86AudioStop, exec, playerctl stop +bind = , XF86AudioPrev, exec, playerctl previous +bind = , XF86AudioNext, exec, playerctl next +bind = , XF86AudioMute, exec, volsv -t +bindl = , XF86AudioMicMute, exec, volsv -m +bindel = , XF86MonBrightnessUp, exec, bl -i +bindel = , XF86MonBrightnessDown, exec, bl -d +bindl = $mainMod, XF86MonBrightnessUp, exec, bl -s 100 +bindl = $mainMod, XF86MonBrightnessDown, exec, bl -s 1 +bind = , Print, exec, scrshot +#}}} diff --git a/hypr/hyprload.toml b/hypr/hyprload.toml new file mode 100644 index 0000000..65e668c --- /dev/null +++ b/hypr/hyprload.toml @@ -0,0 +1,3 @@ +plugins = [ + "Duckonaut/split-monitor-workspaces", +] diff --git a/hypr/pyprland.toml b/hypr/pyprland.toml new file mode 100644 index 0000000..600c30a --- /dev/null +++ b/hypr/pyprland.toml @@ -0,0 +1,77 @@ +[pyprland] +plugins = [ + "scratchpads", +] + +[scratchpads.sphtop] +animation = "" +command = "kitty --class sphtop htop" +class = "sphtop" +lazy = true + +[scratchpads.spterm] +animation = "" +command = "kitty --class spterm" +class = "spterm" +lazy = true + +[scratchpads.sppmxr] +animation = "" +command = "kitty --class sppmxr pulsemixer" +class = "sppmxr" +lazy = true + +[scratchpads.spblue] +animation = "" +command = "kitty --class spblue bluetoothctl" +class = "spblue" +lazy = true + +[scratchpads.spncmp] +animation = "" +command = "kitty --class spncmp ncmpcpp" +class = "spncmp" +lazy = true + +[scratchpads.spmutt] +animation = "" +command = "kitty --class spmutt neomutt" +class = "spmutt" +lazy = true + +[scratchpads.spprof] +animation = "" +command = "kitty --class spprof profanity" +class = "spprof" +lazy = true + +[scratchpads.spirss] +animation = "" +command = "kitty --class spirss irssi" +class = "spirss" +lazy = true + +[scratchpads.sptodo] +animation = "" +command = "kitty --class sptodo todo" +class = "sptodo" +lazy = true + +[scratchpads.sptrmc] +animation = "" +command = "kitty --class sptrmc tremc" +class = "sptremc" +lazy = true + +[scratchpads.qpwgraph] +animation = "" +command = "qpwgraph" +class = "org.rncbc.qpwgraph" +lazy = true + +[scratchpads.easyeffects] +animation = "" +command = "flatpak run com.github.wwmm.easyeffects" +class = "com.github.wwmm.easyeffects" +lazy = true +unfocus = "hide" -- cgit v1.2.3 From 852070bbd1ff1d611c33cb88892e65d94a257d97 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 2 Jan 2024 15:52:49 -0600 Subject: waybar: Fix to use upstream hyprland/workspaces Hyprland/workspaces has been upstreamed, so we're using that now. Also fix the css not showing persistent button status properly while we're at it. --- waybar/config | 168 ++++++++++++++++++++++++++++ waybar/style.css | 328 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 496 insertions(+) create mode 100644 waybar/config create mode 100644 waybar/style.css diff --git a/waybar/config b/waybar/config new file mode 100644 index 0000000..0590008 --- /dev/null +++ b/waybar/config @@ -0,0 +1,168 @@ +{ + "layer": "top", + "position": "top", + "height": 36, + //"output": "%%DISPLAY%%", + "spacing": 4, + //"margin-top": 5, + //"margin-bottom":5, + + // Choose the order of the modules + + "modules-left":[ "hyprland/workspaces", "custom/launcher", "hyprland/window"], + "modules-center":[], + "modules-right":[ "mpd", "idle_inhibitor", "pulseaudio", "cpu", "memory", "temperature#cpu", "temperature#gpu", "backlight", "network", "clock", "tray", "custom/power"], + + // Modules configuration + + "hyprland/workspaces": { + "format": "{icon}", + "active-only": false, + "all-outputs": false, + "persistent_workspaces": { + "1": [], + "2": [], + "3": [], + "4": [], + "5": [], + "6": [], + "7": [], + "8": [], + "9": [] + }, + "on-scroll-up": "hyprctl dispatch split-workspace e+1", + "on-scroll-down": "hyprctl dispatch split-workspace e-1", + "on-click": "activate" + }, + "hyprland/window": { + "separate-outputs": true, + "format": "{}" + }, + "keyboard-state": { + "numlock": true, + "capslock": true, + "format": " {name} {icon}", + "format-icons": { + "locked": "", + "unlocked": "" + } + }, + "mpd": { + "format": "{artist} - {title}", + "format-stopped": "", + "format-paused": "{artist} - {title}", + "format-disconnected": "", + "artist-len": 15, + "title-len": 15, + //"album-len": 15, + //"max-length": 200, + "on-click": "mpc toggle" + }, + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "", + "deactivated": "" + } + }, + "tray": { + "icon-size": 20, + "spacing": 10 + }, + "clock": { + // "timezone": "America/New_York", + "tooltip-format": "{:%Y %B}\n{calendar}", + "format-alt": "{:%Y-%m-%d}" + }, + "cpu": { + "format": "{usage}% ", + "tooltip": false + }, + "memory": { + "format": "{}% " + }, + "temperature#cpu": { + // "thermal-zone": 2, + "hwmon-path": "/sys/class/hwmon/hwmon3/temp1_input", + "critical-threshold": 80, + // "format-critical": "{temperatureC}°C {icon}", + "format": "{temperatureC}°C", + "format-icons": ["", "", ""] + }, + "temperature#gpu": { + // "thermal-zone": 2, + "hwmon-path": "/sys/class/hwmon/hwmon1/temp2_input", + "critical-threshold": 110, + // "format-critical": "{temperatureC}°C {icon}", + "format": "{temperatureC}°C", + "format-icons": ["", "", ""] + }, + "backlight": { + // "device": "acpi_video1", + "format": "{percent}%" + //"format-icons": ["", ""] + }, + "battery": { + "states": { + // "good": 95, + "warning": 30, + "critical": 15 + }, + "format": "{capacity}%", + "format-charging": "{capacity}% +", + "format-plugged": "{capacity}% =", + "format-alt": "{time}", + // "format-good": "", // An empty format will hide the module + // "format-full": "", + //"format-icons": ["", "", "", "", ""] + }, + "battery#bat0": { + "bat": "BAT0" + }, + "battery#bat1": { + "bat": "BAT1" + }, + "network": { + // "interface": "wlp2*", // (Optional) To force the use of this interface + "format-wifi": "{essid} ({signalStrength}%) ", + "format-ethernet": "Connected  ", + "tooltip-format": "{ifname} via {gwaddr} ", + "format-linked": "{ifname} (No IP) ", + "format-disconnected": "Disconnected ⚠", + "format-alt": "{ifname}: {ipaddr}/{cidr}", + "on-click-right": "bash ~/.config/rofi/wifi_menu/rofi_wifi_menu" + }, + "pulseaudio": { + // "scroll-step": 1, // %, can be a float + "format": "{volume}% {icon}", + "format-bluetooth": "{volume}% {icon}", + "format-bluetooth-muted": "{icon} {format_source}", + "format-muted": "{format_source}", + "format-source": "", + "format-source-muted": "", + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + }, + "on-click": "pavucontrol" + }, + "custom/launcher":{ + "format": "", + "on-click": "exec $(tofi-drun)", + "on-click-right": "killall tofi" + }, + "custom/power":{ + "format": " ", + "on-click": "nwg-bar", + "on-click-right": "killall nwg-bar" + }, + "custom/snip":{ + "format": " ", + "on-click": "grimshot --notify save area $HOME/Pictures/$(zenity --entry --text 'Set filename:' --entry-text '.png')" + } +} diff --git a/waybar/style.css b/waybar/style.css new file mode 100644 index 0000000..88b8900 --- /dev/null +++ b/waybar/style.css @@ -0,0 +1,328 @@ +* { + border: 0px; + margin: 0px; + border-radius: 0px; + /* `otf-font-awesome` is required to be installed for icons */ + font-family: mononoki Nerd Font Mono; + font-size: 18px; + min-height: 0px; + min-width: 0px; +} + +window#waybar { + background-color: transparent; + color: #ffffff; + transition-property: background-color; + transition-duration: .5s; +} + +window#waybar.hidden { + opacity: 0.2; +} + + +/* +#workspaces button { + background: #1f1f1f; + color: #ffffff; + border-radius: 20px; +} +*/ + +/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ + +#workspaces button { + background: #333333; + color: white; + border-bottom: 3px solid #1b1d1c; +} + +#workspaces button.empty { + background: black; + color: white; + border-bottom: 3px solid #1b1d1c; +} + +/* +#workspaces button:hover { + background: #39c1ed; + color: black; + border-bottom: 3px solid #ffffff; + +} +*/ + +#workspaces button.active { + background: #198844; +} + +/* +#workspaces button.active:hover { + background: #39c1ed; + color: black; + border-bottom: 3px solid #ffffff; +} +*/ + +#workspaces button.urgent { + background-color: #eb4d4b; +} + +#mode { + background-color: #64727D; + border-bottom: 3px solid #ffffff; +} + +#clock, +#battery, +#cpu, +#memory, +#disk, +#temperature, +#backlight, +#network, +#pulseaudio, +#custom-media, +#custom-launcher, +#custom-power, +#custom-layout, +#custom-updater, +#custom-snip, +#custom-wallpaper, +#tags, +#taskbar, +#tray, +#mode, +#idle_inhibitor, +#mpd { + padding: 0px 9px; + margin: 0px; + color: #ffffff; +} + +#window, +#workspaces { + margin: 0px 4px; +} + +/* If workspaces is the leftmost module, omit left margin */ +.modules-left > widget:first-child > #workspaces { + margin-left: 0px; +} + +/* If workspaces is the rightmost module, omit right margin */ +.modules-right > widget:last-child > #workspaces { + margin-right: 0px; +} + +#clock { + background-color: #1b1d1c; + color: #ffffff; +} + +#battery { + background-color: #1b1d1c; + color: #ffffff; +} + +#battery.charging, #battery.plugged { + color: #26A65B; + background-color: #1b1d1c; +} + +@keyframes blink { + to { + background-color: #ffffff; + color: #000000; + } +} + +#battery.critical:not(.charging) { + background-color: #f53c3c; + color: #ffffff; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +label:focus { + background-color: #000000; +} + +#cpu { + background-color: #1b1d1c; + color: #ffffff; +} + +#memory { + background-color: #198844; + color: #ffffff; +} + +#disk { + background-color: #1b1d1c; + color: #ffffff; +} + +#backlight { + background-color: #198844; + color: #ffffff; +} + +#network { + background-color: #198844; + color: #ffffff; +} + +#network.disconnected { + background-color: #1b1d1c; + color: #ffffff; +} + +#pulseaudio { + background-color: #198844; + color: #ffffff; +} + +#pulseaudio.muted { + background-color: #1b1d1c; + color: #198844; +} + +#custom-media { + background-color: #1b1d1c; + color: white; +} + +#custom-media.custom-spotify { + background-color: #1b1d1c; + color: white; + +} + +#custom-media.custom-vlc { + background-color: #1b1d1c; + color: white; +} + +#custom-power{ + background-color: #1b1d1c; + font-size: 18px; + margin-right: 5px; + +} + +#custom-launcher{ + background-color: #1b1d1c; + font-size: 20px; + margin-left: 5px; + +} + +#custom-layout{ + background-color: #1b1d1c; + color: white; + font-size:20px; +} + +#custom-updater { + background-color: #1b1d1c; + color: white; +} + +#custom-snip { + background-color: #1b1d1c; + color: skyblue; + font-size: 20px; +} + +#custom-wallpaper { + background-color: #1b1d1c; + color: pink; + font-size: 20px; +} + +#tags{ + background-color: #1b1d1c; + font-size: 20px; +} + +#tags button.occupied { + color: skyblue; + background-color: #272727; +} +#tags button.focused { + color: black; + background-color: white; +} +#tags button.urgent{ + color: red; + background-color:white; +} + + +#taskbar{ + background-color: #1b1d1c; + border-radius: 0px 20px 20px 0px; +} + +#temperature { + background-color: #1b1d1c; + color: #ffffff; +} + +#temperature.critical { + background-color: #eb4d4b; +} + +#tray { + background-color: #198844; + color: #ffffff; +} + +#tray > .passive { + -gtk-icon-effect: dim; + background-color: #198844; + color: #ffffff; +} + +#tray > .needs-attention { + -gtk-icon-effect: highlight; + background-color: #198844; + color: #ffffff; +} + +#idle_inhibitor { + background-color: #1b1d1c; + border-radius: 20px 0px 0px 20px; + +} + +#idle_inhibitor.activated { + background-color: #198844; + color: #ffffff; + border-radius: 20px 0px 0px 20px; + +} + +#language { + background-color: #1b1d1c; + color: #ffffff; + min-width: 16px; +} + +#keyboard-state { + background: #97e1ad; + color: #000000; + min-width: 16px; +} + +#keyboard-state > label { + padding: 0px 5px; +} + +#keyboard-state > label.locked { + background: rgba(0, 0, 0, 0.2); +} -- cgit v1.2.3 From ad58532254d920aea8838baa877c97c59ba4eb79 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 2 Jan 2024 15:54:26 -0600 Subject: swayidle: use swaylock and not waylock I'm making this change for now. Might undo it. We'll see. --- swayidle/config | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 swayidle/config diff --git a/swayidle/config b/swayidle/config new file mode 100644 index 0000000..00fb5a7 --- /dev/null +++ b/swayidle/config @@ -0,0 +1,3 @@ +timeout 600 swaylockd +before-sleep swaylockd +lock swaylockd -- cgit v1.2.3 From 2f353473b0b05b927456d315c3e5c53ec6efe7f9 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 2 Jan 2024 16:17:25 -0600 Subject: master: add back more wayland config dirs --- swaylock/config | 2 ++ tofi/config | 1 + tofi/themes/colors | 17 +++++++++++++++++ tofi/themes/dmenu | 22 ++++++++++++++++++++++ tofi/themes/dmenu_vertical | 28 ++++++++++++++++++++++++++++ xsettingsd/xsettingsd.conf | 9 +++++++++ 6 files changed, 79 insertions(+) create mode 100644 swaylock/config create mode 120000 tofi/config create mode 100644 tofi/themes/colors create mode 100644 tofi/themes/dmenu create mode 100644 tofi/themes/dmenu_vertical create mode 100644 xsettingsd/xsettingsd.conf diff --git a/swaylock/config b/swaylock/config new file mode 100644 index 0000000..55ca360 --- /dev/null +++ b/swaylock/config @@ -0,0 +1,2 @@ +ignore-empty-password +color=000000 diff --git a/tofi/config b/tofi/config new file mode 120000 index 0000000..54cdd97 --- /dev/null +++ b/tofi/config @@ -0,0 +1 @@ +/home/zachir/.config/tofi/themes/dmenu \ No newline at end of file diff --git a/tofi/themes/colors b/tofi/themes/colors new file mode 100644 index 0000000..a5f480c --- /dev/null +++ b/tofi/themes/colors @@ -0,0 +1,17 @@ +background-color = #000000 +outline-color = #39c1ed +border-color = #39c1ed +text-color = #ffffff +prompt-color = #39c1ed +prompt-background = #000000 +placeholder-color = #39c1ed +placeholder-background = #000000 +input-color = #ffffff +input-background = #000000 +default-result-background = #000000 +alternate-result-color = #ffffff +alternate-result-background = #000000 +selection-color = #000000 +selection-match-color = #198844 +selection-background = #39c1ed + diff --git a/tofi/themes/dmenu b/tofi/themes/dmenu new file mode 100644 index 0000000..75fd7f2 --- /dev/null +++ b/tofi/themes/dmenu @@ -0,0 +1,22 @@ +include = "themes/colors" + +hidden-character = "*" +anchor = top +width = 100% +height = 24 +horizontal = true +font-size = 18 +prompt-text = "" +font = mononoki Nerd Font Mono +outline-width = 0 +border-width = 0 +min-input-width = 424 +result-spacing = 15 +padding-top = 0 +padding-bottom = 0 +padding-left = 0 +padding-right = 0 +history = false +selection-background-padding = 12 +result-spacing = 24 +require-match=false diff --git a/tofi/themes/dmenu_vertical b/tofi/themes/dmenu_vertical new file mode 100644 index 0000000..24df784 --- /dev/null +++ b/tofi/themes/dmenu_vertical @@ -0,0 +1,28 @@ +include = "colors" + +hidden-character = "*" +anchor = top +width = 100% +height = 600 +horizontal = false +font-size = 18 +prompt-text = "" +prompt-padding = 18 +font = mononoki Nerd Font Mono +outline-width = 0 +border-width = 0 +min-input-width = 424 +result-spacing = 12 +selection-background-padding = 0, 12 +padding-top = 0 +padding-bottom = 0 +padding-left = 12 +padding-right = 12 +margin-top = 0 +margin-bottom = 0 +margin-left = 12 +margin-right = 12 +clip-to-padding=true +history = false +require-match = false +num-results = 15 diff --git a/xsettingsd/xsettingsd.conf b/xsettingsd/xsettingsd.conf new file mode 100644 index 0000000..8fa8d9b --- /dev/null +++ b/xsettingsd/xsettingsd.conf @@ -0,0 +1,9 @@ +Net/ThemeName "Flat-Remix-GTK-Green-Darkest-Solid" +Net/IconThemeName "Mint-X" +Gtk/CursorThemeName "Adwaita" +Net/EnableEventSounds 1 +EnableInputFeedbackSounds 0 +Xft/Antialias 1 +Xft/Hinting 1 +Xft/HintStyle "hintslight" +Xft/RGBA "rgb" -- cgit v1.2.3 From a750633f8c7630abf4d601bcd03f8f8e149f4bd5 Mon Sep 17 00:00:00 2001 From: zachir Date: Wed, 3 Jan 2024 11:27:03 -0600 Subject: hypr: Add keybindings to update and reload plugins Added "$mainMod CONTROL SHIFT R" to reload the hyprload plugins in case of a crash, and "$mainMod CONTROL SHIFT U" to update the hyprload plugins. Note that this only effects hyprload plugins, and not the pypr ones. --- hypr/hyprland.conf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 153ff91..62c1693 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -299,6 +299,8 @@ bind = $mainMod, W, exec, t waybar bind = $mainMod, Q, exec, loginctl lock-session bind = $mainMod $secdMod CONTROL, Q, exec, systemctl suspend bind = $mainMod SHIFT, G, exec, get-app-id +bind = $mainMod CONTROL SHIFT, R, hyprload, reload +bind = $mainMod CONTROL SHIFT, U, hyprload, update #bind = $mainMod CONTROL, R, exec, startx -- /usr/bin/Xephyr -screen 1920x1080 :1 #}}} -- cgit v1.2.3 From 11784107d647ac7bb50c1e67ce75ecdf8ff9c8ec Mon Sep 17 00:00:00 2001 From: zachir Date: Wed, 3 Jan 2024 11:34:09 -0600 Subject: hypr: Add hyprpaper preload paths for wallpapers I assume ~/Pictures/background.png as a default; this is where I now store it. --- hypr/hyprpaper.conf | 1 + 1 file changed, 1 insertion(+) create mode 100644 hypr/hyprpaper.conf diff --git a/hypr/hyprpaper.conf b/hypr/hyprpaper.conf new file mode 100644 index 0000000..a0239e5 --- /dev/null +++ b/hypr/hyprpaper.conf @@ -0,0 +1 @@ +preload = ~/Pictures/background.png -- cgit v1.2.3 From 2151d19829135740e88fc8700c9eaab827a96bf1 Mon Sep 17 00:00:00 2001 From: zachir Date: Wed, 3 Jan 2024 11:38:24 -0600 Subject: nsxiv: change handler for wallpaper nsxiv will now either copy the image to ~/Pictures/background.png or, if it is not .png, it will convert it using imagemagick. --- nsxiv/exec/key-handler | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/nsxiv/exec/key-handler b/nsxiv/exec/key-handler index 3db850a..9e78004 100755 --- a/nsxiv/exec/key-handler +++ b/nsxiv/exec/key-handler @@ -2,7 +2,14 @@ while read file; do case "$1" in "w") - cp "$file" ~/background.jpg + case "$file" in + *.png) + cp "$file" ~/Pictures/background.png + ;; + *) + convert "$file" ~/Pictures/background.png + ;; + esac t -r hyprpaper ;; esac -- cgit v1.2.3 From b5fde903f422bc948acacce67334e234d1c240bb Mon Sep 17 00:00:00 2001 From: zachir Date: Wed, 3 Jan 2024 11:41:28 -0600 Subject: git: ignore more files Ignoring more stuff that doesn't need to be synced. --- .gitignore | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 29c21b6..686a71d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ -zsh/hist +zsh/zfunc zsh/zcompdump +zsh/hist zsh/.zsh_theme zsh/.zcompdump zoomus.conf @@ -30,6 +31,7 @@ transmission/ touchegg/ torbrowser/ tmux/plugins +themes/ systemd/ syncthing/ switcher/ @@ -106,6 +108,7 @@ minigalaxy/ micro/buffers/ mgba/ menus/ +lxqt/ lutris/ lsp-plugins/ lkjb/ -- cgit v1.2.3 From e52d33c3800479d17b7f55a67186b9d73a78ec96 Mon Sep 17 00:00:00 2001 From: zachir Date: Wed, 3 Jan 2024 11:43:05 -0600 Subject: zsh: add function anonsh Anonsh is useful if you dont't want your shell history recorded (for example, if you need to type in a password). --- zsh/functions/anonsh | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 zsh/functions/anonsh diff --git a/zsh/functions/anonsh b/zsh/functions/anonsh new file mode 100644 index 0000000..c9b1b4f --- /dev/null +++ b/zsh/functions/anonsh @@ -0,0 +1,72 @@ +# Convenience helper to set up an "incognito mode" for a shell session. +# +# Installation: +# 1. Create a folder like ~/.zsh/functions +# 2. Add it to your ZSH function path with fpath=(~/.zsh/functions(:A) $fpath) in ~/.zshenv +# 3. Save this script as ~/.zsh/functions/anonsh +# 4. Add `autoload -Uz anonsh` to your ~/.zshrc +# +# Now you can type `anonsh` in any zsh session +# +# - Use `clear` to clear both the screen and scrollback buffer +# - Use `fc -p` to clear command history without affecting your usual HISTFILE + +# Only store new command history entries in RAM +unset HISTFILE + +# Redefine the hardstatus text to "anonsh" so it doesn't show $PWD +# where people can see it when the shell doesn't have focus +# +# (The zsh_hardstatus_pre* and title functions are part of my .zshrc setup) +if typeset -f zsh_hardstatus_precmd > /dev/null && typeset -f title > /dev/null; then + autoload -Uz add-zsh-hook + add-zsh-hook -d precmd zsh_hardstatus_precmd + add-zsh-hook -d preexec zsh_hardstatus_preexec + + function zsh_hardstatus_precmd { title "anonsh" "anonsh"; } + add-zsh-hook precmd zsh_hardstatus_precmd + add-zsh-hook preexec zsh_hardstatus_precmd +fi + +# Show ... in the prompt instead of $PWD so it can't give away +# something after running `clear` +# +# ($base_prompt is a custom part of my .zshrc setup) +if (( ${+base_prompt} )); then + export base_prompt="${base_prompt//%%1~/...}" +fi +export PS1="${PS1//%%1~/...}" +export PS2="${PS2//%%1~/...}" +export PS3="${PS3//%%1~/...}" +export PS4="${PS4//%%1~/...}" + +# Redefine "clear" to also clear the GNU screen scrollback buffer and to ask +# for the terminal scrollback buffer to be cleared in as many ways as possible +clear() { + # Call the regular clear command + command clear + + # Manually emit all the escapes I know for requesting the terminal be + # cleared and ask GNU Screen to pass it through as a literal + # + # Source: https://apple.stackexchange.com/a/318217/388700 + printf '\eP\e[2J\e[3J\e[;H\ec\e\\' + + # Flush GNU Screen's internal scrollback for this shell + if [ "$TERM" = "screen" ]; then + screen -X scrollback 0 + screen -X scrollback 5000 + fi +} + +# TODO: Try to find a workaround to call the terminal scrollback-clearing part +# of `clear` on switching GNU screen focus and then refresh the visible +# part from screen's stored copy so nothing anonsh can show accidentally. +# +# (Without removing the `termcapinfo` line to from ~/.screenrc which +# would disable it when `anonsh` isn't in use.) + +# Call `clear` on exit to clear terminal scrollback +zshexit() { clear; } + +# vim: set ft=zsh : -- cgit v1.2.3 From 9961a1ee25f722a46500f7d9c356b9751cd8408c Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 11 Jan 2024 13:52:15 -0600 Subject: hypr: use hyprpm instead of hyprload Not that hyprload hasn't worked, but I would rather use the first party solution where practical, and this seems to be the case for that. And hyprpm is now in the upstream Arch package. --- hypr/hyprland.conf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 62c1693..dd12307 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -13,7 +13,8 @@ monitor = DP-1, 1920x1080@60, 1920x0, 1 exec-once = ~/.config/autostart.sh exec-once = /usr/lib/polkit-kde-authentication-agent-1 exec-once = xdph -exec-once = $HOME/.local/share/hyprload/hyprload.sh +#exec-once = $HOME/.local/share/hyprload/hyprload.sh +exec-once = hyprpm reload -n exec-once = pypr #}}} -- cgit v1.2.3 From a6309f12fe1b589307ef4f14bc3e88dce9f28617 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 11 Jan 2024 13:54:32 -0600 Subject: swayidle: lock after 5 min, suspend at 10 Swayidle will now lock the screen after 5 minutes, and it will suspend after 10. Basically just decreased the lock timeout and added that it will suspend. --- swayidle/config | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/swayidle/config b/swayidle/config index 00fb5a7..52f7c7e 100644 --- a/swayidle/config +++ b/swayidle/config @@ -1,3 +1,4 @@ -timeout 600 swaylockd +timeout 300 swaylockd +timeout 600 'loginctl suspend' before-sleep swaylockd lock swaylockd -- cgit v1.2.3 From 05e8093ec8f8955dadaa29d65d811c6122084757 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 11 Jan 2024 14:01:40 -0600 Subject: waybar: clean up battery config Change the battery config to just use stuff that I want in it, rather than copying off of someone else's config. --- waybar/config | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/waybar/config b/waybar/config index 0590008..c7035b7 100644 --- a/waybar/config +++ b/waybar/config @@ -81,6 +81,16 @@ "memory": { "format": "{}% " }, + "battery": { + "bat": "BAT0", + "interval": 60, + "state": { + "warning": 30, + "critical": 15 + }, + "format": "{capacity}%", + "max-length": 25 + }, "temperature#cpu": { // "thermal-zone": 2, "hwmon-path": "/sys/class/hwmon/hwmon3/temp1_input", @@ -102,26 +112,6 @@ "format": "{percent}%" //"format-icons": ["", ""] }, - "battery": { - "states": { - // "good": 95, - "warning": 30, - "critical": 15 - }, - "format": "{capacity}%", - "format-charging": "{capacity}% +", - "format-plugged": "{capacity}% =", - "format-alt": "{time}", - // "format-good": "", // An empty format will hide the module - // "format-full": "", - //"format-icons": ["", "", "", "", ""] - }, - "battery#bat0": { - "bat": "BAT0" - }, - "battery#bat1": { - "bat": "BAT1" - }, "network": { // "interface": "wlp2*", // (Optional) To force the use of this interface "format-wifi": "{essid} ({signalStrength}%) ", -- cgit v1.2.3 From d5bfa592c2a9effa0c8f94f6c8f38f10d024cc34 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 11 Jan 2024 14:03:24 -0600 Subject: git: update .gitignore Ignore nwg-look and dinit.d, as these will be system independent anyways --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 686a71d..447a23c 100644 --- a/.gitignore +++ b/.gitignore @@ -77,6 +77,7 @@ odysee-nativefier*/ obs-studio/ nvim/plugged/ nwg-outputs/ +nwg-look/ nssdb/ npm/ notmuch/ @@ -168,6 +169,7 @@ emacs/ easyeffects/ ears.cfg dolphin-emu/ +dinit.d/ dde-printer.ini dconf/ cordless/config.json -- cgit v1.2.3 From d55aba0182cf7b2751cad027b59b12dc97648474 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 1 Feb 2024 20:48:13 -0600 Subject: hypr: Disable Hyprchan (so sad) I don't want to have to explain the anime mascot that shows up for a split second whenever I open the wm. Further, she sometimes shows up when xray transparency glitches. --- hypr/hyprland.conf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index dd12307..bba6c5c 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -57,6 +57,8 @@ general { #{{{ Misc options misc { + disable_hyprland_logo = true + disable_splash_rendering = true enable_swallow = true swallow_regex = ^(kitty)$ vfr = false -- cgit v1.2.3 From 8e85303657d8876aeae1d22ed05a0821050d6e59 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 1 Feb 2024 20:51:03 -0600 Subject: hypr: add pseudo minimize functionality Using the 'expose' module in pyprland to create a hidden workspace for 'minimizing' windows. Windows do not know they are minimized, however. --- hypr/hyprland.conf | 2 ++ hypr/pyprland.toml | 1 + 2 files changed, 3 insertions(+) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index bba6c5c..2be6fbb 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -225,6 +225,8 @@ bind = $mainMod SHIFT, SPACE, togglefloating, bind = $mainMod $secdMod, F2, exec, ~/.config/hypr/gamemode.sh bind = $mainMod, F, fullscreen, 0 bind = $mainMod, M, fullscreen, 1 +bind = $mainMod, N, exec, pypr toggle_minimized +bind = $mainMod SHIFT, N, togglespecialworkspace, minimized #}}} #{{{ Workspace binds (implied using split-monitor-workspaces plugin!) diff --git a/hypr/pyprland.toml b/hypr/pyprland.toml index 600c30a..935f1a8 100644 --- a/hypr/pyprland.toml +++ b/hypr/pyprland.toml @@ -1,6 +1,7 @@ [pyprland] plugins = [ "scratchpads", + "expose" ] [scratchpads.sphtop] -- cgit v1.2.3 From 697a746b50a74f9bb57126d63c6a41e244d72af0 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 1 Feb 2024 20:52:36 -0600 Subject: hypr: enable variable refresh rate --- hypr/hyprland.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 2be6fbb..985a706 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -62,6 +62,7 @@ misc { enable_swallow = true swallow_regex = ^(kitty)$ vfr = false + vrr = true } #}}} -- cgit v1.2.3 From 28974a5b97c592d3a820fe9c7e5774aa3f7f7a44 Mon Sep 17 00:00:00 2001 From: zachir Date: Fri, 2 Feb 2024 20:47:27 -0600 Subject: git: change around gitignore to add more stuff Ignoring systemsettingsrc, r2modman dirs, gtkrc and gtkrc-2.0, droidcam, and Trolltech.conf. --- .gitignore | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.gitignore b/.gitignore index 447a23c..597b4c4 100644 --- a/.gitignore +++ b/.gitignore @@ -32,6 +32,7 @@ touchegg/ torbrowser/ tmux/plugins themes/ +systemsettingsrc systemd/ syncthing/ switcher/ @@ -46,6 +47,8 @@ rncbc.org/ retroarch/ rclone/ raveloxmidi/ +r2modmanPlus-local/ +r2modman/ qutebrowser/jmatrix-rules qtile/__pycache__/ !qt6ct/qt6ct.conf @@ -150,6 +153,8 @@ htop/htoprc guitarix/ gtk-2.0/ gtk-3.0/ +gtkrc-2.0 +gtkrc gomuks/ godot/ goa-1.0/ @@ -168,6 +173,7 @@ enchant/ emacs/ easyeffects/ ears.cfg +droidcam dolphin-emu/ dinit.d/ dde-printer.ini @@ -197,6 +203,7 @@ abook/ VirtualBox/ VeraCrypt/ UNDERTALE*/ +Trolltech.conf The Crown EXEX.settings SUPERHOT/ Shibalba EXEX.settings -- cgit v1.2.3 From cec1539c6eea4f0a800d1d547609de80c072cd6e Mon Sep 17 00:00:00 2001 From: zachir Date: Fri, 2 Feb 2024 20:48:32 -0600 Subject: git: reorganize gitignore to be alpha Reorder the gitignore to be in normal alphabetical order. --- .gitignore | 495 +++++++++++++++++++++++++++++++------------------------------ 1 file changed, 250 insertions(+), 245 deletions(-) diff --git a/.gitignore b/.gitignore index 597b4c4..0197c0b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,254 +1,259 @@ -zsh/zfunc -zsh/zcompdump -zsh/hist -zsh/.zsh_theme -zsh/.zcompdump -zoomus.conf -zirless/ -zec-qt-wallet-org/ -yuzu/ -ytfzf/subscriptions -yabridgectl/ -xmonad/.stack-work -xmonad/stack.yaml.lock -xmonad/xmonad-x86_64-linux -xmonad/xmonad.o -xmonad/xmonad.hi -whoozle.github.io/ -weechat/ -waybar/config-Hyprland-* -waybar/config-river-* -waybar/config-dwl-* -vlc/vlc-qt-interface.conf -vdirsyncer/ -Valve Corporation/ -unity3d/ -ubports-installer/ -tremc/ -transmission-daemon/ -transmission/ -!transmission/settings.json -touchegg/ -torbrowser/ -tmux/plugins -themes/ -systemsettingsrc -systemd/ -syncthing/ -switcher/ -straw-viewer/ -spotify-tui/ -spotifyd/ -solaar/ -snownews/urls.opml -sh/weather -rtorrent/ -rncbc.org/ -retroarch/ -rclone/ -raveloxmidi/ -r2modmanPlus-local/ -r2modman/ -qutebrowser/jmatrix-rules -qtile/__pycache__/ -!qt6ct/qt6ct.conf -qt6ct/* -!qt5ct/qt5ct.conf -qt5ct/* -qrcp/ -pupgui/ -pulse/ -protonvpn/ -protonmail/ -protonfixes/ -profanity/profrc -print-manager/ -pop-system-updater/ -pop-shell/ -polychromatic/ -poezio/ -pmbootstrap.cfg -pipewire/ -PCSX2/ -pcmanfm-qt/ -pcmanfm/ -pavucontrol.ini -openrazer/ -okularrc -okularpartrc -odysee-nativefier*/ -obs-studio/ -nvim/plugged/ -nwg-outputs/ -nwg-look/ -nssdb/ -npm/ -notmuch/ -nitrogen/bg-saved.cfg -newsboat/urls -newsboat/cache.db -nextcloud/ -neofetch/ -ncmpcpp/error.log -mutt/ -musnify-mpd/musnify-mpd.config -msmtp/ -mpv/watch_later/ -mpv/download.log +abook/ +AHM 5050 v3/ +AHM 5050 v3.settings +aIR Impulse RackEX.settings +Amp Locker/ +Amp Locker.settings +amsynth/ +ardour*/ +autostart/ +Binance/ +Blacksun/ +Blacksun.settings +blender/ +BraveSoftware/ +BULLDOG.settings +Cadence/ +caffeine +calcurse/* +!calcurse/keys +calibre/ +calibre/conversion +carla/ +cef_user_data +.charles.config +chromium/ +clangd/ +cni/ +coc/extensions/db.json +companion*/ +computerrc +computerrc.sh +configstore/ +cordless/config.json +dconf/ +dde-printer.ini +DELTARUNE/ +dinit.d/ +dolphin-emu/ +droidcam +ears.cfg +easyeffects/ +Element/ +emacs/ +EmeraldWallet/ +enchant/ +Epic/ +Etherdyne/ +evolution/ +falkTX/ +filezilla/ +fontconfig/ +FreakQ305/ +FreakQ305.settings +FreeTube/ +gaiasky/ +galculator/ +gamescope/ +ghb/ +GIMP/ +glib-2.0/ +gnome-control-center/ +gnome-initial-setup-done +gnome-session/ +goa-1.0/ +godot/ +gomuks/ +gtk-2.0/ +gtk-3.0/ +gtkrc +gtkrc-2.0 +guitarix/ +<<<<<<< HEAD +Hellbeast v2/ +Hellbeast v2.settings +htop/htoprc +ibus/ +icedtea-web/ +inkscape/ +Iriun/ +irssi/ +isync/ +jack/ +jack_mixer/ +jamesdsp/ +java/ +@joplin/ +joplin/ +Joplin/ +joplin-desktop/ +kaidan/ +kdeconnect/ +kdeglobals +kdenlive.* +kdenlive-appimagerc +kdenlive-layoutsrc +kdenliverc +kde.org/ +keepassxc/ +khal/ +kicad/ +Kitware/ +kritadisplayrc +kritarc +ksh/history +lab/ +lbry/ +LBRY/ +LBRY-GTK/ +lbry-viewer/ +libfm/ +libreoffice/ +LibrePCB/ +light/ +linvst/ +lkjb/ +lsp-plugins/ +lutris/ +lxqt/ +menus/ +mgba/ +micro/buffers/ +mimeapps.list +minigalaxy/ +mixbus9/ +mksh/history +modprobed.db +modprobed-db.conf +monero-project/ mpd/database mpd/log mpd/pid +mpd/playlists/ mpd/socket mpd/state mpd/sticker.sql -mpd/playlists/ -monero-project/ -modprobed-db.conf -modprobed.db -mksh/history -mixbus9/ -mimeapps.list -minigalaxy/ -micro/buffers/ -mgba/ -menus/ -lxqt/ -lutris/ -lsp-plugins/ -lkjb/ -linvst/ -light/ -libreoffice/ -libfm/ -lbry-viewer/ -LBRY-GTK/ -lbry/ -lab/ -ksh/history -kritarc -kritadisplayrc -kicad/ -khal/ -keepassxc/ -kdenlive-layoutsrc -kdenlive-appimagerc -kdenlive.* -kdenliverc -kdeglobals -kdeconnect/ -kde.org/ -kaidan/ -joplin/ -joplin-desktop/ -java/ -jamesdsp/ -jack_mixer/ -jack/ -isync/ -irssi/ -inkscape/ -icedtea-web/ -ibus/ -htop/htoprc -guitarix/ -gtk-2.0/ -gtk-3.0/ -gtkrc-2.0 -gtkrc -gomuks/ -godot/ -goa-1.0/ -gnome-session/ -gnome-initial-setup-done -gnome-control-center/ -glib-2.0/ -ghb/ -galculator/ -gaiasky/ -fontconfig/ -filezilla/ -falkTX/ -evolution/ -enchant/ -emacs/ -easyeffects/ -ears.cfg -droidcam -dolphin-emu/ -dinit.d/ -dde-printer.ini -dconf/ -cordless/config.json -configstore/ -computerrc.sh -computerrc -companion*/ -coc/extensions/db.json -cni/ -clangd/ -chromium/ -cef_user_data -carla/ -calibre/conversion -calibre/ -calcurse/* -!calcurse/keys -caffeine -blender/ -autostart/ -ardour*/ -amsynth/ -aIR Impulse RackEX.settings -abook/ -VirtualBox/ -VeraCrypt/ -UNDERTALE*/ -Trolltech.conf -The Crown EXEX.settings -SUPERHOT/ -Shibalba EXEX.settings -Session/ -Serenity/ -SchildiChat/ +mpv/download.log +mpv/watch_later/ +msmtp/ +musnify-mpd/musnify-mpd.config +mutt/ +ncmpcpp/error.log +neofetch/ +newsboat/cache.db +newsboat/urls +nextcloud/ +Nextcloud/ +nitrogen/bg-saved.cfg +notmuch/ +npm/ +nssdb/ +NuGet/ +nvim/plugged/ +nwg-look/ +nwg-outputs/ +obs-studio/ +odysee-nativefier*/ +okularpartrc +okularrc +openrazer/ +pavucontrol.ini +pcmanfm/ +pcmanfm-qt/ +PCSX2/ +pipewire/ +pipewire/media-session.d/ +pipewire/pipewire.conf.d/ +pmbootstrap.cfg +poezio/ +polychromatic/ +pop-shell/ +pop-system-updater/ +Portmaster/ +print-manager/ +profanity/profrc +Proton AG/ +protonfixes/ +protonmail/ +protonvpn/ +pulse/ +pupgui/ +qrcp/ +qt5ct/* +!qt5ct/qt5ct.conf +qt6ct/* +!qt6ct/qt6ct.conf +qtile/__pycache__/ +QtProject/ +QtProject.conf +qutebrowser/jmatrix-rules +r2modman/ +r2modmanPlus-local/ +raveloxmidi/ +rclone/ +ReAmp Studio R1/ +ReAmp Studio R1.settings +REAPER/ +Resonant DSP/ +retroarch/ +rncbc.org/ +rtorrent/ +RVXX EXEX.settings RVXX v2/ RVXX v2.settings -RVXX EXEX.settings -Resonant DSP/ -REAPER/ -ReAmp Studio R1.settings -ReAmp Studio R1/ -QtProject.conf -QtProject/ -Proton AG/ -Portmaster/ -NuGet/ -Nextcloud/ -LibrePCB/ -LBRY/ -Kitware/ -Joplin/ -Iriun/ -Hellbeast v2/ -Hellbeast v2.settings -GIMP/ -FreeTube/ -FreakQ305.settings -FreakQ305/ -Epic/ -Etherdyne/ -EmeraldWallet/ -Element/ -DELTARUNE/ -Cadence/ -BULLDOG.settings -BraveSoftware/ -Blacksun.settings -Blacksun/ -Binance/ -Amp Locker.settings -Amp Locker/ -AHM 5050 v3.settings -AHM 5050 v3/ -@joplin/ +SchildiChat/ +Serenity/ +Session/ +Shibalba EXEX.settings +sh/weather +snownews/urls.opml +solaar/ +spotifyd/ +spotify-tui/ +straw-viewer/ +SUPERHOT/ +switcher/ +syncthing/ +systemd/ +systemsettingsrc +The Crown EXEX.settings +themes/ +tmux/plugins +torbrowser/ +touchegg/ +transmission/ +transmission-daemon/ +!transmission/settings.json +tremc/ +Trolltech.conf .tsrc -.charles.config +ubports-installer/ +UNDERTALE*/ +unity3d/ +Valve Corporation/ +vdirsyncer/ +VeraCrypt/ +VirtualBox/ +vlc/vlc-qt-interface.conf +waybar/config-dwl-* +waybar/config-Hyprland-* +waybar/config-river-* +weechat/ +whoozle.github.io/ +xmonad/.stack-work +xmonad/stack.yaml.lock +xmonad/xmonad.hi +xmonad/xmonad.o +xmonad/xmonad-x86_64-linux +xsettingsd/ +yabridgectl/ +ytfzf/subscriptions +yuzu/ +zec-qt-wallet-org/ +zirless/ +zoomus.conf +zsh/hist +zsh/.zcompdump +zsh/zcompdump +zsh/zfunc +zsh/.zsh_theme -- cgit v1.2.3 From 49c44c10397dcb42d04662c111657c35677653eb Mon Sep 17 00:00:00 2001 From: zachir Date: Fri, 2 Feb 2024 20:53:32 -0600 Subject: qt5ct: Set qt theme to gtk2 and icon theme This sets the qt theme to use gtk2, and the icon theme to use Mint-X-Grey. --- qt5ct/qt5ct.conf | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 qt5ct/qt5ct.conf diff --git a/qt5ct/qt5ct.conf b/qt5ct/qt5ct.conf new file mode 100644 index 0000000..bf4c0e0 --- /dev/null +++ b/qt5ct/qt5ct.conf @@ -0,0 +1,32 @@ +[Appearance] +color_scheme_path=/usr/share/qt5ct/colors/darker.conf +custom_palette=false +icon_theme=Mint-X-Grey +standard_dialogs=gtk2 +style=gtk2 + +[Fonts] +fixed=@Variant(\0\0\0@\0\0\0\x1e\0\x44\0\x65\0j\0\x61\0V\0u\0 \0L\0G\0\x43\0 \0S\0\x61\0n\0s@(\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10) +general=@Variant(\0\0\0@\0\0\0\x1e\0\x44\0\x65\0j\0\x61\0V\0u\0 \0L\0G\0\x43\0 \0S\0\x61\0n\0s@(\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10) + +[Interface] +activate_item_on_single_click=1 +buttonbox_layout=0 +cursor_flash_time=1000 +dialog_buttons_have_icons=1 +double_click_interval=400 +gui_effects=@Invalid() +keyboard_scheme=2 +menus_have_icons=true +show_shortcuts_in_context_menus=true +stylesheets=@Invalid() +toolbutton_style=4 +underline_shortcut=1 +wheel_scroll_lines=3 + +[SettingsWindow] +geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x1\x95\0\0\0\xfb\0\0\x5\x45\0\0\x3\x93\0\0\x1\x96\0\0\0\xfc\0\0\x5\x44\0\0\x3\x92\0\0\0\0\0\0\0\0\a\x80\0\0\x1\x96\0\0\0\xfc\0\0\x5\x44\0\0\x3\x92) + +[Troubleshooting] +force_raster_widgets=1 +ignored_applications=@Invalid() -- cgit v1.2.3 From f10950b5aff5197a338a0b5a93338e4ee3233f01 Mon Sep 17 00:00:00 2001 From: zachir Date: Fri, 2 Feb 2024 20:55:49 -0600 Subject: qt6ct: set theme to gtk2 and icon theme This sets the qt6 theme to gtk2 and the icon theme to Mint-X. --- qt6ct/qt6ct.conf | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 qt6ct/qt6ct.conf diff --git a/qt6ct/qt6ct.conf b/qt6ct/qt6ct.conf new file mode 100644 index 0000000..29cd0a9 --- /dev/null +++ b/qt6ct/qt6ct.conf @@ -0,0 +1,32 @@ +[Appearance] +color_scheme_path=/usr/share/qt6ct/colors/airy.conf +custom_palette=false +icon_theme=Mint-X +standard_dialogs=default +style=qt6gtk2 + +[Fonts] +fixed="DejaVu LGC Sans,12,-1,5,400,0,0,0,0,0,0,0,0,0,0,1" +general="DejaVu LGC Sans,12,-1,5,400,0,0,0,0,0,0,0,0,0,0,1" + +[Interface] +activate_item_on_single_click=1 +buttonbox_layout=0 +cursor_flash_time=1000 +dialog_buttons_have_icons=1 +double_click_interval=400 +gui_effects=@Invalid() +keyboard_scheme=2 +menus_have_icons=true +show_shortcuts_in_context_menus=true +stylesheets=@Invalid() +toolbutton_style=4 +underline_shortcut=1 +wheel_scroll_lines=3 + +[SettingsWindow] +geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x3\x42\0\0\x3\xe7\0\0\0\0\0\0\0\0\0\0\x2\xde\0\0\x2\x46\0\0\0\0\x2\0\0\0\a\x80\0\0\0\0\0\0\0\0\0\0\x3\x42\0\0\x3\xe7) + +[Troubleshooting] +force_raster_widgets=1 +ignored_applications=@Invalid() -- cgit v1.2.3 From 469bf1ace66604e6b2b5b5e4a027d69383f6e63d Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 6 Feb 2024 12:09:17 -0600 Subject: hypr: remove hyprload Upstream hyprpm is now in both Artix and Arch repos, so now we will be using that instead of hyprload. --- hypr/hyprland.conf | 3 --- hypr/hyprload.toml | 3 --- 2 files changed, 6 deletions(-) delete mode 100644 hypr/hyprload.toml diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 985a706..4754afe 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -13,7 +13,6 @@ monitor = DP-1, 1920x1080@60, 1920x0, 1 exec-once = ~/.config/autostart.sh exec-once = /usr/lib/polkit-kde-authentication-agent-1 exec-once = xdph -#exec-once = $HOME/.local/share/hyprload/hyprload.sh exec-once = hyprpm reload -n exec-once = pypr #}}} @@ -305,8 +304,6 @@ bind = $mainMod, W, exec, t waybar bind = $mainMod, Q, exec, loginctl lock-session bind = $mainMod $secdMod CONTROL, Q, exec, systemctl suspend bind = $mainMod SHIFT, G, exec, get-app-id -bind = $mainMod CONTROL SHIFT, R, hyprload, reload -bind = $mainMod CONTROL SHIFT, U, hyprload, update #bind = $mainMod CONTROL, R, exec, startx -- /usr/bin/Xephyr -screen 1920x1080 :1 #}}} diff --git a/hypr/hyprload.toml b/hypr/hyprload.toml deleted file mode 100644 index 65e668c..0000000 --- a/hypr/hyprload.toml +++ /dev/null @@ -1,3 +0,0 @@ -plugins = [ - "Duckonaut/split-monitor-workspaces", -] -- cgit v1.2.3 From bc62c581b2f9ce9fa72d0ac14addee6cba073cf2 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 6 Feb 2024 12:18:16 -0600 Subject: waybar: max network name length Sets the max network name length to 22 characters --- waybar/config | 1 + 1 file changed, 1 insertion(+) diff --git a/waybar/config b/waybar/config index c7035b7..790e786 100644 --- a/waybar/config +++ b/waybar/config @@ -120,6 +120,7 @@ "format-linked": "{ifname} (No IP) ", "format-disconnected": "Disconnected ⚠", "format-alt": "{ifname}: {ipaddr}/{cidr}", + "max-length": 22, "on-click-right": "bash ~/.config/rofi/wifi_menu/rofi_wifi_menu" }, "pulseaudio": { -- cgit v1.2.3 From 52c285a7906def19f3fb18a27a39cbc1e5b58e30 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 6 Feb 2024 12:22:29 -0600 Subject: hypr: fix kitty lf binding, add volsv mic mute --- hypr/hyprland.conf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 4754afe..85f625b 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -299,11 +299,12 @@ bind = $mainMod $secdMod, P, exec, passmenu #{{{ Misc bindings bind = $mainMod, Return, exec, kitty -bind = $mainMod $secdMod, F, exec, kitty -e lfrun +bind = $mainMod $secdMod, F, exec, kitty -e lf bind = $mainMod, W, exec, t waybar bind = $mainMod, Q, exec, loginctl lock-session bind = $mainMod $secdMod CONTROL, Q, exec, systemctl suspend bind = $mainMod SHIFT, G, exec, get-app-id +bind = $mainMod Control, M, exec, volsv -m #bind = $mainMod CONTROL, R, exec, startx -- /usr/bin/Xephyr -screen 1920x1080 :1 #}}} -- cgit v1.2.3 From 83274ffd4d91721d643d6c9995df9a670d0bcad3 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 6 Feb 2024 15:46:57 -0600 Subject: hypr: Actually implement pseudo-minimize I apparently lied in the commit where I said I did --- hypr/hyprland.conf | 2 +- hypr/pyprland.toml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 85f625b..679dcda 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -225,7 +225,7 @@ bind = $mainMod SHIFT, SPACE, togglefloating, bind = $mainMod $secdMod, F2, exec, ~/.config/hypr/gamemode.sh bind = $mainMod, F, fullscreen, 0 bind = $mainMod, M, fullscreen, 1 -bind = $mainMod, N, exec, pypr toggle_minimized +bind = $mainMod, N, exec, pypr toggle_special bind = $mainMod SHIFT, N, togglespecialworkspace, minimized #}}} diff --git a/hypr/pyprland.toml b/hypr/pyprland.toml index 935f1a8..f9775ab 100644 --- a/hypr/pyprland.toml +++ b/hypr/pyprland.toml @@ -1,6 +1,7 @@ [pyprland] plugins = [ "scratchpads", + "toggle_special", "expose" ] -- cgit v1.2.3 From a4413556bfa84121291f687195d53bc21bce0ff1 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 6 Feb 2024 23:30:46 -0600 Subject: sh: fix volsv in PATH volsv was wrong in .profile when setting the path in two different ways. Nice. --- sh/profile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sh/profile b/sh/profile index 901c581..33faf7a 100644 --- a/sh/profile +++ b/sh/profile @@ -115,8 +115,8 @@ fi if [ -d "$HOME/.local/bin/ignore" ]; then addtopath "$HOME/.local/bin/ignore" fi -if [ -d "$HOME/local/bin/volsv" ]; then - addtopath "$HOME/.local/volsv" +if [ -d "$HOME/.local/bin/volsv" ]; then + PATH="$PATH:$HOME/.local/bin/volsv" fi if [ -d "$HOME/.local/bin" ]; then addtopath "$HOME/.local/bin" -- cgit v1.2.3 From f8fe06ceeff3629fbe1bef75f9754d04a9083d77 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 6 Feb 2024 23:31:35 -0600 Subject: hypr: Fix REAPER/yabridge broken menus This adds in windowrules to fix the broken menu spawning when using certain plugins through yabridge in REAPER. --- hypr/hyprland.conf | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 679dcda..7f26816 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -154,10 +154,16 @@ plugin { windowrule = windowdance, title:^(Rhythm Doctor)$ windowrule = fullscreen, ^(Xephyr)$ windowrule = float, title:^(LibreWolf - Choose User Profile)$ -windowrulev2 = float, class:^(yabridge-host.exe.so)$, title:^(menu)$ -windowrulev2 = float,floating:0,title:^(menu*) -windowrulev2 = forceinput,title:^(menu*) -windowrulev2 = windowdance,title:^(menu*) +windowrule = float, class:^(xdg-desktop-portal-gtk) +windowrulev2 = tile, class:^(REAPER)$, title:^(.*REAPER v[0-9.]* - Licensed for personal/small business use)$ +windowrulev2 = move cursor -50% -50%, class:^(yabridge-host.exe.so)$, title:^(menu)$ +windowrulev2 = nofocus, class:^(yabridge-host.exe.so)$, title:^(\s*)$ +windowrulev2 = move cursor -50% -50%, class:^(REAPER)$, title:^(Snap/Grid Settings)$ +windowrulev2 = move cursor -50% -50%, class:^(REAPER)$, title:^(Routing for track [0-9]*)$ +#windowrulev2 = float,floating:0, title:^(menu)$ +#windowrulev2 = forceinput, title:^(menu)$ +#windowrulev2 = windowdance, title:^(menu)$ +#windowrulev2 = nofocus, title:^(menu)$, class:^(yabridge\-host\.exe\.so)$ #}}} #{{{ Mods -- cgit v1.2.3 From 4f070005de1e8de35a66fe4679a478b6c4001a2e Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 8 Feb 2024 21:51:15 -0600 Subject: nvim: Expand tabs to spaces We're switching back to the objectively correct method of using spaces instead of tabs. --- nvim/init.vim | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/nvim/init.vim b/nvim/init.vim index 59332e9..1f877ed 100644 --- a/nvim/init.vim +++ b/nvim/init.vim @@ -51,12 +51,12 @@ set hlsearch " Highlight all search results set smartcase " Enable smart-case search set incsearch " Searches for strings incrementally -set noexpandtab " Use spaces instead of tabs -set shiftwidth=4 " Number of auto-indent spaces -set smartindent " Enable smart-indent -set nosmarttab " Enable smart-tabs -"set softtabstop=2 " Number of spaces per Tab -set tabstop=4 +set autoindent " Enable auto-indent +"set smartindent " Enable smart-indent +"set nosmarttab " Enable smart-tabs +set expandtab " Use spaces instead of tabs +set tabstop=2 " Number of spaces per tab +set shiftwidth=2 " Number of auto-indent spaces "" Advanced -- cgit v1.2.3 From 1802af2caf8f26820a8c0dfa3149fbfe82afe4c3 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 8 Feb 2024 21:52:00 -0600 Subject: nvim: reorganize init.vim to have better comment alignment This is purely for my OCD. --- nvim/init.vim | 60 +++++++++++++++++++++++++++++------------------------------ 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/nvim/init.vim b/nvim/init.vim index 1f877ed..211452e 100644 --- a/nvim/init.vim +++ b/nvim/init.vim @@ -1,34 +1,34 @@ " vimplugs {{{ call plug#begin('~/.config/nvim/plugged') " colorschemes {{{ -Plug 'tomasiser/vim-code-dark' " codedark color scheme -Plug 'flazz/vim-colorschemes' " meta-color scheme package -Plug 'ZachIndigo/vim-preglow' " my old color scheme +Plug 'tomasiser/vim-code-dark' " codedark color scheme +Plug 'flazz/vim-colorschemes' " meta-color scheme package +Plug 'ZachIndigo/vim-preglow' " my old color scheme " }}} " language support {{{ -Plug 'axvr/org.vim' " basic org markup language implementation -Plug 'ziglang/zig.vim' " zig programming language -Plug 'jdonaldson/vaxe' " haxe programming language +Plug 'axvr/org.vim' " basic org markup language implementation +Plug 'ziglang/zig.vim' " zig programming language +Plug 'jdonaldson/vaxe' " haxe programming language Plug 'xuhdev/vim-latex-live-preview', { 'for': 'tex' } " latex live preview support -Plug 'waycrate/swhkd-vim' " swhkd syntax highlighting -Plug 'HiPhish/guile.vim' " guile syntax highlighting +Plug 'waycrate/swhkd-vim' " swhkd syntax highlighting +Plug 'HiPhish/guile.vim' " guile syntax highlighting " }}} " utility {{{ -Plug 'preservim/nerdtree' " directory tree interface -Plug 'Xuyuanp/nerdtree-git-plugin' " git status indicator for nerdtree -Plug 'PhilRunninger/nerdtree-visual-selection' " allows visual selection mode in nerdtree -Plug 'tpope/vim-fugitive' " git command interface -Plug 'junegunn/goyo.vim' " simplify the user interface (distraction-free) [BROKEN] -Plug 'junegunn/limelight.vim' " focus on single paragraph of text at a time -Plug 'vim-airline/vim-airline' " powerline the vim bottom bar -Plug 'nathanaelkane/vim-indent-guides' " indent guides for vim -Plug 'mhinz/vim-signify' " use signs to show diffs -Plug 'tpope/vim-endwise' " auto end functions/if statements -Plug 'tpope/vim-surround' " auto close stuff -Plug 'mattn/emmet-vim' " html css easy formating -Plug 'godlygeek/tabular' " Needed for vim-markdown -Plug 'plasticboy/vim-markdown' " Better markdown support -Plug 'ryanoasis/vim-devicons' " dev icons for nerdtree +Plug 'preservim/nerdtree' " directory tree interface +Plug 'Xuyuanp/nerdtree-git-plugin' " git status indicator for nerdtree +Plug 'PhilRunninger/nerdtree-visual-selection' " allows visual selection mode in nerdtree +Plug 'tpope/vim-fugitive' " git command interface +Plug 'junegunn/goyo.vim' " simplify the user interface (distraction-free) [BROKEN] +Plug 'junegunn/limelight.vim' " focus on single paragraph of text at a time +Plug 'vim-airline/vim-airline' " powerline the vim bottom bar +Plug 'nathanaelkane/vim-indent-guides' " indent guides for vim +Plug 'mhinz/vim-signify' " use signs to show diffs +Plug 'tpope/vim-endwise' " auto end functions/if statements +Plug 'tpope/vim-surround' " auto close stuff +Plug 'mattn/emmet-vim' " html css easy formating +Plug 'godlygeek/tabular' " Needed for vim-markdown +Plug 'plasticboy/vim-markdown' " Better markdown support +Plug 'ryanoasis/vim-devicons' " dev icons for nerdtree " }}} call plug#end() @@ -38,7 +38,7 @@ call plug#end() "" nvimrc: "" General -set showmatch " Highlight matching brace +set showmatch " Highlight matching brace set number set relativenumber @@ -47,9 +47,9 @@ set relativenumber "colorscheme SlateDark colorscheme preglow -set hlsearch " Highlight all search results -set smartcase " Enable smart-case search -set incsearch " Searches for strings incrementally +set hlsearch " Highlight all search results +set smartcase " Enable smart-case search +set incsearch " Searches for strings incrementally set autoindent " Enable auto-indent "set smartindent " Enable smart-indent @@ -60,9 +60,9 @@ set shiftwidth=2 " Number of auto-indent spaces "" Advanced -set ruler " Show row and column ruler information -set undolevels=1000 " Number of undo levels -set backspace=indent,eol,start " Backspace behaviour +set ruler " Show row and column ruler information +set undolevels=1000 " Number of undo levels +set backspace=indent,eol,start " Backspace behaviour filetype plugin indent on "" GUI Config -- cgit v1.2.3 From 5bb5ef9ec51f4efced3a06cafcf420aa805a5066 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 8 Feb 2024 21:52:42 -0600 Subject: nvim: enable live preview for .tex This re-enables the live preview plugin for .tex files. --- nvim/init.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvim/init.vim b/nvim/init.vim index 211452e..cac706f 100644 --- a/nvim/init.vim +++ b/nvim/init.vim @@ -188,7 +188,7 @@ autocmd BufWinEnter * if getcmdwintype() == '' | silent NERDTreeMirror | endif " custom augroup {{{ augroup custom autocmd! - " au BufEnter *.tex :LLPStartPreview + au BufEnter *.tex :LLPStartPreview au BufEnter *.md :set textwidth=80 au BufEnter *.ms :set textwidth=80 " au BufEnter *.c :colo DevC++ -- cgit v1.2.3 From c28620857a470ba43b93207c4c339dce43c1df83 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 8 Feb 2024 21:53:11 -0600 Subject: nvim: Use DevC++ colo for c/c++ files This uses a colorscheme specifically for c/c++ files when editing c/c++ files. --- nvim/init.vim | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/nvim/init.vim b/nvim/init.vim index cac706f..a28cfc3 100644 --- a/nvim/init.vim +++ b/nvim/init.vim @@ -191,12 +191,12 @@ augroup custom au BufEnter *.tex :LLPStartPreview au BufEnter *.md :set textwidth=80 au BufEnter *.ms :set textwidth=80 - " au BufEnter *.c :colo DevC++ - " au BufEnter *.h :colo DevC++ - " au BufEnter *.cc :colo DevC++ - " au BufEnter *.hh :colo DevC++ - " au BufEnter *.cpp :colo DevC++ - " au BufEnter *.hpp :colo DevC++ + au BufEnter *.c :colo DevC++ + au BufEnter *.h :colo DevC++ + au BufEnter *.cc :colo DevC++ + au BufEnter *.hh :colo DevC++ + au BufEnter *.cpp :colo DevC++ + au BufEnter *.hpp :colo DevC++ au BufWritePost init.vim :source % " au BufWritePost *.tex :make au BufWritePost *sxhkdrc* :!pkill -USR1 -x sxhkd -- cgit v1.2.3 From d5549cea2e3750c0f9bc566645c90227603da7ba Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 8 Feb 2024 21:54:34 -0600 Subject: hyprpaper: Disables the splash text This disables the text from showing up over the wallpaper. --- hypr/hyprpaper.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/hypr/hyprpaper.conf b/hypr/hyprpaper.conf index a0239e5..69e5224 100644 --- a/hypr/hyprpaper.conf +++ b/hypr/hyprpaper.conf @@ -1 +1,2 @@ +splash = false preload = ~/Pictures/background.png -- cgit v1.2.3 From 881fb04020a42f37c7383a634f682b608c3d2398 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 8 Feb 2024 21:55:12 -0600 Subject: tmux: Use user-installed tpm rather than the system path This uses the path from the github install guide for tpm, so it should work if you just copy and paste from there. --- tmux/tmux.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tmux/tmux.conf b/tmux/tmux.conf index d421349..5d3bd6c 100644 --- a/tmux/tmux.conf +++ b/tmux/tmux.conf @@ -27,4 +27,4 @@ set -g @plugin 'tmux-plugins/tmux-sensible' set -g @plugin 'https://git.linux-help.org/psi-jack/tmux-indicators' set -g @plugin 'tmux-plugins/tmux-battery' -run '/usr/share/tmux-plugin-manager/tpm' +run '~/.config/tmux/plugins/tpm/tpm' -- cgit v1.2.3 From 18bdbb45e95ca985faebcd28802b92f70d0a4776 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 8 Feb 2024 21:57:23 -0600 Subject: hypr: this is a basic ptt using volsv This toggles the mic mute when pressing the keybinding, and when releasing it. This acts as a push-to-talk, or a push-to-mute, depending on what the mic status is before pressing it.` --- hypr/hyprland.conf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 7f26816..8346fbf 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -310,7 +310,9 @@ bind = $mainMod, W, exec, t waybar bind = $mainMod, Q, exec, loginctl lock-session bind = $mainMod $secdMod CONTROL, Q, exec, systemctl suspend bind = $mainMod SHIFT, G, exec, get-app-id -bind = $mainMod Control, M, exec, volsv -m +#bindr = , XF86AudioMicMute, exec, volsv -m +bind = $mainMod CONTROL, M, exec, volsv -m +bindr = $mainMod CONTROL, M, exec, volsv -m #bind = $mainMod CONTROL, R, exec, startx -- /usr/bin/Xephyr -screen 1920x1080 :1 #}}} -- cgit v1.2.3 From ea51e17e52199a89b34a3550c920cb6a6a8cf590 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 8 Feb 2024 21:59:19 -0600 Subject: hypr: Fix XF86 keys XF86AudioMicMute, XF86MonBrightnessUp and XF86MonBrightnessDown were not working properly; this fixes all of those buttons. --- hypr/hyprland.conf | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 8346fbf..2da44f8 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -422,10 +422,11 @@ bind = , XF86AudioStop, exec, playerctl stop bind = , XF86AudioPrev, exec, playerctl previous bind = , XF86AudioNext, exec, playerctl next bind = , XF86AudioMute, exec, volsv -t -bindl = , XF86AudioMicMute, exec, volsv -m +#bindl = , XF86AudioMicMute, exec, volsv -m +bind = , XF86AudioMicMute, exec, volsv -m bindel = , XF86MonBrightnessUp, exec, bl -i bindel = , XF86MonBrightnessDown, exec, bl -d -bindl = $mainMod, XF86MonBrightnessUp, exec, bl -s 100 -bindl = $mainMod, XF86MonBrightnessDown, exec, bl -s 1 +bindl = $mainMod, XF86MonBrightnessUp, exec, bl -I 1 +bindl = $mainMod, XF86MonBrightnessDown, exec, bl -D 1 bind = , Print, exec, scrshot #}}} -- cgit v1.2.3 From f56d144efa5a36af5c55d54bb42d7f9bfd1c00d5 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 8 Feb 2024 22:00:06 -0600 Subject: hypr: float Tk windows Tk windows should float (this is mostly for testing the python tk programs I've written that need to). --- hypr/hyprland.conf | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 2da44f8..c3b1e2b 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -155,15 +155,12 @@ windowrule = windowdance, title:^(Rhythm Doctor)$ windowrule = fullscreen, ^(Xephyr)$ windowrule = float, title:^(LibreWolf - Choose User Profile)$ windowrule = float, class:^(xdg-desktop-portal-gtk) +windowrule = float, class:^(Tk)$ windowrulev2 = tile, class:^(REAPER)$, title:^(.*REAPER v[0-9.]* - Licensed for personal/small business use)$ windowrulev2 = move cursor -50% -50%, class:^(yabridge-host.exe.so)$, title:^(menu)$ windowrulev2 = nofocus, class:^(yabridge-host.exe.so)$, title:^(\s*)$ windowrulev2 = move cursor -50% -50%, class:^(REAPER)$, title:^(Snap/Grid Settings)$ windowrulev2 = move cursor -50% -50%, class:^(REAPER)$, title:^(Routing for track [0-9]*)$ -#windowrulev2 = float,floating:0, title:^(menu)$ -#windowrulev2 = forceinput, title:^(menu)$ -#windowrulev2 = windowdance, title:^(menu)$ -#windowrulev2 = nofocus, title:^(menu)$, class:^(yabridge\-host\.exe\.so)$ #}}} #{{{ Mods -- cgit v1.2.3 From 144724f2784d3ea39f35a35250b66c38a4507024 Mon Sep 17 00:00:00 2001 From: zachir Date: Sat, 23 Mar 2024 18:04:57 -0500 Subject: Update hyprland config - Remove workspace module - Update window rules - Update looks --- hypr/hyprland.conf | 135 +++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 94 insertions(+), 41 deletions(-) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index c3b1e2b..7cd4959 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -31,6 +31,7 @@ input { numlock_by_default = true scroll_method = "2fg" follow_mouse = 1 + mouse_refocus = false touchpad { natural_scroll = no } @@ -116,7 +117,7 @@ master { # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more new_is_master = false new_on_top = true - no_gaps_when_only = true + no_gaps_when_only = false orientation = left inherit_fullscreen = true } @@ -138,11 +139,11 @@ device:epic mouse V1 { #}}} #{{{ plugin options -plugin { - split-monitor-workspaces { - count = 9 - } -} +#plugin { +# split-monitor-workspaces { +# count = 9 +# } +#} #}}} #{{{ Windowrules @@ -156,11 +157,27 @@ windowrule = fullscreen, ^(Xephyr)$ windowrule = float, title:^(LibreWolf - Choose User Profile)$ windowrule = float, class:^(xdg-desktop-portal-gtk) windowrule = float, class:^(Tk)$ +windowrule = workspace 2, title:^(REAPER .*initializing.*)$ +windowrulev2 = stayfocused, title:^()$,class:^(steam)$ +windowrulev2 = minsize 1 1, title:^()$,class:^(steam)$ +windowrulev2 = stayfocused, title:^(menu)$,class:^(yabridge-host.exe.so)$ +windowrulev2 = minsize 1 1, title:^(menu)$,class:^(yabridge-host.exe.so)$ windowrulev2 = tile, class:^(REAPER)$, title:^(.*REAPER v[0-9.]* - Licensed for personal/small business use)$ windowrulev2 = move cursor -50% -50%, class:^(yabridge-host.exe.so)$, title:^(menu)$ -windowrulev2 = nofocus, class:^(yabridge-host.exe.so)$, title:^(\s*)$ -windowrulev2 = move cursor -50% -50%, class:^(REAPER)$, title:^(Snap/Grid Settings)$ -windowrulev2 = move cursor -50% -50%, class:^(REAPER)$, title:^(Routing for track [0-9]*)$ +#windowrulev2 = nofocus, class:^(yabridge-host.exe.so)$, title:^(\s*)$ +#windowrulev2 = move cursor -50% -50%, class:^(REAPER)$, title:^(Snap/Grid Settings)$ +#windowrulev2 = move cursor -50% -50%, class:^(REAPER)$, title:^(Routing for track [0-9]*)$ +#windowrulev2 = move cursor -50% -50%, class:^(REAPER)$, title:^(Metronome and pre-roll settings)$ +windowrulev2 = tile, class:^(WebApp-Qobuz[0-9]*)$ +#windowrulev2 = move cursor -50% -50%, class:^(yabridge-host.exe.so)$, title:^(menu)$ +#windowrulev2 = nofocus, class:^(yabridge-host.exe.so)$, title:^(\s*)$ +#windowrulev2 = move cursor -50% -50%, class:^(yabridge-host.exe.so)$, title:^(\s*)$ +#windowrulev2 = move cursor -50% -50%, class:^(REAPER)$, title:^(Snap/Grid Settings)$ +#windowrulev2 = move cursor -50% -50%, class:^(REAPER)$, title:^(Routing for track [0-9]*)$ +#windowrulev2 = float,floating:0, title:^(menu)$ +#windowrulev2 = forceinput, title:^(menu)$ +#windowrulev2 = windowdance, title:^(menu)$ +#windowrulev2 = nofocus, title:^(menu)$, class:^(yabridge\-host\.exe\.so)$ #}}} #{{{ Mods @@ -232,40 +249,76 @@ bind = $mainMod, N, exec, pypr toggle_special bind = $mainMod SHIFT, N, togglespecialworkspace, minimized #}}} -#{{{ Workspace binds (implied using split-monitor-workspaces plugin!) +#{{{ Workspace binds (using split-monitor-workspaces plugin!) +## Switch workspaces with mainMod + [0-9] +#bind = $mainMod, 1, split-workspace, 1 +#bind = $mainMod, 2, split-workspace, 2 +#bind = $mainMod, 3, split-workspace, 3 +#bind = $mainMod, 4, split-workspace, 4 +#bind = $mainMod, 5, split-workspace, 5 +#bind = $mainMod, 6, split-workspace, 6 +#bind = $mainMod, 7, split-workspace, 7 +#bind = $mainMod, 8, split-workspace, 8 +#bind = $mainMod, 9, split-workspace, 9 +## Move active window to a workspace with mainMod + SHIFT + [0-9] +#bind = $mainMod SHIFT, 1, split-movetoworkspacesilent, 1 +#bind = $mainMod SHIFT, 2, split-movetoworkspacesilent, 2 +#bind = $mainMod SHIFT, 3, split-movetoworkspacesilent, 3 +#bind = $mainMod SHIFT, 4, split-movetoworkspacesilent, 4 +#bind = $mainMod SHIFT, 5, split-movetoworkspacesilent, 5 +#bind = $mainMod SHIFT, 6, split-movetoworkspacesilent, 6 +#bind = $mainMod SHIFT, 7, split-movetoworkspacesilent, 7 +#bind = $mainMod SHIFT, 8, split-movetoworkspacesilent, 8 +#bind = $mainMod SHIFT, 9, split-movetoworkspacesilent, 9 +#bind = $mainMod CONTROL SHIFT, 1, split-movetoworkspace, 1 +#bind = $mainMod CONTROL SHIFT, 2, split-movetoworkspace, 2 +#bind = $mainMod CONTROL SHIFT, 3, split-movetoworkspace, 3 +#bind = $mainMod CONTROL SHIFT, 4, split-movetoworkspace, 4 +#bind = $mainMod CONTROL SHIFT, 5, split-movetoworkspace, 5 +#bind = $mainMod CONTROL SHIFT, 6, split-movetoworkspace, 6 +#bind = $mainMod CONTROL SHIFT, 7, split-movetoworkspace, 7 +#bind = $mainMod CONTROL SHIFT, 8, split-movetoworkspace, 8 +#bind = $mainMod CONTROL SHIFT, 9, split-movetoworkspace, 9 +#bind = $mainMod, mouse_down, split-workspace, e+1 +#bind = $mainMod, mouse_up, split-workspace, e-1 +#bind = $mainMod, comma, split-changemonitor, +1 +#bind = $mainMod, period, split-changemonitor, -1 +#}}} + +#{{{ Workspace binds (not using split-monitor-workspaces plugin!) # Switch workspaces with mainMod + [0-9] -bind = $mainMod, 1, split-workspace, 1 -bind = $mainMod, 2, split-workspace, 2 -bind = $mainMod, 3, split-workspace, 3 -bind = $mainMod, 4, split-workspace, 4 -bind = $mainMod, 5, split-workspace, 5 -bind = $mainMod, 6, split-workspace, 6 -bind = $mainMod, 7, split-workspace, 7 -bind = $mainMod, 8, split-workspace, 8 -bind = $mainMod, 9, split-workspace, 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 # Move active window to a workspace with mainMod + SHIFT + [0-9] -bind = $mainMod SHIFT, 1, split-movetoworkspacesilent, 1 -bind = $mainMod SHIFT, 2, split-movetoworkspacesilent, 2 -bind = $mainMod SHIFT, 3, split-movetoworkspacesilent, 3 -bind = $mainMod SHIFT, 4, split-movetoworkspacesilent, 4 -bind = $mainMod SHIFT, 5, split-movetoworkspacesilent, 5 -bind = $mainMod SHIFT, 6, split-movetoworkspacesilent, 6 -bind = $mainMod SHIFT, 7, split-movetoworkspacesilent, 7 -bind = $mainMod SHIFT, 8, split-movetoworkspacesilent, 8 -bind = $mainMod SHIFT, 9, split-movetoworkspacesilent, 9 -bind = $mainMod CONTROL SHIFT, 1, split-movetoworkspace, 1 -bind = $mainMod CONTROL SHIFT, 2, split-movetoworkspace, 2 -bind = $mainMod CONTROL SHIFT, 3, split-movetoworkspace, 3 -bind = $mainMod CONTROL SHIFT, 4, split-movetoworkspace, 4 -bind = $mainMod CONTROL SHIFT, 5, split-movetoworkspace, 5 -bind = $mainMod CONTROL SHIFT, 6, split-movetoworkspace, 6 -bind = $mainMod CONTROL SHIFT, 7, split-movetoworkspace, 7 -bind = $mainMod CONTROL SHIFT, 8, split-movetoworkspace, 8 -bind = $mainMod CONTROL SHIFT, 9, split-movetoworkspace, 9 -bind = $mainMod, mouse_down, split-workspace, e+1 -bind = $mainMod, mouse_up, split-workspace, e-1 -bind = $mainMod, comma, split-changemonitor, +1 -bind = $mainMod, period, split-changemonitor, -1 +bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1 +bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2 +bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3 +bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4 +bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5 +bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6 +bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7 +bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8 +bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9 +bind = $mainMod CONTROL SHIFT, 1, movetoworkspace, 1 +bind = $mainMod CONTROL SHIFT, 2, movetoworkspace, 2 +bind = $mainMod CONTROL SHIFT, 3, movetoworkspace, 3 +bind = $mainMod CONTROL SHIFT, 4, movetoworkspace, 4 +bind = $mainMod CONTROL SHIFT, 5, movetoworkspace, 5 +bind = $mainMod CONTROL SHIFT, 6, movetoworkspace, 6 +bind = $mainMod CONTROL SHIFT, 7, movetoworkspace, 7 +bind = $mainMod CONTROL SHIFT, 8, movetoworkspace, 8 +bind = $mainMod CONTROL SHIFT, 9, movetoworkspace, 9 +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 +#bind = $mainMod, comma, split-changemonitor, +1 +#bind = $mainMod, period, split-changemonitor, -1 #}}} #{{{ Mouse binds -- cgit v1.2.3 From 5cc306a5da9174e9dbb3aed5cfb441d317ff24cc Mon Sep 17 00:00:00 2001 From: zachir Date: Sat, 23 Mar 2024 18:07:17 -0500 Subject: Set pyprland scratchpads to a size and position --- hypr/pyprland.toml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/hypr/pyprland.toml b/hypr/pyprland.toml index f9775ab..dfa2aab 100644 --- a/hypr/pyprland.toml +++ b/hypr/pyprland.toml @@ -10,70 +10,94 @@ animation = "" command = "kitty --class sphtop htop" class = "sphtop" lazy = true +size = "50% 50%" +position = "25% 25%" [scratchpads.spterm] animation = "" command = "kitty --class spterm" class = "spterm" lazy = true +size = "50% 50%" +position = "25% 25%" [scratchpads.sppmxr] animation = "" command = "kitty --class sppmxr pulsemixer" class = "sppmxr" lazy = true +size = "50% 50%" +position = "25% 25%" [scratchpads.spblue] animation = "" command = "kitty --class spblue bluetoothctl" class = "spblue" lazy = true +size = "50% 50%" +position = "25% 25%" [scratchpads.spncmp] animation = "" command = "kitty --class spncmp ncmpcpp" class = "spncmp" lazy = true +size = "50% 50%" +position = "25% 25%" [scratchpads.spmutt] animation = "" command = "kitty --class spmutt neomutt" class = "spmutt" lazy = true +size = "50% 50%" +position = "25% 25%" [scratchpads.spprof] animation = "" command = "kitty --class spprof profanity" class = "spprof" lazy = true +size = "50% 50%" +position = "25% 25%" [scratchpads.spirss] animation = "" command = "kitty --class spirss irssi" class = "spirss" lazy = true +size = "50% 50%" +position = "25% 25%" [scratchpads.sptodo] animation = "" command = "kitty --class sptodo todo" class = "sptodo" lazy = true +size = "50% 50%" +position = "25% 25%" [scratchpads.sptrmc] animation = "" command = "kitty --class sptrmc tremc" class = "sptremc" lazy = true +size = "50% 50%" +position = "25% 25%" [scratchpads.qpwgraph] animation = "" command = "qpwgraph" class = "org.rncbc.qpwgraph" lazy = true +size = "50% 50%" +position = "25% 25%" [scratchpads.easyeffects] animation = "" command = "flatpak run com.github.wwmm.easyeffects" class = "com.github.wwmm.easyeffects" lazy = true +size = "50% 50%" +position = "25% 25%" unfocus = "hide" -- cgit v1.2.3 From ec4d2768355e09bef1ddc0cbb7fa54b71c7f1e17 Mon Sep 17 00:00:00 2001 From: zachir Date: Sat, 23 Mar 2024 18:07:49 -0500 Subject: Set kitty TERM to kitty-256color This increases compatibility with SSH. --- kitty/kitty.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kitty/kitty.conf b/kitty/kitty.conf index 99d5440..6207c2f 100644 --- a/kitty/kitty.conf +++ b/kitty/kitty.conf @@ -1469,7 +1469,7 @@ color15 #ffffff #: This option must be a comma separated list of the above values. #: This only source the first valid one in the above order. -# term xterm-kitty +term xterm-256color #: The value of the TERM environment variable to set. Changing this #: can break many terminal programs, only change it if you know what -- cgit v1.2.3 From 1747bb03f303ce3bd4b61b373f05af836ff0ecbc Mon Sep 17 00:00:00 2001 From: zachir Date: Sat, 23 Mar 2024 18:08:59 -0500 Subject: Set nvim colo and remove C++ auto colo --- nvim/init.vim | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/nvim/init.vim b/nvim/init.vim index a28cfc3..8c0d378 100644 --- a/nvim/init.vim +++ b/nvim/init.vim @@ -43,9 +43,7 @@ set showmatch " Highlight matching brace set number set relativenumber -"colorscheme CandyPaper -"colorscheme SlateDark -colorscheme preglow +colorscheme 256-grayvim set hlsearch " Highlight all search results set smartcase " Enable smart-case search @@ -191,12 +189,12 @@ augroup custom au BufEnter *.tex :LLPStartPreview au BufEnter *.md :set textwidth=80 au BufEnter *.ms :set textwidth=80 - au BufEnter *.c :colo DevC++ - au BufEnter *.h :colo DevC++ - au BufEnter *.cc :colo DevC++ - au BufEnter *.hh :colo DevC++ - au BufEnter *.cpp :colo DevC++ - au BufEnter *.hpp :colo DevC++ + "au BufEnter *.c :colo DevC++ + "au BufEnter *.h :colo DevC++ + "au BufEnter *.cc :colo DevC++ + "au BufEnter *.hh :colo DevC++ + "au BufEnter *.cpp :colo DevC++ + "au BufEnter *.hpp :colo DevC++ au BufWritePost init.vim :source % " au BufWritePost *.tex :make au BufWritePost *sxhkdrc* :!pkill -USR1 -x sxhkd -- cgit v1.2.3 From d2bf0ad637eaa5dd472f0c4d173e03d4b2a2c47f Mon Sep 17 00:00:00 2001 From: zachir Date: Sat, 23 Mar 2024 18:09:54 -0500 Subject: Add systemctl aliases --- sh/aliases | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sh/aliases b/sh/aliases index ef9a53b..7b3eba2 100644 --- a/sh/aliases +++ b/sh/aliases @@ -71,5 +71,9 @@ case `uname -s` in ;; esac +## Systemctl +alias us='systemctl --user' +alias s='systemctl' + ## Runit #alias ursm='env SVDIR="$HOME/.local/sv/" rsm' -- cgit v1.2.3 From 7a250319aaa6ca612b8c30f362b6855ae43e410c Mon Sep 17 00:00:00 2001 From: zachir Date: Sat, 23 Mar 2024 18:11:04 -0500 Subject: Fix sh not loading xdg user dirs --- sh/profile | 3 ++- zsh/.zshenv | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/sh/profile b/sh/profile index 33faf7a..c03fc93 100644 --- a/sh/profile +++ b/sh/profile @@ -6,13 +6,14 @@ export XDG_DATA_HOME=${XDG_DATA_HOME:="$HOME/.local/share"} export XDG_CACHE_HOME=${XDG_CACHE_HOME:="$HOME/.cache"} export XDG_CONFIG_HOME=${XDG_CONFIG_HOME:="$HOME/.config"} -[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs" ] && . "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs" +. "$HOME/.config/user-dirs.dirs" export XDG_CURRENT_DESKTOP="i3" export XDG_DOCUMENTS_DIR=${HOME}/Documents export XDG_DOWNLOAD_DIR=${HOME}/Downloads export XDG_DESKTOP_DIR=${HOME}/Desktop export XDG_VIDEOS_DIR=${HOME}/Videos +export XDG_DATA_DIRS="${XDG_DATA_DIRS}:$HOME/.nix-profile/share" # Doesn't seem to work export ANDROID_SDK_HOME="$XDG_CONFIG_HOME"/android diff --git a/zsh/.zshenv b/zsh/.zshenv index 286e11a..1740c82 100644 --- a/zsh/.zshenv +++ b/zsh/.zshenv @@ -1,3 +1,4 @@ # ZSH SPECIFIC CONFIGS unset HISTFILE +[ -f "$HOME/.profile" ] && . "$HOME/.profile" export ZDOTDIR=$HOME/.config/zsh -- cgit v1.2.3 From ac6234e68cb849be9a0fda7ee8c9c6dc63043615 Mon Sep 17 00:00:00 2001 From: zachir Date: Sat, 23 Mar 2024 21:56:37 -0500 Subject: Update waybar rules for hyprland/workspaces Waybar v0.10.0 changed how persistent workspaces are done in config. --- waybar/config | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/waybar/config b/waybar/config index 790e786..ec04dec 100644 --- a/waybar/config +++ b/waybar/config @@ -19,16 +19,29 @@ "format": "{icon}", "active-only": false, "all-outputs": false, - "persistent_workspaces": { - "1": [], - "2": [], - "3": [], - "4": [], - "5": [], - "6": [], - "7": [], - "8": [], - "9": [] + "format-icons": { + "1": "1", + "2": "2", + "3": "3", + "4": "4", + "5": "5", + "6": "6", + "7": "7", + "8": "8", + "9": "9", + "10": "1", + "11": "2", + "12": "3", + "13": "4", + "14": "5", + "15": "6", + "16": "7", + "17": "8", + "18": "9", + }, + "persistent-workspaces": { + "DP-1": [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ], + "HDMI-A-1": [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ], }, "on-scroll-up": "hyprctl dispatch split-workspace e+1", "on-scroll-down": "hyprctl dispatch split-workspace e-1", -- cgit v1.2.3 From de752a009e8ac1df83c1631dac8bbf61a741d087 Mon Sep 17 00:00:00 2001 From: zachir Date: Sun, 24 Mar 2024 01:59:30 -0500 Subject: Fix hyprland config file errors --- hypr/hyprland.conf | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 7cd4959..e053008 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -130,14 +130,6 @@ gestures { } #}}} -#{{{ Device options -# Example per-device config -# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more -device:epic mouse V1 { - sensitivity = -0.5 -} -#}}} - #{{{ plugin options #plugin { # split-monitor-workspaces { @@ -207,20 +199,20 @@ bind = $mainMod, O, splitratio, exact 0.69 #MASTER #}}} #{{{ Dwindle layout binds -## Dwindle layout binds +# Dwindle layout binds #bind = $mainMod, P, pseudo, #DWINDLE #bind = $mainMod $secdMod, S, togglesplit, #DWINDLE -## Move focus with mainMod + HJKL +# Move focus with mainMod + HJKL #bind = $mainMod, H, movefocus, l #DWINDLE #bind = $mainMod, L, movefocus, r #DWINDLE #bind = $mainMod, K, movefocus, u #DWINDLE #bind = $mainMod, J, movefocus, d #DWINDLE -## Move window with mainMod + HJKL +# Move window with mainMod + HJKL #bind = $mainMod SHIFT, L, movewindow, r #DWINDLE #bind = $mainMod SHIFT, H, movewindow, l #DWINDLE #bind = $mainMod SHIFT, J, movewindow, d #DWINDLE #bind = $mainMod SHIFT, K, movewindow, u #DWINDLE -## Resize clients with mainMod + secdMod + HJKL +# Resize clients with mainMod + secdMod + HJKL #binde = $mainMod $secdMod, L, resizeactive, 10 0 #DWINDLE #binde = $mainMod $secdMod, H, resizeactive, -10 0 #DWINDLE #binde = $mainMod $secdMod, K, resizeactive, 0 -10 #DWINDLE @@ -250,7 +242,7 @@ bind = $mainMod SHIFT, N, togglespecialworkspace, minimized #}}} #{{{ Workspace binds (using split-monitor-workspaces plugin!) -## Switch workspaces with mainMod + [0-9] +# Switch workspaces with mainMod + [0-9] #bind = $mainMod, 1, split-workspace, 1 #bind = $mainMod, 2, split-workspace, 2 #bind = $mainMod, 3, split-workspace, 3 @@ -260,7 +252,7 @@ bind = $mainMod SHIFT, N, togglespecialworkspace, minimized #bind = $mainMod, 7, split-workspace, 7 #bind = $mainMod, 8, split-workspace, 8 #bind = $mainMod, 9, split-workspace, 9 -## Move active window to a workspace with mainMod + SHIFT + [0-9] +# Move active window to a workspace with mainMod + SHIFT + [0-9] #bind = $mainMod SHIFT, 1, split-movetoworkspacesilent, 1 #bind = $mainMod SHIFT, 2, split-movetoworkspacesilent, 2 #bind = $mainMod SHIFT, 3, split-movetoworkspacesilent, 3 -- cgit v1.2.3 From df7898291f0dcc003767f2ecffb2c16cfa9645a2 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 4 Jun 2024 22:08:15 -0500 Subject: Update hyprland config This adds in hyprsplit, variable refresh rate, prevents swallowing with fontpreview-ueberzug, and adds in hyprcursor environment variables. --- hypr/hyprland.conf | 139 ++++++++++++++++++++++++----------------------------- 1 file changed, 64 insertions(+), 75 deletions(-) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index e053008..36f697a 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -15,11 +15,32 @@ exec-once = /usr/lib/polkit-kde-authentication-agent-1 exec-once = xdph exec-once = hyprpm reload -n exec-once = pypr +exec-once = import-gsettings gtk-theme 'Flat-Remix-GTK-Green-Darkest-Solid' +exec-once = import-gsettings icon-theme 'Mint-X-Grey' +exec-once = import-gsettings cursor-theme 'Breeze' +exec-once = xrdb ~/.Xresources +exec-once = com.github.wwmm.easyeffects +exec-once = mpd +#}}} + +#{{{ env +# Environment variables set at launch +env = HYPRCURSOR_THEME,BreezeHypr +env = HYPRCURSOR_SIZE,36 +env = XCURSOR_THEME,BreezeX-Black +env = XCURSOR_SIZE,36 #}}} # Source a file (multi-file configs) # source = ~/.config/hypr/myColors.conf +# Debug {{{ +debug { + enable_stdout_logs = true + disable_logs = false +} +# }}} + #{{{ Input options # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ input { @@ -61,8 +82,9 @@ misc { disable_splash_rendering = true enable_swallow = true swallow_regex = ^(kitty)$ - vfr = false - vrr = true + swallow_exception_regex = ^(.*)(ueberzug)$ + vfr = true + vrr = 1 } #}}} @@ -131,11 +153,11 @@ gestures { #}}} #{{{ plugin options -#plugin { -# split-monitor-workspaces { -# count = 9 -# } -#} +plugin { + hyprsplit { + num_workspaces = 9 + } +} #}}} #{{{ Windowrules @@ -243,74 +265,41 @@ bind = $mainMod SHIFT, N, togglespecialworkspace, minimized #{{{ Workspace binds (using split-monitor-workspaces plugin!) # Switch workspaces with mainMod + [0-9] -#bind = $mainMod, 1, split-workspace, 1 -#bind = $mainMod, 2, split-workspace, 2 -#bind = $mainMod, 3, split-workspace, 3 -#bind = $mainMod, 4, split-workspace, 4 -#bind = $mainMod, 5, split-workspace, 5 -#bind = $mainMod, 6, split-workspace, 6 -#bind = $mainMod, 7, split-workspace, 7 -#bind = $mainMod, 8, split-workspace, 8 -#bind = $mainMod, 9, split-workspace, 9 -# Move active window to a workspace with mainMod + SHIFT + [0-9] -#bind = $mainMod SHIFT, 1, split-movetoworkspacesilent, 1 -#bind = $mainMod SHIFT, 2, split-movetoworkspacesilent, 2 -#bind = $mainMod SHIFT, 3, split-movetoworkspacesilent, 3 -#bind = $mainMod SHIFT, 4, split-movetoworkspacesilent, 4 -#bind = $mainMod SHIFT, 5, split-movetoworkspacesilent, 5 -#bind = $mainMod SHIFT, 6, split-movetoworkspacesilent, 6 -#bind = $mainMod SHIFT, 7, split-movetoworkspacesilent, 7 -#bind = $mainMod SHIFT, 8, split-movetoworkspacesilent, 8 -#bind = $mainMod SHIFT, 9, split-movetoworkspacesilent, 9 -#bind = $mainMod CONTROL SHIFT, 1, split-movetoworkspace, 1 -#bind = $mainMod CONTROL SHIFT, 2, split-movetoworkspace, 2 -#bind = $mainMod CONTROL SHIFT, 3, split-movetoworkspace, 3 -#bind = $mainMod CONTROL SHIFT, 4, split-movetoworkspace, 4 -#bind = $mainMod CONTROL SHIFT, 5, split-movetoworkspace, 5 -#bind = $mainMod CONTROL SHIFT, 6, split-movetoworkspace, 6 -#bind = $mainMod CONTROL SHIFT, 7, split-movetoworkspace, 7 -#bind = $mainMod CONTROL SHIFT, 8, split-movetoworkspace, 8 -#bind = $mainMod CONTROL SHIFT, 9, split-movetoworkspace, 9 -#bind = $mainMod, mouse_down, split-workspace, e+1 -#bind = $mainMod, mouse_up, split-workspace, e-1 -#bind = $mainMod, comma, split-changemonitor, +1 -#bind = $mainMod, period, split-changemonitor, -1 -#}}} - -#{{{ Workspace binds (not using split-monitor-workspaces plugin!) -# 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, 1, split:workspace, 1 +bind = $mainMod, 2, split:workspace, 2 +bind = $mainMod, 3, split:workspace, 3 +bind = $mainMod, 4, split:workspace, 4 +bind = $mainMod, 5, split:workspace, 5 +bind = $mainMod, 6, split:workspace, 6 +bind = $mainMod, 7, split:workspace, 7 +bind = $mainMod, 8, split:workspace, 8 +bind = $mainMod, 9, split:workspace, 9 # Move active window to a workspace with mainMod + SHIFT + [0-9] -bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1 -bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2 -bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3 -bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4 -bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5 -bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6 -bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7 -bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8 -bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9 -bind = $mainMod CONTROL SHIFT, 1, movetoworkspace, 1 -bind = $mainMod CONTROL SHIFT, 2, movetoworkspace, 2 -bind = $mainMod CONTROL SHIFT, 3, movetoworkspace, 3 -bind = $mainMod CONTROL SHIFT, 4, movetoworkspace, 4 -bind = $mainMod CONTROL SHIFT, 5, movetoworkspace, 5 -bind = $mainMod CONTROL SHIFT, 6, movetoworkspace, 6 -bind = $mainMod CONTROL SHIFT, 7, movetoworkspace, 7 -bind = $mainMod CONTROL SHIFT, 8, movetoworkspace, 8 -bind = $mainMod CONTROL SHIFT, 9, movetoworkspace, 9 -bind = $mainMod, mouse_down, workspace, e+1 -bind = $mainMod, mouse_up, workspace, e-1 -#bind = $mainMod, comma, split-changemonitor, +1 -#bind = $mainMod, period, split-changemonitor, -1 +bind = $mainMod SHIFT, 1, split:movetoworkspacesilent, 1 +bind = $mainMod SHIFT, 2, split:movetoworkspacesilent, 2 +bind = $mainMod SHIFT, 3, split:movetoworkspacesilent, 3 +bind = $mainMod SHIFT, 4, split:movetoworkspacesilent, 4 +bind = $mainMod SHIFT, 5, split:movetoworkspacesilent, 5 +bind = $mainMod SHIFT, 6, split:movetoworkspacesilent, 6 +bind = $mainMod SHIFT, 7, split:movetoworkspacesilent, 7 +bind = $mainMod SHIFT, 8, split:movetoworkspacesilent, 8 +bind = $mainMod SHIFT, 9, split:movetoworkspacesilent, 9 +bind = $mainMod CONTROL SHIFT, 1, split:movetoworkspace, 1 +bind = $mainMod CONTROL SHIFT, 2, split:movetoworkspace, 2 +bind = $mainMod CONTROL SHIFT, 3, split:movetoworkspace, 3 +bind = $mainMod CONTROL SHIFT, 4, split:movetoworkspace, 4 +bind = $mainMod CONTROL SHIFT, 5, split:movetoworkspace, 5 +bind = $mainMod CONTROL SHIFT, 6, split:movetoworkspace, 6 +bind = $mainMod CONTROL SHIFT, 7, split:movetoworkspace, 7 +bind = $mainMod CONTROL SHIFT, 8, split:movetoworkspace, 8 +bind = $mainMod CONTROL SHIFT, 9, split:movetoworkspace, 9 +#bind = $mainMod, mouse_down, split:workspace, e+1 +#bind = $mainMod, mouse_up, split:workspace, e-1 +bind = $mainMod, G, split:grabroguewindows +bind = $mainMod, comma, focusmonitor, -1 +bind = $mainMod, period, focusmonitor, +1 +bind = $mainMod SHIFT, comma, movewindow, mon:-1 +bind = $mainMod SHIFT, period, movewindow, mon:+1 #}}} #{{{ Mouse binds @@ -348,7 +337,7 @@ bind = $mainMod $secdMod, P, exec, passmenu #{{{ Misc bindings bind = $mainMod, Return, exec, kitty bind = $mainMod $secdMod, F, exec, kitty -e lf -bind = $mainMod, W, exec, t waybar +bind = $mainMod, W, exec, pkill -USR1 waybar bind = $mainMod, Q, exec, loginctl lock-session bind = $mainMod $secdMod CONTROL, Q, exec, systemctl suspend bind = $mainMod SHIFT, G, exec, get-app-id -- cgit v1.2.3 From e845fc03156439df4ceab4c702efbf4f79a5f165 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 4 Jun 2024 22:09:28 -0500 Subject: Increase easyeffects scratchpad size Increasing it from 50% screen size to 75% (in both dimensions). --- hypr/pyprland.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hypr/pyprland.toml b/hypr/pyprland.toml index dfa2aab..af439ab 100644 --- a/hypr/pyprland.toml +++ b/hypr/pyprland.toml @@ -98,6 +98,6 @@ animation = "" command = "flatpak run com.github.wwmm.easyeffects" class = "com.github.wwmm.easyeffects" lazy = true -size = "50% 50%" +size = "75% 75%" position = "25% 25%" unfocus = "hide" -- cgit v1.2.3 From 662b24e5385947f5118b5ae5bda9287394251cb5 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 4 Jun 2024 22:10:33 -0500 Subject: Add back osc in mpv; force enable hwdec Mpv should use hardware decoding, as my devices have the capability of using it. Additionally, I actually like having the OSC; I don't know why I disabled it. --- mpv/mpv.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mpv/mpv.conf b/mpv/mpv.conf index 5521474..649af35 100644 --- a/mpv/mpv.conf +++ b/mpv/mpv.conf @@ -1,5 +1,5 @@ save-position-on-quit -osc=no ao=pipewire,pulse,jack vo=gpu +hwdec=yes audio-channels=2 -- cgit v1.2.3 From 747db16125d155f524305b7a226e5a0716d024c8 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 4 Jun 2024 22:11:29 -0500 Subject: Remove mpv quality-menu-osc script I'm not using it anymore, so I'm removing it. --- mpv/scripts/quality-menu-osc.lua | 2911 -------------------------------------- 1 file changed, 2911 deletions(-) delete mode 100644 mpv/scripts/quality-menu-osc.lua diff --git a/mpv/scripts/quality-menu-osc.lua b/mpv/scripts/quality-menu-osc.lua deleted file mode 100644 index 0a2f6c2..0000000 --- a/mpv/scripts/quality-menu-osc.lua +++ /dev/null @@ -1,2911 +0,0 @@ -local assdraw = require 'mp.assdraw' -local msg = require 'mp.msg' -local opt = require 'mp.options' -local utils = require 'mp.utils' - --- --- Parameters --- --- default user option values --- do not touch, change them in osc.conf -local user_opts = { - showwindowed = true, -- show OSC when windowed? - showfullscreen = true, -- show OSC when fullscreen? - idlescreen = true, -- show mpv logo on idle - scalewindowed = 1, -- scaling of the controller when windowed - scalefullscreen = 1, -- scaling of the controller when fullscreen - scaleforcedwindow = 2, -- scaling when rendered on a forced window - vidscale = true, -- scale the controller with the video? - valign = 0.8, -- vertical alignment, -1 (top) to 1 (bottom) - halign = 0, -- horizontal alignment, -1 (left) to 1 (right) - barmargin = 0, -- vertical margin of top/bottombar - boxalpha = 80, -- alpha of the background box, - -- 0 (opaque) to 255 (fully transparent) - hidetimeout = 500, -- duration in ms until the OSC hides if no - -- mouse movement. enforced non-negative for the - -- user, but internally negative is "always-on". - fadeduration = 200, -- duration of fade out in ms, 0 = no fade - deadzonesize = 0.5, -- size of deadzone - minmousemove = 0, -- minimum amount of pixels the mouse has to - -- move between ticks to make the OSC show up - iamaprogrammer = false, -- use native mpv values and disable OSC - -- internal track list management (and some - -- functions that depend on it) - layout = "bottombar", - seekbarstyle = "bar", -- bar, diamond or knob - seekbarhandlesize = 0.6, -- size ratio of the diamond and knob handle - seekrangestyle = "inverted",-- bar, line, slider, inverted or none - seekrangeseparate = true, -- whether the seekranges overlay on the bar-style seekbar - seekrangealpha = 200, -- transparency of seekranges - seekbarkeyframes = true, -- use keyframes when dragging the seekbar - title = "${media-title}", -- string compatible with property-expansion - -- to be shown as OSC title - tooltipborder = 1, -- border of tooltip in bottom/topbar - timetotal = false, -- display total time instead of remaining time? - timems = false, -- display timecodes with milliseconds? - tcspace = 100, -- timecode spacing (compensate font size estimation) - visibility = "auto", -- only used at init to set visibility_mode(...) - boxmaxchars = 80, -- title crop threshold for box layout - boxvideo = false, -- apply osc_param.video_margins to video - windowcontrols = "auto", -- whether to show window controls - windowcontrols_alignment = "right", -- which side to show window controls on - greenandgrumpy = false, -- disable santa hat - livemarkers = true, -- update seekbar chapter markers on duration change - chapters_osd = true, -- whether to show chapters OSD on next/prev - playlist_osd = true, -- whether to show playlist OSD on next/prev - chapter_fmt = "Chapter: %s", -- chapter print format for seekbar-hover. "no" to disable - unicodeminus = false, -- whether to use the Unicode minus sign character -} - --- read options from config and command-line -opt.read_options(user_opts, "osc", function(list) update_options(list) end) - -local osc_param = { -- calculated by osc_init() - playresy = 0, -- canvas size Y - playresx = 0, -- canvas size X - display_aspect = 1, - unscaled_y = 0, - areas = {}, - video_margins = { - l = 0, r = 0, t = 0, b = 0, -- left/right/top/bottom - }, -} - -local osc_styles = { - bigButtons = "{\\blur0\\bord0\\1c&HFFFFFF\\3c&HFFFFFF\\fs50\\fnmpv-osd-symbols}", - smallButtonsL = "{\\blur0\\bord0\\1c&HFFFFFF\\3c&HFFFFFF\\fs19\\fnmpv-osd-symbols}", - smallButtonsLlabel = "{\\fscx105\\fscy105\\fn" .. mp.get_property("options/osd-font") .. "}", - smallButtonsR = "{\\blur0\\bord0\\1c&HFFFFFF\\3c&HFFFFFF\\fs30\\fnmpv-osd-symbols}", - topButtons = "{\\blur0\\bord0\\1c&HFFFFFF\\3c&HFFFFFF\\fs12\\fnmpv-osd-symbols}", - - elementDown = "{\\1c&H999999}", - timecodes = "{\\blur0\\bord0\\1c&HFFFFFF\\3c&HFFFFFF\\fs20}", - vidtitle = "{\\blur0\\bord0\\1c&HFFFFFF\\3c&HFFFFFF\\fs12\\q2}", - box = "{\\rDefault\\blur0\\bord1\\1c&H000000\\3c&HFFFFFF}", - - topButtonsBar = "{\\blur0\\bord0\\1c&HFFFFFF\\3c&HFFFFFF\\fs18\\fnmpv-osd-symbols}", - smallButtonsBar = "{\\blur0\\bord0\\1c&HFFFFFF\\3c&HFFFFFF\\fs28\\fnmpv-osd-symbols}", - timecodesBar = "{\\blur0\\bord0\\1c&HFFFFFF\\3c&HFFFFFF\\fs27}", - timePosBar = "{\\blur0\\bord".. user_opts.tooltipborder .."\\1c&HFFFFFF\\3c&H000000\\fs30}", - vidtitleBar = "{\\blur0\\bord0\\1c&HFFFFFF\\3c&HFFFFFF\\fs18\\q2}", - - wcButtons = "{\\1c&HFFFFFF\\fs24\\fnmpv-osd-symbols}", - wcTitle = "{\\1c&HFFFFFF\\fs24\\q2}", - wcBar = "{\\1c&H000000}", -} - --- internal states, do not touch -local state = { - showtime, -- time of last invocation (last mouse move) - osc_visible = false, - anistart, -- time when the animation started - anitype, -- current type of animation - animation, -- current animation alpha - mouse_down_counter = 0, -- used for softrepeat - active_element = nil, -- nil = none, 0 = background, 1+ = see elements[] - active_event_source = nil, -- the "button" that issued the current event - rightTC_trem = not user_opts.timetotal, -- if the right timecode should display total or remaining time - tc_ms = user_opts.timems, -- Should the timecodes display their time with milliseconds - mp_screen_sizeX, mp_screen_sizeY, -- last screen-resolution, to detect resolution changes to issue reINITs - initREQ = false, -- is a re-init request pending? - marginsREQ = false, -- is a margins update pending? - last_mouseX, last_mouseY, -- last mouse position, to detect significant mouse movement - mouse_in_window = false, - message_text, - message_hide_timer, - fullscreen = false, - tick_timer = nil, - tick_last_time = 0, -- when the last tick() was run - hide_timer = nil, - cache_state = nil, - idle = false, - enabled = true, - input_enabled = true, - showhide_enabled = false, - dmx_cache = 0, - using_video_margins = false, - border = true, - maximized = false, - osd = mp.create_osd_overlay("ass-events"), - chapter_list = {}, -- sorted by time -} - -local window_control_box_width = 80 -local tick_delay = 0.03 - -local is_december = os.date("*t").month == 12 - --- --- Helperfunctions --- - -function kill_animation() - state.anistart = nil - state.animation = nil - state.anitype = nil -end - -function set_osd(res_x, res_y, text) - if state.osd.res_x == res_x and - state.osd.res_y == res_y and - state.osd.data == text then - return - end - state.osd.res_x = res_x - state.osd.res_y = res_y - state.osd.data = text - state.osd.z = 1000 - state.osd:update() -end - -local margins_opts = { - {"l", "video-margin-ratio-left"}, - {"r", "video-margin-ratio-right"}, - {"t", "video-margin-ratio-top"}, - {"b", "video-margin-ratio-bottom"}, -} - --- scale factor for translating between real and virtual ASS coordinates -function get_virt_scale_factor() - local w, h = mp.get_osd_size() - if w <= 0 or h <= 0 then - return 0, 0 - end - return osc_param.playresx / w, osc_param.playresy / h -end - --- return mouse position in virtual ASS coordinates (playresx/y) -function get_virt_mouse_pos() - if state.mouse_in_window then - local sx, sy = get_virt_scale_factor() - local x, y = mp.get_mouse_pos() - return x * sx, y * sy - else - return -1, -1 - end -end - -function set_virt_mouse_area(x0, y0, x1, y1, name) - local sx, sy = get_virt_scale_factor() - mp.set_mouse_area(x0 / sx, y0 / sy, x1 / sx, y1 / sy, name) -end - -function scale_value(x0, x1, y0, y1, val) - local m = (y1 - y0) / (x1 - x0) - local b = y0 - (m * x0) - return (m * val) + b -end - --- returns hitbox spanning coordinates (top left, bottom right corner) --- according to alignment -function get_hitbox_coords(x, y, an, w, h) - - local alignments = { - [1] = function () return x, y-h, x+w, y end, - [2] = function () return x-(w/2), y-h, x+(w/2), y end, - [3] = function () return x-w, y-h, x, y end, - - [4] = function () return x, y-(h/2), x+w, y+(h/2) end, - [5] = function () return x-(w/2), y-(h/2), x+(w/2), y+(h/2) end, - [6] = function () return x-w, y-(h/2), x, y+(h/2) end, - - [7] = function () return x, y, x+w, y+h end, - [8] = function () return x-(w/2), y, x+(w/2), y+h end, - [9] = function () return x-w, y, x, y+h end, - } - - return alignments[an]() -end - -function get_hitbox_coords_geo(geometry) - return get_hitbox_coords(geometry.x, geometry.y, geometry.an, - geometry.w, geometry.h) -end - -function get_element_hitbox(element) - return element.hitbox.x1, element.hitbox.y1, - element.hitbox.x2, element.hitbox.y2 -end - -function mouse_hit(element) - return mouse_hit_coords(get_element_hitbox(element)) -end - -function mouse_hit_coords(bX1, bY1, bX2, bY2) - local mX, mY = get_virt_mouse_pos() - return (mX >= bX1 and mX <= bX2 and mY >= bY1 and mY <= bY2) -end - -function limit_range(min, max, val) - if val > max then - val = max - elseif val < min then - val = min - end - return val -end - --- translate value into element coordinates -function get_slider_ele_pos_for(element, val) - - local ele_pos = scale_value( - element.slider.min.value, element.slider.max.value, - element.slider.min.ele_pos, element.slider.max.ele_pos, - val) - - return limit_range( - element.slider.min.ele_pos, element.slider.max.ele_pos, - ele_pos) -end - --- translates global (mouse) coordinates to value -function get_slider_value_at(element, glob_pos) - - local val = scale_value( - element.slider.min.glob_pos, element.slider.max.glob_pos, - element.slider.min.value, element.slider.max.value, - glob_pos) - - return limit_range( - element.slider.min.value, element.slider.max.value, - val) -end - --- get value at current mouse position -function get_slider_value(element) - return get_slider_value_at(element, get_virt_mouse_pos()) -end - -function countone(val) - if not (user_opts.iamaprogrammer) then - val = val + 1 - end - return val -end - --- align: -1 .. +1 --- frame: size of the containing area --- obj: size of the object that should be positioned inside the area --- margin: min. distance from object to frame (as long as -1 <= align <= +1) -function get_align(align, frame, obj, margin) - return (frame / 2) + (((frame / 2) - margin - (obj / 2)) * align) -end - --- multiplies two alpha values, formular can probably be improved -function mult_alpha(alphaA, alphaB) - return 255 - (((1-(alphaA/255)) * (1-(alphaB/255))) * 255) -end - -function add_area(name, x1, y1, x2, y2) - -- create area if needed - if (osc_param.areas[name] == nil) then - osc_param.areas[name] = {} - end - table.insert(osc_param.areas[name], {x1=x1, y1=y1, x2=x2, y2=y2}) -end - -function ass_append_alpha(ass, alpha, modifier) - local ar = {} - - for ai, av in pairs(alpha) do - av = mult_alpha(av, modifier) - if state.animation then - av = mult_alpha(av, state.animation) - end - ar[ai] = av - end - - ass:append(string.format("{\\1a&H%X&\\2a&H%X&\\3a&H%X&\\4a&H%X&}", - ar[1], ar[2], ar[3], ar[4])) -end - -function ass_draw_rr_h_cw(ass, x0, y0, x1, y1, r1, hexagon, r2) - if hexagon then - ass:hexagon_cw(x0, y0, x1, y1, r1, r2) - else - ass:round_rect_cw(x0, y0, x1, y1, r1, r2) - end -end - -function ass_draw_rr_h_ccw(ass, x0, y0, x1, y1, r1, hexagon, r2) - if hexagon then - ass:hexagon_ccw(x0, y0, x1, y1, r1, r2) - else - ass:round_rect_ccw(x0, y0, x1, y1, r1, r2) - end -end - - --- --- Tracklist Management --- - -local nicetypes = {video = "Video", audio = "Audio", sub = "Subtitle"} - --- updates the OSC internal playlists, should be run each time the track-layout changes -function update_tracklist() - local tracktable = mp.get_property_native("track-list", {}) - - -- by osc_id - tracks_osc = {} - tracks_osc.video, tracks_osc.audio, tracks_osc.sub = {}, {}, {} - -- by mpv_id - tracks_mpv = {} - tracks_mpv.video, tracks_mpv.audio, tracks_mpv.sub = {}, {}, {} - for n = 1, #tracktable do - if not (tracktable[n].type == "unknown") then - local type = tracktable[n].type - local mpv_id = tonumber(tracktable[n].id) - - -- by osc_id - table.insert(tracks_osc[type], tracktable[n]) - - -- by mpv_id - tracks_mpv[type][mpv_id] = tracktable[n] - tracks_mpv[type][mpv_id].osc_id = #tracks_osc[type] - end - end -end - --- return a nice list of tracks of the given type (video, audio, sub) -function get_tracklist(type) - local msg = "Available " .. nicetypes[type] .. " Tracks: " - if not tracks_osc or #tracks_osc[type] == 0 then - msg = msg .. "none" - else - for n = 1, #tracks_osc[type] do - local track = tracks_osc[type][n] - local lang, title, selected = "unknown", "", "○" - if not(track.lang == nil) then lang = track.lang end - if not(track.title == nil) then title = track.title end - if (track.id == tonumber(mp.get_property(type))) then - selected = "●" - end - msg = msg.."\n"..selected.." "..n..": ["..lang.."] "..title - end - end - return msg -end - --- relatively change the track of given by tracks - --(+1 -> next, -1 -> previous) -function set_track(type, next) - local current_track_mpv, current_track_osc - if (mp.get_property(type) == "no") then - current_track_osc = 0 - else - current_track_mpv = tonumber(mp.get_property(type)) - current_track_osc = tracks_mpv[type][current_track_mpv].osc_id - end - local new_track_osc = (current_track_osc + next) % (#tracks_osc[type] + 1) - local new_track_mpv - if new_track_osc == 0 then - new_track_mpv = "no" - else - new_track_mpv = tracks_osc[type][new_track_osc].id - end - - mp.commandv("set", type, new_track_mpv) - - if (new_track_osc == 0) then - show_message(nicetypes[type] .. " Track: none") - else - show_message(nicetypes[type] .. " Track: " - .. new_track_osc .. "/" .. #tracks_osc[type] - .. " [".. (tracks_osc[type][new_track_osc].lang or "unknown") .."] " - .. (tracks_osc[type][new_track_osc].title or "")) - end -end - --- get the currently selected track of , OSC-style counted -function get_track(type) - local track = mp.get_property(type) - if track ~= "no" and track ~= nil then - local tr = tracks_mpv[type][tonumber(track)] - if tr then - return tr.osc_id - end - end - return 0 -end - --- WindowControl helpers -function window_controls_enabled() - val = user_opts.windowcontrols - if val == "auto" then - return not state.border - else - return val ~= "no" - end -end - -function window_controls_alignment() - return user_opts.windowcontrols_alignment -end - --- --- Element Management --- - -local elements = {} - -function prepare_elements() - - -- remove elements without layout or invisble - local elements2 = {} - for n, element in pairs(elements) do - if not (element.layout == nil) and (element.visible) then - table.insert(elements2, element) - end - end - elements = elements2 - - function elem_compare (a, b) - return a.layout.layer < b.layout.layer - end - - table.sort(elements, elem_compare) - - - for _,element in pairs(elements) do - - local elem_geo = element.layout.geometry - - -- Calculate the hitbox - local bX1, bY1, bX2, bY2 = get_hitbox_coords_geo(elem_geo) - element.hitbox = {x1 = bX1, y1 = bY1, x2 = bX2, y2 = bY2} - - local style_ass = assdraw.ass_new() - - -- prepare static elements - style_ass:append("{}") -- hack to troll new_event into inserting a \n - style_ass:new_event() - style_ass:pos(elem_geo.x, elem_geo.y) - style_ass:an(elem_geo.an) - style_ass:append(element.layout.style) - - element.style_ass = style_ass - - local static_ass = assdraw.ass_new() - - - if (element.type == "box") then - --draw box - static_ass:draw_start() - ass_draw_rr_h_cw(static_ass, 0, 0, elem_geo.w, elem_geo.h, - element.layout.box.radius, element.layout.box.hexagon) - static_ass:draw_stop() - - elseif (element.type == "slider") then - --draw static slider parts - - local r1 = 0 - local r2 = 0 - local slider_lo = element.layout.slider - -- offset between element outline and drag-area - local foV = slider_lo.border + slider_lo.gap - - -- calculate positions of min and max points - if (slider_lo.stype ~= "bar") then - r1 = elem_geo.h / 2 - element.slider.min.ele_pos = elem_geo.h / 2 - element.slider.max.ele_pos = elem_geo.w - (elem_geo.h / 2) - if (slider_lo.stype == "diamond") then - r2 = (elem_geo.h - 2 * slider_lo.border) / 2 - elseif (slider_lo.stype == "knob") then - r2 = r1 - end - else - element.slider.min.ele_pos = - slider_lo.border + slider_lo.gap - element.slider.max.ele_pos = - elem_geo.w - (slider_lo.border + slider_lo.gap) - end - - element.slider.min.glob_pos = - element.hitbox.x1 + element.slider.min.ele_pos - element.slider.max.glob_pos = - element.hitbox.x1 + element.slider.max.ele_pos - - -- -- -- - - static_ass:draw_start() - - -- the box - ass_draw_rr_h_cw(static_ass, 0, 0, elem_geo.w, elem_geo.h, r1, slider_lo.stype == "diamond") - - -- the "hole" - ass_draw_rr_h_ccw(static_ass, slider_lo.border, slider_lo.border, - elem_geo.w - slider_lo.border, elem_geo.h - slider_lo.border, - r2, slider_lo.stype == "diamond") - - -- marker nibbles - if not (element.slider.markerF == nil) and (slider_lo.gap > 0) then - local markers = element.slider.markerF() - for _,marker in pairs(markers) do - if (marker > element.slider.min.value) and - (marker < element.slider.max.value) then - - local s = get_slider_ele_pos_for(element, marker) - - if (slider_lo.gap > 1) then -- draw triangles - - local a = slider_lo.gap / 0.5 --0.866 - - --top - if (slider_lo.nibbles_top) then - static_ass:move_to(s - (a/2), slider_lo.border) - static_ass:line_to(s + (a/2), slider_lo.border) - static_ass:line_to(s, foV) - end - - --bottom - if (slider_lo.nibbles_bottom) then - static_ass:move_to(s - (a/2), - elem_geo.h - slider_lo.border) - static_ass:line_to(s, - elem_geo.h - foV) - static_ass:line_to(s + (a/2), - elem_geo.h - slider_lo.border) - end - - else -- draw 2x1px nibbles - - --top - if (slider_lo.nibbles_top) then - static_ass:rect_cw(s - 1, slider_lo.border, - s + 1, slider_lo.border + slider_lo.gap); - end - - --bottom - if (slider_lo.nibbles_bottom) then - static_ass:rect_cw(s - 1, - elem_geo.h -slider_lo.border -slider_lo.gap, - s + 1, elem_geo.h - slider_lo.border); - end - end - end - end - end - end - - element.static_ass = static_ass - - - -- if the element is supposed to be disabled, - -- style it accordingly and kill the eventresponders - if not (element.enabled) then - element.layout.alpha[1] = 136 - element.eventresponder = nil - end - end -end - - --- --- Element Rendering --- - --- returns nil or a chapter element from the native property chapter-list -function get_chapter(possec) - local cl = state.chapter_list -- sorted, get latest before possec, if any - - for n=#cl,1,-1 do - if possec >= cl[n].time then - return cl[n] - end - end -end - -function render_elements(master_ass) - - -- when the slider is dragged or hovered and we have a target chapter name - -- then we use it instead of the normal title. we calculate it before the - -- render iterations because the title may be rendered before the slider. - state.forced_title = nil - local se, ae = state.slider_element, elements[state.active_element] - if user_opts.chapter_fmt ~= "no" and se and (ae == se or (not ae and mouse_hit(se))) then - local dur = mp.get_property_number("duration", 0) - if dur > 0 then - local possec = get_slider_value(se) * dur / 100 -- of mouse pos - local ch = get_chapter(possec) - if ch and ch.title and ch.title ~= "" then - state.forced_title = string.format(user_opts.chapter_fmt, ch.title) - end - end - end - - for n=1, #elements do - local element = elements[n] - - local style_ass = assdraw.ass_new() - style_ass:merge(element.style_ass) - ass_append_alpha(style_ass, element.layout.alpha, 0) - - if element.eventresponder and (state.active_element == n) then - - -- run render event functions - if not (element.eventresponder.render == nil) then - element.eventresponder.render(element) - end - - if mouse_hit(element) then - -- mouse down styling - if (element.styledown) then - style_ass:append(osc_styles.elementDown) - end - - if (element.softrepeat) and (state.mouse_down_counter >= 15 - and state.mouse_down_counter % 5 == 0) then - - element.eventresponder[state.active_event_source.."_down"](element) - end - state.mouse_down_counter = state.mouse_down_counter + 1 - end - - end - - local elem_ass = assdraw.ass_new() - - elem_ass:merge(style_ass) - - if not (element.type == "button") then - elem_ass:merge(element.static_ass) - end - - if (element.type == "slider") then - - local slider_lo = element.layout.slider - local elem_geo = element.layout.geometry - local s_min = element.slider.min.value - local s_max = element.slider.max.value - - -- draw pos marker - local foH, xp - local pos = element.slider.posF() - local foV = slider_lo.border + slider_lo.gap - local innerH = elem_geo.h - (2 * foV) - local seekRanges = element.slider.seekRangesF() - local seekRangeLineHeight = innerH / 5 - - if slider_lo.stype ~= "bar" then - foH = elem_geo.h / 2 - else - foH = slider_lo.border + slider_lo.gap - end - - if pos then - xp = get_slider_ele_pos_for(element, pos) - - if slider_lo.stype ~= "bar" then - local r = (user_opts.seekbarhandlesize * innerH) / 2 - ass_draw_rr_h_cw(elem_ass, xp - r, foH - r, - xp + r, foH + r, - r, slider_lo.stype == "diamond") - else - local h = 0 - if seekRanges and user_opts.seekrangeseparate and slider_lo.rtype ~= "inverted" then - h = seekRangeLineHeight - end - elem_ass:rect_cw(foH, foV, xp, elem_geo.h - foV - h) - - if seekRanges and not user_opts.seekrangeseparate and slider_lo.rtype ~= "inverted" then - -- Punch holes for the seekRanges to be drawn later - for _,range in pairs(seekRanges) do - if range["start"] < pos then - local pstart = get_slider_ele_pos_for(element, range["start"]) - local pend = xp - - if pos > range["end"] then - pend = get_slider_ele_pos_for(element, range["end"]) - end - elem_ass:rect_ccw(pstart, elem_geo.h - foV - seekRangeLineHeight, pend, elem_geo.h - foV) - end - end - end - end - - if slider_lo.rtype == "slider" then - ass_draw_rr_h_cw(elem_ass, foH - innerH / 6, foH - innerH / 6, - xp, foH + innerH / 6, - innerH / 6, slider_lo.stype == "diamond", 0) - ass_draw_rr_h_cw(elem_ass, xp, foH - innerH / 15, - elem_geo.w - foH + innerH / 15, foH + innerH / 15, - 0, slider_lo.stype == "diamond", innerH / 15) - for _,range in pairs(seekRanges or {}) do - local pstart = get_slider_ele_pos_for(element, range["start"]) - local pend = get_slider_ele_pos_for(element, range["end"]) - ass_draw_rr_h_ccw(elem_ass, pstart, foH - innerH / 21, - pend, foH + innerH / 21, - innerH / 21, slider_lo.stype == "diamond") - end - end - end - - if seekRanges then - if slider_lo.rtype ~= "inverted" then - elem_ass:draw_stop() - elem_ass:merge(element.style_ass) - ass_append_alpha(elem_ass, element.layout.alpha, user_opts.seekrangealpha) - elem_ass:merge(element.static_ass) - end - - for _,range in pairs(seekRanges) do - local pstart = get_slider_ele_pos_for(element, range["start"]) - local pend = get_slider_ele_pos_for(element, range["end"]) - - if slider_lo.rtype == "slider" then - ass_draw_rr_h_cw(elem_ass, pstart, foH - innerH / 21, - pend, foH + innerH / 21, - innerH / 21, slider_lo.stype == "diamond") - elseif slider_lo.rtype == "line" then - if slider_lo.stype == "bar" then - elem_ass:rect_cw(pstart, elem_geo.h - foV - seekRangeLineHeight, pend, elem_geo.h - foV) - else - ass_draw_rr_h_cw(elem_ass, pstart - innerH / 8, foH - innerH / 8, - pend + innerH / 8, foH + innerH / 8, - innerH / 8, slider_lo.stype == "diamond") - end - elseif slider_lo.rtype == "bar" then - if slider_lo.stype ~= "bar" then - ass_draw_rr_h_cw(elem_ass, pstart - innerH / 2, foV, - pend + innerH / 2, foV + innerH, - innerH / 2, slider_lo.stype == "diamond") - elseif range["end"] >= (pos or 0) then - elem_ass:rect_cw(pstart, foV, pend, elem_geo.h - foV) - else - elem_ass:rect_cw(pstart, elem_geo.h - foV - seekRangeLineHeight, pend, elem_geo.h - foV) - end - elseif slider_lo.rtype == "inverted" then - if slider_lo.stype ~= "bar" then - ass_draw_rr_h_ccw(elem_ass, pstart, (elem_geo.h / 2) - 1, pend, - (elem_geo.h / 2) + 1, - 1, slider_lo.stype == "diamond") - else - elem_ass:rect_ccw(pstart, (elem_geo.h / 2) - 1, pend, (elem_geo.h / 2) + 1) - end - end - end - end - - elem_ass:draw_stop() - - -- add tooltip - if not (element.slider.tooltipF == nil) then - - if mouse_hit(element) then - local sliderpos = get_slider_value(element) - local tooltiplabel = element.slider.tooltipF(sliderpos) - - local an = slider_lo.tooltip_an - - local ty - - if (an == 2) then - ty = element.hitbox.y1 - slider_lo.border - else - ty = element.hitbox.y1 + elem_geo.h/2 - end - - local tx = get_virt_mouse_pos() - if (slider_lo.adjust_tooltip) then - if (an == 2) then - if (sliderpos < (s_min + 3)) then - an = an - 1 - elseif (sliderpos > (s_max - 3)) then - an = an + 1 - end - elseif (sliderpos > (s_max-s_min)/2) then - an = an + 1 - tx = tx - 5 - else - an = an - 1 - tx = tx + 10 - end - end - - -- tooltip label - elem_ass:new_event() - elem_ass:pos(tx, ty) - elem_ass:an(an) - elem_ass:append(slider_lo.tooltip_style) - ass_append_alpha(elem_ass, slider_lo.alpha, 0) - elem_ass:append(tooltiplabel) - - end - end - - elseif (element.type == "button") then - - local buttontext - if type(element.content) == "function" then - buttontext = element.content() -- function objects - elseif not (element.content == nil) then - buttontext = element.content -- text objects - end - - local maxchars = element.layout.button.maxchars - if not (maxchars == nil) and (#buttontext > maxchars) then - local max_ratio = 1.25 -- up to 25% more chars while shrinking - local limit = math.max(0, math.floor(maxchars * max_ratio) - 3) - if (#buttontext > limit) then - while (#buttontext > limit) do - buttontext = buttontext:gsub(".[\128-\191]*$", "") - end - buttontext = buttontext .. "..." - end - local _, nchars2 = buttontext:gsub(".[\128-\191]*", "") - local stretch = (maxchars/#buttontext)*100 - buttontext = string.format("{\\fscx%f}", - (maxchars/#buttontext)*100) .. buttontext - end - - elem_ass:append(buttontext) - end - - master_ass:merge(elem_ass) - end -end - --- --- Message display --- - --- pos is 1 based -function limited_list(prop, pos) - local proplist = mp.get_property_native(prop, {}) - local count = #proplist - if count == 0 then - return count, proplist - end - - local fs = tonumber(mp.get_property('options/osd-font-size')) - local max = math.ceil(osc_param.unscaled_y*0.75 / fs) - if max % 2 == 0 then - max = max - 1 - end - local delta = math.ceil(max / 2) - 1 - local begi = math.max(math.min(pos - delta, count - max + 1), 1) - local endi = math.min(begi + max - 1, count) - - local reslist = {} - for i=begi, endi do - local item = proplist[i] - item.current = (i == pos) and true or nil - table.insert(reslist, item) - end - return count, reslist -end - -function get_playlist() - local pos = mp.get_property_number('playlist-pos', 0) + 1 - local count, limlist = limited_list('playlist', pos) - if count == 0 then - return 'Empty playlist.' - end - - local message = string.format('Playlist [%d/%d]:\n', pos, count) - for i, v in ipairs(limlist) do - local title = v.title - local _, filename = utils.split_path(v.filename) - if title == nil then - title = filename - end - message = string.format('%s %s %s\n', message, - (v.current and '●' or '○'), title) - end - return message -end - -function get_chapterlist() - local pos = mp.get_property_number('chapter', 0) + 1 - local count, limlist = limited_list('chapter-list', pos) - if count == 0 then - return 'No chapters.' - end - - local message = string.format('Chapters [%d/%d]:\n', pos, count) - for i, v in ipairs(limlist) do - local time = mp.format_time(v.time) - local title = v.title - if title == nil then - title = string.format('Chapter %02d', i) - end - message = string.format('%s[%s] %s %s\n', message, time, - (v.current and '●' or '○'), title) - end - return message -end - -function show_message(text, duration) - - --print("text: "..text.." duration: " .. duration) - if duration == nil then - duration = tonumber(mp.get_property("options/osd-duration")) / 1000 - elseif not type(duration) == "number" then - print("duration: " .. duration) - end - - -- cut the text short, otherwise the following functions - -- may slow down massively on huge input - text = string.sub(text, 0, 4000) - - -- replace actual linebreaks with ASS linebreaks - text = string.gsub(text, "\n", "\\N") - - state.message_text = text - - if not state.message_hide_timer then - state.message_hide_timer = mp.add_timeout(0, request_tick) - end - state.message_hide_timer:kill() - state.message_hide_timer.timeout = duration - state.message_hide_timer:resume() - request_tick() -end - -function render_message(ass) - if state.message_hide_timer and state.message_hide_timer:is_enabled() and - state.message_text - then - local _, lines = string.gsub(state.message_text, "\\N", "") - - local fontsize = tonumber(mp.get_property("options/osd-font-size")) - local outline = tonumber(mp.get_property("options/osd-border-size")) - local maxlines = math.ceil(osc_param.unscaled_y*0.75 / fontsize) - local counterscale = osc_param.playresy / osc_param.unscaled_y - - fontsize = fontsize * counterscale / math.max(0.65 + math.min(lines/maxlines, 1), 1) - outline = outline * counterscale / math.max(0.75 + math.min(lines/maxlines, 1)/2, 1) - - local style = "{\\bord" .. outline .. "\\fs" .. fontsize .. "}" - - - ass:new_event() - ass:append(style .. state.message_text) - else - state.message_text = nil - end -end - --- --- Initialisation and Layout --- - -function new_element(name, type) - elements[name] = {} - elements[name].type = type - - -- add default stuff - elements[name].eventresponder = {} - elements[name].visible = true - elements[name].enabled = true - elements[name].softrepeat = false - elements[name].styledown = (type == "button") - elements[name].state = {} - - if (type == "slider") then - elements[name].slider = {min = {value = 0}, max = {value = 100}} - end - - - return elements[name] -end - -function add_layout(name) - if not (elements[name] == nil) then - -- new layout - elements[name].layout = {} - - -- set layout defaults - elements[name].layout.layer = 50 - elements[name].layout.alpha = {[1] = 0, [2] = 255, [3] = 255, [4] = 255} - - if (elements[name].type == "button") then - elements[name].layout.button = { - maxchars = nil, - } - elseif (elements[name].type == "slider") then - -- slider defaults - elements[name].layout.slider = { - border = 1, - gap = 1, - nibbles_top = true, - nibbles_bottom = true, - stype = "slider", - adjust_tooltip = true, - tooltip_style = "", - tooltip_an = 2, - alpha = {[1] = 0, [2] = 255, [3] = 88, [4] = 255}, - } - elseif (elements[name].type == "box") then - elements[name].layout.box = {radius = 0, hexagon = false} - end - - return elements[name].layout - else - msg.error("Can't add_layout to element \""..name.."\", doesn't exist.") - end -end - --- Window Controls -function window_controls(topbar) - local wc_geo = { - x = 0, - y = 30 + user_opts.barmargin, - an = 1, - w = osc_param.playresx, - h = 30, - } - - local alignment = window_controls_alignment() - local controlbox_w = window_control_box_width - local titlebox_w = wc_geo.w - controlbox_w - - -- Default alignment is "right" - local controlbox_left = wc_geo.w - controlbox_w - local titlebox_left = wc_geo.x - local titlebox_right = wc_geo.w - controlbox_w - - if alignment == "left" then - controlbox_left = wc_geo.x - titlebox_left = wc_geo.x + controlbox_w - titlebox_right = wc_geo.w - end - - add_area("window-controls", - get_hitbox_coords(controlbox_left, wc_geo.y, wc_geo.an, - controlbox_w, wc_geo.h)) - - local lo - - -- Background Bar - new_element("wcbar", "box") - lo = add_layout("wcbar") - lo.geometry = wc_geo - lo.layer = 10 - lo.style = osc_styles.wcBar - lo.alpha[1] = user_opts.boxalpha - - local button_y = wc_geo.y - (wc_geo.h / 2) - local first_geo = - {x = controlbox_left + 5, y = button_y, an = 4, w = 25, h = 25} - local second_geo = - {x = controlbox_left + 30, y = button_y, an = 4, w = 25, h = 25} - local third_geo = - {x = controlbox_left + 55, y = button_y, an = 4, w = 25, h = 25} - - -- Window control buttons use symbols in the custom mpv osd font - -- because the official unicode codepoints are sufficiently - -- exotic that a system might lack an installed font with them, - -- and libass will complain that they are not present in the - -- default font, even if another font with them is available. - - -- Close: 🗙 - ne = new_element("close", "button") - ne.content = "\238\132\149" - ne.eventresponder["mbtn_left_up"] = - function () mp.commandv("quit") end - lo = add_layout("close") - lo.geometry = alignment == "left" and first_geo or third_geo - lo.style = osc_styles.wcButtons - - -- Minimize: 🗕 - ne = new_element("minimize", "button") - ne.content = "\238\132\146" - ne.eventresponder["mbtn_left_up"] = - function () mp.commandv("cycle", "window-minimized") end - lo = add_layout("minimize") - lo.geometry = alignment == "left" and second_geo or first_geo - lo.style = osc_styles.wcButtons - - -- Maximize: 🗖 /🗗 - ne = new_element("maximize", "button") - if state.maximized or state.fullscreen then - ne.content = "\238\132\148" - else - ne.content = "\238\132\147" - end - ne.eventresponder["mbtn_left_up"] = - function () - if state.fullscreen then - mp.commandv("cycle", "fullscreen") - else - mp.commandv("cycle", "window-maximized") - end - end - lo = add_layout("maximize") - lo.geometry = alignment == "left" and third_geo or second_geo - lo.style = osc_styles.wcButtons - - -- deadzone below window controls - local sh_area_y0, sh_area_y1 - sh_area_y0 = user_opts.barmargin - sh_area_y1 = (wc_geo.y + (wc_geo.h / 2)) + - get_align(1 - (2 * user_opts.deadzonesize), - osc_param.playresy - (wc_geo.y + (wc_geo.h / 2)), 0, 0) - add_area("showhide_wc", wc_geo.x, sh_area_y0, wc_geo.w, sh_area_y1) - - if topbar then - -- The title is already there as part of the top bar - return - else - -- Apply boxvideo margins to the control bar - osc_param.video_margins.t = wc_geo.h / osc_param.playresy - end - - -- Window Title - ne = new_element("wctitle", "button") - ne.content = function () - local title = mp.command_native({"expand-text", user_opts.title}) - -- escape ASS, and strip newlines and trailing slashes - title = title:gsub("\\n", " "):gsub("\\$", ""):gsub("{","\\{") - return not (title == "") and title or "mpv" - end - local left_pad = 5 - local right_pad = 10 - lo = add_layout("wctitle") - lo.geometry = - { x = titlebox_left + left_pad, y = wc_geo.y - 3, an = 1, - w = titlebox_w, h = wc_geo.h } - lo.style = string.format("%s{\\clip(%f,%f,%f,%f)}", - osc_styles.wcTitle, - titlebox_left + left_pad, wc_geo.y - wc_geo.h, - titlebox_right - right_pad , wc_geo.y + wc_geo.h) - - add_area("window-controls-title", - titlebox_left, 0, titlebox_right, wc_geo.h) -end - --- --- Layouts --- - -local layouts = {} - --- Classic box layout -layouts["box"] = function () - - local osc_geo = { - w = 550, -- width - h = 138, -- height - r = 10, -- corner-radius - p = 15, -- padding - } - - -- make sure the OSC actually fits into the video - if (osc_param.playresx < (osc_geo.w + (2 * osc_geo.p))) then - osc_param.playresy = (osc_geo.w+(2*osc_geo.p))/osc_param.display_aspect - osc_param.playresx = osc_param.playresy * osc_param.display_aspect - end - - -- position of the controller according to video aspect and valignment - local posX = math.floor(get_align(user_opts.halign, osc_param.playresx, - osc_geo.w, 0)) - local posY = math.floor(get_align(user_opts.valign, osc_param.playresy, - osc_geo.h, 0)) - - -- position offset for contents aligned at the borders of the box - local pos_offsetX = (osc_geo.w - (2*osc_geo.p)) / 2 - local pos_offsetY = (osc_geo.h - (2*osc_geo.p)) / 2 - - osc_param.areas = {} -- delete areas - - -- area for active mouse input - add_area("input", get_hitbox_coords(posX, posY, 5, osc_geo.w, osc_geo.h)) - - -- area for show/hide - local sh_area_y0, sh_area_y1 - if user_opts.valign > 0 then - -- deadzone above OSC - sh_area_y0 = get_align(-1 + (2*user_opts.deadzonesize), - posY - (osc_geo.h / 2), 0, 0) - sh_area_y1 = osc_param.playresy - else - -- deadzone below OSC - sh_area_y0 = 0 - sh_area_y1 = (posY + (osc_geo.h / 2)) + - get_align(1 - (2*user_opts.deadzonesize), - osc_param.playresy - (posY + (osc_geo.h / 2)), 0, 0) - end - add_area("showhide", 0, sh_area_y0, osc_param.playresx, sh_area_y1) - - -- fetch values - local osc_w, osc_h, osc_r, osc_p = - osc_geo.w, osc_geo.h, osc_geo.r, osc_geo.p - - local lo - - -- - -- Background box - -- - - new_element("bgbox", "box") - lo = add_layout("bgbox") - - lo.geometry = {x = posX, y = posY, an = 5, w = osc_w, h = osc_h} - lo.layer = 10 - lo.style = osc_styles.box - lo.alpha[1] = user_opts.boxalpha - lo.alpha[3] = user_opts.boxalpha - lo.box.radius = osc_r - - -- - -- Title row - -- - - local titlerowY = posY - pos_offsetY - 10 - - lo = add_layout("title") - lo.geometry = {x = posX, y = titlerowY, an = 8, w = 496, h = 12} - lo.style = osc_styles.vidtitle - lo.button.maxchars = user_opts.boxmaxchars - - lo = add_layout("pl_prev") - lo.geometry = - {x = (posX - pos_offsetX), y = titlerowY, an = 7, w = 12, h = 12} - lo.style = osc_styles.topButtons - - lo = add_layout("pl_next") - lo.geometry = - {x = (posX + pos_offsetX), y = titlerowY, an = 9, w = 12, h = 12} - lo.style = osc_styles.topButtons - - -- - -- Big buttons - -- - - local bigbtnrowY = posY - pos_offsetY + 35 - local bigbtndist = 60 - - lo = add_layout("playpause") - lo.geometry = - {x = posX, y = bigbtnrowY, an = 5, w = 40, h = 40} - lo.style = osc_styles.bigButtons - - lo = add_layout("skipback") - lo.geometry = - {x = posX - bigbtndist, y = bigbtnrowY, an = 5, w = 40, h = 40} - lo.style = osc_styles.bigButtons - - lo = add_layout("skipfrwd") - lo.geometry = - {x = posX + bigbtndist, y = bigbtnrowY, an = 5, w = 40, h = 40} - lo.style = osc_styles.bigButtons - - lo = add_layout("ch_prev") - lo.geometry = - {x = posX - (bigbtndist * 2), y = bigbtnrowY, an = 5, w = 40, h = 40} - lo.style = osc_styles.bigButtons - - lo = add_layout("ch_next") - lo.geometry = - {x = posX + (bigbtndist * 2), y = bigbtnrowY, an = 5, w = 40, h = 40} - lo.style = osc_styles.bigButtons - - lo = add_layout("cy_audio") - lo.geometry = - {x = posX - pos_offsetX, y = bigbtnrowY, an = 1, w = 70, h = 18} - lo.style = osc_styles.smallButtonsL - - lo = add_layout("cy_sub") - lo.geometry = - {x = posX - pos_offsetX, y = bigbtnrowY, an = 7, w = 70, h = 18} - lo.style = osc_styles.smallButtonsL - - lo = add_layout("tog_fs") - lo.geometry = - {x = posX+pos_offsetX - 25, y = bigbtnrowY, an = 4, w = 25, h = 25} - lo.style = osc_styles.smallButtonsR - - lo = add_layout("volume") - lo.geometry = - {x = posX+pos_offsetX - (25 * 2) - osc_geo.p, - y = bigbtnrowY, an = 4, w = 25, h = 25} - lo.style = osc_styles.smallButtonsR - - -- - -- Seekbar - -- - - lo = add_layout("seekbar") - lo.geometry = - {x = posX, y = posY+pos_offsetY-22, an = 2, w = pos_offsetX*2, h = 15} - lo.style = osc_styles.timecodes - lo.slider.tooltip_style = osc_styles.vidtitle - lo.slider.stype = user_opts["seekbarstyle"] - lo.slider.rtype = user_opts["seekrangestyle"] - - -- - -- Timecodes + Cache - -- - - local bottomrowY = posY + pos_offsetY - 5 - - lo = add_layout("tc_left") - lo.geometry = - {x = posX - pos_offsetX, y = bottomrowY, an = 4, w = 110, h = 18} - lo.style = osc_styles.timecodes - - lo = add_layout("tc_right") - lo.geometry = - {x = posX + pos_offsetX, y = bottomrowY, an = 6, w = 110, h = 18} - lo.style = osc_styles.timecodes - - lo = add_layout("cache") - lo.geometry = - {x = posX, y = bottomrowY, an = 5, w = 110, h = 18} - lo.style = osc_styles.timecodes - -end - --- slim box layout -layouts["slimbox"] = function () - - local osc_geo = { - w = 660, -- width - h = 70, -- height - r = 10, -- corner-radius - } - - -- make sure the OSC actually fits into the video - if (osc_param.playresx < (osc_geo.w)) then - osc_param.playresy = (osc_geo.w)/osc_param.display_aspect - osc_param.playresx = osc_param.playresy * osc_param.display_aspect - end - - -- position of the controller according to video aspect and valignment - local posX = math.floor(get_align(user_opts.halign, osc_param.playresx, - osc_geo.w, 0)) - local posY = math.floor(get_align(user_opts.valign, osc_param.playresy, - osc_geo.h, 0)) - - osc_param.areas = {} -- delete areas - - -- area for active mouse input - add_area("input", get_hitbox_coords(posX, posY, 5, osc_geo.w, osc_geo.h)) - - -- area for show/hide - local sh_area_y0, sh_area_y1 - if user_opts.valign > 0 then - -- deadzone above OSC - sh_area_y0 = get_align(-1 + (2*user_opts.deadzonesize), - posY - (osc_geo.h / 2), 0, 0) - sh_area_y1 = osc_param.playresy - else - -- deadzone below OSC - sh_area_y0 = 0 - sh_area_y1 = (posY + (osc_geo.h / 2)) + - get_align(1 - (2*user_opts.deadzonesize), - osc_param.playresy - (posY + (osc_geo.h / 2)), 0, 0) - end - add_area("showhide", 0, sh_area_y0, osc_param.playresx, sh_area_y1) - - local lo - - local tc_w, ele_h, inner_w = 100, 20, osc_geo.w - 100 - - -- styles - local styles = { - box = "{\\rDefault\\blur0\\bord1\\1c&H000000\\3c&HFFFFFF}", - timecodes = "{\\1c&HFFFFFF\\3c&H000000\\fs20\\bord2\\blur1}", - tooltip = "{\\1c&HFFFFFF\\3c&H000000\\fs12\\bord1\\blur0.5}", - } - - - new_element("bgbox", "box") - lo = add_layout("bgbox") - - lo.geometry = {x = posX, y = posY - 1, an = 2, w = inner_w, h = ele_h} - lo.layer = 10 - lo.style = osc_styles.box - lo.alpha[1] = user_opts.boxalpha - lo.alpha[3] = 0 - if not (user_opts["seekbarstyle"] == "bar") then - lo.box.radius = osc_geo.r - lo.box.hexagon = user_opts["seekbarstyle"] == "diamond" - end - - - lo = add_layout("seekbar") - lo.geometry = - {x = posX, y = posY - 1, an = 2, w = inner_w, h = ele_h} - lo.style = osc_styles.timecodes - lo.slider.border = 0 - lo.slider.gap = 1.5 - lo.slider.tooltip_style = styles.tooltip - lo.slider.stype = user_opts["seekbarstyle"] - lo.slider.rtype = user_opts["seekrangestyle"] - lo.slider.adjust_tooltip = false - - -- - -- Timecodes - -- - - lo = add_layout("tc_left") - lo.geometry = - {x = posX - (inner_w/2) + osc_geo.r, y = posY + 1, - an = 7, w = tc_w, h = ele_h} - lo.style = styles.timecodes - lo.alpha[3] = user_opts.boxalpha - - lo = add_layout("tc_right") - lo.geometry = - {x = posX + (inner_w/2) - osc_geo.r, y = posY + 1, - an = 9, w = tc_w, h = ele_h} - lo.style = styles.timecodes - lo.alpha[3] = user_opts.boxalpha - - -- Cache - - lo = add_layout("cache") - lo.geometry = - {x = posX, y = posY + 1, - an = 8, w = tc_w, h = ele_h} - lo.style = styles.timecodes - lo.alpha[3] = user_opts.boxalpha - - -end - -function bar_layout(direction) - local osc_geo = { - x = -2, - y, - an = (direction < 0) and 7 or 1, - w, - h = 56, - } - - local padX = 9 - local padY = 3 - local buttonW = 27 - local tcW = (state.tc_ms) and 170 or 110 - if user_opts.tcspace >= 50 and user_opts.tcspace <= 200 then - -- adjust our hardcoded font size estimation - tcW = tcW * user_opts.tcspace / 100 - end - - local tsW = 90 - local minW = (buttonW + padX)*5 + (tcW + padX)*4 + (tsW + padX)*2 - - -- Special topbar handling when window controls are present - local padwc_l - local padwc_r - if direction < 0 or not window_controls_enabled() then - padwc_l = 0 - padwc_r = 0 - elseif window_controls_alignment() == "left" then - padwc_l = window_control_box_width - padwc_r = 0 - else - padwc_l = 0 - padwc_r = window_control_box_width - end - - if ((osc_param.display_aspect > 0) and (osc_param.playresx < minW)) then - osc_param.playresy = minW / osc_param.display_aspect - osc_param.playresx = osc_param.playresy * osc_param.display_aspect - end - - osc_geo.y = direction * (54 + user_opts.barmargin) - osc_geo.w = osc_param.playresx + 4 - if direction < 0 then - osc_geo.y = osc_geo.y + osc_param.playresy - end - - local line1 = osc_geo.y - direction * (9 + padY) - local line2 = osc_geo.y - direction * (36 + padY) - - osc_param.areas = {} - - add_area("input", get_hitbox_coords(osc_geo.x, osc_geo.y, osc_geo.an, - osc_geo.w, osc_geo.h)) - - local sh_area_y0, sh_area_y1 - if direction > 0 then - -- deadzone below OSC - sh_area_y0 = user_opts.barmargin - sh_area_y1 = (osc_geo.y + (osc_geo.h / 2)) + - get_align(1 - (2*user_opts.deadzonesize), - osc_param.playresy - (osc_geo.y + (osc_geo.h / 2)), 0, 0) - else - -- deadzone above OSC - sh_area_y0 = get_align(-1 + (2*user_opts.deadzonesize), - osc_geo.y - (osc_geo.h / 2), 0, 0) - sh_area_y1 = osc_param.playresy - user_opts.barmargin - end - add_area("showhide", 0, sh_area_y0, osc_param.playresx, sh_area_y1) - - local lo, geo - - -- Background bar - new_element("bgbox", "box") - lo = add_layout("bgbox") - - lo.geometry = osc_geo - lo.layer = 10 - lo.style = osc_styles.box - lo.alpha[1] = user_opts.boxalpha - - - -- Playlist prev/next - geo = { x = osc_geo.x + padX, y = line1, - an = 4, w = 18, h = 18 - padY } - lo = add_layout("pl_prev") - lo.geometry = geo - lo.style = osc_styles.topButtonsBar - - geo = { x = geo.x + geo.w + padX, y = geo.y, an = geo.an, w = geo.w, h = geo.h } - lo = add_layout("pl_next") - lo.geometry = geo - lo.style = osc_styles.topButtonsBar - - local t_l = geo.x + geo.w + padX - - -- Cache - geo = { x = osc_geo.x + osc_geo.w - padX, y = geo.y, - an = 6, w = 150, h = geo.h } - lo = add_layout("cache") - lo.geometry = geo - lo.style = osc_styles.vidtitleBar - - local t_r = geo.x - geo.w - padX*2 - - -- Title - geo = { x = t_l, y = geo.y, an = 4, - w = t_r - t_l, h = geo.h } - lo = add_layout("title") - lo.geometry = geo - lo.style = string.format("%s{\\clip(%f,%f,%f,%f)}", - osc_styles.vidtitleBar, - geo.x, geo.y-geo.h, geo.w, geo.y+geo.h) - - - -- Playback control buttons - geo = { x = osc_geo.x + padX + padwc_l, y = line2, an = 4, - w = buttonW, h = 36 - padY*2} - lo = add_layout("playpause") - lo.geometry = geo - lo.style = osc_styles.smallButtonsBar - - geo = { x = geo.x + geo.w + padX, y = geo.y, an = geo.an, w = geo.w, h = geo.h } - lo = add_layout("ch_prev") - lo.geometry = geo - lo.style = osc_styles.smallButtonsBar - - geo = { x = geo.x + geo.w + padX, y = geo.y, an = geo.an, w = geo.w, h = geo.h } - lo = add_layout("ch_next") - lo.geometry = geo - lo.style = osc_styles.smallButtonsBar - - -- Left timecode - geo = { x = geo.x + geo.w + padX + tcW, y = geo.y, an = 6, - w = tcW, h = geo.h } - lo = add_layout("tc_left") - lo.geometry = geo - lo.style = osc_styles.timecodesBar - - local sb_l = geo.x + padX - - -- Fullscreen button - geo = { x = osc_geo.x + osc_geo.w - buttonW - padX - padwc_r, y = geo.y, an = 4, - w = buttonW, h = geo.h } - lo = add_layout("tog_fs") - lo.geometry = geo - lo.style = osc_styles.smallButtonsBar - - -- START quality-menu - geo = { x = geo.x - geo.w - padX, y = geo.y, an = geo.an, w = geo.w, h = geo.h } - lo = add_layout("quality-menu") - lo.geometry = geo - lo.style = osc_styles.smallButtonsBar - -- END quality-menu - - -- Volume - geo = { x = geo.x - geo.w - padX, y = geo.y, an = geo.an, w = geo.w, h = geo.h } - lo = add_layout("volume") - lo.geometry = geo - lo.style = osc_styles.smallButtonsBar - - -- Track selection buttons - geo = { x = geo.x - tsW - padX, y = geo.y, an = geo.an, w = tsW, h = geo.h } - lo = add_layout("cy_sub") - lo.geometry = geo - lo.style = osc_styles.smallButtonsBar - - geo = { x = geo.x - geo.w - padX, y = geo.y, an = geo.an, w = geo.w, h = geo.h } - lo = add_layout("cy_audio") - lo.geometry = geo - lo.style = osc_styles.smallButtonsBar - - - -- Right timecode - geo = { x = geo.x - padX - tcW - 10, y = geo.y, an = geo.an, - w = tcW, h = geo.h } - lo = add_layout("tc_right") - lo.geometry = geo - lo.style = osc_styles.timecodesBar - - local sb_r = geo.x - padX - - - -- Seekbar - geo = { x = sb_l, y = geo.y, an = geo.an, - w = math.max(0, sb_r - sb_l), h = geo.h } - new_element("bgbar1", "box") - lo = add_layout("bgbar1") - - lo.geometry = geo - lo.layer = 15 - lo.style = osc_styles.timecodesBar - lo.alpha[1] = - math.min(255, user_opts.boxalpha + (255 - user_opts.boxalpha)*0.8) - if not (user_opts["seekbarstyle"] == "bar") then - lo.box.radius = geo.h / 2 - lo.box.hexagon = user_opts["seekbarstyle"] == "diamond" - end - - lo = add_layout("seekbar") - lo.geometry = geo - lo.style = osc_styles.timecodesBar - lo.slider.border = 0 - lo.slider.gap = 2 - lo.slider.tooltip_style = osc_styles.timePosBar - lo.slider.tooltip_an = 5 - lo.slider.stype = user_opts["seekbarstyle"] - lo.slider.rtype = user_opts["seekrangestyle"] - - if direction < 0 then - osc_param.video_margins.b = osc_geo.h / osc_param.playresy - else - osc_param.video_margins.t = osc_geo.h / osc_param.playresy - end -end - -layouts["bottombar"] = function() - bar_layout(-1) -end - -layouts["topbar"] = function() - bar_layout(1) -end - --- Validate string type user options -function validate_user_opts() - if layouts[user_opts.layout] == nil then - msg.warn("Invalid setting \""..user_opts.layout.."\" for layout") - user_opts.layout = "bottombar" - end - - if user_opts.seekbarstyle ~= "bar" and - user_opts.seekbarstyle ~= "diamond" and - user_opts.seekbarstyle ~= "knob" then - msg.warn("Invalid setting \"" .. user_opts.seekbarstyle - .. "\" for seekbarstyle") - user_opts.seekbarstyle = "bar" - end - - if user_opts.seekrangestyle ~= "bar" and - user_opts.seekrangestyle ~= "line" and - user_opts.seekrangestyle ~= "slider" and - user_opts.seekrangestyle ~= "inverted" and - user_opts.seekrangestyle ~= "none" then - msg.warn("Invalid setting \"" .. user_opts.seekrangestyle - .. "\" for seekrangestyle") - user_opts.seekrangestyle = "inverted" - end - - if user_opts.seekrangestyle == "slider" and - user_opts.seekbarstyle == "bar" then - msg.warn("Using \"slider\" seekrangestyle together with \"bar\" seekbarstyle is not supported") - user_opts.seekrangestyle = "inverted" - end - - if user_opts.windowcontrols ~= "auto" and - user_opts.windowcontrols ~= "yes" and - user_opts.windowcontrols ~= "no" then - msg.warn("windowcontrols cannot be \"" .. - user_opts.windowcontrols .. "\". Ignoring.") - user_opts.windowcontrols = "auto" - end - if user_opts.windowcontrols_alignment ~= "right" and - user_opts.windowcontrols_alignment ~= "left" then - msg.warn("windowcontrols_alignment cannot be \"" .. - user_opts.windowcontrols_alignment .. "\". Ignoring.") - user_opts.windowcontrols_alignment = "right" - end -end - -function update_options(list) - validate_user_opts() - request_tick() - visibility_mode(user_opts.visibility, true) - update_duration_watch() - request_init() -end - -local UNICODE_MINUS = string.char(0xe2, 0x88, 0x92) -- UTF-8 for U+2212 MINUS SIGN - --- OSC INIT -function osc_init() - msg.debug("osc_init") - - -- set canvas resolution according to display aspect and scaling setting - local baseResY = 720 - local display_w, display_h, display_aspect = mp.get_osd_size() - local scale = 1 - - if (mp.get_property("video") == "no") then -- dummy/forced window - scale = user_opts.scaleforcedwindow - elseif state.fullscreen then - scale = user_opts.scalefullscreen - else - scale = user_opts.scalewindowed - end - - if user_opts.vidscale then - osc_param.unscaled_y = baseResY - else - osc_param.unscaled_y = display_h - end - osc_param.playresy = osc_param.unscaled_y / scale - if (display_aspect > 0) then - osc_param.display_aspect = display_aspect - end - osc_param.playresx = osc_param.playresy * osc_param.display_aspect - - -- stop seeking with the slider to prevent skipping files - state.active_element = nil - - osc_param.video_margins = {l = 0, r = 0, t = 0, b = 0} - - elements = {} - - -- some often needed stuff - local pl_count = mp.get_property_number("playlist-count", 0) - local have_pl = (pl_count > 1) - local pl_pos = mp.get_property_number("playlist-pos", 0) + 1 - local have_ch = (mp.get_property_number("chapters", 0) > 0) - local loop = mp.get_property("loop-playlist", "no") - - local ne - - -- title - ne = new_element("title", "button") - - ne.content = function () - local title = state.forced_title or - mp.command_native({"expand-text", user_opts.title}) - -- escape ASS, and strip newlines and trailing slashes - title = title:gsub("\\n", " "):gsub("\\$", ""):gsub("{","\\{") - return not (title == "") and title or "mpv" - end - - ne.eventresponder["mbtn_left_up"] = function () - local title = mp.get_property_osd("media-title") - if (have_pl) then - title = string.format("[%d/%d] %s", countone(pl_pos - 1), - pl_count, title) - end - show_message(title) - end - - ne.eventresponder["mbtn_right_up"] = - function () show_message(mp.get_property_osd("filename")) end - - -- playlist buttons - - -- prev - ne = new_element("pl_prev", "button") - - ne.content = "\238\132\144" - ne.enabled = (pl_pos > 1) or (loop ~= "no") - ne.eventresponder["mbtn_left_up"] = - function () - mp.commandv("playlist-prev", "weak") - if user_opts.playlist_osd then - show_message(get_playlist(), 3) - end - end - ne.eventresponder["shift+mbtn_left_up"] = - function () show_message(get_playlist(), 3) end - ne.eventresponder["mbtn_right_up"] = - function () show_message(get_playlist(), 3) end - - --next - ne = new_element("pl_next", "button") - - ne.content = "\238\132\129" - ne.enabled = (have_pl and (pl_pos < pl_count)) or (loop ~= "no") - ne.eventresponder["mbtn_left_up"] = - function () - mp.commandv("playlist-next", "weak") - if user_opts.playlist_osd then - show_message(get_playlist(), 3) - end - end - ne.eventresponder["shift+mbtn_left_up"] = - function () show_message(get_playlist(), 3) end - ne.eventresponder["mbtn_right_up"] = - function () show_message(get_playlist(), 3) end - - - -- big buttons - - --playpause - ne = new_element("playpause", "button") - - ne.content = function () - if mp.get_property("pause") == "yes" then - return ("\238\132\129") - else - return ("\238\128\130") - end - end - ne.eventresponder["mbtn_left_up"] = - function () mp.commandv("cycle", "pause") end - - --skipback - ne = new_element("skipback", "button") - - ne.softrepeat = true - ne.content = "\238\128\132" - ne.eventresponder["mbtn_left_down"] = - function () mp.commandv("seek", -5, "relative", "keyframes") end - ne.eventresponder["shift+mbtn_left_down"] = - function () mp.commandv("frame-back-step") end - ne.eventresponder["mbtn_right_down"] = - function () mp.commandv("seek", -30, "relative", "keyframes") end - - --skipfrwd - ne = new_element("skipfrwd", "button") - - ne.softrepeat = true - ne.content = "\238\128\133" - ne.eventresponder["mbtn_left_down"] = - function () mp.commandv("seek", 10, "relative", "keyframes") end - ne.eventresponder["shift+mbtn_left_down"] = - function () mp.commandv("frame-step") end - ne.eventresponder["mbtn_right_down"] = - function () mp.commandv("seek", 60, "relative", "keyframes") end - - --ch_prev - ne = new_element("ch_prev", "button") - - ne.enabled = have_ch - ne.content = "\238\132\132" - ne.eventresponder["mbtn_left_up"] = - function () - mp.commandv("add", "chapter", -1) - if user_opts.chapters_osd then - show_message(get_chapterlist(), 3) - end - end - ne.eventresponder["shift+mbtn_left_up"] = - function () show_message(get_chapterlist(), 3) end - ne.eventresponder["mbtn_right_up"] = - function () show_message(get_chapterlist(), 3) end - - --ch_next - ne = new_element("ch_next", "button") - - ne.enabled = have_ch - ne.content = "\238\132\133" - ne.eventresponder["mbtn_left_up"] = - function () - mp.commandv("add", "chapter", 1) - if user_opts.chapters_osd then - show_message(get_chapterlist(), 3) - end - end - ne.eventresponder["shift+mbtn_left_up"] = - function () show_message(get_chapterlist(), 3) end - ne.eventresponder["mbtn_right_up"] = - function () show_message(get_chapterlist(), 3) end - - -- - update_tracklist() - - --cy_audio - ne = new_element("cy_audio", "button") - - ne.enabled = (#tracks_osc.audio > 0) - ne.content = function () - local aid = "–" - if not (get_track("audio") == 0) then - aid = get_track("audio") - end - return ("\238\132\134" .. osc_styles.smallButtonsLlabel - .. " " .. aid .. "/" .. #tracks_osc.audio) - end - ne.eventresponder["mbtn_left_up"] = - function () set_track("audio", 1) end - ne.eventresponder["mbtn_right_up"] = - function () set_track("audio", -1) end - ne.eventresponder["shift+mbtn_left_down"] = - function () show_message(get_tracklist("audio"), 2) end - - --cy_sub - ne = new_element("cy_sub", "button") - - ne.enabled = (#tracks_osc.sub > 0) - ne.content = function () - local sid = "–" - if not (get_track("sub") == 0) then - sid = get_track("sub") - end - return ("\238\132\135" .. osc_styles.smallButtonsLlabel - .. " " .. sid .. "/" .. #tracks_osc.sub) - end - ne.eventresponder["mbtn_left_up"] = - function () set_track("sub", 1) end - ne.eventresponder["mbtn_right_up"] = - function () set_track("sub", -1) end - ne.eventresponder["shift+mbtn_left_down"] = - function () show_message(get_tracklist("sub"), 2) end - - --tog_fs - ne = new_element("tog_fs", "button") - ne.content = function () - if (state.fullscreen) then - return ("\238\132\137") - else - return ("\238\132\136") - end - end - ne.eventresponder["mbtn_left_up"] = - function () mp.commandv("cycle", "fullscreen") end - - --seekbar - ne = new_element("seekbar", "slider") - - ne.enabled = not (mp.get_property("percent-pos") == nil) - state.slider_element = ne.enabled and ne or nil -- used for forced_title - ne.slider.markerF = function () - local duration = mp.get_property_number("duration", nil) - if not (duration == nil) then - local chapters = mp.get_property_native("chapter-list", {}) - local markers = {} - for n = 1, #chapters do - markers[n] = (chapters[n].time / duration * 100) - end - return markers - else - return {} - end - end - ne.slider.posF = - function () return mp.get_property_number("percent-pos", nil) end - ne.slider.tooltipF = function (pos) - local duration = mp.get_property_number("duration", nil) - if not ((duration == nil) or (pos == nil)) then - possec = duration * (pos / 100) - return mp.format_time(possec) - else - return "" - end - end - ne.slider.seekRangesF = function() - if user_opts.seekrangestyle == "none" then - return nil - end - local cache_state = state.cache_state - if not cache_state then - return nil - end - local duration = mp.get_property_number("duration", nil) - if (duration == nil) or duration <= 0 then - return nil - end - local ranges = cache_state["seekable-ranges"] - if #ranges == 0 then - return nil - end - local nranges = {} - for _, range in pairs(ranges) do - nranges[#nranges + 1] = { - ["start"] = 100 * range["start"] / duration, - ["end"] = 100 * range["end"] / duration, - } - end - return nranges - end - ne.eventresponder["mouse_move"] = --keyframe seeking when mouse is dragged - function (element) - -- mouse move events may pile up during seeking and may still get - -- sent when the user is done seeking, so we need to throw away - -- identical seeks - local seekto = get_slider_value(element) - if (element.state.lastseek == nil) or - (not (element.state.lastseek == seekto)) then - local flags = "absolute-percent" - if not user_opts.seekbarkeyframes then - flags = flags .. "+exact" - end - mp.commandv("seek", seekto, flags) - element.state.lastseek = seekto - end - - end - ne.eventresponder["mbtn_left_down"] = --exact seeks on single clicks - function (element) mp.commandv("seek", get_slider_value(element), - "absolute-percent", "exact") end - ne.eventresponder["reset"] = - function (element) element.state.lastseek = nil end - - - -- tc_left (current pos) - ne = new_element("tc_left", "button") - - ne.content = function () - if (state.tc_ms) then - return (mp.get_property_osd("playback-time/full")) - else - return (mp.get_property_osd("playback-time")) - end - end - ne.eventresponder["mbtn_left_up"] = function () - state.tc_ms = not state.tc_ms - request_init() - end - - -- tc_right (total/remaining time) - ne = new_element("tc_right", "button") - - ne.visible = (mp.get_property_number("duration", 0) > 0) - ne.content = function () - if (state.rightTC_trem) then - local minus = user_opts.unicodeminus and UNICODE_MINUS or "-" - if state.tc_ms then - return (minus..mp.get_property_osd("playtime-remaining/full")) - else - return (minus..mp.get_property_osd("playtime-remaining")) - end - else - if state.tc_ms then - return (mp.get_property_osd("duration/full")) - else - return (mp.get_property_osd("duration")) - end - end - end - ne.eventresponder["mbtn_left_up"] = - function () state.rightTC_trem = not state.rightTC_trem end - - -- cache - ne = new_element("cache", "button") - - ne.content = function () - local cache_state = state.cache_state - if not (cache_state and cache_state["seekable-ranges"] and - #cache_state["seekable-ranges"] > 0) then - -- probably not a network stream - return "" - end - local dmx_cache = cache_state and cache_state["cache-duration"] - local thresh = math.min(state.dmx_cache * 0.05, 5) -- 5% or 5s - if dmx_cache and math.abs(dmx_cache - state.dmx_cache) >= thresh then - state.dmx_cache = dmx_cache - else - dmx_cache = state.dmx_cache - end - local min = math.floor(dmx_cache / 60) - local sec = math.floor(dmx_cache % 60) -- don't round e.g. 59.9 to 60 - return "Cache: " .. (min > 0 and - string.format("%sm%02.0fs", min, sec) or - string.format("%3.0fs", sec)) - end - - -- START quality-menu - ne = new_element("quality-menu", "button") - ne.content = function() - return ("≚") - end - ne.eventresponder["mbtn_left_up"] = - function () mp.commandv("script-message", "video_formats_toggle") end - ne.eventresponder["mbtn_right_up"] = - function () mp.commandv("script-message", "audio_formats_toggle") end - -- END quality-menu - - -- volume - ne = new_element("volume", "button") - - ne.content = function() - local volume = mp.get_property_number("volume", 0) - local mute = mp.get_property_native("mute") - local volicon = {"\238\132\139", "\238\132\140", - "\238\132\141", "\238\132\142"} - if volume == 0 or mute then - return "\238\132\138" - else - return volicon[math.min(4,math.ceil(volume / (100/3)))] - end - end - ne.eventresponder["mbtn_left_up"] = - function () mp.commandv("cycle", "mute") end - - ne.eventresponder["wheel_up_press"] = - function () mp.commandv("osd-auto", "add", "volume", 5) end - ne.eventresponder["wheel_down_press"] = - function () mp.commandv("osd-auto", "add", "volume", -5) end - - - -- load layout - layouts[user_opts.layout]() - - -- load window controls - if window_controls_enabled() then - window_controls(user_opts.layout == "topbar") - end - - --do something with the elements - prepare_elements() - - update_margins() -end - -function reset_margins() - if state.using_video_margins then - for _, opt in ipairs(margins_opts) do - mp.set_property_number(opt[2], 0.0) - end - state.using_video_margins = false - end -end - -function update_margins() - local margins = osc_param.video_margins - - -- Don't use margins if it's visible only temporarily. - if (not state.osc_visible) or (get_hidetimeout() >= 0) or - (state.fullscreen and not user_opts.showfullscreen) or - (not state.fullscreen and not user_opts.showwindowed) - then - margins = {l = 0, r = 0, t = 0, b = 0} - end - - if user_opts.boxvideo then - -- check whether any margin option has a non-default value - local margins_used = false - - if not state.using_video_margins then - for _, opt in ipairs(margins_opts) do - if mp.get_property_number(opt[2], 0.0) ~= 0.0 then - margins_used = true - end - end - end - - if not margins_used then - for _, opt in ipairs(margins_opts) do - local v = margins[opt[1]] - if (v ~= 0) or state.using_video_margins then - mp.set_property_number(opt[2], v) - state.using_video_margins = true - end - end - end - else - reset_margins() - end - - utils.shared_script_property_set("osc-margins", - string.format("%f,%f,%f,%f", margins.l, margins.r, margins.t, margins.b)) -end - -function shutdown() - reset_margins() - utils.shared_script_property_set("osc-margins", nil) -end - --- --- Other important stuff --- - - -function show_osc() - -- show when disabled can happen (e.g. mouse_move) due to async/delayed unbinding - if not state.enabled then return end - - msg.trace("show_osc") - --remember last time of invocation (mouse move) - state.showtime = mp.get_time() - - osc_visible(true) - - if (user_opts.fadeduration > 0) then - state.anitype = nil - end -end - -function hide_osc() - msg.trace("hide_osc") - if not state.enabled then - -- typically hide happens at render() from tick(), but now tick() is - -- no-op and won't render again to remove the osc, so do that manually. - state.osc_visible = false - render_wipe() - elseif (user_opts.fadeduration > 0) then - if not(state.osc_visible == false) then - state.anitype = "out" - request_tick() - end - else - osc_visible(false) - end -end - -function osc_visible(visible) - if state.osc_visible ~= visible then - state.osc_visible = visible - update_margins() - end - request_tick() -end - -function pause_state(name, enabled) - state.paused = enabled - request_tick() -end - -function cache_state(name, st) - state.cache_state = st - request_tick() -end - --- Request that tick() is called (which typically re-renders the OSC). --- The tick is then either executed immediately, or rate-limited if it was --- called a small time ago. -function request_tick() - if state.tick_timer == nil then - state.tick_timer = mp.add_timeout(0, tick) - end - - if not state.tick_timer:is_enabled() then - local now = mp.get_time() - local timeout = tick_delay - (now - state.tick_last_time) - if timeout < 0 then - timeout = 0 - end - state.tick_timer.timeout = timeout - state.tick_timer:resume() - end -end - -function mouse_leave() - if get_hidetimeout() >= 0 then - hide_osc() - end - -- reset mouse position - state.last_mouseX, state.last_mouseY = nil, nil - state.mouse_in_window = false -end - -function request_init() - state.initREQ = true - request_tick() -end - --- Like request_init(), but also request an immediate update -function request_init_resize() - request_init() - -- ensure immediate update - state.tick_timer:kill() - state.tick_timer.timeout = 0 - state.tick_timer:resume() -end - -function render_wipe() - msg.trace("render_wipe()") - state.osd.data = "" -- allows set_osd to immediately update on enable - state.osd:remove() -end - -function render() - msg.trace("rendering") - local current_screen_sizeX, current_screen_sizeY, aspect = mp.get_osd_size() - local mouseX, mouseY = get_virt_mouse_pos() - local now = mp.get_time() - - -- check if display changed, if so request reinit - if not (state.mp_screen_sizeX == current_screen_sizeX - and state.mp_screen_sizeY == current_screen_sizeY) then - - request_init_resize() - - state.mp_screen_sizeX = current_screen_sizeX - state.mp_screen_sizeY = current_screen_sizeY - end - - -- init management - if state.active_element then - -- mouse is held down on some element - keep ticking and igore initReq - -- till it's released, or else the mouse-up (click) will misbehave or - -- get ignored. that's because osc_init() recreates the osc elements, - -- but mouse handling depends on the elements staying unmodified - -- between mouse-down and mouse-up (using the index active_element). - request_tick() - elseif state.initREQ then - osc_init() - state.initREQ = false - - -- store initial mouse position - if (state.last_mouseX == nil or state.last_mouseY == nil) - and not (mouseX == nil or mouseY == nil) then - - state.last_mouseX, state.last_mouseY = mouseX, mouseY - end - end - - - -- fade animation - if not(state.anitype == nil) then - - if (state.anistart == nil) then - state.anistart = now - end - - if (now < state.anistart + (user_opts.fadeduration/1000)) then - - if (state.anitype == "in") then --fade in - osc_visible(true) - state.animation = scale_value(state.anistart, - (state.anistart + (user_opts.fadeduration/1000)), - 255, 0, now) - elseif (state.anitype == "out") then --fade out - state.animation = scale_value(state.anistart, - (state.anistart + (user_opts.fadeduration/1000)), - 0, 255, now) - end - - else - if (state.anitype == "out") then - osc_visible(false) - end - kill_animation() - end - else - kill_animation() - end - - --mouse show/hide area - for k,cords in pairs(osc_param.areas["showhide"]) do - set_virt_mouse_area(cords.x1, cords.y1, cords.x2, cords.y2, "showhide") - end - if osc_param.areas["showhide_wc"] then - for k,cords in pairs(osc_param.areas["showhide_wc"]) do - set_virt_mouse_area(cords.x1, cords.y1, cords.x2, cords.y2, "showhide_wc") - end - else - set_virt_mouse_area(0, 0, 0, 0, "showhide_wc") - end - do_enable_keybindings() - - --mouse input area - local mouse_over_osc = false - - for _,cords in ipairs(osc_param.areas["input"]) do - if state.osc_visible then -- activate only when OSC is actually visible - set_virt_mouse_area(cords.x1, cords.y1, cords.x2, cords.y2, "input") - end - if state.osc_visible ~= state.input_enabled then - if state.osc_visible then - mp.enable_key_bindings("input") - else - mp.disable_key_bindings("input") - end - state.input_enabled = state.osc_visible - end - - if (mouse_hit_coords(cords.x1, cords.y1, cords.x2, cords.y2)) then - mouse_over_osc = true - end - end - - if osc_param.areas["window-controls"] then - for _,cords in ipairs(osc_param.areas["window-controls"]) do - if state.osc_visible then -- activate only when OSC is actually visible - set_virt_mouse_area(cords.x1, cords.y1, cords.x2, cords.y2, "window-controls") - mp.enable_key_bindings("window-controls") - else - mp.disable_key_bindings("window-controls") - end - - if (mouse_hit_coords(cords.x1, cords.y1, cords.x2, cords.y2)) then - mouse_over_osc = true - end - end - end - - if osc_param.areas["window-controls-title"] then - for _,cords in ipairs(osc_param.areas["window-controls-title"]) do - if (mouse_hit_coords(cords.x1, cords.y1, cords.x2, cords.y2)) then - mouse_over_osc = true - end - end - end - - -- autohide - if not (state.showtime == nil) and (get_hidetimeout() >= 0) then - local timeout = state.showtime + (get_hidetimeout()/1000) - now - if timeout <= 0 then - if (state.active_element == nil) and not (mouse_over_osc) then - hide_osc() - end - else - -- the timer is only used to recheck the state and to possibly run - -- the code above again - if not state.hide_timer then - state.hide_timer = mp.add_timeout(0, tick) - end - state.hide_timer.timeout = timeout - -- re-arm - state.hide_timer:kill() - state.hide_timer:resume() - end - end - - - -- actual rendering - local ass = assdraw.ass_new() - - -- Messages - render_message(ass) - - -- actual OSC - if state.osc_visible then - render_elements(ass) - end - - -- submit - set_osd(osc_param.playresy * osc_param.display_aspect, - osc_param.playresy, ass.text) -end - --- --- Eventhandling --- - -local function element_has_action(element, action) - return element and element.eventresponder and - element.eventresponder[action] -end - -function process_event(source, what) - local action = string.format("%s%s", source, - what and ("_" .. what) or "") - - if what == "down" or what == "press" then - - for n = 1, #elements do - - if mouse_hit(elements[n]) and - elements[n].eventresponder and - (elements[n].eventresponder[source .. "_up"] or - elements[n].eventresponder[action]) then - - if what == "down" then - state.active_element = n - state.active_event_source = source - end - -- fire the down or press event if the element has one - if element_has_action(elements[n], action) then - elements[n].eventresponder[action](elements[n]) - end - - end - end - - elseif what == "up" then - - if elements[state.active_element] then - local n = state.active_element - - if n == 0 then - --click on background (does not work) - elseif element_has_action(elements[n], action) and - mouse_hit(elements[n]) then - - elements[n].eventresponder[action](elements[n]) - end - - --reset active element - if element_has_action(elements[n], "reset") then - elements[n].eventresponder["reset"](elements[n]) - end - - end - state.active_element = nil - state.mouse_down_counter = 0 - - elseif source == "mouse_move" then - - state.mouse_in_window = true - - local mouseX, mouseY = get_virt_mouse_pos() - if (user_opts.minmousemove == 0) or - (not ((state.last_mouseX == nil) or (state.last_mouseY == nil)) and - ((math.abs(mouseX - state.last_mouseX) >= user_opts.minmousemove) - or (math.abs(mouseY - state.last_mouseY) >= user_opts.minmousemove) - ) - ) then - show_osc() - end - state.last_mouseX, state.last_mouseY = mouseX, mouseY - - local n = state.active_element - if element_has_action(elements[n], action) then - elements[n].eventresponder[action](elements[n]) - end - end - - -- ensure rendering after any (mouse) event - icons could change etc - request_tick() -end - - -local logo_lines = { - -- White border - "{\\c&HE5E5E5&\\p6}m 895 10 b 401 10 0 410 0 905 0 1399 401 1800 895 1800 1390 1800 1790 1399 1790 905 1790 410 1390 10 895 10 {\\p0}", - -- Purple fill - "{\\c&H682167&\\p6}m 925 42 b 463 42 87 418 87 880 87 1343 463 1718 925 1718 1388 1718 1763 1343 1763 880 1763 418 1388 42 925 42{\\p0}", - -- Darker fill - "{\\c&H430142&\\p6}m 1605 828 b 1605 1175 1324 1456 977 1456 631 1456 349 1175 349 828 349 482 631 200 977 200 1324 200 1605 482 1605 828{\\p0}", - -- White fill - "{\\c&HDDDBDD&\\p6}m 1296 910 b 1296 1131 1117 1310 897 1310 676 1310 497 1131 497 910 497 689 676 511 897 511 1117 511 1296 689 1296 910{\\p0}", - -- Triangle - "{\\c&H691F69&\\p6}m 762 1113 l 762 708 b 881 776 1000 843 1119 911 1000 978 881 1046 762 1113{\\p0}", -} - -local santa_hat_lines = { - -- Pompoms - "{\\c&HC0C0C0&\\p6}m 500 -323 b 491 -322 481 -318 475 -311 465 -312 456 -319 446 -318 434 -314 427 -304 417 -297 410 -290 404 -282 395 -278 390 -274 387 -267 381 -265 377 -261 379 -254 384 -253 397 -244 409 -232 425 -228 437 -228 446 -218 457 -217 462 -216 466 -213 468 -209 471 -205 477 -203 482 -206 491 -211 499 -217 508 -222 532 -235 556 -249 576 -267 584 -272 584 -284 578 -290 569 -305 550 -312 533 -309 523 -310 515 -316 507 -321 505 -323 503 -323 500 -323{\\p0}", - "{\\c&HE0E0E0&\\p6}m 315 -260 b 286 -258 259 -240 246 -215 235 -210 222 -215 211 -211 204 -188 177 -176 172 -151 170 -139 163 -128 154 -121 143 -103 141 -81 143 -60 139 -46 125 -34 129 -17 132 -1 134 16 142 30 145 56 161 80 181 96 196 114 210 133 231 144 266 153 303 138 328 115 373 79 401 28 423 -24 446 -73 465 -123 483 -174 487 -199 467 -225 442 -227 421 -232 402 -242 384 -254 364 -259 342 -250 322 -260 320 -260 317 -261 315 -260{\\p0}", - -- Main cap - "{\\c&H0000F0&\\p6}m 1151 -523 b 1016 -516 891 -458 769 -406 693 -369 624 -319 561 -262 526 -252 465 -235 479 -187 502 -147 551 -135 588 -111 1115 165 1379 232 1909 761 1926 800 1952 834 1987 858 2020 883 2053 912 2065 952 2088 1000 2146 962 2139 919 2162 836 2156 747 2143 662 2131 615 2116 567 2122 517 2120 410 2090 306 2089 199 2092 147 2071 99 2034 64 1987 5 1928 -41 1869 -86 1777 -157 1712 -256 1629 -337 1578 -389 1521 -436 1461 -476 1407 -509 1343 -507 1284 -515 1240 -519 1195 -521 1151 -523{\\p0}", - -- Cap shadow - "{\\c&H0000AA&\\p6}m 1657 248 b 1658 254 1659 261 1660 267 1669 276 1680 284 1689 293 1695 302 1700 311 1707 320 1716 325 1726 330 1735 335 1744 347 1752 360 1761 371 1753 352 1754 331 1753 311 1751 237 1751 163 1751 90 1752 64 1752 37 1767 14 1778 -3 1785 -24 1786 -45 1786 -60 1786 -77 1774 -87 1760 -96 1750 -78 1751 -65 1748 -37 1750 -8 1750 20 1734 78 1715 134 1699 192 1694 211 1689 231 1676 246 1671 251 1661 255 1657 248 m 1909 541 b 1914 542 1922 549 1917 539 1919 520 1921 502 1919 483 1918 458 1917 433 1915 407 1930 373 1942 338 1947 301 1952 270 1954 238 1951 207 1946 214 1947 229 1945 239 1939 278 1936 318 1924 356 1923 362 1913 382 1912 364 1906 301 1904 237 1891 175 1887 150 1892 126 1892 101 1892 68 1893 35 1888 2 1884 -9 1871 -20 1859 -14 1851 -6 1854 9 1854 20 1855 58 1864 95 1873 132 1883 179 1894 225 1899 273 1908 362 1910 451 1909 541{\\p0}", - -- Brim and tip pompom - "{\\c&HF8F8F8&\\p6}m 626 -191 b 565 -155 486 -196 428 -151 387 -115 327 -101 304 -47 273 2 267 59 249 113 219 157 217 213 215 265 217 309 260 302 285 283 373 264 465 264 555 257 608 252 655 292 709 287 759 294 816 276 863 298 903 340 972 324 1012 367 1061 394 1125 382 1167 424 1213 462 1268 482 1322 506 1385 546 1427 610 1479 662 1510 690 1534 725 1566 752 1611 796 1664 830 1703 880 1740 918 1747 986 1805 1005 1863 991 1897 932 1916 880 1914 823 1945 777 1961 725 1979 673 1957 622 1938 575 1912 534 1862 515 1836 473 1790 417 1755 351 1697 305 1658 266 1633 216 1593 176 1574 138 1539 116 1497 110 1448 101 1402 77 1371 37 1346 -16 1295 15 1254 6 1211 -27 1170 -62 1121 -86 1072 -104 1027 -128 976 -133 914 -130 851 -137 794 -162 740 -181 679 -168 626 -191 m 2051 917 b 1971 932 1929 1017 1919 1091 1912 1149 1923 1214 1970 1254 2000 1279 2027 1314 2066 1325 2139 1338 2212 1295 2254 1238 2281 1203 2287 1158 2282 1116 2292 1061 2273 1006 2229 970 2206 941 2167 938 2138 918{\\p0}", -} - --- called by mpv on every frame -function tick() - if state.marginsREQ == true then - update_margins() - state.marginsREQ = false - end - - if (not state.enabled) then return end - - if (state.idle) then - - -- render idle message - msg.trace("idle message") - local icon_x, icon_y = 320 - 26, 140 - local line_prefix = ("{\\rDefault\\an7\\1a&H00&\\bord0\\shad0\\pos(%f,%f)}"):format(icon_x, icon_y) - - local ass = assdraw.ass_new() - -- mpv logo - if user_opts.idlescreen then - for i, line in ipairs(logo_lines) do - ass:new_event() - ass:append(line_prefix .. line) - end - end - - -- Santa hat - if is_december and user_opts.idlescreen and not user_opts.greenandgrumpy then - for i, line in ipairs(santa_hat_lines) do - ass:new_event() - ass:append(line_prefix .. line) - end - end - - if user_opts.idlescreen then - ass:new_event() - ass:pos(320, icon_y+65) - ass:an(8) - ass:append("Drop files or URLs to play here.") - end - set_osd(640, 360, ass.text) - - if state.showhide_enabled then - mp.disable_key_bindings("showhide") - mp.disable_key_bindings("showhide_wc") - state.showhide_enabled = false - end - - - elseif (state.fullscreen and user_opts.showfullscreen) - or (not state.fullscreen and user_opts.showwindowed) then - - -- render the OSC - render() - else - -- Flush OSD - render_wipe() - end - - state.tick_last_time = mp.get_time() - - if state.anitype ~= nil then - -- state.anistart can be nil - animation should now start, or it can - -- be a timestamp when it started. state.idle has no animation. - if not state.idle and - (not state.anistart or - mp.get_time() < 1 + state.anistart + user_opts.fadeduration/1000) - then - -- animating or starting, or still within 1s past the deadline - request_tick() - else - kill_animation() - end - end -end - -function do_enable_keybindings() - if state.enabled then - if not state.showhide_enabled then - mp.enable_key_bindings("showhide", "allow-vo-dragging+allow-hide-cursor") - mp.enable_key_bindings("showhide_wc", "allow-vo-dragging+allow-hide-cursor") - end - state.showhide_enabled = true - end -end - -function enable_osc(enable) - state.enabled = enable - if enable then - do_enable_keybindings() - else - hide_osc() -- acts immediately when state.enabled == false - if state.showhide_enabled then - mp.disable_key_bindings("showhide") - mp.disable_key_bindings("showhide_wc") - end - state.showhide_enabled = false - end -end - --- duration is observed for the sole purpose of updating chapter markers --- positions. live streams with chapters are very rare, and the update is also --- expensive (with request_init), so it's only observed when we have chapters --- and the user didn't disable the livemarkers option (update_duration_watch). -function on_duration() request_init() end - -local duration_watched = false -function update_duration_watch() - local want_watch = user_opts.livemarkers and - (mp.get_property_number("chapters", 0) or 0) > 0 and - true or false -- ensure it's a boolean - - if (want_watch ~= duration_watched) then - if want_watch then - mp.observe_property("duration", nil, on_duration) - else - mp.unobserve_property(on_duration) - end - duration_watched = want_watch - end -end - -validate_user_opts() -update_duration_watch() - -mp.register_event("shutdown", shutdown) -mp.register_event("start-file", request_init) -mp.observe_property("track-list", nil, request_init) -mp.observe_property("playlist", nil, request_init) -mp.observe_property("chapter-list", "native", function(_, list) - list = list or {} -- safety, shouldn't return nil - table.sort(list, function(a, b) return a.time < b.time end) - state.chapter_list = list - update_duration_watch() - request_init() -end) - -mp.register_script_message("osc-message", show_message) -mp.register_script_message("osc-chapterlist", function(dur) - show_message(get_chapterlist(), dur) -end) -mp.register_script_message("osc-playlist", function(dur) - show_message(get_playlist(), dur) -end) -mp.register_script_message("osc-tracklist", function(dur) - local msg = {} - for k,v in pairs(nicetypes) do - table.insert(msg, get_tracklist(k)) - end - show_message(table.concat(msg, '\n\n'), dur) -end) - -mp.observe_property("fullscreen", "bool", - function(name, val) - state.fullscreen = val - state.marginsREQ = true - request_init_resize() - end -) -mp.observe_property("border", "bool", - function(name, val) - state.border = val - request_init_resize() - end -) -mp.observe_property("window-maximized", "bool", - function(name, val) - state.maximized = val - request_init_resize() - end -) -mp.observe_property("idle-active", "bool", - function(name, val) - state.idle = val - request_tick() - end -) -mp.observe_property("pause", "bool", pause_state) -mp.observe_property("demuxer-cache-state", "native", cache_state) -mp.observe_property("vo-configured", "bool", function(name, val) - request_tick() -end) -mp.observe_property("playback-time", "number", function(name, val) - request_tick() -end) -mp.observe_property("osd-dimensions", "native", function(name, val) - -- (we could use the value instead of re-querying it all the time, but then - -- we might have to worry about property update ordering) - request_init_resize() -end) - --- mouse show/hide bindings -mp.set_key_bindings({ - {"mouse_move", function(e) process_event("mouse_move", nil) end}, - {"mouse_leave", mouse_leave}, -}, "showhide", "force") -mp.set_key_bindings({ - {"mouse_move", function(e) process_event("mouse_move", nil) end}, - {"mouse_leave", mouse_leave}, -}, "showhide_wc", "force") -do_enable_keybindings() - ---mouse input bindings -mp.set_key_bindings({ - {"mbtn_left", function(e) process_event("mbtn_left", "up") end, - function(e) process_event("mbtn_left", "down") end}, - {"shift+mbtn_left", function(e) process_event("shift+mbtn_left", "up") end, - function(e) process_event("shift+mbtn_left", "down") end}, - {"mbtn_right", function(e) process_event("mbtn_right", "up") end, - function(e) process_event("mbtn_right", "down") end}, - -- alias to shift_mbtn_left for single-handed mouse use - {"mbtn_mid", function(e) process_event("shift+mbtn_left", "up") end, - function(e) process_event("shift+mbtn_left", "down") end}, - {"wheel_up", function(e) process_event("wheel_up", "press") end}, - {"wheel_down", function(e) process_event("wheel_down", "press") end}, - {"mbtn_left_dbl", "ignore"}, - {"shift+mbtn_left_dbl", "ignore"}, - {"mbtn_right_dbl", "ignore"}, -}, "input", "force") -mp.enable_key_bindings("input") - -mp.set_key_bindings({ - {"mbtn_left", function(e) process_event("mbtn_left", "up") end, - function(e) process_event("mbtn_left", "down") end}, -}, "window-controls", "force") -mp.enable_key_bindings("window-controls") - -function get_hidetimeout() - if user_opts.visibility == "always" then - return -1 -- disable autohide - end - return user_opts.hidetimeout -end - -function always_on(val) - if state.enabled then - if val then - show_osc() - else - hide_osc() - end - end -end - --- mode can be auto/always/never/cycle --- the modes only affect internal variables and not stored on its own. -function visibility_mode(mode, no_osd) - if mode == "cycle" then - if not state.enabled then - mode = "auto" - elseif user_opts.visibility ~= "always" then - mode = "always" - else - mode = "never" - end - end - - if mode == "auto" then - always_on(false) - enable_osc(true) - elseif mode == "always" then - enable_osc(true) - always_on(true) - elseif mode == "never" then - enable_osc(false) - else - msg.warn("Ignoring unknown visibility mode '" .. mode .. "'") - return - end - - user_opts.visibility = mode - utils.shared_script_property_set("osc-visibility", mode) - - if not no_osd and tonumber(mp.get_property("osd-level")) >= 1 then - mp.osd_message("OSC visibility: " .. mode) - end - - -- Reset the input state on a mode change. The input state will be - -- recalculated on the next render cycle, except in 'never' mode where it - -- will just stay disabled. - mp.disable_key_bindings("input") - mp.disable_key_bindings("window-controls") - state.input_enabled = false - - update_margins() - request_tick() -end - -function idlescreen_visibility(mode, no_osd) - if mode == "cycle" then - if user_opts.idlescreen then - mode = "no" - else - mode = "yes" - end - end - - if mode == "yes" then - user_opts.idlescreen = true - else - user_opts.idlescreen = false - end - - utils.shared_script_property_set("osc-idlescreen", mode) - - if not no_osd and tonumber(mp.get_property("osd-level")) >= 1 then - mp.osd_message("OSC logo visibility: " .. tostring(mode)) - end - - request_tick() -end - -visibility_mode(user_opts.visibility, true) -mp.register_script_message("osc-visibility", visibility_mode) -mp.add_key_binding(nil, "visibility", function() visibility_mode("cycle") end) - -mp.register_script_message("osc-idlescreen", idlescreen_visibility) - -set_virt_mouse_area(0, 0, 0, 0, "input") -set_virt_mouse_area(0, 0, 0, 0, "window-controls") -- cgit v1.2.3 From 17a1b35c31aa0035f5570312a469d080ff00aefe Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 4 Jun 2024 22:13:12 -0500 Subject: Remove nix from profile; add zvm Removing nix, as using the package manager was an experiment I didn't super get along with. Adding in the Zig Version Manager to manage Zig installations. --- sh/profile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sh/profile b/sh/profile index c03fc93..c37bc48 100644 --- a/sh/profile +++ b/sh/profile @@ -1,8 +1,4 @@ -# Import ENV from system -. /etc/profile -[ -f /etc/profile.d/nix-daemon.sh ] && . /etc/profile.d/nix-daemon.sh - -# Other XDG vars +# XDG paths export XDG_DATA_HOME=${XDG_DATA_HOME:="$HOME/.local/share"} export XDG_CACHE_HOME=${XDG_CACHE_HOME:="$HOME/.cache"} export XDG_CONFIG_HOME=${XDG_CONFIG_HOME:="$HOME/.config"} @@ -74,6 +70,10 @@ export IMAGE="sxiv" export OPENER="xdg-open" export PAGER="less" +# ZVM +export ZVM_INSTALL="$HOME/.zvm/self" +export ZVMPATH="$HOME/.zvm/bin" + # Modern SDK export N64_LIBGCCDIR="/opt/crashsdk/lib/gcc/mips64-elf/12.2.0" export ROOT=/etc/n64 -- cgit v1.2.3 From 43c7d3b7e65b5ec36a5fe02dcbd3f2694cadeb53 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 4 Jun 2024 22:13:59 -0500 Subject: Fix adding paths to sh profile The previous method was clunky, redundant, and terrible; it is now better, and should not keep adding the same directories into the path when sourcing it over and over. --- sh/profile | 82 ++++++++++++++++++++++---------------------------------------- 1 file changed, 29 insertions(+), 53 deletions(-) diff --git a/sh/profile b/sh/profile index c37bc48..07f51f5 100644 --- a/sh/profile +++ b/sh/profile @@ -83,63 +83,39 @@ export BLENDER_3_0="/usr/bin/blender" export SRCDIR="$HOME/.local/src" # OLD PATH -export SYSPATH="$PATH" +export PATHS="$(echo "$PATH" | sed 's/:/\n/g')" +USERPATH="" -# NEW PATH addtopath () { - if [ -n "$PATH" ]; then - PATH="$@:$PATH" - else - PATH="$@" - fi + local USERPATHS="$(echo "$USERPATH" | sed 's/:/\n/g')" + if [ -d "$1" ]; then + echo "$PATHS" | /usr/bin/grep -qE "^$1$" && return + echo "$USERPATHS" | /usr/bin/grep -qE "^$1$" && return + [ -n "$USERPATH" ] && USERPATH="${USERPATH}:" + USERPATH="${USERPATH}$1" + fi } -unset PATH -if [ -d "$HOME/.local/bin/testing" ]; then - addtopath "$HOME/.local/bin/testing" -fi -if [ -d "$HOME/.local/bin/shortcmds" ]; then - addtopath "$HOME/.local/bin/shortcmds" -fi -if [ -d "$HOME/.local/bin/generics" ]; then - addtopath "$HOME/.local/bin/generics" -fi -if [ -d "$HOME/.local/bin/scripts" ]; then - addtopath "$HOME/.local/bin/scripts" -fi -if [ -d "$HOME/.local/bin/sp" ]; then - addtopath "$HOME/.local/bin/sp" -fi -if [ -d "$HOME/.local/bin/blocks" ]; then - addtopath "$HOME/.local/bin/blocks" -fi -if [ -d "$HOME/.local/bin/ignore" ]; then - addtopath "$HOME/.local/bin/ignore" -fi -if [ -d "$HOME/.local/bin/volsv" ]; then - PATH="$PATH:$HOME/.local/bin/volsv" -fi -if [ -d "$HOME/.local/bin" ]; then - addtopath "$HOME/.local/bin" -fi -if [ -d "$HOME/.local/bin/flatpak-sc" ]; then - addtopath "$HOME/.local/bin/flatpak-sc" -fi -if [ -d "$HOME/.local/bin/flatpak/exports/bin" ]; then - addtopath "$HOME/.local/share/flatpak/exports/bin/" -fi -if [ -d "$CARGO_HOME/bin" ]; then - addtopath "$CARGO_HOME/bin" -fi -if [ -d "$GOPATH/bin" ]; then - addtopath "$GOPATH/bin" -fi -if [ -d "/var/lib/flatpak/exports/bin" ]; then - addtopath "/var/lib/flatpak/exports/bin" -fi +addtopath "$HOME/.local/bin/testing" +addtopath "$HOME/.local/bin/shortcmds" +addtopath "$HOME/.local/bin/generics" +addtopath "$HOME/.local/bin/scripts" +addtopath "$HOME/.local/bin/sp" +addtopath "$HOME/.local/bin/blocks" +addtopath "$HOME/.local/bin/ignore" +addtopath "$HOME/.local/bin/volsv" +addtopath "$HOME/.local/bin" +addtopath "$HOME/.local/bin/flatpak-sc" +addtopath "$HOME/.local/share/flatpak/exports/bin/" +addtopath "$CARGO_HOME/bin" +addtopath "$GOPATH/bin" +addtopath "$ZVMPATH" +addtopath "$ZVM_INSTALL" +addtopath "/var/lib/flatpak/exports/bin" # MERGE PATHS -export PATH="$PATH:$SYSPATH" +[ -n "$USERPATH" ] && export PATH="$USERPATH:$PATH" -# CLEANUP -unset SYSPATH +unset -f addtopath +unset USERPATH +unset PATHS -- cgit v1.2.3 From c9b0cb7a7756da66b9a2693f7759376e777eba6e Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 4 Jun 2024 22:14:59 -0500 Subject: Change s systemctl alias to sudo systemctl There is `us' for `systemctl --user', this is for the system `systemctl'; so it should have sudo in it. --- sh/aliases | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sh/aliases b/sh/aliases index 7b3eba2..a930a47 100644 --- a/sh/aliases +++ b/sh/aliases @@ -73,7 +73,7 @@ esac ## Systemctl alias us='systemctl --user' -alias s='systemctl' +alias s='sudo systemctl' ## Runit #alias ursm='env SVDIR="$HOME/.local/sv/" rsm' -- cgit v1.2.3 From 13ec37a0bd8fdb4b80bfd84e100e3ee4458f2902 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 4 Jun 2024 22:18:50 -0500 Subject: Ignore more directories More stuff that shouldn't be backed up/doesn't need to be. --- .gitignore | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.gitignore b/.gitignore index 0197c0b..28b5af4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ abook/ +Applied Computer Music Technologies/ AHM 5050 v3/ AHM 5050 v3.settings aIR Impulse RackEX.settings @@ -6,6 +7,7 @@ Amp Locker/ Amp Locker.settings amsynth/ ardour*/ +Audio Assault/ autostart/ Binance/ Blacksun/ @@ -20,6 +22,7 @@ calcurse/* calibre/ calibre/conversion carla/ +cava/ cef_user_data .charles.config chromium/ @@ -88,6 +91,7 @@ joplin/ Joplin/ joplin-desktop/ kaidan/ +karboncalligraphyrc kdeconnect/ kdeglobals kdenlive.* @@ -144,6 +148,7 @@ newsboat/cache.db newsboat/urls nextcloud/ Nextcloud/ +Nickvision Cavalier/ nitrogen/bg-saved.cfg notmuch/ npm/ @@ -194,6 +199,7 @@ rclone/ ReAmp Studio R1/ ReAmp Studio R1.settings REAPER/ +remmina/ Resonant DSP/ retroarch/ rncbc.org/ @@ -214,6 +220,8 @@ straw-viewer/ SUPERHOT/ switcher/ syncthing/ +Synergy/ +synergy/ systemd/ systemsettingsrc The Crown EXEX.settings @@ -228,6 +236,7 @@ tremc/ Trolltech.conf .tsrc ubports-installer/ +ultravnc-viewer/ UNDERTALE*/ unity3d/ Valve Corporation/ @@ -250,6 +259,7 @@ yabridgectl/ ytfzf/subscriptions yuzu/ zec-qt-wallet-org/ +Zelda64Recompiled/ zirless/ zoomus.conf zsh/hist -- cgit v1.2.3 From d7fd8e01f3a49ae1600e601f39f37229f56aa4a8 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 4 Jun 2024 22:19:42 -0500 Subject: Add hypridle and hyprlock configs Adding in configs for these to replace swayidle and swaylock/waylock. --- hypr/hypridle.conf | 13 +++++++++++++ hypr/hyprlock.conf | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 hypr/hypridle.conf create mode 100644 hypr/hyprlock.conf diff --git a/hypr/hypridle.conf b/hypr/hypridle.conf new file mode 100644 index 0000000..9b6ea02 --- /dev/null +++ b/hypr/hypridle.conf @@ -0,0 +1,13 @@ +general { + lock_cmd = hyprlock # dbus/sysd lock command (loginctl lock-session) + unlock_cmd = # same as above, but unlock + before_sleep_cmd = swaylock # command ran before sleep + after_sleep_cmd = # command ran after sleep + ignore_dbus_inhibit = false # whether to ignore dbus-sent idle-inhibit requests (used by e.g. firefox or steam) +} + +listener { + timeout = 600 # in seconds + on-timeout = loginctl lock-session # command to run when timeout has passed + on-resume = # command to run when activity is detected after timeout has fired. +} diff --git a/hypr/hyprlock.conf b/hypr/hyprlock.conf new file mode 100644 index 0000000..84d08ae --- /dev/null +++ b/hypr/hyprlock.conf @@ -0,0 +1,55 @@ +general { + disable_loading_bar = false + hide_cursor = false + grace = 0 + no_fade_in = false + no_fade_out = false + ignore_empty_input = false +} + +background { + monitor = + path = + color = rgba(0, 0, 0, 1.0) + + # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations + #blur_passes = 0 # 0 disables blurring + #blur_size = 7 + #noise = 0.0117 + #contrast = 0.8916 + #brightness = 0.8172 + #vibrancy = 0.1696 + #vibrancy_darkness = 0.0 +} + +input-field { + monitor = + size = 200, 50 + outline_thickness = 3 + dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8 + dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0 + dots_center = false + dots_rounding = -1 # -1 default circle, -2 follow input-field rounding + outer_color = rgb(151515) + inner_color = rgb(200, 200, 200) + font_color = rgb(10, 10, 10) + fade_on_empty = true + fade_timeout = 1000 # Milliseconds before fade_on_empty is triggered. + placeholder_text = Input Password... # Text rendered in the input box when it's empty. + hide_input = false + rounding = -1 # -1 means complete rounding (circle/oval) + check_color = rgb(204, 136, 34) + fail_color = rgb(204, 34, 34) # if authentication failed, changes outer_color and fail message color + fail_text = $FAIL ($ATTEMPTS) # can be set to empty + fail_transition = 300 # transition time in ms between normal outer_color and fail_color + capslock_color = -1 + numlock_color = -1 + bothlock_color = -1 # when both locks are active. -1 means don't change outer color (same for above) + invert_numlock = false # change color if numlock is off + swap_font_color = false # see below + + position = 0, -20 + halign = center + valign = center +} + -- cgit v1.2.3 From 85874b8d21017f4d368f97f6abc5b946162713e6 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 4 Jun 2024 22:29:29 -0500 Subject: Make hyprland start hypridle not swayidle I added the hypridle and hyprlock config, but this actually makes the practical change. --- hypr/hyprland.conf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 36f697a..510deec 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -14,6 +14,9 @@ exec-once = ~/.config/autostart.sh exec-once = /usr/lib/polkit-kde-authentication-agent-1 exec-once = xdph exec-once = hyprpm reload -n +exec-once = hyprpaper +exec-once = hypridle +exec-once = waybar exec-once = pypr exec-once = import-gsettings gtk-theme 'Flat-Remix-GTK-Green-Darkest-Solid' exec-once = import-gsettings icon-theme 'Mint-X-Grey' -- cgit v1.2.3 From 8944376dd4d1bc63e3f6878b83ef3deb578d2539 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 4 Jun 2024 23:10:32 -0500 Subject: Update hyprland config Remove autostart.sh, update default windowrules, remove commented out lines. --- hypr/hyprland.conf | 60 +++++++++++------------------------------------------- 1 file changed, 12 insertions(+), 48 deletions(-) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 510deec..26d5441 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -10,14 +10,13 @@ monitor = DP-1, 1920x1080@60, 1920x0, 1 #{{{ Autostart # Execute your favorite apps at launch # exec-once = waybar & hyprpaper & firefox -exec-once = ~/.config/autostart.sh -exec-once = /usr/lib/polkit-kde-authentication-agent-1 exec-once = xdph exec-once = hyprpm reload -n exec-once = hyprpaper exec-once = hypridle exec-once = waybar exec-once = pypr +exec-once = lxqt-policykit-agent exec-once = import-gsettings gtk-theme 'Flat-Remix-GTK-Green-Darkest-Solid' exec-once = import-gsettings icon-theme 'Mint-X-Grey' exec-once = import-gsettings cursor-theme 'Breeze' @@ -169,32 +168,20 @@ plugin { # Example windowrule v2 # windowrulev2 = float, class:^(kitty)$, title:^(kitty)$ # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more -windowrule = windowdance, title:^(Rhythm Doctor)$ +windowrule = windowdance, ^(oneshot)$ +windowrule = windowdance, title:^(UNDERTALE)$ windowrule = fullscreen, ^(Xephyr)$ windowrule = float, title:^(LibreWolf - Choose User Profile)$ -windowrule = float, class:^(xdg-desktop-portal-gtk) -windowrule = float, class:^(Tk)$ -windowrule = workspace 2, title:^(REAPER .*initializing.*)$ -windowrulev2 = stayfocused, title:^()$,class:^(steam)$ -windowrulev2 = minsize 1 1, title:^()$,class:^(steam)$ -windowrulev2 = stayfocused, title:^(menu)$,class:^(yabridge-host.exe.so)$ -windowrulev2 = minsize 1 1, title:^(menu)$,class:^(yabridge-host.exe.so)$ +windowrule = float, ^(xdg-desktop-portal-gtk) +windowrule = float, title:^(UNDERTALE)$ +windowrule = float, ^(Tk)$ +windowrule = float, ^(lxqt-policykit-agent)$ +windowrulev2 = stayfocused, title:^()$, class:^(steam)$ +windowrulev2 = minsize 1 1, title:^()$, class:^(steam)$ windowrulev2 = tile, class:^(REAPER)$, title:^(.*REAPER v[0-9.]* - Licensed for personal/small business use)$ -windowrulev2 = move cursor -50% -50%, class:^(yabridge-host.exe.so)$, title:^(menu)$ -#windowrulev2 = nofocus, class:^(yabridge-host.exe.so)$, title:^(\s*)$ -#windowrulev2 = move cursor -50% -50%, class:^(REAPER)$, title:^(Snap/Grid Settings)$ -#windowrulev2 = move cursor -50% -50%, class:^(REAPER)$, title:^(Routing for track [0-9]*)$ -#windowrulev2 = move cursor -50% -50%, class:^(REAPER)$, title:^(Metronome and pre-roll settings)$ -windowrulev2 = tile, class:^(WebApp-Qobuz[0-9]*)$ -#windowrulev2 = move cursor -50% -50%, class:^(yabridge-host.exe.so)$, title:^(menu)$ -#windowrulev2 = nofocus, class:^(yabridge-host.exe.so)$, title:^(\s*)$ -#windowrulev2 = move cursor -50% -50%, class:^(yabridge-host.exe.so)$, title:^(\s*)$ -#windowrulev2 = move cursor -50% -50%, class:^(REAPER)$, title:^(Snap/Grid Settings)$ -#windowrulev2 = move cursor -50% -50%, class:^(REAPER)$, title:^(Routing for track [0-9]*)$ -#windowrulev2 = float,floating:0, title:^(menu)$ +windowrule = tile, ^(WebApp-Qobuz[0-9]*)$ +windowrulev2 = float, title:^(menu)$ #windowrulev2 = forceinput, title:^(menu)$ -#windowrulev2 = windowdance, title:^(menu)$ -#windowrulev2 = nofocus, title:^(menu)$, class:^(yabridge\-host\.exe\.so)$ #}}} #{{{ Mods @@ -223,27 +210,6 @@ bind = $mainMod+SHIFT, O, splitratio, exact 0.55 #MASTER bind = $mainMod, O, splitratio, exact 0.69 #MASTER #}}} -#{{{ Dwindle layout binds -# Dwindle layout binds -#bind = $mainMod, P, pseudo, #DWINDLE -#bind = $mainMod $secdMod, S, togglesplit, #DWINDLE -# Move focus with mainMod + HJKL -#bind = $mainMod, H, movefocus, l #DWINDLE -#bind = $mainMod, L, movefocus, r #DWINDLE -#bind = $mainMod, K, movefocus, u #DWINDLE -#bind = $mainMod, J, movefocus, d #DWINDLE -# Move window with mainMod + HJKL -#bind = $mainMod SHIFT, L, movewindow, r #DWINDLE -#bind = $mainMod SHIFT, H, movewindow, l #DWINDLE -#bind = $mainMod SHIFT, J, movewindow, d #DWINDLE -#bind = $mainMod SHIFT, K, movewindow, u #DWINDLE -# Resize clients with mainMod + secdMod + HJKL -#binde = $mainMod $secdMod, L, resizeactive, 10 0 #DWINDLE -#binde = $mainMod $secdMod, H, resizeactive, -10 0 #DWINDLE -#binde = $mainMod $secdMod, K, resizeactive, 0 -10 #DWINDLE -#binde = $mainMod $secdMod, J, resizeactive, 0 10 #DWINDLE -#}}} - #{{{ Group binds # Group binds #bind = $mainMod CONTROL, G, togglegroup, @@ -344,9 +310,7 @@ bind = $mainMod, W, exec, pkill -USR1 waybar bind = $mainMod, Q, exec, loginctl lock-session bind = $mainMod $secdMod CONTROL, Q, exec, systemctl suspend bind = $mainMod SHIFT, G, exec, get-app-id -#bindr = , XF86AudioMicMute, exec, volsv -m -bind = $mainMod CONTROL, M, exec, volsv -m -bindr = $mainMod CONTROL, M, exec, volsv -m +bind = $mainMod Control, M, exec, volsv -m #bind = $mainMod CONTROL, R, exec, startx -- /usr/bin/Xephyr -screen 1920x1080 :1 #}}} -- cgit v1.2.3 From 657dffb10297674cd6313ab8d26052e2e3fe3cf9 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 4 Jun 2024 23:11:47 -0500 Subject: Add hyprpaper wallpapers for all outputs This seems like basically all the outputs on my devices. --- hypr/hyprpaper.conf | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/hypr/hyprpaper.conf b/hypr/hyprpaper.conf index 69e5224..df92649 100644 --- a/hypr/hyprpaper.conf +++ b/hypr/hyprpaper.conf @@ -1,2 +1,16 @@ +preload = ~/background.jpg +#if more than one preload is desired then continue to preload other backgrounds +#preload = /path/to/next_image.png +# .. more preloads + +#set the default wallpaper(s) seen on inital workspace(s) --depending on the number of monitors used +wallpaper = eDP-1,~/background.jpg +wallpaper = HDMI-A-1,~/background.jpg +wallpaper = HDMI-A-2,~/background.jpg +wallpaper = DP-1,~/background.jpg +wallpaper = DP-2,~/background.jpg +#if more than one monitor in use, can load a 2nd image +#wallpaper = monitor2,~/background.jpg +# .. more monitors splash = false preload = ~/Pictures/background.png -- cgit v1.2.3 From ac384234fdb81c7d923ce341a0c24ccbe0583db9 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 4 Jun 2024 23:17:44 -0500 Subject: Change hyprpaper wallpaper target It will now load `~/Pictures/background.png', instead of ~/background.jpg. --- hypr/hyprpaper.conf | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/hypr/hyprpaper.conf b/hypr/hyprpaper.conf index df92649..19b84f2 100644 --- a/hypr/hyprpaper.conf +++ b/hypr/hyprpaper.conf @@ -1,16 +1,16 @@ -preload = ~/background.jpg +preload = ~/Pictures/background.png #if more than one preload is desired then continue to preload other backgrounds #preload = /path/to/next_image.png # .. more preloads #set the default wallpaper(s) seen on inital workspace(s) --depending on the number of monitors used -wallpaper = eDP-1,~/background.jpg -wallpaper = HDMI-A-1,~/background.jpg -wallpaper = HDMI-A-2,~/background.jpg -wallpaper = DP-1,~/background.jpg -wallpaper = DP-2,~/background.jpg +wallpaper = eDP-1,~/Pictures/background.png +wallpaper = HDMI-A-1,~/Pictures/background.png +wallpaper = HDMI-A-2,~/Pictures/background.png +wallpaper = DP-1,~/Pictures/background.png +wallpaper = DP-2,~/Pictures/background.png #if more than one monitor in use, can load a 2nd image -#wallpaper = monitor2,~/background.jpg +#wallpaper = monitor2,~/background.png # .. more monitors splash = false preload = ~/Pictures/background.png -- cgit v1.2.3 From fa42672400b9b668a77b649843456af310fc21d3 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 4 Jun 2024 23:21:10 -0500 Subject: Add nvim colo's and commented bg options Adding in tomasiser/vim-code-dark and flazz/vim-colorschemes to provide more color options. Also have options (commented out) to make the background transparent should that be desired later. --- nvim/init.vim | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/nvim/init.vim b/nvim/init.vim index 8c0d378..97b8a40 100644 --- a/nvim/init.vim +++ b/nvim/init.vim @@ -3,6 +3,8 @@ call plug#begin('~/.config/nvim/plugged') " colorschemes {{{ Plug 'tomasiser/vim-code-dark' " codedark color scheme Plug 'flazz/vim-colorschemes' " meta-color scheme package +Plug 'tomasiser/vim-code-dark' " codedark color scheme +Plug 'flazz/vim-colorschemes' " meta-color scheme package Plug 'ZachIndigo/vim-preglow' " my old color scheme " }}} " language support {{{ @@ -66,6 +68,10 @@ filetype plugin indent on "" GUI Config set guifont=mononoki\ Nerd\ Font\ Mono:h12 +"hi Normal guibg=NONE ctermbg=NONE +"hi NonText guibg=NONE ctermbg=NONE +"set background=dark + set foldmethod=marker set conceallevel=2 -- cgit v1.2.3 From 5578f1ca7eb8fcbe449c1fad1ea9a99a3a8c5938 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 4 Jun 2024 23:24:28 -0500 Subject: Use nvim smarttab and smartindent This gets all of the indenting and such sorted to be "smart". --- nvim/init.vim | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/nvim/init.vim b/nvim/init.vim index 97b8a40..3453b71 100644 --- a/nvim/init.vim +++ b/nvim/init.vim @@ -51,13 +51,11 @@ set hlsearch " Highlight all search results set smartcase " Enable smart-case search set incsearch " Searches for strings incrementally -set autoindent " Enable auto-indent -"set smartindent " Enable smart-indent -"set nosmarttab " Enable smart-tabs set expandtab " Use spaces instead of tabs -set tabstop=2 " Number of spaces per tab set shiftwidth=2 " Number of auto-indent spaces - +set smartindent " Enable smart-indent +set smarttab " Enable smart-tabs +set softtabstop=2 " Number of spaces per Tab "" Advanced set ruler " Show row and column ruler information -- cgit v1.2.3 From 4d89bb814c92989db464727934b8863bedd4b2c9 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 4 Jun 2024 23:25:44 -0500 Subject: Run :make when writing latex file My latex projects use Makefiles to compile them; this makes that process automatic. --- nvim/init.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvim/init.vim b/nvim/init.vim index 3453b71..42fe34d 100644 --- a/nvim/init.vim +++ b/nvim/init.vim @@ -200,7 +200,7 @@ augroup custom "au BufEnter *.cpp :colo DevC++ "au BufEnter *.hpp :colo DevC++ au BufWritePost init.vim :source % - " au BufWritePost *.tex :make + au BufWritePost *.tex :make au BufWritePost *sxhkdrc* :!pkill -USR1 -x sxhkd au BufWritePost .Xresources :!xrdb ~/.Xresources au BufWritePost .gitignore :!git add .gitignore -- cgit v1.2.3 From 2ee05bfac4735a99c29d67562b496232153d1f34 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 4 Jun 2024 23:27:28 -0500 Subject: Add # NEW PATH comment to sh profile The barest of documentation --- sh/profile | 1 + 1 file changed, 1 insertion(+) diff --git a/sh/profile b/sh/profile index 07f51f5..e5c38b2 100644 --- a/sh/profile +++ b/sh/profile @@ -96,6 +96,7 @@ addtopath () { fi } +# NEW PATH addtopath "$HOME/.local/bin/testing" addtopath "$HOME/.local/bin/shortcmds" addtopath "$HOME/.local/bin/generics" -- cgit v1.2.3 From 1bb066ec9b0e4d4bb6e698df67e866bfc8ddf62f Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 4 Jun 2024 23:28:15 -0500 Subject: Set tmux status bar This sets the tmux status bar with the date and time --- tmux/tmux.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tmux/tmux.conf b/tmux/tmux.conf index 5d3bd6c..8b23a90 100644 --- a/tmux/tmux.conf +++ b/tmux/tmux.conf @@ -6,8 +6,8 @@ set -g status-bg "#000000" set -g status-fg "#c5c6c4" # remove administrative debris (session-name, hostname, time) in status bar -set -g status-left '' -set -g status-right '#{battery_status_bg} Batt: #{battery_icon} #{battery_percentage} #{battery_remain}' +set -g status-left '%H:%M| ' +set -g status-right '%a %Y-%m-%d' # act live dvtm unbind C-b -- cgit v1.2.3 From 7df608c2fb5f37d8a7941b9237b1bd9a5652c955 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 4 Jun 2024 23:29:02 -0500 Subject: Update publicshare dir in user-dirs.dirs XDG_PUBLICSHARE_DIR is now set to ~/Shared, instead of ~/Public, because that's what I use that dir for. --- user-dirs.dirs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user-dirs.dirs b/user-dirs.dirs index 7f9a959..02d53bb 100644 --- a/user-dirs.dirs +++ b/user-dirs.dirs @@ -8,7 +8,7 @@ XDG_DESKTOP_DIR="$HOME/Desktop" XDG_DOWNLOAD_DIR="$HOME/Downloads" XDG_TEMPLATES_DIR="$HOME/Templates" -XDG_PUBLICSHARE_DIR="$HOME/Public" +XDG_PUBLICSHARE_DIR="$HOME/Shared" XDG_DOCUMENTS_DIR="$HOME/Documents" XDG_MUSIC_DIR="$HOME/Music" XDG_PICTURES_DIR="$HOME/Pictures" -- cgit v1.2.3 From 5c08cffb9924377b063220adc5ba0712f19e2505 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 4 Jun 2024 23:31:17 -0500 Subject: Remove unnecessary zsh command It doesn't need to set the terminal title to "terminal"? --- zsh/.zshrc | 1 - 1 file changed, 1 deletion(-) diff --git a/zsh/.zshrc b/zsh/.zshrc index 3314bb3..00be912 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -97,4 +97,3 @@ bindkey -- '^[[B' down-line-or-beg [[ -n "${key[Shift-Tab]}" ]] && bindkey -- "${key[Shift-Tab]}" reverse-menu-complete [[ -n "${key[Delete]}" ]] && bindkey -- "${key[Delete]}" delete-char -precmd () {print -Pn "\e]0;terminal\a"} -- cgit v1.2.3 From 278b47875e94898699194365f0a9ddf9daa6add5 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 4 Jun 2024 23:33:54 -0500 Subject: Add more dirs to .gitignore --- .gitignore | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.gitignore b/.gitignore index 28b5af4..76e77d4 100644 --- a/.gitignore +++ b/.gitignore @@ -27,6 +27,7 @@ cef_user_data .charles.config chromium/ clangd/ +cmus/ cni/ coc/extensions/db.json companion*/ @@ -169,12 +170,16 @@ PCSX2/ pipewire/ pipewire/media-session.d/ pipewire/pipewire.conf.d/ +plasmarc +pluginregistry.cfg +pluginsettings.cfg pmbootstrap.cfg poezio/ polychromatic/ pop-shell/ pop-system-updater/ Portmaster/ +PreSonus/ print-manager/ profanity/profrc Proton AG/ @@ -224,6 +229,7 @@ Synergy/ synergy/ systemd/ systemsettingsrc +tenacity.cfg The Crown EXEX.settings themes/ tmux/plugins -- cgit v1.2.3 From c792a807dde9bd592cfd2dca6504c0893966de60 Mon Sep 17 00:00:00 2001 From: zachir Date: Wed, 5 Jun 2024 07:53:54 -0500 Subject: Change kitty font to FiraCode And also resize it to size 11.0 --- kitty/kitty.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kitty/kitty.conf b/kitty/kitty.conf index 6207c2f..ceeaf72 100644 --- a/kitty/kitty.conf +++ b/kitty/kitty.conf @@ -6,7 +6,7 @@ #: individual font faces and even specify special fonts for particular #: characters. -font_family mononoki Nerd Font +font_family FiraCode Nerd Font Mono bold_font auto italic_font auto bold_italic_font auto @@ -24,7 +24,7 @@ bold_italic_font auto #: italic_font Operator Mono Book Italic #: bold_italic_font Operator Mono Medium Italic -font_size 10.0 +font_size 11.0 #: Font size (in pts) -- cgit v1.2.3 From f7175b21a3a6cc6965b0ea77e7c47535ce83beec Mon Sep 17 00:00:00 2001 From: zachir Date: Wed, 5 Jun 2024 09:09:47 -0500 Subject: Add better/more XDG support Implements XDG support for more programs that support it, in various levels of hackiness. --- .gitignore | 4 + X11/Xresources | 495 ----------------------------------------------------- X11/xresources | 495 +++++++++++++++++++++++++++++++++++++++++++++++++++++ autostart.sh | 2 +- hypr/hyprland.conf | 2 +- sh/aliases | 3 + sh/profile | 7 + zsh/.zshenv | 4 +- 8 files changed, 513 insertions(+), 499 deletions(-) delete mode 100644 X11/Xresources create mode 100644 X11/xresources diff --git a/.gitignore b/.gitignore index 76e77d4..522e3d0 100644 --- a/.gitignore +++ b/.gitignore @@ -61,6 +61,7 @@ galculator/ gamescope/ ghb/ GIMP/ +git/ glib-2.0/ gnome-control-center/ gnome-initial-setup-done @@ -222,6 +223,7 @@ solaar/ spotifyd/ spotify-tui/ straw-viewer/ +subversion/ SUPERHOT/ switcher/ syncthing/ @@ -248,6 +250,8 @@ unity3d/ Valve Corporation/ vdirsyncer/ VeraCrypt/ +vim/ +!vim/vimrc VirtualBox/ vlc/vlc-qt-interface.conf waybar/config-dwl-* diff --git a/X11/Xresources b/X11/Xresources deleted file mode 100644 index d5c4550..0000000 --- a/X11/Xresources +++ /dev/null @@ -1,495 +0,0 @@ -!! dmenu - -dmenu.font: mononoki Nerd Font Mono:size=24 - -!! dwm - -dwm.normbgcolor: #000000 -dwm.normbordercolor: #1b1d1c -dwm.normfgcolor: #ffffff -dwm.selbgcolor: #198844 -dwm.selbordercolor: #198844 -dwm.selfgcolor: #ffffff -dwm.urgfgcolor: #ffffff -dwm.urgbordercolor: #198844 -dwm.urgbgcolor: #cc342b -dwm.borderpx: 3 -dwm.gappx: 6 -dwm.snap: 32 -dwm.showbar: 1 -dwm.topbar: 1 -dwm.nmaster: 1 -dwm.resizehints: 1 -dwm.mfact: 0.50 - -!! st - -! These options only take effect on startup. -st.termname: st-256color -! if you do not set shell, precedence is: -e arg, utmp option, SHELL env var, /etc/passwd shell -st.shell: /usr/bin/tmux - -! The following options options can be reloaded via USR1 signal. -!st.font: mononoki Nerd Font Mono:pixelsize=12:antialias=true:autohint=true; -!st.font2: Symbola:pixelsize=12:antialias=true:autohint=true; -st.borderpx: 3 -! st alpha -st.alpha: 0.8 -st.alphaUnfocused: 0.8 -! Available cursor values: 2 4 6 7 = █ _ | ☃ ( 1 3 5 are blinking versions) -st.cursorshape: 6 -! thickness of underline and bar cursors -st.cursorthickness: 2 -! 0: normal blinking, 1: leave cursor border and blink with cursor''s background -st.cursorblinkstyle: 0 -! 0: cursor blinks with a constant interval; 1: blinking cycle resets on key input -st.cursorblinkontype: 1 -! st.bold_font: 0 -st.xfps: 120 -st.actionfps: 60 -! Amount of lines scrolled -st.mouseScrollLines: 1 -! Kerning / character bounding-box height multiplier -st.chscale: 1.0 -! Kerning / character bounding-box width multiplier -st.cwscale: 1.0 -! blinking timeout for terminal and cursor blinking (0 disables) -st.blinktimeout: 800 -! bell volume. Value between -100 and 100. (0 disables) -st.bellvolume: 0 -! this is a char that is exposed like so: `printf '\033[z'` -st.prompt_char: $ -! This option is can be preedit style. Available values: `root` `overthespot` (Default taken `root`) -st.imstyle: root -! This option sets the number of spaces for a tab -st.tabspaces: 2 - -!! RXVT-Unicode (urxvt) config -! do not scroll with output -URxvt.scrollTtyOutput: false -! scroll in relation to buffer (with mouse scroll or Shift+Page Up) -URxvt.scrollWithBuffer: true -! scroll back to the bottom on keypress -URxvt.scrollTtyKeypress: true -! disable scrollback buffer for secondary screen -URxvt.secondaryScreen: 1 -URxvt.secondaryScroll: 0 -URxvt.secondaryWheel: 1 -! URxvt font -URxvt.font: xft:Fira Code:regular:size=8,xft:symbola:regular:size=9 -! fix font spacing -URxvt.letterSpace: -1 -! Disable printing -URxvt.print-pipe: "cat > /dev/null" -! disable iso14755 -URxvt.iso14755: false -URxvt.iso14755_52: false -! enable transparency -URxvt.depth: 32 -URxvt.background: rgba:0000/0000/0200/c800 -! disable scrollbar -URxvt.scrollBar: false - -!! perls -! perls -URxvt.perl-ext: default,url-select,tabbed,resize-font,clipboard -! clipboard -URxvt.clipboard.autocopy: true -URxvt.keysym.Shift-Control-C: perl:clipboard:copy -URxvt.keysym.Shift-Control-V: perl:clipboard:paste -! url-select -URxvt.keysum.M-u: perl:url-select:select-next -URxvt.url-select.launcher: /usr/bin/xdg-open -URxvt.url-select.underline: true -! tabbed -URxvt.tabbed.tabbar-fg: 2 -URxvt.tabbed.tabbar-bg: 0 -URxvt.tabbed.tab-fg: 3 -URxvt.tabbed.tab-bg: 0 -! resize-font -URxvt.keysym.C-Minus: resize-font:smaller -URxvt.keysym.C-Plus: resize-font:bigger - -! "Enabled modi" Set from: Default -rofi.modi: window,run,ssh,drun.5 -! "Window width" Set from: Default -rofi.width: 1366 -! "Number of lines" Set from: Default -! rofi.lines: 15 -! "Number of columns" Set from: Default -! rofi.columns: 1 -! "Font to use" Set from: Default -rofi.font: mononoki 9 -! "Border width" Set from: Default -! rofi.bw: 1 -! "Location on screen" Set from: Default -rofi.location: 2 -! "Padding" Set from: Default -! rofi.padding: 5 -! "Y-offset relative to location" Set from: Default -! rofi.yoffset: 0 -! "X-offset relative to location" Set from: Default -! rofi.xoffset: 0 -! "Always show number of lines" Set from: Default -! rofi.fixed-num-lines: true -! "Whether to load and show icons" Set from: Default -! rofi.show-icons: false -! "Terminal to use" Set from: Default -! rofi.terminal: rofi-sensible-terminal -! "Ssh client to use" Set from: Default -! rofi.ssh-client: ssh -! "Ssh command to execute" Set from: Default -! rofi.ssh-command: {terminal} -e {ssh-client} {host} [-p {port}] -! "Run command to execute" Set from: Default -! rofi.run-command: {cmd} -! "Command to get extra run targets" Set from: Default -! rofi.run-list-command: -! "Run command to execute that runs in shell" Set from: Default -! rofi.run-shell-command: {terminal} -e {cmd} -! "Command to executed when -kb-accept-alt binding is hit on selected window " Set from: Default -! rofi.window-command: wmctrl -i -R {window} -! "Window fields to match in window mode" Set from: Default -! rofi.window-match-fields: all -! "Theme to use to look for icons" Set from: Default -! rofi.icon-theme: -! "Desktop entry fields to match in drun" Set from: Default -! rofi.drun-match-fields: name,generic,exec,categories,keywords -! "Only show Desktop entry from these categories" Set from: Default -! rofi.drun-categories: -! "Desktop entry show actions." Set from: Default -! rofi.drun-show-actions: false -! "DRUN format string. (Supports: generic,name,comment,exec,categories)" Set from: Default -! rofi.drun-display-format: {name} [({generic})] -! "Command to open an Desktop Entry that is a Link." Set from: Default -! rofi.drun-url-launcher: xdg-open -! "Disable history in run/ssh" Set from: Default -! rofi.disable-history: false -! "Programs ignored for history" Set from: Default -! rofi.ignored-prefixes: -! "Use sorting" Set from: Default -! rofi.sort: false -! "Choose the strategy used for sorting: normal (levenshtein) or fzf." Set from: Default -! rofi.sorting-method: normal -! "Set case-sensitivity" Set from: Default -! rofi.case-sensitive: false -! "Cycle through the results list" Set from: Default -! rofi.cycle: true -! "Enable sidebar-mode" Set from: Default -! rofi.sidebar-mode: false -! "Row height (in chars)" Set from: Default -! rofi.eh: 1 -! "Enable auto select mode" Set from: Default -! rofi.auto-select: false -! "Parse hosts file for ssh mode" Set from: Default -! rofi.parse-hosts: false -! "Parse known_hosts file for ssh mode" Set from: Default -! rofi.parse-known-hosts: true -! "Set the modi to combine in combi mode" Set from: Default -! rofi.combi-modi: window,run -! "Set the matching algorithm. (normal, regex, glob, fuzzy)" Set from: Default -! rofi.matching: normal -! "Tokenize input string" Set from: Default -! rofi.tokenize: true -! "Monitor id to show on" Set from: Default -! rofi.m: -5 -! "Margin between rows *DEPRECATED*" Set from: Default -! rofi.line-margin: 2 -! "Padding within rows *DEPRECATED*" Set from: Default -! rofi.line-padding: 1 -! "Pre-set filter" Set from: Default -! rofi.filter: -! "Separator style (none, dash, solid) *DEPRECATED*" Set from: Default -! rofi.separator-style: dash -! "Hide scroll-bar *DEPRECATED*" Set from: Default -! rofi.hide-scrollbar: false -! "Fullscreen" Set from: Default -! rofi.fullscreen: false -! "Fake transparency *DEPRECATED*" Set from: Default -! rofi.fake-transparency: false -! "DPI" Set from: Default -! rofi.dpi: -1 -! "Threads to use for string matching" Set from: Default -! rofi.threads: 0 -! "Scrollbar width *DEPRECATED*" Set from: Default -! rofi.scrollbar-width: 8 -! "Scrolling method. (0: Page, 1: Centered)" Set from: Default -! rofi.scroll-method: 0 -! "Background to use for fake transparency. (background or screenshot) *DEPRECATED*" Set from: Default -! rofi.fake-background: screenshot -! "Window Format. w (desktop name), t (title), n (name), r (role), c (class)" Set from: Default -! rofi.window-format: {w} {c} {t} -! "Click outside the window to exit" Set from: Default -! rofi.click-to-exit: true -! "Indicate how it match by underlining it." Set from: Default -! rofi.show-match: true -! "New style theme file" Set from: Default -! rofi.theme: -! "Color scheme for normal row" Set from: Default -! 'bg' 'fg' 'bgalt' 'hlbg' 'hlfg' -rofi.color-normal: #000000, #b4b7b5, #89231d, #cc342b, #000000 -! "Color scheme for urgent row" Set from: Default -! rofi.color-urgent: -! "Color scheme for active row" Set from: Default -! rofi.color-active: -! "Color scheme window" Set from: Default -! 'background' 'border' 'separator' -rofi.color-window: #1d1f21, #101010, #000000 -! "Max history size (WARNING: can cause slowdowns when set to high)." Set from: Default -! rofi.max-history-size: 25 -! "Hide the prefix mode prefix on the combi view." Set from: Default -! rofi.combi-hide-mode-prefix: false -! "Set the character used to negate the matching. ('\0' to disable)" Set from: Default -! rofi.matching-negate-char: - -! "Directory where history and temporary files are stored." Set from: Default -! rofi.cache-dir: -! "Show window thumbnail (if available) as icon in window switcher." Set from: Default -! rofi.window-thumbnail: false -! "DRUN: build and use a cache with desktop file content." Set from: Default -! rofi.drun-use-desktop-cache: false -! "DRUN: If enabled, reload the cache with desktop file content." Set from: Default -! rofi.drun-reload-desktop-cache: false -! "Normalize string when matching (implies -no-show-match)." Set from: Default -! rofi.normalize-match: false -! "Pidfile location" Set from: Default -! rofi.pid: /run/user/1000/rofi.pid -! "The display name of this browser" Set from: Default -! rofi.display-window: -! "The display name of this browser" Set from: Default -! rofi.display-windowcd: -! "The display name of this browser" Set from: Default -! rofi.display-run: -! "The display name of this browser" Set from: Default -! rofi.display-ssh: -! "The display name of this browser" Set from: Default -! rofi.display-drun: -! "The display name of this browser" Set from: Default -! rofi.display-combi: -! "The display name of this browser" Set from: Default -! rofi.display-keys: -! "The display name of this browser" Set from: Default -! rofi.display-file-browser: -! "Paste primary selection" Set from: Default -! rofi.kb-primary-paste: Control+V,Shift+Insert -! "Paste clipboard" Set from: Default -! rofi.kb-secondary-paste: Control+v,Insert -! "Clear input line" Set from: Default -! rofi.kb-clear-line: Control+w -! "Beginning of line" Set from: Default -! rofi.kb-move-front: Control+a -! "End of line" Set from: Default -! rofi.kb-move-end: Control+e -! "Move back one word" Set from: Default -! rofi.kb-move-word-back: Alt+b,Control+Left -! "Move forward one word" Set from: Default -! rofi.kb-move-word-forward: Alt+f,Control+Right -! "Move back one char" Set from: Default -! rofi.kb-move-char-back: Left,Control+b -! "Move forward one char" Set from: Default -! rofi.kb-move-char-forward: Right,Control+f -! "Delete previous word" Set from: Default -! rofi.kb-remove-word-back: Control+Alt+h,Control+BackSpace -! "Delete next word" Set from: Default -! rofi.kb-remove-word-forward: Control+Alt+d -! "Delete next char" Set from: Default -! rofi.kb-remove-char-forward: Delete,Control+d -! "Delete previous char" Set from: Default -! rofi.kb-remove-char-back: BackSpace,Shift+BackSpace,Control+h -! "Delete till the end of line" Set from: Default -! rofi.kb-remove-to-eol: Control+k -! "Delete till the start of line" Set from: Default -! rofi.kb-remove-to-sol: Control+u -! "Accept entry" Set from: Default -! rofi.kb-accept-entry: Control+j,Control+m,Return,KP_Enter -! "Use entered text as command (in ssh/run modi)" Set from: Default -! rofi.kb-accept-custom: Control+Return -! "Use alternate accept command." Set from: Default -! rofi.kb-accept-alt: Shift+Return -! "Delete entry from history" Set from: Default -! rofi.kb-delete-entry: Shift+Delete -! "Switch to the next mode." Set from: Default -! rofi.kb-mode-next: Shift+Right,Control+Tab -! "Switch to the previous mode." Set from: Default -! rofi.kb-mode-previous: Shift+Left,Control+ISO_Left_Tab -! "Go to the previous column" Set from: Default -! rofi.kb-row-left: Control+Page_Up -! "Go to the next column" Set from: Default -! rofi.kb-row-right: Control+Page_Down -! "Select previous entry" Set from: Default -! rofi.kb-row-up: Up,Control+p,ISO_Left_Tab -! "Select next entry" Set from: Default -! rofi.kb-row-down: Down,Control+n -! "Go to next row, if one left, accept it, if no left next mode." Set from: Default -! rofi.kb-row-tab: Tab -! "Go to the previous page" Set from: Default -! rofi.kb-page-prev: Page_Up -! "Go to the next page" Set from: Default -! rofi.kb-page-next: Page_Down -! "Go to the first entry" Set from: Default -! rofi.kb-row-first: Home,KP_Home -! "Go to the last entry" Set from: Default -! rofi.kb-row-last: End,KP_End -! "Set selected item as input text" Set from: Default -! rofi.kb-row-select: Control+space -! "Take a screenshot of the rofi window" Set from: Default -! rofi.kb-screenshot: Alt+S -! "Toggle between ellipsize modes for displayed data" Set from: Default -! rofi.kb-ellipsize: Alt+period -! "Toggle case sensitivity" Set from: Default -! rofi.kb-toggle-case-sensitivity: grave,dead_grave -! "Toggle sort" Set from: Default -! rofi.kb-toggle-sort: Alt+grave -! "Quit rofi" Set from: Default -! rofi.kb-cancel: Escape,Control+g,Control+bracketleft -! "Custom keybinding 1" Set from: Default -! rofi.kb-custom-1: Alt+1 -! "Custom keybinding 2" Set from: Default -! rofi.kb-custom-2: Alt+2 -! "Custom keybinding 3" Set from: Default -! rofi.kb-custom-3: Alt+3 -! "Custom keybinding 4" Set from: Default -! rofi.kb-custom-4: Alt+4 -! "Custom Keybinding 5" Set from: Default -! rofi.kb-custom-5: Alt+5 -! "Custom keybinding 6" Set from: Default -! rofi.kb-custom-6: Alt+6 -! "Custom Keybinding 7" Set from: Default -! rofi.kb-custom-7: Alt+7 -! "Custom keybinding 8" Set from: Default -! rofi.kb-custom-8: Alt+8 -! "Custom keybinding 9" Set from: Default -! rofi.kb-custom-9: Alt+9 -! "Custom keybinding 10" Set from: Default -! rofi.kb-custom-10: Alt+0 -! "Custom keybinding 11" Set from: Default -! rofi.kb-custom-11: Alt+exclam -! "Custom keybinding 12" Set from: Default -! rofi.kb-custom-12: Alt+at -! "Custom keybinding 13" Set from: Default -! rofi.kb-custom-13: Alt+numbersign -! "Custom keybinding 14" Set from: Default -! rofi.kb-custom-14: Alt+dollar -! "Custom keybinding 15" Set from: Default -! rofi.kb-custom-15: Alt+percent -! "Custom keybinding 16" Set from: Default -! rofi.kb-custom-16: Alt+dead_circumflex -! "Custom keybinding 17" Set from: Default -! rofi.kb-custom-17: Alt+ampersand -! "Custom keybinding 18" Set from: Default -! rofi.kb-custom-18: Alt+asterisk -! "Custom Keybinding 19" Set from: Default -! rofi.kb-custom-19: Alt+parenleft -! "Select row 1" Set from: Default -! rofi.kb-select-1: Super+1 -! "Select row 2" Set from: Default -! rofi.kb-select-2: Super+2 -! "Select row 3" Set from: Default -! rofi.kb-select-3: Super+3 -! "Select row 4" Set from: Default -! rofi.kb-select-4: Super+4 -! "Select row 5" Set from: Default -! rofi.kb-select-5: Super+5 -! "Select row 6" Set from: Default -! rofi.kb-select-6: Super+6 -! "Select row 7" Set from: Default -! rofi.kb-select-7: Super+7 -! "Select row 8" Set from: Default -! rofi.kb-select-8: Super+8 -! "Select row 9" Set from: Default -! rofi.kb-select-9: Super+9 -! "Select row 10" Set from: Default -! rofi.kb-select-10: Super+0 -! "Go to the previous column" Set from: Default -! rofi.ml-row-left: ScrollLeft -! "Go to the next column" Set from: Default -! rofi.ml-row-right: ScrollRight -! "Select previous entry" Set from: Default -! rofi.ml-row-up: ScrollUp -! "Select next entry" Set from: Default -! rofi.ml-row-down: ScrollDown -! "Select hovered row" Set from: Default -! rofi.me-select-entry: MousePrimary -! "Accept hovered row" Set from: Default -! rofi.me-accept-entry: MouseDPrimary -! "Accept hovered row with custom action" Set from: Default -! rofi.me-accept-custom: Control+MouseDPrimary - -!! special -!*.foreground: #c5c8c6 -!*.background: #1d1f21 -!*.cursorColor: #c5c8c6 -! -!! black -!*.color0: #282a2e -!*.color8: #373b41 -! -!! red -!*.color1: #a54242 -!*.color9: #cc6666 -! -!! green -!*.color2: #8c9440 -!*.color10: #b5bd68 -! -!! yellow -!*.color3: #de935f -!*.color11: #f0c674 -! -!! blue -!*.color4: #5f819d -!*.color12: #81a2be -! -!! magenta -!*.color5: #85678f -!*.color13: #b294bb -! -!! cyan -!*.color6: #5e8d87 -!*.color14: #8abeb7 -! -!! white -!*.color7: #707880 -!*.color15: #c5c8c6 -! -!! special -*.foreground: #c5c8c6 -*.background: #000000 -*.cursorColor: #c5c8c6 -*.reverseCursor: #333536 -dmenu.selbackground: #39c1ed -dmenu.selforeground: #000000 -dmenu.hibackground: #000000 -dmenu.hiforeground: #198844 -dmenu.selhibackground: #39c1ed -dmenu.selhiforeground: #198844 - -! black -*.color0: #1b1d1c -*.color8: #969896 - -! red -*.color1: #89231d -*.color9: #cc342b - -! green -*.color2: #198844 -*.color10: #4eec4e - -! yellow -*.color3: #ae7518 -*.color11: #fba922 - -! blue -*.color4: #2b55b2 -*.color12: #3971ed - -! magenta -*.color5: #784e93 -*.color13: #a36ac7 - -! cyan -*.color6: #2783a1 -*.color14: #39c1ed - -! white -*.color7: #b4b7b5 -*.color15: #ffffff diff --git a/X11/xresources b/X11/xresources new file mode 100644 index 0000000..d5c4550 --- /dev/null +++ b/X11/xresources @@ -0,0 +1,495 @@ +!! dmenu + +dmenu.font: mononoki Nerd Font Mono:size=24 + +!! dwm + +dwm.normbgcolor: #000000 +dwm.normbordercolor: #1b1d1c +dwm.normfgcolor: #ffffff +dwm.selbgcolor: #198844 +dwm.selbordercolor: #198844 +dwm.selfgcolor: #ffffff +dwm.urgfgcolor: #ffffff +dwm.urgbordercolor: #198844 +dwm.urgbgcolor: #cc342b +dwm.borderpx: 3 +dwm.gappx: 6 +dwm.snap: 32 +dwm.showbar: 1 +dwm.topbar: 1 +dwm.nmaster: 1 +dwm.resizehints: 1 +dwm.mfact: 0.50 + +!! st + +! These options only take effect on startup. +st.termname: st-256color +! if you do not set shell, precedence is: -e arg, utmp option, SHELL env var, /etc/passwd shell +st.shell: /usr/bin/tmux + +! The following options options can be reloaded via USR1 signal. +!st.font: mononoki Nerd Font Mono:pixelsize=12:antialias=true:autohint=true; +!st.font2: Symbola:pixelsize=12:antialias=true:autohint=true; +st.borderpx: 3 +! st alpha +st.alpha: 0.8 +st.alphaUnfocused: 0.8 +! Available cursor values: 2 4 6 7 = █ _ | ☃ ( 1 3 5 are blinking versions) +st.cursorshape: 6 +! thickness of underline and bar cursors +st.cursorthickness: 2 +! 0: normal blinking, 1: leave cursor border and blink with cursor''s background +st.cursorblinkstyle: 0 +! 0: cursor blinks with a constant interval; 1: blinking cycle resets on key input +st.cursorblinkontype: 1 +! st.bold_font: 0 +st.xfps: 120 +st.actionfps: 60 +! Amount of lines scrolled +st.mouseScrollLines: 1 +! Kerning / character bounding-box height multiplier +st.chscale: 1.0 +! Kerning / character bounding-box width multiplier +st.cwscale: 1.0 +! blinking timeout for terminal and cursor blinking (0 disables) +st.blinktimeout: 800 +! bell volume. Value between -100 and 100. (0 disables) +st.bellvolume: 0 +! this is a char that is exposed like so: `printf '\033[z'` +st.prompt_char: $ +! This option is can be preedit style. Available values: `root` `overthespot` (Default taken `root`) +st.imstyle: root +! This option sets the number of spaces for a tab +st.tabspaces: 2 + +!! RXVT-Unicode (urxvt) config +! do not scroll with output +URxvt.scrollTtyOutput: false +! scroll in relation to buffer (with mouse scroll or Shift+Page Up) +URxvt.scrollWithBuffer: true +! scroll back to the bottom on keypress +URxvt.scrollTtyKeypress: true +! disable scrollback buffer for secondary screen +URxvt.secondaryScreen: 1 +URxvt.secondaryScroll: 0 +URxvt.secondaryWheel: 1 +! URxvt font +URxvt.font: xft:Fira Code:regular:size=8,xft:symbola:regular:size=9 +! fix font spacing +URxvt.letterSpace: -1 +! Disable printing +URxvt.print-pipe: "cat > /dev/null" +! disable iso14755 +URxvt.iso14755: false +URxvt.iso14755_52: false +! enable transparency +URxvt.depth: 32 +URxvt.background: rgba:0000/0000/0200/c800 +! disable scrollbar +URxvt.scrollBar: false + +!! perls +! perls +URxvt.perl-ext: default,url-select,tabbed,resize-font,clipboard +! clipboard +URxvt.clipboard.autocopy: true +URxvt.keysym.Shift-Control-C: perl:clipboard:copy +URxvt.keysym.Shift-Control-V: perl:clipboard:paste +! url-select +URxvt.keysum.M-u: perl:url-select:select-next +URxvt.url-select.launcher: /usr/bin/xdg-open +URxvt.url-select.underline: true +! tabbed +URxvt.tabbed.tabbar-fg: 2 +URxvt.tabbed.tabbar-bg: 0 +URxvt.tabbed.tab-fg: 3 +URxvt.tabbed.tab-bg: 0 +! resize-font +URxvt.keysym.C-Minus: resize-font:smaller +URxvt.keysym.C-Plus: resize-font:bigger + +! "Enabled modi" Set from: Default +rofi.modi: window,run,ssh,drun.5 +! "Window width" Set from: Default +rofi.width: 1366 +! "Number of lines" Set from: Default +! rofi.lines: 15 +! "Number of columns" Set from: Default +! rofi.columns: 1 +! "Font to use" Set from: Default +rofi.font: mononoki 9 +! "Border width" Set from: Default +! rofi.bw: 1 +! "Location on screen" Set from: Default +rofi.location: 2 +! "Padding" Set from: Default +! rofi.padding: 5 +! "Y-offset relative to location" Set from: Default +! rofi.yoffset: 0 +! "X-offset relative to location" Set from: Default +! rofi.xoffset: 0 +! "Always show number of lines" Set from: Default +! rofi.fixed-num-lines: true +! "Whether to load and show icons" Set from: Default +! rofi.show-icons: false +! "Terminal to use" Set from: Default +! rofi.terminal: rofi-sensible-terminal +! "Ssh client to use" Set from: Default +! rofi.ssh-client: ssh +! "Ssh command to execute" Set from: Default +! rofi.ssh-command: {terminal} -e {ssh-client} {host} [-p {port}] +! "Run command to execute" Set from: Default +! rofi.run-command: {cmd} +! "Command to get extra run targets" Set from: Default +! rofi.run-list-command: +! "Run command to execute that runs in shell" Set from: Default +! rofi.run-shell-command: {terminal} -e {cmd} +! "Command to executed when -kb-accept-alt binding is hit on selected window " Set from: Default +! rofi.window-command: wmctrl -i -R {window} +! "Window fields to match in window mode" Set from: Default +! rofi.window-match-fields: all +! "Theme to use to look for icons" Set from: Default +! rofi.icon-theme: +! "Desktop entry fields to match in drun" Set from: Default +! rofi.drun-match-fields: name,generic,exec,categories,keywords +! "Only show Desktop entry from these categories" Set from: Default +! rofi.drun-categories: +! "Desktop entry show actions." Set from: Default +! rofi.drun-show-actions: false +! "DRUN format string. (Supports: generic,name,comment,exec,categories)" Set from: Default +! rofi.drun-display-format: {name} [({generic})] +! "Command to open an Desktop Entry that is a Link." Set from: Default +! rofi.drun-url-launcher: xdg-open +! "Disable history in run/ssh" Set from: Default +! rofi.disable-history: false +! "Programs ignored for history" Set from: Default +! rofi.ignored-prefixes: +! "Use sorting" Set from: Default +! rofi.sort: false +! "Choose the strategy used for sorting: normal (levenshtein) or fzf." Set from: Default +! rofi.sorting-method: normal +! "Set case-sensitivity" Set from: Default +! rofi.case-sensitive: false +! "Cycle through the results list" Set from: Default +! rofi.cycle: true +! "Enable sidebar-mode" Set from: Default +! rofi.sidebar-mode: false +! "Row height (in chars)" Set from: Default +! rofi.eh: 1 +! "Enable auto select mode" Set from: Default +! rofi.auto-select: false +! "Parse hosts file for ssh mode" Set from: Default +! rofi.parse-hosts: false +! "Parse known_hosts file for ssh mode" Set from: Default +! rofi.parse-known-hosts: true +! "Set the modi to combine in combi mode" Set from: Default +! rofi.combi-modi: window,run +! "Set the matching algorithm. (normal, regex, glob, fuzzy)" Set from: Default +! rofi.matching: normal +! "Tokenize input string" Set from: Default +! rofi.tokenize: true +! "Monitor id to show on" Set from: Default +! rofi.m: -5 +! "Margin between rows *DEPRECATED*" Set from: Default +! rofi.line-margin: 2 +! "Padding within rows *DEPRECATED*" Set from: Default +! rofi.line-padding: 1 +! "Pre-set filter" Set from: Default +! rofi.filter: +! "Separator style (none, dash, solid) *DEPRECATED*" Set from: Default +! rofi.separator-style: dash +! "Hide scroll-bar *DEPRECATED*" Set from: Default +! rofi.hide-scrollbar: false +! "Fullscreen" Set from: Default +! rofi.fullscreen: false +! "Fake transparency *DEPRECATED*" Set from: Default +! rofi.fake-transparency: false +! "DPI" Set from: Default +! rofi.dpi: -1 +! "Threads to use for string matching" Set from: Default +! rofi.threads: 0 +! "Scrollbar width *DEPRECATED*" Set from: Default +! rofi.scrollbar-width: 8 +! "Scrolling method. (0: Page, 1: Centered)" Set from: Default +! rofi.scroll-method: 0 +! "Background to use for fake transparency. (background or screenshot) *DEPRECATED*" Set from: Default +! rofi.fake-background: screenshot +! "Window Format. w (desktop name), t (title), n (name), r (role), c (class)" Set from: Default +! rofi.window-format: {w} {c} {t} +! "Click outside the window to exit" Set from: Default +! rofi.click-to-exit: true +! "Indicate how it match by underlining it." Set from: Default +! rofi.show-match: true +! "New style theme file" Set from: Default +! rofi.theme: +! "Color scheme for normal row" Set from: Default +! 'bg' 'fg' 'bgalt' 'hlbg' 'hlfg' +rofi.color-normal: #000000, #b4b7b5, #89231d, #cc342b, #000000 +! "Color scheme for urgent row" Set from: Default +! rofi.color-urgent: +! "Color scheme for active row" Set from: Default +! rofi.color-active: +! "Color scheme window" Set from: Default +! 'background' 'border' 'separator' +rofi.color-window: #1d1f21, #101010, #000000 +! "Max history size (WARNING: can cause slowdowns when set to high)." Set from: Default +! rofi.max-history-size: 25 +! "Hide the prefix mode prefix on the combi view." Set from: Default +! rofi.combi-hide-mode-prefix: false +! "Set the character used to negate the matching. ('\0' to disable)" Set from: Default +! rofi.matching-negate-char: - +! "Directory where history and temporary files are stored." Set from: Default +! rofi.cache-dir: +! "Show window thumbnail (if available) as icon in window switcher." Set from: Default +! rofi.window-thumbnail: false +! "DRUN: build and use a cache with desktop file content." Set from: Default +! rofi.drun-use-desktop-cache: false +! "DRUN: If enabled, reload the cache with desktop file content." Set from: Default +! rofi.drun-reload-desktop-cache: false +! "Normalize string when matching (implies -no-show-match)." Set from: Default +! rofi.normalize-match: false +! "Pidfile location" Set from: Default +! rofi.pid: /run/user/1000/rofi.pid +! "The display name of this browser" Set from: Default +! rofi.display-window: +! "The display name of this browser" Set from: Default +! rofi.display-windowcd: +! "The display name of this browser" Set from: Default +! rofi.display-run: +! "The display name of this browser" Set from: Default +! rofi.display-ssh: +! "The display name of this browser" Set from: Default +! rofi.display-drun: +! "The display name of this browser" Set from: Default +! rofi.display-combi: +! "The display name of this browser" Set from: Default +! rofi.display-keys: +! "The display name of this browser" Set from: Default +! rofi.display-file-browser: +! "Paste primary selection" Set from: Default +! rofi.kb-primary-paste: Control+V,Shift+Insert +! "Paste clipboard" Set from: Default +! rofi.kb-secondary-paste: Control+v,Insert +! "Clear input line" Set from: Default +! rofi.kb-clear-line: Control+w +! "Beginning of line" Set from: Default +! rofi.kb-move-front: Control+a +! "End of line" Set from: Default +! rofi.kb-move-end: Control+e +! "Move back one word" Set from: Default +! rofi.kb-move-word-back: Alt+b,Control+Left +! "Move forward one word" Set from: Default +! rofi.kb-move-word-forward: Alt+f,Control+Right +! "Move back one char" Set from: Default +! rofi.kb-move-char-back: Left,Control+b +! "Move forward one char" Set from: Default +! rofi.kb-move-char-forward: Right,Control+f +! "Delete previous word" Set from: Default +! rofi.kb-remove-word-back: Control+Alt+h,Control+BackSpace +! "Delete next word" Set from: Default +! rofi.kb-remove-word-forward: Control+Alt+d +! "Delete next char" Set from: Default +! rofi.kb-remove-char-forward: Delete,Control+d +! "Delete previous char" Set from: Default +! rofi.kb-remove-char-back: BackSpace,Shift+BackSpace,Control+h +! "Delete till the end of line" Set from: Default +! rofi.kb-remove-to-eol: Control+k +! "Delete till the start of line" Set from: Default +! rofi.kb-remove-to-sol: Control+u +! "Accept entry" Set from: Default +! rofi.kb-accept-entry: Control+j,Control+m,Return,KP_Enter +! "Use entered text as command (in ssh/run modi)" Set from: Default +! rofi.kb-accept-custom: Control+Return +! "Use alternate accept command." Set from: Default +! rofi.kb-accept-alt: Shift+Return +! "Delete entry from history" Set from: Default +! rofi.kb-delete-entry: Shift+Delete +! "Switch to the next mode." Set from: Default +! rofi.kb-mode-next: Shift+Right,Control+Tab +! "Switch to the previous mode." Set from: Default +! rofi.kb-mode-previous: Shift+Left,Control+ISO_Left_Tab +! "Go to the previous column" Set from: Default +! rofi.kb-row-left: Control+Page_Up +! "Go to the next column" Set from: Default +! rofi.kb-row-right: Control+Page_Down +! "Select previous entry" Set from: Default +! rofi.kb-row-up: Up,Control+p,ISO_Left_Tab +! "Select next entry" Set from: Default +! rofi.kb-row-down: Down,Control+n +! "Go to next row, if one left, accept it, if no left next mode." Set from: Default +! rofi.kb-row-tab: Tab +! "Go to the previous page" Set from: Default +! rofi.kb-page-prev: Page_Up +! "Go to the next page" Set from: Default +! rofi.kb-page-next: Page_Down +! "Go to the first entry" Set from: Default +! rofi.kb-row-first: Home,KP_Home +! "Go to the last entry" Set from: Default +! rofi.kb-row-last: End,KP_End +! "Set selected item as input text" Set from: Default +! rofi.kb-row-select: Control+space +! "Take a screenshot of the rofi window" Set from: Default +! rofi.kb-screenshot: Alt+S +! "Toggle between ellipsize modes for displayed data" Set from: Default +! rofi.kb-ellipsize: Alt+period +! "Toggle case sensitivity" Set from: Default +! rofi.kb-toggle-case-sensitivity: grave,dead_grave +! "Toggle sort" Set from: Default +! rofi.kb-toggle-sort: Alt+grave +! "Quit rofi" Set from: Default +! rofi.kb-cancel: Escape,Control+g,Control+bracketleft +! "Custom keybinding 1" Set from: Default +! rofi.kb-custom-1: Alt+1 +! "Custom keybinding 2" Set from: Default +! rofi.kb-custom-2: Alt+2 +! "Custom keybinding 3" Set from: Default +! rofi.kb-custom-3: Alt+3 +! "Custom keybinding 4" Set from: Default +! rofi.kb-custom-4: Alt+4 +! "Custom Keybinding 5" Set from: Default +! rofi.kb-custom-5: Alt+5 +! "Custom keybinding 6" Set from: Default +! rofi.kb-custom-6: Alt+6 +! "Custom Keybinding 7" Set from: Default +! rofi.kb-custom-7: Alt+7 +! "Custom keybinding 8" Set from: Default +! rofi.kb-custom-8: Alt+8 +! "Custom keybinding 9" Set from: Default +! rofi.kb-custom-9: Alt+9 +! "Custom keybinding 10" Set from: Default +! rofi.kb-custom-10: Alt+0 +! "Custom keybinding 11" Set from: Default +! rofi.kb-custom-11: Alt+exclam +! "Custom keybinding 12" Set from: Default +! rofi.kb-custom-12: Alt+at +! "Custom keybinding 13" Set from: Default +! rofi.kb-custom-13: Alt+numbersign +! "Custom keybinding 14" Set from: Default +! rofi.kb-custom-14: Alt+dollar +! "Custom keybinding 15" Set from: Default +! rofi.kb-custom-15: Alt+percent +! "Custom keybinding 16" Set from: Default +! rofi.kb-custom-16: Alt+dead_circumflex +! "Custom keybinding 17" Set from: Default +! rofi.kb-custom-17: Alt+ampersand +! "Custom keybinding 18" Set from: Default +! rofi.kb-custom-18: Alt+asterisk +! "Custom Keybinding 19" Set from: Default +! rofi.kb-custom-19: Alt+parenleft +! "Select row 1" Set from: Default +! rofi.kb-select-1: Super+1 +! "Select row 2" Set from: Default +! rofi.kb-select-2: Super+2 +! "Select row 3" Set from: Default +! rofi.kb-select-3: Super+3 +! "Select row 4" Set from: Default +! rofi.kb-select-4: Super+4 +! "Select row 5" Set from: Default +! rofi.kb-select-5: Super+5 +! "Select row 6" Set from: Default +! rofi.kb-select-6: Super+6 +! "Select row 7" Set from: Default +! rofi.kb-select-7: Super+7 +! "Select row 8" Set from: Default +! rofi.kb-select-8: Super+8 +! "Select row 9" Set from: Default +! rofi.kb-select-9: Super+9 +! "Select row 10" Set from: Default +! rofi.kb-select-10: Super+0 +! "Go to the previous column" Set from: Default +! rofi.ml-row-left: ScrollLeft +! "Go to the next column" Set from: Default +! rofi.ml-row-right: ScrollRight +! "Select previous entry" Set from: Default +! rofi.ml-row-up: ScrollUp +! "Select next entry" Set from: Default +! rofi.ml-row-down: ScrollDown +! "Select hovered row" Set from: Default +! rofi.me-select-entry: MousePrimary +! "Accept hovered row" Set from: Default +! rofi.me-accept-entry: MouseDPrimary +! "Accept hovered row with custom action" Set from: Default +! rofi.me-accept-custom: Control+MouseDPrimary + +!! special +!*.foreground: #c5c8c6 +!*.background: #1d1f21 +!*.cursorColor: #c5c8c6 +! +!! black +!*.color0: #282a2e +!*.color8: #373b41 +! +!! red +!*.color1: #a54242 +!*.color9: #cc6666 +! +!! green +!*.color2: #8c9440 +!*.color10: #b5bd68 +! +!! yellow +!*.color3: #de935f +!*.color11: #f0c674 +! +!! blue +!*.color4: #5f819d +!*.color12: #81a2be +! +!! magenta +!*.color5: #85678f +!*.color13: #b294bb +! +!! cyan +!*.color6: #5e8d87 +!*.color14: #8abeb7 +! +!! white +!*.color7: #707880 +!*.color15: #c5c8c6 +! +!! special +*.foreground: #c5c8c6 +*.background: #000000 +*.cursorColor: #c5c8c6 +*.reverseCursor: #333536 +dmenu.selbackground: #39c1ed +dmenu.selforeground: #000000 +dmenu.hibackground: #000000 +dmenu.hiforeground: #198844 +dmenu.selhibackground: #39c1ed +dmenu.selhiforeground: #198844 + +! black +*.color0: #1b1d1c +*.color8: #969896 + +! red +*.color1: #89231d +*.color9: #cc342b + +! green +*.color2: #198844 +*.color10: #4eec4e + +! yellow +*.color3: #ae7518 +*.color11: #fba922 + +! blue +*.color4: #2b55b2 +*.color12: #3971ed + +! magenta +*.color5: #784e93 +*.color13: #a36ac7 + +! cyan +*.color6: #2783a1 +*.color14: #39c1ed + +! white +*.color7: #b4b7b5 +*.color15: #ffffff diff --git a/autostart.sh b/autostart.sh index 311953f..3616220 100755 --- a/autostart.sh +++ b/autostart.sh @@ -25,7 +25,7 @@ if [ -n "${WAYLAND_DISPLAY}${DISPLAY}" ]; then import-gsettings gtk-theme 'Flat-Remix-GTK-Green-Darkest-Solid' import-gsettings icon-theme 'Mint-X-Grey' import-gsettings cursor-theme 'Adwaita' - xrdb ~/.Xresources + xrdb "$XDG_CONFIG_HOME/X11/xresources" fi [ -x "$XDG_CONFIG_HOME/computerrc.sh" ] && "$XDG_CONFIG_HOME/computerrc.sh" diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 26d5441..633c832 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -20,7 +20,7 @@ exec-once = lxqt-policykit-agent exec-once = import-gsettings gtk-theme 'Flat-Remix-GTK-Green-Darkest-Solid' exec-once = import-gsettings icon-theme 'Mint-X-Grey' exec-once = import-gsettings cursor-theme 'Breeze' -exec-once = xrdb ~/.Xresources +exec-once = xrdb -load "$XDG_CONFIG_HOME"/X11/xresources exec-once = com.github.wwmm.easyeffects exec-once = mpd #}}} diff --git a/sh/aliases b/sh/aliases index a930a47..1537161 100644 --- a/sh/aliases +++ b/sh/aliases @@ -77,3 +77,6 @@ alias s='sudo systemctl' ## Runit #alias ursm='env SVDIR="$HOME/.local/sv/" rsm' + +# XDG dirs fix +alias svn="svn --config-dir \"$XDG_CONFIG_HOME\"/subversion" diff --git a/sh/profile b/sh/profile index e5c38b2..b18500d 100644 --- a/sh/profile +++ b/sh/profile @@ -7,6 +7,7 @@ export XDG_CURRENT_DESKTOP="i3" export XDG_DOCUMENTS_DIR=${HOME}/Documents export XDG_DOWNLOAD_DIR=${HOME}/Downloads export XDG_DESKTOP_DIR=${HOME}/Desktop +export XDG_STATE_HOME="${HOME}/.local/state" export XDG_VIDEOS_DIR=${HOME}/Videos export XDG_DATA_DIRS="${XDG_DATA_DIRS}:$HOME/.nix-profile/share" @@ -37,6 +38,7 @@ export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc export ZDOTDIR=$HOME/.config/zsh export CARGO_HOME="$XDG_DATA_HOME"/cargo +export RUSTUP_HOME="$XDG_DATA_HOME"/rustup export WEECHAT_HOME="$XDG_CONFIG_HOME"/weechat export PASSWORD_STORE_DIR="$XDG_DATA_HOME"/pass export NOTMUCH_CONFIG="$XDG_CONFIG_HOME"/notmuch/notmuchrc @@ -44,6 +46,11 @@ export NMBGIT="$XDG_DATA_HOME"/notmuch/nmbug export WINEROOT="$XDG_DATA_HOME"/wineprefixes export WINEPREFIX="$WINEROOT"/default export MPD_HOST="$XDG_CONFIG_HOME/mpd/socket" +export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc +export RENPY_PATH_TO_SAVES="$XDG_DATA_HOME" +export XINITRC="$XDG_CONFIG_HOME"/X11/xinitrc +export XAUTHORITY="$XDG_RUNTIME_DIR"/X11/Xauthority +export VIMINIT="set nocp | source ${XDG_CONFIG_HOME:-$HOME.config}/vim/vimrc" # Scaling export QT_AUTO_SCREEN_SCALE_FACTOR=0 diff --git a/zsh/.zshenv b/zsh/.zshenv index 1740c82..b8c9d48 100644 --- a/zsh/.zshenv +++ b/zsh/.zshenv @@ -1,4 +1,4 @@ # ZSH SPECIFIC CONFIGS unset HISTFILE -[ -f "$HOME/.profile" ] && . "$HOME/.profile" -export ZDOTDIR=$HOME/.config/zsh +export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" +[ -f "$XDG_CONFIG_HOME/sh/profile" ] && . "$XDG_CONFIG_HOME/sh/profile" -- cgit v1.2.3 From f5b4c3138b0bf7db458f4979b958640b1f19d777 Mon Sep 17 00:00:00 2001 From: zachir Date: Wed, 5 Jun 2024 09:10:50 -0500 Subject: Fix cursor support Hyprcursor and Xcursor were rendering differently; this should be fixed now that they use the same size (32px) and theme. --- hypr/hyprland.conf | 4 ++-- xsettingsd/xsettingsd.conf | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 633c832..657a731 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -28,9 +28,9 @@ exec-once = mpd #{{{ env # Environment variables set at launch env = HYPRCURSOR_THEME,BreezeHypr -env = HYPRCURSOR_SIZE,36 +env = HYPRCURSOR_SIZE,32 env = XCURSOR_THEME,BreezeX-Black -env = XCURSOR_SIZE,36 +env = XCURSOR_SIZE,32 #}}} # Source a file (multi-file configs) diff --git a/xsettingsd/xsettingsd.conf b/xsettingsd/xsettingsd.conf index 8fa8d9b..27d09c3 100644 --- a/xsettingsd/xsettingsd.conf +++ b/xsettingsd/xsettingsd.conf @@ -1,6 +1,6 @@ Net/ThemeName "Flat-Remix-GTK-Green-Darkest-Solid" Net/IconThemeName "Mint-X" -Gtk/CursorThemeName "Adwaita" +Gtk/CursorThemeName "BreezeX-Black" Net/EnableEventSounds 1 EnableInputFeedbackSounds 0 Xft/Antialias 1 -- cgit v1.2.3 From 264887ed84beef92f70ff4c05d5079eed03d19c4 Mon Sep 17 00:00:00 2001 From: zachir Date: Wed, 5 Jun 2024 09:12:01 -0500 Subject: Set qt to use xdgdesktopportal dialogs --- qt5ct/qt5ct.conf | 2 +- qt6ct/qt6ct.conf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/qt5ct/qt5ct.conf b/qt5ct/qt5ct.conf index bf4c0e0..516eaab 100644 --- a/qt5ct/qt5ct.conf +++ b/qt5ct/qt5ct.conf @@ -2,7 +2,7 @@ color_scheme_path=/usr/share/qt5ct/colors/darker.conf custom_palette=false icon_theme=Mint-X-Grey -standard_dialogs=gtk2 +standard_dialogs=xdgdesktopportal style=gtk2 [Fonts] diff --git a/qt6ct/qt6ct.conf b/qt6ct/qt6ct.conf index 29cd0a9..810fb94 100644 --- a/qt6ct/qt6ct.conf +++ b/qt6ct/qt6ct.conf @@ -2,7 +2,7 @@ color_scheme_path=/usr/share/qt6ct/colors/airy.conf custom_palette=false icon_theme=Mint-X -standard_dialogs=default +standard_dialogs=xdgdesktopportal style=qt6gtk2 [Fonts] -- cgit v1.2.3 From 673c2ead0db6e3b9c1be0b196a1e6b8ca7fdfeb3 Mon Sep 17 00:00:00 2001 From: zachir Date: Wed, 5 Jun 2024 13:27:25 -0500 Subject: Add more ignore dirs --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 522e3d0..3961168 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ ardour*/ Audio Assault/ autostart/ Binance/ +Blackmagic Design/ Blacksun/ Blacksun.settings blender/ @@ -225,6 +226,7 @@ spotify-tui/ straw-viewer/ subversion/ SUPERHOT/ +suyu/ switcher/ syncthing/ Synergy/ @@ -272,6 +274,7 @@ zec-qt-wallet-org/ Zelda64Recompiled/ zirless/ zoomus.conf +zoom.conf zsh/hist zsh/.zcompdump zsh/zcompdump -- cgit v1.2.3 From 7571d38dd8945d09f5202f9f7f97215c6841f8aa Mon Sep 17 00:00:00 2001 From: zachir Date: Wed, 5 Jun 2024 13:28:09 -0500 Subject: Don't set cursor theme in autostart.sh It isn't run anymore, but still shouldn't set the cursor theme, especially to the wrong thing. --- autostart.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/autostart.sh b/autostart.sh index 3616220..42eb092 100755 --- a/autostart.sh +++ b/autostart.sh @@ -24,7 +24,6 @@ if [ -n "${WAYLAND_DISPLAY}${DISPLAY}" ]; then runifnot waybar import-gsettings gtk-theme 'Flat-Remix-GTK-Green-Darkest-Solid' import-gsettings icon-theme 'Mint-X-Grey' - import-gsettings cursor-theme 'Adwaita' xrdb "$XDG_CONFIG_HOME/X11/xresources" fi -- cgit v1.2.3 From 1d85bc68d5ecc197e7619de9cbe5beb0ea8e309e Mon Sep 17 00:00:00 2001 From: zachir Date: Wed, 5 Jun 2024 13:35:34 -0500 Subject: Add hypr eDP output, rules, and tp toggle Adds eDP-1 as an output, adds some window rules for REAPER, and various other windows, and adds a bind to toggle the touchpad (script in .local/bin). --- hypr/hyprland.conf | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 657a731..7f33a01 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -1,5 +1,6 @@ # See https://wiki.hyprland.org/Configuring/Monitors/ #{{{ Monitor config +monitor = eDP-1, 1920x1080@60, 0x0, 1 monitor = , preferred, auto, 1 monitor = HDMI-A-1, 1920x1080@60, 0x0, 1 monitor = DP-1, 1920x1080@60, 1920x0, 1 @@ -43,6 +44,13 @@ debug { } # }}} +$LAPTOP_TP_ENABLED = true +device { + name = synps/2-synaptics-touchpad + enabled = $LAPTOP_TP_ENABLED +} +# }}} + #{{{ Input options # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ input { @@ -170,6 +178,7 @@ plugin { # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more windowrule = windowdance, ^(oneshot)$ windowrule = windowdance, title:^(UNDERTALE)$ +windowrule = windowdance, title:^(Rhythm Doctor)$ windowrule = fullscreen, ^(Xephyr)$ windowrule = float, title:^(LibreWolf - Choose User Profile)$ windowrule = float, ^(xdg-desktop-portal-gtk) @@ -178,9 +187,27 @@ windowrule = float, ^(Tk)$ windowrule = float, ^(lxqt-policykit-agent)$ windowrulev2 = stayfocused, title:^()$, class:^(steam)$ windowrulev2 = minsize 1 1, title:^()$, class:^(steam)$ +windowrulev2 = stayfocused, title:^(menu)$,class:^(yabridge-host.exe.so)$ +windowrulev2 = minsize 1 1, title:^(menu)$,class:^(yabridge-host.exe.so)$ +windowrulev2 = float, class:^(yabridge-host.exe.so)$, title:^(menu)$ +windowrulev2 = float, floating:0, title:^(menu*) +windowrulev2 = forceinput, title:^(menu*) +windowrulev2 = windowdance, title:^(menu*) +windowrule = workspace 2, title:^(REAPER .*initializing.*)$ windowrulev2 = tile, class:^(REAPER)$, title:^(.*REAPER v[0-9.]* - Licensed for personal/small business use)$ windowrule = tile, ^(WebApp-Qobuz[0-9]*)$ windowrulev2 = float, title:^(menu)$ +windowrulev2 = move cursor -50% -50%, class:^(yabridge-host.exe.so)$, title:^(menu)$ +#windowrulev2 = nofocus, class:^(yabridge-host.exe.so)$, title:^(\s*)$ +#windowrulev2 = move cursor -50% -50%, class:^(REAPER)$, title:^(Snap/Grid Settings)$ +#windowrulev2 = move cursor -50% -50%, class:^(REAPER)$, title:^(Routing for track [0-9]*)$ +#windowrulev2 = move cursor -50% -50%, class:^(REAPER)$, title:^(Metronome and pre-roll settings)$ +#windowrulev2 = move cursor -50% -50%, class:^(yabridge-host.exe.so)$, title:^(menu)$ +#windowrulev2 = nofocus, class:^(yabridge-host.exe.so)$, title:^(\s*)$ +#windowrulev2 = move cursor -50% -50%, class:^(yabridge-host.exe.so)$, title:^(\s*)$ +#windowrulev2 = move cursor -50% -50%, class:^(REAPER)$, title:^(Snap/Grid Settings)$ +#windowrulev2 = move cursor -50% -50%, class:^(REAPER)$, title:^(Routing for track [0-9]*)$ +#windowrulev2 = float, floating:0, title:^(menu)$ #windowrulev2 = forceinput, title:^(menu)$ #}}} @@ -221,6 +248,10 @@ bind = $mainMod, O, splitratio, exact 0.69 #MASTER #bind = $mainMod CONTROL, K, moveintogroup, u #}}} +#{{{ Device binds +bind = $mainMod, Backspace, exec, touchpad.sh +#}}} + #{{{ WC binds bind = $mainMod SHIFT, Q, killactive, bind = $mainMod SHIFT, E, exit, -- cgit v1.2.3 From 741ff2ccbdacf6b2cfd8db7601af69be1a5b40c7 Mon Sep 17 00:00:00 2001 From: zachir Date: Wed, 5 Jun 2024 19:17:50 -0500 Subject: Use magick to convert wallpaper from nsxiv Imagemagick would prefer me to use the magick binary, as apparently the convert binary is deprecated. --- nsxiv/exec/key-handler | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nsxiv/exec/key-handler b/nsxiv/exec/key-handler index 9e78004..53099e4 100755 --- a/nsxiv/exec/key-handler +++ b/nsxiv/exec/key-handler @@ -7,7 +7,7 @@ while read file; do cp "$file" ~/Pictures/background.png ;; *) - convert "$file" ~/Pictures/background.png + magick "$file" ~/Pictures/background.png ;; esac t -r hyprpaper -- cgit v1.2.3 From 9e9e304d75a35f982874d1be0fa1a1c23523f4d4 Mon Sep 17 00:00:00 2001 From: zachir Date: Wed, 5 Jun 2024 20:01:53 -0500 Subject: Add in vimrc to fix xdg and nvim This adds the vimrc, both for its own sake, but also to fix nvim (which gets enjankified by the xdg fix for vim proper). --- .gitignore | 2 +- vim/vimrc | 306 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 307 insertions(+), 1 deletion(-) create mode 100644 vim/vimrc diff --git a/.gitignore b/.gitignore index 3961168..aa9c29a 100644 --- a/.gitignore +++ b/.gitignore @@ -252,7 +252,7 @@ unity3d/ Valve Corporation/ vdirsyncer/ VeraCrypt/ -vim/ +vim/* !vim/vimrc VirtualBox/ vlc/vlc-qt-interface.conf diff --git a/vim/vimrc b/vim/vimrc new file mode 100644 index 0000000..6b64279 --- /dev/null +++ b/vim/vimrc @@ -0,0 +1,306 @@ +set runtimepath^=$XDG_CONFIG_HOME/vim +set runtimepath+=$XDG_DATA_HOME/vim +set runtimepath+=$XDG_CONFIG_HOME/vim/after + +set packpath^=$XDG_DATA_HOME/vim,$XDG_CONFIG_HOME/vim +set packpath+=$XDG_CONFIG_HOME/vim/after,$XDG_DATA_HOME/vim/after + +let g:netrw_home = $XDG_DATA_HOME."/vim" +call mkdir($XDG_DATA_HOME."/vim/spell", 'p') + +set backupdir=$XDG_STATE_HOME/vim/backup | call mkdir(&backupdir, 'p') +set directory=$XDG_STATE_HOME/vim/swap | call mkdir(&directory, 'p') +set undodir=$XDG_STATE_HOME/vim/undo | call mkdir(&undodir, 'p') +set viewdir=$XDG_STATE_HOME/vim/view | call mkdir(&viewdir, 'p') + +if !has('nvim') | set viminfofile=$XDG_STATE_HOME/vim/viminfo | endif + +" vimplugs {{{ +call plug#begin('~/.config/nvim/plugged') +" colorschemes {{{ +Plug 'tomasiser/vim-code-dark' " codedark color scheme +Plug 'flazz/vim-colorschemes' " meta-color scheme package +Plug 'tomasiser/vim-code-dark' " codedark color scheme +Plug 'flazz/vim-colorschemes' " meta-color scheme package +Plug 'ZachIndigo/vim-preglow' " my old color scheme +" }}} +" language support {{{ +Plug 'axvr/org.vim' " basic org markup language implementation +Plug 'ziglang/zig.vim' " zig programming language +Plug 'jdonaldson/vaxe' " haxe programming language +Plug 'xuhdev/vim-latex-live-preview', { 'for': 'tex' } " latex live preview support +Plug 'waycrate/swhkd-vim' " swhkd syntax highlighting +Plug 'HiPhish/guile.vim' " guile syntax highlighting +" }}} +" utility {{{ +Plug 'preservim/nerdtree' " directory tree interface +Plug 'Xuyuanp/nerdtree-git-plugin' " git status indicator for nerdtree +Plug 'PhilRunninger/nerdtree-visual-selection' " allows visual selection mode in nerdtree +Plug 'tpope/vim-fugitive' " git command interface +Plug 'junegunn/goyo.vim' " simplify the user interface (distraction-free) [BROKEN] +Plug 'junegunn/limelight.vim' " focus on single paragraph of text at a time +Plug 'vim-airline/vim-airline' " powerline the vim bottom bar +Plug 'nathanaelkane/vim-indent-guides' " indent guides for vim +Plug 'mhinz/vim-signify' " use signs to show diffs +Plug 'tpope/vim-endwise' " auto end functions/if statements +Plug 'tpope/vim-surround' " auto close stuff +Plug 'mattn/emmet-vim' " html css easy formating +Plug 'godlygeek/tabular' " Needed for vim-markdown +Plug 'plasticboy/vim-markdown' " Better markdown support +Plug 'ryanoasis/vim-devicons' " dev icons for nerdtree +" }}} +call plug#end() + +" }}} +" nvim options {{{ + +"" nvimrc: +"" General + +set showmatch " Highlight matching brace + +set number +set relativenumber + +colorscheme 256-grayvim + +set hlsearch " Highlight all search results +set smartcase " Enable smart-case search +set incsearch " Searches for strings incrementally + +set expandtab " Use spaces instead of tabs +set shiftwidth=2 " Number of auto-indent spaces +set smartindent " Enable smart-indent +set smarttab " Enable smart-tabs +set softtabstop=2 " Number of spaces per Tab + +"" Advanced +set ruler " Show row and column ruler information +set undolevels=1000 " Number of undo levels +set backspace=indent,eol,start " Backspace behaviour +filetype plugin indent on + +"" GUI Config +set guifont=mononoki\ Nerd\ Font\ Mono:h12 + +"hi Normal guibg=NONE ctermbg=NONE +"hi NonText guibg=NONE ctermbg=NONE +"set background=dark + +set foldmethod=marker + +set conceallevel=2 + +" set leader key + +let mapleader="'" + +" emmet {{{ +let g:user_emmet_leader_key='' +" }}} + +" zig config {{{ +let g:zig_fmt_autosave = 1 +" }}} + +" latex live preview {{{ +let g:livepreview_previewer = 'zathura' +let g:livepreview_use_biber = 1 +let g:livepreview_cursorhold_recompile = 0 +" }}} + +" vim-markdown {{{ +let g:vim_markdown_folding_disabled = 1 +let g:vim_markdown_folding_level = 3 +let g:vim_markdown_toc_autofit = 1 +let g:vim_markdown_emphasis_multiline = 0 +let g:tex_conceal = "" +let g:vim_markdown_math = 1 +let g:vim_markdown_conceal_code_blocks = 1 +let g:vim_markdown_fenced_languages = ['c++=cpp', 'viml=vim', 'bash=sh', 'ini=dosini'] +let g:vim_markdown_follow_anchor = 1 +let g:vim_markdown_math = 1 +let g:vim_markdown_frontmatter = 1 +let g:vim_markdown_toml_frontmatter = 1 +let g:vim_markdown_strikethrough = 1 +let g:vim_markdown_no_extensions_in_markdown = 1 +let g:vim_markdown_autowrite = 1 +let g:vim_markdown_auto_insert_bullets = 0 +let g:vim_markdown_new_list_item_indent = 0 +let g:vim_markdown_edit_url_in = 'tab' +" }}} + +" NERDTree config {{{ +let g:NERDTreeGitStatusUseNerdFonts = 1 " use nerd fonts +let g:NERDTreeGitStatusShowClean = 1 " default: 0 +let g:NERDTreeDirArrowExpandable = '>' +let g:NERDTreeDirArrowCollapsible = '<' +let g:NERDTreeMapToggleHidden = 'z' +" }}} + +" Goyo config {{{ +let g:goyo_width = '90%' +let g:goyo_height = '100%' +" }}} + +" limelight config {{{ +let g:limelight_conceal_ctermfg = 'gray' +let g:limelight_conceal_guifg = 'gray' +" }}} + +" devicon config {{{ +let g:airline_powerline_fonts = 1 +let g:webdevicons_enable_nerdtree = 1 +" }}} + +" vim-indent-guides config {{{ +let g:indent_guides_enable_on_vim_startup = 0 +" }}} + +" vim-signify config {{{ +set updatetime=100 +" }}} + +" }}} +" Functions {{{ +" Goyo functions {{{ +function! s:goyo_enter() + if executable('tmux') && strlen($TMUX) + silent !tmux set status off + silent !tmux list-panes -F '\#F' | grep -q Z || tmux resize-pane -Z + endif + set noshowmode + set noshowcmd + set scrolloff=999 + Limelight + NERDTreeClose +endfunction +function! s:goyo_leave() + if executable('tmux') && strlen('$TMUX') + silent !tmux set status on + silent !tmux list-panes -F '\#F' | grep -q Z && tmux resize-pane -Z + endif + set showmode + set showcmd + set scrolloff=5 + Limelight! + NERDTree +endfunction +" }}} +" }}} +" Autocommands {{{ +" Goyo autocommands {{{ +autocmd! User GoyoEnter nested call goyo_enter() +autocmd! User GoyoLeave nested call goyo_leave() +" }}} +" NERDTree autocmds {{{ +autocmd StdinReadPre * let s:std_in=1 +autocmd VimEnter * if argc() == 0 && !exists('s:std_in') | NERDTree | wincmd p | endif +autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists('s:std_in') | + \ execute 'NERDTree' argv()[0] | wincmd p | enew | execute 'cd '.argv()[0] | endif +autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | quit | endif +autocmd BufEnter * if winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | quit | endif +"autocmd BufEnter * if bufname('#') =~ 'NERD_tree_\d\+' && bufname('%') !~ 'NERD_tree_\d\+' && winnr('$') > 1 | + "\ let buf=bufnr() | buffer# | execute "normal! \w" | execute 'buffer;.buf | endif +autocmd BufWinEnter * if getcmdwintype() == '' | silent NERDTreeMirror | endif +" }}} +" custom augroup {{{ +augroup custom + autocmd! + au BufEnter *.tex :LLPStartPreview + au BufEnter *.md :set textwidth=80 + au BufEnter *.ms :set textwidth=80 + "au BufEnter *.c :colo DevC++ + "au BufEnter *.h :colo DevC++ + "au BufEnter *.cc :colo DevC++ + "au BufEnter *.hh :colo DevC++ + "au BufEnter *.cpp :colo DevC++ + "au BufEnter *.hpp :colo DevC++ + au BufWritePost init.vim :source % + au BufWritePost *.tex :make + au BufWritePost *sxhkdrc* :!pkill -USR1 -x sxhkd + au BufWritePost .Xresources :!xrdb ~/.Xresources + au BufWritePost .gitignore :!git add .gitignore +augroup end +" }}} +" }}} +" keybindings {{{ + +" direction keys + +inoremap gj +inoremap gk +inoremap g +inoremap g +vnoremap gj +vnoremap gk +vnoremap g +vnoremap g +nnoremap gj +nnoremap gk + +" clear search highlights +nnoremap / :noh + +" toggles +nnoremap tn :set number! +nnoremap tr :set relativenumber! +nnoremap tt :NERDTreeToggle + +" tabs +nnoremap th :tabprevious +nnoremap tl :tabnext +nnoremap tk :tabnew +nnoremap tj :tabclose + +" splits +nnoremap wh :vertical resize -1 +nnoremap wj :resize -1 +nnoremap wk :resize +1 +nnoremap wl :vertical resize +1 + +" config +nnoremap en :e ~/.config/nvim/init.vim +nnoremap ec :source % + +" write as root +nnoremap ZW :w !pkexec tee % >/dev/null + +" Goyo +nnoremap G :Goyo + +" windows +nnoremap h +nnoremap j +nnoremap k +nnoremap l +vnoremap h +vnoremap j +vnoremap k +vnoremap l + +" files +" these may go away soon +nnoremap xx :q +nnoremap x! :q! +" these are the new standard +nnoremap qq :q +nnoremap q! :q! +nnoremap wq :wq +nnoremap ww :w +nnoremap ee :e + +" escape for term windows +tnoremap + +" vim-plug +nnoremap pi :PlugInstall +nnoremap pu :PlugUpdate +nnoremap pU :PlugUpgrade +nnoremap pc :PlugClean + +" fugitive +nnoremap gp :G pull +nnoremap gd :G diff % + +" }}} -- cgit v1.2.3 From 899297fc07bb6560b543741aff6c8d172429b090 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 6 Jun 2024 12:19:25 -0500 Subject: Add gtk-2.0 and gtk-3.0 themes My theme also works for gtk-4.0, but GNOME hugged that up, so once I figure out how to put that here I will. --- .gitignore | 9 ++++----- gtk-2.0/gtkrc | 18 ++++++++++++++++++ gtk-3.0/settings.ini | 17 +++++++++++++++++ 3 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 gtk-2.0/gtkrc create mode 100644 gtk-3.0/settings.ini diff --git a/.gitignore b/.gitignore index aa9c29a..2a68078 100644 --- a/.gitignore +++ b/.gitignore @@ -70,12 +70,11 @@ gnome-session/ goa-1.0/ godot/ gomuks/ -gtk-2.0/ -gtk-3.0/ -gtkrc -gtkrc-2.0 +gtk-2.0/* +!gtk-2.0/gtkrc +gtk-3.0/* +!gtk-3.0/settings.ini guitarix/ -<<<<<<< HEAD Hellbeast v2/ Hellbeast v2.settings htop/htoprc diff --git a/gtk-2.0/gtkrc b/gtk-2.0/gtkrc new file mode 100644 index 0000000..6ae8019 --- /dev/null +++ b/gtk-2.0/gtkrc @@ -0,0 +1,18 @@ +# DO NOT EDIT! This file will be overwritten by nwg-look. +# Any customization should be done in ~/.gtkrc-2.0.mine instead. + +gtk-theme-name="Flat-Remix-GTK-Green-Darkest-Solid" +gtk-icon-theme-name="Mint-X" +gtk-font-name="Cantarell 11" +gtk-cursor-theme-name="BreezeX-Black" +gtk-cursor-theme-size=24 +gtk-toolbar-style=GTK_TOOLBAR_ICONS +gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR +gtk-button-images=0 +gtk-menu-images=0 +gtk-enable-event-sounds=1 +gtk-enable-input-feedback-sounds=0 +gtk-xft-antialias=1 +gtk-xft-hinting=1 +gtk-xft-hintstyle="hintslight" +gtk-xft-rgba="rgb" diff --git a/gtk-3.0/settings.ini b/gtk-3.0/settings.ini new file mode 100644 index 0000000..33306a4 --- /dev/null +++ b/gtk-3.0/settings.ini @@ -0,0 +1,17 @@ +[Settings] +gtk-theme-name=Flat-Remix-GTK-Green-Darkest-Solid +gtk-icon-theme-name=Mint-X +gtk-font-name=Cantarell 11 +gtk-cursor-theme-name=BreezeX-Black +gtk-cursor-theme-size=24 +gtk-toolbar-style=GTK_TOOLBAR_ICONS +gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR +gtk-button-images=0 +gtk-menu-images=0 +gtk-enable-event-sounds=1 +gtk-enable-input-feedback-sounds=0 +gtk-xft-antialias=1 +gtk-xft-hinting=1 +gtk-xft-hintstyle=hintslight +gtk-xft-rgba=rgb +gtk-application-prefer-dark-theme=0 -- cgit v1.2.3 From 663699322c45f2c830e167d142d6b3579e849eb4 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 6 Jun 2024 15:16:14 -0500 Subject: Install ZDOTDIR globally and load profile manually This means I don't need to have either ~/.profile or ~/.zshenv symlinks in the home directory. This adds in an installer to set that up. --- Makefile | 18 +++--------------- installers/set_zshdirs.sh | 13 +++++++++++++ zsh/.zshenv | 1 + 3 files changed, 17 insertions(+), 15 deletions(-) create mode 100755 installers/set_zshdirs.sh diff --git a/Makefile b/Makefile index 0faf846..e27af0a 100644 --- a/Makefile +++ b/Makefile @@ -1,28 +1,16 @@ VIM := $(shell command -v vim 2>/dev/null) NVIM := $(shell command -v nvim 2>/dev/null) -XCONFS := X11/Xresources ZCONFS := zsh/.zshenv -SCONFS := sh/profile DCONFS := doas.conf all: -install: install-xconfigs install-shconfigs install-zshconfigs vimplug-vim vimplug-nvim - -install-xconfigs: $(XCONFS) - @echo "Installing Xorg conf files..." - @echo "Xresources..." - @ln -sf `pwd`/X11/Xresources ~/.Xresources - @echo "Done." - -install-shconfigs: $(SCONFS) - @echo "Installing SH conf files..." - @echo ".profile..." - @ln -sf `pwd`/sh/profile ~/.profile - @echo "Done." +install: install-zshconfigs vimplug-vim vimplug-nvim install-zshconfigs: $(ZCONFS) @echo "Installing zsh conf files..." + @echo "Setting ZSHDOTDIR globally..." + @$(shell sudo installers/set_zshdirs.sh) @echo ".zshenv..." @ln -sf `pwd`/zsh/.zshenv ~/.zshenv @echo "Done." diff --git a/installers/set_zshdirs.sh b/installers/set_zshdirs.sh new file mode 100755 index 0000000..2d82f19 --- /dev/null +++ b/installers/set_zshdirs.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +if [ -f /etc/zshenv ]; then + ZSHENV="/etc/zshenv" +elif [ -d /etc/zsh ]; then + ZSHENV="/etc/zsh/zshenv" +else + ZSHENV="/etc/zshenv" +fi + +if ! grep -q "ZDOTDIR" $ZSHENV 2>/dev/null; then + echo "export ZDOTDIR=\"\$HOME\"/.config/zsh" >> $ZSHENV +fi diff --git a/zsh/.zshenv b/zsh/.zshenv index b8c9d48..f02f83a 100644 --- a/zsh/.zshenv +++ b/zsh/.zshenv @@ -1,4 +1,5 @@ # ZSH SPECIFIC CONFIGS unset HISTFILE export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" +[ -f /etc/profile ] && . /etc/profile [ -f "$XDG_CONFIG_HOME/sh/profile" ] && . "$XDG_CONFIG_HOME/sh/profile" -- cgit v1.2.3 From 02073cd349fd6e22ba90e887576facf77f1159a5 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 6 Jun 2024 15:20:59 -0500 Subject: Fix missing {{{ in Hyprland to make device fold --- hypr/hyprland.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 7f33a01..52d4254 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -44,6 +44,7 @@ debug { } # }}} +# device {{{ $LAPTOP_TP_ENABLED = true device { name = synps/2-synaptics-touchpad -- cgit v1.2.3 From 7300dbfe7b58e465fefcf9b7e1f44342ab3f6b9b Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 6 Jun 2024 15:22:36 -0500 Subject: Update XDG paths for more programs This time features python, wget, adb, and xcursor. --- python/pythonrc | 24 ++++++++++++++++++++++++ sh/aliases | 3 +++ sh/profile | 3 +++ 3 files changed, 30 insertions(+) create mode 100644 python/pythonrc diff --git a/python/pythonrc b/python/pythonrc new file mode 100644 index 0000000..cd954b6 --- /dev/null +++ b/python/pythonrc @@ -0,0 +1,24 @@ +def is_vanilla() -> bool: + import sys + return not hasattr(__builtins__, '__IPYTHON__') and 'bpython' not in sys.argv[0] + + +def setup_history(): + import os + import atexit + import readline + from pathlib import Path + + if state_home := os.environ.get('XDG_STATE_HOME'): + state_home = Path(state_home) + else: + state_home = Path.home() / '.local' / 'state' + + history: Path = state_home / 'python_history' + + readline.read_history_file(str(history)) + atexit.register(readline.write_history_file, str(history)) + + +if is_vanilla(): + setup_history() diff --git a/sh/aliases b/sh/aliases index 1537161..d34ece9 100644 --- a/sh/aliases +++ b/sh/aliases @@ -80,3 +80,6 @@ alias s='sudo systemctl' # XDG dirs fix alias svn="svn --config-dir \"$XDG_CONFIG_HOME\"/subversion" +alias adb="'HOME="$XDG_DATA_HOME"/android adb" +alias wget="wget --hsts-file=\"$XDG_DATA_HOME/wget-hsts\"" +alias yarn="yarn --use-yarnrc $XDG_CONFIG_HOME/yarn/config" diff --git a/sh/profile b/sh/profile index b18500d..14e805f 100644 --- a/sh/profile +++ b/sh/profile @@ -51,6 +51,9 @@ export RENPY_PATH_TO_SAVES="$XDG_DATA_HOME" export XINITRC="$XDG_CONFIG_HOME"/X11/xinitrc export XAUTHORITY="$XDG_RUNTIME_DIR"/X11/Xauthority export VIMINIT="set nocp | source ${XDG_CONFIG_HOME:-$HOME.config}/vim/vimrc" +export ANDROID_USER_HOME="$XDG_DATA_HOME"/android +export XCURSOR_PATH="$XDG_DATA_HOME/icons" +export PYTHONSTARTUP="$XDG_CONFIG_HOME"/python/pythonrc # Scaling export QT_AUTO_SCREEN_SCALE_FACTOR=0 -- cgit v1.2.3 From 84e670004f797f30b89298daf4de7b842fda4f26 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 6 Jun 2024 15:23:22 -0500 Subject: Set XDG_CURRENT_DESKTOP to Hyprland This should help something or other involving portals. Idk. --- sh/profile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sh/profile b/sh/profile index 14e805f..760fae9 100644 --- a/sh/profile +++ b/sh/profile @@ -3,7 +3,7 @@ export XDG_DATA_HOME=${XDG_DATA_HOME:="$HOME/.local/share"} export XDG_CACHE_HOME=${XDG_CACHE_HOME:="$HOME/.cache"} export XDG_CONFIG_HOME=${XDG_CONFIG_HOME:="$HOME/.config"} . "$HOME/.config/user-dirs.dirs" -export XDG_CURRENT_DESKTOP="i3" +export XDG_CURRENT_DESKTOP="Hyprland" export XDG_DOCUMENTS_DIR=${HOME}/Documents export XDG_DOWNLOAD_DIR=${HOME}/Downloads export XDG_DESKTOP_DIR=${HOME}/Desktop -- cgit v1.2.3 From 2d1af667b96d9f8d80a4aec217d8a1f48a946bb2 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 6 Jun 2024 15:25:36 -0500 Subject: Add runit user services as well --- .gitignore | 3 +++ runit/conf/logind.conf | 54 +++++++++++++++++++++++++++++++++++++++ runit/sv/dunst/conf | 9 +++++++ runit/sv/dunst/log/run | 12 +++++++++ runit/sv/dunst/run | 5 ++++ runit/sv/mako/conf | 9 +++++++ runit/sv/mako/down | 0 runit/sv/mako/log/run | 12 +++++++++ runit/sv/mako/run | 5 ++++ runit/sv/mpd-mpris/conf | 9 +++++++ runit/sv/mpd-mpris/log/run | 12 +++++++++ runit/sv/mpd-mpris/run | 8 ++++++ runit/sv/mpd-notification/conf | 9 +++++++ runit/sv/mpd-notification/log/run | 12 +++++++++ runit/sv/mpd-notification/run | 9 +++++++ runit/sv/mpd/conf | 9 +++++++ runit/sv/mpd/log/run | 12 +++++++++ runit/sv/mpd/run | 8 ++++++ runit/sv/pipewire-pulse/conf | 12 +++++++++ runit/sv/pipewire-pulse/log/run | 12 +++++++++ runit/sv/pipewire-pulse/run | 12 +++++++++ runit/sv/wireplumber/conf | 12 +++++++++ runit/sv/wireplumber/log/run | 12 +++++++++ runit/sv/wireplumber/run | 12 +++++++++ 24 files changed, 269 insertions(+) create mode 100644 runit/conf/logind.conf create mode 100644 runit/sv/dunst/conf create mode 100755 runit/sv/dunst/log/run create mode 100755 runit/sv/dunst/run create mode 100644 runit/sv/mako/conf create mode 100644 runit/sv/mako/down create mode 100755 runit/sv/mako/log/run create mode 100755 runit/sv/mako/run create mode 100644 runit/sv/mpd-mpris/conf create mode 100755 runit/sv/mpd-mpris/log/run create mode 100755 runit/sv/mpd-mpris/run create mode 100644 runit/sv/mpd-notification/conf create mode 100755 runit/sv/mpd-notification/log/run create mode 100755 runit/sv/mpd-notification/run create mode 100644 runit/sv/mpd/conf create mode 100755 runit/sv/mpd/log/run create mode 100755 runit/sv/mpd/run create mode 100644 runit/sv/pipewire-pulse/conf create mode 100755 runit/sv/pipewire-pulse/log/run create mode 100755 runit/sv/pipewire-pulse/run create mode 100644 runit/sv/wireplumber/conf create mode 100755 runit/sv/wireplumber/log/run create mode 100755 runit/sv/wireplumber/run diff --git a/.gitignore b/.gitignore index 2a68078..2c4e417 100644 --- a/.gitignore +++ b/.gitignore @@ -210,6 +210,9 @@ Resonant DSP/ retroarch/ rncbc.org/ rtorrent/ +runit/sv/*/supervise +runit/sv/*/*/supervise +runit/runsvdir/* RVXX EXEX.settings RVXX v2/ RVXX v2.settings diff --git a/runit/conf/logind.conf b/runit/conf/logind.conf new file mode 100644 index 0000000..c31f33a --- /dev/null +++ b/runit/conf/logind.conf @@ -0,0 +1,54 @@ +# This file is part of elogind. +# +# elogind is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. +# +# Entries in this file show the compile time defaults. +# You can change settings by editing this file. +# Defaults can be restored by simply deleting this file. +# +# See logind.conf(5) for details. + +[Login] +KillUserProcesses=yes +#KillOnlyUsers= +#KillExcludeUsers=root +#InhibitDelayMaxSec=5 +#HandlePowerKey=poweroff +#HandleSuspendKey=suspend +#HandleHibernateKey=hibernate +#HandleLidSwitch=suspend +#HandleLidSwitchExternalPower=suspend +#HandleLidSwitchDocked=ignore +#PowerKeyIgnoreInhibited=no +#SuspendKeyIgnoreInhibited=no +#HibernateKeyIgnoreInhibited=no +#LidSwitchIgnoreInhibited=yes +#HoldoffTimeoutSec=30s +#IdleAction=ignore +#IdleActionSec=30min +#RuntimeDirectorySize=10% +#RuntimeDirectoryInodes=400k +#RemoveIPC=yes +#InhibitorsMax=8192 +#SessionsMax=8192 + +[Sleep] +#AllowSuspend=yes +#AllowHibernation=yes +#AllowSuspendThenHibernate=yes +#AllowHybridSleep=yes +#AllowPowerOffInterrupts=no +#BroadcastPowerOffInterrupts=yes +#AllowSuspendInterrupts=no +#BroadcastSuspendInterrupts=yes +#HandleNvidiaSleep=no +#SuspendState=mem standby freeze +#SuspendMode= +#HibernateState=disk +#HibernateMode=platform shutdown +#HybridSleepState=disk +#HybridSleepMode=suspend platform shutdown +#HibernateDelaySec=10800 diff --git a/runit/sv/dunst/conf b/runit/sv/dunst/conf new file mode 100644 index 0000000..88353ef --- /dev/null +++ b/runit/sv/dunst/conf @@ -0,0 +1,9 @@ +# -*- mode: sh; -*- + +# Additional command line arguments for pipewire(1). +OPTS='' + +# Setting this to 1 enables logging, any other value - disables. +LOGGING_ENABLE=1 +# The directory will be created for you, if logging is enabled. +LOG_DIR="$HOME/.local/var/log/dunst" diff --git a/runit/sv/dunst/log/run b/runit/sv/dunst/log/run new file mode 100755 index 0000000..09818ce --- /dev/null +++ b/runit/sv/dunst/log/run @@ -0,0 +1,12 @@ +#!/bin/sh + +[ -r ../conf ] && . ../conf + +if [ "${LOGGING_ENABLE}x" = "1x" ]; then + # Create the log directory if not exists. + [ -d "${LOG_DIR:-}" ] || mkdir -p "${LOG_DIR:-}" + + exec svlogd -tt "${LOG_DIR:-}" +else + exec chpst -b mpd-log-null cat >/dev/null +fi diff --git a/runit/sv/dunst/run b/runit/sv/dunst/run new file mode 100755 index 0000000..1c0aa88 --- /dev/null +++ b/runit/sv/dunst/run @@ -0,0 +1,5 @@ +#!/bin/sh + +[ -r ./conf ] && . ./conf + +exec dunst ${OPTS:-} 2>&1 diff --git a/runit/sv/mako/conf b/runit/sv/mako/conf new file mode 100644 index 0000000..6bb79d1 --- /dev/null +++ b/runit/sv/mako/conf @@ -0,0 +1,9 @@ +# -*- mode: sh; -*- + +# Additional command line arguments for pipewire(1). +OPTS='' + +# Setting this to 1 enables logging, any other value - disables. +LOGGING_ENABLE=1 +# The directory will be created for you, if logging is enabled. +LOG_DIR="$HOME/.local/var/log/mako" diff --git a/runit/sv/mako/down b/runit/sv/mako/down new file mode 100644 index 0000000..e69de29 diff --git a/runit/sv/mako/log/run b/runit/sv/mako/log/run new file mode 100755 index 0000000..09818ce --- /dev/null +++ b/runit/sv/mako/log/run @@ -0,0 +1,12 @@ +#!/bin/sh + +[ -r ../conf ] && . ../conf + +if [ "${LOGGING_ENABLE}x" = "1x" ]; then + # Create the log directory if not exists. + [ -d "${LOG_DIR:-}" ] || mkdir -p "${LOG_DIR:-}" + + exec svlogd -tt "${LOG_DIR:-}" +else + exec chpst -b mpd-log-null cat >/dev/null +fi diff --git a/runit/sv/mako/run b/runit/sv/mako/run new file mode 100755 index 0000000..266f521 --- /dev/null +++ b/runit/sv/mako/run @@ -0,0 +1,5 @@ +#!/bin/sh + +[ -r ./conf ] && . ./conf + +exec mako ${OPTS:-} 2>&1 diff --git a/runit/sv/mpd-mpris/conf b/runit/sv/mpd-mpris/conf new file mode 100644 index 0000000..7b43455 --- /dev/null +++ b/runit/sv/mpd-mpris/conf @@ -0,0 +1,9 @@ +# -*- mode: sh; -*- + +# Additional command line arguments for pipewire(1). +OPTS='-network unix' + +# Setting this to 1 enables logging, any other value - disables. +LOGGING_ENABLE=0 +# The directory will be created for you, if logging is enabled. +LOG_DIR="$HOME/.local/var/log/mpd-mpris" diff --git a/runit/sv/mpd-mpris/log/run b/runit/sv/mpd-mpris/log/run new file mode 100755 index 0000000..09818ce --- /dev/null +++ b/runit/sv/mpd-mpris/log/run @@ -0,0 +1,12 @@ +#!/bin/sh + +[ -r ../conf ] && . ../conf + +if [ "${LOGGING_ENABLE}x" = "1x" ]; then + # Create the log directory if not exists. + [ -d "${LOG_DIR:-}" ] || mkdir -p "${LOG_DIR:-}" + + exec svlogd -tt "${LOG_DIR:-}" +else + exec chpst -b mpd-log-null cat >/dev/null +fi diff --git a/runit/sv/mpd-mpris/run b/runit/sv/mpd-mpris/run new file mode 100755 index 0000000..3883e70 --- /dev/null +++ b/runit/sv/mpd-mpris/run @@ -0,0 +1,8 @@ +#!/bin/sh + +# Wait for the PipeWire Pulse daemon to start. +sv check "$HOME/.config/runit/sv/mpd" >/dev/null || exit 1 + +[ -r ./conf ] && . ./conf + +exec mpd-mpris ${OPTS:--network unix} 2>&1 diff --git a/runit/sv/mpd-notification/conf b/runit/sv/mpd-notification/conf new file mode 100644 index 0000000..e0b9aa3 --- /dev/null +++ b/runit/sv/mpd-notification/conf @@ -0,0 +1,9 @@ +# -*- mode: sh; -*- + +# Additional command line arguments for pipewire(1). +OPTS='' + +# Setting this to 1 enables logging, any other value - disables. +LOGGING_ENABLE=0 +# The directory will be created for you, if logging is enabled. +LOG_DIR="$HOME/.local/var/log/mpd-notification" diff --git a/runit/sv/mpd-notification/log/run b/runit/sv/mpd-notification/log/run new file mode 100755 index 0000000..09818ce --- /dev/null +++ b/runit/sv/mpd-notification/log/run @@ -0,0 +1,12 @@ +#!/bin/sh + +[ -r ../conf ] && . ../conf + +if [ "${LOGGING_ENABLE}x" = "1x" ]; then + # Create the log directory if not exists. + [ -d "${LOG_DIR:-}" ] || mkdir -p "${LOG_DIR:-}" + + exec svlogd -tt "${LOG_DIR:-}" +else + exec chpst -b mpd-log-null cat >/dev/null +fi diff --git a/runit/sv/mpd-notification/run b/runit/sv/mpd-notification/run new file mode 100755 index 0000000..a643d56 --- /dev/null +++ b/runit/sv/mpd-notification/run @@ -0,0 +1,9 @@ +#!/bin/sh + +# Wait for the PipeWire Pulse daemon to start. +sv check "$HOME/.config/runit/sv/mpd" >/dev/null || exit 1 +sv check "$HOME/.config/runit/sv/mako" >/dev/null || exit 1 + +[ -r ./conf ] && . ./conf + +exec mpd-notification ${OPTS:-} 2>&1 diff --git a/runit/sv/mpd/conf b/runit/sv/mpd/conf new file mode 100644 index 0000000..ca3a82f --- /dev/null +++ b/runit/sv/mpd/conf @@ -0,0 +1,9 @@ +# -*- mode: sh; -*- + +# Additional command line arguments for pipewire(1). +OPTS='' + +# Setting this to 1 enables logging, any other value - disables. +LOGGING_ENABLE=0 +# The directory will be created for you, if logging is enabled. +LOG_DIR="$HOME/.local/var/log/mpd" diff --git a/runit/sv/mpd/log/run b/runit/sv/mpd/log/run new file mode 100755 index 0000000..09818ce --- /dev/null +++ b/runit/sv/mpd/log/run @@ -0,0 +1,12 @@ +#!/bin/sh + +[ -r ../conf ] && . ../conf + +if [ "${LOGGING_ENABLE}x" = "1x" ]; then + # Create the log directory if not exists. + [ -d "${LOG_DIR:-}" ] || mkdir -p "${LOG_DIR:-}" + + exec svlogd -tt "${LOG_DIR:-}" +else + exec chpst -b mpd-log-null cat >/dev/null +fi diff --git a/runit/sv/mpd/run b/runit/sv/mpd/run new file mode 100755 index 0000000..b57d5ac --- /dev/null +++ b/runit/sv/mpd/run @@ -0,0 +1,8 @@ +#!/bin/sh + +# Wait for the PipeWire Pulse daemon to start. +sv check "$HOME/.config/runit/sv/pipewire-pulse" >/dev/null || exit 1 + +[ -r ./conf ] && . ./conf + +exec mpd --no-daemon --stderr ${OPTS:-} 2>&1 diff --git a/runit/sv/pipewire-pulse/conf b/runit/sv/pipewire-pulse/conf new file mode 100644 index 0000000..606eac5 --- /dev/null +++ b/runit/sv/pipewire-pulse/conf @@ -0,0 +1,12 @@ +# -*- mode: sh; -*- + +# Additional command line arguments for pipewire-pulse. +OPTS='' + +# Setting this to 1 enables logging, any other value - disables. +LOGGING_ENABLE=0 +# Set the pipewire log level. +# See: https://docs.pipewire.org/page_daemon.html#sec_logging +LOG_LEVEL=1 +# The directory will be created for you, if logging is enabled. +LOG_DIR="$HOME/.local/var/log/pipewire-pulse" diff --git a/runit/sv/pipewire-pulse/log/run b/runit/sv/pipewire-pulse/log/run new file mode 100755 index 0000000..ba8236e --- /dev/null +++ b/runit/sv/pipewire-pulse/log/run @@ -0,0 +1,12 @@ +#!/bin/sh + +[ -r ../conf ] && . ../conf + +if [ "${LOGGING_ENABLE}x" = "1x" ]; then + # Create the log directory if not exists. + [ -d "${LOG_DIR}" ] || mkdir -p "${LOG_DIR}" + + exec svlogd -tt "${LOG_DIR}" +else + exec chpst -b pipewire-pulse-log-null cat >/dev/null +fi diff --git a/runit/sv/pipewire-pulse/run b/runit/sv/pipewire-pulse/run new file mode 100755 index 0000000..0e43d6f --- /dev/null +++ b/runit/sv/pipewire-pulse/run @@ -0,0 +1,12 @@ +#!/bin/sh + +# Wait for the PipeWire Media Session daemon to start. +sv check "$HOME/.config/runit/sv/wireplumber" >/dev/null || exit 1 + +[ -r ./conf ] && . ./conf + +if [ "${LOGGING_ENABLE}x" = "1x" -a -n "${LOG_LEVEL}" ]; then + export PIPEWIRE_DEBUG="${LOG_LEVEL}" +fi + +exec pipewire-pulse ${OPTS:-} 2>&1 diff --git a/runit/sv/wireplumber/conf b/runit/sv/wireplumber/conf new file mode 100644 index 0000000..d712f03 --- /dev/null +++ b/runit/sv/wireplumber/conf @@ -0,0 +1,12 @@ +# -*- mode: sh; -*- + +# Additional command line arguments for wireplumber. +OPTS='' + +# Setting this to 1 enables logging, any other value - disables. +LOGGING_ENABLE=0 +# Set the wireplumber log level. +# See: https://pipewire.pages.freedesktop.org/wireplumber/daemon-logging.html +LOG_LEVEL=2 +# The directory will be created for you, if logging is enabled. +LOG_DIR="$HOME/.local/var/log/wireplumber" diff --git a/runit/sv/wireplumber/log/run b/runit/sv/wireplumber/log/run new file mode 100755 index 0000000..aa89d14 --- /dev/null +++ b/runit/sv/wireplumber/log/run @@ -0,0 +1,12 @@ +#!/bin/sh + +[ -r ../conf ] && . ../conf + +if [ "${LOGGING_ENABLE}x" == "1x" ]; then + # Create the log directory if not exists. + [ -d "${LOG_DIR}" ] || mkdir -p "${LOG_DIR}" + + exec svlogd -tt "${LOG_DIR}" +else + exec chpst -b wireplumber-log-null cat >/dev/null +fi diff --git a/runit/sv/wireplumber/run b/runit/sv/wireplumber/run new file mode 100755 index 0000000..5fb9edc --- /dev/null +++ b/runit/sv/wireplumber/run @@ -0,0 +1,12 @@ +#!/bin/sh + +# Wait for the PipeWire daemon to start. +sv check "$HOME/.config/runit/sv/pipewire" >/dev/null || exit 1 + +[ -r ./conf ] && . ./conf + +if [ "${LOGGING_ENABLE}x" = "1x" -a -n "${LOG_LEVEL}" ]; then + export WIREPLUMBER_DEBUG="${LOG_LEVEL}" +fi + +exec wireplumber ${OPTS:-} 2>&1 -- cgit v1.2.3 From f2956712c043c592e1c52eedbd4a901e8bb7423f Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 6 Jun 2024 15:30:30 -0500 Subject: Ignore yarn directory and package-lock.json --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 2c4e417..5bbe4db 100644 --- a/.gitignore +++ b/.gitignore @@ -164,6 +164,7 @@ odysee-nativefier*/ okularpartrc okularrc openrazer/ +package-lock.json pavucontrol.ini pcmanfm/ pcmanfm-qt/ @@ -270,6 +271,7 @@ xmonad/xmonad.o xmonad/xmonad-x86_64-linux xsettingsd/ yabridgectl/ +yarn/ ytfzf/subscriptions yuzu/ zec-qt-wallet-org/ -- cgit v1.2.3 From d6e44c1b0cbd2f52c1f213f4de19d7c9d8a10083 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 11 Jul 2024 09:33:12 -0500 Subject: Update hypr config options for v0.41.2 Two changes, for cursor warping and spawning the new window as master. --- hypr/hyprland.conf | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 7f33a01..74dab8d 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -82,7 +82,12 @@ general { col.active_border = rgba(198844ee) col.inactive_border = rgba(1b1d1cee) layout = master - no_cursor_warps = false +} +#}}} + +#{{{ cursor +cursor { + no_warps = false } #}}} @@ -147,7 +152,7 @@ master { special_scale_factor = 0.55 mfact = 0.55 # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more - new_is_master = false + new_status = inherit new_on_top = true no_gaps_when_only = false orientation = left -- cgit v1.2.3 From f995945828966933168d9bffebab4f384a1855f4 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 11 Jul 2024 09:35:44 -0500 Subject: Fix some xdg path blunders These broke adb, and the xcursor path. --- sh/aliases | 3 +++ sh/profile | 3 +++ 2 files changed, 6 insertions(+) diff --git a/sh/aliases b/sh/aliases index 1537161..1b6606e 100644 --- a/sh/aliases +++ b/sh/aliases @@ -80,3 +80,6 @@ alias s='sudo systemctl' # XDG dirs fix alias svn="svn --config-dir \"$XDG_CONFIG_HOME\"/subversion" +alias adb="HOME="$XDG_DATA_HOME"/android adb" +alias wget="wget --hsts-file=\"$XDG_DATA_HOME/wget-hsts\"" +alias yarn="yarn --use-yarnrc $XDG_CONFIG_HOME/yarn/config" diff --git a/sh/profile b/sh/profile index b18500d..e2e155d 100644 --- a/sh/profile +++ b/sh/profile @@ -51,6 +51,9 @@ export RENPY_PATH_TO_SAVES="$XDG_DATA_HOME" export XINITRC="$XDG_CONFIG_HOME"/X11/xinitrc export XAUTHORITY="$XDG_RUNTIME_DIR"/X11/Xauthority export VIMINIT="set nocp | source ${XDG_CONFIG_HOME:-$HOME.config}/vim/vimrc" +export ANDROID_USER_HOME="$XDG_DATA_HOME"/android +export XCURSOR_PATH="/usr/share/icons:$XDG_DATA_HOME/icons" +export PYTHONSTARTUP="$XDG_CONFIG_HOME"/python/pythonrc # Scaling export QT_AUTO_SCREEN_SCALE_FACTOR=0 -- cgit v1.2.3 From ce32f1c3a3aad10971bdc0fd18a27c4a89768ec8 Mon Sep 17 00:00:00 2001 From: zachir Date: Sat, 20 Jul 2024 11:17:27 -0500 Subject: Improve hypr config basics Simplify the swallow_exception_regex, turn off drop_shadow, and change `exec sh -c' for tofi to `sh -c'. --- hypr/hyprland.conf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index c8ab688..652d4e1 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -98,7 +98,7 @@ misc { disable_splash_rendering = true enable_swallow = true swallow_regex = ^(kitty)$ - swallow_exception_regex = ^(.*)(ueberzug)$ + swallow_exception_regex = ^(.*ueberzug)$ vfr = true vrr = 1 } @@ -108,7 +108,7 @@ misc { decoration { # See https://wiki.hyprland.org/Configuring/Variables/ for more rounding = 10 - drop_shadow = yes + drop_shadow = no shadow_range = 4 shadow_render_power = 3 col.shadow = rgba(1a1a1aee) @@ -326,8 +326,8 @@ submap = reset #}}} #{{{ Menu bindings -bind = $mainMod, R, exec, exec sh -c "$(tofi-drun -c ~/.config/tofi/themes/dmenu_vertical --prompt-text Run:)" -bind = $mainMod, D, exec, exec sh -c "$(tofi-run -c ~/.config/tofi/themes/dmenu_vertical --prompt-text Run:)" +bind = $mainMod, R, exec, sh -c "$(tofi-drun -c ~/.config/tofi/themes/dmenu_vertical --prompt-text Run:)" +bind = $mainMod, D, exec, sh -c "$(tofi-run -c ~/.config/tofi/themes/dmenu_vertical --prompt-text Run:)" bind = $mainMod $secdMod, Q, exec, qbc bind = $mainMod $secdMod, W, exec, lwc bind = $mainMod $secdMod, E, exec, mbc -- cgit v1.2.3 From b85e749e2012cfd33a53c08a00c2b9f8b57ce262 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 23 Jul 2024 14:42:52 -0500 Subject: Hide temperature modules until critical --- waybar/config | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/waybar/config b/waybar/config index ec04dec..e2dcc50 100644 --- a/waybar/config +++ b/waybar/config @@ -105,19 +105,19 @@ "max-length": 25 }, "temperature#cpu": { - // "thermal-zone": 2, - "hwmon-path": "/sys/class/hwmon/hwmon3/temp1_input", - "critical-threshold": 80, - // "format-critical": "{temperatureC}°C {icon}", - "format": "{temperatureC}°C", + "thermal-zone": 0, + // "hwmon-path": "cat /sys/class/hwmon/hwmon5/temp1_input", + "critical-threshold": 110, + "format-critical": "{temperatureC}°C", + "format": "", "format-icons": ["", "", ""] }, "temperature#gpu": { - // "thermal-zone": 2, - "hwmon-path": "/sys/class/hwmon/hwmon1/temp2_input", - "critical-threshold": 110, - // "format-critical": "{temperatureC}°C {icon}", - "format": "{temperatureC}°C", + "thermal-zone": 1, + // "hwmon-path": "/sys/class/hwmon/hwmon4/temp1_input", + "critical-threshold": 126, + "format-critical": "{temperatureC}°C", + "format": "", "format-icons": ["", "", ""] }, "backlight": { -- cgit v1.2.3 From e58fd2b158686e7911f68dafa1dc1d71f789c4a4 Mon Sep 17 00:00:00 2001 From: ZachIR Date: Wed, 25 Sep 2024 14:50:17 -0500 Subject: Remove swaylock from hypridle and stop hyprlock fades Before, hypridle would launch swaylock before sleeping, but hyprlock when receiving the loginctl lock-session command. This has been fixed. In addition, hyprlock no longer fades. --- hypr/hypridle.conf | 2 +- hypr/hyprlock.conf | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/hypr/hypridle.conf b/hypr/hypridle.conf index 9b6ea02..39ed177 100644 --- a/hypr/hypridle.conf +++ b/hypr/hypridle.conf @@ -1,7 +1,7 @@ general { lock_cmd = hyprlock # dbus/sysd lock command (loginctl lock-session) unlock_cmd = # same as above, but unlock - before_sleep_cmd = swaylock # command ran before sleep + before_sleep_cmd = hyprlock # command ran before sleep after_sleep_cmd = # command ran after sleep ignore_dbus_inhibit = false # whether to ignore dbus-sent idle-inhibit requests (used by e.g. firefox or steam) } diff --git a/hypr/hyprlock.conf b/hypr/hyprlock.conf index 84d08ae..24208d6 100644 --- a/hypr/hyprlock.conf +++ b/hypr/hyprlock.conf @@ -2,8 +2,8 @@ general { disable_loading_bar = false hide_cursor = false grace = 0 - no_fade_in = false - no_fade_out = false + no_fade_in = true + no_fade_out = true ignore_empty_input = false } -- cgit v1.2.3 From 98c3c50c85ea56eff874e20ded11f22eaa2fa401 Mon Sep 17 00:00:00 2001 From: ZachIR Date: Wed, 25 Sep 2024 14:51:14 -0500 Subject: Remove deprecated hyprland windowrules The Hyprland rules windowdance and forceinput seem to have been deprecated, and now cause an error in the newest version of Hyprland, so this removes those lines. --- hypr/hyprland.conf | 5 ----- 1 file changed, 5 deletions(-) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 652d4e1..2eac30c 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -182,9 +182,6 @@ plugin { # Example windowrule v2 # windowrulev2 = float, class:^(kitty)$, title:^(kitty)$ # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more -windowrule = windowdance, ^(oneshot)$ -windowrule = windowdance, title:^(UNDERTALE)$ -windowrule = windowdance, title:^(Rhythm Doctor)$ windowrule = fullscreen, ^(Xephyr)$ windowrule = float, title:^(LibreWolf - Choose User Profile)$ windowrule = float, ^(xdg-desktop-portal-gtk) @@ -197,8 +194,6 @@ windowrulev2 = stayfocused, title:^(menu)$,class:^(yabridge-host.exe.so)$ windowrulev2 = minsize 1 1, title:^(menu)$,class:^(yabridge-host.exe.so)$ windowrulev2 = float, class:^(yabridge-host.exe.so)$, title:^(menu)$ windowrulev2 = float, floating:0, title:^(menu*) -windowrulev2 = forceinput, title:^(menu*) -windowrulev2 = windowdance, title:^(menu*) windowrule = workspace 2, title:^(REAPER .*initializing.*)$ windowrulev2 = tile, class:^(REAPER)$, title:^(.*REAPER v[0-9.]* - Licensed for personal/small business use)$ windowrule = tile, ^(WebApp-Qobuz[0-9]*)$ -- cgit v1.2.3 From 145327e622abb7c2000bc65f17c0ef741c061358 Mon Sep 17 00:00:00 2001 From: ZachIR Date: Wed, 25 Sep 2024 14:52:45 -0500 Subject: Set persistent workspaces on eDP-1 in waybar This was already being done on HDMI-A-1 and eDP-1, so now this is also done for eDP-1 to make it a little more cross-platform friendly. --- waybar/config | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/waybar/config b/waybar/config index e2dcc50..7a54e0c 100644 --- a/waybar/config +++ b/waybar/config @@ -40,8 +40,7 @@ "18": "9", }, "persistent-workspaces": { - "DP-1": [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ], - "HDMI-A-1": [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ], + "eDP-1": [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ], }, "on-scroll-up": "hyprctl dispatch split-workspace e+1", "on-scroll-down": "hyprctl dispatch split-workspace e-1", -- cgit v1.2.3 From 3489c08e374d6cde5c0268ccb356a6907f9a0d1a Mon Sep 17 00:00:00 2001 From: ZachIR Date: Wed, 25 Sep 2024 15:02:14 -0500 Subject: Ignore more directories --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 5bbe4db..f22368b 100644 --- a/.gitignore +++ b/.gitignore @@ -67,6 +67,7 @@ glib-2.0/ gnome-control-center/ gnome-initial-setup-done gnome-session/ +go/ goa-1.0/ godot/ gomuks/ @@ -108,6 +109,7 @@ Kitware/ kritadisplayrc kritarc ksh/history +kwalletrc lab/ lbry/ LBRY/ @@ -210,6 +212,7 @@ remmina/ Resonant DSP/ retroarch/ rncbc.org/ +.rt64/ rtorrent/ runit/sv/*/supervise runit/sv/*/*/supervise -- cgit v1.2.3 From 4adc7a808f10ec4133bf16fbceea49ec6ed1560a Mon Sep 17 00:00:00 2001 From: ZachIR Date: Thu, 31 Oct 2024 12:05:06 -0500 Subject: Add suspend timeout to hypridle --- hypr/hypridle.conf | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/hypr/hypridle.conf b/hypr/hypridle.conf index 39ed177..df2b123 100644 --- a/hypr/hypridle.conf +++ b/hypr/hypridle.conf @@ -7,7 +7,13 @@ general { } listener { - timeout = 600 # in seconds + timeout = 300 # in seconds on-timeout = loginctl lock-session # command to run when timeout has passed on-resume = # command to run when activity is detected after timeout has fired. } + +listener { + timeout = 360 # in seconds + on-timeout = systemctl suspend # command to run when timeout has passed + on-resume = # command to run when activity is detected after timeout has fired. +} -- cgit v1.2.3 From 5c939654efcbf64c57812d9e670f6f6566ae8be0 Mon Sep 17 00:00:00 2001 From: ZachIR Date: Thu, 31 Oct 2024 12:05:37 -0500 Subject: Change hypridle, dunst, mpd hypr autostart to sysd I have accepted the systemd suck, so these are now mpd user services (although dunst and hypridle still have to be started by Hyprland). --- hypr/hyprland.conf | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 2eac30c..9f1d55f 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -14,7 +14,7 @@ monitor = DP-1, 1920x1080@60, 1920x0, 1 exec-once = xdph exec-once = hyprpm reload -n exec-once = hyprpaper -exec-once = hypridle +#exec-once = hypridle exec-once = waybar exec-once = pypr exec-once = lxqt-policykit-agent @@ -23,7 +23,9 @@ exec-once = import-gsettings icon-theme 'Mint-X-Grey' exec-once = import-gsettings cursor-theme 'Breeze' exec-once = xrdb -load "$XDG_CONFIG_HOME"/X11/xresources exec-once = com.github.wwmm.easyeffects -exec-once = mpd +exec-once = systemctl --user start dunst +exec-once = systemctl --user start hypridle +#exec-once = mpd #}}} #{{{ env -- cgit v1.2.3 From 76b662c7b576f5af9294a1dbdc8b94b35a1059ab Mon Sep 17 00:00:00 2001 From: ZachIR Date: Thu, 31 Oct 2024 12:07:14 -0500 Subject: Float kdenlive popup in Hyprland --- hypr/hyprland.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 9f1d55f..40b1ade 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -190,6 +190,7 @@ windowrule = float, ^(xdg-desktop-portal-gtk) windowrule = float, title:^(UNDERTALE)$ windowrule = float, ^(Tk)$ windowrule = float, ^(lxqt-policykit-agent)$ +windowrule = float, ^(Kdenlive)$ windowrulev2 = stayfocused, title:^()$, class:^(steam)$ windowrulev2 = minsize 1 1, title:^()$, class:^(steam)$ windowrulev2 = stayfocused, title:^(menu)$,class:^(yabridge-host.exe.so)$ -- cgit v1.2.3 From c2595192b158918d570f87dec01c697b7db90d2f Mon Sep 17 00:00:00 2001 From: ZachIR Date: Thu, 31 Oct 2024 12:07:52 -0500 Subject: Add acpi-notify script shortcut to hypr --- hypr/hyprland.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 40b1ade..7b2d664 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -346,6 +346,7 @@ bind = $mainMod, Q, exec, loginctl lock-session bind = $mainMod $secdMod CONTROL, Q, exec, systemctl suspend bind = $mainMod SHIFT, G, exec, get-app-id bind = $mainMod Control, M, exec, volsv -m +bind = $mainMod, Comma, exec, acpi-notify.sh #bind = $mainMod CONTROL, R, exec, startx -- /usr/bin/Xephyr -screen 1920x1080 :1 #}}} -- cgit v1.2.3 From f627c6a471c89f3a13ef0dfee411dc6dbf18a0ee Mon Sep 17 00:00:00 2001 From: ZachIR Date: Thu, 31 Oct 2024 12:08:12 -0500 Subject: Add auto-cpufreq zsh completion --- zsh/.zshrc | 1 + 1 file changed, 1 insertion(+) diff --git a/zsh/.zshrc b/zsh/.zshrc index 00be912..a00f116 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -97,3 +97,4 @@ bindkey -- '^[[B' down-line-or-beg [[ -n "${key[Shift-Tab]}" ]] && bindkey -- "${key[Shift-Tab]}" reverse-menu-complete [[ -n "${key[Delete]}" ]] && bindkey -- "${key[Delete]}" delete-char +eval "$(_AUTO_CPUFREQ_COMPLETE=zsh_source auto-cpufreq)" -- cgit v1.2.3 From 1aeb6934e5cd1babd19a56417d35b6fa1904f934 Mon Sep 17 00:00:00 2001 From: ZachIR Date: Tue, 19 Nov 2024 12:43:33 -0600 Subject: Updates hypridle based on upstream The example config file works better than mine did, so I yoinked a bunch of stuff from it. --- hypr/hypridle.conf | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/hypr/hypridle.conf b/hypr/hypridle.conf index df2b123..f25f081 100644 --- a/hypr/hypridle.conf +++ b/hypr/hypridle.conf @@ -1,19 +1,34 @@ general { - lock_cmd = hyprlock # dbus/sysd lock command (loginctl lock-session) - unlock_cmd = # same as above, but unlock - before_sleep_cmd = hyprlock # command ran before sleep - after_sleep_cmd = # command ran after sleep - ignore_dbus_inhibit = false # whether to ignore dbus-sent idle-inhibit requests (used by e.g. firefox or steam) + 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 = 300 # in seconds - on-timeout = loginctl lock-session # command to run when timeout has passed - on-resume = # command to run when activity is detected after timeout has fired. + 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 = 360 # in seconds - on-timeout = systemctl suspend # command to run when timeout has passed - on-resume = # command to run when activity is detected after timeout has fired. + timeout = 150 # 2.5min. + on-timeout = brightnessctl -sd led::kbd_backlight set 0 # turn off keyboard backlight. + on-resume = brightnessctl -rd led::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 # screen on when activity is detected after timeout has fired. +} + +listener { + timeout = 1800 # 30min + on-timeout = systemctl suspend # suspend pc } -- cgit v1.2.3 From 01432500285b3f0440edddbd3020524f02647701 Mon Sep 17 00:00:00 2001 From: ZachIR Date: Tue, 19 Nov 2024 12:45:02 -0600 Subject: Updates hyprland config to the latest version Shadow became its own category in Decorations, and an option in master disappeared, and a new one got added. --- hypr/hyprland.conf | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 7b2d664..097aa8a 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -110,10 +110,6 @@ misc { decoration { # See https://wiki.hyprland.org/Configuring/Variables/ for more rounding = 10 - drop_shadow = no - shadow_range = 4 - shadow_render_power = 3 - col.shadow = rgba(1a1a1aee) #{{{ Blur options blur { enabled = true @@ -123,6 +119,14 @@ decoration { xray = true } #}}} + #{{{ Shadow options + shadow { + enabled = false + range = 4 + render_power = 3 + color = 0xee1a1a1a + } + #}}} } #}}} @@ -157,9 +161,10 @@ master { # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more new_status = inherit new_on_top = true - no_gaps_when_only = false + #no_gaps_when_only = false orientation = left inherit_fullscreen = true + drop_at_cursor = true } #}}} -- cgit v1.2.3 From bc4303e0ff999fec14463f9405a7fc7add325477 Mon Sep 17 00:00:00 2001 From: ZachIR Date: Tue, 19 Nov 2024 12:46:49 -0600 Subject: Modify hyprlock behavior Hide cursor and loading bar, and ignore empty input. --- hypr/hyprlock.conf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hypr/hyprlock.conf b/hypr/hyprlock.conf index 24208d6..57f9fdd 100644 --- a/hypr/hyprlock.conf +++ b/hypr/hyprlock.conf @@ -1,10 +1,10 @@ general { - disable_loading_bar = false - hide_cursor = false + disable_loading_bar = true + hide_cursor = true grace = 0 no_fade_in = true no_fade_out = true - ignore_empty_input = false + ignore_empty_input = true } background { -- cgit v1.2.3 From 6f57f517e48b6b09ef190c241579cec002cfde3f Mon Sep 17 00:00:00 2001 From: ZachIR Date: Tue, 19 Nov 2024 12:47:56 -0600 Subject: Fix chmod issue with spaces in lf Chmod would not apply properly to files or folders with spaces in the path; this has been fixed now. --- lf/lfrc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lf/lfrc b/lf/lfrc index 702fc2d..19c6051 100644 --- a/lf/lfrc +++ b/lf/lfrc @@ -51,9 +51,9 @@ cmd chmod ${{ printf "Mode Bits: " read ans - for file in "$fx" + echo "$fx" | while read file do - chmod $ans $file + chmod "$ans" "$file" done }} -- cgit v1.2.3 From 2b9df77bbc5fa85f94b15b043c659168a606d1db Mon Sep 17 00:00:00 2001 From: ZachIR Date: Tue, 19 Nov 2024 12:49:46 -0600 Subject: Define xdg-desktop-portal defaults Use Hyprland for default, and use lxqt file chooser. --- xdg-desktop-portal/portals.conf | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 xdg-desktop-portal/portals.conf diff --git a/xdg-desktop-portal/portals.conf b/xdg-desktop-portal/portals.conf new file mode 100644 index 0000000..faadd46 --- /dev/null +++ b/xdg-desktop-portal/portals.conf @@ -0,0 +1,3 @@ +[preferred] +default=hyprland +org.freedesktop.impl.portal.FileChooser=lxqt -- cgit v1.2.3 From 44fbfc95f779e5d6bbdaaf250ada4dfcdae5cb2a Mon Sep 17 00:00:00 2001 From: ZachIR Date: Sat, 18 Jan 2025 23:39:25 -0600 Subject: Cleanup zsh configs + add zplug Just a couple plugins for syntax highlighting and history searching, removing a bunch of old unused files, and changing to just accept the standard of using dotfiles in the home directory. --- Makefile | 16 +++++--- installers/set_zshdirs.sh | 13 ------ sh/profile | 2 +- zsh/.zlogout | 1 - zsh/.zprofile | 6 --- zsh/.zshenv | 5 --- zsh/.zshrc | 100 ---------------------------------------------- zsh/zshenv | 6 +++ zsh/zshrc | 72 +++++++++++++++++++++++++++++++++ 9 files changed, 90 insertions(+), 131 deletions(-) delete mode 100755 installers/set_zshdirs.sh delete mode 100644 zsh/.zlogout delete mode 100644 zsh/.zprofile delete mode 100644 zsh/.zshenv delete mode 100644 zsh/.zshrc create mode 100644 zsh/zshenv create mode 100644 zsh/zshrc diff --git a/Makefile b/Makefile index e27af0a..898fe9e 100644 --- a/Makefile +++ b/Makefile @@ -1,20 +1,26 @@ VIM := $(shell command -v vim 2>/dev/null) NVIM := $(shell command -v nvim 2>/dev/null) -ZCONFS := zsh/.zshenv +ZCONFS := zsh/zshenv zsh/zshrc +SCONFS := sh/profile DCONFS := doas.conf all: -install: install-zshconfigs vimplug-vim vimplug-nvim +install: install-zshconfigs install-shconfigs vimplug-vim vimplug-nvim install-zshconfigs: $(ZCONFS) @echo "Installing zsh conf files..." - @echo "Setting ZSHDOTDIR globally..." - @$(shell sudo installers/set_zshdirs.sh) @echo ".zshenv..." - @ln -sf `pwd`/zsh/.zshenv ~/.zshenv + @ln -sf `pwd`/zsh/zshenv ~/.zshenv + @echo ".zshrc..." + @ln -sf `pwd`/zsh/zshrc ~/.zshrc @echo "Done." +install-shconfigs: $(SCONFS) + @echo "Installing sh conf files..." + @echo ".profile..." + @ln -sf `pwd`/sh/profile ~/.profile + vimplug-vim: installers/vimplug_vim.sh ifdef VIM @echo "Installing vim-plug for vim..." diff --git a/installers/set_zshdirs.sh b/installers/set_zshdirs.sh deleted file mode 100755 index 2d82f19..0000000 --- a/installers/set_zshdirs.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -if [ -f /etc/zshenv ]; then - ZSHENV="/etc/zshenv" -elif [ -d /etc/zsh ]; then - ZSHENV="/etc/zsh/zshenv" -else - ZSHENV="/etc/zshenv" -fi - -if ! grep -q "ZDOTDIR" $ZSHENV 2>/dev/null; then - echo "export ZDOTDIR=\"\$HOME\"/.config/zsh" >> $ZSHENV -fi diff --git a/sh/profile b/sh/profile index de79a65..b83d012 100644 --- a/sh/profile +++ b/sh/profile @@ -36,7 +36,7 @@ export NUGET_PACKAGES="$XDG_CACHE_HOME"/NuGetPackages export RXVT_SOCKET="$XDG_RUNTIME_DIR"/urxvtd export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc -export ZDOTDIR=$HOME/.config/zsh +#export ZDOTDIR=$HOME/.config/zsh export CARGO_HOME="$XDG_DATA_HOME"/cargo export RUSTUP_HOME="$XDG_DATA_HOME"/rustup export WEECHAT_HOME="$XDG_CONFIG_HOME"/weechat diff --git a/zsh/.zlogout b/zsh/.zlogout deleted file mode 100644 index 33666be..0000000 --- a/zsh/.zlogout +++ /dev/null @@ -1 +0,0 @@ -rm -rf /tmp/xorg-awake diff --git a/zsh/.zprofile b/zsh/.zprofile deleted file mode 100644 index 1eae5e7..0000000 --- a/zsh/.zprofile +++ /dev/null @@ -1,6 +0,0 @@ -#export GDK_DPI_SCALE=0.7 - -#gnome_schema=org.gnome.desktop.interface -# -#gsettings set $gnome_schema gtk-theme 'Plata-Noir-Compact' -#gsettings set $gnome_schema icon-theme 'Papirus-Dark' diff --git a/zsh/.zshenv b/zsh/.zshenv deleted file mode 100644 index f02f83a..0000000 --- a/zsh/.zshenv +++ /dev/null @@ -1,5 +0,0 @@ -# ZSH SPECIFIC CONFIGS -unset HISTFILE -export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" -[ -f /etc/profile ] && . /etc/profile -[ -f "$XDG_CONFIG_HOME/sh/profile" ] && . "$XDG_CONFIG_HOME/sh/profile" diff --git a/zsh/.zshrc b/zsh/.zshrc deleted file mode 100644 index a00f116..0000000 --- a/zsh/.zshrc +++ /dev/null @@ -1,100 +0,0 @@ -HISTFILE="$ZDOTDIR"/hist -SAVEHIST=1000 -HISTSIZE=1000 -setopt APPEND_HISTORY -setopt HIST_FIND_NO_DUPS -setopt HIST_EXPIRE_DUPS_FIRST -setopt HIST_VERIFY -setopt HIST_IGNORE_DUPS -setopt INC_APPEND_HISTORY -setopt HIST_REDUCE_BLANKS - -_SH="zsh" - -if [ -f "$XDG_CONFIG_HOME"/sh/aliases ]; then - source "$XDG_CONFIG_HOME"/sh/aliases -fi -if [ -f "$XDG_CONFIG_HOME"/sh/functions ]; then - source "$XDG_CONFIG_HOME"/sh/functions -fi - -if [ -n "$ZDOTDIR"/.zshrc -a -f "$ZDOTDIR"/.zshrc ]; then - alias e='source "$ZDOTDIR"/.zshrc' -elif [ -f "$HOME"/.zshrc ]; then - alias e='source ~/.zshrc' -fi - -bindkey "^?" backward-delete-char - -# bindkey -v - -if [ "$TERM" = "st-256color" ] || [ "$TERM" = "xterm-256color" ]; then - function zle-line-init () { echoti smkx } - function zle-line-finish () { echoti rmkx } - - zle -N zle-line-init - zle -N zle-line-finish -fi - -unset COLOR1 -ZSHTHEMERC="${ZDOTDIR:-$HOME}/.zsh_theme" -[ -f "$ZSHTHEMERC" ] && . "$ZSHTHEMERC" - -if [ -z "$COLOR1" ]; then - case "$(whoami)" in - zachir) COLOR1="014" ;; - git) COLOR1="013" ;; - subsonic) COLOR1="012" ;; - *) COLOR1="015" ;; - esac -fi - -MYPROMPT='%B%S%F{'"$COLOR1"'}[%n@%m]:%f%s%F{015}%~%f%S%F{'"$COLOR1"'}%#%f%s%b ' -function zle-line-init zle-keymap-select { - VIM_PROMPT="%B%F{012}[%n@%m]:%f%F{015}%~%f%F{012}%#%f%b " - PS1="${${KEYMAP/vicmd/$VIM_PROMPT}/main/$MYPROMPT}" - #PS1="$PROMPT $KEYMAP" - zle reset-prompt -} - -unset COLOR1 - -zle -N zle-line-init -zle -N zle-keymap-select -export KEYTIMEOUT=1 - -fpath+="$ZDOTDIR/zfunc" - -autoload -Uz compinit promptinit -compinit -d $CONFIG/zcompdump -promptinit -autoload -Uz up-line-or-beginning-search down-line-or-beginning-search -zle -N up-line-or-beginning-search -zle -N down-line-or-beginning-search - -zstyle ':completion:*' menu select -zstyle ':completion::complete:*' gain-privileges 1 -zstyle ':completion:*' rehash true - -setopt COMPLETE_ALIASES -setopt AUTO_CD - -typeset -g -A key - -key[Up]="${terminfo[kcuu1]}" -key[Down]="${terminfo[kcud1]}" -key[Left]="${terminfo[kcub1]}" -key[Right]="${terminfo[kcuf1]}" -key[Shift-Tab]="${terminfo[kcbt]}" -key[Delete]="${terminfo[kdch1]}" - -[[ -n "${key[Up]}" ]] && bindkey -- "${key[Up]}" up-line-or-beginning-search -bindkey -- '^[[A' up-line-or-beginning-search -bindkey -- '^[[B' down-line-or-beginning-search -[[ -n "${key[Down]}" ]] && bindkey -- "${key[Down]}" down-line-or-beginning-search -[[ -n "${key[Left]}" ]] && bindkey -- "${key[Left]}" backward-char -[[ -n "${key[Right]}" ]] && bindkey -- "${key[Right]}" forward-char -[[ -n "${key[Shift-Tab]}" ]] && bindkey -- "${key[Shift-Tab]}" reverse-menu-complete -[[ -n "${key[Delete]}" ]] && bindkey -- "${key[Delete]}" delete-char - -eval "$(_AUTO_CPUFREQ_COMPLETE=zsh_source auto-cpufreq)" diff --git a/zsh/zshenv b/zsh/zshenv new file mode 100644 index 0000000..df0371e --- /dev/null +++ b/zsh/zshenv @@ -0,0 +1,6 @@ +# ZSH SPECIFIC CONFIGS +unset HISTFILE +export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" +export skip_global_compinit=1 +[ -f /etc/profile ] && . /etc/profile +[ -f "$XDG_CONFIG_HOME/sh/profile" ] && . "$XDG_CONFIG_HOME/sh/profile" diff --git a/zsh/zshrc b/zsh/zshrc new file mode 100644 index 0000000..fb5b167 --- /dev/null +++ b/zsh/zshrc @@ -0,0 +1,72 @@ +#zmodload zsh/zprof +if [ -d "$HOME/.zplug" ]; then + export ZPLUG_INSTALLED="y" + source "$HOME/.zplug/init.zsh" +fi +HISTFILE="$XDG_CONFIG_HOME/zsh/hist" +SAVEHIST=1000 +HISTSIZE=1000 +setopt APPEND_HISTORY +setopt HIST_FIND_NO_DUPS +setopt HIST_EXPIRE_DUPS_FIRST +setopt HIST_VERIFY +setopt HIST_IGNORE_DUPS +setopt INC_APPEND_HISTORY +setopt HIST_REDUCE_BLANKS +setopt COMPLETE_ALIASES +setopt AUTO_CD + +_SH="zsh" + +if [ -f "$XDG_CONFIG_HOME"/sh/aliases ]; then + source "$XDG_CONFIG_HOME"/sh/aliases +fi +if [ -f "$XDG_CONFIG_HOME"/sh/functions ]; then + source "$XDG_CONFIG_HOME"/sh/functions +fi + +if [ -f "$XDG_CONFIG_HOME/zsh/zshrc" ]; then + alias e='source "$XDG_CONFIG_HOME/zsh/zshrc"' +elif [ -f "$XDG_CONFIG_HOME/zshrc" ]; then + alias e='source "$XDG_CONFIG_HOME/zshrc"' +elif [ -f "$HOME"/.zshrc ]; then + alias e='source ~/.zshrc' +fi + +bindkey -v + +MYPROMPT=$'%B%S%F{002}[%n@%m]%s\UE0B0%F{015}%~%S%F{002}\UE0B0%#%s\UE0B0%f%k%b ' +function zle-line-init zle-keymap-select { + VIM_PROMPT=$'%B%S%F{012}[%n@%m]%s\UE0B0%F{015}%~%S%F{012}\UE0B0%#%s\UE0B0%f%k%b ' + PS1="${${KEYMAP/vicmd/$VIM_PROMPT}/main/$MYPROMPT}" + zle reset-prompt +} + +zle -N zle-line-init +zle -N zle-keymap-select +export KEYTIMEOUT=1 + +fpath+="$XDG_CONFIG_HOME/zsh/zfunc" + +if [ -n "$ZPLUG_INSTALLED" ]; then + # zsh history substring search + zplug "zsh-users/zsh-history-substring-search", as:plugin + + bindkey '^[[A' history-substring-search-up + bindkey '^[[B' history-substring-search-down + bindkey -M vicmd '^[[A' history-substring-search-up + bindkey -M vicmd '^[[B' history-substring-search-down + bindkey -M vicmd 'k' history-substring-search-up + bindkey -M vicmd 'j' history-substring-search-down + + # zsh syntax highlighting + zplug "zsh-users/zsh-syntax-highlighting", defer:2 + + # load zsh plugins + zplug load +fi + +autoload -Uz compinit +compinit + +#zprof -- cgit v1.2.3 From 461c7af7ef31feb1db7e39762011ca0e54242d76 Mon Sep 17 00:00:00 2001 From: ZachIR Date: Sat, 18 Jan 2025 23:41:09 -0600 Subject: Remove kitty close confirmation This confirmation would prompt even if only the shell was open; not anymore. --- kitty/kitty.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kitty/kitty.conf b/kitty/kitty.conf index ceeaf72..540419a 100644 --- a/kitty/kitty.conf +++ b/kitty/kitty.conf @@ -879,7 +879,7 @@ resize_draw_strategy static #: insensitive, from the set [0-9A-Z]. Specify your preference as a #: string of characters. -# confirm_os_window_close -1 +confirm_os_window_close 0 #: Ask for confirmation when closing an OS window or a tab with at #: least this number of kitty windows in it by window manager (e.g. -- cgit v1.2.3 From 529347c99a6e43f2d24e5d9020ed76abd840da91 Mon Sep 17 00:00:00 2001 From: zachir Date: Mon, 20 Jan 2025 01:55:34 -0600 Subject: Comment out vim latex preview autocmds This should be done manually, especially as every time you change to a different tab and change back causes another preview window to open. --- vim/vimrc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vim/vimrc b/vim/vimrc index 6b64279..cdf9b33 100644 --- a/vim/vimrc +++ b/vim/vimrc @@ -207,7 +207,7 @@ autocmd BufWinEnter * if getcmdwintype() == '' | silent NERDTreeMirror | endif " custom augroup {{{ augroup custom autocmd! - au BufEnter *.tex :LLPStartPreview + "au BufEnter *.tex :LLPStartPreview au BufEnter *.md :set textwidth=80 au BufEnter *.ms :set textwidth=80 "au BufEnter *.c :colo DevC++ @@ -217,7 +217,7 @@ augroup custom "au BufEnter *.cpp :colo DevC++ "au BufEnter *.hpp :colo DevC++ au BufWritePost init.vim :source % - au BufWritePost *.tex :make + "au BufWritePost *.tex :make au BufWritePost *sxhkdrc* :!pkill -USR1 -x sxhkd au BufWritePost .Xresources :!xrdb ~/.Xresources au BufWritePost .gitignore :!git add .gitignore -- cgit v1.2.3 From e12c367f1509eb570c78a19020fce02d769d5c49 Mon Sep 17 00:00:00 2001 From: zachir Date: Mon, 20 Jan 2025 01:59:58 -0600 Subject: Don't swallow vim child windows in Hyprland Vim Latex Live Preview opens Zathura as my preview window, this should not swallow. --- hypr/hyprland.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 097aa8a..7b621e0 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -100,7 +100,7 @@ misc { disable_splash_rendering = true enable_swallow = true swallow_regex = ^(kitty)$ - swallow_exception_regex = ^(.*ueberzug)$ + swallow_exception_regex = ^(.*ueberzug|vim .*)$ vfr = true vrr = 1 } -- cgit v1.2.3 From b3272c366969eae34b4737e88f83332dd49e3297 Mon Sep 17 00:00:00 2001 From: zachir Date: Mon, 20 Jan 2025 02:01:38 -0600 Subject: Comment out LLPreview in nvim It only works on Vim anyways. --- nvim/init.vim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvim/init.vim b/nvim/init.vim index 42fe34d..d27d9d4 100644 --- a/nvim/init.vim +++ b/nvim/init.vim @@ -190,7 +190,7 @@ autocmd BufWinEnter * if getcmdwintype() == '' | silent NERDTreeMirror | endif " custom augroup {{{ augroup custom autocmd! - au BufEnter *.tex :LLPStartPreview + "au BufEnter *.tex :LLPStartPreview au BufEnter *.md :set textwidth=80 au BufEnter *.ms :set textwidth=80 "au BufEnter *.c :colo DevC++ @@ -200,7 +200,7 @@ augroup custom "au BufEnter *.cpp :colo DevC++ "au BufEnter *.hpp :colo DevC++ au BufWritePost init.vim :source % - au BufWritePost *.tex :make + "au BufWritePost *.tex :make au BufWritePost *sxhkdrc* :!pkill -USR1 -x sxhkd au BufWritePost .Xresources :!xrdb ~/.Xresources au BufWritePost .gitignore :!git add .gitignore -- cgit v1.2.3 From 9577f519444ae241a71a126f61dbe3a3ddcba0b8 Mon Sep 17 00:00:00 2001 From: zachir Date: Mon, 20 Jan 2025 16:18:04 -0600 Subject: Extend hyprland no swallow regex to include nvim This should match either vim or nvim, as I figured out why LLP wasn't working in nvim for me. --- hypr/hyprland.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 7b621e0..c4b05c0 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -100,7 +100,7 @@ misc { disable_splash_rendering = true enable_swallow = true swallow_regex = ^(kitty)$ - swallow_exception_regex = ^(.*ueberzug|vim .*)$ + swallow_exception_regex = ^(.*ueberzug|n?vim .*)$ vfr = true vrr = 1 } -- cgit v1.2.3 From c1e2ed7f2bbef1879093c19ddd79787b3d671aff Mon Sep 17 00:00:00 2001 From: zachir Date: Mon, 20 Jan 2025 16:19:05 -0600 Subject: Set kitty tab-bar style to powerline I think it fits in better with my system than fade. --- kitty/kitty.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kitty/kitty.conf b/kitty/kitty.conf index 540419a..55b72c8 100644 --- a/kitty/kitty.conf +++ b/kitty/kitty.conf @@ -913,7 +913,7 @@ confirm_os_window_close 0 #: The second number is the margin between the tab bar and the #: contents of the current tab. -# tab_bar_style fade +tab_bar_style powerline #: The tab bar style, can be one of: -- cgit v1.2.3 From 021b916382f129d8e95a5070fbbf466a05c2582a Mon Sep 17 00:00:00 2001 From: zachir Date: Mon, 20 Jan 2025 16:19:53 -0600 Subject: Use the same config for both vim and nvim This was already taken care of in the config, I'm not sure why I didn't do this at the time. --- nvim/init.vim | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/nvim/init.vim b/nvim/init.vim index d27d9d4..cdf9b33 100644 --- a/nvim/init.vim +++ b/nvim/init.vim @@ -1,3 +1,20 @@ +set runtimepath^=$XDG_CONFIG_HOME/vim +set runtimepath+=$XDG_DATA_HOME/vim +set runtimepath+=$XDG_CONFIG_HOME/vim/after + +set packpath^=$XDG_DATA_HOME/vim,$XDG_CONFIG_HOME/vim +set packpath+=$XDG_CONFIG_HOME/vim/after,$XDG_DATA_HOME/vim/after + +let g:netrw_home = $XDG_DATA_HOME."/vim" +call mkdir($XDG_DATA_HOME."/vim/spell", 'p') + +set backupdir=$XDG_STATE_HOME/vim/backup | call mkdir(&backupdir, 'p') +set directory=$XDG_STATE_HOME/vim/swap | call mkdir(&directory, 'p') +set undodir=$XDG_STATE_HOME/vim/undo | call mkdir(&undodir, 'p') +set viewdir=$XDG_STATE_HOME/vim/view | call mkdir(&viewdir, 'p') + +if !has('nvim') | set viminfofile=$XDG_STATE_HOME/vim/viminfo | endif + " vimplugs {{{ call plug#begin('~/.config/nvim/plugged') " colorschemes {{{ -- cgit v1.2.3 From 8dd9c87d4d8c2f35f7ef26fe19d3330235abdfb7 Mon Sep 17 00:00:00 2001 From: zachir Date: Mon, 20 Jan 2025 16:20:22 -0600 Subject: Use the Dark2 vim theme instead of 256-grayvim --- nvim/init.vim | 2 +- vim/vimrc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/nvim/init.vim b/nvim/init.vim index cdf9b33..812bf3e 100644 --- a/nvim/init.vim +++ b/nvim/init.vim @@ -62,7 +62,7 @@ set showmatch " Highlight matching brace set number set relativenumber -colorscheme 256-grayvim +colorscheme Dark2 set hlsearch " Highlight all search results set smartcase " Enable smart-case search diff --git a/vim/vimrc b/vim/vimrc index cdf9b33..812bf3e 100644 --- a/vim/vimrc +++ b/vim/vimrc @@ -62,7 +62,7 @@ set showmatch " Highlight matching brace set number set relativenumber -colorscheme 256-grayvim +colorscheme Dark2 set hlsearch " Highlight all search results set smartcase " Enable smart-case search -- cgit v1.2.3 From 95d509eeaba97aa0a35bb8c42225495e69d3a2c1 Mon Sep 17 00:00:00 2001 From: ZachIR Date: Tue, 21 Jan 2025 19:11:45 -0600 Subject: Use zkbd for zsh keybindings --- zsh/zshrc | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/zsh/zshrc b/zsh/zshrc index fb5b167..c95feb3 100644 --- a/zsh/zshrc +++ b/zsh/zshrc @@ -33,7 +33,16 @@ elif [ -f "$HOME"/.zshrc ]; then alias e='source ~/.zshrc' fi +source ~/.zkbd/$TERM-${${DISPLAY:t}:-$VENDOR-$OSTYPE} + +#autoload zkbd; zkbd bindkey -v +bindkey "${key[Backspace]}" backward-delete-char +bindkey "${key[Delete]}" delete-char +bindkey "${key[Home]}" beginning-of-line +bindkey "${key[End]}" end-of-line +bindkey "${key[PageUp]}" history-substring-search-up +bindkey "${key[PageDown]}" history-substring-search-down MYPROMPT=$'%B%S%F{002}[%n@%m]%s\UE0B0%F{015}%~%S%F{002}\UE0B0%#%s\UE0B0%f%k%b ' function zle-line-init zle-keymap-select { @@ -52,10 +61,10 @@ if [ -n "$ZPLUG_INSTALLED" ]; then # zsh history substring search zplug "zsh-users/zsh-history-substring-search", as:plugin - bindkey '^[[A' history-substring-search-up - bindkey '^[[B' history-substring-search-down - bindkey -M vicmd '^[[A' history-substring-search-up - bindkey -M vicmd '^[[B' history-substring-search-down + bindkey '${key[Up]}' history-substring-search-up + bindkey '${key[Down]}' history-substring-search-down + bindkey -M vicmd '${key[Up]}' history-substring-search-up + bindkey -M vicmd '${key[Down]}' history-substring-search-down bindkey -M vicmd 'k' history-substring-search-up bindkey -M vicmd 'j' history-substring-search-down -- cgit v1.2.3 From a9be74adf57403f7840d09f7a0081b6390864d5a Mon Sep 17 00:00:00 2001 From: ZachIR Date: Tue, 21 Jan 2025 19:12:56 -0600 Subject: Change zsh prompt to have <~> for powerline --- zsh/zshrc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zsh/zshrc b/zsh/zshrc index c95feb3..0d6ecd5 100644 --- a/zsh/zshrc +++ b/zsh/zshrc @@ -44,9 +44,9 @@ bindkey "${key[End]}" end-of-line bindkey "${key[PageUp]}" history-substring-search-up bindkey "${key[PageDown]}" history-substring-search-down -MYPROMPT=$'%B%S%F{002}[%n@%m]%s\UE0B0%F{015}%~%S%F{002}\UE0B0%#%s\UE0B0%f%k%b ' +MYPROMPT=$'%B%S%F{002}[%n@%m]\UE0B2%F{015}%s%~%S%F{002}\UE0B0%#%s\UE0B0%f%k%b ' function zle-line-init zle-keymap-select { - VIM_PROMPT=$'%B%S%F{012}[%n@%m]%s\UE0B0%F{015}%~%S%F{012}\UE0B0%#%s\UE0B0%f%k%b ' + VIM_PROMPT=$'%B%S%F{012}[%n@%m]\UE0B2%F{015}%s%~%S%F{012}\UE0B0%#%s\UE0B0%f%k%b ' PS1="${${KEYMAP/vicmd/$VIM_PROMPT}/main/$MYPROMPT}" zle reset-prompt } -- cgit v1.2.3 From c654a8e82f10440551c2fec536c116000b7a6fe6 Mon Sep 17 00:00:00 2001 From: ZachIR Date: Tue, 21 Jan 2025 19:14:14 -0600 Subject: Set gtk, icon, and mouse themes GTK Theme is now darkest/white, icon theme is COSMIC, and mouse theme is BreezeX-Black. --- gtk-2.0/gtkrc | 6 +++--- gtk-3.0/settings.ini | 6 +++--- hypr/hyprland.conf | 4 ++-- xsettingsd/xsettingsd.conf | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/gtk-2.0/gtkrc b/gtk-2.0/gtkrc index 6ae8019..6a23e8c 100644 --- a/gtk-2.0/gtkrc +++ b/gtk-2.0/gtkrc @@ -1,11 +1,11 @@ # DO NOT EDIT! This file will be overwritten by nwg-look. # Any customization should be done in ~/.gtkrc-2.0.mine instead. -gtk-theme-name="Flat-Remix-GTK-Green-Darkest-Solid" -gtk-icon-theme-name="Mint-X" +gtk-theme-name="Flat-Remix-GTK-White-Darkest-Solid" +gtk-icon-theme-name="Cosmic" gtk-font-name="Cantarell 11" gtk-cursor-theme-name="BreezeX-Black" -gtk-cursor-theme-size=24 +gtk-cursor-theme-size=32 gtk-toolbar-style=GTK_TOOLBAR_ICONS gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR gtk-button-images=0 diff --git a/gtk-3.0/settings.ini b/gtk-3.0/settings.ini index 33306a4..f876bba 100644 --- a/gtk-3.0/settings.ini +++ b/gtk-3.0/settings.ini @@ -1,9 +1,9 @@ [Settings] -gtk-theme-name=Flat-Remix-GTK-Green-Darkest-Solid -gtk-icon-theme-name=Mint-X +gtk-theme-name=Flat-Remix-GTK-White-Darkest-Solid +gtk-icon-theme-name=Cosmic gtk-font-name=Cantarell 11 gtk-cursor-theme-name=BreezeX-Black -gtk-cursor-theme-size=24 +gtk-cursor-theme-size=32 gtk-toolbar-style=GTK_TOOLBAR_ICONS gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR gtk-button-images=0 diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index c4b05c0..afef32a 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -20,7 +20,7 @@ exec-once = pypr exec-once = lxqt-policykit-agent exec-once = import-gsettings gtk-theme 'Flat-Remix-GTK-Green-Darkest-Solid' exec-once = import-gsettings icon-theme 'Mint-X-Grey' -exec-once = import-gsettings cursor-theme 'Breeze' +exec-once = import-gsettings cursor-theme 'BreezeX-Black' exec-once = xrdb -load "$XDG_CONFIG_HOME"/X11/xresources exec-once = com.github.wwmm.easyeffects exec-once = systemctl --user start dunst @@ -30,7 +30,7 @@ exec-once = systemctl --user start hypridle #{{{ env # Environment variables set at launch -env = HYPRCURSOR_THEME,BreezeHypr +env = HYPRCURSOR_THEME,theme_BreezeX-Black env = HYPRCURSOR_SIZE,32 env = XCURSOR_THEME,BreezeX-Black env = XCURSOR_SIZE,32 diff --git a/xsettingsd/xsettingsd.conf b/xsettingsd/xsettingsd.conf index 27d09c3..c1e323c 100644 --- a/xsettingsd/xsettingsd.conf +++ b/xsettingsd/xsettingsd.conf @@ -1,5 +1,5 @@ -Net/ThemeName "Flat-Remix-GTK-Green-Darkest-Solid" -Net/IconThemeName "Mint-X" +Net/ThemeName "Flat-Remix-GTK-White-Darkest-Solid" +Net/IconThemeName "Cosmic" Gtk/CursorThemeName "BreezeX-Black" Net/EnableEventSounds 1 EnableInputFeedbackSounds 0 -- cgit v1.2.3 From b01aba07be1052b901f3bd4df5a4512e230805fe Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 21 Jan 2025 20:55:02 -0600 Subject: Fix F1 behavior on kitty It was previously mapped to something for some reason; it is no longer so. --- kitty/kitty.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kitty/kitty.conf b/kitty/kitty.conf index 55b72c8..095607b 100644 --- a/kitty/kitty.conf +++ b/kitty/kitty.conf @@ -1833,7 +1833,7 @@ map kitty_mod+g show_last_command_output #:: map f1 launch --stdin-source=@last_cmd_output --stdin-add-formatting --type=overlay less +G -R -map f1 launch --stdin-source=@last_cmd_output --type=background wl-copy +#:: map f1 launch --stdin-source=@last_cmd_output --type=background wl-copy #:: To get the output of the first command on the screen, use #:: @first_cmd_output_on_screen. To get the output of the last jumped -- cgit v1.2.3 From 695fcfe3d77d8ce3d07a609ded2f6deab5946433 Mon Sep 17 00:00:00 2001 From: zachir Date: Tue, 21 Jan 2025 20:55:47 -0600 Subject: Update .gitignore from cla --- .gitignore | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.gitignore b/.gitignore index f22368b..bb74ea4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +5DB5/ +5db5/ abook/ Applied Computer Music Technologies/ AHM 5050 v3/ @@ -7,6 +9,7 @@ Amp Locker/ Amp Locker.settings amsynth/ ardour*/ +audacity/ Audio Assault/ autostart/ Binance/ @@ -36,6 +39,7 @@ computerrc computerrc.sh configstore/ cordless/config.json +cosmic/ dconf/ dde-printer.ini DELTARUNE/ @@ -64,6 +68,7 @@ ghb/ GIMP/ git/ glib-2.0/ +glow/ gnome-control-center/ gnome-initial-setup-done gnome-session/ @@ -75,6 +80,7 @@ gtk-2.0/* !gtk-2.0/gtkrc gtk-3.0/* !gtk-3.0/settings.ini +gtk-4.0/ guitarix/ Hellbeast v2/ Hellbeast v2.settings @@ -124,6 +130,7 @@ lkjb/ lsp-plugins/ lutris/ lxqt/ +MangoHud/ menus/ mgba/ micro/buffers/ @@ -192,6 +199,7 @@ protonmail/ protonvpn/ pulse/ pupgui/ +qobuz-dl/ qrcp/ qt5ct/* !qt5ct/qt5ct.conf @@ -204,6 +212,7 @@ qutebrowser/jmatrix-rules r2modman/ r2modmanPlus-local/ raveloxmidi/ +razergenie/ rclone/ ReAmp Studio R1/ ReAmp Studio R1.settings @@ -225,11 +234,14 @@ Serenity/ Session/ Shibalba EXEX.settings sh/weather +SNAPSHOT PLAYER/ snownews/urls.opml solaar/ +sonobus/ spotifyd/ spotify-tui/ straw-viewer/ +strawberry/ subversion/ SUPERHOT/ suyu/ @@ -257,6 +269,7 @@ UNDERTALE*/ unity3d/ Valve Corporation/ vdirsyncer/ +vkBasalt/ VeraCrypt/ vim/* !vim/vimrc -- cgit v1.2.3 From dd88548e55fc05f2b9dff855143e87141690b42a Mon Sep 17 00:00:00 2001 From: ZachIR Date: Thu, 23 Jan 2025 14:17:04 -0600 Subject: Fix zsh search bindkeys They used single quotes, but needed to be double quotes. --- zsh/zshrc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/zsh/zshrc b/zsh/zshrc index 0d6ecd5..4c633ee 100644 --- a/zsh/zshrc +++ b/zsh/zshrc @@ -61,12 +61,12 @@ if [ -n "$ZPLUG_INSTALLED" ]; then # zsh history substring search zplug "zsh-users/zsh-history-substring-search", as:plugin - bindkey '${key[Up]}' history-substring-search-up - bindkey '${key[Down]}' history-substring-search-down - bindkey -M vicmd '${key[Up]}' history-substring-search-up - bindkey -M vicmd '${key[Down]}' history-substring-search-down - bindkey -M vicmd 'k' history-substring-search-up - bindkey -M vicmd 'j' history-substring-search-down + bindkey "${key[Up]}" history-substring-search-up + bindkey "${key[Down]}" history-substring-search-down + bindkey -M vicmd "${key[Up]}" history-substring-search-up + bindkey -M vicmd "${key[Down]}" history-substring-search-down + bindkey -M vicmd "k" history-substring-search-up + bindkey -M vicmd "j" history-substring-search-down # zsh syntax highlighting zplug "zsh-users/zsh-syntax-highlighting", defer:2 -- cgit v1.2.3 From e3cde1579bbc9e07c0afc71084c9b5e83adf4ed7 Mon Sep 17 00:00:00 2001 From: ZachIR Date: Thu, 23 Jan 2025 14:19:01 -0600 Subject: Un-bold the zsh prompt (fixes issue in some terms) Namely cool-retro-term doesn't like bolded powerline symbols. --- zsh/zshrc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zsh/zshrc b/zsh/zshrc index 4c633ee..9acd42f 100644 --- a/zsh/zshrc +++ b/zsh/zshrc @@ -44,9 +44,9 @@ bindkey "${key[End]}" end-of-line bindkey "${key[PageUp]}" history-substring-search-up bindkey "${key[PageDown]}" history-substring-search-down -MYPROMPT=$'%B%S%F{002}[%n@%m]\UE0B2%F{015}%s%~%S%F{002}\UE0B0%#%s\UE0B0%f%k%b ' +MYPROMPT=$'%S%F{002}[%n@%m]\UE0B2%F{015}%s%~%S%F{002}\UE0B0%#%s\UE0B0%f ' function zle-line-init zle-keymap-select { - VIM_PROMPT=$'%B%S%F{012}[%n@%m]\UE0B2%F{015}%s%~%S%F{012}\UE0B0%#%s\UE0B0%f%k%b ' + VIM_PROMPT=$'%S%F{012}[%n@%m]\UE0B2%F{015}%s%~%S%F{012}\UE0B0%#%s\UE0B0%f ' PS1="${${KEYMAP/vicmd/$VIM_PROMPT}/main/$MYPROMPT}" zle reset-prompt } -- cgit v1.2.3 From 18450042569408f80694a252dd17b7d1d22ecbfb Mon Sep 17 00:00:00 2001 From: ZachIR Date: Fri, 28 Feb 2025 11:29:23 -0600 Subject: Fix gtk and qt theming Also set the theme back to green instead of white --- gtk-2.0/gtkrc | 2 +- gtk-3.0/settings.ini | 18 ++---------------- qt5ct/qt5ct.conf | 14 +++++++------- qt6ct/qt6ct.conf | 8 ++++---- sh/profile | 2 +- xsettingsd/xsettingsd.conf | 2 +- 6 files changed, 16 insertions(+), 30 deletions(-) diff --git a/gtk-2.0/gtkrc b/gtk-2.0/gtkrc index 6a23e8c..3c97dc3 100644 --- a/gtk-2.0/gtkrc +++ b/gtk-2.0/gtkrc @@ -1,7 +1,7 @@ # DO NOT EDIT! This file will be overwritten by nwg-look. # Any customization should be done in ~/.gtkrc-2.0.mine instead. -gtk-theme-name="Flat-Remix-GTK-White-Darkest-Solid" +gtk-theme-name="Flat-Remix-GTK-Green-Darkest" gtk-icon-theme-name="Cosmic" gtk-font-name="Cantarell 11" gtk-cursor-theme-name="BreezeX-Black" diff --git a/gtk-3.0/settings.ini b/gtk-3.0/settings.ini index f876bba..87b4543 100644 --- a/gtk-3.0/settings.ini +++ b/gtk-3.0/settings.ini @@ -1,17 +1,3 @@ [Settings] -gtk-theme-name=Flat-Remix-GTK-White-Darkest-Solid -gtk-icon-theme-name=Cosmic -gtk-font-name=Cantarell 11 -gtk-cursor-theme-name=BreezeX-Black -gtk-cursor-theme-size=32 -gtk-toolbar-style=GTK_TOOLBAR_ICONS -gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR -gtk-button-images=0 -gtk-menu-images=0 -gtk-enable-event-sounds=1 -gtk-enable-input-feedback-sounds=0 -gtk-xft-antialias=1 -gtk-xft-hinting=1 -gtk-xft-hintstyle=hintslight -gtk-xft-rgba=rgb -gtk-application-prefer-dark-theme=0 +gtk-cursor-theme-name = BreezeX-Black +gtk-cursor-theme-size = 32 diff --git a/qt5ct/qt5ct.conf b/qt5ct/qt5ct.conf index 516eaab..964da53 100644 --- a/qt5ct/qt5ct.conf +++ b/qt5ct/qt5ct.conf @@ -1,13 +1,13 @@ [Appearance] -color_scheme_path=/usr/share/qt5ct/colors/darker.conf -custom_palette=false -icon_theme=Mint-X-Grey -standard_dialogs=xdgdesktopportal +color_scheme_path=/home/zachir/.config/qt5ct/style-colors.conf +custom_palette=true +icon_theme=Cosmic +standard_dialogs=gtk2 style=gtk2 [Fonts] -fixed=@Variant(\0\0\0@\0\0\0\x1e\0\x44\0\x65\0j\0\x61\0V\0u\0 \0L\0G\0\x43\0 \0S\0\x61\0n\0s@(\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10) -general=@Variant(\0\0\0@\0\0\0\x1e\0\x44\0\x65\0j\0\x61\0V\0u\0 \0L\0G\0\x43\0 \0S\0\x61\0n\0s@(\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10) +fixed="DejaVu LGC Sans,12,-1,5,50,0,0,0,0,0" +general="DejaVu LGC Sans,12,-1,5,50,0,0,0,0,0" [Interface] activate_item_on_single_click=1 @@ -25,7 +25,7 @@ underline_shortcut=1 wheel_scroll_lines=3 [SettingsWindow] -geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x1\x95\0\0\0\xfb\0\0\x5\x45\0\0\x3\x93\0\0\x1\x96\0\0\0\xfc\0\0\x5\x44\0\0\x3\x92\0\0\0\0\0\0\0\0\a\x80\0\0\x1\x96\0\0\0\xfc\0\0\x5\x44\0\0\x3\x92) +geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0H\0\0\x2T\0\0\x3\xdb\0\0\x4/\0\0\0H\0\0\x2T\0\0\x3\xdb\0\0\x4/\0\0\0\0\0\0\0\0\a\x80\0\0\0H\0\0\x2T\0\0\x3\xdb\0\0\x4/) [Troubleshooting] force_raster_widgets=1 diff --git a/qt6ct/qt6ct.conf b/qt6ct/qt6ct.conf index 810fb94..5d9a12c 100644 --- a/qt6ct/qt6ct.conf +++ b/qt6ct/qt6ct.conf @@ -1,8 +1,8 @@ [Appearance] color_scheme_path=/usr/share/qt6ct/colors/airy.conf custom_palette=false -icon_theme=Mint-X -standard_dialogs=xdgdesktopportal +icon_theme=Cosmic +standard_dialogs=gtk2 style=qt6gtk2 [Fonts] @@ -12,7 +12,7 @@ general="DejaVu LGC Sans,12,-1,5,400,0,0,0,0,0,0,0,0,0,0,1" [Interface] activate_item_on_single_click=1 buttonbox_layout=0 -cursor_flash_time=1000 +cursor_flash_time=1200 dialog_buttons_have_icons=1 double_click_interval=400 gui_effects=@Invalid() @@ -25,7 +25,7 @@ underline_shortcut=1 wheel_scroll_lines=3 [SettingsWindow] -geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x3\x42\0\0\x3\xe7\0\0\0\0\0\0\0\0\0\0\x2\xde\0\0\x2\x46\0\0\0\0\x2\0\0\0\a\x80\0\0\0\0\0\0\0\0\0\0\x3\x42\0\0\x3\xe7) +geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\xff\xff\xff\xfd\xff\xff\xff\xe2\0\0\a<\0\0\x3\xf9\0\0\0\0\0\0\0\0\0\0\a9\0\0\x3\xf6\0\0\0\0\x2\0\0\0\a\x80\0\0\0\0\0\0\0\0\0\0\a9\0\0\x3\xf6) [Troubleshooting] force_raster_widgets=1 diff --git a/sh/profile b/sh/profile index b83d012..55657fa 100644 --- a/sh/profile +++ b/sh/profile @@ -63,7 +63,7 @@ export GDK_SCALE=1 export GDK_DPI_SCALE=1 # Theming -export QT_QPA_PLATFORMTHEME=qt5ct +export QT_QPA_PLATFORMTHEME=qt6ct # Fix wayland stuff export MOZ_ENABLE_WAYLAND=1 diff --git a/xsettingsd/xsettingsd.conf b/xsettingsd/xsettingsd.conf index c1e323c..e762fa9 100644 --- a/xsettingsd/xsettingsd.conf +++ b/xsettingsd/xsettingsd.conf @@ -1,4 +1,4 @@ -Net/ThemeName "Flat-Remix-GTK-White-Darkest-Solid" +Net/ThemeName "Flat-Remix-GTK-Green-Darkest" Net/IconThemeName "Cosmic" Gtk/CursorThemeName "BreezeX-Black" Net/EnableEventSounds 1 -- cgit v1.2.3 From 5bfc5fde04608fe51beb3487756d110f95e92d43 Mon Sep 17 00:00:00 2001 From: ZachIR Date: Fri, 28 Feb 2025 11:31:04 -0600 Subject: Disable hyprland logs For now, at least. --- hypr/hyprland.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index afef32a..a8a0cb3 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -41,8 +41,8 @@ env = XCURSOR_SIZE,32 # Debug {{{ debug { - enable_stdout_logs = true - disable_logs = false + enable_stdout_logs = false + disable_logs = true } # }}} -- cgit v1.2.3 From fdf4bbf3a585c60a18df446361a24dae4c352d6e Mon Sep 17 00:00:00 2001 From: ZachIR Date: Fri, 28 Feb 2025 11:32:07 -0600 Subject: Fix lf image preview (ctpv broke) --- lf/lfrc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lf/lfrc b/lf/lfrc index 19c6051..32c9a10 100644 --- a/lf/lfrc +++ b/lf/lfrc @@ -1,9 +1,8 @@ set ratios 1:2:3 -set cleaner ctpvclear -set previewer ctpv -&ctpv -s $id . -&ctpvquit $id +set previewer ~/.config/lf/previewer +set cleaner ~/.config/lf/cleaner # Basic Settings +set sixel true set preview true set drawbox false set icons true -- cgit v1.2.3 From 4338d5c6a527249bd5bbfe797cba9ff4d0ddd8ac Mon Sep 17 00:00:00 2001 From: ZachIR Date: Fri, 28 Feb 2025 11:33:16 -0600 Subject: Add command_not_found handle for distrobox --- sh/profile | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/sh/profile b/sh/profile index 55657fa..ff237a1 100644 --- a/sh/profile +++ b/sh/profile @@ -130,3 +130,17 @@ addtopath "/var/lib/flatpak/exports/bin" unset -f addtopath unset USERPATH unset PATHS + +command_not_found_handle() { +# don't run if not in a container + if [ ! -e /run/.containerenv ] && [ ! -e /.dockerenv ]; then + exit 127 + fi + + distrobox-host-exec "${@}" +} +if [ -n "${ZSH_VERSION-}" ]; then + command_not_found_handler() { + command_not_found_handle "$@" + } +fi -- cgit v1.2.3 From 2b36d09d26eccaaee4d5d136c8837d405be7466f Mon Sep 17 00:00:00 2001 From: ZachIR Date: Fri, 28 Feb 2025 11:34:14 -0600 Subject: Fix tofi colors --- tofi/themes/colors | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tofi/themes/colors b/tofi/themes/colors index a5f480c..047c875 100644 --- a/tofi/themes/colors +++ b/tofi/themes/colors @@ -1,10 +1,10 @@ background-color = #000000 -outline-color = #39c1ed -border-color = #39c1ed +outline-color = #198844 +border-color = #198844 text-color = #ffffff -prompt-color = #39c1ed +prompt-color = #198844 prompt-background = #000000 -placeholder-color = #39c1ed +placeholder-color = #198844 placeholder-background = #000000 input-color = #ffffff input-background = #000000 @@ -12,6 +12,6 @@ default-result-background = #000000 alternate-result-color = #ffffff alternate-result-background = #000000 selection-color = #000000 -selection-match-color = #198844 -selection-background = #39c1ed +selection-match-color = #39c1ed +selection-background = #198844 -- cgit v1.2.3 From 26b810065268e1ed77a2552ab50e99d53f558d23 Mon Sep 17 00:00:00 2001 From: ZachIR Date: Fri, 28 Feb 2025 11:34:45 -0600 Subject: Set default portal to gtk, add darkman --- xdg-desktop-portal/portals.conf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/xdg-desktop-portal/portals.conf b/xdg-desktop-portal/portals.conf index faadd46..b1a274e 100644 --- a/xdg-desktop-portal/portals.conf +++ b/xdg-desktop-portal/portals.conf @@ -1,3 +1,4 @@ [preferred] default=hyprland -org.freedesktop.impl.portal.FileChooser=lxqt +org.freedesktop.impl.portal.FileChooser=gtk +org.freedesktop.impl.portal.Settings=darkman -- cgit v1.2.3 From 2b4b5745869068693f04a6645f7ed1c01a7b093a Mon Sep 17 00:00:00 2001 From: ZachIR Date: Fri, 28 Feb 2025 11:35:19 -0600 Subject: Add darkman config file --- darkman/config.yaml | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 darkman/config.yaml diff --git a/darkman/config.yaml b/darkman/config.yaml new file mode 100644 index 0000000..5cf7ee4 --- /dev/null +++ b/darkman/config.yaml @@ -0,0 +1,3 @@ +usegeoclue: false +dbusserver: true +portal: true -- cgit v1.2.3 From 5f56eaf9d37a1f34c0e0ef27dbee20db644d6f0a Mon Sep 17 00:00:00 2001 From: ZachIR Date: Fri, 28 Feb 2025 11:35:45 -0600 Subject: Add tofi configs for cosmic --- tofi/colors | 17 +++++++++++++++++ tofi/cosmic | 22 ++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 tofi/colors create mode 100644 tofi/cosmic diff --git a/tofi/colors b/tofi/colors new file mode 100644 index 0000000..a5f480c --- /dev/null +++ b/tofi/colors @@ -0,0 +1,17 @@ +background-color = #000000 +outline-color = #39c1ed +border-color = #39c1ed +text-color = #ffffff +prompt-color = #39c1ed +prompt-background = #000000 +placeholder-color = #39c1ed +placeholder-background = #000000 +input-color = #ffffff +input-background = #000000 +default-result-background = #000000 +alternate-result-color = #ffffff +alternate-result-background = #000000 +selection-color = #000000 +selection-match-color = #198844 +selection-background = #39c1ed + diff --git a/tofi/cosmic b/tofi/cosmic new file mode 100644 index 0000000..9a5b4be --- /dev/null +++ b/tofi/cosmic @@ -0,0 +1,22 @@ +include = "themes/colors" + +hidden-character = "*" +anchor = top +width = 100% +height = 32 +horizontal = true +font-size = 18 +prompt-text = "" +font = Fira Code Nerd Font Mono +outline-width = 0 +border-width = 0 +min-input-width = 424 +result-spacing = 15 +padding-top = 0 +padding-bottom = 0 +padding-left = 0 +padding-right = 0 +history = false +selection-background-padding = 12 +result-spacing = 24 +require-match=false -- cgit v1.2.3 From 048d640a5cfac9f2dc010bdf26790eb2dc30f67f Mon Sep 17 00:00:00 2001 From: ZachIR Date: Fri, 28 Feb 2025 11:36:26 -0600 Subject: Set xcursor theme --- environment.d/cursor.conf | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 environment.d/cursor.conf diff --git a/environment.d/cursor.conf b/environment.d/cursor.conf new file mode 100644 index 0000000..9b9ef2b --- /dev/null +++ b/environment.d/cursor.conf @@ -0,0 +1,2 @@ +XCURSOR_THEME=BreezeX-Black +XCURSOR_SIZE=32 -- cgit v1.2.3 From a4e6a837c6edc8f1c2ea8f714ce84f61a3629715 Mon Sep 17 00:00:00 2001 From: ZachIR Date: Fri, 28 Feb 2025 11:40:17 -0600 Subject: Add handlr config --- handlr/handlr.toml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 handlr/handlr.toml diff --git a/handlr/handlr.toml b/handlr/handlr.toml new file mode 100644 index 0000000..58e04ba --- /dev/null +++ b/handlr/handlr.toml @@ -0,0 +1,4 @@ +enable_selector = false +selector = "tofi -c ~/.conifg/tofi/cosmic --prompt-text 'Open With: '" +term_exec_args = '-e' +expand_wildcards = false -- cgit v1.2.3 From 5f057879086ec863dbcbadcb2cfdcc61a68a62ce Mon Sep 17 00:00:00 2001 From: ZachIR Date: Fri, 28 Feb 2025 11:40:36 -0600 Subject: Add cleaner and preview to fix lf --- lf/cleaner | 2 ++ lf/previewer | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100755 lf/cleaner create mode 100755 lf/previewer diff --git a/lf/cleaner b/lf/cleaner new file mode 100755 index 0000000..af197ee --- /dev/null +++ b/lf/cleaner @@ -0,0 +1,2 @@ +#!/bin/sh +exec kitten icat --clear --stdin no --transfer-mode memory /dev/tty diff --git a/lf/previewer b/lf/previewer new file mode 100755 index 0000000..24db043 --- /dev/null +++ b/lf/previewer @@ -0,0 +1,36 @@ +#!/bin/sh +draw() { + kitten icat --stdin no --transfer-mode memory --place "${w}x${h}@${x}x${y}" "$1" /dev/tty + exit 1 +} + +file="$1" +w="$2" +h="$3" +x="$4" +y="$5" + +case "$(file -Lb --mime-type "$file")" in + image/*) + draw "$file" + ;; + video/*) + # vidthumb is from here: + # https://raw.githubusercontent.com/duganchen/kitty-pistol-previewer/main/vidthumb + draw "$(vidthumb "$file")" + ;; + application/pdf) + CACHE=$(mktemp /tmp/thumbcache.XXXXX) + pdftoppm -png -f 1 -singlefile "$1" "$CACHE" + draw "$CACHE.png" + rm -f "$CACHE" "$CACHE.png" + ;; + application/epub+zip|application/epub) + CACHE=$(mktemp /tmp/thumbcache.XXXXX) + epub-thumbnailer "$1" "$CACHE" 1024 + $HOME/.config/lf/image draw "$CACHE" + rm -f "$CACHE" "$CACHE.png" + ;; +esac + +pistol "$file" -- cgit v1.2.3 From b49362306bebbcd77517940203e981d263b31d0e Mon Sep 17 00:00:00 2001 From: ZachIR Date: Fri, 28 Feb 2025 11:40:54 -0600 Subject: Set rust text width to 80 --- nvim/after/ftplugin/rust.vim | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 nvim/after/ftplugin/rust.vim diff --git a/nvim/after/ftplugin/rust.vim b/nvim/after/ftplugin/rust.vim new file mode 100644 index 0000000..7a152a7 --- /dev/null +++ b/nvim/after/ftplugin/rust.vim @@ -0,0 +1,2 @@ +:set formatoptions+=t +:set textwidth=80 -- cgit v1.2.3 From 6f6aca5bbe65ac520da26bc241eda97333433e91 Mon Sep 17 00:00:00 2001 From: zachir Date: Fri, 28 Feb 2025 17:01:10 -0600 Subject: Fix GTK-3 settings --- gtk-3.0/settings.ini | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/gtk-3.0/settings.ini b/gtk-3.0/settings.ini index 87b4543..85d3ba5 100644 --- a/gtk-3.0/settings.ini +++ b/gtk-3.0/settings.ini @@ -1,3 +1,17 @@ [Settings] -gtk-cursor-theme-name = BreezeX-Black -gtk-cursor-theme-size = 32 +gtk-theme-name=Flat-Remix-GTK-Green-Darkest +gtk-icon-theme-name=Cosmic +gtk-font-name=Cantarell 11 +gtk-cursor-theme-name=BreezeX-Black +gtk-cursor-theme-size=32 +gtk-toolbar-style=GTK_TOOLBAR_ICONS +gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR +gtk-button-images=0 +gtk-menu-images=0 +gtk-enable-event-sounds=1 +gtk-enable-input-feedback-sounds=0 +gtk-xft-antialias=1 +gtk-xft-hinting=1 +gtk-xft-hintstyle=hintslight +gtk-xft-rgba=rgb +gtk-application-prefer-dark-theme=0 -- cgit v1.2.3 From 5fb45814cbb6ab38adbff7c952339c1da3580731 Mon Sep 17 00:00:00 2001 From: zachir Date: Fri, 28 Feb 2025 17:01:33 -0600 Subject: Reconfigure yay --- yay/config.json | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/yay/config.json b/yay/config.json index 0e764be..2b64b70 100644 --- a/yay/config.json +++ b/yay/config.json @@ -1,7 +1,7 @@ { "aururl": "https://aur.archlinux.org", - "buildDir": "$HOME/.cache/yay", - "absdir": "$HOME/.cache/yay/abs", + "aurrpcurl": "https://aur.archlinux.org/rpc?", + "buildDir": "/home/zachir/.cache/yay", "editor": "nvim", "editorflags": "", "makepkgbin": "makepkg", @@ -9,8 +9,7 @@ "pacmanbin": "pacman", "pacmanconf": "/etc/pacman.conf", "redownload": "no", - "rebuild": "no", - "answerclean": "", + "answerclean": "All", "answerdiff": "", "answeredit": "", "answerupgrade": "", @@ -21,23 +20,31 @@ "sortby": "votes", "searchby": "name-desc", "gitflags": "", - "removemake": "ask", + "removemake": "yes", "sudobin": "sudo", "sudoflags": "", + "version": "12.4.2", "requestsplitn": 150, - "sortmode": 0, "completionrefreshtime": 7, - "sudoloop": false, + "maxconcurrentdownloads": 1, + "bottomup": true, + "sudoloop": true, "timeupdate": false, "devel": false, - "cleanAfter": false, + "cleanAfter": true, + "keepSrc": false, "provides": true, "pgpfetch": true, - "upgrademenu": true, "cleanmenu": true, - "diffmenu": true, + "diffmenu": false, "editmenu": true, "combinedupgrade": false, "useask": false, - "batchinstall": false + "batchinstall": false, + "singlelineresults": false, + "separatesources": true, + "debug": false, + "rpc": true, + "doubleconfirm": true, + "rebuild": "no" } -- cgit v1.2.3 From 12fb9ecc242867b03626d1c52e5e84799ab330c8 Mon Sep 17 00:00:00 2001 From: zachir Date: Thu, 17 Apr 2025 22:59:36 -0500 Subject: Redo nvim to use init.lua --- nvim/init.lua | 5 + nvim/init.vim | 306 ----------------------------------------------- nvim/lua/colorscheme.lua | 8 ++ nvim/lua/keymaps.lua | 97 +++++++++++++++ nvim/lua/options.lua | 32 +++++ nvim/lua/plugins.lua | 106 ++++++++++++++++ nvim/lua/term.lua | 51 ++++++++ sh/profile | 2 +- vim/vimrc | 4 +- 9 files changed, 302 insertions(+), 309 deletions(-) create mode 100644 nvim/init.lua delete mode 100644 nvim/init.vim create mode 100644 nvim/lua/colorscheme.lua create mode 100644 nvim/lua/keymaps.lua create mode 100644 nvim/lua/options.lua create mode 100644 nvim/lua/plugins.lua create mode 100644 nvim/lua/term.lua diff --git a/nvim/init.lua b/nvim/init.lua new file mode 100644 index 0000000..cf11420 --- /dev/null +++ b/nvim/init.lua @@ -0,0 +1,5 @@ +require('options') +require('keymaps') +require('plugins') +require('colorscheme') +require('term') diff --git a/nvim/init.vim b/nvim/init.vim deleted file mode 100644 index 812bf3e..0000000 --- a/nvim/init.vim +++ /dev/null @@ -1,306 +0,0 @@ -set runtimepath^=$XDG_CONFIG_HOME/vim -set runtimepath+=$XDG_DATA_HOME/vim -set runtimepath+=$XDG_CONFIG_HOME/vim/after - -set packpath^=$XDG_DATA_HOME/vim,$XDG_CONFIG_HOME/vim -set packpath+=$XDG_CONFIG_HOME/vim/after,$XDG_DATA_HOME/vim/after - -let g:netrw_home = $XDG_DATA_HOME."/vim" -call mkdir($XDG_DATA_HOME."/vim/spell", 'p') - -set backupdir=$XDG_STATE_HOME/vim/backup | call mkdir(&backupdir, 'p') -set directory=$XDG_STATE_HOME/vim/swap | call mkdir(&directory, 'p') -set undodir=$XDG_STATE_HOME/vim/undo | call mkdir(&undodir, 'p') -set viewdir=$XDG_STATE_HOME/vim/view | call mkdir(&viewdir, 'p') - -if !has('nvim') | set viminfofile=$XDG_STATE_HOME/vim/viminfo | endif - -" vimplugs {{{ -call plug#begin('~/.config/nvim/plugged') -" colorschemes {{{ -Plug 'tomasiser/vim-code-dark' " codedark color scheme -Plug 'flazz/vim-colorschemes' " meta-color scheme package -Plug 'tomasiser/vim-code-dark' " codedark color scheme -Plug 'flazz/vim-colorschemes' " meta-color scheme package -Plug 'ZachIndigo/vim-preglow' " my old color scheme -" }}} -" language support {{{ -Plug 'axvr/org.vim' " basic org markup language implementation -Plug 'ziglang/zig.vim' " zig programming language -Plug 'jdonaldson/vaxe' " haxe programming language -Plug 'xuhdev/vim-latex-live-preview', { 'for': 'tex' } " latex live preview support -Plug 'waycrate/swhkd-vim' " swhkd syntax highlighting -Plug 'HiPhish/guile.vim' " guile syntax highlighting -" }}} -" utility {{{ -Plug 'preservim/nerdtree' " directory tree interface -Plug 'Xuyuanp/nerdtree-git-plugin' " git status indicator for nerdtree -Plug 'PhilRunninger/nerdtree-visual-selection' " allows visual selection mode in nerdtree -Plug 'tpope/vim-fugitive' " git command interface -Plug 'junegunn/goyo.vim' " simplify the user interface (distraction-free) [BROKEN] -Plug 'junegunn/limelight.vim' " focus on single paragraph of text at a time -Plug 'vim-airline/vim-airline' " powerline the vim bottom bar -Plug 'nathanaelkane/vim-indent-guides' " indent guides for vim -Plug 'mhinz/vim-signify' " use signs to show diffs -Plug 'tpope/vim-endwise' " auto end functions/if statements -Plug 'tpope/vim-surround' " auto close stuff -Plug 'mattn/emmet-vim' " html css easy formating -Plug 'godlygeek/tabular' " Needed for vim-markdown -Plug 'plasticboy/vim-markdown' " Better markdown support -Plug 'ryanoasis/vim-devicons' " dev icons for nerdtree -" }}} -call plug#end() - -" }}} -" nvim options {{{ - -"" nvimrc: -"" General - -set showmatch " Highlight matching brace - -set number -set relativenumber - -colorscheme Dark2 - -set hlsearch " Highlight all search results -set smartcase " Enable smart-case search -set incsearch " Searches for strings incrementally - -set expandtab " Use spaces instead of tabs -set shiftwidth=2 " Number of auto-indent spaces -set smartindent " Enable smart-indent -set smarttab " Enable smart-tabs -set softtabstop=2 " Number of spaces per Tab - -"" Advanced -set ruler " Show row and column ruler information -set undolevels=1000 " Number of undo levels -set backspace=indent,eol,start " Backspace behaviour -filetype plugin indent on - -"" GUI Config -set guifont=mononoki\ Nerd\ Font\ Mono:h12 - -"hi Normal guibg=NONE ctermbg=NONE -"hi NonText guibg=NONE ctermbg=NONE -"set background=dark - -set foldmethod=marker - -set conceallevel=2 - -" set leader key - -let mapleader="'" - -" emmet {{{ -let g:user_emmet_leader_key='' -" }}} - -" zig config {{{ -let g:zig_fmt_autosave = 1 -" }}} - -" latex live preview {{{ -let g:livepreview_previewer = 'zathura' -let g:livepreview_use_biber = 1 -let g:livepreview_cursorhold_recompile = 0 -" }}} - -" vim-markdown {{{ -let g:vim_markdown_folding_disabled = 1 -let g:vim_markdown_folding_level = 3 -let g:vim_markdown_toc_autofit = 1 -let g:vim_markdown_emphasis_multiline = 0 -let g:tex_conceal = "" -let g:vim_markdown_math = 1 -let g:vim_markdown_conceal_code_blocks = 1 -let g:vim_markdown_fenced_languages = ['c++=cpp', 'viml=vim', 'bash=sh', 'ini=dosini'] -let g:vim_markdown_follow_anchor = 1 -let g:vim_markdown_math = 1 -let g:vim_markdown_frontmatter = 1 -let g:vim_markdown_toml_frontmatter = 1 -let g:vim_markdown_strikethrough = 1 -let g:vim_markdown_no_extensions_in_markdown = 1 -let g:vim_markdown_autowrite = 1 -let g:vim_markdown_auto_insert_bullets = 0 -let g:vim_markdown_new_list_item_indent = 0 -let g:vim_markdown_edit_url_in = 'tab' -" }}} - -" NERDTree config {{{ -let g:NERDTreeGitStatusUseNerdFonts = 1 " use nerd fonts -let g:NERDTreeGitStatusShowClean = 1 " default: 0 -let g:NERDTreeDirArrowExpandable = '>' -let g:NERDTreeDirArrowCollapsible = '<' -let g:NERDTreeMapToggleHidden = 'z' -" }}} - -" Goyo config {{{ -let g:goyo_width = '90%' -let g:goyo_height = '100%' -" }}} - -" limelight config {{{ -let g:limelight_conceal_ctermfg = 'gray' -let g:limelight_conceal_guifg = 'gray' -" }}} - -" devicon config {{{ -let g:airline_powerline_fonts = 1 -let g:webdevicons_enable_nerdtree = 1 -" }}} - -" vim-indent-guides config {{{ -let g:indent_guides_enable_on_vim_startup = 0 -" }}} - -" vim-signify config {{{ -set updatetime=100 -" }}} - -" }}} -" Functions {{{ -" Goyo functions {{{ -function! s:goyo_enter() - if executable('tmux') && strlen($TMUX) - silent !tmux set status off - silent !tmux list-panes -F '\#F' | grep -q Z || tmux resize-pane -Z - endif - set noshowmode - set noshowcmd - set scrolloff=999 - Limelight - NERDTreeClose -endfunction -function! s:goyo_leave() - if executable('tmux') && strlen('$TMUX') - silent !tmux set status on - silent !tmux list-panes -F '\#F' | grep -q Z && tmux resize-pane -Z - endif - set showmode - set showcmd - set scrolloff=5 - Limelight! - NERDTree -endfunction -" }}} -" }}} -" Autocommands {{{ -" Goyo autocommands {{{ -autocmd! User GoyoEnter nested call goyo_enter() -autocmd! User GoyoLeave nested call goyo_leave() -" }}} -" NERDTree autocmds {{{ -autocmd StdinReadPre * let s:std_in=1 -autocmd VimEnter * if argc() == 0 && !exists('s:std_in') | NERDTree | wincmd p | endif -autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists('s:std_in') | - \ execute 'NERDTree' argv()[0] | wincmd p | enew | execute 'cd '.argv()[0] | endif -autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | quit | endif -autocmd BufEnter * if winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | quit | endif -"autocmd BufEnter * if bufname('#') =~ 'NERD_tree_\d\+' && bufname('%') !~ 'NERD_tree_\d\+' && winnr('$') > 1 | - "\ let buf=bufnr() | buffer# | execute "normal! \w" | execute 'buffer;.buf | endif -autocmd BufWinEnter * if getcmdwintype() == '' | silent NERDTreeMirror | endif -" }}} -" custom augroup {{{ -augroup custom - autocmd! - "au BufEnter *.tex :LLPStartPreview - au BufEnter *.md :set textwidth=80 - au BufEnter *.ms :set textwidth=80 - "au BufEnter *.c :colo DevC++ - "au BufEnter *.h :colo DevC++ - "au BufEnter *.cc :colo DevC++ - "au BufEnter *.hh :colo DevC++ - "au BufEnter *.cpp :colo DevC++ - "au BufEnter *.hpp :colo DevC++ - au BufWritePost init.vim :source % - "au BufWritePost *.tex :make - au BufWritePost *sxhkdrc* :!pkill -USR1 -x sxhkd - au BufWritePost .Xresources :!xrdb ~/.Xresources - au BufWritePost .gitignore :!git add .gitignore -augroup end -" }}} -" }}} -" keybindings {{{ - -" direction keys - -inoremap gj -inoremap gk -inoremap g -inoremap g -vnoremap gj -vnoremap gk -vnoremap g -vnoremap g -nnoremap gj -nnoremap gk - -" clear search highlights -nnoremap / :noh - -" toggles -nnoremap tn :set number! -nnoremap tr :set relativenumber! -nnoremap tt :NERDTreeToggle - -" tabs -nnoremap th :tabprevious -nnoremap tl :tabnext -nnoremap tk :tabnew -nnoremap tj :tabclose - -" splits -nnoremap wh :vertical resize -1 -nnoremap wj :resize -1 -nnoremap wk :resize +1 -nnoremap wl :vertical resize +1 - -" config -nnoremap en :e ~/.config/nvim/init.vim -nnoremap ec :source % - -" write as root -nnoremap ZW :w !pkexec tee % >/dev/null - -" Goyo -nnoremap G :Goyo - -" windows -nnoremap h -nnoremap j -nnoremap k -nnoremap l -vnoremap h -vnoremap j -vnoremap k -vnoremap l - -" files -" these may go away soon -nnoremap xx :q -nnoremap x! :q! -" these are the new standard -nnoremap qq :q -nnoremap q! :q! -nnoremap wq :wq -nnoremap ww :w -nnoremap ee :e - -" escape for term windows -tnoremap - -" vim-plug -nnoremap pi :PlugInstall -nnoremap pu :PlugUpdate -nnoremap pU :PlugUpgrade -nnoremap pc :PlugClean - -" fugitive -nnoremap gp :G pull -nnoremap gd :G diff % - -" }}} diff --git a/nvim/lua/colorscheme.lua b/nvim/lua/colorscheme.lua new file mode 100644 index 0000000..66516fa --- /dev/null +++ b/nvim/lua/colorscheme.lua @@ -0,0 +1,8 @@ +-- define your colorscheme here +local colorscheme = 'badwolf' + +local is_ok, _ = pcall(vim.cmd, "colorscheme " .. colorscheme) +if not is_ok then + vim.notify('colorscheme ' .. colorscheme .. ' not found!') + return +end diff --git a/nvim/lua/keymaps.lua b/nvim/lua/keymaps.lua new file mode 100644 index 0000000..26037c6 --- /dev/null +++ b/nvim/lua/keymaps.lua @@ -0,0 +1,97 @@ +-- define common options +local opts = { + noremap = true, -- non-recursive + silent = true, -- do not show message +} + +-- set leader key +vim.g.mapleader = "'" + +----------------- +-- Normal mode -- +----------------- + +-- Hint: set `:h vim.map.set()` +-- Better window navigation +vim.keymap.set('n', '', 'h', opts) +vim.keymap.set('n', '', 'j', opts) +vim.keymap.set('n', '', 'k', opts) +vim.keymap.set('n', '', 'l', opts) + +-- Resize with arrows +vim.keymap.set('n', '', ':resize -2', opts) +vim.keymap.set('n', '', ':resize +2', opts) +vim.keymap.set('n', '', ':vertical resize -2', opts) +vim.keymap.set('n', '', ':vertical resize +2', opts) +vim.keymap.set('n', 'wh :vertical resize', '-1') +vim.keymap.set('n', 'wj :resize', '-1') +vim.keymap.set('n', 'wk :resize', '+1') +vim.keymap.set('n', 'wl :vertical resize', '+1') + +-- NerdTREE +vim.keymap.set('n', 'tt', ':NERDTreeToggle') + +-- files +-- these may go away soon +vim.keymap.set('n', 'xx', ':q') +vim.keymap.set('n', 'x!', ':q!') + +-- Close with leader +vim.keymap.set('n', 'ww', ':w', opts) +vim.keymap.set('n', 'qq', ':q', opts) +vim.keymap.set('n', 'wq', ':wq', opts) +vim.keymap.set('n', 'q!', ':q!', opts) +vim.keymap.set('n', 'wq', ':wq') +vim.keymap.set('n', 'ee :e', '') + +-- Tabs with leader +vim.keymap.set('n', 'th', ':tabprevious', opts) +vim.keymap.set('n', 'tl', ':tabnext', opts) +vim.keymap.set('n', 'tk', ':tabnew', opts) +vim.keymap.set('n', 'tj', ':tabclose', opts) + +-- Write with sudo +vim.keymap.set('n', 'ZW', ':w !pkexec tee % >/dev/null', opts) + +-- clear search highlights +vim.keymap.set('n', '/', ':noh') + +-- toggles +vim.keymap.set('n', 'tn :set', 'number!') +vim.keymap.set('n', 'tr :set', 'relativenumber!') + +-- write as root +vim.keymap.set('n', 'ZW', ':w !pkexec tee % >/dev/null') + +-- config +vim.keymap.set('n', 'en', ':e ~/.config/nvim/init.lua') +vim.keymap.set('n', 'ec', ':source %') +vim.keymap.set('n', 'er', ':source ~/.config/nvim/init.lua') + +-- Goyo +vim.keymap.set('n', 'G', ':Goyo') + +-- fugitive +vim.keymap.set('n', 'gp :G', 'pull') +vim.keymap.set('n', 'gd :G diff', '%') + +----------------- +-- Visual mode -- +----------------- + +-- Hint: start visual mode with the same area as the previous area and the same mode +--vim.keymap.set('v', '<', '', '>gv', opts) + +-- windows +vim.keymap.set('v', '', 'h') +vim.keymap.set('v', '', 'j') +vim.keymap.set('v', '', 'k') +vim.keymap.set('v', '', 'l') + +-------------- +-- TERMINAL -- +-------------- + +-- escape for term windows +vim.keymap.set('t', '', '') diff --git a/nvim/lua/options.lua b/nvim/lua/options.lua new file mode 100644 index 0000000..1d4826e --- /dev/null +++ b/nvim/lua/options.lua @@ -0,0 +1,32 @@ +-- Hint: use `:h