Compare commits
54 Commits
91985fa3bb
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 0300e55167 | |||
| 5c4872f306 | |||
| 4cd0854592 | |||
| 2ffa49fe41 | |||
| a910750e91 | |||
| fe74ef66ee | |||
| 62ba4da27d | |||
| b38cd5c376 | |||
| b2aa06f910 | |||
| 581545aa36 | |||
| 7c507d072b | |||
| 968141f8a7 | |||
| 83318afdb6 | |||
| 0574377182 | |||
| 989269f4d5 | |||
| 5887bb0d4d | |||
| 9276e2300a | |||
| 6c9643ba74 | |||
| 4808986b08 | |||
| 143696c0a9 | |||
| 63cfe97908 | |||
| 5c3d0362a2 | |||
| 0131b1e430 | |||
| 215031f5a2 | |||
| 24c8a05204 | |||
| 889894aa1d | |||
| b95ae4c5c9 | |||
| 22b2eb9a95 | |||
| 26488dbdfc | |||
| 56a9849623 | |||
| 3252a201c1 | |||
| 8c809c40db | |||
| 7e2e0bdc3a | |||
| e5ad2c3cd4 | |||
| a0048ec816 | |||
| 7cf3fa4899 | |||
| a67c7f6bab | |||
| fafe4746e4 | |||
| 01b58f09b7 | |||
| b69040fda0 | |||
| edf3d20945 | |||
| 354a2abbcd | |||
| 1531d84d91 | |||
| b849f59fe3 | |||
| 1796c3f769 | |||
| b40f652968 | |||
| c31571d643 | |||
| e6577b4106 | |||
| 571effe737 | |||
| f328ef7afd | |||
| dcbd6a365b | |||
| 5f802a4a9d | |||
| 90248ad822 | |||
| 1be4f161e3 |
2
.gitmodules
vendored
2
.gitmodules
vendored
@@ -1,3 +1,3 @@
|
||||
[submodule "env/.config/nvim/custom-lsp/lua-ls-cc-tweaked"]
|
||||
path = env/.config/nvim/custom-lsp/lua-ls-cc-tweaked
|
||||
url = https://github.com/nvim-computercraft/lua-ls-cc-tweaked.git
|
||||
url = https://github.com/nvim-computercraft/lua-ls-cc-tweaked
|
||||
|
||||
57
README.md
57
README.md
@@ -1,12 +1,18 @@
|
||||
# hi
|
||||
this is just some configs and stuffs i decided to put on my github
|
||||
eg my dotfiles
|
||||
|
||||
# update 05/24/2025
|
||||
this has my dotfiles as well as quite a few scripts and other stuff
|
||||
|
||||
- current os Artix linux (btw)
|
||||
|
||||
## update 05/24/2025
|
||||
|
||||
i liked how primagen did his dev environment and deploying of scripts. so im making my own version
|
||||
note: the pacman install scripts may not be fully what i have as i made this loong after installing software
|
||||
|
||||
# requirements
|
||||
> [!NOTE]
|
||||
> the pacman install scripts may not be fully what i have as i made this loong after installing software
|
||||
|
||||
## requirements
|
||||
|
||||
- for dwm or awesome
|
||||
- xorg-server
|
||||
- xorg-xinit
|
||||
@@ -15,7 +21,8 @@ note: the pacman install scripts may not be fully what i have as i made this loo
|
||||
- libxft
|
||||
- libxinerama
|
||||
- for awesome extra
|
||||
- rofi-wayland (works on x. my rofi command on awesome is rofi -x11 so this may be required)
|
||||
- rofi-wayland
|
||||
(works on x. my rofi command on awesome is rofi -x11 so this may be required)
|
||||
- for surf
|
||||
- gcr
|
||||
- webkit2gtk
|
||||
@@ -27,32 +34,37 @@ note: the pacman install scripts may not be fully what i have as i made this loo
|
||||
- installing dwm, dmenu, and surf
|
||||
- cd into respective directory
|
||||
- sudo make clean install
|
||||
- startx #for dwm
|
||||
- hyprland
|
||||
- startx # for dwm
|
||||
- hyprland or sway
|
||||
- wayland
|
||||
- waybar
|
||||
- grim # needed for flameshot to work on wayland
|
||||
- xdg-deskop=portal
|
||||
- xdg-deskop=portal-hyprland
|
||||
- xdg-deskop=portal-wlr # for sway
|
||||
- xdg-deskop=portal-gtk
|
||||
- hyprpaper
|
||||
- hyprlock
|
||||
- wlogout
|
||||
- for neovim
|
||||
- packer
|
||||
- packer # (download script in runs/packer.sh)
|
||||
- for urlview - urlview
|
||||
- terminal
|
||||
- primary wezterm
|
||||
- secondary rxvt-unicode # less memory usage
|
||||
- ibus
|
||||
- ibus-mozc # for japanese input
|
||||
- fonts
|
||||
- fcitx5-im
|
||||
- fcitx5-mozc
|
||||
- fcitx5-im-emoji-picker-git
|
||||
- fonts
|
||||
- B612 mono
|
||||
- ttf-inconsolata
|
||||
- ttf-jetbrains-mono
|
||||
- ttf-jetbrains-mono-nerd
|
||||
- noto-fonts-emoji
|
||||
- otf-ipafont
|
||||
- login
|
||||
- sddm (for hyprland. it doesnt like lightdm :<)
|
||||
- lightdm
|
||||
- sddm # for hyprland. it doesnt like lightdm :<
|
||||
- lightdm # for x11
|
||||
- lightdm-gtk-greeter
|
||||
- lxappearance # for setting gtk theme
|
||||
- theme
|
||||
@@ -63,7 +75,7 @@ note: the pacman install scripts may not be fully what i have as i made this loo
|
||||
- background setter - nitrogen # for x11
|
||||
- numen # voice control, manual setup
|
||||
- file manager
|
||||
- lf
|
||||
- lf (with lf-gadgets at .local/bin)
|
||||
- pcmanfm
|
||||
- shell
|
||||
- zsh
|
||||
@@ -72,8 +84,10 @@ note: the pacman install scripts may not be fully what i have as i made this loo
|
||||
- pipewire-jack
|
||||
- pipewire-pulse
|
||||
- qpwgraph
|
||||
- onscreen keys - screenkey
|
||||
- compositor
|
||||
- onscreen keys
|
||||
- screenkey
|
||||
- showmethekey # for wayland
|
||||
- compositor
|
||||
- xcompmgr # primarily
|
||||
- picom # for fancy ness
|
||||
- inetutils # for normal ftp
|
||||
@@ -89,10 +103,11 @@ note: the pacman install scripts may not be fully what i have as i made this loo
|
||||
- notifications
|
||||
- libnotify
|
||||
- notify-send
|
||||
- dusnt # for hyprland
|
||||
- dusnt
|
||||
- calender
|
||||
- calcurse
|
||||
|
||||
# todo
|
||||
- deploy
|
||||
- seperate installs into more scripts to have different steps in requirements. probably wont do this
|
||||
## todo
|
||||
|
||||
- [ ] make symlink. where if -s. do symlink instead of env
|
||||
- [ ] make fully portable version, all pulled and compiled version bins for just devtools.
|
||||
|
||||
17
env/.bash_profile
vendored
Normal file
17
env/.bash_profile
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
#
|
||||
# ~/.bash_profile
|
||||
#
|
||||
|
||||
[[ -f ~/.bashrc ]] && . ~/.bashrc
|
||||
|
||||
#!/bin/bash
|
||||
if test -z "${XDG_RUNTIME_DIR}"; then
|
||||
export XDG_RUNTIME_DIR=/tmp/${UID}-runtime-dir
|
||||
if ! test -d "${XDG_RUNTIME_DIR}"; then
|
||||
mkdir "${XDG_RUNTIME_DIR}"
|
||||
chmod 0700 "${XDG_RUNTIME_DIR}"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
#export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
|
||||
6
env/.bashrc
vendored
6
env/.bashrc
vendored
@@ -6,5 +6,9 @@
|
||||
[[ $- != *i* ]] && return
|
||||
PS1='\[\e[37;1m\][\[\e[35;1m\]\u\[\e[33m\]@\[\e[35;1m\]\h \[\e[36;1m\]\W\[\e[37;1m\]]\[\e[0;1m\]∮ '
|
||||
|
||||
~/stuff/scripts/system/neoboot.sh
|
||||
set -o vi
|
||||
~/.local/bin/system/neoboot.sh
|
||||
source ~/.config/.profile
|
||||
|
||||
eval "$(fzf --bash)"
|
||||
eval "$(atuin init bash)"
|
||||
|
||||
78
env/.config/.profile
vendored
78
env/.config/.profile
vendored
@@ -23,71 +23,69 @@ fi
|
||||
#fi
|
||||
|
||||
# . torsocks on
|
||||
export DEV_ENV=~
|
||||
export PROMPT_EOL_MARK=""
|
||||
export EDITOR="nvim"
|
||||
# idk which one works
|
||||
# export BROWSER="/home/iceyrazor/.local/bin/zen-x86_64.AppImage"
|
||||
export BROWSER="zen.desktop"
|
||||
#export BROWSER="custom-zen.desktop"
|
||||
export PREFIX=/usr
|
||||
export PATH="$PATH:$HOME/.cargo/bin:$HOME/stuff/scripts/system:$HOME/stuff/scripts/system/backup:$HOME/stuff/scripts/system/wlx:$HOME/stuff/scripts/system/youtube-playlist-cli:$HOME/.local/bin/blender-4.1.1-linux-x64:$HOME/stuff/manual-programs/app-images:$HOME/stuff/scripts/system/theme-setter"
|
||||
export PATH="$PATH:$HOME/.cargo/bin:$HOME/.local/bin/blender-4.1.1-linux-x64"
|
||||
export MANPAGER='nvim +Man!'
|
||||
# export DWM_NOTIF_FILE="/home/iceyrazor/stuff/scripts/c/SDL/notif/notif.txt"
|
||||
if [ -f ~/.local/bin/system/paths.sh ]; then
|
||||
source ~/.local/bin/system/paths.sh
|
||||
fi
|
||||
|
||||
export DIAGRAM_PLANTUML_CLASSPATH=/usr/lib/ruby/gems/3.4.0/gems/asciidoctor-diagram-plantuml-1.2025.3/lib/asciidoctor-diagram/plantuml/plantuml-lgpl-1.2025.3.jar
|
||||
|
||||
export heartost="/home/iceyrazor/.steam/root/steamapps/music/Heartbound - OST"
|
||||
|
||||
alias fukn="sudo $@"
|
||||
[ doas ] && alias fukn="doas $@"
|
||||
|
||||
alias ls='ls --color=auto'
|
||||
alias lss="fukn du -ahd 1 | sort -hr"
|
||||
alias lss="fukn du -ahd 1 | sort -h"
|
||||
alias lsu="lsblk --filter 'NAME=~\"sd[abcde]\"' -o NAME,MOUNTPOINTS"
|
||||
alias surf="WEBKIT_DISABLE_COMPOSITING_MODE=1 surf"
|
||||
alias lsblkfs="lsblk -o PATH,FSTYPE,MOUNTPOINT"
|
||||
alias grep='grep --color=auto'
|
||||
alias fzf="fzf --walker-skip=.private-parent"
|
||||
alias fcd="cd \"\$(fzf --walker dir,hidden --walker-skip=.private-parent)\""
|
||||
# alias ffchar='fastfetch --logo ~/stuff/media/ICE/ascii-char.txt --logo-color-5 "light_magenta" --logo-color-1 "reset_black" --logo-color-2 "light_black" --logo-color-3 "light_blue"'
|
||||
alias ffcompact='fastfetch -c $HOME/.config/fastfetch/compact.jsonc'
|
||||
alias ff='fastfetch -c $HOME/.config/fastfetch/10.jsonc 2> /dev/null || fastfetch --localip-show-ipv4 0'
|
||||
alias ffchar='fastfetch -c $HOME/.config/fastfetch/ascii-char.jsonc'
|
||||
# alias fastfetch='fastfetch --localip-show-ipv4 0 --kitty-direct /home/iceyrazor/stuff/media/ICE/Sprite-0009.png --logo-width 40 --logo-height 20'
|
||||
[ "$(cat /etc/hostname)" = "Kasino" ] && alias fukn="doas $@"
|
||||
[ "$(cat /etc/hostname)" = "Kan" ] && alias fukn="doas $@"
|
||||
alias numen="echo key x | fukn dotool && NUMEN_DMENU=rofi NUMEN_DMENU_OPTS='-show drun' LD_LIBRARY_PATH=/usr/lib/ numen & disown"
|
||||
|
||||
alias ascii="~/stuff/scripts/c/SDL/ascii/ascii"
|
||||
alias newsboat="NO_PROXY=\".com,.org,.xyz,.chat,.social,.net,.co\" newsboat"
|
||||
|
||||
alias watchlss="fukn watch \"du -ah -d 1 | sort -hr\""
|
||||
alias lfub=~/.local/bin/lf-gadgets/lf-ueberzug/lf-ueberzug
|
||||
alias dev="~/stuff/scripts/dotfiles/run.sh"
|
||||
# alias lfub=~/.local/bin/lf-gadgets/lf-ueberzug/lf-ueberzug
|
||||
alias lfk=~/.local/bin/lf-gadgets/lf-kitty/lf-kitty
|
||||
alias ovim=/usr/bin/vim
|
||||
alias vim=nvim
|
||||
alias fzf="fzf --walker-skip=.private-parent"
|
||||
alias fcd="cd \"\$(fzf --walker dir,hidden --walker-skip=.private-parent)\""
|
||||
alias notes="cd ~/stuff/notes && vim notes.md && cd ~"
|
||||
alias ts="~/stuff/scripts/system/tmux-sessionizer.sh"
|
||||
alias ts="tmux-sessionizer.sh"
|
||||
alias fman="bash -c 'compgen -c' | fzf | xargs man"
|
||||
alias etask="$EDITOR stuff/scripts/system/task.sh"
|
||||
|
||||
alias LC="fukn loadkeys ~/.config/swapscape.map"
|
||||
|
||||
|
||||
#alias updateL='fukn /home/iceyrazor/update_list/update_list.sh '
|
||||
alias music="nohup vlc /home/iceyrazor/stuff/scripts/system/youtube-playlist-cli/title_vids > /dev/null 2> /dev/null < /dev/null & disown && cd /home/iceyrazor/stuff/scripts/system/youtube-playlist-cli/title_vids && lfk"
|
||||
alias ibuss="ibus-daemon -rxRd"
|
||||
alias ygg="fukn bash -c 'mkdir /var/run/yggdrasil; yggdrasil -useconf < /etc/yggdrasil.conf'"
|
||||
alias alvr="WINIT_X11_SCALE_FACTOR=\"1\" /home/iceyrazor/stuff/manual-programs/dontsync/alvr_streamer_linux/bin/alvr_dashboard & disown"
|
||||
alias obss="obs && obs --enable-media-stream & disown"
|
||||
alias get_channel_id="xargs curl -s | grep -Eo 'channel_id=.{0,50}' | sed 's/\".*//g' | fzf | xargs printf \"https://www.youtube.com/feeds/videos.xml?%s\" | xclip -selection clipboard"
|
||||
alias get_channel_id="xargs curl -s | grep -Eo 'channel_id=.{0,50}' | sed 's/\".*//g' | fzf | xargs printf \"https://www.youtube.com/feeds/videos.xml?%s\""
|
||||
|
||||
alias killa="~/stuff/killall.sh"
|
||||
alias bbackup="~/stuff/scripts/system/backup/backup.sh"
|
||||
alias bbacklap="~/stuff/scripts/system/backup/backup-tol.sh"
|
||||
alias bgit="~/stuff/scripts/system/backup/move-to-git.sh"
|
||||
alias vasm="~/stuff/manual-programs/vasm/vasm6502_oldstyle -Fbin -dotdir "
|
||||
alias pipes="pipes.sh -t 0 -p 3 -f 30 -r 2000"
|
||||
alias astro="astroterm --color --constellations --speed 10000 --fps 64 --unicode -i Arlington"
|
||||
|
||||
# hyprland
|
||||
alias anim="hyprctl keyword animations:enabled "
|
||||
|
||||
|
||||
alias bri="fukn ~/stuff/scripts/system/bri.sh"
|
||||
# alias drkwll="nitrogen --head=0 --set-zoom-fill ~/stuff/media/gallifreyan/linux2.png && nitrogen --head=1 --set-zoom-fill ~/stuff/media/gallifreyan/linux2.png"
|
||||
# alias drkwll="nitrogen --head=0 --set-zoom-fill ~/stuff/media/wallpapers/dark_leaves.png && nitrogen --head=1 --set-zoom-fill ~/stuff/media/wallpapers/dark_leaves.png"
|
||||
alias drkwll="[ -z $WAYLAND_DISPLAY ] && nitrogen --head=0 --set-zoom-fill ~/stuff/media/wallpapers/dark_leaves.png && nitrogen --head=1 --set-zoom-fill ~/stuff/media/wallpapers/dark_leaves.png || hyprctl hyprpaper wallpaper 'HDMI-A-1,/home/iceyrazor/stuff/media/wallpapers/dark_leaves.png' && hyprctl hyprpaper wallpaper 'DP-1,/home/iceyrazor/stuff/media/wallpapers/dark_leaves.png'"
|
||||
alias reswll="hyprctl hyprpaper wallpaper 'HDMI-A-1,/home/iceyrazor/stuff/media/wallpapers/4500025-retrowave-vaporwave-car-typography-purple-blue-chromatic-aberration-initial-d-hachi-roku.jpg' && hyprctl hyprpaper wallpaper 'DP-1,/home/iceyrazor/stuff/media/wallpapers/tumblr_06bbd355f3e355049446dac24f6e7c44_2c486f77_1280 ninesols.jpg'"
|
||||
alias swap="hyprctl keyword input:kb_options caps:swapescape"
|
||||
alias nswap="hyprctl keyword input:kb_options null"
|
||||
if [ "$XDG_CURRENT_DESKTOP" = "sway:wlroots" ]; then
|
||||
alias swap="swaymsg 'input \"type:keyboard\" xkb_options \"caps:swapescape\"'"
|
||||
alias nswap="swaymsg 'input \"type:keyboard\" xkb_options \"\"'"
|
||||
fi
|
||||
|
||||
# mounting
|
||||
alias umsu="fukn umount u"
|
||||
@@ -100,22 +98,23 @@ alias msfd="fukn mount /dev/sdc1 u2"
|
||||
alias msf="fukn cryptsetup open /dev/sdc2 flashdrive && fukn mount /dev/mapper/flashdrive ~/u"
|
||||
alias umsf="fukn umount ~/u && fukn cryptsetup close flashdrive"
|
||||
|
||||
alias cam="ffplay -input_format mjpeg -fast -fflags +nobuffer -i -framerate 30 -max_delay 100 -max_probe_packets 0 -analyzeduration 0 -flags +low_delay /dev/video0"
|
||||
alias cam="ffplay -input_format mjpeg -fast -fflags +nobuffer -i -framerate 30 -max_delay 100 -max_probe_packets 0 -analyzeduration 0 -flags +low_delay"
|
||||
alias sc="ffmpeg -f x11grab -framerate 1 -video_size 1920x1200 -i :0.0 -vframes 1 -crf 18 ~/Pictures/Screenshots/$(date '+%m-%d-%Y-%I-%M')_${RANDOM}_screenshot.jpeg"
|
||||
alias sccam="ffmpeg -f video4linux2 -i /dev/v4l/by-id/usb-Sonix_Technology_Co.__Ltd._USB_2.0_Camera_SN0001-video-index0 -vframes 1 -video_size 1280x720 test.jpeg"
|
||||
alias sc2="escrotum -s ~/Pictures/%Y-%m-%d-%H%M%S_$wx$h_escrotum.png"
|
||||
alias scs="sleep 3s && ffmpeg -f x11grab -framerate 1 -video_size 1920x1200 -i :0.0 -vframes 1 -crf 18 output.jpeg"
|
||||
alias wwrite="watch -d grep -e Dirty: -e Writeback: /proc/meminfo"
|
||||
alias gol="~/stuff/scripts/c/SDL/game-of-life/game-of-life & disown"
|
||||
|
||||
# alias vrinit="echo key x | fukn dotool && drkwll && killall xcompmgr; sleep 1s && wlx-layout.sh main; \
|
||||
alias vrinit="echo key x | fukn dotool && drkwll && sleep 2s && tmux new-session -s chat-loop -c stuff/scripts/rust/chat-loop"
|
||||
|
||||
|
||||
alias statst="echo full_stat:true > ~/stuff/scripts/system/stbar/config.txt"
|
||||
alias statsf="echo full_stat:false > ~/stuff/scripts/system/stbar/config.txt"
|
||||
alias statst="echo full_stat:true > ~/.local/bin/system/stbar/config.txt"
|
||||
alias statsf="echo full_stat:false > ~/.local/bin/system/stbar/config.txt"
|
||||
|
||||
|
||||
# git
|
||||
alias gitlol="git log --oneline --graph --decorate"
|
||||
|
||||
alias get_drm="fukn cat /sys/module/nvidia_drm/parameters/modeset"
|
||||
|
||||
alias nodem="find . -name 'node_modules' -type d | xargs du -sh | sort -hr | fzf -m --header \"select witch ones to delete\" --preview 'cat $(dirname {})/package.json'|awk print '{print $2}' | xargs -r rm -rf"
|
||||
|
||||
@@ -123,10 +122,5 @@ alias walltaker="stuff/manual-programs/git/walltaker-client/walltaker.sh"
|
||||
alias savewall="stuff/manual-programs/git/walltaker-client/save.sh"
|
||||
|
||||
|
||||
# alias session="./Downloads/session-desktop-linux-x86_64-1.12.4.AppImage > /dev/null & disown"
|
||||
# alias simplex="_JAVA_AWT_WM_NONREPARENTING=1 ./Downloads/simplex-desktop-x86_64.AppImage > /dev/null & disown"
|
||||
# alias loki="./stuff/scripts/loki-toggle.sh"
|
||||
# alias lokig="fukn Lokinet-GUI.AppImage --no-sandbox > /dev/null & disown"
|
||||
|
||||
xset r rate 300 50
|
||||
# xset r off
|
||||
|
||||
2
env/.config/awesome/awesome.xinitrc
vendored
Normal file
2
env/.config/awesome/awesome.xinitrc
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
xrandr --dpi 120 --output eDP-1 --scale 1.2x1.2
|
||||
exec awesome
|
||||
7
env/.config/awesome/keys-US-colemak.lua
vendored
7
env/.config/awesome/keys-US-colemak.lua
vendored
@@ -1,3 +1,4 @@
|
||||
-- KEYS are out of wack. n should be o but its not. ill fix it later
|
||||
pcall(require, "luarocks.loader")
|
||||
|
||||
-- Standard awesome library
|
||||
@@ -66,7 +67,7 @@ globalkeys = gears.table.join(
|
||||
awful.key({ modkey, "Shift" }, "q", awesome.quit,
|
||||
{description = "quit awesome", group = "awesome"}),
|
||||
|
||||
awful.key({ modkey, "Shift" }, "u", show_my_desktop, {description = "show desktop", group = "awesome"}),
|
||||
-- awful.key({ modkey, "Shift" }, "u", show_my_desktop, {description = "show desktop", group = "awesome"}),
|
||||
|
||||
awful.key({ modkey, }, "i", function () awful.tag.incmwfact( 0.05) end,
|
||||
{description = "increase master width factor", group = "layout"}),
|
||||
@@ -126,8 +127,8 @@ globalkeys = gears.table.join(
|
||||
awesome.restart()
|
||||
end),
|
||||
|
||||
awful.key({ }, "XF86AudioPlay", function () awful.util.spawn(mpris.." -a PlayPause") end),
|
||||
awful.key({ }, "XF86AudioStop", function () awful.util.spawn(mpris.." -a pause") end),
|
||||
awful.key({ }, "XF86AudioPlay", function () awful.util.spawn("playerctl play-pause") end),
|
||||
awful.key({ }, "XF86AudioStop", function () awful.util.spawn("playerctl -a pause") end),
|
||||
--awful.key({ }, "XF86AudioRaiseVolume", function () awful.util.spawn("amixer -D pulse sset Master 2%+", false) end),
|
||||
awful.key({ }, "XF86AudioRaiseVolume", function () awful.util.spawn("pactl set-sink-volume @DEFAULT_SINK@ +2%", false) end),
|
||||
awful.key({ }, "XF86AudioLowerVolume", function () awful.util.spawn("pactl set-sink-volume @DEFAULT_SINK@ -2%", false) end),
|
||||
|
||||
10
env/.config/awesome/keys-US.lua
vendored
10
env/.config/awesome/keys-US.lua
vendored
@@ -43,7 +43,7 @@ globalkeys = gears.table.join(
|
||||
{description = "swap with next client by index", group = "client"}),
|
||||
awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end,
|
||||
{description = "swap with previous client by index", group = "client"}),
|
||||
awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end,
|
||||
awful.key({ modkey, }, "o", function () awful.screen.focus_relative( 1) end,
|
||||
{description = "focus the next screen", group = "screen"}),
|
||||
awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end,
|
||||
{description = "focus the previous screen", group = "screen"}),
|
||||
@@ -66,7 +66,7 @@ globalkeys = gears.table.join(
|
||||
awful.key({ modkey, "Shift" }, "q", awesome.quit,
|
||||
{description = "quit awesome", group = "awesome"}),
|
||||
|
||||
awful.key({ modkey, "Shift" }, "o", show_my_desktop, {description = "show desktop", group = "awesome"}),
|
||||
--awful.key({ modkey, "Shift" }, "o", show_my_desktop, {description = "show desktop", group = "awesome"}),
|
||||
|
||||
awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end,
|
||||
{description = "increase master width factor", group = "layout"}),
|
||||
@@ -127,8 +127,8 @@ globalkeys = gears.table.join(
|
||||
awesome.restart()
|
||||
end),
|
||||
|
||||
awful.key({ }, "XF86AudioPlay", function () awful.util.spawn(mpris.." -a PlayPause") end),
|
||||
awful.key({ }, "XF86AudioStop", function () awful.util.spawn(mpris.." -a pause") end),
|
||||
awful.key({ }, "XF86AudioPlay", function () awful.util.spawn("playerctl play-pause") end),
|
||||
awful.key({ }, "XF86AudioStop", function () awful.util.spawn("playerctl -a pause") end),
|
||||
--awful.key({ }, "XF86AudioRaiseVolume", function () awful.util.spawn("amixer -D pulse sset Master 2%+", false) end),
|
||||
awful.key({ }, "XF86AudioRaiseVolume", function () awful.util.spawn("pactl set-sink-volume @DEFAULT_SINK@ +2%", false) end),
|
||||
awful.key({ }, "XF86AudioLowerVolume", function () awful.util.spawn("pactl set-sink-volume @DEFAULT_SINK@ -2%", false) end),
|
||||
@@ -222,7 +222,7 @@ clientkeys = gears.table.join(
|
||||
{description = "toggle floating", group = "client"}),
|
||||
awful.key({ modkey, }, "z", function (c) c:swap(awful.client.getmaster()) end,
|
||||
{description = "move to master", group = "client"}),
|
||||
awful.key({ modkey, }, "o", function (c) c:move_to_screen() end,
|
||||
awful.key({ modkey, "Shift" }, "o", function (c) c:move_to_screen() end,
|
||||
{description = "move to screen", group = "client"}),
|
||||
awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end,
|
||||
{description = "toggle keep on top", group = "client"}),
|
||||
|
||||
59
env/.config/awesome/rc.lua
vendored
59
env/.config/awesome/rc.lua
vendored
@@ -21,8 +21,7 @@ Us_keys_colemak = require("keys-US-colemak")
|
||||
-- when client with a matching name is opened:
|
||||
require("awful.hotkeys_popup.keys")
|
||||
|
||||
local HOMEDIR="/home/iceyrazor"
|
||||
mpris=HOMEDIR.."/stuff/scripts/system/mpris_player_control"
|
||||
local HOMEDIR="/home/iceyrazor/"
|
||||
|
||||
|
||||
local show_desktop = false
|
||||
@@ -103,9 +102,6 @@ editor_cmd = terminal .. " -e " .. editor
|
||||
-- I suggest you to remap Mod4 to another key using xmodmap or other tools.
|
||||
-- However, you can use another modifier like Mod1, but it may interact with others.
|
||||
modkey = "Mod4"
|
||||
if awesome.hostname == "DangerNoodle" then
|
||||
--modkey = "Mod3"
|
||||
end
|
||||
|
||||
|
||||
-- Table of layouts to cover with awful.layout.inc, order matters.
|
||||
@@ -141,10 +137,10 @@ myawesomemenu = {
|
||||
{ "quit", function() awesome.quit() end },
|
||||
}
|
||||
|
||||
mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
|
||||
{ "open terminal", terminal }
|
||||
}
|
||||
})
|
||||
mymainmenu = awful.menu({ items = {
|
||||
{ "awesome", myawesomemenu, beautiful.awesome_icon },
|
||||
{ "open terminal", terminal }
|
||||
}})
|
||||
|
||||
mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
|
||||
menu = mymainmenu })
|
||||
@@ -261,7 +257,7 @@ awful.screen.connect_for_each_screen(function(screen)
|
||||
spacerbg.bg = beautiful.bg_normal
|
||||
|
||||
screen.mywibox.bg = beautiful.wibar_background
|
||||
screen.mywibox.ontop = true
|
||||
screen.mywibox.ontop = false
|
||||
screen.mywibox.floating = false
|
||||
|
||||
local mykeyboardlayout = wibox.widget.background(mykeyboardlayout)
|
||||
@@ -275,7 +271,7 @@ awful.screen.connect_for_each_screen(function(screen)
|
||||
|
||||
-- Add widgets to the wibox
|
||||
if screen.index==1 then
|
||||
local stbar = awful.widget.watch(HOMEDIR..'/stuff/scripts/system/stbar/stbar-awesome.sh', 2)
|
||||
local stbar = awful.widget.watch(HOMEDIR..'.local/bin/system/stbar/stbar-awesome.sh', 2)
|
||||
local stbar = wibox.widget.background(stbar)
|
||||
stbar.bg = beautiful.bg_normal
|
||||
|
||||
@@ -322,7 +318,7 @@ awful.screen.connect_for_each_screen(function(screen)
|
||||
screen.mylayoutbox,
|
||||
},
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- Add widgets to the wibox
|
||||
@@ -454,6 +450,14 @@ awful.rules.rules = {
|
||||
class = { "steam_app*", "vesktop", "Minecraft*" }
|
||||
},
|
||||
properties = { border_width = 0 }
|
||||
},
|
||||
|
||||
{
|
||||
rule = { name = "im-emoji-picker" },
|
||||
properties = {
|
||||
focusable = false,
|
||||
focus = false,
|
||||
}
|
||||
}
|
||||
|
||||
-- Set Firefox to always map on the tag named "2" on screen 1.
|
||||
@@ -462,7 +466,6 @@ awful.rules.rules = {
|
||||
}
|
||||
-- }}}
|
||||
if screen[2] then
|
||||
screen[2]:fake_resize(1986,33,1792,1015)
|
||||
table.insert(awful.rules.rules,
|
||||
{ rule_any = {
|
||||
class = { "Mumble", "gajim", "vesktop" }
|
||||
@@ -472,6 +475,25 @@ if screen[2] then
|
||||
)
|
||||
end
|
||||
|
||||
client.connect_signal("manage", function(c)
|
||||
if c.name == "im-emoji-picker" then
|
||||
local focused = client.focus
|
||||
if focused and focused ~= c then
|
||||
-- Center on focused client
|
||||
local geo = focused:geometry()
|
||||
local c_geo = c:geometry()
|
||||
|
||||
c:geometry({
|
||||
x = geo.x + (geo.width - c_geo.width) / 2,
|
||||
y = geo.y + (geo.height - c_geo.height) / 2
|
||||
})
|
||||
else
|
||||
-- Fallback: center on screen
|
||||
awful.placement.centered(c, nil)
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
-- {{{ Signals
|
||||
-- Signal function to execute when a new client appears.
|
||||
client.connect_signal("manage", function (c)
|
||||
@@ -487,15 +509,6 @@ client.connect_signal("manage", function (c)
|
||||
end
|
||||
end)
|
||||
|
||||
screen[1]:connect_signal("request::geometry", function(s)
|
||||
-- Recalculate the workarea height
|
||||
-- s.workarea.height = s.geometry.height - 100
|
||||
gears.debug.print_error("Workarea height: " .. tostring(s.workarea.height))
|
||||
naughty.notify({ title = "Oops, there were errors during startup!",
|
||||
text = 'djsakldsaujsaiodsjugfa89rdfjg489ejt' })
|
||||
-- You can also recalculate s.workarea.y if you want to fine-tune vertical placement
|
||||
-- awful.layout.arrange(s)
|
||||
end)
|
||||
awful.layout.suit.tile.master_width_factor = 0.5
|
||||
|
||||
-- Add a titlebar if titlebars_enabled is set to true in the rules.
|
||||
@@ -551,4 +564,4 @@ client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_n
|
||||
|
||||
|
||||
-- autostart applets
|
||||
awful.spawn.with_shell("~/.config/dwm/autostart.sh")
|
||||
awful.spawn.with_shell("~/.local/bin/system/start-scripts/autostart.sh")
|
||||
|
||||
2
env/.config/cava/config
vendored
2
env/.config/cava/config
vendored
@@ -22,7 +22,7 @@
|
||||
|
||||
# The number of bars (0-512). 0 sets it to auto (fill up console).
|
||||
# Bars' width and space between bars in number of characters.
|
||||
bars = 512
|
||||
bars = 0
|
||||
bar_width = 1
|
||||
; bar_spacing = 0
|
||||
# bar_height is only used for output in "noritake" format
|
||||
|
||||
513
env/.config/dunst/dunstrc
vendored
Normal file
513
env/.config/dunst/dunstrc
vendored
Normal file
@@ -0,0 +1,513 @@
|
||||
# See dunst(5) for all configuration options
|
||||
|
||||
[global]
|
||||
### Display ###
|
||||
|
||||
# Which monitor should the notifications be displayed on.
|
||||
# i keep having to change this because hyprland ◔̯◔
|
||||
monitor = 1
|
||||
|
||||
# Display notification on focused monitor. Possible modes are:
|
||||
# mouse: follow mouse pointer
|
||||
# keyboard: follow window with keyboard focus
|
||||
# none: don't follow anything
|
||||
#
|
||||
# "keyboard" needs a window manager that exports the
|
||||
# _NET_ACTIVE_WINDOW property.
|
||||
# This should be the case for almost all modern window managers.
|
||||
#
|
||||
# If this option is set to mouse or keyboard, the monitor option
|
||||
# will be ignored.
|
||||
follow = none
|
||||
|
||||
### Geometry ###
|
||||
|
||||
# The width of the window, excluding the frame.
|
||||
# dynamic width from 0 to 300
|
||||
# width = (0, 300)
|
||||
# constant width of 300
|
||||
width = 300
|
||||
|
||||
# The height of a single notification, excluding the frame.
|
||||
# dynamic height from 0 to 300
|
||||
height = (0, 300)
|
||||
# constant height of 300
|
||||
# height = 300
|
||||
# NOTE: Dunst from version 1.11 and older don't support dynamic height
|
||||
# and the given value is treated as the maximum height
|
||||
|
||||
# Position the notification in the top right corner
|
||||
origin = top-right
|
||||
|
||||
# Offset from the origin
|
||||
# NOTE: Dunst from version 1.11 and older use this alternative notation
|
||||
# offset = 10x50
|
||||
offset = (10, 50)
|
||||
|
||||
# Scale factor. It is auto-detected if value is 0.
|
||||
scale = 0
|
||||
|
||||
# Maximum number of notification (0 means no limit)
|
||||
notification_limit = 20
|
||||
|
||||
### Progress bar ###
|
||||
|
||||
# Turn on the progress bar. It appears when a progress hint is passed with
|
||||
# for example dunstify -h int:value:12
|
||||
progress_bar = true
|
||||
|
||||
# Set the progress bar height. This includes the frame, so make sure
|
||||
# it's at least twice as big as the frame width.
|
||||
progress_bar_height = 10
|
||||
|
||||
# Set the frame width of the progress bar
|
||||
progress_bar_frame_width = 1
|
||||
|
||||
# Set the minimum width for the progress bar
|
||||
progress_bar_min_width = 150
|
||||
|
||||
# Set the maximum width for the progress bar
|
||||
progress_bar_max_width = 300
|
||||
|
||||
# Corner radius for the progress bar. 0 disables rounded corners.
|
||||
progress_bar_corner_radius = 0
|
||||
|
||||
# Define which corners to round when drawing the progress bar. If progress_bar_corner_radius
|
||||
# is set to 0 this option will be ignored.
|
||||
progress_bar_corners = all
|
||||
|
||||
# Corner radius for the icon image.
|
||||
icon_corner_radius = 0
|
||||
|
||||
# Define which corners to round when drawing the icon image. If icon_corner_radius
|
||||
# is set to 0 this option will be ignored.
|
||||
icon_corners = all
|
||||
|
||||
# Show how many messages are currently hidden (because of
|
||||
# notification_limit).
|
||||
indicate_hidden = yes
|
||||
|
||||
# The transparency of the window. Range: [0; 100].
|
||||
# This option will only work if a compositing window manager is
|
||||
# present (e.g. xcompmgr, compiz, etc.). (X11 only)
|
||||
transparency = 0
|
||||
|
||||
# Draw a line of "separator_height" pixel height between two
|
||||
# notifications.
|
||||
# Set to 0 to disable.
|
||||
# If gap_size is greater than 0, this setting will be ignored.
|
||||
separator_height = 2
|
||||
|
||||
# Padding between text and separator.
|
||||
padding = 8
|
||||
|
||||
# Horizontal padding.
|
||||
horizontal_padding = 8
|
||||
|
||||
# Padding between text and icon.
|
||||
text_icon_padding = 0
|
||||
|
||||
# Defines width in pixels of frame around the notification window.
|
||||
# Set to 0 to disable.
|
||||
frame_width = 3
|
||||
|
||||
# Defines color of the frame around the notification window.
|
||||
frame_color = "#aaaaaa"
|
||||
|
||||
# Size of gap to display between notifications - requires a compositor.
|
||||
# If value is greater than 0, separator_height will be ignored and a border
|
||||
# of size frame_width will be drawn around each notification instead.
|
||||
# Click events on gaps do not currently propagate to applications below.
|
||||
gap_size = 0
|
||||
|
||||
# Define a color for the separator.
|
||||
# possible values are:
|
||||
# * auto: dunst tries to find a color fitting to the background;
|
||||
# * foreground: use the same color as the foreground;
|
||||
# * frame: use the same color as the frame;
|
||||
# * anything else will be interpreted as a X color.
|
||||
separator_color = frame
|
||||
|
||||
# Sort type.
|
||||
# possible values are:
|
||||
# * id: sort by id
|
||||
# * urgency_ascending: sort by urgency (low then normal then critical)
|
||||
# * urgency_descending: sort by urgency (critical then normal then low)
|
||||
# * update: sort by update (most recent always at the top)
|
||||
sort = yes
|
||||
|
||||
# Don't remove messages, if the user is idle (no mouse or keyboard input)
|
||||
# for longer than idle_threshold seconds.
|
||||
# Set to 0 to disable.
|
||||
# A client can set the 'transient' hint to bypass this. See the rules
|
||||
# section for how to disable this if necessary
|
||||
# idle_threshold = 120
|
||||
|
||||
### Text ###
|
||||
|
||||
font = Monospace 10
|
||||
|
||||
# The spacing between lines. If the height is smaller than the
|
||||
# font height, it will get raised to the font height.
|
||||
line_height = 0
|
||||
|
||||
# Possible values are:
|
||||
# full: Allow a small subset of html markup in notifications:
|
||||
# <b>bold</b>
|
||||
# <i>italic</i>
|
||||
# <s>strikethrough</s>
|
||||
# <u>underline</u>
|
||||
#
|
||||
# For a complete reference see
|
||||
# <https://docs.gtk.org/Pango/pango_markup.html>.
|
||||
#
|
||||
# strip: This setting is provided for compatibility with some broken
|
||||
# clients that send markup even though it's not enabled on the
|
||||
# server. Dunst will try to strip the markup but the parsing is
|
||||
# simplistic so using this option outside of matching rules for
|
||||
# specific applications *IS GREATLY DISCOURAGED*.
|
||||
#
|
||||
# no: Disable markup parsing, incoming notifications will be treated as
|
||||
# plain text. Dunst will not advertise that it has the body-markup
|
||||
# capability if this is set as a global setting.
|
||||
#
|
||||
# It's important to note that markup inside the format option will be parsed
|
||||
# regardless of what this is set to.
|
||||
markup = full
|
||||
|
||||
# The format of the message. Possible variables are:
|
||||
# %a appname
|
||||
# %s summary
|
||||
# %b body
|
||||
# %i iconname (including its path)
|
||||
# %I iconname (without its path)
|
||||
# %p progress value if set ([ 0%] to [100%]) or nothing
|
||||
# %n progress value if set without any extra characters
|
||||
# %% Literal %
|
||||
# Markup is allowed
|
||||
format = "<b>%s</b>\n%b"
|
||||
|
||||
# Alignment of message text.
|
||||
# Possible values are "left", "center" and "right".
|
||||
alignment = left
|
||||
|
||||
# Vertical alignment of message text and icon.
|
||||
# Possible values are "top", "center" and "bottom".
|
||||
vertical_alignment = center
|
||||
|
||||
# Show age of message if message is older than show_age_threshold
|
||||
# seconds.
|
||||
# Set to -1 to disable.
|
||||
show_age_threshold = 10
|
||||
|
||||
# Specify where to make an ellipsis in long lines.
|
||||
# Possible values are "start", "middle" and "end".
|
||||
ellipsize = middle
|
||||
|
||||
# Ignore newlines '\n' in notifications.
|
||||
ignore_newline = no
|
||||
|
||||
# Stack together notifications with the same content
|
||||
stack_duplicates = true
|
||||
|
||||
# Hide the count of stacked notifications with the same content
|
||||
hide_duplicate_count = false
|
||||
|
||||
# Display indicators for URLs (U) and actions (A).
|
||||
show_indicators = yes
|
||||
|
||||
### Icons ###
|
||||
|
||||
# Recursive icon lookup. You can set a single theme, instead of having to
|
||||
# define all lookup paths.
|
||||
enable_recursive_icon_lookup = true
|
||||
|
||||
# Set icon theme (only used for recursive icon lookup)
|
||||
icon_theme = Adwaita
|
||||
# You can also set multiple icon themes, with the leftmost one being used first.
|
||||
# icon_theme = "Adwaita, breeze"
|
||||
|
||||
# Align icons left/right/top/off
|
||||
icon_position = left
|
||||
|
||||
# Scale small icons up to this size, set to 0 to disable. Helpful
|
||||
# for e.g. small files or high-dpi screens. In case of conflict,
|
||||
# max_icon_size takes precedence over this.
|
||||
min_icon_size = 32
|
||||
|
||||
# Scale larger icons down to this size, set to 0 to disable
|
||||
max_icon_size = 128
|
||||
|
||||
# Paths to default icons (only necessary when not using recursive icon lookup)
|
||||
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
|
||||
|
||||
### History ###
|
||||
|
||||
# Should a notification popped up from history be sticky or timeout
|
||||
# as if it would normally do.
|
||||
sticky_history = yes
|
||||
|
||||
# Maximum amount of notifications kept in history
|
||||
history_length = 20
|
||||
|
||||
### Misc/Advanced ###
|
||||
|
||||
# dmenu path.
|
||||
dmenu = /usr/bin/rofi -dmenu -p dunst:
|
||||
|
||||
# Browser for opening urls in context menu.
|
||||
browser = /usr/bin/xdg-open
|
||||
|
||||
# Always run rule-defined scripts, even if the notification is suppressed
|
||||
always_run_script = true
|
||||
|
||||
# Define the title of the windows spawned by dunst (X11 only)
|
||||
title = Dunst
|
||||
|
||||
# Define the class of the windows spawned by dunst (X11 only)
|
||||
class = Dunst
|
||||
|
||||
# Define the corner radius of the notification window
|
||||
# in pixel size. If the radius is 0, you have no rounded
|
||||
# corners.
|
||||
# The radius will be automatically lowered if it exceeds half of the
|
||||
# notification height to avoid clipping text and/or icons.
|
||||
corner_radius = 0
|
||||
|
||||
# Define which corners to round when drawing the window. If the corner radius
|
||||
# is set to 0 this option will be ignored.
|
||||
#
|
||||
# Comma-separated list of the corners. The accepted corner values are bottom-right,
|
||||
# bottom-left, top-right, top-left, top, bottom, left, right or all.
|
||||
corners = all
|
||||
|
||||
# Ignore the dbus closeNotification message.
|
||||
# Useful to enforce the timeout set by dunst configuration. Without this
|
||||
# parameter, an application may close the notification sent before the
|
||||
# user defined timeout.
|
||||
ignore_dbusclose = false
|
||||
|
||||
### Wayland ###
|
||||
# These settings are Wayland-specific. They have no effect when using X11
|
||||
|
||||
# Uncomment this if you want to let notifications appear under fullscreen
|
||||
# applications (default: overlay)
|
||||
# layer = top
|
||||
|
||||
# Set this to true to use X11 output on Wayland.
|
||||
force_xwayland = false
|
||||
|
||||
### Legacy
|
||||
|
||||
# Use the Xinerama extension instead of RandR for multi-monitor support.
|
||||
# This setting is provided for compatibility with older nVidia drivers that
|
||||
# do not support RandR and using it on systems that support RandR is highly
|
||||
# discouraged.
|
||||
#
|
||||
# By enabling this setting dunst will not be able to detect when a monitor
|
||||
# is connected or disconnected which might break follow mode if the screen
|
||||
# layout changes.
|
||||
force_xinerama = false
|
||||
|
||||
### mouse
|
||||
|
||||
# Defines list of actions for each mouse event
|
||||
# Possible values are:
|
||||
# * none: Don't do anything.
|
||||
# * do_action: Invoke the action determined by the action_name rule. If there is no
|
||||
# such action, open the context menu.
|
||||
# * open_url: If the notification has exactly one url, open it. If there are multiple
|
||||
# ones, open the context menu.
|
||||
# * close_current: Close current notification.
|
||||
# * close_all: Close all notifications.
|
||||
# * context: Open context menu for the notification.
|
||||
# * context_all: Open context menu for all notifications.
|
||||
# These values can be strung together for each mouse event, and
|
||||
# will be executed in sequence.
|
||||
mouse_left_click = close_current
|
||||
mouse_middle_click = do_action, close_current
|
||||
mouse_right_click = close_all
|
||||
|
||||
# Experimental features that may or may not work correctly. Do not expect them
|
||||
# to have a consistent behaviour across releases.
|
||||
[experimental]
|
||||
# Calculate the dpi to use on a per-monitor basis.
|
||||
# If this setting is enabled the Xft.dpi value will be ignored and instead
|
||||
# dunst will attempt to calculate an appropriate dpi value for each monitor
|
||||
# using the resolution and physical size. This might be useful in setups
|
||||
# where there are multiple screens with very different dpi values.
|
||||
per_monitor_dpi = false
|
||||
|
||||
|
||||
[urgency_low]
|
||||
# IMPORTANT: colors have to be defined in quotation marks.
|
||||
# Otherwise the "#" and following would be interpreted as a comment.
|
||||
background = "#222222"
|
||||
foreground = "#888888"
|
||||
timeout = 10
|
||||
# Icon for notifications with low urgency
|
||||
default_icon = dialog-information
|
||||
|
||||
[urgency_normal]
|
||||
background = "#222222"
|
||||
foreground = "#eeeeee"
|
||||
timeout = 10
|
||||
override_pause_level = 30
|
||||
# Icon for notifications with normal urgency
|
||||
default_icon = dialog-information
|
||||
|
||||
[urgency_critical]
|
||||
background = "#900000"
|
||||
foreground = "#ffffff"
|
||||
frame_color = "#ff0000"
|
||||
timeout = 0
|
||||
override_pause_level = 60
|
||||
# Icon for notifications with critical urgency
|
||||
default_icon = dialog-warning
|
||||
|
||||
# Every section that isn't one of the above is interpreted as a rules to
|
||||
# override settings for certain messages.
|
||||
#
|
||||
# Messages can be matched by
|
||||
# appname (discouraged, see desktop_entry)
|
||||
# body
|
||||
# category
|
||||
# desktop_entry
|
||||
# icon
|
||||
# match_transient
|
||||
# msg_urgency
|
||||
# stack_tag
|
||||
# summary
|
||||
#
|
||||
# and you can override the
|
||||
# background
|
||||
# foreground
|
||||
# format
|
||||
# frame_color
|
||||
# fullscreen
|
||||
# new_icon
|
||||
# set_stack_tag
|
||||
# set_transient
|
||||
# set_category
|
||||
# timeout
|
||||
# urgency
|
||||
# icon_position
|
||||
# skip_display
|
||||
# history_ignore
|
||||
# action_name
|
||||
# word_wrap
|
||||
# ellipsize
|
||||
# alignment
|
||||
# hide_text
|
||||
# override_pause_level
|
||||
#
|
||||
# Shell-like globbing will get expanded.
|
||||
#
|
||||
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
|
||||
# GLib based applications export their desktop-entry name. In comparison to the appname,
|
||||
# the desktop-entry won't get localized.
|
||||
#
|
||||
# You can also allow a notification to appear even when paused. Notification will appear whenever notification's override_pause_level >= dunst's paused level.
|
||||
# This can be used to set partial pause modes, where more urgent notifications get through, but less urgent stay paused. To do that, you can override the following in the rules:
|
||||
# override_pause_level = X
|
||||
|
||||
# SCRIPTING
|
||||
# You can specify a script that gets run when the rule matches by
|
||||
# setting the "script" option.
|
||||
# The script will be called as follows:
|
||||
# script appname summary body icon urgency
|
||||
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
|
||||
#
|
||||
# NOTE: It might be helpful to run dunst -print in a terminal in order
|
||||
# to find fitting options for rules.
|
||||
|
||||
# Disable the transient hint so that idle_threshold cannot be bypassed from the
|
||||
# client
|
||||
#[transient_disable]
|
||||
# match_transient = yes
|
||||
# set_transient = no
|
||||
#
|
||||
# Make the handling of transient notifications more strict by making them not
|
||||
# be placed in history.
|
||||
#[transient_history_ignore]
|
||||
# match_transient = yes
|
||||
# history_ignore = yes
|
||||
|
||||
# fullscreen values
|
||||
# show: show the notifications, regardless if there is a fullscreen window opened
|
||||
# delay: displays the new notification, if there is no fullscreen window active
|
||||
# If the notification is already drawn, it won't get undrawn.
|
||||
# pushback: same as delay, but when switching into fullscreen, the notification will get
|
||||
# withdrawn from screen again and will get delayed like a new notification
|
||||
#[fullscreen_delay_everything]
|
||||
# fullscreen = delay
|
||||
#[fullscreen_show_critical]
|
||||
# msg_urgency = critical
|
||||
# fullscreen = show
|
||||
|
||||
#[espeak]
|
||||
# summary = "*"
|
||||
# script = dunst_espeak.sh
|
||||
|
||||
#[script-test]
|
||||
# summary = "*script*"
|
||||
# script = dunst_test.sh
|
||||
|
||||
#[ignore]
|
||||
# # This notification will not be displayed
|
||||
# summary = "foobar"
|
||||
# skip_display = true
|
||||
|
||||
#[history-ignore]
|
||||
# # This notification will not be saved in history
|
||||
# summary = "foobar"
|
||||
# history_ignore = yes
|
||||
|
||||
#[skip-display]
|
||||
# # This notification will not be displayed, but will be included in the history
|
||||
# summary = "foobar"
|
||||
# skip_display = yes
|
||||
|
||||
#[signed_on]
|
||||
# appname = Pidgin
|
||||
# summary = "*signed on*"
|
||||
# urgency = low
|
||||
#
|
||||
#[signed_off]
|
||||
# appname = Pidgin
|
||||
# summary = *signed off*
|
||||
# urgency = low
|
||||
#
|
||||
#[says]
|
||||
# appname = Pidgin
|
||||
# summary = *says*
|
||||
# urgency = critical
|
||||
#
|
||||
#[twitter]
|
||||
# appname = Pidgin
|
||||
# summary = *twitter.com*
|
||||
# urgency = normal
|
||||
#
|
||||
#[stack-volumes]
|
||||
# appname = "some_volume_notifiers"
|
||||
# set_stack_tag = "volume"
|
||||
#
|
||||
# vim: ft=cfg
|
||||
|
||||
[global]
|
||||
frame_color = "#8aadf4"
|
||||
separator_color= frame
|
||||
highlight = "#8aadf4"
|
||||
|
||||
[urgency_low]
|
||||
background = "#24273a"
|
||||
foreground = "#cad3f5"
|
||||
|
||||
[urgency_normal]
|
||||
background = "#24273a"
|
||||
foreground = "#cad3f5"
|
||||
|
||||
[urgency_critical]
|
||||
background = "#24273a"
|
||||
foreground = "#cad3f5"
|
||||
frame_color = "#f5a97f"
|
||||
19
env/.config/gazatu.xyz/im-emoji-picker.ini
vendored
Normal file
19
env/.config/gazatu.xyz/im-emoji-picker.ini
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
[General]
|
||||
closeAfterFirstInput=false
|
||||
gendersDisabled=false
|
||||
maxEmojiVersion=-1
|
||||
saveKaomojiInMRU=false
|
||||
scaleFactor=
|
||||
skinTonesDisabled=false
|
||||
systemEmojiFontOverride=
|
||||
useSystemEmojiFont=false
|
||||
useSystemEmojiFontWidthHeuristics=true
|
||||
useSystemQtTheme=false
|
||||
windowOpacity=0.9
|
||||
|
||||
[customHotKeys]
|
||||
size=0
|
||||
|
||||
[emojiAliasFiles]
|
||||
1\path=:/res/aliases/github-emojis.ini
|
||||
size=1
|
||||
123
env/.config/hypr/hyprland.conf
vendored
123
env/.config/hypr/hyprland.conf
vendored
@@ -7,6 +7,7 @@
|
||||
|
||||
# autogenerated = 1 # remove this line to remove the warning
|
||||
|
||||
env = QT_QPA_PLATFORMTHEME,qt6ct
|
||||
env = QT_QPA_PLATFORM,wayland
|
||||
env = LIBVA_DRIVER_NAME,nvidia
|
||||
env = GBM_BACKEND,nvidia-drm
|
||||
@@ -18,16 +19,14 @@ env = GDK_BACKEND,wayland,x11,*
|
||||
env = HYPRLAND_PER_MONITOR_WORKSPACES,1
|
||||
|
||||
|
||||
|
||||
windowrule = float,title:^(flameshot)
|
||||
windowrule = move 0 0,title:^(flameshot)
|
||||
windowrule = suppressevent fullscreen,title:^(flameshot)
|
||||
|
||||
exec-once = $HOME/.config/dwm/autostart.sh
|
||||
exec-once = waybar
|
||||
exec-once = $HOME/.local/bin/system/start-scripts/autostart.sh
|
||||
exec-once = /usr/lib/xdg-desktop-portal &
|
||||
exec-once = dbus-update-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||
# exec-once = ibus-daemon -rxRd
|
||||
exec-once = /usr/lib/ibus/ibus-wayland
|
||||
exec-once = hyprpaper
|
||||
exec-once = /usr/bin/dunst $HOME/.config/dunst/dunstrc
|
||||
|
||||
@@ -145,11 +144,12 @@ general {
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
||||
# col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
|
||||
# col.active_border = rgba(cf68e6ee) rgba(8568e6ee) 45deg
|
||||
col.active_border = rgba(8568e6ee) rgba(cf68e6ee) 45deg
|
||||
col.active_border = rgba(cf68e6ee) rgba(8568e6ee) 45deg
|
||||
#33ccff
|
||||
#00ff99
|
||||
#8568e6
|
||||
#cf68e6
|
||||
col.inactive_border = rgba(595959aa)
|
||||
|
||||
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
||||
@@ -187,36 +187,45 @@ decoration {
|
||||
}
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#animations
|
||||
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||
#enabled = yes, please :)
|
||||
animations {
|
||||
enabled = yes, please :)
|
||||
|
||||
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||
bezier = myBezier, 0.05, 0.9, 0.1, 1.08
|
||||
|
||||
bezier = easeOutQuint,0.23,1,0.32,1
|
||||
bezier = easeInOutCubic,0.65,0.05,0.36,1
|
||||
bezier = linear,0,0,1,1
|
||||
bezier = almostLinear,0.5,0.5,0.75,1.0
|
||||
bezier = quick,0.15,0,0.1,1
|
||||
animation = windows, 1, 3, myBezier
|
||||
animation = windowsOut, 1, 3, default, popin 80%
|
||||
animation = windowsMove, 1, 4, myBezier
|
||||
animation = border, 1, 10, default
|
||||
animation = fade, 1, 3, default
|
||||
animation = workspaces, 1, 2, default
|
||||
animation = specialWorkspace, 1, 3, default, slidefadevert
|
||||
|
||||
animation = global, 1, 10, default
|
||||
animation = border, 1, 5.39, easeOutQuint
|
||||
animation = windows, 1, 1.79, easeOutQuint
|
||||
animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
|
||||
animation = windowsOut, 1, 1.49, linear, popin 87%
|
||||
animation = fadeIn, 1, 1.73, almostLinear
|
||||
animation = fadeOut, 1, 1.46, almostLinear
|
||||
animation = fade, 1, 3.03, quick
|
||||
animation = layers, 1, 3.81, easeOutQuint
|
||||
animation = layersIn, 1, 4, easeOutQuint, fade
|
||||
animation = layersOut, 1, 1.5, linear, fade
|
||||
animation = fadeLayersIn, 1, 1.79, almostLinear
|
||||
animation = fadeLayersOut, 1, 1.39, almostLinear
|
||||
animation = workspaces, 1, 1.94, almostLinear, fade
|
||||
animation = workspacesIn, 1, 1.21, almostLinear, fade
|
||||
animation = workspacesOut, 1, 1.94, almostLinear, fade
|
||||
# bezier = easeOutQuint,0.23,1,0.32,1
|
||||
# bezier = easeInOutCubic,0.65,0.05,0.36,1
|
||||
# bezier = linear,0,0,1,1
|
||||
# bezier = almostLinear,0.5,0.5,0.75,1.0
|
||||
# bezier = quick,0.15,0,0.1,1
|
||||
|
||||
# animation = global, 1, 10, default
|
||||
# animation = border, 1, 5.39, easeOutQuint
|
||||
# animation = windows, 1, 1.79, easeOutQuint
|
||||
# animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
|
||||
# animation = windowsOut, 1, 1.49, linear, popin 87%
|
||||
# animation = fadeIn, 1, 1.73, almostLinear
|
||||
# animation = fadeOut, 1, 1.46, almostLinear
|
||||
# animation = fade, 1, 3.03, quick
|
||||
# animation = layers, 1, 3.81, easeOutQuint
|
||||
# animation = layersIn, 1, 4, easeOutQuint, fade
|
||||
# animation = layersOut, 1, 1.5, linear, fade
|
||||
# animation = fadeLayersIn, 1, 1.79, almostLinear
|
||||
# animation = fadeLayersOut, 1, 1.39, almostLinear
|
||||
# animation = workspaces, 1, 1.94, almostLinear, fade
|
||||
# animation = workspacesIn, 1, 1.21, almostLinear, fade
|
||||
# animation = workspacesOut, 1, 1.94, almostLinear, fade
|
||||
}
|
||||
|
||||
|
||||
# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
|
||||
# "Smart gaps" / "No gaps when only"
|
||||
# uncomment all if you wish to use that.
|
||||
@@ -255,7 +264,7 @@ input {
|
||||
kb_layout = us
|
||||
kb_variant =
|
||||
kb_model =
|
||||
kb_options =
|
||||
kb_options = caps:swapescape
|
||||
kb_rules =
|
||||
|
||||
follow_mouse = 1
|
||||
@@ -298,15 +307,20 @@ bind = $mainMod SHIFT, Q, exit,
|
||||
bind = $mainMod, E, exec, $fileManager
|
||||
bind = $mainMod, space, togglefloating,
|
||||
bind = $mainMod, D, exec, $menu
|
||||
bind = $mainMod SHIFT, D, exec, $HOME/stuff/scripts/system/rofi-search-web.sh
|
||||
bind = $mainMod SHIFT, D, exec, $HOME/.local/bin/system/rofi-search-web.sh
|
||||
bind = $mainMod, P, pseudo, # dwindle
|
||||
bind = $mainMod, i, togglesplit, # dwindle
|
||||
bind = $mainMod SHIFT, i, togglesplit, # dwindle
|
||||
bind = $mainMod, f, fullscreen, 0
|
||||
bind = $mainMod SHIFT, m, fullscreen, 1
|
||||
|
||||
# screenshot
|
||||
bind = $mainMod, escape, exec, grim -g "$(slurp -b 00000088 -c cba6f7; sleep 0.5)" - | wl-copy
|
||||
bind = $mainMod shift, escape, exec, grim -o HDMI-A-1 - | wl-copy
|
||||
|
||||
# layout stuffs
|
||||
bind = $mainMod SHIFT, space, exec, $HOME/.config/hypr/cycle-layout.sh
|
||||
bind = $mainMod SHIFT, i, layoutmsg, cyclenext
|
||||
bind = $mainMod, i, cyclenext
|
||||
bind = $mainMod, i, alterzorder, top
|
||||
bind = $mainMod, z, layoutmsg, swapwithmaster master
|
||||
# behaves like xmonads promote feature (https://hackage.haskell.org/package/xmonad-contrib-0.17.1/docs/XMonad-Actions-Promote.html)
|
||||
|
||||
@@ -326,13 +340,15 @@ bind = $mainMod SHIFT, k, movewindow, u
|
||||
bind = $mainMod SHIFT, j, movewindow, d
|
||||
bind = $mainMod, t, pin
|
||||
|
||||
bind = $mainMod CTRL, h, resizeactive, -50 0
|
||||
bind = $mainMod CTRL, l, resizeactive, 50 0
|
||||
bind = $mainMod CTRL, k, resizeactive, 0 -50
|
||||
bind = $mainMod CTRL, j, resizeactive, 0 50
|
||||
bind = $mainMod CTRL SHIFT, h, resizeactive, -50 0
|
||||
bind = $mainMod CTRL SHIFT, l, resizeactive, 50 0
|
||||
bind = $mainMod CTRL SHIFT, k, resizeactive, 0 -50
|
||||
bind = $mainMod CTRL SHIFT, j, resizeactive, 0 50
|
||||
|
||||
bind = $mainMod, o, focusmonitor, +1
|
||||
bind = $mainMod SHIFT, o, movewindow, mon:+1
|
||||
bind = $mainMod, n, workspace, r+1
|
||||
bind = $mainMod, b, workspace, r-1
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
bind = $mainMod, 1, workspace, r~1
|
||||
bind = $mainMod, 2, workspace, r~2
|
||||
@@ -422,6 +438,17 @@ windowrule = noborder, class:vesktop
|
||||
windowrule = noshadow, class:vesktop
|
||||
windowrule = noblur, class:vesktop
|
||||
|
||||
# discord
|
||||
windowrule = float, class:discord
|
||||
windowrule = monitor DP-1, class:discord
|
||||
windowrule = move 0% 0%, class:discord
|
||||
windowrule = size 70% 70%, class:discord
|
||||
windowrule = workspace 11, class:discord
|
||||
windowrule = bordercolor rgba(00000000), class:discord
|
||||
windowrule = noborder, class:discord
|
||||
windowrule = noshadow, class:discord
|
||||
windowrule = noblur, class:discord
|
||||
|
||||
# Mumble
|
||||
windowrule = float, title:Mumble
|
||||
windowrule = monitor DP-1, title:Mumble
|
||||
@@ -438,3 +465,25 @@ windowrule = size 20% 70%, title:Friends List, class: steam
|
||||
windowrule = workspace 9, title: Envision
|
||||
|
||||
windowrule = workspace 8, title: VRChat
|
||||
|
||||
windowrule = noinitialfocus, title:im-emoji-picker
|
||||
windowrule = nofocus, title:im-emoji-picker
|
||||
|
||||
windowrule = float,title:(blob\:https://)(.*),class:xdg-desktop-portal-gtk
|
||||
windowrule = size 60% 60%,title:(blob\:https://)(.*),class:xdg-desktop-portal-gtk
|
||||
|
||||
windowrule = float,title:Open Files,class:xdg-desktop-portal-gtk
|
||||
windowrule = size 60% 60%,title:Open Files,class:xdg-desktop-portal-gtk
|
||||
|
||||
windowrule = noblur,class:showmethekey-gtk
|
||||
windowrule = noshadow,class:showmethekey-gtk
|
||||
windowrule = noborder,class:showmethekey-gtk
|
||||
windowrule = float,class:showmethekey-gtk
|
||||
windowrule = size 1128 53,class:showmethekey-gtk
|
||||
windowrule = move 253 1450,class:showmethekey-gtk
|
||||
windowrule = workspace 1,class:showmethekey-gtk
|
||||
|
||||
windowrule = noblur,class:desktop-pet
|
||||
windowrule = noshadow,class:desktop-pet
|
||||
windowrule = noborder,class:desktop-pet
|
||||
windowrule = float,class:desktop-pet
|
||||
|
||||
106
env/.config/hypr/hyprlock.conf
vendored
Normal file
106
env/.config/hypr/hyprlock.conf
vendored
Normal file
@@ -0,0 +1,106 @@
|
||||
# sample hyprlock.conf
|
||||
# for more configuration options, refer https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock
|
||||
#
|
||||
# rendered text in all widgets supports pango markup (e.g. <b> or <i> tags)
|
||||
# ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#general-remarks
|
||||
#
|
||||
# shortcuts to clear password buffer: ESC, Ctrl+U, Ctrl+Backspace
|
||||
#
|
||||
# you can get started by copying this config to ~/.config/hypr/hyprlock.conf
|
||||
#
|
||||
|
||||
$font = B612
|
||||
|
||||
general {
|
||||
hide_cursor = false
|
||||
}
|
||||
|
||||
# uncomment to enable fingerprint authentication
|
||||
# auth {
|
||||
# fingerprint {
|
||||
# enabled = true
|
||||
# ready_message = Scan fingerprint to unlock
|
||||
# present_message = Scanning...
|
||||
# retry_delay = 250 # in milliseconds
|
||||
# }
|
||||
# }
|
||||
|
||||
animations {
|
||||
enabled = true
|
||||
bezier = linear, 1, 1, 0, 0
|
||||
animation = fadeIn, 1, 5, linear
|
||||
animation = fadeOut, 1, 5, linear
|
||||
animation = inputFieldDots, 1, 2, linear
|
||||
}
|
||||
|
||||
background {
|
||||
monitor =
|
||||
path = screenshot
|
||||
blur_passes = 3
|
||||
}
|
||||
|
||||
input-field {
|
||||
monitor =
|
||||
size = 20%, 5%
|
||||
outline_thickness = 3
|
||||
inner_color = rgba(0, 0, 0, 0.0) # no fill
|
||||
|
||||
outer_color = rgba(33ccffee) rgba(00ff99ee) 45deg
|
||||
check_color = rgba(00ff99ee) rgba(ff6633ee) 120deg
|
||||
fail_color = rgba(ff6633ee) rgba(ff0066ee) 40deg
|
||||
|
||||
font_color = rgb(143, 143, 143)
|
||||
fade_on_empty = false
|
||||
rounding = 15
|
||||
|
||||
font_family = $font
|
||||
placeholder_text = Input password...
|
||||
fail_text = $PAMFAIL
|
||||
|
||||
# uncomment to use a letter instead of a dot to indicate the typed password
|
||||
# dots_text_format = *
|
||||
# dots_size = 0.4
|
||||
dots_spacing = 0.3
|
||||
|
||||
# uncomment to use an input indicator that does not show the password length (similar to swaylock's input indicator)
|
||||
# hide_input = true
|
||||
|
||||
position = 0, -20
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# TIME
|
||||
label {
|
||||
monitor =
|
||||
text = $TIME # ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#variable-substitution
|
||||
font_size = 90
|
||||
font_family = $font
|
||||
|
||||
position = -30, 0
|
||||
halign = right
|
||||
valign = top
|
||||
}
|
||||
|
||||
# DATE
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:60000] date +"%A, %d %B %Y" # update every 60 seconds
|
||||
font_size = 25
|
||||
font_family = $font
|
||||
|
||||
position = -30, -150
|
||||
halign = right
|
||||
valign = top
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = $LAYOUT[en,ru]
|
||||
font_size = 24
|
||||
onclick = hyprctl switchxkblayout all next
|
||||
|
||||
position = 250, -20
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
4
env/.config/hypr/hyprpaper.conf
vendored
4
env/.config/hypr/hyprpaper.conf
vendored
@@ -1,7 +1,5 @@
|
||||
preload = /home/iceyrazor/stuff/media/wallpapers/4500025-retrowave-vaporwave-car-typography-purple-blue-chromatic-aberration-initial-d-hachi-roku.jpg
|
||||
preload = /home/iceyrazor/stuff/media/wallpapers/tumblr_06bbd355f3e355049446dac24f6e7c44_2c486f77_1280 ninesols.jpg
|
||||
preload = /home/iceyrazor/stuff/media/wallpapers/dark_leaves.png
|
||||
preload = /home/iceyrazor/stuff/media/wallpapers/6b06108fa3bc46f5.jpg
|
||||
preload = /home/iceyrazor/stuff/media/wallpapers/tumblr_06bbd355f3e355049446dac24f6e7c44_2c486f77_1280 ninesols.jpg
|
||||
|
||||
#set the default wallpaper(s) seen on initial workspace(s) --depending on the number of monitors used
|
||||
wallpaper = HDMI-A-1,/home/iceyrazor/stuff/media/wallpapers/6b06108fa3bc46f5.jpg
|
||||
|
||||
320
env/.config/i3/config
vendored
Normal file
320
env/.config/i3/config
vendored
Normal file
@@ -0,0 +1,320 @@
|
||||
# i3 config file (v4)
|
||||
#
|
||||
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
|
||||
#
|
||||
# This config file uses keycodes (bindsym) and was written for the QWERTY
|
||||
# layout.
|
||||
#
|
||||
# To get a config file with the same key positions, but for your current
|
||||
# layout, use the i3-config-wizard
|
||||
#
|
||||
|
||||
|
||||
exec ~/.local/bin/system/start-scripts/autostart.sh
|
||||
|
||||
# Font for window titles. Will also be used by the bar unless a different font
|
||||
# is used in the bar {} block below.
|
||||
font pango:b612:monospace 7, "JetBrainsMono Nerd Font" 7
|
||||
|
||||
# This font is widely installed, provides lots of unicode glyphs, right-to-left
|
||||
# text rendering and scalability on retina/hidpi displays (thanks to pango).
|
||||
#font pango:DejaVu Sans Mono 8
|
||||
|
||||
# Start XDG autostart .desktop files using dex. See also
|
||||
# https://wiki.archlinux.org/index.php/XDG_Autostart
|
||||
# exec --no-startup-id dex --autostart --environment i3
|
||||
|
||||
# The combination of xss-lock, nm-applet and pactl is a popular choice, so
|
||||
# they are included here as an example. Modify as you see fit.
|
||||
|
||||
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
|
||||
# screen before suspend. Use loginctl lock-session to lock your screen.
|
||||
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
|
||||
|
||||
# NetworkManager is the most popular way to manage wireless networks on Linux,
|
||||
# and nm-applet is a desktop environment-independent system tray GUI for it.
|
||||
# exec --no-startup-id nm-applet
|
||||
|
||||
# Use pactl to adjust volume in PulseAudio.
|
||||
set $refresh_i3status killall -SIGUSR1 i3status
|
||||
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
|
||||
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
|
||||
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
|
||||
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
|
||||
bindsym XF86AudioPlay exec --no-startup-id playerctl play-pause && $refresh_i3status
|
||||
|
||||
|
||||
# swap caps lock and escape
|
||||
exec_always --no-startup-id xmodmap -e "clear lock"
|
||||
exec_always --no-startup-id xmodmap -e "keycode 9 = Caps_Lock NoSymbol Caps_Lock"
|
||||
exec_always --no-startup-id xmodmap -e "keycode 66 = Escape NoSymbol Escape"
|
||||
|
||||
|
||||
workspace 1 output HDMI-A-1
|
||||
workspace 2 output HDMI-A-1
|
||||
workspace 3 output HDMI-A-1
|
||||
workspace 4 output HDMI-A-1
|
||||
workspace 5 output HDMI-A-1
|
||||
workspace 6 output HDMI-A-1
|
||||
workspace 7 output HDMI-A-1
|
||||
workspace 8 output HDMI-A-1
|
||||
workspace 9 output HDMI-A-1
|
||||
workspace 10 output HDMI-A-1
|
||||
|
||||
workspace 11 output DP-1
|
||||
workspace 12 output DP-1
|
||||
workspace 13 output DP-1
|
||||
workspace 14 output DP-1
|
||||
workspace 15 output DP-1
|
||||
workspace 16 output DP-1
|
||||
workspace 17 output DP-1
|
||||
workspace 18 output DP-1
|
||||
workspace 19 output DP-1
|
||||
workspace 20 output DP-1
|
||||
|
||||
# use these keys for focus, movement, and resize directions when reaching for
|
||||
# the arrows is not convenient
|
||||
set $up k
|
||||
set $down j
|
||||
set $left h
|
||||
set $right l
|
||||
|
||||
set $mod Mod4
|
||||
|
||||
# use Mouse+$mod to drag floating windows to their wanted position
|
||||
floating_modifier $mod
|
||||
|
||||
# move tiling windows via drag & drop by left-clicking into the title bar,
|
||||
# or left-clicking anywhere into the window while holding the floating modifier.
|
||||
tiling_drag modifier titlebar
|
||||
|
||||
# start a terminal
|
||||
bindsym $mod+Return exec wezterm
|
||||
bindsym $mod+Shift+Return exec urxvt
|
||||
|
||||
# kill focused window
|
||||
bindsym $mod+q kill
|
||||
|
||||
# start dmenu (a program launcher)
|
||||
bindsym $mod+d exec --no-startup-id "rofi -x11 -show drun"
|
||||
bindsym $mod+SHIFT+D exec $HOME/.local/bin/system/rofi-search-web.sh
|
||||
bindsym $mod+Control+period exec $HOME/.local/bin/system/kaomoji-picker.sh
|
||||
|
||||
# kill gamethread
|
||||
bindsym $mod+Shift+i exec "pkill GameThread && sleep 1 && steam run steam://rungameid/2073850"
|
||||
|
||||
#toggle border
|
||||
bindsym $mod+Shift+b border toggle
|
||||
|
||||
# A more modern dmenu replacement is rofi:
|
||||
# bindsym $mod+d exec "rofi -modi drun,run -show drun"
|
||||
# There also is i3-dmenu-desktop which only displays applications shipping a
|
||||
# .desktop file. It is a wrapper around dmenu, so you need that installed.
|
||||
# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
|
||||
|
||||
# change focus
|
||||
bindsym $mod+$left focus left
|
||||
bindsym $mod+$down focus down
|
||||
bindsym $mod+$up focus up
|
||||
bindsym $mod+$right focus right
|
||||
|
||||
# alternatively, you can use the cursor keys:
|
||||
bindsym $mod+Left focus left
|
||||
bindsym $mod+Down focus down
|
||||
bindsym $mod+Up focus up
|
||||
bindsym $mod+Right focus right
|
||||
|
||||
# move focused window
|
||||
bindsym $mod+Shift+$left move left
|
||||
bindsym $mod+Shift+$down move down
|
||||
bindsym $mod+Shift+$up move up
|
||||
bindsym $mod+Shift+$right move right
|
||||
|
||||
# alternatively, you can use the cursor keys:
|
||||
bindsym $mod+Shift+Left move left
|
||||
bindsym $mod+Shift+Down move down
|
||||
bindsym $mod+Shift+Up move up
|
||||
bindsym $mod+Shift+Right move right
|
||||
|
||||
# split in horizontal orientation
|
||||
bindsym $mod+Control+l split h
|
||||
|
||||
# split in vertical orientation
|
||||
bindsym $mod+Control+j split v
|
||||
|
||||
# enter fullscreen mode for the focused container
|
||||
bindsym $mod+f fullscreen toggle
|
||||
|
||||
# change container layout (stacked, tabbed, toggle split)
|
||||
bindsym $mod+s layout stacking
|
||||
bindsym $mod+w layout tabbed
|
||||
bindsym $mod+e layout toggle split
|
||||
|
||||
# toggle tiling / floating
|
||||
bindsym $mod+space floating toggle
|
||||
|
||||
# change focus between tiling / floating windows
|
||||
bindsym $mod+Shift+space focus mode_toggle
|
||||
|
||||
# focus the parent container
|
||||
bindsym $mod+a focus parent
|
||||
|
||||
# focus the child container
|
||||
#bindsym $mod+d focus child
|
||||
|
||||
# move the currently focused window to the scratchpad
|
||||
bindsym $mod+Shift+minus move scratchpad
|
||||
|
||||
# Show the next scratchpad window or hide the focused scratchpad window.
|
||||
# If there are multiple scratchpad windows, this command cycles through them.
|
||||
bindsym $mod+minus scratchpad show
|
||||
|
||||
# Define names for default workspaces for which we configure key bindings later on.
|
||||
# We use variables to avoid repeating the names in multiple places.
|
||||
set $ws1 "1: "
|
||||
set $ws2 "2: "
|
||||
set $ws3 "3: "
|
||||
set $ws4 "4: "
|
||||
set $ws5 "5: "
|
||||
set $ws6 "6: "
|
||||
set $ws7 "7: "
|
||||
set $ws8 "8: "
|
||||
set $ws9 "9: "
|
||||
set $ws10 "10: "
|
||||
|
||||
set $ws11 "11: "
|
||||
set $ws12 "12: "
|
||||
set $ws13 "13: "
|
||||
set $ws14 "14: "
|
||||
set $ws15 "15: "
|
||||
set $ws16 "16: "
|
||||
set $ws17 "17: "
|
||||
set $ws18 "18: "
|
||||
set $ws19 "19: "
|
||||
set $ws20 "20: "
|
||||
|
||||
bindsym $mod+n workspace next
|
||||
bindsym $mod+b workspace prev
|
||||
# switch to workspace
|
||||
bindsym $mod+1 workspace number $ws1
|
||||
bindsym $mod+2 workspace number $ws2
|
||||
bindsym $mod+3 workspace number $ws3
|
||||
bindsym $mod+4 workspace number $ws4
|
||||
bindsym $mod+5 workspace number $ws5
|
||||
bindsym $mod+6 workspace number $ws6
|
||||
bindsym $mod+7 workspace number $ws7
|
||||
bindsym $mod+8 workspace number $ws8
|
||||
bindsym $mod+9 workspace number $ws9
|
||||
bindsym $mod+0 workspace number $ws10
|
||||
|
||||
# move focused container to workspace
|
||||
bindsym $mod+Shift+1 move container to workspace number $ws1
|
||||
bindsym $mod+Shift+2 move container to workspace number $ws2
|
||||
bindsym $mod+Shift+3 move container to workspace number $ws3
|
||||
bindsym $mod+Shift+4 move container to workspace number $ws4
|
||||
bindsym $mod+Shift+5 move container to workspace number $ws5
|
||||
bindsym $mod+Shift+6 move container to workspace number $ws6
|
||||
bindsym $mod+Shift+7 move container to workspace number $ws7
|
||||
bindsym $mod+Shift+8 move container to workspace number $ws8
|
||||
bindsym $mod+Shift+9 move container to workspace number $ws9
|
||||
bindsym $mod+Shift+0 move container to workspace number $ws10
|
||||
|
||||
mode "mon2" {
|
||||
bindsym $mod+1 workspace number $ws11
|
||||
bindsym $mod+2 workspace number $ws12
|
||||
bindsym $mod+3 workspace number $ws13
|
||||
bindsym $mod+4 workspace number $ws14
|
||||
bindsym $mod+5 workspace number $ws15
|
||||
bindsym $mod+6 workspace number $ws16
|
||||
bindsym $mod+7 workspace number $ws17
|
||||
bindsym $mod+8 workspace number $ws18
|
||||
bindsym $mod+9 workspace number $ws19
|
||||
bindsym $mod+0 workspace number $ws20
|
||||
bindsym $mod+Shift+1 move container to workspace number $ws11
|
||||
bindsym $mod+Shift+2 move container to workspace number $ws12
|
||||
bindsym $mod+Shift+3 move container to workspace number $ws13
|
||||
bindsym $mod+Shift+4 move container to workspace number $ws14
|
||||
bindsym $mod+Shift+5 move container to workspace number $ws15
|
||||
bindsym $mod+Shift+6 move container to workspace number $ws16
|
||||
bindsym $mod+Shift+7 move container to workspace number $ws17
|
||||
bindsym $mod+Shift+8 move container to workspace number $ws18
|
||||
bindsym $mod+Shift+9 move container to workspace number $ws19
|
||||
bindsym $mod+Shift+0 move container to workspace number $ws20
|
||||
|
||||
bindsym $mod+o mode "default"
|
||||
}
|
||||
bindsym $mod+o mode "mon2"
|
||||
|
||||
# reload the configuration file
|
||||
bindsym $mod+Shift+c reload
|
||||
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||
bindsym $mod+Shift+r restart
|
||||
# exit i3 (logs you out of your X session)
|
||||
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
|
||||
|
||||
# resize window (you can also use the mouse for that)
|
||||
mode "resize" {
|
||||
# These bindings trigger as soon as you enter the resize mode
|
||||
|
||||
# Pressing left will shrink the window’s width.
|
||||
# Pressing right will grow the window’s width.
|
||||
# Pressing up will shrink the window’s height.
|
||||
# Pressing down will grow the window’s height.
|
||||
bindsym $left resize shrink width 10 px or 10 ppt
|
||||
bindsym $down resize grow height 10 px or 10 ppt
|
||||
bindsym $up resize shrink height 10 px or 10 ppt
|
||||
bindsym $right resize grow width 10 px or 10 ppt
|
||||
|
||||
# same bindings, but for the arrow keys
|
||||
bindsym Left resize shrink width 10 px or 10 ppt
|
||||
bindsym Down resize grow height 10 px or 10 ppt
|
||||
bindsym Up resize shrink height 10 px or 10 ppt
|
||||
bindsym Right resize grow width 10 px or 10 ppt
|
||||
|
||||
# back to normal: Enter or Escape or $mod+r
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym $mod+r mode "default"
|
||||
}
|
||||
|
||||
bindsym $mod+r mode "resize"
|
||||
|
||||
client.focused #8568e6 #222222 #8568e6 #e598ff #8568e6
|
||||
client.unfocused #222222 #222222 #8568e6 #e598ff #222222
|
||||
default_border pixel 1
|
||||
default_floating_border pixel 1
|
||||
|
||||
set $trans #00000000
|
||||
set $inactive-bg-color #1e1e2e
|
||||
set $text-color #cdd6f4
|
||||
set $urbg-color #f38ba8
|
||||
set $color #8568ef
|
||||
set $ws_color #d37340
|
||||
set $ws_bord #8568ef
|
||||
|
||||
# Start i3bar to display a workspace bar (plus the system information i3status
|
||||
# finds out, if available)
|
||||
bar {
|
||||
separator_symbol ""
|
||||
output primary
|
||||
strip_workspace_numbers yes
|
||||
status_command SCRIPT_DIR=~/.config/i3blocks i3blocks
|
||||
|
||||
colors {
|
||||
statusline #FFFFFF
|
||||
background $trans
|
||||
separator #757575
|
||||
# border background text
|
||||
focused_workspace $ws_bord $color $text-color
|
||||
inactive_workspace $trans $trans #676E7D
|
||||
active_workspace $trans $trans $text-color
|
||||
urgent_workspace $urbg-color $urbg-color $text-color
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
bar {
|
||||
separator_symbol ""
|
||||
output nonprimary
|
||||
strip_workspace_numbers yes
|
||||
}
|
||||
163
env/.config/i3blocks/config
vendored
Normal file
163
env/.config/i3blocks/config
vendored
Normal file
@@ -0,0 +1,163 @@
|
||||
# i3blocks config file
|
||||
#
|
||||
# Please see man i3blocks for a complete reference!
|
||||
# The man page is also hosted at http://vivien.github.io/i3blocks
|
||||
#
|
||||
# List of valid properties:
|
||||
#
|
||||
# align
|
||||
# color
|
||||
# command
|
||||
# full_text
|
||||
# instance
|
||||
# interval
|
||||
# label
|
||||
# min_width
|
||||
# name
|
||||
# separator
|
||||
# separator_block_width
|
||||
# short_text
|
||||
# signal
|
||||
# urgent
|
||||
|
||||
# Global properties
|
||||
#
|
||||
# The top properties below are applied to every block, but can be overridden.
|
||||
# Each block command defaults to the script name to avoid boilerplate.
|
||||
# Change $SCRIPT_DIR to the location of your scripts!
|
||||
command=$SCRIPT_DIR/$BLOCK_NAME/$BLOCK_NAME
|
||||
separator_block_width=15
|
||||
markup=pango
|
||||
|
||||
# Volume indicator
|
||||
#
|
||||
# The first parameter sets the step (and units to display)
|
||||
# The second parameter overrides the mixer selection
|
||||
# See the script for details.
|
||||
|
||||
[volume2]
|
||||
label=
|
||||
interval=1
|
||||
signal=10
|
||||
#STEP=5%
|
||||
|
||||
# Memory usage
|
||||
#
|
||||
# The type defaults to "mem" if the instance is not specified.
|
||||
[memory]
|
||||
label=
|
||||
separator=false
|
||||
interval=30
|
||||
|
||||
[memory]
|
||||
label=SWAP
|
||||
instance=swap
|
||||
separator=false
|
||||
interval=30
|
||||
|
||||
# Disk usage
|
||||
#
|
||||
# The directory defaults to $HOME if the instance is not specified.
|
||||
# The script may be called with a optional argument to set the alert
|
||||
# (defaults to 10 for 10%).
|
||||
[disk]
|
||||
label=
|
||||
#DIR=/mnt/data
|
||||
interval=30
|
||||
|
||||
# Network interface monitoring
|
||||
#
|
||||
# If the instance is not specified, use the interface used for default route.
|
||||
# The address can be forced to IPv4 or IPv6 with -4 or -6 switches.
|
||||
# [iface]
|
||||
# #IFACE=wlan0
|
||||
# color=#00FF00
|
||||
# interval=10
|
||||
# separator=false
|
||||
|
||||
[wifi]
|
||||
#INTERFACE=wlp3s0
|
||||
label=wifi:
|
||||
interval=10
|
||||
separator=false
|
||||
|
||||
[bandwidth]
|
||||
#INTERFACE=eth0
|
||||
interval=5
|
||||
|
||||
# CPU usage
|
||||
#
|
||||
# The script may be called with -w and -c switches to specify thresholds,
|
||||
# see the script for details.
|
||||
[cpu_usage]
|
||||
label=
|
||||
interval=10
|
||||
min_width= 100.00%
|
||||
#separator=false
|
||||
|
||||
[load_average]
|
||||
label=LOAD
|
||||
interval=10
|
||||
|
||||
# Battery indicator
|
||||
#
|
||||
# The battery instance defaults to 0.
|
||||
[battery]
|
||||
label=BAT
|
||||
#label=⚡
|
||||
interval=30
|
||||
|
||||
[rss]
|
||||
label=
|
||||
command=/usr/bin/newsboat -x print-unread|sed 's/\s.*//; s/Error:/E/'
|
||||
interval=20
|
||||
|
||||
# Date Time
|
||||
#
|
||||
[time]
|
||||
command=date '+%a %m/%d/%Y %I:%M%p'
|
||||
interval=5
|
||||
|
||||
# Generic media player support
|
||||
#
|
||||
# This displays "ARTIST - SONG" if a music is playing.
|
||||
# Supported players are: spotify, vlc, audacious, xmms2, mplayer, and others.
|
||||
# Set to %any to automatically pick (Requires playerctl >=2.1.1)
|
||||
#[mediaplayer]
|
||||
# This picks any player, with vlc as first, and spotify as last choice
|
||||
#instance=vlc,%any,spotify
|
||||
#interval=5
|
||||
#signal=10
|
||||
|
||||
# OpenVPN support
|
||||
#
|
||||
# Support multiple VPN, with colors.
|
||||
#[openvpn]
|
||||
#interval=20
|
||||
|
||||
# Temperature
|
||||
#
|
||||
# Support multiple chips, though lm-sensors.
|
||||
# The script may be called with -w and -c switches to specify thresholds,
|
||||
# see the script for details.
|
||||
#[temperature]
|
||||
#label=TEMP
|
||||
#interval=10
|
||||
|
||||
# Key indicators
|
||||
#
|
||||
# Add the following bindings to i3 config file:
|
||||
#
|
||||
# bindsym --release Caps_Lock exec pkill -SIGRTMIN+11 i3blocks
|
||||
# bindsym --release Num_Lock exec pkill -SIGRTMIN+11 i3blocks
|
||||
#[keyindicator]
|
||||
#KEY=CAPS
|
||||
#markup=pango
|
||||
#interval=once
|
||||
#signal=11
|
||||
|
||||
#[keyindicator]
|
||||
#KEY=NUM
|
||||
#markup=pango
|
||||
#interval=once
|
||||
#signal=11
|
||||
1
env/.config/i3blocks/volume2/volume2
vendored
Executable file
1
env/.config/i3blocks/volume2/volume2
vendored
Executable file
@@ -0,0 +1 @@
|
||||
pactl -f json get-sink-volume @DEFAULT_SINK@ | sed -e 's/.*value_percent":"//' -e 's/".*//'
|
||||
53
env/.config/i3status/config
vendored
Normal file
53
env/.config/i3status/config
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
# i3status configuration file.
|
||||
# see "man i3status" for documentation.
|
||||
|
||||
# It is important that this file is edited as UTF-8.
|
||||
# The following line should contain a sharp s:
|
||||
# ß
|
||||
# If the above line is not correctly displayed, fix your editor first!
|
||||
|
||||
general {
|
||||
colors = true
|
||||
interval = 5
|
||||
}
|
||||
|
||||
order += "ipv6"
|
||||
order += "wireless _first_"
|
||||
order += "ethernet _first_"
|
||||
order += "battery all"
|
||||
order += "disk /"
|
||||
order += "load"
|
||||
order += "memory"
|
||||
order += "tztime local"
|
||||
|
||||
wireless _first_ {
|
||||
format_up = "W: (%quality at %essid) %ip"
|
||||
format_down = "W: down"
|
||||
}
|
||||
|
||||
ethernet _first_ {
|
||||
format_up = "E: %ip (%speed)"
|
||||
format_down = "E: down"
|
||||
}
|
||||
|
||||
battery all {
|
||||
format = "%status %percentage %remaining"
|
||||
}
|
||||
|
||||
disk "/" {
|
||||
format = "%avail"
|
||||
}
|
||||
|
||||
load {
|
||||
format = "%1min"
|
||||
}
|
||||
|
||||
memory {
|
||||
format = "%used | %available"
|
||||
threshold_degraded = "1G"
|
||||
format_degraded = "MEMORY < %available"
|
||||
}
|
||||
|
||||
tztime local {
|
||||
format = "%a %m/%d/%Y %I:%M%p"
|
||||
}
|
||||
59
env/.config/lf/lfrc
vendored
59
env/.config/lf/lfrc
vendored
@@ -10,6 +10,9 @@ set shell sh
|
||||
# times.
|
||||
set shellopts '-eu'
|
||||
|
||||
# set number true
|
||||
set relativenumber true
|
||||
|
||||
# set internal field separator (IFS) to "\n" for shell commands
|
||||
# This is useful to automatically split file names in $fs and $fx properly
|
||||
# since default file separator used in these variables (i.e. 'filesep' option)
|
||||
@@ -108,21 +111,21 @@ cmd zip ${{
|
||||
}}
|
||||
|
||||
cmd trash ${{
|
||||
files=$(printf "$fx" | tr '\n' ';')
|
||||
while [ "$files" ]; do
|
||||
file=${files%%;*}
|
||||
files=$(printf "$fx" | tr '\n' ';')
|
||||
while [ "$files" ]; do
|
||||
file=${files%%;*}
|
||||
|
||||
mv "$(basename "$file")" ~/.trash
|
||||
if [ "$files" = "$file" ]; then
|
||||
files=''
|
||||
else
|
||||
files="${files#*;}"
|
||||
fi
|
||||
done
|
||||
mv "$(basename "$file")" ~/.trash
|
||||
if [ "$files" = "$file" ]; then
|
||||
files=''
|
||||
else
|
||||
files="${files#*;}"
|
||||
fi
|
||||
done
|
||||
}}
|
||||
|
||||
cmd vim ${{
|
||||
nvim $f
|
||||
nvim $f
|
||||
}}
|
||||
|
||||
cmd Sxiv ${{
|
||||
@@ -133,23 +136,23 @@ cmd clipf ${{
|
||||
# printf "$f" | xclip -selection clipboard
|
||||
# xclip -selection clipboard -t "$(file -b --mime-type $f)" -i $f
|
||||
# echo -n '$f' | xclip -sel clip -t text/uri-list -i
|
||||
case "$(file -b --mime-type $f)" in
|
||||
image/png|image/jpeg|image/gif)
|
||||
xclip -selection clipboard -t image/png -i $f
|
||||
;;
|
||||
video/mp4)
|
||||
# !! doesnt work. no clue how todo uri-list. ICCCM section 2.6.2 is confusing
|
||||
# echo -n '$f' | xclip -selection clipboard -t x-special/gnome-copied-files -i
|
||||
xclip -selection clipboard -t text/uri-list -i $f
|
||||
;;
|
||||
*)
|
||||
xclip -selection clipboard -t "$(file -b --mime-type $f)" -i $f
|
||||
;;
|
||||
esac
|
||||
case "$(file -b --mime-type $f)" in
|
||||
image/png|image/jpeg|image/gif)
|
||||
xclip -selection clipboard -t image/png -i $f
|
||||
;;
|
||||
video/mp4)
|
||||
# !! doesnt work. no clue how todo uri-list. ICCCM section 2.6.2 is confusing
|
||||
# echo -n '$f' | xclip -selection clipboard -t x-special/gnome-copied-files -i
|
||||
xclip -selection clipboard -t text/uri-list -i $f
|
||||
;;
|
||||
*)
|
||||
xclip -selection clipboard -t "$(file -b --mime-type $f)" -i $f
|
||||
;;
|
||||
esac
|
||||
}}
|
||||
|
||||
cmd clip-path ${{
|
||||
if [ -z $WAYLAND_DISPLAY ]; then
|
||||
if [ -z "${WAYLAND_DISPLAY-}" ]; then
|
||||
printf "$f" | xclip -selection clipboard
|
||||
else
|
||||
printf "$f" | wl-copy
|
||||
@@ -157,7 +160,11 @@ cmd clip-path ${{
|
||||
}}
|
||||
|
||||
cmd filebrowser ${{
|
||||
nohup pcmanfm $f > /dev/null 2> /dev/null < /dev/null & disown
|
||||
if [ "$(file -b --mime-type "$f")" == "inode/directory" ]; then
|
||||
nohup pcmanfm -- "$f" > /dev/null 2> /dev/null < /dev/null & disown
|
||||
else
|
||||
nohup pcmanfm -- "$(dirname -- $f)" > /dev/null 2> /dev/null < /dev/null & disown
|
||||
fi
|
||||
}}
|
||||
|
||||
map DD trash
|
||||
|
||||
11
env/.config/mpd/mpd.conf
vendored
Normal file
11
env/.config/mpd/mpd.conf
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
music_directory "~/stuff/media/music"
|
||||
playlist_directory "$XDG_CONFIG_HOME/mpd/playlists"
|
||||
db_file "$XDG_CACHE_HOME/mpd/database"
|
||||
|
||||
bind_to_address "127.0.0.1"
|
||||
port "6600"
|
||||
|
||||
audio_output {
|
||||
type "pipewire"
|
||||
name "PipeWire Sound"
|
||||
}
|
||||
6
env/.config/mpv/mpv.conf
vendored
Normal file
6
env/.config/mpv/mpv.conf
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
sub-color='#FFFF00' #subtitle color in rgb
|
||||
sub-shadow-color='#000000' #shadow color
|
||||
sub-font='Noto Sans' #set font
|
||||
sub-bold=yes
|
||||
sub-font-size=60
|
||||
sub-pos=95 #subtitle position 5 percent above the bottom of the screen
|
||||
5
env/.config/nvim/.luarc.json
vendored
5
env/.config/nvim/.luarc.json
vendored
@@ -10,5 +10,8 @@
|
||||
"workspace.library": [
|
||||
"$VIMRUNTIME",
|
||||
"./lua"
|
||||
]
|
||||
],
|
||||
"diagnostics.disable": [
|
||||
"deprecated"
|
||||
]
|
||||
}
|
||||
|
||||
77
env/.config/nvim/after/plugin/3rd.lua
vendored
77
env/.config/nvim/after/plugin/3rd.lua
vendored
@@ -1,41 +1,44 @@
|
||||
require("image").setup({
|
||||
backend = "kitty",
|
||||
processor = "magick_cli", -- or "magick_rock"
|
||||
integrations = {
|
||||
markdown = {
|
||||
enabled = true,
|
||||
clear_in_insert_mode = false,
|
||||
download_remote_images = false,
|
||||
only_render_image_at_cursor = true,
|
||||
only_render_image_at_cursor_mode = "popup",
|
||||
floating_windows = false, -- if true, images will be rendered in floating markdown windows
|
||||
filetypes = { "markdown", "vimwiki" }, -- markdown extensions (ie. quarto) can go here
|
||||
local ok, image = pcall(require, 'image')
|
||||
if ok then
|
||||
image.setup({
|
||||
backend = "kitty",
|
||||
processor = "magick_cli", -- or "magick_rock"
|
||||
integrations = {
|
||||
markdown = {
|
||||
enabled = true,
|
||||
clear_in_insert_mode = false,
|
||||
download_remote_images = false,
|
||||
only_render_image_at_cursor = true,
|
||||
only_render_image_at_cursor_mode = "popup",
|
||||
floating_windows = false, -- if true, images will be rendered in floating markdown windows
|
||||
filetypes = { "markdown", "vimwiki" }, -- markdown extensions (ie. quarto) can go here
|
||||
},
|
||||
neorg = {
|
||||
enabled = true,
|
||||
filetypes = { "norg" },
|
||||
},
|
||||
typst = {
|
||||
enabled = true,
|
||||
filetypes = { "typst" },
|
||||
},
|
||||
html = {
|
||||
enabled = false,
|
||||
},
|
||||
css = {
|
||||
enabled = false,
|
||||
},
|
||||
},
|
||||
neorg = {
|
||||
enabled = true,
|
||||
filetypes = { "norg" },
|
||||
},
|
||||
typst = {
|
||||
enabled = true,
|
||||
filetypes = { "typst" },
|
||||
},
|
||||
html = {
|
||||
enabled = false,
|
||||
},
|
||||
css = {
|
||||
enabled = false,
|
||||
},
|
||||
},
|
||||
max_width = nil,
|
||||
max_height = nil,
|
||||
max_width_window_percentage = nil,
|
||||
max_height_window_percentage = 50,
|
||||
window_overlap_clear_enabled = false, -- toggles images when windows are overlapped
|
||||
window_overlap_clear_ft_ignore = { "cmp_menu", "cmp_docs", "snacks_notif", "scrollview", "scrollview_sign" },
|
||||
editor_only_render_when_focused = false, -- auto show/hide images when the editor gains/looses focus
|
||||
tmux_show_only_in_active_window = false, -- auto show/hide images in the correct Tmux window (needs visual-activity off)
|
||||
hijack_file_patterns = { "*.png", "*.jpg", "*.jpeg", "*.gif", "*.webp", "*.avif" }, -- render image files as images when opened
|
||||
})
|
||||
max_width = nil,
|
||||
max_height = nil,
|
||||
max_width_window_percentage = nil,
|
||||
max_height_window_percentage = 50,
|
||||
window_overlap_clear_enabled = false, -- toggles images when windows are overlapped
|
||||
window_overlap_clear_ft_ignore = { "cmp_menu", "cmp_docs", "snacks_notif", "scrollview", "scrollview_sign" },
|
||||
editor_only_render_when_focused = false, -- auto show/hide images when the editor gains/looses focus
|
||||
tmux_show_only_in_active_window = false, -- auto show/hide images in the correct Tmux window (needs visual-activity off)
|
||||
hijack_file_patterns = { "*.png", "*.jpg", "*.jpeg", "*.gif", "*.webp", "*.avif" }, -- render image files as images when opened
|
||||
})
|
||||
end
|
||||
|
||||
-- require("image").enable() -- enable the plugin
|
||||
-- print(require("image").is_enabled()) -- bool
|
||||
|
||||
30
env/.config/nvim/after/plugin/asciidoc-preview.lua
vendored
Normal file
30
env/.config/nvim/after/plugin/asciidoc-preview.lua
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
local ok, asciidoc = pcall(require, 'asciidoc-preview')
|
||||
if ok then
|
||||
asciidoc.setup({
|
||||
server = {
|
||||
-- Specifies how the AsciiDoc file is converted to HTML for the preview.
|
||||
-- `js` - asciidoctor.js (no local installation needed)
|
||||
-- `cmd` - asciidoctor command (local installation needed)
|
||||
converter = 'cmd',
|
||||
|
||||
-- Specifies the hostname or IP address of the preview website for the client.
|
||||
-- This is only needed if you run neovim in a remote session and
|
||||
-- want to access the preview website from another machine.
|
||||
hostname = 'localhost',
|
||||
|
||||
-- Specifies the port of the preview website on the client and server side.
|
||||
-- Must be between 10000 and 65535.
|
||||
port = 11235,
|
||||
},
|
||||
preview = {
|
||||
-- Specifies the scroll position of the preview website.
|
||||
-- `current` - Keep current scroll position
|
||||
-- `start` - Start of the website
|
||||
-- `sync` - (experimental) Same (similar) position as in Neovim
|
||||
-- => inaccurate, because very content dependent
|
||||
position = 'current',
|
||||
},
|
||||
})
|
||||
vim.keymap.set('n', '<leader>max', ':AsciiDocPreview<cr>')
|
||||
vim.keymap.set('n', '<leader>mas', ':AsciiDocPreviewStop<cr>')
|
||||
end
|
||||
65
env/.config/nvim/after/plugin/cloak.lua
vendored
65
env/.config/nvim/after/plugin/cloak.lua
vendored
@@ -1,31 +1,34 @@
|
||||
require('yourmom/cloak').setup({
|
||||
enabled = true,
|
||||
cloak_character = '*',
|
||||
-- The applied highlight group (colors) on the cloaking, see `:h highlight`.
|
||||
highlight_group = 'Comment',
|
||||
-- Applies the length of the replacement characters for all matched
|
||||
-- patterns, defaults to the length of the matched pattern.
|
||||
cloak_length = nil, -- Provide a number if you want to hide the true length of the value.
|
||||
-- Whether it should try every pattern to find the best fit or stop after the first.
|
||||
try_all_patterns = true,
|
||||
-- Set to true to cloak Telescope preview buffers. (Required feature not in 0.1.x)
|
||||
cloak_telescope = true,
|
||||
-- Re-enable cloak when a matched buffer leaves the window.
|
||||
cloak_on_leave = false,
|
||||
patterns = {
|
||||
{
|
||||
-- Match any file starting with '.env'.
|
||||
-- This can be a table to match multiple file patterns.
|
||||
file_pattern = '.env*',
|
||||
-- Match an equals sign and any character after it.
|
||||
-- This can also be a table of patterns to cloak,
|
||||
-- example: cloak_pattern = { ':.+', '-.+' } for yaml files.
|
||||
cloak_pattern = '=.+',
|
||||
-- A function, table or string to generate the replacement.
|
||||
-- The actual replacement will contain the 'cloak_character'
|
||||
-- where it doesn't cover the original text.
|
||||
-- If left empty the legacy behavior of keeping the first character is retained.
|
||||
replace = nil,
|
||||
}
|
||||
},
|
||||
})
|
||||
local ok, cloak = pcall(require, 'yourmom/cloak')
|
||||
if ok then
|
||||
cloak.setup({
|
||||
enabled = true,
|
||||
cloak_character = '*',
|
||||
-- The applied highlight group (colors) on the cloaking, see `:h highlight`.
|
||||
highlight_group = 'Comment',
|
||||
-- Applies the length of the replacement characters for all matched
|
||||
-- patterns, defaults to the length of the matched pattern.
|
||||
cloak_length = nil, -- Provide a number if you want to hide the true length of the value.
|
||||
-- Whether it should try every pattern to find the best fit or stop after the first.
|
||||
try_all_patterns = true,
|
||||
-- Set to true to cloak Telescope preview buffers. (Required feature not in 0.1.x)
|
||||
cloak_telescope = true,
|
||||
-- Re-enable cloak when a matched buffer leaves the window.
|
||||
cloak_on_leave = false,
|
||||
patterns = {
|
||||
{
|
||||
-- Match any file starting with '.env'.
|
||||
-- This can be a table to match multiple file patterns.
|
||||
file_pattern = '.env*',
|
||||
-- Match an equals sign and any character after it.
|
||||
-- This can also be a table of patterns to cloak,
|
||||
-- example: cloak_pattern = { ':.+', '-.+' } for yaml files.
|
||||
cloak_pattern = '=.+',
|
||||
-- A function, table or string to generate the replacement.
|
||||
-- The actual replacement will contain the 'cloak_character'
|
||||
-- where it doesn't cover the original text.
|
||||
-- If left empty the legacy behavior of keeping the first character is retained.
|
||||
replace = nil,
|
||||
}
|
||||
},
|
||||
})
|
||||
end
|
||||
|
||||
5
env/.config/nvim/after/plugin/colorizer.lua
vendored
5
env/.config/nvim/after/plugin/colorizer.lua
vendored
@@ -1 +1,4 @@
|
||||
require("colorizer").setup()
|
||||
local ok, colorizer = pcall(require, 'colorizer')
|
||||
if ok then
|
||||
colorizer.setup()
|
||||
end
|
||||
|
||||
112
env/.config/nvim/after/plugin/dap.lua
vendored
Normal file
112
env/.config/nvim/after/plugin/dap.lua
vendored
Normal file
@@ -0,0 +1,112 @@
|
||||
local ok, dap = pcall(require, 'dap')
|
||||
if ok then
|
||||
-- vim.api.nvim_set_hl(namespace, 'DapBreakpoint', { fg='#993939', bg='#31353f' })
|
||||
-- vim.api.nvim_set_hl(namespace, 'DapLogPoint', { fg='#61afef', bg='#31353f' })
|
||||
-- vim.api.nvim_set_hl(namespace, 'DapStopped', { fg='#98c379', bg='#31353f' })
|
||||
|
||||
-- Reuse current SignColumn background (except for DapStoppedLine)
|
||||
local sign_column_hl = vim.api.nvim_get_hl(0, { name = 'SignColumn' })
|
||||
-- if bg or ctermbg aren't found, use bg = 'bg' (which means current Normal) and ctermbg = 'Black'
|
||||
-- convert to 6 digit hex value starting with #
|
||||
local sign_column_bg = (sign_column_hl.bg ~= nil) and ('#%06x'):format(sign_column_hl.bg) or 'bg'
|
||||
local sign_column_ctermbg = (sign_column_hl.ctermbg ~= nil) and sign_column_hl.ctermbg or 'Black'
|
||||
|
||||
--vim.api.nvim_set_hl(0, 'DapStopped', { fg = '#00ff00', bg = sign_column_bg, ctermbg = sign_column_ctermbg })
|
||||
vim.api.nvim_set_hl(0, 'DapStopped', { fg = '#00ff00', bg = '#1e1e2e', ctermbg = sign_column_ctermbg })
|
||||
vim.api.nvim_set_hl(0, 'DapStoppedLine', { bg = '#2e4d3d', ctermbg = 'Green' })
|
||||
--vim.api.nvim_set_hl(0, 'DapBreakpoint', { fg = '#c23127', bg = sign_column_bg, ctermbg = sign_column_ctermbg })
|
||||
vim.api.nvim_set_hl(0, 'DapBreakpoint', { fg = '#c23127', bg = '#1e1e2e', ctermbg = sign_column_ctermbg })
|
||||
--vim.api.nvim_set_hl(0, 'DapBreakpointRejected', { fg = '#888ca6', bg = sign_column_bg, ctermbg = sign_column_ctermbg })
|
||||
vim.api.nvim_set_hl(0, 'DapBreakpointRejected', { fg = '#888ca6', bg = '#1e1e2e', ctermbg = sign_column_ctermbg })
|
||||
--vim.api.nvim_set_hl(0, 'DapLogPoint', { fg = '#61afef', bg = sign_column_bg, ctermbg = sign_column_ctermbg })
|
||||
vim.api.nvim_set_hl(0, 'DapLogPoint', { fg = '#61afef', bg = '#1e1e2e', ctermbg = sign_column_ctermbg })
|
||||
|
||||
|
||||
vim.fn.sign_define('DapBreakpoint', { text='•', texthl='DapBreakpoint', linehl='DapBreakpoint', numhl='DapBreakpoint' })
|
||||
vim.fn.sign_define('DapBreakpointCondition', { text='ﳁ', texthl='DapBreakpoint', linehl='DapBreakpoint', numhl='DapBreakpoint' })
|
||||
vim.fn.sign_define('DapBreakpointRejected', { text='', texthl='DapBreakpoint', linehl='DapBreakpoint', numhl= 'DapBreakpoint' })
|
||||
vim.fn.sign_define('DapLogPoint', { text='', texthl='DapLogPoint', linehl='DapLogPoint', numhl= 'DapLogPoint' })
|
||||
vim.fn.sign_define('DapStopped', { text='', texthl='DapStopped', linehl='DapStopped', numhl= 'DapStopped' })
|
||||
|
||||
|
||||
dap.configurations.rust = {
|
||||
{
|
||||
name = "Launch",
|
||||
type = "codelldb",
|
||||
request = "launch",
|
||||
program = function()
|
||||
--return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/target/debug/", "file")
|
||||
vim.fn.jobstart('cargo build')
|
||||
if vim.fn.expand("%:t:r") == "main" then
|
||||
return vim.fn.getcwd() .. "/target/debug/" .. vim.fn.fnamemodify(vim.fn.getcwd(), ':t')
|
||||
else
|
||||
return vim.fn.getcwd() .. "/target/debug/" .. vim.fn.fnameescape(vim.fn.expand("%:t:r"))
|
||||
end
|
||||
end,
|
||||
cwd = "${workspaceFolder}",
|
||||
stopOnEntry = false,
|
||||
},
|
||||
}
|
||||
|
||||
dap.configurations.c = {
|
||||
{
|
||||
name = "Launch file",
|
||||
type = "codelldb",
|
||||
request = "launch",
|
||||
program = function()
|
||||
--return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file')
|
||||
return vim.fn.getcwd() .. "/" .. vim.fn.fnamemodify(vim.fn.getcwd(), ':t')
|
||||
end,
|
||||
cwd = '${workspaceFolder}',
|
||||
stopOnEntry = false,
|
||||
env = {
|
||||
ASAN_OPTIONS = "detect_leaks=0"
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
local ok, dapui = pcall(require, 'dapui')
|
||||
if ok then
|
||||
dapui.setup()
|
||||
|
||||
vim.keymap.set("n", "<Leader>dl", function() dap.step_into() end)
|
||||
vim.keymap.set("n", "<Leader>dj", function() dap.step_over() end)
|
||||
vim.keymap.set("n", "<Leader>dk", function() dap.step_out() end)
|
||||
--vim.keymap.set("n", "<Leader>dc", function() dap.run(dap.configurations.rust[1]) end)
|
||||
vim.keymap.set("n", "<Leader>dc", function()
|
||||
local ft = vim.bo.filetype
|
||||
local configs = dap.configurations[ft]
|
||||
|
||||
if type(configs) == "table" and configs[1] then
|
||||
dap.run(configs[1])
|
||||
else
|
||||
vim.notify("No DAP configuration found for filetype: " .. ft, vim.log.levels.ERROR)
|
||||
end
|
||||
end)
|
||||
vim.keymap.set("n", "<Leader>dC", function() dap.continue() end)
|
||||
vim.keymap.set("n", "<Leader>db", function() dap.toggle_breakpoint() end)
|
||||
vim.keymap.set("n", "<Leader>dB", function()
|
||||
dap.set_breakpoint(vim.fn.input('Breakpoint condition: '))
|
||||
end)
|
||||
vim.keymap.set("n", "<Leader>dd", function() dap.terminate() end)
|
||||
vim.keymap.set("n", "<Leader>dr", function() dap.run_last() end)
|
||||
--vim.keymap.set("n", "<Leader>dt", "<cmd>lua vim.cmd('RustLsp testables')<Cr>")
|
||||
vim.keymap.set("n", "<Leader>ds", function() dapui.toggle() end)
|
||||
|
||||
--[[
|
||||
dap.listeners.before.attach.dapui_config = function()
|
||||
dapui.open()
|
||||
end
|
||||
dap.listeners.before.launch.dapui_config = function()
|
||||
dapui.open()
|
||||
end
|
||||
dap.listeners.before.event_terminated.dapui_config = function()
|
||||
dapui.close()
|
||||
end
|
||||
dap.listeners.before.event_exited.dapui_config = function()
|
||||
dapui.close()
|
||||
end
|
||||
]]--
|
||||
end
|
||||
end
|
||||
5
env/.config/nvim/after/plugin/hardtime.lua
vendored
5
env/.config/nvim/after/plugin/hardtime.lua
vendored
@@ -1 +1,4 @@
|
||||
require("hardtime").setup()
|
||||
local ok, hardtime = pcall(require, 'hardtime')
|
||||
if ok then
|
||||
hardtime.setup()
|
||||
end
|
||||
|
||||
19
env/.config/nvim/after/plugin/harpoon.lua
vendored
19
env/.config/nvim/after/plugin/harpoon.lua
vendored
@@ -1,11 +1,14 @@
|
||||
local mark = require("harpoon.mark")
|
||||
local ui = require("harpoon.ui")
|
||||
local ok, _ = pcall(require, 'harpoon.mark')
|
||||
if ok then
|
||||
local mark = require("harpoon.mark")
|
||||
local ui = require("harpoon.ui")
|
||||
|
||||
vim.keymap.set("n","<leader>a", mark.add_file)
|
||||
vim.keymap.set("n","<C-e>", ui.toggle_quick_menu)
|
||||
vim.keymap.set("n","<leader>a", mark.add_file)
|
||||
vim.keymap.set("n","<C-e>", ui.toggle_quick_menu)
|
||||
|
||||
|
||||
vim.keymap.set("n","<C-y>", function() ui.nav_file(1) end)
|
||||
vim.keymap.set("n","<C-t>", function() ui.nav_file(2) end)
|
||||
vim.keymap.set("n","<C-n>", function() ui.nav_file(3) end)
|
||||
vim.keymap.set("n","<C-s>", function() ui.nav_file(4) end)
|
||||
vim.keymap.set("n","<C-t>", function() ui.nav_file(1) end)
|
||||
vim.keymap.set("n","<C-y>", function() ui.nav_file(2) end)
|
||||
vim.keymap.set("n","<C-n>", function() ui.nav_file(3) end)
|
||||
vim.keymap.set("n","<C-s>", function() ui.nav_file(4) end)
|
||||
end
|
||||
|
||||
@@ -1,30 +1,33 @@
|
||||
local highlight = {
|
||||
"RainbowRed",
|
||||
}
|
||||
local ok, _ = pcall(require, 'ibl')
|
||||
if ok then
|
||||
local highlight = {
|
||||
"RainbowRed",
|
||||
}
|
||||
|
||||
local hooks = require "ibl.hooks"
|
||||
-- create the highlight groups in the highlight setup hook, so they are reset
|
||||
-- every time the colorscheme changes
|
||||
hooks.register(hooks.type.HIGHLIGHT_SETUP, function()
|
||||
vim.api.nvim_set_hl(0, "RainbowRed", { fg = "#702ec0" })
|
||||
end)
|
||||
local hooks = require "ibl.hooks"
|
||||
-- create the highlight groups in the highlight setup hook, so they are reset
|
||||
-- every time the colorscheme changes
|
||||
hooks.register(hooks.type.HIGHLIGHT_SETUP, function()
|
||||
vim.api.nvim_set_hl(0, "RainbowRed", { fg = "#702ec0" })
|
||||
end)
|
||||
|
||||
require('ibl').setup {
|
||||
indent = {
|
||||
char = '|',
|
||||
highlight = highlight,
|
||||
},
|
||||
scope = {
|
||||
show_start = false,
|
||||
show_end = false,
|
||||
show_exact_scope = false,
|
||||
},
|
||||
exclude = {
|
||||
filetypes = {
|
||||
'help',
|
||||
'packer',
|
||||
'undotree',
|
||||
'diff',
|
||||
require('ibl').setup {
|
||||
indent = {
|
||||
char = '|',
|
||||
highlight = highlight,
|
||||
},
|
||||
},
|
||||
}
|
||||
scope = {
|
||||
show_start = false,
|
||||
show_end = false,
|
||||
show_exact_scope = false,
|
||||
},
|
||||
exclude = {
|
||||
filetypes = {
|
||||
'help',
|
||||
'packer',
|
||||
'undotree',
|
||||
'diff',
|
||||
},
|
||||
},
|
||||
}
|
||||
end
|
||||
|
||||
15
env/.config/nvim/after/plugin/lint.lua
vendored
Normal file
15
env/.config/nvim/after/plugin/lint.lua
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
local ok, lint = pcall(require, 'lint')
|
||||
if ok then
|
||||
lint.linters_by_ft = {
|
||||
markdown = { "markdownlint" },
|
||||
}
|
||||
|
||||
local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true })
|
||||
|
||||
vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, {
|
||||
group = lint_augroup,
|
||||
callback = function()
|
||||
lint.try_lint()
|
||||
end,
|
||||
})
|
||||
end
|
||||
266
env/.config/nvim/after/plugin/lsp.lua
vendored
Executable file → Normal file
266
env/.config/nvim/after/plugin/lsp.lua
vendored
Executable file → Normal file
@@ -1,75 +1,199 @@
|
||||
vim.api.nvim_create_autocmd("FileType", {
|
||||
pattern = "src",
|
||||
callback = function()
|
||||
print("LSP should now be active for src files")
|
||||
end,
|
||||
})
|
||||
local on_atk = function(ev)
|
||||
local opts = {buffer = ev.buf, remap = false}
|
||||
|
||||
local lsp = require("lsp-zero")
|
||||
|
||||
lsp.preset("recommended")
|
||||
|
||||
|
||||
local cmp = require('cmp')
|
||||
|
||||
local cmp_select = {behavior = cmp.SelectBehavior.Select}
|
||||
local cmp_mappings = cmp.mapping.preset.insert({
|
||||
['<C-p>'] = cmp.mapping.select_prev_item(cmp_select),
|
||||
['<C-n>'] = cmp.mapping.select_next_item(cmp_select),
|
||||
['<C-y>'] = cmp.mapping.confirm({ select = true }),
|
||||
["<C-Space>"] = cmp.mapping.complete(),
|
||||
})
|
||||
|
||||
cmp.setup({
|
||||
mapping = cmp_mappings,
|
||||
})
|
||||
|
||||
vim.diagnostic.config({
|
||||
virtual_text = true,
|
||||
})
|
||||
|
||||
lsp.on_attach(function(client, bufnr)
|
||||
local opts = {buffer = bufnr, remap = false}
|
||||
|
||||
vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, opts)
|
||||
vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, opts)
|
||||
vim.keymap.set("n", "<leader>vws", function() vim.lsp.buf.workspace_symbol() end, opts)
|
||||
vim.keymap.set("n", "<leader>vd", function() vim.diagnostic.open_float() end, opts)
|
||||
vim.keymap.set("n", "[d", function() vim.diagnostic.goto_next() end, opts)
|
||||
vim.keymap.set("n", "]d", function() vim.diagnostic.goto_prev() end, opts)
|
||||
vim.keymap.set("n", "<leader>vca", function() vim.lsp.buf.code_action() end, opts)
|
||||
vim.keymap.set("n", "<leader>vrr", function() vim.lsp.buf.references() end, opts)
|
||||
vim.keymap.set("n", "<leader>vrn", function() vim.lsp.buf.rename() end, opts)
|
||||
vim.keymap.set("i", "<C-h>", function() vim.lsp.buf.signature_help() end, opts)
|
||||
end)
|
||||
|
||||
|
||||
local lsp_configurations = require('lspconfig.configs')
|
||||
|
||||
if not lsp_configurations.greybel then
|
||||
lsp_configurations.greybel = {
|
||||
default_config = {
|
||||
cmd = { "/bin/greybel-languageserver", "--stdio" },
|
||||
filetypes = { "greyscript" },
|
||||
root_dir = require('lspconfig.util').root_pattern(".git", vim.fn.getcwd()),
|
||||
settings = {},
|
||||
}
|
||||
}
|
||||
vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, opts)
|
||||
vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, opts)
|
||||
vim.keymap.set("n", "<leader>vws", function() vim.lsp.buf.workspace_symbol() end, opts)
|
||||
vim.keymap.set("n", "<leader>vd", function() vim.diagnostic.open_float() end, opts)
|
||||
vim.keymap.set("n", "[d", function() vim.diagnostic.goto_next() end, opts)
|
||||
vim.keymap.set("n", "]d", function() vim.diagnostic.goto_prev() end, opts)
|
||||
vim.keymap.set("n", "<leader>vca", function() vim.lsp.buf.code_action() end, opts)
|
||||
vim.keymap.set("n", "<leader>vrr", function() vim.lsp.buf.references() end, opts)
|
||||
vim.keymap.set("n", "<leader>vrn", function() vim.lsp.buf.rename() end, opts)
|
||||
vim.keymap.set("i", "<C-h>", function() vim.lsp.buf.signature_help() end, opts)
|
||||
end
|
||||
|
||||
-- to learn how to use mason.nvim with lsp-zero
|
||||
-- read this: https://github.com/VonHeikemen/lsp-zero.nvim/blob/v3.x/doc/md/guides/integrate-with-mason-nvim.md
|
||||
require('mason').setup({
|
||||
registries = {
|
||||
"github:mason-org/mason-registry",
|
||||
},
|
||||
})
|
||||
require('mason-lspconfig').setup({
|
||||
ensure_installed = { },
|
||||
handlers = {
|
||||
lsp.default_setup,
|
||||
},
|
||||
})
|
||||
require('lspconfig').greybel.setup({})
|
||||
local ok, trouble = pcall(require, 'trouble')
|
||||
if ok then
|
||||
trouble.setup({ icons = {} })
|
||||
vim.keymap.set("n", "<leader>tt", "<cmd>Trouble diagnostics toggle<cr>")
|
||||
|
||||
lsp.setup()
|
||||
vim.keymap.set("n", "[t", function()
|
||||
trouble.next({skip_groups = true, jump = true})
|
||||
end)
|
||||
|
||||
vim.keymap.set("n", "]t", function()
|
||||
trouble.prev({skip_groups = true, jump = true})
|
||||
end)
|
||||
end
|
||||
|
||||
|
||||
local ok, cmp = pcall(require, 'cmp')
|
||||
if ok then
|
||||
local cmp_select = {behavior = cmp.SelectBehavior.Select}
|
||||
cmp.setup({
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
require('luasnip').lsp_expand(args.body)
|
||||
end,
|
||||
},
|
||||
window = {
|
||||
completion = cmp.config.window.bordered(),
|
||||
documentation = cmp.config.window.bordered(),
|
||||
},
|
||||
mapping = cmp.mapping.preset.insert({
|
||||
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
||||
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||
['<C-e>'] = cmp.mapping.abort(),
|
||||
['<C-p>'] = cmp.mapping.select_prev_item(cmp_select),
|
||||
['<C-n>'] = cmp.mapping.select_next_item(cmp_select),
|
||||
['<C-y>'] = cmp.mapping.confirm({ select = true }),
|
||||
["<C-Space>"] = cmp.mapping.complete(),
|
||||
-- ['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
|
||||
}),
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'nvim_lsp' },
|
||||
{ name = 'luasnip' },
|
||||
}, {
|
||||
{ name = 'buffer' },
|
||||
})
|
||||
})
|
||||
|
||||
-- To use git you need to install the plugin petertriho/cmp-git and uncomment lines below
|
||||
-- Set configuration for specific filetype.
|
||||
--[[ cmp.setup.filetype('gitcommit', {
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'git' },
|
||||
}, {
|
||||
{ name = 'buffer' },
|
||||
})
|
||||
})
|
||||
require("cmp_git").setup() ]]--
|
||||
|
||||
-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
|
||||
cmp.setup.cmdline({ '/', '?' }, {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = {
|
||||
{ name = 'buffer' }
|
||||
}
|
||||
})
|
||||
|
||||
-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
|
||||
cmp.setup.cmdline(':', {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'path' }
|
||||
}, {
|
||||
{ name = 'cmdline' }
|
||||
}),
|
||||
matching = { disallow_symbol_nonprefix_matching = false }
|
||||
})
|
||||
end
|
||||
|
||||
|
||||
|
||||
local ok, lsp = pcall(require, 'lspconfig')
|
||||
if ok then
|
||||
vim.api.nvim_create_autocmd("FileType", {
|
||||
pattern = "src",
|
||||
callback = function()
|
||||
print("LSP should now be active for src files")
|
||||
end,
|
||||
})
|
||||
|
||||
|
||||
vim.diagnostic.config({
|
||||
update_in_insert = true,
|
||||
float = {
|
||||
focusable = false,
|
||||
style = "minimal",
|
||||
border = "rounded",
|
||||
source = "always",
|
||||
header = "",
|
||||
prefix = "",
|
||||
}
|
||||
})
|
||||
|
||||
vim.diagnostic.config({ virtual_text = true })
|
||||
|
||||
local lsp_configurations = require('lspconfig.configs')
|
||||
|
||||
if not lsp_configurations.greybel then
|
||||
lsp_configurations.greybel = {
|
||||
default_config = {
|
||||
cmd = { "/bin/greybel-languageserver", "--stdio" },
|
||||
filetypes = { "greyscript" },
|
||||
root_dir = require('lspconfig.util').root_pattern(".git", vim.fn.getcwd()),
|
||||
settings = {},
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
|
||||
local capabilities = vim.tbl_deep_extend(
|
||||
"force",
|
||||
{},
|
||||
vim.lsp.protocol.make_client_capabilities(),
|
||||
require('cmp_nvim_lsp').default_capabilities()
|
||||
)
|
||||
|
||||
require('mason').setup({
|
||||
registries = {
|
||||
"github:mason-org/mason-registry",
|
||||
},
|
||||
})
|
||||
require('mason-nvim-dap').setup({
|
||||
ensure_installed = {
|
||||
"codelldb",
|
||||
},
|
||||
handlers = {
|
||||
function(config)
|
||||
require("mason-nvim-dap").default_setup(config)
|
||||
end,
|
||||
}
|
||||
})
|
||||
require('mason-lspconfig').setup({
|
||||
ensure_installed = {
|
||||
--"markdownlint",
|
||||
--"markdown-toc",
|
||||
"bashls",
|
||||
"clangd",
|
||||
"html",
|
||||
"cssls",
|
||||
"lua_ls",
|
||||
"rust_analyzer",
|
||||
"ts_ls",
|
||||
},
|
||||
handlers = {
|
||||
function(server_name)
|
||||
lsp[server_name].setup{capabilities = capabilities}
|
||||
end,
|
||||
["lua_ls"] = function ()
|
||||
lsp.lua_ls.setup {
|
||||
capabilities = capabilities,
|
||||
settings = {
|
||||
Lua ={
|
||||
diagnostics = {
|
||||
globasl = { "vim" }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
end
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
vim.filetype.add({
|
||||
extension = {
|
||||
src = "greyscript"
|
||||
}
|
||||
})
|
||||
|
||||
lsp.greybel.setup({})
|
||||
|
||||
vim.api.nvim_create_autocmd('LspAttach', {
|
||||
group = vim.api.nvim_create_augroup('my.lsp', {}),
|
||||
callback = on_atk
|
||||
})
|
||||
end
|
||||
|
||||
85
env/.config/nvim/after/plugin/lualine.lua
vendored
85
env/.config/nvim/after/plugin/lualine.lua
vendored
@@ -1,46 +1,47 @@
|
||||
require('lualine').setup()
|
||||
local ok, lualine = pcall(require, 'lualine')
|
||||
if ok then
|
||||
local custom_gruvbox = require'lualine.themes.base16'
|
||||
|
||||
local custom_gruvbox = require'lualine.themes.base16'
|
||||
-- Change the background of lualine_c section for normal mode
|
||||
custom_gruvbox.normal.c.bg = '#222222'
|
||||
|
||||
-- Change the background of lualine_c section for normal mode
|
||||
custom_gruvbox.normal.c.bg = '#222222'
|
||||
local hide_in_width = function()
|
||||
return vim.fn.winwidth(0) > 80
|
||||
end
|
||||
|
||||
local hide_in_width = function()
|
||||
return vim.fn.winwidth(0) > 80
|
||||
end
|
||||
|
||||
local diagnostics = {
|
||||
'diagnostics',
|
||||
sources = { 'nvim_diagnostic' },
|
||||
sections = { 'error' , 'warn' },
|
||||
symbols = { error = ' ', warn = ' ', info = ' ', hint = ' ' },
|
||||
update_in_insert = false,
|
||||
allways_visible = false,
|
||||
cond = hide_in_width,
|
||||
}
|
||||
|
||||
require('lualine').setup {
|
||||
options = {
|
||||
theme = custom_gruvbox,
|
||||
icons_enabled = true,
|
||||
disabled_filetypes = {'undotree', 'diff'},
|
||||
},
|
||||
sections = {
|
||||
lualine_a = {{
|
||||
'mode',
|
||||
fmt = function(str)
|
||||
return ' ' .. str
|
||||
end,
|
||||
}},
|
||||
lualine_b = {'branch', 'diff', diagnostics},
|
||||
lualine_c = {{
|
||||
'filename',
|
||||
file_status = true,
|
||||
path = 0,
|
||||
}},
|
||||
--lualine_x = {'encoding', 'fileformat', 'filetype'},
|
||||
lualine_x = {{'encoding', cond=hide_in_width}, {'filetype',cond=hide_in_width}},
|
||||
lualine_y = {'progress'},
|
||||
lualine_z = {'location'}
|
||||
local diagnostics = {
|
||||
'diagnostics',
|
||||
sources = { 'nvim_diagnostic' },
|
||||
sections = { 'error' , 'warn' },
|
||||
symbols = { error = ' ', warn = ' ', info = ' ', hint = ' ' },
|
||||
update_in_insert = false,
|
||||
allways_visible = false,
|
||||
cond = hide_in_width,
|
||||
}
|
||||
}
|
||||
|
||||
lualine.setup {
|
||||
options = {
|
||||
theme = custom_gruvbox,
|
||||
icons_enabled = true,
|
||||
disabled_filetypes = {'undotree', 'diff'},
|
||||
},
|
||||
sections = {
|
||||
lualine_a = {{
|
||||
'mode',
|
||||
fmt = function(str)
|
||||
return ' ' .. str
|
||||
end,
|
||||
}},
|
||||
lualine_b = {'branch', 'diff', diagnostics},
|
||||
lualine_c = {{
|
||||
'filename',
|
||||
file_status = true,
|
||||
path = 0,
|
||||
}},
|
||||
--lualine_x = {'encoding', 'fileformat', 'filetype'},
|
||||
lualine_x = {{'encoding', cond=hide_in_width}, {'filetype',cond=hide_in_width}},
|
||||
lualine_y = {'progress'},
|
||||
lualine_z = {'location'}
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
2
env/.config/nvim/after/plugin/markdown-preview.lua
vendored
Normal file
2
env/.config/nvim/after/plugin/markdown-preview.lua
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
vim.keymap.set('n', '<leader>mx', ':MarkdownPreview<cr>')
|
||||
vim.keymap.set('n', '<leader>ms', ':MarkdownPreviewStop<cr>')
|
||||
11
env/.config/nvim/after/plugin/notify.lua
vendored
11
env/.config/nvim/after/plugin/notify.lua
vendored
@@ -1,4 +1,7 @@
|
||||
vim.notify = require("notify")
|
||||
require("notify").setup({
|
||||
background_colour="#000000"
|
||||
})
|
||||
local ok, notify = pcall(require, 'notify')
|
||||
if ok then
|
||||
vim.notify = notify
|
||||
notify.setup({
|
||||
background_colour="#000000"
|
||||
})
|
||||
end
|
||||
|
||||
8
env/.config/nvim/after/plugin/null-ls.lua
vendored
Normal file
8
env/.config/nvim/after/plugin/null-ls.lua
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
local ok, null_ls = pcall(require, 'null-ls')
|
||||
if ok then
|
||||
null_ls.setup({
|
||||
sources = {
|
||||
null_ls.builtins.diagnostics.markdownlint,
|
||||
},
|
||||
})
|
||||
end
|
||||
38
env/.config/nvim/after/plugin/render-markdown.lua
vendored
Normal file
38
env/.config/nvim/after/plugin/render-markdown.lua
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
local ok, rmarkdown = pcall(require, 'render-markdown')
|
||||
if ok then
|
||||
rmarkdown.setup({
|
||||
code = {
|
||||
enabled = true,
|
||||
render_modes = false,
|
||||
sign = true,
|
||||
style = 'full',
|
||||
position = 'left',
|
||||
language_pad = 0,
|
||||
language_icon = true,
|
||||
language_name = true,
|
||||
language_info = true,
|
||||
disable_background = { 'diff' },
|
||||
width = 'full',
|
||||
left_margin = 0,
|
||||
left_pad = 0,
|
||||
right_pad = 0,
|
||||
min_width = 0,
|
||||
border = 'hide',
|
||||
language_border = '█',
|
||||
language_left = '',
|
||||
language_right = '',
|
||||
above = '▄',
|
||||
below = '▀',
|
||||
inline_left = '',
|
||||
inline_right = '',
|
||||
inline_pad = 0,
|
||||
highlight = 'RenderMarkdownCode',
|
||||
highlight_info = 'RenderMarkdownCodeInfo',
|
||||
highlight_language = nil,
|
||||
highlight_border = 'RenderMarkdownCodeBorder',
|
||||
highlight_fallback = 'RenderMarkdownCodeFallback',
|
||||
highlight_inline = 'RenderMarkdownCodeInline',
|
||||
},
|
||||
completions = { lsp = { enabled = true } },
|
||||
})
|
||||
end
|
||||
18
env/.config/nvim/after/plugin/snippets.lua
vendored
Normal file
18
env/.config/nvim/after/plugin/snippets.lua
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
local ok, luasnip= pcall(require, 'luasnip')
|
||||
if ok then
|
||||
luasnip.filetype_extend("javascript", { "jsdoc" })
|
||||
luasnip.filetype_extend("lua", { "luadoc" })
|
||||
luasnip.filetype_extend("rust", { "rustdoc" })
|
||||
luasnip.filetype_extend("c", { "cdoc" })
|
||||
|
||||
vim.keymap.set({"i"}, "<C-s>e", function() luasnip.expand() end, {silent = true})
|
||||
|
||||
vim.keymap.set({"i", "s"}, "<C-s>;", function() luasnip.jump(1) end, {silent = true})
|
||||
vim.keymap.set({"i", "s"}, "<C-s>,", function() luasnip.jump(-1) end, {silent = true})
|
||||
|
||||
vim.keymap.set({"i", "s"}, "<C-E>", function()
|
||||
if luasnip.choice_active() then
|
||||
luasnip.change_choice(1)
|
||||
end
|
||||
end, {silent = true})
|
||||
end
|
||||
85
env/.config/nvim/after/plugin/telescope.lua
vendored
85
env/.config/nvim/after/plugin/telescope.lua
vendored
@@ -1,9 +1,76 @@
|
||||
local builtin = require('telescope.builtin')
|
||||
vim.keymap.set('n', '<leader>pf', builtin.find_files, {})
|
||||
vim.keymap.set('n', '<leader>pg', builtin.live_grep, {})
|
||||
vim.keymap.set('n', '<leader>pb', builtin.buffers, {})
|
||||
vim.keymap.set('n', '<leader>ph', builtin.help_tags, {})
|
||||
vim.keymap.set('n', '<leader>ps', function()
|
||||
builtin.grep_string({ search = vim.fn.input("Grep > ") });
|
||||
end)
|
||||
--vim.keymap.set('n', '<C-p>', builtin.git_files, {})
|
||||
local ok, telescope = pcall(require, 'telescope')
|
||||
if ok then
|
||||
local builtin = require('telescope.builtin')
|
||||
local action = require('telescope.actions')
|
||||
telescope.setup{
|
||||
defaults = {
|
||||
mappings = {
|
||||
n = {
|
||||
["d"] = action.delete_buffer,
|
||||
["q"] = action.close,
|
||||
}
|
||||
},
|
||||
preview = {
|
||||
treesitter = false,
|
||||
},
|
||||
},
|
||||
pickers = {
|
||||
find_files = {
|
||||
find_command = {
|
||||
"rg",
|
||||
"--files",
|
||||
"--hidden",
|
||||
"--ignore-vcs",
|
||||
"--no-ignore",
|
||||
"-g", "!**/.git/*",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
--[[
|
||||
if string.find(vim.loop.cwd(),"iceys%-linux%-stuffs") then
|
||||
telescope.setup{
|
||||
pickers = {
|
||||
find_files = {
|
||||
hidden=true
|
||||
}
|
||||
}
|
||||
}
|
||||
end
|
||||
]]--
|
||||
-- vim.keymap.set('n', '<leader>pf', "<cmd>Telescope find_files initial_mode=normal<cr>", {})
|
||||
-- sort_mru=true sort by most recently used
|
||||
-- sort_lastused=true
|
||||
vim.keymap.set('n', '<leader>pf', builtin.find_files, {})
|
||||
vim.keymap.set('n', '<leader>pg', builtin.live_grep, {})
|
||||
vim.keymap.set('n', '<leader>pb', builtin.buffers, {})
|
||||
vim.keymap.set('n', '<leader>ph', builtin.help_tags, {})
|
||||
vim.keymap.set('n', '<leader>pr', builtin.registers, {})
|
||||
vim.keymap.set('n', '<leader>ps', function()
|
||||
builtin.grep_string({
|
||||
search = vim.fn.input("Grep > "),
|
||||
additional_args = function()
|
||||
return {
|
||||
"--hidden",
|
||||
"--no-ignore",
|
||||
"--glob", "!**/.git/*"
|
||||
}
|
||||
end
|
||||
})
|
||||
end)
|
||||
vim.keymap.set('n', '<leader>pws', function()
|
||||
local word = vim.fn.expand("<cword>")
|
||||
builtin.grep_string({ search = word })
|
||||
end)
|
||||
vim.keymap.set('n', '<leader>pWs', function()
|
||||
local word = vim.fn.expand("<cWORD>")
|
||||
builtin.grep_string({ search = word })
|
||||
end)
|
||||
vim.keymap.set('n', '<leader>gg', builtin.git_files, {})
|
||||
vim.keymap.set('n', '<leader>gs', builtin.git_status, {})
|
||||
vim.keymap.set('n', '<leader>gm', builtin.git_commits, {})
|
||||
|
||||
vim.keymap.set('n', '<leader>proj', function ()
|
||||
require('telescope.builtin').find_files({cwd = "~/stuff/scripts"})
|
||||
end, {})
|
||||
end
|
||||
|
||||
7
env/.config/nvim/after/plugin/treesitter.lua
vendored
Normal file
7
env/.config/nvim/after/plugin/treesitter.lua
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
local ok, treesitter = pcall(require, 'nvim-treesitter.configs')
|
||||
if ok then
|
||||
treesitter.setup {
|
||||
ensure_installed = { "c", "lua", "rust", "css", "html", "bash", "markdown", "markdown_inline" },
|
||||
highlight = { enable = true, },
|
||||
}
|
||||
end
|
||||
2
env/.config/nvim/after/plugin/undotree.lua
vendored
2
env/.config/nvim/after/plugin/undotree.lua
vendored
@@ -1 +1 @@
|
||||
vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle)
|
||||
vim.keymap.set("n", "<leader>u", ":UndotreeToggle<CR>")
|
||||
|
||||
1
env/.config/nvim/custom-lsp/lua-ls-cc-tweaked
vendored
Submodule
1
env/.config/nvim/custom-lsp/lua-ls-cc-tweaked
vendored
Submodule
Submodule env/.config/nvim/custom-lsp/lua-ls-cc-tweaked added at b23f104f55
20
env/.config/nvim/lua/yourmom/init.lua
vendored
20
env/.config/nvim/lua/yourmom/init.lua
vendored
@@ -14,7 +14,7 @@ vim.opt.smartindent=true
|
||||
|
||||
vim.opt.wrap = true
|
||||
|
||||
vim.opt.hlsearch = false
|
||||
vim.opt.hlsearch = true
|
||||
vim.opt.incsearch = true
|
||||
|
||||
vim.o.ignorecase = true
|
||||
@@ -22,13 +22,14 @@ vim.o.ignorecase = true
|
||||
vim.opt.updatetime = 50
|
||||
--vim.opt.colorcolumn = "80"
|
||||
--vim.cmd('colorscheme vim')
|
||||
--vim.cmd('colorscheme rose-pine')
|
||||
--vim.cmd('colorscheme tokyonight')
|
||||
vim.cmd('colorscheme catppuccin-mocha')
|
||||
|
||||
vim.api.nvim_set_hl(0, "Normal", { bg = "none" })
|
||||
vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" })
|
||||
|
||||
|
||||
vim.cmd('hi SignColumn ctermbg=0')
|
||||
vim.cmd('set signcolumn=no')
|
||||
|
||||
vim.cmd('hi Pmenu ctermfg=120')
|
||||
vim.cmd('hi Pmenu ctermbg=0')
|
||||
@@ -43,8 +44,13 @@ vim.opt.termguicolors = true
|
||||
--vim.api.nvim_set_hl(0, '@lsp.type.comment.cpp', {})
|
||||
|
||||
|
||||
vim.filetype.add({
|
||||
extension = {
|
||||
src = "greyscript"
|
||||
}
|
||||
-- make no file extension go to sh type
|
||||
vim.api.nvim_create_autocmd({"BufRead", "BufNewFile"}, {
|
||||
pattern = "*",
|
||||
callback = function()
|
||||
local fname = vim.fn.expand("%:t")
|
||||
if not fname:find("%.") then -- no dot in filename
|
||||
vim.bo.filetype = "sh"
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
101
env/.config/nvim/lua/yourmom/packer.lua
vendored
101
env/.config/nvim/lua/yourmom/packer.lua
vendored
@@ -4,70 +4,99 @@
|
||||
vim.cmd [[packadd packer.nvim]]
|
||||
|
||||
return require('packer').startup(function(use)
|
||||
-- Packer can manage itself
|
||||
|
||||
use 'wbthomason/packer.nvim'
|
||||
|
||||
use 'ThePrimeagen/vim-be-good'
|
||||
use 'ThePrimeagen/harpoon'
|
||||
-- # learning
|
||||
|
||||
use 'ThePrimeagen/vim-be-good'
|
||||
-- use 'vuciv/golf' --vim daily task
|
||||
use 'm4xshen/hardtime.nvim'
|
||||
|
||||
|
||||
-- # niceties
|
||||
|
||||
use 'rcarriga/nvim-notify'
|
||||
|
||||
use { "rose-pine/neovim", as = "rose-pine" }
|
||||
use { "folke/tokyonight.nvim", as = "tokyonight"}
|
||||
use { "catppuccin/nvim", as = "catppuccin" }
|
||||
|
||||
use "jbyuki/quickmath.nvim"
|
||||
|
||||
use '3rd/image.nvim'
|
||||
|
||||
use {
|
||||
'nvim-telescope/telescope.nvim', tag = '0.1.5',
|
||||
-- or , branch = '0.1.x',
|
||||
requires = { {'nvim-lua/plenary.nvim'} }
|
||||
}
|
||||
|
||||
use("mbbill/undotree")
|
||||
|
||||
use "lukas-reineke/indent-blankline.nvim"
|
||||
|
||||
use({ "NStefan002/screenkey.nvim", tag = "*" })
|
||||
|
||||
use("catgoose/nvim-colorizer.lua")
|
||||
|
||||
use("catgoose/nvim-colorizer.lua")
|
||||
use {
|
||||
'nvim-lualine/lualine.nvim',
|
||||
--requires = { 'nvim-tree/nvim-web-devicons', opt = true }
|
||||
}
|
||||
|
||||
--[[
|
||||
use('nvim-treesitter/nvim-treesitter', {run = ':TSUpdate',
|
||||
config = function()
|
||||
require("nvim-treesitter.configs").setup {
|
||||
ensure_installed = { "c", "lua", "rust" },
|
||||
highlight = { enable = true, }
|
||||
}
|
||||
end
|
||||
})
|
||||
]]--
|
||||
--use "jbyuki/venn.nvim"
|
||||
|
||||
use 'tpope/vim-fugitive'
|
||||
|
||||
|
||||
-- # main dev requirements
|
||||
use('nvim-treesitter/nvim-treesitter', {run = ':TSUpdate'})
|
||||
|
||||
use 'ThePrimeagen/harpoon'
|
||||
use("mbbill/undotree")
|
||||
|
||||
use {
|
||||
'VonHeikemen/lsp-zero.nvim',
|
||||
branch = 'v3.x',
|
||||
requires = {
|
||||
--- Uncomment the two plugins below if you want to manage the language servers from neovim
|
||||
{'williamboman/mason.nvim'},
|
||||
{'williamboman/mason-lspconfig.nvim'},
|
||||
'nvim-telescope/telescope.nvim', tag = '0.1.8', -- 0.1.5
|
||||
-- or , branch = '0.1.x',
|
||||
requires = { {'nvim-lua/plenary.nvim'} }
|
||||
}
|
||||
|
||||
-- LSP Support
|
||||
{'neovim/nvim-lspconfig'},
|
||||
use {
|
||||
'neovim/nvim-lspconfig',
|
||||
requires = {
|
||||
'williamboman/mason.nvim',
|
||||
'williamboman/mason-lspconfig.nvim',
|
||||
"jay-babu/mason-nvim-dap.nvim",
|
||||
-- Autocompletion
|
||||
{'hrsh7th/nvim-cmp'},
|
||||
{'hrsh7th/cmp-buffer'},
|
||||
{'hrsh7th/cmp-path'},
|
||||
{'hrsh7th/cmp-nvim-lsp'},
|
||||
{'hrsh7th/cmp-nvim-lua'},
|
||||
{'L3MON4D3/LuaSnip'},
|
||||
'hrsh7th/cmp-nvim-lsp',
|
||||
'hrsh7th/cmp-buffer',
|
||||
'hrsh7th/cmp-path',
|
||||
'hrsh7th/cmp-cmdline',
|
||||
'hrsh7th/nvim-cmp',
|
||||
--snippets
|
||||
'L3MON4D3/LuaSnip',
|
||||
'saadparwaiz1/cmp_luasnip',
|
||||
'rafamadriz/friendly-snippets',
|
||||
}
|
||||
}
|
||||
|
||||
use 'folke/trouble.nvim'
|
||||
|
||||
use 'mfussenegger/nvim-lint'
|
||||
use 'nvimtools/none-ls.nvim'
|
||||
|
||||
-- to dap, or not to dap? tis the question
|
||||
-- ill trya dap
|
||||
|
||||
use { "rcarriga/nvim-dap-ui", requires = {"mfussenegger/nvim-dap", "nvim-neotest/nvim-nio"} }
|
||||
|
||||
use({ "iamcco/markdown-preview.nvim", run = "cd app && npm install", setup = function() vim.g.mkdp_filetypes = { "markdown" } end, ft = { "markdown" }, })
|
||||
|
||||
|
||||
use({
|
||||
'MeanderingProgrammer/render-markdown.nvim',
|
||||
after = { 'nvim-treesitter' },
|
||||
requires = { 'echasnovski/mini.nvim', opt = true }, -- if you use the mini.nvim suite
|
||||
-- requires = { 'echasnovski/mini.icons', opt = true }, -- if you use standalone mini plugins
|
||||
-- requires = { 'nvim-tree/nvim-web-devicons', opt = true }, -- if you prefer nvim-web-devicons
|
||||
})
|
||||
|
||||
|
||||
use({
|
||||
'tigion/nvim-asciidoc-preview',
|
||||
run = 'cd server && npm install --omit=dev',
|
||||
})
|
||||
end)
|
||||
|
||||
112
env/.config/nvim/lua/yourmom/remap.lua
vendored
112
env/.config/nvim/lua/yourmom/remap.lua
vendored
@@ -1,13 +1,10 @@
|
||||
vim.g.mapleader=" "
|
||||
vim.g.maplocalleader=" "
|
||||
|
||||
vim.keymap.set("n", "<leader>pv", vim.cmd.Ex)
|
||||
|
||||
|
||||
--[[vim.cmd[[
|
||||
au VimEnter * silent! !xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape'
|
||||
au VimLeave * silent! !xmodmap -e 'clear Lock' -e 'keycode 0x42 = Caps_Lock'>
|
||||
]]
|
||||
|
||||
-- notes
|
||||
vim.keymap.set("n", "<leader>notes", ":e ~/stuff/notes/notes.md<CR>")
|
||||
|
||||
--move highlighted stuffs
|
||||
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
|
||||
@@ -15,6 +12,7 @@ vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
|
||||
|
||||
--keeps cursor at cur pos when stacking lines to single line
|
||||
vim.keymap.set("n", "J", "mzJ`z")
|
||||
|
||||
--keeps cursur in middle with up down
|
||||
vim.keymap.set("n", "<C-d>", "<C-d>zz")
|
||||
vim.keymap.set("n", "<C-u>", "<C-u>zz")
|
||||
@@ -25,18 +23,13 @@ vim.keymap.set("n", "N", "Nzzzv")
|
||||
vim.keymap.set("n", "<leader>y", "\"+y")
|
||||
vim.keymap.set("v", "<leader>y", "\"+y")
|
||||
vim.keymap.set("n", "<leader>Y", "\"+Y")
|
||||
|
||||
--paste but dont overwrite current register with selection
|
||||
vim.keymap.set("v", "<leader>p", "\"_dP")
|
||||
|
||||
--nnoremap S :%s//g<left><left>
|
||||
vim.keymap.set("n", "S", [[:%s//<Left>]])
|
||||
|
||||
|
||||
vim.keymap.set('n', '<leader>to', ':tabnew<CR>')
|
||||
vim.keymap.set('n', '<leader>tx', ':tabclose<CR>')
|
||||
vim.keymap.set('n', '<leader>tn', ':tabn<CR>')
|
||||
vim.keymap.set('n', '<leader>tp', ':tabp<CR>')
|
||||
|
||||
vim.keymap.set('n', '<leader>lw', '<cmd>:set wrap!<CR>')
|
||||
|
||||
--stay in indent mode
|
||||
@@ -44,7 +37,7 @@ vim.keymap.set('v', '<', '<gv', {noremap = true})
|
||||
vim.keymap.set('v', '>', '>gv', {noremap = true})
|
||||
|
||||
|
||||
--reize with arrows
|
||||
--reize with alt
|
||||
vim.keymap.set('n', '<A-k>', ':resize -2<CR>')
|
||||
vim.keymap.set('n', '<A-j>', ':resize +2<CR>')
|
||||
vim.keymap.set('n', '<A-h>', ':vertical resize -2<CR>')
|
||||
@@ -54,7 +47,7 @@ vim.keymap.set('n', '<A-l>', ':vertical resize +2<CR>')
|
||||
vim.keymap.set('n', '<leader>v', '<C-w>v')
|
||||
vim.keymap.set('n', '<leader>h', '<C-w>s')
|
||||
vim.keymap.set('n', '<leader>se', '<C-w>=')
|
||||
vim.keymap.set('n', '<leader>xs', ':close<CR>')
|
||||
vim.keymap.set('n', '<leader>sx', ':close<CR>')
|
||||
|
||||
-- navigate splits
|
||||
vim.keymap.set("n","<C-h>","<C-w>h")
|
||||
@@ -62,31 +55,48 @@ vim.keymap.set("n","<C-j>","<C-w>j")
|
||||
vim.keymap.set("n","<C-l>","<C-w>l")
|
||||
vim.keymap.set("n","<C-k>","<C-w>k")
|
||||
|
||||
-- navigate tabs
|
||||
vim.keymap.set('n', '<leader>to', ':tabnew<CR>')
|
||||
vim.keymap.set('n', '<leader>tx', ':tabclose<CR>')
|
||||
vim.keymap.set('n', '<leader>tn', ':tabn<CR>')
|
||||
vim.keymap.set('n', '<leader>tp', ':tabp<CR>')
|
||||
|
||||
|
||||
-- make a error check thing for c
|
||||
vim.keymap.set("n", "<leader>ee", "oif err != nil {<CR>}<Esc>Oreturn err<Esc>")
|
||||
|
||||
--per file type log quick binds
|
||||
local cc_command=""
|
||||
local filename = vim.api.nvim_buf_get_name(0)
|
||||
-- terminal niceites
|
||||
-- vim.keymap.set("n", "<C-;>", ":", { desc = "Enter command mode" })
|
||||
-- vim.keymap.set("v", "<C-;>", ":", { desc = "Enter command mode (visual)" })
|
||||
vim.keymap.set("t", "<C-e>", "<C-\\><C-n>", { desc = "Exit terminal" })
|
||||
|
||||
if string.find(filename,".*%.js$") then
|
||||
cc_command="oconsole.log();<Esc>V=$hi"
|
||||
elseif string.find(filename,".*%.lua$") then
|
||||
cc_command="oterm.print()<Esc>V=$i"
|
||||
elseif string.find(filename,".*%.c$") then
|
||||
cc_command="oprintf(\"debug: %i\",);<Esc>V=$hi"
|
||||
elseif string.find(filename,".*%.rs$") then
|
||||
cc_command="oprintln!(\"debug: {}\",);<Esc>V=$hi"
|
||||
|
||||
--change cwd to directory of buffer or git master directory
|
||||
local function set_cwd()
|
||||
local fname = vim.fn.expand("%:p")
|
||||
if not fname:find("fugitive") and not fname:find("term") then -- no dot in filename
|
||||
vim.cmd('cd ' .. vim.fn.expand('%:p:h'))
|
||||
|
||||
local gitroot = vim.fn.system("git rev-parse --show-toplevel")
|
||||
if string.find(gitroot, "fatal", 1, true) == nil then
|
||||
vim.cmd("cd " .. gitroot)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
vim.keymap.set("n", "<leader>cc", cc_command)
|
||||
vim.keymap.set("n", "<leader>c", set_cwd, {})
|
||||
|
||||
local auto_close=false
|
||||
local function toggle_auto_close()
|
||||
if auto_close==false then
|
||||
vim.api.nvim_create_autocmd({ "BufEnter" }, {
|
||||
pattern = "*",
|
||||
callback = set_cwd
|
||||
})
|
||||
|
||||
-- auto closing para
|
||||
local function set_auto_close(doclose)
|
||||
if doclose==true then
|
||||
vim.keymap.set("i", "{", "{<CR>}<Esc>ko");
|
||||
vim.keymap.set("i", "(", "()<Esc>i");
|
||||
local filename = vim.api.nvim_buf_get_name(0)
|
||||
if string.find(filename,".*%.html$") then
|
||||
vim.keymap.set("i", "<", "<");
|
||||
vim.keymap.set("i", ">", "><Esc>T<yef>a</><Esc>hpF<i");
|
||||
@@ -97,7 +107,6 @@ local function toggle_auto_close()
|
||||
vim.keymap.set("i", "[", "[]<Esc>i");
|
||||
vim.keymap.set("i", "\"", "\"\"<Esc>i");
|
||||
vim.keymap.set("i", "'", "''<Esc>i");
|
||||
auto_close=true
|
||||
else
|
||||
vim.keymap.set("i", "{", "{");
|
||||
vim.keymap.set("i", "(", "(");
|
||||
@@ -106,19 +115,48 @@ local function toggle_auto_close()
|
||||
vim.keymap.set("i", "[", "[");
|
||||
vim.keymap.set("i", "\"", "\"");
|
||||
vim.keymap.set("i", "'", "'");
|
||||
auto_close=false
|
||||
end
|
||||
end
|
||||
toggle_auto_close()
|
||||
set_auto_close(true)
|
||||
|
||||
|
||||
local auto_close=true
|
||||
local function toggle_auto_close()
|
||||
if auto_close==true then
|
||||
auto_close=false
|
||||
else
|
||||
auto_close=true
|
||||
end
|
||||
set_auto_close(auto_close)
|
||||
end
|
||||
|
||||
vim.keymap.set("n", "<leader>k", toggle_auto_close)
|
||||
|
||||
--[[
|
||||
vim.keymap("i","<Caps_Lock>", function()
|
||||
|
||||
end)
|
||||
]]
|
||||
-- update every buffer
|
||||
vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost" }, {
|
||||
pattern = "*",
|
||||
callback = function()
|
||||
--per file type log quick binds
|
||||
local cc_command=""
|
||||
local filename = vim.api.nvim_buf_get_name(0)
|
||||
|
||||
set_auto_close(auto_close)
|
||||
|
||||
if string.find(filename,".*%.js$") then
|
||||
cc_command="oconsole.log();<Esc>V=$hi"
|
||||
elseif string.find(filename,".*%.lua$") then
|
||||
cc_command="oterm.print()<Esc>V=$i"
|
||||
elseif string.find(filename,".*%.c$") then
|
||||
cc_command="oprintf(\"debug: %i\",);<Esc>V=$hi"
|
||||
elseif string.find(filename,".*%.rs$") then
|
||||
cc_command="oprintln!(\"debug: {}\",);<Esc>V=$hi"
|
||||
end
|
||||
|
||||
vim.keymap.set("n", "<leader>cc", cc_command)
|
||||
end
|
||||
})
|
||||
|
||||
-- colemak rebinds
|
||||
local colemak_switch=false
|
||||
|
||||
local colemak_tog = function()
|
||||
|
||||
148
env/.config/pipewire/client.conf
vendored
Normal file
148
env/.config/pipewire/client.conf
vendored
Normal file
@@ -0,0 +1,148 @@
|
||||
# Client config file for PipeWire version "1.4.2" #
|
||||
#
|
||||
# Copy and edit this file in /etc/pipewire for system-wide changes
|
||||
# or in ~/.config/pipewire for local changes.
|
||||
#
|
||||
# It is also possible to place a file with an updated section in
|
||||
# /etc/pipewire/client.conf.d/ for system-wide changes or in
|
||||
# ~/.config/pipewire/client.conf.d/ for local changes.
|
||||
#
|
||||
|
||||
context.properties = {
|
||||
## Configure properties in the system.
|
||||
#mem.warn-mlock = false
|
||||
#mem.allow-mlock = true
|
||||
#mem.mlock-all = false
|
||||
log.level = 0
|
||||
|
||||
#default.clock.quantum-limit = 8192
|
||||
}
|
||||
|
||||
context.spa-libs = {
|
||||
#<factory-name regex> = <library-name>
|
||||
#
|
||||
# Used to find spa factory names. It maps an spa factory name
|
||||
# regular expression to a library name that should contain
|
||||
# that factory.
|
||||
#
|
||||
audio.convert.* = audioconvert/libspa-audioconvert
|
||||
support.* = support/libspa-support
|
||||
video.convert.* = videoconvert/libspa-videoconvert
|
||||
}
|
||||
|
||||
context.modules = [
|
||||
#{ name = <module-name>
|
||||
# ( args = { <key> = <value> ... } )
|
||||
# ( flags = [ ( ifexists ) ( nofail ) ] )
|
||||
# ( condition = [ { <key> = <value> ... } ... ] )
|
||||
#}
|
||||
#
|
||||
# Loads a module with the given parameters.
|
||||
# If ifexists is given, the module is ignored when it is not found.
|
||||
# If nofail is given, module initialization failures are ignored.
|
||||
#
|
||||
# Uses realtime scheduling to boost the audio thread priorities
|
||||
{ name = libpipewire-module-rt
|
||||
args = {
|
||||
#rt.prio = 83
|
||||
#rt.time.soft = -1
|
||||
#rt.time.hard = -1
|
||||
}
|
||||
flags = [ ifexists nofail ]
|
||||
condition = [ { module.rt = !false } ]
|
||||
}
|
||||
|
||||
# The native communication protocol.
|
||||
{ name = libpipewire-module-protocol-native }
|
||||
|
||||
# Allows creating nodes that run in the context of the
|
||||
# client. Is used by all clients that want to provide
|
||||
# data to PipeWire.
|
||||
{ name = libpipewire-module-client-node
|
||||
condition = [ { module.client-node = !false } ]
|
||||
}
|
||||
|
||||
# Allows creating devices that run in the context of the
|
||||
# client. Is used by the session manager.
|
||||
{ name = libpipewire-module-client-device
|
||||
condition = [ { module.client-device = !false } ]
|
||||
}
|
||||
|
||||
# Makes a factory for wrapping nodes in an adapter with a
|
||||
# converter and resampler.
|
||||
{ name = libpipewire-module-adapter
|
||||
condition = [ { module.adapter = !false } ]
|
||||
}
|
||||
|
||||
# Allows applications to create metadata objects. It creates
|
||||
# a factory for Metadata objects.
|
||||
{ name = libpipewire-module-metadata
|
||||
condition = [ { module.metadata = !false } ]
|
||||
}
|
||||
|
||||
# Provides factories to make session manager objects.
|
||||
{ name = libpipewire-module-session-manager
|
||||
condition = [ { module.session-manager = !false } ]
|
||||
}
|
||||
]
|
||||
|
||||
filter.properties = {
|
||||
#node.latency = 1024/48000
|
||||
}
|
||||
|
||||
stream.properties = {
|
||||
#node.latency = 1024/48000
|
||||
#node.autoconnect = true
|
||||
#resample.quality = 4
|
||||
#channelmix.normalize = false
|
||||
#channelmix.mix-lfe = true
|
||||
#channelmix.upmix = true
|
||||
#channelmix.upmix-method = psd # none, simple
|
||||
#channelmix.lfe-cutoff = 150
|
||||
#channelmix.fc-cutoff = 12000
|
||||
#channelmix.rear-delay = 12.0
|
||||
#channelmix.stereo-widen = 0.0
|
||||
#channelmix.hilbert-taps = 0
|
||||
#dither.noise = 0
|
||||
}
|
||||
|
||||
stream.rules = [
|
||||
{ matches = [
|
||||
{
|
||||
# all keys must match the value. ! negates. ~ starts regex.
|
||||
#application.name = "pw-cat"
|
||||
#node.name = "~Google Chrome$"
|
||||
}
|
||||
]
|
||||
actions = {
|
||||
update-props = {
|
||||
#node.latency = 512/48000
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
alsa.properties = {
|
||||
#alsa.deny = false
|
||||
# ALSA params take a single value, an array [] of values
|
||||
# or a range { min=.. max=... }
|
||||
#alsa.access = [ MMAP_INTERLEAVED MMAP_NONINTERLEAVED RW_INTERLEAVED RW_NONINTERLEAVED ]
|
||||
#alsa.format = [ FLOAT S32 S24 S24_3 S16 U8 ]
|
||||
#alsa.rate = { min=1 max=384000 } # or [ 44100 48000 .. ]
|
||||
#alsa.channels = { min=1 max=64 } # or [ 2 4 6 .. ]
|
||||
#alsa.period-bytes = { min=128 max=2097152 } # or [ 128 256 1024 .. ]
|
||||
#alsa.buffer-bytes = { min=256 max=4194304 } # or [ 256 512 4096 .. ]
|
||||
|
||||
#alsa.volume-method = cubic # linear, cubic
|
||||
}
|
||||
|
||||
# client specific properties
|
||||
alsa.rules = [
|
||||
{ matches = [ { application.process.binary = "resolve" } ]
|
||||
actions = {
|
||||
update-props = {
|
||||
alsa.buffer-bytes = 131072
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
63
env/.config/pipewire/filter-chain.conf
vendored
Normal file
63
env/.config/pipewire/filter-chain.conf
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
# Filter-chain config file for PipeWire version "1.4.2" #
|
||||
#
|
||||
# This is a base config file for running filters.
|
||||
#
|
||||
# Place filter fragments in /etc/pipewire/filter-chain.conf.d/
|
||||
# for system-wide changes or in ~/.config/pipewire/filter-chain.conf.d/
|
||||
# for local changes.
|
||||
#
|
||||
# Run the filters with pipewire -c filter-chain.conf
|
||||
#
|
||||
|
||||
context.properties = {
|
||||
## Configure properties in the system.
|
||||
#mem.warn-mlock = false
|
||||
#mem.allow-mlock = true
|
||||
#mem.mlock-all = false
|
||||
log.level = 0
|
||||
}
|
||||
|
||||
context.spa-libs = {
|
||||
#<factory-name regex> = <library-name>
|
||||
#
|
||||
# Used to find spa factory names. It maps an spa factory name
|
||||
# regular expression to a library name that should contain
|
||||
# that factory.
|
||||
#
|
||||
audio.convert.* = audioconvert/libspa-audioconvert
|
||||
support.* = support/libspa-support
|
||||
}
|
||||
|
||||
context.modules = [
|
||||
#{ name = <module-name>
|
||||
# ( args = { <key> = <value> ... } )
|
||||
# ( flags = [ ( ifexists ) ( nofail ) ] )
|
||||
# ( condition = [ { <key> = <value> ... } ... ] )
|
||||
#}
|
||||
#
|
||||
# Loads a module with the given parameters.
|
||||
# If ifexists is given, the module is ignored when it is not found.
|
||||
# If nofail is given, module initialization failures are ignored.
|
||||
#
|
||||
# Uses realtime scheduling to boost the audio thread priorities
|
||||
{ name = libpipewire-module-rt
|
||||
args = {
|
||||
#rt.prio = 83
|
||||
#rt.time.soft = -1
|
||||
#rt.time.hard = -1
|
||||
}
|
||||
flags = [ ifexists nofail ]
|
||||
}
|
||||
|
||||
# The native communication protocol.
|
||||
{ name = libpipewire-module-protocol-native }
|
||||
|
||||
# Allows creating nodes that run in the context of the
|
||||
# client. Is used by all clients that want to provide
|
||||
# data to PipeWire.
|
||||
{ name = libpipewire-module-client-node }
|
||||
|
||||
# Makes a factory for wrapping nodes in an adapter with a
|
||||
# converter and resampler.
|
||||
{ name = libpipewire-module-adapter }
|
||||
]
|
||||
140
env/.config/pipewire/jack.conf
vendored
Normal file
140
env/.config/pipewire/jack.conf
vendored
Normal file
@@ -0,0 +1,140 @@
|
||||
# JACK client config file for PipeWire version "1.4.2" #
|
||||
#
|
||||
# Copy and edit this file in /etc/pipewire for system-wide changes
|
||||
# or in ~/.config/pipewire for local changes.
|
||||
#
|
||||
# It is also possible to place a file with an updated section in
|
||||
# /etc/pipewire/jack.conf.d/ for system-wide changes or in
|
||||
# ~/.config/pipewire/jack.conf.d/ for local changes.
|
||||
#
|
||||
|
||||
context.properties = {
|
||||
## Configure properties in the system.
|
||||
#mem.warn-mlock = false
|
||||
#mem.allow-mlock = true
|
||||
#mem.mlock-all = false
|
||||
log.level = 0
|
||||
|
||||
#default.clock.quantum-limit = 8192
|
||||
}
|
||||
|
||||
context.spa-libs = {
|
||||
#<factory-name regex> = <library-name>
|
||||
#
|
||||
# Used to find spa factory names. It maps an spa factory name
|
||||
# regular expression to a library name that should contain
|
||||
# that factory.
|
||||
#
|
||||
support.* = support/libspa-support
|
||||
}
|
||||
|
||||
context.modules = [
|
||||
#{ name = <module-name>
|
||||
# ( args = { <key> = <value> ... } )
|
||||
# ( flags = [ ( ifexists ) ( nofail ) ] )
|
||||
# ( condition = [ { <key> = <value> ... } ... ] )
|
||||
#}
|
||||
#
|
||||
# Loads a module with the given parameters.
|
||||
# If ifexists is given, the module is ignored when it is not found.
|
||||
# If nofail is given, module initialization failures are ignored.
|
||||
#
|
||||
#
|
||||
# Boost the data thread priority.
|
||||
{ name = libpipewire-module-rt
|
||||
args = {
|
||||
#rt.prio = 83
|
||||
#rt.time.soft = -1
|
||||
#rt.time.hard = -1
|
||||
}
|
||||
flags = [ ifexists nofail ]
|
||||
}
|
||||
|
||||
# The native communication protocol.
|
||||
{ name = libpipewire-module-protocol-native }
|
||||
|
||||
# Allows creating nodes that run in the context of the
|
||||
# client. Is used by all clients that want to provide
|
||||
# data to PipeWire.
|
||||
{ name = libpipewire-module-client-node }
|
||||
|
||||
# Allows applications to create metadata objects. It creates
|
||||
# a factory for Metadata objects.
|
||||
{ name = libpipewire-module-metadata }
|
||||
]
|
||||
|
||||
# global properties for all jack clients
|
||||
jack.properties = {
|
||||
#node.latency = 1024/48000
|
||||
#node.rate = 1/48000
|
||||
#node.quantum = 1024/48000
|
||||
#node.lock-quantum = true
|
||||
#node.force-quantum = 0
|
||||
#jack.show-monitor = true
|
||||
#jack.merge-monitor = true
|
||||
#jack.show-midi = true
|
||||
#jack.short-name = false
|
||||
#jack.filter-name = false
|
||||
#jack.filter-char = " "
|
||||
#
|
||||
# allow: Don't restrict self connect requests
|
||||
# fail-external: Fail self connect requests to external ports only
|
||||
# ignore-external: Ignore self connect requests to external ports only
|
||||
# fail-all: Fail all self connect requests
|
||||
# ignore-all: Ignore all self connect requests
|
||||
#jack.self-connect-mode = allow
|
||||
#
|
||||
# allow: Allow connect request of other ports
|
||||
# fail: Fail connect requests of other ports
|
||||
# ignore: Ignore connect requests of other ports
|
||||
#jack.other-connect-mode = allow
|
||||
#jack.locked-process = true
|
||||
#jack.default-as-system = false
|
||||
#jack.fix-midi-events = true
|
||||
#jack.global-buffer-size = false
|
||||
#jack.max-client-ports = 768
|
||||
#jack.fill-aliases = false
|
||||
#jack.writable-input = true
|
||||
#jack.flag-midi2 = false
|
||||
}
|
||||
|
||||
# client specific properties
|
||||
jack.rules = [
|
||||
{ matches = [
|
||||
{
|
||||
# all keys must match the value. ! negates. ~ starts regex.
|
||||
#client.name = "Carla"
|
||||
#application.process.binary = "jack_simple_client"
|
||||
#application.name = "~jack_simple_client.*"
|
||||
}
|
||||
]
|
||||
actions = {
|
||||
update-props = {
|
||||
#node.latency = 512/48000
|
||||
}
|
||||
}
|
||||
}
|
||||
{ matches = [ { application.process.binary = "jack_bufsize" } ]
|
||||
actions = {
|
||||
update-props = {
|
||||
jack.global-buffer-size = true # quantum set globally using metadata
|
||||
}
|
||||
}
|
||||
}
|
||||
{ matches = [ { application.process.binary = "qsynth" } ]
|
||||
actions = {
|
||||
update-props = {
|
||||
node.always-process = false # makes qsynth idle
|
||||
node.pause-on-idle = false # makes audio fade out when idle
|
||||
node.passive = out # makes the sink and qsynth suspend
|
||||
}
|
||||
}
|
||||
}
|
||||
{ matches = [ { client.name = "Mixxx" } ]
|
||||
actions = {
|
||||
update-props = {
|
||||
jack.merge-monitor = false
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
476
env/.config/pipewire/minimal.conf
vendored
Normal file
476
env/.config/pipewire/minimal.conf
vendored
Normal file
@@ -0,0 +1,476 @@
|
||||
# Simple daemon config file for PipeWire version "1.4.2" #
|
||||
#
|
||||
# Copy and edit this file in /etc/pipewire for system-wide changes
|
||||
# or in ~/.config/pipewire for local changes.
|
||||
#
|
||||
# It is also possible to place a file with an updated section in
|
||||
# /etc/pipewire/minimal.conf.d/ for system-wide changes or in
|
||||
# ~/.config/pipewire/minimal.conf.d/ for local changes.
|
||||
#
|
||||
|
||||
context.properties = {
|
||||
## Configure properties in the system.
|
||||
#library.name.system = support/libspa-support
|
||||
#context.data-loop.library.name.system = support/libspa-support
|
||||
#support.dbus = true
|
||||
#link.max-buffers = 64
|
||||
link.max-buffers = 16 # version < 3 clients can't handle more
|
||||
#mem.warn-mlock = false
|
||||
#mem.allow-mlock = true
|
||||
#mem.mlock-all = false
|
||||
#clock.power-of-two-quantum = true
|
||||
#log.level = 2
|
||||
#cpu.zero.denormals = false
|
||||
|
||||
core.daemon = true # listening for socket connections
|
||||
core.name = pipewire-0 # core name and socket name
|
||||
|
||||
## Properties for the DSP configuration.
|
||||
#default.clock.rate = 48000
|
||||
#default.clock.allowed-rates = [ 48000 ]
|
||||
#default.clock.quantum = 1024
|
||||
#default.clock.min-quantum = 32
|
||||
#default.clock.max-quantum = 2048
|
||||
#default.clock.quantum-limit = 8192
|
||||
#default.clock.quantum-floor = 4
|
||||
#default.video.width = 640
|
||||
#default.video.height = 480
|
||||
#default.video.rate.num = 25
|
||||
#default.video.rate.denom = 1
|
||||
#
|
||||
settings.check-quantum = true
|
||||
settings.check-rate = true
|
||||
|
||||
# This config can use udev or hardcoded ALSA devices. Make sure to
|
||||
# change the alsa device below when disabling udev
|
||||
minimal.use-udev = true
|
||||
|
||||
# Load the pulseaudio emulation daemon
|
||||
minimal.use-pulse = true
|
||||
}
|
||||
|
||||
context.properties.rules = [
|
||||
{ matches = [ { cpu.vm.name = !null } ]
|
||||
actions = {
|
||||
update-props = {
|
||||
# These overrides are only applied when running in a vm.
|
||||
default.clock.min-quantum = 1024
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
context.spa-libs = {
|
||||
#<factory-name regex> = <library-name>
|
||||
#
|
||||
# Used to find spa factory names. It maps an spa factory name
|
||||
# regular expression to a library name that should contain
|
||||
# that factory.
|
||||
#
|
||||
audio.convert.* = audioconvert/libspa-audioconvert
|
||||
audio.adapt = audioconvert/libspa-audioconvert
|
||||
api.alsa.* = alsa/libspa-alsa
|
||||
support.* = support/libspa-support
|
||||
}
|
||||
|
||||
context.modules = [
|
||||
#{ name = <module-name>
|
||||
# ( args = { <key> = <value> ... } )
|
||||
# ( flags = [ ( ifexists ) ( nofail ) ] )
|
||||
# ( condition = [ { <key> = <value> ... } ... ] )
|
||||
#}
|
||||
#
|
||||
# Loads a module with the given parameters.
|
||||
# If ifexists is given, the module is ignored when it is not found.
|
||||
# If nofail is given, module initialization failures are ignored.
|
||||
#
|
||||
|
||||
# Uses realtime scheduling to boost the audio thread priorities. This uses
|
||||
# RTKit if the user doesn't have permission to use regular realtime
|
||||
# scheduling.
|
||||
{ name = libpipewire-module-rt
|
||||
args = {
|
||||
nice.level = -11
|
||||
rt.prio = 88
|
||||
#rt.time.soft = -1
|
||||
#rt.time.hard = -1
|
||||
}
|
||||
flags = [ ifexists nofail ]
|
||||
}
|
||||
|
||||
# The native communication protocol.
|
||||
{ name = libpipewire-module-protocol-native }
|
||||
|
||||
# The profile module. Allows application to access profiler
|
||||
# and performance data. It provides an interface that is used
|
||||
# by pw-top and pw-profiler.
|
||||
{ name = libpipewire-module-profiler }
|
||||
|
||||
# Allows applications to create metadata objects. It creates
|
||||
# a factory for Metadata objects.
|
||||
{ name = libpipewire-module-metadata }
|
||||
|
||||
# Creates a factory for making nodes that run in the
|
||||
# context of the PipeWire server.
|
||||
{ name = libpipewire-module-spa-node-factory }
|
||||
|
||||
{ name = libpipewire-module-spa-device-factory }
|
||||
|
||||
# Allows creating nodes that run in the context of the
|
||||
# client. Is used by all clients that want to provide
|
||||
# data to PipeWire.
|
||||
{ name = libpipewire-module-client-node }
|
||||
|
||||
# The access module can perform access checks and block
|
||||
# new clients.
|
||||
{ name = libpipewire-module-access
|
||||
args = {
|
||||
# access.allowed to list an array of paths of allowed
|
||||
# apps.
|
||||
#access.allowed = [
|
||||
# /usr/bin/pipewire-media-session
|
||||
#]
|
||||
|
||||
# An array of rejected paths.
|
||||
#access.rejected = [ ]
|
||||
|
||||
# An array of paths with restricted access.
|
||||
#access.restricted = [ ]
|
||||
|
||||
# Anything not in the above lists gets assigned the
|
||||
# access.force permission.
|
||||
#access.force = flatpak
|
||||
}
|
||||
}
|
||||
|
||||
# Makes a factory for wrapping nodes in an adapter with a
|
||||
# converter and resampler.
|
||||
{ name = libpipewire-module-adapter }
|
||||
|
||||
# Makes a factory for creating links between ports.
|
||||
{ name = libpipewire-module-link-factory }
|
||||
|
||||
{ name = libpipewire-module-protocol-pulse
|
||||
condition = [ { minimal.use-pulse = true } ]
|
||||
}
|
||||
]
|
||||
|
||||
pulse.properties = {
|
||||
# the addresses this server listens on
|
||||
server.address = [
|
||||
"unix:native"
|
||||
]
|
||||
}
|
||||
|
||||
stream.properties = {
|
||||
adapter.auto-port-config = { mode = dsp }
|
||||
}
|
||||
|
||||
context.objects = [
|
||||
#{ factory = <factory-name>
|
||||
# ( args = { <key> = <value> ... } )
|
||||
# ( flags = [ ( nofail ) ] )
|
||||
# ( condition = [ { <key> = <value> ... } ... ] )
|
||||
#}
|
||||
#
|
||||
# Creates an object from a PipeWire factory with the given parameters.
|
||||
# If nofail is given, errors are ignored (and no object is created).
|
||||
#
|
||||
#{ factory = spa-node-factory args = { factory.name = videotestsrc node.name = videotestsrc node.description = videotestsrc node.param.Props = { patternType = 1 } } }
|
||||
#{ factory = spa-device-factory args = { factory.name = api.jack.device foo=bar } flags = [ nofail ] }
|
||||
#{ factory = spa-device-factory args = { factory.name = api.alsa.enum.udev } }
|
||||
#{ factory = spa-node-factory args = { factory.name = api.alsa.seq.bridge node.name = Internal-MIDI-Bridge } }
|
||||
#{ factory = adapter args = { factory.name = audiotestsrc node.name = my-test node.description = audiotestsrc node.param.Props = { live = false } } }
|
||||
#{ factory = spa-node-factory args = { factory.name = api.vulkan.compute.source node.name = my-compute-source } }
|
||||
|
||||
# Make a default metadata store
|
||||
{ factory = metadata
|
||||
args = {
|
||||
metadata.name = default
|
||||
# metadata.values = [
|
||||
# { key = default.audio.sink value = { name = somesink } }
|
||||
# { key = default.audio.source value = { name = somesource } }
|
||||
# ]
|
||||
}
|
||||
}
|
||||
|
||||
# A default dummy driver. This handles nodes marked with the "node.always-process"
|
||||
# property when no other driver is currently active. JACK clients need this.
|
||||
{ factory = spa-node-factory
|
||||
args = {
|
||||
factory.name = support.node.driver
|
||||
node.name = Dummy-Driver
|
||||
node.group = pipewire.dummy
|
||||
priority.driver = 20000
|
||||
}
|
||||
}
|
||||
{ factory = spa-node-factory
|
||||
args = {
|
||||
factory.name = support.node.driver
|
||||
node.name = Freewheel-Driver
|
||||
priority.driver = 19000
|
||||
node.group = pipewire.freewheel
|
||||
node.freewheel = true
|
||||
#freewheel.wait = 10
|
||||
}
|
||||
}
|
||||
|
||||
# This creates a ALSA udev device that will enumerate all
|
||||
# ALSA devices. Because it is using ACP and has the auto-profile
|
||||
# property set, this will enable a profile and create associated
|
||||
# nodes, which will be automatically configured to their best
|
||||
# configuration with the auto-port-config settings.
|
||||
# Extra node and device params can be given with node.param and
|
||||
# device.param prefixes.
|
||||
{ factory = spa-device-factory
|
||||
args = {
|
||||
factory.name = api.alsa.enum.udev
|
||||
alsa.use-acp = true
|
||||
device.object.properties = {
|
||||
api.acp.auto-profile = true
|
||||
api.acp.auto-port = true
|
||||
device.object.properties = {
|
||||
node.adapter = audio.adapt
|
||||
resample.disable = false
|
||||
adapter.auto-port-config = {
|
||||
mode = dsp
|
||||
monitor = false
|
||||
control = false
|
||||
position = preserve # unknown, aux
|
||||
}
|
||||
#node.param.Props = {
|
||||
# channelVolumes = [ 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.6 ]
|
||||
#}
|
||||
}
|
||||
#device.param.Profile = {
|
||||
# #idx = 0
|
||||
# name = pro-audio
|
||||
#}
|
||||
}
|
||||
}
|
||||
condition = [ { minimal.use-udev = true } ]
|
||||
}
|
||||
|
||||
# This creates a single PCM source device for the given
|
||||
# alsa device path hw:0. You can change source to sink
|
||||
# to make a sink in the same way.
|
||||
{ factory = adapter
|
||||
args = {
|
||||
factory.name = api.alsa.pcm.source
|
||||
node.name = "system"
|
||||
node.description = "system"
|
||||
media.class = "Audio/Source"
|
||||
api.alsa.path = "hw:4"
|
||||
#api.alsa.period-size = 0
|
||||
#api.alsa.period-num = 0
|
||||
#api.alsa.headroom = 0
|
||||
#api.alsa.start-delay = 0
|
||||
#api.alsa.disable-mmap = false
|
||||
#api.alsa.disable-batch = false
|
||||
#api.alsa.use-chmap = false
|
||||
#api.alsa.multirate = true
|
||||
#latency.internal.rate = 0
|
||||
#latency.internal.ns = 0
|
||||
#clock.name = api.alsa.0
|
||||
node.suspend-on-idle = true
|
||||
#audio.format = "S32"
|
||||
#audio.rate = 48000
|
||||
#audio.allowed-rates = [ ]
|
||||
#audio.channels = 4
|
||||
#audio.position = [ FL FR RL RR ]
|
||||
#resample.quality = 4
|
||||
resample.disable = true
|
||||
#monitor.channel-volumes = false
|
||||
#channelmix.normalize = false
|
||||
#channelmix.mix-lfe = true
|
||||
#channelmix.upmix = true
|
||||
#channelmix.upmix-method = psd # none, simple
|
||||
#channelmix.lfe-cutoff = 150
|
||||
#channelmix.fc-cutoff = 12000
|
||||
#channelmix.rear-delay = 12.0
|
||||
#channelmix.stereo-widen = 0.0
|
||||
#channelmix.hilbert-taps = 0
|
||||
#channelmix.disable = false
|
||||
#dither.noise = 0
|
||||
#node.param.Props = {
|
||||
# params = [
|
||||
# audio.channels 6
|
||||
# ]
|
||||
#}
|
||||
adapter.auto-port-config = {
|
||||
mode = dsp
|
||||
monitor = false
|
||||
control = false
|
||||
position = unknown # aux, preserve
|
||||
}
|
||||
#node.param.PortConfig = {
|
||||
# direction = Output
|
||||
# mode = dsp
|
||||
# format = {
|
||||
# mediaType = audio
|
||||
# mediaSubtype = raw
|
||||
# format = F32
|
||||
# rate = 48000
|
||||
# channels = 4
|
||||
# position = [ FL FR RL RR ]
|
||||
# }
|
||||
#}
|
||||
#node.param.Props = {
|
||||
# channelVolumes = [ 0.5 0.4 0.3 0.5 ]
|
||||
#}
|
||||
}
|
||||
condition = [ { minimal.use-udev = false } ]
|
||||
}
|
||||
{ factory = adapter
|
||||
args = {
|
||||
factory.name = api.alsa.pcm.sink
|
||||
node.name = "system"
|
||||
node.description = "system"
|
||||
media.class = "Audio/Sink"
|
||||
api.alsa.path = "hw:4"
|
||||
#api.alsa.period-size = 0
|
||||
#api.alsa.period-num = 0
|
||||
#api.alsa.headroom = 0
|
||||
#api.alsa.start-delay = 0
|
||||
#api.alsa.disable-mmap = false
|
||||
#api.alsa.disable-batch = false
|
||||
#api.alsa.use-chmap = false
|
||||
#api.alsa.multirate = true
|
||||
#latency.internal.rate = 0
|
||||
#latency.internal.ns = 0
|
||||
#clock.name = api.alsa.0
|
||||
node.suspend-on-idle = true
|
||||
#audio.format = "S32"
|
||||
#audio.rate = 48000
|
||||
#audio.allowed-rates = [ ]
|
||||
#audio.channels = 2
|
||||
#audio.position = "FL,FR"
|
||||
#resample.quality = 4
|
||||
resample.disable = true
|
||||
#channelmix.normalize = false
|
||||
#channelmix.mix-lfe = true
|
||||
#channelmix.upmix = true
|
||||
#channelmix.upmix-method = psd # none, simple
|
||||
#channelmix.lfe-cutoff = 150
|
||||
#channelmix.fc-cutoff = 12000
|
||||
#channelmix.rear-delay = 12.0
|
||||
#channelmix.stereo-widen = 0.0
|
||||
#channelmix.hilbert-taps = 0
|
||||
#channelmix.disable = false
|
||||
#dither.noise = 0
|
||||
#node.param.Props = {
|
||||
# params = [
|
||||
# audio.format S16
|
||||
# ]
|
||||
#}
|
||||
adapter.auto-port-config = {
|
||||
mode = dsp
|
||||
monitor = false
|
||||
control = false
|
||||
position = unknown # aux, preserve
|
||||
}
|
||||
#node.param.PortConfig = {
|
||||
# direction = Input
|
||||
# mode = dsp
|
||||
# monitor = true
|
||||
# format = {
|
||||
# mediaType = audio
|
||||
# mediaSubtype = raw
|
||||
# format = F32
|
||||
# rate = 48000
|
||||
# channels = 4
|
||||
# }
|
||||
#}
|
||||
#node.param.Props = {
|
||||
# channelVolumes = [ 0.5 0.4 0.3 0.5 ]
|
||||
#}
|
||||
}
|
||||
condition = [ { minimal.use-udev = false } ]
|
||||
}
|
||||
# This creates a new Source node. It will have input ports
|
||||
# that you can link, to provide audio for this source.
|
||||
#{ factory = adapter
|
||||
# args = {
|
||||
# factory.name = support.null-audio-sink
|
||||
# node.name = "my-mic"
|
||||
# node.description = "Microphone"
|
||||
# media.class = "Audio/Source/Virtual"
|
||||
# audio.position = "FL,FR"
|
||||
# monitor.passthrough = true
|
||||
# adapter.auto-port-config = {
|
||||
# mode = dsp
|
||||
# monitor = true
|
||||
# position = preserve # unknown, aux, preserve
|
||||
# }
|
||||
# }
|
||||
#}
|
||||
# This creates a new link between the source and the virtual
|
||||
# source ports.
|
||||
#{ factory = link-factory
|
||||
# args = {
|
||||
# link.output.node = system
|
||||
# link.output.port = capture_1
|
||||
# link.input.node = my-mic
|
||||
# link.input.port = input_FL
|
||||
# }
|
||||
#}
|
||||
#{ factory = link-factory
|
||||
# args = {
|
||||
# link.output.node = system
|
||||
# link.output.port = capture_2
|
||||
# link.input.node = my-mic
|
||||
# link.input.port = input_FR
|
||||
# }
|
||||
#}
|
||||
]
|
||||
|
||||
context.exec = [
|
||||
#{ path = <program-name>
|
||||
# ( args = "<arguments>" | [ <arg1> <arg2> ... ] )
|
||||
# ( condition = [ { <key> = <value> ... } ... ] )
|
||||
#}
|
||||
#
|
||||
# Execute the given program with arguments.
|
||||
#
|
||||
# You can optionally start the pulseaudio-server here as well
|
||||
# but it is better to start it as a systemd service.
|
||||
# It can be interesting to start another daemon here that listens
|
||||
# on another address with the -a option (eg. -a tcp:4713).
|
||||
#
|
||||
##{ path = "/usr/bin/pipewire" args = "-c pipewire-pulse.conf" }
|
||||
]
|
||||
|
||||
node.rules = [
|
||||
{ matches = [
|
||||
{
|
||||
# all keys must match the value. ! negates. ~ starts regex.
|
||||
#alsa.card_name = "ICUSBAUDIO7D"
|
||||
#api.alsa.pcm.stream = "playback"
|
||||
}
|
||||
]
|
||||
actions = {
|
||||
update-props = {
|
||||
#node.name = "alsa_playback.ICUSBAUDIO7D"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
device.rules = [
|
||||
{ matches = [
|
||||
{
|
||||
#alsa.card_name = "ICUSBAUDIO7D"
|
||||
}
|
||||
]
|
||||
actions = {
|
||||
update-props = {
|
||||
#device.name = "alsa_card.ICUSBAUDIO7D"
|
||||
#api.acp.auto-profile = false
|
||||
#api.acp.auto-port = false
|
||||
#device.param.Profile = {
|
||||
# #idx = 0
|
||||
# name = off
|
||||
#}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
157
env/.config/pipewire/pipewire-aes67.conf
vendored
Normal file
157
env/.config/pipewire/pipewire-aes67.conf
vendored
Normal file
@@ -0,0 +1,157 @@
|
||||
# AES67 config file for PipeWire version "1.4.2" #
|
||||
#
|
||||
# Copy and edit this file in /etc/pipewire for system-wide changes
|
||||
# or in ~/.config/pipewire for local changes.
|
||||
#
|
||||
# It is also possible to place a file with an updated section in
|
||||
# /etc/pipewire/pipewire-aes67.conf.d/ for system-wide changes or in
|
||||
# ~/.config/pipewire/pipewire-aes67.conf.d/ for local changes.
|
||||
#
|
||||
|
||||
context.properties = {
|
||||
## Configure properties in the system.
|
||||
#mem.warn-mlock = false
|
||||
#mem.allow-mlock = true
|
||||
#mem.mlock-all = false
|
||||
#log.level = 2
|
||||
|
||||
#default.clock.quantum-limit = 8192
|
||||
}
|
||||
|
||||
context.spa-libs = {
|
||||
support.* = support/libspa-support
|
||||
}
|
||||
|
||||
context.objects = [
|
||||
# An example clock reading from /dev/ptp0. You can also specify the network interface name,
|
||||
# pipewire will query the interface for the current active PHC index. Another option is to
|
||||
# sync the ptp clock to CLOCK_TAI and then set clock.id = tai, keep in mind that tai may
|
||||
# also be synced by a NTP client.
|
||||
# The precedence is: device, interface, id
|
||||
{ factory = spa-node-factory
|
||||
args = {
|
||||
factory.name = support.node.driver
|
||||
node.name = PTP0-Driver
|
||||
node.group = pipewire.ptp0
|
||||
# This driver should only be used for network nodes marked with group
|
||||
priority.driver = 100000
|
||||
clock.name = "clock.system.ptp0"
|
||||
### Please select the PTP hardware clock here
|
||||
# Interface name is the preferred method of specifying the PHC
|
||||
clock.interface = "eth0"
|
||||
#clock.device = "/dev/ptp0"
|
||||
#clock.id = tai
|
||||
# Lower this in case of periodic out-of-sync
|
||||
resync.ms = 1.5
|
||||
object.export = true
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
context.modules = [
|
||||
{ name = libpipewire-module-rt
|
||||
args = {
|
||||
nice.level = -11
|
||||
#rt.prio = 83
|
||||
#rt.time.soft = -1
|
||||
#rt.time.hard = -1
|
||||
}
|
||||
flags = [ ifexists nofail ]
|
||||
}
|
||||
{ name = libpipewire-module-protocol-native }
|
||||
{ name = libpipewire-module-client-node }
|
||||
{ name = libpipewire-module-spa-node-factory }
|
||||
{ name = libpipewire-module-adapter }
|
||||
{ name = libpipewire-module-rtp-sap
|
||||
args = {
|
||||
### Please select the interface here
|
||||
local.ifname = eth0
|
||||
sap.ip = 239.255.255.255
|
||||
sap.port = 9875
|
||||
net.ttl = 32
|
||||
net.loop = false
|
||||
# If you use another PTPv2 daemon supporting management
|
||||
# messages over a UNIX socket, specify its path here
|
||||
ptp.management-socket = "/var/run/ptp4lro"
|
||||
|
||||
stream.rules = [
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
rtp.session = "~.*"
|
||||
}
|
||||
]
|
||||
actions = {
|
||||
create-stream = {
|
||||
node.virtual = false
|
||||
media.class = "Audio/Source"
|
||||
device.api = aes67
|
||||
# You can adjust the latency buffering here. Use integer values only
|
||||
sess.latency.msec = 3
|
||||
node.group = pipewire.ptp0
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
sess.sap.announce = true
|
||||
}
|
||||
]
|
||||
actions = {
|
||||
announce-stream = {}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{ name = libpipewire-module-rtp-sink
|
||||
args = {
|
||||
### Please select the interface here
|
||||
local.ifname = eth0
|
||||
### If you want to create multiple output streams, please copy the whole
|
||||
### module-rtp-sink block, but change this multicast IP to another unused
|
||||
### one keeping 239.69.x.x range unless you know you need another one
|
||||
destination.ip = 239.69.150.243
|
||||
destination.port = 5004
|
||||
net.mtu = 1280
|
||||
net.ttl = 32
|
||||
net.loop = false
|
||||
# These should typically be equal
|
||||
# You can customize packet length, but 1 ms should work for every device
|
||||
# Consult receiver documentation to ensure it supports the value you set
|
||||
sess.min-ptime = 1
|
||||
sess.max-ptime = 1
|
||||
### Please change this, especially if you create multiple sinks
|
||||
sess.name = "PipeWire RTP stream"
|
||||
sess.media = "audio"
|
||||
# This property is used if you aren't using ptp4l 4
|
||||
sess.ts-refclk = "ptp=traceable"
|
||||
sess.ts-offset = 0
|
||||
# You can adjust the latency buffering here. Use integer values only
|
||||
sess.latency.msec = 3
|
||||
audio.format = "S24BE"
|
||||
audio.rate = 48000
|
||||
audio.channels = 2
|
||||
# These channel names will be visible both to applications and AES67 receivers
|
||||
node.channel-names = ["CH1", "CH2"]
|
||||
# Uncomment this and comment node.group in send/recv stream.props to allow
|
||||
# separate drivers for the RTP sink and PTP sending (i.e. force rate matching on
|
||||
# the AES67 node rather than other nodes)
|
||||
#aes67.driver-group = "pipewire.ptp0"
|
||||
|
||||
stream.props = {
|
||||
### Please change the sink name, this is necessary when you create multiple sinks
|
||||
node.name = "rtp-sink"
|
||||
media.class = "Audio/Sink"
|
||||
node.virtual = false
|
||||
device.api = aes67
|
||||
sess.sap.announce = true
|
||||
node.always-process = true
|
||||
node.group = pipewire.ptp0
|
||||
rtp.ntp = 0
|
||||
rtp.fetch-ts-refclk = true
|
||||
}
|
||||
}
|
||||
},
|
||||
]
|
||||
80
env/.config/pipewire/pipewire-avb.conf
vendored
Normal file
80
env/.config/pipewire/pipewire-avb.conf
vendored
Normal file
@@ -0,0 +1,80 @@
|
||||
# PulseAudio config file for PipeWire version "1.4.2" #
|
||||
#
|
||||
# Copy and edit this file in /etc/pipewire for system-wide changes
|
||||
# or in ~/.config/pipewire for local changes.
|
||||
#
|
||||
# It is also possible to place a file with an updated section in
|
||||
# /etc/pipewire/pipewire-pulse.conf.d/ for system-wide changes or in
|
||||
# ~/.config/pipewire/pipewire-pulse.conf.d/ for local changes.
|
||||
#
|
||||
|
||||
context.properties = {
|
||||
## Configure properties in the system.
|
||||
#mem.warn-mlock = false
|
||||
#mem.allow-mlock = true
|
||||
#mem.mlock-all = false
|
||||
#log.level = 2
|
||||
|
||||
#default.clock.quantum-limit = 8192
|
||||
}
|
||||
|
||||
context.spa-libs = {
|
||||
audio.convert.* = audioconvert/libspa-audioconvert
|
||||
support.* = support/libspa-support
|
||||
}
|
||||
|
||||
context.modules = [
|
||||
{ name = libpipewire-module-rt
|
||||
args = {
|
||||
nice.level = -11
|
||||
#rt.prio = 83
|
||||
#rt.time.soft = -1
|
||||
#rt.time.hard = -1
|
||||
}
|
||||
flags = [ ifexists nofail ]
|
||||
}
|
||||
{ name = libpipewire-module-protocol-native }
|
||||
{ name = libpipewire-module-client-node }
|
||||
{ name = libpipewire-module-adapter }
|
||||
{ name = libpipewire-module-avb
|
||||
args = {
|
||||
# contents of avb.properties can also be placed here
|
||||
# to have config per server.
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
# Extra modules can be loaded here. Setup in default.pa can be moved here
|
||||
context.exec = [
|
||||
#{ path = "pactl" args = "load-module module-always-sink" }
|
||||
]
|
||||
|
||||
stream.properties = {
|
||||
#node.latency = 1024/48000
|
||||
#node.autoconnect = true
|
||||
#resample.quality = 4
|
||||
#channelmix.normalize = false
|
||||
#channelmix.mix-lfe = true
|
||||
#channelmix.upmix = true
|
||||
#channelmix.lfe-cutoff = 120
|
||||
#channelmix.fc-cutoff = 6000
|
||||
#channelmix.rear-delay = 12.0
|
||||
#channelmix.stereo-widen = 0.1
|
||||
#channelmix.hilbert-taps = 0
|
||||
}
|
||||
|
||||
avb.properties = {
|
||||
# the addresses this server listens on
|
||||
#ifname = "eth0.2"
|
||||
ifname = "enp3s0"
|
||||
}
|
||||
|
||||
avb.properties.rules = [
|
||||
{ matches = [ { cpu.vm.name = !null } ]
|
||||
actions = {
|
||||
update-props = {
|
||||
# These overrides are only applied when running in a vm.
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
187
env/.config/pipewire/pipewire-pulse.conf
vendored
Normal file
187
env/.config/pipewire/pipewire-pulse.conf
vendored
Normal file
@@ -0,0 +1,187 @@
|
||||
# PulseAudio config file for PipeWire version "1.4.2" #
|
||||
#
|
||||
# Copy and edit this file in /etc/pipewire for system-wide changes
|
||||
# or in ~/.config/pipewire for local changes.
|
||||
#
|
||||
# It is also possible to place a file with an updated section in
|
||||
# /etc/pipewire/pipewire-pulse.conf.d/ for system-wide changes or in
|
||||
# ~/.config/pipewire/pipewire-pulse.conf.d/ for local changes.
|
||||
#
|
||||
|
||||
context.properties = {
|
||||
## Configure properties in the system.
|
||||
#mem.warn-mlock = false
|
||||
#mem.allow-mlock = true
|
||||
#mem.mlock-all = false
|
||||
#log.level = 2
|
||||
|
||||
#default.clock.quantum-limit = 8192
|
||||
}
|
||||
|
||||
context.spa-libs = {
|
||||
audio.convert.* = audioconvert/libspa-audioconvert
|
||||
support.* = support/libspa-support
|
||||
}
|
||||
|
||||
context.modules = [
|
||||
{ name = libpipewire-module-rt
|
||||
args = {
|
||||
nice.level = -11
|
||||
#rt.prio = 83
|
||||
#rt.time.soft = -1
|
||||
#rt.time.hard = -1
|
||||
#uclamp.min = 0
|
||||
#uclamp.max = 1024
|
||||
}
|
||||
flags = [ ifexists nofail ]
|
||||
}
|
||||
{ name = libpipewire-module-protocol-native }
|
||||
{ name = libpipewire-module-client-node }
|
||||
{ name = libpipewire-module-adapter }
|
||||
{ name = libpipewire-module-metadata }
|
||||
|
||||
{ name = libpipewire-module-protocol-pulse
|
||||
args = {
|
||||
# contents of pulse.properties can also be placed here
|
||||
# to have config per server.
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
# Extra scripts can be started here. Setup in default.pa can be moved in
|
||||
# a script or in pulse.cmd below
|
||||
context.exec = [
|
||||
#{ path = "pactl" args = "load-module module-always-sink" }
|
||||
#{ path = "pactl" args = "upload-sample my-sample.wav my-sample" }
|
||||
#{ path = "/usr/bin/sh" args = "~/.config/pipewire/default.pw" }
|
||||
]
|
||||
|
||||
# Extra commands can be executed here.
|
||||
# load-module : loads a module with args and flags
|
||||
# args = "<module-name> <module-args>"
|
||||
# ( flags = [ nofail ] )
|
||||
# ( condition = [ { <key1> = <value1>, ... } ... ] )
|
||||
# conditions will check the pulse.properties key/values.
|
||||
pulse.cmd = [
|
||||
{ cmd = "load-module" args = "module-always-sink" flags = [ ]
|
||||
condition = [ { pulse.cmd.always-sink = !false } ] }
|
||||
{ cmd = "load-module" args = "module-device-manager" flags = [ ]
|
||||
condition = [ { pulse.cmd.device-manager = !false } ] }
|
||||
{ cmd = "load-module" args = "module-device-restore" flags = [ ]
|
||||
condition = [ { pulse.cmd.device-restore = !false } ] }
|
||||
{ cmd = "load-module" args = "module-stream-restore" flags = [ ]
|
||||
condition = [ { pulse.cmd.stream-restore = !false } ] }
|
||||
#{ cmd = "load-module" args = "module-switch-on-connect" }
|
||||
#{ cmd = "load-module" args = "module-gsettings" flags = [ nofail ] }
|
||||
]
|
||||
|
||||
stream.properties = {
|
||||
#node.latency = 1024/48000
|
||||
#node.autoconnect = true
|
||||
#resample.quality = 4
|
||||
#channelmix.normalize = false
|
||||
#channelmix.mix-lfe = true
|
||||
#channelmix.upmix = true
|
||||
#channelmix.upmix-method = psd # none, simple
|
||||
#channelmix.lfe-cutoff = 150
|
||||
#channelmix.fc-cutoff = 12000
|
||||
#channelmix.rear-delay = 12.0
|
||||
#channelmix.stereo-widen = 0.0
|
||||
#channelmix.hilbert-taps = 0
|
||||
#dither.noise = 0
|
||||
}
|
||||
|
||||
pulse.properties = {
|
||||
# the addresses this server listens on
|
||||
server.address = [
|
||||
"unix:native"
|
||||
#"unix:/tmp/something" # absolute paths may be used
|
||||
#"tcp:4713" # IPv4 and IPv6 on all addresses
|
||||
#"tcp:[::]:9999" # IPv6 on all addresses
|
||||
#"tcp:127.0.0.1:8888" # IPv4 on a single address
|
||||
#
|
||||
#{ address = "tcp:4713" # address
|
||||
# max-clients = 64 # maximum number of clients
|
||||
# listen-backlog = 32 # backlog in the server listen queue
|
||||
# client.access = "restricted" # permissions for clients
|
||||
#}
|
||||
]
|
||||
#server.dbus-name = "org.pulseaudio.Server"
|
||||
#pulse.allow-module-loading = true
|
||||
#pulse.min.req = 128/48000 # 2.7ms
|
||||
#pulse.default.req = 960/48000 # 20 milliseconds
|
||||
#pulse.min.frag = 128/48000 # 2.7ms
|
||||
#pulse.default.frag = 96000/48000 # 2 seconds
|
||||
#pulse.default.tlength = 96000/48000 # 2 seconds
|
||||
#pulse.min.quantum = 128/48000 # 2.7ms
|
||||
#pulse.idle.timeout = 0 # don't pause after underruns
|
||||
#pulse.default.format = F32
|
||||
#pulse.default.position = [ FL FR ]
|
||||
}
|
||||
|
||||
pulse.properties.rules = [
|
||||
{ matches = [ { cpu.vm.name = !null } ]
|
||||
actions = {
|
||||
update-props = {
|
||||
# These overrides are only applied when running in a vm.
|
||||
pulse.min.quantum = 1024/48000 # 22ms
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
# client/stream specific properties
|
||||
pulse.rules = [
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
# all keys must match the value. ! negates. ~ starts regex.
|
||||
#client.name = "Firefox"
|
||||
#application.process.binary = "teams"
|
||||
#application.name = "~speech-dispatcher.*"
|
||||
}
|
||||
]
|
||||
actions = {
|
||||
update-props = {
|
||||
#node.latency = 512/48000
|
||||
}
|
||||
# Possible quirks:"
|
||||
# force-s16-info forces sink and source info as S16 format
|
||||
# remove-capture-dont-move removes the capture DONT_MOVE flag
|
||||
# block-source-volume blocks updates to source volume
|
||||
# block-sink-volume blocks updates to sink volume
|
||||
#quirks = [ ]
|
||||
}
|
||||
}
|
||||
{
|
||||
# skype does not want to use devices that don't have an S16 sample format.
|
||||
matches = [
|
||||
{ application.process.binary = "teams" }
|
||||
{ application.process.binary = "teams-insiders" }
|
||||
{ application.process.binary = "teams-for-linux" }
|
||||
{ application.process.binary = "skypeforlinux" }
|
||||
]
|
||||
actions = { quirks = [ force-s16-info ] }
|
||||
}
|
||||
{
|
||||
# firefox marks the capture streams as don't move and then they
|
||||
# can't be moved with pavucontrol or other tools.
|
||||
matches = [ { application.process.binary = "firefox" } ]
|
||||
actions = { quirks = [ remove-capture-dont-move ] }
|
||||
}
|
||||
{
|
||||
# speech dispatcher asks for too small latency and then underruns.
|
||||
matches = [ { application.name = "~speech-dispatcher.*" } ]
|
||||
actions = {
|
||||
update-props = {
|
||||
pulse.min.req = 512/48000 # 10.6ms
|
||||
pulse.min.quantum = 512/48000 # 10.6ms
|
||||
pulse.idle.timeout = 5 # pause after 5 seconds of underrun
|
||||
}
|
||||
}
|
||||
}
|
||||
#{
|
||||
# matches = [ { application.process.binary = "Discord" } ]
|
||||
# actions = { quirks = [ block-source-volume ] }
|
||||
#}
|
||||
]
|
||||
371
env/.config/pipewire/pipewire.conf
vendored
Normal file
371
env/.config/pipewire/pipewire.conf
vendored
Normal file
@@ -0,0 +1,371 @@
|
||||
# Daemon config file for PipeWire version "1.4.2" #
|
||||
#
|
||||
# Copy and edit this file in /etc/pipewire for system-wide changes
|
||||
# or in ~/.config/pipewire for local changes.
|
||||
#
|
||||
# It is also possible to place a file with an updated section in
|
||||
# /etc/pipewire/pipewire.conf.d/ for system-wide changes or in
|
||||
# ~/.config/pipewire/pipewire.conf.d/ for local changes.
|
||||
#
|
||||
|
||||
context.properties = {
|
||||
## Configure properties in the system.
|
||||
#library.name.system = support/libspa-support
|
||||
#context.data-loop.library.name.system = support/libspa-support
|
||||
#support.dbus = true
|
||||
#link.max-buffers = 64
|
||||
link.max-buffers = 16 # version < 3 clients can't handle more
|
||||
#mem.warn-mlock = false
|
||||
#mem.allow-mlock = true
|
||||
#mem.mlock-all = false
|
||||
#clock.power-of-two-quantum = true
|
||||
#log.level = 2
|
||||
#cpu.zero.denormals = false
|
||||
|
||||
#loop.rt-prio = -1 # -1 = use module-rt prio, 0 disable rt
|
||||
#loop.class = data.rt
|
||||
#thread.affinity = [ 0 1 ] # optional array of CPUs
|
||||
#context.num-data-loops = 1 # -1 = num-cpus, 0 = no data loops
|
||||
#
|
||||
#context.data-loops = [
|
||||
# { loop.rt-prio = -1
|
||||
# loop.class = [ data.rt audio.rt ]
|
||||
# #library.name.system = support/libspa-support
|
||||
# thread.name = data-loop.0
|
||||
# #thread.affinity = [ 0 1 ] # optional array of CPUs
|
||||
# }
|
||||
#]
|
||||
|
||||
core.daemon = true # listening for socket connections
|
||||
core.name = pipewire-0 # core name and socket name
|
||||
|
||||
## Properties for the DSP configuration.
|
||||
default.clock.rate = 192000
|
||||
#default.clock.allowed-rates = [ 48000 ]
|
||||
#default.clock.quantum = 1024
|
||||
#default.clock.min-quantum = 32
|
||||
#default.clock.max-quantum = 2048
|
||||
#default.clock.quantum-limit = 8192
|
||||
#default.clock.quantum-floor = 4
|
||||
#default.video.width = 640
|
||||
#default.video.height = 480
|
||||
#default.video.rate.num = 25
|
||||
#default.video.rate.denom = 1
|
||||
#
|
||||
#settings.check-quantum = false
|
||||
#settings.check-rate = false
|
||||
}
|
||||
|
||||
context.properties.rules = [
|
||||
{ matches = [ { cpu.vm.name = !null } ]
|
||||
actions = {
|
||||
update-props = {
|
||||
# These overrides are only applied when running in a vm.
|
||||
default.clock.min-quantum = 1024
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
context.spa-libs = {
|
||||
#<factory-name regex> = <library-name>
|
||||
#
|
||||
# Used to find spa factory names. It maps an spa factory name
|
||||
# regular expression to a library name that should contain
|
||||
# that factory.
|
||||
#
|
||||
audio.convert.* = audioconvert/libspa-audioconvert
|
||||
avb.* = avb/libspa-avb
|
||||
api.alsa.* = alsa/libspa-alsa
|
||||
api.v4l2.* = v4l2/libspa-v4l2
|
||||
api.libcamera.* = libcamera/libspa-libcamera
|
||||
api.bluez5.* = bluez5/libspa-bluez5
|
||||
api.vulkan.* = vulkan/libspa-vulkan
|
||||
api.jack.* = jack/libspa-jack
|
||||
support.* = support/libspa-support
|
||||
video.convert.* = videoconvert/libspa-videoconvert
|
||||
#filter.graph = filter-graph/libspa-filter-graph
|
||||
#videotestsrc = videotestsrc/libspa-videotestsrc
|
||||
#audiotestsrc = audiotestsrc/libspa-audiotestsrc
|
||||
}
|
||||
|
||||
context.modules = [
|
||||
#{ name = <module-name>
|
||||
# ( args = { <key> = <value> ... } )
|
||||
# ( flags = [ ( ifexists ) ( nofail ) ] )
|
||||
# ( condition = [ { <key> = <value> ... } ... ] )
|
||||
#}
|
||||
#
|
||||
# Loads a module with the given parameters.
|
||||
# If ifexists is given, the module is ignored when it is not found.
|
||||
# If nofail is given, module initialization failures are ignored.
|
||||
# If condition is given, the module is loaded only when the context
|
||||
# properties all match the match rules.
|
||||
#
|
||||
|
||||
# Uses realtime scheduling to boost the audio thread priorities. This uses
|
||||
# RTKit if the user doesn't have permission to use regular realtime
|
||||
# scheduling. You can also clamp utilisation values to improve scheduling
|
||||
# on embedded and heterogeneous systems, e.g. Arm big.LITTLE devices.
|
||||
# use module.rt.args = { ... } to override the arguments.
|
||||
{ name = libpipewire-module-rt
|
||||
args = {
|
||||
nice.level = -11
|
||||
rt.prio = 88
|
||||
#rt.time.soft = -1
|
||||
#rt.time.hard = -1
|
||||
#uclamp.min = 0
|
||||
#uclamp.max = 1024
|
||||
}
|
||||
flags = [ ifexists nofail ]
|
||||
condition = [ { module.rt = !false } ]
|
||||
}
|
||||
|
||||
# The native communication protocol.
|
||||
{ name = libpipewire-module-protocol-native
|
||||
args = {
|
||||
# List of server Unix sockets, and optionally permissions
|
||||
#sockets = [ { name = "pipewire-0" }, { name = "pipewire-0-manager" } ]
|
||||
}
|
||||
}
|
||||
|
||||
# The profile module. Allows application to access profiler
|
||||
# and performance data. It provides an interface that is used
|
||||
# by pw-top and pw-profiler.
|
||||
# use module.profiler.args = { ... } to override the arguments.
|
||||
{ name = libpipewire-module-profiler
|
||||
args = {
|
||||
#profile.interval.ms = 0
|
||||
}
|
||||
condition = [ { module.profiler = !false } ]
|
||||
}
|
||||
|
||||
# Allows applications to create metadata objects. It creates
|
||||
# a factory for Metadata objects.
|
||||
{ name = libpipewire-module-metadata
|
||||
condition = [ { module.metadata = !false } ]
|
||||
}
|
||||
|
||||
# Creates a factory for making devices that run in the
|
||||
# context of the PipeWire server.
|
||||
{ name = libpipewire-module-spa-device-factory
|
||||
condition = [ { module.spa-device-factory = !false } ]
|
||||
}
|
||||
|
||||
# Creates a factory for making nodes that run in the
|
||||
# context of the PipeWire server.
|
||||
{ name = libpipewire-module-spa-node-factory
|
||||
condition = [ { module.spa-node-factory = !false } ]
|
||||
}
|
||||
|
||||
# Allows creating nodes that run in the context of the
|
||||
# client. Is used by all clients that want to provide
|
||||
# data to PipeWire.
|
||||
{ name = libpipewire-module-client-node
|
||||
condition = [ { module.client-node = !false } ]
|
||||
}
|
||||
|
||||
# Allows creating devices that run in the context of the
|
||||
# client. Is used by the session manager.
|
||||
{ name = libpipewire-module-client-device
|
||||
condition = [ { module.client-device = !false } ]
|
||||
}
|
||||
|
||||
# The portal module monitors the PID of the portal process
|
||||
# and tags connections with the same PID as portal
|
||||
# connections.
|
||||
{ name = libpipewire-module-portal
|
||||
flags = [ ifexists nofail ]
|
||||
condition = [ { module.portal = !false } ]
|
||||
}
|
||||
|
||||
# The access module can perform access checks and block
|
||||
# new clients.
|
||||
{ name = libpipewire-module-access
|
||||
args = {
|
||||
# Socket-specific access permissions
|
||||
#access.socket = { pipewire-0 = "default", pipewire-0-manager = "unrestricted" }
|
||||
|
||||
# Deprecated legacy mode (not socket-based),
|
||||
# for now enabled by default if access.socket is not specified
|
||||
#access.legacy = true
|
||||
}
|
||||
condition = [ { module.access = !false } ]
|
||||
}
|
||||
|
||||
# Makes a factory for wrapping nodes in an adapter with a
|
||||
# converter and resampler.
|
||||
{ name = libpipewire-module-adapter
|
||||
condition = [ { module.adapter = !false } ]
|
||||
}
|
||||
|
||||
# Makes a factory for creating links between ports.
|
||||
# use module.link-factory.args = { ... } to override the arguments.
|
||||
{ name = libpipewire-module-link-factory
|
||||
args = {
|
||||
#allow.link.passive = false
|
||||
}
|
||||
condition = [ { module.link-factory = !false } ]
|
||||
}
|
||||
|
||||
# Provides factories to make session manager objects.
|
||||
{ name = libpipewire-module-session-manager
|
||||
condition = [ { module.session-manager = !false } ]
|
||||
}
|
||||
|
||||
# Use libcanberra to play X11 Bell
|
||||
{ name = libpipewire-module-x11-bell
|
||||
args = {
|
||||
#sink.name = "@DEFAULT_SINK@"
|
||||
#sample.name = "bell-window-system"
|
||||
#x11.display = null
|
||||
#x11.xauthority = null
|
||||
}
|
||||
flags = [ ifexists nofail ]
|
||||
condition = [ { module.x11.bell = !false } ]
|
||||
}
|
||||
# The JACK DBus detection module. When jackdbus is started, this
|
||||
# will automatically make PipeWire become a JACK client.
|
||||
# use module.jackdbus-detect.args = { ... } to override the arguments.
|
||||
{ name = libpipewire-module-jackdbus-detect
|
||||
args = {
|
||||
#jack.library = libjack.so.0
|
||||
#jack.server = null
|
||||
#jack.client-name = PipeWire
|
||||
#jack.connect = true
|
||||
#tunnel.mode = duplex # source|sink|duplex
|
||||
source.props = {
|
||||
#audio.channels = 2
|
||||
#midi.ports = 1
|
||||
#audio.position = [ FL FR ]
|
||||
# extra sink properties
|
||||
}
|
||||
sink.props = {
|
||||
#audio.channels = 2
|
||||
#midi.ports = 1
|
||||
#audio.position = [ FL FR ]
|
||||
# extra sink properties
|
||||
}
|
||||
}
|
||||
flags = [ ifexists nofail ]
|
||||
condition = [ { module.jackdbus-detect = !false } ]
|
||||
}
|
||||
]
|
||||
|
||||
context.objects = [
|
||||
#{ factory = <factory-name>
|
||||
# ( args = { <key> = <value> ... } )
|
||||
# ( flags = [ ( nofail ) ] )
|
||||
# ( condition = [ { <key> = <value> ... } ... ] )
|
||||
#}
|
||||
#
|
||||
# Creates an object from a PipeWire factory with the given parameters.
|
||||
# If nofail is given, errors are ignored (and no object is created).
|
||||
# If condition is given, the object is created only when the context properties
|
||||
# all match the match rules.
|
||||
#
|
||||
#{ factory = spa-node-factory args = { factory.name = videotestsrc node.name = videotestsrc node.description = videotestsrc node.param.Props = { patternType = 1 } } }
|
||||
#{ factory = spa-device-factory args = { factory.name = api.jack.device foo=bar } flags = [ nofail ] }
|
||||
#{ factory = spa-device-factory args = { factory.name = api.alsa.enum.udev } }
|
||||
#{ factory = spa-node-factory args = { factory.name = api.alsa.seq.bridge node.name = Internal-MIDI-Bridge } }
|
||||
#{ factory = adapter args = { factory.name = audiotestsrc node.name = my-test node.description = audiotestsrc node.param.Props = { live = false }} }
|
||||
#{ factory = spa-node-factory args = { factory.name = api.vulkan.compute.source node.name = my-compute-source } }
|
||||
|
||||
# A default dummy driver. This handles nodes marked with the "node.always-process"
|
||||
# property when no other driver is currently active. JACK clients need this.
|
||||
{ factory = spa-node-factory
|
||||
args = {
|
||||
factory.name = support.node.driver
|
||||
node.name = Dummy-Driver
|
||||
node.group = pipewire.dummy
|
||||
node.sync-group = sync.dummy
|
||||
priority.driver = 200000
|
||||
#clock.id = monotonic # realtime | tai | monotonic-raw | boottime
|
||||
#clock.name = "clock.system.monotonic"
|
||||
}
|
||||
condition = [ { factory.dummy-driver = !false } ]
|
||||
}
|
||||
{ factory = spa-node-factory
|
||||
args = {
|
||||
factory.name = support.node.driver
|
||||
node.name = Freewheel-Driver
|
||||
priority.driver = 190000
|
||||
node.group = pipewire.freewheel
|
||||
node.sync-group = sync.dummy
|
||||
node.freewheel = true
|
||||
#freewheel.wait = 10
|
||||
}
|
||||
condition = [ { factory.freewheel-driver = !false } ]
|
||||
}
|
||||
|
||||
# This creates a new Source node. It will have input ports
|
||||
# that you can link, to provide audio for this source.
|
||||
#{ factory = adapter
|
||||
# args = {
|
||||
# factory.name = support.null-audio-sink
|
||||
# node.name = "my-mic"
|
||||
# node.description = "Microphone"
|
||||
# media.class = "Audio/Source/Virtual"
|
||||
# audio.position = "FL,FR"
|
||||
# monitor.passthrough = true
|
||||
# }
|
||||
#}
|
||||
|
||||
# This creates a single PCM source device for the given
|
||||
# alsa device path hw:0. You can change source to sink
|
||||
# to make a sink in the same way.
|
||||
#{ factory = adapter
|
||||
# args = {
|
||||
# factory.name = api.alsa.pcm.source
|
||||
# node.name = "alsa-source"
|
||||
# node.description = "PCM Source"
|
||||
# media.class = "Audio/Source"
|
||||
# api.alsa.path = "hw:0"
|
||||
# api.alsa.period-size = 1024
|
||||
# api.alsa.headroom = 0
|
||||
# api.alsa.disable-mmap = false
|
||||
# api.alsa.disable-batch = false
|
||||
# audio.format = "S16LE"
|
||||
# audio.rate = 48000
|
||||
# audio.channels = 2
|
||||
# audio.position = "FL,FR"
|
||||
# }
|
||||
#}
|
||||
|
||||
# Use the metadata factory to create metadata and some default values.
|
||||
#{ factory = metadata
|
||||
# args = {
|
||||
# metadata.name = my-metadata
|
||||
# metadata.values = [
|
||||
# { key = default.audio.sink value = { name = somesink } }
|
||||
# { key = default.audio.source value = { name = somesource } }
|
||||
# ]
|
||||
# }
|
||||
#}
|
||||
]
|
||||
|
||||
context.exec = [
|
||||
#{ path = <program-name>
|
||||
# ( args = "<arguments>" | [ <arg1> <arg2> ... ] )
|
||||
# ( condition = [ { <key> = <value> ... } ... ] )
|
||||
#}
|
||||
#
|
||||
# Execute the given program with arguments.
|
||||
# If condition is given, the program is executed only when the context
|
||||
# properties all match the match rules.
|
||||
#
|
||||
# You can optionally start the session manager here,
|
||||
# but it is better to start it as a systemd service.
|
||||
# Run the session manager with -h for options.
|
||||
#
|
||||
#{ path = "/usr/bin/pipewire-media-session" args = ""
|
||||
# condition = [ { exec.session-manager = !false } ] }
|
||||
#
|
||||
# You can optionally start the pulseaudio-server here as well
|
||||
# but it is better to start it as a systemd service.
|
||||
# It can be interesting to start another daemon here that listens
|
||||
# on another address with the -a option (eg. -a tcp:4713).
|
||||
#
|
||||
#{ path = "/usr/bin/pipewire" args = [ "-c" "pipewire-pulse.conf" ]
|
||||
# condition = [ { exec.pipewire-pulse = !false } ] }
|
||||
]
|
||||
157
env/.config/rmpc/config.ron
vendored
Normal file
157
env/.config/rmpc/config.ron
vendored
Normal file
@@ -0,0 +1,157 @@
|
||||
#![enable(implicit_some)]
|
||||
#![enable(unwrap_newtypes)]
|
||||
#![enable(unwrap_variant_newtypes)]
|
||||
(
|
||||
address: "127.0.0.1:6600",
|
||||
password: None,
|
||||
theme: Some("theme"),
|
||||
cache_dir: None,
|
||||
on_song_change: None,
|
||||
volume_step: 5,
|
||||
max_fps: 30,
|
||||
scrolloff: 0,
|
||||
wrap_navigation: false,
|
||||
enable_mouse: true,
|
||||
enable_config_hot_reload: true,
|
||||
status_update_interval_ms: 1000,
|
||||
rewind_to_start_sec: None,
|
||||
reflect_changes_to_playlist: false,
|
||||
select_current_song_on_change: false,
|
||||
browser_song_sort: [Disc, Track, Artist, Title],
|
||||
directories_sort: SortFormat(group_by_type: true, reverse: false),
|
||||
album_art: (
|
||||
method: Auto,
|
||||
max_size_px: (width: 1200, height: 1200),
|
||||
disabled_protocols: ["http://", "https://"],
|
||||
vertical_align: Center,
|
||||
horizontal_align: Center,
|
||||
),
|
||||
keybinds: (
|
||||
global: {
|
||||
":": CommandMode,
|
||||
",": VolumeDown,
|
||||
"s": Stop,
|
||||
".": VolumeUp,
|
||||
"<Tab>": NextTab,
|
||||
"<S-Tab>": PreviousTab,
|
||||
"1": SwitchToTab("Queue"),
|
||||
"2": SwitchToTab("Directories"),
|
||||
"3": SwitchToTab("Artists"),
|
||||
"4": SwitchToTab("Album Artists"),
|
||||
"5": SwitchToTab("Albums"),
|
||||
"6": SwitchToTab("Playlists"),
|
||||
"7": SwitchToTab("Search"),
|
||||
"q": Quit,
|
||||
">": NextTrack,
|
||||
"p": TogglePause,
|
||||
"<": PreviousTrack,
|
||||
"f": SeekForward,
|
||||
"z": ToggleRepeat,
|
||||
"x": ToggleRandom,
|
||||
"c": ToggleConsume,
|
||||
"v": ToggleSingle,
|
||||
"b": SeekBack,
|
||||
"~": ShowHelp,
|
||||
"u": Update,
|
||||
"U": Rescan,
|
||||
"I": ShowCurrentSongInfo,
|
||||
"O": ShowOutputs,
|
||||
"P": ShowDecoders,
|
||||
"R": AddRandom,
|
||||
},
|
||||
navigation: {
|
||||
"k": Up,
|
||||
"j": Down,
|
||||
"h": Left,
|
||||
"l": Right,
|
||||
"<Up>": Up,
|
||||
"<Down>": Down,
|
||||
"<Left>": Left,
|
||||
"<Right>": Right,
|
||||
"<C-k>": PaneUp,
|
||||
"<C-j>": PaneDown,
|
||||
"<C-h>": PaneLeft,
|
||||
"<C-l>": PaneRight,
|
||||
"<C-u>": UpHalf,
|
||||
"N": PreviousResult,
|
||||
"a": Add,
|
||||
"A": AddAll,
|
||||
"r": Rename,
|
||||
"n": NextResult,
|
||||
"g": Top,
|
||||
"<Space>": Select,
|
||||
"<C-Space>": InvertSelection,
|
||||
"G": Bottom,
|
||||
"<CR>": Confirm,
|
||||
"i": FocusInput,
|
||||
"J": MoveDown,
|
||||
"<C-d>": DownHalf,
|
||||
"/": EnterSearch,
|
||||
"<C-c>": Close,
|
||||
"<Esc>": Close,
|
||||
"K": MoveUp,
|
||||
"D": Delete,
|
||||
"B": ShowInfo,
|
||||
},
|
||||
queue: {
|
||||
"D": DeleteAll,
|
||||
"<CR>": Play,
|
||||
"<C-s>": Save,
|
||||
"a": AddToPlaylist,
|
||||
"d": Delete,
|
||||
"C": JumpToCurrent,
|
||||
"X": Shuffle,
|
||||
},
|
||||
),
|
||||
search: (
|
||||
case_sensitive: false,
|
||||
mode: Contains,
|
||||
tags: [
|
||||
(value: "any", label: "Any Tag"),
|
||||
(value: "artist", label: "Artist"),
|
||||
(value: "album", label: "Album"),
|
||||
(value: "albumartist", label: "Album Artist"),
|
||||
(value: "title", label: "Title"),
|
||||
(value: "filename", label: "Filename"),
|
||||
(value: "genre", label: "Genre"),
|
||||
],
|
||||
),
|
||||
artists: (
|
||||
album_display_mode: SplitByDate,
|
||||
album_sort_by: Date,
|
||||
),
|
||||
tabs: [
|
||||
(
|
||||
name: "Queue",
|
||||
pane: Split(
|
||||
direction: Horizontal,
|
||||
panes: [(size: "20%", pane: Pane(AlbumArt)), (size: "80%", pane: Pane(Queue))],
|
||||
),
|
||||
),
|
||||
(
|
||||
name: "Directories",
|
||||
pane: Pane(Directories),
|
||||
),
|
||||
(
|
||||
name: "Artists",
|
||||
pane: Pane(Artists),
|
||||
),
|
||||
(
|
||||
name: "Album Artists",
|
||||
pane: Pane(AlbumArtists),
|
||||
),
|
||||
(
|
||||
name: "Albums",
|
||||
pane: Pane(Albums),
|
||||
),
|
||||
(
|
||||
name: "Playlists",
|
||||
pane: Pane(Playlists),
|
||||
),
|
||||
(
|
||||
name: "Search",
|
||||
pane: Pane(Search),
|
||||
),
|
||||
],
|
||||
)
|
||||
|
||||
129
env/.config/rmpc/themes/theme.ron
vendored
Normal file
129
env/.config/rmpc/themes/theme.ron
vendored
Normal file
@@ -0,0 +1,129 @@
|
||||
#![enable(implicit_some)]
|
||||
#![enable(unwrap_newtypes)]
|
||||
#![enable(unwrap_variant_newtypes)]
|
||||
|
||||
(
|
||||
default_album_art_path: None,
|
||||
show_song_table_header: true,
|
||||
draw_borders: true,
|
||||
format_tag_separator: " | ",
|
||||
browser_column_widths: [20, 38, 42],
|
||||
background_color: None,
|
||||
text_color: None,
|
||||
header_background_color: None,
|
||||
modal_background_color: None,
|
||||
preview_label_style: (fg: "yellow"),
|
||||
preview_metadata_group_style: (fg: "yellow", modifiers: "Bold"),
|
||||
tab_bar: (
|
||||
active_style: (fg: "black", bg: "magenta", modifiers: "Bold"),
|
||||
inactive_style: (),
|
||||
),
|
||||
highlighted_item_style: (fg: "magenta", modifiers: "Bold"),
|
||||
current_item_style: (fg: "black", bg: "magenta", modifiers: "Bold"),
|
||||
borders_style: (fg: "magenta"),
|
||||
highlight_border_style: (fg: "magenta"),
|
||||
symbols: (song: "S", dir: "D", playlist: "P", marker: "M", ellipsis: "..."),
|
||||
progress_bar: (
|
||||
symbols: ["", "", "⭘", " ", " "],
|
||||
track_style: (fg: "#1e2030"),
|
||||
elapsed_style: (fg: "magenta"),
|
||||
thumb_style: (fg: "magenta", bg: "#1e2030"),
|
||||
),
|
||||
scrollbar: (
|
||||
symbols: ["│", "█", "▲", "▼"],
|
||||
track_style: (),
|
||||
ends_style: (),
|
||||
thumb_style: (fg: "magenta"),
|
||||
),
|
||||
song_table_format: [
|
||||
(
|
||||
prop: (kind: Property(Artist),
|
||||
default: (kind: Text("Unknown"))
|
||||
),
|
||||
width: "20%",
|
||||
),
|
||||
(
|
||||
prop: (kind: Property(Title),
|
||||
default: (kind: Text("Unknown"))
|
||||
),
|
||||
width: "35%",
|
||||
),
|
||||
(
|
||||
prop: (kind: Property(Album), style: (fg: "white"),
|
||||
default: (kind: Text("Unknown Album"), style: (fg: "white"))
|
||||
),
|
||||
width: "30%",
|
||||
),
|
||||
(
|
||||
prop: (kind: Property(Duration),
|
||||
default: (kind: Text("-"))
|
||||
),
|
||||
width: "15%",
|
||||
alignment: Right,
|
||||
),
|
||||
],
|
||||
header: (
|
||||
rows: [
|
||||
(
|
||||
left: [
|
||||
(kind: Text("["), style: (fg: "yellow", modifiers: "Bold")),
|
||||
(kind: Property(Status(State)), style: (fg: "yellow", modifiers: "Bold")),
|
||||
(kind: Text("]"), style: (fg: "yellow", modifiers: "Bold"))
|
||||
],
|
||||
center: [
|
||||
(kind: Property(Song(Title)), style: (modifiers: "Bold"),
|
||||
default: (kind: Text("No Song"), style: (modifiers: "Bold"))
|
||||
)
|
||||
],
|
||||
right: [
|
||||
(kind: Property(Widget(ScanStatus)), style: (fg: "magenta")),
|
||||
(kind: Property(Widget(Volume)), style: (fg: "magenta"))
|
||||
]
|
||||
),
|
||||
(
|
||||
left: [
|
||||
(kind: Property(Status(Elapsed))),
|
||||
(kind: Text(" / ")),
|
||||
(kind: Property(Status(Duration))),
|
||||
(kind: Text(" (")),
|
||||
(kind: Property(Status(Bitrate))),
|
||||
(kind: Text(" kbps)"))
|
||||
],
|
||||
center: [
|
||||
(kind: Property(Song(Artist)), style: (fg: "yellow", modifiers: "Bold"),
|
||||
default: (kind: Text("Unknown"), style: (fg: "yellow", modifiers: "Bold"))
|
||||
),
|
||||
(kind: Text(" - ")),
|
||||
(kind: Property(Song(Album)),
|
||||
default: (kind: Text("Unknown Album"))
|
||||
)
|
||||
],
|
||||
right: [
|
||||
(
|
||||
kind: Property(Widget(States(
|
||||
active_style: (fg: "white", modifiers: "Bold"),
|
||||
separator_style: (fg: "white")))
|
||||
),
|
||||
style: (fg: "dark_gray")
|
||||
),
|
||||
]
|
||||
),
|
||||
],
|
||||
),
|
||||
browser_song_format: [
|
||||
(
|
||||
kind: Group([
|
||||
(kind: Property(Track)),
|
||||
(kind: Text(" ")),
|
||||
])
|
||||
),
|
||||
(
|
||||
kind: Group([
|
||||
(kind: Property(Artist)),
|
||||
(kind: Text(" - ")),
|
||||
(kind: Property(Title)),
|
||||
]),
|
||||
default: (kind: Property(Filename))
|
||||
),
|
||||
],
|
||||
)
|
||||
11
env/.config/rofi/config.rasi
vendored
11
env/.config/rofi/config.rasi
vendored
@@ -13,3 +13,14 @@
|
||||
window, mainbox{
|
||||
//border-radius: 20px;
|
||||
}
|
||||
|
||||
configuration {
|
||||
kb-row-up: "Up,Control+k,Shift+Tab,Shift+ISO_Left_Tab";
|
||||
kb-row-down: "Down,Control+j";
|
||||
kb-accept-entry: "Control+m,Return,KP_Enter";
|
||||
terminal: "wezterm";
|
||||
kb-remove-to-eol: "Control+Shift+e";
|
||||
/*kb-mode-next: "Shift+Right,Control+Tab,Control+l";*/
|
||||
kb-mode-previous: "Shift+Left,Control+Shift+Tab,Control+h";
|
||||
kb-remove-char-back: "BackSpace";
|
||||
}
|
||||
|
||||
2
env/.config/swapscape.map
vendored
Normal file
2
env/.config/swapscape.map
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
keycode 1 = Caps_Lock
|
||||
keycode 58 = Escape
|
||||
249
env/.config/sway/config
vendored
Normal file
249
env/.config/sway/config
vendored
Normal file
@@ -0,0 +1,249 @@
|
||||
# Default config for sway
|
||||
#
|
||||
# Copy this to ~/.config/sway/config and edit it to your liking.
|
||||
#
|
||||
# Read `man 5 sway` for a complete reference.
|
||||
|
||||
exec dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway
|
||||
exec ~/.local/bin/system/start-scripts/autostart.sh
|
||||
|
||||
### Variables
|
||||
#
|
||||
# Logo key. Use Mod1 for Alt.
|
||||
set $mod Mod4
|
||||
# Home row direction keys, like vim
|
||||
set $left h
|
||||
set $down j
|
||||
set $up k
|
||||
set $right l
|
||||
# Your preferred terminal emulator
|
||||
set $term wezterm
|
||||
set $term2 urxvt
|
||||
# Your preferred application launcher
|
||||
set $menu rofi -show drun
|
||||
|
||||
### Output configuration
|
||||
|
||||
output "HDMI-A-1" scale 0.7
|
||||
output "DP-1" scale 0.7
|
||||
|
||||
workspace 1 output HDMI-A-1
|
||||
workspace 2 output HDMI-A-1
|
||||
workspace 3 output HDMI-A-1
|
||||
workspace 4 output HDMI-A-1
|
||||
workspace 5 output HDMI-A-1
|
||||
workspace 6 output HDMI-A-1
|
||||
workspace 7 output HDMI-A-1
|
||||
workspace 8 output HDMI-A-1
|
||||
workspace 9 output HDMI-A-1
|
||||
workspace 10 output HDMI-A-1
|
||||
|
||||
workspace 11 output DP-1
|
||||
workspace 12 output DP-1
|
||||
workspace 13 output DP-1
|
||||
workspace 14 output DP-1
|
||||
workspace 15 output DP-1
|
||||
workspace 16 output DP-1
|
||||
workspace 17 output DP-1
|
||||
workspace 18 output DP-1
|
||||
workspace 19 output DP-1
|
||||
workspace 20 output DP-1
|
||||
|
||||
# or input <identifier>
|
||||
input "type:keyboard" {
|
||||
xkb_layout us,de
|
||||
xkb_variant ,nodeadkeys
|
||||
xkb_options caps:swapescape
|
||||
}
|
||||
|
||||
#
|
||||
# Basics:
|
||||
#
|
||||
bindsym $mod+Return exec $term
|
||||
bindsym $mod+Shift+Return exec $term2
|
||||
|
||||
bindsym $mod+q kill
|
||||
|
||||
bindsym $mod+d exec $menu
|
||||
bindsym $mod+SHIFT+D exec $HOME/.local/bin/system/rofi-search-web.sh
|
||||
|
||||
floating_modifier $mod normal
|
||||
|
||||
#toggle border
|
||||
bindsym $mod+Shift+b border toggle
|
||||
|
||||
# Reload the configuration file
|
||||
bindsym $mod+Shift+r reload
|
||||
|
||||
# Exit sway (logs you out of your Wayland session)
|
||||
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
|
||||
|
||||
bindsym $mod+Escape exec grim -g "$(slurp -b 00000088 -c cba6f7; sleep 0.5)" - | wl-copy
|
||||
bindsym $mod+Print exec grim -g "$(slurp -b 00000088 -c cba6f7; sleep 0.5)" - > ~/out.png
|
||||
bindsym $mod+Shift+Escape exec grim -o HDMI-A-1 - | wl-copy
|
||||
#
|
||||
# Moving around:
|
||||
#
|
||||
# Move your focus around
|
||||
bindsym $mod+$left focus left
|
||||
bindsym $mod+$down focus down
|
||||
bindsym $mod+$up focus up
|
||||
bindsym $mod+$right focus right
|
||||
|
||||
# Move the focused window with the same, but add Shift
|
||||
bindsym $mod+Shift+$left move left
|
||||
bindsym $mod+Shift+$down move down
|
||||
bindsym $mod+Shift+$up move up
|
||||
bindsym $mod+Shift+$right move right
|
||||
#
|
||||
# Workspaces:
|
||||
#
|
||||
# cycle
|
||||
bindsym $mod+n workspace next
|
||||
bindsym $mod+b workspace prev
|
||||
# Switch to workspace
|
||||
bindsym $mod+1 workspace number 1
|
||||
bindsym $mod+2 workspace number 2
|
||||
bindsym $mod+3 workspace number 3
|
||||
bindsym $mod+4 workspace number 4
|
||||
bindsym $mod+5 workspace number 5
|
||||
bindsym $mod+6 workspace number 6
|
||||
bindsym $mod+7 workspace number 7
|
||||
bindsym $mod+8 workspace number 8
|
||||
bindsym $mod+9 workspace number 9
|
||||
bindsym $mod+0 workspace number 10
|
||||
# Move focused container to workspace
|
||||
bindsym $mod+Shift+1 move container to workspace number 1
|
||||
bindsym $mod+Shift+2 move container to workspace number 2
|
||||
bindsym $mod+Shift+3 move container to workspace number 3
|
||||
bindsym $mod+Shift+4 move container to workspace number 4
|
||||
bindsym $mod+Shift+5 move container to workspace number 5
|
||||
bindsym $mod+Shift+6 move container to workspace number 6
|
||||
bindsym $mod+Shift+7 move container to workspace number 7
|
||||
bindsym $mod+Shift+8 move container to workspace number 8
|
||||
bindsym $mod+Shift+9 move container to workspace number 9
|
||||
bindsym $mod+Shift+0 move container to workspace number 10
|
||||
# Note: workspaces can have any name you want, not just numbers.
|
||||
# We just use 1-10 as the default.
|
||||
|
||||
mode "mon2" {
|
||||
bindsym $mod+1 workspace number 11
|
||||
bindsym $mod+2 workspace number 12
|
||||
bindsym $mod+3 workspace number 13
|
||||
bindsym $mod+4 workspace number 14
|
||||
bindsym $mod+5 workspace number 15
|
||||
bindsym $mod+6 workspace number 16
|
||||
bindsym $mod+7 workspace number 17
|
||||
bindsym $mod+8 workspace number 18
|
||||
bindsym $mod+9 workspace number 19
|
||||
bindsym $mod+0 workspace number 20
|
||||
bindsym $mod+Shift+1 move container to workspace number 11
|
||||
bindsym $mod+Shift+2 move container to workspace number 12
|
||||
bindsym $mod+Shift+3 move container to workspace number 13
|
||||
bindsym $mod+Shift+4 move container to workspace number 14
|
||||
bindsym $mod+Shift+5 move container to workspace number 15
|
||||
bindsym $mod+Shift+6 move container to workspace number 16
|
||||
bindsym $mod+Shift+7 move container to workspace number 17
|
||||
bindsym $mod+Shift+8 move container to workspace number 18
|
||||
bindsym $mod+Shift+9 move container to workspace number 19
|
||||
bindsym $mod+Shift+0 move container to workspace number 20
|
||||
|
||||
bindsym $mod+o mode "default"
|
||||
}
|
||||
bindsym $mod+o mode "mon2"
|
||||
|
||||
#
|
||||
# Layout stuff:
|
||||
#
|
||||
bindsym $mod+Control+l splith
|
||||
bindsym $mod+Control+j splitv
|
||||
|
||||
# Switch the current container between different layout styles
|
||||
bindsym $mod+s layout stacking
|
||||
bindsym $mod+w layout tabbed
|
||||
bindsym $mod+e layout toggle split
|
||||
|
||||
# Make the current focus fullscreen
|
||||
bindsym $mod+f fullscreen
|
||||
|
||||
# Toggle the current focus between tiling and floating mode
|
||||
bindsym $mod+space floating toggle
|
||||
|
||||
# Swap focus between the tiling area and the floating area
|
||||
bindsym $mod+Shift+space focus mode_toggle
|
||||
|
||||
# Move focus to the parent container
|
||||
bindsym $mod+a focus parent
|
||||
#
|
||||
# Scratchpad:
|
||||
#
|
||||
bindsym $mod+Shift+minus move scratchpad
|
||||
|
||||
bindsym $mod+minus scratchpad show
|
||||
#
|
||||
# Resizing containers:
|
||||
#
|
||||
mode "resize" {
|
||||
bindsym $left resize shrink width 20px
|
||||
bindsym $down resize grow height 20px
|
||||
bindsym $up resize shrink height 20px
|
||||
bindsym $right resize grow width 20px
|
||||
|
||||
# Return to default mode
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym $mod+r mode "default"
|
||||
}
|
||||
bindsym $mod+r mode "resize"
|
||||
#
|
||||
# Utilities:
|
||||
#
|
||||
# Special keys to adjust volume via PulseAudio
|
||||
bindsym --locked XF86AudioMute exec pactl set-sink-mute \@DEFAULT_SINK@ toggle
|
||||
bindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume \@DEFAULT_SINK@ -5%
|
||||
bindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume \@DEFAULT_SINK@ +5%
|
||||
bindsym --locked XF86AudioMicMute exec pactl set-source-mute \@DEFAULT_SOURCE@ toggle
|
||||
bindsym --locked XF86AudioPlay exec playerctl play-pause
|
||||
# Special keys to adjust brightness via brightnessctl
|
||||
bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%-
|
||||
bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+
|
||||
# Special key to take a screenshot with grim
|
||||
bindsym Print exec grim
|
||||
|
||||
client.focused #8568e6 #222222 #8568e6 #e598ff #8568e6
|
||||
client.unfocused #222222 #222222 #8568e6 #e598ff #222222
|
||||
default_border pixel 1
|
||||
default_floating_border pixel 1
|
||||
gaps inner 0
|
||||
|
||||
# Gajim
|
||||
for_window [title="Gajim"] \
|
||||
border pixel
|
||||
|
||||
# Vesktop
|
||||
for_window [class="vesktop"] \
|
||||
border none
|
||||
|
||||
# discord
|
||||
for_window [app_id="discord"] \
|
||||
border none
|
||||
|
||||
# Mumble
|
||||
for_window [title="Mumble"] \
|
||||
border pixel
|
||||
|
||||
# Steam Friends List
|
||||
#for_window [title="Friends List"] \
|
||||
# floating enable, \
|
||||
# resize set 1000 1000, \
|
||||
# move position 0 0
|
||||
|
||||
for_window [app_id="showmethekey-gtk"] \
|
||||
floating enable, \
|
||||
sticky enable, \
|
||||
border none, \
|
||||
move position 357 1660, \
|
||||
resize set 1160 50, \
|
||||
|
||||
# im-emoji-picker window
|
||||
no_focus [title="im-emoji-picker"]
|
||||
243
env/.config/sway/config.bak
vendored
Normal file
243
env/.config/sway/config.bak
vendored
Normal file
@@ -0,0 +1,243 @@
|
||||
# Default config for sway
|
||||
#
|
||||
# Copy this to ~/.config/sway/config and edit it to your liking.
|
||||
#
|
||||
# Read `man 5 sway` for a complete reference.
|
||||
|
||||
exec dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway
|
||||
exec ~/.local/bin/system/start-scripts/autostart.sh
|
||||
|
||||
### Variables
|
||||
#
|
||||
# Logo key. Use Mod1 for Alt.
|
||||
set $mod Mod4
|
||||
# Home row direction keys, like vim
|
||||
set $left h
|
||||
set $down j
|
||||
set $up k
|
||||
set $right l
|
||||
# Your preferred terminal emulator
|
||||
set $term wezterm
|
||||
# Your preferred application launcher
|
||||
set $menu rofi -show drun
|
||||
|
||||
### Output configuration
|
||||
#
|
||||
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
|
||||
output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
# output HDMI-A-1 resolution 1920x1080 position 1920,0
|
||||
#
|
||||
# You can get the names of your outputs by running: swaymsg -t get_outputs
|
||||
|
||||
output "HDMI-A-1" scale 0.7
|
||||
|
||||
### Idle configuration
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
# exec swayidle -w \
|
||||
# timeout 300 'swaylock -f -c 000000' \
|
||||
# timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \
|
||||
# before-sleep 'swaylock -f -c 000000'
|
||||
#
|
||||
# This will lock your screen after 300 seconds of inactivity, then turn off
|
||||
# your displays after another 300 seconds, and turn your screens back on when
|
||||
# resumed. It will also lock your screen before your computer goes to sleep.
|
||||
|
||||
### Input configuration
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
# input "2:14:SynPS/2_Synaptics_TouchPad" {
|
||||
# dwt enabled
|
||||
# tap enabled
|
||||
# natural_scroll enabled
|
||||
# middle_emulation enabled
|
||||
# }
|
||||
#
|
||||
# You can get the names of your inputs by running: swaymsg -t get_inputs
|
||||
# Read `man 5 sway-input` for more information about this section.
|
||||
|
||||
# or input <identifier>
|
||||
input "type:keyboard" {
|
||||
xkb_layout us,de
|
||||
xkb_variant ,nodeadkeys
|
||||
xkb_options caps:swapescape
|
||||
}
|
||||
|
||||
### Key bindings
|
||||
#
|
||||
# Basics:
|
||||
#
|
||||
# Start a terminal
|
||||
bindsym $mod+Return exec $term
|
||||
|
||||
# Kill focused window
|
||||
bindsym $mod+q kill
|
||||
|
||||
# Start your launcher
|
||||
bindsym $mod+d exec $menu
|
||||
|
||||
# Drag floating windows by holding down $mod and left mouse button.
|
||||
# Resize them with right mouse button + $mod.
|
||||
# Despite the name, also works for non-floating windows.
|
||||
# Change normal to inverse to use left mouse button for resizing and right
|
||||
# mouse button for dragging.
|
||||
floating_modifier $mod normal
|
||||
|
||||
# Reload the configuration file
|
||||
bindsym $mod+Shift+c reload
|
||||
|
||||
# Exit sway (logs you out of your Wayland session)
|
||||
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
|
||||
|
||||
bindsym $mod+Escape exec grim -g "$(slurp -b 00000088 -c cba6f7; sleep 0.5)" - | wl-copy
|
||||
bindsym $mod+Shift+Escape exec grim -o HDMI-A-1 - | wl-copy
|
||||
#
|
||||
# Moving around:
|
||||
#
|
||||
# Move your focus around
|
||||
bindsym $mod+$left focus left
|
||||
bindsym $mod+$down focus down
|
||||
bindsym $mod+$up focus up
|
||||
bindsym $mod+$right focus right
|
||||
# Or use $mod+[up|down|left|right]
|
||||
bindsym $mod+Left focus left
|
||||
bindsym $mod+Down focus down
|
||||
bindsym $mod+Up focus up
|
||||
bindsym $mod+Right focus right
|
||||
|
||||
# Move the focused window with the same, but add Shift
|
||||
bindsym $mod+Shift+$left move left
|
||||
bindsym $mod+Shift+$down move down
|
||||
bindsym $mod+Shift+$up move up
|
||||
bindsym $mod+Shift+$right move right
|
||||
# Ditto, with arrow keys
|
||||
bindsym $mod+Shift+Left move left
|
||||
bindsym $mod+Shift+Down move down
|
||||
bindsym $mod+Shift+Up move up
|
||||
bindsym $mod+Shift+Right move right
|
||||
#
|
||||
# Workspaces:
|
||||
#
|
||||
# Switch to workspace
|
||||
bindsym $mod+1 workspace number 1
|
||||
bindsym $mod+2 workspace number 2
|
||||
bindsym $mod+3 workspace number 3
|
||||
bindsym $mod+4 workspace number 4
|
||||
bindsym $mod+5 workspace number 5
|
||||
bindsym $mod+6 workspace number 6
|
||||
bindsym $mod+7 workspace number 7
|
||||
bindsym $mod+8 workspace number 8
|
||||
bindsym $mod+9 workspace number 9
|
||||
bindsym $mod+0 workspace number 10
|
||||
# Move focused container to workspace
|
||||
bindsym $mod+Shift+1 move container to workspace number 1
|
||||
bindsym $mod+Shift+2 move container to workspace number 2
|
||||
bindsym $mod+Shift+3 move container to workspace number 3
|
||||
bindsym $mod+Shift+4 move container to workspace number 4
|
||||
bindsym $mod+Shift+5 move container to workspace number 5
|
||||
bindsym $mod+Shift+6 move container to workspace number 6
|
||||
bindsym $mod+Shift+7 move container to workspace number 7
|
||||
bindsym $mod+Shift+8 move container to workspace number 8
|
||||
bindsym $mod+Shift+9 move container to workspace number 9
|
||||
bindsym $mod+Shift+0 move container to workspace number 10
|
||||
# Note: workspaces can have any name you want, not just numbers.
|
||||
# We just use 1-10 as the default.
|
||||
#
|
||||
# Layout stuff:
|
||||
#
|
||||
# You can "split" the current object of your focus with
|
||||
# $mod+b or $mod+v, for horizontal and vertical splits
|
||||
# respectively.
|
||||
bindsym $mod+b splith
|
||||
bindsym $mod+v splitv
|
||||
|
||||
# Switch the current container between different layout styles
|
||||
bindsym $mod+s layout stacking
|
||||
bindsym $mod+w layout tabbed
|
||||
bindsym $mod+e layout toggle split
|
||||
|
||||
# Make the current focus fullscreen
|
||||
bindsym $mod+f fullscreen
|
||||
|
||||
# Toggle the current focus between tiling and floating mode
|
||||
bindsym $mod+space floating toggle
|
||||
|
||||
# Swap focus between the tiling area and the floating area
|
||||
bindsym $mod+Shift+space focus mode_toggle
|
||||
|
||||
# Move focus to the parent container
|
||||
bindsym $mod+a focus parent
|
||||
#
|
||||
# Scratchpad:
|
||||
#
|
||||
# Sway has a "scratchpad", which is a bag of holding for windows.
|
||||
# You can send windows there and get them back later.
|
||||
|
||||
# Move the currently focused window to the scratchpad
|
||||
bindsym $mod+Shift+minus move scratchpad
|
||||
|
||||
# Show the next scratchpad window or hide the focused scratchpad window.
|
||||
# If there are multiple scratchpad windows, this command cycles through them.
|
||||
bindsym $mod+minus scratchpad show
|
||||
#
|
||||
# Resizing containers:
|
||||
#
|
||||
mode "resize" {
|
||||
# left will shrink the containers width
|
||||
# right will grow the containers width
|
||||
# up will shrink the containers height
|
||||
# down will grow the containers height
|
||||
bindsym $left resize shrink width 10px
|
||||
bindsym $down resize grow height 10px
|
||||
bindsym $up resize shrink height 10px
|
||||
bindsym $right resize grow width 10px
|
||||
|
||||
# Ditto, with arrow keys
|
||||
bindsym Left resize shrink width 10px
|
||||
bindsym Down resize grow height 10px
|
||||
bindsym Up resize shrink height 10px
|
||||
bindsym Right resize grow width 10px
|
||||
|
||||
# Return to default mode
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
bindsym $mod+r mode "resize"
|
||||
#
|
||||
# Utilities:
|
||||
#
|
||||
# Special keys to adjust volume via PulseAudio
|
||||
bindsym --locked XF86AudioMute exec pactl set-sink-mute \@DEFAULT_SINK@ toggle
|
||||
bindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume \@DEFAULT_SINK@ -5%
|
||||
bindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume \@DEFAULT_SINK@ +5%
|
||||
bindsym --locked XF86AudioMicMute exec pactl set-source-mute \@DEFAULT_SOURCE@ toggle
|
||||
# Special keys to adjust brightness via brightnessctl
|
||||
bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%-
|
||||
bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+
|
||||
# Special key to take a screenshot with grim
|
||||
bindsym Print exec grim
|
||||
|
||||
#
|
||||
# Status Bar:
|
||||
#
|
||||
# Read `man 5 sway-bar` for more information about this section.
|
||||
bar {
|
||||
position bottom
|
||||
|
||||
# When the status_command prints a new line to stdout, swaybar updates.
|
||||
# The default just shows the current date and time.
|
||||
status_command while date +'%Y-%m-%d %X'; do sleep 1; done
|
||||
|
||||
colors {
|
||||
statusline #ffffff
|
||||
background #323232
|
||||
inactive_workspace #32323200 #32323200 #5c5c5c
|
||||
}
|
||||
}
|
||||
|
||||
include /etc/sway/config.d/*
|
||||
27
env/.config/tmux/tmux.conf
vendored
27
env/.config/tmux/tmux.conf
vendored
@@ -2,16 +2,13 @@
|
||||
set -g default-terminal "screen-256color"
|
||||
set -g terminal-overrides 'screen*:colors=256'
|
||||
|
||||
set -g default-shell /bin/zsh
|
||||
set -g default-command /bin/zsh
|
||||
|
||||
set -gq allow-passthrough on
|
||||
set -g visual-activity off
|
||||
|
||||
#set -g status-interval 3
|
||||
|
||||
unbind C-b
|
||||
set-option -g prefix C-Space
|
||||
set-option -g prefix C-space
|
||||
|
||||
# set vim mode
|
||||
set-window-option -g mode-keys vi
|
||||
@@ -27,11 +24,12 @@ unbind -T copy-mode-vi MouseDragEnd1Pane
|
||||
|
||||
# bind r to reload config
|
||||
unbind r
|
||||
bind r source-file ~/.tmux.conf
|
||||
bind r source-file ~/.config/tmux/tmux.conf
|
||||
|
||||
# start panes and windows 1
|
||||
set -g base-index 1
|
||||
set -g pane-base-index 1
|
||||
setw -g pane-base-index 1
|
||||
set -g renumber-windows on # renumber windows when one is closed
|
||||
|
||||
# nav rebinds
|
||||
@@ -48,9 +46,9 @@ bind -r m resize-pane -Z # maximize
|
||||
|
||||
# pane joining
|
||||
bind J switch-client -T pane-management
|
||||
bind-key -T pane-management \" command-prompt -p "join pane from:" "join-pane -s '%%' -h"
|
||||
bind-key -T pane-management % command-prompt -p "join pane from:" "join-pane -s '%%' -h"
|
||||
bind-key -T pane-management H command-prompt -p "join pane from:" "join-pane -s '%%' -f -h"
|
||||
bind-key -T pane-management % command-prompt -p "join pane from:" "join-pane -s '%%' -v"
|
||||
bind-key -T pane-management \" command-prompt -p "join pane from:" "join-pane -s '%%' -v"
|
||||
bind-key -T pane-management V command-prompt -p "join pane from:" "join-pane -s '%%' -f -v"
|
||||
bind-key -T pane-management B break-pane
|
||||
bind-key -T pane-management S command-prompt -p "send pane to:" "join-pane -t '%%'"
|
||||
@@ -59,14 +57,15 @@ bind-key -r H split-window -h -f
|
||||
|
||||
|
||||
# colors/theme
|
||||
set -g status-bg "#333333"
|
||||
# using vars in this cause the chars to not use the color
|
||||
set -g status-bg "#222222"
|
||||
set -g status-fg "#f1f1f1"
|
||||
set -wg mode-style bg="#333334"
|
||||
set -g pane-border-style fg='#333333'
|
||||
set -wg mode-style bg="#222222"
|
||||
set -g pane-border-style fg='#222222'
|
||||
set -g pane-active-border-style fg='#a030f0'
|
||||
active_window_fg='#e080f0'
|
||||
set -g status-left "#[fg=${session_fg},bold,bg=${bg}][ #S] "
|
||||
set -g status-left "#[fg=#f1f1f1,bold,bg=#4020af] #S #[fg=#4020af,bg=#222222] "
|
||||
set -g status-left-length 40
|
||||
set -g window-status-current-format "#[fg=${active_window_fg},bg=default] #I:#W"
|
||||
set -g window-status-format "#[fg=${default_fg},bg=default]#I:#W"
|
||||
# set -g window-status-last-style "fg=${default_fg},bg=default"
|
||||
set -g window-status-current-format "#[fg=${active_window_fg},bg=#222222]#I:#W #[fg=#f1f1f1,bg=#222222]"
|
||||
set -g window-status-format "#[fg=#f1f1f1,bg=#222222]#I:#W #[fg=#f1f1f1,bg=#222222]"
|
||||
set -g status-right '#[fg=#4020af,bg=#222222]#[fg=#f1f1f1,bg=#4020af] @#H %H:%M %d-%b-%y'
|
||||
|
||||
179
env/.config/waybar/config.jsonc
vendored
179
env/.config/waybar/config.jsonc
vendored
@@ -1,15 +1,15 @@
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "bottom",
|
||||
"modules-left": ["hyprland/workspaces"],
|
||||
|
||||
//"modules-center": ["clock", ], //"custom/weather"],
|
||||
"modules-left": [ "hyprland/workspaces", "sway/workspaces", "custom/ws_end_arrow", "sway/mode" ],
|
||||
|
||||
"modules-right": [
|
||||
"custom/mod_end_arrow",
|
||||
"custom/mic",
|
||||
"pulseaudio",
|
||||
//"backlight",
|
||||
"battery",
|
||||
"custom/wifi",
|
||||
"network",
|
||||
"cpu",
|
||||
"memory",
|
||||
@@ -22,53 +22,119 @@
|
||||
"custom/power"
|
||||
],
|
||||
|
||||
"custom/ws_end_arrow":{
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"custom/mod_end_arrow":{
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"hyprland/workspaces": {
|
||||
//"format": "{name}: {icon}",
|
||||
//"all-outputs":true,
|
||||
"format": "{icon}",
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
/*
|
||||
"1": "",
|
||||
"2": "",
|
||||
"3": "",
|
||||
"4": "",
|
||||
"5": ""
|
||||
"5":" ",
|
||||
*/
|
||||
"1":" ",
|
||||
"2":" ",
|
||||
"3":" ",
|
||||
"4":" ",
|
||||
"5":" ",
|
||||
"6":" ",
|
||||
"7":" ",
|
||||
"8":" ",
|
||||
"9":" ",
|
||||
"1":" ",
|
||||
"2":" ",
|
||||
"3":" ",
|
||||
"4":" ",
|
||||
"5": " ",
|
||||
"6":" ",
|
||||
"7":" ",
|
||||
"8":" ",
|
||||
"9":" ",
|
||||
"10":" ",
|
||||
"11":" ",
|
||||
"12":" ",
|
||||
"13":" ",
|
||||
"14":" ",
|
||||
"15":" ",
|
||||
"16":" ",
|
||||
"17":" ",
|
||||
"18":" ",
|
||||
"19":" ",
|
||||
"11":" ",
|
||||
"12":" ",
|
||||
"13":" ",
|
||||
"14":" ",
|
||||
"15":" ",
|
||||
"16":" ",
|
||||
"17":" ",
|
||||
"18":" ",
|
||||
"19":" ",
|
||||
"20":" "
|
||||
},
|
||||
/*
|
||||
"persistent-workspaces": {
|
||||
"1": [], // Always show a workspace with name '3', on all outputs if it does not exists
|
||||
"2": [],
|
||||
"3": [],
|
||||
"4": [],
|
||||
"5": [],
|
||||
"6": [],
|
||||
"7": [],
|
||||
"8": [],
|
||||
"9": [],
|
||||
"10": []
|
||||
"1": ["HDMI-A-1"],
|
||||
"2": ["HDMI-A-1"],
|
||||
"3": ["HDMI-A-1"],
|
||||
"4": ["HDMI-A-1"],
|
||||
"5": ["HDMI-A-1"],
|
||||
"6": ["HDMI-A-1"],
|
||||
"7": ["HDMI-A-1"],
|
||||
"8": ["HDMI-A-1"],
|
||||
"9": ["HDMI-A-1"],
|
||||
"10": ["HDMI-A-1"],
|
||||
"11": ["DP-1"],
|
||||
"12": ["DP-1"],
|
||||
"13": ["DP-1"],
|
||||
"14": ["DP-1"],
|
||||
"15": ["DP-1"],
|
||||
"16": ["DP-1"],
|
||||
"17": ["DP-1"],
|
||||
"18": ["DP-1"],
|
||||
"19": ["DP-1"],
|
||||
"20": ["DP-1"]
|
||||
},
|
||||
"sort-by-name": true
|
||||
},
|
||||
|
||||
"sway/workspaces": {
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"1":" ",
|
||||
"2":" ",
|
||||
"3":" ",
|
||||
"4":" ",
|
||||
"5":" ",
|
||||
"6":" ",
|
||||
"7":" ",
|
||||
"8":" ",
|
||||
"9":" ",
|
||||
"10":" ",
|
||||
"11":" ",
|
||||
"12":" ",
|
||||
"13":" ",
|
||||
"14":" ",
|
||||
"15":" ",
|
||||
"16":" ",
|
||||
"17":" ",
|
||||
"18":" ",
|
||||
"19":" ",
|
||||
"20":" "
|
||||
},
|
||||
"persistent-workspaces": {
|
||||
"1": ["HDMI-A-1"],
|
||||
"2": ["HDMI-A-1"],
|
||||
"3": ["HDMI-A-1"],
|
||||
"4": ["HDMI-A-1"],
|
||||
"5": ["HDMI-A-1"],
|
||||
"6": ["HDMI-A-1"],
|
||||
"7": ["HDMI-A-1"],
|
||||
"8": ["HDMI-A-1"],
|
||||
"9": ["HDMI-A-1"],
|
||||
"10": ["HDMI-A-1"],
|
||||
"11": ["DP-1"],
|
||||
"12": ["DP-1"],
|
||||
"13": ["DP-1"],
|
||||
"14": ["DP-1"],
|
||||
"15": ["DP-1"],
|
||||
"16": ["DP-1"],
|
||||
"17": ["DP-1"],
|
||||
"18": ["DP-1"],
|
||||
"19": ["DP-1"],
|
||||
"20": ["DP-1"]
|
||||
},
|
||||
*/
|
||||
"sort-by-name": true
|
||||
},
|
||||
|
||||
@@ -90,15 +156,15 @@
|
||||
"clock": {
|
||||
"timezone": "America/Chicago",
|
||||
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
|
||||
"format": "{:%m/%d/%Y - %I:%M:%S}",
|
||||
"format": " {:%a %m/%d/%Y %I:%M:%S} ",
|
||||
"interval": 1
|
||||
},
|
||||
|
||||
"network": {
|
||||
"interface": "wlan0",
|
||||
"format-wifi": " {bandwidthDownBits}",
|
||||
"format-ethernet": " {bandwidthDownBits}",
|
||||
"format-disconnected": " No Network",
|
||||
"format-wifi": " {bandwidthDownBits}",
|
||||
"format-ethernet": " {bandwidthDownBits}",
|
||||
"format-disconnected": " No Network",
|
||||
"interval": 5,
|
||||
"tooltip": true,
|
||||
"tooltip-format-wifi": "{essid} ({signalStrength}%) ",
|
||||
@@ -108,36 +174,35 @@
|
||||
|
||||
"cpu": {
|
||||
"interval": 1,
|
||||
"format": " {icon0}{icon1}{icon2}{icon3} {usage:>2}%",
|
||||
"format": " {icon0}{icon1}{icon2}{icon3} {usage:>2}%",
|
||||
"format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"]
|
||||
},
|
||||
|
||||
"memory": {
|
||||
"interval": 30,
|
||||
"format": " {used:0.1f}G/{total:0.1f}G"
|
||||
},
|
||||
|
||||
"custom/uptime": {
|
||||
"format": "{}",
|
||||
"interval": 1600,
|
||||
"exec": "sh -c '(uptime -p)'"
|
||||
"format": " {used:0.1f}G/{total:0.1f}G"
|
||||
},
|
||||
|
||||
"pulseaudio": {
|
||||
"format": "{icon} {volume}%",
|
||||
"format-muted": "",
|
||||
"format-muted": " ",
|
||||
"format-icons": {
|
||||
"default": ["", "", " "]
|
||||
"default": [" ", " ", " "]
|
||||
},
|
||||
"on-click": "pavucontrol"
|
||||
},
|
||||
|
||||
"custom/power": {
|
||||
"tooltip": false,
|
||||
"on-click": "wlogout &",
|
||||
"on-click": "~/.config/wlogout/wlogout.sh",
|
||||
"format": "⏻"
|
||||
},
|
||||
|
||||
"custom/lock": {
|
||||
"format": " ",
|
||||
"on-click": "hyprlock"
|
||||
},
|
||||
|
||||
"custom/docker": {
|
||||
"format": "{}",
|
||||
"return-type": "json",
|
||||
@@ -147,7 +212,7 @@
|
||||
},
|
||||
|
||||
"custom/weather": {
|
||||
"format": "{}",
|
||||
"format": " {}",
|
||||
"tooltip": true,
|
||||
"interval": 1800,
|
||||
"exec": "$(pwd)/scripts/weather-stats/weather-stats",
|
||||
@@ -155,13 +220,13 @@
|
||||
},
|
||||
|
||||
"custom/rss": {
|
||||
"format": " {}",
|
||||
"format": " {}",
|
||||
"interval": 3,
|
||||
"exec": "/usr/bin/newsboat -x print-unread|sed 's/\\s.*//; s/Error:/IA/'"
|
||||
"exec": "/usr/bin/newsboat -x print-unread|sed 's/\\s.*//; s/Error:/E/'"
|
||||
},
|
||||
|
||||
"custom/disc": {
|
||||
"format": " {}",
|
||||
"format": " {}",
|
||||
"interval": 20,
|
||||
"exec": "df -h -x=used /dev/mapper/artix-root | sed '1d' | awk '{print $4}'| sed 's/[^0-9]*//g'"
|
||||
},
|
||||
@@ -173,8 +238,8 @@
|
||||
},
|
||||
|
||||
"custom/wifi": {
|
||||
"format": "{}",
|
||||
"format": " {}",
|
||||
"interval": 1000,
|
||||
"exec": "sed \"s/down/\\:\\(/;s/up/\\:\\)/\" /sys/class/net/$wifi_device/operstate"
|
||||
"exec": "sed 's/down/\\:\\(/;s/up/\\:\\)/' /sys/class/net/wlan0/operstate"
|
||||
}
|
||||
}
|
||||
|
||||
7
env/.config/waybar/style.css
vendored
7
env/.config/waybar/style.css
vendored
@@ -31,6 +31,11 @@
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#workspaces button.focused {
|
||||
color: #00c5ba;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
button {
|
||||
background: transparent;
|
||||
}
|
||||
@@ -160,4 +165,4 @@ button {
|
||||
|
||||
#custom-weather.error {
|
||||
color: #263640; /* Red */
|
||||
}
|
||||
}
|
||||
|
||||
9
env/.config/wezterm/wezterm.lua
vendored
9
env/.config/wezterm/wezterm.lua
vendored
@@ -2,13 +2,14 @@ local wezterm = require 'wezterm'
|
||||
local colors= require 'colors'
|
||||
|
||||
local config = {}
|
||||
config.default_prog = { 'zsh', '-l' } --config.font = wezterm.font 'Classic Console' config.font_size = 15 config.font = wezterm.font 'Source Code Pro'
|
||||
--config.font = wezterm.font 'Classic Console' config.font_size = 15 config.font = wezterm.font 'Source Code Pro'
|
||||
config.set_environment_variables = {
|
||||
wezterm = 'yes',
|
||||
}
|
||||
config.enable_tab_bar = false
|
||||
|
||||
config.font = wezterm.font_with_fallback {
|
||||
'B612 Mono',
|
||||
--'Inconsolata',
|
||||
-- 'CozetteVector', --has weird offset with japanese. きki becomes せse and vice versa
|
||||
'JetBrainsMono',
|
||||
'JetBrainsMono Nerd Font',
|
||||
'JetBrainsMono Nerd Font Mono',
|
||||
@@ -28,4 +29,6 @@ config.unix_domains = {
|
||||
},
|
||||
}
|
||||
|
||||
config.front_end = "OpenGL"
|
||||
|
||||
return config
|
||||
|
||||
39
env/.config/wireplumber/wireplumber.conf.d/51-disable-suspension.conf
vendored
Normal file
39
env/.config/wireplumber/wireplumber.conf.d/51-disable-suspension.conf
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
monitor.alsa.rules = [
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
# Matches all sources
|
||||
node.name = "~alsa_input.*"
|
||||
},
|
||||
{
|
||||
# Matches all sinks
|
||||
node.name = "~alsa_output.*"
|
||||
}
|
||||
]
|
||||
actions = {
|
||||
update-props = {
|
||||
session.suspend-timeout-seconds = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
# bluetooth devices
|
||||
monitor.bluez.rules = [
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
# Matches all sources
|
||||
node.name = "~bluez_input.*"
|
||||
},
|
||||
{
|
||||
# Matches all sinks
|
||||
node.name = "~bluez_output.*"
|
||||
}
|
||||
]
|
||||
actions = {
|
||||
update-props = {
|
||||
session.suspend-timeout-seconds = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
24
env/.config/wlogout/layout
vendored
Normal file
24
env/.config/wlogout/layout
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"label" : "shutdown",
|
||||
"action" : "loginctl poweroff",
|
||||
"text" : "Shutdown",
|
||||
"keybind" : "s"
|
||||
}
|
||||
{
|
||||
"label" : "reboot",
|
||||
"action" : "loginctl reboot",
|
||||
"text" : "Reboot",
|
||||
"keybind" : "r"
|
||||
}
|
||||
{
|
||||
"label" : "logout",
|
||||
"action" : "loginctl kill-session $XDG_SESSION_ID",
|
||||
"text" : "Logout",
|
||||
"keybind" : "e"
|
||||
}
|
||||
{
|
||||
"label" : "lock",
|
||||
"action" : "hyprlock",
|
||||
"text" : "Lock",
|
||||
"keybind" : "l"
|
||||
}
|
||||
52
env/.config/wlogout/style.css
vendored
Normal file
52
env/.config/wlogout/style.css
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
/* ----------- 💫 https://github.com/JaKooLit 💫 -------- */
|
||||
@define-color foreground #be9eda;
|
||||
@define-color color6 #834ABD;
|
||||
|
||||
window {
|
||||
font-family: b612;
|
||||
font-size: 16pt;
|
||||
color: @foreground; /* text */
|
||||
background-color: rgba(24, 27, 32, 0.2);
|
||||
}
|
||||
|
||||
button {
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
background-size: 20%;
|
||||
background-color: transparent;
|
||||
animation: gradient_f 20s ease-in infinite;
|
||||
transition: all 0.3s ease-in;
|
||||
box-shadow: 0 0 10px 2px transparent;
|
||||
border-radius: 36px;
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
button:focus {
|
||||
box-shadow: none;
|
||||
background-size : 20%;
|
||||
}
|
||||
|
||||
button:hover {
|
||||
background-size: 50%;
|
||||
box-shadow: 0 0 10px 3px rgba(0,0,0,.4);
|
||||
background-color: @color6;
|
||||
color: transparent;
|
||||
transition: all 0.3s cubic-bezier(.55, 0.0, .28, 1.682), box-shadow 0.5s ease-in;
|
||||
}
|
||||
|
||||
#lock {
|
||||
background-image: image(url("/usr/share/wlogout/icons/lock.png"), url("/usr/local/share/wlogout/icons/lock.png"));
|
||||
}
|
||||
|
||||
#logout {
|
||||
background-image: image(url("/usr/share/wlogout/icons/logout.png"), url("/usr/local/share/wlogout/icons/logout.png"));
|
||||
}
|
||||
|
||||
#shutdown {
|
||||
background-image: image(url("/usr/share/wlogout/icons/shutdown.png"), url("/usr/local/share/wlogout/icons/shutdown.png"));
|
||||
}
|
||||
|
||||
#reboot {
|
||||
background-image: image(url("/usr/share/wlogout/icons/reboot.png"), url("/usr/local/share/wlogout/icons/reboot.png"));
|
||||
}
|
||||
|
||||
15
env/.config/wlogout/wlogout.sh
vendored
Executable file
15
env/.config/wlogout/wlogout.sh
vendored
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env bash
|
||||
# https://github.com/zDyanTB/HyprNova/blob/master/.config/hypr/scripts/wlogout.sh
|
||||
A_1080=1000
|
||||
B_1080=1000
|
||||
|
||||
# Check if wlogout is already running
|
||||
if pgrep -x "wlogout" > /dev/null; then
|
||||
pkill -x "wlogout"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Detect monitor resolution and scaling factor
|
||||
resolution=$(hyprctl -j monitors | jq -r '.[] | select(.focused==true) | .height / .scale' | awk -F'.' '{print $1}')
|
||||
hypr_scale=$(hyprctl -j monitors | jq -r '.[] | select(.focused==true) | .scale')
|
||||
wlogout --protocol layer-shell -b 4 -T $(awk "BEGIN {printf \"%.0f\", $A_1080 * 1080 * $hypr_scale / $resolution}") -B $(awk "BEGIN {printf \"%.0f\", $B_1080 * 1080 * $hypr_scale / $resolution}") &
|
||||
13
env/.local/bin/scripts/autoport_mc.sh
vendored
Executable file
13
env/.local/bin/scripts/autoport_mc.sh
vendored
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
|
||||
# this finds the log file from a picked instance using rofi. then fords traffic thorugh 25565
|
||||
if [ -z "$LOG_FILE" ]; then
|
||||
choice="$HOME/stuff/minecraft/polymc/instances/$(ls ~/stuff/minecraft/polymc/instances | rofi -dmenu -p "Instance")"
|
||||
LOG_FILE="$(find "$choice" -mindepth 1 -maxdepth 1 -type d | grep "minecraft$")/logs/latest.log"
|
||||
fi
|
||||
|
||||
setport="$(cat "$LOG_FILE" | grep "Started on" | sed 's/.*Started on //' | tail -n 1)"
|
||||
echo $setport
|
||||
if [ "$setport" ]; then
|
||||
doas socat TCP6-LISTEN:25565,fork TCP4:127.0.0.1:$setport
|
||||
fi
|
||||
21
env/.local/bin/scripts/backup/backup-flash
vendored
Executable file
21
env/.local/bin/scripts/backup/backup-flash
vendored
Executable file
@@ -0,0 +1,21 @@
|
||||
cd ~
|
||||
|
||||
fsync () {
|
||||
# t?
|
||||
rsync -RUuavn --delete-after $exclude $syncfile "$target"
|
||||
printf "===commit these changes?\n"
|
||||
read - "y/n: " uinput
|
||||
if [ "$uinput" != "n" ] && [ "$uinput" != "N" ]; then
|
||||
printf "\n\n\n"
|
||||
rsync -RUuav --progress --delete-after $exclude $syncfile "$target"
|
||||
printf "\n===end sync\n---------\n\n"
|
||||
fi
|
||||
}
|
||||
|
||||
syncfile="stuff/notes"
|
||||
|
||||
#sync game stuff
|
||||
target="/home/iceyrazor/u"
|
||||
exclude=""
|
||||
|
||||
fsync
|
||||
21
env/.local/bin/scripts/backup/backup-flash-priv
vendored
Executable file
21
env/.local/bin/scripts/backup/backup-flash-priv
vendored
Executable file
@@ -0,0 +1,21 @@
|
||||
cd ~/stuff/scripts
|
||||
|
||||
fsync () {
|
||||
# t?
|
||||
rsync -RUuavn --delete-after $exclude $syncfile "$target"
|
||||
printf "===commit these changes?\n"
|
||||
read - "y/n: " uinput
|
||||
if [ "$uinput" != "n" ] && [ "$uinput" != "N" ]; then
|
||||
printf "\n\n\n"
|
||||
rsync -RUuav --progress --delete-after $exclude $syncfile "$target"
|
||||
printf "\n===end sync\n---------\n\n"
|
||||
fi
|
||||
}
|
||||
|
||||
syncfile="LINUX-SERVER1 sites"
|
||||
|
||||
#sync game stuff
|
||||
target="/home/iceyrazor/u"
|
||||
exclude=""
|
||||
|
||||
fsync
|
||||
2
env/.local/bin/scripts/backup/backup-to-serv
vendored
Executable file
2
env/.local/bin/scripts/backup/backup-to-serv
vendored
Executable file
@@ -0,0 +1,2 @@
|
||||
cd /home/iceyrazor/stuff/scripts/LINUX-SERVER1/home/iceyfoxservers/
|
||||
rsync -RUurv servers/ serv:~
|
||||
27
env/.local/bin/scripts/backup/backup-tol
vendored
Executable file
27
env/.local/bin/scripts/backup/backup-tol
vendored
Executable file
@@ -0,0 +1,27 @@
|
||||
cd ~/
|
||||
|
||||
fsynca () {
|
||||
# t?
|
||||
rsync -RUuavn --delete-after $exclude $syncfile "$target"
|
||||
}
|
||||
|
||||
fsyncb () {
|
||||
printf "===confirm changes?\n"
|
||||
read -p "y/n: " uinput
|
||||
if [ "$uinput" != "n" ] && [ "$uinput" != "N" ]; then
|
||||
printf "\n\n\n"
|
||||
rsync -RUuav --progress --delete-after $exclude $syncfile "$target"
|
||||
printf "\n===end sync\n---------\n\n"
|
||||
fi
|
||||
}
|
||||
|
||||
syncfile=".surf/styles .urlview .gnupg .local/bin/lf-gadgets .local/share/applications/custom .config/FreeTube .config/newsboat .config/zsh .config/vesktop/themes .keepass .config/Pinta .config/gajim/theme stuff/notes stuff/openvpn-cons stuff/scripts stuff/media/ICE stuff/media/music stuff/manual-programs/mediamtx"
|
||||
|
||||
#sync game stuff
|
||||
target="laptop:~"
|
||||
exclude="--exclude stream.sh --exclude node_modules --exclude **/target"
|
||||
|
||||
|
||||
fsynca
|
||||
|
||||
fsyncb
|
||||
31
env/.local/bin/scripts/backup/backup-tol2
vendored
Executable file
31
env/.local/bin/scripts/backup/backup-tol2
vendored
Executable file
@@ -0,0 +1,31 @@
|
||||
cd ~/
|
||||
|
||||
fsynca () {
|
||||
# t?
|
||||
rsync -RUuavn --delete-after $exclude $syncfile "$target"
|
||||
}
|
||||
|
||||
fsyncb () {
|
||||
printf "===confirm changes?\n"
|
||||
read -p "y/n: " uinput
|
||||
if [ "$uinput" != "n" ] && [ "$uinput" != "N" ]; then
|
||||
printf "\n\n\n"
|
||||
rsync -RUuav --progress --delete-after $exclude $syncfile "$target"
|
||||
printf "\n===end sync\n---------\n\n"
|
||||
fi
|
||||
}
|
||||
|
||||
syncfile=".surf/styles .urlview .local/bin/lf-gadgets .local/share/applications/custom .config/newsboat .config/zsh .keepass .config/Pinta stuff/notes stuff/openvpn-cons stuff/media/ICE stuff/scripts/iceys-linux-stuffs .config/swapscape.map"
|
||||
|
||||
# stuff/scripts .gnupg
|
||||
|
||||
#sync game stuff
|
||||
target="laptop2:~"
|
||||
exclude="--exclude mediamtx.yml --exclude stream.sh --exclude node_modules --exclude **/target"
|
||||
|
||||
|
||||
fsynca
|
||||
|
||||
printf "==CC-survival unsynced\n\n"
|
||||
|
||||
fsyncb
|
||||
25
env/.local/bin/scripts/backup/bbackup
vendored
Executable file
25
env/.local/bin/scripts/backup/bbackup
vendored
Executable file
@@ -0,0 +1,25 @@
|
||||
cd ~/
|
||||
|
||||
fsynca () {
|
||||
# t?
|
||||
rsync -RUuavn --delete-after $exclude $syncfile "$target"
|
||||
}
|
||||
|
||||
fsyncb () {
|
||||
printf "===confirm changes?\n"
|
||||
read -p "y/n: " uinput
|
||||
if [ "$uinput" != "n" ] && [ "$uinput" != "N" ]; then
|
||||
printf "\n\n\n"
|
||||
rsync -RUuav --progress --delete-after $exclude $syncfile "$target"
|
||||
printf "\n===end sync\n---------\n\n"
|
||||
fi
|
||||
}
|
||||
|
||||
syncfile="stuff .surf/styles .config/eDEX-UI/ .gnupg .ssh .local/bin/lf-gadgets .config/FreeTube .config/wlxoverlay .config/newsboat .config/zsh .config/vesktop/themes .keepass .config/Pinta .config/cava .config/gajim/theme .local/share/applications/custom .local/share/osu"
|
||||
|
||||
target="/home/iceyrazor/mnt-backups/LINUX FILES/home/iceyrazor"
|
||||
exclude="--exclude node_modules --exclude node_modules_23 --exclude **/target --exclude LinVAM/pyenv --exclude stuff/custom-linux/LFN --exclude stuff/custom-linux/LFN-borked-lol --exclude stuff/.private-parent/.private/minecraft --exclude /home/iceyrazor/stuff/projects/blender-projects/anim-pose/image-sequence"
|
||||
|
||||
fsynca
|
||||
|
||||
fsyncb
|
||||
25
env/.local/bin/scripts/backup/bbackup-browser
vendored
Executable file
25
env/.local/bin/scripts/backup/bbackup-browser
vendored
Executable file
@@ -0,0 +1,25 @@
|
||||
cd ~/
|
||||
|
||||
fsynca () {
|
||||
# t?
|
||||
rsync -RUuavn --delete-after $exclude $syncfile "$target"
|
||||
}
|
||||
|
||||
fsyncb () {
|
||||
printf "===confirm changes?\n"
|
||||
read -p "y/n: " uinput
|
||||
if [ "$uinput" != "n" ] && [ "$uinput" != "N" ]; then
|
||||
printf "\n\n\n"
|
||||
rsync -RUuav --progress --delete-after $exclude $syncfile "$target"
|
||||
printf "\n===end sync\n---------\n\n"
|
||||
fi
|
||||
}
|
||||
|
||||
syncfile=".librewolf"
|
||||
|
||||
target="/home/iceyrazor/mnt-backups/LINUX FILES/home/iceyrazor"
|
||||
exclude=""
|
||||
|
||||
fsynca
|
||||
|
||||
fsyncb
|
||||
25
env/.local/bin/scripts/backup/copy-media
vendored
Executable file
25
env/.local/bin/scripts/backup/copy-media
vendored
Executable file
@@ -0,0 +1,25 @@
|
||||
cd ~/stuff/media/music/
|
||||
|
||||
fsynca () {
|
||||
# t?
|
||||
rsync -RUuavn --delete-after $exclude $syncfile "$target"
|
||||
}
|
||||
|
||||
fsyncb () {
|
||||
printf "===confirm changes?\n"
|
||||
read -p "y/n: " uinput
|
||||
if [ "$uinput" != "n" ] && [ "$uinput" != "N" ]; then
|
||||
printf "\n\n\n"
|
||||
rsync -RUuav --progress --delete-after $exclude $syncfile "$target"
|
||||
printf "\n===end sync\n---------\n\n"
|
||||
fi
|
||||
}
|
||||
|
||||
syncfile="./*"
|
||||
|
||||
target="serv:servers/local_html/ice"
|
||||
exclude=""
|
||||
|
||||
fsynca
|
||||
|
||||
fsyncb
|
||||
30
env/.local/bin/scripts/backup/pull-froml
vendored
Executable file
30
env/.local/bin/scripts/backup/pull-froml
vendored
Executable file
@@ -0,0 +1,30 @@
|
||||
cd ~/
|
||||
|
||||
fsynca () {
|
||||
# t?
|
||||
rsync -RUuavn $exclude $syncfile "$target"
|
||||
}
|
||||
|
||||
fsyncb () {
|
||||
printf "===confirm changes?\n"
|
||||
read -p "y/n: " uinput
|
||||
if [ "$uinput" != "n" ] && [ "$uinput" != "N" ]; then
|
||||
printf "\n\n\n"
|
||||
rsync -RUuav --progress $exclude $syncfile "$target"
|
||||
printf "\n===end sync\n---------\n\n"
|
||||
fi
|
||||
}
|
||||
|
||||
# !! no in use. backup script does not perserve timestamps or something so it wants to overwrite most files
|
||||
# will fix bidirectional sync at some point
|
||||
# syncfile="laptop:.surf/styles laptop:.urlview laptop:.gnupg laptop:.local/bin/lf-gadgets laptop:.local/share/applications/custom laptop:.config/FreeTube laptop:.config/newsboat laptop:.config/zsh laptop:.config/vesktop/themes laptop:.keepass laptop:.config/Pinta laptop:.config/cmus laptop:.config/gajim/theme laptop:stuff"
|
||||
syncfile="laptop:stuff/scripts/node/Nwjs/nms-data/"
|
||||
|
||||
#sync game stuff
|
||||
target="/home/iceyrazor/"
|
||||
exclude="--exclude stuff/.private --exclude stream.sh --exclude node_modules --exclude **/target"
|
||||
|
||||
|
||||
fsynca
|
||||
|
||||
fsyncb
|
||||
35
env/.local/bin/scripts/dmount
vendored
Executable file
35
env/.local/bin/scripts/dmount
vendored
Executable file
@@ -0,0 +1,35 @@
|
||||
#!/bin/bash
|
||||
sudo="sudo"
|
||||
[ doas ] && sudo="doas"
|
||||
|
||||
umo=0
|
||||
|
||||
while getopts "u" opt; do
|
||||
case "$opt" in
|
||||
u) umo=1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
shift $((OPTIND-1))
|
||||
[ "${1:-}" = "--" ] && shift
|
||||
|
||||
if [ $umo == 1 ]; then
|
||||
nf=4
|
||||
else
|
||||
nf=3
|
||||
fi
|
||||
|
||||
|
||||
parts="$(lsblk -rno path,size,type,mountpoint | grep -e part -e lvm | awk "NF==$nf {print \$1, \$2, \$3, \$4}")"
|
||||
|
||||
# choice="$(printf "$parts" | rofi -dmenu "beans" | sed 's/ .*//')"
|
||||
choice="$(printf "$parts" | fzf | sed 's/ .*//')"
|
||||
|
||||
[ "$choice" == "" ] && exit 0
|
||||
|
||||
if [ $umo == 1 ]; then
|
||||
$sudo umount $choice
|
||||
else
|
||||
$sudo mount $choice ~/u
|
||||
fi
|
||||
25
env/.local/bin/scripts/fzf-thumb
vendored
Executable file
25
env/.local/bin/scripts/fzf-thumb
vendored
Executable file
@@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
FZF_PREVIEW_LINES=50
|
||||
FZF_PREVIEW_COLUMN=50
|
||||
|
||||
script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||
|
||||
Preview_file="$script_dir/preview-image-typed.sh"
|
||||
|
||||
[ "$1" ] && view_dir="$1"
|
||||
|
||||
if [ ! "$view_dir" ]; then
|
||||
echo NO DIR
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd "$view_dir"
|
||||
|
||||
while :; do
|
||||
open_file=$(fzf --preview "$Preview_file {} $FZF_PREVIEW_LINES $FZF_PREVIEW_COLUMN")
|
||||
if [ "$open_file" ]; then
|
||||
mpv "$open_file" & disown
|
||||
else
|
||||
break
|
||||
fi
|
||||
done
|
||||
71
env/.local/bin/scripts/gen-thumb-md
vendored
Executable file
71
env/.local/bin/scripts/gen-thumb-md
vendored
Executable file
@@ -0,0 +1,71 @@
|
||||
#!/bin/bash
|
||||
script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||
|
||||
disable_thumb_gen=0
|
||||
disable_auto_editor=0
|
||||
while getopts "de" opt; do
|
||||
case "$opt" in
|
||||
d) disable_thumb_gen=1
|
||||
;;
|
||||
e) disable_auto_editor=1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
shift $((OPTIND-1))
|
||||
[ "${1:-}" = "--" ] && shift
|
||||
|
||||
|
||||
[ "$1" ] && view_dir="$1"
|
||||
|
||||
if [ ! "$view_dir" ]; then
|
||||
echo NO DIR
|
||||
exit 1
|
||||
fi
|
||||
|
||||
view_dir="$( cd "$view_dir" &> /dev/null && pwd )"
|
||||
|
||||
|
||||
to_file() {
|
||||
printf -- "- [%s](<%s>)" "$2" "$1" >> genthumb.md
|
||||
if [ $3 == 1 ]; then
|
||||
printf -- "\n - \n" "$2" "$2" >> genthumb.md
|
||||
else
|
||||
printf -- "\n - \n" "$2" "$1" >> genthumb.md
|
||||
fi
|
||||
}
|
||||
|
||||
gen_thumb() {
|
||||
file="$1"
|
||||
file_name="$(basename "$file")"
|
||||
case "$file" in
|
||||
*.avi|*.gif|*.mp4|*.mkv|*.webm|*.mov)
|
||||
if [ $disable_thumb_gen == 0 ]; then
|
||||
ffmpegthumbnailer -i "$file" -s 0 -q 5 -o "/tmp/gen-thumb-md/$file_name.png"
|
||||
fi
|
||||
to_file "$file" "$file_name" 1
|
||||
;;
|
||||
*)
|
||||
to_file "$file" "$file_name" 0
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
|
||||
if [ ! -d /tmp/gen-thumb-md ]; then
|
||||
mkdir /tmp/gen-thumb-md
|
||||
fi
|
||||
|
||||
|
||||
printf "# gen thumb $view_dir\n\n" > genthumb.md
|
||||
|
||||
files="$(find "$view_dir" -type f)"
|
||||
|
||||
printf "$files" | while read file; do
|
||||
gen_thumb "$file"
|
||||
done
|
||||
|
||||
|
||||
if [ $disable_auto_editor == 0 ]; then
|
||||
$EDITOR ./genthumb.md
|
||||
fi
|
||||
3
env/.local/bin/scripts/output-audio-switcher
vendored
Executable file
3
env/.local/bin/scripts/output-audio-switcher
vendored
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
pactl set-default-sink "$(pactl list short sinks | awk '{print $2}' | rofi -dmenu -p "Output:")" && notify-send "Audio switched!" || exit 0
|
||||
17
env/.local/bin/scripts/preview-image-typed.sh
vendored
Executable file
17
env/.local/bin/scripts/preview-image-typed.sh
vendored
Executable file
@@ -0,0 +1,17 @@
|
||||
preview() {
|
||||
# chafa "$@" -f sixel -s "$(($2-2))x$3" | sed 's/#/\n#/g'
|
||||
chafa "$1" --clear -f iterm -s $2x$3
|
||||
}
|
||||
|
||||
thumbnail="/tmp/thumbnail.png"
|
||||
|
||||
file="$1"; shift
|
||||
|
||||
case "$file" in
|
||||
*.avi|*.gif|*.mp4|*.mkv|*.webm|*.mov)
|
||||
ffmpegthumbnailer -i "$file" -s 0 -q 5 -o "/tmp/thumbnail.png"
|
||||
preview "$thumbnail" "$@"
|
||||
;;
|
||||
*)
|
||||
preview "$file" "$@"
|
||||
esac
|
||||
1
env/.local/bin/scripts/set-pri-java.sh
vendored
Executable file
1
env/.local/bin/scripts/set-pri-java.sh
vendored
Executable file
@@ -0,0 +1 @@
|
||||
doas renice -20 -p $(doas pidof java)
|
||||
3
env/.local/bin/scripts/setkey-x11-i3.sh
vendored
Executable file
3
env/.local/bin/scripts/setkey-x11-i3.sh
vendored
Executable file
@@ -0,0 +1,3 @@
|
||||
xmodmap -e "clear lock"
|
||||
xmodmap -e "keycode 9 = Caps_Lock NoSymbol Caps_Lock"
|
||||
xmodmap -e "keycode 66 = Escape NoSymbol Escape"
|
||||
31
env/.local/bin/system/backup/backup.sh
vendored
31
env/.local/bin/system/backup/backup.sh
vendored
@@ -1,31 +0,0 @@
|
||||
cd ~/
|
||||
|
||||
fsynca () {
|
||||
# t?
|
||||
rsync -RUurvn --size-only --delete-after $exclude $syncfile "$target"
|
||||
}
|
||||
|
||||
fsyncb () {
|
||||
printf "===confirm changes?\n"
|
||||
read -p "y/n: " uinput
|
||||
if [ "$uinput" != "n" ] && [ "$uinput" != "N" ]; then
|
||||
printf "\n\n\n"
|
||||
rsync -RUurv --progress --size-only --delete-after $exclude $syncfile "$target"
|
||||
printf "\n===end sync\n---------\n\n"
|
||||
fi
|
||||
}
|
||||
|
||||
syncfile="stuff .bash_profile .bashrc .surf/styles .gtkrc-2.0 .urlview .vimrc .xinitrc .Xresources .zshrc .p10k.zsh .gnupg .ssh .local/bin/lf-gadgets .config/dwm .config/wezterm .config/.profile .config/tmux .config/wireplumber .config/FreeTube .config/awesome .config/wlxoverlay .config/newsboat .var/app/dev.vencord.Vesktop/config/vesktop/themes .config/fastfetch .config/gtk-3.0 .config/rofi .config/lf .config/mutt .config/zsh .config/picom.conf .config/nvim .config/atuin .config/screenkey.json .config/vesktop/themes .keepass .config/Pinta .config/cmus .config/cava .config/hypr .config/waybar .local/share/applications/custom .local/share/osu"
|
||||
|
||||
# se shit
|
||||
syncfile="$syncfile /home/iceyrazor/.local/share/Steam/steamapps/compatdata/244850/pfx/drive_c/users/steamuser/AppData/Roaming/SpaceEngineers/Blueprints /home/iceyrazor/.local/share/Steam/steamapps/compatdata/244850/pfx/drive_c/users/steamuser/AppData/Roaming/SpaceEngineers/IngameScripts /home/iceyrazor/.local/share/Steam/steamapps/compatdata/244850/pfx/drive_c/users/steamuser/AppData/Roaming/SpaceEngineers/Saves"
|
||||
|
||||
target="/home/iceyrazor/mnt-backups/LINUX FILES/home/iceyrazor"
|
||||
exclude="--exclude node_modules --exclude node_modules_23 --exclude dontsync --exclude **/iceys-linux-stuffs --exclude **/target --exclude LinVAM/pyenv"
|
||||
|
||||
fsynca
|
||||
|
||||
printf "==CC-survival unsynced?\n\n"
|
||||
printf "==osu unsynced\n\n"
|
||||
|
||||
fsyncb
|
||||
21
env/.local/bin/system/backup/copy-to-git.sh
vendored
21
env/.local/bin/system/backup/copy-to-git.sh
vendored
@@ -1,21 +0,0 @@
|
||||
cd ~/
|
||||
|
||||
fsync () {
|
||||
rsync -RUurvn --delete-after $exclude $syncfile "$target"
|
||||
printf "===commit these changes?\n"
|
||||
read -p "y/n: " uinput
|
||||
if [ "$uinput" != "n" ] && [ "$uinput" != "N" ]; then
|
||||
printf "\n\n\n"
|
||||
rsync -RUurv --progress --delete-after $exclude $syncfile "$target"
|
||||
printf "\n===end sync\n---------\n\n"
|
||||
fi
|
||||
}
|
||||
|
||||
syncfile=".urlview .vimrc .Xresources .bashrc .zshrc .p10k.zsh .config/.profile .config/wezterm .config/dwm .config/tmux .config/awesome .config/rofi .config/lf .config/cava .config/hypr .config/waybar .config/picom.conf .config/nvim .config/atuin .config/screenkey.json .config/fastfetch stuff/manual-programs/suckless"
|
||||
|
||||
syncfile="$syncfile stuff/scripts/system/stbar stuff/scripts/system/url-handler.sh stuff/scripts/system/backup/copy-to-git.sh stuff/scripts/system/backup/backup.sh"
|
||||
syncfile="$syncfile stuff/scripts/system/neoboot.sh stuff/scripts/system/math.sh stuff/scripts/system/bri.sh stuff/scripts/system/restart-pipe.sh stuff/scripts/system/set-pri-java.sh"
|
||||
target=~/stuff/iceys-linux-stuffs
|
||||
exclude="--exclude check_weth.sh --exclude awesome/default --exclude lua-ls-cc-tweaked --exclude .config/nvim/plugin"
|
||||
|
||||
fsync
|
||||
19
env/.local/bin/system/kaomoji-picker.sh
vendored
Executable file
19
env/.local/bin/system/kaomoji-picker.sh
vendored
Executable file
@@ -0,0 +1,19 @@
|
||||
#!/bin/bash
|
||||
|
||||
# set up to work with https://github.com/Aptivi-Analytics/KaomojiList.git
|
||||
|
||||
KAO_FILE="$HOME/stuff/manual-programs/KaomojiList/kaomojis.json"
|
||||
|
||||
choices=$(jq '.[]|.categories|.[]|.name' "$KAO_FILE" | sed 's/"//g')
|
||||
|
||||
choice=$(echo "$choices" | sed /^$/d | rofi -dmenu "$prompt_message")
|
||||
|
||||
emojlist=$(jq -r --arg sel "$choice" '..| select(.name==$sel)? | .emoticons | .[]' "$KAO_FILE")
|
||||
|
||||
emoj=$(echo "$emojlist" | sed /^$/d | rofi -dmenu "$prompt_message")
|
||||
|
||||
if [ "$WAYLAND_DISPLAY" ]; then
|
||||
printf -- "$emoj" | wl-copy
|
||||
else
|
||||
printf -- "$emoj" | xclip -sel clip
|
||||
fi
|
||||
1
env/.local/bin/system/restart-pipe.sh
vendored
1
env/.local/bin/system/restart-pipe.sh
vendored
@@ -1 +0,0 @@
|
||||
systemctl --user restart wireplumber pipewire pipewire-pulse
|
||||
1
env/.local/bin/system/set-pri-java.sh
vendored
1
env/.local/bin/system/set-pri-java.sh
vendored
@@ -1 +0,0 @@
|
||||
sudo renice -20 -p $(sudo pidof java)
|
||||
81
env/.local/bin/system/start-scripts/autostart.sh
vendored
81
env/.local/bin/system/start-scripts/autostart.sh
vendored
@@ -1,63 +1,76 @@
|
||||
#!/bin/bash
|
||||
extra=0
|
||||
if [ "$(cat /etc/hostname)" == "Kasino" ]; then
|
||||
extra=0
|
||||
fi
|
||||
if [ "$(cat /etc/hostname)" == "Witchen" ]; then
|
||||
extra=1
|
||||
fi
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
sleep 0.1
|
||||
xset s 0
|
||||
nitrogen --restore &
|
||||
if [ $extra == 1 ]; then
|
||||
xrandr --dpi 90 &
|
||||
xrandr --output Virtual-1 --mode 1920x1080
|
||||
if [ "$XDG_CURRENT_DESKTOP" == "sway:wlroots" ]; then
|
||||
PID=$(pidof swaybg)
|
||||
swaybg -o HDMI-A-1 -i "/home/iceyrazor/stuff/media/wallpapers/purple/IMG_0276.jpg" -m fill -o DP-1 -i "/home/iceyrazor/stuff/media/wallpapers/purple/IMG_0276.jpg" -m fill & disown
|
||||
sleep 0.4s
|
||||
kill $PID
|
||||
fi
|
||||
|
||||
if [ -z "$WAYLAND_DISPLAY "]; then
|
||||
xrdb -merge /home/iceyrazor/.Xresources &
|
||||
|
||||
if [ -z "$WAYLAND_DISPLAY" ]; then
|
||||
xcompmgr &
|
||||
setxkbmap -option caps:swapescape
|
||||
fi
|
||||
|
||||
if [ $extra == 1 ]; then
|
||||
if [ -z $(pgrep -f stbar.sh) ]; then
|
||||
# ~/stuff/scripts/system/stbar/stbar.sh &
|
||||
echo hall
|
||||
fi
|
||||
fi
|
||||
# if [ -z $(pgrep -f stbar.sh) ]; then
|
||||
# # ~/stuff/scripts/system/stbar/stbar.sh &
|
||||
# fi
|
||||
|
||||
pipewire & disown
|
||||
if [ -z $(pgrep wireplumber) ]; then
|
||||
wireplumber & disown
|
||||
fi
|
||||
pipewire-pulse & disown
|
||||
# added openrc services... may go back to this later
|
||||
# pipewire & disown
|
||||
# if [ -z "$(pgrep wireplumber)" ]; then
|
||||
# wireplumber & disown
|
||||
# fi
|
||||
# pipewire-pulse & disown
|
||||
sleep 0.5s
|
||||
|
||||
if [ -z $(pgrep -f newsboat-fetch.sh) ]; then
|
||||
~/.config/dwm/newsboat-fetch.sh &
|
||||
fi
|
||||
if [ -z $(pgrep -f lessons-loop.sh) ]; then
|
||||
~/.config/dwm/lessons-loop.sh &
|
||||
if [ "$WAYLAND_DISPLAY" ] && [ -z "$(pgrep -f waybar)" ]; then
|
||||
waybar & disown
|
||||
fi
|
||||
|
||||
if [ -z $(pgrep wezterm) ]; then
|
||||
sleep 2
|
||||
wezterm -e ~/stuff/scripts/system/task.sh &
|
||||
if [ -z "$(pgrep -f newsboat-fetch.sh)" ]; then
|
||||
./newsboat-fetch.sh &
|
||||
fi
|
||||
if [ -z "$(pgrep -f lessons-loop.sh)" ]; then
|
||||
./lessons-loop.sh &
|
||||
fi
|
||||
|
||||
pactl load-module module-null-sink sink_name=audio-share
|
||||
|
||||
if [ -z "$(pgrep wezterm)" ]; then
|
||||
sleep 2
|
||||
wezterm -e ~/.local/bin/system/task.sh &
|
||||
fi
|
||||
|
||||
|
||||
if [ "$(cat /etc/hostname)" == "Kasino" ]; then
|
||||
if [ -z "$(pgrep vesktop)" ]; then
|
||||
sleep 2s
|
||||
flatpak run dev.vencord.Vesktop & disown
|
||||
dbus-run-session vesktop & disown
|
||||
fi
|
||||
|
||||
if [ -z "$(pgrep gajim)" ]; then
|
||||
sleep 2s
|
||||
gajim & disown
|
||||
fi
|
||||
|
||||
if [ -z "$(pgrep steam)" ]; then
|
||||
sleep 3s
|
||||
steam & disown
|
||||
fi
|
||||
|
||||
if [ -z "$(pgrep mumble)" ]; then
|
||||
QT_QPA_PLATFORMTHEME="" mumble & disown
|
||||
fi
|
||||
|
||||
if [ -z "$(pgrep mpd)" ]; then
|
||||
mpd & disown
|
||||
sleep 0.5s
|
||||
nohup mpd-mpris -host localhost > /dev/null 2> /dev/null < /dev/null & disown
|
||||
fi
|
||||
fi
|
||||
|
||||
[ -f "./autostart-priv.sh" ] && ./autostart-priv.sh
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
newsboat_loop(){
|
||||
notify-send -t 6000 -i '/home/iceyrazor/stuff/media/saved gifs/duolingo-crop-s.jpg' "Anki" "did you do your japanese lessons today?"
|
||||
sleep 2h
|
||||
sleep 1h
|
||||
newsboat_loop
|
||||
}
|
||||
newsboat_loop
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
newsboat_loop(){
|
||||
newsboat -x reload
|
||||
NO_PROXY=\".com,.org,.xyz,.chat,.social,.net,.co\" newsboat -x reload
|
||||
#newsboat -x print-unread | xargs -0 notify-send "newsboat feed"
|
||||
|
||||
unreads=$(newsboat -x print-unread)
|
||||
|
||||
1
env/.local/bin/system/stbar/killbar.sh
vendored
1
env/.local/bin/system/stbar/killbar.sh
vendored
@@ -6,5 +6,4 @@ pids=$(ps -AO pid | awk '/stbar.sh|newsboat-fetch.sh/ {print $1}')
|
||||
echo $pids
|
||||
$(sleep 3 && xsetroot -name "") & disown
|
||||
|
||||
sudo kill -KILL $pids
|
||||
doas kill -KILL $pids
|
||||
|
||||
2
env/.urlview
vendored
2
env/.urlview
vendored
@@ -26,4 +26,4 @@ REGEXP (((http|https|ftp|gopher)|mailto)[.:][^ >"\t]*|www\.[-a-z0-9.]+)[^ .,;\t>
|
||||
#COMMAND lynx %s
|
||||
#COMMAND netscape -remote 'openURL(%s)'
|
||||
#COMMAND url_handler.sh
|
||||
COMMAND ~/stuff/scripts/system/url-handler.sh
|
||||
COMMAND ~/.local/bin/system/url-handler.sh
|
||||
|
||||
24
env/.zshrc
vendored
24
env/.zshrc
vendored
@@ -2,10 +2,13 @@
|
||||
# Initialization code that may require console input (password prompts, [y/n]
|
||||
# confirmations, etc.) must go above this block; everything else may go below.
|
||||
|
||||
~/stuff/scripts/system/neoboot.sh
|
||||
~/.local/bin/system/neoboot.sh
|
||||
|
||||
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
|
||||
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
|
||||
if [[ "$wezterm" == "yes" ]]; then
|
||||
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
|
||||
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
|
||||
fi
|
||||
source ~/.config/zsh/powerlevel10k/powerlevel10k.zsh-theme
|
||||
fi
|
||||
|
||||
# Lines configured by zsh-newuser-install
|
||||
@@ -14,26 +17,29 @@ HISTSIZE=1000
|
||||
SAVEHIST=1000
|
||||
# End of lines configured by zsh-newuser-install
|
||||
|
||||
PS1='%B%F{white}[%B%F{magenta}%n%B%F{yellow}@%B%F{magenta}%M %B%F{cyan}%1~%B%F{white}]%B%F{default}$ '
|
||||
PS1='%B%F{white}[%B%F{magenta}%n%B%F{yellow}@%B%F{magenta}%M %B%F{cyan}%1~%B%F{white}]%B%F{default}∮ '
|
||||
#PS1='%B%F{white}[%B%F{red}Z%B%F{magenta}ARCH %B%F{cyan}%1~%B%F{white}]%B%F{default}$ '
|
||||
|
||||
|
||||
bindkey -v
|
||||
# Yank to the system clipboard
|
||||
function vi-yank-xclip {
|
||||
function vi-yank-clipboard {
|
||||
zle vi-yank
|
||||
echo "$CUTBUFFER" | xclip -selection clipboard
|
||||
if [ "$WAYLAND_DISPLAY" ]; then
|
||||
printf "$CUTBUFFER" | wl-copy
|
||||
else
|
||||
printf "$CUTBUFFER" | xclip -selection clipboard
|
||||
fi
|
||||
}
|
||||
|
||||
zle -N vi-yank-xclip
|
||||
bindkey -M vicmd ' y' vi-yank-xclip
|
||||
zle -N vi-yank-clipboard
|
||||
bindkey -M vicmd ' y' vi-yank-clipboard
|
||||
|
||||
#fzf search
|
||||
source <(fzf --zsh)
|
||||
|
||||
source ~/.config/.profile
|
||||
#bash --login -i -c 'source ~/.profile'
|
||||
source ~/.config/zsh/powerlevel10k/powerlevel10k.zsh-theme
|
||||
|
||||
# bindkey -a h backward-char
|
||||
# bindkey -a i forward-char
|
||||
|
||||
42
run.sh
42
run.sh
@@ -1,22 +1,50 @@
|
||||
#!/bin/bash
|
||||
[ "$DEV_ENV" == "" ] && export DEV_ENV=$HOME
|
||||
[ ! -d "$DEV_ENV" ] && echo DEV_ENV DOES NOT EXIST && exit 1
|
||||
|
||||
echo DEV_ENV "$DEV_ENV"
|
||||
[ ! -d "$DEV_ENV" ] && echo DEV_ENV DIRECTORY IS NOT FOUND && exit 1
|
||||
|
||||
run_runs_all=0
|
||||
list_runs=0
|
||||
while getopts "al" opt; do
|
||||
case "$opt" in
|
||||
a) run_runs_all=1
|
||||
;;
|
||||
l) list_runs=1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
shift $((OPTIND-1))
|
||||
[ "${1:-}" = "--" ] && shift
|
||||
|
||||
|
||||
script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||
|
||||
runs_dir="$(find $script_dir/runs -mindepth 1 -maxdepth 1 -type f -executable)"
|
||||
runs_dir_all="$(find $script_dir/runs-all -mindepth 1 -maxdepth 1 -type f -executable)"
|
||||
|
||||
if [ $list_runs == 1 ]; then
|
||||
printf " runs --------------\n"
|
||||
ls "$script_dir/runs"
|
||||
printf "\n runs-all ----------\n"
|
||||
ls "$script_dir/runs-all"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ "$1" != "" ]; then
|
||||
if [ "$1" == "ls" ]; then
|
||||
ls "$script_dir/runs"
|
||||
else
|
||||
. "$script_dir/runs/$1.sh"
|
||||
. "$script_dir/runs/$1.sh"
|
||||
if [ $run_runs_all == 1 ]; then
|
||||
. "$script_dir/runs-all/$1.sh"
|
||||
fi
|
||||
else
|
||||
for s in $runs_dir; do
|
||||
echo running $s
|
||||
. "$s"
|
||||
done
|
||||
|
||||
if [ $run_runs_all == 1 ]; then
|
||||
for s in $runs_dir_all; do
|
||||
echo running $s
|
||||
. "$s"
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
34
runs-all/env.sh
Executable file
34
runs-all/env.sh
Executable file
@@ -0,0 +1,34 @@
|
||||
#!/bin/bash
|
||||
echo DEPLOYING ENV ALL
|
||||
cp -r $script_dir/env/. "$DEV_ENV"
|
||||
[ -d "$script_dir/env_private/env/" ] && cp -r $script_dir/env_private/env/. "$DEV_ENV"
|
||||
|
||||
|
||||
if [ ! -f "/etc/profile" ]; then
|
||||
echo NO /etc/profile
|
||||
echo SKIPPING SETTING \$PATH
|
||||
else
|
||||
export PATH=""
|
||||
source /etc/profile
|
||||
paths="$PATH"
|
||||
path_dirs="$(find $DEV_ENV/.local/bin/scripts -type d)"
|
||||
yt_cli_dir="$(find ~/stuff/ -name youtube-playlist-cli -type d)"
|
||||
|
||||
path_dirs="$path_dirs
|
||||
$yt_cli_dir
|
||||
$(find ~/stuff/ -name theme-setter -type d)
|
||||
$(find ~/.local/bin/blender* -maxdepth 0 -type d)
|
||||
$(find $script_dir/keep/scripts -type d)
|
||||
$(find $script_dir/env_private/keep/scripts -type d)"
|
||||
|
||||
for s in $path_dirs; do
|
||||
echo "adding $s to path"
|
||||
paths="$paths:$s"
|
||||
done
|
||||
|
||||
echo "export PATH=\"$paths:\"" > "$DEV_ENV/.local/bin/system/paths.sh"
|
||||
echo "export YT_PLAYLIST_DIR=\"$yt_cli_dir\"" >> "$DEV_ENV/.local/bin/system/paths.sh"
|
||||
chmod u+x "$DEV_ENV/.local/bin/system/paths.sh"
|
||||
|
||||
fi
|
||||
echo -----------------
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user