Compare commits

...

10 Commits

Author SHA1 Message Date
opal
a44bab4040 added calcurse + other stuff 2024-07-06 11:33:12 -07:00
opal
9aa74fc5cc lots of stuff 2024-07-05 00:02:41 -07:00
opal
9a038c970d adding stuff 2024-06-24 19:49:13 -07:00
opal
636423b8a6 made sway/emacs/alacritty more SWAMPY 2024-06-04 21:34:29 -07:00
opal
758b1dca78 changed background added stuff to weather.py 2024-06-04 12:44:25 -07:00
opal
c8d671eaff fixed more stuff with waybar 2024-06-03 23:17:19 -07:00
opal
f5cbaf2c30 finally fixed a ton of shit about waybar and added music and weather widget 2024-06-03 21:27:06 -07:00
opal
108349b074 added stoof 2024-05-30 21:51:27 -07:00
opal
973fda02ae set floating for kde polkit and put wlsunset at exec once 2024-05-19 21:47:19 -07:00
opal
58d3a10ac4 set opacity for pcmanfm-qt 2024-05-19 21:44:26 -07:00
21 changed files with 358 additions and 303 deletions

View File

@@ -4,10 +4,9 @@ export MOZ_ENABLE_WAYLAND=1
export XDG_CONFIG_HOME=~/.config
export XDG_CACHE_HOME=~/.cache
export XDG_DATA_HOME=~/.local/share
export BROWSER=/usr/bin/firefox-esr
export BROWSER=/usr/bin/brave-browser
export VISUAL=vim
export EDITOR=vim
export QT_QPA_PLATFORMTHEME=qt5ct
export DESKTOP_SESSION=sway
export XDG_CURRENT_DESKTOP=KDE
[ "$(tty)" = "/dev/tty1" ] && exec sway

166
.bashrc
View File

