Compare commits

...

19 Commits

Author SHA1 Message Date
4b12ae2c12 [Scripts] Fixes for vpn script 2025-11-24 14:25:13 +01:00
5227e5f05e [Scripts] Fix vpn script 2025-11-23 13:36:06 +01:00
b8098eac8b [Scripts] Improve VPN script 2025-11-18 09:38:24 +01:00
5b610643c7 [Install] Fix bt 2025-11-17 09:17:27 +01:00
4fce8c955c [Hyprland] Fix cursor size 2025-11-12 10:32:15 +01:00
eabb972cb8 [Binds] Fix swapescape 2025-11-11 09:58:48 +01:00
688b94c3ad [Binds] Add binds to dynamically enable and disable caps:swapescape 2025-11-11 09:50:31 +01:00
d4689d66cd [FMT] Improve latexindent config 2025-11-11 08:05:53 +01:00
e28e3e6207 [Install] Add usbutils 2025-11-06 17:47:18 +01:00
b45b3d60d1 [Scripts] Add pdf wordcount script 2025-11-04 15:51:49 +01:00
8d2e3cea85 [Hyprland] Move conflicting bind 2025-11-03 17:13:44 +01:00
8a42f9bfa2 [Install] Add timesyncd enable 2025-11-03 10:15:00 +01:00
09916ae68e [Hyprland] Add more launch commands 2025-11-02 10:49:33 +01:00
5b5fa9ad4e [Astal] Fix launch on new astal version 2025-11-01 10:37:30 +01:00
814b975533 [Linecount] Add cloc and alias for it 2025-10-30 15:31:47 +01:00
d0a450d4e8 [Setup] Make cleaner 2025-10-30 10:42:50 +01:00
786d5c5fe0 [Yazi] Fix themes 2025-10-30 10:42:42 +01:00
5ba2894101 [Hyprland] Improve windowrules 2025-10-30 10:24:08 +01:00
499bf793b2 [Hyprland] Add some nice windorules 2025-10-30 10:24:08 +01:00
17 changed files with 118 additions and 75 deletions

View File

