77 Commits

Author SHA1 Message Date
biscuit 59f4b37a2c hypr: preload firefox 2025-05-19 14:39:42 -05:00
biscuit 2e7d8fef40 upd 2025-05-19 12:51:19 -05:00
biscuit e193f075e2 nix: added astal.io 2025-05-16 06:47:19 -05:00
biscuit 34400702a8 upd 2025-05-16 06:42:25 -05:00
biscuit 01ac3de3ff added theme 2025-05-16 06:34:55 -05:00
biscuit 6b5d28d12b test 2025-05-15 19:16:04 -05:00
biscuit dd9d2ec9d3 test 2025-05-15 19:15:53 -05:00
biscuit bb04a5d1fd (nix) astal 2025-05-15 19:14:42 -05:00
biscuit 861afe8e83 added astal-apps 2025-05-15 18:32:04 -05:00
biscuit 45639b77cf astal: major changes 2025-05-15 17:44:23 -05:00
biscuit 82ca6c1bf1 nix: use busybox 2025-05-15 15:03:29 -05:00
biscuit ae8b9fde5d nix: fixed 2025-05-15 14:58:56 -05:00
biscuit d2e772a986 nix: added python313 and unzip 2025-05-15 14:55:06 -05:00
biscuit e981f03e03 nix: cleaned up files 2025-05-15 14:54:33 -05:00
biscuit fd30f8d1fd added cargo 2025-05-15 14:51:17 -05:00
biscuit 5b89c099c9 added rust 2025-05-15 14:49:43 -05:00
biscuit bda8f85445 added cursor 2025-05-15 14:23:19 -05:00
biscuit bfbd2d8abe hypr: added bibata cursor 2025-05-15 14:13:00 -05:00
biscuit ced9937c09 README: added important info 2025-05-15 14:06:58 -05:00
biscuit a187fb5ebf nix: fix font unable to initialize 2025-05-15 14:05:31 -05:00
biscuit 1b74cf48d0 nix: organized even further 2025-05-15 14:04:28 -05:00
biscuit 87f2adb3c9 nix: fix cleanup 2 2025-05-15 13:58:59 -05:00
biscuit 0cdbf3dc00 nix: fix cleanup 1 2025-05-15 13:53:44 -05:00
biscuit 64237058a2 nix: cleaned up 2025-05-15 13:50:58 -05:00
biscuit 5ffe2fe09f hypr: numlock by default 2025-05-15 13:44:46 -05:00
biscuit 407b909aab astal: removed notif module 2025-05-15 13:44:34 -05:00
biscuit c819cb6c01 hypr: changed animation 2025-05-15 13:34:45 -05:00
biscuit e1d99a0279 (astal) changed to biscuit 2025-05-15 13:26:44 -05:00
biscuit 3a1ce68ccf sync 2025-05-15 10:35:33 -05:00
biscuit 2574f4935f added nodejs 2025-05-14 16:29:22 -05:00
biscuit c6aafcbcca upd 2025-05-14 16:14:20 -05:00
biscuit d33af4042e added astal back 2025-05-14 15:24:04 -05:00
biscuit 6492901dda removed astal 2025-05-14 15:22:08 -05:00
biscuit 1c9fee8aca added fastfetch 2025-05-14 09:52:16 -05:00
biscuit 79963a171b (hypr) replaced waybar with hyprpanel 2025-05-14 09:41:47 -05:00
biscuit bfb74c0f6e cleaned up nix 2025-05-14 09:33:06 -05:00
biscuit 01589d2fb7 upd 2025-05-14 09:23:12 -05:00
biscuit db7066bb35 (hypr) changed gaps 2025-05-14 09:15:12 -05:00
biscuit a7a6593e40 display manager (gdm) added 2025-05-14 09:11:02 -05:00
biscuit 4d979ce197 fixed waybar 2025-05-14 06:59:28 -05:00
biscuit 0a5a621c99 added nerdfont 2025-05-14 06:59:24 -05:00
biscuit d557938f1d wip 2025-05-14 06:51:16 -05:00
biscuit 28c1409053 added waybar 2025-05-14 06:43:51 -05:00
biscuit a6b08c1a98 organized files 2025-05-14 06:35:05 -05:00
biscuit 2232374d24 cleanup of useless pkgs 2025-05-14 06:30:50 -05:00
biscuit 4ed41b1279 wip 2025-05-14 06:24:05 -05:00
biscuit 2ec8cd6aaa added hyprpanel 2025-05-14 06:05:40 -05:00
biscuit 697be1193f incomprehensible mess 2025-05-13 20:43:26 -05:00
biscuit 82e38f7cd6 added astal 2025-05-13 20:30:52 -05:00
biscuit 97f24c894b added ags essentials 2025-05-13 19:53:24 -05:00
biscuit cc179c30a3 update ags 2025-05-13 19:43:34 -05:00
biscuit 0f4d658121 keybind equivalent vim 2025-05-13 19:28:14 -05:00
biscuit 836c18359f added new confs 2025-05-13 19:24:35 -05:00
biscuit a155d3fba1 monitor set to highest possible 2025-05-13 19:19:08 -05:00
biscuit a549fafc72 keybinds 2025-05-13 19:15:38 -05:00
biscuit 47e6fcf96f added firefox 2025-05-13 19:11:11 -05:00
biscuit 35ca5c8bc0 upd firefox 2025-05-13 19:07:02 -05:00
biscuit 923dac6f63 wip 2025-05-13 18:59:06 -05:00
biscuit 9423554aa4 wip 2025-05-13 18:58:32 -05:00
biscuit d9fc308a51 update 2025-05-13 18:36:55 -05:00
biscuit eef4be887a fixed audio issue 2025-05-13 18:31:56 -05:00
biscuit 2576eacb6b update 2025-05-13 18:17:17 -05:00
biscuit 9290d27146 minor change 2025-05-13 16:29:07 -05:00
biscuit b93b0a6dd5 upd 2025-05-13 16:26:47 -05:00
biscuit 387cc54577 removed plugins 2025-05-13 15:38:19 -05:00
biscuit 1598b620b9 sync 2025-05-13 15:35:43 -05:00
biscuit 2ec607e5c0 WIP 2025-05-13 14:30:52 -05:00
biscuit 61f9633006 fixed zoxide 2025-05-13 13:05:50 -05:00
biscuit f3859db703 sync 2025-05-13 13:00:11 -05:00
biscuit 867847a059 added lazygit 2025-05-13 12:22:47 -05:00
biscuit 467f7d47f0 added p7zip to system 2025-05-13 12:22:43 -05:00
biscuit 5d7d8e4b4f WIP 2025-05-13 11:22:45 -05:00
biscuit 94f91e9a6d WIP 2025-05-13 09:42:02 -05:00
biscuit 904529022f WIP 2025-05-13 09:38:18 -05:00
biscuit 6f6145f1c0 backup 2025-05-06 14:58:15 -05:00
biscuit e209ddd352 changed user name 2025-05-06 11:23:09 -05:00
biscuit 0c8d4ae178 initial commit 2025-05-05 21:03:01 -05:00
81 changed files with 1736 additions and 1483 deletions
View File
+6
View File
@@ -0,0 +1,6 @@
# Getting Started
`nixos-rebuild switch --flake LOCATION#HOST_NAME`
`home-manager switch --flake LOCATION#HOST_NAME`
Change `LOCATION` and `HOST_NAME`.
-99
View File
@@ -1,99 +0,0 @@
{pkgs, ...}: {
programs.firefox = {
enable = true;
languagePacks = ["en-US"];
profiles = {
hakase = {
search.force = true;
isDefault = true;
search.default = "ddg";
# FIXED: Removed .settings and .force to allow UI interaction
bookmarks = [
{
name = "Toolbar Bookmarks";
toolbar = true;
bookmarks = [
{
name = "Home Manager";
url = "https://mynixos.com/home-manager/options/programs";
}
{
name = "YouTube";
url = "https://youtube.com";
}
];
}
];
settings = {
"browser.contentblocking.category" = "strict";
"extensions.pocket.enabled" = false;
"extensions.screenshots.disabled" = true;
"browser.topsites.contile.enabled" = false;
"browser.formfill.enable" = false;
"browser.search.suggest.enabled" = false;
"browser.search.suggest.enabled.private" = false;
"browser.urlbar.suggest.searches" = false;
"browser.urlbar.showSearchSuggestionsFirst" = false;
"browser.newtabpage.activity-stream.feeds.section.topstories" = false;
"browser.newtabpage.activity-stream.feeds.snippets" = false;
"browser.newtabpage.activity-stream.section.highlights.includePocket" = false;
"browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = false;
"browser.newtabpage.activity-stream.section.highlights.includeDownloads" = false;
"browser.newtabpage.activity-stream.section.highlights.includeVisited" = false;
"browser.newtabpage.activity-stream.showSponsored" = false;
"browser.newtabpage.activity-stream.system.showSponsored" = false;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
"browser.startup.homepage" = "https://dash.sakamoto.dev";
"browser.newtabpage.pinned" = [
{
title = "Dashboard";
url = "https://dash.sakamoto.dev";
}
];
};
};
};
policies = {
DisableTelemetry = true;
DisableFirefoxStudies = true;
EnableTrackingProtection = {
Value = true;
Locked = false; # Set to false so you can still adjust via UI
Cryptomining = true;
Fingerprinting = true;
};
DisablePocket = true;
DisableFirefoxAccounts = true;
DisableAccounts = true;
DisableFirefoxScreenshots = true;
OverrideFirstRunPage = "";
OverridePostUpdatePage = "";
DontCheckDefaultBrowser = true;
DisplayBookmarksToolbar = "always";
SearchBar = "unified";
/*
---- EXTENSIONS ----
*/
ExtensionSettings = {
# Removed the "*" wildcard which was likely locking the Add-on store UI
"uBlock0@raymondhill.net" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
installation_mode = "force_installed";
};
"{446900e4-71c2-419f-a6a7-df9c091e268b}" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/bitwarden-password-manager/latest.xpi";
installation_mode = "force_installed";
};
"tridactyl.vim@cmcaine.co.uk" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/tridactyl-vim/latest.xpi";
installation_mode = "force_installed";
};
};
};
};
}
-19
View File
@@ -1,19 +0,0 @@
{
pkgs,
myConfig,
...
}: {
programs.fish = {
enable = true;
interactiveShellInit = ''
set fish_greeting
fish_vi_key_bindings
zoxide init fish | source
zoxide init fish --cmd cd | source
'';
shellAliases = myConfig.terminal.aliases;
plugins = with pkgs.fishPlugins; [
];
};
}
-5
View File
@@ -1,5 +0,0 @@
{pkgs, ...}: {
home.packages = with pkgs; [
gemini-cli
];
}
-15
View File
@@ -1,15 +0,0 @@
{pkgs, ...}: {
programs.ghostty = {
enable = true;
package =
if pkgs.stdenv.isDarwin
then pkgs.ghostty-bin
else pkgs.ghostty;
enableFishIntegration = true;
settings = {
window-padding-x = 15;
window-padding-y = 15;
window-padding-balance = true;
};
};
}
-10
View File
@@ -1,10 +0,0 @@
{myConfig, ...}: {
programs.git = {
enable = true;
extraConfig = {
user.name = "${myConfig.git.username}";
user.email = "${myConfig.git.email}";
init.defaultBranch = "${myConfig.git.defaultBranch}";
};
};
}
-38
View File
@@ -1,38 +0,0 @@
{
myConfig,
inputs,
pkgs,
...
}: {
programs.hyprland = {
enable = true;
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
withUWSM = true;
};
environment.systemPackages = [
pkgs.hyprpicker
pkgs.hyprlock
pkgs.hypridle
pkgs.hyprpaper
pkgs.hyprsunset
pkgs.hyprpolkitagent
];
xdg.terminal-exec = {
enable = true;
settings = {
default = myConfig.terminal.default;
};
};
# systemd.user.services.hyprpolkitagent = {
# description = "Hyprland Polkit Agent";
# wantedBy = ["graphical-session.target"];
# serviceConfig = {
# ExecStart = "${pkgs.hyprpolkitagent}/libexec/hyprpolkitagent";
# Restart = "on-failure";
# };
# };
}
-9
View File
@@ -1,9 +0,0 @@
{
imports = [
./hypr/binds.nix
./hypr/general.nix
./hypr/exec.nix
];
wayland.windowManager.hyprland.enable = true;
wayland.windowManager.hyprland.systemd.enable = false; # for UWSM support...
}
-44
View File
@@ -1,44 +0,0 @@
{
wayland.windowManager.hyprland.settings = {
bindd =
[
# essential
"SUPER, Return, Open Terminal, exec, uwsm app -- xdg-terminal-exec"
"SUPER, Q, Kill active, killactive"
# move focus
"SUPER, J, Move focus down, movefocus, d"
"SUPER, K, Move focus up, movefocus, u"
"SUPER, H, Move focus left, movefocus, l"
"SUPER, L, Move focus right, movefocus, r"
# fullscreen
"SUPER, F, Toggle Fullscreen, fullscreen, 0"
"SUPER SHIFT, F, Toggle Maximized Fullscreen, fullscreen, 1"
# apps
"SUPER, W, Open browser, exec, uwsm app -- firefox" # FIXME: must be xdg-open
# [Workspaces] Toggle between most recent workspaces
"SUPER, Tab, Cycle workspaces, workspace, previous"
]
++ (
# Generate binds for Super + [1-10] to switch workspaces
# and Super + Shift + [1-10] to move window to workspace
builtins.concatLists (builtins.genList (
i: let
ws = i + 1;
key = toString (
if ws == 10
then 0
else ws
);
in [
"SUPER, ${key}, Switch to workspace ${toString ws}, workspace, ${toString ws}"
"SUPER SHIFT, ${key}, Move window to workspace ${toString ws}, movetoworkspace, ${toString ws}"
]
)
10)
);
};
}
-7
View File
@@ -1,7 +0,0 @@
{
wayland.windowManager.hyprland.settings = {
exec-once = [
"uwsm app -- waybar"
];
};
}
-9
View File
@@ -1,9 +0,0 @@
{myConfig, ...}: {
wayland.windowManager.hyprland.settings = {
general = {
gaps_in = 5;
gaps_out = 15;
};
monitor = myConfig.hyprland.monitors;
};
}
-5
View File
@@ -1,5 +0,0 @@
{pkgs, ...}: {
home.packages = with pkgs; [
jellyfin-tui
];
}
-9
View File
@@ -1,9 +0,0 @@
{
inputs,
system,
...
}: {
home.packages = [
inputs.nixovim.packages.${system}.full
];
}
-59
View File
@@ -1,59 +0,0 @@
{
programs.starship = {
enable = true;
settings = {
# Pro layout: one-line, clear spacing
format = ''
[](surface0)$os$directory[](fg:surface0 bg:peach)$git_branch$git_status[](fg:peach bg:surface1)$c$rust$nodejs$python$golang[](fg:surface1 bg:surface0)$nix_shell[](surface0)
$character'';
# Palette definition (Catppuccin Mocha-inspired)
palette = "pro_theme";
palettes.pro_theme = {
surface0 = "#313244";
surface1 = "#45475a";
text = "#cdd6f4";
peach = "#fab387";
sapphire = "#74c7ec";
lavender = "#b4befe";
green = "#a6e3a1";
};
os = {
disabled = false;
format = "[$symbol]($style)";
style = "bg:surface0 fg:text";
symbols = {NixOS = " ";};
};
directory = {
style = "bg:surface0 fg:lavender";
format = "[ $path ]($style)";
truncation_length = 3;
truncation_symbol = "/";
};
git_branch = {
symbol = "󰊢 ";
style = "bg:peach fg:surface0";
format = "[[ $symbol $branch ]($style)]($style)";
};
git_status = {
style = "bg:peach fg:surface0";
format = "[[($all_status$ahead_behind )]($style)]($style)";
};
nix_shell = {
symbol = "󱄅 ";
style = "bg:surface0 fg:sapphire";
format = "[ $symbol $state ]($style)";
};
character = {
success_symbol = "[󱞩](bold green)";
error_symbol = "[󱞩](bold red)";
};
};
};
}
-6
View File
@@ -1,6 +0,0 @@
{pkgs, ...}: {
home.packages = with pkgs; [
pamixer
wiremix
];
}
-170
View File
@@ -1,170 +0,0 @@
{
config,
pkgs,
...
}: {
imports = [
./style.nix
];
programs.waybar = {
enable = true;
settings = {
mainBar = {
reload_style_on_change = true;
layer = "top";
position = "top";
spacing = 0;
height = 26;
modules-left = ["custom/omarchy" "hyprland/workspaces"];
modules-center = ["clock" "custom/update" "custom/screenrecording-indicator"];
modules-right = [
"group/tray-expander"
"bluetooth"
"network"
"pulseaudio"
"cpu"
"battery"
];
"hyprland/workspaces" = {
on-click = "activate";
format = "{icon}";
format-icons = {
"default" = "";
"1" = "1";
"2" = "2";
"3" = "3";
"4" = "4";
"5" = "5";
"6" = "6";
"7" = "7";
"8" = "8";
"9" = "9";
"10" = "0";
"active" = "󱓻";
};
persistent-workspaces = {
"1" = [];
"2" = [];
"3" = [];
"4" = [];
"5" = [];
};
};
"custom/omarchy" = {
format = "<span font='omarchy'>\ue900</span>";
on-click = "omarchy-menu";
on-click-right = "xdg-terminal-exec";
tooltip-format = "Omarchy Menu\n\nSuper + Alt + Space";
};
"custom/update" = {
format = "";
exec = "omarchy-update-available";
on-click = "omarchy-launch-floating-terminal-with-presentation omarchy-update";
tooltip-format = "Omarchy update available";
signal = 7;
interval = 21600;
};
"cpu" = {
interval = 5;
format = "󰍛";
on-click = "omarchy-launch-or-focus-tui btop";
on-click-right = "alacritty";
};
"clock" = {
format = "{:L%A %H:%M}";
format-alt = "{:L%d %B W%V %Y}";
tooltip = false;
on-click-right = "omarchy-launch-floating-terminal-with-presentation omarchy-tz-select";
};
"network" = {
format-icons = ["󰤯" "󰤟" "󰤢" "󰤥" "󰤨"];
format = "{icon}";
format-wifi = "{icon}";
format-ethernet = "󰀂";
format-disconnected = "󰤮";
tooltip-format-wifi = "{essid} ({frequency} GHz)\n{bandwidthDownBytes} {bandwidthUpBytes}";
tooltip-format-ethernet = "{bandwidthDownBytes} {bandwidthUpBytes}";
tooltip-format-disconnected = "Disconnected";
interval = 3;
spacing = 1;
on-click = "omarchy-launch-wifi";
};
"battery" = {
format = "{capacity}% {icon}";
format-discharging = "{icon}";
format-charging = "{icon}";
format-plugged = "";
format-icons = {
charging = ["󰢜" "󰂆" "󰂇" "󰂈" "󰢝" "󰂉" "󰢞" "󰂊" "󰂋" "󰂅"];
default = ["󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"];
};
format-full = "󰂅";
tooltip-format-discharging = "{power:>1.0f}W {capacity}%";
tooltip-format-charging = "{power:>1.0f}W {capacity}%";
interval = 5;
on-click = "omarchy-menu power";
states = {
warning = 20;
critical = 10;
};
};
"bluetooth" = {
format = "";
format-disabled = "󰂲";
format-connected = "󰂱";
format-no-controller = "";
tooltip-format = "Devices connected: {num_connections}";
on-click = "omarchy-launch-bluetooth";
};
"pulseaudio" = {
format = "{icon}";
on-click = "omarchy-launch-or-focus-tui wiremix";
on-click-right = "pamixer -t";
tooltip-format = "Playing at {volume}%";
scroll-step = 5;
format-muted = "";
format-icons = {
default = ["" "" ""];
};
};
"group/tray-expander" = {
orientation = "inherit";
drawer = {
transition-duration = 600;
children-class = "tray-group-item";
};
modules = ["custom/expand-icon" "tray"];
};
"custom/expand-icon" = {
format = "";
tooltip = false;
};
"custom/screenrecording-indicator" = {
on-click = "omarchy-cmd-screenrecord";
# Note: $OMARCHY_PATH must be defined in your environment
exec = "$OMARCHY_PATH/default/waybar/indicators/screen-recording.sh";
signal = 8;
return-type = "json";
};
"tray" = {
icon-size = 12;
spacing = 17;
};
};
};
};
}
-88
View File
@@ -1,88 +0,0 @@
{
programs.waybar = {
style = ''
* {
background-color: #cdd6f4;
color: #181824;
border: none;
border-radius: 0;
min-height: 0;
font-family: 'JetBrainsMono Nerd Font';
font-size: 12px;
}
.modules-left {
margin-left: 8px;
}
.modules-right {
margin-right: 8px;
}
#workspaces button {
all: initial;
padding: 0 6px;
margin: 0 1.5px;
min-width: 9px;
}
#workspaces button.empty {
opacity: 0.5;
}
#cpu,
#battery,
#pulseaudio,
#custom-omarchy,
#custom-screenrecording-indicator,
#custom-update {
min-width: 12px;
margin: 0 7.5px;
}
#tray {
margin-right: 16px;
}
#bluetooth {
margin-right: 17px;
}
#network {
margin-right: 13px;
}
#custom-expand-icon {
margin-right: 18px;
}
tooltip {
padding: 2px;
}
#custom-update {
font-size: 10px;
}
#clock {
margin-left: 8.75px;
}
.hidden {
opacity: 0;
}
#custom-screenrecording-indicator {
min-width: 12px;
margin-left: 8.75px;
font-size: 10px;
}
#custom-screenrecording-indicator.active {
color: #a55555;
}
'';
};
}
-14
View File
@@ -1,14 +0,0 @@
{pkgs, ...}: {
programs.yazi = {
enable = true;
enableFishIntegration = true;
settings = {
manager = {
show_hidden = true;
sort_by = "natural";
sort_dir_first = true;
linemode = "size";
};
};
};
}
-9
View File
@@ -1,9 +0,0 @@
{
programs.zoxide = {
enable = true;
enableFishIntegration = true;
options = [
"--cmd cd"
];
};
}
-36
View File
@@ -1,36 +0,0 @@
{
myConfig = {
nixos = {
username = "kenji";
hostname = "hakase";
timezone = "America/Chicago";
shell = "fish";
};
git = {
username = "kenji";
email = "kenji@hakase";
defaultBranch = "master";
};
ssh = {
extraConfig = ''
Host macair
User biscuit
HostName 192.168.68.81
Host gitea.sakamoto.dev
User kenji
ProxyCommand cloudflared access ssh --hostname %h
HostName gitea.sakamoto.dev
'';
};
terminal = {
default = ["ghostty.desktop"];
aliases = {
update = "sudo nixos-rebuild switch --flake ~/.config/nixos-new/#hakase";
};
};
hyprland = {
monitors = ["HDMI-A-1, 1920x1080@120, auto, 1"];
};
};
}
Generated
+219 -532
View File
@@ -1,5 +1,48 @@
{ {
"nodes": { "nodes": {
"ags": {
"inputs": {
"astal": "astal",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1744557573,
"narHash": "sha256-XAyj0iDuI51BytJ1PwN53uLpzTDdznPDQFG4RwihlTQ=",
"owner": "aylur",
"repo": "ags",
"rev": "3ed9737bdbc8fc7a7c7ceef2165c9109f336bff6",
"type": "github"
},
"original": {
"owner": "aylur",
"repo": "ags",
"type": "github"
}
},
"ags_2": {
"inputs": {
"astal": "astal_3",
"nixpkgs": [
"hyprpanel",
"nixpkgs"
]
},
"locked": {
"lastModified": 1736090999,
"narHash": "sha256-B5CJuHqfJrzPa7tObK0H9669/EClSHpa/P7B9EuvElU=",
"owner": "aylur",
"repo": "ags",
"rev": "5527c3c07d92c11e04e7fd99d58429493dba7e3c",
"type": "github"
},
"original": {
"owner": "aylur",
"repo": "ags",
"type": "github"
}
},
"aquamarine": { "aquamarine": {
"inputs": { "inputs": {
"hyprutils": [ "hyprutils": [
@@ -20,11 +63,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1765900596, "lastModified": 1745357003,
"narHash": "sha256-+hn8v9jkkLP9m+o0Nm5SiEq10W0iWDSotH2XfjU45fA=", "narHash": "sha256-jYwzQkv1r7HN/4qrAuKp+NR4YYNp2xDrOX5O9YVqkWo=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "aquamarine", "repo": "aquamarine",
"rev": "d83c97f8f5c0aae553c1489c7d9eff3eadcadace", "rev": "a19cf76ee1a15c1c12083fa372747ce46387289f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -33,36 +76,77 @@
"type": "github" "type": "github"
} }
}, },
"devshell": { "astal": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nixovim", "ags",
"nixvim",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1735644329, "lastModified": 1742571008,
"narHash": "sha256-tO3HrHriyLvipc4xr+Ewtdlo7wM1OjXNjlWRgmM7peY=", "narHash": "sha256-5WgfJAeBpxiKbTR/gJvxrGYfqQRge5aUDcGKmU1YZ1Q=",
"owner": "numtide", "owner": "aylur",
"repo": "devshell", "repo": "astal",
"rev": "f7795ede5b02664b57035b3b757876703e2c3eac", "rev": "dc0e5d37abe9424c53dcbd2506a4886ffee6296e",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "numtide", "owner": "aylur",
"repo": "devshell", "repo": "astal",
"type": "github"
}
},
"astal_2": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1747093850,
"narHash": "sha256-SaHAtzUyfm4urAcUEZlBFn7dWhoDqA6kaeFZ11CCTf8=",
"owner": "aylur",
"repo": "astal",
"rev": "4820a3e37cc8eb81db6ed991528fb23472a8e4de",
"type": "github"
},
"original": {
"owner": "aylur",
"repo": "astal",
"type": "github"
}
},
"astal_3": {
"inputs": {
"nixpkgs": [
"hyprpanel",
"ags",
"nixpkgs"
]
},
"locked": {
"lastModified": 1735172721,
"narHash": "sha256-rtEAwGsHSppnkR3Qg3eRJ6Xh/F84IY9CrBBLzYabalY=",
"owner": "aylur",
"repo": "astal",
"rev": "6c84b64efc736e039a8a10774a4a1bf772c37aa2",
"type": "github"
},
"original": {
"owner": "aylur",
"repo": "astal",
"type": "github" "type": "github"
} }
}, },
"flake-compat": { "flake-compat": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1761588595, "lastModified": 1696426674,
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -71,106 +155,6 @@
"type": "github" "type": "github"
} }
}, },
"flake-compat_2": {
"locked": {
"lastModified": 1733328505,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
"revCount": 69,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1738453229,
"narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"nixovim",
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1738453229,
"narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"git-hooks": {
"inputs": {
"flake-compat": [
"nixovim",
"nixvim",
"flake-compat"
],
"gitignore": "gitignore_2",
"nixpkgs": [
"nixovim",
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1737465171,
"narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitignore": { "gitignore": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -193,29 +177,6 @@
"type": "github" "type": "github"
} }
}, },
"gitignore_2": {
"inputs": {
"nixpkgs": [
"nixovim",
"nixvim",
"git-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -223,33 +184,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1766387499, "lastModified": 1747106332,
"narHash": "sha256-AjK3/UKDzeXFeYNLVBaJ3+HLE9he1g5UrlNd4/BM3eA=", "narHash": "sha256-mOdRWJzJAMp0hF8aSResyp8BeOO5VoSng1uqtEq+8xI=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "527ad07e6625302b648ed3b28c34b62a79bd103e", "rev": "535a541b429c1e89f0955c160df1d6d2bfeaf802",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_2": {
"inputs": {
"nixpkgs": [
"nixovim",
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1738878603,
"narHash": "sha256-fmhq8B3MvQLawLbMO+LWLcdC2ftLMmwSk+P29icJ3tE=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "433799271274c9f2ab520a49527ebfe2992dcfbd",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -274,11 +213,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1753964049, "lastModified": 1745948457,
"narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=", "narHash": "sha256-lzTV10FJTCGNtMdgW5YAhCAqezeAzKOd/97HbQK8GTU=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprcursor", "repo": "hyprcursor",
"rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5", "rev": "ac903e80b33ba6a88df83d02232483d99f327573",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -303,11 +242,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1763733840, "lastModified": 1745015490,
"narHash": "sha256-JnET78yl5RvpGuDQy3rCycOCkiKoLr5DN1fPhRNNMco=", "narHash": "sha256-apEJ9zoSzmslhJ2vOKFcXTMZLUFYzh1ghfB6Rbw3Low=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprgraphics", "repo": "hyprgraphics",
"rev": "8f1bec691b2d198c60cccabca7a94add2df4ed1a", "rev": "60754910946b4e2dc1377b967b7156cb989c5873",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -321,12 +260,11 @@
"aquamarine": "aquamarine", "aquamarine": "aquamarine",
"hyprcursor": "hyprcursor", "hyprcursor": "hyprcursor",
"hyprgraphics": "hyprgraphics", "hyprgraphics": "hyprgraphics",
"hyprland-guiutils": "hyprland-guiutils",
"hyprland-protocols": "hyprland-protocols", "hyprland-protocols": "hyprland-protocols",
"hyprland-qtutils": "hyprland-qtutils",
"hyprlang": "hyprlang", "hyprlang": "hyprlang",
"hyprutils": "hyprutils", "hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner", "hyprwayland-scanner": "hyprwayland-scanner",
"hyprwire": "hyprwire",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
@@ -335,64 +273,16 @@
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1766498696, "lastModified": 1747052147,
"narHash": "sha256-74qO6ynwUav+QqNhBVn/4yoBCpU6r3/eCkX/V11uL+E=", "narHash": "sha256-c0e3V7Rqu2DZuix1lRBXedInzSskow8ssQSsmqkW38o=",
"ref": "refs/heads/main",
"rev": "f7f357f15f83612078eb0919ca08b71cac01c25e",
"revCount": 6741,
"submodules": true,
"type": "git",
"url": "https://github.com/hyprwm/Hyprland"
},
"original": {
"submodules": true,
"type": "git",
"url": "https://github.com/hyprwm/Hyprland"
}
},
"hyprland-guiutils": {
"inputs": {
"aquamarine": [
"hyprland",
"aquamarine"
],
"hyprgraphics": [
"hyprland",
"hyprgraphics"
],
"hyprlang": [
"hyprland",
"hyprlang"
],
"hyprtoolkit": "hyprtoolkit",
"hyprutils": [
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1765643131,
"narHash": "sha256-CCGohW5EBIRy4B7vTyBMqPgsNcaNenVad/wszfddET0=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprland-guiutils", "repo": "Hyprland",
"rev": "e50ae912813bdfa8372d62daf454f48d6df02297", "rev": "da3583fd5e86044d02af9fcfac84724e02545336",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprland-guiutils", "repo": "Hyprland",
"type": "github" "type": "github"
} }
}, },
@@ -408,11 +298,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1765214753, "lastModified": 1743714874,
"narHash": "sha256-P9zdGXOzToJJgu5sVjv7oeOGPIIwrd9hAUAP3PsmBBs=", "narHash": "sha256-yt8F7NhMFCFHUHy/lNjH/pjZyIDFNk52Q4tivQ31WFo=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprland-protocols", "repo": "hyprland-protocols",
"rev": "3f3860b869014c00e8b9e0528c7b4ddc335c21ab", "rev": "3a5c2bda1c1a4e55cc1330c782547695a93f05b2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -421,6 +311,74 @@
"type": "github" "type": "github"
} }
}, },
"hyprland-qt-support": {
"inputs": {
"hyprlang": [
"hyprland",
"hyprland-qtutils",
"hyprlang"
],
"nixpkgs": [
"hyprland",
"hyprland-qtutils",
"nixpkgs"
],
"systems": [
"hyprland",
"hyprland-qtutils",
"systems"
]
},
"locked": {
"lastModified": 1737634706,
"narHash": "sha256-nGCibkfsXz7ARx5R+SnisRtMq21IQIhazp6viBU8I/A=",
"owner": "hyprwm",
"repo": "hyprland-qt-support",
"rev": "8810df502cdee755993cb803eba7b23f189db795",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-qt-support",
"type": "github"
}
},
"hyprland-qtutils": {
"inputs": {
"hyprland-qt-support": "hyprland-qt-support",
"hyprlang": [
"hyprland",
"hyprlang"
],
"hyprutils": [
"hyprland",
"hyprland-qtutils",
"hyprlang",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1745951494,
"narHash": "sha256-2dModE32doiyQMmd6EDAQeZnz+5LOs6KXyE0qX76WIg=",
"owner": "hyprwm",
"repo": "hyprland-qtutils",
"rev": "4be1d324faf8d6e82c2be9f8510d299984dfdd2e",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-qtutils",
"type": "github"
}
},
"hyprlang": { "hyprlang": {
"inputs": { "inputs": {
"hyprutils": [ "hyprutils": [
@@ -437,11 +395,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1764612430, "lastModified": 1746655412,
"narHash": "sha256-54ltTSbI6W+qYGMchAgCR6QnC1kOdKXN6X6pJhOWxFg=", "narHash": "sha256-kVQ0bHVtX6baYxRWWIh4u3LNJZb9Zcm2xBeDPOGz5BY=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprlang", "repo": "hyprlang",
"rev": "0d00dc118981531aa731150b6ea551ef037acddd", "rev": "557241780c179cf7ef224df392f8e67dab6cef83",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -450,55 +408,24 @@
"type": "github" "type": "github"
} }
}, },
"hyprtoolkit": { "hyprpanel": {
"inputs": { "inputs": {
"aquamarine": [ "ags": "ags_2",
"hyprland",
"hyprland-guiutils",
"aquamarine"
],
"hyprgraphics": [
"hyprland",
"hyprland-guiutils",
"hyprgraphics"
],
"hyprlang": [
"hyprland",
"hyprland-guiutils",
"hyprlang"
],
"hyprutils": [
"hyprland",
"hyprland-guiutils",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprland-guiutils",
"hyprwayland-scanner"
],
"nixpkgs": [ "nixpkgs": [
"hyprland",
"hyprland-guiutils",
"nixpkgs" "nixpkgs"
],
"systems": [
"hyprland",
"hyprland-guiutils",
"systems"
] ]
}, },
"locked": { "locked": {
"lastModified": 1764592794, "lastModified": 1747029715,
"narHash": "sha256-7CcO+wbTJ1L1NBQHierHzheQGPWwkIQug/w+fhTAVuU=", "narHash": "sha256-F75IlhzUF+VTPOq+u2Exj+6PjHWPkLcBWDnhO+Vvch4=",
"owner": "hyprwm", "owner": "Jas-SinghFSU",
"repo": "hyprtoolkit", "repo": "Hyprpanel",
"rev": "5cfe0743f0e608e1462972303778d8a0859ee63e", "rev": "2bb1449fb6ad60a736ce6fb4de2037d7655545ed",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "hyprwm", "owner": "Jas-SinghFSU",
"repo": "hyprtoolkit", "repo": "Hyprpanel",
"type": "github" "type": "github"
} }
}, },
@@ -514,11 +441,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1766160771, "lastModified": 1746635225,
"narHash": "sha256-roINUGikWRqqgKrD4iotKbGj3ZKJl3hjMz5l/SyKrHw=", "narHash": "sha256-W9G9bb0zRYDBRseHbVez0J8qVpD5QbizX67H/vsudhM=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprutils", "repo": "hyprutils",
"rev": "5ac060bfcf2f12b3a6381156ebbc13826a05b09f", "rev": "674ea57373f08b7609ce93baff131117a0dfe70d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -539,11 +466,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1763640274, "lastModified": 1739870480,
"narHash": "sha256-Uan1Nl9i4TF/kyFoHnTq1bd/rsWh4GAK/9/jDqLbY5A=", "narHash": "sha256-SiDN5BGxa/1hAsqhgJsS03C3t2QrLgBT8u+ENJ0Qzwc=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprwayland-scanner", "repo": "hyprwayland-scanner",
"rev": "f6cf414ca0e16a4d30198fd670ec86df3c89f671", "rev": "206367a08dc5ac4ba7ad31bdca391d098082e64b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -552,206 +479,22 @@
"type": "github" "type": "github"
} }
}, },
"hyprwire": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1766253200,
"narHash": "sha256-26qPwrd3od+xoYVywSB7hC2cz9ivN46VPLlrsXyGxvE=",
"owner": "hyprwm",
"repo": "hyprwire",
"rev": "1079777525b30a947c8d657fac158e00ae85de9d",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprwire",
"type": "github"
}
},
"ixx": {
"inputs": {
"flake-utils": [
"nixovim",
"nixvim",
"nuschtosSearch",
"flake-utils"
],
"nixpkgs": [
"nixovim",
"nixvim",
"nuschtosSearch",
"nixpkgs"
]
},
"locked": {
"lastModified": 1729958008,
"narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=",
"owner": "NuschtOS",
"repo": "ixx",
"rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"ref": "v0.0.6",
"repo": "ixx",
"type": "github"
}
},
"nix-darwin": {
"inputs": {
"nixpkgs": [
"nixovim",
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1738743987,
"narHash": "sha256-O3bnAfsObto6l2tQOmQlrO6Z2kD6yKwOWfs7pA0CpOc=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "ae406c04577ff9a64087018c79b4fdc02468c87c",
"type": "github"
},
"original": {
"owner": "lnl7",
"repo": "nix-darwin",
"type": "github"
}
},
"nixovim": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": [
"nixpkgs"
],
"nixvim": "nixvim",
"rust-overlay": [
"rust-overlay"
]
},
"locked": {
"lastModified": 1764015463,
"narHash": "sha256-CfkyQKOVhrSENBoUiCAZbyZtS9lfLlJXUj2kw8i+xtU=",
"ref": "refs/heads/master",
"rev": "0231245a5ba7bcb9dd81373474795514d03a4c30",
"revCount": 70,
"type": "git",
"url": "https://git.sakamoto.dev/kenji/nixovim.git"
},
"original": {
"type": "git",
"url": "https://git.sakamoto.dev/kenji/nixovim.git"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1738797219, "lastModified": 1746904237,
"narHash": "sha256-KRwX9Z1XavpgeSDVM/THdFd6uH8rNm/6R+7kIbGa+2s=", "narHash": "sha256-3e+AVBczosP5dCLQmMoMEogM57gmZ2qrVSrmq9aResQ=",
"owner": "NixOS", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "1da52dd49a127ad74486b135898da2cef8c62665", "rev": "d89fc19e405cb2d55ce7cc114356846a0ee5e956",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "nixos",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1738452942,
"narHash": "sha256-vJzFZGaCpnmo7I6i416HaBLpC+hvcURh/BQwROcGIp8=",
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1766309749,
"narHash": "sha256-3xY8CZ4rSnQ0NqGhMKAy5vgC+2IVK0NoVEzDoOh4DA4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a6531044f6d0bef691ea18d4d4ce44d0daa6e816",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable", "ref": "nixos-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixvim": {
"inputs": {
"devshell": "devshell",
"flake-compat": "flake-compat_2",
"flake-parts": "flake-parts_2",
"git-hooks": "git-hooks",
"home-manager": "home-manager_2",
"nix-darwin": "nix-darwin",
"nixpkgs": "nixpkgs",
"nuschtosSearch": "nuschtosSearch",
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1739353096,
"narHash": "sha256-w/T2uYCoq4k6K46GX2CMGWsKfMvcqnxC41LIgnvGifE=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "78b6f8e1e5b37a7789216e17a96ebc117660f0e7",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixvim",
"type": "github"
}
},
"nuschtosSearch": {
"inputs": {
"flake-utils": "flake-utils",
"ixx": "ixx",
"nixpkgs": [
"nixovim",
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1738508923,
"narHash": "sha256-4DaDrQDAIxlWhTjH6h/+xfG05jt3qDZrZE/7zDLQaS4=",
"owner": "NuschtOS",
"repo": "search",
"rev": "86e2038290859006e05ca7201425ea5b5de4aecb",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"repo": "search",
"type": "github"
}
},
"pre-commit-hooks": { "pre-commit-hooks": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
@@ -762,11 +505,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1765911976, "lastModified": 1746537231,
"narHash": "sha256-t3T/xm8zstHRLx+pIHxVpQTiySbKqcQbK+r+01XVKc0=", "narHash": "sha256-Wb2xeSyOsCoTCTj7LOoD6cdKLEROyFAArnYoS+noCWo=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "b68b780b69702a090c8bb1b973bab13756cc7a27", "rev": "fa466640195d38ec97cf0493d6d6882bc4d14969",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -777,31 +520,12 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"ags": "ags",
"astal": "astal_2",
"home-manager": "home-manager", "home-manager": "home-manager",
"hyprland": "hyprland", "hyprland": "hyprland",
"nixovim": "nixovim", "hyprpanel": "hyprpanel",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs"
"rust-overlay": "rust-overlay"
}
},
"rust-overlay": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1766457837,
"narHash": "sha256-aeBbkQ0HPFNOIsUeEsXmZHXbYq4bG8ipT9JRlCcKHgU=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "2c7510a559416d07242621d036847152d970612b",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
} }
}, },
"systems": { "systems": {
@@ -819,43 +543,6 @@
"type": "github" "type": "github"
} }
}, },
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"nixovim",
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1738680491,
"narHash": "sha256-8X7tR3kFGkE7WEF5EXVkt4apgaN85oHZdoTGutCFs6I=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "64dbb922d51a42c0ced6a7668ca008dded61c483",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"xdph": { "xdph": {
"inputs": { "inputs": {
"hyprland-protocols": [ "hyprland-protocols": [
@@ -884,11 +571,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1761431178, "lastModified": 1745871725,
"narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=", "narHash": "sha256-M24SNc2flblWGXFkGQfqSlEOzAGZnMc9QG3GH4K/KbE=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland", "repo": "xdg-desktop-portal-hyprland",
"rev": "4b8801228ff958d028f588f0c2b911dbf32297f9", "rev": "76bbf1a6b1378e4ab5230bad00ad04bc287c969e",
"type": "github" "type": "github"
}, },
"original": { "original": {
+81 -30
View File
@@ -1,51 +1,102 @@
{ {
description = "Hakase Configuration"; description = "A very basic flake";
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs"; # ensures version follows nixpkgs
rust-overlay = { hyprland.url = "github:hyprwm/Hyprland";
url = "github:oxalica/rust-overlay"; hyprland.inputs.nixpkgs.follows = "nixpkgs";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = { astal.url = "github:aylur/astal";
url = "github:nix-community/home-manager"; astal.inputs.nixpkgs.follows = "nixpkgs";
inputs.nixpkgs.follows = "nixpkgs";
}; ags.url = "github:aylur/ags";
hyprland = { ags.inputs.nixpkgs.follows = "nixpkgs";
url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
inputs.nixpkgs.follows = "nixpkgs"; hyprpanel.url = "github:Jas-SinghFSU/Hyprpanel";
}; hyprpanel.inputs.nixpkgs.follows = "nixpkgs";
nixovim = {
url = "git+https://git.sakamoto.dev/kenji/nixovim.git";
inputs.nixpkgs.follows = "nixpkgs";
inputs.rust-overlay.follows = "rust-overlay";
};
}; };
outputs = { outputs = {
self, self,
nixpkgs, nixpkgs,
home-manager, home-manager,
nixovim, ags,
astal,
hyprpanel,
... ...
} @ inputs: let } @ inputs: let
config = import ./config.nix; lib = nixpkgs.lib;
system = "x86_64-linux"; system = "x86_64-linux";
args = pkgs = nixpkgs.legacyPackages.${system};
{
inherit inputs system;
}
// config;
in { in {
# TODO: migrate to another nix file.
# packages.${system}.default = pkgs.stdenv.mkDerivation {
# pname = "marble";
# src = ./marble;
# dontUnpack = true;
#
# nativeBuildInputs = with pkgs; [
# wrapGAppsHook
# gobject-introspection
# ];
#
# buildInputs =
# (with astal.packages.${system}; [
# astal3
# io
# apps
# battery
# bluetooth
# hyprland
# mpris
# network
# notifd
# powerprofiles
# tray
# wireplumber
# ])
# ++ (with pkgs; [
# gjs
# ]);
#
# preFixup = ''
# gappsWrapperArgs+=(
# --prefix PATH : ${with pkgs;
# lib.makeBinPath [
# dart-sass
# fzf
# ]}
# )
# '';
#
# installPhase = ''
# mkdir -p $out/bin
# install $src $out/bin/marble
# '';
# }; # END TODO
nixosConfigurations = { nixosConfigurations = {
hakase = nixpkgs.lib.nixosSystem { biscuit = lib.nixosSystem {
specialArgs = args; specialArgs = {inherit inputs system;};
inherit system;
modules = [ modules = [
home-manager.nixosModules.home-manager ./nixos/configuration.nix
./hosts/hakase/configuration.nix
]; ];
}; };
}; };
homeConfigurations = {
biscuit = home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs {
inherit system;
overlays = [inputs.hyprpanel.overlay];
};
# inherit pkgs;
extraSpecialArgs = {inherit inputs system;};
modules = [./home-manager/home.nix];
};
};
}; };
} }
+26
View File
@@ -0,0 +1,26 @@
{
inputs, outputs, lib, config, pkgs, ...
}: {
imports = [
../modules/editor.nix
../modules/terminal.nix
../modules/wayland.nix
];
home = {
username = "biscuit";
homeDirectory = "/home/biscuit";
};
home.packages = [];
home.sessionVariables = {};
programs.git.enable = true;
programs.neovim.enable = true;
systemd.user.startServices = "sd-switch";
programs.home-manager.enable = true;
home.stateVersion = "23.05";
}
-10
View File
@@ -1,10 +0,0 @@
{pkgs, ...}: {
imports = [
../modules/home/terminal.nix
../modules/home/apps.nix
../modules/home/hyprland.nix
../modules/home/waybar.nix
];
home.stateVersion = "25.05";
}
-11
View File
@@ -1,11 +0,0 @@
{
pkgs,
myConfig,
...
}: {
imports = [
./hardware-configuration.nix
../../modules/system/default.nix
../../modules/system/hyprland.nix
];
}
-33
View File
@@ -1,33 +0,0 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/mapper/luks-f8bd85aa-b08e-472a-b7f6-5e190b9b9714";
fsType = "ext4";
};
boot.initrd.luks.devices."luks-f8bd85aa-b08e-472a-b7f6-5e190b9b9714".device = "/dev/disk/by-uuid/f8bd85aa-b08e-472a-b7f6-5e190b9b9714";
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/72BA-AF9B";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices = [ ];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}
+6
View File
@@ -0,0 +1,6 @@
{ ... }: {
imports = [
../packages/nvim/default.nix
];
}
-8
View File
@@ -1,8 +0,0 @@
{
imports = [
../../apps/yazi/home.nix
../../apps/gemini/home.nix
../../apps/firefox/home.nix
../../apps/starship/home.nix
];
}
-5
View File
@@ -1,5 +0,0 @@
{
imports = [
../../apps/hyprland/home.nix
];
}
-9
View File
@@ -1,9 +0,0 @@
{
imports = [
../../apps/neovim/neovim.nix
../../apps/git/home.nix
../../apps/zoxide/home.nix
../../apps/fish/home.nix
../../apps/ghostty/home.nix
];
}
-6
View File
@@ -1,6 +0,0 @@
{
imports = [
../../apps/waybar/home.nix
../../apps/waybar/deps.nix
];
}
+11
View File
@@ -0,0 +1,11 @@
{ ... }: {
imports = [
../system/firefox/default.nix
../system/astal/default.nix
../system/hyprland/default.nix
../system/fonts/default.nix
../system/cursor/default.nix
../system/development/default.nix
../system/theme/default.nix
];
}
-20
View File
@@ -1,20 +0,0 @@
{pkgs, ...}: {
imports = [
../../system/time.nix
../../system/boot.nix
../../system/amd.nix
../../system/hardware.nix
../../system/home-manager.nix
../../system/services.nix
../../system/user.nix
../../system/version.nix
../../system/fonts.nix
../../system/programs.nix
../../system/security.nix
];
environment.systemPackages = with pkgs; [
# FIXME: must be on their own app
git
cloudflared
];
}
-5
View File
@@ -1,5 +0,0 @@
{
imports = [
../../apps/hyprland/default.nix
];
}
+7
View File
@@ -0,0 +1,7 @@
{ pkgs, ... }: {
imports = [
../packages/zsh/default.nix
../packages/kitty/default.nix
../packages/fastfetch/default.nix
];
}
+8
View File
@@ -0,0 +1,8 @@
{ ... }: {
imports = [
../packages/hyprland/default.nix
../packages/waybar/default.nix
../packages/ags/default.nix
];
}
+105
View File
@@ -0,0 +1,105 @@
{ config, pkgs, inputs, ... }: {
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
../modules/system.nix
];
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
networking.hostName = "nixos"; # Define your hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# Enable networking
networking.networkmanager.enable = true;
# Enable bluetooth
hardware.bluetooth.enable = true;
services.blueman.enable = true;
# Set your time zone.
time.timeZone = "America/Chicago";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8"; LC_TIME = "en_US.UTF-8";
};
# Configure keymap in X11
services.xserver.xkb = {
layout = "us";
variant = "";
};
# Define a user account. Don't forget to set a password with passwd.
users = {
defaultUserShell = pkgs.bash;
users.biscuit = {
isNormalUser = true;
description = "Biscuit";
extraGroups = [ "networkmanager" "wheel" ];
shell = pkgs.zsh;
packages = with pkgs; [];
};
};
# List packages installed in system profile.
environment.systemPackages = with pkgs; [
wl-clipboard
vim # Default editor
wget
git
home-manager
zsh
p7zip
btop
libnotify
astal.apps
];
environment.sessionVariables = {
};
# Enable the OpenSSH daemon.
services.openssh.enable = true;
# Enable non-bash shell
programs.zsh.enable = true;
### ----------------------------------------
### DESKTOP START
services.xserver.displayManager.gdm.enable = true;
hardware = {
# pulseaudio.enable = true;
graphics.enable = true;
nvidia.modesetting.enable = false;
};
### DESKTOP END
### ----------------------------------------
# Enable experimental features
nix.settings.experimental-features = [ "nix-command" "flakes" ];
#nixpkgs = {
# overlays = [
# (final: prev: {
# nvchad = inputs.nvchad4nix.packages.${pkgs.system}.nvchad;
#})
#];
#};
# System state version
system.stateVersion = "24.11"; # Ensure this matches your NixOS version
}
+41
View File
@@ -0,0 +1,41 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/8552e23a-af9f-4af8-947f-9ea6ff1e7195";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/00BB-80E9";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/2a916b88-8039-481b-9c30-4edd0f329eb3"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.eno1.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp1s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}
+2
View File
@@ -0,0 +1,2 @@
node_modules/
@girs/
+13
View File
@@ -0,0 +1,13 @@
import { App } from "astal/gtk3"
import style from "./style.scss"
import Bar from "./widget/Bar"
App.start({
css: style,
instanceName: "js",
requestHandler(request, res) {
print(request)
res("ok")
},
main: () => App.get_monitors().map(Bar),
})
+21
View File
@@ -0,0 +1,21 @@
declare const SRC: string
declare module "inline:*" {
const content: string
export default content
}
declare module "*.scss" {
const content: string
export default content
}
declare module "*.blp" {
const content: string
export default content
}
declare module "*.css" {
const content: string
export default content
}
+6
View File
@@ -0,0 +1,6 @@
{
"name": "astal-shell",
"dependencies": {
"astal": "/home/biscuit/.local/share/ags"
}
}
+107
View File
@@ -0,0 +1,107 @@
@use "sass:color";
$bg: #212223;
$fg: #f1f1f1;
$accent: #378DF7;
$radius: 7px;
window.Bar {
border: none;
box-shadow: none;
background-color: $bg;
color: $fg;
font-size: 1.1em;
font-weight: bold;
label {
margin: 0 8px;
}
.Workspaces {
button {
all: unset;
background-color: transparent;
&:hover label {
background-color: color.adjust($fg, $alpha: -0.84);
border-color: color.adjust($accent, $alpha: -0.8);
}
&:active label {
background-color: color.adjust($fg, $alpha: -0.8)
}
}
label {
transition: 200ms;
padding: 0 8px;
margin: 2px;
border-radius: $radius;
border: 1pt solid transparent;
}
.focused label {
color: $accent;
border-color: $accent;
}
}
.SysTray {
margin-right: 8px;
button {
padding: 0 4px;
}
}
.FocusedClient {
color: $accent;
}
.Media .Cover {
min-height: 1.2em;
min-width: 1.2em;
border-radius: $radius;
background-position: center;
background-size: contain;
}
.Battery label {
padding-left: 0;
margin-left: 0;
}
.AudioSlider {
* {
all: unset;
}
icon {
margin-right: .6em;
}
& {
margin: 0 1em;
}
trough {
background-color: color.adjust($fg, $alpha: -0.8);
border-radius: $radius;
}
highlight {
background-color: $accent;
min-height: .8em;
border-radius: $radius;
}
slider {
background-color: $fg;
border-radius: $radius;
min-height: 1em;
min-width: 1em;
margin: -.2em;
}
}
}
+14
View File
@@ -0,0 +1,14 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"compilerOptions": {
"experimentalDecorators": true,
"strict": true,
"target": "ES2022",
"module": "ES2022",
"moduleResolution": "Bundler",
// "checkJs": true,
// "allowJs": true,
"jsx": "react-jsx",
"jsxImportSource": "astal/gtk3",
}
}
+173
View File
@@ -0,0 +1,173 @@
import { App } from "astal/gtk3"
import { Variable, GLib, bind } from "astal"
import { Astal, Gtk, Gdk } from "astal/gtk3"
import Hyprland from "gi://AstalHyprland"
import Mpris from "gi://AstalMpris"
import Battery from "gi://AstalBattery"
import Wp from "gi://AstalWp"
import Network from "gi://AstalNetwork"
import Tray from "gi://AstalTray"
function SysTray() {
const tray = Tray.get_default()
return <box className="SysTray">
{bind(tray, "items").as(items => items.map(item => (
<menubutton
tooltipMarkup={bind(item, "tooltipMarkup")}
usePopover={false}
actionGroup={bind(item, "actionGroup").as(ag => ["dbusmenu", ag])}
menuModel={bind(item, "menuModel")}>
<icon gicon={bind(item, "gicon")} />
</menubutton>
)))}
</box>
}
function Wifi() {
const network = Network.get_default()
const wifi = bind(network, "wifi")
return <box visible={wifi.as(Boolean)}>
{wifi.as(wifi => wifi && (
<icon
tooltipText={bind(wifi, "ssid").as(String)}
className="Wifi"
icon={bind(wifi, "iconName")}
/>
))}
</box>
}
function AudioSlider() {
const speaker = Wp.get_default()?.audio.defaultSpeaker!
return <box className="AudioSlider" css="min-width: 140px">
<icon icon={bind(speaker, "volumeIcon")} />
<slider
hexpand
onDragged={({ value }) => speaker.volume = value}
value={bind(speaker, "volume")}
/>
</box>
}
function BatteryLevel() {
const bat = Battery.get_default()
return <box className="Battery"
visible={bind(bat, "isPresent")}>
<icon icon={bind(bat, "batteryIconName")} />
<label label={bind(bat, "percentage").as(p =>
`${Math.floor(p * 100)} %`
)} />
</box>
}
function Media() {
const mpris = Mpris.get_default()
return <box className="Media">
{bind(mpris, "players").as(ps => ps[0] ? (
<box>
<box
className="Cover"
valign={Gtk.Align.CENTER}
css={bind(ps[0], "coverArt").as(cover =>
`background-image: url('${cover}');`
)}
/>
<label
label={bind(ps[0], "metadata").as(() =>
`${ps[0].title} - ${ps[0].artist}`
)}
/>
</box>
) : (
<label label="Biscuit" />
))}
</box>
}
function Workspaces() {
const hypr = Hyprland.get_default();
return (
<box className="Workspaces">
{bind(hypr, "focusedWorkspace").as((fw) => {
if (!fw) return null;
// Determine the current chunk of 5 visible workspace buttons
const currentChunkStart = Math.floor((fw.id - 1) / 5) * 5 + 1;
const visibleIds = Array.from({ length: 5 }, (_, i) => currentChunkStart + i);
return visibleIds.map((id) => {
// Try to get the real workspace, fall back to a dummy one if it doesn't exist
const ws =
hypr.workspaces.find((w) => w.id === id) ??
Hyprland.Workspace.dummy(id, null);
return (
<button
className={fw.id === id ? "focused" : ""}
onClick={() => ws.focus()}
>
{id}
</button>
);
});
})}
</box>
);
}
function FocusedClient() {
const hypr = Hyprland.get_default()
const focused = bind(hypr, "focusedClient")
return <box
className="Focused"
visible={focused.as(Boolean)}>
{focused.as(client => (
client && <label label={bind(client, "title").as(String)} />
))}
</box>
}
function Time({ format = "%H:%M %a %b %e" }) {
const time = Variable<string>("").poll(1000, () =>
GLib.DateTime.new_now_local().format(format)!)
return <label
className="Time"
onDestroy={() => time.drop()}
label={time()}
/>
}
export default function Bar(monitor: Gdk.Monitor) {
const { TOP, LEFT, RIGHT } = Astal.WindowAnchor
return <window
className="Bar"
gdkmonitor={monitor}
exclusivity={Astal.Exclusivity.EXCLUSIVE}
anchor={TOP | LEFT | RIGHT}>
<centerbox>
<box hexpand halign={Gtk.Align.START}>
<Time />
</box>
<box>
<Workspaces />
</box>
<box hexpand halign={Gtk.Align.END} >
<SysTray />
<Wifi />
<AudioSlider />
<BatteryLevel />
</box>
</centerbox>
</window>
}
+45
View File
@@ -0,0 +1,45 @@
{
inputs,
pkgs,
system,
...
}: {
# add the home manager module
imports = [
inputs.ags.homeManagerModules.default
# inputs.astal.homeManagerModules.default
];
home.packages = [
# inputs.astal.packages.${system}.default
];
programs.ags = {
enable = true;
# symlink to ~/.config/ags
configDir = ./custom;
# additional packages to add to gjs's runtime
extraPackages = with inputs.ags.packages.${pkgs.system}; [
apps
auth
battery
bluetooth
hyprland
mpris
network
notifd
powerprofiles
tray
wireplumber
pkgs.fzf
pkgs.dart-sass
pkgs.esbuild
];
};
# programs.astal = {
# enable = true;
# };
}
Submodule packages/ags/epik-shell added at 9002206c8b
+3
View File
@@ -0,0 +1,3 @@
{ ... }: {
programs.fastfetch.enable = true;
}
+16
View File
@@ -0,0 +1,16 @@
#################
### AUTOSTART ###
#################
# Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this:
$terminal = kitty
$bar = ags run
$cursor = Bibata-Modern-Ice
exec-once = hyprctl setcursor $cursor 24
exec-once = $bar
exec-once = [workspace 20 silent] kitty --single-instance --hold fastfetch
exec-once = [workspace 20 silent] firefox
exec-once = [workspace 1] kitty --single-instance --hold fastfetch
+5
View File
@@ -0,0 +1,5 @@
env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24
+191
View File
@@ -0,0 +1,191 @@
################
### MONITORS ###
################
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=,highres@highrr,auto,auto
#####################
### LOOK AND FEEL ###
#####################
# Refer to https://wiki.hyprland.org/Configuring/Variables/
# https://wiki.hyprland.org/Configuring/Variables/#general
general {
gaps_in = 2
gaps_out = 5
border_size = 2
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.inactive_border = rgba(595959aa)
# Set to true enable resizing windows by clicking and dragging on borders and gaps
resize_on_border = false
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false
layout = dwindle
}
# https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration {
rounding = 0
rounding_power = 2
# Change transparency of focused and unfocused windows
active_opacity = 1.0
inactive_opacity = 1.0
shadow {
enabled = true
range = 4
render_power = 3
color = rgba(1a1a1aee)
}
# https://wiki.hyprland.org/Configuring/Variables/#blur
blur {
enabled = true
size = 3
passes = 1
vibrancy = 0.1696
}
}
# https://wiki.hyprland.org/Configuring/Variables/#animations
# animations {
# enabled = yes, please :)
#
# # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
#
# bezier = easeOutQuint,0.23,1,0.32,1
# bezier = easeInOutCubic,0.65,0.05,0.36,1
# bezier = linear,0,0,1,1
# bezier = almostLinear,0.5,0.5,0.75,1.0
# bezier = quick,0.15,0,0.1,1
#
# animation = global, 1, 10, default
# animation = border, 1, 5.39, easeOutQuint
# animation = windows, 1, 4.79, easeOutQuint
# animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
# animation = windowsOut, 1, 1.49, linear, popin 87%
# animation = fadeIn, 1, 1.73, almostLinear
# animation = fadeOut, 1, 1.46, almostLinear
# animation = fade, 1, 3.03, quick
# animation = layers, 1, 3.81, easeOutQuint
# animation = layersIn, 1, 4, easeOutQuint, fade
# animation = layersOut, 1, 1.5, linear, fade
# animation = fadeLayersIn, 1, 1.79, almostLinear
# animation = fadeLayersOut, 1, 1.39, almostLinear
# animation = workspaces, 1, 1.94, almostLinear, fade
# animation = workspacesIn, 1, 1.21, almostLinear, fade
# animation = workspacesOut, 1, 1.94, almostLinear, fade
# }
animations {
enabled = true
# Animation curves
bezier = linear, 0, 0, 1, 1
bezier = md3_standard, 0.2, 0, 0, 1
bezier = md3_decel, 0.05, 0.7, 0.1, 1
bezier = md3_accel, 0.3, 0, 0.8, 0.15
bezier = overshot, 0.05, 0.9, 0.1, 1.1
bezier = crazyshot, 0.1, 1.5, 0.76, 0.92
bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0
bezier = menu_decel, 0.1, 1, 0, 1
bezier = menu_accel, 0.38, 0.04, 1, 0.07
bezier = easeInOutCirc, 0.85, 0, 0.15, 1
bezier = easeOutCirc, 0, 0.55, 0.45, 1
bezier = easeOutExpo, 0.16, 1, 0.3, 1
bezier = softAcDecel, 0.26, 0.26, 0.15, 1
bezier = md2, 0.4, 0, 0.2, 1 # use with .2s duration
# Animation configs
animation = windows, 1, 3, md3_decel, popin 60%
animation = windowsIn, 1, 3, md3_decel, popin 60%
animation = windowsOut, 1, 3, md3_accel, popin 60%
animation = border, 1, 10, default
animation = fade, 1, 3, md3_decel
# animation = layers, 1, 2, md3_decel, slide
animation = layersIn, 1, 3, menu_decel, slide
animation = layersOut, 1, 1.6, menu_accel
animation = fadeLayersIn, 1, 2, menu_decel
animation = fadeLayersOut, 1, 0.5, menu_accel
animation = workspaces, 1, 7, menu_decel, slide
# animation = workspaces, 1, 2.5, softAcDecel, slide
# animation = workspaces, 1, 7, menu_decel, slidefade 15%
# animation = specialWorkspace, 1, 3, md3_decel, slidefadevert 15%
animation = specialWorkspace, 1, 3, md3_decel, slidevert
}
# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
# "Smart gaps" / "No gaps when only"
# uncomment all if you wish to use that.
# workspace = w[tv1], gapsout:0, gapsin:0
# workspace = f[1], gapsout:0, gapsin:0
# windowrule = bordersize 0, floating:0, onworkspace:w[tv1]
# windowrule = rounding 0, floating:0, onworkspace:w[tv1]
# windowrule = bordersize 0, floating:0, onworkspace:f[1]
# windowrule = rounding 0, floating:0, onworkspace:f[1]
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
dwindle {
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true # You probably want this
}
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
master {
new_status = master
}
# https://wiki.hyprland.org/Configuring/Variables/#misc
misc {
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :(
}
#############
### INPUT ###
#############
# https://wiki.hyprland.org/Configuring/Variables/#input
input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_rules =
follow_mouse = 1
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
touchpad {
natural_scroll = false
}
numlock_by_default = true
}
# https://wiki.hyprland.org/Configuring/Variables/#gestures
gestures {
workspace_swipe = false
}
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
device {
name = epic-mouse-v1
sensitivity = -0.5
}
+76
View File
@@ -0,0 +1,76 @@
###################
### KEYBINDINGS ###
###################
# See https://wiki.hyprland.org/Configuring/Keywords/
$mainMod = SUPER # Sets "Windows" key as main modifier
$terminal = kitty --single-instance
$browser = firefox
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, Return, exec, $terminal
bind = $mainMod, Q, killactive,
bind = $mainMod, M, exit,
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, V, togglefloating,
bind = $mainMod, R, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, B, togglesplit, # dwindle
bind = $mainMod, W, exec, $browser
# Move focus with mainMod + arrow keys
bind = $mainMod, H, movefocus, l
bind = $mainMod, L, movefocus, r
bind = $mainMod, K, movefocus, u
bind = $mainMod, J, 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
# Laptop multimedia keys for volume and LCD brightness
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+
bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%-
# Requires playerctl
bindl = , XF86AudioNext, exec, playerctl next
bindl = , XF86AudioPause, exec, playerctl play-pause
bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioPrev, exec, playerctl previous
+15
View File
@@ -0,0 +1,15 @@
##############################
### WINDOWS AND WORKSPACES ###
##############################
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
# Example windowrule
# windowrule = float,class:^(kitty)$,title:^(kitty)$
# Ignore maximize requests from apps. You'll probably like this.
windowrule = suppressevent maximize, class:.*
# Fix some dragging issues with XWayland
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
+13
View File
@@ -0,0 +1,13 @@
{ pkgs, ... }: {
home.file.".config/hypr/hyprland.conf" = {
source = builtins.toPath ./hyprland.conf;
force = true;
};
home.file.".config/hypr/hyprland" = {
source = builtins.toPath ./custom;
recursive = true;
force = true;
};
}
+6
View File
@@ -0,0 +1,6 @@
source=./hyprland/keybinds.conf
source=./hyprland/autostart.conf
source=./hyprland/env.conf
source=./hyprland/general.conf
source=./hyprland/rules.conf
+14
View File
@@ -0,0 +1,14 @@
{ pkgs, ... }:
{
home.packages = [
pkgs.kitty
];
programs.kitty.enable = true;
programs.kitty.settings = {
confirm_os_window_close = 0;
window_padding_width = 10;
font_size = 12.0;
};
}
+26
View File
@@ -0,0 +1,26 @@
{ pkgs, ... }:
let
nvimSource = pkgs.fetchFromGitea {
domain = "git.sakamoto.dev";
owner = "kenji";
repo = "nvim";
rev = "5fc3341ac43b35fd4032c07925927d7f1e82886c";
sha256 = "sha256-YbP814fKOFuCWBRwlccd4nx/h8sdMgiJQu54thRLsK8=";
};
in {
home.packages = [
pkgs.lazygit
pkgs.ripgrep
];
home.file.".config/nvim" = {
# BUG requires --impure
source = /home/biscuit/Nixos/packages/nvim/nvchad;
# source = nvimSource;
recursive = true;
force = true;
};
# Example use: provide it as a source
# You could pass `nvimSource` to a program, or maybe use it in home.file, etc.
}
Submodule packages/nvim/nvchad added at 2b4293a4c1
+152
View File
@@ -0,0 +1,152 @@
{
"layer": "top",
"position": "top",
"height": 45,
"spacing": 0,
"modules-left": [
"hyprland/workspaces",
"tray",
"custom/lock",
"custom/reboot",
"custom/power",
"clock"
],
"modules-center": ["hyprland/window"],
"modules-right": [
"network",
"battery",
"bluetooth",
"pulseaudio",
"backlight",
"custom/temperature",
"memory",
"cpu"
],
"hyprland/workspaces": {
"disable-scroll": false,
"all-outputs": true,
"format": "{icon}",
"on-click": "activate",
"persistent-workspaces": {
"*":[1,2,3,4,5,6,7]
},
"format-icons":{
"1": "󰣇",
"2": "",
"3": "",
"4": "󰇮",
"5": "",
"6": "",
"7": "",
"active": "󱓻"
}
},
"custom/lock": {
"format": "  ",
"on-click": "hyprlock",
"tooltip": true,
"tooltip-format": "锁屏"
},
"custom/reboot": {
"format": "  ",
"on-click": "systemctl reboot",
"tooltip": true,
"tooltip-format": "重启"
},
"custom/power": {
"format": "  ",
"on-click": "systemctl poweroff",
"tooltip": true,
"tooltip-format": "关机"
},
"network": {
"format-wifi": " 󰤨 {essid} ",
"format-ethernet": " Wired ",
"tooltip-format": "<span color='#FF1493'> 󰅧 </span>{bandwidthUpBytes} <span color='#00BFFF'> 󰅢 </span>{bandwidthDownBytes}",
"format-linked": " 󱘖 {ifname} (No IP) ",
"format-disconnected": "  Disconnected ",
"format-alt": " 󰤨 {signalStrength}% ",
"interval": 1
},
"battery": {
"states": {
"warning": 30,
"critical": 15
},
"format": " {icon} {capacity}% ",
"format-charging": " 󱐋{capacity}%",
"interval": 1,
"format-icons": ["󰂎", "󰁼", "󰁿", "󰂁", "󰁹"],
"tooltip": true
},
"pulseaudio": {
"format": "{icon}{volume}% ",
"format-muted": " 󰖁 0% ",
"format-icons": {
"headphone": "  ",
"hands-free": "  ",
"headset": "  ",
"phone": "  ",
"portable": "  ",
"car": "  ",
"default": [
"  ",
"  ",
"  "
]
},
"on-click-right": "pavucontrol -t 3",
"on-click": "pactl -- set-sink-mute 0 toggle",
"tooltip": true,
"tooltip-format": "当前系统声音: {volume}%"
},
"custom/temperature": {
"exec": "sensors | awk '/^Package id 0:/ {print int($4)}'",
"format": " {}°C ",
"interval": 5,
"tooltip": true,
"tooltip-format": "当前 CPU 温度: {}°C"
},
"memory": {
"format": "  {used:0.1f}G/{total:0.1f}G ",
"tooltip": true,
"tooltip-format": "当前内存占比: {used:0.2f}G/{total:0.2f}G"
},
"cpu": {
"format": "  {usage}% ",
"tooltip": true
},
"clock": {
"interval": 1,
"timezone": "Asia/Chengdu",
"format": "  {:%H:%M} ",
"tooltip": true,
"tooltip-format": "{:L%Y 年 %m 月 %d 日, %A}"
},
"tray": {
"icon-size": 17,
"spacing": 6
},
"backlight": {
"device": "intel_backlight",
"format": "{icon}{percent}% ",
"tooltip": true,
"tooltip-format": "当前屏幕亮度: {percent}%",
"format-icons": [
" 󰃞 ", // 暗 - 深灰
" 󰃝 ", // 中 - 灰
" 󰃟 ", // 亮 - 柠檬黄
" 󰃠 " // 最亮 - 金色
]
},
"bluetooth": {
"format": "  {status} ",
"format-connected": "  {device_alias} ",
"format-connected-battery": "  {device_alias}{device_battery_percentage}% ",
"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}%"
}
}
+131
View File
@@ -0,0 +1,131 @@
* {
font-family: "CaskaydiaCove Nerd Font", "Font Awesome 6 Free", "Font Awesome 6 Free Solid";
font-size: 16px;
border-radius: 0;
min-height: 0;
border: none;
font-weight: bold;
}
#workspaces{
background-color: rgba(24,24,37,1.0);
border: none;
box-shadow: none;
}
#tray{
margin: 6px 3px;
background-color: rgba(36, 36, 52, 1.0);
padding: 6px 12px; /* 保持内部间距 */
border-radius: 6px;
border-width: 0px;
}
#waybar {
background-color: #181825;
transition-property: background-color;
transition-duration: 0.5s;
}
#window,
#clock,
#custom-power,
#custom-reboot,
#bluetooth,
#battery,
#pulseaudio,
#backlight,
#custom-temperature,
#memory,
#cpu,
#network,
#custom-lock{
border-radius: 4px;
margin: 6px 3px;
padding: 6px 12px;
background-color: #1e1e2e;
color: #181825;
}
#clock {
background-color: #89b4fa;
}
#custom-power{
background-color: #f38ba8;
}
#custom-reboot{
background-color: #a6e3a1;
}
#bluetooth{
background-color: #f9e2af;
}
#battery{
background-color: #cba6f7;
}
#pulseaudio{
background-color: #89dceb;
}
#backlight{
background-color: #a6a3a1;
}
#custom-temperature{
background-color: #74c7ec;
}
#memory{
background-color: #f7768e;
}
#cpu{
background-color: #f38ba8;
}
#network{
background-color: #fab387;
}
#custom-lock{
background-color: #94e2d5;
}
#window{
background-color: #74c7ec;
}
#waybar.hidden {
opacity: 0.5;
}
#workspaces button {
all: initial;
/* Remove GTK theme values (waybar #1351) */
min-width: 0;
/* Fix weird spacing in materia (waybar #450) */
box-shadow: inset 0 -3px transparent;
/* Use box-shadow instead of border so the text isn't offset */
padding: 6px 18px;
margin: 6px 3px;
border-radius: 4px;
background-color: rgba(36, 36, 52, 1.0);
color: #cdd6f4;
}
#workspaces button.active {
color: #1e1e2e;
background-color: #cdd6f4;
}
#workspaces button:hover {
box-shadow: inherit;
text-shadow: inherit;
color: #1e1e2e;
background-color: #cdd6f4;
}
tooltip {
border-radius: 8px;
padding: 16px;
background-color: #131822;
color: #C0C0C0;
}
tooltip label {
padding: 5px;
background-color: #131822;
color: #C0C0C0;
}
+11
View File
@@ -0,0 +1,11 @@
{ ... }: {
programs.waybar = {
enable = true;
};
home.file.".config/waybar" = {
source = builtins.toPath ./custom;
recursive = true;
force = true;
};
}
+55
View File
@@ -0,0 +1,55 @@
{
"$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
"blocks": [
{
"alignment": "left",
"segments": [
{
"foreground": "#ffdd86",
"style": "plain",
"template": "{{ .UserName }}@{{ .HostName }} ",
"type": "session"
},
{
"foreground": "#42a9ff",
"style": "plain",
"properties": {
"style": "full"
},
"template": "{{ .Path }} ",
"type": "path"
},
{
"properties": {
"branch_icon": "",
"fetch_status": true
},
"style": "plain",
"template": "git:{{ if or (.Working.Changed) (.Staging.Changed) (gt .StashCount 0) }}<#ffdd86>{{ .HEAD }}</>{{ else }}{{ .HEAD }}{{ end }}{{ if .Staging.Changed }} <#98c379>{{ .Staging.String }}</>{{ end }}{{ if .Working.Changed }} <#d16971>{{ .Working.String }}</>{{ end }}",
"type": "git"
}
],
"type": "prompt"
},
{
"alignment": "left",
"newline": true,
"segments": [
{
"foreground": "#ffdd86",
"foreground_templates": [
"{{ if gt .Code 0 }}#42a9ff{{ end }}"
],
"properties": {
"always_enabled": true
},
"style": "plain",
"template": "> ",
"type": "status"
}
],
"type": "prompt"
}
],
"version": 3
}
+74
View File
@@ -0,0 +1,74 @@
{ pkgs, ... }: {
home.packages = [
pkgs.zoxide
pkgs.oh-my-posh
];
programs.zoxide.enable = true;
programs.oh-my-posh.enable = true;
home.file.".config/oh-my-posh/config.omp.json" = {
source = ./custom/config.omp.json;
force = true;
};
programs.zsh = {
enable = true;
plugins = [
# {
# name = "zsh-autocomplete"; # completes history, commands, etc.
# src = pkgs.fetchFromGitHub {
# owner = "marlonrichert";
# repo = "zsh-autocomplete";
# rev = "762afacbf227ecd173e899d10a28a478b4c84a3f";
# sha256 = "1357hygrjwj5vd4cjdvxzrx967f1d2dbqm2rskbz5z1q6jri1hm3";
# }; # e.g., nix-prefetch-url --unpack https://github.com/marlonrichert/zsh-autocomplete/archive/762afacbf227ecd173e899d10a28a478b4c84a3f.tar.gz
# }
{
name = "vi-mode";
src = pkgs.zsh-vi-mode;
file = "share/zsh-vi-mode/zsh-vi-mode.plugin.zsh";
}
{
name = "autosuggestion";
src = pkgs.zsh-autosuggestions;
file = "share/zsh-autosuggestions/zsh-autosuggestions.zsh";
}
];
enableCompletion = true;
syntaxHighlighting.enable = true;
shellAliases = {
ll = "ls -l";
upd = "sudo nixos-rebuild switch --flake ~/Nixos/#biscuit";
hupd = "home-manager switch --flake ~/Nixos/#biscuit --impure";
agu = "pkill gjs & ags run ~/Nixos/packages/ags/custom/app.ts &";
};
history.size = 10000;
oh-my-zsh = {
plugins = [ ];
enable = true;
theme = "robbyrussell";
extraConfig = ''
zstyle ':completion:*' completer _expand _complete _ignored _approximate _expand_alias
zstyle ':autocomplete:*' default-context curcontext
zstyle ':autocomplete:*' min-input 0
setopt HIST_FIND_NO_DUPS
autoload -Uz compinit
compinit
# setopt autocd # cd without writing 'cd'
setopt globdots # show dotfiles in autocomplete list
'';
};
initContent = ''
# Oh-My-Posh initialization for Zsh
eval "$(oh-my-posh init zsh --config ~/.config/oh-my-posh/config.omp.json)"
# zsh-autocomplete
bindkey -M menuselect '^M' .accept-line # run code when selected completion
'';
};
}
-3
View File
@@ -1,3 +0,0 @@
{pkgs, ...}: {
hardware.amdgpu.initrd.enable = true;
}
+13
View File
@@ -0,0 +1,13 @@
{
pkgs,
inputs,
system,
...
}: {
environment.systemPackages = with pkgs; [
astal.io
astal.gjs
astal.hyprland
astal.apps
];
}
-36
View File
@@ -1,36 +0,0 @@
{pkgs, ...}: {
boot = {
consoleLogLevel = 3;
initrd.verbose = false;
kernelParams = [
"quiet"
"splash"
"intremap=on"
"boot.shell_on_fail"
"udev.log_priority=3"
"rd.systemd.show_status=auto"
];
loader = {
systemd-boot = {
enable = true;
};
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot";
};
};
initrd = {
systemd.enable = true;
};
plymouth = {
enable = true;
# themePackages = [
# (pkgs.adi1090x-plymouth-themes.override {
# selected_themes = ["circle_hud"];
# })
# ];
# theme = "circle_hud";
};
};
}
+6
View File
@@ -0,0 +1,6 @@
{ pkgs, ... }: {
environment.systemPackages = with pkgs; [
hyprcursor
bibata-cursors
];
}
@@ -1,5 +1,10 @@
{pkgs, ...}: { {pkgs, ...}: {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
git gcc
rustc
cargo
nodejs
python313
busybox
]; ];
} }
+7
View File
@@ -0,0 +1,7 @@
{ pkgs, ... }: {
environment.systemPackages = with pkgs; [
firefox
];
programs.firefox.enable = true;
}
@@ -1,6 +1,5 @@
{pkgs, ...}: { { pkgs, ... }: {
fonts.packages = with pkgs; [ fonts.packages = with pkgs; [
nerd-fonts.fira-code nerd-fonts.fira-code
nerd-fonts.jetbrains-mono
]; ];
} }
-16
View File
@@ -1,16 +0,0 @@
{pkgs, ...}: {
hardware = {
bluetooth = {
enable = true;
powerOnBoot = true;
};
};
networking = {
networkmanager.enable = true;
firewall = {
enable = true;
allowedTCPPorts = [22 80];
allowedUDPPorts = [53];
};
};
}
-16
View File
@@ -1,16 +0,0 @@
{
specialArgs,
myConfig,
...
}: {
home-manager = {
backupFileExtension = "backup";
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = specialArgs;
users.${myConfig.nixos.username} = import ../home/hakase.nix;
};
imports = [
];
}
+9
View File
@@ -0,0 +1,9 @@
{ ... }: {
programs.hyprland = {
enable = true;
# package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
# portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
xwayland.enable = true;
};
}
-16
View File
@@ -1,16 +0,0 @@
{
pkgs,
myConfig,
...
}: {
programs = {
ssh.extraConfig = myConfig.ssh.extraConfig;
bash.interactiveShellInit = ''
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]; then
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
fi
'';
fish.enable = true;
};
}
-3
View File
@@ -1,3 +0,0 @@
{
security.pam.services.greetd.enableGnomeKeyring = true;
}
-41
View File
@@ -1,41 +0,0 @@
{
pkgs,
myConfig,
...
}: {
services = {
greetd = {
enable = true;
settings = {
initial_session = {
command = "${pkgs.hyprland}/bin/Hyprland";
user = "${myConfig.nixos.username}";
};
default_session = {
command = "${pkgs.tuigreet}/bin/tuigreet --time --remember --cmd Hyprland";
};
};
};
# essentials
openssh.enable = true; # FIXME: remove when done
blueman.enable = true;
# for encryption support for unfree apps
gnome.gnome-keyring.enable = true;
# Complements printer support
printing.enable = true;
avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
};
pipewire = {
enable = true;
alsa = {
enable = true;
};
};
};
}
+13
View File
@@ -0,0 +1,13 @@
{
pkgs,
inputs,
system,
...
}: {
environment.systemPackages = [
pkgs.adw-gtk3
pkgs.colloid-icon-theme
pkgs.colloid-gtk-theme
];
}
-3
View File
@@ -1,3 +0,0 @@
{myConfig, ...}: {
time.timeZone = myConfig.nixos.timezone;
}
-15
View File
@@ -1,15 +0,0 @@
{
pkgs,
myConfig,
...
}: {
users = {
users = {
${myConfig.nixos.username} = {
isNormalUser = true;
extraGroups = ["wheel" "networkmanager" "input" "video"];
useDefaultShell = true;
};
};
};
}
-11
View File
@@ -1,11 +0,0 @@
{pkgs, ...}: {
system.stateVersion = "25.05";
nixpkgs.config.allowUnfree = true;
nix = {
distributedBuilds = true;
settings = {
builders-use-substitutes = true;
experimental-features = ["nix-command" "flakes"];
};
};
}