3 Commits

Author SHA1 Message Date
kenji 97a23a26dd add(binds): focus between nonfloating and floaters 2026-01-14 19:20:13 -06:00
kenji da383a3526 feat(apps): add anki flashcards 2026-01-14 18:31:38 -06:00
kenji ad8b59f314 feat(apps): add zathura document viewer with matugen theming 2026-01-14 16:14:17 -06:00
10 changed files with 132 additions and 0 deletions
+3
View File
@@ -0,0 +1,3 @@
{pkgs, ...}: {
home.packages = with pkgs; [anki-bin];
}
+7
View File
@@ -27,6 +27,7 @@
"SUPER, K, Move focus up, movefocus, u"
"SUPER, H, Move focus left, movefocus, l"
"SUPER, L, Move focus right, movefocus, r"
"SUPER, G, Switch Focus (Float/Tile), exec, hakase-focus-switch"
# move window
"SUPER SHIFT, h, Move window left, movewindow, l"
@@ -55,6 +56,12 @@
# [Workspaces] Toggle between most recent workspaces
"SUPER, Tab, Cycle workspaces, workspace, previous"
# [Workspaces] Move to another workspace
"CTRL SHIFT, H, Move to previous workspace, split:workspace, -1"
"CTRL SHIFT, L, Move to next workspace, split:workspace, +1"
"CTRL SHIFT, K, Move to previous workspace, split:workspace, -1"
"CTRL SHIFT, J, Move to next workspace, split:workspace, +1"
# hyprspace - workspace overview
"SUPER, E, Toggle Workspace Overview, overview:toggle"
]
+20
View File
@@ -28,8 +28,28 @@
exit 0
'';
hakase-focus-switch = pkgs.writeShellScriptBin "hakase-focus-switch" ''
HYPRCTL="${pkgs.hyprland}/bin/hyprctl"
JQ="${pkgs.jq}/bin/jq"
workspace_id=$($HYPRCTL activeworkspace -j | $JQ '.id')
active_window=$($HYPRCTL activewindow -j)
is_floating=$(echo "$active_window" | $JQ '.floating')
if [ "$is_floating" == "true" ]; then
target_addr=$($HYPRCTL clients -j | $JQ -r --argjson ws "$workspace_id" '[.[] | select(.workspace.id == $ws and .floating == false)] | .[0].address')
else
target_addr=$($HYPRCTL clients -j | $JQ -r --argjson ws "$workspace_id" '[.[] | select(.workspace.id == $ws and .floating == true)] | .[0].address')
fi
if [ "$target_addr" != "null" ] && [ -n "$target_addr" ]; then
$HYPRCTL dispatch focuswindow address:$target_addr
fi
'';
in {
home.packages = [
hakase-workspace-switch-force
hakase-focus-switch
];
}
+4
View File
@@ -24,6 +24,10 @@ output_path = "~/.config/starship.toml"
input_path = "~/.config/matugen/templates/walker"
output_path = "~/.config/walker/themes/nixos/style.css"
[templates.zathura]
input_path = "~/.config/matugen/templates/zathura"
output_path = "~/.config/zathura/zathura-matugen"
[templates.pywalfox]
input_path = '~/.config/matugen/templates/firefox'
output_path = '~/.cache/wal/colors.json'
+1
View File
@@ -36,6 +36,7 @@
home.file.".config/matugen/templates/hyprlock".source = ./templates/hyprlock;
home.file.".config/matugen/templates/starship".source = ./templates/starship;
home.file.".config/matugen/templates/waybar".source = ./templates/waybar;
home.file.".config/matugen/templates/zathura".source = ./templates/zathura;
home.file.".config/matugen/templates/vicinae".text = ''
# Vicinae Matugen Theme Template
+41
View File
@@ -0,0 +1,41 @@
set default-bg "#{{colors.surface.default.hex_stripped}}"
set default-fg "#{{colors.on_surface.default.hex_stripped}}"
set statusbar-bg "#{{colors.surface_container.default.hex_stripped}}"
set statusbar-fg "#{{colors.on_surface.default.hex_stripped}}"
set inputbar-bg "#{{colors.surface_container.default.hex_stripped}}"
set inputbar-fg "#{{colors.on_surface.default.hex_stripped}}"
set notification-bg "#{{colors.surface_container_high.default.hex_stripped}}"
set notification-fg "#{{colors.on_surface.default.hex_stripped}}"
set notification-error-bg "#{{colors.error.default.hex_stripped}}"
set notification-error-fg "#{{colors.on_error.default.hex_stripped}}"
set notification-warning-bg "#{{colors.tertiary.default.hex_stripped}}"
set notification-warning-fg "#{{colors.on_tertiary.default.hex_stripped}}"
set highlight-color "#{{colors.primary.default.hex_stripped}}"
set highlight-active-color "#{{colors.primary_container.default.hex_stripped}}"
set completion-bg "#{{colors.surface_container.default.hex_stripped}}"
set completion-fg "#{{colors.on_surface.default.hex_stripped}}"
set completion-group-bg "#{{colors.surface_container.default.hex_stripped}}"
set completion-group-fg "#{{colors.on_surface.default.hex_stripped}}"
set completion-highlight-bg "#{{colors.primary.default.hex_stripped}}"
set completion-highlight-fg "#{{colors.on_primary.default.hex_stripped}}"
set index-bg "#{{colors.surface.default.hex_stripped}}"
set index-fg "#{{colors.on_surface.default.hex_stripped}}"
set index-active-bg "#{{colors.surface_container.default.hex_stripped}}"
set index-active-fg "#{{colors.on_surface.default.hex_stripped}}"
set render-loading-bg "#{{colors.surface.default.hex_stripped}}"
set render-loading-fg "#{{colors.on_surface.default.hex_stripped}}"
set recolor-lightcolor "#{{colors.surface.default.hex_stripped}}"
set recolor-darkcolor "#{{colors.on_surface.default.hex_stripped}}"
+24
View File
@@ -0,0 +1,24 @@
{ pkgs, ... }:
{
programs.zathura = {
enable = true;
options = {
selection-clipboard = "clipboard";
adjust-open = "best-fit";
pages-per-row = 1;
scroll-page-aware = "true";
scroll-full-overlap = "0.01";
scroll-step = 100;
zoom-min = 10;
recolor = true;
};
extraConfig = "include zathura-matugen";
};
xdg.mimeApps = {
enable = true;
defaultApplications = {
"application/pdf" = "org.pwmt.zathura.desktop";
};
};
}
+1
View File
@@ -1,6 +1,7 @@
{
imports = [
../../apps/btop
../../apps/anki
../../apps/gemini
../../apps/jellyfin
../../apps/tickrs
+1
View File
@@ -3,6 +3,7 @@
../../apps/yazi
../../apps/firefox
../../apps/imv
../../apps/zathura
../../apps/mpv
../../apps/mako
# ../../apps/starship
+30
View File
@@ -0,0 +1,30 @@
#!/usr/bin/env bash
# Get current workspace ID
workspace_id=$(hyprctl activeworkspace -j | jq '.id')
# Get active window info
active_window=$(hyprctl activewindow -j)
is_floating=$(echo "$active_window" | jq '.floating')
echo "Current Workspace: $workspace_id"
echo "Active Window Floating: $is_floating"
if [ "$is_floating" == "true" ]; then
echo "Switching to Tiled..."
# Find a tiled window on the current workspace
# We sort by focus history or just pick the first one
target_addr=$(hyprctl clients -j | jq -r --argjson ws "$workspace_id" '[.[] | select(.workspace.id == $ws and .floating == false)] | sort_by(.focusHistoryID) | .[0].address')
else
echo "Switching to Floating..."
# Find a floating window on the current workspace
target_addr=$(hyprctl clients -j | jq -r --argjson ws "$workspace_id" '[.[] | select(.workspace.id == $ws and .floating == true)] | sort_by(.focusHistoryID) | .[0].address')
fi
echo "Target Address: $target_addr"
if [ "$target_addr" != "null" ] && [ -n "$target_addr" ]; then
hyprctl dispatch focuswindow address:$target_addr
else
echo "No target window found."
fi