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, K, Move focus up, movefocus, u"
"SUPER, H, Move focus left, movefocus, l" "SUPER, H, Move focus left, movefocus, l"
"SUPER, L, Move focus right, movefocus, r" "SUPER, L, Move focus right, movefocus, r"
"SUPER, G, Switch Focus (Float/Tile), exec, hakase-focus-switch"
# move window # move window
"SUPER SHIFT, h, Move window left, movewindow, l" "SUPER SHIFT, h, Move window left, movewindow, l"
@@ -55,6 +56,12 @@
# [Workspaces] Toggle between most recent workspaces # [Workspaces] Toggle between most recent workspaces
"SUPER, Tab, Cycle workspaces, workspace, previous" "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 # hyprspace - workspace overview
"SUPER, E, Toggle Workspace Overview, overview:toggle" "SUPER, E, Toggle Workspace Overview, overview:toggle"
] ]
+20
View File
@@ -28,8 +28,28 @@
exit 0 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 { in {
home.packages = [ home.packages = [
hakase-workspace-switch-force 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" input_path = "~/.config/matugen/templates/walker"
output_path = "~/.config/walker/themes/nixos/style.css" output_path = "~/.config/walker/themes/nixos/style.css"
[templates.zathura]
input_path = "~/.config/matugen/templates/zathura"
output_path = "~/.config/zathura/zathura-matugen"
[templates.pywalfox] [templates.pywalfox]
input_path = '~/.config/matugen/templates/firefox' input_path = '~/.config/matugen/templates/firefox'
output_path = '~/.cache/wal/colors.json' 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/hyprlock".source = ./templates/hyprlock;
home.file.".config/matugen/templates/starship".source = ./templates/starship; home.file.".config/matugen/templates/starship".source = ./templates/starship;
home.file.".config/matugen/templates/waybar".source = ./templates/waybar; 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 = '' home.file.".config/matugen/templates/vicinae".text = ''
# Vicinae Matugen Theme Template # 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 = [ imports = [
../../apps/btop ../../apps/btop
../../apps/anki
../../apps/gemini ../../apps/gemini
../../apps/jellyfin ../../apps/jellyfin
../../apps/tickrs ../../apps/tickrs
+1
View File
@@ -3,6 +3,7 @@
../../apps/yazi ../../apps/yazi
../../apps/firefox ../../apps/firefox
../../apps/imv ../../apps/imv
../../apps/zathura
../../apps/mpv ../../apps/mpv
../../apps/mako ../../apps/mako
# ../../apps/starship # ../../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