73 Commits
Author SHA1 Message Date
rhiobet 5e4a314115 [NeoVim] add gopls 2022-12-05 13:17:46 +01:00
rhiobet aaa06a4df8 [NeoVim] add markdown preview 2022-11-24 18:01:30 +01:00
rhiobet 5fcd4d168e [NeoVim] calm down firenvim 2022-11-24 18:00:46 +01:00
rhiobet bfc0fb49fc [mpv] thumbfast conf 2022-11-09 19:51:30 +01:00
rhiobet 87c8314567 [mpv] steal mugen script from amoethyst 2022-11-09 19:51:05 +01:00
rhiobet 584b9a0d9f [NeoVim] Add FireNvim 2022-10-25 18:51:20 +02:00
rhiobet 52954da5ee [Waybar] Fix pacman module (again) 2022-10-25 15:34:48 +02:00
rhiobet 271450c509 [NeoVim] Update and add noice 2022-10-21 20:11:06 +02:00
rhiobet 5028abfdf5 [Sway] Add border around kitty-scratches 2022-10-21 19:22:58 +02:00
rhiobet 0f335550b5 [Waybar] Fix pacman module 2022-10-21 19:14:18 +02:00
rhiobet 1a0f52ec04 [Waybar] Improve look 2022-10-03 18:36:32 +02:00
rhiobet 70d96e45f1 [Waybar] Add custom update manager 2022-10-03 15:21:57 +02:00
rhiobet 7b9a3c41dd [mpv] UOSC conf 2022-09-30 12:37:07 +02:00
rhiobet 1444f19ae7 [Sway] Switch to waybar 2022-09-30 12:36:49 +02:00
rhiobet 813af84bba [NeoVim] Add impatient 2022-09-09 14:34:03 +02:00
rhiobet 86e2d5ab84 [NeoVim] Updates 2022-09-08 18:42:49 +02:00
rhiobet 2c900d1ca5 [NeoVim] Fix file open in neo-tree 2022-09-07 18:37:00 +02:00
rhiobet f0f796572c [NeoVim] Small changes 2022-08-30 17:48:42 +02:00
rhiobet a87dbbef64 [PipeWire] Add noboost mic rules 2022-08-30 13:35:15 +02:00
rhiobet ab38c8b5b3 [NeoVim] Disable Hologram auto display 2022-08-30 12:14:30 +02:00
rhiobet 5e638eed29 [NeoVim] Call PackerSync after Fennel changes 2022-08-30 12:14:30 +02:00
rhiobet 85a4b244d0 [NeoVim] Display PNGs directly in floating windows 2022-08-26 17:46:55 +02:00
rhiobet 27a642d04e [NeoVim] Add Hologram 2022-08-25 21:37:07 +02:00
rhiobet 370a677344 [NeoVim] Slight syntax improvements 2022-08-25 21:36:31 +02:00
rhiobet cebfc517fe [NeoVim] Open binary files with xdg-open 2022-08-25 17:03:52 +02:00
rhiobet 65004eb166 [NeoVim] Fix tree-sitter bootstrap error 2022-08-25 03:58:48 +02:00
rhiobet 4059a6501a [NeoVim] Actually working bootstrap 2022-08-24 18:33:02 +02:00
rhiobet b411775c77 [NeoVim] Clean plugins settings 2022-08-24 16:05:58 +02:00
rhiobet a68c8f70b2 Small fixes 2022-08-24 14:04:55 +02:00
rhiobet 4f2eda40e6 [NeoVim] The world is now Fennel 2022-08-24 14:04:55 +02:00
rhiobet bf8d567d01 [NeoVim] Fennel More 2022-08-23 20:44:19 +02:00
rhiobet 643958bb39 [NeoTree] Handle vimtex QuickFix window 2022-08-23 16:09:56 +02:00
rhiobet d15417dce5 [NeoVim] More Fennel 2022-08-23 14:25:51 +02:00
rhiobet 4ec619d04e [NeoVim] Starting the Fennel journey 2022-08-22 20:48:51 +02:00
rhiobet ae90912567 [NeoVim] Better LSP management 2022-08-22 16:01:07 +02:00
rhiobet 32e6c9f4d5 [NeoVim] Packer Bootstrap 2022-08-22 16:00:38 +02:00
rhiobet 84dbb0666a [NeoVim] Configure LTeX 2022-08-22 15:11:03 +02:00
rhiobet 69b73d8323 [Ranger] Add dragon-drop shortcut 2022-08-18 15:44:11 +02:00
rhiobet 43ffd3ae92 Make KeePassXC float 2022-08-17 18:50:54 +02:00
rhiobet fd49af2c96 [i3status] Update configuration 2022-08-17 18:50:35 +02:00
rhiobet e4b925062c Remove outdated Sway scripts 2022-08-17 18:35:01 +02:00
rhiobet af1ebdaede Get rid of some old coc files 2022-08-17 18:13:37 +02:00
rhiobet 61d3f1dffe Autostart KeePassXC 2022-08-17 15:22:27 +02:00
rhiobet aea55f75e8 [NeoVim] Add Mason 2022-08-17 15:21:59 +02:00
rhiobet 4732cf9b1a [NeoVim] Update cmp template 2022-08-05 19:31:20 +02:00
rhiobet b0999f012c [NeoVim] Add null-ls 2022-08-05 18:57:58 +02:00
rhiobet 43ba9953aa [NeoVim] LaTeX + Snippets 2022-07-25 19:08:00 +02:00
rhiobet d38ce6a1c7 [NeoVim] Install nvim-cmp 2022-07-25 15:37:57 +02:00
rhiobet f850d9588c [WorkspaceRename] Add Vivaldi 2022-07-25 15:36:33 +02:00
rhiobet 217ff74e2e Make the world even more opaque 2022-07-12 14:26:43 +02:00
rhiobet c8a88f5f15 [NeoVim] Add diffview 2022-07-12 14:23:56 +02:00
rhiobet 14a9061e3d Make the world opaque 2022-07-12 13:20:38 +02:00
rhiobet a504e27e19 Update status bar configuration 2022-07-11 17:17:34 +02:00
rhiobet 176e5dd276 [NeoVim] Remove neo-tree's fading 2022-07-08 19:44:55 +02:00
rhiobet 94428c4747 Perfected NeoVim 2022-07-04 21:02:36 +02:00
rhiobet b79cb19b10 Add smartindent 2022-07-04 15:02:06 +02:00
rhiobet cf85b92cad More changes 2022-07-04 14:47:07 +02:00
rhiobet 7ec8924d10 Changes 2022-07-04 11:52:55 +02:00
rhiobet 8f40b17cad Small theming changes 2022-06-10 15:49:16 +02:00
rhiobet e813a072da NeoVim clean and updated config 2022-06-10 15:48:14 +02:00
rhiobet 6c67b9a43c Configure Sway client titles 2022-05-23 17:49:23 +02:00
rhiobet b0f154e479 Update 2022-05-05 17:38:38 +02:00
rhiobet 23e8261859 Stuff 2021-12-06 17:14:36 +01:00
rhiobet 421e7b21f4 Cleaning 2021-11-19 12:31:15 +01:00
rhiobet 8b65270f5a Mouse cursor and electron flags 2021-11-19 12:22:59 +01:00
rhiobet c538cc0ff5 Disable opacity for kitty-scratch 2021-11-16 18:27:32 +01:00
rhiobet e5bb82de21 Icon for kitty-scratch 2021-11-16 16:43:59 +01:00
rhiobet c2f9d53ead Use scratchpad + more workspace icons 2021-11-16 16:40:27 +01:00
rhiobet 6cf171227a Add mako and update confs 2021-11-10 15:38:52 +01:00
rhiobet 02a9e46f96 Can't believe I didn't commit mpv bindsym 2021-02-26 18:30:37 +01:00
rhiobet a63e61145c Add systemd environment variables 2020-09-11 18:12:32 +02:00
rhiobet fb5bd85e77 Mostly just slurp 2020-08-25 15:40:25 +02:00
rhiobet 6532cab1f6 Update JACK setup 2020-07-17 13:45:45 +02:00
77 changed files with 2722 additions and 1166 deletions
+4 -18
View File
@@ -1,23 +1,9 @@
alias update='yay -Pw && yay -Sc && yay -Syu --sudoloop && yay -c && sudo pacdiff' alias update='yay -Pw && yay -Sc && yay --editmenu -Syu --sudoloop --devel && yay -c \
alias gemocstudio='PATH=/usr/lib/jvm/java-9-jdk/bin/:$PATH ~/gemoc/GemocStudio' && sudo pacdiff \
; pkill -SIGUSR1 i3status-rs \
; read -s -k "?Update finished! Press any key to exit..."'
alias sl='ls' alias sl='ls'
alias ls='ls --color=auto' alias ls='ls --color=auto'
alias cat='ccat -G Keyword="*glay*" -G Decimal="glay" -G Plaintext="glay" --bg=dark' alias cat='ccat -G Keyword="*glay*" -G Decimal="glay" -G Plaintext="glay" --bg=dark'
alias youtube='URL=https://www.youtube.com/watch\?v\=Mvvsa5HAJiI\&list\=RDMM\&start_radio\=1 && PLAYLIST="" && for i in {1..30} ; do URL="https://www.youtube.com"`curl -s -b ~/.config/youtube-dl/youtube.txt $URL | grep "next-playlist-list-item" | sed '\''s/.*href=\"//'\'' | sed '\''s/\".*//'\'' | sed '\''s/\&/\&/g'\''` ; PLAYLIST="$PLAYLIST\n`echo $URL | sed '\''s/\&list.*//'\''`" ; done ; echo "$PLAYLIST" | mpv --playlist=-' alias youtube='URL=https://www.youtube.com/watch\?v\=Mvvsa5HAJiI\&list\=RDMM\&start_radio\=1 && PLAYLIST="" && for i in {1..30} ; do URL="https://www.youtube.com"`curl -s -b ~/.config/youtube-dl/youtube.txt $URL | grep "next-playlist-list-item" | sed '\''s/.*href=\"//'\'' | sed '\''s/\".*//'\'' | sed '\''s/\&/\&/g'\''` ; PLAYLIST="$PLAYLIST\n`echo $URL | sed '\''s/\&list.*//'\''`" ; done ; echo "$PLAYLIST" | mpv --playlist=-'
function javaversion() {
if [ "$#" -ne 1 ]; then
echo "Expected parameter <java_version>"
else
if [ "$1" -eq 8 ]; then
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk
elif [ "$1" -eq 9 ]; then
export JAVA_HOME=/usr/lib/jvm/java-9-jdk
elif [ "$1" -eq 10 ]; then
export JAVA_HOME=/usr/lib/jvm/java-10-openjdk
elif [ "$1" -eq 11 ]; then
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
fi
export PATH=$JAVA_HOME/bin:$PATH
fi
}
+2 -2
View File
@@ -4,8 +4,8 @@
export EDITOR=nvim export EDITOR=nvim
export CUPS_SERVER=cups-sam.inria.fr:631 export CUPS_SERVER=cups-sam.inria.fr:631
export GTK_THEME=NumixSolarizedDarkBlue export GTK_THEME=SolArc-Dark
export GTK2_RC_FILES=/usr/share/themes/NumixSolarizedDarkBlue/gtk-2.0/gtkrc export GTK2_RC_FILES=/usr/share/themes/SolArc-Dark/gtk-2.0/gtkrc
export QT_QPA_PLATFORMTHEME=gtk2 export QT_QPA_PLATFORMTHEME=gtk2
[[ -f ~/.bashrc ]] && . ~/.bashrc [[ -f ~/.bashrc ]] && . ~/.bashrc
-51
View File
@@ -1,51 +0,0 @@
{
"settings": {
"stable": {
"settings": {
"bda-gs-1": true,
"bda-gs-2": false,
"bda-gs-3": false,
"bda-gs-4": false,
"bda-gs-5": false,
"bda-gs-6": false,
"bda-gs-7": false,
"bda-gs-8": true,
"bda-es-0": false,
"bda-es-1": false,
"bda-es-2": false,
"bda-es-4": false,
"bda-es-6": false,
"bda-es-7": false,
"bda-gs-b": false,
"bda-es-8": false,
"bda-dc-0": false,
"bda-css-0": true,
"bda-css-1": false,
"bda-es-9": false,
"fork-dm-1": false,
"fork-ps-1": true,
"fork-ps-2": true,
"fork-ps-3": true,
"fork-ps-4": true,
"fork-ps-5": true,
"fork-es-2": false,
"fork-es-3": false,
"fork-wp-1": true,
"fork-wp-2": false,
"fork-beta": true,
"reactDevTools": false,
"transparency": true
},
"plugins": {},
"themes": {
"Frosted Glass": true
}
},
"canary": {},
"ptb": {}
},
"version": "0.3.4",
"emoteCacheDays": 7,
"emoteCacheDate": "2020-07-12T10:26:39.158Z",
"bdcustomcss": "I2FwcC1tb3VudCAuY2hhdC0zYlJ4eHUgLm1lc3NhZ2VzV3JhcHBlci0zbFpEZlkgW2NsYXNzKj10aW1lc3RhbXBdLAojYXBwLW1vdW50IC5jaGF0LTNiUnh4dSAubWVzc2FnZXNXcmFwcGVyLTNsWkRmWSAubWVzc2FnZUNvbnRlbnQtMnFXV3hDLAojYXBwLW1vdW50IC5zaWRlYmFyLTJLOHBGaCAuY29udGFpbmVyLVBOa2ltYyAuY29udGFpbmVyRGVmYXVsdC0xWm5BRHEgLndyYXBwZXItMXVjalRkOm5vdCgubW9kZU11dGVkLTNvc3k3aik6bm90KC5tb2RlVW5yZWFkLTF6cEZkQSk6bm90KC5tb2RlU2VsZWN0ZWQtMXpBcEpfKSAuY29udGVudC0zYXRfQVUgLm5hbWUtM19Ec21nLAojYXBwLW1vdW50IC5zaWRlYmFyLTJLOHBGaCAuY29udGFpbmVyLVBOa2ltYyAuY29udGFpbmVyRGVmYXVsdC0xWm5BRHEgLndyYXBwZXItMXVjalRkOm5vdCgubW9kZU11dGVkLTNvc3k3aik6bm90KC5tb2RlVW5yZWFkLTF6cEZkQSk6bm90KC5tb2RlU2VsZWN0ZWQtMXpBcEpfKSAuY29udGVudC0zYXRfQVUgc3ZnLAojYXBwLW1vdW50IC5zaWRlYmFyLTJLOHBGaCAuY2hhbm5lbC0yUUQ5X08gewogICAgY29sb3I6ICM5M2ExYTEgIWltcG9ydGFudDsKfQoKI2FwcC1tb3VudCA6OnNlbGVjdGlvbiwKI2FwcC1tb3VudCAuY2hhdC0zYlJ4eHUgLm1lbnRpb24sCiNhcHAtbW91bnQgLm1lbWJlcnMtMTk5OHBCIC5tZW1iZXItMy1ZWFVlLnNlbGVjdGVkLWFYaFFSNiAucm9sZUNvbG9yLXJ6MnZNMCwKI2FwcC1tb3VudCAubWVtYmVycy0xOTk4cEIgLm1lbWJlci0zLVlYVWUgLmJvdFRhZy0yV1BKNzQsCiNhcHAtbW91bnQgLnNpZGViYXItMks4cEZoIC5jb250YWluZXItUE5raW1jIC5jb250YWluZXJEZWZhdWx0LTFabkFEcS5zZWxlY3RlZC0zN2pfaVUgLmNvbnRlbnQtM2F0X0FVIC5uYW1lLTNfRHNtZywKI2FwcC1tb3VudCAuc2lkZWJhci0ySzhwRmggLmNvbnRhaW5lci1QTmtpbWMgLmNvbnRhaW5lckRlZmF1bHQtMVpuQURxLnNlbGVjdGVkLTM3al9pVSAuY29udGVudC0zYXRfQVUgc3ZnLAojYXBwLW1vdW50IC50b29sdGlwQmxhY2stUFBHNDd6LCAjYXBwLW1vdW50IC50b29sdGlwQnJhbmQtZzAzTno4LCAjYXBwLW1vdW50IC50b29sdGlwUmVkLTgtOU5lUCwKI2FwcC1tb3VudCAuYnViYmxlLTN3ZTJkaSwgI2FwcC1tb3VudCAuc2lkZWJhci0ySzhwRmggLmNvbnRhaW5lci1QTmtpbWMgLmNvbnRhaW5lckRlZmF1bHQtMVpuQURxIC53cmFwcGVyLTF1Y2pUZDpub3QoLm1vZGVNdXRlZC0zb3N5N2opLm1vZGVVbnJlYWQtMXpwRmRBIC5jb250ZW50LTNhdF9BVSAubmFtZS0zX0RzbWcsCiNhcHAtbW91bnQgLnNpZGViYXItMks4cEZoIC5jb250YWluZXItUE5raW1jIC5jb250YWluZXJEZWZhdWx0LTFabkFEcSAud3JhcHBlci0xdWNqVGQ6bm90KC5tb2RlTXV0ZWQtM29zeTdqKS5tb2RlVW5yZWFkLTF6cEZkQSAuY29udGVudC0zYXRfQVUgc3ZnIHsKICAgIGNvbG9yOiAjMDAyYjM2ICFpbXBvcnRhbnQ7CiAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50Owp9CgojYXBwLW1vdW50IC5zaWRlYmFyLTJLOHBGaCAuY29udGFpbmVyLVBOa2ltYyAuY29udGFpbmVyRGVmYXVsdC0xWm5BRHEgLndyYXBwZXItMXVjalRkOm5vdCgubW9kZU11dGVkLTNvc3k3aikubW9kZVVucmVhZC0xenBGZEEgLmNvbnRlbnQtM2F0X0FVIHsKICAgIGJhY2tncm91bmQ6ICMyNjhiZDIgIWltcG9ydGFudDsKfQoKI2FwcC1tb3VudCAuc2lkZWJhci0ySzhwRmggLmNoYW5uZWwtMlFEOV9PLnNlbGVjdGVkLWFYaFFSNiB7CiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodmFyKC0tQkctZ3JhZGllbnQtZGlyZWN0aW9uKSwgcmdiYSh2YXIoLS1CRy1ncmFkaWVudC1vbmUpLCAxKSAyMCUsIHJnYmEodmFyKC0tQkctZ3JhZGllbnQtdHdvKSwgMSkpOwogICAgY29sb3I6ICMwMDJiMzYgIWltcG9ydGFudDsKICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7Cgp9"
}
@@ -1,45 +0,0 @@
/**
* @name Frosted Glass
* @author Gibbu#1211
* @version 2.0.0
* @description Edited with https://gibbu.me/editor/frostedglass | Base theme: Frosted Glass by Gibbu#1211
* @invite ZHthyCw
* @donate https://paypal.me/IanRGibson
* @authorId 174868361040232448
* @source https://github.com/Gibbu/BetterDiscord-Themes/tree/master/FrostedGlass
* @website https://gibbu.me/editor/frostedglass
*/
@import url('https://fonts.googleapis.com/css?family=DejaVu+Sans+Mono:300,400,500,600,700,800,900&display=swap');
@import url('https://gibbu.github.io/BetterDiscord-Themes/FrostedGlass/base.css');
@import url('https://discord-custom-covers.github.io/usrbg/snippets/userPopouts.css');
@import url('https://discord-custom-covers.github.io/usrbg/snippets/modals.css');
@import url('https://monstrousdev.github.io/themes/addons/user-tags.css');
@import url('https://gibbu.github.io/BetterDiscord-Themes/addons/windows-titlebar.css');
:root {
--background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAADGHpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHja7ZZbkhshDEX/WUWWgCSEYDk8q7KDLD8XGnvsSTKZqXylyk01DwGS4Ehtu/Hj+3Tf8LAX74JaijlGjyfkkLmgk/z1lF2TD7t+lK3xk9zdJxgiQSvXMMUjH5Az1vORt6OnQK4PivI4E/V5ohxFnI6Bm0fHkNBlwPejqBxFwsdyuMb1WI452eMRzr51fDrtft2qghhHjWQBdWBvFjP6iX0w3Ftfjs7Gee3Teul5P3a3pbh55iEkftfp8lKut+BV1CwZ6zCLfsCooB/2/XoHZHABnudzt8Pfb/Ppbm7tHx73mWOdcHgOg1vvhIH7ZeJdGMRx5PKOXry3W+7eT5D+Hvdm+uCRhbthfvIIE/Hp0OntnbOnOcd1uhIijhzPoW4nIbdRzl5XEOxtEcXwKvq2S0ZJyICGGOu++YrSKBMD8aRAnQpNR2N3GjX4GHiwoWVuLFuWwCJzkwU9rEKTTbJ0hABLQ6jICoQ53fGFtt287TVKsNwJS5mgjLDlr8V9ZtFHZc6VS0Tu5AxdgHmlIdxY5FaNZSBC81yq7gu+leeAPGAFCHVfc8IBi6+Xiqr0FluyQQvWKdorucn6tX8pCrCtcIYECHwkUYrkjdmIcJEJgAr5xBK4ggCpcoeTHEQi2CAJYNphj9Fey8qXHF9JkFCJYmCTpQBWCIr4sZAQQ0VFg6pGNU2atUSJwSHDYrS4PrfFxIKpRTNLlq0kSSFpislSSjmVzFnwNdaMdMwp51wKbBZoLtEVrC+QVK5SQ9Uaq9VUcy0N4dNC0xabtdRyK527dORxj9166rmXQQOhNMJQN+KwkUYeZSLWpswwdcZpM808y53aofpL+QI1OtR4k1rr7E4NUrOrdTteoGQxAzEOBOK2CCCgeTHziULgRW4x85mRFcpwUhebTr5Q5OAkDGKddGf3Ru5L3FwMH3Ljz5JzC90/ktvc3NAHbr+h1tcvcdvErixcd+oF2TdpFE6Fa/WTm1vdVNYv6r+1L0UvRS9FL0UvRS9FL0X/tyL8fcjuJ86avGDS/Nk0AAABhGlDQ1BJQ0MgcHJvZmlsZQAAeJx9kT1Iw0AcxV9Ti1IqCnYQUcjQOlkQFXHUKhShQqgVWnUwufQLmjQkKS6OgmvBwY/FqoOLs64OroIg+AHi5Oik6CIl/i8ttIjx4Lgf7+497t4BQr3MNKtrHNB020wl4mImuyp2vyKAEfQjiqDMLGNOkpLwHF/38PH1LsazvM/9OXrVnMUAn0g8ywzTJt4gnt60Dc77xGFWlFXic+Ixky5I/Mh1pclvnAsuCzwzbKZT88RhYrHQwUoHs6KpEU8RR1RNp3wh02SV8xZnrVxlrXvyF4Zy+soy12kOI4FFLEGCCAVVlFCGjRitOikWUrQf9/APuX6JXAq5SmDkWEAFGmTXD/4Hv7u18pMTzaRQHAi8OM5HFOjeBRo1x/k+dpzGCeB/Bq70tr9SB2Y+Sa+1tcgR0LcNXFy3NWUPuNwBBp8M2ZRdyU9TyOeB9zP6piwwcAsE15q9tfZx+gCkqavkDXBwCIwWKHvd4909nb39e6bV3w9c3HKeW1/O7QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAuIwAALiMBeKU/dgAAAAd0SU1FB+QFHRAqDr9nsVkAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAGElEQVQY02Nk0DbrYSACMDEQCUYVUkchAIoXAQHyaCuwAAAAAElFTkSuQmCC');
--background-image-blur: 0px;
--popout-modal-image: var(--background-image);
--popout-modal-blur: 0px;
--home-button-image: url('https://gibbu.github.io/BetterDiscord-Themes/FrostedGlass/assets/discord.svg');
--serverlist-brightness: 0;
--left-brightness: 0;
--middle-brightness: 0;
--right-brightness: 0;
--popout-modal-brightness: 0.5;
--gradient-primary: 133,153,0;
--gradient-secondary: 133,153,0;
--gradient-direction: 320deg;
--tint-colour: 255,51,159;
--tint-brightness: 0;
--window-padding: 0px;
--window-roundness: 0px;
--scrollbar-colour: rgba(255,255,255,0.05);
--link-colour: #00b0f4;
--show-gift-gif-buttons: none;
--font: 'DejaVu Sans Mono';
--update-notice-1: none;
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

+2
View File
@@ -0,0 +1,2 @@
--enable-features=VaapiVideoDecoder,VaapiVideoEncoder,WebUIDarkMode
--force-dark-mode
+2
View File
@@ -0,0 +1,2 @@
--enable-features=UseOzonePlatform
--ozone-platform=wayland
+2
View File
@@ -0,0 +1,2 @@
--enable-features=UseOzonePlatform
--ozone-platform=wayland
+1
View File
@@ -0,0 +1 @@
XDG_CURRENT_DESKTOP=sway
File diff suppressed because it is too large Load Diff
+9 -3
View File
@@ -184,6 +184,11 @@ font_family DejaVuSansMono
#: map cmd+shift+v paste_from_buffer a1 #: map cmd+shift+v paste_from_buffer a1
map ctrl+shift+up send_text application \033[0A
map ctrl+shift+right send_text application \033[0C
map ctrl+shift+down send_text application \033[0B
map ctrl+shift+left send_text application \033[0D
#: Note that copying to the clipboard is a security risk, as all #: Note that copying to the clipboard is a security risk, as all
#: programs, including websites open in your browser can read the #: programs, including websites open in your browser can read the
#: contents of the system clipboard. #: contents of the system clipboard.
@@ -261,7 +266,7 @@ font_family DejaVuSansMono
#: Terminal bell {{{ #: Terminal bell {{{
# enable_audio_bell yes enable_audio_bell no
#: Enable/disable the audio bell. Useful in environments that require #: Enable/disable the audio bell. Useful in environments that require
#: silence. #: silence.
@@ -490,7 +495,8 @@ color15 #fdf6e3
#: The foreground and background colors #: The foreground and background colors
background_opacity 0.8 #background_opacity 0.8
background_opacity 1.0
#: The opacity of the background. A number between 0 and 1, where 1 is #: The opacity of the background. A number between 0 and 1, where 1 is
#: opaque and 0 is fully transparent. This will only work if #: opaque and 0 is fully transparent. This will only work if
@@ -508,7 +514,7 @@ background_opacity 0.8
#: change transparency of windows set dynamic_background_opacity to #: change transparency of windows set dynamic_background_opacity to
#: yes (this is off by default as it has a performance cost) #: yes (this is off by default as it has a performance cost)
# dynamic_background_opacity no dynamic_background_opacity yes
#: Allow changing of the background_opacity dynamically, using either #: Allow changing of the background_opacity dynamically, using either
#: keyboard shortcuts (increase_background_opacity and #: keyboard shortcuts (increase_background_opacity and
+18
View File
@@ -0,0 +1,18 @@
anchor=top-left
background-color=#002b36ff
border-color=#859900ff
border-size=1
font=DejaVu Sans Mono 10
icon-location=left
margin=6
max-visible=-1
output=eDP-1
progress-color=source #859900ff
text-color=#93a1a1
text-alignment=left
width=400
[app-name="Spotify"]
anchor=top-right
icon-location=right
text-alignment=center
+15
View File
@@ -1,3 +1,18 @@
ctrl+r cycle-values video-rotate 0 90 180 270 ctrl+r cycle-values video-rotate 0 90 180 270
ctrl+b cycle deband ctrl+b cycle deband
b cycle-values scale "bilinear" "spline64"; cycle-values dscale "bilinear" "mitchell"; cycle-values cscale "bilinear" "sinc"
ctrl+s sub-reload ctrl+s sub-reload
ctrl+S cycle shuffle
S screenshot-to-file /tmp/mpv-screenshot.png ; run sh -c "cat /tmp/mpv-screenshot.png | wl-copy -t image/png"
x add sub-delay -0.04
X add sub-delay +0.04
- add video-zoom -.25
+ add video-zoom .25
kp8 add video-pan-y .05
kp6 add video-pan-x -.05
kp2 add video-pan-y -.05
kp4 add video-pan-x .05
kp5 set video-pan-x 0; set video-pan-y 0; set video-zoom 0
+27 -5
View File
@@ -1,14 +1,36 @@
profile=gpu-hq profile=gpu-hq
gpu-api=vulkan #gpu-api=vulkan
gpu-context=waylandvk gpu-context=wayland
hwdec=none hwdec=none
fullscreen=yes
ao=jack #ao=jack
audio-channels=stereo #audio-channels=stereo
scale=spline64
dscale=mitchell
cscale=sinc
cscale-window=blackman
cscale-radius=3
deband=yes deband=yes
screenshot-format=png
#Interpolation
#blend-subtitles=yes
#video-sync=display-resample
#interpolation=yes
#tscale=box
#tscale-window=sphinx
#tscale-radius=1.0
#tscale-clamp=0.0
sub-gray=yes # pour pas avoir des subs jaunes de merde
sub-gauss=0.7 # ça rend les subs un peu moins carrés, peut-être à adapter à vos envies
sub-font="Roboto Regular"
prefetch-playlist=yes prefetch-playlist=yes
rebase-start-time=no rebase-start-time=no
ytdl-format=bestvideo[height<=?1080]+bestaudio/best ytdl-format=bestvideo[height<=?1080]+bestaudio/best
ytdl-raw-options="rm-cache-dir=:yes-playlist=" #ytdl-raw-options="rm-cache-dir=:yes-playlist="
osd-fractions=yes
+1
View File
@@ -0,0 +1 @@
network=yes
+2
View File
@@ -0,0 +1,2 @@
timeline_size_max_fullscreen=40
top_bar_controls=no
+34
View File
@@ -0,0 +1,34 @@
local utils = require("mp.utils")
local function get_kdata(kid)
local resp = mp.command_native({
name = "subprocess",
args = { "curl", "-s", "https://kara.moe/api/karas/" .. kid },
capture_stdout = true,
})
return utils.parse_json(resp.stdout)
end
local function get_title(kdata)
return kdata.titles[kdata.titles_default_language]
end
local function on_load()
local path = mp.get_property("path")
local kid = path:match("^https://kara.moe/kara/.-([0-9a-z-]+)$")
if kid == nil then
kid = path:match("^https://live.karaokes.moe/%?video=([0-9a-z-]+)$")
end
if kid ~= nil then
local kdata = get_kdata(kid)
local mediafile = "https://kara.moe/downloads/medias/" .. kdata.mediafile
local subfile = "https://kara.moe/downloads/lyrics/" .. kdata.subfile
mp.set_property("stream-open-filename", mediafile)
mp.set_property("replaygain-fallback", kdata.gain)
mp.set_property("title", get_title(kdata))
mp.commandv("sub-add", subfile)
end
end
mp.register_event("start-file", on_load)
+4
View File
@@ -0,0 +1,4 @@
lua/**
plugin/packer_compiled.lua
**.spl
+8
View File
@@ -0,0 +1,8 @@
{
"$schema": "https://raw.githubusercontent.com/sumneko/vscode-lua/master/setting/schema.json",
"Lua.diagnostics.globals": [
"vim",
"use",
"packer_bootstrap"
]
}
-59
View File
@@ -1,59 +0,0 @@
{
"explorer.keyMappings": {
"k": "nodePrev",
"j": "nodeNext",
"*": "toggleSelection",
"<tab>": "actionMenu",
"<Left>": "collapse",
"<Right>": "expand",
"J": ["toggleSelection", "normal:j"],
"K": ["toggleSelection", "normal:k"],
"gl": "expandRecursive",
"gh": "collapseRecursive",
"o": "expandOrCollapse",
"<cr>": "open",
"e": "open",
"E": "openInVsplit",
"t": "openInTab",
"<bs>": "gotoParent",
"y": "copyFilepath",
"Y": "copyFilename",
"c": "copyFile",
"x": "cutFile",
"p": "pasteFile",
"d": "delete",
"D": "deleteForever",
"a": "addFile",
"A": "addDirectory",
"r": "rename",
".": "toggleHidden",
"R": "refresh",
"?": "help",
"q": "quit",
"X": "systemExecute",
"gd": "listDrive",
"f": "search",
"F": "searchRecursive",
"gf": "gotoSource:file",
"gb": "gotoSource:buffer",
"[[": "sourcePrev",
"]]": "sourceNext",
"[d": "diagnosticPrev",
"]d": "diagnosticNext",
"[c": "gitPrev",
"]c": "gitNext",
"<<": "gitStage",
">>": "gitUnstage"
}
}
+3
View File
@@ -0,0 +1,3 @@
(require :plugins)
(require :settings.general)
+15
View File
@@ -0,0 +1,15 @@
(fn setup [module args]
`((. (require ,module) :setup) ,args))
(fn packer [config ...]
"syntactic sugar over packer's startup function."
(local packer `(require :packer))
`((. ,packer :startup)
{1 (lambda [(unquote (sym :use))]
(use :wbthomason/packer.nvim)
(do ,...)
(if (= true _G.packer_bootstrap)
((. ,packer :sync))))
:config ,config}))
{: setup : packer}
+115
View File
@@ -0,0 +1,115 @@
(import-macros {: packer-setup : use!} :hibiscus.packer)
(import-macros {: packer : setup} :macros)
(packer-setup)
(packer
{:display {:open_fn (. (require :packer.util) :float)}}
(use! :lewis6991/impatient.nvim)
(use! :udayvir-singh/tangerine.nvim)
(use! :udayvir-singh/hibiscus.nvim)
(use! "~/.config/nvim/themes/solarized.nvim"
:module :settings.solarized)
(use! :nvim-treesitter/nvim-treesitter
:run (fn [] ((. (require :nvim-treesitter.install) :update) {:with_sync true}))
:module :settings.treesitter)
(use! :feline-nvim/feline.nvim
:requires [:kyazdani42/nvim-web-devicons
"~/.config/nvim/themes/solarized.nvim"]
:after [:solarized.nvim]
:module :settings.feline)
(use! :s1n7ax/nvim-window-picker
:module :settings.window-picker)
(use! :nvim-neo-tree/neo-tree.nvim
:branch "v2.x"
:requires [:nvim-lua/plenary.nvim
:nvim-telescope/telescope.nvim
:kyazdani42/nvim-web-devicons
:MunifTanjim/nui.nvim
:s1n7ax/nvim-window-picker
:edluffy/hologram.nvim]
:after [:nvim-window-picker
:hologram.nvim]
:module :settings.neo-tree)
(use! :mrjones2014/smart-splits.nvim
:module :settings.smart-splits)
(use! :famiu/bufdelete.nvim
:module :bufdelete)
(use! :akinsho/bufferline.nvim
:tag "v2.*"
:requires [:kyazdani42/nvim-web-devicons
:famiu/bufdelete.nvim
"~/.config/nvim/themes/solarized.nvim"]
:after [:bufdelete.nvim
:solarized.nvim]
:module :settings.bufferline)
(use! :windwp/nvim-autopairs
:module :settings.autopairs)
(use! :lewis6991/gitsigns.nvim
:module :settings.gitsigns)
(use! :declancm/cinnamon.nvim
:module :settings.cinnamon)
(use! :stevearc/aerial.nvim
:module :settings.aerial)
(use! :nmac427/guess-indent.nvim
:module :settings.guess-indent)
(use! :nvim-telescope/telescope.nvim
:requires [:nvim-lua/plenary.nvim
:s1n7ax/nvim-window-picker]
:after [:nvim-window-picker]
:module :settings.telescope)
(use! :sindrets/diffview.nvim
:requires [:nvim-lua/plenary.nvim]
:module :settings.diffview)
(use! :neovim/nvim-lspconfig
:requires [:williamboman/mason-lspconfig.nvim
:williamboman/mason.nvim
:hrsh7th/cmp-omni
:hrsh7th/cmp-nvim-lsp
:onsails/lspkind.nvim
:hrsh7th/nvim-cmp
:saadparwaiz1/cmp_luasnip
:rafamadriz/friendly-snippets
:L3MON4D3/LuaSnip]
:module :settings.lspconfig)
(use! :jose-elias-alvarez/null-ls.nvim
:module :settings.null-ls)
(use! :lervag/vimtex
:module :settings.vimtex)
(use! :edluffy/hologram.nvim
:module :settings.hologram)
(use! :lambdalisue/suda.vim)
(use! :folke/noice.nvim
:event :VimEnter
:requires [:MunifTanjim/nui.nvim]
:module :settings.noice)
(use! :glacambre/firenvim
:run (fn [] ((. vim.fn :firenvim#install) 0))
:module :settings.firenvim)
(use! :iamcco/markdown-preview.nvim
:run (fn [] ((. vim.fn :mkdp#util#install)))))
+18
View File
@@ -0,0 +1,18 @@
(import-macros {: map!} :hibiscus.vim)
(import-macros {: setup} :macros)
(if (= vim.g.started_by_firenvim nil)
(setup :aerial
{:backends [:lsp :treesitter]
:layout {:width 30
:placement "edge"}
:attach_mode "global"
:close_automatic_events [:unsupported]
:open_automatic true
:ignore {:filetypes [""
"neo-tree"
"aerial"
"packer"
"qf"
"help"
"DiffviewFileHistory"]}}))
+3
View File
@@ -0,0 +1,3 @@
(import-macros {: setup} :macros)
(setup :nvim-autopairs)
+20
View File
@@ -0,0 +1,20 @@
(import-macros {: map!} :hibiscus.vim)
(import-macros {: setup} :macros)
(local colors (require :solarized.colors))
(if (= vim.g.started_by_firenvim nil)
(setup :bufferline
{:options {:close_command "Bdelete %d"
:right_mouse_command "Bdelete %d"
:offsets [{:filetype "neo-tree" :text "File Explorer" :padding 1}
{:filetype "aerial" :text "Outline" :padding 1}]
:enforce_regular_tabs true
:separator_style "slant"}
:highlights {:separator {:fg colors.bg_alt}
:separator_visible {:fg colors.bg_alt}
:separator_selected {:fg colors.bg_alt}}}))
(map! [n] :<S-Right> ":bnext<CR>")
(map! [n] :<S-Left> ":bprevious<CR>")
(map! [n] :q ":Bwipeout<CR>")
+3
View File
@@ -0,0 +1,3 @@
(import-macros {: setup} :macros)
(setup :cinnamon)
+10
View File
@@ -0,0 +1,10 @@
(import-macros {: map!} :hibiscus.vim)
(import-macros {: setup} :macros)
(setup :diffview
{:keymaps {:view {:q ":tabc<CR>"}
:file_panel {:q ":tabc<CR>"}
:file_history_panel {:q ":tabc<CR>"}}})
(map! [n] :r ":DiffviewOpen<CR>")
(map! [n] :R ":DiffviewFileHistory %<CR>")
+33
View File
@@ -0,0 +1,33 @@
(import-macros {: setup} :macros)
(local colors (require :solarized.colors))
(local theme
{:fg colors.fg
:bg colors.bg_alt
:black colors.black
:skyblue colors.paleblue
:cyan colors.cyan
:green colors.green
:oceanblue colors.blue
:magenta colors.magenta
:orange colors.orange
:red colors.red
:violet colors.purple
:white colors.white
:yellow colors.yellow})
(if (= vim.g.started_by_firenvim nil)
(setup :feline
{:theme theme
:force_inactive {:filetypes ["^neo\\-tree$"
"^aerial$"
"^packer$"
"^startify$"
"^fugitive$"
"^fugitiveblame$"
"^qf$"
"^help$"
"^DiffviewFileHistory"]
:buftypes ["^terminal$"]
:bufnames ["neo\\-.*"]}}))
+12
View File
@@ -0,0 +1,12 @@
(import-macros {: g!} :hibiscus.vim)
(g! :firenvim_config {:globalSettings {:alt "all"}
:localSettings {:.* {:cmdline "neovim"
:content "text"
:priority 0
:selector "textarea"
:takeover "never"}
:https://www.deepl.com/ {:selector "textarea[aria-labelledby=translation-source-heading]"
:takeover "always"}
:https://zimbra.inria.fr/ {:selector "body[id=tinymce]"
:takeover "always"}}})
+16
View File
@@ -0,0 +1,16 @@
(import-macros {: g! : set!} :hibiscus.vim)
(g! :maplocalleader ",")
(set! :clipboard "unnamedplus")
(set! :expandtab true)
(set! :fileencoding "utf-8")
(set! :ignorecase true)
(set! :mouse "a")
(set! :showmode false)
(set! :number true)
(set! :shiftwidth 2)
(set! :signcolumn "yes")
(set! :smartcase true)
(set! :spelllang "en")
(set! :tabstop 2)
+3
View File
@@ -0,0 +1,3 @@
(import-macros {: setup} :macros)
(setup :gitsigns)
@@ -0,0 +1,3 @@
(import-macros {: setup} :macros)
(setup :guess-indent)
+4
View File
@@ -0,0 +1,4 @@
(import-macros {: setup} :macros)
(setup :hologram
{:auto_display false})
+87
View File
@@ -0,0 +1,87 @@
(import-macros {: exec : map!} :hibiscus.vim)
(local M {})
(local files
{:dictionary (.. (vim.fn.stdpath "config") "/spell/en.utf-8.add")
:disabledRules (.. (vim.fn.stdpath "config") "/spell/disable.txt")
:hiddenFalsePositives (.. (vim.fn.stdpath "config") "/spell/false.txt")})
(fn file_exists [file]
(let [f (io.open file "rb")]
(if f
(do (f:close) true)
false)))
(fn lines_from [file]
(if (file_exists file)
(icollect [line (io.lines file)] line)
[]))
(fn get_client_by_name [name]
(let [buf_clients (vim.lsp.buf_get_clients)]
(var found_client nil)
(each [_ client (ipairs buf_clients) :until found_client]
(match client.name name (set found_client client)))
found_client))
(fn update_config [lang configtype]
(let [client (get_client_by_name "ltex")]
(if (and client (. client.config.settings.ltex configtype))
(do (tset client.config.settings.ltex configtype {lang (lines_from (. files configtype))})
(client.notify "workspace/didChangeConfiguration" client.config.settings))
(vim.notify "Error when reading dictionary config, check it"))))
(fn add_to_file [configtype lang file value]
(let [dict (lines_from file)]
(var found_existing false)
(each [_ v (ipairs dict) :until found_existing]
(if (= v value) (set found_existing true)))
(if (not found_existing)
(let [file (io.open file "a+")]
(if file
(do (file:write (.. value "\n"))
(file:close)
(update_config lang configtype))
(vim.notify (string.format "Failed insert %s" value)))))))
(fn do_command [arg configtype]
(each [lang words (pairs arg)]
(each [_ word (ipairs words)]
(add_to_file configtype lang (. files configtype) word))))
(tset vim.lsp.commands "_ltex.addToDictionary"
(fn [command _] (do_command (. command.arguments 1 :words) :dictionary)))
(tset vim.lsp.commands "_ltex.disableRules"
(fn [command _] (do_command (. command.arguments 1 :ruleIds) :disabledRules)))
(tset vim.lsp.commands "_ltex.hideFalsePositives"
(fn [command _] (do_command (. command.arguments 1 :falsePositives) :hiddenFalsePositives)))
(fn post_attach []
(exec [[:setlocal "spell"] [:setlocal "nospell"]])
(update_config "en-US" "dictionary")
(update_config "en-US" "disabledRules")
(update_config "en-US" "hiddenFalsePositives")
(map! [n :buffer :verbose] :zug (fn [] (exec [[:normal! "zug"]])
(update_config "en-US" "dictionary")
nil)
"Remove word from spellfile and update ltex")
(map! [n :buffer :verbose] :zg (fn [] (exec [[:normal! "zg"]])
(update_config "en-US" "dictionary")
nil)
"Add word to spellfile and update ltex")
nil)
(fn M.setup [opts]
((. (require :lspconfig) :ltex :setup)
{:on_attach (fn [client] (opts.on_attach client)
(post_attach)
nil)
:capabilities opts.capabilities
:flags opts.flags
:settings {:ltex {:dictionary []
:disabledRules []
:hiddenFalsePositives []}
:additionalRules {:enablePickyRules true}}}))
M
+80
View File
@@ -0,0 +1,80 @@
(import-macros {: map!} :hibiscus.vim)
(import-macros {: setup} :macros)
(local servers
[:eslint
:gopls
:ltex
:pyright
:sumneko_lua
:tsserver])
; Mappings.
(map! [n :noremap] "<space>e" vim.diagnostic.open_float)
(map! [n :noremap] "[d" vim.diagnostic.goto_prev)
(map! [n :noremap] "]d" vim.diagnostic.goto_next)
(map! [n :noremap] "<space>q" vim.diagnostic.setloclist)
(fn on_attach [_ bufnr]
(map! [n :noremap :buffer] :gD vim.lsp.buf.declaration)
(map! [n :noremap :buffer] :gd vim.lsp.buf.definition)
(map! [n :noremap :buffer] :K vim.lsp.buf.hover)
(map! [n :noremap :buffer] :gi vim.lsp.buf.implementation)
(map! [n :noremap :buffer] :<C-k> vim.lsp.buf.signature_help)
(map! [n :noremap :buffer] :<space>wa vim.lsp.buf.add_workspace_folder)
(map! [n :noremap :buffer] :<space>wr vim.lsp.buf.remove_workspace_folder)
(map! [n :noremap :buffer] :<space>wl (fn [] (print (vim.inspect (vim.lsp.buf.list_workspace_folders)))))
(map! [n :noremap :buffer] :<space>D vim.lsp.buf.type_definition)
(map! [n :noremap :buffer] :<space>rn vim.lsp.buf.rename)
(map! [n :noremap :buffer] :<space>ca vim.lsp.buf.code_action)
(map! [n :noremap :buffer] :gr vim.lsp.buf.references)
(map! [n :noremap :buffer] :<space>f vim.lsp.buf.formatting))
(local capabilities ((. (require :cmp_nvim_lsp) :default_capabilities) (vim.lsp.protocol.make_client_capabilities)))
(setup :mason)
(setup :mason-lspconfig
{:ensure_installed servers})
(each [_ lsp (pairs servers)]
(local lsp_opts
{:on_attach on_attach
:capabilities capabilities
:flags {:debounce_text_changes 150}})
(local (status config) (pcall require (.. "settings.lsp." lsp)))
(if status
(config.setup lsp_opts)
((. (require :lspconfig) lsp :setup) lsp_opts)))
; LuaSnip setup
(local luasnip (require :luasnip))
((. (require :luasnip.loaders.from_vscode) :lazy_load))
; nvim-cmp setup
(local lspkind (require :lspkind))
(local cmp (require :cmp))
(cmp.setup
{:snippet {:expand (fn [args] (luasnip.lsp_expand args.body))}
:mapping (cmp.mapping.preset.insert
{:<C-d> (cmp.mapping.scroll_docs -4)
:<C-f> (cmp.mapping.scroll_docs 4)
:<C-Space> (cmp.mapping.complete)
:<CR> (cmp.mapping.confirm {:behavior cmp.ConfirmBehavior.Replace
:select true})
:<Tab> (cmp.mapping
(fn [fallback] (if (cmp.visible)
(cmp.select_next_item)
(luasnip.expand_or_jumpable)
(luasnip.expand_or_jump)
(fallback)))
[:i :s])
:<S-Tab> (cmp.mapping
(fn [fallback] (if (cmp.visible)
(cmp.select_prev_item)
(luasnip.jumpable -1)
(luasnip.jump -1)
(fallback)))
[:i :s])})
:sources [{:name "luasnip"}
{:name "nvim_lsp"}]
:formatting {:format (lspkind.cmp_format {:mode "symbol_text"})}})
+78
View File
@@ -0,0 +1,78 @@
(import-macros {: g! : exec : map! : augroup!} :hibiscus.vim)
(import-macros {: setup} :macros)
(g! :neo_tree_remove_legacy_commands 1)
(setup :neo-tree
{:close_if_last_window true
:window {:width 30
:mappings {:<cr> "open_with_window_picker"
:S "split_with_window_picker"
:s "vsplit_with_window_picker"}}
:filesystem {:filtered_items {:visible true}
:follow_current_file true
:window {:mappings {:/ "noop"
:g/ "fuzzy_finder"
:f "noop"
:ff (fn [] (exec [[:Telescope "find_files"]]))
:fg (fn [] (exec [[:Telescope "live_grep"]]))
:<CR> "custom_open"
:e "open"
:<S-Right> (fn [])
:<S-Left> (fn [])}}
:commands {:custom_open (fn [state]
(let [node (state.tree:get_node)
path (node:get_id)
quoted_path (.. "'" (.. path "'"))]
(match (path:match "^.+%.(.+)$")
"png" (let [bufnr (vim.api.nvim_create_buf false true)
image (: (require :hologram.image) :new path {})
max_width (- vim.o.columns 4)
max_height (- vim.o.lines 2)
tmp_width (math.min image.cols max_width)
tmp_height (* image.rows (/ tmp_width image.cols))
height (math.min tmp_height max_height)
width (* image.cols (/ height image.rows))
winnr (vim.api.nvim_open_win bufnr true {:relative "editor"
:width (math.ceil width)
:height (+ (math.ceil height) 1)
:row 0
:col 2})]
(exec [[:setlocal "nonumber"]])
(vim.api.nvim_buf_attach bufnr false {:on_detach (fn [_ bufnr]
(image:delete bufnr {:free true}))})
(image:display 1 0 bufnr {}))
_ (do
(exec [[:silent
"!file -bL --mime" quoted_path
"| grep -qv '^text\\|^inode\\|^application/json'"]])
(if (= vim.v.shell_error 1)
((. (require :neo-tree.sources.filesystem.commands) :open_with_window_picker) state)
(exec [[:silent
"!xdg-open" quoted_path
"&"]]))))))}}
:renderers {:directory [[:indent]
[:icon]
[:current_filter]
[:name]
[:clipboard]
{1 :diagnostics :errors_only true}]
:file [[:indent]
[:icon]
{1 :name :use_git_status_colors true :zindex 10}
[:clipboard]
[:bufnr]
[:modified]
[:diagnostics]
[:git_status]]}})
(map! [n] :f ":Neotree focus<CR>")
(map! [n] :F (fn [] (exec [[:Neotree "toggle"] [:Neotree "toggle" "action=show"]])))
(augroup! :neo-tree [[FileType] [qf] "set nobuflisted|call feedkeys(\"F\")"])
; Startup
(if (= vim.g.started_by_firenvim nil)
(if (or (= (vim.fn.expand "%") "") (not= (vim.fn.isdirectory (vim.fn.expand "%")) 0))
((. (require :neo-tree.command) :execute) {:action "focus" :dir (vim.fn.getcwd)})
((. (require :neo-tree.command) :execute) {:action "show" :dir (vim.fn.getcwd)})))
+3
View File
@@ -0,0 +1,3 @@
(import-macros {: setup} :macros)
(setup :noice)
+4
View File
@@ -0,0 +1,4 @@
(import-macros {: setup} :macros)
(setup :null-ls
{:sources [(. (require :null-ls) :builtins :diagnostics :flake8)]})
@@ -0,0 +1,12 @@
(import-macros {: map!} :hibiscus.vim)
(local smart-splits (require :smart-splits))
(map! [n] :<C-Left> smart-splits.move_cursor_left)
(map! [n] :<C-Down> smart-splits.move_cursor_down)
(map! [n] :<C-Up> smart-splits.move_cursor_up)
(map! [n] :<C-Right> smart-splits.move_cursor_right)
(map! [n] :<C-S-Up> smart-splits.resize_up)
(map! [n] :<C-S-Down> smart-splits.resize_down)
(map! [n] :<C-S-Left> smart-splits.resize_left)
(map! [n] :<C-S-Right> smart-splits.resize_right)
+11
View File
@@ -0,0 +1,11 @@
(import-macros {: g!} :hibiscus.vim)
(g! :solarized_italic_comments true)
(g! :solarized_italic_keywords true)
(g! :solarized_italic_functions true)
(g! :solarized_italic_variables false)
(g! :solarized_contrast true)
(g! :solarized_borders false)
(g! :solarized_disable_background false)
((. (require :solarized) :set))
+19
View File
@@ -0,0 +1,19 @@
(import-macros {: setup} :macros)
(local actions (require :telescope.actions))
(setup :telescope
{:defaults {:mappings {:n {:S actions.file_split
:s actions.file_vsplit}}
:get_selection_window (. (require :window-picker) :pick_window)}
:pickers {:find_files {:find_command [:fd "--type" "f"
"--strip-cwd-prefix"
"--hidden"]}
:live_grep {:vimgrep_arguments ["rg"
"--color=never"
"--no-heading"
"--with-filename"
"--line-number"
"--column"
"--smart-case"
"--hidden"]}}})
+19
View File
@@ -0,0 +1,19 @@
(import-macros {: setup} :macros)
(setup :nvim-treesitter.configs
{:ensure_installed
[:c
:fennel
:java
:javascript
:lua
:python
:rust
:typescript]
:sync_install false
:ignore_install []
:highlight {:enable true
:disable []
:additional_vim_regex_highlighting false}})
((. (require :nvim-treesitter.install) :setup_auto_install))
+4
View File
@@ -0,0 +1,4 @@
(import-macros {: g!} :hibiscus.vim)
(g! :vimtex_view_method "zathura")
(g! :vimtex_syntax_enabled 0)
@@ -0,0 +1,7 @@
(import-macros {: setup} :macros)
(setup :window-picker
{:autoselect_one true
:selection_chars "ABCDEFGHIJKLMNOP"
:filter_rules {:bo {:filetype [:NvimTree :neo-tree :notify :aerial]
:buftype [:terminal]}}})
-148
View File
@@ -1,148 +0,0 @@
tnoremap <Esc> <C-\><C-n>
set termguicolors
"set colorcolumn=88
set background=dark
match Error /\%>88c/
highlight Pmenu ctermbg=gray guibg=gray
" if hidden is not set, TextEdit might fail.
set hidden
" Some servers have issues with backup files, see #649
set nobackup
set nowritebackup
" Better display for messages
set cmdheight=2
" You will have bad experience for diagnostic messages when it's default 4000.
set updatetime=300
" don't give |ins-completion-menu| messages.
set shortmess+=c
" always show signcolumns
set signcolumn=yes
" Use tab for trigger completion with characters ahead and navigate.
" Use command ':verbose imap <tab>' to make sure tab is not mapped by other plugin.
inoremap <silent><expr> <TAB>
\ pumvisible() ? "\<C-n>" :
\ <SID>check_back_space() ? "\<TAB>" :
\ coc#refresh()
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
function! s:check_back_space() abort
let col = col('.') - 1
return !col || getline('.')[col - 1] =~# '\s'
endfunction
" Use <c-space> to trigger completion.
inoremap <silent><expr> <c-space> coc#refresh()
" Use <cr> to confirm completion, `<C-g>u` means break undo chain at current position.
" Coc only does snippet and additional edit on confirm.
inoremap <expr> <cr> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>"
" Or use `complete_info` if your vim support it, like:
" inoremap <expr> <cr> complete_info()["selected"] != "-1" ? "\<C-y>" : "\<C-g>u\<CR>"
" Use `[g` and `]g` to navigate diagnostics
nmap <silent> [g <Plug>(coc-diagnostic-prev)
nmap <silent> ]g <Plug>(coc-diagnostic-next)
" Remap keys for gotos
nmap <silent> gd <Plug>(coc-definition)
nmap <silent> gy <Plug>(coc-type-definition)
nmap <silent> gi <Plug>(coc-implementation)
nmap <silent> gr <Plug>(coc-references)
" Use K to show documentation in preview window
nnoremap <silent> K :call <SID>show_documentation()<CR>
function! s:show_documentation()
if (index(['vim','help'], &filetype) >= 0)
execute 'h '.expand('<cword>')
else
call CocAction('doHover')
endif
endfunction
" Highlight symbol under cursor on CursorHold
autocmd CursorHold * silent call CocActionAsync('highlight')
" Remap for rename current word
nmap <leader>rn <Plug>(coc-rename)
augroup mygroup
autocmd!
" Setup formatexpr specified filetype(s).
autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected')
" Update signature help on jump placeholder
autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp')
augroup end
" Remap for do codeAction of selected region, ex: `<leader>aap` for current paragraph
xmap <leader>a <Plug>(coc-codeaction-selected)
nmap <leader>a <Plug>(coc-codeaction-selected)
" Remap for do codeAction of current line
nmap <leader>ac <Plug>(coc-codeaction)
" Fix autofix problem of current line
nmap <leader>qf <Plug>(coc-fix-current)
" Create mappings for function text object, requires document symbols feature of
" languageserver.
xmap if <Plug>(coc-funcobj-i)
xmap af <Plug>(coc-funcobj-a)
omap if <Plug>(coc-funcobj-i)
omap af <Plug>(coc-funcobj-a)
" Use <TAB> for select selections ranges, needs server support, like: coc-tsserver,
" coc-python
nmap <silent> <TAB> <Plug>(coc-range-select)
xmap <silent> <TAB> <Plug>(coc-range-select)
" Use `:Format` to format current buffer
command! -nargs=0 Format :call CocAction('format')
" Use `:Fold` to fold current buffer
command! -nargs=? Fold :call CocAction('fold', <f-args>)
" use `:OR` for organize import of current buffer
command! -nargs=0 OR :call CocAction('runCommand', 'editor.action.organizeImport')
" Add status line support, for integration with other plugin, checkout `:h coc-status`
set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')}
" Using CocList
" Show all diagnostics
nnoremap <silent> <space>a :<C-u>CocList diagnostics<cr>
" Manage extensions
nnoremap <silent> <space>e :<C-u>CocList extensions<cr>
" Show commands
nnoremap <silent> <space>c :<C-u>CocList commands<cr>
" Find symbol of current document
nnoremap <silent> <space>o :<C-u>CocList outline<cr>
" Search workspace symbols
nnoremap <silent> <space>s :<C-u>CocList -I symbols<cr>
" Do default action for next item.
nnoremap <silent> <space>j :<C-u>CocNext<CR>
" Do default action for previous item.
nnoremap <silent> <space>k :<C-u>CocPrev<CR>
" Resume latest coc list
nnoremap <silent> <space>p :<C-u>CocListResume<CR>
" coc-explorer
nmap <leader>e :CocCommand explorer<CR>
call plug#begin()
Plug 'rbgrouleff/bclose.vim'
Plug 'francoiscabrol/ranger.vim'
Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'lervag/vimtex'
Plug 'iCyMind/NeoSolarized'
call plug#end()
colorscheme NeoSolarized
+36
View File
@@ -0,0 +1,36 @@
local install_path = vim.fn.stdpath('data')..'/site/pack/packer/start/'
local function bootstrap(repo)
local url = 'https://github.com/' .. repo
local name = repo:gsub('.*/', '')
local path = install_path .. name
local bootstrapped = false
if vim.fn.empty(vim.fn.glob(path)) > 0 then
vim.fn.system({'git', 'clone', '--depth', '1', url, path})
vim.cmd('packadd ' .. name)
bootstrapped = true
end
return bootstrapped
end
bootstrap('lewis6991/impatient.nvim')
require('impatient')
local tangerine_bootstrapped = bootstrap('udayvir-singh/tangerine.nvim')
bootstrap('udayvir-singh/hibiscus.nvim')
if tangerine_bootstrapped then
require('tangerine').setup({
compiler = {
hooks = {'oninit'}
}
})
require('init')
else
require('tangerine').setup({})
local diagnostics = require('tangerine.vim.hooks').run()
require('init')
if #diagnostics > 0 then
require('packer').sync()
end
end
+1
View File
@@ -0,0 +1 @@
false.txt
+1
View File
@@ -0,0 +1 @@
PASSIVE_VOICE
+23
View File
@@ -0,0 +1,23 @@
Read-Eval-Print-Loop
Flexowriter
Teitelman
Interlisp
JOHNNIAC
REPLs
Mathematica
GPLs
Plasil
Monto
Keidel
Meinte
Asf
Sdf
ToolBus
projectional
QL
DSLs
Coulon
JADEL
microservicization
ISEC
Jeanjean
+2 -1
View File
@@ -340,7 +340,7 @@ map i display_file
map ? help map ? help
map W display_log map W display_log
map w taskview_open map w taskview_open
map S shell $SHELL map S shell zsh
map : console map : console
map ; console map ; console
@@ -446,6 +446,7 @@ map yp yank path
map yd yank dir map yd yank dir
map yn yank name map yn yank name
map y. yank name_without_extension map y. yank name_without_extension
map <C-d> shell dragon-drop -a -x %p
# Filesystem Operations # Filesystem Operations
map = chmod map = chmod
+8 -1
View File
@@ -1,3 +1,7 @@
configuration {
modi: "run,mugen:~/.config/rofi/modi/mugen";
}
* { * {
active-background: #20ABE0; active-background: #20ABE0;
active-foreground: @foreground; active-foreground: @foreground;
@@ -22,7 +26,7 @@
background: #00000000; background: #00000000;
background-color: @background; background-color: @background;
background-opaque: #002b36cc; background-opaque: #002b36ff;
foreground: #93a1a1; foreground: #93a1a1;
border-color: @foreground; border-color: @foreground;
spacing: 2; spacing: 2;
@@ -159,3 +163,6 @@ textbox-prompt-colon {
text-color: @normal-foreground; text-color: @normal-foreground;
} }
element-text {
text-color: inherit;
}
+27
View File
@@ -0,0 +1,27 @@
#!/bin/sh
mugen_host=${MUGEN_HOST:-https://kara.moe}
kara_api="${MUGEN_KARA_API:-$mugen_host/api/karas}"
karamedia="${MUGEN_KARAOKEMEDIA:-$mugen_host/downloads}"
# karaoke medias and lyrics directories
medias="$karamedia/medias"
lyrics="$karamedia/lyrics"
kid=$ROFI_INFO
if [ -z "$@" ]; then
/usr/bin/printf "\0prompt\x1fkaraoke search\n"
exit 0
else
if [ -z "$kid" ]; then
/usr/bin/printf "\0prompt\x1fmugen\n"
query="$(echo "$@" | tr " " "+")"
curl "https://kara.moe/api/karas/search?collections=dbcf2c22-524d-4708-99bb-601703633927,c7db86a0-ff64-4044-9be4-66dd1ef1d1c1,2fa2fe3f-bb56-45ee-aa38-eae60e76f224,efe171c0-e8a1-4d03-98c0-60ecf741ad52&filter=$query&size=100" | jq -r '.content | .[] | "\(.mediafile)\u0000info\u001f\(.kid)"'
fi
fi
# choose karaoke
[ -z "$kid" ] && exit
mpv "https://kara.moe/kara/$kid" > /dev/null 2>&1 &
exec 1>&-
+164
View File
@@ -0,0 +1,164 @@
* {
active-background: #20ABE0;
active-foreground: @foreground;
normal-background: @background;
normal-foreground: @foreground;
urgent-background: #288AB2;
urgent-foreground: @foreground;
alternate-active-background: @background;
alternate-active-foreground: @foreground;
alternate-normal-background: @background;
alternate-normal-foreground: @foreground;
alternate-urgent-background: @background;
alternate-urgent-foreground: @foreground;
selected-active-background: #288AB2;
selected-active-foreground: @foreground;
selected-normal-background: #859900cc;
selected-normal-foreground: #002b36;
selected-urgent-background: #4BB0CF;
selected-urgent-foreground: @foreground;
background: #00000000;
background-color: @background;
background-opaque: #002b36ff;
foreground: #93a1a1;
border-color: @foreground;
spacing: 2;
}
#window {
background-color: @background-opaque;
border: 0px;
padding: 0ch 0.5ch 0ch 0.5ch;
}
#mainbox {
border: 0;
padding: 0;
}
#message {
border: 2px 0px 0px;
border-color: @border-color;
padding: 1px;
}
#textbox {
text-color: @foreground;
}
inputbar {
children: [ prompt,textbox-prompt-colon,entry,case-indicator ];
}
textbox-prompt-colon {
expand: false;
str: ":";
margin: 0px 0.3em 0em 0em;
text-color: @normal-foreground;
}
#listview {
fixed-height: 0;
border: 1px 0px 0px;
border-color: @border-color;
spacing: 3px;
scrollbar: true;
padding: 9px 0px 0px;
}
#element {
border: 0;
padding: 3px 3px 3px;
}
#element.normal.normal {
background-color: @normal-background;
text-color: @normal-foreground;
}
#element.normal.urgent {
background-color: @urgent-background;
text-color: @urgent-foreground;
}
#element.normal.active {
background-color: @active-background;
text-color: @active-foreground;
}
#element.selected.normal {
background-color: @selected-normal-background;
text-color: @selected-normal-foreground;
border: 0px;
border-color: @foreground;
}
#element.selected.urgent {
background-color: @selected-urgent-background;
text-color: @selected-urgent-foreground;
}
#element.selected.active {
background-color: @selected-active-background;
text-color: @selected-active-foreground;
}
#element.alternate.normal {
background-color: @alternate-normal-background;
text-color: @alternate-normal-foreground;
}
#element.alternate.urgent {
background-color: @alternate-urgent-background;
text-color: @alternate-urgent-foreground;
}
#element.alternate.active {
background-color: @alternate-active-background;
text-color: @alternate-active-foreground;
}
#scrollbar {
width: 4px;
border: 0;
handle-width: 8px;
padding: 0;
}
#sidebar {
border: 2px 0px 0px;
border-color: @border-color;
}
#button.selected {
background-color: @selected-normal-background;
text-color: @selected-normal-foreground;
}
#inputbar {
spacing: 0;
text-color: @normal-foreground;
padding: 1px;
}
#case-indicator {
spacing: 0;
text-color: @normal-foreground;
}
#entry {
spacing: 0;
text-color: @normal-foreground;
}
#prompt {
spacing: 0;
text-color: @normal-foreground;
}
element-text {
text-color: inherit;
}
-2
View File
@@ -1,2 +0,0 @@
Backup/**
Extracted/**
@@ -1,37 +0,0 @@
# Solarized Dark official palette
# Base03 #002b36
# Base02 #073642
# Base01 #586e75
# Base00 #657b83
# Base0 #839496
# Base1 #93a1a1
# Base2 #eee8d5
# Base3 #fdf6e3
# Yellow #b58900
# Orange #cb4b16
# Red #dc322f
# Magenta #d33682
# Violet #6c71c4
# Blue #268bd2
# Cyan #2aa198
# Green #859900
[Base]
main_fg = 859900
secondary_fg = 93a1a1
main_bg = 002b36
sidebar_and_player_bg = 002b36
cover_overlay_and_shadow = 000000
indicator_fg_and_button_bg = 859900
pressing_fg = 002b36
slider_bg = 073642
sidebar_indicator = 859900
hover_button_bg = 859900
scrollbar_fg_and_selected_row_bg = 073642
sidebar_indicator_and_hover_button_bg = 859900
pressing_button_fg = 002b36
pressing_button_bg = 859900
selected_button = 859900
miscellaneous_bg = 859900
miscellaneous_hover_bg = 859900
preserve_1 = FFFFFF
@@ -1,657 +0,0 @@
:root {
--bar-height: 60px;
--modspotify_sidebar_indicator: #839496;
--modspotify_hover_button_bg: #b58900;
}
* {
font-family: "DejaVu Sans Mono", "Helvetica Neue", "Arial", sans-serif !important;
font-weight: 400;
}
/*Round corner cover image*/
.card-image,
.card-placeholder-wrapper,
.card-image-content-wrapper,
.Card:not(.Card--artist) .Card__image,
.Card:not(.Card--artist) .Card__image-wrapper {
border-radius: 0px !important;
overflow: hidden !important
}
/*Hide some annoying elements like profile name and pic, upgrade button and device connect bar at bottom, new playlist button*/
.upgrade-button,
.view-player .remote-playback-bar,
.NewPlaylistButton {
display: none !important;
}
/*Exclude these elements from draggable property because it stops them from clickable*/
.profile-items-container,
.profile {
-webkit-app-region: no-drag !important;
}
/*Thinner scrollbar*/
::-webkit-scrollbar {
height: 6px !important;
width: 6px !important;
background-color: transparent;
}
/*Round corner scrollbar*/
::-webkit-scrollbar-thumb {
border-radius: 0px !important;
}
/*Hide top and bottom buttons of scrollbar */
/*who uses those, lol*/
::-webkit-scrollbar-button {
display: none !important;
}
/*Hide cover image overlay*/
.card-overlay {
visibility: hidden !important;
}
/*Lift up cover when hovering on it*/
.card-image-content-wrapper,
.Card:not(.Card--artist) .Card__image-wrapper {
transition-property: transform, box-shadow !important;
transition-duration: 1s !important;
transition-timing-function: cubic-bezier(.3,0,0,1) !important;
box-shadow: 0 5px 20px rgba(0,0,0,0.1);
}
.card-image-hit-area:not(.no-hover):hover .card-image-content-wrapper,
.Card:not(.Card--artist) .Card__image-hit-area-counter-scale:hover .Card__image-wrapper {
transform: translateY(-10px);
box-shadow: 0 15px 30px rgba(0,0,0,0.3);
}
.card-image-hit-area .card-button-add,
.card-image-hit-area .card-button-play,
.card-image-hit-area .card-button-more,
.Card__image-hit-area .card-button-add,
.Card__image-hit-area .card-button-play,
.Card__image-hit-area .card-button-more,
.Card__image-hit-area .Card__play-button,
.Card__image-hit-area .Card__add-button,
.Card__image-hit-area .Card__more-button,
.Card__image-hit-area .Card__overlay {
transition-property: all !important;
transition-duration: 1s !important;
transition-timing-function: cubic-bezier(.3,0,0,1) !important;
opacity: 0 !important;
}
.card-image-hit-area:not(.no-hover):hover .card-button-add,
.card-image-hit-area:not(.no-hover):hover .card-button-play,
.card-image-hit-area:not(.no-hover):hover .card-button-more,
.Card__image-hit-area:not(.no-hover):hover .card-button-add,
.Card__image-hit-area:not(.no-hover):hover .card-button-play,
.Card__image-hit-area:not(.no-hover):hover .card-button-more {
opacity: 1 !important;
transform: translateY(-10px);
}
.Card__image-hit-area:hover .Card__play-button,
.Card__image-hit-area:hover .Card__add-button,
.Card__image-hit-area:hover .Card__more-button,
.Card__image-hit-area:hover .Card__overlay {
opacity: 1 !important;
}
.glue-page-header__content .glue-page-header__image-inner {
border-radius: 0px;
box-shadow: unset !important;
}
.glue-page-header__full-description-overlay {
box-shadow: unset !important;
}
.card-placeholder-wrapper {
background: transparent !important;
}
/*Spice up search input background*/
.SearchInput {
color: var(--modspotify_main_fg);
}
.SearchInput__input {
color: var(--modspotify_secondary_fg);
background-color: rgba(var(--modspotify_rgb_scrollbar_fg_and_selected_row_bg), 0.5) !important;
border-radius: 0px !important;
padding-left: 34px;
}
.sidebar:hover .sidebar-navbar.sidebar-scroll-element {
opacity: 1!important;
}
.view-player .player-controls-container,
.view-player .player-controls-container .controls {
overflow: visible !important;
}
.view-player .player-controls-container .controls .button-play{
height:50px !important;
border-radius:50px !important;
background: transparent !important;
box-shadow:0 0 0 0 !important;
width:50px !important;
overflow: visible !important;
box-shadow: 0 4px 15px rgba(0,0,0,0.2) !important;
transition:none 0.3s cubic-bezier(.3,0,.7,1);
}
.view-player .player-controls-container .controls .button-play:before{
font-size:18px !important;
padding-left: 16px !important;
padding-top: 9px !important;
}
.view-player .player-controls-container .controls .button-play:after {
box-shadow: unset !important;
}
.view-player .player-controls-container {
position: absolute !important;
width: 100% !important;
}
.view-player .player-controls-container .controls {
width: 100% !important;
height: 100% !important;
align-items: center !important;
margin-top : 0px !important;
}
/*
Hide the song duration and elapsed text. I dont know where to put those so I just hide them
*/
.view-player .player-controls-container .progress-container .elapsed,
.view-player .player-controls-container .progress-container .remaining {
display: none !important;
}
/* Add round corner for Gerne and Mood cards */
.gc-image-container,
.gc-image {
border-radius: 0px !important;
}
/*
Collage of 3 album covers is usually seen in Browse and Chart.
*/
.card-puff__image-wrapper,
.card-puff__info-container,
.card-puff__card-image {
border-radius: 0px !important;
}
.card-puff__image-wrapper {
overflow: visible;
}
.card-puff__card-image {
box-shadow: 5px 0 30px rgba(0,0,0,0.7);
overflow: visible;
}
.card-puff__title-container {
background-color: transparent !important;
}
.card-puff.pressed .card-puff__image-wrapper,
.card-puff.pressed .card-puff__info-container {
opacity: 0.7 !important;
}
.card-puff__title {
padding: 5px 10px 5px 10px !important;
background-color: var(--modspotify_main_bg) !important;
border-radius: 0px;
border: 2px solid var(--modspotify_main_fg);
}
/*
We use round corner on cover so they look weird in original
form, so I move last cover to the right 20px and first one to the left 20px
*/
.card-puff__card-image:nth-child(1) {
right: 20px;
box-shadow: 0 0 0 0 !important;
}
.card-puff__card-image:nth-child(3) {
left: 20px;
}
.grid-overlay-label {
top: 140px !important;
}
/**/
.glue-page-header__background-color {
background-image: none !important;
background: var(--modspotify_main_bg);
}
/* .glue-page-header__sticky {
padding-top: 60px !important;
} */
/*
Remove those title, cringy description and
meaningless followers number
*/
.carousel .card-info-subtitle-description,
.carousel .card-info-subtitle-metadata,
.carousel .card:not(.card-type-station).card-info-title,
.carousel .card.card-type-playlist.image-loaded .card-info-subtitle-description,
.carousel .card.card-type-playlist.image-loaded .card-info-subtitle-metadata {
display: none !important;
}
/*
In top of Browse usually has bunch of Playlist or Album cards,
and they has .carousel as a wrapper and it hides anything that
overflows from its zone, aka our shadow and lifting animation.
*/
.carousel {
overflow: visible !important;
}
/*
Button with text Play
*/
.button.button-green,
.GlueButton.GlueButton--style-green {
color: var(--modspotify_main_bg) !important;
}
/*
Change text color in playlist
*/
.tl-explicit .label,
.tl-premium .label,
.tl-cell:not(.tl-number),
.tl-cell a:link,
.tl-highlight {
color: var(--modspotify_secondary_fg);
}
.card-type-album .card-info-title,
.card-type-track .card-info-title,
.card-type-collection-album .card-info-title,
.card-type-episode .card-info-title {
font-size: 15px;
font-weight: 600 !important;
text-align: center !important;
width: 100% !important;
}
.card-type-album .card-info-subtitle-links,
.card-type-track .card-info-subtitle-links,
.card-type-collection-album .card-info-subtitle-links,
.card-type-episode .card-info-subtitle-links {
text-align: center !important;
width: 100% !important;
}
.tracklist-station-container::after {
background: transparent !important;
}
.GlueHeader__background-overlay {
background: var(--modspotify_main_bg) !important;
}
/* Move navigation buttons and search field to the right and down */
.browser-navigation-top-bar {
margin-left: 40px !important;
margin-top: 15px !important;
}
.SearchInput__input,
.SearchInput__searchIcon,
.SearchInput__clearButton {
margin-top: 15px !important;
}
.content-top-bar__profile-menu-button {
margin-top: 15px !important;
}
.body-container--windows:not(.with-buddy-list):not(.messagebar) .content-top-bar__profile {
margin-right: 110px !important;
margin-top: -5px;
}
/* Spice up Fullscreen mode */
#view-player .album-art .album-art__image {
border-radius: 0px !important;
box-shadow: 0 10px 70px rgba(var(--modspotify_rgb_cover_overlay_and_shadow),.5) !important;
}
#view-player .album-art .album-art__image .card-image-content-wrapper,
#view-player .album-art .album-art__image .card-image-content-wrapper .card-image {
border-radius: 0px !important;
}
/* Daily mixes */
.carousel .card-info-wrapper.card-info-with-description.card-info-with-metadata {
height: 50px !important;
}
/* Remove section divider */
.section-divider {
border-bottom: 0 !important;
}
/* Adjust Position of border active tab in Nav bar at top
and add little glowing effect
*/
.nav.navbar-nav {
overflow: hidden !important;
}
.nav.navbar-nav a {
overflow: visible !important;
}
.nav.navbar-nav a::after {
bottom: 0px !important;
width: 100% !important;
}
.nav.navbar-nav .active a::after{
box-shadow: 0 0px 20px !important;
}
.nav.navbar-nav a:focus:not(.button):active::after{
background-color: var(--modspotify_pressing_fg) !important;
}
/* Notification bar */
#content-wrapper #view-message-bar {
position: absolute !important;
width: calc(100% - 160px) !important;
margin-left: 80px !important;
border-radius: 0 0 0px 0px !important;
}
/* Small cover Big cover mechanism */
.now-playing.cover-size-transition.active.image-expanded .cover-image {
width: 10px !important;
height: 10px !important;
}
.now-playing.cover-size-transition.active.image-expanded .caption {
padding-left: 0px !important;
}
#view-now-playing a.image {
overflow: visible !important;
}
#view-now-playing.expanded {
width: 200px;
height: 200px;
}
#now-playing-image-large .cover-image {
height: 200px !important;
}
/* Profile arrow in top left */
.content-top-bar__profile-menu-button .dropdown {
position: fixed !important;
top: 10px !important;
-webkit-app-region: no-drag !important;
}
body.body-container--windows .content-top-bar__profile-menu-button .dropdown {
right: 190px !important;
}
body:not(.body-container--windows) .content-top-bar__profile-menu-button .dropdown {
right: 20px !important;
}
/* Small tooltip */
#tooltip {
box-shadow: 0 0 10px rgba(0,0,0,0.2) !important;
border-radius: 0px !important;
border: 2px solid var(--modspotify_main_fg);
padding: 10px 10px;
}
.tooltip-arrow-top, .tooltip-arrow-bottom {
display: none !important;
}
.lyrics-lines-container,
.message-container {
color: #FFFFFF !important;
}
/* Home page */
.GlueCarousel__grid-wrapper::-webkit-scrollbar-thumb {
display: none;
}
.GlueCard__info-wrapper,
.Card__info-wrapper {
margin-bottom: 30px;
}
.card-horizontal-interior-wrapper .card-info-title {
text-align: start !important;
}
.tl-row.selected:hover .tl-cell {
background: var(--modspotify_scrollbar_fg_and_selected_row_bg) !important;
}
.GlueTableRow--is-selected {
background-color: var(--modspotify_scrollbar_fg_and_selected_row_bg) !important;
}
.tracklist-podcast .tl-progress .row-progress__bar {
background-color: var(--modspotify_main_fg);
}
.Header__background-color{
background-color: var(--modspotify_main_bg) !important;
}
.Button--style-green,
.button.button-green, .button.button-white {
border-radius: 25px;
color: var(--modspotify_main_bg) !important;
}
.glue-page-header:not(.glue-page-header--album):not(.glue-page-header--playlist):not(.glue-page-header--artist):not(.glue-page-header--dailymix):not(.glue-page-header--user):not(.glue-page-header--show)
.glue-page-header__content-inner .glue-page-header__title-text,
.HomeHeader .Header__content-inner .Header__title-text-inner,
.MadeForYouHeader .Header__content-inner .Header__title-text-inner,
.RecentlyPlayedPage__header .Header__content-inner .Header__title-text-inner {
background-color: var(--modspotify_main_bg);
padding: 5px 20px;
border: 5px solid var(--modspotify_main_fg) !important;
border-radius: 0px;
box-shadow: 0 4px 12px 0 rgba(var(--modspotify_rgb_cover_overlay_and_shadow),.2);
text-transform: uppercase;
}
.glue-page-header.glue-page-header--album .glue-page-header__content-inner .glue-page-header__title,
.glue-page-header.glue-page-header--artist .glue-page-header__content-inner .glue-page-header__title,
.glue-page-header.glue-page-header--dailymix .glue-page-header__content-inner .glue-page-header__title,
.glue-page-header.glue-page-header--playlist .glue-page-header__content-inner .glue-page-header__title {
margin-top: 10px;
}
span.glue-page-header__title-text {
color: var(--modspotify_main_fg);
}
.glue-page-header .glue-page-header__content-inner .glue-page-header__button {
margin-top: 40px;
}
.glue-page-header__content-inner,
.glue-page-header__data,
.glue-page-header__title,
.Header__content-inner,
.Header__data,
.Header__title,
.Header__title-text,
.Header__title-text-inner {
overflow: visible !important;
}
/*Force player bar to has fixed height*/
.view-player {
height: var(--bar-height) !important;
border-top: 0;
}
.view-player .now-playing {
overflow: unset;
}
.view-player .now-playing .cover-image-link,
.view-player .now-playing .cover-image-link figure {
width: var(--bar-height);
height: var(--bar-height);
}
#now-playing-image-small .cover-image {
position: fixed !important;
width: var(--bar-height);
height: var(--bar-height);
left: 0;
bottom: 0;
}
.view-player .now-playing .cover-image-link-wrapper {
flex: 0 1 calc(var(--bar-height) + 10px);
}
.text-container {
z-index: 3;
}
.view-player .now-playing-container .button-add {
color: var(--modspotify_main_fg) !important;
}
.progress-container .progress-bar,
.progress-container .inner {
top: 0 !important;
margin-top: 0 !important;
height: 5px;
}
.progress-container .progress-bar-wrapper {
top: 0 !important;
height: 5px;
}
.progress-container {
position: fixed !important;
width: 100% !important;
bottom: var(--bar-height) !important;
margin : 0 !important;
}
.progress-container .inner {
border-radius: 0 0px 0px 0 !important;
background-color: var(--modspotify_main_fg) !important;
box-shadow: 0 0px 0px 0 var(--modspotify_main_fg);
}
.glue-page-header__p2s-details,
.glue-page-header__p2s-followers {
display: none;
}
.context-menu {
border: 2px solid var(--modspotify_main_fg);
box-shadow: 0 4px 12px 0 rgba(var(--modspotify_rgb_cover_overlay_and_shadow),.2);
border-radius: 0px !important;
overflow: hidden;
}
#menu-wrapper ::-webkit-scrollbar {
display: none;
}
#menu-wrapper {
border-right: 3px solid black;
border-image: linear-gradient(0deg, transparent , var(--modspotify_scrollbar_fg_and_selected_row_bg) 40%, var(--modspotify_scrollbar_fg_and_selected_row_bg) 60%, transparent 90%) 2 90%;
}
.main-view-wrapper {
overflow: unset;
}
.Button--style-icon-stroke:after,
.Button--style-icon-stroke:hover:after,
.Button--style-icon-stroke,
.glue-page-header__button .button-icon-with-stroke,
.glue-page-header__button .button-icon-with-stroke::after {
box-shadow: unset;
}
.glue-page-header.glue-page-header--artist .glue-page-header__label {
padding-top: 10px;
}
.glue-page-header.glue-page-header--artist.has-custom-image .glue-page-header__label {
padding-top: 8px;
}
.glue-page-header__content .glue-page-header__label {
margin-left: -2px;
z-index: 2;
}
.glue-page-header__label span,
.Header__label span {
background-color: var(--modspotify_main_fg);
color: var(--modspotify_main_bg);
padding: 2px 10px;
}
.glue-page-header__label .header-verified-check {
background-color: transparent;
}
body.remotebar .view-player .player-bar-wrapper {
height: 100%;
}
.SidebarListItem--is-active:after,
.RootlistItem--is-active:after,
/* For Linux */ #view-navigation-bar .item.active:after {
background-color: transparent;
background-image: linear-gradient(90deg, var(--modspotify_sidebar_indicator) , transparent);
opacity: 0.2;
bottom: unset;
top: 5%;
height: 90%;
width: 100%
}
.Header__image-inner {
box-shadow: unset;
}
.button.button-green.contextmenu-active, .button.button-green:not(:disabled):hover {
background-color: var(--modspotify_hover_button_bg);
}
-36
View File
@@ -1,36 +0,0 @@
[Setting]
spotify_path = /opt/spotify
prefs_path = /home/rhiobet/.config/spotify/prefs
current_theme = SolarizedDarkGreen
color_scheme =
inject_css = 1
replace_colors = 1
overwrite_assets = 0
[Preprocesses]
remove_rtl_rule = 1
expose_apis = 1
disable_sentry = 1
disable_ui_logging = 1
[AdditionalOptions]
home = 0
lyric_always_show = 0
lyric_force_no_sync = 0
tastebuds = 0
fastUser_switching = 0
made_for_you_hub = 0
new_feedback_ui = 0
radio = 0
song_page = 0
extensions =
minimal_ui = 0
experimental_features = 0
search_in_sidebar = 0
visualization_high_framerate = 0
custom_apps =
; DO NOT CHANGE!
[Backup]
version = 1.1.10.546.ge08ef575
-3
View File
@@ -1,3 +0,0 @@
body {
--glue-font-family: Karla;
}
+61 -30
View File
@@ -21,8 +21,11 @@ set $term kitty
# set $menu dmenu_path | dmenu | xargs swaymsg exec -- # set $menu dmenu_path | dmenu | xargs swaymsg exec --
set $menu rofi -no-levenshtein-sort -color-enabled -show run\ set $menu rofi -no-levenshtein-sort -color-enabled -show run\
-run-command "zsh -i -c '{cmd}'" | xargs swaymsg exec -- -run-command "zsh -i -c '{cmd}'" | xargs swaymsg exec --
set $srclocker swaylock -c 222222 -u -i eDP-1:~/wallpapers/radiance.png\ set $srclocker swaylock -c 222222 -i eDP-1:~/wallpapers/radiance.png\
-i DP-5:~/wallpapers/hornet.jpg -i DP-4:~/wallpapers/knight.jpg -i DP-5:~/wallpapers/hornet.jpg -i DP-4:~/wallpapers/knight.jpg\
-i DP-7:~/wallpapers/hornet.jpg -i DP-6:~/wallpapers/knight.jpg\
-i DP-9:~/wallpapers/hornet.jpg -i DP-8:~/wallpapers/knight.jpg\
-i HDMI-A-1:~/wallpapers/radiance.png
### Output configuration ### Output configuration
# #
@@ -32,7 +35,10 @@ output eDP-1 pos 0 1480 res 1920 1080
output HDMI-A-1 pos 1920 1480 res 1920 1080 output HDMI-A-1 pos 1920 1480 res 1920 1080
output "Samsung Electric Company SyncMaster H1AK500000" res 3840 2160 output "Samsung Electric Company SyncMaster H1AK500000" res 3840 2160
output "Dell Inc. DELL U2410 F525M0A1082L" pos 1920 680 res 1920 1200 output "Dell Inc. DELL U2410 F525M0A1082L" pos 1920 680 res 1920 1200
output "Dell Inc. DELL U2717D JXRPT83GAHKS" pos 3840 0 mode --custom 2560x1440@39Hz transform 90 #output "Dell Inc. DELL U2717D JXRPT83GAHKS" pos 3840 0 mode --custom 2560x1440@39Hz transform 90
output "Dell Inc. DELL U2717D JXRPT83GAHKS" pos 1920 1480 mode 2560 1440
output "Hewlett Packard HP LA2405x CN43480QK5" pos 3840 320 mode 1920 1200 transform 270
output "Dell Inc. DELL U2410 F525M98C17AL" pos 0 680 mode 1920 1200
output * bg ~/wallpapers/filianore-u.jpg fill output * bg ~/wallpapers/filianore-u.jpg fill
focus output eDP-1 focus output eDP-1
# #
@@ -43,7 +49,14 @@ focus output eDP-1
# You can get the names of your outputs by running: swaymsg -t get_outputs # You can get the names of your outputs by running: swaymsg -t get_outputs
# Mouse cursor # Mouse cursor
seat seat0 xcursor_theme capitaine-cursors 32 set $my_cursor capitaine-cursors
set $my_cursor_size 32
seat seat0 xcursor_theme $my_cursor $my_cursor_size
exec_always {
gsettings set org.gnome.desktop.interface cursor-theme $my_cursor
gsettings set org.gnome.desktop.interface cursor-size $my_cursor_size
}
### Idle configuration ### Idle configuration
# #
@@ -97,10 +110,10 @@ input "9653:84:Samsung_electronics_inc._Samsung_HID_Multi-Touch"\
bindsym $mod+Shift+q kill bindsym $mod+Shift+q kill
# Sound # Sound
bindsym XF86AudioRaiseVolume exec amixer -c 0 sset Master 5%+ bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%
bindsym XF86AudioLowerVolume exec amixer -c 0 sset Master 5%- bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%
bindsym XF86AudioMute exec 'amixer -c 0 sset Master toggle && amixer -c 0 sset Speaker on && amixer -c 0 sset Headphone on' bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
bindsym XF86AudioMicMute exec amixer -c 0 sset Capture toggle bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
# Brightness # Brightness
bindsym XF86MonBrightnessUp exec xbacklight -inc 5 bindsym XF86MonBrightnessUp exec xbacklight -inc 5
@@ -125,9 +138,9 @@ input "9653:84:Samsung_electronics_inc._Samsung_HID_Multi-Touch"\
'swaymsg exit' 'swaymsg exit'
# Screenshot # Screenshot
bindsym Print exec grim\ bindsym Print exec grim -g "$(slurp -d)" - | wl-copy -t image/png
-o $(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name') -\ bindsym Ctrl+Print exec swaymsg -t get_tree | jq -r 'recurse(.nodes[], .floating_nodes[]) | select(.focused and .pid).rect | "\(.x),\(.y) \(.width)x\(.height)"' | grim -g - - | wl-copy -t image/png
| wl-copy -t image/png bindsym Shift+Print exec grim -o $(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name') - | wl-copy -t image/png
# #
# Moving around: # Moving around:
# #
@@ -197,6 +210,9 @@ input "9653:84:Samsung_electronics_inc._Samsung_HID_Multi-Touch"\
# Make the current focus fullscreen # Make the current focus fullscreen
bindsym $mod+f fullscreen bindsym $mod+f fullscreen
# Maximize current focus
bindsym $mod+m exec swaymsg floating true && swaymsg resize set $(swaymsg -t get_workspaces | jq -r '.[] | select(.focused) | .rect | "\(.width)px \(.height)px"')
# Toggle the current focus between tiling and floating mode # Toggle the current focus between tiling and floating mode
bindsym $mod+Shift+space floating toggle bindsym $mod+Shift+space floating toggle
@@ -251,57 +267,66 @@ bindsym Ctrl+Alt+l exec $srclocker
bar { bar {
position top position top
pango_markup enabled pango_markup enabled
font pango:DejaVu Sans Mono, FontAwesome 10 font pango:DejaVu Sans Mono, devicons, FontAwesome 10
# When the status_command prints a new line to stdout, swaybar updates. # When the status_command prints a new line to stdout, swaybar updates.
# The default just shows the current date and time. # The default just shows the current date and time.
#status_command while ~/.config/sway/status.sh; do sleep 1; done #status_command while ~/.config/sway/status.sh; do sleep 1; done
status_command i3status-rs ~/.config/sway/status.toml # status_command i3status-rs ~/.config/sway/status.toml
swaybar_command waybar
status_padding 0 status_padding 0
height 22
colors { colors {
statusline #ffffff statusline #ffffff
background #002b36cc background #002b36ff
inactive_workspace #002b36cc #002b36cc #93a1a1 inactive_workspace #002b36ff #002b36ff #93a1a1
active_workspace #859900cc #859900cc #002b36 active_workspace #859900ff #859900ff #002b36
focused_workspace #859900cc #859900cc #002b36 focused_workspace #859900ff #859900ff #002b36
} }
} }
bindswitch --locked --reload lid:on output eDP-1 disable
bindswitch --locked --reload lid:off output eDP-1 enable
bindsym Ctrl+m exec mpv "$(wl-paste -t text)"
hide_edge_borders both hide_edge_borders both
default_border none default_border none
gaps inner 6 gaps inner 6
#smart_gaps on
client.focused #859900ff #859900ff #002b36
client.focused_inactive #859900ff #859900ff #002b36
client.unfocused #002b36ff #002b36ff #93a1a1
titlebar_padding 5 1
include /etc/sway/config.d/* include /etc/sway/config.d/*
# Assignments # Assignments
assign [class="discord"] workspace 3 assign [class="discord"] workspace 3
assign [class="Spotify"] workspace 3 assign [class="Spotify"] workspace 3
for_window [class="Spotify"] opacity 0.8
#for_window [class="Chromium"] opacity 0.9
exec redshift -O 4500 -m wayland exec redshift -O 4500 -m wayland
exec megasync
exec nm-applet --indicator
exec qjackctl exec ~/.config/sway/workspace_rename.py > ~/.cache/workspace_rename.log 2> ~/.cache/workspace_rename_error.log
for_window [class="QjackCtl"] floating enable
for_window [title="Graphe — QjackCtl"] floating disable
exec ~/.local/start_jack.sh
exec ~/.config/sway/workspace-rename.sh
for_window [class="Tor Browser"] floating enable for_window [class="Tor Browser"] floating enable
for_window [app_id="kitty-scratch"] {
border pixel 1
}
for_window [app_id="kitty-scratch|pavucontrol|org.keepassxc.KeePassXC"] {
move to scratchpad
scratchpad show
}
workspace 1 output eDP-1 workspace 1 output eDP-1
exec $term exec $term
workspace 2 output eDP-1 workspace 2 output eDP-1
workspace 3 output eDP-1 workspace 3 output eDP-1
exec discord
exec spotify
workspace 4 output "Dell Inc. DELL U2410 F525M0A1082L" workspace 4 output "Dell Inc. DELL U2410 F525M0A1082L"
@@ -316,3 +341,9 @@ workspace 8 output "Dell Inc. DELL U2717D JXRPT83GAHKS"
workspace 9 output "Dell Inc. DELL U2717D JXRPT83GAHKS" workspace 9 output "Dell Inc. DELL U2717D JXRPT83GAHKS"
exec xrdb -load ~/.Xresources exec xrdb -load ~/.Xresources
exec autotiling
exec keepassxc
exec "systemctl --user import-environment; systemctl --user start sway-session.target"
+5
View File
@@ -0,0 +1,5 @@
#!/bin/bash
if ! pgrep -x $1; then
${@:1}
fi
+46 -17
View File
@@ -1,43 +1,52 @@
[icons]
icons = "awesome" icons = "awesome"
[theme] [theme]
name = "solarized-dark" theme = "solarized-dark"
[theme.overrides] [theme.overrides]
idle_bg = "#002b36cc" idle_bg = "#002b36ff"
info_bg = "#268bd2cc" info_bg = "#268bd2ff"
good_bg = "#859900cc" good_bg = "#859900ff"
warning_bg = "#b58900cc" warning_bg = "#b58900ff"
critical_bg = "#dc322fcc" critical_bg = "#dc322fff"
alternating_tint_bg = "#00000000" alternating_tint_bg = "#00000000"
separator = "" separator = "<span font='14'>\ue0b2</span>"
#separator = ""
[[block]] #[[block]]
block = "focused_window" #block = "focused_window"
max_width = 100 #max_width = 100
[[block]] [[block]]
block = "music" block = "music"
player = "spotify" player = "spotify"
buttons = ["play", "next"] format = "$prev $play $next|"
on_collapsed_click = "spotify"
max_width = 21
marquee = true
[[block]] [[block]]
block = "sound" block = "sound"
driver = "alsa" driver = "auto"
#device = "hw:0" show_volume_when_muted = true
headphones_indicator = true
step_width = 3 step_width = 3
[[block.click]]
button = "left"
cmd = "pavucontrol"
[[block]] [[block]]
block = "memory" block = "memory"
display_type = "memory" display_type = "memory"
format_mem = "{Mum}MB" format_mem = "$mem_used.eng(3,B,M)"
clickable = false clickable = false
[[block.click]]
button = "left"
cmd = "kitty --class kitty-scratch -c ~/.config/kitty/kitty-scratch.conf btop"
[[block]] [[block]]
block = "cpu" block = "cpu"
interval = 1 interval = 1
[[block.click]]
button = "left"
cmd = "kitty --class kitty-scratch -c ~/.config/kitty/kitty-scratch.conf btop"
#[[block]] #[[block]]
#block = "sound" #block = "sound"
@@ -46,6 +55,26 @@ interval = 1
block = "battery" block = "battery"
interval = 10 interval = 10
[[block]]
block = "pacman"
interval = 600
format = "$both updates available"
format_singular = "$both update available"
format_up_to_date = "up to date"
hide_when_uptodate = true
critical_updates_regex = "(^(linux-|sway|wl)|pipewire)"
aur_command = "yay -Qua"
[[block.click]]
button = "left"
cmd = "kitty --class kitty-scratch -c ~/.config/kitty/kitty-scratch.conf zsh -i -c update"
[[block]]
block = "net"
format = "$device{| $ssid}"
[[block.click]]
button = "left"
cmd = "kitty --class kitty-scratch -c ~/.config/kitty/kitty-scratch.conf nmtui"
[[block]] [[block]]
block = "time" block = "time"
interval = 60 interval = 60
-35
View File
@@ -1,35 +0,0 @@
#!/bin/sh
swaymsg -t subscribe -m '[ "window" ]' | while read -r event ; do
if [ "$(jq -r '.change' <<< $event)" = 'focus' ] ; then
current_workspace="$(swaymsg -t get_workspaces | jq -r '.[] | select(.focused)')"
workspace_num="$(jq -r '.num' <<< $current_workspace)"
workspace_name="$(jq -r '.name' <<< $current_workspace)"
app_name="$(jq -r '.container.app_id' <<< $event)"
if [ $app_name = 'null' ] ; then
app_name="$(jq -r '.container.window_properties.instance' <<< $event)"
fi
if [ "$app_name" = "kitty" ] ; then
app_name=""
elif [ "$app_name" = "chromium" ] ; then
case "$(jq -r '.container.name' <<< $event)" in
*YouTube*)
app_name=""
;;
*)
app_name=""
;;
esac
elif [ "$app_name" = "discord" ] ; then
app_name=""
elif [ "$app_name" = "spotify" ] ; then
app_name=""
elif [ "$app_name" = "GEMOC Studio" ] ; then
app_name=""
fi
swaymsg rename workspace "$workspace_name" to "$workspace_num:$app_name"
fi
done
+64
View File
@@ -0,0 +1,64 @@
#!/bin/python3
import asyncio
from i3ipc import Event
from i3ipc.aio import Connection
async def main():
sway = await Connection().connect()
@sway.on(Event.WINDOW_NEW)
@sway.on(Event.WINDOW_CLOSE)
@sway.on(Event.WINDOW_MOVE)
@sway.on(Event.WINDOW_TITLE)
async def on_window_change(sway, _):
for w in (await sway.get_tree()).workspaces():
new_name = f'{w.num}:'
first_descendant = True
for d in w.descendants():
app_name = d.app_id
if not app_name:
if d.name and 'Vivaldi' in d.name:
new_name += '<span font=\'10\' rise=\'-500\' letter_spacing=\'2048\'></span>'
else:
app_name = d.window_instance
if app_name:
if not first_descendant:
new_name += ' '
first_descendant = False
if 'kitty' in app_name:
if 'vim' in d.name:
new_name += '<span font=\'12\' rise=\'-2500\'>\ue6c5</span>'
else:
new_name += ''
elif app_name in ['Chromium', 'google-chrome', 'google-chrome-unstable']:
if 'YouTube' in d.name:
new_name += ''
else:
new_name += ''
elif app_name == 'Navigator':
new_name += ''
elif app_name == 'discord':
new_name += ''
elif app_name == 'spotify':
new_name += '<span font=\'11\' rise=\'-400\'></span>'
elif app_name in ['GEMOC Studio', 'code-oss']:
new_name += ''
elif 'okular' in app_name or 'zathura' in app_name:
new_name += '<span font=\'FontAwesome 5 Free Solid\'></span>'
elif app_name == 'pavucontrol':
new_name += ''
else:
new_name += app_name
await sway.command(f'rename workspace "{w.name}" to "{new_name}"')
await sway.main()
asyncio.run(main())
+74
View File
@@ -0,0 +1,74 @@
[{
"spacing": 4, // Gaps between modules (4px)
"modules-left": ["sway/workspaces"],
"modules-right": ["pulseaudio", "memory", "cpu", "battery", "network", "custom/pacman", "clock", "tray"],
"memory": {
"format": "\uf538 {used:0.1f}GiB",
"on-click": "kitty --class kitty-scratch -c ~/.config/kitty/kitty-scratch.conf btop"
},
"tray": {
"spacing": 10
},
"clock": {
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format": "\uf017 {:%A %d/%m/%Y %H:%M}"
},
"cpu": {
"format": "\uf2db {usage}%",
"tooltip": false,
"on-click": "kitty --class kitty-scratch -c ~/.config/kitty/kitty-scratch.conf btop"
},
"battery": {
"states": {
// "good": 95,
"warning": 30,
"critical": 15
},
"format": "{icon} {capacity}%",
"format-charging": " {capacity}%",
"format-plugged": " {capacity}%",
"format-alt": "{icon} {time}",
"format-icons": ["", "", "", "", ""]
},
"network": {
// "interface": "wlp2*", // (Optional) To force the use of this interface
"format-wifi": "\uf1eb {essid}",
"format-ethernet": "\uf6ff {ifname}",
"tooltip-format": "\f6ff {ifname} via {gwaddr}",
"format-linked": "\uf6ff {ifname} (No IP)",
"format-disconnected": "\uf071 Disconnected",
"on-click": "kitty --class kitty-scratch -c ~/.config/kitty/kitty-scratch.conf nmtui"
},
"pulseaudio": {
// "scroll-step": 1, // %, can be a float
"format": "{icon} {volume}% {format_source}",
"format-bluetooth": "{icon} {volume}% {format_source}",
"format-bluetooth-muted": "{icon}  {format_source}",
"format-muted": " {format_source}",
"format-source": " {volume}%",
"format-source-muted": "",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", "", ""]
},
"on-click": "pavucontrol"
},
"custom/pacman": {
"format": "{icon} {}",
"return-type": "json",
"escape": true,
"format-icons": {
"uptodate": "\uf00c",
"available": "\uf019"
},
"interval": 600,
"exec": "$HOME/.config/waybar/pacman.py '(?:^(?:linux-|sway|wl)|pipewire)' 2> /dev/null",
"on-click": "kitty --class kitty-scratch -c ~/.config/kitty/kitty-scratch.conf zsh -i -c update"
}
}]
+128
View File
@@ -0,0 +1,128 @@
#!/usr/bin/env python3
import argparse
import logging
import sys
import signal
import gi
import json
gi.require_version('Playerctl', '2.0')
from gi.repository import Playerctl, GLib
logger = logging.getLogger(__name__)
def write_output(text, player):
logger.info('Writing output')
output = {'text': text,
'class': 'custom-' + player.props.player_name,
'alt': player.props.player_name}
sys.stdout.write(json.dumps(output) + '\n')
sys.stdout.flush()
def on_play(player, status, manager):
logger.info('Received new playback status')
on_metadata(player, player.props.metadata, manager)
def on_metadata(player, metadata, manager):
logger.info('Received new metadata')
track_info = ''
if player.props.player_name == 'spotify' and \
'mpris:trackid' in metadata.keys() and \
':ad:' in player.props.metadata['mpris:trackid']:
track_info = 'AD PLAYING'
elif player.get_artist() != '' and player.get_title() != '':
track_info = '{artist} - {title}'.format(artist=player.get_artist(),
title=player.get_title())
else:
track_info = player.get_title()
if player.props.status != 'Playing' and track_info:
track_info = '' + track_info
write_output(track_info, player)
def on_player_appeared(manager, player, selected_player=None):
if player is not None and (selected_player is None or player.name == selected_player):
init_player(manager, player)
else:
logger.debug("New player appeared, but it's not the selected player, skipping")
def on_player_vanished(manager, player):
logger.info('Player has vanished')
sys.stdout.write('\n')
sys.stdout.flush()
def init_player(manager, name):
logger.debug('Initialize player: {player}'.format(player=name.name))
player = Playerctl.Player.new_from_name(name)
player.connect('playback-status', on_play, manager)
player.connect('metadata', on_metadata, manager)
manager.manage_player(player)
on_metadata(player, player.props.metadata, manager)
def signal_handler(sig, frame):
logger.debug('Received signal to stop, exiting')
sys.stdout.write('\n')
sys.stdout.flush()
# loop.quit()
sys.exit(0)
def parse_arguments():
parser = argparse.ArgumentParser()
# Increase verbosity with every occurrence of -v
parser.add_argument('-v', '--verbose', action='count', default=0)
# Define for which player we're listening
parser.add_argument('--player')
return parser.parse_args()
def main():
arguments = parse_arguments()
# Initialize logging
logging.basicConfig(stream=sys.stderr, level=logging.DEBUG,
format='%(name)s %(levelname)s %(message)s')
# Logging is set by default to WARN and higher.
# With every occurrence of -v it's lowered by one
logger.setLevel(max((3 - arguments.verbose) * 10, 0))
# Log the sent command line arguments
logger.debug('Arguments received {}'.format(vars(arguments)))
manager = Playerctl.PlayerManager()
loop = GLib.MainLoop()
manager.connect('name-appeared', lambda *args: on_player_appeared(*args, arguments.player))
manager.connect('player-vanished', on_player_vanished)
signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGTERM, signal_handler)
signal.signal(signal.SIGPIPE, signal.SIG_DFL)
for player in manager.props.player_names:
if arguments.player is not None and arguments.player != player.name:
logger.debug('{player} is not the filtered player, skipping it'
.format(player=player.name)
)
continue
init_player(manager, player)
loop.run()
if __name__ == '__main__':
main()
+80
View File
@@ -0,0 +1,80 @@
#!/usr/bin/env python3
import json
import os
import re
import subprocess
import sys
PACMAN_DB = '/var/lib/pacman/'
PACMAN_UPDATES_DB = f'/tmp/checkup-db-{os.getlogin()}/'
def write_output(packages, important_regex):
n_packages = packages.count('\n')
if n_packages == 0:
output_text = 'Up to date'
output_class = 'good'
output_alt = 'uptodate'
else:
if n_packages == 1:
output_text = '1 update available'
else:
output_text = f'{n_packages} updates available'
output_class = 'info'
output_alt = 'available'
if important_regex and re.search(important_regex, packages,
flags=re.MULTILINE):
output_class = 'important'
output = {'text': output_text,
'class': output_class,
'alt': output_alt}
sys.stdout.write(json.dumps(output) + '\n')
sys.stdout.flush()
def generate_and_update_database():
if not os.path.isdir(PACMAN_UPDATES_DB):
os.mkdir(PACMAN_UPDATES_DB)
os.symlink(os.path.join(PACMAN_DB, 'local'),
os.path.join(PACMAN_UPDATES_DB, 'local'))
subprocess.run(['fakeroot',
'--',
'pacman',
'-Sy',
'--dbpath',
PACMAN_UPDATES_DB,
'--logfile',
'/dev/null'],
env={'LC_ALL': 'C'},
stdout=subprocess.DEVNULL,
stderr=subprocess.STDOUT)
def check_updates(important_regex):
p = subprocess.run(['yay',
'-Qu',
'--devel',
'--dbpath',
PACMAN_UPDATES_DB],
capture_output=True)
packages = p.stdout.decode('utf-8')
write_output(packages, important_regex)
def main(important_regex=None):
generate_and_update_database()
check_updates(important_regex)
if __name__ == '__main__':
if len(sys.argv) > 1:
main(sys.argv[1])
else:
main()
+162
View File
@@ -0,0 +1,162 @@
* {
font-family: DejaVu Sans Mono, devicons, "Font Awesome 6 Free";
font-size: 13px;
}
window#waybar {
background-color: #002b36;
color: #93a1a1;
transition-property: background-color;
transition-duration: .5s;
}
window#waybar.hidden {
opacity: 0.2;
}
#workspaces button {
padding: 0px;
background-color: transparent;
/* Use box-shadow instead of border so the text isn't offset */
box-shadow: inset 0 -3px transparent;
/* Avoid rounded borders under each workspace name */
border: none;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
#workspaces button:hover {
background-color: #268bd2;
color: #002b36;
}
#workspaces button.visible {
background-color: #859900;
color: #002b36;
}
#workspaces button.focused {
background-color: #859900;
color: #002b36;
}
#workspaces button.urgent {
background-color: #d30102;
color: #002b36;
}
#workspaces button,
#clock,
#battery,
#cpu,
#memory,
#network,
#pulseaudio,
#tray,
#custom-pacman {
border-left: 10px solid transparent;
border-right: 10px solid transparent;
border-radius: 25px / 25px;
background-clip: border-box;
}
#workspaces button:first-child {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
#window,
#workspaces {
margin: 0 4px;
}
/* If workspaces is the leftmost module, omit left margin */
.modules-left > widget:first-child > #workspaces {
margin-left: 0;
}
/* If workspaces is the rightmost module, omit right margin */
.modules-right > widget:last-child > #workspaces {
margin-right: 0;
}
#clock {
}
#battery {
}
#battery.charging, #battery.plugged {
background-color: #268bd2;
color: #002b36;
}
@keyframes blink {
to {
background-color: #ffffff;
color: #000000;
}
}
#battery.critical:not(.charging) {
background-color: #d30102;
color: #002b36;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
label:focus {
background-color: #000000;
}
#cpu {
}
#memory {
}
#network {
}
#network.disconnected {
background-color: #d30102;
color: #002b36;
}
#pulseaudio {
}
#pulseaudio.muted {
background-color: #b58900;
color: #002b36;
}
#custom-pacman.good {
background-color: #859900;
color: #002b36;
}
#custom-pacman.info {
background-color: #268bd2;
color: #002b36;
}
#custom-pacman.important {
background-color: #d30102;
color: #002b36;
}
#tray {
}
#tray > .passive {
-gtk-icon-effect: dim;
}
#tray > .needs-attention {
-gtk-icon-effect: highlight;
background-color: #d30102;
}
+1
View File
@@ -1,2 +1,3 @@
.config/nvim/plugged .config/nvim/plugged
.config/nvim/.netrwhist .config/nvim/.netrwhist
.config/mpv/scripts/japan7.lua
+3
View File
@@ -0,0 +1,3 @@
[submodule ".config/nvim/solarized.nvim"]
path = .config/nvim/themes/solarized.nvim
url = ssh://git@git.rhiobet.sh:42424/rhiobet/solarized.nvim.git
-14
View File
@@ -1,14 +0,0 @@
#!/bin/sh
pkill jackd
jack_control start
sleep 1
alsa_in -d hw:PCH,0 -j alsa_in &
alsa_out -d hw:PCH,0 -j alsa_out &
sleep 1
jack_connect system:monitor_1 alsa_out:playback_1
jack_connect system:monitor_2 alsa_out:playback_2
jack_connect system:capture_1 system:playback_1
jack_connect system:capture_2 system:playback_2
jack_connect alsa_in:capture_1 "PulseAudio JACK Source":front-left
jack_connect alsa_in:capture_2 "PulseAudio JACK Source":front-right
+1 -1
View File
@@ -1,2 +1,2 @@
export JAVA_HOME=/usr/lib/jvm/$(archlinux-java get) export JAVA_HOME=/usr/lib/jvm/$(archlinux-java get)
export GDK_BACKEND=x11 export JAVAFX_HOME=/lib/jvm/java-16-openjdk
+28 -1
View File
@@ -19,6 +19,7 @@ plugins=(
archlinux archlinux
docker docker
docker-compose docker-compose
fzf
git git
systemd systemd
vagrant vagrant
@@ -27,9 +28,35 @@ plugins=(
) )
source $ZSH/oh-my-zsh.sh source $ZSH/oh-my-zsh.sh
bindkey '^R' history-incremental-pattern-search-backward
if [ -f ~/.bash_aliases ]; then if [ -f ~/.bash_aliases ]; then
source ~/.bash_aliases source ~/.bash_aliases
fi fi
eval $(thefuck --alias) eval $(thefuck --alias)
ranger() {
if [ -z "$RANGER_LEVEL" ]; then
/usr/bin/ranger "$@"
else
exit
fi
}
alias start_gnome='XDG_SESSION_TYPE=wayland exec dbus-run-session gnome-session'
# >>> mamba initialize >>>
# !! Contents within this block are managed by 'mamba init' !!
export MAMBA_EXE="/usr/bin/micromamba";
export MAMBA_ROOT_PREFIX="/home/rhiobet/micromamba";
__mamba_setup="$('/usr/bin/micromamba' shell hook --shell zsh --prefix '/home/rhiobet/micromamba' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__mamba_setup"
else
if [ -f "/home/rhiobet/micromamba/etc/profile.d/micromamba.sh" ]; then
. "/home/rhiobet/micromamba/etc/profile.d/micromamba.sh"
else
export PATH="/home/rhiobet/micromamba/bin:$PATH" # extra space after export prevents interference from conda init
fi
fi
unset __mamba_setup
# <<< mamba initialize <<<
+1
View File
@@ -0,0 +1 @@
SUBSYSTEM=="sound", ACTION=="change", KERNEL=="card*", ATTRS{vendor}=="0x8086", ATTRS{device}=="0x9d71", ENV{ACP_PROFILE_SET}="noboost.conf"
@@ -0,0 +1,4 @@
.include analog-input-internal-mic.conf
[Element Internal Mic Boost]
volume = off
@@ -0,0 +1,4 @@
.include default.conf
[Mapping analog-stereo]
paths-input = analog-input-internal-mic-noboost