54 Commits

Author SHA1 Message Date
889f06070a visibleWorkspaces shortcut + weather now handles non-responses 2025-07-31 09:26:07 +02:00
b1b399fe30 removed community, sourcing .env 2025-04-11 10:26:26 +02:00
7f1d9640b6 new work display setup 2025-03-06 13:47:29 +01:00
8d2f51b64a added layout switcher for archfw 2025-01-13 22:49:28 +01:00
617ba5815d added xsettingsd to easily update running x apps with new profile settings (e.g. DPI) , also added less & the correct greenclip 2025-01-09 10:35:00 +01:00
0494a6fe60 archfw setup 2025-01-03 09:37:26 +01:00
323698cd12 2024-12-12 2024-12-12 14:17:46 +01:00
1511a5c1a5 added docker for non-root and shuffled dep list 2024-12-08 13:52:26 +01:00
5aac22cb6d broken laptop backup 2024-12-07 15:43:05 +01:00
08585df3ac made config more themeable, switched over to Dracula in the process and now syncing the xfce4 settings 2024-06-17 15:27:35 +02:00
a715528931 replaced powerline with oh-my-posh, new deps and alias fixes 2024-06-11 22:59:12 +02:00
ec10ac7281 rofi ricing 2024-06-10 00:30:56 +02:00
1da8b7946f removed old config, added godot floating window and also removed borders on all windows 2024-06-04 13:48:07 +02:00
dd5f32a6eb fixed lock screen activation on suspend. Thanks Suayip :* 2024-04-09 18:45:06 +02:00
0a67016b07 fixed install.sh removing the entire home directory 2024-04-04 11:47:18 +02:00
c584e93215 Merge pull request #3 from Mastermindzh/experiment/polybar
Experiment/polybar
2024-03-04 11:35:05 +01:00
d765b9f902 move workspaces + pdf conversion options 2024-03-04 11:34:18 +01:00
39a0a5ea72 chore: split aliases 2023-12-10 00:02:08 +01:00
4308782feb added games mount, new wallpaper and mergepdf using poppler 2023-06-09 10:44:00 +02:00
f84faba675 fix: now readings 'artists' property instead of artist from tidal 2023-05-14 11:26:34 +02:00
2bca0d2231 Merge pull request #2 from Mastermindzh/experiment/polybar
Experiment/polybar
2023-04-27 17:48:34 +02:00
69be245213 Merge branch 'experiment/polybar' of https://github.com/mastermindzh/dotfiles into experiment/polybar 2023-04-27 17:42:34 +02:00
55f777e6bc feat: added bitwarden 2023-04-27 17:42:31 +02:00
f6ce763e40 fix: grep now uses case insensitivity by default () 2023-04-27 10:38:26 +02:00
2abe975470 fix: added dpi setting to bar 2023-03-09 16:58:23 +01:00
6f35662f0c adding polybar setup 2023-03-09 10:21:15 +01:00
c2ae3d5fa0 chore: finally added hparchs setup :) 2023-02-05 13:50:06 +01:00
20cc3d92d1 new wallpapers 2023-02-02 22:37:52 +01:00
55fb2af9ba fix: updated icons & spacing in i3blocks 2023-02-01 23:35:09 +01:00
8cc0c54799 chore: lens extensions, bash profile, gopath, some new cli tool dependencies added 2023-01-20 17:46:34 +01:00
7dd46f40f8 removed code wallpaper, switched to thunar with engrampa, retired work-xps 2023-01-08 14:47:04 +01:00
c12253370e Merge branch 'master' of https://github.com/mastermindzh/dotfiles 2022-12-28 22:48:14 +01:00
af573cf273 switched back to xfce4-terminal 2022-12-28 22:48:06 +01:00
e6e9958ef4 Merge branch 'master' of https://github.com/mastermindzh/dotfiles 2022-11-22 14:00:58 +01:00
101b00c4fd feat:added auto NTP and timezone handling 2022-11-14 22:46:26 +02:00
8b033f7fc1 chore: new pics! 2022-11-10 10:53:47 +01:00
d2dd51c6a2 new terminal and font 2022-11-05 20:27:14 +01:00
f122ba659d Merge branch 'master' of https://github.com/mastermindzh/dotfiles 2022-09-25 13:16:51 +02:00
232e877fd4 small install script fixes :) 2022-09-25 13:15:31 +02:00
78f7d05ddf fixed undefined red color in rofi theme 2022-09-18 20:43:15 +02:00
528675c5e3 added picom again :) 2022-09-11 15:49:48 +02:00
732529102f 4k scaling for main pc :) (lg ergo 4k) 2022-08-27 20:51:00 +02:00
43134e0546 Merge branch 'master' of https://github.com/mastermindzh/dotfiles 2022-08-16 12:42:56 +02:00
ea15b7dc15 added new workspaces 2022-08-16 12:42:50 +02:00
ab3820fe8c added after install and syncLocalSettings.json 2022-08-03 21:59:52 +02:00
a1f57b67b8 added greenclip 2022-08-03 21:41:07 +02:00
414bb14b1b - Fixed i3lock re-using the last image
- Set up /etc/environment sharing
2022-08-03 21:28:16 +02:00
d28b21dcdf Added vers=2.1 to mount.cifs command in [mounts.sh](./bash/mounts.sh) to fix an [upstream bug](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.18.y&id=ca83f50b43a099345e61950f74c4d9eb81c765fe)
Added a `clean-all` command to clean trash of my hard drives
2022-07-26 11:47:00 +02:00
c0588adc42 added duf and strongswan to default apps 2022-07-19 08:54:04 +02:00
5d634bf601 printers and new npm config 2022-06-27 14:09:56 +02:00
e4b7f912ef revert of enpass workspace assignment 2022-05-23 10:15:52 +02:00
f47078a66a enpass name change, new flameshot shortcut 2022-05-22 14:23:50 +02:00
38f71bd854 adwaita dark 2022-05-16 17:14:42 +02:00
7a1b90c470 new software and format of alias 2022-05-16 17:00:57 +02:00
125 changed files with 2413 additions and 722 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
config/.npmrc

41
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,41 @@
{
"cSpell.words": [
"autohint",
"autorandr",
"dunst",
"dunstrc",
"greenclip",
"gtkrc",
"hintstyle",
"inotify",
"keygen",
"makepkg",
"mimeapps",
"nanorc",
"networkmanager",
"noconfirm",
"pacman",
"picom",
"polkit",
"polybar",
"poshthemes",
"powerline",
"pyenv",
"rgba",
"rofi",
"seafile",
"terminalrc",
"thefuck",
"timedatectl",
"trizen",
"usermod",
"xbacklight",
"xfconf",
"Xresources",
"zokugun"
],
"sonarlint.connectedMode.project": {
"connectionId": "public-sonarcloud",
"projectKey": "Mastermindzh_dotfiles"
}
}

26
CHANGELOG.md Normal file
View File

@@ -0,0 +1,26 @@
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to date versioning.
## [2024-12-12]
- Switched `notify-osd` for `dunst`
- Switched `pulseaudio` for `pipewire`
- **note** had to turn master volume on with `alsamixer` and use `sudo alsactl store` to keep the changes
- Included default Xresources file
- updated list with several new packages and removed some old ones
## [2022-08-03]
- Fixed i3lock re-using the last image
- Set up /etc/environment sharing
- Added in greenclip again
- added after install and syncLocalSettings.json
## [2022-07-26]
- Added `vers=2.1` to `mount.cifs` command in [mounts.sh](./bash/mounts.sh) to fix an [upstream bug](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.18.y&id=ca83f50b43a099345e61950f74c4d9eb81c765fe)
- Added a `clean-all` command to clean trash of my hard drives

View File

