This commit is contained in:
Kat Inskip 2025-06-23 00:41:18 -07:00
parent 0262081094
commit 0b68116260
Signed by: kat
GPG key ID: 465E64DECEA8CF0F
18 changed files with 166 additions and 35 deletions

40
flake.lock generated
View file

@ -161,6 +161,24 @@
"type": "github" "type": "github"
} }
}, },
"clipboard-sync": {
"inputs": {
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1731355357,
"narHash": "sha256-kTXsO+hskCfX36+Ez1fHu9SO54uUY2lofkrbMKE3Vrk=",
"owner": "dnut",
"repo": "clipboard-sync",
"rev": "943e49e0a9a16b54bbab3704e99b6cf6ad4ea19f",
"type": "github"
},
"original": {
"owner": "dnut",
"repo": "clipboard-sync",
"type": "github"
}
},
"crane": { "crane": {
"locked": { "locked": {
"lastModified": 1731098351, "lastModified": 1731098351,
@ -828,21 +846,24 @@
"hyprlang": "hyprlang", "hyprlang": "hyprlang",
"hyprutils": "hyprutils", "hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner", "hyprwayland-scanner": "hyprwayland-scanner",
"nixpkgs": "nixpkgs_4", "nixpkgs": [
"nixpkgs"
],
"pre-commit-hooks": "pre-commit-hooks", "pre-commit-hooks": "pre-commit-hooks",
"systems": "systems", "systems": "systems",
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1750106438, "lastModified": 1746735318,
"narHash": "sha256-zaTFR6NLaXkveEGl2kdl4UlvT7eHm3cYSbgSkibCO+M=", "narHash": "sha256-iN0Ge4LaVT7rATqzIrAZFSdfYuIXbe4/HGcXle7qK1g=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "Hyprland", "repo": "Hyprland",
"rev": "0ece4af36a988ad06b28ed666011d84372d9e4dc", "rev": "9958d297641b5c84dcff93f9039d80a5ad37ab00",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "hyprwm", "owner": "hyprwm",
"ref": "v0.49.0",
"repo": "Hyprland", "repo": "Hyprland",
"type": "github" "type": "github"
} }
@ -1610,15 +1631,15 @@
}, },
"nixpkgs_4": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1749794982, "lastModified": 1717196966,
"narHash": "sha256-Kh9K4taXbVuaLC0IL+9HcfvxsSUx8dPB5s5weJcc9pc=", "narHash": "sha256-yZKhxVIKd2lsbOqYd5iDoUIwsRZFqE87smE2Vzf6Ck0=",
"owner": "NixOS", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "ee930f9755f58096ac6e8ca94a1887e0534e2d81", "rev": "57610d2f8f0937f39dbd72251e9614b1561942d8",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "nixos",
"ref": "nixos-unstable", "ref": "nixos-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
@ -1892,6 +1913,7 @@
"catppuccin": "catppuccin", "catppuccin": "catppuccin",
"chaotic": "chaotic", "chaotic": "chaotic",
"ci": "ci", "ci": "ci",
"clipboard-sync": "clipboard-sync",
"darwin": "darwin", "darwin": "darwin",
"deploy-rs": "deploy-rs", "deploy-rs": "deploy-rs",
"empty": "empty", "empty": "empty",

View file

