Compare commits
10 Commits
b0f485d51d
...
a44bab4040
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a44bab4040 | ||
|
|
9aa74fc5cc | ||
|
|
9a038c970d | ||
|
|
636423b8a6 | ||
|
|
758b1dca78 | ||
|
|
c8d671eaff | ||
|
|
f5cbaf2c30 | ||
|
|
108349b074 | ||
|
|
973fda02ae | ||
|
|
58d3a10ac4 |
@@ -4,10 +4,9 @@ export MOZ_ENABLE_WAYLAND=1
|
|||||||
export XDG_CONFIG_HOME=~/.config
|
export XDG_CONFIG_HOME=~/.config
|
||||||
export XDG_CACHE_HOME=~/.cache
|
export XDG_CACHE_HOME=~/.cache
|
||||||
export XDG_DATA_HOME=~/.local/share
|
export XDG_DATA_HOME=~/.local/share
|
||||||
export BROWSER=/usr/bin/firefox-esr
|
export BROWSER=/usr/bin/brave-browser
|
||||||
export VISUAL=vim
|
export VISUAL=vim
|
||||||
export EDITOR=vim
|
export EDITOR=vim
|
||||||
export QT_QPA_PLATFORMTHEME=qt5ct
|
export QT_QPA_PLATFORMTHEME=qt5ct
|
||||||
export DESKTOP_SESSION=sway
|
export DESKTOP_SESSION=sway
|
||||||
export XDG_CURRENT_DESKTOP=KDE
|
|
||||||
[ "$(tty)" = "/dev/tty1" ] && exec sway
|
[ "$(tty)" = "/dev/tty1" ] && exec sway
|
||||||
|
|||||||
166
.bashrc
166
.bashrc
@@ -1,5 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
iatest=$(expr index "$-" i)
|
|
||||||
|
|
||||||
#Source global definitions
|
#Source global definitions
|
||||||
if [ -f /etc/bashrc ]; then
|
if [ -f /etc/bashrc ]; then
|
||||||
@@ -35,13 +34,6 @@ PROMPT_COMMAND='history -a'
|
|||||||
# Allow ctrl-S for history navigation (with ctrl-R)
|
# Allow ctrl-S for history navigation (with ctrl-R)
|
||||||
stty -ixon
|
stty -ixon
|
||||||
|
|
||||||
# Ignore case on auto-completion
|
|
||||||
# Note: bind used instead of sticking these in .inputrc
|
|
||||||
if [[ $iatest > 0 ]]; then bind "set completion-ignore-case on"; fi
|
|
||||||
|
|
||||||
# Show auto-completion list automatically, without double tab
|
|
||||||
if [[ $iatest > 0 ]]; then bind "set show-all-if-ambiguous On"; fi
|
|
||||||
|
|
||||||
# Set the default editor
|
# Set the default editor
|
||||||
export EDITOR=vim
|
export EDITOR=vim
|
||||||
export VISUAL=vim
|
export VISUAL=vim
|
||||||
@@ -60,12 +52,14 @@ export LESS_TERMCAP_se=$'\E[0m'
|
|||||||
export LESS_TERMCAP_so=$'\E[01;44;33m'
|
export LESS_TERMCAP_so=$'\E[01;44;33m'
|
||||||
export LESS_TERMCAP_ue=$'\E[0m'
|
export LESS_TERMCAP_ue=$'\E[0m'
|
||||||
export LESS_TERMCAP_us=$'\E[01;32m'
|
export LESS_TERMCAP_us=$'\E[01;32m'
|
||||||
|
|
||||||
export LC_WHO=rorlando
|
export LC_WHO=rorlando
|
||||||
|
|
||||||
# Scripts Path
|
# Scripts Path
|
||||||
PATH=$PATH:~/code/scripts
|
PATH=$PATH:~/code/scripts
|
||||||
PATH=$PATH:~/.local/bin
|
PATH=$PATH:~/.local/bin
|
||||||
PATH=$PATH:~/bin
|
PATH=$PATH:~/bin
|
||||||
|
PATH=$PATH:/usr/local/go/bin
|
||||||
|
|
||||||
# Doom Path
|
# Doom Path
|
||||||
PATH=$PATH:~/.config/emacs/bin/
|
PATH=$PATH:~/.config/emacs/bin/
|
||||||
@@ -74,8 +68,22 @@ PATH=$PATH:~/.config/emacs/bin/
|
|||||||
PATH=$PATH:/var/lib/flatpak/exports/bin
|
PATH=$PATH:/var/lib/flatpak/exports/bin
|
||||||
PATH=$PATH:/var/lib/flatpak/app
|
PATH=$PATH:/var/lib/flatpak/app
|
||||||
|
|
||||||
# deadbeef path
|
|
||||||
PATH=$PATH:/opt/deadbeef/bin
|
#######################################################
|
||||||
|
# GOPASS
|
||||||
|
#######################################################
|
||||||
|
|
||||||
|
|
||||||
|
# Ensure gopass autocompletion is sourced
|
||||||
|
source <(gopass completion bash)
|
||||||
|
|
||||||
|
# Gopass aliases
|
||||||
|
alias gpi='gopass insert --multiline'
|
||||||
|
alias gpl='gopass ls'
|
||||||
|
alias gps='gopass show'
|
||||||
|
alias gpsclip='gopass show --clip'
|
||||||
|
alias gpe='gopass edit'
|
||||||
|
|
||||||
|
|
||||||
#######################################################
|
#######################################################
|
||||||
# ALIAS
|
# ALIAS
|
||||||
@@ -83,7 +91,7 @@ PATH=$PATH:/opt/deadbeef/bin
|
|||||||
# To temporarily bypass an alias, we preceed the command with a \
|
# To temporarily bypass an alias, we preceed the command with a \
|
||||||
# EG: the ls command is aliased, but to use the normal ls command you would type \ls
|
# EG: the ls command is aliased, but to use the normal ls command you would type \ls
|
||||||
|
|
||||||
# Pacman aliases
|
# Apt aliases
|
||||||
alias install='sudo apt install'
|
alias install='sudo apt install'
|
||||||
alias update='sudo apt update'
|
alias update='sudo apt update'
|
||||||
alias update='sudo apt upgrade'
|
alias update='sudo apt upgrade'
|
||||||
@@ -91,13 +99,6 @@ alias uu='sudo apt update && sudo apt upgrade'
|
|||||||
alias search='apt search'
|
alias search='apt search'
|
||||||
alias remove='sudo apt remove'
|
alias remove='sudo apt remove'
|
||||||
|
|
||||||
# Rsync push music to jellyfin
|
|
||||||
alias music_hd_to_cleric="rsync -r -e 'ssh -p 46668' --info=progress2 /run/media/opal/e1f36c5c-4775-4549-8edc-1fa4d273b82e/music cleric:/data/media/"
|
|
||||||
|
|
||||||
# Add an "alert" alias for long running commands. Use like so:
|
|
||||||
# sleep 10; alert
|
|
||||||
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
|
|
||||||
|
|
||||||
# alias to show the date
|
# alias to show the date
|
||||||
alias da='date "+%Y-%m-%d %A %T %Z"'
|
alias da='date "+%Y-%m-%d %A %T %Z"'
|
||||||
|
|
||||||
@@ -145,9 +146,6 @@ alias h="history | grep "
|
|||||||
# Search files in the current folder
|
# Search files in the current folder
|
||||||
alias f="find . | grep "
|
alias f="find . | grep "
|
||||||
|
|
||||||
# Count all files (recursively) in the current folder
|
|
||||||
alias countfiles="for t in files links directories; do echo \`find . -type \${t:0:1} | wc -l\` \$t; done 2> /dev/null"
|
|
||||||
|
|
||||||
# Show current network connections to the server
|
# Show current network connections to the server
|
||||||
alias ipview="netstat -anpl | grep :80 | awk {'print \$5'} | cut -d\":\" -f1 | sort | uniq -c | sort -n | sed -e 's/^ *//' -e 's/ *\$//'"
|
alias ipview="netstat -anpl | grep :80 | awk {'print \$5'} | cut -d\":\" -f1 | sort | uniq -c | sort -n | sed -e 's/^ *//' -e 's/ *\$//'"
|
||||||
|
|
||||||
@@ -170,19 +168,10 @@ alias untar='tar -xvf'
|
|||||||
alias unbz2='tar -xvjf'
|
alias unbz2='tar -xvjf'
|
||||||
alias ungz='tar -xvzf'
|
alias ungz='tar -xvzf'
|
||||||
|
|
||||||
# Show all logs in /var/log
|
|
||||||
alias logs="sudo find /var/log -type f -exec file {} \; | grep 'text' | cut -d' ' -f1 | sed -e's/:$//g' | grep -v '[0-9]$' | xargs tail -f"
|
|
||||||
|
|
||||||
# SHA1
|
|
||||||
alias sha1='openssl sha1'
|
|
||||||
|
|
||||||
# Wireguard
|
# Wireguard
|
||||||
alias wgup='sudo wg-quick up /etc/wireguard/wg0.conf'
|
alias wgup='sudo wg-quick up /etc/wireguard/wg0.conf'
|
||||||
alias wgdown='sudo wg-quick down /etc/wireguard/wg0.conf'
|
alias wgdown='sudo wg-quick down /etc/wireguard/wg0.conf'
|
||||||
|
|
||||||
# Hugo
|
|
||||||
alias hss='hugo server --noHTTPCache'
|
|
||||||
|
|
||||||
# Work
|
# Work
|
||||||
alias stork='ssh stork'
|
alias stork='ssh stork'
|
||||||
alias mail='ssh mail'
|
alias mail='ssh mail'
|
||||||
@@ -192,61 +181,11 @@ alias keys='eval $(keychain --eval --quiet ry_ecdsa) && eval $(keychain --eval -
|
|||||||
# Wget (keeps hsts files out of $HOME)
|
# Wget (keeps hsts files out of $HOME)
|
||||||
alias wget='wget --hsts-file="$XDG_CACHE_HOME/wget-hsts"'
|
alias wget='wget --hsts-file="$XDG_CACHE_HOME/wget-hsts"'
|
||||||
|
|
||||||
alias transbr='trans :pt-BR'
|
alias tbr='trans :pt-BR'
|
||||||
|
|
||||||
# #######################################################
|
#######################################################
|
||||||
# # SPECIAL FUNCTIONS
|
# SPECIAL FUNCTIONS
|
||||||
# #######################################################
|
#######################################################
|
||||||
|
|
||||||
# Searches for text in all files in the current folder
|
|
||||||
ftext() {
|
|
||||||
# -i case-insensitive
|
|
||||||
# -I ignore binary files
|
|
||||||
# -H causes filename to be printed
|
|
||||||
# -r recursive search
|
|
||||||
# -n causes line number to be printed
|
|
||||||
# optional: -F treat search term as a literal, not a regular expression
|
|
||||||
# optional: -l only print filenames and not the matching lines ex. grep -irl "$1" *
|
|
||||||
grep -iIHrn --color=always "$1" . | less -r
|
|
||||||
}
|
|
||||||
|
|
||||||
# Copy file with a progress bar
|
|
||||||
cpp() {
|
|
||||||
set -e
|
|
||||||
strace -q -ewrite cp -- "${1}" "${2}" 2>&1 |
|
|
||||||
awk '{
|
|
||||||
count += $NF
|
|
||||||
if (count % 10 == 0) {
|
|
||||||
percent = count / total_size * 100
|
|
||||||
printf "%3d%% [", percent
|
|
||||||
for (i=0;i<=percent;i++)
|
|
||||||
printf "="
|
|
||||||
printf ">"
|
|
||||||
for (i=percent;i<100;i++)
|
|
||||||
printf " "
|
|
||||||
printf "]\r"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
END { print "" }' total_size=$(stat -c '%s' "${1}") count=0
|
|
||||||
}
|
|
||||||
|
|
||||||
# Copy and go to the directory
|
|
||||||
cpg() {
|
|
||||||
if [ -d "$2" ]; then
|
|
||||||
cp $1 $2 && cd $2
|
|
||||||
else
|
|
||||||
cp $1 $2
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Move and go to the directory
|
|
||||||
mvg() {
|
|
||||||
if [ -d "$2" ]; then
|
|
||||||
mv $1 $2 && cd $2
|
|
||||||
else
|
|
||||||
mv $1 $2
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Create and go to the directory
|
# Create and go to the directory
|
||||||
mkdirg() {
|
mkdirg() {
|
||||||
@@ -254,56 +193,6 @@ mkdirg() {
|
|||||||
cd $1
|
cd $1
|
||||||
}
|
}
|
||||||
|
|
||||||
# Goes up a specified number of directories (i.e. up 4)
|
|
||||||
up() {
|
|
||||||
local d=""
|
|
||||||
limit=$1
|
|
||||||
for ((i = 1; i <= limit; i++)); do
|
|
||||||
d=$d/..
|
|
||||||
done
|
|
||||||
d=$(echo $d | sed 's/^\///')
|
|
||||||
if [ -z "$d" ]; then
|
|
||||||
d=..
|
|
||||||
fi
|
|
||||||
cd $d
|
|
||||||
}
|
|
||||||
|
|
||||||
# Show current network information
|
|
||||||
netinfo() {
|
|
||||||
echo "--------------- Network Information ---------------"
|
|
||||||
/sbin/ifconfig | awk /'inet addr/ {print $2}'
|
|
||||||
echo ""
|
|
||||||
/sbin/ifconfig | awk /'Bcast/ {print $3}'
|
|
||||||
echo ""
|
|
||||||
/sbin/ifconfig | awk /'inet addr/ {print $4}'
|
|
||||||
|
|
||||||
/sbin/ifconfig | awk /'HWaddr/ {print $4,$5}'
|
|
||||||
echo "---------------------------------------------------"
|
|
||||||
}
|
|
||||||
|
|
||||||
# IP address lookup
|
|
||||||
alias whatismyip="whatsmyip"
|
|
||||||
function whatsmyip() {
|
|
||||||
# Dumps a list of all IP addresses for every device
|
|
||||||
# /sbin/ifconfig |grep -B1 "inet addr" |awk '{ if ( $1 == "inet" ) { print $2 } else if ( $2 == "Link" ) { printf "%s:" ,$1 } }' |awk -F: '{ print $1 ": " $3 }';
|
|
||||||
|
|
||||||
# Internal IP Lookup
|
|
||||||
echo -n "Internal IP: "
|
|
||||||
/sbin/ifconfig eth0 | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'
|
|
||||||
|
|
||||||
# External IP Lookup
|
|
||||||
echo -n "External IP: "
|
|
||||||
wget http://smart-ip.net/myip -O - -q
|
|
||||||
}
|
|
||||||
|
|
||||||
# View Apache logs
|
|
||||||
apachelog() {
|
|
||||||
if [ -f /etc/httpd/conf/httpd.conf ]; then
|
|
||||||
cd /var/log/httpd && ls -xAh && multitail --no-repeat -c -s 2 /var/log/httpd/*_log
|
|
||||||
else
|
|
||||||
cd /var/log/apache2 && ls -xAh && multitail --no-repeat -c -s 2 /var/log/apache2/*.log
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
#######################################################
|
#######################################################
|
||||||
# Prompt
|
# Prompt
|
||||||
@@ -381,3 +270,12 @@ eval $(keychain --eval --quiet ry_ecdsa)
|
|||||||
eval $(keychain --eval --quiet id_rsa)
|
eval $(keychain --eval --quiet id_rsa)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Automatically added by the Guix install script.
|
||||||
|
if [ -n "$GUIX_ENVIRONMENT" ]; then
|
||||||
|
if [[ $PS1 =~ (.*)"\\$" ]]; then
|
||||||
|
PS1="${BASH_REMATCH[1]} [env]\\\$ "
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import:
|
import:
|
||||||
- ~/.config/alacritty/dracula.yml
|
- ~/.config/alacritty/manegarm.yml
|
||||||
# Env
|
# Env
|
||||||
env:
|
env:
|
||||||
TERM: xterm-256color
|
TERM: xterm-256color
|
||||||
|
|||||||
52
.config/alacritty/manegarm.yml
Normal file
52
.config/alacritty/manegarm.yml
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
colors:
|
||||||
|
primary:
|
||||||
|
background: "#1c1408" # -bg
|
||||||
|
foreground: "#7cb518" # green, adjusted for better visibility
|
||||||
|
bright_foreground: "#dfdfdf" # base8
|
||||||
|
cursor:
|
||||||
|
text: CellBackground
|
||||||
|
cursor: CellForeground
|
||||||
|
vi_mode_cursor:
|
||||||
|
text: CellBackground
|
||||||
|
cursor: CellForeground
|
||||||
|
search:
|
||||||
|
matches:
|
||||||
|
foreground: "#3f444a" # base4
|
||||||
|
background: "#7cb518" # green
|
||||||
|
focused_match:
|
||||||
|
foreground: "#3f444a" # base4
|
||||||
|
background: "#ffbf00" # yellow
|
||||||
|
footer_bar:
|
||||||
|
background: "#1c1408" # -bg
|
||||||
|
foreground: "#7cb518" # green
|
||||||
|
hints:
|
||||||
|
start:
|
||||||
|
foreground: "#1c1408" # -bg
|
||||||
|
background: "#ffbf00" # yellow
|
||||||
|
end:
|
||||||
|
foreground: "#ffbf00" # yellow
|
||||||
|
background: "#1c1408" # -bg
|
||||||
|
line_indicator:
|
||||||
|
foreground: None
|
||||||
|
background: None
|
||||||
|
selection:
|
||||||
|
text: CellForeground
|
||||||
|
background: "#3f444a" # base4
|
||||||
|
normal:
|
||||||
|
black: "#1B2229" # base0
|
||||||
|
red: "#ff4e00" # red
|
||||||
|
green: "#7cb518" # green
|
||||||
|
yellow: "#ffbf00" # yellow
|
||||||
|
blue: "#dbc077" # teal, lightened umber
|
||||||
|
magenta: "#d72638" # magenta
|
||||||
|
cyan: "#dbc077" # teal (sand/beige)
|
||||||
|
white: "#dfdfdf" # base8
|
||||||
|
bright:
|
||||||
|
black: "#1c1f24" # base1
|
||||||
|
red: "#ff7000" # orange
|
||||||
|
green: "#7cb518" # green
|
||||||
|
yellow: "#ffbf00" # yellow
|
||||||
|
blue: "#dbc077" # teal, lightened umber
|
||||||
|
magenta: "#d72638" # magenta
|
||||||
|
cyan: "#dbc077" # teal (sand/beige)
|
||||||
|
white: "#dfdfdf" # base8
|
||||||
74
.config/calcurse/caldav/config
Normal file
74
.config/calcurse/caldav/config
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
# If you want to synchronize calcurse with a CalDAV server using
|
||||||
|
# calcurse-caldav, create a new directory at $XDG_CONFIG_HOME/calcurse/caldav/
|
||||||
|
# (~/.config/calcurse/caldav/) and $XDG_DATA_HOME/calcurse/caldav/
|
||||||
|
# (~/.local/share/calcurse/caldav/) and copy this file to
|
||||||
|
# $XDG_CONFIG_HOME/calcurse/caldav/config and adjust the configuration below.
|
||||||
|
# Alternatively, if using ~/.calcurse, create a new directory at
|
||||||
|
# ~/.calcurse/caldav/ and copy this file to ~/.calcurse/caldav/config and adjust
|
||||||
|
# the configuration file below.
|
||||||
|
|
||||||
|
[General]
|
||||||
|
# Path to the calcurse binary that is used for importing/exporting items.
|
||||||
|
Binary = calcurse
|
||||||
|
|
||||||
|
# Host name of the server that hosts CalDAV. Do NOT prepend a protocol prefix,
|
||||||
|
# such as http:// or https://. Append :<port> for a port other than 80.
|
||||||
|
Hostname = dav.opal.sh
|
||||||
|
|
||||||
|
# Path to the CalDAV calendar on the host specified above. This is the base
|
||||||
|
# path following your host name in the URL.
|
||||||
|
Path = /dav.php/calendars/ryan/ryan-cal/
|
||||||
|
|
||||||
|
# Type of authentication to use. Must be "basic" or "oauth2"
|
||||||
|
#AuthMethod = basic
|
||||||
|
|
||||||
|
# Enable this if you want to skip SSL certificate checks.
|
||||||
|
InsecureSSL = No
|
||||||
|
|
||||||
|
# Disable this if you want to use HTTP instead of HTTPS.
|
||||||
|
# Using plain HTTP is highly discouraged.
|
||||||
|
HTTPS = Yes
|
||||||
|
|
||||||
|
# This option allows you to filter the types of tasks synced. To this end, the
|
||||||
|
# value of this option should be a comma-separated list of item types, where
|
||||||
|
# each item type is either "event", "apt", "recur-event", "recur-apt", "todo",
|
||||||
|
# "recur" or "cal". Note that the comma-separated list must not contain any
|
||||||
|
# spaces. Refer to the documentation of the --filter-type command line argument
|
||||||
|
# of calcurse for more details. Set this option to "cal" if the configured
|
||||||
|
# CalDAV server doesn't support tasks, such as is the case with Google
|
||||||
|
# Calendar.
|
||||||
|
SyncFilter = cal,todo
|
||||||
|
|
||||||
|
# Disable this option to actually enable synchronization. If it is enabled,
|
||||||
|
# nothing is actually written to the server or to the local data files. If you
|
||||||
|
# combine DryRun = Yes with Verbose = Yes, you get a log of what would have
|
||||||
|
# happened with this option disabled.
|
||||||
|
DryRun = No
|
||||||
|
|
||||||
|
# Enable this if you want detailed logs written to stdout.
|
||||||
|
Verbose = Yes
|
||||||
|
|
||||||
|
# Credentials for HTTP Basic Authentication (if required).
|
||||||
|
# Set `Password` to your password in plaintext (unsafe),
|
||||||
|
# or `PasswordCommand` to a shell command that retrieves it (recommended).
|
||||||
|
[Auth]
|
||||||
|
Username = ryan
|
||||||
|
#Password = password
|
||||||
|
PasswordCommand = gopass show -o self-hosted/dav.opal.sh
|
||||||
|
|
||||||
|
# Optionally specify additional HTTP headers here.
|
||||||
|
#[CustomHeaders]
|
||||||
|
#User-Agent = Mac_OS_X/10.9.2 (13C64) CalendarAgent/176
|
||||||
|
|
||||||
|
# Use the following to synchronize with an OAuth2-based service
|
||||||
|
# such as Google Calendar.
|
||||||
|
#[OAuth2]
|
||||||
|
#ClientID = your_client_id
|
||||||
|
#ClientSecret = your_client_secret
|
||||||
|
|
||||||
|
# Scope of access for API calls. Synchronization requires read/write.
|
||||||
|
#Scope = https://example.com/resource/scope
|
||||||
|
|
||||||
|
# Change the redirect URI if you receive errors, but ensure that it is identical
|
||||||
|
# to the redirect URI you specified in the API settings.
|
||||||
|
#RedirectURI = http://127.0.0.1
|
||||||
@@ -6,13 +6,11 @@
|
|||||||
(add-hook! '+doom-dashboard-mode-hook (hide-mode-line-mode 1) (hl-line-mode -1))
|
(add-hook! '+doom-dashboard-mode-hook (hide-mode-line-mode 1) (hl-line-mode -1))
|
||||||
(setq-hook! '+doom-dashboard-mode-hook evil-normal-state-cursor (list nil))
|
(setq-hook! '+doom-dashboard-mode-hook evil-normal-state-cursor (list nil))
|
||||||
|
|
||||||
(add-load-path! "/usr/share/emacs/site-lisp/mu4e")
|
|
||||||
|
|
||||||
(setq user-full-name "opal"
|
(setq user-full-name "opal"
|
||||||
user-mail-address "ry.orlando@pm.me")
|
user-mail-address "ry.orlando@proton.me")
|
||||||
|
|
||||||
;; (setq doom-theme 'doom-dracula)
|
;; (setq doom-theme 'doom-dracula)
|
||||||
(load-theme 'doom-dracula t)
|
(load-theme 'doom-manegarm t)
|
||||||
;;(define-key global-map (kbd "<f5>") #'modus-themes-toggle)
|
;;(define-key global-map (kbd "<f5>") #'modus-themes-toggle)
|
||||||
|
|
||||||
(dolist (mode '(org-mode-hook
|
(dolist (mode '(org-mode-hook
|
||||||
@@ -82,15 +80,15 @@
|
|||||||
(setq org-habit-graph-column 60)
|
(setq org-habit-graph-column 60)
|
||||||
|
|
||||||
(setq org-todo-keywords
|
(setq org-todo-keywords
|
||||||
'((sequence "NEXT(n)" "TODO(t)" "|" "DONE(d!)")
|
'((sequence "NEXT(n)" "TODO(t)" "|" "DONE(d!)")
|
||||||
(sequence "ACTIVE(a)" "PROJ(p)" "READY(r)" "WAIT(w@/!)" "HOLD(h)" "BACKLOG(b)" "DOC(u)" "|" "COMPLETED(c)" "CANC(k@)")))
|
(sequence "ACTIVE(a)" "PROJ(p)" "READY(r)" "WAIT(w@/!)" "HOLD(h)" "BACKLOG(b)" "DOC(u)" "|" "COMPLETED(c)" "CANC(k@)")))
|
||||||
|
|
||||||
(setq org-todo-keyword-faces
|
(setq org-todo-keyword-faces
|
||||||
'(("NEXT" . "red") ("TODO" . "orange") ("WAIT" . "yellow") ("DONE" . "green")))
|
'(("NEXT" . "red") ("TODO" . "orange") ("WAIT" . "yellow") ("DONE" . "green")))
|
||||||
|
|
||||||
(setq org-refile-targets
|
(setq org-refile-targets
|
||||||
'(("archive.org" :maxlevel . 1)
|
'(("archive.org" :maxlevel . 1)
|
||||||
("planner.org" :maxlevel . 1)))
|
("planner.org" :maxlevel . 1)))
|
||||||
|
|
||||||
;; Save Org buffers after refiling!
|
;; Save Org buffers after refiling!
|
||||||
(advice-add 'org-refile :after 'org-save-all-org-buffers)
|
(advice-add 'org-refile :after 'org-save-all-org-buffers)
|
||||||
@@ -99,27 +97,27 @@
|
|||||||
|
|
||||||
;; Configure custom agenda views
|
;; Configure custom agenda views
|
||||||
(setq org-agenda-custom-commands
|
(setq org-agenda-custom-commands
|
||||||
'(("d" "Dashboard"
|
'(("d" "Dashboard"
|
||||||
((agenda "" ((org-deadline-warning-days 7)))
|
((agenda "" ((org-deadline-warning-days 7)))
|
||||||
(todo "NEXT"
|
(todo "NEXT"
|
||||||
((org-agenda-overriding-header "Next Tasks")))
|
((org-agenda-overriding-header "Next Tasks")))
|
||||||
(tags-todo "agenda/ACTIVE" ((org-agenda-overriding-header "Active Projects")))))
|
(tags-todo "agenda/ACTIVE" ((org-agenda-overriding-header "Active Projects")))))
|
||||||
|
|
||||||
("n" "Next Tasks"
|
("n" "Next Tasks"
|
||||||
((todo "NEXT"
|
((todo "NEXT"
|
||||||
((org-agenda-overriding-header "Next Tasks")))))
|
((org-agenda-overriding-header "Next Tasks")))))
|
||||||
|
|
||||||
;; Low-effort next actions
|
;; Low-effort next actions
|
||||||
("e" tags-todo "+TODO=\"NEXT\"+Effort<15&+Effort>0"
|
("e" tags-todo "+TODO=\"NEXT\"+Effort<15&+Effort>0"
|
||||||
((org-agenda-overriding-header "Low Effort Tasks")
|
((org-agenda-overriding-header "Low Effort Tasks")
|
||||||
(org-agenda-max-todos 20)
|
(org-agenda-max-todos 20)
|
||||||
(org-agenda-files org-agenda-files)))))
|
(org-agenda-files org-agenda-files)))))
|
||||||
|
|
||||||
;; Create capture templates
|
;; Create capture templates
|
||||||
(setq org-capture-templates
|
(setq org-capture-templates
|
||||||
`(("t" "Tasks")
|
`(("t" "Tasks")
|
||||||
("tt" "Task" entry (file+olp "~/work/work.org" "Inbox")
|
("tt" "Task" entry (file+olp "~/work/work.org" "Inbox")
|
||||||
"* TODO %?\n %U\n %a\n %i" :empty-lines 1)))
|
"* TODO %?\n %U\n %a\n %i" :empty-lines 1)))
|
||||||
|
|
||||||
;; Tell Org to stop indenting inside of org source blocks.
|
;; Tell Org to stop indenting inside of org source blocks.
|
||||||
(setq org-edit-src-content-indentation 0)
|
(setq org-edit-src-content-indentation 0)
|
||||||
@@ -127,9 +125,9 @@
|
|||||||
;; Set org agenda dir
|
;; Set org agenda dir
|
||||||
(setq org-directory "~/org/")
|
(setq org-directory "~/org/")
|
||||||
|
|
||||||
;; Open links in browser
|
;; Open links in browser
|
||||||
(setq browse-url-browser-function 'browse-url-generic
|
(setq browse-url-browser-function 'browse-url-generic
|
||||||
browse-url-generic-program "firefox")
|
browse-url-generic-program "firefox")
|
||||||
|
|
||||||
;; Init org font setup
|
;; Init org font setup
|
||||||
(opal/org-font-setup))
|
(opal/org-font-setup))
|
||||||
@@ -160,9 +158,6 @@
|
|||||||
|
|
||||||
(push '("conf-unix" . conf-unix) org-src-lang-modes))
|
(push '("conf-unix" . conf-unix) org-src-lang-modes))
|
||||||
|
|
||||||
;; Set geiser default language
|
|
||||||
(setq geiser-default-implementation '(guile))
|
|
||||||
|
|
||||||
(with-eval-after-load 'org
|
(with-eval-after-load 'org
|
||||||
(require 'org-tempo)
|
(require 'org-tempo)
|
||||||
(add-to-list 'org-structure-template-alist '("sh" . "src shell"))
|
(add-to-list 'org-structure-template-alist '("sh" . "src shell"))
|
||||||
@@ -172,38 +167,6 @@
|
|||||||
(add-to-list 'org-structure-template-alist '("py" . "src python"))
|
(add-to-list 'org-structure-template-alist '("py" . "src python"))
|
||||||
(add-to-list 'org-structure-template-alist '("clj" . "src clojure")))
|
(add-to-list 'org-structure-template-alist '("clj" . "src clojure")))
|
||||||
|
|
||||||
;; (use-package mu4e
|
|
||||||
;; :config
|
|
||||||
;; ;; Se t to 't' to avoid mail syncing issues w/ mbsync
|
|
||||||
;; (setq mu4e-change-filenames-when-moving t)
|
|
||||||
|
|
||||||
;; ;; Refresh mail every X minutes
|
|
||||||
;; (setq mu4e-update-interval (* 10 60))
|
|
||||||
;; (setq mu4e-get-mail-command "mbsync -a -c ~/.config/mbsync/mbsyncrc")
|
|
||||||
;; (setq mu4e-maildir "~/mail")
|
|
||||||
|
|
||||||
;; (setq mu4e-contexts
|
|
||||||
;; (list
|
|
||||||
;; ;; Work Email
|
|
||||||
;; (make-mu4e-context
|
|
||||||
;; :name "work"
|
|
||||||
;; :match-func
|
|
||||||
;; (lambda (msg)
|
|
||||||
;; (when msg
|
|
||||||
;; (string-prefix-p "/work" (mu4e-message-field msg :maildir))))
|
|
||||||
|
|
||||||
;; :vars '((user-mail-address . "rorlando@flyingcroc.net")
|
|
||||||
;; (user-full-name . "Ryan Orlando")
|
|
||||||
;; (mu4e-drafts-folder . "/work/drafts")
|
|
||||||
;; (mu4e-sent-folder . "/work/sent")
|
|
||||||
;; (mu4e-trash-folder . "/work/trash")))))
|
|
||||||
|
|
||||||
;; (setq mu4e-maildir-shortcuts
|
|
||||||
;; '(("/work/inbox" . ?i)
|
|
||||||
;; ("/work/sent" . ?s)
|
|
||||||
;; ("/work/trash" . ?t)
|
|
||||||
;; ("/work/drafts" . ?d))))
|
|
||||||
|
|
||||||
(use-package vterm
|
(use-package vterm
|
||||||
:commands vterm
|
:commands vterm
|
||||||
:config
|
:config
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
["#282c34" "#ff6c6b" "#98be65" "#ECBE7B" "#51afef" "#c678dd" "#46D9FF" "#bbc2cf"])
|
["#282c34" "#ff6c6b" "#98be65" "#ECBE7B" "#51afef" "#c678dd" "#46D9FF" "#bbc2cf"])
|
||||||
'(auth-source-save-behavior nil)
|
'(auth-source-save-behavior nil)
|
||||||
'(custom-safe-themes
|
'(custom-safe-themes
|
||||||
'("944d52450c57b7cbba08f9b3d08095eb7a5541b0ecfb3a0a9ecd4a18f3c28948" "dad40020beea412623b04507a4c185079bff4dcea20a93d8f8451acb6afc8358" "a0415d8fc6aeec455376f0cbcc1bee5f8c408295d1c2b9a1336db6947b89dd98" "a9a67b318b7417adbedaab02f05fa679973e9718d9d26075c6235b1f0db703c8" "1704976a1797342a1b4ea7a75bdbb3be1569f4619134341bd5a4c1cfb16abad4" "b5803dfb0e4b6b71f309606587dd88651efe0972a5be16ece6a958b197caeed8" default))
|
'("f053f92735d6d238461da8512b9c071a5ce3b9d972501f7a5e6682a90bf29725" "944d52450c57b7cbba08f9b3d08095eb7a5541b0ecfb3a0a9ecd4a18f3c28948" "dad40020beea412623b04507a4c185079bff4dcea20a93d8f8451acb6afc8358" "a0415d8fc6aeec455376f0cbcc1bee5f8c408295d1c2b9a1336db6947b89dd98" "a9a67b318b7417adbedaab02f05fa679973e9718d9d26075c6235b1f0db703c8" "1704976a1797342a1b4ea7a75bdbb3be1569f4619134341bd5a4c1cfb16abad4" "b5803dfb0e4b6b71f309606587dd88651efe0972a5be16ece6a958b197caeed8" default))
|
||||||
'(exwm-floating-border-color "#191b20")
|
'(exwm-floating-border-color "#191b20")
|
||||||
'(fci-rule-color "#5B6268")
|
'(fci-rule-color "#5B6268")
|
||||||
'(highlight-tail-colors
|
'(highlight-tail-colors
|
||||||
|
|||||||
@@ -125,7 +125,7 @@
|
|||||||
;;fsharp ; ML stands for Microsoft's Language
|
;;fsharp ; ML stands for Microsoft's Language
|
||||||
;;fstar ; (dependent) types and (monadic) effects and Z3
|
;;fstar ; (dependent) types and (monadic) effects and Z3
|
||||||
;;gdscript ; the language you waited for
|
;;gdscript ; the language you waited for
|
||||||
(go +lsp) ; the hipster dialect
|
;;(go +lsp) ; the hipster dialect
|
||||||
;;(haskell +lsp) ; a language that's lazier than I am
|
;;(haskell +lsp) ; a language that's lazier than I am
|
||||||
;;hy ; readability of scheme w/ speed of python
|
;;hy ; readability of scheme w/ speed of python
|
||||||
;;idris ; a language you can depend on
|
;;idris ; a language you can depend on
|
||||||
@@ -152,7 +152,7 @@
|
|||||||
;;raku ; the artist formerly known as perl6
|
;;raku ; the artist formerly known as perl6
|
||||||
;;rest ; Emacs as a REST client
|
;;rest ; Emacs as a REST client
|
||||||
;;rst ; ReST in peace
|
;;rst ; ReST in peace
|
||||||
(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
|
;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
|
||||||
;;rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
|
;;rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
|
||||||
;;scala ; java, but good
|
;;scala ; java, but good
|
||||||
;;(scheme +guile) ; a fully conniving family of lisps
|
;;(scheme +guile) ; a fully conniving family of lisps
|
||||||
@@ -175,7 +175,7 @@
|
|||||||
;;emms
|
;;emms
|
||||||
;;everywhere ; *leave* Emacs!? You must be joking
|
;;everywhere ; *leave* Emacs!? You must be joking
|
||||||
;;irc ; how neckbeards socialize
|
;;irc ; how neckbeards socialize
|
||||||
(rss +org) ; emacs as an RSS reader
|
;;(rss +org) ; emacs as an RSS reader
|
||||||
;;twitter ; twitter client https://twitter.com/vnought
|
;;twitter ; twitter client https://twitter.com/vnought
|
||||||
|
|
||||||
:config
|
:config
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 158 KiB After Width: | Height: | Size: 416 KiB |
@@ -1,18 +1,16 @@
|
|||||||
|
---Reddit---
|
||||||
|
https://www.reddit.com/r/stupidpol/.rss
|
||||||
|
---News---
|
||||||
|
https://thegrayzone.com/rss
|
||||||
|
https://multipolarista.com/rss
|
||||||
|
https://www.telesurenglish.net/feed/
|
||||||
|
https://theintercept.com/feed/
|
||||||
---Tech---
|
---Tech---
|
||||||
https://landchad.net/rss.xml
|
https://landchad.net/rss.xml
|
||||||
https://videos.lukesmith.xyz/feeds/videos.xml?videoChannelId=2 "~Luke Smith (Videos)"
|
https://videos.lukesmith.xyz/feeds/videos.xml?videoChannelId=2 "~Luke Smith (Videos)"
|
||||||
https://pluralistic.net/feed/
|
https://pluralistic.net/feed/
|
||||||
https://blog.privacyguides.org/feed_rss_created.xml
|
https://blog.privacyguides.org/feed_rss_created.xml
|
||||||
---News---
|
|
||||||
https://thegrayzone.com/rss
|
|
||||||
https://multipolarista.com/rss
|
|
||||||
---Podcasts---
|
---Podcasts---
|
||||||
https://feeds.simplecast.com/dCXMIpJz "Last Podcast On the Left"
|
https://feeds.simplecast.com/dCXMIpJz "Last Podcast On the Left"
|
||||||
http://feeds.soundcloud.com/users/soundcloud:users:572119410/sounds.rss podcasts "Fall of Civilziation"
|
http://feeds.soundcloud.com/users/soundcloud:users:572119410/sounds.rss podcasts "Fall of Civilziation"
|
||||||
https://feeds.feedburner.com/dancarlin/history?format=xml podcasts "Hardcore History"
|
https://feeds.feedburner.com/dancarlin/history?format=xml podcasts "Hardcore History"
|
||||||
---Reddit---
|
|
||||||
https://www.reddit.com/r/stupidpol/.rss
|
|
||||||
https://www.reddit.com/r/redscarepod/.rss
|
|
||||||
---Youtube---
|
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC3Vuq4Q1bKFtAiKYlwRv3oA
|
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCXulruMI7BHj3kGyosNa0jA
|
|
||||||
|
|||||||
5
.config/qt5ct/colors/manegarm.conf
Normal file
5
.config/qt5ct/colors/manegarm.conf
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
[ColorScheme]
|
||||||
|
active_colors=#ff7cb518, #ff424559, #ff484d6b, #ff95836f, #ff3f444a, #ff3f444a, #ff95836f, #ff3f444a, #ff7cb518, #ff1c1408, #ff1c1408, #ff3f444a, #ff95836f, #ff7cb518, #ffdbc077, #ffdbc077, #ff3f444a, #ff95836f, #ff3f444a, #ffdfdfdf, #ff3f444a
|
||||||
|
disabled_colors=#ff7cb518, #ff424559, #ff484d6b, #ff95836f, #ff3f444a, #ff3f444a, #ff95836f, #ff3f444a, #ff7cb518, #ff1c1408, #ff1c1408, #ff3f444a, #ff95836f, #ff7cb518, #ffdbc077, #ffdbc077, #ff3f444a, #ff95836f, #ff3f444a, #ffdfdfdf, #ff3f444a
|
||||||
|
inactive_colors=#ff7cb518, #ff424559, #ff484d6b, #ff95836f, #ff3f444a, #ff3f444a, #ff95836f, #ff3f444a, #ff7cb518, #ff1c1408, #ff1c1408, #ff3f444a, #ff95836f, #ff7cb518, #ffdbc077, #ffdbc077, #ff3f444a, #ff95836f, #ff3f444a, #ffdfdfdf, #ff3f444a
|
||||||
|
|
||||||
@@ -2,4 +2,4 @@
|
|||||||
style=Fusion
|
style=Fusion
|
||||||
icon_theme=Papirus-Dark
|
icon_theme=Papirus-Dark
|
||||||
custom_palette=true
|
custom_palette=true
|
||||||
color_scheme_path=~/.config/qt5ct/colors/dracula.conf
|
color_scheme_path=~/.config/qt5ct/colors/manegarm.conf
|
||||||
|
|||||||
@@ -168,7 +168,7 @@ bindsym $mod+Shift+e exec wlogout -p layer-shell
|
|||||||
exec_always dunst
|
exec_always dunst
|
||||||
|
|
||||||
# Wlsunset (Night Light)
|
# Wlsunset (Night Light)
|
||||||
exec_always wlsunset -l 47.6 -L -122.3 -t 3000 -T 6500
|
exec wlsunset -l 47.6 -L -122.3 -t 3000 -T 3500
|
||||||
|
|
||||||
# udiskie - auto usb mounting
|
# udiskie - auto usb mounting
|
||||||
exec /usr/bin/udiskie &
|
exec /usr/bin/udiskie &
|
||||||
@@ -192,13 +192,13 @@ exec hash dbus-update-activation-environment 2>/dev/null && dbus-update-activati
|
|||||||
# Window Borders
|
# Window Borders
|
||||||
default_border pixel 3
|
default_border pixel 3
|
||||||
default_floating_border none
|
default_floating_border none
|
||||||
client.focused "#6400b0" "#7607e6" "#ffffff" "#6400b0"
|
client.focused "#38761d" "#38761d" "#ffffff" "#38761d"
|
||||||
|
|
||||||
set $opacity 0.90
|
set $opacity 0.90
|
||||||
for_window [class="Emacs"] opacity $opacity
|
for_window [class="Emacs"] opacity $opacity
|
||||||
for_window [app_id="dolphin"] opacity $opacity
|
|
||||||
for_window [app_id="strawberry"] opacity $opacity
|
for_window [app_id="strawberry"] opacity $opacity
|
||||||
for_window [app_id="Nautilus"] opacity $opacity
|
for_window [app_id="pcmanfm-qt"] opacity $opacity
|
||||||
|
for_window [app_id="org.kde.polkit-kde-authentication-agent-1"] floating enable
|
||||||
|
|
||||||
# Gaps
|
# Gaps
|
||||||
smart_gaps on
|
smart_gaps on
|
||||||
@@ -235,6 +235,11 @@ input type:keyboard {
|
|||||||
repeat_rate 45
|
repeat_rate 45
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# input "TPPS/2 Elan TrackPoint" {
|
||||||
|
# accel_profile "adaptive"
|
||||||
|
# pointer_accel 0.1
|
||||||
|
# }
|
||||||
|
|
||||||
# Hide mouse cursor after inactivity
|
# Hide mouse cursor after inactivity
|
||||||
seat * hide_cursor 10000
|
seat * hide_cursor 10000
|
||||||
|
|
||||||
@@ -245,7 +250,7 @@ bindswitch --reload --locked lid:off output $laptop enable
|
|||||||
# Monitors
|
# Monitors
|
||||||
# You can get the names of your outputs by running: swaymsg -t get_outputs
|
# You can get the names of your outputs by running: swaymsg -t get_outputs
|
||||||
output HDMI-A-1 scale 2.0
|
output HDMI-A-1 scale 2.0
|
||||||
output * bg /home/opal/.config/wallpapers/tropical-mountains.jpg fill
|
output * bg ~/.config/wallpapers/exterminator.png fill
|
||||||
|
|
||||||
bindsym $mod+Shift+m output "HDMI-A-1" enable
|
bindsym $mod+Shift+m output "HDMI-A-1" enable
|
||||||
bindsym $mod+Shift+n output "HDMI-A-1" disable
|
bindsym $mod+Shift+n output "HDMI-A-1" disable
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# Image
|
# Image
|
||||||
image=~/.config/wallpapers/dante-bite.jpg
|
image=~/.config/wallpapers/exterminator.png
|
||||||
scaling=fill
|
scaling=fill
|
||||||
|
|
||||||
# Indicator
|
# Indicator
|
||||||
|
|||||||
BIN
.config/wallpapers/blasfemia.png
Normal file
BIN
.config/wallpapers/blasfemia.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.2 MiB |
Binary file not shown.
|
Before Width: | Height: | Size: 1.4 MiB |
BIN
.config/wallpapers/exterminator.png
Normal file
BIN
.config/wallpapers/exterminator.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.8 MiB |
@@ -1,10 +1,10 @@
|
|||||||
{
|
{
|
||||||
"layer": "top",
|
"layer": "top",
|
||||||
"position": "top",
|
"position": "top",
|
||||||
"height": 35,
|
"height": 44,
|
||||||
"modules-left": ["sway/workspaces"],
|
"modules-left": ["sway/workspaces"],
|
||||||
"modules-center": ["clock"],
|
"modules-center": ["clock","custom/padd","custom/weather"],
|
||||||
"modules-right": ["custom/l_end","custom/wlsunset","custom/padd","pulseaudio", "custom/padd","network", "custom/padd","battery", "tray", "custom/power","custom/padd"],
|
"modules-right": ["custom/l_end","custom/music","custom/padd","pulseaudio","custom/padd","network", "custom/padd","battery","custom/padd","custom/wlsunset","custom/padd", "tray","custom/power","custom/padd"],
|
||||||
"sway/workspaces": {
|
"sway/workspaces": {
|
||||||
"disable-scroll": true,
|
"disable-scroll": true,
|
||||||
"all-outputs": true,
|
"all-outputs": true,
|
||||||
@@ -21,26 +21,36 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
"clock": {
|
"clock": {
|
||||||
"format": "{: %H:%M %A %B %d}",
|
"format": "{: %H:%M %a %B %d}",
|
||||||
"tooltip-format": "<tt><big>{calendar}</big></tt>"
|
"tooltip-format": "<tt><big>{calendar}</big></tt>"
|
||||||
},
|
},
|
||||||
|
"custom/music": {
|
||||||
|
"exec": "~/.config/waybar/scripts/music.py",
|
||||||
|
"interval": 3,
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"custom/weather": {
|
||||||
|
"exec": "~/.config/waybar/scripts/weather.py",
|
||||||
|
"interval": 600,
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
"battery": {
|
"battery": {
|
||||||
"interval": 30,
|
"interval": 15,
|
||||||
"states": {
|
"states": {
|
||||||
// "good": 95,
|
// "good": 95,
|
||||||
"warning": 30,
|
"warning": 30,
|
||||||
"critical": 15
|
"critical": 15
|
||||||
},
|
},
|
||||||
"full-at": "99",
|
"full-at": "99",
|
||||||
"format": " {capacity}%",
|
"format": "<span font='Font Awesome 5 Free 11'>{icon}</span> {capacity}%",
|
||||||
"format-good": " {capacity}%", // An empty format will hide the module
|
"format-icons": ["","", "","", "", "", "", "", "", ""],
|
||||||
"format-full": "<span size='large' rise='-1600'></span> Full",
|
"format-good": " {capacity}%", // An empty format will hide the module
|
||||||
"format-charging": "<span size='large' rise='-1600'></span> {capacity}% "
|
"format-full": " Full",
|
||||||
|
"format-charging": "{capacity}% "
|
||||||
},
|
},
|
||||||
"custom/wlsunset": {
|
"custom/wlsunset": {
|
||||||
"format": "<span size='large'></span>",
|
"format": "<span size='large'>{icon}</span>",
|
||||||
"format-icons": ["", ""],
|
"format-icons": [""],
|
||||||
"on-click": "wlsunset -l 47.6 -L -122.3 -t 3000 -T 6500"
|
"on-click": "wlsunset -l 47.6 -L -122.3 -t 3000 -T 6500"
|
||||||
},
|
},
|
||||||
"network": {
|
"network": {
|
||||||
@@ -67,7 +77,7 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
"custom/power": {
|
"custom/power": {
|
||||||
"format": "⏻{}",
|
"format": "{}",
|
||||||
//"exec": "echo ; echo logout",
|
//"exec": "echo ; echo logout",
|
||||||
"on-click": "wlogout -p layer-shell",
|
"on-click": "wlogout -p layer-shell",
|
||||||
"interval" : 86400, // once every day
|
"interval" : 86400, // once every day
|
||||||
|
|||||||
30
.config/waybar/scripts/music.py
Executable file
30
.config/waybar/scripts/music.py
Executable file
@@ -0,0 +1,30 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
|
||||||
|
def get_playerctl_metadata(field):
|
||||||
|
result = subprocess.run(
|
||||||
|
["playerctl", "--player=strawberry", "metadata", field],
|
||||||
|
stdout=subprocess.PIPE,
|
||||||
|
stderr=subprocess.PIPE,
|
||||||
|
text=True,
|
||||||
|
)
|
||||||
|
if result.returncode == 0:
|
||||||
|
return result.stdout.strip()
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def abbreviate(text, max_length=30):
|
||||||
|
if len(text) > max_length:
|
||||||
|
return text[: max_length - 3] + "..."
|
||||||
|
return text
|
||||||
|
|
||||||
|
|
||||||
|
artist = get_playerctl_metadata("artist")
|
||||||
|
title = get_playerctl_metadata("title")
|
||||||
|
|
||||||
|
if artist and title:
|
||||||
|
display_text = f"{artist} - {title}"
|
||||||
|
display_text = abbreviate(display_text, 40) # Adjust the max_length as needed
|
||||||
|
print(f" {display_text}")
|
||||||
59
.config/waybar/scripts/weather.py
Executable file
59
.config/waybar/scripts/weather.py
Executable file
@@ -0,0 +1,59 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import requests
|
||||||
|
import json
|
||||||
|
import sys
|
||||||
|
|
||||||
|
API_KEY = "99631af2d6db903d1f689c7d2cb13764"
|
||||||
|
CITY_ID = "5809844"
|
||||||
|
UNITS = "metric"
|
||||||
|
|
||||||
|
|
||||||
|
def celsius_to_fahrenheit(celsius):
|
||||||
|
return (celsius * 9 / 5) + 32
|
||||||
|
|
||||||
|
|
||||||
|
def get_weather_icon(description):
|
||||||
|
icons = {
|
||||||
|
"clear sky": "",
|
||||||
|
"few clouds": "",
|
||||||
|
"scattered clouds": "",
|
||||||
|
"broken clouds": "",
|
||||||
|
"overcast clouds": "",
|
||||||
|
"shower rain": "",
|
||||||
|
"light rain": "",
|
||||||
|
"rain": "",
|
||||||
|
"moderate rain": "",
|
||||||
|
"thunderstorm": "",
|
||||||
|
"snow": "",
|
||||||
|
"mist": "",
|
||||||
|
"haze": "",
|
||||||
|
"smoke": ""
|
||||||
|
}
|
||||||
|
return icons.get(description, "❓")
|
||||||
|
|
||||||
|
|
||||||
|
try:
|
||||||
|
response = requests.get(
|
||||||
|
f"http://api.openweathermap.org/data/2.5/weather?id={CITY_ID}&units={UNITS}&appid={API_KEY}"
|
||||||
|
)
|
||||||
|
response.raise_for_status()
|
||||||
|
weather_data = response.json()
|
||||||
|
|
||||||
|
weather_desc = weather_data["weather"][0]["description"]
|
||||||
|
#print(weather_desc)
|
||||||
|
temp_c = round(weather_data["main"]["temp"])
|
||||||
|
temp_f = round(celsius_to_fahrenheit(temp_c))
|
||||||
|
weather_icon = get_weather_icon(weather_desc)
|
||||||
|
|
||||||
|
print(f"{weather_icon} {temp_c}°C / {temp_f}°F")
|
||||||
|
|
||||||
|
except requests.exceptions.RequestException as e:
|
||||||
|
print(f"Error: {e}")
|
||||||
|
print(json.dumps({"text": "", "tooltip": "Could not retrieve weather data"}))
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
except json.JSONDecodeError:
|
||||||
|
print("Error: Failed to parse JSON response")
|
||||||
|
print(response.content)
|
||||||
|
sys.exit(1)
|
||||||
@@ -1,92 +1,70 @@
|
|||||||
\* {
|
/* General styles */
|
||||||
|
* {
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
font-family: Iosevka, FontAwesome;
|
font-family: Iosevka, FontAwesome;
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
min-height: 0;
|
min-height: 0;
|
||||||
|
color: #bebebe;
|
||||||
}
|
}
|
||||||
|
|
||||||
window#waybar {
|
window#waybar {
|
||||||
opacity: 0.7;
|
opacity: 0.7;
|
||||||
background: #000000;
|
background: #000000;
|
||||||
color: #bebebe;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Specific module styles */
|
||||||
#workspaces button {
|
#workspaces button {
|
||||||
color: #bebebe;
|
|
||||||
background: transparent;
|
background: transparent;
|
||||||
padding: 0px 5px 0px 5px;
|
|
||||||
margin: 5px 10px 0 10px;
|
|
||||||
}
|
|
||||||
#workspaces button.focused {
|
|
||||||
color: white;
|
|
||||||
margin: 5px 10px 0 10px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#workspaces button.focused,
|
||||||
#workspaces button.active {
|
#workspaces button.active {
|
||||||
color: white;
|
color: white;
|
||||||
margin: 5px 10px 0 10px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces button.urgent{
|
#workspaces button.urgent {
|
||||||
margin: 5px 10px 0 10px;
|
|
||||||
padding: 0px 8px 0px 8px;
|
|
||||||
animation-duration: 0.5s;
|
animation-duration: 0.5s;
|
||||||
animation-timing-function: linear;
|
animation-timing-function: linear;
|
||||||
animation-iteration-count: infinite;
|
animation-iteration-count: infinite;
|
||||||
animation-direction: alternate;
|
animation-direction: alternate;
|
||||||
border-radius: 7px;
|
border-radius: 7px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#mode {
|
#mode {
|
||||||
font-family: "Iosevka";
|
font-family: "Iosevka";
|
||||||
margin: 0px 15px 0px 15px;
|
|
||||||
padding: 0px 12px 0px 12px;
|
|
||||||
color: black;
|
color: black;
|
||||||
background: white;
|
background: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
#battery{
|
#battery {
|
||||||
color: #bebebe;
|
/* margin: top right bottom left; */
|
||||||
margin:7px 4px 0 4px;
|
margin: 8px 2px 8px 2px;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
padding: 0px 5px 0px 5px;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
#network {
|
#network {
|
||||||
color: #bebebe;
|
|
||||||
margin:7px 4px 4px 4px;
|
|
||||||
font-size: 16.5px;
|
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
/* padding: 0px 5px 0px 5px; */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#custom-power {
|
|
||||||
color: #bebebe;
|
|
||||||
margin:7px 4px 0 4px;
|
|
||||||
font-size: 16.5px;
|
|
||||||
border-radius: 6px;
|
|
||||||
/*padding: 0px 0px 0px 0px;*/
|
|
||||||
}
|
|
||||||
|
|
||||||
|
/* Animations */
|
||||||
@keyframes critical {
|
@keyframes critical {
|
||||||
to {
|
to {
|
||||||
background: rgba(187,56,0, 1);
|
background: rgba(187,56,0, 1);
|
||||||
border-radius: 7px;
|
border-radius: 7px;
|
||||||
margin:7px 4px 0 4px;
|
|
||||||
padding: 3px 8px 2px 8px;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes urgent {
|
@keyframes urgent {
|
||||||
to {
|
to {
|
||||||
background: rgba(212,140,0, 1);
|
background: rgba(212,140,0, 1);
|
||||||
color: black;
|
color: black;
|
||||||
border-radius: 7px;
|
border-radius: 7px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#battery.critical:not(.charging) {
|
#battery.critical:not(.charging) {
|
||||||
padding: 0px 6px 0px 6px;
|
|
||||||
color: #bebebe;
|
|
||||||
animation-name: critical;
|
animation-name: critical;
|
||||||
animation-duration: 0.5s;
|
animation-duration: 0.5s;
|
||||||
animation-timing-function: linear;
|
animation-timing-function: linear;
|
||||||
@@ -95,54 +73,38 @@ window#waybar {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#clock {
|
#clock {
|
||||||
border: none;
|
|
||||||
color: #bebebe;
|
|
||||||
font-family: Manjari;
|
font-family: Manjari;
|
||||||
font-size: 16.5px;
|
|
||||||
border-radius: 0;
|
|
||||||
padding: 3px 6px 2px 0px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#clock:hover {
|
#custom-weather {
|
||||||
box-shadow: inherit;
|
font-family: Manjari;
|
||||||
text-shadow: inherit;
|
|
||||||
background: inherit;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#custom-wlsunset {
|
#custom-music {
|
||||||
margin:7px 4px 0 4px;
|
font-family: Manjari;
|
||||||
color: #bebebe;
|
|
||||||
border: none;
|
|
||||||
border-radius: 0;
|
|
||||||
/* padding: 0px px 5px 0px; */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#custom-wlsunset:hover {
|
#custom-wlsunset {}
|
||||||
box-shadow: inherit;
|
|
||||||
text-shadow: inherit;
|
|
||||||
background: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pulseaudio {
|
#pulseaudio {
|
||||||
background: transparent;
|
background: transparent;
|
||||||
margin:7px 4px 0 4px;
|
}
|
||||||
font-size: 16.5px;
|
|
||||||
color: #bebebe;
|
#custom-power {
|
||||||
/* border-radius: 5px; */
|
/* margin: top right bottom left; */
|
||||||
/* padding: 0px 5px 0px 5px; */
|
margin:0px 3px 0px 5px;
|
||||||
|
border-radius: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#tray {
|
#tray {
|
||||||
margin: 7px 15px 3px 4px;
|
/* margin: top right bottom left; */
|
||||||
|
margin: 8px 2px 8px 2px;
|
||||||
background: rgba(40,40,40, .65);
|
background: rgba(40,40,40, .65);
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
padding: 5px 3px 5px 5px;
|
padding: 5px 5px 5px 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#idle_inhibitor {
|
#idle_inhibitor {
|
||||||
color: #bebebe;
|
|
||||||
background: transparent;
|
background: transparent;
|
||||||
margin: 7px 4px 0 4px;
|
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
padding: 0px 5px 0px 5px;
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user