diff options
| -rw-r--r-- | derivations/fw-ectool/default.nix | 45 | ||||
| -rw-r--r-- | devenv.lock | 103 | ||||
| -rw-r--r-- | flake.nix | 13 | ||||
| -rw-r--r-- | hosts/local/fw11/configuration.nix | 12 | ||||
| -rw-r--r-- | hosts/local/fw11/hardware-configuration.bkp | 40 | ||||
| -rw-r--r-- | hosts/local/fw11/hardware-configuration.nix | 19 | ||||
| -rw-r--r-- | hosts/local/fw11/keyboard.nix | 8 | ||||
| -rw-r--r-- | hosts/local/gui.nix | 1 | ||||
| -rw-r--r-- | hosts/local/niri.nix | 224 | ||||
| -rw-r--r-- | hosts/local/sway.nix (renamed from hosts/local/wayland.nix) | 4 | ||||
| -rw-r--r-- | hosts/local/thinkpad.kbd (renamed from hosts/local/fw11/thinkpad.kbd) | 43 | ||||
| -rw-r--r-- | hosts/pkgs.nix | 6 |
12 files changed, 366 insertions, 152 deletions
diff --git a/derivations/fw-ectool/default.nix b/derivations/fw-ectool/default.nix new file mode 100644 index 0000000..68aac91 --- /dev/null +++ b/derivations/fw-ectool/default.nix @@ -0,0 +1,45 @@ +{ + stdenv, + lib, + fetchFromGitHub, + cmake, + pkg-config, + libusb1, + libftdi1, +}: +stdenv.mkDerivation { + pname = "fw-ectool"; + version = "0-unstable-2024-04-23"; + + src = fetchFromGitHub { + owner = "polwex"; + repo = "ectool"; + rev = "abdd574ebe3640047988cb928bb6789a15dd1390"; + hash = "sha256-j0Z2Uo1LBXlHZVHPm4Xjx3LZaI6Qq0nSdViyC/CjWC8="; + }; + + nativeBuildInputs = [ + cmake + pkg-config + ]; + + buildInputs = [ + libusb1 + libftdi1 + ]; + + installPhase = '' + runHook preInstall + install -Dm555 src/ectool "$out/bin/ectool" + runHook postInstall + ''; + + meta = with lib; { + description = "EC-Tool adjusted for usage with framework embedded controller"; + homepage = "https://gitlab.howett.net/DHowett/ectool"; + license = licenses.bsd3; + maintainers = [maintainers.mkg20001]; + platforms = platforms.linux; + mainProgram = "ectool"; + }; +} diff --git a/devenv.lock b/devenv.lock deleted file mode 100644 index 0b61657..0000000 --- a/devenv.lock +++ /dev/null @@ -1,103 +0,0 @@ -{ - "nodes": { - "devenv": { - "locked": { - "dir": "src/modules", - "lastModified": 1743783972, - "owner": "cachix", - "repo": "devenv", - "rev": "2f53e2f867e0c2ba18b880e66169366e5f8ca554", - "type": "github" - }, - "original": { - "dir": "src/modules", - "owner": "cachix", - "repo": "devenv", - "type": "github" - } - }, - "flake-compat": { - "flake": false, - "locked": { - "lastModified": 1733328505, - "owner": "edolstra", - "repo": "flake-compat", - "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "git-hooks": { - "inputs": { - "flake-compat": "flake-compat", - "gitignore": "gitignore", - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1742649964, - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, - "gitignore": { - "inputs": { - "nixpkgs": [ - "git-hooks", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709087332, - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1733477122, - "owner": "cachix", - "repo": "devenv-nixpkgs", - "rev": "7bd9e84d0452f6d2e63b6e6da29fe73fac951857", - "type": "github" - }, - "original": { - "owner": "cachix", - "ref": "rolling", - "repo": "devenv-nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "devenv": "devenv", - "git-hooks": "git-hooks", - "nixpkgs": "nixpkgs", - "pre-commit-hooks": [ - "git-hooks" - ] - } - } - }, - "root": "root", - "version": 7 -} @@ -33,10 +33,10 @@ # inputs.nixpkgs.follows = "nixpkgs"; # inputs.flake-utils.follows = "flake-utils"; # }; - agenix = { - url = "github:yaxitech/ragenix"; - inputs.nixpkgs.follows = "nixpkgs"; - }; + # agenix = { + # url = "github:yaxitech/ragenix"; + # inputs.nixpkgs.follows = "nixpkgs"; + # }; nix-gaming.url = "github:fufexan/nix-gaming"; disko = { url = "github:nix-community/disko"; @@ -65,7 +65,10 @@ homix = { url = "github:homix-community/homix"; }; - kmonad.url = "github:kmonad/kmonad?dir=nix"; + kmonad = { + url = "github:kmonad/kmonad?dir=nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; helix.url = "github:helix-editor/helix"; waybar = { url = "github:alexays/waybar"; diff --git a/hosts/local/fw11/configuration.nix b/hosts/local/fw11/configuration.nix index 11c09d1..71eef5d 100644 --- a/hosts/local/fw11/configuration.nix +++ b/hosts/local/fw11/configuration.nix @@ -25,9 +25,10 @@ ../../base.nix ../../linux.nix # ../../syncthing.nix - # ../../unfree.nix - # ../wayland.nix - # ./keyboard.nix + ../../unfree.nix + ../niri.nix + ../gui.nix + ./keyboard.nix # ../android.nix ]; @@ -52,13 +53,14 @@ boot.loader.efi.canTouchEfiVariables = true; # boot.supportedFilesystems = ["ntfs"]; # boot.kernelPackages = lib.mkForce unfreePkgs.linuxKernel.packages.linux_xanmod_latest; - # boot.kernelPackages = pkgs.linuxPackages_latest; - boot.kernelPackages = pkgs.linuxPackages_6_12; + boot.kernelPackages = pkgs.linuxPackages_latest; + # boot.kernelPackages = pkgs.linuxPackages_6_12; services.fprintd.enable = true; networking = { hostName = "fw-nixos"; # Define your hostname. firewall.enable = false; + nameservers = ["8.8.8.8" "8.8.4.4"]; }; nix.settings.trusted-users = ["root" "y"]; diff --git a/hosts/local/fw11/hardware-configuration.bkp b/hosts/local/fw11/hardware-configuration.bkp new file mode 100644 index 0000000..359ff8f --- /dev/null +++ b/hosts/local/fw11/hardware-configuration.bkp @@ -0,0 +1,40 @@ +# 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 = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ "i915" "8821cu"]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ config.boot.kernelPackages.rtl8821cu ]; + # to modeswitch usb dongle sudo usb_modeswitch -KW -v 0bda -p 1a2b + + fileSystems."/" = + { device = "/dev/disk/by-uuid/176785ba-cd35-4d09-b7df-37e8b9843c33"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/043D-21E3"; + fsType = "vfat"; + options = ["fmask=0077" "dmask=0077"]; + }; + + swapDevices = + [ + ]; + + # The global useDHCP flag is deprecated, therefore explicitly set to false here. + # Per-interface useDHCP will be mandatory in the future, so this generated config + # replicates the default behaviour. + networking.useDHCP = lib.mkDefault false; + networking.interfaces.wlp170s0.useDHCP = lib.mkDefault true; + + powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/hosts/local/fw11/hardware-configuration.nix b/hosts/local/fw11/hardware-configuration.nix index 359ff8f..049c395 100644 --- a/hosts/local/fw11/hardware-configuration.nix +++ b/hosts/local/fw11/hardware-configuration.nix @@ -8,11 +8,10 @@ [ (modulesPath + "/installer/scan/not-detected.nix") ]; - boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ]; - boot.initrd.kernelModules = [ "i915" "8821cu"]; + boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usbhid" ]; + boot.initrd.kernelModules = [ ]; boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ config.boot.kernelPackages.rtl8821cu ]; - # to modeswitch usb dongle sudo usb_modeswitch -KW -v 0bda -p 1a2b + boot.extraModulePackages = [ ]; fileSystems."/" = { device = "/dev/disk/by-uuid/176785ba-cd35-4d09-b7df-37e8b9843c33"; @@ -22,19 +21,13 @@ fileSystems."/boot" = { device = "/dev/disk/by-uuid/043D-21E3"; fsType = "vfat"; - options = ["fmask=0077" "dmask=0077"]; + options = [ "fmask=0077" "dmask=0077" ]; }; swapDevices = - [ + [ { device = "/dev/disk/by-uuid/643ac019-fac1-4dad-84d9-e50380baff2b"; } ]; - # The global useDHCP flag is deprecated, therefore explicitly set to false here. - # Per-interface useDHCP will be mandatory in the future, so this generated config - # replicates the default behaviour. - networking.useDHCP = lib.mkDefault false; - networking.interfaces.wlp170s0.useDHCP = lib.mkDefault true; - - powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; } diff --git a/hosts/local/fw11/keyboard.nix b/hosts/local/fw11/keyboard.nix index ce875dd..f078258 100644 --- a/hosts/local/fw11/keyboard.nix +++ b/hosts/local/fw11/keyboard.nix @@ -1,8 +1,8 @@ {pkgs, ...}: { - services.logind.extraConfig = '' + services.logind.settings.Login = { # don’t shutdown when power button is short-pressed - HandlePowerKey=ignore - ''; + HandlePowerKey = "ignore"; + }; # config file keeps getting rewritten but I don't know by who i18n.inputMethod = { @@ -36,7 +36,7 @@ usbThinkpad = { # device = "/dev/input/by-id/usb-Lenovo_ThinkPad_Compact_USB_Keyboard_with_TrackPoint-event-kbd"; device = "/dev/input/by-id/usb-Lenovo_TrackPoint_Keyboard_II-event-kbd"; - config = builtins.readFile ./thinkpad.kbd; + config = builtins.readFile ../thinkpad.kbd; }; }; }; diff --git a/hosts/local/gui.nix b/hosts/local/gui.nix index 59676c1..26adeb1 100644 --- a/hosts/local/gui.nix +++ b/hosts/local/gui.nix @@ -4,6 +4,7 @@ ... }: { environment.systemPackages = with pkgs; [ + pavucontrol #terminals kitty alacritty diff --git a/hosts/local/niri.nix b/hosts/local/niri.nix new file mode 100644 index 0000000..7db141e --- /dev/null +++ b/hosts/local/niri.nix @@ -0,0 +1,224 @@ +{ + inputs, + pkgs, + ... +}: { + nixpkgs.config.packageOVerrides = pkgs: { + intel-vaapi-driver = pkgs.intel-vaapi-driver.override {enableHybridCodec = true;}; + vaapiIntel = pkgs.vaapiIntel.override {enableHybridCodec = true;}; + }; + hardware.graphics = { + enable = true; + enable32Bit = true; + extraPackages = [ + pkgs.mesa + pkgs.vaapiVdpau + pkgs.libvdpau-va-gl + ]; + }; + programs.niri = { + enable = true; + }; + + environment.variables = { + WLR_NO_HARDWARE_CURSOR = "1"; + }; + environment.sessionVariables = { + WLR_NO_HARDWARE_CURSOR = "1"; + NIXOS_OZONE_WL = "1"; + SDL_VIDEODRIVER = "wayland"; + QT_QPA_PLATFORM = "wayland"; + QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; + _JAVA_AWT_WM_NONREPARENTING = "1"; + MOZ_ENABLE_WAYLAND = "1"; + + # GTK_IM_MODULE = "fcitx"; + # QT_IM_MODULE = "fcitx"; + # SDL_IM_MODULE = "fcitx"; + + XDG_CURRENT_DESKTOP = "sway"; + GDK_BACKEND = "wayland"; + XDG_SESSION_TYPE = "wayland"; + XMODIFIERS = "@im=fcitx"; + }; + + xdg.portal = { + enable = true; + extraPortals = with pkgs; [ + # xdg-desktop-portal-hyprland + # xdg-desktop-portal-cosmic + xdg-desktop-portal-gtk + xdg-desktop-portal-gnome + ]; + config = { + common = { + default = [ + "gnome" + "gtk" + ]; + "org.freedesktop.impl.portal.Access" = ["gtk"]; + "org.freedesktop.impl.portal.Notification" = ["gtk"]; + "org.freedesktop.impl.portal.Secret" = ["gnome-keyring"]; + "org.freedesktop.impl.portal.FileChooser" = ["gtk"]; + }; + }; + }; + environment.systemPackages = with pkgs; [ + quickshell + cosmic-panel + fuzzel + # + cliphist + hypridle + hyprlock + networkmanagerapplet + playerctl + qalculate-gtk + swaynotificationcenter + swayosd + syncthingtray + wl-clipboard + wl-clip-persist + wl-color-picker + wofi-power-menu + + # xdg-utils + # xdg-desktop-portal + # xdg-desktop-portal-wlr + # xdg-desktop-portal-gtk + # # calibre + # # nyxt + # wofi + # imv + # swaylock + # brightnessctl + # swayidle + # foot + # mako + # kanshi + # grim + # slurp + # wl-clipboard + # wf-recorder + # viewnior + # playerctl + # blueman + # wdisplays + # inputs.waybar.packages.x86_64-linux.default + # glxinfo + # vulkan-tools + # glmark2 + # intel-media-driver + # intel-vaapi-driver + # pavucontrol + # # icons + # polkit_gnome + # gnome-themes-extra + # gtk-engine-murrine + # gtk_engines + # gsettings-desktop-schemas + # lxappearance + # adwaita-qt + # adwaita-icon-theme + # libcamera # pipewire seems to want this + # easyeffects + # tigervnc + # foliate + # # code + # kdePackages.kompare + # meld + # # tmp + # # browser TTS + # # speechd + # # espeak-ng + # # espeak-ng-data + # wineWowPackages.waylandFull + # libcamera # pipewire seems to want this + # tracy # cool system watcher + ]; + services.speechd.enable = true; + + # cjk input + + i18n.inputMethod = { + type = "fcitx5"; + enable = true; + fcitx5 = { + # enabled = true; + addons = with pkgs; [ + rime-data + fcitx5-rime + fcitx5-mozc + fcitx5-configtool + fcitx5-chinese-addons + fcitx5-gtk + ]; + waylandFrontend = true; + }; + }; + services.xserver.desktopManager.runXdgAutostartIfNone = true; + + fonts = { + enableDefaultPackages = true; + fontconfig = { + defaultFonts.emoji = ["Noto Color Emoji"]; + defaultFonts.monospace = ["Hack" "Sarasa Mono SC"]; + defaultFonts.sansSerif = ["DejaVu Sans"]; + defaultFonts.serif = ["DejaVu Serif" "Source Han Serif SC"]; + }; + packages = with pkgs; + [ + fira-code + fira + cooper-hewitt + ibm-plex + jetbrains-mono + iosevka + spleen + fira-code-symbols + powerline-fonts + arphic-ukai + arphic-uming + dejavu_fonts + font-awesome + inconsolata # monospaced + noto-fonts + noto-fonts-cjk-sans + noto-fonts-emoji + noto-fonts-extra + powerline-fonts + source-han-sans-japanese + source-han-sans-korean + source-han-sans-simplified-chinese + source-han-sans-traditional-chinese + source-sans-pro + ubuntu_font_family + wqy_microhei + wqy_zenhei + ] + ++ builtins.filter lib.attrsets.isDerivation (builtins.attrValues pkgs.nerd-fonts); + }; + + # screen capture + # + + services.dbus.enable = true; + ## Remove sound.enable or set it to false if you had it set previously, as sound.enable is only meant for ALSA-based configurations + + # rtkit is optional but recommended + security.rtkit.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + wireplumber.enable = true; + # If you want to use JACK applications, uncomment this + jack.enable = true; + }; + + # pipewire requires these off + # sound.enable = true; + # hardware.pulseaudio.enable = true; + # hardware.bluetooth.enable = true; +} diff --git a/hosts/local/wayland.nix b/hosts/local/sway.nix index c33bf23..e881fec 100644 --- a/hosts/local/wayland.nix +++ b/hosts/local/sway.nix @@ -11,7 +11,7 @@ enable = true; enable32Bit = true; extraPackages = [ - pkgs.mesa.drivers + pkgs.mesa pkgs.vaapiVdpau pkgs.libvdpau-va-gl ]; @@ -43,7 +43,7 @@ playerctl blueman wdisplays - inputs.nixpkgs-wayland.packages.x86_64-linux.waybar + inputs.waybar.packages.x86_64-linux.default glxinfo vulkan-tools glmark2 diff --git a/hosts/local/fw11/thinkpad.kbd b/hosts/local/thinkpad.kbd index 7fb53d2..e7bb184 100644 --- a/hosts/local/fw11/thinkpad.kbd +++ b/hosts/local/thinkpad.kbd @@ -18,12 +18,13 @@ output (uinput-sink "My KMonad output") ;; This is the real representation of your actual keyboard. We haven't started ;; customizing layouts yet. (defsrc - esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 del + esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 home end ins del ` 1 2 3 4 5 6 7 8 9 0 - = bspc tab q w e r t y u i o p [ ] \ caps a s d f g h j k l ; ' ret - lsft z x c v b n m , . / rsft up - lctl lmet lalt spc ralt rctl left down right + lsft z x c v b n m , . / rsft + lctl lmet lalt spc ralt rctl pgup up pgdn + left down right ) ;; Aliases @@ -55,47 +56,51 @@ semi (tap-hold-next-release 280 ; rctl) ;; The first custom layer is the one that gets activated when kmonad is started (deflayer qwerty ;; The default layer that'd be read when you launch kmonad - esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 del + esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 home end ins del ` 1 2 3 4 5 6 7 8 9 0 - = bspc tab q w e r t y u i o p [ ] \ esc a s d f g h j k l ; ' ret - @sym z x c v b n m , . / rsft up - lctl lmet @sym spc @cords @hrt left down right + lsft z x c v b n m , . / rsft + lctl lmet @sym spc @cords @hrt pgup up pgdn + left down right ) (deflayer homerowmods - esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 del + esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 home end ins del ` 1 2 3 4 5 6 7 8 9 0 - = bspc tab q w e r t y u i o p [ ] \ esc @a @s @d @f g h @j @k @l @semi ' ret - @sym z x c v b n m , . / rsft up - lctl lmet @sym spc lalt @back left down right + lsft z x c v b n m , . / rsft + lctl lmet @sym spc lalt @back pgup up pgdn + left down right ) (deflayer mods - esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 del + esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 pgup pgdn ins del ` 1 2 3 4 5 6 7 8 9 0 - = bspc tab q w e r t y u i o p [ ] h esc lctl lalt lmet lsft g h rsft rmet ralt rctl ' ret - @sym z x c v b n m , . / rsft up - lctl lmet @sym spc lalt @back left down right -) + lsft z x c v b n m , . / rsft + lctl lmet @sym spc lalt @back pgup up pgdn + left down right +) ;; A layer dedicated to symbols (deflayer syms - _ _ _ _ _ _ _ _ _ _ _ _ _ _ + esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 pgup pgdn ins del _ _ _ _ _ _ _ _ _ _ _ _ _ _ - _ _ _ up _ _ ! @ # $ % _ _ _ - _ _ left down right @sym2 ' ^ & - = _ ret + _ _ _ up _ _ ! @ # $ % pgup _ _ + _ _ left down right @sym2 ' ^ & - = pgdn ret _ _ _ _ _ _ \( [ { < \ _ _ - _ _ _ _ _ _ _ _ _ + _ _ _ _ _ pgup pgup pgdn + l pgdn l ) ;; More symbols (deflayer syms2 - _ _ _ _ _ _ _ _ _ _ _ _ _ _ + esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 pgup pgdn ins del _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ` ~ * \_ + _ ret _ _ _ _ _ _ \) ] } > | _ _ - _ _ _ _ _ _ _ _ _ + _ _ _ _ _ _ _ _ _ _ _ ) diff --git a/hosts/pkgs.nix b/hosts/pkgs.nix index 66a6ec0..436851a 100644 --- a/hosts/pkgs.nix +++ b/hosts/pkgs.nix @@ -7,6 +7,7 @@ environment.systemPackages = with pkgs; [ # networking + lynx minio minio-client curlFull @@ -71,10 +72,12 @@ # aider-chat # inputs.yek.packages.x86_64-linux.default # python312Packages.google-generativeai - yek + bun claude-code codex nushell + ast-grep + diffsitter # inputs.gemini-cli.packages.x86_64-linux.default # # ai @@ -113,4 +116,5 @@ gnumake bun ]; + # ++ (with pkgs; [devenv]); } |
