From 804df1d72b97aa638d84b663ea00ff26bab5d969 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Wed, 26 Jun 2024 08:29:49 -0700 Subject: flake --- cli/ani-cli/default.nix | 5 - cli/asciinema/default.nix | 5 - cli/bat/default.nix | 6 - cli/default.nix | 21 -- cli/dog/default.nix | 5 - cli/eza/default.nix | 7 - cli/fd/default.nix | 5 - cli/meta/ai/default.nix | 6 - cli/meta/default.nix | 10 - cli/meta/git/default.nix | 7 - cli/meta/irc/default.nix | 6 - cli/meta/scripting/charmbracelet/default.nix | 6 - cli/meta/scripting/default.nix | 11 - cli/meta/scripting/ripgrep/default.nix | 7 - cli/meta/shell/default.nix | 5 - cli/meta/smolnet/bollux/default.nix | 67 ----- cli/meta/smolnet/bollux/fix_lesskey_nag.patch | 13 - cli/meta/smolnet/default.nix | 11 - cli/navi/default.nix | 5 - cli/ncdu/default.nix | 5 - cli/nethogs/default.nix | 5 - cli/nnn/default.nix | 3 - cli/nvtop/default.nix | 5 - cli/rm-improved/default.nix | 5 - cli/sloc/default.nix | 5 - cli/starship/default.nix | 305 -------------------- cli/tealdeer/default.nix | 5 - cli/todo/default.nix | 5 - flake.lock | 309 +++++++++++++++++++++ flake.nix | 50 ++++ gui/ahoviewer/default.nix | 5 - gui/anki/default.nix | 5 - gui/cool-retro-term/default.nix | 5 - gui/default.nix | 11 - gui/foot/default.nix | 3 - gui/kitty/default.nix | 3 - gui/meta/default.nix | 5 - gui/meta/gemini/default.nix | 5 - gui/warp/default.nix | 5 - home.nix | 93 ------- home/fuwn/cli/ani-cli/default.nix | 5 + home/fuwn/cli/asciinema/default.nix | 5 + home/fuwn/cli/bat/default.nix | 6 + home/fuwn/cli/default.nix | 21 ++ home/fuwn/cli/dog/default.nix | 5 + home/fuwn/cli/eza/default.nix | 7 + home/fuwn/cli/fd/default.nix | 5 + home/fuwn/cli/meta/ai/default.nix | 6 + home/fuwn/cli/meta/default.nix | 10 + home/fuwn/cli/meta/git/default.nix | 7 + home/fuwn/cli/meta/irc/default.nix | 6 + .../cli/meta/scripting/charmbracelet/default.nix | 6 + home/fuwn/cli/meta/scripting/default.nix | 11 + home/fuwn/cli/meta/scripting/ripgrep/default.nix | 7 + home/fuwn/cli/meta/shell/default.nix | 5 + home/fuwn/cli/meta/smolnet/bollux/default.nix | 67 +++++ .../cli/meta/smolnet/bollux/fix_lesskey_nag.patch | 13 + home/fuwn/cli/meta/smolnet/default.nix | 11 + home/fuwn/cli/navi/default.nix | 5 + home/fuwn/cli/ncdu/default.nix | 5 + home/fuwn/cli/nethogs/default.nix | 5 + home/fuwn/cli/nnn/default.nix | 3 + home/fuwn/cli/nvtop/default.nix | 5 + home/fuwn/cli/rm-improved/default.nix | 5 + home/fuwn/cli/sloc/default.nix | 5 + home/fuwn/cli/starship/default.nix | 305 ++++++++++++++++++++ home/fuwn/cli/tealdeer/default.nix | 5 + home/fuwn/cli/todo/default.nix | 5 + home/fuwn/gui/ahoviewer/default.nix | 5 + home/fuwn/gui/anki/default.nix | 5 + home/fuwn/gui/cool-retro-term/default.nix | 5 + home/fuwn/gui/default.nix | 11 + home/fuwn/gui/foot/default.nix | 3 + home/fuwn/gui/kitty/default.nix | 3 + home/fuwn/gui/meta/default.nix | 5 + home/fuwn/gui/meta/gemini/default.nix | 5 + home/fuwn/gui/warp/default.nix | 5 + home/fuwn/home.nix | 99 +++++++ home/fuwn/meta/audio/default.nix | 6 + home/fuwn/meta/bitwarden/default.nix | 7 + home/fuwn/meta/calculator/default.nix | 7 + home/fuwn/meta/default.nix | 14 + home/fuwn/meta/desktop/default.nix | 1 + home/fuwn/meta/desktop/wayland/default.nix | 7 + .../fuwn/meta/desktop/wayland/hyprland/default.nix | 21 ++ .../desktop/wayland/hyprland/hypridle/default.nix | 34 +++ .../wayland/hyprland/hyprland/animations.nix | 86 ++++++ .../desktop/wayland/hyprland/hyprland/binds.nix | 209 ++++++++++++++ .../wayland/hyprland/hyprland/decoration.nix | 43 +++ .../desktop/wayland/hyprland/hyprland/default.nix | 43 +++ .../wayland/hyprland/hyprland/environment.nix | 80 ++++++ .../wayland/hyprland/hyprland/executions.nix | 55 ++++ .../desktop/wayland/hyprland/hyprland/general.nix | 119 ++++++++ .../desktop/wayland/hyprland/hyprland/plugins.nix | 69 +++++ .../desktop/wayland/hyprland/hyprland/rules.nix | 78 ++++++ .../wayland/hyprland/hyprland/scripts/common.sh | 146 ++++++++++ .../hyprland/scripts/fake_fullscreen_status | 18 ++ .../hyprland/hyprland/scripts/hycov_easymotion | 10 + .../hyprland/hyprland/scripts/initialise_gtk | 19 ++ .../hyprland/hyprland/scripts/initialise_waybar | 19 ++ .../hyprland/scripts/initialise_xdg_portal | 13 + .../hyprland/scripts/move_focus_to_monitor | 9 + .../hyprland/scripts/move_window_to_monitor | 16 ++ .../hyprland/scripts/move_window_to_workspace | 12 + .../hyprland/hyprland/scripts/switch_workspace | 5 + .../wayland/hyprland/hyprland/scripts/toggle_gaps | 13 + .../hyprland/hyprland/scripts/toggle_layout | 22 ++ .../wayland/hyprland/hyprland/workspaces.nix | 38 +++ home/fuwn/meta/desktop/wayland/meta/default.nix | 5 + .../desktop/wayland/meta/screenshot/default.nix | 6 + home/fuwn/meta/desktop/wayland/waybar/default.nix | 92 ++++++ .../wayland/waybar/waybar/default-modules.nix | 214 ++++++++++++++ .../wayland/waybar/waybar/scripts/mediaplayer.py | 152 ++++++++++ .../meta/desktop/wayland/waybar/waybar/style.css | 134 +++++++++ home/fuwn/meta/imagery/default.nix | 8 + home/fuwn/meta/language/codespell/default.nix | 5 + home/fuwn/meta/language/default.nix | 5 + home/fuwn/meta/rice/bottom/default.nix | 195 +++++++++++++ home/fuwn/meta/rice/btop/default.nix | 3 + home/fuwn/meta/rice/cpufetch/default.nix | 5 + home/fuwn/meta/rice/default.nix | 9 + home/fuwn/meta/rice/fastfetch/default.nix | 34 +++ home/fuwn/meta/rice/iotop/default.nix | 5 + home/fuwn/meta/spotify/default.nix | 9 + home/fuwn/meta/steam/default.nix | 7 + home/fuwn/meta/tools/default.nix | 9 + home/fuwn/meta/tools/http/default.nix | 6 + home/fuwn/meta/tools/infrastructure/default.nix | 6 + .../meta/tools/infrastructure/docker/default.nix | 5 + .../fuwn/meta/tools/infrastructure/fly/default.nix | 5 + .../fuwn/meta/tools/languages/agnostic/default.nix | 7 + .../fuwn/meta/tools/languages/assembly/default.nix | 7 + home/fuwn/meta/tools/languages/cobol/default.nix | 5 + home/fuwn/meta/tools/languages/default.nix | 19 ++ home/fuwn/meta/tools/languages/gleam/default.nix | 7 + home/fuwn/meta/tools/languages/go/default.nix | 3 + home/fuwn/meta/tools/languages/hare/default.nix | 5 + .../meta/tools/languages/javascript/default.nix | 9 + home/fuwn/meta/tools/languages/jvm/default.nix | 5 + .../fuwn/meta/tools/languages/protobuf/default.nix | 5 + home/fuwn/meta/tools/languages/python/default.nix | 8 + home/fuwn/meta/tools/languages/rust/default.nix | 10 + home/fuwn/meta/tools/languages/shell/default.nix | 5 + home/fuwn/meta/tools/languages/vlang/default.nix | 5 + home/fuwn/meta/tools/languages/yaml/default.nix | 5 + home/fuwn/meta/tools/languages/zig/default.nix | 6 + home/fuwn/meta/tools/nix/default.nix | 10 + home/fuwn/meta/tools/tcp/default.nix | 6 + home/fuwn/wallpaper.png | Bin 0 -> 3744245 bytes meta/audio/default.nix | 6 - meta/bitwarden/default.nix | 7 - meta/calculator/default.nix | 7 - meta/default.nix | 14 - meta/desktop/default.nix | 1 - meta/desktop/wayland/default.nix | 7 - meta/desktop/wayland/hyprland/default.nix | 21 -- meta/desktop/wayland/hyprland/hypridle/default.nix | 34 --- .../wayland/hyprland/hyprland/animations.nix | 86 ------ meta/desktop/wayland/hyprland/hyprland/binds.nix | 209 -------------- .../wayland/hyprland/hyprland/decoration.nix | 43 --- meta/desktop/wayland/hyprland/hyprland/default.nix | 43 --- .../wayland/hyprland/hyprland/environment.nix | 80 ------ .../wayland/hyprland/hyprland/executions.nix | 55 ---- meta/desktop/wayland/hyprland/hyprland/general.nix | 119 -------- meta/desktop/wayland/hyprland/hyprland/plugins.nix | 69 ----- meta/desktop/wayland/hyprland/hyprland/rules.nix | 78 ------ .../wayland/hyprland/hyprland/scripts/common.sh | 146 ---------- .../hyprland/scripts/fake_fullscreen_status | 18 -- .../hyprland/hyprland/scripts/hycov_easymotion | 10 - .../hyprland/hyprland/scripts/initialise_gtk | 19 -- .../hyprland/hyprland/scripts/initialise_waybar | 19 -- .../hyprland/scripts/initialise_xdg_portal | 13 - .../hyprland/scripts/move_focus_to_monitor | 9 - .../hyprland/scripts/move_window_to_monitor | 16 -- .../hyprland/scripts/move_window_to_workspace | 12 - .../hyprland/hyprland/scripts/switch_workspace | 5 - .../wayland/hyprland/hyprland/scripts/toggle_gaps | 13 - .../hyprland/hyprland/scripts/toggle_layout | 22 -- .../wayland/hyprland/hyprland/workspaces.nix | 38 --- meta/desktop/wayland/meta/default.nix | 5 - meta/desktop/wayland/meta/screenshot/default.nix | 6 - meta/desktop/wayland/waybar/default.nix | 91 ------ .../wayland/waybar/waybar/default-modules.nix | 214 -------------- .../wayland/waybar/waybar/scripts/mediaplayer.py | 152 ---------- meta/desktop/wayland/waybar/waybar/style.css | 134 --------- meta/imagery/default.nix | 8 - meta/language/codespell/default.nix | 5 - meta/language/default.nix | 5 - meta/rice/bottom/default.nix | 195 ------------- meta/rice/btop/default.nix | 3 - meta/rice/cpufetch/default.nix | 5 - meta/rice/default.nix | 9 - meta/rice/fastfetch/default.nix | 34 --- meta/rice/iotop/default.nix | 5 - meta/spotify/default.nix | 9 - meta/steam/default.nix | 7 - meta/tools/default.nix | 9 - meta/tools/http/default.nix | 6 - meta/tools/infrastructure/default.nix | 6 - meta/tools/infrastructure/docker/default.nix | 5 - meta/tools/infrastructure/fly/default.nix | 5 - meta/tools/languages/agnostic/default.nix | 7 - meta/tools/languages/assembly/default.nix | 7 - meta/tools/languages/cobol/default.nix | 5 - meta/tools/languages/default.nix | 19 -- meta/tools/languages/gleam/default.nix | 7 - meta/tools/languages/go/default.nix | 3 - meta/tools/languages/hare/default.nix | 5 - meta/tools/languages/javascript/default.nix | 9 - meta/tools/languages/jvm/default.nix | 5 - meta/tools/languages/protobuf/default.nix | 5 - meta/tools/languages/python/default.nix | 8 - meta/tools/languages/rust/default.nix | 10 - meta/tools/languages/shell/default.nix | 5 - meta/tools/languages/vlang/default.nix | 5 - meta/tools/languages/yaml/default.nix | 5 - meta/tools/languages/zig/default.nix | 6 - meta/tools/nix/default.nix | 10 - meta/tools/tcp/default.nix | 6 - 219 files changed, 3321 insertions(+), 2955 deletions(-) delete mode 100644 cli/ani-cli/default.nix delete mode 100644 cli/asciinema/default.nix delete mode 100644 cli/bat/default.nix delete mode 100644 cli/default.nix delete mode 100644 cli/dog/default.nix delete mode 100644 cli/eza/default.nix delete mode 100644 cli/fd/default.nix delete mode 100644 cli/meta/ai/default.nix delete mode 100644 cli/meta/default.nix delete mode 100644 cli/meta/git/default.nix delete mode 100644 cli/meta/irc/default.nix delete mode 100644 cli/meta/scripting/charmbracelet/default.nix delete mode 100644 cli/meta/scripting/default.nix delete mode 100644 cli/meta/scripting/ripgrep/default.nix delete mode 100644 cli/meta/shell/default.nix delete mode 100644 cli/meta/smolnet/bollux/default.nix delete mode 100644 cli/meta/smolnet/bollux/fix_lesskey_nag.patch delete mode 100644 cli/meta/smolnet/default.nix delete mode 100644 cli/navi/default.nix delete mode 100644 cli/ncdu/default.nix delete mode 100644 cli/nethogs/default.nix delete mode 100644 cli/nnn/default.nix delete mode 100644 cli/nvtop/default.nix delete mode 100644 cli/rm-improved/default.nix delete mode 100644 cli/sloc/default.nix delete mode 100644 cli/starship/default.nix delete mode 100644 cli/tealdeer/default.nix delete mode 100644 cli/todo/default.nix create mode 100644 flake.lock create mode 100644 flake.nix delete mode 100644 gui/ahoviewer/default.nix delete mode 100644 gui/anki/default.nix delete mode 100644 gui/cool-retro-term/default.nix delete mode 100644 gui/default.nix delete mode 100644 gui/foot/default.nix delete mode 100644 gui/kitty/default.nix delete mode 100644 gui/meta/default.nix delete mode 100644 gui/meta/gemini/default.nix delete mode 100644 gui/warp/default.nix delete mode 100644 home.nix create mode 100644 home/fuwn/cli/ani-cli/default.nix create mode 100644 home/fuwn/cli/asciinema/default.nix create mode 100644 home/fuwn/cli/bat/default.nix create mode 100644 home/fuwn/cli/default.nix create mode 100644 home/fuwn/cli/dog/default.nix create mode 100644 home/fuwn/cli/eza/default.nix create mode 100644 home/fuwn/cli/fd/default.nix create mode 100644 home/fuwn/cli/meta/ai/default.nix create mode 100644 home/fuwn/cli/meta/default.nix create mode 100644 home/fuwn/cli/meta/git/default.nix create mode 100644 home/fuwn/cli/meta/irc/default.nix create mode 100644 home/fuwn/cli/meta/scripting/charmbracelet/default.nix create mode 100644 home/fuwn/cli/meta/scripting/default.nix create mode 100644 home/fuwn/cli/meta/scripting/ripgrep/default.nix create mode 100644 home/fuwn/cli/meta/shell/default.nix create mode 100644 home/fuwn/cli/meta/smolnet/bollux/default.nix create mode 100644 home/fuwn/cli/meta/smolnet/bollux/fix_lesskey_nag.patch create mode 100644 home/fuwn/cli/meta/smolnet/default.nix create mode 100644 home/fuwn/cli/navi/default.nix create mode 100644 home/fuwn/cli/ncdu/default.nix create mode 100644 home/fuwn/cli/nethogs/default.nix create mode 100644 home/fuwn/cli/nnn/default.nix create mode 100644 home/fuwn/cli/nvtop/default.nix create mode 100644 home/fuwn/cli/rm-improved/default.nix create mode 100644 home/fuwn/cli/sloc/default.nix create mode 100644 home/fuwn/cli/starship/default.nix create mode 100644 home/fuwn/cli/tealdeer/default.nix create mode 100644 home/fuwn/cli/todo/default.nix create mode 100644 home/fuwn/gui/ahoviewer/default.nix create mode 100644 home/fuwn/gui/anki/default.nix create mode 100644 home/fuwn/gui/cool-retro-term/default.nix create mode 100644 home/fuwn/gui/default.nix create mode 100644 home/fuwn/gui/foot/default.nix create mode 100644 home/fuwn/gui/kitty/default.nix create mode 100644 home/fuwn/gui/meta/default.nix create mode 100644 home/fuwn/gui/meta/gemini/default.nix create mode 100644 home/fuwn/gui/warp/default.nix create mode 100644 home/fuwn/home.nix create mode 100644 home/fuwn/meta/audio/default.nix create mode 100644 home/fuwn/meta/bitwarden/default.nix create mode 100644 home/fuwn/meta/calculator/default.nix create mode 100644 home/fuwn/meta/default.nix create mode 100644 home/fuwn/meta/desktop/default.nix create mode 100644 home/fuwn/meta/desktop/wayland/default.nix create mode 100644 home/fuwn/meta/desktop/wayland/hyprland/default.nix create mode 100644 home/fuwn/meta/desktop/wayland/hyprland/hypridle/default.nix create mode 100644 home/fuwn/meta/desktop/wayland/hyprland/hyprland/animations.nix create mode 100644 home/fuwn/meta/desktop/wayland/hyprland/hyprland/binds.nix create mode 100644 home/fuwn/meta/desktop/wayland/hyprland/hyprland/decoration.nix create mode 100644 home/fuwn/meta/desktop/wayland/hyprland/hyprland/default.nix create mode 100644 home/fuwn/meta/desktop/wayland/hyprland/hyprland/environment.nix create mode 100644 home/fuwn/meta/desktop/wayland/hyprland/hyprland/executions.nix create mode 100644 home/fuwn/meta/desktop/wayland/hyprland/hyprland/general.nix create mode 100644 home/fuwn/meta/desktop/wayland/hyprland/hyprland/plugins.nix create mode 100644 home/fuwn/meta/desktop/wayland/hyprland/hyprland/rules.nix create mode 100644 home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/common.sh create mode 100755 home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/fake_fullscreen_status create mode 100755 home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/hycov_easymotion create mode 100755 home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/initialise_gtk create mode 100755 home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/initialise_waybar create mode 100755 home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/initialise_xdg_portal create mode 100755 home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/move_focus_to_monitor create mode 100755 home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/move_window_to_monitor create mode 100755 home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/move_window_to_workspace create mode 100755 home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/switch_workspace create mode 100755 home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/toggle_gaps create mode 100755 home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/toggle_layout create mode 100644 home/fuwn/meta/desktop/wayland/hyprland/hyprland/workspaces.nix create mode 100644 home/fuwn/meta/desktop/wayland/meta/default.nix create mode 100644 home/fuwn/meta/desktop/wayland/meta/screenshot/default.nix create mode 100644 home/fuwn/meta/desktop/wayland/waybar/default.nix create mode 100644 home/fuwn/meta/desktop/wayland/waybar/waybar/default-modules.nix create mode 100755 home/fuwn/meta/desktop/wayland/waybar/waybar/scripts/mediaplayer.py create mode 100644 home/fuwn/meta/desktop/wayland/waybar/waybar/style.css create mode 100644 home/fuwn/meta/imagery/default.nix create mode 100644 home/fuwn/meta/language/codespell/default.nix create mode 100644 home/fuwn/meta/language/default.nix create mode 100644 home/fuwn/meta/rice/bottom/default.nix create mode 100644 home/fuwn/meta/rice/btop/default.nix create mode 100644 home/fuwn/meta/rice/cpufetch/default.nix create mode 100644 home/fuwn/meta/rice/default.nix create mode 100644 home/fuwn/meta/rice/fastfetch/default.nix create mode 100644 home/fuwn/meta/rice/iotop/default.nix create mode 100644 home/fuwn/meta/spotify/default.nix create mode 100644 home/fuwn/meta/steam/default.nix create mode 100644 home/fuwn/meta/tools/default.nix create mode 100644 home/fuwn/meta/tools/http/default.nix create mode 100644 home/fuwn/meta/tools/infrastructure/default.nix create mode 100644 home/fuwn/meta/tools/infrastructure/docker/default.nix create mode 100644 home/fuwn/meta/tools/infrastructure/fly/default.nix create mode 100644 home/fuwn/meta/tools/languages/agnostic/default.nix create mode 100644 home/fuwn/meta/tools/languages/assembly/default.nix create mode 100644 home/fuwn/meta/tools/languages/cobol/default.nix create mode 100644 home/fuwn/meta/tools/languages/default.nix create mode 100644 home/fuwn/meta/tools/languages/gleam/default.nix create mode 100644 home/fuwn/meta/tools/languages/go/default.nix create mode 100644 home/fuwn/meta/tools/languages/hare/default.nix create mode 100644 home/fuwn/meta/tools/languages/javascript/default.nix create mode 100644 home/fuwn/meta/tools/languages/jvm/default.nix create mode 100644 home/fuwn/meta/tools/languages/protobuf/default.nix create mode 100644 home/fuwn/meta/tools/languages/python/default.nix create mode 100644 home/fuwn/meta/tools/languages/rust/default.nix create mode 100644 home/fuwn/meta/tools/languages/shell/default.nix create mode 100644 home/fuwn/meta/tools/languages/vlang/default.nix create mode 100644 home/fuwn/meta/tools/languages/yaml/default.nix create mode 100644 home/fuwn/meta/tools/languages/zig/default.nix create mode 100644 home/fuwn/meta/tools/nix/default.nix create mode 100644 home/fuwn/meta/tools/tcp/default.nix create mode 100644 home/fuwn/wallpaper.png delete mode 100644 meta/audio/default.nix delete mode 100644 meta/bitwarden/default.nix delete mode 100644 meta/calculator/default.nix delete mode 100644 meta/default.nix delete mode 100644 meta/desktop/default.nix delete mode 100644 meta/desktop/wayland/default.nix delete mode 100644 meta/desktop/wayland/hyprland/default.nix delete mode 100644 meta/desktop/wayland/hyprland/hypridle/default.nix delete mode 100644 meta/desktop/wayland/hyprland/hyprland/animations.nix delete mode 100644 meta/desktop/wayland/hyprland/hyprland/binds.nix delete mode 100644 meta/desktop/wayland/hyprland/hyprland/decoration.nix delete mode 100644 meta/desktop/wayland/hyprland/hyprland/default.nix delete mode 100644 meta/desktop/wayland/hyprland/hyprland/environment.nix delete mode 100644 meta/desktop/wayland/hyprland/hyprland/executions.nix delete mode 100644 meta/desktop/wayland/hyprland/hyprland/general.nix delete mode 100644 meta/desktop/wayland/hyprland/hyprland/plugins.nix delete mode 100644 meta/desktop/wayland/hyprland/hyprland/rules.nix delete mode 100644 meta/desktop/wayland/hyprland/hyprland/scripts/common.sh delete mode 100755 meta/desktop/wayland/hyprland/hyprland/scripts/fake_fullscreen_status delete mode 100755 meta/desktop/wayland/hyprland/hyprland/scripts/hycov_easymotion delete mode 100755 meta/desktop/wayland/hyprland/hyprland/scripts/initialise_gtk delete mode 100755 meta/desktop/wayland/hyprland/hyprland/scripts/initialise_waybar delete mode 100755 meta/desktop/wayland/hyprland/hyprland/scripts/initialise_xdg_portal delete mode 100755 meta/desktop/wayland/hyprland/hyprland/scripts/move_focus_to_monitor delete mode 100755 meta/desktop/wayland/hyprland/hyprland/scripts/move_window_to_monitor delete mode 100755 meta/desktop/wayland/hyprland/hyprland/scripts/move_window_to_workspace delete mode 100755 meta/desktop/wayland/hyprland/hyprland/scripts/switch_workspace delete mode 100755 meta/desktop/wayland/hyprland/hyprland/scripts/toggle_gaps delete mode 100755 meta/desktop/wayland/hyprland/hyprland/scripts/toggle_layout delete mode 100644 meta/desktop/wayland/hyprland/hyprland/workspaces.nix delete mode 100644 meta/desktop/wayland/meta/default.nix delete mode 100644 meta/desktop/wayland/meta/screenshot/default.nix delete mode 100644 meta/desktop/wayland/waybar/default.nix delete mode 100644 meta/desktop/wayland/waybar/waybar/default-modules.nix delete mode 100755 meta/desktop/wayland/waybar/waybar/scripts/mediaplayer.py delete mode 100644 meta/desktop/wayland/waybar/waybar/style.css delete mode 100644 meta/imagery/default.nix delete mode 100644 meta/language/codespell/default.nix delete mode 100644 meta/language/default.nix delete mode 100644 meta/rice/bottom/default.nix delete mode 100644 meta/rice/btop/default.nix delete mode 100644 meta/rice/cpufetch/default.nix delete mode 100644 meta/rice/default.nix delete mode 100644 meta/rice/fastfetch/default.nix delete mode 100644 meta/rice/iotop/default.nix delete mode 100644 meta/spotify/default.nix delete mode 100644 meta/steam/default.nix delete mode 100644 meta/tools/default.nix delete mode 100644 meta/tools/http/default.nix delete mode 100644 meta/tools/infrastructure/default.nix delete mode 100644 meta/tools/infrastructure/docker/default.nix delete mode 100644 meta/tools/infrastructure/fly/default.nix delete mode 100644 meta/tools/languages/agnostic/default.nix delete mode 100644 meta/tools/languages/assembly/default.nix delete mode 100644 meta/tools/languages/cobol/default.nix delete mode 100644 meta/tools/languages/default.nix delete mode 100644 meta/tools/languages/gleam/default.nix delete mode 100644 meta/tools/languages/go/default.nix delete mode 100644 meta/tools/languages/hare/default.nix delete mode 100644 meta/tools/languages/javascript/default.nix delete mode 100644 meta/tools/languages/jvm/default.nix delete mode 100644 meta/tools/languages/protobuf/default.nix delete mode 100644 meta/tools/languages/python/default.nix delete mode 100644 meta/tools/languages/rust/default.nix delete mode 100644 meta/tools/languages/shell/default.nix delete mode 100644 meta/tools/languages/vlang/default.nix delete mode 100644 meta/tools/languages/yaml/default.nix delete mode 100644 meta/tools/languages/zig/default.nix delete mode 100644 meta/tools/nix/default.nix delete mode 100644 meta/tools/tcp/default.nix diff --git a/cli/ani-cli/default.nix b/cli/ani-cli/default.nix deleted file mode 100644 index 723bfb9..0000000 --- a/cli/ani-cli/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - ani-cli - ]; -} diff --git a/cli/asciinema/default.nix b/cli/asciinema/default.nix deleted file mode 100644 index 750c52d..0000000 --- a/cli/asciinema/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - asciinema - ]; -} diff --git a/cli/bat/default.nix b/cli/bat/default.nix deleted file mode 100644 index c1dad3f..0000000 --- a/cli/bat/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ pkgs, ... }: { - programs.bat = { - enable = true; - config.pager = "less -FR"; - }; -} diff --git a/cli/default.nix b/cli/default.nix deleted file mode 100644 index 4d14257..0000000 --- a/cli/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -_: { - imports = [ - ./ani-cli - ./asciinema - ./bat - ./dog - ./eza - ./fd - ./meta - ./navi - ./ncdu - ./nethogs - ./nnn - # ./nvtop - ./rm-improved - ./sloc - ./starship - ./tealdeer - ./todo - ]; -} diff --git a/cli/dog/default.nix b/cli/dog/default.nix deleted file mode 100644 index 437a1a0..0000000 --- a/cli/dog/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - dogdns - ]; -} diff --git a/cli/eza/default.nix b/cli/eza/default.nix deleted file mode 100644 index a8d2f57..0000000 --- a/cli/eza/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -_: { - programs.eza = { - enable = true; - icons = true; - enableFishIntegration = true; - }; -} diff --git a/cli/fd/default.nix b/cli/fd/default.nix deleted file mode 100644 index 92e0e28..0000000 --- a/cli/fd/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - fd - ]; -} diff --git a/cli/meta/ai/default.nix b/cli/meta/ai/default.nix deleted file mode 100644 index fe42707..0000000 --- a/cli/meta/ai/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - ollama-cuda - shell-gpt - ]; -} diff --git a/cli/meta/default.nix b/cli/meta/default.nix deleted file mode 100644 index 073fc94..0000000 --- a/cli/meta/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -_: { - imports = [ - ./ai - ./git - ./irc - ./scripting - ./shell - ./smolnet - ]; -} diff --git a/cli/meta/git/default.nix b/cli/meta/git/default.nix deleted file mode 100644 index 630285c..0000000 --- a/cli/meta/git/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - gh - onefetch - gitoxide - ]; -} diff --git a/cli/meta/irc/default.nix b/cli/meta/irc/default.nix deleted file mode 100644 index adde57d..0000000 --- a/cli/meta/irc/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - catgirl - pounce - ]; -} diff --git a/cli/meta/scripting/charmbracelet/default.nix b/cli/meta/scripting/charmbracelet/default.nix deleted file mode 100644 index e3b78df..0000000 --- a/cli/meta/scripting/charmbracelet/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - gum - mods - ]; -} diff --git a/cli/meta/scripting/default.nix b/cli/meta/scripting/default.nix deleted file mode 100644 index fb6e062..0000000 --- a/cli/meta/scripting/default.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ pkgs, ... }: { - imports = [ - ./charmbracelet - ./ripgrep - ]; - - home.packages = with pkgs; [ - moreutils - pup - ]; -} diff --git a/cli/meta/scripting/ripgrep/default.nix b/cli/meta/scripting/ripgrep/default.nix deleted file mode 100644 index 00de07f..0000000 --- a/cli/meta/scripting/ripgrep/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ pkgs, ... }: { - programs.ripgrep.enable = true; - - home.packages = with pkgs; [ - ripgrep-all - ]; -} diff --git a/cli/meta/shell/default.nix b/cli/meta/shell/default.nix deleted file mode 100644 index 0d60ba0..0000000 --- a/cli/meta/shell/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - shellclear - ]; -} diff --git a/cli/meta/smolnet/bollux/default.nix b/cli/meta/smolnet/bollux/default.nix deleted file mode 100644 index 2079052..0000000 --- a/cli/meta/smolnet/bollux/default.nix +++ /dev/null @@ -1,67 +0,0 @@ -{ pkgs, lib, ... }: -let - bollux = - pkgs.stdenvNoCC.mkDerivation rec { - pname = "bollux"; - version = "0.4.1"; - - nativeBuildInputs = [ - pkgs.makeWrapper - ]; - - buildInputs = [ - pkgs.bashInteractive - ]; - - dontBuild = true; - - makeFlags = [ - "PREFIX=$(out)" - ]; - - src = pkgs.fetchFromGitea { - domain = "tildegit.org"; - owner = "acdw"; - repo = "bollux"; - rev = "f472e60f1164f0dc025d06db2a13ff4e8ebee1a2"; - hash = "sha256-mo2qWCPfW+dUaYcJLsos/vR5nJ8n1eABy8Zy8OZsfVg="; - }; - - runtimeDependencies = [ - pkgs.bashInteractive - pkgs.iconv - pkgs.openssl - pkgs.less - pkgs.coreutils - ]; - - patches = [ - # https://tildegit.org/acdw/bollux/issues/13#issuecomment-9786 - ./fix_lesskey_nag.patch - ]; - - postInstall = '' - wrapProgram $out/bin/bollux --prefix PATH : ${lib.makeBinPath runtimeDependencies} - ''; - - meta = with lib; { - description = "a Gemini browser in like, idk, 96% pure Bash"; - homepage = "https://tildegit.org/acdw/bollux"; - license = licenses.mit; - platforms = platforms.all; - mainProgram = "bollux"; - }; - }; -in -{ - home.packages = [ - # I'll update this later and move the above derivation to its own package - # once I push my entire NixOS system configuration. - # (pkgs.callPackage /path/to/pkgs/bollux.nix { - # src = bollux; - # }) - bollux - ]; - - xdg.configFile."bollux/bollux.conf".text = ''''; -} diff --git a/cli/meta/smolnet/bollux/fix_lesskey_nag.patch b/cli/meta/smolnet/bollux/fix_lesskey_nag.patch deleted file mode 100644 index 329b886..0000000 --- a/cli/meta/smolnet/bollux/fix_lesskey_nag.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git i/bollux w/bollux -index 267418e..090217e 100755 ---- i/bollux -+++ w/bollux -@@ -1130,7 +1130,7 @@ display() { # display METADATA [TITLE] - # text, and pre-formatted text shouldn't wrap. - less_cmd+=(-S) - # Load the keybindings (see `lesskey'). -- mklesskey && less_cmd+=(-k "$BOLLUX_LESSKEY") -+ mklesskey && less_cmd+=(--lesskey-src="$BOLLUX_LESSKEY") - local helpline="${KEY_OPEN}:open, " - helpline+="${KEY_GOTO}/" - helpline+="${KEY_GOTO_FROM}:goto, " diff --git a/cli/meta/smolnet/default.nix b/cli/meta/smolnet/default.nix deleted file mode 100644 index 8cb44a6..0000000 --- a/cli/meta/smolnet/default.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ pkgs, ... }: { - imports = [ - ./bollux - ]; - - home.packages = with pkgs; [ - amfora - gmni - phetch - ]; -} diff --git a/cli/navi/default.nix b/cli/navi/default.nix deleted file mode 100644 index 5b462b5..0000000 --- a/cli/navi/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - navi - ]; -} diff --git a/cli/ncdu/default.nix b/cli/ncdu/default.nix deleted file mode 100644 index 1c0bfca..0000000 --- a/cli/ncdu/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - ncdu - ]; -} diff --git a/cli/nethogs/default.nix b/cli/nethogs/default.nix deleted file mode 100644 index 7934eb8..0000000 --- a/cli/nethogs/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - nethogs - ]; -} diff --git a/cli/nnn/default.nix b/cli/nnn/default.nix deleted file mode 100644 index 06fa7c9..0000000 --- a/cli/nnn/default.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ pkgs, ... }: { - programs.nnn.enable = true; -} diff --git a/cli/nvtop/default.nix b/cli/nvtop/default.nix deleted file mode 100644 index 929f5e5..0000000 --- a/cli/nvtop/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - nvtopPackages.nvidia - ]; -} diff --git a/cli/rm-improved/default.nix b/cli/rm-improved/default.nix deleted file mode 100644 index d4a5fc1..0000000 --- a/cli/rm-improved/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - rm-improved - ]; -} diff --git a/cli/sloc/default.nix b/cli/sloc/default.nix deleted file mode 100644 index 6249b05..0000000 --- a/cli/sloc/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - sloc - ]; -} diff --git a/cli/starship/default.nix b/cli/starship/default.nix deleted file mode 100644 index 0088038..0000000 --- a/cli/starship/default.nix +++ /dev/null @@ -1,305 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - starship - ]; - - programs.starship = { - enable = true; - enableFishIntegration = true; - - # I CBA to update the formatting to match the rest of the expressions, since - # this is a one-off that I tend to import over directly from starship. - settings = { - format = "[term%](bold green) "; - right_format = "$character$all"; - add_newline = false; - - line_break = { - disabled = true; - }; - - character = { - success_symbol = "[i](bold green)"; - error_symbol = "[x](bold red)"; - vimcmd_symbol = "[n](bold green)"; - vimcmd_visual_symbol = "[v](bold green)"; - vimcmd_replace_symbol = "[R](bold green)"; - vimcmd_replace_one_symbol = "[r](bold green)"; - }; - - git_commit = { - tag_symbol = " tag "; - }; - - git_status = { - ahead = ">"; - behind = "<"; - diverged = "<>"; - renamed = "r"; - deleted = "x"; - }; - - aws = { - symbol = "aws "; - }; - - azure = { - symbol = "az "; - }; - - bun = { - symbol = "bun "; - }; - - c = { - symbol = "C "; - }; - - cobol = { - symbol = "cobol "; - }; - - conda = { - symbol = "conda "; - }; - - crystal = { - symbol = "cr "; - }; - - cmake = { - symbol = "cmake "; - }; - - daml = { - symbol = "daml "; - }; - - dart = { - symbol = "dart "; - }; - - deno = { - symbol = "deno "; - }; - - dotnet = { - symbol = ".NET "; - }; - - directory = { - read_only = " ro"; - }; - - docker_context = { - symbol = "docker "; - }; - - elixir = { - symbol = "exs "; - }; - - elm = { - symbol = "elm "; - }; - - fennel = { - symbol = "fnl "; - }; - - fossil_branch = { - symbol = "fossil "; - }; - - gcloud = { - symbol = "gcp "; - }; - - git_branch = { - symbol = "git "; - }; - - golang = { - symbol = "go "; - }; - - gradle = { - symbol = "gradle "; - }; - - guix_shell = { - symbol = "guix "; - }; - - hg_branch = { - symbol = "hg "; - }; - - java = { - symbol = "java "; - }; - - julia = { - symbol = "jl "; - }; - - kotlin = { - symbol = "kt "; - }; - - lua = { - symbol = "lua "; - }; - - nodejs = { - symbol = "nodejs "; - }; - - memory_usage = { - symbol = "memory "; - }; - - meson = { - symbol = "meson "; - }; - - nim = { - symbol = "nim "; - }; - - nix_shell = { - symbol = "nix "; - }; - - ocaml = { - symbol = "ml "; - }; - - opa = { - symbol = "opa "; - }; - - os = { - symbols = { - Alpaquita = "alq "; - Alpine = "alp "; - Amazon = "amz "; - Android = "andr "; - Arch = "rch "; - Artix = "atx "; - CentOS = "cent "; - Debian = "deb "; - DragonFly = "dfbsd "; - Emscripten = "emsc "; - EndeavourOS = "ndev "; - Fedora = "fed "; - FreeBSD = "fbsd "; - Garuda = "garu "; - Gentoo = "gent "; - HardenedBSD = "hbsd "; - Illumos = "lum "; - Linux = "lnx "; - Mabox = "mbox "; - Macos = "mac "; - Manjaro = "mjo "; - Mariner = "mrn "; - MidnightBSD = "mid "; - Mint = "mint "; - NetBSD = "nbsd "; - NixOS = "nix "; - OpenBSD = "obsd "; - OpenCloudOS = "ocos "; - openEuler = "oeul "; - openSUSE = "osuse "; - OracleLinux = "orac "; - Pop = "pop "; - Raspbian = "rasp "; - Redhat = "rhl "; - RedHatEnterprise = "rhel "; - Redox = "redox "; - Solus = "sol "; - SUSE = "suse "; - Ubuntu = "ubnt "; - Unknown = "unk "; - Windows = "win "; - }; - }; - - package = { - symbol = "pkg "; - }; - - perl = { - symbol = "pl "; - }; - - php = { - symbol = "php "; - }; - - pijul_channel = { - symbol = "pijul "; - }; - - pulumi = { - symbol = "pulumi "; - }; - - purescript = { - symbol = "purs "; - }; - - python = { - symbol = "py "; - }; - - raku = { - symbol = "raku "; - }; - - ruby = { - symbol = "rb "; - }; - - rust = { - symbol = "rs "; - }; - - scala = { - symbol = "scala "; - }; - - spack = { - symbol = "spack "; - }; - - solidity = { - symbol = "solidity "; - }; - - status = { - symbol = "[x](bold red) "; - }; - - sudo = { - symbol = "sudo "; - }; - - swift = { - symbol = "swift "; - }; - - typst = { - symbol = "typst "; - }; - - terraform = { - symbol = "terraform "; - }; - - zig = { - symbol = "zig "; - }; - }; - }; -} diff --git a/cli/tealdeer/default.nix b/cli/tealdeer/default.nix deleted file mode 100644 index 7ee39f1..0000000 --- a/cli/tealdeer/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - tealdeer - ]; -} diff --git a/cli/todo/default.nix b/cli/todo/default.nix deleted file mode 100644 index f1c841d..0000000 --- a/cli/todo/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - todo - ]; -} diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..d117df5 --- /dev/null +++ b/flake.lock @@ -0,0 +1,309 @@ +{ + "nodes": { + "base16": { + "inputs": { + "fromYaml": "fromYaml" + }, + "locked": { + "lastModified": 1708890466, + "narHash": "sha256-LlrC09LoPi8OPYOGPXegD72v+//VapgAqhbOFS3i8sc=", + "owner": "SenchoPens", + "repo": "base16.nix", + "rev": "665b3c6748534eb766c777298721cece9453fdae", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "base16.nix", + "type": "github" + } + }, + "base16-fish": { + "flake": false, + "locked": { + "lastModified": 1622559957, + "narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=", + "owner": "tomyun", + "repo": "base16-fish", + "rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe", + "type": "github" + }, + "original": { + "owner": "tomyun", + "repo": "base16-fish", + "type": "github" + } + }, + "base16-foot": { + "flake": false, + "locked": { + "lastModified": 1696725948, + "narHash": "sha256-65bz2bUL/yzZ1c8/GQASnoiGwaF8DczlxJtzik1c0AU=", + "owner": "tinted-theming", + "repo": "base16-foot", + "rev": "eedbcfa30de0a4baa03e99f5e3ceb5535c2755ce", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-foot", + "type": "github" + } + }, + "base16-helix": { + "flake": false, + "locked": { + "lastModified": 1696727917, + "narHash": "sha256-FVrbPk+NtMra0jtlC5oxyNchbm8FosmvXIatkRbYy1g=", + "owner": "tinted-theming", + "repo": "base16-helix", + "rev": "dbe1480d99fe80f08df7970e471fac24c05f2ddb", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-helix", + "type": "github" + } + }, + "base16-kitty": { + "flake": false, + "locked": { + "lastModified": 1665001328, + "narHash": "sha256-aRaizTYPpuWEcvoYE9U+YRX+Wsc8+iG0guQJbvxEdJY=", + "owner": "kdrag0n", + "repo": "base16-kitty", + "rev": "06bb401fa9a0ffb84365905ffbb959ae5bf40805", + "type": "github" + }, + "original": { + "owner": "kdrag0n", + "repo": "base16-kitty", + "type": "github" + } + }, + "base16-tmux": { + "flake": false, + "locked": { + "lastModified": 1696725902, + "narHash": "sha256-wDPg5elZPcQpu7Df0lI5O8Jv4A3T6jUQIVg63KDU+3Q=", + "owner": "tinted-theming", + "repo": "base16-tmux", + "rev": "c02050bebb60dbb20cb433cd4d8ce668ecc11ba7", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-tmux", + "type": "github" + } + }, + "base16-vim": { + "flake": false, + "locked": { + "lastModified": 1716150083, + "narHash": "sha256-ZMhnNmw34ogE5rJZrjRv5MtG3WaqKd60ds2VXvT6hEc=", + "owner": "tinted-theming", + "repo": "base16-vim", + "rev": "6e955d704d046b0dc3e5c2d68a2a6eeffd2b5d3d", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-vim", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "fromYaml": { + "flake": false, + "locked": { + "lastModified": 1689549921, + "narHash": "sha256-iX0pk/uB019TdBGlaJEWvBCfydT6sRq+eDcGPifVsCM=", + "owner": "SenchoPens", + "repo": "fromYaml", + "rev": "11fbbbfb32e3289d3c631e0134a23854e7865c84", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "fromYaml", + "type": "github" + } + }, + "gnome-shell": { + "flake": false, + "locked": { + "lastModified": 1713702291, + "narHash": "sha256-zYP1ehjtcV8fo+c+JFfkAqktZ384Y+y779fzmR9lQAU=", + "owner": "GNOME", + "repo": "gnome-shell", + "rev": "0d0aadf013f78a7f7f1dc984d0d812971864b934", + "type": "github" + }, + "original": { + "owner": "GNOME", + "ref": "46.1", + "repo": "gnome-shell", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1719385710, + "narHash": "sha256-0yb5D0wCEtXoTi4ssNZxwvLTrahTwlHYPtx252FZ1MU=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "92a26bf6df1f00cbbed16a99d2547531ff4b3a83", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_2": { + "inputs": { + "nixpkgs": [ + "stylix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1715930644, + "narHash": "sha256-W9pyM3/vePxrffHtzlJI6lDS3seANQ+Nqp+i58O46LI=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "e3ad5108f54177e6520535768ddbf1e6af54b59d", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1719317636, + "narHash": "sha256-bu0xbu2Z6DDzA9LGV81yJunIti6r7tjUImeR8orAL/I=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "9c513fc6fb75142f6aec6b7545cb8af2236b80f5", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1714912032, + "narHash": "sha256-clkcOIkg8G4xuJh+1onLG4HPMpbtzdLv4rHxFzgsH9c=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ee4a6e0f566fe5ec79968c57a9c2c3c25f2cf41d", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nur": { + "locked": { + "lastModified": 1719412482, + "narHash": "sha256-Qea0ymnmTN/74pDUHye7nCJxywJ5q7c6te+S+9L1aM4=", + "owner": "nix-community", + "repo": "NUR", + "rev": "404729489a379ab0eb55ffefd7ec5bd8de4ab3fc", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NUR", + "type": "github" + } + }, + "root": { + "inputs": { + "home-manager": "home-manager", + "nixpkgs": "nixpkgs", + "nur": "nur", + "stylix": "stylix", + "systems": "systems" + } + }, + "stylix": { + "inputs": { + "base16": "base16", + "base16-fish": "base16-fish", + "base16-foot": "base16-foot", + "base16-helix": "base16-helix", + "base16-kitty": "base16-kitty", + "base16-tmux": "base16-tmux", + "base16-vim": "base16-vim", + "flake-compat": "flake-compat", + "gnome-shell": "gnome-shell", + "home-manager": "home-manager_2", + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1719235398, + "narHash": "sha256-yccyHeuMUdbG/89Yi1ZSqx0XlpIKb0WQI+mAnTf/GJw=", + "owner": "danth", + "repo": "stylix", + "rev": "7cdbd128172d7c4ec63f5073d49da5d0e7d6396c", + "type": "github" + }, + "original": { + "owner": "danth", + "repo": "stylix", + "type": "github" + } + }, + "systems": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..812dfad --- /dev/null +++ b/flake.nix @@ -0,0 +1,50 @@ +{ + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; + + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + # hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; + # waybar-hyprland.url = "github:hyprwm/hyprland"; + nur.url = "github:nix-community/NUR"; + stylix.url = "github:danth/stylix"; + # matugen.url = "github:InioX/matugen?ref=v2.2.0"; + # xdg-portal-hyprland.url = "github:hyprwm/xdg-desktop-portal-hyprland"; + systems.url = "github:nix-systems/default-linux"; + }; + + outputs = { self, nixpkgs, home-manager, stylix, systems, ... } @ inputs: + let + inherit (self) outputs; + lib = nixpkgs.lib // home-manager.lib; + forEachSystem = f: lib.genAttrs (import systems) (system: f pkgsFor.${system}); + pkgsFor = lib.genAttrs (import systems) ( + system: import nixpkgs { inherit system; } + ); + in + { + inherit lib; + + defaultPackage.x86_64-linux = home-manager.defaultPackage.x86_64-linux; + + homeConfigurations = { + fuwn = home-manager.lib.homeManagerConfiguration { + pkgs = pkgsFor.x86_64-linux; + + modules = [ + stylix.homeManagerModules.stylix + ./home/fuwn/home.nix + ]; + + extraSpecialArgs = { + inherit inputs outputs; + }; + }; + }; + + formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.alejandra; + }; +} diff --git a/gui/ahoviewer/default.nix b/gui/ahoviewer/default.nix deleted file mode 100644 index c6907e1..0000000 --- a/gui/ahoviewer/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - ahoviewer - ]; -} diff --git a/gui/anki/default.nix b/gui/anki/default.nix deleted file mode 100644 index 8e5655c..0000000 --- a/gui/anki/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - anki-bin - ]; -} diff --git a/gui/cool-retro-term/default.nix b/gui/cool-retro-term/default.nix deleted file mode 100644 index e53937b..0000000 --- a/gui/cool-retro-term/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - cool-retro-term - ]; -} diff --git a/gui/default.nix b/gui/default.nix deleted file mode 100644 index a3ec2d2..0000000 --- a/gui/default.nix +++ /dev/null @@ -1,11 +0,0 @@ -_: { - imports = [ - ./ahoviewer - ./anki - ./cool-retro-term - # ./foot - # ./kitty - ./meta - # ./warp - ]; -} diff --git a/gui/foot/default.nix b/gui/foot/default.nix deleted file mode 100644 index 8945d61..0000000 --- a/gui/foot/default.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ pkgs, ... }: { - programs.foot.enable = true; -} diff --git a/gui/kitty/default.nix b/gui/kitty/default.nix deleted file mode 100644 index ed2d7e7..0000000 --- a/gui/kitty/default.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ pkgs, ... }: { - programs.kitty.enable = true; -} diff --git a/gui/meta/default.nix b/gui/meta/default.nix deleted file mode 100644 index 7959d11..0000000 --- a/gui/meta/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -_: { - imports = [ - ./gemini - ]; -} diff --git a/gui/meta/gemini/default.nix b/gui/meta/gemini/default.nix deleted file mode 100644 index a9b32ac..0000000 --- a/gui/meta/gemini/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - geopard - ]; -} diff --git a/gui/warp/default.nix b/gui/warp/default.nix deleted file mode 100644 index de37c40..0000000 --- a/gui/warp/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - warp-terminal - ]; -} diff --git a/home.nix b/home.nix deleted file mode 100644 index c3a3428..0000000 --- a/home.nix +++ /dev/null @@ -1,93 +0,0 @@ -{ config, pkgs, ... }: { - home = { - # Home Manager needs a bit of information about you and the paths it should - # manage. - username = "fuwn"; - homeDirectory = "/home/fuwn"; - - # This value determines the Home Manager release that your configuration is - # compatible with. This helps avoid breakage when a new Home Manager release - # introduces backwards incompatible changes. - # - # You should not change this value, even if you update Home Manager. If you do - # want to update the value, then make sure to first check the Home Manager - # release notes. - stateVersion = "24.05"; # Please read the comment before changing. - - # The home.packages option allows you to install Nix packages into your - # environment. - packages = [ - # # Adds the 'hello' command to your environment. It prints a friendly - # # "Hello, world!" when run. - # pkgs.hello - - # # It is sometimes useful to fine-tune packages, for example, by applying - # # overrides. You can do that directly here, just don't forget the - # # parentheses. Maybe you want to install Nerd Fonts with a limited number of - # # fonts? - # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) - - # # You can also create simple shell scripts directly inside your - # # configuration. For example, this adds a command 'my-hello' to your - # # environment: - # (pkgs.writeShellScriptBin "my-hello" '' - # echo "Hello, \${config.home.username}!" - # '') - ]; - - # Home Manager is pretty good at managing dotfiles. The primary way to manage - # plain files is through 'home.file'. - file = { - # # Building this configuration will create a copy of 'dotfiles/screenrc' in - # # the Nix store. Activating the configuration will then make '~/.screenrc' a - # # symlink to the Nix store copy. - # ".screenrc".source = dotfiles/screenrc; - - # # You can also set the file content immediately. - # ".gradle/gradle.properties".text = '' - # org.gradle.console=verbose - # org.gradle.daemon.idletimeout=3600000 - # ''; - }; - - # Home Manager can also manage your environment variables through - # 'home.sessionVariables'. These will be explicitly sourced when using a - # shell provided by Home Manager. If you don't want to manage your shell - # through Home Manager then you have to manually source 'hm-session-vars.sh' - # located at either - # - # ~/.nix-profile/etc/profile.d/hm-session-vars.sh - # - # or - # - # ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh - # - # or - # - # /etc/profiles/per-user/$USER/etc/profile.d/hm-session-vars.sh - # - sessionVariables = { - # EDITOR = "emacs"; - }; - - # sessionPath = [ - # "$HOME/.local/bin" - # ]; - }; - - # Let Home Manager install and manage itself. - programs.home-manager.enable = true; - - imports = [ - ./cli - ./gui - ./meta - ]; - - nixpkgs = { - config = { - allowUnfree = true; - # allowBroken = true; - }; - }; -} diff --git a/home/fuwn/cli/ani-cli/default.nix b/home/fuwn/cli/ani-cli/default.nix new file mode 100644 index 0000000..723bfb9 --- /dev/null +++ b/home/fuwn/cli/ani-cli/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + ani-cli + ]; +} diff --git a/home/fuwn/cli/asciinema/default.nix b/home/fuwn/cli/asciinema/default.nix new file mode 100644 index 0000000..750c52d --- /dev/null +++ b/home/fuwn/cli/asciinema/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + asciinema + ]; +} diff --git a/home/fuwn/cli/bat/default.nix b/home/fuwn/cli/bat/default.nix new file mode 100644 index 0000000..c1dad3f --- /dev/null +++ b/home/fuwn/cli/bat/default.nix @@ -0,0 +1,6 @@ +{ pkgs, ... }: { + programs.bat = { + enable = true; + config.pager = "less -FR"; + }; +} diff --git a/home/fuwn/cli/default.nix b/home/fuwn/cli/default.nix new file mode 100644 index 0000000..4d14257 --- /dev/null +++ b/home/fuwn/cli/default.nix @@ -0,0 +1,21 @@ +_: { + imports = [ + ./ani-cli + ./asciinema + ./bat + ./dog + ./eza + ./fd + ./meta + ./navi + ./ncdu + ./nethogs + ./nnn + # ./nvtop + ./rm-improved + ./sloc + ./starship + ./tealdeer + ./todo + ]; +} diff --git a/home/fuwn/cli/dog/default.nix b/home/fuwn/cli/dog/default.nix new file mode 100644 index 0000000..437a1a0 --- /dev/null +++ b/home/fuwn/cli/dog/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + dogdns + ]; +} diff --git a/home/fuwn/cli/eza/default.nix b/home/fuwn/cli/eza/default.nix new file mode 100644 index 0000000..a8d2f57 --- /dev/null +++ b/home/fuwn/cli/eza/default.nix @@ -0,0 +1,7 @@ +_: { + programs.eza = { + enable = true; + icons = true; + enableFishIntegration = true; + }; +} diff --git a/home/fuwn/cli/fd/default.nix b/home/fuwn/cli/fd/default.nix new file mode 100644 index 0000000..92e0e28 --- /dev/null +++ b/home/fuwn/cli/fd/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + fd + ]; +} diff --git a/home/fuwn/cli/meta/ai/default.nix b/home/fuwn/cli/meta/ai/default.nix new file mode 100644 index 0000000..fe42707 --- /dev/null +++ b/home/fuwn/cli/meta/ai/default.nix @@ -0,0 +1,6 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + ollama-cuda + shell-gpt + ]; +} diff --git a/home/fuwn/cli/meta/default.nix b/home/fuwn/cli/meta/default.nix new file mode 100644 index 0000000..073fc94 --- /dev/null +++ b/home/fuwn/cli/meta/default.nix @@ -0,0 +1,10 @@ +_: { + imports = [ + ./ai + ./git + ./irc + ./scripting + ./shell + ./smolnet + ]; +} diff --git a/home/fuwn/cli/meta/git/default.nix b/home/fuwn/cli/meta/git/default.nix new file mode 100644 index 0000000..630285c --- /dev/null +++ b/home/fuwn/cli/meta/git/default.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + gh + onefetch + gitoxide + ]; +} diff --git a/home/fuwn/cli/meta/irc/default.nix b/home/fuwn/cli/meta/irc/default.nix new file mode 100644 index 0000000..adde57d --- /dev/null +++ b/home/fuwn/cli/meta/irc/default.nix @@ -0,0 +1,6 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + catgirl + pounce + ]; +} diff --git a/home/fuwn/cli/meta/scripting/charmbracelet/default.nix b/home/fuwn/cli/meta/scripting/charmbracelet/default.nix new file mode 100644 index 0000000..e3b78df --- /dev/null +++ b/home/fuwn/cli/meta/scripting/charmbracelet/default.nix @@ -0,0 +1,6 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + gum + mods + ]; +} diff --git a/home/fuwn/cli/meta/scripting/default.nix b/home/fuwn/cli/meta/scripting/default.nix new file mode 100644 index 0000000..fb6e062 --- /dev/null +++ b/home/fuwn/cli/meta/scripting/default.nix @@ -0,0 +1,11 @@ +{ pkgs, ... }: { + imports = [ + ./charmbracelet + ./ripgrep + ]; + + home.packages = with pkgs; [ + moreutils + pup + ]; +} diff --git a/home/fuwn/cli/meta/scripting/ripgrep/default.nix b/home/fuwn/cli/meta/scripting/ripgrep/default.nix new file mode 100644 index 0000000..00de07f --- /dev/null +++ b/home/fuwn/cli/meta/scripting/ripgrep/default.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: { + programs.ripgrep.enable = true; + + home.packages = with pkgs; [ + ripgrep-all + ]; +} diff --git a/home/fuwn/cli/meta/shell/default.nix b/home/fuwn/cli/meta/shell/default.nix new file mode 100644 index 0000000..0d60ba0 --- /dev/null +++ b/home/fuwn/cli/meta/shell/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + shellclear + ]; +} diff --git a/home/fuwn/cli/meta/smolnet/bollux/default.nix b/home/fuwn/cli/meta/smolnet/bollux/default.nix new file mode 100644 index 0000000..2079052 --- /dev/null +++ b/home/fuwn/cli/meta/smolnet/bollux/default.nix @@ -0,0 +1,67 @@ +{ pkgs, lib, ... }: +let + bollux = + pkgs.stdenvNoCC.mkDerivation rec { + pname = "bollux"; + version = "0.4.1"; + + nativeBuildInputs = [ + pkgs.makeWrapper + ]; + + buildInputs = [ + pkgs.bashInteractive + ]; + + dontBuild = true; + + makeFlags = [ + "PREFIX=$(out)" + ]; + + src = pkgs.fetchFromGitea { + domain = "tildegit.org"; + owner = "acdw"; + repo = "bollux"; + rev = "f472e60f1164f0dc025d06db2a13ff4e8ebee1a2"; + hash = "sha256-mo2qWCPfW+dUaYcJLsos/vR5nJ8n1eABy8Zy8OZsfVg="; + }; + + runtimeDependencies = [ + pkgs.bashInteractive + pkgs.iconv + pkgs.openssl + pkgs.less + pkgs.coreutils + ]; + + patches = [ + # https://tildegit.org/acdw/bollux/issues/13#issuecomment-9786 + ./fix_lesskey_nag.patch + ]; + + postInstall = '' + wrapProgram $out/bin/bollux --prefix PATH : ${lib.makeBinPath runtimeDependencies} + ''; + + meta = with lib; { + description = "a Gemini browser in like, idk, 96% pure Bash"; + homepage = "https://tildegit.org/acdw/bollux"; + license = licenses.mit; + platforms = platforms.all; + mainProgram = "bollux"; + }; + }; +in +{ + home.packages = [ + # I'll update this later and move the above derivation to its own package + # once I push my entire NixOS system configuration. + # (pkgs.callPackage /path/to/pkgs/bollux.nix { + # src = bollux; + # }) + bollux + ]; + + xdg.configFile."bollux/bollux.conf".text = ''''; +} diff --git a/home/fuwn/cli/meta/smolnet/bollux/fix_lesskey_nag.patch b/home/fuwn/cli/meta/smolnet/bollux/fix_lesskey_nag.patch new file mode 100644 index 0000000..329b886 --- /dev/null +++ b/home/fuwn/cli/meta/smolnet/bollux/fix_lesskey_nag.patch @@ -0,0 +1,13 @@ +diff --git i/bollux w/bollux +index 267418e..090217e 100755 +--- i/bollux ++++ w/bollux +@@ -1130,7 +1130,7 @@ display() { # display METADATA [TITLE] + # text, and pre-formatted text shouldn't wrap. + less_cmd+=(-S) + # Load the keybindings (see `lesskey'). +- mklesskey && less_cmd+=(-k "$BOLLUX_LESSKEY") ++ mklesskey && less_cmd+=(--lesskey-src="$BOLLUX_LESSKEY") + local helpline="${KEY_OPEN}:open, " + helpline+="${KEY_GOTO}/" + helpline+="${KEY_GOTO_FROM}:goto, " diff --git a/home/fuwn/cli/meta/smolnet/default.nix b/home/fuwn/cli/meta/smolnet/default.nix new file mode 100644 index 0000000..8cb44a6 --- /dev/null +++ b/home/fuwn/cli/meta/smolnet/default.nix @@ -0,0 +1,11 @@ +{ pkgs, ... }: { + imports = [ + ./bollux + ]; + + home.packages = with pkgs; [ + amfora + gmni + phetch + ]; +} diff --git a/home/fuwn/cli/navi/default.nix b/home/fuwn/cli/navi/default.nix new file mode 100644 index 0000000..5b462b5 --- /dev/null +++ b/home/fuwn/cli/navi/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + navi + ]; +} diff --git a/home/fuwn/cli/ncdu/default.nix b/home/fuwn/cli/ncdu/default.nix new file mode 100644 index 0000000..1c0bfca --- /dev/null +++ b/home/fuwn/cli/ncdu/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + ncdu + ]; +} diff --git a/home/fuwn/cli/nethogs/default.nix b/home/fuwn/cli/nethogs/default.nix new file mode 100644 index 0000000..7934eb8 --- /dev/null +++ b/home/fuwn/cli/nethogs/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + nethogs + ]; +} diff --git a/home/fuwn/cli/nnn/default.nix b/home/fuwn/cli/nnn/default.nix new file mode 100644 index 0000000..06fa7c9 --- /dev/null +++ b/home/fuwn/cli/nnn/default.nix @@ -0,0 +1,3 @@ +{ pkgs, ... }: { + programs.nnn.enable = true; +} diff --git a/home/fuwn/cli/nvtop/default.nix b/home/fuwn/cli/nvtop/default.nix new file mode 100644 index 0000000..929f5e5 --- /dev/null +++ b/home/fuwn/cli/nvtop/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + nvtopPackages.nvidia + ]; +} diff --git a/home/fuwn/cli/rm-improved/default.nix b/home/fuwn/cli/rm-improved/default.nix new file mode 100644 index 0000000..d4a5fc1 --- /dev/null +++ b/home/fuwn/cli/rm-improved/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + rm-improved + ]; +} diff --git a/home/fuwn/cli/sloc/default.nix b/home/fuwn/cli/sloc/default.nix new file mode 100644 index 0000000..6249b05 --- /dev/null +++ b/home/fuwn/cli/sloc/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + sloc + ]; +} diff --git a/home/fuwn/cli/starship/default.nix b/home/fuwn/cli/starship/default.nix new file mode 100644 index 0000000..0088038 --- /dev/null +++ b/home/fuwn/cli/starship/default.nix @@ -0,0 +1,305 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + starship + ]; + + programs.starship = { + enable = true; + enableFishIntegration = true; + + # I CBA to update the formatting to match the rest of the expressions, since + # this is a one-off that I tend to import over directly from starship. + settings = { + format = "[term%](bold green) "; + right_format = "$character$all"; + add_newline = false; + + line_break = { + disabled = true; + }; + + character = { + success_symbol = "[i](bold green)"; + error_symbol = "[x](bold red)"; + vimcmd_symbol = "[n](bold green)"; + vimcmd_visual_symbol = "[v](bold green)"; + vimcmd_replace_symbol = "[R](bold green)"; + vimcmd_replace_one_symbol = "[r](bold green)"; + }; + + git_commit = { + tag_symbol = " tag "; + }; + + git_status = { + ahead = ">"; + behind = "<"; + diverged = "<>"; + renamed = "r"; + deleted = "x"; + }; + + aws = { + symbol = "aws "; + }; + + azure = { + symbol = "az "; + }; + + bun = { + symbol = "bun "; + }; + + c = { + symbol = "C "; + }; + + cobol = { + symbol = "cobol "; + }; + + conda = { + symbol = "conda "; + }; + + crystal = { + symbol = "cr "; + }; + + cmake = { + symbol = "cmake "; + }; + + daml = { + symbol = "daml "; + }; + + dart = { + symbol = "dart "; + }; + + deno = { + symbol = "deno "; + }; + + dotnet = { + symbol = ".NET "; + }; + + directory = { + read_only = " ro"; + }; + + docker_context = { + symbol = "docker "; + }; + + elixir = { + symbol = "exs "; + }; + + elm = { + symbol = "elm "; + }; + + fennel = { + symbol = "fnl "; + }; + + fossil_branch = { + symbol = "fossil "; + }; + + gcloud = { + symbol = "gcp "; + }; + + git_branch = { + symbol = "git "; + }; + + golang = { + symbol = "go "; + }; + + gradle = { + symbol = "gradle "; + }; + + guix_shell = { + symbol = "guix "; + }; + + hg_branch = { + symbol = "hg "; + }; + + java = { + symbol = "java "; + }; + + julia = { + symbol = "jl "; + }; + + kotlin = { + symbol = "kt "; + }; + + lua = { + symbol = "lua "; + }; + + nodejs = { + symbol = "nodejs "; + }; + + memory_usage = { + symbol = "memory "; + }; + + meson = { + symbol = "meson "; + }; + + nim = { + symbol = "nim "; + }; + + nix_shell = { + symbol = "nix "; + }; + + ocaml = { + symbol = "ml "; + }; + + opa = { + symbol = "opa "; + }; + + os = { + symbols = { + Alpaquita = "alq "; + Alpine = "alp "; + Amazon = "amz "; + Android = "andr "; + Arch = "rch "; + Artix = "atx "; + CentOS = "cent "; + Debian = "deb "; + DragonFly = "dfbsd "; + Emscripten = "emsc "; + EndeavourOS = "ndev "; + Fedora = "fed "; + FreeBSD = "fbsd "; + Garuda = "garu "; + Gentoo = "gent "; + HardenedBSD = "hbsd "; + Illumos = "lum "; + Linux = "lnx "; + Mabox = "mbox "; + Macos = "mac "; + Manjaro = "mjo "; + Mariner = "mrn "; + MidnightBSD = "mid "; + Mint = "mint "; + NetBSD = "nbsd "; + NixOS = "nix "; + OpenBSD = "obsd "; + OpenCloudOS = "ocos "; + openEuler = "oeul "; + openSUSE = "osuse "; + OracleLinux = "orac "; + Pop = "pop "; + Raspbian = "rasp "; + Redhat = "rhl "; + RedHatEnterprise = "rhel "; + Redox = "redox "; + Solus = "sol "; + SUSE = "suse "; + Ubuntu = "ubnt "; + Unknown = "unk "; + Windows = "win "; + }; + }; + + package = { + symbol = "pkg "; + }; + + perl = { + symbol = "pl "; + }; + + php = { + symbol = "php "; + }; + + pijul_channel = { + symbol = "pijul "; + }; + + pulumi = { + symbol = "pulumi "; + }; + + purescript = { + symbol = "purs "; + }; + + python = { + symbol = "py "; + }; + + raku = { + symbol = "raku "; + }; + + ruby = { + symbol = "rb "; + }; + + rust = { + symbol = "rs "; + }; + + scala = { + symbol = "scala "; + }; + + spack = { + symbol = "spack "; + }; + + solidity = { + symbol = "solidity "; + }; + + status = { + symbol = "[x](bold red) "; + }; + + sudo = { + symbol = "sudo "; + }; + + swift = { + symbol = "swift "; + }; + + typst = { + symbol = "typst "; + }; + + terraform = { + symbol = "terraform "; + }; + + zig = { + symbol = "zig "; + }; + }; + }; +} diff --git a/home/fuwn/cli/tealdeer/default.nix b/home/fuwn/cli/tealdeer/default.nix new file mode 100644 index 0000000..7ee39f1 --- /dev/null +++ b/home/fuwn/cli/tealdeer/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + tealdeer + ]; +} diff --git a/home/fuwn/cli/todo/default.nix b/home/fuwn/cli/todo/default.nix new file mode 100644 index 0000000..f1c841d --- /dev/null +++ b/home/fuwn/cli/todo/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + todo + ]; +} diff --git a/home/fuwn/gui/ahoviewer/default.nix b/home/fuwn/gui/ahoviewer/default.nix new file mode 100644 index 0000000..c6907e1 --- /dev/null +++ b/home/fuwn/gui/ahoviewer/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + ahoviewer + ]; +} diff --git a/home/fuwn/gui/anki/default.nix b/home/fuwn/gui/anki/default.nix new file mode 100644 index 0000000..8e5655c --- /dev/null +++ b/home/fuwn/gui/anki/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + anki-bin + ]; +} diff --git a/home/fuwn/gui/cool-retro-term/default.nix b/home/fuwn/gui/cool-retro-term/default.nix new file mode 100644 index 0000000..e53937b --- /dev/null +++ b/home/fuwn/gui/cool-retro-term/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + cool-retro-term + ]; +} diff --git a/home/fuwn/gui/default.nix b/home/fuwn/gui/default.nix new file mode 100644 index 0000000..a3ec2d2 --- /dev/null +++ b/home/fuwn/gui/default.nix @@ -0,0 +1,11 @@ +_: { + imports = [ + ./ahoviewer + ./anki + ./cool-retro-term + # ./foot + # ./kitty + ./meta + # ./warp + ]; +} diff --git a/home/fuwn/gui/foot/default.nix b/home/fuwn/gui/foot/default.nix new file mode 100644 index 0000000..8945d61 --- /dev/null +++ b/home/fuwn/gui/foot/default.nix @@ -0,0 +1,3 @@ +{ pkgs, ... }: { + programs.foot.enable = true; +} diff --git a/home/fuwn/gui/kitty/default.nix b/home/fuwn/gui/kitty/default.nix new file mode 100644 index 0000000..ed2d7e7 --- /dev/null +++ b/home/fuwn/gui/kitty/default.nix @@ -0,0 +1,3 @@ +{ pkgs, ... }: { + programs.kitty.enable = true; +} diff --git a/home/fuwn/gui/meta/default.nix b/home/fuwn/gui/meta/default.nix new file mode 100644 index 0000000..7959d11 --- /dev/null +++ b/home/fuwn/gui/meta/default.nix @@ -0,0 +1,5 @@ +_: { + imports = [ + ./gemini + ]; +} diff --git a/home/fuwn/gui/meta/gemini/default.nix b/home/fuwn/gui/meta/gemini/default.nix new file mode 100644 index 0000000..a9b32ac --- /dev/null +++ b/home/fuwn/gui/meta/gemini/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + geopard + ]; +} diff --git a/home/fuwn/gui/warp/default.nix b/home/fuwn/gui/warp/default.nix new file mode 100644 index 0000000..de37c40 --- /dev/null +++ b/home/fuwn/gui/warp/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + warp-terminal + ]; +} diff --git a/home/fuwn/home.nix b/home/fuwn/home.nix new file mode 100644 index 0000000..aec2421 --- /dev/null +++ b/home/fuwn/home.nix @@ -0,0 +1,99 @@ +{ config, pkgs, stylix, ... }: +{ + home = { + # Home Manager needs a bit of information about you and the paths it should + # manage. + username = "fuwn"; + homeDirectory = "/home/fuwn"; + + # This value determines the Home Manager release that your configuration is + # compatible with. This helps avoid breakage when a new Home Manager release + # introduces backwards incompatible changes. + # + # You should not change this value, even if you update Home Manager. If you do + # want to update the value, then make sure to first check the Home Manager + # release notes. + stateVersion = "24.05"; # Please read the comment before changing. + + # The home.packages option allows you to install Nix packages into your + # environment. + packages = [ + # # Adds the 'hello' command to your environment. It prints a friendly + # # "Hello, world!" when run. + # pkgs.hello + + # # It is sometimes useful to fine-tune packages, for example, by applying + # # overrides. You can do that directly here, just don't forget the + # # parentheses. Maybe you want to install Nerd Fonts with a limited number of + # # fonts? + # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) + + # # You can also create simple shell scripts directly inside your + # # configuration. For example, this adds a command 'my-hello' to your + # # environment: + # (pkgs.writeShellScriptBin "my-hello" '' + # echo "Hello, \${config.home.username}!" + # '') + ]; + + # Home Manager is pretty good at managing dotfiles. The primary way to manage + # plain files is through 'home.file'. + file = { + # # Building this configuration will create a copy of 'dotfiles/screenrc' in + # # the Nix store. Activating the configuration will then make '~/.screenrc' a + # # symlink to the Nix store copy. + # ".screenrc".source = dotfiles/screenrc; + + # # You can also set the file content immediately. + # ".gradle/gradle.properties".text = '' + # org.gradle.console=verbose + # org.gradle.daemon.idletimeout=3600000 + # ''; + }; + + # Home Manager can also manage your environment variables through + # 'home.sessionVariables'. These will be explicitly sourced when using a + # shell provided by Home Manager. If you don't want to manage your shell + # through Home Manager then you have to manually source 'hm-session-vars.sh' + # located at either + # + # ~/.nix-profile/etc/profile.d/hm-session-vars.sh + # + # or + # + # ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh + # + # or + # + # /etc/profiles/per-user/$USER/etc/profile.d/hm-session-vars.sh + # + sessionVariables = { + # EDITOR = "emacs"; + }; + + # sessionPath = [ + # "$HOME/.local/bin" + # ]; + }; + + # Let Home Manager install and manage itself. + programs.home-manager.enable = true; + + imports = [ + ./cli + ./gui + ./meta + ]; + + nixpkgs = { + config = { + allowUnfree = true; + # allowBroken = true; + }; + }; + + stylix = { + enable = false; + image = ./wallpaper.png; + }; +} diff --git a/home/fuwn/meta/audio/default.nix b/home/fuwn/meta/audio/default.nix new file mode 100644 index 0000000..8768f34 --- /dev/null +++ b/home/fuwn/meta/audio/default.nix @@ -0,0 +1,6 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + blueberry + pavucontrol + ]; +} diff --git a/home/fuwn/meta/bitwarden/default.nix b/home/fuwn/meta/bitwarden/default.nix new file mode 100644 index 0000000..2ac188f --- /dev/null +++ b/home/fuwn/meta/bitwarden/default.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + bitwarden-desktop + # bitwarden-cli + # bitwarden-menu + ]; +} diff --git a/home/fuwn/meta/calculator/default.nix b/home/fuwn/meta/calculator/default.nix new file mode 100644 index 0000000..a8bcc7f --- /dev/null +++ b/home/fuwn/meta/calculator/default.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + gavin-bc + qalculate-gtk + programmer-calculator + ]; +} diff --git a/home/fuwn/meta/default.nix b/home/fuwn/meta/default.nix new file mode 100644 index 0000000..6d6bf65 --- /dev/null +++ b/home/fuwn/meta/default.nix @@ -0,0 +1,14 @@ +_: { + imports = [ + ./audio + ./bitwarden + ./calculator + ./desktop + ./imagery + ./language + ./rice + ./spotify + ./steam + ./tools + ]; +} diff --git a/home/fuwn/meta/desktop/default.nix b/home/fuwn/meta/desktop/default.nix new file mode 100644 index 0000000..36de93a --- /dev/null +++ b/home/fuwn/meta/desktop/default.nix @@ -0,0 +1 @@ +_: { imports = [ ./wayland ]; } diff --git a/home/fuwn/meta/desktop/wayland/default.nix b/home/fuwn/meta/desktop/wayland/default.nix new file mode 100644 index 0000000..89f1bf0 --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/default.nix @@ -0,0 +1,7 @@ +_: { + imports = [ + ./hyprland + ./meta + ./waybar + ]; +} diff --git a/home/fuwn/meta/desktop/wayland/hyprland/default.nix b/home/fuwn/meta/desktop/wayland/hyprland/default.nix new file mode 100644 index 0000000..d371cb0 --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/hyprland/default.nix @@ -0,0 +1,21 @@ +{ pkgs, ... }: { + imports = [ + ./hypridle + ./hyprland + ]; + + wayland.windowManager.hyprland = { + enable = true; + package = pkgs.hyprland; + + xwayland = { + enable = true; + }; + + systemd = { + enable = true; + + variables = [ "--all" ]; + }; + }; +} diff --git a/home/fuwn/meta/desktop/wayland/hyprland/hypridle/default.nix b/home/fuwn/meta/desktop/wayland/hyprland/hypridle/default.nix new file mode 100644 index 0000000..03d670c --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/hyprland/hypridle/default.nix @@ -0,0 +1,34 @@ +{ pkgs, ... }: { + services.hypridle = { + enable = true; + + settings = { + "$lock_command" = "pidof hyprlock || hyprlock"; + # $suspend_command = pidof steam || systemctl suspend || loginctl suspend + + general = { + lock_cmd = "$lock_command"; + # before_sleep_cmd = $suspend_command + before_sleep_cmd = "playerctl pause"; + ignore_dbus_inhibit = false; + ignore_systemd_inhibit = false; + }; + + listener = [ + { + timeout = 180; # 3 minutes + on-timeout = "$lock_command"; + } + { + timeout = 240; # 4 minutes + on-timeout = "hyprctl dispatch dpms off"; + on-resume = "hyprctl dispatch dpms on"; + } + # { + # timeout = 540; # 9 minutes + # on-timeout = "$suspend_cmd"; + # } + ]; + }; + }; +} diff --git a/home/fuwn/meta/desktop/wayland/hyprland/hyprland/animations.nix b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/animations.nix new file mode 100644 index 0000000..c47c164 --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/animations.nix @@ -0,0 +1,86 @@ +_: { + wayland.windowManager.hyprland = { + extraConfig = '' + # animations { + # enabled = yes + + # # bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + + # # animation = windows, 1, 5, myBezier + # # animation = windowsOut, 1, 7, default, popin + # # animation = border, 1, 10, default + # # animation = fade, 1, 7, default + # # animation = workspaces, 1, 6, default, slidevert + + # # bezier = overshot,0.5,0.1,0.4,1.2 + + # # animation = global, 1, 3, default + # # animation = workspaces, 1, 4, default + # # animation = windowsMove, 1, 2, default + # # animation = fade, 1, 2, default + + # bezier = overshot, 0.05, 0.5, 0.1, 1.05 + # bezier = smoothOut, 0.36, 0, 0.66, -0.56 + # bezier = smoothIn, 0.25, 0.8, 0.5, 1 + + # animation = windows, 1, 5, overshot, slide + # animation = windowsOut, 1, 4, smoothOut, slide + # animation = windowsMove, 1, 4, default + # animation = border, 1, 10, default + # animation = fade, 1, 10, smoothIn + # animation = fadeDim, 1, 10, smoothIn + # animation = workspaces, 1, 6, default + # } + + bezier = smoothIn, 0.25, 1, 0.5, 1 + bezier = wind, 0.05, 0.9, 0.1, 1.06 + bezier = winIn, 0.1, 1.1, 0.1, 1.05 + bezier = linear, 1, 1, 1, 1 + + animations { + enabled = yes + + # buttery_smoooooooth... (slide) + # animation = windows, 1, 5, default, slide + # animation = windowsOut, 1, 8, smoothIn, slide + # animation = windowsMove, 1, 7, default + # animation = fade, 1, 5, smoothIn + # animation = fadeOut, 1, 4, smoothIn + # animation = fadeDim, 1, 3, smoothIn + # animation = workspaces, 1, 5, default, slidefadevert + # animation = specialWorkspace, 1, 5, default, fade + + # buttery_smoooooooth... (Popin...) + # animation = windows, 1, 3, default, popin 70% + # animation = windowsOut, 1, 20, default, popin 85% + # animation = windowsMove, 1, 7, default + # animation = fade, 1, 6, smoothIn + # animation = fadeOut, 1, 3, smoothIn + # animation = fadeDim, 1, 3, smoothIn + # animation = workspaces, 1, 5, wind, slidefadevert 40% + + # fasssstt popin + animation = windows, 1, 2, default, popin 80% + animation = windowsOut, 1, 5, default, popin 90% + animation = windowsMove, 1, 5, default + animation = layers, 1, 3, default, popin 90% + animation = fade, 1, 4, smoothIn + animation = fadeOut, 1, 2, smoothIn + animation = fadeDim, 1, 3, smoothIn + animation = workspaces, 1, 3, default, slidefadevert 15% + animation = specialWorkspace, 1, 3, default, slidefadevert 15% + + # Random... + # animation = windows, 1, 5, wind, slide + # animation = windowsIn, 1, 4, winIn, slide + # animation = windowsOut, 1 , 7, smoothIn, slide + # animation = windowsMove, 1, 6, default + # animation = fade, 1, 5, smoothIn + # animation = fadeOut, 1, 3, smoothIn + # animation = fadeDim, 1, 3, smoothIn + # animation = workspaces, 1, 4, wind, slidefadevert 15% + # animation = specialWorkspace, 1, 3, default, slidefadevert 15% + } + ''; + }; +} diff --git a/home/fuwn/meta/desktop/wayland/hyprland/hyprland/binds.nix b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/binds.nix new file mode 100644 index 0000000..5312b93 --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/binds.nix @@ -0,0 +1,209 @@ +_: { + wayland.windowManager.hyprland = { + settings = { + "$mod" = "SUPER"; + "$mail" = "mailspring --password-store=\"gnome-libsecret\" --enable-features=UseOzonePlatform --ozone-platform=wayland"; + "$script_path" = "$HOME/.config/hypr/hyprland/scripts"; + "$term" = "kitty"; + + bind = ( + builtins.concatLists + (builtins.genList + ( + x: + let + ws = + let + c = (x + 1) / 10; + in + builtins.toString (x + 1 - (c * 10)); + in + [ + # Switch pseudo-tag (workspaces) + "$mod, ${ws}, exec, $script_path/switch_workspace ${toString (x + 1)}" + # "$mod, ${ws}, split-workspace, ${toString (x + 1)}" + + # Move window to pseudo-tag (workspace) + "$mod SHIFT, ${ws}, exec, $script_path/move_window_to_workspace ${toString (x + 1)}" + # "$mod SHIFT, ${ws}, split-movetoworkspacesilent, ${toString (x + 1)}" + ] + ) + 10) + ++ + [ + # Scratchpads + "$mod, apostrophe, exec, hyprctl dispatch togglespecialworkspace simple_calculator" + "$mod SHIFT, RETURN, exec, hyprctl dispatch togglespecialworkspace simple_terminal" + "$mod SHIFT, c, exec, hyprctl dispatch togglespecialworkspace chatgpt" + "$mod SHIFT, s, exec, hyprctl dispatch togglespecialworkspace spotify" + "$mod SHIFT, apostrophe, exec, hyprctl dispatch togglespecialworkspace calculator" + + # Focus + "$mod, k, movefocus, u" + "$mod, j, movefocus, d" + "$mod, l, movefocus, r" + "$mod, h, movefocus, l" + + # "$mod, j, layoutmsg, cyclenext" + # "$mod, j, layoutmsg, cycleprev" + + "$mod, tab, hycov:toggleoverview" + "$mod SHIFT, tab, overview:toggle" + + # Emoji picker + "$mod, GRAVE, exec, rofi -modi emoji -show emoji" + + # Volume control + "$mod, MINUS, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" + "$mod SHIFT, MINUS, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 15%-" + "$mod, EQUAL, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+" + "$mod SHIFT, EQUAL, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 15%+" + + # Session control + "$mod SHIFT, Q, exec, wlogout" + "$mod SHIFT, R, exec, hyprctl reload" + + # Window control + "$mod, F, fullscreen" + # "$mod SHIFT, F, fullscreen, 2" + "$mod SHIFT, F, exec, hyprctl dispatch fakefullscreen && $script_path/fake_fullscreen_status" + "$mod, G, togglefloating" + "$mod, P, pseudo" + "$mod SHIFT, P, pin" + "$mod, T, togglesplit" + "$mod, U, focusurgentorlast" + "$mod, Q, killactive" + "$mod, S, exec, hyprctl keyword window:sticky 1" + "$mod, b, exec, pkill -SIGUSR1 waybar" + "$mod, SPACE, layoutmsg, swapwithmaster" + "$mod, V, exec, $script_path/toggle_layout" + + # Application binds + "$mod, W, exec, $BROWSER" + "$mod SHIFT, W, exec, $term -e sudo nmtui" + "$mod, E, exec, $mail" + "$mod SHIFT, R, exec, $term -e htop" + "$mod, R, exec, rofi -show run" + "$mod SHIFT, D, exec, bitwarden-desktop" + "$mod, RETURN, exec, $term" + "$mod SHIFT, N, exec, $BROWSER https://sumi.news" + "$mod, M, exec, spotify" + "$mod SHIFT, M, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" + "$mod ALT, A, exec, hyprpicker -a" + + # Launchers + "$mod, D, exec, rofi -show combi" + "$mod, C, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy" + + # Spotify control + "$mod, P, exec, spt pb --toggle" + "$mod SHIFT, P, exec, mpc pause; pauseallmpv" + "$mod, BRACKETLEFT, exec, spt pb --seek -10" + "$mod SHIFT, BRACKETLEFT, exec, spt pb --seek -60" + "$mod, BRACKETRIGHT, exec, spt pb --seek +10" + "$mod SHIFT, BRACKETRIGHT, exec, spt pb --seek +60" + "$mod, COMMA, exec, spt pb --pp" + "$mod, PERIOD, exec, spt pb --next" + "$mod SHIFT, PERIOD, exec, spt pb --previous" + + # Gaps control + "$mod, a, exec, $script_path/toggle_gaps" + "$mod SHIFT, a, exec, bash -c 'hyprctl keyword general:gaps_in 5; hyprctl keyword general:gaps_out 10'" + + # Increment gaps + "$mod, mouse_up, exec, hyprctl keyword general:gaps_out `expr $(hyprctl getoption general:gaps_out | awk '{ print $3 }') + 3`" + "$mod, mouse_up, exec, hyprctl keyword general:gaps_in `expr $(hyprctl getoption general:gaps_in | awk '{ print $3 }') + 2`" + + # Decrement gaps + "$mod, mouse_down, exec, hyprctl keyword general:gaps_out `expr $(hyprctl getoption general:gaps_out | awk '{ print $3 }') - 3`" + "$mod, mouse_down, exec, hyprctl keyword general:gaps_in `expr $(hyprctl getoption general:gaps_in | awk '{ print $3 }') - 2`" + + # Move focus to monitor + "$mod, LEFT, exec, $script_path/move_focus_to_monitor left" + "$mod, RIGHT, exec, $script_path/move_focus_to_monitor right" + + # Move window to monitor + "$mod SHIFT, h, exec, $script_path/move_window_to_monitor left" + "$mod SHIFT, l, exec, $script_path/move_window_to_monitor right" + + # Screenshot + ", Print, exec, screenshot --area" + "$mod SHIFT, Print, exec, screenshot --window" + "$mod CTRL, Print, exec, screenshot --monitor" + "$mod, Print, exec, screenshot --now" + "$mod SHIFT, v, exec, screenshot --now --clipboard && pypr toggle spgpt && ydotool key 42:1 1:1 1:0 42:0 29:1 47:1 29:0 47:0" + + # Media keys + # ... + ] + ); + + binde = ( + [ + # Increment gaps + "$mod, Z, exec, hyprctl --batch \"keyword general:gaps_out `expr $(hyprctl getoption general:gaps_out | awk '{ print $3 }') + 3`; keyword general:gaps_in `expr $(hyprctl getoption general:gaps_in | awk '{ print $3 }') + 2`\"" + + # Decrement gaps + "$mod, X, exec, hyprctl --batch \"keyword general:gaps_out `expr $(hyprctl getoption general:gaps_out | awk '{ print $3 }') - 3`; keyword general:gaps_in `expr $(hyprctl getoption general:gaps_in | awk '{ print $3 }') - 2`\"" + + # Resize active window + "$mod SHIFT, UP, resizeactive, 0 -50" + "$mod SHIFT, DOWN, resizeactive, 0 50" + "$mod SHIFT, RIGHT, resizeactive, 50 0" + "$mod SHIFT, LEFT, resizeactive, -50 0" + + # Move active window + "$mod ALT, k, moveactive, 0 -100" + "$mod ALT, j, moveactive, 0 100" + "$mod ALT, l, moveactive, 100 0" + "$mod ALT, h, moveactive, -100 0" + ] + ); + + bindm = ( + [ + # Move window with mouse + "$mod, mouse:272, movewindow" + "$mod, mouse:273, resizewindow" + "$mod SHIFT, mouse:273, resizewindow 1" + ] + ); + }; + + extraConfig = '' + # Media keys + bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle + bind = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0%- && wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ + bind = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0%+ && wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- + bind = , XF86AudioPrev, exec, playerctl previous + bind = , XF86AudioNext, exec, playerctl next + bind = , XF86AudioPause, exec, playerctl play-pause + bind = , XF86AudioPlay, exec, playerctl play-pause + bind = , XF86AudioStop, exec, playerctl stop + bind = , XF86AudioRewind, exec, playerctl position -10 + bind = , XF86AudioForward, exec, playerctl position +10 + bind = , XF86AudioMedia, exec, spotify + bind = , XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle + + # Other media keys + bind = , XF86Calculator, exec, $term -e bc -l + bind = , XF86Sleep, exec, sudo -A zzz + bind = , XF86WWW, exec, $BROWSER + bind = , XF86DOS, exec, $term + bind = , XF86ScreenSaver, exec, pidof hyprlock || hyprlock && hyprctl dispatch dpms off + bind = , XF86TaskPane, exec, $term -e htop + bind = , XF86Mail, exec, $mail + bind = , XF86MyComputer, exec, $term -e ranger + bind = , XF86Launch1, exec, hyprctl dispatch dpms off + + # Touchpad control + bind = , XF86TouchpadToggle, exec, (synclient | grep 'TouchpadOff.*1' && synclient TouchpadOff=0) || synclient TouchpadOff=1 + bind = , XF86TouchpadOff, exec, synclient TouchpadOff=1 + bind = , XF86TouchpadOn, exec, synclient TouchpadOff=0 + + # Brightness control + bind = , XF86MonBrightnessUp, exec, xbacklight -inc 15 + bind = , XF86MonBrightnessDown, exec, xbacklight -dec 15 + ''; + }; +} diff --git a/home/fuwn/meta/desktop/wayland/hyprland/hyprland/decoration.nix b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/decoration.nix new file mode 100644 index 0000000..feb9145 --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/decoration.nix @@ -0,0 +1,43 @@ +_: { + wayland.windowManager.hyprland.settings.decoration = { + rounding = 10; + drop_shadow = true; + shadow_ignore_window = true; + shadow_range = 8; + shadow_render_power = 10; + shadow_offset = "2 2"; + "col.shadow" = "rgba(00000055)"; # 2A + + blurls = [ + "gtk-layer-shell" + "lockscreen" + ]; + + # active_opacity = 0.9 + # inactive_opacity = 0.7 + # fullscreen_opacity = 1.0 + active_opacity = 1.0; + inactive_opacity = 0.95; + + blur = { + enabled = true; + xray = true; + special = false; + # size = 1; + passes = 2; + ignore_opacity = true; + new_optimizations = true; + # vibrancy = 0.1696; + # noise = 0.01; + brightness = 1; + contrast = 1; + + popups = true; + popups_ignorealpha = 0.6; + }; + + dim_special = 0.35; + dim_inactive = false; + dim_strength = 0.1; + }; +} diff --git a/home/fuwn/meta/desktop/wayland/hyprland/hyprland/default.nix b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/default.nix new file mode 100644 index 0000000..e2538fd --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/default.nix @@ -0,0 +1,43 @@ +_: { + imports = [ + ./animations.nix + ./binds.nix + ./decoration.nix + ./environment.nix + ./executions.nix + ./general.nix + ./plugins.nix + ./rules.nix + ./workspaces.nix + ]; + + xdg.configFile = ( + let + scripts = [ + "common.sh" + "fake_fullscreen_status" + "hycov_easymotion" + "initialise_gtk" + "initialise_waybar" + "initialise_xdg_portal" + "move_focus_to_monitor" + "move_window_to_monitor" + "move_window_to_workspace" + "switch_workspace" + "toggle_gaps" + "toggle_layout" + ]; + in + ( + builtins.listToAttrs (map + (script: { + name = "hypr/hyprland/scripts/${script}"; + + value = { + source = ./scripts/${script}; + }; + }) + scripts) + ) + ); +} diff --git a/home/fuwn/meta/desktop/wayland/hyprland/hyprland/environment.nix b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/environment.nix new file mode 100644 index 0000000..81046ff --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/environment.nix @@ -0,0 +1,80 @@ +_: +let cursorSize = "18"; in +{ + wayland.windowManager.hyprland.settings.env = [ + # Proton + "PROTON_ENABLE_NGX_UPDATER, 1" + + # Cursor + "XCURSOR_SIZE, ${cursorSize}" + "HYPRCURSOR_SIZE, ${cursorSize}" + "HYPERCURSOR_THEME, Bibata-Modern-Ice" # WhiteSur-cursors + "XCURSOR_THEME, Bibata-Modern-Ice" + + # Wayland & Xwayland + "GDK_BACKEND, wayland,x11,*" + "SDL_VIDEODRIVER, wayland" + "CLUTTER_BACKEND, wayland" + "XWAYLAND_NO_GLAMOR, 1" # Gamescope + + # Nvidia + "LIBVA_DRIVER_NAME, nvidia" + "GBM_BACKEND, nvidia-drm" + "__GLX_VENDOR_LIBRARY_NAME, nvidia" + "__VK_LAYER_NV_optimus, NVIDIA_only" + "__NV_PRIME_RENDER_OFFLOAD, 1" + "NVD_BACKEND, direct" + + # OpenGL + "__GL_GSYNC_ALLOWED, 1" + "__GL_VRR_ALLOWED, 1" + "__GL_MaxFramesAllowed, 1" + + # Electron + # "ELECTRON_OZONE_PLATFORM_HINT, auto" + "OZONE_PLATFORM, wayland" + + # Qt + "QT_AUTO_SCREEN_SCALE_FACTOR, 1" + "QT_QPA_PLATFORM, wayland;xcb" + "QT_WAYLAND_DISABLE_WINDOWDECORATION, 1" + "QT_QPA_PLATFORMTHEME, qt5ct" + # "QT_STYLE_OVERRIDE, kvantum" + + # wlroots + "WLR_NO_HARDWARE_CURSORS, 1" + "WLR_DRM_NO_ATOMIC, 1" + "WLR_USE_LIBINPUT, 1" + "WLR_RENDERER_ALLOW_SOFTWARE, 1" + "WLR_DRM_DEVICES, /dev/dri/card0" + # "WLR_EGL_NO_MODIFIERS, 1" + + # XDG + "XDG_SESSION_TYPE, wayland" + "XDG_CURRENT_DESKTOP, Hyprland" + "XDG_SESSION_DESKTOP, Hyprland" + + # Mozilla + "MOZ_ENABLE_WAYLAND, 1" + "MOZ_DISABLE_RDD_SANDBOX, 1" + + # Fcitx + # https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland + "QT_IM_MODULE, fcitx" + "XMODIFIERS, @im=fcitx" + # "GTK_IM_MODULE, wayland" + # "GTK_IM_MODULE, fcitx" + "SDL_IM_MODULE, fcitx" + "GLFW_IM_MODULE, ibus" + "INPUT_METHOD, fcitx" + + # GTK + "GTK_USE_PORTAL, 1" + + # Java + "_JAVA_AWT_WM_NONREPARENTING, 1" + + # SSH + # "SSH_AUTH_SOCK, $XDG_RUNTIME_DIR/ssh-agent.socket" + ]; +} diff --git a/home/fuwn/meta/desktop/wayland/hyprland/hyprland/executions.nix b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/executions.nix new file mode 100644 index 0000000..2ff364f --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/executions.nix @@ -0,0 +1,55 @@ +{ pkgs, ... }: { + wayland.windowManager.hyprland.settings = { + exec-once = ([ + # One-shots + "hyprctl dispatch workspace 1" + "swww-daemon" + "gammastep -l 45.540750:-122.385330 >/dev/null" + "${pkgs.pyprland}/bin/pypr" + "hyprpm reload" + "swaddle" + # "${pkgs.waybar}/bin/waybar" + "waybar" + "hyprctl setcursor Bibata-Modern-Ice 18" + + # Fcitx5 + "fcitx5-remote -r" + "fcitx5 -d --replace" + "fcitx5-remote -r" + + # GTK + "$script_path/initialise_gtk" + + # KWallet + # "pam_kwallet_init" + # "kwalletd6" + + # GNOME/Keyring + "gnome-keyring-daemon --replace --components=pkcs11,secrets,ssh,gpg" + "/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 || /usr/libexec/polkit-gnome-authentication-agent-1" + + # XDG, XDPH, & Qt + "dbus-update-activation-environment --systemd --all" + "dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP" + "systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP" + "systemctl --user import-environment QT_QPA_PLATFORMTHEME" + "$script_path/initialise_xdg_portal" + + # Clipboard + "wl-paste --type text --watch cliphist store" + "wl-paste --type image --watch cliphist store" + + # JamesDSP & Solaar + "jamesdsp -t" + # "solaar -w hide" + + # SSH + # "killall -q ssh-agent" + # "eval $(ssh-agent -c)" + # "set -Ux SSH_AUTH_SOCK $SSH_AUTH_SOCK" + # "set -Ux SSH_AGENT_PID $SSH_AGENT_PID" + # "set -Ux SSH_AUTH_SOCK $SSH_AUTH_SOCK" + # "export SSH_AUTH_SOCK=\"$XDG_RUNTIME_DIR/ssh-agent.socket\"" + ]); + }; +} diff --git a/home/fuwn/meta/desktop/wayland/hyprland/hyprland/general.nix b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/general.nix new file mode 100644 index 0000000..e0821d5 --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/general.nix @@ -0,0 +1,119 @@ +_: { + wayland.windowManager.hyprland = { + settings = { + monitor = [ + "HDMI-A-2, 1920x1080@74.97, 0x0, 1" + "DP-2, 1920x1080@280.00, 1920x0, 1" + "DP-1, 1920x1080@144.00, 3840x0, 1" + ]; + + source = "/home/fuwn/.cache/wal/colors-hyprland"; + + general = { + gaps_in = 5; + gaps_out = 10; + border_size = 0; + layout = "master"; + allow_tearing = true; + resize_on_border = true; + no_focus_fallback = true; + }; + + input = { + kb_layout = "us"; + # kb_variant = + # kb_model = + # kb_options = + # kb_rules = + repeat_rate = 35; # 50 + repeat_delay = 250; # 200 + follow_mouse = 1; + special_fallthrough = true; + + touchpad = { + natural_scroll = true; + disable_while_typing = true; + clickfinger_behavior = true; + scroll_factor = 0.15; + tap-to-click = true; + middle_button_emulation = true; + }; + + sensitivity = -0.5; + accel_profile = "flat"; + scroll_factor = 1.0; + # natural_scroll = false; + }; + + binds = { + allow_workspace_cycles = true; + scroll_event_delay = 0; + workspace_back_and_forth = true; + }; + + dwindle = { + pseudotile = true; + preserve_split = true; + force_split = 2; + smart_split = false; + smart_resizing = false; + no_gaps_when_only = 0; + special_scale_factor = 0.98; + }; + + master = { + allow_small_split = true; + new_is_master = false; + mfact = 0.55; + # no_gaps_when_only = yes; + orientation = "left"; + inherit_fullscreen = false; + }; + + gestures = { + workspace_swipe = true; + workspace_swipe_distance = 700; + workspace_swipe_fingers = 4; + workspace_swipe_cancel_ratio = 0.2; + workspace_swipe_min_speed_to_force = 5; + workspace_swipe_direction_lock = true; + workspace_swipe_direction_lock_threshold = 10; + workspace_swipe_create_new = true; + }; + + misc = { + vrr = false; + vfr = false; + enable_swallow = true; + swallow_regex = "^(kitty|footclient|foot|Alacritty|wezterm)$"; + disable_hyprland_logo = true; + disable_splash_rendering = true; + force_default_wallpaper = 0; + mouse_move_enables_dpms = true; + # key_press_enables_dpms = true; + # focus_on_activate = true; + animate_manual_resizes = true; + # animate_mouse_windowdragging = false; + mouse_move_focuses_monitor = true; + # new_window_takes_over_fullscreen = 2; + allow_session_lock_restore = true; + initial_workspace_tracking = false; + }; + + cursor = { + hide_on_key_press = true; + enable_hyprcursor = true; + }; + + xwayland = { + force_zero_scaling = true; + }; + + debug = { + watchdog_timeout = 0; + disable_logs = false; + damage_blink = false; + }; + }; + }; +} diff --git a/home/fuwn/meta/desktop/wayland/hyprland/hyprland/plugins.nix b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/plugins.nix new file mode 100644 index 0000000..61d73e3 --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/plugins.nix @@ -0,0 +1,69 @@ +_: { + wayland.windowManager.hyprland.settings.plugin = { + # split-monitor-workspaces = { + # count = 10; + # keep_focused = 0; + # enable_notifications = 0; + # }; + + hyprtrails = { + color = "rgba(cfddf619)"; + }; + + hyprfocus = { + enabled = true; + animate_floating = true; + animate_workspacechange = true; + focus_animation = "flash"; + + bezier = [ + "bezIn, 0.5, 0.0, 1.0, 0.5" + "bezOut, 0.0, 0.5, 0.5, 1.0" + "overshot, 0.05, 0.9, 0.1, 1.05" + "smoothOut, 0.36, 0, 0.66, -0.56" + "smoothIn, 0.25, 1, 0.5, 1" + "realsmooth, 0.28, 0.29, .69, 1.08" + ]; + + flash = { + flash_opacity = 0.85; + in_bezier = "realsmooth"; + in_speed = 0.5; + out_bezier = "realsmooth"; + out_speed = 3; + }; + + shrink = { + shrink_percentage = 0.99; + in_bezier = "realsmooth"; + in_speed = 1; + out_bezier = "realsmooth"; + out_speed = 2; + }; + }; + + hycov = { + overview_gappo = 10; # gaps width from screen edge + overview_gappi = 10; # gaps width from clients + enable_hotarea = 0; # enable mouse cursor hotarea, when cursor enter hotarea, it will toggle overview + enable_click_action = 1; # enable mouse left button jump and right button kill in overview mode + hotarea_monitor = "all"; # monitor name which hotarea is in, default is all + hotarea_pos = 1; # position of hotarea (1: bottom left, 2: bottom right, 3: top left, 4: top right) + hotarea_size = 10; # hotarea size, 10x10 + swipe_fingers = 4; # finger number of gesture,move any directory + move_focus_distance = 100; # distance for movefocus,only can use 3 finger to move + enable_gesture = 0; # enable gesture + auto_exit = 1; # enable auto exit when no client in overview + auto_fullscreen = 0; # auto make active window maximize after exit overview + only_active_workspace = 0; # only overview the active workspace + only_active_monitor = 0; # only overview the active monitor + enable_alt_release_exit = 1; # alt swith mode arg,see readme for detail + alt_replace_key = "Super_L"; # alt swith mode arg,see readme for detail + alt_toggle_auto_next = 0; # auto focus next window when toggle overview in alt swith mode + click_in_cursor = 1; # when click to jump,the target windwo is find by cursor, not the current foucus window. + height_of_titlebar = 0; # height deviation of title bar height + show_special = 0; # show windwos in special workspace in overview. + raise_float_to_top = 1; # raise the window that is floating before to top after leave overview mode + }; + }; +} diff --git a/home/fuwn/meta/desktop/wayland/hyprland/hyprland/rules.nix b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/rules.nix new file mode 100644 index 0000000..862d8f1 --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/rules.nix @@ -0,0 +1,78 @@ +_: { + wayland.windowManager.hyprland = { + settings = { + # Layer Rules + layerrule = [ + "animation slide, notifications" + "noanim, selection" + "noanim, picker" + ]; + + windowrulev2 = [ + # Dialog Rules + "float, class:file_progress" + "float, class:confirm" + "float, class:dialog" + "float, class:download" + "float, class:notification" + "float, class:error" + "float, class:splash" + "float, class:confirmreset" + "float, title:Open File" + "float, title:branchdialog" + "float, title:^(Open File)(.*)$" + "float, title:^(Select a File)(.*)$" + "float, title:^(Choose wallpaper)(.*)$" + "float, title:^(Open Folder)(.*)$" + "float, title:^(Save As)(.*)$" + "float, title:^(Library)(.*)$" + "float, initialClass:^(xdg-desktop-portal-.*)$" + + # Control Application Rules + "float, class:^(Network)$" + "float, class:^(pavucontrol)$" + "float, class:^(Color Picker)$" + "float, class:^(File Picker)$" + "float, class:^(nm-connection-editor)$" + "float, class:pavucontrol-qt" + "float, class:pavucontrol" + "float, title:^(Media viewer)$" + "float, title:^(Volume Control)$" + "float, title:^(Picture-in-Picture)$" + "float, class:^(blueberry.py)$" + "float, class:Lxappearance" + "pseudo, class:fcitx" + "size 50% 50%, title:^(Volume Control)$" + + # Application Rules + "float, class:^(transmission-gtk)$" + "float, class:viewnior" + "float, class:feh" + "float, class:^(steam)$" + "float, class:file-roller" + "center, class:feh" + "workspace 9, initialTitle:^(Spotify Premium)$" + "tile, initialTitle:^(Photopea)$" + "tile, initialTitle:^(WorldsPlayer by Worlds Inc)$" + # "size 75% 75%, class:feh" + + # XWayland Video Bridge + "noblur, class:^(xwaylandvideobridge)$" + "noanim, class:^(xwaylandvideobridge)$" + "noinitialfocus, class:^(xwaylandvideobridge)$" + "opacity 0.0 override, class:^(xwaylandvideobridge)$" + "maxsize 1 1, class:^(xwaylandvideobridge)$" + + # Tearing + "immediate, class:.*\.exe" + "immediate, class:(steam_app)" + + # Idle Inhibit + # "idleinhibit fullscreen, class:^(*)$" + # "idleinhibit fullscreen, title:^(*)$" + "idleinhibit fullscreen, fullscreen:1" + "idleinhibit focus, class:mpv" + ]; + }; + }; +} diff --git a/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/common.sh b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/common.sh new file mode 100644 index 0000000..25be5b6 --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/common.sh @@ -0,0 +1,146 @@ +#!/usr/bin/env bash + +# . "$(dirname "$(readlink -f "${BASH_SOURCE[0]}" 2>/dev/null || echo "${0}")" || true)/common.sh" +# or +# . "${HOME}/.config/hypr/hyprland/scripts/common.sh" + +get_hyprctl_monitors() { + hyprctl monitors -j || true +} + +get_hyprctl_workspaces() { + hyprctl workspaces -j || true +} + +get_focused_monitor() { + (get_hyprctl_monitors || true) | + jq -r '.[] | select(.focused) | .name' +} + +get_active_monitor() { + get_focused_monitor +} + +get_active_workspaces() { + local monitor=$1 + + (get_hyprctl_workspaces || true) | + (jq -r ".[] | select(.monitor == \"${monitor}\") | .id" || true) | + grep -v '-' +} + +get_active_workspace() { + local monitor=$1 + + (get_hyprctl_monitors || true) | + jq -r ".[] | select(.name == \"${monitor}\") | .activeWorkspace.id" +} + +get_current_workspace() { + (hyprctl activeworkspace -j || true) | + jq -r ".id" +} + +get_empty_workspace() { + local monitor=$1 + + (hyprctl workspaces -j || true) | + (jq -r ".[] | select(.monitor == \"${monitor}\" and .windows == 0) | .id" || true) | + (grep -v '-' || true) | + head -n 1 +} + +get_workspace_client_count() { + local workspace=$1 + + (hyprctl workspaces -j || true) | jq -r ".[] | select(.id == ${workspace}) | .windows" +} + +get_relative_target_workspace() { + target_workspace=$1 + workspace=0 + + case "$(get_focused_monitor)" in + "HDMI-A-2") + workspace=$((target_workspace + 10)) + ;; + "DP-2") + workspace=${target_workspace} + ;; + "DP-1") + workspace=$((target_workspace + 20)) + ;; + *) + exit 1 + ;; + esac + + echo "${workspace}" +} + +is_monitor_fullscreen() { + monitor=$1 + + (hyprctl workspaces -j || true) | + jq -r ".[] | select(.monitor == \"${monitor}\") | select(.id == $(get_active_workspace "${monitor}" || true)) | .hasfullscreen" +} + +get_relative_target_monitor() { + direction=$1 + ignore_fullscreen=${2:-0} + + case $(get_focused_monitor) in + "HDMI-A-2") + if [[ "${direction}" == "right" ]]; then + target_monitor="DP-2" + else + target_monitor="DP-1" + fi + ;; + "DP-2") + if [[ "${direction}" == "right" ]]; then + target_monitor="DP-1" + else + target_monitor="HDMI-A-2" + fi + ;; + "DP-1") + if [[ "${direction}" == "left" ]]; then + target_monitor="DP-2" + else + target_monitor="HDMI-A-2" + fi + ;; + *) + exit 1 + ;; + esac + + if [[ "$(is_monitor_fullscreen "${target_monitor}")" == "true" && "${ignore_fullscreen}" = 0 ]]; then + case $target_monitor in + "HDMI-A-2") + if [[ "$direction" == "right" ]]; then + target_monitor="DP-2" + else + target_monitor="DP-1" + fi + ;; + "DP-2") + if [[ "$direction" == "right" ]]; then + target_monitor="DP-1" + else + target_monitor="HDMI-A-2" + fi + ;; + "DP-1") + if [[ "$direction" == "left" ]]; then + target_monitor="DP-2" + else + target_monitor="HDMI-A-2" + fi + ;; + esac + fi + + echo "${target_monitor}" +} diff --git a/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/fake_fullscreen_status b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/fake_fullscreen_status new file mode 100755 index 0000000..e198758 --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/fake_fullscreen_status @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +. "${HOME}/.config/hypr/hyprland/scripts/common.sh" + +previous_id=$(cat /tmp/fake_fullscreen_notify_id 2>/dev/null) +previous_id_flag="" + +if [[ -n "${previous_id}" ]]; then + previous_id_flag="-r ${previous_id}" +fi + +id=$(notify-send -p ${previous_id_flag} "$(hyprctl activewindow -j | jq -r '.title') + +Fake fullscreen is $([[ "$(hyprctl activewindow -j | jq -r '.fakeFullscreen')" == "true" ]] && + echo "enabled" || + echo "disabled").") + +echo "${id}" >/tmp/fake_fullscreen_notify_id diff --git a/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/hycov_easymotion b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/hycov_easymotion new file mode 100755 index 0000000..ab7c3bb --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/hycov_easymotion @@ -0,0 +1,10 @@ +#!/usr/bin/env dash + +workspace_name=$(hyprctl -j activeworkspace | jq -r '.name') + +if [ "${workspace_name}" = "OVERVIEW" ]; then + hyprctl dispatch hycov:leaveoverview +else + hyprctl dispatch hycov:enteroverview + hyprctl dispatch 'easymotion action:hyprctl --batch "dispatch focuswindow address:{} ; dispatch hycov:leaveoverview"' +fi diff --git a/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/initialise_gtk b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/initialise_gtk new file mode 100755 index 0000000..861aa12 --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/initialise_gtk @@ -0,0 +1,19 @@ +#!/usr/bin/env dash + +THEME='WhiteSur-Dark' +ICONS='WhiteSur-dark' +FONT='SF Pro Text' +# CURSOR='WhiteSur-cursors' +CURSOR='Bibata-Modern-Ice' +CURSOR_SIZE='18' +SCHEMA='gsettings set org.gnome.desktop.interface' + +apply_themes() { + ${SCHEMA} gtk-theme "${THEME}" + ${SCHEMA} icon-theme "${ICONS}" + ${SCHEMA} cursor-theme "${CURSOR}" + ${SCHEMA} cursor-size "${CURSOR_SIZE}" + ${SCHEMA} font-name "${FONT}" +} + +apply_themes diff --git a/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/initialise_waybar b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/initialise_waybar new file mode 100755 index 0000000..09f7ff9 --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/initialise_waybar @@ -0,0 +1,19 @@ +#!/usr/bin/env dash + +CONFIG_FILES="${HOME}/.config/waybar/config.json ${HOME}/.config/waybar/default-modules.json ${HOME}/.config/waybar/style.css ${HOME}/.cache/wal/colors-waybar.css" + +trap "pkill -x waybar" EXIT + +\cp -r ~/.cache/wal/colors-waybar.css ~/.config/waybar/ + +while true; do + if ! pgrep -x "waybar" >/dev/null; then + waybar -c ~/.config/waybar/config.json -s ~/.config/waybar/style.css & + fi + + inotifywait -e create,modify ${CONFIG_FILES} + + pkill -x waybar + + while pgrep -x waybar >/dev/null; do sleep 0.5; done +done diff --git a/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/initialise_xdg_portal b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/initialise_xdg_portal new file mode 100755 index 0000000..10470eb --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/initialise_xdg_portal @@ -0,0 +1,13 @@ +#!/usr/bin/env dash + +sleep 1 + +killall -e xdg-desktop-portal-hyprland +killall -e xdg-desktop-portal-wlr +killall xdg-desktop-portal + +/usr/lib/xdg-desktop-portal-hyprland & + +sleep 2 + +/usr/lib/xdg-desktop-portal & diff --git a/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/move_focus_to_monitor b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/move_focus_to_monitor new file mode 100755 index 0000000..27562a9 --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/move_focus_to_monitor @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +. "${HOME}/.config/hypr/hyprland/scripts/common.sh" + +target_monitor=$(get_relative_target_monitor "$1" 1) + +if [[ -n "${target_monitor}" ]]; then + hyprctl dispatch focusmonitor "${target_monitor}" +fi diff --git a/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/move_window_to_monitor b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/move_window_to_monitor new file mode 100755 index 0000000..06e4f94 --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/move_window_to_monitor @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +. "${HOME}/.config/hypr/hyprland/scripts/common.sh" + +target_monitor=$(get_relative_target_monitor "$1") +target_workspace=$(get_active_workspace "${target_monitor}") + +# target_workspace=$(get_empty_workspace $target_monitor) + +# if [[ -z "$target_workspace" ]]; then +# target_workspace=$(get_active_workspaces $target_monitor | head -n 1) +# fi + +if [[ -n "${target_workspace}" ]]; then + hyprctl dispatch movetoworkspace "${target_workspace}" +fi diff --git a/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/move_window_to_workspace b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/move_window_to_workspace new file mode 100755 index 0000000..4256a9f --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/move_window_to_workspace @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +. "${HOME}/.config/hypr/hyprland/scripts/common.sh" + +initial_active_workspace="$(get_current_workspace)" +target_workspace="$(get_relative_target_workspace "${1}")" + +hyprctl dispatch movetoworkspace "${target_workspace}" + +if [[ $(get_workspace_client_count "${target_workspace}") -gt 2 ]]; then + hyprctl dispatch workspace "${initial_active_workspace}" +fi diff --git a/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/switch_workspace b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/switch_workspace new file mode 100755 index 0000000..fc8900c --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/switch_workspace @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +. "${HOME}/.config/hypr/hyprland/scripts/common.sh" + +hyprctl dispatch workspace "$(get_relative_target_workspace "${1}")" diff --git a/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/toggle_gaps b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/toggle_gaps new file mode 100755 index 0000000..d593ab2 --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/toggle_gaps @@ -0,0 +1,13 @@ +#!/usr/bin/env dash + +inner_gap_size=5 +outer_gap_size=10 + +if [ "$(hyprctl getoption general:gaps_in | awk '{print $3}' || true)" -eq 0 ] && + [ "$(hyprctl getoption general:gaps_out | awk '{print $3}' || true)" -eq 0 ]; then + hyprctl keyword general:gaps_in "${inner_gap_size}" + hyprctl keyword general:gaps_out "${outer_gap_size}" +else + hyprctl keyword general:gaps_in 0 + hyprctl keyword general:gaps_out 0 +fi diff --git a/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/toggle_layout b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/toggle_layout new file mode 100755 index 0000000..1ef8774 --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/scripts/toggle_layout @@ -0,0 +1,22 @@ +#!/usr/bin/env dash + +layout=$(hyprctl -j getoption general:layout) +new_layout="" + +case "$(echo "${layout}" | jq -r .str)" in +dwindle) + hyprctl keyword general:layout master + + new_layout="master" + + ;; +master) + hyprctl keyword general:layout dwindle + + new_layout="dwindle" + + ;; +*) ;; +esac + +notify-send "You've changed the layout to ${new_layout}." diff --git a/home/fuwn/meta/desktop/wayland/hyprland/hyprland/workspaces.nix b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/workspaces.nix new file mode 100644 index 0000000..89644ae --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/workspaces.nix @@ -0,0 +1,38 @@ +_: { + wayland.windowManager.hyprland.settings.workspace = ( + let + generateWorkspaces = monitor: workspaces: offset: + builtins.genList + (x: + let + ws = + let + c = (x + 1) / workspaces; + in + builtins.toString (x + 1 - (c * workspaces)); + in + [ "${toString (x + offset + 1)}, monitor:${monitor}" ] + ) + workspaces; + generateWorkspacesAll = monitors: tags: + builtins.concatLists (builtins.map + (monitor: generateWorkspaces + (builtins.elemAt monitors monitor) + tags + (builtins.elemAt + (builtins.genList + (index: index * tags) + (builtins.length monitors)) + monitor)) + (builtins.genList (index: index) (builtins.length monitors)) + ); + in + builtins.concatLists (generateWorkspacesAll [ "DP-2" "HDMI-A-2" "DP-1" ] 10) + ) ++ [ + "special:simple_terminal, on-created-empty:[float;center;size 50% 65%] kitty --class simple_terminal" + "special:simple_calculator, on-created-empty:[float;center;size 50% 50%] kitty --class simple_calculator -e bc -lq" + "special:chatgpt, on-created-empty:[float;center;size 65% 75%] thorium-browser --user-data-dir=/home/fuwn/.local/share/spgpt --app='https://chatgpt.com/'" + "special:spotify, on-created-empty:[float;center;size 65% 90%] LD_PRELOAD=/usr/lib/spotifywm.so /opt/spotify/spotify" + "special:calculator, on-created-empty:[float;center;size 50% 50%] qalculate-gtk" + ]; +} diff --git a/home/fuwn/meta/desktop/wayland/meta/default.nix b/home/fuwn/meta/desktop/wayland/meta/default.nix new file mode 100644 index 0000000..0115f30 --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/meta/default.nix @@ -0,0 +1,5 @@ +_: { + imports = [ + ./screenshot + ]; +} diff --git a/home/fuwn/meta/desktop/wayland/meta/screenshot/default.nix b/home/fuwn/meta/desktop/wayland/meta/screenshot/default.nix new file mode 100644 index 0000000..5900ee2 --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/meta/screenshot/default.nix @@ -0,0 +1,6 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + grim + slurp + ]; +} diff --git a/home/fuwn/meta/desktop/wayland/waybar/default.nix b/home/fuwn/meta/desktop/wayland/waybar/default.nix new file mode 100644 index 0000000..9d3d691 --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/waybar/default.nix @@ -0,0 +1,92 @@ +{ pkgs, ... }: { + programs.waybar = { + enable = true; + style = ./waybar/style.css; + + settings = ( + let + defaultModules = + (import ./waybar/default-modules.nix { + inherit pkgs; + }); + hyprland-workspaces-base = { + disable-scroll = true; + disable-markup = false; + all-outputs = false; + format = "{icon}"; + }; + in + [ + (defaultModules // { + output = "HDMI-A-2"; + "hyprland/workspaces" = hyprland-workspaces-base // { + format-icons = { + "11" = "一"; + "12" = "二"; + "13" = "三"; + "14" = "四"; + "15" = "五"; + "16" = "六"; + "17" = "七"; + "18" = "八"; + "19" = "九"; + "20" = "十"; + }; + }; + }) + (defaultModules // { + output = "DP-2"; + "hyprland/workspaces" = hyprland-workspaces-base // { + format-icons = { + "1" = "一"; + "2" = "二"; + "3" = "三"; + "4" = "四"; + "5" = "五"; + "6" = "六"; + "7" = "七"; + "8" = "八"; + "9" = "九"; + "10" = "十"; + }; + }; + }) + (defaultModules // { + output = "DP-1"; + "hyprland/workspaces" = hyprland-workspaces-base // { + format-icons = { + "21" = "一"; + "22" = "二"; + "23" = "三"; + "24" = "四"; + "25" = "五"; + "26" = "六"; + "27" = "七"; + "28" = "八"; + "29" = "九"; + "30" = "十"; + }; + }; + }) + ] + ); + }; + xdg.configFile = ( + let + scripts = [ + "mediaplayer.py" + ]; + in + ( + builtins.listToAttrs (map + (script: { + name = "waybar/scripts/${script}"; + + value = { + source = ./waybar/scripts/${script}; + }; + }) + scripts) + ) + ); +} diff --git a/home/fuwn/meta/desktop/wayland/waybar/waybar/default-modules.nix b/home/fuwn/meta/desktop/wayland/waybar/waybar/default-modules.nix new file mode 100644 index 0000000..a793332 --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/waybar/waybar/default-modules.nix @@ -0,0 +1,214 @@ +{ pkgs, ... }: { + layer = "top"; + position = "top"; + margin-left = 8; + margin-right = 8; + height = 40; + + bluetooth = { + format = ""; + on-click = "${pkgs.blueberry}/bin/blueberry"; + }; + + clock = { + locale = "ja_JP.utf8"; + interval = 5; + tooltip-format = "{calendar}"; + # format = "{:%m月 %d日 %H:%M:%S}"; + format = "{:L%m月 %d日 %H:%M}"; + format-alt = "{:L%G年%b %d日 %A}"; + }; + + # For when clock doesn't work + "custom/clock" = { + exec = "date '+%m月 %d日 %H:%M'"; + tooltip = false; + interval = 5; + }; + + cpu = { + interval = 5; + format = " {usage}% ({load})"; + + states = { + warning = 70; + critical = 90; + }; + + on-click = "kitty -e '${pkgs.bottom}/bin/btm'"; + }; + + memory = { + interval = 5; + format = " {}%"; + format-alt = " {used:0.1f}/{total:0.1f}ギガ"; + + # I might remove these. I have 64GB of RAM .... + states = { + warning = 70; + critical = 90; + }; + }; + + network = { + interval = 1; + # format-wifi = " {bandwidthUpBytes} {bandwidthDownBytes}", + # format-ethernet = " {bandwidthUpBytes} {bandwidthDownBytes}", + format = " {bandwidthUpBytes}  {bandwidthDownBytes}"; + format-disconnected = "⚠ Disconnected"; + tooltip-format = "{ifname}: {ipaddr}"; + on-click = "kitty -e 'nmtui'"; + }; + + "hyprland/mode" = { + format = "{}"; + tooltip = false; + }; + + "hyprland/window" = { + format = "{}"; + max-length = 120; + separate-outputs = true; + icon = false; + + rewrite = { + "(.*) - Thorium" = "󰖟 $1"; + "(.*) - NVIM" = " $1"; + "ChatGPT" = " ChatGPT"; + "~(.*)" = " ~$1"; + "…(.*)" = " …$1"; + "zsh" = " ~"; + "fish" = " ~"; + "kitty" = " ~"; + "Volume Control" = " Volume Control"; + "Bluetooth" = " Bluetooth"; + "JamesDSP for Linux" = "󰺢 JamesDSP"; + }; + }; + + pulseaudio = { + scroll-step = 1; + format = "{icon} {volume}%"; + # format-bluetooth = "{volume}% {icon}  {format_source}"; + # format-bluetooth-muted = " {icon}  {format_source}"; + format-muted = "󰸈"; + + format-icons = { + headphone = "󰋋"; + hands-free = "וֹ"; + headset = "󱡏"; + phone = ""; + portable = ""; + car = ""; + + default = [ "" ]; + }; + + on-click = "pactl set-sink-mute @DEFAULT_SINK@ toggle"; + on-click-right = "${pkgs.pavucontrol}/bin/pavucontrol"; + on-scroll-up = "pactl set-sink-volume @DEFAULT_SINK@ +2%"; + on-scroll-down = "pactl set-sink-volume @DEFAULT_SINK@ -2%"; + }; + + tray = { + spacing = 10; + show-passive-items = true; + }; + + "image#album-art" = { + path = "/tmp/mediaplayer_art"; + size = 22.5; # (18 + (18 / 4)) + interval = 5; + on-click = "${pkgs.playerctl}/bin/playerctl play-pause"; + }; + + "custom/media" = { + format = "{icon} {}"; + return-type = "json"; + max-length = 40; + + format-icons = { + spotify = " "; + default = "󰗃 "; + }; + + escape = true; + exec = "/usr/bin/env python3 ~/.config/waybar/scripts/mediaplayer.py 2> /dev/null"; + on-click = "${pkgs.playerctl}/bin/playerctl play-pause"; + on-scroll-up = "${pkgs.playerctl}/bin/playerctl next"; + on-scroll-down = "${pkgs.playerctl}/bin/playerctl previous"; + }; + + cava = { + framerate = 280; + autosens = 1; + sensitivity = 3; + bars = 26; + lower_cutoff_freq = 50; + higher_cutoff_freq = 10000; + method = "pipewire"; + source = "auto"; + stereo = true; + reverse = true; + bar_delimiter = 0; + monstercat = false; + waves = false; + hide_on_silence = true; + noise_reduction = 0.77; + input_delay = 0; + on-click = "${pkgs.playerctl}/bin/playerctl play-pause"; + + # actions = { + # on-click-right = "mode"; + # }; + + # format-icons = ["░", "▒", "▓", "█", "█", "█", "█", "█"] + # format-icons = ["⎺", "⎻", "⎼", "⎽", "⎼", "⎻", "⎺", "⎹"] + # format-icons = ["▏", "▎", "▍", "▌", "▋", "▊", "▉", "█"] + format-icons = [ "⠁" "⠃" "⠇" "⠋" "⠛" "⠟" "⠿" "⣿" ]; + # format-icons = ["◰", "◳", "◲", "◱", "▘", "▝", "▖", "▗"] + # format-icons = ["▖", "▗", "▘", "▝", "▚", "▞", "▛", "▟"] + # format-icons = ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█", "▉", "▊"] + # format-icons = ["⎯", "⎰", "⎱", "⎲", "⎳", "⎴", "⎵", "⎶"] + # format-icons = ["⎺", "⎻", "⎼", "⎽", "⎾", "⎿", "⏀", "⏁"] + # format-icons = ["♪", "♫", "♬", "♭", "♮", "♯", "♩", "♪"] + # format-icons = ["→", "⇉", "⇒", "⇉", "→", "⇉", "⇒", "⇉"] + # format-icons = ["·", ":", "⁙", "⁘", "⁙", ":", "·", "•"] + # format-icons = ["○", "◔", "◑", "◕", "●", "◍", "◎", "◉"] + # format-icons = ["△", "▲", "▴", "▸", "▶", "▹", "►", "▻"] + # format-icons = ["◇", "◈", "◉", "◍", "◎", "◯", "⦿", "◑"] + # format-icons = ["-", "–", "—", "––", "–––", "——", "———", "——––"] + # format-icons = ["-", "=", "≡", "≣", "≠", "≢", "≜", "≝"] + # format-icons = ["✓", "✔", "✕", "✖", "✗", "✘", "✙", "✚"] + # format-icons = ["✩", "✪", "✫", "✬", "✭", "✮", "✯", "✰"] + }; + + "custom/gpu" = { + exec = "nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader | sed 's/ %/%/'"; + interval = 5; + format = " {}"; + on-click = "kitty -e 'nvtop'"; + }; + + modules-left = [ + "hyprland/workspaces" + "hyprland/window" + "custom/media" + "image#album-art" + ]; + + modules-center = [ + "clock" + ]; + + modules-right = [ + "cava" + # "network" + "tray" + "cpu" + "custom/gpu" + "memory" + "bluetooth" + "pulseaudio" + ]; +} diff --git a/home/fuwn/meta/desktop/wayland/waybar/waybar/scripts/mediaplayer.py b/home/fuwn/meta/desktop/wayland/waybar/waybar/scripts/mediaplayer.py new file mode 100755 index 0000000..c44ee0b --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/waybar/waybar/scripts/mediaplayer.py @@ -0,0 +1,152 @@ +#!/usr/bin/env python3 + +import argparse +import logging +import os +import sys +import signal +import gi +import json + +gi.require_version("Playerctl", "2.0") + +from gi.repository import Playerctl, GLib + +logger = logging.getLogger(__name__) + + +def write_output(text, player): + logger.info("Writing output") + + output = { + "text": text, + "class": "custom-" + player.props.player_name, + "alt": player.props.player_name, + "art": player.props.metadata["mpris:artUrl"], + } + + sys.stdout.write(json.dumps(output) + "\n") + sys.stdout.flush() + + +def on_play(player, status, manager): + logger.info("Received new playback status") + on_metadata(player, player.props.metadata, manager) + + +def on_metadata(player, metadata, manager): + logger.info("Received new metadata") + + track_info = "" + + if ( + player.props.player_name == "spotify" + and "mpris:trackid" in metadata.keys() + and ":ad:" in player.props.metadata["mpris:trackid"] + ): + track_info = "AD PLAYING" + elif player.get_artist() != "" and player.get_title() != "": + track_info = "{title} - {artist}".format( + artist=player.get_artist(), title=player.get_title() + ) + else: + track_info = player.get_title() + + if "file://" in player.props.metadata["mpris:artUrl"]: + os.system( + f"cp $(echo '{player.props.metadata['mpris:artUrl']}' | sed -E 's/file:\\/\\///g') /tmp/mediaplayer_art" + ) + else: + os.system( + f"curl --silent $(echo '{player.props.metadata['mpris:artUrl']}' | sed -E 's/file:\\/\\///g') --output /tmp/mediaplayer_art" + ) + + # if player.props.status != 'Playing' and track_info: + # track_info = ' ' + track_info + + write_output(track_info, player) + + +def on_player_appeared(manager, player, selected_player=None): + if player is not None and ( + selected_player is None or player.name == selected_player + ): + init_player(manager, player) + else: + logger.debug("New player appeared, but it's not the selected player, skipping") + + +def on_player_vanished(manager, player): + logger.info("Player has vanished") + sys.stdout.write("\n") + sys.stdout.flush() + os.system("rm /tmp/mediaplayer_art") + + +def init_player(manager, name): + logger.debug("Initialize player: {player}".format(player=name.name)) + + player = Playerctl.Player.new_from_name(name) + + player.connect("playback-status", on_play, manager) + player.connect("metadata", on_metadata, manager) + manager.manage_player(player) + on_metadata(player, player.props.metadata, manager) + + +def signal_handler(sig, frame): + logger.debug("Received signal to stop, exiting") + sys.stdout.write("\n") + sys.stdout.flush() + # loop.quit() + sys.exit(0) + + +def parse_arguments(): + parser = argparse.ArgumentParser() + + parser.add_argument("-v", "--verbose", action="count", default=0) + parser.add_argument("--player") + + return parser.parse_args() + + +def main(): + arguments = parse_arguments() + logging.basicConfig( + stream=sys.stderr, + level=logging.DEBUG, + format="%(name)s %(levelname)s %(message)s", + ) + + logger.setLevel(max((3 - arguments.verbose) * 10, 0)) + logger.debug("Arguments received {}".format(vars(arguments))) + + manager = Playerctl.PlayerManager() + loop = GLib.MainLoop() + + manager.connect( + "name-appeared", lambda *args: on_player_appeared(*args, arguments.player) + ) + manager.connect("player-vanished", on_player_vanished) + signal.signal(signal.SIGINT, signal_handler) + signal.signal(signal.SIGTERM, signal_handler) + signal.signal(signal.SIGPIPE, signal.SIG_DFL) + + for player in manager.props.player_names: + if arguments.player is not None and arguments.player != player.name: + logger.debug( + "{player} is not the filtered player, skipping it".format( + player=player.name + ) + ) + + continue + + init_player(manager, player) + + loop.run() + + +if __name__ == "__main__": + main() diff --git a/home/fuwn/meta/desktop/wayland/waybar/waybar/style.css b/home/fuwn/meta/desktop/wayland/waybar/waybar/style.css new file mode 100644 index 0000000..9a85e83 --- /dev/null +++ b/home/fuwn/meta/desktop/wayland/waybar/waybar/style.css @@ -0,0 +1,134 @@ +@import "/home/fuwn/.cache/wal/colors-waybar.css"; + +* { + /* font-family: CartographCF Nerd Font, Iosevka Nerd Font, cursive; */ + /* font-family: Noto Sans Mono, Sarasa Mono J, cursive; */ + /* font-family: SF Mono, cursive; */ + /* font-family: MesloLGS NF; */ + font-family: SF Pro, Hiragino Sans, cursive; + font-size: 15px; +} + +window#waybar { + background-color: rgba(0, 0, 0, 0); + color: @foreground; + /* -gtk-icon-shadow: */ + /* -1px 0 #ffffff, */ + /* 0 1px #ffffff, */ + /* 1px 0 #ffffff, */ + /* 0 -1px #ffffff; */ +} + +#battery, +#cava, +#custom-know, +#clock, +#custom-clock, +#backlight, +#cpu, +#custom-keyboard-layout, +#memory, +#mode, +#custom-weather, +#network, +#pulseaudio, +#temperature, +#tray, +#idle_inhibitor, +#window, +#bluetooth, +#custom-power, +#workspaces, +#custom-media, +#custom-gpu, +#custom-PBPbattery { + /* padding: 0.25rem 0.75rem; */ + /* margin: 10px 5px 0px 0; */ + padding: 5px 15px; + margin: 10px 1rem 0px 0; + background-color: @background; + border-radius: 10px; /* 9 */ + color: @foreground; +} + +#image { + margin-top: 10px; + border-top-right-radius: 10px; + border-bottom-right-radius: 10px; + background-color: @background; + margin-right: 1rem; + padding-right: 1rem; +} + +#image > * { + border-radius: 10px; +} + +#image.empty { + background-color: transparent; + min-width: 0; + min-height: 0; + margin: 0; + padding: 0; +} + +window#waybar #custom-media { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + padding-right: 1rem; + margin-right: 0; +} + +window#waybar.empty #window { + background-color: transparent; + padding: 0; + margin: 0; +} + +window#custom-media.empty #window { + background-color: transparent; +} + +#workspaces button.active { + color: @color11; +} + +#workspaces button:hover { + background-color: unset; +} + +#pulseaudio { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + margin-left: 0; + padding-left: 0.5rem; +} + +#bluetooth { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + margin-right: 0; + padding-right: 0.5rem; +} + +#memory { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + margin-left: 0; + padding-left: 0.5rem; +} + +#custom-gpu { + border-radius: 0; + margin-right: 0; + margin-left: 0; + padding-right: 0.5rem; + padding-left: 0.5rem; +} + +#cpu { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + margin-right: 0; + padding-right: 0.5rem; +} diff --git a/home/fuwn/meta/imagery/default.nix b/home/fuwn/meta/imagery/default.nix new file mode 100644 index 0000000..38c92e8 --- /dev/null +++ b/home/fuwn/meta/imagery/default.nix @@ -0,0 +1,8 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + nsxiv + viewnior + feh + viu + ]; +} diff --git a/home/fuwn/meta/language/codespell/default.nix b/home/fuwn/meta/language/codespell/default.nix new file mode 100644 index 0000000..9018b9f --- /dev/null +++ b/home/fuwn/meta/language/codespell/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + codespell + ]; +} diff --git a/home/fuwn/meta/language/default.nix b/home/fuwn/meta/language/default.nix new file mode 100644 index 0000000..3a48e40 --- /dev/null +++ b/home/fuwn/meta/language/default.nix @@ -0,0 +1,5 @@ +_: { + imports = [ + ./codespell + ]; +} diff --git a/home/fuwn/meta/rice/bottom/default.nix b/home/fuwn/meta/rice/bottom/default.nix new file mode 100644 index 0000000..4acf218 --- /dev/null +++ b/home/fuwn/meta/rice/bottom/default.nix @@ -0,0 +1,195 @@ +{ pkgs, ... }: { + programs.bottom.enable = true; + + xdg.configFile."bottom/bottom.toml".text = '' + # This is a default config file for bottom. All of the settings are commented + # out by default; if you wish to change them uncomment and modify as you see + # fit. + + # This group of options represents a command-line flag/option. Flags explicitly + # added when running (ie: btm -a) will override this config file if an option + # is also set here. + + [flags] + # Whether to hide the average cpu entry. + #hide_avg_cpu = false + # Whether to use dot markers rather than braille. + #dot_marker = false + # The update rate of the application. + rate = "250ms" + # Whether to put the CPU legend to the left. + #left_legend = false + # Whether to set CPU% on a process to be based on the total CPU or just current usage. + #current_usage = false + # Whether to set CPU% on a process to be based on the total CPU or per-core CPU% (not divided by the number of cpus). + #unnormalized_cpu = false + # Whether to group processes with the same name together by default. + #group_processes = false + # Whether to make process searching case sensitive by default. + #case_sensitive = false + # Whether to make process searching look for matching the entire word by default. + #whole_word = false + # Whether to make process searching use regex by default. + #regex = false + # Defaults to Celsius. Temperature is one of: + #temperature_type = "k" + #temperature_type = "f" + #temperature_type = "c" + #temperature_type = "kelvin" + #temperature_type = "fahrenheit" + #temperature_type = "celsius" + # The default time interval (in milliseconds). + #default_time_value = "60s" + # The time delta on each zoom in/out action (in milliseconds). + #time_delta = 15000 + # Hides the time scale. + #hide_time = false + # Override layout default widget + #default_widget_type = "proc" + #default_widget_count = 1 + # Expand selected widget upon starting the app + #expanded_on_startup = true + # Use basic mode + basic = false + # Use the old network legend style + #use_old_network_legend = false + # Remove space in tables + #hide_table_gap = false + # Show the battery widgets + battery = false + # Disable mouse clicks + #disable_click = false + # Built-in themes. Valid values are "default", "default-light", "gruvbox", "gruvbox-light", "nord", "nord-light" + #color = "default" + # Show memory values in the processes widget as values by default + #mem_as_value = false + # Show tree mode by default in the processes widget. + #tree = false + # Shows an indicator in table widgets tracking where in the list you are. + #show_table_scroll_position = false + # Show processes as their commands by default in the process widget. + #process_command = false + # Displays the network widget with binary prefixes. + #network_use_binary_prefix = false + # Displays the network widget using bytes. + #network_use_bytes = false + # Displays the network widget with a log scale. + #network_use_log = false + # Hides advanced options to stop a process on Unix-like systems. + #disable_advanced_kill = false + # Shows GPU(s) memory + enable_gpu_memory = true + # Shows cache and buffer memory + enable_cache_memory = true + # How much data is stored at once in terms of time. + #retention = "10m" + + # These are flags around the process widget. + + #[processes] + #columns = ["PID", "Name", "CPU%", "Mem%", "R/s", "W/s", "T.Read", "T.Write", "User", "State"] + + # These are all the components that support custom theming. Note that colour support + # will depend on terminal support. + + #[colors] # Uncomment if you want to use custom colors + # Represents the colour of table headers (processes, CPU, disks, temperature). + #table_header_color="LightBlue" + # Represents the colour of the label each widget has. + #widget_title_color="Gray" + # Represents the average CPU color. + #avg_cpu_color="Red" + # Represents the colour the core will use in the CPU legend and graph. + #cpu_core_colors=["LightMagenta", "LightYellow", "LightCyan", "LightGreen", "LightBlue", "LightRed", "Cyan", "Green", "Blue", "Red"] + # Represents the colour RAM will use in the memory legend and graph. + #ram_color="LightMagenta" + # Represents the colour SWAP will use in the memory legend and graph. + #swap_color="LightYellow" + # Represents the colour ARC will use in the memory legend and graph. + #arc_color="LightCyan" + # Represents the colour the GPU will use in the memory legend and graph. + #gpu_core_colors=["LightGreen", "LightBlue", "LightRed", "Cyan", "Green", "Blue", "Red"] + # Represents the colour rx will use in the network legend and graph. + #rx_color="LightCyan" + # Represents the colour tx will use in the network legend and graph. + #tx_color="LightGreen" + # Represents the colour of the border of unselected widgets. + #border_color="Gray" + # Represents the colour of the border of selected widgets. + #highlighted_border_color="LightBlue" + # Represents the colour of most text. + #text_color="Gray" + # Represents the colour of text that is selected. + #selected_text_color="Black" + # Represents the background colour of text that is selected. + #selected_bg_color="LightBlue" + # Represents the colour of the lines and text of the graph. + #graph_color="Gray" + # Represents the colours of the battery based on charge + #high_battery_color="green" + #medium_battery_color="yellow" + #low_battery_color="red" + + # Layout - layouts follow a pattern like this: + # [[row]] represents a row in the application. + # [[row.child]] represents either a widget or a column. + # [[row.child.child]] represents a widget. + # + # All widgets must have the type value set to one of ["cpu", "mem", "proc", "net", "temp", "disk", "empty"]. + # All layout components have a ratio value - if this is not set, then it defaults to 1. + # The default widget layout: + #[[row]] + # ratio=30 + # [[row.child]] + # type="cpu" + #[[row]] + # ratio=40 + # [[row.child]] + # ratio=4 + # type="mem" + # [[row.child]] + # ratio=3 + # [[row.child.child]] + # type="temp" + # [[row.child.child]] + # type="disk" + #[[row]] + # ratio=30 + # [[row.child]] + # type="net" + # [[row.child]] + # type="proc" + # default=true + + + # Filters - you can hide specific temperature sensors, network interfaces, and disks using filters. This is admittedly + # a bit hard to use as of now, and there is a planned in-app interface for managing this in the future: + #[disk_filter] + #is_list_ignored = true + #list = ["/dev/sda\\d+", "/dev/nvme0n1p2"] + #regex = true + #case_sensitive = false + #whole_word = false + + #[mount_filter] + #is_list_ignored = true + #list = ["/mnt/.*", "/boot"] + #regex = true + #case_sensitive = false + #whole_word = false + + #[temp_filter] + #is_list_ignored = true + #list = ["cpu", "wifi"] + #regex = false + #case_sensitive = false + #whole_word = false + + #[net_filter] + #is_list_ignored = true + #list = ["virbr0.*"] + #regex = true + #case_sensitive = false + #whole_word = false + ''; +} diff --git a/home/fuwn/meta/rice/btop/default.nix b/home/fuwn/meta/rice/btop/default.nix new file mode 100644 index 0000000..d483420 --- /dev/null +++ b/home/fuwn/meta/rice/btop/default.nix @@ -0,0 +1,3 @@ +{ pkgs, ... }: { + programs.btop.enable = true; +} diff --git a/home/fuwn/meta/rice/cpufetch/default.nix b/home/fuwn/meta/rice/cpufetch/default.nix new file mode 100644 index 0000000..b045b4a --- /dev/null +++ b/home/fuwn/meta/rice/cpufetch/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + cpufetch + ]; +} diff --git a/home/fuwn/meta/rice/default.nix b/home/fuwn/meta/rice/default.nix new file mode 100644 index 0000000..56e4bc1 --- /dev/null +++ b/home/fuwn/meta/rice/default.nix @@ -0,0 +1,9 @@ +_: { + imports = [ + ./bottom + ./btop + ./cpufetch + ./fastfetch + ./iotop + ]; +} diff --git a/home/fuwn/meta/rice/fastfetch/default.nix b/home/fuwn/meta/rice/fastfetch/default.nix new file mode 100644 index 0000000..8ae6284 --- /dev/null +++ b/home/fuwn/meta/rice/fastfetch/default.nix @@ -0,0 +1,34 @@ +{ pkgs, ... }: { + programs.fastfetch = { + enable = true; + + settings = { + logo = { + source = "~/Downloads/91363-1550240807.png"; + width = 30; + + padding = { + top = 0; + }; + }; + + modules = [ + "title" + "break" + "os" + "kernel" + "uptime" + "packages" + "shell" + "de" + "wm" + "terminal" + "cpu" + "gpu" + "memory" + "break" + "colors" + ]; + }; + }; +} diff --git a/home/fuwn/meta/rice/iotop/default.nix b/home/fuwn/meta/rice/iotop/default.nix new file mode 100644 index 0000000..a219adc --- /dev/null +++ b/home/fuwn/meta/rice/iotop/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + iotop + ]; +} diff --git a/home/fuwn/meta/spotify/default.nix b/home/fuwn/meta/spotify/default.nix new file mode 100644 index 0000000..034edb9 --- /dev/null +++ b/home/fuwn/meta/spotify/default.nix @@ -0,0 +1,9 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + # spotify-edge + spotify-player + ncspot + psst + playerctl + ]; +} diff --git a/home/fuwn/meta/steam/default.nix b/home/fuwn/meta/steam/default.nix new file mode 100644 index 0000000..c358a60 --- /dev/null +++ b/home/fuwn/meta/steam/default.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + steam-tui + ]; + + # programs.steam.enable = true; +} diff --git a/home/fuwn/meta/tools/default.nix b/home/fuwn/meta/tools/default.nix new file mode 100644 index 0000000..0fa7981 --- /dev/null +++ b/home/fuwn/meta/tools/default.nix @@ -0,0 +1,9 @@ +_: { + imports = [ + ./http + ./infrastructure + ./languages + ./nix + ./tcp + ]; +} diff --git a/home/fuwn/meta/tools/http/default.nix b/home/fuwn/meta/tools/http/default.nix new file mode 100644 index 0000000..b917245 --- /dev/null +++ b/home/fuwn/meta/tools/http/default.nix @@ -0,0 +1,6 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + httpie + httpie-desktop + ]; +} diff --git a/home/fuwn/meta/tools/infrastructure/default.nix b/home/fuwn/meta/tools/infrastructure/default.nix new file mode 100644 index 0000000..756050f --- /dev/null +++ b/home/fuwn/meta/tools/infrastructure/default.nix @@ -0,0 +1,6 @@ +_: { + imports = [ + ./docker + ./fly + ]; +} diff --git a/home/fuwn/meta/tools/infrastructure/docker/default.nix b/home/fuwn/meta/tools/infrastructure/docker/default.nix new file mode 100644 index 0000000..0a17952 --- /dev/null +++ b/home/fuwn/meta/tools/infrastructure/docker/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + earthly + ]; +} diff --git a/home/fuwn/meta/tools/infrastructure/fly/default.nix b/home/fuwn/meta/tools/infrastructure/fly/default.nix new file mode 100644 index 0000000..9e8147e --- /dev/null +++ b/home/fuwn/meta/tools/infrastructure/fly/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + flyctl + ]; +} diff --git a/home/fuwn/meta/tools/languages/agnostic/default.nix b/home/fuwn/meta/tools/languages/agnostic/default.nix new file mode 100644 index 0000000..77a3086 --- /dev/null +++ b/home/fuwn/meta/tools/languages/agnostic/default.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + cmake + tup + valgrind + ]; +} diff --git a/home/fuwn/meta/tools/languages/assembly/default.nix b/home/fuwn/meta/tools/languages/assembly/default.nix new file mode 100644 index 0000000..b593a41 --- /dev/null +++ b/home/fuwn/meta/tools/languages/assembly/default.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + nasm + # nasmfmt + yasm + ]; +} diff --git a/home/fuwn/meta/tools/languages/cobol/default.nix b/home/fuwn/meta/tools/languages/cobol/default.nix new file mode 100644 index 0000000..82e5464 --- /dev/null +++ b/home/fuwn/meta/tools/languages/cobol/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + gnu-cobol + ]; +} diff --git a/home/fuwn/meta/tools/languages/default.nix b/home/fuwn/meta/tools/languages/default.nix new file mode 100644 index 0000000..30f7894 --- /dev/null +++ b/home/fuwn/meta/tools/languages/default.nix @@ -0,0 +1,19 @@ +_: { + imports = [ + ./agnostic + # ./assembly + ./cobol + ./gleam + ./go + ./hare + ./javascript + # ./jvm + # ./protobuf + ./python + ./rust + ./shell + # ./vlang + ./yaml + ./zig + ]; +} diff --git a/home/fuwn/meta/tools/languages/gleam/default.nix b/home/fuwn/meta/tools/languages/gleam/default.nix new file mode 100644 index 0000000..de1ab92 --- /dev/null +++ b/home/fuwn/meta/tools/languages/gleam/default.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + gleam + rebar3 + erlang_nox + ]; +} diff --git a/home/fuwn/meta/tools/languages/go/default.nix b/home/fuwn/meta/tools/languages/go/default.nix new file mode 100644 index 0000000..3c4a809 --- /dev/null +++ b/home/fuwn/meta/tools/languages/go/default.nix @@ -0,0 +1,3 @@ +{ pkgs, ... }: { + programs.go.enable = true; +} diff --git a/home/fuwn/meta/tools/languages/hare/default.nix b/home/fuwn/meta/tools/languages/hare/default.nix new file mode 100644 index 0000000..79fc13b --- /dev/null +++ b/home/fuwn/meta/tools/languages/hare/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + hare + ]; +} diff --git a/home/fuwn/meta/tools/languages/javascript/default.nix b/home/fuwn/meta/tools/languages/javascript/default.nix new file mode 100644 index 0000000..5aaccda --- /dev/null +++ b/home/fuwn/meta/tools/languages/javascript/default.nix @@ -0,0 +1,9 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + bun + # deno + # nodejs + # typescript + # nodePackages.npm + ]; +} diff --git a/home/fuwn/meta/tools/languages/jvm/default.nix b/home/fuwn/meta/tools/languages/jvm/default.nix new file mode 100644 index 0000000..d3ab862 --- /dev/null +++ b/home/fuwn/meta/tools/languages/jvm/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + # kotlin + ]; +} diff --git a/home/fuwn/meta/tools/languages/protobuf/default.nix b/home/fuwn/meta/tools/languages/protobuf/default.nix new file mode 100644 index 0000000..21dd9f7 --- /dev/null +++ b/home/fuwn/meta/tools/languages/protobuf/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + protobuf + ]; +} diff --git a/home/fuwn/meta/tools/languages/python/default.nix b/home/fuwn/meta/tools/languages/python/default.nix new file mode 100644 index 0000000..84b15d4 --- /dev/null +++ b/home/fuwn/meta/tools/languages/python/default.nix @@ -0,0 +1,8 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + python312 + rye + ]; + + programs.poetry.enable = true; +} diff --git a/home/fuwn/meta/tools/languages/rust/default.nix b/home/fuwn/meta/tools/languages/rust/default.nix new file mode 100644 index 0000000..02360d1 --- /dev/null +++ b/home/fuwn/meta/tools/languages/rust/default.nix @@ -0,0 +1,10 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + cargo-outdated + cargo-watch + cargo-make + cargo-cache + # cargo-clean-all + rustup + ]; +} diff --git a/home/fuwn/meta/tools/languages/shell/default.nix b/home/fuwn/meta/tools/languages/shell/default.nix new file mode 100644 index 0000000..1953aac --- /dev/null +++ b/home/fuwn/meta/tools/languages/shell/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + shfmt + ]; +} diff --git a/home/fuwn/meta/tools/languages/vlang/default.nix b/home/fuwn/meta/tools/languages/vlang/default.nix new file mode 100644 index 0000000..d9da941 --- /dev/null +++ b/home/fuwn/meta/tools/languages/vlang/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + vlang + ]; +} diff --git a/home/fuwn/meta/tools/languages/yaml/default.nix b/home/fuwn/meta/tools/languages/yaml/default.nix new file mode 100644 index 0000000..cd91d5e --- /dev/null +++ b/home/fuwn/meta/tools/languages/yaml/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + yamllint + ]; +} diff --git a/home/fuwn/meta/tools/languages/zig/default.nix b/home/fuwn/meta/tools/languages/zig/default.nix new file mode 100644 index 0000000..821e4ab --- /dev/null +++ b/home/fuwn/meta/tools/languages/zig/default.nix @@ -0,0 +1,6 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + zig + zls + ]; +} diff --git a/home/fuwn/meta/tools/nix/default.nix b/home/fuwn/meta/tools/nix/default.nix new file mode 100644 index 0000000..fe41b1d --- /dev/null +++ b/home/fuwn/meta/tools/nix/default.nix @@ -0,0 +1,10 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + nil + statix + alejandra + nurl + nix-init + nix-prefetch-git + ]; +} diff --git a/home/fuwn/meta/tools/tcp/default.nix b/home/fuwn/meta/tools/tcp/default.nix new file mode 100644 index 0000000..85b6120 --- /dev/null +++ b/home/fuwn/meta/tools/tcp/default.nix @@ -0,0 +1,6 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + netcat-openbsd + inetutils + ]; +} diff --git a/home/fuwn/wallpaper.png b/home/fuwn/wallpaper.png new file mode 100644 index 0000000..b0db6b0 Binary files /dev/null and b/home/fuwn/wallpaper.png differ diff --git a/meta/audio/default.nix b/meta/audio/default.nix deleted file mode 100644 index 8768f34..0000000 --- a/meta/audio/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - blueberry - pavucontrol - ]; -} diff --git a/meta/bitwarden/default.nix b/meta/bitwarden/default.nix deleted file mode 100644 index 2ac188f..0000000 --- a/meta/bitwarden/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - bitwarden-desktop - # bitwarden-cli - # bitwarden-menu - ]; -} diff --git a/meta/calculator/default.nix b/meta/calculator/default.nix deleted file mode 100644 index a8bcc7f..0000000 --- a/meta/calculator/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - gavin-bc - qalculate-gtk - programmer-calculator - ]; -} diff --git a/meta/default.nix b/meta/default.nix deleted file mode 100644 index 6d6bf65..0000000 --- a/meta/default.nix +++ /dev/null @@ -1,14 +0,0 @@ -_: { - imports = [ - ./audio - ./bitwarden - ./calculator - ./desktop - ./imagery - ./language - ./rice - ./spotify - ./steam - ./tools - ]; -} diff --git a/meta/desktop/default.nix b/meta/desktop/default.nix deleted file mode 100644 index 36de93a..0000000 --- a/meta/desktop/default.nix +++ /dev/null @@ -1 +0,0 @@ -_: { imports = [ ./wayland ]; } diff --git a/meta/desktop/wayland/default.nix b/meta/desktop/wayland/default.nix deleted file mode 100644 index 89f1bf0..0000000 --- a/meta/desktop/wayland/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -_: { - imports = [ - ./hyprland - ./meta - ./waybar - ]; -} diff --git a/meta/desktop/wayland/hyprland/default.nix b/meta/desktop/wayland/hyprland/default.nix deleted file mode 100644 index d371cb0..0000000 --- a/meta/desktop/wayland/hyprland/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ pkgs, ... }: { - imports = [ - ./hypridle - ./hyprland - ]; - - wayland.windowManager.hyprland = { - enable = true; - package = pkgs.hyprland; - - xwayland = { - enable = true; - }; - - systemd = { - enable = true; - - variables = [ "--all" ]; - }; - }; -} diff --git a/meta/desktop/wayland/hyprland/hypridle/default.nix b/meta/desktop/wayland/hyprland/hypridle/default.nix deleted file mode 100644 index 03d670c..0000000 --- a/meta/desktop/wayland/hyprland/hypridle/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ pkgs, ... }: { - services.hypridle = { - enable = true; - - settings = { - "$lock_command" = "pidof hyprlock || hyprlock"; - # $suspend_command = pidof steam || systemctl suspend || loginctl suspend - - general = { - lock_cmd = "$lock_command"; - # before_sleep_cmd = $suspend_command - before_sleep_cmd = "playerctl pause"; - ignore_dbus_inhibit = false; - ignore_systemd_inhibit = false; - }; - - listener = [ - { - timeout = 180; # 3 minutes - on-timeout = "$lock_command"; - } - { - timeout = 240; # 4 minutes - on-timeout = "hyprctl dispatch dpms off"; - on-resume = "hyprctl dispatch dpms on"; - } - # { - # timeout = 540; # 9 minutes - # on-timeout = "$suspend_cmd"; - # } - ]; - }; - }; -} diff --git a/meta/desktop/wayland/hyprland/hyprland/animations.nix b/meta/desktop/wayland/hyprland/hyprland/animations.nix deleted file mode 100644 index c47c164..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/animations.nix +++ /dev/null @@ -1,86 +0,0 @@ -_: { - wayland.windowManager.hyprland = { - extraConfig = '' - # animations { - # enabled = yes - - # # bezier = myBezier, 0.05, 0.9, 0.1, 1.05 - - # # animation = windows, 1, 5, myBezier - # # animation = windowsOut, 1, 7, default, popin - # # animation = border, 1, 10, default - # # animation = fade, 1, 7, default - # # animation = workspaces, 1, 6, default, slidevert - - # # bezier = overshot,0.5,0.1,0.4,1.2 - - # # animation = global, 1, 3, default - # # animation = workspaces, 1, 4, default - # # animation = windowsMove, 1, 2, default - # # animation = fade, 1, 2, default - - # bezier = overshot, 0.05, 0.5, 0.1, 1.05 - # bezier = smoothOut, 0.36, 0, 0.66, -0.56 - # bezier = smoothIn, 0.25, 0.8, 0.5, 1 - - # animation = windows, 1, 5, overshot, slide - # animation = windowsOut, 1, 4, smoothOut, slide - # animation = windowsMove, 1, 4, default - # animation = border, 1, 10, default - # animation = fade, 1, 10, smoothIn - # animation = fadeDim, 1, 10, smoothIn - # animation = workspaces, 1, 6, default - # } - - bezier = smoothIn, 0.25, 1, 0.5, 1 - bezier = wind, 0.05, 0.9, 0.1, 1.06 - bezier = winIn, 0.1, 1.1, 0.1, 1.05 - bezier = linear, 1, 1, 1, 1 - - animations { - enabled = yes - - # buttery_smoooooooth... (slide) - # animation = windows, 1, 5, default, slide - # animation = windowsOut, 1, 8, smoothIn, slide - # animation = windowsMove, 1, 7, default - # animation = fade, 1, 5, smoothIn - # animation = fadeOut, 1, 4, smoothIn - # animation = fadeDim, 1, 3, smoothIn - # animation = workspaces, 1, 5, default, slidefadevert - # animation = specialWorkspace, 1, 5, default, fade - - # buttery_smoooooooth... (Popin...) - # animation = windows, 1, 3, default, popin 70% - # animation = windowsOut, 1, 20, default, popin 85% - # animation = windowsMove, 1, 7, default - # animation = fade, 1, 6, smoothIn - # animation = fadeOut, 1, 3, smoothIn - # animation = fadeDim, 1, 3, smoothIn - # animation = workspaces, 1, 5, wind, slidefadevert 40% - - # fasssstt popin - animation = windows, 1, 2, default, popin 80% - animation = windowsOut, 1, 5, default, popin 90% - animation = windowsMove, 1, 5, default - animation = layers, 1, 3, default, popin 90% - animation = fade, 1, 4, smoothIn - animation = fadeOut, 1, 2, smoothIn - animation = fadeDim, 1, 3, smoothIn - animation = workspaces, 1, 3, default, slidefadevert 15% - animation = specialWorkspace, 1, 3, default, slidefadevert 15% - - # Random... - # animation = windows, 1, 5, wind, slide - # animation = windowsIn, 1, 4, winIn, slide - # animation = windowsOut, 1 , 7, smoothIn, slide - # animation = windowsMove, 1, 6, default - # animation = fade, 1, 5, smoothIn - # animation = fadeOut, 1, 3, smoothIn - # animation = fadeDim, 1, 3, smoothIn - # animation = workspaces, 1, 4, wind, slidefadevert 15% - # animation = specialWorkspace, 1, 3, default, slidefadevert 15% - } - ''; - }; -} diff --git a/meta/desktop/wayland/hyprland/hyprland/binds.nix b/meta/desktop/wayland/hyprland/hyprland/binds.nix deleted file mode 100644 index 5312b93..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/binds.nix +++ /dev/null @@ -1,209 +0,0 @@ -_: { - wayland.windowManager.hyprland = { - settings = { - "$mod" = "SUPER"; - "$mail" = "mailspring --password-store=\"gnome-libsecret\" --enable-features=UseOzonePlatform --ozone-platform=wayland"; - "$script_path" = "$HOME/.config/hypr/hyprland/scripts"; - "$term" = "kitty"; - - bind = ( - builtins.concatLists - (builtins.genList - ( - x: - let - ws = - let - c = (x + 1) / 10; - in - builtins.toString (x + 1 - (c * 10)); - in - [ - # Switch pseudo-tag (workspaces) - "$mod, ${ws}, exec, $script_path/switch_workspace ${toString (x + 1)}" - # "$mod, ${ws}, split-workspace, ${toString (x + 1)}" - - # Move window to pseudo-tag (workspace) - "$mod SHIFT, ${ws}, exec, $script_path/move_window_to_workspace ${toString (x + 1)}" - # "$mod SHIFT, ${ws}, split-movetoworkspacesilent, ${toString (x + 1)}" - ] - ) - 10) - ++ - [ - # Scratchpads - "$mod, apostrophe, exec, hyprctl dispatch togglespecialworkspace simple_calculator" - "$mod SHIFT, RETURN, exec, hyprctl dispatch togglespecialworkspace simple_terminal" - "$mod SHIFT, c, exec, hyprctl dispatch togglespecialworkspace chatgpt" - "$mod SHIFT, s, exec, hyprctl dispatch togglespecialworkspace spotify" - "$mod SHIFT, apostrophe, exec, hyprctl dispatch togglespecialworkspace calculator" - - # Focus - "$mod, k, movefocus, u" - "$mod, j, movefocus, d" - "$mod, l, movefocus, r" - "$mod, h, movefocus, l" - - # "$mod, j, layoutmsg, cyclenext" - # "$mod, j, layoutmsg, cycleprev" - - "$mod, tab, hycov:toggleoverview" - "$mod SHIFT, tab, overview:toggle" - - # Emoji picker - "$mod, GRAVE, exec, rofi -modi emoji -show emoji" - - # Volume control - "$mod, MINUS, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" - "$mod SHIFT, MINUS, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 15%-" - "$mod, EQUAL, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+" - "$mod SHIFT, EQUAL, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 15%+" - - # Session control - "$mod SHIFT, Q, exec, wlogout" - "$mod SHIFT, R, exec, hyprctl reload" - - # Window control - "$mod, F, fullscreen" - # "$mod SHIFT, F, fullscreen, 2" - "$mod SHIFT, F, exec, hyprctl dispatch fakefullscreen && $script_path/fake_fullscreen_status" - "$mod, G, togglefloating" - "$mod, P, pseudo" - "$mod SHIFT, P, pin" - "$mod, T, togglesplit" - "$mod, U, focusurgentorlast" - "$mod, Q, killactive" - "$mod, S, exec, hyprctl keyword window:sticky 1" - "$mod, b, exec, pkill -SIGUSR1 waybar" - "$mod, SPACE, layoutmsg, swapwithmaster" - "$mod, V, exec, $script_path/toggle_layout" - - # Application binds - "$mod, W, exec, $BROWSER" - "$mod SHIFT, W, exec, $term -e sudo nmtui" - "$mod, E, exec, $mail" - "$mod SHIFT, R, exec, $term -e htop" - "$mod, R, exec, rofi -show run" - "$mod SHIFT, D, exec, bitwarden-desktop" - "$mod, RETURN, exec, $term" - "$mod SHIFT, N, exec, $BROWSER https://sumi.news" - "$mod, M, exec, spotify" - "$mod SHIFT, M, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" - "$mod ALT, A, exec, hyprpicker -a" - - # Launchers - "$mod, D, exec, rofi -show combi" - "$mod, C, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy" - - # Spotify control - "$mod, P, exec, spt pb --toggle" - "$mod SHIFT, P, exec, mpc pause; pauseallmpv" - "$mod, BRACKETLEFT, exec, spt pb --seek -10" - "$mod SHIFT, BRACKETLEFT, exec, spt pb --seek -60" - "$mod, BRACKETRIGHT, exec, spt pb --seek +10" - "$mod SHIFT, BRACKETRIGHT, exec, spt pb --seek +60" - "$mod, COMMA, exec, spt pb --pp" - "$mod, PERIOD, exec, spt pb --next" - "$mod SHIFT, PERIOD, exec, spt pb --previous" - - # Gaps control - "$mod, a, exec, $script_path/toggle_gaps" - "$mod SHIFT, a, exec, bash -c 'hyprctl keyword general:gaps_in 5; hyprctl keyword general:gaps_out 10'" - - # Increment gaps - "$mod, mouse_up, exec, hyprctl keyword general:gaps_out `expr $(hyprctl getoption general:gaps_out | awk '{ print $3 }') + 3`" - "$mod, mouse_up, exec, hyprctl keyword general:gaps_in `expr $(hyprctl getoption general:gaps_in | awk '{ print $3 }') + 2`" - - # Decrement gaps - "$mod, mouse_down, exec, hyprctl keyword general:gaps_out `expr $(hyprctl getoption general:gaps_out | awk '{ print $3 }') - 3`" - "$mod, mouse_down, exec, hyprctl keyword general:gaps_in `expr $(hyprctl getoption general:gaps_in | awk '{ print $3 }') - 2`" - - # Move focus to monitor - "$mod, LEFT, exec, $script_path/move_focus_to_monitor left" - "$mod, RIGHT, exec, $script_path/move_focus_to_monitor right" - - # Move window to monitor - "$mod SHIFT, h, exec, $script_path/move_window_to_monitor left" - "$mod SHIFT, l, exec, $script_path/move_window_to_monitor right" - - # Screenshot - ", Print, exec, screenshot --area" - "$mod SHIFT, Print, exec, screenshot --window" - "$mod CTRL, Print, exec, screenshot --monitor" - "$mod, Print, exec, screenshot --now" - "$mod SHIFT, v, exec, screenshot --now --clipboard && pypr toggle spgpt && ydotool key 42:1 1:1 1:0 42:0 29:1 47:1 29:0 47:0" - - # Media keys - # ... - ] - ); - - binde = ( - [ - # Increment gaps - "$mod, Z, exec, hyprctl --batch \"keyword general:gaps_out `expr $(hyprctl getoption general:gaps_out | awk '{ print $3 }') + 3`; keyword general:gaps_in `expr $(hyprctl getoption general:gaps_in | awk '{ print $3 }') + 2`\"" - - # Decrement gaps - "$mod, X, exec, hyprctl --batch \"keyword general:gaps_out `expr $(hyprctl getoption general:gaps_out | awk '{ print $3 }') - 3`; keyword general:gaps_in `expr $(hyprctl getoption general:gaps_in | awk '{ print $3 }') - 2`\"" - - # Resize active window - "$mod SHIFT, UP, resizeactive, 0 -50" - "$mod SHIFT, DOWN, resizeactive, 0 50" - "$mod SHIFT, RIGHT, resizeactive, 50 0" - "$mod SHIFT, LEFT, resizeactive, -50 0" - - # Move active window - "$mod ALT, k, moveactive, 0 -100" - "$mod ALT, j, moveactive, 0 100" - "$mod ALT, l, moveactive, 100 0" - "$mod ALT, h, moveactive, -100 0" - ] - ); - - bindm = ( - [ - # Move window with mouse - "$mod, mouse:272, movewindow" - "$mod, mouse:273, resizewindow" - "$mod SHIFT, mouse:273, resizewindow 1" - ] - ); - }; - - extraConfig = '' - # Media keys - bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle - bind = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0%- && wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ - bind = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0%+ && wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- - bind = , XF86AudioPrev, exec, playerctl previous - bind = , XF86AudioNext, exec, playerctl next - bind = , XF86AudioPause, exec, playerctl play-pause - bind = , XF86AudioPlay, exec, playerctl play-pause - bind = , XF86AudioStop, exec, playerctl stop - bind = , XF86AudioRewind, exec, playerctl position -10 - bind = , XF86AudioForward, exec, playerctl position +10 - bind = , XF86AudioMedia, exec, spotify - bind = , XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle - - # Other media keys - bind = , XF86Calculator, exec, $term -e bc -l - bind = , XF86Sleep, exec, sudo -A zzz - bind = , XF86WWW, exec, $BROWSER - bind = , XF86DOS, exec, $term - bind = , XF86ScreenSaver, exec, pidof hyprlock || hyprlock && hyprctl dispatch dpms off - bind = , XF86TaskPane, exec, $term -e htop - bind = , XF86Mail, exec, $mail - bind = , XF86MyComputer, exec, $term -e ranger - bind = , XF86Launch1, exec, hyprctl dispatch dpms off - - # Touchpad control - bind = , XF86TouchpadToggle, exec, (synclient | grep 'TouchpadOff.*1' && synclient TouchpadOff=0) || synclient TouchpadOff=1 - bind = , XF86TouchpadOff, exec, synclient TouchpadOff=1 - bind = , XF86TouchpadOn, exec, synclient TouchpadOff=0 - - # Brightness control - bind = , XF86MonBrightnessUp, exec, xbacklight -inc 15 - bind = , XF86MonBrightnessDown, exec, xbacklight -dec 15 - ''; - }; -} diff --git a/meta/desktop/wayland/hyprland/hyprland/decoration.nix b/meta/desktop/wayland/hyprland/hyprland/decoration.nix deleted file mode 100644 index feb9145..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/decoration.nix +++ /dev/null @@ -1,43 +0,0 @@ -_: { - wayland.windowManager.hyprland.settings.decoration = { - rounding = 10; - drop_shadow = true; - shadow_ignore_window = true; - shadow_range = 8; - shadow_render_power = 10; - shadow_offset = "2 2"; - "col.shadow" = "rgba(00000055)"; # 2A - - blurls = [ - "gtk-layer-shell" - "lockscreen" - ]; - - # active_opacity = 0.9 - # inactive_opacity = 0.7 - # fullscreen_opacity = 1.0 - active_opacity = 1.0; - inactive_opacity = 0.95; - - blur = { - enabled = true; - xray = true; - special = false; - # size = 1; - passes = 2; - ignore_opacity = true; - new_optimizations = true; - # vibrancy = 0.1696; - # noise = 0.01; - brightness = 1; - contrast = 1; - - popups = true; - popups_ignorealpha = 0.6; - }; - - dim_special = 0.35; - dim_inactive = false; - dim_strength = 0.1; - }; -} diff --git a/meta/desktop/wayland/hyprland/hyprland/default.nix b/meta/desktop/wayland/hyprland/hyprland/default.nix deleted file mode 100644 index e2538fd..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -_: { - imports = [ - ./animations.nix - ./binds.nix - ./decoration.nix - ./environment.nix - ./executions.nix - ./general.nix - ./plugins.nix - ./rules.nix - ./workspaces.nix - ]; - - xdg.configFile = ( - let - scripts = [ - "common.sh" - "fake_fullscreen_status" - "hycov_easymotion" - "initialise_gtk" - "initialise_waybar" - "initialise_xdg_portal" - "move_focus_to_monitor" - "move_window_to_monitor" - "move_window_to_workspace" - "switch_workspace" - "toggle_gaps" - "toggle_layout" - ]; - in - ( - builtins.listToAttrs (map - (script: { - name = "hypr/hyprland/scripts/${script}"; - - value = { - source = ./scripts/${script}; - }; - }) - scripts) - ) - ); -} diff --git a/meta/desktop/wayland/hyprland/hyprland/environment.nix b/meta/desktop/wayland/hyprland/hyprland/environment.nix deleted file mode 100644 index 81046ff..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/environment.nix +++ /dev/null @@ -1,80 +0,0 @@ -_: -let cursorSize = "18"; in -{ - wayland.windowManager.hyprland.settings.env = [ - # Proton - "PROTON_ENABLE_NGX_UPDATER, 1" - - # Cursor - "XCURSOR_SIZE, ${cursorSize}" - "HYPRCURSOR_SIZE, ${cursorSize}" - "HYPERCURSOR_THEME, Bibata-Modern-Ice" # WhiteSur-cursors - "XCURSOR_THEME, Bibata-Modern-Ice" - - # Wayland & Xwayland - "GDK_BACKEND, wayland,x11,*" - "SDL_VIDEODRIVER, wayland" - "CLUTTER_BACKEND, wayland" - "XWAYLAND_NO_GLAMOR, 1" # Gamescope - - # Nvidia - "LIBVA_DRIVER_NAME, nvidia" - "GBM_BACKEND, nvidia-drm" - "__GLX_VENDOR_LIBRARY_NAME, nvidia" - "__VK_LAYER_NV_optimus, NVIDIA_only" - "__NV_PRIME_RENDER_OFFLOAD, 1" - "NVD_BACKEND, direct" - - # OpenGL - "__GL_GSYNC_ALLOWED, 1" - "__GL_VRR_ALLOWED, 1" - "__GL_MaxFramesAllowed, 1" - - # Electron - # "ELECTRON_OZONE_PLATFORM_HINT, auto" - "OZONE_PLATFORM, wayland" - - # Qt - "QT_AUTO_SCREEN_SCALE_FACTOR, 1" - "QT_QPA_PLATFORM, wayland;xcb" - "QT_WAYLAND_DISABLE_WINDOWDECORATION, 1" - "QT_QPA_PLATFORMTHEME, qt5ct" - # "QT_STYLE_OVERRIDE, kvantum" - - # wlroots - "WLR_NO_HARDWARE_CURSORS, 1" - "WLR_DRM_NO_ATOMIC, 1" - "WLR_USE_LIBINPUT, 1" - "WLR_RENDERER_ALLOW_SOFTWARE, 1" - "WLR_DRM_DEVICES, /dev/dri/card0" - # "WLR_EGL_NO_MODIFIERS, 1" - - # XDG - "XDG_SESSION_TYPE, wayland" - "XDG_CURRENT_DESKTOP, Hyprland" - "XDG_SESSION_DESKTOP, Hyprland" - - # Mozilla - "MOZ_ENABLE_WAYLAND, 1" - "MOZ_DISABLE_RDD_SANDBOX, 1" - - # Fcitx - # https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland - "QT_IM_MODULE, fcitx" - "XMODIFIERS, @im=fcitx" - # "GTK_IM_MODULE, wayland" - # "GTK_IM_MODULE, fcitx" - "SDL_IM_MODULE, fcitx" - "GLFW_IM_MODULE, ibus" - "INPUT_METHOD, fcitx" - - # GTK - "GTK_USE_PORTAL, 1" - - # Java - "_JAVA_AWT_WM_NONREPARENTING, 1" - - # SSH - # "SSH_AUTH_SOCK, $XDG_RUNTIME_DIR/ssh-agent.socket" - ]; -} diff --git a/meta/desktop/wayland/hyprland/hyprland/executions.nix b/meta/desktop/wayland/hyprland/hyprland/executions.nix deleted file mode 100644 index 2ff364f..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/executions.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ pkgs, ... }: { - wayland.windowManager.hyprland.settings = { - exec-once = ([ - # One-shots - "hyprctl dispatch workspace 1" - "swww-daemon" - "gammastep -l 45.540750:-122.385330 >/dev/null" - "${pkgs.pyprland}/bin/pypr" - "hyprpm reload" - "swaddle" - # "${pkgs.waybar}/bin/waybar" - "waybar" - "hyprctl setcursor Bibata-Modern-Ice 18" - - # Fcitx5 - "fcitx5-remote -r" - "fcitx5 -d --replace" - "fcitx5-remote -r" - - # GTK - "$script_path/initialise_gtk" - - # KWallet - # "pam_kwallet_init" - # "kwalletd6" - - # GNOME/Keyring - "gnome-keyring-daemon --replace --components=pkcs11,secrets,ssh,gpg" - "/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 || /usr/libexec/polkit-gnome-authentication-agent-1" - - # XDG, XDPH, & Qt - "dbus-update-activation-environment --systemd --all" - "dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP" - "systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP" - "systemctl --user import-environment QT_QPA_PLATFORMTHEME" - "$script_path/initialise_xdg_portal" - - # Clipboard - "wl-paste --type text --watch cliphist store" - "wl-paste --type image --watch cliphist store" - - # JamesDSP & Solaar - "jamesdsp -t" - # "solaar -w hide" - - # SSH - # "killall -q ssh-agent" - # "eval $(ssh-agent -c)" - # "set -Ux SSH_AUTH_SOCK $SSH_AUTH_SOCK" - # "set -Ux SSH_AGENT_PID $SSH_AGENT_PID" - # "set -Ux SSH_AUTH_SOCK $SSH_AUTH_SOCK" - # "export SSH_AUTH_SOCK=\"$XDG_RUNTIME_DIR/ssh-agent.socket\"" - ]); - }; -} diff --git a/meta/desktop/wayland/hyprland/hyprland/general.nix b/meta/desktop/wayland/hyprland/hyprland/general.nix deleted file mode 100644 index e0821d5..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/general.nix +++ /dev/null @@ -1,119 +0,0 @@ -_: { - wayland.windowManager.hyprland = { - settings = { - monitor = [ - "HDMI-A-2, 1920x1080@74.97, 0x0, 1" - "DP-2, 1920x1080@280.00, 1920x0, 1" - "DP-1, 1920x1080@144.00, 3840x0, 1" - ]; - - source = "/home/fuwn/.cache/wal/colors-hyprland"; - - general = { - gaps_in = 5; - gaps_out = 10; - border_size = 0; - layout = "master"; - allow_tearing = true; - resize_on_border = true; - no_focus_fallback = true; - }; - - input = { - kb_layout = "us"; - # kb_variant = - # kb_model = - # kb_options = - # kb_rules = - repeat_rate = 35; # 50 - repeat_delay = 250; # 200 - follow_mouse = 1; - special_fallthrough = true; - - touchpad = { - natural_scroll = true; - disable_while_typing = true; - clickfinger_behavior = true; - scroll_factor = 0.15; - tap-to-click = true; - middle_button_emulation = true; - }; - - sensitivity = -0.5; - accel_profile = "flat"; - scroll_factor = 1.0; - # natural_scroll = false; - }; - - binds = { - allow_workspace_cycles = true; - scroll_event_delay = 0; - workspace_back_and_forth = true; - }; - - dwindle = { - pseudotile = true; - preserve_split = true; - force_split = 2; - smart_split = false; - smart_resizing = false; - no_gaps_when_only = 0; - special_scale_factor = 0.98; - }; - - master = { - allow_small_split = true; - new_is_master = false; - mfact = 0.55; - # no_gaps_when_only = yes; - orientation = "left"; - inherit_fullscreen = false; - }; - - gestures = { - workspace_swipe = true; - workspace_swipe_distance = 700; - workspace_swipe_fingers = 4; - workspace_swipe_cancel_ratio = 0.2; - workspace_swipe_min_speed_to_force = 5; - workspace_swipe_direction_lock = true; - workspace_swipe_direction_lock_threshold = 10; - workspace_swipe_create_new = true; - }; - - misc = { - vrr = false; - vfr = false; - enable_swallow = true; - swallow_regex = "^(kitty|footclient|foot|Alacritty|wezterm)$"; - disable_hyprland_logo = true; - disable_splash_rendering = true; - force_default_wallpaper = 0; - mouse_move_enables_dpms = true; - # key_press_enables_dpms = true; - # focus_on_activate = true; - animate_manual_resizes = true; - # animate_mouse_windowdragging = false; - mouse_move_focuses_monitor = true; - # new_window_takes_over_fullscreen = 2; - allow_session_lock_restore = true; - initial_workspace_tracking = false; - }; - - cursor = { - hide_on_key_press = true; - enable_hyprcursor = true; - }; - - xwayland = { - force_zero_scaling = true; - }; - - debug = { - watchdog_timeout = 0; - disable_logs = false; - damage_blink = false; - }; - }; - }; -} diff --git a/meta/desktop/wayland/hyprland/hyprland/plugins.nix b/meta/desktop/wayland/hyprland/hyprland/plugins.nix deleted file mode 100644 index 61d73e3..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/plugins.nix +++ /dev/null @@ -1,69 +0,0 @@ -_: { - wayland.windowManager.hyprland.settings.plugin = { - # split-monitor-workspaces = { - # count = 10; - # keep_focused = 0; - # enable_notifications = 0; - # }; - - hyprtrails = { - color = "rgba(cfddf619)"; - }; - - hyprfocus = { - enabled = true; - animate_floating = true; - animate_workspacechange = true; - focus_animation = "flash"; - - bezier = [ - "bezIn, 0.5, 0.0, 1.0, 0.5" - "bezOut, 0.0, 0.5, 0.5, 1.0" - "overshot, 0.05, 0.9, 0.1, 1.05" - "smoothOut, 0.36, 0, 0.66, -0.56" - "smoothIn, 0.25, 1, 0.5, 1" - "realsmooth, 0.28, 0.29, .69, 1.08" - ]; - - flash = { - flash_opacity = 0.85; - in_bezier = "realsmooth"; - in_speed = 0.5; - out_bezier = "realsmooth"; - out_speed = 3; - }; - - shrink = { - shrink_percentage = 0.99; - in_bezier = "realsmooth"; - in_speed = 1; - out_bezier = "realsmooth"; - out_speed = 2; - }; - }; - - hycov = { - overview_gappo = 10; # gaps width from screen edge - overview_gappi = 10; # gaps width from clients - enable_hotarea = 0; # enable mouse cursor hotarea, when cursor enter hotarea, it will toggle overview - enable_click_action = 1; # enable mouse left button jump and right button kill in overview mode - hotarea_monitor = "all"; # monitor name which hotarea is in, default is all - hotarea_pos = 1; # position of hotarea (1: bottom left, 2: bottom right, 3: top left, 4: top right) - hotarea_size = 10; # hotarea size, 10x10 - swipe_fingers = 4; # finger number of gesture,move any directory - move_focus_distance = 100; # distance for movefocus,only can use 3 finger to move - enable_gesture = 0; # enable gesture - auto_exit = 1; # enable auto exit when no client in overview - auto_fullscreen = 0; # auto make active window maximize after exit overview - only_active_workspace = 0; # only overview the active workspace - only_active_monitor = 0; # only overview the active monitor - enable_alt_release_exit = 1; # alt swith mode arg,see readme for detail - alt_replace_key = "Super_L"; # alt swith mode arg,see readme for detail - alt_toggle_auto_next = 0; # auto focus next window when toggle overview in alt swith mode - click_in_cursor = 1; # when click to jump,the target windwo is find by cursor, not the current foucus window. - height_of_titlebar = 0; # height deviation of title bar height - show_special = 0; # show windwos in special workspace in overview. - raise_float_to_top = 1; # raise the window that is floating before to top after leave overview mode - }; - }; -} diff --git a/meta/desktop/wayland/hyprland/hyprland/rules.nix b/meta/desktop/wayland/hyprland/hyprland/rules.nix deleted file mode 100644 index 862d8f1..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/rules.nix +++ /dev/null @@ -1,78 +0,0 @@ -_: { - wayland.windowManager.hyprland = { - settings = { - # Layer Rules - layerrule = [ - "animation slide, notifications" - "noanim, selection" - "noanim, picker" - ]; - - windowrulev2 = [ - # Dialog Rules - "float, class:file_progress" - "float, class:confirm" - "float, class:dialog" - "float, class:download" - "float, class:notification" - "float, class:error" - "float, class:splash" - "float, class:confirmreset" - "float, title:Open File" - "float, title:branchdialog" - "float, title:^(Open File)(.*)$" - "float, title:^(Select a File)(.*)$" - "float, title:^(Choose wallpaper)(.*)$" - "float, title:^(Open Folder)(.*)$" - "float, title:^(Save As)(.*)$" - "float, title:^(Library)(.*)$" - "float, initialClass:^(xdg-desktop-portal-.*)$" - - # Control Application Rules - "float, class:^(Network)$" - "float, class:^(pavucontrol)$" - "float, class:^(Color Picker)$" - "float, class:^(File Picker)$" - "float, class:^(nm-connection-editor)$" - "float, class:pavucontrol-qt" - "float, class:pavucontrol" - "float, title:^(Media viewer)$" - "float, title:^(Volume Control)$" - "float, title:^(Picture-in-Picture)$" - "float, class:^(blueberry.py)$" - "float, class:Lxappearance" - "pseudo, class:fcitx" - "size 50% 50%, title:^(Volume Control)$" - - # Application Rules - "float, class:^(transmission-gtk)$" - "float, class:viewnior" - "float, class:feh" - "float, class:^(steam)$" - "float, class:file-roller" - "center, class:feh" - "workspace 9, initialTitle:^(Spotify Premium)$" - "tile, initialTitle:^(Photopea)$" - "tile, initialTitle:^(WorldsPlayer by Worlds Inc)$" - # "size 75% 75%, class:feh" - - # XWayland Video Bridge - "noblur, class:^(xwaylandvideobridge)$" - "noanim, class:^(xwaylandvideobridge)$" - "noinitialfocus, class:^(xwaylandvideobridge)$" - "opacity 0.0 override, class:^(xwaylandvideobridge)$" - "maxsize 1 1, class:^(xwaylandvideobridge)$" - - # Tearing - "immediate, class:.*\.exe" - "immediate, class:(steam_app)" - - # Idle Inhibit - # "idleinhibit fullscreen, class:^(*)$" - # "idleinhibit fullscreen, title:^(*)$" - "idleinhibit fullscreen, fullscreen:1" - "idleinhibit focus, class:mpv" - ]; - }; - }; -} diff --git a/meta/desktop/wayland/hyprland/hyprland/scripts/common.sh b/meta/desktop/wayland/hyprland/hyprland/scripts/common.sh deleted file mode 100644 index 25be5b6..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/scripts/common.sh +++ /dev/null @@ -1,146 +0,0 @@ -#!/usr/bin/env bash - -# . "$(dirname "$(readlink -f "${BASH_SOURCE[0]}" 2>/dev/null || echo "${0}")" || true)/common.sh" -# or -# . "${HOME}/.config/hypr/hyprland/scripts/common.sh" - -get_hyprctl_monitors() { - hyprctl monitors -j || true -} - -get_hyprctl_workspaces() { - hyprctl workspaces -j || true -} - -get_focused_monitor() { - (get_hyprctl_monitors || true) | - jq -r '.[] | select(.focused) | .name' -} - -get_active_monitor() { - get_focused_monitor -} - -get_active_workspaces() { - local monitor=$1 - - (get_hyprctl_workspaces || true) | - (jq -r ".[] | select(.monitor == \"${monitor}\") | .id" || true) | - grep -v '-' -} - -get_active_workspace() { - local monitor=$1 - - (get_hyprctl_monitors || true) | - jq -r ".[] | select(.name == \"${monitor}\") | .activeWorkspace.id" -} - -get_current_workspace() { - (hyprctl activeworkspace -j || true) | - jq -r ".id" -} - -get_empty_workspace() { - local monitor=$1 - - (hyprctl workspaces -j || true) | - (jq -r ".[] | select(.monitor == \"${monitor}\" and .windows == 0) | .id" || true) | - (grep -v '-' || true) | - head -n 1 -} - -get_workspace_client_count() { - local workspace=$1 - - (hyprctl workspaces -j || true) | jq -r ".[] | select(.id == ${workspace}) | .windows" -} - -get_relative_target_workspace() { - target_workspace=$1 - workspace=0 - - case "$(get_focused_monitor)" in - "HDMI-A-2") - workspace=$((target_workspace + 10)) - ;; - "DP-2") - workspace=${target_workspace} - ;; - "DP-1") - workspace=$((target_workspace + 20)) - ;; - *) - exit 1 - ;; - esac - - echo "${workspace}" -} - -is_monitor_fullscreen() { - monitor=$1 - - (hyprctl workspaces -j || true) | - jq -r ".[] | select(.monitor == \"${monitor}\") | select(.id == $(get_active_workspace "${monitor}" || true)) | .hasfullscreen" -} - -get_relative_target_monitor() { - direction=$1 - ignore_fullscreen=${2:-0} - - case $(get_focused_monitor) in - "HDMI-A-2") - if [[ "${direction}" == "right" ]]; then - target_monitor="DP-2" - else - target_monitor="DP-1" - fi - ;; - "DP-2") - if [[ "${direction}" == "right" ]]; then - target_monitor="DP-1" - else - target_monitor="HDMI-A-2" - fi - ;; - "DP-1") - if [[ "${direction}" == "left" ]]; then - target_monitor="DP-2" - else - target_monitor="HDMI-A-2" - fi - ;; - *) - exit 1 - ;; - esac - - if [[ "$(is_monitor_fullscreen "${target_monitor}")" == "true" && "${ignore_fullscreen}" = 0 ]]; then - case $target_monitor in - "HDMI-A-2") - if [[ "$direction" == "right" ]]; then - target_monitor="DP-2" - else - target_monitor="DP-1" - fi - ;; - "DP-2") - if [[ "$direction" == "right" ]]; then - target_monitor="DP-1" - else - target_monitor="HDMI-A-2" - fi - ;; - "DP-1") - if [[ "$direction" == "left" ]]; then - target_monitor="DP-2" - else - target_monitor="HDMI-A-2" - fi - ;; - esac - fi - - echo "${target_monitor}" -} diff --git a/meta/desktop/wayland/hyprland/hyprland/scripts/fake_fullscreen_status b/meta/desktop/wayland/hyprland/hyprland/scripts/fake_fullscreen_status deleted file mode 100755 index e198758..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/scripts/fake_fullscreen_status +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env bash - -. "${HOME}/.config/hypr/hyprland/scripts/common.sh" - -previous_id=$(cat /tmp/fake_fullscreen_notify_id 2>/dev/null) -previous_id_flag="" - -if [[ -n "${previous_id}" ]]; then - previous_id_flag="-r ${previous_id}" -fi - -id=$(notify-send -p ${previous_id_flag} "$(hyprctl activewindow -j | jq -r '.title') - -Fake fullscreen is $([[ "$(hyprctl activewindow -j | jq -r '.fakeFullscreen')" == "true" ]] && - echo "enabled" || - echo "disabled").") - -echo "${id}" >/tmp/fake_fullscreen_notify_id diff --git a/meta/desktop/wayland/hyprland/hyprland/scripts/hycov_easymotion b/meta/desktop/wayland/hyprland/hyprland/scripts/hycov_easymotion deleted file mode 100755 index ab7c3bb..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/scripts/hycov_easymotion +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env dash - -workspace_name=$(hyprctl -j activeworkspace | jq -r '.name') - -if [ "${workspace_name}" = "OVERVIEW" ]; then - hyprctl dispatch hycov:leaveoverview -else - hyprctl dispatch hycov:enteroverview - hyprctl dispatch 'easymotion action:hyprctl --batch "dispatch focuswindow address:{} ; dispatch hycov:leaveoverview"' -fi diff --git a/meta/desktop/wayland/hyprland/hyprland/scripts/initialise_gtk b/meta/desktop/wayland/hyprland/hyprland/scripts/initialise_gtk deleted file mode 100755 index 861aa12..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/scripts/initialise_gtk +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env dash - -THEME='WhiteSur-Dark' -ICONS='WhiteSur-dark' -FONT='SF Pro Text' -# CURSOR='WhiteSur-cursors' -CURSOR='Bibata-Modern-Ice' -CURSOR_SIZE='18' -SCHEMA='gsettings set org.gnome.desktop.interface' - -apply_themes() { - ${SCHEMA} gtk-theme "${THEME}" - ${SCHEMA} icon-theme "${ICONS}" - ${SCHEMA} cursor-theme "${CURSOR}" - ${SCHEMA} cursor-size "${CURSOR_SIZE}" - ${SCHEMA} font-name "${FONT}" -} - -apply_themes diff --git a/meta/desktop/wayland/hyprland/hyprland/scripts/initialise_waybar b/meta/desktop/wayland/hyprland/hyprland/scripts/initialise_waybar deleted file mode 100755 index 09f7ff9..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/scripts/initialise_waybar +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env dash - -CONFIG_FILES="${HOME}/.config/waybar/config.json ${HOME}/.config/waybar/default-modules.json ${HOME}/.config/waybar/style.css ${HOME}/.cache/wal/colors-waybar.css" - -trap "pkill -x waybar" EXIT - -\cp -r ~/.cache/wal/colors-waybar.css ~/.config/waybar/ - -while true; do - if ! pgrep -x "waybar" >/dev/null; then - waybar -c ~/.config/waybar/config.json -s ~/.config/waybar/style.css & - fi - - inotifywait -e create,modify ${CONFIG_FILES} - - pkill -x waybar - - while pgrep -x waybar >/dev/null; do sleep 0.5; done -done diff --git a/meta/desktop/wayland/hyprland/hyprland/scripts/initialise_xdg_portal b/meta/desktop/wayland/hyprland/hyprland/scripts/initialise_xdg_portal deleted file mode 100755 index 10470eb..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/scripts/initialise_xdg_portal +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env dash - -sleep 1 - -killall -e xdg-desktop-portal-hyprland -killall -e xdg-desktop-portal-wlr -killall xdg-desktop-portal - -/usr/lib/xdg-desktop-portal-hyprland & - -sleep 2 - -/usr/lib/xdg-desktop-portal & diff --git a/meta/desktop/wayland/hyprland/hyprland/scripts/move_focus_to_monitor b/meta/desktop/wayland/hyprland/hyprland/scripts/move_focus_to_monitor deleted file mode 100755 index 27562a9..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/scripts/move_focus_to_monitor +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -. "${HOME}/.config/hypr/hyprland/scripts/common.sh" - -target_monitor=$(get_relative_target_monitor "$1" 1) - -if [[ -n "${target_monitor}" ]]; then - hyprctl dispatch focusmonitor "${target_monitor}" -fi diff --git a/meta/desktop/wayland/hyprland/hyprland/scripts/move_window_to_monitor b/meta/desktop/wayland/hyprland/hyprland/scripts/move_window_to_monitor deleted file mode 100755 index 06e4f94..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/scripts/move_window_to_monitor +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env bash - -. "${HOME}/.config/hypr/hyprland/scripts/common.sh" - -target_monitor=$(get_relative_target_monitor "$1") -target_workspace=$(get_active_workspace "${target_monitor}") - -# target_workspace=$(get_empty_workspace $target_monitor) - -# if [[ -z "$target_workspace" ]]; then -# target_workspace=$(get_active_workspaces $target_monitor | head -n 1) -# fi - -if [[ -n "${target_workspace}" ]]; then - hyprctl dispatch movetoworkspace "${target_workspace}" -fi diff --git a/meta/desktop/wayland/hyprland/hyprland/scripts/move_window_to_workspace b/meta/desktop/wayland/hyprland/hyprland/scripts/move_window_to_workspace deleted file mode 100755 index 4256a9f..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/scripts/move_window_to_workspace +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env bash - -. "${HOME}/.config/hypr/hyprland/scripts/common.sh" - -initial_active_workspace="$(get_current_workspace)" -target_workspace="$(get_relative_target_workspace "${1}")" - -hyprctl dispatch movetoworkspace "${target_workspace}" - -if [[ $(get_workspace_client_count "${target_workspace}") -gt 2 ]]; then - hyprctl dispatch workspace "${initial_active_workspace}" -fi diff --git a/meta/desktop/wayland/hyprland/hyprland/scripts/switch_workspace b/meta/desktop/wayland/hyprland/hyprland/scripts/switch_workspace deleted file mode 100755 index fc8900c..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/scripts/switch_workspace +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash - -. "${HOME}/.config/hypr/hyprland/scripts/common.sh" - -hyprctl dispatch workspace "$(get_relative_target_workspace "${1}")" diff --git a/meta/desktop/wayland/hyprland/hyprland/scripts/toggle_gaps b/meta/desktop/wayland/hyprland/hyprland/scripts/toggle_gaps deleted file mode 100755 index d593ab2..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/scripts/toggle_gaps +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env dash - -inner_gap_size=5 -outer_gap_size=10 - -if [ "$(hyprctl getoption general:gaps_in | awk '{print $3}' || true)" -eq 0 ] && - [ "$(hyprctl getoption general:gaps_out | awk '{print $3}' || true)" -eq 0 ]; then - hyprctl keyword general:gaps_in "${inner_gap_size}" - hyprctl keyword general:gaps_out "${outer_gap_size}" -else - hyprctl keyword general:gaps_in 0 - hyprctl keyword general:gaps_out 0 -fi diff --git a/meta/desktop/wayland/hyprland/hyprland/scripts/toggle_layout b/meta/desktop/wayland/hyprland/hyprland/scripts/toggle_layout deleted file mode 100755 index 1ef8774..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/scripts/toggle_layout +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env dash - -layout=$(hyprctl -j getoption general:layout) -new_layout="" - -case "$(echo "${layout}" | jq -r .str)" in -dwindle) - hyprctl keyword general:layout master - - new_layout="master" - - ;; -master) - hyprctl keyword general:layout dwindle - - new_layout="dwindle" - - ;; -*) ;; -esac - -notify-send "You've changed the layout to ${new_layout}." diff --git a/meta/desktop/wayland/hyprland/hyprland/workspaces.nix b/meta/desktop/wayland/hyprland/hyprland/workspaces.nix deleted file mode 100644 index 89644ae..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/workspaces.nix +++ /dev/null @@ -1,38 +0,0 @@ -_: { - wayland.windowManager.hyprland.settings.workspace = ( - let - generateWorkspaces = monitor: workspaces: offset: - builtins.genList - (x: - let - ws = - let - c = (x + 1) / workspaces; - in - builtins.toString (x + 1 - (c * workspaces)); - in - [ "${toString (x + offset + 1)}, monitor:${monitor}" ] - ) - workspaces; - generateWorkspacesAll = monitors: tags: - builtins.concatLists (builtins.map - (monitor: generateWorkspaces - (builtins.elemAt monitors monitor) - tags - (builtins.elemAt - (builtins.genList - (index: index * tags) - (builtins.length monitors)) - monitor)) - (builtins.genList (index: index) (builtins.length monitors)) - ); - in - builtins.concatLists (generateWorkspacesAll [ "DP-2" "HDMI-A-2" "DP-1" ] 10) - ) ++ [ - "special:simple_terminal, on-created-empty:[float;center;size 50% 65%] kitty --class simple_terminal" - "special:simple_calculator, on-created-empty:[float;center;size 50% 50%] kitty --class simple_calculator -e bc -lq" - "special:chatgpt, on-created-empty:[float;center;size 65% 75%] thorium-browser --user-data-dir=/home/fuwn/.local/share/spgpt --app='https://chatgpt.com/'" - "special:spotify, on-created-empty:[float;center;size 65% 90%] LD_PRELOAD=/usr/lib/spotifywm.so /opt/spotify/spotify" - "special:calculator, on-created-empty:[float;center;size 50% 50%] qalculate-gtk" - ]; -} diff --git a/meta/desktop/wayland/meta/default.nix b/meta/desktop/wayland/meta/default.nix deleted file mode 100644 index 0115f30..0000000 --- a/meta/desktop/wayland/meta/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -_: { - imports = [ - ./screenshot - ]; -} diff --git a/meta/desktop/wayland/meta/screenshot/default.nix b/meta/desktop/wayland/meta/screenshot/default.nix deleted file mode 100644 index 5900ee2..0000000 --- a/meta/desktop/wayland/meta/screenshot/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - grim - slurp - ]; -} diff --git a/meta/desktop/wayland/waybar/default.nix b/meta/desktop/wayland/waybar/default.nix deleted file mode 100644 index a582651..0000000 --- a/meta/desktop/wayland/waybar/default.nix +++ /dev/null @@ -1,91 +0,0 @@ -{ pkgs, ... }: { - programs.waybar = { - enable = true; - style = ./waybar/style.css; - settings = ( - let - defaultModules = - (import ./waybar/default-modules.nix { - inherit pkgs; - }); - hyprland-workspaces-base = { - disable-scroll = true; - disable-markup = false; - all-outputs = false; - format = "{icon}"; - }; - in - [ - (defaultModules // { - output = "HDMI-A-2"; - "hyprland/workspaces" = hyprland-workspaces-base // { - format-icons = { - "11" = "一"; - "12" = "二"; - "13" = "三"; - "14" = "四"; - "15" = "五"; - "16" = "六"; - "17" = "七"; - "18" = "八"; - "19" = "九"; - "20" = "十"; - }; - }; - }) - (defaultModules // { - output = "DP-2"; - "hyprland/workspaces" = hyprland-workspaces-base // { - format-icons = { - "1" = "一"; - "2" = "二"; - "3" = "三"; - "4" = "四"; - "5" = "五"; - "6" = "六"; - "7" = "七"; - "8" = "八"; - "9" = "九"; - "10" = "十"; - }; - }; - }) - (defaultModules // { - output = "DP-1"; - "hyprland/workspaces" = hyprland-workspaces-base // { - format-icons = { - "21" = "一"; - "22" = "二"; - "23" = "三"; - "24" = "四"; - "25" = "五"; - "26" = "六"; - "27" = "七"; - "28" = "八"; - "29" = "九"; - "30" = "十"; - }; - }; - }) - ] - ); - }; - xdg.configFile = ( - let - scripts = [ - "mediaplayer.py" - ]; - in - ( - builtins.listToAttrs (map - (script: { - name = "waybar/scripts/${script}"; - - value = { - source = ./waybar/scripts/${script}; - }; - }) - scripts) - ) - ); -} diff --git a/meta/desktop/wayland/waybar/waybar/default-modules.nix b/meta/desktop/wayland/waybar/waybar/default-modules.nix deleted file mode 100644 index a793332..0000000 --- a/meta/desktop/wayland/waybar/waybar/default-modules.nix +++ /dev/null @@ -1,214 +0,0 @@ -{ pkgs, ... }: { - layer = "top"; - position = "top"; - margin-left = 8; - margin-right = 8; - height = 40; - - bluetooth = { - format = ""; - on-click = "${pkgs.blueberry}/bin/blueberry"; - }; - - clock = { - locale = "ja_JP.utf8"; - interval = 5; - tooltip-format = "{calendar}"; - # format = "{:%m月 %d日 %H:%M:%S}"; - format = "{:L%m月 %d日 %H:%M}"; - format-alt = "{:L%G年%b %d日 %A}"; - }; - - # For when clock doesn't work - "custom/clock" = { - exec = "date '+%m月 %d日 %H:%M'"; - tooltip = false; - interval = 5; - }; - - cpu = { - interval = 5; - format = " {usage}% ({load})"; - - states = { - warning = 70; - critical = 90; - }; - - on-click = "kitty -e '${pkgs.bottom}/bin/btm'"; - }; - - memory = { - interval = 5; - format = " {}%"; - format-alt = " {used:0.1f}/{total:0.1f}ギガ"; - - # I might remove these. I have 64GB of RAM .... - states = { - warning = 70; - critical = 90; - }; - }; - - network = { - interval = 1; - # format-wifi = " {bandwidthUpBytes} {bandwidthDownBytes}", - # format-ethernet = " {bandwidthUpBytes} {bandwidthDownBytes}", - format = " {bandwidthUpBytes}  {bandwidthDownBytes}"; - format-disconnected = "⚠ Disconnected"; - tooltip-format = "{ifname}: {ipaddr}"; - on-click = "kitty -e 'nmtui'"; - }; - - "hyprland/mode" = { - format = "{}"; - tooltip = false; - }; - - "hyprland/window" = { - format = "{}"; - max-length = 120; - separate-outputs = true; - icon = false; - - rewrite = { - "(.*) - Thorium" = "󰖟 $1"; - "(.*) - NVIM" = " $1"; - "ChatGPT" = " ChatGPT"; - "~(.*)" = " ~$1"; - "…(.*)" = " …$1"; - "zsh" = " ~"; - "fish" = " ~"; - "kitty" = " ~"; - "Volume Control" = " Volume Control"; - "Bluetooth" = " Bluetooth"; - "JamesDSP for Linux" = "󰺢 JamesDSP"; - }; - }; - - pulseaudio = { - scroll-step = 1; - format = "{icon} {volume}%"; - # format-bluetooth = "{volume}% {icon}  {format_source}"; - # format-bluetooth-muted = " {icon}  {format_source}"; - format-muted = "󰸈"; - - format-icons = { - headphone = "󰋋"; - hands-free = "וֹ"; - headset = "󱡏"; - phone = ""; - portable = ""; - car = ""; - - default = [ "" ]; - }; - - on-click = "pactl set-sink-mute @DEFAULT_SINK@ toggle"; - on-click-right = "${pkgs.pavucontrol}/bin/pavucontrol"; - on-scroll-up = "pactl set-sink-volume @DEFAULT_SINK@ +2%"; - on-scroll-down = "pactl set-sink-volume @DEFAULT_SINK@ -2%"; - }; - - tray = { - spacing = 10; - show-passive-items = true; - }; - - "image#album-art" = { - path = "/tmp/mediaplayer_art"; - size = 22.5; # (18 + (18 / 4)) - interval = 5; - on-click = "${pkgs.playerctl}/bin/playerctl play-pause"; - }; - - "custom/media" = { - format = "{icon} {}"; - return-type = "json"; - max-length = 40; - - format-icons = { - spotify = " "; - default = "󰗃 "; - }; - - escape = true; - exec = "/usr/bin/env python3 ~/.config/waybar/scripts/mediaplayer.py 2> /dev/null"; - on-click = "${pkgs.playerctl}/bin/playerctl play-pause"; - on-scroll-up = "${pkgs.playerctl}/bin/playerctl next"; - on-scroll-down = "${pkgs.playerctl}/bin/playerctl previous"; - }; - - cava = { - framerate = 280; - autosens = 1; - sensitivity = 3; - bars = 26; - lower_cutoff_freq = 50; - higher_cutoff_freq = 10000; - method = "pipewire"; - source = "auto"; - stereo = true; - reverse = true; - bar_delimiter = 0; - monstercat = false; - waves = false; - hide_on_silence = true; - noise_reduction = 0.77; - input_delay = 0; - on-click = "${pkgs.playerctl}/bin/playerctl play-pause"; - - # actions = { - # on-click-right = "mode"; - # }; - - # format-icons = ["░", "▒", "▓", "█", "█", "█", "█", "█"] - # format-icons = ["⎺", "⎻", "⎼", "⎽", "⎼", "⎻", "⎺", "⎹"] - # format-icons = ["▏", "▎", "▍", "▌", "▋", "▊", "▉", "█"] - format-icons = [ "⠁" "⠃" "⠇" "⠋" "⠛" "⠟" "⠿" "⣿" ]; - # format-icons = ["◰", "◳", "◲", "◱", "▘", "▝", "▖", "▗"] - # format-icons = ["▖", "▗", "▘", "▝", "▚", "▞", "▛", "▟"] - # format-icons = ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█", "▉", "▊"] - # format-icons = ["⎯", "⎰", "⎱", "⎲", "⎳", "⎴", "⎵", "⎶"] - # format-icons = ["⎺", "⎻", "⎼", "⎽", "⎾", "⎿", "⏀", "⏁"] - # format-icons = ["♪", "♫", "♬", "♭", "♮", "♯", "♩", "♪"] - # format-icons = ["→", "⇉", "⇒", "⇉", "→", "⇉", "⇒", "⇉"] - # format-icons = ["·", ":", "⁙", "⁘", "⁙", ":", "·", "•"] - # format-icons = ["○", "◔", "◑", "◕", "●", "◍", "◎", "◉"] - # format-icons = ["△", "▲", "▴", "▸", "▶", "▹", "►", "▻"] - # format-icons = ["◇", "◈", "◉", "◍", "◎", "◯", "⦿", "◑"] - # format-icons = ["-", "–", "—", "––", "–––", "——", "———", "——––"] - # format-icons = ["-", "=", "≡", "≣", "≠", "≢", "≜", "≝"] - # format-icons = ["✓", "✔", "✕", "✖", "✗", "✘", "✙", "✚"] - # format-icons = ["✩", "✪", "✫", "✬", "✭", "✮", "✯", "✰"] - }; - - "custom/gpu" = { - exec = "nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader | sed 's/ %/%/'"; - interval = 5; - format = " {}"; - on-click = "kitty -e 'nvtop'"; - }; - - modules-left = [ - "hyprland/workspaces" - "hyprland/window" - "custom/media" - "image#album-art" - ]; - - modules-center = [ - "clock" - ]; - - modules-right = [ - "cava" - # "network" - "tray" - "cpu" - "custom/gpu" - "memory" - "bluetooth" - "pulseaudio" - ]; -} diff --git a/meta/desktop/wayland/waybar/waybar/scripts/mediaplayer.py b/meta/desktop/wayland/waybar/waybar/scripts/mediaplayer.py deleted file mode 100755 index c44ee0b..0000000 --- a/meta/desktop/wayland/waybar/waybar/scripts/mediaplayer.py +++ /dev/null @@ -1,152 +0,0 @@ -#!/usr/bin/env python3 - -import argparse -import logging -import os -import sys -import signal -import gi -import json - -gi.require_version("Playerctl", "2.0") - -from gi.repository import Playerctl, GLib - -logger = logging.getLogger(__name__) - - -def write_output(text, player): - logger.info("Writing output") - - output = { - "text": text, - "class": "custom-" + player.props.player_name, - "alt": player.props.player_name, - "art": player.props.metadata["mpris:artUrl"], - } - - sys.stdout.write(json.dumps(output) + "\n") - sys.stdout.flush() - - -def on_play(player, status, manager): - logger.info("Received new playback status") - on_metadata(player, player.props.metadata, manager) - - -def on_metadata(player, metadata, manager): - logger.info("Received new metadata") - - track_info = "" - - if ( - player.props.player_name == "spotify" - and "mpris:trackid" in metadata.keys() - and ":ad:" in player.props.metadata["mpris:trackid"] - ): - track_info = "AD PLAYING" - elif player.get_artist() != "" and player.get_title() != "": - track_info = "{title} - {artist}".format( - artist=player.get_artist(), title=player.get_title() - ) - else: - track_info = player.get_title() - - if "file://" in player.props.metadata["mpris:artUrl"]: - os.system( - f"cp $(echo '{player.props.metadata['mpris:artUrl']}' | sed -E 's/file:\\/\\///g') /tmp/mediaplayer_art" - ) - else: - os.system( - f"curl --silent $(echo '{player.props.metadata['mpris:artUrl']}' | sed -E 's/file:\\/\\///g') --output /tmp/mediaplayer_art" - ) - - # if player.props.status != 'Playing' and track_info: - # track_info = ' ' + track_info - - write_output(track_info, player) - - -def on_player_appeared(manager, player, selected_player=None): - if player is not None and ( - selected_player is None or player.name == selected_player - ): - init_player(manager, player) - else: - logger.debug("New player appeared, but it's not the selected player, skipping") - - -def on_player_vanished(manager, player): - logger.info("Player has vanished") - sys.stdout.write("\n") - sys.stdout.flush() - os.system("rm /tmp/mediaplayer_art") - - -def init_player(manager, name): - logger.debug("Initialize player: {player}".format(player=name.name)) - - player = Playerctl.Player.new_from_name(name) - - player.connect("playback-status", on_play, manager) - player.connect("metadata", on_metadata, manager) - manager.manage_player(player) - on_metadata(player, player.props.metadata, manager) - - -def signal_handler(sig, frame): - logger.debug("Received signal to stop, exiting") - sys.stdout.write("\n") - sys.stdout.flush() - # loop.quit() - sys.exit(0) - - -def parse_arguments(): - parser = argparse.ArgumentParser() - - parser.add_argument("-v", "--verbose", action="count", default=0) - parser.add_argument("--player") - - return parser.parse_args() - - -def main(): - arguments = parse_arguments() - logging.basicConfig( - stream=sys.stderr, - level=logging.DEBUG, - format="%(name)s %(levelname)s %(message)s", - ) - - logger.setLevel(max((3 - arguments.verbose) * 10, 0)) - logger.debug("Arguments received {}".format(vars(arguments))) - - manager = Playerctl.PlayerManager() - loop = GLib.MainLoop() - - manager.connect( - "name-appeared", lambda *args: on_player_appeared(*args, arguments.player) - ) - manager.connect("player-vanished", on_player_vanished) - signal.signal(signal.SIGINT, signal_handler) - signal.signal(signal.SIGTERM, signal_handler) - signal.signal(signal.SIGPIPE, signal.SIG_DFL) - - for player in manager.props.player_names: - if arguments.player is not None and arguments.player != player.name: - logger.debug( - "{player} is not the filtered player, skipping it".format( - player=player.name - ) - ) - - continue - - init_player(manager, player) - - loop.run() - - -if __name__ == "__main__": - main() diff --git a/meta/desktop/wayland/waybar/waybar/style.css b/meta/desktop/wayland/waybar/waybar/style.css deleted file mode 100644 index 9a85e83..0000000 --- a/meta/desktop/wayland/waybar/waybar/style.css +++ /dev/null @@ -1,134 +0,0 @@ -@import "/home/fuwn/.cache/wal/colors-waybar.css"; - -* { - /* font-family: CartographCF Nerd Font, Iosevka Nerd Font, cursive; */ - /* font-family: Noto Sans Mono, Sarasa Mono J, cursive; */ - /* font-family: SF Mono, cursive; */ - /* font-family: MesloLGS NF; */ - font-family: SF Pro, Hiragino Sans, cursive; - font-size: 15px; -} - -window#waybar { - background-color: rgba(0, 0, 0, 0); - color: @foreground; - /* -gtk-icon-shadow: */ - /* -1px 0 #ffffff, */ - /* 0 1px #ffffff, */ - /* 1px 0 #ffffff, */ - /* 0 -1px #ffffff; */ -} - -#battery, -#cava, -#custom-know, -#clock, -#custom-clock, -#backlight, -#cpu, -#custom-keyboard-layout, -#memory, -#mode, -#custom-weather, -#network, -#pulseaudio, -#temperature, -#tray, -#idle_inhibitor, -#window, -#bluetooth, -#custom-power, -#workspaces, -#custom-media, -#custom-gpu, -#custom-PBPbattery { - /* padding: 0.25rem 0.75rem; */ - /* margin: 10px 5px 0px 0; */ - padding: 5px 15px; - margin: 10px 1rem 0px 0; - background-color: @background; - border-radius: 10px; /* 9 */ - color: @foreground; -} - -#image { - margin-top: 10px; - border-top-right-radius: 10px; - border-bottom-right-radius: 10px; - background-color: @background; - margin-right: 1rem; - padding-right: 1rem; -} - -#image > * { - border-radius: 10px; -} - -#image.empty { - background-color: transparent; - min-width: 0; - min-height: 0; - margin: 0; - padding: 0; -} - -window#waybar #custom-media { - border-top-right-radius: 0; - border-bottom-right-radius: 0; - padding-right: 1rem; - margin-right: 0; -} - -window#waybar.empty #window { - background-color: transparent; - padding: 0; - margin: 0; -} - -window#custom-media.empty #window { - background-color: transparent; -} - -#workspaces button.active { - color: @color11; -} - -#workspaces button:hover { - background-color: unset; -} - -#pulseaudio { - border-top-left-radius: 0; - border-bottom-left-radius: 0; - margin-left: 0; - padding-left: 0.5rem; -} - -#bluetooth { - border-top-right-radius: 0; - border-bottom-right-radius: 0; - margin-right: 0; - padding-right: 0.5rem; -} - -#memory { - border-top-left-radius: 0; - border-bottom-left-radius: 0; - margin-left: 0; - padding-left: 0.5rem; -} - -#custom-gpu { - border-radius: 0; - margin-right: 0; - margin-left: 0; - padding-right: 0.5rem; - padding-left: 0.5rem; -} - -#cpu { - border-top-right-radius: 0; - border-bottom-right-radius: 0; - margin-right: 0; - padding-right: 0.5rem; -} diff --git a/meta/imagery/default.nix b/meta/imagery/default.nix deleted file mode 100644 index 38c92e8..0000000 --- a/meta/imagery/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - nsxiv - viewnior - feh - viu - ]; -} diff --git a/meta/language/codespell/default.nix b/meta/language/codespell/default.nix deleted file mode 100644 index 9018b9f..0000000 --- a/meta/language/codespell/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - codespell - ]; -} diff --git a/meta/language/default.nix b/meta/language/default.nix deleted file mode 100644 index 3a48e40..0000000 --- a/meta/language/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -_: { - imports = [ - ./codespell - ]; -} diff --git a/meta/rice/bottom/default.nix b/meta/rice/bottom/default.nix deleted file mode 100644 index 4acf218..0000000 --- a/meta/rice/bottom/default.nix +++ /dev/null @@ -1,195 +0,0 @@ -{ pkgs, ... }: { - programs.bottom.enable = true; - - xdg.configFile."bottom/bottom.toml".text = '' - # This is a default config file for bottom. All of the settings are commented - # out by default; if you wish to change them uncomment and modify as you see - # fit. - - # This group of options represents a command-line flag/option. Flags explicitly - # added when running (ie: btm -a) will override this config file if an option - # is also set here. - - [flags] - # Whether to hide the average cpu entry. - #hide_avg_cpu = false - # Whether to use dot markers rather than braille. - #dot_marker = false - # The update rate of the application. - rate = "250ms" - # Whether to put the CPU legend to the left. - #left_legend = false - # Whether to set CPU% on a process to be based on the total CPU or just current usage. - #current_usage = false - # Whether to set CPU% on a process to be based on the total CPU or per-core CPU% (not divided by the number of cpus). - #unnormalized_cpu = false - # Whether to group processes with the same name together by default. - #group_processes = false - # Whether to make process searching case sensitive by default. - #case_sensitive = false - # Whether to make process searching look for matching the entire word by default. - #whole_word = false - # Whether to make process searching use regex by default. - #regex = false - # Defaults to Celsius. Temperature is one of: - #temperature_type = "k" - #temperature_type = "f" - #temperature_type = "c" - #temperature_type = "kelvin" - #temperature_type = "fahrenheit" - #temperature_type = "celsius" - # The default time interval (in milliseconds). - #default_time_value = "60s" - # The time delta on each zoom in/out action (in milliseconds). - #time_delta = 15000 - # Hides the time scale. - #hide_time = false - # Override layout default widget - #default_widget_type = "proc" - #default_widget_count = 1 - # Expand selected widget upon starting the app - #expanded_on_startup = true - # Use basic mode - basic = false - # Use the old network legend style - #use_old_network_legend = false - # Remove space in tables - #hide_table_gap = false - # Show the battery widgets - battery = false - # Disable mouse clicks - #disable_click = false - # Built-in themes. Valid values are "default", "default-light", "gruvbox", "gruvbox-light", "nord", "nord-light" - #color = "default" - # Show memory values in the processes widget as values by default - #mem_as_value = false - # Show tree mode by default in the processes widget. - #tree = false - # Shows an indicator in table widgets tracking where in the list you are. - #show_table_scroll_position = false - # Show processes as their commands by default in the process widget. - #process_command = false - # Displays the network widget with binary prefixes. - #network_use_binary_prefix = false - # Displays the network widget using bytes. - #network_use_bytes = false - # Displays the network widget with a log scale. - #network_use_log = false - # Hides advanced options to stop a process on Unix-like systems. - #disable_advanced_kill = false - # Shows GPU(s) memory - enable_gpu_memory = true - # Shows cache and buffer memory - enable_cache_memory = true - # How much data is stored at once in terms of time. - #retention = "10m" - - # These are flags around the process widget. - - #[processes] - #columns = ["PID", "Name", "CPU%", "Mem%", "R/s", "W/s", "T.Read", "T.Write", "User", "State"] - - # These are all the components that support custom theming. Note that colour support - # will depend on terminal support. - - #[colors] # Uncomment if you want to use custom colors - # Represents the colour of table headers (processes, CPU, disks, temperature). - #table_header_color="LightBlue" - # Represents the colour of the label each widget has. - #widget_title_color="Gray" - # Represents the average CPU color. - #avg_cpu_color="Red" - # Represents the colour the core will use in the CPU legend and graph. - #cpu_core_colors=["LightMagenta", "LightYellow", "LightCyan", "LightGreen", "LightBlue", "LightRed", "Cyan", "Green", "Blue", "Red"] - # Represents the colour RAM will use in the memory legend and graph. - #ram_color="LightMagenta" - # Represents the colour SWAP will use in the memory legend and graph. - #swap_color="LightYellow" - # Represents the colour ARC will use in the memory legend and graph. - #arc_color="LightCyan" - # Represents the colour the GPU will use in the memory legend and graph. - #gpu_core_colors=["LightGreen", "LightBlue", "LightRed", "Cyan", "Green", "Blue", "Red"] - # Represents the colour rx will use in the network legend and graph. - #rx_color="LightCyan" - # Represents the colour tx will use in the network legend and graph. - #tx_color="LightGreen" - # Represents the colour of the border of unselected widgets. - #border_color="Gray" - # Represents the colour of the border of selected widgets. - #highlighted_border_color="LightBlue" - # Represents the colour of most text. - #text_color="Gray" - # Represents the colour of text that is selected. - #selected_text_color="Black" - # Represents the background colour of text that is selected. - #selected_bg_color="LightBlue" - # Represents the colour of the lines and text of the graph. - #graph_color="Gray" - # Represents the colours of the battery based on charge - #high_battery_color="green" - #medium_battery_color="yellow" - #low_battery_color="red" - - # Layout - layouts follow a pattern like this: - # [[row]] represents a row in the application. - # [[row.child]] represents either a widget or a column. - # [[row.child.child]] represents a widget. - # - # All widgets must have the type value set to one of ["cpu", "mem", "proc", "net", "temp", "disk", "empty"]. - # All layout components have a ratio value - if this is not set, then it defaults to 1. - # The default widget layout: - #[[row]] - # ratio=30 - # [[row.child]] - # type="cpu" - #[[row]] - # ratio=40 - # [[row.child]] - # ratio=4 - # type="mem" - # [[row.child]] - # ratio=3 - # [[row.child.child]] - # type="temp" - # [[row.child.child]] - # type="disk" - #[[row]] - # ratio=30 - # [[row.child]] - # type="net" - # [[row.child]] - # type="proc" - # default=true - - - # Filters - you can hide specific temperature sensors, network interfaces, and disks using filters. This is admittedly - # a bit hard to use as of now, and there is a planned in-app interface for managing this in the future: - #[disk_filter] - #is_list_ignored = true - #list = ["/dev/sda\\d+", "/dev/nvme0n1p2"] - #regex = true - #case_sensitive = false - #whole_word = false - - #[mount_filter] - #is_list_ignored = true - #list = ["/mnt/.*", "/boot"] - #regex = true - #case_sensitive = false - #whole_word = false - - #[temp_filter] - #is_list_ignored = true - #list = ["cpu", "wifi"] - #regex = false - #case_sensitive = false - #whole_word = false - - #[net_filter] - #is_list_ignored = true - #list = ["virbr0.*"] - #regex = true - #case_sensitive = false - #whole_word = false - ''; -} diff --git a/meta/rice/btop/default.nix b/meta/rice/btop/default.nix deleted file mode 100644 index d483420..0000000 --- a/meta/rice/btop/default.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ pkgs, ... }: { - programs.btop.enable = true; -} diff --git a/meta/rice/cpufetch/default.nix b/meta/rice/cpufetch/default.nix deleted file mode 100644 index b045b4a..0000000 --- a/meta/rice/cpufetch/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - cpufetch - ]; -} diff --git a/meta/rice/default.nix b/meta/rice/default.nix deleted file mode 100644 index 56e4bc1..0000000 --- a/meta/rice/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -_: { - imports = [ - ./bottom - ./btop - ./cpufetch - ./fastfetch - ./iotop - ]; -} diff --git a/meta/rice/fastfetch/default.nix b/meta/rice/fastfetch/default.nix deleted file mode 100644 index 8ae6284..0000000 --- a/meta/rice/fastfetch/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ pkgs, ... }: { - programs.fastfetch = { - enable = true; - - settings = { - logo = { - source = "~/Downloads/91363-1550240807.png"; - width = 30; - - padding = { - top = 0; - }; - }; - - modules = [ - "title" - "break" - "os" - "kernel" - "uptime" - "packages" - "shell" - "de" - "wm" - "terminal" - "cpu" - "gpu" - "memory" - "break" - "colors" - ]; - }; - }; -} diff --git a/meta/rice/iotop/default.nix b/meta/rice/iotop/default.nix deleted file mode 100644 index a219adc..0000000 --- a/meta/rice/iotop/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - iotop - ]; -} diff --git a/meta/spotify/default.nix b/meta/spotify/default.nix deleted file mode 100644 index 034edb9..0000000 --- a/meta/spotify/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - # spotify-edge - spotify-player - ncspot - psst - playerctl - ]; -} diff --git a/meta/steam/default.nix b/meta/steam/default.nix deleted file mode 100644 index c358a60..0000000 --- a/meta/steam/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - steam-tui - ]; - - # programs.steam.enable = true; -} diff --git a/meta/tools/default.nix b/meta/tools/default.nix deleted file mode 100644 index 0fa7981..0000000 --- a/meta/tools/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -_: { - imports = [ - ./http - ./infrastructure - ./languages - ./nix - ./tcp - ]; -} diff --git a/meta/tools/http/default.nix b/meta/tools/http/default.nix deleted file mode 100644 index b917245..0000000 --- a/meta/tools/http/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - httpie - httpie-desktop - ]; -} diff --git a/meta/tools/infrastructure/default.nix b/meta/tools/infrastructure/default.nix deleted file mode 100644 index 756050f..0000000 --- a/meta/tools/infrastructure/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -_: { - imports = [ - ./docker - ./fly - ]; -} diff --git a/meta/tools/infrastructure/docker/default.nix b/meta/tools/infrastructure/docker/default.nix deleted file mode 100644 index 0a17952..0000000 --- a/meta/tools/infrastructure/docker/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - earthly - ]; -} diff --git a/meta/tools/infrastructure/fly/default.nix b/meta/tools/infrastructure/fly/default.nix deleted file mode 100644 index 9e8147e..0000000 --- a/meta/tools/infrastructure/fly/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - flyctl - ]; -} diff --git a/meta/tools/languages/agnostic/default.nix b/meta/tools/languages/agnostic/default.nix deleted file mode 100644 index 77a3086..0000000 --- a/meta/tools/languages/agnostic/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - cmake - tup - valgrind - ]; -} diff --git a/meta/tools/languages/assembly/default.nix b/meta/tools/languages/assembly/default.nix deleted file mode 100644 index b593a41..0000000 --- a/meta/tools/languages/assembly/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - nasm - # nasmfmt - yasm - ]; -} diff --git a/meta/tools/languages/cobol/default.nix b/meta/tools/languages/cobol/default.nix deleted file mode 100644 index 82e5464..0000000 --- a/meta/tools/languages/cobol/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - gnu-cobol - ]; -} diff --git a/meta/tools/languages/default.nix b/meta/tools/languages/default.nix deleted file mode 100644 index 30f7894..0000000 --- a/meta/tools/languages/default.nix +++ /dev/null @@ -1,19 +0,0 @@ -_: { - imports = [ - ./agnostic - # ./assembly - ./cobol - ./gleam - ./go - ./hare - ./javascript - # ./jvm - # ./protobuf - ./python - ./rust - ./shell - # ./vlang - ./yaml - ./zig - ]; -} diff --git a/meta/tools/languages/gleam/default.nix b/meta/tools/languages/gleam/default.nix deleted file mode 100644 index de1ab92..0000000 --- a/meta/tools/languages/gleam/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - gleam - rebar3 - erlang_nox - ]; -} diff --git a/meta/tools/languages/go/default.nix b/meta/tools/languages/go/default.nix deleted file mode 100644 index 3c4a809..0000000 --- a/meta/tools/languages/go/default.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ pkgs, ... }: { - programs.go.enable = true; -} diff --git a/meta/tools/languages/hare/default.nix b/meta/tools/languages/hare/default.nix deleted file mode 100644 index 79fc13b..0000000 --- a/meta/tools/languages/hare/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - hare - ]; -} diff --git a/meta/tools/languages/javascript/default.nix b/meta/tools/languages/javascript/default.nix deleted file mode 100644 index 5aaccda..0000000 --- a/meta/tools/languages/javascript/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - bun - # deno - # nodejs - # typescript - # nodePackages.npm - ]; -} diff --git a/meta/tools/languages/jvm/default.nix b/meta/tools/languages/jvm/default.nix deleted file mode 100644 index d3ab862..0000000 --- a/meta/tools/languages/jvm/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - # kotlin - ]; -} diff --git a/meta/tools/languages/protobuf/default.nix b/meta/tools/languages/protobuf/default.nix deleted file mode 100644 index 21dd9f7..0000000 --- a/meta/tools/languages/protobuf/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - protobuf - ]; -} diff --git a/meta/tools/languages/python/default.nix b/meta/tools/languages/python/default.nix deleted file mode 100644 index 84b15d4..0000000 --- a/meta/tools/languages/python/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - python312 - rye - ]; - - programs.poetry.enable = true; -} diff --git a/meta/tools/languages/rust/default.nix b/meta/tools/languages/rust/default.nix deleted file mode 100644 index 02360d1..0000000 --- a/meta/tools/languages/rust/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - cargo-outdated - cargo-watch - cargo-make - cargo-cache - # cargo-clean-all - rustup - ]; -} diff --git a/meta/tools/languages/shell/default.nix b/meta/tools/languages/shell/default.nix deleted file mode 100644 index 1953aac..0000000 --- a/meta/tools/languages/shell/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - shfmt - ]; -} diff --git a/meta/tools/languages/vlang/default.nix b/meta/tools/languages/vlang/default.nix deleted file mode 100644 index d9da941..0000000 --- a/meta/tools/languages/vlang/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - vlang - ]; -} diff --git a/meta/tools/languages/yaml/default.nix b/meta/tools/languages/yaml/default.nix deleted file mode 100644 index cd91d5e..0000000 --- a/meta/tools/languages/yaml/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - yamllint - ]; -} diff --git a/meta/tools/languages/zig/default.nix b/meta/tools/languages/zig/default.nix deleted file mode 100644 index 821e4ab..0000000 --- a/meta/tools/languages/zig/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - zig - zls - ]; -} diff --git a/meta/tools/nix/default.nix b/meta/tools/nix/default.nix deleted file mode 100644 index fe41b1d..0000000 --- a/meta/tools/nix/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - nil - statix - alejandra - nurl - nix-init - nix-prefetch-git - ]; -} diff --git a/meta/tools/tcp/default.nix b/meta/tools/tcp/default.nix deleted file mode 100644 index 85b6120..0000000 --- a/meta/tools/tcp/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - netcat-openbsd - inetutils - ]; -} -- cgit v1.2.3