Commit Graph

1031 Commits (a3e0175188e4d836fed28fe8348a6cb13eb7130c)

Author SHA1 Message Date
Amir Alexander Abdelbaki a3e0175188 now the bar is actually fixed 2026-06-02 10:11:39 +02:00
Amir Alexander Abdelbaki 4d3bccf3b1 finally teh bar is gut 2026-06-02 09:54:16 +02:00
Amir Alexander Abdelbaki af7454b42d eww bar now actually good 2026-06-02 09:39:49 +02:00
Amir Alexander Abdelbaki e86c8eef5f readjusted the eww bar 2026-06-02 09:24:31 +02:00
Amir Alexander Abdelbaki a54e0749ad fix(eww-touch): restore layout with all session styling applied
Restores the screenrotate centre widget (OSK, prev/next workspace,
rotate CW/CCW, close) that was lost to an external edit, and re-applies
all session changes on top:
- Circular (round) class on OSK, drawer, and all five screenrotate buttons
- Close button uses hyprctl dispatch killactive
- Workspace buttons use focusleft/focusright scripts
- winsworks hexpand + metric/scale hexpand for responsive volume slider
- Clock widget split into icon label + time label with a space between

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-02 09:20:54 +02:00
Amir Alexander Abdelbaki 9d7c7a5932 feat(eww-touch): restyle bar with pill aesthetic, tighter sizing, responsive slider
- Switch font to 16pt with proportionally scaled padding/margins
- Full pill border-radius (999px) on all widgets
- Circular buttons (50%) for OSK, drawer, close, workspace, screen rotation
- Volume slider expands to fill available bar width (hexpand)
- Workspace buttons use focusleft.sh / focusright.sh scripts
- Add space between clock icon and time

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-02 09:15:41 +02:00
Amir Alexander Abdelbaki c8a476d2af fix(niri): correct window opacity rules and align theming to CyberQueer palette
- Replace invalid min-opacity with opacity in niri window rules; reorder
  global rule before per-app overrides so last-match-wins works correctly
- dunst: frame_color #aaaaaa → #5018DD, icon_theme → Papirus-Dark
- eww: bar and slider colors aligned to CyberQueer #D6ABAB text color

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 17:37:11 +02:00
Amir Alexander Abdelbaki bd4a935d51 docs: add Niri documentation and update DE references
- docs/md/niri.md: full reference for the Niri DE — overview table,
  config file map, Niri vs Hyprland comparison, complete keybindings
  reference, EWW bar, wallpaper/lock/idle, screen rotation, installer
  instructions
- docs/md/index.md: updated tagline (Hyprland → Wayland), added Niri
  to the doc index table, updated repo layout tree
- docs/md/installation.md: Niri added to DE list; answerfile example
  updated to hyprlua
- docs/md/modules.md: hyprlua and niri added to DE table with links;
  hyprlua marked as recommended
- docs/md/hyprland.md: cross-reference to Niri docs added

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 16:40:37 +02:00
Amir Alexander Abdelbaki 7a40e9baec feat(niri): add Niri as a full desktop environment option
Adds Niri (scrollable-tiling Wayland compositor) as a first-class DE
alongside HyprLua, Hyprland, and Sway.

Config (desktopenvs/niri/):
- niri/config.kdl: full KDL config — input (de/caps:swapescape/
  left-handed), CyberQueer focus-ring colours, spring animations,
  environment vars, autostart, window rules, 100+ keybindings
  translated from binds.lua
- Shared configs (kitty, dunst, wofi, btop, walker, vicinae, etc.)
  symlinked from hyprlua to stay in sync
- EWW bar: three variants (PC/notebook/touch) with niri-native workspace
  widget driven by a niri msg event-stream listener script
- greetd-tuigreet: launches niri instead of Hyprland

