diff --git a/; b/; new file mode 100644 index 0000000..4ca139b --- /dev/null +++ b/; @@ -0,0 +1,214 @@ +{pkgs, ...}: + +{ + services.hyprpolkitagent.enable = true; + wayland.windowManager.hyprland.enable = true; + wayland.windowManager.hyprland.package = null; + wayland.windowManager.hyprland.portalPackage = null; + wayland.windowManager.hyprland.extraConfig = '' + autogenerated = 0 # remove this line to remove the warning + + +# See https://wiki.hyprland.org/Configuring/Monitors/ +monitor = HDMI-A-1, 3840x2160@120, 0x0, auto, bitdepth, 10, sdrsaturation, 1, sdrbrightness, 1 +#monitor = HDMI-A-1, disable +monitor = eDP-1, 2560x1600@60, 0x0, 1, +#monitor = sunshine, highres@highrr, 0x0, 1 +monitor = DP-1, highres@highrr, 0x0, 1 +#monitor = DP-1, highres@highrr, 0x0, 1, bitdepth, 10, cm, hdr, sdrsaturation, 1, sdrbrightness, 1 +exec-once = hyprctl dispatch workspace 1 +#exec-once = linux-wallpaperengine --screen-root HDMI-A-1 --silent --fps 60 3000562427 +exec-once = noctalia-shell& sleep 2 && noctalia-shell ipc call lockScreen lock +exec-once = pw-metadata -n settings 0 clock.force-quantum 2048 +# exec-once = ashell +exec-once = systemctl --user start hyprpolkitagent +exec-once = sunshine +# See https://wiki.hyprland.org/Configuring/Keywords/ for more + +# Execute your favorite apps at launch +# exec-once = waybar & hyprpaper & firefox + +debug:full_cm_proto=true + +# Set programs that you use +$terminal = kitty -e nu +$fileManager = kitty -e yazi +$menu = noctalia-shell ipc call launcher toggle +$bar = noctalia-shell + +# Some default env vars. +env = XCURSOR_SIZE,24 +env = QT_QPA_PLATFORMTHEME,qt6ct # change to qt6ct if you have that + +# For all categories, see https://wiki.hyprland.org/Configuring/Variables/ +input { + kb_layout = us + kb_variant = + kb_model = + kb_options = + kb_rules = + accel_profile = flat + + follow_mouse = 1 + + touchpad { + natural_scroll = yes + tap-to-click = false + drag_3fg = yes + clickfinger_behavior = false + tap-and-drag = no + } + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. +} + +render { + cm_fs_passthrough = false +} + +general { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + gaps_in = 5 + gaps_out = 5 + border_size = 2 + layout = dwindle + + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = false +} + + +# windowrulev2 = immediate, class:^(cs2)$ + +decoration { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + rounding = 5 + + blur { + enabled = yes + size = 5 + passes = 3 + new_optimizations = on + ignore_opacity = on + xray = false + } + + shadow { + enabled = true + offset = 3, 3 + color = rgba(323232cc) + } +} + +animations { + enabled = yes + + # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + + animation = windows, 1, 7, myBezier + animation = windowsOut, 1, 7, default, popin 80% + animation = border, 1, 10, default + animation = borderangle, 1, 8, default + animation = fade, 1, 7, default + animation = workspaces, 1, 6, default +} + +dwindle { + # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more + pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = yes # you probably want this +} + + +gestures { + # See https://wiki.hyprland.org/Configuring/Variables/ for more +} + +misc { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + force_default_wallpaper = 0 # Set to 0 to disable the anime mascot wallpapers + enable_anr_dialog = 0 +} + + +# Example per-device config +# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more + + +# Example windowrule v1 +# windowrule = float, ^(kitty)$ +# Example windowrule v2 +# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + +# Window Rules + + +# See https://wiki.hyprland.org/Configuring/Keywords/ for more +$mainMod = SUPER + +# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more +bind = $mainMod, Return, exec, $terminal +bind = $mainMod, Q, killactive, +bind = $mainMod, M, exec, noctalia-shell ipc call lockScreen lock +bind = $mainMod, E, exec, $fileManager +bind = $mainMod, V, togglefloating, +bind = $mainMod, Space, exec, $menu +bind = $mainMod, B, exec, zen +bind = $mainMod, P, pseudo, # dwindle +bind = $mainMod, J, togglesplit, # dwindle +bind = $mainMod, F, fullscreen, +bind = , XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+ +bind = , XF86AudioLowerVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%- + +# Move focus with mainMod + arrow keys +bind = $mainMod, left, movefocus, l +bind = $mainMod, right, movefocus, r +bind = $mainMod, up, movefocus, u +bind = $mainMod, down, movefocus, d + +# Switch workspaces with mainMod + [0-9] +bind = $mainMod, 1, workspace, 1 +bind = $mainMod, 2, workspace, 2 +bind = $mainMod, 3, workspace, 3 +bind = $mainMod, 4, workspace, 4 +bind = $mainMod, 5, workspace, 5 +bind = $mainMod, 6, workspace, 6 +bind = $mainMod, 7, workspace, 7 +bind = $mainMod, 8, workspace, 8 +bind = $mainMod, 9, workspace, 9 +bind = $mainMod, 0, workspace, 10 + +# Move active window to a workspace with mainMod + SHIFT + [0-9] +bind = $mainMod SHIFT, 1, movetoworkspace, 1 +bind = $mainMod SHIFT, 2, movetoworkspace, 2 +bind = $mainMod SHIFT, 3, movetoworkspace, 3 +bind = $mainMod SHIFT, 4, movetoworkspace, 4 +bind = $mainMod SHIFT, 5, movetoworkspace, 5 +bind = $mainMod SHIFT, 6, movetoworkspace, 6 +bind = $mainMod SHIFT, 7, movetoworkspace, 7 +bind = $mainMod SHIFT, 8, movetoworkspace, 8 +bind = $mainMod SHIFT, 9, movetoworkspace, 9 +bind = $mainMod SHIFT, 0, movetoworkspace, 10 + +# Example special workspace (scratchpad) +bind = $mainMod, S, togglespecialworkspace, magic +bind = $mainMod SHIFT, S, movetoworkspace, special:magic + +# Scroll through existing workspaces with mainMod + scroll +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + +# Screen Recording +bind = , code:76, exec, killall -SIGUSR1 gpu-screen-recorder +bind = , code:75, exec, killall -SIGINT gpu-screen-recorder + ''; +} diff --git a/flake.lock b/flake.lock index 2b9ece0..6158015 100644 --- a/flake.lock +++ b/flake.lock @@ -203,11 +203,11 @@ ] }, "locked": { - "lastModified": 1769450270, - "narHash": "sha256-pdVm/zJazDUAasTyHFX/Pbrlk9Upjxi0yzgn7GjGe4g=", + "lastModified": 1769638001, + "narHash": "sha256-hGwdJ/+oo+IRo2TiWV/V8BWWptQihcdFV/olTONaHqg=", "owner": "nix-community", "repo": "home-manager", - "rev": "a10c1e8f5ad2589414407f4851c221cb66270257", + "rev": "bd9f031efc634be4b80c5090b9171cc3a9f8e49c", "type": "github" }, "original": { @@ -218,11 +218,11 @@ }, "master": { "locked": { - "lastModified": 1769532902, - "narHash": "sha256-Lrm0jum71juDDF6o5mfHrP+laJO6E+rStxy7AG3yi44=", + "lastModified": 1769653599, + "narHash": "sha256-5vhAA3z9xoclOItjwGO2Y5kAHuoqoR37vgC1dg2hzpA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "88097c3e7404a3ac3969c7dff8ef0c5b5dda9362", + "rev": "8b3eae2b799f50c8d6f6eeb4e1fa5d57c9e23473", "type": "github" }, "original": { @@ -235,16 +235,14 @@ "nixos-apple-silicon": { "inputs": { "flake-compat": "flake-compat", - "nixpkgs": [ - "nixpkgs" - ] + "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1769126487, - "narHash": "sha256-OA+Qrrf0FWqARjgJASGrPKMUw237G3gYG+MQn4upABU=", + "lastModified": 1769538514, + "narHash": "sha256-/3Hk9YEI+9vA2+4AFErByc1V3LcCDNThmXYhFWlkQiU=", "owner": "tpwrules", "repo": "nixos-apple-silicon", - "rev": "003afbd7b4f90c83497906ba2e9099874c2e3a4f", + "rev": "749992a1cd11092ac9eea8a05fb953f591df59db", "type": "github" }, "original": { @@ -255,11 +253,27 @@ }, "nixpkgs": { "locked": { - "lastModified": 1769170682, - "narHash": "sha256-oMmN1lVQU0F0W2k6OI3bgdzp2YOHWYUAw79qzDSjenU=", + "lastModified": 1768305791, + "narHash": "sha256-AIdl6WAn9aymeaH/NvBj0H9qM+XuAuYbGMZaP0zcXAQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c5296fdd05cfa2c187990dd909864da9658df755", + "rev": "1412caf7bf9e660f2f962917c14b1ea1c3bc695e", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1769461804, + "narHash": "sha256-msG8SU5WsBUfVVa/9RPLaymvi5bI8edTavbIq3vRlhI=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "bfc1b8a4574108ceef22f02bafcf6611380c100d", "type": "github" }, "original": { @@ -268,7 +282,7 @@ "type": "indirect" } }, - "nixpkgs_2": { + "nixpkgs_3": { "locked": { "lastModified": 1768875095, "narHash": "sha256-dYP3DjiL7oIiiq3H65tGIXXIT1Waiadmv93JS0sS+8A=", @@ -287,15 +301,15 @@ "nixvim": { "inputs": { "flake-parts": "flake-parts", - "nixpkgs": "nixpkgs_2", + "nixpkgs": "nixpkgs_3", "systems": "systems" }, "locked": { - "lastModified": 1769418848, - "narHash": "sha256-jLSg9IkglcIw64kU1utXxsxXhiVdD45dkh9ZJKaFQ7U=", + "lastModified": 1769644746, + "narHash": "sha256-1X9o0GjCzku03magX4pM+1OZXA0aUTN7KvEReZ9t3OU=", "owner": "nix-community", "repo": "nixvim", - "rev": "c19a0517ddeed4c1548611e42e187048fc2e5dcf", + "rev": "3c27e1b35ca0fee6a89bfc20840654361ffe888d", "type": "github" }, "original": { @@ -311,11 +325,11 @@ ] }, "locked": { - "lastModified": 1769531393, - "narHash": "sha256-weMRIp4HHCE3FWHmQcdsRKt0KHTfydnn/YTSVXTcBG8=", + "lastModified": 1769650682, + "narHash": "sha256-Mt8xECOF2IGZlBuwpEb7rqQJSN/b9x8SyGOZe8w9avc=", "owner": "noctalia-dev", "repo": "noctalia-shell", - "rev": "cb56fa7089d9c3b8761979624326e21cc0c317b7", + "rev": "11bb2b68f1e998ec762cf3854caf9df18dfb7780", "type": "github" }, "original": { @@ -355,7 +369,7 @@ "home-manager": "home-manager", "master": "master", "nixos-apple-silicon": "nixos-apple-silicon", - "nixpkgs": "nixpkgs", + "nixpkgs": "nixpkgs_2", "nixvim": "nixvim", "noctalia": "noctalia", "stylix": "stylix", @@ -383,15 +397,15 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1769471853, - "narHash": "sha256-aqs0HkV2T/7Syf/pYLRVSwfk23PPAyGJmWT43U5ZSF4=", - "owner": "danth", + "lastModified": 1769610400, + "narHash": "sha256-R9LkpKVxLMr/KV9+N+uP4Jve+LdFsUXMPSS0zlgnWlg=", + "owner": "nix-community", "repo": "stylix", - "rev": "805fa4262a21ada28cc918fa014359b9b35caea7", + "rev": "477c504322c7df6388d556aac82965ed49072190", "type": "github" }, "original": { - "owner": "danth", + "owner": "nix-community", "repo": "stylix", "type": "github" } @@ -517,11 +531,11 @@ ] }, "locked": { - "lastModified": 1769491693, - "narHash": "sha256-bbqeCDML1yXI6kpy8q8BshKRV1szk3xV0StAbzw4Z+o=", + "lastModified": 1769589275, + "narHash": "sha256-hU6J/bU8mHhJrV/asVDQ9oY7gcH/MMSOGtr4iOYy8lc=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "708e0f10aba5de7d0f55883d06fa08aa6a7cd462", + "rev": "a318ae926a6f96cce4cb8498ad986b33a6d44b21", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 4dbb788..034f266 100644 --- a/flake.nix +++ b/flake.nix @@ -4,7 +4,7 @@ inputs = { nixpkgs.url = "nixpkgs/nixos-unstable"; stylix = { - url = "github:danth/stylix"; + url = "github:nix-community/stylix"; inputs.nixpkgs.follows = "nixpkgs"; }; zen-browser = { @@ -24,7 +24,6 @@ }; nixos-apple-silicon = { url = "github:tpwrules/nixos-apple-silicon"; - inputs.nixpkgs.follows = "nixpkgs"; }; astal = { url = "github:aylur/astal"; @@ -33,6 +32,7 @@ home-manager.inputs.nixpkgs.follows = "nixpkgs"; }; + outputs = { self, stylix, astal, nixpkgs, home-manager, zen-browser, master, nixos-apple-silicon, nixvim, noctalia,... }@inputs: let system = "x86_64-linux"; @@ -60,7 +60,7 @@ ]; }; nixos-laptop = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; + system = "aarch64-linux"; specialArgs = {inherit nixvim;}; specialArgs.inputs = inputs; modules = [ @@ -81,5 +81,6 @@ }; }; }; + } diff --git a/hosts/mac-laptop/configuration.nix b/hosts/mac-laptop/configuration.nix index c8dd1b8..b0d1807 100644 --- a/hosts/mac-laptop/configuration.nix +++ b/hosts/mac-laptop/configuration.nix @@ -10,23 +10,23 @@ ./hardware-configuration.nix ]; powerManagement.enable = true; - hardware.asahi.extractPeripheralFirmware = true; hardware.asahi.peripheralFirmwareDirectory = ./firmware; hardware.asahi.enable = true; + hardware.asahi.setupAsahiSound = true; services.upower.enable = true; hardware.apple.touchBar.enable = true; - hardware.apple.touchBar.package = pkgs.tiny-dfr; - # Asahi Cachix - nix.settings = { + nix.settings = { extra-substituters = [ "https://nixos-apple-silicon.cachix.org" ]; extra-trusted-public-keys = [ "nixos-apple-silicon.cachix.org-1:8psDu5SA5dAD7qA0zMy5UT292TxeEPzIz8VVEr2Js20=" ]; + trusted-users = [ "root" "joshuaelm" ]; }; + # Bootloader. boot.loader.systemd-boot.enable = true; @@ -94,7 +94,6 @@ # Enable Cosmic services.desktopManager.cosmic.enable = false; services.displayManager.cosmic-greeter.enable = false; - services.xserver.desktopManager.gnome.enable = false; services.desktopManager.plasma6.enable = false; services.displayManager.sddm.enable = false; services.libinput.enable = true; @@ -105,7 +104,7 @@ enable = true; settings = rec { initial_session = { - command = "${pkgs.hyprland}/bin/Hyprland"; + command = "${pkgs.hyprland}/bin/start-hyprland"; user = "joshuaelm"; }; default_session = initial_session; @@ -178,15 +177,12 @@ programs.kdeconnect.enable = true; environment.systemPackages = with pkgs; [ - # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. - # wget neovim killall hypridle git bibata-cursors element-desktop - #inputs.zen-browser.packages."${system}".default rofi playerctl cava diff --git a/hosts/mac-laptop/home.nix b/hosts/mac-laptop/home.nix index d4e853e..402dfc0 100644 --- a/hosts/mac-laptop/home.nix +++ b/hosts/mac-laptop/home.nix @@ -16,13 +16,10 @@ pkgs.libreoffice pkgs.adw-gtk3 pkgs.thunderbird - pkgs.xfce.thunar + pkgs.thunar ]; - programs.hyprlock.enable = true; - programs.cava.enable = true; programs.btop.enable = true; - services.hyprpaper.enable = true; wayland.windowManager.hyprland.enable = true; #xdg.configFile.hypr.source = ./modules/hypr; diff --git a/modules/hypr/default.nix b/modules/hypr/default.nix index 0b42888..ae91f59 100644 --- a/modules/hypr/default.nix +++ b/modules/hypr/default.nix @@ -2,6 +2,7 @@ { services.hyprpolkitagent.enable = true; + programs.hyprshot.enable = true; wayland.windowManager.hyprland.enable = true; wayland.windowManager.hyprland.package = null; wayland.windowManager.hyprland.portalPackage = null; @@ -12,12 +13,13 @@ # See https://wiki.hyprland.org/Configuring/Monitors/ monitor = HDMI-A-1, 3840x2160@120, 0x0, auto, bitdepth, 10, sdrsaturation, 1, sdrbrightness, 1 #monitor = HDMI-A-1, disable +monitor = eDP-1, 2560x1600@60, 0x0, 1.6, #monitor = sunshine, highres@highrr, 0x0, 1 monitor = DP-1, highres@highrr, 0x0, 1 #monitor = DP-1, highres@highrr, 0x0, 1, bitdepth, 10, cm, hdr, sdrsaturation, 1, sdrbrightness, 1 exec-once = hyprctl dispatch workspace 1 #exec-once = linux-wallpaperengine --screen-root HDMI-A-1 --silent --fps 60 3000562427 -exec-once = noctalia-shell& sleep 2 && noctalia-shell ipc call lockScreen lock +exec-once = noctalia-shell& sleep 3 && noctalia-shell ipc call lockScreen lock exec-once = pw-metadata -n settings 0 clock.force-quantum 2048 # exec-once = ashell exec-once = systemctl --user start hyprpolkitagent @@ -51,7 +53,11 @@ input { follow_mouse = 1 touchpad { - natural_scroll = no + natural_scroll = yes + tap-to-click = false + drag_3fg = yes + clickfinger_behavior = yes + tap-and-drag = no } sensitivity = 0 # -1.0 - 1.0, 0 means no modification. diff --git a/modules/noctalia/default.nix b/modules/noctalia/default.nix index 1e88e70..55e9b7c 100644 --- a/modules/noctalia/default.nix +++ b/modules/noctalia/default.nix @@ -6,6 +6,8 @@ settings = { general = { avatarImage = "/home/joshuaelm/NixOS-configs/pfp.jpg"; + shadowOffsetX = 3; + shadowOffsetY = 3; }; bar = lib.mkForce { position = "top"; @@ -16,10 +18,10 @@ capsuleOpacity = 1; backgroundOpacity = 1; useSeparateOpacity = false; - floating = false; + floating = true; marginVertical = 4; - marginHorizontal = 4; - outerCorners = true; + marginHorizontal = 18; + outerCorners = false; exclusive = true; hideOnOverview = false; widgets = { @@ -40,9 +42,18 @@ } ]; right = [ + { + id = "AudioVisualizer"; + } { id = "Tray"; } + { + id = "plugin:screenshot"; + } + { + id = "plugin:screen-recorder"; + } { id = "Volume"; } @@ -60,6 +71,16 @@ }; appLauncher = { terminalCommand = "kitty -e"; + position = "top-center"; + }; + sessionMenu = { + position = "top_left"; + }; + dock = { + enabled = false; + }; + osd = { + location = "center_right"; }; location = { monthBeforeDay = true; @@ -77,5 +98,39 @@ hideWeatherCityName = false; }; }; + plugins = { + sources = [ + { + enabled = true; + name = "Official Noctalia Plugins"; + url = "https://github.com/noctalia-dev/noctalia-plugins"; + } + ]; + states = { + screen-recorder = { + enabled = true; + }; + fancy-audiovisualizer = { + enabled = true; + }; + screenshot = { + enabled = true; + }; + kagi-quick-search = { + enabled = true; + }; + }; + version = "1"; + }; + + pluginSettings = { + screen-recorder = { + videoCodec = "av1"; + }; + kagi-quick-search = { + kagiSessionToken = "Ub-qBZk0teotZem9-oDpZsvS8B-6Cof9D0Juqexr_Ow.Oi1cHu5d-9o2UupeBO1ndQ_6CsvoFo2lfEWDnxlnqWc"; + }; + }; + }; } diff --git a/modules/stylix/default.nix b/modules/stylix/default.nix index 10ccf99..22afeed 100644 --- a/modules/stylix/default.nix +++ b/modules/stylix/default.nix @@ -1,11 +1,9 @@ { pkgs, ... }: { stylix.enable = true; - stylix.polarity = "dark"; + stylix.polarity = "light"; #stylix.targets.plymouth.enable = false; stylix.targets.kitty.enable = true; - stylix.targets.hyprpaper.enable = true; - stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/nord.yaml"; stylix.targets.zen-browser.profileNames = [ "default" ]; stylix.targets.zen-browser.enable = true; # blue aura house @@ -32,9 +30,22 @@ };*/ # Icy Mountains with Ocean Night - stylix.image = pkgs.fetchurl { + /*stylix.image = pkgs.fetchurl { url = "https://gitea.base.jeditemple.com/joshuaelm/Wallpapers/raw/branch/main/generic/Icy%20Mountains%20Blue%20Night.png"; hash = "sha256-X67ljSsASOXIzNti6cMmLYJ5pO14C3tdWmVpZ/n2R6E="; + };*/ + + # Whale In Coral Reef Ghibli + /*stylix.image = pkgs.fetchurl { + url = "https://gitea.base.jeditemple.com/joshuaelm/Wallpapers/raw/branch/main/generic/89299256_p0.png"; + hash = "sha256-OWgf4+fhH4MiRCHp1UC+pVn/XP4A+tkVbizIcjMaXAw="; + };*/ + + # Girl playing piano in flower field + stylix.image = pkgs.fetchurl { + url = "https://gitea.base.jeditemple.com/joshuaelm/Wallpapers/raw/branch/main/generic/88677104_p0.png"; + hash = "sha256-IIKzA4DgWg9P48A+x/vBKjaD7seNBtkh/0wSXY2O3x8="; }; + stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/atelier-plateau-light.yaml"; }