@@ -1,5 +1,4 @@
#!/bin/bash
iatest=$(expr index "$-" i)
#Source global definitions
if [ -f /etc/bashrc ]; then
@@ -35,13 +34,6 @@ PROMPT_COMMAND='history -a'
# Allow ctrl-S for history navigation (with ctrl-R)
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
export EDITOR=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_ue=$'\E[0m'
export LESS_TERMCAP_us=$'\E[01;32m'
export LC_WHO=rorlando
# Scripts Path
PATH=$PATH:~/code/scripts
PATH=$PATH:~/.local/bin
PATH=$PATH:~/bin
PATH=$PATH:/usr/local/go/bin
# Doom Path
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/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
@@ -83,7 +91,7 @@ PATH=$PATH:/opt/deadbeef/bin
# 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
# Pacman aliases
# Apt aliases
alias install='sudo apt install'
alias update='sudo apt update'
alias update='sudo apt upgrade'
@@ -91,13 +99,6 @@ alias uu='sudo apt update && sudo apt upgrade'
alias search='apt search'
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 da='date "+%Y-%m-%d %A %T %Z"'
@@ -145,9 +146,6 @@ alias h="history | grep "
# Search files in the current folder
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
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 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
alias wgup='sudo wg-quick up /etc/wireguard/wg0.conf'
alias wgdown='sudo wg-quick down /etc/wireguard/wg0.conf'
# Hugo
alias hss='hugo server --noHTTPCache'
# Work
alias stork='ssh stork'
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)
alias wget='wget --hsts-file="$XDG_CACHE_HOME/wget-hsts"'
alias transbr='trans :pt-BR'
alias tbr='trans :pt-BR'
# #######################################################
# # 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
}
#######################################################
# SPECIAL FUNCTIONS
#######################################################
# Create and go to the directory
mkdirg() {
@@ -254,56 +193,6 @@ mkdirg() {
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
@@ -381,3 +270,12 @@ eval $(keychain --eval --quiet ry_ecdsa)
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

View File

@@ -1,5 +1,5 @@
import:
- ~/.config/alacritty/dracula.yml
- ~/.config/alacritty/manegarm.yml
# Env
env:
TERM: xterm-256color

View 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

View 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

View File

@@ -6,13 +6,11 @@
(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))
(add-load-path! "/usr/share/emacs/site-lisp/mu4e")
(setq user-full-name "opal"
user-mail-address "ry.orlando@pm.me")
user-mail-address "ry.orlando@proton.me")
;; (setq doom-theme 'doom-dracula)
(load-theme 'doom-dracula t)
(load-theme 'doom-manegarm t)
;;(define-key global-map (kbd "<f5>") #'modus-themes-toggle)
(dolist (mode '(org-mode-hook
@@ -82,15 +80,15 @@
(setq org-habit-graph-column 60)
(setq org-todo-keywords
'((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 "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@)")))
(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
'(("archive.org" :maxlevel . 1)
("planner.org" :maxlevel . 1)))
'(("archive.org" :maxlevel . 1)
("planner.org" :maxlevel . 1)))
;; Save Org buffers after refiling!
(advice-add 'org-refile :after 'org-save-all-org-buffers)
@@ -99,27 +97,27 @@
;; Configure custom agenda views
(setq org-agenda-custom-commands
'(("d" "Dashboard"
((agenda "" ((org-deadline-warning-days 7)))
(todo "NEXT"
((org-agenda-overriding-header "Next Tasks")))
(tags-todo "agenda/ACTIVE" ((org-agenda-overriding-header "Active Projects")))))
'(("d" "Dashboard"
((agenda "" ((org-deadline-warning-days 7)))
(todo "NEXT"
((org-agenda-overriding-header "Next Tasks")))
(tags-todo "agenda/ACTIVE" ((org-agenda-overriding-header "Active Projects")))))
("n" "Next Tasks"
((todo "NEXT"
((org-agenda-overriding-header "Next Tasks")))))
("n" "Next Tasks"
((todo "NEXT"
((org-agenda-overriding-header "Next Tasks")))))
;; Low-effort next actions
("e" tags-todo "+TODO=\"NEXT\"+Effort<15&+Effort>0"
((org-agenda-overriding-header "Low Effort Tasks")
(org-agenda-max-todos 20)
(org-agenda-files org-agenda-files)))))
;; Low-effort next actions
("e" tags-todo "+TODO=\"NEXT\"+Effort<15&+Effort>0"
((org-agenda-overriding-header "Low Effort Tasks")
(org-agenda-max-todos 20)
(org-agenda-files org-agenda-files)))))
;; Create capture templates
(setq org-capture-templates
`(("t" "Tasks")
("tt" "Task" entry (file+olp "~/work/work.org" "Inbox")
"* TODO %?\n %U\n %a\n %i" :empty-lines 1)))
`(("t" "Tasks")
("tt" "Task" entry (file+olp "~/work/work.org" "Inbox")
"* TODO %?\n %U\n %a\n %i" :empty-lines 1)))
;; Tell Org to stop indenting inside of org source blocks.
(setq org-edit-src-content-indentation 0)
@@ -127,9 +125,9 @@
;; Set org agenda dir
(setq org-directory "~/org/")
;; Open links in browser
;; Open links in browser
(setq browse-url-browser-function 'browse-url-generic
browse-url-generic-program "firefox")
browse-url-generic-program "firefox")
;; Init org font setup
(opal/org-font-setup))
@@ -160,9 +158,6 @@
(push '("conf-unix" . conf-unix) org-src-lang-modes))
;; Set geiser default language
(setq geiser-default-implementation '(guile))
(with-eval-after-load 'org
(require 'org-tempo)
(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 '("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
:commands vterm
:config

View File

@@ -7,7 +7,7 @@
["#282c34" "#ff6c6b" "#98be65" "#ECBE7B" "#51afef" "#c678dd" "#46D9FF" "#bbc2cf"])
'(auth-source-save-behavior nil)
'(custom-safe-themes
'("944d52450c57b7cbba08f9b3d08095eb7a5541b0ecfb3a0a9ecd4a18f3c28948" "dad40020beea412623b04507a4c185079bff4dcea20a93d8f8451acb6afc8358" "a0415d8fc6aeec455376f0cbcc1bee5f8c408295d1c2b9a1336db6947b89dd98" "a9a67b318b7417adbedaab02f05fa679973e9718d9d26075c6235b1f0db703c8" "1704976a1797342a1b4ea7a75bdbb3be1569f4619134341bd5a4c1cfb16abad4" "b5803dfb0e4b6b71f309606587dd88651efe0972a5be16ece6a958b197caeed8" default))
'("f053f92735d6d238461da8512b9c071a5ce3b9d972501f7a5e6682a90bf29725" "944d52450c57b7cbba08f9b3d08095eb7a5541b0ecfb3a0a9ecd4a18f3c28948" "dad40020beea412623b04507a4c185079bff4dcea20a93d8f8451acb6afc8358" "a0415d8fc6aeec455376f0cbcc1bee5f8c408295d1c2b9a1336db6947b89dd98" "a9a67b318b7417adbedaab02f05fa679973e9718d9d26075c6235b1f0db703c8" "1704976a1797342a1b4ea7a75bdbb3be1569f4619134341bd5a4c1cfb16abad4" "b5803dfb0e4b6b71f309606587dd88651efe0972a5be16ece6a958b197caeed8" default))
'(exwm-floating-border-color "#191b20")
'(fci-rule-color "#5B6268")
'(highlight-tail-colors

View File

@@ -125,7 +125,7 @@
;;fsharp ; ML stands for Microsoft's Language
;;fstar ; (dependent) types and (monadic) effects and Z3
;;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
;;hy ; readability of scheme w/ speed of python
;;idris ; a language you can depend on
@@ -152,7 +152,7 @@
;;raku ; the artist formerly known as perl6
;;rest ; Emacs as a REST client
;;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()
;;scala ; java, but good
;;(scheme +guile) ; a fully conniving family of lisps
@@ -175,7 +175,7 @@
;;emms
;;everywhere ; *leave* Emacs!? You must be joking
;;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
:config

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

After

Width:  |  Height:  |  Size: 416 KiB

View File

@@ -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---
https://landchad.net/rss.xml
https://videos.lukesmith.xyz/feeds/videos.xml?videoChannelId=2 "~Luke Smith (Videos)"
https://pluralistic.net/feed/
https://blog.privacyguides.org/feed_rss_created.xml
---News---
https://thegrayzone.com/rss
https://multipolarista.com/rss
---Podcasts---
https://feeds.simplecast.com/dCXMIpJz "Last Podcast On the Left"
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"
---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

View 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

View File

@@ -2,4 +2,4 @@
style=Fusion
icon_theme=Papirus-Dark
custom_palette=true
color_scheme_path=~/.config/qt5ct/colors/dracula.conf
color_scheme_path=~/.config/qt5ct/colors/manegarm.conf

View File

@@ -168,7 +168,7 @@ bindsym $mod+Shift+e exec wlogout -p layer-shell
exec_always dunst
# 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
exec /usr/bin/udiskie &
@@ -192,13 +192,13 @@ exec hash dbus-update-activation-environment 2>/dev/null && dbus-update-activati
# Window Borders
default_border pixel 3
default_floating_border none
client.focused "#6400b0" "#7607e6" "#ffffff" "#6400b0"
client.focused "#38761d" "#38761d" "#ffffff" "#38761d"
set $opacity 0.90
for_window [class="Emacs"] opacity $opacity
for_window [app_id="dolphin"] 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
smart_gaps on
@@ -235,6 +235,11 @@ input type:keyboard {
repeat_rate 45
}
# input "TPPS/2 Elan TrackPoint" {
# accel_profile "adaptive"
# pointer_accel 0.1
# }
# Hide mouse cursor after inactivity
seat * hide_cursor 10000
@@ -245,7 +250,7 @@ bindswitch --reload --locked lid:off output $laptop enable
# Monitors
# You can get the names of your outputs by running: swaymsg -t get_outputs
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+n output "HDMI-A-1" disable

View File

@@ -1,5 +1,5 @@
# Image
image=~/.config/wallpapers/dante-bite.jpg
image=~/.config/wallpapers/exterminator.png
scaling=fill
# Indicator

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

View File

@@ -1,10 +1,10 @@
{
"layer": "top",
"position": "top",
"height": 35,
"height": 44,
"modules-left": ["sway/workspaces"],
"modules-center": ["clock"],
"modules-right": ["custom/l_end","custom/wlsunset","custom/padd","pulseaudio", "custom/padd","network", "custom/padd","battery", "tray", "custom/power","custom/padd"],
"modules-center": ["clock","custom/padd","custom/weather"],
"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": {
"disable-scroll": true,
"all-outputs": true,
@@ -21,26 +21,36 @@
},
"clock": {
"format": "{:  %H:%M  %A %B %d}",
"format": "{:  %H:%M  %a %B %d}",
"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": {
"interval": 30,
"interval": 15,
"states": {
// "good": 95,
"warning": 30,
"critical": 15
},
"full-at": "99",
"format": " {capacity}%",
"format-good": " {capacity}%", // An empty format will hide the module
"format-full": "<span size='large' rise='-1600'></span> Full",
"format-charging": "<span size='large' rise='-1600'></span> {capacity}% "
"format": "<span font='Font Awesome 5 Free 11'>{icon}</span> {capacity}%",
"format-icons": ["󰁺","󰁻", "󰁼","󰁽", "󰁾", "󰁿", "󰂀", "󰂁", "󰂂", "󰁹"],
"format-good": "󰁹 {capacity}%", // An empty format will hide the module
"format-full": "󰁹 Full",
"format-charging": "󱐋{capacity}% "
},
"custom/wlsunset": {
"format": "<span size='large'></span>",
"format-icons": ["", ""],
"format": "<span size='large'>{icon}</span>",
"format-icons": [""],
"on-click": "wlsunset -l 47.6 -L -122.3 -t 3000 -T 6500"
},
"network": {
@@ -67,7 +77,7 @@
},
"custom/power": {
"format": "{}",
"format": "󰐥{}",
//"exec": "echo ; echo  logout",
"on-click": "wlogout -p layer-shell",
"interval" : 86400, // once every day

30
.config/waybar/scripts/music.py Executable file
View 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}")

View 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)

View File

@@ -1,92 +1,70 @@
\* {
/* General styles */
* {
border: none;
border-radius: 0;
font-family: Iosevka, FontAwesome;
font-size: 15px;
min-height: 0;
color: #bebebe;
}
window#waybar {
opacity: 0.7;
background: #000000;
color: #bebebe;
}
/* Specific module styles */
#workspaces button {
color: #bebebe;
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 {
color: white;
margin: 5px 10px 0 10px;
}
#workspaces button.urgent{
margin: 5px 10px 0 10px;
padding: 0px 8px 0px 8px;
#workspaces button.urgent {
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
border-radius: 7px;
}
}
#mode {
font-family: "Iosevka";
margin: 0px 15px 0px 15px;
padding: 0px 12px 0px 12px;
color: black;
background: white;
}
#battery{
color: #bebebe;
margin:7px 4px 0 4px;
#battery {
/* margin: top right bottom left; */
margin: 8px 2px 8px 2px;
border-radius: 5px;
padding: 0px 5px 0px 5px;
}
}
#network {
color: #bebebe;
margin:7px 4px 4px 4px;
font-size: 16.5px;
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 {
to {
background: rgba(187,56,0, 1);
border-radius: 7px;
margin:7px 4px 0 4px;
padding: 3px 8px 2px 8px;
background: rgba(187,56,0, 1);
border-radius: 7px;
}
}
@keyframes urgent {
to {
background: rgba(212,140,0, 1);
color: black;
border-radius: 7px;
background: rgba(212,140,0, 1);
color: black;
border-radius: 7px;
}
}
#battery.critical:not(.charging) {
padding: 0px 6px 0px 6px;
color: #bebebe;
animation-name: critical;
animation-duration: 0.5s;
animation-timing-function: linear;
@@ -95,54 +73,38 @@ window#waybar {
}
#clock {
border: none;
color: #bebebe;
font-family: Manjari;
font-size: 16.5px;
border-radius: 0;
padding: 3px 6px 2px 0px;
}
#clock:hover {
box-shadow: inherit;
text-shadow: inherit;
background: inherit;
#custom-weather {
font-family: Manjari;
}
#custom-wlsunset {
margin:7px 4px 0 4px;
color: #bebebe;
border: none;
border-radius: 0;
/* padding: 0px px 5px 0px; */
#custom-music {
font-family: Manjari;
}
#custom-wlsunset:hover {
box-shadow: inherit;
text-shadow: inherit;
background: inherit;
}
#custom-wlsunset {}
#pulseaudio {
background: transparent;
margin:7px 4px 0 4px;
font-size: 16.5px;
color: #bebebe;
/* border-radius: 5px; */
/* padding: 0px 5px 0px 5px; */
}
#custom-power {
/* margin: top right bottom left; */
margin:0px 3px 0px 5px;
border-radius: 6px;
}
#tray {
margin: 7px 15px 3px 4px;
/* margin: top right bottom left; */
margin: 8px 2px 8px 2px;
background: rgba(40,40,40, .65);
border-radius: 6px;
padding: 5px 3px 5px 5px;
padding: 5px 5px 5px 5px;
}
#idle_inhibitor {
color: #bebebe;
background: transparent;
margin: 7px 4px 0 4px;
border-radius: 6px;
padding: 0px 5px 0px 5px;
}