diff --git a/flake.lock b/flake.lock index ea1f58d2..6890d525 100644 --- a/flake.lock +++ b/flake.lock @@ -1254,6 +1254,29 @@ "type": "github" } }, + "noctalia": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "quickshell": "quickshell", + "systems": "systems_2" + }, + "locked": { + "lastModified": 1760277691, + "narHash": "sha256-gJ/hLrA7+Nmt0e+K6l0G1ZcFJJKfW4XLmBdwE+yEYKQ=", + "owner": "noctalia-dev", + "repo": "noctalia-shell", + "rev": "14af84ffbe3b944d589519dff72996d6bd527f16", + "type": "github" + }, + "original": { + "owner": "noctalia-dev", + "ref": "main", + "repo": "noctalia-shell", + "type": "github" + } + }, "norg": { "inputs": { "flake-compat": [ @@ -1357,6 +1380,27 @@ "type": "github" } }, + "quickshell": { + "inputs": { + "nixpkgs": [ + "noctalia", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1753595452, + "narHash": "sha256-vqkSDvh7hWhPvNjMjEDV4KbSCv2jyl2Arh73ZXe274k=", + "ref": "refs/heads/master", + "rev": "a5431dd02dc23d9ef1680e67777fed00fe5f7cda", + "revCount": 665, + "type": "git", + "url": "https://git.outfoxxed.me/outfoxxed/quickshell" + }, + "original": { + "type": "git", + "url": "https://git.outfoxxed.me/outfoxxed/quickshell" + } + }, "rbw-bitw": { "inputs": { "flakelib": [ @@ -1424,6 +1468,7 @@ ], "nixpkgs-lib": "nixpkgs-lib", "nixpkgs-xr": "nixpkgs-xr", + "noctalia": "noctalia", "norg": "norg", "norg-meta": "norg-meta", "nur": "nur", @@ -1436,7 +1481,7 @@ "spicetify-nix": "spicetify-nix", "std": "std", "stylix": "stylix", - "systems": "systems_2", + "systems": "systems_3", "tree": "tree", "treefmt-nix": "treefmt-nix", "wezterm": "wezterm" @@ -1718,6 +1763,21 @@ "type": "github" } }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "tinted-foot": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index 1e7dc3cc..a4fca2cb 100644 --- a/flake.nix +++ b/flake.nix @@ -304,6 +304,10 @@ flake-compat.follows = "flake-compat"; }; }; + noctalia = { + url = "github:noctalia-dev/noctalia-shell/main"; + inputs.nixpkgs.follows = "nixpkgs"; + }; mewtris = { url = "github:kittywitch/mewtris/main"; #url = "path:/home/kat/src/mewtris"; diff --git a/home/environments/niri/autostart.nix b/home/environments/niri/autostart.nix index 7c144d91..24631278 100644 --- a/home/environments/niri/autostart.nix +++ b/home/environments/niri/autostart.nix @@ -38,12 +38,12 @@ in { packages' = [ "udiskie" "easyeffects" - "pasystray" + #"pasystray" ]; packages = [ - "pasystray" - "pavucontrol" - "networkmanagerapplet" + #"pasystray" + #"pavucontrol" + #"networkmanagerapplet" ]; packageCommands = let packageCommands' = map packageCommand' packages'; diff --git a/home/environments/niri/binds.nix b/home/environments/niri/binds.nix index 66a8df7d..84d9f92d 100644 --- a/home/environments/niri/binds.nix +++ b/home/environments/niri/binds.nix @@ -22,6 +22,7 @@ in { bindWorkspace "0" 10 ) ]; + noctalia = "${getExe parent.services.noctalia-shell.package} ipc call"; # See tip near https://github.com/sodiboo/niri-flake/blob/main/docs.md#user-content-programsnirisettingsbindsnameaction sh = config.lib.niri.actions.spawn "sh" "-c"; # ▀▀█ @@ -35,9 +36,13 @@ in { personalBindings = { "Mod+Return".action = sh ''${getExe config.programs.alacritty.package}''; "Mod+T".action.toggle-window-floating = {}; - "Mod+D".action = sh ''${getExe config.programs.fuzzel.package} -D no -T "${getExe config.programs.alacritty.package} --command"''; - "Mod+Escape".action = sh ''${getExe config.programs.wlogout.package} -p layer-shell''; - "Mod+Shift+Escape".action = sh ''${getExe config.programs.swaylock.package} -f''; + #"Mod+D".action = sh ''${getExe config.programs.fuzzel.package} -D no -T "${getExe config.programs.alacritty.package} --command"''; + "Mod+D".action = sh ''${noctalia} launcher toggle''; + "Mod+Shift+D".action = sh ''${noctalia} launcher clipboard''; + #"Mod+Escape".action = sh ''${getExe config.programs.wlogout.package} -p layer-shell''; + "Mod+Escape".action = sh ''${noctalia} sessionMenu toggle''; + #"Mod+Shift+Escape".action = sh ''${getExe config.programs.swaylock.package} -f''; + "Mod+Shift+Escape".action = sh ''${noctalia} lockScreen toggle''; "Mod+Tab" = { #repeat = false; cooldown-ms = 150; @@ -221,7 +226,31 @@ in { action = sh ''${swayosd-client} --output-volume mute-toggle''; }; }; - mediaBindingsAvizoless = mkIf (!(config.services.avizo.enable || config.services.swayosd.enable)) { + mediaBindingsNoctalia = let + vol = "${noctalia} volume"; + bl = "${noctalia} brightness"; + in + mkIf config.programs.noctalia-shell.enable { + "XF86MonBrightnessUp".action = sh ''${bl} increase''; + "XF86MonBrightnessDown".action = sh ''${bl} decrease''; + "XF86AudioRaiseVolume" = { + allow-when-locked = true; + action = sh ''${vol} increase''; + }; + "XF86AudioLowerVolume" = { + allow-when-locked = true; + action = sh ''${vol} decrease''; + }; + "XF86AudioMute" = { + allow-when-locked = true; + action = sh ''${vol} muteOutput''; + }; + "Shift+XF86AudioMute" = { + allow-when-locked = true; + action = sh ''${vol} muteInput''; + }; + }; + mediaBindingsAvizoless = mkIf (!(config.services.avizo.enable || config.programs.noctalia-shell.enable || config.services.swayosd.enable)) { "XF86MonBrightnessUp".action = sh ''${getExe pkgs.brightnessctl} -c backlight set 5%+''; "XF86MonBrightnessDown".action = sh ''${getExe pkgs.brightnessctl} -c backlight set 5%-''; "XF86AudioRaiseVolume".action = sh ''${parent.services.wireplumber.package}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+''; @@ -235,6 +264,7 @@ in { personalBindings mediaBindingsCommon mediaBindingsAvizo + mediaBindingsNoctalia mediaBindingsSwayOSD mediaBindingsAvizoless ]); diff --git a/home/environments/niri/fuzzel.nix b/home/environments/niri/fuzzel.nix index 027d44f1..01cda009 100644 --- a/home/environments/niri/fuzzel.nix +++ b/home/environments/niri/fuzzel.nix @@ -1,6 +1,6 @@ {config, ...}: { stylix.targets.fuzzel.enable = config.programs.fuzzel.enable; programs.fuzzel = { - enable = true; + enable = false; }; } diff --git a/home/environments/niri/noctalia.nix b/home/environments/niri/noctalia.nix new file mode 100644 index 00000000..ea5d39d5 --- /dev/null +++ b/home/environments/niri/noctalia.nix @@ -0,0 +1,255 @@ +{ + config, + lib, + ... +}: let + inherit (lib.meta) getExe; +in { + programs.noctalia-shell = { + enable = true; + settings = { + settingsVersion = 15; + bar = { + position = "top"; + backgroundOpacity = 0.9; + monitors = []; + density = "comfortable"; + showCapsule = true; + floating = true; + marginVertical = 0.25; + marginHorizontal = 0.25; + widgets = { + left = [ + { + id = "Workspace"; + labelMode = "name"; + } + { + id = "ActiveWindow"; + widgetWidth = 300; + } + ]; + center = [ + { + id = "MediaMini"; + showAlbumArt = true; + showVisualizer = true; + scrollingMode = "always"; + # check if this works, + # if not, rewrite their system for it o.o + widgetWidth = 300; + } + { + id = "Clock"; + formatHorizontal = "yyyy-MM-dd HH:mm t"; + } + { + id = "NightLight"; + } + { + id = "DarkMode"; + } + { + id = "KeepAwake"; + } + { + id = "ScreenRecorder"; + } + ]; + right = [ + { + id = "SystemMonitor"; + } + { + id = "Tray"; + } + { + id = "NotificationHistory"; + } + { + id = "Battery"; + } + { + id = "Volume"; + } + { + id = "Brightness"; + } + { + id = "ControlCenter"; + } + ]; + }; + }; + general = { + avatarImage = ../../user/avatar.jpg; + dimDesktop = false; + showScreenCorners = false; + forceBlackScreenCorners = false; + radiusRatio = 1; + screenRadiusRatio = 1; + animationSpeed = 1; + animationDisabled = false; + }; + location = { + name = "Vancouver"; + useFahrenheit = false; + use12hourFormat = false; + showWeekNumberInCalendar = false; + }; + screenRecorder = { + directory = "${config.home.homeDirectory}/Videos/"; + frameRate = 60; + audioCodec = "opus"; + videoCodec = "h264"; + quality = "very_high"; + colorRange = "limited"; + showCursor = true; + audioSource = "default_output"; + videoSource = "portal"; + }; + wallpaper = { + # konawall + enabled = false; + directory = ""; + enableMultiMonitorDirectories = false; + setWallpaperOnAllMonitors = true; + defaultWallpaper = ""; + fillMode = "crop"; + fillColor = "#000000"; + randomEnabled = false; + randomIntervalSec = 300; + transitionDuration = 1500; + transitionType = "random"; + transitionEdgeSmoothness = 0.05; + monitors = []; + }; + appLauncher = { + enableClipboardHistory = true; + position = "center"; + backgroundOpacity = 1; + pinnedExecs = []; + useApp2Unit = false; + sortByMostUsed = true; + terminalCommand = "${getExe config.programs.alacritty.package}"; + }; + controlCenter = { + position = "close_to_bar_button"; + quickSettingsStyle = "compact"; + widgets = { + quickSettings = [ + { + id = "WiFi"; + } + { + id = "Bluetooth"; + } + { + id = "Notifications"; + } + { + id = "ScreenRecorder"; + } + { + id = "PowerProfile"; + } + { + id = "WallpaperSelector"; + } + ]; + }; + }; + dock = { + displayMode = "auto_hide"; + backgroundOpacity = 1; + floatingRatio = 1; + onlySameOutput = true; + monitors = []; + pinnedApps = []; + }; + network = { + wifiEnabled = true; + }; + notifications = { + doNotDisturb = false; + monitors = []; + location = "top_right"; + alwaysOnTop = false; + lastSeenTs = 0; + respectExpireTimeout = false; + lowUrgencyDuration = 3; + normalUrgencyDuration = 8; + criticalUrgencyDuration = 15; + }; + osd = { + enabled = true; + location = "top_right"; + monitors = []; + autoHideMs = 2000; + }; + audio = { + volumeStep = 5; + volumeOverdrive = false; + cavaFrameRate = 60; + visualizerType = "linear"; + mprisBlacklist = []; + preferredPlayer = ""; + }; + ui = { + fontDefault = config.stylix.fonts.sansSerif; + fontFixed = config.stylix.fonts.monospace; + fontDefaultScale = 1; + fontFixedScale = 1; + monitorsScaling = [ + { + name = "DP-2"; + scale = 1.25; + } + ]; + idleInhibitorEnabled = false; + tooltipsEnabled = true; + }; + brightness = { + brightnessStep = 5; + }; + colorSchemes = { + useWallpaperColors = false; + predefinedScheme = "Dracula"; + darkMode = true; + matugenSchemeType = "scheme-fruit-salad"; + generateTemplatesForPredefined = true; + }; + templates = { + gtk = false; + qt = false; + kitty = false; + ghostty = false; + foot = false; + fuzzel = false; + discord = false; + discord_vesktop = false; + discord_webcord = false; + discord_armcord = false; + discord_equibop = false; + discord_lightcord = false; + discord_dorion = false; + pywalfox = false; + enableUserTemplates = false; + }; + nightLight = { + enabled = false; + forced = false; + autoSchedule = true; + nightTemp = "4000"; + dayTemp = "6500"; + manualSunrise = "06:30"; + manualSunset = "18:30"; + }; + hooks = { + enabled = false; + wallpaperChange = ""; + darkModeChange = ""; + }; + }; + }; +} diff --git a/home/environments/niri/swayidle.nix b/home/environments/niri/swayidle.nix index 08679490..4fee842d 100644 --- a/home/environments/niri/swayidle.nix +++ b/home/environments/niri/swayidle.nix @@ -1,10 +1,18 @@ -{config, ...}: { +{ + config, + lib, + parent, + ... +}: let + inherit (lib.meta) getExe; + noctalia = "${getExe parent.services.noctalia-shell.package} ipc call"; +in { services.swayidle = { enable = true; timeouts = [ { timeout = 600; - command = "${config.programs.swaylock.package}/bin/swaylock* -f"; + command = "${noctalia} lockScreen toggle"; } { timeout = 1200; @@ -14,7 +22,7 @@ events = [ { event = "before-sleep"; - command = "${config.programs.swaylock.package}/bin/swaylock* -f"; + command = "${noctalia} lockScreen toggle"; } ]; }; diff --git a/home/environments/niri/swaylock.nix b/home/environments/niri/swaylock.nix index 249260ac..8fddc6b0 100644 --- a/home/environments/niri/swaylock.nix +++ b/home/environments/niri/swaylock.nix @@ -1,6 +1,6 @@ {pkgs, ...}: { programs.swaylock = { - enable = true; + enable = false; package = pkgs.swaylock-effects; settings = { screenshots = true; diff --git a/home/environments/niri/swaync.nix b/home/environments/niri/swaync.nix index 9ae53b64..d751fe74 100644 --- a/home/environments/niri/swaync.nix +++ b/home/environments/niri/swaync.nix @@ -9,7 +9,7 @@ _: { }; }; services.swaync = { - enable = true; + enable = false; settings = { positionX = "right"; positionY = "top"; diff --git a/home/environments/niri/swayosd.nix b/home/environments/niri/swayosd.nix index 26fdb8cd..9f92126c 100644 --- a/home/environments/niri/swayosd.nix +++ b/home/environments/niri/swayosd.nix @@ -49,7 +49,7 @@ _: #in { services.swayosd = { - enable = true; + enable = false; #stylePath = theme; }; } diff --git a/home/environments/niri/waybar.nix b/home/environments/niri/waybar.nix index 5d5283fe..0e862d5c 100644 --- a/home/environments/niri/waybar.nix +++ b/home/environments/niri/waybar.nix @@ -1,6 +1,6 @@ _: { programs.waybar = { - enable = true; + #enable = true; systemd.enable = true; style = '' * { diff --git a/home/environments/niri/wofi.nix b/home/environments/niri/wofi.nix index 4329849a..fd148a00 100644 --- a/home/environments/niri/wofi.nix +++ b/home/environments/niri/wofi.nix @@ -1,6 +1,6 @@ _: { programs.wofi = { - enable = true; + enable = false; settings = { insensitive = true; allow_images = true; diff --git a/home/profiles/common/stylix.nix b/home/profiles/common/stylix.nix index 06b001ae..0130c2f8 100644 --- a/home/profiles/common/stylix.nix +++ b/home/profiles/common/stylix.nix @@ -19,7 +19,7 @@ opacity = { desktop = 1.0; applications = 1.0; - terminal = 1.0; + terminal = 0.9; popups = 0.8; }; fonts = { @@ -38,6 +38,6 @@ }; autoEnable = true; polarity = "light"; - base16Scheme = "${pkgs.base16-schemes}/share/themes/monokai.yaml"; + base16Scheme = "${pkgs.base16-schemes}/share/themes/dracula.yaml"; }; } diff --git a/home/profiles/graphical/fastfetch.nix b/home/profiles/graphical/fastfetch.nix index 0524deef..f7d9a73f 100644 --- a/home/profiles/graphical/fastfetch.nix +++ b/home/profiles/graphical/fastfetch.nix @@ -44,8 +44,6 @@ _: { "display" "terminal" "break" - "chassis" - "board" { type = "cpu"; showPeCoreCount = true; @@ -65,35 +63,12 @@ _: { "break" "disk" "zpool" - { - type = "physicaldisk"; - temp = true; - } "lm" "wm" "theme" "wmtheme" "icons" - "font" "cursor" - "terminal" - "terminalfont" - "terminalsize" - "terminaltheme" - "break" - { - type = "weather"; - timeout = 1000; - } - "dns" - "break" - "break" - "bluetooth" - "break" - "player" - "media" - "break" - "colors" ]; }; }; diff --git a/home/user/avatar.jpg b/home/user/avatar.jpg new file mode 100644 index 00000000..8952733d Binary files /dev/null and b/home/user/avatar.jpg differ diff --git a/nixos/common/stylix.nix b/nixos/common/stylix.nix index e655fcbf..442e7635 100644 --- a/nixos/common/stylix.nix +++ b/nixos/common/stylix.nix @@ -39,6 +39,6 @@ }; }; autoEnable = true; - base16Scheme = "${pkgs.base16-schemes}/share/themes/monokai.yaml"; + base16Scheme = "${pkgs.base16-schemes}/share/themes/dracula.yaml"; }; } diff --git a/nixos/environments/niri/niri.nix b/nixos/environments/niri/niri.nix index beedda4a..b307c3fc 100644 --- a/nixos/environments/niri/niri.nix +++ b/nixos/environments/niri/niri.nix @@ -3,4 +3,5 @@ enable = true; package = pkgs.niri-unstable; }; + services.noctalia-shell.enable = true; } diff --git a/systems/daiyousei.nix b/systems/daiyousei.nix index 2cea54d8..928694b8 100644 --- a/systems/daiyousei.nix +++ b/systems/daiyousei.nix @@ -1,5 +1,4 @@ -{lib, ...} @ specyArgs: let - inherit (lib.attrsets) removeAttrs; +_: let hostConfig = { tree, modulesPath, @@ -10,8 +9,8 @@ (modulesPath + "/profiles/qemu-guest.nix") ] ++ (with tree.nixos; [ - container-host - microvm-host + #container-host + #microvm-host ]) ++ (with tree.nixos.profiles; [ server @@ -28,26 +27,26 @@ # TODO: Add config.microvm.stateDir to backup schedule? # TODO: figure out updateFlake? - microvm = { - host.enable = true; - vms = { - syncthing = { - autostart = true; - specialArgs = removeAttrs specyArgs ["config" "pkgs" "lib"]; - config = { - imports = [ - tree.nixos.servers.syncthing - ]; - services = { - syncthing = { - enable = true; - }; - }; - }; - restartIfChanged = true; - }; - }; - }; + #microvm = { + # host.enable = true; + # vms = { + # syncthing = { + # autostart = true; + # specialArgs = removeAttrs specyArgs ["config" "pkgs" "lib"]; + # config = { + # imports = [ + # tree.nixos.servers.syncthing + # ]; + # services = { + # syncthing = { + # enable = true; + # }; + # }; + # }; + # restartIfChanged = true; + # }; + # }; + #}; system.stateVersion = "23.11"; }; diff --git a/systems/goliath.nix b/systems/goliath.nix index 1e7f64cd..51bfe99e 100644 --- a/systems/goliath.nix +++ b/systems/goliath.nix @@ -220,8 +220,10 @@ _: let initrd = { availableKernelModules = ["nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod"]; }; - kernelModules = ["nct6775" "kvm-amd"]; - extraModulePackages = [config.boot.kernelPackages.v4l2loopback.out]; + kernelModules = ["nct6775" "kvm-amd" "k10temp"]; + extraModulePackages = with config.boot.kernelPackages; [ + v4l2loopback.out + ]; supportedFilesystems = ["ntfs" "zfs"]; }; diff --git a/tree.nix b/tree.nix index 0e2179ed..3c3dd281 100644 --- a/tree.nix +++ b/tree.nix @@ -93,6 +93,7 @@ stylix.nixosModules.stylix microvm.nixosModules.host mewtris.nixosModules.mewtris + noctalia.nixosModules.default ]; }; }; @@ -114,6 +115,7 @@ chaotic.homeManagerModules.default spicetify-nix.homeManagerModules.spicetify stylix.homeModules.stylix + noctalia.homeModules.default ] ++ (with (import (inputs.arcexprs + "/modules")).home-manager; [ i3gopher