diff options
77 files changed, 5994 insertions, 3859 deletions
diff --git a/.bash_profile b/.bash_profile new file mode 100644 index 0000000..5f7f323 --- /dev/null +++ b/.bash_profile @@ -0,0 +1,25 @@ +[[ -f ~/.bashrc ]] && . ~/.bashrc +. "$HOME/.cargo/env" + +export EDITOR="nvim" +export VISUAL="emacs" +export TERMINAL="alacritty" +export BROWSER="librewolf" +export COLORTERM="truecolor" +export PAGER="bat" + +export PATH=$HOME/.scripts:$PATH +export PATH=$HOME/.local/bin:$PATH +export PATH=$HOME/.config/emacs/bin:$PATH + +export PATH=/usr/local/bin:$PATH + +# export RUST_SRC_PATH=$HOME/.cargo +export PATH=$HOME/.gopath:$PATH +export GOPATH="$HOME/.gopath" +# export PATH=$HOME/.local/flutter/bin:$PATH + +export ZDOTDIR="$HOME/.config/zsh" + +export QT_QPA_PLATFORMTHEME=qt5ct +export QT_QPA_PLATFORMTHEME_QT6=qt6ct @@ -0,0 +1,11 @@ +# +# ~/.bashrc +# + +# If not running interactively, don't do anything +[[ $- != *i* ]] && return + +# alias ls='ls --color=auto' +# alias grep='grep --color=auto' +# PS1='[\u@\h \W]\$ ' +. "$HOME/.cargo/env" diff --git a/.config/alacritty/alacritty.toml b/.config/alacritty/alacritty.toml index c24bd97..1253808 100644 --- a/.config/alacritty/alacritty.toml +++ b/.config/alacritty/alacritty.toml @@ -5,6 +5,6 @@ import = [ #"~/.config/alacritty/mouse.toml", "~/.config/alacritty/shell.toml", "~/.config/alacritty/env.toml", - #"~/.config/alacritty/window.toml", - #"~/.config/alacritty/themes/dracula.toml" + "~/.config/alacritty/window.toml", + "~/.config/alacritty/themes/catppuccin-mocha.toml" ] diff --git a/.config/alacritty/env.toml b/.config/alacritty/env.toml index d8f1069..a2fc11a 100644 --- a/.config/alacritty/env.toml +++ b/.config/alacritty/env.toml @@ -1,2 +1,3 @@ [env] WINIT_X11_SCALE_FACTOR = "1.1" +TERM = "xterm-256color" diff --git a/.config/alacritty/themes/catppuccin-frappe.toml b/.config/alacritty/themes/catppuccin-frappe.toml new file mode 100644 index 0000000..3e6fac1 --- /dev/null +++ b/.config/alacritty/themes/catppuccin-frappe.toml @@ -0,0 +1,65 @@ +[colors.primary] +background = "#303446" +foreground = "#c6d0f5" +dim_foreground = "#838ba7" +bright_foreground = "#c6d0f5" + +[colors.cursor] +text = "#303446" +cursor = "#f2d5cf" + +[colors.vi_mode_cursor] +text = "#303446" +cursor = "#babbf1" + +[colors.search.matches] +foreground = "#303446" +background = "#a5adce" + +[colors.search.focused_match] +foreground = "#303446" +background = "#a6d189" + +[colors.footer_bar] +foreground = "#303446" +background = "#a5adce" + +[colors.hints.start] +foreground = "#303446" +background = "#e5c890" + +[colors.hints.end] +foreground = "#303446" +background = "#a5adce" + +[colors.selection] +text = "#303446" +background = "#f2d5cf" + +[colors.normal] +black = "#51576d" +red = "#e78284" +green = "#a6d189" +yellow = "#e5c890" +blue = "#8caaee" +magenta = "#f4b8e4" +cyan = "#81c8be" +white = "#b5bfe2" + +[colors.bright] +black = "#626880" +red = "#e78284" +green = "#a6d189" +yellow = "#e5c890" +blue = "#8caaee" +magenta = "#f4b8e4" +cyan = "#81c8be" +white = "#a5adce" + +[[colors.indexed_colors]] +index = 16 +color = "#ef9f76" + +[[colors.indexed_colors]] +index = 17 +color = "#f2d5cf" diff --git a/.config/alacritty/themes/catppuccin-macchiato.toml b/.config/alacritty/themes/catppuccin-macchiato.toml new file mode 100644 index 0000000..df5c8bc --- /dev/null +++ b/.config/alacritty/themes/catppuccin-macchiato.toml @@ -0,0 +1,66 @@ +[colors.primary] +#background = "#24273a" +background = "#14161b" +foreground = "#cad3f5" +dim_foreground = "#8087a2" +bright_foreground = "#cad3f5" + +[colors.cursor] +text = "#24273a" +cursor = "#f4dbd6" + +[colors.vi_mode_cursor] +text = "#24273a" +cursor = "#b7bdf8" + +[colors.search.matches] +foreground = "#24273a" +background = "#a5adcb" + +[colors.search.focused_match] +foreground = "#24273a" +background = "#a6da95" + +[colors.footer_bar] +foreground = "#24273a" +background = "#a5adcb" + +[colors.hints.start] +foreground = "#24273a" +background = "#eed49f" + +[colors.hints.end] +foreground = "#24273a" +background = "#a5adcb" + +[colors.selection] +text = "#24273a" +background = "#f4dbd6" + +[colors.normal] +black = "#494d64" +red = "#ed8796" +green = "#a6da95" +yellow = "#eed49f" +blue = "#8aadf4" +magenta = "#f5bde6" +cyan = "#8bd5ca" +white = "#b8c0e0" + +[colors.bright] +black = "#5b6078" +red = "#ed8796" +green = "#a6da95" +yellow = "#eed49f" +blue = "#8aadf4" +magenta = "#f5bde6" +cyan = "#8bd5ca" +white = "#a5adcb" + +[[colors.indexed_colors]] +index = 16 +color = "#f5a97f" + +[[colors.indexed_colors]] +index = 17 +color = "#f4dbd6" diff --git a/.config/alacritty/themes/catppuccin-mocha.toml b/.config/alacritty/themes/catppuccin-mocha.toml new file mode 100644 index 0000000..7b752ce --- /dev/null +++ b/.config/alacritty/themes/catppuccin-mocha.toml @@ -0,0 +1,66 @@ +[colors.primary] +#background = "#1e1e2e" +background = "#14161b" +foreground = "#cdd6f4" +dim_foreground = "#7f849c" +bright_foreground = "#cdd6f4" + +[colors.cursor] +text = "#1e1e2e" +cursor = "#f5e0dc" + +[colors.vi_mode_cursor] +text = "#1e1e2e" +cursor = "#b4befe" + +[colors.search.matches] +foreground = "#1e1e2e" +background = "#a6adc8" + +[colors.search.focused_match] +foreground = "#1e1e2e" +background = "#a6e3a1" + +[colors.footer_bar] +foreground = "#1e1e2e" +background = "#a6adc8" + +[colors.hints.start] +foreground = "#1e1e2e" +background = "#f9e2af" + +[colors.hints.end] +foreground = "#1e1e2e" +background = "#a6adc8" + +[colors.selection] +text = "#1e1e2e" +background = "#f5e0dc" + +[colors.normal] +black = "#45475a" +red = "#f38ba8" +green = "#a6e3a1" +yellow = "#f9e2af" +blue = "#89b4fa" +magenta = "#f5c2e7" +cyan = "#94e2d5" +white = "#bac2de" + +[colors.bright] +black = "#585b70" +red = "#f38ba8" +green = "#a6e3a1" +yellow = "#f9e2af" +blue = "#89b4fa" +magenta = "#f5c2e7" +cyan = "#94e2d5" +white = "#a6adc8" + +[[colors.indexed_colors]] +index = 16 +color = "#fab387" + +[[colors.indexed_colors]] +index = 17 +color = "#f5e0dc" diff --git a/.config/alacritty/themes/embark.toml b/.config/alacritty/themes/embark.toml new file mode 100644 index 0000000..209ed93 --- /dev/null +++ b/.config/alacritty/themes/embark.toml @@ -0,0 +1,27 @@ +[colors.bright] +black = "#585273" +blue = "#78a8ff" +cyan = "#63f2f1" +green = "#7fe9c3" +magenta = "#7676ff" +red = "#f02e6e" +white = "#8a889d" +yellow = "#f2b482" + +[colors.cursor] +cursor = "#a1efd3" +text = "#1e1c31" + +[colors.normal] +black = "#1e1c31" +blue = "#91ddff" +cyan = "#abf8f7" +green = "#a1efd3" +magenta = "#d4bfff" +red = "#f48fb1" +white = "#cbe3e7" +yellow = "#ffe6b3" + +[colors.primary] +background = "#1e1c31" +foreground = "#cbe3e7" diff --git a/.config/alacritty/themes/fairyflossdark.yml b/.config/alacritty/themes/fairyflossdark.yml deleted file mode 100644 index 61ff9a7..0000000 --- a/.config/alacritty/themes/fairyflossdark.yml +++ /dev/null @@ -1,32 +0,0 @@ -# Colors (Molokai) -colors: - # Default colors - primary: - background: '0x42395d' - foreground: '0xf8f8f2' - - # Colors the cursor will use if `custom_cursor_colors` is true - # text: '0x' - # cursor: '0x' - - # Normal colors - normal: - black: '0x42395d' - red: '0xa8757b' - green: '0xff857f' - yellow: '0xe6c000' - blue: '0xae81ff' - magenta: '0x716799' - cyan: '0xc2ffdf' - white: '0xf8f8f2' - - # Bright colors - bright: - black: '0x75507b' - red: '0xffb8d1' - green: '0xf1568e' - yellow: '0xd5a425' - blue: '0xc5a3ff' - magenta: '0x8077a8' - cyan: '0xc2ffff' - white: '0xf8f8f0' diff --git a/.config/alacritty/themes/molokai.yml b/.config/alacritty/themes/molokai.yml deleted file mode 100644 index b5bea8d..0000000 --- a/.config/alacritty/themes/molokai.yml +++ /dev/null @@ -1,34 +0,0 @@ -# Colors (Molokai) -colors: - # Default colors - primary: - background: '0x151515' - foreground: '0xeaeaea' - - # Colors the cursor will use if `custom_cursor_colors` is true - cursor: - text: '0x000000' - cursor: '0xffffff' - - # Normal colors - normal: - black: '0x121212' - red: '0xfa2573' - # green: '0x98e123' # Correct Molokai colour - green: '0x9cff00' # Better looking colour - yellow: '0xdfd460' - blue: '0x1080d0' - magenta: '0x8700ff' - cyan: '0x43a8d0' - white: '0xbbbbbb' - - # Bright colors - bright: - black: '0x555555' - red: '0xf6669d' - green: '0xb1e05f' - yellow: '0xfff26d' - blue: '0x00afff' - magenta: '0xaf87ff' - cyan: '0x51ceff' - white: '0xffffff' diff --git a/.config/alacritty/themes/rose-pine-dawn.toml b/.config/alacritty/themes/rose-pine-dawn.toml new file mode 100644 index 0000000..0e0444a --- /dev/null +++ b/.config/alacritty/themes/rose-pine-dawn.toml @@ -0,0 +1,75 @@ +# Colors section of "Alacritty - TOML configuration file format" +# https://github.com/alacritty/alacritty/blob/master/extra/man/alacritty.5.scd#colors + +[colors.primary] +foreground = "#575279" +background = "#faf4ed" +dim_foreground = "#797593" +bright_foreground = "#575279" + +[colors.cursor] +text = "#575279" +cursor = "#cecacd" + +[colors.vi_mode_cursor] +text = "#575279" +cursor = "#cecacd" + +[colors.search.matches] +foreground = "#797593" +background = "#f2e9e1" + +[colors.search.focused_match] +foreground = "#faf4ed" +background = "#d7827e" + +[colors.hints.start] +foreground = "#797593" +background = "#fffaf3" + +[colors.hints.end] +foreground = "#9893a5" +background = "#fffaf3" + +[colors.line_indicator] +foreground = "None" +background = "None" + +[colors.footer_bar] +foreground = "#575279" +background = "#fffaf3" + +[colors.selection] +text = "#575279" +background = "#dfdad9" + +[colors.normal] +black = "#f2e9e1" +red = "#b4637a" +green = "#286983" +yellow = "#ea9d34" +blue = "#56949f" +magenta = "#907aa9" +cyan = "#d7827e" +white = "#575279" + +[colors.bright] +black = "#9893a5" +red = "#b4637a" +green = "#286983" +yellow = "#ea9d34" +blue = "#56949f" +magenta = "#907aa9" +cyan = "#d7827e" +white = "#575279" + +[colors.dim] +black = "#9893a5" +red = "#b4637a" +green = "#286983" +yellow = "#ea9d34" +blue = "#56949f" +magenta = "#907aa9" +cyan = "#d7827e" +white = "#575279" + diff --git a/.config/alacritty/themes/rose-pine-moon.toml b/.config/alacritty/themes/rose-pine-moon.toml new file mode 100644 index 0000000..3bbfe65 --- /dev/null +++ b/.config/alacritty/themes/rose-pine-moon.toml @@ -0,0 +1,75 @@ +# Colors section of "Alacritty - TOML configuration file format" +# https://github.com/alacritty/alacritty/blob/master/extra/man/alacritty.5.scd#colors + +[colors.primary] +foreground = "#e0def4" +background = "#232136" +dim_foreground = "#908caa" +bright_foreground = "#e0def4" + +[colors.cursor] +text = "#e0def4" +cursor = "#56526e" + +[colors.vi_mode_cursor] +text = "#e0def4" +cursor = "#56526e" + +[colors.search.matches] +foreground = "#908caa" +background = "#393552" + +[colors.search.focused_match] +foreground = "#232136" +background = "#ea9a97" + +[colors.hints.start] +foreground = "#908caa" +background = "#2a273f" + +[colors.hints.end] +foreground = "#6e6a86" +background = "#2a273f" + +[colors.line_indicator] +foreground = "None" +background = "None" + +[colors.footer_bar] +foreground = "#e0def4" +background = "#2a273f" + +[colors.selection] +text = "#e0def4" +background = "#44415a" + +[colors.normal] +black = "#393552" +red = "#eb6f92" +green = "#3e8fb0" +yellow = "#f6c177" +blue = "#9ccfd8" +magenta = "#c4a7e7" +cyan = "#ea9a97" +white = "#e0def4" + +[colors.bright] +black = "#6e6a86" +red = "#eb6f92" +green = "#3e8fb0" +yellow = "#f6c177" +blue = "#9ccfd8" +magenta = "#c4a7e7" +cyan = "#ea9a97" +white = "#e0def4" + +[colors.dim] +black = "#6e6a86" +red = "#eb6f92" +green = "#3e8fb0" +yellow = "#f6c177" +blue = "#9ccfd8" +magenta = "#c4a7e7" +cyan = "#ea9a97" +white = "#e0def4" + diff --git a/.config/alacritty/themes/rose-pine.toml b/.config/alacritty/themes/rose-pine.toml new file mode 100644 index 0000000..ff757b2 --- /dev/null +++ b/.config/alacritty/themes/rose-pine.toml @@ -0,0 +1,75 @@ +# Colors section of "Alacritty - TOML configuration file format" +# https://github.com/alacritty/alacritty/blob/master/extra/man/alacritty.5.scd#colors + +[colors.primary] +foreground = "#e0def4" +background = "#191724" +dim_foreground = "#908caa" +bright_foreground = "#e0def4" + +[colors.cursor] +text = "#e0def4" +cursor = "#524f67" + +[colors.vi_mode_cursor] +text = "#e0def4" +cursor = "#524f67" + +[colors.search.matches] +foreground = "#908caa" +background = "#26233a" + +[colors.search.focused_match] +foreground = "#191724" +background = "#ebbcba" + +[colors.hints.start] +foreground = "#908caa" +background = "#1f1d2e" + +[colors.hints.end] +foreground = "#6e6a86" +background = "#1f1d2e" + +[colors.line_indicator] +foreground = "None" +background = "None" + +[colors.footer_bar] +foreground = "#e0def4" +background = "#1f1d2e" + +[colors.selection] +text = "#e0def4" +background = "#403d52" + +[colors.normal] +black = "#26233a" +red = "#eb6f92" +green = "#31748f" +yellow = "#f6c177" +blue = "#9ccfd8" +magenta = "#c4a7e7" +cyan = "#ebbcba" +white = "#e0def4" + +[colors.bright] +black = "#6e6a86" +red = "#eb6f92" +green = "#31748f" +yellow = "#f6c177" +blue = "#9ccfd8" +magenta = "#c4a7e7" +cyan = "#ebbcba" +white = "#e0def4" + +[colors.dim] +black = "#6e6a86" +red = "#eb6f92" +green = "#31748f" +yellow = "#f6c177" +blue = "#9ccfd8" +magenta = "#c4a7e7" +cyan = "#ebbcba" +white = "#e0def4" + diff --git a/.config/alacritty/window.toml b/.config/alacritty/window.toml index 843f080..f0c281d 100644 --- a/.config/alacritty/window.toml +++ b/.config/alacritty/window.toml @@ -5,7 +5,7 @@ history = 20000 decorations = "full" dynamic_padding = false dynamic_title = true -opacity = 0.7 +opacity = 0.75 startup_mode = "Windowed" title = "Alacritty" diff --git a/.config/base-packages.txt b/.config/base-packages.txt deleted file mode 100644 index e3bdfd9..0000000 --- a/.config/base-packages.txt +++ /dev/null @@ -1,910 +0,0 @@ -a52dec -aalib -abseil-cpp -accounts-qml-module -acl -adobe-source-code-pro-fonts -adobe-source-han-sans-jp-fonts -adobe-source-han-sans-kr-fonts -adwaita-cursors -adwaita-icon-theme -alacritty -alsa-card-profiles -alsa-lib -alsa-topology-conf -alsa-ucm-conf -amf-headers -aom -apparmor -arandr -archlinux-keyring -argon2 -aribb24 -aribb25 -asio -at-spi2-core -atkmm -attica5 -attr -audit -autoconf -automake -avahi -avisynthplus -babl -base -base-devel -bash -bat -binutils -bison -blas -blueman -bluez -bluez-libs -bluez-utils -boost-libs -botan -botan2 -box2d -breeze-icons -brightnessctl -brotli -btrfs-progs -bzip2 -ca-certificates -ca-certificates-mozilla -ca-certificates-utils -cabal-install -cairo -cairomm -cantarell-fonts -cdparanoia -cef-minimal-obs-bin -chromaprint -chrpath -cifs-utils -cjson -clang -clucene -cmake -colorpicker -compiler-rt -confuse -convertlit -coreutils -cppdap -cryptsetup -curl -dart -dav1d -db -db5.3 -dbus -dbus-glib -dbus-python -dconf -debugedit -default-cursors -desktop-file-utils -device-mapper -diffutils -discord -dkms -dnssec-anchors -double-conversion -dracula-cursors-git -dracula-gtk-theme -duktape -dunst -dust -e2fsprogs -ebook-tools -efibootmgr -efivar -egl-wayland -eglexternalplatform -exiv2 -expat -eza -faad2 -fakeroot -ffmpeg-obs -ffnvcodec-headers -fftw -figlet -file -filesystem -findutils -firejail -fish -flac -flameshot -flex -fontconfig -freeglut -freetype2 -frei0r-plugins -fribidi -ftgl -ftl-sdk -galculator -gawk -gc -gcc -gcc-libs -gcr-4 -gdbm -gdk-pixbuf2 -gegl -gettext -ghc -ghc-libs -giflib -gimp -git -glew -glib-networking -glib2 -glibc -glibmm -glm -glslang -glu -gmp -gnu-free-fonts -gnupg -gnutls -go -gobject-introspection-runtime -gperftools -gpgme -gpm -graphene -graphite -grep -groff -grub -gsettings-desktop-schemas -gsfonts -gsm -gssdp -gst-plugins-bad-libs -gst-plugins-base -gst-plugins-base-libs -gstreamer -gtk-update-icon-cache -gtk2 -gtk3 -gtkmm -gtkmm3 -guile -gupnp -gupnp-igd -gzip -harfbuzz -harfbuzz-icu -haskell-aeson -haskell-assoc -haskell-async -haskell-attoparsec -haskell-base-compat -haskell-base-compat-batteries -haskell-base-orphans -haskell-base16-bytestring -haskell-base64-bytestring -haskell-bifunctors -haskell-comonad -haskell-contravariant -haskell-cryptohash-sha256 -haskell-data-array-byte -haskell-data-default-class -haskell-data-fix -haskell-diff -haskell-distributive -haskell-dlist -haskell-echo -haskell-ed25519 -haskell-edit-distance -haskell-erf -haskell-fgl -haskell-foldable1-classes-compat -haskell-generically -haskell-ghc-bignum-orphans -haskell-hackage-security -haskell-hashable -haskell-http -haskell-indexed-traversable -haskell-indexed-traversable-instances -haskell-integer-logarithms -haskell-lukko -haskell-network -haskell-network-uri -haskell-onetuple -haskell-primitive -haskell-quickcheck -haskell-random -haskell-regex-base -haskell-regex-posix -haskell-regex-tdfa -haskell-resolv -haskell-scientific -haskell-semialign -haskell-semigroupoids -haskell-setlocale -haskell-splitmix -haskell-statevar -haskell-strict -haskell-tagged -haskell-tar -haskell-text-short -haskell-th-abstraction -haskell-th-compat -haskell-these -haskell-time-compat -haskell-transformers-compat -haskell-unordered-containers -haskell-utf8-string -haskell-uuid-types -haskell-vector -haskell-vector-stream -haskell-witherable -haskell-x11 -haskell-x11-xft -haskell-zlib -hicolor-icon-theme -hidapi -highway -http-parser -hunspell -hwdata -hwloc -hyphen -iana-etc -icu -imath -imlib2 -iproute2 -iptables -iputils -iso-codes -jack2 -jansson -jasper -jbigkit -json-c -json-glib -jsoncpp -kaccounts-integration -karchive5 -kauth5 -kbd -kbookmarks5 -kcmutils5 -kcodecs5 -kcompletion5 -kconfig5 -kconfigwidgets5 -kcoreaddons5 -kcrash5 -kdbusaddons5 -kdeclarative5 -kded5 -kdenlive -keepassxc -keyutils -kfilemetadata5 -kglobalaccel5 -kguiaddons5 -ki18n5 -kiconthemes5 -kio5 -kirigami2 -kitemviews5 -kjobwidgets5 -kmod -knewstuff5 -knotifications5 -knotifyconfig5 -kpackage5 -krb5 -kservice5 -ktextwidgets5 -kvantum -kvantum-theme-dracula-git -kwallet5 -kwidgetsaddons5 -kwindowsystem5 -kxmlgui5 -l-smash -ladspa -lame -lapack -lcms2 -ldb -ldns -lensfun -lf-bin -libabw -libaccounts-glib -libaccounts-qt -libaio -libajantv2 -libappindicator-gtk3 -libarchive -libass -libassuan -libasyncns -libatasmart -libatomic_ops -libavc1394 -libb2 -libblockdev -libbluray -libbpf -libbs2b -libbsd -libbytesize -libcaca -libcamera -libcamera-ipa -libcanberra -libcap -libcap-ng -libcdio -libcdio-paranoia -libcdr -libcloudproviders -libcolord -libconfig -libcups -libdaemon -libdatrie -libdbusmenu-glib -libdbusmenu-gtk3 -libdbusmenu-qt5 -libdc1394 -libdca -libde265 -libdecor -libdeflate -libdovi -libdrm -libdvbpsi -libdvdcss -libdvdnav -libdvdread -libe-book -libebml -libebur128 -libedit -libelf -libepoxy -libepubgen -libetonyek -libev -libevdev -libevent -libexif -libexttextcat -libfdk-aac -libffi -libfontenc -libfreeaptx -libfreehand -libftdi -libgcrypt -libgexiv2 -libgirepository -libgit2 -libglvnd -libgme -libgnomekbd -libgoom2 -libgpg-error -libgudev -libheif -libical -libice -libid3tag -libidn -libidn2 -libiec61883 -libimobiledevice -libinih -libinput -libisl -libjpeg-turbo -libjxl -libkate -libksba -liblangtag -liblc3 -libldac -libldap -libluv -libmad -libmatroska -libmd -libmicrodns -libmm-glib -libmng -libmnl -libmodplug -libmpc -libmpcdec -libmpeg2 -libmspack -libmspub -libmtp -libmwaw -libmypaint -libmysofa -libndp -libnetfilter_conntrack -libnewt -libnfnetlink -libnfs -libnftnl -libnghttp2 -libnice -libnl -libnm -libnma -libnma-common -libnotify -libnsl -libnumbertext -libnvme -libodfgen -libogg -libomxil-bellagio -libopenmpt -libp11-kit -libpagemaker -libpcap -libpciaccess -libpgm -libpipewire -libplacebo -libplist -libpng -libproxy -libpsl -libpulse -libqxp -libraw -libraw1394 -libreoffice-still -librevenge -librewolf-bin -librist -librsvg -libsamplerate -libsasl -libseccomp -libsecret -libshout -libsigc++ -libsm -libsndfile -libsodium -libsoup -libsoup3 -libsoxr -libspiro -libssh -libssh2 -libstaroffice -libstemmer -libsysprof-capture -libtar -libtasn1 -libteam -libtermkey -libthai -libtheora -libtiff -libtiger -libtirpc -libtommath -libtool -libtorrent-rasterbar -libunistring -libunwind -libupnp -libusb -libusb-compat -libusbmuxd -libutempter -libuv -libva -libvdpau -libverto -libvisio -libvorbis -libvpx -libvterm -libwacom -libwbclient -libwebp -libwmf -libwpd -libwpg -libwps -libx11 -libxau -libxcb -libxcomposite -libxcrypt -libxcursor -libxcvt -libxdamage -libxdmcp -libxext -libxfixes -libxfont2 -libxft -libxi -libxinerama -libxkbcommon -libxkbcommon-x11 -libxkbfile -libxklavier -libxml2 -libxmu -libxpm -libxpresent -libxrandr -libxrender -libxshmfence -libxslt -libxss -libxt -libxtst -libxv -libxxf86vm -libyaml -libzip -libzmf -licenses -lightdm -lightdm-slick-greeter -lilv -linux -linux-api-headers -linux-firmware -linux-firmware-whence -linux-headers -lirc -live-media -llvm-libs -llvm14 -llvm14-libs -lm_sensors -lmdb -lpsolve -lua51 -luajit -lv2 -lvm2 -lz4 -lzo -m4 -mailcap -make -mbedtls -md4c -mdadm -media-player-info -mesa -mesa-utils -minizip -mkinitcpio -mkinitcpio-busybox -mlt -mobile-broadband-provider-info -mpfr -mpg123 -mpv -msgpack-c -mtdev -mujs -mypaint-brushes1 -nasm -ncurses -neofetch -neon -neovim -nettle -network-manager-applet -networkmanager -nitrogen -nlohmann-json -nm-connection-editor -npth -nspr -nss -nsxiv -numactl -nvidia -nvidia-utils -obs-studio-browser -ocl-icd -onevpl -oniguruma -openal -opencl-headers -opencore-amr -openexr -openjpeg2 -openmpi -openpmix -openssh -openssl -optimus-manager -opus -orc -p11-kit -pacman -pacman-mirrorlist -pahole -pam -pambase -pango -pangomm -parted -paru-bin -patch -pavucontrol -pciutils -pcre -pcre2 -pcsclite -perl -perl-error -perl-mailtools -perl-timedate -pfetch -picom -pinentry -pipewire -pipewire-audio -pipewire-media-session -pipewire-pulse -pixman -pkgconf -playerctl -polkit -polkit-qt5 -poppler -poppler-data -poppler-glib -poppler-qt5 -popt -portaudio -portmidi -portsmf -procps-ng -projectm -protobuf -psmisc -purpose5 -python -python-annotated-types -python-autocommand -python-babel -python-build -python-cairo -python-certifi -python-charset-normalizer -python-docopt -python-docutils -python-fastjsonschema -python-gobject -python-gpgme -python-idna -python-imagesize -python-inflect -python-installer -python-jaraco.context -python-jaraco.functools -python-jaraco.text -python-jinja -python-keyutils -python-markupsafe -python-more-itertools -python-ordered-set -python-packaging -python-platformdirs -python-pydantic -python-pydantic-core -python-pygments -python-pyproject-hooks -python-pyqt5 -python-pyqt5-sip -python-pysocks -python-pytz -python-requests -python-setuptools -python-snowballstemmer -python-sphinx -python-sphinx-alabaster-theme -python-sphinxcontrib-applehelp -python-sphinxcontrib-devhelp -python-sphinxcontrib-htmlhelp -python-sphinxcontrib-jsmath -python-sphinxcontrib-qthelp -python-sphinxcontrib-serializinghtml -python-tomli -python-trove-classifiers -python-typing_extensions -python-urllib3 -python-validate-pyproject -python-wheel -python-yaml -qbittorrent -qca-qt5 -qrencode -qt5-base -qt5-declarative -qt5-graphicaleffects -qt5-location -qt5-multimedia -qt5-networkauth -qt5-quickcontrols -qt5-quickcontrols2 -qt5-speech -qt5-svg -qt5-translations -qt5-wayland -qt5-webchannel -qt5-webengine -qt5-x11extras -qt6-base -qt6-declarative -qt6-svg -qt6-translations -qt6-wayland -raptor -rasqal -rav1e -readline -redland -rhash -ripgrep -rnnoise -rubberband -sbc -sdl12-compat -sdl2 -sdl_image -sed -serd -shaderc -shadow -shared-mime-info -shellcheck -signon-kwallet-extension -signon-plugin-oauth2 -signon-ui -signond -slang -smbclient -snappy -sndio -solid5 -sonnet5 -sord -sound-theme-freedesktop -soundtouch -speex -speexdsp -spirv-tools -sqlite -sratom -srt -starship -startup-notification -sudo -suil -suitesparse -svt-av1 -swig -syndication5 -systemd -systemd-libs -systemd-sysvcompat -taglib -talloc -tar -tdb -tenacity -tevent -texinfo -thin-provisioning-tools -thunderbird -tor -torbrowser-launcher -tpm2-tss -tracker3 -tree-sitter -tslib -twolame -tzdata -uchardet -udiskie -udisks2 -unibilium -unzip -upower -usbmuxd -uthash -util-linux -util-linux-libs -v4l-utils -v4l2loopback-dkms -v4l2loopback-utils -vamp-plugin-sdk -vcdimager -vid.stab -vim -vim-plug -vim-runtime -vivaldi -vlc-luajit -vmaf -volume_key -vulkan-headers -vulkan-icd-loader -wayland -wayland-protocols -webrtc-audio-processing-1 -websocketpp -wget -which -wpa_supplicant -wxwidgets-common -wxwidgets-gtk3 -x264 -x265 -xapp -xcb-proto -xcb-util -xcb-util-cursor -xcb-util-image -xcb-util-keysyms -xcb-util-renderutil -xcb-util-wm -xdg-utils -xdotool -xf86-input-libinput -xkeyboard-config -xmlsec -xmonad -xmonad-contrib -xorg-fonts-encodings -xorg-server -xorg-server-common -xorg-server-xephyr -xorg-setxkbmap -xorg-xkbcomp -xorg-xmodmap -xorg-xprop -xorg-xrandr -xorg-xrdb -xorg-xset -xorgproto -xosd -xsel -xvidcore -xz -yt-dlp -zeromq -zimg -zip -zlib -zsh -zstd -zvbi -zxing-cpp diff --git a/.config/bat/config b/.config/bat/config new file mode 100644 index 0000000..b7de378 --- /dev/null +++ b/.config/bat/config @@ -0,0 +1 @@ +--theme="Catppuccin Mocha" diff --git a/.config/bat/themes/Catppuccin Mocha.tmTheme b/.config/bat/themes/Catppuccin Mocha.tmTheme new file mode 100644 index 0000000..6bd0f29 --- /dev/null +++ b/.config/bat/themes/Catppuccin Mocha.tmTheme @@ -0,0 +1,2081 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> + <dict> + <key>name</key> + <string>Catppuccin Mocha</string> + <key>semanticClass</key> + <string>theme.dark.catppuccin-mocha</string> + <key>uuid</key> + <string>627ce890-fabb-4d39-9819-7be71f4bdca7</string> + <key>author</key> + <string>Catppuccin Org</string> + <key>colorSpaceName</key> + <string>sRGB</string> + <key>settings</key> + <array> + <dict> + <key>settings</key> + <dict> + <key>background</key> + <string>#1e1e2e</string> + <key>foreground</key> + <string>#cdd6f4</string> + <key>caret</key> + <string>#f5e0dc</string> + <key>lineHighlight</key> + <string>#313244</string> + <key>misspelling</key> + <string>#f38ba8</string> + <key>accent</key> + <string>#cba6f7</string> + <key>selection</key> + <string>#9399b240</string> + <key>activeGuide</key> + <string>#45475a</string> + <key>findHighlight</key> + <string>#3e5767</string> + <key>gutterForeground</key> + <string>#7f849c</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Basic text & variable names (incl. leading punctuation)</string> + <key>scope</key> + <string>text, source, variable.other.readwrite, punctuation.definition.variable</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cdd6f4</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Parentheses, Brackets, Braces</string> + <key>scope</key> + <string>punctuation</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#9399b2</string> + <key>fontStyle</key> + <string/> + </dict> + </dict> + <dict> + <key>name</key> + <string>Comments</string> + <key>scope</key> + <string>comment, punctuation.definition.comment</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#6c7086</string> + <key>fontStyle</key> + <string>italic</string> + </dict> + </dict> + <dict> + <key>scope</key> + <string>string, punctuation.definition.string</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#a6e3a1</string> + </dict> + </dict> + <dict> + <key>scope</key> + <string>constant.character.escape</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f5c2e7</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Booleans, constants, numbers</string> + <key>scope</key> + <string>constant.numeric, variable.other.constant, entity.name.constant, constant.language.boolean, constant.language.false, constant.language.true, keyword.other.unit.user-defined, keyword.other.unit.suffix.floating-point</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#fab387</string> + </dict> + </dict> + <dict> + <key>scope</key> + <string>keyword, keyword.operator.word, keyword.operator.new, variable.language.super, support.type.primitive, storage.type, storage.modifier, punctuation.definition.keyword</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cba6f7</string> + <key>fontStyle</key> + <string/> + </dict> + </dict> + <dict> + <key>scope</key> + <string>entity.name.tag.documentation</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cba6f7</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Punctuation</string> + <key>scope</key> + <string>keyword.operator, punctuation.accessor, punctuation.definition.generic, meta.function.closure punctuation.section.parameters, punctuation.definition.tag, punctuation.separator.key-value</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#94e2d5</string> + </dict> + </dict> + <dict> + <key>scope</key> + <string>entity.name.function, meta.function-call.method, support.function, support.function.misc, variable.function</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#89b4fa</string> + <key>fontStyle</key> + <string>italic</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Classes</string> + <key>scope</key> + <string>entity.name.class, entity.other.inherited-class, support.class, meta.function-call.constructor, entity.name.struct</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f9e2af</string> + <key>fontStyle</key> + <string>italic</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Enum</string> + <key>scope</key> + <string>entity.name.enum</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f9e2af</string> + <key>fontStyle</key> + <string>italic</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Enum member</string> + <key>scope</key> + <string>meta.enum variable.other.readwrite, variable.other.enummember</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#94e2d5</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Object properties</string> + <key>scope</key> + <string>meta.property.object</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#94e2d5</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Types</string> + <key>scope</key> + <string>meta.type, meta.type-alias, support.type, entity.name.type</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f9e2af</string> + <key>fontStyle</key> + <string>italic</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Decorators</string> + <key>scope</key> + <string>meta.annotation variable.function, meta.annotation variable.annotation.function, meta.annotation punctuation.definition.annotation, meta.decorator, punctuation.decorator</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#fab387</string> + </dict> + </dict> + <dict> + <key>scope</key> + <string>variable.parameter, meta.function.parameters</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#eba0ac</string> + <key>fontStyle</key> + <string>italic</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Built-ins</string> + <key>scope</key> + <string>constant.language, support.function.builtin</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f38ba8</string> + </dict> + </dict> + <dict> + <key>scope</key> + <string>entity.other.attribute-name.documentation</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f38ba8</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Preprocessor directives</string> + <key>scope</key> + <string>keyword.control.directive, punctuation.definition.directive</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f9e2af</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Type parameters</string> + <key>scope</key> + <string>punctuation.definition.typeparameters</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#89dceb</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Namespaces</string> + <key>scope</key> + <string>entity.name.namespace</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f9e2af</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Property names (left hand assignments in json/yaml/css)</string> + <key>scope</key> + <string>support.type.property-name.css</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#89b4fa</string> + <key>fontStyle</key> + <string/> + </dict> + </dict> + <dict> + <key>name</key> + <string>This/Self keyword</string> + <key>scope</key> + <string>variable.language.this, variable.language.this punctuation.definition.variable</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f38ba8</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Object properties</string> + <key>scope</key> + <string>variable.object.property</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cdd6f4</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>String template interpolation</string> + <key>scope</key> + <string>string.template variable, string variable</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cdd6f4</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>`new` as bold</string> + <key>scope</key> + <string>keyword.operator.new</string> + <key>settings</key> + <dict> + <key>fontStyle</key> + <string>bold</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>C++ extern keyword</string> + <key>scope</key> + <string>storage.modifier.specifier.extern.cpp</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cba6f7</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>C++ scope resolution</string> + <key>scope</key> + <string>entity.name.scope-resolution.template.call.cpp, entity.name.scope-resolution.parameter.cpp, entity.name.scope-resolution.cpp, entity.name.scope-resolution.function.definition.cpp</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f9e2af</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>C++ doc keywords</string> + <key>scope</key> + <string>storage.type.class.doxygen</string> + <key>settings</key> + <dict> + <key>fontStyle</key> + <string/> + </dict> + </dict> + <dict> + <key>name</key> + <string>C++ operators</string> + <key>scope</key> + <string>storage.modifier.reference.cpp</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#94e2d5</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>C# Interpolated Strings</string> + <key>scope</key> + <string>meta.interpolation.cs</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cdd6f4</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>C# xml-style docs</string> + <key>scope</key> + <string>comment.block.documentation.cs</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cdd6f4</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Classes, reflecting the className color in JSX</string> + <key>scope</key> + <string>source.css entity.other.attribute-name.class.css, entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f9e2af</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Operators</string> + <key>scope</key> + <string>punctuation.separator.operator.css</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#94e2d5</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Pseudo classes</string> + <key>scope</key> + <string>source.css entity.other.attribute-name.pseudo-class</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#94e2d5</string> + </dict> + </dict> + <dict> + <key>scope</key> + <string>source.css constant.other.unicode-range</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#fab387</string> + </dict> + </dict> + <dict> + <key>scope</key> + <string>source.css variable.parameter.url</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#a6e3a1</string> + <key>fontStyle</key> + <string/> + </dict> + </dict> + <dict> + <key>name</key> + <string>CSS vendored property names</string> + <key>scope</key> + <string>support.type.vendored.property-name</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#89dceb</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Less/SCSS right-hand variables (@/$-prefixed)</string> + <key>scope</key> + <string>source.css meta.property-value variable, source.css meta.property-value variable.other.less, source.css meta.property-value variable.other.less punctuation.definition.variable.less, meta.definition.variable.scss</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#eba0ac</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>CSS variables (--prefixed)</string> + <key>scope</key> + <string>source.css meta.property-list variable, meta.property-list variable.other.less, meta.property-list variable.other.less punctuation.definition.variable.less</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#89b4fa</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>CSS Percentage values, styled the same as numbers</string> + <key>scope</key> + <string>keyword.other.unit.percentage.css</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#fab387</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>CSS Attribute selectors, styled the same as strings</string> + <key>scope</key> + <string>source.css meta.attribute-selector</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#a6e3a1</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>JSON/YAML keys, other left-hand assignments</string> + <key>scope</key> + <string>keyword.other.definition.ini, punctuation.support.type.property-name.json, support.type.property-name.json, punctuation.support.type.property-name.toml, support.type.property-name.toml, entity.name.tag.yaml, punctuation.support.type.property-name.yaml, support.type.property-name.yaml</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#89b4fa</string> + <key>fontStyle</key> + <string/> + </dict> + </dict> + <dict> + <key>name</key> + <string>JSON/YAML constants</string> + <key>scope</key> + <string>constant.language.json, constant.language.yaml</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#fab387</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>YAML anchors</string> + <key>scope</key> + <string>entity.name.type.anchor.yaml, variable.other.alias.yaml</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f9e2af</string> + <key>fontStyle</key> + <string/> + </dict> + </dict> + <dict> + <key>name</key> + <string>TOML tables / ini groups</string> + <key>scope</key> + <string>support.type.property-name.table, entity.name.section.group-title.ini</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f9e2af</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>TOML dates</string> + <key>scope</key> + <string>constant.other.time.datetime.offset.toml</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f5c2e7</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>YAML anchor puctuation</string> + <key>scope</key> + <string>punctuation.definition.anchor.yaml, punctuation.definition.alias.yaml</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f5c2e7</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>YAML triple dashes</string> + <key>scope</key> + <string>entity.other.document.begin.yaml</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f5c2e7</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Markup Diff</string> + <key>scope</key> + <string>markup.changed.diff</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#fab387</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Diff</string> + <key>scope</key> + <string>meta.diff.header.from-file, meta.diff.header.to-file, punctuation.definition.from-file.diff, punctuation.definition.to-file.diff</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#89b4fa</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Diff Inserted</string> + <key>scope</key> + <string>markup.inserted.diff</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#a6e3a1</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Diff Deleted</string> + <key>scope</key> + <string>markup.deleted.diff</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f38ba8</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>dotenv left-hand side assignments</string> + <key>scope</key> + <string>variable.other.env</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#89b4fa</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>dotenv reference to existing env variable</string> + <key>scope</key> + <string>string.quoted variable.other.env</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cdd6f4</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>GDScript functions</string> + <key>scope</key> + <string>support.function.builtin.gdscript</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#89b4fa</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>GDScript constants</string> + <key>scope</key> + <string>constant.language.gdscript</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#fab387</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Comment keywords</string> + <key>scope</key> + <string>comment meta.annotation.go</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#eba0ac</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>go:embed, go:build, etc.</string> + <key>scope</key> + <string>comment meta.annotation.parameters.go</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#fab387</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Go constants (nil, true, false)</string> + <key>scope</key> + <string>constant.language.go</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#fab387</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>GraphQL variables</string> + <key>scope</key> + <string>variable.graphql</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cdd6f4</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>GraphQL aliases</string> + <key>scope</key> + <string>string.unquoted.alias.graphql</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f2cdcd</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>GraphQL enum members</string> + <key>scope</key> + <string>constant.character.enum.graphql</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#94e2d5</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>GraphQL field in types</string> + <key>scope</key> + <string>meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f2cdcd</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>HTML/XML DOCTYPE as keyword</string> + <key>scope</key> + <string>keyword.other.doctype, meta.tag.sgml.doctype punctuation.definition.tag, meta.tag.metadata.doctype entity.name.tag, meta.tag.metadata.doctype punctuation.definition.tag</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cba6f7</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>HTML/XML-like <tags/></string> + <key>scope</key> + <string>entity.name.tag</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#89b4fa</string> + <key>fontStyle</key> + <string/> + </dict> + </dict> + <dict> + <key>name</key> + <string>Special characters like &amp;</string> + <key>scope</key> + <string>text.html constant.character.entity, text.html constant.character.entity punctuation, constant.character.entity.xml, constant.character.entity.xml punctuation, constant.character.entity.js.jsx, constant.charactger.entity.js.jsx punctuation, constant.character.entity.tsx, constant.character.entity.tsx punctuation</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f38ba8</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>HTML/XML tag attribute values</string> + <key>scope</key> + <string>entity.other.attribute-name</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f9e2af</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Components</string> + <key>scope</key> + <string>support.class.component, support.class.component.jsx, support.class.component.tsx, support.class.component.vue</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f5c2e7</string> + <key>fontStyle</key> + <string/> + </dict> + </dict> + <dict> + <key>name</key> + <string>Annotations</string> + <key>scope</key> + <string>punctuation.definition.annotation, storage.type.annotation</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#fab387</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Java enums</string> + <key>scope</key> + <string>constant.other.enum.java</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#94e2d5</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Java imports</string> + <key>scope</key> + <string>storage.modifier.import.java</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cdd6f4</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Javadoc</string> + <key>scope</key> + <string>comment.block.javadoc.java keyword.other.documentation.javadoc.java</string> + <key>settings</key> + <dict> + <key>fontStyle</key> + <string/> + </dict> + </dict> + <dict> + <key>name</key> + <string>Exported Variable</string> + <key>scope</key> + <string>meta.export variable.other.readwrite.js</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#eba0ac</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>JS/TS constants & properties</string> + <key>scope</key> + <string>variable.other.constant.js, variable.other.constant.ts, variable.other.property.js, variable.other.property.ts</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cdd6f4</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>JSDoc; these are mainly params, so styled as such</string> + <key>scope</key> + <string>variable.other.jsdoc, comment.block.documentation variable.other</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#eba0ac</string> + <key>fontStyle</key> + <string/> + </dict> + </dict> + <dict> + <key>name</key> + <string>JSDoc keywords</string> + <key>scope</key> + <string>storage.type.class.jsdoc</string> + <key>settings</key> + <dict> + <key>fontStyle</key> + <string/> + </dict> + </dict> + <dict> + <key>scope</key> + <string>support.type.object.console.js</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cdd6f4</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Node constants as keywords (module, etc.)</string> + <key>scope</key> + <string>support.constant.node, support.type.object.module.js</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cba6f7</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>implements as keyword</string> + <key>scope</key> + <string>storage.modifier.implements</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cba6f7</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Builtin types</string> + <key>scope</key> + <string>constant.language.null.js, constant.language.null.ts, constant.language.undefined.js, constant.language.undefined.ts, support.type.builtin.ts</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cba6f7</string> + </dict> + </dict> + <dict> + <key>scope</key> + <string>variable.parameter.generic</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f9e2af</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Arrow functions</string> + <key>scope</key> + <string>keyword.declaration.function.arrow.js, storage.type.function.arrow.ts</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#94e2d5</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Decorator punctuations (decorators inherit from blue functions, instead of styleguide peach)</string> + <key>scope</key> + <string>punctuation.decorator.ts</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#89b4fa</string> + <key>fontStyle</key> + <string>italic</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Extra JS/TS keywords</string> + <key>scope</key> + <string>keyword.operator.expression.in.js, keyword.operator.expression.in.ts, keyword.operator.expression.infer.ts, keyword.operator.expression.instanceof.js, keyword.operator.expression.instanceof.ts, keyword.operator.expression.is, keyword.operator.expression.keyof.ts, keyword.operator.expression.of.js, keyword.operator.expression.of.ts, keyword.operator.expression.typeof.ts</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cba6f7</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Julia macros</string> + <key>scope</key> + <string>support.function.macro.julia</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#94e2d5</string> + <key>fontStyle</key> + <string>italic</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Julia language constants (true, false)</string> + <key>scope</key> + <string>constant.language.julia</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#fab387</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Julia other constants (these seem to be arguments inside arrays)</string> + <key>scope</key> + <string>constant.other.symbol.julia</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#eba0ac</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>LaTeX preamble</string> + <key>scope</key> + <string>text.tex keyword.control.preamble</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#94e2d5</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>LaTeX be functions</string> + <key>scope</key> + <string>text.tex support.function.be</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#89dceb</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>LaTeX math</string> + <key>scope</key> + <string>constant.other.general.math.tex</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f2cdcd</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Lua docstring keywords</string> + <key>scope</key> + <string>comment.line.double-dash.documentation.lua storage.type.annotation.lua</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cba6f7</string> + <key>fontStyle</key> + <string/> + </dict> + </dict> + <dict> + <key>name</key> + <string>Lua docstring variables</string> + <key>scope</key> + <string>comment.line.double-dash.documentation.lua entity.name.variable.lua, comment.line.double-dash.documentation.lua variable.lua</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cdd6f4</string> + </dict> + </dict> + <dict> + <key>scope</key> + <string>heading.1.markdown punctuation.definition.heading.markdown, heading.1.markdown, markup.heading.atx.1.mdx, markup.heading.atx.1.mdx punctuation.definition.heading.mdx, markup.heading.setext.1.markdown, markup.heading.heading-0.asciidoc</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f38ba8</string> + </dict> + </dict> + <dict> + <key>scope</key> + <string>heading.2.markdown punctuation.definition.heading.markdown, heading.2.markdown, markup.heading.atx.2.mdx, markup.heading.atx.2.mdx punctuation.definition.heading.mdx, markup.heading.setext.2.markdown, markup.heading.heading-1.asciidoc</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#fab387</string> + </dict> + </dict> + <dict> + <key>scope</key> + <string>heading.3.markdown punctuation.definition.heading.markdown, heading.3.markdown, markup.heading.atx.3.mdx, markup.heading.atx.3.mdx punctuation.definition.heading.mdx, markup.heading.heading-2.asciidoc</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f9e2af</string> + </dict> + </dict> + <dict> + <key>scope</key> + <string>heading.4.markdown punctuation.definition.heading.markdown, heading.4.markdown, markup.heading.atx.4.mdx, markup.heading.atx.4.mdx punctuation.definition.heading.mdx, markup.heading.heading-3.asciidoc</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#a6e3a1</string> + </dict> + </dict> + <dict> + <key>scope</key> + <string>heading.5.markdown punctuation.definition.heading.markdown, heading.5.markdown, markup.heading.atx.5.mdx, markup.heading.atx.5.mdx punctuation.definition.heading.mdx, markup.heading.heading-4.asciidoc</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#89b4fa</string> + </dict> + </dict> + <dict> + <key>scope</key> + <string>heading.6.markdown punctuation.definition.heading.markdown, heading.6.markdown, markup.heading.atx.6.mdx, markup.heading.atx.6.mdx punctuation.definition.heading.mdx, markup.heading.heading-5.asciidoc</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cba6f7</string> + </dict> + </dict> + <dict> + <key>scope</key> + <string>markup.bold</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f38ba8</string> + <key>fontStyle</key> + <string>bold</string> + </dict> + </dict> + <dict> + <key>scope</key> + <string>markup.italic</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f38ba8</string> + <key>fontStyle</key> + <string>italic</string> + </dict> + </dict> + <dict> + <key>scope</key> + <string>markup.strikethrough</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#a6adc8</string> + <key>fontStyle</key> + <string>strikethrough</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Markdown auto links</string> + <key>scope</key> + <string>punctuation.definition.link, markup.underline.link</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#89b4fa</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Markdown links</string> + <key>scope</key> + <string>text.html.markdown punctuation.definition.link.title, string.other.link.title.markdown, markup.link, punctuation.definition.constant.markdown, constant.other.reference.link.markdown, markup.substitution.attribute-reference</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#b4befe</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Markdown code spans</string> + <key>scope</key> + <string>punctuation.definition.raw.markdown, markup.inline.raw.string.markdown, markup.raw.block.markdown</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#a6e3a1</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Markdown triple backtick language identifier</string> + <key>scope</key> + <string>fenced_code.block.language</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#89dceb</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Markdown triple backticks</string> + <key>scope</key> + <string>markup.fenced_code.block punctuation.definition, markup.raw support.asciidoc</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#9399b2</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Markdown quotes</string> + <key>scope</key> + <string>markup.quote, punctuation.definition.quote.begin</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f5c2e7</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Markdown separators</string> + <key>scope</key> + <string>meta.separator.markdown</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#94e2d5</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Markdown list bullets</string> + <key>scope</key> + <string>punctuation.definition.list.begin.markdown, markup.list.bullet</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#94e2d5</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Nix attribute names</string> + <key>scope</key> + <string>entity.other.attribute-name.multipart.nix, entity.other.attribute-name.single.nix</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#89b4fa</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Nix parameter names</string> + <key>scope</key> + <string>variable.parameter.name.nix</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cdd6f4</string> + <key>fontStyle</key> + <string/> + </dict> + </dict> + <dict> + <key>name</key> + <string>Nix interpolated parameter names</string> + <key>scope</key> + <string>meta.embedded variable.parameter.name.nix</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#b4befe</string> + <key>fontStyle</key> + <string/> + </dict> + </dict> + <dict> + <key>name</key> + <string>Nix paths</string> + <key>scope</key> + <string>string.unquoted.path.nix</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f5c2e7</string> + <key>fontStyle</key> + <string/> + </dict> + </dict> + <dict> + <key>name</key> + <string>PHP Attributes</string> + <key>scope</key> + <string>support.attribute.builtin, meta.attribute.php</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f9e2af</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>PHP Parameters (needed for the leading dollar sign)</string> + <key>scope</key> + <string>meta.function.parameters.php punctuation.definition.variable.php</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#eba0ac</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>PHP Constants (null, __FILE__, etc.)</string> + <key>scope</key> + <string>constant.language.php</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cba6f7</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>PHP functions</string> + <key>scope</key> + <string>text.html.php support.function</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#89dceb</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>PHPdoc keywords</string> + <key>scope</key> + <string>keyword.other.phpdoc.php</string> + <key>settings</key> + <dict> + <key>fontStyle</key> + <string/> + </dict> + </dict> + <dict> + <key>name</key> + <string>Python argument functions reset to text, otherwise they inherit blue from function-call</string> + <key>scope</key> + <string>support.variable.magic.python, meta.function-call.arguments.python</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cdd6f4</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Python double underscore functions</string> + <key>scope</key> + <string>support.function.magic.python</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#89dceb</string> + <key>fontStyle</key> + <string>italic</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Python `self` keyword</string> + <key>scope</key> + <string>variable.parameter.function.language.special.self.python, variable.language.special.self.python</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f38ba8</string> + <key>fontStyle</key> + <string>italic</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>python keyword flow/logical (for ... in)</string> + <key>scope</key> + <string>keyword.control.flow.python, keyword.operator.logical.python</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cba6f7</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>python storage type</string> + <key>scope</key> + <string>storage.type.function.python</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cba6f7</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>python function support</string> + <key>scope</key> + <string>support.token.decorator.python, meta.function.decorator.identifier.python</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#89dceb</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>python function calls</string> + <key>scope</key> + <string>meta.function-call.python</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#89b4fa</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>python function decorators</string> + <key>scope</key> + <string>entity.name.function.decorator.python, punctuation.definition.decorator.python</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#fab387</string> + <key>fontStyle</key> + <string>italic</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>python placeholder reset to normal string</string> + <key>scope</key> + <string>constant.character.format.placeholder.other.python</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f5c2e7</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Python exception & builtins such as exit()</string> + <key>scope</key> + <string>support.type.exception.python, support.function.builtin.python</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#fab387</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>entity.name.type</string> + <key>scope</key> + <string>support.type.python</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#fab387</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>python constants (True/False)</string> + <key>scope</key> + <string>constant.language.python</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cba6f7</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Arguments accessed later in the function body</string> + <key>scope</key> + <string>meta.indexed-name.python, meta.item-access.python</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#eba0ac</string> + <key>fontStyle</key> + <string>italic</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Python f-strings/binary/unicode storage types</string> + <key>scope</key> + <string>storage.type.string.python</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#a6e3a1</string> + <key>fontStyle</key> + <string>italic</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Python type hints</string> + <key>scope</key> + <string>meta.function.parameters.python</string> + <key>settings</key> + <dict> + <key>fontStyle</key> + <string/> + </dict> + </dict> + <dict> + <key>name</key> + <string>Regex string begin/end in JS/TS</string> + <key>scope</key> + <string>string.regexp punctuation.definition.string.begin, string.regexp punctuation.definition.string.end</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f5c2e7</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Regex anchors (^, $)</string> + <key>scope</key> + <string>keyword.control.anchor.regexp</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cba6f7</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Regex regular string match</string> + <key>scope</key> + <string>string.regexp.ts</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cdd6f4</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Regex group parenthesis & backreference (\1, \2, \3, ...)</string> + <key>scope</key> + <string>punctuation.definition.group.regexp, keyword.other.back-reference.regexp</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#a6e3a1</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Regex character class []</string> + <key>scope</key> + <string>punctuation.definition.character-class.regexp</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f9e2af</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Regex character classes (\d, \w, \s)</string> + <key>scope</key> + <string>constant.other.character-class.regexp</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f5c2e7</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Regex range</string> + <key>scope</key> + <string>constant.other.character-class.range.regexp</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f5e0dc</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Regex quantifier</string> + <key>scope</key> + <string>keyword.operator.quantifier.regexp</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#94e2d5</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Regex constant/numeric</string> + <key>scope</key> + <string>constant.character.numeric.regexp</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#fab387</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Regex lookaheads, negative lookaheads, lookbehinds, negative lookbehinds</string> + <key>scope</key> + <string>punctuation.definition.group.no-capture.regexp, meta.assertion.look-ahead.regexp, meta.assertion.negative-look-ahead.regexp</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#89b4fa</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Rust attribute</string> + <key>scope</key> + <string>meta.annotation.rust, meta.annotation.rust punctuation, meta.attribute.rust, punctuation.definition.attribute.rust</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f9e2af</string> + <key>fontStyle</key> + <string>italic</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Rust attribute strings</string> + <key>scope</key> + <string>meta.attribute.rust string.quoted.double.rust, meta.attribute.rust string.quoted.single.char.rust</string> + <key>settings</key> + <dict> + <key>fontStyle</key> + <string/> + </dict> + </dict> + <dict> + <key>name</key> + <string>Rust keyword</string> + <key>scope</key> + <string>entity.name.function.macro.rules.rust, storage.type.module.rust, storage.modifier.rust, storage.type.struct.rust, storage.type.enum.rust, storage.type.trait.rust, storage.type.union.rust, storage.type.impl.rust, storage.type.rust, storage.type.function.rust, storage.type.type.rust</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cba6f7</string> + <key>fontStyle</key> + <string/> + </dict> + </dict> + <dict> + <key>name</key> + <string>Rust u/i32, u/i64, etc.</string> + <key>scope</key> + <string>entity.name.type.numeric.rust</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cba6f7</string> + <key>fontStyle</key> + <string/> + </dict> + </dict> + <dict> + <key>name</key> + <string>Rust generic</string> + <key>scope</key> + <string>meta.generic.rust</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#fab387</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Rust impl</string> + <key>scope</key> + <string>entity.name.impl.rust</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f9e2af</string> + <key>fontStyle</key> + <string>italic</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Rust module</string> + <key>scope</key> + <string>entity.name.module.rust</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#fab387</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Rust trait</string> + <key>scope</key> + <string>entity.name.trait.rust</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f9e2af</string> + <key>fontStyle</key> + <string>italic</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Rust struct</string> + <key>scope</key> + <string>storage.type.source.rust</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f9e2af</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Rust union</string> + <key>scope</key> + <string>entity.name.union.rust</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f9e2af</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Rust enum member</string> + <key>scope</key> + <string>meta.enum.rust storage.type.source.rust</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#94e2d5</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Rust macro</string> + <key>scope</key> + <string>support.macro.rust, meta.macro.rust support.function.rust, entity.name.function.macro.rust</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#89b4fa</string> + <key>fontStyle</key> + <string>italic</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Rust lifetime</string> + <key>scope</key> + <string>storage.modifier.lifetime.rust, entity.name.type.lifetime</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#89b4fa</string> + <key>fontStyle</key> + <string>italic</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Rust string formatting</string> + <key>scope</key> + <string>string.quoted.double.rust constant.other.placeholder.rust</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f5c2e7</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Rust return type generic</string> + <key>scope</key> + <string>meta.function.return-type.rust meta.generic.rust storage.type.rust</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cdd6f4</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Rust functions</string> + <key>scope</key> + <string>meta.function.call.rust</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#89b4fa</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Rust angle brackets</string> + <key>scope</key> + <string>punctuation.brackets.angle.rust</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#89dceb</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Rust constants</string> + <key>scope</key> + <string>constant.other.caps.rust</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#fab387</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Rust function parameters</string> + <key>scope</key> + <string>meta.function.definition.rust variable.other.rust</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#eba0ac</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Rust closure variables</string> + <key>scope</key> + <string>meta.function.call.rust variable.other.rust</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cdd6f4</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Rust self</string> + <key>scope</key> + <string>variable.language.self.rust</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f38ba8</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Rust metavariable names</string> + <key>scope</key> + <string>variable.other.metavariable.name.rust, meta.macro.metavariable.rust keyword.operator.macro.dollar.rust</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f5c2e7</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Shell shebang</string> + <key>scope</key> + <string>comment.line.shebang, comment.line.shebang punctuation.definition.comment, comment.line.shebang, punctuation.definition.comment.shebang.shell, meta.shebang.shell</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f5c2e7</string> + <key>fontStyle</key> + <string>italic</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Shell shebang command</string> + <key>scope</key> + <string>comment.line.shebang constant.language</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#94e2d5</string> + <key>fontStyle</key> + <string>italic</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Shell interpolated command</string> + <key>scope</key> + <string>meta.function-call.arguments.shell punctuation.definition.variable.shell, meta.function-call.arguments.shell punctuation.section.interpolation, meta.function-call.arguments.shell punctuation.definition.variable.shell, meta.function-call.arguments.shell punctuation.section.interpolation</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f38ba8</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Shell interpolated command variable</string> + <key>scope</key> + <string>meta.string meta.interpolation.parameter.shell variable.other.readwrite</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#fab387</string> + <key>fontStyle</key> + <string>italic</string> + </dict> + </dict> + <dict> + <key>scope</key> + <string>source.shell punctuation.section.interpolation, punctuation.definition.evaluation.backticks.shell</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#94e2d5</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Shell EOF</string> + <key>scope</key> + <string>entity.name.tag.heredoc.shell</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cba6f7</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Shell quoted variable</string> + <key>scope</key> + <string>string.quoted.double.shell variable.other.normal.shell</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cdd6f4</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>JSON Keys</string> + <key>scope</key> + <string>source.json meta.mapping.key string</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#89b4fa</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>JSON key surrounding quotes</string> + <key>scope</key> + <string>source.json meta.mapping.key punctuation.definition.string.begin, source.json meta.mapping.key punctuation.definition.string.end</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#9399b2</string> + </dict> + </dict> + <dict> + <key>scope</key> + <string>markup.heading.synopsis.man, markup.heading.title.man, markup.heading.other.man, markup.heading.env.man</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#cba6f7</string> + </dict> + </dict> + <dict> + <key>scope</key> + <string>markup.heading.commands.man</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#89b4fa</string> + </dict> + </dict> + <dict> + <key>scope</key> + <string>markup.heading.env.man</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f5c2e7</string> + </dict> + </dict> + <dict> + <key>name</key> + <string>Man page options</string> + <key>scope</key> + <string>entity.name</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#94e2d5</string> + </dict> + </dict> + <dict> + <key>scope</key> + <string>markup.heading.1.markdown</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f38ba8</string> + </dict> + </dict> + <dict> + <key>scope</key> + <string>markup.heading.2.markdown</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#fab387</string> + </dict> + </dict> + <dict> + <key>scope</key> + <string>markup.heading.markdown</string> + <key>settings</key> + <dict> + <key>foreground</key> + <string>#f9e2af</string> + </dict> + </dict> + </array> + </dict> +</plist>
\ No newline at end of file diff --git a/.config/betterlockscreen/betterlockscreenrc b/.config/betterlockscreen/betterlockscreenrc deleted file mode 100644 index cd9a6db..0000000 --- a/.config/betterlockscreen/betterlockscreenrc +++ /dev/null @@ -1,50 +0,0 @@ -# ~/.config/betterlockscreenrc - -# default options -display_on=0 -span_image=false -lock_timeout=300 -fx_list=(dim blur dimblur pixel dimpixel color) -dim_level=40 -blur_level=1 -pixel_scale=10,1000 -solid_color=333333 -wallpaper_cmd="feh --bg-fill" -quiet=true - -# default theme -loginbox=00000066 -loginshadow=00000000 -locktext="UwU may I has ur password" -font="sans-serif" -ringcolor=C678DDff -insidecolor=00000000 -separatorcolor=00000000 -ringvercolor=FB6F92ff -insidevercolor=00000000 -ringwrongcolor=FB6F92ff -insidewrongcolor=00000000 -timecolor=ffffffff -time_format="%H:%M:%S" -greetercolor=ffffffff -layoutcolor=C678DDff -keyhlcolor=C678DDff -bshlcolor=C678DDff -veriftext="" # "aanh ur password is shooo big" -verifcolor=ffffffff -wrongtext="you are not my senpai" -wrongcolor=FB6F92ff -modifcolor=FB6F92ff -bgcolor=000000ff - - -# -# expert options (change at own risk!) -# - -# i3lockcolor_bin="i3lock-color" # Manually set command for i3lock-color -# suspend_command="systemctl suspend" # Manually change action e.g. hibernate/suspend-command - -# i3lock-color - custom arguments -# lockargs=() # overwriting default "(-n)" -# lockargs+=(--ignore-empty-password) # appending new argument diff --git a/.config/doom/config.el b/.config/doom/config.el index 2388d3b..00502ef 100644 --- a/.config/doom/config.el +++ b/.config/doom/config.el @@ -35,7 +35,12 @@ (setq doom-font "Source Code Pro:size=16") -(setq doom-theme 'doom-one) +;(setq doom-theme 'doom-one) +(setq doom-theme 'catppuccin) + +; transparent background +(set-frame-parameter nil 'alpha-background 85) +(add-to-list 'default-frame-alist '(alpha-background . 85)) ;; This determines the style of line numbers in effect. If set to `nil', line ;; numbers are disabled. For relative line numbers, set this to `relative'. diff --git a/.config/doom/packages.el b/.config/doom/packages.el index 364e6e9..ead1529 100644 --- a/.config/doom/packages.el +++ b/.config/doom/packages.el @@ -1,3 +1,5 @@ +(package! catppuccin-theme) + ;; -*- no-byte-compile: t; -*- ;;; $DOOMDIR/packages.el diff --git a/.config/fish/config.fish b/.config/fish/config.fish index 46d9e35..5e21637 100644 --- a/.config/fish/config.fish +++ b/.config/fish/config.fish @@ -22,7 +22,9 @@ if status is-interactive set -x RUST_SRC_PATH $HOME/.cargo set -x GOPATH $HOME/.gopath - set -x QT_QPA_PLATFORMTHEME "gtk2" + + set -x QT_QPA_PLATFORMTHEME "qt5ct" + set -x QT_QPA_PLATFORMTHEME_QT6 "qt6ct" # PATH for different languages fish_add_path $GOPATH/bin @@ -43,5 +45,5 @@ if status is-interactive # disable greeting set fish_greeting fish_ssh_agent - cowsay -f sus "amogus" | lolcat + cowsay -f sus "kernel panic? Or was it sabotage?" | lolcat end diff --git a/.config/lemon.go b/.config/lemon.go deleted file mode 100644 index f873d2b..0000000 --- a/.config/lemon.go +++ /dev/null @@ -1,212 +0,0 @@ -package main - -import ( - "bufio" - "fmt" - "os" - "time" - "golang.org/x/sys/unix" - "os/exec" - "strconv" - "strings" - "io/ioutil" -) - -var ( - data, connectedWiFi, memPercentage, cpuTemp, cpuPercentage, volumeLevel string - batteryLevel, chargingStatus string - text string = "\n" - moduleColor0, moduleColor1 string = "#9b1bed", "#ff0aa3" -) - -func dataLoop() { - for { - data = getData() - time.Sleep(time.Second / 10) - } -} - -func stdinLoop() { - reader := bufio.NewReader(os.Stdin) - for { - text, _ = reader.ReadString('\n') - } -} - -// to update modules every 5 seconds -func fiveSecLoop() { - for { - memPercentage = getMemUsage() - cpuTemp = getCPUTemp() - cpuPercentage = getCPUUsage() - - time.Sleep(time.Second * 5) - } -} - -// to update modules every 10 seconds -func tenSecLoop() { - for { - connectedWiFi = getWiFiName() - chargingStatus, batteryLevel = getBatteryInfo() - - time.Sleep(time.Second * 10) - } -} - -// very creative name -// used to update modules like volume, etc -// don't want lag on those modules! -func veryFastLoop() { - for { - volumeLevel = getVolumeLevel() - time.Sleep(time.Second / 10) - } -} - -func main() { - go dataLoop() - go stdinLoop() - go fiveSecLoop() - go tenSecLoop() - go veryFastLoop() - - for { - fmt.Print(data + text) - time.Sleep(time.Second / 10) - } -} - -func getData() string { - time := "%{F" + moduleColor0 + "} " + getTime() + "%{F-} " - wifiName := "%{F" + moduleColor1 + "} WiFI: " + connectedWiFi + "%{F-} " - rootFree := "%{F" + moduleColor0 + "} / " + getDisk("/") + "%%{F-} " - homeFree := "%{F" + moduleColor1 + "} /home " + getDisk("/home") + "%%{F-} " - hddFree := "%{F" + moduleColor0 + "} /hdd " + getDisk("/hdd") + "%%{F-} " - cpuUsage := "%{F" + moduleColor1 + "} CPU: " + cpuPercentage + "%%{F-} " - cpuTemp := "%{F" + moduleColor0 + "} TEMP: " + cpuTemp + "%{F-} " - memUsage := "%{F" + moduleColor1 + "} MEM: " + memPercentage + "%{F-} " - - volume := "%{F" + moduleColor0 + "}" - if volumeLevel != "muted" { - volume = volume + "} VOL: " + volumeLevel + "%{F-} " - } else { - volume = volume + "} MUTED%{F-} " - } - - // shows battery level in different color - // depending on charging status - // hidden when full - var battery string - btlvl, _ := strconv.Atoi(batteryLevel) - if btlvl < 100 { - col := moduleColor1 - if chargingStatus == "Charging" { col = moduleColor0 } - battery = fmt.Sprintf("%%{F%s} BATT: %s%%{F-} ", col, batteryLevel) - } - - // TODO add brightness (new) - return time + wifiName + rootFree + homeFree + hddFree + cpuUsage + cpuTemp + "%{r}" + memUsage + battery -} - -func getWiFiName() string { - // script located in ~/.scripts/ - // look at github.com/MikunoNaka/dots - cmd := exec.Command("get_wifi_name.sh") - name, _ := cmd.Output() - return string(name) -} - -func getMemUsage() string { - // script located in ~/.scripts/ - // look at github.com/MikunoNaka/dots - cmd := exec.Command("ram_usage.sh") - usage, _ := cmd.Output() - return string(usage) -} - - -func getCPUTemp() string { - // script located in ~/.scripts/ - // look at github.com/MikunoNaka/dots - cmd := exec.Command("cpu_temp.sh") - temp, _ := cmd.Output() - return string(temp) -} - -func getVolumeLevel() string { - // script located in ~/.scripts/ - // look at github.com/MikunoNaka/dots - cmd := exec.Command("volume_level.sh") - level, _ := cmd.Output() - return string(level) -} - -func getBatteryInfo() (string, string) { - // scripts located in ~/.scripts/ - // look at github.com/MikunoNaka/dots - statCmd := exec.Command("charging_status.sh") - stat, _ := statCmd.Output() - - levelCmd := exec.Command("battery_level.sh") - level, _ := levelCmd.Output() - - return string(stat), string(level) -} - -// TODO: maybe add dates on click -func getTime() string { - now := time.Now() - return now.Format(" 3:04 PM") -} - -// TODO: maybe show percentages instead of free space -func getDisk(mountPoint string) string { - var stat unix.Statfs_t - unix.Statfs(mountPoint, &stat) - - // this is witchcraft. I wrote this but I have -10000 idea how AND IF it works - totalSize := float64(stat.Blocks) * float64(stat.Bsize) / 1073741824 - usedSpace := float64(stat.Bfree) * float64(stat.Bsize) / 1073741824 - - return strconv.FormatFloat((100 - (usedSpace / totalSize) * 100), 'f', 0, 64) -} - -func getCPUSample() (idle, total uint64) { - contents, err := ioutil.ReadFile("/proc/stat") - if err != nil { - return - } - lines := strings.Split(string(contents), "\n") - for _, line := range(lines) { - fields := strings.Fields(line) - if fields[0] == "cpu" { - numFields := len(fields) - for i := 1; i < numFields; i++ { - val, err := strconv.ParseUint(fields[i], 10, 64) - if err != nil { - fmt.Println("Error: ", i, fields[i], err) - } - total += val // tally up all the numbers to get total ticks - if i == 4 { // idle is the 5th field in the cpu line - idle = val - } - } - return - } - } - return -} - -func getCPUUsage() string { - idle0, total0 := getCPUSample() - time.Sleep(3 * time.Second) - idle1, total1 := getCPUSample() - - idleTicks := float64(idle1 - idle0) - totalTicks := float64(total1 - total0) - cpuUsage := 100 * (totalTicks - idleTicks) / totalTicks - - return strconv.Itoa(int(cpuUsage)) -} - diff --git a/.config/lemonblocks/config.txt b/.config/lemonblocks/config.txt deleted file mode 100644 index 62991c3..0000000 --- a/.config/lemonblocks/config.txt +++ /dev/null @@ -1,5 +0,0 @@ -0,5,NULL,/usr/bin/lbscripts/volume.sh,r,NULL,130F23,fe6c69,pamixer -t; killall lemonblocks -5,NULL,pavucontrol && killall lemonblocks -5,pamixer -i 5; killall lemonblocks -5,pamixer -d 5; killall lemonblocks -5, , -5,4,NULL,/usr/bin/lbscripts/cpu_temp.sh,r,NULL,130F23,1045cc,NULL,NULL,NULL,NULL,NULL, , -5,3,NULL,/usr/bin/lbscripts/cpu_load.sh,r,NULL,130F23,7410cc,st -e htop,NULL,NULL,NULL,NULL, , -5,2,NULL,/usr/bin/lbscripts/mem_usage.sh,r,NULL,130F23,10cc8e,NULL,NULL,NULL,NULL,NULL, , -30,1,NULL,/usr/bin/lbscripts/date.sh,r,NULL,130F23,6C71C4,NULL,NULL,NULL,NULL,NULL, , diff --git a/.config/lemonblocks/modules/cpu_load.sh b/.config/lemonblocks/modules/cpu_load.sh deleted file mode 100755 index 1a677a9..0000000 --- a/.config/lemonblocks/modules/cpu_load.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -read cpu a b c previdle rest < /proc/stat -prevtotal=$((a+b+c+previdle)) -sleep 0.5 -read cpu a b c idle rest < /proc/stat -total=$((a+b+c+idle)) -cpu=$((100*( (total-prevtotal) - (idle-previdle) ) / (total-prevtotal) )) - -printf " CPU:%s%% " $cpu diff --git a/.config/lemonblocks/modules/cpu_temp.sh b/.config/lemonblocks/modules/cpu_temp.sh deleted file mode 100755 index a5286ad..0000000 --- a/.config/lemonblocks/modules/cpu_temp.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash -CEL=$'\xc2\xb0C' -temp=$( cat /sys/devices/virtual/thermal/thermal_zone0/temp ) -temp=`expr $temp / 1000` -printf " TEMP:$temp$CEL " diff --git a/.config/lemonblocks/modules/date.sh b/.config/lemonblocks/modules/date.sh deleted file mode 100755 index dcd0681..0000000 --- a/.config/lemonblocks/modules/date.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -date=$(date +"%d %b(%A) %H:%M") -printf " $date " diff --git a/.config/lemonblocks/modules/mem_usage.sh b/.config/lemonblocks/modules/mem_usage.sh deleted file mode 100755 index 6b939eb..0000000 --- a/.config/lemonblocks/modules/mem_usage.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -mem=$(free -m | grep Mem: | awk '{print$3 / $2 * 100}') -printf " MEM: %.0f%% " $mem diff --git a/.config/lemonblocks/modules/volume.sh b/.config/lemonblocks/modules/volume.sh deleted file mode 100755 index a0843dd..0000000 --- a/.config/lemonblocks/modules/volume.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -printf " VOL:$(pamixer --get-volume-human)% " -# if [ $volume_level == "muted" ]; then - # printf "%{F#ff0058}VOL: $(pamixer --get-volume)%{F-}" -# else - # printf "VOL: $volume_level" -# fi - diff --git a/.config/lemonblocks/start.sh b/.config/lemonblocks/start.sh deleted file mode 100755 index 0537b89..0000000 --- a/.config/lemonblocks/start.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/bash - -CLICKABLE_AREAS=8 -PANEL_WIDTH=566 -PANEL_HEIGHT=21 -PANEL_HORIZONTAL_OFFSET=800 -PANEL_VERTICAL_OFFSET=0 -PANEL_FONT="Source Han Sans JP:size=10" -PANEL_ICON_FONT="RobotoMono Nerd Font:style=Regular:size=15" -COLOR_DEFAULT_FG="#FFFFFF" -COLOR_DEFAULT_BG="#171520" -UNDERLINE_HEIGHT=3 -PANEL_WM_NAME="lemon" - -# Kill potential instances of lemonblocks -#killall "lemonbar" -killall "lemonblocks" - -# Make sure the named pipe already exists -mkfifo /tmp/lemonblockspipe - -# start xmonad status lemonbar -# Start lemonbar -cat "/tmp/lemonblockspipe" | lemonbar -b -a "$CLICKABLE_AREAS" \ - -g "$PANEL_WIDTH"x"$PANEL_HEIGHT"+"$PANEL_HORIZONTAL_OFFSET"+"$PANEL_VERTICAL_OFFSET" \ - -o -3 -f "$PANEL_FONT" -o 0 -f "$PANEL_ICON_FONT" -F "$COLOR_DEFAULT_FG" -B "$COLOR_DEFAULT_BG" \ - -u "$UNDERLINE_HEIGHT" -n "$PANEL_WM_NAME" | bash & - -sleep 0.5 - -# Make sure lemonbar is hidden below a fullscreen window -## Bspwm -# wid=$(xdo id -a "$PANEL_WM_NAME") -# xdo above -t "$(xdo id -N Bspwm -n root | sort | head -n 1)" "$wid" - -if [ $# -eq 0 ] -then - lemonblocks -else - ./bin/lemonblocks -fi diff --git a/.config/luastatus-scripts-dwm/alsa-gauge.lua b/.config/luastatus-scripts-dwm/alsa-gauge.lua new file mode 100644 index 0000000..966e625 --- /dev/null +++ b/.config/luastatus-scripts-dwm/alsa-gauge.lua @@ -0,0 +1,18 @@ +local GAUGE_NCHARS = 10 + +local function mk_gauge(level, full, empty) + local nfull = math.floor(level * GAUGE_NCHARS + 0.5) + return full:rep(nfull) .. empty:rep(GAUGE_NCHARS - nfull) +end + +widget = { + plugin = 'alsa', + cb = function(t) + local level = (t.vol.cur - t.vol.min) / (t.vol.max - t.vol.min) + if t.mute then + return mk_gauge(level, '×', '—') + else + return mk_gauge(level, '●', '○') + end + end, +} diff --git a/.config/luastatus-scripts-dwm/alsa.lua b/.config/luastatus-scripts-dwm/alsa.lua new file mode 100644 index 0000000..054a806 --- /dev/null +++ b/.config/luastatus-scripts-dwm/alsa.lua @@ -0,0 +1,11 @@ +widget = { + plugin = 'alsa', + cb = function(t) + if t.mute then + return '[mute]' + else + local percent = (t.vol.cur - t.vol.min) / (t.vol.max - t.vol.min) * 100 + return string.format('[%3d%%]', math.floor(0.5 + percent)) + end + end, +} diff --git a/.config/luastatus-scripts-dwm/backlight.lua b/.config/luastatus-scripts-dwm/backlight.lua new file mode 100644 index 0000000..37267ed --- /dev/null +++ b/.config/luastatus-scripts-dwm/backlight.lua @@ -0,0 +1,18 @@ +-- Note that this widget only shows backlight level when it changes. +widget = luastatus.require_plugin('backlight-linux').widget{ + cb = function(level) + if level ~= nil then + local brightness = level * 100 + + local icon = "" + if brightness < 30 then + icon = "" + elseif brightness < 70 then + icon = "" + end + + io.write(level * 100) + return string.format(' %s %3.0f%%', icon, brightness) + end + end, +} diff --git a/.config/luastatus-scripts-dwm/battery.lua b/.config/luastatus-scripts-dwm/battery.lua new file mode 100644 index 0000000..377a30e --- /dev/null +++ b/.config/luastatus-scripts-dwm/battery.lua @@ -0,0 +1,53 @@ +widget = luastatus.require_plugin('battery-linux').widget{ + period = 2, + cb = function(t) + icon = "" + if t.status == "Discharging" then + if t.capacity < 10 then + icon = "" + elseif t.capacity < 20 then + icon = "" + elseif t.capacity < 30 then + icon = "" + elseif t.capacity < 40 then + icon = "" + elseif t.capacity < 50 then + icon = "" + elseif t.capacity < 60 then + icon = "" + elseif t.capacity < 70 then + icon = "" + elseif t.capacity < 80 then + icon = "" + elseif t.capacity < 90 then + icon = "" + else + icon = "" + end + else + if t.capacity < 10 then + icon = "" + elseif t.capacity < 20 then + icon = "" + elseif t.capacity < 30 then + icon = "" + elseif t.capacity < 40 then + icon = "" + elseif t.capacity < 50 then + icon = "" + elseif t.capacity < 60 then + icon = "" + elseif t.capacity < 70 then + icon = "" + elseif t.capacity < 80 then + icon = "" + elseif t.capacity < 90 then + icon = "" + else + icon = "" + end + end + + return string.format('%s %3d%% ', icon, t.capacity) + end, +} diff --git a/.config/luastatus-scripts-dwm/bluetooth.lua b/.config/luastatus-scripts-dwm/bluetooth.lua new file mode 100644 index 0000000..baf4b8c --- /dev/null +++ b/.config/luastatus-scripts-dwm/bluetooth.lua @@ -0,0 +1,178 @@ +-- A widget to display currently connected and paired bluetooth devices. +-- To change output format modify reprint_devices function. + +separator = " " + +-- Object paths look like /org/bluez/hci0/dev_XX_XX_XX_XX_XX_XX/somethingsomething +function get_device_mac_address(device_object_path) + return device_object_path:gsub("/.*/dev_", ""):gsub("/.*", ""):gsub("_", ":") +end + +-- For reference bluetoothctl devices output looks like that: +-- Device XX:XX:XX:XX:XX:XX JBL T450BT +-- Device YY:YY:YY:YY:YY:YY Redmi 8 +-- +-- Function returns mac addresses of all devices. +function get_devices() + local devices = {} + local handle = io.popen(string.format("bluetoothctl devices")) + for line in handle:lines() do + table.insert(devices, string.match(line, "Device ([%x:]+)")) + end + handle:close() + return devices +end + +function get_power_state() + local handle = io.popen(string.format("bluetoothctl show")) + local power_state = false + for line in handle:lines() do + local state = string.match(line, "^%s*PowerState:%s*(%w+)") + if state then + if state == "off" then + power_state = false + else + power_state = true + end + break + end + end + handle:close() + + return power_state +end + +-- For reference bluetoothctl info output looks like that: +-- Device XX:XX:XX:XX:XX:XX (public) +-- Name: JBL T450BT +-- Alias: JBL T450BT +-- Class: 0xFFFFFFFF +-- Icon: audio-card +-- Paired: yes +-- Trusted: yes +-- Blocked: no +-- Connected: yes +-- LegacyPairing: no +-- UUID: Headset (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) +-- ... +-- UUID: Handsfree (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) +-- +-- Given this input function returns a following table: +-- [alias] string JBL T450BT +-- [blocked] boolean false +-- [class] string 0x00240404 +-- [connected] boolean true +-- [icon] string audio +-- [legacypairing] boolean false +-- [name] string JBL T450BT +-- [paired] boolean true +-- [trusted] boolean true +function get_device_info(mac_address) + if mac_address == nil then + mac_address = "" + end + local device_info = {} + local handle = io.popen(string.format("bluetoothctl info %s", mac_address)) + for line in handle:lines() do + local key, value = string.match(line, "(%w+): (.*)") + -- Filter junk + if key ~= "UUID" and key ~= nil and value ~= nil then + key = string.lower(key) + if key ~= "name" and key ~= "alias" and key ~= "icon" then + if value == "yes" then + value = true + end + if value == "no" then + value = false + end + end + device_info[key] = value + end + end + handle:close() + return device_info +end + +devices = {} + +function reprint_devices(power_state) + if power_state then + local t = {} + for mac_address, device in pairs(devices) do + -- table.insert(t, string.format(" %s", device["alias"])) + return " " + end + if next(t) == nil then + return "" + else + return table.concat(t, separator) + end + else + return "" + end +end + +widget = { + plugin = "dbus", + opts = { + greet = true, + -- https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/device-api.txt + signals = { + { + sender = "org.bluez", + interface = "org.freedesktop.DBus.Properties", + signal = "PropertiesChanged", + arg0 = "org.bluez.Device1", + bus = "system" + }, { + sender = "org.bluez", + interface = "org.freedesktop.DBus.Properties", + signal = "PropertiesChanged", + arg0 = "org.bluez.Adapter1", + bus = "system" + } + } + }, + cb = function(t) + local power_state = false + if t.what == "hello" then + power_state = get_power_state() + local mac_addresses = get_devices() + for i, mac_address in pairs(mac_addresses) do + local device = get_device_info(mac_address) + if device["connected"] and device["paired"] then + devices[mac_address] = device + end + end + elseif t.what == "signal" then + -- For reference message from dbus looks like that: + -- table + -- [1] string org.bluez.Device1 + -- [2] table + -- [2] [1] table + -- [2] [1] [1] string SomethingSomething + -- [2] [1] [2] boolean false + -- [2] [2] table + -- [2] [2] [1] string Connected + -- [2] [2] [2] boolean true + -- [3] table + if t.signal == "PropertiesChanged" then + power_state = get_power_state() + for i, message in pairs(t.parameters[2]) do + if message[1] == "Connected" or message[1] == "Paired" then + local mac_address = get_device_mac_address(t.object_path) + if message[2] then + local device = get_device_info(mac_address) + if device["paired"] then + devices[mac_address] = device + end + else + devices[mac_address] = nil + end + end + end + end + end + return " " .. reprint_devices(power_state) + end +} diff --git a/.config/luastatus-scripts-dwm/cpu-temperature.lua b/.config/luastatus-scripts-dwm/cpu-temperature.lua new file mode 100644 index 0000000..38b25d0 --- /dev/null +++ b/.config/luastatus-scripts-dwm/cpu-temperature.lua @@ -0,0 +1,45 @@ +paths = {} +do + -- Replace "*" with "[^0]*" in the first glob if your zeroeth thermal sensor is virtual (and + -- thus useless): + local f = assert(io.popen([[ + #for file in /sys/class/thermal/thermal_zone*/temp + #do + # [ -e "$file" ] || break + # printf "%s\n" "$file" + #done +for dir in /sys/class/hwmon/* +do + [ -e "$dir" ] || break + IFS= read -r monitor_name < "$dir"/name + # You may have more than one hardware monitor enabled + # If so, disable ones that are not needed + case "$monitor_name" in + coretemp|fam15h_power|k10temp) + printf "%s\n" "$dir"/temp*_input + esac +done +]])) + for p in f:lines() do + table.insert(paths, p) + end + f:close() +end + +widget = { + plugin = 'timer', + opts = {period = 2}, + cb = function() + for _, p in ipairs(paths) do + local f = assert(io.open(p, 'r')) + local temp = f:read('*number') / 1000 + local icon = "" + if temp > 55 then + icon = "" + elseif temp > 80 then + icon = "" + end + return string.format('%s %.0f°C', icon, temp) + end + end, +} diff --git a/.config/luastatus-scripts-dwm/cpu-usage.lua b/.config/luastatus-scripts-dwm/cpu-usage.lua new file mode 100644 index 0000000..90c75ed --- /dev/null +++ b/.config/luastatus-scripts-dwm/cpu-usage.lua @@ -0,0 +1,7 @@ +widget = luastatus.require_plugin('cpu-usage-linux').widget{ + cb = function(usage) + if usage ~= nil then + return string.format('%5.1f%%', usage * 100) + end + end, +} diff --git a/.config/luastatus-scripts-dwm/file-contents.lua b/.config/luastatus-scripts-dwm/file-contents.lua new file mode 100644 index 0000000..1ed02ac --- /dev/null +++ b/.config/luastatus-scripts-dwm/file-contents.lua @@ -0,0 +1,7 @@ +widget = luastatus.require_plugin('file-contents-linux').widget{ + filename = "/tmp/bar_status", + cb = function(f) + -- show the first line of the file + return string.format(" %s", f:read('*line')) + end, +} diff --git a/.config/luastatus-scripts-dwm/fs.lua b/.config/luastatus-scripts-dwm/fs.lua new file mode 100644 index 0000000..e780dc6 --- /dev/null +++ b/.config/luastatus-scripts-dwm/fs.lua @@ -0,0 +1,14 @@ +widget = { + plugin = 'fs', + opts = { + paths = {'/', '/home'}, + }, + cb = function(t) + local res = {} + for k, v in pairs(t) do + table.insert(res, string.format('%s %.0f%%', k, + (1 - v.avail / v.total) * 100)) + end + return res + end, +} diff --git a/.config/luastatus-scripts-dwm/ip.lua b/.config/luastatus-scripts-dwm/ip.lua new file mode 100644 index 0000000..37bc43a --- /dev/null +++ b/.config/luastatus-scripts-dwm/ip.lua @@ -0,0 +1,20 @@ +widget = { + plugin = 'network-linux', + cb = function(t) + local r = {} + for iface, params in pairs(t) do + local addr = params.ipv4 + if addr then + -- strip out "label" from the interface name + iface = iface:gsub(':.*', '') + -- strip out "zone index" from the address + addr = addr:gsub('%%.*', '') + + if iface ~= 'lo' then + r[#r + 1] = string.format('[%s: %s]', iface, addr) + end + end + end + return r + end, +} diff --git a/.config/luastatus-scripts-dwm/mem-usage.lua b/.config/luastatus-scripts-dwm/mem-usage.lua new file mode 100644 index 0000000..1c34219 --- /dev/null +++ b/.config/luastatus-scripts-dwm/mem-usage.lua @@ -0,0 +1,7 @@ +widget = luastatus.require_plugin('mem-usage-linux').widget{ + timer_opts = {period = 2}, + cb = function(t) + local used_kb = t.total.value - t.avail.value + return string.format(' %3.2f GiB ', used_kb / 1024 / 1024) + end, +} diff --git a/.config/luastatus-scripts-dwm/mpd.lua b/.config/luastatus-scripts-dwm/mpd.lua new file mode 100644 index 0000000..32cddc6 --- /dev/null +++ b/.config/luastatus-scripts-dwm/mpd.lua @@ -0,0 +1,32 @@ +-- you need to install 'utf8' module (e.g. with luarocks) if using Lua <=5.2. +utf8 = require 'utf8' + +titlewidth = 40 + +widget = { + plugin = 'mpd', + cb = function(t) + if t.what == 'update' then + local title + if t.song.Title then + title = t.song.Title + if t.song.Artist then + title = t.song.Artist .. ': ' .. title + end + else + title = t.song.file or '' + end + title = (utf8.len(title) <= titlewidth) + and title + or utf8.sub(title, 1, titlewidth - 1) .. '…' + + return string.format('%s %s', + ({play = '▶', pause = '‖', stop = '■'})[t.status.state], + title + ) + else + -- 'connecting' or 'error' + return t.what + end + end +} diff --git a/.config/luastatus-scripts-dwm/network.lua b/.config/luastatus-scripts-dwm/network.lua new file mode 100644 index 0000000..4ec808a --- /dev/null +++ b/.config/luastatus-scripts-dwm/network.lua @@ -0,0 +1,72 @@ +local MIN_DBM, MAX_DBM = -90, -20 +local NGAUGE = 5 +local COLOR_DIM = '#709080' + +local function round(x) + return math.floor(x + 0.5) +end + +local function make_wifi_gauge(dbm) + if dbm < MIN_DBM then dbm = MIN_DBM end + if dbm > MAX_DBM then dbm = MAX_DBM end + local nbright = round(NGAUGE * (1 - 0.7 * (MAX_DBM - dbm) / (MAX_DBM - MIN_DBM))) + + if nbright == 0 then + return "" + elseif nbright == 1 then + return "" + elseif nbright == 2 then + return "" + elseif nbright == 3 then + return "" + elseif nbright == 4 then + return "" + else + return "" + end +end + +widget = { + plugin = 'network-linux', + opts = { + wireless = true, + timeout = 10, + }, + cb = function(t) + if not t then + return nil + end + + local x = "" + local sep = " " + + if t.eno1 then + if t.eno1.ipv4 or t.eno1.ipv6 then + x = "" + end + end + + if t.enp5s0f3u1 then + if x ~= "" then + x = x .. sep + end + if t.enp5s0f3u1.ipv4 or t.enp5s0f3u1.ipv6 then + x = x .. "" + end + end + + if t.wlo1.wireless then + if x ~= "" then + x = x .. sep + end + if t.wlo1.wireless.signal_dbm then + x = x .. make_wifi_gauge(t.wlo1.wireless.signal_dbm) + else + x = x .. "" + end + end + + x = " " .. x .. " " + return x + end, +} diff --git a/.config/luastatus-scripts-dwm/pulse-gauge.lua b/.config/luastatus-scripts-dwm/pulse-gauge.lua new file mode 100644 index 0000000..dbc5c67 --- /dev/null +++ b/.config/luastatus-scripts-dwm/pulse-gauge.lua @@ -0,0 +1,18 @@ +local GAUGE_NCHARS = 10 + +local function mk_gauge(level, full, empty) + local nfull = math.floor(level * GAUGE_NCHARS + 0.5) + return full:rep(nfull) .. empty:rep(GAUGE_NCHARS - nfull) +end + +widget = { + plugin = 'pulse', + cb = function(t) + local level = t.cur / t.norm + if t.mute then + return mk_gauge(level, '×', '—') + else + return mk_gauge(level, '●', '○') + end + end, +} diff --git a/.config/luastatus-scripts-dwm/pulse.lua b/.config/luastatus-scripts-dwm/pulse.lua new file mode 100644 index 0000000..59b73e8 --- /dev/null +++ b/.config/luastatus-scripts-dwm/pulse.lua @@ -0,0 +1,10 @@ +widget = { + plugin = 'pulse', + cb = function(t) + if t.mute then + return '[mute]' + end + local percent = (t.cur / t.norm) * 100 + return string.format('[%3d%%]', math.floor(0.5 + percent)) + end, +} diff --git a/.config/luastatus-scripts-dwm/time-date.lua b/.config/luastatus-scripts-dwm/time-date.lua new file mode 100644 index 0000000..8fce7a1 --- /dev/null +++ b/.config/luastatus-scripts-dwm/time-date.lua @@ -0,0 +1,58 @@ +months = {'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'} +wday = {'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'} +widget = { + plugin = 'timer', + cb = function() + local d = os.date('*t') + + if d.hour < 12 then + suffix = "a.m." + else + suffix = "p.m." + d.hour = d.hour - 12 + end + + local date_suffix = "th" + if not (d.day % 100 >= 11 and d.day % 100 <= 13) then + local last_digit = d.day % 10 + if last_digit == 1 then + date_suffix = "st" + elseif last_digit == 2 then + date_suffix = "nd" + elseif last_digit == 3 then + date_suffix = "rd" + end + end + + local time_icon = "" + if d.hour == 0 or d.hour == 12 then + time_icon = "" + elseif d.hour == 1 then + time_icon = "" + elseif d.hour == 2 then + time_icon = "" + elseif d.hour == 3 then + time_icon = "" + elseif d.hour == 4 then + time_icon = "" + elseif d.hour == 5 then + time_icon = "" + elseif d.hour == 6 then + time_icon = "" + elseif d.hour == 7 then + time_icon = "" + elseif d.hour == 8 then + time_icon = "" + elseif d.hour == 9 then + time_icon = "" + elseif d.hour == 10 then + time_icon = "" + elseif d.hour == 11 then + time_icon = "" + end + + return { + string.format(' %d%s %s %d (%s) %s %d:%02d %s ', d.day, date_suffix, months[d.month], d.year, wday[d.wday], time_icon, d.hour, d.min, suffix), + } + end, +} diff --git a/.config/luastatus-scripts-dwm/tor.lua b/.config/luastatus-scripts-dwm/tor.lua new file mode 100644 index 0000000..db97225 --- /dev/null +++ b/.config/luastatus-scripts-dwm/tor.lua @@ -0,0 +1,13 @@ +-- Trivial but somewhat useful widget showing if the Tor daemon is running. + +widget = { + plugin = 'timer', + opts = {period = 5}, + cb = function() + local f = io.open('/var/run/tor/tor.pid', 'r') + if f then + f:close() + return '[TOR]' + end + end, +} diff --git a/.config/luastatus-scripts-dwm/weather.lua b/.config/luastatus-scripts-dwm/weather.lua new file mode 100644 index 0000000..d626689 --- /dev/null +++ b/.config/luastatus-scripts-dwm/weather.lua @@ -0,0 +1,67 @@ +-- you need to install 'luasec' module (e.g. with luarocks) +-- you can look up all available flags here: https://github.com/chubin/wttr.in#one-line-output + +local https = require('ssl.https') +local ltn12 = require('ltn12') + +-- All the arguments except for 'url' may be absent or nil; default method is GET. +-- Returns: code (integer), body (string), headers (table), status (string). +function request(url, headers, method, body) + local out_body = {} + local is_ok, code_or_errmsg, out_headers, status = https.request( + { + url = url, + sink = ltn12.sink.table(out_body), + redirect = false, + cafile = '/etc/ssl/certs/ca-certificates.crt', + verify = 'peer', + method = method, + headers = headers, + }, + body) + assert(is_ok, code_or_errmsg) + return code_or_errmsg, table.concat(out_body), out_headers, status +end + +-- Arguments are the same to those of 'request'. +-- Returns: body (string), headers (table). +function request_check_code(...) + local code, body, headers, status = request(...) + assert(code == 200, string.format('HTTP %s %s', code, status)) + return body, headers +end + +function urlencode(s) + return string.gsub(s, '[^-_.~a-zA-Z0-9]', function(c) + return string.format('%%%02X', string.byte(c)) + end) +end + +local BASE_URL = 'wttr.in' +local LANG = 'en' +local LOCATION = '' + +function get_weather(format) + -- encoding is needed to allow usage of special use characters + format = urlencode(format) + local url = string.format('https://%s.%s/%s?format=%s', LANG, BASE_URL, LOCATION, format) + local is_ok, body = pcall(request_check_code, url) + if is_ok then + return body:gsub("\n", "") + else + return nil + end +end + +widget = { + plugin = 'timer', + opts = {period = 15 * 60}, + cb = function() + local text = get_weather('%l: %C %t(%f)') + if text == nil then + luastatus.plugin.push_period(60) -- retry in 60 seconds + text = '......' + end + return text + end, +} diff --git a/.config/luastatus-scripts-dwm/xkb.lua b/.config/luastatus-scripts-dwm/xkb.lua new file mode 100644 index 0000000..358f0d7 --- /dev/null +++ b/.config/luastatus-scripts-dwm/xkb.lua @@ -0,0 +1,17 @@ +widget = { + plugin = 'xkb', + cb = function(t) + if t.name then + local base_layout = t.name:match('[^(]+') + if base_layout == 'gb' or base_layout == 'us' then + return '[En]' + elseif base_layout == 'ru' then + return '[Ru]' + else + return '[' .. base_layout:sub(1, 1):upper() .. base_layout:sub(2) .. ']' + end + else + return '[? ID ' .. t.id .. ']' + end + end, +} diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim index 0ae0bf0..9dfcdc0 100644 --- a/.config/nvim/init.vim +++ b/.config/nvim/init.vim @@ -1,33 +1,31 @@ call plug#begin('~/.local/share/nvim/plugged') - -" basic Plug 'itchyny/lightline.vim' Plug 'Yggdroot/indentLine' -" Plug 'romgrk/doom-one.vim' -Plug 'MikunoNaka/doom-one.vim' - +Plug 'catppuccin/nvim', { 'as': 'catppuccin' } +Plug 'nvim-lualine/lualine.nvim' +Plug 'nvim-tree/nvim-web-devicons' call plug#end() - " line numbers set number set nu -" colorscheme config -colorscheme doom-one +" disable word wrapping +set nowrap + +colorscheme catppuccin set termguicolors syntax enable +highlight Normal ctermbg=NONE guibg=NONE +highlight NormalNC ctermbg=NONE guibg=NONE -" remove vim status because lightline replaces it -set noshowmode - -" lightline config -" colorscheme wombat for lightline -let g:lightline = { - \ 'colorscheme': 'darcula' - \ } - - +lua << END +require('lualine').setup { + options = { + theme = "catppuccin-mocha", + } +} +END " for tab stop filetype plugin indent on @@ -38,23 +36,3 @@ set tabstop=2 set softtabstop=2 " when indenting with '>', use 2 spaces width set shiftwidth=2 - -" mouse support for visual, etc -set mouse=a - -" disable word wrapping -set nowrap - - -" copy/paste from clipboard -" Copy to clipboard -vnoremap <leader>y "+y -nnoremap <leader>Y "+yg_ -nnoremap <leader>y "+y -nnoremap <leader>yy "+yy - -" Paste from clipboard -nnoremap <leader>p "+p -nnoremap <leader>P "+P -vnoremap <leader>p "+p -vnoremap <leader>P "+P diff --git a/.config/obs-studio/themes/Catppuccin.obt b/.config/obs-studio/themes/Catppuccin.obt new file mode 100644 index 0000000..4d64a60 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin.obt @@ -0,0 +1,1872 @@ +@OBSThemeMeta { + name: 'Catppuccin'; + id: 'com.obsproject.Catppuccin'; + author: 'Xurdejl'; + dark: 'true'; +} + +@OBSThemeVars { + --palette_window: var(--ctp_mantle); + --palette_windowText: var(--ctp_subtext0); + + --palette_base: var(--ctp_mantle); + --palette_alternateBase: var(--ctp_crust); + + --palette_text: var(--ctp_text); + + --palette_button: var(--ctp_surface0); + --palette_buttonText: var(--ctp_subtext0); + + --palette_brightText: var(--ctp_subtext0); + + --palette_light: var(--ctp_surface0); + --palette_mid: var(--ctp_base); + --palette_dark: var(--ctp_mantle); + --palette_shadow: var(--ctp_crust); + + --palette_primary: var(--ctp_surface1); + --palette_primaryLight: var(--ctp_blue); + --palette_primaryDark: var(--ctp_crust); + + --palette_highlight: var(--ctp_blue); + --palette_highlightText: var(--ctp_subtext0); + + --palette_text: var(--ctp_text); + --palette_link: var(--ctp_rosewater); + --palette_linkVisited: var(--ctp_flamingo); + + --palette_windowText_disabled: var(--ctp_overlay1); + --palette_text_disabled: var(--ctp_overlay1); + --palette_button_disabled: var(--ctp_base); + + --palette_buttonText_disabled: var(--ctp_mantle); + --palette_brightText_disabled: var(--ctp_mantle); + + --palette_text_inactive: var(--ctp_subtext0); + + --palette_highlight_inactive: var(--ctp_crust); + --palette_highlightText_inactive: var(--ctp_text); + + /* Layout */ + /* Configurable Values */ + --font_base_value: 10; /* TODO: Min 8, Max 12, Step 1 */ + --spacing_base_value: 4; /* TODO: Min 2, Max 7, Step 1 */ + --padding_base_value: 4; /* TODO: Min 0.25, Max 10, Step 2 */ + + --border_highlight: "transparent"; /* TODO: Better Accessibility focus state */ + /* TODO: Move Accessibilty Colors to Theme config system */ + + /* OS Fixes */ + --os_mac_font_base_value: 12; + + --font_base: calc(1pt * var(--font_base_value)); + --font_small: calc(0.9pt * var(--font_base_value)); + --font_large: calc(1.1pt * var(--font_base_value)); + --font_xlarge: calc(1.5pt * var(--font_base_value)); + + --font_heading: calc(2.5pt * var(--font_base_value)); + + --icon_base: calc(6px + var(--font_base_value)); + + --spacing_base: calc(0.5px * var(--spacing_base_value)); + --spacing_large: calc(1px * var(--spacing_base_value)); + --spacing_small: calc(0.25px * var(--spacing_base_value)); + --spacing_title: 4px; + + --padding_base: calc(0.5px * var(--padding_base_value)); + --padding_large: calc(1px * var(--padding_base_value)); + --padding_xlarge: calc(1.75px * var(--padding_base_value)); + --padding_small: calc(0.25px * var(--padding_base_value)); + + --padding_wide: calc(8px + calc(2 * var(--padding_base_value))); + --padding_menu: calc(4px + calc(2 * var(--padding_base_value))); + + --padding_base_border: calc(var(--padding_base) + 1px); + + --spinbox_button_height: calc(var(--input_height_half) - 1px); + + --volume_slider: calc(calc(4px + var(--font_base_value)) / 4); + --volume_slider_box: calc(var(--volume_slider) * 4); + --volume_slider_label: calc(var(--volume_slider_box) * 2); + + --scrollbar_size: 12px; + --settings_scrollbar_size: calc(var(--scrollbar_size) + 9px); + + /* Inputs / Controls */ + --border_radius: 4px; + --border_radius_small: 2px; + --border_radius_large: 6px; + + --input_font_scale: calc(var(--font_base_value) * 2.2); + --input_font_padding: calc(var(--padding_base_value) * 2); + + --input_height_base: calc(var(--input_font_scale) + var(--input_font_padding)); + --input_padding: var(--padding_large); + --input_height: calc(var(--input_height_base) - calc(var(--input_padding) * 2)); + --input_height_half: calc(var(--input_height_base) / 2); + + --spacing_input: var(--spacing_base); +} + +/* --------------------- */ +/* General Styling Hints */ + +/* Backgrounds */ + +.bg_window { + background-color: var(--ctp_base); +} + +.bg-base { + background-color: palette(base); +} + +.text-heading { + font-size: var(--font_heading); + font-weight: bold; +} + +.text-large { + font-size: var(--font_large); +} + +.text-bright { + color: var(--ctp_surface0); +} + +.text-muted { + color: var(--ctp_overlay1); +} + +.text-warning { + color: var(--ctp_peach); +} + +.text-danger { + color: var(--ctp_maroon); +} + +.text-success { + color: var(--ctp_green); +} + +.frame-notice { + background: var(--ctp_crust); + border-radius: var(--border_radius); + padding: var(--padding_xlarge) var(--padding_large); +} + +.frame-notice QLabel { + padding: var(--padding_large) 0px; +} + +/* Icon Overrides */ + +.icon-plus { + qproperty-icon: url(theme:Dark/plus.svg); +} + +.icon-minus { + qproperty-icon: url(theme:Dark/minus.svg); +} + +.icon-trash { + qproperty-icon: url(theme:Dark/trash.svg); +} + +.icon-clear { + qproperty-icon: url(theme:Dark/entry-clear.svg); +} + +.icon-gear { + qproperty-icon: url(theme:Dark/settings/general.svg); +} + +.icon-dots-vert { + qproperty-icon: url(theme:Dark/dots-vert.svg); +} + +.icon-refresh { + qproperty-icon: url(theme:Dark/refresh.svg); +} + +.icon-cogs { + qproperty-icon: url(theme:Dark/cogs.svg); +} + +.icon-touch { + qproperty-icon: url(theme:Dark/interact.svg); +} + +.icon-up { + qproperty-icon: url(theme:Dark/up.svg); +} + +.icon-down { + qproperty-icon: url(theme:Dark/down.svg); +} + +.icon-pause { + qproperty-icon: url(theme:Dark/media-pause.svg); +} + +.icon-filter { + qproperty-icon: url(theme:Dark/filter.svg); +} + +.icon-revert { + qproperty-icon: url(theme:Dark/revert.svg); +} + +.icon-save { + qproperty-icon: url(theme:Dark/save.svg); +} + +/* Media icons */ + +.icon-media-play { + qproperty-icon: url(theme:Dark/media/media_play.svg); +} + +.icon-media-pause { + qproperty-icon: url(theme:Dark/media/media_pause.svg); +} + +.icon-media-restart { + qproperty-icon: url(theme:Dark/media/media_restart.svg); +} + +.icon-media-stop { + qproperty-icon: url(theme:Dark/media/media_stop.svg); +} + +.icon-media-next { + qproperty-icon: url(theme:Dark/media/media_next.svg); +} + +.icon-media-prev { + qproperty-icon: url(theme:Dark/media/media_previous.svg); +} + +/* Default widget style, we override only what is needed. */ + +QWidget { + alternate-background-color: palette(base); + color: palette(text); + selection-background-color: var(--ctp_selection_background); + selection-color: palette(text); + font-size: var(--font_base); + font-family: 'Open Sans', '.AppleSystemUIFont', Helvetica, Arial, 'MS Shell Dlg', sans-serif; +} + +QWidget:disabled { + color: var(--ctp_overlay1); +} + +/* Container windows */ + +QDialog, +QMainWindow, +QStatusBar, +QMenuBar, +QMenu { + background-color: var(--ctp_base); +} + +/* macOS Separator Fix */ + +QMainWindow::separator { + background: transparent; + width: var(--spacing_large); + height: var(--spacing_large); + margin: 0px; +} + +QMainWindow::separator:hover { + border: 1px solid transparent; + margin: 1px; +} + +/* General Widgets */ + +QLabel, +QGroupBox, +QCheckBox { + background: transparent; +} + +QComboBox, +QCheckBox, +QPushButton, +QSpinBox, +QDoubleSpinBox { + margin-top: var(--spacing_input); + margin-bottom: var(--spacing_input); +} + +QListWidget QWidget, +SceneTree QWidget, +SourceTree QWidget { + margin-top: 0; + margin-bottom: 0; +} + +* [frameShape="1"], +* [frameShape="2"], +* [frameShape="3"], +* [frameShape="4"], +* [frameShape="5"], +* [frameShape="6"] { + border: 1px solid palette(dark); +} + + +/* Misc */ + +QAbstractItemView { + background-color: palette(base); +} + +QToolTip { + background-color: palette(base); + color: palette(text); + border: none; +} + +/* Context Menu */ + +QMenu::icon { + left: 4px; +} + +QMenu::separator { + background: var(--ctp_overlay0); + height: 1px; + margin: var(--spacing_base) var(--spacing_large); +} + +QMenu::item:disabled { + color: var(--ctp_overlay1); + background: transparent; +} + +QMenu::right-arrow { + image: url(theme:Dark/expand.svg); +} + +/* Top Menu Bar Items */ +QMenuBar::item { + background-color: transparent; +} + +QMenuBar::item:selected { + background: var(--ctp_surface1); +} + +/* Item Lists */ +QListWidget { + border-radius: var(--border_radius); +} + +QListWidget::item { + color: palette(text); +} + +QListWidget, +QMenu, +SceneTree, +SourceTree { + padding: var(--spacing_base); +} + +QListWidget::item, +SourceTreeItem, +SceneTree::item { + padding: var(--padding_large); +} + +QMenu::item { + padding: var(--padding_large) var(--padding_menu); + padding-right: 20px; +} + +QListWidget::item, +SourceTreeItem, +QMenu::item, +SceneTree::item { + border-radius: var(--border_radius); + color: palette(text); + border: 1px solid transparent; +} + +SourceTree::item { + border-radius: var(--border_radius); + color: palette(text); +} + +QMenu::item:selected, +QListWidget::item:selected, +SceneTree::item:selected, +SourceTree::item:selected { + background-color: var(--ctp_surface1); +} + +QMenu::item:hover, +QListWidget::item:hover, +SceneTree::item:hover, +SourceTree::item:hover, +QMenu::item:selected:hover, +QListWidget::item:selected:hover, +SceneTree::item:selected:hover, +SourceTree::item:selected:hover { + background-color: var(--ctp_surface0); + color: palette(text); +} + +QMenu::item:focus, +QListWidget::item:focus, +SceneTree::item:focus, +SourceTree::item:focus, +QMenu::item:selected:focus, +QListWidget::item:selected:focus, +SceneTree::item:selected:focus, +SourceTree::item:selected:focus { + border: 1px solid var(--border_highlight); +} + +QListWidget::item:disabled, +QListWidget::item:disabled:hover, +SourceTree::item:disabled, +SourceTree::item:disabled:hover, +SceneTree::item:disabled, +SceneTree::item:disabled:hover { + background: transparent; + color: var(--ctp_overlay1); +} + +QListWidget QLineEdit, +SceneTree QLineEdit, +SourceTree QLineEdit { + padding: 0; + padding-bottom: 1px; + margin: 0; + border: 1px solid var(--ctp_text); + border-radius: var(--border_radius); +} + +QListWidget QLineEdit:focus, +SceneTree QLineEdit:focus, +SourceTree QLineEdit:focus { + border: 1px solid var(--ctp_text); +} + +/* Settings QList */ + +OBSBasicSettings QListWidget { + border-radius: var(--border_radius); + padding: var(--spacing_base); +} + +OBSBasicSettings QListWidget::item { + border-radius: var(--border_radius); + padding: var(--padding_large); +} + +OBSBasicSettings QScrollBar:vertical { + width: var(--settings_scrollbar_size); + margin-left: 9px; +} + +OBSBasicSettings QScrollBar:horizontal { + height: var(--settings_scrollbar_size); + margin-top: 9px; +} + +/* Settings properties view */ +OBSBasicSettings #PropertiesContainer { + background-color: palette(dark); +} + +/* Dock Widget */ +OBSDock > QWidget { + background: palette(dark); + border-bottom-left-radius: var(--border_radius); + border-bottom-right-radius: var(--border_radius); + border: 1px solid var(--ctp_mantle); + border-top: none; +} + +#transitionsFrame { + padding: var(--padding_large); +} + +OBSDock QLabel { + background: transparent; +} + +QDockWidget { + font-size: var(--font_base); + font-weight: bold; + + titlebar-close-icon: url(theme:Dark/close.svg); + titlebar-normal-icon: url(theme:Dark/popout.svg); +} + +QDockWidget::title { + text-align: left; + background-color: palette(base); + padding: var(--padding_large); + border-top-left-radius: var(--border_radius); + border-top-right-radius: var(--border_radius); +} + +QDockWidget::close-button, +QDockWidget::float-button { + border: none; + border-radius: var(--border_radius); + background: transparent; + margin-right: 1px; +} + +QDockWidget::close-button:hover, +QDockWidget::float-button:hover { + background: var(--ctp_surface1); +} + +QDockWidget::close-button:pressed, +QDockWidget::float-button:pressed { + padding: 1px -1px -1px 1px; +} + +QScrollArea { + border-radius: var(--border_radius); +} + +/* Qt enforces a padding inside its status bar, so we + * oversize it and use margin to crunch it back down + */ +OBSBasicStatusBar { + margin-top: 4px; + border-top: 1px solid var(--ctp_mantle); + background: palette(dark); +} + +StatusBarWidget > QFrame { + margin-top: 1px; + border: 0px solid transparent; + border-left-width: 1px; + padding: 0px 8px 2px; +} + +/* Group Box */ + +QGroupBox { + background: palette(dark); + border-radius: var(--border_radius); + padding-top: var(--input_height_base); + padding-bottom: var(--padding_large); + font-weight: bold; + margin-bottom: var(--spacing_large); +} + +QGroupBox::title { + subcontrol-origin: margin; + left: var(--spacing_title); + top: var(--spacing_title); +} + + +/* ScrollBars */ + +QScrollBar { + background-color: var(--ctp_crust); + margin: 0px; + border-radius: var(--border_radius); +} + +::corner { + background-color: palette(window); + border: none; +} + +QScrollBar:vertical { + width: var(--scrollbar_size); +} + +QScrollBar::add-line:vertical, +QScrollBar::sub-line:vertical { + border: none; + background: none; + height: 0px; +} + +QScrollBar::up-arrow:vertical, +QScrollBar::down-arrow:vertical, +QScrollBar::add-page:vertical, +QScrollBar::sub-page:vertical { + border: none; + background: none; + color: none; +} + +QScrollBar:horizontal { + height: var(--scrollbar_size); +} + +QScrollBar::add-line:horizontal, +QScrollBar::sub-line:horizontal { + border: none; + background: none; + width: 0px; +} + +QScrollBar::left-arrow:horizontal, +QScrollBar::right-arrow:horizontal, +QScrollBar::add-page:horizontal, +QScrollBar::sub-page:horizontal { + border: none; + background: none; + color: none; +} + +QScrollBar::handle { + background-color: var(--ctp_surface0); + margin: 2px; + border-radius: var(--border_radius_small); + border: 1px solid var(--ctp_surface0); +} + +QScrollBar::handle:hover { + background-color: var(--ctp_surface1); + border-color: var(--ctp_surface1); +} + +QScrollBar::handle:pressed { + background-color: var(--ctp_surface0); + border-color: var(--ctp_surface0); +} + +QScrollBar::handle:vertical { + min-height: 32px; +} + +QScrollBar::handle:horizontal { + min-width: 32px; +} + +QScrollBar::handle:disabled { + background: transparent; + border-color: transparent; +} + +/* Source Context Bar */ + +#contextContainer { + background-color: palette(dark); + margin-top: 4px; + border-radius: var(--border_radius); +} + +#contextContainer QPushButton { + padding-left: 12px; + padding-right: 12px; +} + +QPushButton#sourcePropertiesButton { + qproperty-icon: url(theme:Dark/settings/general.svg); + icon-size: var(--icon_base); +} + +QPushButton#sourceFiltersButton { + qproperty-icon: url(theme:Dark/filter.svg); + icon-size: var(--icon_base); +} + +/* Scenes and Sources toolbar */ + +QToolBar { + background-color: transparent; + border: none; + margin: var(--spacing_base) 0px; +} + +QToolBar QToolBarSeparator { + background-color: var(--ctp_surface0); +} + +QToolBarExtension { + background: palette(button); + min-width: 12px; + max-width: 12px; + padding: 4px 0px; + margin-left: 0px; + + qproperty-icon: url(theme:Dark/dots-vert.svg); +} + + +/* Tab Widget */ + +/* The tab widget frame */ +QTabWidget::pane { + border-top: 4px solid palette(base); +} + +QTabWidget::tab-bar { + alignment: left; +} + +QTabBar QToolButton { + background: var(--ctp_surface0); + border: none; +} + +QTabBar::tab:top { + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +QTabBar::tab:bottom { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} + +QTabBar::tab { + background: palette(dark); + color: palette(text); + border: none; + padding: 8px 12px; + min-width: 50px; + margin: 1px 0px; + margin-right: 2px; + border: 1px solid var(--ctp_overlay0); +} + +QTabBar::tab:pressed { + background: var(--ctp_crust); +} + +QTabBar::tab:hover { + background: var(--ctp_surface1); + border-color: var(--ctp_overlay0); + color: palette(text); +} + +QTabBar::tab:focus { + border-color: var(--ctp_overlay0); +} + +QTabBar::tab:selected { + background: var(--ctp_surface0); + color: palette(text); +} + +QTabBar::tab:top { + border-bottom: 0px solid transparent; + margin-bottom: 0px; +} + +QTabBar::tab:bottom { + border-top: 0px solid transparent; + margin-top: 0px; +} + +QTabBar QToolButton { + background: palette(base); + min-width: 16px; + padding: 0px; +} + +/* ComboBox */ + +QComboBox, +QDateTimeEdit { + background-color: var(--ctp_surface0); + border: 1px solid var(--ctp_surface0); + border-radius: var(--border_radius); + padding: var(--padding_large) var(--padding_large); + padding-left: 10px; +} + +QComboBox QAbstractItemView::item:selected, +QComboBox QAbstractItemView::item:hover { + background-color: var(--ctp_crust); +} + +QComboBox:hover, +QComboBox:focus, +QDateTimeEdit:hover, +QDateTimeEdit:selected { + border-color: var(--ctp_overlay0); +} + +QComboBox::drop-down, +QDateTimeEdit::drop-down { + border: none; + border-left: 1px solid var(--ctp_crust); + width: var(--input_height); +} + +QComboBox::down-arrow, +QDateTimeEdit::down-arrow { + qproperty-alignment: AlignTop; + image: url(theme:Dark/collapse.svg); + width: 100%; +} + +QComboBox:editable:hover { + background-color: var(--ctp_surface1); + border-color: var(--ctp_overlay0); +} + +QComboBox:on, +QDateTimeEdit:on, +QComboBox:editable:focus { + background-color: var(--ctp_surface1); + border-color: var(--ctp_overlay0); +} + +QComboBox::drop-down:editable, +QDateTimeEdit::drop-down:editable { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} + +QComboBox::down-arrow:editable, +QDateTimeEdit::down-arrow:editable { + qproperty-alignment: AlignTop; + image: url(theme:Dark/collapse.svg); + width: 100%; +} + +/* Textedits etc */ + +QLineEdit, +QTextEdit, +QPlainTextEdit { + background-color: var(--ctp_surface0); + border-radius: var(--border_radius); + padding: var(--input_padding) var(--padding_small) var(--input_padding) var(--input_padding); + padding-left: 8px; + border: 1px solid var(--ctp_surface0); + height: var(--input_height); +} + +QLineEdit:hover, +QTextEdit:hover, +QPlainTextEdit:hover { + background-color: palette(mid); + border-color: var(--ctp_surface2); +} + +QLineEdit:focus, +QTextEdit:focus, +QPlainTextEdit:focus { + background-color: palette(mid); + border-color: var(--ctp_surface1); +} + +QTextEdit:!editable, +QTextEdit:!editable:hover, +QTextEdit:!editable:focus { + background-color: var(--ctp_surface0); +} + +/* Spinbox and doubleSpinbox */ + +QSpinBox, +QDoubleSpinBox { + background-color: var(--ctp_surface0); + border: 1px solid var(--ctp_surface0); + border-radius: var(--border_radius); + padding: var(--input_padding) 0px var(--input_padding) var(--input_padding); + padding-left: 8px; + max-height: var(--spinbox_button_height); +} + +QSpinBox:hover, +QDoubleSpinBox:hover { + background-color: palette(mid); + border-color: var(--ctp_surface2); +} + +QSpinBox:focus, +QDoubleSpinBox:focus { + background-color: palette(mid); + border-color: var(--ctp_surface1); +} + +QSpinBox::up-button, +QDoubleSpinBox::up-button { + subcontrol-origin: padding; + /* position at the top right corner */ + subcontrol-position: top right; + + width: var(--input_height); + border-left: 1px solid var(--ctp_crust); + border-bottom: 1px solid transparent; + border-radius: 0px; + border-top-right-radius: var(--border_radius_small); +} + +QSpinBox::down-button, +QDoubleSpinBox::down-button { + subcontrol-origin: padding; + /* position at the top right corner */ + subcontrol-position: bottom right; + + width: var(--input_height); + border-left: 1px solid var(--ctp_crust); + border-top: 1px solid transparent; + border-radius: 0px; + border-bottom-right-radius: var(--border_radius_small); +} + +QSpinBox::up-button:hover, +QSpinBox::down-button:hover, +QDoubleSpinBox::up-button:hover, +QDoubleSpinBox::down-button:hover { + background-color: var(--ctp_surface1); +} + +QSpinBox::up-button:pressed, +QSpinBox::down-button:pressed, +QDoubleSpinBox::up-button:pressed, +QDoubleSpinBox::down-button:pressed { + background-color: var(--ctp_crust); +} + +QSpinBox::up-button:disabled, +QSpinBox::up-button:off, +QSpinBox::down-button:disabled, +QSpinBox::down-button:off { + background-color: var(--ctp_crust); +} + +QDoubleSpinBox::up-button:disabled, +QDoubleSpinBox::up-button:off, +QDoubleSpinBox::down-button:disabled, +QDoubleSpinBox::down-button:off { + background-color: var(--ctp_crust); +} + +QSpinBox::up-arrow, +QDoubleSpinBox::up-arrow { + image: url(theme:Dark/up.svg); + width: 100%; + margin: 2px; +} + +QSpinBox::down-arrow, +QDoubleSpinBox::down-arrow { + image: url(theme:Dark/down.svg); + width: 100%; + padding: 2px; +} + +/* Controls Dock */ +#controlsFrame { + padding: var(--padding_large); +} + +#controlsFrame QPushButton { + margin: var(--spacing_base) var(--spacing_small); +} + +#streamButton, +#recordButton, +#replayBufferButton, +#broadcastButton { + padding: var(--padding_large); +} + +#pauseRecordButton, +#saveReplayButton, +#virtualCamConfigButton { + padding: var(--padding_large) var(--padding_large); + width: var(--input_height); + max-width: var(--input_height); +} + +/* Primary Control Button Checked Coloring */ +#streamButton:!hover:!pressed:checked, +#recordButton:!hover:!pressed:checked, +#replayBufferButton:!hover:!pressed:checked, +#virtualCamButton:!hover:!pressed:checked, +#modeSwitch:!hover:!pressed:checked, +#broadcastButton:!hover:!pressed:checked { + background: var(--ctp_blue); + color: var(--ctp_crust); +} + +/* Primary Control Button Hover Coloring */ +#streamButton:hover:!pressed:checked, +#recordButton:hover:!pressed:checked, +#replayBufferButton:!pressed:checked, +#virtualCamButton:!pressed:checked, +#modeSwitch:hover:!pressed:checked, +#broadcastButton:hover:!pressed:checked { + background: var(--ctp_lavender); + color: var(--ctp_crust); +} + + +/* Buttons */ + +QPushButton { + color: palette(text); + background-color: palette(button); + border-radius: var(--border_radius); + height: var(--input_height); + max-height: var(--input_height); + padding: var(--input_padding) var(--padding_wide); + icon-size: var(--icon_base); +} + +QPushButton { + border: 1px solid palette(button); +} + +QToolButton { + border: 1px solid palette(button); +} + +QToolButton, +.btn-tool { + background-color: palette(button); + padding: var(--padding_base) var(--padding_base); + margin: 0px var(--spacing_base); + border: 1px solid transparent; + border-radius: var(--border_radius); + icon-size: var(--icon_base); +} + +QToolButton:last-child, +.btn-tool:last-child { + margin-right: 0px; +} + +QPushButton:hover, +QPushButton:focus { + border-color: var(--ctp_surface1); +} + +QPushButton:hover { + background-color: var(--ctp_surface1); +} + +QToolButton:hover, +QToolButton:focus, +.btn-tool:hover, +.btn-tool:focus, +.indicator-mute::indicator:hover, +.indicator-mute::indicator:focus { + border-color: var(--ctp_surface1); + background-color: var(--ctp_surface1); +} + +QPushButton::flat { + background-color: var(--ctp_surface0); +} + +QPushButton:checked { + background-color: var(--ctp_surface1); +} + +QPushButton:checked:hover, +QPushButton:checked:focus { + background-color: var(--ctp_surface1); +} + +QToolButton:pressed, +QToolButton:pressed:hover { + background-color: var(--ctp_crust); + border-color: var(--ctp_crust); +} + +QPushButton:pressed, +QPushButton:pressed:hover, +.btn-tool:pressed, +.btn-tool:pressed:hover { + background-color: var(--ctp_crust); + border-color: var(--ctp_crust); +} + +QPushButton:disabled { + background-color: var(--ctp_crust); + border-color: var(--ctp_crust); +} + +QToolButton:disabled, +.btn-tool:disabled { + background-color: transparent; + border-color: transparent; +} + +QPushButton::menu-indicator { + image: url(theme:Dark/down.svg); + subcontrol-position: right; + subcontrol-origin: padding; + width: 25px; +} + +/* Sliders */ + +QSlider::groove { + background-color: var(--ctp_surface0); + border: none; + border-radius: 2px; +} + +QSlider::groove:horizontal { + height: 4px; +} + +QSlider::groove:vertical { + width: 4px; +} + +QSlider::sub-page:horizontal { + background-color: palette(highlight); + border-radius: 2px; +} + +QSlider::sub-page:horizontal:disabled { + background-color: palette(window); + border-radius: 2px; +} + +QSlider::add-page:horizontal:disabled { + background-color: var(--ctp_crust); + border-radius: 2px; +} + +QSlider::add-page:vertical { + background-color: palette(highlight); + border-radius: 2px; +} + +QSlider::add-page:vertical:disabled { + background-color: palette(window); + border-radius: 2px; +} + +QSlider::sub-page:vertical:disabled { + background-color: var(--ctp_crust); + border-radius: 2px; +} + +QSlider::handle { + background-color: palette(text); + border-radius: var(--border_radius); +} + +QSlider::handle:horizontal { + height: 10px; + width: 20px; + /* Handle is placed by default on the contents rect of the groove. Expand outside the groove */ + margin: -3px 0; +} + +QSlider::handle:vertical { + width: 10px; + height: 20px; + /* Handle is placed by default on the contents rect of the groove. Expand outside the groove */ + margin: 0 -3px; +} + +QSlider::handle:hover { + background-color: var(--ctp_subtext1); +} + +QSlider::handle:pressed { + background-color: var(--ctp_overlay1); +} + +QSlider::handle:disabled { + background-color: var(--ctp_overlay1); +} + +/* Volume Control */ + +#stackedMixerArea QPushButton { + width: var(--icon_base); + height: var(--icon_base); + background-color: var(--ctp_surface0); + padding: var(--padding_base_border) var(--padding_base_border); + margin: 0px; + border: 1px solid transparent; + border-radius: var(--border_radius); + icon-size: var(--icon_base); +} + +/* This is an incredibly cursed but necessary fix */ +#stackedMixerArea QPushButton:!hover { + background-color: palette(base); +} + +#stackedMixerArea QPushButton:hover { + background-color: var(--ctp_surface1); + border-color: var(--ctp_surface1); +} + +#stackedMixerArea QPushButton:pressed { + background-color: var(--ctp_crust); +} + +#stackedMixerArea { + border: none; + padding: 0px; + border-bottom: 1px solid palette(window); +} + +VolControl #volLabel { + padding: var(--padding_base) 0px var(--padding_base); + text-align: center; + font-size: var(--font_base); + color: var(--ctp_overlay1); +} + +/* Horizontal Mixer */ +#hMixerScrollArea VolControl { + padding: 0px var(--padding_xlarge) var(--padding_base); + border-bottom: 1px solid var(--ctp_surface0); +} + +#hMixerScrollArea VolControl QSlider { + margin: 0px 0px var(--padding_base); +} + +#hMixerScrollArea VolControl QSlider::groove:horizontal { + background: palette(window); + height: var(--volume_slider); +} + +/* Vertical Mixer */ +#stackedMixerArea QScrollBar:vertical { + border-left: 1px solid var(--ctp_surface0); +} + +#vMixerScrollArea VolControl { + padding: var(--padding_large) 0px var(--padding_base); + border-right: 1px solid var(--ctp_surface0); +} + +#vMixerScrollArea VolControl QSlider { + width: var(--volume_slider_box); + margin: 0px var(--padding_xlarge); +} + +#vMixerScrollArea VolControl #volLabel { + padding: var(--padding_base) 0px var(--padding_base); + min-width: var(--volume_slider_label); + margin-left: var(--padding_xlarge); + text-align: center; +} + +#vMixerScrollArea VolControl QSlider::groove:vertical { + background: palette(window); + width: var(--volume_slider); +} + +#vMixerScrollArea VolControl #volMeterFrame { + padding: var(--padding_large) var(--padding_xlarge) var(--padding_large) 0px; +} + +#vMixerScrollArea VolControl QLabel { + padding: 0px var(--padding_large); +} + +#vMixerScrollArea VolControl QPushButton { + margin-right: var(--padding_xlarge); +} + +#vMixerScrollArea VolControl .indicator-mute { + margin-left: var(--padding_xlarge); +} + +VolControl { + background: palette(base); +} + +VolumeMeter { + background: transparent; +} + +VolumeMeter { + qproperty-backgroundNominalColor: var(--ctp_green); + qproperty-backgroundWarningColor: var(--ctp_peach); + qproperty-backgroundErrorColor: var(--ctp_red); + qproperty-foregroundNominalColor: var(--ctp_green); + qproperty-foregroundWarningColor: var(--ctp_peach); + qproperty-foregroundErrorColor: var(--ctp_red); + + qproperty-backgroundNominalColorDisabled: var(--ctp_surface0); + qproperty-backgroundWarningColorDisabled: var(--ctp_overlay0); + qproperty-backgroundErrorColorDisabled: var(--ctp_subtext1); + qproperty-foregroundNominalColorDisabled: var(--ctp_surface1); + qproperty-foregroundWarningColorDisabled: var(--ctp_overlay1); + qproperty-foregroundErrorColorDisabled: var(--ctp_subtext0); + + qproperty-magnitudeColor: var(--ctp_surface0); + qproperty-majorTickColor: var(--ctp_text); + qproperty-minorTickColor: var(--ctp_overlay0); + qproperty-peakDecayRate: 23.4; +} + +/* Status Bar */ + +QStatusBar::item { + border: none; +} + +/* Table View */ + +QTableView { + background: palette(base); + gridline-color: palette(light); +} + +QTableView::item { + margin: 0px; + padding: 0px; +} + +QTableView QLineEdit { + background: palette(mid); + padding: 0; + margin: 0; +} + +QTableView QPushButton, +QTableView QToolButton { + padding: 0px; + margin: -1px; + border_radius: 0px; +} + +QHeaderView::section { + background-color: var(--ctp_surface0); + color: palette(text); + border: none; + border-left: 1px solid palette(window); + border-right: 1px solid palette(window); + padding: 3px 0px; + margin-bottom: 2px; +} + +/* Canvas / Preview background color */ + +OBSQTDisplay { + qproperty-displayBackgroundColor: var(--ctp_crust); +} + +/* Filters Window */ + +OBSBasicFilters QListWidget { + border-radius: var(--border_radius_large); + padding: var(--spacing_base); +} + +OBSBasicFilters QListWidget::item { + border-radius: var(--border_radius); + padding: var(--padding_base) var(--padding_large); +} + +OBSBasicFilters #widget, +OBSBasicFilters #widget_2 { + margin: 0px; + padding: 0px; + padding-bottom: var(--padding_base); +} + +OBSBasicFilters #widget QPushButton, +OBSBasicFilters #widget_2 QPushButton { + min-width: 16px; + padding: var(--padding_base) var(--padding_large); + margin-top: 0px; +} + +/* Preview/Program labels */ + +.label-preview-title { + font-size: var(--font_xlarge); + font-weight: bold; + color: var(--ctp_subtext0); + margin-bottom: 4px; +} + +/* Settings Icons */ + +OBSBasicSettings { + qproperty-generalIcon: url(theme:Dark/settings/general.svg); + qproperty-appearanceIcon: url(theme:Dark/settings/appearance.svg); + qproperty-streamIcon: url(theme:Dark/settings/stream.svg); + qproperty-outputIcon: url(theme:Dark/settings/output.svg); + qproperty-audioIcon: url(theme:Dark/settings/audio.svg); + qproperty-videoIcon: url(theme:Dark/settings/video.svg); + qproperty-hotkeysIcon: url(theme:Dark/settings/hotkeys.svg); + qproperty-accessibilityIcon: url(theme:Dark/settings/accessibility.svg); + qproperty-advancedIcon: url(theme:Dark/settings/advanced.svg); +} + +/* Checkboxes */ + +QCheckBox::indicator, +QGroupBox::indicator { + width: var(--icon_base); + height: var(--icon_base); +} + +QGroupBox::indicator { + margin-left: 2px; +} + +QCheckBox::indicator:unchecked, +QGroupBox::indicator:unchecked { + image: url(theme:Yami/checkbox_unchecked.svg); +} + +QCheckBox::indicator:unchecked:hover, +QGroupBox::indicator:unchecked:hover { + border: none; + image: url(theme:Yami/checkbox_unchecked_focus.svg); +} + +QCheckBox::indicator:checked, +QGroupBox::indicator:checked { + image: url(theme:Yami/checkbox_checked.svg); +} + +QCheckBox::indicator:checked:hover, +QGroupBox::indicator:checked:hover { + image: url(theme:Yami/checkbox_checked_focus.svg); +} + +QCheckBox::indicator:checked:disabled, +QGroupBox::indicator:checked:disabled { + image: url(theme:Yami/checkbox_checked_disabled.svg); +} + +QCheckBox::indicator:unchecked:disabled, +QGroupBox::indicator:unchecked:disabled { + image: url(theme:Yami/checkbox_unchecked_disabled.svg); +} + +/* Icon Checkboxes */ +.checkbox-icon { + outline: none; + background: transparent; + max-width: var(--icon_base); + max-height: var(--icon_base); + padding: var(--padding_base); + margin-right: var(--spacing_large); + border: 1px solid transparent; + border-radius: 4px; +} + +.checkbox-icon::indicator { + width: var(--icon_base); + height: var(--icon_base); +} + +.checkbox-icon:hover, +.checkbox-icon:focus { + border-color: var(--border_highlight); +} + +/* Locked CheckBox */ + +.indicator-lock::indicator:checked, +.indicator-lock::indicator:checked:hover { + image: url(theme:Dark/locked.svg); +} + +.indicator-lock::indicator:unchecked, +.indicator-lock::indicator:unchecked:hover { + image: url(:res/images/unlocked.svg); +} + +/* Visibility CheckBox */ + +.indicator-visibility::indicator:checked, +.indicator-visibility::indicator:checked:hover { + image: url(theme:Dark/visible.svg); +} + +.indicator-visibility::indicator:unchecked, +.indicator-visibility::indicator:unchecked:hover { + image: url(:res/images/invisible.svg); +} + +/* Mute CheckBox */ + +.indicator-mute { + outline: none; +} + +.indicator-mute::indicator, +.indicator-mute::indicator:unchecked { + width: var(--icon_base); + height: var(--icon_base); + background-color: palette(button); + padding: var(--padding_base_border) var(--padding_base_border); + margin: 0px; + border: 1px solid transparent; + border-radius: var(--border_radius); + icon-size: var(--icon_base); +} + +.indicator-mute::indicator:hover, +.indicator-mute::indicator:unchecked:hover { + background-color: palette(mid); + padding: var(--padding_base_border) var(--padding_base_border); + margin: 0px; + border: 1px solid var(--ctp_surface1); + icon-size: var(--icon_base); +} + +.indicator-mute::indicator:pressed, +.indicator-mute::indicator:pressed:hover { + background-color: palette(mid); + border-color: var(--ctp_surface1); +} + +.indicator-mute::indicator:checked { + image: url(theme:Dark/mute.svg); +} + +.indicator-mute::indicator:indeterminate { + image: url(theme:Dark/unassigned.svg); +} + +.indicator-mute::indicator:unchecked { + image: url(theme:Dark/settings/audio.svg); +} + +.indicator-mute::indicator:unchecked:hover { + image: url(theme:Dark/settings/audio.svg); +} + +.indicator-mute::indicator:unchecked:focus { + image: url(theme:Dark/settings/audio.svg); +} + +.indicator-mute::indicator:checked:hover { + image: url(theme:Dark/mute.svg); +} + +.indicator-mute::indicator:checked:focus { + image: url(theme:Dark/mute.svg); +} + +.indicator-mute::indicator:checked:disabled { + image: url(theme:Dark/mute.svg); +} + +.indicator-mute::indicator:unchecked:disabled { + image: url(theme:Dark/settings/audio.svg); +} + +#hotkeyFilterReset { + margin-top: 0px; +} + +OBSHotkeyWidget { + padding: 8px 0px; + margin: 2px 0px; +} + +OBSHotkeyLabel { + padding: 4px 0px; +} + +OBSHotkeyWidget QPushButton { + min-width: 16px; + padding: var(--padding_base); + margin-top: 0px; + margin-left: var(--spacing_base); +} + + +/* Sources List Group Collapse Checkbox */ + +.indicator-expand::indicator:checked, +.indicator-expand::indicator:checked:hover { + image: url(theme:Dark/expand.svg); +} + +.indicator-expand::indicator:unchecked, +.indicator-expand::indicator:unchecked:hover { + image: url(theme:Dark/collapse.svg); +} + +/* Source Icons */ + +OBSBasic { + qproperty-imageIcon: url(theme:Dark/sources/image.svg); + qproperty-colorIcon: url(theme:Dark/sources/brush.svg); + qproperty-slideshowIcon: url(theme:Dark/sources/slideshow.svg); + qproperty-audioInputIcon: url(theme:Dark/sources/microphone.svg); + qproperty-audioOutputIcon: url(theme:Dark/settings/audio.svg); + qproperty-desktopCapIcon: url(theme:Dark/settings/video.svg); + qproperty-windowCapIcon: url(theme:Dark/sources/window.svg); + qproperty-gameCapIcon: url(theme:Dark/sources/gamepad.svg); + qproperty-cameraIcon: url(theme:Dark/sources/camera.svg); + qproperty-textIcon: url(theme:Dark/sources/text.svg); + qproperty-mediaIcon: url(theme:Dark/sources/media.svg); + qproperty-browserIcon: url(theme:Dark/sources/globe.svg); + qproperty-groupIcon: url(theme:Dark/sources/group.svg); + qproperty-sceneIcon: url(theme:Dark/sources/scene.svg); + qproperty-defaultIcon: url(theme:Dark/sources/default.svg); + qproperty-audioProcessOutputIcon: url(theme:Dark/sources/windowaudio.svg); +} + +/* Scene Tree Grid Mode */ + +SceneTree { + qproperty-gridItemWidth: 154; + qproperty-gridItemHeight: var(--input_height_base); +} + +.list-grid SceneTree::item { + color: palette(text); + background-color: palette(button); + border-radius: var(--border_radius); + margin: var(--spacing_base); +} + +.list-grid SceneTree::item:selected { + background-color: var(--ctp_surface1); +} + +.list-grid SceneTree::item:checked { + background-color: var(--ctp_surface1); +} + +.list-grid SceneTree::item:hover { + background-color: var(--ctp_surface1); +} + +.list-grid SceneTree::item:selected:hover { + background-color: var(--ctp_surface1); +} + +/* Studio Mode T-Bar */ + +.slider-tbar { + height: 24px; +} + +.slider-tbar::groove:horizontal { + height: 8px; +} + +.slider-tbar::sub-page:horizontal { + background: var(--ctp_blue); +} + +.slider-tbar::handle:horizontal { + width: 12px; + height: 24px; + margin: -24px 0px; +} + +/* YouTube Integration */ +OBSYoutubeActions { + qproperty-thumbPlaceholder: url(theme:Dark/sources/image.svg); +} + +#ytEventList QLabel { + color: palette(text); + background-color: var(--ctp_surface0); + border: none; + border-radius: var(--border_radius); + padding: 4px 20px; +} + +#ytEventList QLabel:hover { + background-color: var(--ctp_surface1); +} + +#ytEventList .row-selected { + background-color: var(--ctp_surface1); + border: none; +} + +#ytEventList .row-selected:hover { + background-color: var(--ctp_blue); + color: palette(text); +} + +/* Calendar Widget */ +QDateTimeEdit::down-arrow { + qproperty-alignment: AlignTop; + image: url(theme:Dark/down.svg); + width: 100%; +} + +QDateTimeEdit:on { + background-color: palette(mid); +} + +/* Calendar Top Bar */ +QCalendarWidget QWidget#qt_calendar_navigationbar { + background-color: palette(base); + padding: var(--padding_base) var(--padding_large); +} + +/* Calendar Top Bar Buttons */ +QCalendarWidget QToolButton { + background-color: palette(base); + padding: 2px 16px; + border-radius: var(--border_radius); + margin: var(--spacing_base); +} + +#qt_calendar_monthbutton::menu-indicator { + image: url(theme:Dark/down.svg); + subcontrol-position: right; + padding-top: var(--padding_small); + padding-right: var(--padding_base); + height: 10px; + width: 10px; +} + +QCalendarWidget #qt_calendar_prevmonth { + padding: var(--padding_small); + qproperty-icon: url(theme:Dark/left.svg); + icon-size: var(--icon_base); +} + +QCalendarWidget #qt_calendar_nextmonth { + padding: var(--padding_small); + qproperty-icon: url(theme:Dark/right.svg); + icon-size: var(--icon_base); +} + +QCalendarWidget QToolButton:hover { + background-color: var(--ctp_surface1); + border-radius: var(--border_radius); +} + +QCalendarWidget QToolButton:pressed { + background-color: var(--ctp_crust); +} + +/* Month Dropdown Menu */ +QCalendarWidget QMenu {} + +/* Year spinbox */ +QCalendarWidget QSpinBox { + background-color: var(--ctp_crust); + border: none; + border-radius: var(--border_radius); + margin: 0px var(--spacing_base) 0px 0px; + padding: var(--padding_base) 16px; +} + +QCalendarWidget QSpinBox::up-button { + subcontrol-origin: border; + subcontrol-position: top right; + width: 16px; +} + +QCalendarWidget QSpinBox::down-button { + subcontrol-origin: border; + subcontrol-position: bottom right; + width: 16px; +} + +QCalendarWidget QSpinBox::up-arrow { + width: 10px; + height: 10px; +} + +QCalendarWidget QSpinBox::down-arrow { + width: 10px; + height: 10px; +} + +/* Days of the Week Bar */ +QCalendarWidget QWidget { + alternate-background-color: palette(mid); +} + +QCalendarWidget QAbstractItemView:enabled { + background-color: palette(base); + color: palette(text); +} + +QCalendarWidget QAbstractItemView:disabled { + color: var(--ctp_overlay1); +} + +/* VirtualCam Plugin Fixes */ + +#VirtualProperties QWidget { + margin-top: 0; + margin-bottom: 0; +} + +/* Disable icons on QDialogButtonBox */ +QDialogButtonBox { + dialogbuttonbox-buttons-have-icons: 0; +} + +/* Stats dialog */ +OBSBasicStats { + background: palette(dark); +} + +/* Advanced audio dialog */ +OBSBasicAdvAudio #scrollAreaWidgetContents { + background: palette(dark); +} + +#previewScalePercent, +#previewScalingMode { + background: transparent; + color: var(--ctp_text); + font-size: var(--font_xsmall); + height: 14px; + max-height: 14px; + padding: 0px var(--padding_xlarge); + margin: 0; + border: none; + border-radius: 0; +} + +#previewXContainer { + border: 1px solid var(--ctp_base); +} + +#previewScalingMode { + border: 1px solid var(--ctp_base); +} + +#previewScalingMode:hover, +#previewScalingMode:focus { + border-color: var(--ctp_base); +} + +#previewXScrollBar, +#previewYScrollBar { + background: transparent; + border: 1px solid var(--ctp_base); + border-radius: 0; +} + +#previewXScrollBar { + border-left: none; + height: 16px; +} + +#previewXScrollBar::handle, +#previewYScrollBar::handle { + margin: 3px; +} + +#previewYScrollBar { + width: 16px; +} diff --git a/.config/obs-studio/themes/Catppuccin_Mocha.ovt b/.config/obs-studio/themes/Catppuccin_Mocha.ovt new file mode 100644 index 0000000..0dd4ae7 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin_Mocha.ovt @@ -0,0 +1,326 @@ +@OBSThemeMeta { + name: 'Mocha'; + id: 'com.obsproject.Catppuccin.Mocha'; + extends: 'com.obsproject.Catppuccin'; + author: 'Xurdejl'; + dark: 'true'; +} + +@OBSThemeVars { + --ctp_rosewater: #f5e0dc; + --ctp_flamingo: #f2cdcd; + --ctp_pink: #f5c2e7; + --ctp_mauve: #cba6f7; + --ctp_red: #f38ba8; + --ctp_maroon: #eba0ac; + --ctp_peach: #fab387; + --ctp_yellow: #f9e2af; + --ctp_green: #a6e3a1; + --ctp_teal: #94e2d5; + --ctp_sky: #89dceb; + --ctp_sapphire: #74c7ec; + --ctp_blue: #89b4fa; + --ctp_lavender: #b4befe; + --ctp_text: #cdd6f4; + --ctp_subtext1: #bac2de; + --ctp_subtext0: #a6adc8; + --ctp_overlay2: #9399b2; + --ctp_overlay1: #7f849c; + --ctp_overlay0: #6c7086; + --ctp_surface2: #585b70; + --ctp_surface1: #45475a; + --ctp_surface0: #313244; + --ctp_base: #1e1e2e; + --ctp_mantle: #181825; + --ctp_crust: #11111b; + --ctp_selection_background: #353649; +} + +VolumeMeter { + qproperty-foregroundNominalColor: #6fd266; + qproperty-foregroundWarningColor: #f7853f; + qproperty-foregroundErrorColor: #ec4675; +} + +/* Icon Overrides */ + +.icon-plus { + qproperty-icon: url(theme:Dark/plus.svg); +} + +.icon-minus { + qproperty-icon: url(theme:Dark/minus.svg); +} + +.icon-trash { + qproperty-icon: url(theme:Dark/trash.svg); +} + +.icon-clear { + qproperty-icon: url(theme:Dark/entry-clear.svg); +} + +.icon-gear { + qproperty-icon: url(theme:Dark/settings/general.svg); +} + +.icon-dots-vert { + qproperty-icon: url(theme:Dark/dots-vert.svg); +} + +.icon-refresh { + qproperty-icon: url(theme:Dark/refresh.svg); +} + +.icon-cogs { + qproperty-icon: url(theme:Dark/cogs.svg); +} + +.icon-touch { + qproperty-icon: url(theme:Dark/interact.svg); +} + +.icon-up { + qproperty-icon: url(theme:Dark/up.svg); +} + +.icon-down { + qproperty-icon: url(theme:Dark/down.svg); +} + +.icon-pause { + qproperty-icon: url(theme:Dark/media-pause.svg); +} + +.icon-filter { + qproperty-icon: url(theme:Dark/filter.svg); +} + +.icon-revert { + qproperty-icon: url(theme:Dark/revert.svg); +} + +.icon-save { + qproperty-icon: url(theme:Dark/save.svg); +} + +/* Media icons */ + +.icon-media-play { + qproperty-icon: url(theme:Dark/media/media_play.svg); +} + +.icon-media-pause { + qproperty-icon: url(theme:Dark/media/media_pause.svg); +} + +.icon-media-restart { + qproperty-icon: url(theme:Dark/media/media_restart.svg); +} + +.icon-media-stop { + qproperty-icon: url(theme:Dark/media/media_stop.svg); +} + +.icon-media-next { + qproperty-icon: url(theme:Dark/media/media_next.svg); +} + +.icon-media-prev { + qproperty-icon: url(theme:Dark/media/media_previous.svg); +} + +/* Context Menu */ +QMenu::right-arrow { + image: url(theme:Dark/expand.svg); +} + +/* Dock Widget */ +QDockWidget { + titlebar-close-icon: url(theme:Dark/close.svg); + titlebar-normal-icon: url(theme:Dark/popout.svg); +} + +/* Source Context Bar */ +QPushButton#sourcePropertiesButton { + qproperty-icon: url(theme:Dark/settings/general.svg); +} + +QPushButton#sourceFiltersButton { + qproperty-icon: url(theme:Dark/filter.svg); +} + +/* Scenes and Sources toolbar */ +QToolBarExtension { + qproperty-icon: url(theme:Dark/dots-vert.svg); +} + +/* ComboBox */ +QComboBox::down-arrow, +QDateTimeEdit::down-arrow { + image: url(theme:Dark/collapse.svg); +} + +QComboBox::down-arrow:editable, +QDateTimeEdit::down-arrow:editable { + image: url(theme:Dark/collapse.svg); +} + +/* Spinbox and doubleSpinbox */ +QSpinBox::up-arrow, +QDoubleSpinBox::up-arrow { + image: url(theme:Dark/up.svg); +} + +QSpinBox::down-arrow, +QDoubleSpinBox::down-arrow { + image: url(theme:Dark/down.svg); +} + +/* Buttons */ +QPushButton::menu-indicator { + image: url(theme:Dark/down.svg); +} + +/* Settings Icons */ +OBSBasicSettings { + qproperty-generalIcon: url(theme:Dark/settings/general.svg); + qproperty-appearanceIcon: url(theme:Dark/settings/appearance.svg); + qproperty-streamIcon: url(theme:Dark/settings/stream.svg); + qproperty-outputIcon: url(theme:Dark/settings/output.svg); + qproperty-audioIcon: url(theme:Dark/settings/audio.svg); + qproperty-videoIcon: url(theme:Dark/settings/video.svg); + qproperty-hotkeysIcon: url(theme:Dark/settings/hotkeys.svg); + qproperty-accessibilityIcon: url(theme:Dark/settings/accessibility.svg); + qproperty-advancedIcon: url(theme:Dark/settings/advanced.svg); +} + +/* Checkboxes */ +QCheckBox::indicator:unchecked, +QGroupBox::indicator:unchecked { + image: url(theme:Yami/checkbox_unchecked.svg); +} + +QCheckBox::indicator:unchecked:hover, +QGroupBox::indicator:unchecked:hover { + border: none; + image: url(theme:Yami/checkbox_unchecked_focus.svg); +} + +QCheckBox::indicator:checked, +QGroupBox::indicator:checked { + image: url(theme:Yami/checkbox_checked.svg); +} + +QCheckBox::indicator:checked:hover, +QGroupBox::indicator:checked:hover { + image: url(theme:Yami/checkbox_checked_focus.svg); +} + +QCheckBox::indicator:checked:disabled, +QGroupBox::indicator:checked:disabled { + image: url(theme:Yami/checkbox_checked_disabled.svg); +} + +/* Locked CheckBox */ +.indicator-lock::indicator:checked, +.indicator-lock::indicator:checked:hover { + image: url(theme:Dark/locked.svg); +} + +/* Visibility CheckBox */ +.indicator-visibility::indicator:checked, +.indicator-visibility::indicator:checked:hover { + image: url(theme:Dark/visible.svg); +} + +/* Mute CheckBox */ +.indicator-mute::indicator:checked { + image: url(theme:Dark/mute.svg); +} + +.indicator-mute::indicator:indeterminate { + image: url(theme:Dark/unassigned.svg); +} + +.indicator-mute::indicator:unchecked { + image: url(theme:Dark/settings/audio.svg); +} + +.indicator-mute::indicator:unchecked:hover { + image: url(theme:Dark/settings/audio.svg); +} + +.indicator-mute::indicator:unchecked:focus { + image: url(theme:Dark/settings/audio.svg); +} + +.indicator-mute::indicator:checked:hover { + image: url(theme:Dark/mute.svg); +} + +.indicator-mute::indicator:checked:focus { + image: url(theme:Dark/mute.svg); +} + +.indicator-mute::indicator:checked:disabled { + image: url(theme:Dark/mute.svg); +} + +.indicator-mute::indicator:unchecked:disabled { + image: url(theme:Dark/settings/audio.svg); +} + +/* Sources List Group Collapse Checkbox */ +.indicator-expand::indicator:checked, +.indicator-expand::indicator:checked:hover { + image: url(theme:Dark/expand.svg); +} + +.indicator-expand::indicator:unchecked, +.indicator-expand::indicator:unchecked:hover { + image: url(theme:Dark/collapse.svg); +} + +/* Source Icons */ +OBSBasic { + qproperty-imageIcon: url(theme:Dark/sources/image.svg); + qproperty-colorIcon: url(theme:Dark/sources/brush.svg); + qproperty-slideshowIcon: url(theme:Dark/sources/slideshow.svg); + qproperty-audioInputIcon: url(theme:Dark/sources/microphone.svg); + qproperty-audioOutputIcon: url(theme:Dark/settings/audio.svg); + qproperty-desktopCapIcon: url(theme:Dark/settings/video.svg); + qproperty-windowCapIcon: url(theme:Dark/sources/window.svg); + qproperty-gameCapIcon: url(theme:Dark/sources/gamepad.svg); + qproperty-cameraIcon: url(theme:Dark/sources/camera.svg); + qproperty-textIcon: url(theme:Dark/sources/text.svg); + qproperty-mediaIcon: url(theme:Dark/sources/media.svg); + qproperty-browserIcon: url(theme:Dark/sources/globe.svg); + qproperty-groupIcon: url(theme:Dark/sources/group.svg); + qproperty-sceneIcon: url(theme:Dark/sources/scene.svg); + qproperty-defaultIcon: url(theme:Dark/sources/default.svg); + qproperty-audioProcessOutputIcon: url(theme:Dark/sources/windowaudio.svg); +} + +/* YouTube Integration */ +OBSYoutubeActions { + qproperty-thumbPlaceholder: url(theme:Dark/sources/image.svg); +} + +/* Calendar Widget */ +QDateTimeEdit::down-arrow { + image: url(theme:Dark/down.svg); +} + +/* Calendar Top Bar Buttons */ +#qt_calendar_monthbutton::menu-indicator { + image: url(theme:Dark/down.svg); +} + +QCalendarWidget #qt_calendar_prevmonth { + qproperty-icon: url(theme:Dark/left.svg); +} + +QCalendarWidget #qt_calendar_nextmonth { + qproperty-icon: url(theme:Dark/right.svg); +} diff --git a/.config/picom.conf b/.config/picom.conf index 920289e..b4bf1ea 100644 --- a/.config/picom.conf +++ b/.config/picom.conf @@ -166,7 +166,7 @@ focus-exclude = [ "class_g = 'Cairo-clock'" ]; blur: { method = "dual_kawase"; - strength = 3; + strength = 4; } # Parameters for background blurring, see the *BLUR* section for more information. @@ -239,197 +239,25 @@ mark-wmwin-focused = true; # mark-ovredir-focused = false mark-ovredir-focused = true; -corner-radius = 6; - -# 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 +corner-radius = 0; 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; +refresh-rate = 0 -# 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 = 144 - -# 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 = [] +rounded-corners-exclude = [ + "window_type = 'dock'", + "class_g = 'Qtile'", +]; -# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows -# in the same group focused at the same time. -# -# detect-transient = false detect-transient = true - -# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same -# group focused at the same time. 'WM_TRANSIENT_FOR' has higher priority if -# detect-transient is enabled, too. -# -# detect-client-leader = false detect-client-leader = true -# Resize damaged region by a specific number of pixels. -# A positive value enlarges it while a negative one shrinks it. -# If the value is positive, those additional pixels will not be actually painted -# to screen, only used in blur calculation, and such. (Due to technical limitations, -# with use-damage, those pixels will still be incorrectly painted to screen.) -# Primarily used to fix the line corruption issues of blur, -# in which case you should use the blur radius value here -# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`, -# with a 5x5 one you use `--resize-damage 2`, and so on). -# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly. -# -# resize-damage = 1 - -# Specify a list of conditions of windows that should be painted with inverted color. -# Resource-hogging, and is not well tested. -# -# invert-color-include = [] - -# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer. -# Might cause incorrect opacity when rendering transparent content (but never -# practically happened) and may not work with blur-background. -# My tests show a 15% performance boost. Recommended. -# -# glx-no-stencil = false - -# GLX backend: Avoid rebinding pixmap on window damage. -# Probably could improve performance on rapid window content changes, -# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.). -# Recommended if it works. -# -# glx-no-rebind-pixmap = false - -# Disable the use of damage information. -# This cause the whole screen to be redrawn everytime, instead of the part of the screen -# has actually changed. Potentially degrades the performance, but might fix some artifacts. -# The opposing option is use-damage -# # no-use-damage = false -use-damage = true - -# Use X Sync fence to sync clients' draw calls, to make sure all draw -# calls are finished before picom starts drawing. Needed on nvidia-drivers -# with GLX backend for some users. -# -# xrender-sync-fence = false - -# GLX backend: Use specified GLSL fragment shader for rendering window contents. -# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl` -# in the source tree for examples. -# -# glx-fshader-win = '' - -# Force all windows to be painted with blending. Useful if you -# have a glx-fshader-win that could turn opaque pixels transparent. -# -# force-win-blend = false - -# Do not use EWMH to detect fullscreen windows. -# Reverts to checking if a window is fullscreen based only on its size and coordinates. -# -# no-ewmh-fullscreen = false - -# Dimming bright windows so their brightness doesn't exceed this set value. -# Brightness of a window is estimated by averaging all pixels in the window, -# so this could comes with a performance hit. -# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0) -# -# max-brightness = 1.0 - -# Make transparent windows clip other windows like non-transparent windows do, -# instead of blending on top of them. -# -# transparent-clipping = false - -# Set the log level. Possible values are: -# "trace", "debug", "info", "warn", "error" -# in increasing level of importance. Case doesn't matter. -# If using the "TRACE" log level, it's better to log into a file -# using *--log-file*, since it can generate a huge stream of logs. -# -# log-level = "debug" -log-level = "warn"; - -# Set the log file. -# If *--log-file* is never specified, logs will be written to stderr. -# Otherwise, logs will to written to the given file, though some of the early -# logs might still be written to the stderr. -# When setting this option from the config file, it is recommended to use an absolute path. -# -# log-file = '/path/to/your/log/file' - -# Show all X errors (for debugging) -# show-all-xerrors = false - -# Write process ID to a file. -# write-pid-path = '/path/to/your/log/file' - -# Window type settings -# -# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard: -# "unknown", "desktop", "dock", "toolbar", "menu", "utility", -# "splash", "dialog", "normal", "dropdown_menu", "popup_menu", -# "tooltip", "notification", "combo", and "dnd". -# -# Following per window-type options are available: :: -# -# fade, shadow::: -# Controls window-type-specific shadow and fade settings. -# -# opacity::: -# Controls default opacity of the window type. -# -# focus::: -# Controls whether the window of this type is to be always considered focused. -# (By default, all window types except "normal" and "dialog" has this on.) -# -# full-shadow::: -# Controls whether shadow is drawn under the parts of the window that you -# normally won't be able to see. Useful when the window has parts of it -# transparent, and you want shadows in those areas. -# -# redir-ignore::: -# Controls whether this type of windows should cause screen to become -# redirected again after been unredirected. If you have unredir-if-possible -# set, and doesn't want certain window to cause unnecessary screen redirection, -# you can set this to `true`. -# wintypes: { - tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; }; - dock = { shadow = false; } - dnd = { shadow = false; } - popup_menu = { opacity = 0.8; shadow = false; } - dropdown_menu = { opacity = 0.8; shadow = false; } + tooltip = { fade = true; shadow = false; opacity = 0.75; focus = true; full-shadow = false; }; + dock = { shadow = false; corners-radius = 0; }; + dnd = { shadow = false; }; + popup_menu = { opacity = 0.8; shadow = false; }; + dropdown_menu = { opacity = 0.8; shadow = false; }; }; diff --git a/.config/qtile/__pycache__/bar.cpython-313.pyc b/.config/qtile/__pycache__/bar.cpython-313.pyc Binary files differnew file mode 100644 index 0000000..8aef3a9 --- /dev/null +++ b/.config/qtile/__pycache__/bar.cpython-313.pyc diff --git a/.config/qtile/__pycache__/bars.cpython-313.pyc b/.config/qtile/__pycache__/bars.cpython-313.pyc Binary files differnew file mode 100644 index 0000000..ad6bad6 --- /dev/null +++ b/.config/qtile/__pycache__/bars.cpython-313.pyc diff --git a/.config/qtile/__pycache__/config.cpython-313.pyc b/.config/qtile/__pycache__/config.cpython-313.pyc Binary files differnew file mode 100644 index 0000000..4ce1de6 --- /dev/null +++ b/.config/qtile/__pycache__/config.cpython-313.pyc diff --git a/.config/qtile/__pycache__/defaults.cpython-313.pyc b/.config/qtile/__pycache__/defaults.cpython-313.pyc Binary files differnew file mode 100644 index 0000000..3d6a3d7 --- /dev/null +++ b/.config/qtile/__pycache__/defaults.cpython-313.pyc diff --git a/.config/qtile/__pycache__/keybindings.cpython-313.pyc b/.config/qtile/__pycache__/keybindings.cpython-313.pyc Binary files differnew file mode 100644 index 0000000..5ccab13 --- /dev/null +++ b/.config/qtile/__pycache__/keybindings.cpython-313.pyc diff --git a/.config/qtile/__pycache__/mic_volume.cpython-313.pyc b/.config/qtile/__pycache__/mic_volume.cpython-313.pyc Binary files differnew file mode 100644 index 0000000..7d1ae2f --- /dev/null +++ b/.config/qtile/__pycache__/mic_volume.cpython-313.pyc diff --git a/.config/qtile/__pycache__/screens.cpython-313.pyc b/.config/qtile/__pycache__/screens.cpython-313.pyc Binary files differnew file mode 100644 index 0000000..f5b78f9 --- /dev/null +++ b/.config/qtile/__pycache__/screens.cpython-313.pyc diff --git a/.config/qtile/bars.py b/.config/qtile/bars.py new file mode 100644 index 0000000..e6701d5 --- /dev/null +++ b/.config/qtile/bars.py @@ -0,0 +1,194 @@ +from libqtile import bar + +from qtile_extras import widget +from qtile_extras.widget.groupbox2 import GroupBoxRule + +from defaults import colors, powerline_0, powerline_1, powerline_2 + +class CapsLockWidget(widget.CapsNumLockIndicator): + def poll(self): + for lock, state in self.get_indicators(): + if lock == "Caps" and state == "on": + return "CAPS LOCK" + + return "" + +class NumLockWidget(widget.CapsNumLockIndicator): + def poll(self): + for lock, state in self.get_indicators(): + if lock == "Num" and state == "on": + return "NUM LOCK" + + return "" + +def default_bar(): + return bar.Bar( + [ + widget.Spacer( + length=1, + **powerline_1 + ), + + widget.Clock( + format=" %-I:%M%p", + padding=8, + background=colors[-1][0], + foreground=colors[-1][1], + **powerline_1 + ), + + widget.Clock( + format=" %d %B %Y (%A)", + padding=8, + background=colors[-2][0], + foreground=colors[-2][1], + **powerline_0 + ), + + widget.Battery( + format="{percent:2.0%}", + padding=8, + show_short_text=False, + update_interval=30, + low_background=colors[-3][0], + low_foreground=colors[-3][1], + background=colors[-4][0], + foreground=colors[-4][1], + charging_background=colors[-5][0], + charging_foreground=colors[-5][1], + **powerline_1 + ), + + widget.Backlight( + backlight_name = "amdgpu_bl1", + padding=8, + format=" {percent:2.0%}", + background=colors[-6][0], + foreground=colors[-6][1], + **powerline_0 + ), + + widget.PulseVolume( + padding=8, + mute_format="", + unmute_format=" {volume}%", + emoji=False, + emoji_list=["", "", "", ""], + background=colors[-7][0], + foreground=colors[-7][1], + **powerline_2 + ), + + widget.WindowName( + padding=10, + max_chars=60, + background=colors[11][0], + foreground=colors[11][1], + **powerline_0 + ), + + widget.Memory( + format=" {MemPercent}%", + padding=8, + background=colors[-10][0], + foreground=colors[-10][1], + **powerline_0 + ), + + widget.CPU( + format=" {load_percent}%", + padding=8, + background=colors[-9][0], + foreground=colors[-9][1], + **powerline_0 + ), + + widget.ThermalSensor( + format=" {temp:.1f}{unit}", + padding=8, + background=colors[-8][0], + foreground=colors[-8][1], + **powerline_0 + ), + + widget.WindowCount( + show_zero=True, + text_format=" {num}", + padding=6, + background=colors[10][0], + foreground=colors[10][1], + **powerline_0 + ), + + NumLockWidget( + fmt=" {}", + background=colors[9][0], + foreground=colors[9][1], + **powerline_0 + ), + + CapsLockWidget( + fmt=" {}", + background=colors[8][0], + foreground=colors[8][1], + **powerline_0 + ), + + widget.CurrentLayout( + fmt=" {}", + background=colors[7][0], + foreground=colors[7][1], + padding=10, + **powerline_2 + ), + + widget.Spacer(length=5), + + widget.Systray(), + + widget.Spacer(length=15), + + widget.GroupBox2( + font = "Source Han Sans JP", + highlight_method="block", + rounded=False, + borderwidth=4, + padding_y=6, + padding_x=10, + + rules = [ + GroupBoxRule( + line_width=3, + ).when(), + + GroupBoxRule( + line_colour=colors[5][0], + #text_colour=colors[5][1], + ).when(screen=GroupBoxRule.SCREEN_THIS), + + GroupBoxRule( + line_colour=colors[6][0], + #text_colour=colors[6][1], + ).when(screen=GroupBoxRule.SCREEN_OTHER), + + GroupBoxRule( + text_colour=colors[2][1], + ).when(occupied=False), + + GroupBoxRule( + text_colour=colors[3][1], + ).when(occupied=True), + + #doesn't work. just marks ALL groups as urgent + # GroupBoxRule( + # line_colour=colors[4][0], + # text_colour=colors[4][1], + # ).when(urgent=True), + ], + ) + ], + 32, + background = colors[1][0], + border_width=[0, 0, 1, 0], + border_color=[colors[0][0], colors[0][0], colors[0][1], colors[0][0]] + ) diff --git a/.config/qtile/config.py b/.config/qtile/config.py new file mode 100644 index 0000000..f2b2549 --- /dev/null +++ b/.config/qtile/config.py @@ -0,0 +1,25 @@ +import defaults +import keybindings +import screens + +groups = defaults.groups +keys = keybindings.keybindings(defaults.mod, defaults._mod, groups) +mouse = keybindings.mousebindings(defaults.mod, defaults._mod) +layouts = defaults.layouts +floating_layout = defaults.floating_layout +widget_defaults = defaults.widget_defaults +extension_defaults = defaults.extension_defaults +screens = screens.screens +floating_layout = defaults.floating_layout + +dgroups_key_binder = None +dgroups_app_rules = [] +follow_mouse_focus = True +bring_front_click = False +floats_kept_above = True +cursor_warp = False +auto_fullscreen = True +focus_on_window_activation = "smart" +reconfigure_screens = True +auto_minimize = True +wmname = "LG3D" diff --git a/.config/qtile/defaults.py b/.config/qtile/defaults.py new file mode 100644 index 0000000..7d13cc6 --- /dev/null +++ b/.config/qtile/defaults.py @@ -0,0 +1,102 @@ +from libqtile import layout +from libqtile.config import Group, Match + +from qtile_extras.widget.decorations import PowerLineDecoration + +mod = "mod4" +_mod = "mod1" + +colors = [ + ["#1e1e2e", "#cba6f7", # tiled border (in/active) + "#313244", "#a6e3a1", # stack border (in/active) + "#585b70", "#f38ba8"] # floating border (in/active) + + # [bg, fg] + , ["#1e1e2e", "#cdd6f4"] # bar color + , [None, "#6c7086"] # empty group + , [None, "#cdd6f4"] # non empty group + , ["#f38ba8", "#f2cdcd"] # urgent group + , ["#cba6f7", "#cdd6f4"] # active group (active monitor) + , ["#a6e3a1", "#a6e3a1"] # active group (inactive monitor) + + , ["#94e2d5", "#11111b"] # layout indicator + , ["#f38ba8", "#11111b"] # caps lock indicator + , ["#eba0ac", "#11111b"] # num lock indicator + , ["#f5e0dc", "#11111b"] # window count + , ["#24273a", "#cdd6f4"] # window name + + , ["#b4befe", "#11111b"] # mem usage + , ["#74c7ec", "#11111b"] # cpu usage + , ["#f38ba8", "#11111b"] # cpu temp + , ["#a6e3a1", "#11111b"] # volume + , ["#89b4fa", "#11111b"] # backlight + , ["#fab387", "#11111b"] # battery (plugged in) + , ["#f38ba8", "#11111b"] # battery (discharging) + , ["#f38ba8", "#11111b"] # battery (low) + , ["#f5c2e7", "#11111b"] # date + , ["#cba6f7", "#11111b"] # time +] + +groups = [Group(i) for i in "一二三四五六七八九十"] +# groups = [Group(i) for i in ""] + +center_floating_windows_by_class = [ + "arandr", "blueman-manager", "pavucontrol" +] + +default_border_width=3 + +floating_layout = layout.Floating( + border_width=default_border_width, + border_normal=colors[0][4], + border_focus=colors[0][5], + float_rules = [ + *layout.Floating.default_float_rules, + *[Match(wm_class=x) for x in center_floating_windows_by_class], + ], +) + +layouts = [ + layout.Columns( + insert_position=1, + border_width=default_border_width, + align=layout.Columns._left, + margin=[4, 4, 4, 4], + margin_on_single=[0, 0, 0, 0], + border_normal=colors[0][0], + border_focus=colors[0][1], + border_normal_stack=colors[0][2], + border_focus_stack=colors[0][3], + ), + layout.Max(), + layout.Matrix(), + layout.MonadWide(), + layout.VerticalTile(), + floating_layout, +] + +widget_defaults = dict( + font = "NotoSans NF:style=Regular", + fontsize = 14, + padding = 3, +) + +extension_defaults = widget_defaults.copy() + +powerline_0 = { + "decorations": [ + PowerLineDecoration(path="forward_slash") + ] +} + +powerline_1 = { + "decorations": [ + PowerLineDecoration(path="arrow_left") + ] +} + +powerline_2 = { + "decorations": [ + PowerLineDecoration(path="arrow_right") + ] +} diff --git a/.config/qtile/keybindings.py b/.config/qtile/keybindings.py new file mode 100644 index 0000000..3a5d953 --- /dev/null +++ b/.config/qtile/keybindings.py @@ -0,0 +1,85 @@ +from libqtile.config import Click, Drag, Key +from libqtile.lazy import lazy + +def mousebindings(mod, _mod): + return [ + Drag([mod], "Button1", lazy.window.set_position_floating(), start=lazy.window.get_position()), + Drag([mod], "Button3", lazy.window.set_size_floating(), start=lazy.window.get_size()), + Click([mod], "Button2", lazy.window.bring_to_front()), + ] + +def keybindings(mod, _mod, groups): + keys = [ + # Switch between windows + Key([mod], "h", lazy.layout.left(), desc="Move focus to left"), + Key([mod], "l", lazy.layout.right(), desc="Move focus to right"), + Key([mod], "j", lazy.layout.down(), desc="Move focus down"), + Key([mod], "k", lazy.layout.up(), desc="Move focus up"), + Key([mod], "space", lazy.layout.next(), desc="Move window focus to other window"), + Key([mod, "shift"], "space", lazy.layout.previous(), desc="Move window focus to other window"), + + # Move windows between left/right columns or move up/down in current stack. + # Moving out of range in Columns layout will create new column. + Key([mod, "shift"], "h", lazy.layout.shuffle_left(), desc="Move window to the left"), + Key([mod, "shift"], "l", lazy.layout.shuffle_right(), desc="Move window to the right"), + Key([mod, "shift"], "j", lazy.layout.shuffle_down(), desc="Move window down"), + Key([mod, "shift"], "k", lazy.layout.shuffle_up(), desc="Move window up"), + + # Grow windows. If current window is on the edge of screen and direction + # will be to screen edge - window would shrink. + Key([mod, "control"], "h", lazy.layout.grow_left(), desc="Grow window to the left"), + Key([mod, "control"], "l", lazy.layout.grow_right(), desc="Grow window to the right"), + Key([mod, "control"], "j", lazy.layout.grow_down(), desc="Grow window down"), + Key([mod, "control"], "k", lazy.layout.grow_up(), desc="Grow window up"), + Key([mod], "n", lazy.layout.normalize(), desc="Reset all window sizes"), + + Key([_mod], "h", lazy.screen.prev_group(), desc="Switch to previous group."), + Key([_mod], "l", lazy.screen.next_group(), desc="Switch to next group."), + + # Toggle between split and unsplit sides of stack. + # Split = all windows displayed + # Unsplit = 1 window displayed, like Max layout, but still with + # multiple stack panes + Key( + [mod, "shift"], + "Return", + lazy.layout.toggle_split(), + desc="Toggle between split and unsplit sides of stack", + ), + # Toggle between different layouts as defined below + Key([mod], "Tab", lazy.next_layout(), desc="Toggle between layouts"), + Key([mod], "w", lazy.window.kill(), desc="Kill focused window"), + Key( + [mod], + "f", + lazy.window.toggle_fullscreen(), + desc="Toggle fullscreen on the focused window", + ), + Key([mod], "t", lazy.window.toggle_floating(), desc="Toggle floating on the focused window"), + Key([mod, "control"], "r", lazy.reload_config(), desc="Reload the config"), + Key([mod, "control"], "q", lazy.shutdown(), desc="Shutdown Qtile"), + ] + + for i in range(len(groups)): + key = str(i + 1) + if key == "10": + key = "0" + + keys.extend( + [ + Key( + [mod], + key, + lazy.group[groups[i].name].toscreen(), + desc=f"Switch to group {groups[i].name}", + ), + Key( + [mod, "shift"], + key, + lazy.window.togroup(groups[i].name, switch_group=True), + desc=f"Switch to & move focused window to group {groups[i].name}", + ), + ] + ) + + return keys diff --git a/.config/qtile/screens.py b/.config/qtile/screens.py new file mode 100644 index 0000000..568399f --- /dev/null +++ b/.config/qtile/screens.py @@ -0,0 +1,13 @@ +from libqtile.config import Screen + +import bars + +default_screen = Screen( + top=bars.default_bar(), +) + +monitor = Screen( + top=bars.default_bar(), +) + +screens = [default_screen, monitor] diff --git a/.config/sxhkd/sxhkdrc b/.config/sxhkd/sxhkdrc index 8824f7b..719939b 100644 --- a/.config/sxhkd/sxhkdrc +++ b/.config/sxhkd/sxhkdrc @@ -1,114 +1,39 @@ -# terminal emulator -super + Return - prime-run alacritty - -# program launcher -super + shift + p - dmenu_run - -# make sxhkd reload its configuration files: -super + Escape - pkill -USR1 -x sxhkd - -# bspwm hotkeys -# quit/restart bspwm -super + shift + {q,r} - bspc {quit,wm -r} - -# kill and close -alt + {_,shift + }w - bspc node -{k,c} - -# alternate between the tiled and monocle layout -super + f - bspc desktop -l next - -# send the newest marked node to the newest preselected node -super + y - bspc node newest.marked.local -n newest.!automatic.local - -# swap the current node and the biggest window -# super + g -# bspc node -s biggest.window - -# -# state/flags -# - -# set the window state -super + {a,shift + a,shift + f,f} - bspc node -t {tiled,pseudo_tiled,floating,fullscreen} +# show/hide notification center +super + backslash + kill -s USR1 $(pidof deadd-notification-center) -# set the node flags -super + ctrl + {m,x,v,z} - bspc node -g {marked,locked,sticky,private} +# cycles between dvorak & qwerty +super + space + switch-keyboard-layout -# -# focus/swap -# - -# focus the node in the given direction -super + {_,shift + }{h,j,k,l} - bspc node -{f,s} {west,south,north,east} - -# focus the node for the given path jump -super + {p,b,comma,period} - bspc node -f @{parent,brother,first,second} - -# focus the next/previous window in the current desktop -alt + {j,k} - bspc node -f {prev,next}.local.!hidden.window - -# focus the next/previous desktop in the current monitor -alt + {h,l} - bspc desktop -f {prev,next}.local - -# focus the last node/desktop -# super + {grave,Tab} -# bspc {node,desktop} -f last - -# focus the older or newer node in the focus history -# super + {o,i} -# bspc wm -h off; \ -# bspc node {older,newer} -f; \ -# bspc wm -h on - -# focus or send to the given desktop -super + {_,shift + }{1-9,0} - bspc {desktop -f,node -d} '^{1-9,10}' - -# -# preselect -# - -# preselect the direction -super + ctrl + {h,j,k,l} - bspc node -p {west,south,north,east} +super + Return + open_terminal -# preselect the ratio -super + ctrl + {1-9} - bspc node -o 0.{1-9} +super + g + rofi -show drun -# cancel the preselection for the focused node -super + ctrl + space - bspc node -p cancel +super + rofi -show drun -# cancel the preselection for the focused desktop super + ctrl + shift + space bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel -# move/resize -# +# Media keys config -# expand a window by moving one of its side outward -super + alt + {h,j,k,l} - bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0} +XF86MonBrightness{Up,Down} + brightnessctl s 1%{+,-} -# contract a window by moving one of its side inward -super + alt + shift + {h,j,k,l} - bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0} +XF86Audio{Raise,Lower}Volume + pamixer -{i,d} 1 + +XF86AudioMute + pamixer -t -# move a floating window -super + {Left,Down,Up,Right} - bspc node -v {-20 0,0 20,0 -20,20 0} +shift + XF86Audio{Raise,Lower}Volume + pamixer --default-source -{i,d} 1 +shift + XF86AudioMute + pamixer --default-source -t +Print + flameshot gui -# other keybindings +shift + Print + flameshot launcher diff --git a/.config/tint2/tint2rc b/.config/tint2/tint2rc deleted file mode 100644 index 702b944..0000000 --- a/.config/tint2/tint2rc +++ /dev/null @@ -1,216 +0,0 @@ -#---- Generated by tint2conf 1c5e ---- -# See https://gitlab.com/o9000/tint2/wikis/Configure for -# full documentation of the configuration options. -#------------------------------------- -# Gradients -#------------------------------------- -# Backgrounds -# Background 1: Battery, Panel -rounded = 0 -border_width = 0 -border_sides = TBLR -border_content_tint_weight = 0 -background_content_tint_weight = 0 -background_color = #171520 100 -border_color = #171520 100 -background_color_hover = #000000 60 -border_color_hover = #000000 30 -background_color_pressed = #000000 60 -border_color_pressed = #000000 30 - -# Background 2: Default task, Iconified task -rounded = 0 -border_width = 1 -border_sides = LR -border_content_tint_weight = 0 -background_content_tint_weight = 0 -background_color = #9325e7 30 -border_color = #9325e7 40 -background_color_hover = #9325e7 90 -border_color_hover = #eaeaea 44 -background_color_pressed = #9325e7 100 -border_color_pressed = #eaeaea 44 - -# Background 3: Active task -rounded = 0 -border_width = 1 -border_sides = LR -border_content_tint_weight = 0 -background_content_tint_weight = 0 -background_color = #9325e7 100 -border_color = #9325e7 100 -background_color_hover = #ad5aed 100 -border_color_hover = #eaeaea 44 -background_color_pressed = #ad5aed 90 -border_color_pressed = #eaeaea 44 - -# Background 4: Urgent task -rounded = 0 -border_width = 1 -border_sides = TBLR -border_content_tint_weight = 0 -background_content_tint_weight = 0 -background_color = #aa4400 100 -border_color = #aa7733 100 -background_color_hover = #cc7700 100 -border_color_hover = #aa7733 100 -background_color_pressed = #555555 4 -border_color_pressed = #aa7733 100 - -# Background 5: Tooltip -rounded = 1 -border_width = 1 -border_sides = TBLR -border_content_tint_weight = 0 -background_content_tint_weight = 0 -background_color = #222222 100 -border_color = #333333 100 -background_color_hover = #ffffaa 100 -border_color_hover = #000000 100 -background_color_pressed = #ffffaa 100 -border_color_pressed = #000000 100 - -#------------------------------------- -# Panel -panel_items = TFSBC -panel_size = 100% 32 -panel_margin = 0 0 -panel_padding = 2 0 2 -panel_background_id = 1 -wm_menu = 1 -panel_dock = 0 -panel_pivot_struts = 0 -panel_position = top center horizontal -panel_layer = normal -panel_monitor = primary -panel_shrink = 0 -autohide = 0 -autohide_show_timeout = 0 -autohide_hide_timeout = 0.5 -autohide_height = 1 -strut_policy = minimum -panel_window_name = taskbar -disable_transparency = 1 -mouse_effects = 1 -font_shadow = 0 -mouse_hover_icon_asb = 100 0 10 -mouse_pressed_icon_asb = 100 0 0 -scale_relative_to_dpi = 1 -scale_relative_to_screen_height = 1 - -#------------------------------------- -# Taskbar -taskbar_mode = single_desktop -taskbar_hide_if_empty = 0 -taskbar_padding = 0 0 2 -taskbar_background_id = 0 -taskbar_active_background_id = 0 -taskbar_name = 1 -taskbar_hide_inactive_tasks = 0 -taskbar_hide_different_monitor = 0 -taskbar_hide_different_desktop = 0 -taskbar_always_show_all_desktop_tasks = 0 -taskbar_name_padding = 12 0 -taskbar_name_background_id = 0 -taskbar_name_active_background_id = 0 -taskbar_name_font = Source Han Sans JP Semi-Bold 12 -taskbar_name_font_color = #e3e3e3 100 -taskbar_name_active_font_color = #ffffff 100 -taskbar_distribute_size = 0 -taskbar_sort_order = center -task_align = left - -#------------------------------------- -# Task -task_text = 1 -task_icon = 0 -task_centered = 1 -urgent_nb_of_blink = 100000 -task_maximum_size = 220 0 -task_padding = 0 0 0 -task_font = Source Code Pro 14 -task_tooltip = 1 -task_thumbnail = 0 -task_thumbnail_size = 8 -task_font_color = #ffffff 100 -task_background_id = 2 -task_active_background_id = 3 -task_urgent_background_id = 4 -task_iconified_background_id = 2 -mouse_left = toggle_iconify -mouse_middle = none -mouse_right = close -mouse_scroll_up = toggle -mouse_scroll_down = iconify - -#------------------------------------- -# System tray (notification area) -systray_padding = 0 4 2 -systray_background_id = 0 -systray_sort = ascending -systray_icon_size = 24 -systray_icon_asb = 100 0 0 -systray_monitor = 1 -systray_name_filter = - -#------------------------------------- -# Launcher -launcher_padding = 2 4 2 -launcher_background_id = 0 -launcher_icon_background_id = 0 -launcher_icon_size = 24 -launcher_icon_asb = 100 0 0 -launcher_icon_theme_override = 0 -startup_notifications = 1 -launcher_tooltip = 1 -launcher_item_app = tint2conf.desktop -launcher_item_app = firefox.desktop -launcher_item_app = iceweasel.desktop -launcher_item_app = chromium-browser.desktop -launcher_item_app = google-chrome.desktop - -#------------------------------------- -# Clock -time1_format = %H:%M -time2_format = %A %d %B -time1_timezone = -time2_timezone = -clock_font_color = #ffffff 100 -clock_padding = 2 0 -clock_background_id = 0 -clock_tooltip = -clock_tooltip_timezone = -clock_lclick_command = -clock_rclick_command = orage -clock_mclick_command = -clock_uwheel_command = -clock_dwheel_command = - -#------------------------------------- -# Battery -battery_tooltip = 1 -battery_low_status = 25 -battery_low_cmd = notify-send "Battery Low!" "Charge yo laptop." -battery_full_cmd = notify-send "Battery Full!" "Disconnect yo charger." -battery_font_color = #ffffff 100 -bat1_format = -bat2_format = -battery_padding = 1 0 -battery_background_id = 1 -battery_hide = 101 -battery_lclick_command = -battery_rclick_command = -battery_mclick_command = -battery_uwheel_command = -battery_dwheel_command = -ac_connected_cmd = notify-send "Charger Connected." "Yo laptop is now charging." -ac_disconnected_cmd = notify-send "Charger Disconnected." "Yo laptop aint charging" - -#------------------------------------- -# Tooltip -tooltip_show_timeout = 0.5 -tooltip_hide_timeout = 0.1 -tooltip_padding = 4 4 -tooltip_background_id = 5 -tooltip_font_color = #dddddd 100 - diff --git a/.config/tint2/tint2rc.backup.1623112960 b/.config/tint2/tint2rc.backup.1623112960 deleted file mode 100644 index 551777b..0000000 --- a/.config/tint2/tint2rc.backup.1623112960 +++ /dev/null @@ -1,215 +0,0 @@ -#---- Generated by tint2conf b4b1 ---- -# See https://gitlab.com/o9000/tint2/wikis/Configure for -# full documentation of the configuration options. -#------------------------------------- -# Gradients -#------------------------------------- -# Backgrounds -# Background 1: Panel -rounded = 0 -border_width = 0 -border_sides = TBLR -border_content_tint_weight = 0 -background_content_tint_weight = 0 -background_color = #171520 100 -border_color = #171520 100 -background_color_hover = #000000 60 -border_color_hover = #000000 30 -background_color_pressed = #000000 60 -border_color_pressed = #000000 30 - -# Background 2: Default task, Iconified task -rounded = 0 -border_width = 1 -border_sides = LR -border_content_tint_weight = 0 -background_content_tint_weight = 0 -background_color = #9325e7 30 -border_color = #9325e7 40 -background_color_hover = #9325e7 90 -border_color_hover = #eaeaea 44 -background_color_pressed = #9325e7 100 -border_color_pressed = #eaeaea 44 - -# Background 3: Active task -rounded = 0 -border_width = 1 -border_sides = LR -border_content_tint_weight = 0 -background_content_tint_weight = 0 -background_color = #9325e7 100 -border_color = #9325e7 100 -background_color_hover = #ad5aed 100 -border_color_hover = #eaeaea 44 -background_color_pressed = #ad5aed 90 -border_color_pressed = #eaeaea 44 - -# Background 4: Urgent task -rounded = 0 -border_width = 1 -border_sides = TBLR -border_content_tint_weight = 0 -background_content_tint_weight = 0 -background_color = #aa4400 100 -border_color = #aa7733 100 -background_color_hover = #cc7700 100 -border_color_hover = #aa7733 100 -background_color_pressed = #555555 4 -border_color_pressed = #aa7733 100 - -# Background 5: Tooltip -rounded = 1 -border_width = 1 -border_sides = TBLR -border_content_tint_weight = 0 -background_content_tint_weight = 0 -background_color = #222222 100 -border_color = #333333 100 -background_color_hover = #ffffaa 100 -border_color_hover = #000000 100 -background_color_pressed = #ffffaa 100 -border_color_pressed = #000000 100 - -#------------------------------------- -# Panel -# panel_items = TFSBC -panel_items = TFSBC -panel_size = 100% 35 -panel_margin = 0 0 -panel_padding = 2 0 2 -panel_background_id = 1 -wm_menu = 1 -panel_dock = 0 -panel_pivot_struts = 0 -panel_position = bottom center horizontal -panel_layer = top -panel_monitor = all -panel_shrink = 0 -autohide = 0 -autohide_show_timeout = 0 -autohide_hide_timeout = 0.5 -autohide_height = 2 -strut_policy = follow_size -panel_window_name = tint2 -disable_transparency = 1 -mouse_effects = 1 -font_shadow = 0 -mouse_hover_icon_asb = 100 0 10 -mouse_pressed_icon_asb = 100 0 0 -scale_relative_to_dpi = 0 -scale_relative_to_screen_height = 0 - -#------------------------------------- -# Taskbar -taskbar_mode = single_desktop -taskbar_hide_if_empty = 1 -taskbar_padding = 0 0 0 -taskbar_background_id = 0 -taskbar_active_background_id = 0 -taskbar_name = 1 -taskbar_hide_inactive_tasks = 1 -taskbar_hide_different_monitor = 0 -taskbar_hide_different_desktop = 0 -taskbar_always_show_all_desktop_tasks = 0 -taskbar_name_padding = 4 4 -taskbar_name_background_id = 0 -taskbar_name_active_background_id = 0 -taskbar_name_font_color = #e3e3e3 100 -taskbar_name_active_font_color = #ffffff 100 -taskbar_distribute_size = 0 -taskbar_sort_order = center -task_align = left - -#------------------------------------- -# Task -task_text = 0 -task_icon = 0 -task_centered = 1 -urgent_nb_of_blink = 100000 -task_maximum_size = 150 35 -task_padding = 0 0 0 -task_tooltip = 1 -task_thumbnail = 0 -task_thumbnail_size = 210 -task_font_color = #ffffff 100 -task_background_id = 2 -task_active_background_id = 3 -task_urgent_background_id = 4 -task_iconified_background_id = 2 -mouse_left = toggle_iconify -mouse_middle = none -mouse_right = close -mouse_scroll_up = toggle -mouse_scroll_down = iconify - -#------------------------------------- -# System tray (notification area) -systray_padding = 0 4 2 -systray_background_id = 0 -systray_sort = ascending -systray_icon_size = 24 -systray_icon_asb = 100 0 0 -systray_monitor = 1 -systray_name_filter = - -#------------------------------------- -# Launcher -launcher_padding = 2 4 2 -launcher_background_id = 0 -launcher_icon_background_id = 0 -launcher_icon_size = 24 -launcher_icon_asb = 100 0 0 -launcher_icon_theme_override = 0 -startup_notifications = 1 -launcher_tooltip = 1 -launcher_item_app = tint2conf.desktop -launcher_item_app = firefox.desktop -launcher_item_app = iceweasel.desktop -launcher_item_app = chromium-browser.desktop -launcher_item_app = google-chrome.desktop - -#------------------------------------- -# Clock -time1_format = %H:%M -time2_format = %A %d %B -time1_timezone = -time2_timezone = -clock_font_color = #ffffff 100 -clock_padding = 2 0 -clock_background_id = 0 -clock_tooltip = -clock_tooltip_timezone = -clock_lclick_command = -clock_rclick_command = orage -clock_mclick_command = -clock_uwheel_command = -clock_dwheel_command = - -#------------------------------------- -# Battery -battery_tooltip = 1 -battery_low_status = 10 -battery_low_cmd = xmessage 'tint2: Battery low!' -battery_full_cmd = -battery_font_color = #ffffff 100 -bat1_format = -bat2_format = -battery_padding = 1 0 -battery_background_id = 0 -battery_hide = 101 -battery_lclick_command = -battery_rclick_command = -battery_mclick_command = -battery_uwheel_command = -battery_dwheel_command = -ac_connected_cmd = -ac_disconnected_cmd = - -#------------------------------------- -# Tooltip -tooltip_show_timeout = 0.5 -tooltip_hide_timeout = 0.1 -tooltip_padding = 4 4 -tooltip_background_id = 5 -tooltip_font_color = #dddddd 100 - diff --git a/.config/tint2/tint2rc.backup.1623114130 b/.config/tint2/tint2rc.backup.1623114130 deleted file mode 100644 index 887f037..0000000 --- a/.config/tint2/tint2rc.backup.1623114130 +++ /dev/null @@ -1,216 +0,0 @@ -#---- Generated by tint2conf ef13 ---- -# See https://gitlab.com/o9000/tint2/wikis/Configure for -# full documentation of the configuration options. -#------------------------------------- -# Gradients -#------------------------------------- -# Backgrounds -# Background 1: Panel -rounded = 0 -border_width = 0 -border_sides = TBLR -border_content_tint_weight = 0 -background_content_tint_weight = 0 -background_color = #171520 100 -border_color = #171520 100 -background_color_hover = #000000 60 -border_color_hover = #000000 30 -background_color_pressed = #000000 60 -border_color_pressed = #000000 30 - -# Background 2: Default task, Iconified task -rounded = 0 -border_width = 1 -border_sides = LR -border_content_tint_weight = 0 -background_content_tint_weight = 0 -background_color = #9325e7 30 -border_color = #9325e7 40 -background_color_hover = #9325e7 90 -border_color_hover = #eaeaea 44 -background_color_pressed = #9325e7 100 -border_color_pressed = #eaeaea 44 - -# Background 3: Active task -rounded = 0 -border_width = 1 -border_sides = LR -border_content_tint_weight = 0 -background_content_tint_weight = 0 -background_color = #9325e7 100 -border_color = #9325e7 100 -background_color_hover = #ad5aed 100 -border_color_hover = #eaeaea 44 -background_color_pressed = #ad5aed 90 -border_color_pressed = #eaeaea 44 - -# Background 4: Urgent task -rounded = 0 -border_width = 1 -border_sides = TBLR -border_content_tint_weight = 0 -background_content_tint_weight = 0 -background_color = #aa4400 100 -border_color = #aa7733 100 -background_color_hover = #cc7700 100 -border_color_hover = #aa7733 100 -background_color_pressed = #555555 4 -border_color_pressed = #aa7733 100 - -# Background 5: Tooltip -rounded = 1 -border_width = 1 -border_sides = TBLR -border_content_tint_weight = 0 -background_content_tint_weight = 0 -background_color = #222222 100 -border_color = #333333 100 -background_color_hover = #ffffaa 100 -border_color_hover = #000000 100 -background_color_pressed = #ffffaa 100 -border_color_pressed = #000000 100 - -#------------------------------------- -# Panel -panel_items = TFSBC -panel_size = 100% 32 -panel_margin = 0 0 -panel_padding = 2 0 2 -panel_background_id = 1 -wm_menu = 1 -panel_dock = 0 -panel_pivot_struts = 0 -panel_position = bottom center horizontal -panel_layer = top -panel_monitor = all -panel_shrink = 0 -autohide = 0 -autohide_show_timeout = 0 -autohide_hide_timeout = 0.5 -autohide_height = 2 -strut_policy = follow_size -panel_window_name = taskbar -disable_transparency = 1 -mouse_effects = 1 -font_shadow = 0 -mouse_hover_icon_asb = 100 0 10 -mouse_pressed_icon_asb = 100 0 0 -scale_relative_to_dpi = 1 -scale_relative_to_screen_height = 1 - -#------------------------------------- -# Taskbar -taskbar_mode = single_desktop -taskbar_hide_if_empty = 0 -taskbar_padding = 0 0 2 -taskbar_background_id = 0 -taskbar_active_background_id = 0 -taskbar_name = 1 -taskbar_hide_inactive_tasks = 0 -taskbar_hide_different_monitor = 0 -taskbar_hide_different_desktop = 0 -taskbar_always_show_all_desktop_tasks = 0 -taskbar_name_padding = 0 0 -taskbar_name_background_id = 0 -taskbar_name_active_background_id = 0 -taskbar_name_font = Source Han Sans JP Semi-Bold 12 -taskbar_name_font_color = #e3e3e3 100 -taskbar_name_active_font_color = #ffffff 100 -taskbar_distribute_size = 0 -taskbar_sort_order = center -task_align = left - -#------------------------------------- -# Task -task_text = 1 -task_icon = 0 -task_centered = 1 -urgent_nb_of_blink = 100000 -task_maximum_size = 220 0 -task_padding = 0 0 0 -task_font = Source Code Pro 14 -task_tooltip = 1 -task_thumbnail = 0 -task_thumbnail_size = 8 -task_font_color = #ffffff 100 -task_background_id = 2 -task_active_background_id = 3 -task_urgent_background_id = 4 -task_iconified_background_id = 2 -mouse_left = toggle_iconify -mouse_middle = none -mouse_right = close -mouse_scroll_up = toggle -mouse_scroll_down = iconify - -#------------------------------------- -# System tray (notification area) -systray_padding = 0 4 2 -systray_background_id = 0 -systray_sort = ascending -systray_icon_size = 24 -systray_icon_asb = 100 0 0 -systray_monitor = 1 -systray_name_filter = - -#------------------------------------- -# Launcher -launcher_padding = 2 4 2 -launcher_background_id = 0 -launcher_icon_background_id = 0 -launcher_icon_size = 24 -launcher_icon_asb = 100 0 0 -launcher_icon_theme_override = 0 -startup_notifications = 1 -launcher_tooltip = 1 -launcher_item_app = tint2conf.desktop -launcher_item_app = firefox.desktop -launcher_item_app = iceweasel.desktop -launcher_item_app = chromium-browser.desktop -launcher_item_app = google-chrome.desktop - -#------------------------------------- -# Clock -time1_format = %H:%M -time2_format = %A %d %B -time1_timezone = -time2_timezone = -clock_font_color = #ffffff 100 -clock_padding = 2 0 -clock_background_id = 0 -clock_tooltip = -clock_tooltip_timezone = -clock_lclick_command = -clock_rclick_command = orage -clock_mclick_command = -clock_uwheel_command = -clock_dwheel_command = - -#------------------------------------- -# Battery -battery_tooltip = 1 -battery_low_status = 25 -battery_low_cmd = notify-send "Battery Low!" "Charge yo laptop" -battery_full_cmd = notify-send "Battery Full!" "Disconnect yo charger" -battery_font_color = #ffffff 100 -bat1_format = -bat2_format = -battery_padding = 1 0 -battery_background_id = 0 -battery_hide = 101 -battery_lclick_command = -battery_rclick_command = -battery_mclick_command = -battery_uwheel_command = -battery_dwheel_command = -ac_connected_cmd = -ac_disconnected_cmd = - -#------------------------------------- -# Tooltip -tooltip_show_timeout = 0.5 -tooltip_hide_timeout = 0.1 -tooltip_padding = 4 4 -tooltip_background_id = 5 -tooltip_font_color = #dddddd 100 - diff --git a/.config/tint2/tint2rc.backup.1629287679 b/.config/tint2/tint2rc.backup.1629287679 deleted file mode 100644 index f5eff27..0000000 --- a/.config/tint2/tint2rc.backup.1629287679 +++ /dev/null @@ -1,216 +0,0 @@ -#---- Generated by tint2conf c27e ---- -# See https://gitlab.com/o9000/tint2/wikis/Configure for -# full documentation of the configuration options. -#------------------------------------- -# Gradients -#------------------------------------- -# Backgrounds -# Background 1: Battery, Panel -rounded = 0 -border_width = 0 -border_sides = TBLR -border_content_tint_weight = 0 -background_content_tint_weight = 0 -background_color = #171520 100 -border_color = #171520 100 -background_color_hover = #000000 60 -border_color_hover = #000000 30 -background_color_pressed = #000000 60 -border_color_pressed = #000000 30 - -# Background 2: Default task, Iconified task -rounded = 0 -border_width = 1 -border_sides = LR -border_content_tint_weight = 0 -background_content_tint_weight = 0 -background_color = #9325e7 30 -border_color = #9325e7 40 -background_color_hover = #9325e7 90 -border_color_hover = #eaeaea 44 -background_color_pressed = #9325e7 100 -border_color_pressed = #eaeaea 44 - -# Background 3: Active task -rounded = 0 -border_width = 1 -border_sides = LR -border_content_tint_weight = 0 -background_content_tint_weight = 0 -background_color = #9325e7 100 -border_color = #9325e7 100 -background_color_hover = #ad5aed 100 -border_color_hover = #eaeaea 44 -background_color_pressed = #ad5aed 90 -border_color_pressed = #eaeaea 44 - -# Background 4: Urgent task -rounded = 0 -border_width = 1 -border_sides = TBLR -border_content_tint_weight = 0 -background_content_tint_weight = 0 -background_color = #aa4400 100 -border_color = #aa7733 100 -background_color_hover = #cc7700 100 -border_color_hover = #aa7733 100 -background_color_pressed = #555555 4 -border_color_pressed = #aa7733 100 - -# Background 5: Tooltip -rounded = 1 -border_width = 1 -border_sides = TBLR -border_content_tint_weight = 0 -background_content_tint_weight = 0 -background_color = #222222 100 -border_color = #333333 100 -background_color_hover = #ffffaa 100 -border_color_hover = #000000 100 -background_color_pressed = #ffffaa 100 -border_color_pressed = #000000 100 - -#------------------------------------- -# Panel -panel_items = TFSBC -panel_size = 100% 32 -panel_margin = 0 0 -panel_padding = 2 0 2 -panel_background_id = 1 -wm_menu = 1 -panel_dock = 0 -panel_pivot_struts = 0 -panel_position = bottom center horizontal -panel_layer = top -panel_monitor = all -panel_shrink = 0 -autohide = 0 -autohide_show_timeout = 0 -autohide_hide_timeout = 0.5 -autohide_height = 2 -strut_policy = follow_size -panel_window_name = taskbar -disable_transparency = 1 -mouse_effects = 1 -font_shadow = 0 -mouse_hover_icon_asb = 100 0 10 -mouse_pressed_icon_asb = 100 0 0 -scale_relative_to_dpi = 1 -scale_relative_to_screen_height = 1 - -#------------------------------------- -# Taskbar -taskbar_mode = single_desktop -taskbar_hide_if_empty = 0 -taskbar_padding = 0 0 2 -taskbar_background_id = 0 -taskbar_active_background_id = 0 -taskbar_name = 1 -taskbar_hide_inactive_tasks = 0 -taskbar_hide_different_monitor = 0 -taskbar_hide_different_desktop = 0 -taskbar_always_show_all_desktop_tasks = 0 -taskbar_name_padding = 12 0 -taskbar_name_background_id = 0 -taskbar_name_active_background_id = 0 -taskbar_name_font = Source Han Sans JP Semi-Bold 12 -taskbar_name_font_color = #e3e3e3 100 -taskbar_name_active_font_color = #ffffff 100 -taskbar_distribute_size = 0 -taskbar_sort_order = center -task_align = left - -#------------------------------------- -# Task -task_text = 1 -task_icon = 0 -task_centered = 1 -urgent_nb_of_blink = 100000 -task_maximum_size = 220 0 -task_padding = 0 0 0 -task_font = Source Code Pro 14 -task_tooltip = 1 -task_thumbnail = 0 -task_thumbnail_size = 8 -task_font_color = #ffffff 100 -task_background_id = 2 -task_active_background_id = 3 -task_urgent_background_id = 4 -task_iconified_background_id = 2 -mouse_left = toggle_iconify -mouse_middle = none -mouse_right = close -mouse_scroll_up = toggle -mouse_scroll_down = iconify - -#------------------------------------- -# System tray (notification area) -systray_padding = 0 4 2 -systray_background_id = 0 -systray_sort = ascending -systray_icon_size = 24 -systray_icon_asb = 100 0 0 -systray_monitor = 1 -systray_name_filter = - -#------------------------------------- -# Launcher -launcher_padding = 2 4 2 -launcher_background_id = 0 -launcher_icon_background_id = 0 -launcher_icon_size = 24 -launcher_icon_asb = 100 0 0 -launcher_icon_theme_override = 0 -startup_notifications = 1 -launcher_tooltip = 1 -launcher_item_app = tint2conf.desktop -launcher_item_app = firefox.desktop -launcher_item_app = iceweasel.desktop -launcher_item_app = chromium-browser.desktop -launcher_item_app = google-chrome.desktop - -#------------------------------------- -# Clock -time1_format = %H:%M -time2_format = %A %d %B -time1_timezone = -time2_timezone = -clock_font_color = #ffffff 100 -clock_padding = 2 0 -clock_background_id = 0 -clock_tooltip = -clock_tooltip_timezone = -clock_lclick_command = -clock_rclick_command = orage -clock_mclick_command = -clock_uwheel_command = -clock_dwheel_command = - -#------------------------------------- -# Battery -battery_tooltip = 1 -battery_low_status = 25 -battery_low_cmd = notify-send "Battery Low!" "Charge yo laptop." -battery_full_cmd = notify-send "Battery Full!" "Disconnect yo charger." -battery_font_color = #ffffff 100 -bat1_format = -bat2_format = -battery_padding = 1 0 -battery_background_id = 1 -battery_hide = 101 -battery_lclick_command = -battery_rclick_command = -battery_mclick_command = -battery_uwheel_command = -battery_dwheel_command = -ac_connected_cmd = notify-send "Charger Connected." "Yo laptop is now charging." -ac_disconnected_cmd = notify-send "Charger Disconnected." "Yo laptop aint charging" - -#------------------------------------- -# Tooltip -tooltip_show_timeout = 0.5 -tooltip_hide_timeout = 0.1 -tooltip_padding = 4 4 -tooltip_background_id = 5 -tooltip_font_color = #dddddd 100 - diff --git a/.config/tint2/workspaces.tint2rc b/.config/tint2/workspaces.tint2rc deleted file mode 100644 index c2cb867..0000000 --- a/.config/tint2/workspaces.tint2rc +++ /dev/null @@ -1,182 +0,0 @@ -#---- Generated by tint2conf 6c6f ---- -# See https://gitlab.com/o9000/tint2/wikis/Configure for -# full documentation of the configuration options. -#------------------------------------- -# Gradients -#------------------------------------- -# Backgrounds -# Background 1: Active taskbar, Default task, Inactive taskbar, Panel -rounded = 0 -border_width = 0 -border_sides = TBLR -border_content_tint_weight = 0 -background_content_tint_weight = 0 -background_color = #000000 100 -border_color = #000000 100 -background_color_hover = #ffffaa 100 -border_color_hover = #000000 100 -background_color_pressed = #ffffaa 100 -border_color_pressed = #000000 100 - -# Background 2: Inactive desktop name -rounded = 0 -border_width = 0 -border_sides = TBLR -border_content_tint_weight = 0 -background_content_tint_weight = 0 -background_color = #000000 100 -border_color = #777777 30 -background_color_hover = #ffffff 22 -border_color_hover = #eaeaea 44 -background_color_pressed = #ffffff 100 -border_color_pressed = #eaeaea 44 - -# Background 3: Active desktop name -rounded = 0 -border_width = 0 -border_sides = TBLR -border_content_tint_weight = 0 -background_content_tint_weight = 0 -background_color = #d33682 100 -border_color = #ffffff 40 -background_color_hover = #aaaaaa 22 -border_color_hover = #eaeaea 44 -background_color_pressed = #555555 4 -border_color_pressed = #eaeaea 44 - -#------------------------------------- -# Panel -panel_items = T: -panel_size = 26% 32 -panel_margin = 0 0 -panel_padding = 6 6 0 -panel_background_id = 1 -wm_menu = 0 -panel_dock = 0 -panel_pivot_struts = 0 -panel_position = bottom center horizontal -panel_layer = normal -panel_monitor = all -panel_shrink = 0 -autohide = 0 -autohide_show_timeout = 0 -autohide_hide_timeout = 0.5 -autohide_height = 2 -strut_policy = none -panel_window_name = workspace-panel -disable_transparency = 1 -mouse_effects = 1 -font_shadow = 0 -mouse_hover_icon_asb = 100 0 10 -mouse_pressed_icon_asb = 100 0 8 -scale_relative_to_dpi = 0 -scale_relative_to_screen_height = 0 - -#------------------------------------- -# Taskbar -taskbar_mode = multi_desktop -taskbar_hide_if_empty = 0 -taskbar_padding = 0 2 0 -taskbar_background_id = 1 -taskbar_active_background_id = 1 -taskbar_name = 1 -taskbar_hide_inactive_tasks = 1 -taskbar_hide_different_monitor = 0 -taskbar_hide_different_desktop = 0 -taskbar_always_show_all_desktop_tasks = 0 -taskbar_name_padding = 8 2 -taskbar_name_background_id = 2 -taskbar_name_active_background_id = 3 -taskbar_name_font = Source Han Sans JP 12 -taskbar_name_font_color = #268bd2 100 -taskbar_name_active_font_color = #ffffff 100 -taskbar_distribute_size = 0 -taskbar_sort_order = none -task_align = center - -#------------------------------------- -# Task -task_text = 0 -task_icon = 0 -task_centered = 1 -urgent_nb_of_blink = 100000 -task_maximum_size = 0 30 -task_padding = 0 0 0 -task_font = Noto Sans 8 -task_tooltip = 1 -task_thumbnail = 0 -task_thumbnail_size = 210 -task_font_color = #ffffff 100 -task_background_id = 1 -mouse_left = toggle_iconify -mouse_middle = none -mouse_right = close -mouse_scroll_up = none -mouse_scroll_down = none - -#------------------------------------- -# System tray (notification area) -systray_padding = 0 0 0 -systray_background_id = -1 -systray_sort = ascending -systray_icon_size = 0 -systray_icon_asb = 100 0 0 -systray_monitor = primary -systray_name_filter = - -#------------------------------------- -# Launcher -launcher_padding = 0 0 0 -launcher_background_id = -1 -launcher_icon_background_id = -1 -launcher_icon_size = 0 -launcher_icon_asb = 100 0 0 -launcher_icon_theme_override = 0 -startup_notifications = 0 -launcher_tooltip = 0 - -#------------------------------------- -# Clock -time1_format = -time2_format = -time1_timezone = -time2_timezone = -clock_font_color = #000000 100 -clock_padding = 0 0 -clock_background_id = -1 -clock_tooltip = -clock_tooltip_timezone = -clock_lclick_command = -clock_rclick_command = -clock_mclick_command = -clock_uwheel_command = -clock_dwheel_command = - -#------------------------------------- -# Battery -battery_tooltip = 1 -battery_low_status = 0 -battery_low_cmd = -battery_full_cmd = -battery_font_color = #000000 100 -bat1_format = -bat2_format = -battery_padding = 0 0 -battery_background_id = -1 -battery_hide = 0 -battery_lclick_command = -battery_rclick_command = -battery_mclick_command = -battery_uwheel_command = -battery_dwheel_command = -ac_connected_cmd = -ac_disconnected_cmd = - -#------------------------------------- -# Tooltip -tooltip_show_timeout = 0 -tooltip_hide_timeout = 0 -tooltip_padding = 0 0 -tooltip_background_id = -1 -tooltip_font_color = #000000 100 - diff --git a/.config/tint2/workspaces.tint2rc.backup.1631544866 b/.config/tint2/workspaces.tint2rc.backup.1631544866 deleted file mode 100644 index 5b2f0b7..0000000 --- a/.config/tint2/workspaces.tint2rc.backup.1631544866 +++ /dev/null @@ -1,110 +0,0 @@ -# Backgrounds -# Background 1: -rounded = 0 -border_width = 0 -border_sides = TBLR -border_content_tint_weight = 0 -background_content_tint_weight = 0 -background_color = #000000 100 -border_color = #000000 100 -background_color_hover = #ffffaa 100 -border_color_hover = #000000 100 -background_color_pressed = #ffffaa 100 -border_color_pressed = #000000 100 - -# Background 2: -rounded = 0 -border_width = 0 -border_sides = TBLR -border_content_tint_weight = 0 -background_content_tint_weight = 0 -background_color = #000000 100 -border_color = #777777 30 -background_color_hover = #ffffff 22 -border_color_hover = #eaeaea 44 -background_color_pressed = #ffffff 100 -border_color_pressed = #eaeaea 44 - -# Background 3: -rounded = 0 -border_width = 0 -border_sides = TBLR -border_content_tint_weight = 0 -background_content_tint_weight = 0 -background_color = #d33682 100 -border_color = #ffffff 40 -background_color_hover = #aaaaaa 22 -border_color_hover = #eaeaea 44 -background_color_pressed = #555555 4 -border_color_pressed = #eaeaea 44 - -# Panel -panel_items = T: -panel_size = 26% 32 -panel_margin = 0 0 -panel_padding = 0 0 0 -panel_background_id = 1 -wm_menu = 1 -panel_dock = 0 -panel_pivot_struts = 0 -panel_position = bottom left horizontal -panel_layer = normal -panel_monitor = all -panel_shrink = 0 -autohide = 0 -autohide_show_timeout = 0 -autohide_hide_timeout = 0.5 -autohide_height = 2 -strut_policy = none -panel_window_name = workspace-panel -disable_transparency = 1 -mouse_effects = 1 -font_shadow = 0 -mouse_hover_icon_asb = 100 0 10 -mouse_pressed_icon_asb = 100 0 0 -scale_relative_to_dpi = 0 -scale_relative_to_screen_height = 0 - -#------------------------------------- -# Taskbar -taskbar_mode = multi_desktop -taskbar_hide_if_empty = 0 -taskbar_padding = 0 2 0 -taskbar_background_id = 1 -taskbar_active_background_id = 1 -taskbar_name = 1 -taskbar_hide_inactive_tasks = 1 -taskbar_hide_different_monitor = 0 -taskbar_hide_different_desktop = 0 -taskbar_always_show_all_desktop_tasks = 0 -taskbar_name_padding = 8 2 -taskbar_name_background_id = 2 -taskbar_name_active_background_id = 3 -taskbar_name_font = Source Han Sans JP 12 -taskbar_name_font_color = #268bd2 100 -taskbar_name_active_font_color = #ffffff 100 -taskbar_name_unoccupied_font_color = #026fc4 100 -taskbar_distribute_size = 0 -taskbar_sort_order = none -# if not centered it glitches while changing ws -task_align = center - -#------------------------------------- -# Task -task_text = 0 -task_icon = 0 -task_centered = 1 -urgent_nb_of_blink = 100000 -task_maximum_size = 0 -task_padding = 0 0 0 -task_font = Noto Sans 8 -task_tooltip = 1 -task_thumbnail = 0 -task_thumbnail_size = 210 -task_font_color = #ffffff 100 -task_background_id = 1 -mouse_left = none #toggle_iconify -mouse_middle = none -mouse_right = none #close -mouse_scroll_up = none #toggle -mouse_scroll_down = none #iconify diff --git a/.scripts/luastatus-dwm b/.scripts/luastatus-dwm new file mode 100755 index 0000000..b9b8412 --- /dev/null +++ b/.scripts/luastatus-dwm @@ -0,0 +1,10 @@ +#!/bin/sh + +echo "" > /tmp/bar_status + +cd ~/.config/luastatus-scripts-dwm/ + +# luastatus -b dwm -B separator=' ' file-contents.lua wireless.lua mem-usage.lua cpu-usage.lua cpu-temperature.lua bluetooth.lua battery.lua time-date.lua backlight.lua + +# temporarily disabling cpu temp as it's *probbaly* causing issues +luastatus -b dwm -B separator='' backlight.lua mem-usage.lua cpu-usage.lua bluetooth.lua network.lua battery.lua time-date.lua diff --git a/.scripts/switch-keyboard-layout b/.scripts/switch-keyboard-layout new file mode 100755 index 0000000..124fd9c --- /dev/null +++ b/.scripts/switch-keyboard-layout @@ -0,0 +1,11 @@ +#!/bin/bash + +current_layout=$(setxkbmap -query | awk '/variant/{print $2}') + +if [[ "$current_layout" == "dvorak" ]]; then + setxkbmap -layout us -option caps:swapescape + notify-send "Keyboard Layout" "Switched to QWERTY" +else + setxkbmap -layout us -variant dvorak -option caps:swapescape + notify-send "Keyboard Layout" "Switched to Dvorak" +fi @@ -1,12 +1,11 @@ -#!/bin/zsh +#!/bin/sh # set .zshenv -[[ -f ~/.config/zsh/.zshenv ]] && source ~/.config/zsh/.zshenv +# [[ -f ~/.config/zsh/.zshenv ]] && source ~/.config/zsh/.zshenv # makes gnome-keyring work -# dbus-update-activation-environment --all & +bus-update-activation-environment --all & -# autostart apps for both xmonad and any other DE # emacs --daemon & #virtual_mic.sh & @@ -14,25 +13,24 @@ nitrogen --restore & # turn on the red danger light on the side # so i know it's turned on without opening the lid -brightnessctl --device hp::hddprotect set 100% - -# autostart apps only for XMonad -if [[ "$DESKTOP_SESSION" = "dwm" ]]; then - # screensetup.sh & - - # autostart apps - # picom & - # dunst & - # udiskie & - - # glava -dm radial & - # polystart & - # nm-applet & - # blueman-applet & - # flameshot & - - while :; do - xsetroot -name "BAT: $(acpi | awk '{print $4}' | sed s/,//) | $(date '+%Y-%m-%d %H:%M:%S')" - sleep 1 - done & +brightnessctl --device hp::hddprotect set 100% & + +deadd-notification-center & +screensetup.sh & +lxpolkit & +#$(setxkbmap -layout us,us -variant dvorak, -option caps:swapescape && sxhkd) & +$(~/.scripts/switch-keyboard-layout && sxhkd) & + +picom & +# dunst & +# udiskie & + +# glava -dm radial & +# polystart & +nm-applet & +blueman-applet & +flameshot & + +if [ "$DESKTOP_SESSION" = "dwm" ]; then + luastatus-dwm & fi diff --git a/CGIT_README.md b/CGIT_README.md new file mode 100644 index 0000000..52fb19e --- /dev/null +++ b/CGIT_README.md @@ -0,0 +1,19 @@ +# Yahallo y'all + +I'm Vidhu Kant. I'm a hobbyist, self taught developer and like to write little +programs to make my life easier (or harder depending on when you ask me). If +you check out my projects and want to either contribute, or just have +suggestions or just appreciate what I do, you can find my contact info over at +<https://vidhukant.com>. Hearing from people makes me happy! + +## My websites + +I have a personal website hosted at <https://vidhukant.com> where I sometimes +also sometimes update my blog to post about nerdy stuff. My main blog, +[The NonPersonal Diary](https://the.nonpersonal.diary/) is also +worth checking out. + +## Find me in other places + +I also have accounts on [GitLab](https://gitlab.com/VidhuKant) and +[GitHub](https://github.com/VidhuKant) but I don't really use them much. diff --git a/cgit.css b/cgit.css deleted file mode 100644 index c8c7123..0000000 --- a/cgit.css +++ /dev/null @@ -1,1033 +0,0 @@ -:root { - --bg1: #dfdfdf; - --bg2: #fff; - --bg3: #afafaf; - - --fg1: #232627; - --fg2: #232627; - --fg3: #2ed19b; - --fg-disabled: gray; - - --codeblock-bg: #303132; - --codeblock-fg: #ffffff; - - --accent1: #BF87D0; - --accent1rgb: rgb(191, 135, 208); - --accent1rgba7: rgba(191, 135, 208, 0.7); - --accent1rgba9: rgba(191, 135, 208, 0.9); - - --red1: red; - --red2: #c00; - --red3: #a00; - --red4: #c55; - - --green1: green; - --green2: #5c5; - --green3: #0a0; - --green4: #080; - - --yellow1: #aa0; - - --magenta1: #a0a; - - --blue1: #00a; - --blue2: #009; - - --cyan1: #0aa; - - --gray1: #777; - --gray2: gray; - --gray3: #888; -} - -@media (prefers-color-scheme: dark) { - :root { - --bg1: #232627; - --bg2: #161020; - --bg3: #151515; - - --fg1: white; - --fg2: #232627; - --fg3: #2ed19b; - --fg-disabled: lightgray; - - --accent1: #BF87D0; - --accent1rgb: rgb(191, 135, 208); - --accent1rgba7: rgba(191, 135, 208, 0.7); - --accent1rgba9: rgba(191, 135, 208, 0.9); - - --red1: #e25b5b; - --green1: #46a446; - --blue2: #6957f3; - } -} - -.markdown-body h1 a, -.markdown-body h2 a, -.markdown-body h3 a, -.markdown-body h4 a, -.markdown-body h5 a, -.markdown-body h6 a { - color: var(--fg1) !important; -} - -code { - background-color: var(--codeblock-bg); - color: var(--codeblock-fg); - padding: 5px 8px; - border-radius: 4px; - font-family: monospace; -} - -pre code { - overflow-x: auto; - display: block; -} - -.markdown-body pre, -.markdown-body code { - background-color: var(--codeblock-bg) !important; - color: var(--codeblock-fg) !important; -} - -.ctrl select { - background-color: var(--bg1); - color: var(--fg1); - border: 1px solid var(--accent1); -} - -div#cgit { - padding: 0em; - margin: 0em; - font-family: sans-serif; - font-size: 10pt; - color: var(--fg1); - background: var(--bg1); - padding: 4px; -} - -table.list tbody tr.nohover th a { - color: var(--fg-disabled); -} - -body { - background-color: var(--bg2); - color: var(--fg1); -} - -div#cgit a { - color: var(--fg3); - text-decoration: none; -} - -div#cgit a:hover { - text-decoration: underline; -} - -div#cgit table { - border-collapse: collapse; -} - -div#cgit table#header { - width: 100%; - margin-bottom: 1em; -} - -div#cgit table#header td.logo { - width: 96px; - vertical-align: top; -} - -div#cgit table#header td.main { - font-size: 250%; - padding-left: 10px; - white-space: nowrap; -} - -div#cgit table#header td.main a { - color: var(--fg1); -} - -div#cgit table#header td.form { - text-align: right; - vertical-align: bottom; - padding-right: 1em; - padding-bottom: 2px; - white-space: nowrap; -} - -div#cgit table#header td.form form, -div#cgit table#header td.form input, -div#cgit table#header td.form select { - background-color: var(--bg1); - color: var(--fg1); -} - -div#cgit table#header td.form input, -div#cgit table#header td.form select { - border: 1px solid var(--accent1); - padding: 0.2rem 0.8rem; -} - -div#cgit table#header td.sub { - color: var(--fg1); - padding-left: 10px; - padding-top: 1rem; -} - -div#cgit table.tabs { - border-bottom: solid 3px var(--accent1); - border-collapse: collapse; - margin-top: 2em; - margin-bottom: 0px; - width: 100%; -} - -div#cgit table.tabs td { - padding: 0px 1em; - vertical-align: bottom; -} - -div#cgit table.tabs td a { - padding: 2px 0.75em; - color: var(--fg1); - font-size: 110%; -} - -div#cgit table.tabs td a.active { - color: var(--fg2); - background-color: var(--accent1); -} - -div#cgit table.tabs a[href^="http://"]:after, div#cgit table.tabs a[href^="https://"]:after { - content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAQAAAAnOwc2AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfgAhcJDQY+gm2TAAAAHWlUWHRDb21tZW50AAAAAABDcmVhdGVkIHdpdGggR0lNUGQuZQcAAABbSURBVAhbY2BABs4MU4CwhYHBh2Erww4wrGFQZHjI8B8IgUIscJWyDHcggltQhI4zGDCcRwhChPggHIggP1QoAVmQkSETrGoHsiAEsACtBYN0oDAMbgU6EBcAAL2eHUt4XUU4AAAAAElFTkSuQmCC); - opacity: 0.5; - margin: 0 0 0 5px; -} - -div#cgit table.tabs td.form { - text-align: right; -} - -div#cgit table.tabs td.form form { - padding-bottom: 2px; - font-size: 90%; - white-space: nowrap; -} - -div#cgit table.tabs td.form input, -div#cgit table.tabs td.form select { - padding: 0.2rem 0.8rem; - background-color: var(--bg1); - color: var(--fg1); - border: 1px solid var(--accent1); -} - -div#cgit div.path { - margin: 0px; - padding: 5px 2em 2px 2em; - color: var(--fg1); - background-color: var(--bg1); -} - -div#cgit div.content { - margin: 0px; - padding: 2em; - border-bottom: solid 3px var(--accent1); -} - - -div#cgit table.list { - width: 100%; - border: none; - border-collapse: collapse; -} - -div#cgit table.list tr { - background-color: var(--bg1); -} - -div#cgit table.list tr.logheader { - background: var(--bg1); -} - -div#cgit table.list tr:nth-child(even) { - background: var(--bg3); -} - -div#cgit table.list tr:nth-child(odd) { - background: var(--bg1); -} - -div#cgit table.list tr:hover { - background-color: var(--accent1rgba7); -} - -div#cgit table.list tr:hover td a { - color: var(--fg1); -} - -div#cgit table.list tr.nohover { - background-color: var(--accent1rgba9); - color: var(--bg1); -} - -div#cgit table.list tr.nohover a { - color: var(--bg2); -} - -div#cgit table.list tr.nohover:hover { - background-color: var(--accent1rgb); -} - -div#cgit table.list tr.nohover-highlight:hover:nth-child(even) { - background-color: var(--accent1rgba9); -} - -div#cgit table.list tr.nohover-highlight:hover:nth-child(odd) { - background-color: var(--accent1rgba7); -} - -div#cgit table.list th { - font-weight: bold; - padding: 0.1em 0.5em 0.05em 0.5em; - vertical-align: baseline; -} - -div#cgit table.list td { - border: none; - padding: 0.1em 0.5em 0.1em 0.5em; -} - -div#cgit table.list td.commitgraph { - font-family: monospace; - white-space: pre; -} - -div#cgit table.list td.commitgraph .column1 { - color: var(--red3); -} - -div#cgit table.list td.commitgraph .column2 { - color: var(--green3); -} - -div#cgit table.list td.commitgraph .column3 { - color: var(--yellow1); -} - -div#cgit table.list td.commitgraph .column4 { - color: var(--blue1); -} - -div#cgit table.list td.commitgraph .column5 { - color: var(--magenta1); -} - -div#cgit table.list td.commitgraph .column6 { - color: var(--cyan1); -} - -div#cgit table.list td.logsubject { - font-family: monospace; - font-weight: bold; -} - -div#cgit table.list td.logmsg { - font-family: monospace; - white-space: pre; - padding: 0 0.5em; -} - -div#cgit table.list td a { - color: var(--fg1); -} - -div#cgit table.list td a.ls-dir { - font-weight: bold; - color: var(--accent1); -} - -div#cgit table.list td a:hover { - color: var(--fg1); -} - -div#cgit img { - border: none; -} - -div#cgit input#switch-btn { - margin: 2px 0px 0px 0px; -} - -div#cgit td#sidebar input.txt { - width: 100%; - margin: 2px 0px 0px 0px; -} - -div#cgit table#grid { - margin: 0px; -} - -div#cgit td#content { - vertical-align: top; - padding: 1em 2em 1em 1em; - border: none; -} - -div#cgit div#summary { - vertical-align: top; - margin-bottom: 1em; -} - -div#cgit table#downloads { - float: right; - border-collapse: collapse; - border: solid 1px var(--gray1); - margin-left: 0.5em; - margin-bottom: 0.5em; -} - -div#cgit table#downloads th { - background-color: var(--bg1); -} - -div#cgit div#blob { - border: solid 1px black; -} - -div#cgit div.error { - color: var(--red1); - font-weight: bold; - margin: 1em 2em; -} - -div#cgit a.ls-blob, div#cgit a.ls-dir, div#cgit .ls-mod { - font-family: monospace; -} - -div#cgit td.ls-size { - text-align: right; - font-family: monospace; - width: 10em; -} - -div#cgit td.ls-mode { - font-family: monospace; - width: 10em; -} - -div#cgit table.blob { - margin-top: 0.5em; - border-top: solid 1px black; -} - -div#cgit table.blob td.hashes, -div#cgit table.blob td.lines { - margin: 0; padding: 0 0 0 0.5em; - vertical-align: top; - color: var(--fg1); -} - -div#cgit table.blob td.linenumbers { - margin: 0; padding: 0 0.5em 0 0.5em; - vertical-align: top; - text-align: right; - border-right: 1px solid var(--gray2); -} - -div#cgit table.blob pre { - padding: 0; margin: 0; -} - -div#cgit table.blob td.linenumbers a, -div#cgit table.ssdiff td.lineno a { - color: var(--gray2); - text-align: right; - text-decoration: none; -} - -div#cgit table.blob td.linenumbers a:hover, -div#cgit table.ssdiff td.lineno a:hover { - color: var(--fg1); -} - -div#cgit table.blame td.hashes, -div#cgit table.blame td.lines, -div#cgit table.blame td.linenumbers { - padding: 0; -} - -div#cgit table.blame td.hashes div.alt, -div#cgit table.blame td.lines div.alt { - padding: 0 0.5em 0 0.5em; -} - -div#cgit table.blame td.linenumbers div.alt { - padding: 0 0.5em 0 0; -} - -div#cgit table.blame div.alt:nth-child(even) { - background: var(--bg3); -} - -div#cgit table.blame div.alt:nth-child(odd) { - background: var(--bg1); -} - -div#cgit table.blame td.lines > div { - position: relative; -} - -div#cgit table.blame td.lines > div > pre { - padding: 0 0 0 0.5em; - position: absolute; - top: 0; -} - -div#cgit table.bin-blob { - margin-top: 0.5em; - border: solid 1px black; -} - -div#cgit table.bin-blob th { - font-family: monospace; - white-space: pre; - border: solid 1px var(--gray1); - padding: 0.5em 1em; -} - -div#cgit table.bin-blob td { - font-family: monospace; - white-space: pre; - border-left: solid 1px var(--gray1); - padding: 0em 1em; -} - -div#cgit table.nowrap td { - white-space: nowrap; -} - -div#cgit table.commit-info { - border-collapse: collapse; - margin-top: 1.5em; -} - -div#cgit div.cgit-panel { - float: right; - margin-top: 1.5em; -} - -div#cgit div.cgit-panel table { - border-collapse: collapse; - border: solid 1px var(--accent1); - background-color: var(--bg1); -} - -div#cgit div.cgit-panel th { - text-align: center; -} - -div#cgit div.cgit-panel td { - padding: 0.25em 0.5em; -} - -div#cgit div.cgit-panel td.label { - padding-right: 0.5em; -} - -div#cgit div.cgit-panel td.ctrl { - padding-left: 0.5em; -} - -div#cgit table.commit-info th { - text-align: left; - font-weight: normal; - padding: 0.1em 1em 0.1em 0.1em; - vertical-align: top; -} - -div#cgit table.commit-info td { - font-weight: normal; - padding: 0.1em 1em 0.1em 0.1em; -} - -div#cgit div.commit-subject { - font-weight: bold; - font-size: 125%; - margin: 1.5em 0em 0.5em 0em; - padding: 0em; -} - -div#cgit div.commit-msg { - white-space: pre; - font-family: monospace; -} - -div#cgit div.notes-header { - font-weight: bold; - padding-top: 1.5em; -} - -div#cgit div.notes { - white-space: pre; - font-family: monospace; - border: solid 1px #ee9; - background-color: #ffd; - padding: 0.3em 2em 0.3em 1em; - float: left; -} - -div#cgit div.notes-footer { - clear: left; -} - -div#cgit div.diffstat-header { - font-weight: bold; - padding-top: 1.5em; -} - -div#cgit table.diffstat { - border-collapse: collapse; - border: solid 1px var(--accent1); - background-color: var(--bg1); -} - -div#cgit table.diffstat th { - font-weight: normal; - text-align: left; - text-decoration: underline; - padding: 0.1em 1em 0.1em 0.1em; - font-size: 100%; -} - -div#cgit table.diffstat td { - padding: 0.2em 0.2em 0.1em 0.1em; - font-size: 100%; - border: none; -} - -div#cgit table.diffstat td.mode { - white-space: nowrap; -} - -div#cgit table.diffstat td span.modechange { - padding-left: 1em; - color: var(--red1); -} - -div#cgit table.diffstat td.add a { - color: var(--green1); -} - -div#cgit table.diffstat td.del a { - color: var(--red1); -} - -div#cgit table.diffstat td.upd a { - color: var(--fg-disabled); -} - -div#cgit table.diffstat td.graph { - width: 500px; - vertical-align: middle; -} - -div#cgit table.diffstat td.graph table { - border: none; -} - -div#cgit table.diffstat td.graph td { - padding: 0px; - border: 0px; - height: 7pt; -} - -div#cgit table.diffstat td.graph td.add { - background-color: var(--green2); -} - -div#cgit table.diffstat td.graph td.rem { - background-color: var(--red4); -} - -div#cgit div.diffstat-summary { - color: var(--gray3); - padding-top: 0.5em; -} - -div#cgit table.diff { - width: 100%; -} - -div#cgit table.diff td { - font-family: monospace; - white-space: pre; -} - -div#cgit table.diff td div.head { - font-weight: bold; - margin-top: 1em; - color: black; -} - -div#cgit table.diff td div.hunk { - color: var(--blue2); -} - -div#cgit table.diff td div.add { - color: var(--green1); -} - -div#cgit table.diff td div.del { - color: var(--red1); -} - -div#cgit .sha1 { - font-family: monospace; - font-size: 90%; -} - -div#cgit .left { - text-align: left; -} - -div#cgit .right { - text-align: right; -} - -div#cgit table.list td.reposection { - font-style: italic; - color: var(--gray3); -} - -div#cgit a.button { - font-size: 80%; - padding: 0em 0.5em; -} - -div#cgit a.primary { - font-size: 100%; -} - -div#cgit a.secondary { - font-size: 90%; -} - -div#cgit td.toplevel-repo { - -} - -div#cgit table.list td.sublevel-repo { - padding-left: 1.5em; -} - -div#cgit ul.pager { - list-style-type: none; - text-align: center; - margin: 1em 0em 0em 0em; - padding: 0; -} - -div#cgit ul.pager li { - display: inline-block; - margin: 0.25em 0.5em; -} - -div#cgit ul.pager a { - color: var(--gray1); -} - -div#cgit ul.pager .current { - font-weight: bold; -} - -div#cgit span.age-mins { - font-weight: bold; - color: var(--green4); -} - -div#cgit span.age-hours { - color: var(--green4); -} - -div#cgit span.age-days { - color: #040; -} - -div#cgit span.age-weeks { - color: #444; -} - -div#cgit span.age-months { - color: var(--gray3); -} - -div#cgit span.age-years { - color: #bbb; -} - -div#cgit span.insertions { - color: var(--green4); -} - -div#cgit span.deletions { - color: #800; -} - -div#cgit div.footer { - margin-top: 0.5em; - text-align: center; - font-size: 80%; - color: #ffcc88; -} - -div#cgit div.footer a { - text-decoration: none; -} - -div#cgit div.footer a:hover { - text-decoration: underline; -} - -div#cgit a.branch-deco { - color: black !important; - margin: 0px 0.5em; - padding: 0px 0.25em; - background-color: #88ff88; - border: solid 1px #007700; -} - -div#cgit a.tag-deco { - color: #000 !important; - margin: 0px 0.5em; - padding: 0px 0.25em; - background-color: #ffff88; - border: solid 1px #777700; -} - -div#cgit a.tag-annotated-deco { - color: #000 !important; - margin: 0px 0.5em; - padding: 0px 0.25em; - background-color: #ffcc88; - border: solid 1px #777700; -} - -div#cgit a.remote-deco { - color: #000 !important; - margin: 0px 0.5em; - padding: 0px 0.25em; - background-color: #ccccff; - border: solid 1px #000077; -} - -div#cgit a.deco { - color: #000 !important; - margin: 0px 0.5em; - padding: 0px 0.25em; - background-color: #ff8888; - border: solid 1px #770000; -} - -div#cgit div.commit-subject a.branch-deco, -div#cgit div.commit-subject a.tag-deco, -div#cgit div.commit-subject a.tag-annotated-deco, -div#cgit div.commit-subject a.remote-deco, -div#cgit div.commit-subject a.deco { - margin-left: 1em; - font-size: 75%; -} - -div#cgit table.stats { - border: solid 1px black; - border-collapse: collapse; -} - -div#cgit table.stats th { - text-align: left; - padding: 1px 0.5em; - background-color: #eee; - border: solid 1px black; -} - -div#cgit table.stats td { - text-align: right; - padding: 1px 0.5em; - border: solid 1px black; -} - -div#cgit table.stats td.total { - font-weight: bold; - text-align: left; -} - -div#cgit table.stats td.sum { - color: var(--red2); - font-weight: bold; -/* background-color: #eee; */ -} - -div#cgit table.stats td.left { - text-align: left; -} - -div#cgit table.vgraph { - border-collapse: separate; - border: solid 1px black; - height: 200px; -} - -div#cgit table.vgraph th { - background-color: #eee; - font-weight: bold; - border: solid 1px var(--fg1); - padding: 1px 0.5em; -} - -div#cgit table.vgraph td { - vertical-align: bottom; - padding: 0px 10px; -} - -div#cgit table.vgraph div.bar { - background-color: #eee; -} - -div#cgit table.hgraph { - border: solid 1px black; - width: 800px; -} - -div#cgit table.hgraph th { - background-color: #eee; - font-weight: bold; - border: solid 1px black; - padding: 1px 0.5em; -} - -div#cgit table.hgraph td { - vertical-align: middle; - padding: 2px 2px; -} - -div#cgit table.hgraph div.bar { - background-color: #eee; - height: 1em; -} - -div#cgit table.ssdiff { - width: 100%; -} - -div#cgit table.ssdiff td { - font-size: 75%; - font-family: monospace; - white-space: pre; - padding: 1px 4px 1px 4px; - border-left: solid 1px #aaa; - border-right: solid 1px #aaa; -} - -div#cgit table.ssdiff td.add { - color: black; - background: #cfc; - min-width: 50%; -} - -div#cgit table.ssdiff td.add_dark { - color: black; - background: #aca; - min-width: 50%; -} - -div#cgit table.ssdiff span.add { - background: #cfc; - font-weight: bold; -} - -div#cgit table.ssdiff td.del { - color: black; - background: #fcc; - min-width: 50%; -} - -div#cgit table.ssdiff td.del_dark { - color: black; - background: #caa; - min-width: 50%; -} - -div#cgit table.ssdiff span.del { - background: #fcc; - font-weight: bold; -} - -div#cgit table.ssdiff td.changed { - color: black; - background: #ffc; - min-width: 50%; -} - -div#cgit table.ssdiff td.changed_dark { - color: black; - background: #cca; - min-width: 50%; -} - -div#cgit table.ssdiff td.lineno { - color: black; - background: #eee; - text-align: right; - width: 3em; - min-width: 3em; -} - -div#cgit table.ssdiff td.hunk { - color: black; - background: #ccf; - border-top: solid 1px #aaa; - border-bottom: solid 1px #aaa; -} - -div#cgit table.ssdiff td.head { - border-top: solid 1px #aaa; - border-bottom: solid 1px #aaa; -} - -div#cgit table.ssdiff td.head div.head { - font-weight: bold; - color: black; -} - -div#cgit table.ssdiff td.foot { - border-top: solid 1px #aaa; - border-left: none; - border-right: none; - border-bottom: none; -} - -div#cgit table.ssdiff td.space { - border: none; -} - -div#cgit table.ssdiff td.space div { - min-height: 3em; -} - -/* Style definition file generated by highlight 3.9, http://www.andre-simon.de/ */ -/* Highlighting theme: Kwrite Editor */ -/* adapted for cgit */ -div#cgit table.blob .num { color:#b07e00; } -div#cgit table.blob .esc { color:#ff00ff; } -div#cgit table.blob .str { color:#bf0303; } -div#cgit table.blob .pps { color:#818100; } -div#cgit table.blob .slc { color:#838183; font-style:italic; } -div#cgit table.blob .com { color:#838183; font-style:italic; } -div#cgit table.blob .ppc { color:#008200; } -div#cgit table.blob .opt { color:#000000; } -div#cgit table.blob .lin { color:#555555; } -div#cgit table.blob .kwa { color:#000000; font-weight:bold; } -div#cgit table.blob .kwb { color:#0057ae; } -div#cgit table.blob .kwc { color:#000000; font-weight:bold; } -div#cgit table.blob .kwd { color:#010181; } diff --git a/cgit.svg b/cgit.svg new file mode 100644 index 0000000..a21b364 --- /dev/null +++ b/cgit.svg @@ -0,0 +1,10 @@ +<svg viewBox="0 0 450.00002 299.5628" xmlns="http://www.w3.org/2000/svg"> + <path + id="logo--v" + d="M -6.0375967e-7,1.9495423e-4 166.24502,299.56193 v 9e-4 h 9.4e-4 84.65414 0.002 l -9.9e-4,-0.002 50.77369,-91.48962 -42.32754,-76.27186 -50.77365,91.49097 L 84.656177,-5.0457712e-6 Z" + style="fill:#cdd6f4;fill-opacity:1;stroke-width:44.983" /> + <path + id="logo--k" + d="M 332.49004,1.9495423e-4 265.79447,120.18178 h -9.9e-4 l 99.55045,179.38105 H 450 L 350.44955,120.18178 417.14611,1.9495423e-4 Z" + style="fill:#a6e3a1;fill-opacity:1;stroke-width:44.983" /> +</svg> |