@@ -4,36 +4,43 @@ This repository holds my Linux config files.
## Mandatory unixporn screenshots ## Mandatory unixporn screenshots
New version as of dec 2021: New version as of January 2023:
[![dotfiles](media/dotfiles4.jpg)](https://raw.githubusercontent.com/Mastermindzh/dotfiles/master/media/dotfiles4.jpg) [![dotfiles](media/2024-dracula.png)](media/2024-dracula.png)
[![dotfiles](media/2024-dracula-2.png)](media/2024-dracula-2.png)
Older versions: Older versions:
- [dotfiles](media/dotfiles3.png) - [dotfiles6](media/dotfiles6.png)
- [dotfiles](media/dotfiles.png) - [dotfiles5-small](media/dotfiles-small-5.png)
- [dotfiles5](media/dotfiles5.png)
- [dotfiles4](https://raw.githubusercontent.com/Mastermindzh/dotfiles/master/media/dotfiles4.jpg)
- [dotfiles3](media/dotfiles3.png)
- [dotfiles2](media/dotfiles2.png) - [dotfiles2](media/dotfiles2.png)
- [dotfiles](media/dotfiles.png)
## Tools ## Tools
| Purpose | Tool | | Purpose | Tool |
| ---------------- | ---------------------------------------------------------------------- | | ---------------- | ---------------------------------------------------------------------- |
| WM | i3 (i3-gaps) | | WM | i3 (i3-gaps) |
| bar | polybar |
| App launcher | rofi | | App launcher | rofi |
| Shell | Bash | | Shell | Bash |
| Notifications | Dunst |
| Package managers | Pacman & Trizen | | Package managers | Pacman & Trizen |
| OS | Arch Linux | | OS | Arch Linux |
| Terminal | xfce4-terminal | | Terminal | xfce4-terminal |
| Editor | nano | | Editor | nano & mousepad |
| Code editor | vscode / jetbrains stuff | | Code editor | vscode |
| Browser | Firefox | | Browser | Firefox |
| File manager | If I have to use one ... Nautilus | | File manager | Thunar |
| Music | Tidal through [Tidal-hifi](https://github.com/Mastermindzh/tidal-hifi) | | Music | Tidal through [Tidal-hifi](https://github.com/Mastermindzh/tidal-hifi) |
| | |
## computer specifc setup ## computer specific setup
Nowadays I use a few different computers and I'd used to apply the base config and configure each pc on its own. Nowadays I use a few different computers and I used to apply the base config and configure each pc on its own.
I've grown tired of this approach however so I added a "pc specific" setup in the installer. I've grown tired of this approach however so I added a "pc specific" setup in the installer.
The pc specific setup bit will read the folder names in computers, offer you a choice, and execute the install.sh inside that folder. The pc specific setup bit will read the folder names in computers, offer you a choice, and execute the install.sh inside that folder.
@@ -41,11 +48,18 @@ This allows me to get pc specific settings synced with git and applied easily.
## Getting x info to use in i3 ## Getting x info to use in i3
Some things are handled by window class/title or have custom resolutions set, the tools below help obtaining the info required: Some things are handled by window class/title or have custom resolutions set, the tools below help obtain the info required:
- xprop -> displays static xwindow info including Window class - `xprop` -> displays static `xwindow` info including Window class
- xwininfo -> displays xwindow info including current size/position - `xwininfo` -> displays `xwindow` info including current size/position
## getting icons ## getting icons
Copy/paste icons from this url: [https://fontawesome.com/v5/cheatsheet](https://fontawesome.com/v5/cheatsheet) Copy/paste icons from these URLs:
- [https://fontawesome.com/v5/cheatsheet](https://fontawesome.com/v5/cheatsheet)
- [https://fonts.google.com/noto/specimen/Noto+Color+Emoji/glyphs?noto.query=noto+color+emoji](https://fonts.google.com/noto/specimen/Noto+Color+Emoji/glyphs?noto.query=noto+color+emoji)
## after-install
After install read [./docs/afterinstall.md](./docs/afterinstall.md)

View File

@@ -1,23 +1,6 @@
# useful dockers #!/bin/bash
alias phpserver='docker run --rm -p 2000:80 -v "$PWD":/var/www/html mastermindzh/php-xdebug' # source program-specific aliases:
alias nodeserver='docker run --rm -p 3000:3000 -v "$PWD":/app mastermindzh/generic_node' for f in ~/.aliases/*; do source "$f"; done
alias reactserver='docker run --rm -p 8080:8080 -v "$PWD":/app mastermindzh/generic_node'
alias mongoserver='docker run -d --rm -p 27017:27017 --name mongo-server -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=123 -v ~/.db/mongo:/data/db mongo'
alias sqlserver='docker run -d --rm --name sql-server -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Your_Password123" -p 1433:1433 -v ~/.db/mssql:/var/opt/mssql microsoft/mssql-server-linux'
# useful docker commands
alias stop-dockers='docker stop $(docker ps -aq)'
alias docker-clean-containers='docker container prune -f --filter "until=48h"'
alias docker-clean-images='docker image prune -a -f --filter "until=48h"'
alias docker-clean-volumes='docker volume prune -f --filter "label!=keep"'
alias docker-clean-networks='docker network prune -f --filter "until=24h"'
alias docker-clean-all='stop-dockers && docker-clean-containers && docker-clean-images && docker-clean-volumes && docker-clean-networks'
# Kubernetes commands
alias mkubectl='microk8s.kubectl'
alias kubestart='microk8s.start'
alias kubestop='microk8s.stop'
alias kubecontexts='kubectl config get-contexts'
#dotnet core #dotnet core
alias efupdate="dotnet ef database update" alias efupdate="dotnet ef database update"
@@ -33,10 +16,17 @@ alias undo-commit='git reset --soft HEAD^'
## pacman and trizen ## pacman and trizen
alias aur='trizen --noconfirm' alias aur='trizen --noconfirm'
alias update='trizen -Syu --noconfirm' alias update='trizen --sudo_remove_timestamp=0 --sudo_autorepeat=1 --sudo_autorepeat_at_runtime=1 -Syu --noconfirm'
alias remove-orphans='sudo pacman -Rns $(pacman -Qtdq)' alias remove-orphans='sudo pacman -Rns $(pacman -Qtdq)'
alias updatekeys='sudo pacman-key --refresh-key' alias updatekeys='sudo pacman-key --refresh-key'
alias updatemirrors='sudo reflector --latest 20 --protocol http,https --sort rate --save /etc/pacman.d/mirrorlist'
alias clean-pacmancache='sudo paccache -rk 1 && sudo paccache -ruk0' alias clean-pacmancache='sudo paccache -rk 1 && sudo paccache -ruk0'
alias clean-trizen-cache='sudo trizen -Scc'
alias clean-trash='sudo rm -rf ~/.local/share/Trash/*'
alias clean-journal='sudo journalctl --vacuum-time=2d'
alias clean-pacman-unused='sudo pacman -R $(pacman -Qtdq)'
alias clean-all='clean-pacman-unused && clean-pacmancache && clean-trizen-cache && docker-clean-all && clean-node_modules && clean-journal && clean-trash'
## systeminfo ## systeminfo
alias meminfo='free -mth' alias meminfo='free -mth'
@@ -49,9 +39,8 @@ alias preferredapps='exo-preferred-applications'
#show 5 most memory consuming apps #show 5 most memory consuming apps
alias psmem='ps auxf | sort -nr -k 5 | head -n 5' alias psmem='ps auxf | sort -nr -k 5 | head -n 5'
##utility # utility
alias nmapscan='nmap -n -sP' alias nmapscan='nmap -n -sP'
alias pia='nohup sh /opt/pia/run.sh &>/dev/null & disown'
alias wifimenu='nm-connection-editor' alias wifimenu='nm-connection-editor'
alias findcrlf='find . -path node_modules -prune -o -not -type d -exec file "{}" ";" | grep -E "BOM|CRLF"' alias findcrlf='find . -path node_modules -prune -o -not -type d -exec file "{}" ";" | grep -E "BOM|CRLF"'
alias fixcrlf='findcrlf > /tmp/crlftolf && cat /tmp/crlftolf | while read line; do CUTLINE=$(echo $line | cut -f1 -d":") && dos2unix $CUTLINE; done' alias fixcrlf='findcrlf > /tmp/crlftolf && cat /tmp/crlftolf | while read line; do CUTLINE=$(echo $line | cut -f1 -d":") && dos2unix $CUTLINE; done'
@@ -59,18 +48,20 @@ alias enable-wifi='sudo ip link set wlp2s0 up'
alias scan-wifi='sudo iw dev wlp2s0 scan' alias scan-wifi='sudo iw dev wlp2s0 scan'
alias pretty-json='python -m json.tool' alias pretty-json='python -m json.tool'
alias addpgpkey='gpg --recv-keys' alias addpgpkey='gpg --recv-keys'
alias clean-trash='sudo rm -rf ~/.local/share/Trash/*'
alias clean-journal='sudo journalctl --vacuum-time=2d'
alias clean-all='clean-trash && clean-journal && clean-pacmancache && docker-clean-all && clean-node-modules'
alias dotnet-install='~/.dotnet-install.sh --install-dir /usr/share/dotnet/ -channel Current -version ' alias dotnet-install='~/.dotnet-install.sh --install-dir /usr/share/dotnet/ -channel Current -version '
alias mountshares='sudo bash ~/dotfiles/bash/mounts.sh' alias mountshares='sudo bash ~/dotfiles/bash/mounts.sh'
alias echo-server='npx http-echo-server' alias echo-server='npx http-echo-server'
alias mountcalibre='sudo mount.cifs //10.10.1.11/books /mnt/calibre -o nobrl,user=mastermindzh,noperm,rw' alias mountcalibre='sudo mount.cifs //10.10.1.11/books /mnt/calibre -o nobrl,user=mastermindzh,noperm,rw'
alias xpid="xprop _NET_WM_PID | cut -d' ' -f3" alias xpid="xprop _NET_WM_PID | cut -d' ' -f3"
alias clean-node-modules='find . -name "node_modules" -type d -print0 |xargs -0 rm -r --' alias clean-obj-bin='sudo find . -name "bin" -o -name "obj" -exec rm -rf {} \;'
alias nomachine='/usr/NX/bin/nxplayer' alias nomachine='/usr/NX/bin/nxplayer'
alias unlockuser='faillock --reset --user' alias unlockuser='faillock --reset --user'
alias npm-list-links='npm ls -g --depth=0 --link=true' alias npm-list-links='npm ls -g --depth=0 --link=true'
alias suspend='sudo bash ~/.config/i3/scripts/suspend.sh'
alias clean-all='sudo pacman -R $(pacman -Qtdq) && sudo paccache -rk 1 && sudo paccache -ruk0 && sudo journalctl --vacuum-time=2d && docker-clean-all && rm -rf ~/.local/share/Trash/'
alias delete-empty='find . -type d -empty -delete'
alias addwireguard='sudo nmcli connection import type wireguard file '
alias defaultfonts='for family in serif sans-serif monospace Arial Helvetica Verdana "Times New Roman" "Courier New"; do echo -e "\033[1m$family: \033[0m" && fc-match "$family" && echo ""; done'
# might be useful in demos... # might be useful in demos...
alias oopsie='fuck' alias oopsie='fuck'
@@ -96,6 +87,10 @@ alias la='ls -al'
# show external ip # show external ip
alias cmyip='curl -s http://ipecho.net/plain; echo' alias cmyip='curl -s http://ipecho.net/plain; echo'
# File merging
alias pngtopdf="convert *.png"
alias jpgtopdf="convert *.jpg"
## default command fixes :P ## default command fixes :P
alias mkdir='mkdir -p' alias mkdir='mkdir -p'
alias wget='wget -c' alias wget='wget -c'
@@ -109,6 +104,14 @@ alias handbrake='ghb'
alias cal='cal -mw --color' alias cal='cal -mw --color'
alias chrome='google-chrome-stable' alias chrome='google-chrome-stable'
alias teams='teams-insiders --disable-seccomp-filter-sandbox' alias teams='teams-insiders --disable-seccomp-filter-sandbox'
alias cat='bat'
alias grep='grep -i'
alias cura='cura -platformtheme gtk3'
## command overrides
df() {
duf
}
# grub # grub
alias update-grub='grub-mkconfig -o /boot/grub/grub.cfg' alias update-grub='grub-mkconfig -o /boot/grub/grub.cfg'
@@ -117,28 +120,28 @@ alias update-grub='grub-mkconfig -o /boot/grub/grub.cfg'
# function to cd up a couple of times # function to cd up a couple of times
# USAGE: up 3 (goes up 3 directories) # USAGE: up 3 (goes up 3 directories)
up(){ up() {
DEEP=$1; DEEP=$1
[ -z "${DEEP}" ] && { DEEP=1; }; [ -z "${DEEP}" ] && { DEEP=1; }
for i in $(seq 1 ${DEEP}); do for i in $(seq 1 ${DEEP}); do
cd ../; cd ../
done; done
} }
# function to extract ... well anything really # function to extract ... well anything really
extract () { extract() {
if [ -f $1 ] ; then if [ -f "$1" ]; then
case $1 in case "$1" in
*.tar.bz2) tar xvjf $1 ;; *.tar.bz2) tar xvjf "$1" ;;
*.tar.gz) tar xvzf $1 ;; *.tar.gz) tar xvzf "$1" ;;
*.bz2) bunzip2 $1 ;; *.bz2) bunzip2 "$1" ;;
*.rar) unrar x $1 ;; *.rar) unrar x "$1" ;;
*.gz) gunzip $1 ;; *.gz) gunzip "$1" ;;
*.tar) tar xvf $1 ;; *.tar) tar xvf "$1" ;;
*.tbz2) tar xvjf $1 ;; *.tbz2) tar xvjf "$1" ;;
*.tgz) tar xvzf $1 ;; *.tgz) tar xvzf "$1" ;;
*.zip) unzip $1 ;; *.zip) unzip "$1" ;;
*.Z) uncompress $1 ;; *.Z) uncompress "$1" ;;
*.7z) 7z x $1 ;; *.7z) 7z x "$1" ;;
*) echo "don't know how to extract '$1'..." ;; *) echo "don't know how to extract '$1'..." ;;
esac esac
else else
@@ -147,61 +150,54 @@ extract () {
} }
# function to return uptime in a human readable format # function to return uptime in a human readable format
myuptime () { myuptime() {
uptime | awk '{ print "Uptime:", $3, $4, $5 }' | sed 's/,//g' uptime | awk '{ print "Uptime:", $3, $4, $5 }' | sed 's/,//g'
return; return
} }
# function to check whether a specific host is up # function to check whether a specific host is up
isup(){ isup() {
if ! [ -z "$1" ]; then if ! [ -z "$1" ]; then
ping -c 3 $1 > /dev/null 2>&1 ping -c 3 $1 >/dev/null 2>&1
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "$1 seems to be offline"; echo "$1 seems to be offline"
else else
echo "$1 seems to be online"; echo "$1 seems to be online"
fi fi
fi fi
} }
# function to print a line across the screen # function to print a line across the screen
printLine(){ printLine() {
printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' - printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' -
} }
# function to kill a port # function to kill a port
killport () { killport() {
if [ -z "$1" ] ; then if [ -z "$1" ]; then
echo "please specify a port to kill" echo "please specify a port to kill"
else else
fuser -k $1/tcp fuser -k "$1/tcp"
fi fi
} }
# function to switch kubernetes namespace # merges all pdfs in current directory into a new pdf
kubenamespaceswitch () { mergepdf() {
if [ -z "$1" ] ; then if [ -z "$1" ]; then
echo "please specify a namespace to switch to" echo "please provide an output name for your pdf file: mergepdf out.pdf"
else else
kubectl config set-context --current --namespace=$1 pdfunite ./*.pdf "$1"
fi fi
} }
# function to switch kubernetes context # sign a file using the signing key
kubecontextswitch () { signfile() {
if [ -z "$1" ] ; then if [ -z "$1" ]; then
echo "please specify a context to switch to, the following contexts are available:" echo "please provide a file to sign: signfile file-to-sign.pdf"
kubectl config get-contexts
else else
kubectl config use-context "$1" ssh-keygen -Y sign -f ~/.ssh/signing-key.pub -n file "$1"
fi fi
} }
# function to switch to a different azure kubernetes cluster alias "set-timezone-romania"='timedatectl set-timezone Europe/Bucharest'
azkubeswitch () { alias "set-timezone-netherlands"=' timedatectl set-timezone Europe/Amsterdam'
if [ -z "$2" ] ; then
echo "please execute with the following params: azkubeswitch {resourcegroupname} {clustername}"
else
az aks get-credentials --resource-group $1 --name $2
fi
}

18
bash/.aliases/docker.sh Normal file
View File

@@ -0,0 +1,18 @@
#!/bin/bash
# useful docker commands
alias stop-dockers='if [ $(docker ps -aq | wc -l) != 0 ]; then docker stop $(docker ps -aq); fi'
alias docker-clean-containers='docker container prune -f --filter "until=48h"'
alias docker-clean-images='docker image prune -a -f --filter "until=48h"'
alias docker-clean-volumes='docker volume prune -f --filter "label!=keep"'
alias docker-clean-networks='docker network prune -f --filter "until=24h"'
alias docker-clean-all='stop-dockers && docker-clean-containers && docker-clean-images && docker-clean-volumes && docker-clean-networks'
# useful dockers
alias phpserver='docker run --rm -p 2000:80 -v "$PWD":/var/www/html mastermindzh/php-xdebug'
alias nodeserver='docker run --rm -p 3000:3000 -v "$PWD":/app mastermindzh/generic_node'
alias reactserver='docker run --rm -p 8080:8080 -v "$PWD":/app mastermindzh/generic_node'
alias mongoserver='docker run -d --rm -p 27017:27017 --name mongo-server -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=123 -v ~/.db/mongo:/data/db mongo'
alias sqlserver='docker run --rm --name sql-server -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Your_Password123" -p 1433:1433 -v ~/.db/mssql:/var/opt/mssql mcr.microsoft.com/mssql/server'
alias mailcatcher='docker run -d -p 1080:1080 -p 1025:1025 --name mailcatcher schickling/mailcatcher'
alias openwebui='docker run --rm -d -p 3004:8080 -v ~/.ollama:/root/.ollama -v ~/.open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:ollama'
alias postgresdb='docker run --rm -d -v ~/.db/postgres:/var/lib/postgresql/data -e POSTGRES_PASSWORD=admin -e POSTGRES_USER=admin -e POSTGRES_DB=postgres --name="postgres" -p 5432:5432 postgres'

View File

@@ -0,0 +1,50 @@
#!/bin/bash
# Kubernetes commands
alias mkubectl='microk8s.kubectl'
alias kubestart='microk8s.start'
alias kubestop='microk8s.stop'
alias kubecontexts='kubectl config get-contexts'
# function to switch kubernetes namespace
kubenamespaceswitch() {
if [ -z "$1" ]; then
echo "please specify a namespace to switch to"
else
kubectl config set-context --current --namespace="$1"
fi
}
# function to switch kubernetes context
kubecontextswitch() {
if [ -z "$1" ]; then
echo "please specify a context to switch to, the following contexts are available:"
kubectl config get-contexts
else
kubectl config use-context "$1"
fi
}
# function to switch to a different azure kubernetes cluster
azkubeswitch() {
if [ -z "$2" ]; then
echo "please execute with the following params: azkubeswitch {resourcegroupname} {clustername}"
else
az aks get-credentials --resource-group "$1" --name "$2"
fi
}
# get old resources from kubernetes
kube-get-old() {
if [ -z "$1" ]; then
echo "please provide a resource type, examples:"
echo " kube-get-old pods"
echo " kube-get-old namespaces"
echo ""
echo "you can pass extra arguments as the second param, examples:"
echo " kube-get-old pods --all-namespaces"
echo ' kube-get-old namespaces "--all-namespaces --second"'
else
kubectl get "$1" ${2:+"$2"} -o go-template --template '{{range .items}}{{.metadata.name}} {{.metadata.creationTimestamp}}{{"\n"}}{{end}}' | awk -v twoWeeksAgo="date -d '-14 days'" -F':' '$2<twoWeeksAgo' | awk '{print $1}'
fi
}

4
bash/.aliases/node.sh Normal file
View File

@@ -0,0 +1,4 @@
#!/bin/bash
alias clean-node-modules='find . -not -path "*/.*" -name "node_modules" -type d -print0 | xargs -0 rm -rf'
alias organize-package-json='npx format-package -w && npx sort-package-json'

View File

@@ -1,13 +1,7 @@
#!/bin/bash #!/bin/bash
# if powerline-shell is available use it.
function _update_ps1() {
if hash powerline-rs 2>/dev/null; then
PS1="$(powerline-rs --shell bash $?)"
fi
}
# sourceIfExists # sourceIfExists
function sourceIfExists () { function sourceIfExists() {
[[ -f "$1" ]] && source "$1" [[ -f "$1" ]] && source "$1"
} }
@@ -17,8 +11,12 @@ function sourceIfExists () {
source ~/.alias source ~/.alias
source ~/.custom source ~/.custom
source ~/.variables source ~/.variables
sourceIfExists ~/.env
sourceIfExists /usr/share/nvm/init-nvm.sh
sourceIfExists ~/lib/azure-cli/az.completion sourceIfExists ~/lib/azure-cli/az.completion
eval "$(thefuck --alias)" eval "$(thefuck --alias)"
eval "$(oh-my-posh init bash --config ~/.config/poshthemes/mastermindzh.yaml)"
# load keychain with private key # load keychain with private key
if test -f "$HOME/.ssh/id_ed25519"; then if test -f "$HOME/.ssh/id_ed25519"; then
@@ -30,20 +28,11 @@ fi
eval "$(pyenv init -)" eval "$(pyenv init -)"
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
if hash dotnet 2>/dev/null; then if hash dotnet 2>/dev/null; then
export DOTNET_ROOT=/usr/share/dotnet export DOTNET_ROOT=/usr/share/dotnet
export MSBuildSDKsPath=$DOTNET_ROOT/sdk/$(${DOTNET_ROOT}/dotnet --version)/Sdks MSBuildSDKsPathVersion=$(${DOTNET_ROOT}/dotnet --version)
export MSBuildSDKsPath=$DOTNET_ROOT/sdk/$MSBuildSDKsPathVersion/Sdks
export PATH="${PATH}:${DOTNET_ROOT}:~/.dotnet/tools" export PATH="${PATH}:${DOTNET_ROOT}:~/.dotnet/tools"
fi fi
PS1='[\u@\h \W]\$ '
if [[ $TERM != linux && ! $PROMPT_COMMAND =~ _update_ps1 ]]; then
PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND"
fi
export PATH=$PATH:/home/mastermindzh/bin export PATH=$PATH:/home/mastermindzh/bin

View File

@@ -1,3 +1,16 @@
{ {
"segments": ["virtual_env", "ssh", "cwd", "git", "hg", "jobs", "root"] "segments": [
"virtual_env",
"ssh",
"cwd",
"git",
"jobs",
"root"
],
"cwd": {
"max_depth": 5
},
"vcs": {
"show_symbol": "true"
}
} }

View File

@@ -9,7 +9,6 @@ fi
# declare variables # declare variables
MY_SERVER_LOCATION="//10.10.1.11" MY_SERVER_LOCATION="//10.10.1.11"
MOUNT_PREFIX="/mnt" MOUNT_PREFIX="/mnt"
USERNAME="mastermindzh"
# check whether array contains a key # check whether array contains a key
containsElement() { containsElement() {
@@ -71,6 +70,26 @@ declare -A MOUNTS9=(
[share]="emulation" [share]="emulation"
[mount]="emulation" [mount]="emulation"
) )
declare -A MOUNTS10=(
[server]="$MY_SERVER_LOCATION"
[share]="audiobooks"
[mount]="audiobooks"
)
declare -A MOUNTS11=(
[server]="$MY_SERVER_LOCATION"
[share]="games"
[mount]="games"
)
declare -A MOUNTS12=(
[server]="$MY_SERVER_LOCATION"
[share]="data"
[mount]="data"
)
declare -A MOUNTS13=(
[server]="$MY_SERVER_LOCATION"
[share]="vault"
[mount]="vault"
)
# declare array with "objects" # declare array with "objects"
declare -n MOUNTS declare -n MOUNTS
@@ -121,10 +140,10 @@ for MOUNTS in ${!MOUNTS@}; do
SERVER_LOCATION="$MY_SERVER_LOCATION/${MOUNTS[share]}" SERVER_LOCATION="$MY_SERVER_LOCATION/${MOUNTS[share]}"
MOUNT_LOCATION="$MOUNT_PREFIX/${MOUNTS[mount]}" MOUNT_LOCATION="$MOUNT_PREFIX/${MOUNTS[mount]}"
mount.cifs "$SERVER_LOCATION" "$MOUNT_LOCATION" -o user=mastermindzh,noperm,rw mount.cifs "$SERVER_LOCATION" "$MOUNT_LOCATION" -o user=mastermindzh,noperm,rw,vers=2.0
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
echo "Succesfully mounted $MOUNT_LOCATION" echo "Successfully mounted $MOUNT_LOCATION"
else else
echo "Failed mounting $SERVER_LOCATION on $MOUNT_LOCATION" echo "Failed mounting $SERVER_LOCATION on $MOUNT_LOCATION"
fi fi

51
bash/rofi/docker.sh Normal file
View File

@@ -0,0 +1,51 @@
#!/usr/bin/bash
#Set default terminal emulator
TERMINAL_APP=xfce4-terminal
CUSTOM_SCRIPTS_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)/custom"
function execInTerminal {
$TERMINAL_APP -H -e "$1"
}
function getExtraActions {
local custom_scripts=""
if [ -d "$CUSTOM_SCRIPTS_DIR" ]; then
for file in "$CUSTOM_SCRIPTS_DIR"/*; do
custom_scripts="$custom_scripts\n$(basename "$file")"
done
fi
echo "$custom_scripts"
}
selected_container=$(docker ps --format "table {{.Names}}\t{{.Image}}\t{{.ID}}" | sed '1d' | rofi -p "🥡 Running containers " -dmenu)
container_options_attach="Attach"
container_options_stop="Stop"
container_options_logs="Logs"
container_options_restart="Restart"
if [[ ! -z $selected_container ]]; then
container_id=$(echo "$selected_container" | awk '{ print $3}')
container_name=$(echo "$selected_container" | awk '{ print $1}')
selected_action=$(echo -e "$container_options_attach\n$container_options_logs\n$container_options_restart\n$container_options_stop$(getExtraActions)" | rofi -dmenu -selected-row 0)
case $selected_action in
"$container_options_attach")
execInTerminal "docker exec -it ${container_id} /bin/sh"
;;
"$container_options_restart")
msg=$(docker restart "$container_id")
rofi -e "Message from the docker: $msg"
;;
"$container_options_logs")
execInTerminal "docker logs -f ${container_id}"
;;
"$container_options_stop")
msg=$(docker stop "$container_id")
rofi -e "Message from the docker: $msg"
;;
*)
bash "$CUSTOM_SCRIPTS_DIR/$selected_action" "$container_name"
;;
esac
fi

View File

@@ -0,0 +1,8 @@
Xft.hinting: true
rofi.dpi: 160
dpi: 150
Xcursor.size: 50
Xft.hintstyle: hintslight
Xft.rgba: rgba
Xft.antialias: true
Xft.dpi: 160

4
computers/archfw/.bashrc Normal file
View File

@@ -0,0 +1,4 @@
#!/bin/bash
alias dock='bash ~/dotfiles/computers/archfw/displaySwitch.sh docked'
alias undock='bash ~/dotfiles/computers/archfw/displaySwitch.sh undocked'
alias displaySwitch='bash ~/dotfiles/computers/archfw/displaySwitch.sh'

View File

@@ -0,0 +1,7 @@
Xft/Antialias 1
Xft/Hinting 1
Xft/HintStyle "hintfull"
Xft/lcdfilter "lcddefault"
Xft/RGBA "rgb"
Xft/DPI 110592

View File

@@ -0,0 +1,76 @@
#!/bin/bash
# Define the layouts
layouts=("undocked" "docked")
# Define the settings for each layout
declare -A undocked_settings=(
["Xft.antialias"]="true"
["Xft.hinting"]="true"
["Xft.rgba"]="rgba"
["Xft.hintstyle"]="hintslight"
["Xcursor.size"]="50"
["Xft.dpi"]="160"
["rofi.dpi"]="160"
["dpi"]="150"
)
declare -A docked_settings=(
["Xft.antialias"]="true"
["Xft.hinting"]="true"
["Xft.rgba"]="rgba"
["Xft.hintstyle"]="hintslight"
["Xcursor.size"]="25"
["Xft.dpi"]="110"
["rofi.dpi"]="110"
["dpi"]="110"
)
function updateXSettings() {
local dpi=$1
local dpi_value=$((dpi * 1024))
sed -i -E "/Xft\/DPI/s/[0-9]+/$dpi_value/" ~/.xsettingsd
killall -HUP xsettingsd
}
function applyLayout() {
local layout=$1
case $layout in
"undocked")
xrandr --output eDP --primary --mode 2880x1920 --pos 0x0 --rotate normal --output DisplayPort-0 --off --output DisplayPort-1 --off --output DisplayPort-2 --off --output DisplayPort-3 --off --output DisplayPort-4 --off --output DisplayPort-5 --off --output DisplayPort-6 --off --output DisplayPort-7 --off
updateXResources undocked_settings
updateXSettings ${undocked_settings["dpi"]}
;;
"docked")
xrandr --output eDP --off --output DisplayPort-0 --off --output DisplayPort-1 --off --output DisplayPort-2 --off --output DisplayPort-3 --primary --mode 2560x1440 --pos 0x0 --rotate normal --output DisplayPort-4 --off --output DisplayPort-5 --off --output DisplayPort-6 --off --output DisplayPort-7 --off
updateXResources docked_settings
updateXSettings ${docked_settings["dpi"]}
;;
*)
echo "Unknown layout: $layout"
exit 1
;;
esac
}
function updateXResources() {
local -n settings=$1
true >~/.Xresources
for key in "${!settings[@]}"; do
echo "$key: ${settings[$key]}" >>~/.Xresources
done
xrdb -merge ~/.Xresources
}
layout=$1
if [ -z "$layout" ]; then
layout=$(zenity --list --title="Select Monitor Layout" --column="Layout" "${layouts[@]}")
fi
if [ -n "$layout" ]; then
applyLayout "$layout"
i3-msg restart
else
echo "No layout selected."
exit 1
fi

View File

@@ -0,0 +1,5 @@
#!/bin/bash
MY_PATH=$PWD/computers/archfw
# custom (laptop specific) bashrc thingies :)
ln -sf "$MY_PATH/.bashrc" ~/.custom

View File

@@ -0,0 +1,6 @@
Xft.dpi: 140
Xft.antialias: true
Xft.hinting: true
Xft.rgba: rgb
Xft.hintstyle: hintfull
Xft.autohint: 0

View File

@@ -1,5 +1,6 @@
#/bin/bash #!/bin/bash
MYPATH="$PWD/computers/dev-pc" MYPATH="$PWD/computers/dev-pc"
ln -sf "$MYPATH/xprofile.sh" ~/.xprofile ln -sf "$MYPATH/xprofile.sh" ~/.xprofile
ln -sf "$MYPATH/.Xresources" ~/.Xresources

View File

@@ -1,2 +1,4 @@
#!/bin/sh #!/bin/sh
xrandr --output DVI-I-0 --off --output DVI-I-1 --off --output HDMI-0 --primary --mode 1920x1080 --pos 0x0 --rotate normal --output DP-0 --off --output DP-1 --off --output DVI-D-0 --off export GDK_DPI_SCALE=1
export ELM_SCALE=1
export QT_AUTO_SCREEN_SCALE_FACTOR=1

View File

@@ -0,0 +1,9 @@
#!/bin/bash
# startup stuffs
#/bin/bash
displays=($(xrandr | awk '/ connected /{print $1}'))
selected_display="${displays[0]}"
xrandr --output "$selected_display" --brightness 0.60
# power savings

View File

@@ -0,0 +1,3 @@
#!/bin/bash
MYPATH=$PWD/computers/hparch
ln -sf "$MYPATH/.xprofile" ~/.xprofile

8
config/.Xresources Normal file
View File

@@ -0,0 +1,8 @@
Xft.antialias: true
Xft.hinting: true
Xft.rgba: rgba
Xft.hintstyle: hintslight
Xcursor.size: 12
# hi-dpi
#Xft.dpi: 120

8
config/.bash_profile Normal file
View File

@@ -0,0 +1,8 @@
#
# ~/.bash_profile
#
export GOBIN="/home/mastermindzh/.go"
export PATH="$PATH:$(go env GOBIN):$(go env GOPATH)/bin"
[[ -f ~/.bashrc ]] && . ~/.bashrc

View File

@@ -1,6 +1,6 @@
[user] [user]
email = info@rickvanlieshout.com email = info@rickvanlieshout.com
name = Mastermindzh name = Rick van Lieshout
[alias] [alias]
tree = log --graph --decorate --pretty=format:'%ar [%h] %an <%ae> - %s' tree = log --graph --decorate --pretty=format:'%ar [%h] %an <%ae> - %s'
graph = log --graph --pretty=format:'%C(bold)%h%Creset%C(magenta)%d%Creset %s %C(yellow)<%an> %C(cyan)(%cr)%Creset' --abbrev-commit --date=relative graph = log --graph --pretty=format:'%C(bold)%h%Creset%C(magenta)%d%Creset %s %C(yellow)<%an> %C(cyan)(%cr)%Creset' --abbrev-commit --date=relative
@@ -16,3 +16,8 @@
rebase = false rebase = false
[init] [init]
defaultBranch = master defaultBranch = master
[filter "lfs"]
required = true
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
process = git-lfs filter-process

View File

@@ -1,3 +0,0 @@
init.author.name=Rick van Lieshout
init.author.email=info@rickvanlieshout.com
init.author.url=http://rickvanlieshout.com

35
config/autorandr/postswitch Executable file
View File

@@ -0,0 +1,35 @@
#!/bin/bash -x
move_workspace() {
workspace="$1"
output="$2"
i3-msg "[workspace=\"$workspace\"]" move workspace to output "$output"
}
export -f move_workspace
# get primary
primary=$(xrandr | awk '/ primary / {print $1}')
declare -a movers=(
"1: "
"2: "
"3: "
"4: "
"5: "
"6: "
"7: "
"8: "
"9: "
"10: "
# "11:  "
"12: "
"13: "
)
for workspace in "${movers[@]}"; do
move_workspace "$workspace" "$primary" &
done
# restart i3.
i3-msg restart

View File

@@ -0,0 +1,8 @@
# current machine's name, optional; it can be used to filter settings or in the commit message
hostname: ""
profile: main
# sync on remote git
repository:
type: git
url: git@github.com:Mastermindzh/code-settings.git
branch: master

View File

@@ -0,0 +1,35 @@
{
"ignoreUploadFiles": [
"state.*",
"syncLocalSettings.json",
".DS_Store",
"sync.lock",
"projects.json",
"projects_cache_vscode.json",
"projects_cache_git.json",
"projects_cache_svn.json",
"gpm_projects.json",
"gpm-recentItems.json"
],
"ignoreUploadFolders": [
"workspaceStorage",
"History",
"globalStorage",
"GlobalStorage"
],
"ignoreExtensions": [],
"gistDescription": "Visual Studio Code Settings Sync Gist",
"downloadPublicGist": false,
"supportedFileExtensions": [
"json",
"code-snippets"
],
"openTokenLink": true,
"disableUpdateMessage": false,
"githubEnterpriseUrl": null,
"askGistDescription": false,
"customFiles": {},
"hostName": null,
"universalKeybindings": false,
"autoUploadDelay": 20
}

379
config/dunstrc Normal file
View File

@@ -0,0 +1,379 @@
# See dunst(5) for all configuration options
[global]
### Display ###
# Which monitor should the notifications be displayed on.
monitor = 0
# Display notification on focused monitor. Possible modes are:
# mouse: follow mouse pointer
# keyboard: follow window with keyboard focus
# none: don't follow anything
#
# "keyboard" needs a window manager that exports the
# _NET_ACTIVE_WINDOW property.
# This should be the case for almost all modern window managers.
#
# If this option is set to mouse or keyboard, the monitor option
# will be ignored.
follow = keyboard
history = ctrl+shift+n
### Geometry ###
# dynamic (0, 300) or fixed 300
width = (0, 400)
height = (0, 300)
origin = top-right
offset = 10x50
scale = 0
# Maximum number of notification (0 means no limit)
notification_limit = 0
### Progress bar ###
progress_bar = true
# Set the progress bar height. This includes the frame, so make sure
# it's at least twice as big as the frame width.
progress_bar_height = 10
# Set the frame width of the progress bar
progress_bar_frame_width = 1
# Set the minimum width for the progress bar
progress_bar_min_width = 0
# Set the maximum width for the progress bar
progress_bar_max_width = 300
highlight = "#FF79C6"
# Show how many messages are currently hidden (because of
# notification_limit).
indicate_hidden = no
# The transparency of the window. Range: [0; 100].
# This option will only work if a compositing window manager is
# present (e.g. xcompmgr, compiz, etc.). (X11 only)
transparency = 0
# Draw a line of "separator_height" pixel height between two
# notifications.
# Set to 0 to disable.
separator_height = 1
# Padding between text and separator.
padding = 8
# Horizontal padding.
horizontal_padding = 10
# Padding between text and icon.
text_icon_padding = 0
# Defines width in pixels of frame around the notification window.
# Set to 0 to disable.
frame_width = 1
# Defines color of the frame around the notification window.
frame_color = "#bd93f9"
# Define a color for the separator.
# possible values are:
# * auto: dunst tries to find a color fitting to the background;
# * foreground: use the same color as the foreground;
# * frame: use the same color as the frame;
# * anything else will be interpreted as a X color.
separator_color = frame
# Sort messages by urgency.
sort = yes
# Don't remove messages, if the user is idle (no mouse or keyboard input)
# for longer than idle_threshold seconds.
# Set to 0 to disable.
# A client can set the 'transient' hint to bypass this. See the rules
# section for how to disable this if necessary
idle_threshold = 120
### Text ###
font = Ubuntu 11
# The spacing between lines. If the height is smaller than the
# font height, it will get raised to the font height.
line_height = 0
# Possible values are:
# full: Allow a small subset of html markup in notifications:
# <b>bold</b>
# <i>italic</i>
# <s>strikethrough</s>
# <u>underline</u>
#
# For a complete reference see
# <https://developer.gnome.org/pango/stable/pango-Markup.html>.
#
# strip: This setting is provided for compatibility with some broken
# clients that send markup even though it's not enabled on the
# server. Dunst will try to strip the markup but the parsing is
# simplistic so using this option outside of matching rules for
# specific applications *IS GREATLY DISCOURAGED*.
#
# no: Disable markup parsing, incoming notifications will be treated as
# plain text. Dunst will not advertise that it has the body-markup
# capability if this is set as a global setting.
#
# It's important to note that markup inside the format option will be parsed
# regardless of what this is set to.
markup = full
# The format of the message. Possible variables are:
# %a appname
# %s summary
# %b body
# %i iconname (including its path)
# %I iconname (without its path)
# %p progress value if set ([ 0%] to [100%]) or nothing
# %n progress value if set without any extra characters
# %% Literal %
# Markup is allowed
format = "%s %p\n%b"
# Alignment of message text.
# Possible values are "left", "center" and "right".
alignment = left
# Vertical alignment of message text and icon.
# Possible values are "top", "center" and "bottom".
vertical_alignment = center
# Show age of message if message is older than show_age_threshold
# seconds.
# Set to -1 to disable.
show_age_threshold = 60
# Specify where to make an ellipsis in long lines.
# Possible values are "start", "middle" and "end".
ellipsize = middle
# Ignore newlines '\n' in notifications.
ignore_newline = no
# Stack together notifications with the same content
stack_duplicates = no
# Hide the count of stacked notifications with the same content
hide_duplicate_count = false
# Display indicators for URLs (U) and actions (A).
show_indicators = no
### Icons ###
# Align icons left/right/off
icon_position = left
# Scale small icons up to this size, set to 0 to disable. Helpful
# for e.g. small files or high-dpi screens. In case of conflict,
# max_icon_size takes precedence over this.
min_icon_size = 0
# Scale larger icons down to this size, set to 0 to disable
max_icon_size = 64
# Paths to default icons.
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
### History ###
# Should a notification popped up from history be sticky or timeout
# as if it would normally do.
sticky_history = no
# Maximum amount of notifications kept in history
history_length = 5
### Misc/Advanced ###
# Browser for opening urls in context menu.
browser = /usr/bin/firefox -new-tab
# Always run rule-defined scripts, even if the notification is suppressed
always_run_script = true
# Define the title of the windows spawned by dunst
title = Dunst
# Define the class of the windows spawned by dunst
class = Dunst
# Define the corner radius of the notification window
# in pixel size. If the radius is 0, you have no rounded
# corners.
# The radius will be automatically lowered if it exceeds half of the
# notification height to avoid clipping text and/or icons.
corner_radius = 10
# Ignore the dbus closeNotification message.
# Useful to enforce the timeout set by dunst configuration. Without this
# parameter, an application may close the notification sent before the
# user defined timeout.
ignore_dbusclose = false
### Wayland ###
# These settings are Wayland-specific. They have no effect when using X11
# Uncomment this if you want to let notications appear under fullscreen
# applications (default: overlay)
# layer = top
# Set this to true to use X11 output on Wayland.
force_xwayland = false
### Legacy
# Use the Xinerama extension instead of RandR for multi-monitor support.
# This setting is provided for compatibility with older nVidia drivers that
# do not support RandR and using it on systems that support RandR is highly
# discouraged.
#
# By enabling this setting dunst will not be able to detect when a monitor
# is connected or disconnected which might break follow mode if the screen
# layout changes.
force_xinerama = false
### mouse
# Defines list of actions for each mouse event
# Possible values are:
# * none: Don't do anything.
# * do_action: Invoke the action determined by the action_name rule. If there is no
# such action, open the context menu.
# * open_url: If the notification has exactly one url, open it. If there are multiple
# ones, open the context menu.
# * close_current: Close current notification.
# * close_all: Close all notifications.
# * context: Open context menu for the notification.
# * context_all: Open context menu for all notifications.
# These values can be strung together for each mouse event, and
# will be executed in sequence.
mouse_left_click = close_current
mouse_middle_click = do_action, close_current
mouse_right_click = close_all
# Experimental features that may or may not work correctly. Do not expect them
# to have a consistent behaviour across releases.
[experimental]
# Calculate the dpi to use on a per-monitor basis.
# If this setting is enabled the Xft.dpi value will be ignored and instead
# dunst will attempt to calculate an appropriate dpi value for each monitor
# using the resolution and physical size. This might be useful in setups
# where there are multiple screens with very different dpi values.
per_monitor_dpi = false
[urgency_low]
# IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment.
background = "#282a36"
foreground = "#6272a4"
timeout = 3
# Icon for notifications with low urgency, uncomment to enable
#new_icon = /path/to/icon
[urgency_normal]
background = "#282a36"
foreground = "#bd93f9"
timeout = 5
# Icon for notifications with normal urgency, uncomment to enable
#new_icon = /path/to/icon
[urgency_critical]
background = "#ff5555"
foreground = "#f8f8f2"
frame_color = "#ff5555"
timeout = 20
# Icon for notifications with critical urgency, uncomment to enable
#new_icon = /path/to/icon
# Every section that isn't one of the above is interpreted as a rules to
# override settings for certain messages.
#
# Messages can be matched by
# appname (discouraged, see desktop_entry)
# body
# category
# desktop_entry
# icon
# match_transient
# msg_urgency
# stack_tag
# summary
#
# and you can override the
# background
# foreground
# format
# frame_color
# fullscreen
# new_icon
# set_stack_tag
# set_transient
# set_category
# timeout
# urgency
# skip_display
# history_ignore
# action_name
# word_wrap
# ellipsize
# alignment
#
# Shell-like globbing will get expanded.
#
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
# GLib based applications export their desktop-entry name. In comparison to the appname,
# the desktop-entry won't get localized.
#
# SCRIPTING
# You can specify a script that gets run when the rule matches by
# setting the "script" option.
# The script will be called as follows:
# script appname summary body icon urgency
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
#
# NOTE: It might be helpful to run dunst -print in a terminal in order
# to find fitting options for rules.
# Disable the transient hint so that idle_threshold cannot be bypassed from the
# client
#[transient_disable]
# match_transient = yes
# set_transient = no
#
# Make the handling of transient notifications more strict by making them not
# be placed in history.
#[transient_history_ignore]
# match_transient = yes
# history_ignore = yes
# fullscreen values
# show: show the notifications, regardless if there is a fullscreen window opened
# delay: displays the new notification, if there is no fullscreen window active
# If the notification is already drawn, it won't get undrawn.
# pushback: same as delay, but when switching into fullscreen, the notification will get
# withdrawn from screen again and will get delayed like a new notification
#[fullscreen_delay_everything]
# fullscreen = delay
#[fullscreen_show_critical]
# msg_urgency = critical
# fullscreen = show
#[espeak]
# summary = "*"
# script = dunst_espeak.sh

8
config/environment Normal file
View File

@@ -0,0 +1,8 @@
#
# This file is parsed by pam_env module
#
# Syntax: simple "KEY=VAL" pairs on separate lines
#
XCURSOR_THEME="Adwaita"
EDITOR="nano"
#GTK_THEME=Adwaita-dark

10
config/greenclip.toml Normal file
View File

@@ -0,0 +1,10 @@
[greenclip]
blacklisted_applications = []
enable_image_support = true
history_file = "/home/mastermindzh/.cache/greenclip.history"
image_cache_directory = "/tmp/greenclip"
max_history_length = 50
max_selection_size_bytes = 0
static_history = []
trim_space_from_selection = true
use_primary_selection_as_input = false

View File

@@ -1,16 +0,0 @@
gtk-application-prefer-dark-theme=0
gtk-theme-name="Adwaita-dark"
gtk-icon-theme-name="Numix"
gtk-font-name="Cantarell 11"
gtk-cursor-theme-name="elementary"
gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_BOTH
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=1
gtk-menu-images=1
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle="hintmedium"
gtk-xft-rgba="none"

18
config/gtk/settings.ini Normal file
View File

@@ -0,0 +1,18 @@
[Settings]
gtk-theme-name="Dracula"
gtk-font-name="Ubuntu 12"
gtk-cursor-theme-name="Dracula-cursors"
gtk-cursor-theme-size=12
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-toolbar-style=GTK_TOOLBAR_BOTH
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=1
gtk-menu-images=1
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle="hintfull"
gtk-xft-rgba="none"
gtk-application-prefer-dark-theme=1
gtk-decoration-layout=icon:close
gtk-enable-animations=true

View File

@@ -0,0 +1 @@
https://github.com/alebcay/openlens-node-pod-menu

View File

@@ -20,14 +20,16 @@ application/x-extension-xht=firefox.desktop
#-------------- #--------------
x-scheme-handler/postman=Postman.desktop x-scheme-handler/postman=Postman.desktop
x-scheme-handler/ssh=ktelnetservice5.desktop x-scheme-handler/ssh=ktelnetservice5.desktop
x-scheme-handler/msteams=teams-insiders.desktop x-scheme-handler/msteams=teams.desktop
x-scheme-handler/discord-478576776990425110=discord-478576776990425110.desktop x-scheme-handler/discord-478576776990425110=discord-478576776990425110.desktop
x-scheme-handler/mailspring=Mailspring.desktop x-scheme-handler/mailspring=Mailspring.desktop
x-scheme-handler/etcher=balena-etcher-electron.desktop x-scheme-handler/etcher=balena-etcher-electron.desktop
x-scheme-handler/tidal=tidal-hifi.desktop
# files # files
#-------------- #--------------
inode/director=Nautilus.desktop inode/director=thunar.desktop
x-scheme-handler/ftb=ftb-app.desktop
[Added Associations] [Added Associations]
# browser-stuff # browser-stuff
@@ -67,10 +69,9 @@ application/javascript=visual-studio-code-insiders.desktop;
# other # other
#-------------- #--------------
application/zip=org.gnome.Nautilus.desktop;xarchiver.desktop; application/zip=thunar,org.gnome.Nautilus.desktop;xarchiver.desktop;
application/vnd.openxmlformats-officedocument.wordprocessingml.document=wps-office-wps.desktop; application/vnd.openxmlformats-officedocument.wordprocessingml.document=wps-office-wps.desktop;
application/x-remmina=org.gnome.gedit.desktop;org.kde.krdc.desktop;remmina-file.desktop;org.remmina.Remmina.desktop; application/x-remmina=org.gnome.gedit.desktop;org.kde.krdc.desktop;remmina-file.desktop;org.remmina.Remmina.desktop;
# newly added # newly added
#-------------- #--------------

View File

@@ -1,44 +1,40 @@
include /usr/share/nano/objc.nanorc include /usr/share/nano/asm.nanorc
include /usr/share/nano/autoconf.nanorc
include /usr/share/nano/awk.nanorc
include /usr/share/nano/changelog.nanorc
include /usr/share/nano/cmake.nanorc
include /usr/share/nano/c.nanorc
include /usr/share/nano/css.nanorc
include /usr/share/nano/default.nanorc
include /usr/share/nano/elisp.nanorc include /usr/share/nano/elisp.nanorc
include /usr/share/nano/nanorc.nanorc include /usr/share/nano/email.nanorc
include /usr/share/nano/mutt.nanorc
include /usr/share/nano/nftables.nanorc
include /usr/share/nano/html.nanorc
include /usr/share/nano/php.nanorc
include /usr/share/nano/tex.nanorc
include /usr/share/nano/java.nanorc
include /usr/share/nano/go.nanorc include /usr/share/nano/go.nanorc
include /usr/share/nano/fortran.nanorc include /usr/share/nano/groff.nanorc
include /usr/share/nano/guile.nanorc
include /usr/share/nano/html.nanorc
include /usr/share/nano/java.nanorc
include /usr/share/nano/javascript.nanorc
include /usr/share/nano/json.nanorc
include /usr/share/nano/lua.nanorc
include /usr/share/nano/makefile.nanorc
include /usr/share/nano/man.nanorc
include /usr/share/nano/markdown.nanorc
include /usr/share/nano/nanohelp.nanorc
include /usr/share/nano/nanorc.nanorc
include /usr/share/nano/nftables.nanorc
include /usr/share/nano/objc.nanorc
include /usr/share/nano/ocaml.nanorc
include /usr/share/nano/patch.nanorc
include /usr/share/nano/perl.nanorc
include /usr/share/nano/php.nanorc
include /usr/share/nano/po.nanorc
include /usr/share/nano/python.nanorc
include /usr/share/nano/ruby.nanorc
include /usr/share/nano/rust.nanorc
include /usr/share/nano/sh.nanorc
include /usr/share/nano/sql.nanorc
include /usr/share/nano/tcl.nanorc include /usr/share/nano/tcl.nanorc
include /usr/share/nano/texinfo.nanorc include /usr/share/nano/texinfo.nanorc
include /usr/share/nano/cmake.nanorc include /usr/share/nano/tex.nanorc
include /usr/share/nano/man.nanorc
include /usr/share/nano/css.nanorc
include /usr/share/nano/javascript.nanorc
include /usr/share/nano/rust.nanorc
include /usr/share/nano/autoconf.nanorc
include /usr/share/nano/makefile.nanorc
include /usr/share/nano/mgp.nanorc
include /usr/share/nano/default.nanorc
include /usr/share/nano/changelog.nanorc
include /usr/share/nano/asm.nanorc
include /usr/share/nano/c.nanorc
include /usr/share/nano/lua.nanorc
include /usr/share/nano/xml.nanorc include /usr/share/nano/xml.nanorc
include /usr/share/nano/groff.nanorc include /usr/share/nano/yaml.nanorc
include /usr/share/nano/ruby.nanorc
include /usr/share/nano/po.nanorc
include /usr/share/nano/ocaml.nanorc
include /usr/share/nano/json.nanorc
include /usr/share/nano/patch.nanorc
include /usr/share/nano/sh.nanorc
include /usr/share/nano/pov.nanorc
include /usr/share/nano/python.nanorc
include /usr/share/nano/gentoo.nanorc
include /usr/share/nano/guile.nanorc
include /usr/share/nano/nanohelp.nanorc
include /usr/share/nano/perl.nanorc
include /usr/share/nano/spec.nanorc
include /usr/share/nano/postgresql.nanorc
include /usr/share/nano/debian.nanorc
include /usr/share/nano/awk.nanorc

View File

@@ -0,0 +1,6 @@
#!/bin/sh
case "$2" in
up)
timedatectl set-timezone "$(curl --fail https://ipapi.co/timezone)"
;;
esac

View File

@@ -1,25 +0,0 @@
slot-allocation = dynamic
bubble-expire-timeout = 5sec
bubble-vertical-gap = 25px
bubble-horizontal-gap = 9px
bubble-corner-radius = 45px
bubble-icon-size = 30px
bubble-gauge-size = 6px
bubble-width = 240px
bubble-background-color = 131313
bubble-background-opacity = 80%
text-margin-size = 10px
text-title-size = 100%
text-title-weight = bold
text-title-color = ffffff
text-title-opacity = 100%
text-body-size = 90%
text-body-weight = normal
text-body-color = eaeaea
text-body-opacity = 100%
text-shadow-opacity = 100%
location = 1
bubble-prevent-fade = 0
bubble-close-on-click = 1
bubble-as-desktop-bg = 0

View File

@@ -82,9 +82,6 @@ Include = /etc/pacman.d/mirrorlist
#[community-testing] #[community-testing]
#Include = /etc/pacman.d/mirrorlist #Include = /etc/pacman.d/mirrorlist
[community]
Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system, # If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here. # enable the multilib repositories as required here.

View File

@@ -3,4 +3,7 @@
################################# #################################
# Opacity of inactive windows. (0.1 - 1.0) # Opacity of inactive windows. (0.1 - 1.0)
inactive-opacity = 1.0; inactive-opacity = 1.0
vsync=true
backend="glx"
unredir-if-possible=true

38
config/polybar/bars.ini Normal file
View File

@@ -0,0 +1,38 @@
[bar/main]
monitor = ${env:MONITOR:}
width = 100%
height = 18pt
radius = 0
padding-right = 0
padding-left = 0
module-margin = 1
separator = |
dpi = ${xrdb:Xft.dpi:-1}
; colors
background = ${colors.background}
foreground = ${colors.foreground}
border-color = #00000000
separator-foreground = ${colors.disabled}
; modules
modules-left = xworkspaces i3
modules-center = tidal
modules-right = output-audio weather temperature updates ping battery date
; modules-right = output-audio input-audio weather temperature updates ping battery date
; fonts (fc-list)
; offset = height - size / 2 (for vertical center, icons are weird and need to be even numbers)
font-0 = Ubuntu regular:style=regular:size=12;3
font-1 = FontAwesome:style=Regular;2
font-2 = Noto Color Emoji:style=Regular:scale=10;2
cursor-click = pointer
cursor-scroll = ns-resize
enable-ipc = true
tray-position = ${env:TRAY_POSITION:right}
wm-restack = i3
tray-reparent = true
; override-redirect = true

26
config/polybar/config.ini Normal file
View File

@@ -0,0 +1,26 @@
;==========================================================
;
;
; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗
; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗
; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝
; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗
; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║
; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝
;
;
; To learn more about how to configure Polybar
; go to https://github.com/polybar/polybar
;
; The README contains a lot of information
;
;==========================================================
[settings]
screenchange-reload = true
pseudo-transparency = true
; theme
include-file = ~/.config/polybar/modules.ini
include-file = ~/.config/polybar/themes/dracula.ini
include-file = ~/.config/polybar/bars.ini

25
config/polybar/launch.sh Executable file
View File

@@ -0,0 +1,25 @@
#!/bin/bash
killall -q polybar
# Launch Polybar, using default config location ~/.config/polybar/config.ini
PRIMARY=$(xrandr --query | grep -i "connected primary" | cut -d" " -f1)
export MONITOR=$PRIMARY
polybar -r 2>&1 | tee -a /tmp/polybar.log &
# show-bar on all monitors
# idk whether I like this at the moment, I don't really use external displays unless they are the primary or they are duplicated
# if type "xrandr"; then
# PRIMARY=$(xrandr --query | grep -i "connected primary" | cut -d" " -f1)
# for m in $(xrandr --query | grep -i " connected" | cut -d" " -f1); do
# export TRAY_POSITION=none
# if [[ $m == "$PRIMARY" ]]; then
# TRAY_POSITION=right
# fi
# export MONITOR=$m
# polybar -r 2>&1 | tee -a /tmp/polybar.log &
# done
# else
# polybar -r 2>&1 | tee -a /tmp/polybar.log &
# fi
disown
echo "Polybar launched..."

189
config/polybar/modules.ini Normal file
View File

@@ -0,0 +1,189 @@
[module/xworkspaces]
type = internal/xworkspaces
pin-workspaces = true
label-active = %name%
label-active-background = ${colors.background-alt}
; label-active-underline= ${colors.primary}
label-active-foreground= ${colors.accent}
label-active-padding = 1
label-occupied = %name%
label-occupied-padding = 1
label-urgent = %name%
label-urgent-background = ${colors.alert}
label-urgent-padding = 1
label-empty = %name%
label-empty-foreground = ${colors.disabled}
label-empty-padding = 1
[module/output-audio]
type = internal/pulseaudio
format-volume-prefix = "🔊 "
; format-volume-prefix = " "
format-volume-prefix-foreground = ${colors.primary}
format-volume = <label-volume>
label-volume = %percentage%%
; label-muted = 🔇 muted
label-muted = 🙉 muted
label-muted-foreground = ${colors.disabled}
[module/memory]
type = internal/memory
interval = 2
format-prefix = " "
format-prefix-foreground = ${colors.primary}
label = %percentage_used:2%%
[module/cpu]
type = internal/cpu
interval = 2
format-prefix = " "
format-prefix-foreground = ${colors.primary}
label = %percentage:2%%
[module/date]
type = internal/date
interval = 1
date = %Y-%m-%d %H:%M:%S
format-prefix = "📅 "
; format-prefix = " "
format-prefix-foreground = ${colors.primary}
label =%date%
[module/temperature]
type = internal/temperature
; Full path of temperature sysfs path
; Use `sensors` to find preferred temperature source, then run
; $ for i in /sys/class/hwmon/hwmon*/temp*_input; do echo "$(<$(dirname $i)/name): $(cat ${i%_*}_label 2>/dev/null || echo $(basename ${i%_*})) $(readlink -f $i)"; done
; to find path to desired file
; Default reverts to thermal zone setting
; hwmon-path = /sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input
base-temperature = 40
warn-temperature = 80
# format-prefix = " "
# format-warn-prefix = " "
format-prefix = "🌡️"
format-warn-prefix = "🌡️"
format-prefix-foreground = ${colors.accent}
label = %temperature-c%
format-warn = <label>
format-warn-foreground = ${colors.alert}
[module/battery]
type = internal/battery
full-at = 98
battery = BAT1
time-format = %H:%M
format-charging = <animation-charging> <label-charging>
label-charging = %percentage%% (%time%)
format-discharging = <ramp-capacity> <label-discharging>
label-discharging = %percentage%% (%time%)
format-full = <label-full>
format-full-prefix = "⚡ "
; format-full-prefix = " "
format-full-prefix-foreground = #666
ramp-capacity-0 = ""
ramp-capacity-1 = ""
ramp-capacity-2 = ""
ramp-capacity-3 = ""
ramp-capacity-4 = ""
ramp-capacity-foreground = ${colors.accent}
animation-charging-0 = ""
animation-charging-1 = ""
animation-charging-2 = ""
animation-charging-3 = ""
animation-charging-4 = ""
animation-charging-foreground = ${colors.yellow}
animation-charging-framerate = 750
[module/xwindow]
type = internal/xwindow
format = <label>
label-maxlen = 75
[module/updates]
type = custom/script
interval = 300
exec = "checkupdates 2>/dev/null | wc -l"
format = "<label>"
format-prefix = "📥 "
; format-prefix = " "
format-prefix-foreground = ${colors.accent}
label = %output%
[module/ping]
type = custom/script
interval = 60
exec = "ping -c 3 8.8.8.8 2>/dev/null | tail -1 | awk '{print $4}' | cut -d '/' -f 2 | cut -f1 -d'.'"
format = "<label>"
format-prefix = "📡 "
; format-prefix = " "
format-prefix-foreground = ${colors.accent}
label = %output%
click-left = firefox https://speedtest.net
[module/weather]
type = custom/script
interval = 900
exec = "curl -s wttr.in/oss?format=1 | grep -v 'Unknown location' || echo ''"
format = "<label>"
format-prefix-foreground = ${colors.accent}
label = %output%
click-left = xfce4-terminal -H -e "curl wttr.in/oss"
[module/i3]
type = internal/i3
index-sort = true
format = <label-mode>
label-mode = %mode%
format-foreground = ${colors.alert}
[module/tidal]
type=custom/script
interval = 1
; format-prefix="🎵 "
format-prefix=" "
format-prefix-foreground = ${colors.tidal}
format-foreground = ${colors.tidal}
format = "<label>"
label = %output:0:45:...%
exec = "~/.config/i3/scripts/tidal-cli.sh info"
click-left = "~/.config/i3/scripts/tidal-cli.sh playpause"
scroll-up = "~/.config/i3/scripts/tidal-cli.sh next"
scrolldown = "~/.config/i3/scripts/tidal-cli.sh previous"
click-right = "~/.config/i3/scripts/tidal-cli.sh getLink | xclip -selection clipboard"
[module/input-audio]
type = custom/script
exec = ~/.config/polybar/scripts/pulse-microphone.sh
tail = true
click-left = ~/.config/polybar/scripts/pulse-microphone.sh --toggle &
scroll-up = ~/.config/polybar/scripts/pulse-microphone.sh --increase &
scroll-down = ~/.config/polybar/scripts/pulse-microphone.sh --decrease &

View File

@@ -0,0 +1,59 @@
#!/bin/sh
status() {
MUTED=$(pacmd list-sources | awk '/\*/,EOF {print}' | awk '/muted/ {print $2; exit}')
if [ "$MUTED" = "yes" ]; then
echo "🙊 muted"
else
OUTPUT=$(pacmd list-sources | grep "\* index:" -A 7 | grep volume | awk -F/ '{print $2}' | awk -F, '{ print $1 }' | tr -d ' ')
echo "🎙️ $OUTPUT"
fi
}
listen() {
status
LANG=EN
pactl subscribe | while read -r event; do
if echo "$event" | grep -q "source" || echo "$event" | grep -q "server"; then
status
fi
done
}
toggle() {
MUTED=$(pacmd list-sources | awk '/\*/,EOF {print}' | awk '/muted/ {print $2; exit}')
DEFAULT_SOURCE=$(pacmd list-sources | awk '/\*/,EOF {print $3; exit}')
if [ "$MUTED" = "yes" ]; then
pactl set-source-mute "$DEFAULT_SOURCE" 0
else
pactl set-source-mute "$DEFAULT_SOURCE" 1
fi
}
increase() {
DEFAULT_SOURCE=$(pacmd list-sources | awk '/\*/,EOF {print $3; exit}')
pactl set-source-volume "$DEFAULT_SOURCE" +5%
}
decrease() {
DEFAULT_SOURCE=$(pacmd list-sources | awk '/\*/,EOF {print $3; exit}')
pactl set-source-volume "$DEFAULT_SOURCE" -5%
}
case "$1" in
--toggle)
toggle
;;
--increase)
increase
;;
--decrease)
decrease
;;
*)
listen
;;
esac

View File

@@ -0,0 +1,11 @@
[colors]
background = #1e1e1e
background-alt = #252526
foreground = #848484
primary = #f6f6f7
secondary = #f6f6f7
alert = #ef5350
disabled = #707880
accent = #fff
yellow = #ebc034
tidal = #00ffff

View File

@@ -0,0 +1,11 @@
[colors]
background = #282a36
background-alt = #BD93F9
foreground = #f8f8f2
primary = #bd93f9
secondary = #ffb86c
alert = #ff5555
disabled = #6272a4
accent = #fff
tidal = #50FA7B
yellow = #F1FA8C

View File

@@ -0,0 +1,49 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json
blocks:
- type: rprompt
overflow: hidden
segments:
- properties:
cache_duration: none
threshold: 1
template: "{{ .FormattedMs }}"
foreground: yellow
background: transparent
type: executiontime
style: plain
- type: prompt
alignment: left
segments:
- properties:
cache_duration: none
home_icon: "\uf015 "
style: agnoster_short
template: "{{ .Path }} "
foreground: "#77E4F7"
type: path
- properties:
cache_duration: none
fetch_status: true
template: "<#ffffff>on</> {{ .HEAD }}{{ if or (.Working.Changed) (.Staging.Changed) }} \uf044 {{end}} "
foreground: "#C678DD"
type: git
style: plain
- properties:
cache_duration: none
fetch_version: true
template: " \uf3d3 {{ if .PackageManagerIcon }}{{ .PackageManagerIcon }} {{ end }} {{ .Full }} "
foreground: "#98C379"
type: node
style: plain
newline: true
- type: prompt
alignment: left
segments:
- properties:
cache_duration: none
template: "➜ "
foreground: "#63F08C"
type: text
style: plain
version: 3

View File

@@ -0,0 +1,61 @@
version: 2
blocks:
# prompt on the right
- type: rprompt
overflow: hidden
segments:
- background: transparent
foreground: yellow
style: plain
template: "{{ .FormattedMs }}"
type: executiontime
properties:
threshold: 1
# prompt segment
- type: prompt
alignment: left
newline: true
segments:
- foreground: "#77E4F7"
template: "{{ .Path }} "
type: path
properties:
home_icon: " "
style: agnoster_short
# git segment
- type: git
foreground: "#C678DD"
properties:
fetch_status: true
style: plain
# template:
# "<#ffffff>on</> {{ .HEAD }}{{ if .Working.Changed }}  {{ .Working.String }}{{ end }}{{ if and (.Working.Changed)
# (.Staging.Changed) }} |{{ end }}{{ if .Staging.Changed }}  {{ .Staging.String
# }}{{ end }}"
template: "<#ffffff>on</> {{ .HEAD }}{{ if or (.Working.Changed) (.Staging.Changed) }}  {{end}} "
# current language info
- type: node
foreground: "#98C379"
properties:
fetch_version: true
style: plain
template: "  {{ if .PackageManagerIcon }}{{ .PackageManagerIcon }} {{ end }} {{ .Full }} "
- alignment: left
segments:
- foreground: "#63F08C"
style: plain
template: "➜ "
type: text
type: prompt
# bash won't play along :)
# transient_prompt:
# background: transparent
# foreground_templates:
# - "{{if gt .Code 0}}red{{end}}"
# - "{{if eq .Code 0}}magenta{{end}}"
# template: " "

28
config/rofi/config.rasi Normal file
View File

@@ -0,0 +1,28 @@
configuration {
modi: "window,run,ssh,combi,emoji,calc,drun";
font: "Ubuntu mono 16";
terminal: "xfce4-terminal";
ssh-client: "ssh";
ssh-command: "{terminal} -e "{ssh-client} {host}"";
show-icons: true;
display-drun: " ";
display-run: " ";
display-ssh: " ";
display-clipboard: " ";
display-emoji: " ";
display-calc: " ";
display-filebrowser: " ";
display-window: " ";
drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
window-format: "{w} · {c} · {t}";
}
/*---- import color theme here ----*/
/*@import "~/.config/rofi/themes/dark.rasi"*/
@import "~/.config/rofi/themes/dracula.rasi"
/*---- import theme here ----*/
@import "~/.config/rofi/themes/base.rasi"

View File

@@ -1,162 +0,0 @@
/*
old color theme
----------------
State: 'bg', 'fg', 'bgalt', 'hlbg', 'hlfg'
----------------------------------------------------------------
color-normal: "#1e1e1e, #848484, #1e1e1e, #333333, #f6f6f7";
color-urgent: "#333333, #ef5350, #0000ff, #333333, #f6f6f7";
color-active: "#333333, #ef5350, #0000ff, #333333, #f6f6f7";
color-window: "#1e1e1e, #333333, #333333";
*/
* {
/* my vars */
background: #1e1e1e;
background-color: @background;
foreground: #848484;
foreground-normal: @foreground;
urgent: #333333;
active-fg: #ef5350;
/* background */
normal-background: @background;
alternate-urgent-background: @background;
lightbg: @background;
alternate-active-background: @background;
alternate-normal-background: @background;
selected-normal-background: rgba ( 57, 66, 73, 100 % );
/* foreground */
normal-foreground: @foreground-normal;
alternate-normal-foreground: @foreground;
selected-normal-foreground: rgba ( 255, 255, 255, 100 % );
selected-urgent-foreground: @urgent;
active-foreground: @active-fg;
urgent-foreground: @red;
alternate-urgent-foreground: @urgent-foreground;
alternate-active-foreground: @active-foreground;
/* borders */
bordercolor: @background;
border-color: @background;
selected-active-foreground: rgba ( 128, 203, 196, 100 % );
lightfg: rgba ( 88, 104, 117, 100 % );
spacing: 2;
separatorcolor: rgba ( 30, 37, 41, 100 % );
urgent-background: rgba ( 39, 50, 56, 100 % );
selected-urgent-background: rgba ( 57, 66, 73, 100 % );
active-background: rgba ( 39, 50, 56, 100 % );
selected-active-background: rgba ( 57, 66, 73, 100 % );
}
window {
background-color: @background;
border: 1;
padding: 5;
}
mainbox {
border: 0;
padding: 0;
}
message {
border: 1px dash 0px 0px ;
border-color: @separatorcolor;
padding: 1px ;
}
textbox {
text-color: @foreground;
}
listview {
fixed-height: 0;
border: 2px dash 0px 0px ;
border-color: @separatorcolor;
spacing: 2px ;
scrollbar: true;
padding: 2px 0px 0px ;
}
element {
border: 0;
padding: 1px ;
}
element-text {
background-color: inherit;
text-color: inherit;
}
element.normal.normal {
background-color: @normal-background;
text-color: @normal-foreground;
}
element.normal.urgent {
background-color: @urgent-background;
text-color: @urgent-foreground;
}
element.normal.active {
background-color: @active-background;
text-color: @active-foreground;
}
element.selected.normal {
background-color: @selected-normal-background;
text-color: @selected-normal-foreground;
}
element.selected.urgent {
background-color: @selected-urgent-background;
text-color: @selected-urgent-foreground;
}
element.selected.active {
background-color: @selected-active-background;
text-color: @selected-active-foreground;
}
element.alternate.normal {
background-color: @alternate-normal-background;
text-color: @alternate-normal-foreground;
}
element.alternate.urgent {
background-color: @alternate-urgent-background;
text-color: @alternate-urgent-foreground;
}
element.alternate.active {
background-color: @alternate-active-background;
text-color: @alternate-active-foreground;
}
scrollbar {
width: 4px ;
border: 0;
handle-width: 8px ;
padding: 0;
}
mode-switcher {
border: 2px dash 0px 0px ;
border-color: @separatorcolor;
}
button.selected {
background-color: @selected-normal-background;
text-color: @selected-normal-foreground;
}
inputbar {
spacing: 0;
text-color: @normal-foreground;
padding: 1px ;
}
case-indicator {
spacing: 0;
text-color: @normal-foreground;
}
entry {
spacing: 0;
text-color: @normal-foreground;
}
prompt {
spacing: 0;
text-color: @normal-foreground;
}
inputbar {
children: [ prompt,textbox-prompt-colon,entry,case-indicator ];
}
textbox-prompt-colon {
expand: false;
str: ":";
margin: 0px 0.3em 0em 0em ;
text-color: @normal-foreground;
}

View File

@@ -1,14 +0,0 @@
configuration {
modi: "window,run,ssh,combi";
font: "monospace 10";
terminal: "xfce4-terminal";
ssh-client: "ssh";
ssh-command: "{terminal} -e "{ssh-client} {host}"";
/* ! State: 'bg', 'fg', 'bgalt', 'hlbg', 'hlfg'
lines: 10;
line-padding: 5;
*/
}
@theme "~/.config/rofi/mytheme.rasi"

View File

@@ -0,0 +1,216 @@
/*----Main Window */
window {
/* properties for window widget */
transparency: "real";
location: center;
anchor: center;
fullscreen: false;
width: 800px;
x-offset: 0px;
y-offset: 0px;
/* properties for all widgets */
enabled: true;
margin: 0px;
padding: 0px;
border: 0px solid;
border-radius: 0px;
border-color: @border-colour;
cursor: "default";
background-color: @background-colour;
}
/*----- Main Box -----*/
mainbox {
enabled: true;
spacing: 10px;
margin: 0px;
padding: 30px;
border: 0px solid;
border-radius: 0px 0px 0px 0px;
border-color: @border-colour;
background-color: transparent;
children: [ "inputbar", "listview" ];
}
/*----- Inputbar -----*/
inputbar {
enabled: true;
spacing: 10px;
margin: 0px;
padding: 0px 0px 10px 10px;
border: 0px;
border-radius: 0px;
border-color: @border-colour;
background-color: @background-colour;
text-color: @foreground-colour;
children: [ "prompt", "entry" ];
}
prompt {
enabled: true;
background-color: inherit;
text-color: inherit;
}
textbox-prompt-colon {
enabled: true;
expand: false;
str: "::";
background-color: inherit;
text-color: inherit;
}
entry {
enabled: true;
background-color: inherit;
text-color: inherit;
cursor: text;
placeholder: "";
placeholder-color: inherit;
}
/*----- Listview -----*/
listview {
enabled: true;
columns: 1;
lines: 12;
cycle: true;
dynamic: true;
scrollbar: false;
layout: vertical;
reverse: false;
fixed-height: true;
fixed-columns: true;
spacing: 0px;
margin: 0px;
padding: 0px;
border: 0px solid;
border-radius: 0px;
border-color: @border-colour;
background-color: transparent;
text-color: @foreground-colour;
cursor: "default";
}
scrollbar {
handle-width: 5px ;
handle-color: @handle-colour;
border-radius: 0px;
background-color: @alternate-background;
}
/*----- Elements -----*/
element {
enabled: true;
spacing: 10px;
margin: 0px;
padding: 5px;
border: 0px solid;
border-radius: 0px;
border-color: @border-colour;
background-color: transparent;
text-color: @foreground-colour;
cursor: pointer;
}
element normal.normal {
background-color: var(normal-background);
text-color: var(normal-foreground);
}
element normal.urgent {
background-color: var(urgent-background);
text-color: var(urgent-foreground);
}
element normal.active {
background-color: var(active-background);
text-color: var(active-foreground);
}
element selected.normal {
background-color: var(alternate-background);
text-color: var(foreground-colour);
}
element selected.urgent {
background-color: var(selected-urgent-background);
text-color: var(selected-urgent-foreground);
}
element selected.active {
background-color: var(selected-active-background);
text-color: var(selected-active-foreground);
}
element alternate.normal {
background-color: var(alternate-normal-background);
text-color: var(alternate-normal-foreground);
}
element alternate.urgent {
background-color: var(alternate-urgent-background);
text-color: var(alternate-urgent-foreground);
}
element alternate.active {
background-color: var(alternate-active-background);
text-color: var(alternate-active-foreground);
}
element-icon {
background-color: transparent;
text-color: inherit;
size: 3ch;
cursor: inherit;
}
element-text {
background-color: transparent;
text-color: inherit;
highlight: inherit;
cursor: inherit;
vertical-align: 0.5;
horizontal-align: 0.0;
}
/*----- Mode Switcher -----*/
mode-switcher{
enabled: true;
spacing: 10px;
margin: 0px;
padding: 0px;
border: 0px solid;
border-radius: 0px;
border-color: @border-colour;
background-color: transparent;
text-color: @foreground-colour;
}
button {
padding: 10px;
border: 0px solid;
border-radius: 0px;
border-color: @border-colour;
background-color: @alternate-background;
text-color: inherit;
cursor: pointer;
}
button selected {
background-color: var(selected-normal-background);
text-color: var(selected-normal-foreground);
}
/*----- Message -----*/
message {
enabled: true;
margin: 0px;
padding: 0px;
border: 0px solid;
border-radius: 0px 0px 0px 0px;
border-color: @border-colour;
background-color: transparent;
text-color: @foreground-colour;
}
textbox {
padding: 10px;
border: 0px solid;
border-radius: 0px;
border-color: @border-colour;
background-color: @alternate-background;
text-color: @foreground-colour;
vertical-align: 0.5;
horizontal-align: 0.0;
highlight: none;
placeholder-color: @foreground-colour;
blink: true;
markup: true;
}
error-message {
padding: 10px;
border: 0px solid;
border-radius: 0px;
border-color: @border-colour;
background-color: @background-colour;
text-color: @foreground-colour;
}

View File

@@ -0,0 +1,25 @@
* {
border-colour: #61AFEFFF;
handle-colour: #61AFEFFF;
background-colour: #1e1e1e;
foreground-colour: #FFFFFFFF;
alternate-background: #282B31FF;
normal-background: #1e1e1e;
normal-foreground: #FFFFFFFF;
urgent-background: #E06C75FF;
urgent-foreground: #1e1e1e;
active-background: #98C379FF;
active-foreground: #1e1e1e;
selected-normal-background: #61AFEFFF;
selected-normal-foreground: #1e1e1e;
selected-urgent-background: #98C379FF;
selected-urgent-foreground: #1e1e1e;
selected-active-background: #E06C75FF;
selected-active-foreground: #1e1e1e;
alternate-normal-background: #1e1e1e;
alternate-normal-foreground: #FFFFFFFF;
alternate-urgent-background: #E06C75FF;
alternate-urgent-foreground: #1e1e1e;
alternate-active-background: #98C379FF;
alternate-active-foreground: #1e1e1e;
}

View File

@@ -0,0 +1,25 @@
* {
border-colour: #bd93f9;
handle-colour: #bd93f9;
background-colour: #282a36;
foreground-colour: #ffffffff;
alternate-background: #6272a4;
normal-background: #282a36;
normal-foreground: #ffffffff;
urgent-background: #ff5555;
urgent-foreground: #282a36;
active-background: #50FA7B;
active-foreground: #282a36;
selected-normal-background: #bd93f9;
selected-normal-foreground: #282a36;
selected-urgent-background: #98c379ff;
selected-urgent-foreground: #282a36;
selected-active-background: #ff5555;
selected-active-foreground: #282a36;
alternate-normal-background: #282a36;
alternate-normal-foreground: #ffffffff;
alternate-urgent-background: #ff5555;
alternate-urgent-foreground: #282a36;
alternate-active-background: #98c379ff;
alternate-active-foreground: #282a36;
}

View File

@@ -1,35 +0,0 @@
[Configuration]
BackgroundMode=TERMINAL_BACKGROUND_TRANSPARENT
BackgroundDarkness=0.750000
MiscAlwaysShowTabs=FALSE
MiscBell=FALSE
MiscBellUrgent=FALSE
MiscBordersDefault=FALSE
MiscCursorBlinks=FALSE
MiscCursorShape=TERMINAL_CURSOR_SHAPE_BLOCK
MiscDefaultGeometry=132x43
MiscInheritGeometry=FALSE
MiscMenubarDefault=FALSE
MiscMouseAutohide=FALSE
MiscMouseWheelZoom=TRUE
MiscToolbarDefault=FALSE
MiscConfirmClose=FALSE
MiscCycleTabs=TRUE
MiscTabCloseButtons=TRUE
MiscTabCloseMiddleClick=TRUE
MiscTabPosition=GTK_POS_TOP
MiscHighlightUrls=TRUE
MiscMiddleClickOpensUri=FALSE
MiscCopyOnSelect=FALSE
MiscDefaultWorkingDir=
MiscRewrapOnResize=TRUE
MiscUseShiftArrowsToScroll=FALSE
MiscSlimTabs=TRUE
MiscNewTabAdjacent=FALSE
ScrollingUnlimited=TRUE
ScrollingBar=TERMINAL_SCROLLBAR_NONE
MiscShowRelaunchDialog=TRUE
ColorCursor=#c5c5c8c8c6c6
ColorForeground=#c5c5c8c8c6c6
ColorPalette=#28282a2a2e2e;#a5a542424242;#8c8c94944040;#dede93935f5f;#5f5f81819d9d;#858567678f8f;#5e5e8d8d8787;#707078788080;#37373b3b4141;#cccc66666666;#b5b5bdbd6868;#f0f0c6c67474;#8181a2a2bebe;#b2b29494bbbb;#8a8abebeb7b7;#c5c5c8c8c6c6

View File

@@ -0,0 +1 @@
/home/mastermindzh/dotfiles/config/terminalrc

37
config/terminalrc Normal file
View File

@@ -0,0 +1,37 @@
[Configuration]
MiscAlwaysShowTabs=FALSE
MiscBell=FALSE
MiscBellUrgent=FALSE
MiscBordersDefault=FALSE
MiscCursorBlinks=FALSE
MiscCursorShape=TERMINAL_CURSOR_SHAPE_BLOCK
MiscDefaultGeometry=80x24
MiscInheritGeometry=FALSE
MiscMenubarDefault=FALSE
MiscMouseAutohide=FALSE
MiscMouseWheelZoom=TRUE
MiscToolbarDefault=FALSE
MiscConfirmClose=FALSE
MiscCycleTabs=TRUE
MiscTabCloseButtons=TRUE
MiscTabCloseMiddleClick=TRUE
MiscTabPosition=GTK_POS_TOP
MiscHighlightUrls=TRUE
MiscMiddleClickOpensUri=FALSE
MiscCopyOnSelect=FALSE
MiscShowRelaunchDialog=FALSE
MiscRewrapOnResize=TRUE
MiscUseShiftArrowsToScroll=FALSE
MiscSlimTabs=FALSE
MiscNewTabAdjacent=FALSE
MiscSearchDialogOpacity=100
MiscShowUnsafePasteDialog=FALSE
MiscRightClickAction=TERMINAL_RIGHT_CLICK_ACTION_CONTEXT_MENU
OverlayScrolling=TRUE
ScrollingUnlimited=TRUE
BackgroundDarkness=0.750000
ScrollingBar=TERMINAL_SCROLLBAR_NONE
ColorBackground=#1e1e1e1e1e1e
TitleInitial=
FontName=Ubuntu Mono 13

32
config/xfce4/thunar.xml Normal file
View File

@@ -0,0 +1,32 @@
<?xml version="1.1" encoding="UTF-8"?>
<channel name="thunar" version="1.0">
<property name="last-view" type="string" value="ThunarIconView"/>
<property name="last-icon-view-zoom-level" type="string" value="THUNAR_ZOOM_LEVEL_100_PERCENT"/>
<property name="last-window-width" type="int" value="1415"/>
<property name="last-window-height" type="int" value="1846"/>
<property name="last-window-maximized" type="bool" value="false"/>
<property name="last-separator-position" type="int" value="376"/>
<property name="misc-single-click" type="bool" value="false"/>
<property name="misc-thumbnail-mode" type="string" value="THUNAR_THUMBNAIL_MODE_ALWAYS"/>
<property name="misc-thumbnail-draw-frames" type="bool" value="false"/>
<property name="misc-file-size-binary" type="bool" value="false"/>
<property name="misc-text-beside-icons" type="bool" value="false"/>
<property name="misc-change-window-icon" type="bool" value="true"/>
<property name="shortcuts-icon-emblems" type="bool" value="true"/>
<property name="tree-icon-emblems" type="bool" value="true"/>
<property name="misc-show-delete-action" type="bool" value="true"/>
<property name="last-show-hidden" type="bool" value="false"/>
<property name="misc-parallel-copy-mode" type="string" value="THUNAR_PARALLEL_COPY_MODE_ALWAYS"/>
<property name="last-splitview-separator-position" type="int" value="589"/>
<property name="last-side-pane" type="string" value="THUNAR_SIDEPANE_TYPE_TREE"/>
<property name="last-location-bar" type="string" value="ThunarLocationButtons"/>
<property name="last-details-view-zoom-level" type="string" value="THUNAR_ZOOM_LEVEL_38_PERCENT"/>
<property name="last-details-view-column-widths" type="string" value="50,50,177,50,50,50,50,50,634,50,50,104,50,173"/>
<property name="last-sort-column" type="string" value="THUNAR_COLUMN_TYPE"/>
<property name="last-sort-order" type="string" value="GTK_SORT_ASCENDING"/>
<property name="misc-directory-specific-settings" type="bool" value="true"/>
<property name="last-renamer-dialog-width" type="int" value="942"/>
<property name="last-renamer-dialog-height" type="int" value="520"/>
<property name="last-renamer-dialog-maximized" type="bool" value="false"/>
</channel>

View File

@@ -0,0 +1,8 @@
<?xml version="1.1" encoding="UTF-8"?>
<channel name="xfce4-power-manager" version="1.0">
<property name="xfce4-power-manager" type="empty">
<property name="brightness-switch" type="int" value="0"/>
<property name="brightness-switch-restore-on-exit" type="int" value="-1"/>
</property>
</channel>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xfce4-settings-manager" version="1.0">
<property name="last" type="empty">
<property name="window-width" type="int" value="640"/>
<property name="window-height" type="int" value="500"/>
</property>
</channel>

View File

@@ -0,0 +1,54 @@
<?xml version="1.1" encoding="UTF-8"?>
<channel name="xfce4-terminal" version="1.0">
<property name="background-darkness" type="double" value="0.90000000000000002"/>
<property name="color-background" type="string" value="#ffffff"/>
<property name="font-name" type="string" value="Ubuntu Mono 14"/>
<property name="misc-always-show-tabs" type="bool" value="false"/>
<property name="misc-bell" type="bool" value="false"/>
<property name="misc-bell-urgent" type="bool" value="false"/>
<property name="misc-borders-default" type="bool" value="false"/>
<property name="misc-cursor-blinks" type="bool" value="false"/>
<property name="misc-cursor-shape" type="string" value="TERMINAL_CURSOR_SHAPE_BLOCK"/>
<property name="misc-default-geometry" type="string" value="80x24"/>
<property name="misc-inherit-geometry" type="bool" value="false"/>
<property name="misc-menubar-default" type="bool" value="false"/>
<property name="misc-mouse-autohide" type="bool" value="false"/>
<property name="misc-mouse-wheel-zoom" type="bool" value="true"/>
<property name="misc-toolbar-default" type="bool" value="false"/>
<property name="misc-confirm-close" type="bool" value="false"/>
<property name="misc-cycle-tabs" type="bool" value="true"/>
<property name="misc-tab-close-buttons" type="bool" value="true"/>
<property name="misc-tab-close-middle-click" type="bool" value="true"/>
<property name="misc-tab-position" type="string" value="GTK_POS_TOP"/>
<property name="misc-highlight-urls" type="bool" value="true"/>
<property name="misc-middle-click-opens-uri" type="bool" value="false"/>
<property name="misc-copy-on-select" type="bool" value="false"/>
<property name="misc-show-relaunch-dialog" type="bool" value="false"/>
<property name="misc-rewrap-on-resize" type="bool" value="true"/>
<property name="misc-slim-tabs" type="bool" value="false"/>
<property name="misc-new-tab-adjacent" type="bool" value="false"/>
<property name="misc-search-dialog-opacity" type="uint" value="100"/>
<property name="misc-show-unsafe-paste-dialog" type="bool" value="false"/>
<property name="misc-right-click-action" type="string" value="TERMINAL_RIGHT_CLICK_ACTION_CONTEXT_MENU"/>
<property name="scrolling-bar" type="string" value="TERMINAL_SCROLLBAR_NONE"/>
<property name="overlay-scrolling" type="bool" value="true"/>
<property name="scrolling-unlimited" type="bool" value="true"/>
<property name="title-initial" type="string" value=""/>
<property name="background-mode" type="string" value="TERMINAL_BACKGROUND_TRANSPARENT"/>
<property name="color-use-theme" type="bool" value="true"/>
<property name="font-use-system" type="bool" value="false"/>
<property name="color-background-vary" type="bool" value="false"/>
<property name="color-foreground" type="string" value="#000000"/>
<property name="color-cursor-foreground" type="string" value=""/>
<property name="color-cursor" type="string" value=""/>
<property name="color-cursor-use-default" type="bool" value="true"/>
<property name="color-selection" type="string" value=""/>
<property name="color-selection-background" type="string" value=""/>
<property name="color-selection-use-default" type="bool" value="true"/>
<property name="color-bold" type="string" value=""/>
<property name="color-bold-use-default" type="bool" value="true"/>
<property name="color-palette" type="string" value="#000000;#cd0000;#00cd00;#cdcd00;#0000cd;#cd00cd;#00cdcd;#e5e5e5;#7f7f7f;#ff0000;#00ff00;#ffff00;#5c5cff;#ff00ff;#00ffff;#ffffff"/>
<property name="color-bold-is-bright" type="bool" value="true"/>
<property name="tab-activity-color" type="string" value="#aa0000"/>
</channel>

View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xsettings" version="1.0">
<property name="Net" type="empty">
<property name="ThemeName" type="string" value="Adwaita-dark"/>
<property name="IconThemeName" type="empty"/>
<property name="DoubleClickTime" type="empty"/>
<property name="DoubleClickDistance" type="empty"/>
<property name="DndDragThreshold" type="empty"/>
<property name="CursorBlink" type="empty"/>
<property name="CursorBlinkTime" type="empty"/>
<property name="SoundThemeName" type="empty"/>
<property name="EnableEventSounds" type="empty"/>
<property name="EnableInputFeedbackSounds" type="empty"/>
</property>
<property name="Xft" type="empty">
<property name="DPI" type="empty"/>
<property name="Antialias" type="empty"/>
<property name="Hinting" type="empty"/>
<property name="HintStyle" type="empty"/>
<property name="RGBA" type="empty"/>
</property>
<property name="Gtk" type="empty">
<property name="CanChangeAccels" type="empty"/>
<property name="ColorPalette" type="empty"/>
<property name="FontName" type="string" value="Ubuntu 10"/>
<property name="MonospaceFontName" type="string" value="Ubuntu Mono 10"/>
<property name="IconSizes" type="empty"/>
<property name="KeyThemeName" type="empty"/>
<property name="ToolbarStyle" type="empty"/>
<property name="ToolbarIconSize" type="empty"/>
<property name="MenuImages" type="empty"/>
<property name="ButtonImages" type="empty"/>
<property name="MenuBarAccel" type="empty"/>
<property name="CursorThemeName" type="empty"/>
<property name="CursorThemeSize" type="empty"/>
<property name="DecorationLayout" type="empty"/>
<property name="DialogsUseHeader" type="empty"/>
<property name="TitlebarMiddleClick" type="empty"/>
</property>
<property name="Gdk" type="empty">
<property name="WindowScalingFactor" type="empty"/>
</property>
</channel>

40
dependencies/aur.txt vendored
View File

@@ -1,21 +1,39 @@
visual-studio-code-bin visual-studio-code-bin
i3blocks-contrib i3blocks-contrib
enpass-bin
insync insync
ttf-font-awesome-4
awesome-terminal-fonts-git awesome-terminal-fonts-git
otf-droid-sans-mono-powerline-git
downgrade downgrade
powerline-rs oh-my-posh
dive dive
xorg-xev gnome-text-editor
chili-sddm-theme
awf-gtk4
seafile
networkmanager-l2tp networkmanager-l2tp
snapd xorg-xev
azure-cli nvm
notify-osd-customizable hadolint-bin
notifyconf
dotnet-host-bin dotnet-host-bin
sysmontask
keychain keychain
nomachine nomachine
chili-sddm-theme otf-droid-sans-mono-powerline-git
sysmontask
rofi-greenclip
# audio
pipewire-pulse
pipewire-alsa
pipewire-jack
tidal-hifi
# theme
dracula-gtk-theme-full
dracula-cursors-git
dracula-icons-theme
dracula-xresources-git
# slow stuff
azure-cli
seafile-client

View File

@@ -1,52 +1,65 @@
#
# Core system
#
base-devel base-devel
git
wget
libconfig
wmctrl
acpi
ntp
openssh
gvfs-smb
sddm
polkit-gnome
gnome-keyring
libgnome-keyring
python-keyring
libsecret
seahorse
reflector
gtk-engines
kubectl
less
smartmontools
ethtool
#
# i3wm
#
i3-gaps
i3lock
xorg-xrandr
#
# Xorg stuff
#
xorg-server xorg-server
xorg-xinit xorg-xinit
mesa mesa
i3-gaps
rsync
i3lock
feh
scrot
arandr
xfce4-terminal
ttf-font-awesome
sushi
libconfig
compton
lxappearance
arc-gtk-theme
rofi
i3blocks
wmctrl
zenity zenity
xorg-xrandr xsettingsd
networkmanager
eog #
python # Programming
python-pip #
neofetch
git
scrot
acpi
imagemagick
docker
docker-compose
htop
powertop
network-manager-applet
pavucontrol
alsa-utils
ntp
xclip
openssh
nodejs nodejs
npm npm
python
python-pip
pyenv
dotnet-host
dotnet-runtime
dotnet-sdk
aspnet-runtime
#
# Codecs
#
a52dec a52dec
faac faac
faad2 faad2
flac flac
jasper
lame
libdca libdca
libdv libdv
libmad libmad
@@ -55,38 +68,88 @@ libtheora
libvorbis libvorbis
libxv libxv
wavpack wavpack
jasper
lame
x264 x264
xvidcore xvidcore
gvfs-smb
gnome-screenshot #
# Applications
#
alsa-utils
arandr
autorandr
bash-completion bash-completion
flameshot bat
otf-font-awesome bitwarden
openvpn
networkmanager-openvpn
w3m
system-config-printer
nautilus
nautilus-share
wget
pyenv
jq
firefox
dotnet-host
dotnet-runtime
dotnet-sdk
aspnet-runtime
clamav
clamtk
keychain
thefuck
peek
blueman
pulseaudio-bluetooth
bluez bluez
bluez-libs bluez-libs
sddm bluez-utils
polkit-gnome clamav
gnome-keyring clamtk
libsecret ctop
seahorse cups
docker
docker-compose
duf
engrampa
loupe
feh
firefox
flameshot
gtk-engine-murrine
gnome-themes-standard
gnome-themes-extra
htop
i3blocks
imagemagick
jq
keychain
lxappearance
mpv
neofetch
network-manager-applet
networkmanager
networkmanager-l2tp
obsidian
papirus-icon-theme
pavucontrol
peek
picom
polybar
poppler
powertop
rofi
rofi-emoji
rofi-calc
xdotool
rsync
scrot
scrot
strongswan
system-config-printer
system-config-printer
thefuck
thunar
thunar-archive-plugin
dunst
yq
ufw
gufw
w3m
blueberry
xclip
xfce4-terminal
xorg-xkill
pass
evince
tlp
libreoffice
# fonts
fontconfig
noto-fonts-emoji
otf-font-awesome
ttf-font-awesome
ttf-ubuntu-font-family
fzf

View File

@@ -1,5 +0,0 @@
msrestazure
azure.common
azure.mgmt
azure.mgmt.containerservice
azure.graphrbac

13
docs/afterinstall.md Normal file
View File

@@ -0,0 +1,13 @@
# after install
<!-- toc -->
- [after install](#after-install)
- [Set up vscode settings sync](#set-up-vscode-settings-sync)
<!-- tocstop -->
## Set up vscode settings sync
Simply install [zokugun's setting sync](https://github.com/zokugun/vscode-sync-settings).
The config file [config/code/sync-settings.yml](./../config/code/sync-settings.yml) will already point to the correct repo

140
i3/config
View File

@@ -13,30 +13,19 @@ floating_modifier $mod
# Constants # # Constants #
############################################ ############################################
set $urgentTextBackgroundColour #a6a6a6 set $workspace1 "1: "
set $primaryBackgroundColour #1e1e1e
set $secondaryBackgroundColour #252526
set $tertiaryBackgroundColour #333333
set $textColour #848484
set $focusedTextColour #f6f6f7
set $statusLineColour #d1d4e0
set $urgentTextColour #ef5350
set $indicatorColour #fcc09e
set $workspace1 "1: "
set $workspace2 "2: " set $workspace2 "2: "
set $workspace3 "3: " set $workspace3 "3: "
set $workspace4 "4: " set $workspace4 "4: "
set $workspace5 "5: " set $workspace5 "5: "
set $workspace6 "6: " set $workspace6 "6: "
set $workspace7 "7: " set $workspace7 "7: "
set $workspace8 "8: " set $workspace8 "8: "
set $workspace9 "9: " set $workspace9 "9: "
set $workspace10 "10: " set $workspace10 "10: "
set $workspace11 " VM/Remote" set $workspace11 "11:  "
set $workspace12 " Enpass" set $workspace12 "12: "
set $workspace13 "13: "
# scripts # scripts
set $tidal ~/.config/i3/scripts/tidal-cli.sh set $tidal ~/.config/i3/scripts/tidal-cli.sh
@@ -60,6 +49,10 @@ bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right bindsym $mod+Shift+Right move right
# move focused workspace
bindsym $mod+Ctrl+Right move workspace to output right
bindsym $mod+Ctrl+Left move workspace to output left
# split in horizontal orientation # split in horizontal orientation
bindsym $mod+h split h bindsym $mod+h split h
@@ -87,9 +80,21 @@ bindsym $mod+Shift+c reload
bindsym $mod+Shift+r restart bindsym $mod+Shift+r restart
# exit i3 (logs you out of your X session) # exit i3 (logs you out of your X session)
bindsym $mod+Shift+Escape exec "i3-nagbar -t warning -m 'Do you really want to exit i3?' -b 'Yes, exit i3' 'i3-msg exit'" set $mode_power "Exit (L)ogout, (R)eboot, (S)hutdown"
bindsym $mod+Shift+Delete exec "i3-nagbar -t alert -m 'Do you really want to shut down?' -b 'Yes, Shutdown' 'shutdown -h now'"
bindsym $mod+Shift+BackSpace exec "i3-nagbar -t error -m 'Do you really want to reboot?' -b 'Yes, Reboot' 'reboot'" mode $mode_power {
bindsym $mod+r exec systemctl reboot
bindsym $mod+l exit
bindsym $mod+s exec systemctl poweroff
# back to normal: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+Shift+Delete mode $mode_power
bindsym $mod+Shift+Escape mode $mode_power
bindsym $mod+Shift+Backspace mode $mode_power
# focus on the parent window # focus on the parent window
bindsym $mod+shift+alt+p focus parent bindsym $mod+shift+alt+p focus parent
@@ -110,26 +115,35 @@ mode "resize" {
bindsym $mod+r mode "resize" bindsym $mod+r mode "resize"
# Lock the computer # Lock the computer
bindsym $mod+l exec /bin/bash ~/.config/i3/scripts/i3lock.sh bindsym $mod+l exec /bin/bash ~/.config/i3/scripts/lock.sh
# Suspend the computer # Suspend the computer
bindsym $mod+shift+l exec /bin/bash ~/.config/i3/scripts/suspend.sh bindsym $mod+shift+l exec /bin/bash ~/.config/i3/scripts/suspend.sh
# Workspace info popup
bindsym $mod+shift+Tab exec /bin/bash ~/dotfiles/i3/scripts/visibleWorkspaces.sh
############################################ ############################################
# Application Keys # # Application Keys #
############################################ ############################################
bindsym $mod+Return exec xfce4-terminal # terminal bindsym $mod+Return exec xfce4-terminal # terminal
bindsym $mod+e exec nautilus # File manager bindsym $mod+shift+Return exec xfce4-terminal --drop-down # terminal
bindsym $mod+e exec thunar # File manager
bindsym Print exec flameshot screen -d 0 -p ~/Pictures/Screenshots # Fullscreen screenshot bindsym Print exec flameshot screen -d 0 -p ~/Pictures/Screenshots # Fullscreen screenshot
bindsym $mod+Print exec flameshot gui # Show screenshot window bindsym $mod+Print exec flameshot gui # Show screenshot window
bindsym $mod+shift+b exec /bin/bash ~/.config/i3/scripts/brightness.sh bindsym $mod+shift+Print exec flameshot launcher # Show settings window (delay) then show screenshot window
bindsym control+shift+Escape exec sysmontask bindsym $mod+shift+b exec /bin/bash ~/.config/i3/scripts/brightness.sh # set brightness
bindsym control+shift+Escape exec sysmontask # system monitor
bindsym $mod+BackSpace exec autorandr --change undocked # reset to laptop view
# Rofi # Rofi
bindsym $mod+d exec "rofi -show run" bindsym $mod+d exec "rofi -show drun"
bindsym $mod+Tab exec "rofi -show" bindsym $mod+Tab exec "rofi -show window"
bindsym $mod+s exec "rofi -show ssh" bindsym $mod+s exec "rofi -show ssh"
bindsym $mod+c exec "rofi -show calc"
bindsym $mod+n exec $vpnmanager bindsym $mod+n exec $vpnmanager
bindsym $mod+colon exec "rofi -show emoji"
bindsym $mod+shift+v exec "rofi -modi 'clipboard:greenclip print' -show clipboard -run-command '{cmd}'"
############################################ ############################################
# Media keys # # Media keys #
@@ -168,6 +182,7 @@ bindsym $mod+9 workspace $workspace9
bindsym $mod+0 workspace $workspace10 bindsym $mod+0 workspace $workspace10
bindsym $mod+w workspace $workspace11 bindsym $mod+w workspace $workspace11
bindsym $mod+p workspace $workspace12 bindsym $mod+p workspace $workspace12
bindsym $mod+g workspace $workspace13
# move focused container to workspace # move focused container to workspace
bindsym $mod+Shift+1 move container to workspace $workspace1 bindsym $mod+Shift+1 move container to workspace $workspace1
@@ -182,41 +197,29 @@ bindsym $mod+Shift+9 move container to workspace $workspace9
bindsym $mod+Shift+0 move container to workspace $workspace10 bindsym $mod+Shift+0 move container to workspace $workspace10
bindsym $mod+Shift+w move container to workspace $workspace11 bindsym $mod+Shift+w move container to workspace $workspace11
bindsym $mod+Shift+p move container to workspace $workspace12 bindsym $mod+Shift+p move container to workspace $workspace12
bindsym $mod+Shift+g move container to workspace $workspace13
############################################ ############################################
# Appearance settings # # Appearance settings #
############################################ ############################################
# Set the default font # Set the default font
font pango:Liberation sans 13 font pango:Ubuntu regular 12
#new_window 1pixel
# Bar decoration
bar {
status_command i3blocks -c ~/.config/i3/i3blocks.conf
position top
strip_workspace_numbers no
tray_output primary
colors {
separator $textColour
background $primaryBackgroundColour
statusline $statusLineColour
# border background text
focused_workspace $primaryBackgroundColour $primaryBackgroundColour $focusedTextColour
active_workspace $primaryBackgroundColour $secondaryBackgroundColour $textColour
inactive_workspace $primaryBackgroundColour $primaryBackgroundColour $textColour
urgent_workspace $primaryBackgroundColour $primaryBackgroundColour $urgentTextColour
}
}
new_window 1pixel
hide_edge_borders both hide_edge_borders both
# Window Colours # Window Colours
# border background text indicator # class border bground text indicator child_border
client.focused $primaryBackgroundColour $primaryBackgroundColour $focusedTextColour $indicatorColour # dark
client.focused_inactive $secondaryBackgroundColour $secondaryBackgroundColour $textColour $indicatorColour # client.focused #1e1e1e #1e1e1e #f6f6f7 #fcc09e
client.unfocused $secondaryBackgroundColour $secondaryBackgroundColour $textColour $indicatorColour # client.focused_inactive #252526 #252526 #848484 #fcc09e
client.urgent $secondaryBackgroundColour $urgentTextBackgroundColour $urgentTextColour $indicatorColour # client.unfocused #252526 #252526 #848484 #fcc09e
# client.urgent #252526 #a6a6a6 #ef5350 #fcc09e
# dracula
client.focused #BD93F9 #BD93F9 #F8F8F2 #BD93F9 #BD93F9
client.focused_inactive #44475A #44475A #F8F8F2 #44475A #44475A
client.unfocused #282A36 #282A36 #BFBFBF #282A36 #282A36
client.urgent #44475A #FF5555 #F8F8F2 #FF5555 #FF5555
client.placeholder #282A36 #282A36 #F8F8F2 #282A36 #282A36
# Floating windows # Floating windows
for_window [class="Pavucontrol"] floating enable for_window [class="Pavucontrol"] floating enable
@@ -226,17 +229,19 @@ for_window [class="Eog"] floating enable
for_window [title="Tidal-hifi - settings"] floating enable for_window [title="Tidal-hifi - settings"] floating enable
for_window [class="Sysmontask"] floating enable for_window [class="Sysmontask"] floating enable
for_window [class="Sysmontask"] resize set 930 665 for_window [class="Sysmontask"] resize set 930 665
for_window [instance="Godot_Engine"] floating enable
for_window [class="Alert"] floating enable
############################################ ############################################
# Workspace specific tools # # Workspace specific tools #
# Use xprop to determine class # # Use xprop to determine class #
############################################ ############################################
assign [class="Enpass-Desktop"] $workspace12 assign [class="Bitwarden"] $workspace12 # moves all windows... including the browser popup
assign [class="VirtualBox Machine"] $workspace11 assign [class="VirtualBox Machine"] $workspace11
# database stuff
assign [class="MongoDB Compass"] $workspace8 assign [class="MongoDB Compass"] $workspace8
assign [class="robo3t"] $workspace8 assign [class="robo3t"] $workspace8
assign [class="Brave-browser"] $workspace9
assign [class="obsidian"] $workspace7
assign [class="Mysql-workbench-bin"] $workspace8 assign [class="Mysql-workbench-bin"] $workspace8
assign [class="azuredatastudio"] $workspace8 assign [class="azuredatastudio"] $workspace8
assign [class="beekeeper"] $workspace8 assign [class="beekeeper"] $workspace8
@@ -245,7 +250,7 @@ assign [class="beekeeper"] $workspace8
# i3-gaps # # i3-gaps #
############################################ ############################################
# Disable window titlebars entirely # Disable window titlebars entirely
for_window [class="^.*"] border pixel 2 for_window [class="^.*"] border pixel 0
# Set inner/outer gaps # Set inner/outer gaps
gaps inner 10 gaps inner 10
@@ -262,13 +267,13 @@ smart_borders on
# Smart gaps (gaps used if only more than one container on the workspace) # Smart gaps (gaps used if only more than one container on the workspace)
smart_gaps on smart_gaps on
# Press $mod+Shift+g to enter the gap mode. Choose o or i for modifying outer/inner gaps. # Press $mod+Shift+end to enter the gap mode. Choose o or i for modifying outer/inner gaps.
# Press one of + / - (in-/decrement for current workspace) or 0 (remove gaps for current workspace). # Press one of + / - (in-/decrement for current workspace) or 0 (remove gaps for current workspace).
# If you also press Shift with these keys, the change will be global for all workspaces. # If you also press Shift with these keys, the change will be global for all workspaces.
set $mode_gaps Gaps: (o) outer, (i) inner set $mode_gaps Gaps: (o) outer, (i) inner
set $mode_gaps_outer Outer Gaps: +|-|0 (local), Shift + +|-|0 (global) set $mode_gaps_outer Outer Gaps: +|-|0 (local), Shift + +|-|0 (global)
set $mode_gaps_inner Inner Gaps: +|-|0 (local), Shift + +|-|0 (global) set $mode_gaps_inner Inner Gaps: +|-|0 (local), Shift + +|-|0 (global)
bindsym $mod+Shift+g mode "$mode_gaps" bindsym $mod+Shift+End mode "$mode_gaps"
mode "$mode_gaps" { mode "$mode_gaps" {
bindsym o mode "$mode_gaps_outer" bindsym o mode "$mode_gaps_outer"
@@ -305,10 +310,19 @@ mode "$mode_gaps_outer" {
############################################ ############################################
# Autorun # # Autorun #
############################################ ############################################
# exec_always --no-startup-id picom -b
exec_always feh --bg-fill $(find ~/Pictures/wallpapers/ -type f -name "*" | shuf -n 1)
exec_always --no-startup-id ~/.config/polybar/launch.sh
exec --no-startup-id systemctl --user start xsettingsd
exec --no-startup-id i3-msg 'workspace $workspace2; exec xfce4-terminal' && i3-msg 'workspace $workspace1' exec --no-startup-id i3-msg 'workspace $workspace2; exec xfce4-terminal' && i3-msg 'workspace $workspace1'
exec --no-startup-id i3-msg 'workspace $workspace12; exec enpass' exec --no-startup-id i3-msg 'workspace $workspace12; exec bitwarden-desktop'
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
exec --no-startup-id nm-applet exec --no-startup-id nm-applet
exec_always feh --bg-scale $(find ~/Pictures/wallpapers/ -type f -name "*" | shuf -n 1) exec --no-startup-id greenclip daemon
exec --no-startup-id seafile-applet
exec --no-startup-id obsidian
exec /usr/bin/compton exec /usr/bin/compton
exec /bin/bash ~/.config/i3/scripts/startup.sh exec /bin/bash ~/.config/i3/scripts/startup.sh
# don't blank the screen please :)
exec --no-startup-id xset s off && xset -dpms && xset s noblank

View File

@@ -51,42 +51,12 @@ label=
interval=1 interval=1
color=#999999 color=#999999
# CPU usage
#
# The script may be called with -w and -c switches to specify thresholds,
# see the script for details.
[cpu_usage]
label=
interval=1
#min_width=CPU:100.00%
separator=true
[load_average] [load_average]
label= label=
interval=10 interval=10
separator=true separator=true
color=#999999 color=#999999
# Memory usage
#
# The type defaults to "mem" if the instance is not specified.
[memory]
label=
separator=true
interval=30
color=#999999
# Disk usage
# The directory defaults to $HOME if the instance is not specified.
# The script may be called with a optional argument to set the alert
# (defaults to 10 for 10%).
[disk]
label=
instance=/
interval=5
separator=true
color=#999999
# Updates # Updates
[updates] [updates]
label= label=
@@ -114,20 +84,6 @@ interval=60
separator=true separator=true
color=#999999 color=#999999
# Volume indicator
#
# The first parameter sets the step (and units to display)
# The second parameter overrides the mixer selection
# See the script for details.
[volume]
label=
instance=Master
interval=1
command=/usr/lib/i3blocks/volume/volume 5 pulse
signal=10
separator=true
color=#999999
# Battery indicator # Battery indicator
# The battery instance defaults to 0. # The battery instance defaults to 0.
[battery2] [battery2]

View File

@@ -1,20 +1,19 @@
#!/bin/bash #!/bin/bash
intelTemp=$(sensors | # execute sensors intelTemp=$(
grep -w "Core 0:" | # grep for the first core sensors | # execute sensors
sed 's/([^)]*)//g' | # filter grep -w "Core 0:" | # grep for the first core
tr -s " " | # remove whitespace sed 's/([^)]*)//g' | # filter
sed -e 's/Core 0\(.*\):/\1/' | # get value between Core 0 and : tr -s " " | # remove whitespace
cut -c 3- | rev | cut -c 7- | rev #remove clutter sed -e 's/Core 0\(.*\):/\1/' | # get value between Core 0 and :
cut -c 3- | rev | cut -c 7- | rev #remove clutter
) )
amdTemp=$(sensors | grep -w "Tdie:" | sed 's/([^)]*)//g' | tr -s " " | cut -c 8- | rev | cut -c 6- | rev) amdTemp=$(sensors | grep -iw "tctl:" | sed 's/([^)]*)//g' | tr -s " " | cut -c 8- | rev | cut -c 2- | rev)
# echo out the result # echo out the result
if [ -z "$intelTemp" ] if [ -z "$intelTemp" ]; then
then
echo $amdTemp echo $amdTemp
else else
echo $intelTemp°C echo $intelTemp°C
fi fi

View File

@@ -1,18 +1,16 @@
#! /bin/bash #! /bin/bash
displays=($(xrandr | awk '/ connected /{print $1}')) mapfile -t displays < <(xrandr | awk '/ connected /{print $1}')
if (( ${#displays[@]} > 1 )) if ((${#displays[@]} > 1)); then
then
selected_display="$(zenity --list --title 'Select Display' --radiolist --column '' --column 'Display' $(xrandr | awk '/ connected /{print NR,$1}'))" selected_display="$(zenity --list --title 'Select Display' --radiolist --column '' --column 'Display' $(xrandr | awk '/ connected /{print NR,$1}'))"
else else
selected_display="${displays[0]}" selected_display="${displays[0]}"
fi fi
current_brightness=($(xrandr --current --verbose | grep -m1 Brightness | awk '{print $2}' | sed 's/0.//' | sed 's/.0/00/' )) current_brightness=$(xbacklight -display "$selected_display" -get)
zenity --scale --title "Set brightness of $selected_display" --value=$current_brightness --print-partial | zenity --scale --title "Set brightness of $selected_display" --value=$current_brightness --print-partial |
while read brightness while read brightness; do
do xbacklight -display "$selected_display" -set "$brightness"
xrandr --output "$selected_display" --brightness $(awk '{print $1/100}' <<<"$brightness"}) done
done

View File

@@ -4,7 +4,7 @@ icon="$HOME/.config/i3/icons/lock.png"
tmpbg='/tmp/screen.png' tmpbg='/tmp/screen.png'
# detect whether tidal is running # detect whether tidal is running
isPlaying=$(~/.config/i3/scripts/tidal-cli.sh status); isPlaying=$(~/.config/i3/scripts/tidal-cli.sh status)
scrot "$tmpbg" scrot "$tmpbg"
convert "$tmpbg" -scale 10% -scale 1000% "$tmpbg" convert "$tmpbg" -scale 10% -scale 1000% "$tmpbg"
@@ -16,14 +16,14 @@ convert "$tmpbg" "$icon" -gravity center -composite -matte "$tmpbg"
# check whether the lockscreen is being activated because of a suspend # check whether the lockscreen is being activated because of a suspend
if [[ $* == *--suspend ]]; then if [[ $* == *--suspend ]]; then
# if it is, simply lock without no-fork # if it is, simply lock without no-fork
i3lock -f -i "$tmpbg"; i3lock -f -i "$tmpbg"
else else
# if it isn't suspended, enable no-fork # if it isn't suspended, enable no-fork
i3lock -n -f -i "$tmpbg"; i3lock -n -f -i "$tmpbg"
# if tidal was playing before we locked, resume. # if tidal was playing before we locked, resume.
if [ $isPlaying == "playing" ]; then if [ "$isPlaying" == "playing" ]; then
~/.config/i3/scripts/tidal-cli.sh play ~/.config/i3/scripts/tidal-cli.sh play
fi; fi
rm -rf $tmpbg
fi fi

View File

@@ -4,12 +4,10 @@
insync start insync start
# Wait for the programs to start then remove attention (e.g red blinking) # Wait for the programs to start then remove attention (e.g red blinking)
sleep 1 # sleep 1
wmctrl -r "Enpass" -b remove,demands_attention # wmctrl -r "Enpass" -b remove,demands_attention
# Start gkraken if the command exists # Start gkraken if the command exists
if command -v gkraken &> /dev/null if command -v gkraken &>/dev/null; then
then
gkraken --hide-window & gkraken --hide-window &
fi fi

View File

@@ -1,9 +1,9 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# check if locked # check if locked
if !(pgrep -x "i3lock" > /dev/null) if ! pgrep -x "i3lock" >/dev/null; then
then echo "not locked, locking"
bash ~/.config/i3/scripts/i3lock.sh --suspend bash ~/.config/i3/scripts/lock.sh --suspend
fi fi
systemctl suspend systemctl suspend

View File

@@ -29,7 +29,7 @@ case $1 in
"info") "info")
JSON=$(httpGet current) JSON=$(httpGet current)
TITLE=$(echo "$JSON" | jq -r '.title') TITLE=$(echo "$JSON" | jq -r '.title')
ARTISTS=$(echo "$JSON" | jq -r '.artist') ARTISTS=$(echo "$JSON" | jq -r '.artists')
INFO=$(echo "$TITLE - $ARTISTS") INFO=$(echo "$TITLE - $ARTISTS")
if [ ${#INFO} -le 3 ]; then if [ ${#INFO} -le 3 ]; then
echo "No music info available" echo "No music info available"
@@ -37,6 +37,12 @@ case $1 in
echo "$INFO" echo "$INFO"
fi fi
;; ;;
"getLink")
JSON=$(httpGet current)
URL=$(echo "$JSON" | jq -r '.url')
echo "$URL"
;;
"status") "status")
if httpGet current | grep "paused" >/dev/null; then if httpGet current | grep "paused" >/dev/null; then
echo "paused" echo "paused"

View File

@@ -0,0 +1,15 @@
#!/bin/bash
# Get workspace information from i3
workspaces_json=$(i3-msg -t get_workspaces)
# Extract active workspaces for each output
notification_text=$(echo "$workspaces_json" | jq -r '.[] | select(.focused == true or .visible == true) | "\(.name) on \(.output | gsub("DisplayPort"; "DP"))"' | sort)
# Show notification with better styling
notify-send -u critical \
-i workspace \
-a "i3-workspace-info" \
-t 10000 \
-e \
"Visible workspaces:" "$notification_text"

View File

@@ -1,5 +1,12 @@
#!/bin/bash #!/bin/bash
# =======================================
# Script setup
# =======================================
set -e
set -o pipefail
# ======================================= # =======================================
# Helper functions # Helper functions
# ======================================= # =======================================
@@ -45,7 +52,7 @@ function linkDir {
# replace line endings with a space (for use in package managers) # replace line endings with a space (for use in package managers)
function fileToList { function fileToList {
echo $(cat "$1" | sed ':a;N;$!ba;s/\n/ /g') echo $(cat "$1" | sed '/^\s*#\([^!]\|$\)/d' | tr +'\n' ' ' | tr -s ' ')
} }
# create and copy files to directory # create and copy files to directory
@@ -62,41 +69,70 @@ function copyToDir {
function install_fonts { function install_fonts {
mkdir -p ~/.fonts mkdir -p ~/.fonts
mkdir -p ~/.local/share/fonts mkdir -p ~/.local/share/fonts
sudo mkdir -p /usr/local/share/fonts
cp -rf ./fonts/* ~/.fonts cp -rf ./fonts/* ~/.fonts
cp -rf ./fonts/* ~/.local/share/fonts cp -rf ./fonts/* ~/.local/share/fonts
sudo cp -rf ./fonts/* /usr/local/share/fonts
} }
# install trizen, a aur helper # install trizen, an aur helper
function install_trizen { function install_trizen {
git clone https://aur.archlinux.org/trizen.git mkdir /tmp/trizen-install
pushd trizen || return git clone https://aur.archlinux.org/trizen.git /tmp/trizen-install
pushd /tmp/trizen-install || return
makepkg -si makepkg -si
popd || return popd || return
sudo rm -dRf trizen/ sudo rm -dRf /tmp/trizen-install
}
# Sets up time and date related stuff
function setDateTimeConfig {
systemctl enable ntpd
timedatectl set-ntp true
sudo ln -sf "$PWD"/config/networkmanager/09-timezone /etc/NetworkManager/dispatcher.d/09-timezone
}
function install_gtk {
mkdir -p "$HOME/.config/gtk-3.0"
mkdir -p "$HOME/.config/gtk-4.0"
ln -sf "$PWD"/config/gtk/settings.ini ~/.gtkrc-2.0.mine
ln -sf "$PWD"/config/gtk/settings.ini ~/.config/gtk-3.0/settings.ini
ln -sf "$PWD"/config/gtk/settings.ini ~/.config/gtk-4.0/settings.ini
}
function install_docker {
sudo systemctl enable docker
sudo usermod -aG docker "$USER"
} }
# install other configs # install other configs
function install_config { function install_config {
install_gtk
# link directories # link directories
linkDir "$PWD"/wallpapers/images ~/Pictures/wallpapers linkDir "$PWD"/wallpapers/images ~/Pictures/wallpapers
linkDir "$PWD"/i3 ~/.config/i3 linkDir "$PWD"/i3 ~/.config/i3
linkDir "$PWD"/config/notify-osd/notify-osd ~/.notify-osd
linkDir "$PWD"/config/terminal/xfce4-term ~/.config/xfce4/terminal linkDir "$PWD"/config/terminal/xfce4-term ~/.config/xfce4/terminal
linkDir "$PWD"/config/gtk-3.0/settings.ini ~/.config/gtk-3.0/.config linkDir "$PWD"/config/polybar ~/.config/polybar
linkDir "$PWD"/config/poshthemes ~/.config/poshthemes
linkDir "$PWD"/config/xfce4 ~/.config/xfce4/xfconf/xfce-perchannel-xml
linkDir "$PWD"/config/rofi ~/.config/rofi
# link user files # link user files
ln -sf "$PWD"/bash/.aliases ~/
ln -sf "$PWD"/bash/.bashrc ~/.bashrc ln -sf "$PWD"/bash/.bashrc ~/.bashrc
ln -sf "$PWD"/bash/.dotnet-install.sh ~/.dotnet-install.sh ln -sf "$PWD"/bash/.dotnet-install.sh ~/.dotnet-install.sh
ln -sf "$PWD"/bash/.alias.sh ~/.alias ln -sf "$PWD"/bash/.alias.sh ~/.alias
ln -sf "$PWD"/config/nano/.nanorc ~/.nanorc ln -sf "$PWD"/config/nano/.nanorc ~/.nanorc
ln -sf "$PWD"/config/.Xresources ~/.Xresources
ln -sf "$PWD"/bash/.powerline-shell.json ~/.powerline-shell.json ln -sf "$PWD"/bash/.powerline-shell.json ~/.powerline-shell.json
ln -sf "$PWD"/config/gtk-3.0/settings.ini ~/.gtkrc-2.0.mine mkdir -p ~/.config/dunst
ln -sf "$PWD"/config/mimeapps.list ~/.config/mimeapps.list ln -sf "$PWD"/config/dunstrc ~/.config/dunst/dunstrc
mkdir -p ~/.config/rofi ln -sf "$PWD"/config/mimeapps.list ~/.config/mimeapps.list
ln -sf "$PWD"/config/rofi/rofi.rasi ~/.config/rofi/config.rasi ln -sf "$PWD"/config/greenclip.toml ~/.config/greenclip.toml
ln -sf "$PWD"/config/rofi/mytheme.rasi ~/.config/rofi/mytheme.rasi ln -sf "$PWD"/config/terminalrc ~/.config/xfce4/terminal/terminalrc
ln -sf "$PWD"/config/.gitconfig ~/.gitconfig ln -sf "$PWD"/config/.gitconfig ~/.gitconfig
ln -sf "$PWD"/config/.npmrc ~/.npmrc ln -sf "$PWD"/config/.npmrc ~/.npmrc
@@ -105,19 +141,35 @@ function install_config {
ln -sf "$PWD"/config/pulse/daemon.conf ~/.pulse/daemon.conf ln -sf "$PWD"/config/pulse/daemon.conf ~/.pulse/daemon.conf
ln -sf "$PWD"/config/picom.conf ~/.config/picom.conf ln -sf "$PWD"/config/picom.conf ~/.config/picom.conf
# link autorandr files
mkdir -p "$HOME/.config/autorandr"
ln -sf "$PWD"/config/autorandr/postswitch ~/.config/autorandr/postswitch
# link system files / directories # link system files / directories
sudo ln -sf "$PWD"/config/package-managers/pacman.conf /etc/pacman.conf sudo ln -sf "$PWD"/config/package-managers/pacman.conf /etc/pacman.conf
sudo ln -sf "$PWD"/config/package-managers/makepkg.conf /etc/makepkg.conf sudo ln -sf "$PWD"/config/package-managers/makepkg.conf /etc/makepkg.conf
sudo ln -sf "$PWD"/config/ntp.conf /etc/ntp.conf sudo ln -sf "$PWD"/config/ntp.conf /etc/ntp.conf
sudo ln -sf "$PWD"/bash/Completion/ /etc/bash_completion.d sudo ln -sf "$PWD"/bash/Completion/ /etc/bash_completion.d
sudo ln -sf "$PWD"/config/environment /etc/environment
sudo ln -sf "$PWD"/config/.bash_profile ~/.bash_profile
# create empty .custom alias file # create empty .custom alias file
echo "" >~/.custom echo "" >~/.custom
echo "" >~/.variables echo "" >~/.variables
# files to be copied once
mkdir -p "$HOME/.config/Code/User"
cp "$PWD"/config/code/syncLocalSettings.json ~/.config/Code/User/
mkdir -p ~/.config/Code/User/globalStorage/zokugun.sync-settings
ln -sf "$PWD"/config/code/sync-settings.yml ~/.config/Code/User/globalStorage/zokugun.sync-settings/settings.yml
# system fixes # system fixes
echo fs.inotify.max_user_watches=524288 | sudo tee /etc/sysctl.d/40-max-user-watches.conf && sudo sysctl --system echo fs.inotify.max_user_watches=524288 | sudo tee /etc/sysctl.d/40-max-user-watches.conf && sudo sysctl --system
mkdir -p ~/Pictures/Screenshots mkdir -p ~/Pictures/Screenshots
setDateTimeConfig
setup_groups mastermindzh
} }
# Installs the dependencies on Arch Linux # Installs the dependencies on Arch Linux
@@ -125,11 +177,31 @@ function install_dependencies {
fileToList dependencies/pacman.txt | xargs sudo pacman --noconfirm -S fileToList dependencies/pacman.txt | xargs sudo pacman --noconfirm -S
install_trizen install_trizen
fileToList dependencies/aur.txt | xargs trizen --force -S --noconfirm set +e
fileToList dependencies/aur.txt | xargs trizen -S --noconfirm
fileToList dependencies/pip.txt | xargs sudo pip install set -e
fileToList dependencies/npm.txt | xargs sudo npm install -g fileToList dependencies/npm.txt | xargs sudo npm install -g
# enable services
sudo systemctl enable tlp
}
# set up a new ssh key
function create_ssh_key {
ssh-keygen -t ed25519 -C "info@rickvanlieshout.com"
eval "$(ssh-agent -s)"
}
# set up pass
function setup_pass {
pass init info@rickvanlieshout.com
}
# set up groups for specific user
function setup_groups {
local user=${1:-mastermindzh}
sudo usermod -a -G video "$user"
} }
# ======================================= # =======================================
@@ -190,6 +262,11 @@ ask "Do you want to continue installing my config and rice?" Y &&
install_dependencies install_dependencies
fi fi
# Ask for SSH generation
if ask "Do you want to generate a new SSH key?" Y; then
create_ssh_key
fi
# Ask for config installation # Ask for config installation
if ask "Do you want to install the config files?" Y; then if ask "Do you want to install the config files?" Y; then
install_config install_config
@@ -200,6 +277,16 @@ if ask "Do you want to install the fonts?" Y; then
install_fonts install_fonts
fi fi
# Autostart docker and add user
if ask "Do you want to set up docker for this user?" Y; then
install_docker
fi
# Autostart docker and add user
if ask "Do you want to set up a password manager for your keychain?" Y; then
setup_pass
fi
# ask to enable the display manager # ask to enable the display manager
if ask "Do you want to enable sddm?" Y; then if ask "Do you want to enable sddm?" Y; then
sudo systemctl set-default graphical.target sudo systemctl set-default graphical.target

BIN
media/2024-dracula-2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 440 KiB

BIN
media/2024-dracula.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

BIN
media/dotfiles-small-5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
media/dotfiles5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

BIN
media/dotfiles6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

View File

@@ -1,24 +0,0 @@
[
{
"images": ["blue-butterflies.jpg"],
"by": "https://pixabay.com/users/stergo-4163614/"
},
{
"images": [
"forest.jpg",
"lake-thunder.jpg",
"dark-hedges.jpg",
"thunderstorm-sea.jpg",
"sunset-dawn.jpg"
],
"by": "https://pixabay.com/users/jplenio-7645255/"
},
{
"images": ["starman.jpg", "friends.jpg"],
"by": "https://pixabay.com/users/free-photos-242387/"
},
{
"images": ["ping-cherryblossom.jpg", "winter-tree.jpg"],
"by": "https://pixabay.com/users/hans-2/"
}
]

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 571 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 447 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 678 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 252 KiB

BIN
wallpapers/images/dbz.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 544 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

Some files were not shown because too many files have changed in this diff Show More