commit 2fb62acda610ebc4f0659cc66ecbc2b030ee3fd9 Author: nevaforget Date: Mon Jan 8 20:50:29 2024 +0100 init diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0c1e0fe --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/.cache/* +/install.log diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..84baed1 --- /dev/null +++ b/LICENSE @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) 2023 Dominik Kressler + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..b2b2f87 --- /dev/null +++ b/README.md @@ -0,0 +1,166 @@ +# Monarch + +__THIS IS NOT TESTED YET! USE ON YOUR OWN RISK!__ + +I didn't want to rice a clean system each time on each device. So I created an installation script. :) + +So first things first. Monarch or MonArch, maybe MoonArch, is not a Linux based Distribution - it's just a lot of cool packages, a collection of scripts and config files. _While I customized a few things, credit goes to all the great developers and maintainers out there!_ Monarch is what you call a 'rice', my personal setup. +To use this script, you've to Install Arch Linux by yourself! + +[] todo: write some more tips & tricks for `archinstall` + +Here are some keywords: use btrfs, pipewire, multilib in archinstall. There's a preset somewhere in archinstall to install hyprland, recommended. + +So right after your fresh arch installation get some network up and you're ready to run the Monarch Setup. + +# Setup + +This is basically per user! + +```bash +$ sudo pacman -Syu git +$ git clone --depth 1 https://gitea.nevaforget.de/dom/monarchos ~/.monarchos +$ cd ~/.monarchos +$ ./setup.sh +``` + +## Installation Stages + +### Paru + +Paru is a requirement. It is a package manager wrapper to easily handle community packages of the Arch User Repository. + +### Recommended Packages + +This stage will install some handy tools. Some of them may be required for other things like Rofi later on. Some are just recommended because they handle devices e.g. udisks2 or dunst notficiations. + + +#### Full Package List + +``` +jq dunst network-manager-applet alarm-clock-applet man-db hardinfo networkmanager-openvpn udisks2 plocate vim kitty gettext-hostname neovim lsd alsa-utils ponymix btop powertop polkit lxsession timeshift timeshift-autosnap stacer-bin +``` + +--- +### ZSH + +Installs ZSH + Autosuggestions and set zsh as your default shell. No fancy Powerline, keeping it basic. + +--- +### SDDM + +SDDM is the Display Manager / Login Screen based on QT. + + +#### Full Package List + +``` +sddm qt5-quickcontrols qt5-graphicaleffects +``` + +MonArch theme will be also installed. See https://gitea.nevaforget.de/dom/Elegant-sddm-monarch/ + +Default User Picture will be set: see ~/.face + +If you build a Wayland only system you can force Wayland instead of X11 for SDDM. See https://wiki.archlinux.org/title/SDDM#Running_under_Wayland +Add `10-wayland.conf` and install `weston` + +--- +### X11 "Desktop" + +This stage will not only install X11! It will install a whole lot more. It's just my backup system if something on wayland breaks. :) + +Core: +bspwm - window tiling manager +picom - window compositor +sxhkd - Hotkey daemon +polybar - customizable status bar + +__The appropiate config files will be overwritten!__ + +#### Full Package List + +``` +bspwm sxhkd picom-arian8j2-git polybar xdg-desktop-portal +``` + +--- +### Wayland "Desktop" + +This stage will not only install Wayland! It will install a whole lot more. + +Core: +Hyprland - Wayland compositor +waybar - customizable status bar +swaylock - your handy and fancy lockscreen + +#### Full Package List +``` +wayland xorg-xwayland hyprland swaybg waypaper-git xdg-desktop-portal-hyprland wdisplays waybar-hyprland-git nwg-look cliphist slurp grim hyprland-interactive-screenshot swappy swaylock-effects cava +``` + +__The appropiate config files will be overwritten!__ + +--- +### ROFI + +The amazing swiss-knife. This will install all the menus like app launcher, clipboard manager, sound control etc. + +Based on the package `rofi-lbonn-wayland-git`. Works on X11 and Wayland. + +--- +### UFW +Install "Uncomplicated Firewall" UFW and set some common rules. This common setup should be enough for day to day use. + +--- +### CLAMAV + +Install ClamAV - Anti-Virus Scanner and updating virus defintion with "Fangfrisch". + +--- +### Noise Suppression for voice + +It's always nice to have some noise reduction on your microphone input source. + +Install `noise-suppression-for-voice` and add module config to pipewire. + +--- +### CONFIGS + +Overwriting the configs of some more tools. + +``` +kitty nvim dunst btop lsd +``` + +--- +### Bluetooth + +You want it? You can have it! If your device supports bluetooth. + +#### Full Package List +``` +bluez bluez-utils-compat blueberry +``` + +_On X11/bspwm install blueman instead of blueberry._ + +--- +### GUI + +The final stage installs a lot more convenience tools and GUI applications, but also that's the allover look of the system. + +e.g.: +File Explorer +Font Manager +Image Viewer +Video Player +Audio Player +Themes, Fonts, Cursor, Wallpaper +etc. + +#### Full Package List +``` +celluloid audacious font-manager viewnior nemo nemo-fileroller nemo-image-converter nemo-media-columns pavucontrol viewnior ttf-hack-nerd sweet-cursor-theme-git arc-solid-gtk-theme +``` + diff --git a/etc/fonts/local.conf b/etc/fonts/local.conf new file mode 100644 index 0000000..c9e2cb5 --- /dev/null +++ b/etc/fonts/local.conf @@ -0,0 +1,16 @@ + + + + + sans-serif + + Hack Nerd Font + + + + monospace + + Hack Nerd Font Mono + + + \ No newline at end of file diff --git a/home/.bashrc b/home/.bashrc new file mode 100644 index 0000000..6dc2f16 --- /dev/null +++ b/home/.bashrc @@ -0,0 +1,60 @@ +# +# ~/.bashrc +# + +# If not running interactively, don't do anything +[[ $- != *i* ]] && return + + +#alias ls='ls --color=auto' +#PS1="\W:\$ " +export PS1="󰣇 \[$(tput setaf 6)\]\W \[$(tput sgr0)\] " + +export SUDO_EDITOR=/usr/bin/nvim + +bind 'set show-all-if-ambiguous on' +bind 'TAB:menu-complete' +#bind 'Space:magic-space' + +# ctrl+r replacement with hstr +bind '"\C-r": "\e^ihstr -- \n"' + +alias ssh="kitty +kitten ssh" +alias l="lsd -lh --group-dirs first --size short" +#alias ls="lsd" +alias ffs='sudo "$BASH" -c "$(history -p !!)"' +alias cd..="cd .." + +alias orphans='[[ -n $(pacman -Qdt) ]] && sudo pacman -Rs $(pacman -Qdtq) || echo "no orphans to remove"' + +# HSTR configuration - add this to ~/.bashrc +alias hh=hstr # hh to be alias for hstr +export HSTR_CONFIG=hicolor # get more colors +shopt -s histappend # append new history items to .bash_history +export HISTCONTROL=ignorespace # leading space hides commands from history +export HISTFILESIZE=10000 # increase history file size (default is 500) +export HISTSIZE=${HISTFILESIZE} # increase history size (default is 500) +# ensure synchronization between bash memory and history file +export PROMPT_COMMAND="history -a; history -n; ${PROMPT_COMMAND}" +function hstrnotiocsti { + { READLINE_LINE="$( { &1 1>&3 3>&- )"; } 3>&1; + READLINE_POINT=${#READLINE_LINE} +} +# if this is interactive shell, then bind hstr to Ctrl-r (for Vi mode check doc) +if [[ $- =~ .*i.* ]]; then bind -x '"\C-r": "hstrnotiocsti"'; fi +export HSTR_TIOCSTI=n + +# fancy git prompt +# https://github.com/magicmonty/bash-git-prompt +if [ -f "/lib/bash-git-prompt/gitprompt.sh" ]; then + GIT_PROMPT_ONLY_IN_REPO=1 + GIT_PROMPT_START=" _LAST_COMMAND_INDICATOR_ ${Cyan}\W${ResetColor}" + GIT_PROMPT_END="  " + source /lib/bash-git-prompt/gitprompt.sh +fi + +# set PATH so it includes user's private ~/.local/bin if it exists +if [ -d "$HOME/.local/bin" ] ; then + PATH="$HOME/.local/bin:$PATH" +fi + diff --git a/home/.zshrc b/home/.zshrc new file mode 100644 index 0000000..d4a909f --- /dev/null +++ b/home/.zshrc @@ -0,0 +1,35 @@ +export LANG=de_DE.UTF-8 +export EDITOR="nvim" +export SUDO_EDITOR="nvim" + +HISTFILE=~/.histfile +HISTSIZE=1000 +SAVEHIST=1000 + +alias ssh="kitty +kitten ssh" +alias l="lsd -lh --group-dirs first --size short" +alias ls="lsd" +alias orphans='[[ -n $(pacman -Qdt) ]] && sudo pacman -Rs $(pacman -Qdtq) || echo "no orphans to remove"' + +bindkey "^[[3~" delete-char +bindkey "^[[H" beginning-of-line +bindkey "^[[F" end-of-line +bindkey "^[[1;5C" forward-word +bindkey "^[[1;5D" backward-word + +source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh + +autoload -Uz compinit vcs_info promptinit +compinit +promptinit + +# This will set the default prompt to the walters theme +prompt adam2 + +# git info +precmd_vcs_info() { vcs_info } +precmd_functions+=( precmd_vcs_info ) +setopt prompt_subst +RPROMPT='${vcs_info_msg_0_}' +# PROMPT='${vcs_info_msg_0_}%# ' +zstyle ':vcs_info:git:*' formats '%b' \ No newline at end of file diff --git a/home/Pictures/Wallpaper/MonarchOS.png b/home/Pictures/Wallpaper/MonarchOS.png new file mode 100644 index 0000000..5f05b34 Binary files /dev/null and b/home/Pictures/Wallpaper/MonarchOS.png differ diff --git a/home/config/bspwm/bspwm_desktops.sh b/home/config/bspwm/bspwm_desktops.sh new file mode 100755 index 0000000..d3e8d90 --- /dev/null +++ b/home/config/bspwm/bspwm_desktops.sh @@ -0,0 +1,108 @@ +#!/usr/bin/env bash + +MONITOR1=HDMI-1 +MONITOR2=DP-2 + + +version=0.0.1 + +help() { + echo "bspwm window titles" + echo "allows you to have bspwm window titles from each monitor in your bar" + echo "-------------------" + echo + echo "Syntax: bspwm_window_titles [-i |m|p|f |V]" + echo "options:" + echo "h Print this help." + echo "i Icon map path - custom path to file containing icon map" + echo "v Print software version and exit." + echo +} + +add_desktop() { + desktop_id="`cat $HOME/.cache/bspwm_focused_desktop`" + monitor_id=$(bspc query -M -m '.focused' --names) + + current_amount=$(cat $HOME/.cache/bspwm_desktop_count_"$monitor_id") + let new_id=current_amount+1 + + max=4 + + if [[ $current_amount -lt $max ]]; then + bspc monitor $monitor_id -a "$new_id" + echo $new_id > $HOME/.cache/bspwm_desktop_count_"$monitor_id" + fi +} + +init() { + bspc monitor ${MONITOR1} -d 1 + bspc monitor ${MONITOR2} -d 5 + + echo 1 > $HOME/.cache/bspwm_desktop_count_"$MONITOR1" + echo 1 > $HOME/.cache/bspwm_desktop_count_"$MONITOR2" + + ### node_remove event + ### removes empty desktops + bspc subscribe node_remove | while read line + do + monitor_id=$(echo "$line" | awk '{print $2}') + desktop_id=$(echo "$line" | awk '{print $3}') + + windowlist=$( bspc query -N -n .window -m "$monitor_id" -d "$desktop_id" ) + desktopname=$( bspc query -D -m "$monitor_id" -d "$desktop_id" --names ) + + ### check if desktop is empty + if [[ -z "$windowlist" ]]; then + bspc desktop -r + fi + done + + ### write focused desktop id to cache file + bspc subscribe desktop_focus | while read line + do + desktop_id=$(echo "$line" | awk '{print $3}') + echo $desktop_id > $HOME/.cache/bspwm_focused_desktop + done + + ### write desktop amount to cache file + bspc subscribe desktop_add | while read line + do + monitor_id=$(echo "$line" | awk '{print $2}') + monitor_name $(bspc query -M -m "$monitor_id" --names) + desktop_id=$(echo "$line" | awk '{print $3}') + desktops=$(bspc query -D -m "$monitor_id" --names) + + count=0 + echo "$desktops" | sed 's/ //g' | while read l + do + ((count++)) + echo $count + echo $count > $HOME/.cache/bspwm_desktop_count_"$monitor_name" + done + done +} + +while getopts ":haiv:" option; do + case $option in + h) + help + exit;; + a) + add_desktop + exit;; + i) + init + exit;; + v) + echo "Version $version"; + exit;; + *) + echo "Error: Invalid option" + exit;; + esac +done + +help +exit + + diff --git a/home/config/bspwm/bspwm_smart_move b/home/config/bspwm/bspwm_smart_move new file mode 100755 index 0000000..3350f0d --- /dev/null +++ b/home/config/bspwm/bspwm_smart_move @@ -0,0 +1,60 @@ +#!/bin/bash + +# A more fluid way of moving windows with BSPWM, which is meant to be +# implemented in SXHKD. If there is a window in the given direction, +# swap places with it. Else if there is a receptacle move to it +# ("consume" its place). Otherwise create a receptacle in the given +# direction by splitting the entire viewport (circumvents the tiling +# scheme while respecting the current split ratio configuration). In +# the latter scenario, inputting the direction twice will thus move the +# focused window out of its current layout and into the receptacle. +# +# Part of my dotfiles: https://gitlab.com/protesilaos/dotfiles +# +# Copyright (c) 2019 Protesilaos Stavrou +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +[ "$#" -eq 1 ] || { echo "Pass only one argument: north,east,south,west"; exit 1; } + +# Check if argument is a valid direction. +case "$1" in + north|east|south|west) + dir="$1" + ;; + *) + echo "Not a valid argument." + echo "Use one of: north,east,south,west" + exit 1 + ;; +esac + +_query_nodes() { + bspc query -N -n "$@" +} + +# Do not operate on floating windows! +[ -z "$(_query_nodes focused.floating)" ] || { echo "Only move tiled windows."; exit 1; } + +receptacle="$(_query_nodes 'any.leaf.!window')" + +# This regulates the behaviour documented in the description. +if [ -n "$(_query_nodes "${dir}.!floating")" ]; then + bspc node -s "$dir" +elif [ -n "$receptacle" ]; then + bspc node focused -n "$receptacle" --follow +else + bspc node @/ -p "$dir" -i && bspc node -n "$receptacle" --follow +fi diff --git a/home/config/bspwm/bspwm_window_titles.sh b/home/config/bspwm/bspwm_window_titles.sh new file mode 100755 index 0000000..cfdaeec --- /dev/null +++ b/home/config/bspwm/bspwm_window_titles.sh @@ -0,0 +1,160 @@ +#!/usr/bin/env bash + +# globals +version="1.1" +cache_path="${HOME}/.cache" +icon_map_path="$( dirname "$( readlink -f "$0" )" )/bspwm_window_titles_icon_map.txt" + +# defaults +polybar_mode="true" +monocle_mode="false" +# format_focused="%{F#2e3440}%{T4}%{T- F-}%{B#2e3440}{NAME}%{B-}%{F#2e3440}%{T4}%{T- F-}" +# format_normal="%{F#20212C}%{T4}%{T- F-}%{B#20212C}%{F#5D5E72}{NAME}%{B-}%{F#20212C}%{T4}%{T- F-}" +format_focused="{NAME}" +format_normal="%{F#5D5E72}{NAME}%{F-}" + +# wraps a text with polybar format command action +# $1 action +# $2 text +polybar_action_cmd() { + echo "%{A1:${1}:}${2}%{A}" +} + +# formats window name with given format +# $1 format +# $2 window name +polybar_format_window_name() { + echo "$1" | sed "s@{NAME}@$2@" +} + +help() { + echo "bspwm window titles" + echo "allows you to have bspwm window titles from each monitor in your bar" + echo "-------------------" + echo + echo "Syntax: bspwm_window_titles [-i |m|p|f |V]" + echo "options:" + echo "h Print this help." + echo "i Icon map path - custom path to file containing icon map" + echo "m Monocle mode - won't print window names when there is only one window on desktop." + echo "p Polybar action mode - will output window names wrapped with polybar action handlers." + echo " This allows you to directly click on a window name to focus it's window" + echo "f Format how focused/normal window names are displayed" + echo " You need to supply both polybar format tags (so need to use -f two times)" + echo " Example" + echo " bspwm_window_titles -f \"%{F#f00}{NAME}%{F-}\" -f \"{NAME}\"" + echo " focused window name font color red and normal window as is" + echo "V Print software version and exit." + echo +} + +while getopts ":hvmpf:i:" option; do + case $option in + h) + help + exit;; + m) + monocle_mode="true";; + i) + icon_map_path="$OPTARG";; + p) + polybar_mode="true";; + f) + formats+=("$OPTARG"); + [[ -n ${formats[0]} ]] && format_focused="${formats[0]}" + [[ -n ${formats[1]} ]] && format_normal="${formats[1]}";; + v) + echo "Version $version"; + exit;; + *) + echo "Error: Invalid option" + exit;; + esac +done + +icon_map=$( cat "${icon_map_path}" ) + +# subscribe to events on which the window title list will get updated +bspc subscribe node_focus node_remove desktop_focus | while read -r _; do + + # get all monitors + monitors=$( bspc query -M ) + + for monitor in $monitors; do + index=$((index + 1)) + + # get last focused desktop on given monitor + last_focused_desktop=$( bspc query -D -m "$monitor" -d .active ) + + # get windows from last focused desktop on given monitor + winids_on_desktop=$( bspc query -N -n .window -m "$monitor" -d "$last_focused_desktop" ) + + # get number of windows on desktop + number_of_windows=$( printf "$winids_on_desktop" | tr '\n' ' ' | wc -w ) + + # get a list of all windows + winlist=$( wmctrl -l -x ) + + for window_id in $winids_on_desktop; do + # replace all spaces and tabs with single spaces for easier cutting + window=$( echo "$winlist" | grep -i "$window_id" | tr -s '[:blank:]' ) + # get window name + window_name=$( echo "$window" | cut -d " " -f 5- ) + # longer window titles if there is only one window + [[ "$number_of_windows" == "1" ]] && char_cut="40" || char_cut="20" + # cut the window name + window_name_short=$( echo "$window_name" | cut -c1-"$char_cut" ) + + # get window class and match after a dot to get app name + window_class=$( echo "$window" | cut -d " " -f 3 | sed 's/.*\.//') + + # if window id matched with list == not empty + if [[ -n "$window_name" ]]; then + # trim window name + window_name=$( echo "$window_name_short" | sed -e 's/^[[:space:]]*//' ) + + # display instance name if there is no window title + if [[ "$window_name" == "N/A" ]]; then + window_name=$(echo "$window" | cut -d " " -f 3 | cut -d "." -f 2 ) + fi + + # get icon for class name + window_icon=$( grep "$window_class" <<< "$icon_map" | cut -d " " -f2 ) + + # fallback icon if class not found + if [[ -z "$window_icon" ]]; then + window_icon=$( grep "Fallback" <<< "$icon_map" | cut -d " " -f2 ) + fi + + # join icon and name + window_name_with_icon="${window_icon} ${window_name}" + + # apply formatting + if [[ $( bspc query -N -n focused) == "$window_id" ]]; then + formatted_window_name=$( polybar_format_window_name "$format_focused" "$window_name_with_icon" ) + else + formatted_window_name=$( polybar_format_window_name "$format_normal" "$window_name_with_icon" ) + fi + + # wrap with polybar action cmd + [[ "$polybar_mode" == "true" ]] && formatted_window_name=$( polybar_action_cmd "bspc node -f ${window_id}" "$formatted_window_name") + + curr_wins+="${formatted_window_name} " + fi + done + + # if monocle set to true then don't print names if there is only one + if [[ "$monocle_mode" == "true" && "$number_of_windows" == "1" ]]; then + windows_print="" + else + windows_print="$curr_wins" + fi + + # print out the window names to files for use in a bar + echo "$windows_print" > "${cache_path}/bspwm_windows_${index}.txt" + unset curr_wins + done + + unset index + +done diff --git a/home/config/bspwm/bspwm_window_titles_icon_map.txt b/home/config/bspwm/bspwm_window_titles_icon_map.txt new file mode 100644 index 0000000..7343943 --- /dev/null +++ b/home/config/bspwm/bspwm_window_titles_icon_map.txt @@ -0,0 +1,11 @@ +Google-chrome  +firefox  +Code  +Slack  +kitty  +Nautilus  +Nemo  +Viewnior  +Celluloid  +Audacious  +Fallback 󰘔 diff --git a/home/config/bspwm/bspwmrc b/home/config/bspwm/bspwmrc new file mode 100755 index 0000000..8547dfb --- /dev/null +++ b/home/config/bspwm/bspwmrc @@ -0,0 +1,116 @@ +#! /bin/sh + +# -- start hotkey daemon +pgrep -x sxhkd > /dev/null || sxhkd & + +xrandr --output HDMI-1 --mode 2560x1440 --rate 144 +xrandr --output HDMI-1 --primary +xrandr --output HDMI-1 --left-of DP-2 + +# -- BSPWM Settings +bspc monitor HDMI-1 -d 1 2 3 +bspc monitor DP-2 -d 4 5 6 + +bspc config border_width 2 +bspc config window_gap 4 +bspc config split_ratio 0.50 + +bspc config borderless_monocle true +bspc config gapless_monocle true +bspc config single_monocle true + +bspc config presel_feedback_color "#5D5E72" +bspc config normal_border_color "#1e1e2e" +bspc config active_border_color "#1e1e2e" +bspc config focused_border_color "#45475a" + +bspc config focus_follows_pointer true +bspc config pointer_follows_focus true +bspc config pointer_follows_monitor true + +# -- BSPWM Rules +bspc rule -a kitty-vpn state=center_pseudo_tiled follow=on +bspc rule -a NoiseTorch state=floating center=on + +#bspc rule -a "microsoft teams - preview" desktop=4 +#bspc rule -a Lutris desktop='^3' +#bspc rule -a battle.net.exe desktop='^3' +#bspc rule -a discord desktop='^6' +#bspc rule -a "VirtualBox Machine" state=floating desktop='^2' +#bspc rule -a Kupfer.py focus=on +#bspc rule -a Screenkey manage=off + +bspc rule -a "Conky:Conky:conky*" flag=sticky layer=below state=floating sticky=on + +# -- Autostart + + +# restart window titles daemon +cat /dev/null > $HOME/.cache/bspwm_windows_1.txt +cat /dev/null > $HOME/.cache/bspwm_windows_2.txt +while pgrep -u $UID -f bspwm_window_titles >/dev/null; do pkill -f bspwm_window_titles; done +bspwm_window_titles & + +## -- launch polybar +$HOME/.config/polybar/launch.sh + +roficlip.py --daemon & + + +## -- policy kit +#pgrep -x lxsession > /dev/null || lxsession & +pgrep -x lxpolkit > /dev/null || lxpolkit & + +## -- launch dunst notification server +pgrep -x dunst > /dev/null || dunst & + + +## -- set the default cursor to left pointer +xsetroot -cursor_name left_ptr & +## -- start the compositor +#pgrep -x picom > /dev/null || picom --config $HOME/.config/picom/picom.conf --experimental-backends --backend glx & +pgrep -x picom > /dev/null || picom & +## -- udisk utils +#udisksvm >/dev/null & +pgrep -x udiskie > /dev/null || udiskie & + +## -- noisetorch noise cancelling +#noisetorch -u +#pgrep -x noisetorch > /dev/null || noisetorch -i sys-devices-pci0000:00-0000:00:01.3-0000:02:00.0-usb2-2\x2d10-2\x2d10:1.0-sound-card3-controlC3.device -s alsa_input.usb-Corsair_CORSAIR_HS70_Pro_Wireless_Gaming_Headset-00.mono-fallback -t 70 & + +# -- Autostart of misc +## -- applets +#nm-applet --indicator & +#blueman-applet & +#pgrep -x indicator-sound-switcher > /dev/null || indicator-sound-switcher & +#/home/dom/.local/share/headset-charge-indicator/headset-charge-indicator.py & +#/home/dom/.local/share/media-control-indicator/media-control-indicator.py & + + + +# -- Set background wallpaper +#nitrogen --restore & +feh --bg-scale ~/Pictures/Wallpaper/MonarchOS.png & + + + +### +### remove picom corners in monocle mode +### https://www.reddit.com/r/bspwm/comments/hqt1r3/is_there_a_way_to_disable_picom_rounded_borders/ +### +bspc subscribe desktop_layout | while read -r Event +do + Desktop=$(echo "$Event" | awk '{print $3}') + State=$(echo "$Event" | awk '{print $4}') + if [ "$State" = "monocle" ]; then + bspc query -N -d $Desktop | while read -r Node + do + xprop -id $Node -f _PICOM_ROUNDED 32c -set _PICOM_ROUNDED 1 + done + elif [ $(bspc config window_gap) -gt 0 ]; then + bspc query -N -d $Desktop | while read -r Node + do + xprop -id $Node -remove _PICOM_ROUNDED + done + fi +done & \ No newline at end of file diff --git a/home/config/bspwm/terminals b/home/config/bspwm/terminals new file mode 100644 index 0000000..e6feb0f --- /dev/null +++ b/home/config/bspwm/terminals @@ -0,0 +1 @@ +kitty diff --git a/home/config/btop/btop.conf b/home/config/btop/btop.conf new file mode 100644 index 0000000..3215998 --- /dev/null +++ b/home/config/btop/btop.conf @@ -0,0 +1,212 @@ +#? Config file for btop v. 1.2.13 + +#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes. +#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes" +color_theme = "TTY" + +#* If the theme set background should be shown, set to False if you want terminal background transparency. +theme_background = False + +#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false. +truecolor = True + +#* Set to true to force tty mode regardless if a real tty has been detected or not. +#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols. +force_tty = False + +#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets. +#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box. +#* Use whitespace " " as separator between different presets. +#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty" +presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty" + +#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists. +#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift. +vim_keys = False + +#* Rounded corners on boxes, is ignored if TTY mode is ON. +rounded_corners = True + +#* Default symbols to use for graph creation, "braille", "block" or "tty". +#* "braille" offers the highest resolution but might not be included in all fonts. +#* "block" has half the resolution of braille but uses more common characters. +#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY. +#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view. +graph_symbol = "braille" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_cpu = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_mem = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_net = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_proc = "default" + +#* Manually set which boxes to show. Available values are "cpu mem net proc", separate values with whitespace. +shown_boxes = "cpu mem net proc" + +#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs. +update_ms = 2000 + +#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct", +#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly. +proc_sorting = "cpu lazy" + +#* Reverse sorting order, True or False. +proc_reversed = False + +#* Show processes as a tree. +proc_tree = False + +#* Use the cpu graph colors in the process list. +proc_colors = True + +#* Use a darkening gradient in the process list. +proc_gradient = True + +#* If process cpu usage should be of the core it's running on or usage of the total available cpu power. +proc_per_core = False + +#* Show process memory as bytes instead of percent. +proc_mem_bytes = True + +#* Show cpu graph for each process. +proc_cpu_graphs = True + +#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate) +proc_info_smaps = False + +#* Show proc box on left side of screen instead of right. +proc_left = False + +#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop). +proc_filter_kernel = False + +#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available. +#* Select from a list of detected attributes from the options menu. +cpu_graph_upper = "total" + +#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available. +#* Select from a list of detected attributes from the options menu. +cpu_graph_lower = "total" + +#* Toggles if the lower CPU graph should be inverted. +cpu_invert_lower = True + +#* Set to True to completely disable the lower CPU graph. +cpu_single_graph = False + +#* Show cpu box at bottom of screen instead of top. +cpu_bottom = False + +#* Shows the system uptime in the CPU box. +show_uptime = True + +#* Show cpu temperature. +check_temp = True + +#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors. +cpu_sensor = "Auto" + +#* Show temperatures for cpu cores also if check_temp is True and sensors has been found. +show_coretemp = True + +#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core. +#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine. +#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries. +#* Example: "4:0 5:1 6:3" +cpu_core_map = "" + +#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine". +temp_scale = "celsius" + +#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024. +base_10_sizes = False + +#* Show CPU frequency. +show_cpu_freq = True + +#* Draw a clock at top of screen, formatting according to strftime, empty string to disable. +#* Special formatting: /host = hostname | /user = username | /uptime = system uptime +clock_format = "%X" + +#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort. +background_update = True + +#* Custom cpu model name, empty string to disable. +custom_cpu_name = "" + +#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ". +#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user". +disks_filter = "" + +#* Show graphs instead of meters for memory values. +mem_graphs = True + +#* Show mem box below net box instead of above. +mem_below_net = False + +#* Count ZFS ARC in cached and available memory. +zfs_arc_cached = True + +#* If swap memory should be shown in memory box. +show_swap = True + +#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk. +swap_disk = True + +#* If mem box should be split to also show disks info. +show_disks = True + +#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar. +only_physical = True + +#* Read disks list from /etc/fstab. This also disables only_physical. +use_fstab = True + +#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool) +zfs_hide_datasets = False + +#* Set to true to show available disk space for privileged users. +disk_free_priv = False + +#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view. +show_io_stat = True + +#* Toggles io mode for disks, showing big graphs for disk read/write speeds. +io_mode = False + +#* Set to True to show combined read/write io graphs in io mode. +io_graph_combined = False + +#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ". +#* Example: "/mnt/media:100 /:20 /boot:1". +io_graph_speeds = "" + +#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False. +net_download = 100 + +net_upload = 100 + +#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest. +net_auto = True + +#* Sync the auto scaling for download and upload to whichever currently has the highest scale. +net_sync = True + +#* Starts with the Network Interface specified here. +net_iface = "" + +#* Show battery stats in top right if battery is present. +show_battery = True + +#* Which battery to use if multiple are present. "Auto" for auto detection. +selected_battery = "Auto" + +#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG". +#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info. +log_level = "WARNING" \ No newline at end of file diff --git a/home/config/conky/conkytoggler b/home/config/conky/conkytoggler new file mode 100755 index 0000000..5ea71c5 --- /dev/null +++ b/home/config/conky/conkytoggler @@ -0,0 +1,9 @@ +#!/bin/bash +ps_out=`ps -ef | grep conky | grep -v 'grep' | grep -v $0` +result=$(echo $ps_out | grep "$1") +echo $result +if [[ "$result" != "" ]];then + killall conky +else + conky -c ~/.config/conky/mocha.conf +fi \ No newline at end of file diff --git a/home/config/conky/mocha.conf b/home/config/conky/mocha.conf new file mode 100644 index 0000000..182ab8b --- /dev/null +++ b/home/config/conky/mocha.conf @@ -0,0 +1,112 @@ +conky.config = { +xinerama_head = 2, + --Various settings + background = false, -- forked to background + cpu_avg_samples = 2, -- The number of samples to average for CPU monitoring. + diskio_avg_samples = 10, -- The number of samples to average for disk I/O monitoring. + double_buffer = true, -- Use the Xdbe extension? (eliminates flicker) + if_up_strictness = 'address', -- how strict if testing interface is up - up, link or address + net_avg_samples = 2, -- The number of samples to average for net data + no_buffers = true, -- Subtract (file system) buffers from used memory? + temperature_unit = 'celsius', -- fahrenheit or celsius + text_buffer_size = 2048, -- size of buffer for display of content of large variables - default 256 + update_interval = 1, -- update interval + imlib_cache_size = 0, -- disable image cache to get a new spotify cover per song + + -- Placement (Conky on MIDDLE of THREE monitors at 1920x1080) + --alignment = 'top_left', -- top_left,top_middle,top_right,bottom_left,bottom_middle,bottom_right, + --gap_x = 3540, -- pixels between right or left border + --gap_y = 70, -- pixels between bottom or left border + + -- Placement (For SINGLE monitor users!) + alignment = 'top_right', -- top_left,top_middle,top_right,bottom_left,bottom_middle,bottom_right, + gap_x = 50, -- pixels between right or left border + gap_y = 70, -- pixels between bottom or left border + + -- Size + minimum_height = 200, -- minimum height of window + minimum_width = 260, -- minimum width of window + maximum_width = 260, -- maximum width of window + + --Graphical + border_inner_margin = 5, -- margin between border and text + border_outer_margin = 5, -- margin between border and edge of window + border_width = 0, -- border width in pixels + default_bar_width = 260, -- default is 0 - full width + default_bar_height = 10, -- default is 6 + default_gauge_height = 25, -- default is 25 + default_gauge_width =40, -- default is 40 + default_graph_height = 40, -- default is 25 + default_graph_width = 153, -- default is 0 - full width + default_shade_color = '#000000', -- default shading colour + default_outline_color = '#000000', -- default outline colour + draw_borders = false, -- draw borders around text + draw_graph_borders = true, -- draw borders around graphs + draw_shades = false, -- draw shades + draw_outline = false, -- draw outline + stippled_borders = 0, -- dashing the border + + --Textual + format_human_readable = true, -- KiB, MiB rather then number of bytes + font = 'Hack Nerd Font:normal:size=10', -- the default font used + font2 = 'Hack Nerd Font:bold:size=24', -- font for the time + font3 = 'Hack Nerd Font:size=14', -- font for the date + font4 = 'Hack Nerd Font:bold:size=9', -- font for the keybindings heading + font5 = 'MonarchOS:bold:size=16', -- font for the keybindings heading + max_text_width = 0, -- 0 will make sure line does not get broken if width too smal + max_user_text = 16384, -- max text in conky default 16384 + override_utf8_locale = true, -- force UTF8 requires xft + short_units = true, -- shorten units from KiB to k + top_name_width = 21, -- width for $top name value default 15 + top_name_verbose = false, -- If true, top name shows the full command line of each process - Default value is false. + uppercase = false, -- uppercase or not + use_spacer = 'none', -- adds spaces around certain objects to align - default none + use_xft = true, -- xft font - anti-aliased font + xftalpha = 1, -- alpha of the xft font - between 0-1 + + --Windows + own_window = true, -- create your own window to draw + own_window_argb_value = 255, -- real transparency - composite manager required 0-255 + own_window_argb_visual = true, -- use ARGB - composite manager required + own_window_class = 'Conky', -- manually set the WM_CLASS name for use with xprop + own_window_colour = '#1e1e2e', -- set colour if own_window_transparent no + own_window_transparent = false, -- if own_window_argb_visual is true sets background opacity 0% + own_window_title = 'conky', -- set the name manually + own_window_type = 'panel', -- if own_window true options are: normal/override/dock/desktop/panel + own_window_hints = 'undecorated,below,above,sticky,skip_taskbar,skip_pager', -- if own_window true - just hints - own_window_type sets it + + --catppuccin + color0 = '#b4befe', + color1 = '#D9E0EE', + color2 = '#89DCEB', + color3 = '#F2CDCD', + color4 = '#C3BAC6', + color5 = '#ABE9B3', + color6 = '#FAE3B0', +}; + +conky.text = [[ +#${alignc}${color0}${font2}${DESKTOP_SESSION}${font} +${alignc}${color0}${font5}${font}${font2}MONARCH${font} +${voffset 6}${alignc}${color0}${font3}${time %d. %b %Y}${font}${color} +${alignc}${color0}${font}${exec lsb_release -ds | sed 's/"//g'}${font} +${voffset 10}${color0}${font1}󰠦 ${nodename_short} ${font} +${color0}${font1} Kernel ${kernel} ${font} +${color0}${font1} Uptime ${uptime_short} ${font} +${color0}${font1} Packages ${exec pacman -Q | wc -l} ${font} +${voffset 18}${goto 12}${color5}CPU${goto 50} +${goto 12}$cpu% +${color2}${goto 12}${cpubar 8,254} +${voffset 5}${goto 12}$font${color1}${top name 1}$alignr$color${top cpu 1}% +${goto 12}${color1}${top name 2}$alignr$color${top cpu 2}% +${goto 12}${color1}${top name 3}$alignr$color${top cpu 3}% +${voffset 14}${goto 12}${color6}RAM${goto 50} +${goto 12}$mem/$memmax +${color2}${goto 12}${membar 8,254}${color} +${goto 12}${voffset 5}${color1}${top_mem name 1}$alignr$color${top_mem mem_res 1} +${goto 12}${color1}${top_mem name 2}$alignr$color${top_mem mem_res 2} +${goto 12}${color1}${top_mem name 3}$alignr$color${top_mem mem_res 3} +${goto 12}${voffset 14}${color3}${font}File System +${goto 12}${color3}${fs_used /}/${fs_size /} +${goto 12}${color2}${fs_bar 8,254} +]]; diff --git a/home/config/dunst/dunstrc b/home/config/dunst/dunstrc new file mode 100644 index 0000000..f3b7b28 --- /dev/null +++ b/home/config/dunst/dunstrc @@ -0,0 +1,458 @@ +# See dunst(5) for all configuration options + +[global] + ### Display ### + + enable_posix_regex = true + + # Which monitor should the notifications be displayed on. + monitor = 0 + + # Display notification on focused monitor. Possible modes are: + # mouse: follow mouse pointer + # keyboard: follow window with keyboard focus + # none: don't follow anything + # + # "keyboard" needs a window manager that exports the + # _NET_ACTIVE_WINDOW property. + # This should be the case for almost all modern window managers. + # + # If this option is set to mouse or keyboard, the monitor option + # will be ignored. + follow = mouse + + ### Geometry ### + + # dynamic width from 0 to 300 + # width = (0, 300) + # constant width of 300 + width = 300 + + # The maximum height of a single notification, excluding the frame. + #height = 300 + + # Position the notification in the top right corner + origin = top-center + + # Offset from the origin + offset = 20x40 + + # Scale factor. It is auto-detected if value is 0. + scale = 0 + + # Maximum number of notification (0 means no limit) + notification_limit = 10 + + ### Progress bar ### + + # Turn on the progess bar. It appears when a progress hint is passed with + # for example dunstify -h int:value:12 + progress_bar = true + + # Set the progress bar height. This includes the frame, so make sure + # it's at least twice as big as the frame width. + progress_bar_height = 8 + + # Set the frame width of the progress bar + progress_bar_frame_width = 1 + + # Set the minimum width for the progress bar + progress_bar_min_width = 150 + + # Set the maximum width for the progress bar + progress_bar_max_width = 300 + + highlight = "#b4befe" + + # Show how many messages are currently hidden (because of + # notification_limit). + indicate_hidden = yes + + # The transparency of the window. Range: [0; 100]. + # This option will only work if a compositing window manager is + # present (e.g. xcompmgr, compiz, etc.). (X11 only) + transparency = 0 + + # Draw a line of "separator_height" pixel height between two + # notifications. + # Set to 0 to disable. + # If gap_size is greater than 0, this setting will be ignored. + separator_height = 2 + + # Padding between text and separator. + padding = 16 + + # Horizontal padding. + horizontal_padding = 16 + + # Padding between text and icon. + text_icon_padding = 0 + + # Defines width in pixels of frame around the notification window. + # Set to 0 to disable. + frame_width = 2 + + # Defines color of the frame around the notification window. + frame_color = "#11111b" + + # Size of gap to display between notifications - requires a compositor. + # If value is greater than 0, separator_height will be ignored and a border + # of size frame_width will be drawn around each notification instead. + # Click events on gaps do not currently propagate to applications below. + gap_size = 5 + + # Define a color for the separator. + # possible values are: + # * auto: dunst tries to find a color fitting to the background; + # * foreground: use the same color as the foreground; + # * frame: use the same color as the frame; + # * anything else will be interpreted as a X color. + separator_color = frame + + # Sort messages by urgency. + sort = yes + + # Don't remove messages, if the user is idle (no mouse or keyboard input) + # for longer than idle_threshold seconds. + # Set to 0 to disable. + # A client can set the 'transient' hint to bypass this. See the rules + # section for how to disable this if necessary + # idle_threshold = 120 + + ### Text ### + + font = Hack Nerd Font 10 + + # The spacing between lines. If the height is smaller than the + # font height, it will get raised to the font height. + line_height = 0 + + # Possible values are: + # full: Allow a small subset of html markup in notifications: + # bold + # italic + # strikethrough + # underline + # + # For a complete reference see + # . + # + # strip: This setting is provided for compatibility with some broken + # clients that send markup even though it's not enabled on the + # server. Dunst will try to strip the markup but the parsing is + # simplistic so using this option outside of matching rules for + # specific applications *IS GREATLY DISCOURAGED*. + # + # no: Disable markup parsing, incoming notifications will be treated as + # plain text. Dunst will not advertise that it has the body-markup + # capability if this is set as a global setting. + # + # It's important to note that markup inside the format option will be parsed + # regardless of what this is set to. + markup = full + + # The format of the message. Possible variables are: + # %a appname + # %s summary + # %b body + # %i iconname (including its path) + # %I iconname (without its path) + # %p progress value if set ([ 0%] to [100%]) or nothing + # %n progress value if set without any extra characters + # %% Literal % + # Markup is allowed + format = "%s\n%b" + + # Alignment of message text. + # Possible values are "left", "center" and "right". + alignment = left + + # Vertical alignment of message text and icon. + # Possible values are "top", "center" and "bottom". + vertical_alignment = center + + # Show age of message if message is older than show_age_threshold + # seconds. + # Set to -1 to disable. + show_age_threshold = 60 + + # Specify where to make an ellipsis in long lines. + # Possible values are "start", "middle" and "end". + ellipsize = middle + + # Ignore newlines '\n' in notifications. + ignore_newline = no + + # Stack together notifications with the same content + stack_duplicates = true + + # Hide the count of stacked notifications with the same content + hide_duplicate_count = false + + # Display indicators for URLs (U) and actions (A). + show_indicators = yes + + ### Icons ### + + # Recursive icon lookup. You can set a single theme, instead of having to + # define all lookup paths. + enable_recursive_icon_lookup = true + + # Set icon theme (only used for recursive icon lookup) + icon_theme = "Flatery-Dark" + # You can also set multiple icon themes, with the leftmost one being used first. + # icon_theme = "Adwaita, breeze" + + # Align icons left/right/top/off + icon_position = left + + # Scale small icons up to this size, set to 0 to disable. Helpful + # for e.g. small files or high-dpi screens. In case of conflict, + # max_icon_size takes precedence over this. + min_icon_size = 16 + + # Scale larger icons down to this size, set to 0 to disable + max_icon_size = 64 + + # Paths to default icons (only neccesary when not using recursive icon lookup) + icon_path = /usr/share/icons/Flatery-Dark/16x16/status/:/usr/share/icons/Flatery-Dark/16x16/devices/ + + ### History ### + + # Should a notification popped up from history be sticky or timeout + # as if it would normally do. + sticky_history = yes + + # Maximum amount of notifications kept in history + history_length = 20 + + ### Misc/Advanced ### + + # dmenu path. + dmenu = /usr/bin/dmenu -p dunst: + + # Browser for opening urls in context menu. + browser = /usr/bin/xdg-open + + # Always run rule-defined scripts, even if the notification is suppressed + always_run_script = true + + # Define the title of the windows spawned by dunst + title = Dunst + + # Define the class of the windows spawned by dunst + class = Dunst + + # Define the corner radius of the notification window + # in pixel size. If the radius is 0, you have no rounded + # corners. + # The radius will be automatically lowered if it exceeds half of the + # notification height to avoid clipping text and/or icons. + corner_radius = 10 + + # Ignore the dbus closeNotification message. + # Useful to enforce the timeout set by dunst configuration. Without this + # parameter, an application may close the notification sent before the + # user defined timeout. + ignore_dbusclose = false + + ### Wayland ### + # These settings are Wayland-specific. They have no effect when using X11 + + # Uncomment this if you want to let notications appear under fullscreen + # applications (default: overlay) + layer = top + + # Set this to true to use X11 output on Wayland. + force_xwayland = false + + ### Legacy + + # Use the Xinerama extension instead of RandR for multi-monitor support. + # This setting is provided for compatibility with older nVidia drivers that + # do not support RandR and using it on systems that support RandR is highly + # discouraged. + # + # By enabling this setting dunst will not be able to detect when a monitor + # is connected or disconnected which might break follow mode if the screen + # layout changes. + force_xinerama = false + + ### mouse + + # Defines list of actions for each mouse event + # Possible values are: + # * none: Don't do anything. + # * do_action: Invoke the action determined by the action_name rule. If there is no + # such action, open the context menu. + # * open_url: If the notification has exactly one url, open it. If there are multiple + # ones, open the context menu. + # * close_current: Close current notification. + # * close_all: Close all notifications. + # * context: Open context menu for the notification. + # * context_all: Open context menu for all notifications. + # These values can be strung together for each mouse event, and + # will be executed in sequence. + mouse_left_click = close_current + mouse_middle_click = do_action, close_current + mouse_right_click = close_all + +# Experimental features that may or may not work correctly. Do not expect them +# to have a consistent behaviour across releases. +[experimental] + # Calculate the dpi to use on a per-monitor basis. + # If this setting is enabled the Xft.dpi value will be ignored and instead + # dunst will attempt to calculate an appropriate dpi value for each monitor + # using the resolution and physical size. This might be useful in setups + # where there are multiple screens with very different dpi values. + per_monitor_dpi = true + + +[urgency_low] + # IMPORTANT: colors have to be defined in quotation marks. + # Otherwise the "#" and following would be interpreted as a comment. + background = "#181825" + foreground = "#CDD6F4" + timeout = 10 + # Icon for notifications with low urgency, uncomment to enable + #default_icon = /path/to/icon + +[urgency_normal] + background = "#181825" + foreground = "#CDD6F4" + timeout = 10 + # Icon for notifications with normal urgency, uncomment to enable + #default_icon = /path/to/icon + +[urgency_critical] + background = "#181825" + foreground = "#CDD6F4" + frame_color = "#eba0ac" + timeout = 60 + # Icon for notifications with critical urgency, uncomment to enable + #default_icon = /path/to/icon + +# Every section that isn't one of the above is interpreted as a rules to +# override settings for certain messages. +# +# Messages can be matched by +# appname (discouraged, see desktop_entry) +# body +# category +# desktop_entry +# icon +# match_transient +# msg_urgency +# stack_tag +# summary +# +# and you can override the +# background +# foreground +# format +# frame_color +# fullscreen +# new_icon +# set_stack_tag +# set_transient +# set_category +# timeout +# urgency +# icon_position +# skip_display +# history_ignore +# action_name +# word_wrap +# ellipsize +# alignment +# hide_text +# +# Shell-like globbing will get expanded. +# +# Instead of the appname filter, it's recommended to use the desktop_entry filter. +# GLib based applications export their desktop-entry name. In comparison to the appname, +# the desktop-entry won't get localized. +# +# SCRIPTING +# You can specify a script that gets run when the rule matches by +# setting the "script" option. +# The script will be called as follows: +# script appname summary body icon urgency +# where urgency can be "LOW", "NORMAL" or "CRITICAL". +# +# NOTE: It might be helpful to run dunst -print in a terminal in order +# to find fitting options for rules. + +# Disable the transient hint so that idle_threshold cannot be bypassed from the +# client +#[transient_disable] +# match_transient = yes +# set_transient = no +# +# Make the handling of transient notifications more strict by making them not +# be placed in history. +#[transient_history_ignore] +# match_transient = yes +# history_ignore = yes + +# fullscreen values +# show: show the notifications, regardless if there is a fullscreen window opened +# delay: displays the new notification, if there is no fullscreen window active +# If the notification is already drawn, it won't get undrawn. +# pushback: same as delay, but when switching into fullscreen, the notification will get +# withdrawn from screen again and will get delayed like a new notification +#[fullscreen_delay_everything] +# fullscreen = delay +[fullscreen_show_critical] + msg_urgency = critical + fullscreen = pushback + +#[espeak] +# summary = "*" +# script = dunst_espeak.sh + +#[script-test] +# summary = "*script*" +# script = dunst_test.sh + +#[ignore] +# # This notification will not be displayed +# summary = "foobar" +# skip_display = true + +#[history-ignore] +# # This notification will not be saved in history +# summary = "foobar" +# history_ignore = yes + +#[skip-display] +# # This notification will not be displayed, but will be included in the history +# summary = "foobar" +# skip_display = yes + +#[signed_on] +# appname = Pidgin +# summary = "*signed on*" +# urgency = low +# +#[signed_off] +# appname = Pidgin +# summary = *signed off* +# urgency = low +# +#[says] +# appname = Pidgin +# summary = *says* +# urgency = critical +# +#[twitter] +# appname = Pidgin +# summary = *twitter.com* +# urgency = normal +# +#[stack-volumes] +# appname = "some_volume_notifiers" +# set_stack_tag = "volume" +# +# vim: ft=cfg + diff --git a/home/config/gtk-3.0/settings.ini b/home/config/gtk-3.0/settings.ini new file mode 100644 index 0000000..1839104 --- /dev/null +++ b/home/config/gtk-3.0/settings.ini @@ -0,0 +1,17 @@ +[Settings] +gtk-theme-name=Catppuccin-Mocha-Standard-Lavender-Dark +gtk-icon-theme-name=Flatery-Dark +gtk-font-name=Hack Nerd Font 11 +gtk-cursor-theme-name=Sweet-cursors +gtk-cursor-theme-size=24 +gtk-toolbar-style=GTK_TOOLBAR_BOTH +gtk-toolbar-icon-size=GTK_ICON_SIZE_SMALL_TOOLBAR +gtk-button-images=1 +gtk-menu-images=1 +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=1 diff --git a/home/config/gtk-4.0/settings.ini b/home/config/gtk-4.0/settings.ini new file mode 100755 index 0000000..29322c1 --- /dev/null +++ b/home/config/gtk-4.0/settings.ini @@ -0,0 +1,2 @@ +[Settings] +gtk-application-prefer-dark-theme=1 diff --git a/home/config/hypr/hl-animation.conf b/home/config/hypr/hl-animation.conf new file mode 100644 index 0000000..327b92c --- /dev/null +++ b/home/config/hypr/hl-animation.conf @@ -0,0 +1,25 @@ +# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█ +# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█ +bezier = overshot, 0.05, 0.9, 0.1, 1.1 +bezier = smoothOut, 0.36, 0, 0.66, -0.56 +bezier = smoothIn, 0.25, 1, 0.5, 1 + +animations { + enabled=1 + animation = windows,1,5,overshot,slide # slide or popin + animation = windowsOut, 1, 8,smoothOut,slide + animation = windowsMove, 1, 5,default + animation = border,1,4,default + animation = fade, 1, 5, smoothIn + animation = fadeOut, 1, 5, smoothIn + animation = fadeDim, 1, 2, smoothIn + animation = workspaces,1,5,overshot,slidevert # slide , slidevert , fade + + #buttery_smoooooooth... + # animation=windows,1,4,default,slide # slide or popin + # animation = windowsOut, 1, 6,smoothIn,slide + # animation = fade, 1, 12, smoothIn + # animation = fadeOut, 1, 6, smoothIn + # animation = fadeDim, 1, 5, smoothIn + # animation=workspaces,1,4,default,slide # slide , slidevert , fade +} diff --git a/home/config/hypr/hl-autostart.conf b/home/config/hypr/hl-autostart.conf new file mode 100644 index 0000000..bec8705 --- /dev/null +++ b/home/config/hypr/hl-autostart.conf @@ -0,0 +1,19 @@ +# █▀▀ ▀▄▀ █▀▀ █▀▀ +# ██▄ █░█ ██▄ █▄▄ +# See https://wiki.hyprland.org/Configuring/Keywords/ for more + +# Execute your favorite apps at launch +exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP +exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP +exec-once = ~/.config/hypr/xdg-portal-hyprland +exec-once = lxpolkit +exec-once = waypaper --restore +exec-once = waybar +exec-once = cliphist wipe +exec-once = wl-paste --watch cliphist store #Stores only text data +exec-once = wl-paste --type image --watch cliphist store #Stores only image data +exec-once = dunst +#exec-once = swayidle -w timeout 300 '$HOME/.local/bin/moo-lockscreen' timeout 360 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on' before-sleep 'swaylock -f' +exec-once = swayidle -w timeout 300 'swaylock -f' timeout 360 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on' before-sleep 'swaylock -f' +exec-once = xdg-mime default pcmanfm.desktop inode/directory +#exec-once = sway-audio-idle-inhibit \ No newline at end of file diff --git a/home/config/hypr/hl-decoration.conf b/home/config/hypr/hl-decoration.conf new file mode 100644 index 0000000..f46f6df --- /dev/null +++ b/home/config/hypr/hl-decoration.conf @@ -0,0 +1,47 @@ +# █▀▄ █▀▀ █▀▀ █▀█ █▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█ +# █▄▀ ██▄ █▄▄ █▄█ █▀▄ █▀█ ░█░ █ █▄█ █░▀█ + +decoration { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + rounding = 5 + + + # █▄▄ █░░ █░█ █▀█ + # █▄█ █▄▄ █▄█ █▀▄ + #blur = true + #blur_size = 3 + #blur_passes = 1 + #blur_new_optimizations = true + + blur { + enabled = true + size = 4 + passes = 2 + ignore_opacity = true + new_optimizations = true + xray = false + noise = 0.0117 + contrast = 0.8916 + brightness = 0.8172 + #vibrancy = 0.1696 + # vibrancy_darkness = 0 + special = false + } + + # █▀█ █▀█ ▄▀█ █▀▀ █ ▀█▀ █▄█ + # █▄█ █▀▀ █▀█ █▄▄ █ ░█░ ░█░ + #active_opacity=0.98 + #inactive_opacity=0.7 + #fullscreen_opacity=1.05 + #dim_inactive=0 + #dim_strength=0.2 + # dim_around=0.5 + + # █▀ █░█ ▄▀█ █▀▄ █▀█ █░█░█ + # ▄█ █▀█ █▀█ █▄▀ █▄█ ▀▄▀▄▀ + drop_shadow = true + shadow_range = 4 + shadow_render_power = 3 + col.shadow = rgba(1a1a1aee) +} \ No newline at end of file diff --git a/home/config/hypr/hl-displays.conf b/home/config/hypr/hl-displays.conf new file mode 100644 index 0000000..40cde73 --- /dev/null +++ b/home/config/hypr/hl-displays.conf @@ -0,0 +1,15 @@ +# █▀▄▀█ █▀█ █▄░█ █ ▀█▀ █▀█ █▀█ +# █░▀░█ █▄█ █░▀█ █ ░█░ █▄█ █▀▄ + +# See https://wiki.hyprland.org/Configuring/Monitors/ +monitor=HDMI-A-1,2560x1440@144,0x0,1 +monitor=DP-2,preferred,2560x0,1 +monitor=,preferred,auto,1 + +workspace = HDMI-A-1, 1 +workspace = HDMI-A-1, 2 +workspace = HDMI-A-1, 3 +workspace = DP-2, 4 +workspace = DP-2, 5 +workspace = DP-2, 6 + diff --git a/home/config/hypr/hl-general.conf b/home/config/hypr/hl-general.conf new file mode 100644 index 0000000..98353a9 --- /dev/null +++ b/home/config/hypr/hl-general.conf @@ -0,0 +1,16 @@ +# █▀▀ █▀▀ █▄░█ █▀▀ █▀█ ▄▀█ █░░ +# █▄█ ██▄ █░▀█ ██▄ █▀▄ █▀█ █▄▄ + +general { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + gaps_in = 4 + gaps_out = 8 + border_size = 2 + col.active_border = rgba(7f849cFF) + col.inactive_border = rgba(1e1e2eFF) + + layout = dwindle + + resize_on_border = true +} \ No newline at end of file diff --git a/home/config/hypr/hl-input.conf b/home/config/hypr/hl-input.conf new file mode 100644 index 0000000..34a694c --- /dev/null +++ b/home/config/hypr/hl-input.conf @@ -0,0 +1,36 @@ +# █ █▄░█ █▀█ █░█ ▀█▀ +# █ █░▀█ █▀▀ █▄█ ░█░ +# For all categories, see https://wiki.hyprland.org/Configuring/Variables/ +input { + kb_layout = de + kb_variant = + kb_model = + kb_options = + kb_rules = + + follow_mouse = 1 + + numlock_by_default = true + + accel_profile = flat + + touchpad { + natural_scroll = false + } + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. +} + +# █▀▀ █▀▀ █▀ ▀█▀ █░█ █▀█ █▀▀ █▀ +# █▄█ ██▄ ▄█ ░█░ █▄█ █▀▄ ██▄ ▄█ + +gestures { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + workspace_swipe = false +} + +# Example per-device config +# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more +# device:epic-mouse-v1 { +# sensitivity = -0.5 +# } \ No newline at end of file diff --git a/home/config/hypr/hl-keybindings.conf b/home/config/hypr/hl-keybindings.conf new file mode 100644 index 0000000..3e204e9 --- /dev/null +++ b/home/config/hypr/hl-keybindings.conf @@ -0,0 +1,96 @@ +# █▄▀ █▀▀ █▄█ █▄▄ █ █▄░█ █▀▄ +# █░█ ██▄ ░█░ █▄█ █ █░▀█ █▄▀ + +# See https://wiki.hyprland.org/Configuring/Keywords/ for more +$mainMod = SUPER + +# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more +bind = $mainMod, RETURN, exec, kitty +bind = $mainMod, Q, killactive, +#bind = $mainMod, M, exit, +bind = $mainMod, E, exec, xdg-open ~ +bind = $mainMod, V, togglefloating, +bind = $mainMod, P, pseudo, # dwindle +bind = $mainMod, S, togglesplit, # dwindle +bind = $mainMod, F, fullscreen +bind = $mainMod, U, exec, $HOME/.config/conky/conkytoggler + +bind = $mainMod, SPACE, exec, pkill rofi || ~/.config/rofi/launcher/launcher.sh +bind = ALT, TAB, exec, pkill rofi || ~/.config/rofi/launcher/launcher.sh window +bind = $mainMod, N, exec, pkill rofi || ~/.config/rofi/nm-vpn/nm-vpn.sh +bind = $mainMod, M, exec, pkill rofi || networkmanager_dmenu +bind = $mainMod, T, exec, pkill rofi || ~/.config/rofi/settings-menu/settings-menu.sh +bind = $mainMod, A, exec, pkill rofi || ~/.config/rofi/volume/volume.sh +bind = $mainMod, I, exec, pkill rofi || $HOME/.config/rofi/emojis/emojis.sh | rofi -dmenu -theme $HOME/.config/rofi/emojis/emojis.rasi -mesg " Emojis" +#bind = $mainMod, L, exec, swaync-client -t -sw +#bind = $mainMod, K, exec, xkill + +bind = SUPER, C, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy + +bind = $mainMod, TAB, cyclenext +bind = $mainMod ALT, SHIFT, cyclenext, prev + +bind=,PRINT,exec, pkill rofi || ~/.config/rofi/screenshot/screenshot.sh + +bind = CTRL ALT, DELETE, exec, kitty btop -p 1 + +bind = $mainMod, F4, exec, ~/.config/rofi/powermenu/powermenu.sh +bind = $mainMod, escape, exec, killall -SIGUSR1 waybar + +# Move focus with mainMod +bind = $mainMod, H, movefocus, l +bind = $mainMod, J, movefocus, d +bind = $mainMod, K, movefocus, u +bind = $mainMod, L, movefocus, r + +# Move window with mainMod + arrow keys +bind = $mainMod, left, movewindow, l +bind = $mainMod, right, movewindow, r +bind = $mainMod, up, movewindow, u +bind = $mainMod, down, movewindow, d + +# Switch workspaces with mainMod + [0-9] +bind = $mainMod, 1, workspace, 1 +bind = $mainMod, 2, workspace, 2 +bind = $mainMod, 3, workspace, 3 +bind = $mainMod, 4, workspace, 4 +bind = $mainMod, 5, workspace, 5 +bind = $mainMod, 6, workspace, 6 +bind = $mainMod, 7, workspace, 7 +bind = $mainMod, 8, workspace, 8 +bind = $mainMod, 9, workspace, 9 +bind = $mainMod, 0, workspace, 10 + +# Move active window to a workspace with mainMod + SHIFT + [0-9] +bind = $mainMod SHIFT, 1, movetoworkspace, 1 +bind = $mainMod SHIFT, 2, movetoworkspace, 2 +bind = $mainMod SHIFT, 3, movetoworkspace, 3 +bind = $mainMod SHIFT, 4, movetoworkspace, 4 +bind = $mainMod SHIFT, 5, movetoworkspace, 5 +bind = $mainMod SHIFT, 6, movetoworkspace, 6 +bind = $mainMod SHIFT, 7, movetoworkspace, 7 +bind = $mainMod SHIFT, 8, movetoworkspace, 8 +bind = $mainMod SHIFT, 9, movetoworkspace, 9 +bind = $mainMod SHIFT, 0, movetoworkspace, 10 + +# Scroll through existing workspaces with mainMod + scroll +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + +# MODKEYS +bindr = CAPS, Caps_Lock, exec, swayosd --caps-lock + +# SPECIAL MODKEYS +binde = ,XF86AudioRaiseVolume, exec, /home/dom/.local/bin/volnote up +binde = ,XF86AudioLowerVolume, exec, /home/dom/.local/bin/volnote down +binde = ,XF86AudioMute, exec, /home/dom/.local/bin/volnote mute +binde = ,XF86MonBrightnessUp, exec, swayosd --brightness raise +binde = ,XF86MonBrightnessDown, exec, swayosd --brightness lower +binde = ,XF86AudioPlay, exec, /home/dom/.local/bin/volnote toggle +binde = ,XF86AudioStop, exec, playerctl stop +binde = ,XF86AudioPrev, exec, playerctl prev +binde = ,XF86AudioNext, exec, playerctl next diff --git a/home/config/hypr/hl-layout.conf b/home/config/hypr/hl-layout.conf new file mode 100644 index 0000000..48f5834 --- /dev/null +++ b/home/config/hypr/hl-layout.conf @@ -0,0 +1,13 @@ +# █▀▄ █░█░█ █ █▄░█ █▀▄ █░░ █▀▀ +# █▄▀ ▀▄▀▄▀ █ █░▀█ █▄▀ █▄▄ ██▄ +dwindle { + # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more + pseudotile = true # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = true # you probably want this + no_gaps_when_only = 1 # monocle layout +} + +master { + # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more + new_is_master = true +} \ No newline at end of file diff --git a/home/config/hypr/hl-misc.conf b/home/config/hypr/hl-misc.conf new file mode 100644 index 0000000..e4e5535 --- /dev/null +++ b/home/config/hypr/hl-misc.conf @@ -0,0 +1,13 @@ +# █▀▄▀█ █ █▀ █▀▀ +# █░▀░█ █ ▄█ █▄▄ + +misc { + disable_hyprland_logo=true + disable_splash_rendering=false + mouse_move_enables_dpms=true + vfr=true + layers_hog_keyboard_focus = true + animate_manual_resizes = true + enable_swallow = true + swallow_regex = ^(kitty)$ +} \ No newline at end of file diff --git a/home/config/hypr/hl-windowrules.conf b/home/config/hypr/hl-windowrules.conf new file mode 100644 index 0000000..1b6f63f --- /dev/null +++ b/home/config/hypr/hl-windowrules.conf @@ -0,0 +1,99 @@ +# █░█░█ █ █▄░█ █▀▄ █▀█ █░█░█   █▀█ █░█ █░░ █▀▀ █▀ +# ▀▄▀▄▀ █ █░▀█ █▄▀ █▄█ ▀▄▀▄▀   █▀▄ █▄█ █▄▄ ██▄ ▄█ +# 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 + +# firefox Picture-in-Picture +windowrulev2 = float,class:^(firefox)$,title:^(Picture-in-Picture)$ +windowrulev2 = pin,class:^(firefox)$,title:^(Picture-in-Picture)$ +windowrulev2 = nofullscreenrequest,class:^(firefox)$,title:^(Picture-in-Picture)$ + +# firefox figma micro indicator +windowrulev2 = nofullscreenrequest,class:^(firefox)$,title:^(Firefox — Sharing Indicator)$ +windowrulev2 = float,class:^(firefox)$,title:^(Firefox — Sharing Indicator)$ + +# Common Dialogs +windowrule = float,title:^(Open)$ +windowrule = float,title:^(Öffnen von)$ +windowrule = size 600 400, title:^(Öffnen von)$ +windowrule = float,title:^(Choose Files)$ +windowrule = float,title:^(Save As)$ +windowrule = float,title:^(Confirm to replace files)$ +windowrule = float,title:^(Ersetzung)$ +windowrule = float,title:^(File Operation Progress)$ +windowrule = float,title:^(Teilen-Hinweis)$ +windowrule = float,title:^(Lxpolkit)$ +windowrule = float,title:^(Timeshift-gtk)$ +windowrulev2 = float,class:^(nm-connection-editor)$ +windowrulev2 = float,class:^(sddm-conf)$ +windowrule = float, mpv +windowrule = float, Vlc +windowrule = float, file_progress +windowrule = float, confirm +windowrule = float, dialog +windowrule = float, download +windowrule = float, notification +windowrule = float, error +windowrule = float, splash +windowrule = float, confirmreset +windowrule = float, title:Open File +windowrule = float, title:branchdialog +windowrule = float, Lxappearance +windowrule = float, Resources +windowrule = float, Rofi +windowrule = animation none,Rofi +windowrule = float,viewnior +windowrule = float,feh +windowrule = float, pavucontrol-qt +windowrule = float, pavucontrol +windowrule = float, file-roller +windowrule = idleinhibit focus, mpv +windowrule = idleinhibit fullscreen, firefox +windowrule = float, title:^(Media viewer)$ +windowrule = float, title:^(Volume Control)$ + +windowrule = float, title:^(btop)$ +windowrule = size 1024 768, title:^(btop)$ + +windowrule = float, title:^(Picture-in-Picture)$ +windowrule = size 800 600, title:^(Volume Control)$ +windowrule = move 75 44%, title:^(Volume Control)$ + +windowrulev2 = float,class:^(Conky)$ +windowrulev2 = nofocus,class:^(Conky)$ +windowrulev2 = pin,class:^(Conky)$ +windowrulev2 = move 100 100,class:^(Conky)$ + +# Audio Mixer +windowrule = float,pavucontrol +windowrule = center,pavucontrol +windowrule = float,title:^(NoiseTorch)$ +windowrule = float,title:^(Waydroid)$ + +# Nemo File Roller +windowrule = float,file-roller +windowrule = float,title:(Properties)$ + +# VPN Connection Dialog +windowrule = float,title:^(VPN Connection)$ +windowrule = size 800 200,title:^(VPN Connection)$ +windowrule = center,title:^(VPN Connection)$ + +windowrule = tile,title:^(Microsoft Teams)$ + +# Quick EDO Connection Dialog +windowrule = float,title:^(vscquick)$ +windowrule = size 400 200,title:^(vscquick)$ +windowrule = center,title:^(vscquick)$ + +windowrule = monitor DP-2,title:^(Default - Wine desktop)$ +windowrule = fullscreen,title:^(Default - Wine desktop)$ +#layerrule = noanim,rofi + +#windowrulev2 = float,class:^(libreoffice)$ + + +#layerrule = blur,rofi \ No newline at end of file diff --git a/home/config/hypr/hyprland.conf b/home/config/hypr/hyprland.conf new file mode 100644 index 0000000..7affc46 --- /dev/null +++ b/home/config/hypr/hyprland.conf @@ -0,0 +1,20 @@ +# +# Please note not all available settings / options are set here. +# For a full list, see the wiki +# +env = XCURSOR_SIZE,24 +env = HYPRLAND_INTERACTIVE_SCREENSHOT_SAVEDIR,$HOME/Pictures/Screenshots +env = XDG_CURRENT_DESKTOP,Hyprland +env = XDG_SESSION_TYPE,wayland +#env = GTK_THEME,Catppuccin-Mocha-Standard-Lavender-Dark + +source = ~/.config/hypr/hl-displays.conf +source = ~/.config/hypr/hl-general.conf +source = ~/.config/hypr/hl-autostart.conf +source = ~/.config/hypr/hl-input.conf +source = ~/.config/hypr/hl-decoration.conf +source = ~/.config/hypr/hl-animation.conf +source = ~/.config/hypr/hl-layout.conf +source = ~/.config/hypr/hl-windowrules.conf +source = ~/.config/hypr/hl-keybindings.conf +source = ~/.config/hypr/hl-misc.conf \ No newline at end of file diff --git a/home/config/hypr/hyprpaper.conf b/home/config/hypr/hyprpaper.conf new file mode 100644 index 0000000..5231d23 --- /dev/null +++ b/home/config/hypr/hyprpaper.conf @@ -0,0 +1,16 @@ +ipc = off + +preload = ~/Pictures/Wallpaper/MonarchOS.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 = DP-3,/home/dom/.wallpaper/0wall.png +wallpaper = ,~/Pictures/Wallpaper/MonarchOS.png + + +#if more than one monitor in use, can load a 2nd image +# wallpaper = HDMI-A-1,/home/dom/.wallpaper/0wall.png +# wallpaper = ,/home/dom/.wallpaper/0wall.png +# .. more monitors diff --git a/home/config/hypr/xdg-portal-hyprland b/home/config/hypr/xdg-portal-hyprland new file mode 100755 index 0000000..440eef2 --- /dev/null +++ b/home/config/hypr/xdg-portal-hyprland @@ -0,0 +1,8 @@ +#!/bin/bash +sleep 1 +killall xdg-desktop-portal-hyprland +#killall xdg-desktop-portal-wlr +killall xdg-desktop-portal +/usr/lib/xdg-desktop-portal-hyprland & +sleep 2 +/usr/lib/xdg-desktop-portal & \ No newline at end of file diff --git a/home/config/kitty/custom.conf b/home/config/kitty/custom.conf new file mode 100644 index 0000000..d94f08d --- /dev/null +++ b/home/config/kitty/custom.conf @@ -0,0 +1,44 @@ +# Nord Colorscheme for Kitty +# Based on: +# - https://gist.github.com/marcusramberg/64010234c95a93d953e8c79fdaf94192 +# - https://github.com/arcticicestudio/nord-hyper + +background_opacity 0.9 +foreground #D8DEE9 +background #24273a +selection_foreground #000000 +selection_background #FFFACD +url_color #0087BD +cursor #81A1C1 + +# black +color0 #3B4252 +color8 #4C566A + +# red +color1 #BF616A +color9 #BF616A + +# green +color2 #A3BE8C +color10 #A3BE8C + +# yellow +color3 #EBCB8B +color11 #EBCB8B + +# blue +color4 #787c99 +color12 #787c99 + +# magenta +color5 #B48EAD +color13 #B48EAD + +# cyan +color6 #88C0D0 +color14 #8FBCBB + +# white +color7 #acb0d0 +color15 #CACACE diff --git a/home/config/kitty/kitty.conf b/home/config/kitty/kitty.conf new file mode 100644 index 0000000..ad2b54b --- /dev/null +++ b/home/config/kitty/kitty.conf @@ -0,0 +1,90 @@ +font_family Hack Nerd Font +bold_font auto +italic_font auto +bold_italic_font auto + +font_size 10.0 +disable_ligatures never + +cursor_shape beam +enable_audio_bell no + +window_padding_width 10 10 + +open_url_with firefox + +copy_on_select true + +update_check_interval 0 + +confirm_os_window_close 0 + +tab_bar_style separator +tab_title_template " {index}: {title[title.rfind('/')+1:]}" + +editor nvim + +set-window-title "kitty" + +sync_to_monitor yes + + +include ./custom.conf + + +# Key mapping +# For a list of key names, see: http://www.glfw.org/docs/latest/group__keys.html +# For a list of modifier names, see: http://www.glfw.org/docs/latest/group__mods.html +# You can use the special action no_op to unmap a keyboard shortcut that is +# assigned in the default configuration. + +# Clipboard +map super+v paste_from_clipboard +map ctrl+shift+s paste_from_selection +map super+c copy_to_clipboard +map shift+insert paste_from_selection + +# Scrolling +map ctrl+shift+up scroll_line_up +map ctrl+shift+down scroll_line_down +map ctrl+shift+k scroll_line_up +map ctrl+shift+j scroll_line_down +map ctrl+shift+page_up scroll_page_up +map ctrl+shift+page_down scroll_page_down +map ctrl+shift+home scroll_home +map ctrl+shift+end scroll_end +map ctrl+shift+h show_scrollback + +# Window management +map super+n new_os_window +map super+w close_window +map ctrl+shift+enter new_window +map ctrl+shift+] next_window +map ctrl+shift+[ previous_window +map ctrl+shift+f move_window_forward +map ctrl+shift+b move_window_backward +map ctrl+shift+` move_window_to_top +map ctrl+shift+1 first_window +map ctrl+shift+2 second_window +map ctrl+shift+3 third_window +map ctrl+shift+4 fourth_window +map ctrl+shift+5 fifth_window +map ctrl+shift+6 sixth_window +map ctrl+shift+7 seventh_window +map ctrl+shift+8 eighth_window +map ctrl+shift+9 ninth_window +map ctrl+shift+0 tenth_window + +# Tab management +map ctrl+shift+right next_tab +map ctrl+shift+left previous_tab +map ctrl+shift+t new_tab +map ctrl+shift+q close_tab +map ctrl+shift+l next_layout +map ctrl+shift+. move_tab_forward +map ctrl+shift+, move_tab_backward + +# Miscellaneous +map ctrl+shift+up increase_font_size +map ctrl+shift+down decrease_font_size +map ctrl+shift+backspace restore_font_size \ No newline at end of file diff --git a/home/config/lsd/config.yaml b/home/config/lsd/config.yaml new file mode 100644 index 0000000..d172087 --- /dev/null +++ b/home/config/lsd/config.yaml @@ -0,0 +1,3 @@ +permission: octal +total-size: true +date: '+%d.%m.%Y %X' \ No newline at end of file diff --git a/home/config/neofetch/config.conf b/home/config/neofetch/config.conf new file mode 100644 index 0000000..b1bf095 --- /dev/null +++ b/home/config/neofetch/config.conf @@ -0,0 +1,894 @@ +# See this wiki page for more info: +# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info +# +# Colour config is here and in .zshrc +# +print_info() { + info title + info underline + + prin "$(color 12)╭──────────── $(color 10)Software$(color 12) ────────────" + info "$(color 12)│ $(color 14)OS" distro + info "$(color 12)│ $(color 14)Kernel" kernel + info "$(color 12)│ $(color 14)Packages" packages + info "$(color 12)│ $(color 14)Shell" shell + info "$(color 12)│ $(color 14)DE" de + info "$(color 12)│ $(color 14)WM" wm + info "$(color 12)│ $(color 14)Terminal" term + info "$(color 12)│ $(color 14)Local IP" local_ip + info "$(color 12)│ $(color 14)Locale" locale + prin "$(color 12)├──────────── $(color 10)Hardware$(color 12) ────────────" + info "$(color 12)│ $(color 14)Host" model + info "$(color 12)│ $(color 14)CPU" cpu + info "$(color 12)│ $(color 14)GPU" gpu + info "$(color 12)│ $(color 14)Memory" memory + info "$(color 12)│ $(color 14)Disk" disk + prin "$(color 12)├───────────── $(color 10)Uptime$(color 12) ─────────────" + info "$(color 12)│" uptime + prin "$(color 12)╰──────────────────────────────────" + prin "$(color 02) MonArchOS v1.0.0" + + info cols + + # Defaults + + # info "OS" distro + # info "Host" model + # info "Kernel" kernel + # info "Uptime" uptime + # info "Packages" packages + # info "Shell" shell + # info "Resolution" resolution + # info "DE" de + # info "WM" wm + # info "WM Theme" wm_theme + # info "Theme" theme + # info "Icons" icons + # info "Terminal" term + # info "Terminal Font" term_font + # info "CPU" cpu + # info "GPU" gpu + # info "Memory" memory + + # info "GPU Driver" gpu_driver # Linux/macOS only + # info "CPU Usage" cpu_usage + # info "Disk" disk + # info "Battery" battery + # info "Font" font + # info "Song" song + # [[ "$player" ]] && prin "Music Player" "$player" + # info "Local IP" local_ip + # info "Public IP" public_ip + # info "Users" users + # info "Locale" locale # This only works on glibc systems. + + # info cols + +} + +# Title + + +# Hide/Show Fully qualified domain name. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --title_fqdn +title_fqdn="off" + + +# Kernel + + +# Shorten the output of the kernel function. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --kernel_shorthand +# Supports: Everything except *BSDs (except PacBSD and PC-BSD) +# +# Example: +# on: '4.8.9-1-ARCH' +# off: 'Linux 4.8.9-1-ARCH' +kernel_shorthand="off" + + +# Distro + + +# Shorten the output of the distro function +# +# Default: 'off' +# Values: 'on', 'tiny', 'off' +# Flag: --distro_shorthand +# Supports: Everything except Windows and Haiku +distro_shorthand="off" + +# Show/Hide OS Architecture. +# Show 'x86_64', 'x86' and etc in 'Distro:' output. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --os_arch +# +# Example: +# on: 'Arch Linux x86_64' +# off: 'Arch Linux' +os_arch="on" + + +# Uptime + + +# Shorten the output of the uptime function +# +# Default: 'on' +# Values: 'on', 'tiny', 'off' +# Flag: --uptime_shorthand +# +# Example: +# on: '2 days, 10 hours, 3 mins' +# tiny: '2d 10h 3m' +# off: '2 days, 10 hours, 3 minutes' +uptime_shorthand="off" + + +# Memory + + +# Show memory pecentage in output. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --memory_percent +# +# Example: +# on: '1801MiB / 7881MiB (22%)' +# off: '1801MiB / 7881MiB' +memory_percent="off" + +# Change memory output unit. +# +# Default: 'mib' +# Values: 'kib', 'mib', 'gib' +# Flag: --memory_unit +# +# Example: +# kib '1020928KiB / 7117824KiB' +# mib '1042MiB / 6951MiB' +# gib: ' 0.98GiB / 6.79GiB' +memory_unit="mib" + + +# Packages + + +# Show/Hide Package Manager names. +# +# Default: 'tiny' +# Values: 'on', 'tiny' 'off' +# Flag: --package_managers +# +# Example: +# on: '998 (pacman), 8 (flatpak), 4 (snap)' +# tiny: '908 (pacman, flatpak, snap)' +# off: '908' +package_managers="on" + + +# Shell + + +# Show the path to $SHELL +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --shell_path +# +# Example: +# on: '/bin/bash' +# off: 'bash' +shell_path="off" + +# Show $SHELL version +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --shell_version +# +# Example: +# on: 'bash 4.4.5' +# off: 'bash' +shell_version="on" + + +# CPU + + +# CPU speed type +# +# Default: 'bios_limit' +# Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'. +# Flag: --speed_type +# Supports: Linux with 'cpufreq' +# NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value. +speed_type="bios_limit" + +# CPU speed shorthand +# +# Default: 'off' +# Values: 'on', 'off'. +# Flag: --speed_shorthand +# NOTE: This flag is not supported in systems with CPU speed less than 1 GHz +# +# Example: +# on: 'i7-6500U (4) @ 3.1GHz' +# off: 'i7-6500U (4) @ 3.100GHz' +speed_shorthand="on" + +# Enable/Disable CPU brand in output. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --cpu_brand +# +# Example: +# on: 'Intel i7-6500U' +# off: 'i7-6500U (4)' +cpu_brand="on" + +# CPU Speed +# Hide/Show CPU speed. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --cpu_speed +# +# Example: +# on: 'Intel i7-6500U (4) @ 3.1GHz' +# off: 'Intel i7-6500U (4)' +cpu_speed="on" + +# CPU Cores +# Display CPU cores in output +# +# Default: 'logical' +# Values: 'logical', 'physical', 'off' +# Flag: --cpu_cores +# Support: 'physical' doesn't work on BSD. +# +# Example: +# logical: 'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores) +# physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores) +# off: 'Intel i7-6500U @ 3.1GHz' +cpu_cores="logical" + +# CPU Temperature +# Hide/Show CPU temperature. +# Note the temperature is added to the regular CPU function. +# +# Default: 'off' +# Values: 'C', 'F', 'off' +# Flag: --cpu_temp +# Supports: Linux, BSD +# NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable +# coretemp kernel module. This only supports newer Intel processors. +# +# Example: +# C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]' +# F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]' +# off: 'Intel i7-6500U (4) @ 3.1GHz' +cpu_temp="off" + + +# GPU + + +# Enable/Disable GPU Brand +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gpu_brand +# +# Example: +# on: 'AMD HD 7950' +# off: 'HD 7950' +gpu_brand="on" + +# Which GPU to display +# +# Default: 'all' +# Values: 'all', 'dedicated', 'integrated' +# Flag: --gpu_type +# Supports: Linux +# +# Example: +# all: +# GPU1: AMD HD 7950 +# GPU2: Intel Integrated Graphics +# +# dedicated: +# GPU1: AMD HD 7950 +# +# integrated: +# GPU1: Intel Integrated Graphics +gpu_type="all" + + +# Resolution + + +# Display refresh rate next to each monitor +# Default: 'off' +# Values: 'on', 'off' +# Flag: --refresh_rate +# Supports: Doesn't work on Windows. +# +# Example: +# on: '1920x1080 @ 60Hz' +# off: '1920x1080' +refresh_rate="on" + + +# Gtk Theme / Icons / Font + + +# Shorten output of GTK Theme / Icons / Font +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --gtk_shorthand +# +# Example: +# on: 'Numix, Adwaita' +# off: 'Numix [GTK2], Adwaita [GTK3]' +gtk_shorthand="on" + + +# Enable/Disable gtk2 Theme / Icons / Font +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gtk2 +# +# Example: +# on: 'Numix [GTK2], Adwaita [GTK3]' +# off: 'Adwaita [GTK3]' +gtk2="on" + +# Enable/Disable gtk3 Theme / Icons / Font +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gtk3 +# +# Example: +# on: 'Numix [GTK2], Adwaita [GTK3]' +# off: 'Numix [GTK2]' +gtk3="on" + + +# IP Address + + +# Website to ping for the public IP +# +# Default: 'http://ident.me' +# Values: 'url' +# Flag: --ip_host +public_ip_host="http://ident.me" + +# Public IP timeout. +# +# Default: '2' +# Values: 'int' +# Flag: --ip_timeout +public_ip_timeout=2 + + +# Desktop Environment + + +# Show Desktop Environment version +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --de_version +de_version="on" + + +# Disk + + +# Which disks to display. +# The values can be any /dev/sdXX, mount point or directory. +# NOTE: By default we only show the disk info for '/'. +# +# Default: '/' +# Values: '/', '/dev/sdXX', '/path/to/drive'. +# Flag: --disk_show +# +# Example: +# disk_show=('/' '/dev/sdb1'): +# 'Disk (/): 74G / 118G (66%)' +# 'Disk (/mnt/Videos): 823G / 893G (93%)' +# +# disk_show=('/'): +# 'Disk (/): 74G / 118G (66%)' +# +disk_show=('/' '/mnt/Storage') + +# Disk subtitle. +# What to append to the Disk subtitle. +# +# Default: 'mount' +# Values: 'mount', 'name', 'dir', 'none' +# Flag: --disk_subtitle +# +# Example: +# name: 'Disk (/dev/sda1): 74G / 118G (66%)' +# 'Disk (/dev/sdb2): 74G / 118G (66%)' +# +# mount: 'Disk (/): 74G / 118G (66%)' +# 'Disk (/mnt/Local Disk): 74G / 118G (66%)' +# 'Disk (/mnt/Videos): 74G / 118G (66%)' +# +# dir: 'Disk (/): 74G / 118G (66%)' +# 'Disk (Local Disk): 74G / 118G (66%)' +# 'Disk (Videos): 74G / 118G (66%)' +# +# none: 'Disk: 74G / 118G (66%)' +# 'Disk: 74G / 118G (66%)' +# 'Disk: 74G / 118G (66%)' +disk_subtitle="dir" + +# Disk percent. +# Show/Hide disk percent. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --disk_percent +# +# Example: +# on: 'Disk (/): 74G / 118G (66%)' +# off: 'Disk (/): 74G / 118G' +disk_percent="on" + + +# Song + + +# Manually specify a music player. +# +# Default: 'auto' +# Values: 'auto', 'player-name' +# Flag: --music_player +# +# Available values for 'player-name': +# +# amarok +# audacious +# banshee +# bluemindo +# clementine +# cmus +# deadbeef +# deepin-music +# dragon +# elisa +# exaile +# gnome-music +# gmusicbrowser +# gogglesmm +# guayadeque +# io.elementary.music +# iTunes +# juk +# lollypop +# mocp +# mopidy +# mpd +# muine +# netease-cloud-music +# olivia +# playerctl +# pogo +# pragha +# qmmp +# quodlibet +# rhythmbox +# sayonara +# smplayer +# spotify +# strawberry +# tauonmb +# tomahawk +# vlc +# xmms2d +# xnoise +# yarock +music_player="auto" + +# Format to display song information. +# +# Default: '%artist% - %album% - %title%' +# Values: '%artist%', '%album%', '%title%' +# Flag: --song_format +# +# Example: +# default: 'Song: Jet - Get Born - Sgt Major' +song_format="%artist% - %title%" + +# Print the Artist, Album and Title on separate lines +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --song_shorthand +# +# Example: +# on: 'Artist: The Fratellis' +# 'Album: Costello Music' +# 'Song: Chelsea Dagger' +# +# off: 'Song: The Fratellis - Costello Music - Chelsea Dagger' +song_shorthand="off" + +# 'mpc' arguments (specify a host, password etc). +# +# Default: '' +# Example: mpc_args=(-h HOST -P PASSWORD) +mpc_args=() + + +# Text Colors + + +# Text Colors +# +# Default: 'distro' +# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num' +# Flag: --colors +# +# Each number represents a different part of the text in +# this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info' +# +# Example: +# colors=(distro) - Text is colored based on Distro colors. +# colors=(4 6 1 8 8 6) - Text is colored in the order above. +colors=(distro) + + +# Text Options + + +# Toggle bold text +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --bold +bold="on" + +# Enable/Disable Underline +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --underline +underline_enabled="on" + +# Underline character +# +# Default: '-' +# Values: 'string' +# Flag: --underline_char +underline_char="¨" + + +# Info Separator +# Replace the default separator with the specified string. +# +# Default: ':' +# Flag: --separator +# +# Example: +# separator="->": 'Shell-> bash' +# separator=" =": 'WM = dwm' +separator="›" + + +# Color Blocks + + +# Color block range +# The range of colors to print. +# +# Default: '0', '15' +# Values: 'num' +# Flag: --block_range +# +# Example: +# +# Display colors 0-7 in the blocks. (8 colors) +# neofetch --block_range 0 7 +# +# Display colors 0-15 in the blocks. (16 colors) +# neofetch --block_range 0 15 +block_range=(0 15) + +# Toggle color blocks +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --color_blocks +color_blocks="on" + +# Color block width in spaces +# +# Default: '3' +# Values: 'num' +# Flag: --block_width +block_width=3 + +# Color block height in lines +# +# Default: '1' +# Values: 'num' +# Flag: --block_height +block_height=1 + +# Color Alignment +# +# Default: 'auto' +# Values: 'auto', 'num' +# Flag: --col_offset +# +# Number specifies how far from the left side of the terminal (in spaces) to +# begin printing the columns, in case you want to e.g. center them under your +# text. +# Example: +# col_offset="auto" - Default behavior of neofetch +# col_offset=7 - Leave 7 spaces then print the colors +col_offset="auto" + +# Progress Bars + + +# Bar characters +# +# Default: '-', '=' +# Values: 'string', 'string' +# Flag: --bar_char +# +# Example: +# neofetch --bar_char 'elapsed' 'total' +# neofetch --bar_char '-' '=' +bar_char_elapsed="-" +bar_char_total="=" + +# Toggle Bar border +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --bar_border +bar_border="on" + +# Progress bar length in spaces +# Number of chars long to make the progress bars. +# +# Default: '15' +# Values: 'num' +# Flag: --bar_length +bar_length=15 + +# Progress bar colors +# When set to distro, uses your distro's logo colors. +# +# Default: 'distro', 'distro' +# Values: 'distro', 'num' +# Flag: --bar_colors +# +# Example: +# neofetch --bar_colors 3 4 +# neofetch --bar_colors distro 5 +bar_color_elapsed="distro" +bar_color_total="distro" + + +# Info display +# Display a bar with the info. +# +# Default: 'off' +# Values: 'bar', 'infobar', 'barinfo', 'off' +# Flags: --cpu_display +# --memory_display +# --battery_display +# --disk_display +# +# Example: +# bar: '[---=======]' +# infobar: 'info [---=======]' +# barinfo: '[---=======] info' +# off: 'info' +cpu_display="off" +memory_display="off" +battery_display="off" +disk_display="off" + + +# Backend Settings + + +# Image backend. +# +# Default: 'ascii' +# Values: 'ascii', 'caca', 'chafa', 'jp2a', 'iterm2', 'off', +# 'pot', 'termpix', 'pixterm', 'tycat', 'w3m', 'kitty' +# Flag: --backend +image_backend="ascii" + +# Image Source +# +# Which image or ascii file to display. +# +# Default: 'auto' +# Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/' +# 'command output (neofetch --ascii "$(fortune | cowsay -W 30)")' +# Flag: --source +# +# NOTE: 'auto' will pick the best image source for whatever image backend is used. +# In ascii mode, distro ascii art will be used and in an image mode, your +# wallpaper will be used. +image_source="auto" + + +# Ascii Options + + +# Ascii distro +# Which distro's ascii art to display. +# +# Default: 'auto' +# Values: 'auto', 'distro_name' +# Flag: --ascii_distro +# NOTE: AIX, Alpine, Anarchy, Android, Antergos, antiX, "AOSC OS", +# "AOSC OS/Retro", Apricity, ArcoLinux, ArchBox, ARCHlabs, +# ArchStrike, XFerience, ArchMerge, Arch, Artix, Arya, Bedrock, +# Bitrig, BlackArch, BLAG, BlankOn, BlueLight, bonsai, BSD, +# BunsenLabs, Calculate, Carbs, CentOS, Chakra, ChaletOS, +# Chapeau, Chrom*, Cleanjaro, ClearOS, Clear_Linux, Clover, +# Condres, Container_Linux, CRUX, Cucumber, Debian, Deepin, +# DesaOS, Devuan, DracOS, DarkOs, DragonFly, Drauger, Elementary, +# EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, FreeBSD, +# FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, Pentoo, +# gNewSense, GNOME, GNU, GoboLinux, Grombyang, Guix, Haiku, Huayra, +# Hyperbola, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion, +# Korora, KSLinux, Kubuntu, LEDE, LFS, Linux_Lite, +# LMDE, Lubuntu, Lunar, macos, Mageia, MagpieOS, Mandriva, +# Manjaro, Maui, Mer, Minix, LinuxMint, MX_Linux, Namib, +# Neptune, NetBSD, Netrunner, Nitrux, NixOS, Nurunner, +# NuTyX, OBRevenge, OpenBSD, openEuler, OpenIndiana, openmamba, +# OpenMandriva, OpenStage, OpenWrt, osmc, Oracle, OS Elbrus, PacBSD, +# Parabola, Pardus, Parrot, Parsix, TrueOS, PCLinuxOS, Peppermint, +# popos, Porteus, PostMarketOS, Proxmox, Puppy, PureOS, Qubes, Radix, +# Raspbian, Reborn_OS, Redstar, Redcore, Redhat, Refracted_Devuan, +# Regata, Rosa, sabotage, Sabayon, Sailfish, SalentOS, Scientific, +# Septor, SereneLinux, SharkLinux, Siduction, Slackware, SliTaz, +# SmartOS, Solus, Source_Mage, Sparky, Star, SteamOS, SunOS, +# openSUSE_Leap, openSUSE_Tumbleweed, openSUSE, SwagArch, Tails, +# Trisquel, Ubuntu-Budgie, Ubuntu-GNOME, Ubuntu-MATE, Ubuntu-Studio, +# Ubuntu, Venom, Void, Obarun, windows10, Windows7, Xubuntu, Zorin, +# and IRIX have ascii logos +# NOTE: Arch, Ubuntu, Redhat, and Dragonfly have 'old' logo variants. +# Use '{distro name}_old' to use the old logos. +# NOTE: Ubuntu has flavor variants. +# Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu-GNOME, +# Ubuntu-Studio, Ubuntu-Mate or Ubuntu-Budgie to use the flavors. +# NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu, +# CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android, +# Antrix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola, +# Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS, +# Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian, +# postmarketOS, and Void have a smaller logo variant. +# Use '{distro name}_small' to use the small variants. +ascii_distro="auto" + +# Ascii Colors +# +# Default: 'distro' +# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num' +# Flag: --ascii_colors +# +# Example: +# ascii_colors=(distro) - Ascii is colored based on Distro colors. +# ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors. +ascii_colors=(distro) + +# Bold ascii logo +# Whether or not to bold the ascii logo. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --ascii_bold +ascii_bold="on" + + +# Image Options + + +# Image loop +# Setting this to on will make neofetch redraw the image constantly until +# Ctrl+C is pressed. This fixes display issues in some terminal emulators. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --loop +image_loop="off" + +# Thumbnail directory +# +# Default: '~/.cache/thumbnails/neofetch' +# Values: 'dir' +thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch" + +# Crop mode +# +# Default: 'normal' +# Values: 'normal', 'fit', 'fill' +# Flag: --crop_mode +# +# See this wiki page to learn about the fit and fill options. +# https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F +crop_mode="normal" + +# Crop offset +# Note: Only affects 'normal' crop mode. +# +# Default: 'center' +# Values: 'northwest', 'north', 'northeast', 'west', 'center' +# 'east', 'southwest', 'south', 'southeast' +# Flag: --crop_offset +crop_offset="center" + +# Image size +# The image is half the terminal width by default. +# +# Default: 'auto' +# Values: 'auto', '00px', '00%', 'none' +# Flags: --image_size +# --size +image_size="auto" + +# Gap between image and text +# +# Default: '3' +# Values: 'num', '-num' +# Flag: --gap +gap=3 + +# Image offsets +# Only works with the w3m backend. +# +# Default: '0' +# Values: 'px' +# Flags: --xoffset +# --yoffset +yoffset=0 +xoffset=0 + +# Image background color +# Only works with the w3m backend. +# +# Default: '' +# Values: 'color', 'blue' +# Flag: --bg_color +background_color= + + +# Misc Options + +# Stdout mode +# Turn off all colors and disables image backend (ASCII/Image). +# Useful for piping into another command. +# Default: 'off' +# Values: 'on', 'off' +stdout="off" + diff --git a/home/config/picom/picom.allusive.conf b/home/config/picom/picom.allusive.conf new file mode 100644 index 0000000..0374652 --- /dev/null +++ b/home/config/picom/picom.allusive.conf @@ -0,0 +1,415 @@ +################################# +# 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; + +# The blur radius for shadows, in pixels. (defaults to 12) +# shadow-radius = 12 +shadow-radius = 12; + +# The opacity of shadows. (0.0 - 1.0, defaults to 0.75) +# shadow-opacity = 0.75 + +# The left offset for shadows, in pixels. (defaults to -15) +shadow-offset-x = -15; + +# The top offset for shadows, in pixels. (defaults to -15) +shadow-offset-y = -15; + +# 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. +shadow-exclude = [ + "class_g = 'foo'", +]; + +################################# +# Fading # +################################# + + +# Fade windows in/out when opening/closing and when opacity changes, +# unless no-fading-openclose is used. +# fading = false +fading = true; + +# 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 = [] + +# +# Advanced Options +# + +# 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 = 1.0; + +# Let inactive opacity set by -i override the '_NET_WM_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 = []; + +# 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`, +# opacity-rule = [] + + +################################# +# 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" +]; + + +################################# +# Animations - pijulius' fork # +################################# + +animations = true; +animation-window-mass = 0.8; +#animation-stiffness = 350.0; #a.k.a tension +#animation-dampening = 20.0; #a.k.a friction +animation-clamping = true; +animation-delta = 8; +animation-force-steps = false; +# none,auto,zoom,fly-in,slide-up,slide-down,slide-left,slide-right +animation-for-open-window = "zoom"; +animation-for-transient-window = "auto"; +animation-for-unmap-window = "auto"; +animation-for-workspace-switch-in = "auto"; +animation-for-workspace-switch-out = "auto"; +# not work +# animation-exclude = [ +# "class_g = 'i3lock'", +# ]; + + + +################################# +# General Settings # +################################# + +# 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_OPACITY' on client windows, useful for window managers +# not passing '_NET_WM_OPACITY' of client windows to frame windows. +# +# detect-client-opacity = false +detect-client-opacity = true; + +# Specify refresh rate of the screen. If not specified or 0, picom will +# try detecting this with X RandR extension. +# +# refresh-rate = 60 +refresh-rate = 0; + +# 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. 'WM_TRANSIENT_FOR' has higher priority if +# detect-transient is enabled, too. +# +# detect-client-leader = false +detect-client-leader = true; + +# 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 = false + +# 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 everytime, 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. +# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl` +# in the source tree for examples. +# +# glx-fshader-win = "" + +# 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 + +# 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 wether 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 = 1.0; animation-for-open-window = "slide-down"; } + dropdown_menu = { opacity = 1.0; animation-for-open-window = "slide-down"; } +}; diff --git a/home/config/picom/picom.arian8j2.conf b/home/config/picom/picom.arian8j2.conf new file mode 100644 index 0000000..020a8d7 --- /dev/null +++ b/home/config/picom/picom.arian8j2.conf @@ -0,0 +1,479 @@ +################################# +# Transitions # +################################# + +# When windows get moved or resized it transitions window position +transition = true; + +# How many pixels move window to make the first position in transition (defaults to 20) +transition-offset = 10; + +# Direction of transition (top, right, bottom, left) e.g: "right" direction will make +# all windows come from right to left + +# (smart-x, smart-y) are smart direction that will check if there are +# multiple windows that splits the screen and will change their directions, +# in "smart-x" it changes direction of left window to "right" and direction of +# right window to "left", if screen is not splited and a window is taking +# a lot of screen it will change that window direction to "left". +# "smart-y" is also exactly like "smart-x" but instead of translating directions to +# "right" and "left", it translate to "top" and "bottom" +transition-direction = "smart-y"; + +# Function that calculates new position of window (defaults to "ease-out-cubic") +# see https://easings.net for list of all functions +# naming conventions are different to that site tho, e.g "easeInSine" is listed +# on site but here that translated to "ease-in-sine" +transition-timing-function = "ease-out-cubic"; + +# Time between frames in transition. (0.01 - 1.0, defaults to 0.028) +transition-step = 0.036; + +# Similar to opacity rules but determites transition direction e.g: +# "right: name *= 'Firefox'" will make firefox transition direction to right +# Specify a list of transition rules, in the format `DIRECTION:PATTERN` + +# for disabling transition on specific patterns use "none" keyword as a direction +# e.g: use "none: window_type = 'popup_menu'" for disabling transitions on popup menus +transition-rule = ["none: window_type = 'popup_menu'"]; + +#"unknown", "desktop", "dock", "toolbar", "menu", "utility", +# "splash", "dialog", "normal", "dropdown_menu", "popup_menu", +# "tooltip", "notification", "combo", and "dnd". + +################################# +# 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 = 40; + +# The opacity of shadows. (0.0 - 1.0, defaults to 0.75) +shadow-opacity = .60 + +# The left offset for shadows, in pixels. (defaults to -15) +# shadow-offset-x = -15 +shadow-offset-x = -40; + +# The top offset for shadows, in pixels. (defaults to -15) +# shadow-offset-y = -15 +shadow-offset-y = -40; + +# 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 monitor to that monitor. This is +# currently implemented using the X RandR extension. +# crop-shadow-to-monitor = false + + +################################# +# Fading # +################################# + + +# Fade windows in/out when opening/closing and when opacity changes, +# unless no-fading-openclose is used. +# fading = false +fading = true; + +# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028) +# fade-in-step = 0.028 +fade-in-step = 0.02; + +# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03) +# fade-out-step = 0.03 +fade-out-step = 0.02; + +# The time between steps in fade step, in milliseconds. (> 0, defaults to 10) +fade-delta = 3 + +# Specify a list of conditions of windows that should not be faded. +#fade-exclude = ["window_type = 'popup_menu'"] + +# 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 = 0.8; + +# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default) +# frame-opacity = 1.0 +#frame-opacity = 0.7; + +# 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 = 1.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 = [] + + +################################# +# 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 = 10 + +# Exclude conditions for rounded corners. +rounded-corners-exclude = [ + "window_type = 'dock'", + "window_type = 'desktop'", + "_PICOM_ROUNDED@:32c = 1" +]; + + +################################# +# 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`, `egl` or `xr_glx_hybrid`. +# `xrender` is the default one. +# +# backend = "glx" +backend = "glx"; + +# Use higher precision during rendering, and apply dither when presenting the +# rendered screen. Reduces banding artifacts, but might cause performance +# degradation. Only works with OpenGL. +dithered-present = false; + +# 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 = false + +# 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 = false; opacity = 0.75; focus = true; full-shadow = false; }; + dock = { shadow = false; clip-shadow-above = true; } + dnd = { shadow = false; } + popup_menu = { opacity = 1;shadow = false;fade-delta = 2 } + dropdown_menu = { opacity = 1; } + utility = {shadow = false;} +}; diff --git a/home/config/picom/picom.conf b/home/config/picom/picom.conf new file mode 100644 index 0000000..ad00d6e --- /dev/null +++ b/home/config/picom/picom.conf @@ -0,0 +1,479 @@ +################################# +# Transitions # +################################# + +# When windows get moved or resized it transitions window position +transition = true; + +# How many pixels move window to make the first position in transition (defaults to 20) +transition-offset = 10; + +# Direction of transition (top, right, bottom, left) e.g: "right" direction will make +# all windows come from right to left + +# (smart-x, smart-y) are smart direction that will check if there are +# multiple windows that splits the screen and will change their directions, +# in "smart-x" it changes direction of left window to "right" and direction of +# right window to "left", if screen is not splited and a window is taking +# a lot of screen it will change that window direction to "left". +# "smart-y" is also exactly like "smart-x" but instead of translating directions to +# "right" and "left", it translate to "top" and "bottom" +transition-direction = "smart-y"; + +# Function that calculates new position of window (defaults to "ease-out-cubic") +# see https://easings.net for list of all functions +# naming conventions are different to that site tho, e.g "easeInSine" is listed +# on site but here that translated to "ease-in-sine" +transition-timing-function = "ease-out-cubic"; + +# Time between frames in transition. (0.01 - 1.0, defaults to 0.028) +transition-step = 0.036; + +# Similar to opacity rules but determites transition direction e.g: +# "right: name *= 'Firefox'" will make firefox transition direction to right +# Specify a list of transition rules, in the format `DIRECTION:PATTERN` + +# for disabling transition on specific patterns use "none" keyword as a direction +# e.g: use "none: window_type = 'popup_menu'" for disabling transitions on popup menus +transition-rule = ["none: window_type = 'popup_menu'"]; + +#"unknown", "desktop", "dock", "toolbar", "menu", "utility", +# "splash", "dialog", "normal", "dropdown_menu", "popup_menu", +# "tooltip", "notification", "combo", and "dnd". + +################################# +# 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 = 40; + +# The opacity of shadows. (0.0 - 1.0, defaults to 0.75) +shadow-opacity = .60 + +# The left offset for shadows, in pixels. (defaults to -15) +# shadow-offset-x = -15 +shadow-offset-x = -40; + +# The top offset for shadows, in pixels. (defaults to -15) +# shadow-offset-y = -15 +shadow-offset-y = -40; + +# 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 monitor to that monitor. This is +# currently implemented using the X RandR extension. +# crop-shadow-to-monitor = false + + +################################# +# Fading # +################################# + + +# Fade windows in/out when opening/closing and when opacity changes, +# unless no-fading-openclose is used. +# fading = false +fading = true; + +# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028) +# fade-in-step = 0.028 +fade-in-step = 0.02; + +# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03) +# fade-out-step = 0.03 +fade-out-step = 0.02; + +# The time between steps in fade step, in milliseconds. (> 0, defaults to 10) +fade-delta = 3 + +# Specify a list of conditions of windows that should not be faded. +#fade-exclude = ["window_type = 'popup_menu'"] + +# 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 = 0.8; + +# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default) +# frame-opacity = 1.0 +#frame-opacity = 0.7; + +# 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 = 1.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 = [] + + +################################# +# 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 = 10 + +# Exclude conditions for rounded corners. +rounded-corners-exclude = [ + "window_type = 'dock'", + "window_type = 'desktop'", + "_PICOM_ROUNDED@:32c = 1" +]; + + +################################# +# 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 = true + +# 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`, `egl` or `xr_glx_hybrid`. +# `xrender` is the default one. +# +# backend = "glx" +backend = "glx"; + +# Use higher precision during rendering, and apply dither when presenting the +# rendered screen. Reduces banding artifacts, but might cause performance +# degradation. Only works with OpenGL. +dithered-present = false; + +# 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 = false + +# 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 = false; opacity = 0.75; focus = true; full-shadow = false; }; + dock = { shadow = false; clip-shadow-above = true; } + dnd = { shadow = false; } + popup_menu = { opacity = 1;shadow = false;fade-delta = 2 } + dropdown_menu = { opacity = 1; } + utility = {shadow = false;} +}; diff --git a/home/config/pipewire/pipewire.conf.d/99-input-denoising.conf b/home/config/pipewire/pipewire.conf.d/99-input-denoising.conf new file mode 100644 index 0000000..7c43e15 --- /dev/null +++ b/home/config/pipewire/pipewire.conf.d/99-input-denoising.conf @@ -0,0 +1,33 @@ +context.modules = [ +{ name = libpipewire-module-filter-chain + args = { + node.description = "Noise Canceling source" + media.name = "Noise Canceling source" + filter.graph = { + nodes = [ + { + type = ladspa + name = rnnoise + plugin = librnnoise_ladspa + label = noise_suppressor_mono + control = { + "VAD Threshold (%)" = 90.0 + "VAD Grace Period (ms)" = 150 + "Retroactive VAD Grace (ms)" = 0 + } + } + ] + } + capture.props = { + node.name = "capture.rnnoise_source" + node.passive = true + audio.rate = 48000 + } + playback.props = { + node.name = "rnnoise_source" + media.class = Audio/Source + audio.rate = 48000 + } + } +} +] \ No newline at end of file diff --git a/home/config/polybar/config b/home/config/polybar/config new file mode 100644 index 0000000..db3e12d --- /dev/null +++ b/home/config/polybar/config @@ -0,0 +1,47 @@ +include-file = ~/.config/polybar/theme.ini +include-file = ~/.config/polybar/modules.ini + +[bar/main] +width = 100% +height = 34 +offset-y = 0 +offset-x = 0 +top = true +fixed-center = true +padding = 1 +locale = de_DE.UTF-8 +wm-restack = bspwm +override-redirect = false +scroll-up = next +scroll-down = prev +enable-ipc = true +background = ${colors.bg} +foreground = ${colors.fg} +font-0 = "Hack Nerd Font:style=Bold:size=10;2" +font-1 = "MonarchOS:size=11;2" +font-2 = "Hack Nerd Font:style=Regular:size=11;2" +font-3 = "Hack Nerd Font:style=Regular:size=20;5" +radius = 0 +tray-position = none +tray-padding = 5 +tray-spacing = 0 +tray-background = ${colors.shade-1} +cursor-click = pointer +monitor = HDMI-1 + +modules-left = session date bspwm +modules-center = windowlist +modules-right = pulseaudio wireless-network vpn + +[bar/external] +inherit = bar/main +monitor = DP-2 +modules-left = session date bspwm +modules-center = windowlist2 +modules-right = pulseaudio wireless-network vpn gamemode updates-pacman-aurhelper +tray-position = left + +[settings] +screenchange-reload = true +format-padding = 1 +pseudo-transparency = true diff --git a/home/config/polybar/config.ini b/home/config/polybar/config.ini new file mode 100644 index 0000000..283b967 --- /dev/null +++ b/home/config/polybar/config.ini @@ -0,0 +1,47 @@ +include-file = ~/.config/polybar/theme.ini +include-file = ~/.config/polybar/modules.ini + +[bar/main] +width = 100% +height = 34 +offset-y = 0 +offset-x = 0 +top = true +fixed-center = true +padding = 1 +locale = de_DE.UTF-8 +wm-restack = bspwm +override-redirect = false +scroll-up = next +scroll-down = prev +enable-ipc = true +background = ${colors.bg} +foreground = ${colors.fg} +font-0 = "Hack Nerd Font:style=Bold:size=10;2" +font-1 = "MonarchOS:size=11;2" +font-2 = "Hack Nerd Font:style=Regular:size=11;2" +font-3 = "Hack Nerd Font:style=Regular:size=20;5" +radius = 0 +tray-position = none +tray-padding = 5 +tray-spacing = 0 +tray-background = ${colors.shade-1} +cursor-click = pointer +monitor = ${env:MONITOR:} + +modules-left = session date polywins +modules-center = windowlist +modules-right = pulseaudio wireless-network vpn + +[bar/external] +inherit = bar/main +monitor = ${env:MONITOR:} +modules-left = session date polywins +modules-center = windowlist2 +modules-right = pulseaudio wireless-network vpn gamemode updates-pacman-aurhelper +tray-position = left + +[settings] +screenchange-reload = true +format-padding = 1 +pseudo-transparency = true diff --git a/home/config/polybar/launch.sh b/home/config/polybar/launch.sh new file mode 100755 index 0000000..8c893c7 --- /dev/null +++ b/home/config/polybar/launch.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +#kill all polybar instances +CPID=$(pgrep -x polybar) +if [ -n "${CPID}" ] ; then + kill -TERM ${CPID} +fi + +# add window titles & launch the bars +# using bspc query here to get monitors in the same order bspwm sees them +for m in $( bspc query -M --names ); do + index=$((index + 1)) + + if [[ $index -eq 1 ]]; then + export P_BSPWM_WINDOW_CMD_1="tail ${HOME}/.cache/bspwm_windows_1.txt" + MONITOR=$m polybar --reload main & + fi + + + #if [ && [ $(xrandr -q | grep 'DP-2 connected') ]]; then + if [[ $index -eq 2 ]]; then + export P_BSPWM_WINDOW_CMD_2="tail ${HOME}/.cache/bspwm_windows_2.txt" + MONITOR=$m polybar --reload external & + fi +done + diff --git a/home/config/polybar/modules.ini b/home/config/polybar/modules.ini new file mode 100644 index 0000000..6e473ae --- /dev/null +++ b/home/config/polybar/modules.ini @@ -0,0 +1,330 @@ +[module/nowplaying] +type = custom/script +tail = true +interval = 1 +format = 