summaryrefslogtreecommitdiff
path: root/home/ebisu/meta/system
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-08-28 20:36:04 -0700
committerFuwn <[email protected]>2024-08-28 20:36:04 -0700
commitf3c31e4ad7fab36e151f3a2e207fafb1eda1a787 (patch)
treee265a1a5270b4522049110b8bc5aa13fda142c2f /home/ebisu/meta/system
parentmany (diff)
downloadnixos-config-f3c31e4ad7fab36e151f3a2e207fafb1eda1a787.tar.xz
nixos-config-f3c31e4ad7fab36e151f3a2e207fafb1eda1a787.zip
hi
Diffstat (limited to 'home/ebisu/meta/system')
-rw-r--r--home/ebisu/meta/system/bitwarden/default.nix7
-rw-r--r--home/ebisu/meta/system/default.nix23
-rw-r--r--home/ebisu/meta/system/fonts/default.nix54
-rw-r--r--home/ebisu/meta/system/fonts/meowsans/MeowSans_Font/MeowSans-Regular.ttfbin0 -> 10524000 bytes
-rw-r--r--home/ebisu/meta/system/fonts/meowsans/MeowSans_Font/MeowSans.ttfbin0 -> 8666420 bytes
-rw-r--r--home/ebisu/meta/system/fonts/meowsans/default.nix4
-rw-r--r--home/ebisu/meta/system/opengl/default.nix23
-rw-r--r--home/ebisu/meta/system/peripheral/default.nix6
-rw-r--r--home/ebisu/meta/system/shell/default.nix21
-rw-r--r--home/ebisu/meta/system/shell/fish/default.nix149
-rw-r--r--home/ebisu/meta/system/shell/scripting/charmbracelet/default.nix6
-rw-r--r--home/ebisu/meta/system/shell/scripting/default.nix18
-rw-r--r--home/ebisu/meta/system/shell/scripting/ripgrep/default.nix7
-rw-r--r--home/ebisu/meta/system/shell/starship/default.nix305
-rw-r--r--home/ebisu/meta/system/terminal/default.nix11
-rw-r--r--home/ebisu/meta/system/terminal/foot/default.nix49
-rw-r--r--home/ebisu/meta/system/terminal/kitty/default.nix113
-rw-r--r--home/ebisu/meta/system/virtualisation/default.nix11
-rw-r--r--home/ebisu/meta/system/virtualisation/docker/default.nix10
19 files changed, 817 insertions, 0 deletions
diff --git a/home/ebisu/meta/system/bitwarden/default.nix b/home/ebisu/meta/system/bitwarden/default.nix
new file mode 100644
index 0000000..2ac188f
--- /dev/null
+++ b/home/ebisu/meta/system/bitwarden/default.nix
@@ -0,0 +1,7 @@
+{ pkgs, ... }: {
+ home.packages = with pkgs; [
+ bitwarden-desktop
+ # bitwarden-cli
+ # bitwarden-menu
+ ];
+}
diff --git a/home/ebisu/meta/system/default.nix b/home/ebisu/meta/system/default.nix
new file mode 100644
index 0000000..25b26b3
--- /dev/null
+++ b/home/ebisu/meta/system/default.nix
@@ -0,0 +1,23 @@
+{ pkgs, ... }:
+{
+ imports = [
+ ./bitwarden
+ ./fonts
+ ./opengl
+ ./peripheral
+ ./shell
+ ./terminal
+ ./virtualisation
+ ];
+
+ home.packages = with pkgs; [
+ # bpftrace
+ xdg-utils
+ ];
+
+ # services.ananicy = {
+ # enable = true;
+ # package = pkgs.ananicy-cpp;
+ # rulesProvider = pkgs.ananicy-rules-cachyos;
+ # };
+}
diff --git a/home/ebisu/meta/system/fonts/default.nix b/home/ebisu/meta/system/fonts/default.nix
new file mode 100644
index 0000000..ffc6f89
--- /dev/null
+++ b/home/ebisu/meta/system/fonts/default.nix
@@ -0,0 +1,54 @@
+{ pkgs, ... }:
+{
+ imports = [ ./meowsans ];
+
+ fonts = {
+ fontconfig = {
+ enable = true;
+
+ defaultFonts = {
+ serif = [
+ "New York Medium"
+ "Hiragino Sans"
+ "JoyPixels"
+ "Noto Color Emoji"
+ "FontAwesome"
+ ];
+
+ sansSerif = [
+ "SF Pro Text"
+ "Hiragino Sans"
+ "JoyPixels"
+ "Noto Color Emoji"
+ "FontAwesome"
+ ];
+
+ monospace = [
+ "SF Mono"
+ "Hiragino Sans"
+ "JoyPixels"
+ "FontAwesome"
+ "Braille"
+ ];
+ };
+ };
+ };
+
+ home.packages = with pkgs; [
+ source-code-pro
+ source-han-sans
+ noto-fonts
+ noto-fonts-cjk-sans
+ noto-fonts-cjk-serif
+ noto-fonts-color-emoji
+ lmodern
+ hanazono
+ jigmo
+ iosevka
+ libertine
+ sarasa-gothic
+ nerdfonts
+ cantarell-fonts
+ inter
+ ];
+}
diff --git a/home/ebisu/meta/system/fonts/meowsans/MeowSans_Font/MeowSans-Regular.ttf b/home/ebisu/meta/system/fonts/meowsans/MeowSans_Font/MeowSans-Regular.ttf
new file mode 100644
index 0000000..0d12d34
--- /dev/null
+++ b/home/ebisu/meta/system/fonts/meowsans/MeowSans_Font/MeowSans-Regular.ttf
Binary files differ
diff --git a/home/ebisu/meta/system/fonts/meowsans/MeowSans_Font/MeowSans.ttf b/home/ebisu/meta/system/fonts/meowsans/MeowSans_Font/MeowSans.ttf
new file mode 100644
index 0000000..8bb6c1a
--- /dev/null
+++ b/home/ebisu/meta/system/fonts/meowsans/MeowSans_Font/MeowSans.ttf
Binary files differ
diff --git a/home/ebisu/meta/system/fonts/meowsans/default.nix b/home/ebisu/meta/system/fonts/meowsans/default.nix
new file mode 100644
index 0000000..9b5a4f1
--- /dev/null
+++ b/home/ebisu/meta/system/fonts/meowsans/default.nix
@@ -0,0 +1,4 @@
+{ pkgs, ... }:
+{
+ home.file.".local/share/fonts/MeowSans_Font ".source = ./MeowSans_Font;
+}
diff --git a/home/ebisu/meta/system/opengl/default.nix b/home/ebisu/meta/system/opengl/default.nix
new file mode 100644
index 0000000..cabb8f9
--- /dev/null
+++ b/home/ebisu/meta/system/opengl/default.nix
@@ -0,0 +1,23 @@
+{ pkgs
+, config
+, inputs
+, ...
+}:
+let
+ nixGLIntel = inputs.nixGL.packages.${pkgs.system}.nixGLIntel;
+in
+{
+ imports = [
+ (builtins.fetchurl {
+ url = "https://raw.githubusercontent.com/nix-community/home-manager/5e59fe27d938a8c2d5e215f64f5d937c2f863fed/modules/misc/nixgl.nix";
+ sha256 = "74f9fb98f22581eaca2e3c518a0a3d6198249fb1490ab4a08f33ec47827e85db";
+ })
+ ];
+
+ # Ref. https://github.com/nix-community/home-manager/issues/3968
+ nixGL.prefix = "${nixGLIntel}/bin/nixGLIntel";
+
+ home.packages = [
+ nixGLIntel
+ ];
+}
diff --git a/home/ebisu/meta/system/peripheral/default.nix b/home/ebisu/meta/system/peripheral/default.nix
new file mode 100644
index 0000000..f05379c
--- /dev/null
+++ b/home/ebisu/meta/system/peripheral/default.nix
@@ -0,0 +1,6 @@
+{ pkgs, ... }: {
+ home.packages = with pkgs; [
+ # openrgb
+ solaar
+ ];
+}
diff --git a/home/ebisu/meta/system/shell/default.nix b/home/ebisu/meta/system/shell/default.nix
new file mode 100644
index 0000000..2ee83d1
--- /dev/null
+++ b/home/ebisu/meta/system/shell/default.nix
@@ -0,0 +1,21 @@
+{ pkgs, ... }:
+{
+ imports = [
+ ./fish
+ ./starship
+ ./scripting
+ ];
+
+ home.packages = with pkgs; [
+ asciinema
+ navi
+ shellclear
+ watchexec
+ zoxide
+ shellcheck
+ termius
+ dash
+ mosh
+ killall
+ ];
+}
diff --git a/home/ebisu/meta/system/shell/fish/default.nix b/home/ebisu/meta/system/shell/fish/default.nix
new file mode 100644
index 0000000..55f441d
--- /dev/null
+++ b/home/ebisu/meta/system/shell/fish/default.nix
@@ -0,0 +1,149 @@
+{ pkgs, ... }: {
+ programs.fish = {
+ enable = true;
+
+ shellInit = ''
+ if status is-interactive
+ set fish_greeting
+
+ fish_vi_key_bindings
+
+ 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
+ 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
+
+ cat ~/.cache/wal/sequences
+
+ starship 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";
+ "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";
+ };
+ };
+}
diff --git a/home/ebisu/meta/system/shell/scripting/charmbracelet/default.nix b/home/ebisu/meta/system/shell/scripting/charmbracelet/default.nix
new file mode 100644
index 0000000..e3b78df
--- /dev/null
+++ b/home/ebisu/meta/system/shell/scripting/charmbracelet/default.nix
@@ -0,0 +1,6 @@
+{ pkgs, ... }: {
+ home.packages = with pkgs; [
+ gum
+ mods
+ ];
+}
diff --git a/home/ebisu/meta/system/shell/scripting/default.nix b/home/ebisu/meta/system/shell/scripting/default.nix
new file mode 100644
index 0000000..2fe33df
--- /dev/null
+++ b/home/ebisu/meta/system/shell/scripting/default.nix
@@ -0,0 +1,18 @@
+{ pkgs, ... }: {
+ imports = [
+ ./charmbracelet
+ ./ripgrep
+ ];
+
+ programs.fzf.enable = true;
+
+ home.packages = with pkgs; [
+ mdcat
+ moreutils
+ pup
+ inxi
+ pv
+ yad
+ jq
+ ];
+}
diff --git a/home/ebisu/meta/system/shell/scripting/ripgrep/default.nix b/home/ebisu/meta/system/shell/scripting/ripgrep/default.nix
new file mode 100644
index 0000000..00de07f
--- /dev/null
+++ b/home/ebisu/meta/system/shell/scripting/ripgrep/default.nix
@@ -0,0 +1,7 @@
+{ pkgs, ... }: {
+ programs.ripgrep.enable = true;
+
+ home.packages = with pkgs; [
+ ripgrep-all
+ ];
+}
diff --git a/home/ebisu/meta/system/shell/starship/default.nix b/home/ebisu/meta/system/shell/starship/default.nix
new file mode 100644
index 0000000..0088038
--- /dev/null
+++ b/home/ebisu/meta/system/shell/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/ebisu/meta/system/terminal/default.nix b/home/ebisu/meta/system/terminal/default.nix
new file mode 100644
index 0000000..6375e0a
--- /dev/null
+++ b/home/ebisu/meta/system/terminal/default.nix
@@ -0,0 +1,11 @@
+{ pkgs, ... }: {
+ imports = [
+ ./kitty
+ ./foot
+ ];
+
+ home.packages = with pkgs; [
+ cool-retro-term
+ # warp-terminal
+ ];
+}
diff --git a/home/ebisu/meta/system/terminal/foot/default.nix b/home/ebisu/meta/system/terminal/foot/default.nix
new file mode 100644
index 0000000..ed0820b
--- /dev/null
+++ b/home/ebisu/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/ebisu/meta/system/terminal/kitty/default.nix b/home/ebisu/meta/system/terminal/kitty/default.nix
new file mode 100644
index 0000000..4346e8d
--- /dev/null
+++ b/home/ebisu/meta/system/terminal/kitty/default.nix
@@ -0,0 +1,113 @@
+{ pkgs, config, ... }:
+{
+ 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));
+}
diff --git a/home/ebisu/meta/system/virtualisation/default.nix b/home/ebisu/meta/system/virtualisation/default.nix
new file mode 100644
index 0000000..d99c7eb
--- /dev/null
+++ b/home/ebisu/meta/system/virtualisation/default.nix
@@ -0,0 +1,11 @@
+{ pkgs, ... }: {
+ imports = [
+ ./docker
+ ];
+
+ home.packages = with pkgs; [
+ bottles
+ valgrind
+ virt-manager
+ ];
+}
diff --git a/home/ebisu/meta/system/virtualisation/docker/default.nix b/home/ebisu/meta/system/virtualisation/docker/default.nix
new file mode 100644
index 0000000..26854be
--- /dev/null
+++ b/home/ebisu/meta/system/virtualisation/docker/default.nix
@@ -0,0 +1,10 @@
+{ pkgs, ... }: {
+ home.packages = with pkgs; [
+ act
+ earthly
+ dive
+ # docker
+ docker-buildx
+ docker-slim
+ ];
+}