Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a1c4841580 | |||
| 62d8d36ed8 |
@@ -0,0 +1,58 @@
|
|||||||
|
# Sakamoto NixOS
|
||||||
|
|
||||||
|
Sakamoto NixOS is built with various profiles intended for reproducibility.
|
||||||
|
|
||||||
|
## Available Hosts
|
||||||
|
|
||||||
|
- MacBook M series
|
||||||
|
- Linux
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
1. Install [Nix](https://nixos.org/download/).
|
||||||
|
|
||||||
|
2. Ensure Nix is installed properly by running the following (this also gives you `nano` for editing later):
|
||||||
|
|
||||||
|
```sh
|
||||||
|
nix-shell -p nano
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Clone the git repository:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
git clone https://git.sakamoto.dev/kenji/nixos.git ~/.config/nixos && cd ~/.config/nixos/
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Copy `info.default.nix` and rename it to `info.local.nix`:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cp ~/.config/nixos/info.default.nix ~/.config/nixos/info.local.nix
|
||||||
|
```
|
||||||
|
|
||||||
|
🚨 **CRITICAL STEP:** Edit `info.local.nix`:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
nano ~/.config/nixos/info.local.nix
|
||||||
|
```
|
||||||
|
|
||||||
|
Modify it to fit your system — especially your **username**.
|
||||||
|
If you accidentally leave the default `biscuit`, that user will be created.
|
||||||
|
**Login password for `biscuit` is `<PLACEHOLDER>`.**
|
||||||
|
|
||||||
|
5. Execute the following command based on your host:
|
||||||
|
|
||||||
|
- **MacBook M series:**
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo nix run nix-darwin --extra-experimental-features "nix-command flakes" -- switch --flake ~/.config/nixos#macos
|
||||||
|
```
|
||||||
|
|
||||||
|
- **Linux:**
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo nixos-rebuild --flake ~/.config/nixos#desktop --impure
|
||||||
|
sudo nix run home-manager -- init --switch
|
||||||
|
home-manager switch --flake ~/.config/nixos#desktop --impure
|
||||||
|
nix-channel --add https://nixos.org/channels/nixos-unstable nixos nix-channel --update
|
||||||
|
reboot
|
||||||
|
```
|
||||||
@@ -1,113 +0,0 @@
|
|||||||
{
|
|
||||||
programs.firefox = {
|
|
||||||
enable = true;
|
|
||||||
languagePacks = [
|
|
||||||
"en-US"
|
|
||||||
];
|
|
||||||
profiles = {
|
|
||||||
hakase = {
|
|
||||||
search.force = true;
|
|
||||||
isDefault = true;
|
|
||||||
search.default = "ddg";
|
|
||||||
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";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
bookmarks = {
|
|
||||||
force = true;
|
|
||||||
settings = [
|
|
||||||
{
|
|
||||||
toolbar = true;
|
|
||||||
bookmarks = [
|
|
||||||
{
|
|
||||||
name = "Home Manager";
|
|
||||||
url = "https://mynixos.com/home-manager/options/programs";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "YouTube";
|
|
||||||
url = "https://youtube.com";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
policies = {
|
|
||||||
DisableTelemetry = true;
|
|
||||||
DisableFirefoxStudies = true;
|
|
||||||
EnableTrackingProtection = {
|
|
||||||
Value = true;
|
|
||||||
Locked = true;
|
|
||||||
Cryptomining = true;
|
|
||||||
Fingerprinting = true;
|
|
||||||
};
|
|
||||||
DisablePocket = true;
|
|
||||||
DisableFirefoxAccounts = true;
|
|
||||||
DisableAccounts = true;
|
|
||||||
DisableFirefoxScreenshots = true;
|
|
||||||
OverrideFirstRunPage = "";
|
|
||||||
OverridePostUpdatePage = "";
|
|
||||||
DontCheckDefaultBrowser = true;
|
|
||||||
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
|
|
||||||
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
|
|
||||||
SearchBar = "unified"; # alternative: "separate"
|
|
||||||
|
|
||||||
/*
|
|
||||||
---- EXTENSIONS ----
|
|
||||||
*/
|
|
||||||
# Check about:support for extension/add-on ID strings.
|
|
||||||
# Valid strings for installation_mode are "allowed", "blocked",
|
|
||||||
# "force_installed" and "normal_installed".
|
|
||||||
ExtensionSettings = {
|
|
||||||
"*".installation_mode = "allowed";
|
|
||||||
"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/file/4493940/bitwarden_password_manager-2025.5.0.xpi";
|
|
||||||
installation_mode = "force_installed";
|
|
||||||
};
|
|
||||||
"tridactyl.vim@cmcaine.co.uk" = {
|
|
||||||
install_url = "https://addons.mozilla.org/firefox/downloads/file/4405615/tridactyl_vim-1.24.2.xpi";
|
|
||||||
installation_mode = "force_installed";
|
|
||||||
};
|
|
||||||
# Privacy Badger:
|
|
||||||
# "jid1-MnnxcxisBPnSXQ@jetpack" = {
|
|
||||||
# install_url = "https://addons.mozilla.org/firefox/downloads/latest/privacy-badger17/latest.xpi";
|
|
||||||
# installation_mode = "force_installed";
|
|
||||||
# };
|
|
||||||
# 1Password:
|
|
||||||
# "{d634138d-c276-4fc8-924b-40a0ea21d284}" = {
|
|
||||||
# install_url = "https://addons.mozilla.org/firefox/downloads/latest/1password-x-password-manager/latest.xpi";
|
|
||||||
# installation_mode = "force_installed";
|
|
||||||
# };
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
gemini-cli
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -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}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -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.termianl.default;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# systemd.user.services.hyprpolkitagent = {
|
|
||||||
# description = "Hyprland Polkit Agent";
|
|
||||||
# wantedBy = ["graphical-session.target"];
|
|
||||||
# serviceConfig = {
|
|
||||||
# ExecStart = "${pkgs.hyprpolkitagent}/libexec/hyprpolkitagent";
|
|
||||||
# Restart = "on-failure";
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
}
|
|
||||||
@@ -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...
|
|
||||||
}
|
|
||||||
@@ -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 -- xdg-open https://duckduckgo.com" # 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)
|
|
||||||
);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
wayland.windowManager.hyprland.settings = {
|
|
||||||
exec-once = [
|
|
||||||
"uwsm app -- waybar"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{myConfig, ...}: {
|
|
||||||
wayland.windowManager.hyprland.settings = {
|
|
||||||
general = {
|
|
||||||
gaps_in = 5;
|
|
||||||
gaps_out = 15;
|
|
||||||
};
|
|
||||||
monitor = myConfig.hyprland.monitors;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
home.packages = [
|
|
||||||
inputs.nixovim.packages.${system}.full
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -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)";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
pamixer
|
|
||||||
wiremix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -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";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
programs.zoxide = {
|
|
||||||
enable = true;
|
|
||||||
enableFishIntegration = true;
|
|
||||||
options = [
|
|
||||||
"--cmd cd"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 42 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.6 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 246 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 14 MiB |
+71
-25
@@ -1,36 +1,82 @@
|
|||||||
{
|
{
|
||||||
myConfig = {
|
|
||||||
nixos = {
|
|
||||||
username = "kenji";
|
|
||||||
hostname = "hakase";
|
hostname = "hakase";
|
||||||
timezone = "America/Chicago";
|
|
||||||
shell = "fish";
|
|
||||||
};
|
|
||||||
git = {
|
|
||||||
username = "kenji";
|
username = "kenji";
|
||||||
email = "kenji@hakase";
|
timezone = "America/Chicago";
|
||||||
|
|
||||||
|
vpn = {
|
||||||
|
vpnEnable = false;
|
||||||
|
vpnSecretFile = "/home/kenji/Wireguard/secret";
|
||||||
|
};
|
||||||
|
|
||||||
|
gitProfile = {
|
||||||
|
user = "biscuit";
|
||||||
|
email = "biscuit@sakamoto.dev";
|
||||||
defaultBranch = "master";
|
defaultBranch = "master";
|
||||||
};
|
};
|
||||||
ssh = {
|
|
||||||
extraConfig = ''
|
terminal = {
|
||||||
|
termFont = "JetBrainsMono Nerd Font"; # e.g., JetBrainsMono Nerd Font
|
||||||
|
termSize = "20";
|
||||||
|
termShell = "fish";
|
||||||
|
shellAliases = {
|
||||||
|
ls = "ls --color=auto";
|
||||||
|
update = ''
|
||||||
|
sh -c '
|
||||||
|
if [ "$(uname)" = "Darwin" ]; then
|
||||||
|
sudo darwin-rebuild switch --flake ~/.config/nixos#macos
|
||||||
|
else
|
||||||
|
sudo nixos-rebuild switch --flake ~/.config/nixos#desktop && home-manager switch --flake ~/.config/nixos#desktop
|
||||||
|
fi
|
||||||
|
'
|
||||||
|
'';
|
||||||
|
agu = "pkill gjs & ags run ~/.config/nixos/pkgs/ags/biscuit/app.ts & disown (jobs -p) &";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
allowUnfree = true; # allows installation of commercial apps.
|
||||||
|
touchpadSupport = false;
|
||||||
|
|
||||||
|
logitech-hardware = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Custom Applications
|
||||||
|
linux-apps = {
|
||||||
|
gamingDesktop = true; # adds steam
|
||||||
|
my-apps = pkgs:
|
||||||
|
with pkgs; [
|
||||||
|
jellyfin-media-player
|
||||||
|
mangohud
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
hyprconf = {
|
||||||
|
monitor = [
|
||||||
|
"DP-1,highres@165,0x1080,auto"
|
||||||
|
"DP-2,highres@highrr,0x0,auto"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
sshExtraConfig = ''
|
||||||
Host macair
|
Host macair
|
||||||
User biscuit
|
User biscuit
|
||||||
HostName 192.168.68.81
|
HostName 192.168.68.81
|
||||||
|
|
||||||
Host gitea.sakamoto.dev
|
|
||||||
User kenji
|
|
||||||
ProxyCommand cloudflared access ssh --hostname %h
|
|
||||||
HostName gitea.sakamoto.dev
|
|
||||||
'';
|
'';
|
||||||
};
|
|
||||||
terminal = {
|
# BUILD (optional), you can remove these blocks.
|
||||||
default = ["ghostty.desktop"];
|
builder = {
|
||||||
aliases = {
|
trustedUsers = [
|
||||||
update = "sudo nixos-rebuild switch --flake ~/.config/nixos-new/#hakase";
|
"@groups"
|
||||||
};
|
"biscuit"
|
||||||
};
|
];
|
||||||
hyprland = {
|
buildMachines = [
|
||||||
monitors = ["HDMI-A-1, 1920x1080@120, auto, 1"];
|
{
|
||||||
};
|
hostName = "192.168.68.81";
|
||||||
|
sshUser = "biscuit";
|
||||||
|
sshKey = "/home/biscuit/.ssh/id_rsa.pub";
|
||||||
|
system = "x86_64-linux";
|
||||||
|
supportedFeatures = ["big-parallel" "kvm" "nixos-test"];
|
||||||
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Generated
+464
-365
File diff suppressed because it is too large
Load Diff
@@ -1,49 +1,95 @@
|
|||||||
{
|
{
|
||||||
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"; # `follows` ensure it follows nixpkgs versiona. Avoids breaking updates.
|
||||||
|
darwin.url = "github:lnl7/nix-darwin";
|
||||||
|
darwin.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
rust-overlay = {
|
ags.url = "github:aylur/ags";
|
||||||
url = "github:oxalica/rust-overlay";
|
ags.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
home-manager = {
|
hyprland.url = "github:hyprwm/Hyprland";
|
||||||
url = "github:nix-community/home-manager";
|
hyprland.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
unlisted-fonts.url = "git+https://git.sakamoto.dev/kenji/nix-fonts.git";
|
||||||
hyprland = {
|
unlisted-fonts.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
nixvim.url = "github:nix-community/nixvim";
|
||||||
};
|
nixvim.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
nixovim = {
|
|
||||||
url = "git+https://git.sakamoto.dev/kenji/nixovim.git";
|
nix-neovim.url = "git+https://git.sakamoto.dev/kenji/nix-neovim.git";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
nix-neovim.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
inputs.rust-overlay.follows = "rust-overlay";
|
|
||||||
};
|
# kitty-catppuccin.url = "git+https://git.sakamoto.dev/kenji/nix-kitty-catppuccin.git";
|
||||||
|
# kitty-catppuccin.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
|
matugen.url = "github:/InioX/Matugen";
|
||||||
|
matugen.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs = {
|
||||||
self,
|
self,
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
home-manager,
|
home-manager,
|
||||||
nixovim,
|
darwin,
|
||||||
|
ags,
|
||||||
|
hyprland,
|
||||||
|
unlisted-fonts,
|
||||||
|
nix-neovim,
|
||||||
...
|
...
|
||||||
} @ inputs: let
|
} @ inputs: let
|
||||||
config = import ./config.nix;
|
config = import ./config.nix;
|
||||||
|
lib = nixpkgs.lib;
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
|
# pkgs = nixpkgs.legacyPackages.${system}; # alternative, without overlays. Unused.
|
||||||
args =
|
args =
|
||||||
{
|
{
|
||||||
inherit inputs system;
|
inherit inputs system;
|
||||||
}
|
}
|
||||||
// config;
|
// config;
|
||||||
in {
|
in {
|
||||||
|
# linux only
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
hakase = nixpkgs.lib.nixosSystem {
|
desktop = lib.nixosSystem {
|
||||||
|
inherit system;
|
||||||
specialArgs = args;
|
specialArgs = args;
|
||||||
modules = [
|
modules = [
|
||||||
home-manager.nixosModules.home-manager
|
./nixos/desktop/configuration.nix
|
||||||
./hosts/hakase/configuration.nix
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
homeConfigurations = {
|
||||||
|
desktop = home-manager.lib.homeManagerConfiguration {
|
||||||
|
pkgs = import nixpkgs {
|
||||||
|
inherit system;
|
||||||
|
overlays = [
|
||||||
|
# (final: prev: {
|
||||||
|
# ags_1 = prev.ags_1.overrideAttrs (old: {
|
||||||
|
# buildInputs = old.buildInputs ++ [pkgs.libdbusmenu-gtk3];
|
||||||
|
# });
|
||||||
|
# })
|
||||||
|
];
|
||||||
|
};
|
||||||
|
extraSpecialArgs = args;
|
||||||
|
modules = [./home/desktop/home.nix];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# exclusive to macos M series
|
||||||
|
darwinConfigurations = {
|
||||||
|
macos = darwin.lib.darwinSystem {
|
||||||
|
system = "aarch64-darwin";
|
||||||
|
specialArgs = args;
|
||||||
|
modules = [
|
||||||
|
./nixos/macos/darwin.nix
|
||||||
|
home-manager.darwinModules.home-manager
|
||||||
|
{
|
||||||
|
home-manager.useGlobalPkgs = true;
|
||||||
|
home-manager.useUserPackages = true;
|
||||||
|
home-manager.extraSpecialArgs = args;
|
||||||
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
{username, ...}: {
|
||||||
|
imports = [
|
||||||
|
../../modules/editor.nix
|
||||||
|
../../modules/desktop/display-manager.nix
|
||||||
|
../../modules/desktop/misc.nix
|
||||||
|
../../modules/desktop/app.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
|
||||||
|
home = {
|
||||||
|
username = "${username}";
|
||||||
|
homeDirectory = "/home/${username}";
|
||||||
|
packages = [];
|
||||||
|
sessionVariables = {};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.user.startServices = "sd-switch";
|
||||||
|
home.stateVersion = "23.05";
|
||||||
|
}
|
||||||
@@ -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";
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
../../modules/editor.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
|
||||||
|
home.packages = [];
|
||||||
|
home.stateVersion = "23.05";
|
||||||
|
}
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
pkgs,
|
|
||||||
myConfig,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = [
|
|
||||||
./hardware-configuration.nix
|
|
||||||
../../modules/system/default.nix
|
|
||||||
../../modules/system/hyprland.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
linux-apps,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports =
|
||||||
|
[
|
||||||
|
]
|
||||||
|
++ lib.optionals (linux-apps.gamingDesktop == true) [
|
||||||
|
../pkgs/steam/default.nix
|
||||||
|
../pkgs/heroic/default.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
{pkgs, ...}: let
|
||||||
|
info = import ../../config.nix;
|
||||||
|
in {
|
||||||
|
home.packages = info.linux-apps.my-apps pkgs;
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
{...}: {
|
||||||
|
imports = [
|
||||||
|
../../pkgs/hyprland/default.nix
|
||||||
|
../../pkgs/ags/default.nix
|
||||||
|
../../pkgs/swww/default.nix
|
||||||
|
../../pkgs/waybar/default.nix
|
||||||
|
../../pkgs/rofi/default.nix
|
||||||
|
../../pkgs/hypridle/default.nix
|
||||||
|
../../pkgs/hyprlock/default.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{...}: {
|
||||||
|
imports = [
|
||||||
|
../../pkgs/btop/default.nix
|
||||||
|
../../pkgs/matugen/default.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
{...}: {
|
||||||
|
imports = [
|
||||||
|
../system/desktop/wayland.nix
|
||||||
|
../system/desktop/sound.nix
|
||||||
|
../system/desktop/misc.nix
|
||||||
|
../system/desktop/browser.nix
|
||||||
|
../system/desktop/font.nix
|
||||||
|
../system/desktop/theme.nix
|
||||||
|
../system/desktop/cursor.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
{...}: {
|
||||||
|
imports = [
|
||||||
|
../pkgs/fastfetch/default.nix
|
||||||
|
../pkgs/git/default.nix
|
||||||
|
../pkgs/kitty/default.nix
|
||||||
|
../pkgs/neovim/default.nix
|
||||||
|
../pkgs/fish/default.nix
|
||||||
|
../pkgs/starship/default.nix
|
||||||
|
../pkgs/zsh/default.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
imports = [
|
|
||||||
../../apps/yazi/home.nix
|
|
||||||
../../apps/gemini/home.nix
|
|
||||||
../../apps/firefox/home.nix
|
|
||||||
../../apps/starship/home.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
imports = [
|
|
||||||
../../apps/hyprland/home.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -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
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
imports = [
|
|
||||||
../../apps/waybar/home.nix
|
|
||||||
../../apps/waybar/deps.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
vpn,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports =
|
||||||
|
[
|
||||||
|
../system/default.nix
|
||||||
|
../system/users.nix
|
||||||
|
]
|
||||||
|
++ lib.optionals (vpn.vpnEnable == true) [
|
||||||
|
../system/vpn.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -1,19 +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; [
|
|
||||||
git
|
|
||||||
cloudflared
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
imports = [
|
|
||||||
../../apps/hyprland/default.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
allowUnfree,
|
||||||
|
builder,
|
||||||
|
sshExtraConfig,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
# Include the results of the hardware scan.
|
||||||
|
/etc/nixos/hardware-configuration.nix
|
||||||
|
../../modules/system.nix
|
||||||
|
../../modules/display-manager.nix
|
||||||
|
../../modules/app.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
vim
|
||||||
|
wget
|
||||||
|
];
|
||||||
|
|
||||||
|
nixpkgs.config.allowUnfree = allowUnfree;
|
||||||
|
|
||||||
|
nix.settings = {
|
||||||
|
trusted-users = builder.trustedUsers;
|
||||||
|
experimental-features = ["nix-command" "flakes"];
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.ssh.extraConfig = sshExtraConfig;
|
||||||
|
|
||||||
|
nix.distributedBuilds = true;
|
||||||
|
nix.settings.builders-use-substitutes = true;
|
||||||
|
|
||||||
|
# nix.buildMachines = builder.buildMachines;
|
||||||
|
system.stateVersion = "25.05";
|
||||||
|
}
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
# 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" "sd_mod" ];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{ device = "/dev/disk/by-uuid/3f2c4a5a-3124-462a-9fb9-cccc933bac63";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "subvol=@" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{ device = "/dev/disk/by-uuid/18F8-7DC1";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [ "fmask=0077" "dmask=0077" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/mnt/CRUCIAL" =
|
||||||
|
{ device = "/dev/disk/by-uuid/394f67b9-e75b-40cc-9b15-28bbda40fff4";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices =
|
||||||
|
[ { device = "/dev/disk/by-uuid/bbe1e281-4b1d-4d85-ba6a-6f5265f0e3a3"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
# 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.biscuit-default.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.enp11s0.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.wlp10s0.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
builder,
|
||||||
|
terminal,
|
||||||
|
username,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
# List packages installed in system profile. To search by name, run:
|
||||||
|
# $ nix-env -qaP | grep wget
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
python313
|
||||||
|
];
|
||||||
|
|
||||||
|
# Auto upgrade nix package and the daemon service.
|
||||||
|
# services.nix-daemon.enable = true;
|
||||||
|
# services.karabiner-elements.enable = true;
|
||||||
|
# nix.package = pkgs.nix;
|
||||||
|
|
||||||
|
# Necessary for using flakes on this system.
|
||||||
|
nix.settings.experimental-features = "nix-command flakes";
|
||||||
|
nix.settings.trusted-users = builder.trustedUsers;
|
||||||
|
|
||||||
|
# Create /etc/zshrc that loads the nix-darwin environment.
|
||||||
|
programs.zsh.enable = true; # default shell on catalina
|
||||||
|
programs.fish.enable = true;
|
||||||
|
|
||||||
|
# $ darwin-rebuild changelog
|
||||||
|
system.stateVersion = 5;
|
||||||
|
|
||||||
|
# The platform the configuration will be used on.
|
||||||
|
nixpkgs.hostPlatform = "aarch64-darwin";
|
||||||
|
|
||||||
|
users.users.${username} = {
|
||||||
|
name = "${username}";
|
||||||
|
home = "/Users/${username}";
|
||||||
|
shell = pkgs.${terminal.termShell};
|
||||||
|
};
|
||||||
|
|
||||||
|
home-manager.users.${username} = import ../../home/macos/home.nix;
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
node_modules/
|
||||||
|
@girs/
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
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: () => {
|
||||||
|
const monitors = App.get_monitors()
|
||||||
|
const primary = monitors.find(m => m.primary) || monitors[0]
|
||||||
|
return Bar(primary)
|
||||||
|
}
|
||||||
|
})
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
$background: #131318;
|
||||||
|
$foreground: #e4e1e9;
|
||||||
|
$primary: #bec2ff;
|
||||||
Vendored
+21
@@ -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
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"name": "astal-shell",
|
||||||
|
"dependencies": {
|
||||||
|
"astal": "/home/biscuit/.local/share/ags"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,143 @@
|
|||||||
|
@use "sass:color";
|
||||||
|
@use "./colors" as *;
|
||||||
|
|
||||||
|
// default
|
||||||
|
// $bg: #212223;
|
||||||
|
// $fg: #f1f1f1;
|
||||||
|
// $accent: #378DF7;
|
||||||
|
// $radius: 7px;
|
||||||
|
|
||||||
|
// Kanagawa Theme
|
||||||
|
// $bg: #1F1F28;
|
||||||
|
// $fg: #DCD7BA;
|
||||||
|
// $accent: #C0A36E;
|
||||||
|
// $radius: 7px;
|
||||||
|
|
||||||
|
// mstcl
|
||||||
|
// $bg: #121212;
|
||||||
|
// $fg: #f1f1f1;
|
||||||
|
// $accent: #C0A36E;
|
||||||
|
// $radius: 7px;
|
||||||
|
|
||||||
|
$bg: $background;
|
||||||
|
$fg: $foreground;
|
||||||
|
$accent: $primary;
|
||||||
|
$radius: 7px;
|
||||||
|
|
||||||
|
window.Bar {
|
||||||
|
border: none;
|
||||||
|
box-shadow: none;
|
||||||
|
background-color: $bg;
|
||||||
|
color: $fg;
|
||||||
|
font-size: 1.1em;
|
||||||
|
font-weight: bold;
|
||||||
|
font-family: "JetBrainsMono Nerd Font";
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.Time {
|
||||||
|
.TimeHM {
|
||||||
|
font-weight: bold;
|
||||||
|
color: $accent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.TimeDate {
|
||||||
|
// color: color.adjust($fg, $lightness: -10%);
|
||||||
|
color: $fg;
|
||||||
|
opacity: 0.85;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.FocusedClient {
|
||||||
|
color: color.adjust($fg, $lightness: -30%);
|
||||||
|
opacity: 0.7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -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",
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,189 @@
|
|||||||
|
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="FocusedClient" visible={focused.as(Boolean)}>
|
||||||
|
{focused.as(client => {
|
||||||
|
if (!client) return null;
|
||||||
|
|
||||||
|
return (
|
||||||
|
<label
|
||||||
|
label={bind(client, "title").as(title => {
|
||||||
|
return title.length > 40
|
||||||
|
? title.slice(0, 37) + "..."
|
||||||
|
: title;
|
||||||
|
})}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
</box>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
function Time({ format = "%H:%M|%a %b %d" }) {
|
||||||
|
const time = Variable<string>("").poll(1000, () =>
|
||||||
|
GLib.DateTime.new_now_local().format(format)!
|
||||||
|
);
|
||||||
|
|
||||||
|
return bind(time).as(str => {
|
||||||
|
const [hm, date] = str.split("|");
|
||||||
|
|
||||||
|
return (
|
||||||
|
<box className="Time">
|
||||||
|
<label className="TimeHM" label={hm} />
|
||||||
|
<label className="TimeDate" label={date} />
|
||||||
|
</box>
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
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}>
|
||||||
|
<Workspaces />
|
||||||
|
<FocusedClient />
|
||||||
|
</box>
|
||||||
|
<box>
|
||||||
|
<Time />
|
||||||
|
</box>
|
||||||
|
<box hexpand halign={Gtk.Align.END} >
|
||||||
|
<SysTray />
|
||||||
|
<Wifi />
|
||||||
|
<AudioSlider />
|
||||||
|
<BatteryLevel />
|
||||||
|
</box>
|
||||||
|
</centerbox>
|
||||||
|
</window>
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
inputs,
|
||||||
|
pkgs,
|
||||||
|
system,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [inputs.ags.homeManagerModules.default];
|
||||||
|
|
||||||
|
programs.ags = {
|
||||||
|
enable = true;
|
||||||
|
configDir = ./biscuit;
|
||||||
|
|
||||||
|
extraPackages = let
|
||||||
|
agsPkgs = inputs.ags.packages.${system};
|
||||||
|
in
|
||||||
|
with pkgs; [
|
||||||
|
agsPkgs.battery
|
||||||
|
agsPkgs.hyprland
|
||||||
|
agsPkgs.mpris
|
||||||
|
agsPkgs.wireplumber
|
||||||
|
agsPkgs.notifd
|
||||||
|
agsPkgs.apps
|
||||||
|
agsPkgs.network
|
||||||
|
agsPkgs.tray
|
||||||
|
fzf
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
{...}: {
|
||||||
|
programs.btop = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
vim_keys = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,131 @@
|
|||||||
|
{
|
||||||
|
programs.fastfetch = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
logo = {
|
||||||
|
padding = {
|
||||||
|
top = 2;
|
||||||
|
left = 1;
|
||||||
|
right = 2;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
display = {
|
||||||
|
separator = " ";
|
||||||
|
};
|
||||||
|
|
||||||
|
modules = [
|
||||||
|
# Title
|
||||||
|
{
|
||||||
|
type = "title";
|
||||||
|
format = "{#1}╭───────────── {#}{user-name-colored}";
|
||||||
|
}
|
||||||
|
|
||||||
|
# System Information Header
|
||||||
|
{
|
||||||
|
type = "custom";
|
||||||
|
format = "{#1}│ {#}System Information";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "os";
|
||||||
|
key = "│ {#keys} OS";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "kernel";
|
||||||
|
key = "│ {#keys} Kernel";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "uptime";
|
||||||
|
key = "│ {#keys} Uptime";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "packages";
|
||||||
|
key = "│ {#keys} Packages";
|
||||||
|
format = "{all}";
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
type = "custom";
|
||||||
|
format = "{#1}│";
|
||||||
|
}
|
||||||
|
|
||||||
|
# Desktop Environment
|
||||||
|
{
|
||||||
|
type = "custom";
|
||||||
|
format = "{#1}│ {#}Desktop Environment";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "de";
|
||||||
|
key = "│ {#keys} DE";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "wm";
|
||||||
|
key = "│ {#keys} WM";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "wmtheme";
|
||||||
|
key = "│ {#keys} Theme";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "display";
|
||||||
|
key = "│ {#keys} Resolution";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "shell";
|
||||||
|
key = "│ {#keys} Shell";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "terminalfont";
|
||||||
|
key = "│ {#keys} Font";
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
type = "custom";
|
||||||
|
format = "{#1}│";
|
||||||
|
}
|
||||||
|
|
||||||
|
# Hardware Information
|
||||||
|
{
|
||||||
|
type = "custom";
|
||||||
|
format = "{#1}│ {#}Hardware Information";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "cpu";
|
||||||
|
key = "│ {#keys} CPU";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "gpu";
|
||||||
|
key = "│ {#keys} GPU";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "memory";
|
||||||
|
key = "│ {#keys} Memory";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "disk";
|
||||||
|
key = "│ {#keys} Disk (/)";
|
||||||
|
folders = "/";
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
type = "custom";
|
||||||
|
format = "{#1}│";
|
||||||
|
}
|
||||||
|
|
||||||
|
# Colors
|
||||||
|
{
|
||||||
|
type = "colors";
|
||||||
|
key = "│";
|
||||||
|
symbol = "circle";
|
||||||
|
}
|
||||||
|
|
||||||
|
# Footer
|
||||||
|
{
|
||||||
|
type = "custom";
|
||||||
|
format = "{#1}╰───────────────────────────────╯";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,17 +1,18 @@
|
|||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
myConfig,
|
terminal,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
|
programs.zoxide.enable = true;
|
||||||
programs.fish = {
|
programs.fish = {
|
||||||
enable = true;
|
enable = true;
|
||||||
interactiveShellInit = ''
|
interactiveShellInit = ''
|
||||||
set fish_greeting
|
set fish_greeting
|
||||||
fish_vi_key_bindings
|
fish_vi_key_bindings
|
||||||
zoxide init fish | source
|
zoxide init fish | source
|
||||||
zoxide init fish --cmd cd | source
|
|
||||||
'';
|
'';
|
||||||
shellAliases = myConfig.terminal.aliases;
|
shellAliases = terminal.shellAliases;
|
||||||
|
|
||||||
plugins = with pkgs.fishPlugins; [
|
plugins = with pkgs.fishPlugins; [
|
||||||
];
|
];
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
{gitProfile, ...}: {
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
extraConfig = {
|
||||||
|
user.name = "${gitProfile.user}";
|
||||||
|
user.email = "${gitProfile.email}";
|
||||||
|
init.defaultBranch = "${gitProfile.defaultBranch}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
heroic
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
{...}: {
|
||||||
|
services.hypridle = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
general = {
|
||||||
|
lock_cmd = "pidof hyprlock || hyprlock"; # avoid starting multiple hyprlock instances.
|
||||||
|
before_sleep_cmd = "loginctl lock-session"; # lock before suspend.
|
||||||
|
after_sleep_cmd = "hyprctl dispatch dpms on && agu"; # avoid needing to press a key twice to turn on the display.
|
||||||
|
};
|
||||||
|
|
||||||
|
listener = [
|
||||||
|
{
|
||||||
|
timeout = 150;
|
||||||
|
on-timeout = "brightnessctl -s set 10"; # set monitor backlight to minimum, avoid 0 on OLED monitor.
|
||||||
|
on-resume = "brightnessctl -r"; # restore monitor backlight.
|
||||||
|
}
|
||||||
|
{
|
||||||
|
timeout = 150;
|
||||||
|
on-timeout = "brightnessctl -sd rgb:kbd_backlight set 0"; # turn off keyboard backlight.
|
||||||
|
on-resume = "brightnessctl -rd rgb:kbd_backlight"; # turn on keyboard backlight.
|
||||||
|
}
|
||||||
|
{
|
||||||
|
timeout = 300;
|
||||||
|
on-timeout = "loginctl lock-session"; # lock screen when timeout has passed.
|
||||||
|
}
|
||||||
|
{
|
||||||
|
timeout = 330;
|
||||||
|
on-timeout = "hyprctl dispatch dpms off"; # screen off after 5.5min.
|
||||||
|
on-resume = "hyprctl dispatch dpms on && brightnessctl -r"; # screen on and restore brightness on resume.
|
||||||
|
}
|
||||||
|
{
|
||||||
|
timeout = 500;
|
||||||
|
on-timeout = "systemctl suspend"; # suspend PC after 30min.
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,226 @@
|
|||||||
|
{
|
||||||
|
hyprconf,
|
||||||
|
username,
|
||||||
|
terminal,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
xwayland.enable = true;
|
||||||
|
settings = {
|
||||||
|
"$mod" = "SUPER";
|
||||||
|
"$term" = "kitty --single-instance";
|
||||||
|
"$browser" = "firefox";
|
||||||
|
|
||||||
|
monitor = hyprconf.monitor;
|
||||||
|
|
||||||
|
exec-once = [
|
||||||
|
"[workspace 20 silent] kitty --single-insance --hold fastfetch"
|
||||||
|
"[workspace 20 silent] firefox"
|
||||||
|
"[workspace 1] kitty --single-instance --hold fastfetch"
|
||||||
|
"pkill gjs & ags run"
|
||||||
|
# "matugen image /home/${username}/.config/nixos/assets/wallpapers/ultrawide-nixos-default.png"
|
||||||
|
"hyprctl setcursor Bibata-Original-Classic 24"
|
||||||
|
"solaar -w hide"
|
||||||
|
];
|
||||||
|
|
||||||
|
general = {
|
||||||
|
gaps_in = 2;
|
||||||
|
gaps_out = 5;
|
||||||
|
border_size = 2;
|
||||||
|
# col.active_border = "#0DB7D4FF";
|
||||||
|
# col.inactive_border = "#31313600";
|
||||||
|
# col = {
|
||||||
|
# "inactive_border" = "rgba(595959aa)";
|
||||||
|
# "active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
|
||||||
|
# };
|
||||||
|
resize_on_border = false;
|
||||||
|
allow_tearing = false;
|
||||||
|
layout = "dwindle";
|
||||||
|
};
|
||||||
|
decoration = {
|
||||||
|
rounding = 0;
|
||||||
|
rounding_power = 2;
|
||||||
|
active_opacity = 1.0;
|
||||||
|
inactive_opacity = 1.0;
|
||||||
|
|
||||||
|
dim_inactive = true;
|
||||||
|
dim_strength = 0.1;
|
||||||
|
dim_special = 0.8;
|
||||||
|
|
||||||
|
shadow = {
|
||||||
|
enabled = true;
|
||||||
|
range = 4;
|
||||||
|
render_power = 3;
|
||||||
|
color = "rgba(1a1a1aee)";
|
||||||
|
};
|
||||||
|
|
||||||
|
blur = {
|
||||||
|
enabled = true;
|
||||||
|
size = 3;
|
||||||
|
passes = 1;
|
||||||
|
vibrancy = 0.1696;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
animations = {
|
||||||
|
enabled = true;
|
||||||
|
bezier = [
|
||||||
|
"linear, 0, 0, 1, 1"
|
||||||
|
"md3_standard, 0.2, 0, 0, 1"
|
||||||
|
"md3_decel, 0.05, 0.7, 0.1, 1"
|
||||||
|
"md3_accel, 0.3, 0, 0.8, 0.15"
|
||||||
|
"overshot, 0.05, 0.9, 0.1, 1.1"
|
||||||
|
"crazyshot, 0.1, 1.5, 0.76, 0.92"
|
||||||
|
"hyprnostretch, 0.05, 0.9, 0.1, 1.0"
|
||||||
|
"menu_decel, 0.1, 1, 0, 1"
|
||||||
|
"menu_accel, 0.38, 0.04, 1, 0.07"
|
||||||
|
"easeInOutCirc, 0.85, 0, 0.15, 1"
|
||||||
|
"easeOutCirc, 0, 0.55, 0.45, 1"
|
||||||
|
"easeOutExpo, 0.16, 1, 0.3, 1"
|
||||||
|
"softAcDecel, 0.26, 0.26, 0.15, 1"
|
||||||
|
"md2, 0.4, 0, 0.2, 1"
|
||||||
|
];
|
||||||
|
|
||||||
|
animation = [
|
||||||
|
"windows, 1, 3, md3_decel, popin 60%"
|
||||||
|
"windowsIn, 1, 3, md3_decel, popin 60%"
|
||||||
|
"windowsOut, 1, 3, md3_accel, popin 60%"
|
||||||
|
"border, 1, 10, default"
|
||||||
|
"fade, 1, 3, md3_decel"
|
||||||
|
"layersIn, 1, 3, menu_decel, slide"
|
||||||
|
"layersOut, 1, 1.6, menu_accel"
|
||||||
|
"fadeLayersIn, 1, 2, menu_decel"
|
||||||
|
"fadeLayersOut, 1, 0.5, menu_accel"
|
||||||
|
"workspaces, 1, 7, menu_decel, slide"
|
||||||
|
"specialWorkspace, 1, 3, md3_decel, slidevert"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
dwindle = {
|
||||||
|
pseudotile = true;
|
||||||
|
preserve_split = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
master = {
|
||||||
|
new_status = "master";
|
||||||
|
};
|
||||||
|
|
||||||
|
misc = {
|
||||||
|
force_default_wallpaper = -1;
|
||||||
|
disable_hyprland_logo = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
input = {
|
||||||
|
kb_layout = "us";
|
||||||
|
follow_mouse = 1;
|
||||||
|
sensitivity = 0;
|
||||||
|
force_no_accel = true;
|
||||||
|
repeat_delay = 250;
|
||||||
|
repeat_rate = 35;
|
||||||
|
|
||||||
|
touchpad = {
|
||||||
|
natural_scroll = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
numlock_by_default = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
gestures = {
|
||||||
|
workspace_swipe = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
binds = {
|
||||||
|
workspace_back_and_forth = true;
|
||||||
|
scroll_event_delay = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
device = [
|
||||||
|
{
|
||||||
|
name = "epic-mouse-v1";
|
||||||
|
sensitivity = -0.5;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
bind =
|
||||||
|
[
|
||||||
|
"$mod, Return, exec, $term"
|
||||||
|
"$mod, Q, killactive,"
|
||||||
|
"$mod, M, exit,"
|
||||||
|
"$mod, E, exec, $fileManager"
|
||||||
|
"$mod, V, togglefloating,"
|
||||||
|
"$mod, R, exec, $menu"
|
||||||
|
"$mod, P, pseudo,"
|
||||||
|
"$mod, B, togglesplit,"
|
||||||
|
"$mod, W, exec, $browser"
|
||||||
|
|
||||||
|
"$mod, H, movefocus, l"
|
||||||
|
"$mod, L, movefocus, r"
|
||||||
|
"$mod, K, movefocus, u"
|
||||||
|
"$mod, J, movefocus, d"
|
||||||
|
|
||||||
|
"$mod SHIFT, K, movewindow, u"
|
||||||
|
"$mod SHIFT, J, movewindow, d"
|
||||||
|
"$mod SHIFT, H, movewindow, l"
|
||||||
|
"$mod SHIFT, L, movewindow, r"
|
||||||
|
|
||||||
|
"$mod CTRL, K, resizeactive, 0 -50"
|
||||||
|
"$mod CTRL, J, resizeactive, 0 50"
|
||||||
|
"$mod CTRL, H, resizeactive, -50 0"
|
||||||
|
"$mod CTRL, L, resizeactive, 50 0"
|
||||||
|
|
||||||
|
"$mod, S, togglespecialworkspace, magic"
|
||||||
|
"$mod SHIFT, S, movetoworkspace, special:magic"
|
||||||
|
|
||||||
|
"$mod, mouse_down, workspace, e+1"
|
||||||
|
"$mod, mouse_up, workspace, e-1"
|
||||||
|
|
||||||
|
"$mod, F, fullscreen, 0"
|
||||||
|
|
||||||
|
"$mod, Space, exec, pkill rofi || rofi -show drun"
|
||||||
|
"$mod, C, exec, pkill rofi || rofi -show calc -modi calc -no-show-match -no-sort"
|
||||||
|
]
|
||||||
|
++ (
|
||||||
|
# workspaces
|
||||||
|
builtins.concatLists (builtins.genList (
|
||||||
|
i: let
|
||||||
|
ws = i + 1;
|
||||||
|
in [
|
||||||
|
"$mod, ${toString ws}, workspace, ${toString ws}"
|
||||||
|
"$mod SHIFT, ${toString ws}, movetoworkspace, ${toString ws}"
|
||||||
|
]
|
||||||
|
)
|
||||||
|
9)
|
||||||
|
)
|
||||||
|
++ [
|
||||||
|
"$mod, 0, workspace, 10"
|
||||||
|
"$mod, 0, movetoworkspace, 10"
|
||||||
|
];
|
||||||
|
|
||||||
|
bindm = [
|
||||||
|
"$mod, mouse:272, movewindow"
|
||||||
|
"$mod, mouse:273, resizewindow"
|
||||||
|
];
|
||||||
|
|
||||||
|
bindel = [
|
||||||
|
",XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"
|
||||||
|
",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
|
||||||
|
",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||||
|
",XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
|
||||||
|
",XF86MonBrightnessUp, exec, brightnessctl s 10%+"
|
||||||
|
",XF86MonBrightnessDown, exec, brightnessctl s 10%-"
|
||||||
|
];
|
||||||
|
|
||||||
|
bindl = [
|
||||||
|
",XF86AudioNext, exec, playerctl next"
|
||||||
|
",XF86AudioPause, exec, playerctl play-pause"
|
||||||
|
",XF86AudioPlay, exec, playerctl play-pause"
|
||||||
|
",XF86AudioPrev, exec, playerctl previous"
|
||||||
|
];
|
||||||
|
env = [
|
||||||
|
"HYPRCURSOR_THEME, Bibata-Original-Classic"
|
||||||
|
"HYPRCURSOR_SIZE, 24"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{...}: {
|
||||||
|
programs.hyprlock = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
Executable
+24
@@ -0,0 +1,24 @@
|
|||||||
|
{terminal, ...}: {
|
||||||
|
programs.kitty = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
themeFile = "kanagawa";
|
||||||
|
settings = {
|
||||||
|
confirm_os_window_close = 0;
|
||||||
|
window_padding_width = 10;
|
||||||
|
|
||||||
|
font_size = terminal.termSize;
|
||||||
|
font_family = terminal.termFont;
|
||||||
|
bold_font = "auto";
|
||||||
|
italic_font = "auto";
|
||||||
|
bold_italic_font = "auto";
|
||||||
|
# optimization
|
||||||
|
input_delay = 0;
|
||||||
|
repaint_delay = 2;
|
||||||
|
sync_to_monitor = false;
|
||||||
|
wayland_enable_ime = false;
|
||||||
|
allow_remote_control = true;
|
||||||
|
};
|
||||||
|
extraConfig = "include colors.conf";
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
[config]
|
||||||
|
# If set to enabled, it will check for updates when you run the matugen command, notifying you that an update is avaiable.
|
||||||
|
# WARNING: Matugen needs to be compiled with the `update-informer` feature for this to work.
|
||||||
|
version_check = false
|
||||||
|
|
||||||
|
[config.wallpaper]
|
||||||
|
# The base command to run for applying the wallpaper, shouldn't have spaces in it.
|
||||||
|
command = "swww"
|
||||||
|
|
||||||
|
# The arguments that will be provided to the command.
|
||||||
|
# Keywords like {{ mode }} or anything that works inside of hooks doesn't work here.
|
||||||
|
# The last argument will be the image path.
|
||||||
|
arguments = ["img", "--transition-type", "center", "--transition-fps", "120"]
|
||||||
|
|
||||||
|
# For example, killing the wallpaper daemon. Usage is like a normal hook.
|
||||||
|
# pre_hook = ""
|
||||||
|
|
||||||
|
[config.custom_keywords]
|
||||||
|
test = "aaaa"
|
||||||
|
|
||||||
|
[templates.name1]
|
||||||
|
# Relative paths will be resolved from the path `config.toml` is in.
|
||||||
|
input_path = "./colors.whatever-extension"
|
||||||
|
output_path = "./a/colors-generated.whatever-extension"
|
||||||
|
|
||||||
|
# This will use a different input path depending on what mode you use.
|
||||||
|
# input_path_modes = { dark = "./colors.whatever-extension", light = "./colors.whatever-extension" }
|
||||||
|
|
||||||
|
# This will compare all of the colors inside the array with the color you set as `compare_to`, and returns the closest color to it.
|
||||||
|
# You can then use `{{closest_color}}` inside templates and hooks.
|
||||||
|
colors_to_compare = [
|
||||||
|
{ name = "black", color = "#000000" },
|
||||||
|
{ name = "red", color = "#ff0000" },
|
||||||
|
{ name = "maroon", color = "#800000" },
|
||||||
|
{ name = "yellow", color = "#ffff00" },
|
||||||
|
{ name = "olive", color = "#808000" },
|
||||||
|
{ name = "lime", color = "#00ff00" },
|
||||||
|
{ name = "green", color = "#008000" },
|
||||||
|
{ name = "aqua", color = "#00ffff" },
|
||||||
|
{ name = "teal", color = "#008080" },
|
||||||
|
{ name = "blue", color = "#0000ff" },
|
||||||
|
{ name = "navy", color = "#000080" },
|
||||||
|
{ name = "fuchsia", color = "#ff00ff" },
|
||||||
|
{ name = "purple", color = "#800080" },
|
||||||
|
]
|
||||||
|
compare_to = "{{colors.primary.default.hex}}"
|
||||||
|
|
||||||
|
# Runs before the template is exported. You can use keywords here,
|
||||||
|
pre_hook = 'echo "source color {{colors.source_color.default.hex}}, source image {{image}}, closest color {{closest_color}}"'
|
||||||
|
# Runs after the template is exported. You can use keywords here.
|
||||||
|
post_hook = 'echo "after gen"'
|
||||||
|
|
||||||
|
# Only hex values
|
||||||
|
# https://m3.material.io/styles/color/advanced/adjust-existing-colors#1cc12e43-237b-45b9-8fe0-9a3549c1f61e
|
||||||
|
# Blend is set to true by default.
|
||||||
|
[config.custom_colors]
|
||||||
|
green = "#00ff00"
|
||||||
|
red = "#ff0000"
|
||||||
|
blue = { color = "#0000ff", blend = false }
|
||||||
|
|
||||||
|
### --- my config
|
||||||
|
[templates.kitty]
|
||||||
|
input_path = '~/.config/nixos/pkgs/matugen/custom/templates/kitty.conf'
|
||||||
|
output_path = '~/.config/kitty/colors.conf'
|
||||||
|
post_hook = "kitty @ set-colors -a -c ~/.config/kitty/colors.conf"
|
||||||
|
|
||||||
|
[templates.ags]
|
||||||
|
input_path = '~/.config/nixos/pkgs/matugen/custom/templates/ags.scss'
|
||||||
|
output_path = '~/.config/nixos/pkgs/ags/biscuit/colors.scss'
|
||||||
|
post_hook = "pkill gjs & ags run ~/.config/nixos/pkgs/ags/biscuit/app.ts & disown (jobs -p) &"
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
$background: {{colors.surface.dark.hex}};
|
||||||
|
$foreground: {{colors.on_surface.dark.hex}};
|
||||||
|
$primary: {{colors.primary.dark.hex}};
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
cursor {{colors.on_surface.default.hex}}
|
||||||
|
cursor_text_color {{colors.on_surface_variant.default.hex}}
|
||||||
|
|
||||||
|
foreground {{colors.on_surface.default.hex}}
|
||||||
|
background {{colors.surface.default.hex}}
|
||||||
|
selection_foreground {{colors.on_secondary.default.hex}}
|
||||||
|
selection_background {{colors.secondary_fixed_dim.default.hex}}
|
||||||
|
url_color {{colors.primary.default.hex}}
|
||||||
|
|
||||||
|
# black
|
||||||
|
color8 #262626
|
||||||
|
color0 #4c4c4c
|
||||||
|
|
||||||
|
# red
|
||||||
|
color1 #ac8a8c
|
||||||
|
color9 #c49ea0
|
||||||
|
|
||||||
|
# green
|
||||||
|
color2 #8aac8b
|
||||||
|
color10 #9ec49f
|
||||||
|
|
||||||
|
# yellow
|
||||||
|
color3 #aca98a
|
||||||
|
color11 #c4c19e
|
||||||
|
|
||||||
|
# blue
|
||||||
|
/* color4 #8f8aac */
|
||||||
|
color4 {{colors.primary.default.hex}}
|
||||||
|
color12 #a39ec4
|
||||||
|
|
||||||
|
# magenta
|
||||||
|
color5 #ac8aac
|
||||||
|
color13 #c49ec4
|
||||||
|
|
||||||
|
# cyan
|
||||||
|
color6 #8aacab
|
||||||
|
color14 #9ec3c4
|
||||||
|
|
||||||
|
# white
|
||||||
|
color15 #e7e7e7
|
||||||
|
color7 #f0f0f0
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
system,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [inputs.matugen.nixosModules.default];
|
||||||
|
home.file.".config/matugen/config.toml" = {
|
||||||
|
source = builtins.toPath ./custom/config.toml;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,174 @@
|
|||||||
|
{
|
||||||
|
plugins = {
|
||||||
|
alpha = {
|
||||||
|
enable = true;
|
||||||
|
layout = [
|
||||||
|
{
|
||||||
|
type = "padding";
|
||||||
|
val = 2;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "text";
|
||||||
|
val = [
|
||||||
|
" █████ █ ██"
|
||||||
|
" ██████ ██ ████ █ █"
|
||||||
|
" ██ █ █ ██ ████ ██ ███"
|
||||||
|
" █ █ █ ██ █ █ ██ █"
|
||||||
|
" █ █ ██ █ ████ ██ ███"
|
||||||
|
" ██ ██ ██ █ ███ █ ███ █ ██ ███ ███ ███ ████ ████"
|
||||||
|
" ██ ██ ██ █ █ ███ █ ████ ██ ███ ███ ███ ████ ███ █"
|
||||||
|
" ██ ██ ██ █ █ ███ ██ ██ ██ ██ ██ ██ ████ ████"
|
||||||
|
" ██ ██ ██ █ ██ █████ ██ ██ ██ ██ ██ ██ ██"
|
||||||
|
" ██ ██ ██ █ ████████ ██ ██ ██ ██ ██ ██ ██ ██"
|
||||||
|
" █ ██ ███ ███████ ██ ██ ██ ██ ██ ██ ██ ██"
|
||||||
|
" █ ███ ██ ██ ██ ██ █ ██ ██ ██ ██"
|
||||||
|
" ████ ██ ████ █ ██████ ███████ ██ ██ ██ ██"
|
||||||
|
" █ █████ ███████ ████ █████ ███ █ ███ ███ ███"
|
||||||
|
" █ ██ █████ ███ ███ ███ ███"
|
||||||
|
" █"
|
||||||
|
" █"
|
||||||
|
" ██"
|
||||||
|
];
|
||||||
|
opts = {
|
||||||
|
position = "center";
|
||||||
|
hl = "Type";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "padding";
|
||||||
|
val = 4;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "group";
|
||||||
|
val = [
|
||||||
|
{
|
||||||
|
type = "button";
|
||||||
|
val = " New File ";
|
||||||
|
on_press.__raw = "function() vim.cmd[[ene]] end";
|
||||||
|
opts = {
|
||||||
|
shortcut = "n";
|
||||||
|
keymap = [
|
||||||
|
"n"
|
||||||
|
"n"
|
||||||
|
"<cmd>ene<CR>"
|
||||||
|
{
|
||||||
|
noremap = true;
|
||||||
|
silent = true;
|
||||||
|
nowait = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
position = "center";
|
||||||
|
width = 50;
|
||||||
|
align_shortcut = "right";
|
||||||
|
hl_shortcut = "Keyword";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "padding";
|
||||||
|
val = 2;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "button";
|
||||||
|
val = " Find File ";
|
||||||
|
opts = {
|
||||||
|
shortcut = "f";
|
||||||
|
keymap = [
|
||||||
|
"n"
|
||||||
|
"f"
|
||||||
|
"<cmd>lua require('fzf-lua').files({ cwd = vim.loop.cwd() })<CR>"
|
||||||
|
{
|
||||||
|
noremap = true;
|
||||||
|
silent = true;
|
||||||
|
nowait = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
position = "center";
|
||||||
|
width = 50;
|
||||||
|
align_shortcut = "right";
|
||||||
|
hl_shortcut = "Keyword";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "padding";
|
||||||
|
val = 2;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "button";
|
||||||
|
val = " Recent Files ";
|
||||||
|
on_press.__raw = "function() require('telescope.builtin').oldfiles() end";
|
||||||
|
opts = {
|
||||||
|
shortcut = "r";
|
||||||
|
keymap = [
|
||||||
|
"n"
|
||||||
|
"r"
|
||||||
|
"<cmd>lua require('fzf-lua').oldfiles({ cwd = vim.loop.cwd() })<CR>"
|
||||||
|
{
|
||||||
|
noremap = true;
|
||||||
|
silent = true;
|
||||||
|
nowait = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
position = "center";
|
||||||
|
width = 50;
|
||||||
|
align_shortcut = "right";
|
||||||
|
hl_shortcut = "Keyword";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "padding";
|
||||||
|
val = 2;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "button";
|
||||||
|
val = " Find Text ";
|
||||||
|
on_press.__raw = "function() require('telescope.builtin').live_grep() end";
|
||||||
|
opts = {
|
||||||
|
shortcut = "g";
|
||||||
|
keymap = [
|
||||||
|
"n"
|
||||||
|
"g"
|
||||||
|
"<cmd>lua require('fzf-lua').live_grep()<CR>"
|
||||||
|
{
|
||||||
|
noremap = true;
|
||||||
|
silent = true;
|
||||||
|
nowait = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
position = "center";
|
||||||
|
width = 50;
|
||||||
|
align_shortcut = "right";
|
||||||
|
hl_shortcut = "Keyword";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "padding";
|
||||||
|
val = 2;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "button";
|
||||||
|
val = " Quit Neovim ";
|
||||||
|
on_press.__raw = "function() vim.cmd[[qa]] end";
|
||||||
|
opts = {
|
||||||
|
shortcut = "q";
|
||||||
|
keymap = [
|
||||||
|
"n"
|
||||||
|
"q"
|
||||||
|
"<cmd>qa<CR>"
|
||||||
|
{
|
||||||
|
noremap = true;
|
||||||
|
silent = true;
|
||||||
|
nowait = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
position = "center";
|
||||||
|
width = 50;
|
||||||
|
align_shortcut = "right";
|
||||||
|
hl_shortcut = "Keyword";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
# `plugins.mini.enable` with `plugins.mini.modules.icons` and `plugins.mini.mockDevIcons`.
|
||||||
|
# plugins.web-devicons.enable = true;
|
||||||
|
plugins.mini = {
|
||||||
|
enable = true;
|
||||||
|
mockDevIcons = true;
|
||||||
|
modules = [
|
||||||
|
];
|
||||||
|
};
|
||||||
|
plugins.telescope = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
nix-neovim = inputs.nix-neovim.packages.${pkgs.system}.default;
|
||||||
|
in {
|
||||||
|
programs.neovim.enable = false;
|
||||||
|
home.packages = [
|
||||||
|
nix-neovim
|
||||||
|
pkgs.lazygit
|
||||||
|
# ripgrep
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
programs.rofi = {
|
||||||
|
enable = true;
|
||||||
|
plugins = with pkgs; [
|
||||||
|
rofi-calc
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
/**
|
||||||
|
*
|
||||||
|
* Author : Aditya Shakya (adi1090x)
|
||||||
|
* Github : @adi1090x
|
||||||
|
*
|
||||||
|
* Colors
|
||||||
|
**/
|
||||||
|
|
||||||
|
* {
|
||||||
|
background: #1E2127FF;
|
||||||
|
background-alt: #282B31FF;
|
||||||
|
foreground: #FFFFFFFF;
|
||||||
|
selected: #61AFEFFF;
|
||||||
|
active: #98C379FF;
|
||||||
|
urgent: #E06C75FF;
|
||||||
|
}
|
||||||
@@ -0,0 +1,171 @@
|
|||||||
|
/**
|
||||||
|
*
|
||||||
|
* Author : Aditya Shakya (adi1090x)
|
||||||
|
* Github : @adi1090x
|
||||||
|
*
|
||||||
|
* Rofi Theme File
|
||||||
|
* Rofi Version: 1.7.3
|
||||||
|
**/
|
||||||
|
|
||||||
|
/*****----- Configuration -----*****/
|
||||||
|
configuration {
|
||||||
|
modi: "drun";
|
||||||
|
show-icons: true;
|
||||||
|
display-drun: "";
|
||||||
|
drun-display-format: "{name}";
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****----- Global Properties -----*****/
|
||||||
|
@import "shared/colors.rasi"
|
||||||
|
@import "shared/fonts.rasi"
|
||||||
|
|
||||||
|
/*****----- Main Window -----*****/
|
||||||
|
window {
|
||||||
|
transparency: "real";
|
||||||
|
location: center;
|
||||||
|
anchor: center;
|
||||||
|
fullscreen: false;
|
||||||
|
width: 400px;
|
||||||
|
x-offset: 0px;
|
||||||
|
y-offset: 0px;
|
||||||
|
|
||||||
|
enabled: true;
|
||||||
|
margin: 0px;
|
||||||
|
padding: 0px;
|
||||||
|
border: 0px solid;
|
||||||
|
border-radius: 12px;
|
||||||
|
border-color: @selected;
|
||||||
|
background-color: @background;
|
||||||
|
cursor: "default";
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****----- Main Box -----*****/
|
||||||
|
mainbox {
|
||||||
|
enabled: true;
|
||||||
|
spacing: 0px;
|
||||||
|
margin: 0px;
|
||||||
|
padding: 0px;
|
||||||
|
border: 0px solid;
|
||||||
|
border-radius: 0px 0px 0px 0px;
|
||||||
|
border-color: @selected;
|
||||||
|
background-color: transparent;
|
||||||
|
children: [ "inputbar", "listview" ];
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****----- Inputbar -----*****/
|
||||||
|
inputbar {
|
||||||
|
enabled: true;
|
||||||
|
spacing: 10px;
|
||||||
|
margin: 0px;
|
||||||
|
padding: 15px;
|
||||||
|
border: 0px solid;
|
||||||
|
border-radius: 0px;
|
||||||
|
border-color: @selected;
|
||||||
|
background-color: @selected;
|
||||||
|
text-color: @background;
|
||||||
|
children: [ "prompt", "entry" ];
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt {
|
||||||
|
enabled: true;
|
||||||
|
background-color: inherit;
|
||||||
|
text-color: inherit;
|
||||||
|
}
|
||||||
|
textbox-prompt-colon {
|
||||||
|
enabled: true;
|
||||||
|
expand: false;
|
||||||
|
str: "::";
|
||||||
|
background-color: inherit;
|
||||||
|
text-color: inherit;
|
||||||
|
}
|
||||||
|
entry {
|
||||||
|
enabled: true;
|
||||||
|
background-color: inherit;
|
||||||
|
text-color: inherit;
|
||||||
|
cursor: text;
|
||||||
|
placeholder: "Search...";
|
||||||
|
placeholder-color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****----- Listview -----*****/
|
||||||
|
listview {
|
||||||
|
enabled: true;
|
||||||
|
columns: 1;
|
||||||
|
lines: 6;
|
||||||
|
cycle: true;
|
||||||
|
dynamic: true;
|
||||||
|
scrollbar: false;
|
||||||
|
layout: vertical;
|
||||||
|
reverse: false;
|
||||||
|
fixed-height: true;
|
||||||
|
fixed-columns: true;
|
||||||
|
|
||||||
|
spacing: 5px;
|
||||||
|
margin: 0px;
|
||||||
|
padding: 0px;
|
||||||
|
border: 0px solid;
|
||||||
|
border-radius: 0px;
|
||||||
|
border-color: @selected;
|
||||||
|
background-color: transparent;
|
||||||
|
text-color: @foreground;
|
||||||
|
cursor: "default";
|
||||||
|
}
|
||||||
|
scrollbar {
|
||||||
|
handle-width: 5px ;
|
||||||
|
handle-color: @selected;
|
||||||
|
border-radius: 0px;
|
||||||
|
background-color: @background-alt;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****----- Elements -----*****/
|
||||||
|
element {
|
||||||
|
enabled: true;
|
||||||
|
spacing: 10px;
|
||||||
|
margin: 0px;
|
||||||
|
padding: 8px;
|
||||||
|
border: 0px solid;
|
||||||
|
border-radius: 0px;
|
||||||
|
border-color: @selected;
|
||||||
|
background-color: transparent;
|
||||||
|
text-color: @foreground;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
element normal.normal {
|
||||||
|
background-color: @background;
|
||||||
|
text-color: @foreground;
|
||||||
|
}
|
||||||
|
element selected.normal {
|
||||||
|
background-color: @background-alt;
|
||||||
|
text-color: @foreground;
|
||||||
|
}
|
||||||
|
element-icon {
|
||||||
|
background-color: transparent;
|
||||||
|
text-color: inherit;
|
||||||
|
size: 32px;
|
||||||
|
cursor: inherit;
|
||||||
|
}
|
||||||
|
element-text {
|
||||||
|
background-color: transparent;
|
||||||
|
text-color: inherit;
|
||||||
|
highlight: inherit;
|
||||||
|
cursor: inherit;
|
||||||
|
vertical-align: 0.5;
|
||||||
|
horizontal-align: 0.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****----- Message -----*****/
|
||||||
|
error-message {
|
||||||
|
padding: 15px;
|
||||||
|
border: 2px solid;
|
||||||
|
border-radius: 12px;
|
||||||
|
border-color: @selected;
|
||||||
|
background-color: @background;
|
||||||
|
text-color: @foreground;
|
||||||
|
}
|
||||||
|
textbox {
|
||||||
|
background-color: @background;
|
||||||
|
text-color: @foreground;
|
||||||
|
vertical-align: 0.5;
|
||||||
|
horizontal-align: 0.0;
|
||||||
|
highlight: none;
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
## Author : Aditya Shakya (adi1090x)
|
||||||
|
## Github : @adi1090x
|
||||||
|
#
|
||||||
|
## Rofi : Launcher (Modi Drun, Run, File Browser, Window)
|
||||||
|
#
|
||||||
|
## Available Styles
|
||||||
|
#
|
||||||
|
## style-1 style-2 style-3 style-4 style-5
|
||||||
|
## style-6 style-7 style-8 style-9 style-10
|
||||||
|
## style-11 style-12 style-13 style-14 style-15
|
||||||
|
|
||||||
|
dir="$HOME/.config/wofi/launcher/config.rasi"
|
||||||
|
theme='style-1'
|
||||||
|
|
||||||
|
## Run
|
||||||
|
wofi \
|
||||||
|
-show drun \
|
||||||
|
-theme ${dir}/${theme}.rasi
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
/**
|
||||||
|
*
|
||||||
|
* Author : Aditya Shakya (adi1090x)
|
||||||
|
* Github : @adi1090x
|
||||||
|
*
|
||||||
|
* Colors
|
||||||
|
*
|
||||||
|
* Available Colors Schemes
|
||||||
|
*
|
||||||
|
* adapta catppuccin everforest navy paper
|
||||||
|
* arc cyberpunk gruvbox nord solarized
|
||||||
|
* black dracula lovelace onedark yousai
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
|
||||||
|
/* Import color-scheme from `colors` directory */
|
||||||
|
|
||||||
|
@import "~/.config/wofi/colors/onedark.rasi"
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
/**
|
||||||
|
*
|
||||||
|
* Author : Aditya Shakya (adi1090x)
|
||||||
|
* Github : @adi1090x
|
||||||
|
*
|
||||||
|
* Fonts
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
|
||||||
|
* {
|
||||||
|
font: "Iosevka Nerd Font 10";
|
||||||
|
}
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
{lib, ...}: {
|
||||||
|
programs.starship = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
format = lib.concatStrings [
|
||||||
|
"$username"
|
||||||
|
"$hostname"
|
||||||
|
"$directory"
|
||||||
|
"$git_branch"
|
||||||
|
"$git_state"
|
||||||
|
"$git_status"
|
||||||
|
"$cmd_duration"
|
||||||
|
"$line_break"
|
||||||
|
"$python"
|
||||||
|
"$character"
|
||||||
|
];
|
||||||
|
|
||||||
|
directory = {
|
||||||
|
style = "blue";
|
||||||
|
};
|
||||||
|
|
||||||
|
character = {
|
||||||
|
success_symbol = "[→](purple)";
|
||||||
|
error_symbol = "[→](red)";
|
||||||
|
vimcmd_symbol = "[←](green)";
|
||||||
|
};
|
||||||
|
|
||||||
|
git_branch = {
|
||||||
|
format = "[$branch]($style)";
|
||||||
|
style = "bright-black";
|
||||||
|
};
|
||||||
|
git_status = {
|
||||||
|
format = "[(*$conflicted$untracked$modified$staged$renamed$deleted) $ahead_behind$stashed]($style)";
|
||||||
|
style = "cyan";
|
||||||
|
conflicted = "";
|
||||||
|
untracked = "";
|
||||||
|
modified = "";
|
||||||
|
staged = "";
|
||||||
|
renamed = "";
|
||||||
|
deleted = "";
|
||||||
|
stashed = "≡";
|
||||||
|
};
|
||||||
|
git_state = {
|
||||||
|
format = "([$state( $progress_current/$progress_total)]($style)) ";
|
||||||
|
style = "bright-black";
|
||||||
|
};
|
||||||
|
|
||||||
|
cmd_duration = {
|
||||||
|
format = "[$duration]($style) ";
|
||||||
|
style = "yellow";
|
||||||
|
};
|
||||||
|
|
||||||
|
python = {
|
||||||
|
format = "[$virtualenv]($style) ";
|
||||||
|
style = "bright-black";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# home.file.".config/starship.toml" = {
|
||||||
|
# source = builtins.toPath ./pure.toml;
|
||||||
|
# };
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
programs.steam = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
{...}: {
|
||||||
|
services.swww.enable = true;
|
||||||
|
}
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 42 KiB |
@@ -0,0 +1,229 @@
|
|||||||
|
{ username, hostname, ... }: {
|
||||||
|
programs.waybar = {
|
||||||
|
enable = true;
|
||||||
|
settings = [
|
||||||
|
{
|
||||||
|
margin-top = 10;
|
||||||
|
margin-left = 10;
|
||||||
|
margin-right = 10;
|
||||||
|
layer = "top";
|
||||||
|
position = "top";
|
||||||
|
|
||||||
|
modules-left = [
|
||||||
|
"custom/start"
|
||||||
|
"hyprland/submap"
|
||||||
|
"hyprland/workspaces"
|
||||||
|
"hyprland/window"
|
||||||
|
];
|
||||||
|
modules-right = [
|
||||||
|
"tray"
|
||||||
|
"temperature"
|
||||||
|
"cpu"
|
||||||
|
"memory"
|
||||||
|
"disk"
|
||||||
|
"network"
|
||||||
|
"pulseaudio"
|
||||||
|
"battery"
|
||||||
|
"power-profiles-daemon"
|
||||||
|
"clock"
|
||||||
|
];
|
||||||
|
"cpu" = {
|
||||||
|
states = {
|
||||||
|
critical = 85;
|
||||||
|
};
|
||||||
|
interval = 1;
|
||||||
|
format = " {usage:2}%";
|
||||||
|
on-click = "kitty btop";
|
||||||
|
};
|
||||||
|
"memory" = {
|
||||||
|
states = {
|
||||||
|
critical = 85;
|
||||||
|
};
|
||||||
|
interval = 1;
|
||||||
|
format = " {percentage}%";
|
||||||
|
on-click = "kitty btop";
|
||||||
|
};
|
||||||
|
"disk" = {
|
||||||
|
states = {
|
||||||
|
critical = 85;
|
||||||
|
};
|
||||||
|
interval = 5;
|
||||||
|
format = " {percentage_used}%";
|
||||||
|
on-click = "kitty btop";
|
||||||
|
};
|
||||||
|
"network" = {
|
||||||
|
format-ethernet = " {bandwidthDownOctets}";
|
||||||
|
format-wifi = " {signalStrength}%";
|
||||||
|
format-disconnected = "";
|
||||||
|
format-disabled = "";
|
||||||
|
tooltip = false;
|
||||||
|
on-click = "rofi-network-manager";
|
||||||
|
};
|
||||||
|
"temperature" = {
|
||||||
|
critical-threshold = 80;
|
||||||
|
format = " {temperatureC}°C";
|
||||||
|
interval = 1;
|
||||||
|
on-click = "kitty btop";
|
||||||
|
};
|
||||||
|
"power-profiles-daemon" = {
|
||||||
|
format = "{icon} {profile}";
|
||||||
|
format-icons = {
|
||||||
|
performance = "";
|
||||||
|
power-saver = "";
|
||||||
|
balanced = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"hyprland/workspaces" = {
|
||||||
|
format = "{name}";
|
||||||
|
format-icons = {
|
||||||
|
default = " ";
|
||||||
|
active = " ";
|
||||||
|
urgent = " ";
|
||||||
|
};
|
||||||
|
on-scroll-down = "hyprctl dispatch workspace e+1";
|
||||||
|
on-scroll-up = "hyprctl dispatch workspace e-1";
|
||||||
|
};
|
||||||
|
"hyprland/window" = {
|
||||||
|
icon = true;
|
||||||
|
max-length = 45;
|
||||||
|
separate-outputs = false;
|
||||||
|
rewrite = {
|
||||||
|
"" = "${username}@${hostname}";
|
||||||
|
"~" = "${username}@${hostname}";
|
||||||
|
};
|
||||||
|
on-click-right = "hyprctl dispatch fullscreen 0";
|
||||||
|
on-click-middle = "hyprctl dispatch killactive";
|
||||||
|
on-click = "hyprctl dispatch fullscreen 1";
|
||||||
|
};
|
||||||
|
"hyprland/submap" = {
|
||||||
|
format = " {}";
|
||||||
|
on-click = "hyprctl dispatch submap reset";
|
||||||
|
};
|
||||||
|
"clock" = {
|
||||||
|
format = "{:%b %d, %I:%M %p}";
|
||||||
|
};
|
||||||
|
"tray" = {
|
||||||
|
spacing = 12;
|
||||||
|
};
|
||||||
|
"taskbar" = {
|
||||||
|
icon-size = 10;
|
||||||
|
icon-theme = "Papirus-Dark";
|
||||||
|
on-click = "activate";
|
||||||
|
on-click-right = "fullscreen";
|
||||||
|
on-click-middle = "close";
|
||||||
|
on-scroll-up = "maximize";
|
||||||
|
on-scroll-down = "minimize";
|
||||||
|
};
|
||||||
|
"pulseaudio" = {
|
||||||
|
format = "{icon} {volume}% {format_source}";
|
||||||
|
format-bluetooth = "{volume}% {icon} {format_source}";
|
||||||
|
format-bluetooth-muted = " {icon} {volume}% {format_source_muted}";
|
||||||
|
format-muted = " {volume}% {format_source_muted}";
|
||||||
|
format-source = "";
|
||||||
|
format-source-muted = "";
|
||||||
|
format-icons = {
|
||||||
|
headphone = "";
|
||||||
|
hands-free = "";
|
||||||
|
headset = "";
|
||||||
|
phone = "";
|
||||||
|
portable = "";
|
||||||
|
car = "";
|
||||||
|
default = [
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
];
|
||||||
|
};
|
||||||
|
on-click = "pavucontrol";
|
||||||
|
on-click-right = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
|
||||||
|
};
|
||||||
|
"battery" = {
|
||||||
|
states = {
|
||||||
|
warning = 30;
|
||||||
|
critical = 15;
|
||||||
|
};
|
||||||
|
format = "{icon} {capacity}%";
|
||||||
|
format-charging = " {capacity}%";
|
||||||
|
format-plugged = " {capacity}%";
|
||||||
|
format-icons = [
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
];
|
||||||
|
interval = 1;
|
||||||
|
on-click = "";
|
||||||
|
};
|
||||||
|
"custom/start" = {
|
||||||
|
format = "";
|
||||||
|
on-click-right = "rofi -show power-menu -modi power-menu:rofi-power-menu";
|
||||||
|
on-click = "rofi -show drun";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
style = ''
|
||||||
|
* {
|
||||||
|
font-size: 12px;
|
||||||
|
font-family: Font Awesome, monospace;
|
||||||
|
font-weight: bold;
|
||||||
|
color: @text;
|
||||||
|
transition: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
background: rgba(0,0,0,0);
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
border-radius: 0px;
|
||||||
|
margin: 0px;
|
||||||
|
background: none;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button:hover, #custom-start:hover, #window:hover {
|
||||||
|
border: none;
|
||||||
|
outline: none;
|
||||||
|
background: none;
|
||||||
|
color: @text;
|
||||||
|
background-size: 300% 300%;
|
||||||
|
background: @surface0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.active, #submap {
|
||||||
|
background: @surface1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-start {
|
||||||
|
padding: 0px 5px;
|
||||||
|
color: @sky;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#window, #submap {
|
||||||
|
padding: 0px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modules-left, .modules-right {
|
||||||
|
background-color: @crust;
|
||||||
|
border: 2px solid @surface1;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 0 5px;
|
||||||
|
}
|
||||||
|
#submap, #workspaces, #cpu, #memory, #disk, #clock, #window, #tray, #pulseaudio, #battery, #network, #temperature, #power-profiles-daemon, #custom-exit, #custom-start {
|
||||||
|
margin: 0 5px;
|
||||||
|
}
|
||||||
|
.critical, .muted, .performance {
|
||||||
|
color: @red;
|
||||||
|
}
|
||||||
|
.warning, .urgent {
|
||||||
|
color: @yellow;
|
||||||
|
}
|
||||||
|
.charging, .plugged, .power-saver {
|
||||||
|
color: @green;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
terminal,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
zoxide
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.zsh.enable = true;
|
||||||
|
programs.zoxide.enable = true;
|
||||||
|
|
||||||
|
programs.zsh = {
|
||||||
|
enableCompletion = false;
|
||||||
|
syntaxHighlighting.enable = false;
|
||||||
|
shellAliases = terminal.shellAliases;
|
||||||
|
history.size = 10000;
|
||||||
|
antidote = {
|
||||||
|
enable = true;
|
||||||
|
plugins = [
|
||||||
|
"MichaelAquilina/zsh-autoswitch-virtualenv"
|
||||||
|
"jeffreytse/zsh-vi-mode"
|
||||||
|
"zdharma-continuum/fast-syntax-highlighting kind:defer"
|
||||||
|
"zsh-users/zsh-autosuggestions kind:defer"
|
||||||
|
"zsh-users/zsh-history-substring-search kind:defer"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
initContent = ''
|
||||||
|
# zsh-autocomplete
|
||||||
|
# bindkey -M menuselect '^M' .accept-line # run code when selected completion
|
||||||
|
|
||||||
|
autoload -Uz compinit
|
||||||
|
if [ "$(date +'%j')" != "$(stat -f '%Sm' -t '%j' ~/.zcompdump 2>/dev/null)" ]; then
|
||||||
|
compinit
|
||||||
|
else
|
||||||
|
compinit -C
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
hardware.amdgpu.initrd.enable = true;
|
|
||||||
}
|
|
||||||
@@ -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";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,119 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
hostname,
|
||||||
|
timezone,
|
||||||
|
touchpadSupport,
|
||||||
|
inputs,
|
||||||
|
logitech-hardware,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
environment.systemPackages = with pkgs;
|
||||||
|
[
|
||||||
|
python313Full
|
||||||
|
|
||||||
|
gobject-introspection
|
||||||
|
gtk3
|
||||||
|
libxml2
|
||||||
|
|
||||||
|
git
|
||||||
|
|
||||||
|
cargo
|
||||||
|
gcc
|
||||||
|
rustc
|
||||||
|
nodejs
|
||||||
|
yarn
|
||||||
|
|
||||||
|
busybox
|
||||||
|
|
||||||
|
p7zip
|
||||||
|
|
||||||
|
btop
|
||||||
|
tldr
|
||||||
|
|
||||||
|
jq
|
||||||
|
lm_sensors
|
||||||
|
gparted
|
||||||
|
|
||||||
|
notify
|
||||||
|
|
||||||
|
mangohud
|
||||||
|
]
|
||||||
|
++ [
|
||||||
|
inputs.matugen.packages.${pkgs.system}.default
|
||||||
|
]
|
||||||
|
++ lib.optionals (logitech-hardware.enable == true) [
|
||||||
|
solaar
|
||||||
|
];
|
||||||
|
boot.loader = {
|
||||||
|
systemd-boot = {
|
||||||
|
enable = false;
|
||||||
|
};
|
||||||
|
efi = {
|
||||||
|
canTouchEfiVariables = true;
|
||||||
|
};
|
||||||
|
grub = {
|
||||||
|
enable = true;
|
||||||
|
device = "nodev";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware = {
|
||||||
|
logitech.wireless.enable = logitech-hardware.enable;
|
||||||
|
bluetooth = {
|
||||||
|
enable = true;
|
||||||
|
powerOnBoot = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
i18n.defaultLocale = "en_US.UTF-8";
|
||||||
|
console = {
|
||||||
|
font = "Lat2-Terminus16";
|
||||||
|
useXkbConfig = true; # use xkb.options in tty.
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.hostName = "${hostname}";
|
||||||
|
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
||||||
|
|
||||||
|
time.timeZone = "${timezone}";
|
||||||
|
|
||||||
|
services = {
|
||||||
|
openssh = {
|
||||||
|
enable = true;
|
||||||
|
ports = [22];
|
||||||
|
settings = {
|
||||||
|
PasswordAuthentication = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
libinput.enable = touchpadSupport;
|
||||||
|
blueman.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.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
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
zsh.enable = true;
|
||||||
|
fish.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||||
|
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||||
|
# Or disable the firewall altogether.
|
||||||
|
# networking.firewall.enable = false;
|
||||||
|
|
||||||
|
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||||
|
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||||
|
|
||||||
|
# Copy the NixOS configuration file and link it from the resulting system
|
||||||
|
# (/run/current-system/configuration.nix). This is useful in case you
|
||||||
|
# accidentally delete configuration.nix.
|
||||||
|
# ONLY WORKS non-flake
|
||||||
|
# system.copySystemConfiguration = true;
|
||||||
|
}
|
||||||
@@ -0,0 +1,107 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
lock-false = {
|
||||||
|
Value = false;
|
||||||
|
Status = "locked";
|
||||||
|
};
|
||||||
|
lock-true = {
|
||||||
|
Value = true;
|
||||||
|
Status = "locked";
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
programs = {
|
||||||
|
firefox = {
|
||||||
|
enable = true;
|
||||||
|
languagePacks = ["en-US"];
|
||||||
|
|
||||||
|
/*
|
||||||
|
---- POLICIES ----
|
||||||
|
*/
|
||||||
|
# Check about:policies#documentation for options.
|
||||||
|
policies = {
|
||||||
|
DisableTelemetry = true;
|
||||||
|
DisableFirefoxStudies = true;
|
||||||
|
EnableTrackingProtection = {
|
||||||
|
Value = true;
|
||||||
|
Locked = true;
|
||||||
|
Cryptomining = true;
|
||||||
|
Fingerprinting = true;
|
||||||
|
};
|
||||||
|
DisablePocket = true;
|
||||||
|
DisableFirefoxAccounts = true;
|
||||||
|
DisableAccounts = true;
|
||||||
|
DisableFirefoxScreenshots = true;
|
||||||
|
OverrideFirstRunPage = "";
|
||||||
|
OverridePostUpdatePage = "";
|
||||||
|
DontCheckDefaultBrowser = true;
|
||||||
|
DisplayBookmarksToolbar = "never"; # alternatives: "always" or "newtab"
|
||||||
|
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
|
||||||
|
SearchBar = "unified"; # alternative: "separate"
|
||||||
|
|
||||||
|
/*
|
||||||
|
---- EXTENSIONS ----
|
||||||
|
*/
|
||||||
|
# Check about:support for extension/add-on ID strings.
|
||||||
|
# Valid strings for installation_mode are "allowed", "blocked",
|
||||||
|
# "force_installed" and "normal_installed".
|
||||||
|
ExtensionSettings = {
|
||||||
|
"*".installation_mode = "blocked"; # blocks all addons except the ones specified below
|
||||||
|
# uBlock Origin:
|
||||||
|
"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/file/4493940/bitwarden_password_manager-2025.5.0.xpi";
|
||||||
|
installation_mode = "force_installed";
|
||||||
|
};
|
||||||
|
"tridactyl.vim@cmcaine.co.uk" = {
|
||||||
|
install_url = "https://addons.mozilla.org/firefox/downloads/file/4405615/tridactyl_vim-1.24.2.xpi";
|
||||||
|
installation_mode = "force_installed";
|
||||||
|
};
|
||||||
|
# Privacy Badger:
|
||||||
|
# "jid1-MnnxcxisBPnSXQ@jetpack" = {
|
||||||
|
# install_url = "https://addons.mozilla.org/firefox/downloads/latest/privacy-badger17/latest.xpi";
|
||||||
|
# installation_mode = "force_installed";
|
||||||
|
# };
|
||||||
|
# 1Password:
|
||||||
|
# "{d634138d-c276-4fc8-924b-40a0ea21d284}" = {
|
||||||
|
# install_url = "https://addons.mozilla.org/firefox/downloads/latest/1password-x-password-manager/latest.xpi";
|
||||||
|
# installation_mode = "force_installed";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
---- PREFERENCES ----
|
||||||
|
*/
|
||||||
|
# Check about:config for options.
|
||||||
|
preferences = {
|
||||||
|
# "browser.contentblocking.category" = {
|
||||||
|
# Value = "strict";
|
||||||
|
# Status = "locked";
|
||||||
|
# };
|
||||||
|
"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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
bibata-cursors
|
||||||
|
hyprcursor
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
system,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
unlisted-fonts = inputs.unlisted-fonts.packages.${pkgs.system};
|
||||||
|
in {
|
||||||
|
fonts.packages = with pkgs; [
|
||||||
|
unlisted-fonts.monolisa
|
||||||
|
unlisted-fonts.rubik
|
||||||
|
nerd-fonts.fira-code
|
||||||
|
nerd-fonts.jetbrains-mono
|
||||||
|
nerd-fonts.iosevka
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
services.printing.enable = true;
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{ pkgs, ... }: {
|
||||||
|
# Enable sound.
|
||||||
|
# services.pulseaudio.enable = true;
|
||||||
|
# OR
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
pavucontrol
|
||||||
|
];
|
||||||
|
security.rtkit.enable = true;
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
git
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
wl-clipboard
|
||||||
|
hypridle
|
||||||
|
hyprlock
|
||||||
|
brightnessctl
|
||||||
|
];
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
hardware = {
|
||||||
|
graphics.enable = true;
|
||||||
|
};
|
||||||
|
services = {
|
||||||
|
# displayManager.sddm.wayland = true;
|
||||||
|
displayManager.gdm.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
fonts.packages = with pkgs; [
|
|
||||||
nerd-fonts.fira-code
|
|
||||||
nerd-fonts.jetbrains-mono
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
hardware = {
|
|
||||||
bluetooth = {
|
|
||||||
enable = true;
|
|
||||||
powerOnBoot = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
networking = {
|
|
||||||
networkmanager.enable = true;
|
|
||||||
firewall = {
|
|
||||||
enable = true;
|
|
||||||
allowedTCPPorts = [22 80];
|
|
||||||
allowedUDPPorts = [53];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -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 = [
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
security.pam.services.greetd.enableGnomeKeyring = true;
|
|
||||||
}
|
|
||||||
@@ -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;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{myConfig, ...}: {
|
|
||||||
time.timeZone = myConfig.nixos.timezone;
|
|
||||||
}
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user