Updated
This commit is contained in:
parent
af24d26691
commit
8730f0fe83
11 changed files with 65 additions and 2013 deletions
|
@ -36,13 +36,10 @@ export XDG_SESSION_TYPE=X11
|
||||||
# GTK & cursor stuff
|
# GTK & cursor stuff
|
||||||
export XCURSOR_PATH="$XDG_DATA_HOME/icons/"
|
export XCURSOR_PATH="$XDG_DATA_HOME/icons/"
|
||||||
export XCURSOR_THEME="Simp1e-Gruvbox-Dark"
|
export XCURSOR_THEME="Simp1e-Gruvbox-Dark"
|
||||||
export GTK_THEME="Gruvbox-Dark-BL"
|
export GTK_THEME="Gruvbox-Dark-BL-LB"
|
||||||
export GTK_ICON_THEME="Papirus-Dark"
|
export GTK_ICON_THEME="Papirus-Dark"
|
||||||
|
|
||||||
# initialize dbus
|
export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gcr/ssh"
|
||||||
dbus-update-activation-environment --systemd DISPLAY XDG_CURRENT_DESKTOP
|
|
||||||
dbus-update-activation-environment --systemd --all
|
|
||||||
systemctl --user import-environment DISPLAY XDG_CURRENT_DESKTOP
|
|
||||||
|
|
||||||
# initialize dwm
|
# initialize dwm
|
||||||
dwm
|
exec dwm
|
||||||
|
|
|
@ -1,68 +0,0 @@
|
||||||
{
|
|
||||||
"browse_category_filter": "^F",
|
|
||||||
"browse_playlists_delete": "KEY_DC",
|
|
||||||
"browse_playlists_new": "M-n",
|
|
||||||
"browse_playlists_rename": "M-r",
|
|
||||||
"browse_playlists_save": "M-s",
|
|
||||||
"context_menu": "M-enter",
|
|
||||||
"hotkeys_backup": "M-b",
|
|
||||||
"hotkeys_reset_to_default": "M-r",
|
|
||||||
"key_down": "j",
|
|
||||||
"key_end": "KEY_END",
|
|
||||||
"key_home": "KEY_HOME",
|
|
||||||
"key_left": "h",
|
|
||||||
"key_page_down": "KEY_NPAGE",
|
|
||||||
"key_page_up": "KEY_PPAGE",
|
|
||||||
"key_right": "l",
|
|
||||||
"key_up": "k",
|
|
||||||
"lyrics_retry": "r",
|
|
||||||
"metadata_rescan": "^R",
|
|
||||||
"navigate_console": "`",
|
|
||||||
"navigate_hotkeys": "?",
|
|
||||||
"navigate_jump_to_playing": "x",
|
|
||||||
"navigate_library": "a",
|
|
||||||
"navigate_library_album_artists": "4",
|
|
||||||
"navigate_library_browse": "b",
|
|
||||||
"navigate_library_browse_albums": "2",
|
|
||||||
"navigate_library_browse_artists": "1",
|
|
||||||
"navigate_library_browse_directories": "d",
|
|
||||||
"navigate_library_browse_genres": "3",
|
|
||||||
"navigate_library_choose_category": "6",
|
|
||||||
"navigate_library_filter": "f",
|
|
||||||
"navigate_library_play_queue": "n",
|
|
||||||
"navigate_library_playlists": "5",
|
|
||||||
"navigate_library_tracks": "t",
|
|
||||||
"navigate_lyrics": "^L",
|
|
||||||
"navigate_settings": "s",
|
|
||||||
"play_queue_clear": "X",
|
|
||||||
"play_queue_delete": "KEY_DC",
|
|
||||||
"play_queue_hot_swap": "M-a",
|
|
||||||
"play_queue_move_down": "M-down",
|
|
||||||
"play_queue_move_up": "M-up",
|
|
||||||
"play_queue_playlist_delete": "M-x",
|
|
||||||
"play_queue_playlist_load": "M-l",
|
|
||||||
"play_queue_playlist_rename": "M-r",
|
|
||||||
"play_queue_playlist_save": "M-s",
|
|
||||||
"playback_next": "M-l",
|
|
||||||
"playback_previous": "M-j",
|
|
||||||
"playback_seek_back": "u",
|
|
||||||
"playback_seek_back_proportional": "y",
|
|
||||||
"playback_seek_forward": "o",
|
|
||||||
"playback_seek_forward_proportional": "p",
|
|
||||||
"playback_stop": "^X",
|
|
||||||
"playback_toggle_mute": "m",
|
|
||||||
"playback_toggle_pause": "^P",
|
|
||||||
"playback_toggle_repeat": ".",
|
|
||||||
"playback_toggle_shuffle": ",",
|
|
||||||
"playback_volume_down": "M-k",
|
|
||||||
"playback_volume_up": "M-i",
|
|
||||||
"search_input_toggle_match_type": "M-m",
|
|
||||||
"show_equalizer": "^E",
|
|
||||||
"toggle_visualizer": "v",
|
|
||||||
"track_list_change_sort_order": "M-s",
|
|
||||||
"track_list_next_group": "]",
|
|
||||||
"track_list_play_from_top": "M-P",
|
|
||||||
"track_list_previous_group": "[",
|
|
||||||
"track_list_rate_track": "r",
|
|
||||||
"view_refresh": "KEY_F(5)"
|
|
||||||
}
|
|
|
@ -1,113 +0,0 @@
|
||||||
print_info() {
|
|
||||||
prin " "
|
|
||||||
prin "┌─────────\n Hardware Information \n─────────┐"
|
|
||||||
info " " model
|
|
||||||
info " " cpu
|
|
||||||
info " " gpu
|
|
||||||
info " " memory
|
|
||||||
info " " uptime
|
|
||||||
prin "├─────────\n Software Information \n─────────┤"
|
|
||||||
info " " distro
|
|
||||||
info " " kernel
|
|
||||||
info " " packages
|
|
||||||
info " " de
|
|
||||||
info " " shell
|
|
||||||
info " " theme
|
|
||||||
info " " icons
|
|
||||||
info " " song
|
|
||||||
# [[ "$player" ]] && prin "Music Player" "$player"
|
|
||||||
# info " " local_ip
|
|
||||||
# info " " public_ip
|
|
||||||
# info " " locale # This only works on glibc systems.
|
|
||||||
prin "└───────────────────────────────────────┘"
|
|
||||||
info cols
|
|
||||||
prin "\n \n \n \n \n ${cl3} \n \n ${cl5} \n \n ${cl2} \n \n ${cl6} \n \n ${cl4} \n \n ${cl1} \n \n ${cl7} \n \n ${cl0}"
|
|
||||||
}
|
|
||||||
|
|
||||||
kernel_shorthand="on"
|
|
||||||
distro_shorthand="off"
|
|
||||||
os_arch="off"
|
|
||||||
uptime_shorthand="on"
|
|
||||||
memory_percent="on"
|
|
||||||
package_managers="on"
|
|
||||||
shell_path="off"
|
|
||||||
shell_version="on"
|
|
||||||
speed_type="bios_limit"
|
|
||||||
speed_shorthand="on"
|
|
||||||
cpu_brand="off"
|
|
||||||
cpu_speed="off"
|
|
||||||
cpu_cores="logical"
|
|
||||||
cpu_temp="off"
|
|
||||||
gpu_brand="off"
|
|
||||||
gpu_type="all"
|
|
||||||
refresh_rate="on"
|
|
||||||
gtk_shorthand="on"
|
|
||||||
gtk2="on"
|
|
||||||
gtk3="on"
|
|
||||||
public_ip_host="http://ident.me"
|
|
||||||
public_ip_timeout=2
|
|
||||||
disk_show=('/')
|
|
||||||
music_player="cmus"
|
|
||||||
song_format="%artist% - %title%"
|
|
||||||
song_shorthand="off"
|
|
||||||
colors=(distro)
|
|
||||||
bold="on"
|
|
||||||
underline_enabled="on"
|
|
||||||
underline_char="-"
|
|
||||||
separator=" "
|
|
||||||
color_blocks="off"
|
|
||||||
block_range=(0 15) # Colorblocks
|
|
||||||
|
|
||||||
# Colors for custom colorblocks
|
|
||||||
magenta="\033[1;35m"
|
|
||||||
green="\033[1;32m"
|
|
||||||
white="\033[1;37m"
|
|
||||||
blue="\033[1;34m"
|
|
||||||
red="\033[1;31m"
|
|
||||||
black="\033[1;40;30m"
|
|
||||||
yellow="\033[1;33m"
|
|
||||||
cyan="\033[1;36m"
|
|
||||||
reset="\033[0m"
|
|
||||||
bgyellow="\033[1;43;33m"
|
|
||||||
bgwhite="\033[1;47;37m"
|
|
||||||
cl0="${reset}"
|
|
||||||
cl1="${magenta}"
|
|
||||||
cl2="${green}"
|
|
||||||
cl3="${white}"
|
|
||||||
cl4="${blue}"
|
|
||||||
cl5="${red}"
|
|
||||||
cl6="${yellow}"
|
|
||||||
cl7="${cyan}"
|
|
||||||
cl8="${black}"
|
|
||||||
cl9="${bgyellow}"
|
|
||||||
cl10="${bgwhite}"
|
|
||||||
|
|
||||||
block_width=4
|
|
||||||
block_height=1
|
|
||||||
|
|
||||||
bar_char_elapsed="-"
|
|
||||||
bar_char_total="="
|
|
||||||
bar_border="on"
|
|
||||||
bar_length=15
|
|
||||||
bar_color_elapsed="distro"
|
|
||||||
bar_color_total="distro"
|
|
||||||
|
|
||||||
cpu_display="on"
|
|
||||||
memory_display="on"
|
|
||||||
battery_display="on"
|
|
||||||
disk_display="on"
|
|
||||||
|
|
||||||
aascii_distro="void-small"
|
|
||||||
ascii_colors=(distro)
|
|
||||||
ascii_bold="on"
|
|
||||||
|
|
||||||
thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch"
|
|
||||||
crop_mode="normal"
|
|
||||||
crop_offset="center"
|
|
||||||
|
|
||||||
gap=2
|
|
||||||
|
|
||||||
yoffset=0
|
|
||||||
xoffset=0
|
|
||||||
|
|
||||||
stdout="off"
|
|
|
@ -1,169 +0,0 @@
|
||||||
# PulseAudio config file for PipeWire version "1.0.4" #
|
|
||||||
#
|
|
||||||
# Copy and edit this file in /etc/pipewire for system-wide changes
|
|
||||||
# or in ~/.config/pipewire for local changes.
|
|
||||||
#
|
|
||||||
# It is also possible to place a file with an updated section in
|
|
||||||
# /etc/pipewire/pipewire-pulse.conf.d/ for system-wide changes or in
|
|
||||||
# ~/.config/pipewire/pipewire-pulse.conf.d/ for local changes.
|
|
||||||
#
|
|
||||||
|
|
||||||
context.properties = {
|
|
||||||
## Configure properties in the system.
|
|
||||||
#mem.warn-mlock = false
|
|
||||||
#mem.allow-mlock = true
|
|
||||||
#mem.mlock-all = false
|
|
||||||
#log.level = 2
|
|
||||||
|
|
||||||
#default.clock.quantum-limit = 8192
|
|
||||||
}
|
|
||||||
|
|
||||||
context.spa-libs = {
|
|
||||||
audio.convert.* = audioconvert/libspa-audioconvert
|
|
||||||
support.* = support/libspa-support
|
|
||||||
}
|
|
||||||
|
|
||||||
context.modules = [
|
|
||||||
{ name = libpipewire-module-rt
|
|
||||||
args = {
|
|
||||||
nice.level = -11
|
|
||||||
#rt.prio = 55
|
|
||||||
#rt.time.soft = -1
|
|
||||||
#rt.time.hard = -1
|
|
||||||
#uclamp.min = 0
|
|
||||||
#uclamp.max = 1024
|
|
||||||
}
|
|
||||||
flags = [ ifexists nofail ]
|
|
||||||
}
|
|
||||||
{ name = libpipewire-module-protocol-native }
|
|
||||||
{ name = libpipewire-module-client-node }
|
|
||||||
{ name = libpipewire-module-adapter }
|
|
||||||
{ name = libpipewire-module-metadata }
|
|
||||||
|
|
||||||
{ name = libpipewire-module-protocol-pulse
|
|
||||||
args = {
|
|
||||||
# contents of pulse.properties can also be placed here
|
|
||||||
# to have config per server.
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
# Extra scripts can be started here. Setup in default.pa can be moved in
|
|
||||||
# a script or in pulse.cmd below
|
|
||||||
context.exec = [
|
|
||||||
#{ path = "pactl" args = "load-module module-always-sink" }
|
|
||||||
#{ path = "pactl" args = "upload-sample my-sample.wav my-sample" }
|
|
||||||
#{ path = "/usr/bin/sh" args = "~/.config/pipewire/default.pw" }
|
|
||||||
]
|
|
||||||
|
|
||||||
# Extra commands can be executed here.
|
|
||||||
# load-module : loads a module with args and flags
|
|
||||||
# args = "<module-name> <module-args>"
|
|
||||||
# ( flags = [ nofail ] )
|
|
||||||
pulse.cmd = [
|
|
||||||
{ cmd = "load-module" args = "module-always-sink" flags = [ ] }
|
|
||||||
#{ cmd = "load-module" args = "module-switch-on-connect" }
|
|
||||||
#{ cmd = "load-module" args = "module-gsettings" flags = [ nofail ] }
|
|
||||||
]
|
|
||||||
|
|
||||||
stream.properties = {
|
|
||||||
#node.latency = 1024/48000
|
|
||||||
#node.autoconnect = true
|
|
||||||
#resample.quality = 4
|
|
||||||
#channelmix.normalize = false
|
|
||||||
#channelmix.mix-lfe = true
|
|
||||||
#channelmix.upmix = true
|
|
||||||
#channelmix.upmix-method = psd # none, simple
|
|
||||||
#channelmix.lfe-cutoff = 150
|
|
||||||
#channelmix.fc-cutoff = 12000
|
|
||||||
#channelmix.rear-delay = 12.0
|
|
||||||
#channelmix.stereo-widen = 0.0
|
|
||||||
#channelmix.hilbert-taps = 0
|
|
||||||
#dither.noise = 0
|
|
||||||
}
|
|
||||||
|
|
||||||
pulse.properties = {
|
|
||||||
# the addresses this server listens on
|
|
||||||
server.address = [
|
|
||||||
"unix:native"
|
|
||||||
#"unix:/tmp/something" # absolute paths may be used
|
|
||||||
#"tcp:4713" # IPv4 and IPv6 on all addresses
|
|
||||||
#"tcp:[::]:9999" # IPv6 on all addresses
|
|
||||||
#"tcp:127.0.0.1:8888" # IPv4 on a single address
|
|
||||||
#
|
|
||||||
#{ address = "tcp:4713" # address
|
|
||||||
# max-clients = 64 # maximum number of clients
|
|
||||||
# listen-backlog = 32 # backlog in the server listen queue
|
|
||||||
# client.access = "restricted" # permissions for clients
|
|
||||||
#}
|
|
||||||
]
|
|
||||||
#server.dbus-name = "org.pulseaudio.Server"
|
|
||||||
#pulse.min.req = 128/48000 # 2.7ms
|
|
||||||
#pulse.default.req = 960/48000 # 20 milliseconds
|
|
||||||
#pulse.min.frag = 128/48000 # 2.7ms
|
|
||||||
#pulse.default.frag = 96000/48000 # 2 seconds
|
|
||||||
#pulse.default.tlength = 96000/48000 # 2 seconds
|
|
||||||
#pulse.min.quantum = 128/48000 # 2.7ms
|
|
||||||
#pulse.idle.timeout = 0 # don't pause after underruns
|
|
||||||
#pulse.default.format = F32
|
|
||||||
#pulse.default.position = [ FL FR ]
|
|
||||||
# These overrides are only applied when running in a vm.
|
|
||||||
vm.overrides = {
|
|
||||||
pulse.min.quantum = 1024/48000 # 22ms
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# client/stream specific properties
|
|
||||||
pulse.rules = [
|
|
||||||
{
|
|
||||||
matches = [
|
|
||||||
{
|
|
||||||
# all keys must match the value. ! negates. ~ starts regex.
|
|
||||||
#client.name = "Firefox"
|
|
||||||
#application.process.binary = "teams"
|
|
||||||
#application.name = "~speech-dispatcher.*"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
actions = {
|
|
||||||
update-props = {
|
|
||||||
#node.latency = 512/48000
|
|
||||||
}
|
|
||||||
# Possible quirks:"
|
|
||||||
# force-s16-info forces sink and source info as S16 format
|
|
||||||
# remove-capture-dont-move removes the capture DONT_MOVE flag
|
|
||||||
# block-source-volume blocks updates to source volume
|
|
||||||
# block-sink-volume blocks updates to sink volume
|
|
||||||
#quirks = [ ]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
{
|
|
||||||
# skype does not want to use devices that don't have an S16 sample format.
|
|
||||||
matches = [
|
|
||||||
{ application.process.binary = "teams" }
|
|
||||||
{ application.process.binary = "teams-insiders" }
|
|
||||||
{ application.process.binary = "skypeforlinux" }
|
|
||||||
]
|
|
||||||
actions = { quirks = [ force-s16-info ] }
|
|
||||||
}
|
|
||||||
{
|
|
||||||
# firefox marks the capture streams as don't move and then they
|
|
||||||
# can't be moved with pavucontrol or other tools.
|
|
||||||
matches = [ { application.process.binary = "firefox" } ]
|
|
||||||
actions = { quirks = [ remove-capture-dont-move ] }
|
|
||||||
}
|
|
||||||
{
|
|
||||||
# speech dispatcher asks for too small latency and then underruns.
|
|
||||||
matches = [ { application.name = "~speech-dispatcher.*" } ]
|
|
||||||
actions = {
|
|
||||||
update-props = {
|
|
||||||
pulse.min.req = 512/48000 # 10.6ms
|
|
||||||
pulse.min.quantum = 512/48000 # 10.6ms
|
|
||||||
pulse.idle.timeout = 5 # pause after 5 seconds of underrun
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#{
|
|
||||||
# matches = [ { application.process.binary = "Discord" } ]
|
|
||||||
# actions = { quirks = [ block-source-volume ] }
|
|
||||||
#}
|
|
||||||
]
|
|
|
@ -1,320 +0,0 @@
|
||||||
# Daemon config file for PipeWire version "1.0.4" #
|
|
||||||
#
|
|
||||||
# Copy and edit this file in /etc/pipewire for system-wide changes
|
|
||||||
# or in ~/.config/pipewire for local changes.
|
|
||||||
#
|
|
||||||
# It is also possible to place a file with an updated section in
|
|
||||||
# /etc/pipewire/pipewire.conf.d/ for system-wide changes or in
|
|
||||||
# ~/.config/pipewire/pipewire.conf.d/ for local changes.
|
|
||||||
#
|
|
||||||
|
|
||||||
context.properties = {
|
|
||||||
## Configure properties in the system.
|
|
||||||
#library.name.system = support/libspa-support
|
|
||||||
#context.data-loop.library.name.system = support/libspa-support
|
|
||||||
#support.dbus = true
|
|
||||||
#link.max-buffers = 64
|
|
||||||
link.max-buffers = 16 # version < 3 clients can't handle more
|
|
||||||
#mem.warn-mlock = false
|
|
||||||
#mem.allow-mlock = true
|
|
||||||
#mem.mlock-all = false
|
|
||||||
#clock.power-of-two-quantum = true
|
|
||||||
#log.level = 2
|
|
||||||
#cpu.zero.denormals = false
|
|
||||||
|
|
||||||
core.daemon = true # listening for socket connections
|
|
||||||
core.name = pipewire-0 # core name and socket name
|
|
||||||
|
|
||||||
## Properties for the DSP configuration.
|
|
||||||
default.clock.rate = 48000
|
|
||||||
default.clock.allowed-rates = [ 44100, 48000, 88200, 96000 ]
|
|
||||||
#default.clock.quantum = 1024
|
|
||||||
#default.clock.min-quantum = 32
|
|
||||||
#default.clock.max-quantum = 2048
|
|
||||||
#default.clock.quantum-limit = 8192
|
|
||||||
#default.clock.quantum-floor = 4
|
|
||||||
#default.video.width = 640
|
|
||||||
#default.video.height = 480
|
|
||||||
#default.video.rate.num = 25
|
|
||||||
#default.video.rate.denom = 1
|
|
||||||
#
|
|
||||||
#settings.check-quantum = false
|
|
||||||
#settings.check-rate = false
|
|
||||||
#
|
|
||||||
# These overrides are only applied when running in a vm.
|
|
||||||
vm.overrides = {
|
|
||||||
default.clock.min-quantum = 1024
|
|
||||||
}
|
|
||||||
|
|
||||||
# keys checked below to disable module loading
|
|
||||||
module.x11.bell = true
|
|
||||||
# enables autoloading of access module, when disabled an alternative
|
|
||||||
# access module needs to be loaded.
|
|
||||||
module.access = true
|
|
||||||
# enables autoloading of module-jackdbus-detect
|
|
||||||
module.jackdbus-detect = true
|
|
||||||
}
|
|
||||||
|
|
||||||
context.spa-libs = {
|
|
||||||
#<factory-name regex> = <library-name>
|
|
||||||
#
|
|
||||||
# Used to find spa factory names. It maps an spa factory name
|
|
||||||
# regular expression to a library name that should contain
|
|
||||||
# that factory.
|
|
||||||
#
|
|
||||||
audio.convert.* = audioconvert/libspa-audioconvert
|
|
||||||
avb.* = avb/libspa-avb
|
|
||||||
api.alsa.* = alsa/libspa-alsa
|
|
||||||
api.v4l2.* = v4l2/libspa-v4l2
|
|
||||||
api.libcamera.* = libcamera/libspa-libcamera
|
|
||||||
api.bluez5.* = bluez5/libspa-bluez5
|
|
||||||
api.vulkan.* = vulkan/libspa-vulkan
|
|
||||||
api.jack.* = jack/libspa-jack
|
|
||||||
support.* = support/libspa-support
|
|
||||||
#videotestsrc = videotestsrc/libspa-videotestsrc
|
|
||||||
#audiotestsrc = audiotestsrc/libspa-audiotestsrc
|
|
||||||
}
|
|
||||||
|
|
||||||
context.modules = [
|
|
||||||
#{ name = <module-name>
|
|
||||||
# ( args = { <key> = <value> ... } )
|
|
||||||
# ( flags = [ ( ifexists ) ( nofail ) ] )
|
|
||||||
# ( condition = [ { <key> = <value> ... } ... ] )
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
# Loads a module with the given parameters.
|
|
||||||
# If ifexists is given, the module is ignored when it is not found.
|
|
||||||
# If nofail is given, module initialization failures are ignored.
|
|
||||||
# If condition is given, the module is loaded only when the context
|
|
||||||
# properties all match the match rules.
|
|
||||||
#
|
|
||||||
|
|
||||||
# Uses realtime scheduling to boost the audio thread priorities. This uses
|
|
||||||
# RTKit if the user doesn't have permission to use regular realtime
|
|
||||||
# scheduling. You can also clamp utilisation values to improve scheduling
|
|
||||||
# on embedded and heterogeneous systems, e.g. Arm big.LITTLE devices.
|
|
||||||
{ name = libpipewire-module-rt
|
|
||||||
args = {
|
|
||||||
nice.level = -11
|
|
||||||
rt.prio = 60
|
|
||||||
#rt.time.soft = -1
|
|
||||||
#rt.time.hard = -1
|
|
||||||
#uclamp.min = 0
|
|
||||||
#uclamp.max = 1024
|
|
||||||
}
|
|
||||||
flags = [ ifexists nofail ]
|
|
||||||
}
|
|
||||||
|
|
||||||
# The native communication protocol.
|
|
||||||
{ name = libpipewire-module-protocol-native
|
|
||||||
args = {
|
|
||||||
# List of server Unix sockets, and optionally permissions
|
|
||||||
#sockets = [ { name = "pipewire-0" }, { name = "pipewire-0-manager" } ]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# The profile module. Allows application to access profiler
|
|
||||||
# and performance data. It provides an interface that is used
|
|
||||||
# by pw-top and pw-profiler.
|
|
||||||
{ name = libpipewire-module-profiler }
|
|
||||||
|
|
||||||
# Allows applications to create metadata objects. It creates
|
|
||||||
# a factory for Metadata objects.
|
|
||||||
{ name = libpipewire-module-metadata }
|
|
||||||
|
|
||||||
# Creates a factory for making devices that run in the
|
|
||||||
# context of the PipeWire server.
|
|
||||||
{ name = libpipewire-module-spa-device-factory }
|
|
||||||
|
|
||||||
# Creates a factory for making nodes that run in the
|
|
||||||
# context of the PipeWire server.
|
|
||||||
{ name = libpipewire-module-spa-node-factory }
|
|
||||||
|
|
||||||
# Allows creating nodes that run in the context of the
|
|
||||||
# client. Is used by all clients that want to provide
|
|
||||||
# data to PipeWire.
|
|
||||||
{ name = libpipewire-module-client-node }
|
|
||||||
|
|
||||||
# Allows creating devices that run in the context of the
|
|
||||||
# client. Is used by the session manager.
|
|
||||||
{ name = libpipewire-module-client-device }
|
|
||||||
|
|
||||||
# The portal module monitors the PID of the portal process
|
|
||||||
# and tags connections with the same PID as portal
|
|
||||||
# connections.
|
|
||||||
{ name = libpipewire-module-portal
|
|
||||||
flags = [ ifexists nofail ]
|
|
||||||
}
|
|
||||||
|
|
||||||
# The access module can perform access checks and block
|
|
||||||
# new clients.
|
|
||||||
{ name = libpipewire-module-access
|
|
||||||
args = {
|
|
||||||
# Socket-specific access permissions
|
|
||||||
#access.socket = { pipewire-0 = "default", pipewire-0-manager = "unrestricted" }
|
|
||||||
|
|
||||||
# Deprecated legacy mode (not socket-based),
|
|
||||||
# for now enabled by default if access.socket is not specified
|
|
||||||
#access.legacy = true
|
|
||||||
}
|
|
||||||
condition = [ { module.access = true } ]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Makes a factory for wrapping nodes in an adapter with a
|
|
||||||
# converter and resampler.
|
|
||||||
{ name = libpipewire-module-adapter }
|
|
||||||
|
|
||||||
# Makes a factory for creating links between ports.
|
|
||||||
{ name = libpipewire-module-link-factory }
|
|
||||||
|
|
||||||
# Provides factories to make session manager objects.
|
|
||||||
{ name = libpipewire-module-session-manager }
|
|
||||||
|
|
||||||
# Use libcanberra to play X11 Bell
|
|
||||||
{ name = libpipewire-module-x11-bell
|
|
||||||
args = {
|
|
||||||
#sink.name = "@DEFAULT_SINK@"
|
|
||||||
#sample.name = "bell-window-system"
|
|
||||||
#x11.display = null
|
|
||||||
#x11.xauthority = null
|
|
||||||
}
|
|
||||||
flags = [ ifexists nofail ]
|
|
||||||
condition = [ { module.x11.bell = true } ]
|
|
||||||
}
|
|
||||||
{ name = libpipewire-module-jackdbus-detect
|
|
||||||
args = {
|
|
||||||
#jack.library = libjack.so.0
|
|
||||||
#jack.server = null
|
|
||||||
#jack.client-name = PipeWire
|
|
||||||
#jack.connect = true
|
|
||||||
#tunnel.mode = duplex # source|sink|duplex
|
|
||||||
source.props = {
|
|
||||||
#audio.channels = 2
|
|
||||||
#midi.ports = 1
|
|
||||||
#audio.position = [ FL FR ]
|
|
||||||
# extra sink properties
|
|
||||||
}
|
|
||||||
sink.props = {
|
|
||||||
#audio.channels = 2
|
|
||||||
#midi.ports = 1
|
|
||||||
#audio.position = [ FL FR ]
|
|
||||||
# extra sink properties
|
|
||||||
}
|
|
||||||
}
|
|
||||||
flags = [ ifexists nofail ]
|
|
||||||
condition = [ { module.jackdbus-detect = true } ]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
context.objects = [
|
|
||||||
#{ factory = <factory-name>
|
|
||||||
# ( args = { <key> = <value> ... } )
|
|
||||||
# ( flags = [ ( nofail ) ] )
|
|
||||||
# ( condition = [ { <key> = <value> ... } ... ] )
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
# Creates an object from a PipeWire factory with the given parameters.
|
|
||||||
# If nofail is given, errors are ignored (and no object is created).
|
|
||||||
# If condition is given, the object is created only when the context properties
|
|
||||||
# all match the match rules.
|
|
||||||
#
|
|
||||||
#{ factory = spa-node-factory args = { factory.name = videotestsrc node.name = videotestsrc node.description = videotestsrc "Spa:Pod:Object:Param:Props:patternType" = 1 } }
|
|
||||||
#{ factory = spa-device-factory args = { factory.name = api.jack.device foo=bar } flags = [ nofail ] }
|
|
||||||
#{ factory = spa-device-factory args = { factory.name = api.alsa.enum.udev } }
|
|
||||||
#{ factory = spa-node-factory args = { factory.name = api.alsa.seq.bridge node.name = Internal-MIDI-Bridge } }
|
|
||||||
#{ factory = adapter args = { factory.name = audiotestsrc node.name = my-test node.description = audiotestsrc } }
|
|
||||||
#{ factory = spa-node-factory args = { factory.name = api.vulkan.compute.source node.name = my-compute-source } }
|
|
||||||
|
|
||||||
# A default dummy driver. This handles nodes marked with the "node.always-process"
|
|
||||||
# property when no other driver is currently active. JACK clients need this.
|
|
||||||
{ factory = spa-node-factory
|
|
||||||
args = {
|
|
||||||
factory.name = support.node.driver
|
|
||||||
node.name = Dummy-Driver
|
|
||||||
node.group = pipewire.dummy
|
|
||||||
priority.driver = 20000
|
|
||||||
#clock.id = monotonic # realtime | tai | monotonic-raw | boottime
|
|
||||||
#clock.name = "clock.system.monotonic"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
{ factory = spa-node-factory
|
|
||||||
args = {
|
|
||||||
factory.name = support.node.driver
|
|
||||||
node.name = Freewheel-Driver
|
|
||||||
priority.driver = 19000
|
|
||||||
node.group = pipewire.freewheel
|
|
||||||
node.freewheel = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# This creates a new Source node. It will have input ports
|
|
||||||
# that you can link, to provide audio for this source.
|
|
||||||
#{ factory = adapter
|
|
||||||
# args = {
|
|
||||||
# factory.name = support.null-audio-sink
|
|
||||||
# node.name = "my-mic"
|
|
||||||
# node.description = "Microphone"
|
|
||||||
# media.class = "Audio/Source/Virtual"
|
|
||||||
# audio.position = "FL,FR"
|
|
||||||
# monitor.passthrough = true
|
|
||||||
# }
|
|
||||||
#}
|
|
||||||
|
|
||||||
# This creates a single PCM source device for the given
|
|
||||||
# alsa device path hw:0. You can change source to sink
|
|
||||||
# to make a sink in the same way.
|
|
||||||
#{ factory = adapter
|
|
||||||
# args = {
|
|
||||||
# factory.name = api.alsa.pcm.source
|
|
||||||
# node.name = "alsa-source"
|
|
||||||
# node.description = "PCM Source"
|
|
||||||
# media.class = "Audio/Source"
|
|
||||||
# api.alsa.path = "hw:0"
|
|
||||||
# api.alsa.period-size = 1024
|
|
||||||
# api.alsa.headroom = 0
|
|
||||||
# api.alsa.disable-mmap = false
|
|
||||||
# api.alsa.disable-batch = false
|
|
||||||
# audio.format = "S16LE"
|
|
||||||
# audio.rate = 48000
|
|
||||||
# audio.channels = 2
|
|
||||||
# audio.position = "FL,FR"
|
|
||||||
# }
|
|
||||||
#}
|
|
||||||
|
|
||||||
# Use the metadata factory to create metadata and some default values.
|
|
||||||
#{ factory = metadata
|
|
||||||
# args = {
|
|
||||||
# metadata.name = my-metadata
|
|
||||||
# metadata.values = [
|
|
||||||
# { key = default.audio.sink value = { name = somesink } }
|
|
||||||
# { key = default.audio.source value = { name = somesource } }
|
|
||||||
# ]
|
|
||||||
# }
|
|
||||||
#}
|
|
||||||
]
|
|
||||||
|
|
||||||
context.exec = [
|
|
||||||
#{ path = <program-name>
|
|
||||||
# ( args = "<arguments>" )
|
|
||||||
# ( condition = [ { <key> = <value> ... } ... ] )
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
# Execute the given program with arguments.
|
|
||||||
# If condition is given, the program is executed only when the context
|
|
||||||
# properties all match the match rules.
|
|
||||||
#
|
|
||||||
# You can optionally start the session manager here,
|
|
||||||
# but it is better to start it as a systemd service.
|
|
||||||
# Run the session manager with -h for options.
|
|
||||||
#
|
|
||||||
#{ path = "/usr/bin/pipewire-media-session" args = ""
|
|
||||||
# condition = [ { exec.session-manager = null } { exec.session-manager = true } ] }
|
|
||||||
#
|
|
||||||
# You can optionally start the pulseaudio-server here as well
|
|
||||||
# but it is better to start it as a systemd service.
|
|
||||||
# It can be interesting to start another daemon here that listens
|
|
||||||
# on another address with the -a option (eg. -a tcp:4713).
|
|
||||||
#
|
|
||||||
#{ path = "/usr/bin/pipewire" args = "-c pipewire-pulse.conf"
|
|
||||||
# condition = [ { exec.pipewire-pulse = null } { exec.pipewire-pulse = true } ] }
|
|
||||||
]
|
|
File diff suppressed because it is too large
Load diff
|
@ -11,9 +11,4 @@ sh "$HOME"/.fehbg &
|
||||||
unclutter --hide-on-touch &
|
unclutter --hide-on-touch &
|
||||||
herbed &
|
herbed &
|
||||||
picom &
|
picom &
|
||||||
|
dbus-update-activation-environment DISPLAY XAUTHORITY &
|
||||||
/usr/bin/gnome-keyring-daemon --start &
|
|
||||||
export SSH_AUTH_SOCK
|
|
||||||
export GPG_AGENT_INFO
|
|
||||||
export GNOME_KEYRING_CONTROL
|
|
||||||
export GNOME_KEYRING_PID
|
|
||||||
|
|
|
@ -36,7 +36,6 @@ static const unsigned int alphas[][3] = {
|
||||||
[SchemeSel] = {OPAQUE, baralpha, borderalpha},
|
[SchemeSel] = {OPAQUE, baralpha, borderalpha},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/* Scratchpad Definitions */
|
/* Scratchpad Definitions */
|
||||||
const char *spcmd1[] = {"st", "-n", "sptrm", "-c", "sptrm", "-g", "140x35", NULL};
|
const char *spcmd1[] = {"st", "-n", "sptrm", "-c", "sptrm", "-g", "140x35", NULL};
|
||||||
const char *spcmd2[] = {"st", "-n", "sptop", "-c", "sptop", "-g", "140x35", "-e", "btop", NULL};
|
const char *spcmd2[] = {"st", "-n", "sptop", "-c", "sptop", "-g", "140x35", "-e", "btop", NULL};
|
||||||
|
@ -45,13 +44,12 @@ const char *spcmd4[] = {"st", "-n", "spfli", "-c", "spfli", "-g", "140x35", "-e
|
||||||
const char *spcmd5[] = {"st", "-n", "spani", "-c", "spani", "-g", "140x35", "-e", "ani-cli", NULL};
|
const char *spcmd5[] = {"st", "-n", "spani", "-c", "spani", "-g", "140x35", "-e", "ani-cli", NULL};
|
||||||
const char *spcmd6[] = {"st", "-n", "spytf", "-c", "spytf", "-g", "140x35", "-e", "ytfzf", "-flst", NULL};
|
const char *spcmd6[] = {"st", "-n", "spytf", "-c", "spytf", "-g", "140x35", "-e", "ytfzf", "-flst", NULL};
|
||||||
const char *spcmd7[] = {"st", "-n", "spytm", "-c", "spytm", "-g", "140x35", "-e", "ytfzf", "-mlst", NULL};
|
const char *spcmd7[] = {"st", "-n", "spytm", "-c", "spytm", "-g", "140x35", "-e", "ytfzf", "-mlst", NULL};
|
||||||
const char *spcmd8[] = {"st", "-n", "spmsc", "-c", "spmsc", "-g", "140x35", "-e", "musikcube", NULL};
|
const char *spcmd8[] = {"st", "-n", "spmsc", "-c", "spmsc", "-g", "140x35", "-e", "cmus", NULL};
|
||||||
const char *spcmd9[] = {"st", "-n", "spflm", "-c", "spflm", "-g", "140x35", "-e", ".config/vifm/scripts/vifmrun", NULL};
|
const char *spcmd9[] = {"st", "-n", "spflm", "-c", "spflm", "-g", "140x35", "-e", ".config/vifm/scripts/vifmrun", NULL};
|
||||||
const char *spcmd10[] = {"st", "-n", "sprss", "-c", "sprss", "-g", "140x35", "-e", "newsboat", NULL};
|
const char *spcmd10[] = {"st", "-n", "sprss", "-c", "sprss", "-g", "140x35", "-e", "newsboat", NULL};
|
||||||
const char *spcmd11[] = {"st", "-n", "sptut", "-c", "sptut", "-g", "140x35", "-e", "tut", NULL};
|
const char *spcmd11[] = {"flatpak", "run", "com.bitwarden.desktop", NULL};
|
||||||
const char *spcmd12[] = {"flatpak", "run", "com.bitwarden.desktop", NULL};
|
const char *spcmd12[] = {"flatpak", "run", "qalculate-gtk", NULL};
|
||||||
const char *spcmd13[] = {"flatpak", "run", "io.github.Qalculate", NULL};
|
const char *spcmd13[] = {"lxrandr", NULL};
|
||||||
const char *spcmd14[] = {"arandr", NULL};
|
|
||||||
|
|
||||||
static Sp scratchpads[] = {
|
static Sp scratchpads[] = {
|
||||||
/* NAME CMD */
|
/* NAME CMD */
|
||||||
|
@ -65,10 +63,9 @@ static Sp scratchpads[] = {
|
||||||
{"spmsc", spcmd8},
|
{"spmsc", spcmd8},
|
||||||
{"spflm", spcmd9},
|
{"spflm", spcmd9},
|
||||||
{"sprss", spcmd10},
|
{"sprss", spcmd10},
|
||||||
{"sptut", spcmd11},
|
{"spbit", spcmd11},
|
||||||
{"spbit", spcmd12},
|
{"spqal", spcmd12},
|
||||||
{"spqal", spcmd13},
|
{"spdsp", spcmd13},
|
||||||
{"spdsp", spcmd14},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Tag Definitions */
|
/* Tag Definitions */
|
||||||
|
@ -195,10 +192,9 @@ static const Rule rules[] = {
|
||||||
{NULL, "spmsc", NULL, SPTAG(7), 1, -1},
|
{NULL, "spmsc", NULL, SPTAG(7), 1, -1},
|
||||||
{NULL, "spflm", NULL, SPTAG(8), 1, -1},
|
{NULL, "spflm", NULL, SPTAG(8), 1, -1},
|
||||||
{NULL, "sprss", NULL, SPTAG(9), 1, -1},
|
{NULL, "sprss", NULL, SPTAG(9), 1, -1},
|
||||||
{NULL, "sptut", NULL, SPTAG(10), 1, -1},
|
{"Bitwarden", NULL, NULL, SPTAG(10), 1, -1},
|
||||||
{"Bitwarden", NULL, NULL, SPTAG(11), 1, -1},
|
{"Qalculate-gtk", NULL, NULL, SPTAG(11), 1, -1},
|
||||||
{"Qalculate-gtk", NULL, NULL, SPTAG(12), 1, -1},
|
{"Lxrandr", NULL, NULL, SPTAG(12), 1, -1},
|
||||||
{"Arandr", NULL, NULL, SPTAG(13), 1, -1},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Layout(s) */
|
/* Layout(s) */
|
||||||
|
@ -233,14 +229,14 @@ static const Layout layouts[] = {
|
||||||
/* Main commands */
|
/* Main commands */
|
||||||
static const char *dmenucmd[] = { "dmenu_run", "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL };
|
static const char *dmenucmd[] = { "dmenu_run", "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL };
|
||||||
static const char *termcmd[] = { "st", NULL };
|
static const char *termcmd[] = { "st", NULL };
|
||||||
static const char *editor[] = { "st", "-n", "editor", "-c", "editor", "-e", ".local/bin/lvim", NULL};
|
static const char *editor[] = { "neovide", "--neovim-bin", ".local/bin/lvim", NULL};
|
||||||
static const char *browser[] = { "flatpak", "run", "org.mozilla.firefox", NULL };
|
static const char *browser[] = { "flatpak", "run", "com.brave.Browser", NULL };
|
||||||
static const char *chat[] = { "flatpak", "run", "org.signal.Signal", NULL };
|
static const char *chat[] = { "flatpak", "run", "org.signal.Signal", NULL };
|
||||||
static const char *vm[] = { "flatpak", "run", "org.gnome.Boxes", NULL };
|
static const char *vm[] = { "virt-manager", NULL };
|
||||||
static const char *office[] = { "flatpak", "run", "org.libreoffice.LibreOffice", NULL };
|
static const char *office[] = { "flatpak", "run", "org.libreoffice.LibreOffice", NULL };
|
||||||
static const char *videoeditor[] = { "flatpak", "run", "org.kde.kdenlive", NULL };
|
static const char *videoeditor[] = { "flatpak", "run", "org.kde.kdenlive", NULL };
|
||||||
static const char *imgeditor[] = { "flatpak", "run", "org.gimp.GIMP", NULL };
|
static const char *imageeditor[] = { "flatpak", "run", "org.gimp.GIMP", NULL };
|
||||||
static const char *handnote[] = { "flatpak", "run", "com.github.xournalpp.xournalpp", NULL };
|
static const char *audioeditor[] = { "flatpak", "run", "org.audacityteam.Audacity", NULL };
|
||||||
|
|
||||||
/* Keybindings */
|
/* Keybindings */
|
||||||
static Keychord *keychords[] = {
|
static Keychord *keychords[] = {
|
||||||
|
@ -259,14 +255,14 @@ static Keychord *keychords[] = {
|
||||||
&((Keychord){2, {{MODKEY, XK_p}, {0, XK_q}}, spawn, SHCMD("$HOME/.config/suckless/dmenu/scripts/dmenu_power") }), /* Launch power menu */
|
&((Keychord){2, {{MODKEY, XK_p}, {0, XK_q}}, spawn, SHCMD("$HOME/.config/suckless/dmenu/scripts/dmenu_power") }), /* Launch power menu */
|
||||||
|
|
||||||
/* Apps */
|
/* Apps */
|
||||||
&((Keychord){2, {{MODKEY, XK_a}, {0, XK_e}}, spawn, {.v = editor } }), /* Launch text editor (tag 1) */
|
&((Keychord){2, {{MODKEY, XK_a}, {0, XK_e}}, spawn, {.v = editor } }), /* Launch text editor (tag 1) */
|
||||||
&((Keychord){2, {{MODKEY, XK_a}, {0, XK_v}}, spawn, {.v = vm } }), /* Launch vm manager (tag 2) */
|
&((Keychord){2, {{MODKEY, XK_a}, {0, XK_v}}, spawn, {.v = vm } }), /* Launch vm manager (tag 2) */
|
||||||
&((Keychord){2, {{MODKEY, XK_a}, {0, XK_w}}, spawn, {.v = browser } }), /* Launch web browser (tag 3) */
|
&((Keychord){2, {{MODKEY, XK_a}, {0, XK_w}}, spawn, {.v = browser } }), /* Launch web browser (tag 3) */
|
||||||
&((Keychord){2, {{MODKEY, XK_a}, {0, XK_c}}, spawn, {.v = chat } }), /* Launch chat app (tag 4) */
|
&((Keychord){2, {{MODKEY, XK_a}, {0, XK_c}}, spawn, {.v = chat } }), /* Launch chat app (tag 4) */
|
||||||
&((Keychord){2, {{MODKEY, XK_a}, {0, XK_o}}, spawn, {.v = office } }), /* Launch office suite (tag 8) */
|
&((Keychord){2, {{MODKEY, XK_a}, {0, XK_a}}, spawn, {.v = audioeditor } }), /* Launch audio editor (tag 5) */
|
||||||
&((Keychord){2, {{MODKEY, XK_a}, {0, XK_k}}, spawn, {.v = videoeditor } }), /* Launch video editor (tag 6) */
|
&((Keychord){2, {{MODKEY, XK_a}, {0, XK_k}}, spawn, {.v = videoeditor } }), /* Launch video editor (tag 6) */
|
||||||
&((Keychord){2, {{MODKEY, XK_a}, {0, XK_i}}, spawn, {.v = imgeditor } }), /* Launch image editor (tag 7) */
|
&((Keychord){2, {{MODKEY, XK_a}, {0, XK_i}}, spawn, {.v = imageeditor } }), /* Launch image editor (tag 7) */
|
||||||
&((Keychord){2, {{MODKEY, XK_a}, {0, XK_x}}, spawn, {.v = handnote } }), /* Launch hand written notes app (tag 7) */
|
&((Keychord){2, {{MODKEY, XK_a}, {0, XK_o}}, spawn, {.v = office } }), /* Launch office suite (tag 8) */
|
||||||
|
|
||||||
/* Keyboard Layouts */
|
/* Keyboard Layouts */
|
||||||
&((Keychord){2, {{MODKEY, XK_x}, {0, XK_e}}, spawn, SHCMD("setxkbmap -layout es && pkill -RTMIN+10 dwmblocks") }), /* Switch to Spanish keyboard layout */
|
&((Keychord){2, {{MODKEY, XK_x}, {0, XK_e}}, spawn, SHCMD("setxkbmap -layout es && pkill -RTMIN+10 dwmblocks") }), /* Switch to Spanish keyboard layout */
|
||||||
|
@ -336,13 +332,12 @@ static Keychord *keychords[] = {
|
||||||
&((Keychord){2, {{MODKEY, XK_s}, {0, XK_a}}, togglescratch, {.ui = 4 } }), /* Toggle ani-cli scratchpad */
|
&((Keychord){2, {{MODKEY, XK_s}, {0, XK_a}}, togglescratch, {.ui = 4 } }), /* Toggle ani-cli scratchpad */
|
||||||
&((Keychord){2, {{MODKEY, XK_s}, {0, XK_y}}, togglescratch, {.ui = 5 } }), /* Toggle ytfzf scratchpad */
|
&((Keychord){2, {{MODKEY, XK_s}, {0, XK_y}}, togglescratch, {.ui = 5 } }), /* Toggle ytfzf scratchpad */
|
||||||
&((Keychord){2, {{MODKEY, XK_s}, {0, XK_n}}, togglescratch, {.ui = 6 } }), /* Toggle ytfzf (music) scratchpad */
|
&((Keychord){2, {{MODKEY, XK_s}, {0, XK_n}}, togglescratch, {.ui = 6 } }), /* Toggle ytfzf (music) scratchpad */
|
||||||
&((Keychord){2, {{MODKEY, XK_s}, {0, XK_m}}, togglescratch, {.ui = 7 } }), /* Toggle musikcube scratchpad */
|
&((Keychord){2, {{MODKEY, XK_s}, {0, XK_m}}, togglescratch, {.ui = 7 } }), /* Toggle cmus scratchpad */
|
||||||
&((Keychord){2, {{MODKEY, XK_s}, {0, XK_v}}, togglescratch, {.ui = 8 } }), /* Toggle vifm scratchpad */
|
&((Keychord){2, {{MODKEY, XK_s}, {0, XK_v}}, togglescratch, {.ui = 8 } }), /* Toggle vifm scratchpad */
|
||||||
&((Keychord){2, {{MODKEY, XK_s}, {0, XK_r}}, togglescratch, {.ui = 9 } }), /* Toggle newsboat scratchpad */
|
&((Keychord){2, {{MODKEY, XK_s}, {0, XK_r}}, togglescratch, {.ui = 9 } }), /* Toggle newsboat scratchpad */
|
||||||
&((Keychord){2, {{MODKEY, XK_s}, {0, XK_t}}, togglescratch, {.ui = 10 } }), /* Toggle tut scratchpad */
|
&((Keychord){2, {{MODKEY, XK_s}, {0, XK_k}}, togglescratch, {.ui = 10 } }), /* Toggle Bitwarden scratchpad */
|
||||||
&((Keychord){2, {{MODKEY, XK_s}, {0, XK_k}}, togglescratch, {.ui = 11 } }), /* Toggle Bitwarden scratchpad */
|
&((Keychord){2, {{MODKEY, XK_s}, {0, XK_c}}, togglescratch, {.ui = 11 } }), /* Toggle Qalculate scratchpad */
|
||||||
&((Keychord){2, {{MODKEY, XK_s}, {0, XK_c}}, togglescratch, {.ui = 12 } }), /* Toggle Qalculate scratchpad */
|
&((Keychord){2, {{MODKEY, XK_s}, {0, XK_d}}, togglescratch, {.ui = 12 } }), /* Toggle lxrandr scratchpad */
|
||||||
&((Keychord){2, {{MODKEY, XK_s}, {0, XK_d}}, togglescratch, {.ui = 13 } }), /* Toggle Arandr scratchpad */
|
|
||||||
|
|
||||||
/* Session Management */
|
/* Session Management */
|
||||||
&((Keychord){1, {{MODKEY|ControlMask|ShiftMask, XK_q}}, quit, {0} }),
|
&((Keychord){1, {{MODKEY|ControlMask|ShiftMask, XK_q}}, quit, {0} }),
|
||||||
|
|
|
@ -7,6 +7,6 @@ static const Block blocks[] = {
|
||||||
{"", "$HOME/.config/suckless/dwmblocks/scripts/block_brightness", 0, 10},
|
{"", "$HOME/.config/suckless/dwmblocks/scripts/block_brightness", 0, 10},
|
||||||
{"", "$HOME/.config/suckless/dwmblocks/scripts/block_volume", 0, 10},
|
{"", "$HOME/.config/suckless/dwmblocks/scripts/block_volume", 0, 10},
|
||||||
{"", "$HOME/.config/suckless/dwmblocks/scripts/block_clock", 60, 1},
|
{"", "$HOME/.config/suckless/dwmblocks/scripts/block_clock", 60, 1},
|
||||||
{"", "$HOME/.config/suckless/dwmblocks/scripts/block_wifi", 20, 1},
|
{"", "$HOME/.config/suckless/dwmblocks/scripts/block_wifi", 20, 1},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@ fi
|
||||||
for battery in /sys/class/power_supply/BAT?*; do
|
for battery in /sys/class/power_supply/BAT?*; do
|
||||||
# if non-first battery, print a space separator.
|
# if non-first battery, print a space separator.
|
||||||
[ -n "${capacity+x}" ] && printf " "
|
[ -n "${capacity+x}" ] && printf " "
|
||||||
|
percentage="$(cat "$battery/capacity" 2>&1)"
|
||||||
|
|
||||||
# sets up the status and capacity
|
# sets up the status and capacity
|
||||||
case "$(cat "$battery/status" 2>&1)" in
|
case "$(cat "$battery/status" 2>&1)" in
|
||||||
|
@ -25,8 +26,6 @@ for battery in /sys/class/power_supply/BAT?*; do
|
||||||
status=" "
|
status=" "
|
||||||
;;
|
;;
|
||||||
"Discharging")
|
"Discharging")
|
||||||
# this variable will store the percentage of remaining charge
|
|
||||||
percentage="$(cat "$battery/capacity" 2>&1)"
|
|
||||||
# updates the status icon based on the battery percentage
|
# updates the status icon based on the battery percentage
|
||||||
if [ "$percentage" -le 20 ]; then
|
if [ "$percentage" -le 20 ]; then
|
||||||
status=" "
|
status=" "
|
||||||
|
@ -49,8 +48,6 @@ for battery in /sys/class/power_supply/BAT?*; do
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
"Charging")
|
"Charging")
|
||||||
# this variable will store the percentage of remaining charge
|
|
||||||
percentage="$(cat "$battery/capacity" 2>&1)"
|
|
||||||
# updates the status icon based on the battery percentage while charging
|
# updates the status icon based on the battery percentage while charging
|
||||||
if [ "$percentage" -le 10 ]; then
|
if [ "$percentage" -le 10 ]; then
|
||||||
status=" "
|
status=" "
|
||||||
|
@ -75,7 +72,26 @@ for battery in /sys/class/power_supply/BAT?*; do
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
"Not charging")
|
"Not charging")
|
||||||
echo " " && exit 0 # just in case
|
# updates the status icon based on the battery percentage
|
||||||
|
if [ "$percentage" -le 20 ]; then
|
||||||
|
status=" "
|
||||||
|
elif [ "$percentage" -le 30 ]; then
|
||||||
|
status=" "
|
||||||
|
elif [ "$percentage" -le 40 ]; then
|
||||||
|
status=" "
|
||||||
|
elif [ "$percentage" -le 50 ]; then
|
||||||
|
status=" "
|
||||||
|
elif [ "$percentage" -le 60 ]; then
|
||||||
|
status=" "
|
||||||
|
elif [ "$percentage" -le 70 ]; then
|
||||||
|
status=" "
|
||||||
|
elif [ "$percentage" -le 80 ]; then
|
||||||
|
status=" "
|
||||||
|
elif [ "$percentage" -le 90 ]; then
|
||||||
|
status=" "
|
||||||
|
else
|
||||||
|
status=" "
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
"Unknown")
|
"Unknown")
|
||||||
echo " " && exit 0 # just in case
|
echo " " && exit 0 # just in case
|
||||||
|
@ -87,5 +103,5 @@ for battery in /sys/class/power_supply/BAT?*; do
|
||||||
[ "$status" = " " ] && [ "$percentage" -le 10 ] && warn=""
|
[ "$status" = " " ] && [ "$percentage" -le 10 ] && warn=""
|
||||||
|
|
||||||
# print everything
|
# print everything
|
||||||
printf "%s%s%d%%%s" "$status" "$warn " "$percentage" "$pwr"; unset warn
|
printf "%s%s%d%%" "$status" "$warn " "$percentage"; unset warn
|
||||||
done && printf "\\n"
|
done && printf "$pwr\\n"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# ***This script was made by Clay Gomera (Drake)***
|
# ***This script was made by Clay Gomera (Drake)***
|
||||||
# - Description: A dwmblocks script to print the wifi status
|
# - Description: A dwmblocks script to print the network status
|
||||||
# - Dependencies: dwm, dwmblocks, nmcli
|
# - Dependencies: dwm, dwmblocks, nmcli
|
||||||
|
|
||||||
#####
|
#####
|
||||||
|
@ -23,15 +23,17 @@ get_wifi_strength() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# this variable will store the current state of the connection (connected or
|
# Check Ethernet connection
|
||||||
# disconnected)
|
ethernet_state=$(nmcli dev | grep ethernet | awk '{print $3}')
|
||||||
constate=$(nmcli dev | grep wifi | sed 's/ \{2,\}/|/g' | cut -d '|' -f3 | head -1)
|
|
||||||
|
|
||||||
# this variable will store the name of the wifi network that the computer is
|
# Check Wi-Fi connection
|
||||||
# currently connected to
|
wifi_info=$(nmcli -t -f DEVICE,TYPE,STATE,CONNECTION dev | grep wifi)
|
||||||
currentwfi=$(nmcli dev | grep wifi | sed 's/ \{2,\}/|/g' | cut -d '|' -f4 | head -1)
|
constate=$(echo "$wifi_info" | awk -F: '{print $3}')
|
||||||
|
currentwfi=$(echo "$wifi_info" | awk -F: '{print $4}')
|
||||||
|
|
||||||
if [ "$constate" = "disconnected" ]; then # if the computer is disconnected
|
if [ "$ethernet_state" = "connected" ]; then
|
||||||
|
echo " Ethernet "
|
||||||
|
elif [ "$constate" = "disconnected" ]; then # if the computer is disconnected
|
||||||
echo " "
|
echo " "
|
||||||
elif [ "$constate" = "connected" ]; then # if it's connected
|
elif [ "$constate" = "connected" ]; then # if it's connected
|
||||||
strength=$(get_wifi_strength)
|
strength=$(get_wifi_strength)
|
||||||
|
|
Loading…
Reference in a new issue