aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbash/.bashrc20
-rwxr-xr-xlf/.config/lf/lfrc17
-rw-r--r--mpd/.config/mpd/mpd.conf431
-rw-r--r--ncmpcpp/.config/ncmpcpp/bindings212
-rw-r--r--ncmpcpp/.config/ncmpcpp/config605
-rw-r--r--neofetch/.config/neofetch/config.conf5
-rwxr-xr-xnsxiv/.config/nsxiv/exec/image-info19
-rw-r--r--picom/.config/picom/picom.conf394
-rw-r--r--picom/.config/picom/shaders/crt.glsl29
-rw-r--r--picom/.config/picom/shaders/default.glsl11
-rw-r--r--picom/.config/picom/shaders/grayscale.glsl28
-rw-r--r--picom/.config/picom/shaders/transparency.glsl19
-rw-r--r--pywal/.config/wal/colorschemes/dark/angel_city.json29
-rw-r--r--pywal/.config/wal/colorschemes/dark/catpuccin-frappe.json28
-rw-r--r--pywal/.config/wal/colorschemes/dark/catpuccin-latte.json28
-rw-r--r--pywal/.config/wal/colorschemes/dark/catpuccin-macchiato.json28
-rw-r--r--pywal/.config/wal/colorschemes/dark/catpuccin-mocha.json28
-rw-r--r--pywal/.config/wal/colorschemes/dark/dunes.json29
-rw-r--r--pywal/.config/wal/templates/colors.Xresources24
-rw-r--r--pywal/.config/wal/templates/colors.sh38
-rw-r--r--pywal/.config/wal/templates/dunstrc438
-rw-r--r--pywal/.config/wal/templates/flameshot.ini7
-rw-r--r--pywal/.config/wal/templates/zathurarc36
-rw-r--r--qutebrowser/.config/qutebrowser/config.py23
-rw-r--r--qutebrowser/.config/qutebrowser/home.html90
-rw-r--r--qutebrowser/.config/qutebrowser/utils.py22
l---------systemd/.config/systemd/user/default.target.wants/mpd.service1
-rw-r--r--xorg/.Xmodmap168
-rw-r--r--xorg/.Xresources69
-rw-r--r--xorg/.config/env49
-rw-r--r--xorg/.config/mimeapps.list23
-rw-r--r--xorg/.config/wallpaperbin1782198 -> 547 bytes
-rwxr-xr-xxorg/.xinitrc34
-rw-r--r--zathura/.config/zathura/zathurarc23
34 files changed, 2468 insertions, 537 deletions
diff --git a/bash/.bashrc b/bash/.bashrc
index e31c556..f6ce5bf 100755
--- a/bash/.bashrc
+++ b/bash/.bashrc
@@ -1,6 +1,8 @@
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
+terminal="$(basename "/"$(ps -o cmd -f -p $(cat /proc/$(echo $$)/stat | cut -d \ -f 4) | tail -1 | sed 's/ .*$//'))"
+
# Define function for easy script sourcing
source_if_present () { [ -f "$1" ] && source $1 ; }
@@ -15,6 +17,10 @@ source_if_present "$HOME/.cache/wal/colors-tty.sh"
# Load bash completion
source_if_present "/usr/share/bash-completion/bash_completion"
+# Colors in less
+export LESS="--RAW-CONTROL-CHARS"
+source_if_present "$HOME/.config/less/termcap"
+
# Enable tab to cycle-complete
bind '"\t":menu-complete'
@@ -36,14 +42,16 @@ alias lgit="lazygit"
alias mail="neomutt"
alias mus="ncmpcpp"
alias su="su -"
-alias tlmgr="tllocalmgr"
alias vim="nvim"
+alias yp="pwd | clip"
alias ytdl="yt-dlp"
-alias zeit="tty-clock -C 3 -f %d.%m.%Y -sc"
+alias zeit="tty-clock -C 1 -f %d.%m.%Y -sc"
-# Set prompt
-PS1='[\001\e[0;31m\002\j\001\e[0m\002] [ \001\e[0;31m\002\u\001\e[0m\002@\001\e[0;31m\002\h\001\e[0m\002 ] \001\e[0;35m\002\W\001\e[0m\002 \$ '
+export PS1='[\001\e[0;36m\002\j\001\e[0m\002] [ \001\e[0;34m\002\u\001\e[0m\002@\001\e[0;34m\002\h\001\e[0m\002 ] \001\e[0;35m\002\W\001\e[0m\002 \$ '
-# Enable wal colors
-[ -f "$HOME/.cache/wal/sequences" ] && (cat "$HOME/.cache/wal/sequences" &)
+# Enable wal colors, if terminal emulator is 'st'
+if [[ "$terminal" = "st" ]]; then
+ [ -f "$HOME/.cache/wal/sequences" ] && (cat "$HOME/.cache/wal/sequences" &)
+fi
+# trap 'echo -ne "\033]0;$BASH_COMMAND\007"' DEBUG
diff --git a/lf/.config/lf/lfrc b/lf/.config/lf/lfrc
index 430dbde..01a56e1 100755
--- a/lf/.config/lf/lfrc
+++ b/lf/.config/lf/lfrc
@@ -35,7 +35,7 @@ cmd open ${{
image/x-xcf) setsid -f gimp $f >/dev/null 2>&1 ;;
image/svg+xml) display -- $f ;;
image/*) rotdir $f | grep -i "\.\(png\|jpg\|jpeg\|gif\|webp\|tif\|ico\)\(_large\)*$" |
- setsid -f sxiv -aio 2>/dev/null | while read -r file; do
+ setsid -f nsxiv -aio 2>/dev/null | while read -r file; do
[ -z "$file" ] && continue
lf -remote "send select \"$file\""
lf -remote "send toggle"
@@ -74,7 +74,22 @@ cmd copypath ${{
pwd | xclip -selection clipboard
}}
+cmd pdfunite ${{
+ pdfunite "$fx"
+}}
+
+cmd underscoreitall ${{
+ underscoreitall "$fx"
+}}
+
+cmd remerge ${{
+ reMerge "$fx"
+}}
+
# Bindings
+map + remerge
+map _ underscoreitall
+map U pdfunite
map P copypath
map D delete
map E extract
diff --git a/mpd/.config/mpd/mpd.conf b/mpd/.config/mpd/mpd.conf
new file mode 100644
index 0000000..ade5562
--- /dev/null
+++ b/mpd/.config/mpd/mpd.conf
@@ -0,0 +1,431 @@
+# An example configuration file for MPD.
+# Read the user manual for documentation: http://www.musicpd.org/doc/user/
+
+
+# Files and directories #######################################################
+#
+# This setting controls the top directory which MPD will search to discover the
+# available audio files and add them to the daemon's online database. This
+# setting defaults to the XDG directory, otherwise the music directory will be
+# be disabled and audio files will only be accepted over ipc socket (using
+# file:// protocol) or streaming files over an accepted protocol.
+#
+music_directory "~/music/files/"
+#
+# This setting sets the MPD internal playlist directory. The purpose of this
+# directory is storage for playlists created by MPD. The server will use
+# playlist files not created by the server but only if they are in the MPD
+# format. This setting defaults to playlist saving being disabled.
+#
+playlist_directory "~/.config/mpd/playlists"
+#
+# This setting sets the location of the MPD database. This file is used to
+# load the database at server start up and store the database while the
+# server is not up. This setting defaults to disabled which will allow
+# MPD to accept files over ipc socket (using file:// protocol) or streaming
+# files over an accepted protocol.
+#
+db_file "~/.config/mpd/database"
+
+# These settings are the locations for the daemon log files for the daemon.
+#
+# The special value "syslog" makes MPD use the local syslog daemon. This
+# setting defaults to logging to syslog.
+#
+# If you use systemd, do not configure a log_file. With systemd, MPD
+# defaults to the systemd journal, which is fine.
+#
+#log_file "~/.mpd/log"
+
+# This setting sets the location of the file which stores the process ID
+# for use of mpd --kill and some init scripts. This setting is disabled by
+# default and the pid file will not be stored.
+#
+# If you use systemd, do not configure a pid_file.
+#
+pid_file "~/.config/mpd/pid"
+
+# This setting sets the location of the file which contains information about
+# most variables to get MPD back into the same general shape it was in before
+# it was brought down. This setting is disabled by default and the server
+# state will be reset on server start up.
+#
+#state_file "~/.mpd/state"
+#
+# The location of the sticker database. This is a database which
+# manages dynamic information attached to songs.
+#
+#sticker_file "~/.mpd/sticker.sql"
+#
+###############################################################################
+
+
+# General music daemon options ################################################
+#
+# This setting specifies the user that MPD will run as. MPD should never run as
+# root and you may use this setting to make MPD change its user ID after
+# initialization. This setting is disabled by default and MPD is run as the
+# current user.
+#
+#user "nobody"
+#
+# This setting specifies the group that MPD will run as. If not specified
+# primary group of user specified with "user" setting will be used (if set).
+# This is useful if MPD needs to be a member of group such as "audio" to
+# have permission to use sound card.
+#
+#group "nogroup"
+#
+# This setting sets the address for the daemon to listen on. Careful attention
+# should be paid if this is assigned to anything other than the default, any.
+# This setting can deny access to control of the daemon. Not effective if
+# systemd socket activation is in use.
+#
+# For network
+#bind_to_address "any"
+#
+# And for Unix Socket
+#bind_to_address "~/.mpd/socket"
+#
+# This setting is the TCP port that is desired for the daemon to get assigned
+# to.
+#
+#port "6600"
+#
+# Suppress all messages below the given threshold. Use "verbose" for
+# troubleshooting. Available setting arguments are "notice", "info", "verbose",
+# "warning" and "error".
+#
+#log_level "notice"
+#
+# Setting "restore_paused" to "yes" puts MPD into pause mode instead
+# of starting playback after startup.
+#
+#restore_paused "no"
+#
+# This setting enables MPD to create playlists in a format usable by other
+# music players.
+#
+#save_absolute_paths_in_playlists "no"
+#
+# This setting defines a list of tag types that will be extracted during the
+# audio file discovery process. The complete list of possible values can be
+# found in the user manual.
+#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc"
+#
+# This example just enables the "comment" tag without disabling all
+# the other supported tags:
+#metadata_to_use "+comment"
+#
+# This setting enables automatic update of MPD's database when files in
+# music_directory are changed.
+#
+#auto_update "yes"
+#
+# Limit the depth of the directories being watched, 0 means only watch
+# the music directory itself. There is no limit by default.
+#
+#auto_update_depth "3"
+#
+###############################################################################
+
+
+# Symbolic link behavior ######################################################
+#
+# If this setting is set to "yes", MPD will discover audio files by following
+# symbolic links outside of the configured music_directory.
+#
+#follow_outside_symlinks "yes"
+#
+# If this setting is set to "yes", MPD will discover audio files by following
+# symbolic links inside of the configured music_directory.
+#
+#follow_inside_symlinks "yes"
+#
+###############################################################################
+
+
+# Zeroconf / Avahi Service Discovery ##########################################
+#
+# If this setting is set to "yes", service information will be published with
+# Zeroconf / Avahi.
+#
+#zeroconf_enabled "yes"
+#
+# The argument to this setting will be the Zeroconf / Avahi unique name for
+# this MPD server on the network. %h will be replaced with the hostname.
+#
+#zeroconf_name "Music Player @ %h"
+#
+###############################################################################
+
+
+# Permissions #################################################################
+#
+# If this setting is set, MPD will require password authorization. The password
+# setting can be specified multiple times for different password profiles.
+#
+#password "password@read,add,control,admin"
+#
+# This setting specifies the permissions a user has who has not yet logged in.
+#
+#default_permissions "read,add,control,admin"
+#
+###############################################################################
+
+
+# Database #######################################################################
+#
+# An example of a database section instead of the old 'db_file' setting.
+# It enables mounting other storages into the music directory.
+#
+#database {
+# plugin "simple"
+# path "~/.local/share/mpd/db
+# cache_directory "~/.local/share/mpd/cache"
+#}
+#
+# An example of database config for a satellite setup
+#
+#music_directory "nfs://fileserver.local/srv/mp3"
+#database {
+# plugin "proxy"
+# host "other.mpd.host"
+# port "6600"
+#}
+
+# Input #######################################################################
+#
+input {
+ plugin "curl"
+# proxy "proxy.isp.com:8080"
+# proxy_user "user"
+# proxy_password "password"
+}
+
+#
+###############################################################################
+
+# Audio Output ################################################################
+#
+# MPD supports various audio output types, as well as playing through multiple
+# audio outputs at the same time, through multiple audio_output settings
+# blocks. Setting this block is optional, though the server will only attempt
+# autodetection for one sound card.
+
+audio_output {
+ type "pipewire"
+ name "PipeWire Sound Server"
+}
+
+audio_output {
+ type "fifo"
+ name "Visualizer feed"
+ path "/tmp/mpd.fifo"
+ format "44100:16:2"
+}
+
+
+# An example of an ALSA output:
+#
+#audio_output {
+# type "alsa"
+# name "My ALSA Device"
+## device "hw:0,0" # optional
+## mixer_type "hardware" # optional
+## mixer_device "default" # optional
+## mixer_control "PCM" # optional
+## mixer_index "0" # optional
+#}
+#
+# An example of an OSS output:
+#
+#audio_output {
+# type "oss"
+# name "My OSS Device"
+## device "/dev/dsp" # optional
+## mixer_type "hardware" # optional
+## mixer_device "/dev/mixer" # optional
+## mixer_control "PCM" # optional
+#}
+#
+# An example of a shout output (for streaming to Icecast):
+#
+#audio_output {
+# type "shout"
+# encoder "vorbis" # optional
+# name "My Shout Stream"
+# host "localhost"
+# port "8000"
+# mount "/mpd.ogg"
+# password "hackme"
+# quality "5.0"
+# bitrate "128"
+# format "44100:16:1"
+## protocol "icecast2" # optional
+## user "source" # optional
+## description "My Stream Description" # optional
+## url "http://example.com" # optional
+## genre "jazz" # optional
+## public "no" # optional
+## timeout "2" # optional
+## mixer_type "software" # optional
+#}
+#
+# An example of a recorder output:
+#
+#audio_output {
+# type "recorder"
+# name "My recorder"
+# encoder "vorbis" # optional, vorbis or lame
+# path "/var/lib/mpd/recorder/mpd.ogg"
+## quality "5.0" # do not define if bitrate is defined
+# bitrate "128" # do not define if quality is defined
+# format "44100:16:1"
+#}
+#
+# An example of a httpd output (built-in HTTP streaming server):
+#
+#audio_output {
+# type "httpd"
+# name "My HTTP Stream"
+# encoder "vorbis" # optional, vorbis or lame
+# port "8000"
+# bind_to_address "0.0.0.0" # optional, IPv4 or IPv6
+## quality "5.0" # do not define if bitrate is defined
+# bitrate "128" # do not define if quality is defined
+# format "44100:16:1"
+# max_clients "0" # optional 0=no limit
+#}
+#
+# An example of a pulseaudio output (streaming to a remote pulseaudio server)
+#
+#audio_output {
+# type "pulse"
+# name "My Pulse Output"
+## server "remote_server" # optional
+## sink "remote_server_sink" # optional
+## media_role "media_role" #optional
+#}
+#
+# An example of a winmm output (Windows multimedia API).
+#
+#audio_output {
+# type "winmm"
+# name "My WinMM output"
+## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
+# or
+## device "0" # optional
+## mixer_type "hardware" # optional
+#}
+#
+# An example of a wasapi output (Windows multimedia API).
+#
+#audio_output {
+# type "wasapi"
+# name "My WASAPI output"
+## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
+# or
+## device "0" # optional
+## Exclusive mode blocks all other audio source, and get best audio quality without resampling.
+## exclusive "no" # optional
+## Enumerate all devices in log.
+## enumerate "no" # optional
+#}
+#
+# An example of an openal output.
+#
+#audio_output {
+# type "openal"
+# name "My OpenAL output"
+## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
+#}
+#
+# An example of an sndio output.
+#
+#audio_output {
+# type "sndio"
+# name "sndio output"
+# mixer_type "hardware"
+#}
+#
+# An example of an OS X output:
+#
+#audio_output {
+# type "osx"
+# name "My OS X Device"
+## device "Built-in Output" # optional
+## channel_map "-1,-1,0,1" # optional
+#}
+#
+## Example "pipe" output:
+#
+#audio_output {
+# type "pipe"
+# name "my pipe"
+# command "aplay -f cd 2>/dev/null"
+## Or if you're want to use AudioCompress
+# command "AudioCompress -m | aplay -f cd 2>/dev/null"
+## Or to send raw PCM stream through PCM:
+# command "nc example.org 8765"
+# format "44100:16:2"
+#}
+#
+## An example of a null output (for no audio output):
+#
+#audio_output {
+# type "null"
+# name "My Null Output"
+# mixer_type "none" # optional
+#}
+#
+###############################################################################
+
+
+# Normalization automatic volume adjustments ##################################
+#
+# This setting specifies the type of ReplayGain to use. This setting can have
+# the argument "off", "album", "track" or "auto". "auto" is a special mode that
+# chooses between "track" and "album" depending on the current state of
+# random playback. If random playback is enabled then "track" mode is used.
+# See <https://wiki.hydrogenaud.io/index.php?title=Replaygain> for
+# more details about ReplayGain.
+# This setting is off by default.
+#
+#replaygain "album"
+#
+# This setting sets the pre-amp used for files that have ReplayGain tags. By
+# default this setting is disabled.
+#
+#replaygain_preamp "0"
+#
+# This setting sets the pre-amp used for files that do NOT have ReplayGain tags.
+# By default this setting is disabled.
+#
+#replaygain_missing_preamp "0"
+#
+# This setting enables or disables ReplayGain limiting.
+# MPD calculates actual amplification based on the ReplayGain tags
+# and replaygain_preamp / replaygain_missing_preamp setting.
+# If replaygain_limit is enabled MPD will never amplify audio signal
+# above its original level. If replaygain_limit is disabled such amplification
+# might occur. By default this setting is enabled.
+#
+#replaygain_limit "yes"
+#
+# This setting enables on-the-fly normalization volume adjustment. This will
+# result in the volume of all playing audio to be adjusted so the output has
+# equal "loudness". This setting is disabled by default.
+#
+#volume_normalization "no"
+#
+###############################################################################
+
+# Character Encoding ##########################################################
+#
+# If file or directory names do not display correctly for your locale then you
+# may need to modify this setting.
+#
+#filesystem_charset "UTF-8"
+#
+###############################################################################
diff --git a/ncmpcpp/.config/ncmpcpp/bindings b/ncmpcpp/.config/ncmpcpp/bindings
new file mode 100644
index 0000000..f8396fb
--- /dev/null
+++ b/ncmpcpp/.config/ncmpcpp/bindings
@@ -0,0 +1,212 @@
+##############################################################
+## This is the example bindings file. Copy it to ##
+## $XDG_CONFIG_HOME/ncmpcpp/bindings or ~/.ncmpcpp/bindings ##
+## and set up your preferences. ##
+##############################################################
+
+##### General rules #####
+
+## 1) Because each action has runtime checks whether it's
+## ok to run it, a few actions can be bound to one key.
+## Actions will be bound in order given in configuration
+## file. When a key is pressed, first action in order
+## will test itself whether it's possible to run it. If
+## test succeeds, action is executed and other actions
+## bound to this key are ignored. If it doesn't, next
+## action in order tests itself etc.
+
+## 2) It's possible to bind more that one action at once
+## to a key. It can be done using the following syntax:
+##
+## def_key "key"
+## action1
+## action2
+## ...
+##
+## This creates a chain of actions. When such chain is
+## executed, each action in chain is run until the end of
+## chain is reached or one of its actions fails to execute
+## due to its requirements not being met. If multiple actions
+## and/or chains are bound to the same key, they will be
+## consecutively run until one of them gets fully executed.
+
+## 3) When ncmpcpp starts, bindings configuration file is
+## parsed and then ncmpcpp provides "missing pieces"
+## of default keybindings. If you want to disable some
+## bindings, there is a special action called 'dummy'
+## for that purpose. Eg. if you want to disable ability
+## to crop playlists, you need to put the following
+## into configuration file:
+##
+## def_key "C"
+## dummy
+##
+## After that ncmpcpp will not bind any default action
+## to this key.
+
+## 4) To let you write simple macros, the following special
+## actions are provided:
+##
+## - push_character "character" - pushes given special
+## character into input queue, so it will be immediately
+## picked by ncmpcpp upon next call to readKey function.
+## Accepted values: mouse, up, down, page_up, page_down,
+## home, end, space, enter, insert, delete, left, right,
+## tab, ctrl-a, ctrl-b, ..., ctrl-z, ctrl-[, ctrl-\\,
+## ctrl-], ctrl-^, ctrl-_, f1, f2, ..., f12, backspace.
+## In addition, most of these names can be prefixed with
+## alt-/ctrl-/shift- to be recognized with the appropriate
+## modifier key(s).
+##
+## - push_characters "string" - pushes given string into
+## input queue.
+##
+## - require_runnable "action" - checks whether given action
+## is runnable and fails if it isn't. This is especially
+## useful when mixed with previous two functions. Consider
+## the following macro definition:
+##
+## def_key "key"
+## push_characters "custom_filter"
+## apply_filter
+##
+## If apply_filter can't be currently run, we end up with
+## sequence of characters in input queue which will be
+## treated just as we typed them. This may lead to unexpected
+## results (in this case 'c' will most likely clear current
+## playlist, 'u' will trigger database update, 's' will stop
+## playback etc.). To prevent such thing from happening, we
+## need to change above definition to this one:
+##
+## def_key "key"
+## require_runnable "apply_filter"
+## push_characters "custom_filter"
+## apply_filter
+##
+## Here, first we test whether apply_filter can be actually run
+## before we stuff characters into input queue, so if condition
+## is not met, whole chain is aborted and we're fine.
+##
+## - require_screen "screen" - checks whether given screen is
+## currently active. accepted values: browser, clock, help,
+## media_library, outputs, playlist, playlist_editor,
+## search_engine, tag_editor, visualizer, last_fm, lyrics,
+## selected_items_adder, server_info, song_info,
+## sort_playlist_dialog, tiny_tag_editor.
+##
+## - run_external_command "command" - runs given command using
+## system() function.
+##
+## - run_external_console_command "command" - runs given console
+## command using system() function.
+##
+
+## 5) In addition to binding to a key, you can also bind actions
+## or chains of actions to a command. If it comes to commands,
+## syntax is very similar to defining keys. Here goes example
+## definition of a command:
+##
+## def_command "quit" [deferred]
+## stop
+## quit
+##
+## If you execute the above command (which can be done by
+## invoking action execute_command, typing 'quit' and pressing
+## enter), ncmpcpp will stop the player and then quit. Note the
+## presence of word 'deferred' enclosed in square brackets. It
+## tells ncmpcpp to wait for confirmation (ie. pressing enter)
+## after you typed quit. Instead of 'deferred', 'immediate'
+## could be used. Then ncmpcpp will not wait for confirmation
+## (enter) and will execute the command the moment it sees it.
+##
+## Note: while command chains are executed, internal environment
+## update (which includes current window refresh and mpd status
+## update) is not performed for performance reasons. However, it
+## may be desirable to do so in some situration. Therefore it's
+## possible to invoke by hand by performing 'update enviroment'
+## action.
+
+## Note: There is a difference between:
+##
+## def_key "key"
+## action1
+##
+## def_key "key"
+## action2
+##
+## and
+##
+## def_key "key"
+## action1
+## action2
+##
+## First one binds two single actions to the same key whilst
+## second one defines a chain of actions. The behavior of
+## these two is different and is described in (1) and (2).
+
+## Note: Function def_key accepts non-ascii characters.
+
+def_key "t"
+ find
+def_key "t"
+ find_item_forward
+
+def_key "9"
+ show_clock
+
+def_key "up"
+ volume_up
+def_key "down"
+ volume_down
+
+def_key "j"
+ scroll_down
+def_key "k"
+ scroll_up
+
+def_key "ctrl-u"
+ page_up
+def_key "ctrl-d"
+ page_down
+
+def_key "h"
+ previous_column
+def_key "h"
+ jump_to_parent_directory
+def_key "l"
+ next_column
+def_key "l"
+ enter_directory
+def_key "l"
+ play_item
+
+def_key "g"
+ move_home
+def_key "G"
+ move_end
+
+def_key "."
+ show_lyrics
+
+def_key "n"
+ next_found_item
+def_key "N"
+ previous_found_item
+
+def_key "J"
+ move_sort_order_down
+def_key "K"
+ move_sort_order_up
+def_key "k"
+ scroll_up
+
+def_key "right"
+ seek_forward
+def_key "left"
+ seek_backward
+
+def_key "0"
+ toggle_repeat
+ toggle_random
+ toggle_crossfade
+
diff --git a/ncmpcpp/.config/ncmpcpp/config b/ncmpcpp/.config/ncmpcpp/config
new file mode 100644
index 0000000..95cba8b
--- /dev/null
+++ b/ncmpcpp/.config/ncmpcpp/config
@@ -0,0 +1,605 @@
+##############################################################
+## This is an example configuration file. Copy it to ##
+## $XDG_CONFIG_HOME/ncmpcpp/config or $HOME/.ncmpcpp/config ##
+## and set up your preferences. ##
+##############################################################
+#
+##### directories ######
+##
+## Directory for storing ncmpcpp related files. Changing it is useful if you
+## want to store everything somewhere else and provide command line setting for
+## alternative location to config file which defines that while launching
+## ncmpcpp.
+##
+#
+#ncmpcpp_directory = ~/.config/ncmpcpp
+#
+##
+## Directory for storing downloaded lyrics. It defaults to ~/.lyrics since other
+## MPD clients (eg. ncmpc) also use that location.
+##
+#
+#lyrics_directory = ~/.lyrics
+#
+##### connection settings #####
+#
+#mpd_host = localhost
+#
+#mpd_port = 6600
+#
+#mpd_connection_timeout = 5
+#
+## Needed for tag editor and file operations to work.
+##
+mpd_music_dir = ~/music/files/
+#
+#mpd_crossfade_time = 5
+#
+# Exclude pattern for random song action
+# http://www.boost.org/doc/libs/1_46_1/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html
+#random_exclude_pattern = "^(temp|midi_songs).*"
+#
+##### music visualizer #####
+##
+## In order to make music visualizer work with MPD you need to use the fifo
+## output. Its format parameter has to be set to 44100:16:1 for mono
+## visualization or 44100:16:2 for stereo visualization. As an example here is
+## the relevant section for mpd.conf:
+##
+# audio_output {
+# type "fifo"
+# name "Visualizer feed"
+# path "/tmp/mpd.fifo"
+# format "44100:16:2"
+# }
+##
+## If the visualization on occasion diverges from the audio output, please set
+## 'buffer_time' parameter of your audio output in mpd.conf to '100000' (100ms)
+## or less to prevent that from happening.
+##
+## Note: If you're using Mopidy, an address of a udpsink gstreamer's output is
+## also accepted. For example, the following section in mopidy.conf:
+##
+## [audio]
+## output = tee name=t ! queue ! autoaudiosink t.
+## ! queue ! audio/x-raw,rate=44100,channels=2,format=S16LE
+## ! udpsink host=localhost port=5555
+##
+## will make localhost:5555 available as a source of data for the stereo
+## visualizer.
+##
+#
+visualizer_data_source = /tmp/mpd.fifo
+#
+##
+## Note: Below parameter is needed for ncmpcpp to determine which output
+## provides data for visualizer and reset it at the beginning of visualization
+## to synchronize with audio.
+##
+#
+visualizer_output_name = Visualizer feed
+#
+##
+## If you set format to 44100:16:2, make it 'yes'.
+##
+visualizer_in_stereo = yes
+#
+##
+## Note: set below to >=10 only if you have synchronization issues with
+## visualization and audio.
+##
+#
+#visualizer_sync_interval = 0
+#
+##
+## Note: To enable spectrum frequency visualization you need to compile ncmpcpp
+## with fftw3 support.
+##
+#
+## Available values: spectrum, wave, wave_filled, ellipse.
+##
+visualizer_type = spectrum
+#
+#visualizer_fps = 60
+#
+#visualizer_autoscale = no
+#
+visualizer_look = "◆▋"
+#
+#visualizer_color = blue, cyan, green, yellow, magenta, red
+#
+## Alternative subset of 256 colors for terminals that support it.
+##
+#visualizer_color = 47, 83, 119, 155, 191, 227, 221, 215, 209, 203, 197, 161
+#
+##
+## Note: The next few visualization options apply to the spectrum visualizer.
+##
+#
+## Use unicode block characters for a smoother, more continuous look.
+## This will override the visualizer_look option. With transparent terminals
+## and visualizer_in_stereo set, artifacts may be visible on the bottom half of
+## the visualization.
+#
+#visualizer_spectrum_smooth_look = yes
+#
+## A value between 1 and 5 inclusive. Specifying a larger value makes the
+## visualizer look at a larger slice of time, which results in less jumpy
+## visualizer output.
+#
+#visualizer_spectrum_dft_size = 2
+#
+#visualizer_spectrum_gain = 10
+#
+## Left-most frequency of visualizer in Hz, must be less than HZ MAX
+#
+#visualizer_spectrum_hz_min = 20
+#
+## Right-most frequency of visualizer in Hz, must be greater than HZ MIN
+#
+#visualizer_spectrum_hz_max = 20000
+#
+##### system encoding #####
+##
+## ncmpcpp should detect your charset encoding but if it failed to do so, you
+## can specify charset encoding you are using here.
+##
+## Note: You can see whether your ncmpcpp build supports charset detection by
+## checking output of `ncmpcpp --version`.
+##
+## Note: Since MPD uses UTF-8 by default, setting this option makes sense only
+## if your encoding is different.
+##
+#
+#system_encoding = ""
+#
+##### delays #####
+#
+## Time of inactivity (in seconds) after playlist highlighting will be disabled
+## (0 = always on).
+##
+#playlist_disable_highlight_delay = 5
+#
+## Defines how long messages are supposed to be visible.
+##
+#message_delay_time = 5
+#
+##### song format #####
+##
+## For a song format you can use:
+##
+## %l - length
+## %f - filename
+## %D - directory
+## %a - artist
+## %A - album artist
+## %t - title
+## %b - album
+## %y - date
+## %n - track number (01/12 -> 01)
+## %N - full track info (01/12 -> 01/12)
+## %g - genre
+## %c - composer
+## %p - performer
+## %d - disc
+## %C - comment
+## %P - priority
+## $R - begin right alignment
+##
+## If you want to make sure that a part of the format is displayed only when
+## certain tags are present, you can archieve it by grouping them with brackets,
+## e.g. '{%a - %t}' will be evaluated to 'ARTIST - TITLE' if both tags are
+## present or '' otherwise. It is also possible to define a list of
+## alternatives by providing several groups and separating them with '|',
+## e.g. '{%t}|{%f}' will be evaluated to 'TITLE' or 'FILENAME' if the former is
+## not present.
+##
+## Note: If you want to set limit on maximal length of a tag, just put the
+## appropriate number between % and character that defines tag type, e.g. to
+## make album take max. 20 terminal cells, use '%20b'.
+##
+## In addition, formats support markers used for text attributes. They are
+## followed by character '$'. After that you can put:
+##
+## - 0 - default window color (discards all other colors)
+## - 1 - black
+## - 2 - red
+## - 3 - green
+## - 4 - yellow
+## - 5 - blue
+## - 6 - magenta
+## - 7 - cyan
+## - 8 - white
+## - 9 - end of current color
+## - b - bold text
+## - u - underline text
+## - r - reverse colors
+## - a - use alternative character set
+##
+## If you don't want to use a non-color attribute anymore, just put it again,
+## but this time insert character '/' between '$' and attribute character,
+## e.g. {$b%t$/b}|{$r%f$/r} will display bolded title tag or filename with
+## reversed colors.
+##
+## If you want to use 256 colors and/or background colors in formats (the naming
+## scheme is described below in section about color definitions), it can be done
+## with the syntax $(COLOR), e.g. to set the artist tag to one of the
+## non-standard colors and make it have yellow background, you need to write
+## $(197_yellow)%a$(end). Note that for standard colors this is interchangable
+## with attributes listed above.
+##
+## Note: colors can be nested.
+##
+#
+#song_list_format = {%a - }{%t}|{$8%f$9}$R{$3%l$9}
+#
+#song_status_format = {{%a{ "%b"{ (%y)}} - }{%t}}|{%f}
+#
+#song_library_format = {%n - }{%t}|{%f}
+#
+#alternative_header_first_line_format = $b$1$aqqu$/a$9 {%t}|{%f} $1$atqq$/a$9$/b
+#
+#alternative_header_second_line_format = {{$4$b%a$/b$9}{ - $7%b$9}{ ($4%y$9)}}|{%D}
+#
+#current_item_prefix = $(yellow)$r
+#
+#current_item_suffix = $/r$(end)
+#
+#current_item_inactive_column_prefix = $(white)$r
+#
+#current_item_inactive_column_suffix = $/r$(end)
+#
+#now_playing_prefix = $b
+#
+#now_playing_suffix = $/b
+#
+#browser_playlist_prefix = "$2playlist$9 "
+#
+#selected_item_prefix = $6
+#
+#selected_item_suffix = $9
+#
+#modified_item_prefix = $3> $9
+#
+##
+## Note: attributes are not supported for the following variables.
+##
+#song_window_title_format = {%a - }{%t}|{%f}
+##
+## Note: Below variables are used for sorting songs in browser. The sort mode
+## determines how songs are sorted, and can be used in combination with a sort
+## format to specify a custom sorting format. Available values for
+## browser_sort_mode are "type", "name", "mtime", "format" and "none".
+##
+#
+#browser_sort_mode = type
+#
+#browser_sort_format = {%a - }{%t}|{%f} {%l}
+#
+##### columns settings #####
+##
+## syntax of song columns list format is "column column etc."
+##
+## - syntax for each column is:
+##
+## (width of the column)[color of the column]{displayed tag}
+##
+## Note: Width is by default in %, if you want a column to have fixed size, add
+## 'f' after the value, e.g. (10)[white]{a} will be the column that take 10% of
+## screen (so the real width will depend on actual screen size), whereas
+## (10f)[white]{a} will take 10 terminal cells, no matter how wide the screen
+## is.
+##
+## - color is optional (if you want the default one, leave the field empty).
+##
+## Note: You can give a column additional attributes by putting appropriate
+## character after displayed tag character. Available attributes are:
+##
+## - r - column will be right aligned
+## - E - if tag is empty, empty tag marker won't be displayed
+##
+## You can also:
+##
+## - give a column custom name by putting it after attributes, separated with
+## character ':', e.g. {lr:Length} gives you right aligned column of lengths
+## named "Length".
+##
+## - define sequence of tags, that have to be displayed in case predecessor is
+## empty in a way similar to the one in classic song format, i.e. using '|'
+## character, e.g. {a|c|p:Owner} creates column named "Owner" that tries to
+## display artist tag and then composer and performer if previous ones are not
+## available.
+##
+#
+#song_columns_list_format = (20)[]{a} (6f)[green]{NE} (50)[white]{t|f:Title} (20)[cyan]{b} (7f)[magenta]{l}
+#
+##### various settings #####
+#
+##
+## Note: Custom command that will be executed each time song changes. Useful for
+## notifications etc.
+##
+#execute_on_song_change = ""
+#
+##
+## Note: Custom command that will be executed each time player state
+## changes. The environment variable MPD_PLAYER_STATE is set to the current
+## state (either unknown, play, pause, or stop) for its duration.
+##
+#
+#execute_on_player_state_change = ""
+#
+#playlist_show_mpd_host = no
+#
+#playlist_show_remaining_time = no
+#
+#playlist_shorten_total_times = no
+#
+#playlist_separate_albums = no
+#
+##
+## Note: Possible display modes: classic, columns.
+##
+#playlist_display_mode = columns
+#
+#browser_display_mode = classic
+#
+#search_engine_display_mode = classic
+#
+#playlist_editor_display_mode = classic
+#
+#discard_colors_if_item_is_selected = yes
+#
+#show_duplicate_tags = yes
+#
+#incremental_seeking = yes
+#
+#seek_time = 1
+#
+#volume_change_step = 2
+#
+#autocenter_mode = no
+#
+#centered_cursor = no
+#
+##
+## Note: You can specify third character which will be used to build 'empty'
+## part of progressbar.
+##
+#progressbar_look = =>
+progressbar_look = "─╼ "
+#
+## Available values: database, playlist.
+##
+#default_place_to_search_in = database
+#
+## Available values: classic, alternative.
+##
+user_interface = alternative
+#
+#data_fetching_delay = yes
+#
+## Available values: artist, album_artist, date, genre, composer, performer.
+##
+#media_library_primary_tag = artist
+#
+#media_library_albums_split_by_date = yes
+#
+#media_library_hide_album_dates = no
+#
+## Available values: wrapped, normal.
+##
+#default_find_mode = wrapped
+#
+#default_tag_editor_pattern = %n - %t
+#
+#header_visibility = yes
+#
+#statusbar_visibility = yes
+#
+## Show the "Connected to ..." message on startup
+#connected_message_on_startup = yes
+#
+#titles_visibility = yes
+#
+#header_text_scrolling = yes
+#
+#cyclic_scrolling = no
+#
+#lyrics_fetchers = azlyrics, genius, musixmatch, sing365, metrolyrics, justsomelyrics, jahlyrics, plyrics, tekstowo, zeneszoveg, internet
+#
+#follow_now_playing_lyrics = no
+#
+#fetch_lyrics_for_current_song_in_background = no
+#
+#store_lyrics_in_song_dir = no
+#
+#generate_win32_compatible_filenames = yes
+#
+#allow_for_physical_item_deletion = no
+#
+##
+## Note: If you set this variable, ncmpcpp will try to get info from last.fm in
+## language you set and if it fails, it will fall back to english. Otherwise it
+## will use english the first time.
+##
+## Note: Language has to be expressed as an ISO 639 alpha-2 code.
+##
+#lastfm_preferred_language = en
+#
+#space_add_mode = add_remove
+#
+#show_hidden_files_in_local_browser = no
+#
+##
+## How shall screen switcher work?
+##
+## - "previous" - switch between the current and previous screen.
+## - "screen1,...,screenN" - switch between given sequence of screens.
+##
+## Screens available for use: help, playlist, browser, search_engine,
+## media_library, playlist_editor, tag_editor, outputs, visualizer, clock,
+## lyrics, last_fm.
+##
+#screen_switcher_mode = playlist, browser
+#
+##
+## Note: You can define startup screen by choosing screen from the list above.
+##
+#startup_screen = playlist
+#
+##
+## Note: You can define startup slave screen by choosing screen from the list
+## above or an empty value for no slave screen.
+##
+#startup_slave_screen = ""
+#
+#startup_slave_screen_focus = no
+#
+##
+## Default width of locked screen (in %). Acceptable values are from 20 to 80.
+##
+#
+#locked_screen_width_part = 50
+#
+#ask_for_locked_screen_width_part = yes
+#
+#jump_to_now_playing_song_at_start = yes
+#
+#ask_before_clearing_playlists = yes
+#
+#clock_display_seconds = no
+#
+#display_volume_level = yes
+#
+#display_bitrate = no
+#
+#display_remaining_time = no
+#
+## Available values: none, basic, extended, perl.
+##
+#regular_expressions = perl
+#
+##
+## Note: if below is enabled, ncmpcpp will ignore leading "The" word while
+## sorting items in browser, tags in media library, etc.
+##
+#ignore_leading_the = no
+#
+##
+## Note: if below is enabled, ncmpcpp will ignore diacritics while searching and
+## filtering lists. This takes an effect only if boost was compiled with ICU
+## support.
+##
+#ignore_diacritics = no
+#
+#block_search_constraints_change_if_items_found = yes
+#
+#mouse_support = yes
+#
+#mouse_list_scroll_whole_page = no
+#
+#lines_scrolled = 5
+#
+#empty_tag_marker = <empty>
+#
+#tags_separator = " | "
+#
+#tag_editor_extended_numeration = no
+#
+#media_library_sort_by_mtime = no
+#
+#enable_window_title = yes
+#
+##
+## Note: You can choose default search mode for search engine. Available modes
+## are:
+##
+## - 1 - use mpd built-in searching (no regexes, pattern matching)
+##
+## - 2 - use ncmpcpp searching (pattern matching with support for regexes, but
+## if your mpd is on a remote machine, downloading big database to process
+## it can take a while
+##
+## - 3 - match only exact values (this mode uses mpd function for searching in
+## database and local one for searching in current playlist)
+##
+#
+#search_engine_default_search_mode = 1
+#
+#external_editor = nano
+#
+## Note: set to yes if external editor is a console application.
+##
+#use_console_editor = yes
+#
+##### colors definitions #####
+##
+## It is possible to set a background color by setting a color value
+## "<foreground>_<background>", e.g. red_black will set foregound color to red
+## and background color to black.
+##
+## In addition, for terminals that support 256 colors it is possible to set one
+## of them by using a number in range [1, 256] instead of color name,
+## e.g. numerical value corresponding to red_black is 2_1. To find out if the
+## terminal supports 256 colors, run ncmpcpp and check out the bottom of the
+## help screen for list of available colors and their numerical values.
+##
+## What is more, there are two special values for the background color:
+## "transparent" and "current". The first one explicitly sets the background to
+## be transparent, while the second one allows you to preserve current
+## background color and change only the foreground one. It's used implicitly
+## when background color is not specified.
+##
+## Moreover, it is possible to attach format information to selected color
+## variables by appending to their end a colon followed by one or more format
+## flags, e.g. black:b or red:ur. The following variables support this syntax:
+## visualizer_color, color1, color2, empty_tag_color, volume_color,
+## state_line_color, state_flags_color, progressbar_color,
+## progressbar_elapsed_color, player_state_color, statusbar_time_color,
+## alternative_ui_separator_color.
+##
+## Note: due to technical limitations of older ncurses version, if 256 colors
+## are used there is a possibility that you'll be able to use only colors with
+## transparent background.
+#
+#colors_enabled = yes
+header_window_color = "cyan"
+volume_color = "red"
+state_line_color = "yellow"
+state_flags_color = "red"
+progressbar_color = "yellow"
+statusbar_color = "cyan"
+#
+#empty_tag_color = cyan
+#
+#header_window_color = default
+#
+#volume_color = default
+#
+#state_line_color = default
+#
+#state_flags_color = default:b
+#
+#main_window_color = yellow
+#
+#color1 = white
+#
+#color2 = green
+#
+#progressbar_color = black:b
+#
+#progressbar_elapsed_color = green:b
+#
+#statusbar_color = default
+#
+#statusbar_time_color = default:b
+#
+#player_state_color = default:b
+#
+#alternative_ui_separator_color = black:b
+#
+#window_border_color = green
+#
+#active_window_border = red
+#
diff --git a/neofetch/.config/neofetch/config.conf b/neofetch/.config/neofetch/config.conf
index 0a1931d..f753db0 100644
--- a/neofetch/.config/neofetch/config.conf
+++ b/neofetch/.config/neofetch/config.conf
@@ -551,7 +551,8 @@ underline_enabled="on"
# Default: '-'
# Values: 'string'
# Flag: --underline_char
-underline_char="—"
+# underline_char="—"
+underline_char="="
# Info Separator
@@ -563,7 +564,7 @@ underline_char="—"
# Example:
# separator="->": 'Shell-> bash'
# separator=" =": 'WM = dwm'
-separator=" "
+separator=":"
# Color Blocks
diff --git a/nsxiv/.config/nsxiv/exec/image-info b/nsxiv/.config/nsxiv/exec/image-info
new file mode 100755
index 0000000..0e22bb0
--- /dev/null
+++ b/nsxiv/.config/nsxiv/exec/image-info
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+# Example for ~/.config/sxiv/exec/image-info
+# Called by sxiv(1) whenever an image gets loaded,
+# with the name of the image file as its first argument.
+# The output is displayed in sxiv's status bar.
+
+s=" | " # field separator
+
+filename=$(basename "$1")
+filesize=$(du -Hh "$1" | cut -f 1)
+
+# The '[0]' stands for the first frame of a multi-frame file, e.g. gif.
+geometry=$(identify -format '%wx%h' "$1[0]")
+
+tags=$(exiv2 -q pr -pi "$1" | awk '$1~"Keywords" { printf("%s,", $4); }')
+tags=${tags%,}
+
+echo "${filesize}${s}${geometry}${tags:+$s}${tags}${s}${filename}"
diff --git a/picom/.config/picom/picom.conf b/picom/.config/picom/picom.conf
index 2a62492..e51c4cc 100644
--- a/picom/.config/picom/picom.conf
+++ b/picom/.config/picom/picom.conf
@@ -1,407 +1,39 @@
-#################################
-# 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 = 20
-
-# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
shadow-opacity = 0.5
-
-# The left offset for shadows, in pixels. (defaults to -15)
-# shadow-offset-x = -15
shadow-offset-x = -20;
-
-# The top offset for shadows, in pixels. (defaults to -15)
-# shadow-offset-y = -15
shadow-offset-y = -20;
+shadow-exclude = "x = 0 && y = 0 && override_redirect = true";
-# Avoid drawing shadows on dock/panel windows. This option is deprecated,
-# you should use the *wintypes* option in your config file instead.
-#
-# no-dock-shadow = false
-
-# Don't draw shadows on drag-and-drop windows. This option is deprecated,
-# you should use the *wintypes* option in your config file instead.
-#
-# no-dnd-shadow = false
-
-# 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
-
-# Do not paint shadows on shaped windows. Note shaped windows
-# here means windows setting its shape through X Shape extension.
-# Those using ARGB background is beyond our control.
-# Deprecated, use
-# shadow-exclude = 'bounding_shaped'
-# or
-# shadow-exclude = 'bounding_shaped && !rounded_corners'
-# instead.
-#
-# shadow-ignore-shaped = ''
-
-# Specify a list of conditions of windows that should have no shadow.
-#
-# examples:
-# shadow-exclude = "n:e:Notification";
-#
-# shadow-exclude = []
-
-# Specify a X geometry that describes the region in which shadow should not
-# be painted in, such as a dock window region. Use
-# shadow-exclude-reg = "x10+0+0"
-# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
-#
-# shadow-exclude-reg = ""
-
-# Crop shadow of a window fully on a particular Xinerama screen to the screen.
-# xinerama-shadow-crop = false
-
-
-#################################
-# Fading #
-#################################
-
-
-# Fade windows in/out when opening/closing and when opacity changes,
-# unless no-fading-openclose is used.
-# fading = false
fading = 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.05;
-
-# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
-# fade-out-step = 0.03
fade-out-step = 0.05;
-# 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 = 0.98
-
-# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
-# frame-opacity = 1.0
-
-# Default opacity for dropdown menus and popup menus. (0.0 - 1.0, defaults to 1.0)
-# menu-opacity = 1.0
-
-# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows.
-# inactive-opacity-override = false
-
-# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
-# active-opacity = 0.98
-
-# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
-# inactive-dim = 0.0
-
-# Specify a list of conditions of windows that should always be considered focused.
-# focus-exclude = []
-
-# Use fixed inactive dim value, instead of adjusting according to window opacity.
-# inactive-dim-fixed = 1.0
-
-# Specify a list of opacity rules, in the format `PERCENT:PATTERN`,
-# 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 = []
-
-#################################
-# Background-Blurring #
-#################################
+corner-radius = 0
-
-# Parameters for background blurring, see the *BLUR* section for more information.
-# blur-method =
-# blur-size = 12
-#
-# blur-deviation = false
-
-# Blur background of semi-transparent / ARGB windows.
-# Bad in performance, with driver-dependent behavior.
-# The name of the switch may change without prior notifications.
-#
-# blur-background = true
-
-# Blur background of windows when the window frame is not opaque.
-# Implies:
-# blur-background
-# Bad in performance, with driver-dependent behavior. The name may change.
-#
-# blur-background-frame = false
-
-
-# Use fixed blur strength rather than adjusting according to window opacity.
-# blur-background-fixed = false
-
-
-# Specify the blur convolution kernel, with the following format:
-# example:
-# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
-#
-# blur-kern = ''
-# blur-kern = "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,1,1,1,1";
-#
-# blur-method = "gaussian"
-# blur-size = 20
-
-# Exclude conditions for background blur.
-# blur-background-exclude = []
-blur-background-exclude = [
- "window_type = 'dock'",
- "window_type = 'desktop'",
- "_GTK_FRAME_EXTENTS@:c"
-];
-
-#################################
-# General Settings #
-#################################
-
-# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
-# daemon = false
-
-# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
-# `xrender` is the default one.
-#
-# backend = 'glx'
-backend = "xrender";
-
-# Enable/disable VSync.
-# vsync = false
+backend = "glx";
vsync = true
-# Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
-# dbus = false
+# window-shader-fg = "/home/me/.config/picom/shaders/grayscale.glsl"
+# window-shader-fg-rule = [
+ # "grayscale.glsl:class_g = 'st' && !_NET_WM_STATE@:32a"
+# ]
-# 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;
+active-opacity: 1.95
+inactive-opacity: 1.95
+mark-wmwin-focused = false
+mark-ovredir-focused = false
-# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
-# mark-ovredir-focused = false
-mark-ovredir-focused = true;
-
-# Try to detect windows with rounded corners and don't consider them
-# shaped windows. The accuracy is not very high, unfortunately.
-#
-# detect-rounded-corners = false
detect-rounded-corners = true;
-
-# Detect '_NET_WM_OPACITY' on client windows, useful for window managers
-# not passing '_NET_WM_OPACITY' of client windows to frame windows.
-#
-# detect-client-opacity = false
detect-client-opacity = true;
-
-# Specify refresh rate of the screen. If not specified or 0, picom will
-# try detecting this with X RandR extension.
-#
-# refresh-rate = 60
-# refresh-rate = 0
-
-# Limit picom to repaint at most once every 1 / 'refresh_rate' second to
-# boost performance. This should not be used with
-# vsync drm/opengl/opengl-oml
-# as they essentially does sw-opti's job already,
-# unless you wish to specify a lower refresh rate than the actual value.
-#
-# sw-opti =
-
-# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
-# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
-# provided that the WM supports it.
-#
-# use-ewmh-active-win = false
-
-# Unredirect all windows if a full-screen opaque window is detected,
-# to maximize performance for full-screen windows. Known to cause flickering
-# when redirecting/unredirecting windows.
-#
-# unredir-if-possible = false
-
-# Delay before unredirecting the window, in milliseconds. Defaults to 0.
-# unredir-if-possible-delay = 0
-
-# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
-# unredir-if-possible-exclude = []
-
-# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
-# in the same group focused at the same time.
-#
-# detect-transient = false
detect-transient = true
-
-# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same
-# group focused at the same time. 'WM_TRANSIENT_FOR' has higher priority if
-# detect-transient is enabled, too.
-#
-# detect-client-leader = false
detect-client-leader = true
-# Resize damaged region by a specific number of pixels.
-# A positive value enlarges it while a negative one shrinks it.
-# If the value is positive, those additional pixels will not be actually painted
-# to screen, only used in blur calculation, and such. (Due to technical limitations,
-# with use-damage, those pixels will still be incorrectly painted to screen.)
-# Primarily used to fix the line corruption issues of blur,
-# in which case you should use the blur radius value here
-# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`,
-# with a 5x5 one you use `--resize-damage 2`, and so on).
-# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
-#
-# resize-damage = 1
-
-# Specify a list of conditions of windows that should be painted with inverted color.
-# Resource-hogging, and is not well tested.
-#
-# invert-color-include = []
-
-# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer.
-# Might cause incorrect opacity when rendering transparent content (but never
-# practically happened) and may not work with blur-background.
-# My tests show a 15% performance boost. Recommended.
-#
-# glx-no-stencil = false
-
-# GLX backend: Avoid rebinding pixmap on window damage.
-# Probably could improve performance on rapid window content changes,
-# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.).
-# Recommended if it works.
-#
-# glx-no-rebind-pixmap = false
-
-# Disable the use of damage information.
-# This cause the whole screen to be redrawn everytime, instead of the part of the screen
-# has actually changed. Potentially degrades the performance, but might fix some artifacts.
-# The opposing option is use-damage
-#
-# no-use-damage = false
use-damage = true
-# Use X Sync fence to sync clients' draw calls, to make sure all draw
-# calls are finished before picom starts drawing. Needed on nvidia-drivers
-# with GLX backend for some users.
-#
-# xrender-sync-fence = false
-
-# GLX backend: Use specified GLSL fragment shader for rendering window contents.
-# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl`
-# in the source tree for examples.
-#
-# glx-fshader-win = ''
-
-# Force all windows to be painted with blending. Useful if you
-# have a glx-fshader-win that could turn opaque pixels transparent.
-#
-# force-win-blend = false
-
-# Do not use EWMH to detect fullscreen windows.
-# Reverts to checking if a window is fullscreen based only on its size and coordinates.
-#
-# no-ewmh-fullscreen = false
-
-# Dimming bright windows so their brightness doesn't exceed this set value.
-# Brightness of a window is estimated by averaging all pixels in the window,
-# so this could comes with a performance hit.
-# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
-#
-# max-brightness = 1.0
-
-# Make transparent windows clip other windows like non-transparent windows do,
-# instead of blending on top of them.
-#
-# transparent-clipping = false
-
-# Set the log level. Possible values are:
-# "trace", "debug", "info", "warn", "error"
-# in increasing level of importance. Case doesn't matter.
-# If using the "TRACE" log level, it's better to log into a file
-# using *--log-file*, since it can generate a huge stream of logs.
-#
-# log-level = "debug"
-log-level = "warn";
-
-# Set the log file.
-# If *--log-file* is never specified, logs will be written to stderr.
-# Otherwise, logs will to written to the given file, though some of the early
-# logs might still be written to the stderr.
-# When setting this option from the config file, it is recommended to use an absolute path.
-#
-# log-file = '/path/to/your/log/file'
-
-# Show all X errors (for debugging)
-# show-all-xerrors = false
-
-# Write process ID to a file.
-# write-pid-path = '/path/to/your/log/file'
+animations = false
+animation-for-open-window = "zoom"
-# 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.
-#
-# 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; focus = true; full-shadow = false; };
diff --git a/picom/.config/picom/shaders/crt.glsl b/picom/.config/picom/shaders/crt.glsl
new file mode 100644
index 0000000..c22081b
--- /dev/null
+++ b/picom/.config/picom/shaders/crt.glsl
@@ -0,0 +1,29 @@
+#version 330
+
+in vec2 texcoord; // texture coordinate of the fragment
+uniform sampler2D tex; // texture of the window
+
+// Default window post-processing:
+// 1) invert color
+// 2) opacity / transparency
+// 3) max-brightness clamping
+// 4) rounded corners
+vec4 default_post_processing(vec4 c);
+
+vec4 window_shader() {
+ vec4 c = texelFetch(tex, ivec2(texcoord), 0);
+
+ float r,g,b;
+
+ float greenValue = (sin(texcoord.x) / 14.0) + 1.0;
+
+ r = 1.5 * c.r * greenValue;
+ g = 1.5 * c.g * greenValue;
+ b = 1.0 * c.b * greenValue;
+
+ c = vec4(r, g, b, c.a);
+
+ gl_FragColor = c;
+
+ return default_post_processing(c);
+}
diff --git a/picom/.config/picom/shaders/default.glsl b/picom/.config/picom/shaders/default.glsl
new file mode 100644
index 0000000..e319523
--- /dev/null
+++ b/picom/.config/picom/shaders/default.glsl
@@ -0,0 +1,11 @@
+uniform float opacity;
+uniform bool invert_color;
+uniform sampler2D tex;
+
+void main() {
+ vec4 c = texture2D(tex, gl_TexCoord[0]);
+ if (invert_color)
+ c = vec4(vec3(c.a, c.a, c.a) - vec3(c), c.a);
+ c *= opacity;
+ gl_FragColor = c;
+}
diff --git a/picom/.config/picom/shaders/grayscale.glsl b/picom/.config/picom/shaders/grayscale.glsl
new file mode 100644
index 0000000..a99a002
--- /dev/null
+++ b/picom/.config/picom/shaders/grayscale.glsl
@@ -0,0 +1,28 @@
+#version 330
+
+in vec2 texcoord; // texture coordinate of the fragment
+uniform sampler2D tex; // texture of the window
+uniform bool invert_color;
+uniform float opacity;
+
+// Default window post-processing:
+// 1) invert color
+// 2) opacity / transparency
+// 3) max-brightness clamping
+// 4) rounded corners
+vec4 default_post_processing(vec4 c);
+
+// Default window shader:
+// 1) fetch the specified pixel
+// 2) apply default post-processing
+vec4 window_shader() {
+ vec4 c = texelFetch(tex, ivec2(texcoord), 0);
+ float g = 0.2126 * c.r + 0.7152 * c.g + 0.0722 * c.b; // CIELAB luma, based on human tristimulus.
+ c = vec4(vec3(g), c.a);
+ if (invert_color)
+ c = vec4(vec3(c.a, c.a, c.a) - vec3(c), c.a);
+ c *= opacity;
+ gl_FragColor = c;
+
+ return default_post_processing(c);
+}
diff --git a/picom/.config/picom/shaders/transparency.glsl b/picom/.config/picom/shaders/transparency.glsl
new file mode 100644
index 0000000..88e3653
--- /dev/null
+++ b/picom/.config/picom/shaders/transparency.glsl
@@ -0,0 +1,19 @@
+uniform float opacity;
+uniform bool invert_color;
+uniform sampler2D tex;
+
+void main() {
+ vec4 c = texture2D(tex, gl_TexCoord[0]);
+ {
+ // Change vec4(1.0, 1.0, 1.0, 1.0) to your desired color
+ vec4 vdiff = abs(vec4(1.0, 1.0, 1.0, 1.0) - c);
+ float diff = max(max(max(vdiff.r, vdiff.g), vdiff.b), vdiff.a);
+ // Change 0.8 to your desired opacity
+ if (diff < 0.001)
+ c *= 0.8;
+ }
+ if (invert_color)
+ c = vec4(vec3(c.a, c.a, c.a) - vec3(c), c.a);
+ c *= opacity;
+ gl_FragColor = c;
+}
diff --git a/pywal/.config/wal/colorschemes/dark/angel_city.json b/pywal/.config/wal/colorschemes/dark/angel_city.json
new file mode 100644
index 0000000..c76980c
--- /dev/null
+++ b/pywal/.config/wal/colorschemes/dark/angel_city.json
@@ -0,0 +1,29 @@
+{
+ "wallpaper": "/home/me/images/wallpapers/2880x1800/infinity/anime-girl-angel-ring-5k-7c-2880x1800.jpg",
+ "alpha": "100",
+ "special": {
+ "background": "#030507",
+ "foreground": "#c0c0c1",
+ "primary": "#000000",
+ "accent": "#000000",
+ "cursor": "#c0c0c1"
+ },
+ "colors": {
+ "color0": "#030507",
+ "color1": "#c15c44",
+ "color2": "#225167",
+ "color3": "#2b6083",
+ "color4": "#2d6089",
+ "color5": "#4d3193",
+ "color6": "#306792",
+ "color7": "#818283",
+ "color8": "#424345",
+ "color9": "#d79687",
+ "color10": "#2e6d8a",
+ "color11": "#3a81af",
+ "color12": "#3d7fb7",
+ "color13": "#6b46c1",
+ "color14": "#4488c0",
+ "color15": "#c0c0c1"
+ }
+}
diff --git a/pywal/.config/wal/colorschemes/dark/catpuccin-frappe.json b/pywal/.config/wal/colorschemes/dark/catpuccin-frappe.json
new file mode 100644
index 0000000..d6a4311
--- /dev/null
+++ b/pywal/.config/wal/colorschemes/dark/catpuccin-frappe.json
@@ -0,0 +1,28 @@
+{
+ "alpha": "100",
+ "special": {
+ "background": "#303446",
+ "foreground": "#C6D0F5",
+ "primary": "#000000",
+ "accent": "#000000",
+ "cursor": "#F2D5CF"
+ },
+ "colors": {
+ "color0": "#51576D",
+ "color1": "#E78284",
+ "color2": "#A6D189",
+ "color3": "#E5C890",
+ "color4": "#8CAAEE",
+ "color5": "#F4B8E4",
+ "color6": "#81C8BE",
+ "color7": "#B5BFE2",
+ "color8": "#626880",
+ "color9": "#E78284",
+ "color10": "#A6D189",
+ "color11": "#E5C890",
+ "color12": "#8CAAEE",
+ "color13": "#F4B8E4",
+ "color14": "#81C8BE",
+ "color15": "#A5ADCE"
+ }
+}
diff --git a/pywal/.config/wal/colorschemes/dark/catpuccin-latte.json b/pywal/.config/wal/colorschemes/dark/catpuccin-latte.json
new file mode 100644
index 0000000..f593622
--- /dev/null
+++ b/pywal/.config/wal/colorschemes/dark/catpuccin-latte.json
@@ -0,0 +1,28 @@
+{
+ "alpha": "100",
+ "special": {
+ "background": "#EFF1F5",
+ "foreground": "#4C4F69",
+ "primary": "#000000",
+ "accent": "#000000",
+ "cursor": "#DC8A78"
+ },
+ "colors": {
+ "color0": "#5C5F77",
+ "color1": "#D20F39",
+ "color2": "#40A02B",
+ "color3": "#DF8E1D",
+ "color4": "#1E66F5",
+ "color5": "#EA76CB",
+ "color6": "#179299",
+ "color7": "#ACB0BE",
+ "color8": "#ACB0BE",
+ "color9": "#D20F39",
+ "color10": "#40A02B",
+ "color11": "#DF8E1D",
+ "color12": "#1E66F5",
+ "color13": "#EA76CB",
+ "color14": "#179299",
+ "color15": "#BCC0CC"
+ }
+}
diff --git a/pywal/.config/wal/colorschemes/dark/catpuccin-macchiato.json b/pywal/.config/wal/colorschemes/dark/catpuccin-macchiato.json
new file mode 100644
index 0000000..c9f0ed7
--- /dev/null
+++ b/pywal/.config/wal/colorschemes/dark/catpuccin-macchiato.json
@@ -0,0 +1,28 @@
+{
+ "alpha": "100",
+ "special": {
+ "background": "#494D64",
+ "foreground": "#A5ADCB",
+ "primary": "#000000",
+ "accent": "#000000",
+ "cursor": "#A5ADCB"
+ },
+ "colors": {
+ "color0": "#494D64",
+ "color1": "#ED8796",
+ "color2": "#A6DA95",
+ "color3": "#EED49F",
+ "color4": "#8AADF4",
+ "color5": "#F5BDE6",
+ "color6": "#8BD5CA",
+ "color7": "#B8C0E0",
+ "color8": "#5B6078",
+ "color9": "#ED8796",
+ "color10": "#A6DA95",
+ "color11": "#EED49F",
+ "color12": "#8AADF4",
+ "color13": "#F5BDE6",
+ "color14": "#8BD5CA",
+ "color15": "#A5ADCB"
+ }
+}
diff --git a/pywal/.config/wal/colorschemes/dark/catpuccin-mocha.json b/pywal/.config/wal/colorschemes/dark/catpuccin-mocha.json
new file mode 100644
index 0000000..a419745
--- /dev/null
+++ b/pywal/.config/wal/colorschemes/dark/catpuccin-mocha.json
@@ -0,0 +1,28 @@
+{
+ "alpha": "100",
+ "special": {
+ "background": "#1E1E2E",
+ "foreground": "#CDD6F4",
+ "primary": "#000000",
+ "accent": "#000000",
+ "cursor": "#F5E0DC"
+ },
+ "colors": {
+ "color0": "#45475A",
+ "color1": "#F38BA8",
+ "color2": "#A6E3A1",
+ "color3": "#F9E2AF",
+ "color4": "#89B4FA",
+ "color5": "#F5C2E7",
+ "color6": "#94E2D5",
+ "color7": "#BAC2DE",
+ "color8": "#585B70",
+ "color9": "#F38BA8",
+ "color10": "#A6E3A1",
+ "color11": "#F9E2AF",
+ "color12": "#89B4FA",
+ "color13": "#F5C2E7",
+ "color14": "#94E2D5",
+ "color15": "#A6ADC8"
+ }
+}
diff --git a/pywal/.config/wal/colorschemes/dark/dunes.json b/pywal/.config/wal/colorschemes/dark/dunes.json
new file mode 100644
index 0000000..7e7d842
--- /dev/null
+++ b/pywal/.config/wal/colorschemes/dark/dunes.json
@@ -0,0 +1,29 @@
+{
+ "wallpaper": "/home/me/images/wallpapers/2880x1800/custom/dunes.jpg",
+ "alpha": "100",
+ "special": {
+ "background": "#1E1E2E",
+ "foreground": "#CDD6F4",
+ "primary": "#6D83D0",
+ "accent": "#89B4FA",
+ "cursor": "#CDD6F4"
+ },
+ "colors": {
+ "color0": "#1E1E2E",
+ "color1": "#D56A85",
+ "color2": "#7BCA77",
+ "color3": "#DDBE89",
+ "color4": "#6D83D0",
+ "color5": "#D18ACD",
+ "color6": "#76B9A9",
+ "color7": "#cdd6f4",
+ "color8": "#45475a",
+ "color9": "#F38BA8",
+ "color10": "#A6E3A1",
+ "color11": "#F9E2AF",
+ "color12": "#89B4FA",
+ "color13": "#F5C2E7",
+ "color14": "#94E2D5",
+ "color15": "#7f849c"
+ }
+}
diff --git a/pywal/.config/wal/templates/colors.Xresources b/pywal/.config/wal/templates/colors.Xresources
new file mode 100644
index 0000000..a47457e
--- /dev/null
+++ b/pywal/.config/wal/templates/colors.Xresources
@@ -0,0 +1,24 @@
+! Generated by 'wal'
+
+! Color definitions
+#define c00 {color0}
+#define c01 {color1}
+#define c02 {color2}
+#define c03 {color3}
+#define c04 {color4}
+#define c05 {color5}
+#define c06 {color6}
+#define c07 {color7}
+#define c08 {color8}
+#define c09 {color9}
+#define c10 {color10}
+#define c11 {color11}
+#define c12 {color12}
+#define c13 {color13}
+#define c14 {color14}
+#define c15 {color15}
+
+#define cbg {background}
+#define cfg {foreground}
+#define cps {primary}
+#define cas {accent}
diff --git a/pywal/.config/wal/templates/colors.sh b/pywal/.config/wal/templates/colors.sh
new file mode 100644
index 0000000..d518f92
--- /dev/null
+++ b/pywal/.config/wal/templates/colors.sh
@@ -0,0 +1,38 @@
+# Generated by 'wal'
+
+wallpaper="{wallpaper}"
+
+# Special
+background='{background}'
+foreground='{foreground}'
+primary='{primary}'
+accent='{accent}'
+cursor='{cursor}'
+
+# Colors
+color0='{color0}'
+color1='{color1}'
+color2='{color2}'
+color3='{color3}'
+color4='{color4}'
+color5='{color5}'
+color6='{color6}'
+color7='{color7}'
+color8='{color8}'
+color9='{color9}'
+color10='{color10}'
+color11='{color11}'
+color12='{color12}'
+color13='{color13}'
+color14='{color14}'
+color15='{color15}'
+
+# FZF colors
+export FZF_DEFAULT_OPTS="
+ $FZF_DEFAULT_OPTS
+ --color fg:7,bg:0,hl:1,fg+:232,bg+:1,hl+:255
+ --color info:7,prompt:2,spinner:1,pointer:232,marker:1
+"
+
+# Fix LS_COLORS being unreadable.
+export LS_COLORS="${{LS_COLORS}}:su=30;41:ow=30;42:st=30;44:"
diff --git a/pywal/.config/wal/templates/dunstrc b/pywal/.config/wal/templates/dunstrc
new file mode 100644
index 0000000..641af0c
--- /dev/null
+++ b/pywal/.config/wal/templates/dunstrc
@@ -0,0 +1,438 @@
+# See dunst(5) for all configuration options
+
+[global]
+ ### Display ###
+
+ # Which monitor should the notifications be displayed on.
+ monitor = 0
+
+ # Display notification on focused monitor. Possible modes are:
+ # mouse: follow mouse pointer
+ # keyboard: follow window with keyboard focus
+ # none: don't follow anything
+ #
+ # "keyboard" needs a window manager that exports the
+ # _NET_ACTIVE_WINDOW property.
+ # This should be the case for almost all modern window managers.
+ #
+ # If this option is set to mouse or keyboard, the monitor option
+ # will be ignored.
+ follow = none
+
+ ### Geometry ###
+
+ # dynamic width from 0 to 300
+ # width = (0, 300)
+ # constant width of 300
+ width = (250, 350)
+
+ # The maximum height of a single notification, excluding the frame.
+ height = 45
+
+ # Position the notification in the top right corner
+ origin = bottom-center
+
+ # Offset from the origin
+ offset = 0x40
+
+ # Scale factor. It is auto-detected if value is 0.
+ scale = 0
+
+ # Maximum number of notification (0 means no limit)
+ notification_limit = 0
+
+ ### Progress bar ###
+
+ # Turn on the progess bar. It appears when a progress hint is passed with
+ # for example dunstify -h int:value:12
+ progress_bar = true
+
+ # Set the progress bar height. This includes the frame, so make sure
+ # it's at least twice as big as the frame width.
+ progress_bar_height = 2
+
+ # Set the frame width of the progress bar
+ progress_bar_frame_width = 0
+
+ # Set the minimum width for the progress bar
+ progress_bar_min_width = 0
+
+ # Set the maximum width for the progress bar
+ progress_bar_max_width = 350
+
+ highlight = "{primary}"
+
+ # Show how many messages are currently hidden (because of
+ # notification_limit).
+ indicate_hidden = yes
+
+ # The transparency of the window. Range: [0; 100].
+ # This option will only work if a compositing window manager is
+ # present (e.g. xcompmgr, compiz, etc.). (X11 only)
+ transparency = 0
+
+ # Draw a line of "separator_height" pixel height between two
+ # notifications.
+ # Set to 0 to disable.
+ separator_height = 0
+
+ # Padding between text and separator.
+ padding = 8
+
+ # Horizontal padding.
+ horizontal_padding = 8
+
+ # Padding between text and icon.
+ text_icon_padding = 0
+
+ # Defines width in pixels of frame around the notification window.
+ # Set to 0 to disable.
+ frame_width = 2
+
+ # Defines color of the frame around the notification window.
+ frame_color = "{background}"
+ # "#4396c0"
+
+ # Define a color for the separator.
+ # possible values are:
+ # * auto: dunst tries to find a color fitting to the background;
+ # * foreground: use the same color as the foreground;
+ # * frame: use the same color as the frame;
+ # * anything else will be interpreted as a X color.
+ separator_color = frame
+
+ # Sort messages by urgency.
+ sort = yes
+
+ # Don't remove messages, if the user is idle (no mouse or keyboard input)
+ # for longer than idle_threshold seconds.
+ # Set to 0 to disable.
+ # A client can set the 'transient' hint to bypass this. See the rules
+ # section for how to disable this if necessary
+ # idle_threshold = 120
+
+ ### Text ###
+
+ font = JetBrains Mono 8
+
+ # The spacing between lines. If the height is smaller than the
+ # font height, it will get raised to the font height.
+ line_height = 0
+
+ # Possible values are:
+ # full: Allow a small subset of html markup in notifications:
+ # <b>bold</b>
+ # <i>italic</i>
+ # <s>strikethrough</s>
+ # <u>underline</u>
+ #
+ # For a complete reference see
+ # <https://docs.gtk.org/Pango/pango_markup.html>.
+ #
+ # strip: This setting is provided for compatibility with some broken
+ # clients that send markup even though it's not enabled on the
+ # server. Dunst will try to strip the markup but the parsing is
+ # simplistic so using this option outside of matching rules for
+ # specific applications *IS GREATLY DISCOURAGED*.
+ #
+ # no: Disable markup parsing, incoming notifications will be treated as
+ # plain text. Dunst will not advertise that it has the body-markup
+ # capability if this is set as a global setting.
+ #
+ # It's important to note that markup inside the format option will be parsed
+ # regardless of what this is set to.
+ markup = full
+
+ # The format of the message. Possible variables are:
+ # %a appname
+ # %s summary
+ # %b body
+ # %i iconname (including its path)
+ # %I iconname (without its path)
+ # %p progress value if set ([ 0%] to [100%]) or nothing
+ # %n progress value if set without any extra characters
+ # %% Literal %
+ # Markup is allowed
+ format = "<b>%s</b>\n%b"
+
+ # Alignment of message text.
+ # Possible values are "left", "center" and "right".
+ alignment = center
+
+ # Vertical alignment of message text and icon.
+ # Possible values are "top", "center" and "bottom".
+ vertical_alignment = top
+
+ # Show age of message if message is older than show_age_threshold
+ # seconds.
+ # Set to -1 to disable.
+ show_age_threshold = -1
+
+ # Specify where to make an ellipsis in long lines.
+ # Possible values are "start", "middle" and "end".
+ ellipsize = end
+
+ # Ignore newlines '\n' in notifications.
+ ignore_newline = no
+
+ # Stack together notifications with the same content
+ stack_duplicates = true
+
+ # Hide the count of stacked notifications with the same content
+ hide_duplicate_count = true
+
+ # Display indicators for URLs (U) and actions (A).
+ show_indicators = yes
+
+ ### Icons ###
+
+ # Align icons left/right/off
+ icon_position = off
+
+ # Scale small icons up to this size, set to 0 to disable. Helpful
+ # for e.g. small files or high-dpi screens. In case of conflict,
+ # max_icon_size takes precedence over this.
+ min_icon_size = 0
+
+ # Scale larger icons down to this size, set to 0 to disable
+ max_icon_size = 32
+
+ # Paths to default icons.
+ icon_path = /usr/share/icons/Papirus-Dark/16x16/devices/
+
+ ### History ###
+
+ # Should a notification popped up from history be sticky or timeout
+ # as if it would normally do.
+ sticky_history = yes
+
+ # Maximum amount of notifications kept in history
+ history_length = 20
+
+ ### Misc/Advanced ###
+
+ # dmenu path.
+ dmenu = /usr/bin/dmenu -p dunst:
+
+ # Browser for opening urls in context menu.
+ browser = /usr/bin/xdg-open
+
+ # Always run rule-defined scripts, even if the notification is suppressed
+ always_run_script = true
+
+ # Define the title of the windows spawned by dunst
+ title = Dunst
+
+ # Define the class of the windows spawned by dunst
+ class = Dunst
+
+ # Define the corner radius of the notification window
+ # in pixel size. If the radius is 0, you have no rounded
+ # corners.
+ # The radius will be automatically lowered if it exceeds half of the
+ # notification height to avoid clipping text and/or icons.
+ corner_radius = 0
+
+ # Ignore the dbus closeNotification message.
+ # Useful to enforce the timeout set by dunst configuration. Without this
+ # parameter, an application may close the notification sent before the
+ # user defined timeout.
+ ignore_dbusclose = false
+
+ ### Wayland ###
+ # These settings are Wayland-specific. They have no effect when using X11
+
+ # Uncomment this if you want to let notications appear under fullscreen
+ # applications (default: overlay)
+ # layer = top
+
+ # Set this to true to use X11 output on Wayland.
+ force_xwayland = false
+
+ ### Legacy
+
+ # Use the Xinerama extension instead of RandR for multi-monitor support.
+ # This setting is provided for compatibility with older nVidia drivers that
+ # do not support RandR and using it on systems that support RandR is highly
+ # discouraged.
+ #
+ # By enabling this setting dunst will not be able to detect when a monitor
+ # is connected or disconnected which might break follow mode if the screen
+ # layout changes.
+ force_xinerama = false
+
+ ### mouse
+
+ # Defines list of actions for each mouse event
+ # Possible values are:
+ # * none: Don't do anything.
+ # * do_action: Invoke the action determined by the action_name rule. If there is no
+ # such action, open the context menu.
+ # * open_url: If the notification has exactly one url, open it. If there are multiple
+ # ones, open the context menu.
+ # * close_current: Close current notification.
+ # * close_all: Close all notifications.
+ # * context: Open context menu for the notification.
+ # * context_all: Open context menu for all notifications.
+ # These values can be strung together for each mouse event, and
+ # will be executed in sequence.
+ mouse_left_click = close_current
+ mouse_middle_click = do_action, close_current
+ mouse_right_click = close_all
+
+# Experimental features that may or may not work correctly. Do not expect them
+# to have a consistent behaviour across releases.
+[experimental]
+ # Calculate the dpi to use on a per-monitor basis.
+ # If this setting is enabled the Xft.dpi value will be ignored and instead
+ # dunst will attempt to calculate an appropriate dpi value for each monitor
+ # using the resolution and physical size. This might be useful in setups
+ # where there are multiple screens with very different dpi values.
+ per_monitor_dpi = false
+
+
+[urgency_low]
+ # IMPORTANT: colors have to be defined in quotation marks.
+ # Otherwise the "#" and following would be interpreted as a comment.
+ background = "{background}"
+ foreground = "{foreground}"
+ timeout = 1
+ # Icon for notifications with low urgency, uncomment to enable
+ #default_icon = /path/to/icon
+
+[urgency_normal]
+ background = "{background}"
+ foreground = "{foreground}"
+ timeout = 3
+ # Icon for notifications with normal urgency, uncomment to enable
+ #default_icon = /path/to/icon
+
+[urgency_critical]
+ background = "{background}"
+ foreground = "{color1}"
+ frame_color = "{color1}"
+ timeout = 0
+ # Icon for notifications with critical urgency, uncomment to enable
+ #default_icon = /path/to/icon
+
+# Every section that isn't one of the above is interpreted as a rules to
+# override settings for certain messages.
+#
+# Messages can be matched by
+# appname (discouraged, see desktop_entry)
+# body
+# category
+# desktop_entry
+# icon
+# match_transient
+# msg_urgency
+# stack_tag
+# summary
+#
+# and you can override the
+# background
+# foreground
+# format
+# frame_color
+# fullscreen
+# new_icon
+# set_stack_tag
+# set_transient
+# set_category
+# timeout
+# urgency
+# skip_display
+# history_ignore
+# action_name
+# word_wrap
+# ellipsize
+# alignment
+#
+# Shell-like globbing will get expanded.
+#
+# Instead of the appname filter, it's recommended to use the desktop_entry filter.
+# GLib based applications export their desktop-entry name. In comparison to the appname,
+# the desktop-entry won't get localized.
+#
+# SCRIPTING
+# You can specify a script that gets run when the rule matches by
+# setting the "script" option.
+# The script will be called as follows:
+# script appname summary body icon urgency
+# where urgency can be "LOW", "NORMAL" or "CRITICAL".
+#
+# NOTE: It might be helpful to run dunst -print in a terminal in order
+# to find fitting options for rules.
+
+# Disable the transient hint so that idle_threshold cannot be bypassed from the
+# client
+#[transient_disable]
+# match_transient = yes
+# set_transient = no
+#
+# Make the handling of transient notifications more strict by making them not
+# be placed in history.
+#[transient_history_ignore]
+# match_transient = yes
+# history_ignore = yes
+
+# fullscreen values
+# show: show the notifications, regardless if there is a fullscreen window opened
+# delay: displays the new notification, if there is no fullscreen window active
+# If the notification is already drawn, it won't get undrawn.
+# pushback: same as delay, but when switching into fullscreen, the notification will get
+# withdrawn from screen again and will get delayed like a new notification
+#[fullscreen_delay_everything]
+# fullscreen = delay
+#[fullscreen_show_critical]
+# msg_urgency = critical
+# fullscreen = show
+
+#[espeak]
+# summary = "*"
+# script = dunst_espeak.sh
+
+#[script-test]
+# summary = "*script*"
+# script = dunst_test.sh
+
+#[ignore]
+# # This notification will not be displayed
+# summary = "foobar"
+# skip_display = true
+
+#[history-ignore]
+# # This notification will not be saved in history
+# summary = "foobar"
+# history_ignore = yes
+
+#[skip-display]
+# # This notification will not be displayed, but will be included in the history
+# summary = "foobar"
+# skip_display = yes
+
+#[signed_on]
+# appname = Pidgin
+# summary = "*signed on*"
+# urgency = low
+#
+#[signed_off]
+# appname = Pidgin
+# summary = *signed off*
+# urgency = low
+#
+#[says]
+# appname = Pidgin
+# summary = *says*
+# urgency = critical
+#
+#[twitter]
+# appname = Pidgin
+# summary = *twitter.com*
+# urgency = normal
+#
+#[stack-volumes]
+# appname = "some_volume_notifiers"
+# set_stack_tag = "volume"
+#
+# vim: ft=cfg
diff --git a/pywal/.config/wal/templates/flameshot.ini b/pywal/.config/wal/templates/flameshot.ini
new file mode 100644
index 0000000..71d139d
--- /dev/null
+++ b/pywal/.config/wal/templates/flameshot.ini
@@ -0,0 +1,7 @@
+[General]
+contrastOpacity=191
+contrastUiColor={accent}
+showDesktopNotification=false
+uiColor={primary}
+uploadHistoryMax=20
+useJpgForClipboard=true
diff --git a/pywal/.config/wal/templates/zathurarc b/pywal/.config/wal/templates/zathurarc
new file mode 100644
index 0000000..31f1c78
--- /dev/null
+++ b/pywal/.config/wal/templates/zathurarc
@@ -0,0 +1,36 @@
+# Generated by wal
+# Changed should be made in the template
+
+set selection-clipboard "clipboard"
+set database "plain"
+
+set window-title-basename true
+set window-title-page false
+
+set recolor false
+set guioptions "v"
+
+set font "JetBrains Mono normal 8"
+
+set default-bg "{background}"
+set highlight-color "{foreground}"
+set highlight-active-color "{primary}"
+set recolor-lightcolor "{background}"
+set notification-bg "{background}"
+set notification-fg "{foreground}"
+set statusbar-bg "{background}"
+set statusbar-fg "{foreground}"
+set inputbar-bg "{background}"
+set inputbar-fg "{foreground}"
+set index-bg "{background}"
+set index-fg "{foreground}"
+set index-active-bg "{primary}"
+set index-active-fg "{background}"
+set completion-fg "{foreground}"
+set completion-bg "{background}"
+set completion-group-fg "{foreground}"
+set completion-group-bg "{primary}"
+set completion-highlight-fg "{background}"
+set completion-highlight-bg "{foreground}"
+
+map y feedkeys c
diff --git a/qutebrowser/.config/qutebrowser/config.py b/qutebrowser/.config/qutebrowser/config.py
index 9f27302..c097087 100644
--- a/qutebrowser/.config/qutebrowser/config.py
+++ b/qutebrowser/.config/qutebrowser/config.py
@@ -1,7 +1,17 @@
config.load_autoconfig(False)
+config.bind("<Ctrl-J>", "tab-next")
+config.bind("<Ctrl-K>", "tab-prev")
+
from utils import *
+command = ["xterm", "-fa", "JetBrainsMono", "-fs", "8", "-e", "ranger", "--choosefile={}"]
+
+c.fileselect.handler = "external"
+c.fileselect.multiple_files.command = command
+c.fileselect.single_file.command = command
+c.fileselect.folder.command = command
+
c.content.autoplay = False
c.zoom.default = "100%"
@@ -25,8 +35,6 @@ c.content.blocking.method = "adblock"
c.qt.highdpi = True
c.qt.force_software_rendering = "chromium"
-c.colors.webpage.preferred_color_scheme = "dark"
-
home = "/home/me/.config/qutebrowser/home.html"
c.url.start_pages = home
@@ -91,3 +99,14 @@ c.colors.messages.info.border = background
c.colors.messages.warning.bg = background
c.colors.messages.warning.fg = foreground
c.colors.messages.warning.border = background
+
+c.colors.webpage.preferred_color_scheme = "dark"
+# c.colors.webpage.darkmode.algorithm = 'lightness-cielab'
+# c.colors.webpage.darkmode.contrast = 0.0
+# c.colors.webpage.darkmode.enabled = True
+# c.colors.webpage.darkmode.grayscale.all = False
+# c.colors.webpage.darkmode.grayscale.images = 0.0
+# c.colors.webpage.darkmode.policy.images = 'smart'
+# c.colors.webpage.darkmode.policy.page = 'smart'
+# c.colors.webpage.darkmode.threshold.background = 128
+# c.colors.webpage.darkmode.threshold.text = 128
diff --git a/qutebrowser/.config/qutebrowser/home.html b/qutebrowser/.config/qutebrowser/home.html
index e82a054..f6b4306 100644
--- a/qutebrowser/.config/qutebrowser/home.html
+++ b/qutebrowser/.config/qutebrowser/home.html
@@ -18,9 +18,14 @@
}
a {
- text-decoration: none;
- color: var(--color1);
+ outline: none;
+ color: var(--color4);
padding-right: 0.5em;
+ text-decoration: none;
+ }
+
+ a:hover, a:focus {
+ color: var(--color12);
}
.terminal {
@@ -33,18 +38,85 @@
bottom: 0;
right: 4em;
}
+
+ .list {
+ display: flex;
+ }
+
+ .list a {
+ margin-right: 1em;
+ }
+
+ .group {
+ display: flex;
+
+ padding-bottom: 1em;
+ flex-direction: column;
+ }
+
+ .group a::before {
+ content: "├ ";
+ color: var(--foreground);
+ }
+
+ .group a:last-child::before {
+ content: "└ ";
+ color: var(--foreground);
+ }
+
+ .group::before {
+ content: attr(data-title);
+ padding-bottom: 2px;
+ }
+
+ .noselect {
+ user-select: none;
+ }
</style>
</head>
<body>
<div class="terminal">
- <p>[ me@qutebrowser ] ~ $ ls </p>
+ <p><span class="noselect">[ me@qutebrowser ] ~ $ </span>quickmarks </p>
<p class="list">
- <a href="https://moodle.uni-luebeck.de/login/index.php">qmoodle</a>
- <a href="https://music.youtube.com">qmusic</a>
- <a href="https://chat.openai.com/chat/736699a4-aed0-4e01-b91c-0b9fd595e91b">qchat</a>
- <a href="https://rmfc.davidpenkowoj.de">qrmfc</a>
- <a href="https://davidpenkowoj.de">qweb</a>
- <a href="https://git.davidpenkowoj.de">qgit</a>
+ <script>
+ let client = new XMLHttpRequest();
+
+ client.open('GET', '/home/me/.config/qutebrowser/quickmarks');
+ client.onreadystatechange = function() {
+ if (client.readyState != 4) return;
+
+ for (let line of client.responseText.split("\n")) {
+ let content = line.split(" ");
+ let href = content[1];
+
+ content = content[0].split("/");
+
+ let group = content[0];
+ let title = content[1];
+
+ let div = document.querySelector(`div.${group}`);
+
+ if (div == null) {
+ div = document.createElement("div")
+
+ div.setAttribute("data-title", group);
+ div.classList.add("group");
+ div.classList.add(group);
+
+ document.querySelector(".list").append(div);
+ }
+
+ if (href != undefined) {
+ let a = document.createElement("a");
+
+ a.innerText = title;
+ a.href = href;
+ div.append(a);
+ }
+ }
+ }
+ client.send();
+ </script>
</p>
</div>
<div class="eyes">
diff --git a/qutebrowser/.config/qutebrowser/utils.py b/qutebrowser/.config/qutebrowser/utils.py
index 790bea2..c0247c2 100644
--- a/qutebrowser/.config/qutebrowser/utils.py
+++ b/qutebrowser/.config/qutebrowser/utils.py
@@ -1,4 +1,18 @@
-translucent = "#801a1a1a"
-background = "#1a1a1a"
-foreground = "#bcd0db"
-accent = "#a642c0"
+import subprocess
+
+def read_xresources(prefix):
+ props = {}
+ x = subprocess.run(['xrdb', '-query'], stdout=subprocess.PIPE)
+ lines = x.stdout.decode().split('\n')
+ for line in filter(lambda l : l.startswith(prefix), lines):
+ prop, _, value = line.partition(':\t')
+ props[prop] = value
+ return props
+
+xres = read_xresources('*')
+# can be userd now like `c.colors.statusbar.normal.bg = xres['*.background']`
+
+translucent = "#80" + xres['*background'].split('#')[1]
+background = xres['*background']
+foreground = xres['*foreground']
+accent = xres['*primary']
diff --git a/systemd/.config/systemd/user/default.target.wants/mpd.service b/systemd/.config/systemd/user/default.target.wants/mpd.service
new file mode 120000
index 0000000..0524f66
--- /dev/null
+++ b/systemd/.config/systemd/user/default.target.wants/mpd.service
@@ -0,0 +1 @@
+/usr/lib/systemd/user/mpd.service \ No newline at end of file
diff --git a/xorg/.Xmodmap b/xorg/.Xmodmap
index 0a90c25..f46f862 100644
--- a/xorg/.Xmodmap
+++ b/xorg/.Xmodmap
@@ -1,92 +1,92 @@
keycode 8 =
keycode 9 = Escape NoSymbol Escape
-keycode 10 = 1 exclam 1 exclam onesuperior exclamdown onesuperior exclamdown
-keycode 11 = 2 quotedbl 2 quotedbl twosuperior oneeighth twosuperior oneeighth
-keycode 12 = 3 section 3 section threesuperior sterling threesuperior sterling
-keycode 13 = 4 dollar 4 dollar onequarter currency onequarter currency
-keycode 14 = 5 percent 5 percent onehalf threeeighths onehalf threeeighths
-keycode 15 = 6 ampersand 6 ampersand notsign fiveeighths notsign fiveeighths
-keycode 16 = 7 slash 7 slash braceleft seveneighths braceleft seveneighths
-keycode 17 = 8 parenleft 8 parenleft bracketleft trademark bracketleft trademark
-keycode 18 = 9 parenright 9 parenright bracketright plusminus bracketright plusminus
-keycode 19 = 0 equal 0 equal braceright degree braceright degree
-keycode 20 = ssharp question ssharp question backslash questiondown U1E9E backslash questiondown U1E9E
-keycode 21 = dead_acute dead_grave dead_acute dead_grave dead_cedilla dead_ogonek dead_cedilla dead_ogonek
+keycode 10 = 1 exclam 1 exclam
+keycode 11 = 2 at 2 at
+keycode 12 = 3 numbersign 3 numbersign
+keycode 13 = 4 dollar 4 dollar
+keycode 14 = 5 percent 5 percent
+keycode 15 = 6 asciicircum 6 asciicircum
+keycode 16 = 7 ampersand 7 ampersand
+keycode 17 = 8 asterisk 8 asterisk
+keycode 18 = 9 parenleft 9 parenleft
+keycode 19 = 0 parenright 0 parenright
+keycode 20 = minus underscore minus underscore
+keycode 21 = plus equal degree plusminus
keycode 22 = BackSpace BackSpace BackSpace BackSpace
keycode 23 = Tab ISO_Left_Tab Tab ISO_Left_Tab
-keycode 24 = q Q q Q at Greek_OMEGA at Greek_OMEGA
-keycode 25 = w W w W U017F section U017F section
-keycode 26 = e E e E EuroSign EuroSign EuroSign EuroSign
-keycode 27 = r R r R paragraph registered paragraph registered
-keycode 28 = t T t T tslash Tslash tslash Tslash
-keycode 29 = z Z z Z leftarrow yen leftarrow yen
-keycode 30 = u U u U downarrow uparrow downarrow uparrow
-keycode 31 = i I i I rightarrow idotless rightarrow idotless
-keycode 32 = o O o O oslash Oslash oslash Oslash
-keycode 33 = p P p P thorn THORN thorn THORN
-keycode 34 = udiaeresis Udiaeresis udiaeresis Udiaeresis dead_diaeresis dead_abovering dead_diaeresis dead_abovering
-keycode 35 = plus asterisk plus asterisk asciitilde macron asciitilde macron
+keycode 24 = q Q q Q
+keycode 25 = w W w W
+keycode 26 = e E e E
+keycode 27 = r R r R
+keycode 28 = t T t T
+keycode 29 = y Y y Y
+keycode 30 = u U udiaeresis Udiaeresis
+keycode 31 = i I i I
+keycode 32 = o O odiaeresis Odiaeresis
+keycode 33 = p P p P
+keycode 34 = bracketleft braceleft bracketleft braceleft
+keycode 35 = bracketright braceright bracketright braceright
keycode 36 = Return NoSymbol Return
keycode 37 = Control_L NoSymbol Control_L
-keycode 38 = a A a A ae AE ae AE
-keycode 39 = s S s S U017F U1E9E U017F U1E9E
-keycode 40 = d D d D eth ETH eth ETH
-keycode 41 = f F f F dstroke ordfeminine dstroke ordfeminine
-keycode 42 = g G g G eng ENG eng ENG
-keycode 43 = h H h H hstroke Hstroke hstroke Hstroke
-keycode 44 = j J j J dead_belowdot dead_abovedot dead_belowdot dead_abovedot
-keycode 45 = k K k K kra ampersand kra ampersand
-keycode 46 = l L l L lstroke Lstroke lstroke Lstroke
-keycode 47 = odiaeresis Odiaeresis odiaeresis Odiaeresis dead_doubleacute dead_belowdot dead_doubleacute dead_belowdot
-keycode 48 = adiaeresis Adiaeresis adiaeresis Adiaeresis dead_circumflex dead_caron dead_circumflex dead_caron
-keycode 49 = less greater less greater bar dead_belowmacron bar dead_belowmacron
+keycode 38 = a A adiaeresis Adiaeresis
+keycode 39 = s S ssharp
+keycode 40 = d D d D
+keycode 41 = f F f F
+keycode 42 = g G g G
+keycode 43 = h H h H
+keycode 44 = j J j J
+keycode 45 = k K k K
+keycode 46 = l L l L
+keycode 47 = semicolon colon semicolon colon
+keycode 48 = apostrophe quotedbl apostrophe quotedbl
+keycode 49 = grave asciitilde grave asciitilde
keycode 50 = Shift_L NoSymbol Shift_L
-keycode 51 = numbersign apostrophe numbersign apostrophe rightsinglequotemark dead_breve rightsinglequotemark dead_breve
-keycode 52 = y Y y Y guillemotright U203A guillemotright U203A
-keycode 53 = x X x X guillemotleft U2039 guillemotleft U2039
-keycode 54 = c C c C cent copyright cent copyright
-keycode 55 = v V v V doublelowquotemark singlelowquotemark doublelowquotemark singlelowquotemark
-keycode 56 = b B b B leftdoublequotemark leftsinglequotemark leftdoublequotemark leftsinglequotemark
-keycode 57 = n N n N rightdoublequotemark rightsinglequotemark rightdoublequotemark rightsinglequotemark
-keycode 58 = m M m M mu masculine mu masculine
-keycode 59 = comma semicolon comma semicolon periodcentered multiply periodcentered multiply
-keycode 60 = period colon period colon U2026 division U2026 division
-keycode 61 = minus underscore minus underscore endash emdash endash emdash
+keycode 51 = backslash bar backslash bar
+keycode 52 = z Z z Z
+keycode 53 = x X x X
+keycode 54 = c C ccedilla Ccedilla
+keycode 55 = v V doublelowquotemark singlelowquotemark
+keycode 56 = b B leftdoublequotemark leftsinglequotemark
+keycode 57 = n N rightdoublequotemark rightsinglequotemark
+keycode 58 = m M m M
+keycode 59 = comma less periodcentered multiply
+keycode 60 = period greater U2026 division
+keycode 61 = slash question slash question
keycode 62 = Shift_R NoSymbol Shift_R
-keycode 63 = KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply XF86ClearGrab KP_Multiply KP_Multiply XF86ClearGrab
+keycode 63 = KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply XF86ClearGrab
keycode 64 = Alt_L Meta_L Alt_L Meta_L
keycode 65 = space NoSymbol space
keycode 66 = Caps_Lock NoSymbol Caps_Lock
-keycode 67 = F1 F1 F1 F1 F1 F1 XF86Switch_VT_1 F1 F1 XF86Switch_VT_1
-keycode 68 = F2 F2 F2 F2 F2 F2 XF86Switch_VT_2 F2 F2 XF86Switch_VT_2
-keycode 69 = F3 F3 F3 F3 F3 F3 XF86Switch_VT_3 F3 F3 XF86Switch_VT_3
-keycode 70 = F4 F4 F4 F4 F4 F4 XF86Switch_VT_4 F4 F4 XF86Switch_VT_4
-keycode 71 = F5 F5 F5 F5 F5 F5 XF86Switch_VT_5 F5 F5 XF86Switch_VT_5
-keycode 72 = F6 F6 F6 F6 F6 F6 XF86Switch_VT_6 F6 F6 XF86Switch_VT_6
-keycode 73 = F7 F7 F7 F7 F7 F7 XF86Switch_VT_7 F7 F7 XF86Switch_VT_7
-keycode 74 = F8 F8 F8 F8 F8 F8 XF86Switch_VT_8 F8 F8 XF86Switch_VT_8
-keycode 75 = F9 F9 F9 F9 F9 F9 XF86Switch_VT_9 F9 F9 XF86Switch_VT_9
-keycode 76 = F10 F10 F10 F10 F10 F10 XF86Switch_VT_10 F10 F10 XF86Switch_VT_10
+keycode 67 = F1 F1 F1 F1 F1 F1 XF86Switch_VT_1
+keycode 68 = F2 F2 F2 F2 F2 F2 XF86Switch_VT_2
+keycode 69 = F3 F3 F3 F3 F3 F3 XF86Switch_VT_3
+keycode 70 = F4 F4 F4 F4 F4 F4 XF86Switch_VT_4
+keycode 71 = F5 F5 F5 F5 F5 F5 XF86Switch_VT_5
+keycode 72 = F6 F6 F6 F6 F6 F6 XF86Switch_VT_6
+keycode 73 = F7 F7 F7 F7 F7 F7 XF86Switch_VT_7
+keycode 74 = F8 F8 F8 F8 F8 F8 XF86Switch_VT_8
+keycode 75 = F9 F9 F9 F9 F9 F9 XF86Switch_VT_9
+keycode 76 = F10 F10 F10 F10 F10 F10 XF86Switch_VT_10
keycode 77 = Num_Lock NoSymbol Num_Lock
keycode 78 = Scroll_Lock NoSymbol Scroll_Lock
keycode 79 = KP_Home KP_7 KP_Home KP_7
-keycode 80 = KP_Up KP_8 KP_Up KP_8
+keycode 80 = KP_Up KP_8 uparrow uparrow
keycode 81 = KP_Prior KP_9 KP_Prior KP_9
-keycode 82 = KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract XF86Prev_VMode KP_Subtract KP_Subtract XF86Prev_VMode
-keycode 83 = KP_Left KP_4 KP_Left KP_4
+keycode 82 = KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract XF86Prev_VMode
+keycode 83 = KP_Left KP_4 leftarrow leftarrow
keycode 84 = KP_Begin KP_5 KP_Begin KP_5
-keycode 85 = KP_Right KP_6 KP_Right KP_6
-keycode 86 = KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add XF86Next_VMode KP_Add KP_Add XF86Next_VMode
+keycode 85 = KP_Right KP_6 rightarrow rightarrow
+keycode 86 = KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add XF86Next_VMode
keycode 87 = KP_End KP_1 KP_End KP_1
-keycode 88 = KP_Down KP_2 KP_Down KP_2
+keycode 88 = KP_Down KP_2 downarrow downarrow
keycode 89 = KP_Next KP_3 KP_Next KP_3
keycode 90 = KP_Insert KP_0 KP_Insert KP_0
-keycode 91 = KP_Delete KP_Separator KP_Delete KP_Separator
+keycode 91 = KP_Delete KP_Decimal KP_Delete KP_Decimal
keycode 92 = ISO_Level3_Shift NoSymbol ISO_Level3_Shift
keycode 93 =
-keycode 94 = asciicircum degree asciitilde notsign U2033
-keycode 95 = F11 F11 F11 F11 F11 F11 XF86Switch_VT_11 F11 F11 XF86Switch_VT_11
-keycode 96 = F12 F12 F12 F12 F12 F12 XF86Switch_VT_12 F12 F12 XF86Switch_VT_12
+keycode 94 = less greater less greater bar brokenbar bar
+keycode 95 = F11 F11 F11 F11 F11 F11 XF86Switch_VT_11
+keycode 96 = F12 F12 F12 F12 F12 F12 XF86Switch_VT_12
keycode 97 =
keycode 98 = Katakana NoSymbol Katakana
keycode 99 = Hiragana NoSymbol Hiragana
@@ -95,18 +95,18 @@ keycode 101 = Hiragana_Katakana NoSymbol Hiragana_Katakana
keycode 102 = Muhenkan NoSymbol Muhenkan
keycode 103 =
keycode 104 = KP_Enter NoSymbol KP_Enter
-keycode 105 = Control_R NoSymbol Control_R
-keycode 106 = KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide XF86Ungrab KP_Divide KP_Divide XF86Ungrab
+keycode 105 = Multi_key NoSymbol Multi_key
+keycode 106 = KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide XF86Ungrab
keycode 107 = Print Sys_Req Print Sys_Req
-keycode 108 = ISO_Level3_Shift NoSymbol ISO_Level3_Shift
+keycode 108 = Alt_R Meta_R Alt_R Meta_R
keycode 109 = Linefeed NoSymbol Linefeed
keycode 110 = Home NoSymbol Home
-keycode 111 = Up NoSymbol Up
+keycode 111 = Up NoSymbol uparrow uparrow
keycode 112 = Prior NoSymbol Prior
-keycode 113 = Left NoSymbol Left
-keycode 114 = Right NoSymbol Right
+keycode 113 = Left NoSymbol leftarrow leftarrow
+keycode 114 = Right NoSymbol rightarrow rightarrow
keycode 115 = End NoSymbol End
-keycode 116 = Down NoSymbol Down
+keycode 116 = Down NoSymbol downarrow downarrow
keycode 117 = Next NoSymbol Next
keycode 118 = Insert NoSymbol Insert
keycode 119 = Delete NoSymbol Delete
@@ -124,7 +124,7 @@ keycode 130 = Hangul NoSymbol Hangul
keycode 131 = Hangul_Hanja NoSymbol Hangul_Hanja
keycode 132 =
keycode 133 = Super_L NoSymbol Super_L
-keycode 134 = Super_R NoSymbol Super_R
+keycode 134 = Mode_switch NoSymbol Mode_switch
keycode 135 = Menu NoSymbol Menu
keycode 136 = Cancel NoSymbol Cancel
keycode 137 = Redo NoSymbol Redo
@@ -181,19 +181,19 @@ keycode 187 = parenleft NoSymbol parenleft
keycode 188 = parenright NoSymbol parenright
keycode 189 = XF86New NoSymbol XF86New
keycode 190 = Redo NoSymbol Redo
-keycode 191 = XF86Tools NoSymbol XF86Tools
-keycode 192 = XF86Launch5 NoSymbol XF86Launch5
-keycode 193 = XF86Launch6 NoSymbol XF86Launch6
-keycode 194 = XF86Launch7 NoSymbol XF86Launch7
-keycode 195 = XF86Launch8 NoSymbol XF86Launch8
-keycode 196 = XF86Launch9 NoSymbol XF86Launch9
+keycode 191 = XF86Launch1 NoSymbol XF86Launch1
+keycode 192 = XF86Launch2 NoSymbol XF86Launch2
+keycode 193 = XF86Launch3 NoSymbol XF86Launch3
+keycode 194 = XF86Launch4 NoSymbol XF86Launch4
+keycode 195 =
+keycode 196 =
keycode 197 =
keycode 198 = XF86AudioMicMute NoSymbol XF86AudioMicMute
keycode 199 = XF86TouchpadToggle NoSymbol XF86TouchpadToggle
keycode 200 = XF86TouchpadOn NoSymbol XF86TouchpadOn
keycode 201 = XF86TouchpadOff NoSymbol XF86TouchpadOff
keycode 202 =
-keycode 203 = Mode_switch NoSymbol Mode_switch
+keycode 203 = ISO_Level5_Shift NoSymbol ISO_Level5_Shift
keycode 204 = NoSymbol Alt_L NoSymbol Alt_L
keycode 205 = NoSymbol Meta_L NoSymbol Meta_L
keycode 206 = NoSymbol Super_L NoSymbol Super_L
@@ -238,7 +238,7 @@ keycode 244 = XF86Battery NoSymbol XF86Battery
keycode 245 = XF86Bluetooth NoSymbol XF86Bluetooth
keycode 246 = XF86WLAN NoSymbol XF86WLAN
keycode 247 = XF86UWB NoSymbol XF86UWB
-keycode 248 =
+keycode 248 = XF86LaunchB NoSymbol XF86LaunchB
keycode 249 = XF86Next_VMode NoSymbol XF86Next_VMode
keycode 250 = XF86Prev_VMode NoSymbol XF86Prev_VMode
keycode 251 = XF86MonBrightnessCycle NoSymbol XF86MonBrightnessCycle
diff --git a/xorg/.Xresources b/xorg/.Xresources
index 62afedc..2ed927f 100644
--- a/xorg/.Xresources
+++ b/xorg/.Xresources
@@ -1,3 +1,70 @@
+#include ".cache/wal/colors.Xresources"
+
+#define font "JetBrainsMono Nerd Font:size=19:pixelsize=24:antialias=true:autohint=true"
+
+! Terminal colors
+*.color0: c00
+*color0: c00
+*.color1: c01
+*color1: c01
+*.color2: c02
+*color2: c02
+*.color3: c03
+*color3: c03
+*.color4: c04
+*color4: c04
+*.color5: c05
+*color5: c05
+*.color6: c06
+*color6: c06
+*.color7: c07
+*color7: c07
+*.color8: c08
+*color8: c08
+*.color9: c09
+*color9: c09
+*.color10: c10
+*color10: c10
+*.color11: c11
+*color11: c11
+*.color12: c12
+*color12: c12
+*.color13: c13
+*color13: c13
+*.color14: c14
+*color14: c14
+*.color15: c15
+*color15: c15
+
+! Black color that will not be affected by bold highlighting
+*.color66: c00
+*color66: c00
+
+*.background: cbg
+*background: cbg
+*.foreground: cfg
+*foreground: cfg
+*.primary: cps
+*primary: cps
+*.accent: cas
+*accent: cas
+
Xft.dpi: 220
-Sxiv.font: JetBrains Mono:pixelsize=24
+Xcursor.theme: capitaine-cursors-light
+
+dwm.normbordercolor: c08
+dwm.normbgcolor: cbg
+dwm.normfgcolor: cfg
+dwm.selbordercolor: cps
+dwm.selbgcolor: cps
+dwm.selfgcolor: cbg
+
+Nsxiv.bar.font: font
+Nsxiv.bar.background: cps
+Nsxiv.bar.foreground: cbg
+Nsxiv.mark.foreground: cps
+Nsxiv.window.background: cbg
+Nsxiv.window.foreground: cps
+
+xterm*font: *-fixed-*-*-*-28-*
diff --git a/xorg/.config/env b/xorg/.config/env
index a995e51..bff8a3a 100644
--- a/xorg/.config/env
+++ b/xorg/.config/env
@@ -1,26 +1,61 @@
#!/bin/bash
+export XDG_CONFIG_HOME="$HOME/.config/"
+
### SCRIPTS
-export PATH="$(find -L "$HOME/.local/bin/" -name '.*' -prune -o -type d -printf ':%p'):$PATH:$HOME/software/bin/"
+export PATH="$(find -L "$HOME/.local/bin/" -name '.*' -prune -o -type d -printf ':%p'):/opt/:$PATH"
+export PATH="$PATH:$HOME/.local/share/gem/ruby/3.0.0/bin"
### DEFAULTS
export TERM="xterm"
export EDITOR="nvim"
export BROWSER="qutebrowser"
export TERMINAL="st"
-export EMAIL="thunderbird"
+export EMAIL="neomutt"
+
+export PAGER="leser"
+export MANPAGER="leser"
+export MANROFFOPT="-P -c"
export GIT_SSH_COMMAND="ssh"
+export GNUPGHOME="$HOME/keys/gpg"
+export PASSWORD_STORE_DIR="$HOME/keys/pass"
-### FLUTTER
+### SPITFIRE
+export WINEPREFIX="$HOME/music/spitfire/spitfire/"
+export WINELOADER="$HOME/.local/share/bottles/runners/soda-7.0-9/bin/wine"
-export PATH="$PATH:$HOME/software/flutter/bin:/opt/android-sdk/tools/bin/"
+### FLUTTER
+export PATH="$HOME/software/flutter/bin:/opt/android-sdk/tools/bin/:$PATH"
+export FLUTTER_ROOT="$HOME/software/flutter/bin/flutter"
export CHROME_EXECUTABLE="$(which brave)"
+export CHROME_PATH="$CHROME_EXECUTABLE"
+
+export JAVA_HOME="/usr/lib/jvm/java-20-openjdk/"
+export ANDROID_HOME="sdkmanager"
+export ANDROID_HOME="/opt/android-sdk"
+export ANDROID_SDK_ROOT="/opt/android-sdk"
+export REPO_OS_OVERRIDE="linux"
+
+export AWT_TOOLKIT="MToolkit"
+export _JAVA_AWT_WM_NONREPARENTING=1
+
+# -- from github
+# export PATH="$PATH:$HOME/git/applications/flutter/bin:$HOME/.sdks/android/android-sdk/platform-tools:$HOME/.sdks/android/android-sdk/tools:$HOME/.sdks/android/android-sdk/tools/bin"
+
+# export JAVA_HOME="/usr/lib/jvm/java-8-openjdk"
+
+### JUPYTER
+export JUPYTERLAB_DIR="$HOME/.local/share/jupyter/lab"
+export JUPYTER_CONFIG_DIR="$HOME/.config/jupyter/"
-export JAVA_HOME="/usr/lib/jvm/java-8-openjdk/"
-# export ANDROID_HOME="sdkmanager"
+### INPUT
+export GTK_IM_MODULE=fcitx
+export QT_IM_MODULE=fcitx
+export XMODIFIERS=@im=fcitx
-### UI SCALE
+### GUI THINGS
+export QT_QPA_PLATFORMTHEME="qt5ct"
export GDK_DPI_SCALE="1"
export GDK_SCALE="1"
diff --git a/xorg/.config/mimeapps.list b/xorg/.config/mimeapps.list
index 8abb510..ec9ae23 100644
--- a/xorg/.config/mimeapps.list
+++ b/xorg/.config/mimeapps.list
@@ -1,16 +1,21 @@
[Added Associations]
-image/*=sxiv.desktop;org.qutebrowser.qutebrowser.desktop;
-x-scheme-handler/mailto=userapp-Thunderbird-CLI8N1.desktop;
-x-scheme-handler/mid=userapp-Thunderbird-CLI8N1.desktop;
-application/pdf=org.pwmt.zathura-pdf-mupdf.desktop;
+video/*=mpv.desktop
+audio/*=mpv.desktop
+image/*=nsxiv.desktop
+model/*=org.freecadweb.FreeCAD.desktop
+model/3mf=cura.desktop;org.freecadweb.FreeCAD.desktop
[Default Applications]
-image/png=sxiv.desktop
-image/jpeg=sxiv.desktop
+video/mkv=vlc.desktop
+video/mp4=mpv.desktop
+audio/mp3=mpv.desktop
+image/gif=nsxiv.desktop
+image/png=nsxiv.desktop
+image/jpg=nsxiv.desktop
+image/jpeg=nsxiv.desktop
inode/directory=thunar.desktop
application/pdf=org.pwmt.zathura.desktop
-x-scheme-handler/mailto=userapp-Thunderbird-CLI8N1.desktop
-message/rfc822=userapp-Thunderbird-CLI8N1.desktop
-x-scheme-handler/mid=userapp-Thunderbird-CLI8N1.desktop
x-scheme-handler/http=org.qutebrowser.qutebrowser.desktop
x-scheme-handler/https=org.qutebrowser.qutebrowser.desktop
+x-scheme-handler/figma=figma-linux.desktop
+
diff --git a/xorg/.config/wallpaper b/xorg/.config/wallpaper
index 92c5f6c..9a4953e 100644
--- a/xorg/.config/wallpaper
+++ b/xorg/.config/wallpaper
Binary files differ
diff --git a/xorg/.xinitrc b/xorg/.xinitrc
index b6a1168..8bbd85b 100755
--- a/xorg/.xinitrc
+++ b/xorg/.xinitrc
@@ -1,24 +1,42 @@
#!/bin/bash
setxkbmap de
-feh --bg-fill $HOME/.config/wallpaper
+. "$HOME/.screenlayout/home.sh"
+feh --bg-fill "$HOME/.config/wallpaper"
-# This was needed on my system with the non-lts kernel (some keys were mismatched)
-# [[ -f ~/.Xmodmap ]] && xmodmap $HOME/.Xmodmap
-[[ -f ~/.Xresources ]] && xrdb -merge -I$HOME ~/.Xresources
-[[ -f $HOME/.cache/wal/colors.Xresources ]] && xrdb -merge -I$HOME $HOME/.cache/wal/colors.Xresources
+env_file="$HOME/.config/env"
+modmap_file="$HOME/.Xmodmap"
+resources_file="$HOME/.Xresources"
-[[ -f $HOME/.config/env ]] && source $HOME/.config/env
+[[ -f "$env_file" ]] && . "$env_file"
+[[ -f "$modmap_file" ]] && xmodmap "$modmap_file"
+[[ -f "$resources_file" ]] && xrdb -merge -I"$HOME" "$resources_file"
+
+if [ -d /etc/X11/xinit/xinitrc.d ] ; then
+ for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
+ [ -x "$f" ] && . "$f"
+ done
+ unset f
+fi
+
+mkdir -p "$HOME"/.local/share/keyrings
+eval $(/usr/bin/gnome-keyring-daemon --start) && export SSH_AUTH_SOCK
updates check &
-sxhkd -c "$HOME/.config/sxhkd/mediarc" &
unclutter -idle 1 &
brightness load &
+clipmenud &
+fcitx5 -d &
slstatus &
dunst &
+picom &
+
+[ ! -s "$HOME/.config/mpd/pid" ] && mpd &
-exec dwm
+exec dwm # 2> "$HOME/dwm.log"
+# exec leftwm
+# exec awesome
wal -R
diff --git a/zathura/.config/zathura/zathurarc b/zathura/.config/zathura/zathurarc
deleted file mode 100644
index 2dc8b3e..0000000
--- a/zathura/.config/zathura/zathurarc
+++ /dev/null
@@ -1,23 +0,0 @@
-set selection-clipboard "clipboard"
-
-set window-title-basename true
-set window-title-page false
-
-set recolor true
-
-set font "JetBrains Mono normal 8"
-
-set default-bg "#1a1a1a"
-set highlight-color "#e8e2ef"
-set highlight-active-color "#a642c0"
-set recolor-lightcolor "#1a1a1a"
-set statusbar-bg "#1a1a1a"
-set statusbar-fg "#e8e2ef"
-set inputbar-bg "#1a1a1a"
-set inputbar-fg "#e8e2ef"
-set completion-fg "#e8e2ef"
-set completion-bg "#1a1a1a"
-set completion-group-fg "#e8e2ef"
-set completion-group-bg "#a642c0"
-set completion-highlight-fg "#1a1a1a"
-set completion-highlight-bg "#e8e2ef"