summaryrefslogtreecommitdiff
path: root/home/ebisu/fortune/system
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-08-29 21:31:09 -0700
committerFuwn <[email protected]>2024-08-29 21:31:09 -0700
commit653f81eec07eb3e33c380810676a7feb45e1df43 (patch)
tree00d43c8f1b2cb2cf8ebaf1b7c1a4c026718033bb /home/ebisu/fortune/system
parentsome stuff (diff)
downloadnixos-config-653f81eec07eb3e33c380810676a7feb45e1df43.tar.xz
nixos-config-653f81eec07eb3e33c380810676a7feb45e1df43.zip
some stuff
Diffstat (limited to 'home/ebisu/fortune/system')
-rw-r--r--home/ebisu/fortune/system/bitwarden/default.nix7
-rw-r--r--home/ebisu/fortune/system/default.nix25
-rw-r--r--home/ebisu/fortune/system/fonts/default.nix54
-rw-r--r--home/ebisu/fortune/system/fonts/meowsans/MeowSans_Font/MeowSans-Regular.ttfbin0 -> 10524000 bytes
-rw-r--r--home/ebisu/fortune/system/fonts/meowsans/MeowSans_Font/MeowSans.ttfbin0 -> 8666420 bytes
-rw-r--r--home/ebisu/fortune/system/fonts/meowsans/default.nix4
-rw-r--r--home/ebisu/fortune/system/opengl/default.nix23
-rw-r--r--home/ebisu/fortune/system/peripheral/default.nix6
-rw-r--r--home/ebisu/fortune/system/shell/default.nix21
-rw-r--r--home/ebisu/fortune/system/shell/fish/default.nix160
-rw-r--r--home/ebisu/fortune/system/shell/scripting/charmbracelet/default.nix6
-rw-r--r--home/ebisu/fortune/system/shell/scripting/default.nix18
-rw-r--r--home/ebisu/fortune/system/shell/scripting/ripgrep/default.nix7
-rw-r--r--home/ebisu/fortune/system/shell/starship/default.nix305
-rw-r--r--home/ebisu/fortune/system/terminal/default.nix11
-rw-r--r--home/ebisu/fortune/system/terminal/foot/default.nix49
-rw-r--r--home/ebisu/fortune/system/terminal/kitty/default.nix113
-rw-r--r--home/ebisu/fortune/system/variables.nix97
-rw-r--r--home/ebisu/fortune/system/virtualisation/default.nix9
-rw-r--r--home/ebisu/fortune/system/virtualisation/docker/default.nix10
-rw-r--r--home/ebisu/fortune/system/xdg.nix9
21 files changed, 934 insertions, 0 deletions
diff --git a/home/ebisu/fortune/system/bitwarden/default.nix b/home/ebisu/fortune/system/bitwarden/default.nix
new file mode 100644
index 0000000..2ac188f
--- /dev/null
+++ b/home/ebisu/fortune/system/bitwarden/default.nix
@@ -0,0 +1,7 @@
+{ pkgs, ... }: {
+ home.packages = with pkgs; [
+ bitwarden-desktop
+ # bitwarden-cli
+ # bitwarden-menu
+ ];
+}
diff --git a/home/ebisu/fortune/system/default.nix b/home/ebisu/fortune/system/default.nix
new file mode 100644
index 0000000..c8ae875
--- /dev/null
+++ b/home/ebisu/fortune/system/default.nix
@@ -0,0 +1,25 @@
+{ pkgs, ... }:
+{
+ imports = [
+ ./bitwarden
+ ./fonts
+ ./opengl
+ ./peripheral
+ ./shell
+ ./terminal
+ ./virtualisation
+ ./variables.nix
+ ./xdg.nix
+ ];
+
+ home.packages = with pkgs; [
+ # bpftrace
+ libsForQt5.ksshaskpass
+ ];
+
+ # services.ananicy = {
+ # enable = true;
+ # package = pkgs.ananicy-cpp;
+ # rulesProvider = pkgs.ananicy-rules-cachyos;
+ # };
+}
diff --git a/home/ebisu/fortune/system/fonts/default.nix b/home/ebisu/fortune/system/fonts/default.nix
new file mode 100644
index 0000000..ffc6f89
--- /dev/null
+++ b/home/ebisu/fortune/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/fortune/system/fonts/meowsans/MeowSans_Font/MeowSans-Regular.ttf b/home/ebisu/fortune/system/fonts/meowsans/MeowSans_Font/MeowSans-Regular.ttf
new file mode 100644
index 0000000..0d12d34
--- /dev/null
+++ b/home/ebisu/fortune/system/fonts/meowsans/MeowSans_Font/MeowSans-Regular.ttf
Binary files differ
diff --git a/home/ebisu/fortune/system/fonts/meowsans/MeowSans_Font/MeowSans.ttf b/home/ebisu/fortune/system/fonts/meowsans/MeowSans_Font/MeowSans.ttf
new file mode 100644
index 0000000..8bb6c1a
--- /dev/null
+++ b/home/ebisu/fortune/system/fonts/meowsans/MeowSans_Font/MeowSans.ttf
Binary files differ
diff --git a/home/ebisu/fortune/system/fonts/meowsans/default.nix b/home/ebisu/fortune/system/fonts/meowsans/default.nix
new file mode 100644
index 0000000..9b5a4f1
--- /dev/null
+++ b/home/ebisu/fortune/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/fortune/system/opengl/default.nix b/home/ebisu/fortune/system/opengl/default.nix
new file mode 100644
index 0000000..cabb8f9
--- /dev/null
+++ b/home/ebisu/fortune/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/fortune/system/peripheral/default.nix b/home/ebisu/fortune/system/peripheral/default.nix
new file mode 100644
index 0000000..f05379c
--- /dev/null
+++ b/home/ebisu/fortune/system/peripheral/default.nix
@@ -0,0 +1,6 @@
+{ pkgs, ... }: {
+ home.packages = with pkgs; [
+ # openrgb
+ solaar
+ ];
+}
diff --git a/home/ebisu/fortune/system/shell/default.nix b/home/ebisu/fortune/system/shell/default.nix
new file mode 100644
index 0000000..2ee83d1
--- /dev/null
+++ b/home/ebisu/fortune/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/fortune/system/shell/fish/default.nix b/home/ebisu/fortune/system/shell/fish/default.nix
new file mode 100644
index 0000000..bcc0def
--- /dev/null
+++ b/home/ebisu/fortune/system/shell/fish/default.nix
@@ -0,0 +1,160 @@
+{ pkgs, config, ... }:
+{
+ 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
+
+ function nh
+ if test "$argv[1]" = "home" -a "$argv[2]" = "switch"
+ command nh $argv -- --impure
+ else
+ command nh $argv
+ end
+ end
+
+ function nix-find
+ find $argv -type f -exec test ! -L {} \; -exec realpath {} \; | grep -v "^/nix/store"
+ 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
+
+ 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";
+ wget = "wget --hsts-file=${config.xdg.dataHome}/wget-hsts";
+
+ # 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/fortune/system/shell/scripting/charmbracelet/default.nix b/home/ebisu/fortune/system/shell/scripting/charmbracelet/default.nix
new file mode 100644
index 0000000..e3b78df
--- /dev/null
+++ b/home/ebisu/fortune/system/shell/scripting/charmbracelet/default.nix
@@ -0,0 +1,6 @@
+{ pkgs, ... }: {
+ home.packages = with pkgs; [
+ gum
+ mods
+ ];
+}
diff --git a/home/ebisu/fortune/system/shell/scripting/default.nix b/home/ebisu/fortune/system/shell/scripting/default.nix
new file mode 100644
index 0000000..2fe33df
--- /dev/null
+++ b/home/ebisu/fortune/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/fortune/system/shell/scripting/ripgrep/default.nix b/home/ebisu/fortune/system/shell/scripting/ripgrep/default.nix
new file mode 100644
index 0000000..00de07f
--- /dev/null
+++ b/home/ebisu/fortune/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/fortune/system/shell/starship/default.nix b/home/ebisu/fortune/system/shell/starship/default.nix
new file mode 100644
index 0000000..0088038
--- /dev/null
+++ b/home/ebisu/fortune/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/fortune/system/terminal/default.nix b/home/ebisu/fortune/system/terminal/default.nix
new file mode 100644
index 0000000..6375e0a
--- /dev/null
+++ b/home/ebisu/fortune/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/fortune/system/terminal/foot/default.nix b/home/ebisu/fortune/system/terminal/foot/default.nix
new file mode 100644
index 0000000..ed0820b
--- /dev/null
+++ b/home/ebisu/fortune/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/fortune/system/terminal/kitty/default.nix b/home/ebisu/fortune/system/terminal/kitty/default.nix
new file mode 100644
index 0000000..4346e8d
--- /dev/null
+++ b/home/ebisu/fortune/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/fortune/system/variables.nix b/home/ebisu/fortune/system/variables.nix
new file mode 100644
index 0000000..40964e0
--- /dev/null
+++ b/home/ebisu/fortune/system/variables.nix
@@ -0,0 +1,97 @@
+{ pkgs, config, ... }:
+{
+ home.sessionVariables = {
+ # ref: https://github.com/nix-community/home-manager/issues/354#issuecomment-475803163
+ LOCALES_ARCHIVE = "${pkgs.glibcLocales}/lib/locale/locale-archive";
+ FLAKE = "${config.home.homeDirectory}/nixos-config";
+
+ # Default programs
+ EDITOR = "nvim";
+ TERMINAL = "kitty";
+ TERMINAL_PROG = "kitty";
+ BROWSER = "zen";
+
+ # Home directory clean-up
+ # https://github.com/NixOS/nixpkgs/issues/224525#issuecomment-1945290961
+ XDG_DATA_HOME = "${config.xdg.dataHome}";
+ XDG_CONFIG_HOME = "${config.xdg.configHome}";
+ XDG_STATE_HOME = "${config.xdg.stateHome}";
+ XDG_CACHE_HOME = "${config.xdg.cacheHome}";
+ NOTMUCH_CONFIG = "${config.xdg.configHome}/notmuch-config";
+ # GTK2_RC_FILES = "${config.xdg.configHome}/gtk-2.0/gtkrc-2.0";
+ WGETRC = "${config.xdg.configHome}/wget/wgetrc";
+ INPUTRC = "${config.xdg.configHome}/shell/inputrc";
+ ZDOTDIR = "${config.xdg.configHome}/zsh";
+ # GNUPGHOME="${config.xdg.dataHome}/gnupg";
+ WINEPREFIX = "${config.xdg.dataHome}/wineprefixes/default";
+ KODI_DATA = "${config.xdg.dataHome}/kodi";
+ PASSWORD_STORE_DIR = "${config.xdg.dataHome}/password-store";
+ TMUX_TMPDIR = "$XDG_RUNTIME_DIR";
+ ANDROID_SDK_HOME = "${config.xdg.configHome}/android";
+ CARGO_HOME = "${config.xdg.dataHome}/cargo";
+ GOPATH = "${config.xdg.dataHome}/go";
+ GOMODCACHE = "${config.xdg.cacheHome}/go/mod";
+ ANSIBLE_CONFIG = "${config.xdg.configHome}/ansible/ansible.cfg";
+ UNISON = "${config.xdg.dataHome}/unison";
+ HISTFILE = "${config.xdg.dataHome}/history";
+ MBSYNCRC = "${config.xdg.configHome}/mbsync/config";
+ ELECTRUMDIR = "${config.xdg.dataHome}/electrum";
+ PYTHONSTARTUP = "${config.xdg.configHome}/python/pythonrc";
+ SQLITE_HISTORY = "${config.xdg.dataHome}/sqlite_history";
+ WAKATIME_HOME = "${config.xdg.configHome}/wakatime";
+ NVM_DIR = "${config.xdg.dataHome}/nvm";
+ CUDA_CACHE_PATH = "${config.xdg.cacheHome}/nv";
+ DOCKER_CONFIG = "${config.xdg.configHome}/docker";
+ RUSTUP_HOME = "${config.xdg.dataHome}/rustup";
+ NUGET_PACKAGES = "${config.xdg.cacheHome}/NuGetPackages";
+ KERAS_HOME = "${config.xdg.stateHome}/keras";
+ PARALLEL_HOME = "${config.xdg.configHome}/parallel";
+ _JAVA_OPTIONS = "-Djava.util.prefs.userRoot=${config.xdg.configHome}/java";
+ NPM_CONFIG_USERCONFIG = "${config.xdg.configHome}/npm/npmrc";
+ NODE_REPL_HISTORY = "${config.xdg.dataHome}/node_repl_history";
+ MPLAYER_HOME = "${config.xdg.configHome}/mplayer";
+ BUNDLE_PATH = "${config.home.homeDirectory}/.gems";
+ STEAM_APP_DIR = "${config.home.homeDirectory}/.steam";
+ ANDROID_USER_HOME = "${config.xdg.dataHome}/android";
+ ASDF_DATA_DIR = "${config.xdg.dataHome}/asdf";
+ CABAL_CONFIG = "${config.xdg.configHome}/cabal/config";
+ CABAL_DIR = "${config.xdg.dataHome}/cabal";
+ DOTNET_CLI_HOME = "${config.xdg.dataHome}/dotnet";
+ GRADLE_USER_HOME = "${config.xdg.dataHome}/gradle";
+ NIMBLE_DIR = "${config.xdg.dataHome}/nimble";
+ REDISCLI_HISTFILE = "${config.xdg.dataHome}/redis/rediscli_history";
+ STACK_ROOT = "${config.xdg.dataHome}/stack";
+ STACK_XDG = 1;
+
+ # Other program settings
+ FZF_DEFAULT_OPTS = "--layout=reverse --height 40%";
+ LESS = "R";
+ LESS_TERMCAP_mb = "$(printf '%b' '')";
+ LESS_TERMCAP_md = "$(printf '%b' '')";
+ LESS_TERMCAP_me = "$(printf '%b' '')";
+ LESS_TERMCAP_so = "$(printf '%b' '')";
+ LESS_TERMCAP_se = "$(printf '%b' '')";
+ LESS_TERMCAP_us = "$(printf '%b' '')";
+ LESS_TERMCAP_ue = "$(printf '%b' '')";
+ LESSOPEN = "| highlight -O ansi %s 2>/dev/null";
+ QT_QPA_PLATFORMTHEME = "gtk2";
+ MOZ_USE_XINPUT2 = "1";
+ AWT_TOOLKIT = "MToolkit wmname LG3D";
+ _JAVA_AWT_WM_NONREPARENTING = 1;
+ # GPG_TTY=$(tty);
+ # GIT_ASKPASS = "${pkgs.ksshaskpass}/bin/ksshaskpass";
+ # SSH_ASKPASS = "${pkgs.ksshaskpass}/bin/ksshaskpass";
+ # SSH_ASKPASS_REQUIRE = "prefer";
+ OPENAI_API_KEY = "sk-proj-lp1rme6lIEbfNeg4sbMQT3BlbkFJoWb5uwnraatH6HOkymqr";
+ NNN_FIFO = "/tmp/nnn.fifo";
+ _Z_DATA = "${config.xdg.dataHome}/z";
+ W3M_DIR = "${config.xdg.dataHome}/w3m";
+ VMODULES = "${config.xdg.dataHome}/vmodules";
+ TEXMFVAR = "${config.xdg.cacheHome}/texlive/texmf-var";
+ BUNDLE_USER_CONFIG = "${config.xdg.configHome}/bundle";
+ BUNDLE_USER_CACHE = "${config.xdg.cacheHome}/bundle";
+ BUNDLE_USER_PLUGIN = "${config.xdg.dataHome}/bundle";
+ PSQL_HISTORY = "${config.xdg.dataHome}/psql_history";
+ PKG_CACHE_PATH = "${config.xdg.cacheHome}/pkg-cache";
+ };
+}
diff --git a/home/ebisu/fortune/system/virtualisation/default.nix b/home/ebisu/fortune/system/virtualisation/default.nix
new file mode 100644
index 0000000..85e082f
--- /dev/null
+++ b/home/ebisu/fortune/system/virtualisation/default.nix
@@ -0,0 +1,9 @@
+{ pkgs, ... }:
+{
+ imports = [ ./docker ];
+
+ home.packages = with pkgs; [
+ bottles
+ virt-manager
+ ];
+}
diff --git a/home/ebisu/fortune/system/virtualisation/docker/default.nix b/home/ebisu/fortune/system/virtualisation/docker/default.nix
new file mode 100644
index 0000000..4d395ff
--- /dev/null
+++ b/home/ebisu/fortune/system/virtualisation/docker/default.nix
@@ -0,0 +1,10 @@
+{ pkgs, ... }:
+{
+ home.packages = with pkgs; [
+ act
+ earthly
+ dive
+ docker-buildx
+ docker-slim
+ ];
+}
diff --git a/home/ebisu/fortune/system/xdg.nix b/home/ebisu/fortune/system/xdg.nix
new file mode 100644
index 0000000..dde487b
--- /dev/null
+++ b/home/ebisu/fortune/system/xdg.nix
@@ -0,0 +1,9 @@
+{ pkgs, ... }:
+{
+ home.packages = with pkgs; [
+ xdg-utils
+ xdg-ninja
+ ];
+
+ xdg.enable = true;
+}