@@ -7,6 +7,7 @@ const BrightnessModule = () => {
const setBrightness = (value: number) => { const setBrightness = (value: number) => {
brightness.screen = value; brightness.screen = value;
} }
return ( return (
<box visible={bind(brightness, 'screenAvailable')}> <box visible={bind(brightness, 'screenAvailable')}>
<image iconName={"brightness-high-symbolic"}></image> <image iconName={"brightness-high-symbolic"}></image>

View File

@@ -26,6 +26,7 @@ alias ff='fastfetch'
alias p='nvimpager -p' alias p='nvimpager -p'
alias latexdocs='zathura ~/projects/latex/docs/docs.pdf &>> /dev/null & disown' alias latexdocs='zathura ~/projects/latex/docs/docs.pdf &>> /dev/null & disown'
alias gccerr='gcc -Wall -Wextra -Wpedantic -Werror -Wmissing-prototypes -std=c99' alias gccerr='gcc -Wall -Wextra -Wpedantic -Werror -Wmissing-prototypes -std=c99'
alias linecount='cloc --vcs git .'
# Add scripts in ~/projects/dotfiles/scripts/ to path # Add scripts in ~/projects/dotfiles/scripts/ to path
fish_add_path -P ~/projects/dotfiles/scripts/ fish_add_path -P ~/projects/dotfiles/scripts/

View File

@@ -9,21 +9,18 @@ exec-once = ~/.config/hypr/xdg-portal-hyprland
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP XAUTHORITY DISPLAY exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP XAUTHORITY DISPLAY
exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
# exec-once = waybar
exec-once = hypridle exec-once = hypridle
exec-once = nm-applet exec-once = nm-applet
exec-once = nextcloud --background exec-once = nextcloud --background
exec-once = sleep 2 && bash -c "ags run -d ~/projects/dotfiles/config/astal/ --gtk4 >> /tmp/runner-log 2>&1" exec-once = sleep 2 && bash -c "ags run -d ~/projects/dotfiles/config/astal/ --gtk 4 >> /tmp/runner-log 2>&1"
# exec-once = sleep 2 && bash -c "ags run -d ~/projects/active/dotfiles/config/astal/ --gtk4" exec-once = bash -c "ags run -d ~/projects/dotfiles/config/ags/notifications/ --gtk 3 >> /tmp/notifier-log 2>&1"
exec-once = bash -c "ags run -d ~/projects/dotfiles/config/ags/notifications/ >> /tmp/notifier-log 2>&1"
# exec-once = bash -c "ags run -d ~/projects/active/dotfiles/config/ags/notifications/"
# ── wlhist ────────────────────────────────────────────────────────── # ── wlhist ──────────────────────────────────────────────────────────
exec-once = wl-paste --type text --watch cliphist store # Stores only text data exec-once = wl-paste --type text --watch cliphist store # Stores only text data
exec-once = wl-paste --type image --watch cliphist store # Stores only image data exec-once = wl-paste --type image --watch cliphist store # Stores only image data
exec = hyprctl setcursor oreo_spark_blue_cursors 24
env = QT_QPA_PLATFORM,wayland env = QT_QPA_PLATFORM,wayland
env = QT_QPA_PLATFORM_THEME,qt6ct env = QT_QPA_PLATFORM_THEME,qt6ct
env = OLLAMA_HOST,0.0.0.0 env = OLLAMA_HOST,0.0.0.0

View File

@@ -19,6 +19,11 @@ bind = $mainMod, D, submap, device
submap = device submap = device
# ── Swapescape ──────────────────────────────────────────────────────
bind = , S, exec, fish -c "toggle-swapescape"
bind = , S, submap, reset
# ── FPV goggles binds ─────────────────────────────────────────────── # ── FPV goggles binds ───────────────────────────────────────────────
bind = CTRL, D, exec, hyprctl keyword monitor HDMI-A-1, 1280x720@60, 1920x0, 1, mirror, DP-1 && notify-send 'Set FPV goggles to mirror main screen' --app-name="Hyprctl" bind = CTRL, D, exec, hyprctl keyword monitor HDMI-A-1, 1280x720@60, 1920x0, 1, mirror, DP-1 && notify-send 'Set FPV goggles to mirror main screen' --app-name="Hyprctl"
bind = CTRL, E, exec, hyprctl keyword monitor HDMI-A-1, 1280x720@60, 3840x0, 1 && notify-send 'Set to expand FPV goggles' --app-name="Hyprctl" bind = CTRL, E, exec, hyprctl keyword monitor HDMI-A-1, 1280x720@60, 3840x0, 1 && notify-send 'Set to expand FPV goggles' --app-name="Hyprctl"

View File

@@ -40,6 +40,12 @@ bind = , E, submap, reset
bind = , D, exec, vesktop bind = , D, exec, vesktop
bind = , D, submap, reset bind = , D, submap, reset
bind = SHIFT, B, exec, brave
bind = SHIFT, B, submap, reset
bind = , F, exec, filezilla
bind = , F, submap, reset
bind = , V, exec, vscodium bind = , V, exec, vscodium
bind = , V, submap, reset bind = , V, submap, reset

View File

@@ -1,17 +1,3 @@
# ────────────────────────────────────────────────────────────────────
# ╭────────────────────────────────────────────────╮
# │ WORKSPACE RULES │
# ╰────────────────────────────────────────────────╯
# ────────────────────────────────────────────────────────────────────
# Display full sized (without gaps), if only window on screen
# workspace = w[tv1], gapsout:0, gapsin:0
# workspace = f[1], gapsout:0, gapsin:0
# windowrule = bordersize 0, floating:0, onworkspace:w[tv1]
# windowrule = rounding 0, floating:0, onworkspace:w[tv1]
# windowrule = bordersize 0, floating:0, onworkspace:f[1]
# windowrule = rounding 0, floating:0, onworkspace:f[1]
$mainMod = SUPER $mainMod = SUPER
# ──────────────────────────────────────────────────────────────────── # ────────────────────────────────────────────────────────────────────
@@ -19,18 +5,18 @@ $mainMod = SUPER
# │ WINDOW RULES │ # │ WINDOW RULES │
# ╰────────────────────────────────────────────────╯ # ╰────────────────────────────────────────────────╯
# ──────────────────────────────────────────────────────────────────── # ────────────────────────────────────────────────────────────────────
windowrule = move 1450 50, title:^(.*)(Power menu)$ windowrule = move 1450 50, title:(.*)Power menu$
windowrule = workspace 2, class:evince windowrule = workspace 2, class:evince
windowrule = workspace 2, title:.*(Okular).* windowrule = workspace 2, title:.*Okular.*
windowrule = workspace 2, class:org.pwmt.zathura windowrule = workspace 2, class:org.pwmt.zathura
windowrule = fullscreen, title:wlogout windowrule = fullscreen, title:wlogout
windowrule = workspace 2, class:librewolf windowrule = workspace 2, class:librewolf
windowrule = workspace 2, title:LibreWolf windowrule = workspace 2, title:LibreWolf
windowrule = workspace 2, title:BSManager windowrule = workspace 2, title:BSManager
windowrule = workspace 1, title:ALVR(.*) windowrule = workspace 1, title:ALVR(.*)
windowrule = workspace 2, title:(.*)BeatSaber(.*) windowrule = workspace 2, title:(.*)Beat Saber(.*)
windowrule = fullscreen, title:(.*)BeatSaber(.*) windowrule = fullscreen, title:(.*)Beat Saber(.*)
windowrule = workspace 2, title:(.*)(Discord)(.*) windowrule = workspace 2, title:(.*)Discord(.*)
windowrule = workspace 3, title:^(Steam)(.*)$ windowrule = workspace 3, title:^(Steam)(.*)$
windowrule = workspace 1, title:(.*)(VSCodium)$ windowrule = workspace 1, title:(.*)(VSCodium)$
windowrule = center, title:^(.*)(VSCodium)$ windowrule = center, title:^(.*)(VSCodium)$
@@ -50,6 +36,7 @@ windowrule = float, title:^(.*)hidden-terminator*(.*)$
windowrule = float, title:^(.*)termfilechooser*(.*)$ windowrule = float, title:^(.*)termfilechooser*(.*)$
windowrule = size 1400 800, title:^(.*)termfilechooser*(.*)$ windowrule = size 1400 800, title:^(.*)termfilechooser*(.*)$
windowrule = center, title:^(.*)termfilechooser*(.*)$ windowrule = center, title:^(.*)termfilechooser*(.*)$
windowrule = dimaround, title:^(.*)termfilechooser*(.*)$
# ┌ ┐ # ┌ ┐
# │ Set floating windows & position them centered │ # │ Set floating windows & position them centered │
@@ -111,6 +98,7 @@ windowrule = center, class:pavucontrol
windowrule = float, class:file-roller windowrule = float, class:file-roller
windowrule = center, class:file-roller windowrule = center, class:file-roller
# idleinhibit
windowrule = idleinhibit focus, title:^(Rocket League)(.*)$ windowrule = idleinhibit focus, title:^(Rocket League)(.*)$
windowrule = fullscreen, title:^(Steam Big Picture)$ windowrule = fullscreen, title:^(Steam Big Picture)$
windowrule = idleinhibit always, class:steam windowrule = idleinhibit always, class:steam
@@ -120,6 +108,12 @@ windowrule = idleinhibit focus, class:supertuxkart
windowrule = idleinhibit fullscreen, title:^(.*)(Discord)(.*)$ windowrule = idleinhibit fullscreen, title:^(.*)(Discord)(.*)$
windowrule = idleinhibit fullscreen, title:^(.*)(~)(.*)$ windowrule = idleinhibit fullscreen, title:^(.*)(~)(.*)$
# Do not screenshare bitwarden windows
windowrule = noscreenshare, title:(.*)(Bitwarden)(.*)
windowrule = noscreenshare, class:nm-connection-editor
windowrule = noscreenshare, title:(.*)(secret)(.*)
windowrule = noscreenshare, class:(.*)[aA]uthentication(.*)
# ┌ ┐ # ┌ ┐
# │ Layer rules │ # │ Layer rules │

View File

@@ -20,6 +20,7 @@
monitor=DP-1, 1920x1080@144, 0x0, 1, vrr, 2 monitor=DP-1, 1920x1080@144, 0x0, 1, vrr, 2
monitor=DP-2, 1920x1080@75, 1920x0, 1 monitor=DP-2, 1920x1080@75, 1920x0, 1
exec = hyprctl setcursor oreo_spark_blue_cursors 24
source=./hyprland/binds.conf source=./hyprland/binds.conf
source=./hyprland/general.conf source=./hyprland/general.conf

View File

@@ -32,7 +32,7 @@ source=./hyprland/windowrules.conf
exec = hyprctl setcursor oreo_spark_blue_cursors 36 exec = hyprctl setcursor oreo_spark_blue_cursors 36
env = HYPRCURSOR_THEME, Oreo_spark_blue_cursor env = HYPRCURSOR_THEME, Oreo_spark_blue_cursor
env = X_CURSOR_THEME, Oreo_spark_blue_cursor env = X_CURSOR_THEME, Oreo_spark_blue_cursor
env = XCURSOR_SIZE, 24 env = XCURSOR_SIZE, 36
env = ELECTRON_ENABLE_HIGHDPI_SUPPORT, 1 env = ELECTRON_ENABLE_HIGHDPI_SUPPORT, 1
env = XDG_SESSION_TYPE, wayland env = XDG_SESSION_TYPE, wayland
env = QT_QPA_PLATFORM, wayland env = QT_QPA_PLATFORM, wayland

View File

@@ -4,6 +4,12 @@ defaultIndent: " "
# Limit Number of backups # Limit Number of backups
maxNumberOfBackups: 3 maxNumberOfBackups: 3
verbatimEnvironments:
verbatim: 1
lstlisting: 1
minted: 1
code: 1
indentRules: indentRules:
recall: " " recall: " "
remarks: " " remarks: " "

View File

@@ -1,2 +1,3 @@
[flavor] [flavor]
use = "tokyo-night" dark = "tokyo-night"
light = "tokyo-night"

View File

@@ -84,7 +84,7 @@ echo "
==> Installing other utilities... ==> Installing other utilities...
" "
sleep 2 sleep 2
yay -S --noconfirm --noremovemake okular vlc nextcloud-client p7zip zip unzip noto-fonts pavucontrol light fastfetch bashtop hugo uxplay upower gdu dig nwg-look serpl fcitx5 qalculate-gtk openconnect light blueman xdg-desktop-portal-termfilechooser-hunkyburrito-git lazygit tldr yay -S --noconfirm --noremovemake okular vlc nextcloud-client p7zip zip unzip noto-fonts pavucontrol light fastfetch bashtop hugo uxplay upower gdu dig nwg-look serpl fcitx5 qalculate-gtk openconnect light blueman xdg-desktop-portal-termfilechooser-hunkyburrito-git lazygit tldr cloc usbutils bluez-utils bluez
# LaTeX # LaTeX
echo " echo "
@@ -128,6 +128,7 @@ cd nvim
xdg-settings set default-web-browser librewolf.desktop xdg-settings set default-web-browser librewolf.desktop
xdg-mime default org.pwmt.zathura.desktop application/pdf xdg-mime default org.pwmt.zathura.desktop application/pdf
sudo systemctl disable rustdesk sudo systemctl disable rustdesk
sudo systemctl enable --now systemd-timesyncd
hyprpm update hyprpm update
git-credential-manager configure git-credential-manager configure

View File

@@ -1,2 +1,3 @@
[flavor] [flavor]
use = "{{ yazi-theme }}" dark = "{{ yazi-theme }}"
light = "{{ yazi-theme }}"

View File

@@ -2,11 +2,18 @@
connect() { connect() {
read -sp $'Please enter your Encryption Password: ' encpass read -sp $'Please enter your Encryption Password: ' encpass
echo " ==> Connecting" echo "
==> Connecting"
TOKEN=$(cat ~/.local/share/ethz-vpn-connect/ethzvpntoken.secret | openssl enc -aes-256-cbc -pbkdf2 -d -a -k $encpass) TOKEN=$(cat ~/.local/share/ethz-vpn-connect/ethzvpntoken.secret | openssl enc -aes-256-cbc -pbkdf2 -d -a -k $encpass)
PASSWORD=$(cat ~/.local/share/ethz-vpn-connect/ethzvpnpass.secret | openssl enc -aes-256-cbc -pbkdf2 -d -a -k $encpass) PASSWORD=$(cat ~/.local/share/ethz-vpn-connect/ethzvpnpass.secret | openssl enc -aes-256-cbc -pbkdf2 -d -a -k $encpass)
USERNAME=$(cat ~/.local/share/ethz-vpn-connect/ethzvpnusername.txt) USERNAME=$(cat ~/.local/share/ethz-vpn-connect/ethzvpnusername.txt)
echo $PASSWORD | sudo openconnect -b -u $USERNAME@student-net.ethz.ch -g student-net --useragent=AnyConnect --passwd-on-stdin --token-mode=totp --token-secret=sha1:base32:$TOKEN sslvpn.ethz.ch echo $PASSWORD | sudo openconnect -b -u $USERNAME@student-net.ethz.ch -g student-net --useragent=AnyConnect --no-external-auth --passwd-on-stdin --token-mode=totp --token-secret=sha1:base32:$TOKEN sslvpn.ethz.ch
if [ $? -ne 0 ]; then
echo ' ==> Failed to connect <=='
else
echo ' ==> Connected <==
'
fi
encpass="" encpass=""
PASSWORD="" PASSWORD=""
TOKEN="" TOKEN=""
@@ -19,10 +26,16 @@ disconnect() {
setup() { setup() {
echo 'You are about to overwrite your secrets. Press ctrl + C to cancel.' echo 'You are about to overwrite your secrets. Press ctrl + C to cancel.'
read -p $'Please enter your ETHZ-Username: ' USERNAME read -p 'Please enter your ETHZ-Username: ' USERNAME
read -sp $'Please choose and enter your Encryption Password (will be required when launching): ' encpass read -sp 'Please choose and enter your Encryption Password (will be required when launching): ' encpass
read -sp $'Please enter your ETHZ WLAN (= Radius) Password: ' PASSWORD echo ""
read -sp $'Please enter your ETHZ OTP Secret: ' TOKEN read -sp 'Please enter your ETHZ WLAN (= Radius) Password: ' PASSWORD
echo ""
read -sp 'Please enter your ETHZ OTP Secret: ' TOKEN
echo ""
if [[ -d ~/.local/share/ethz-vpn-connect ]]; then
rm -rf ~/.local/share/ethz-vpn-connect
fi
mkdir ~/.local/share/ethz-vpn-connect mkdir ~/.local/share/ethz-vpn-connect
echo $PASSWORD | openssl enc -aes-256-cbc -pbkdf2 -a -k $encpass >~/.local/share/ethz-vpn-connect/ethzvpnpass.secret echo $PASSWORD | openssl enc -aes-256-cbc -pbkdf2 -a -k $encpass >~/.local/share/ethz-vpn-connect/ethzvpnpass.secret
echo $TOKEN | openssl enc -aes-256-cbc -pbkdf2 -a -k $encpass >~/.local/share/ethz-vpn-connect/ethzvpntoken.secret echo $TOKEN | openssl enc -aes-256-cbc -pbkdf2 -a -k $encpass >~/.local/share/ethz-vpn-connect/ethzvpntoken.secret
@@ -30,7 +43,11 @@ setup() {
encpass="" encpass=""
PASSWORD="" PASSWORD=""
TOKEN="" TOKEN=""
echo $' ==> Secrets set <==\n' if [ $? -ne 0 ]; then
echo ' ==> Failed to set secrets <=='
else
echo ' ==> Secrets set <==\n'
fi
} }
case "$1" in case "$1" in

3
scripts/pdf-wordcount Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/sh
echo "Word count is $(pdftotext $1 - | tr -d '.' | wc -w)"

View File

@@ -8,6 +8,6 @@ echo "
killall gjs killall gjs
killall ags killall ags
sleep 4 sleep 4
ags run -d ~/projects/dotfiles/config/astal --gtk4 & disown ags run -d ~/projects/dotfiles/config/astal --gtk 4 & disown
sleep 2 sleep 2
ags run -d ~/projects/dotfiles/config/ags/notifications & disown ags run -d ~/projects/dotfiles/config/ags/notifications --gtk 3 & disown

10
scripts/toggle-swapescape Executable file
View File

@@ -0,0 +1,10 @@
#!/bin/sh
enabled=$(hyprctl getoption input:kb_options | grep "caps:swapescape")
if [[ $enabled == "" ]]; then
hyprctl keyword input:kb_options "caps:swapescape"
notify-send "Swapescape enabled"
else
hyprctl keyword input:kb_options ""
notify-send "Swapescape disabled"
fi

11
setup
View File

@@ -28,7 +28,6 @@ trap 'echo -e "\nCaught Ctrl+C, exiting..."; exit 130' SIGINT
# Read platform to install on (only if no platform file present in ~/.config/) # Read platform to install on (only if no platform file present in ~/.config/)
platform="" platform=""
if [[ -f ~/.config/platform ]]; then if [[ -f ~/.config/platform ]]; then
echo "Config type already selected, skipping"
platform=$(cat ~/.config/platform) platform=$(cat ~/.config/platform)
else else
read -p "Choose the configs to install, Laptop or Desktop (l/D): " platform read -p "Choose the configs to install, Laptop or Desktop (l/D): " platform
@@ -58,7 +57,6 @@ fi
# hyprvim config # hyprvim config
hyprvim="" hyprvim=""
if [[ -f ~/.config/hyprvim ]]; then if [[ -f ~/.config/hyprvim ]]; then
echo "hyprvim config already specified, skipping"
hyprvim=$(cat ~/.config/hyprvim) hyprvim=$(cat ~/.config/hyprvim)
else else
read -p "Would you like to use hyprvim? (Y/n) " hyprvim read -p "Would you like to use hyprvim? (Y/n) " hyprvim
@@ -81,19 +79,19 @@ cp -r ./config/xdg-desktop-portal/ ~/.config/
# Depending on platform, remove one or the other config and rename remaining one # Depending on platform, remove one or the other config and rename remaining one
if [[ "$platform" == "d" ]]; then if [[ "$platform" == "d" ]]; then
echo "Running on desktop" echo "==> Running on desktop"
cp -f ~/.config/hypr/hyprland_desktop.conf ~/.config/hypr/hyprland.conf cp -f ~/.config/hypr/hyprland_desktop.conf ~/.config/hypr/hyprland.conf
else else
echo "Running on laptop" echo "==> Running on laptop"
cp -f ~/.config/hypr/hyprland_laptop.conf ~/.config/hypr/hyprland.conf cp -f ~/.config/hypr/hyprland_laptop.conf ~/.config/hypr/hyprland.conf
fi fi
# Enable or disable "hyprvim" (using hyprland with vim-inspired modes) # Enable or disable "hyprvim" (using hyprland with vim-inspired modes)
if [[ "$hyprvim" == "y" ]]; then if [[ "$hyprvim" == "y" ]]; then
echo "Enabling hyprvim" echo "==> Enabling hyprvim"
mv -f ~/.config/hypr/hyprland/mode-binds.conf ~/.config/hypr/hyprland/binds.conf mv -f ~/.config/hypr/hyprland/mode-binds.conf ~/.config/hypr/hyprland/binds.conf
else else
echo "Disabling hyprvim" echo "==> Disabling hyprvim"
rm -rf ~/.config/hypr/hyprland/modal-binds rm -rf ~/.config/hypr/hyprland/modal-binds
rm ~/.config/hypr/hyprland/mode-binds.conf rm ~/.config/hypr/hyprland/mode-binds.conf
fi fi
@@ -114,6 +112,7 @@ cp ./config/lint/indentconfig.yaml ~/.indentconfig.yaml
echo " echo "
=> Installing yazi plugins => Installing yazi plugins
" "
rm -rf ~/.config/yazi/plugins/*
ya pkg upgrade ya pkg upgrade
if [[ "$restart" == "y" ]]; then if [[ "$restart" == "y" ]]; then