Compare commits

63 Commits

Author SHA1 Message Date
569921c80e single exec for flameshot 2025-09-10 10:40:09 +02:00
d83c845b85 fixed flameshot, removed old configs, some other small tweaks 2025-09-10 10:38:02 +02:00
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
654a6f70a8 add keyring, seahorse and libsecret 2022-05-03 18:13:50 +02:00
de1577d420 add sddm, remove greenclip, add polkit 2022-05-03 18:11:25 +02:00
c574e4cba6 remove ranger 2022-05-03 14:43:02 +02:00
3768caaa76 switch to sddm 2022-05-03 14:41:51 +02:00
ea861dbbfa Merge branch 'master' of https://github.com/mastermindzh/dotfiles 2022-05-02 22:23:54 +02:00
13de19e0cc new dependencies (new laptop) and some aliases 2022-05-02 22:23:41 +02:00
07e5a472f0 added id_ed25519 keys 2022-05-02 22:07:09 +02:00
130 changed files with 2721 additions and 1203 deletions

View File

@@ -7,8 +7,9 @@ root = true
[*]
end_of_line = lf
insert_final_newline = true
indent_size = 2
# Matches multiple files with brace expansion notation
[*.{sh,py,yml}]
indent_style = space
indent_size = 2
indent_size = 2

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,35 +4,43 @@ This repository holds my Linux config files.
## 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:
- [dotfiles](media/dotfiles3.png)
- [dotfiles](media/dotfiles.png)
- [dotfiles6](media/dotfiles6.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)
- [dotfiles](media/dotfiles.png)
## Tools
| Purpose | Tool |
| ---------------- | ---------------------------------------------------------------------- |
| WM | i3 (i3-gaps) |
| bar | polybar |
| App launcher | rofi |
| Shell | Bash |
| Notifications | Dunst |
| Package managers | Pacman & Trizen |
| OS | Arch Linux |
| Terminal | xfce4-terminal |
| Editor | nano |
| Code editor | vscode / jetbrains stuff |
| Browser | Chromium |
| File manager | If I have to use one ... Nautilus |
| Editor | nano & mousepad |
| Code editor | vscode |
| Browser | Firefox |
| File manager | Thunar |
| 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.
The pc specific setup bit will read the folder names in computers, offer you a choice, and execute the install.sh inside that folder.
@@ -40,11 +48,18 @@ This allows me to get pc specific settings synced with git and applied easily.
## 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
- xwininfo -> displays xwindow info including current size/position
- `xprop` -> displays static `xwindow` info including Window class
- `xwininfo` -> displays `xwindow` info including current size/position
## 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
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 -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'
#!/bin/bash
# source program-specific aliases:
for f in ~/.aliases/*; do source "$f"; done
#dotnet core
alias efupdate="dotnet ef database update"
@@ -33,10 +16,18 @@ alias undo-commit='git reset --soft HEAD^'
## pacman and trizen
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 && update-av'
alias update-av='sudo freshclam || exit 0'
alias remove-orphans='sudo pacman -Rns $(pacman -Qtdq)'
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-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
alias meminfo='free -mth'
@@ -49,9 +40,8 @@ alias preferredapps='exo-preferred-applications'
#show 5 most memory consuming apps
alias psmem='ps auxf | sort -nr -k 5 | head -n 5'
##utility
# utility
alias nmapscan='nmap -n -sP'
alias pia='nohup sh /opt/pia/run.sh &>/dev/null & disown'
alias wifimenu='nm-connection-editor'
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'
@@ -59,15 +49,22 @@ alias enable-wifi='sudo ip link set wlp2s0 up'
alias scan-wifi='sudo iw dev wlp2s0 scan'
alias pretty-json='python -m json.tool'
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 mountshares='sudo bash ~/dotfiles/bash/mounts.sh'
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 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 unlockuser='faillock --reset --user'
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'
alias syncthinggui="xdg-open http://localhost:8384/"
alias disableHistory="set +o history"
# might be useful in demos...
alias oopsie='fuck'
@@ -82,10 +79,10 @@ alias nocomment='grep -Ev '\''^(#|$)'\'''
alias list='find ./ -maxdepth 1 -printf "%f\n"'
#show directories
alias dirs='ls -FlA | grep :*/'
alias dirs='ls -FlA | grep :*/'
#show executables
alias execx='ls -FlA | grep -v \*'
alias execx='ls -FlA | grep -v \*'
#ls -al
alias la='ls -al'
@@ -93,6 +90,10 @@ alias la='ls -al'
# show external ip
alias cmyip='curl -s http://ipecho.net/plain; echo'
# File merging
alias pngtopdf="convert *.png"
alias jpgtopdf="convert *.jpg"
## default command fixes :P
alias mkdir='mkdir -p'
alias wget='wget -c'
@@ -106,6 +107,14 @@ alias handbrake='ghb'
alias cal='cal -mw --color'
alias chrome='google-chrome-stable'
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
alias update-grub='grub-mkconfig -o /boot/grub/grub.cfg'
@@ -114,91 +123,84 @@ alias update-grub='grub-mkconfig -o /boot/grub/grub.cfg'
# function to cd up a couple of times
# USAGE: up 3 (goes up 3 directories)
up(){
DEEP=$1;
[ -z "${DEEP}" ] && { DEEP=1; };
for i in $(seq 1 ${DEEP}); do
cd ../;
done;
up() {
DEEP=$1
[ -z "${DEEP}" ] && { DEEP=1; }
for i in $(seq 1 ${DEEP}); do
cd ../
done
}
# function to extract ... well anything really
extract () {
if [ -f $1 ] ; then
case $1 in
*.tar.bz2) tar xvjf $1 ;;
*.tar.gz) tar xvzf $1 ;;
*.bz2) bunzip2 $1 ;;
*.rar) unrar x $1 ;;
*.gz) gunzip $1 ;;
*.tar) tar xvf $1 ;;
*.tbz2) tar xvjf $1 ;;
*.tgz) tar xvzf $1 ;;
*.zip) unzip $1 ;;
*.Z) uncompress $1 ;;
*.7z) 7z x $1 ;;
*) echo "don't know how to extract '$1'..." ;;
esac
else
echo "'$1' is not a valid file!"
fi
}
extract() {
if [ -f "$1" ]; then
case "$1" in
*.tar.bz2) tar xvjf "$1" ;;
*.tar.gz) tar xvzf "$1" ;;
*.bz2) bunzip2 "$1" ;;
*.rar) unrar x "$1" ;;
*.gz) gunzip "$1" ;;
*.tar) tar xvf "$1" ;;
*.tbz2) tar xvjf "$1" ;;
*.tgz) tar xvzf "$1" ;;
*.zip) unzip "$1" ;;
*.Z) uncompress "$1" ;;
*.7z) 7z x "$1" ;;
*) echo "don't know how to extract '$1'..." ;;
esac
else
echo "'$1' is not a valid file!"
fi
}
# function to return uptime in a human readable format
myuptime () {
uptime | awk '{ print "Uptime:", $3, $4, $5 }' | sed 's/,//g'
return;
myuptime() {
uptime | awk '{ print "Uptime:", $3, $4, $5 }' | sed 's/,//g'
return
}
# function to check whether a specific host is up
isup(){
if ! [ -z "$1" ]; then
ping -c 3 $1 > /dev/null 2>&1
if [ $? -ne 0 ]; then
echo "$1 seems to be offline";
else
echo "$1 seems to be online";
fi
fi
isup() {
if ! [ -z "$1" ]; then
ping -c 3 $1 >/dev/null 2>&1
if [ $? -ne 0 ]; then
echo "$1 seems to be offline"
else
echo "$1 seems to be online"
fi
fi
}
# function to print a line across the screen
printLine(){
printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' -
printLine() {
printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' -
}
# function to kill a port
killport () {
if [ -z "$1" ] ; then
echo "please specify a port to kill"
else
fuser -k $1/tcp
fi
killport() {
if [ -z "$1" ]; then
echo "please specify a port to kill"
else
fuser -k "$1/tcp"
fi
}
# 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
# merges all pdfs in current directory into a new pdf
mergepdf() {
if [ -z "$1" ]; then
echo "please provide an output name for your pdf file: mergepdf out.pdf"
else
pdfunite ./*.pdf "$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
# sign a file using the signing key
signfile() {
if [ -z "$1" ]; then
echo "please provide a file to sign: signfile file-to-sign.pdf"
else
ssh-keygen -Y sign -f ~/.ssh/signing-key.pub -n file "$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
}
alias "set-timezone-romania"='timedatectl set-timezone Europe/Bucharest'
alias "set-timezone-netherlands"=' timedatectl set-timezone Europe/Amsterdam'

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,8 @@
# if powerline-shell is available use it.
function _update_ps1() {
if hash powerline-rs 2>/dev/null; then
PS1="$(powerline-rs --shell bash $?)"
fi
}
#!/bin/bash
# sourceIfExists
function sourceIfExists () {
[[ -f "$1" ]] && source "$1"
function sourceIfExists() {
[[ -f "$1" ]] && source "$1"
}
# If not running interactively, don't do anything
@@ -16,27 +11,29 @@ function sourceIfExists () {
source ~/.alias
source ~/.custom
source ~/.variables
sourceIfExists ~/.env
sourceIfExists /usr/share/nvm/init-nvm.sh
sourceIfExists ~/lib/azure-cli/az.completion
eval "$(thefuck --alias)"
eval "$(oh-my-posh init bash --config ~/.config/poshthemes/mastermindzh.yaml)"
# evals
eval $(keychain --eval --quiet ~/.ssh/id_rsa)
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
export DOTNET_ROOT=/usr/share/dotnet
export MSBuildSDKsPath=$DOTNET_ROOT/sdk/$(${DOTNET_ROOT}/dotnet --version)/Sdks
export PATH="${PATH}:${DOTNET_ROOT}:~/.dotnet/tools"
# load keychain with private key
if test -f "$HOME/.ssh/id_ed25519"; then
eval "$(keychain --eval --quiet ~/.ssh/id_ed25519)"
else
# fallback to older rsa
eval "$(keychain --eval --quiet ~/.ssh/id_rsa)"
fi
PS1='[\u@\h \W]\$ '
eval "$(pyenv init -)"
if [[ $TERM != linux && ! $PROMPT_COMMAND =~ _update_ps1 ]]; then
PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND"
if hash dotnet 2>/dev/null; then
export DOTNET_ROOT=/usr/share/dotnet
MSBuildSDKsPathVersion=$(${DOTNET_ROOT}/dotnet --version)
export MSBuildSDKsPath=$DOTNET_ROOT/sdk/$MSBuildSDKsPathVersion/Sdks
export PATH="${PATH}:${DOTNET_ROOT}:~/.dotnet/tools"
fi
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
MY_SERVER_LOCATION="//10.10.1.11"
MOUNT_PREFIX="/mnt"
USERNAME="mastermindzh"
# check whether array contains a key
containsElement() {
@@ -71,6 +70,26 @@ declare -A MOUNTS9=(
[share]="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 -n MOUNTS
@@ -121,10 +140,10 @@ for MOUNTS in ${!MOUNTS@}; do
SERVER_LOCATION="$MY_SERVER_LOCATION/${MOUNTS[share]}"
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
echo "Succesfully mounted $MOUNT_LOCATION"
echo "Successfully mounted $MOUNT_LOCATION"
else
echo "Failed mounting $SERVER_LOCATION on $MOUNT_LOCATION"
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

5
computers/archfw/.bashrc Normal file
View File

@@ -0,0 +1,5 @@
#!/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'
alias deps='docker-compose -f /home/mastermindzh/code/tfx-workspace/docker-compose.yml up -d'

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"
ln -sf "$MYPATH/xprofile.sh" ~/.xprofile
ln -sf "$MYPATH/.Xresources" ~/.Xresources

View File

@@ -1,2 +1,4 @@
#!/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

View File

@@ -1,4 +0,0 @@
Xft.dpi: 108
Xft.antialias: 1
rofi.dpi: 150
Xcursor.size: 12

View File

@@ -1,4 +0,0 @@
Xft.dpi: 200
Xft.antialias: 1
rofi.dpi: 250
Xcursor.size: 18

View File

@@ -1,10 +0,0 @@
alias vm='su -c "export QT_AUTO_SCREEN_SCALE_FACTOR= QT_SCREEN_SCALE_FACTORS= QT_SCALE_FACTOR= QT_DEVICE_PIXEL_RATIO= && VBoxManage setextradata Windows10 GUI/HiDPI/UnscaledOutput 1 && sudo VBoxManage startvm Windows10" && exit'
alias dock='bash ~/.docked.sh && i3-msg restart'
alias undock='bash ~/.undocked.sh && i3-msg restart'
alias mountdata='sudo cryptsetup open --type luks /dev/nvme0n1p7 data && sudo mount -t ext4 /dev/mapper/data /home/mastermindzh/data'
alias unmountdata='sudo umount /home/mastermindzh/data && sudo cryptsetup close data && sudo sysctl --write vm.drop_caches=3'
# useful kubernetes (AZURE) commands
alias kubernetes-qa='azkubeswitch Inforit.Cloud InforitCluster'
alias kubernetes-prod='azkubeswitch Inforit.Cloud Production'
alias kubernetes-dev='azkubeswitch Inforit.Cloud Development'

View File

@@ -1,3 +0,0 @@
#!/bin/sh
xrandr --output eDP-1 --mode 2560x1440 --pos 0x0 --rotate normal --output DP-1-2 --off --output HDMI-2 --off --output HDMI-1 --off --output DP-1 --off --output DP-1-3 --off --output DP-2 --off --output DP-1-1 --primary --mode 2560x1440 --pos 2560x0 --rotate normal
xrdb -merge ~/.Xresources.docked

View File

@@ -1 +0,0 @@
QT_AUTO_SCREEN_SCALE_FACTOR=1

View File

@@ -1,16 +0,0 @@
#/bin/bash
MYPATH=$PWD/computers/work-xps
# set up hiDPI
sudo ln -sf "$MYPATH/environment" /etc/environment
# set up docking
ln -sf "$MYPATH/Xresources.docked" ~/.Xresources.docked
ln -sf "$MYPATH/Xresources.undocked" ~/.Xresources.undocked
ln -sf "$MYPATH/docked.sh" ~/.docked.sh
ln -sf "$MYPATH/undocked.sh" ~/.undocked.sh
ln -sf "$MYPATH/xprofile.sh" ~/.xprofile
# custom (laptop specific) bashrc thingies :)
ln -sf "$MYPATH/custom-bashrc.sh" ~/.custom

View File

@@ -1,3 +0,0 @@
#!/bin/sh
xrandr --output eDP-1 --primary --mode 3840x2160 --pos 0x0 --rotate normal --output DP-1-2 --off --output HDMI-2 --off --output HDMI-1 --off --output DP-1 --off --output DP-1-3 --off --output DP-2 --off --output DP-1-1 --off
xrdb -merge /home/mastermindzh/.Xresources.undocked

View File

@@ -1,18 +0,0 @@
if [ `xrandr | grep -c ' connected '` -eq 2 ]; then
source ~/.docked.sh
else
source ~/.undocked.sh
fi
# startup stuffs
displays=($(xrandr | awk '/ connected /{print $1}'))
selected_display="${displays[0]}"
xrandr --output "$selected_display" --brightness 0.75
# power savings
echo 'min_power' > '/sys/class/scsi_host/host0/link_power_management_policy';
echo 'min_power' > '/sys/class/scsi_host/host1/link_power_management_policy';
echo '1500' > '/proc/sys/vm/dirty_writeback_centisecs';
echo 'auto' > '/sys/bus/usb/devices/1-9/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:01:00.0/power/control';

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]
email = info@rickvanlieshout.com
name = Mastermindzh
name = Rick van Lieshout
[alias]
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
@@ -16,3 +16,8 @@
rebase = false
[init]
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"

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

@@ -0,0 +1,19 @@
[Settings]
gtk-application-prefer-dark-theme=1
gtk-theme-name=Adwaita-dark
; 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-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/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/mailspring=Mailspring.desktop
x-scheme-handler/etcher=balena-etcher-electron.desktop
x-scheme-handler/tidal=tidal-hifi.desktop
# files
#--------------
inode/director=Nautilus.desktop
inode/director=thunar.desktop
x-scheme-handler/ftb=ftb-app.desktop
[Added Associations]
# browser-stuff
@@ -67,10 +69,9 @@ application/javascript=visual-studio-code-insiders.desktop;
# 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/x-remmina=org.gnome.gedit.desktop;org.kde.krdc.desktop;remmina-file.desktop;org.remmina.Remmina.desktop;
# 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/nanorc.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/email.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/texinfo.nanorc
include /usr/share/nano/cmake.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/tex.nanorc
include /usr/share/nano/xml.nanorc
include /usr/share/nano/groff.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
include /usr/share/nano/yaml.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

@@ -15,7 +15,7 @@
#LogFile = /var/log/pacman.log
#GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc
HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -C - -f %u > %o
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
@@ -39,7 +39,7 @@ VerbosePkgLists
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel = Required DatabaseOptional
SigLevel = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required
@@ -82,9 +82,6 @@ Include = /etc/pacman.d/mirrorlist
#[community-testing]
#Include = /etc/pacman.d/mirrorlist
[community]
Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.

View File

@@ -3,4 +3,7 @@
#################################
# 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: " "

View File

@@ -1,32 +0,0 @@
set preview_images true
set confirm_on_delete true
set column_ratios 1,3,4
set viewmode miller
set unicode_ellipsis true
set preview_files true
set preview_directories true
set collapse_preview true
# git stuff
set vcs_aware false
set vcs_backend_git enabled
# Which files should be hidden? (regular expression)
set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^__(py)?cache__$
# Show hidden files? You can toggle this by typing 'zh'
set show_hidden false
# Draw borders around columns? (separators, outline, both, or none)
# Separators are vertical lines between columns.
# Outline draws a box around all the columns.
# Both combines the two.
set draw_borders both
# KEY config
map <delete> delete
map <esc> quit
map <C-c> copy
map <C-x> cut
map <C-v> paste

View File

@@ -1,84 +0,0 @@
# vim: ft=cfg
#
# This is the configuration file of "rifle", ranger's file executor/opener.
# Each line consists of conditions and a command. For each line the conditions
# are checked and if they are met, the respective command is run.
#
# Syntax:
# <condition1> , <condition2> , ... = command
#
# The command can contain these environment variables:
# $1-$9 | The n-th selected file
# $@ | All selected files
#
# If you use the special command "ask", rifle will ask you what program to run.
#
# Prefixing a condition with "!" will negate its result.
# These conditions are currently supported:
# match <regexp> | The regexp matches $1
# ext <regexp> | The regexp matches the extension of $1
# mime <regexp> | The regexp matches the mime type of $1
# name <regexp> | The regexp matches the basename of $1
# path <regexp> | The regexp matches the absolute path of $1
# has <program> | The program is installed (i.e. located in $PATH)
# env <variable> | The environment variable "variable" is non-empty
# file | $1 is a file
# directory | $1 is a directory
# number <n> | change the number of this command to n
# terminal | stdin, stderr and stdout are connected to a terminal
# X | $DISPLAY is not empty (i.e. Xorg runs)
#
# There are also pseudo-conditions which have a "side effect":
# flag <flags> | Change how the program is run. See below.
# label <label> | Assign a label or name to the command so it can
# | be started with :open_with <label> in ranger
# | or `rifle -p <label>` in the standalone executable.
# else | Always true.
#
# Flags are single characters which slightly transform the command:
# f | Fork the program, make it run in the background.
# | New command = setsid $command >& /dev/null &
# r | Execute the command with root permissions
# | New command = sudo $command
# t | Run the program in a new terminal. If $TERMCMD is not defined,
# | rifle will attempt to extract it from $TERM.
# | New command = $TERMCMD -e $command
# Note: The "New command" serves only as an illustration, the exact
# implementation may differ.
# Note: When using rifle in ranger, there is an additional flag "c" for
# only running the current file even if you have marked multiple files.
#-------------------------------------------
# Websites
#-------------------------------------------
ext x?html?, has chromium-browser, X, flag f = chromium-browser -- "$@"
ext x?html?, has chromium, X, flag f = chromium -- "$@"
#--------------------------------------------
# Video/Audio with a GUI
#-------------------------------------------
mime ^video, has mpv, X, flag f = mpv -- "$@"
mime ^video|audio, has vlc, X, flag f = vlc -- "$@"
#-------------------------------------------
# Documents
#-------------------------------------------
ext pdf, has evince, X, flag f = evince -- "$@"
ext pdf, has mupdf, X, flag f = mupdf "$@"
ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has libreoffice, X, flag f = libreoffice "$@"
#-------------------------------------------
# Image Viewing:
#-------------------------------------------
mime ^image, has eog, X, flag f = eog -- "$@"
mime ^image/svg, has inkscape, X, flag f = inkscape -- "$@"
mime ^image, has gimp, X, flag f = gimp -- "$@"
#-------------------------------------------
# Text files
#-------------------------------------------
ext xml|json|csv|tex|py|pl|rb|js|sh|php|md|ovpn|txt|cfg|conf = nano -- "$@"
# The very last action, so that it's never triggered accidentally, is to execute a program:
mime application/x-executable = "$1"

View File

@@ -1,159 +0,0 @@
#!/usr/bin/env bash
set -o noclobber -o noglob -o nounset -o pipefail
IFS=$'\n'
## If the option `use_preview_script` is set to `true`,
## then this script will be called and its output will be displayed in ranger.
## Meanings of exit codes:
## code | meaning | action of ranger
## -----+------------+-------------------------------------------
## 0 | success | Display stdout as preview
## 1 | no preview | Display no preview at all
## 2 | plain text | Display the plain content of the file
## 3 | fix width | Don't reload when width changes
## 4 | fix height | Don't reload when height changes
## 5 | fix both | Don't ever reload
## 6 | image | Display the image `$IMAGE_CACHE_PATH` points to as an image preview
## 7 | image | Display the file directly as an image
## Script arguments
FILE_PATH="${1}" # Full path of the highlighted file
PV_WIDTH="${2}" # Width of the preview pane (number of fitting characters)
PV_HEIGHT="${3}" # Height of the preview pane (number of fitting characters)
IMAGE_CACHE_PATH="${4}" # Full path that should be used to cache image preview
PV_IMAGE_ENABLED="${5}" # 'True' if image previews are enabled, 'False' otherwise.
FILE_EXTENSION="${FILE_PATH##*.}"
FILE_EXTENSION_LOWER="$(printf "%s" "${FILE_EXTENSION}" | tr '[:upper:]' '[:lower:]')"
## Settings
HIGHLIGHT_SIZE_MAX=262143 # 256KiB
HIGHLIGHT_TABWIDTH=${HIGHLIGHT_TABWIDTH:-8}
HIGHLIGHT_STYLE=${HIGHLIGHT_STYLE:-pablo}
HIGHLIGHT_OPTIONS="--replace-tabs=${HIGHLIGHT_TABWIDTH} --style=${HIGHLIGHT_STYLE} ${HIGHLIGHT_OPTIONS:-}"
PYGMENTIZE_STYLE=${PYGMENTIZE_STYLE:-autumn}
handle_extension() {
case "${FILE_EXTENSION_LOWER}" in
# ## Archive
# a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|\
# rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip)
# atool --list -- "${FILE_PATH}" && exit 5
# bsdtar --list --file "${FILE_PATH}" && exit 5
# exit 1;;
# rar)
# ## Avoid password prompt by providing empty password
# unrar lt -p- -- "${FILE_PATH}" && exit 5
# exit 1;;
# 7z)
# ## Avoid password prompt by providing empty password
# 7z l -p -- "${FILE_PATH}" && exit 5
# exit 1;;
## PDF
pdf)
## Preview as text conversion
pdftotext -l 10 -nopgbrk -q -- "${FILE_PATH}" - | fmt -w "${PV_WIDTH}" && exit 5
mutool draw -F txt -i -- "${FILE_PATH}" 1-10 | fmt -w "${PV_WIDTH}" && exit 5
exiftool "${FILE_PATH}" && exit 5
exit 1;;
## OpenDocument
odt|ods|odp|sxw)
## Preview as text conversion
odt2txt "${FILE_PATH}" && exit 5
exit 1;;
## HTML
htm|html|xhtml)
## Preview as text conversion
w3m -dump "${FILE_PATH}" && exit 5
;; # Continue with next handler on failure
## JSON
json)
jq --color-output . "${FILE_PATH}" && exit 5
;;
esac
}
handle_image() {
## Size of the preview if there are multiple options or it has to be
## rendered from vector graphics. If the conversion program allows
## specifying only one dimension while keeping the aspect ratio, the width
## will be used.
local DEFAULT_SIZE="1920x1080"
local mimetype="${1}"
case "${mimetype}" in
## Image
image/*)
local orientation
orientation="$( identify -format '%[EXIF:Orientation]\n' -- "${FILE_PATH}" )"
## If orientation data is present and the image actually
## needs rotating ("1" means no rotation)...
if [[ -n "$orientation" && "$orientation" != 1 ]]; then
## ...auto-rotate the image according to the EXIF data.
convert -- "${FILE_PATH}" -auto-orient "${IMAGE_CACHE_PATH}" && exit 6
fi
## `w3mimgdisplay` will be called for all images (unless overriden
## as above), but might fail for unsupported types.
exit 7;;
esac
}
handle_mime() {
local mimetype="${1}"
case "${mimetype}" in
## Text
text/* | */xml)
## Syntax highlight
if [[ "$( stat --printf='%s' -- "${FILE_PATH}" )" -gt "${HIGHLIGHT_SIZE_MAX}" ]]; then
exit 2
fi
if [[ "$( tput colors )" -ge 256 ]]; then
local pygmentize_format='terminal256'
local highlight_format='xterm256'
else
local pygmentize_format='terminal'
local highlight_format='ansi'
fi
env HIGHLIGHT_OPTIONS="${HIGHLIGHT_OPTIONS}" highlight \
--out-format="${highlight_format}" \
--force -- "${FILE_PATH}" && exit 5
pygmentize -f "${pygmentize_format}" -O "style=${PYGMENTIZE_STYLE}"\
-- "${FILE_PATH}" && exit 5
exit 2;;
## Image
image/*)
## Preview as text conversion
# img2txt --gamma=0.6 --width="${PV_WIDTH}" -- "${FILE_PATH}" && exit 4
exiftool "${FILE_PATH}" && exit 5
exit 1;;
## Video and audio
video/* | audio/*)
mediainfo "${FILE_PATH}" && exit 5
exiftool "${FILE_PATH}" && exit 5
exit 1;;
esac
}
handle_fallback() {
echo '----- File Type Classification -----' && file --dereference --brief -- "${FILE_PATH}" && exit 5
exit 1
}
MIMETYPE="$( file --dereference --brief --mime-type -- "${FILE_PATH}" )"
if [[ "${PV_IMAGE_ENABLED}" == 'True' ]]; then
handle_image "${MIMETYPE}"
fi
handle_extension
handle_mime "${MIMETYPE}"
handle_fallback
exit 1

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;
}

128
config/sddm/default.conf Normal file
View File

@@ -0,0 +1,128 @@
[Autologin]
# Whether sddm should automatically log back into sessions when they exit
Relogin=false
# Name of session file for autologin session (if empty try last logged in)
#Session=
# Username for autologin session
#User=mastermindzh
[General]
# Halt command
HaltCommand=/usr/bin/systemctl poweroff
# Input method module
InputMethod=
# Comma-separated list of Linux namespaces for user session to enter
Namespaces=
# Initial NumLock state. Can be on, off or none.
# If property is set to none, numlock won't be changed
# NOTE: Currently ignored if autologin is enabled.
Numlock=none
# Reboot command
RebootCommand=/usr/bin/systemctl reboot
[Theme]
# Current theme name
Current=chili
# Cursor theme used in the greeter
CursorTheme=
# Number of users to use as threshold
# above which avatars are disabled
# unless explicitly enabled with EnableAvatars
DisableAvatarsThreshold=7
# Enable display of custom user avatars
EnableAvatars=true
# Global directory for user avatars
# The files should be named <username>.face.icon
FacesDir=/usr/share/sddm/faces
# Font used in the greeter
Font=
# Theme directory path
ThemeDir=/usr/share/sddm/themes
[Users]
# Default $PATH for logged in users
DefaultPath=/usr/local/sbin:/usr/local/bin:/usr/bin
# Comma-separated list of shells.
# Users with these shells as their default won't be listed
HideShells=
# Comma-separated list of users that should not be listed
HideUsers=root
# Maximum user id for displayed users
MaximumUid=60513
# Minimum user id for displayed users
MinimumUid=1000
# Remember the session of the last successfully logged in user
RememberLastSession=true
# Remember the last successfully logged in user
RememberLastUser=true
# When logging in as the same user twice, restore the original session, rather than create a new one
ReuseSession=true
[Wayland]
# Enable Qt's automatic high-DPI scaling
EnableHiDPI=false
# Path to a script to execute when starting the desktop session
SessionCommand=/usr/share/sddm/scripts/wayland-session
# Directory containing available Wayland sessions
SessionDir=/usr/share/wayland-sessions
# Path to the user session log file
SessionLogFile=.local/share/sddm/wayland-session.log
[X11]
# Path to a script to execute when starting the display server
DisplayCommand=/usr/share/sddm/scripts/Xsetup
# Path to a script to execute when stopping the display server
DisplayStopCommand=/usr/share/sddm/scripts/Xstop
# Enable Qt's automatic high-DPI scaling
EnableHiDPI=false
# The lowest virtual terminal number that will be used.
MinimumVT=1
# Arguments passed to the X server invocation
ServerArguments=-nolisten tcp
# Path to X server binary
ServerPath=/usr/bin/X
# Path to a script to execute when starting the desktop session
SessionCommand=/usr/share/sddm/scripts/Xsession
# Directory containing available X sessions
SessionDir=/usr/share/xsessions
# Path to the user session log file
SessionLogFile=.local/share/sddm/xorg-session.log
# Path to the Xauthority file
UserAuthFile=.Xauthority
# Path to xauth binary
XauthPath=/usr/bin/xauth
# Path to Xephyr binary
XephyrPath=/usr/bin/Xephyr

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="true"/>
<property name="last-separator-position" type="int" value="439"/>
<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>

42
dependencies/aur.txt vendored
View File

@@ -1,19 +1,39 @@
visual-studio-code-insiders
visual-studio-code-bin
i3blocks-contrib
enpass-bin
insync
ttf-font-awesome-4
awesome-terminal-fonts-git
otf-droid-sans-mono-powerline-git
downgrade
powerline-rs
oh-my-posh
dive
xorg-xev
gnome-text-editor
chili-sddm-theme
awf-gtk4
seafile
networkmanager-l2tp
snapd
azure-cli
notify-osd-customizable
notifyconf
xorg-xev
nvm
hadolint-bin
dotnet-host-bin
sysmontask
keychain
nomachine
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,53 +1,65 @@
#
# Core system
#
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-xinit
mesa
i3-gaps
rsync
i3lock
feh
scrot
arandr
xfce4-terminal
ttf-font-awesome
sushi
libconfig
compton
lxappearance
arc-gtk-theme
rofi
i3blocks
wmctrl
zenity
xorg-xrandr
networkmanager
eog
python
python-pip
gdm
neofetch
git
scrot
acpi
imagemagick
docker
docker-compose
htop
powertop
network-manager-applet
pavucontrol
alsa-utils
ntp
xclip
openssh
xsettingsd
#
# Programming
#
nodejs
npm
python
python-pip
pyenv
dotnet-host
dotnet-runtime
dotnet-sdk
aspnet-runtime
#
# Codecs
#
a52dec
faac
faad2
flac
jasper
lame
libdca
libdv
libmad
@@ -56,27 +68,88 @@ libtheora
libvorbis
libxv
wavpack
jasper
lame
x264
xvidcore
gvfs-smb
gnome-screenshot
#
# Applications
#
alsa-utils
arandr
autorandr
bash-completion
flameshot
otf-font-awesome
openvpn
networkmanager-openvpn
ranger
w3m
system-config-printer
nautilus
nautilus-share
wget
pyenv
jq
firefox
dotnet-host
dotnet-runtime
dotnet-sdk
aspnet-runtime
bat
bitwarden
bluez
bluez-libs
bluez-utils
clamav
clamtk
ctop
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

220
i3/config
View File

@@ -13,30 +13,19 @@ floating_modifier $mod
# Constants #
############################################
set $urgentTextBackgroundColour #a6a6a6
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 $workspace1 "1: "
set $workspace2 "2: "
set $workspace3 "3: "
set $workspace4 "4: "
set $workspace5 "5: "
set $workspace6 "6: "
set $workspace7 "7: "
set $workspace4 "4: "
set $workspace5 "5: "
set $workspace6 "6: "
set $workspace7 "7: "
set $workspace8 "8: "
set $workspace9 "9: "
set $workspace10 "10: "
set $workspace11 " VM/Remote"
set $workspace12 " Enpass"
set $workspace11 "11:  "
set $workspace12 "12: "
set $workspace13 "13: "
# scripts
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+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
bindsym $mod+h split h
@@ -87,49 +80,69 @@ bindsym $mod+Shift+c reload
bindsym $mod+Shift+r restart
# 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'"
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'"
set $mode_power "Exit (L)ogout, (R)eboot, (S)hutdown"
# focus on the parent window
bindsym $mod+shift+alt+p focus parent
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
bindsym Left resize shrink width 10 px or 10 ppt
bindsym Down resize grow height 10 px or 10 ppt
bindsym Up resize shrink height 10 px or 10 ppt
bindsym Right resize grow width 10 px or 10 ppt
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
bindsym $mod+shift+alt+p focus parent
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
bindsym Left resize shrink width 10 px or 10 ppt
bindsym Down resize grow height 10 px or 10 ppt
bindsym Up resize shrink height 10 px or 10 ppt
bindsym Right resize grow width 10 px or 10 ppt
# back to normal: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+r mode "resize"
# 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
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 #
############################################
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 $mod+Print exec flameshot gui # Show screenshot window
bindsym $mod+shift+b exec /bin/bash ~/.config/i3/scripts/brightness.sh
bindsym control+shift+Escape exec sysmontask
bindsym $mod+Print exec --no-startup-id sh -c 'QT_QPA_PLATFORM=xcb QT_AUTO_SCREEN_SCALE_FACTOR=0 QT_ENABLE_HIGHDPI_SCALING=0 QT_SCALE_FACTOR=1 flameshot gui' # Show screenshot window
bindsym $mod+shift+Print exec flameshot launcher # Show settings window (delay) then show screenshot window
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
bindsym $mod+d exec "rofi -show run"
bindsym $mod+Tab exec "rofi -show"
bindsym $mod+d exec "rofi -show drun"
bindsym $mod+Tab exec "rofi -show window"
bindsym $mod+s exec "rofi -show ssh"
bindsym $mod+c exec "rofi -show calc"
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}'"
############################################
@@ -169,6 +182,7 @@ bindsym $mod+9 workspace $workspace9
bindsym $mod+0 workspace $workspace10
bindsym $mod+w workspace $workspace11
bindsym $mod+p workspace $workspace12
bindsym $mod+g workspace $workspace13
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace $workspace1
@@ -183,41 +197,29 @@ bindsym $mod+Shift+9 move container to workspace $workspace9
bindsym $mod+Shift+0 move container to workspace $workspace10
bindsym $mod+Shift+w move container to workspace $workspace11
bindsym $mod+Shift+p move container to workspace $workspace12
bindsym $mod+Shift+g move container to workspace $workspace13
############################################
# Appearance settings #
############################################
# Set the default font
font pango:Liberation sans 13
# 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
font pango:Ubuntu regular 12
#new_window 1pixel
hide_edge_borders both
# Window Colours
# border background text indicator
client.focused $primaryBackgroundColour $primaryBackgroundColour $focusedTextColour $indicatorColour
client.focused_inactive $secondaryBackgroundColour $secondaryBackgroundColour $textColour $indicatorColour
client.unfocused $secondaryBackgroundColour $secondaryBackgroundColour $textColour $indicatorColour
client.urgent $secondaryBackgroundColour $urgentTextBackgroundColour $urgentTextColour $indicatorColour
# class border bground text indicator child_border
# dark
# client.focused #1e1e1e #1e1e1e #f6f6f7 #fcc09e
# client.focused_inactive #252526 #252526 #848484 #fcc09e
# 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
for_window [class="Pavucontrol"] floating enable
@@ -227,26 +229,29 @@ for_window [class="Eog"] floating enable
for_window [title="Tidal-hifi - settings"] floating enable
for_window [class="Sysmontask"] floating enable
for_window [class="Sysmontask"] resize set 930 665
for_window [instance="Godot_Engine"] floating enable
for_window [class="Alert"] floating enable
for_window [class="org.gnome.FileRoller"] floating enable
############################################
# Workspace specific tools #
# Use xprop to determine class #
############################################
assign [class="Franz"] $workspace9
assign [class="Enpass-Desktop"] $workspace12
assign [class="Bitwarden"] $workspace12 # moves all windows... including the browser popup
assign [class="VirtualBox Machine"] $workspace11
# database stuff
assign [class="MongoDB Compass"] $workspace8
assign [class="robo3t"] $workspace8
assign [class="Brave-browser"] $workspace9
assign [class="obsidian"] $workspace7
assign [class="Mysql-workbench-bin"] $workspace8
assign [class="sqlops"] $workspace8
assign [class="azuredatastudio"] $workspace8
assign [class="beekeeper"] $workspace8
############################################
# i3-gaps #
############################################
# Disable window titlebars entirely
for_window [class="^.*"] border pixel 2
for_window [class="^.*"] border pixel 0
# Set inner/outer gaps
gaps inner 10
@@ -255,62 +260,69 @@ gaps inner 10
bindsym $mod+Shift+plus gaps inner all plus 5
bindsym $mod+Shift+minus gaps inner all minus 5
bindsym $mod+Shift+Home gaps inner all set 10
bindsym $mod+Shift+a border normal
# Smart borders (draw borders around container only if it is not the only container on this workspace)
# Smart borders (draw borders around container only if it is not the only container on this workspace)
smart_borders on
# Smart gaps (gaps used if only more than one container on the workspace)
smart_gaps on
# Press $mod+Shift+g 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 $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).
# 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_outer Outer 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" {
bindsym o mode "$mode_gaps_outer"
bindsym i mode "$mode_gaps_inner"
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym o mode "$mode_gaps_outer"
bindsym i mode "$mode_gaps_inner"
bindsym Return mode "default"
bindsym Escape mode "default"
}
mode "$mode_gaps_inner" {
bindsym plus gaps inner current plus 5
bindsym minus gaps inner current minus 5
bindsym 0 gaps inner current set 0
bindsym Shift+plus gaps inner all plus 5
bindsym Shift+minus gaps inner all minus 5
bindsym Shift+0 gaps inner all set 0
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym plus gaps inner current plus 5
bindsym minus gaps inner current minus 5
bindsym 0 gaps inner current set 0
bindsym Shift+plus gaps inner all plus 5
bindsym Shift+minus gaps inner all minus 5
bindsym Shift+0 gaps inner all set 0
bindsym Return mode "default"
bindsym Escape mode "default"
}
mode "$mode_gaps_outer" {
bindsym plus gaps outer current plus 5
bindsym minus gaps outer current minus 5
bindsym 0 gaps outer current set 0
bindsym Shift+plus gaps outer all plus 5
bindsym Shift+minus gaps outer all minus 5
bindsym Shift+0 gaps outer all set 0
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym plus gaps outer current plus 5
bindsym minus gaps outer current minus 5
bindsym 0 gaps outer current set 0
bindsym Shift+plus gaps outer all plus 5
bindsym Shift+minus gaps outer all minus 5
bindsym Shift+0 gaps outer all set 0
bindsym Return mode "default"
bindsym Escape mode "default"
}
############################################
# 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 $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 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 obsidian
exec /usr/bin/compton
exec /bin/bash ~/.config/i3/scripts/startup.sh
exec --no-startup-id greenclip daemon
bindsym $mod+Shift+a border normal
# don't blank the screen please :)
exec --no-startup-id xset s off && xset -dpms && xset s noblank

View File

@@ -51,45 +51,15 @@ label=
interval=1
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]
label=
interval=10
separator=true
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]
label=
label=
command=pacman -Qu | wc -l
interval=60
separator=true
@@ -108,26 +78,12 @@ separator=true
# ping
[ping]
label=
label=
command=ping -c 2 8.8.8.8 | tail -1 | awk '{print $4}' | cut -d '/' -f 2 | cut -f1 -d"."
interval=60
separator=true
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
# The battery instance defaults to 0.
[battery2]

View File

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

View File

@@ -1,18 +1,16 @@
#! /bin/bash
displays=($(xrandr | awk '/ connected /{print $1}'))
mapfile -t displays < <(xrandr | awk '/ connected /{print $1}')
if (( ${#displays[@]} > 1 ))
then
selected_display="$(zenity --list --title 'Select Display' --radiolist --column '' --column 'Display' $(xrandr | awk '/ connected /{print NR,$1}'))"
if ((${#displays[@]} > 1)); then
selected_display="$(zenity --list --title 'Select Display' --radiolist --column '' --column 'Display' $(xrandr | awk '/ connected /{print NR,$1}'))"
else
selected_display="${displays[0]}"
selected_display="${displays[0]}"
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 |
while read brightness
do
xrandr --output "$selected_display" --brightness $(awk '{print $1/100}' <<<"$brightness"})
done
while read brightness; do
xbacklight -display "$selected_display" -set "$brightness"
done

View File

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

View File

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

View File

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

View File

@@ -29,7 +29,7 @@ case $1 in
"info")
JSON=$(httpGet current)
TITLE=$(echo "$JSON" | jq -r '.title')
ARTISTS=$(echo "$JSON" | jq -r '.artist')
ARTISTS=$(echo "$JSON" | jq -r '.artists')
INFO=$(echo "$TITLE - $ARTISTS")
if [ ${#INFO} -le 3 ]; then
echo "No music info available"
@@ -37,6 +37,12 @@ case $1 in
echo "$INFO"
fi
;;
"getLink")
JSON=$(httpGet current)
URL=$(echo "$JSON" | jq -r '.url')
echo "$URL"
;;
"status")
if httpGet current | grep "paused" >/dev/null; then
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,57 +1,64 @@
#!/bin/bash
# =======================================
# Script setup
# =======================================
set -e
set -o pipefail
# =======================================
# Helper functions
# =======================================
# Ask a question and return true or false based on the users input
ask() {
# from https://djm.me/ask
local prompt default reply
# from https://djm.me/ask
local prompt default reply
while true; do
while true; do
if [ "${2:-}" = "Y" ]; then
prompt="Y/n"
default=Y
elif [ "${2:-}" = "N" ]; then
prompt="y/N"
default=N
else
prompt="y/n"
default=
fi
echo -n "$1 [$prompt] "
read -r reply </dev/tty
if [ "${2:-}" = "Y" ]; then
prompt="Y/n"
default=Y
elif [ "${2:-}" = "N" ]; then
prompt="y/N"
default=N
else
prompt="y/n"
default=
fi
echo -n "$1 [$prompt] "
read -r reply </dev/tty
if [ -z "$reply" ]; then
reply=$default
fi
if [ -z "$reply" ]; then
reply=$default
fi
case "$reply" in
[Yy]*) return 0 ;;
[Nn]*) return 1 ;;
esac
case "$reply" in
[Yy]*) return 0 ;;
[Nn]*) return 1 ;;
esac
done
done
}
# delete target, create dirs if they don't exist yet and finally symlink the dir
function linkDir {
rm -rf "$2";
mkdir -p "${2%/*}"
ln -sf "$1" "$2"
rm -rf "$2"
mkdir -p "${2%/*}"
ln -sf "$1" "$2"
}
# replace line endings with a space (for use in package managers)
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
function copyToDir {
echo "$2" | sed 's%/[^/]*$%/%' | xargs mkdir -p
cp "$1" "$2"
echo "$2" | sed 's%/[^/]*$%/%' | xargs mkdir -p
cp "$1" "$2"
}
# =======================================
@@ -60,77 +67,144 @@ function copyToDir {
# moves all fonts into the fonts directories (overwriting existing files)
function install_fonts {
mkdir -p ~/.fonts
mkdir -p ~/.local/share/fonts
cp -rf ./fonts/* ~/.fonts
cp -rf ./fonts/* ~/.local/share/fonts
mkdir -p ~/.fonts
mkdir -p ~/.local/share/fonts
sudo mkdir -p /usr/local/share/fonts
cp -rf ./fonts/* ~/.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 {
git clone https://aur.archlinux.org/trizen.git
pushd trizen || return
makepkg -si
popd || return
sudo rm -dRf trizen/
mkdir /tmp/trizen-install
git clone https://aur.archlinux.org/trizen.git /tmp/trizen-install
pushd /tmp/trizen-install || return
makepkg -si
popd || return
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
gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
gsettings set org.gnome.desktop.interface gtk-theme 'Adwaita-dark'
}
function install_docker {
sudo systemctl enable docker
sudo usermod -aG docker "$USER"
}
# install other configs
function install_config {
# link directories
linkDir "$PWD"/wallpapers/images ~/Pictures/wallpapers
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/gtk-3.0/settings.ini ~/.config/gtk-3.0/.config
linkDir "$PWD"/config/ranger ~/.config/
install_gtk
# link user files
ln -sf "$PWD"/bash/.bashrc ~/.bashrc
# link directories
linkDir "$PWD"/wallpapers/images ~/Pictures/wallpapers
linkDir "$PWD"/i3 ~/.config/i3
linkDir "$PWD"/config/terminal/xfce4-term ~/.config/xfce4/terminal
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
ln -sf "$PWD"/bash/.aliases ~/
ln -sf "$PWD"/bash/.bashrc ~/.bashrc
ln -sf "$PWD"/bash/.dotnet-install.sh ~/.dotnet-install.sh
ln -sf "$PWD"/bash/.alias.sh ~/.alias
ln -sf "$PWD"/config/nano/.nanorc ~/.nanorc
ln -sf "$PWD"/bash/.powerline-shell.json ~/.powerline-shell.json
ln -sf "$PWD"/config/gtk-3.0/settings.ini ~/.gtkrc-2.0.mine
ln -sf "$PWD"/config/mimeapps.list ~/.config/mimeapps.list
mkdir -p ~/.config/rofi
ln -sf "$PWD"/config/rofi/rofi.rasi ~/.config/rofi/config.rasi
ln -sf "$PWD"/config/rofi/mytheme.rasi ~/.config/rofi/mytheme.rasi
ln -sf "$PWD"/bash/.alias.sh ~/.alias
ln -sf "$PWD"/config/nano/.nanorc ~/.nanorc
ln -sf "$PWD"/config/.Xresources ~/.Xresources
ln -sf "$PWD"/bash/.powerline-shell.json ~/.powerline-shell.json
mkdir -p ~/.config/dunst
ln -sf "$PWD"/config/dunstrc ~/.config/dunst/dunstrc
ln -sf "$PWD"/config/.gitconfig ~/.gitconfig
ln -sf "$PWD"/config/.npmrc ~/.npmrc
ln -sf "$PWD"/config/user-dirs.dirs ~/.config/user-dirs.dirs
mkdir -p ~/.pulse
ln -sf "$PWD"/config/pulse/daemon.conf ~/.pulse/daemon.conf
ln -sf "$PWD"/config/mimeapps.list ~/.config/mimeapps.list
ln -sf "$PWD"/config/greenclip.toml ~/.config/greenclip.toml
ln -sf "$PWD"/config/terminalrc ~/.config/xfce4/terminal/terminalrc
ln -sf "$PWD"/config/.gitconfig ~/.gitconfig
ln -sf "$PWD"/config/.npmrc ~/.npmrc
ln -sf "$PWD"/config/user-dirs.dirs ~/.config/user-dirs.dirs
mkdir -p ~/.pulse
ln -sf "$PWD"/config/pulse/daemon.conf ~/.pulse/daemon.conf
ln -sf "$PWD"/config/picom.conf ~/.config/picom.conf
# link system files / directories
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/ntp.conf /etc/ntp.conf
sudo ln -sf "$PWD"/bash/Completion /etc/bash_completion.d
# link autorandr files
mkdir -p "$HOME/.config/autorandr"
ln -sf "$PWD"/config/autorandr/postswitch ~/.config/autorandr/postswitch
# create empty .custom alias file
echo "" > ~/.custom
echo "" > ~/.variables
# link system files / directories
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/ntp.conf /etc/ntp.conf
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
# system fixes
echo fs.inotify.max_user_watches=524288 | sudo tee /etc/sysctl.d/40-max-user-watches.conf && sudo sysctl --system
mkdir -p ~/Pictures/Screenshots
# create empty .custom alias file
echo "" >~/.custom
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
echo fs.inotify.max_user_watches=524288 | sudo tee /etc/sysctl.d/40-max-user-watches.conf && sudo sysctl --system
mkdir -p ~/Pictures/Screenshots
setDateTimeConfig
setup_groups mastermindzh
}
# Installs the dependencies on Arch Linux
function install_dependencies {
fileToList dependencies/pacman.txt | xargs sudo pacman --noconfirm -S
fileToList dependencies/pacman.txt | xargs sudo pacman --noconfirm -S
install_trizen
fileToList dependencies/aur.txt | xargs trizen --force -S --noconfirm
install_trizen
set +e
fileToList dependencies/aur.txt | xargs trizen -S --noconfirm
set -e
fileToList dependencies/pip.txt | xargs sudo pip install
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"
}
@@ -140,44 +214,43 @@ function install_dependencies {
# Run the intro bit
function intro {
echo "___ ___ _ _ _ _ _ "
echo "| \/ | | | (_) | | | | ( )"
echo "| . . | __ _ ___| |_ ___ _ __ _ __ ___ _ _ __ __| |___| |__ |/ "
echo "| |\/| |/ _\` / __| __/ _ \ '__| '_ \` _ \| | '_ \ / _' |_ / '_ \ "
echo "| | | | (_| \__ \ || __/ | | | | | | | | | | | (_| |/ /| | | | "
echo "\_| |_/\__,_|___/\__\___|_| |_| |_| |_|_|_| |_|\__,_/___|_| |_| "
echo " "
echo " "
echo " __ _ _ "
echo " / _(_) ___ (_) "
echo " ___ ___ _ __ | |_ _ __ _ ( _ ) _ __ _ ___ ___ "
echo " / __/ _ \| '_ \| _| |/ _\` | / _ \/\ | '__| |/ __/ _ \ "
echo "| (_| (_) | | | | | | | (_| | | (_> < | | | | (_| __/ "
echo " \___\___/|_| |_|_| |_|\__, | \___/\/ |_| |_|\___\___| "
echo " __/ | "
echo " |___/ "
echo ""
echo "___ ___ _ _ _ _ _ "
echo "| \/ | | | (_) | | | | ( )"
echo "| . . | __ _ ___| |_ ___ _ __ _ __ ___ _ _ __ __| |___| |__ |/ "
echo "| |\/| |/ _\` / __| __/ _ \ '__| '_ \` _ \| | '_ \ / _' |_ / '_ \ "
echo "| | | | (_| \__ \ || __/ | | | | | | | | | | | (_| |/ /| | | | "
echo "\_| |_/\__,_|___/\__\___|_| |_| |_| |_|_|_| |_|\__,_/___|_| |_| "
echo " "
echo " "
echo " __ _ _ "
echo " / _(_) ___ (_) "
echo " ___ ___ _ __ | |_ _ __ _ ( _ ) _ __ _ ___ ___ "
echo " / __/ _ \| '_ \| _| |/ _\` | / _ \/\ | '__| |/ __/ _ \ "
echo "| (_| (_) | | | | | | | (_| | | (_> < | | | | (_| __/ "
echo " \___\___/|_| |_|_| |_|\__, | \___/\/ |_| |_|\___\___| "
echo " __/ | "
echo " |___/ "
echo ""
}
function computer {
echo " /\ "
echo " / \ "
echo " /_ %%==O=% _____________ "
echo " % - -% | '\\\\\\\\\\"
echo " _____c% > __ | ' ____|_ "
echo " (_|. . % \` % .' | + '||:::::: "
echo " ||. ___)%%%%_.' | '||_____| "
echo " ||.( \ ~ / ,)' \'_______|_____| "
echo " || /| \'/ |\ ___/____|___\___ "
echo " _,,,;!___*_____\_| _ ' <<<:| "
echo " / /| |_________'___o_o| "
echo " /_____/ / "
echo " |:____|/ \"Boy, I LOVE this stuff\". "
echo ""
echo ""
echo " /\ "
echo " / \ "
echo " /_ %%==O=% _____________ "
echo " % - -% | '\\\\\\\\\\"
echo " _____c% > __ | ' ____|_ "
echo " (_|. . % \` % .' | + '||:::::: "
echo " ||. ___)%%%%_.' | '||_____| "
echo " ||.( \ ~ / ,)' \'_______|_____| "
echo " || /| \'/ |\ ___/____|___\___ "
echo " _,,,;!___*_____\_| _ ' <<<:| "
echo " / /| |_________'___o_o| "
echo " /_____/ / "
echo " |:____|/ \"Boy, I LOVE this stuff\". "
echo ""
echo ""
}
# =======================================
# Main loop
# =======================================
@@ -188,24 +261,43 @@ intro
ask "Do you want to continue installing my config and rice?" Y &&
# Ask for dependency installation
if ask "Do you want to install the applications listen in ./dependencies? (might prompt for password)" Y; then
# Ask for dependency installation
if ask "Do you want to install the applications listen in ./dependencies? (might prompt for password)" Y; then
install_dependencies
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
if ask "Do you want to install the config files?" Y; then
install_config
install_config
fi
# Ask for font installation
if ask "Do you want to install the fonts?" Y; then
install_fonts
install_fonts
fi
# ask to enable gdm
if ask "Do you want to enable GDM?" Y; then
sudo systemctl enable gdm.service
# 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
if ask "Do you want to enable sddm?" Y; then
sudo systemctl set-default graphical.target
sudo systemctl enable sddm.service
sudo mkdir -p "/etc/sddm.conf.d/"
curl "http://gravatar.com/avatar/$(echo -n "info@rickvanlieshout.com" | md5sum - | cut -d' ' -f1)?s=1024" | sudo tee /usr/share/sddm/faces/mastermindzh.face.icon >/dev/null
sudo ln -sf "$PWD"/config/sddm/default.conf /etc/sddm.conf.d/
fi
clear
@@ -214,17 +306,17 @@ computer
prompt=$(echo $'\n> ' "Please select a specific computer to install or q to finish the install")
PS3="$prompt: "
select opt in "$PWD/computers"/*; do
if (( REPLY == "q" )) ; then
break
elif (( REPLY > 0 )) ; then
bash "$opt/install.sh"
break
else
echo "Invalid option. Try another one."
fi
done
clear
select opt in "$PWD/computers"/*; do
if ((REPLY == "q")); then
break
echo "Enjoy using my rice! Do not forget to select i3 in GDM :)"
elif ((REPLY > 0)); then
bash "$opt/install.sh"
break
else
echo "Invalid option. Try another one."
fi
done
clear
echo "Enjoy using my rice! Do not forget to select i3 in sddm :)"

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

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