From 36c0a5a11410586e7c57b857e70152591f98ca0b Mon Sep 17 00:00:00 2001 From: Kariya Date: Sun, 1 Mar 2026 01:39:57 +0900 Subject: [PATCH] init: firstCommit --- README.md | 7 + flake.lock | 154 +++++++++++ flake.nix | 40 +++ home-manager/blender.nix | 7 + home-manager/code-cursor.nix | 6 + home-manager/direnv.nix | 8 + home-manager/firefox.nix | 5 + home-manager/fish/default.nix | 12 + home-manager/fish/functions/fish_prompt.fish | 41 +++ home-manager/fnott.nix | 81 ++++++ home-manager/hyprland/default.nix | 261 ++++++++++++++++++ .../hyprland/rose-pine-hyprcursor.nix | 33 +++ home-manager/hyprland/styles/thin.nix | 43 +++ home-manager/obs-studio.nix | 12 + home-manager/tofi.nix | 35 +++ home-manager/voicevox.nix | 8 + home-manager/vscode.nix | 11 + home-manager/wezterm/default.nix | 6 + home-manager/wezterm/wezterm.lua | 88 ++++++ home-manager/zeditor.nix | 27 ++ hosts/.default.nix.swp | Bin 0 -> 12288 bytes hosts/aqua/default.nix | 16 ++ hosts/aqua/hardware-configuration.nix | 54 ++++ hosts/aqua/nixos.nix | 93 +++++++ hosts/aqua/umi/home-manager.nix | 88 ++++++ hosts/aqua/umi/nixos.nix | 9 + hosts/default.nix | 8 + hosts/mkHost.nix | 62 +++++ programs/desktop/hyprland.nix | 17 ++ programs/docker.nix | 3 + programs/fcitx.nix | 13 + programs/shell.nix | 26 ++ programs/ssh.nix | 26 ++ programs/steam.nix | 8 + programs/utility.nix | 15 + programs/v4l2.nix | 11 + system/core/boot.nix | 6 + system/core/default.nix | 13 + system/core/fonts.nix | 18 ++ system/core/greeter.nix | 77 ++++++ system/core/locale.nix | 5 + system/core/network.nix | 13 + system/core/nix.nix | 17 ++ system/core/sound.nix | 17 ++ system/core/uwsm.nix | 13 + system/home-manager/default.nix | 11 + system/home-manager/theme-switcher.nix | 29 ++ 47 files changed, 1553 insertions(+) create mode 100644 README.md create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 home-manager/blender.nix create mode 100644 home-manager/code-cursor.nix create mode 100644 home-manager/direnv.nix create mode 100644 home-manager/firefox.nix create mode 100644 home-manager/fish/default.nix create mode 100644 home-manager/fish/functions/fish_prompt.fish create mode 100644 home-manager/fnott.nix create mode 100644 home-manager/hyprland/default.nix create mode 100644 home-manager/hyprland/rose-pine-hyprcursor.nix create mode 100644 home-manager/hyprland/styles/thin.nix create mode 100644 home-manager/obs-studio.nix create mode 100644 home-manager/tofi.nix create mode 100644 home-manager/voicevox.nix create mode 100644 home-manager/vscode.nix create mode 100644 home-manager/wezterm/default.nix create mode 100644 home-manager/wezterm/wezterm.lua create mode 100644 home-manager/zeditor.nix create mode 100644 hosts/.default.nix.swp create mode 100644 hosts/aqua/default.nix create mode 100644 hosts/aqua/hardware-configuration.nix create mode 100644 hosts/aqua/nixos.nix create mode 100644 hosts/aqua/umi/home-manager.nix create mode 100644 hosts/aqua/umi/nixos.nix create mode 100644 hosts/default.nix create mode 100644 hosts/mkHost.nix create mode 100644 programs/desktop/hyprland.nix create mode 100644 programs/docker.nix create mode 100644 programs/fcitx.nix create mode 100644 programs/shell.nix create mode 100644 programs/ssh.nix create mode 100644 programs/steam.nix create mode 100644 programs/utility.nix create mode 100644 programs/v4l2.nix create mode 100644 system/core/boot.nix create mode 100644 system/core/default.nix create mode 100644 system/core/fonts.nix create mode 100644 system/core/greeter.nix create mode 100644 system/core/locale.nix create mode 100644 system/core/network.nix create mode 100644 system/core/nix.nix create mode 100644 system/core/sound.nix create mode 100644 system/core/uwsm.nix create mode 100644 system/home-manager/default.nix create mode 100644 system/home-manager/theme-switcher.nix diff --git a/README.md b/README.md new file mode 100644 index 0000000..243febb --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# 🌽❄ + +``` +sudo nixos-rebuild switch --flake .# + +nix run .#home-manager -- switch --flake .# +``` diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..c2738b4 --- /dev/null +++ b/flake.lock @@ -0,0 +1,154 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1772218752, + "narHash": "sha256-G8nArvOTZXU8DRvrzAdz3Elcj6kA/vMtvY9mrGLATtA=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "f3a30376bb9eb2f6f61816be7d6ed954b6d2a3b9", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "nix-index-database": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1771734689, + "narHash": "sha256-/phvMgr1yutyAMjKnZlxkVplzxHiz60i4rc+gKzpwhg=", + "owner": "Mic92", + "repo": "nix-index-database", + "rev": "8f590b832326ab9699444f3a48240595954a4b10", + "type": "github" + }, + "original": { + "owner": "Mic92", + "repo": "nix-index-database", + "type": "github" + } + }, + "nixos-hardware": { + "locked": { + "lastModified": 1771969195, + "narHash": "sha256-qwcDBtrRvJbrrnv1lf/pREQi8t2hWZxVAyeMo7/E9sw=", + "owner": "NixOS", + "repo": "nixos-hardware", + "rev": "41c6b421bdc301b2624486e11905c9af7b8ec68e", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixos-hardware", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1771848320, + "narHash": "sha256-0MAd+0mun3K/Ns8JATeHT1sX28faLII5hVLq0L3BdZU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "2fc6539b481e1d2569f25f8799236694180c0993", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1727348695, + "narHash": "sha256-J+PeFKSDV+pHL7ukkfpVzCOO7mBSrrpJ3svwBFABbhI=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "1925c603f17fc89f4c8f6bf6f631a802ad85d784", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "home-manager": "home-manager", + "nix-index-database": "nix-index-database", + "nixos-hardware": "nixos-hardware", + "nixpkgs": "nixpkgs", + "zen-browser": "zen-browser" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "zen-browser": { + "inputs": { + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1761859251, + "narHash": "sha256-+Kxwwlis5m8b69DBQ42wxM0f7sKCa7RRy5ADCMEI1Ss=", + "owner": "xaragon", + "repo": "zen-browser-flake", + "rev": "20dbd219c8238f297d53603b5f0001167a35ce51", + "type": "github" + }, + "original": { + "owner": "xaragon", + "repo": "zen-browser-flake", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..fc42b0b --- /dev/null +++ b/flake.nix @@ -0,0 +1,40 @@ +{ + description = "my config flake"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + + home-manager.url = "github:nix-community/home-manager"; + home-manager.inputs.nixpkgs.follows = "nixpkgs"; + + flake-utils.url = "github:numtide/flake-utils"; + nixos-hardware.url = "github:NixOS/nixos-hardware"; + zen-browser.url = "github:xaragon/zen-browser-flake"; + + nix-index-database.url = "github:Mic92/nix-index-database"; + nix-index-database.inputs.nixpkgs.follows = "nixpkgs"; + }; + + outputs = + inputs@{ + self, + ... + }: + { + nixosConfigurations = (import ./hosts inputs).nixos; + homeConfigurations = (import ./hosts inputs).home-manager; + } + // (inputs.flake-utils.lib.eachDefaultSystem ( + system: + let + hm = inputs.home-manager.packages.${system}.home-manager; + in + { + packages.home-manager = hm; + apps.home-manager = { + type = "app"; + program = "${hm}/bin/home-manager"; + }; + } + )); +} diff --git a/home-manager/blender.nix b/home-manager/blender.nix new file mode 100644 index 0000000..faae648 --- /dev/null +++ b/home-manager/blender.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: + +{ + home.packages = with pkgs; [ + blender + ]; +} diff --git a/home-manager/code-cursor.nix b/home-manager/code-cursor.nix new file mode 100644 index 0000000..da2368b --- /dev/null +++ b/home-manager/code-cursor.nix @@ -0,0 +1,6 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + code-cursor + ]; +} diff --git a/home-manager/direnv.nix b/home-manager/direnv.nix new file mode 100644 index 0000000..bf4e94e --- /dev/null +++ b/home-manager/direnv.nix @@ -0,0 +1,8 @@ +{ + programs = { + direnv = { + enable = true; + nix-direnv.enable = true; + }; + }; +} diff --git a/home-manager/firefox.nix b/home-manager/firefox.nix new file mode 100644 index 0000000..902f34f --- /dev/null +++ b/home-manager/firefox.nix @@ -0,0 +1,5 @@ +{ +programs.firefox = { + enable = true; +}; +} diff --git a/home-manager/fish/default.nix b/home-manager/fish/default.nix new file mode 100644 index 0000000..f6b528c --- /dev/null +++ b/home-manager/fish/default.nix @@ -0,0 +1,12 @@ +{ ... }: +{ + programs.fish = { + enable = true; + interactiveShellInit = '' + set -g fish_greeting "" + set -gx SSH_AUTH_SOCK "$XDG_RUNTIME_DIR/ssh-agent" + ''; + }; + + xdg.configFile."fish/functions/fish_prompt.fish".source = ./functions/fish_prompt.fish; +} diff --git a/home-manager/fish/functions/fish_prompt.fish b/home-manager/fish/functions/fish_prompt.fish new file mode 100644 index 0000000..00d0622 --- /dev/null +++ b/home-manager/fish/functions/fish_prompt.fish @@ -0,0 +1,41 @@ +function preexec --on-event fish_preexec + set -g _play_command_begin_time (date +%s%3N) +end + +function postexec --on-event fish_postexec + set -l _status $status + if test -z $_play_command_begin_time + return + end + + set -l code + if test $_status -eq 0 + set_color green + set code "✔success:$_status" + else + set_color red + set code "✘error:$_status" + end + + set -l took_time + set -l millis (echo (date +%s%3N)"-$_play_command_begin_time" | bc) + if test $millis -ge 10000 + set took_time (echo "$millis/1000" | bc)s + else if test $millis -ge 1000 + set took_time (echo "scale=2; $millis/1000" | bc)s + else + set took_time "$millis""ms" + end + + echo -s -n $code\ (set_color magenta)\ 󱦟$took_time\n +end + +function fish_prompt + set now_date (set_color cyan)(date +%H:%M:%S) + set who_n_where (set_color yellow)$USER::(prompt_hostname) + set pwd (prompt_pwd) + set enter_mark (set_color red)'❯'(set_color yellow)'❯'(set_color green)'❯' + + echo -e -s -n -- $now_date\ $who_n_where\ (set_color white)\|(set_color yellow)\ $pwd\n$enter_mark\ + set_color normal +end diff --git a/home-manager/fnott.nix b/home-manager/fnott.nix new file mode 100644 index 0000000..007fe38 --- /dev/null +++ b/home-manager/fnott.nix @@ -0,0 +1,81 @@ +{ + config, + lib, + pkgs, + ... +}: +{ + services.fnott = { + enable = true; + + # (Home Manager module の仕様) + # https://mipmip.github.io/home-manager-option-search/?query=services.fnott.settings + settings = { + main = { + # --- 配置 / レイヤ --- + anchor = "top-right"; + layer = "overlay"; # フルスクリーンでも出したい場合 + stacking-order = "bottom-up"; + + # --- 余白 --- + edge-margin-vertical = 18; + edge-margin-horizontal = 18; + notification-margin = 10; + + # --- サイズ --- + # アイコンを大きめにして視認性を上げる(テキストは控えめに) + min-width = 360; + max-width = 520; + max-height = 0; # 制限したいなら 600 など + + # --- 見た目(モノトーン / シック)--- + # 背景は黒寄り・透明気味、枠線は薄いグレー、文字は白〜グレー + background = "101012dd"; # RGBA 8桁 (rrggbbaa) + border-color = "2a2a2fff"; + border-size = 1; + border-radius = 12; + + # パディング(カード感) + padding-vertical = 16; + padding-horizontal = 18; + + # --- フォント(モダン寄りに)--- + title-font = "Inter SemiBold 11"; + summary-font = "Inter Medium 10"; + body-font = "Inter 10"; + + title-color = "f2f2f2ff"; + summary-color = "d6d6d6ff"; + body-color = "b8b8b8ff"; + + # --- アイコン優位 --- + icon-theme = "Papirus-Dark"; # 未導入なら "hicolor" でもOK + max-icon-size = 64; # デフォルト32 -> 強調 + icon = "dialog-information"; # フォールバック(任意) + + dpi-aware = false; + }; + + low = { + default-timeout = 4; + border-color = "232327ff"; + }; + + normal = { + default-timeout = 7; + border-color = "2a2a2fff"; + }; + + critical = { + default-timeout = 0; + border-color = "6a6a6fff"; + border-size = 2; + background = "101012f2"; + }; + }; + }; + + home.packages = with pkgs; [ + papirus-icon-theme + ]; +} diff --git a/home-manager/hyprland/default.nix b/home-manager/hyprland/default.nix new file mode 100644 index 0000000..bfa4155 --- /dev/null +++ b/home-manager/hyprland/default.nix @@ -0,0 +1,261 @@ +{ + pkgs, + lib, + config, + ... +}: +let + inherit (lib) + mkOption + recursiveUpdate + types + optionals + ; + rosePineHyprcursor = pkgs.callPackage ./rose-pine-hyprcursor.nix { }; + + defaultInput = { + kb_layout = "us"; + kb_variant = ""; + kb_model = ""; + kb_options = ""; + kb_rules = ""; + + follow_mouse = true; + + touchpad = { + natural_scroll = false; + }; + + natural_scroll = false; + sensitivity = 0.0; + }; + + wallpaperCommand = config.hare.hyprland.wallpaperCommand; + + baseSettings = { + exec-once = [ + # "/usr/lib/polkit-kde-authentication-agent-1" + # "dunst" + "swww-daemon" + # "copyq --start-server" + # "wl-paste --type text --watch cliphist store" + # "wl-paste --type image --watch cliphist store" + "eww daemon" + "eww open bar" + "eww open roundedEdge" + ]; + exec = + optionals (wallpaperCommand != null) [ + wallpaperCommand + ] + ++ [ + "dconf write /org/gnome/desktop/interface/gtk-theme 'Adwaita Dark'" + "dconf write /org/gnome/desktop/interface/icon-theme 'Adwaita Dark'" + "dconf write /org/gnome/desktop/interface/document-font-name 'Noto Sans Medium 11'" + "dconf write /org/gnome/desktop/interface/font-name 'Noto Sans Medium 11'" + "dconf write /org/gnome/desktop/interface/monospace-font-name 'Noto Sans Mono Medium 11'" + ]; + env = [ + "XDG_CURRENT_DESKTOP,Hyprland" + "XDG_SESSION_TYPE,wayland" + "XDG_SESSION_DESKTOP,Hyprland" + ]; + + ecosystem.no_update_news = true; + + input = defaultInput; + + general = { + layout = "dwindle"; + allow_tearing = true; + }; + + dwindle = { + pseudotile = true; + preserve_split = true; + }; + + misc = { + force_default_wallpaper = false; + disable_hyprland_logo = true; + disable_splash_rendering = true; + }; + + windowrule = [ + "animation windowsIn 0, match:title ^(.*wofi.*)$" + "float on, match:title ^(.*feh.*)$" + "center on, match:title ^(.*feh.*)$" + "float on, match:title ^(Picture.*)$" + "pin on, match:title ^(Picture.*)$" + "immediate on, match:class ^(Terraria)$" + ]; + + workspace = [ + "1, monitor:DP-2, default:true" + "r[2-9], monitor:DP-2" + "name:sub, monitor:DP-1, default:true" + ]; + + "$menu" = "uwsm app -- $(tofi-drun)"; + "$terminal" = "wezterm"; + "$lock" = "hyprlock"; + bindm = [ + # Window Movement & Resizing + "SUPER, mouse:272, movewindow" + "SUPER, mouse:273, resizewindow" + ]; + bind = [ + # basic + "SUPER, return, exec, $menu" + "SUPER, E, exec, $terminal" + "SUPER, Q, killactive," + "SUPER, L, exec, $lock" + "SUPER_SHIFT, M, exec, loginctl terminate-user $USER" + + # prsc + ", Print, exec, hyprshot -m window -m active --clipboard-only" + + # Clipboard + "SUPER, C, exec, copyq show" + "SUPER, V, exec, clipman pick -t dmenu" + + # Window navigation + "SUPER, F, fullscreen," + "SUPER, Y, pin" + "SUPER, I, togglefloating," + "SUPER, O, togglesplit," # dwindle + "SUPER, P, pseudo," # dwindle + + # Window focus + "SUPER, mouse_down, cyclenext, next" + "SUPER, mouse_up, cyclenext, prev" + + "SUPER, left, movefocus, l" + "SUPER, right, movefocus, r" + "SUPER, up, movefocus, u" + "SUPER, down, movefocus, d" + + "SUPER_SHIFT, left, movewindow, l" + "SUPER_SHIFT, right, movewindow, r" + "SUPER_SHIFT, up, movewindow, u" + "SUPER_SHIFT, down, movewindow, d" + + # workspaces + "SUPER, 1, workspace, 1" + "SUPER, 2, workspace, 2" + "SUPER, 3, workspace, 3" + + "SUPER_CTRL, left, workspace, m-1" + "SUPER_CTRL, right, workspace, m+1" + "SUPER_CTRL_SHIFT, left, workspace, r-1" + "SUPER_CTRL_SHIFT, right, workspace, r+1" + ] + ++ ( + # workspaces + # binds $mod + [shift +] {1..9} to [move to] workspace {1..9} + builtins.concatLists ( + builtins.genList ( + i: + let + ws = i + 1; + in + [ + "SUPER, code:1${toString i}, workspace, ${toString ws}" + "SUPER SHIFT, code:1${toString i}, movetoworkspace, ${toString ws}" + ] + ) 9 + ) + ); + }; + + defaultStyle = { + general = { + gaps_in = 4; + gaps_out = 7; + border_size = 3; + "col.active_border" = "rgba(6e848cee) rgba(eeeeffee) 90deg"; + "col.inactive_border" = "rgba(595959aa)"; + }; + decoration = { + rounding = 10; + blur = { + enabled = true; + size = 6; + passes = 2; + noise = 0.01; + contrast = 0.8; + brightness = 0.5; + vibrancy = 0.25; + vibrancy_darkness = 0.1; + }; + shadow = { + enabled = false; + range = 4; + render_power = 3; + color = "rgba(1a1a1aee)"; + }; + dim_inactive = false; + }; + animations = { + enabled = true; + animation = [ + "windowsIn, 1, 1, default, popin 90%" + "windowsOut, 1, 100, default, popin 80%" + "windowsMove, 1, 3, default" + "border, 1, 10, default" + "borderangle, 1, 8, default" + "fade, 1, 7, default" + "workspaces, 1, 5, default, slidefade 10%" + ]; + }; + }; + + styleSettings = recursiveUpdate defaultStyle config.hare.hyprland.style; + inputSettings = recursiveUpdate defaultInput config.hare.hyprland.input; +in +{ + options.hare.hyprland.style = mkOption { + type = types.attrs; + default = { }; + description = "Overlay of Hyprland style tweaks that will be merged on top of the base settings."; + }; + + options.hare.hyprland.input = mkOption { + type = types.attrs; + default = { }; + description = "Overrides for the Hyprland input block (e.g., sensitivity, accel profiles)."; + }; + options.hare.hyprland.wallpaperCommand = mkOption { + type = types.nullOr types.str; + default = null; + description = "Command to set the wallpaper (e.g., \"swww img \"); appended to Hyprland's exec list when provided."; + }; + + config = { + wayland.windowManager.hyprland = { + enable = true; + systemd.enable = false; + settings = recursiveUpdate (recursiveUpdate baseSettings styleSettings) { + input = inputSettings; + }; + plugins = [ + ]; + }; + home.packages = [ + rosePineHyprcursor + ] + ++ (with pkgs; [ + swww + eww + hyprshot + ]); + home.sessionVariables = { + HYPRCURSOR_THEME = "rose-pine-hyprcursor"; + HYPRCURSOR_SIZE = "24"; + XCURSOR_SIZE = "24"; + GTK_BACKEND = "wayland"; + QT_QPA_PLATFORM = "wayland;xcb"; + QT_QPA_PLATFORMTHEME = "qt5ct"; + }; + }; +} diff --git a/home-manager/hyprland/rose-pine-hyprcursor.nix b/home-manager/hyprland/rose-pine-hyprcursor.nix new file mode 100644 index 0000000..7691537 --- /dev/null +++ b/home-manager/hyprland/rose-pine-hyprcursor.nix @@ -0,0 +1,33 @@ +{ + stdenvNoCC, + lib, + fetchzip, +}: +stdenvNoCC.mkDerivation (finalAttrs: { + pname = "rose-pine-hyprcursor"; + version = "0.3.2"; + + src = fetchzip { + url = "https://github.com/ndom91/rose-pine-hyprcursor/archive/refs/tags/v${finalAttrs.version}.tar.gz"; + hash = "sha256-ArUX5qlqAXUqcRqHz4QxXy3KgkfasTPA/Qwf6D2kV0U="; + }; + + dontBuild = true; + + installPhase = '' + runHook preInstall + target=$out/share/icons/${finalAttrs.pname} + mkdir -p "$target" + cp -r hyprcursors hyprcursors_uncompressed manifest.hl "$target" + # include docs for reference + cp README.md LICENSE "$target"/ + runHook postInstall + ''; + + meta = with lib; { + description = "Rose Pine themed Hyprcursor set"; + homepage = "https://github.com/ndom91/rose-pine-hyprcursor"; + license = licenses.mit; + platforms = platforms.linux; + }; +}) diff --git a/home-manager/hyprland/styles/thin.nix b/home-manager/hyprland/styles/thin.nix new file mode 100644 index 0000000..cce0938 --- /dev/null +++ b/home-manager/hyprland/styles/thin.nix @@ -0,0 +1,43 @@ +{ lib }: +{ + general = lib.mkForce { + gaps_in = 0; + gaps_out = 0; + border_size = 2; + "col.active_border" = "rgba(6e848cee) rgba(eeeeffee) 90deg"; + "col.inactive_border" = "rgba(595959aa)"; + layout = "dwindle"; + allow_tearing = true; + }; + + decoration = lib.mkForce { + rounding = 0; + blur = { + enabled = true; + size = 6; + passes = 2; + noise = 0.01; + contrast = 0.8; + brightness = 0.5; + vibrancy = 0.25; + vibrancy_darkness = 0.1; + }; + shadow = { + enabled = false; + }; + dim_inactive = false; + }; + + animations = lib.mkForce { + enabled = true; + animation = [ + "windowsIn, 1, 1, default, popin 90%" + "windowsOut, 1, 100, default, popin 80%" + "windowsMove, 1, 3, default" + "border, 1, 10, default" + "borderangle, 1, 8, default" + "fade, 1, 7, default" + "workspaces, 1, 5, default, slidefade 10%" + ]; + }; +} diff --git a/home-manager/obs-studio.nix b/home-manager/obs-studio.nix new file mode 100644 index 0000000..a8c2ffa --- /dev/null +++ b/home-manager/obs-studio.nix @@ -0,0 +1,12 @@ +{ config, pkgs, ... }: +{ + programs.obs-studio = { + enable = true; + plugins = with pkgs.obs-studio-plugins; [ + wlrobs + obs-backgroundremoval + obs-pipewire-audio-capture + obs-shaderfilter + ]; + }; +} diff --git a/home-manager/tofi.nix b/home-manager/tofi.nix new file mode 100644 index 0000000..2876f5f --- /dev/null +++ b/home-manager/tofi.nix @@ -0,0 +1,35 @@ +{ + programs.tofi.enable = true; + programs.tofi.settings = { + history = true; + text-cursor = true; + text-cursor-style = "underscore"; + text-cursor-corner-radius = 0; + auto-accept-single = true; + + font = "monospace"; + text-color = "#C8C093"; + prompt-text = "ᐢ˙꒳˙ᐢ <"; + prompt-padding = 20; + prompt-color = "#C8C093"; + placeholder-text = "Hello, World!"; + placeholder-color = "#49443C"; + selection-color = "#76946A"; + selection-match-color = "#98BB6C"; + num-results = 0; + + width = 1280; + height = 720; + result-spacing = 8; + background-color = "#1F1F28"; + outline-width = 0; + outline-color = "#000000"; + border-width = 6; + border-color = "#727169"; + corner-radius = 50; + padding-top = 20; + padding-bottom = 20; + padding-left = 100; + padding-right = 100; + }; +} diff --git a/home-manager/voicevox.nix b/home-manager/voicevox.nix new file mode 100644 index 0000000..0dfa7ee --- /dev/null +++ b/home-manager/voicevox.nix @@ -0,0 +1,8 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + voicevox-core + voicevox-engine + voicevox + ]; +} diff --git a/home-manager/vscode.nix b/home-manager/vscode.nix new file mode 100644 index 0000000..419cbc6 --- /dev/null +++ b/home-manager/vscode.nix @@ -0,0 +1,11 @@ +{ pkgs, ... }: +{ + programs.vscode = { + enable = true; + package = pkgs.vscode.fhs; + profiles.default = { + extensions = with pkgs.vscode-extensions; [ + ]; + }; + }; +} diff --git a/home-manager/wezterm/default.nix b/home-manager/wezterm/default.nix new file mode 100644 index 0000000..e785e11 --- /dev/null +++ b/home-manager/wezterm/default.nix @@ -0,0 +1,6 @@ +{ ... }: +{ + programs.wezterm.enable = true; + + xdg.configFile."wezterm/wezterm.lua".source = ./wezterm.lua; +} diff --git a/home-manager/wezterm/wezterm.lua b/home-manager/wezterm/wezterm.lua new file mode 100644 index 0000000..542222e --- /dev/null +++ b/home-manager/wezterm/wezterm.lua @@ -0,0 +1,88 @@ +local wezterm = require 'wezterm' +local config = { + enable_wayland = true, + force_reverse_video_cursor = true, + + font_size = 12, + + colors = { + foreground = '#dcd7ba', + background = 'rgba(31,31,31,0.2)', + + cursor_bg = '#c8c093', + cursor_fg = '#c8c093', + cursor_border = '#c8c093', + + selection_fg = '#c8c093', + selection_bg = '#2d4f67', + + scrollbar_thumb = '#16161d', + split = '#16161d', + + ansi = { '#090618', '#c34043', '#76946a', '#c0a36e', '#7e9cd8', '#957fb8', '#6a9589', '#c8c093' }, + brights = { '#727169', '#e82424', '#98bb6c', '#e6c384', '#7fb4ca', '#938aa9', '#7aa89f', '#dcd7ba' }, + indexed = { [16] = '#ffa066', [17] = '#ff5d62' }, + tab_bar = { + background = 'rgba(31, 31, 40, 0.5)', + new_tab = { + bg_color = 'rgba(31, 31, 40, 0.5)', + fg_color = '#c8c093', + }, + new_tab_hover = { + bg_color = 'rgba(31, 31, 40, 0.5)', + fg_color = '#c8c093', + intensity = 'Bold' + }, + } + }, + + use_fancy_tab_bar = false, + show_tab_index_in_tab_bar = false, + + keys = { + { key = 'V', mods = 'CTRL', action = wezterm.action.PasteFrom 'Clipboard' }, + } +} + +local SOLID_LEFT_ARROW = wezterm.nerdfonts.pl_right_hard_divider +local SOLID_RIGHT_ARROW = wezterm.nerdfonts.pl_left_hard_divider +function tab_title(tab_info) + local title = tab_info.tab_title + -- if the tab title is explicitly set, take that + if title and #title > 0 then + return title + end + -- Otherwise, use the title from the active pane + -- in that tab + return tab_info.active_pane.title +end +wezterm.on( + 'format-tab-title', + function(tab, tabs, panes, config, hover, max_width) + + local bg_color = 'rgba(31, 31, 40, 0.5)' + local fg_color = '#c8c093' + local text_color = '#1f1f28' + + if tab.is_active then + fg_color = '#2d4f67' + text_color = '#c8c093' + end + + local title = wezterm.truncate_right(tab_title(tab), max_width - 4) + + return { + { Background = { Color = bg_color } }, + { Foreground = { Color = fg_color } }, + { Text = SOLID_LEFT_ARROW }, + { Background = { Color = fg_color } }, + { Foreground = { Color = text_color } }, + { Text = ' ' .. title .. ' ' }, + { Background = { Color = bg_color } }, + { Foreground = { Color = fg_color } }, + { Text = SOLID_RIGHT_ARROW }, + } + end +) + +return config diff --git a/home-manager/zeditor.nix b/home-manager/zeditor.nix new file mode 100644 index 0000000..2fe0da0 --- /dev/null +++ b/home-manager/zeditor.nix @@ -0,0 +1,27 @@ +{ pkgs, ... }: + +{ + programs.zed-editor = { + enable = true; + extensions = [ + "nix" + "toml" + "rust" + ]; + + userSettings = { + theme = { + mode = "system"; + dark = "Kanagawa Dragon"; + light = "Kanagawa Lotus"; + }; + hour_format = "hour24"; + vim_mode = false; + buffer_font_size = 12.0; + buffer_font_family = "PlemolJP Console NF"; + }; + }; + fonts.fontconfig.enable = true; + home.file.".local/share/fonts/plemoljp".source = + "${pkgs.plemoljp-nf}/share/fonts/truetype/plemoljp-nf-console"; +} diff --git a/hosts/.default.nix.swp b/hosts/.default.nix.swp new file mode 100644 index 0000000000000000000000000000000000000000..6ac9235dcc69421988699d695c9477dbf7182481 GIT binary patch literal 12288 zcmeI&%}T>S5C`zBH}MmFfl&`l4klJTXvKp^L60qXlFgS5CfSr1Ljqc$w?K&;N&!Q01PY>~lpvL`-5V=yOT>kFK z;!CB!OXBx#Po<$-q_OL(Jc|-}9`cel+6}@;7Kw4V(+~O}1p*NGr9fe#^_{uS)@Ey? ztXx}Nq2;B{FPk780uX=z1Rwwb2tWV=5SU~E({G4dKEPCUh}mjxe3`3{m>>WF2tWV= z5P$##AOHafKmY;|m_Pv;2(djc#5G6x|Nr>+|J#BPuN==Dj~sU#7aT_%O^#KL7p}P( z*G}Ns@s%L}0SG_<0uX=z1Rwwb2teR}1O|eryb`{i%1oYxIqj2I#EFSB?L;aGk|tTQ zOSK1zxmW6|IAc~6YtkB#bPWvi1 ~/.config/cornflake/current-theme + else + echo 'prefer-light' > ~/.config/cornflake/current-theme + fi + ${apply-theme-script} + ''}''; + }; +in +{ + xdg.desktopEntries = { + theme-switcher = desktopEntry; + }; +}