diff options
| author | Fuwn <[email protected]> | 2024-06-30 20:27:05 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-06-30 20:27:05 -0700 |
| commit | 03f6d5e3a9a59cf45f4230e99a005a7ac90cc9d3 (patch) | |
| tree | e11608ac9a1775749a17e811bf0275fe71328d25 | |
| parent | wal (diff) | |
| download | home-manager-config-03f6d5e3a9a59cf45f4230e99a005a7ac90cc9d3.tar.xz home-manager-config-03f6d5e3a9a59cf45f4230e99a005a7ac90cc9d3.zip | |
hi
| -rw-r--r-- | flake.nix | 22 | ||||
| -rw-r--r-- | home/fuwn/cli/core/bat/default.nix (renamed from home/fuwn/cli/bat/default.nix) | 0 | ||||
| -rw-r--r-- | home/fuwn/cli/core/default.nix (renamed from home/fuwn/cli/rm-improved/default.nix) | 7 | ||||
| -rw-r--r-- | home/fuwn/cli/core/eza/default.nix (renamed from home/fuwn/cli/eza/default.nix) | 0 | ||||
| -rw-r--r-- | home/fuwn/cli/default.nix | 12 | ||||
| -rw-r--r-- | home/fuwn/cli/dog/default.nix | 5 | ||||
| -rw-r--r-- | home/fuwn/cli/fd/default.nix | 5 | ||||
| -rw-r--r-- | home/fuwn/cli/meta/ai/default.nix | 5 | ||||
| -rw-r--r-- | home/fuwn/cli/meta/default.nix | 1 | ||||
| -rw-r--r-- | home/fuwn/cli/meta/shell/default.nix | 8 | ||||
| -rw-r--r-- | home/fuwn/cli/meta/shell/fish/default.nix | 151 | ||||
| -rw-r--r-- | home/fuwn/cli/meta/shell/starship/default.nix (renamed from home/fuwn/cli/starship/default.nix) | 0 | ||||
| -rw-r--r-- | home/fuwn/cli/nnn/default.nix | 3 | ||||
| -rw-r--r-- | home/fuwn/cli/other/default.nix (renamed from home/fuwn/cli/asciinema/default.nix) | 3 | ||||
| -rw-r--r-- | home/fuwn/gui/ahoviewer/default.nix | 5 | ||||
| -rw-r--r-- | home/fuwn/gui/default.nix | 11 | ||||
| -rw-r--r-- | home/fuwn/gui/foot/default.nix | 3 | ||||
| -rw-r--r-- | home/fuwn/gui/kitty/default.nix | 3 | ||||
| -rw-r--r-- | home/fuwn/gui/meta/default.nix | 5 | ||||
| -rw-r--r-- | home/fuwn/gui/meta/gemini/default.nix | 5 | ||||
| -rw-r--r-- | home/fuwn/gui/warp/default.nix | 5 | ||||
| -rw-r--r-- | home/fuwn/home.nix | 3 | ||||
| -rw-r--r-- | home/fuwn/meta/default.nix | 15 | ||||
| -rw-r--r-- | home/fuwn/meta/desktop/wayland/hyprland/hyprland/binds.nix | 2 | ||||
| -rw-r--r-- | home/fuwn/meta/desktop/wayland/hyprland/hyprland/rules.nix | 1 | ||||
| -rw-r--r-- | home/fuwn/meta/desktop/wayland/hyprland/hyprland/workspaces.nix | 4 | ||||
| -rw-r--r-- | home/fuwn/meta/development/default.nix (renamed from home/fuwn/meta/tools/default.nix) | 1 | ||||
| -rw-r--r-- | home/fuwn/meta/development/http/default.nix (renamed from home/fuwn/meta/tools/http/default.nix) | 0 | ||||
| -rw-r--r-- | home/fuwn/meta/development/infrastructure/default.nix (renamed from home/fuwn/meta/tools/infrastructure/default.nix) | 0 | ||||
| -rw-r--r-- | home/fuwn/meta/development/infrastructure/docker/default.nix (renamed from home/fuwn/meta/tools/infrastructure/docker/default.nix) | 0 | ||||
| -rw-r--r-- | home/fuwn/meta/development/infrastructure/fly/default.nix (renamed from home/fuwn/meta/tools/infrastructure/fly/default.nix) | 0 | ||||
| -rw-r--r-- | home/fuwn/meta/development/languages/agnostic/default.nix (renamed from home/fuwn/meta/tools/languages/agnostic/default.nix) | 0 | ||||
| -rw-r--r-- | home/fuwn/meta/development/languages/assembly/default.nix (renamed from home/fuwn/meta/tools/languages/assembly/default.nix) | 0 | ||||
| -rw-r--r-- | home/fuwn/meta/development/languages/c/default.nix (renamed from home/fuwn/cli/ncdu/default.nix) | 2 | ||||
| -rw-r--r-- | home/fuwn/meta/development/languages/cobol/default.nix (renamed from home/fuwn/meta/tools/languages/cobol/default.nix) | 0 | ||||
| -rw-r--r-- | home/fuwn/meta/development/languages/default.nix (renamed from home/fuwn/meta/tools/languages/default.nix) | 3 | ||||
| -rw-r--r-- | home/fuwn/meta/development/languages/gleam/default.nix (renamed from home/fuwn/meta/tools/languages/gleam/default.nix) | 0 | ||||
| -rw-r--r-- | home/fuwn/meta/development/languages/go/default.nix (renamed from home/fuwn/meta/tools/languages/go/default.nix) | 0 | ||||
| -rw-r--r-- | home/fuwn/meta/development/languages/hare/default.nix (renamed from home/fuwn/meta/tools/languages/hare/default.nix) | 0 | ||||
| -rw-r--r-- | home/fuwn/meta/development/languages/javascript/default.nix (renamed from home/fuwn/meta/tools/languages/javascript/default.nix) | 0 | ||||
| -rw-r--r-- | home/fuwn/meta/development/languages/jvm/default.nix (renamed from home/fuwn/meta/tools/languages/jvm/default.nix) | 0 | ||||
| -rw-r--r-- | home/fuwn/meta/development/languages/protobuf/default.nix (renamed from home/fuwn/meta/tools/languages/protobuf/default.nix) | 0 | ||||
| -rw-r--r-- | home/fuwn/meta/development/languages/python/default.nix (renamed from home/fuwn/meta/tools/languages/python/default.nix) | 0 | ||||
| -rw-r--r-- | home/fuwn/meta/development/languages/rust/default.nix (renamed from home/fuwn/meta/tools/languages/rust/default.nix) | 0 | ||||
| -rw-r--r-- | home/fuwn/meta/development/languages/shell/default.nix (renamed from home/fuwn/meta/tools/languages/shell/default.nix) | 0 | ||||
| -rw-r--r-- | home/fuwn/meta/development/languages/vlang/default.nix (renamed from home/fuwn/meta/tools/languages/vlang/default.nix) | 0 | ||||
| -rw-r--r-- | home/fuwn/meta/development/languages/yaml/default.nix (renamed from home/fuwn/meta/tools/languages/yaml/default.nix) | 0 | ||||
| -rw-r--r-- | home/fuwn/meta/development/languages/zig/default.nix (renamed from home/fuwn/meta/tools/languages/zig/default.nix) | 0 | ||||
| -rw-r--r-- | home/fuwn/meta/development/nix/default.nix (renamed from home/fuwn/meta/tools/nix/default.nix) | 0 | ||||
| -rw-r--r-- | home/fuwn/meta/development/tcp/default.nix (renamed from home/fuwn/meta/tools/tcp/default.nix) | 0 | ||||
| -rw-r--r-- | home/fuwn/meta/development/tools/default.nix (renamed from home/fuwn/cli/navi/default.nix) | 3 | ||||
| -rw-r--r-- | home/fuwn/meta/education/calculator/default.nix (renamed from home/fuwn/meta/calculator/default.nix) | 0 | ||||
| -rw-r--r-- | home/fuwn/meta/education/default.nix (renamed from home/fuwn/gui/anki/default.nix) | 4 | ||||
| -rw-r--r-- | home/fuwn/meta/filesystem/default.nix | 8 | ||||
| -rw-r--r-- | home/fuwn/meta/gaming/default.nix | 2 | ||||
| -rw-r--r-- | home/fuwn/meta/language/codespell/default.nix | 5 | ||||
| -rw-r--r-- | home/fuwn/meta/language/default.nix | 8 | ||||
| -rw-r--r-- | home/fuwn/meta/multimedia/audio/default.nix (renamed from home/fuwn/meta/audio/default.nix) | 6 | ||||
| -rw-r--r-- | home/fuwn/meta/multimedia/audio/spotify/default.nix (renamed from home/fuwn/meta/spotify/default.nix) | 0 | ||||
| -rw-r--r-- | home/fuwn/meta/multimedia/default.nix | 11 | ||||
| -rw-r--r-- | home/fuwn/meta/multimedia/image/default.nix (renamed from home/fuwn/meta/image/default.nix) | 1 | ||||
| -rw-r--r-- | home/fuwn/meta/multimedia/video/anime/default.nix (renamed from home/fuwn/meta/anime/default.nix) | 0 | ||||
| -rw-r--r-- | home/fuwn/meta/multimedia/video/default.nix (renamed from home/fuwn/meta/video/default.nix) | 4 | ||||
| -rw-r--r-- | home/fuwn/meta/rice/btop/default.nix | 3 | ||||
| -rw-r--r-- | home/fuwn/meta/rice/cpufetch/default.nix | 5 | ||||
| -rw-r--r-- | home/fuwn/meta/rice/default.nix | 15 | ||||
| -rw-r--r-- | home/fuwn/meta/rice/glances/default.nix | 828 | ||||
| -rw-r--r-- | home/fuwn/meta/rice/iotop/default.nix | 5 | ||||
| -rw-r--r-- | home/fuwn/meta/scripts/default.nix | 13 | ||||
| -rwxr-xr-x | home/fuwn/meta/scripts/scripts/fim | 16 | ||||
| -rw-r--r-- | home/fuwn/meta/scripts/scripts/tup-init | 25 | ||||
| -rw-r--r-- | home/fuwn/meta/smolnet/bollux/default.nix (renamed from home/fuwn/cli/meta/smolnet/bollux/default.nix) | 0 | ||||
| -rw-r--r-- | home/fuwn/meta/smolnet/bollux/fix_lesskey_nag.patch (renamed from home/fuwn/cli/meta/smolnet/bollux/fix_lesskey_nag.patch) | 0 | ||||
| -rw-r--r-- | home/fuwn/meta/smolnet/default.nix (renamed from home/fuwn/cli/meta/smolnet/default.nix) | 1 | ||||
| -rw-r--r-- | home/fuwn/meta/system/bitwarden/default.nix (renamed from home/fuwn/meta/bitwarden/default.nix) | 0 | ||||
| -rw-r--r-- | home/fuwn/meta/system/default.nix | 10 | ||||
| -rw-r--r-- | home/fuwn/meta/system/terminal/default.nix (renamed from home/fuwn/gui/cool-retro-term/default.nix) | 6 | ||||
| -rw-r--r-- | home/fuwn/meta/system/terminal/foot/default.nix | 49 | ||||
| -rw-r--r-- | home/fuwn/meta/system/terminal/kitty/default.nix | 112 |
79 files changed, 1320 insertions, 110 deletions
@@ -1,5 +1,7 @@ { inputs = { + # nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05"; + # nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; home-manager = { @@ -7,11 +9,8 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - # 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"; hyprland = { @@ -25,7 +24,6 @@ inputs.hyprland.follows = "hyprland"; }; - Hyprspace = { url = "github:KZDKM/Hyprspace"; inputs.hyprland.follows = "hyprland"; @@ -43,7 +41,9 @@ 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; } + system: import nixpkgs { + inherit system; + } ); in { @@ -51,6 +51,18 @@ defaultPackage.x86_64-linux = home-manager.defaultPackage.x86_64-linux; + nixosConfigurations = { + # "ise" = lib.nixosSystem { + # modules = [ + # ./hosts/ise + # ]; + + # extraSpecialArgs = { + # inherit inputs outputs; + # }; + # }; + }; + homeConfigurations = { fuwn = home-manager.lib.homeManagerConfiguration { pkgs = pkgsFor.x86_64-linux; diff --git a/home/fuwn/cli/bat/default.nix b/home/fuwn/cli/core/bat/default.nix index c1dad3f..c1dad3f 100644 --- a/home/fuwn/cli/bat/default.nix +++ b/home/fuwn/cli/core/bat/default.nix diff --git a/home/fuwn/cli/rm-improved/default.nix b/home/fuwn/cli/core/default.nix index d4a5fc1..5585e65 100644 --- a/home/fuwn/cli/rm-improved/default.nix +++ b/home/fuwn/cli/core/default.nix @@ -1,5 +1,12 @@ { pkgs, ... }: { + imports = [ + ./bat + ./eza + ]; + home.packages = with pkgs; [ + dogdns + fd rm-improved ]; } diff --git a/home/fuwn/cli/eza/default.nix b/home/fuwn/cli/core/eza/default.nix index a8d2f57..a8d2f57 100644 --- a/home/fuwn/cli/eza/default.nix +++ b/home/fuwn/cli/core/eza/default.nix diff --git a/home/fuwn/cli/default.nix b/home/fuwn/cli/default.nix index 06a0dbb..45912f4 100644 --- a/home/fuwn/cli/default.nix +++ b/home/fuwn/cli/default.nix @@ -1,19 +1,11 @@ _: { imports = [ - ./asciinema - ./bat - ./dog - ./eza - ./fd + ./core ./meta - ./navi - ./ncdu ./nethogs - ./nnn # ./nvtop - ./rm-improved + ./other ./sloc - ./starship ./tealdeer ./todo ]; diff --git a/home/fuwn/cli/dog/default.nix b/home/fuwn/cli/dog/default.nix deleted file mode 100644 index 437a1a0..0000000 --- a/home/fuwn/cli/dog/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - dogdns - ]; -} diff --git a/home/fuwn/cli/fd/default.nix b/home/fuwn/cli/fd/default.nix deleted file mode 100644 index 92e0e28..0000000 --- a/home/fuwn/cli/fd/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - fd - ]; -} diff --git a/home/fuwn/cli/meta/ai/default.nix b/home/fuwn/cli/meta/ai/default.nix index fe42707..7513348 100644 --- a/home/fuwn/cli/meta/ai/default.nix +++ b/home/fuwn/cli/meta/ai/default.nix @@ -3,4 +3,9 @@ ollama-cuda shell-gpt ]; + + # services.ollama = { + # enable = true; + # acceleration = "cuda"; + # }; } diff --git a/home/fuwn/cli/meta/default.nix b/home/fuwn/cli/meta/default.nix index 073fc94..a7abbbb 100644 --- a/home/fuwn/cli/meta/default.nix +++ b/home/fuwn/cli/meta/default.nix @@ -5,6 +5,5 @@ _: { ./irc ./scripting ./shell - ./smolnet ]; } diff --git a/home/fuwn/cli/meta/shell/default.nix b/home/fuwn/cli/meta/shell/default.nix index 0d60ba0..e304479 100644 --- a/home/fuwn/cli/meta/shell/default.nix +++ b/home/fuwn/cli/meta/shell/default.nix @@ -1,5 +1,13 @@ { pkgs, ... }: { + imports = [ + ./fish + ./starship + ]; + home.packages = with pkgs; [ + asciinema + navi shellclear + zoxide ]; } diff --git a/home/fuwn/cli/meta/shell/fish/default.nix b/home/fuwn/cli/meta/shell/fish/default.nix new file mode 100644 index 0000000..291e5a4 --- /dev/null +++ b/home/fuwn/cli/meta/shell/fish/default.nix @@ -0,0 +1,151 @@ +{ pkgs, ... }: { + programs.fish = { + enable = true; + + shellInit = '' + if status is-interactive + set fish_greeting + + fish_vi_key_bindings + + starship init fish | source + + function fish_postexec --on-event fish_postexec + if test "$argv" != "clear" + echo + end + end + + function vpn + env BIND_INTERFACE=wgpia0 LD_PRELOAD=/usr/lib/bindToInterface.so $argv + end + + cat ~/.cache/wal/sequences + end + + set -l config_home (set -q XDG_CONFIG_HOME; and echo $XDG_CONFIG_HOME; or echo $HOME/.config) + + set HISTSIZE -1 + set HISTFILESIZE -1 + set SAVEHIST -1 + + source "$config_home/shell/profile" + bass source "~/.nix-profile/etc/profile.d/hm-session-vars.sh" + + bind \ce edit_command_buffer + + zoxide init fish | source + ''; + + plugins = [ + { + name = "fzf.fish"; + + src = pkgs.fetchFromGitHub { + owner = "patrickf1"; + repo = "fzf.fish"; + rev = "8920367cf85eee5218cc25a11e209d46e2591e7a"; + sha256 = "sha256-T8KYLA/r/gOKvAivKRoeqIwE2pINlxFQtZJHpOy9GMM="; + }; + } + { + name = "bass"; + + src = pkgs.fetchFromGitHub { + owner = "edc"; + repo = "bass"; + rev = "79b62958ecf4e87334f24d6743e5766475bcf4d0"; + sha256 = "sha256-3d/qL+hovNA4VMWZ0n1L+dSM1lcz7P5CQJyy+/8exTc="; + }; + } + { + name = "nvm.fish"; + + src = pkgs.fetchFromGitHub { + owner = "jorgebucaran"; + repo = "nvm.fish"; + rev = "b8edb1ee24cbbf7259196b0cb3c6c4ab65b07929"; + sha256 = "sha256-7JxIQSseBv81SSpWH1pufx8fh9EQhbo3r2nVVREwc58="; + }; + } + { + name = "sponge"; + + src = pkgs.fetchFromGitHub { + owner = "meaningful-ooo"; + repo = "sponge"; + rev = "384299545104d5256648cee9d8b117aaa9a6d7be"; + sha256 = "sha256-MdcZUDRtNJdiyo2l9o5ma7nAX84xEJbGFhAVhK+Zm1w="; + }; + } + { + name = "autopair.fish"; + + src = pkgs.fetchFromGitHub { + owner = "jorgebucaran"; + repo = "autopair.fish"; + rev = "4d1752ff5b39819ab58d7337c69220342e9de0e2"; + sha256 = "sha256-qt3t1iKRRNuiLWiVoiAYOu+9E7jsyECyIqZJ/oRIT1A="; + }; + } + ]; + + shellAliases = { + # Verbosity + cp = "cp -iv"; + mv = "mv -iv"; + # rm = "rm -vI"; + bc = "bc -ql"; + rsync = "rsync -vrPlu"; + mkd = "mkdir -pv"; + yt = "yt-dlp --embed-metadata -i"; + yta = "yt -x -f bestaudio/best"; + ytt = "yt --skip-download --write-thumbnail"; + ffmpeg = "ffmpeg -hide_banner"; + wdic = "wdic --homophones --kanji --color --pager"; + hakuneko = "hakuneko-desktop --no-sandbox"; + fastfetch = "clear && /usr/bin/env fastfetch"; + + # Modern Alternatives & Alias Rewrites + sxiv = "nsxiv"; + unzip = "ripunzip unzip-file"; + nvim = "lvim"; + vim = "lvim"; + vimdiff = "lvim -d"; + rm = "rip"; + + # Colourise + ls = "exa -h --no-quotes --color=auto --group-directories-first"; + grep = "grep --color=auto"; + diff = "diff --color=auto"; + ccat = "highlight --out-format=ansi"; + ip = "ip -color=auto"; + + # Abbreviations + ka = "killall"; + g = "git"; + sdn = "shutdown -h now"; + e = "$EDITOR"; + v = "$EDITOR"; + ff = "fastfetch"; + + # Other + pacbins = "comm -23 <(yay -Qqett | sort) <(yay -Qqg base -g base-devel | sort | uniq)"; + chan = "chan-downloader -c 10"; + taiga = "bottles-cli run -b Taiga -p Taiga"; + rotd = "systemctl --user restart opentabledriver.service"; + ks = "kaguya stream --user-agent 'Mozilla/5.0 (X11; Linux x86_64; rv:120.0) Gecko/20100101 Firefox/120.0'"; + def = "myougiden"; + suzuri = "SUZURI_MINIMAL=1 SUZURI_REVERSE=1 ~/Documents/Code/Git/Fuwn/suzuri/suzuri"; + manga-cli = "bash <(curl -s 'https://raw.githubusercontent.com/justchokingaround/manga-cli/master/manga-cli')"; + "5ch" = "html2md -i 'https://ff5ch.syoboi.jp/' -s section | glow"; + shinobu = "curl --silent https://shinobu.fuwn.workers.dev/shinobu -o /tmp/shinobu && nsxiv /tmp/shinobu"; + auto_subtitle = "source $HOME/Documents/Code/Git/Random/auto-subtitle/venv/bin/activate && auto_subtitle --model medium --task translate --srt_only True"; + steamy = "mangohud gamemoderun steam-runtime"; + koix = "koi -f"; + seamonkey = "$HOME/.local/src/seamonkey/seamonkey-bin"; + doom = "$HOME/.config/emacs/bin/doom"; + lagrange = "SDL_VIDEODRIVER=x11 /usr/bin/lagrange"; + }; + }; +} diff --git a/home/fuwn/cli/starship/default.nix b/home/fuwn/cli/meta/shell/starship/default.nix index 0088038..0088038 100644 --- a/home/fuwn/cli/starship/default.nix +++ b/home/fuwn/cli/meta/shell/starship/default.nix diff --git a/home/fuwn/cli/nnn/default.nix b/home/fuwn/cli/nnn/default.nix deleted file mode 100644 index 06fa7c9..0000000 --- a/home/fuwn/cli/nnn/default.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ pkgs, ... }: { - programs.nnn.enable = true; -} diff --git a/home/fuwn/cli/asciinema/default.nix b/home/fuwn/cli/other/default.nix index 750c52d..f23f7f4 100644 --- a/home/fuwn/cli/asciinema/default.nix +++ b/home/fuwn/cli/other/default.nix @@ -1,5 +1,6 @@ { pkgs, ... }: { home.packages = with pkgs; [ - asciinema + fontpreview + ripunzip ]; } diff --git a/home/fuwn/gui/ahoviewer/default.nix b/home/fuwn/gui/ahoviewer/default.nix deleted file mode 100644 index c6907e1..0000000 --- a/home/fuwn/gui/ahoviewer/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - ahoviewer - ]; -} diff --git a/home/fuwn/gui/default.nix b/home/fuwn/gui/default.nix deleted file mode 100644 index a3ec2d2..0000000 --- a/home/fuwn/gui/default.nix +++ /dev/null @@ -1,11 +0,0 @@ -_: { - 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 deleted file mode 100644 index 8945d61..0000000 --- a/home/fuwn/gui/foot/default.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ pkgs, ... }: { - programs.foot.enable = true; -} diff --git a/home/fuwn/gui/kitty/default.nix b/home/fuwn/gui/kitty/default.nix deleted file mode 100644 index ed2d7e7..0000000 --- a/home/fuwn/gui/kitty/default.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ pkgs, ... }: { - programs.kitty.enable = true; -} diff --git a/home/fuwn/gui/meta/default.nix b/home/fuwn/gui/meta/default.nix deleted file mode 100644 index 7959d11..0000000 --- a/home/fuwn/gui/meta/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -_: { - imports = [ - ./gemini - ]; -} diff --git a/home/fuwn/gui/meta/gemini/default.nix b/home/fuwn/gui/meta/gemini/default.nix deleted file mode 100644 index a9b32ac..0000000 --- a/home/fuwn/gui/meta/gemini/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - geopard - ]; -} diff --git a/home/fuwn/gui/warp/default.nix b/home/fuwn/gui/warp/default.nix deleted file mode 100644 index de37c40..0000000 --- a/home/fuwn/gui/warp/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - warp-terminal - ]; -} diff --git a/home/fuwn/home.nix b/home/fuwn/home.nix index bf97aeb..3d0ca02 100644 --- a/home/fuwn/home.nix +++ b/home/fuwn/home.nix @@ -69,6 +69,8 @@ # sessionVariables = { # EDITOR = "emacs"; + # ref: https://github.com/nix-community/home-manager/issues/354#issuecomment-475803163 + LOCALES_ARCHIVE = "${pkgs.glibcLocales}/lib/locale/locale-archive"; }; # sessionPath = [ @@ -81,7 +83,6 @@ imports = [ ./cli - ./gui ./meta ]; diff --git a/home/fuwn/meta/default.nix b/home/fuwn/meta/default.nix index db9b929..fca7414 100644 --- a/home/fuwn/meta/default.nix +++ b/home/fuwn/meta/default.nix @@ -1,18 +1,15 @@ _: { imports = [ - ./anime - ./audio - ./bitwarden - ./calculator ./desktop + ./development + ./education + ./filesystem # ./gaming - ./image - ./language + ./multimedia ./rice ./scripts - ./spotify + ./smolnet ./steam - ./tools - ./video + ./system ]; } diff --git a/home/fuwn/meta/desktop/wayland/hyprland/hyprland/binds.nix b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/binds.nix index 1a2c8f0..6d63d88 100644 --- a/home/fuwn/meta/desktop/wayland/hyprland/hyprland/binds.nix +++ b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/binds.nix @@ -131,7 +131,7 @@ _: { "$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" + "$mod SHIFT, v, exec, screenshot --now --clipboard && hyprctl dispatch togglespecialworkspace chatgpt && ydotool key 42:1 1:1 1:0 42:0 29:1 47:1 29:0 47:0" # Media keys # ... diff --git a/home/fuwn/meta/desktop/wayland/hyprland/hyprland/rules.nix b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/rules.nix index 862d8f1..d933d5e 100644 --- a/home/fuwn/meta/desktop/wayland/hyprland/hyprland/rules.nix +++ b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/rules.nix @@ -19,6 +19,7 @@ _: { "float, class:splash" "float, class:confirmreset" "float, title:Open File" + "float, title:Save File" "float, title:branchdialog" "float, title:^(Open File)(.*)$" "float, title:^(Select a File)(.*)$" diff --git a/home/fuwn/meta/desktop/wayland/hyprland/hyprland/workspaces.nix b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/workspaces.nix index 89644ae..ba94ca6 100644 --- a/home/fuwn/meta/desktop/wayland/hyprland/hyprland/workspaces.nix +++ b/home/fuwn/meta/desktop/wayland/hyprland/hyprland/workspaces.nix @@ -31,8 +31,8 @@ _: { ) ++ [ "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:chatgpt, on-created-empty:[float;center;size 65% 75%] thorium-browser --user-data-dir=~/.local/share/thorium-chatgpt --app='https://chatgpt.com/'" + "special:spotify, on-created-empty:[float;center;size 65% 90%] spotify" "special:calculator, on-created-empty:[float;center;size 50% 50%] qalculate-gtk" ]; } diff --git a/home/fuwn/meta/tools/default.nix b/home/fuwn/meta/development/default.nix index 0fa7981..e08677f 100644 --- a/home/fuwn/meta/tools/default.nix +++ b/home/fuwn/meta/development/default.nix @@ -5,5 +5,6 @@ _: { ./languages ./nix ./tcp + ./tools ]; } diff --git a/home/fuwn/meta/tools/http/default.nix b/home/fuwn/meta/development/http/default.nix index b917245..b917245 100644 --- a/home/fuwn/meta/tools/http/default.nix +++ b/home/fuwn/meta/development/http/default.nix diff --git a/home/fuwn/meta/tools/infrastructure/default.nix b/home/fuwn/meta/development/infrastructure/default.nix index 756050f..756050f 100644 --- a/home/fuwn/meta/tools/infrastructure/default.nix +++ b/home/fuwn/meta/development/infrastructure/default.nix diff --git a/home/fuwn/meta/tools/infrastructure/docker/default.nix b/home/fuwn/meta/development/infrastructure/docker/default.nix index 0a17952..0a17952 100644 --- a/home/fuwn/meta/tools/infrastructure/docker/default.nix +++ b/home/fuwn/meta/development/infrastructure/docker/default.nix diff --git a/home/fuwn/meta/tools/infrastructure/fly/default.nix b/home/fuwn/meta/development/infrastructure/fly/default.nix index 9e8147e..9e8147e 100644 --- a/home/fuwn/meta/tools/infrastructure/fly/default.nix +++ b/home/fuwn/meta/development/infrastructure/fly/default.nix diff --git a/home/fuwn/meta/tools/languages/agnostic/default.nix b/home/fuwn/meta/development/languages/agnostic/default.nix index 77a3086..77a3086 100644 --- a/home/fuwn/meta/tools/languages/agnostic/default.nix +++ b/home/fuwn/meta/development/languages/agnostic/default.nix diff --git a/home/fuwn/meta/tools/languages/assembly/default.nix b/home/fuwn/meta/development/languages/assembly/default.nix index b593a41..b593a41 100644 --- a/home/fuwn/meta/tools/languages/assembly/default.nix +++ b/home/fuwn/meta/development/languages/assembly/default.nix diff --git a/home/fuwn/cli/ncdu/default.nix b/home/fuwn/meta/development/languages/c/default.nix index 1c0bfca..2233523 100644 --- a/home/fuwn/cli/ncdu/default.nix +++ b/home/fuwn/meta/development/languages/c/default.nix @@ -1,5 +1,5 @@ { pkgs, ... }: { home.packages = with pkgs; [ - ncdu + clang ]; } diff --git a/home/fuwn/meta/tools/languages/cobol/default.nix b/home/fuwn/meta/development/languages/cobol/default.nix index 82e5464..82e5464 100644 --- a/home/fuwn/meta/tools/languages/cobol/default.nix +++ b/home/fuwn/meta/development/languages/cobol/default.nix diff --git a/home/fuwn/meta/tools/languages/default.nix b/home/fuwn/meta/development/languages/default.nix index 30f7894..1ec2f16 100644 --- a/home/fuwn/meta/tools/languages/default.nix +++ b/home/fuwn/meta/development/languages/default.nix @@ -2,13 +2,14 @@ _: { imports = [ ./agnostic # ./assembly + ./c ./cobol ./gleam ./go ./hare ./javascript # ./jvm - # ./protobuf + ./protobuf ./python ./rust ./shell diff --git a/home/fuwn/meta/tools/languages/gleam/default.nix b/home/fuwn/meta/development/languages/gleam/default.nix index de1ab92..de1ab92 100644 --- a/home/fuwn/meta/tools/languages/gleam/default.nix +++ b/home/fuwn/meta/development/languages/gleam/default.nix diff --git a/home/fuwn/meta/tools/languages/go/default.nix b/home/fuwn/meta/development/languages/go/default.nix index 3c4a809..3c4a809 100644 --- a/home/fuwn/meta/tools/languages/go/default.nix +++ b/home/fuwn/meta/development/languages/go/default.nix diff --git a/home/fuwn/meta/tools/languages/hare/default.nix b/home/fuwn/meta/development/languages/hare/default.nix index 79fc13b..79fc13b 100644 --- a/home/fuwn/meta/tools/languages/hare/default.nix +++ b/home/fuwn/meta/development/languages/hare/default.nix diff --git a/home/fuwn/meta/tools/languages/javascript/default.nix b/home/fuwn/meta/development/languages/javascript/default.nix index 5aaccda..5aaccda 100644 --- a/home/fuwn/meta/tools/languages/javascript/default.nix +++ b/home/fuwn/meta/development/languages/javascript/default.nix diff --git a/home/fuwn/meta/tools/languages/jvm/default.nix b/home/fuwn/meta/development/languages/jvm/default.nix index d3ab862..d3ab862 100644 --- a/home/fuwn/meta/tools/languages/jvm/default.nix +++ b/home/fuwn/meta/development/languages/jvm/default.nix diff --git a/home/fuwn/meta/tools/languages/protobuf/default.nix b/home/fuwn/meta/development/languages/protobuf/default.nix index 21dd9f7..21dd9f7 100644 --- a/home/fuwn/meta/tools/languages/protobuf/default.nix +++ b/home/fuwn/meta/development/languages/protobuf/default.nix diff --git a/home/fuwn/meta/tools/languages/python/default.nix b/home/fuwn/meta/development/languages/python/default.nix index 84b15d4..84b15d4 100644 --- a/home/fuwn/meta/tools/languages/python/default.nix +++ b/home/fuwn/meta/development/languages/python/default.nix diff --git a/home/fuwn/meta/tools/languages/rust/default.nix b/home/fuwn/meta/development/languages/rust/default.nix index 02360d1..02360d1 100644 --- a/home/fuwn/meta/tools/languages/rust/default.nix +++ b/home/fuwn/meta/development/languages/rust/default.nix diff --git a/home/fuwn/meta/tools/languages/shell/default.nix b/home/fuwn/meta/development/languages/shell/default.nix index 1953aac..1953aac 100644 --- a/home/fuwn/meta/tools/languages/shell/default.nix +++ b/home/fuwn/meta/development/languages/shell/default.nix diff --git a/home/fuwn/meta/tools/languages/vlang/default.nix b/home/fuwn/meta/development/languages/vlang/default.nix index d9da941..d9da941 100644 --- a/home/fuwn/meta/tools/languages/vlang/default.nix +++ b/home/fuwn/meta/development/languages/vlang/default.nix diff --git a/home/fuwn/meta/tools/languages/yaml/default.nix b/home/fuwn/meta/development/languages/yaml/default.nix index cd91d5e..cd91d5e 100644 --- a/home/fuwn/meta/tools/languages/yaml/default.nix +++ b/home/fuwn/meta/development/languages/yaml/default.nix diff --git a/home/fuwn/meta/tools/languages/zig/default.nix b/home/fuwn/meta/development/languages/zig/default.nix index 821e4ab..821e4ab 100644 --- a/home/fuwn/meta/tools/languages/zig/default.nix +++ b/home/fuwn/meta/development/languages/zig/default.nix diff --git a/home/fuwn/meta/tools/nix/default.nix b/home/fuwn/meta/development/nix/default.nix index fe41b1d..fe41b1d 100644 --- a/home/fuwn/meta/tools/nix/default.nix +++ b/home/fuwn/meta/development/nix/default.nix diff --git a/home/fuwn/meta/tools/tcp/default.nix b/home/fuwn/meta/development/tcp/default.nix index ad648f1..ad648f1 100644 --- a/home/fuwn/meta/tools/tcp/default.nix +++ b/home/fuwn/meta/development/tcp/default.nix diff --git a/home/fuwn/cli/navi/default.nix b/home/fuwn/meta/development/tools/default.nix index 5b462b5..e52d2ec 100644 --- a/home/fuwn/cli/navi/default.nix +++ b/home/fuwn/meta/development/tools/default.nix @@ -1,5 +1,6 @@ { pkgs, ... }: { home.packages = with pkgs; [ - navi + clang-tools + highlight ]; } diff --git a/home/fuwn/meta/calculator/default.nix b/home/fuwn/meta/education/calculator/default.nix index a8bcc7f..a8bcc7f 100644 --- a/home/fuwn/meta/calculator/default.nix +++ b/home/fuwn/meta/education/calculator/default.nix diff --git a/home/fuwn/gui/anki/default.nix b/home/fuwn/meta/education/default.nix index 8e5655c..93abfb7 100644 --- a/home/fuwn/gui/anki/default.nix +++ b/home/fuwn/meta/education/default.nix @@ -1,4 +1,8 @@ { pkgs, ... }: { + imports = [ + ./calculator + ]; + home.packages = with pkgs; [ anki-bin ]; diff --git a/home/fuwn/meta/filesystem/default.nix b/home/fuwn/meta/filesystem/default.nix new file mode 100644 index 0000000..42dccca --- /dev/null +++ b/home/fuwn/meta/filesystem/default.nix @@ -0,0 +1,8 @@ +{ pkgs, ... }: { + programs.nnn.enable = true; + + home.packages = with pkgs; [ + cinnamon.nemo + ncdu + ]; +} diff --git a/home/fuwn/meta/gaming/default.nix b/home/fuwn/meta/gaming/default.nix index 340aebc..212d964 100644 --- a/home/fuwn/meta/gaming/default.nix +++ b/home/fuwn/meta/gaming/default.nix @@ -3,5 +3,7 @@ steam lutris gamescope + # xivlauncher + mangohud ]; } diff --git a/home/fuwn/meta/language/codespell/default.nix b/home/fuwn/meta/language/codespell/default.nix deleted file mode 100644 index 9018b9f..0000000 --- a/home/fuwn/meta/language/codespell/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - codespell - ]; -} diff --git a/home/fuwn/meta/language/default.nix b/home/fuwn/meta/language/default.nix index 3a48e40..d1fa5b1 100644 --- a/home/fuwn/meta/language/default.nix +++ b/home/fuwn/meta/language/default.nix @@ -1,5 +1,7 @@ -_: { - imports = [ - ./codespell +{ pkgs, ... }: { + home.packages = with pkgs; [ + codespell + jiten + tagainijisho ]; } diff --git a/home/fuwn/meta/audio/default.nix b/home/fuwn/meta/multimedia/audio/default.nix index 8768f34..73376fb 100644 --- a/home/fuwn/meta/audio/default.nix +++ b/home/fuwn/meta/multimedia/audio/default.nix @@ -1,6 +1,12 @@ { pkgs, ... }: { + imports = [ + ./spotify + ]; + home.packages = with pkgs; [ + cava blueberry + spotify pavucontrol ]; } diff --git a/home/fuwn/meta/spotify/default.nix b/home/fuwn/meta/multimedia/audio/spotify/default.nix index 034edb9..034edb9 100644 --- a/home/fuwn/meta/spotify/default.nix +++ b/home/fuwn/meta/multimedia/audio/spotify/default.nix diff --git a/home/fuwn/meta/multimedia/default.nix b/home/fuwn/meta/multimedia/default.nix new file mode 100644 index 0000000..d775e21 --- /dev/null +++ b/home/fuwn/meta/multimedia/default.nix @@ -0,0 +1,11 @@ +{ pkgs, ... }: { + imports = [ + ./audio + ./image + ./video + ]; + + home.packages = with pkgs; [ + blender + ]; +} diff --git a/home/fuwn/meta/image/default.nix b/home/fuwn/meta/multimedia/image/default.nix index 38c92e8..b6c23bf 100644 --- a/home/fuwn/meta/image/default.nix +++ b/home/fuwn/meta/multimedia/image/default.nix @@ -1,5 +1,6 @@ { pkgs, ... }: { home.packages = with pkgs; [ + ahoviewer nsxiv viewnior feh diff --git a/home/fuwn/meta/anime/default.nix b/home/fuwn/meta/multimedia/video/anime/default.nix index 75f6bb8..75f6bb8 100644 --- a/home/fuwn/meta/anime/default.nix +++ b/home/fuwn/meta/multimedia/video/anime/default.nix diff --git a/home/fuwn/meta/video/default.nix b/home/fuwn/meta/multimedia/video/default.nix index 17d91b7..c55db9a 100644 --- a/home/fuwn/meta/video/default.nix +++ b/home/fuwn/meta/multimedia/video/default.nix @@ -1,4 +1,8 @@ { pkgs, ... }: { + imports = [ + ./anime + ]; + home.packages = with pkgs; [ yt-dlp clapper diff --git a/home/fuwn/meta/rice/btop/default.nix b/home/fuwn/meta/rice/btop/default.nix deleted file mode 100644 index d483420..0000000 --- a/home/fuwn/meta/rice/btop/default.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ pkgs, ... }: { - programs.btop.enable = true; -} diff --git a/home/fuwn/meta/rice/cpufetch/default.nix b/home/fuwn/meta/rice/cpufetch/default.nix deleted file mode 100644 index b045b4a..0000000 --- a/home/fuwn/meta/rice/cpufetch/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - cpufetch - ]; -} diff --git a/home/fuwn/meta/rice/default.nix b/home/fuwn/meta/rice/default.nix index 333be98..25ae26c 100644 --- a/home/fuwn/meta/rice/default.nix +++ b/home/fuwn/meta/rice/default.nix @@ -1,10 +1,15 @@ -_: { +{ pkgs, ... }: { imports = [ ./bottom - ./btop - ./cpufetch + ./glances ./fastfetch - ./iotop - ./pywal + ]; + + programs.btop.enable = true; + programs.pywal.enable = true; + + home.packages = with pkgs; [ + cpufetch + iotop ]; } diff --git a/home/fuwn/meta/rice/glances/default.nix b/home/fuwn/meta/rice/glances/default.nix new file mode 100644 index 0000000..cda5a63 --- /dev/null +++ b/home/fuwn/meta/rice/glances/default.nix @@ -0,0 +1,828 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + glances + ]; + + xdg.configFile."glances/glances.conf".text = '' + ############################################################################## + # Globals Glances parameters + ############################################################################## + + [global] + # Stats refresh rate (default is a minimum of 2 seconds) + # Can be overwrite by the -t <sec> option + # It is also possible to overwrite it in each plugin sections + refresh=0 + # Does Glances should check if a newer version is available on PyPI ? + check_update=true + # History size (maximum number of values) + # Default is 1200 values (~1h with the default refresh rate) + history_size=1200 + # Set the way Glances should display the date (default is %Y-%m-%d %H:%M:%S %Z) + #strftime_format="%Y-%m-%d %H:%M:%S %Z" + # Define external directory for loading additional plugins + # The layout follows the glances standard for plugin definitions + #plugin_dir=/home/user/dev/plugins + + ############################################################################## + # User interface + ############################################################################## + + [outputs] + # Options for all UIs + #-------------------- + # Separator in the Curses and WebUI interface (between top and others plugins) + separator=True + # Set the the Curses and WebUI interface left menu plugin list (comma-separated) + #left_menu=network,wifi,connections,ports,diskio,fs,irq,folders,raid,smart,sensors,now + # Limit the number of processes to display (in the WebUI) + max_processes_display=25 + # Options for WebUI + #------------------ + # Set URL prefix for the WebUI and the API + # Example: url_prefix=/glances/ => http://localhost/glances/ + # Note: The final / is mandatory + # Default is no prefix (/) + #url_prefix=/glances/ + # Set root path for WebUI statics files + # Why ? On Debian system, WebUI statics files are not provided. + # You can download it in a specific folder + # thanks to https://github.com/nicolargo/glances/issues/2021 + # then configure this folder with the webui_root_path key + # Default is folder where glances_restfull_api.py is hosted + #webui_root_path= + # CORS options + # Comma separated list of origins that should be permitted to make cross-origin requests. + # Default is * + #cors_origins=* + # Indicate that cookies should be supported for cross-origin requests. + # Default is True + #cors_credentials=True + # Comma separated list of HTTP methods that should be allowed for cross-origin requests. + # Default is * + #cors_methods=* + # Comma separated list of HTTP request headers that should be supported for cross-origin requests. + # Default is * + #cors_headers=* + + ############################################################################## + # Plugins + ############################################################################## + + [quicklook] + # Set to true to disable a plugin + # Note: you can also disable it from the command line (see --disable-plugin <plugin_name>) + disable=False + # Stats list (default is cpu,mem,load) + # Available stats are: cpu,mem,load,swap + list=cpu,mem,load + # Graphical bar char used in the terminal user interface (default is |) + bar_char=| + # Define CPU, MEM and SWAP thresholds in % + cpu_careful=50 + cpu_warning=70 + cpu_critical=90 + mem_careful=50 + mem_warning=70 + mem_critical=90 + swap_careful=50 + swap_warning=70 + swap_critical=90 + # Source: http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages + # With 1 CPU core, the load should be lower than 1.00 ~ 100% + load_careful=70 + load_warning=100 + load_critical=500 + + [system] + # This plugin display the first line in the Glances UI with: + # Hostname / Operating system name / Architecture information + # Set to true to disable a plugin + disable=False + # Default refresh rate is 60 seconds + #refresh=60 + # System information to display (a string where {key} will be replaced by the value) + # Available information are: hostname, os_name, os_version, os_arch, linux_distro, platform + #system_info_msg= | My {os_name} system | + + [cpu] + disable=False + # See https://scoutapm.com/blog/slow_server_flow_chart + # + # I/O wait percentage should be lower than 1/# (# = Logical CPU cores) + # Leave commented to just use the default config: + # Careful=1/#*100-20% / Warning=1/#*100-10% / Critical=1/#*100 + #iowait_careful=30 + #iowait_warning=40 + #iowait_critical=50 + # + # Total % is 100 - idle + total_careful=65 + total_warning=75 + total_critical=85 + total_log=True + # + # Default values if not defined: 50/70/90 (except for iowait) + user_careful=50 + user_warning=70 + user_critical=90 + user_log=False + #user_critical_action=echo {{user}} {{value}} {{max}} > /tmp/cpu.alert + # + system_careful=50 + system_warning=70 + system_critical=90 + system_log=False + # + steal_careful=50 + steal_warning=70 + steal_critical=90 + #steal_log=True + # + # Context switch limit (core / second) + # Leave commented to just use the default config critical is 50000*(Logical CPU cores) + #ctx_switches_careful=10000 + #ctx_switches_warning=12000 + #ctx_switches_critical=14000 + + [percpu] + disable=False + # Define the maximum number of CPU displayed at a time + # If the number of CPU is higher than the one configured in max_cpu_display then: + # - display top 'max_cpu_display' (sorted by CPU consumption) + # - a last line will be added with the mean of all other CPUs + max_cpu_display=4 + # Define CPU thresholds in % + # Default values if not defined: 50/70/90 + user_careful=50 + user_warning=70 + user_critical=90 + iowait_careful=50 + iowait_warning=70 + iowait_critical=90 + system_careful=50 + system_warning=70 + system_critical=90 + + [gpu] + disable=False + # Default processor values if not defined: 50/70/90 + proc_careful=50 + proc_warning=70 + proc_critical=90 + # Default memory values if not defined: 50/70/90 + mem_careful=50 + mem_warning=70 + mem_critical=90 + # Temperature + temperature_careful=60 + temperature_warning=70 + temperature_critical=80 + + [mem] + disable=False + # Define RAM thresholds in % + # Default values if not defined: 50/70/90 + careful=50 + #careful_action_repeat=echo {{percent}} >> /tmp/memory.alert + warning=70 + critical=90 + + [memswap] + disable=False + # Define SWAP thresholds in % + # Default values if not defined: 50/70/90 + careful=50 + warning=70 + critical=90 + + [load] + disable=False + # Define LOAD thresholds + # Value * number of cores + # Default values if not defined: 0.7/1.0/5.0 per number of cores + # Source: http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages + # http://www.linuxjournal.com/article/9001 + careful=0.7 + warning=1.0 + critical=5.0 + #log=False + + [network] + disable=False + # Default bitrate thresholds in % of the network interface speed + # Default values if not defined: 70/80/90 + rx_careful=70 + rx_warning=80 + rx_critical=90 + tx_careful=70 + tx_warning=80 + tx_critical=90 + # Define the list of hidden network interfaces (comma-separated regexp) + hide=docker.*,lo + # Define the list of wireless network interfaces to be show (comma-separated) + #show=docker.* + # Automatically hide interface not up (default is False) + #hide_no_up=True + # Automatically hide interface with no IP address (default is False) + #hide_no_ip=True + # It is possible to overwrite the bitrate thresholds per interface + # WLAN 0 Default limits (in bits per second aka bps) for interface bitrate + #wlan0_rx_careful=4000000 + #wlan0_rx_warning=5000000 + #wlan0_rx_critical=6000000 + #wlan0_rx_log=True + #wlan0_tx_careful=700000 + #wlan0_tx_warning=900000 + #wlan0_tx_critical=1000000 + #wlan0_tx_log=True + # Alias for network interface name + #alias=wlp2s0:WIFI + + [ip] + # Disable display of private IP address + disable=False + # Configure the online service where public IP address information will be downloaded + # - public_disabled: Disable public IP address information (set to True for offline platform) + # - public_refresh_interval: Refresh interval between to calls to the online service + # - public_api: URL of the API (the API should return an JSON object) + # - public_username: Login for the online service (if needed) + # - public_password: Password for the online service (if needed) + # - public_field: Field name of the public IP address in onlibe service JSON message + # - public_template: Template to build the public message + # + # Example for IPLeak service: + # public_api=https://ipv4.ipleak.net/json/ + # public_field=ip + # public_template={ip} {continent_name}/{country_name}/{city_name} + # + public_disabled=True + public_refresh_interval=300 + public_api=https://ipv4.ipleak.net/json/ + #public_username=<myname> + #public_password=<mysecret> + public_field=ip + public_template={continent_name}/{country_name}/{city_name} + + [connections] + # Display additional information about TCP connections + # This plugin is disabled by default because it consumes lots of CPU + disable=False + # nf_conntrack thresholds in % + nf_conntrack_percent_careful=70 + nf_conntrack_percent_warning=80 + nf_conntrack_percent_critical=90 + + [wifi] + disable=False + # Define SIGNAL thresholds in dBm (lower is better...) + # Based on: http://serverfault.com/questions/501025/industry-standard-for-minimum-wifi-signal-strength + careful=-65 + warning=-75 + critical=-85 + + [diskio] + disable=False + # Define the list of hidden disks (comma-separated regexp) + #hide=sda2,sda5,loop.* + hide=loop.*,/dev/loop.* + # Define the list of disks to be show (comma-separated) + #show=sda.* + # Alias for sda1 and sdb1 + #alias=sda1:SystemDisk,sdb1:DataDisk + + [fs] + disable=False + # Define the list of file system to hide (comma-separated regexp) + hide=/boot.*,.*/snap.* + # Define the list of file system to show (comma-separated regexp) + #show=/,/srv + # Define filesystem space thresholds in % + # Default values if not defined: 50/70/90 + # It is also possible to define per mount point value + # Example: /_careful=40 + careful=50 + warning=70 + critical=90 + # Allow additional file system types (comma-separated FS type) + #allow=shm + # Alias for root file system + #alias=/:Root + + [irq] + # Documentation: https://glances.readthedocs.io/en/latest/aoa/irq.html + # This plugin is disabled by default + disable=True + + [folders] + # Documentation: https://glances.readthedocs.io/en/latest/aoa/folders.html + disable=False + # Define a folder list to monitor + # The list is composed of items (list_#nb <= 10) + # An item is defined by: + # * path: absolute path + # * careful: optional careful threshold (in MB) + # * warning: optional warning threshold (in MB) + # * critical: optional critical threshold (in MB) + # * refresh: interval in second between two refreshes + #folder_1_path=/tmp + #folder_1_careful=2500 + #folder_1_warning=3000 + #folder_1_critical=3500 + #folder_1_refresh=60 + #folder_2_path=/home/nicolargo/Videos + #folder_2_warning=17000 + #folder_2_critical=20000 + #folder_3_path=/nonexisting + #folder_4_path=/root + + [cloud] + # Documentation: https://glances.readthedocs.io/en/latest/aoa/cloud.html + # This plugin is disabled by default + disable=True + + [raid] + # Documentation: https://glances.readthedocs.io/en/latest/aoa/raid.html + # This plugin is disabled by default + disable=True + + [smart] + # Documentation: https://glances.readthedocs.io/en/latest/aoa/smart.html + # This plugin is disabled by default + disable=True + + [hddtemp] + disable=False + # Define hddtemp server IP and port (default is 127.0.0.1 and 7634 (TCP)) + host=127.0.0.1 + port=7634 + + [sensors] + # Documentation: https://glances.readthedocs.io/en/latest/aoa/sensors.html + disable=False + # Set the refresh multiplicator for the sensors + # By default refresh every Glances refresh * 3 (increase to reduce CPU consumption) + #refresh=3 + # Hide some sensors (comma separated list of regexp) + hide=unknown.* + # Show only the following sensors (comma separated list of regexp) + #show=CPU.* + # Sensors core thresholds (in Celsius...) + # Default values are grabbed from the system + #temperature_core_careful=45 + #temperature_core_warning=65 + #temperature_core_critical=80 + # Temperatures threshold in °C for hddtemp + # Default values if not defined: 45/52/60 + temperature_hdd_careful=45 + temperature_hdd_warning=52 + temperature_hdd_critical=60 + # Battery threshold in % + battery_careful=80 + battery_warning=90 + battery_critical=95 + # Fan speed threashold in RPM + #fan_speed_careful=100 + # Sensors alias + #alias=core 0:CPU Core 0,core 1:CPU Core 1 + + [processcount] + disable=False + # If you want to change the refresh rate of the processing list, please uncomment: + #refresh=10 + + [processlist] + disable=False + # Sort key: if not defined, the sort is automatically done by Glances (recommended) + # Should be one of the following: + # cpu_percent, memory_percent, io_counters, name, cpu_times, username + #sort_key=memory_percent + # Define CPU/MEM (per process) thresholds in % + # Default values if not defined: 50/70/90 + cpu_careful=50 + cpu_warning=70 + cpu_critical=90 + mem_careful=50 + mem_warning=70 + mem_critical=90 + # + # Nice priorities range from -20 to 19. + # Configure nice levels using a comma-separated list. + # + # Nice: Example 1, non-zero is warning (default behavior) + nice_warning=-20,-19,-18,-17,-16,-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19 + # + # Nice: Example 2, low priority processes escalate from careful to critical + #nice_careful=1,2,3,4,5,6,7,8,9 + #nice_warning=10,11,12,13,14 + #nice_critical=15,16,17,18,19 + # + # Define the list of processes to export using: + # a comma-separated list of Glances filter + #export=.*firefox.*,pid:1234 + + [ports] + disable=False + # Interval in second between two scans + # Ports scanner plugin configuration + refresh=30 + # Set the default timeout (in second) for a scan (can be overwritten in the scan list) + timeout=3 + # If port_default_gateway is True, add the default gateway on top of the scan list + port_default_gateway=True + # + # Define the scan list (1 < x < 255) + # port_x_host (name or IP) is mandatory + # port_x_port (TCP port number) is optional (if not set, use ICMP) + # port_x_description is optional (if not set, define to host:port) + # port_x_timeout is optional and overwrite the default timeout value + # port_x_rtt_warning is optional and defines the warning threshold in ms + # + #port_1_host=192.168.0.1 + #port_1_port=80 + #port_1_description=Home Box + #port_1_timeout=1 + #port_2_host=www.free.fr + #port_2_description=My ISP + #port_3_host=www.google.com + #port_3_description=Internet ICMP + #port_3_rtt_warning=1000 + #port_4_description=Internet Web + #port_4_host=www.google.com + #port_4_port=80 + #port_4_rtt_warning=1000 + # + # Define Web (URL) monitoring list (1 < x < 255) + # web_x_url is the URL to monitor (example: http://my.site.com/folder) + # web_x_description is optional (if not set, define to URL) + # web_x_timeout is optional and overwrite the default timeout value + # web_x_rtt_warning is optional and defines the warning respond time in ms (approximately) + # + #web_1_url=https://blog.nicolargo.com + #web_1_description=My Blog + #web_1_rtt_warning=3000 + #web_2_url=https://github.com + #web_3_url=http://www.google.fr + #web_3_description=Google Fr + #web_4_url=https://blog.nicolargo.com/nonexist + #web_4_description=Intranet + + [containers] + disable=False + # Only show specific containers (comma-separated list of container name or regular expression) + # Comment this line to display all containers (default configuration) + ; show=telegraf + # Hide some containers (comma-separated list of container name or regular expression) + # Comment this line to display all containers (default configuration) + ; hide=telegraf + # Define the maximum docker size name (default is 20 chars) + max_name_size=20 + ; cpu_careful=50 + # Thresholds for CPU and MEM (in %) + ; cpu_warning=70 + ; cpu_critical=90 + ; mem_careful=20 + ; mem_warning=50 + ; mem_critical=70 + # + # Per container thresholds + ; containername_cpu_careful=10 + ; containername_cpu_warning=20 + ; containername_cpu_critical=30 + # + # By default, Glances only display running containers + # Set the following key to True to display all containers + all=False + # Define Podman sock + ; podman_sock=unix:///run/user/1000/podman/podman.sock + + [amps] + # AMPs configuration are defined in the bottom of this file + disable=False + + [alert] + disable=False + # Maximum number of events to display (default is 10 events) + ;max_events=10 + # Minimum duration for an event to be taken into account (default is 6 seconds) + ;min_duration=6 + # Minimum time between two events of the same type (default is 6 seconds) + # This is used to avoid too many alerts for the same event + # Events will be merged + ;min_interval=6 + + ############################################################################## + # Client/server + ############################################################################## + + [serverlist] + # Define the static servers list + #server_1_name=localhost + #server_1_alias=My local PC + #server_1_port=61209 + #server_2_name=localhost + #server_2_port=61235 + #server_3_name=192.168.0.17 + #server_3_alias=Another PC on my network + #server_3_port=61209 + #server_4_name=pasbon + #server_4_port=61237 + + [passwords] + # Define the passwords list related to the [serverlist] section + # Syntax: host=password + # Where: host is the hostname + # password is the clear password + # Additionally (and optionally) a default password could be defined + #localhost=abc + #default=defaultpassword + # + # Define the path of the local '.pwd' file (default is system one) + #local_password_path=~/.config/glances + + ############################################################################## + # Exports + ############################################################################## + + [graph] + # Configuration for the --export graph option + # Set the path where the graph (.svg files) will be created + # Can be overwrite by the --graph-path command line option + path=/tmp + # It is possible to generate the graphs automatically by setting the + # generate_every to a non zero value corresponding to the seconds between + # two generation. Set it to 0 to disable graph auto generation. + generate_every=0 + # See following configuration keys definitions in the Pygal lib documentation + # http://pygal.org/en/stable/documentation/index.html + width=800 + height=600 + style=DarkStyle + + [influxdb] + # !!! + # Will be DEPRECATED in future release. + # Please have a look on the new influxdb2 export module (compatible with InfluxDB 1.8.x and 2.x) + # !!! + # Configuration for the --export influxdb option + # https://influxdb.com/ + host=localhost + port=8086 + protocol=http + user=root + password=root + db=glances + # Prefix will be added for all measurement name + # Ex: prefix=foo + # => foo.cpu + # => foo.mem + # You can also use dynamic values + #prefix=foo + # Following tags will be added for all measurements + # You can also use dynamic values. + # Note: hostname and name (for process) are always added as a tag + #tags=foo:bar,spam:eggs,domain:`domainname` + + [influxdb2] + # Configuration for the --export influxdb2 option + # https://influxdb.com/ + host=localhost + port=8086 + protocol=http + org=nicolargo + bucket=glances + token=EjFUTWe8U-MIseEAkaVIgVnej_TrnbdvEcRkaB1imstW7gapSqy6_6-8XD-yd51V0zUUpDy-kAdVD1purDLuxA== + # Set the interval between two exports (in seconds) + # If the interval is set to 0, the Glances refresh time is used (default behavor) + #interval=0 + # Prefix will be added for all measurement name + # Ex: prefix=foo + # => foo.cpu + # => foo.mem + # You can also use dynamic values + #prefix=foo + # Following tags will be added for all measurements + # You can also use dynamic values. + # Note: hostname and name (for process) are always added as a tag + #tags=foo:bar,spam:eggs,domain:`domainname` + + [cassandra] + # Configuration for the --export cassandra option + # Also works for the ScyllaDB + # https://influxdb.com/ or http://www.scylladb.com/ + host=localhost + port=9042 + protocol_version=3 + keyspace=glances + replication_factor=2 + # If not define, table name is set to host key + table=localhost + # If not define, username and password will not be used + #username=cassandra + #password=password + + [opentsdb] + # Configuration for the --export opentsdb option + # http://opentsdb.net/ + host=localhost + port=4242 + #prefix=glances + #tags=foo:bar,spam:eggs + + [statsd] + # Configuration for the --export statsd option + # https://github.com/etsy/statsd + host=localhost + port=8125 + #prefix=glances + + [elasticsearch] + # Configuration for the --export elasticsearch option + # Data are available via the ES RESTful API. ex: URL/<index>/cpu + # https://www.elastic.co + scheme=http + host=localhost + port=9200 + index=glances + + [riemann] + # Configuration for the --export riemann option + # http://riemann.io + host=localhost + port=5555 + + [rabbitmq] + # Configuration for the --export rabbitmq option + host=localhost + port=5672 + user=guest + password=guest + queue=glances_queue + #protocol=amqps + + [mqtt] + # Configuration for the --export mqtt option + host=localhost + # Overwrite device name in the topic + #devicename=localhost + port=8883 + tls=false + user=guest + password=guest + topic=glances + topic_structure=per-metric + callback_api_version=2 + + [couchdb] + # Configuration for the --export couchdb option + # https://www.couchdb.org + host=localhost + port=5984 + db=glances + user=admin + password=admin + + [mongodb] + # Configuration for the --export mongodb option + # https://www.mongodb.com + host=localhost + port=27017 + db=glances + user=root + password=example + + [kafka] + # Configuration for the --export kafka option + # http://kafka.apache.org/ + host=localhost + port=9092 + topic=glances + #compression=gzip + # Tags will be added for all events + #tags=foo:bar,spam:eggs + # You can also use dynamic values + #tags=hostname:`hostname -f` + + [zeromq] + # Configuration for the --export zeromq option + # http://www.zeromq.org + # Use * to bind on all interfaces + host=* + port=5678 + # Glances envelopes the stats in a publish message with two frames: + # - First frame containing the following prefix (STRING) + # - Second frame with the Glances plugin name (STRING) + # - Third frame with the Glances plugin stats (JSON) + prefix=G + + [prometheus] + # Configuration for the --export prometheus option + # https://prometheus.io + # Create a Prometheus exporter listening on localhost:9091 (default configuration) + # Metric are exporter using the following name: + # <prefix>_<plugin>_<stats>{labelkey:labelvalue} + # Note: You should add this exporter to your Prometheus server configuration: + # scrape_configs: + # - job_name: 'glances_exporter' + # scrape_interval: 5s + # static_configs: + # - targets: ['localhost:9091'] + # + # Labels will be added for all measurements (default is src:glances) + # labels=foo:bar,spam:eggs + # You can also use dynamic values + # labels=system:`uname -s` + # + host=localhost + port=9091 + #prefix=glances + labels=src:glances + + [restful] + # Configuration for the --export restful option + # Example, export to http://localhost:6789/ + host=localhost + port=6789 + protocol=http + path=/ + + [graphite] + # Configuration for the --export graphite option + # https://graphiteapp.org/ + host=localhost + port=2003 + # Prefix will be added for all measurement name + prefix=glances + # System name added between the prefix and the stats + # By default, system_name = FQDN + #system_name=mycomputer + + ############################################################################## + # AMPS + # * enable: Enable (true) or disable (false) the AMP + # * regex: Regular expression to filter the process(es) + # * refresh: The AMP is executed every refresh seconds + # * one_line: (optional) Force (if true) the AMP to be displayed in one line + # * command: (optional) command to execute when the process is detected (thk to the regex) + # * countmin: (optional) minimal number of processes + # A warning will be displayed if number of process < count + # * countmax: (optional) maximum number of processes + # A warning will be displayed if number of process > count + # * <foo>: Others variables can be defined and used in the AMP script + ############################################################################## + + [amp_dropbox] + # Use the default AMP (no dedicated AMP Python script) + # Check if the Dropbox daemon is running + # Every 3 seconds, display the 'dropbox status' command line + enable=false + regex=.*dropbox.* + refresh=3 + one_line=false + command=dropbox status + countmin=1 + + [amp_python] + # Use the default AMP (no dedicated AMP Python script) + # Monitor all the Python scripts + # Alert if more than 20 Python scripts are running + enable=false + regex=.*python.* + refresh=3 + countmax=20 + + [amp_conntrack] + # Use && separator for multiple commands + # If the regex key is not defined, the AMP will be executed every refresh second + # and the process count will not be displayed (countmin and countmax will be ignore) + enable=false + refresh=30 + one_line=false + command=sysctl net.netfilter.nf_conntrack_count && sysctl net.netfilter.nf_conntrack_max + + [amp_nginx] + # Use the NGinx AMP + # Nginx status page should be enable (https://easyengine.io/tutorials/nginx/status-page/) + enable=false + regex=\/usr\/sbin\/nginx + refresh=60 + one_line=false + status_url=http://localhost/nginx_status + + [amp_systemd] + # Use the Systemd AMP + enable=false + regex=\/lib\/systemd\/systemd + refresh=30 + one_line=true + systemctl_cmd=/bin/systemctl --plain + + [amp_systemv] + # Use the Systemv AMP + enable=false + regex=\/sbin\/init + refresh=30 + one_line=true + service_cmd=/usr/bin/service --status-all + ''; +} diff --git a/home/fuwn/meta/rice/iotop/default.nix b/home/fuwn/meta/rice/iotop/default.nix deleted file mode 100644 index a219adc..0000000 --- a/home/fuwn/meta/rice/iotop/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - iotop - ]; -} diff --git a/home/fuwn/meta/scripts/default.nix b/home/fuwn/meta/scripts/default.nix new file mode 100644 index 0000000..58851ea --- /dev/null +++ b/home/fuwn/meta/scripts/default.nix @@ -0,0 +1,13 @@ +{ pkgs, ... }: +let + scriptDir = ./scripts; + generateScripts = builtins.listToAttrs (builtins.map + (name: { + name = name; + value = pkgs.writeShellScriptBin name (builtins.readFile "${scriptDir}/${name}"); + }) + (builtins.attrNames (builtins.readDir scriptDir))); +in +{ + home.packages = builtins.attrValues generateScripts; +} diff --git a/home/fuwn/meta/scripts/scripts/fim b/home/fuwn/meta/scripts/scripts/fim index ad21cd4..d1be1c5 100755 --- a/home/fuwn/meta/scripts/scripts/fim +++ b/home/fuwn/meta/scripts/scripts/fim @@ -1,6 +1,20 @@ # Finger "blog" updater HOST="sina" + +while getopts "f" opt; do + case ${opt} in + f) FORMAT=true ;; + *) FORMAT=false ;; + esac +done + +shift $((OPTIND - 1)) + PROFILE="/var/lib/docker/volumes/gigi-data/_data/${1:-fuwn}" -ssh -t "${HOST}" "vim -c 'autocmd BufWritePost * !fmt -w 80 % > %.tmp && mv %.tmp %' '${PROFILE}'" +if [ -n "${FORMAT}" ]; then + ssh -t "${HOST}" "vim -c 'autocmd BufWritePost * !fmt -w 80 % > %.tmp && mv %.tmp %' '${PROFILE}'" +else + ssh -t "${HOST}" "vim '${PROFILE}'" +fi diff --git a/home/fuwn/meta/scripts/scripts/tup-init b/home/fuwn/meta/scripts/scripts/tup-init new file mode 100644 index 0000000..387fa53 --- /dev/null +++ b/home/fuwn/meta/scripts/scripts/tup-init @@ -0,0 +1,25 @@ +tup init >/dev/null + +cat <<EOF >Tupfile +# Input & Output Directories +SOURCE_DIRECTORY = . +INCLUDE_DIRECTORY = . +BUILD_DIRECTORY = build + +# Compiler Configuration +CC = clang++ +CC_EXTENSION = cc +CC_FLAGS = -std=c++23 -I \$(INCLUDE_DIRECTORY) -Weverything -Wno-padded -Wno-c++98-compat -MMD -Wno-c++98-compat-pedantic + +# Clang-tidy Configuration +CLANG_TIDY_CHECKS = '-*,bugprone-*,clang-analyzer-*,concurrency-*,cppcoreguildelines-*,llvm-*,misc-*,modernize-*,performance-*,portability-*,readability-*,-readability-magic-numbers,-llvm-header-guard,-bugprone-suspicious-include,-readability-function-cognitive-complexity,-bugprone-exception-escape' +CLANG_TIDY_FLAGS = -checks=\$(CLANG_TIDY_CHECKS) -warnings-as-errors=* -quiet + +NAME = $(basename "$(pwd)") + +: foreach \$(SOURCE_DIRECTORY)/*.\$(CC_EXTENSION) \$(INCLUDE_DIRECTORY)/*.hh |> clang-format -i %f |> +: foreach \$(SOURCE_DIRECTORY)/*.\$(CC_EXTENSION) |> clang-tidy \$(CLANG_TIDY_FLAGS) %f -- \$(CC_FLAGS) |> +: foreach \$(SOURCE_DIRECTORY)/*.\$(CC_EXTENSION) |> ^j^ \$(CC) \$(CC_FLAGS) -MF \$(BUILD_DIRECTORY)/%B.d -c %f -o %o |> \$(BUILD_DIRECTORY)/%B.o | \$(BUILD_DIRECTORY)/%B.d +: \$(BUILD_DIRECTORY)/*.o ^test.o |> \$(CC) %f -o %o |> \$(BUILD_DIRECTORY)/\$(NAME) +: \$(BUILD_DIRECTORY)/*.o ^main.o |> \$(CC) %f -o %o |> \$(BUILD_DIRECTORY)/\$(NAME)_test +EOF diff --git a/home/fuwn/cli/meta/smolnet/bollux/default.nix b/home/fuwn/meta/smolnet/bollux/default.nix index 2079052..2079052 100644 --- a/home/fuwn/cli/meta/smolnet/bollux/default.nix +++ b/home/fuwn/meta/smolnet/bollux/default.nix diff --git a/home/fuwn/cli/meta/smolnet/bollux/fix_lesskey_nag.patch b/home/fuwn/meta/smolnet/bollux/fix_lesskey_nag.patch index 329b886..329b886 100644 --- a/home/fuwn/cli/meta/smolnet/bollux/fix_lesskey_nag.patch +++ b/home/fuwn/meta/smolnet/bollux/fix_lesskey_nag.patch diff --git a/home/fuwn/cli/meta/smolnet/default.nix b/home/fuwn/meta/smolnet/default.nix index 8cb44a6..0843979 100644 --- a/home/fuwn/cli/meta/smolnet/default.nix +++ b/home/fuwn/meta/smolnet/default.nix @@ -5,6 +5,7 @@ home.packages = with pkgs; [ amfora + geopard gmni phetch ]; diff --git a/home/fuwn/meta/bitwarden/default.nix b/home/fuwn/meta/system/bitwarden/default.nix index 2ac188f..2ac188f 100644 --- a/home/fuwn/meta/bitwarden/default.nix +++ b/home/fuwn/meta/system/bitwarden/default.nix diff --git a/home/fuwn/meta/system/default.nix b/home/fuwn/meta/system/default.nix new file mode 100644 index 0000000..6698785 --- /dev/null +++ b/home/fuwn/meta/system/default.nix @@ -0,0 +1,10 @@ +{ pkgs, ... }: { + imports = [ + ./bitwarden + ./terminal + ]; + + home.packages = with pkgs; [ + # bpftrace + ]; +} diff --git a/home/fuwn/gui/cool-retro-term/default.nix b/home/fuwn/meta/system/terminal/default.nix index e53937b..6375e0a 100644 --- a/home/fuwn/gui/cool-retro-term/default.nix +++ b/home/fuwn/meta/system/terminal/default.nix @@ -1,5 +1,11 @@ { pkgs, ... }: { + imports = [ + ./kitty + ./foot + ]; + home.packages = with pkgs; [ cool-retro-term + # warp-terminal ]; } diff --git a/home/fuwn/meta/system/terminal/foot/default.nix b/home/fuwn/meta/system/terminal/foot/default.nix new file mode 100644 index 0000000..ed0820b --- /dev/null +++ b/home/fuwn/meta/system/terminal/foot/default.nix @@ -0,0 +1,49 @@ +{ pkgs, ... }: { + programs.foot = { + enable = true; + + settings = { + main = { + font = "SF Mono:size=12"; + font-bold = "SF Mono:size=12:weight=medium"; + font-italic = "SF Mono:size=12:slant=italic"; + font-bold-italic = "SF Mono:size=12:slant=italic:weight=medium"; + + # Font Fine-tuning + # vertical-letter-offset = -1; + # line-height = 13; + # underline-thickness = 0.6; + # underline-offset = 2; + + # Styling + bold-text-in-bright = "palette-based"; + pad = "15x15"; # "24x24" + + # Misc. + resize-delay-ms = "0"; + term = "xterm"; + # locked-title = "yes"; + selection-target = "both"; + # workers = "0"; + # utmp-helper = "none"; + }; + + url.osc8-underline = "always"; + bell.urgent = "yes"; + # scrollback.lines = "1000"; + mouse.hide-when-typing = "yes"; + key-bindings.clipboard-paste = "Control+v Control+Shift+v"; + + tweak = { + scaling-filter = "none"; + # font-monospace-warn = "no"; + # grapheme-width-method = "wcswidth"; + # grapheme-shaping = "no"; + }; + + colors = { + alpha = "0.8"; + }; + }; + }; +} diff --git a/home/fuwn/meta/system/terminal/kitty/default.nix b/home/fuwn/meta/system/terminal/kitty/default.nix new file mode 100644 index 0000000..18f08ff --- /dev/null +++ b/home/fuwn/meta/system/terminal/kitty/default.nix @@ -0,0 +1,112 @@ +{ pkgs, ... }: { + programs.kitty = { + enable = true; + + settings = { + # Font + # MesloLGS NF + font_family = "SF Mono Light"; + bold_font = "SF Mono Medium"; + italic_font = "SF Mono Light Italic"; + bold_italic_font = "SF Mono Medium Italic"; + font_size = 12; # 13.5 + + # Optimisation + resize_debounce_time = 0; + sync_to_monitor = true; + repaint_delay = 0; + input_delay = 0; + + # Style + background_opacity = "0.8"; + window_border_width = 0; + window_margin_width = 15; + hide_window_decorations = "titlebar-only"; + include = "~/.cache/wal/colors-kitty.conf"; + + # Cursor + cursor_blink_interval = 0; # 0.5 + cursor_stop_blinking_after = 0; # 15 + + # Other + scrollback_pager = "less +G -R"; + wheel_scroll_multiplier = 5; + click_interval = "0.5"; + select_by_word_characters = ":@-./_~?&=%+#"; + mouse_hide_wait = 0; + enabled_layouts = "*"; + remember_window_size = false; + macos_option_as_alt = false; + allow_remote_control = true; + confirm_os_window_close = 0; + term = "xterm-kitty"; + + # Bell + visual_bell_duration = 0; + enable_audio_bell = false; + + # URL Handling + open_url_modifiers = "ctrl+shift"; + open_url_with = "default"; + }; + + extraConfig = '' + # Clipboard + map super+v paste_from_clipboard + map ctrl+shift+s paste_from_selection + map super+c copy_to_clipboard + map shift+insert paste_from_selection + + # Scrolling + map ctrl+shift+up scroll_line_up + map ctrl+shift+down scroll_line_down + map ctrl+shift+k scroll_line_up + map ctrl+shift+j scroll_line_down + map ctrl+shift+page_up scroll_page_up + map ctrl+shift+page_down scroll_page_down + map ctrl+shift+home scroll_home + map ctrl+shift+end scroll_end + map ctrl+shift+h show_scrollback + + # Window management + map super+n new_os_window + map super+w close_window + map ctrl+shift+enter new_window + map ctrl+shift+] next_window + map ctrl+shift+[ previous_window + map ctrl+shift+f move_window_forward + map ctrl+shift+b move_window_backward + map ctrl+shift+` move_window_to_top + map ctrl+shift+1 first_window + map ctrl+shift+2 second_window + map ctrl+shift+3 third_window + map ctrl+shift+4 fourth_window + map ctrl+shift+5 fifth_window + map ctrl+shift+6 sixth_window + map ctrl+shift+7 seventh_window + map ctrl+shift+8 eighth_window + map ctrl+shift+9 ninth_window + map ctrl+shift+0 tenth_window + + # Tab management + map ctrl+shift+right next_tab + map ctrl+shift+left previous_tab + map ctrl+shift+t new_tab + map ctrl+shift+q close_tab + map ctrl+shift+l next_layout + map ctrl+shift+. move_tab_forward + map ctrl+shift+, move_tab_backward + + # Miscellaneous + map ctrl+shift+up increase_font_size + map ctrl+shift+down decrease_font_size + map ctrl+shift+backspace restore_font_size + + map ctrl+/ launch --allow-remote-control kitty +kitten kitty_search/search.py @active-kitty-window-id + ''; + }; + + # read the file, but remove the line with shell_integration + # xdg.configFile."kitty/kitty.conf".text = + # builtins.map (line: if builtins.match "shell_integration" line then "" else line) (builtins.split "\n" (builtins.readFile ~/.config/kitty/kitty.conf)); +} |