diff --git a/flake.lock b/flake.lock index 8fcb1f3..86e0f1f 100644 --- a/flake.lock +++ b/flake.lock @@ -19,11 +19,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1762980239, - "narHash": "sha256-8oNVE8TrD19ulHinjaqONf9QWCKK+w4url56cdStMpM=", + "lastModified": 1768135262, + "narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "52a2caecc898d0b46b2b905f058ccc5081f842da", + "rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac", "type": "github" }, "original": { @@ -39,11 +39,11 @@ ] }, "locked": { - "lastModified": 1766553861, - "narHash": "sha256-ZbnG01yA3O8Yr1vUm3+NQ2qk9iRhS5bloAnuXHHy7+c=", + "lastModified": 1773963144, + "narHash": "sha256-WzBOBfSay3GYilUfKaUa1Mbf8/jtuAiJIedx7fWuIX4=", "owner": "nix-community", "repo": "home-manager", - "rev": "0999ed8f965bbbd991437ad9c5ed3434cecbc30e", + "rev": "a91b3ea73a765614d90360580b689c48102d1d33", "type": "github" }, "original": { @@ -55,11 +55,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1766568855, - "narHash": "sha256-UXVtN77D7pzKmzOotFTStgZBqpOcf8cO95FcupWp4Zo=", + "lastModified": 1773533765, + "narHash": "sha256-qonGfS2lzCgCl59Zl63jF6dIRRpvW3AJooBGMaXjHiY=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "c5db9569ac9cc70929c268ac461f4003e3e5ca80", + "rev": "f8e82243fd601afb9f59ad230958bd073795cbfe", "type": "github" }, "original": { @@ -71,11 +71,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1766622938, - "narHash": "sha256-Eovt/DOCYjFFBZuYbbG9j5jhklzxdNbUGVYYxh3lG3s=", + "lastModified": 1773814637, + "narHash": "sha256-GNU+ooRmrHLfjlMsKdn0prEKVa0faVanm0jrgu1J/gY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5900a0a8850cbba98e16d5a7a6ed389402dfcf4f", + "rev": "fea3b367d61c1a6592bc47c72f40a9f3e6a53e96", "type": "github" }, "original": { @@ -87,11 +87,11 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1761765539, - "narHash": "sha256-b0yj6kfvO8ApcSE+QmA6mUfu8IYG6/uU28OFn4PaC8M=", + "lastModified": 1765674936, + "narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "719359f4562934ae99f5443f20aa06c2ffff91fc", + "rev": "2075416fcb47225d9b68ac469a5c4801a9c4dd85", "type": "github" }, "original": { @@ -148,11 +148,11 @@ "xserver-meson-flags": "xserver-meson-flags" }, "locked": { - "lastModified": 1766204441, - "narHash": "sha256-CKoWqMDv7O81q6v6RTUGfMilx5aulOCw+HHdtkJM1qc=", + "lastModified": 1771870945, + "narHash": "sha256-4DYbVq+vGjr+D6vEZ1Ds9tby11XRcRO8Jv8eSDFV+38=", "ref": "refs/heads/main", - "rev": "bb35b081bb7256cbafb1c53c911985d86f51da04", - "revCount": 140, + "rev": "b2e21d095bf63dac90da626433ef20a84f798b40", + "revCount": 179, "type": "git", "url": "https://codeberg.org/takagemacoed/xlibre-overlay" }, diff --git a/home/alacritty.nix b/home/alacritty.nix new file mode 100644 index 0000000..1b611a1 --- /dev/null +++ b/home/alacritty.nix @@ -0,0 +1,30 @@ +{ config, pkgs, ... }: +{ + programs.alacritty = { + enable = true; + settings = { + scrolling = { + history = 10000; + multiplier = 5; + }; + font = { + size = 14; + normal = { + family = "0xProto Nerd Font Mono"; + style = "Regular"; + }; + bold = { + family = "0xProto Nerd Font Mono"; + style = "Bold"; + }; + italic = { + family = "0xProto Nerd Font Mono"; + style = "Italic"; + }; + }; + window = { + opacity = 0.8; + }; + }; + }; +} diff --git a/home/browser.nix b/home/browser.nix new file mode 100644 index 0000000..ad2059c --- /dev/null +++ b/home/browser.nix @@ -0,0 +1,6 @@ +{ config, pkgs, ... }: +{ + home.packages = with pkgs; [ + firefox + ]; +} diff --git a/home/cads.nix b/home/cads.nix new file mode 100644 index 0000000..244b575 --- /dev/null +++ b/home/cads.nix @@ -0,0 +1,9 @@ +{ config, pkgs, ... }: +{ + home.packages = with pkgs; [ + kicad + openscad + freecad + librecad + ]; +} diff --git a/home/cmd_tools.nix b/home/cmd_tools.nix index ccc8a6d..40c88d3 100644 --- a/home/cmd_tools.nix +++ b/home/cmd_tools.nix @@ -31,7 +31,41 @@ ]; }; + programs.git = { + enable = true; + settings = { + core = { + fileMode = false; + editor = "vim"; + whitespace = "tabwidth=4,trailing-space,space-before-tab"; + }; + credential."https://git.kenryu.us".username = "kenryuS"; + user = { + name = "Kenryu Shibata"; + email = "kenryudev5894@gmail.com"; + }; + }; + }; + programs.gitui = { enable = true; }; + + programs.gh = { + enable = true; + extensions = with pkgs; [ + gh-f + gh-eco + gh-notify + gh-poi + ]; + settings = { + editor = "vim"; + prompt = true; + pager = "bat"; + browser = "firefox"; + color_labels = true; + git_protocol = "ssh"; + }; + }; } diff --git a/home/default.nix b/home/default.nix index 8d11cee..7c9b38c 100644 --- a/home/default.nix +++ b/home/default.nix @@ -4,8 +4,16 @@ let in { imports = [ + ./alacritty.nix + ./browser.nix + ./cads.nix + ./cmd_tools.nix ./i3.nix + ./media.nix + ./tmux.nix ./vim.nix + ./zed.nix + ./zsh.nix ]; home = { diff --git a/home/i3.nix b/home/i3.nix index e9a774c..e6f6f5b 100644 --- a/home/i3.nix +++ b/home/i3.nix @@ -20,7 +20,7 @@ in color_good = "#00FF00"; color_degraded = "#00FFFF"; color_bad = "#FF0000"; - separator = "][" + separator = "]["; }; modules = { "time" = { @@ -44,7 +44,7 @@ in decimals = "1"; unit = "Mi"; format = "%available (%used) / %total"; - format = "Mem LOW (%available)" + format_degraded = "Mem LOW (%available)"; threshold_degraded = "10%"; threshold_critical = "6.25%"; }; @@ -53,7 +53,7 @@ in position = 4; settings = { prefix_type = "decimal"; - format = "/ %percentage_used" + format = "/ %percentage_used"; }; }; "volume master" = { @@ -83,8 +83,8 @@ in menu = MENU; terminal = TERM; workspaceLayout = "tabbed"; - gamps = { - smartBorders = true; + gaps = { + smartBorders = "on"; smartGaps = true; inner = 10; }; diff --git a/home/media.nix b/home/media.nix index 2b1f08c..a980935 100644 --- a/home/media.nix +++ b/home/media.nix @@ -1,9 +1,11 @@ { config, lib, pkgs, ... }: { - environment.systemPackages = with pkgs; [ + home.packages = with pkgs; [ mpv vlc ffmpeg - kdenlive + kdePackages.kdenlive + gimp + inkscape ]; } diff --git a/home/zed.nix b/home/zed.nix new file mode 100644 index 0000000..87ab6a9 --- /dev/null +++ b/home/zed.nix @@ -0,0 +1,64 @@ +{ config, pkgs, lib, ... }: +{ + programs.zed-editor = { + enable = true; + extensions = [ + "awk" + "assembly" + "bison" + "dockerfile" + "docker-compose" + "gruvbox-material-neovim" + "haskell" + "html-snippets" + "htmx-lsp" + "ini" + "javascript-snippets" + "jq" + "julia" + "lua" + "make" + "markdownlint" + "nix" + "rust-snippets" + "toml" + ]; + extraPackages = with pkgs; [ + clang-tools + rustfmt + nil + ]; + userSettings = { + features = { + copilot = false; + }; + telemetry = { + metrics = false; + }; + autosave = { + after_delay = { milliseconds = 30000; }; + }; + disable_ai = true; + auto_update = false; + vim_mode = true; + tab_size = 4; + preferred_line_length = 80; + minimap = { + show = "always"; + thumb = "always"; + current_line_highlight = "line"; + }; + buffer_font_size = 16; + buffer_font_family = "0xProto Nerd Font Mono"; + ui_font_size = 14; + cursor_shape = "block"; + format_on_save = "off"; + terminal = { + blinking = "on"; + font_family = "Moralerspace Argon"; + font_size = 14; + scroll_multiplier = 5.0; + }; + }; + }; +} diff --git a/home/zsh.nix b/home/zsh.nix new file mode 100644 index 0000000..6e2ef73 --- /dev/null +++ b/home/zsh.nix @@ -0,0 +1,14 @@ +{ config, pkgs, ... }: +{ + programs.zsh = { + enable = true; + history = { + extended = true; + expireDuplicatesFirst = true; + ignoreSpace = true; + size = 100; + }; + syntaxHighlighting.enable = true; + defaultKeymap = "vicmd"; + }; +} diff --git a/hosts/waku/default.nix b/hosts/waku/default.nix index 052fa53..63fe959 100644 --- a/hosts/waku/default.nix +++ b/hosts/waku/default.nix @@ -1,20 +1,109 @@ { config, lib, pkgs, ... }: { - imports = - [ - ./hardware-configuration.nix - ../../profiles/base.nix - # ../../profiles/desktop.nix - ]; + imports = [ + ./hardware-configuration.nix + ../../profiles/base.nix + ../../profiles/desktop.nix + ]; boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; + boot.kernelPackages = pkgs.linuxPackages_latest; + boot.tmp.cleanOnBoot = true; + boot.binfmt.preferStaticEmulators = true; + boot.binfmt.emulatedSystems = [ + "aarch64-linux" + "armv6l-linux" + "armv7l-linux" + ]; - environment.systemPackages = with pkgs; [ + virtualisation = { + podman = { + enable = true; + dockerCompat = true; + dockerSocket.enable = true; + }; + libvirtd = { + enable = true; + onBoot = "ignore"; + onShutdown = "shutdown"; + qemu = { + swtpm.enable = true; + }; + }; + spiceUSBRedirection.enable = true; + }; + + services.fprintd.enable = true; + + services.xserver.windowManager.i3.enable = true; + services.desktopManager.gnome.enable = true; + services.gnome = { + core-apps.enable = false; + core-developer-tools.enable = false; + games.enable = false; + }; + environment.gnome.excludePackages = with pkgs; [ + gnome-tour + gnome-user-docs + ]; + + services.flatpak.enable = true; + xdg.portal.extraPortals = with pkgs; [ + xdg-desktop-portal-gnome + xdg-desktop-portal-xapp + kdePackages.xdg-desktop-portal-kde + ]; + + fonts = { + fontDir.enable = true; + fontconfig = { + defaultFonts = { + emoji = [ "Noto Color Emoji" ]; + monospace = [ "Moralerspace Argon" ]; + sansSerif = [ "Noto Sans" ]; + serif = [ "Noto Serif" ]; + }; + }; + packages = with pkgs; [ + nerd-fonts._0xproto + nerd-fonts.fira-code + moralerspace + gyre-fonts + ipafont + jigmo + noto-fonts + noto-fonts-cjk-sans + noto-fonts-cjk-serif + corefonts + noto-fonts-color-emoji + ]; + }; + + programs.steam = { + enable = true; + #extest.enable = true; + fontPackages = with pkgs; [ + noto-fonts + noto-fonts-cjk-sans + noto-fonts-cjk-serif + ]; + }; + + environment.systemPackages = (with pkgs; [ vim tmux - ]; + saleae-logic-2 + ]) ++ (with pkgs.gnomeExtensions; [ + kiwi-menu + blur-my-shell + forge + vibe-panel + dash-to-dock + ]); + + nixpkgs.config.allowUnfree = true; networking.hostName = "wakugumi-hitoroku"; networking.firewall.enable = true; diff --git a/hosts/waku/hardware-configuration.nix b/hosts/waku/hardware-configuration.nix new file mode 100644 index 0000000..e923d85 --- /dev/null +++ b/hosts/waku/hardware-configuration.nix @@ -0,0 +1,33 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usbhid" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/1d5bfff2-4819-489a-8533-b2e3070c4623"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/12CE-A600"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/cac5d442-525a-4918-ae64-11aa76192f91"; } + ]; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/profiles/base.nix b/profiles/base.nix index 561a74e..868ba69 100644 --- a/profiles/base.nix +++ b/profiles/base.nix @@ -12,6 +12,9 @@ ]; }; + console.useXkbConfig = true; + services.xserver.xkb.options = "ctrl:swapcaps"; + services.pipewire = { enable = true; pulse.enable = true; @@ -28,33 +31,13 @@ enableSSHSupport = true; }; }; + services.pcscd.enable = true; hardware.gpgSmartcards.enable = true; users.users.bitbang = { isNormalUser = true; - extraGroups = [ "wheel" "video" "audio" "nix" "dialout" "networkmanager" ]; - }; - - programs.zoxide = { - enable = true; - enableBashIntegration = false; - enableZshIntegration = true; - }; - - programs.tmux = { - enable = true; - clock24 = true; - baseIndex = 1; - keyMode = "vi"; - customPaneNavigationAndResize = true; - newSession = true; - historyLimit = 10000; - terminal = "tmux-direct"; - }; - - programs.bat = { - enable = true; + extraGroups = [ "wheel" "video" "audio" "nix" "dialout" "networkmanager" "libvirtd" "podman" ]; }; programs.nix-ld = { @@ -85,7 +68,7 @@ }; nix.settings = { - cores = 4; + cores = lib.mkDefault 8; sandbox = true; allowed-users = [ "@wheel" ]; trusted-users = [ "@wheel" ]; @@ -105,5 +88,6 @@ btop fastfetch stow + yubikey-manager ]; } diff --git a/profiles/desktop.nix b/profiles/desktop.nix index 91548a9..f47b184 100644 --- a/profiles/desktop.nix +++ b/profiles/desktop.nix @@ -41,13 +41,27 @@ }; }; - environment.systemPackages = with pkgs; [ + xdg.portal = { + enable = true; + }; + + environment.systemPackages = (with pkgs; [ alacritty xfe feh keepassxc + gnucash + owncloud-client + thunderbird + libreoffice-fresh kdePackages.spectacle kdePackages.gwenview kdePackages.okular - ]; + ]) ++ (with pkgs.skkDictionaries; [ + l + emoji + edict + assoc + itaiji + ]); }