Compare commits

52 Commits

Author SHA1 Message Date
84b3ef181a ci(build.yaml): add a guard step to skip builds for PRs targeting master or dev branches
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 17s
Build Zola Website / build (pull_request) Successful in 26s
2025-08-27 18:47:58 +02:00
6723c45d3f chore(Makefile): restructure Makefile to add new targets and improve clarity of commands
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 17s
Build Zola Website / build (pull_request) Successful in 26s
2025-08-27 18:37:31 +02:00
342c45bc81 chore(console.js): remove obsolete console.js file
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 16s
Build Zola Website / build (pull_request) Successful in 26s
2025-08-27 18:27:53 +02:00
11f84114db style: format JSON and JavaScript files for improved readability and consistency
style(mobile-navbar.js): format code for consistency and improve readability by adding semicolons and proper indentation
2025-08-27 18:14:10 +02:00
351b930c85 chore(biome.json): update biome configuration to version 2.2.2 with enhanced settings for linter and formatter 2025-08-27 18:09:58 +02:00
d3bd7a1925 docs(README): update project description
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 16s
Build Zola Website / build (pull_request) Successful in 26s
2025-08-27 17:36:41 +02:00
23c5460698 style(home.scss): add margin-bottom to container for spacing between content and footer
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 17s
Build Zola Website / build (pull_request) Successful in 25s
2025-08-27 17:28:44 +02:00
c4dba2d7c1 style(project.scss): replace padding with margin in project-wrapper for better layout on smaller screens
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 15s
Build Zola Website / build (pull_request) Successful in 26s
2025-08-27 17:24:56 +02:00
593d5a04b9 fix(home.scss): add margin to latest projects posts on mobile devices
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 15s
Build Zola Website / build (pull_request) Successful in 25s
2025-08-27 17:13:05 +02:00
0ff1fd050d feat(home): add latest projects and posts section
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 15s
Build Zola Website / build (pull_request) Successful in 26s
2025-08-27 17:06:26 +02:00
2c792efd64 fix(debrepo.md): enhance project description and add key features and usage examples
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 15s
Build Zola Website / build (pull_request) Successful in 18s
2025-08-27 13:43:45 +02:00
5101d754db fix(walauncher.md): update project description and enhance readability of key features for clarity and consistency
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 30s
Build Zola Website / build (pull_request) Successful in 35s
chore: ignore vim swap files
2025-08-27 13:35:20 +02:00
18dc79243d Remove project state
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 20s
Build Zola Website / build (pull_request) Successful in 29s
2025-07-09 23:44:18 +02:00
203b08d044 Fixed h1 margin on about page
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 17s
Build Zola Website / build (pull_request) Successful in 24s
2025-05-24 12:05:33 +02:00
3ceaeeafda Fix margin block on copy code button when code block is inside LI
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 15s
Build Zola Website / build (pull_request) Successful in 21s
2025-05-21 14:18:15 +02:00
898bd01b83 Revert "Add more margin to copy code button"
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 13s
Build Zola Website / build (pull_request) Successful in 21s
This reverts commit de7e38855a.
2025-05-21 14:05:13 +02:00
de7e38855a Add more margin to copy code button
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 18s
Build Zola Website / build (pull_request) Successful in 25s
2025-05-21 14:01:08 +02:00
40748d6f8c About text changed
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 15s
Build Zola Website / build (pull_request) Successful in 22s
2025-05-06 18:38:07 +02:00
4da471af9f About text changed
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 14s
Build Zola Website / build (pull_request) Successful in 22s
2025-05-06 18:31:12 +02:00
d20e80c866 Postbuild script updated
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 15s
Build Zola Website / build (pull_request) Successful in 22s
2025-05-06 18:24:42 +02:00
a1cff8417a Disable unfinished content
All checks were successful
Build Zola Website / build (pull_request) Successful in 22s
Build and Deploy Zola Website / build_and_deploy (push) Successful in 14s
2025-05-06 15:12:50 +02:00
a157669815 Text changed on about page
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 16s
Build Zola Website / build (pull_request) Successful in 24s
2025-05-06 15:04:14 +02:00
5de2dc09f4 Home page text rewrite
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 14s
Build Zola Website / build (pull_request) Successful in 16s
2025-05-05 13:18:51 +02:00
ca2cedc3a2 Fix: grammar error on about page
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 25s
Build Zola Website / build (pull_request) Successful in 29s
2025-04-01 12:27:55 +02:00
de1c0bebff New post: Unix pass and Android Password Store with YubiKey
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 15s
Build Zola Website / build (pull_request) Successful in 22s
2025-01-01 16:00:31 +01:00
914be41a0a Edited: show username in url for gitea
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 16s
Build Zola Website / build (pull_request) Successful in 24s
2024-12-31 16:44:51 +01:00
62a6937c20 Add space for footer on about page
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 14s
Build Zola Website / build (pull_request) Successful in 20s
2024-12-18 13:07:38 +01:00
7b0acd007b Use vmax instead of vh
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 14s
Build Zola Website / build (pull_request) Successful in 20s
2024-12-18 13:03:39 +01:00
000bb3ea47 Fix visible content in navbar
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 15s
Build Zola Website / build (pull_request) Successful in 21s
2024-12-15 08:32:34 +01:00
297f96ab99 Added postbuild script to the Gitea Action
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 13s
Build Zola Website / build (pull_request) Successful in 20s
2024-12-15 08:18:35 +01:00
3112316e7d Added execute permissions to the postbuild script 2024-12-15 08:18:10 +01:00
1ca991e4b9 Added: postbuild script 2024-12-15 08:14:54 +01:00
c827757fb8 Added: burger menu for mobile views
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 14s
Build Zola Website / build (pull_request) Successful in 21s
2024-12-15 08:09:10 +01:00
01c994aa13 Added auto-awning-close and walauncher projects
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 13s
Build Zola Website / build (pull_request) Successful in 20s
2024-12-15 03:57:28 +01:00
1de4bf249b Added: hr under the h1 in posts and projects template
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 14s
Build Zola Website / build (pull_request) Successful in 20s
2024-12-15 03:52:41 +01:00
28c29f0d30 Fix code overflow
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 13s
Build Zola Website / build (pull_request) Successful in 20s
2024-12-14 23:09:30 +01:00
8a832250a0 New post: Creating a Language-Specific Jellyfin Library
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 14s
Build Zola Website / build (pull_request) Successful in 20s
2024-12-14 19:52:23 +01:00
225f2af48b Tracking added
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 13s
Build Zola Website / build (pull_request) Successful in 28s
2024-11-16 20:27:28 +01:00
2144038970 Rewrite title and description for jellyfin post
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 17s
Build Zola Website / build (pull_request) Successful in 24s
2024-10-17 14:03:35 +02:00
512a810122 New post: how i fixed cs2 4:3 resolution 2024-10-17 13:59:25 +02:00
2e5696f767 Added: copy text button
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 28s
Build Zola Website / build (pull_request) Successful in 35s
2024-10-15 11:11:08 +02:00
1751b590aa Text align left
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 16s
Build Zola Website / build (pull_request) Successful in 21s
2024-10-14 19:24:42 +02:00
a95f13943f CSS formatted
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 16s
Build Zola Website / build (pull_request) Successful in 23s
2024-10-14 17:15:08 +02:00
7f23f234cd Changed ancher color 2024-10-14 17:13:49 +02:00
b227a41a43 Zola workflow updated
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 30s
Build Zola Website / build (pull_request) Successful in 27s
2024-10-14 17:01:20 +02:00
bf5f265116 Design improvments 2024-10-14 16:52:45 +02:00
1cf12f91f0 Added border radius to code, meta description 2024-10-14 16:10:17 +02:00
00eec8be70 CSS redesign stuff, other things idk 2024-10-14 01:15:41 +02:00
542e432596 Jellyfin post 2024-10-12 22:45:43 +02:00
0791f417f3 Core for the posts section 2024-10-03 02:45:58 +02:00
2439dfa78d Added: biome for formatting, Makefile
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 36s
Build Zola Website / build (pull_request) Successful in 17s
2024-06-03 00:23:19 +02:00
e0248abb46 Revert "Changes for master"
This reverts commit b022a4ae37.
2024-06-03 00:10:28 +02:00
8 changed files with 13 additions and 155 deletions

