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]
|
||||
normal = { family = "Iosevka Nerd Font", style = "Regular" }
|
||||
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
|
||||
set $term alacritty
|
||||
# Your preferred application launcher
|
||||
set $menu wmenu-run
|
||||
|
||||
set $gtk_theme Adwaita:dark
|
||||
set $icon_theme Papirus-Dark
|
||||
|
||||
# Also for apps launched outside GSettings
|
||||
# setenv GTK_THEME $gtk_theme
|
||||
set $menu walker
|
||||
|
||||
include /etc/sway/config-vars.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"
|
||||
|
||||
gaps inner 5
|
||||
gaps outer 1
|
||||
|
||||
### Output configuration
|
||||
#
|
||||
# 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
|
||||
|
||||
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
|
||||
#
|
||||
@ -58,7 +78,15 @@ output DP-2 mode 2560x1440@165.001Hz
|
||||
# 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 systemctl --user import-environment
|
||||
exec systemctl --user start xdg-desktop-portal
|
||||
exec systemctl --user start xdg-desktop-portal-wlr
|
||||
|
||||
exec swayosd-server
|
||||
exec wl-paste -t text --watch clipman store --no-persist
|
||||
exec elephant
|
||||
exec walker --gapplication-service
|
||||
exec swaync
|
||||
|
||||
### Input configuration
|
||||
#
|
||||
@ -98,6 +126,8 @@ input "type:keyboard" {
|
||||
|
||||
exec_always {
|
||||
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
|
||||
@ -128,6 +158,10 @@ exec_always {
|
||||
|
||||
# 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'
|
||||
|
||||
# Notifications
|
||||
bindsym $mod+Shift+n exec swaync-client -t -sw
|
||||
|
||||
#
|
||||
# Moving around:
|
||||
#
|
||||
@ -244,10 +278,12 @@ 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 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 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 XF86AudioNext exec playerctl next
|
||||
bindsym --locked XF86AudioPrev exec playerctl previous
|
||||
@ -258,20 +294,7 @@ bindsym $mod+r mode "resize"
|
||||
# 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
|
||||
}
|
||||
swaybar_command waybar
|
||||
}
|
||||
|
||||
|
||||
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 {
|
||||
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/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
|
||||
image = /home/landam/Pictures/wallpaper/green-plants.jpg
|
||||
|
||||
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