diff --git a/.bashrc b/.bashrc new file mode 100644 index 0000000..ebdf024 --- /dev/null +++ b/.bashrc @@ -0,0 +1,43 @@ +# +# ~/.bashrc +# + +# If not running interactively, don't do anything +[[ $- != *i* ]] && return + + +alias grep='grep --color=auto' +alias fzf="fzf --preview color='always {}'" +alias pacs="sudo pacman -Syu" +alias nmaps="sudo nmap -sn 192.168.0.0/24" +alias mem="df -H --output=source,size,used,avail | grep 480G | sort -u" +alias kittyimg="kitten icat" +alias vpn="sudo wg-quick up wg0" +alias vpnd="sudo wg-quick down wg0" +alias vpnoff="sudo wg-quick down wg0" +alias xremaps="sudo xremap ~/.config/xremap/config.yml" +alias llama="~/projects/llama.cpp/build/bin/llama-server -m /home/anon/projects/llama.cpp/models/Llama-3.2-3B-Instruct-F16.gguf" +alias obsidian="cd ~/sync/PersonalObsidian/ && nvim" +alias dots="cd ~/.dotfiles/.config/ && nvim" +alias aliases="bat ~/.config/fish/config.fish" + +# List Directory +alias ls="lsd" +alias l="ls -l" +alias la="ls -a" +alias lla="ls -la" +alias lt="ls --tree" + +# Git +alias gs='git status' +alias gca='git add -p . && git commit' +alias gd="git diff --word-diff" +alias gl='git log --graph --show-signature' +alias gla="git log --all --decorate --oneline --graph" +alias gm='git merge' +alias gis='git status' + +PS1='[\u@\h \W]\$' +set -o vi + +eval "$(zoxide init --cmd cd bash)" diff --git a/.config/alacritty/alacritty.toml b/.config/alacritty/alacritty.toml new file mode 100644 index 0000000..b6fe766 --- /dev/null +++ b/.config/alacritty/alacritty.toml @@ -0,0 +1,46 @@ + +[window] + +opacity = 0.7 + +padding.x = 30 +padding.y = 20 + +decorations = "Full" +decorations_theme_variant = "Dark" + +[font] +size = 10.0 + +[font.bold] +family = "CaskaydiaCove Nerd Font Mono" +style = "Bold" + +[font.bold_italic] +family = "CaskaydiaCove Nerd Font Mono" +style = "Bold Italic" + +[font.italic] +family = "CaskaydiaCove Nerd Font Mono" +style = "Italic" + +[font.normal] +family = "CaskaydiaCove Nerd Font Mono" +style = "Regular" +# family = "Source Code Pro" +# family = "Liberation Mono" +# family = "Source Code Pro" + + +[keyboard] + +bindings = [ + { key = "J", mods = "Control|Shift", action = "ScrollLineDown" }, + { key = "K", mods = "Control|Shift", action = "ScrollLineUp" }, + { key = "D", mods = "Control|Shift", action = "ScrollPageDown" }, + { key = "U", mods = "Control|Shift", action = "ScrollPageUp" }, + # { key = "A", mods = "Control", action = "ScrollLineUpScrollLineUp" }, +] + + + diff --git a/.config/bat/config b/.config/bat/config new file mode 100644 index 0000000..5ab73c3 --- /dev/null +++ b/.config/bat/config @@ -0,0 +1,26 @@ +# This is `bat`s configuration file. Each line either contains a comment or +# a command-line option that you want to pass to `bat` by default. You can +# run `bat --help` to get a list of all possible configuration options. + +# Specify desired highlighting theme (e.g. "TwoDark"). Run `bat --list-themes` +# for a list of all available themes +--theme="OneHalfDark" +--style="numbers,changes,header" + +# Enable this to use italic text on the terminal. This is not supported on all +# terminal emulators (like tmux, by default): +#--italic-text=always + +# Uncomment the following line to disable automatic paging: +#--paging=never + +# Uncomment the following line if you are using less version >= 551 and want to +# enable mouse scrolling support in `bat` when running inside tmux. This might +# disable text selection, unless you press shift. +--pager="less --RAW-CONTROL-CHARS --quit-if-one-screen --mouse" + +# Syntax mappings: map a certain filename pattern to a language. +# Example 1: use the C++ syntax for Arduino .ino files +# Example 2: Use ".gitignore"-style highlighting for ".ignore" files +--map-syntax "*.ino:C++" +--map-syntax ".ignore:Git Ignore" diff --git a/.config/fastfetch/config.jsonc b/.config/fastfetch/config.jsonc new file mode 100644 index 0000000..696b540 --- /dev/null +++ b/.config/fastfetch/config.jsonc @@ -0,0 +1,108 @@ +{ + "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", + "logo": { + "source": "$(find \"${XDG_CONFIG_HOME:-$HOME/.config}/fastfetch/pngs/\" -name \"*.png\" | shuf -n 1)", + "height": 18 + }, + "display": { + "separator": " : " + }, + "modules": [ + { + "type": "custom", + "format": "\u001b[36m " + }, + { + "type": "custom", + "format": "┌──────────────────────────────────────────┐" + }, + { + "type": "os", + "key": "  OS", + "keyColor": "red" + }, + { + "type": "kernel", + "key": "  Kernel", + "keyColor": "red" + }, + { + "type": "packages", + "key": "  Packages", + "keyColor": "green" + }, + { + "type": "display", + "key": "  Display", + "keyColor": "green" + }, + { + "type": "wm", + "key": "  WM", + "keyColor": "yellow" + }, + { + "type": "terminal", + "key": "  Terminal", + "keyColor": "yellow" + }, + { + "type": "custom", + "format": "└──────────────────────────────────────────┘" + }, + "break", + { + "type": "title", + "key": " " + }, + { + "type": "custom", + "format": "┌──────────────────────────────────────────┐" + }, + { + "type": "cpu", + "format": "{1}", + "key": "  CPU", + "keyColor": "blue" + }, + { + "type": "gpu", + "format": "{2}", + "key": "  GPU", + "keyColor": "blue" + }, + { + "type": "gpu", + "format": "{3}", + "key": "  GPU Driver", + "keyColor": "magenta" + }, + { + "type": "memory", + "key": " ﬙ Memory", + "keyColor": "magenta" + }, + { + "type": "command", + "key": " 󱦟 OS Age ", + "keyColor": "31", + "text": "birth_install=$(stat -c %W /); current=$(date +%s); time_progression=$((current - birth_install)); days_difference=$((time_progression / 86400)); echo $days_difference days" + }, + { + "type": "uptime", + "key": " 󱫐 Uptime ", + "keyColor": "red" + }, + { + "type": "custom", + "format": "└──────────────────────────────────────────┘" + }, + { + "type": "colors", + "paddingLeft": 2, + "symbol": "circle" + }, + "break" + + ] +} diff --git a/.config/fastfetch/pngs/anon.png b/.config/fastfetch/pngs/anon.png new file mode 100644 index 0000000..3a839af Binary files /dev/null and b/.config/fastfetch/pngs/anon.png differ diff --git a/.config/fastfetch/pngs/arch.png b/.config/fastfetch/pngs/arch.png new file mode 100644 index 0000000..db5a7e8 Binary files /dev/null and b/.config/fastfetch/pngs/arch.png differ diff --git a/.config/fastfetch/pngs/archlinux.png b/.config/fastfetch/pngs/archlinux.png new file mode 100644 index 0000000..b354eb3 Binary files /dev/null and b/.config/fastfetch/pngs/archlinux.png differ diff --git a/.config/fastfetch/pngs/dmz-rabbit.png b/.config/fastfetch/pngs/dmz-rabbit.png new file mode 100644 index 0000000..d0efe0c Binary files /dev/null and b/.config/fastfetch/pngs/dmz-rabbit.png differ diff --git a/.config/fastfetch/pngs/neonom.png b/.config/fastfetch/pngs/neonom.png new file mode 100644 index 0000000..c4a486c Binary files /dev/null and b/.config/fastfetch/pngs/neonom.png differ diff --git a/.config/fastfetch/pngs/network.png b/.config/fastfetch/pngs/network.png new file mode 100644 index 0000000..957300f Binary files /dev/null and b/.config/fastfetch/pngs/network.png differ diff --git a/.config/fastfetch/pngs/openhardware.png b/.config/fastfetch/pngs/openhardware.png new file mode 100644 index 0000000..5ee03b2 Binary files /dev/null and b/.config/fastfetch/pngs/openhardware.png differ diff --git a/.config/fastfetch/pngs/opensourcee.png b/.config/fastfetch/pngs/opensourcee.png new file mode 100644 index 0000000..87e73f5 Binary files /dev/null and b/.config/fastfetch/pngs/opensourcee.png differ diff --git a/.config/fish/config.fish b/.config/fish/config.fish new file mode 100644 index 0000000..482cf8b --- /dev/null +++ b/.config/fish/config.fish @@ -0,0 +1,61 @@ +set -gx EDITOR nvim +set -gx PAGER less +set -Ux BAT_THEME gruvbox +set -Ux MANPAGER "nvim +Man!" +set -g fish_greeting +set -g fish_cursor_insert line +set -g fish_cursor_default block +set -g fish_cursor_visual underscore +set -g fish_user_key_bindings +set -g ask + +#set -xU MANPAGER 'less -R --use-color -Dd+r -Du+b' +#set -xU MANROFFOPT '-P -c' + +alias grep="grep --color=auto" +alias fzf="fzf --preview color='always {}'" +alias pacs="sudo pacman -Syu" +alias nmaps="sudo nmap -sn 192.168.0.0/24" +alias mem="df -H --output=source,size,used,avail | grep 480G | sort -u" +alias kittyimg="kitten icat" +alias dmz="cat ~/.config/fish/dmz.txt" +alias vpnhome="sudo wg-quick up wg0" +alias vpnvillage="sudo wg-quick up village-wg1" +alias xremaps="sudo xremap ~/.config/xremap/config.yml" +alias llama="~/projects/llama.cpp/build/bin/llama-server -m /home/anon/projects/llama.cpp/models/Llama-3.2-3B-Instruct-F16.gguf" +alias obsidian="cd ~/sync/PersonalObsidian/ && nvim" +alias cdots="cd ~/.dotfiles/.config/" +alias dots="cd ~/.dotfiles/.config/ && nvim" +alias aliases="bat ~/.config/fish/config.fish" +alias ipadd="sudo ip route add 192.168.0.234 dev wg0" +alias copy="wl-copy" + +# List Directory +alias ls="lsd" +alias l="ls -l" +alias la="ls -a" +alias lla="ls -la" +alias lt="ls --tree" + +# Git +alias gs="git status" +alias gca="git add -p . && git commit" +alias gd="git diff --word-diff" +alias gl="git log --graph --show-signature" +alias gla="git log --all --decorate --oneline --graph" +alias gm="git merge" + +# Handy change dir shortcuts +abbr .. "cd .." +abbr ... "cd ../.." +abbr .3 "cd ../../.." +abbr .4 "cd ../../../.." +abbr .5 "cd ../../../../.." + +# Always mkdir a path (this doesn't inhibit functionality to make a single dir) +abbr mkdir "mkdir -p" + +zoxide init --cmd cd fish | source + + + diff --git a/.config/fish/dmz.txt b/.config/fish/dmz.txt new file mode 100644 index 0000000..3f99663 --- /dev/null +++ b/.config/fish/dmz.txt @@ -0,0 +1,30 @@ +                          .dO00Od'                           +                         d00000000d.                         +                        d0000000000k                         +                        x0000000000O                         +                         k000000000                          +                           ;0000: Okc                        +                                    kkc                      +                                      kkc                    +                                        dkl                  +                                          okl                +                                            lOl              +                                              cOo.           + .lxkOOkxl.              .lxkOOkxl.             ;OoxkOOkxl.  +'O00000000O,            'O00000000O,            '000000000O, +O0000000000OddddddddddddO00000000000ddddddddddddO00000000000 +c0000000000c            :0000000000l            :0000000000l + .00000000.              .00000000'             '000000000'  +                             00               'd0.           +                             00             ,d0.             +                             00           ,x0                +                             00         :x0                  +                             00       cxO                    +                             00     ckO                      +                           .c00l' ckk                        +                         ck000000O0                          +                        c0000000000o                         +                        O00000000000                         +                        .0000000000.                         +                          ,000000:                           +                             :c                              diff --git a/.config/fish/fish_variables b/.config/fish/fish_variables new file mode 100644 index 0000000..3eb383c --- /dev/null +++ b/.config/fish/fish_variables @@ -0,0 +1,46 @@ +# This file contains fish universal variable definitions. +# VERSION: 3.0 +SETUVAR --export BAT_THEME:gruvbox +SETUVAR --export EDITOR:nvim +SETUVAR --export MANPAGER:nvim\x20\x2bMan\x21 +SETUVAR --export MANROFFOPT:\x2dP\x20\x2dc +SETUVAR __fish_initialized:3800 +SETUVAR fish_color_autosuggestion:4D5566 +SETUVAR fish_color_cancel:\x2dr +SETUVAR fish_color_command:39BAE6 +SETUVAR fish_color_comment:626A73 +SETUVAR fish_color_cwd:59C2FF +SETUVAR fish_color_cwd_root:red +SETUVAR fish_color_end:F29668 +SETUVAR fish_color_error:FF3333 +SETUVAR fish_color_escape:95E6CB +SETUVAR fish_color_history_current:\x2d\x2dbold +SETUVAR fish_color_host:normal +SETUVAR fish_color_host_remote:yellow +SETUVAR fish_color_keyword:39BAE6 +SETUVAR fish_color_match:F07178 +SETUVAR fish_color_normal:B3B1AD +SETUVAR fish_color_operator:E6B450 +SETUVAR fish_color_option:B3B1AD +SETUVAR fish_color_param:B3B1AD +SETUVAR fish_color_quote:C2D94C +SETUVAR fish_color_redirection:FFEE99 +SETUVAR fish_color_search_match:\x2d\x2dbackground\x3dE6B450 +SETUVAR fish_color_selection:\x2d\x2dbackground\x3dE6B450 +SETUVAR fish_color_status:red +SETUVAR fish_color_user:brgreen +SETUVAR fish_color_valid_path:\x2d\x2dunderline +SETUVAR fish_key_bindings:fish_vi_key_bindings +SETUVAR fish_pager_color_background:\x1d +SETUVAR fish_pager_color_completion:normal +SETUVAR fish_pager_color_description:B3A06D\x1eyellow +SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline +SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan +SETUVAR fish_pager_color_secondary_background:\x1d +SETUVAR fish_pager_color_secondary_completion:\x1d +SETUVAR fish_pager_color_secondary_description:\x1d +SETUVAR fish_pager_color_secondary_prefix:\x1d +SETUVAR fish_pager_color_selected_background:\x2d\x2dbackground\x3dE6B450 +SETUVAR fish_pager_color_selected_completion:\x1d +SETUVAR fish_pager_color_selected_description:\x1d +SETUVAR fish_pager_color_selected_prefix:\x1d diff --git a/.config/fish/functions/ask.fish b/.config/fish/functions/ask.fish new file mode 100644 index 0000000..3142ec6 --- /dev/null +++ b/.config/fish/functions/ask.fish @@ -0,0 +1,3 @@ +function ask --description 'answer from cht.sh' + curl -s https://cht.sh/$(string join '+' $argv[1..]) +end diff --git a/.config/fish/functions/fish_greeting.fish b/.config/fish/functions/fish_greeting.fish new file mode 100644 index 0000000..7db9545 --- /dev/null +++ b/.config/fish/functions/fish_greeting.fish @@ -0,0 +1,7 @@ + +function fish_greeting + #curl "wttr.in/Belgrade?format=%l:+%c+%t+|+%h+|+%w+|+(%%M+%m)\n" + cat ~/.config/fish/greet.txt ## populated by cronjob + date +"📅 %d. %b 🕗 %H:%M - %A" +end + diff --git a/.config/fish/functions/fish_prompt.fish b/.config/fish/functions/fish_prompt.fish new file mode 100644 index 0000000..152cce9 --- /dev/null +++ b/.config/fish/functions/fish_prompt.fish @@ -0,0 +1,14 @@ +function fish_prompt + if test -n "$SSH_TTY" + echo -n (set_color brred)"$USER"(set_color white)'@'(set_color yellow)(prompt_hostname)' ' + end + + echo -n (set_color blue)(prompt_pwd)' ' + + set_color -o + if fish_is_root_user + echo -n (set_color red)'# ' + end + echo -n (set_color red)'❯'(set_color yellow)'❯'(set_color green)'❯ ' + set_color normal +end diff --git a/.config/fish/functions/fish_right_prompt.fish b/.config/fish/functions/fish_right_prompt.fish new file mode 100644 index 0000000..5fd70b8 --- /dev/null +++ b/.config/fish/functions/fish_right_prompt.fish @@ -0,0 +1,161 @@ +function fish_right_prompt + set -l cmd_status $status + if test $cmd_status -ne 0 + echo -n (set_color red)"✘ $cmd_status" + end + + if not command -sq git + set_color normal + return + end + + # Get the git directory for later use. + # Return if not inside a Git repository work tree. + if not set -l git_dir (command git rev-parse --git-dir 2>/dev/null) + set_color normal + return + end + + # Get the current action ("merge", "rebase", etc.) + # and if there's one get the current commit hash too. + set -l commit '' + if set -l action (fish_print_git_action "$git_dir") + set commit (command git rev-parse HEAD 2> /dev/null | string sub -l 7) + end + + # Get either the branch name or a branch descriptor. + set -l branch_detached 0 + if not set -l branch (command git symbolic-ref --short HEAD 2>/dev/null) + set branch_detached 1 + set branch (command git describe --contains --all HEAD 2>/dev/null) + end + + # Get the commit difference counts between local and remote. + command git rev-list --count --left-right 'HEAD...@{upstream}' 2>/dev/null \ + | read -d \t -l status_ahead status_behind + if test $status -ne 0 + set status_ahead 0 + set status_behind 0 + end + + # Get the stash status. + # (git stash list) is very slow. => Avoid using it. + set -l status_stashed 0 + if test -f "$git_dir/refs/stash" + set status_stashed 1 + else if test -r "$git_dir/commondir" + read -l commondir <"$git_dir/commondir" + if test -f "$commondir/refs/stash" + set status_stashed 1 + end + end + + # git-status' porcelain v1 format starts with 2 letters on each line: + # The first letter (X) denotes the index state. + # The second letter (Y) denotes the working directory state. + # + # The following table presents the possible combinations: + # * The underscore character denotes whitespace. + # * The cell values stand for the following file states: + # a: added + # d: deleted + # m: modified + # r: renamed + # u: unmerged + # t: untracked + # * Cells with more than one letter signify that both states + # are simultaneously the case. This is possible since the git index + # and working directory operate independently of each other. + # * Cells which are empty are unhandled by this code. + # * T (= type change) is undocumented. + # See Git v1.7.8.2 release notes for more information. + # + # \ Y→ + # X \ + # ↓ | A | C | D | M | R | T | U | X | B | ? | _ + # ----+----+----+----+----+----+----+----+----+----+----+---- + # A | u | | ad | am | r | am | u | | | | a + # C | | | ad | am | r | am | u | | | | a + # D | | | u | am | r | am | u | | | | a + # M | | | ad | am | r | am | u | | | | a + # R | r | r | rd | rm | r | rm | ur | r | r | r | r + # T | | | ad | am | r | am | u | | | | a + # U | u | u | u | um | ur | um | u | u | u | u | u + # X | | | | m | r | m | u | | | | + # B | | | | m | r | m | u | | | | + # ? | | | | m | r | m | u | | | t | + # _ | | | d | m | r | m | u | | | | + set -l porcelain_status (command git status --porcelain 2>/dev/null | string sub -l2) + + set -l status_added 0 + if string match -qr '[ACDMT][ MT]|[ACMT]D' $porcelain_status + set status_added 1 + end + set -l status_deleted 0 + if string match -qr '[ ACMRT]D' $porcelain_status + set status_deleted 1 + end + set -l status_modified 0 + if string match -qr '[MT]$' $porcelain_status + set status_modified 1 + end + set -l status_renamed 0 + if string match -qe R $porcelain_status + set status_renamed 1 + end + set -l status_unmerged 0 + if string match -qr 'AA|DD|U' $porcelain_status + set status_unmerged 1 + end + set -l status_untracked 0 + if string match -qe '\?\?' $porcelain_status + set status_untracked 1 + end + + set_color -o + + if test -n "$branch" + if test $branch_detached -ne 0 + set_color brmagenta + else + set_color green + end + echo -n " $branch" + end + if test -n "$commit" + echo -n ' '(set_color yellow)"$commit" + end + if test -n "$action" + set_color normal + echo -n (set_color white)':'(set_color -o brred)"$action" + end + if test $status_ahead -ne 0 + echo -n ' '(set_color brmagenta)'⬆' + end + if test $status_behind -ne 0 + echo -n ' '(set_color brmagenta)'⬇' + end + if test $status_stashed -ne 0 + echo -n ' '(set_color cyan)'✭' + end + if test $status_added -ne 0 + echo -n ' '(set_color green)'✚' + end + if test $status_deleted -ne 0 + echo -n ' '(set_color red)'✖' + end + if test $status_modified -ne 0 + echo -n ' '(set_color blue)'✱' + end + if test $status_renamed -ne 0 + echo -n ' '(set_color magenta)'➜' + end + if test $status_unmerged -ne 0 + echo -n ' '(set_color yellow)'═' + end + if test $status_untracked -ne 0 + echo -n ' '(set_color white)'◼' + end + + set_color normal +end diff --git a/.config/fish/functions/fish_user_key_bindings.fish b/.config/fish/functions/fish_user_key_bindings.fish new file mode 100644 index 0000000..1c74db0 --- /dev/null +++ b/.config/fish/functions/fish_user_key_bindings.fish @@ -0,0 +1,8 @@ +function fish_user_key_bindings + fish_default_key_bindings -M insert + fish_vi_key_bindings --no-erase insert + bind -M default ctrl-a beginning-of-line + bind -M default ctrl-e end-of-line + bind -M insert ctrl-space accept-autosuggestion + bind -M insert ctrl-g 'git diff' repaint +end diff --git a/.config/hyde/hyde.conf b/.config/hyde/hyde.conf new file mode 100644 index 0000000..38a97ac --- /dev/null +++ b/.config/hyde/hyde.conf @@ -0,0 +1,2 @@ +hydeTheme="Synth Wave" +rofiStyle="2" diff --git a/.config/hypr/animations.conf b/.config/hypr/animations.conf new file mode 100644 index 0000000..4e33fd3 --- /dev/null +++ b/.config/hypr/animations.conf @@ -0,0 +1,21 @@ + +# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█ +# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█ + +# See https://wiki.hyprland.org/Configuring/Animations/ + +animations { + enabled = yes + bezier = wind, 0.05, 0.9, 0.1, 1.05 + bezier = winIn, 0.1, 1.1, 0.1, 1.1 + bezier = winOut, 0.3, -0.3, 0, 1 + bezier = liner, 1, 1, 1, 1 + animation = windows, 1, 6, wind, slide + animation = windowsIn, 1, 6, winIn, slide + animation = windowsOut, 1, 5, winOut, slide + animation = windowsMove, 1, 5, wind, slide + animation = border, 1, 1, liner + animation = borderangle, 1, 30, liner, loop + animation = fade, 1, 10, default + animation = workspaces, 1, 5, wind +} diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf new file mode 100644 index 0000000..faca14f --- /dev/null +++ b/.config/hypr/hyprland.conf @@ -0,0 +1,143 @@ + +#   ░▒▒▒░░░░░▓▓          ___________ +# ░░▒▒▒░░░░░▓▓        //___________/ +# ░░▒▒▒░░░░░▓▓     _   _ _    _ _____ +# ░░▒▒░░░░░▓▓▓▓▓▓ | | | | |  | |  __/ +# ░▒▒░░░░▓▓   ▓▓ | |_| | |_/ /| |___ +#  ░▒▒░░▓▓   ▓▓   \__  |____/ |____/ +#    ░▒▓▓   ▓▓  //____/ + + +$scrPath = $HOME/.local/share/bin # set scripts path + + +# █▀▄▀█ █▀█ █▄░█ █ ▀█▀ █▀█ █▀█ +# █░▀░█ █▄█ █░▀█ █ ░█░ █▄█ █▀▄ + +# See https://wiki.hyprland.org/Configuring/Monitors/ + +# monitor = ,preferred,auto,auto + + +# █░░ ▄▀█ █░█ █▄░█ █▀▀ █░█ +# █▄▄ █▀█ █▄█ █░▀█ █▄▄ █▀█ + +# See https://wiki.hyprland.org/Configuring/Keywords/ + +exec-once = $scrPath/resetxdgportal.sh # reset XDPH for screenshare +exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # for XDPH +exec-once = dbus-update-activation-environment --systemd --all # for XDPH +exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # for XDPH +exec-once = $scrPath/polkitkdeauth.sh # authentication dialogue for GUI apps +exec-once = waybar # launch the system bar +exec-once = blueman-applet # systray app for Bluetooth +exec-once = udiskie --no-automount --smart-tray # front-end that allows to manage removable media +exec-once = nm-applet --indicator # systray app for Network/Wifi +exec-once = dunst # start notification demon +exec-once = wl-paste --type text --watch cliphist store # clipboard store text data +exec-once = wl-paste --type image --watch cliphist store # clipboard store image data +exec-once = $scrPath/swwwallpaper.sh # start wallpaper daemon +exec-once = $scrPath/batterynotify.sh # battery notification +exec-once = xremap ~/.config/xremap/config.yml +exec-once = swayidle -w timeout 180 'swaylock --timestr %H:%M & brightnessctl -s & brightnessctl set 15' resume 'brightnessctl -r' + + +# █▀▀ █▄░█ █░█ +# ██▄ █░▀█ ▀▄▀ + +# See https://wiki.hyprland.org/Configuring/Environment-variables/ + +env = PATH,$PATH:$scrPath +env = XDG_CURRENT_DESKTOP,Hyprland +env = XDG_SESSION_TYPE,wayland +env = XDG_SESSION_DESKTOP,Hyprland +env = QT_QPA_PLATFORM,wayland;xcb +env = QT_QPA_PLATFORMTHEME,qt6ct +env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 +env = QT_AUTO_SCREEN_SCALE_FACTOR,1 +env = MOZ_ENABLE_WAYLAND,1 +env = GDK_SCALE,1 + + +# █ █▄░█ █▀█ █░█ ▀█▀ +# █ █░▀█ █▀▀ █▄█ ░█░ + +# See https://wiki.hyprland.org/Configuring/Variables/ + +# keyremap +input { + kb_layout = us + # kb_options=caps:swapescape + # kb_options=caps:ctrl_modifier + follow_mouse = 1 + + touchpad { + natural_scroll = no + } + + sensitivity = 0 + force_no_accel = 1 +} + +# See https://wiki.hyprland.org/Configuring/Keywords/#executing + +device { + name = epic mouse V1 + sensitivity = -0.5 +} + +# See https://wiki.hyprland.org/Configuring/Variables/ + +gestures { + workspace_swipe = true + workspace_swipe_fingers = 3 +} + + +# █░░ ▄▀█ █▄█ █▀█ █░█ ▀█▀ █▀ +# █▄▄ █▀█ ░█░ █▄█ █▄█ ░█░ ▄█ + +# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ + +dwindle { + pseudotile = yes + preserve_split = yes +} + +# See https://wiki.hyprland.org/Configuring/Master-Layout/ + +master { + new_status = master +} + + +# █▀▄▀█ █ █▀ █▀▀ +# █░▀░█ █ ▄█ █▄▄ + +# See https://wiki.hyprland.org/Configuring/Variables/ + +misc { + vrr = 0 + disable_hyprland_logo = true + disable_splash_rendering = true + force_default_wallpaper = 0 +} + +xwayland { + force_zero_scaling = true +} + + +# █▀ █▀█ █░█ █▀█ █▀▀ █▀▀ +# ▄█ █▄█ █▄█ █▀▄ █▄▄ ██▄ + +source = ~/.config/hypr/animations.conf +source = ~/.config/hypr/keybindings.conf +source = ~/.config/hypr/windowrules.conf +source = ~/.config/hypr/themes/common.conf # shared theme settings +source = ~/.config/hypr/themes/theme.conf # theme specific settings +source = ~/.config/hypr/themes/colors.conf # wallbash color override +source = ~/.config/hypr/monitors.conf # initially empty, to be configured by user and remains static +source = ~/.config/hypr/userprefs.conf # initially empty, to be configured by user and remains static + +# Note: as userprefs.conf is sourced at the end, settings configured in this file will override the defaults diff --git a/.config/hypr/keybindings.conf b/.config/hypr/keybindings.conf new file mode 100644 index 0000000..534ab24 --- /dev/null +++ b/.config/hypr/keybindings.conf @@ -0,0 +1,189 @@ + +# █▄▀ █▀▀ █▄█ █▄▄ █ █▄░█ █▀▄ █ █▄░█ █▀▀ █▀ +# █░█ ██▄ ░█░ █▄█ █ █░▀█ █▄▀ █ █░▀█ █▄█ ▄█ + +# See https://wiki.hyprland.org/Configuring/Keywords/ +# & https://wiki.hyprland.org/Configuring/Binds/ + +# Main modifier +$mainMod = Super # super / meta / windows key + +# Assign apps +$term = kitty # fish alacritty +$editor = neovide +$file = dolphin +$browser = librewolf +$yt = freetube +$notes = obsidian + + +# Window/Session actions +bind = $mainMod, Q, exec, $scrPath/dontkillsteam.sh # close focused window +bind = Alt, F4, exec, $scrPath/dontkillsteam.sh # close focused window +bind = $mainMod, Delete, exit, # kill hyprland session +bind = $mainMod, W, togglefloating, # toggle the window between focus and float +bind = $mainMod, G, togglegroup, # toggle the window between focus and group +bind = Alt, Return, fullscreen, # toggle the window between focus and fullscreen +bind = $mainMod, L, exec, swaylock --timestr %H:%M # launch lock screen +bind = Ctrl+Alt, W, exec, killall waybar || waybar # toggle waybar +# bind = $mainMod+Shift, F, exec, $scrPath/windowpin.sh # toggle pin on focused window +# bind = $mainMod, Backspace, exec, $scrPath/logoutlaunch.sh # launch logout menu + +# Application shortcuts +bind = Ctrl+Shift+Alt, T, exec, st # launch tilix terminal emulator - using for ssh +bind = Ctrl+Alt, T, exec, $term # launch terminal emulator +bind = $mainMod, T, exec, $term # launch terminal emulator +bind = $mainMod+Ctrl, T, exec, tilix # launch tilix terminal emulator +bind = $mainMod, E, exec, $file # launch file manager +bind = $mainMod, C, exec, $editor # launch text editor +bind = $mainMod, F, exec, $yt # launch yt alternative +bind = $mainMod, B, exec, $browser # launch web browser +bind = $mainMod, M, exec, $notes # launch notes app +bind = $mainMod, G, exec, gajim # launch messanger +bind = $mainMod, K, exec, keepassxc # launch password manager +bind = Ctrl+Shift, Escape, exec, $scrPath/sysmonlaunch.sh # launch system monitor (htop/btop or fallback to top) +# bind = $mainMod+Shift, B, exec, $browser, title: ^(LibreWolf Private Browsing)$ # launch private web browser + +# Rofi menus +bind = $mainMod, A, exec, pkill -x rofi || $scrPath/rofilaunch.sh d # launch application launcher +bind = $mainMod, Tab, exec, pkill -x rofi || $scrPath/rofilaunch.sh w # launch window switcher +bind = $mainMod+Shift, E, exec, pkill -x rofi || $scrPath/rofilaunch.sh f # launch file explorer + +# Audio control +# bindl = , F10, exec, $scrPath/volumecontrol.sh -o m # toggle audio mute +# bindel = , F11, exec, $scrPath/volumecontrol.sh -o d # decrease volume +# bindel = , F12, exec, $scrPath/volumecontrol.sh -o i # increase volume +bindl = , XF86AudioMute, exec, $scrPath/volumecontrol.sh -o m # toggle audio mute +bindl = , XF86AudioMicMute, exec, $scrPath/volumecontrol.sh -i m # toggle microphone mute +bindel = , XF86AudioLowerVolume, exec, $scrPath/volumecontrol.sh -o d # decrease volume +bindel = , XF86AudioRaiseVolume, exec, $scrPath/volumecontrol.sh -o i # increase volume + +# Media control +bindl = , XF86AudioPlay, exec, playerctl play-pause # toggle between media play and pause +bindl = , XF86AudioPause, exec, playerctl play-pause # toggle between media play and pause +bindl = , XF86AudioNext, exec, playerctl next # media next +bindl = , XF86AudioPrev, exec, playerctl previous # media previous + +# Brightness control +bindel = , XF86MonBrightnessUp, exec, $scrPath/brightnesscontrol.sh i # increase brightness +bindel = , XF86MonBrightnessDown, exec, $scrPath/brightnesscontrol.sh d # decrease brightness + +# Move between grouped windows +# bind = $mainMod CTRL , H, changegroupactive, b +# bind = $mainMod CTRL , L, changegroupactive, f + +# Screenshot/Screencapture +bind = $mainMod, P, exec, $scrPath/screenshot.sh s # partial screenshot capture +bind = $mainMod+Ctrl, P, exec, $scrPath/screenshot.sh sf # partial screenshot capture (frozen screen) +bind = $mainMod+Alt, P, exec, $scrPath/screenshot.sh m # monitor screenshot capture +bind = , Print, exec, $scrPath/screenshot.sh p # all monitors screenshot capture + +# Custom scripts +bind = $mainMod+Alt, G, exec, $scrPath/gamemode.sh # disable hypr effects for gamemode +bind = $mainMod+Alt, Right, exec, $scrPath/swwwallpaper.sh -n # next wallpaper +bind = $mainMod+Alt, Left, exec, $scrPath/swwwallpaper.sh -p # previous wallpaper +# bind = $mainMod+Alt, Up, exec, $scrPath/wbarconfgen.sh n # next waybar mode +# bind = $mainMod+Alt, Down, exec, $scrPath/wbarconfgen.sh p # previous waybar mode +bind = $mainMod+Shift, R, exec, pkill -x rofi || $scrPath/wallbashtoggle.sh -m # launch wallbash mode select menu +bind = $mainMod+Shift, T, exec, pkill -x rofi || $scrPath/themeselect.sh # launch theme select menu +bind = $mainMod+Shift, A, exec, pkill -x rofi || $scrPath/rofiselect.sh # launch select menu +bind = $mainMod+Shift, W, exec, pkill -x rofi || $scrPath/swwwallselect.sh # launch wallpaper select menu +bind = $mainMod, V, exec, pkill -x rofi || $scrPath/cliphist.sh c # launch clipboard +bind = $mainMod, K, exec, $scrPath/keyboardswitch.sh # switch keyboard layout +bind = $mainMod, slash, exec, pkill -x rofi || $scrPath/keybinds_hint.sh c # launch keybinds hint + +# Move/Change window focus +bind = $mainMod, Left, movefocus, l +bind = $mainMod, Right, movefocus, r +bind = $mainMod, Up, movefocus, u +bind = $mainMod, Down, movefocus, d +bind = $mainMod+Shift, h, movefocus, l +bind = $mainMod+Shift, l, movefocus, r +bind = $mainMod+Shift, k, movefocus, u +bind = $mainMod+Shift, j, movefocus, d +bind = Alt, Tab, movefocus, d + +# Switch workspaces with mod + [0-9] +bind = $mainMod, 1, workspace, r~1 +bind = $mainMod, 2, workspace, r~2 +bind = $mainMod, 3, workspace, r~3 +bind = $mainMod, 4, workspace, r~4 +bind = $mainMod, 5, workspace, r~5 +bind = $mainMod, 6, workspace, r~6 +bind = $mainMod, 7, workspace, r~7 +bind = $mainMod, 8, workspace, r~8 +bind = $mainMod, 9, workspace, r~9 +bind = $mainMod, 0, workspace, r~10 + +# Move focused window to a workspace +bind = $mainMod+Ctrl, 1, movetoworkspace, r~1 +bind = $mainMod+Ctrl, 2, movetoworkspace, r~2 +bind = $mainMod+Ctrl, 3, movetoworkspace, r~3 +bind = $mainMod+Ctrl, 4, movetoworkspace, r~4 +bind = $mainMod+Ctrl, 5, movetoworkspace, r~5 +bind = $mainMod+Ctrl, 6, movetoworkspace, r~6 +bind = $mainMod+Ctrl, 7, movetoworkspace, r~7 +bind = $mainMod+Ctrl, 8, movetoworkspace, r~8 +bind = $mainMod+Ctrl, 9, movetoworkspace, r~9 +bind = $mainMod+Ctrl, 0, movetoworkspace, r~10 + +# Move focused window to a workspace silently +bind = $mainMod+Alt, 1, movetoworkspacesilent, r~1 +bind = $mainMod+Alt, 2, movetoworkspacesilent, r~2 +bind = $mainMod+Alt, 3, movetoworkspacesilent, r~3 +bind = $mainMod+Alt, 4, movetoworkspacesilent, r~4 +bind = $mainMod+Alt, 5, movetoworkspacesilent, r~5 +bind = $mainMod+Alt, 6, movetoworkspacesilent, r~6 +bind = $mainMod+Alt, 7, movetoworkspacesilent, r~7 +bind = $mainMod+Alt, 8, movetoworkspacesilent, r~8 +bind = $mainMod+Alt, 9, movetoworkspacesilent, r~9 +bind = $mainMod+Alt, 0, movetoworkspacesilent, r~10 + +# Move/Switch to special workspace (scratchpad) +bind = $mainMod+Alt, S, movetoworkspacesilent, special +bind = $mainMod, S, togglespecialworkspace, + +# Toggle focused window split +bind = $mainMod, J, togglesplit + +# Switch workspaces to a relative workspace +bind = $mainMod+Ctrl, right, workspace, r+1 +bind = $mainMod+Ctrl, left, workspace, r-1 +bind = $mainMod+Ctrl, l, workspace, r+1 +bind = $mainMod+Ctrl, h, workspace, r-1 +bind = $mainMod+Ctrl, Down, workspace, empty # Move to the first empty workspace +bind = $mainMod+Ctrl, J, movewindow, mon:eDP-1 +bind = $mainMod+Ctrl, K, movewindow, mon:HDMI-A-1 + +# Resize windows +binde = $mainMod+Shift, Right, resizeactive, 30 0 +binde = $mainMod+Shift, Left, resizeactive, -30 0 +binde = $mainMod+Shift, Up, resizeactive, 0 -30 +binde = $mainMod+Shift, Down, resizeactive, 0 30 + +# added that to mimic i3's behavior, where pushing a workspace to another monitor also focuses it +# bind = $mainMod SHIFT, P, focusmonitor, +1 +# bind = $mainMod SHIFT, P, movecurrentworkspacetomonitor, +1 + +# Move active window around current workspace with mainMod + SHIFT + CTRL [←→↑↓] +# $moveactivewindow=grep -q "true" <<< $(hyprctl activewindow -j | jq -r .floating) && hyprctl dispatch moveactive +binded = $mainMod+Shift+Ctrl, left,Move activewindow to the right,exec, $moveactivewindow -30 0 || hyprctl dispatch movewindow l +binded = $mainMod+Shift+Ctrl, right,Move activewindow to the right,exec, $moveactivewindow 30 0 || hyprctl dispatch movewindow r +binded = $mainMod+Shift+Ctrl, up,Move activewindow to the right,exec, $moveactivewindow 0 -30 || hyprctl dispatch movewindow u +binded = $mainMod+Shift+Ctrl, down,Move activewindow to the right,exec, $moveactivewindow 0 30 || hyprctl dispatch movewindow d + +binded = $mainMod+Shift+Ctrl, h,Move activewindow to the right,exec, $moveactivewindow -30 0 || hyprctl dispatch movewindow l +binded = $mainMod+Shift+Ctrl, l,Move activewindow to the right,exec, $moveactivewindow 30 0 || hyprctl dispatch movewindow r +binded = $mainMod+Shift+Ctrl, k,Move activewindow to the right,exec, $moveactivewindow 0 -30 || hyprctl dispatch movewindow u +binded = $mainMod+Shift+Ctrl, j,Move activewindow to the right,exec, $moveactivewindow 0 30 || hyprctl dispatch movewindow d + +# Scroll through existing workspaces +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 + +# Move/Resize focused window +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow +bindm = $mainMod, Z, movewindow +bindm = $mainMod, X, resizewindow + diff --git a/.config/hypr/monitors.conf b/.config/hypr/monitors.conf new file mode 100644 index 0000000..8da85ed --- /dev/null +++ b/.config/hypr/monitors.conf @@ -0,0 +1,62 @@ + +# █▀▄▀█ █▀█ █▄░█ █ ▀█▀ █▀█ █▀█ █▀ +# █░▀░█ █▄█ █░▀█ █ ░█░ █▄█ █▀▄ ▄█ + +# Set your monitor configuration here +# See https://wiki.hyprland.org/Configuring/Monitors/ +# For a sample file, please refer to https://github.com/prasanthrangan/hyprdots/blob/main/Configs/.config/hypr/monitors.t2 + +$mainScreen = eDP-1 +$leftScreen = DP-2 +$rightScreen = HDMI-A-1 + +monitor = $mainScreen, 1366x768@60.14, 0x0, 1 # main screen +monitor = $leftScreen, 1920x1080@60, -1920x0, 1 # left +monitor = $rightScreen, 1920x1080@60,1366x0, 1 # right + +# monitor=HDMI-A-1,1920x1080@60,-1366x0,1 # hdmi on left +# monitor=HDMI-A-1,1920x1080@60,0x-768,1 # hdmi on top +# monitor=DP-2,640x480@59.94Hz,0x0,1 # vga + +# monitor = HDMI-A-1, 1366x768@60.00Hz, auto , 1, mirror, eDP-1 #mirror lapscreen +# monitor = eDP-1, 1920x1080@60.00Hz, auto , 1, mirror, HDMI-A-1 #main hdmi, lapscreen mirrors + +# monitor = , preferred, auto, 1, mirror, DP-2 # dmz projector +# monitor = eDP-1, 1920x1080@60, auto , 1, mirror, DP-2 #mirror vga test + +#Main Monitor +workspace = 1, monitor:$mainScreen, default:true +workspace = 2, monitor:$mainScreen +workspace = 3, monitor:$mainScreen +workspace = 4, monitor:$mainScreen +workspace = 5, monitor:$mainScreen +workspace = 6, monitor:$mainScreen +workspace = 7, monitor:$mainScreen +workspace = 8, monitor:$mainScreen +workspace = 9, monitor:$mainScreen +workspace = 10,monitor:$mainScreen + +# Second Monitor +workspace = 11, monitor:$rightScreen, default:true +workspace = 12, monitor:$rightScreen +workspace = 13, monitor:$rightScreen +workspace = 14, monitor:$rightScreen +workspace = 15, monitor:$rightScreen +workspace = 16, monitor:$rightScreen +workspace = 17, monitor:$rightScreen +workspace = 18, monitor:$rightScreen +workspace = 19, monitor:$rightScreen +workspace = 20, monitor:$rightScreen + +# Third Monitor +workspace = 21, monitor:$leftScreen, default:true +workspace = 22, monitor:$leftScreen +workspace = 23, monitor:$leftScreen +workspace = 24, monitor:$leftScreen +workspace = 25, monitor:$leftScreen +workspace = 26, monitor:$leftScreen +workspace = 27, monitor:$leftScreen +workspace = 28, monitor:$leftScreen +workspace = 29, monitor:$leftScreen +workspace = 30, monitor:$leftScreen + diff --git a/.config/hypr/themes/colors.conf b/.config/hypr/themes/colors.conf new file mode 100644 index 0000000..e69de29 diff --git a/.config/hypr/themes/common.conf b/.config/hypr/themes/common.conf new file mode 100644 index 0000000..45759cc --- /dev/null +++ b/.config/hypr/themes/common.conf @@ -0,0 +1,28 @@ + +# █▀▀ █░█ █▀█ █▀ █▀█ █▀█ +# █▄▄ █▄█ █▀▄ ▄█ █▄█ █▀▄ + +exec = hyprctl setcursor Bibata-Modern-Ice 20 +exec = gsettings set org.gnome.desktop.interface cursor-theme 'Bibata-Modern-Ice' +exec = gsettings set org.gnome.desktop.interface cursor-size 20 + + +# █▀▀ █▀█ █▄░█ ▀█▀ +# █▀░ █▄█ █░▀█ ░█░ + +exec = gsettings set org.gnome.desktop.interface font-name 'Cantarell 10' +exec = gsettings set org.gnome.desktop.interface document-font-name 'Cantarell 10' +exec = gsettings set org.gnome.desktop.interface monospace-font-name 'CaskaydiaCove Nerd Font Mono 9' +exec = gsettings set org.gnome.desktop.interface font-antialiasing 'rgba' +exec = gsettings set org.gnome.desktop.interface font-hinting 'full' + + +# █▀ █▀█ █▀▀ █▀▀ █ ▄▀█ █░░ +# ▄█ █▀▀ ██▄ █▄▄ █ █▀█ █▄▄ + +decoration { + dim_special = 0.3 + blur { + special = true + } +} diff --git a/.config/hypr/themes/theme.conf b/.config/hypr/themes/theme.conf new file mode 100644 index 0000000..c1db14f --- /dev/null +++ b/.config/hypr/themes/theme.conf @@ -0,0 +1,36 @@ +exec = gsettings set org.gnome.desktop.interface icon-theme 'Tela-circle-dracula' +exec = gsettings set org.gnome.desktop.interface gtk-theme 'Catppuccin-Mocha' +exec = gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' + +general { + gaps_in = 2 #3 + gaps_out = 4 #8 + border_size = 1 #2 + col.active_border = rgba(ca9ee6ff) rgba(f2d5cfff) 45deg + col.inactive_border = rgba(b4befecc) rgba(6c7086cc) 45deg + layout = dwindle + resize_on_border = true +} + +group { + col.border_active = rgba(ca9ee6ff) rgba(f2d5cfff) 45deg + col.border_inactive = rgba(b4befecc) rgba(6c7086cc) 45deg + col.border_locked_active = rgba(ca9ee6ff) rgba(f2d5cfff) 45deg + col.border_locked_inactive = rgba(b4befecc) rgba(6c7086cc) 45deg +} + +decoration { + rounding = 6 #10 +# drop_shadow = true #false + + blur { + enabled = yes + size = 6 + passes = 3 + new_optimizations = on + ignore_opacity = on + xray = false + } +} + +layerrule = blur,waybar diff --git a/.config/hypr/userprefs.conf b/.config/hypr/userprefs.conf new file mode 100644 index 0000000..7ee4618 --- /dev/null +++ b/.config/hypr/userprefs.conf @@ -0,0 +1,6 @@ + +# █░█ █▀ █▀▀ █▀█   █▀█ █▀█ █▀▀ █▀▀ █▀ +# █▄█ ▄█ ██▄ █▀▄   █▀▀ █▀▄ ██▄ █▀░ ▄█ + +# Set your personal hyprland configuration here +# For a sample file, please refer to https://github.com/prasanthrangan/hyprdots/blob/main/Configs/.config/hypr/userprefs.t2 diff --git a/.config/hypr/windowrules.conf b/.config/hypr/windowrules.conf new file mode 100644 index 0000000..da1f5d8 --- /dev/null +++ b/.config/hypr/windowrules.conf @@ -0,0 +1,108 @@ + +# █░█░█ █ █▄░█ █▀▄ █▀█ █░█░█   █▀█ █░█ █░░ █▀▀ █▀ +# ▀▄▀▄▀ █ █░▀█ █▄▀ █▄█ ▀▄▀▄▀   █▀▄ █▄█ █▄▄ ██▄ ▄█ + +# See https://wiki.hyprland.org/Configuring/Window-Rules/ +# hyprctl clients to get names + +windowrulev2 = opacity 0.90 0.90,class:^(neovide)$ +windowrulev2 = opacity 0.90 0.90,class:^(firefox)$ +windowrulev2 = opacity 0.80 0.80,class:^(betterbird)$ +windowrulev2 = opacity 0.80 0.80,class:^(org.qbittorrent.qBittorrent)$ +windowrulev2 = opacity 0.80 0.80,class:^(org.gajim.Gajim)$ +windowrulev2 = opacity 0.80 0.80,class:^(Chromium)$ +windowrulev2 = opacity 0.80 0.80,class:^(FreeTube)$ +windowrulev2 = opacity 0.80 0.80,class:^(LibreWolf)$ +windowrulev2 = opacity 0.80 0.60,class:^(obsidian)$ +windowrulev2 = opacity 0.80 0.80,class:^(VSCodium)$ +windowrulev2 = opacity 0.80 0.80,class:^(codium-url-handler)$ +windowrulev2 = opacity 0.80 0.80,class:^(code-oss)$ +windowrulev2 = opacity 0.80 0.80,class:^(Code)$ +windowrulev2 = opacity 0.80 0.80,class:^(code-url-handler)$ +windowrulev2 = opacity 0.80 0.80,class:^(code-insiders-url-handler)$ +windowrulev2 = opacity 0.80 0.80,class:^(kitty)$ +windowrulev2 = opacity 0.70 0.70,class:^(tilix)$ +windowrulev2 = opacity 0.70 0.70,class:^(rustdesk)$ +windowrulev2 = opacity 0.80 0.80,class:^(org.kde.dolphin)$ +windowrulev2 = opacity 0.80 0.80,class:^(org.kde.ark)$ +windowrulev2 = opacity 0.80 0.80,class:^(nwg-look)$ +windowrulev2 = opacity 0.80 0.80,class:^(qt5ct)$ +windowrulev2 = opacity 0.80 0.80,class:^(qt6ct)$ +windowrulev2 = opacity 0.80 0.80,class:^(kvantummanager)$ +windowrulev2 = opacity 0.80 0.70,class:^(org.pulseaudio.pavucontrol)$ +windowrulev2 = opacity 0.80 0.70,class:^(lagrange)$ +windowrulev2 = opacity 0.80 0.70,class:^(blueman-manager)$ +windowrulev2 = opacity 0.80 0.70,class:^(nm-applet)$ +windowrulev2 = opacity 0.80 0.70,class:^(nm-connection-editor)$ +windowrulev2 = opacity 0.80 0.70,class:^(org.kde.polkit-kde-authentication-agent-1)$ +windowrulev2 = opacity 0.80 0.70,class:^(polkit-gnome-authentication-agent-1)$ +windowrulev2 = opacity 0.80 0.70,class:^(org.freedesktop.impl.portal.desktop.gtk)$ +windowrulev2 = opacity 0.80 0.70,class:^(org.freedesktop.impl.portal.desktop.hyprland)$ +windowrulev2 = opacity 0.70 0.70,class:^(Ferdium)$ +windowrulev2 = opacity 0.70 0.70,class:^(org.keepassxc.KeePassXC)$ +windowrulev2 = opacity 0.70 0.70,class:^([Ss]team)$ + +windowrulev2 = opacity 0.90 0.90,class:^(com.github.rafostar.Clapper)$ # Clapper-Gtk +windowrulev2 = opacity 0.80 0.80,class:^(com.github.tchx84.Flatseal)$ # Flatseal-Gtk +windowrulev2 = opacity 0.80 0.80,class:^(hu.kramo.Cartridges)$ # Cartridges-Gtk +windowrulev2 = opacity 0.80 0.80,class:^(com.obsproject.Studio)$ # Obs-Qt +windowrulev2 = opacity 0.80 0.80,class:^(gnome-boxes)$ # Boxes-Gtk +windowrulev2 = opacity 0.80 0.80,class:^(discord)$ # Discord-Electron +windowrulev2 = opacity 0.80 0.80,class:^(WebCord)$ # WebCord-Electron +windowrulev2 = opacity 0.80 0.80,class:^(ArmCord)$ # ArmCord-Electron +windowrulev2 = opacity 0.80 0.80,class:^(app.drey.Warp)$ # Warp-Gtk +windowrulev2 = opacity 0.80 0.80,class:^(net.davidotek.pupgui2)$ # ProtonUp-Qt +windowrulev2 = opacity 0.80 0.80,class:^(yad)$ # Protontricks-Gtk +windowrulev2 = opacity 0.80 0.80,class:^(Signal)$ # Signal-Gtk +windowrulev2 = opacity 0.80 0.80,class:^(io.github.alainm23.planify)$ # planify-Gtk +windowrulev2 = opacity 0.80 0.80,class:^(io.gitlab.theevilskeleton.Upscaler)$ # Upscaler-Gtk +windowrulev2 = opacity 0.80 0.80,class:^(com.github.unrud.VideoDownloader)$ # VideoDownloader-Gtk +windowrulev2 = opacity 0.80 0.80,class:^(io.gitlab.adhami3310.Impression)$ # Impression-Gtk +windowrulev2 = opacity 0.80 0.80,class:^(io.missioncenter.MissionCenter)$ # MissionCenter-Gtk +windowrulev2 = opacity 0.80 0.80,class:^(io.github.flattool.Warehouse)$ # Warehouse-Gtk + +windowrulev2 = float,class:^(org.kde.dolphin)$,title:^(Progress Dialog — Dolphin)$ +windowrulev2 = float,class:^(org.kde.dolphin)$,title:^(Copying — Dolphin)$ +windowrulev2 = float,title:^(About Mozilla Firefox)$ +windowrulev2 = float,class:^(firefox)$,title:^(Picture-in-Picture)$ +windowrulev2 = float,class:^(firefox)$,title:^(Library)$ +windowrulev2 = float,class:^(kitty)$,title:^(top)$ +windowrulev2 = float,class:^(kitty)$,title:^(btop)$ +windowrulev2 = float,class:^(kitty)$,title:^(htop)$ +windowrulev2 = float,class:^(vlc)$ +windowrulev2 = float,class:^(kvantummanager)$ +windowrulev2 = float,class:^(qt5ct)$ +windowrulev2 = float,class:^(qt6ct)$ +windowrulev2 = float,class:^(nwg-look)$ +windowrulev2 = float,class:^(org.kde.ark)$ +windowrulev2 = float,class:^(org.pulseaudio.pavucontrol)$ +windowrulev2 = float,class:^(blueman-manager)$ +windowrulev2 = float,class:^(nm-applet)$ +windowrulev2 = float,class:^(nm-connection-editor)$ +windowrulev2 = float,class:^(org.kde.polkit-kde-authentication-agent-1)$ + +windowrulev2 = float,class:^(Signal)$ # Signal-Gtk +windowrulev2 = float,class:^(com.github.rafostar.Clapper)$ # Clapper-Gtk +windowrulev2 = float,class:^(app.drey.Warp)$ # Warp-Gtk +windowrulev2 = float,class:^(net.davidotek.pupgui2)$ # ProtonUp-Qt +windowrulev2 = float,class:^(yad)$ # Protontricks-Gtk +windowrulev2 = float,class:^(eog)$ # Imageviewer-Gtk +windowrulev2 = float,class:^(io.github.alainm23.planify)$ # planify-Gtk +windowrulev2 = float,class:^(io.gitlab.theevilskeleton.Upscaler)$ # Upscaler-Gtk +windowrulev2 = float,class:^(com.github.unrud.VideoDownloader)$ # VideoDownloader-Gkk +windowrulev2 = float,class:^(io.gitlab.adhami3310.Impression)$ # Impression-Gtk +windowrulev2 = float,class:^(io.missioncenter.MissionCenter)$ # MissionCenter-Gtk + + +# █░░ ▄▀█ █▄█ █▀▀ █▀█   █▀█ █░█ █░░ █▀▀ █▀ +# █▄▄ █▀█ ░█░ ██▄ █▀▄   █▀▄ █▄█ █▄▄ ██▄ ▄█ + +layerrule = blur,rofi +layerrule = ignorezero,rofi +layerrule = blur,notifications +layerrule = ignorezero,notifications +layerrule = blur,swaync-notification-window +layerrule = ignorezero,swaync-notification-window +layerrule = blur,swaync-control-center +layerrule = ignorezero,swaync-control-center +layerrule = blur,logout_dialog diff --git a/.config/kitty/kitty.conf b/.config/kitty/kitty.conf new file mode 100644 index 0000000..c85b4a2 --- /dev/null +++ b/.config/kitty/kitty.conf @@ -0,0 +1,12 @@ +font_family CaskaydiaCove Nerd Font Mono +bold_font auto +italic_font auto +bold_italic_font auto +enable_audio_bell no + +font_size 9.0 +window_padding_width 25 +include theme.conf +#background_opacity 0.60 +#hide_window_decorations yes +#confirm_os_window_close 0 diff --git a/.config/kitty/theme.conf b/.config/kitty/theme.conf new file mode 100644 index 0000000..4511d8d --- /dev/null +++ b/.config/kitty/theme.conf @@ -0,0 +1,59 @@ + +# The basic colors +foreground #ffffff +background #262335 +selection_foreground #262335 +selection_background #f97e72 + +# Cursor colors +cursor #f97e72 +cursor_text_color #262335 + +# URL underline color when hovering with mouse +url_color #f97e72 + +# OS Window titlebar colors +wayland_titlebar_color system +macos_titlebar_color system + +# Colors for marks (marked text in the terminal) +mark1_foreground #262335 +mark1_background #614D85 +mark2_foreground #262335 +mark2_background #614D85 +mark3_foreground #262335 +mark3_background #614D85 + +# The 16 terminal colors + +# black +color0 #232530 +color8 #232530 + +# red +color1 #fe4450 +color9 #fe4450 + +# green +color2 #72f1b8 +color10 #72f1b8 + +# yellow +color3 #ff7edb +color11 #ff7edb + +# blue +color4 #03edf9 +color12 #03edf9 + +# magenta +color5 #fede5d +color13 #f3e70f + +# cyan +color6 #03edf9 +color14 #03edf9 + +# white +color7 #ffffff +color15 #ffffff diff --git a/.config/nvim/.stylua.toml b/.config/nvim/.stylua.toml new file mode 100644 index 0000000..ecb6dca --- /dev/null +++ b/.config/nvim/.stylua.toml @@ -0,0 +1,6 @@ +column_width = 120 +line_endings = "Unix" +indent_type = "Spaces" +indent_width = 2 +quote_style = "AutoPreferDouble" +call_parentheses = "None" diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua new file mode 100644 index 0000000..f23bda3 --- /dev/null +++ b/.config/nvim/init.lua @@ -0,0 +1,63 @@ +vim.g.base46_cache = vim.fn.stdpath "data" .. "/base46/" +vim.g.mapleader = " " + +----- custom config ----- + +if vim.g.neovide then + vim.g.neovide_transparency = 0.7 + vim.g.neovide_scale_factor = 0.7 + vim.g.neovide_window_blurred = true + vim.g.neovide_floating_blur_amount_x = 1.0 + vim.g.neovide_floating_blur_amount_y = 1.0 + vim.g.neovide_floating_shadow = true + vim.g.neovide_floating_z_height = 0 + vim.g.neovide_hide_mouse_when_typing = true + vim.g.neovide_padding_top = 15 + vim.g.neovide_padding_right = 5 + vim.g.neovide_padding_left = 5 + -- vim.g.neovide_fullscreen = true + -- vim.g.neovide_padding_bottom = 0 + -- vim.g.neovide_light_radius = 5 + -- vim.g.neovide_show_border = false + -- vim.g.neovide_light_angle_degrees = 45 +end + +vim.opt.relativenumber = true + +----- end of custom ----- + + +-- bootstrap lazy and all plugins +local lazypath = vim.fn.stdpath "data" .. "/lazy/lazy.nvim" + +if not vim.uv.fs_stat(lazypath) then + local repo = "https://github.com/folke/lazy.nvim.git" + vim.fn.system { "git", "clone", "--filter=blob:none", repo, "--branch=stable", lazypath } +end + +vim.opt.rtp:prepend(lazypath) + +local lazy_config = require "configs.lazy" + +-- load plugins +require("lazy").setup({ + { + "NvChad/NvChad", + lazy = false, + branch = "v2.5", + import = "nvchad.plugins", + }, + + { import = "plugins" }, +}, lazy_config) + +-- load theme +dofile(vim.g.base46_cache .. "defaults") +dofile(vim.g.base46_cache .. "statusline") + +require "options" +require "nvchad.autocmds" + +vim.schedule(function() + require "mappings" +end) diff --git a/.config/nvim/lua/chadrc.lua b/.config/nvim/lua/chadrc.lua new file mode 100644 index 0000000..2277455 --- /dev/null +++ b/.config/nvim/lua/chadrc.lua @@ -0,0 +1,18 @@ +-- This file needs to have same structure as nvconfig.lua +-- https://github.com/NvChad/ui/blob/v3.0/lua/nvconfig.lua +-- Please read that file to know all available options :( + +---@type ChadrcConfig +local M = {} + +M.base46 = { + theme = "onedark", + transparency = true + + -- hl_override = { + -- Comment = { italic = true }, + -- ["@comment"] = { italic = true }, + -- }, +} + +return M diff --git a/.config/nvim/lua/configs/conform.lua b/.config/nvim/lua/configs/conform.lua new file mode 100644 index 0000000..35ba6cf --- /dev/null +++ b/.config/nvim/lua/configs/conform.lua @@ -0,0 +1,15 @@ +local options = { + formatters_by_ft = { + lua = { "stylua" }, + -- css = { "prettier" }, + -- html = { "prettier" }, + }, + + -- format_on_save = { + -- -- These options will be passed to conform.format() + -- timeout_ms = 500, + -- lsp_fallback = true, + -- }, +} + +return options diff --git a/.config/nvim/lua/configs/lazy.lua b/.config/nvim/lua/configs/lazy.lua new file mode 100644 index 0000000..cd170bd --- /dev/null +++ b/.config/nvim/lua/configs/lazy.lua @@ -0,0 +1,47 @@ +return { + defaults = { lazy = true }, + install = { colorscheme = { "nvchad" } }, + + ui = { + icons = { + ft = "", + lazy = "󰂠 ", + loaded = "", + not_loaded = "", + }, + }, + + performance = { + rtp = { + disabled_plugins = { + "2html_plugin", + "tohtml", + "getscript", + "getscriptPlugin", + "gzip", + "logipat", + "netrw", + "netrwPlugin", + "netrwSettings", + "netrwFileHandlers", + "matchit", + "tar", + "tarPlugin", + "rrhelper", + "spellfile_plugin", + "vimball", + "vimballPlugin", + "zip", + "zipPlugin", + "tutor", + "rplugin", + "syntax", + "synmenu", + "optwin", + "compiler", + "bugreport", + "ftplugin", + }, + }, + }, +} diff --git a/.config/nvim/lua/configs/lspconfig.lua b/.config/nvim/lua/configs/lspconfig.lua new file mode 100644 index 0000000..478df01 --- /dev/null +++ b/.config/nvim/lua/configs/lspconfig.lua @@ -0,0 +1,24 @@ +-- load defaults i.e lua_lsp +require("nvchad.configs.lspconfig").defaults() + +local lspconfig = require "lspconfig" + +-- EXAMPLE +local servers = { "html", "cssls" } +local nvlsp = require "nvchad.configs.lspconfig" + +-- lsps with default config +for _, lsp in ipairs(servers) do + lspconfig[lsp].setup { + on_attach = nvlsp.on_attach, + on_init = nvlsp.on_init, + capabilities = nvlsp.capabilities, + } +end + +-- configuring single server, example: typescript +-- lspconfig.ts_ls.setup { +-- on_attach = nvlsp.on_attach, +-- on_init = nvlsp.on_init, +-- capabilities = nvlsp.capabilities, +-- } diff --git a/.config/nvim/lua/mappings.lua b/.config/nvim/lua/mappings.lua new file mode 100644 index 0000000..f638e6f --- /dev/null +++ b/.config/nvim/lua/mappings.lua @@ -0,0 +1,9 @@ +require "nvchad.mappings" + +-- add yours here + +local map = vim.keymap.set + +map("n", ";", ":", { desc = "CMD enter command mode" }) +-- map({ "n", "i", "v" }, "", " w ") + diff --git a/.config/nvim/lua/options.lua b/.config/nvim/lua/options.lua new file mode 100644 index 0000000..738f20b --- /dev/null +++ b/.config/nvim/lua/options.lua @@ -0,0 +1,6 @@ +require "nvchad.options" + +-- add yours here! + +-- local o = vim.o +-- o.cursorlineopt ='both' -- to enable cursorline! diff --git a/.config/nvim/lua/plugins/init.lua b/.config/nvim/lua/plugins/init.lua new file mode 100644 index 0000000..6474776 --- /dev/null +++ b/.config/nvim/lua/plugins/init.lua @@ -0,0 +1,25 @@ +return { + { + "stevearc/conform.nvim", + -- event = 'BufWritePre', -- uncomment for format on save + opts = require "configs.conform", + }, + + -- These are some examples, uncomment them if you want to see them work! + { + "neovim/nvim-lspconfig", + config = function() + require "configs.lspconfig" + end, + }, + + -- { + -- "nvim-treesitter/nvim-treesitter", + -- opts = { + -- ensure_installed = { + -- "vim", "lua", "vimdoc", + -- "html", "css" + -- }, + -- }, + -- }, +} diff --git a/.config/pyradio/config b/.config/pyradio/config new file mode 100644 index 0000000..62fdcc4 --- /dev/null +++ b/.config/pyradio/config @@ -0,0 +1,6 @@ +# PyRadio User Configuration File +# To get a full list of options execute: pyradio -pc +# or examine the file: /usr/lib/python3.12/site-packages/pyradio/config +# +theme = blue-by-boxer +use_transparency = True diff --git a/.config/pyradio/stations.csv b/.config/pyradio/stations.csv new file mode 100644 index 0000000..28dbdc4 --- /dev/null +++ b/.config/pyradio/stations.csv @@ -0,0 +1,48 @@ +Chillout (Groove Salad - SomaFM),http://somafm.com/startstream=groovesalad.pls,, +Alternative (BAGeL Radio),https://ais-sa3.cdnstream1.com/2606_128.aac,, +Hirschmilch Psytrance,https://hirschmilch.de:7001/psytrance.mp3,, +Bluffphonica,http://bluffphonica.stream.laut.fm/bluffphonica?pl=m3u&t302=2024-09-17_23-09-40&uuid=ce6a1b0b-1654-4d08-afbc-31b028f8f23b,, +Radio Caprice - Suomisaundi,http://79.120.77.11:8004/suomisaundi,, +psyradio * fm - chillout,http://streamer.psyradio.org:8020/;listen.mp3,, +Full-on psytrance,http://79.111.14.76:9019/,, +Vasilis Cfu psy trance,https://stream-40.zeno.fm/c2t7d9p6mf9uv?zs=_D-E0xBPQcGB_V9n7LLuqA,, +TL_Psytrance,https://stream.technolovers.fm/psytrance,, +Record Goa Psy,https://radiorecord.hostingradio.ru/goa96.aacp,, +1.FM - BOM Psytrance Radio,http://strm112.1.fm/psytrance_mobile_mp3,, +Anima Amoris [Goa Psy Trance],http://amoris.sknt.ru/goa.mp3,, +DMT FM Psytrance 24/7,https://dc1.serverse.com/proxy/ywycfrxn/live,, +radiOzora Trance,http://trance.out.airtime.pro:8000/trance_a,, +Psyndora Psytrance,http://cast.magicstreams.gr:9111/stream,, +Celtic (ThistleRadio - SomaFM),http://somafm.com/thistle.pls,, +Groove Salad Classic (Early 2000s Ambient),https://somafm.com/gsclassic.pls,, +n5MD Radio (Ambient and Experimental),https://somafm.com/n5md.pls,, +Vaporwaves [SomaFM],https://somafm.com/vaporwaves.pls,, +Commodore 64 Remixes (Slay Radio),http://www.slayradio.org/tune_in.php/128kbps/listen.m3u,, +Covers (SomaFM),http://somafm.com/covers.pls,, +Downtempo (Secret Agent - SomaFM),http://somafm.com/secretagent.pls,, +Dub Step (Dub Step Beyond - SomaFM),http://somafm.com/dubstep.pls,, +Electronic/Dance (Electronic Culture),http://www.shouted.fm/tunein/electro-dsl.m3u,, +House (Beat Blender - SomaFM),http://somafm.com/startstream=beatblender.pls,, +Indie Pop (Indie Pop Rocks! - SomaFM),http://somafm.com/indiepop130.pls,, +Intelligent dance music (Cliq Hop - SomaFM),http://somafm.com/startstream=cliqhop.pls,, +Jazz (Sonic Universe - SomaFM),http://somafm.com/startstream=sonicuniverse.pls,, +Lounge (Illinois Street Lounge - SomaFM),http://somafm.com/illstreet.pls,, +The Trip: [SomaFM],https://somafm.com/thetrip.pls,, +Pop (PopTron! - SomaFM),http://somafm.com/poptron.pls,, +Pop/Rock/Urban (Frequence 3 - Paris),http://streams.frequence3.net/hd-mp3.m3u,, +Progressive (Tags Trance Trip - SomaFM),http://somafm.com/tagstrance.pls,, +Public Radio (NPR National Public Radio Stream),https://npr-ice.streamguys1.com/live.mp3,, +Reggae Dancehall (Ragga Kings),https://raggakings.radio:8443/stream.ogg,, +Heavyweight Reggae,https://somafm.com/reggae.pls,, +Rock (Digitalis - SomaFM),http://somafm.com/digitalis.pls,, +Metal Detector,https://somafm.com/metal.pls,, +DanceUK,https://www.internet-radio.com/servers/tools/playlistgenerator/?u=http://uk2.internet-radio.com:8024/listen.pls&t=.pls,, +JazzGroove,https://www.internet-radio.com/servers/tools/playlistgenerator/?u=http://199.180.72.2:8015/listen.pls?sid=1&t=.pls,, +Radio Paradise - Main Mix,http://stream.radioparadise.com/aac-128,, +Radio Paradise - Mellow Mix,http://stream.radioparadise.com/mellow-128,, +Radio Paradise - Rock Mix,http://stream.radioparadise.com/rock-128,, +Radio Paradise - Eclectic Mix,http://stream.radioparadise.com/eclectic-128,, +Echoes of Bluemars,http://streams.echoesofbluemars.org:8000/bluemars.m3u,, +Echoes of Bluemars - Cryosleep,http://streams.echoesofbluemars.org:8000/cryosleep.m3u,, +Echoes of Bluemars - Voices from Within,http://streams.echoesofbluemars.org:8000/voicesfromwithin.m3u,, +Synphaera Radio (Space Music),https://somafm.com/synphaera.pls,, diff --git a/.config/swaylock/config b/.config/swaylock/config new file mode 100644 index 0000000..8490666 --- /dev/null +++ b/.config/swaylock/config @@ -0,0 +1,38 @@ +daemonize +show-failed-attempts +clock +screenshot +effect-blur=10x10 +effect-vignette=1:1 +color=1f1d2e80 +font="Inter" +indicator +indicator-radius=200 +indicator-thickness=20 +line-color=1f1d2e +ring-color=191724 +inside-color=1f1d2e +key-hl-color=eb6f92 +separator-color=00000000 +text-color=e0def4 +text-caps-lock-color="" +line-ver-color=eb6f92 +ring-ver-color=eb6f92 +inside-ver-color=1f1d2e +text-ver-color=e0def4 +ring-wrong-color=31748f +text-wrong-color=31748f +inside-wrong-color=1f1d2e +inside-clear-color=1f1d2e +text-clear-color=e0def4 +ring-clear-color=9ccfd8 +line-clear-color=1f1d2e +line-wrong-color=1f1d2e +bs-hl-color=31748f +grace=2 +grace-no-mouse +grace-no-touch +datestr=%a, %B %e +timestr=%I:%M %p +fade-in=0.5 +ignore-empty-password diff --git a/.config/waybar/config.ctl b/.config/waybar/config.ctl new file mode 100644 index 0000000..1e5cab1 --- /dev/null +++ b/.config/waybar/config.ctl @@ -0,0 +1,24 @@ +0|28|bottom|( cpu memory custom/cpuinfo custom/gpuinfo ) ( idle_inhibitor clock )|( hyprland/workspaces hyprland/window )|( backlight network pulseaudio pulseaudio#microphone custom/updates custom/keybindhint ) ( tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power ) +0|28|top|( cpu memory custom/cpuinfo custom/gpuinfo ) ( idle_inhibitor clock )|( hyprland/workspaces hyprland/window )|( backlight network pulseaudio pulseaudio#microphone custom/updates custom/keybindhint ) ( tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power ) +0|28|bottom|( cpu memory custom/cpuinfo custom/gpuinfo ) ( idle_inhibitor clock ) ( hyprland/workspaces )|( hyprland/window )|( backlight network pulseaudio pulseaudio#microphone custom/updates custom/keybindhint ) ( tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power ) +0|28|top|( cpu memory custom/cpuinfo ) ( idle_inhibitor clock ) ( hyprland/workspaces )|( hyprland/window )|( backlight network pulseaudio pulseaudio#microphone custom/updates custom/keybindhint ) ( tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power ) +0||bottom|( hyprland/workspaces hyprland/window )|( idle_inhibitor clock )|( cpu memory custom/cpuinfo custom/gpuinfo ) ( backlight network pulseaudio pulseaudio#microphone custom/updates custom/keybindhint ) ( tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power ) +0||top|( hyprland/workspaces hyprland/window )|( idle_inhibitor clock )|( cpu memory custom/cpuinfo custom/gpuinfo ) ( backlight network pulseaudio pulseaudio#microphone custom/updates custom/keybindhint ) ( tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power ) +0|31|bottom|( custom/power custom/cliphist custom/wbar custom/theme custom/wallchange ) ( wlr/taskbar custom/spotify ) |( idle_inhibitor clock )|( tray battery ) ( backlight network pulseaudio pulseaudio#microphone custom/notifications custom/keybindhint ) +0|31|left|( custom/power custom/cliphist custom/wbar custom/theme custom/wallchange ) ( wlr/taskbar custom/spotify ) |( idle_inhibitor clock )|( tray battery ) ( backlight network pulseaudio pulseaudio#microphone custom/keybindhint ) +0|31|top|( custom/power custom/cliphist custom/wbar custom/theme custom/wallchange ) ( wlr/taskbar custom/spotify ) |( idle_inhibitor clock )|( tray battery ) ( backlight network pulseaudio pulseaudio#microphone custom/keybindhint ) +0|31|right|( custom/power custom/cliphist custom/wbar custom/theme custom/wallchange ) ( wlr/taskbar custom/spotify ) |( idle_inhibitor clock )|( tray battery ) ( backlight network pulseaudio pulseaudio#microphone custom/keybindhint ) +0|32|bottom||( custom/power ) ( tray battery ) ( wlr/taskbar idle_inhibitor clock ) ( custom/cliphist ) ( custom/wbar ) ( custom/wallchange ) ( custom/theme )| +0|32|left||( custom/power ) ( tray battery ) ( wlr/taskbar idle_inhibitor clock ) ( custom/cliphist ) ( custom/wbar ) ( custom/wallchange ) ( custom/theme )| +1|32|top||( custom/power ) ( tray battery ) ( wlr/taskbar idle_inhibitor clock ) ( custom/cliphist ) ( custom/wbar ) ( custom/wallchange ) ( custom/theme )| +0|32|right||( custom/power ) ( tray battery ) ( wlr/taskbar idle_inhibitor clock ) ( custom/cliphist ) ( custom/wbar ) ( custom/wallchange ) ( custom/theme )| +0|31|bottom|( cpu memory custom/cpuinfo custom/gpuinfo ) ( idle_inhibitor clock ) ( hyprland/workspaces )|( wlr/taskbar )|( backlight network pulseaudio pulseaudio#microphone custom/updates custom/keybindhint ) ( tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power ) +0|31|top|( cpu memory custom/cpuinfo custom/gpuinfo ) ( idle_inhibitor clock ) ( hyprland/workspaces )|( wlr/taskbar )|( backlight network pulseaudio pulseaudio#microphone custom/updates custom/keybindhint ) ( tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power ) +0|29|bottom|( wlr/taskbar mpris )|( idle_inhibitor clock )|( backlight network pulseaudio pulseaudio#microphone custom/updates ) ( tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power ) +0|29|left|( wlr/taskbar mpris )|( idle_inhibitor clock )|( backlight network pulseaudio pulseaudio#microphone custom/updates ) ( tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power ) +0|29|top|( wlr/taskbar mpris )|( idle_inhibitor clock )|( backlight network pulseaudio pulseaudio#microphone custom/updates ) ( tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power ) +0|29|right|( wlr/taskbar mpris )|( idle_inhibitor clock )|( backlight network pulseaudio pulseaudio#microphone custom/updates ) ( tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power ) +0|28|bottom|( custom/power custom/cliphist custom/wbar custom/theme custom/wallchange ) ( idle_inhibitor clock custom/spotify )|( wlr/taskbar )|( tray ) ( backlight network pulseaudio pulseaudio#microphone ) +0|28|left|( custom/power custom/cliphist custom/wbar custom/theme custom/wallchange ) ( idle_inhibitor clock custom/spotify )|( wlr/taskbar )|( tray ) ( backlight network pulseaudio pulseaudio#microphone ) +0|28|top|( custom/power custom/cliphist custom/wbar custom/theme custom/wallchange ) ( idle_inhibitor clock custom/spotify )|( wlr/taskbar )|( tray ) ( backlight network pulseaudio pulseaudio#microphone ) +0|28|right|( custom/power custom/cliphist custom/wbar custom/theme custom/wallchange ) ( idle_inhibitor clock custom/spotify )|( wlr/taskbar )|( tray ) ( backlight network pulseaudio pulseaudio#microphone ) diff --git a/.config/waybar/config.jsonc b/.config/waybar/config.jsonc new file mode 100644 index 0000000..3c261e3 --- /dev/null +++ b/.config/waybar/config.jsonc @@ -0,0 +1,378 @@ +// --// waybar config generated by wbarconfgen.sh //-- // + +{ +// sourced from header module // + + "layer": "top", + "position": "top", + "mod": "dock", + "height": 33, + "exclusive": true, + "passthrough": false, + "gtk-layer-shell": true, + "reload_style_on_change": true, + + +// positions generated based on config.ctl // + + "modules-left": ["custom/l_end","custom/power","custom/r_end","hyprland/workspaces", "custom/sl_end","hyprland/window","custom/sr_end","custom/l_end","custom/wallchange","custom/cliphist","custom/r_end"], + "modules-center": ["wlr/taskbar"], + "modules-right": ["custom/notification","custom/l_end","backlight","pulseaudio","pulseaudio#microphone","mpris","custom/r_end","custom/l_end","memory","cpu","custom/cpuinfo","battery","custom/r_end","custom/l_end","tray","custom/r_end","custom/l_end","idle_inhibitor","clock","custom/r_end"], + +// sourced from modules based on config.ctl // + + "tray": { + "icon-size": 19, + "rotate": 0, + "spacing": 5 + }, + + "hyprland/window": { + "format": "{}", + "window-rewrite-default":"󰣇", + "rotate": 0, + "separate-outputs": true, + "max-length": 1000, + "rewrite": { + "${USER}@${set_sysname}:(.*)": "$1 ", + "(.*) — Kitty": " $1", + "(.*)~": " $1", + "(.*) — Mozilla Firefox": "󰈹 $1", + "(.*)Mozilla Firefox": "󰈹 Firefox", + "(.*) — LibreWolf": "󰈹 $1", + "(.*)LibreWolf": "󰈹 LibreWolf", + "(.*) — Chromium": " $1", + "(.*)Chromium": " Chromium", + "(.*) - VSCodium": " $1", + "(.*)VSCodium": " VSCodium", + "(.*)Code - OSS": "󰨞 $1", + "(.*)Code": "󰨞 Code", + "(.*) - Visual Studio Code": "󰨞 $1", + "(.*)Visual Studio Code": "󰨞 Code", + "(.*) — Dolphin": "$1 󰉋", + "(.*) - Obsidian v1.6.7": " $1 ", + "(.*)Ferdium": " $1", + "(.*)Freetube": " $1", + "(.*) - VLC media player": "󰕼 $1", + "(.*)Steam": "󰓓 Steam", + "(.*)Neovide": " Nvim", + "(.*)Gajim": "󰟿 Gajim" + } + }, + "hyprland/workspaces": { + "window-rewrite-default":"", + "disable-scroll": true, + "all-outputs": true, + "active-only": false, + "on-click": "activate", + "disable-scroll": false, + "on-scroll-up": "hyprctl dispatch workspace -1", + "on-scroll-down": "hyprctl dispatch workspace +1", + "persistent-workspaces": {} +// "format":"{icon}", +// "format-icons": { +// "1": "", +// "2": "", +// "3": "", +// "4": "", +// "5": "", +// "6": "" +// } +// } + }, + + "bluetooth": { + "format": "", + "format-disabled": "", + "format-connected": " {num_connections}", + "format-connected-battery": "{icon} {num_connections}", + "format-icons": ["󰥇", "󰤾", "󰤿", "󰥀", "󰥁", "󰥂", "󰥃", "󰥄", "󰥅", "󰥆", "󰥈"], + "tooltip-format": "{controller_alias}\n{num_connections} connected", + "tooltip-format-connected": "{controller_alias}\n{num_connections} connected\n\n{device_enumerate}", + "tooltip-format-enumerate-connected": "{device_alias}", + "tooltip-format-enumerate-connected-battery": "{device_alias}\t{icon} {device_battery_percentage}%" + }, + "cpu": { + "interval": 10, + "format": "󰍛 {usage}%", + "format-alt": "{icon0}{icon1}{icon2}{icon3}", + "format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"] + }, + + "custom/cpuinfo": { + "exec": " cpuinfo.sh", + "return-type": "json", + "format": "{}", + "rotate": 0, + "interval": 5, // once every 5 seconds + "tooltip": true, + "max-length": 1000 + }, + + "memory": { + "states": { + "c": 90, // critical + "h": 60, // high + "m": 30 // medium + }, + "interval": 30, + "rotate": 0, + "format": "󰾆 {used:0.1f}GB", + "format-m": "󰾅 {used:0.1f}GB", + "format-h": "󰓅 {used:0.1f}GB", + "format-c": " {used:0.1f}GB", + "format-alt": "󰾆 {percentage}%", + "max-length": 10, + "tooltip": true, + "tooltip-format": "󰾆 {percentage}%\n {used:0.1f}GB/{total:0.1f}GB" + }, + + "custom/power": { + "format": "{}", + "rotate": 0, + "exec": "echo ; echo  logout", + "on-click": "logoutlaunch.sh 2", + "on-click-right": "logoutlaunch.sh 1", + "interval" : 86400, // once every day + "tooltip": true + }, + + "wlr/taskbar": { + "format": "{icon}", + "rotate": 0, + "icon-size": 19, + "icon-theme": "Tela-circle-dracula", + "spacing": 0, + "tooltip-format": "{title}", + "on-click": "activate", + "on-click-middle": "close", + "ignore-list": [ + "Alacritty" + ], + "app_ids-mapping": { + "firefoxdeveloperedition": "firefox-developer-edition" + } + }, + + "idle_inhibitor": { + "format": "{icon}", + "rotate": 0, + "format-icons": { + "activated": "󰥔", + "deactivated": "" + } + }, + "clock": { + "format": "{:%H:%M}", + "rotate": 0, + "format-alt": "{:%R 󰃭 %d·%m·%y}", + "tooltip-format": "{calendar}", + "calendar": { + "mode": "month", + "mode-mon-col": 3, + "on-scroll": 1, + "on-click-right": "mode", + "format": { + "months": "{}", + "weekdays": "{}", + "today": "{}" + } + }, + "actions": { + "on-click-right": "mode", + "on-click-forward": "tz_up", + "on-click-backward": "tz_down", + "on-scroll-up": "shift_up", + "on-scroll-down": "shift_down" + } + }, + + "custom/cliphist": { + "format": "{}", + "rotate": 0, + "exec": "echo ; echo 󰅇 clipboard history", + "on-click": "sleep 0.1 && cliphist.sh c", + "on-click-right": "sleep 0.1 && cliphist.sh d", + "on-click-middle": "sleep 0.1 && cliphist.sh w", + "interval" : 86400, // once every day + "tooltip": true + }, + + "custom/wallchange": { + "format": "{}", + "rotate": 0, + "exec": "echo ; echo 󰆊 switch wallpaper", + "on-click": "swwwallpaper.sh -n", + "on-click-right": "swwwallpaper.sh -p", + "on-click-middle": "sleep 0.1 && swwwallselect.sh", + "interval" : 86400, // once every day + "tooltip": true + }, + + "custom/theme": { + "format": "{}", + "rotate": 0, + "exec": "echo ; echo 󰟡 switch theme", + "on-click": "themeswitch.sh -n", + "on-click-right": "themeswitch.sh -p", + "on-click-middle": "sleep 0.1 && themeselect.sh", + "interval" : 86400, // once every day + "tooltip": true + }, + + "pulseaudio": { + "format": "{icon} {volume}", + "rotate": 0, + "format-muted": "婢", + "on-click": "pavucontrol -t 3", + "on-click-right": "volumecontrol.sh -s ''", + "on-click-middle": "volumecontrol.sh -o m", + "on-scroll-up": "volumecontrol.sh -o i", + "on-scroll-down": "volumecontrol.sh -o d", + "tooltip-format": "{icon} {desc} // {volume}%", + "scroll-step": 5, + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + } + }, + + "pulseaudio#microphone": { + "format": "{format_source}", + "rotate": 0, + "format-source": "", + "format-source-muted": "", + "on-click": "pavucontrol -t 4", + "on-click-middle": "volumecontrol.sh -i m", + "on-scroll-up": "volumecontrol.sh -i i", + "on-scroll-down": "volumecontrol.sh -i d", + "tooltip-format": "{format_source} {source_desc} // {source_volume}%", + "scroll-step": 5 + }, + + "mpris": { + "format": "{player_icon} {dynamic}", + "rotate": 0, + "format-paused": "{status_icon} {dynamic}", + "player-icons": { + "default": "▶", + "mpv": "🎵" + }, + "status-icons": { + "paused": "" + }, + "max-length": 1000, + "interval": 1 + }, + "custom/weather": { + "exec": "curl 'https://wttr.in/?format=1'", + "format": "{}", + //"exec": "~/,config/waybar/waybar.py", + "tooltip": true, + "interval": 3600, + "return-type": "json", + "on-click": "gnome-weather", + "max-length": 10 + }, + "battery": { + "states": { + "good": 95, + "warning": 30, + "critical": 20 + }, + "format": "{icon} {capacity}%", + "rotate": 0, + "format-charging": " {capacity}%", + "format-plugged": " {capacity}%", + "format-alt": "{time} {icon}", + "format-icons": ["󰂎", "󰁺", "󰁻", "󰁼", "󰁽", "󰁾", "󰁿", "󰂀", "󰂁", "󰂂", "󰁹"] + }, + + "custom/notifications": { + "format": "{icon} {}", + "rotate": 0, + "format-icons": { + "email-notification": "", + "chat-notification": "󱋊", + "warning-notification": "󱨪", + "error-notification": "󱨪", + "network-notification": "󱂇", + "battery-notification": "󰁺", + "update-notification": "󰚰", + "music-notification": "󰝚", + "volume-notification": "󰕿", + "notification": "", + "dnd": "", + "none": "" + }, + "return-type": "json", + "exec-if": "which dunstctl", + "exec": "notifications.py", + "on-scroll-down": "sleep 0.1 && dunstctl history-pop", + "on-click": "dunstctl set-paused toggle", + "on-click-middle": "dunstctl history-clear", + "on-click-right": "dunstctl close-all", + "interval": 1, + "tooltip": true, + "escape": true + }, + + "backlight": { + "device": "intel_backlight", + "rotate": 0, + "format": "{icon} {percent}%", + "format-icons": ["", "", "", "", "", "", "", "", ""], + "on-scroll-up": "brightnessctl set 1%+", + "on-scroll-down": "brightnessctl set 1%-", + "min-length": 6 + }, +// modules for padding // + + "custom/l_end": { + "format": " ", + "interval" : "once", + "tooltip": false + }, + + "custom/r_end": { + "format": " ", + "interval" : "once", + "tooltip": false + }, + + "custom/sl_end": { + "format": " ", + "interval" : "once", + "tooltip": false + }, + + "custom/sr_end": { + "format": " ", + "interval" : "once", + "tooltip": false + }, + + "custom/rl_end": { + "format": " ", + "interval" : "once", + "tooltip": false + }, + + "custom/rr_end": { + "format": " ", + "interval" : "once", + "tooltip": false + }, + + "custom/padd": { + "format": " ", + "interval" : "once", + "tooltip": false + } +} + diff --git a/.config/waybar/modules/backlight.jsonc b/.config/waybar/modules/backlight.jsonc new file mode 100644 index 0000000..b289e68 --- /dev/null +++ b/.config/waybar/modules/backlight.jsonc @@ -0,0 +1,10 @@ + "backlight": { + "device": "intel_backlight", + "rotate": ${r_deg}, + "format": "{icon} {percent}%", + "format-icons": ["", "", "", "", "", "", "", "", ""], + "on-scroll-up": "brightnessctl set 1%+", + "on-scroll-down": "brightnessctl set 1%-", + "min-length": 6 + }, + diff --git a/.config/waybar/modules/battery.jsonc b/.config/waybar/modules/battery.jsonc new file mode 100644 index 0000000..51d6482 --- /dev/null +++ b/.config/waybar/modules/battery.jsonc @@ -0,0 +1,14 @@ + "battery": { + "states": { + "good": 95, + "warning": 30, + "critical": 20 + }, + "format": "{icon} {capacity}%", + "rotate": ${r_deg}, + "format-charging": " {capacity}%", + "format-plugged": " {capacity}%", + "format-alt": "{time} {icon}", + "format-icons": ["󰂎", "󰁺", "󰁻", "󰁼", "󰁽", "󰁾", "󰁿", "󰂀", "󰂁", "󰂂", "󰁹"] + }, + diff --git a/.config/waybar/modules/bluetooth.jsonc b/.config/waybar/modules/bluetooth.jsonc new file mode 100644 index 0000000..919bbd8 --- /dev/null +++ b/.config/waybar/modules/bluetooth.jsonc @@ -0,0 +1,15 @@ + "bluetooth": { + "format": "", + "rotate": ${r_deg}, + "format-disabled": "", + "format-connected": " {num_connections}", + "format-connected-battery": "{icon} {num_connections}", + // "format-connected-battery": "{icon} {device_alias}-{device_battery_percentage}%", + "format-icons": ["󰥇", "󰤾", "󰤿", "󰥀", "󰥁", "󰥂", "󰥃", "󰥄", "󰥅", "󰥆", "󰥈"], + // "format-device-preference": [ "device1", "device2" ], // preference list deciding the displayed device If this config option is not defined or none of the devices in the list are connected, it will fall back to showing the last connected device. + "tooltip-format": "{controller_alias}\n{num_connections} connected", + "tooltip-format-connected": "{controller_alias}\n{num_connections} connected\n\n{device_enumerate}", + "tooltip-format-enumerate-connected": "{device_alias}", + "tooltip-format-enumerate-connected-battery": "{device_alias}\t{icon} {device_battery_percentage}%" + }, + diff --git a/.config/waybar/modules/cliphist.jsonc b/.config/waybar/modules/cliphist.jsonc new file mode 100644 index 0000000..02024fa --- /dev/null +++ b/.config/waybar/modules/cliphist.jsonc @@ -0,0 +1,11 @@ + "custom/cliphist": { + "format": "{}", + "rotate": ${r_deg}, + "exec": "echo ; echo 󰅇 clipboard history", + "on-click": "sleep 0.1 && cliphist.sh c", + "on-click-right": "sleep 0.1 && cliphist.sh d", + "on-click-middle": "sleep 0.1 && cliphist.sh w", + "interval" : 86400, // once every day + "tooltip": true + }, + diff --git a/.config/waybar/modules/clock.jsonc b/.config/waybar/modules/clock.jsonc new file mode 100644 index 0000000..151a246 --- /dev/null +++ b/.config/waybar/modules/clock.jsonc @@ -0,0 +1,25 @@ + "clock": { + "format": "{:%H:%M}", + "rotate": ${r_deg}, + "format-alt": "{:%R 󰃭 %d·%m·%y}", + "tooltip-format": "{calendar}", + "calendar": { + "mode": "month", + "mode-mon-col": 3, + "on-scroll": 1, + "on-click-right": "mode", + "format": { + "months": "{}", + "weekdays": "{}", + "today": "{}" + } + }, + "actions": { + "on-click-right": "mode", + "on-click-forward": "tz_up", + "on-click-backward": "tz_down", + "on-scroll-up": "shift_up", + "on-scroll-down": "shift_down" + } + }, + diff --git a/.config/waybar/modules/cpu.jsonc b/.config/waybar/modules/cpu.jsonc new file mode 100644 index 0000000..cc89cb0 --- /dev/null +++ b/.config/waybar/modules/cpu.jsonc @@ -0,0 +1,8 @@ + "cpu": { + "interval": 10, + "format": "󰍛 {usage}%", + "rotate": ${r_deg}, + "format-alt": "{icon0}{icon1}{icon2}{icon3}", + "format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"] + }, + diff --git a/.config/waybar/modules/cpuinfo.jsonc b/.config/waybar/modules/cpuinfo.jsonc new file mode 100644 index 0000000..fb6bb76 --- /dev/null +++ b/.config/waybar/modules/cpuinfo.jsonc @@ -0,0 +1,10 @@ + "custom/cpuinfo": { + "exec": " cpuinfo.sh", + "return-type": "json", + "format": "{}", + "rotate": ${r_deg}, + "interval": 5, // once every 5 seconds + "tooltip": true, + "max-length": 1000 + }, + diff --git a/.config/waybar/modules/footer.jsonc b/.config/waybar/modules/footer.jsonc new file mode 100644 index 0000000..1387f74 --- /dev/null +++ b/.config/waybar/modules/footer.jsonc @@ -0,0 +1,47 @@ + +// modules for padding // + + "custom/l_end": { + "format": " ", + "interval" : "once", + "tooltip": false + }, + + "custom/r_end": { + "format": " ", + "interval" : "once", + "tooltip": false + }, + + "custom/sl_end": { + "format": " ", + "interval" : "once", + "tooltip": false + }, + + "custom/sr_end": { + "format": " ", + "interval" : "once", + "tooltip": false + }, + + "custom/rl_end": { + "format": " ", + "interval" : "once", + "tooltip": false + }, + + "custom/rr_end": { + "format": " ", + "interval" : "once", + "tooltip": false + }, + + "custom/padd": { + "format": " ", + "interval" : "once", + "tooltip": false + } + +} + diff --git a/.config/waybar/modules/gpuinfo.jsonc b/.config/waybar/modules/gpuinfo.jsonc new file mode 100644 index 0000000..f9f5d61 --- /dev/null +++ b/.config/waybar/modules/gpuinfo.jsonc @@ -0,0 +1,41 @@ + "custom/gpuinfo": { + "exec": " gpuinfo.sh", + "return-type": "json", + "format": "{}", + "rotate": ${r_deg}, + "interval": 5, // once every 5 seconds + "tooltip": true, + "max-length": 1000, + "on-click": "gpuinfo.sh --toggle", + }, + + "custom/gpuinfo#nvidia": { + "exec": " gpuinfo.sh --use nvidia ", + "return-type": "json", + "format": "{}", + "rotate": ${r_deg}, + "interval": 5, // once every 5 seconds + "tooltip": true, + "max-length": 1000, + }, + + "custom/gpuinfo#amd": { + "exec": " gpuinfo.sh --use amd ", + "return-type": "json", + "format": "{}", + "rotate": ${r_deg}, + "interval": 5, // once every 5 seconds + "tooltip": true, + "max-length": 1000, + }, + + "custom/gpuinfo#intel": { + "exec": " gpuinfo.sh --use intel ", + "return-type": "json", + "format": "{}", + "rotate": ${r_deg}, + "interval": 5, // once every 5 seconds + "tooltip": true, + "max-length": 1000, + }, + diff --git a/.config/waybar/modules/header.jsonc b/.config/waybar/modules/header.jsonc new file mode 100644 index 0000000..688d476 --- /dev/null +++ b/.config/waybar/modules/header.jsonc @@ -0,0 +1,13 @@ +// --// waybar config generated by wbarconfgen.sh //-- // + +{ +// sourced from header module // + + "layer": "top", + "position": "${w_position}", + "mod": "dock", + "${hv_pos}": ${w_height}, + "exclusive": true, + "passthrough": false, + "gtk-layer-shell": true, + "reload_style_on_change": true, diff --git a/.config/waybar/modules/idle_inhibitor.jsonc b/.config/waybar/modules/idle_inhibitor.jsonc new file mode 100644 index 0000000..d109a95 --- /dev/null +++ b/.config/waybar/modules/idle_inhibitor.jsonc @@ -0,0 +1,9 @@ + "idle_inhibitor": { + "format": "{icon}", + "rotate": ${r_deg}, + "format-icons": { + "activated": "󰥔", + "deactivated": "" + } + }, + diff --git a/.config/waybar/modules/keybindhint.jsonc b/.config/waybar/modules/keybindhint.jsonc new file mode 100644 index 0000000..e9edd21 --- /dev/null +++ b/.config/waybar/modules/keybindhint.jsonc @@ -0,0 +1,6 @@ + "custom/keybindhint": { + "format": " ", + "rotate": ${r_deg}, + "on-click": "keybinds_hint.sh" + }, + diff --git a/.config/waybar/modules/language.jsonc b/.config/waybar/modules/language.jsonc new file mode 100644 index 0000000..6045d28 --- /dev/null +++ b/.config/waybar/modules/language.jsonc @@ -0,0 +1,6 @@ + "hyprland/language": { + "format": "{short} {variant}", + "rotate": ${r_deg}, + "on-click": "keyboardswitch.sh", + }, + diff --git a/.config/waybar/modules/memory.jsonc b/.config/waybar/modules/memory.jsonc new file mode 100644 index 0000000..1e2c8d8 --- /dev/null +++ b/.config/waybar/modules/memory.jsonc @@ -0,0 +1,18 @@ + "memory": { + "states": { + "c": 90, // critical + "h": 60, // high + "m": 30, // medium + }, + "interval": 30, + "format": "󰾆 {used}GB", + "rotate": ${r_deg}, + "format-m": "󰾅 {used}GB", + "format-h": "󰓅 {used}GB", + "format-c": " {used}GB", + "format-alt": "󰾆 {percentage}%", + "max-length": 10, + "tooltip": true, + "tooltip-format": "󰾆 {percentage}%\n {used:0.1f}GB/{total:0.1f}GB" + }, + diff --git a/.config/waybar/modules/mpris.jsonc b/.config/waybar/modules/mpris.jsonc new file mode 100644 index 0000000..04ff2cd --- /dev/null +++ b/.config/waybar/modules/mpris.jsonc @@ -0,0 +1,16 @@ + "mpris": { + "format": "{player_icon} {dynamic}", + "rotate": ${r_deg}, + "format-paused": "{status_icon} {dynamic}", + "player-icons": { + "default": "▶", + "mpv": "🎵" + }, + "status-icons": { + "paused": "" + }, + // "ignored-players": ["firefox"] + "max-length": 1000, + "interval": 1 + }, + diff --git a/.config/waybar/modules/network.jsonc b/.config/waybar/modules/network.jsonc new file mode 100644 index 0000000..1c5231d --- /dev/null +++ b/.config/waybar/modules/network.jsonc @@ -0,0 +1,13 @@ + "network": { + "tooltip": true, + "format-wifi": " ", + "rotate": ${r_deg}, + "format-ethernet": "󰈀 ", + "tooltip-format": "Network: {essid}\nSignal strength: {signaldBm}dBm ({signalStrength}%)\nFrequency: {frequency}MHz\nInterface: {ifname}\nIP: {ipaddr}/{cidr}\nGateway: {gwaddr}\nNetmask: {netmask}", + "format-linked": "󰈀 {ifname} (No IP)", + "format-disconnected": "󰖪 ", + "tooltip-format-disconnected": "Disconnected", + "format-alt": " {bandwidthDownBytes}  {bandwidthUpBytes}", + "interval": 2, + }, + diff --git a/.config/waybar/modules/notifications.jsonc b/.config/waybar/modules/notifications.jsonc new file mode 100644 index 0000000..125e87a --- /dev/null +++ b/.config/waybar/modules/notifications.jsonc @@ -0,0 +1,29 @@ + "custom/notifications": { + "format": "{icon} {}", + "rotate": ${r_deg}, + "format-icons": { + "email-notification": "", + "chat-notification": "󱋊", + "warning-notification": "󱨪", + "error-notification": "󱨪", + "network-notification": "󱂇", + "battery-notification": "󰁺", + "update-notification": "󰚰", + "music-notification": "󰝚", + "volume-notification": "󰕿", + "notification": "", + "dnd": "", + "none": "" + }, + "return-type": "json", + "exec-if": "which dunstctl", + "exec": "notifications.py", + "on-scroll-down": "sleep 0.1 && dunstctl history-pop", + "on-click": "dunstctl set-paused toggle", + "on-click-middle": "dunstctl history-clear", + "on-click-right": "dunstctl close-all", + "interval": 1, + "tooltip": true, + "escape": true + }, + diff --git a/.config/waybar/modules/power.jsonc b/.config/waybar/modules/power.jsonc new file mode 100644 index 0000000..a41eaf6 --- /dev/null +++ b/.config/waybar/modules/power.jsonc @@ -0,0 +1,10 @@ + "custom/power": { + "format": "{}", + "rotate": ${r_deg}, + "exec": "echo ; echo  logout", + "on-click": "logoutlaunch.sh 2", + "on-click-right": "logoutlaunch.sh 1", + "interval" : 86400, // once every day + "tooltip": true + }, + diff --git a/.config/waybar/modules/pulseaudio.jsonc b/.config/waybar/modules/pulseaudio.jsonc new file mode 100644 index 0000000..c5770a7 --- /dev/null +++ b/.config/waybar/modules/pulseaudio.jsonc @@ -0,0 +1,35 @@ +"pulseaudio": { + "format": "{icon} {volume}", + "rotate": ${r_deg}, + "format-muted": "婢", + "on-click": "pavucontrol -t 3", + "on-click-right": "volumecontrol.sh -s ''", + "on-click-middle": "volumecontrol.sh -o m", + "on-scroll-up": "volumecontrol.sh -o i", + "on-scroll-down": "volumecontrol.sh -o d", + "tooltip-format": "{icon} {desc} // {volume}%", + "scroll-step": 5, + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + } +}, + +"pulseaudio#microphone": { + "format": "{format_source}", + "rotate": ${r_deg}, + "format-source": "", + "format-source-muted": "", + "on-click": "pavucontrol -t 4", + "on-click-middle": "volumecontrol.sh -i m", + "on-scroll-up": "volumecontrol.sh -i i", + "on-scroll-down": "volumecontrol.sh -i d", + "tooltip-format": "{format_source} {source_desc} // {source_volume}%", + "scroll-step": 5 +}, + diff --git a/.config/waybar/modules/spotify.jsonc b/.config/waybar/modules/spotify.jsonc new file mode 100644 index 0000000..13bd6bc --- /dev/null +++ b/.config/waybar/modules/spotify.jsonc @@ -0,0 +1,15 @@ + "custom/spotify": { + "exec": "mediaplayer.py --player spotify", + "format": " {}", + "rotate": ${r_deg}, + "return-type": "json", + "on-click": "playerctl play-pause --player spotify", + "on-click-right": "playerctl next --player spotify", + "on-click-middle": "playerctl previous --player spotify", + "on-scroll-up": "volumecontrol.sh -p spotify i", + "on-scroll-down": "volumecontrol.sh -p spotify d", + "max-length": 25, + "escape": true, + "tooltip": true + }, + diff --git a/.config/waybar/modules/style.css b/.config/waybar/modules/style.css new file mode 100644 index 0000000..93da5c3 --- /dev/null +++ b/.config/waybar/modules/style.css @@ -0,0 +1,151 @@ +* { + border: none; + border-radius: 0px; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + font-size: ${s_fontpx}px; + min-height: 10px; +} + +@import "theme.css"; + +window#waybar { + background: @bar-bg; +} + +tooltip { + background: @main-bg; + color: @main-fg; + border-radius: ${t_radius}px; + border-width: 0px; +} + +#workspaces button { + box-shadow: none; + text-shadow: none; + padding: 0px; + border-radius: ${w_radius}px; + margin-${x1}: ${w_margin}px; + margin-${x2}: ${w_margin}px; + margin-${x3}: 0px; + padding-${x3}: ${w_paddin}px; + padding-${x4}: ${w_paddin}px; + margin-${x4}: 0px; + color: @main-fg; + animation: ws_normal 20s ease-in-out 1; +} + +#workspaces button.active { + background: @wb-act-bg; + color: @wb-act-fg; + margin-${x3}: ${w_margin}px; + padding-${x3}: ${w_padact}px; + padding-${x4}: ${w_padact}px; + margin-${x4}: ${w_margin}px; + animation: ws_active 20s ease-in-out 1; + transition: all 0.4s cubic-bezier(.55,-0.68,.48,1.682); +} + +#workspaces button:hover { + background: @wb-hvr-bg; + color: @wb-hvr-fg; + animation: ws_hover 20s ease-in-out 1; + transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); +} + +#taskbar button { + box-shadow: none; + text-shadow: none; + padding: 0px; + border-radius: ${w_radius}px; + margin-${x1}: ${w_margin}px; + margin-${x2}: ${w_margin}px; + margin-${x3}: 0px; + padding-${x3}: ${w_paddin}px; + padding-${x4}: ${w_paddin}px; + margin-${x4}: 0px; + color: @wb-color; + animation: tb_normal 20s ease-in-out 1; +} + +#taskbar button.active { + background: @wb-act-bg; + color: @wb-act-color; + margin-${x3}: ${w_margin}px; + padding-${x3}: ${w_padact}px; + padding-${x4}: ${w_padact}px; + margin-${x4}: ${w_margin}px; + animation: tb_active 20s ease-in-out 1; + transition: all 0.4s cubic-bezier(.55,-0.68,.48,1.682); +} + +#taskbar button:hover { + background: @wb-hvr-bg; + color: @wb-hvr-color; + animation: tb_hover 20s ease-in-out 1; + transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); +} + +#tray menu * { + min-height: 16px +} + +#tray menu separator { + min-height: 10px +} + +${modules_ls} +#custom-l_end, +#custom-r_end, +#custom-sl_end, +#custom-sr_end, +#custom-rl_end, +#custom-rr_end { + color: @main-fg; + background: @main-bg; + opacity: 1; + margin: ${x1g_margin}px ${x2g_margin}px ${x3g_margin}px ${x4g_margin}px; + padding-${x3}: ${g_paddin}px; + padding-${x4}: ${g_paddin}px; +} + +#workspaces, +#taskbar { + padding: 0px; +} + +#custom-r_end { + border-radius: ${x1rb_radius}px ${x2rb_radius}px ${x3rb_radius}px ${x4rb_radius}px; + margin-${x4}: ${e_margin}px; + padding-${x4}: ${e_paddin}px; +} + +#custom-l_end { + border-radius: ${x1lb_radius}px ${x2lb_radius}px ${x3lb_radius}px ${x4lb_radius}px; + margin-${x3}: ${e_margin}px; + padding-${x3}: ${e_paddin}px; +} + +#custom-sr_end { + border-radius: 0px; + margin-${x4}: ${e_margin}px; + padding-${x4}: ${e_paddin}px; +} + +#custom-sl_end { + border-radius: 0px; + margin-${x3}: ${e_margin}px; + padding-${x3}: ${e_paddin}px; +} + +#custom-rr_end { + border-radius: ${x1rc_radius}px ${x2rc_radius}px ${x3rc_radius}px ${x4rc_radius}px; + margin-${x4}: ${e_margin}px; + padding-${x4}: ${e_paddin}px; +} + +#custom-rl_end { + border-radius: ${x1lc_radius}px ${x2lc_radius}px ${x3lc_radius}px ${x4lc_radius}px; + margin-${x3}: ${e_margin}px; + padding-${x3}: ${e_paddin}px; +} diff --git a/.config/waybar/modules/taskbar.jsonc b/.config/waybar/modules/taskbar.jsonc new file mode 100644 index 0000000..e40dcce --- /dev/null +++ b/.config/waybar/modules/taskbar.jsonc @@ -0,0 +1,17 @@ + "wlr/taskbar": { + "format": "{icon}", + "rotate": ${r_deg}, + "icon-size": ${i_task}, + "icon-theme": "${i_theme}", + "spacing": 0, + "tooltip-format": "{title}", + "on-click": "activate", + "on-click-middle": "close", + "ignore-list": [ + "Alacritty" + ], + "app_ids-mapping": { + "firefoxdeveloperedition": "firefox-developer-edition" + } + }, + diff --git a/.config/waybar/modules/theme.jsonc b/.config/waybar/modules/theme.jsonc new file mode 100644 index 0000000..6482c6e --- /dev/null +++ b/.config/waybar/modules/theme.jsonc @@ -0,0 +1,11 @@ + "custom/theme": { + "format": "{}", + "rotate": ${r_deg}, + "exec": "echo ; echo 󰟡 switch theme", + "on-click": "themeswitch.sh -n", + "on-click-right": "themeswitch.sh -p", + "on-click-middle": "sleep 0.1 && themeselect.sh", + "interval" : 86400, // once every day + "tooltip": true + }, + diff --git a/.config/waybar/modules/tray.jsonc b/.config/waybar/modules/tray.jsonc new file mode 100644 index 0000000..d7c0bce --- /dev/null +++ b/.config/waybar/modules/tray.jsonc @@ -0,0 +1,6 @@ + "tray": { + "icon-size": ${i_size}, + "rotate": ${r_deg}, + "spacing": 5 + }, + diff --git a/.config/waybar/modules/updates.jsonc b/.config/waybar/modules/updates.jsonc new file mode 100644 index 0000000..1fc621e --- /dev/null +++ b/.config/waybar/modules/updates.jsonc @@ -0,0 +1,10 @@ + "custom/updates": { + "exec": "systemupdate.sh", + "return-type": "json", + "format": "{}", + "rotate": ${r_deg}, + "on-click": "hyprctl dispatch exec 'systemupdate.sh up'", + "interval": 86400, // once every day + "tooltip": true, + "signal": 20 + }, diff --git a/.config/waybar/modules/wallchange.jsonc b/.config/waybar/modules/wallchange.jsonc new file mode 100644 index 0000000..0c839ca --- /dev/null +++ b/.config/waybar/modules/wallchange.jsonc @@ -0,0 +1,11 @@ + "custom/wallchange": { + "format": "{}", + "rotate": ${r_deg}, + "exec": "echo ; echo 󰆊 switch wallpaper", + "on-click": "swwwallpaper.sh -n", + "on-click-right": "swwwallpaper.sh -p", + "on-click-middle": "sleep 0.1 && swwwallselect.sh", + "interval" : 86400, // once every day + "tooltip": true + }, + diff --git a/.config/waybar/modules/window.jsonc b/.config/waybar/modules/window.jsonc new file mode 100644 index 0000000..b0c4c7a --- /dev/null +++ b/.config/waybar/modules/window.jsonc @@ -0,0 +1,17 @@ + "hyprland/window": { + "format": "  {}", + "rotate": ${r_deg}, + "separate-outputs": true, + "rewrite": { + "${USER}@${set_sysname}:(.*)": "$1 ", + "(.*) — Mozilla Firefox": "$1 󰈹", + "(.*)Mozilla Firefox": "Firefox 󰈹", + "(.*) - Visual Studio Code": "$1 󰨞", + "(.*)Visual Studio Code": "Code 󰨞", + "(.*) — Dolphin": "$1 󰉋", + "(.*)Spotify": "Spotify 󰓇", + "(.*)Steam": "Steam 󰓓" + }, + "max-length": 1000 + }, + diff --git a/.config/waybar/modules/workspaces.jsonc b/.config/waybar/modules/workspaces.jsonc new file mode 100644 index 0000000..c1e580a --- /dev/null +++ b/.config/waybar/modules/workspaces.jsonc @@ -0,0 +1,13 @@ + "hyprland/workspaces": { + "disable-scroll": true, + "rotate": ${r_deg}, + "all-outputs": true, + "active-only": false, + "on-click": "activate", + "disable-scroll": false, + "on-scroll-up": "hyprctl dispatch workspace -1", + "on-scroll-down": "hyprctl dispatch workspace +1", + "persistent-workspaces": { + } + }, + diff --git a/.config/waybar/style.css b/.config/waybar/style.css new file mode 100644 index 0000000..07e85ce --- /dev/null +++ b/.config/waybar/style.css @@ -0,0 +1,197 @@ +* { + border: none; + border-radius: 0px; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + font-size: 10px; + min-height: 10px; +} + +@import "theme.css"; + +#custom-weather.sunny { + background-color: yellow; +} +window#waybar { + background: @bar-bg; +} + +tooltip { + background: @main-bg; + color: @main-fg; + border-radius: 5px; + border-width: 0px; +} + +#workspaces { + border-radius: 8px; +} + +#custom-padd { + padding-left: 5px; + padding-right: 5px; +} + +#workspaces button { + box-shadow: none; + text-shadow: none; + padding: 0px; + border-radius: 5px; + margin-top: 3px; + margin-bottom: 3px; + margin-left: 0px; + padding-left: 3px; + padding-right: 3px; + margin-right: 0px; + color: @main-fg; + animation: ws_normal 20s ease-in-out 1; +} + +#workspaces button.active { + background: @wb-act-bg; + color: @wb-act-fg; + animation: ws_active 20s ease-in-out 1; + transition: all 0.4s cubic-bezier(.55, -0.68, .48, 1.682); +} + +#workspaces button:hover { + background: @wb-hvr-bg; + color: @wb-hvr-fg; + animation: ws_hover 20s ease-in-out 1; + transition: all 0.3s cubic-bezier(.55, -0.68, .48, 1.682); +} + +#taskbar button { + box-shadow: none; + text-shadow: none; + padding: 0px; + border-radius: 6px; + margin-top: 3px; + margin-bottom: 3px; + margin-left: 0px; + padding-left: 3px; + padding-right: 3px; + margin-right: 0px; + color: @wb-color; + animation: tb_normal 20s ease-in-out 1; +} + +#taskbar button.active { + background: @wb-act-bg; + color: @wb-act-color; + /*animation: tb_active 20s ease-in-out 1;*/ + box-shadow: 0 0 1px 1px rgba(128, 128, 128, 0.4); + transition: all 0.4s cubic-bezier(.55, -0.68, .48, 1.682); +} + +#taskbar button:hover { + background: @wb-hvr-bg; + color: @wb-hvr-color; + opacity: 0.8; + animation: tb_hover 20s ease-in-out 1; + transition: all 0.3s cubic-bezier(.55, -0.68, .48, 1.682); +} + +#tray menu * { + min-height: 16px; +} + +#tray menu separator { + min-height: 10px; +} + +#backlight, +#battery, +#bluetooth, +#custom-cliphist, +#clock, +#custom-cpuinfo, +#cpu, +#custom-gpuinfo, +#idle_inhibitor, +#custom-keybindhint, +#language, +#memory, +#mpris, +#network, +#custom-notifications, +#custom-power, +#pulseaudio, +#custom-spotify, +#taskbar, +#custom-theme, +#tray, +#custom-updates, +#custom-wallchange, +#custom-wbar, +#window, +#workspaces, +#custom-l_end, +#custom-r_end, +#custom-sl_end, +#custom-sr_end, +#custom-rl_end, +#custom-rr_end { + color: @main-fg; + background: @main-bg; + opacity: 1; + margin: 4px 0px 4px 0px; + padding-left: 4px; + padding-right: 4px; +} + +window#waybar.empty #window, +window#waybar.empty #custom-sl_end, +window#waybar.empty #custom-sr_end { + opacity: 0; +} + +#workspaces { + padding-left: 5px; + padding-right: 5px; +} + +#taskbar { + border-radius: 8px; + padding-left: 6px; + padding-right: 6px; +} + +#custom-r_end { + border-radius: 0px 8px 8px 0px; + margin-right: 3px; + padding-right: 1px; +} + +#custom-l_end { + border-radius: 8px 0px 0px 8px; + margin-left: 3px; + padding-left: 1px; +} + +#custom-sr_end { + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; + margin-right: 9px; + padding-right: 3px; +} + +#custom-sl_end { + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; + margin-left: 9px; + padding-left: 3px; +} + +#custom-rr_end { + border-radius: 0px 8px 8px 0px; + margin-right: 9px; + padding-right: 3px; +} + +#custom-rl_end { + border-radius: 8px 0px 0px 8px; + margin-left: 9px; + padding-left: 3px; +} + diff --git a/.config/waybar/theme.css b/.config/waybar/theme.css new file mode 100644 index 0000000..c3ad237 --- /dev/null +++ b/.config/waybar/theme.css @@ -0,0 +1,10 @@ +@define-color bar-bg rgba(0, 0, 0, 0); + +@define-color main-bg rgba(0,0,0,0.4); +@define-color main-fg #cdd6f4; + +@define-color wb-act-bg #a6adc8; +@define-color wb-act-fg #313244; + +@define-color wb-hvr-bg #f5c2e7; +@define-color wb-hvr-fg #313244; diff --git a/.config/xremap/config.yml b/.config/xremap/config.yml new file mode 100644 index 0000000..c37391e --- /dev/null +++ b/.config/xremap/config.yml @@ -0,0 +1,26 @@ +modmap: + - name: CapsLock to LeftCtrl/Esc + remap: + CapsLock: + held: leftctrl + alone: esc + alone_timeout_millis: 150 +keymap: + - name: Alt+hjkl to Arrows + remap: + # Alt-H: Alt+left #back + Alt-h: left + Alt-l: right + Alt-j: down + Alt-k: up + Alt-u: pageup + Alt-d: pagedown +# keymap: +# - name: Freetube remap +# application: +# only: FreeTube +# remap: +# Alt-h: Left +# Alt-l: Right +# Alt-j: Down +# Alt-k: Up diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ba47bd8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +!.gitignore +.config/hyde/themes/ +.config/fish/greet.txt diff --git a/README.md b/README.md index a7ab61f..fe867a5 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,13 @@ -# dots + +using `gnu stow` + +``` +https://github.com/prasanthrangan/hyprdots +``` +`hyde`, `hyprdots`, `waybar` and `fish` are from hyprdots with edits + +`nvim` is [nvchad](https://nvchad.com/) custom conf +`xremap` for keyremap + +