Scripts adapted for niri IPC / niri toolchain:
- ewwstart.sh / togglebar.sh: niri msg outputs instead of hyprctl
- monitorhandler.sh: swaybg replaces hyprpaper
- caffeine.sh: swayidle replaces hypridle
- activewindow: niri msg -j focused-window
- unified-rotate.sh: niri msg action set-output-transform
- wallpaper-picker: swaybg-based rewrite
- windowswitcher: niri msg -j windows + wofi
- workspace: event-stream listener for eww literal widget
- drawer.sh / menu.sh: swaylock + niri msg action quit for power actions
- niri-toggle-touchpad.sh: xinput fallback (no niri IPC for touchpad)
- toggle-layout.sh: stub (niri has one scrollable layout)

Installer & integration:
- setup/modules/Desktop-Environments/niri.sh: full installer with
  niri-appropriate packages (swaybg, swaylock, swayidle, xfce-polkit,
  gammastep, nwg-drawer, xdg-desktop-portal-gnome; no nwg-dock-hyprland
  as niri doesn't support wlr-foreign-toplevel-management)
- setup/tui-install.sh: niri added to DE selection dialog
- apply-theme.sh: niri/config.kdl added to USER_FILES for colour theming

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 16:38:47 +02:00
Amir Alexander Abdelbaki 8f2d6c6de3 chmods 2026-06-01 15:37:40 +02:00
Amir Alexander Abdelbaki 92e1924526 feat: add sysupdate TUI script with Arch news + AI analysis
One-by-one pacman/AUR/flatpak updater with a dialog-based package
selector, Arch RSS news matching per package, optional --AI mode that
sends news to Claude and generates a timestamped /updatescript-<ts>.sh,
and kernel-based baseline detection when /updatestate doesn't exist yet.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 15:24:39 +02:00
Amir Alexander Abdelbaki 270aa841cf feat(hypr): split device exceptions into own file with a TUI editor
Move hl.device blocks from input.lua into input-device-exceptions.lua
and add mk-device-exception.sh — a dialog-based TUI that pre-populates
fields from any existing block in the target file and replaces or
appends it on save.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 14:49:14 +02:00
Amir Alexander Abdelbaki 0742802cd8 Update desktopenvs/hyprlua/hypr-usr/input.lua 2026-06-01 12:51:17 +02:00
Amir Alexander Abdelbaki b114b7f523 feat(hypr): support mice in mk-device-block and add mouse device blocks
Expand mk-device-block.sh to list mice alongside keyboards and emit the
pointer-appropriate config block. Add device blocks for the Logitech
Pro 2 and G903 mice in input.lua.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 23:27:00 +02:00
Amir Alexander Abdelbaki 572fc00755 further refinements to input profile 2026-05-31 23:20:03 +02:00
Amir Alexander Abdelbaki 4acc5beb24 feat(hypr): set standard key repeat for zsa moonlander
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 23:18:57 +02:00
Amir Alexander Abdelbaki 7bc86cb33c added exception to input for zsa moonlander 2026-05-31 23:07:11 +02:00
Amir Alexander Abdelbaki 01db6112e8 Merge branch 'main' of https://git.abdelbaki.eu/The_miro/Dotfiles 2026-05-31 22:55:53 +02:00
Amir Alexander Abdelbaki 290796dbd2 Merge branch 'main' of https://git.abdelbaki.eu/The_miro/Dotfiles 2026-05-31 22:54:06 +02:00
Amir Alexander Abdelbaki 0d082d346c feat(hypr): add script to generate hl.device() block for a keyboard
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 22:53:59 +02:00
Amir Alexander Abdelbaki 6d77e2a360 fix(hypr): wrap all gesture dispatcher callbacks in hl.dispatch()
hl.dsp.*() inside a function callback only constructs a Dispatcher
object — hl.dispatch() is required to actually execute it.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 22:46:57 +02:00
Amir Alexander Abdelbaki 6c4dfd10fa fix(hypr): revert gesture action to function callback form
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 22:41:21 +02:00
Amir Alexander Abdelbaki 388eb7b5a5 fix(hypr): use new dispatcher syntax for 4-finger workspace swipe gestures
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 22:39:43 +02:00
Amir Alexander Abdelbaki 831826f4dd Merge branch 'main' of https://git.abdelbaki.eu/The_miro/Dotfiles 2026-05-31 22:16:10 +02:00
Amir Alexander Abdelbaki bb51a51a7b feat(hypr): lock screen on lid close, skip if caffeine mode is on
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 22:08:24 +02:00
Amir Alexander Abdelbaki 08c3097a70 feat(wallpaper): sync selected wallpaper to hyprlock per monitor
wallpaper-picker now calls write_hyprlock_state() on apply, writing
per-monitor background blocks to ~/.config/hypr/hyprlock-backgrounds.conf.
hyprlock.conf sources that file instead of a hardcoded background block,
with a committed default for first-boot.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 21:54:19 +02:00
Amir Alexander Abdelbaki df3ad40ad4 Merge branch 'main' of https://git.abdelbaki.eu/The_miro/Dotfiles 2026-05-29 14:56:39 +02:00
Amir Alexander Abdelbaki b0a9dfeac9 feat(desktopenvs): add hyprland → hyprlua migration script
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-29 14:55:50 +02:00
Amir Alexander Abdelbaki da0d318022 feat(mail): install w3m and write mailcap for HTML email rendering
Adds w3m to the install list and appends the text/html mailcap entry
so alot renders HTML emails as plain text via w3m -dump.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 16:07:54 +02:00
Amir Alexander Abdelbaki 325c6def66 fix(caldav): write per-calendar khal config instead of broken glob
The glob path = .../calendars/* was not expanded by khal, so no events
were visible. Now caldav-sync.sh and ics-to-calendarim both generate
explicit [[name]]/path entries per calendar and regenerate the config
on every sync so newly discovered calendars are picked up automatically.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 14:40:37 +02:00
Amir Alexander Abdelbaki f25b761f3d fix(nvim): replace calendar.vim with khal interactive for event display
calendar.vim hangs on Google token errors; khal interactive reads the
same vdirsyncer ICS files directly and provides a working calendar+event TUI.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 14:26:17 +02:00
Amir Alexander Abdelbaki dc11cc007d feat(nvim): enable calendar.vim event loading from local ICS cache
Sets g:calendar_google_calendar so calendar.vim attempts to load events,
falling back to the cache populated by ics-to-calendarim.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 14:23:32 +02:00
Amir Alexander Abdelbaki 5948629c28 feat(nvim): sync CalDAV on startup via background jobstart
Runs vdirsyncer sync + ics-to-calendarim in a detached background job
on VimEnter so the calendar.vim cache stays fresh without blocking startup.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 14:12:24 +02:00
Amir Alexander Abdelbaki e454482970 feat(caldav): add CalDAV sync script with calendar.vim cache converter
Installs vdirsyncer + khal, writes vdirsyncer/khal configs, creates
ics-to-calendarim converter to populate calendar.vim local JSON cache,
and sets up a systemd user timer for 15-minute periodic sync.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 14:11:06 +02:00
Amir Alexander Abdelbaki 211763d2c8 fix(nvim): guarantee abook pane is at least 20 lines tall
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 13:40:45 +02:00
Amir Alexander Abdelbaki c2514b6fb5 fix(nvim): guarantee abook/calendar column is at least 80 cols wide
Right column was derived as W - left_w, making it too narrow on smaller
terminals. Now right_w = max(80, 45% of W) and left_w takes the rest.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 13:39:04 +02:00
Amir Alexander Abdelbaki 50c5b72683 fix(nvim): auto-insert in terminal buffers, add terminal window nav
- BufEnter term://* auto-calls startinsert so alot/abook receive keys
  immediately without needing to press i/a first (skips floaterm)
- <C-hjkl> in terminal-insert mode exits to normal then moves window,
  matching the existing normal-mode nav mappings

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 13:35:31 +02:00
Amir Alexander Abdelbaki ddd632fb7e fix(alot): restore esc = exit in search mode, add / = refineprompt
esc closes the search buffer (exits alot only if it is the last buffer).
/ opens a prompt pre-filled with the current query for regex refinement.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 13:31:22 +02:00
Amir Alexander Abdelbaki 050d91d544 fix(alot): remove esc = exit from search mode
In the inbox/search view, exit has nowhere to go back to so it quit
alot entirely. Esc is now only bound in thread/taglist/bufferlist where
it navigates back without closing the application.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 13:25:44 +02:00
Amir Alexander Abdelbaki e9ff562c1e feat(alot): track alot config in dotfiles and symlink like other configs
- Add alot/config with account details and esc keybindings
- shell-setup.sh: rm -rf ~/.config/alot && ln -sf ~/Dotfiles/alot
- mail-notmuch.sh: patch account block in Dotfiles/alot/config via
  python3 regex instead of overwriting the whole file

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 13:19:28 +02:00
Amir Alexander Abdelbaki 85e810d70b feat(nvim,alot): full-screen PIM layout + alot Esc bindings
- x now opens a full-screen overlay: alot left (55%), abook top-right,
  calendar bottom-right
- Add esc = exit bindings to alot config for search/thread/taglist/
  bufferlist modes, applied to live ~/.config/alot/config and to the
  mail-notmuch.sh setup script

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 13:12:25 +02:00
Amir Alexander Abdelbaki 9db080dc0f refactor(nvim): remap PIM toggle from r to x
Removes the old x → DBUI_ExecuteQuery binding to free the key.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 12:30:05 +02:00
Amir Alexander Abdelbaki b1bdb3c540 fix(nvim): set winhighlight via nvim_set_option_value, not open_win
winhighlight is a window option, not an nvim_open_win config key.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 12:09:15 +02:00
Amir Alexander Abdelbaki 766cfc0f8f fix(nvim): fix black float backgrounds and guarantee abook 24-line height
- Add winhighlight=Normal:Normal to all floats so they inherit the
  colorscheme background instead of showing NormalFloat (black)
- Pin abook to min 24 lines; mail/calendar split the remaining height

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 12:08:20 +02:00
Amir Alexander Abdelbaki 890cb8819b fix(nvim): pass -position=here to Calendar to open in current window
calendar.vim defaults to tabnew, which escaped the floating window.
-position=here makes it edit into the current buffer instead.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 12:06:21 +02:00
Amir Alexander Abdelbaki 47b94056ac fix(nvim): correct PIM layout to sideward-T left-column overlay
r now opens three stacked floating windows in a left column (the bar
of the sideward T), leaving the document visible to the right (stem).
Order top→bottom: alot 40%, calendar 30%, abook remainder.
Column is min(90, 45% of screen) cols wide. All sizes are clamped to
≥1 to prevent nvim_open_win errors on small terminals.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 12:02:32 +02:00
Amir Alexander Abdelbaki 96610b7ed0 feat(nvim,mail): floating PIM windows + notmuch/alot setup script
- Replace tab/vsplit PIM approach with nvim_open_win floating windows:
  r opens a tiled full-screen overlay (alot top, calendar+abook bottom)
  n/g/f open individual centered floats with rounded border
- Add setup/modules/optional-Modules/apps/mail-notmuch.sh:
  configures mbsync, msmtp, notmuch, alot from interactive prompts
  installs a systemd user timer for 5-min periodic mail sync

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 11:57:43 +02:00
Amir Alexander Abdelbaki 00b178103e feat(nvim): add PIM panel with calendar, alot mail, and abook
Adds itchyny/calendar.vim plugin and keybinds for a PIM sidebar:
- r: full-screen tab with alot (top), calendar + abook (bottom split)
- n/g/f: individual vsplit toggles for alot, calendar, abook
- Restores <C-hjkl> window nav inside calendar buffers
- shell-setup.sh installs notmuch, alot, abook (AUR) and syncs lazy.nvim

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 11:52:05 +02:00
Amir Alexander Abdelbaki 867686e409 fix(eww-touch): use hyprctl dispatch for close window button
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 10:30:52 +02:00
Amir Alexander Abdelbaki 21ec76c6eb Revert "fix(eww-touch): fix middle button close window action"
This reverts commit 266a032cb3.
2026-05-23 10:29:17 +02:00