View File

@@ -4,12 +4,20 @@ on: pull_request
jobs:
build:
# Skip if PR base is master/dev
if: github.base_ref != 'master' && github.base_ref != 'dev'
runs-on: ubuntu-latest
steps:
- name: Check if PR targets master/dev
id: guard
run: |
if [ "${{ github.base_ref }}" = "master" ] || [ "${{ github.base_ref }}" = "dev" ]; then
echo "skip_build=true" >> $GITHUB_ENV
echo "This PR targets '${{ github.base_ref }}', skipping build (handled by deploy workflow)."
else
echo "skip_build=false" >> $GITHUB_ENV
echo "This PR targets '${{ github.base_ref }}', proceeding with build."
fi
- name: Checkout Repository
uses: actions/checkout@v2

1
.gitignore vendored
View File

@@ -1,3 +1,2 @@
public/
!static/public/
*.swp

View File

@@ -9,7 +9,7 @@ As a member of [Microlab](https://microlab.space), the university's hackerspace,
## Work
Currently employed as a Linux DevOps engineer, focusing primarily on Debian-based systems across a variety of hardware platforms.
Currently employed as a Linux Devops engineer. Most of my work involves Debian-based systems on various hardware platforms.
I also create custom websites from time to time.

View File

@@ -1,141 +0,0 @@
+++
title = "Friendship ended with dwm, now River is my best friend"
date = 2025-10-21
description = "Moving from X11 with dwm to River on Wayland"
+++
After years with dwm on X11, I started hitting the limits of Xorg — especially screen tearing, smoothness, and missing Wayland-only features. I decided it was time to switch.
## Weapon of choice - River
I wanted an experience as close as possible to my existing X11/dwm/dwmblocks setup. Before i jumped into `river`, I looked at `dwl`, `sway`, and `Qtile`.
`dwl` sounded like the best choice for me since it aims to replicate dwm on Wayland. But development is slow, many protocols are still missing, and adding them takes time.
Sway wasn't bad, but it's closer to i3 than dwm, so not ideal for me.
Qtile looked good, but I didn't like configuring it in Python.
Then my friend [Emil](https://em.0x45.cz/) told me about his `river` setup. He was happy with it, so I gave it a shot.
What I really like about river is that I can configure it on the fly. The whole configuration is a single Bash script that sends commands to river live - no recompiling or restarting required.
As a layout manager I chose [Filtile](https://github.com/pkulak/filtile) as it's very similar to dwm behavior.
## Bar dwmblocks => waybar
As an alternative to `dwmblock`, I found Waybar to be the best fit for me.
It has plenty of modules for displaying almost anything on my bar, including my IP address, speaker/headphones state and battery status.
Besides using built-in modules, it's also possible to create custom ones using scripts. I've made my own module for displaying speaker/headphones volume with possibility to mute or change the default audio output on mouse click.
- `~/.config/waybar/config.jsonc`
```jsonc
...
"custom/audio": {
"exec": "~/.local/bin/waybar_audio.sh",
"return-type": "json",
"format": "{icon} {text}",
"format-icons": {
"speaker": ["", "", " "],
"speaker-muted": "󰖁",
"headphones": "󰋋",
"headphones-muted": "󰟎"
},
"interval": 2,
"on-click": "pamixer --toggle-mute",
"on-click-right": "~/.local/bin/toggle_audio",
"on-scroll-up": "pamixer --increase 5",
"on-scroll-down": "pamixer --decrease 5"
},
...
```
Where `waybar_audio.sh` and `toggle_audio` are my custom Bash scripts both available in my [dotfiles repository](https://git.filiprojek.cz/fr/dotfiles/src/branch/master/.local/bin).
## Application starter dmenu => Wmenu
I found Wmenu to be the most similar app launcher to dmenu and I don't like changes, so I picked it.
I was able to customize it to my liking - vertical list of apps.
The only thing that didn't work and I missed that feature so much was fuzzy search. Wmenu doesn't support it and there was no patch available. So I've decided to create my own version of wmenu with fuzzy search support with help of chatgpt codex :D. As much as I hate AI, Codex was actually able to modify that C code in just single prompt. My modified version of Wmenu is available in [this github repository](https://github.com/filiprojek/wmenu).
## passmenu integration to wmenu
For my password manager GUI I like to use passmenu - an dmenu script that helps me pick my password anywhere I am. But there was a problem. Passmenu was written only for dmenu. That's where chatgpt helped me again and together we created [this rewrite of passmenu](https://github.com/filiprojek/passmenu-wmenu) for Wmenu.
Passmenu is an excellent example of where I use the fuzzy search feature the most.
## Terminal alacritty => foot
Since Alacritty sucks at displaying images inside the terminal, I moved to foot as an alternative. It supports displaying images natively.
There was an issue with spawning new terminal inside the current working directory. I was used to Alacritty's <CTRL+Shift+Enter> shortcut. I fixed that with the following addition to my `.bashrc`:
```bash
osc7_cwd() {
local strlen=${#PWD}
local encoded=""
local pos c o
for (( pos=0; pos<strlen; pos++ )); do
c=${PWD:$pos:1}
case "$c" in
[-/:_.!\'\(\)~[:alnum:]] ) o="${c}" ;;
* ) printf -v o '%%%02X' "'${c}" ;;
esac
encoded+="${o}"
done
printf '\e]7;file://%s%s\e\\' "${HOSTNAME}" "${encoded}"
}
PROMPT_COMMAND=${PROMPT_COMMAND:+${PROMPT_COMMAND%;}; }osc7_cwd
```
And this keybind in `foot.ini`:
```ini
[key-bindings]
spawn-terminal=Control+Shift+Return
```
## Screenshare
Once I had my setup ready, one of the first issues after using it for some time was screen sharing. I dug into the issue and found a solution.
I had to add this to my River init file:
```bash
# Fix screen share
export XDG_CURRENT_DESKTOP=river
export XDG_SESSION_TYPE=wayland
## Start portals
dbus-update-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
xdg-desktop-portal-wlr &
xdg-desktop-portal &
```
## Screenshots
On my X.org setup I was using screenshots with `shotgun` and `slop` based on my friend's tutorial: [Taking screenshots with shotgun and slop](https://em.0x45.cz/posts/taking-screenshots-with-shotgun-and-slop/). Fortunately he already wrote a guide for wayland alternative: [Taking screenshots on Wayland with Grim and Slurp](https://em.0x45.cz/posts/taking-screenshots-on-wayland-with-grim-and-slurp/).
But I had issues with the combination of `grim` and `slurp`. While pasting an image from clipboard to telegram, it pasted raw PNG data instead of a file. This was the fix:
```bash
riverctl map normal None Print spawn 'file="/home/$USER/Pictures/Screenshots/$(date +%F_%T).png"; grim -g "$(slurp -d)" "$file" && wl-copy --type text/uri-list "file://$file"'
```
## Other alternatives
This is a list of other software that I used on X.org and their alternatives on Wayland:
- `xclip` => `wl-copy`
- `ranger` => `yazi`
- `slock` => `waylock`
## Final thoughts
After a few weeks with River, I dont miss Xorg much. The setup feels lighter, screenshots and screen sharing work fine now, and I can still keep my DWM-like workflow.
There's just one thing I didn't get working and that is the indication of how many windows are open in monocle layout. Dwm used `[X]` where `X` was the number of open windows on that tag.
River feels more responsive overall, and I havent run into any crashes so far.
![My current river setup](/public/river_foot_waybar_setup.png)
## References
- [River - dynamic tiling Wayland compositor](https://codeberg.org/river/river-classic)
- [Filtile](https://github.com/pkulak/filtile)
- [Waybar](https://github.com/Alexays/Waybar)
- [Wmenu](https://codeberg.org/adnano/wmenu)
- [My fork of Wmenu with Fuzzy search support](https://github.com/filiprojek/wmenu)
- [Passmenu for wmenu](https://github.com/filiprojek/passmenu-wmenu)
- [Foot - Wayland terminal emulator](https://codeberg.org/dnkl/foot)

View File

@@ -35,9 +35,7 @@
.project {
display: flex;
flex-direction: column;
margin: 1rem 0;
width: 100%;
max-width: 40%;
margin: 1rem 30%;
gap: 1rem;
.title {
font-size: 1.2rem;
@@ -57,7 +55,6 @@
}
.latest-projects-posts .project {
margin: 1rem 5%;
max-width: 90%;
}
}

View File

@@ -43,10 +43,6 @@ code {
p {
text-align: left;
}
img {
max-width: 100%;
}
}
.link-back {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 379 KiB

View File

@@ -28,7 +28,6 @@
<script defer src="/js/mobile-navbar.js"></script>
{% block styles %}
{% endblock styles %}
<script defer data-domain="filiprojek.cz" src="https://analytics.fofrweb.com/js/script.js"></script>
</head>
<body>
<header>