@ -15,7 +15,12 @@
}; };
nix-gaming.url = "github:fufexan/nix-gaming"; nix-gaming.url = "github:fufexan/nix-gaming";
hyprland.url = "github:hyprwm/Hyprland"; hyprland = {
url = "github:hyprwm/Hyprland/v0.49.0";
inputs = {
nixpkgs.follows = "nixpkgs";
};
};
split-monitor-workspaces = { split-monitor-workspaces = {
url = "github:Duckonaut/split-monitor-workspaces"; url = "github:Duckonaut/split-monitor-workspaces";
inputs.hyprland.follows = "hyprland"; # <- make sure this line is present for the plugin to work as intended inputs.hyprland.follows = "hyprland"; # <- make sure this line is present for the plugin to work as intended
@ -27,6 +32,7 @@
nixpkgs = { nixpkgs = {
url = "github:nixos/nixpkgs/nixos-unstable"; url = "github:nixos/nixpkgs/nixos-unstable";
}; };
clipboard-sync.url = "github:dnut/clipboard-sync";
nixpkgs-xr.url = "github:nix-community/nixpkgs-xr"; nixpkgs-xr.url = "github:nix-community/nixpkgs-xr";
infrastructure = { infrastructure = {
url = "github:gensokyo-zone/infrastructure/main"; url = "github:gensokyo-zone/infrastructure/main";

View file

@ -0,0 +1,29 @@
{pkgs, ...}: {
services.hypridle = {
enable = false;
listeners = [
{
timeout = 150;
onTimeout = "${pkgs.brightnessctl}/bin/brightnessctl -s set 5";
onResume = "${pkgs.brightnessctl}/bin/brightnessctl -r";
}
{
timeout = 300;
onTimeout = "${pkgs.systemd}/bin/loginctl lock-session";
}
{
timeout = 330;
onTimeout = "${pkgs.hyprland}/bin/hyprctl dispatch dpms off";
onResume = "${pkgs.hyprland}/bin/hyprctl dispatch dpms on";
}
{
timeout = 600;
onTimeout = "${pkgs.systemd}/bin/systemctl suspend";
}
];
beforeSleepCmd = "${pkgs.systemd}/bin/loginctl lock-session";
afterSleepCmd = "${pkgs.hyprland}/bin/hyprctl dispatch dpms on";
lockCmd = "pidof hyprlock || ${pkgs.hyprlock}/bin/hyprlock";
unlockCmd = "${pkgs.psmisc}/bin/killall hyprlock";
};
}

View file

@ -42,6 +42,7 @@ ${pkgs.glib}/bin/gsettings set "$gnome_schema" font-name "$font_name"
systemd = { systemd = {
enable = true; enable = true;
variables = ["--all"]; variables = ["--all"];
enableXdgAutostart = true;
extraCommands = [ extraCommands = [
"systemctl --user stop graphical-session.target" "systemctl --user stop graphical-session.target"
"systemctl --user start hyprland-session.target" "systemctl --user start hyprland-session.target"
@ -85,9 +86,15 @@ ${pkgs.glib}/bin/gsettings set "$gnome_schema" font-name "$font_name"
"ELECTRON_OZONE_PLATFORM_HINT,auto" "ELECTRON_OZONE_PLATFORM_HINT,auto"
"LIBVA_DRIVER_NAME,nvidia" "LIBVA_DRIVER_NAME,nvidia"
"__GLX_VENDOR_LIBRARY_NAME,nvidia" "__GLX_VENDOR_LIBRARY_NAME,nvidia"
"QT_QPA_PLATFORM,wayland" "QT_QPA_PLATFORM,wayland;xcb"
"MOZ_ENABLE_WAYLAND,1"
"NIXOS_OZONE_WL,1"
"XDG_CURRENT_DESKTOP,Hyprland"
"GDK_BACKEND,wayland,x11"
"CLUTTER_BACKEND,wayland"
"__NV_DISABLE_EXPLICIT_SYNC,1" "__NV_DISABLE_EXPLICIT_SYNC,1"
]; ];
debug.disable_logs = false;
exec-once = [ exec-once = [
"${pkgs.swww}/bin/swww init" "${pkgs.swww}/bin/swww init"
"${pkgs.hypridle}/bin/hypridle" "${pkgs.hypridle}/bin/hypridle"

View file

@ -1,5 +1,5 @@
_: { _: {
programs.hyprlock = { programs.hyprlock = {
enable = true; enable = false;
}; };
} }

View file

@ -12,9 +12,17 @@ _: {
} }
window#waybar { window#waybar {
background: @theme_base_color; all:unset;
border-bottom: 1px solid @unfocused_borders; }
color: @theme_text_color;
.modules-left, .modules-right, .modules-center {
background: alpha(@base, 0.9);
box-shadow: 0px 0px 2px rgba(0,0,0,0.6);
color: @text;
padding: 5px;
margin: 2px 4px;
border: 1px solid @lavender;
} }
tooltip { tooltip {
@ -25,35 +33,80 @@ tooltip label {
color: white; color: white;
} }
#workspaces {
border-right: 1px solid @surface2;
}
#workspaces button.persistent { #workspaces button.persistent {
background: shade(@insensitive_bg_color, 0.5); background: @theme_unfocused_bg_color;
color: shade(@insensitive_fg_color, 0.5); color: @subtext1;
} }
#workspaces button { #workspaces button {
padding: 0 5px; padding: 2px 5px;
background: @theme_unfocused_bg_color; background: @surface0;
border-bottom: 3px solid transparent; border-bottom: 3px solid transparent;
} }
#workspaces button.empty {
background: @crust;
color: @subtext1;
}
#workspaces button.visible {
background: @pink;
color: @theme_selected_fg_color;
border-bottom: 3px solid @rosewater;
}
#workspaces button.urgent {
background: @red;
color: @theme_selected_fg_color;
}
#workspaces button.active, #workspaces button.focused { #workspaces button.active, #workspaces button.focused {
background: @theme_selected_bg_color; background: @theme_selected_bg_color;
color: @theme_selected_fg_color; color: @theme_selected_fg_color;
border-bottom: 3px solid white; border-bottom: 3px solid white;
} }
#mode, #clock, #battery, #idle_inhibitor, #tray, #window, #wireplumber, #bluetooth, #mpris { #window {
padding: 0 10px;
}
window#waybar.empty #window {
padding: 0px;
margin: 0px;
}
#mode, #clock, #battery, #idle_inhibitor, #tray, #wireplumber, #bluetooth, #mpris {
padding: 0 5px; padding: 0 5px;
margin: 0 5px; margin: 0 5px;
} }
#mpris {
color: @mantle;
}
#mpris.playing {
background-color: @lavender;
}
#mpris.paused {
background-color: @mauve;
}
#mpris.stopped {
background-color: @rosewater;
}
#mode { #mode {
background: #64727D; background: #64727D;
border-bottom: 3px solid white; border-bottom: 3px solid white;
} }
#clock, #mpris { #clock {
background-color: #64727D;
} }
#battery { #battery {
@ -84,9 +137,8 @@ tooltip label {
} }
''; '';
settings.main = { settings.main = {
layer = "top"; layer = "top";
position = "top"; position = "top";
height = 24;
modules-left = [ modules-left = [
"hyprland/workspaces" "hyprland/workspaces"
"hyprland/submap" "hyprland/submap"
@ -111,9 +163,22 @@ tooltip label {
bluetooth = { bluetooth = {
on-click = "blueman-manager"; on-click = "blueman-manager";
format = " {status}";
format-connected-battery = " {device_alias} {device_battery_percentage}%";
format-connected = " {num_connections} connected";
tooltip-format = "{controller_alias}\t{controller_address}\n\n{num_connections} connected";
tooltip-format-connected = "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}";
tooltip-format-enumerate-connected = "{device_alias}\t{device_address}";
tooltip-format-enumerate-connected-battery = "{device_alias}\t{device_address}\t{device_battery_percentage}%";
}; };
tray = {
spacing = 4;
};
clock = { clock = {
format = "{:%F %H:%M %Z}"; format = "{:%F %H:%M %Z}";
interval = 60;
}; };
}; };
}; };

View file

@ -1,6 +1,6 @@
_: { _: {
services.picom = { services.picom = {
enable = true; enable = false;
backend = "glx"; backend = "glx";
shadow = false; shadow = false;
vSync = false; vSync = false;

View file

@ -1,5 +1,5 @@
_: { _: {
programs.floorp.profiles.main.settings = { programs.firefox.profiles.main.settings = {
# Derived from https://github.com/arcnmx/home/blob/9eb1cd4dd43883e1a0c6a2a55c00d7c3bede1776/cfg/firefox/default.nix#L7 # Derived from https://github.com/arcnmx/home/blob/9eb1cd4dd43883e1a0c6a2a55c00d7c3bede1776/cfg/firefox/default.nix#L7
# and https://git.ztn.sh/zotan/snowleopard/src/branch/dev/assets/prefs.js # and https://git.ztn.sh/zotan/snowleopard/src/branch/dev/assets/prefs.js
"services.sync.engine.prefs" = false; "services.sync.engine.prefs" = false;

View file

@ -2,7 +2,7 @@
inherit (lib.attrsets) listToAttrs nameValuePair; inherit (lib.attrsets) listToAttrs nameValuePair;
inherit (lib.modules) mkMerge; inherit (lib.modules) mkMerge;
in { in {
programs.floorp.profiles.main = { programs.firefox.profiles.main = {
containersForce = true; containersForce = true;
containers = { containers = {
main = { main = {

View file

@ -2,11 +2,11 @@
defaultFont = "Monaspace Krypton"; defaultFont = "Monaspace Krypton";
in { in {
home.sessionVariables = { home.sessionVariables = {
BROWSER = "floorp"; BROWSER = "firefox";
}; };
home.packages = [ pkgs.ff2mpv-rust ]; home.packages = [ pkgs.ff2mpv-rust ];
programs.floorp = { programs.firefox = {
nativeMessagingHosts = [ nativeMessagingHosts = [
pkgs.ff2mpv-rust pkgs.ff2mpv-rust
]; ];

View file

@ -1,5 +1,5 @@
{ nur, ... }: { { nur, ... }: {
programs.floorp.profiles.main.extensions = { programs.firefox.profiles.main.extensions = {
packages = with nur.repos.rycee.firefox-addons; [ packages = with nur.repos.rycee.firefox-addons; [
mtab mtab
]; ];

View file

@ -1,5 +1,5 @@
{ nur, ... }: { { nur, ... }: {
programs.floorp.profiles.main = { programs.firefox.profiles.main = {
extensions = { extensions = {
packages = with nur.repos.rycee.firefox-addons; [ packages = with nur.repos.rycee.firefox-addons; [
tree-style-tab tree-style-tab
@ -22,6 +22,7 @@
showExpertOptions = true; showExpertOptions = true;
skipCollapsedTabsForTabSwitchingShortcuts = true; skipCollapsedTabsForTabSwitchingShortcuts = true;
tabPreviewTooltip = true; tabPreviewTooltip = true;
"__ConfigsMigration__userValeusSameToDefaultAreCleared" = true;
}; };
}; };
}; };

View file

@ -1,5 +1,5 @@
{ nur, ... }: { { nur, ... }: {
programs.floorp.profiles.main.extensions = { programs.firefox.profiles.main.extensions = {
packages = with nur.repos.rycee.firefox-addons; [ packages = with nur.repos.rycee.firefox-addons; [
ublock-origin ublock-origin
]; ];

View file

@ -2,4 +2,5 @@ _: {
programs.hyprland = { programs.hyprland = {
enable = true; enable = true;
}; };
services.clipboard-sync.enable = true;
} }

View file

@ -4,7 +4,7 @@
enable = true; enable = true;
extraPortals = with pkgs; [ extraPortals = with pkgs; [
xdg-desktop-portal-wlr xdg-desktop-portal-wlr
xdg-desktop-portal-hyprland xdg-desktop-portal-gtk
]; ];
}; };
}; };

View file

@ -45,7 +45,6 @@ _: let
gaming gaming
]) ])
++ (with tree.nixos.environments; [ ++ (with tree.nixos.environments; [
i3
hyprland hyprland
]); ]);

View file

@ -88,6 +88,7 @@
inputs.nix-gaming.nixosModules.ntsync inputs.nix-gaming.nixosModules.ntsync
inputs.nix-gaming.nixosModules.pipewireLowLatency inputs.nix-gaming.nixosModules.pipewireLowLatency
inputs.nix-gaming.nixosModules.platformOptimizations inputs.nix-gaming.nixosModules.platformOptimizations
inputs.clipboard-sync.nixosModules.default
]; ];
}; };
}; };