diff --git a/flake.lock b/flake.lock index 87286544..7b1f099a 100644 --- a/flake.lock +++ b/flake.lock @@ -754,11 +754,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1751984180, - "narHash": "sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X+xgOL0=", + "lastModified": 1753250450, + "narHash": "sha256-i+CQV2rPmP8wHxj0aq4siYyohHwVlsh40kV89f3nw1s=", "owner": "nixos", "repo": "nixpkgs", - "rev": "9807714d6944a957c2e036f84b0ff8caf9930bc0", + "rev": "fc02ee70efb805d3b2865908a13ddd4474557ecf", "type": "github" }, "original": { diff --git a/home/linux/gui/hyprland/conf/waybar/config.jsonc b/home/linux/gui/hyprland/conf/waybar/config.jsonc index bb75122b..75647eb4 100644 --- a/home/linux/gui/hyprland/conf/waybar/config.jsonc +++ b/home/linux/gui/hyprland/conf/waybar/config.jsonc @@ -122,7 +122,7 @@ "scroll-step": 5.0, // Commands to execute on events "on-click": "amixer set Master toggle", - "on-click-right": "pavucontrol", + "on-click-right": "GSK_RENDERER=opengl pavucontrol", "smooth-scrolling-threshold": 1, }, "temperature": { diff --git a/hosts/12kingdoms-shoukei/apple-silicon.nix b/hosts/12kingdoms-shoukei/apple-silicon.nix new file mode 100644 index 00000000..35c8cd6c --- /dev/null +++ b/hosts/12kingdoms-shoukei/apple-silicon.nix @@ -0,0 +1,196 @@ +{ + pkgs-unstable, + nixos-apple-silicon, + my-asahi-firmware, + ... +}: +{ + imports = [ + nixos-apple-silicon.nixosModules.default + ]; + + networking.wireless.iwd = { + enable = true; + settings.General.EnableNetworkConfiguration = true; + }; + # configures the network interface(include wireless) via `nmcli` & `nmtui` + networking.networkmanager.enable = true; + + # Specify path to peripheral firmware files. + hardware.asahi = { + enable = true; + peripheralFirmwareDirectory = "${my-asahi-firmware}/macbook-pro-m2-a2338"; + + # build the Asahi Linux Kernel with Rust support + withRust = true; + # use apple-silicon's GPU instead of CPU + useExperimentalGPUDriver = true; + # How to install the Asahi Mesa driver + experimentalGPUInstallMode = "driver"; # driver / replace(for non-flakes) / overlay + }; + + hardware.apple.touchBar = { + enable = true; + package = pkgs-unstable.tiny-dfr; + # https://github.com/WhatAmISupposedToPutHere/tiny-dfr/blob/master/share/tiny-dfr/config.toml + settings = { + # F{number} keys are shown when Fn is not pressed by default. + # Set this to true if you want the media keys to be shown without Fn pressed + MediaLayerDefault = true; + + # Set this to false if you want to hide the button outline, + # leaving only the text/logo + ShowButtonOutlines = true; + + # Set this to true to slowly shift the entire screen contents. + # In theory this helps with screen longevity, but macos does not bother doing it + # Disabling ShowButtonOutlines will make this effect less noticeable to the eye + EnablePixelShift = true; + + # This key defines the contents of the primary layer + # (the one with F{number} keys) + # You can change the individual buttons, add, or remove them + # Any number of keys that is greater than 0 is allowed + # however rendering will start to break around 24 keys + # Buttons can be made larger by setting the optional Stretch field + # to a number greater than 1 (which means the button will take up + # that many button spaces). + PrimaryLayerKeys = [ + # Action defines the key code to send when the button is pressed + # Text defines the button label + # Icon specifies the icon to be used for the button. + # Theme specifies the XDG icons theme. + # Stretch specifies how many button spaces the button should take up + # and defaults to 1 + # Icons can either be svgs or pngs, with svgs being preferred + # For best results with pngs, they should be 48x48 + # Do not include the extension in the file name. + # If a Theme is set, icons are looked up in XDG_DATA_DIRS. + # Otherwise, they are first looked up in /etc/tiny-dfr, and then in /usr/share/tiny-dfr. + # Time can be either 24hr, or 12hr. Locale is optional and will default to POSIX. + # Only one of Text, Icon or Time is allowed, + # if both are present, the behavior is undefined. + # For the list of supported key codes see + # https://docs.rs/input-linux/latest/input_linux/enum.Key.html + # Note that the escape key is not specified here, as it is added + # automatically on Macs without a physical one + { + Text = "F1"; + Action = "F1"; + } + { + Text = "F2"; + Action = "F2"; + } + { + Text = "F3"; + Action = "F3"; + } + { + Text = "F4"; + Action = "F4"; + } + { + Text = "F5"; + Action = "F5"; + } + { + Text = "F6"; + Action = "F6"; + } + { + Text = "F7"; + Action = "F7"; + } + { + Text = "F8"; + Action = "F8"; + } + { + Text = "F9"; + Action = "F9"; + } + { + Text = "F10"; + Action = "F10"; + } + { + Text = "F11"; + Action = "F11"; + } + { + Text = "F12"; + Action = "F12"; + } + + # for screenshot shortcut + { + Text = "Print"; + Action = "Print"; + } + ]; + + # This key defines the contents of the media key layer + MediaLayerKeys = [ + { + Icon = "brightness_low"; + Action = "BrightnessDown"; + } + { + Icon = "brightness_high"; + Action = "BrightnessUp"; + } + { + Icon = "mic_off"; + Action = "MicMute"; + } + { + Icon = "search"; + Action = "Search"; + } + { + Icon = "backlight_low"; + Action = "IllumDown"; + } + { + Icon = "backlight_high"; + Action = "IllumUp"; + } + { + Icon = "fast_rewind"; + Action = "PreviousSong"; + } + { + Icon = "play_pause"; + Action = "PlayPause"; + } + { + Icon = "fast_forward"; + Action = "NextSong"; + } + { + Icon = "volume_off"; + Action = "Mute"; + } + { + Icon = "volume_down"; + Action = "VolumeDown"; + } + { + Icon = "volume_up"; + Action = "VolumeUp"; + } + # for screenshot shortcut + { + Text = "Print"; + Action = "Print"; + } + ]; + }; + }; + + # For ` to < and ~ to > (for those with US keyboards) + # boot.extraModprobeConfig = '' + # options hid_apple iso_layout=0 + # ''; +} diff --git a/hosts/12kingdoms-shoukei/default.nix b/hosts/12kingdoms-shoukei/default.nix index 501d33a4..d96b8aed 100644 --- a/hosts/12kingdoms-shoukei/default.nix +++ b/hosts/12kingdoms-shoukei/default.nix @@ -1,4 +1,4 @@ -{myvars, ...}: +{ myvars, ... }: ############################################################# # # Shoukei - NixOS running on Macbook Pro 2022 M2 16G @@ -6,7 +6,8 @@ ############################################################# let hostName = "shoukei"; # Define your hostname. -in { +in +{ imports = [ ./hardware-configuration.nix ../idols-ai/preservation.nix @@ -15,9 +16,6 @@ in { networking = { inherit hostName; inherit (myvars.networking) nameservers; - - # configures the network interface(include wireless) via `nmcli` & `nmtui` - networkmanager.enable = true; }; # This value determines the NixOS release from which the default diff --git a/hosts/12kingdoms-shoukei/hardware-configuration.nix b/hosts/12kingdoms-shoukei/hardware-configuration.nix index e720b85f..08e1613b 100644 --- a/hosts/12kingdoms-shoukei/hardware-configuration.nix +++ b/hosts/12kingdoms-shoukei/hardware-configuration.nix @@ -6,46 +6,23 @@ lib, pkgs, modulesPath, - nixos-apple-silicon, - my-asahi-firmware, ... -}: let +}: +let device = "/dev/disk/by-uuid/c2e8b249-240e-4eef-bf4e-81e7dbbf4887"; -in { +in +{ imports = [ (modulesPath + "/installer/scan/not-detected.nix") - nixos-apple-silicon.nixosModules.default + ./apple-silicon.nix ]; - # Specify path to peripheral firmware files. - hardware.asahi = { - enable = true; - peripheralFirmwareDirectory = "${my-asahi-firmware}/macbook-pro-m2-a2338"; - - # build the Asahi Linux Kernel with Rust support - withRust = true; - # use apple-silicon's GPU instead of CPU - useExperimentalGPUDriver = true; - # How to install the Asahi Mesa driver - experimentalGPUInstallMode = "driver"; # driver / replace(for non-flakes) / overlay - }; - - networking.wireless.iwd = { - enable = true; - settings.General.EnableNetworkConfiguration = true; - }; - # Use the systemd-boot EFI boot loader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = false; # depending on how you configured your disk mounts, change this to /boot or /boot/efi. boot.loader.efi.efiSysMountPoint = "/boot"; - # For ` to < and ~ to > (for those with US keyboards) - # boot.extraModprobeConfig = '' - # options hid_apple iso_layout=0 - # ''; - # supported file systems, so we can mount any removable disks with these filesystems boot.supportedFilesystems = lib.mkForce [ "ext4" @@ -153,7 +130,7 @@ in { # remount swapfile in read-write mode fileSystems."/swap/swapfile" = { # the swapfile is located in /swap subvolume, so we need to mount /swap first. - depends = ["/swap"]; + depends = [ "/swap" ]; device = "/swap/swapfile"; fsType = "none"; @@ -164,7 +141,7 @@ in { }; swapDevices = [ - {device = "/swap/swapfile";} + { device = "/swap/swapfile"; } ]; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking