Compare commits

...

12 Commits

Author SHA1 Message Date
4901f9a753 s 2026-03-03 13:08:14 -06:00
410649a071 MORE 2026-03-03 13:07:30 -06:00
8949119111 yes 2026-02-19 13:40:45 -06:00
f58522d910 fix warnings 2026-02-12 14:25:11 -06:00
d0a821f9b3 update 2026-02-12 14:17:19 -06:00
5a90c21fc3 changes 2026-02-11 11:23:18 -06:00
22f1df08c3 Make bar margins consistent with gaps 2026-01-30 00:07:28 -06:00
ab1be61033 Fix OSD 2026-01-30 00:04:52 -06:00
6415abe966 gpu screen recorder 2026-01-29 16:54:12 -06:00
fd6ba1e830 Regress back to hyprlock for initial lockscreen. Change wallpaper and colorscheme. 2026-01-29 16:35:04 -06:00
5431938cc7 finish overhaul 2026-01-28 20:38:31 -06:00
6923095724 remove adb 2026-01-27 11:25:29 -06:00
15 changed files with 13329 additions and 320 deletions

214
; Normal file
View File

@@ -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
'';
}

1154
flake.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -4,7 +4,7 @@
inputs = { inputs = {
nixpkgs.url = "nixpkgs/nixos-unstable"; nixpkgs.url = "nixpkgs/nixos-unstable";
stylix = { stylix = {
url = "github:danth/stylix"; url = "github:nix-community/stylix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
zen-browser = { zen-browser = {
@@ -12,6 +12,17 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager"; inputs.home-manager.follows = "home-manager";
}; };
hyprland.url = "github:hyprwm/Hyprland";
hyprland-plugins = {
url = "github:hyprwm/hyprland-plugins";
inputs.hyprland.follows = "hyprland";
};
naviterm = {
url = "gitlab:detoxify92/naviterm";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-cachyos-kernel.url = "github:xddxdd/nix-cachyos-kernel/release";
millennium.url = "github:SteamClientHomebrew/Millennium?dir=packages/nix";
master.url = "github:NixOS/nixpkgs/master"; master.url = "github:NixOS/nixpkgs/master";
home-manager.url = "github:nix-community/home-manager"; home-manager.url = "github:nix-community/home-manager";
noctalia = { noctalia = {
@@ -24,7 +35,6 @@
}; };
nixos-apple-silicon = { nixos-apple-silicon = {
url = "github:tpwrules/nixos-apple-silicon"; url = "github:tpwrules/nixos-apple-silicon";
inputs.nixpkgs.follows = "nixpkgs";
}; };
astal = { astal = {
url = "github:aylur/astal"; url = "github:aylur/astal";
@@ -33,7 +43,8 @@
home-manager.inputs.nixpkgs.follows = "nixpkgs"; home-manager.inputs.nixpkgs.follows = "nixpkgs";
}; };
outputs = { self, stylix, astal, nixpkgs, home-manager, zen-browser, master, nixos-apple-silicon, nixvim, noctalia,... }@inputs:
outputs = { self, stylix, astal, nixpkgs, home-manager, zen-browser, master, nixos-apple-silicon, nix-cachyos-kernel, nixvim, noctalia,... }@inputs:
let let
system = "x86_64-linux"; system = "x86_64-linux";
lib = nixpkgs.lib; lib = nixpkgs.lib;
@@ -60,7 +71,7 @@
]; ];
}; };
nixos-laptop = nixpkgs.lib.nixosSystem { nixos-laptop = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "aarch64-linux";
specialArgs = {inherit nixvim;}; specialArgs = {inherit nixvim;};
specialArgs.inputs = inputs; specialArgs.inputs = inputs;
modules = [ modules = [
@@ -81,5 +92,6 @@
}; };
}; };
}; };
} }

View File

@@ -1,8 +1,5 @@
#Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, master, lib, pkgs-master, ... }: { config, pkgs, master, lib, pkgs-master, inputs, ... }:
{ {
imports = imports =
@@ -46,9 +43,13 @@ boot = {
# Enable "Silent Boot" # Enable "Silent Boot"
consoleLogLevel = 0; consoleLogLevel = 0;
initrd.verbose = false; initrd.verbose = false;
kernelPackages = pkgs.linuxPackages_zen; kernelPackages = pkgs.cachyosKernels.linuxPackages-cachyos-latest;
kernelModules = [ "amdgpu" ]; kernelModules = [ "amdgpu" ];
kernelPatches = [ kernelPatches = [
/*{
name = "frl";
patch = ../../patches/0001-amdgpu-frl.patch;
}*/
/*{ /*{
name = "dsc"; name = "dsc";
patch = ../../patches/bigscreen_1.patch; patch = ../../patches/bigscreen_1.patch;
@@ -140,7 +141,6 @@ boot = {
services.desktopManager.gnome.enable = false; services.desktopManager.gnome.enable = false;
services.displayManager.gdm.enable = false; services.displayManager.gdm.enable = false;
programs.hyprland = { programs.hyprland = {
withUWSM = true;
enable = true; enable = true;
}; };
/*services.displayManager = { /*services.displayManager = {
@@ -153,11 +153,15 @@ boot = {
services.greetd = { services.greetd = {
enable = true; enable = true;
settings = rec { settings = rec {
initial_session = { hyprland_session = {
command = "dbus-launch ${pkgs.hyprland}/bin/start-hyprland"; command = "dbus-launch ${pkgs.hyprland}/bin/start-hyprland";
user = "joshuaelm"; user = "joshuaelm";
}; };
default_session = initial_session; gamescope_session = {
command = "${lib.getExe pkgs.gamescope} -W 3840 -H 2160 -r 120 --hdr-enabled --adaptive-sync --rt --steam -- steam -gamepadui -steamdeck -steamos3 > /dev/null 2>&1";
user = "joshuaelm";
};
default_session = hyprland_session;
}; };
}; };
@@ -209,23 +213,6 @@ boot = {
# use the example session manager (no others are packaged yet so this is enabled by default, # use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now) # no need to redefine it in your config for now)
#media-session.enable = true; #media-session.enable = true;
extraConfig.pipewire."92-low-latency" = {
"context.properties" = {
"default.clock.rate" = 48000;
"default.clock.quantum" = 32;
"default.clock.min-quantum" = 32;
"default.clock.max-quantum" = 32;
};
};
};
services.pulseaudio.configFile = pkgs.runCommand "default.pa" {} ''
sed 's/module-udev-detect$/module-udev-detect tsched=0/' \
${pkgs.pulseaudio}/etc/pulse/default.pa > $out
'';
environment.etc."wireplumber/main.lua.d/90-suspend-timeout.lua" = {
text = ''
session.suspend-timeout-seconds = 0
'';
}; };
services.pulseaudio.extraConfig = '' services.pulseaudio.extraConfig = ''
@@ -312,10 +299,10 @@ services.pulseaudio.extraConfig = ''
alsa-lib atk cairo cups curl dbus expat file fish fontconfig freetype alsa-lib atk cairo cups curl dbus expat file fish fontconfig freetype
fuse glib gtk3 libGL libnotify libxml2 libxslt netcat nspr nss openjdk8 fuse glib gtk3 libGL libnotify libxml2 libxslt netcat nspr nss openjdk8
openssl.dev cava pango appimage-run pkg-config strace udev vulkan-loader watch wget which openssl.dev cava pango appimage-run pkg-config strace udev vulkan-loader watch wget which
xorg.libX11 icu xorg.libxcb xorg.libXcomposite xorg.libXcursor libX11 icu libxcb libXcomposite libXcursor
xorg.libXdamage xorg.libXext xorg.libXfixes xorg.libXi xorg.libXrandr libXdamage libXext libXfixes libXi libXrandr
xorg.libXrender xorg.libXScrnSaver openssl xorg.libxshmfence xorg.libXtst libXrender libXScrnSaver openssl libxshmfence libXtst
xorg.xcbutilkeysyms zlib fontconfig.lib SDL2 libGL libuuid xorg.libXft xcbutilkeysyms zlib fontconfig.lib SDL2 libGL libuuid libXft
]; ];
profile = ''export FHS=1''; profile = ''export FHS=1'';
runScript = "fish"; runScript = "fish";
@@ -337,6 +324,7 @@ services.pulseaudio.extraConfig = ''
ryubing ryubing
gomatrix gomatrix
python3 python3
#inputs.naviterm.packages.${pkgs.system}.default
pavucontrol pavucontrol
sbctl sbctl
boxflat boxflat
@@ -344,10 +332,8 @@ services.pulseaudio.extraConfig = ''
thunar thunar
corectrl corectrl
wiremix wiremix
termsonic
steamtinkerlaunch steamtinkerlaunch
kdePackages.kdenlive wineWow64Packages.wayland
wineWowPackages.wayland
blueman blueman
lapce lapce
prismlauncher prismlauncher
@@ -370,25 +356,32 @@ services.pulseaudio.extraConfig = ''
services.xserver.enableTCP = true; services.xserver.enableTCP = true;
services.sunshine = { services.sunshine = {
enable = true; enable = false;
autoStart = false; autoStart = false;
capSysAdmin = true; capSysAdmin = true;
openFirewall = true; openFirewall = true;
}; };
# Enable Steam # Enable Steam
nixpkgs.overlays = [
inputs.millennium.overlays.default
inputs.nix-cachyos-kernel.overlays.pinned
];
programs.steam = { programs.steam = {
enable = true; enable = true;
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
package = pkgs.millennium-steam;
}; };
hardware.steam-hardware.enable=true; hardware.steam-hardware.enable=true;
services.monado = { services.monado = {
enable = false; enable = false;
defaultRuntime = true; # Register as default OpenXR runtime defaultRuntime = true; # Register as default OpenXR runtime
}; };
services.wivrn.enable = false; services.wivrn.enable = true;
services.wivrn.package = pkgs-master.wivrn; services.wivrn.package = pkgs.wivrn;
services.wivrn.defaultRuntime = true; services.wivrn.defaultRuntime = true;
systemd.user.services.monado.environment = { systemd.user.services.monado.environment = {
STEAMVR_LH_ENABLE = "1"; STEAMVR_LH_ENABLE = "1";
@@ -402,12 +395,12 @@ services.pulseaudio.extraConfig = ''
nixpkgs.config.packageOverrides = pkgs: { nixpkgs.config.packageOverrides = pkgs: {
steam = pkgs.steam.override { steam = pkgs.steam.override {
extraLibraries = pkgs: [ pkgs.xorg.libxcb ]; extraLibraries = pkgs: [ pkgs.libxcb ];
extraPkgs = pkgs: with pkgs; [ extraPkgs = pkgs: with pkgs; [
xorg.libXcursor libXcursor
xorg.libXi libXi
xorg.libXinerama libXinerama
xorg.libXScrnSaver libXScrnSaver
libpng libpng
libpulseaudio libpulseaudio
libvorbis libvorbis
@@ -420,7 +413,7 @@ services.pulseaudio.extraConfig = ''
programs.gamescope = { programs.gamescope = {
enable = true; enable = true;
capSysNice = false; capSysNice = true;
}; };
programs.nix-ld.enable = true; programs.nix-ld.enable = true;

View File

@@ -15,7 +15,7 @@
pkgs.swaybg pkgs.swaybg
pkgs.gpu-screen-recorder pkgs.gpu-screen-recorder
pkgs.gpu-screen-recorder-gtk pkgs.gpu-screen-recorder-gtk
pkgs.supersonic pkgs.feishin
pkgs.adw-gtk3 pkgs.adw-gtk3
]; ];

View File

@@ -10,15 +10,13 @@
./hardware-configuration.nix ./hardware-configuration.nix
]; ];
powerManagement.enable = true; powerManagement.enable = true;
hardware.asahi.extractPeripheralFirmware = true;
hardware.asahi.peripheralFirmwareDirectory = ./firmware; hardware.asahi.peripheralFirmwareDirectory = ./firmware;
hardware.asahi.enable = true; hardware.asahi.enable = true;
hardware.asahi.setupAsahiSound = true;
services.upower.enable = true; services.upower.enable = true;
hardware.apple.touchBar.enable = true; hardware.apple.touchBar.enable = true;
hardware.apple.touchBar.package = pkgs.tiny-dfr;
# Asahi Cachix
nix.settings = { nix.settings = {
extra-substituters = [ extra-substituters = [
"https://nixos-apple-silicon.cachix.org" "https://nixos-apple-silicon.cachix.org"
@@ -26,8 +24,11 @@
extra-trusted-public-keys = [ extra-trusted-public-keys = [
"nixos-apple-silicon.cachix.org-1:8psDu5SA5dAD7qA0zMy5UT292TxeEPzIz8VVEr2Js20=" "nixos-apple-silicon.cachix.org-1:8psDu5SA5dAD7qA0zMy5UT292TxeEPzIz8VVEr2Js20="
]; ];
trusted-users = [ "root" "joshuaelm" ];
}; };
programs.gpu-screen-recorder.enable = true;
# Bootloader. # Bootloader.
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = false; boot.loader.efi.canTouchEfiVariables = false;
@@ -94,18 +95,20 @@
# Enable Cosmic # Enable Cosmic
services.desktopManager.cosmic.enable = false; services.desktopManager.cosmic.enable = false;
services.displayManager.cosmic-greeter.enable = false; services.displayManager.cosmic-greeter.enable = false;
services.xserver.desktopManager.gnome.enable = false;
services.desktopManager.plasma6.enable = false; services.desktopManager.plasma6.enable = false;
services.displayManager.sddm.enable = false; services.displayManager.sddm.enable = false;
services.libinput.enable = true; services.libinput.enable = true;
programs.hyprland.enable = true;
environment.sessionVariables.NIXOS_OZONE_WL = "1"; environment.sessionVariables.NIXOS_OZONE_WL = "1";
programs.hyprland = {
enable = true;
};
services.greetd = { services.greetd = {
enable = true; enable = true;
settings = rec { settings = rec {
initial_session = { initial_session = {
command = "${pkgs.hyprland}/bin/Hyprland"; command = "${pkgs.hyprland}/bin/start-hyprland";
user = "joshuaelm"; user = "joshuaelm";
}; };
default_session = initial_session; default_session = initial_session;
@@ -149,7 +152,6 @@
programs.fish.enable = true; programs.fish.enable = true;
programs.adb.enable = true;
# Allow unfree packages # Allow unfree packages
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
@@ -179,15 +181,15 @@
programs.kdeconnect.enable = true; programs.kdeconnect.enable = true;
environment.systemPackages = with pkgs; [ 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 neovim
killall killall
hypridle hypridle
git git
gpu-screen-recorder
bluebubbles
inputs.naviterm.packages.${pkgs.system}.default
bibata-cursors bibata-cursors
element-desktop element-desktop
#inputs.zen-browser.packages."${system}".default
rofi rofi
playerctl playerctl
cava cava
@@ -220,6 +222,8 @@
# Or disable the firewall altogether. # Or disable the firewall altogether.
networking.firewall.enable = false; networking.firewall.enable = false;
nixpkgs.config.allowUnsupportedSystem = true;
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave # on your system were taken. Its perfectly fine and recommended to leave

View File

@@ -12,17 +12,14 @@
home.packages = [ home.packages = [
pkgs.element-desktop pkgs.element-desktop
pkgs.signal-desktop-bin pkgs.signal-desktop-bin
pkgs.supersonic pkgs.feishin
pkgs.libreoffice pkgs.libreoffice
pkgs.adw-gtk3 pkgs.adw-gtk3
pkgs.thunderbird pkgs.thunderbird
pkgs.xfce.thunar pkgs.thunar
]; ];
programs.hyprlock.enable = true;
programs.cava.enable = true;
programs.btop.enable = true; programs.btop.enable = true;
services.hyprpaper.enable = true;
wayland.windowManager.hyprland.enable = true; wayland.windowManager.hyprland.enable = true;
#xdg.configFile.hypr.source = ./modules/hypr; #xdg.configFile.hypr.source = ./modules/hypr;

View File

@@ -1,5 +1,17 @@
{ config, pkgs, inputs, ... }: { config, pkgs, inputs, ... }:
{ {
imports = [ ./stylix ./cava ./hypr ./kitty ./noctalia ./nushell ./nvim ./starship ./yazi ./zen]; imports =
[
./stylix
./cava
./hypr
./kitty
./noctalia
./nushell
./nvim
./starship
./yazi
./zen
];
} }

View File

@@ -1,209 +1,178 @@
{pkgs, ...}: { pkgs, inputs, lib, ... }:
{ {
services.hyprpolkitagent.enable = true; services.hyprpolkitagent.enable = true;
wayland.windowManager.hyprland.enable = true; programs.hyprshot.enable = true;
wayland.windowManager.hyprland.package = null; programs.hyprlock.enable = true;
wayland.windowManager.hyprland.portalPackage = null; wayland.windowManager.hyprland = {
wayland.windowManager.hyprland.extraConfig = '' enable = true;
autogenerated = 0 # remove this line to remove the warning package = null;
portalPackage = null;
settings = {
# Variables
"$terminal" = "kitty -e nu";
"$fileManager" = "kitty -e yazi";
"$menu" = "noctalia-shell ipc call launcher toggle";
"$bar" = "noctalia-shell";
"$mainMod" = "SUPER";
# Monitors
monitor = [
"HDMI-A-1, 3840x2160@120, 0x0, auto, bitdepth, 10"
"eDP-1, 2560x1600@60, 0x0, 1.6"
"DP-1, highres@highrr, 0x0, 1"
];
# Startup applications
exec-once = [
"noctalia-shell"
"hyprlock"
"hyprctl dispatch workspace 1"
"pw-metadata -n settings 0 clock.force-quantum 2048"
"systemctl --user start hyprpolkitagent"
"sunshine"
""
];
# See https://wiki.hyprland.org/Configuring/Monitors/ # Debug settings
monitor = HDMI-A-1, 3840x2160@120, 0x0, auto, bitdepth, 10, sdrsaturation, 1, sdrbrightness, 1 debug.full_cm_proto = true;
#monitor = HDMI-A-1, disable
#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 # Environment variables
# exec-once = waybar & hyprpaper & firefox env = [
"XCURSOR_SIZE,24"
"QT_QPA_PLATFORMTHEME,qt6ct"
];
debug:full_cm_proto=true input = {
kb_layout = "us";
kb_variant = "";
kb_model = "";
kb_options = "";
kb_rules = "";
accel_profile = "flat";
follow_mouse = 1;
# Set programs that you use touchpad = {
$terminal = kitty -e nu natural_scroll = true;
$fileManager = kitty -e yazi tap-to-click = false;
$menu = noctalia-shell ipc call launcher toggle drag_3fg = true;
$bar = noctalia-shell clickfinger_behavior = true;
tap-and-drag = false;
};
# Some default env vars. sensitivity = 0;
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/ render.cm_fs_passthrough = false;
input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_rules =
accel_profile = flat
follow_mouse = 1 general = {
gaps_in = 5;
gaps_out = 5;
border_size = 2;
layout = "dwindle";
allow_tearing = false;
};
touchpad { decoration = {
natural_scroll = no rounding = 5;
}
blur = {
sensitivity = 0 # -1.0 - 1.0, 0 means no modification. enabled = true;
} size = 5;
passes = 3;
render { new_optimizations = true;
cm_fs_passthrough = false ignore_opacity = true;
} xray = false;
};
general {
# See https://wiki.hyprland.org/Configuring/Variables/ for more shadow = {
enabled = true;
gaps_in = 5 offset = "3, 3";
gaps_out = 5 };
border_size = 2 };
layout = dwindle
animations = {
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on enabled = true;
allow_tearing = false
} bezier = [
"myBezier, 0.05, 0.9, 0.1, 1.05"
];
# windowrulev2 = immediate, class:^(cs2)$
animation = [
decoration { "windows, 1, 7, myBezier"
# See https://wiki.hyprland.org/Configuring/Variables/ for more "windowsOut, 1, 7, default, popin 80%"
"border, 1, 10, default"
rounding = 5 "borderangle, 1, 8, default"
"fade, 1, 7, default"
blur { "workspaces, 1, 6, default"
enabled = yes ];
size = 5 };
passes = 3
new_optimizations = on dwindle = {
ignore_opacity = on pseudotile = true;
xray = false preserve_split = true;
} };
shadow { gestures = [
enabled = true "3, horizontal, workspace"
offset = 3, 3 ];
color = rgba(323232cc)
} misc = {
} force_default_wallpaper = 0;
enable_anr_dialog = 0;
animations { vrr = 1;
enabled = yes };
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more bind = [
"$mainMod, Return, exec, $terminal"
bezier = myBezier, 0.05, 0.9, 0.1, 1.05 "$mainMod, Q, killactive"
"$mainMod, M, exec, noctalia-shell ipc call lockScreen lock"
animation = windows, 1, 7, myBezier "$mainMod, E, exec, $fileManager"
animation = windowsOut, 1, 7, default, popin 80% "$mainMod, V, togglefloating"
animation = border, 1, 10, default "$mainMod, Space, exec, $menu"
animation = borderangle, 1, 8, default "$mainMod, B, exec, zen"
animation = fade, 1, 7, default "$mainMod, P, pseudo"
animation = workspaces, 1, 6, default "$mainMod, J, togglesplit"
} "$mainMod, F, fullscreen"
", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+"
dwindle { ", XF86AudioLowerVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%-"
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more "$mainMod, left, movefocus, l"
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below "$mainMod, right, movefocus, r"
preserve_split = yes # you probably want this "$mainMod, up, movefocus, u"
} "$mainMod, down, movefocus, d"
"$mainMod, 1, workspace, 1"
"$mainMod, 2, workspace, 2"
gestures { "$mainMod, 3, workspace, 3"
# See https://wiki.hyprland.org/Configuring/Variables/ for more "$mainMod, 4, workspace, 4"
} "$mainMod, 5, workspace, 5"
"$mainMod, 6, workspace, 6"
misc { "$mainMod, 7, workspace, 7"
# See https://wiki.hyprland.org/Configuring/Variables/ for more "$mainMod, 8, workspace, 8"
force_default_wallpaper = 0 # Set to 0 to disable the anime mascot wallpapers "$mainMod, 9, workspace, 9"
enable_anr_dialog = 0 "$mainMod, 0, workspace, 10"
} "$mainMod SHIFT, 1, movetoworkspace, 1"
"$mainMod SHIFT, 2, movetoworkspace, 2"
"$mainMod SHIFT, 3, movetoworkspace, 3"
# Example per-device config "$mainMod SHIFT, 4, movetoworkspace, 4"
# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more "$mainMod SHIFT, 5, movetoworkspace, 5"
"$mainMod SHIFT, 6, movetoworkspace, 6"
"$mainMod SHIFT, 7, movetoworkspace, 7"
# Example windowrule v1 "$mainMod SHIFT, 8, movetoworkspace, 8"
# windowrule = float, ^(kitty)$ "$mainMod SHIFT, 9, movetoworkspace, 9"
# Example windowrule v2 "$mainMod SHIFT, 0, movetoworkspace, 10"
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ "$mainMod, S, togglespecialworkspace, magic"
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more "$mainMod SHIFT, S, movetoworkspace, special:magic"
"$mainMod, mouse_down, workspace, e+1"
# Window Rules "$mainMod, mouse_up, workspace, e-1"
", code:76, exec, killall -SIGUSR1 gpu-screen-recorder"
", code:75, exec, killall -SIGINT gpu-screen-recorder"
# See https://wiki.hyprland.org/Configuring/Keywords/ for more ];
$mainMod = SUPER
bindm = [
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more "$mainMod, mouse:272, movewindow"
bind = $mainMod, Return, exec, $terminal "$mainMod, mouse:273, resizewindow"
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
'';
} }

View File

@@ -6,6 +6,8 @@
settings = { settings = {
general = { general = {
avatarImage = "/home/joshuaelm/NixOS-configs/pfp.jpg"; avatarImage = "/home/joshuaelm/NixOS-configs/pfp.jpg";
shadowOffsetX = 3;
shadowOffsetY = 3;
}; };
bar = lib.mkForce { bar = lib.mkForce {
position = "top"; position = "top";
@@ -16,10 +18,10 @@
capsuleOpacity = 1; capsuleOpacity = 1;
backgroundOpacity = 1; backgroundOpacity = 1;
useSeparateOpacity = false; useSeparateOpacity = false;
floating = false; floating = true;
marginVertical = 4; marginVertical = 5;
marginHorizontal = 4; marginHorizontal = 5;
outerCorners = true; outerCorners = false;
exclusive = true; exclusive = true;
hideOnOverview = false; hideOnOverview = false;
widgets = { widgets = {
@@ -40,9 +42,18 @@
} }
]; ];
right = [ right = [
{
id = "AudioVisualizer";
}
{ {
id = "Tray"; id = "Tray";
} }
{
id = "plugin:screenshot";
}
{
id = "plugin:screen-recorder";
}
{ {
id = "Volume"; id = "Volume";
} }
@@ -60,6 +71,16 @@
}; };
appLauncher = { appLauncher = {
terminalCommand = "kitty -e"; terminalCommand = "kitty -e";
position = "top-center";
};
sessionMenu = {
position = "top_left";
};
dock = {
enabled = false;
};
osd = {
location = "right";
}; };
location = { location = {
monthBeforeDay = true; monthBeforeDay = true;
@@ -77,5 +98,39 @@
hideWeatherCityName = false; 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";
};
};
}; };
} }

View File

@@ -4,6 +4,7 @@
imports = [ ./config.nix ]; imports = [ ./config.nix ];
programs.nixvim = { programs.nixvim = {
enable = true; enable = true;
defaultEditor = true;
plugins.nvim-tree.enable = true; plugins.nvim-tree.enable = true;
plugins.treesitter.enable = true; plugins.treesitter.enable = true;
plugins.lualine.enable = true; plugins.lualine.enable = true;

View File

@@ -1,18 +1,17 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
stylix.enable = true; stylix.enable = true;
stylix.polarity = "dark"; stylix.autoEnable = true;
#stylix.targets.plymouth.enable = false; #stylix.targets.plymouth.enable = false;
stylix.targets.kitty.enable = true; stylix.targets.kitty.enable = true;
stylix.targets.hyprpaper.enable = true; stylix.polarity = "dark";
stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/nord.yaml";
stylix.targets.zen-browser.profileNames = [ "default" ]; stylix.targets.zen-browser.profileNames = [ "default" ];
stylix.targets.zen-browser.enable = true; stylix.targets.zen-browser.enable = true;
# blue aura house # blue aura house
/* stylix.image = pkgs.fetchurl { stylix.image = pkgs.fetchurl {
url = "https://w.wallhaven.cc/full/1p/wallhaven-1py8lw.jpg"; url = "https://w.wallhaven.cc/full/1p/wallhaven-1py8lw.jpg";
hash = "sha256-smJTuprm8PVKWv56hfv9UMzDXkHm3R7O1ALaNpNYy3E="; hash = "sha256-smJTuprm8PVKWv56hfv9UMzDXkHm3R7O1ALaNpNYy3E=";
};*/ };
# coastal town # coastal town
/*stylix.image = pkgs.fetchurl { /*stylix.image = pkgs.fetchurl {
url = "https://w.wallhaven.cc/full/ex/wallhaven-ex8vml.jpg"; url = "https://w.wallhaven.cc/full/ex/wallhaven-ex8vml.jpg";
@@ -32,9 +31,22 @@
};*/ };*/
# Icy Mountains with Ocean Night # 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"; url = "https://gitea.base.jeditemple.com/joshuaelm/Wallpapers/raw/branch/main/generic/Icy%20Mountains%20Blue%20Night.png";
hash = "sha256-X67ljSsASOXIzNti6cMmLYJ5pO14C3tdWmVpZ/n2R6E="; 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-sulphurpool.yaml";
} }

View File

@@ -2,5 +2,6 @@
{ {
programs.yazi = { programs.yazi = {
enable = true; enable = true;
shellWrapperName = "y";
}; };
} }

View File

@@ -5,7 +5,7 @@
]; ];
programs.zen-browser = { programs.zen-browser = {
enable = true; enable = true;
suppressXdgMigrationWarning = true;
profiles = { profiles = {
default = { default = {
# bookmarks, extensions, search engines... # bookmarks, extensions, search engines...

11685
patches/0001-amdgpu-frl.patch Normal file

File diff suppressed because it is too large Load Diff