install scripts. reorganization. soon to be deployable
82
env/.Xresources
vendored
Executable file
@@ -0,0 +1,82 @@
|
||||
! black
|
||||
*.color0: #263640
|
||||
*.color8: #4a697d
|
||||
|
||||
! red
|
||||
*.color1: #d12f2c
|
||||
*.color9: #fa3935
|
||||
|
||||
! green
|
||||
*.color2: #819400
|
||||
*.color10: #a4bd00
|
||||
|
||||
! yellow
|
||||
*.color3: #b08500
|
||||
*.color11: #d9a400
|
||||
|
||||
! blue
|
||||
*.color4: #2587cc
|
||||
*.color12: #09a2f5
|
||||
|
||||
! magenta
|
||||
*.color5: #696ebf
|
||||
*.color13: #8086e8
|
||||
|
||||
! cyan
|
||||
*.color6: #289c93
|
||||
*.color14: #00c5ba
|
||||
|
||||
! white
|
||||
*.color7: #bfbaac
|
||||
*.color15: #fdf6e3
|
||||
|
||||
Sxiv.background: #303030
|
||||
Sxiv.foreground: #00C0FF
|
||||
Sxiv.font: Hack-9
|
||||
|
||||
!tabs
|
||||
!*.tabbed.tabbar-fg: 2
|
||||
!*.tabbed.tabbar-bg: 0
|
||||
!*.tabbed.tab-fg: 3
|
||||
!*.tabbed.tab-bg: 1
|
||||
|
||||
!*.highlightColor: #bdbdbd
|
||||
!*.highlightTextColor: #000000
|
||||
|
||||
!start size
|
||||
!URxvt.geometry: 120x30
|
||||
URxvt.scrollBar: false
|
||||
|
||||
|
||||
URxvt.transparent: true
|
||||
URxvt.depth: 10
|
||||
URxvt.shading: 110
|
||||
!URxvt.font: xft:cousine:size=12
|
||||
URxvt.font: xft:Inconsolata-Regular:size=10
|
||||
URxvt.foreground: #e6e6e6
|
||||
URxvt.background: #000000
|
||||
|
||||
URxvt.tintColor: [100]#111111
|
||||
URxvt.cursorColor: #fabd2f
|
||||
|
||||
URxvt.inputMethod: ibus
|
||||
URxvt.preeditType: OverTheSpot
|
||||
|
||||
/*
|
||||
URxvt.keysym.Shift-Up: command:\033]720;1\007
|
||||
URxvt.keysym.Shift-Down: command:\033]721;1\007
|
||||
URxvt.keysym.Control-Up: \033[1;5A
|
||||
URxvt.keysym.Control-Down: \033[1;5B
|
||||
URxvt.keysym.Control-Right: \033[1;5C
|
||||
URxvt.keysym.Control-Left: \033[1;5D
|
||||
*/
|
||||
URxvt.iso14755: false
|
||||
!URxvt.perl-ext-common: default,resize-font
|
||||
!URxvt.perl-ext-common: default,resize-font,-tabbed
|
||||
URxvt.perl-ext-common: default
|
||||
|
||||
URxvt.keysym.Shift-Control-V: eval:paste_clipboard
|
||||
URxvt.keysym.Shift-Control-C: eval:selection_to_clipboard
|
||||
!URxvt.keysym.C-j: resize-font:smaller
|
||||
!URxvt.keysym.C-k: resize-font:bigger
|
||||
!URxvt.keysym.C-equal: resize-font:reset
|
||||
10
env/.bashrc
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
#
|
||||
# ~/.bashrc
|
||||
#
|
||||
|
||||
# If not running interactively, don't do anything
|
||||
[[ $- != *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
|
||||
source ~/.config/.profile
|
||||
132
env/.config/.profile
vendored
Executable file
@@ -0,0 +1,132 @@
|
||||
#!/bin/bash
|
||||
if [ -n "$BASH_SOURCE" ]; then
|
||||
# Bash or zsh (if BASH_SOURCE is defined)
|
||||
script="$BASH_SOURCE[0]"
|
||||
elif [ -n "$ZSH_VERSION" ]; then
|
||||
# Zsh
|
||||
script="${(%):-%x}"
|
||||
else
|
||||
# Dash or POSIX sh
|
||||
script="$0"
|
||||
fi
|
||||
|
||||
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
|
||||
|
||||
#if [ -z "${WAYLAND_DISPLAY}" ] && [ "${XDG_VTNR}" -eq 1 ]; then
|
||||
# exec sway > ~/.swaylog 2>&1
|
||||
#fi
|
||||
|
||||
# . torsocks on
|
||||
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 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 MANPAGER='nvim +Man!'
|
||||
# export DWM_NOTIF_FILE="/home/iceyrazor/stuff/scripts/c/SDL/notif/notif.txt"
|
||||
|
||||
export heartost="/home/iceyrazor/.steam/root/steamapps/music/Heartbound - OST"
|
||||
|
||||
alias fukn="sudo $@"
|
||||
alias ls='ls --color=auto'
|
||||
alias lss="fukn du -ahd 1 | sort -hr"
|
||||
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 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 watchlss="fukn watch \"du -ah -d 1 | sort -hr\""
|
||||
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 fman="bash -c 'compgen -c' | fzf | xargs man"
|
||||
alias etask="$EDITOR stuff/scripts/system/task.sh"
|
||||
|
||||
|
||||
#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 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 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'"
|
||||
|
||||
# mounting
|
||||
alias umsu="fukn umount u"
|
||||
alias umsu2="fukn umount u2"
|
||||
alias mswin="fukn mount -o umask=0,uid=nobody,gid=nobody /dev/sdb3 ~/windir"
|
||||
alias umswin="fukn umount ~/windir"
|
||||
alias msbak="doas cryptsetup open /dev/sda1 backups && doas mount /dev/mapper/backups ~/mnt-backups" # && fukn bindfs -u iceyrazor /mnt-backups ~/mnt-backups"
|
||||
alias umsbak="doas umount ~/mnt-backups && doas cryptsetup close backups" # " fukn umount /mnt-backups && fukn cryptsetup close backups"
|
||||
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 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 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"
|
||||
|
||||
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
|
||||
234
env/.config/atuin/config.toml
vendored
Normal file
@@ -0,0 +1,234 @@
|
||||
## where to store your database, default is your system data directory
|
||||
## linux/mac: ~/.local/share/atuin/history.db
|
||||
## windows: %USERPROFILE%/.local/share/atuin/history.db
|
||||
# db_path = "~/.history.db"
|
||||
|
||||
## where to store your encryption key, default is your system data directory
|
||||
## linux/mac: ~/.local/share/atuin/key
|
||||
## windows: %USERPROFILE%/.local/share/atuin/key
|
||||
# key_path = "~/.key"
|
||||
|
||||
## where to store your auth session token, default is your system data directory
|
||||
## linux/mac: ~/.local/share/atuin/session
|
||||
## windows: %USERPROFILE%/.local/share/atuin/session
|
||||
# session_path = "~/.session"
|
||||
|
||||
## date format used, either "us" or "uk"
|
||||
# dialect = "us"
|
||||
|
||||
## default timezone to use when displaying time
|
||||
## either "l", "local" to use the system's current local timezone, or an offset
|
||||
## from UTC in the format of "<+|->H[H][:M[M][:S[S]]]"
|
||||
## for example: "+9", "-05", "+03:30", "-01:23:45", etc.
|
||||
# timezone = "local"
|
||||
|
||||
## enable or disable automatic sync
|
||||
# auto_sync = true
|
||||
|
||||
## enable or disable automatic update checks
|
||||
# update_check = true
|
||||
|
||||
## address of the sync server
|
||||
# sync_address = "https://api.atuin.sh"
|
||||
|
||||
## how often to sync history. note that this is only triggered when a command
|
||||
## is ran, so sync intervals may well be longer
|
||||
## set it to 0 to sync after every command
|
||||
# sync_frequency = "10m"
|
||||
|
||||
## which search mode to use
|
||||
## possible values: prefix, fulltext, fuzzy, skim
|
||||
# search_mode = "fuzzy"
|
||||
|
||||
## which filter mode to use
|
||||
## possible values: global, host, session, directory
|
||||
# filter_mode = "global"
|
||||
|
||||
## With workspace filtering enabled, Atuin will filter for commands executed
|
||||
## in any directory within a git repository tree (default: false)
|
||||
# workspaces = false
|
||||
|
||||
## which filter mode to use when atuin is invoked from a shell up-key binding
|
||||
## the accepted values are identical to those of "filter_mode"
|
||||
## leave unspecified to use same mode set in "filter_mode"
|
||||
# filter_mode_shell_up_key_binding = "global"
|
||||
|
||||
## which search mode to use when atuin is invoked from a shell up-key binding
|
||||
## the accepted values are identical to those of "search_mode"
|
||||
## leave unspecified to use same mode set in "search_mode"
|
||||
# search_mode_shell_up_key_binding = "fuzzy"
|
||||
|
||||
## which style to use
|
||||
## possible values: auto, full, compact
|
||||
# style = "auto"
|
||||
|
||||
## the maximum number of lines the interface should take up
|
||||
## set it to 0 to always go full screen
|
||||
# inline_height = 0
|
||||
inline_height = 0
|
||||
|
||||
## Invert the UI - put the search bar at the top , Default to `false`
|
||||
# invert = false
|
||||
|
||||
## enable or disable showing a preview of the selected command
|
||||
## useful when the command is longer than the terminal width and is cut off
|
||||
# show_preview = true
|
||||
|
||||
## what to do when the escape key is pressed when searching
|
||||
## possible values: return-original, return-query
|
||||
# exit_mode = "return-original"
|
||||
|
||||
## possible values: emacs, subl
|
||||
# word_jump_mode = "emacs"
|
||||
|
||||
## characters that count as a part of a word
|
||||
# word_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
||||
|
||||
## number of context lines to show when scrolling by pages
|
||||
# scroll_context_lines = 1
|
||||
|
||||
## use ctrl instead of alt as the shortcut modifier key for numerical UI shortcuts
|
||||
## alt-0 .. alt-9
|
||||
# ctrl_n_shortcuts = false
|
||||
|
||||
## default history list format - can also be specified with the --format arg
|
||||
# history_format = "{time}\t{command}\t{duration}"
|
||||
|
||||
## prevent commands matching any of these regexes from being written to history.
|
||||
## Note that these regular expressions are unanchored, i.e. if they don't start
|
||||
## with ^ or end with $, they'll match anywhere in the command.
|
||||
## For details on the supported regular expression syntax, see
|
||||
## https://docs.rs/regex/latest/regex/#syntax
|
||||
# history_filter = [
|
||||
# "^secret-cmd",
|
||||
# "^innocuous-cmd .*--secret=.+",
|
||||
# ]
|
||||
|
||||
## prevent commands run with cwd matching any of these regexes from being written
|
||||
## to history. Note that these regular expressions are unanchored, i.e. if they don't
|
||||
## start with ^ or end with $, they'll match anywhere in CWD.
|
||||
## For details on the supported regular expression syntax, see
|
||||
## https://docs.rs/regex/latest/regex/#syntax
|
||||
# cwd_filter = [
|
||||
# "^/very/secret/area",
|
||||
# ]
|
||||
|
||||
## Configure the maximum height of the preview to show.
|
||||
## Useful when you have long scripts in your history that you want to distinguish
|
||||
## by more than the first few lines.
|
||||
# max_preview_height = 4
|
||||
|
||||
## Configure whether or not to show the help row, which includes the current Atuin
|
||||
## version (and whether an update is available), a keymap hint, and the total
|
||||
## amount of commands in your history.
|
||||
# show_help = true
|
||||
|
||||
## Configure whether or not to show tabs for search and inspect
|
||||
# show_tabs = true
|
||||
|
||||
## Defaults to true. This matches history against a set of default regex, and will not save it if we get a match. Defaults include
|
||||
## 1. AWS key id
|
||||
## 2. Github pat (old and new)
|
||||
## 3. Slack oauth tokens (bot, user)
|
||||
## 4. Slack webhooks
|
||||
## 5. Stripe live/test keys
|
||||
# secrets_filter = true
|
||||
|
||||
## Defaults to true. If enabled, upon hitting enter Atuin will immediately execute the command. Press tab to return to the shell and edit.
|
||||
# This applies for new installs. Old installs will keep the old behaviour unless configured otherwise.
|
||||
enter_accept = true
|
||||
|
||||
## Defaults to "emacs". This specifies the keymap on the startup of `atuin
|
||||
## search`. If this is set to "auto", the startup keymap mode in the Atuin
|
||||
## search is automatically selected based on the shell's keymap where the
|
||||
## keybinding is defined. If this is set to "emacs", "vim-insert", or
|
||||
## "vim-normal", the startup keymap mode in the Atuin search is forced to be
|
||||
## the specified one.
|
||||
# keymap_mode = "auto"
|
||||
keymap_mode = "vim-normal"
|
||||
|
||||
## Cursor style in each keymap mode. If specified, the cursor style is changed
|
||||
## in entering the cursor shape. Available values are "default" and
|
||||
## "{blink,steady}-{block,underline,bar}".
|
||||
# keymap_cursor = { emacs = "blink-block", vim_insert = "blink-block", vim_normal = "steady-block" }
|
||||
|
||||
# network_connect_timeout = 5
|
||||
# network_timeout = 5
|
||||
|
||||
## Timeout (in seconds) for acquiring a local database connection (sqlite)
|
||||
# local_timeout = 5
|
||||
|
||||
## Set this to true and Atuin will minimize motion in the UI - timers will not update live, etc.
|
||||
## Alternatively, set env NO_MOTION=true
|
||||
# prefers_reduced_motion = false
|
||||
|
||||
[stats]
|
||||
## Set commands where we should consider the subcommand for statistics. Eg, kubectl get vs just kubectl
|
||||
# common_subcommands = [
|
||||
# "apt",
|
||||
# "cargo",
|
||||
# "composer",
|
||||
# "dnf",
|
||||
# "docker",
|
||||
# "git",
|
||||
# "go",
|
||||
# "ip",
|
||||
# "kubectl",
|
||||
# "nix",
|
||||
# "nmcli",
|
||||
# "npm",
|
||||
# "pecl",
|
||||
# "pnpm",
|
||||
# "podman",
|
||||
# "port",
|
||||
# "systemctl",
|
||||
# "tmux",
|
||||
# "yarn",
|
||||
# ]
|
||||
|
||||
## Set commands that should be totally stripped and ignored from stats
|
||||
# common_prefix = ["sudo"]
|
||||
|
||||
## Set commands that will be completely ignored from stats
|
||||
# ignored_commands = [
|
||||
# "cd",
|
||||
# "ls",
|
||||
# "vi"
|
||||
# ]
|
||||
|
||||
[keys]
|
||||
# Defaults to true. If disabled, using the up/down key won't exit the TUI when scrolled past the first/last entry.
|
||||
# scroll_exits = false
|
||||
|
||||
[sync]
|
||||
# Enable sync v2 by default
|
||||
# This ensures that sync v2 is enabled for new installs only
|
||||
# In a later release it will become the default across the board
|
||||
records = true
|
||||
|
||||
[preview]
|
||||
## which preview strategy to use to calculate the preview height (respects max_preview_height).
|
||||
## possible values: auto, static
|
||||
## auto: length of the selected command.
|
||||
## static: length of the longest command stored in the history.
|
||||
# strategy = "auto"
|
||||
|
||||
[daemon]
|
||||
## Enables using the daemon to sync. Requires the daemon to be running in the background. Start it with `atuin daemon`
|
||||
# enabled = false
|
||||
|
||||
## How often the daemon should sync in seconds
|
||||
# sync_frequency = 300
|
||||
|
||||
## The path to the unix socket used by the daemon (on unix systems)
|
||||
## linux/mac: ~/.local/share/atuin/atuin.sock
|
||||
## windows: Not Supported
|
||||
# socket_path = "~/.local/share/atuin/atuin.sock"
|
||||
|
||||
## Use systemd socket activation rather than opening the given path (the path must still be correct for the client)
|
||||
## linux: false
|
||||
## mac/windows: Not Supported
|
||||
# systemd_socket = false
|
||||
|
||||
## The port that should be used for TCP on non unix systems
|
||||
# tcp_port = 8889
|
||||
BIN
env/.config/awesome/iceys-theme/layouts/cornerne.png
vendored
Normal file
|
After Width: | Height: | Size: 272 B |
BIN
env/.config/awesome/iceys-theme/layouts/cornernew.png
vendored
Normal file
|
After Width: | Height: | Size: 272 B |
BIN
env/.config/awesome/iceys-theme/layouts/cornernw.png
vendored
Normal file
|
After Width: | Height: | Size: 263 B |
BIN
env/.config/awesome/iceys-theme/layouts/cornernww.png
vendored
Normal file
|
After Width: | Height: | Size: 264 B |
BIN
env/.config/awesome/iceys-theme/layouts/cornerse.png
vendored
Normal file
|
After Width: | Height: | Size: 264 B |
BIN
env/.config/awesome/iceys-theme/layouts/cornersew.png
vendored
Normal file
|
After Width: | Height: | Size: 264 B |
BIN
env/.config/awesome/iceys-theme/layouts/cornersw.png
vendored
Normal file
|
After Width: | Height: | Size: 263 B |
BIN
env/.config/awesome/iceys-theme/layouts/cornersww.png
vendored
Normal file
|
After Width: | Height: | Size: 264 B |
BIN
env/.config/awesome/iceys-theme/layouts/dwindle.png
vendored
Normal file
|
After Width: | Height: | Size: 320 B |
BIN
env/.config/awesome/iceys-theme/layouts/dwindlew.png
vendored
Normal file
|
After Width: | Height: | Size: 320 B |
BIN
env/.config/awesome/iceys-theme/layouts/fairh.png
vendored
Normal file
|
After Width: | Height: | Size: 245 B |
BIN
env/.config/awesome/iceys-theme/layouts/fairhw.png
vendored
Normal file
|
After Width: | Height: | Size: 245 B |
BIN
env/.config/awesome/iceys-theme/layouts/fairv.png
vendored
Normal file
|
After Width: | Height: | Size: 246 B |
BIN
env/.config/awesome/iceys-theme/layouts/fairvw.png
vendored
Normal file
|
After Width: | Height: | Size: 246 B |
BIN
env/.config/awesome/iceys-theme/layouts/floating.png
vendored
Normal file
|
After Width: | Height: | Size: 282 B |
BIN
env/.config/awesome/iceys-theme/layouts/floatingw.png
vendored
Normal file
|
After Width: | Height: | Size: 282 B |
BIN
env/.config/awesome/iceys-theme/layouts/fullscreen.png
vendored
Normal file
|
After Width: | Height: | Size: 866 B |
BIN
env/.config/awesome/iceys-theme/layouts/fullscreenw.png
vendored
Normal file
|
After Width: | Height: | Size: 865 B |
BIN
env/.config/awesome/iceys-theme/layouts/magnifier.png
vendored
Normal file
|
After Width: | Height: | Size: 345 B |
BIN
env/.config/awesome/iceys-theme/layouts/magnifierw.png
vendored
Normal file
|
After Width: | Height: | Size: 345 B |
BIN
env/.config/awesome/iceys-theme/layouts/max.png
vendored
Normal file
|
After Width: | Height: | Size: 574 B |
BIN
env/.config/awesome/iceys-theme/layouts/maxw.png
vendored
Normal file
|
After Width: | Height: | Size: 581 B |
BIN
env/.config/awesome/iceys-theme/layouts/spiral.png
vendored
Normal file
|
After Width: | Height: | Size: 328 B |
BIN
env/.config/awesome/iceys-theme/layouts/spiralw.png
vendored
Normal file
|
After Width: | Height: | Size: 328 B |
BIN
env/.config/awesome/iceys-theme/layouts/tile.png
vendored
Normal file
|
After Width: | Height: | Size: 265 B |
BIN
env/.config/awesome/iceys-theme/layouts/tilebottom.png
vendored
Normal file
|
After Width: | Height: | Size: 264 B |
BIN
env/.config/awesome/iceys-theme/layouts/tilebottomw.png
vendored
Normal file
|
After Width: | Height: | Size: 264 B |
BIN
env/.config/awesome/iceys-theme/layouts/tileleft.png
vendored
Normal file
|
After Width: | Height: | Size: 266 B |
BIN
env/.config/awesome/iceys-theme/layouts/tileleftw.png
vendored
Normal file
|
After Width: | Height: | Size: 266 B |
BIN
env/.config/awesome/iceys-theme/layouts/tiletop.png
vendored
Normal file
|
After Width: | Height: | Size: 260 B |
BIN
env/.config/awesome/iceys-theme/layouts/tiletopw.png
vendored
Normal file
|
After Width: | Height: | Size: 265 B |
BIN
env/.config/awesome/iceys-theme/layouts/tilew.png
vendored
Normal file
|
After Width: | Height: | Size: 265 B |
BIN
env/.config/awesome/iceys-theme/submenu.png
vendored
Normal file
|
After Width: | Height: | Size: 440 B |
BIN
env/.config/awesome/iceys-theme/taglist/squarefw.png
vendored
Normal file
|
After Width: | Height: | Size: 187 B |
BIN
env/.config/awesome/iceys-theme/taglist/squarew.png
vendored
Normal file
|
After Width: | Height: | Size: 193 B |
152
env/.config/awesome/iceys-theme/theme.lua
vendored
Normal file
@@ -0,0 +1,152 @@
|
||||
---------------------------
|
||||
-- Default awesome theme --
|
||||
---------------------------
|
||||
|
||||
local theme_assets = require("beautiful.theme_assets")
|
||||
local xresources = require("beautiful.xresources")
|
||||
local dpi = xresources.apply_dpi
|
||||
|
||||
--local gfs = require("gears.filesystem")
|
||||
--local themes_path = gfs.get_themes_dir()
|
||||
local themes_path=debug.getinfo(1,"S").source:gsub("theme.lua",""):gsub("@","")
|
||||
|
||||
local theme = {}
|
||||
|
||||
theme.font = "inconsolata regular 10"
|
||||
|
||||
--#8558e6
|
||||
|
||||
theme.bg_normal = "#222222" --#432990
|
||||
theme.bg_focus = "#453996"
|
||||
theme.bg_urgent = "#ff0000"
|
||||
theme.bg_minimize = "#111111"
|
||||
theme.bg_systray = theme.bg_normal
|
||||
theme.tasklist_bg_normal = "#222222"
|
||||
theme.wibar_background = "#00000000"
|
||||
--theme.wibar_background = theme.bg_normal
|
||||
|
||||
--[[
|
||||
theme.bg_normal = "#432990"
|
||||
theme.bg_focus = "#453996"
|
||||
theme.bg_urgent = "#ff0000"
|
||||
theme.bg_minimize = "#444444"
|
||||
theme.bg_systray = theme.bg_normal
|
||||
--]]
|
||||
|
||||
theme.fg_normal = "#dddddd" --#aaaaaa
|
||||
theme.fg_focus = "#eeeeee"
|
||||
theme.fg_urgent = "#eeeeee"
|
||||
theme.fg_minimize = "#eeeeee"
|
||||
|
||||
theme.useless_gap = dpi(2)
|
||||
theme.border_width = dpi(2)
|
||||
theme.border_normal = "#222222"
|
||||
theme.border_focus = "#8558e6"
|
||||
theme.border_marked = "#91231c"
|
||||
theme.gap_single_client = true
|
||||
|
||||
-- There are other variable sets
|
||||
-- overriding the default one when
|
||||
-- defined, the sets are:
|
||||
-- taglist_[bg|fg]_[focus|urgent|occupied|empty|volatile]
|
||||
-- tasklist_[bg|fg]_[focus|urgent]
|
||||
-- titlebar_[bg|fg]_[normal|focus]
|
||||
-- tooltip_[font|opacity|fg_color|bg_color|border_width|border_color]
|
||||
-- mouse_finder_[color|timeout|animate_timeout|radius|factor]
|
||||
-- prompt_[fg|bg|fg_cursor|bg_cursor|font]
|
||||
-- hotkeys_[bg|fg|border_width|border_color|shape|opacity|modifiers_fg|label_bg|label_fg|group_margin|font|description_font]
|
||||
-- Example:
|
||||
--theme.taglist_bg_focus = "#ff0000"
|
||||
|
||||
theme.taglist_bg_empty="#222222"
|
||||
theme.taglist_bg_occupied=theme.taglist_bg_empty
|
||||
|
||||
-- Generate taglist squares:
|
||||
local taglist_square_size = dpi(4)
|
||||
theme.taglist_squares_sel = theme_assets.taglist_squares_sel(
|
||||
taglist_square_size, theme.fg_normal
|
||||
)
|
||||
theme.taglist_squares_unsel = theme_assets.taglist_squares_unsel(
|
||||
taglist_square_size, theme.fg_normal
|
||||
)
|
||||
|
||||
-- Variables set for theming notifications:
|
||||
-- notification_font
|
||||
-- notification_[bg|fg]
|
||||
-- notification_[width|height|margin]
|
||||
-- notification_[border_color|border_width|shape|opacity]
|
||||
|
||||
-- Variables set for theming the menu:
|
||||
-- menu_[bg|fg]_[normal|focus]
|
||||
-- menu_[border_color|border_width]
|
||||
theme.menu_submenu_icon = themes_path.."submenu.png"
|
||||
theme.menu_height = dpi(15)
|
||||
theme.menu_width = dpi(100)
|
||||
theme.notification_bg = "#222222"
|
||||
theme.notification_border_color = theme.border_focus
|
||||
theme.notification_font = "inconsolata regular 15"
|
||||
|
||||
-- You can add as many variables as
|
||||
-- you wish and access them by using
|
||||
-- beautiful.variable in your rc.lua
|
||||
--theme.bg_widget = "#cc0000"
|
||||
|
||||
-- Define the image to load
|
||||
theme.titlebar_close_button_normal = themes_path.."titlebar/close_normal.png"
|
||||
theme.titlebar_close_button_focus = themes_path.."titlebar/close_focus.png"
|
||||
|
||||
theme.titlebar_minimize_button_normal = themes_path.."titlebar/minimize_normal.png"
|
||||
theme.titlebar_minimize_button_focus = themes_path.."titlebar/minimize_focus.png"
|
||||
|
||||
theme.titlebar_ontop_button_normal_inactive = themes_path.."titlebar/ontop_normal_inactive.png"
|
||||
theme.titlebar_ontop_button_focus_inactive = themes_path.."titlebar/ontop_focus_inactive.png"
|
||||
theme.titlebar_ontop_button_normal_active = themes_path.."titlebar/ontop_normal_active.png"
|
||||
theme.titlebar_ontop_button_focus_active = themes_path.."titlebar/ontop_focus_active.png"
|
||||
|
||||
theme.titlebar_sticky_button_normal_inactive = themes_path.."titlebar/sticky_normal_inactive.png"
|
||||
theme.titlebar_sticky_button_focus_inactive = themes_path.."titlebar/sticky_focus_inactive.png"
|
||||
theme.titlebar_sticky_button_normal_active = themes_path.."titlebar/sticky_normal_active.png"
|
||||
theme.titlebar_sticky_button_focus_active = themes_path.."titlebar/sticky_focus_active.png"
|
||||
|
||||
theme.titlebar_floating_button_normal_inactive = themes_path.."titlebar/floating_normal_inactive.png"
|
||||
theme.titlebar_floating_button_focus_inactive = themes_path.."titlebar/floating_focus_inactive.png"
|
||||
theme.titlebar_floating_button_normal_active = themes_path.."titlebar/floating_normal_active.png"
|
||||
theme.titlebar_floating_button_focus_active = themes_path.."titlebar/floating_focus_active.png"
|
||||
|
||||
theme.titlebar_maximized_button_normal_inactive = themes_path.."titlebar/maximized_normal_inactive.png"
|
||||
theme.titlebar_maximized_button_focus_inactive = themes_path.."titlebar/maximized_focus_inactive.png"
|
||||
theme.titlebar_maximized_button_normal_active = themes_path.."titlebar/maximized_normal_active.png"
|
||||
theme.titlebar_maximized_button_focus_active = themes_path.."titlebar/maximized_focus_active.png"
|
||||
|
||||
theme.wallpaper = themes_path.."background.png"
|
||||
|
||||
-- You can use your own layout icons like this:
|
||||
theme.layout_fairh = themes_path.."layouts/fairhw.png"
|
||||
theme.layout_fairv = themes_path.."layouts/fairvw.png"
|
||||
theme.layout_floating = themes_path.."layouts/floatingw.png"
|
||||
theme.layout_magnifier = themes_path.."layouts/magnifierw.png"
|
||||
theme.layout_max = themes_path.."layouts/maxw.png"
|
||||
theme.layout_fullscreen = themes_path.."layouts/fullscreenw.png"
|
||||
theme.layout_tilebottom = themes_path.."layouts/tilebottomw.png"
|
||||
theme.layout_tileleft = themes_path.."layouts/tileleftw.png"
|
||||
theme.layout_tile = themes_path.."layouts/tilew.png"
|
||||
theme.layout_tiletop = themes_path.."layouts/tiletopw.png"
|
||||
theme.layout_spiral = themes_path.."layouts/spiralw.png"
|
||||
theme.layout_dwindle = themes_path.."layouts/dwindlew.png"
|
||||
theme.layout_cornernw = themes_path.."layouts/cornernww.png"
|
||||
theme.layout_cornerne = themes_path.."layouts/cornernew.png"
|
||||
theme.layout_cornersw = themes_path.."layouts/cornersww.png"
|
||||
theme.layout_cornerse = themes_path.."layouts/cornersew.png"
|
||||
|
||||
-- Generate Awesome icon:
|
||||
theme.awesome_icon = theme_assets.awesome_icon(
|
||||
theme.menu_height, theme.bg_focus, theme.fg_focus
|
||||
)
|
||||
|
||||
-- Define the icon theme for application icons. If not set then the icons
|
||||
-- from /usr/share/icons and /usr/share/icons/hicolor will be used.
|
||||
theme.icon_theme = nil
|
||||
|
||||
return theme
|
||||
|
||||
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80
|
||||
BIN
env/.config/awesome/iceys-theme/titlebar/close_focus.png
vendored
Normal file
|
After Width: | Height: | Size: 966 B |
BIN
env/.config/awesome/iceys-theme/titlebar/close_normal.png
vendored
Normal file
|
After Width: | Height: | Size: 966 B |
BIN
env/.config/awesome/iceys-theme/titlebar/floating_focus_active.png
vendored
Normal file
|
After Width: | Height: | Size: 386 B |
BIN
env/.config/awesome/iceys-theme/titlebar/floating_focus_inactive.png
vendored
Normal file
|
After Width: | Height: | Size: 237 B |
BIN
env/.config/awesome/iceys-theme/titlebar/floating_normal_active.png
vendored
Normal file
|
After Width: | Height: | Size: 386 B |
BIN
env/.config/awesome/iceys-theme/titlebar/floating_normal_inactive.png
vendored
Normal file
|
After Width: | Height: | Size: 237 B |
BIN
env/.config/awesome/iceys-theme/titlebar/maximized_focus_active.png
vendored
Normal file
|
After Width: | Height: | Size: 480 B |
BIN
env/.config/awesome/iceys-theme/titlebar/maximized_focus_inactive.png
vendored
Normal file
|
After Width: | Height: | Size: 452 B |
BIN
env/.config/awesome/iceys-theme/titlebar/maximized_normal_active.png
vendored
Normal file
|
After Width: | Height: | Size: 480 B |
BIN
env/.config/awesome/iceys-theme/titlebar/maximized_normal_inactive.png
vendored
Normal file
|
After Width: | Height: | Size: 452 B |
BIN
env/.config/awesome/iceys-theme/titlebar/minimize_focus.png
vendored
Normal file
|
After Width: | Height: | Size: 234 B |
BIN
env/.config/awesome/iceys-theme/titlebar/minimize_normal.png
vendored
Normal file
|
After Width: | Height: | Size: 225 B |
BIN
env/.config/awesome/iceys-theme/titlebar/ontop_focus_active.png
vendored
Normal file
|
After Width: | Height: | Size: 467 B |
BIN
env/.config/awesome/iceys-theme/titlebar/ontop_focus_inactive.png
vendored
Normal file
|
After Width: | Height: | Size: 604 B |
BIN
env/.config/awesome/iceys-theme/titlebar/ontop_normal_active.png
vendored
Normal file
|
After Width: | Height: | Size: 467 B |
BIN
env/.config/awesome/iceys-theme/titlebar/ontop_normal_inactive.png
vendored
Normal file
|
After Width: | Height: | Size: 604 B |
BIN
env/.config/awesome/iceys-theme/titlebar/sticky_focus_active.png
vendored
Normal file
|
After Width: | Height: | Size: 654 B |
BIN
env/.config/awesome/iceys-theme/titlebar/sticky_focus_inactive.png
vendored
Normal file
|
After Width: | Height: | Size: 758 B |
BIN
env/.config/awesome/iceys-theme/titlebar/sticky_normal_active.png
vendored
Normal file
|
After Width: | Height: | Size: 654 B |
BIN
env/.config/awesome/iceys-theme/titlebar/sticky_normal_inactive.png
vendored
Normal file
|
After Width: | Height: | Size: 758 B |
271
env/.config/awesome/keys-US-colemak.lua
vendored
Normal file
@@ -0,0 +1,271 @@
|
||||
pcall(require, "luarocks.loader")
|
||||
|
||||
-- Standard awesome library
|
||||
local gears = require("gears")
|
||||
local awful = require("awful")
|
||||
require("awful.autofocus")
|
||||
-- Notification library
|
||||
local naughty = require("naughty")
|
||||
local menubar = require("menubar")
|
||||
local hotkeys_popup = require("awful.hotkeys_popup")
|
||||
|
||||
local module = {}
|
||||
|
||||
module.set_global_keys = function ()
|
||||
-- {{{ Key bindings
|
||||
globalkeys = gears.table.join(
|
||||
awful.key({ modkey, }, "F1", hotkeys_popup.show_help,
|
||||
{description="show help", group="awesome"}),
|
||||
awful.key({ modkey, }, "b", awful.tag.viewprev,
|
||||
{description = "view previous", group = "tag"}),
|
||||
awful.key({ modkey, }, "k", awful.tag.viewnext,
|
||||
{description = "view next", group = "tag"}),
|
||||
awful.key({ modkey, }, "Escape", awful.tag.history.restore,
|
||||
{description = "go back", group = "tag"}),
|
||||
|
||||
awful.key({ modkey, }, "n",
|
||||
function ()
|
||||
awful.client.focus.byidx( 1)
|
||||
end,
|
||||
{description = "focus next by index", group = "client"}
|
||||
),
|
||||
awful.key({ modkey, }, "e",
|
||||
function ()
|
||||
awful.client.focus.byidx(-1)
|
||||
end,
|
||||
{description = "focus previous by index", group = "client"}
|
||||
),
|
||||
awful.key({ modkey, }, "w", function () mymainmenu:show() end,
|
||||
{description = "show main menu", group = "awesome"}),
|
||||
|
||||
-- Layout manipulation
|
||||
awful.key({ modkey, "Shift" }, "n", function () awful.client.swap.byidx( 1) end,
|
||||
{description = "swap with next client by index", group = "client"}),
|
||||
awful.key({ modkey, "Shift" }, "e", function () awful.client.swap.byidx( -1) end,
|
||||
{description = "swap with previous client by index", group = "client"}),
|
||||
awful.key({ modkey, "Control" }, "n", function () awful.screen.focus_relative( 1) end,
|
||||
{description = "focus the next screen", group = "screen"}),
|
||||
awful.key({ modkey, "Control" }, "e", function () awful.screen.focus_relative(-1) end,
|
||||
{description = "focus the previous screen", group = "screen"}),
|
||||
awful.key({ modkey, }, "l", awful.client.urgent.jumpto,
|
||||
{description = "jump to urgent client", group = "client"}),
|
||||
awful.key({ modkey, }, "Tab",
|
||||
function ()
|
||||
awful.client.focus.history.previous()
|
||||
if client.focus then
|
||||
client.focus:raise()
|
||||
end
|
||||
end,
|
||||
{description = "go back", group = "client"}),
|
||||
|
||||
-- Standard program
|
||||
awful.key({ modkey, }, "Return", function () awful.spawn(terminal) end,
|
||||
{description = "open a terminal", group = "launcher"}),
|
||||
awful.key({ modkey, "Control" }, "p", awesome.restart,
|
||||
{description = "reload awesome", group = "awesome"}),
|
||||
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, }, "i", function () awful.tag.incmwfact( 0.05) end,
|
||||
{description = "increase master width factor", group = "layout"}),
|
||||
awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end,
|
||||
{description = "decrease master width factor", group = "layout"}),
|
||||
awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1, nil, true) end,
|
||||
{description = "increase the number of master clients", group = "layout"}),
|
||||
awful.key({ modkey, "Shift" }, "i", function () awful.tag.incnmaster(-1, nil, true) end,
|
||||
{description = "decrease the number of master clients", group = "layout"}),
|
||||
awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1, nil, true) end,
|
||||
{description = "increase the number of columns", group = "layout"}),
|
||||
awful.key({ modkey, "Control" }, "i", function () awful.tag.incncol(-1, nil, true) end,
|
||||
{description = "decrease the number of columns", group = "layout"}),
|
||||
awful.key({ modkey, "Control" }, "space", function () awful.layout.inc( 1) end,
|
||||
{description = "select next", group = "layout"}),
|
||||
awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(-1) end,
|
||||
{description = "select previous", group = "layout"}),
|
||||
|
||||
awful.key({ modkey, "Shift", "Control" }, "k",
|
||||
function ()
|
||||
local c = awful.client.restore()
|
||||
-- Focus restored client
|
||||
if c then
|
||||
c:emit_signal(
|
||||
"request::activate", "key.unminimize", {raise = true}
|
||||
)
|
||||
end
|
||||
end,
|
||||
{description = "restore minimized", group = "client"}),
|
||||
|
||||
-- Prompt
|
||||
awful.key({ modkey }, "p", function () awful.screen.focused().mypromptbox:run() end,
|
||||
{description = "run prompt", group = "launcher"}),
|
||||
|
||||
awful.key({ modkey }, "s", function () os.execute("rofi -show drun") end, {description = "rofi drun", group = "launcher"}),
|
||||
|
||||
awful.key({ modkey }, "x",
|
||||
function ()
|
||||
awful.prompt.run {
|
||||
prompt = "Run Lua code: ",
|
||||
textbox = awful.screen.focused().mypromptbox.widget,
|
||||
exe_callback = awful.util.eval,
|
||||
history_path = awful.util.get_cache_dir() .. "/history_eval"
|
||||
}
|
||||
end,
|
||||
{description = "lua execute prompt", group = "awesome"}),
|
||||
-- Menubar
|
||||
awful.key({ modkey }, ";", function() menubar.show() end,
|
||||
{description = "show the menubar", group = "launcher"}),
|
||||
|
||||
awful.key({ }, "XF86AudioPrev", function ()
|
||||
awful.spawn.with_shell("setxkbmap us")
|
||||
awesome.restart()
|
||||
end),
|
||||
awful.key({ }, "XF86AudioNext", function ()
|
||||
awful.spawn.with_shell("setxkbmap us -variant colemak")
|
||||
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({ }, "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),
|
||||
awful.key({ }, "XF86AudioMute", function ()
|
||||
awful.spawn("pactl set-source-mute @DEFAULT_SOURCE@ toggle", false)
|
||||
awful.spawn.with_shell("notify-send 'mic' \"$(pactl get-source-mute @DEFAULT_SOURCE@)\"", false)
|
||||
end),
|
||||
--also pamixer -i 5 #to increase 5%
|
||||
--pamixer -d 5 #to decrease 5%
|
||||
|
||||
awful.key({ }, "Print", function()
|
||||
awful.spawn.with_shell("ffmpeg -f x11grab -framerate 1 -video_size 1920x1200 -i :0.0 -vframes 1 -crf 0 ~/Pictures/Screenshots/$(date '+%m-%d-%Y-%I-%M')_${RANDOM}_screenshot.jpg")
|
||||
gears.timer.start_new(3, function()
|
||||
naughty.notify({title="screenshot taken",text="possibly"})
|
||||
return false -- Stop the timer after the first iteration
|
||||
end)
|
||||
end),
|
||||
|
||||
awful.key({ "Shift" }, "Print", function()
|
||||
awful.spawn.with_shell("/bin/flameshot screen")
|
||||
end),
|
||||
|
||||
awful.key({ }, "Print", function () awful.util.spawn("flameshot gui") end)
|
||||
)
|
||||
|
||||
-- Bind all key numbers to tags.
|
||||
-- Be careful: we use keycodes to make it work on any keyboard layout.
|
||||
-- This should map on the top row of your keyboard, usually 1 to 9.
|
||||
for i = 1, 9 do
|
||||
globalkeys = gears.table.join(globalkeys,
|
||||
-- View tag only.
|
||||
awful.key({ modkey }, "#" .. i + 9,
|
||||
function ()
|
||||
local screen = awful.screen.focused()
|
||||
local tag = screen.tags[i]
|
||||
if tag then
|
||||
tag:view_only()
|
||||
end
|
||||
end,
|
||||
{description = "view tag #"..i, group = "tag"}),
|
||||
-- Toggle tag display.
|
||||
awful.key({ modkey, "Control" }, "#" .. i + 9,
|
||||
function ()
|
||||
local screen = awful.screen.focused()
|
||||
local tag = screen.tags[i]
|
||||
if tag then
|
||||
awful.tag.viewtoggle(tag)
|
||||
end
|
||||
end,
|
||||
{description = "toggle tag #" .. i, group = "tag"}),
|
||||
-- Move client to tag.
|
||||
awful.key({ modkey, "Shift" }, "#" .. i + 9,
|
||||
function ()
|
||||
if client.focus then
|
||||
local tag = client.focus.screen.tags[i]
|
||||
if tag then
|
||||
client.focus:move_to_tag(tag)
|
||||
end
|
||||
end
|
||||
end,
|
||||
{description = "move focused client to tag #"..i, group = "tag"}),
|
||||
-- Toggle tag on focused client.
|
||||
awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
|
||||
function ()
|
||||
if client.focus then
|
||||
local tag = client.focus.screen.tags[i]
|
||||
if tag then
|
||||
client.focus:toggle_tag(tag)
|
||||
end
|
||||
end
|
||||
end,
|
||||
{description = "toggle focused client on tag #" .. i, group = "tag"})
|
||||
)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
module.set_client_keys = function ()
|
||||
clientkeys = gears.table.join(
|
||||
awful.key({ modkey, }, "t",
|
||||
function (c)
|
||||
c.fullscreen = not c.fullscreen
|
||||
c:raise()
|
||||
end,
|
||||
{description = "toggle fullscreen", group = "client"}),
|
||||
awful.key({ modkey, }, "q", function (c) c:kill() end,
|
||||
{description = "close", group = "client"}),
|
||||
awful.key({ modkey, }, "space", awful.client.floating.toggle ,
|
||||
{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, }, "y", function (c) c:move_to_screen() end,
|
||||
{description = "move to screen", group = "client"}),
|
||||
awful.key({ modkey, }, "g", function (c) c.ontop = not c.ontop end,
|
||||
{description = "toggle keep on top", group = "client"}),
|
||||
awful.key({ modkey, "Shift" }, "r", function (c) c.sticky = not c.sticky end,
|
||||
{description = "toggle sticky mode", group="client"}),
|
||||
awful.key({ modkey, "Shift" }, "k",
|
||||
function (c)
|
||||
-- The client currently has the input focus, so it cannot be
|
||||
-- minimized, since minimized clients can't have the focus.
|
||||
c.minimized = true
|
||||
end ,
|
||||
{description = "minimize", group = "client"}),
|
||||
awful.key({ modkey, }, "m",
|
||||
function (c)
|
||||
c.maximized = not c.maximized
|
||||
c:raise()
|
||||
end ,
|
||||
{description = "(un)maximize", group = "client"}),
|
||||
awful.key({ modkey, "Control" }, "m",
|
||||
function (c)
|
||||
c.maximized_vertical = not c.maximized_vertical
|
||||
c:raise()
|
||||
end ,
|
||||
{description = "(un)maximize vertically", group = "client"}),
|
||||
awful.key({ modkey, "Shift" }, "m",
|
||||
function (c)
|
||||
c.maximized_horizontal = not c.maximized_horizontal
|
||||
c:raise()
|
||||
end ,
|
||||
{description = "(un)maximize horizontally", group = "client"}),
|
||||
|
||||
awful.key({ modkey }, 0,
|
||||
function()
|
||||
local screen = awful.screen.focused()
|
||||
for i = 1,9 do
|
||||
local tag = screen.tags[i]
|
||||
if tag and tag.selected==false then
|
||||
awful.tag.viewtoggle(tag)
|
||||
end
|
||||
end
|
||||
end,
|
||||
{description = "view all tags", group = "tag"})
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
return module
|
||||
272
env/.config/awesome/keys-US.lua
vendored
Normal file
@@ -0,0 +1,272 @@
|
||||
pcall(require, "luarocks.loader")
|
||||
|
||||
-- Standard awesome library
|
||||
local gears = require("gears")
|
||||
local awful = require("awful")
|
||||
require("awful.autofocus")
|
||||
-- Notification library
|
||||
local naughty = require("naughty")
|
||||
local menubar = require("menubar")
|
||||
local hotkeys_popup = require("awful.hotkeys_popup")
|
||||
|
||||
local module = {}
|
||||
|
||||
module.set_global_keys = function ()
|
||||
-- {{{ Key bindings
|
||||
globalkeys = gears.table.join(
|
||||
awful.key({ modkey, }, "F1", hotkeys_popup.show_help,
|
||||
{description="show help", group="awesome"}),
|
||||
awful.key({ modkey, }, "b", awful.tag.viewprev,
|
||||
{description = "view previous", group = "tag"}),
|
||||
awful.key({ modkey, }, "n", awful.tag.viewnext,
|
||||
{description = "view next", group = "tag"}),
|
||||
awful.key({ modkey, }, "Escape", awful.tag.history.restore,
|
||||
{description = "go back", group = "tag"}),
|
||||
|
||||
awful.key({ modkey, }, "j",
|
||||
function ()
|
||||
awful.client.focus.byidx( 1)
|
||||
end,
|
||||
{description = "focus next by index", group = "client"}
|
||||
),
|
||||
awful.key({ modkey, }, "k",
|
||||
function ()
|
||||
awful.client.focus.byidx(-1)
|
||||
end,
|
||||
{description = "focus previous by index", group = "client"}
|
||||
),
|
||||
awful.key({ modkey, }, "w", function () mymainmenu:show() end,
|
||||
{description = "show main menu", group = "awesome"}),
|
||||
|
||||
-- Layout manipulation
|
||||
awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end,
|
||||
{description = "swap with next client by index", group = "client"}),
|
||||
awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end,
|
||||
{description = "swap with previous client by index", group = "client"}),
|
||||
awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end,
|
||||
{description = "focus the next screen", group = "screen"}),
|
||||
awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end,
|
||||
{description = "focus the previous screen", group = "screen"}),
|
||||
awful.key({ modkey, }, "u", awful.client.urgent.jumpto,
|
||||
{description = "jump to urgent client", group = "client"}),
|
||||
awful.key({ modkey, }, "Tab",
|
||||
function ()
|
||||
awful.client.focus.history.previous()
|
||||
if client.focus then
|
||||
client.focus:raise()
|
||||
end
|
||||
end,
|
||||
{description = "go back", group = "client"}),
|
||||
|
||||
-- Standard program
|
||||
awful.key({ modkey, }, "Return", function () awful.spawn(terminal) end,
|
||||
{description = "open a terminal", group = "launcher"}),
|
||||
awful.key({ modkey, "Control" }, "r", awesome.restart,
|
||||
{description = "reload awesome", group = "awesome"}),
|
||||
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, }, "l", function () awful.tag.incmwfact( 0.05) end,
|
||||
{description = "increase master width factor", group = "layout"}),
|
||||
awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end,
|
||||
{description = "decrease master width factor", group = "layout"}),
|
||||
awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1, nil, true) end,
|
||||
{description = "increase the number of master clients", group = "layout"}),
|
||||
awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1, nil, true) end,
|
||||
{description = "decrease the number of master clients", group = "layout"}),
|
||||
awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1, nil, true) end,
|
||||
{description = "increase the number of columns", group = "layout"}),
|
||||
awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1, nil, true) end,
|
||||
{description = "decrease the number of columns", group = "layout"}),
|
||||
awful.key({ modkey, "Control" }, "space", function () awful.layout.inc( 1) end,
|
||||
{description = "select next", group = "layout"}),
|
||||
awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(-1) end,
|
||||
{description = "select previous", group = "layout"}),
|
||||
|
||||
awful.key({ modkey, "Shift", "Control" }, "n",
|
||||
function ()
|
||||
local c = awful.client.restore()
|
||||
-- Focus restored client
|
||||
if c then
|
||||
c:emit_signal(
|
||||
"request::activate", "key.unminimize", {raise = true}
|
||||
)
|
||||
end
|
||||
end,
|
||||
{description = "restore minimized", group = "client"}),
|
||||
|
||||
-- Prompt
|
||||
awful.key({ modkey }, "r", function () awful.screen.focused().mypromptbox:run() end,
|
||||
{description = "run prompt", group = "launcher"}),
|
||||
|
||||
awful.key({ modkey }, "d", function () os.execute("rofi -x11 -show drun") end, {description = "rofi drun", group = "launcher"}),
|
||||
awful.key({ modkey , "Shift" }, "d", function () os.execute("echo \"\" | rofi -x11 -dmenu -p 'Search' | xargs -I{} xdg-open 'https://searx.iceyfox.xyz/search?q={}'") end, {description = "rofi search", group = "launcher"}),
|
||||
|
||||
awful.key({ modkey }, "x",
|
||||
function ()
|
||||
awful.prompt.run {
|
||||
prompt = "Run Lua code: ",
|
||||
textbox = awful.screen.focused().mypromptbox.widget,
|
||||
exe_callback = awful.util.eval,
|
||||
history_path = awful.util.get_cache_dir() .. "/history_eval"
|
||||
}
|
||||
end,
|
||||
{description = "lua execute prompt", group = "awesome"}),
|
||||
-- Menubar
|
||||
awful.key({ modkey }, "p", function() menubar.show() end,
|
||||
{description = "show the menubar", group = "launcher"}),
|
||||
|
||||
awful.key({ }, "XF86AudioPrev", function ()
|
||||
awful.spawn.with_shell("setxkbmap us")
|
||||
awesome.restart()
|
||||
end),
|
||||
awful.key({ }, "XF86AudioNext", function ()
|
||||
awful.spawn.with_shell("setxkbmap us -variant colemak")
|
||||
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({ }, "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),
|
||||
awful.key({ }, "XF86AudioMute", function ()
|
||||
awful.spawn("pactl set-source-mute @DEFAULT_SOURCE@ toggle", false)
|
||||
awful.spawn.with_shell("notify-send 'mic' \"$(pactl get-source-mute @DEFAULT_SOURCE@)\"", false)
|
||||
end),
|
||||
--also pamixer -i 5 #to increase 5%
|
||||
--pamixer -d 5 #to decrease 5%
|
||||
|
||||
awful.key({ }, "Print", function()
|
||||
awful.spawn.with_shell("ffmpeg -f x11grab -framerate 1 -video_size 1920x1200 -i :0.0 -vframes 1 -crf 0 ~/Pictures/Screenshots/$(date '+%m-%d-%Y-%I-%M')_${RANDOM}_screenshot.jpg")
|
||||
gears.timer.start_new(3, function()
|
||||
naughty.notify({title="screenshot taken",text="possibly"})
|
||||
return false -- Stop the timer after the first iteration
|
||||
end)
|
||||
end),
|
||||
|
||||
awful.key({ "Shift" }, "Print", function()
|
||||
awful.spawn.with_shell("/bin/flameshot screen")
|
||||
end),
|
||||
|
||||
awful.key({ "Control", "Shift" }, "Print", function () awful.util.spawn("flameshot gui") end)
|
||||
)
|
||||
|
||||
-- Bind all key numbers to tags.
|
||||
-- Be careful: we use keycodes to make it work on any keyboard layout.
|
||||
-- This should map on the top row of your keyboard, usually 1 to 9.
|
||||
for i = 1, 9 do
|
||||
globalkeys = gears.table.join(globalkeys,
|
||||
-- View tag only.
|
||||
awful.key({ modkey }, "#" .. i + 9,
|
||||
function ()
|
||||
local screen = awful.screen.focused()
|
||||
local tag = screen.tags[i]
|
||||
if tag then
|
||||
tag:view_only()
|
||||
end
|
||||
end,
|
||||
{description = "view tag #"..i, group = "tag"}),
|
||||
-- Toggle tag display.
|
||||
awful.key({ modkey, "Control" }, "#" .. i + 9,
|
||||
function ()
|
||||
local screen = awful.screen.focused()
|
||||
local tag = screen.tags[i]
|
||||
if tag then
|
||||
awful.tag.viewtoggle(tag)
|
||||
end
|
||||
end,
|
||||
{description = "toggle tag #" .. i, group = "tag"}),
|
||||
-- Move client to tag.
|
||||
awful.key({ modkey, "Shift" }, "#" .. i + 9,
|
||||
function ()
|
||||
if client.focus then
|
||||
local tag = client.focus.screen.tags[i]
|
||||
if tag then
|
||||
client.focus:move_to_tag(tag)
|
||||
end
|
||||
end
|
||||
end,
|
||||
{description = "move focused client to tag #"..i, group = "tag"}),
|
||||
-- Toggle tag on focused client.
|
||||
awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
|
||||
function ()
|
||||
if client.focus then
|
||||
local tag = client.focus.screen.tags[i]
|
||||
if tag then
|
||||
client.focus:toggle_tag(tag)
|
||||
end
|
||||
end
|
||||
end,
|
||||
{description = "toggle focused client on tag #" .. i, group = "tag"})
|
||||
)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
module.set_client_keys = function ()
|
||||
clientkeys = gears.table.join(
|
||||
awful.key({ modkey, }, "f",
|
||||
function (c)
|
||||
c.fullscreen = not c.fullscreen
|
||||
c:raise()
|
||||
end,
|
||||
{description = "toggle fullscreen", group = "client"}),
|
||||
awful.key({ modkey, }, "q", function (c) c:kill() end,
|
||||
{description = "close", group = "client"}),
|
||||
awful.key({ modkey, }, "space", awful.client.floating.toggle ,
|
||||
{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,
|
||||
{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"}),
|
||||
awful.key({ modkey, "Shift" }, "s", function (c) c.sticky = not c.sticky end,
|
||||
{description = "toggle sticky mode", group="client"}),
|
||||
awful.key({ modkey, "Shift" }, "n",
|
||||
function (c)
|
||||
-- The client currently has the input focus, so it cannot be
|
||||
-- minimized, since minimized clients can't have the focus.
|
||||
c.minimized = true
|
||||
end ,
|
||||
{description = "minimize", group = "client"}),
|
||||
awful.key({ modkey, }, "m",
|
||||
function (c)
|
||||
c.maximized = not c.maximized
|
||||
c:raise()
|
||||
end ,
|
||||
{description = "(un)maximize", group = "client"}),
|
||||
awful.key({ modkey, "Control" }, "m",
|
||||
function (c)
|
||||
c.maximized_vertical = not c.maximized_vertical
|
||||
c:raise()
|
||||
end ,
|
||||
{description = "(un)maximize vertically", group = "client"}),
|
||||
awful.key({ modkey, "Shift" }, "m",
|
||||
function (c)
|
||||
c.maximized_horizontal = not c.maximized_horizontal
|
||||
c:raise()
|
||||
end ,
|
||||
{description = "(un)maximize horizontally", group = "client"}),
|
||||
|
||||
awful.key({ modkey }, 0,
|
||||
function()
|
||||
local screen = awful.screen.focused()
|
||||
for i = 1,9 do
|
||||
local tag = screen.tags[i]
|
||||
if tag and tag.selected==false then
|
||||
awful.tag.viewtoggle(tag)
|
||||
end
|
||||
end
|
||||
end,
|
||||
{description = "view all tags", group = "tag"})
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
return module
|
||||
580
env/.config/awesome/rc.bak2.lua
vendored
Normal file
@@ -0,0 +1,580 @@
|
||||
-- If LuaRocks is installed, make sure that packages installed through it are
|
||||
-- found (e.g. lgi). If LuaRocks is not installed, do nothing.
|
||||
pcall(require, "luarocks.loader")
|
||||
|
||||
-- Standard awesome library
|
||||
local chosen_theme = "msjche"
|
||||
local gears = require("gears")
|
||||
local awful = require("awful")
|
||||
require("awful.autofocus")
|
||||
-- Widget and layout library
|
||||
local wibox = require("wibox")
|
||||
-- Theme handling library
|
||||
local beautiful = require("beautiful")
|
||||
-- Notification library
|
||||
local naughty = require("naughty")
|
||||
local menubar = require("menubar")
|
||||
local hotkeys_popup = require("awful.hotkeys_popup")
|
||||
-- Enable hotkeys help widget for VIM and other apps
|
||||
-- when client with a matching name is opened:
|
||||
require("awful.hotkeys_popup.keys")
|
||||
|
||||
-- {{{ Error handling
|
||||
-- Check if awesome encountered an error during startup and fell back to
|
||||
-- another config (This code will only ever execute for the fallback config)
|
||||
if awesome.startup_errors then
|
||||
naughty.notify({ preset = naughty.config.presets.critical,
|
||||
title = "Oops, there were errors during startup!",
|
||||
text = awesome.startup_errors })
|
||||
end
|
||||
|
||||
-- Handle runtime errors after startup
|
||||
do
|
||||
local in_error = false
|
||||
awesome.connect_signal("debug::error", function (err)
|
||||
-- Make sure we don't go into an endless error loop
|
||||
if in_error then return end
|
||||
in_error = true
|
||||
|
||||
naughty.notify({ preset = naughty.config.presets.critical,
|
||||
title = "Oops, an error happened!",
|
||||
text = tostring(err) })
|
||||
in_error = false
|
||||
end)
|
||||
end
|
||||
-- }}}
|
||||
|
||||
-- {{{ Variable definitions
|
||||
-- Themes define colours, icons, font and wallpapers.
|
||||
beautiful.init(gears.filesystem.get_themes_dir() .. "default/theme.lua")
|
||||
|
||||
-- This is used later as the default terminal and editor to run.
|
||||
terminal = "wezterm"
|
||||
editor = os.getenv("EDITOR") or "nvim"
|
||||
editor_cmd = terminal .. " -e " .. editor
|
||||
|
||||
-- Default modkey.
|
||||
-- Usually, Mod4 is the key with a logo between Control and Alt.
|
||||
-- If you do not like this or do not have such a key,
|
||||
-- I suggest you to remap Mod4 to another key using xmodmap or other tools.
|
||||
-- However, you can use another modifier like Mod1, but it may interact with others.
|
||||
modkey = "Mod4"
|
||||
|
||||
-- Table of layouts to cover with awful.layout.inc, order matters.
|
||||
awful.layout.layouts = {
|
||||
awful.layout.suit.floating,
|
||||
awful.layout.suit.tile,
|
||||
awful.layout.suit.tile.left,
|
||||
awful.layout.suit.tile.bottom,
|
||||
awful.layout.suit.tile.top,
|
||||
awful.layout.suit.fair,
|
||||
awful.layout.suit.fair.horizontal,
|
||||
awful.layout.suit.spiral,
|
||||
awful.layout.suit.spiral.dwindle,
|
||||
awful.layout.suit.max,
|
||||
awful.layout.suit.max.fullscreen,
|
||||
awful.layout.suit.magnifier,
|
||||
awful.layout.suit.corner.nw,
|
||||
-- awful.layout.suit.corner.ne,
|
||||
-- awful.layout.suit.corner.sw,
|
||||
-- awful.layout.suit.corner.se,
|
||||
}
|
||||
-- }}}
|
||||
|
||||
|
||||
local theme_path = string.format("%s/.config/awesome/themes/%s/theme.lua", os.getenv("HOME"), chosen_theme)
|
||||
naughty.notify({text = 'Debug Message: '.. theme_path})
|
||||
--beautiful.init(theme_path)
|
||||
|
||||
-- {{{ Menu
|
||||
-- Create a launcher widget and a main menu
|
||||
myawesomemenu = {
|
||||
{ "hotkeys", function() hotkeys_popup.show_help(nil, awful.screen.focused()) end },
|
||||
{ "manual", terminal .. " -e man awesome" },
|
||||
{ "edit config", editor_cmd .. " " .. awesome.conffile },
|
||||
{ "restart", awesome.restart },
|
||||
{ "quit", function() awesome.quit() end },
|
||||
}
|
||||
|
||||
mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
|
||||
{ "open terminal", terminal }
|
||||
}
|
||||
})
|
||||
|
||||
mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
|
||||
menu = mymainmenu })
|
||||
|
||||
-- Menubar configuration
|
||||
menubar.utils.terminal = terminal -- Set the terminal for applications that require it
|
||||
-- }}}
|
||||
|
||||
-- Keyboard map indicator and switcher
|
||||
mykeyboardlayout = awful.widget.keyboardlayout()
|
||||
|
||||
-- {{{ Wibar
|
||||
-- Create a textclock widget
|
||||
mytextclock = wibox.widget.textclock()
|
||||
|
||||
-- Create a wibox for each screen and add it
|
||||
local taglist_buttons = gears.table.join(
|
||||
awful.button({ }, 1, function(t) t:view_only() end),
|
||||
awful.button({ modkey }, 1, function(t)
|
||||
if client.focus then
|
||||
client.focus:move_to_tag(t)
|
||||
end
|
||||
end),
|
||||
awful.button({ }, 3, awful.tag.viewtoggle),
|
||||
awful.button({ modkey }, 3, function(t)
|
||||
if client.focus then
|
||||
client.focus:toggle_tag(t)
|
||||
end
|
||||
end),
|
||||
awful.button({ }, 4, function(t) awful.tag.viewnext(t.screen) end),
|
||||
awful.button({ }, 5, function(t) awful.tag.viewprev(t.screen) end)
|
||||
)
|
||||
|
||||
local tasklist_buttons = gears.table.join(
|
||||
awful.button({ }, 1, function (c)
|
||||
if c == client.focus then
|
||||
c.minimized = true
|
||||
else
|
||||
c:emit_signal(
|
||||
"request::activate",
|
||||
"tasklist",
|
||||
{raise = true}
|
||||
)
|
||||
end
|
||||
end),
|
||||
awful.button({ }, 3, function()
|
||||
awful.menu.client_list({ theme = { width = 250 } })
|
||||
end),
|
||||
awful.button({ }, 4, function ()
|
||||
awful.client.focus.byidx(1)
|
||||
end),
|
||||
awful.button({ }, 5, function ()
|
||||
awful.client.focus.byidx(-1)
|
||||
end))
|
||||
|
||||
local function set_wallpaper(s)
|
||||
-- Wallpaper
|
||||
if beautiful.wallpaper then
|
||||
local wallpaper = beautiful.wallpaper
|
||||
-- If wallpaper is a function, call it with the screen
|
||||
if type(wallpaper) == "function" then
|
||||
wallpaper = wallpaper(s)
|
||||
end
|
||||
gears.wallpaper.maximized(wallpaper, s, true)
|
||||
end
|
||||
end
|
||||
|
||||
-- Re-set wallpaper when a screen's geometry changes (e.g. different resolution)
|
||||
screen.connect_signal("property::geometry", set_wallpaper)
|
||||
|
||||
awful.screen.connect_for_each_screen(function(s)
|
||||
-- Wallpaper
|
||||
set_wallpaper(s)
|
||||
|
||||
-- Each screen has its own tag table.
|
||||
awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8", "9" }, s, awful.layout.layouts[1])
|
||||
|
||||
-- Create a promptbox for each screen
|
||||
s.mypromptbox = awful.widget.prompt()
|
||||
-- Create an imagebox widget which will contain an icon indicating which layout we're using.
|
||||
-- We need one layoutbox per screen.
|
||||
s.mylayoutbox = awful.widget.layoutbox(s)
|
||||
s.mylayoutbox:buttons(gears.table.join(
|
||||
awful.button({ }, 1, function () awful.layout.inc( 1) end),
|
||||
awful.button({ }, 3, function () awful.layout.inc(-1) end),
|
||||
awful.button({ }, 4, function () awful.layout.inc( 1) end),
|
||||
awful.button({ }, 5, function () awful.layout.inc(-1) end)))
|
||||
-- Create a taglist widget
|
||||
s.mytaglist = awful.widget.taglist {
|
||||
screen = s,
|
||||
filter = awful.widget.taglist.filter.all,
|
||||
buttons = taglist_buttons
|
||||
}
|
||||
|
||||
-- Create a tasklist widget
|
||||
s.mytasklist = awful.widget.tasklist {
|
||||
screen = s,
|
||||
filter = awful.widget.tasklist.filter.currenttags,
|
||||
buttons = tasklist_buttons
|
||||
}
|
||||
|
||||
-- Create the wibox
|
||||
s.mywibox = awful.wibar({ position = "top", screen = s })
|
||||
|
||||
-- Add widgets to the wibox
|
||||
s.mywibox:setup {
|
||||
layout = wibox.layout.align.horizontal,
|
||||
{ -- Left widgets
|
||||
layout = wibox.layout.fixed.horizontal,
|
||||
mylauncher,
|
||||
s.mytaglist,
|
||||
s.mypromptbox,
|
||||
},
|
||||
s.mytasklist, -- Middle widget
|
||||
{ -- Right widgets
|
||||
layout = wibox.layout.fixed.horizontal,
|
||||
mykeyboardlayout,
|
||||
wibox.widget.systray(),
|
||||
mytextclock,
|
||||
s.mylayoutbox,
|
||||
},
|
||||
}
|
||||
end)
|
||||
-- }}}
|
||||
|
||||
-- {{{ Mouse bindings
|
||||
root.buttons(gears.table.join(
|
||||
awful.button({ }, 3, function () mymainmenu:toggle() end),
|
||||
awful.button({ }, 4, awful.tag.viewnext),
|
||||
awful.button({ }, 5, awful.tag.viewprev)
|
||||
))
|
||||
-- }}}
|
||||
|
||||
-- {{{ Key bindings
|
||||
globalkeys = gears.table.join(
|
||||
awful.key({ modkey, }, "s", hotkeys_popup.show_help,
|
||||
{description="show help", group="awesome"}),
|
||||
awful.key({ modkey, }, "Left", awful.tag.viewprev,
|
||||
{description = "view previous", group = "tag"}),
|
||||
awful.key({ modkey, }, "Right", awful.tag.viewnext,
|
||||
{description = "view next", group = "tag"}),
|
||||
awful.key({ modkey, }, "Escape", awful.tag.history.restore,
|
||||
{description = "go back", group = "tag"}),
|
||||
|
||||
awful.key({ modkey, }, "j",
|
||||
function ()
|
||||
awful.client.focus.byidx( 1)
|
||||
end,
|
||||
{description = "focus next by index", group = "client"}
|
||||
),
|
||||
awful.key({ modkey, }, "k",
|
||||
function ()
|
||||
awful.client.focus.byidx(-1)
|
||||
end,
|
||||
{description = "focus previous by index", group = "client"}
|
||||
),
|
||||
awful.key({ modkey, }, "w", function () mymainmenu:show() end,
|
||||
{description = "show main menu", group = "awesome"}),
|
||||
|
||||
-- Layout manipulation
|
||||
awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end,
|
||||
{description = "swap with next client by index", group = "client"}),
|
||||
awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end,
|
||||
{description = "swap with previous client by index", group = "client"}),
|
||||
awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end,
|
||||
{description = "focus the next screen", group = "screen"}),
|
||||
awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end,
|
||||
{description = "focus the previous screen", group = "screen"}),
|
||||
awful.key({ modkey, }, "u", awful.client.urgent.jumpto,
|
||||
{description = "jump to urgent client", group = "client"}),
|
||||
awful.key({ modkey, }, "Tab",
|
||||
function ()
|
||||
awful.client.focus.history.previous()
|
||||
if client.focus then
|
||||
client.focus:raise()
|
||||
end
|
||||
end,
|
||||
{description = "go back", group = "client"}),
|
||||
|
||||
-- Standard program
|
||||
awful.key({ modkey, }, "Return", function () awful.spawn(terminal) end,
|
||||
{description = "open a terminal", group = "launcher"}),
|
||||
awful.key({ modkey, "Control" }, "r", awesome.restart,
|
||||
{description = "reload awesome", group = "awesome"}),
|
||||
awful.key({ modkey, "Shift" }, "q", awesome.quit,
|
||||
{description = "quit awesome", group = "awesome"}),
|
||||
|
||||
awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end,
|
||||
{description = "increase master width factor", group = "layout"}),
|
||||
awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end,
|
||||
{description = "decrease master width factor", group = "layout"}),
|
||||
awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1, nil, true) end,
|
||||
{description = "increase the number of master clients", group = "layout"}),
|
||||
awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1, nil, true) end,
|
||||
{description = "decrease the number of master clients", group = "layout"}),
|
||||
awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1, nil, true) end,
|
||||
{description = "increase the number of columns", group = "layout"}),
|
||||
awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1, nil, true) end,
|
||||
{description = "decrease the number of columns", group = "layout"}),
|
||||
awful.key({ modkey, }, "space", function () awful.layout.inc( 1) end,
|
||||
{description = "select next", group = "layout"}),
|
||||
awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(-1) end,
|
||||
{description = "select previous", group = "layout"}),
|
||||
|
||||
awful.key({ modkey, "Control" }, "n",
|
||||
function ()
|
||||
local c = awful.client.restore()
|
||||
-- Focus restored client
|
||||
if c then
|
||||
c:emit_signal(
|
||||
"request::activate", "key.unminimize", {raise = true}
|
||||
)
|
||||
end
|
||||
end,
|
||||
{description = "restore minimized", group = "client"}),
|
||||
|
||||
-- Prompt
|
||||
awful.key({ modkey }, "r", function () awful.screen.focused().mypromptbox:run() end,
|
||||
{description = "run prompt", group = "launcher"}),
|
||||
|
||||
awful.key({ modkey }, "d", function () os.execute("rofi -show drun") end, {description = "rofi drun", group = "launcher"}),
|
||||
|
||||
awful.key({ modkey }, "x",
|
||||
function ()
|
||||
awful.prompt.run {
|
||||
prompt = "Run Lua code: ",
|
||||
textbox = awful.screen.focused().mypromptbox.widget,
|
||||
exe_callback = awful.util.eval,
|
||||
history_path = awful.util.get_cache_dir() .. "/history_eval"
|
||||
}
|
||||
end,
|
||||
{description = "lua execute prompt", group = "awesome"}),
|
||||
-- Menubar
|
||||
awful.key({ modkey }, "p", function() menubar.show() end,
|
||||
{description = "show the menubar", group = "launcher"})
|
||||
)
|
||||
|
||||
clientkeys = gears.table.join(
|
||||
awful.key({ modkey, }, "f",
|
||||
function (c)
|
||||
c.fullscreen = not c.fullscreen
|
||||
c:raise()
|
||||
end,
|
||||
{description = "toggle fullscreen", group = "client"}),
|
||||
awful.key({ modkey, }, "q", function (c) c:kill() end,
|
||||
{description = "close", group = "client"}),
|
||||
awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle ,
|
||||
{description = "toggle floating", group = "client"}),
|
||||
awful.key({ modkey, "Control" }, "Return", 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,
|
||||
{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"}),
|
||||
awful.key({ modkey, }, "n",
|
||||
function (c)
|
||||
-- The client currently has the input focus, so it cannot be
|
||||
-- minimized, since minimized clients can't have the focus.
|
||||
c.minimized = true
|
||||
end ,
|
||||
{description = "minimize", group = "client"}),
|
||||
awful.key({ modkey, }, "m",
|
||||
function (c)
|
||||
c.maximized = not c.maximized
|
||||
c:raise()
|
||||
end ,
|
||||
{description = "(un)maximize", group = "client"}),
|
||||
awful.key({ modkey, "Control" }, "m",
|
||||
function (c)
|
||||
c.maximized_vertical = not c.maximized_vertical
|
||||
c:raise()
|
||||
end ,
|
||||
{description = "(un)maximize vertically", group = "client"}),
|
||||
awful.key({ modkey, "Shift" }, "m",
|
||||
function (c)
|
||||
c.maximized_horizontal = not c.maximized_horizontal
|
||||
c:raise()
|
||||
end ,
|
||||
{description = "(un)maximize horizontally", group = "client"})
|
||||
)
|
||||
|
||||
-- Bind all key numbers to tags.
|
||||
-- Be careful: we use keycodes to make it work on any keyboard layout.
|
||||
-- This should map on the top row of your keyboard, usually 1 to 9.
|
||||
for i = 1, 9 do
|
||||
globalkeys = gears.table.join(globalkeys,
|
||||
-- View tag only.
|
||||
awful.key({ modkey }, "#" .. i + 9,
|
||||
function ()
|
||||
local screen = awful.screen.focused()
|
||||
local tag = screen.tags[i]
|
||||
if tag then
|
||||
tag:view_only()
|
||||
end
|
||||
end,
|
||||
{description = "view tag #"..i, group = "tag"}),
|
||||
-- Toggle tag display.
|
||||
awful.key({ modkey, "Control" }, "#" .. i + 9,
|
||||
function ()
|
||||
local screen = awful.screen.focused()
|
||||
local tag = screen.tags[i]
|
||||
if tag then
|
||||
awful.tag.viewtoggle(tag)
|
||||
end
|
||||
end,
|
||||
{description = "toggle tag #" .. i, group = "tag"}),
|
||||
-- Move client to tag.
|
||||
awful.key({ modkey, "Shift" }, "#" .. i + 9,
|
||||
function ()
|
||||
if client.focus then
|
||||
local tag = client.focus.screen.tags[i]
|
||||
if tag then
|
||||
client.focus:move_to_tag(tag)
|
||||
end
|
||||
end
|
||||
end,
|
||||
{description = "move focused client to tag #"..i, group = "tag"}),
|
||||
-- Toggle tag on focused client.
|
||||
awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
|
||||
function ()
|
||||
if client.focus then
|
||||
local tag = client.focus.screen.tags[i]
|
||||
if tag then
|
||||
client.focus:toggle_tag(tag)
|
||||
end
|
||||
end
|
||||
end,
|
||||
{description = "toggle focused client on tag #" .. i, group = "tag"})
|
||||
)
|
||||
end
|
||||
|
||||
clientbuttons = gears.table.join(
|
||||
awful.button({ }, 1, function (c)
|
||||
c:emit_signal("request::activate", "mouse_click", {raise = true})
|
||||
end),
|
||||
awful.button({ modkey }, 1, function (c)
|
||||
c:emit_signal("request::activate", "mouse_click", {raise = true})
|
||||
awful.mouse.client.move(c)
|
||||
end),
|
||||
awful.button({ modkey }, 3, function (c)
|
||||
c:emit_signal("request::activate", "mouse_click", {raise = true})
|
||||
awful.mouse.client.resize(c)
|
||||
end)
|
||||
)
|
||||
|
||||
-- Set keys
|
||||
root.keys(globalkeys)
|
||||
-- }}}
|
||||
|
||||
-- {{{ Rules
|
||||
-- Rules to apply to new clients (through the "manage" signal).
|
||||
awful.rules.rules = {
|
||||
-- All clients will match this rule.
|
||||
{ rule = { },
|
||||
properties = { border_width = beautiful.border_width,
|
||||
border_color = beautiful.border_normal,
|
||||
focus = awful.client.focus.filter,
|
||||
raise = true,
|
||||
keys = clientkeys,
|
||||
buttons = clientbuttons,
|
||||
screen = awful.screen.preferred,
|
||||
placement = awful.placement.no_overlap+awful.placement.no_offscreen
|
||||
}
|
||||
},
|
||||
|
||||
-- Floating clients.
|
||||
{ rule_any = {
|
||||
instance = {
|
||||
"DTA", -- Firefox addon DownThemAll.
|
||||
"copyq", -- Includes session name in class.
|
||||
"pinentry",
|
||||
},
|
||||
class = {
|
||||
"Arandr",
|
||||
"Blueman-manager",
|
||||
"Gpick",
|
||||
"Kruler",
|
||||
"MessageWin", -- kalarm.
|
||||
"Sxiv",
|
||||
"Tor Browser", -- Needs a fixed window size to avoid fingerprinting by screen size.
|
||||
"Wpa_gui",
|
||||
"veromix",
|
||||
"xtightvncviewer"},
|
||||
|
||||
-- Note that the name property shown in xprop might be set slightly after creation of the client
|
||||
-- and the name shown there might not match defined rules here.
|
||||
name = {
|
||||
"Event Tester", -- xev.
|
||||
},
|
||||
role = {
|
||||
"AlarmWindow", -- Thunderbird's calendar.
|
||||
"ConfigManager", -- Thunderbird's about:config.
|
||||
"pop-up", -- e.g. Google Chrome's (detached) Developer Tools.
|
||||
}
|
||||
}, properties = { floating = true }},
|
||||
|
||||
-- Add titlebars to normal clients and dialogs
|
||||
{ rule_any = {type = { "normal", "dialog" }
|
||||
}, properties = { titlebars_enabled = false }
|
||||
},
|
||||
|
||||
-- Set Firefox to always map on the tag named "2" on screen 1.
|
||||
-- { rule = { class = "Firefox" },
|
||||
-- properties = { screen = 1, tag = "2" } },
|
||||
}
|
||||
-- }}}
|
||||
|
||||
-- {{{ Signals
|
||||
-- Signal function to execute when a new client appears.
|
||||
client.connect_signal("manage", function (c)
|
||||
-- Set the windows at the slave,
|
||||
-- i.e. put it at the end of others instead of setting it master.
|
||||
-- if not awesome.startup then awful.client.setslave(c) end
|
||||
|
||||
if awesome.startup
|
||||
and not c.size_hints.user_position
|
||||
and not c.size_hints.program_position then
|
||||
-- Prevent clients from being unreachable after screen count changes.
|
||||
awful.placement.no_offscreen(c)
|
||||
end
|
||||
end)
|
||||
|
||||
-- Add a titlebar if titlebars_enabled is set to true in the rules.
|
||||
client.connect_signal("request::titlebars", function(c)
|
||||
-- buttons for the titlebar
|
||||
local buttons = gears.table.join(
|
||||
awful.button({ }, 1, function()
|
||||
c:emit_signal("request::activate", "titlebar", {raise = true})
|
||||
awful.mouse.client.move(c)
|
||||
end),
|
||||
awful.button({ }, 3, function()
|
||||
c:emit_signal("request::activate", "titlebar", {raise = true})
|
||||
awful.mouse.client.resize(c)
|
||||
end)
|
||||
)
|
||||
|
||||
awful.titlebar(c) : setup {
|
||||
{ -- Left
|
||||
awful.titlebar.widget.iconwidget(c),
|
||||
buttons = buttons,
|
||||
layout = wibox.layout.fixed.horizontal
|
||||
},
|
||||
{ -- Middle
|
||||
{ -- Title
|
||||
align = "center",
|
||||
widget = awful.titlebar.widget.titlewidget(c)
|
||||
},
|
||||
buttons = buttons,
|
||||
layout = wibox.layout.flex.horizontal
|
||||
},
|
||||
{ -- Right
|
||||
awful.titlebar.widget.floatingbutton (c),
|
||||
awful.titlebar.widget.maximizedbutton(c),
|
||||
awful.titlebar.widget.stickybutton (c),
|
||||
awful.titlebar.widget.ontopbutton (c),
|
||||
awful.titlebar.widget.closebutton (c),
|
||||
layout = wibox.layout.fixed.horizontal()
|
||||
},
|
||||
layout = wibox.layout.align.horizontal
|
||||
}
|
||||
end)
|
||||
|
||||
-- Enable sloppy focus, so that focus follows mouse.
|
||||
client.connect_signal("mouse::enter", function(c)
|
||||
c:emit_signal("request::activate", "mouse_enter", {raise = false})
|
||||
end)
|
||||
|
||||
client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end)
|
||||
client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
|
||||
-- }}}
|
||||
|
||||
|
||||
-- autostart applets
|
||||
awful.spawn.with_shell("xcompmgr")
|
||||
awful.spawn.with_shell("xrandr --dpi 90")
|
||||
awful.spawn.with_shell("xrandr --output Virtual-1 --mode 1920x1080")
|
||||
awful.spawn.with_shell("wezterm -e ~/stuff/scripts/system/task.sh")
|
||||
awful.spawn.with_shell("sleep 0.5s && nitrogen --restore")
|
||||
554
env/.config/awesome/rc.lua
vendored
Normal file
@@ -0,0 +1,554 @@
|
||||
-- If LuaRocks is installed, make sure that packages installed through it are
|
||||
-- found (e.g. lgi). If LuaRocks is not installed, do nothing.
|
||||
pcall(require, "luarocks.loader")
|
||||
|
||||
-- Standard awesome library
|
||||
local gears = require("gears")
|
||||
local awful = require("awful")
|
||||
require("awful.autofocus")
|
||||
-- Widget and layout library
|
||||
local wibox = require("wibox")
|
||||
-- Theme handling library
|
||||
local beautiful = require("beautiful")
|
||||
-- Notification library
|
||||
local naughty = require("naughty")
|
||||
local menubar = require("menubar")
|
||||
local hotkeys_popup = require("awful.hotkeys_popup")
|
||||
|
||||
Us_keys = require("keys-US")
|
||||
Us_keys_colemak = require("keys-US-colemak")
|
||||
-- Enable hotkeys help widget for VIM and other apps
|
||||
-- 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 show_desktop = false
|
||||
function show_my_desktop()
|
||||
if show_desktop then
|
||||
for _, c in ipairs(client.get()) do
|
||||
c:emit_signal(
|
||||
"request::activate", "key.unminimize", {raise = true}
|
||||
)
|
||||
end
|
||||
show_desktop = false
|
||||
else
|
||||
for _, c in ipairs(client.get()) do
|
||||
c.minimized = true
|
||||
end
|
||||
show_desktop = true
|
||||
end
|
||||
end
|
||||
|
||||
--auto switch to tag with clients if no current clients exist in current tag
|
||||
--[[
|
||||
client.connect_signal("unmanage", function(c)
|
||||
local t = c.first_tag or awful.screen.focused().selected_tag
|
||||
for _, cl in ipairs(t:clients()) do
|
||||
if cl ~= c then
|
||||
return
|
||||
end
|
||||
end
|
||||
for _, t in ipairs(awful.screen.focused().tags) do
|
||||
if #t:clients() > 0 then
|
||||
t:view_only()
|
||||
return
|
||||
end
|
||||
end
|
||||
end)
|
||||
]]--
|
||||
|
||||
|
||||
-- {{{ Error handling
|
||||
-- Check if awesome encountered an error during startup and fell back to
|
||||
-- another config (This code will only ever execute for the fallback config)
|
||||
if awesome.startup_errors then
|
||||
naughty.notify({ preset = naughty.config.presets.critical,
|
||||
title = "Oops, there were errors during startup!",
|
||||
text = awesome.startup_errors })
|
||||
end
|
||||
|
||||
-- Handle runtime errors after startup
|
||||
do
|
||||
local in_error = false
|
||||
awesome.connect_signal("debug::error", function (err)
|
||||
-- Make sure we don't go into an endless error loop
|
||||
if in_error then return end
|
||||
in_error = true
|
||||
|
||||
naughty.notify({ preset = naughty.config.presets.critical,
|
||||
title = "Oops, an error happened!",
|
||||
text = tostring(err) })
|
||||
in_error = false
|
||||
end)
|
||||
end
|
||||
-- }}}
|
||||
|
||||
-- {{{ Variable definitions
|
||||
-- Themes define colours, icons, font and wallpapers.
|
||||
--beautiful.init(gears.filesystem.get_themes_dir() .. "openSUSE/theme.lua")
|
||||
beautiful.init(gears.filesystem.get_configuration_dir() .. "iceys-theme/theme.lua")
|
||||
|
||||
|
||||
-- This is used later as the default terminal and editor to run.
|
||||
terminal = "wezterm"
|
||||
editor = os.getenv("EDITOR") or "nvim"
|
||||
editor_cmd = terminal .. " -e " .. editor
|
||||
|
||||
-- Default modkey.
|
||||
-- Usually, Mod4 is the key with a logo between Control and Alt.
|
||||
-- If you do not like this or do not have such a key,
|
||||
-- I suggest you to remap Mod4 to another key using xmodmap or other tools.
|
||||
-- However, you can use another modifier like Mod1, but it may interact with others.
|
||||
modkey = "Mod4"
|
||||
if awesome.hostname == "DangerNoodle" then
|
||||
--modkey = "Mod3"
|
||||
end
|
||||
|
||||
|
||||
-- Table of layouts to cover with awful.layout.inc, order matters.
|
||||
awful.layout.layouts = {
|
||||
awful.layout.suit.floating,
|
||||
awful.layout.suit.tile,
|
||||
awful.layout.suit.tile.left,
|
||||
awful.layout.suit.tile.bottom,
|
||||
awful.layout.suit.tile.top,
|
||||
awful.layout.suit.fair,
|
||||
awful.layout.suit.fair.horizontal,
|
||||
awful.layout.suit.spiral,
|
||||
awful.layout.suit.spiral.dwindle,
|
||||
awful.layout.suit.max,
|
||||
awful.layout.suit.max.fullscreen,
|
||||
awful.layout.suit.magnifier,
|
||||
awful.layout.suit.corner.nw,
|
||||
-- awful.layout.suit.corner.ne,
|
||||
-- awful.layout.suit.corner.sw,
|
||||
-- awful.layout.suit.corner.se,
|
||||
}
|
||||
-- }}}
|
||||
|
||||
|
||||
|
||||
-- {{{ Menu
|
||||
-- Create a launcher widget and a main menu
|
||||
myawesomemenu = {
|
||||
{ "hotkeys", function() hotkeys_popup.show_help(nil, awful.screen.focused()) end },
|
||||
{ "manual", terminal .. " -e man awesome" },
|
||||
{ "edit config", editor_cmd .. " " .. awesome.conffile },
|
||||
{ "restart", awesome.restart },
|
||||
{ "quit", function() awesome.quit() end },
|
||||
}
|
||||
|
||||
mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
|
||||
{ "open terminal", terminal }
|
||||
}
|
||||
})
|
||||
|
||||
mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
|
||||
menu = mymainmenu })
|
||||
|
||||
-- Menubar configuration
|
||||
menubar.utils.terminal = terminal -- Set the terminal for applications that require it
|
||||
-- }}}
|
||||
|
||||
-- Keyboard map indicator and switcher
|
||||
mykeyboardlayout = awful.widget.keyboardlayout()
|
||||
|
||||
-- {{{ Wibar
|
||||
-- Create a textclock widget
|
||||
mytextclock = wibox.widget.textclock("%a %m/%d/%Y %I:%M%p")
|
||||
|
||||
-- Create a wibox for each screen and add it
|
||||
local taglist_buttons = gears.table.join(
|
||||
awful.button({ }, 1, function(t) t:view_only() end),
|
||||
awful.button({ modkey }, 1, function(t)
|
||||
if client.focus then
|
||||
client.focus:move_to_tag(t)
|
||||
end
|
||||
end),
|
||||
awful.button({ }, 3, awful.tag.viewtoggle),
|
||||
awful.button({ modkey }, 3, function(t)
|
||||
if client.focus then
|
||||
client.focus:toggle_tag(t)
|
||||
end
|
||||
end),
|
||||
awful.button({ }, 4, function(t) awful.tag.viewnext(t.screen) end),
|
||||
awful.button({ }, 5, function(t) awful.tag.viewprev(t.screen) end)
|
||||
)
|
||||
|
||||
local tasklist_buttons = gears.table.join(
|
||||
awful.button({ }, 1, function (c)
|
||||
if c == client.focus then
|
||||
c.minimized = true
|
||||
else
|
||||
c:emit_signal(
|
||||
"request::activate",
|
||||
"tasklist",
|
||||
{raise = true}
|
||||
)
|
||||
end
|
||||
end),
|
||||
awful.button({ }, 3, function()
|
||||
awful.menu.client_list({ theme = { width = 250 } })
|
||||
end),
|
||||
awful.button({ }, 4, function ()
|
||||
awful.client.focus.byidx(1)
|
||||
end),
|
||||
awful.button({ }, 5, function ()
|
||||
awful.client.focus.byidx(-1)
|
||||
end)
|
||||
)
|
||||
|
||||
local function set_wallpaper(s)
|
||||
-- Wallpaper
|
||||
if beautiful.wallpaper then
|
||||
local wallpaper = beautiful.wallpaper
|
||||
-- If wallpaper is a function, call it with the screen
|
||||
if type(wallpaper) == "function" then
|
||||
wallpaper = wallpaper(s)
|
||||
end
|
||||
gears.wallpaper.maximized(wallpaper, s, true)
|
||||
end
|
||||
end
|
||||
|
||||
-- Re-set wallpaper when a screen's geometry changes (e.g. different resolution)
|
||||
screen.connect_signal("property::geometry", set_wallpaper)
|
||||
|
||||
awful.screen.connect_for_each_screen(function(screen)
|
||||
-- Wallpaper
|
||||
set_wallpaper(screen)
|
||||
|
||||
-- Each screen has its own tag table.
|
||||
--awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8", "9" }, s, awful.layout.layouts[2])
|
||||
--awful.tag({ " ", " ", " ", " ", " ", " ", " ", " ", " ", " " }, s, awful.layout.layouts[2])
|
||||
awful.tag({ " ", " ", " ", " ", " ", " ", " ", " ", " ", " " }, screen, awful.layout.layouts[2])
|
||||
|
||||
-- Create a promptbox for each screen
|
||||
screen.mypromptbox = awful.widget.prompt()
|
||||
-- Create an imagebox widget which will contain an icon indicating which layout we're using.
|
||||
-- We need one layoutbox per screen.
|
||||
screen.mylayoutbox = awful.widget.layoutbox(screen)
|
||||
screen.mylayoutbox:buttons(gears.table.join(
|
||||
awful.button({ }, 1, function () awful.layout.inc( 1) end),
|
||||
awful.button({ }, 3, function () awful.layout.inc(-1) end),
|
||||
awful.button({ }, 4, function () awful.layout.inc( 1) end),
|
||||
awful.button({ }, 5, function () awful.layout.inc(-1) end)))
|
||||
-- Create a taglist widget
|
||||
screen.mytaglist = awful.widget.taglist {
|
||||
screen = screen,
|
||||
filter = awful.widget.taglist.filter.all,
|
||||
buttons = taglist_buttons
|
||||
}
|
||||
|
||||
-- Create a tasklist widget
|
||||
screen.mytasklist = awful.widget.tasklist {
|
||||
screen = screen,
|
||||
filter = awful.widget.tasklist.filter.currenttags,
|
||||
buttons = tasklist_buttons
|
||||
}
|
||||
|
||||
|
||||
-- Create the wibox
|
||||
screen.mywibox = awful.wibar({ position = "bottom", screen = screen , height = 20, width = 1500, y = screen.geometry.height - 24 - 500})
|
||||
awful.placement.bottom(screen.mywibox, { margins = { bottom = 2, top = 20 } })
|
||||
|
||||
|
||||
local spacer = wibox.widget.textbox(" ")
|
||||
local spacerbg = wibox.widget.textbox(" ")
|
||||
local spacerbg= wibox.widget.background(spacerbg)
|
||||
spacerbg.bg = beautiful.bg_normal
|
||||
|
||||
screen.mywibox.bg = beautiful.wibar_background
|
||||
screen.mywibox.ontop = true
|
||||
screen.mywibox.floating = false
|
||||
|
||||
local mykeyboardlayout = wibox.widget.background(mykeyboardlayout)
|
||||
mykeyboardlayout.bg = beautiful.bg_normal
|
||||
|
||||
local myLayoutBox = wibox.widget.background(screen.mylayoutbox)
|
||||
myLayoutBox.bg = beautiful.bg_normal
|
||||
|
||||
local mytextclock = wibox.widget.background(mytextclock)
|
||||
mytextclock.bg = beautiful.bg_normal
|
||||
|
||||
-- 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 = wibox.widget.background(stbar)
|
||||
stbar.bg = beautiful.bg_normal
|
||||
|
||||
screen.mywibox:setup {
|
||||
layout = wibox.layout.align.horizontal,
|
||||
{ -- Left widgets
|
||||
layout = wibox.layout.fixed.horizontal,
|
||||
-- mylauncher,
|
||||
screen.mytaglist,
|
||||
screen.mypromptbox,
|
||||
spacer,
|
||||
},
|
||||
screen.mytasklist, -- Middle widget
|
||||
{ -- Right widgets
|
||||
layout = wibox.layout.fixed.horizontal,
|
||||
spacer,
|
||||
mykeyboardlayout,
|
||||
stbar,
|
||||
mytextclock,
|
||||
spacerbg,
|
||||
spacer,
|
||||
spacerbg,
|
||||
wibox.widget.systray(),
|
||||
spacerbg,
|
||||
spacer,
|
||||
myLayoutBox,
|
||||
},
|
||||
}
|
||||
else
|
||||
screen.mywibox:setup {
|
||||
layout = wibox.layout.align.horizontal,
|
||||
{ -- Left widgets
|
||||
layout = wibox.layout.fixed.horizontal,
|
||||
-- mylauncher,
|
||||
screen.mytaglist,
|
||||
screen.mypromptbox,
|
||||
},
|
||||
screen.mytasklist, -- Middle widget
|
||||
{ -- Right widgets
|
||||
layout = wibox.layout.fixed.horizontal,
|
||||
mykeyboardlayout,
|
||||
mytextclock,
|
||||
-- wibox.widget.systray(),
|
||||
screen.mylayoutbox,
|
||||
},
|
||||
}
|
||||
end
|
||||
|
||||
|
||||
-- Add widgets to the wibox
|
||||
--[[
|
||||
if s.index == 1 then
|
||||
local new_wi = awful.wibar({ position = "bottom", screen = 1 , width = 200, height = 20})
|
||||
new_wi:setup {
|
||||
layout = wibox.layout.align.horizontal,
|
||||
{ -- Left widgets
|
||||
layout = wibox.layout.fixed.horizontal,
|
||||
-- mylauncher,
|
||||
mytextclock,
|
||||
}
|
||||
}
|
||||
end
|
||||
]]--
|
||||
end)
|
||||
|
||||
local month_calendar = awful.widget.calendar_popup.month({start_sunday=true})
|
||||
month_calendar:attach( mytextclock, "br" )
|
||||
--mytextclock:connect_signal("button::press",function ()
|
||||
--end)
|
||||
|
||||
-- }}}
|
||||
|
||||
-- {{{ Mouse bindings
|
||||
root.buttons(gears.table.join(
|
||||
awful.button({ }, 3, function () mymainmenu:toggle() end),
|
||||
awful.button({ }, 4, awful.tag.viewnext),
|
||||
awful.button({ }, 5, awful.tag.viewprev)
|
||||
))
|
||||
-- }}}
|
||||
|
||||
|
||||
--set keymap based on keyboard layout
|
||||
if mykeyboardlayout._layout[1] == "us" then
|
||||
Us_keys.set_global_keys()
|
||||
Us_keys.set_client_keys()
|
||||
else
|
||||
Us_keys_colemak.set_global_keys()
|
||||
Us_keys_colemak.set_client_keys()
|
||||
end
|
||||
|
||||
clientbuttons = gears.table.join(
|
||||
awful.button({ }, 1, function (c)
|
||||
c:emit_signal("request::activate", "mouse_click", {raise = true})
|
||||
end),
|
||||
awful.button({modkey}, 1, function (c)
|
||||
c:emit_signal("request::activate", "mouse_click", {raise = true})
|
||||
awful.mouse.client.move(c)
|
||||
end),
|
||||
awful.button({modkey}, 3, function (c)
|
||||
c:emit_signal("request::activate", "mouse_click", {raise = true})
|
||||
awful.mouse.client.resize(c, "bottomright") --corner bonked
|
||||
end)
|
||||
)
|
||||
|
||||
-- Set keys
|
||||
root.keys(globalkeys)
|
||||
-- }}}
|
||||
|
||||
|
||||
-- {{{ Rules
|
||||
-- Rules to apply to new clients (through the "manage" signal).
|
||||
awful.rules.rules = {
|
||||
-- All clients will match this rule.
|
||||
{ rule = { },
|
||||
properties = { border_width = beautiful.border_width,
|
||||
border_color = beautiful.border_normal,
|
||||
focus = awful.client.focus.filter,
|
||||
raise = true,
|
||||
keys = clientkeys,
|
||||
buttons = clientbuttons,
|
||||
screen = awful.screen.preferred,
|
||||
placement = awful.placement.no_overlap+awful.placement.no_offscreen
|
||||
}
|
||||
},
|
||||
|
||||
-- Floating clients.
|
||||
{ rule_any = {
|
||||
instance = {
|
||||
"DTA", -- Firefox addon DownThemAll.
|
||||
"copyq", -- Includes session name in class.
|
||||
"pinentry",
|
||||
},
|
||||
class = {
|
||||
"Arandr",
|
||||
"Blueman-manager",
|
||||
"Gpick",
|
||||
"Kruler",
|
||||
"MessageWin", -- kalarm.
|
||||
"Sxiv",
|
||||
"Tor Browser", -- Needs a fixed window size to avoid fingerprinting by screen size.
|
||||
"nheko",
|
||||
"Wpa_gui",
|
||||
"Pcmanfm",
|
||||
"veromix",
|
||||
"xtightvncviewer"},
|
||||
|
||||
-- Note that the name property shown in xprop might be set slightly after creation of the client
|
||||
-- and the name shown there might not match defined rules here.
|
||||
name = {
|
||||
"Event Tester", -- xev.
|
||||
"Vivecraft*",
|
||||
"Mivecraft*",
|
||||
"LinVAM",
|
||||
},
|
||||
role = {
|
||||
"AlarmWindow", -- Thunderbird's calendar.
|
||||
"ConfigManager", -- Thunderbird's about:config.
|
||||
"pop-up", -- e.g. Google Chrome's (detached) Developer Tools.
|
||||
}
|
||||
}, properties = { floating = true }},
|
||||
|
||||
-- Add titlebars to normal clients and dialogs
|
||||
{ rule_any = {type = { "normal", "dialog" }
|
||||
}, properties = { titlebars_enabled = false }
|
||||
},
|
||||
|
||||
--[[
|
||||
{ rule_any = {
|
||||
class = { "Mumble", "Gajim", "vesktop" }
|
||||
},
|
||||
properties = { floating = true, screen = 2 }
|
||||
},
|
||||
--]]
|
||||
|
||||
{ rule_any = {
|
||||
class = { "steam_app*", "vesktop", "Minecraft*" }
|
||||
},
|
||||
properties = { border_width = 0 }
|
||||
}
|
||||
|
||||
-- Set Firefox to always map on the tag named "2" on screen 1.
|
||||
-- { rule = { class = "Firefox" },
|
||||
-- properties = { screen = 1, tag = "2" } },
|
||||
}
|
||||
-- }}}
|
||||
if screen[2] then
|
||||
screen[2]:fake_resize(1986,33,1792,1015)
|
||||
table.insert(awful.rules.rules,
|
||||
{ rule_any = {
|
||||
class = { "Mumble", "gajim", "vesktop" }
|
||||
},
|
||||
properties = { floating = true, screen = 2 }
|
||||
}
|
||||
)
|
||||
end
|
||||
|
||||
-- {{{ Signals
|
||||
-- Signal function to execute when a new client appears.
|
||||
client.connect_signal("manage", function (c)
|
||||
-- Set the windows at the slave,
|
||||
-- i.e. put it at the end of others instead of setting it master.
|
||||
-- if not awesome.startup then awful.client.setslave(c) end
|
||||
|
||||
if awesome.startup
|
||||
and not c.size_hints.user_position
|
||||
and not c.size_hints.program_position then
|
||||
-- Prevent clients from being unreachable after screen count changes.
|
||||
awful.placement.no_offscreen(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.
|
||||
client.connect_signal("request::titlebars", function(c)
|
||||
-- buttons for the titlebar
|
||||
local buttons = gears.table.join(
|
||||
awful.button({ }, 1, function()
|
||||
c:emit_signal("request::activate", "titlebar", {raise = true})
|
||||
awful.mouse.client.move(c)
|
||||
end),
|
||||
awful.button({ }, 3, function()
|
||||
c:emit_signal("request::activate", "titlebar", {raise = true})
|
||||
awful.mouse.client.resize(c)
|
||||
end)
|
||||
)
|
||||
|
||||
awful.titlebar(c) : setup {
|
||||
{ -- Left
|
||||
awful.titlebar.widget.iconwidget(c),
|
||||
buttons = buttons,
|
||||
layout = wibox.layout.fixed.horizontal
|
||||
},
|
||||
{ -- Middle
|
||||
{ -- Title
|
||||
align = "center",
|
||||
widget = awful.titlebar.widget.titlewidget(c)
|
||||
},
|
||||
buttons = buttons,
|
||||
layout = wibox.layout.flex.horizontal
|
||||
},
|
||||
{ -- Right
|
||||
awful.titlebar.widget.floatingbutton (c),
|
||||
awful.titlebar.widget.maximizedbutton(c),
|
||||
awful.titlebar.widget.stickybutton (c),
|
||||
awful.titlebar.widget.ontopbutton (c),
|
||||
awful.titlebar.widget.closebutton (c),
|
||||
layout = wibox.layout.fixed.horizontal()
|
||||
},
|
||||
layout = wibox.layout.align.horizontal
|
||||
}
|
||||
end)
|
||||
|
||||
-- Enable sloppy focus, so that focus follows mouse.
|
||||
--[[
|
||||
client.connect_signal("mouse::enter", function(c)
|
||||
c:emit_signal("request::activate", "mouse_enter", {raise = false})
|
||||
end)
|
||||
]]
|
||||
|
||||
client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end)
|
||||
client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
|
||||
-- }}}
|
||||
|
||||
|
||||
-- autostart applets
|
||||
awful.spawn.with_shell("~/.config/dwm/autostart.sh")
|
||||
283
env/.config/cava/config
vendored
Normal file
@@ -0,0 +1,283 @@
|
||||
## Configuration file for CAVA.
|
||||
# Remove the ; to change parameters.
|
||||
|
||||
|
||||
[general]
|
||||
|
||||
# Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0
|
||||
; mode = normal
|
||||
|
||||
# Accepts only non-negative values.
|
||||
; framerate = 60
|
||||
|
||||
# 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off
|
||||
# new as of 0.6.0 autosens of low values (dynamic range)
|
||||
# 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0
|
||||
; autosens = 1
|
||||
; overshoot = 20
|
||||
|
||||
# Manual sensitivity in %. If autosens is enabled, this will only be the initial value.
|
||||
# 200 means double height. Accepts only non-negative values.
|
||||
; sensitivity = 100
|
||||
|
||||
# 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
|
||||
bar_width = 1
|
||||
; bar_spacing = 0
|
||||
# bar_height is only used for output in "noritake" format
|
||||
; bar_height = 32
|
||||
|
||||
# For SDL width and space between bars is in pixels, defaults are:
|
||||
; bar_width = 20
|
||||
; bar_spacing = 5
|
||||
|
||||
# sdl_glsl have these default values, they are only used to calculate max number of bars.
|
||||
; bar_width = 1
|
||||
; bar_spacing = 0
|
||||
|
||||
|
||||
# Lower and higher cutoff frequencies for lowest and highest bars
|
||||
# the bandwidth of the visualizer.
|
||||
# Note: there is a minimum total bandwidth of 43Mhz x number of bars.
|
||||
# Cava will automatically increase the higher cutoff if a too low band is specified.
|
||||
; lower_cutoff_freq = 50
|
||||
; higher_cutoff_freq = 10000
|
||||
|
||||
|
||||
# Seconds with no input before cava goes to sleep mode. Cava will not perform FFT or drawing and
|
||||
# only check for input once per second. Cava will wake up once input is detected. 0 = disable.
|
||||
; sleep_timer = 0
|
||||
|
||||
|
||||
[input]
|
||||
|
||||
# Audio capturing method. Possible methods are: 'fifo', 'portaudio', 'pipewire', 'alsa', 'pulse', 'sndio', 'oss', 'jack' or 'shmem'
|
||||
# Defaults to 'oss', 'pipewire', 'sndio', 'jack', 'pulse', 'alsa', 'portaudio' or 'fifo', in that order, dependent on what support cava was built with.
|
||||
# On Mac it defaults to 'portaudio' or 'fifo'
|
||||
# On windows this is automatic and no input settings are needed.
|
||||
#
|
||||
# All input methods uses the same config variable 'source'
|
||||
# to define where it should get the audio.
|
||||
#
|
||||
# For pulseaudio and pipewire 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink
|
||||
# (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them).
|
||||
#
|
||||
# For pipewire 'source' will be the object name or object.serial of the device to capture from.
|
||||
# Both input and output devices are supported.
|
||||
#
|
||||
# For alsa 'source' will be the capture device.
|
||||
# For fifo 'source' will be the path to fifo-file.
|
||||
# For shmem 'source' will be /squeezelite-AA:BB:CC:DD:EE:FF where 'AA:BB:CC:DD:EE:FF' will be squeezelite's MAC address
|
||||
#
|
||||
# For sndio 'source' will be a raw recording audio descriptor or a monitoring sub-device, e.g. 'rsnd/2' or 'snd/1'. Default: 'default'.
|
||||
# README.md contains further information on how to setup CAVA for sndio.
|
||||
#
|
||||
# For oss 'source' will be the path to a audio device, e.g. '/dev/dsp2'. Default: '/dev/dsp', i.e. the default audio device.
|
||||
# README.md contains further information on how to setup CAVA for OSS on FreeBSD.
|
||||
#
|
||||
# For jack 'source' will be the name of the JACK server to connect to, e.g. 'foobar'. Default: 'default'.
|
||||
# README.md contains further information on how to setup CAVA for JACK.
|
||||
#
|
||||
; method = pulse
|
||||
; source = auto
|
||||
|
||||
; method = pipewire
|
||||
; source = auto
|
||||
|
||||
; method = alsa
|
||||
; source = hw:Loopback,1
|
||||
|
||||
; method = fifo
|
||||
; source = /tmp/mpd.fifo
|
||||
|
||||
; method = shmem
|
||||
; source = /squeezelite-AA:BB:CC:DD:EE:FF
|
||||
|
||||
; method = portaudio
|
||||
; source = auto
|
||||
|
||||
; method = sndio
|
||||
; source = default
|
||||
|
||||
; method = oss
|
||||
; source = /dev/dsp
|
||||
|
||||
; method = jack
|
||||
; source = default
|
||||
|
||||
# The options 'sample_rate', 'sample_bits', 'channels' and 'autoconnect' can be configured for some input methods:
|
||||
# sample_rate: fifo, pipewire, sndio, oss
|
||||
# sample_bits: fifo, pipewire, sndio, oss
|
||||
# channels: sndio, oss, jack
|
||||
# autoconnect: jack
|
||||
# Other methods ignore these settings.
|
||||
#
|
||||
# For 'sndio' and 'oss' they are only preferred values, i.e. if the values are not supported
|
||||
# by the chosen audio device, the device will use other supported values instead.
|
||||
# Example: 48000, 32 and 2, but the device only supports 44100, 16 and 1, then it
|
||||
# will use 44100, 16 and 1.
|
||||
#
|
||||
; sample_rate = 44100
|
||||
; sample_bits = 16
|
||||
; channels = 2
|
||||
; autoconnect = 2
|
||||
|
||||
|
||||
[output]
|
||||
|
||||
# Output method. Can be 'ncurses', 'noncurses', 'raw', 'noritake', 'sdl'
|
||||
# or 'sdl_glsl'.
|
||||
# 'noncurses' (default) uses a buffer and cursor movements to only print
|
||||
# changes from frame to frame in the terminal. Uses less resources and is less
|
||||
# prone to tearing (vsync issues) than 'ncurses'.
|
||||
#
|
||||
# 'raw' is an 8 or 16 bit (configurable via the 'bit_format' option) data
|
||||
# stream of the bar heights that can be used to send to other applications.
|
||||
# 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above.
|
||||
#
|
||||
# 'noritake' outputs a bitmap in the format expected by a Noritake VFD display
|
||||
# in graphic mode. It only support the 3000 series graphical VFDs for now.
|
||||
#
|
||||
# 'sdl' uses the Simple DirectMedia Layer to render in a graphical context.
|
||||
# 'sdl_glsl' uses SDL to create an OpenGL context. Write your own shaders or
|
||||
# use one of the predefined ones.
|
||||
; method = noncurses
|
||||
|
||||
# Orientation of the visualization. Can be 'bottom', 'top', 'left', 'right' or
|
||||
# 'horizontal'. Default is 'bottom'. 'left and 'right' are only supported on sdl
|
||||
# and ncruses output. 'horizontal' (bars go up and down from center) is only supported
|
||||
# on noncurses output.
|
||||
# Note: many fonts have weird or missing glyphs for characters used in orientations
|
||||
# other than 'bottom', which can make output not look right.
|
||||
; orientation = bottom
|
||||
|
||||
# Visual channels. Can be 'stereo' or 'mono'.
|
||||
# 'stereo' mirrors both channels with low frequencies in center.
|
||||
# 'mono' outputs left to right lowest to highest frequencies.
|
||||
# 'mono_option' set mono to either take input from 'left', 'right' or 'average'.
|
||||
# set 'reverse' to 1 to display frequencies the other way around.
|
||||
; channels = stereo
|
||||
; mono_option = average
|
||||
; reverse = 0
|
||||
|
||||
# Raw output target.
|
||||
# On Linux, a fifo will be created if target does not exist.
|
||||
# On Windows, a named pipe will be created if target does not exist.
|
||||
; raw_target = /dev/stdout
|
||||
|
||||
# Raw data format. Can be 'binary' or 'ascii'.
|
||||
; data_format = binary
|
||||
|
||||
# Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530).
|
||||
; bit_format = 16bit
|
||||
|
||||
# Ascii max value. In 'ascii' mode range will run from 0 to value specified here
|
||||
; ascii_max_range = 1000
|
||||
|
||||
# Ascii delimiters. In ascii format each bar and frame is separated by a delimiters.
|
||||
# Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)).
|
||||
; bar_delimiter = 59
|
||||
; frame_delimiter = 10
|
||||
|
||||
# sdl window size and position. -1,-1 is centered.
|
||||
; sdl_width = 1000
|
||||
; sdl_height = 500
|
||||
; sdl_x = -1
|
||||
; sdl_y= -1
|
||||
; sdl_full_screen = 0
|
||||
|
||||
# set label on bars on the x-axis. Can be 'frequency' or 'none'. Default: 'none'
|
||||
# 'frequency' displays the lower cut off frequency of the bar above.
|
||||
# Only supported on ncurses and noncurses output.
|
||||
; xaxis = none
|
||||
|
||||
# enable synchronized sync. 1 = on, 0 = off
|
||||
# removes flickering in alacritty terminal emulator.
|
||||
# defaults to off since the behaviour in other terminal emulators is unknown
|
||||
; synchronized_sync = 0
|
||||
|
||||
# Shaders for sdl_glsl, located in $HOME/.config/cava/shaders
|
||||
; vertex_shader = pass_through.vert
|
||||
; fragment_shader = bar_spectrum.frag
|
||||
|
||||
; for glsl output mode, keep rendering even if no audio
|
||||
; continuous_rendering = 0
|
||||
|
||||
# disable console blank (screen saver) in tty
|
||||
# (Not supported on FreeBSD)
|
||||
; disable_blanking = 0
|
||||
|
||||
# show a flat bar at the bottom of the screen when idle, 1 = on, 0 = off
|
||||
; show_idle_bar_heads = 1
|
||||
|
||||
# show waveform instead of frequency spectrum, 1 = on, 0 = off
|
||||
; waveform = 0
|
||||
|
||||
[color]
|
||||
|
||||
# Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow.
|
||||
# Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires
|
||||
# a terminal that can change color definitions such as Gnome-terminal or rxvt.
|
||||
# default is to keep current terminal color
|
||||
; background = default
|
||||
foreground = magenta
|
||||
; foreground = default
|
||||
|
||||
# SDL and sdl_glsl only support hex code colors, these are the default:
|
||||
; background = '#111111'
|
||||
; foreground = '#33ffff'
|
||||
|
||||
|
||||
# Gradient mode, only hex defined colors are supported,
|
||||
# background must also be defined in hex or remain commented out. 1 = on, 0 = off.
|
||||
# You can define as many as 8 different colors. They range from bottom to top of screen
|
||||
; gradient = 0
|
||||
; gradient_color_1 = '#59cc33'
|
||||
; gradient_color_2 = '#80cc33'
|
||||
; gradient_color_3 = '#a6cc33'
|
||||
; gradient_color_4 = '#cccc33'
|
||||
; gradient_color_5 = '#cca633'
|
||||
; gradient_color_6 = '#cc8033'
|
||||
; gradient_color_7 = '#cc5933'
|
||||
; gradient_color_8 = '#cc3333'
|
||||
|
||||
|
||||
|
||||
[smoothing]
|
||||
|
||||
# Percentage value for integral smoothing. Takes values from 0 - 100.
|
||||
# Higher values means smoother, but less precise. 0 to disable.
|
||||
# DEPRECATED as of 0.8.0, use noise_reduction instead
|
||||
; integral = 77
|
||||
|
||||
# Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable.
|
||||
; monstercat = 0
|
||||
; waves = 0
|
||||
|
||||
# Set gravity percentage for "drop off". Higher values means bars will drop faster.
|
||||
# Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off".
|
||||
# DEPRECATED as of 0.8.0, use noise_reduction instead
|
||||
; gravity = 100
|
||||
|
||||
|
||||
# In bar height, bars that would have been lower that this will not be drawn.
|
||||
# DEPRECATED as of 0.8.0
|
||||
; ignore = 0
|
||||
|
||||
# Noise reduction, int 0 - 100. default 77
|
||||
# the raw visualization is very noisy, this factor adjusts the integral and gravity filters to keep the signal smooth
|
||||
# 100 will be very slow and smooth, 0 will be fast but noisy.
|
||||
noise_reduction = 20
|
||||
|
||||
|
||||
[eq]
|
||||
|
||||
# This one is tricky. You can have as much keys as you want.
|
||||
# Remember to uncomment more than one key! More keys = more precision.
|
||||
# Look at readme.md on github for further explanations and examples.
|
||||
; 1 = 1 # bass
|
||||
; 2 = 1
|
||||
; 3 = 1 # midtone
|
||||
; 4 = 1
|
||||
; 5 = 1 # treble
|
||||
79
env/.config/cava/shaders/bar_spectrum.frag
vendored
Normal file
@@ -0,0 +1,79 @@
|
||||
#version 330
|
||||
|
||||
in vec2 fragCoord;
|
||||
out vec4 fragColor;
|
||||
|
||||
// bar values. defaults to left channels first (low to high), then right (high to low).
|
||||
uniform float bars[512];
|
||||
|
||||
uniform int bars_count; // number of bars (left + right) (configurable)
|
||||
uniform int bar_width; // bar width (configurable), not used here
|
||||
uniform int bar_spacing; // space bewteen bars (configurable)
|
||||
|
||||
uniform vec3 u_resolution; // window resolution
|
||||
|
||||
//colors, configurable in cava config file (r,g,b) (0.0 - 1.0)
|
||||
uniform vec3 bg_color; // background color
|
||||
uniform vec3 fg_color; // foreground color
|
||||
|
||||
uniform int gradient_count;
|
||||
uniform vec3 gradient_colors[8]; // gradient colors
|
||||
|
||||
vec3 normalize_C(float y,vec3 col_1, vec3 col_2, float y_min, float y_max)
|
||||
{
|
||||
//create color based on fraction of this color and next color
|
||||
float yr = (y - y_min) / (y_max - y_min);
|
||||
return col_1 * (1.0 - yr) + col_2 * yr;
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
// find which bar to use based on where we are on the x axis
|
||||
float x = u_resolution.x * fragCoord.x;
|
||||
int bar = int(bars_count * fragCoord.x);
|
||||
|
||||
//calculate a bar size
|
||||
float bar_size = u_resolution.x / bars_count;
|
||||
|
||||
//the y coordinate and bar values are the same
|
||||
float y = bars[bar];
|
||||
|
||||
// make sure there is a thin line at bottom
|
||||
if (y * u_resolution.y < 1.0)
|
||||
{
|
||||
y = 1.0 / u_resolution.y;
|
||||
}
|
||||
|
||||
//draw the bar up to current height
|
||||
if (y > fragCoord.y)
|
||||
{
|
||||
//make some space between bars basen on settings
|
||||
if (x > (bar + 1) * (bar_size) - bar_spacing)
|
||||
{
|
||||
fragColor = vec4(bg_color,1.0);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gradient_count == 0)
|
||||
{
|
||||
fragColor = vec4(fg_color,1.0);
|
||||
}
|
||||
else
|
||||
{
|
||||
//find which color in the configured gradient we are at
|
||||
int color = int((gradient_count - 1) * fragCoord.y);
|
||||
|
||||
//find where on y this and next color is supposed to be
|
||||
float y_min = color / (gradient_count - 1.0);
|
||||
float y_max = (color + 1.0) / (gradient_count - 1.0);
|
||||
|
||||
//make color
|
||||
fragColor = vec4(normalize_C(fragCoord.y, gradient_colors[color], gradient_colors[color + 1], y_min, y_max), 1.0);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
fragColor = vec4(bg_color,1.0);
|
||||
}
|
||||
}
|
||||
34
env/.config/cava/shaders/northern_lights.frag
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
#version 330
|
||||
|
||||
in vec2 fragCoord;
|
||||
out vec4 fragColor;
|
||||
|
||||
// bar values. defaults to left channels first (low to high), then right (high to low).
|
||||
uniform float bars[512];
|
||||
|
||||
uniform int bars_count; // number of bars (left + right) (configurable)
|
||||
|
||||
uniform vec3 u_resolution; // window resolution, not used here
|
||||
|
||||
//colors, configurable in cava config file
|
||||
uniform vec3 bg_color; // background color(r,g,b) (0.0 - 1.0), not used here
|
||||
uniform vec3 fg_color; // foreground color, not used here
|
||||
|
||||
void main()
|
||||
{
|
||||
// find which bar to use based on where we are on the x axis
|
||||
int bar = int(bars_count * fragCoord.x);
|
||||
|
||||
float bar_y = 1.0 - abs((fragCoord.y - 0.5)) * 2.0;
|
||||
float y = (bars[bar]) * bar_y;
|
||||
|
||||
float bar_x = (fragCoord.x - float(bar) / float(bars_count)) * bars_count;
|
||||
float bar_r = 1.0 - abs((bar_x - 0.5)) * 2;
|
||||
|
||||
bar_r = bar_r * bar_r * 2;
|
||||
|
||||
// set color
|
||||
fragColor.r = fg_color.x * y * bar_r;
|
||||
fragColor.g = fg_color.y * y * bar_r;
|
||||
fragColor.b = fg_color.z * y * bar_r;
|
||||
}
|
||||
14
env/.config/cava/shaders/pass_through.vert
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
#version 330
|
||||
|
||||
|
||||
// Input vertex data, different for all executions of this shader.
|
||||
layout(location = 0) in vec3 vertexPosition_modelspace;
|
||||
|
||||
// Output data ; will be interpolated for each fragment.
|
||||
out vec2 fragCoord;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = vec4(vertexPosition_modelspace,1);
|
||||
fragCoord = (vertexPosition_modelspace.xy+vec2(1,1))/2.0;
|
||||
}
|
||||
53
env/.config/cava/shaders/spectrogram.frag
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
#version 330
|
||||
|
||||
in vec2 fragCoord;
|
||||
out vec4 fragColor;
|
||||
|
||||
// bar values. defaults to left channels first (low to high), then right (high
|
||||
// to low).
|
||||
uniform float bars[512];
|
||||
|
||||
uniform int bars_count; // number of bars (left + right) (configurable)
|
||||
uniform int bar_width; // bar width (configurable), not used here
|
||||
uniform int bar_spacing; // space bewteen bars (configurable)
|
||||
|
||||
uniform vec3 u_resolution; // window resolution
|
||||
|
||||
// colors, configurable in cava config file (r,g,b) (0.0 - 1.0)
|
||||
uniform vec3 bg_color; // background color
|
||||
uniform vec3 fg_color; // foreground color
|
||||
|
||||
uniform int gradient_count;
|
||||
uniform vec3 gradient_colors[8]; // gradient colors
|
||||
|
||||
uniform sampler2D inputTexture; // Texture from the first render pass
|
||||
|
||||
vec3 normalize_C(float y, vec3 col_1, vec3 col_2, float y_min, float y_max) {
|
||||
// create color based on fraction of this color and next color
|
||||
float yr = (y - y_min) / (y_max - y_min);
|
||||
return col_1 * (1.0 - yr) + col_2 * yr;
|
||||
}
|
||||
|
||||
void main() {
|
||||
// find which bar to use based on where we are on the y axis
|
||||
int bar = int(bars_count * fragCoord.y);
|
||||
float y = bars[bar];
|
||||
float band_size = 1.0 / float(bars_count);
|
||||
float current_band_min = bar * band_size;
|
||||
float current_band_max = (bar + 1) * band_size;
|
||||
|
||||
int hist_length = 512;
|
||||
float win_size = 1.0 / hist_length;
|
||||
|
||||
if (fragCoord.x > 1.0 - win_size) {
|
||||
|
||||
if (fragCoord.y > current_band_min && fragCoord.y < current_band_max) {
|
||||
|
||||
fragColor = vec4(fg_color * y, 1.0);
|
||||
}
|
||||
} else {
|
||||
vec2 offsetCoord = fragCoord;
|
||||
offsetCoord.x += float(win_size);
|
||||
fragColor = texture(inputTexture, offsetCoord);
|
||||
}
|
||||
}
|
||||
112
env/.config/cava/shaders/winamp_line_style_spectrum.frag
vendored
Normal file
@@ -0,0 +1,112 @@
|
||||
#version 330
|
||||
|
||||
// Emulate the "line style" spectrum analyzer from Winamp 2.
|
||||
// Try this config for a demonstration:
|
||||
|
||||
/*
|
||||
[general]
|
||||
bar_width = 2
|
||||
bar_spacing = 0
|
||||
higher_cutoff_freq = 22000
|
||||
|
||||
[output]
|
||||
method = sdl_glsl
|
||||
channels = mono
|
||||
fragment_shader = winamp_line_style_spectrum.frag
|
||||
|
||||
[color]
|
||||
background = '#000000'
|
||||
gradient = 1
|
||||
gradient_color_1 = '#319C08'
|
||||
gradient_color_2 = '#29CE10'
|
||||
gradient_color_3 = '#BDDE29'
|
||||
gradient_color_4 = '#DEA518'
|
||||
gradient_color_5 = '#D66600'
|
||||
gradient_color_6 = '#CE2910'
|
||||
|
||||
[smoothing]
|
||||
noise_reduction = 10
|
||||
*/
|
||||
|
||||
in vec2 fragCoord;
|
||||
out vec4 fragColor;
|
||||
|
||||
// bar values. defaults to left channels first (low to high), then right (high to low).
|
||||
uniform float bars[512];
|
||||
|
||||
uniform int bars_count; // number of bars (left + right) (configurable)
|
||||
uniform int bar_width; // bar width (configurable), not used here
|
||||
uniform int bar_spacing; // space bewteen bars (configurable)
|
||||
|
||||
uniform vec3 u_resolution; // window resolution
|
||||
|
||||
//colors, configurable in cava config file (r,g,b) (0.0 - 1.0)
|
||||
uniform vec3 bg_color; // background color
|
||||
uniform vec3 fg_color; // foreground color
|
||||
|
||||
uniform int gradient_count;
|
||||
uniform vec3 gradient_colors[8]; // gradient colors
|
||||
|
||||
vec3 normalize_C(float y,vec3 col_1, vec3 col_2, float y_min, float y_max)
|
||||
{
|
||||
//create color based on fraction of this color and next color
|
||||
float yr = (y - y_min) / (y_max - y_min);
|
||||
return col_1 * (1.0 - yr) + col_2 * yr;
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
// find which bar to use based on where we are on the x axis
|
||||
float x = u_resolution.x * fragCoord.x;
|
||||
int bar = int(bars_count * fragCoord.x);
|
||||
|
||||
//calculate a bar size
|
||||
float bar_size = u_resolution.x / bars_count;
|
||||
|
||||
//the y coordinate is stretched by 4X to resemble Winamp
|
||||
float y = min(bars[bar] * 4.0, 1.0);
|
||||
|
||||
// make sure there is a thin line at bottom
|
||||
if (y * u_resolution.y < 1.0)
|
||||
{
|
||||
y = 1.0 / u_resolution.y;
|
||||
}
|
||||
|
||||
vec4 bar_color;
|
||||
|
||||
if (gradient_count == 0)
|
||||
{
|
||||
bar_color = vec4(fg_color,1.0);
|
||||
}
|
||||
else
|
||||
{
|
||||
//find color in the configured gradient for the top of the bar
|
||||
int color = int((gradient_count - 1) * y);
|
||||
|
||||
//find where on y this and next color is supposed to be
|
||||
float y_min = float(color) / (gradient_count - 1.0);
|
||||
float y_max = float(color + 1) / (gradient_count - 1.0);
|
||||
|
||||
//make a solid color for the entire bar
|
||||
bar_color = vec4(normalize_C(y, gradient_colors[color], gradient_colors[color + 1], y_min, y_max), 1.0);
|
||||
}
|
||||
|
||||
|
||||
//draw the bar up to current height
|
||||
if (y > fragCoord.y)
|
||||
{
|
||||
//make some space between bars based on settings
|
||||
if (x > (bar + 1) * (bar_size) - bar_spacing)
|
||||
{
|
||||
fragColor = vec4(bg_color,1.0);
|
||||
}
|
||||
else
|
||||
{
|
||||
fragColor = bar_color;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
fragColor = vec4(bg_color,1.0);
|
||||
}
|
||||
}
|
||||
157
env/.config/fastfetch/10.jsonc
vendored
Normal file
@@ -0,0 +1,157 @@
|
||||
// Load with --load-config examples/2.jsonc
|
||||
// Note that you must replace the image path to an existing image to display it.
|
||||
|
||||
{
|
||||
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
|
||||
"logo": {
|
||||
"padding": {
|
||||
"top": 2
|
||||
}
|
||||
},
|
||||
"display": {
|
||||
"separator": " -> ",
|
||||
"constants": [
|
||||
"──────────────────────────────"
|
||||
]
|
||||
},
|
||||
"modules": [
|
||||
{
|
||||
"type": "custom",
|
||||
"format": "┌{$1}{$1}┐",
|
||||
"outputColor": "90"
|
||||
},
|
||||
{
|
||||
"type": "title",
|
||||
"keyWidth": 10
|
||||
},
|
||||
{
|
||||
"type": "custom",
|
||||
"format": "└{$1}{$1}┘",
|
||||
"outputColor": "90"
|
||||
},
|
||||
{
|
||||
"type": "custom",
|
||||
"format": " {#90} {#31} {#32} {#33} {#34} {#35} {#36} {#37} {#38} {#39} {#38} {#37} {#36} {#35} {#34} {#33} {#32} {#31} {#90}"
|
||||
},
|
||||
{
|
||||
"type": "custom",
|
||||
"format": "┌{$1}{$1}┐",
|
||||
"outputColor": "90"
|
||||
},
|
||||
{
|
||||
"type": "os",
|
||||
"key": "{icon} OS",
|
||||
"keyColor": "yellow"
|
||||
},
|
||||
{
|
||||
"type": "kernel",
|
||||
"key": "│ ├",
|
||||
"keyColor": "yellow"
|
||||
},
|
||||
{
|
||||
"type": "packages",
|
||||
"key": "│ ├",
|
||||
"keyColor": "yellow"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"key": "│ └",
|
||||
"keyColor": "yellow"
|
||||
},
|
||||
{
|
||||
"type": "wm",
|
||||
"key": " DE/WM",
|
||||
"keyColor": "blue"
|
||||
},
|
||||
{
|
||||
"type": "lm",
|
||||
"key": "│ ├",
|
||||
"keyColor": "blue"
|
||||
},
|
||||
{
|
||||
"type": "wmtheme",
|
||||
"key": "│ ├",
|
||||
"keyColor": "blue"
|
||||
},
|
||||
{
|
||||
"type": "icons",
|
||||
"key": "│ ├",
|
||||
"keyColor": "blue"
|
||||
},
|
||||
{
|
||||
"type": "terminal",
|
||||
"key": "│ ├",
|
||||
"keyColor": "blue"
|
||||
},
|
||||
{
|
||||
"type": "wallpaper",
|
||||
"key": "│ └",
|
||||
"keyColor": "blue"
|
||||
},
|
||||
{
|
||||
"type": "host",
|
||||
"key": " PC",
|
||||
"keyColor": "green"
|
||||
},
|
||||
{
|
||||
"type": "cpu",
|
||||
"key": "│ ├",
|
||||
"keyColor": "green"
|
||||
},
|
||||
{
|
||||
"type": "gpu",
|
||||
"key": "│ ├",
|
||||
"keyColor": "green"
|
||||
},
|
||||
{
|
||||
"type": "disk",
|
||||
"key": "│ ├",
|
||||
"keyColor": "green"
|
||||
},
|
||||
{
|
||||
"type": "memory",
|
||||
"key": "│ ├",
|
||||
"keyColor": "green"
|
||||
},
|
||||
{
|
||||
"type": "swap",
|
||||
"key": "│ ├",
|
||||
"keyColor": "green"
|
||||
},
|
||||
{
|
||||
"type": "uptime",
|
||||
"key": "│ ├",
|
||||
"keyColor": "green"
|
||||
},
|
||||
{
|
||||
"type": "display",
|
||||
"key": "│ └",
|
||||
"keyColor": "green"
|
||||
},
|
||||
{
|
||||
"type": "sound",
|
||||
"key": " SND",
|
||||
"keyColor": "cyan"
|
||||
},
|
||||
{
|
||||
"type": "player",
|
||||
"key": "│ ├",
|
||||
"keyColor": "cyan"
|
||||
},
|
||||
{
|
||||
"type": "media",
|
||||
"key": "│ └",
|
||||
"keyColor": "cyan"
|
||||
},
|
||||
{
|
||||
"type": "custom",
|
||||
"format": "└{$1}{$1}┘",
|
||||
"outputColor": "90"
|
||||
},
|
||||
"break",
|
||||
{
|
||||
"type": "custom",
|
||||
"format": " {#90} {#31} {#32} {#33} {#34} {#35} {#36} {#37} {#38} {#39} {#38} {#37} {#36} {#35} {#34} {#33} {#32} {#31} {#90}"
|
||||
}
|
||||
]
|
||||
}
|
||||
164
env/.config/fastfetch/ascii-char.jsonc
vendored
Normal file
@@ -0,0 +1,164 @@
|
||||
// Load with --load-config examples/2.jsonc
|
||||
// Note that you must replace the image path to an existing image to display it.
|
||||
|
||||
{
|
||||
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
|
||||
"logo": {
|
||||
"padding": {
|
||||
"top": 2
|
||||
},
|
||||
"source": "/home/iceyrazor/stuff/media/ICE/ascii-char.txt",
|
||||
"color": {
|
||||
"1": "reset_black",
|
||||
"2": "light_black",
|
||||
"3": "light_blue",
|
||||
"5": "light_magenta"
|
||||
}
|
||||
},
|
||||
"display": {
|
||||
"separator": " -> ",
|
||||
"constants": [
|
||||
"──────────────────────────────"
|
||||
]
|
||||
},
|
||||
"modules": [
|
||||
{
|
||||
"type": "custom",
|
||||
"format": "┌{$1}{$1}┐",
|
||||
"outputColor": "90"
|
||||
},
|
||||
{
|
||||
"type": "title",
|
||||
"keyWidth": 10
|
||||
},
|
||||
{
|
||||
"type": "custom",
|
||||
"format": "└{$1}{$1}┘",
|
||||
"outputColor": "90"
|
||||
},
|
||||
{
|
||||
"type": "custom",
|
||||
"format": " {#90} {#31} {#32} {#33} {#34} {#35} {#36} {#37} {#38} {#39} {#38} {#37} {#36} {#35} {#34} {#33} {#32} {#31} {#90}"
|
||||
},
|
||||
{
|
||||
"type": "custom",
|
||||
"format": "┌{$1}{$1}┐",
|
||||
"outputColor": "90"
|
||||
},
|
||||
{
|
||||
"type": "os",
|
||||
"key": "{icon} OS",
|
||||
"keyColor": "yellow"
|
||||
},
|
||||
{
|
||||
"type": "kernel",
|
||||
"key": "│ ├",
|
||||
"keyColor": "yellow"
|
||||
},
|
||||
{
|
||||
"type": "packages",
|
||||
"key": "│ ├",
|
||||
"keyColor": "yellow"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"key": "│ └",
|
||||
"keyColor": "yellow"
|
||||
},
|
||||
{
|
||||
"type": "wm",
|
||||
"key": " DE/WM",
|
||||
"keyColor": "blue"
|
||||
},
|
||||
{
|
||||
"type": "lm",
|
||||
"key": "│ ├",
|
||||
"keyColor": "blue"
|
||||
},
|
||||
{
|
||||
"type": "wmtheme",
|
||||
"key": "│ ├",
|
||||
"keyColor": "blue"
|
||||
},
|
||||
{
|
||||
"type": "icons",
|
||||
"key": "│ ├",
|
||||
"keyColor": "blue"
|
||||
},
|
||||
{
|
||||
"type": "terminal",
|
||||
"key": "│ ├",
|
||||
"keyColor": "blue"
|
||||
},
|
||||
{
|
||||
"type": "wallpaper",
|
||||
"key": "│ └",
|
||||
"keyColor": "blue"
|
||||
},
|
||||
{
|
||||
"type": "host",
|
||||
"key": " PC",
|
||||
"keyColor": "green"
|
||||
},
|
||||
{
|
||||
"type": "cpu",
|
||||
"key": "│ ├",
|
||||
"keyColor": "green"
|
||||
},
|
||||
{
|
||||
"type": "gpu",
|
||||
"key": "│ ├",
|
||||
"keyColor": "green"
|
||||
},
|
||||
{
|
||||
"type": "disk",
|
||||
"key": "│ ├",
|
||||
"keyColor": "green"
|
||||
},
|
||||
{
|
||||
"type": "memory",
|
||||
"key": "│ ├",
|
||||
"keyColor": "green"
|
||||
},
|
||||
{
|
||||
"type": "swap",
|
||||
"key": "│ ├",
|
||||
"keyColor": "green"
|
||||
},
|
||||
{
|
||||
"type": "uptime",
|
||||
"key": "│ ├",
|
||||
"keyColor": "green"
|
||||
},
|
||||
{
|
||||
"type": "display",
|
||||
"key": "│ └",
|
||||
"keyColor": "green"
|
||||
},
|
||||
{
|
||||
"type": "sound",
|
||||
"key": " SND",
|
||||
"keyColor": "cyan"
|
||||
},
|
||||
{
|
||||
"type": "player",
|
||||
"key": "│ ├",
|
||||
"keyColor": "cyan"
|
||||
},
|
||||
{
|
||||
"type": "media",
|
||||
"key": "│ └",
|
||||
"keyColor": "cyan"
|
||||
},
|
||||
{
|
||||
"type": "custom",
|
||||
"format": "└{$1}{$1}┘",
|
||||
"outputColor": "90"
|
||||
},
|
||||
"break",
|
||||
{
|
||||
"type": "custom",
|
||||
"format": " {#90} {#31} {#32} {#33} {#34} {#35} {#36} {#37} {#38} {#39} {#38} {#37} {#36} {#35} {#34} {#33} {#32} {#31} {#90}"
|
||||
}
|
||||
]
|
||||
}
|
||||
103
env/.config/fastfetch/compact.jsonc
vendored
Normal file
@@ -0,0 +1,103 @@
|
||||
// Load with --load-config examples/2.jsonc
|
||||
// Note that you must replace the image path to an existing image to display it.
|
||||
|
||||
{
|
||||
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
|
||||
"logo": {
|
||||
"padding": {
|
||||
"top": 2
|
||||
},
|
||||
"type": "small",
|
||||
"type": "kitty-direct",
|
||||
// "source": "/home/iceyrazor/stuff/media/ICE/Sprite-0009.png",
|
||||
"source": "/home/iceyrazor/stuff/media/ICE/the_best_it_is_going_to_be.png",
|
||||
"width": 30,
|
||||
"height": 19
|
||||
},
|
||||
"display": {
|
||||
"separator": " -> ",
|
||||
"constants": [
|
||||
"──────────────────────────────"
|
||||
]
|
||||
},
|
||||
"modules": [
|
||||
{
|
||||
"type": "title",
|
||||
"format": " {user-name-colored}{at-symbol-colored}{host-name-colored}"
|
||||
},
|
||||
{
|
||||
"type": "custom",
|
||||
"format": "{$1}{$1}",
|
||||
"outputColor": "90"
|
||||
},
|
||||
{
|
||||
"type": "kernel",
|
||||
"key": "",
|
||||
"keyColor": "yellow"
|
||||
},
|
||||
{
|
||||
"type": "packages",
|
||||
"key": "",
|
||||
"keyColor": "yellow"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"key": "",
|
||||
"keyColor": "yellow"
|
||||
},
|
||||
{
|
||||
"type": "wm",
|
||||
"key": " DE/WM",
|
||||
"keyColor": "blue"
|
||||
},
|
||||
{
|
||||
"type": "terminal",
|
||||
"key": "",
|
||||
"keyColor": "blue"
|
||||
},
|
||||
{
|
||||
"type": "disk",
|
||||
"key": "",
|
||||
"keyColor": "green"
|
||||
},
|
||||
{
|
||||
"type": "memory",
|
||||
"key": "",
|
||||
"keyColor": "green"
|
||||
},
|
||||
{
|
||||
"type": "swap",
|
||||
"key": "",
|
||||
"keyColor": "green"
|
||||
},
|
||||
{
|
||||
"type": "uptime",
|
||||
"key": "",
|
||||
"keyColor": "green"
|
||||
},
|
||||
{
|
||||
"type": "sound",
|
||||
"key": " SND",
|
||||
"keyColor": "cyan"
|
||||
},
|
||||
{
|
||||
"type": "player",
|
||||
"key": "",
|
||||
"keyColor": "cyan"
|
||||
},
|
||||
{
|
||||
"type": "media",
|
||||
"key": "",
|
||||
"keyColor": "cyan"
|
||||
},
|
||||
{
|
||||
"type": "custom",
|
||||
"format": "{$1}{$1}",
|
||||
"outputColor": "90"
|
||||
},
|
||||
{
|
||||
"type": "custom",
|
||||
"format": " {#90} {#31} {#32} {#33} {#34} {#35} {#36} {#37} {#38} {#39} {#38} {#37} {#36} {#35} {#34} {#33} {#32} {#31} {#90}"
|
||||
}
|
||||
]
|
||||
}
|
||||
5
env/.config/hypr/cycle-layout.sh
vendored
Executable file
@@ -0,0 +1,5 @@
|
||||
if [ -z $(hyprctl getoption general:layout | grep master ) ]; then
|
||||
hyprctl keyword general:layout master
|
||||
else
|
||||
hyprctl keyword general:layout dwindle
|
||||
fi
|
||||
440
env/.config/hypr/hyprland.conf
vendored
Normal file
@@ -0,0 +1,440 @@
|
||||
|
||||
# #######################################################################################
|
||||
# AUTOGENERATED HYPRLAND CONFIG.
|
||||
# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hyprland.conf AND EDIT IT,
|
||||
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
|
||||
# #######################################################################################
|
||||
|
||||
# autogenerated = 1 # remove this line to remove the warning
|
||||
|
||||
env = QT_QPA_PLATFORM,wayland
|
||||
env = LIBVA_DRIVER_NAME,nvidia
|
||||
env = GBM_BACKEND,nvidia-drm
|
||||
# env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
||||
env = XDG_CURRENT_DESKTOP,Hyprland
|
||||
env = XDG_SESSION_TYPE,wayland
|
||||
env = XDG_SESSION_DESKTOP,Hyprland
|
||||
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 = /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
|
||||
|
||||
# This is an example Hyprland config file.
|
||||
# Refer to the wiki for more information.
|
||||
# https://wiki.hyprland.org/Configuring/
|
||||
|
||||
# Please note not all available settings / options are set here.
|
||||
# For a full list, see the wiki
|
||||
|
||||
# You can split this configuration into multiple files
|
||||
# Create your files separately and then link them to this file like this:
|
||||
# source = ~/.config/hypr/myColors.conf
|
||||
|
||||
|
||||
################
|
||||
### MONITORS ###
|
||||
################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||
monitor=HDMI-A-1,prefered,0x0,0.8
|
||||
monitor=DP-1,1280x720,auto,0.625
|
||||
|
||||
|
||||
workspace=HDMI-A-1,1
|
||||
workspace=DP-1,1
|
||||
|
||||
workspace = 1,monitor:HDMI-A-1,default:true
|
||||
workspace = 2,monitor:HDMI-A-1
|
||||
workspace = 3,monitor:HDMI-A-1
|
||||
workspace = 4,monitor:HDMI-A-1
|
||||
workspace = 5,monitor:HDMI-A-1
|
||||
workspace = 6,monitor:HDMI-A-1
|
||||
workspace = 7,monitor:HDMI-A-1
|
||||
workspace = 8,monitor:HDMI-A-1
|
||||
workspace = 9,monitor:HDMI-A-1
|
||||
workspace = 10,monitor:HDMI-A-1
|
||||
|
||||
workspace = 11,monitor:DP-1,default:true
|
||||
workspace = 12,monitor:DP-1
|
||||
workspace = 13,monitor:DP-1
|
||||
workspace = 14,monitor:DP-1
|
||||
workspace = 15,monitor:DP-1
|
||||
workspace = 16,monitor:DP-1
|
||||
workspace = 17,monitor:DP-1
|
||||
workspace = 18,monitor:DP-1
|
||||
workspace = 19,monitor:DP-1
|
||||
workspace = 20,monitor:DP-1
|
||||
|
||||
|
||||
###################
|
||||
### MY PROGRAMS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||
|
||||
# Set programs that you use
|
||||
$terminal = wezterm
|
||||
$terminal2 = urxvt
|
||||
$fileManager = pcmanfm
|
||||
$menu = rofi -show drun
|
||||
|
||||
|
||||
#################
|
||||
### AUTOSTART ###
|
||||
#################
|
||||
|
||||
# Autostart necessary processes (like notifications daemons, status bars, etc.)
|
||||
# Or execute your favorite apps at launch like this:
|
||||
|
||||
# exec-once = $terminal
|
||||
# exec-once = nm-applet &
|
||||
# exec-once = waybar & hyprpaper & firefox
|
||||
|
||||
|
||||
#############################
|
||||
### ENVIRONMENT VARIABLES ###
|
||||
#############################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Environment-variables/
|
||||
|
||||
env = XCURSOR_SIZE,24
|
||||
env = HYPRCURSOR_SIZE,24
|
||||
|
||||
|
||||
###################
|
||||
### PERMISSIONS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Permissions/
|
||||
# Please note permission changes here require a Hyprland restart and are not applied on-the-fly
|
||||
# for security reasons
|
||||
|
||||
# ecosystem {
|
||||
# enforce_permissions = 1
|
||||
# }
|
||||
|
||||
# permission = /usr/(bin|local/bin)/grim, screencopy, allow
|
||||
# permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow
|
||||
# permission = /usr/(bin|local/bin)/hyprpm, plugin, allow
|
||||
|
||||
|
||||
#####################
|
||||
### LOOK AND FEEL ###
|
||||
#####################
|
||||
|
||||
# Refer to https://wiki.hyprland.org/Configuring/Variables/
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#general
|
||||
general {
|
||||
gaps_in = 5
|
||||
gaps_out = 5
|
||||
|
||||
border_size = 1
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
||||
# col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
|
||||
col.active_border = rgba(8568e6ee) rgba(cf68e6ee) 45deg
|
||||
col.active_border = rgba(cf68e6ee) rgba(8568e6ee) 45deg
|
||||
#33ccff
|
||||
#00ff99
|
||||
#8568e6
|
||||
col.inactive_border = rgba(595959aa)
|
||||
|
||||
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
||||
resize_on_border = false
|
||||
|
||||
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
||||
allow_tearing = false
|
||||
|
||||
layout = dwindle
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
||||
decoration {
|
||||
rounding = 0
|
||||
rounding_power = 2
|
||||
|
||||
# Change transparency of focused and unfocused windows
|
||||
active_opacity = 1.0
|
||||
inactive_opacity = 1.0
|
||||
|
||||
shadow {
|
||||
enabled = true
|
||||
range = 4
|
||||
render_power = 3
|
||||
color = rgba(1a1a1aee)
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#blur
|
||||
blur {
|
||||
enabled = true
|
||||
size = 3
|
||||
passes = 1
|
||||
|
||||
vibrancy = 0.1696
|
||||
}
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#animations
|
||||
animations {
|
||||
enabled = yes, please :)
|
||||
|
||||
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||
|
||||
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.
|
||||
# workspace = w[tv1], gapsout:0, gapsin:0
|
||||
# workspace = f[1], gapsout:0, gapsin:0
|
||||
# windowrule = bordersize 0, floating:0, onworkspace:w[tv1]
|
||||
# windowrule = rounding 0, floating:0, onworkspace:w[tv1]
|
||||
# windowrule = bordersize 0, floating:0, onworkspace:f[1]
|
||||
# windowrule = rounding 0, floating:0, onworkspace:f[1]
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||
dwindle {
|
||||
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
preserve_split = true # You probably want this
|
||||
}
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||
master {
|
||||
new_status = master
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#misc
|
||||
misc {
|
||||
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
|
||||
disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
|
||||
focus_on_activate = true
|
||||
}
|
||||
|
||||
|
||||
#############
|
||||
### INPUT ###
|
||||
#############
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#input
|
||||
input {
|
||||
kb_layout = us
|
||||
kb_variant =
|
||||
kb_model =
|
||||
kb_options =
|
||||
kb_rules =
|
||||
|
||||
follow_mouse = 1
|
||||
|
||||
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||
|
||||
special_fallthrough = true
|
||||
|
||||
touchpad {
|
||||
natural_scroll = false
|
||||
}
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#gestures
|
||||
gestures {
|
||||
workspace_swipe = false
|
||||
}
|
||||
|
||||
# Example per-device config
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
|
||||
device {
|
||||
name = epic-mouse-v1
|
||||
sensitivity = -0.5
|
||||
}
|
||||
|
||||
|
||||
###################
|
||||
### KEYBINDINGS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||
$mainMod = SUPER # Sets "Windows" key as main modifier
|
||||
|
||||
|
||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||
bind = $mainMod, return, exec, $terminal
|
||||
bind = $mainMod SHIFT, return, exec, $terminal2
|
||||
bind = $mainMod, Q, killactive,
|
||||
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, P, pseudo, # dwindle
|
||||
bind = $mainMod, i, togglesplit, # dwindle
|
||||
bind = $mainMod, f, fullscreen, 0
|
||||
bind = $mainMod SHIFT, m, fullscreen, 1
|
||||
|
||||
# layout stuffs
|
||||
bind = $mainMod SHIFT, space, exec, $HOME/.config/hypr/cycle-layout.sh
|
||||
bind = $mainMod SHIFT, i, layoutmsg, cyclenext
|
||||
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)
|
||||
|
||||
# Move focus with mainMod + arrow keys
|
||||
bind = $mainMod, h, movefocus, l
|
||||
bind = $mainMod, l, movefocus, r
|
||||
bind = $mainMod, k, movefocus, u
|
||||
bind = $mainMod, j, movefocus, d
|
||||
bind = $mainMod, h, alterzorder, top
|
||||
bind = $mainMod, l, alterzorder, top
|
||||
bind = $mainMod, k, alterzorder, top
|
||||
bind = $mainMod, j, alterzorder, top
|
||||
|
||||
bind = $mainMod SHIFT, h, movewindow, l
|
||||
bind = $mainMod SHIFT, l, movewindow, r
|
||||
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, o, focusmonitor, +1
|
||||
bind = $mainMod SHIFT, o, movewindow, mon:+1
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
bind = $mainMod, 1, workspace, r~1
|
||||
bind = $mainMod, 2, workspace, r~2
|
||||
bind = $mainMod, 3, workspace, r~3
|
||||
bind = $mainMod, 4, workspace, r~4
|
||||
bind = $mainMod, 5, workspace, r~5
|
||||
bind = $mainMod, 6, workspace, r~6
|
||||
bind = $mainMod, 7, workspace, r~7
|
||||
bind = $mainMod, 8, workspace, r~8
|
||||
bind = $mainMod, 9, workspace, r~9
|
||||
bind = $mainMod, 0, workspace, r~10
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
bind = $mainMod SHIFT, 1, movetoworkspace, r~1
|
||||
bind = $mainMod SHIFT, 2, movetoworkspace, r~2
|
||||
bind = $mainMod SHIFT, 3, movetoworkspace, r~3
|
||||
bind = $mainMod SHIFT, 4, movetoworkspace, r~4
|
||||
bind = $mainMod SHIFT, 5, movetoworkspace, r~5
|
||||
bind = $mainMod SHIFT, 6, movetoworkspace, r~6
|
||||
bind = $mainMod SHIFT, 7, movetoworkspace, r~7
|
||||
bind = $mainMod SHIFT, 8, movetoworkspace, r~8
|
||||
bind = $mainMod SHIFT, 9, movetoworkspace, r~9
|
||||
bind = $mainMod SHIFT, 0, movetoworkspace, r~10
|
||||
|
||||
# Example special workspace (scratchpad)
|
||||
bind = $mainMod, S, togglespecialworkspace, magic
|
||||
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
bind = $mainMod, mouse_down, workspace, e+1
|
||||
bind = $mainMod, mouse_up, workspace, e-1
|
||||
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
# Laptop multimedia keys for volume and LCD brightness
|
||||
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
|
||||
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle
|
||||
# pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
||||
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||
bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+
|
||||
bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-
|
||||
|
||||
# Requires playerctl
|
||||
bindl = , XF86AudioNext, exec, playerctl next
|
||||
bindl = , XF86AudioPause, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPrev, exec, playerctl previous
|
||||
|
||||
##############################
|
||||
### WINDOWS AND WORKSPACES ###
|
||||
##############################
|
||||
|
||||
xwayland {
|
||||
force_zero_scaling = true
|
||||
}
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
|
||||
|
||||
# Example windowrule
|
||||
# windowrule = float,class:^(kitty)$,title:^(kitty)$
|
||||
|
||||
# Ignore maximize requests from apps. You'll probably like this.
|
||||
windowrule = suppressevent maximize, class:.*
|
||||
|
||||
# Fix some dragging issues with XWayland
|
||||
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
|
||||
|
||||
# Gajim
|
||||
windowrule = float, title:Gajim
|
||||
windowrule = monitor DP-1, title:Gajim
|
||||
windowrule = move 100%-w-5 100%-w-40, title:Gajim
|
||||
windowrule = size 60% 60%, title:Gajim
|
||||
windowrule = workspace 11, title:Gajim
|
||||
|
||||
# Vesktop
|
||||
windowrule = float, class:vesktop
|
||||
windowrule = monitor DP-1, class:vesktop
|
||||
windowrule = move 0% 0%, class:vesktop
|
||||
windowrule = size 70% 70%, class:vesktop
|
||||
windowrule = workspace 11, class:vesktop
|
||||
windowrule = bordercolor rgba(00000000), class:vesktop
|
||||
windowrule = noborder, class:vesktop
|
||||
windowrule = noshadow, class:vesktop
|
||||
windowrule = noblur, class:vesktop
|
||||
|
||||
# Mumble
|
||||
windowrule = float, title:Mumble
|
||||
windowrule = monitor DP-1, title:Mumble
|
||||
windowrule = move 100%-w-5 0%, title:Mumble
|
||||
windowrule = size 40% 50%, title:Mumble
|
||||
windowrule = workspace 11, title:Mumble
|
||||
|
||||
# Steam Friends List
|
||||
windowrule = float, title:Friends List, class: steam
|
||||
windowrule = move 100%-w-5 100%-w-40, title:Friends List, class: steam
|
||||
windowrule = size 20% 70%, title:Friends List, class: steam
|
||||
|
||||
# Extra
|
||||
windowrule = workspace 9, title: Envision
|
||||
|
||||
windowrule = workspace 8, title: VRChat
|
||||
14
env/.config/hypr/hyprpaper.conf
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
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
|
||||
|
||||
#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
|
||||
wallpaper = DP-1,/home/iceyrazor/stuff/media/wallpapers/tumblr_06bbd355f3e355049446dac24f6e7c44_2c486f77_1280 ninesols.jpg
|
||||
|
||||
#enable splash text rendering over the wallpaper
|
||||
splash = true
|
||||
|
||||
#fully disable ipc
|
||||
# ipc = off
|
||||
377
env/.config/lf/icons
vendored
Normal file
@@ -0,0 +1,377 @@
|
||||
# vim:ft=conf
|
||||
|
||||
# These examples require Nerd Fonts or a compatible font to be used.
|
||||
# See https://www.nerdfonts.com for more information.
|
||||
|
||||
# default values from lf (with matching order)
|
||||
# ln l # LINK
|
||||
# or l # ORPHAN
|
||||
# tw t # STICKY_OTHER_WRITABLE
|
||||
# ow d # OTHER_WRITABLE
|
||||
# st t # STICKY
|
||||
# di d # DIR
|
||||
# pi p # FIFO
|
||||
# so s # SOCK
|
||||
# bd b # BLK
|
||||
# cd c # CHR
|
||||
# su u # SETUID
|
||||
# sg g # SETGID
|
||||
# ex x # EXEC
|
||||
# fi - # FILE
|
||||
|
||||
# file types (with matching order)
|
||||
ln # LINK
|
||||
or # ORPHAN
|
||||
tw t # STICKY_OTHER_WRITABLE
|
||||
ow # OTHER_WRITABLE
|
||||
st t # STICKY
|
||||
di # DIR
|
||||
pi p # FIFO
|
||||
so s # SOCK
|
||||
bd b # BLK
|
||||
cd c # CHR
|
||||
su u # SETUID
|
||||
sg g # SETGID
|
||||
ex # EXEC
|
||||
fi # FILE
|
||||
|
||||
# disable some default filetype icons, let them choose icon by filename
|
||||
# ln # LINK
|
||||
# or # ORPHAN
|
||||
# tw # STICKY_OTHER_WRITABLE
|
||||
# ow # OTHER_WRITABLE
|
||||
# st # STICKY
|
||||
# di # DIR
|
||||
# pi # FIFO
|
||||
# so # SOCK
|
||||
# bd # BLK
|
||||
# cd # CHR
|
||||
# su # SETUID
|
||||
# sg # SETGID
|
||||
# ex # EXEC
|
||||
# fi # FILE
|
||||
|
||||
# file extensions (vim-devicons)
|
||||
*.styl
|
||||
*.sass
|
||||
*.scss
|
||||
*.htm
|
||||
*.html
|
||||
*.slim
|
||||
*.haml
|
||||
*.ejs
|
||||
*.css
|
||||
*.less
|
||||
*.md
|
||||
*.mdx
|
||||
*.markdown
|
||||
*.rmd
|
||||
*.json
|
||||
*.webmanifest
|
||||
*.js
|
||||
*.mjs
|
||||
*.jsx
|
||||
*.rb
|
||||
*.gemspec
|
||||
*.rake
|
||||
*.php
|
||||
*.py
|
||||
*.pyc
|
||||
*.pyo
|
||||
*.pyd
|
||||
*.coffee
|
||||
*.mustache
|
||||
*.hbs
|
||||
*.conf
|
||||
*.ini
|
||||
*.yml
|
||||
*.yaml
|
||||
*.toml
|
||||
*.bat
|
||||
*.mk
|
||||
*.jpg
|
||||
*.jpeg
|
||||
*.bmp
|
||||
*.png
|
||||
*.webp
|
||||
*.gif
|
||||
*.ico
|
||||
*.twig
|
||||
*.cpp
|
||||
*.c++
|
||||
*.cxx
|
||||
*.cc
|
||||
*.cp
|
||||
*.c
|
||||
*.cs
|
||||
*.h
|
||||
*.hh
|
||||
*.hpp
|
||||
*.hxx
|
||||
*.hs
|
||||
*.lhs
|
||||
*.nix
|
||||
*.lua
|
||||
*.java
|
||||
*.sh
|
||||
*.fish
|
||||
*.bash
|
||||
*.zsh
|
||||
*.ksh
|
||||
*.csh
|
||||
*.awk
|
||||
*.ps1
|
||||
*.ml λ
|
||||
*.mli λ
|
||||
*.diff
|
||||
*.db
|
||||
*.sql
|
||||
*.dump
|
||||
*.clj
|
||||
*.cljc
|
||||
*.cljs
|
||||
*.edn
|
||||
*.scala
|
||||
*.go
|
||||
*.dart
|
||||
*.xul
|
||||
*.sln
|
||||
*.suo
|
||||
*.pl
|
||||
*.pm
|
||||
*.t
|
||||
*.rss
|
||||
'*.f#'
|
||||
*.fsscript
|
||||
*.fsx
|
||||
*.fs
|
||||
*.fsi
|
||||
*.rs
|
||||
*.rlib
|
||||
*.d
|
||||
*.erl
|
||||
*.hrl
|
||||
*.ex
|
||||
*.exs
|
||||
*.eex
|
||||
*.leex
|
||||
*.heex
|
||||
*.vim
|
||||
*.ai
|
||||
*.psd
|
||||
*.psb
|
||||
*.ts
|
||||
*.tsx
|
||||
*.jl
|
||||
*.pp
|
||||
*.vue
|
||||
*.elm
|
||||
*.swift
|
||||
*.xcplayground
|
||||
*.tex
|
||||
*.r
|
||||
*.rproj
|
||||
*.sol
|
||||
*.pem
|
||||
|
||||
# file names (vim-devicons) (case-insensitive not supported in lf)
|
||||
*gruntfile.coffee
|
||||
*gruntfile.js
|
||||
*gruntfile.ls
|
||||
*gulpfile.coffee
|
||||
*gulpfile.js
|
||||
*gulpfile.ls
|
||||
*mix.lock
|
||||
*dropbox
|
||||
*.ds_store
|
||||
*.gitconfig
|
||||
*.gitignore
|
||||
*.gitattributes
|
||||
*.gitlab-ci.yml
|
||||
*.bashrc
|
||||
*.zshrc
|
||||
*.zshenv
|
||||
*.zprofile
|
||||
*.vimrc
|
||||
*.gvimrc
|
||||
*_vimrc
|
||||
*_gvimrc
|
||||
*.bashprofile
|
||||
*favicon.ico
|
||||
*license
|
||||
*node_modules
|
||||
*react.jsx
|
||||
*procfile
|
||||
*dockerfile
|
||||
*docker-compose.yml
|
||||
*docker-compose.yaml
|
||||
*compose.yml
|
||||
*compose.yaml
|
||||
*rakefile
|
||||
*config.ru
|
||||
*gemfile
|
||||
*makefile
|
||||
*cmakelists.txt
|
||||
*robots.txt
|
||||
|
||||
# file names (case-sensitive adaptations)
|
||||
*Gruntfile.coffee
|
||||
*Gruntfile.js
|
||||
*Gruntfile.ls
|
||||
*Gulpfile.coffee
|
||||
*Gulpfile.js
|
||||
*Gulpfile.ls
|
||||
*Dropbox
|
||||
*.DS_Store
|
||||
*LICENSE
|
||||
*React.jsx
|
||||
*Procfile
|
||||
*Dockerfile
|
||||
*Docker-compose.yml
|
||||
*Docker-compose.yaml
|
||||
*Rakefile
|
||||
*Gemfile
|
||||
*Makefile
|
||||
*CMakeLists.txt
|
||||
|
||||
# file patterns (vim-devicons) (patterns not supported in lf)
|
||||
# .*jquery.*\.js$
|
||||
# .*angular.*\.js$
|
||||
# .*backbone.*\.js$
|
||||
# .*require.*\.js$
|
||||
# .*materialize.*\.js$
|
||||
# .*materialize.*\.css$
|
||||
# .*mootools.*\.js$
|
||||
# .*vimrc.*
|
||||
# Vagrantfile$
|
||||
|
||||
# file patterns (file name adaptations)
|
||||
*jquery.min.js
|
||||
*angular.min.js
|
||||
*backbone.min.js
|
||||
*require.min.js
|
||||
*materialize.min.js
|
||||
*materialize.min.css
|
||||
*mootools.min.js
|
||||
*vimrc
|
||||
Vagrantfile
|
||||
|
||||
# archives or compressed (extensions from dircolors defaults)
|
||||
*.tar
|
||||
*.tgz
|
||||
*.arc
|
||||
*.arj
|
||||
*.taz
|
||||
*.lha
|
||||
*.lz4
|
||||
*.lzh
|
||||
*.lzma
|
||||
*.tlz
|
||||
*.txz
|
||||
*.tzo
|
||||
*.t7z
|
||||
*.zip
|
||||
*.z
|
||||
*.dz
|
||||
*.gz
|
||||
*.lrz
|
||||
*.lz
|
||||
*.lzo
|
||||
*.xz
|
||||
*.zst
|
||||
*.tzst
|
||||
*.bz2
|
||||
*.bz
|
||||
*.tbz
|
||||
*.tbz2
|
||||
*.tz
|
||||
*.deb
|
||||
*.rpm
|
||||
*.jar
|
||||
*.war
|
||||
*.ear
|
||||
*.sar
|
||||
*.rar
|
||||
*.alz
|
||||
*.ace
|
||||
*.zoo
|
||||
*.cpio
|
||||
*.7z
|
||||
*.rz
|
||||
*.cab
|
||||
*.wim
|
||||
*.swm
|
||||
*.dwm
|
||||
*.esd
|
||||
|
||||
# image formats (extensions from dircolors defaults)
|
||||
*.jpg
|
||||
*.jpeg
|
||||
*.mjpg
|
||||
*.mjpeg
|
||||
*.gif
|
||||
*.bmp
|
||||
*.pbm
|
||||
*.pgm
|
||||
*.ppm
|
||||
*.tga
|
||||
*.xbm
|
||||
*.xpm
|
||||
*.tif
|
||||
*.tiff
|
||||
*.png
|
||||
*.svg
|
||||
*.svgz
|
||||
*.mng
|
||||
*.pcx
|
||||
*.mov
|
||||
*.mpg
|
||||
*.mpeg
|
||||
*.m2v
|
||||
*.mkv
|
||||
*.webm
|
||||
*.ogm
|
||||
*.mp4
|
||||
*.m4v
|
||||
*.mp4v
|
||||
*.vob
|
||||
*.qt
|
||||
*.nuv
|
||||
*.wmv
|
||||
*.asf
|
||||
*.rm
|
||||
*.rmvb
|
||||
*.flc
|
||||
*.avi
|
||||
*.fli
|
||||
*.flv
|
||||
*.gl
|
||||
*.dl
|
||||
*.xcf
|
||||
*.xwd
|
||||
*.yuv
|
||||
*.cgm
|
||||
*.emf
|
||||
*.ogv
|
||||
*.ogx
|
||||
|
||||
# audio formats (extensions from dircolors defaults)
|
||||
*.aac
|
||||
*.au
|
||||
*.flac
|
||||
*.m4a
|
||||
*.mid
|
||||
*.midi
|
||||
*.mka
|
||||
*.mp3
|
||||
*.mpc
|
||||
*.ogg
|
||||
*.ra
|
||||
*.wav
|
||||
*.oga
|
||||
*.opus
|
||||
*.spx
|
||||
*.xspf
|
||||
|
||||
# other formats
|
||||
*.pdf
|
||||
172
env/.config/lf/lfrc
vendored
Executable file
@@ -0,0 +1,172 @@
|
||||
# interpreter for shell commands
|
||||
set shell sh
|
||||
|
||||
# set '-eu' options for shell commands
|
||||
# These options are used to have safer shell commands. Option '-e' is used to
|
||||
# exit on error and option '-u' is used to give error for unset variables.
|
||||
# Option '-f' disables pathname expansion which can be useful when $f, $fs, and
|
||||
# $fx variables contain names with '*' or '?' characters. However, this option
|
||||
# is used selectively within individual commands as it can be limiting at
|
||||
# times.
|
||||
set shellopts '-eu'
|
||||
|
||||
# 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)
|
||||
# is newline. You need to consider the values of these options and create your
|
||||
# commands accordingly.
|
||||
set ifs "\n"
|
||||
|
||||
# leave some space at the top and the bottom of the screen
|
||||
set scrolloff 10
|
||||
|
||||
# Use the `dim` attribute instead of underline for the cursor in the preview pane
|
||||
set cursorpreviewfmt "\033[7;2m"
|
||||
|
||||
# use enter for shell commands
|
||||
map <enter> shell
|
||||
|
||||
# show the result of execution of previous commands
|
||||
map ` !true
|
||||
|
||||
# execute current file (must be executable)
|
||||
map x $$f
|
||||
map X !$f
|
||||
|
||||
# dedicated keys for file opener actions
|
||||
map o &mimeopen $f
|
||||
map O $mimeopen --ask $f
|
||||
|
||||
# define a custom 'open' command
|
||||
# This command is called when current file is not a directory. You may want to
|
||||
# use either file extensions and/or mime types here. Below uses an editor for
|
||||
# text files and a file opener for the rest.
|
||||
cmd open &{{
|
||||
case $(file --mime-type -Lb $f) in
|
||||
text/*) lf -remote "send $id \$$EDITOR \$fx";;
|
||||
*) for f in $fx; do $OPENER $f > /dev/null 2> /dev/null & done;;
|
||||
esac
|
||||
}}
|
||||
|
||||
# mkdir command. See wiki if you want it to select created dir
|
||||
map a :push %mkdir<space>
|
||||
|
||||
# define a custom 'rename' command without prompt for overwrite
|
||||
# cmd rename %[ -e $1 ] && printf "file exists" || mv $f $1
|
||||
# map r push :rename<space>
|
||||
|
||||
# make sure trash folder exists
|
||||
# %mkdir -p ~/.trash
|
||||
|
||||
# move current file or selected files to trash folder
|
||||
# (also see 'man mv' for backup/overwrite options)
|
||||
cmd trash %set -f; mv $fx ~/.trash
|
||||
|
||||
# define a custom 'delete' command
|
||||
# cmd delete ${{
|
||||
# set -f
|
||||
# printf "$fx\n"
|
||||
# printf "delete?[y/n]"
|
||||
# read ans
|
||||
# [ "$ans" = "y" ] && rm -rf $fx
|
||||
# }}
|
||||
|
||||
# use '<delete>' key for either 'trash' or 'delete' command
|
||||
# map <delete> trash
|
||||
# map <delete> delete
|
||||
|
||||
# extract the current file with the right command
|
||||
# (xkcd link: https://xkcd.com/1168/)
|
||||
cmd extract ${{
|
||||
set -f
|
||||
case $f in
|
||||
*.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf $f;;
|
||||
*.tar.gz|*.tgz) tar xzvf $f;;
|
||||
*.tar.xz|*.txz) tar xJvf $f;;
|
||||
*.zip) unzip $f;;
|
||||
*.rar) unrar x $f;;
|
||||
*.7z) 7z x $f;;
|
||||
esac
|
||||
}}
|
||||
|
||||
# compress current file or selected files with tar and gunzip
|
||||
cmd tar ${{
|
||||
set -f
|
||||
mkdir $1
|
||||
cp -r $fx $1
|
||||
tar czf $1.tar.gz $1
|
||||
rm -rf $1
|
||||
}}
|
||||
|
||||
# compress current file or selected files with zip
|
||||
cmd zip ${{
|
||||
set -f
|
||||
mkdir $1
|
||||
cp -r $fx $1
|
||||
zip -r $1.zip $1
|
||||
rm -rf $1
|
||||
}}
|
||||
|
||||
cmd trash ${{
|
||||
files=$(printf "$fx" | tr '\n' ';')
|
||||
while [ "$files" ]; do
|
||||
file=${files%%;*}
|
||||
|
||||
mv "$(basename "$file")" ~/.trash
|
||||
if [ "$files" = "$file" ]; then
|
||||
files=''
|
||||
else
|
||||
files="${files#*;}"
|
||||
fi
|
||||
done
|
||||
}}
|
||||
|
||||
cmd vim ${{
|
||||
nvim $f
|
||||
}}
|
||||
|
||||
cmd Sxiv ${{
|
||||
nohup sxiv $f > /dev/null 2> /dev/null < /dev/null & disown
|
||||
}}
|
||||
|
||||
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
|
||||
}}
|
||||
|
||||
cmd clip-path ${{
|
||||
if [ -z $WAYLAND_DISPLAY ]; then
|
||||
printf "$f" | xclip -selection clipboard
|
||||
else
|
||||
printf "$f" | wl-copy
|
||||
fi
|
||||
}}
|
||||
|
||||
cmd filebrowser ${{
|
||||
nohup pcmanfm $f > /dev/null 2> /dev/null < /dev/null & disown
|
||||
}}
|
||||
|
||||
map DD trash
|
||||
map DP delete
|
||||
map V vim
|
||||
map S Sxiv
|
||||
map C clipf
|
||||
map <c-c> clip-path
|
||||
map P filebrowser
|
||||
|
||||
|
||||
set icons true
|
||||
14
env/.config/nvim/.luarc.json
vendored
Executable file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"runtime.version": "LuaJIT",
|
||||
"runtime.path": [
|
||||
"lua/?.lua",
|
||||
"lua/?/init.lua"
|
||||
],
|
||||
"diagnostics.globals": ["vim",
|
||||
"endclose_tag_on_exit"],
|
||||
"workspace.checkThirdParty": false,
|
||||
"workspace.library": [
|
||||
"$VIMRUNTIME",
|
||||
"./lua"
|
||||
]
|
||||
}
|
||||
41
env/.config/nvim/after/plugin/3rd.lua
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
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
|
||||
},
|
||||
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
|
||||
})
|
||||
|
||||
-- require("image").enable() -- enable the plugin
|
||||
-- print(require("image").is_enabled()) -- bool
|
||||
31
env/.config/nvim/after/plugin/cloak.lua
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
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,
|
||||
}
|
||||
},
|
||||
})
|
||||
1
env/.config/nvim/after/plugin/colorizer.lua
vendored
Normal file
@@ -0,0 +1 @@
|
||||
require("colorizer").setup()
|
||||
1
env/.config/nvim/after/plugin/hardtime.lua
vendored
Normal file
@@ -0,0 +1 @@
|
||||
require("hardtime").setup()
|
||||
11
env/.config/nvim/after/plugin/harpoon.lua
vendored
Executable file
@@ -0,0 +1,11 @@
|
||||
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","<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)
|
||||
30
env/.config/nvim/after/plugin/indent-blankline.lua
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
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)
|
||||
|
||||
require('ibl').setup {
|
||||
indent = {
|
||||
char = '|',
|
||||
highlight = highlight,
|
||||
},
|
||||
scope = {
|
||||
show_start = false,
|
||||
show_end = false,
|
||||
show_exact_scope = false,
|
||||
},
|
||||
exclude = {
|
||||
filetypes = {
|
||||
'help',
|
||||
'packer',
|
||||
'undotree',
|
||||
'diff',
|
||||
},
|
||||
},
|
||||
}
|
||||
75
env/.config/nvim/after/plugin/lsp.lua
vendored
Executable file
@@ -0,0 +1,75 @@
|
||||
vim.api.nvim_create_autocmd("FileType", {
|
||||
pattern = "src",
|
||||
callback = function()
|
||||
print("LSP should now be active for src files")
|
||||
end,
|
||||
})
|
||||
|
||||
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 = {},
|
||||
}
|
||||
}
|
||||
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({})
|
||||
|
||||
lsp.setup()
|
||||
46
env/.config/nvim/after/plugin/lualine.lua
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
require('lualine').setup()
|
||||
|
||||
local custom_gruvbox = require'lualine.themes.base16'
|
||||
|
||||
-- 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 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'}
|
||||
}
|
||||
}
|
||||
4
env/.config/nvim/after/plugin/notify.lua
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
vim.notify = require("notify")
|
||||
require("notify").setup({
|
||||
background_colour="#000000"
|
||||
})
|
||||
9
env/.config/nvim/after/plugin/telescope.lua
vendored
Executable file
@@ -0,0 +1,9 @@
|
||||
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, {})
|
||||
1
env/.config/nvim/after/plugin/undotree.lua
vendored
Normal file
@@ -0,0 +1 @@
|
||||
vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle)
|
||||
3
env/.config/nvim/custom-lsp/.luarc.json
vendored
Executable file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"workspace.library":["~/.config/nvim/custom-lsp"]
|
||||
}
|
||||
1
env/.config/nvim/init.lua
vendored
Executable file
@@ -0,0 +1 @@
|
||||
require("yourmom")
|
||||
293
env/.config/nvim/lua/yourmom/cloak.lua
vendored
Normal file
@@ -0,0 +1,293 @@
|
||||
local group = vim.api.nvim_create_augroup('cloak', {})
|
||||
local namespace = vim.api.nvim_create_namespace('cloak')
|
||||
|
||||
-- In case cmp is lazy loaded, we check :CmpStatus instead of a pcall to require
|
||||
-- so we maintain the lazy load.
|
||||
local has_cmp = function()
|
||||
return vim.fn.exists(':CmpStatus') > 0
|
||||
end
|
||||
|
||||
local M = {}
|
||||
|
||||
M.opts = {
|
||||
enabled = true,
|
||||
cloak_character = '*',
|
||||
cloak_length = nil,
|
||||
highlight_group = 'Comment',
|
||||
try_all_patterns = true,
|
||||
patterns = { { file_pattern = '.env*', cloak_pattern = '=.+' } },
|
||||
cloak_telescope = true,
|
||||
uncloaked_line_num = nil,
|
||||
cloak_on_leave = false,
|
||||
}
|
||||
|
||||
M.setup = function(opts)
|
||||
M.opts = vim.tbl_deep_extend('force', M.opts, opts or {})
|
||||
vim.b.cloak_enabled = M.opts.enabled
|
||||
|
||||
for _, pattern in ipairs(M.opts.patterns) do
|
||||
if type(pattern.cloak_pattern) == 'string' then
|
||||
pattern.cloak_pattern = { { pattern.cloak_pattern, replace = pattern.replace } }
|
||||
else
|
||||
for i, inner_pattern in ipairs(pattern.cloak_pattern) do
|
||||
pattern.cloak_pattern[i] =
|
||||
type(inner_pattern) == 'string'
|
||||
and { inner_pattern, replace = pattern.cloak_pattern.replace or pattern.replace }
|
||||
or inner_pattern
|
||||
end
|
||||
end
|
||||
|
||||
vim.api.nvim_create_autocmd(
|
||||
{ 'BufEnter', 'TextChanged', 'TextChangedI', 'TextChangedP' }, {
|
||||
pattern = pattern.file_pattern,
|
||||
callback = function()
|
||||
if M.opts.enabled then
|
||||
M.cloak(pattern)
|
||||
else
|
||||
M.uncloak()
|
||||
end
|
||||
end,
|
||||
group = group,
|
||||
}
|
||||
)
|
||||
|
||||
if M.opts.cloak_on_leave then
|
||||
vim.api.nvim_create_autocmd(
|
||||
'BufWinLeave', {
|
||||
pattern = pattern.file_pattern,
|
||||
callback = function()
|
||||
M.enable()
|
||||
end,
|
||||
group = group,
|
||||
}
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
if M.opts.cloak_telescope then
|
||||
vim.api.nvim_create_autocmd(
|
||||
'User', {
|
||||
pattern = 'TelescopePreviewerLoaded',
|
||||
callback = function(args)
|
||||
-- Feature not in 0.1.x
|
||||
if not M.opts.enabled or args.data == nil then
|
||||
return
|
||||
end
|
||||
|
||||
local buffer = require('telescope.state').get_existing_prompt_bufnrs()[1]
|
||||
local picker = require('telescope.actions.state').get_current_picker(
|
||||
buffer
|
||||
)
|
||||
|
||||
-- If our state variable is set, meaning we have just refreshed after cloaking a buffer,
|
||||
-- set the selection to that row again.
|
||||
if picker.__cloak_selection then
|
||||
picker:set_selection(picker.__cloak_selection)
|
||||
picker.__cloak_selection = nil
|
||||
vim.schedule(
|
||||
function()
|
||||
picker:refresh_previewer()
|
||||
end
|
||||
)
|
||||
return
|
||||
end
|
||||
|
||||
local is_cloaked, _ = pcall(
|
||||
vim.api.nvim_buf_get_var, args.buf, 'cloaked'
|
||||
)
|
||||
|
||||
-- Check the buffer agains all configured patterns,
|
||||
-- if matched, set a variable on the picker to know where we left off,
|
||||
-- set a buffer variable to know we already cloaked it later, and refresh.
|
||||
-- a refresh will result in the cloak being visible, and will make this
|
||||
-- aucmd be called again right away with the first result, which we will then
|
||||
-- set to what we have stored in the code above.
|
||||
if M.recloak_file(args.data.bufname) then
|
||||
vim.api.nvim_buf_set_var(args.buf, 'cloaked', true)
|
||||
if is_cloaked then
|
||||
return
|
||||
end
|
||||
|
||||
local row = picker:get_selection_row()
|
||||
picker.__cloak_selection = row
|
||||
picker:refresh()
|
||||
return
|
||||
end
|
||||
end,
|
||||
group = group,
|
||||
}
|
||||
)
|
||||
end
|
||||
-- Handle cloaking the Telescope preview.
|
||||
|
||||
vim.api.nvim_create_user_command('CloakEnable', M.enable, {})
|
||||
vim.api.nvim_create_user_command('CloakDisable', M.disable, {})
|
||||
vim.api.nvim_create_user_command('CloakToggle', M.toggle, {})
|
||||
vim.api.nvim_create_user_command('CloakPreviewLine', M.uncloak_line, {})
|
||||
end
|
||||
|
||||
M.uncloak = function()
|
||||
vim.api.nvim_buf_clear_namespace(0, namespace, 0, -1)
|
||||
end
|
||||
|
||||
M.uncloak_line = function()
|
||||
if not M.opts.enabled then
|
||||
return
|
||||
end
|
||||
|
||||
local buf = vim.api.nvim_win_get_buf(0)
|
||||
local cursor = vim.api.nvim_win_get_cursor(0)
|
||||
M.opts.uncloaked_line_num = cursor[1]
|
||||
|
||||
vim.api.nvim_create_autocmd(
|
||||
{ 'CursorMoved', 'CursorMovedI', 'BufLeave' }, {
|
||||
buffer = buf,
|
||||
callback = function(args)
|
||||
if not M.opts.enabled then
|
||||
M.opts.uncloaked_line_num = nil
|
||||
return true
|
||||
end
|
||||
|
||||
if args.event == 'BufLeave' then
|
||||
M.opts.uncloaked_line_num = nil
|
||||
M.recloak_file(vim.api.nvim_buf_get_name(buf))
|
||||
return true
|
||||
end
|
||||
|
||||
local ncursor = vim.api.nvim_win_get_cursor(0)
|
||||
if ncursor[1] == M.opts.uncloaked_line_num then
|
||||
return
|
||||
end
|
||||
|
||||
M.opts.uncloaked_line_num = nil
|
||||
M.recloak_file(vim.api.nvim_buf_get_name(buf))
|
||||
|
||||
-- deletes the auto command
|
||||
return true
|
||||
end,
|
||||
group = group,
|
||||
}
|
||||
)
|
||||
|
||||
M.recloak_file(vim.api.nvim_buf_get_name(buf))
|
||||
end
|
||||
|
||||
M.cloak = function(pattern)
|
||||
M.uncloak()
|
||||
|
||||
if has_cmp() then
|
||||
require('cmp').setup.buffer({ enabled = false })
|
||||
end
|
||||
|
||||
local function determine_replacement(length, prefix)
|
||||
local cloak_str = prefix
|
||||
.. M.opts.cloak_character:rep(
|
||||
tonumber(M.opts.cloak_length)
|
||||
or length - vim.fn.strchars(prefix))
|
||||
local remaining_length = length - vim.fn.strchars(cloak_str)
|
||||
-- Fixme:
|
||||
-- - When cloak_length is longer than the text underlying it,
|
||||
-- it results in overlaying of extra text
|
||||
-- => Possiblie solutions would could be implemented using inline virtual text
|
||||
-- (https://github.com/neovim/neovim/pull/20130)
|
||||
return cloak_str -- :sub(1, math.min(remaining_length - 1, -1))
|
||||
.. (' '):rep(remaining_length)
|
||||
end
|
||||
|
||||
local found_pattern = false
|
||||
local lines = vim.api.nvim_buf_get_lines(0, 0, -1, false)
|
||||
for i, line in ipairs(lines) do
|
||||
-- Find all matches for the current line
|
||||
local searchStartIndex = 1
|
||||
while searchStartIndex < #line and
|
||||
-- if the line is uncloaked skip
|
||||
i ~= M.opts.uncloaked_line_num do
|
||||
|
||||
-- Find best pattern based on starting position and tiebreak with length
|
||||
local first, last, matching_pattern, has_groups = -1, 1, nil, false
|
||||
for _, inner_pattern in ipairs(pattern.cloak_pattern) do
|
||||
local current_first, current_last, capture_group =
|
||||
line:find(inner_pattern[1], searchStartIndex)
|
||||
if current_first ~= nil
|
||||
and (first < 0
|
||||
or current_first < first
|
||||
or (current_first == first and current_last > last)) then
|
||||
first, last, matching_pattern, has_groups =
|
||||
current_first, current_last, inner_pattern, capture_group ~= nil
|
||||
if M.opts.try_all_patterns == false then break end
|
||||
end
|
||||
end
|
||||
if first >= 0 then
|
||||
found_pattern = true
|
||||
local prefix = line:sub(first,first)
|
||||
if has_groups and matching_pattern.replace ~= nil then
|
||||
prefix = line:sub(first,last)
|
||||
:gsub(matching_pattern[1], matching_pattern.replace, 1)
|
||||
end
|
||||
local last_of_prefix = first + vim.fn.strchars(prefix) - 1
|
||||
if prefix == line:sub(first, last_of_prefix) then
|
||||
first, prefix = last_of_prefix + 1, ''
|
||||
end
|
||||
vim.api.nvim_buf_set_extmark(
|
||||
0, namespace, i - 1, first-1, {
|
||||
hl_mode = 'combine',
|
||||
virt_text = {
|
||||
{
|
||||
determine_replacement(last - first + 1, prefix),
|
||||
M.opts.highlight_group,
|
||||
},
|
||||
},
|
||||
virt_text_pos = 'overlay',
|
||||
}
|
||||
)
|
||||
else break end
|
||||
searchStartIndex = last
|
||||
end
|
||||
end
|
||||
if found_pattern then
|
||||
vim.opt_local.wrap = false
|
||||
end
|
||||
end
|
||||
|
||||
M.recloak_file = function(filename)
|
||||
local base_name = vim.fn.fnamemodify(filename, ':t')
|
||||
for _, pattern in ipairs(M.opts.patterns) do
|
||||
-- Could be a string or a table of patterns.
|
||||
local file_patterns = pattern.file_pattern
|
||||
if type(file_patterns) == 'string' then
|
||||
file_patterns = { file_patterns }
|
||||
end
|
||||
|
||||
for _, file_pattern in ipairs(file_patterns) do
|
||||
if base_name ~= nil and
|
||||
vim.fn.match(base_name, vim.fn.glob2regpat(file_pattern)) ~= -1 then
|
||||
M.cloak(pattern)
|
||||
return true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
M.disable = function()
|
||||
M.uncloak()
|
||||
M.opts.enabled = false
|
||||
vim.b.cloak_enabled = false
|
||||
end
|
||||
|
||||
M.enable = function()
|
||||
M.opts.enabled = true
|
||||
vim.b.cloak_enabled = true
|
||||
vim.cmd('doautocmd TextChanged')
|
||||
end
|
||||
|
||||
M.toggle = function()
|
||||
if M.opts.enabled then
|
||||
M.disable()
|
||||
else
|
||||
M.enable()
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
||||
50
env/.config/nvim/lua/yourmom/init.lua
vendored
Executable file
@@ -0,0 +1,50 @@
|
||||
require("yourmom.remap")
|
||||
|
||||
vim.opt.guicursor=""
|
||||
|
||||
vim.opt.nu = true
|
||||
vim.opt.relativenumber = true
|
||||
|
||||
vim.opt.tabstop = 4
|
||||
vim.opt.softtabstop = 4
|
||||
vim.opt.shiftwidth = 4
|
||||
vim.opt.expandtab = true
|
||||
|
||||
vim.opt.smartindent=true
|
||||
|
||||
vim.opt.wrap = true
|
||||
|
||||
vim.opt.hlsearch = false
|
||||
vim.opt.incsearch = true
|
||||
|
||||
vim.o.ignorecase = true
|
||||
|
||||
vim.opt.updatetime = 50
|
||||
--vim.opt.colorcolumn = "80"
|
||||
--vim.cmd('colorscheme vim')
|
||||
--vim.cmd('colorscheme rose-pine')
|
||||
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')
|
||||
|
||||
vim.cmd('hi StatusLine ctermfg=0')
|
||||
vim.cmd('hi StatusLine ctermbg=15')
|
||||
vim.cmd('hi StatusLine cterm=reverse')
|
||||
|
||||
vim.opt.termguicolors = true
|
||||
|
||||
--allows highlighint in comments
|
||||
--vim.api.nvim_set_hl(0, '@lsp.type.comment.cpp', {})
|
||||
|
||||
|
||||
vim.filetype.add({
|
||||
extension = {
|
||||
src = "greyscript"
|
||||
}
|
||||
})
|
||||
73
env/.config/nvim/lua/yourmom/packer.lua
vendored
Executable file
@@ -0,0 +1,73 @@
|
||||
-- This file can be loaded by calling `lua require('plugins')` from your init.vim
|
||||
|
||||
-- Only required if you have packer configured as `opt`
|
||||
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'
|
||||
|
||||
use 'm4xshen/hardtime.nvim'
|
||||
|
||||
use 'rcarriga/nvim-notify'
|
||||
|
||||
use { "rose-pine/neovim", as = "rose-pine" }
|
||||
|
||||
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 {
|
||||
'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 {
|
||||
'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'},
|
||||
|
||||
-- LSP Support
|
||||
{'neovim/nvim-lspconfig'},
|
||||
-- Autocompletion
|
||||
{'hrsh7th/nvim-cmp'},
|
||||
{'hrsh7th/cmp-buffer'},
|
||||
{'hrsh7th/cmp-path'},
|
||||
{'hrsh7th/cmp-nvim-lsp'},
|
||||
{'hrsh7th/cmp-nvim-lua'},
|
||||
{'L3MON4D3/LuaSnip'},
|
||||
}
|
||||
}
|
||||
end)
|
||||
262
env/.config/nvim/lua/yourmom/remap.lua
vendored
Executable file
@@ -0,0 +1,262 @@
|
||||
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'>
|
||||
]]
|
||||
|
||||
|
||||
--move highlighted stuffs
|
||||
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
|
||||
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")
|
||||
vim.keymap.set("n", "n", "nzzzv")
|
||||
vim.keymap.set("n", "N", "Nzzzv")
|
||||
|
||||
--sets leader y to put in sys clipboard
|
||||
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
|
||||
vim.keymap.set('v', '<', '<gv', {noremap = true})
|
||||
vim.keymap.set('v', '>', '>gv', {noremap = true})
|
||||
|
||||
|
||||
--reize with arrows
|
||||
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>')
|
||||
vim.keymap.set('n', '<A-l>', ':vertical resize +2<CR>')
|
||||
|
||||
-- window management
|
||||
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>')
|
||||
|
||||
-- navigate splits
|
||||
vim.keymap.set("n","<C-h>","<C-w>h")
|
||||
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")
|
||||
|
||||
|
||||
|
||||
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)
|
||||
|
||||
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)
|
||||
|
||||
local auto_close=false
|
||||
local function toggle_auto_close()
|
||||
if auto_close==false then
|
||||
vim.keymap.set("i", "{", "{<CR>}<Esc>ko");
|
||||
vim.keymap.set("i", "(", "()<Esc>i");
|
||||
if string.find(filename,".*%.html$") then
|
||||
vim.keymap.set("i", "<", "<");
|
||||
vim.keymap.set("i", ">", "><Esc>T<yef>a</><Esc>hpF<i");
|
||||
else
|
||||
vim.keymap.set("i", "<", "<><Esc>i");
|
||||
vim.keymap.set("i", ">", ">");
|
||||
end
|
||||
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", "(", "(");
|
||||
vim.keymap.set("i", "<", "<");
|
||||
vim.keymap.set("i", ">", ">");
|
||||
vim.keymap.set("i", "[", "[");
|
||||
vim.keymap.set("i", "\"", "\"");
|
||||
vim.keymap.set("i", "'", "'");
|
||||
auto_close=false
|
||||
end
|
||||
end
|
||||
toggle_auto_close()
|
||||
|
||||
vim.keymap.set("n", "<leader>k", toggle_auto_close)
|
||||
|
||||
--[[
|
||||
vim.keymap("i","<Caps_Lock>", function()
|
||||
|
||||
end)
|
||||
]]
|
||||
|
||||
local colemak_switch=false
|
||||
|
||||
local colemak_tog = function()
|
||||
if colemak_switch==true then
|
||||
colemak_switch=false
|
||||
vim.keymap.set("n","d","d")
|
||||
vim.keymap.set("n","e","e")
|
||||
vim.keymap.set("n","f","f")
|
||||
vim.keymap.set("n","g","g")
|
||||
vim.keymap.set("n","i","i")
|
||||
vim.keymap.set("n","j","j")
|
||||
vim.keymap.set("n","k","k")
|
||||
vim.keymap.set("n","l","l")
|
||||
vim.keymap.set("n","n","n")
|
||||
vim.keymap.set("n","o","o")
|
||||
vim.keymap.set("n","p","p")
|
||||
vim.keymap.set("n","r","r")
|
||||
vim.keymap.set("n","s","s")
|
||||
vim.keymap.set("n","t","t")
|
||||
vim.keymap.set("n","u","u")
|
||||
vim.keymap.set("n","y","y")
|
||||
vim.keymap.set("n","D","D")
|
||||
vim.keymap.set("n","E","E")
|
||||
vim.keymap.set("n","F","F")
|
||||
vim.keymap.set("n","G","G")
|
||||
vim.keymap.set("n","I","I")
|
||||
vim.keymap.set("n","J","J")
|
||||
vim.keymap.set("n","K","K")
|
||||
vim.keymap.set("n","L","L")
|
||||
vim.keymap.set("n","N","N")
|
||||
vim.keymap.set("n","O","O")
|
||||
vim.keymap.set("n","P","P")
|
||||
vim.keymap.set("n","R","R")
|
||||
vim.keymap.set("n","S","S")
|
||||
vim.keymap.set("n","T","T")
|
||||
vim.keymap.set("n","U","U")
|
||||
vim.keymap.set("n","Y","Y")
|
||||
|
||||
vim.keymap.set("v","d","d")
|
||||
vim.keymap.set("v","e","e")
|
||||
vim.keymap.set("v","f","f")
|
||||
vim.keymap.set("v","g","g")
|
||||
vim.keymap.set("v","i","i")
|
||||
vim.keymap.set("v","j","j")
|
||||
vim.keymap.set("v","k","k")
|
||||
vim.keymap.set("v","l","l")
|
||||
vim.keymap.set("v","n","n")
|
||||
vim.keymap.set("v","o","o")
|
||||
vim.keymap.set("v","p","p")
|
||||
vim.keymap.set("v","r","r")
|
||||
vim.keymap.set("v","s","s")
|
||||
vim.keymap.set("v","t","t")
|
||||
vim.keymap.set("v","u","u")
|
||||
vim.keymap.set("v","y","y")
|
||||
vim.keymap.set("v","D","D")
|
||||
vim.keymap.set("v","E","E")
|
||||
vim.keymap.set("v","F","F")
|
||||
vim.keymap.set("v","G","G")
|
||||
vim.keymap.set("v","I","I")
|
||||
vim.keymap.set("v","J","J")
|
||||
vim.keymap.set("v","K","K")
|
||||
vim.keymap.set("v","L","L")
|
||||
vim.keymap.set("v","N","N")
|
||||
vim.keymap.set("v","O","O")
|
||||
vim.keymap.set("v","P","P")
|
||||
vim.keymap.set("v","R","R")
|
||||
vim.keymap.set("v","S","S")
|
||||
vim.keymap.set("v","T","T")
|
||||
vim.keymap.set("v","U","U")
|
||||
vim.keymap.set("v","Y","Y")
|
||||
else
|
||||
colemak_switch=true
|
||||
vim.keymap.set("n","d","g")
|
||||
vim.keymap.set("n","e","k")
|
||||
vim.keymap.set("n","f","e")
|
||||
vim.keymap.set("n","g","t")
|
||||
vim.keymap.set("n","i","l")
|
||||
vim.keymap.set("n","j","y")
|
||||
vim.keymap.set("n","k","n")
|
||||
vim.keymap.set("n","l","u")
|
||||
vim.keymap.set("n","n","j")
|
||||
vim.keymap.set("n","o","p")
|
||||
vim.keymap.set("n","p","r")
|
||||
vim.keymap.set("n","r","s")
|
||||
vim.keymap.set("n","s","d")
|
||||
vim.keymap.set("n","t","f")
|
||||
vim.keymap.set("n","u","i")
|
||||
vim.keymap.set("n","y","o")
|
||||
vim.keymap.set("n","D","G")
|
||||
vim.keymap.set("n","E","K")
|
||||
vim.keymap.set("n","F","E")
|
||||
vim.keymap.set("n","G","T")
|
||||
vim.keymap.set("n","I","L")
|
||||
vim.keymap.set("n","J","Y")
|
||||
vim.keymap.set("n","K","N")
|
||||
vim.keymap.set("n","L","U")
|
||||
vim.keymap.set("n","N","J")
|
||||
vim.keymap.set("n","O","P")
|
||||
vim.keymap.set("n","P","R")
|
||||
vim.keymap.set("n","R","S")
|
||||
vim.keymap.set("n","S","D")
|
||||
vim.keymap.set("n","T","F")
|
||||
vim.keymap.set("n","U","I")
|
||||
vim.keymap.set("n","Y","O")
|
||||
|
||||
vim.keymap.set("v","d","g")
|
||||
vim.keymap.set("v","e","k")
|
||||
vim.keymap.set("v","f","e")
|
||||
vim.keymap.set("v","g","t")
|
||||
vim.keymap.set("v","i","l")
|
||||
vim.keymap.set("v","j","y")
|
||||
vim.keymap.set("v","k","n")
|
||||
vim.keymap.set("v","l","u")
|
||||
vim.keymap.set("v","n","j")
|
||||
vim.keymap.set("v","o","p")
|
||||
vim.keymap.set("v","p","r")
|
||||
vim.keymap.set("v","r","s")
|
||||
vim.keymap.set("v","s","d")
|
||||
vim.keymap.set("v","t","f")
|
||||
vim.keymap.set("v","u","i")
|
||||
vim.keymap.set("v","y","o")
|
||||
vim.keymap.set("v","D","G")
|
||||
vim.keymap.set("v","E","K")
|
||||
vim.keymap.set("v","F","E")
|
||||
vim.keymap.set("v","G","T")
|
||||
vim.keymap.set("v","I","L")
|
||||
vim.keymap.set("v","J","Y")
|
||||
vim.keymap.set("v","K","N")
|
||||
vim.keymap.set("v","L","U")
|
||||
vim.keymap.set("v","N","J")
|
||||
vim.keymap.set("v","O","P")
|
||||
vim.keymap.set("v","P","R")
|
||||
vim.keymap.set("v","R","S")
|
||||
vim.keymap.set("v","S","D")
|
||||
vim.keymap.set("v","T","F")
|
||||
vim.keymap.set("v","U","I")
|
||||
vim.keymap.set("v","Y","O")
|
||||
end
|
||||
end
|
||||
|
||||
vim.keymap.set("n", "<leader>r", colemak_tog)
|
||||
21
env/.config/nvim/spell/en.utf-8.add
vendored
Executable file
@@ -0,0 +1,21 @@
|
||||
qpwgraph
|
||||
pipewire
|
||||
linux
|
||||
kde
|
||||
wayland
|
||||
VR
|
||||
ish
|
||||
OVR
|
||||
ALVR
|
||||
picom
|
||||
VM
|
||||
taskbar
|
||||
dwm
|
||||
distro
|
||||
vesktop
|
||||
warframe
|
||||
Anthro
|
||||
anthro
|
||||
optifine
|
||||
lol
|
||||
cuda
|
||||
BIN
env/.config/nvim/spell/en.utf-8.add.spl
vendored
Executable file
446
env/.config/picom.conf
vendored
Executable file
@@ -0,0 +1,446 @@
|
||||
#################################
|
||||
# Shadows #
|
||||
#################################
|
||||
|
||||
|
||||
# Enabled client-side shadows on windows. Note desktop windows
|
||||
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
|
||||
# unless explicitly requested using the wintypes option.
|
||||
#
|
||||
# shadow = false
|
||||
shadow = true;
|
||||
|
||||
# The blur radius for shadows, in pixels. (defaults to 12)
|
||||
# shadow-radius = 12
|
||||
shadow-radius = 7;
|
||||
|
||||
# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
|
||||
# shadow-opacity = .75
|
||||
|
||||
# The left offset for shadows, in pixels. (defaults to -15)
|
||||
# shadow-offset-x = -15
|
||||
shadow-offset-x = -7;
|
||||
|
||||
# The top offset for shadows, in pixels. (defaults to -15)
|
||||
# shadow-offset-y = -15
|
||||
shadow-offset-y = -7;
|
||||
|
||||
# Red color value of shadow (0.0 - 1.0, defaults to 0).
|
||||
# shadow-red = 0
|
||||
|
||||
# Green color value of shadow (0.0 - 1.0, defaults to 0).
|
||||
# shadow-green = 0
|
||||
|
||||
# Blue color value of shadow (0.0 - 1.0, defaults to 0).
|
||||
# shadow-blue = 0
|
||||
|
||||
# Hex string color value of shadow (#000000 - #FFFFFF, defaults to #000000). This option will override options set shadow-(red/green/blue)
|
||||
# shadow-color = "#000000"
|
||||
|
||||
# Specify a list of conditions of windows that should have no shadow.
|
||||
#
|
||||
# examples:
|
||||
# shadow-exclude = "n:e:Notification";
|
||||
#
|
||||
# shadow-exclude = []
|
||||
shadow-exclude = [
|
||||
"name = 'Notification'",
|
||||
"class_g = 'Conky'",
|
||||
"class_g ?= 'Notify-osd'",
|
||||
"class_g = 'Cairo-clock'",
|
||||
"_GTK_FRAME_EXTENTS@:c"
|
||||
];
|
||||
|
||||
# Specify a list of conditions of windows that should have no shadow painted over, such as a dock window.
|
||||
# clip-shadow-above = []
|
||||
|
||||
# Specify a X geometry that describes the region in which shadow should not
|
||||
# be painted in, such as a dock window region. Use
|
||||
# shadow-exclude-reg = "x10+0+0"
|
||||
# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
|
||||
#
|
||||
# shadow-exclude-reg = ""
|
||||
|
||||
# Crop shadow of a window fully on a particular monitor to that monitor. This is
|
||||
# currently implemented using the X RandR extension.
|
||||
# crop-shadow-to-monitor = false
|
||||
|
||||
|
||||
#################################
|
||||
# Fading #
|
||||
#################################
|
||||
|
||||
|
||||
# Fade windows in/out when opening/closing and when opacity changes,
|
||||
# unless no-fading-openclose is used.
|
||||
# fading = false
|
||||
fading = true;
|
||||
|
||||
# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
|
||||
# fade-in-step = 0.028
|
||||
fade-in-step = 0.6;
|
||||
|
||||
# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
|
||||
# fade-out-step = 0.03
|
||||
fade-out-step = 0.06;
|
||||
|
||||
# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
|
||||
# fade-delta = 10
|
||||
|
||||
# Specify a list of conditions of windows that should not be faded.
|
||||
# fade-exclude = []
|
||||
|
||||
# Do not fade on window open/close.
|
||||
# no-fading-openclose = false
|
||||
|
||||
# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
|
||||
# no-fading-destroyed-argb = false
|
||||
|
||||
|
||||
#################################
|
||||
# Transparency / Opacity #
|
||||
#################################
|
||||
|
||||
|
||||
# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
|
||||
# inactive-opacity = 1
|
||||
inactive-opacity = 1;
|
||||
|
||||
# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
|
||||
# frame-opacity = 1.0
|
||||
frame-opacity = 0.7;
|
||||
|
||||
# Let inactive opacity set by -i override the '_NET_WM_WINDOW_OPACITY' values of windows.
|
||||
# inactive-opacity-override = true
|
||||
inactive-opacity-override = false;
|
||||
|
||||
# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
|
||||
# active-opacity = 1.0
|
||||
|
||||
# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
|
||||
# inactive-dim = 0.0
|
||||
|
||||
# Specify a list of conditions of windows that should never be considered focused.
|
||||
# focus-exclude = []
|
||||
focus-exclude = [ "class_g = 'Cairo-clock'" ];
|
||||
|
||||
# Use fixed inactive dim value, instead of adjusting according to window opacity.
|
||||
# inactive-dim-fixed = 1.0
|
||||
|
||||
# Specify a list of opacity rules, in the format `PERCENT:PATTERN`,
|
||||
# like `50:name *= "Firefox"`. picom-trans is recommended over this.
|
||||
# Note we don't make any guarantee about possible conflicts with other
|
||||
# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
|
||||
# example:
|
||||
# opacity-rule = [ "80:class_g = 'URxvt'" ];
|
||||
#
|
||||
# opacity-rule = []
|
||||
#
|
||||
|
||||
opacity-rule = [
|
||||
#"95:name *= 'Firefox'",
|
||||
#"80:name *= 'Discord'",
|
||||
"90:name *= 'OBS'",
|
||||
"90:name *= 'urxvt'",
|
||||
#"80:class_g = 'steam'",
|
||||
"70:class_g *= 'screen-recorder-gtk'",
|
||||
"80:class_g *= 'simplex'",
|
||||
];
|
||||
|
||||
|
||||
#################################
|
||||
# Corners #
|
||||
#################################
|
||||
|
||||
# Sets the radius of rounded window corners. When > 0, the compositor will
|
||||
# round the corners of windows. Does not interact well with
|
||||
# `transparent-clipping`.
|
||||
corner-radius = 0
|
||||
|
||||
# Exclude conditions for rounded corners.
|
||||
rounded-corners-exclude = [
|
||||
"window_type = 'dock'",
|
||||
"window_type = 'desktop'",
|
||||
"class_g = 'dmenu'",
|
||||
"class_g = 'dwm'",
|
||||
"class_g = 'dwmsystray'",
|
||||
];
|
||||
|
||||
|
||||
#################################
|
||||
# Background-Blurring #
|
||||
#################################
|
||||
|
||||
|
||||
# Parameters for background blurring, see the *BLUR* section for more information.
|
||||
blur-method = "box"
|
||||
blur-size = 5
|
||||
|
||||
blur-deviation = false
|
||||
|
||||
blur-strength = 3
|
||||
|
||||
# Blur background of semi-transparent / ARGB windows.
|
||||
# Bad in performance, with driver-dependent behavior.
|
||||
# The name of the switch may change without prior notifications.
|
||||
#
|
||||
# blur-background = false
|
||||
|
||||
# Blur background of windows when the window frame is not opaque.
|
||||
# Implies:
|
||||
# blur-background
|
||||
# Bad in performance, with driver-dependent behavior. The name may change.
|
||||
#
|
||||
# blur-background-frame = false
|
||||
|
||||
|
||||
# Use fixed blur strength rather than adjusting according to window opacity.
|
||||
# blur-background-fixed = false
|
||||
|
||||
|
||||
# Specify the blur convolution kernel, with the following format:
|
||||
# example:
|
||||
# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
|
||||
#
|
||||
# blur-kern = ""
|
||||
blur-kern = "3x3box";
|
||||
|
||||
|
||||
# Exclude conditions for background blur.
|
||||
# blur-background-exclude = []
|
||||
blur-background-exclude = [
|
||||
"window_type = 'dock'",
|
||||
"window_type = 'desktop'",
|
||||
"_GTK_FRAME_EXTENTS@:c"
|
||||
];
|
||||
|
||||
#################################
|
||||
# General Settings #
|
||||
#################################
|
||||
|
||||
# Enable remote control via D-Bus. See the man page for more details.
|
||||
# dbus = true
|
||||
|
||||
# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
|
||||
# daemon = false
|
||||
|
||||
# Specify the backend to use: `xrender`, `glx`, `egl` or `xr_glx_hybrid`.
|
||||
# `xrender` is the default one.
|
||||
#
|
||||
# backend = "glx"
|
||||
backend = "glx";
|
||||
|
||||
# Use higher precision during rendering, and apply dither when presenting the
|
||||
# rendered screen. Reduces banding artifacts, but might cause performance
|
||||
# degradation. Only works with OpenGL.
|
||||
dithered-present = false;
|
||||
|
||||
# Enable/disable VSync.
|
||||
# vsync = false
|
||||
vsync = true;
|
||||
|
||||
# Try to detect WM windows (a non-override-redirect window with no
|
||||
# child that has 'WM_STATE') and mark them as active.
|
||||
#
|
||||
# mark-wmwin-focused = false
|
||||
mark-wmwin-focused = true;
|
||||
|
||||
# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
|
||||
# mark-ovredir-focused = false
|
||||
mark-ovredir-focused = true;
|
||||
|
||||
# Try to detect windows with rounded corners and don't consider them
|
||||
# shaped windows. The accuracy is not very high, unfortunately.
|
||||
#
|
||||
# detect-rounded-corners = false
|
||||
detect-rounded-corners = true;
|
||||
|
||||
# Detect '_NET_WM_WINDOW_OPACITY' on client windows, useful for window managers
|
||||
# not passing '_NET_WM_WINDOW_OPACITY' of client windows to frame windows.
|
||||
#
|
||||
# detect-client-opacity = false
|
||||
detect-client-opacity = true;
|
||||
|
||||
# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
|
||||
# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
|
||||
# provided that the WM supports it.
|
||||
#
|
||||
# use-ewmh-active-win = false
|
||||
|
||||
# Unredirect all windows if a full-screen opaque window is detected,
|
||||
# to maximize performance for full-screen windows. Known to cause flickering
|
||||
# when redirecting/unredirecting windows.
|
||||
#
|
||||
# unredir-if-possible = false
|
||||
|
||||
# Delay before unredirecting the window, in milliseconds. Defaults to 0.
|
||||
# unredir-if-possible-delay = 0
|
||||
|
||||
# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
|
||||
# unredir-if-possible-exclude = []
|
||||
|
||||
# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
|
||||
# in the same group focused at the same time.
|
||||
#
|
||||
# detect-transient = false
|
||||
detect-transient = true;
|
||||
|
||||
# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same
|
||||
# group focused at the same time. This usually means windows from the same application
|
||||
# will be considered focused or unfocused at the same time.
|
||||
# 'WM_TRANSIENT_FOR' has higher priority if detect-transient is enabled, too.
|
||||
#
|
||||
# detect-client-leader = false
|
||||
|
||||
# Resize damaged region by a specific number of pixels.
|
||||
# A positive value enlarges it while a negative one shrinks it.
|
||||
# If the value is positive, those additional pixels will not be actually painted
|
||||
# to screen, only used in blur calculation, and such. (Due to technical limitations,
|
||||
# with use-damage, those pixels will still be incorrectly painted to screen.)
|
||||
# Primarily used to fix the line corruption issues of blur,
|
||||
# in which case you should use the blur radius value here
|
||||
# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`,
|
||||
# with a 5x5 one you use `--resize-damage 2`, and so on).
|
||||
# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
|
||||
#
|
||||
# resize-damage = 1
|
||||
|
||||
# Specify a list of conditions of windows that should be painted with inverted color.
|
||||
# Resource-hogging, and is not well tested.
|
||||
#
|
||||
# invert-color-include = []
|
||||
|
||||
# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer.
|
||||
# Might cause incorrect opacity when rendering transparent content (but never
|
||||
# practically happened) and may not work with blur-background.
|
||||
# My tests show a 15% performance boost. Recommended.
|
||||
#
|
||||
# glx-no-stencil = false
|
||||
|
||||
# GLX backend: Avoid rebinding pixmap on window damage.
|
||||
# Probably could improve performance on rapid window content changes,
|
||||
# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.).
|
||||
# Recommended if it works.
|
||||
#
|
||||
# glx-no-rebind-pixmap = false
|
||||
|
||||
# Disable the use of damage information.
|
||||
# This cause the whole screen to be redrawn every time, instead of the part of the screen
|
||||
# has actually changed. Potentially degrades the performance, but might fix some artifacts.
|
||||
# The opposing option is use-damage
|
||||
#
|
||||
# no-use-damage = false
|
||||
use-damage = true;
|
||||
|
||||
# Use X Sync fence to sync clients' draw calls, to make sure all draw
|
||||
# calls are finished before picom starts drawing. Needed on nvidia-drivers
|
||||
# with GLX backend for some users.
|
||||
#
|
||||
# xrender-sync-fence = false
|
||||
xrender-sync-fence = true
|
||||
|
||||
# GLX backend: Use specified GLSL fragment shader for rendering window
|
||||
# contents. Read the man page for a detailed explanation of the interface.
|
||||
#
|
||||
# window-shader-fg = "default"
|
||||
|
||||
# Use rules to set per-window shaders. Syntax is SHADER_PATH:PATTERN, similar
|
||||
# to opacity-rule. SHADER_PATH can be "default". This overrides window-shader-fg.
|
||||
#
|
||||
# window-shader-fg-rule = [
|
||||
# "my_shader.frag:window_type != 'dock'"
|
||||
# ]
|
||||
|
||||
# Force all windows to be painted with blending. Useful if you
|
||||
# have a glx-fshader-win that could turn opaque pixels transparent.
|
||||
#
|
||||
# force-win-blend = false
|
||||
|
||||
# Do not use EWMH to detect fullscreen windows.
|
||||
# Reverts to checking if a window is fullscreen based only on its size and coordinates.
|
||||
#
|
||||
# no-ewmh-fullscreen = false
|
||||
|
||||
# Dimming bright windows so their brightness doesn't exceed this set value.
|
||||
# Brightness of a window is estimated by averaging all pixels in the window,
|
||||
# so this could comes with a performance hit.
|
||||
# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
|
||||
#
|
||||
# max-brightness = 1.0
|
||||
|
||||
# Make transparent windows clip other windows like non-transparent windows do,
|
||||
# instead of blending on top of them.
|
||||
#
|
||||
# transparent-clipping = false
|
||||
|
||||
# Specify a list of conditions of windows that should never have transparent
|
||||
# clipping applied. Useful for screenshot tools, where you need to be able to
|
||||
# see through transparent parts of the window.
|
||||
#
|
||||
# transparent-clipping-exclude = []
|
||||
|
||||
# Set the log level. Possible values are:
|
||||
# "trace", "debug", "info", "warn", "error"
|
||||
# in increasing level of importance. Case doesn't matter.
|
||||
# If using the "TRACE" log level, it's better to log into a file
|
||||
# using *--log-file*, since it can generate a huge stream of logs.
|
||||
#
|
||||
# log-level = "debug"
|
||||
log-level = "warn";
|
||||
|
||||
# Set the log file.
|
||||
# If *--log-file* is never specified, logs will be written to stderr.
|
||||
# Otherwise, logs will to written to the given file, though some of the early
|
||||
# logs might still be written to the stderr.
|
||||
# When setting this option from the config file, it is recommended to use an absolute path.
|
||||
#
|
||||
# log-file = "/path/to/your/log/file"
|
||||
|
||||
# Show all X errors (for debugging)
|
||||
# show-all-xerrors = false
|
||||
|
||||
# Write process ID to a file.
|
||||
# write-pid-path = "/path/to/your/log/file"
|
||||
|
||||
# Window type settings
|
||||
#
|
||||
# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard:
|
||||
# "unknown", "desktop", "dock", "toolbar", "menu", "utility",
|
||||
# "splash", "dialog", "normal", "dropdown_menu", "popup_menu",
|
||||
# "tooltip", "notification", "combo", and "dnd".
|
||||
#
|
||||
# Following per window-type options are available: ::
|
||||
#
|
||||
# fade, shadow:::
|
||||
# Controls window-type-specific shadow and fade settings.
|
||||
#
|
||||
# opacity:::
|
||||
# Controls default opacity of the window type.
|
||||
#
|
||||
# focus:::
|
||||
# Controls whether the window of this type is to be always considered focused.
|
||||
# (By default, all window types except "normal" and "dialog" has this on.)
|
||||
#
|
||||
# full-shadow:::
|
||||
# Controls whether shadow is drawn under the parts of the window that you
|
||||
# normally won't be able to see. Useful when the window has parts of it
|
||||
# transparent, and you want shadows in those areas.
|
||||
#
|
||||
# clip-shadow-above:::
|
||||
# Controls whether shadows that would have been drawn above the window should
|
||||
# be clipped. Useful for dock windows that should have no shadow painted on top.
|
||||
#
|
||||
# redir-ignore:::
|
||||
# Controls whether this type of windows should cause screen to become
|
||||
# redirected again after been unredirected. If you have unredir-if-possible
|
||||
# set, and doesn't want certain window to cause unnecessary screen redirection,
|
||||
# you can set this to `true`.
|
||||
#
|
||||
wintypes:
|
||||
{
|
||||
tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
|
||||
dock = { shadow = false; clip-shadow-above = true; }
|
||||
dnd = { shadow = false; }
|
||||
popup_menu = { opacity = 0.8; }
|
||||
dropdown_menu = { opacity = 0.8; }
|
||||
};
|
||||
15
env/.config/rofi/config.rasi
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
@theme "Arc-Dark"
|
||||
|
||||
//background: #30303050;
|
||||
*{
|
||||
background: #201f5060;
|
||||
alternate-normal-background: #3020B060;
|
||||
normal-background: #20109060;
|
||||
foreground: #F0C3F0;
|
||||
border-color: #5030D0;
|
||||
selected-normal-background: #10104060;
|
||||
}
|
||||
|
||||
window, mainbox{
|
||||
//border-radius: 20px;
|
||||
}
|
||||