update config
This commit is contained in:
14
.bash_profile
Normal file
14
.bash_profile
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
|
||||||
|
[[ -f ~/.bashrc ]] && . ~/.bashrc
|
||||||
|
|
||||||
|
# Bash Profile
|
||||||
|
|
||||||
|
export GTK_THEME="Adwaita:dark"
|
||||||
|
|
||||||
|
mkdir -p $HOME/.config/environment.d
|
||||||
|
echo $PATH >$HOME/.config/environment.d/path.conf
|
||||||
|
|
||||||
|
if [ -z "$WAYLAND_DISPLAY" ] && [ -n "$XDG_VTNR" ] && [ "$XDG_VTNR" -eq 1 ] ; then
|
||||||
|
exec sway
|
||||||
|
fi
|
||||||
|
|
||||||
@ -1,4 +1,8 @@
|
|||||||
|
|
||||||
|
[window]
|
||||||
|
title = "Alacritty"
|
||||||
|
dynamic_title = false
|
||||||
|
|
||||||
[font]
|
[font]
|
||||||
normal = { family = "Iosevka Nerd Font", style = "Regular" }
|
normal = { family = "Iosevka Nerd Font", style = "Regular" }
|
||||||
size=14
|
size=14
|
||||||
|
|||||||
Binary file not shown.
16
.config/dolphinrc
Normal file
16
.config/dolphinrc
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
[General]
|
||||||
|
Version=202
|
||||||
|
ViewPropsTimestamp=2025,11,16,18,10,13.619
|
||||||
|
|
||||||
|
[IconsMode]
|
||||||
|
PreviewSize=112
|
||||||
|
|
||||||
|
[KFileDialog Settings]
|
||||||
|
Places Icons Auto-resize=false
|
||||||
|
Places Icons Static Size=22
|
||||||
|
|
||||||
|
[MainWindow]
|
||||||
|
MenuBar=Disabled
|
||||||
|
|
||||||
|
[PreviewSettings]
|
||||||
|
Plugins=appimagethumbnail,audiothumbnail,glycin-heif,comicbookthumbnail,cursorthumbnail,djvuthumbnail,ebookthumbnail,exrthumbnail,directorythumbnail,heif,imagethumbnail,glycin-image-rs,jpegthumbnail,glycin-jxl,kraorathumbnail,windowsexethumbnail,windowsimagethumbnail,opendocumentthumbnail,mypaint-ora,glycin-svg,svgthumbnail,ffmpegthumbs
|
||||||
@ -1 +1 @@
|
|||||||
/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/landam/.local/kitty.app/bin/:/home/landam/.local/ayugram.app/bin/:/home/landam/.local/bin:/home/landam/opt/weylus:/home/landam/.local/kitty.app/bin/:/home/landam/.local/ayugram.app/bin/:/home/landam/.local/bin:/home/landam/opt/weylus
|
/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/usr/local/bin/:/home/landam/.local/kitty.app/bin/:/home/landam/.local/ayugram.app/bin/:/home/landam/.local/bin:/home/landam/opt/weylus
|
||||||
|
|||||||
7
.config/speech-dispatcher/clients/emacs.conf
Normal file
7
.config/speech-dispatcher/clients/emacs.conf
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Local configuration for emacs
|
||||||
|
|
||||||
|
BeginClient "emacs:*"
|
||||||
|
# Example:
|
||||||
|
# DefaultPunctuationMode "some"
|
||||||
|
EndClient
|
||||||
|
|
||||||
46
.config/speech-dispatcher/desktop/speechd.desktop
Normal file
46
.config/speech-dispatcher/desktop/speechd.desktop
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
# Copyright (C) 2008 Brailcom, o.p.s
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
[Desktop Entry]
|
||||||
|
Type=Application
|
||||||
|
Encoding=UTF-8
|
||||||
|
Version=1.0
|
||||||
|
Name[de]=Speech Dispatcher
|
||||||
|
Name[eo]=Speech Dispatcher
|
||||||
|
Name[fr]=Speech Dispatcher
|
||||||
|
Name[hu]=Speech Dispatcher
|
||||||
|
Name[ka]=საუბრის დისპეტჩერი
|
||||||
|
Name[nb_NO]=Speech Dispatcher
|
||||||
|
Name[pt]=Speech Dispatcher
|
||||||
|
Name[pt_BR]=Speech Dispatcher
|
||||||
|
Name[ru]=Speech Dispatcher
|
||||||
|
Name[sv]=Speech Dispatcher
|
||||||
|
Name[tr]=Speech Dispatcher
|
||||||
|
Name=Speech Dispatcher
|
||||||
|
Comment[de]=Schnittstelle zu den Text-zu-Sprache-Diensten
|
||||||
|
Comment[eo]=Interfaco al parolsintezaj servoj
|
||||||
|
Comment[fr]=Interface avec des services de synthèse vocale
|
||||||
|
Comment[hu]=Interfész a szövegfelolvasó szolgáltatásokhoz
|
||||||
|
Comment[nb_NO]=Grensesnitt for talesyntese-tjenester
|
||||||
|
Comment[pt]=Interface para serviços de texto para fala
|
||||||
|
Comment[pt_BR]=Interface para serviços de texto para fala
|
||||||
|
Comment[ru]=Интерфейс для сервисов преобразования текста в речь
|
||||||
|
Comment[sv]=Gränssnitt till text-till-tal-tjänster
|
||||||
|
Comment[tr]=Metinden konuşma hizmetleri için arayüz
|
||||||
|
Comment=Interface to Text to Speech services
|
||||||
|
TryExec=speech-dispatcher
|
||||||
|
Exec=speech-dispatcher
|
||||||
|
X-GNOME-Autostart-enabled=true
|
||||||
|
X-GNOME-Autostart-Phase=Initialization
|
||||||
45
.config/speech-dispatcher/modules/cicero.conf
Normal file
45
.config/speech-dispatcher/modules/cicero.conf
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
# Debug turns debugging on or off
|
||||||
|
# See speechd.conf for information where debugging information is stored
|
||||||
|
|
||||||
|
# Debug 0
|
||||||
|
|
||||||
|
# -- CICERO EXECUTABLE AND LOG --
|
||||||
|
|
||||||
|
# CiceroExecutable indicates path to the cicero executable (the file called
|
||||||
|
# tts_brltty_es.py in the original distribution of the 0.7 version). You can
|
||||||
|
# create a symbolic link # ln -s your-path/tts_brltty_es.py /usr/bin/cicero or
|
||||||
|
# probably better in /usr/local/bin/cicero and modify the below option
|
||||||
|
# accordingly.
|
||||||
|
|
||||||
|
#CiceroExecutable "/usr/bin/cicero"
|
||||||
|
|
||||||
|
# CiceroExecutableLog is the path where logging information of the
|
||||||
|
# original Cicero synthesizer (CiceroExecutable) should be stored.
|
||||||
|
# This should not be confused with the logging of this module/driver
|
||||||
|
# specified in speechd.conf.
|
||||||
|
|
||||||
|
#CiceroExecutableLog "/var/log/speech-dispatcher/cicero-executable.log"
|
||||||
|
|
||||||
|
# -- AUDIO OUTPUT --
|
||||||
|
|
||||||
|
# Cicero does its own audio output which can't
|
||||||
|
# be influenced from this place. Please see Cicero
|
||||||
|
# documentation
|
||||||
|
|
||||||
|
# -- DEBUGGING AND LOGGING --
|
||||||
|
|
||||||
|
# Copyright (C) 2006 Olivier BERT <obert01@mistigri.org>
|
||||||
|
# Copyright (C) 2006 Brailcom, o.p.s
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify it under
|
||||||
|
# the terms of the GNU General Public License as published by the Free Software
|
||||||
|
# Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
# version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||||
|
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
# PARTICULAR PURPOSE. See the GNU General Public License for more details (file
|
||||||
|
# COPYING in the root directory).
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
73
.config/speech-dispatcher/modules/espeak-ng-mbrola.conf
Normal file
73
.config/speech-dispatcher/modules/espeak-ng-mbrola.conf
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
# Debugging
|
||||||
|
Debug 0
|
||||||
|
|
||||||
|
|
||||||
|
# -- SOUND ICONS --
|
||||||
|
|
||||||
|
# Espeak does not currently support playing sound icons
|
||||||
|
# (audio files that are played by name when an application requests
|
||||||
|
# a sound icon). If you have installed the free(b)soft sound-icons
|
||||||
|
# package, this is the directory where will they be found. If not
|
||||||
|
# blank, the espeak Output Module will play them if it finds a
|
||||||
|
# file whose name matches the sound icon name. If blank, or no
|
||||||
|
# matching file is found, the name of the sound icon will be spoken.
|
||||||
|
|
||||||
|
EspeakSoundIconFolder "/usr/share/sounds/sound-icons/"
|
||||||
|
|
||||||
|
# Volume at which sound icons are played.
|
||||||
|
|
||||||
|
EspeakSoundIconVolume 0
|
||||||
|
|
||||||
|
# -- Punctuation --
|
||||||
|
|
||||||
|
# Characters to be spoken when punctuation setting is "some"
|
||||||
|
# Encoding is UTF-8.
|
||||||
|
EspeakPunctuationList "@+_"
|
||||||
|
EspeakCapitalPitchRise 0
|
||||||
|
|
||||||
|
# -- Rate control --
|
||||||
|
# The following options are in words per minute
|
||||||
|
#the same as the -s parameter for the -s option in espeak command line tool.
|
||||||
|
|
||||||
|
# Minimum rate (-100 in speech-dispatcher)
|
||||||
|
EspeakMinRate 80
|
||||||
|
|
||||||
|
# Normal rate (0 in speech-dispatcher)
|
||||||
|
EspeakNormalRate 170
|
||||||
|
|
||||||
|
# Maximum rate (100 in speech-dispatcher)
|
||||||
|
EspeakMaxRate 449
|
||||||
|
|
||||||
|
# -- Internal parameters --
|
||||||
|
|
||||||
|
# Number of ms of audio returned by the espeak callback function.
|
||||||
|
EspeakAudioChunkSize 300
|
||||||
|
|
||||||
|
# Maximum number of samples to buffer in playback queue.
|
||||||
|
EspeakAudioQueueMaxSize 441000
|
||||||
|
|
||||||
|
# Whether to enable speech indexing
|
||||||
|
EspeakIndexing 1
|
||||||
|
|
||||||
|
|
||||||
|
# This makes the speak-ng-mbrola module only show mbrola voices, don't change it
|
||||||
|
EspeakMbrola 1
|
||||||
|
|
||||||
|
# Copyright (C) 2007 Lukas Loehrer <listaddr1@gmx.net>
|
||||||
|
# Copyright (C) 2007-2008 Brailcom, o.p.s
|
||||||
|
# Copyright (C) 2007 Gilles Casse <gcasse@oralux.org>
|
||||||
|
# Copyright (C) 2011 Rui Batista <ruiandrebatista@gmail.com>
|
||||||
|
# Copyright (C) 2011-2016 Luke Yelavich <themuso@themuso.com>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify it under
|
||||||
|
# the terms of the GNU General Public License as published by the Free Software
|
||||||
|
# Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
# version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||||
|
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
# PARTICULAR PURPOSE. See the GNU General Public License for more details (file
|
||||||
|
# COPYING in the root directory).
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
73
.config/speech-dispatcher/modules/espeak-ng.conf
Normal file
73
.config/speech-dispatcher/modules/espeak-ng.conf
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
# Debugging
|
||||||
|
Debug 0
|
||||||
|
|
||||||
|
|
||||||
|
# -- SOUND ICONS --
|
||||||
|
|
||||||
|
# Espeak does not currently support playing sound icons
|
||||||
|
# (audio files that are played by name when an application requests
|
||||||
|
# a sound icon). If you have installed the free(b)soft sound-icons
|
||||||
|
# package, this is the directory where will they be found. If not
|
||||||
|
# blank, the espeak Output Module will play them if it finds a
|
||||||
|
# file whose name matches the sound icon name. If blank, or no
|
||||||
|
# matching file is found, the name of the sound icon will be spoken.
|
||||||
|
|
||||||
|
EspeakSoundIconFolder "/usr/share/sounds/sound-icons/"
|
||||||
|
|
||||||
|
# Volume at which sound icons are played.
|
||||||
|
|
||||||
|
EspeakSoundIconVolume 0
|
||||||
|
|
||||||
|
# -- Punctuation --
|
||||||
|
|
||||||
|
# Characters to be spoken when punctuation setting is "some"
|
||||||
|
# Encoding is UTF-8.
|
||||||
|
EspeakPunctuationList "@+_"
|
||||||
|
EspeakCapitalPitchRise 0
|
||||||
|
|
||||||
|
# -- Rate control --
|
||||||
|
# The following options are in words per minute
|
||||||
|
#the same as the -s parameter for the -s option in espeak command line tool.
|
||||||
|
|
||||||
|
# Minimum rate (-100 in speech-dispatcher)
|
||||||
|
EspeakMinRate 80
|
||||||
|
|
||||||
|
# Normal rate (0 in speech-dispatcher)
|
||||||
|
EspeakNormalRate 170
|
||||||
|
|
||||||
|
# Maximum rate (100 in speech-dispatcher)
|
||||||
|
EspeakMaxRate 449
|
||||||
|
|
||||||
|
# -- Internal parameters --
|
||||||
|
|
||||||
|
# Number of ms of audio returned by the espeak callback function.
|
||||||
|
EspeakAudioChunkSize 300
|
||||||
|
|
||||||
|
# Maximum number of samples to buffer in playback queue.
|
||||||
|
EspeakAudioQueueMaxSize 441000
|
||||||
|
|
||||||
|
# Whether to enable speech indexing
|
||||||
|
EspeakIndexing 1
|
||||||
|
|
||||||
|
|
||||||
|
# This makes the speak-ng module only show non-mbrola voices, don't change it
|
||||||
|
EspeakMbrola 0
|
||||||
|
|
||||||
|
# Copyright (C) 2007 Lukas Loehrer <listaddr1@gmx.net>
|
||||||
|
# Copyright (C) 2007-2008 Brailcom, o.p.s
|
||||||
|
# Copyright (C) 2007 Gilles Casse <gcasse@oralux.org>
|
||||||
|
# Copyright (C) 2011 Rui Batista <ruiandrebatista@gmail.com>
|
||||||
|
# Copyright (C) 2011-2016 Luke Yelavich <themuso@themuso.com>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify it under
|
||||||
|
# the terms of the GNU General Public License as published by the Free Software
|
||||||
|
# Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
# version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||||
|
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
# PARTICULAR PURPOSE. See the GNU General Public License for more details (file
|
||||||
|
# COPYING in the root directory).
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
70
.config/speech-dispatcher/modules/espeak.conf
Normal file
70
.config/speech-dispatcher/modules/espeak.conf
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
# Debugging
|
||||||
|
Debug 0
|
||||||
|
|
||||||
|
|
||||||
|
# -- SOUND ICONS --
|
||||||
|
|
||||||
|
# Espeak does not currently support playing sound icons
|
||||||
|
# (audio files that are played by name when an application requests
|
||||||
|
# a sound icon). If you have installed the free(b)soft sound-icons
|
||||||
|
# package, this is the directory where will they be found. If not
|
||||||
|
# blank, the espeak Output Module will play them if it finds a
|
||||||
|
# file whose name matches the sound icon name. If blank, or no
|
||||||
|
# matching file is found, the name of the sound icon will be spoken.
|
||||||
|
|
||||||
|
EspeakSoundIconFolder "/usr/share/sounds/sound-icons/"
|
||||||
|
|
||||||
|
# Volume at which sound icons are played.
|
||||||
|
|
||||||
|
EspeakSoundIconVolume 0
|
||||||
|
|
||||||
|
# -- Punctuation --
|
||||||
|
|
||||||
|
# Characters to be spoken when punctuation setting is "some"
|
||||||
|
# Encoding is UTF-8.
|
||||||
|
EspeakPunctuationList "@+_"
|
||||||
|
EspeakCapitalPitchRise 0
|
||||||
|
|
||||||
|
# -- Rate control --
|
||||||
|
# The following options are in words per minute
|
||||||
|
#the same as the -s parameter for the -s option in espeak command line tool.
|
||||||
|
|
||||||
|
# Minimum rate (-100 in speech-dispatcher)
|
||||||
|
EspeakMinRate 80
|
||||||
|
|
||||||
|
# Normal rate (0 in speech-dispatcher)
|
||||||
|
EspeakNormalRate 170
|
||||||
|
|
||||||
|
# Maximum rate (100 in speech-dispatcher)
|
||||||
|
EspeakMaxRate 449
|
||||||
|
|
||||||
|
# -- Internal parameters --
|
||||||
|
|
||||||
|
# Number of ms of audio returned by the espeak callback function.
|
||||||
|
EspeakAudioChunkSize 300
|
||||||
|
|
||||||
|
# Maximum number of samples to buffer in playback queue.
|
||||||
|
EspeakAudioQueueMaxSize 441000
|
||||||
|
|
||||||
|
# Whether to enable speech indexing
|
||||||
|
EspeakIndexing 1
|
||||||
|
|
||||||
|
|
||||||
|
# Copyright (C) 2007 Lukas Loehrer <listaddr1@gmx.net>
|
||||||
|
# Copyright (C) 2007-2008 Brailcom, o.p.s
|
||||||
|
# Copyright (C) 2007 Gilles Casse <gcasse@oralux.org>
|
||||||
|
# Copyright (C) 2011 Rui Batista <ruiandrebatista@gmail.com>
|
||||||
|
# Copyright (C) 2011 Luke Yelavich <themuso@themuso.com>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify it under
|
||||||
|
# the terms of the GNU General Public License as published by the Free Software
|
||||||
|
# Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
# version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||||
|
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
# PARTICULAR PURPOSE. See the GNU General Public License for more details (file
|
||||||
|
# COPYING in the root directory).
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
93
.config/speech-dispatcher/modules/festival.conf
Normal file
93
.config/speech-dispatcher/modules/festival.conf
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
# -- DEBUGGING --
|
||||||
|
|
||||||
|
# Debug turns debugging on or off
|
||||||
|
# See speechd.conf for information where debugging information is stored
|
||||||
|
Debug 0
|
||||||
|
|
||||||
|
|
||||||
|
# -- FESTIVAL SERVER SETTINGS --
|
||||||
|
|
||||||
|
# Address where the Festival server runs (you have to
|
||||||
|
# have a Festival server running, please see documentation).
|
||||||
|
|
||||||
|
#FestivalServerHost "localhost"
|
||||||
|
#FestivalServerPort 1314
|
||||||
|
|
||||||
|
|
||||||
|
# -- CACHING --
|
||||||
|
|
||||||
|
# Festival output module supports a caching mechanism for
|
||||||
|
# repeated events like characters, keys and sound icons
|
||||||
|
# that saves the wavefiles retrieved from the synthesizer
|
||||||
|
# and uses them next time an identical request is issued.
|
||||||
|
# This way, the synthesis is much more responsive when
|
||||||
|
# you type in keys, you spell some word by going over it
|
||||||
|
# with cursor keys, sound icons are faster and so on.
|
||||||
|
# If you wish to enable this caching mechanism, turn
|
||||||
|
# FestivalCacheOn to 1, or switch it off by 0.
|
||||||
|
|
||||||
|
# FestivalCacheOn 1
|
||||||
|
|
||||||
|
# How large should the memory assigned to output module for
|
||||||
|
# cache should be. Festival will never overcome this limit.
|
||||||
|
# If there are more messages to save, the ones that are least
|
||||||
|
# accessed will be removed from the cache. So if you set this
|
||||||
|
# parameter too low, the module will often have to synthesize
|
||||||
|
# your request (which takes time) instead of just retrieving
|
||||||
|
# it from the cache, but you will save system resources. If you
|
||||||
|
# set it higher, it might make the module more responsive.
|
||||||
|
# The value is given in kilobytes, default is 10 megabytes.
|
||||||
|
|
||||||
|
# FestivalCacheMaxKBytes 10240
|
||||||
|
|
||||||
|
# Normally, the cache pool is common for all voices, rates and
|
||||||
|
# pitches. This means that when for example the key 'r' gets cached,
|
||||||
|
# you change the voice and request the key 'r' again, it will be
|
||||||
|
# retrieved from the cache and you will hear the old 'r' instead of a
|
||||||
|
# new one. By default, it only switches between languages. In most
|
||||||
|
# cases, this isn't a problem for characters, keys and sound icons and
|
||||||
|
# it saves system resources. But if you want to keep separate caches
|
||||||
|
# for different voices (and even rates and pitches), please set the
|
||||||
|
# corresponding parameters to 1. (0 means don't distinguish).
|
||||||
|
|
||||||
|
# FestivalCacheDistinguishVoices 0
|
||||||
|
# FestivalCacheDistinguishRate 0
|
||||||
|
# FestivalCacheDistinguishPitch 0
|
||||||
|
|
||||||
|
# -- FESTIVAL PERFORMANCE --
|
||||||
|
|
||||||
|
# Switching FestivalReopenSocket to 1 will make the module close the
|
||||||
|
# connection to Festival each time the currently synthesized wavefile
|
||||||
|
# is no longer needed to finish and new text is waiting. This may improve
|
||||||
|
# Festival responsivity on slower machines, but might cause a more network
|
||||||
|
# traffic. Currently, the option is set to 0 by default, because there
|
||||||
|
# is a network problem in Festival socket communication layer that introduces
|
||||||
|
# unnecessary delays that affect the performance heavily in this mode.
|
||||||
|
# Unless your Festival is patched against this bug, switching this on
|
||||||
|
# is not recommended.
|
||||||
|
|
||||||
|
# FestivalReopenSocket 0
|
||||||
|
|
||||||
|
|
||||||
|
# If FestivalDebugSaveOutput is set to 1, it writes the produced sound tracks
|
||||||
|
# to /tmp/debug-festival-*.snd before it says them. You can later browse them
|
||||||
|
# for debugging purposes. They are numbered in order starting from 0.
|
||||||
|
|
||||||
|
# FestivalDebugSaveOutput 0
|
||||||
|
|
||||||
|
|
||||||
|
# Copyright (C) 2003-2008 Brailcom, o.p.s
|
||||||
|
# Copyright (C) 2007 Gilles Casse <gcasse@oralux.org>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify it under
|
||||||
|
# the terms of the GNU General Public License as published by the Free Software
|
||||||
|
# Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
# version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||||
|
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
# PARTICULAR PURPOSE. See the GNU General Public License for more details (file
|
||||||
|
# COPYING in the root directory).
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
359
.config/speech-dispatcher/speechd.conf
Normal file
359
.config/speech-dispatcher/speechd.conf
Normal file
@ -0,0 +1,359 @@
|
|||||||
|
|
||||||
|
# Global configuration for Speech Dispatcher
|
||||||
|
# ==========================================
|
||||||
|
|
||||||
|
# -----SYSTEM OPTIONS-----
|
||||||
|
|
||||||
|
# CommunicationMethod specifies the method to be used by Speech Dispatcher to communicate with
|
||||||
|
# its clients. Two basic methods are "unix_socket" and "inet_socket".
|
||||||
|
#
|
||||||
|
# unix_socket -- communication over Unix sockets represented by a file in the
|
||||||
|
# filesystem (see SocketPath below). This method works only locally, but is
|
||||||
|
# preferred for standard session setup, where every user runs his own instance of Speech
|
||||||
|
# Dispatcher to get voice feedback on his own computer.
|
||||||
|
#
|
||||||
|
# inet_socket -- alternatively, you can start Speech Dispatcher on
|
||||||
|
# a TCP port and connect to it via hostname/port. This allows for a more
|
||||||
|
# flexible setup, where you can use Speech Dispatcher over network
|
||||||
|
# from different machines. See also the Port and LocalhostAccessOnly
|
||||||
|
# configuration variables.
|
||||||
|
#
|
||||||
|
# CommunicationMethod "unix_socket"
|
||||||
|
|
||||||
|
# SocketPath is either "default" or a full path to the filesystem
|
||||||
|
# where the driving Unix socket file should be created in case the
|
||||||
|
# CommunicationMethod is set to "unix_socket". The default is
|
||||||
|
# $XDG_RUNTIME_DIR/speech-dispatcher/speechd.sock where $XDG_RUNTIME_DIR
|
||||||
|
# is the directory specified by the XDG Base Directory Specification.
|
||||||
|
# Do not change this unless you have a reason and know what you are doing.
|
||||||
|
|
||||||
|
# SocketPath "default"
|
||||||
|
|
||||||
|
# The Port on which Speech Dispatcher should be available to clients if the "inet_socket"
|
||||||
|
# communication method is used.
|
||||||
|
|
||||||
|
# Port 6560
|
||||||
|
|
||||||
|
# By default, if "inet_socket" communication method is used, the specified port is opened only
|
||||||
|
# for connections coming from localhost. If LocalhostAccessOnly is set to 0 it disables this
|
||||||
|
# access control. It means that the port will be accessible from all computers on the
|
||||||
|
# network. If you turn off this option, please make sure you set up some system rules on what
|
||||||
|
# computers are and are not allowed to access the Speech Dispatcher port.
|
||||||
|
|
||||||
|
# LocalhostAccessOnly 1
|
||||||
|
|
||||||
|
# By default, Speech Dispatcher is configured to shut itself down after a period of
|
||||||
|
# time if no clients are connected. The timeout value is in seconds, and is started when
|
||||||
|
# the last client disconnects. A value of 0 disables the timeout.
|
||||||
|
|
||||||
|
# Timeout 5
|
||||||
|
|
||||||
|
# -----LOGGING CONFIGURATION-----
|
||||||
|
|
||||||
|
# The LogLevel is a number between 0 and 5 specifying the
|
||||||
|
# verbosity of information to the logfile or screen
|
||||||
|
# 0 means nothing, 5 means everything (not recommended).
|
||||||
|
|
||||||
|
LogLevel 3
|
||||||
|
|
||||||
|
# The LogDir specifies where the Speech Dispatcher logs reside
|
||||||
|
# Specify "stdout" for standard console output
|
||||||
|
# or a custom log directory path. 'default' means
|
||||||
|
# the logs are written to the default destination (e.g. a preconfigured
|
||||||
|
# system directory or the home directory if .speech-dispatcher is present)
|
||||||
|
# DO NOT COMMENT OUT THIS OPTION, leave as "default" for standard logging
|
||||||
|
|
||||||
|
LogDir "default"
|
||||||
|
#LogDir "/var/log/speech-dispatcher/"
|
||||||
|
#LogDir "stdout"
|
||||||
|
|
||||||
|
# The CustomLogFile allows logging all messages # regardless of
|
||||||
|
# priority, to the given destination.
|
||||||
|
#CustomLogFile "protocol" "/var/log/speech-dispatcher/speech-dispatcher-protocol.log"
|
||||||
|
|
||||||
|
# ----- VOICE PARAMETERS -----
|
||||||
|
|
||||||
|
# The DefaultRate controls how fast the synthesizer is going to speak.
|
||||||
|
# The value must be between -100 (slowest) and +100 (fastest), default
|
||||||
|
# is 0.
|
||||||
|
|
||||||
|
DefaultRate 0
|
||||||
|
|
||||||
|
# The DefaultPitch controls the pitch of the synthesized voice. The
|
||||||
|
# value must be between -100 (lowest) and +100 (highest), default is
|
||||||
|
# 0.
|
||||||
|
|
||||||
|
DefaultPitch 0
|
||||||
|
|
||||||
|
# The DefaultPitchRange controls the pitch range of the synthesized voice. The
|
||||||
|
# value must be between -100 (lowest) and +100 (highest), default is
|
||||||
|
# 0.
|
||||||
|
|
||||||
|
DefaultPitchRange 0
|
||||||
|
|
||||||
|
# The DefaultVolume controls the default volume of the voice. It is
|
||||||
|
# a value between -100 (softly) and +100 (loudly). Currently, +100
|
||||||
|
# maps to the default volume of the synthesizer.
|
||||||
|
|
||||||
|
DefaultVolume 100
|
||||||
|
|
||||||
|
# The DefaultVoiceType controls which voice type should be used by default.
|
||||||
|
# Voice types are symbolic names which map to particular voices provided by
|
||||||
|
# the synthesizer according to the output module configuration.
|
||||||
|
# Please see the synthesizer-specific configuration
|
||||||
|
# in etc/speech-dispatcher/modules/ to see which voices are assigned to
|
||||||
|
# different symbolic names. The following symbolic names are
|
||||||
|
# currently supported: MALE1, MALE2, MALE3, FEMALE1, FEMALE2, FEMALE3,
|
||||||
|
# CHILD_MALE, CHILD_FEMALE
|
||||||
|
|
||||||
|
# DefaultVoiceType "MALE1"
|
||||||
|
|
||||||
|
# The Default language with which to speak
|
||||||
|
# Note that the spd-say client in particular always sets the language to its
|
||||||
|
# current locale language, so this particular client will never pick this
|
||||||
|
# configuration.
|
||||||
|
|
||||||
|
DefaultLanguage en-US
|
||||||
|
|
||||||
|
|
||||||
|
# ----- MESSAGE DISPATCHING CONTROL -----
|
||||||
|
|
||||||
|
# The DefaultClientName specifies the name of a client who didn't
|
||||||
|
# introduce himself at the beginning of an SSIP session.
|
||||||
|
|
||||||
|
# DefaultClientName "unknown:unknown:unknown"
|
||||||
|
|
||||||
|
# The Default Priority. Use with caution, normally this shouldn't be
|
||||||
|
# changed globally (at this place)
|
||||||
|
|
||||||
|
# DefaultPriority "text"
|
||||||
|
|
||||||
|
# The DefaultPauseContext specifies by how many index marks a speech
|
||||||
|
# cursor should return when resuming after a pause. This is roughly
|
||||||
|
# equivalent to the number of sentences before the place of the
|
||||||
|
# execution of pause that will be repeated.
|
||||||
|
|
||||||
|
# DefaultPauseContext 0
|
||||||
|
|
||||||
|
# -----SPELLING/PUNCTUATION/CAPITAL LETTERS CONFIGURATION-----
|
||||||
|
|
||||||
|
# The DefaultPunctuationMode sets the way dots, comas, exclamation
|
||||||
|
# marks, question marks etc. are interpreted. none: they are ignored
|
||||||
|
# some: some of them are sent to synthesis (see
|
||||||
|
# DefaultPunctuationSome) all: all punctuation marks are sent to
|
||||||
|
# synthesis
|
||||||
|
|
||||||
|
# DefaultPunctuationMode "none"
|
||||||
|
|
||||||
|
# Level of punctuation for which symbol pre-processing should be performed by
|
||||||
|
# the server rather than by the module.
|
||||||
|
#
|
||||||
|
# This is completely independent of what punctuation level is actually asked, it
|
||||||
|
# controls to which extent the server should do the punctuation work to insert
|
||||||
|
# the appropriate words or if the output module is responsible for doing it.
|
||||||
|
#
|
||||||
|
# Setting this to "no" disables pre-processing completely and leaves all
|
||||||
|
# punctuation preprocessing to the output module. Setting this to
|
||||||
|
# "none" enables only the server rules which are always enabled whatever
|
||||||
|
# the punctuation level. Setting this to "all" enables all server rules for
|
||||||
|
# punctuation. Setting this to "char" enables all server rules, including
|
||||||
|
# rules for spelling spaces. Of course, which rules actually take effect depends
|
||||||
|
# on the requested punctuation level.
|
||||||
|
|
||||||
|
SymbolsPreproc "char"
|
||||||
|
|
||||||
|
# Which preprocessing files should be loaded, and in which order
|
||||||
|
#
|
||||||
|
# This is done first for the most specific localization, then lesser specific
|
||||||
|
# localization, etc. I.e. for the fr_FR language for instance, fr-fr files are
|
||||||
|
# loaded first, then fr files, then en files.
|
||||||
|
|
||||||
|
SymbolsPreprocFile "gender-neutral.dic"
|
||||||
|
SymbolsPreprocFile "font-variants.dic"
|
||||||
|
SymbolsPreprocFile "symbols.dic"
|
||||||
|
SymbolsPreprocFile "emojis.dic"
|
||||||
|
SymbolsPreprocFile "orca.dic"
|
||||||
|
SymbolsPreprocFile "orca-chars.dic"
|
||||||
|
|
||||||
|
# The DefaultCapLetRecognition: if set to "spell", capital letters
|
||||||
|
# should be spelled (e.g. "capital b"), if set to "icon",
|
||||||
|
# capital letters are indicated by inserting a special sound
|
||||||
|
# before them but they should be read normally, it set to "none"
|
||||||
|
# capital letters are not recognized (by default)
|
||||||
|
|
||||||
|
# DefaultCapLetRecognition "none"
|
||||||
|
|
||||||
|
# The DefaultSpelling: if set to On, all messages will be spelt
|
||||||
|
# unless set otherwise (this is usually not something you want to do.)
|
||||||
|
|
||||||
|
# DefaultSpelling Off
|
||||||
|
|
||||||
|
# ----- AUDIO CONFIGURATION -----------
|
||||||
|
|
||||||
|
# -- AUDIO OUTPUT --
|
||||||
|
|
||||||
|
# Chooses between the possible sound output systems:
|
||||||
|
# "pulse" - PulseAudio
|
||||||
|
# "alsa" - Advanced Linux Sound System
|
||||||
|
# "oss" - Open Sound System
|
||||||
|
# "pipewire" - the new low-latency sound server, for near realtime speech performance
|
||||||
|
# "nas" - Network Audio System
|
||||||
|
# "libao" - A cross platform audio library
|
||||||
|
#
|
||||||
|
# Pipe Wire is the newest audio output method in this configuration, but not the default one.
|
||||||
|
# However, if it works in your deployment, it is recommended because of the
|
||||||
|
# latency related advantages it has over pulseaudio and others, however enabling
|
||||||
|
# it should be done with precaution, because it isn't tested to work in all
|
||||||
|
# configurations supported by speech dispatcher.
|
||||||
|
# For now, enabling this is at the discression of the users and packagers of
|
||||||
|
# speech dispatcher. However, because we want to eventually make this the default
|
||||||
|
# for everyone, trying it in your deployments, if non-critical, is recommended
|
||||||
|
#
|
||||||
|
# OSS, Pulse Audio and ALSA are only provided for compatibility with
|
||||||
|
# architectures that do not include Pipe Wire.
|
||||||
|
#
|
||||||
|
# NAS provides network transparency, but is not very well tested.
|
||||||
|
#
|
||||||
|
# libao is a cross platform library with plugins for different sound systems
|
||||||
|
# and provides alternative output for Pulse Audio and ALSA as well as for other
|
||||||
|
# backends.
|
||||||
|
|
||||||
|
AudioOutputMethod pulse,alsa
|
||||||
|
|
||||||
|
# -- Pulse Audio parameters --
|
||||||
|
|
||||||
|
# Pulse audio device name or "default" for the default pulse device
|
||||||
|
|
||||||
|
#AudioPulseDevice "default"
|
||||||
|
|
||||||
|
# Latency requested from pulseaudio, in ms. Smaller values make speech
|
||||||
|
# interruption snappier, but also uses more CPU time thus battery.
|
||||||
|
# 10ms latency is considered in HCI (Human-computer Interaction) as real-time.
|
||||||
|
|
||||||
|
#AudioPulseMinLength 10
|
||||||
|
|
||||||
|
# -- ALSA parameters --
|
||||||
|
|
||||||
|
# Audio device for ALSA output
|
||||||
|
|
||||||
|
#AudioALSADevice "default"
|
||||||
|
|
||||||
|
# -- OSS parameters --
|
||||||
|
|
||||||
|
# Audio device for OSS output
|
||||||
|
|
||||||
|
#AudioOSSDevice "/dev/dsp"
|
||||||
|
|
||||||
|
# -- NAS parameters --
|
||||||
|
|
||||||
|
# Route to the Network Audio System server when NAS
|
||||||
|
# is chosen for the audio output. Note that NAS
|
||||||
|
# server doesn't need to run on your machine,
|
||||||
|
# you can use it also over network (for instance
|
||||||
|
# when working on remote machines).
|
||||||
|
|
||||||
|
#AudioNASServer "tcp/localhost:5450"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# -----OUTPUT MODULES CONFIGURATION-----
|
||||||
|
|
||||||
|
# Each AddModule line loads an output module.
|
||||||
|
# Syntax: AddModule "name" "binary" "configuration" "logfile"
|
||||||
|
# - name is the name under which you can access this module
|
||||||
|
# - binary is the path to the binary executable of this module,
|
||||||
|
# either relative (to libexec/speech-dispatcher-modules/
|
||||||
|
# or ~/.local/libexec/speech-dispatcher-modules) or absolute
|
||||||
|
# - configuration is the path to the config file of this module,
|
||||||
|
# either relative (to etc/speech-dispatcher/modules/
|
||||||
|
# or ~/.config/speech-dispatcher) or absolute
|
||||||
|
|
||||||
|
#AddModule "espeak" "sd_espeak" "espeak.conf"
|
||||||
|
#AddModule "espeak-ng" "sd_espeak-ng" "espeak-ng.conf"
|
||||||
|
#AddModule "festival" "sd_festival" "festival.conf"
|
||||||
|
#AddModule "flite" "sd_flite" "flite.conf"
|
||||||
|
#AddModule "ivona" "sd_ivona" "ivona.conf"
|
||||||
|
#AddModule "pico" "sd_pico" "pico.conf"
|
||||||
|
#AddModule "espeak-ng-mbrola" "sd_espeak-ng-mbrola" "espeak-ng-mbrola.conf"
|
||||||
|
#AddModule "espeak-ng-mbrola-generic" "sd_generic" "espeak-ng-mbrola-generic.conf"
|
||||||
|
#AddModule "espeak-mbrola-generic" "sd_generic" "espeak-mbrola-generic.conf"
|
||||||
|
#AddModule "swift-generic" "sd_generic" "swift-generic.conf"
|
||||||
|
#AddModule "epos-generic" "sd_generic" "epos-generic.conf"
|
||||||
|
#AddModule "dtk-generic" "sd_generic" "dtk-generic.conf"
|
||||||
|
#AddModule "ibmtts" "sd_ibmtts" "ibmtts.conf"
|
||||||
|
#AddModule "cicero" "sd_cicero" "cicero.conf"
|
||||||
|
#AddModule "kali" "sd_kali" "kali.conf"
|
||||||
|
#AddModule "mary-generic" "sd_generic" "mary-generic.conf"
|
||||||
|
#AddModule "baratinoo" "sd_baratinoo" "baratinoo.conf"
|
||||||
|
#AddModule "rhvoice" "sd_rhvoice" "rhvoice.conf"
|
||||||
|
#AddModule "voxin" "sd_voxin" "voxin.conf"
|
||||||
|
# AddModule "piper-tts-generic" "sd_generic" "piper-tts-generic.conf"
|
||||||
|
|
||||||
|
# The output module testing doesn't actually connect to anything. It
|
||||||
|
# outputs the requested commands to standard output and reads
|
||||||
|
# responses from stdandard input. This way, Speech Dispatcher's
|
||||||
|
# communication with output modules can be tested easily.
|
||||||
|
|
||||||
|
# AddModule "testing"
|
||||||
|
|
||||||
|
# The DefaultModule selects which output module is the default. You
|
||||||
|
# must use one of the names of the modules loaded with AddModule.
|
||||||
|
|
||||||
|
DefaultModule "espeak-ng"
|
||||||
|
|
||||||
|
# The LanguageDefaultModule selects which output modules are preferred
|
||||||
|
# for specified languages.
|
||||||
|
|
||||||
|
#LanguageDefaultModule "en" "espeak"
|
||||||
|
#LanguageDefaultModule "cs" "festival"
|
||||||
|
#LanguageDefaultModule "es" "festival"
|
||||||
|
|
||||||
|
# -----CLIENT SPECIFIC CONFIGURATION-----
|
||||||
|
|
||||||
|
# Here you can include the files with client-specific configuration
|
||||||
|
# for different types of clients. They must contain one or more sections with
|
||||||
|
# this structure:
|
||||||
|
# BeginClient "emacs:*"
|
||||||
|
# DefaultPunctuationMode "some"
|
||||||
|
# ...and/or some other settings
|
||||||
|
# EndClient
|
||||||
|
# The parameter of BeginClient tells Speech Dispatcher which clients
|
||||||
|
# it should apply the settings to (it does glob-style matching, you can use
|
||||||
|
# * to match any number of characters and ? to match one character)
|
||||||
|
|
||||||
|
# There are some sample client settings
|
||||||
|
|
||||||
|
Include "clients/*.conf"
|
||||||
|
|
||||||
|
# The DisableAutoSpawn option will disable the autospawn mechanism.
|
||||||
|
# Thus the server will not start automatically on requests from the clients
|
||||||
|
# DisableAutoSpawn
|
||||||
|
|
||||||
|
|
||||||
|
# Copyright (C) 2001-2009 Brailcom, o.p.s
|
||||||
|
# Copyright (C) 2009 Rui Batista <ruiandrebatista@gmail.com>
|
||||||
|
# Copyright (C) 2010 Andrei Kholodnyi <Andrei.Kholodnyi@gmail.com>
|
||||||
|
# Copyright (C) 2010 William Hubbs <w.d.hubbs@gmail.com>
|
||||||
|
# Copyright (C) 2010 Trevor Saunders <trev.saunders@gmail.com>
|
||||||
|
# Copyright (C) 2012 William Jon McCann <jmccann@redhat.com>
|
||||||
|
# Copyright (C) 2014 Rob Whyte <fudge@thefudge.net>
|
||||||
|
# Copyright (C) 2014-2016 Luke Yelavich <themuso@ubuntu.com>
|
||||||
|
# Copyright (C) 2014 Hussain Jasim <hussainmkj@gmail.com>
|
||||||
|
# Copyright (C) 2017 Colomban Wendling <cwendling@hypra.fr>
|
||||||
|
# Copyright (C) 2018 Raphaël POITEVIN <rpoitevin@hypra.fr>
|
||||||
|
# Copyright (C) 2018 Florian Steinhardt <no.known.email@example.com>
|
||||||
|
# Copyright (C) 2018-2024 Samuel Thibault <samuel.thibault@ens-lyon.org>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify it under
|
||||||
|
# the terms of the GNU General Public License as published by the Free Software
|
||||||
|
# Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
# version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||||
|
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
# PARTICULAR PURPOSE. See the GNU General Public License for more details (file
|
||||||
|
# COPYING in the root directory).
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
357
.config/speech-dispatcher/speechd.conf.bak
Normal file
357
.config/speech-dispatcher/speechd.conf.bak
Normal file
@ -0,0 +1,357 @@
|
|||||||
|
|
||||||
|
# Global configuration for Speech Dispatcher
|
||||||
|
# ==========================================
|
||||||
|
|
||||||
|
# -----SYSTEM OPTIONS-----
|
||||||
|
|
||||||
|
# CommunicationMethod specifies the method to be used by Speech Dispatcher to communicate with
|
||||||
|
# its clients. Two basic methods are "unix_socket" and "inet_socket".
|
||||||
|
#
|
||||||
|
# unix_socket -- communication over Unix sockets represented by a file in the
|
||||||
|
# filesystem (see SocketPath below). This method works only locally, but is
|
||||||
|
# preferred for standard session setup, where every user runs his own instance of Speech
|
||||||
|
# Dispatcher to get voice feedback on his own computer.
|
||||||
|
#
|
||||||
|
# inet_socket -- alternatively, you can start Speech Dispatcher on
|
||||||
|
# a TCP port and connect to it via hostname/port. This allows for a more
|
||||||
|
# flexible setup, where you can use Speech Dispatcher over network
|
||||||
|
# from different machines. See also the Port and LocalhostAccessOnly
|
||||||
|
# configuration variables.
|
||||||
|
#
|
||||||
|
# CommunicationMethod "unix_socket"
|
||||||
|
|
||||||
|
# SocketPath is either "default" or a full path to the filesystem
|
||||||
|
# where the driving Unix socket file should be created in case the
|
||||||
|
# CommunicationMethod is set to "unix_socket". The default is
|
||||||
|
# $XDG_RUNTIME_DIR/speech-dispatcher/speechd.sock where $XDG_RUNTIME_DIR
|
||||||
|
# is the directory specified by the XDG Base Directory Specification.
|
||||||
|
# Do not change this unless you have a reason and know what you are doing.
|
||||||
|
|
||||||
|
# SocketPath "default"
|
||||||
|
|
||||||
|
# The Port on which Speech Dispatcher should be available to clients if the "inet_socket"
|
||||||
|
# communication method is used.
|
||||||
|
|
||||||
|
# Port 6560
|
||||||
|
|
||||||
|
# By default, if "inet_socket" communication method is used, the specified port is opened only
|
||||||
|
# for connections coming from localhost. If LocalhostAccessOnly is set to 0 it disables this
|
||||||
|
# access control. It means that the port will be accessible from all computers on the
|
||||||
|
# network. If you turn off this option, please make sure you set up some system rules on what
|
||||||
|
# computers are and are not allowed to access the Speech Dispatcher port.
|
||||||
|
|
||||||
|
# LocalhostAccessOnly 1
|
||||||
|
|
||||||
|
# By default, Speech Dispatcher is configured to shut itself down after a period of
|
||||||
|
# time if no clients are connected. The timeout value is in seconds, and is started when
|
||||||
|
# the last client disconnects. A value of 0 disables the timeout.
|
||||||
|
|
||||||
|
# Timeout 5
|
||||||
|
|
||||||
|
# -----LOGGING CONFIGURATION-----
|
||||||
|
|
||||||
|
# The LogLevel is a number between 0 and 5 specifying the
|
||||||
|
# verbosity of information to the logfile or screen
|
||||||
|
# 0 means nothing, 5 means everything (not recommended).
|
||||||
|
|
||||||
|
LogLevel 3
|
||||||
|
|
||||||
|
# The LogDir specifies where the Speech Dispatcher logs reside
|
||||||
|
# Specify "stdout" for standard console output
|
||||||
|
# or a custom log directory path. 'default' means
|
||||||
|
# the logs are written to the default destination (e.g. a preconfigured
|
||||||
|
# system directory or the home directory if .speech-dispatcher is present)
|
||||||
|
# DO NOT COMMENT OUT THIS OPTION, leave as "default" for standard logging
|
||||||
|
|
||||||
|
LogDir "default"
|
||||||
|
#LogDir "/var/log/speech-dispatcher/"
|
||||||
|
#LogDir "stdout"
|
||||||
|
|
||||||
|
# The CustomLogFile allows logging all messages # regardless of
|
||||||
|
# priority, to the given destination.
|
||||||
|
#CustomLogFile "protocol" "/var/log/speech-dispatcher/speech-dispatcher-protocol.log"
|
||||||
|
|
||||||
|
# ----- VOICE PARAMETERS -----
|
||||||
|
|
||||||
|
# The DefaultRate controls how fast the synthesizer is going to speak.
|
||||||
|
# The value must be between -100 (slowest) and +100 (fastest), default
|
||||||
|
# is 0.
|
||||||
|
|
||||||
|
# DefaultRate 0
|
||||||
|
|
||||||
|
# The DefaultPitch controls the pitch of the synthesized voice. The
|
||||||
|
# value must be between -100 (lowest) and +100 (highest), default is
|
||||||
|
# 0.
|
||||||
|
|
||||||
|
# DefaultPitch 0
|
||||||
|
|
||||||
|
# The DefaultPitchRange controls the pitch range of the synthesized voice. The
|
||||||
|
# value must be between -100 (lowest) and +100 (highest), default is
|
||||||
|
# 0.
|
||||||
|
|
||||||
|
# DefaultPitchRange 0
|
||||||
|
|
||||||
|
# The DefaultVolume controls the default volume of the voice. It is
|
||||||
|
# a value between -100 (softly) and +100 (loudly). Currently, +100
|
||||||
|
# maps to the default volume of the synthesizer.
|
||||||
|
|
||||||
|
DefaultVolume 100
|
||||||
|
|
||||||
|
# The DefaultVoiceType controls which voice type should be used by default.
|
||||||
|
# Voice types are symbolic names which map to particular voices provided by
|
||||||
|
# the synthesizer according to the output module configuration.
|
||||||
|
# Please see the synthesizer-specific configuration
|
||||||
|
# in etc/speech-dispatcher/modules/ to see which voices are assigned to
|
||||||
|
# different symbolic names. The following symbolic names are
|
||||||
|
# currently supported: MALE1, MALE2, MALE3, FEMALE1, FEMALE2, FEMALE3,
|
||||||
|
# CHILD_MALE, CHILD_FEMALE
|
||||||
|
|
||||||
|
# DefaultVoiceType "MALE1"
|
||||||
|
|
||||||
|
# The Default language with which to speak
|
||||||
|
# Note that the spd-say client in particular always sets the language to its
|
||||||
|
# current locale language, so this particular client will never pick this
|
||||||
|
# configuration.
|
||||||
|
|
||||||
|
# DefaultLanguage "en-US"
|
||||||
|
|
||||||
|
|
||||||
|
# ----- MESSAGE DISPATCHING CONTROL -----
|
||||||
|
|
||||||
|
# The DefaultClientName specifies the name of a client who didn't
|
||||||
|
# introduce himself at the beginning of an SSIP session.
|
||||||
|
|
||||||
|
# DefaultClientName "unknown:unknown:unknown"
|
||||||
|
|
||||||
|
# The Default Priority. Use with caution, normally this shouldn't be
|
||||||
|
# changed globally (at this place)
|
||||||
|
|
||||||
|
# DefaultPriority "text"
|
||||||
|
|
||||||
|
# The DefaultPauseContext specifies by how many index marks a speech
|
||||||
|
# cursor should return when resuming after a pause. This is roughly
|
||||||
|
# equivalent to the number of sentences before the place of the
|
||||||
|
# execution of pause that will be repeated.
|
||||||
|
|
||||||
|
# DefaultPauseContext 0
|
||||||
|
|
||||||
|
# -----SPELLING/PUNCTUATION/CAPITAL LETTERS CONFIGURATION-----
|
||||||
|
|
||||||
|
# The DefaultPunctuationMode sets the way dots, comas, exclamation
|
||||||
|
# marks, question marks etc. are interpreted. none: they are ignored
|
||||||
|
# some: some of them are sent to synthesis (see
|
||||||
|
# DefaultPunctuationSome) all: all punctuation marks are sent to
|
||||||
|
# synthesis
|
||||||
|
|
||||||
|
# DefaultPunctuationMode "none"
|
||||||
|
|
||||||
|
# Level of punctuation for which symbol pre-processing should be performed by
|
||||||
|
# the server rather than by the module.
|
||||||
|
#
|
||||||
|
# This is completely independent of what punctuation level is actually asked, it
|
||||||
|
# controls to which extent the server should do the punctuation work to insert
|
||||||
|
# the appropriate words or if the output module is responsible for doing it.
|
||||||
|
#
|
||||||
|
# Setting this to "no" disables pre-processing completely and leaves all
|
||||||
|
# punctuation preprocessing to the output module. Setting this to
|
||||||
|
# "none" enables only the server rules which are always enabled whatever
|
||||||
|
# the punctuation level. Setting this to "all" enables all server rules for
|
||||||
|
# punctuation. Setting this to "char" enables all server rules, including
|
||||||
|
# rules for spelling spaces. Of course, which rules actually take effect depends
|
||||||
|
# on the requested punctuation level.
|
||||||
|
|
||||||
|
SymbolsPreproc "char"
|
||||||
|
|
||||||
|
# Which preprocessing files should be loaded, and in which order
|
||||||
|
#
|
||||||
|
# This is done first for the most specific localization, then lesser specific
|
||||||
|
# localization, etc. I.e. for the fr_FR language for instance, fr-fr files are
|
||||||
|
# loaded first, then fr files, then en files.
|
||||||
|
|
||||||
|
SymbolsPreprocFile "gender-neutral.dic"
|
||||||
|
SymbolsPreprocFile "font-variants.dic"
|
||||||
|
SymbolsPreprocFile "symbols.dic"
|
||||||
|
SymbolsPreprocFile "emojis.dic"
|
||||||
|
SymbolsPreprocFile "orca.dic"
|
||||||
|
SymbolsPreprocFile "orca-chars.dic"
|
||||||
|
|
||||||
|
# The DefaultCapLetRecognition: if set to "spell", capital letters
|
||||||
|
# should be spelled (e.g. "capital b"), if set to "icon",
|
||||||
|
# capital letters are indicated by inserting a special sound
|
||||||
|
# before them but they should be read normally, it set to "none"
|
||||||
|
# capital letters are not recognized (by default)
|
||||||
|
|
||||||
|
# DefaultCapLetRecognition "none"
|
||||||
|
|
||||||
|
# The DefaultSpelling: if set to On, all messages will be spelt
|
||||||
|
# unless set otherwise (this is usually not something you want to do.)
|
||||||
|
|
||||||
|
# DefaultSpelling Off
|
||||||
|
|
||||||
|
# ----- AUDIO CONFIGURATION -----------
|
||||||
|
|
||||||
|
# -- AUDIO OUTPUT --
|
||||||
|
|
||||||
|
# Chooses between the possible sound output systems:
|
||||||
|
# "pulse" - PulseAudio
|
||||||
|
# "alsa" - Advanced Linux Sound System
|
||||||
|
# "oss" - Open Sound System
|
||||||
|
# "pipewire" - the new low-latency sound server, for near realtime speech performance
|
||||||
|
# "nas" - Network Audio System
|
||||||
|
# "libao" - A cross platform audio library
|
||||||
|
#
|
||||||
|
# Pipe Wire is the newest audio output method in this configuration, but not the default one.
|
||||||
|
# However, if it works in your deployment, it is recommended because of the
|
||||||
|
# latency related advantages it has over pulseaudio and others, however enabling
|
||||||
|
# it should be done with precaution, because it isn't tested to work in all
|
||||||
|
# configurations supported by speech dispatcher.
|
||||||
|
# For now, enabling this is at the discression of the users and packagers of
|
||||||
|
# speech dispatcher. However, because we want to eventually make this the default
|
||||||
|
# for everyone, trying it in your deployments, if non-critical, is recommended
|
||||||
|
#
|
||||||
|
# OSS, Pulse Audio and ALSA are only provided for compatibility with
|
||||||
|
# architectures that do not include Pipe Wire.
|
||||||
|
#
|
||||||
|
# NAS provides network transparency, but is not very well tested.
|
||||||
|
#
|
||||||
|
# libao is a cross platform library with plugins for different sound systems
|
||||||
|
# and provides alternative output for Pulse Audio and ALSA as well as for other
|
||||||
|
# backends.
|
||||||
|
|
||||||
|
# AudioOutputMethod "pipewire"
|
||||||
|
|
||||||
|
# -- Pulse Audio parameters --
|
||||||
|
|
||||||
|
# Pulse audio device name or "default" for the default pulse device
|
||||||
|
|
||||||
|
#AudioPulseDevice "default"
|
||||||
|
|
||||||
|
# Latency requested from pulseaudio, in ms. Smaller values make speech
|
||||||
|
# interruption snappier, but also uses more CPU time thus battery.
|
||||||
|
# 10ms latency is considered in HCI (Human-computer Interaction) as real-time.
|
||||||
|
|
||||||
|
#AudioPulseMinLength 10
|
||||||
|
|
||||||
|
# -- ALSA parameters --
|
||||||
|
|
||||||
|
# Audio device for ALSA output
|
||||||
|
|
||||||
|
#AudioALSADevice "default"
|
||||||
|
|
||||||
|
# -- OSS parameters --
|
||||||
|
|
||||||
|
# Audio device for OSS output
|
||||||
|
|
||||||
|
#AudioOSSDevice "/dev/dsp"
|
||||||
|
|
||||||
|
# -- NAS parameters --
|
||||||
|
|
||||||
|
# Route to the Network Audio System server when NAS
|
||||||
|
# is chosen for the audio output. Note that NAS
|
||||||
|
# server doesn't need to run on your machine,
|
||||||
|
# you can use it also over network (for instance
|
||||||
|
# when working on remote machines).
|
||||||
|
|
||||||
|
#AudioNASServer "tcp/localhost:5450"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# -----OUTPUT MODULES CONFIGURATION-----
|
||||||
|
|
||||||
|
# Each AddModule line loads an output module.
|
||||||
|
# Syntax: AddModule "name" "binary" "configuration" "logfile"
|
||||||
|
# - name is the name under which you can access this module
|
||||||
|
# - binary is the path to the binary executable of this module,
|
||||||
|
# either relative (to libexec/speech-dispatcher-modules/
|
||||||
|
# or ~/.local/libexec/speech-dispatcher-modules) or absolute
|
||||||
|
# - configuration is the path to the config file of this module,
|
||||||
|
# either relative (to etc/speech-dispatcher/modules/
|
||||||
|
# or ~/.config/speech-dispatcher) or absolute
|
||||||
|
|
||||||
|
#AddModule "espeak" "sd_espeak" "espeak.conf"
|
||||||
|
#AddModule "espeak-ng" "sd_espeak-ng" "espeak-ng.conf"
|
||||||
|
#AddModule "festival" "sd_festival" "festival.conf"
|
||||||
|
#AddModule "flite" "sd_flite" "flite.conf"
|
||||||
|
#AddModule "ivona" "sd_ivona" "ivona.conf"
|
||||||
|
#AddModule "pico" "sd_pico" "pico.conf"
|
||||||
|
#AddModule "espeak-ng-mbrola" "sd_espeak-ng-mbrola" "espeak-ng-mbrola.conf"
|
||||||
|
#AddModule "espeak-ng-mbrola-generic" "sd_generic" "espeak-ng-mbrola-generic.conf"
|
||||||
|
#AddModule "espeak-mbrola-generic" "sd_generic" "espeak-mbrola-generic.conf"
|
||||||
|
#AddModule "swift-generic" "sd_generic" "swift-generic.conf"
|
||||||
|
#AddModule "epos-generic" "sd_generic" "epos-generic.conf"
|
||||||
|
#AddModule "dtk-generic" "sd_generic" "dtk-generic.conf"
|
||||||
|
#AddModule "ibmtts" "sd_ibmtts" "ibmtts.conf"
|
||||||
|
#AddModule "cicero" "sd_cicero" "cicero.conf"
|
||||||
|
#AddModule "kali" "sd_kali" "kali.conf"
|
||||||
|
#AddModule "mary-generic" "sd_generic" "mary-generic.conf"
|
||||||
|
#AddModule "baratinoo" "sd_baratinoo" "baratinoo.conf"
|
||||||
|
#AddModule "rhvoice" "sd_rhvoice" "rhvoice.conf"
|
||||||
|
#AddModule "voxin" "sd_voxin" "voxin.conf"
|
||||||
|
|
||||||
|
# The output module testing doesn't actually connect to anything. It
|
||||||
|
# outputs the requested commands to standard output and reads
|
||||||
|
# responses from stdandard input. This way, Speech Dispatcher's
|
||||||
|
# communication with output modules can be tested easily.
|
||||||
|
|
||||||
|
# AddModule "testing"
|
||||||
|
|
||||||
|
# The DefaultModule selects which output module is the default. You
|
||||||
|
# must use one of the names of the modules loaded with AddModule.
|
||||||
|
|
||||||
|
# DefaultModule espeak-ng
|
||||||
|
|
||||||
|
# The LanguageDefaultModule selects which output modules are preferred
|
||||||
|
# for specified languages.
|
||||||
|
|
||||||
|
#LanguageDefaultModule "en" "espeak"
|
||||||
|
#LanguageDefaultModule "cs" "festival"
|
||||||
|
#LanguageDefaultModule "es" "festival"
|
||||||
|
|
||||||
|
# -----CLIENT SPECIFIC CONFIGURATION-----
|
||||||
|
|
||||||
|
# Here you can include the files with client-specific configuration
|
||||||
|
# for different types of clients. They must contain one or more sections with
|
||||||
|
# this structure:
|
||||||
|
# BeginClient "emacs:*"
|
||||||
|
# DefaultPunctuationMode "some"
|
||||||
|
# ...and/or some other settings
|
||||||
|
# EndClient
|
||||||
|
# The parameter of BeginClient tells Speech Dispatcher which clients
|
||||||
|
# it should apply the settings to (it does glob-style matching, you can use
|
||||||
|
# * to match any number of characters and ? to match one character)
|
||||||
|
|
||||||
|
# There are some sample client settings
|
||||||
|
|
||||||
|
Include "clients/*.conf"
|
||||||
|
|
||||||
|
# The DisableAutoSpawn option will disable the autospawn mechanism.
|
||||||
|
# Thus the server will not start automatically on requests from the clients
|
||||||
|
# DisableAutoSpawn
|
||||||
|
|
||||||
|
|
||||||
|
# Copyright (C) 2001-2009 Brailcom, o.p.s
|
||||||
|
# Copyright (C) 2009 Rui Batista <ruiandrebatista@gmail.com>
|
||||||
|
# Copyright (C) 2010 Andrei Kholodnyi <Andrei.Kholodnyi@gmail.com>
|
||||||
|
# Copyright (C) 2010 William Hubbs <w.d.hubbs@gmail.com>
|
||||||
|
# Copyright (C) 2010 Trevor Saunders <trev.saunders@gmail.com>
|
||||||
|
# Copyright (C) 2012 William Jon McCann <jmccann@redhat.com>
|
||||||
|
# Copyright (C) 2014 Rob Whyte <fudge@thefudge.net>
|
||||||
|
# Copyright (C) 2014-2016 Luke Yelavich <themuso@ubuntu.com>
|
||||||
|
# Copyright (C) 2014 Hussain Jasim <hussainmkj@gmail.com>
|
||||||
|
# Copyright (C) 2017 Colomban Wendling <cwendling@hypra.fr>
|
||||||
|
# Copyright (C) 2018 Raphaël POITEVIN <rpoitevin@hypra.fr>
|
||||||
|
# Copyright (C) 2018 Florian Steinhardt <no.known.email@example.com>
|
||||||
|
# Copyright (C) 2018-2024 Samuel Thibault <samuel.thibault@ens-lyon.org>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify it under
|
||||||
|
# the terms of the GNU General Public License as published by the Free Software
|
||||||
|
# Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
# version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||||
|
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
# PARTICULAR PURPOSE. See the GNU General Public License for more details (file
|
||||||
|
# COPYING in the root directory).
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
@ -1,269 +0,0 @@
|
|||||||
# Default config for sway
|
|
||||||
#
|
|
||||||
# Copy this to ~/.config/sway/config and edit it to your liking.
|
|
||||||
#
|
|
||||||
|
|
||||||
# Read `man 5 sway` for a complete reference.
|
|
||||||
|
|
||||||
### Variables
|
|
||||||
#
|
|
||||||
# Logo key. Use Mod1 for Alt.
|
|
||||||
set $mod Mod4
|
|
||||||
# Home row direction keys, like vim
|
|
||||||
set $left h
|
|
||||||
set $down j
|
|
||||||
set $up k
|
|
||||||
set $right l
|
|
||||||
# Your preferred terminal emulator
|
|
||||||
set $term alacritty
|
|
||||||
# Your preferred application launcher
|
|
||||||
set $menu wmenu-run
|
|
||||||
|
|
||||||
include /etc/sway/config-vars.d/*
|
|
||||||
|
|
||||||
client.focused "#2c2c2c" "#212121" "#fefefe" "#ffffff" "#2c2c2c"
|
|
||||||
|
|
||||||
### Output configuration
|
|
||||||
#
|
|
||||||
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
|
|
||||||
# This is commented in Debian, because the Sway wallpaper files are in a separate
|
|
||||||
# package `sway-backgrounds`. Installing this package drops a config file to
|
|
||||||
# /etc/sway/config.d/
|
|
||||||
# output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill
|
|
||||||
#
|
|
||||||
# Example configuration:
|
|
||||||
#
|
|
||||||
# output HDMI-A-1 resolution 1920x1080 position 1920,0
|
|
||||||
#
|
|
||||||
# You can get the names of your outputs by running: swaymsg -t get_outputs
|
|
||||||
|
|
||||||
output DP-2 mode 2560x1440@165.001Hz
|
|
||||||
|
|
||||||
### Idle configuration
|
|
||||||
#
|
|
||||||
# Example configuration:
|
|
||||||
#
|
|
||||||
# exec swayidle -w \
|
|
||||||
# timeout 300 'swaylock -f -c 000000' \
|
|
||||||
# timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \
|
|
||||||
# before-sleep 'swaylock -f -c 000000'
|
|
||||||
#
|
|
||||||
# This will lock your screen after 300 seconds of inactivity, then turn off
|
|
||||||
# your displays after another 300 seconds, and turn your screens back on when
|
|
||||||
# resumed. It will also lock your screen before your computer goes to sleep.
|
|
||||||
|
|
||||||
exec swayosd-server
|
|
||||||
|
|
||||||
### Input configuration
|
|
||||||
#
|
|
||||||
# Example configuration:
|
|
||||||
#
|
|
||||||
# input "2:14:SynPS/2_Synaptics_TouchPad" {
|
|
||||||
# dwt enabled
|
|
||||||
# tap enabled
|
|
||||||
# natural_scroll enabled
|
|
||||||
# middle_emulation enabled
|
|
||||||
# }
|
|
||||||
#
|
|
||||||
# You can get the names of your inputs by running: swaymsg -t get_inputs
|
|
||||||
# Read `man 5 sway-input` for more information about this
|
|
||||||
|
|
||||||
output * bg /home/landam/Pictures/wallpaper/dark_waves.jpg fill
|
|
||||||
|
|
||||||
input type:touchpad {
|
|
||||||
dwt enabled
|
|
||||||
tap enabled
|
|
||||||
natural_scroll enabled
|
|
||||||
middle_emulation enabled
|
|
||||||
}
|
|
||||||
|
|
||||||
# Set keyboard layouts
|
|
||||||
input "type:keyboard" {
|
|
||||||
xkb_layout us,ru
|
|
||||||
xkb_options grp:alt_shift_toggle
|
|
||||||
}
|
|
||||||
|
|
||||||
# input "2:14:SynPS/2_Synaptics_TouchPad" {
|
|
||||||
# dwt enabled
|
|
||||||
# tap enabled
|
|
||||||
# natural_scroll enabled
|
|
||||||
# middle_emulation enabled
|
|
||||||
# }
|
|
||||||
|
|
||||||
|
|
||||||
### Key bindings
|
|
||||||
#
|
|
||||||
# Basics:
|
|
||||||
#
|
|
||||||
# Start a terminal
|
|
||||||
bindsym $mod+Return exec $term
|
|
||||||
|
|
||||||
# Kill focused window
|
|
||||||
bindsym $mod+Shift+q kill
|
|
||||||
|
|
||||||
# Start your launcher
|
|
||||||
bindsym $mod+d exec $menu
|
|
||||||
|
|
||||||
# Color Picker
|
|
||||||
bindsym $mod+c exec grim -g "$(slurp -p)" -t ppm - | convert - -format "%[pixel:p{0,0}]" txt:- | tail -n 1 | cut -d " " -f 4 | wl-copy
|
|
||||||
|
|
||||||
# Drag floating windows by holding down $mod and left mouse button.
|
|
||||||
# Resize them with right mouse button + $mod.
|
|
||||||
# Despite the name, also works for non-floating windows.
|
|
||||||
# Change normal to inverse to use left mouse button for resizing and right
|
|
||||||
# mouse button for dragging.
|
|
||||||
floating_modifier $mod normal
|
|
||||||
|
|
||||||
# Reload the configuration file
|
|
||||||
bindsym $mod+Shift+c reload
|
|
||||||
|
|
||||||
# Exit sway (logs you out of your Wayland session)
|
|
||||||
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
|
|
||||||
#
|
|
||||||
# Moving around:
|
|
||||||
#
|
|
||||||
# Move your focus around
|
|
||||||
bindsym $mod+$left focus left
|
|
||||||
bindsym $mod+$down focus down
|
|
||||||
bindsym $mod+$up focus up
|
|
||||||
bindsym $mod+$right focus right
|
|
||||||
# Or use $mod+[up|down|left|right]
|
|
||||||
bindsym $mod+Left focus left
|
|
||||||
bindsym $mod+Down focus down
|
|
||||||
bindsym $mod+Up focus up
|
|
||||||
bindsym $mod+Right focus right
|
|
||||||
|
|
||||||
# Move the focused window with the same, but add Shift
|
|
||||||
bindsym $mod+Shift+$left move left
|
|
||||||
bindsym $mod+Shift+$down move down
|
|
||||||
bindsym $mod+Shift+$up move up
|
|
||||||
bindsym $mod+Shift+$right move right
|
|
||||||
# Ditto, with arrow keys
|
|
||||||
bindsym $mod+Shift+Left move left
|
|
||||||
bindsym $mod+Shift+Down move down
|
|
||||||
bindsym $mod+Shift+Up move up
|
|
||||||
bindsym $mod+Shift+Right move right
|
|
||||||
#
|
|
||||||
# Workspaces:
|
|
||||||
#
|
|
||||||
# Switch to workspace
|
|
||||||
bindsym $mod+1 workspace number 1
|
|
||||||
bindsym $mod+2 workspace number 2
|
|
||||||
bindsym $mod+3 workspace number 3
|
|
||||||
bindsym $mod+4 workspace number 4
|
|
||||||
bindsym $mod+5 workspace number 5
|
|
||||||
bindsym $mod+6 workspace number 6
|
|
||||||
bindsym $mod+7 workspace number 7
|
|
||||||
bindsym $mod+8 workspace number 8
|
|
||||||
bindsym $mod+9 workspace number 9
|
|
||||||
bindsym $mod+0 workspace number 10
|
|
||||||
# Move focused container to workspace
|
|
||||||
bindsym $mod+Shift+1 move container to workspace number 1
|
|
||||||
bindsym $mod+Shift+2 move container to workspace number 2
|
|
||||||
bindsym $mod+Shift+3 move container to workspace number 3
|
|
||||||
bindsym $mod+Shift+4 move container to workspace number 4
|
|
||||||
bindsym $mod+Shift+5 move container to workspace number 5
|
|
||||||
bindsym $mod+Shift+6 move container to workspace number 6
|
|
||||||
bindsym $mod+Shift+7 move container to workspace number 7
|
|
||||||
bindsym $mod+Shift+8 move container to workspace number 8
|
|
||||||
bindsym $mod+Shift+9 move container to workspace number 9
|
|
||||||
bindsym $mod+Shift+0 move container to workspace number 10
|
|
||||||
# Note: workspaces can have any name you want, not just numbers.
|
|
||||||
# We just use 1-10 as the default.
|
|
||||||
#
|
|
||||||
# Layout stuff:
|
|
||||||
#
|
|
||||||
# You can "split" the current object of your focus with
|
|
||||||
# $mod+b or $mod+v, for horizontal and vertical splits
|
|
||||||
# respectively.
|
|
||||||
bindsym $mod+b splith
|
|
||||||
bindsym $mod+v splitv
|
|
||||||
|
|
||||||
# Switch the current container between different layout styles
|
|
||||||
bindsym $mod+s layout stacking
|
|
||||||
bindsym $mod+w layout tabbed
|
|
||||||
bindsym $mod+e layout toggle split
|
|
||||||
|
|
||||||
# Make the current focus fullscreen
|
|
||||||
bindsym $mod+f fullscreen
|
|
||||||
|
|
||||||
# Toggle the current focus between tiling and floating mode
|
|
||||||
bindsym $mod+Shift+space floating toggle
|
|
||||||
|
|
||||||
# Swap focus between the tiling area and the floating area
|
|
||||||
bindsym $mod+space focus mode_toggle
|
|
||||||
|
|
||||||
# Move focus to the parent container
|
|
||||||
bindsym $mod+a focus parent
|
|
||||||
#
|
|
||||||
# Scratchpad:
|
|
||||||
#
|
|
||||||
# Sway has a "scratchpad", which is a bag of holding for windows.
|
|
||||||
# You can send windows there and get them back later.
|
|
||||||
|
|
||||||
# Move the currently focused window to the scratchpad
|
|
||||||
bindsym $mod+Shift+minus move scratchpad
|
|
||||||
|
|
||||||
# Show the next scratchpad window or hide the focused scratchpad window.
|
|
||||||
# If there are multiple scratchpad windows, this command cycles through them.
|
|
||||||
bindsym $mod+minus scratchpad show
|
|
||||||
#
|
|
||||||
# Resizing containers:
|
|
||||||
#
|
|
||||||
mode "resize" {
|
|
||||||
# left will shrink the containers width
|
|
||||||
# right will grow the containers width
|
|
||||||
# up will shrink the containers height
|
|
||||||
# down will grow the containers height
|
|
||||||
bindsym $left resize shrink width 10px
|
|
||||||
bindsym $down resize grow height 10px
|
|
||||||
bindsym $up resize shrink height 10px
|
|
||||||
bindsym $right resize grow width 10px
|
|
||||||
|
|
||||||
# Ditto, with arrow keys
|
|
||||||
bindsym Left resize shrink width 10px
|
|
||||||
bindsym Down resize grow height 10px
|
|
||||||
bindsym Up resize shrink height 10px
|
|
||||||
bindsym Right resize grow width 10px
|
|
||||||
|
|
||||||
# Return to default mode
|
|
||||||
bindsym Return mode "default"
|
|
||||||
bindsym Escape mode "default"
|
|
||||||
}
|
|
||||||
bindsym $mod+r mode "resize"
|
|
||||||
#
|
|
||||||
# Utilities:
|
|
||||||
#
|
|
||||||
# Special keys to adjust volume via PulseAudio
|
|
||||||
bindsym --locked XF86AudioMute exec amixer set Master toggle && swayosd-client --output-volume mute-toggle
|
|
||||||
bindsym --locked XF86AudioLowerVolume exec amixer set Master 5%- && swayosd-client --output-volume lower
|
|
||||||
bindsym --locked XF86AudioRaiseVolume exec amixer set Master 5%+ && swayosd-client --output-volume raise
|
|
||||||
bindsym --locked XF86AudioMicMute exec amixer set Capture toggle && swayosd-client --input-volume mute-toggle
|
|
||||||
bindsym --locked XF86AudioPlay exec playerctl play-pause
|
|
||||||
bindsym --locked XF86AudioNext exec playerctl next
|
|
||||||
bindsym --locked XF86AudioPrev exec playerctl previous
|
|
||||||
bindsym --locked XF86AudioStop exec playerctl stop
|
|
||||||
# Special keys to adjust brightness via brightnessctl
|
|
||||||
bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%- && swayosd-client --brightness lower
|
|
||||||
bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+ && swayosd-client --brightness raise
|
|
||||||
# Special key to take a screenshot with grim
|
|
||||||
bindsym Print exec grim
|
|
||||||
|
|
||||||
#
|
|
||||||
# Status Bar:
|
|
||||||
#
|
|
||||||
# Read `man 5 sway-bar` for more information about this section.
|
|
||||||
bar {
|
|
||||||
position bottom
|
|
||||||
|
|
||||||
status_command $HOME/.local/bin/swaystatus
|
|
||||||
# status_command ~/dev/probe/swaystatus/swaystatus
|
|
||||||
|
|
||||||
colors {
|
|
||||||
statusline #ffffff
|
|
||||||
background #181818
|
|
||||||
inactive_workspace #32323200 #32323200 #5c5c5c
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
include /etc/sway/config.d/*
|
|
||||||
@ -16,19 +16,31 @@ set $right l
|
|||||||
# Your preferred terminal emulator
|
# Your preferred terminal emulator
|
||||||
set $term alacritty
|
set $term alacritty
|
||||||
# Your preferred application launcher
|
# Your preferred application launcher
|
||||||
set $menu wmenu-run
|
set $menu walker
|
||||||
|
|
||||||
set $gtk_theme Adwaita:dark
|
|
||||||
set $icon_theme Papirus-Dark
|
|
||||||
|
|
||||||
# Also for apps launched outside GSettings
|
|
||||||
# setenv GTK_THEME $gtk_theme
|
|
||||||
|
|
||||||
include /etc/sway/config-vars.d/*
|
include /etc/sway/config-vars.d/*
|
||||||
include /etc/sway/config.d/*
|
include /etc/sway/config.d/*
|
||||||
|
|
||||||
|
font pango:AdwaitaSans Regular 10
|
||||||
|
|
||||||
|
default_border none
|
||||||
|
|
||||||
|
# for_window [tiling] border none
|
||||||
|
for_window [floating] border normal
|
||||||
|
|
||||||
|
for_window [app_id="dev.benz.walker"] border none
|
||||||
|
for_window [app_id="dev.benz.walker"] floating enable
|
||||||
|
|
||||||
|
for_window [app_id="discord"] border none
|
||||||
|
|
||||||
|
for_window [window_role="pop-up"] floating enable
|
||||||
|
for_window [window_role="About"] floating enable
|
||||||
|
|
||||||
client.focused "#2c2c2c" "#212121" "#fefefe" "#ffffff" "#2c2c2c"
|
client.focused "#2c2c2c" "#212121" "#fefefe" "#ffffff" "#2c2c2c"
|
||||||
|
|
||||||
|
gaps inner 5
|
||||||
|
gaps outer 1
|
||||||
|
|
||||||
### Output configuration
|
### Output configuration
|
||||||
#
|
#
|
||||||
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
|
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
|
||||||
@ -43,7 +55,15 @@ client.focused "#2c2c2c" "#212121" "#fefefe" "#ffffff" "#2c2c2c"
|
|||||||
#
|
#
|
||||||
# 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
|
||||||
|
|
||||||
output DP-2 mode 2560x1440@165.001Hz
|
output DP-2 {
|
||||||
|
mode 2560x1440@60Hz
|
||||||
|
position 1920 0
|
||||||
|
}
|
||||||
|
|
||||||
|
output eDP-2 {
|
||||||
|
mode 1920x1080@165.010Hz
|
||||||
|
position 0 0
|
||||||
|
}
|
||||||
|
|
||||||
### Idle configuration
|
### Idle configuration
|
||||||
#
|
#
|
||||||
@ -58,7 +78,15 @@ output DP-2 mode 2560x1440@165.001Hz
|
|||||||
# your displays after another 300 seconds, and turn your screens back on when
|
# your displays after another 300 seconds, and turn your screens back on when
|
||||||
# resumed. It will also lock your screen before your computer goes to sleep.
|
# resumed. It will also lock your screen before your computer goes to sleep.
|
||||||
|
|
||||||
|
exec systemctl --user import-environment
|
||||||
|
exec systemctl --user start xdg-desktop-portal
|
||||||
|
exec systemctl --user start xdg-desktop-portal-wlr
|
||||||
|
|
||||||
exec swayosd-server
|
exec swayosd-server
|
||||||
|
exec wl-paste -t text --watch clipman store --no-persist
|
||||||
|
exec elephant
|
||||||
|
exec walker --gapplication-service
|
||||||
|
exec swaync
|
||||||
|
|
||||||
### Input configuration
|
### Input configuration
|
||||||
#
|
#
|
||||||
@ -97,7 +125,9 @@ input "type:keyboard" {
|
|||||||
# }
|
# }
|
||||||
|
|
||||||
exec_always {
|
exec_always {
|
||||||
export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket"
|
export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket"
|
||||||
|
export __GL_SYNC_TO_VBLANK=1
|
||||||
|
export __GL_SYNC_DISPLAY_DEVICE="DP-2"
|
||||||
}
|
}
|
||||||
|
|
||||||
### Key bindings
|
### Key bindings
|
||||||
@ -128,6 +158,10 @@ exec_always {
|
|||||||
|
|
||||||
# Exit sway (logs you out of your Wayland session)
|
# Exit sway (logs you out of your Wayland session)
|
||||||
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
|
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
|
||||||
|
|
||||||
|
# Notifications
|
||||||
|
bindsym $mod+Shift+n exec swaync-client -t -sw
|
||||||
|
|
||||||
#
|
#
|
||||||
# Moving around:
|
# Moving around:
|
||||||
#
|
#
|
||||||
@ -244,10 +278,12 @@ bindsym $mod+r mode "resize"
|
|||||||
# Utilities:
|
# Utilities:
|
||||||
#
|
#
|
||||||
# Special keys to adjust volume via PulseAudio
|
# Special keys to adjust volume via PulseAudio
|
||||||
bindsym --locked XF86AudioMute exec amixer set Master toggle && swayosd-client --output-volume mute-toggle
|
# bindsym --locked XF86AudioMute exec wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && swayosd-client --output-volume mute-toggle
|
||||||
|
bindsym --locked XF86AudioMute exec swayosd-client --output-volume mute-toggle
|
||||||
bindsym --locked XF86AudioLowerVolume exec amixer set Master 5%- && swayosd-client --output-volume lower
|
bindsym --locked XF86AudioLowerVolume exec amixer set Master 5%- && swayosd-client --output-volume lower
|
||||||
bindsym --locked XF86AudioRaiseVolume exec amixer set Master 5%+ && swayosd-client --output-volume raise
|
bindsym --locked XF86AudioRaiseVolume exec amixer set Master 5%+ && swayosd-client --output-volume raise
|
||||||
bindsym --locked XF86AudioMicMute exec amixer set Capture toggle && swayosd-client --input-volume mute-toggle
|
bindsym --locked XF86AudioMicMute exec swayosd-client --input-volume mute-toggle
|
||||||
|
# bindsym --locked XF86AudioMicMute exec amixer set Capture toggle && swayosd-client --input-volume mute-toggle
|
||||||
bindsym --locked XF86AudioPlay exec playerctl play-pause
|
bindsym --locked XF86AudioPlay exec playerctl play-pause
|
||||||
bindsym --locked XF86AudioNext exec playerctl next
|
bindsym --locked XF86AudioNext exec playerctl next
|
||||||
bindsym --locked XF86AudioPrev exec playerctl previous
|
bindsym --locked XF86AudioPrev exec playerctl previous
|
||||||
@ -258,20 +294,7 @@ bindsym $mod+r mode "resize"
|
|||||||
# Special key to take a screenshot with grim
|
# Special key to take a screenshot with grim
|
||||||
bindsym Print exec grim
|
bindsym Print exec grim
|
||||||
|
|
||||||
#
|
|
||||||
# Status Bar:
|
|
||||||
#
|
|
||||||
# Read `man 5 sway-bar` for more information about this section.
|
|
||||||
bar {
|
bar {
|
||||||
position bottom
|
swaybar_command waybar
|
||||||
|
|
||||||
status_command $HOME/.local/bin/swaystatus
|
|
||||||
# status_command ~/dev/probe/swaystatus/swaystatus
|
|
||||||
|
|
||||||
colors {
|
|
||||||
statusline #ffffff
|
|
||||||
background #181818
|
|
||||||
inactive_workspace #32323200 #32323200 #5c5c5c
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
81
.config/swaync/config.json
Normal file
81
.config/swaync/config.json
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
{
|
||||||
|
"$schema": "/etc/xdg/swaync/configSchema.json",
|
||||||
|
"ignore-gtk-theme": true,
|
||||||
|
"positionX": "right",
|
||||||
|
"positionY": "top",
|
||||||
|
"layer": "overlay",
|
||||||
|
"control-center-layer": "top",
|
||||||
|
"layer-shell": true,
|
||||||
|
"layer-shell-cover-screen": true,
|
||||||
|
"cssPriority": "user",
|
||||||
|
"control-center-margin-top": 20,
|
||||||
|
"control-center-margin-bottom": 0,
|
||||||
|
"control-center-margin-right": 0,
|
||||||
|
"control-center-margin-left": 0,
|
||||||
|
"notification-2fa-action": true,
|
||||||
|
"notification-inline-replies": false,
|
||||||
|
"notification-body-image-height": 100,
|
||||||
|
"notification-body-image-width": 200,
|
||||||
|
"timeout": 6,
|
||||||
|
"timeout-low": 3,
|
||||||
|
"timeout-critical": 0,
|
||||||
|
"fit-to-screen": true,
|
||||||
|
"relative-timestamps": true,
|
||||||
|
"control-center-width": 500,
|
||||||
|
"control-center-height": 600,
|
||||||
|
"notification-window-width": 500,
|
||||||
|
"keyboard-shortcuts": true,
|
||||||
|
"notification-grouping": true,
|
||||||
|
"image-visibility": "when-available",
|
||||||
|
"transition-time": 200,
|
||||||
|
"hide-on-clear": false,
|
||||||
|
"hide-on-action": true,
|
||||||
|
"text-empty": "No Notifications",
|
||||||
|
"script-fail-notify": true,
|
||||||
|
"widgets": [
|
||||||
|
"inhibitors",
|
||||||
|
"title",
|
||||||
|
"dnd",
|
||||||
|
"notifications"
|
||||||
|
],
|
||||||
|
"widget-config": {
|
||||||
|
"notifications": {
|
||||||
|
"vexpand": true
|
||||||
|
},
|
||||||
|
"inhibitors": {
|
||||||
|
"text": "Inhibitors",
|
||||||
|
"button-text": "Clear All",
|
||||||
|
"clear-all-button": true
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
"text": "Notifications",
|
||||||
|
"clear-all-button": true,
|
||||||
|
"button-text": "Clear All"
|
||||||
|
},
|
||||||
|
"dnd": {
|
||||||
|
"text": "Do Not Disturb"
|
||||||
|
},
|
||||||
|
"label": {
|
||||||
|
"max-lines": 5,
|
||||||
|
"text": "Label Text"
|
||||||
|
},
|
||||||
|
"mpris": {
|
||||||
|
"blacklist": [],
|
||||||
|
"autohide": false,
|
||||||
|
"show-album-art": "always",
|
||||||
|
"loop-carousel": false
|
||||||
|
},
|
||||||
|
"buttons-grid": {
|
||||||
|
"buttons-per-row": 7,
|
||||||
|
"actions": [
|
||||||
|
{
|
||||||
|
"label": "直",
|
||||||
|
"type": "toggle",
|
||||||
|
"active": true,
|
||||||
|
"command": "sh -c '[[ $SWAYNC_TOGGLE_STATE == true ]] && nmcli radio wifi on || nmcli radio wifi off'",
|
||||||
|
"update-command": "sh -c '[[ $(nmcli radio wifi) == \"enabled\" ]] && echo true || echo false'"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
566
.config/swaync/style.css
Normal file
566
.config/swaync/style.css
Normal file
@ -0,0 +1,566 @@
|
|||||||
|
:root {
|
||||||
|
--cc-bg: rgba(46, 46, 46, 0.7);
|
||||||
|
--noti-border-color: rgba(200, 200, 200, 0.15);
|
||||||
|
--noti-bg: 14, 14, 14;
|
||||||
|
--noti-bg-alpha: 0.7;
|
||||||
|
--noti-bg-darker: rgb(10, 10, 10);
|
||||||
|
--noti-bg-hover: rgb(15, 15, 15);
|
||||||
|
--noti-bg-focus: rgba(33, 33, 33, 0.8);
|
||||||
|
--noti-close-bg: rgb(52, 52, 52);
|
||||||
|
--noti-close-bg-hover: rgb(75, 75, 75);
|
||||||
|
--text-color: rgb(245, 245, 245);
|
||||||
|
--text-color-disabled: rgb(120, 120, 120);
|
||||||
|
--bg-selected: rgb(0, 128, 255);
|
||||||
|
--notification-icon-size: 64px;
|
||||||
|
--notification-app-icon-size: calc(var(--notification-icon-size) / 3);
|
||||||
|
--notification-group-icon-size: 32px;
|
||||||
|
--border: 1px solid var(--noti-border-color);
|
||||||
|
--border-radius: 12px;
|
||||||
|
--notification-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3),
|
||||||
|
0 1px 3px 1px rgba(0, 0, 0, 0.7), 0 2px 6px 2px rgba(0, 0, 0, 0.3);
|
||||||
|
--font-size-body: 15px;
|
||||||
|
--font-size-summary: 16px;
|
||||||
|
/* Deprecated variables (because of their typos). Keeeping them around for backwards compatibility. */
|
||||||
|
--hover-tranistion: background 0.15s ease-in-out;
|
||||||
|
--group-collapse-tranistion: opacity 400ms ease-in-out;
|
||||||
|
--hover-transition: var(--hover-tranistion);
|
||||||
|
--group-collapse-transition: var(--group-collapse-tranistion);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Fallback for older CSS themes */
|
||||||
|
/* Fallback for older CSS themes */
|
||||||
|
@define-color cc-bg rgba(46, 46, 46, 0.7);
|
||||||
|
@define-color noti-border-color rgba(255, 255, 255, 0.15);
|
||||||
|
@define-color noti-bg rgba(48, 48, 48, 0.8);
|
||||||
|
@define-color noti-bg-opaque rgb(48, 48, 48);
|
||||||
|
@define-color noti-bg-darker rgb(38, 38, 38);
|
||||||
|
@define-color noti-bg-hover rgb(56, 56, 56);
|
||||||
|
@define-color noti-bg-hover-opaque rgb(56, 56, 56);
|
||||||
|
@define-color noti-bg-focus rgba(68, 68, 68, 0.6);
|
||||||
|
@define-color noti-close-bg rgba(255, 255, 255, 0.1);
|
||||||
|
@define-color noti-close-bg-hover rgba(255, 255, 255, 0.15);
|
||||||
|
@define-color text-color rgb(255, 255, 255);
|
||||||
|
@define-color text-color-disabled rgb(150, 150, 150);
|
||||||
|
@define-color bg-selected rgb(0, 128, 255);
|
||||||
|
notificationwindow, blankwindow, blankwindow {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close-button {
|
||||||
|
/* The notification Close Button */
|
||||||
|
background: var(--noti-close-bg);
|
||||||
|
color: var(--text-color);
|
||||||
|
text-shadow: none;
|
||||||
|
padding: 0;
|
||||||
|
border-radius: 100%;
|
||||||
|
margin-top: 8px;
|
||||||
|
margin-right: 8px;
|
||||||
|
box-shadow: none;
|
||||||
|
border: none;
|
||||||
|
min-width: 24px;
|
||||||
|
min-height: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close-button:hover {
|
||||||
|
box-shadow: none;
|
||||||
|
background: var(--noti-close-bg-hover);
|
||||||
|
transition: var(--hover-tranistion);
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row {
|
||||||
|
background: none;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row:focus {
|
||||||
|
background: var(--noti-bg-focus);
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row .notification-background {
|
||||||
|
padding: 6px 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row .notification-background .notification {
|
||||||
|
/* The actual notification */
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
border: var(--border);
|
||||||
|
padding: 0;
|
||||||
|
transition: var(--hover-tranistion);
|
||||||
|
background: rgba(var(--noti-bg), var(--noti-bg-alpha));
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row .notification-background .notification.low {
|
||||||
|
/* Low Priority Notification */
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row .notification-background .notification.normal {
|
||||||
|
/* Normal Priority Notification */
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row .notification-background .notification.critical {
|
||||||
|
/* Critical Priority Notification */
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row .notification-background .notification .notification-default-action {
|
||||||
|
/* The large action that also displays the notification summary and body */
|
||||||
|
padding: 4px;
|
||||||
|
margin: 0;
|
||||||
|
box-shadow: none;
|
||||||
|
background: transparent;
|
||||||
|
border: none;
|
||||||
|
color: var(--text-color);
|
||||||
|
transition: var(--hover-tranistion);
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row .notification-background .notification .notification-default-action:hover {
|
||||||
|
-gtk-icon-filter: none;
|
||||||
|
background: var(--noti-bg-hover);
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row .notification-background .notification .notification-default-action:not(:only-child) {
|
||||||
|
/* When alternative actions are visible */
|
||||||
|
border-bottom-left-radius: 0px;
|
||||||
|
border-bottom-right-radius: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row .notification-background .notification .notification-default-action .notification-content {
|
||||||
|
background: transparent;
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row .notification-background .notification .notification-default-action .notification-content .image {
|
||||||
|
/* Notification Primary Image */
|
||||||
|
-gtk-icon-filter: none;
|
||||||
|
-gtk-icon-size: var(--notification-icon-size);
|
||||||
|
border-radius: 100px;
|
||||||
|
/* Size in px */
|
||||||
|
margin: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row .notification-background .notification .notification-default-action .notification-content .app-icon {
|
||||||
|
/* Notification app icon (only visible when the primary image is set) */
|
||||||
|
-gtk-icon-filter: none;
|
||||||
|
-gtk-icon-size: var(--notification-app-icon-size);
|
||||||
|
-gtk-icon-shadow: 0 1px 4px black;
|
||||||
|
margin: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row .notification-background .notification .notification-default-action .notification-content .text-box label {
|
||||||
|
/* Fixes base GTK 4 CSS setting a filter of opacity 50% for some odd reason */
|
||||||
|
filter: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row .notification-background .notification .notification-default-action .notification-content .text-box .summary {
|
||||||
|
/* Notification summary/title */
|
||||||
|
font-size: var(--font-size-summary);
|
||||||
|
font-weight: bold;
|
||||||
|
background: transparent;
|
||||||
|
color: var(--text-color);
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row .notification-background .notification .notification-default-action .notification-content .text-box .time {
|
||||||
|
/* Notification time-ago */
|
||||||
|
font-size: var(--font-size-summary);
|
||||||
|
font-weight: bold;
|
||||||
|
background: transparent;
|
||||||
|
color: var(--text-color);
|
||||||
|
text-shadow: none;
|
||||||
|
margin-right: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row .notification-background .notification .notification-default-action .notification-content .text-box .body {
|
||||||
|
/* Notification body */
|
||||||
|
font-size: var(--font-size-body);
|
||||||
|
font-weight: normal;
|
||||||
|
background: transparent;
|
||||||
|
color: var(--text-color);
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row .notification-background .notification .notification-default-action .notification-content progressbar {
|
||||||
|
/* The optional notification progress bar */
|
||||||
|
margin-top: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row .notification-background .notification .notification-default-action .notification-content .body-image {
|
||||||
|
/* The "extra" optional bottom notification image */
|
||||||
|
margin-top: 4px;
|
||||||
|
background-color: white;
|
||||||
|
-gtk-icon-filter: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply {
|
||||||
|
/* The inline reply section */
|
||||||
|
margin-top: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply .inline-reply-entry {
|
||||||
|
background: var(--noti-bg-darker);
|
||||||
|
color: var(--text-color);
|
||||||
|
caret-color: var(--text-color);
|
||||||
|
border: var(--border);
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply .inline-reply-button {
|
||||||
|
margin-left: 4px;
|
||||||
|
background: rgba(var(--noti-bg), var(--noti-bg-alpha));
|
||||||
|
border: var(--border);
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
color: var(--text-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply .inline-reply-button:disabled {
|
||||||
|
background: initial;
|
||||||
|
color: var(--text-color-disabled);
|
||||||
|
border: var(--border);
|
||||||
|
border-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply .inline-reply-button:hover {
|
||||||
|
background: var(--noti-bg-hover);
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row .notification-background .notification .notification-alt-actions {
|
||||||
|
background: none;
|
||||||
|
border-bottom-left-radius: var(--border-radius);
|
||||||
|
border-bottom-right-radius: var(--border-radius);
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row .notification-background .notification .notification-action {
|
||||||
|
/* The alternative actions below the default action */
|
||||||
|
margin: 4px;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row .notification-background .notification .notification-action > button {
|
||||||
|
background: rgba(40, 40, 40, 1.0);
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
color: var(--text-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-row .notification-background .notification .notification-action > button:hover {
|
||||||
|
background: rgba(45, 45, 45, 1.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-group {
|
||||||
|
/* Styling only for Grouped Notifications */
|
||||||
|
transition: opacity 200ms ease-in-out;
|
||||||
|
/* The groups close button */
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-group:focus {
|
||||||
|
background: var(--noti-bg-focus);
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-group.low {
|
||||||
|
/* Low Priority Group */
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-group.normal {
|
||||||
|
/* Low Priority Group */
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-group.critical {
|
||||||
|
/* Low Priority Group */
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-group .notification-group-close-button .close-button {
|
||||||
|
margin: 12px 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-group .notification-group-buttons, .notification-group .notification-group-headers {
|
||||||
|
margin: 0 16px;
|
||||||
|
color: var(--text-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-group .notification-group-headers {
|
||||||
|
/* Notification Group Headers */
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-group .notification-group-headers .notification-group-icon {
|
||||||
|
color: var(--text-color);
|
||||||
|
-gtk-icon-size: var(--notification-group-icon-size);
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-group .notification-group-headers .notification-group-header {
|
||||||
|
color: var(--text-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-group .notification-group-buttons {
|
||||||
|
/* Notification Group Buttons */
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-group.collapsed {
|
||||||
|
/* When another group is expanded, lower the opacity of the collapsed ones */
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-group.collapsed.not-expanded {
|
||||||
|
opacity: 0.4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-group.collapsed .notification-row .notification {
|
||||||
|
background-color: rgba(var(--noti-bg), 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-group.collapsed .notification-row:not(:last-child) {
|
||||||
|
/* Top notification in stack */
|
||||||
|
/* Set lower stacked notifications opacity to 0 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-group.collapsed .notification-row:not(:last-child) .notification-action,
|
||||||
|
.notification-group.collapsed .notification-row:not(:last-child) .notification-default-action {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-group.collapsed:hover .notification-row:not(:only-child) .notification {
|
||||||
|
background-color: var(--noti-bg-hover);
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center {
|
||||||
|
/* The Control Center which contains the old notifications + widgets */
|
||||||
|
background: var(--cc-bg);
|
||||||
|
color: var(--text-color);
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center .control-center-list-placeholder {
|
||||||
|
/* The placeholder when there are no notifications */
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center .control-center-list {
|
||||||
|
/* List of notifications */
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center .control-center-list .notification {
|
||||||
|
box-shadow: var(--notification-shadow);
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center .control-center-list .notification .notification-default-action,
|
||||||
|
.control-center .control-center-list .notification .notification-action {
|
||||||
|
transition: var(--group-collapse-tranistion), var(--hover-tranistion);
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center .control-center-list .notification .notification-default-action:hover,
|
||||||
|
.control-center .control-center-list .notification .notification-action:hover {
|
||||||
|
background-color: var(--noti-bg-hover);
|
||||||
|
}
|
||||||
|
|
||||||
|
.blank-window {
|
||||||
|
/* Window behind control center and on all other monitors */
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.floating-notifications {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.floating-notifications .notification {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*** Widgets ***/
|
||||||
|
.widget {
|
||||||
|
margin: 8px;
|
||||||
|
padding: 8px;
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Title widget */
|
||||||
|
.widget-title > label {
|
||||||
|
margin-right: 8px;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-title > button {
|
||||||
|
margin-left: 8px;
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* DND widget */
|
||||||
|
.widget-dnd label {
|
||||||
|
color: var(--text-color);
|
||||||
|
margin-right: 8px;
|
||||||
|
font-size: 1.1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-dnd switch {
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
margin-left: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-dnd switch slider {
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Label widget */
|
||||||
|
.widget-label > label {
|
||||||
|
font-size: 1.1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Mpris widget */
|
||||||
|
:root {
|
||||||
|
--mpris-album-art-overlay: rgba(0, 0, 0, 0.55);
|
||||||
|
--mpris-button-hover: rgba(0, 0, 0, 0.5);
|
||||||
|
--mpris-album-art-icon-size: 96px;
|
||||||
|
--mpris-album-art-shadow: 0px 0px 10px rgba(0, 0, 0, 0.75);
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-mpris {
|
||||||
|
padding: 0;
|
||||||
|
/* The parent to all players */
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-mpris .widget-mpris-player {
|
||||||
|
margin: 16px 20px;
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
box-shadow: var(--mpris-album-art-shadow);
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-mpris .widget-mpris-player .mpris-background {
|
||||||
|
filter: blur(10px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-mpris .widget-mpris-player .mpris-overlay {
|
||||||
|
padding: 16px;
|
||||||
|
background-color: var(--mpris-album-art-overlay);
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-mpris .widget-mpris-player .mpris-overlay button:hover {
|
||||||
|
/* The media player buttons (play, pause, next, etc...) */
|
||||||
|
background: var(--noti-bg-hover);
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-mpris .widget-mpris-player .mpris-overlay .widget-mpris-album-art {
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
box-shadow: var(--mpris-album-art-shadow);
|
||||||
|
-gtk-icon-size: var(--mpris-album-art-icon-size);
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-mpris .widget-mpris-player .mpris-overlay .widget-mpris-title {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 1.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-mpris .widget-mpris-player .mpris-overlay .widget-mpris-subtitle {
|
||||||
|
font-size: 1.1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-mpris .widget-mpris-player .mpris-overlay > box > button {
|
||||||
|
/* Change player control buttons */
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-mpris .widget-mpris-player .mpris-overlay > box > button:hover {
|
||||||
|
background-color: var(--mpris-button-hover);
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-mpris > box > button {
|
||||||
|
/* Change player side buttons */
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-mpris > box > button:disabled {
|
||||||
|
/* Change player side buttons insensitive */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Buttons widget */
|
||||||
|
.widget-buttons-grid flowboxchild > button {
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-buttons-grid flowboxchild > button.toggle:checked {
|
||||||
|
/* style given to the active toggle button */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Menubar widget */
|
||||||
|
.widget-menubar {
|
||||||
|
/* The revealer buttons */
|
||||||
|
/* .AnyName { Name defined in config after #
|
||||||
|
background-color: rgba(var(--noti-bg), 1.0);
|
||||||
|
padding: 8px;
|
||||||
|
margin: 8px;
|
||||||
|
border-radius: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.AnyName>button {
|
||||||
|
background: transparent;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.AnyName>button:hover {
|
||||||
|
background-color: var(--noti-bg-hover);
|
||||||
|
} */
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-menubar > .menu-button-bar {
|
||||||
|
/* The left button container */
|
||||||
|
/* The right button container */
|
||||||
|
/* The left and right button container */
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-menubar > .menu-button-bar > .start {
|
||||||
|
margin-left: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-menubar > .menu-button-bar > .end {
|
||||||
|
margin-right: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-menubar > .menu-button-bar > .widget-menubar-container button {
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
margin: 0 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-menubar > revealer * {
|
||||||
|
margin-top: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-menubar > revealer * button {
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
margin: 8px;
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-menubar > revealer * button:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Volume widget */
|
||||||
|
:root {
|
||||||
|
--widget-volume-row-icon-size: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Each row app icon */
|
||||||
|
.widget-volume row image {
|
||||||
|
-gtk-icon-size: var(--widget-volume-row-icon-size);
|
||||||
|
}
|
||||||
|
|
||||||
|
.per-app-volume {
|
||||||
|
background-color: var(--noti-bg-alt);
|
||||||
|
margin: 8px;
|
||||||
|
margin-bottom: 0;
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Slider widget */
|
||||||
|
.widget-slider label {
|
||||||
|
font-size: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Backlight widget */
|
||||||
|
/* Inhibitors widget */
|
||||||
|
.widget-inhibitors > label {
|
||||||
|
margin-right: 8px;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-inhibitors > button {
|
||||||
|
margin-left: 8px;
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
}
|
||||||
@ -8,5 +8,5 @@ window#osd {
|
|||||||
}
|
}
|
||||||
|
|
||||||
window#osd #container {
|
window#osd #container {
|
||||||
margin: 10px;
|
margin: 20px;
|
||||||
}
|
}
|
||||||
|
|||||||
3
.config/vlc/vlc-qt-interface.conf
Normal file
3
.config/vlc/vlc-qt-interface.conf
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[RecentsMRL]
|
||||||
|
list=file:///home/landam/Music/ssstik.io_%40a.k.ra.mm_1757102939464.m4a, file:///home/landam/Music/ssstik.io_%40nabi.buttaev_1753408679405.m4a, file:///home/landam/Music/ssstik.io_%40salfisqw_1737072979657.m4a, file:///home/landam/Music/ssstik.io_%40avaiz.edits_1748283778286.m4a, file:///home/landam/Music/ssstik.io_%40sawt_al_haqq4_1746050024916.m4a, file:///home/landam/Music/ssstik.io_%40taw.lll_1746050083106.m4a, file:///home/landam/Music/ssstik.io_%40darc_334_1740344650776.m4a, file:///home/landam/Music/ssstik.io_%40gutoppa4_1741435261383.m4a, file:///home/landam/Music/ssstik.io_%40muratuly.asar_1742344425512.m4a, file:///home/landam/Music/ssstik.io_%40abubinyamin_1745936707909.m4a, file:///home/landam/Music/ssstik.io_%40tawhid_mslmmkk_1740225442027.m4a, file:///home/landam/Music/ssstik.io_%40walmuwahid_1733254572263.m4a, file:///home/landam/Music/ssstik.io_%40shah1d.774_1738025693798.m4a, file:///home/landam/Music/ssstik.io_%40a.k.ra.mm_1757103075631.m4a, file:///home/landam/Music/d7e4b9ae67bf94c739e134bcb3a4b1fc.m4a, file:///home/landam/Music/ssstik.io_%40noor.shad0w_1757103124035.m4a, file:///home/landam/Music/ssstik.io_%40far7ola_1746388338823.m4a, file:///home/landam/Music/ssstik.io_%40akhi.sb_1757102994079.m4a, file:///home/landam/Music/ssstik.io_%40sawt_al_haqq4_1746050175087.m4a, file:///home/landam/Music/ssstik.io_%40hmdxd_8_1739511337773.m4a, file:///home/landam/Music/ssstik.io_%40shah1d.774_1737591257327.m4a, file:///home/landam/Music/ssstik.io_%4033.ahmadd_1733520475170.m4a, file:///home/landam/Music/ssstik.io_%401binyamin__1748209778860.m4a, file:///home/landam/Music/ssstik.io_%40deenspecialist_1749586122566.m4a, file:///home/landam/Music/ssstik.io_%40islam_s96_1750630378886.m4a, file:///home/landam/Music/ssstik.io_%40umar_sildinskiy.l_1746049752177.m4a, file:///home/landam/Music/ssstik.io_%40leemmsss_1738025668602.m4a, file:///home/landam/Music/ssstik.io_%40musafir.701_1746739963080.m4a, file:///home/landam/Music/ssstik.io_1740008226324.m4a, file:///home/landam/Music/Screen_Recording_20240923_001428_TikTok.m4a
|
||||||
|
times=-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||||
5
.config/vlc/vlc-qt-interface.conf.lock
Normal file
5
.config/vlc/vlc-qt-interface.conf.lock
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
56309
|
||||||
|
vlc
|
||||||
|
landam
|
||||||
|
2da9eac24dd04299a06ebbf50d627337
|
||||||
|
6baa7595-2b68-4a93-8e6e-d88913e837b5
|
||||||
3791
.config/vlc/vlcrc
Normal file
3791
.config/vlc/vlcrc
Normal file
File diff suppressed because it is too large
Load Diff
211
.config/walker/config.toml
Normal file
211
.config/walker/config.toml
Normal file
@ -0,0 +1,211 @@
|
|||||||
|
force_keyboard_focus = true # forces keyboard forcus to stay in Walker
|
||||||
|
close_when_open = true # close walker when invoking while already opened
|
||||||
|
click_to_close = true # closes walker if clicking outside of the main content area
|
||||||
|
selection_wrap = false # wrap list if at bottom or top
|
||||||
|
global_argument_delimiter = "#" # query: firefox#https://benz.dev => part after delimiter will be ignored when querying. this should be the same as in the elephant config
|
||||||
|
exact_search_prefix = "'" # disable fuzzy searching
|
||||||
|
theme = "dark" # theme to use
|
||||||
|
disable_mouse = false # disable mouse (on input and list only)
|
||||||
|
debug = false # enables debug printing for some stuff, f.e. keybinds
|
||||||
|
page_jump_items = 10 # number of items to skip with Page Up/Down
|
||||||
|
hide_quick_activation = false # globally hide the quick activation buttons
|
||||||
|
resume_last_query = false # open walker with the last query in place
|
||||||
|
|
||||||
|
[shell]
|
||||||
|
anchor_top = true
|
||||||
|
anchor_bottom = true
|
||||||
|
anchor_left = true
|
||||||
|
anchor_right = true
|
||||||
|
|
||||||
|
[placeholders]
|
||||||
|
"default" = { input = "Search", list = "No Results" } # placeholders for input and empty list, key is the providers name, so f.e. "desktopapplications" or "menus:other"
|
||||||
|
|
||||||
|
[keybinds]
|
||||||
|
close = ["Escape"]
|
||||||
|
next = ["Down"]
|
||||||
|
previous = ["Up"]
|
||||||
|
toggle_exact = ["ctrl e"]
|
||||||
|
resume_last_query = ["ctrl r"]
|
||||||
|
quick_activate = ["F1", "F2", "F3", "F4"]
|
||||||
|
page_down = ["Page_Down"]
|
||||||
|
page_up = ["Page_Up"]
|
||||||
|
|
||||||
|
[providers]
|
||||||
|
default = [
|
||||||
|
"desktopapplications",
|
||||||
|
"calc",
|
||||||
|
"runner",
|
||||||
|
"websearch",
|
||||||
|
] # providers to be queried by default
|
||||||
|
empty = ["desktopapplications"] # providers to be queried when query is empty
|
||||||
|
ignore_preview = [] # providers that should not show previews
|
||||||
|
max_results = 50 # global max results
|
||||||
|
|
||||||
|
[providers.argument_delimiter] # define the argument delimiter per provider
|
||||||
|
runner = " "
|
||||||
|
|
||||||
|
[providers.sets] # define your own defaults/empty sets of providers
|
||||||
|
[providers.max_results_provider] # define max results per provider in here
|
||||||
|
|
||||||
|
[[providers.prefixes]]
|
||||||
|
prefix = ";"
|
||||||
|
provider = "providerlist"
|
||||||
|
|
||||||
|
[[providers.prefixes]]
|
||||||
|
prefix = ">"
|
||||||
|
provider = "runner"
|
||||||
|
|
||||||
|
[[providers.prefixes]]
|
||||||
|
prefix = "/"
|
||||||
|
provider = "files"
|
||||||
|
|
||||||
|
[[providers.prefixes]]
|
||||||
|
prefix = "."
|
||||||
|
provider = "symbols"
|
||||||
|
|
||||||
|
[[providers.prefixes]]
|
||||||
|
prefix = "!"
|
||||||
|
provider = "todo"
|
||||||
|
|
||||||
|
[[providers.prefixes]]
|
||||||
|
prefix = "%"
|
||||||
|
provider = "bookmarks"
|
||||||
|
|
||||||
|
[[providers.prefixes]]
|
||||||
|
prefix = "="
|
||||||
|
provider = "calc"
|
||||||
|
|
||||||
|
[[providers.prefixes]]
|
||||||
|
prefix = "@"
|
||||||
|
provider = "websearch"
|
||||||
|
|
||||||
|
[[providers.prefixes]]
|
||||||
|
prefix = ":"
|
||||||
|
provider = "clipboard"
|
||||||
|
|
||||||
|
[[providers.prefixes]]
|
||||||
|
prefix = "$"
|
||||||
|
provider = "windows"
|
||||||
|
|
||||||
|
[providers.clipboard]
|
||||||
|
time_format = "%d.%m. - %H:%M" # format for the clipboard item date
|
||||||
|
|
||||||
|
[providers.actions] # This will be MERGED/OVEWRITTEN with what the user specifies
|
||||||
|
fallback = [
|
||||||
|
{ action = "menus:open", label = "open", after = "Nothing" },
|
||||||
|
{ action = "menus:default", label = "run", after = "Close" },
|
||||||
|
{ action = "menus:parent", label = "back", bind = "Escape", after = "Nothing" },
|
||||||
|
{ action = "erase_history", label = "clear hist", bind = "ctrl h", after = "AsyncReload" },
|
||||||
|
]
|
||||||
|
|
||||||
|
dmenu = [{ action = "select", default = true, bind = "Return" }]
|
||||||
|
|
||||||
|
providerlist = [
|
||||||
|
{ action = "activate", default = true, bind = "Return", after = "ClearReload" },
|
||||||
|
]
|
||||||
|
|
||||||
|
bluetooth = [
|
||||||
|
{ action = "find", bind = "ctrl f", after = "AsyncClearReload" },
|
||||||
|
{ action = "remove", bind = "ctrl d", after = "AsyncReload" },
|
||||||
|
{ action = "trust", bind = "ctrl t", after = "AsyncReload" },
|
||||||
|
{ action = "untrust", bind = "ctrl t", after = "AsyncReload" },
|
||||||
|
{ action = "pair", bind = "Return", after = "AsyncReload" },
|
||||||
|
{ action = "connect", default = true, bind = "Return", after = "AsyncReload" },
|
||||||
|
{ action = "disconnect", default = true, bind = "Return", after = "AsyncReload" },
|
||||||
|
]
|
||||||
|
|
||||||
|
archlinuxpkgs = [
|
||||||
|
{ action = "install", bind = "Return", default = true },
|
||||||
|
{ action = "remove", bind = "Return" },
|
||||||
|
{ action = "show_all", label = "show all", bind = "ctrl i", after = "AsyncClearReload" },
|
||||||
|
{ action = "refresh", label = "refresh", bind = "ctrl r", after = "AsyncReload" },
|
||||||
|
{ action = "visit_url", label = "open URL", bind = "ctrl o" },
|
||||||
|
{ action = "show_installed", label = "show installed", bind = "ctrl i", after = "AsyncClearReload" },
|
||||||
|
]
|
||||||
|
|
||||||
|
calc = [
|
||||||
|
{ action = "copy", default = true, bind = "Return" },
|
||||||
|
{ action = "delete", bind = "ctrl d", after = "AsyncReload" },
|
||||||
|
{ action = "save", bind = "ctrl s", after = "AsyncClearReload" },
|
||||||
|
]
|
||||||
|
|
||||||
|
websearch = [{ action = "search", default = true, bind = "Return" }]
|
||||||
|
|
||||||
|
desktopapplications = [
|
||||||
|
{ action = "start", default = true, bind = "Return" },
|
||||||
|
{ action = "start:keep", label = "open+next", bind = "shift Return", after = "KeepOpen" },
|
||||||
|
{ action = "new_instance", label = "new instance", bind = "ctrl Return" },
|
||||||
|
{ action = "new_instance:keep", label = "new+next", bind = "ctrl alt Return", after = "KeepOpen" },
|
||||||
|
{ action = "pin", bind = "ctrl p", after = "AsyncReload" },
|
||||||
|
{ action = "unpin", bind = "ctrl p", after = "AsyncReload" },
|
||||||
|
{ action = "pinup", bind = "ctrl n", after = "AsyncReload" },
|
||||||
|
{ action = "pindown", bind = "ctrl m", after = "AsyncReload" },
|
||||||
|
]
|
||||||
|
|
||||||
|
files = [
|
||||||
|
{ action = "open", default = true, bind = "Return" },
|
||||||
|
{ action = "opendir", label = "open dir", bind = "ctrl Return" },
|
||||||
|
{ action = "copypath", label = "copy path", bind = "ctrl shift c" },
|
||||||
|
{ action = "copyfile", label = "copy file", bind = "ctrl c" },
|
||||||
|
]
|
||||||
|
|
||||||
|
1password = [
|
||||||
|
{ action = "copy_password", label = "copy password", default = true, bind = "Return" },
|
||||||
|
{ action = "copy_username", label = "copy username", bind = "shift Return" },
|
||||||
|
{ action = "copy_2fa", label = "copy 2fa", bind = "ctrl Return" },
|
||||||
|
]
|
||||||
|
|
||||||
|
todo = [
|
||||||
|
{ action = "save", default = true, bind = "Return", after = "AsyncClearReload" },
|
||||||
|
{ action = "save_next", label = "save & new", bind = "shift Return", after = "AsyncClearReload" },
|
||||||
|
{ action = "delete", bind = "ctrl d", after = "AsyncClearReload" },
|
||||||
|
{ action = "active", default = true, bind = "Return", after = "Nothing" },
|
||||||
|
{ action = "inactive", default = true, bind = "Return", after = "Nothing" },
|
||||||
|
{ action = "done", bind = "ctrl f", after = "Nothing" },
|
||||||
|
{ action = "change_category", bind = "ctrl y", label = "change category", after = "Nothing" },
|
||||||
|
{ action = "clear", bind = "ctrl x", after = "AsyncClearReload" },
|
||||||
|
{ action = "create", bind = "ctrl a", after = "AsyncClearReload" },
|
||||||
|
{ action = "search", bind = "ctrl a", after = "AsyncClearReload" },
|
||||||
|
]
|
||||||
|
|
||||||
|
runner = [
|
||||||
|
{ action = "run", default = true, bind = "Return" },
|
||||||
|
{ action = "runterminal", label = "run in terminal", bind = "shift Return" },
|
||||||
|
]
|
||||||
|
|
||||||
|
symbols = [
|
||||||
|
{ action = "run_cmd", label = "select", default = true, bind = "Return" },
|
||||||
|
]
|
||||||
|
|
||||||
|
unicode = [
|
||||||
|
{ action = "run_cmd", label = "select", default = true, bind = "Return" },
|
||||||
|
]
|
||||||
|
|
||||||
|
nirisessions = [
|
||||||
|
{ action = "start", label = "start", default = true, bind = "Return" },
|
||||||
|
{ action = "start_new", label = "start blank", bind = "ctrl Return" },
|
||||||
|
]
|
||||||
|
|
||||||
|
clipboard = [
|
||||||
|
{ action = "copy", default = true, bind = "Return" },
|
||||||
|
{ action = "remove", bind = "ctrl d", after = "AsyncClearReload" },
|
||||||
|
{ action = "remove_all", label = "clear", bind = "ctrl shift d", after = "AsyncClearReload" },
|
||||||
|
{ action = "show_images_only", label = "only images", bind = "ctrl i", after = "AsyncClearReload" },
|
||||||
|
{ action = "show_text_only", label = "only text", bind = "ctrl i", after = "AsyncClearReload" },
|
||||||
|
{ action = "show_combined", label = "show all", bind = "ctrl i", after = "AsyncClearReload" },
|
||||||
|
{ action = "pause", bind = "ctrl p" },
|
||||||
|
{ action = "unpause", bind = "ctrl p" },
|
||||||
|
{ action = "edit", bind = "ctrl o" },
|
||||||
|
]
|
||||||
|
|
||||||
|
bookmarks = [
|
||||||
|
{ action = "save", bind = "Return", after = "AsyncClearReload" },
|
||||||
|
{ action = "open", default = true, bind = "Return" },
|
||||||
|
{ action = "delete", bind = "ctrl d", after = "AsyncClearReload" },
|
||||||
|
{ action = "change_category", label = "Change category", bind = "ctrl y", after = "Nothing" },
|
||||||
|
{ action = "change_browser", label = "Change browser", bind = "ctrl b", after = "Nothing" },
|
||||||
|
{ action = "import", label = "Import", bind = "ctrl i", after = "AsyncClearReload" },
|
||||||
|
{ action = "create", bind = "ctrl a", after = "AsyncClearReload" },
|
||||||
|
{ action = "search", bind = "ctrl a", after = "AsyncClearReload" },
|
||||||
|
]
|
||||||
|
|
||||||
150
.config/walker/themes/dark/style.css
Normal file
150
.config/walker/themes/dark/style.css
Normal file
@ -0,0 +1,150 @@
|
|||||||
|
@define-color window_bg_color #171717; /* Main dark background */
|
||||||
|
@define-color accent_bg_color #2A2A2A; /* Subtle dark-accent (replaces blue) */
|
||||||
|
@define-color theme_fg_color #E0E0E0; /* Light grey text */
|
||||||
|
@define-color error_bg_color #9A2B2B; /* Darker, muted red */
|
||||||
|
@define-color error_fg_color #F2DADA; /* Softer error fg */
|
||||||
|
|
||||||
|
* {
|
||||||
|
all: unset;
|
||||||
|
}
|
||||||
|
|
||||||
|
.normal-icons {
|
||||||
|
-gtk-icon-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.large-icons {
|
||||||
|
-gtk-icon-size: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
scrollbar {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-wrapper {
|
||||||
|
box-shadow:
|
||||||
|
0 19px 38px rgba(0, 0, 0, 0.3),
|
||||||
|
0 15px 12px rgba(0, 0, 0, 0.22);
|
||||||
|
background: @window_bg_color;
|
||||||
|
padding: 20px;
|
||||||
|
border-radius: 20px;
|
||||||
|
border: 1px solid darker(@accent_bg_color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.preview-box,
|
||||||
|
.elephant-hint,
|
||||||
|
.placeholder {
|
||||||
|
color: @theme_fg_color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-container {
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input placeholder {
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input selection {
|
||||||
|
background: lighter(@accent_bg_color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.input {
|
||||||
|
caret-color: @theme_fg_color;
|
||||||
|
background: #1f1f1f; /* slightly lighter than main bg for contrast */
|
||||||
|
padding: 10px;
|
||||||
|
color: @theme_fg_color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list {
|
||||||
|
color: @theme_fg_color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-box {
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-quick-activation {
|
||||||
|
background: alpha(@accent_bg_color, 0.25);
|
||||||
|
border-radius: 5px;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
child:hover .item-box,
|
||||||
|
child:selected .item-box {
|
||||||
|
background: alpha(@accent_bg_color, 0.35);
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-subtext {
|
||||||
|
font-size: 12px;
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.providerlist .item-subtext {
|
||||||
|
font-size: unset;
|
||||||
|
opacity: 0.75;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-image-text {
|
||||||
|
font-size: 28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.preview {
|
||||||
|
border: 1px solid alpha(@accent_bg_color, 0.35);
|
||||||
|
border-radius: 10px;
|
||||||
|
color: @theme_fg_color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.calc .item-text {
|
||||||
|
font-size: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.symbols .item-image {
|
||||||
|
font-size: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.todo.done .item-text-box {
|
||||||
|
opacity: 0.25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.todo.urgent {
|
||||||
|
font-size: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.todo.active {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bluetooth.disconnected {
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.preview .large-icons {
|
||||||
|
-gtk-icon-size: 64px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.keybinds-wrapper {
|
||||||
|
border-top: 1px solid @accent_bg_color;
|
||||||
|
font-size: 12px;
|
||||||
|
opacity: 0.5;
|
||||||
|
color: @theme_fg_color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.keybind-bind {
|
||||||
|
font-weight: bold;
|
||||||
|
text-transform: lowercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
.error {
|
||||||
|
padding: 10px;
|
||||||
|
background: @error_bg_color;
|
||||||
|
color: @error_fg_color;
|
||||||
|
}
|
||||||
|
|
||||||
|
:not(.calc).current {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
.preview-content.archlinuxpkgs {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
21
.config/waybar/LICENSE
Normal file
21
.config/waybar/LICENSE
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2025 Jesse Mirabel
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
130
.config/waybar/config.jsonc
Normal file
130
.config/waybar/config.jsonc
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
{
|
||||||
|
/*------------------------------------------------------------
|
||||||
|
regression: wildcard includes are broken after v0.14.0
|
||||||
|
- https://github.com/Alexays/Waybar/issues/4354
|
||||||
|
- https://github.com/sejjy/mechabar/issues/31
|
||||||
|
------------------------------------------------------------*/
|
||||||
|
/*
|
||||||
|
"include": [
|
||||||
|
"~/.config/waybar/modules/*.jsonc",
|
||||||
|
"~/.config/waybar/modules/custom/*.jsonc",
|
||||||
|
"~/.config/waybar/modules/hyprland/*.jsonc"
|
||||||
|
|
||||||
|
// modules that are not included by default:
|
||||||
|
// "~/.config/waybar/modules/extras/*.jsonc"
|
||||||
|
],
|
||||||
|
*/
|
||||||
|
|
||||||
|
"include": [
|
||||||
|
// modules-left
|
||||||
|
"~/.config/waybar/modules/custom/user.jsonc",
|
||||||
|
"~/.config/waybar/modules/sway/workspaces.jsonc",
|
||||||
|
"~/.config/waybar/modules/sway/window.jsonc",
|
||||||
|
|
||||||
|
// modules-center
|
||||||
|
"~/.config/waybar/modules/sway/windowcount.jsonc",
|
||||||
|
// "~/.config/waybar/modules/temperature.jsonc",
|
||||||
|
"~/.config/waybar/modules/memory.jsonc",
|
||||||
|
"~/.config/waybar/modules/cpu.jsonc",
|
||||||
|
"~/.config/waybar/modules/custom/distro.jsonc",
|
||||||
|
"~/.config/waybar/modules/idle_inhibitor.jsonc",
|
||||||
|
"~/.config/waybar/modules/clock.jsonc",
|
||||||
|
"~/.config/waybar/modules/network.jsonc",
|
||||||
|
"~/.config/waybar/modules/bluetooth.jsonc",
|
||||||
|
"~/.config/waybar/modules/custom/system_update.jsonc",
|
||||||
|
|
||||||
|
// modules-right
|
||||||
|
"~/.config/waybar/modules/mpris.jsonc",
|
||||||
|
"~/.config/waybar/modules/pulseaudio.jsonc",
|
||||||
|
"~/.config/waybar/modules/backlight.jsonc",
|
||||||
|
"~/.config/waybar/modules/battery.jsonc",
|
||||||
|
"~/.config/waybar/modules/custom/power_menu.jsonc",
|
||||||
|
|
||||||
|
"~/.config/waybar/modules/custom/dividers.jsonc"
|
||||||
|
|
||||||
|
// modules that are not included by default:
|
||||||
|
// "~/.config/waybar/modules/extras/taskbar.jsonc",
|
||||||
|
// "~/.config/waybar/modules/extras/tray.jsonc",
|
||||||
|
// "~/.config/waybar/modules/extras/wireplumber.jsonc"
|
||||||
|
],
|
||||||
|
|
||||||
|
/*------------
|
||||||
|
layout
|
||||||
|
------------*/
|
||||||
|
|
||||||
|
"modules-left": [
|
||||||
|
"group/user",
|
||||||
|
"custom/left_div#1",
|
||||||
|
"sway/workspaces",
|
||||||
|
"custom/right_div#1",
|
||||||
|
"sway/window"
|
||||||
|
],
|
||||||
|
"modules-center": [
|
||||||
|
"sway/windowcount",
|
||||||
|
"custom/left_div#2",
|
||||||
|
// "temperature",
|
||||||
|
"custom/left_div#3",
|
||||||
|
"memory",
|
||||||
|
"custom/left_div#4",
|
||||||
|
"cpu",
|
||||||
|
"custom/left_inv#1",
|
||||||
|
"custom/left_div#5",
|
||||||
|
"custom/distro",
|
||||||
|
"custom/right_div#2",
|
||||||
|
"custom/right_inv#1",
|
||||||
|
"idle_inhibitor",
|
||||||
|
"clock#time",
|
||||||
|
"custom/right_div#3",
|
||||||
|
"clock#date",
|
||||||
|
"custom/right_div#4",
|
||||||
|
"network",
|
||||||
|
"bluetooth",
|
||||||
|
"custom/system_update",
|
||||||
|
"custom/right_div#5"
|
||||||
|
],
|
||||||
|
"modules-right": [
|
||||||
|
"tray",
|
||||||
|
"mpris",
|
||||||
|
"sway/language",
|
||||||
|
"custom/left_div#6",
|
||||||
|
"group/pulseaudio",
|
||||||
|
"custom/left_div#7",
|
||||||
|
"backlight",
|
||||||
|
"custom/left_div#8",
|
||||||
|
"battery",
|
||||||
|
"custom/left_inv#2",
|
||||||
|
"custom/power_menu"
|
||||||
|
],
|
||||||
|
|
||||||
|
/*-------------
|
||||||
|
options
|
||||||
|
-------------*/
|
||||||
|
|
||||||
|
// "expand-center":
|
||||||
|
// "expand-left":
|
||||||
|
// "expand-right":
|
||||||
|
"layer": "top",
|
||||||
|
// "output":
|
||||||
|
// "position":
|
||||||
|
"height": 0,
|
||||||
|
"width": 0,
|
||||||
|
"margin": 0,
|
||||||
|
// "margin-top":
|
||||||
|
// "margin-left":
|
||||||
|
// "margin-bottom":
|
||||||
|
// "margin-right":
|
||||||
|
// "no-center":
|
||||||
|
"spacing": 0,
|
||||||
|
// "name":
|
||||||
|
"mode": "dock",
|
||||||
|
// "start_hidden":
|
||||||
|
// "modifier-reset":
|
||||||
|
// "exclusive":
|
||||||
|
// "fixed-center":
|
||||||
|
// "passthrough":
|
||||||
|
// "ipc":
|
||||||
|
// "id":
|
||||||
|
"reload_style_on_change": true
|
||||||
|
// "on-sigusr1":
|
||||||
|
// "on-sigusr2":
|
||||||
|
}
|
||||||
54
.config/waybar/install.sh
Executable file
54
.config/waybar/install.sh
Executable file
@ -0,0 +1,54 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
RED='\033[1;31m'
|
||||||
|
GRN='\033[1;32m'
|
||||||
|
BLU='\033[1;34m'
|
||||||
|
RST='\033[0m'
|
||||||
|
|
||||||
|
DEPS=(
|
||||||
|
bluez
|
||||||
|
bluez-utils # bluetoothctl
|
||||||
|
brightnessctl
|
||||||
|
fzf
|
||||||
|
networkmanager # nmcli
|
||||||
|
pacman-contrib # checkupdates
|
||||||
|
pipewire-pulse
|
||||||
|
ttf-0xproto-nerd
|
||||||
|
)
|
||||||
|
|
||||||
|
main() {
|
||||||
|
printf '%bInstalling dependencies...%b\n' "$BLU" "$RST"
|
||||||
|
|
||||||
|
local package
|
||||||
|
local errors=0
|
||||||
|
for package in "${DEPS[@]}"; do
|
||||||
|
if pacman -Qi "$package" > /dev/null; then
|
||||||
|
printf '[%b/%b] %s\n' "$GRN" "$RST" "$package"
|
||||||
|
else
|
||||||
|
printf '[ ] %s...\n' "$package"
|
||||||
|
|
||||||
|
if sudo pacman -S --noconfirm "$package"; then
|
||||||
|
printf '[%b+%b] %s\n' "$GRN" "$RST" "$package"
|
||||||
|
else
|
||||||
|
printf '[%bx%b] %s\n' "$RED" "$RST" "$package"
|
||||||
|
((errors++))
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
printf '\n%bMaking scripts executable...%b\n' "$BLU" "$RST"
|
||||||
|
chmod -v +x ~/.config/waybar/scripts/*.sh
|
||||||
|
|
||||||
|
pkill waybar
|
||||||
|
waybar &> /dev/null &
|
||||||
|
disown
|
||||||
|
|
||||||
|
if ((errors > 0)); then
|
||||||
|
printf '\nInstallation completed with %b%d errors%b\n' \
|
||||||
|
"$RED" "$errors" "$RST"
|
||||||
|
else
|
||||||
|
printf '\n%bInstallation complete!%b\n' "$GRN" "$RST"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
main
|
||||||
32
.config/waybar/modules/backlight.jsonc
Normal file
32
.config/waybar/modules/backlight.jsonc
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"backlight": {
|
||||||
|
// "interval":
|
||||||
|
"format": "{icon} {percent}%",
|
||||||
|
"format-icons": [
|
||||||
|
"", "", "", "", "", "", "", "", ""
|
||||||
|
],
|
||||||
|
"min-length": 7,
|
||||||
|
"max-length": 7,
|
||||||
|
// "align":
|
||||||
|
// "justify":
|
||||||
|
// "rotate":
|
||||||
|
// "states":
|
||||||
|
// "on-click":
|
||||||
|
// "on-click-middle":
|
||||||
|
// "on-click-right":
|
||||||
|
// "on-update":
|
||||||
|
"on-scroll-up": "~/.config/waybar/scripts/backlight.sh up",
|
||||||
|
"on-scroll-down": "~/.config/waybar/scripts/backlight.sh down",
|
||||||
|
// "smooth-scrolling-threshold":
|
||||||
|
// "reverse-scrolling":
|
||||||
|
// "reverse-mouse-scrolling":
|
||||||
|
// "scroll-step":
|
||||||
|
// "min-brightness":
|
||||||
|
"tooltip": false
|
||||||
|
// "tooltip-format":
|
||||||
|
// "menu":
|
||||||
|
// "menu-file":
|
||||||
|
// "menu-actions":
|
||||||
|
// "expand":
|
||||||
|
}
|
||||||
|
}
|
||||||
45
.config/waybar/modules/battery.jsonc
Normal file
45
.config/waybar/modules/battery.jsonc
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
{
|
||||||
|
"battery": {
|
||||||
|
// "bat":
|
||||||
|
// "adapter":
|
||||||
|
// "design-capacity":
|
||||||
|
// "full-at":
|
||||||
|
// "interval":
|
||||||
|
"states": {
|
||||||
|
"warning": 20,
|
||||||
|
"critical": 10
|
||||||
|
},
|
||||||
|
"format": "{icon} {capacity}%",
|
||||||
|
"format-time": "{H} hr {M} min",
|
||||||
|
"format-icons": [
|
||||||
|
"", "", "", "", "", "", "", "", "", ""
|
||||||
|
],
|
||||||
|
"format-charging": " {capacity}%",
|
||||||
|
"min-length": 7,
|
||||||
|
"max-length": 7,
|
||||||
|
// "align":
|
||||||
|
// "justify":
|
||||||
|
// "rotate":
|
||||||
|
// "on-click":
|
||||||
|
// "on-click-middle":
|
||||||
|
// "on-click-right":
|
||||||
|
// "on-update":
|
||||||
|
// "on-scroll-up":
|
||||||
|
// "on-scroll-down":
|
||||||
|
// "smooth-scrolling-threshold":
|
||||||
|
// "tooltip":
|
||||||
|
"tooltip-format": "Discharging: {time}",
|
||||||
|
"tooltip-format-charging": "Charging: {time}",
|
||||||
|
// "weighted-average":
|
||||||
|
// "bat-compatibility":
|
||||||
|
// "menu":
|
||||||
|
// "menu-file":
|
||||||
|
// "menu-actions":
|
||||||
|
// "expand":
|
||||||
|
"events": {
|
||||||
|
"on-discharging-warning": "notify-send 'Battery Low (20%)' -i 'battery-020'",
|
||||||
|
"on-discharging-critical": "notify-send 'Battery Critical (10%)' -u critical -i 'battery-010'",
|
||||||
|
"on-charging-100": "notify-send 'Battery Full (100%)' -i 'battery-100-charged'"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
38
.config/waybar/modules/bluetooth.jsonc
Normal file
38
.config/waybar/modules/bluetooth.jsonc
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
"bluetooth": {
|
||||||
|
// "controller":
|
||||||
|
// "format-device-preference":
|
||||||
|
"format": "",
|
||||||
|
"format-disabled": "",
|
||||||
|
"format-off": "",
|
||||||
|
"format-on": "",
|
||||||
|
"format-connected": "",
|
||||||
|
// "format-connected-battery":
|
||||||
|
// "format-no-controller":
|
||||||
|
// "format-icons":
|
||||||
|
// "rotate":
|
||||||
|
"min-length": 2,
|
||||||
|
"max-length": 2,
|
||||||
|
// "align":
|
||||||
|
// "justify":
|
||||||
|
"on-click": "kitty -e ~/.config/waybar/scripts/bluetooth.sh",
|
||||||
|
// "on-click-middle":
|
||||||
|
"on-click-right": "bluetoothctl power off && notify-send 'Bluetooth Off' -i 'network-bluetooth-inactive' -r 1925",
|
||||||
|
// "on-scroll-up":
|
||||||
|
// "on-scroll-down":
|
||||||
|
// "smooth-scrolling-threshold":
|
||||||
|
// "tooltip":
|
||||||
|
"tooltip-format": "Device Addr: {device_address}",
|
||||||
|
"tooltip-format-disabled": "Bluetooth Disabled",
|
||||||
|
"tooltip-format-off": "Bluetooth Off",
|
||||||
|
"tooltip-format-on": "Bluetooth Disconnected",
|
||||||
|
"tooltip-format-connected": "Device: {device_alias}",
|
||||||
|
"tooltip-format-enumerate-connected": "Device: {device_alias}",
|
||||||
|
"tooltip-format-connected-battery": "Device: {device_alias}\nBattery: {device_battery_percentage}%",
|
||||||
|
"tooltip-format-enumerate-connected-battery": "Device: {device_alias}\nBattery: {device_battery_percentage}%"
|
||||||
|
// "menu":
|
||||||
|
// "menu-file":
|
||||||
|
// "menu-actions":
|
||||||
|
// "expand":
|
||||||
|
}
|
||||||
|
}
|
||||||
71
.config/waybar/modules/clock.jsonc
Normal file
71
.config/waybar/modules/clock.jsonc
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
{
|
||||||
|
"clock#time": {
|
||||||
|
// "interval":
|
||||||
|
"format": "{:%H:%M}",
|
||||||
|
// "timezone":
|
||||||
|
// "timezones":
|
||||||
|
// "locale":
|
||||||
|
"min-length": 5,
|
||||||
|
"max-length": 5,
|
||||||
|
// "rotate": 0,
|
||||||
|
// "on-click":
|
||||||
|
// "on-click-middle":
|
||||||
|
// "on-click-right":
|
||||||
|
// "on-scroll-up":
|
||||||
|
// "on-scroll-down":
|
||||||
|
// "smooth-scrolling-threshold":
|
||||||
|
// "tooltip":
|
||||||
|
"tooltip-format": "Standard Time: {:%I:%M %p}"
|
||||||
|
// "menu":
|
||||||
|
// "menu-file":
|
||||||
|
// "menu-actions":
|
||||||
|
// "expand":
|
||||||
|
},
|
||||||
|
|
||||||
|
/*--------------
|
||||||
|
calendar
|
||||||
|
--------------*/
|
||||||
|
|
||||||
|
"clock#date": {
|
||||||
|
// "interval":
|
||||||
|
"format": " {:%m-%d}",
|
||||||
|
// "timezone":
|
||||||
|
// "timezones":
|
||||||
|
// "locale":
|
||||||
|
"min-length": 8,
|
||||||
|
"max-length": 8,
|
||||||
|
// "rotate":
|
||||||
|
// "on-click":
|
||||||
|
// "on-click-middle":
|
||||||
|
// "on-click-right":
|
||||||
|
// "on-scroll-up":
|
||||||
|
// "on-scroll-down":
|
||||||
|
// "smooth-scrolling-threshold":
|
||||||
|
// "tooltip":
|
||||||
|
"tooltip-format": "{calendar}",
|
||||||
|
// "menu":
|
||||||
|
// "menu-file":
|
||||||
|
// "menu-actions":
|
||||||
|
// "expand":
|
||||||
|
"calendar": {
|
||||||
|
"mode": "month",
|
||||||
|
"mode-mon-col": 6,
|
||||||
|
// "week-pos":
|
||||||
|
// "on-scroll":
|
||||||
|
"format": {
|
||||||
|
"months": "<span alpha='100%'><b>{}</b></span>",
|
||||||
|
"days": "<span alpha='90%'>{}</span>",
|
||||||
|
// "weeks":
|
||||||
|
"weekdays": "<span alpha='80%'><i>{}</i></span>",
|
||||||
|
"today": "<span alpha='100%'><b><u>{}</u></b></span>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"actions": {
|
||||||
|
"on-click": "mode"
|
||||||
|
// "on-click-middle":
|
||||||
|
// "on-click-right":
|
||||||
|
// "on-scroll-up":
|
||||||
|
// "on-scroll-down":
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
27
.config/waybar/modules/cpu.jsonc
Normal file
27
.config/waybar/modules/cpu.jsonc
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"cpu": {
|
||||||
|
"interval": 10,
|
||||||
|
"format": " {usage}%",
|
||||||
|
"format-warning": " {usage}%",
|
||||||
|
"format-critical": " {usage}%",
|
||||||
|
// "format-icons":
|
||||||
|
"min-length": 7,
|
||||||
|
"max-length": 7,
|
||||||
|
// "align":
|
||||||
|
// "justify":
|
||||||
|
// "rotate":
|
||||||
|
"states": {
|
||||||
|
"warning": 75,
|
||||||
|
"critical": 90
|
||||||
|
},
|
||||||
|
// "on-click":
|
||||||
|
// "on-click-middle":
|
||||||
|
// "on-click-right":
|
||||||
|
// "on-update":
|
||||||
|
// "on-scroll-up":
|
||||||
|
// "on-scroll-down":
|
||||||
|
// "smooth-scrolling-threshold":
|
||||||
|
"tooltip": false
|
||||||
|
// "expand":
|
||||||
|
}
|
||||||
|
}
|
||||||
33
.config/waybar/modules/custom/distro.jsonc
Normal file
33
.config/waybar/modules/custom/distro.jsonc
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"custom/distro": {
|
||||||
|
// "exec":
|
||||||
|
// "exec-if":
|
||||||
|
// "exec-on-event":
|
||||||
|
// "hide-empty-text":
|
||||||
|
// "return-type":
|
||||||
|
// "interval":
|
||||||
|
// "restart-interval":
|
||||||
|
// "signal":
|
||||||
|
"format": "",
|
||||||
|
// "format-icons":
|
||||||
|
// "rotate":
|
||||||
|
// "min-length":
|
||||||
|
// "max-length":
|
||||||
|
// "align":
|
||||||
|
// "justify":
|
||||||
|
// "on-click":
|
||||||
|
// "on-click-middle":
|
||||||
|
// "on-click-right":
|
||||||
|
// "on-update":
|
||||||
|
// "on-scroll-up":
|
||||||
|
// "on-scroll-down":
|
||||||
|
// "smooth-scrolling-threshold":
|
||||||
|
"tooltip": false
|
||||||
|
// "tooltip-format":
|
||||||
|
// "escape":
|
||||||
|
// "menu":
|
||||||
|
// "menu-file":
|
||||||
|
// "menu-actions":
|
||||||
|
// "expand":
|
||||||
|
}
|
||||||
|
}
|
||||||
79
.config/waybar/modules/custom/dividers.jsonc
Normal file
79
.config/waybar/modules/custom/dividers.jsonc
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
{
|
||||||
|
/*-------------------
|
||||||
|
left dividers
|
||||||
|
-------------------*/
|
||||||
|
|
||||||
|
"custom/left_div#1": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"custom/left_div#2": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"custom/left_div#3": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"custom/left_div#4": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"custom/left_div#5": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"custom/left_div#6": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"custom/left_div#7": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"custom/left_div#8": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
|
||||||
|
// inverse
|
||||||
|
"custom/left_inv#1": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"custom/left_inv#2": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
|
||||||
|
/*--------------------
|
||||||
|
right dividers
|
||||||
|
--------------------*/
|
||||||
|
|
||||||
|
"custom/right_div#1": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"custom/right_div#2": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"custom/right_div#3": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"custom/right_div#4": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"custom/right_div#5": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
|
||||||
|
// inverse
|
||||||
|
"custom/right_inv#1": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
}
|
||||||
|
}
|
||||||
33
.config/waybar/modules/custom/power_menu.jsonc
Normal file
33
.config/waybar/modules/custom/power_menu.jsonc
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"custom/power_menu": {
|
||||||
|
// "exec":
|
||||||
|
// "exec-if":
|
||||||
|
// "exec-on-event":
|
||||||
|
// "hide-empty-text":
|
||||||
|
// "return-type":
|
||||||
|
// "interval":
|
||||||
|
// "restart-interval":
|
||||||
|
// "signal":
|
||||||
|
"format": "",
|
||||||
|
// "format-icons":
|
||||||
|
// "rotate":
|
||||||
|
// "min-length":
|
||||||
|
// "max-length":
|
||||||
|
// "align":
|
||||||
|
// "justify":
|
||||||
|
"on-click": "kitty -e ~/.config/waybar/scripts/power-menu.sh",
|
||||||
|
// "on-click-middle":
|
||||||
|
// "on-click-right":
|
||||||
|
// "on-update":
|
||||||
|
// "on-scroll-up":
|
||||||
|
// "on-scroll-down":
|
||||||
|
// "smooth-scrolling-threshold":
|
||||||
|
// "tooltip":
|
||||||
|
"tooltip-format": "Power Menu"
|
||||||
|
// "escape":
|
||||||
|
// "menu":
|
||||||
|
// "menu-file":
|
||||||
|
// "menu-actions":
|
||||||
|
// "expand":
|
||||||
|
}
|
||||||
|
}
|
||||||
33
.config/waybar/modules/custom/system_update.jsonc
Normal file
33
.config/waybar/modules/custom/system_update.jsonc
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"custom/system_update": {
|
||||||
|
"exec": "~/.config/waybar/scripts/system-update.sh module",
|
||||||
|
// "exec-if":
|
||||||
|
// "exec-on-event":
|
||||||
|
// "hide-empty-text":
|
||||||
|
"return-type": "json",
|
||||||
|
"interval": 3600,
|
||||||
|
// "restart-interval":
|
||||||
|
"signal": 1,
|
||||||
|
"format": "{}",
|
||||||
|
// "format-icons":
|
||||||
|
// "rotate":
|
||||||
|
// "align":
|
||||||
|
// "justify":
|
||||||
|
"min-length": 2,
|
||||||
|
"max-length": 2,
|
||||||
|
"on-click": "kitty -e ~/.config/waybar/scripts/system-update.sh"
|
||||||
|
// "on-click-middle":
|
||||||
|
// "on-click-right":
|
||||||
|
// "on-update":
|
||||||
|
// "on-scroll-up":
|
||||||
|
// "on-scroll-down":
|
||||||
|
// "smooth-scrolling-threshold":
|
||||||
|
// "tooltip":
|
||||||
|
// "tooltip-format":
|
||||||
|
// "escape":
|
||||||
|
// "menu":
|
||||||
|
// "menu-file":
|
||||||
|
// "menu-actions":
|
||||||
|
// "expand":
|
||||||
|
}
|
||||||
|
}
|
||||||
83
.config/waybar/modules/custom/user.jsonc
Normal file
83
.config/waybar/modules/custom/user.jsonc
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
{
|
||||||
|
"group/user": {
|
||||||
|
"orientation": "horizontal",
|
||||||
|
"modules": [
|
||||||
|
"custom/trigger",
|
||||||
|
"custom/user"
|
||||||
|
],
|
||||||
|
"drawer": {
|
||||||
|
// "transition-duration":
|
||||||
|
// "transition-left-to-right":
|
||||||
|
// "children-class":
|
||||||
|
// "click-to-reveal":
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/trigger": {
|
||||||
|
// "exec":
|
||||||
|
// "exec-if":
|
||||||
|
// "exec-on-event":
|
||||||
|
// "hide-empty-text":
|
||||||
|
// "return-type":
|
||||||
|
// "interval":
|
||||||
|
// "restart-interval":
|
||||||
|
// "signal":
|
||||||
|
"format": "",
|
||||||
|
// "format-icons":
|
||||||
|
// "rotate":
|
||||||
|
"min-length": 4,
|
||||||
|
"max-length": 4,
|
||||||
|
// "align":
|
||||||
|
// "justify":
|
||||||
|
// "on-click":
|
||||||
|
// "on-click-middle":
|
||||||
|
// "on-click-right":
|
||||||
|
// "on-update":
|
||||||
|
// "on-scroll-up":
|
||||||
|
// "on-scroll-down":
|
||||||
|
// "smooth-scrolling-threshold":
|
||||||
|
"tooltip": false
|
||||||
|
// "tooltip-format":
|
||||||
|
// "escape":
|
||||||
|
// "menu":
|
||||||
|
// "menu-file":
|
||||||
|
// "menu-actions":
|
||||||
|
// "expand":
|
||||||
|
},
|
||||||
|
|
||||||
|
/*--------------
|
||||||
|
username
|
||||||
|
--------------*/
|
||||||
|
|
||||||
|
"custom/user": {
|
||||||
|
"exec": "id -un",
|
||||||
|
// "exec-if":
|
||||||
|
// "exec-on-event":
|
||||||
|
// "hide-empty-text":
|
||||||
|
// "return-type":
|
||||||
|
// "interval":
|
||||||
|
// "restart-interval":
|
||||||
|
// "signal":
|
||||||
|
"format": "{}",
|
||||||
|
// "format-icons":
|
||||||
|
// "rotate":
|
||||||
|
// "min-length":
|
||||||
|
// "max-length":
|
||||||
|
// "align":
|
||||||
|
// "justify":
|
||||||
|
// "on-click":
|
||||||
|
// "on-click-middle":
|
||||||
|
// "on-click-right":
|
||||||
|
// "on-update":
|
||||||
|
// "on-scroll-up":
|
||||||
|
// "on-scroll-down":
|
||||||
|
// "smooth-scrolling-threshold":
|
||||||
|
"tooltip": false
|
||||||
|
// "tooltip-format":
|
||||||
|
// "escape":
|
||||||
|
// "menu":
|
||||||
|
// "menu-file":
|
||||||
|
// "menu-actions":
|
||||||
|
// "expand":
|
||||||
|
}
|
||||||
|
}
|
||||||
21
.config/waybar/modules/extras/taskbar.jsonc
Normal file
21
.config/waybar/modules/extras/taskbar.jsonc
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"wlr/taskbar": {
|
||||||
|
// "all-outputs":
|
||||||
|
// "format":
|
||||||
|
// "icon-theme":
|
||||||
|
// "icon-size":
|
||||||
|
// "markup":
|
||||||
|
// "tooltip":
|
||||||
|
// "tooltip-format":
|
||||||
|
// "active-first":
|
||||||
|
// "sort-by-app-id":
|
||||||
|
"on-click": "activate",
|
||||||
|
// "on-click-middle":
|
||||||
|
// "on-click-right":
|
||||||
|
// "on-update":
|
||||||
|
"ignore-list": [ "kitty" ],
|
||||||
|
// "app_ids-mapping":
|
||||||
|
// "rewrite":
|
||||||
|
"cursor": true
|
||||||
|
}
|
||||||
|
}
|
||||||
13
.config/waybar/modules/extras/tray.jsonc
Normal file
13
.config/waybar/modules/extras/tray.jsonc
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"tray": {
|
||||||
|
"icon-size": 16,
|
||||||
|
// "show-passive-items":
|
||||||
|
// "smooth-scrolling-threshold":
|
||||||
|
"spacing": 12,
|
||||||
|
// "reverse-direction":
|
||||||
|
// "on-update":
|
||||||
|
// "expand":
|
||||||
|
// "icons":
|
||||||
|
"cursor": true
|
||||||
|
}
|
||||||
|
}
|
||||||
82
.config/waybar/modules/extras/wireplumber.jsonc
Normal file
82
.config/waybar/modules/extras/wireplumber.jsonc
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
{
|
||||||
|
"group/wireplumber": {
|
||||||
|
"orientation": "horizontal",
|
||||||
|
"modules": [
|
||||||
|
"wireplumber#output",
|
||||||
|
"wireplumber#input"
|
||||||
|
],
|
||||||
|
"drawer": {
|
||||||
|
// "transition-duration":
|
||||||
|
"transition-left-to-right": false
|
||||||
|
// "children-class":
|
||||||
|
// "click-to-reveal":
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/*-------------------
|
||||||
|
output device
|
||||||
|
-------------------*/
|
||||||
|
|
||||||
|
"wireplumber#output": {
|
||||||
|
"format": "{icon} {volume}%",
|
||||||
|
"format-muted": " {volume}%",
|
||||||
|
// "format-source":
|
||||||
|
// "format-source-muted":
|
||||||
|
"format-icons": [
|
||||||
|
"", "", ""
|
||||||
|
],
|
||||||
|
// "rotate":
|
||||||
|
// "states":
|
||||||
|
"min-length": 7,
|
||||||
|
"max-length": 7,
|
||||||
|
// "align":
|
||||||
|
// "justify":
|
||||||
|
// "scroll-step":
|
||||||
|
"on-click": "~/.config/waybar/scripts/volume.sh output mute",
|
||||||
|
// "on-click-middle":
|
||||||
|
// "on-click-right":
|
||||||
|
// "on-update":
|
||||||
|
"on-scroll-up": "~/.config/waybar/scripts/volume.sh output raise",
|
||||||
|
"on-scroll-down": "~/.config/waybar/scripts/volume.sh output lower",
|
||||||
|
// "tooltip":
|
||||||
|
"tooltip-format": "Device: {node_name}",
|
||||||
|
// "max-volume":
|
||||||
|
// "reverse-scrolling":
|
||||||
|
"node-type": "Audio/Sink"
|
||||||
|
// "menu":
|
||||||
|
// "menu-file":
|
||||||
|
// "menu-actions":
|
||||||
|
},
|
||||||
|
|
||||||
|
/*----------------
|
||||||
|
microphone
|
||||||
|
----------------*/
|
||||||
|
|
||||||
|
"wireplumber#input": {
|
||||||
|
"format": " {volume}%",
|
||||||
|
"format-muted": " {volume}%",
|
||||||
|
// "format-source":
|
||||||
|
// "format-source-muted":
|
||||||
|
// "rotate":
|
||||||
|
// "states":
|
||||||
|
"min-length": 7,
|
||||||
|
"max-length": 7,
|
||||||
|
// "align":
|
||||||
|
// "justify":
|
||||||
|
// "scroll-step":
|
||||||
|
"on-click": "~/.config/waybar/scripts/volume.sh input mute",
|
||||||
|
// "on-click-middle":
|
||||||
|
// "on-click-right":
|
||||||
|
// "on-update":
|
||||||
|
"on-scroll-up": "~/.config/waybar/scripts/volume.sh input raise",
|
||||||
|
"on-scroll-down": "~/.config/waybar/scripts/volume.sh input lower",
|
||||||
|
// "tooltip":
|
||||||
|
"tooltip-format": "Device: {node_name}",
|
||||||
|
// "max-volume":
|
||||||
|
// "reverse-scrolling":
|
||||||
|
"node-type": "Audio/Source"
|
||||||
|
// "menu":
|
||||||
|
// "menu-file":
|
||||||
|
// "menu-actions":
|
||||||
|
}
|
||||||
|
}
|
||||||
30
.config/waybar/modules/idle_inhibitor.jsonc
Normal file
30
.config/waybar/modules/idle_inhibitor.jsonc
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"idle_inhibitor": {
|
||||||
|
"format": "{icon}",
|
||||||
|
"format-icons": {
|
||||||
|
"activated": "",
|
||||||
|
"deactivated": ""
|
||||||
|
},
|
||||||
|
// "rotate":
|
||||||
|
"min-length": 3,
|
||||||
|
"max-length": 3,
|
||||||
|
// "align":
|
||||||
|
// "justify":
|
||||||
|
// "on-click":
|
||||||
|
// "on-click-middle":
|
||||||
|
// "on-click-right":
|
||||||
|
// "on-update":
|
||||||
|
// "on-scroll-up":
|
||||||
|
// "on-scroll-down":
|
||||||
|
// "smooth-scrolling-threshold":
|
||||||
|
// "tooltip":
|
||||||
|
"tooltip-format-activated": "Keep Screen On: <span text_transform='capitalize'>{status}</span>",
|
||||||
|
"tooltip-format-deactivated": "Keep Screen On: <span text_transform='capitalize'>{status}</span>",
|
||||||
|
"start-activated": false
|
||||||
|
// "timeout":
|
||||||
|
// "menu":
|
||||||
|
// "menu-file":
|
||||||
|
// "menu-actions":
|
||||||
|
// "expand":
|
||||||
|
}
|
||||||
|
}
|
||||||
31
.config/waybar/modules/memory.jsonc
Normal file
31
.config/waybar/modules/memory.jsonc
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"memory": {
|
||||||
|
"interval": 10,
|
||||||
|
"format": " {percentage}%",
|
||||||
|
"format-warning": " {percentage}%",
|
||||||
|
"format-critical": " {percentage}%",
|
||||||
|
// "format-icons":
|
||||||
|
// "rotate":
|
||||||
|
"states": {
|
||||||
|
"warning": 75,
|
||||||
|
"critical": 90
|
||||||
|
},
|
||||||
|
"min-length": 7,
|
||||||
|
"max-length": 7,
|
||||||
|
// "align":
|
||||||
|
// "justify":
|
||||||
|
// "on-click":
|
||||||
|
// "on-click-middle":
|
||||||
|
// "on-click-right":
|
||||||
|
// "on-update":
|
||||||
|
// "on-scroll-up":
|
||||||
|
// "on-scroll-down":
|
||||||
|
// "smooth-scrolling-threshold":
|
||||||
|
// "tooltip":
|
||||||
|
"tooltip-format": "Memory Used: {used:0.1f} GB / {total:0.1f} GB"
|
||||||
|
// "menu":
|
||||||
|
// "menu-file":
|
||||||
|
// "menu-actions":
|
||||||
|
// "expand":
|
||||||
|
}
|
||||||
|
}
|
||||||
36
.config/waybar/modules/mpris.jsonc
Normal file
36
.config/waybar/modules/mpris.jsonc
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"mpris": {
|
||||||
|
// "player":
|
||||||
|
// "ignored-players":
|
||||||
|
// "interval":
|
||||||
|
"format": "{player_icon} {title} - {artist}",
|
||||||
|
"format-paused": "{status_icon} {title} - {artist}",
|
||||||
|
"tooltip-format": "Playing: {title} - {artist}",
|
||||||
|
"tooltip-format-paused": "Paused: {title} - {artist}",
|
||||||
|
// "enable-tooltip-len-limits":
|
||||||
|
// "on-click":
|
||||||
|
// "on-click-middle":
|
||||||
|
// "on-click-right":
|
||||||
|
"player-icons": {
|
||||||
|
"default": ""
|
||||||
|
},
|
||||||
|
"status-icons": {
|
||||||
|
"paused": ""
|
||||||
|
},
|
||||||
|
// "artist-len":
|
||||||
|
// "album-len":
|
||||||
|
// "title-len":
|
||||||
|
// "dynamic-len":
|
||||||
|
// "dynamic-order":
|
||||||
|
// "dynamic-separator":
|
||||||
|
// "dynamic-importance-order":
|
||||||
|
// "truncate-hours":
|
||||||
|
// "ellipsis":
|
||||||
|
// "rotate":
|
||||||
|
// "min-length":
|
||||||
|
"max-length": 1000
|
||||||
|
// "align":
|
||||||
|
// "justify":
|
||||||
|
// "expand":
|
||||||
|
}
|
||||||
|
}
|
||||||
40
.config/waybar/modules/network.jsonc
Normal file
40
.config/waybar/modules/network.jsonc
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
{
|
||||||
|
"network": {
|
||||||
|
// "interface":
|
||||||
|
// "rfkill":
|
||||||
|
"interval": 10,
|
||||||
|
// "family":
|
||||||
|
"format": "",
|
||||||
|
"format-ethernet": "",
|
||||||
|
"format-wifi": "{icon}",
|
||||||
|
// "format-linked":
|
||||||
|
"format-disconnected": "",
|
||||||
|
"format-disabled": "",
|
||||||
|
// "format-alt":
|
||||||
|
"format-icons": [
|
||||||
|
"", "", "", ""
|
||||||
|
],
|
||||||
|
// "rotate":
|
||||||
|
"min-length": 2,
|
||||||
|
"max-length": 2,
|
||||||
|
// "align":
|
||||||
|
// "justify":
|
||||||
|
"on-click": "kitty -e ~/.config/waybar/scripts/network.sh",
|
||||||
|
// "on-click-middle":
|
||||||
|
"on-click-right": "nmcli radio wifi off && notify-send 'Wi-Fi Disabled' -i 'network-wireless-off' -r 1125",
|
||||||
|
// "on-update":
|
||||||
|
// "on-scroll-up":
|
||||||
|
// "on-scroll-down":
|
||||||
|
// "smooth-scrolling-threshold":
|
||||||
|
// "tooltip":
|
||||||
|
"tooltip-format": "Gateway: {gwaddr}",
|
||||||
|
"tooltip-format-ethernet": "Interface: {ifname}",
|
||||||
|
"tooltip-format-wifi": "Network: {essid}\nIP Addr: {ipaddr}/{cidr}\nStrength: {signalStrength}%\nFrequency: {frequency} GHz",
|
||||||
|
"tooltip-format-disconnected": "Wi-Fi Disconnected",
|
||||||
|
"tooltip-format-disabled": "Wi-Fi Disabled"
|
||||||
|
// "menu":
|
||||||
|
// "menu-file":
|
||||||
|
// "menu-actions":
|
||||||
|
// "expand":
|
||||||
|
}
|
||||||
|
}
|
||||||
96
.config/waybar/modules/pulseaudio.jsonc
Normal file
96
.config/waybar/modules/pulseaudio.jsonc
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
{
|
||||||
|
"group/pulseaudio": {
|
||||||
|
"orientation": "horizontal",
|
||||||
|
"modules": [
|
||||||
|
"pulseaudio#output",
|
||||||
|
"pulseaudio#input"
|
||||||
|
],
|
||||||
|
"drawer": {
|
||||||
|
// "transition-duration":
|
||||||
|
"transition-left-to-right": false
|
||||||
|
// "children-class":
|
||||||
|
// "click-to-reveal":
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/*-------------------
|
||||||
|
output device
|
||||||
|
-------------------*/
|
||||||
|
|
||||||
|
"pulseaudio#output": {
|
||||||
|
"format": "{icon} {volume}%",
|
||||||
|
// "format-bluetooth":
|
||||||
|
"format-muted": "{icon} {volume}%",
|
||||||
|
// "format-source":
|
||||||
|
// "format-source-muted":
|
||||||
|
"format-icons": {
|
||||||
|
"default": [ "", "", "" ],
|
||||||
|
"default-muted": "",
|
||||||
|
"headphone": "",
|
||||||
|
"headphone-muted": "",
|
||||||
|
"headset": "",
|
||||||
|
"headset-muted": ""
|
||||||
|
},
|
||||||
|
// "rotate":
|
||||||
|
// "states":
|
||||||
|
"min-length": 7,
|
||||||
|
"max-length": 7,
|
||||||
|
// "align":
|
||||||
|
// "justify":
|
||||||
|
// "scroll-step":
|
||||||
|
"on-click": "~/.config/waybar/scripts/volume.sh output mute",
|
||||||
|
// "on-click-middle":
|
||||||
|
// "on-click-right":
|
||||||
|
// "on-update":
|
||||||
|
"on-scroll-up": "~/.config/waybar/scripts/volume.sh output raise",
|
||||||
|
"on-scroll-down": "~/.config/waybar/scripts/volume.sh output lower",
|
||||||
|
// "smooth-scrolling-threshold":
|
||||||
|
// "tooltip":
|
||||||
|
"tooltip-format": "Output Device: {desc}"
|
||||||
|
// "max-volume":
|
||||||
|
// "ignored-sinks":
|
||||||
|
// "reverse-scrolling":
|
||||||
|
// "reverse-mouse-scrolling":
|
||||||
|
// "menu":
|
||||||
|
// "menu-file":
|
||||||
|
// "menu-actions":
|
||||||
|
// "expand":
|
||||||
|
},
|
||||||
|
|
||||||
|
/*----------------
|
||||||
|
microphone
|
||||||
|
----------------*/
|
||||||
|
|
||||||
|
"pulseaudio#input": {
|
||||||
|
"format": "{format_source}",
|
||||||
|
// "format-bluetooth":
|
||||||
|
// "format-muted":
|
||||||
|
"format-source": " {volume}%",
|
||||||
|
"format-source-muted": " {volume}%",
|
||||||
|
// "format-icons":
|
||||||
|
// "rotate":
|
||||||
|
// "states":
|
||||||
|
"min-length": 7,
|
||||||
|
"max-length": 7,
|
||||||
|
// "align":
|
||||||
|
// "justify":
|
||||||
|
// "scroll-step":
|
||||||
|
"on-click": "~/.config/waybar/scripts/volume.sh input mute",
|
||||||
|
// "on-click-middle":
|
||||||
|
// "on-click-right":
|
||||||
|
// "on-update":
|
||||||
|
"on-scroll-up": "~/.config/waybar/scripts/volume.sh input raise",
|
||||||
|
"on-scroll-down": "~/.config/waybar/scripts/volume.sh input lower",
|
||||||
|
// "smooth-scrolling-threshold":
|
||||||
|
// "tooltip":
|
||||||
|
"tooltip-format": "Input Device: {desc}"
|
||||||
|
// "max-volume":
|
||||||
|
// "ignored-sinks":
|
||||||
|
// "reverse-scrolling":
|
||||||
|
// "reverse-mouse-scrolling":
|
||||||
|
// "menu":
|
||||||
|
// "menu-file":
|
||||||
|
// "menu-actions":
|
||||||
|
// "expand":
|
||||||
|
}
|
||||||
|
}
|
||||||
13
.config/waybar/modules/sway/window.jsonc
Normal file
13
.config/waybar/modules/sway/window.jsonc
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"sway/window": {
|
||||||
|
"format": "{}",
|
||||||
|
"rewrite": {
|
||||||
|
"": "Desktop",
|
||||||
|
"kitty": "Terminal",
|
||||||
|
"Alacritty": "Terminal",
|
||||||
|
"zsh": "Terminal",
|
||||||
|
"~": "Terminal"
|
||||||
|
},
|
||||||
|
"swap-icon-label": false
|
||||||
|
}
|
||||||
|
}
|
||||||
12
.config/waybar/modules/sway/windowcount.jsonc
Normal file
12
.config/waybar/modules/sway/windowcount.jsonc
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"sway/windowcount": {
|
||||||
|
"format": "[{}]",
|
||||||
|
// "format-empty":
|
||||||
|
// "format-windowed":
|
||||||
|
// "format-fullscreen":
|
||||||
|
// "separate-outputs":
|
||||||
|
// "min-length":
|
||||||
|
// "max-length":
|
||||||
|
"swap-icon-label": false
|
||||||
|
}
|
||||||
|
}
|
||||||
11
.config/waybar/modules/sway/workspaces.jsonc
Normal file
11
.config/waybar/modules/sway/workspaces.jsonc
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"sway/workspaces": {
|
||||||
|
"format": "{icon}",
|
||||||
|
"disable-scroll": true,
|
||||||
|
"format-icons": {
|
||||||
|
"default": "",
|
||||||
|
"focused": ""
|
||||||
|
},
|
||||||
|
"cursor": true
|
||||||
|
}
|
||||||
|
}
|
||||||
35
.config/waybar/modules/temperature.jsonc
Normal file
35
.config/waybar/modules/temperature.jsonc
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"temperature": {
|
||||||
|
"thermal-zone": 1,
|
||||||
|
// "hwmon-path":
|
||||||
|
// "hwmon-path-abs":
|
||||||
|
// "input-filename":
|
||||||
|
// "warning-threshold":
|
||||||
|
"critical-threshold": 90,
|
||||||
|
"interval": 10,
|
||||||
|
// "format-warning":
|
||||||
|
"format-critical": " {temperatureC}°C",
|
||||||
|
"format": "{icon} {temperatureC}°C",
|
||||||
|
"format-icons": [
|
||||||
|
"", "", ""
|
||||||
|
],
|
||||||
|
// "rotate":
|
||||||
|
"min-length": 8,
|
||||||
|
"max-length": 8,
|
||||||
|
// "align":
|
||||||
|
// "justify":
|
||||||
|
// "on-click":
|
||||||
|
// "on-click-middle":
|
||||||
|
// "on-click-right":
|
||||||
|
// "on-update":
|
||||||
|
// "on-scroll-up":
|
||||||
|
// "on-scroll-down":
|
||||||
|
// "smooth-scrolling-threshold":
|
||||||
|
// "tooltip":
|
||||||
|
"tooltip-format": "Temp in Fahrenheit: {temperatureF}°F"
|
||||||
|
// "menu":
|
||||||
|
// "menu-file":
|
||||||
|
// "menu-actions":
|
||||||
|
// "expand":
|
||||||
|
}
|
||||||
|
}
|
||||||
66
.config/waybar/scripts/backlight.sh
Executable file
66
.config/waybar/scripts/backlight.sh
Executable file
@ -0,0 +1,66 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# Adjust screen brightness and send a notification with the current level
|
||||||
|
#
|
||||||
|
# Requirements:
|
||||||
|
# - brightnessctl
|
||||||
|
# - notify-send (libnotify)
|
||||||
|
#
|
||||||
|
# Author: Jesse Mirabel <sejjymvm@gmail.com>
|
||||||
|
# Created: August 28, 2025
|
||||||
|
# License: MIT
|
||||||
|
|
||||||
|
VALUE=1
|
||||||
|
|
||||||
|
print-usage() {
|
||||||
|
local script=${0##*/}
|
||||||
|
|
||||||
|
cat <<- EOF
|
||||||
|
USAGE: $script [OPTIONS]
|
||||||
|
|
||||||
|
Adjust screen brightness and send a notification with the current level
|
||||||
|
|
||||||
|
OPTIONS:
|
||||||
|
up <value> Increase brightness by <value>
|
||||||
|
down <value> Decrease brightness by <value>
|
||||||
|
Default value: $VALUE
|
||||||
|
|
||||||
|
EXAMPLES:
|
||||||
|
Increase brightness:
|
||||||
|
$ $script up
|
||||||
|
|
||||||
|
Decrease brightness by 5:
|
||||||
|
$ $script down 5
|
||||||
|
EOF
|
||||||
|
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
set-brightness() {
|
||||||
|
local op
|
||||||
|
case $action in
|
||||||
|
'up') op='+' ;;
|
||||||
|
'down') op='-' ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
brightnessctl -n set "${value}%${op}" &> /dev/null
|
||||||
|
|
||||||
|
local level
|
||||||
|
level=$(brightnessctl -m | awk -F ',' '{print $4}')
|
||||||
|
|
||||||
|
notify-send "Brightness: $level" -h int:value:"$level" -i 'contrast' -r 2825
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
action=$1
|
||||||
|
value=${2:-$VALUE}
|
||||||
|
|
||||||
|
! ((value > 0)) && print-usage
|
||||||
|
|
||||||
|
case $action in
|
||||||
|
'up' | 'down') set-brightness ;;
|
||||||
|
*) print-usage ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
main "$@"
|
||||||
120
.config/waybar/scripts/bluetooth.sh
Executable file
120
.config/waybar/scripts/bluetooth.sh
Executable file
@ -0,0 +1,120 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# Scan, select, pair, and connect to Bluetooth devices
|
||||||
|
#
|
||||||
|
# Requirements:
|
||||||
|
# - bluetoothctl (bluez-utils)
|
||||||
|
# - fzf
|
||||||
|
# - notify-send (libnotify)
|
||||||
|
#
|
||||||
|
# Author: Jesse Mirabel <sejjymvm@gmail.com>
|
||||||
|
# Created: August 19, 2025
|
||||||
|
# License: MIT
|
||||||
|
|
||||||
|
RED='\033[1;31m'
|
||||||
|
RST='\033[0m'
|
||||||
|
|
||||||
|
TIMEOUT=10
|
||||||
|
|
||||||
|
get-device-list() {
|
||||||
|
bluetoothctl --timeout $TIMEOUT scan on > /dev/null &
|
||||||
|
|
||||||
|
local i num
|
||||||
|
for ((i = 1; i <= TIMEOUT; i++)); do
|
||||||
|
printf '\rScanning for devices... (%d/%d)' $i $TIMEOUT
|
||||||
|
printf '\n%bPress [q] to stop%b\n\n' "$RED" "$RST"
|
||||||
|
|
||||||
|
num=$(bluetoothctl devices | grep -c Device)
|
||||||
|
|
||||||
|
printf '\rDevices: %s' "$num"
|
||||||
|
printf '\033[3A' # move cursor up 3 lines
|
||||||
|
|
||||||
|
read -rs -n 1 -t 1
|
||||||
|
[[ $REPLY == [Qq] ]] && break
|
||||||
|
done
|
||||||
|
|
||||||
|
printf '\n%bScanning stopped.%b\n\n' "$RED" "$RST"
|
||||||
|
|
||||||
|
list=$(bluetoothctl devices | grep Device | cut -d ' ' -f 2-)
|
||||||
|
|
||||||
|
if [[ -z $list ]]; then
|
||||||
|
notify-send 'Bluetooth' 'No devices found' -i 'package-broken'
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
select-device() {
|
||||||
|
local header
|
||||||
|
header=$(printf '%-17s %s' 'Address' 'Name')
|
||||||
|
|
||||||
|
# shellcheck disable=SC1090
|
||||||
|
. ~/.config/waybar/scripts/fzf-colors.sh 2> /dev/null
|
||||||
|
|
||||||
|
local opts=(
|
||||||
|
--border=sharp
|
||||||
|
--border-label=' Bluetooth Devices '
|
||||||
|
--ghost='Search'
|
||||||
|
--header="$header"
|
||||||
|
--height=~100%
|
||||||
|
--highlight-line
|
||||||
|
--info=inline-right
|
||||||
|
--pointer=
|
||||||
|
--reverse
|
||||||
|
"${COLORS[@]}"
|
||||||
|
)
|
||||||
|
|
||||||
|
address=$(fzf "${opts[@]}" <<< "$list" | awk '{print $1}')
|
||||||
|
|
||||||
|
[[ -z $address ]] && return 1
|
||||||
|
|
||||||
|
local connected
|
||||||
|
connected=$(bluetoothctl info "$address" | grep Connected |
|
||||||
|
awk '{print $2}')
|
||||||
|
|
||||||
|
if [[ $connected == 'yes' ]]; then
|
||||||
|
notify-send 'Bluetooth' 'Already connected to this device' \
|
||||||
|
-i 'package-install'
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pair-and-connect() {
|
||||||
|
local paired
|
||||||
|
paired=$(bluetoothctl info "$address" | grep Paired | awk '{print $2}')
|
||||||
|
|
||||||
|
if [[ $paired == 'no' ]]; then
|
||||||
|
printf 'Pairing...'
|
||||||
|
|
||||||
|
if ! timeout $TIMEOUT bluetoothctl pair "$address" > /dev/null; then
|
||||||
|
notify-send 'Bluetooth' 'Failed to pair' -i 'package-purge'
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf '\nConnecting...'
|
||||||
|
|
||||||
|
if timeout $TIMEOUT bluetoothctl connect "$address" > /dev/null; then
|
||||||
|
notify-send 'Bluetooth' 'Successfully connected' -i 'package-install'
|
||||||
|
else
|
||||||
|
notify-send 'Bluetooth' 'Failed to connect' -i 'package-purge'
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
local status
|
||||||
|
status=$(bluetoothctl show | grep PowerState | awk '{print $2}')
|
||||||
|
|
||||||
|
if [[ $status == 'off' ]]; then
|
||||||
|
bluetoothctl power on > /dev/null
|
||||||
|
notify-send 'Bluetooth On' -i 'network-bluetooth-activated' -r 1925
|
||||||
|
fi
|
||||||
|
|
||||||
|
tput civis # make cursor invisible
|
||||||
|
get-device-list || exit 1
|
||||||
|
tput cnorm # make cursor visible
|
||||||
|
|
||||||
|
select-device || exit 1
|
||||||
|
pair-and-connect || exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
main
|
||||||
82
.config/waybar/scripts/fzf-colors.sh
Executable file
82
.config/waybar/scripts/fzf-colors.sh
Executable file
@ -0,0 +1,82 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# NOTE:
|
||||||
|
# The names, maps, and COLORS arrays are all parallel:
|
||||||
|
# - names[i]: the color name as defined in theme.css
|
||||||
|
# - maps[i]: variable to store the hex value
|
||||||
|
# - COLORS: color config passed to fzf
|
||||||
|
#
|
||||||
|
# Add themes by defining the names array in def-colors().
|
||||||
|
|
||||||
|
FILE="$XDG_CONFIG_HOME/waybar/theme.css"
|
||||||
|
|
||||||
|
def-colors() {
|
||||||
|
local theme
|
||||||
|
theme=$(sed 1q "$FILE")
|
||||||
|
|
||||||
|
declare -ga names
|
||||||
|
|
||||||
|
# Add themes here:
|
||||||
|
if [[ $theme == *"catppuccin"* ]]; then
|
||||||
|
names=(
|
||||||
|
'surface0' 'base' 'rosewater'
|
||||||
|
'red' 'text' 'red'
|
||||||
|
'mauve' 'rosewater' 'lavender'
|
||||||
|
'text' 'mauve' 'red'
|
||||||
|
'surface1' 'overlay0' 'text'
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
get-hex() {
|
||||||
|
local defs
|
||||||
|
defs=$(sed -n '3,28p' "$FILE")
|
||||||
|
|
||||||
|
local n hex
|
||||||
|
declare -gA colors
|
||||||
|
|
||||||
|
for n in "${names[@]}"; do
|
||||||
|
read -r _ _ hex < <(grep " $n " <<< "$defs")
|
||||||
|
hex=${hex%;}
|
||||||
|
|
||||||
|
colors[$n]=$hex
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
map-colors() {
|
||||||
|
local -a maps=(
|
||||||
|
'_cur_bg' '_bg' '_spinner'
|
||||||
|
'_hl' '_fg' '_header'
|
||||||
|
'_info' '_pointer' '_marker'
|
||||||
|
'_cur_fg' '_prompt' '_cur_hl'
|
||||||
|
'_sel_bg' '_border' '_label'
|
||||||
|
)
|
||||||
|
|
||||||
|
local n
|
||||||
|
local i=0
|
||||||
|
|
||||||
|
for n in "${names[@]}"; do
|
||||||
|
declare -g "${maps[i]}"="${colors[$n]}"
|
||||||
|
((i++))
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
def-colors
|
||||||
|
get-hex
|
||||||
|
map-colors
|
||||||
|
|
||||||
|
# shellcheck disable=SC2154
|
||||||
|
# These variables are defined dynamically
|
||||||
|
declare -ga COLORS=(
|
||||||
|
"--color= bg+:$_cur_bg, bg:$_bg, spinner:$_spinner"
|
||||||
|
"--color= hl:$_hl, fg:$_fg, header:$_header"
|
||||||
|
"--color= info:$_info, pointer:$_pointer, marker:$_marker"
|
||||||
|
"--color= fg+:$_cur_fg, prompt:$_prompt, hl+:$_cur_hl"
|
||||||
|
"--color=selected-bg:$_sel_bg, border:$_border, label:$_label"
|
||||||
|
)
|
||||||
|
|
||||||
|
export COLORS
|
||||||
|
}
|
||||||
|
|
||||||
|
main
|
||||||
99
.config/waybar/scripts/network.sh
Executable file
99
.config/waybar/scripts/network.sh
Executable file
@ -0,0 +1,99 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# Scan, select, and connect to Wi-Fi networks
|
||||||
|
#
|
||||||
|
# Requirements:
|
||||||
|
# - nmcli (networkmanager)
|
||||||
|
# - fzf
|
||||||
|
# - notify-send (libnotify)
|
||||||
|
#
|
||||||
|
# Author: Jesse Mirabel <sejjymvm@gmail.com>
|
||||||
|
# Created: August 11, 2025
|
||||||
|
# License: MIT
|
||||||
|
|
||||||
|
RED='\033[1;31m'
|
||||||
|
RST='\033[0m'
|
||||||
|
|
||||||
|
TIMEOUT=5
|
||||||
|
|
||||||
|
get-network-list() {
|
||||||
|
nmcli device wifi rescan 2> /dev/null
|
||||||
|
|
||||||
|
local i
|
||||||
|
for ((i = 1; i <= TIMEOUT; i++)); do
|
||||||
|
printf '\rScanning for networks... (%d/%d)' $i $TIMEOUT
|
||||||
|
printf '\033[1A' # move cursor up 1 line
|
||||||
|
|
||||||
|
list=$(timeout 1 nmcli device wifi list)
|
||||||
|
networks=$(tail -n +2 <<< "$list" | awk '$2 != "--"')
|
||||||
|
|
||||||
|
[[ -n $networks ]] && break
|
||||||
|
done
|
||||||
|
|
||||||
|
printf '\n%bScanning stopped.%b\n\n' "$RED" "$RST"
|
||||||
|
|
||||||
|
if [[ -z $networks ]]; then
|
||||||
|
notify-send 'Wi-Fi' 'No networks found' -i 'package-broken'
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
select-network() {
|
||||||
|
local header
|
||||||
|
header=$(head -n 1 <<< "$list")
|
||||||
|
|
||||||
|
# shellcheck disable=SC1090
|
||||||
|
. ~/.config/waybar/scripts/fzf-colors.sh 2> /dev/null
|
||||||
|
|
||||||
|
local opts=(
|
||||||
|
--border=sharp
|
||||||
|
--border-label=' Wi-Fi Networks '
|
||||||
|
--ghost='Search'
|
||||||
|
--header="$header"
|
||||||
|
--height=~100%
|
||||||
|
--highlight-line
|
||||||
|
--info=inline-right
|
||||||
|
--pointer=
|
||||||
|
--reverse
|
||||||
|
"${COLORS[@]}"
|
||||||
|
)
|
||||||
|
|
||||||
|
bssid=$(fzf "${opts[@]}" <<< "$networks" | awk '{print $1}')
|
||||||
|
|
||||||
|
if [[ -z $bssid ]]; then
|
||||||
|
return 1
|
||||||
|
elif [[ $bssid == '*' ]]; then
|
||||||
|
notify-send 'Wi-Fi' 'Already connected to this network' \
|
||||||
|
-i 'package-install'
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
connect-to-network() {
|
||||||
|
printf 'Connecting...\n'
|
||||||
|
|
||||||
|
if nmcli --ask device wifi connect "$bssid"; then
|
||||||
|
notify-send 'Wi-Fi' 'Successfully connected' -i 'package-install'
|
||||||
|
else
|
||||||
|
notify-send 'Wi-Fi' 'Failed to connect' -i 'package-purge'
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
local status
|
||||||
|
status=$(nmcli radio wifi)
|
||||||
|
|
||||||
|
if [[ $status == 'disabled' ]]; then
|
||||||
|
nmcli radio wifi on
|
||||||
|
notify-send 'Wi-Fi Enabled' -i 'network-wireless-on' -r 1125
|
||||||
|
fi
|
||||||
|
|
||||||
|
tput civis # make cursor invisible
|
||||||
|
get-network-list || exit 1
|
||||||
|
tput cnorm # make cursor visible
|
||||||
|
|
||||||
|
select-network || exit 1
|
||||||
|
connect-to-network
|
||||||
|
}
|
||||||
|
|
||||||
|
main
|
||||||
49
.config/waybar/scripts/power-menu.sh
Executable file
49
.config/waybar/scripts/power-menu.sh
Executable file
@ -0,0 +1,49 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# Display a power menu to perform system actions
|
||||||
|
#
|
||||||
|
# Requirements:
|
||||||
|
# - fzf
|
||||||
|
#
|
||||||
|
# Author: Jesse Mirabel <sejjymvm@gmail.com>
|
||||||
|
# Created: August 19, 2025
|
||||||
|
# License: MIT
|
||||||
|
|
||||||
|
LIST=(
|
||||||
|
'Lock'
|
||||||
|
'Shutdown'
|
||||||
|
'Reboot'
|
||||||
|
'Logout'
|
||||||
|
'Hibernate'
|
||||||
|
'Suspend'
|
||||||
|
)
|
||||||
|
|
||||||
|
main() {
|
||||||
|
# shellcheck disable=SC1090
|
||||||
|
. ~/.config/waybar/scripts/fzf-colors.sh 2> /dev/null
|
||||||
|
|
||||||
|
local opts=(
|
||||||
|
--border=sharp
|
||||||
|
--border-label=' Power Menu '
|
||||||
|
--height=~100%
|
||||||
|
--highlight-line
|
||||||
|
--no-input
|
||||||
|
--pointer=
|
||||||
|
--reverse
|
||||||
|
"${COLORS[@]}"
|
||||||
|
)
|
||||||
|
|
||||||
|
local selected
|
||||||
|
selected=$(printf '%s\n' "${LIST[@]}" | fzf "${opts[@]}")
|
||||||
|
|
||||||
|
case $selected in
|
||||||
|
'Lock') loginctl lock-session ;;
|
||||||
|
'Shutdown') systemctl poweroff ;;
|
||||||
|
'Reboot') systemctl reboot ;;
|
||||||
|
'Logout') loginctl terminate-session "$XDG_SESSION_ID" ;;
|
||||||
|
'Hibernate') systemctl hibernate ;;
|
||||||
|
'Suspend') systemctl suspend ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
main
|
||||||
82
.config/waybar/scripts/system-update.sh
Executable file
82
.config/waybar/scripts/system-update.sh
Executable file
@ -0,0 +1,82 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# Check for available updates and optionally upgrade packages on Arch Linux.
|
||||||
|
#
|
||||||
|
# Requirements:
|
||||||
|
# - checkupdates (pacman-contrib)
|
||||||
|
# - notify-send (libnotify)
|
||||||
|
# - optional: an AUR helper (aura, paru, pikaur, trizen, yay)
|
||||||
|
#
|
||||||
|
# Author: Jesse Mirabel <sejjymvm@gmail.com>
|
||||||
|
# Created: August 16, 2025
|
||||||
|
# License: MIT
|
||||||
|
|
||||||
|
GRN='\033[1;32m'
|
||||||
|
BLU='\033[1;34m'
|
||||||
|
RST='\033[0m'
|
||||||
|
|
||||||
|
TIMEOUT=5
|
||||||
|
|
||||||
|
check-updates() {
|
||||||
|
repo=$(timeout $TIMEOUT checkupdates 2> /dev/null | wc -l)
|
||||||
|
|
||||||
|
if [[ -n $helper ]]; then
|
||||||
|
aur=$(timeout $TIMEOUT "$helper" -Quaq 2> /dev/null | wc -l)
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
update-packages() {
|
||||||
|
printf '\n%bUpdating pacman packages...%b\n' "$BLU" "$RST"
|
||||||
|
sudo pacman -Syu
|
||||||
|
|
||||||
|
printf '\n%bUpdating AUR packages...%b\n' "$BLU" "$RST"
|
||||||
|
"$helper" -Syu
|
||||||
|
|
||||||
|
# use signal to update the module
|
||||||
|
pkill -RTMIN+1 waybar
|
||||||
|
|
||||||
|
notify-send 'Update Complete' -i 'package-install'
|
||||||
|
printf '\n%bUpdate Complete!%b\n' "$GRN" "$RST"
|
||||||
|
read -rs -n 1 -p 'Press any key to exit...'
|
||||||
|
}
|
||||||
|
|
||||||
|
display-module() {
|
||||||
|
local tooltip="Official: $repo"
|
||||||
|
|
||||||
|
if [[ -n $helper ]]; then
|
||||||
|
tooltip+="\nAUR($helper): $aur"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local total=$((repo + aur))
|
||||||
|
|
||||||
|
if ((total == 0)); then
|
||||||
|
echo "{ \"text\": \"\", \"tooltip\": \"No updates available\" }"
|
||||||
|
else
|
||||||
|
echo "{ \"text\": \"\", \"tooltip\": \"$tooltip\" }"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
local arg=$1
|
||||||
|
local helpers=(aura paru pikaur trizen yay)
|
||||||
|
local bin
|
||||||
|
|
||||||
|
bin=$(command -v "${helpers[@]}" | head -n 1)
|
||||||
|
helper=${bin##*/}
|
||||||
|
repo=0
|
||||||
|
aur=0
|
||||||
|
|
||||||
|
case $arg in
|
||||||
|
'module')
|
||||||
|
check-updates
|
||||||
|
display-module
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
printf '%bChecking for updates...%b' "$BLU" "$RST"
|
||||||
|
check-updates
|
||||||
|
update-packages
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
main "$@"
|
||||||
159
.config/waybar/scripts/volume.sh
Executable file
159
.config/waybar/scripts/volume.sh
Executable file
@ -0,0 +1,159 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# Adjust default device volume and send a notification with the current level
|
||||||
|
#
|
||||||
|
# Requirements:
|
||||||
|
# - pactl (libpulse)
|
||||||
|
# - notify-send (libnotify)
|
||||||
|
#
|
||||||
|
# Author: Jesse Mirabel <sejjymvm@gmail.com>
|
||||||
|
# Created: September 07, 2025
|
||||||
|
# License: MIT
|
||||||
|
|
||||||
|
VALUE=1
|
||||||
|
MIN=0
|
||||||
|
MAX=100
|
||||||
|
ID=2425
|
||||||
|
|
||||||
|
print-usage() {
|
||||||
|
local script=${0##*/}
|
||||||
|
|
||||||
|
cat <<- EOF
|
||||||
|
USAGE: $script [OPTIONS]
|
||||||
|
|
||||||
|
Adjust default device volume and send a notification with the current level
|
||||||
|
|
||||||
|
OPTIONS:
|
||||||
|
input Set device as '@DEFAULT_SOURCE@'
|
||||||
|
output Set device as '@DEFAULT_SINK@'
|
||||||
|
|
||||||
|
mute Toggle device mute
|
||||||
|
|
||||||
|
raise <value> Raise volume by <value>
|
||||||
|
lower <value> Lower volume by <value>
|
||||||
|
Default value: $VALUE
|
||||||
|
|
||||||
|
EXAMPLES:
|
||||||
|
Toggle microphone mute:
|
||||||
|
$ $script input mute
|
||||||
|
|
||||||
|
Raise speaker volume:
|
||||||
|
$ $script output raise
|
||||||
|
|
||||||
|
Lower speaker volume by 5:
|
||||||
|
$ $script output lower 5
|
||||||
|
EOF
|
||||||
|
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
check-muted() {
|
||||||
|
local muted
|
||||||
|
muted=$(pactl "get-$dev_mute" "$dev" | awk '{print $2}')
|
||||||
|
|
||||||
|
local state
|
||||||
|
case $muted in
|
||||||
|
'yes') state='Muted' ;;
|
||||||
|
'no') state='Unmuted' ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo "$state"
|
||||||
|
}
|
||||||
|
|
||||||
|
get-volume() {
|
||||||
|
local vol
|
||||||
|
vol=$(pactl "get-$dev_vol" "$dev" | awk '{print $5}' | tr -d '%')
|
||||||
|
|
||||||
|
echo "$vol"
|
||||||
|
}
|
||||||
|
|
||||||
|
get-icon() {
|
||||||
|
local state vol
|
||||||
|
state=$(check-muted)
|
||||||
|
vol=$(get-volume)
|
||||||
|
|
||||||
|
local icon
|
||||||
|
local new_vol=${1:-$vol}
|
||||||
|
|
||||||
|
if [[ $state == 'Muted' ]]; then
|
||||||
|
icon="$dev_icon-muted"
|
||||||
|
else
|
||||||
|
if ((new_vol < ((MAX * 33) / 100))); then
|
||||||
|
icon="$dev_icon-low"
|
||||||
|
elif ((new_vol < ((MAX * 66) / 100))); then
|
||||||
|
icon="$dev_icon-medium"
|
||||||
|
else
|
||||||
|
icon="$dev_icon-high"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$icon"
|
||||||
|
}
|
||||||
|
|
||||||
|
toggle-mute() {
|
||||||
|
pactl "set-$dev_mute" "$dev" toggle
|
||||||
|
|
||||||
|
local state icon
|
||||||
|
state=$(check-muted)
|
||||||
|
icon=$(get-icon)
|
||||||
|
|
||||||
|
notify-send "$title: $state" -i "$icon" -r $ID
|
||||||
|
}
|
||||||
|
|
||||||
|
set-volume() {
|
||||||
|
local vol
|
||||||
|
vol=$(get-volume)
|
||||||
|
|
||||||
|
local new_vol
|
||||||
|
case $action in
|
||||||
|
'raise')
|
||||||
|
new_vol=$((vol + value))
|
||||||
|
((new_vol > MAX)) && new_vol=$MAX
|
||||||
|
;;
|
||||||
|
'lower')
|
||||||
|
new_vol=$((vol - value))
|
||||||
|
((new_vol < MIN)) && new_vol=$MIN
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
pactl "set-$dev_vol" "$dev" "${new_vol}%"
|
||||||
|
|
||||||
|
local icon
|
||||||
|
icon=$(get-icon "$new_vol")
|
||||||
|
|
||||||
|
notify-send "$title: ${new_vol}%" -h int:value:$new_vol -i "$icon" -r $ID
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
device=$1
|
||||||
|
action=$2
|
||||||
|
value=${3:-$VALUE}
|
||||||
|
|
||||||
|
! ((value > 0)) && print-usage
|
||||||
|
|
||||||
|
case $device in
|
||||||
|
'input')
|
||||||
|
dev='@DEFAULT_SOURCE@'
|
||||||
|
dev_mute='source-mute'
|
||||||
|
dev_vol='source-volume'
|
||||||
|
dev_icon='mic-volume'
|
||||||
|
title='Microphone'
|
||||||
|
;;
|
||||||
|
'output')
|
||||||
|
dev='@DEFAULT_SINK@'
|
||||||
|
dev_mute='sink-mute'
|
||||||
|
dev_vol='sink-volume'
|
||||||
|
dev_icon='audio-volume'
|
||||||
|
title='Volume'
|
||||||
|
;;
|
||||||
|
*) print-usage ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
case $action in
|
||||||
|
'mute') toggle-mute ;;
|
||||||
|
'raise' | 'lower') set-volume ;;
|
||||||
|
*) print-usage ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
main "$@"
|
||||||
12
.config/waybar/style.css
Normal file
12
.config/waybar/style.css
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
/* ignore GTK theme */
|
||||||
|
* {
|
||||||
|
all: initial;
|
||||||
|
}
|
||||||
|
|
||||||
|
@import "theme.css";
|
||||||
|
@import "styles/fonts.css";
|
||||||
|
@import "styles/global.css";
|
||||||
|
@import "styles/modules-center.css";
|
||||||
|
@import "styles/modules-left.css";
|
||||||
|
@import "styles/modules-right.css";
|
||||||
|
@import "styles/states.css";
|
||||||
BIN
.config/waybar/styles/.fonts.css.swp
Normal file
BIN
.config/waybar/styles/.fonts.css.swp
Normal file
Binary file not shown.
BIN
.config/waybar/styles/.modules-left.css.swp
Normal file
BIN
.config/waybar/styles/.modules-left.css.swp
Normal file
Binary file not shown.
29
.config/waybar/styles/fonts.css
Normal file
29
.config/waybar/styles/fonts.css
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
* {
|
||||||
|
font-family: "Ubuntu Nerd Font", "0xProto Nerd Font", sans-serif;
|
||||||
|
/* font-family: "Inter"; */
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-user,
|
||||||
|
#window label,
|
||||||
|
#mpris,
|
||||||
|
tooltip label {
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.active label,
|
||||||
|
#custom-distro {
|
||||||
|
font-size: 22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-power_menu {
|
||||||
|
font-size: 19px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-left_div,
|
||||||
|
#custom-left_inv,
|
||||||
|
#custom-right_div,
|
||||||
|
#custom-right_inv {
|
||||||
|
font-size: 22px;
|
||||||
|
}
|
||||||
38
.config/waybar/styles/global.css
Normal file
38
.config/waybar/styles/global.css
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
* {
|
||||||
|
color: @main-fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
#waybar {
|
||||||
|
background-color: @outline;
|
||||||
|
}
|
||||||
|
#waybar > box {
|
||||||
|
margin: 0px;
|
||||||
|
background-color: @main-bg;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
border-radius: 16px;
|
||||||
|
min-width: 16px;
|
||||||
|
padding: 0 10px;
|
||||||
|
}
|
||||||
|
button:hover {
|
||||||
|
background-color: @hover-bg;
|
||||||
|
color: @hover-fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip {
|
||||||
|
border: 2px solid @main-br;
|
||||||
|
border-radius: 10px;
|
||||||
|
background-color: @main-bg;
|
||||||
|
}
|
||||||
|
tooltip > box {
|
||||||
|
padding: 0 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.module,
|
||||||
|
#custom-left_div,
|
||||||
|
#custom-left_inv,
|
||||||
|
#custom-right_div,
|
||||||
|
#custom-right_inv {
|
||||||
|
margin-bottom: -1px;
|
||||||
|
}
|
||||||
119
.config/waybar/styles/modules-center.css
Normal file
119
.config/waybar/styles/modules-center.css
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
/*------------------
|
||||||
|
window count
|
||||||
|
------------------*/
|
||||||
|
|
||||||
|
#windowcount {
|
||||||
|
margin-right: 12px;
|
||||||
|
}
|
||||||
|
#windowcount label {
|
||||||
|
color: @hover-fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-----------------
|
||||||
|
temperature
|
||||||
|
-----------------*/
|
||||||
|
|
||||||
|
#custom-left_div.2 {
|
||||||
|
color: @temperature;
|
||||||
|
}
|
||||||
|
#temperature {
|
||||||
|
background-color: @temperature;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------
|
||||||
|
memory
|
||||||
|
------------*/
|
||||||
|
|
||||||
|
#custom-left_div.3 {
|
||||||
|
background-color: @temperature;
|
||||||
|
color: @memory;
|
||||||
|
}
|
||||||
|
#memory {
|
||||||
|
background-color: @memory;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------
|
||||||
|
cpu
|
||||||
|
---------*/
|
||||||
|
|
||||||
|
#custom-left_div.4 {
|
||||||
|
background-color: @memory;
|
||||||
|
color: @cpu;
|
||||||
|
}
|
||||||
|
#cpu {
|
||||||
|
background-color: @cpu;
|
||||||
|
}
|
||||||
|
#custom-left_inv.1 {
|
||||||
|
color: @cpu;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-----------------
|
||||||
|
distro icon
|
||||||
|
-----------------*/
|
||||||
|
|
||||||
|
#custom-left_div.5,
|
||||||
|
#custom-right_div.2 {
|
||||||
|
color: @accent;
|
||||||
|
}
|
||||||
|
#custom-distro {
|
||||||
|
padding: 0 10px 0 5px;
|
||||||
|
background-color: @accent;
|
||||||
|
color: @main-bg;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------
|
||||||
|
idle inhibitor
|
||||||
|
--------------------*/
|
||||||
|
|
||||||
|
#custom-right_inv.1 {
|
||||||
|
color: @time;
|
||||||
|
}
|
||||||
|
#idle_inhibitor {
|
||||||
|
background-color: @time;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*----------
|
||||||
|
time
|
||||||
|
----------*/
|
||||||
|
|
||||||
|
#clock.time {
|
||||||
|
padding-right: 6px;
|
||||||
|
background-color: @time;
|
||||||
|
}
|
||||||
|
#custom-right_div.3 {
|
||||||
|
background-color: @date;
|
||||||
|
color: @time;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*----------
|
||||||
|
date
|
||||||
|
----------*/
|
||||||
|
|
||||||
|
#clock.date {
|
||||||
|
padding-left: 6px;
|
||||||
|
background-color: @date;
|
||||||
|
}
|
||||||
|
#custom-right_div.4 {
|
||||||
|
background-color: @tray;
|
||||||
|
color: @date;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-----------------
|
||||||
|
system tray
|
||||||
|
-----------------*/
|
||||||
|
|
||||||
|
#network {
|
||||||
|
background-color: @tray;
|
||||||
|
padding: 0 6px 0 4px;
|
||||||
|
}
|
||||||
|
#bluetooth {
|
||||||
|
background-color: @tray;
|
||||||
|
padding: 0 5px;
|
||||||
|
}
|
||||||
|
#custom-system_update {
|
||||||
|
background-color: @tray;
|
||||||
|
padding: 0 8px 0 2px;
|
||||||
|
}
|
||||||
|
#custom-right_div.5 {
|
||||||
|
color: @tray;
|
||||||
|
}
|
||||||
38
.config/waybar/styles/modules-left.css
Normal file
38
.config/waybar/styles/modules-left.css
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
/*--------------
|
||||||
|
username
|
||||||
|
--------------*/
|
||||||
|
|
||||||
|
#custom-user {
|
||||||
|
padding-right: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*----------------
|
||||||
|
workspaces
|
||||||
|
----------------*/
|
||||||
|
|
||||||
|
#custom-left_div.1,
|
||||||
|
#custom-right_div.1 {
|
||||||
|
color: @workspaces;
|
||||||
|
}
|
||||||
|
#workspaces {
|
||||||
|
padding: 0 1px;
|
||||||
|
background-color: @workspaces;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
/*content: "c";*/
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------------
|
||||||
|
window title
|
||||||
|
------------------*/
|
||||||
|
|
||||||
|
#window {
|
||||||
|
margin-left: 12px;
|
||||||
|
margin-top: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#window label {
|
||||||
|
font-size: 14px;
|
||||||
|
color: #888;
|
||||||
|
}
|
||||||
59
.config/waybar/styles/modules-right.css
Normal file
59
.config/waybar/styles/modules-right.css
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
/*----------------
|
||||||
|
media info
|
||||||
|
----------------*/
|
||||||
|
|
||||||
|
#mpris {
|
||||||
|
padding: 0 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------
|
||||||
|
volume
|
||||||
|
------------*/
|
||||||
|
|
||||||
|
#custom-left_div.6 {
|
||||||
|
color: @volume;
|
||||||
|
}
|
||||||
|
#pulseaudio,
|
||||||
|
#wireplumber {
|
||||||
|
background-color: @volume;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*----------------
|
||||||
|
brightness
|
||||||
|
----------------*/
|
||||||
|
|
||||||
|
#custom-left_div.7 {
|
||||||
|
background-color: @volume;
|
||||||
|
color: @backlight;
|
||||||
|
}
|
||||||
|
#backlight {
|
||||||
|
background-color: @backlight;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-------------
|
||||||
|
battery
|
||||||
|
-------------*/
|
||||||
|
|
||||||
|
#custom-left_div.8 {
|
||||||
|
background-color: @backlight;
|
||||||
|
color: @battery;
|
||||||
|
}
|
||||||
|
#battery {
|
||||||
|
background-color: @battery;
|
||||||
|
}
|
||||||
|
#custom-left_inv.2 {
|
||||||
|
color: @battery;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*----------------
|
||||||
|
power menu
|
||||||
|
----------------*/
|
||||||
|
|
||||||
|
#custom-power_menu {
|
||||||
|
border-radius: 16px;
|
||||||
|
padding: 0 19px 0 16px;
|
||||||
|
color: @accent;
|
||||||
|
}
|
||||||
|
#custom-power_menu:hover {
|
||||||
|
background-color: @hover-bg;
|
||||||
|
}
|
||||||
37
.config/waybar/styles/states.css
Normal file
37
.config/waybar/styles/states.css
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#custom-trigger:hover,
|
||||||
|
#idle_inhibitor:hover,
|
||||||
|
#clock.date:hover,
|
||||||
|
#network:hover,
|
||||||
|
#bluetooth:hover,
|
||||||
|
#custom-system_update:hover,
|
||||||
|
#mpris:hover,
|
||||||
|
#pulseaudio:hover,
|
||||||
|
#wireplumber:hover {
|
||||||
|
color: @hover-fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* inactive state */
|
||||||
|
#idle_inhibitor.deactivated,
|
||||||
|
#mpris.paused,
|
||||||
|
#pulseaudio.output.muted,
|
||||||
|
#pulseaudio.input.source-muted,
|
||||||
|
#wireplumber.muted {
|
||||||
|
color: @hover-fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
#memory.warning,
|
||||||
|
#cpu.warning,
|
||||||
|
#battery.warning {
|
||||||
|
color: @warning;
|
||||||
|
}
|
||||||
|
|
||||||
|
#temperature.critical,
|
||||||
|
#memory.critical,
|
||||||
|
#cpu.critical,
|
||||||
|
#battery.critical {
|
||||||
|
color: @critical;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.charging {
|
||||||
|
color: @charging;
|
||||||
|
}
|
||||||
57
.config/waybar/theme.css
Normal file
57
.config/waybar/theme.css
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
/* catppuccin-mocha (modified to black-like palette) */
|
||||||
|
|
||||||
|
@define-color rosewater #e8d8d4;
|
||||||
|
@define-color flamingo #d9c4c4;
|
||||||
|
@define-color pink #e0bed0;
|
||||||
|
@define-color mauve #b8a0d8;
|
||||||
|
@define-color red #d07a95;
|
||||||
|
@define-color maroon #c18c97;
|
||||||
|
@define-color peach #d9a277;
|
||||||
|
@define-color yellow #d8c896;
|
||||||
|
@define-color green #90c18d;
|
||||||
|
@define-color teal #82c1b7;
|
||||||
|
@define-color sky #7abac9;
|
||||||
|
@define-color sapphire #6aa9c4;
|
||||||
|
@define-color blue #3a3a3a; /* replaced blue with dark grey */
|
||||||
|
@define-color lavender #5a5a5a; /* darker lavender */
|
||||||
|
@define-color text #d0d0d0;
|
||||||
|
@define-color subtext1 #b0b0b0;
|
||||||
|
@define-color subtext0 #9a9a9a;
|
||||||
|
@define-color overlay2 #858585;
|
||||||
|
@define-color overlay1 #707070;
|
||||||
|
@define-color overlay0 #5c5c5c;
|
||||||
|
@define-color surface2 #4a4a4a;
|
||||||
|
@define-color surface1 #3a3a3a;
|
||||||
|
@define-color surface0 #2a2a2a;
|
||||||
|
@define-color base #1a1a1a;
|
||||||
|
@define-color mantle #121212;
|
||||||
|
@define-color crust #0E0E0E;
|
||||||
|
|
||||||
|
/* main colors */
|
||||||
|
|
||||||
|
@define-color accent @lavender;
|
||||||
|
@define-color main-br @subtext0;
|
||||||
|
@define-color main-bg @crust; /* now #0E0E0E */
|
||||||
|
@define-color main-fg @text;
|
||||||
|
@define-color hover-bg @base;
|
||||||
|
@define-color hover-fg alpha(@main-fg, 0.75);
|
||||||
|
@define-color outline shade(@main-bg, 0.5);
|
||||||
|
|
||||||
|
/* module colors */
|
||||||
|
|
||||||
|
@define-color workspaces @mantle;
|
||||||
|
@define-color temperature @mantle;
|
||||||
|
@define-color memory @base;
|
||||||
|
@define-color cpu @surface0;
|
||||||
|
@define-color time @surface0;
|
||||||
|
@define-color date @base;
|
||||||
|
@define-color tray @mantle;
|
||||||
|
@define-color volume @mantle;
|
||||||
|
@define-color backlight @base;
|
||||||
|
@define-color battery @surface0;
|
||||||
|
|
||||||
|
/* state colors */
|
||||||
|
|
||||||
|
@define-color warning @yellow;
|
||||||
|
@define-color critical @red;
|
||||||
|
@define-color charging @green;
|
||||||
63
.config/waybar/themes/catppuccin-frappe.css
Normal file
63
.config/waybar/themes/catppuccin-frappe.css
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
/* catppuccin-frappe */
|
||||||
|
|
||||||
|
@define-color rosewater #f2d5cf;
|
||||||
|
@define-color flamingo #eebebe;
|
||||||
|
@define-color pink #f4b8e4;
|
||||||
|
@define-color mauve #ca9ee6;
|
||||||
|
@define-color red #e78284;
|
||||||
|
@define-color maroon #ea999c;
|
||||||
|
@define-color peach #ef9f76;
|
||||||
|
@define-color yellow #e5c890;
|
||||||
|
@define-color green #a6d189;
|
||||||
|
@define-color teal #81c8be;
|
||||||
|
@define-color sky #99d1db;
|
||||||
|
@define-color sapphire #85c1dc;
|
||||||
|
@define-color blue #8caaee;
|
||||||
|
@define-color lavender #babbf1;
|
||||||
|
@define-color text #c6d0f5;
|
||||||
|
@define-color subtext1 #b5bfe2;
|
||||||
|
@define-color subtext0 #a5adce;
|
||||||
|
@define-color overlay2 #949cbb;
|
||||||
|
@define-color overlay1 #838ba7;
|
||||||
|
@define-color overlay0 #737994;
|
||||||
|
@define-color surface2 #626880;
|
||||||
|
@define-color surface1 #51576d;
|
||||||
|
@define-color surface0 #414559;
|
||||||
|
@define-color base #303446;
|
||||||
|
@define-color mantle #292c3c;
|
||||||
|
@define-color crust #232634;
|
||||||
|
|
||||||
|
/*
|
||||||
|
br - border
|
||||||
|
bg - background
|
||||||
|
fg - foreground
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* main colors */
|
||||||
|
|
||||||
|
@define-color accent @lavender;
|
||||||
|
@define-color main-br @subtext0;
|
||||||
|
@define-color main-bg @crust;
|
||||||
|
@define-color main-fg @text;
|
||||||
|
@define-color hover-bg @base;
|
||||||
|
@define-color hover-fg alpha(@main-fg, 0.75);
|
||||||
|
@define-color outline shade(@main-bg, 0.5);
|
||||||
|
|
||||||
|
/* module colors */
|
||||||
|
|
||||||
|
@define-color workspaces @mantle;
|
||||||
|
@define-color temperature @mantle;
|
||||||
|
@define-color memory @base;
|
||||||
|
@define-color cpu @surface0;
|
||||||
|
@define-color time @surface0;
|
||||||
|
@define-color date @base;
|
||||||
|
@define-color tray @mantle;
|
||||||
|
@define-color volume @mantle;
|
||||||
|
@define-color backlight @base;
|
||||||
|
@define-color battery @surface0;
|
||||||
|
|
||||||
|
/* state colors */
|
||||||
|
|
||||||
|
@define-color warning @yellow;
|
||||||
|
@define-color critical @red;
|
||||||
|
@define-color charging @green;
|
||||||
63
.config/waybar/themes/catppuccin-latte.css
Normal file
63
.config/waybar/themes/catppuccin-latte.css
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
/* catppuccin-latte */
|
||||||
|
|
||||||
|
@define-color rosewater #dc8a78;
|
||||||
|
@define-color flamingo #dd7878;
|
||||||
|
@define-color pink #ea76cb;
|
||||||
|
@define-color mauve #8839ef;
|
||||||
|
@define-color red #d20f39;
|
||||||
|
@define-color maroon #e64553;
|
||||||
|
@define-color peach #fe640b;
|
||||||
|
@define-color yellow #df8e1d;
|
||||||
|
@define-color green #40a02b;
|
||||||
|
@define-color teal #179299;
|
||||||
|
@define-color sky #04a5e5;
|
||||||
|
@define-color sapphire #209fb5;
|
||||||
|
@define-color blue #1e66f5;
|
||||||
|
@define-color lavender #7287fd;
|
||||||
|
@define-color text #4c4f69;
|
||||||
|
@define-color subtext1 #5c5f77;
|
||||||
|
@define-color subtext0 #6c6f85;
|
||||||
|
@define-color overlay2 #7c7f93;
|
||||||
|
@define-color overlay1 #8c8fa1;
|
||||||
|
@define-color overlay0 #9ca0b0;
|
||||||
|
@define-color surface2 #acb0be;
|
||||||
|
@define-color surface1 #bcc0cc;
|
||||||
|
@define-color surface0 #ccd0da;
|
||||||
|
@define-color base #eff1f5;
|
||||||
|
@define-color mantle #e6e9ef;
|
||||||
|
@define-color crust #dce0e8;
|
||||||
|
|
||||||
|
/*
|
||||||
|
br - border
|
||||||
|
bg - background
|
||||||
|
fg - foreground
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* main colors */
|
||||||
|
|
||||||
|
@define-color accent @lavender;
|
||||||
|
@define-color main-br @subtext0;
|
||||||
|
@define-color main-bg @crust;
|
||||||
|
@define-color main-fg @text;
|
||||||
|
@define-color hover-bg @base;
|
||||||
|
@define-color hover-fg alpha(@main-fg, 0.75);
|
||||||
|
@define-color outline shade(@main-bg, 0.5);
|
||||||
|
|
||||||
|
/* module colors */
|
||||||
|
|
||||||
|
@define-color workspaces @mantle;
|
||||||
|
@define-color temperature @mantle;
|
||||||
|
@define-color memory @base;
|
||||||
|
@define-color cpu @surface0;
|
||||||
|
@define-color time @surface0;
|
||||||
|
@define-color date @base;
|
||||||
|
@define-color tray @mantle;
|
||||||
|
@define-color volume @mantle;
|
||||||
|
@define-color backlight @base;
|
||||||
|
@define-color battery @surface0;
|
||||||
|
|
||||||
|
/* state colors */
|
||||||
|
|
||||||
|
@define-color warning @yellow;
|
||||||
|
@define-color critical @red;
|
||||||
|
@define-color charging @green;
|
||||||
63
.config/waybar/themes/catppuccin-macchiato.css
Normal file
63
.config/waybar/themes/catppuccin-macchiato.css
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
/* catppuccin-macchiato */
|
||||||
|
|
||||||
|
@define-color rosewater #f4dbd6;
|
||||||
|
@define-color flamingo #f0c6c6;
|
||||||
|
@define-color pink #f5bde6;
|
||||||
|
@define-color mauve #c6a0f6;
|
||||||
|
@define-color red #ed8796;
|
||||||
|
@define-color maroon #ee99a0;
|
||||||
|
@define-color peach #f5a97f;
|
||||||
|
@define-color yellow #eed49f;
|
||||||
|
@define-color green #a6da95;
|
||||||
|
@define-color teal #8bd5ca;
|
||||||
|
@define-color sky #91d7e3;
|
||||||
|
@define-color sapphire #7dc4e4;
|
||||||
|
@define-color blue #8aadf4;
|
||||||
|
@define-color lavender #b7bdf8;
|
||||||
|
@define-color text #cad3f5;
|
||||||
|
@define-color subtext1 #b8c0e0;
|
||||||
|
@define-color subtext0 #a5adcb;
|
||||||
|
@define-color overlay2 #939ab7;
|
||||||
|
@define-color overlay1 #8087a2;
|
||||||
|
@define-color overlay0 #6e738d;
|
||||||
|
@define-color surface2 #5b6078;
|
||||||
|
@define-color surface1 #494d64;
|
||||||
|
@define-color surface0 #363a4f;
|
||||||
|
@define-color base #24273a;
|
||||||
|
@define-color mantle #1e2030;
|
||||||
|
@define-color crust #181926;
|
||||||
|
|
||||||
|
/*
|
||||||
|
br - border
|
||||||
|
bg - background
|
||||||
|
fg - foreground
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* main colors */
|
||||||
|
|
||||||
|
@define-color accent @lavender;
|
||||||
|
@define-color main-br @subtext0;
|
||||||
|
@define-color main-bg @crust;
|
||||||
|
@define-color main-fg @text;
|
||||||
|
@define-color hover-bg @base;
|
||||||
|
@define-color hover-fg alpha(@main-fg, 0.75);
|
||||||
|
@define-color outline shade(@main-bg, 0.5);
|
||||||
|
|
||||||
|
/* module colors */
|
||||||
|
|
||||||
|
@define-color workspaces @mantle;
|
||||||
|
@define-color temperature @mantle;
|
||||||
|
@define-color memory @base;
|
||||||
|
@define-color cpu @surface0;
|
||||||
|
@define-color time @surface0;
|
||||||
|
@define-color date @base;
|
||||||
|
@define-color tray @mantle;
|
||||||
|
@define-color volume @mantle;
|
||||||
|
@define-color backlight @base;
|
||||||
|
@define-color battery @surface0;
|
||||||
|
|
||||||
|
/* state colors */
|
||||||
|
|
||||||
|
@define-color warning @yellow;
|
||||||
|
@define-color critical @red;
|
||||||
|
@define-color charging @green;
|
||||||
63
.config/waybar/themes/catppuccin-mocha.css
Normal file
63
.config/waybar/themes/catppuccin-mocha.css
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
/* catppuccin-mocha */
|
||||||
|
|
||||||
|
@define-color rosewater #f5e0dc;
|
||||||
|
@define-color flamingo #f2cdcd;
|
||||||
|
@define-color pink #f5c2e7;
|
||||||
|
@define-color mauve #cba6f7;
|
||||||
|
@define-color red #f38ba8;
|
||||||
|
@define-color maroon #eba0ac;
|
||||||
|
@define-color peach #fab387;
|
||||||
|
@define-color yellow #f9e2af;
|
||||||
|
@define-color green #a6e3a1;
|
||||||
|
@define-color teal #94e2d5;
|
||||||
|
@define-color sky #89dceb;
|
||||||
|
@define-color sapphire #74c7ec;
|
||||||
|
@define-color blue #89b4fa;
|
||||||
|
@define-color lavender #b4befe;
|
||||||
|
@define-color text #cdd6f4;
|
||||||
|
@define-color subtext1 #bac2de;
|
||||||
|
@define-color subtext0 #a6adc8;
|
||||||
|
@define-color overlay2 #9399b2;
|
||||||
|
@define-color overlay1 #7f849c;
|
||||||
|
@define-color overlay0 #6c7086;
|
||||||
|
@define-color surface2 #585b70;
|
||||||
|
@define-color surface1 #45475a;
|
||||||
|
@define-color surface0 #313244;
|
||||||
|
@define-color base #1e1e2e;
|
||||||
|
@define-color mantle #181825;
|
||||||
|
@define-color crust #11111b;
|
||||||
|
|
||||||
|
/*
|
||||||
|
br - border
|
||||||
|
bg - background
|
||||||
|
fg - foreground
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* main colors */
|
||||||
|
|
||||||
|
@define-color accent @lavender;
|
||||||
|
@define-color main-br @subtext0;
|
||||||
|
@define-color main-bg @crust;
|
||||||
|
@define-color main-fg @text;
|
||||||
|
@define-color hover-bg @base;
|
||||||
|
@define-color hover-fg alpha(@main-fg, 0.75);
|
||||||
|
@define-color outline shade(@main-bg, 0.5);
|
||||||
|
|
||||||
|
/* module colors */
|
||||||
|
|
||||||
|
@define-color workspaces @mantle;
|
||||||
|
@define-color temperature @mantle;
|
||||||
|
@define-color memory @base;
|
||||||
|
@define-color cpu @surface0;
|
||||||
|
@define-color time @surface0;
|
||||||
|
@define-color date @base;
|
||||||
|
@define-color tray @mantle;
|
||||||
|
@define-color volume @mantle;
|
||||||
|
@define-color backlight @base;
|
||||||
|
@define-color battery @surface0;
|
||||||
|
|
||||||
|
/* state colors */
|
||||||
|
|
||||||
|
@define-color warning @yellow;
|
||||||
|
@define-color critical @red;
|
||||||
|
@define-color charging @green;
|
||||||
14
.gitignore
vendored
Normal file
14
.gitignore
vendored
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
.config/Code/
|
||||||
|
.config/systemd/
|
||||||
|
.config/session/
|
||||||
|
.config/pulse/
|
||||||
|
.config/pavucontrol.ini
|
||||||
|
.config/obsidian/
|
||||||
|
.config/ktrashrc
|
||||||
|
.config/kiorc
|
||||||
|
.config/kdeglobals
|
||||||
|
.config/go/
|
||||||
|
.config/dconf/user
|
||||||
|
.config/bluetuith/bluetuith.conf
|
||||||
|
.config/QtProject.conf
|
||||||
|
.gitignore.swp
|
||||||
@ -1,42 +1 @@
|
|||||||
# swaylock.conf
|
image = /home/landam/Pictures/wallpaper/green-plants.jpg
|
||||||
|
|
||||||
image = /home/landam/Pictures/wallpaper/macos-blue-waves.jpg
|
|
||||||
|
|
||||||
# General
|
|
||||||
indicator-idle-visible = true
|
|
||||||
indicator-radius = 120
|
|
||||||
indicator-thickness = 10
|
|
||||||
|
|
||||||
# Background
|
|
||||||
color = 181818
|
|
||||||
|
|
||||||
# Inside of the indicator (input ring)
|
|
||||||
inside-color = f8f9fa
|
|
||||||
inside-clear-color = f8f9fa
|
|
||||||
inside-ver-color = 88c0d0
|
|
||||||
inside-wrong-color = ebcb8b
|
|
||||||
|
|
||||||
# Line (border of indicator)
|
|
||||||
line-color = 2e3440
|
|
||||||
line-clear-color = 88c0d0
|
|
||||||
line-ver-color = 88c0d0
|
|
||||||
line-wrong-color = ebcb8b
|
|
||||||
|
|
||||||
# Ring (outer circle)
|
|
||||||
ring-color = d8dee9
|
|
||||||
ring-clear-color = 88c0d0
|
|
||||||
ring-ver-color = 88c0d0
|
|
||||||
ring-wrong-color = ebcb8b
|
|
||||||
|
|
||||||
# Separator (between line & ring)
|
|
||||||
separator-color = 2e3440
|
|
||||||
|
|
||||||
# Text
|
|
||||||
text-color = 2e3440
|
|
||||||
text-clear-color = 88c0d0
|
|
||||||
text-ver-color = 88c0d0
|
|
||||||
text-wrong-color = ebcb8b
|
|
||||||
|
|
||||||
# Indicator background (behind the circle)
|
|
||||||
key-hl-color = 88c0d0
|
|
||||||
bs-hl-color = ebcb8b
|
|
||||||
|
|||||||
24
.swaylock/configg
Normal file
24
.swaylock/configg
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
image = /home/landam/Pictures/wallpaper/green-plants.jpg
|
||||||
|
indicator-idle-visible = true
|
||||||
|
indicator-radius = 120
|
||||||
|
indicator-thickness = 10
|
||||||
|
color = 181818
|
||||||
|
inside-color = f8f9fa
|
||||||
|
inside-clear-color = f8f9fa
|
||||||
|
inside-ver-color = 88c0d0
|
||||||
|
inside-wrong-color = ebcb8b
|
||||||
|
line-color = 2e3440
|
||||||
|
line-clear-color = 88c0d0
|
||||||
|
line-ver-color = 88c0d0
|
||||||
|
line-wrong-color = ebcb8b
|
||||||
|
ring-color = d8dee9
|
||||||
|
ring-clear-color = 88c0d0
|
||||||
|
ring-ver-color = 88c0d0
|
||||||
|
ring-wrong-color = ebcb8b
|
||||||
|
separator-color = 2e3440
|
||||||
|
text-color = 2e3440
|
||||||
|
text-clear-color = 88c0d0
|
||||||
|
text-ver-color = 88c0d0
|
||||||
|
text-wrong-color = ebcb8b
|
||||||
|
key-hl-color = 88c0d0
|
||||||
|
bs-hl-color = ebcb8b
|
||||||
Reference in New Issue
Block a user