77 Commits

Author SHA1 Message Date
biscuit 59f4b37a2c hypr: preload firefox 2025-05-19 14:39:42 -05:00
biscuit 2e7d8fef40 upd 2025-05-19 12:51:19 -05:00
biscuit e193f075e2 nix: added astal.io 2025-05-16 06:47:19 -05:00
biscuit 34400702a8 upd 2025-05-16 06:42:25 -05:00
biscuit 01ac3de3ff added theme 2025-05-16 06:34:55 -05:00
biscuit 6b5d28d12b test 2025-05-15 19:16:04 -05:00
biscuit dd9d2ec9d3 test 2025-05-15 19:15:53 -05:00
biscuit bb04a5d1fd (nix) astal 2025-05-15 19:14:42 -05:00
biscuit 861afe8e83 added astal-apps 2025-05-15 18:32:04 -05:00
biscuit 45639b77cf astal: major changes 2025-05-15 17:44:23 -05:00
biscuit 82ca6c1bf1 nix: use busybox 2025-05-15 15:03:29 -05:00
biscuit ae8b9fde5d nix: fixed 2025-05-15 14:58:56 -05:00
biscuit d2e772a986 nix: added python313 and unzip 2025-05-15 14:55:06 -05:00
biscuit e981f03e03 nix: cleaned up files 2025-05-15 14:54:33 -05:00
biscuit fd30f8d1fd added cargo 2025-05-15 14:51:17 -05:00
biscuit 5b89c099c9 added rust 2025-05-15 14:49:43 -05:00
biscuit bda8f85445 added cursor 2025-05-15 14:23:19 -05:00
biscuit bfbd2d8abe hypr: added bibata cursor 2025-05-15 14:13:00 -05:00
biscuit ced9937c09 README: added important info 2025-05-15 14:06:58 -05:00
biscuit a187fb5ebf nix: fix font unable to initialize 2025-05-15 14:05:31 -05:00
biscuit 1b74cf48d0 nix: organized even further 2025-05-15 14:04:28 -05:00
biscuit 87f2adb3c9 nix: fix cleanup 2 2025-05-15 13:58:59 -05:00
biscuit 0cdbf3dc00 nix: fix cleanup 1 2025-05-15 13:53:44 -05:00
biscuit 64237058a2 nix: cleaned up 2025-05-15 13:50:58 -05:00
biscuit 5ffe2fe09f hypr: numlock by default 2025-05-15 13:44:46 -05:00
biscuit 407b909aab astal: removed notif module 2025-05-15 13:44:34 -05:00
biscuit c819cb6c01 hypr: changed animation 2025-05-15 13:34:45 -05:00
biscuit e1d99a0279 (astal) changed to biscuit 2025-05-15 13:26:44 -05:00
biscuit 3a1ce68ccf sync 2025-05-15 10:35:33 -05:00
biscuit 2574f4935f added nodejs 2025-05-14 16:29:22 -05:00
biscuit c6aafcbcca upd 2025-05-14 16:14:20 -05:00
biscuit d33af4042e added astal back 2025-05-14 15:24:04 -05:00
biscuit 6492901dda removed astal 2025-05-14 15:22:08 -05:00
biscuit 1c9fee8aca added fastfetch 2025-05-14 09:52:16 -05:00
biscuit 79963a171b (hypr) replaced waybar with hyprpanel 2025-05-14 09:41:47 -05:00
biscuit bfb74c0f6e cleaned up nix 2025-05-14 09:33:06 -05:00
biscuit 01589d2fb7 upd 2025-05-14 09:23:12 -05:00
biscuit db7066bb35 (hypr) changed gaps 2025-05-14 09:15:12 -05:00
biscuit a7a6593e40 display manager (gdm) added 2025-05-14 09:11:02 -05:00
biscuit 4d979ce197 fixed waybar 2025-05-14 06:59:28 -05:00
biscuit 0a5a621c99 added nerdfont 2025-05-14 06:59:24 -05:00
biscuit d557938f1d wip 2025-05-14 06:51:16 -05:00
biscuit 28c1409053 added waybar 2025-05-14 06:43:51 -05:00
biscuit a6b08c1a98 organized files 2025-05-14 06:35:05 -05:00
biscuit 2232374d24 cleanup of useless pkgs 2025-05-14 06:30:50 -05:00
biscuit 4ed41b1279 wip 2025-05-14 06:24:05 -05:00
biscuit 2ec8cd6aaa added hyprpanel 2025-05-14 06:05:40 -05:00
biscuit 697be1193f incomprehensible mess 2025-05-13 20:43:26 -05:00
biscuit 82e38f7cd6 added astal 2025-05-13 20:30:52 -05:00
biscuit 97f24c894b added ags essentials 2025-05-13 19:53:24 -05:00
biscuit cc179c30a3 update ags 2025-05-13 19:43:34 -05:00
biscuit 0f4d658121 keybind equivalent vim 2025-05-13 19:28:14 -05:00
biscuit 836c18359f added new confs 2025-05-13 19:24:35 -05:00
biscuit a155d3fba1 monitor set to highest possible 2025-05-13 19:19:08 -05:00
biscuit a549fafc72 keybinds 2025-05-13 19:15:38 -05:00
biscuit 47e6fcf96f added firefox 2025-05-13 19:11:11 -05:00
biscuit 35ca5c8bc0 upd firefox 2025-05-13 19:07:02 -05:00
biscuit 923dac6f63 wip 2025-05-13 18:59:06 -05:00
biscuit 9423554aa4 wip 2025-05-13 18:58:32 -05:00
biscuit d9fc308a51 update 2025-05-13 18:36:55 -05:00
biscuit eef4be887a fixed audio issue 2025-05-13 18:31:56 -05:00
biscuit 2576eacb6b update 2025-05-13 18:17:17 -05:00
biscuit 9290d27146 minor change 2025-05-13 16:29:07 -05:00
biscuit b93b0a6dd5 upd 2025-05-13 16:26:47 -05:00
biscuit 387cc54577 removed plugins 2025-05-13 15:38:19 -05:00
biscuit 1598b620b9 sync 2025-05-13 15:35:43 -05:00
biscuit 2ec607e5c0 WIP 2025-05-13 14:30:52 -05:00
biscuit 61f9633006 fixed zoxide 2025-05-13 13:05:50 -05:00
biscuit f3859db703 sync 2025-05-13 13:00:11 -05:00
biscuit 867847a059 added lazygit 2025-05-13 12:22:47 -05:00
biscuit 467f7d47f0 added p7zip to system 2025-05-13 12:22:43 -05:00
biscuit 5d7d8e4b4f WIP 2025-05-13 11:22:45 -05:00
biscuit 94f91e9a6d WIP 2025-05-13 09:42:02 -05:00
biscuit 904529022f WIP 2025-05-13 09:38:18 -05:00
biscuit 6f6145f1c0 backup 2025-05-06 14:58:15 -05:00
biscuit e209ddd352 changed user name 2025-05-06 11:23:09 -05:00
biscuit 0c8d4ae178 initial commit 2025-05-05 21:03:01 -05:00
95 changed files with 1345 additions and 2874 deletions
View File
+4 -56
View File
@@ -1,58 +1,6 @@
# Sakamoto NixOS # Getting Started
Sakamoto NixOS is built with various profiles intended for reproducibility. `nixos-rebuild switch --flake LOCATION#HOST_NAME`
`home-manager switch --flake LOCATION#HOST_NAME`
## Available Hosts Change `LOCATION` and `HOST_NAME`.
- 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
```
Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 MiB

-82
View File
@@ -1,82 +0,0 @@
{
hostname = "hakase";
username = "kenji";
timezone = "America/Chicago";
vpn = {
vpnEnable = false;
vpnSecretFile = "/home/kenji/Wireguard/secret";
};
gitProfile = {
user = "biscuit";
email = "biscuit@sakamoto.dev";
defaultBranch = "master";
};
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
User biscuit
HostName 192.168.68.81
'';
# BUILD (optional), you can remove these blocks.
builder = {
trustedUsers = [
"@groups"
"biscuit"
];
buildMachines = [
{
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
+250 -662
View File
File diff suppressed because it is too large Load Diff
+64 -59
View File
@@ -4,93 +4,98 @@
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
home-manager.url = "github:nix-community/home-manager"; home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs"; # `follows` ensure it follows nixpkgs versiona. Avoids breaking updates. home-manager.inputs.nixpkgs.follows = "nixpkgs"; # ensures version follows nixpkgs
darwin.url = "github:lnl7/nix-darwin";
darwin.inputs.nixpkgs.follows = "nixpkgs";
ags.url = "github:aylur/ags";
ags.inputs.nixpkgs.follows = "nixpkgs";
hyprland.url = "github:hyprwm/Hyprland"; hyprland.url = "github:hyprwm/Hyprland";
hyprland.inputs.nixpkgs.follows = "nixpkgs"; hyprland.inputs.nixpkgs.follows = "nixpkgs";
unlisted-fonts.url = "git+https://git.sakamoto.dev/kenji/nix-fonts.git"; astal.url = "github:aylur/astal";
unlisted-fonts.inputs.nixpkgs.follows = "nixpkgs"; astal.inputs.nixpkgs.follows = "nixpkgs";
nixvim.url = "github:nix-community/nixvim"; ags.url = "github:aylur/ags";
nixvim.inputs.nixpkgs.follows = "nixpkgs"; ags.inputs.nixpkgs.follows = "nixpkgs";
nix-neovim.url = "git+https://git.sakamoto.dev/kenji/nix-neovim.git"; hyprpanel.url = "github:Jas-SinghFSU/Hyprpanel";
nix-neovim.inputs.nixpkgs.follows = "nixpkgs"; hyprpanel.inputs.nixpkgs.follows = "nixpkgs";
# 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,
darwin,
ags, ags,
hyprland, astal,
unlisted-fonts, hyprpanel,
nix-neovim,
... ...
} @ inputs: let } @ inputs: let
config = import ./config.nix;
lib = nixpkgs.lib; lib = nixpkgs.lib;
system = "x86_64-linux"; system = "x86_64-linux";
# pkgs = nixpkgs.legacyPackages.${system}; # alternative, without overlays. Unused. pkgs = nixpkgs.legacyPackages.${system};
args =
{
inherit inputs system;
}
// config;
in { in {
# linux only # TODO: migrate to another nix file.
# packages.${system}.default = pkgs.stdenv.mkDerivation {
# pname = "marble";
# src = ./marble;
# dontUnpack = true;
#
# nativeBuildInputs = with pkgs; [
# wrapGAppsHook
# gobject-introspection
# ];
#
# buildInputs =
# (with astal.packages.${system}; [
# astal3
# io
# apps
# battery
# bluetooth
# hyprland
# mpris
# network
# notifd
# powerprofiles
# tray
# wireplumber
# ])
# ++ (with pkgs; [
# gjs
# ]);
#
# preFixup = ''
# gappsWrapperArgs+=(
# --prefix PATH : ${with pkgs;
# lib.makeBinPath [
# dart-sass
# fzf
# ]}
# )
# '';
#
# installPhase = ''
# mkdir -p $out/bin
# install $src $out/bin/marble
# '';
# }; # END TODO
nixosConfigurations = { nixosConfigurations = {
desktop = lib.nixosSystem { biscuit = lib.nixosSystem {
specialArgs = {inherit inputs system;};
inherit system; inherit system;
specialArgs = args;
modules = [ modules = [
./nixos/desktop/configuration.nix ./nixos/configuration.nix
]; ];
}; };
}; };
homeConfigurations = { homeConfigurations = {
desktop = home-manager.lib.homeManagerConfiguration { biscuit = home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs { pkgs = import nixpkgs {
inherit system; inherit system;
overlays = [ overlays = [inputs.hyprpanel.overlay];
# (final: prev: {
# ags_1 = prev.ags_1.overrideAttrs (old: {
# buildInputs = old.buildInputs ++ [pkgs.libdbusmenu-gtk3];
# });
# })
];
}; };
extraSpecialArgs = args; # inherit pkgs;
modules = [./home/desktop/home.nix]; extraSpecialArgs = {inherit inputs system;};
}; modules = [./home-manager/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;
}
];
}; };
}; };
}; };
+26
View File
@@ -0,0 +1,26 @@
{
inputs, outputs, lib, config, pkgs, ...
}: {
imports = [
../modules/editor.nix
../modules/terminal.nix
../modules/wayland.nix
];
home = {
username = "biscuit";
homeDirectory = "/home/biscuit";
};
home.packages = [];
home.sessionVariables = {};
programs.git.enable = true;
programs.neovim.enable = true;
systemd.user.startServices = "sd-switch";
programs.home-manager.enable = true;
home.stateVersion = "23.05";
}
-20
View File
@@ -1,20 +0,0 @@
{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";
}
-15
View File
@@ -1,15 +0,0 @@
{
config,
pkgs,
inputs,
...
}: {
imports = [
../../modules/editor.nix
];
programs.home-manager.enable = true;
home.packages = [];
home.stateVersion = "23.05";
}
-13
View File
@@ -1,13 +0,0 @@
{
linux-apps,
lib,
...
}: {
imports =
[
]
++ lib.optionals (linux-apps.gamingDesktop == true) [
../pkgs/steam/default.nix
../pkgs/heroic/default.nix
];
}
-5
View File
@@ -1,5 +0,0 @@
{pkgs, ...}: let
info = import ../../config.nix;
in {
home.packages = info.linux-apps.my-apps pkgs;
}
-11
View File
@@ -1,11 +0,0 @@
{...}: {
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
];
}
-6
View File
@@ -1,6 +0,0 @@
{...}: {
imports = [
../../pkgs/btop/default.nix
../../pkgs/matugen/default.nix
];
}
-11
View File
@@ -1,11 +0,0 @@
{...}: {
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
];
}
+3 -8
View File
@@ -1,11 +1,6 @@
{...}: {
{ ... }: {
imports = [ imports = [
../pkgs/fastfetch/default.nix ../packages/nvim/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
]; ];
} }
+10 -13
View File
@@ -1,14 +1,11 @@
{ { ... }: {
vpn, imports = [
lib, ../system/firefox/default.nix
... ../system/astal/default.nix
}: { ../system/hyprland/default.nix
imports = ../system/fonts/default.nix
[ ../system/cursor/default.nix
../system/default.nix ../system/development/default.nix
../system/users.nix ../system/theme/default.nix
] ];
++ lib.optionals (vpn.vpnEnable == true) [
../system/vpn.nix
];
} }
+7
View File
@@ -0,0 +1,7 @@
{ pkgs, ... }: {
imports = [
../packages/zsh/default.nix
../packages/kitty/default.nix
../packages/fastfetch/default.nix
];
}
+8
View File
@@ -0,0 +1,8 @@
{ ... }: {
imports = [
../packages/hyprland/default.nix
../packages/waybar/default.nix
../packages/ags/default.nix
];
}
+105
View File
@@ -0,0 +1,105 @@
{ config, pkgs, inputs, ... }: {
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
../modules/system.nix
];
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
networking.hostName = "nixos"; # Define your hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# Enable networking
networking.networkmanager.enable = true;
# Enable bluetooth
hardware.bluetooth.enable = true;
services.blueman.enable = true;
# Set your time zone.
time.timeZone = "America/Chicago";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8"; LC_TIME = "en_US.UTF-8";
};
# Configure keymap in X11
services.xserver.xkb = {
layout = "us";
variant = "";
};
# Define a user account. Don't forget to set a password with passwd.
users = {
defaultUserShell = pkgs.bash;
users.biscuit = {
isNormalUser = true;
description = "Biscuit";
extraGroups = [ "networkmanager" "wheel" ];
shell = pkgs.zsh;
packages = with pkgs; [];
};
};
# List packages installed in system profile.
environment.systemPackages = with pkgs; [
wl-clipboard
vim # Default editor
wget
git
home-manager
zsh
p7zip
btop
libnotify
astal.apps
];
environment.sessionVariables = {
};
# Enable the OpenSSH daemon.
services.openssh.enable = true;
# Enable non-bash shell
programs.zsh.enable = true;
### ----------------------------------------
### DESKTOP START
services.xserver.displayManager.gdm.enable = true;
hardware = {
# pulseaudio.enable = true;
graphics.enable = true;
nvidia.modesetting.enable = false;
};
### DESKTOP END
### ----------------------------------------
# Enable experimental features
nix.settings.experimental-features = [ "nix-command" "flakes" ];
#nixpkgs = {
# overlays = [
# (final: prev: {
# nvchad = inputs.nvchad4nix.packages.${pkgs.system}.nvchad;
#})
#];
#};
# System state version
system.stateVersion = "24.11"; # Ensure this matches your NixOS version
}
-35
View File
@@ -1,35 +0,0 @@
{
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";
}
@@ -8,30 +8,24 @@
[ (modulesPath + "/installer/scan/not-detected.nix") [ (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "sd_mod" ]; boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" =
{ device = "/dev/disk/by-uuid/3f2c4a5a-3124-462a-9fb9-cccc933bac63"; { device = "/dev/disk/by-uuid/8552e23a-af9f-4af8-947f-9ea6ff1e7195";
fsType = "btrfs"; fsType = "ext4";
options = [ "subvol=@" ];
}; };
fileSystems."/boot" = fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/18F8-7DC1"; { device = "/dev/disk/by-uuid/00BB-80E9";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ]; options = [ "fmask=0077" "dmask=0077" ];
}; };
fileSystems."/mnt/CRUCIAL" =
{ device = "/dev/disk/by-uuid/394f67b9-e75b-40cc-9b15-28bbda40fff4";
fsType = "ext4";
};
swapDevices = swapDevices =
[ { device = "/dev/disk/by-uuid/bbe1e281-4b1d-4d85-ba6a-6f5265f0e3a3"; } [ { device = "/dev/disk/by-uuid/2a916b88-8039-481b-9c30-4edd0f329eb3"; }
]; ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
@@ -39,10 +33,9 @@
# still possible to use this option, but it's recommended to use it in conjunction # 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`. # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true; networking.useDHCP = lib.mkDefault true;
# networking.interfaces.biscuit-default.useDHCP = lib.mkDefault true; # networking.interfaces.eno1.useDHCP = lib.mkDefault true;
# networking.interfaces.enp11s0.useDHCP = lib.mkDefault true; # networking.interfaces.wlp1s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp10s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
} }
-40
View File
@@ -1,40 +0,0 @@
{
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;
}
@@ -9,9 +9,5 @@ App.start({
print(request) print(request)
res("ok") res("ok")
}, },
main: () => { main: () => App.get_monitors().map(Bar),
const monitors = App.get_monitors()
const primary = monitors.find(m => m.primary) || monitors[0]
return Bar(primary)
}
}) })
@@ -1,27 +1,8 @@
@use "sass:color"; @use "sass:color";
@use "./colors" as *;
// default $bg: #212223;
// $bg: #212223; $fg: #f1f1f1;
// $fg: #f1f1f1; $accent: #378DF7;
// $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; $radius: 7px;
window.Bar { window.Bar {
@@ -31,7 +12,6 @@ window.Bar {
color: $fg; color: $fg;
font-size: 1.1em; font-size: 1.1em;
font-weight: bold; font-weight: bold;
font-family: "JetBrainsMono Nerd Font";
label { label {
margin: 0 8px; margin: 0 8px;
@@ -74,24 +54,8 @@ window.Bar {
} }
} }
.Time {
.TimeHM {
font-weight: bold;
color: $accent;
}
.TimeDate {
// color: color.adjust($fg, $lightness: -10%);
color: $fg;
opacity: 0.85;
font-weight: normal;
}
}
.FocusedClient { .FocusedClient {
color: color.adjust($fg, $lightness: -30%); color: $accent;
opacity: 0.7;
} }
.Media .Cover { .Media .Cover {
@@ -124,42 +124,27 @@ function Workspaces() {
} }
function FocusedClient() { function FocusedClient() {
const hypr = Hyprland.get_default(); const hypr = Hyprland.get_default()
const focused = bind(hypr, "focusedClient"); const focused = bind(hypr, "focusedClient")
return ( return <box
<box className="FocusedClient" visible={focused.as(Boolean)}> className="Focused"
{focused.as(client => { visible={focused.as(Boolean)}>
if (!client) return null; {focused.as(client => (
client && <label label={bind(client, "title").as(String)} />
return ( ))}
<label </box>
label={bind(client, "title").as(title => {
return title.length > 40
? title.slice(0, 37) + "..."
: title;
})}
/>
);
})}
</box>
);
} }
function Time({ format = "%H:%M|%a %b %d" }) {
function Time({ format = "%H:%M %a %b %e" }) {
const time = Variable<string>("").poll(1000, () => const time = Variable<string>("").poll(1000, () =>
GLib.DateTime.new_now_local().format(format)! GLib.DateTime.new_now_local().format(format)!)
);
return bind(time).as(str => { return <label
const [hm, date] = str.split("|"); className="Time"
onDestroy={() => time.drop()}
return ( label={time()}
<box className="Time"> />
<label className="TimeHM" label={hm} />
<label className="TimeDate" label={date} />
</box>
);
});
} }
export default function Bar(monitor: Gdk.Monitor) { export default function Bar(monitor: Gdk.Monitor) {
@@ -172,11 +157,10 @@ export default function Bar(monitor: Gdk.Monitor) {
anchor={TOP | LEFT | RIGHT}> anchor={TOP | LEFT | RIGHT}>
<centerbox> <centerbox>
<box hexpand halign={Gtk.Align.START}> <box hexpand halign={Gtk.Align.START}>
<Workspaces /> <Time />
<FocusedClient />
</box> </box>
<box> <box>
<Time /> <Workspaces />
</box> </box>
<box hexpand halign={Gtk.Align.END} > <box hexpand halign={Gtk.Align.END} >
<SysTray /> <SysTray />
+45
View File
@@ -0,0 +1,45 @@
{
inputs,
pkgs,
system,
...
}: {
# add the home manager module
imports = [
inputs.ags.homeManagerModules.default
# inputs.astal.homeManagerModules.default
];
home.packages = [
# inputs.astal.packages.${system}.default
];
programs.ags = {
enable = true;
# symlink to ~/.config/ags
configDir = ./custom;
# additional packages to add to gjs's runtime
extraPackages = with inputs.ags.packages.${pkgs.system}; [
apps
auth
battery
bluetooth
hyprland
mpris
network
notifd
powerprofiles
tray
wireplumber
pkgs.fzf
pkgs.dart-sass
pkgs.esbuild
];
};
# programs.astal = {
# enable = true;
# };
}
Submodule packages/ags/epik-shell added at 9002206c8b
+3
View File
@@ -0,0 +1,3 @@
{ ... }: {
programs.fastfetch.enable = true;
}
+16
View File
@@ -0,0 +1,16 @@
#################
### AUTOSTART ###
#################
# Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this:
$terminal = kitty
$bar = ags run
$cursor = Bibata-Modern-Ice
exec-once = hyprctl setcursor $cursor 24
exec-once = $bar
exec-once = [workspace 20 silent] kitty --single-instance --hold fastfetch
exec-once = [workspace 20 silent] firefox
exec-once = [workspace 1] kitty --single-instance --hold fastfetch
+5
View File
@@ -0,0 +1,5 @@
env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24
+191
View File
@@ -0,0 +1,191 @@
################
### MONITORS ###
################
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=,highres@highrr,auto,auto
#####################
### LOOK AND FEEL ###
#####################
# Refer to https://wiki.hyprland.org/Configuring/Variables/
# https://wiki.hyprland.org/Configuring/Variables/#general
general {
gaps_in = 2
gaps_out = 5
border_size = 2
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.inactive_border = rgba(595959aa)
# Set to true enable resizing windows by clicking and dragging on borders and gaps
resize_on_border = false
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false
layout = dwindle
}
# https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration {
rounding = 0
rounding_power = 2
# Change transparency of focused and unfocused windows
active_opacity = 1.0
inactive_opacity = 1.0
shadow {
enabled = true
range = 4
render_power = 3
color = rgba(1a1a1aee)
}
# https://wiki.hyprland.org/Configuring/Variables/#blur
blur {
enabled = true
size = 3
passes = 1
vibrancy = 0.1696
}
}
# https://wiki.hyprland.org/Configuring/Variables/#animations
# animations {
# enabled = yes, please :)
#
# # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
#
# bezier = easeOutQuint,0.23,1,0.32,1
# bezier = easeInOutCubic,0.65,0.05,0.36,1
# bezier = linear,0,0,1,1
# bezier = almostLinear,0.5,0.5,0.75,1.0
# bezier = quick,0.15,0,0.1,1
#
# animation = global, 1, 10, default
# animation = border, 1, 5.39, easeOutQuint
# animation = windows, 1, 4.79, easeOutQuint
# animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
# animation = windowsOut, 1, 1.49, linear, popin 87%
# animation = fadeIn, 1, 1.73, almostLinear
# animation = fadeOut, 1, 1.46, almostLinear
# animation = fade, 1, 3.03, quick
# animation = layers, 1, 3.81, easeOutQuint
# animation = layersIn, 1, 4, easeOutQuint, fade
# animation = layersOut, 1, 1.5, linear, fade
# animation = fadeLayersIn, 1, 1.79, almostLinear
# animation = fadeLayersOut, 1, 1.39, almostLinear
# animation = workspaces, 1, 1.94, almostLinear, fade
# animation = workspacesIn, 1, 1.21, almostLinear, fade
# animation = workspacesOut, 1, 1.94, almostLinear, fade
# }
animations {
enabled = true
# Animation curves
bezier = linear, 0, 0, 1, 1
bezier = md3_standard, 0.2, 0, 0, 1
bezier = md3_decel, 0.05, 0.7, 0.1, 1
bezier = md3_accel, 0.3, 0, 0.8, 0.15
bezier = overshot, 0.05, 0.9, 0.1, 1.1
bezier = crazyshot, 0.1, 1.5, 0.76, 0.92
bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0
bezier = menu_decel, 0.1, 1, 0, 1
bezier = menu_accel, 0.38, 0.04, 1, 0.07
bezier = easeInOutCirc, 0.85, 0, 0.15, 1
bezier = easeOutCirc, 0, 0.55, 0.45, 1
bezier = easeOutExpo, 0.16, 1, 0.3, 1
bezier = softAcDecel, 0.26, 0.26, 0.15, 1
bezier = md2, 0.4, 0, 0.2, 1 # use with .2s duration
# Animation configs
animation = windows, 1, 3, md3_decel, popin 60%
animation = windowsIn, 1, 3, md3_decel, popin 60%
animation = windowsOut, 1, 3, md3_accel, popin 60%
animation = border, 1, 10, default
animation = fade, 1, 3, md3_decel
# animation = layers, 1, 2, md3_decel, slide
animation = layersIn, 1, 3, menu_decel, slide
animation = layersOut, 1, 1.6, menu_accel
animation = fadeLayersIn, 1, 2, menu_decel
animation = fadeLayersOut, 1, 0.5, menu_accel
animation = workspaces, 1, 7, menu_decel, slide
# animation = workspaces, 1, 2.5, softAcDecel, slide
# animation = workspaces, 1, 7, menu_decel, slidefade 15%
# animation = specialWorkspace, 1, 3, md3_decel, slidefadevert 15%
animation = specialWorkspace, 1, 3, md3_decel, slidevert
}
# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
# "Smart gaps" / "No gaps when only"
# uncomment all if you wish to use that.
# workspace = w[tv1], gapsout:0, gapsin:0
# workspace = f[1], gapsout:0, gapsin:0
# windowrule = bordersize 0, floating:0, onworkspace:w[tv1]
# windowrule = rounding 0, floating:0, onworkspace:w[tv1]
# windowrule = bordersize 0, floating:0, onworkspace:f[1]
# windowrule = rounding 0, floating:0, onworkspace:f[1]
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
dwindle {
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true # You probably want this
}
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
master {
new_status = master
}
# https://wiki.hyprland.org/Configuring/Variables/#misc
misc {
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :(
}
#############
### INPUT ###
#############
# https://wiki.hyprland.org/Configuring/Variables/#input
input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_rules =
follow_mouse = 1
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
touchpad {
natural_scroll = false
}
numlock_by_default = true
}
# https://wiki.hyprland.org/Configuring/Variables/#gestures
gestures {
workspace_swipe = false
}
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
device {
name = epic-mouse-v1
sensitivity = -0.5
}
+76
View File
@@ -0,0 +1,76 @@
###################
### KEYBINDINGS ###
###################
# See https://wiki.hyprland.org/Configuring/Keywords/
$mainMod = SUPER # Sets "Windows" key as main modifier
$terminal = kitty --single-instance
$browser = firefox
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, Return, exec, $terminal
bind = $mainMod, Q, killactive,
bind = $mainMod, M, exit,
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, V, togglefloating,
bind = $mainMod, R, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, B, togglesplit, # dwindle
bind = $mainMod, W, exec, $browser
# Move focus with mainMod + arrow keys
bind = $mainMod, H, movefocus, l
bind = $mainMod, L, movefocus, r
bind = $mainMod, K, movefocus, u
bind = $mainMod, J, movefocus, d
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
# Laptop multimedia keys for volume and LCD brightness
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+
bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%-
# Requires playerctl
bindl = , XF86AudioNext, exec, playerctl next
bindl = , XF86AudioPause, exec, playerctl play-pause
bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioPrev, exec, playerctl previous
+15
View File
@@ -0,0 +1,15 @@
##############################
### WINDOWS AND WORKSPACES ###
##############################
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
# Example windowrule
# windowrule = float,class:^(kitty)$,title:^(kitty)$
# Ignore maximize requests from apps. You'll probably like this.
windowrule = suppressevent maximize, class:.*
# Fix some dragging issues with XWayland
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
+13
View File
@@ -0,0 +1,13 @@
{ pkgs, ... }: {
home.file.".config/hypr/hyprland.conf" = {
source = builtins.toPath ./hyprland.conf;
force = true;
};
home.file.".config/hypr/hyprland" = {
source = builtins.toPath ./custom;
recursive = true;
force = true;
};
}
+6
View File
@@ -0,0 +1,6 @@
source=./hyprland/keybinds.conf
source=./hyprland/autostart.conf
source=./hyprland/env.conf
source=./hyprland/general.conf
source=./hyprland/rules.conf
+14
View File
@@ -0,0 +1,14 @@
{ pkgs, ... }:
{
home.packages = [
pkgs.kitty
];
programs.kitty.enable = true;
programs.kitty.settings = {
confirm_os_window_close = 0;
window_padding_width = 10;
font_size = 12.0;
};
}
+26
View File
@@ -0,0 +1,26 @@
{ pkgs, ... }:
let
nvimSource = pkgs.fetchFromGitea {
domain = "git.sakamoto.dev";
owner = "kenji";
repo = "nvim";
rev = "5fc3341ac43b35fd4032c07925927d7f1e82886c";
sha256 = "sha256-YbP814fKOFuCWBRwlccd4nx/h8sdMgiJQu54thRLsK8=";
};
in {
home.packages = [
pkgs.lazygit
pkgs.ripgrep
];
home.file.".config/nvim" = {
# BUG requires --impure
source = /home/biscuit/Nixos/packages/nvim/nvchad;
# source = nvimSource;
recursive = true;
force = true;
};
# Example use: provide it as a source
# You could pass `nvimSource` to a program, or maybe use it in home.file, etc.
}
Submodule packages/nvim/nvchad added at 2b4293a4c1
+152
View File
@@ -0,0 +1,152 @@
{
"layer": "top",
"position": "top",
"height": 45,
"spacing": 0,
"modules-left": [
"hyprland/workspaces",
"tray",
"custom/lock",
"custom/reboot",
"custom/power",
"clock"
],
"modules-center": ["hyprland/window"],
"modules-right": [
"network",
"battery",
"bluetooth",
"pulseaudio",
"backlight",
"custom/temperature",
"memory",
"cpu"
],
"hyprland/workspaces": {
"disable-scroll": false,
"all-outputs": true,
"format": "{icon}",
"on-click": "activate",
"persistent-workspaces": {
"*":[1,2,3,4,5,6,7]
},
"format-icons":{
"1": "󰣇",
"2": "",
"3": "",
"4": "󰇮",
"5": "",
"6": "",
"7": "",
"active": "󱓻"
}
},
"custom/lock": {
"format": "  ",
"on-click": "hyprlock",
"tooltip": true,
"tooltip-format": "锁屏"
},
"custom/reboot": {
"format": "  ",
"on-click": "systemctl reboot",
"tooltip": true,
"tooltip-format": "重启"
},
"custom/power": {
"format": "  ",
"on-click": "systemctl poweroff",
"tooltip": true,
"tooltip-format": "关机"
},
"network": {
"format-wifi": " 󰤨 {essid} ",
"format-ethernet": " Wired ",
"tooltip-format": "<span color='#FF1493'> 󰅧 </span>{bandwidthUpBytes} <span color='#00BFFF'> 󰅢 </span>{bandwidthDownBytes}",
"format-linked": " 󱘖 {ifname} (No IP) ",
"format-disconnected": "  Disconnected ",
"format-alt": " 󰤨 {signalStrength}% ",
"interval": 1
},
"battery": {
"states": {
"warning": 30,
"critical": 15
},
"format": " {icon} {capacity}% ",
"format-charging": " 󱐋{capacity}%",
"interval": 1,
"format-icons": ["󰂎", "󰁼", "󰁿", "󰂁", "󰁹"],
"tooltip": true
},
"pulseaudio": {
"format": "{icon}{volume}% ",
"format-muted": " 󰖁 0% ",
"format-icons": {
"headphone": "  ",
"hands-free": "  ",
"headset": "  ",
"phone": "  ",
"portable": "  ",
"car": "  ",
"default": [
"  ",
"  ",
"  "
]
},
"on-click-right": "pavucontrol -t 3",
"on-click": "pactl -- set-sink-mute 0 toggle",
"tooltip": true,
"tooltip-format": "当前系统声音: {volume}%"
},
"custom/temperature": {
"exec": "sensors | awk '/^Package id 0:/ {print int($4)}'",
"format": " {}°C ",
"interval": 5,
"tooltip": true,
"tooltip-format": "当前 CPU 温度: {}°C"
},
"memory": {
"format": "  {used:0.1f}G/{total:0.1f}G ",
"tooltip": true,
"tooltip-format": "当前内存占比: {used:0.2f}G/{total:0.2f}G"
},
"cpu": {
"format": "  {usage}% ",
"tooltip": true
},
"clock": {
"interval": 1,
"timezone": "Asia/Chengdu",
"format": "  {:%H:%M} ",
"tooltip": true,
"tooltip-format": "{:L%Y 年 %m 月 %d 日, %A}"
},
"tray": {
"icon-size": 17,
"spacing": 6
},
"backlight": {
"device": "intel_backlight",
"format": "{icon}{percent}% ",
"tooltip": true,
"tooltip-format": "当前屏幕亮度: {percent}%",
"format-icons": [
" 󰃞 ", // 暗 - 深灰
" 󰃝 ", // 中 - 灰
" 󰃟 ", // 亮 - 柠檬黄
" 󰃠 " // 最亮 - 金色
]
},
"bluetooth": {
"format": "  {status} ",
"format-connected": "  {device_alias} ",
"format-connected-battery": "  {device_alias}{device_battery_percentage}% ",
"tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected",
"tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}",
"tooltip-format-enumerate-connected": "{device_alias}\t{device_address}",
"tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}%"
}
}
+131
View File
@@ -0,0 +1,131 @@
* {
font-family: "CaskaydiaCove Nerd Font", "Font Awesome 6 Free", "Font Awesome 6 Free Solid";
font-size: 16px;
border-radius: 0;
min-height: 0;
border: none;
font-weight: bold;
}
#workspaces{
background-color: rgba(24,24,37,1.0);
border: none;
box-shadow: none;
}
#tray{
margin: 6px 3px;
background-color: rgba(36, 36, 52, 1.0);
padding: 6px 12px; /* 保持内部间距 */
border-radius: 6px;
border-width: 0px;
}
#waybar {
background-color: #181825;
transition-property: background-color;
transition-duration: 0.5s;
}
#window,
#clock,
#custom-power,
#custom-reboot,
#bluetooth,
#battery,
#pulseaudio,
#backlight,
#custom-temperature,
#memory,
#cpu,
#network,
#custom-lock{
border-radius: 4px;
margin: 6px 3px;
padding: 6px 12px;
background-color: #1e1e2e;
color: #181825;
}
#clock {
background-color: #89b4fa;
}
#custom-power{
background-color: #f38ba8;
}
#custom-reboot{
background-color: #a6e3a1;
}
#bluetooth{
background-color: #f9e2af;
}
#battery{
background-color: #cba6f7;
}
#pulseaudio{
background-color: #89dceb;
}
#backlight{
background-color: #a6a3a1;
}
#custom-temperature{
background-color: #74c7ec;
}
#memory{
background-color: #f7768e;
}
#cpu{
background-color: #f38ba8;
}
#network{
background-color: #fab387;
}
#custom-lock{
background-color: #94e2d5;
}
#window{
background-color: #74c7ec;
}
#waybar.hidden {
opacity: 0.5;
}
#workspaces button {
all: initial;
/* Remove GTK theme values (waybar #1351) */
min-width: 0;
/* Fix weird spacing in materia (waybar #450) */
box-shadow: inset 0 -3px transparent;
/* Use box-shadow instead of border so the text isn't offset */
padding: 6px 18px;
margin: 6px 3px;
border-radius: 4px;
background-color: rgba(36, 36, 52, 1.0);
color: #cdd6f4;
}
#workspaces button.active {
color: #1e1e2e;
background-color: #cdd6f4;
}
#workspaces button:hover {
box-shadow: inherit;
text-shadow: inherit;
color: #1e1e2e;
background-color: #cdd6f4;
}
tooltip {
border-radius: 8px;
padding: 16px;
background-color: #131822;
color: #C0C0C0;
}
tooltip label {
padding: 5px;
background-color: #131822;
color: #C0C0C0;
}
+11
View File
@@ -0,0 +1,11 @@
{ ... }: {
programs.waybar = {
enable = true;
};
home.file.".config/waybar" = {
source = builtins.toPath ./custom;
recursive = true;
force = true;
};
}
+74
View File
@@ -0,0 +1,74 @@
{ pkgs, ... }: {
home.packages = [
pkgs.zoxide
pkgs.oh-my-posh
];
programs.zoxide.enable = true;
programs.oh-my-posh.enable = true;
home.file.".config/oh-my-posh/config.omp.json" = {
source = ./custom/config.omp.json;
force = true;
};
programs.zsh = {
enable = true;
plugins = [
# {
# name = "zsh-autocomplete"; # completes history, commands, etc.
# src = pkgs.fetchFromGitHub {
# owner = "marlonrichert";
# repo = "zsh-autocomplete";
# rev = "762afacbf227ecd173e899d10a28a478b4c84a3f";
# sha256 = "1357hygrjwj5vd4cjdvxzrx967f1d2dbqm2rskbz5z1q6jri1hm3";
# }; # e.g., nix-prefetch-url --unpack https://github.com/marlonrichert/zsh-autocomplete/archive/762afacbf227ecd173e899d10a28a478b4c84a3f.tar.gz
# }
{
name = "vi-mode";
src = pkgs.zsh-vi-mode;
file = "share/zsh-vi-mode/zsh-vi-mode.plugin.zsh";
}
{
name = "autosuggestion";
src = pkgs.zsh-autosuggestions;
file = "share/zsh-autosuggestions/zsh-autosuggestions.zsh";
}
];
enableCompletion = true;
syntaxHighlighting.enable = true;
shellAliases = {
ll = "ls -l";
upd = "sudo nixos-rebuild switch --flake ~/Nixos/#biscuit";
hupd = "home-manager switch --flake ~/Nixos/#biscuit --impure";
agu = "pkill gjs & ags run ~/Nixos/packages/ags/custom/app.ts &";
};
history.size = 10000;
oh-my-zsh = {
plugins = [ ];
enable = true;
theme = "robbyrussell";
extraConfig = ''
zstyle ':completion:*' completer _expand _complete _ignored _approximate _expand_alias
zstyle ':autocomplete:*' default-context curcontext
zstyle ':autocomplete:*' min-input 0
setopt HIST_FIND_NO_DUPS
autoload -Uz compinit
compinit
# setopt autocd # cd without writing 'cd'
setopt globdots # show dotfiles in autocomplete list
'';
};
initContent = ''
# Oh-My-Posh initialization for Zsh
eval "$(oh-my-posh init zsh --config ~/.config/oh-my-posh/config.omp.json)"
# zsh-autocomplete
bindkey -M menuselect '^M' .accept-line # run code when selected completion
'';
};
}
-3
View File
@@ -1,3 +0,0 @@
$background: #131318;
$foreground: #e4e1e9;
$primary: #bec2ff;
-28
View File
@@ -1,28 +0,0 @@
{
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
];
};
}
-8
View File
@@ -1,8 +0,0 @@
{...}: {
programs.btop = {
enable = true;
settings = {
vim_keys = true;
};
};
}
-131
View File
@@ -1,131 +0,0 @@
{
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}";
}
];
};
};
}
-20
View File
@@ -1,20 +0,0 @@
{
pkgs,
terminal,
...
}: {
programs.zoxide.enable = true;
programs.fish = {
enable = true;
interactiveShellInit = ''
set fish_greeting
fish_vi_key_bindings
zoxide init fish | source
'';
shellAliases = terminal.shellAliases;
plugins = with pkgs.fishPlugins; [
];
};
}
-10
View File
@@ -1,10 +0,0 @@
{gitProfile, ...}: {
programs.git = {
enable = true;
extraConfig = {
user.name = "${gitProfile.user}";
user.email = "${gitProfile.email}";
init.defaultBranch = "${gitProfile.defaultBranch}";
};
};
}
-38
View File
@@ -1,38 +0,0 @@
{...}: {
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.
}
];
};
};
}
-226
View File
@@ -1,226 +0,0 @@
{
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"
];
};
};
}
-7
View File
@@ -1,7 +0,0 @@
{...}: {
programs.hyprlock = {
enable = true;
settings = {
};
};
}
-24
View File
@@ -1,24 +0,0 @@
{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";
};
}
-70
View File
@@ -1,70 +0,0 @@
[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) &"
-3
View File
@@ -1,3 +0,0 @@
$background: {{colors.surface.dark.hex}};
$foreground: {{colors.on_surface.dark.hex}};
$primary: {{colors.primary.dark.hex}};
-41
View File
@@ -1,41 +0,0 @@
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
-11
View File
@@ -1,11 +0,0 @@
{
pkgs,
inputs,
system,
...
}: {
imports = [inputs.matugen.nixosModules.default];
home.file.".config/matugen/config.toml" = {
source = builtins.toPath ./custom/config.toml;
};
}
-174
View File
@@ -1,174 +0,0 @@
{
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";
};
}
];
}
];
};
};
}
-18
View File
@@ -1,18 +0,0 @@
{
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;
};
}
-14
View File
@@ -1,14 +0,0 @@
{
pkgs,
inputs,
...
}: let
nix-neovim = inputs.nix-neovim.packages.${pkgs.system}.default;
in {
programs.neovim.enable = false;
home.packages = [
nix-neovim
pkgs.lazygit
# ripgrep
];
}
-8
View File
@@ -1,8 +0,0 @@
{pkgs, ...}: {
programs.rofi = {
enable = true;
plugins = with pkgs; [
rofi-calc
];
};
}
-16
View File
@@ -1,16 +0,0 @@
/**
*
* Author : Aditya Shakya (adi1090x)
* Github : @adi1090x
*
* Colors
**/
* {
background: #1E2127FF;
background-alt: #282B31FF;
foreground: #FFFFFFFF;
selected: #61AFEFFF;
active: #98C379FF;
urgent: #E06C75FF;
}
-171
View File
@@ -1,171 +0,0 @@
/**
*
* 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;
}
-20
View File
@@ -1,20 +0,0 @@
#!/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
-18
View File
@@ -1,18 +0,0 @@
/**
*
* 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"
-12
View File
@@ -1,12 +0,0 @@
/**
*
* Author : Aditya Shakya (adi1090x)
* Github : @adi1090x
*
* Fonts
*
**/
* {
font: "Iosevka Nerd Font 10";
}
-62
View File
@@ -1,62 +0,0 @@
{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;
# };
}
-5
View File
@@ -1,5 +0,0 @@
{
programs.steam = {
enable = true;
};
}
-3
View File
@@ -1,3 +0,0 @@
{...}: {
services.swww.enable = true;
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

-229
View File
@@ -1,229 +0,0 @@
{ 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;
}
'';
};
}
-40
View File
@@ -1,40 +0,0 @@
{
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
'';
};
}
+13
View File
@@ -0,0 +1,13 @@
{
pkgs,
inputs,
system,
...
}: {
environment.systemPackages = with pkgs; [
astal.io
astal.gjs
astal.hyprland
astal.apps
];
}
@@ -1,6 +1,6 @@
{pkgs, ...}: { { pkgs, ... }: {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
bibata-cursors
hyprcursor hyprcursor
bibata-cursors
]; ];
} }
-119
View File
@@ -1,119 +0,0 @@
{
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;
}
-107
View File
@@ -1,107 +0,0 @@
{
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;
};
};
};
}
-16
View File
@@ -1,16 +0,0 @@
{
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
];
}
-3
View File
@@ -1,3 +0,0 @@
{pkgs, ...}: {
services.printing.enable = true;
}
-13
View File
@@ -1,13 +0,0 @@
{ pkgs, ... }: {
# Enable sound.
# services.pulseaudio.enable = true;
# OR
environment.systemPackages = with pkgs; [
pavucontrol
];
security.rtkit.enable = true;
services.pipewire = {
enable = true;
pulse.enable = true;
};
}
-4
View File
@@ -1,4 +0,0 @@
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
];
}
-24
View File
@@ -1,24 +0,0 @@
{
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,5 +1,10 @@
{pkgs, ...}: { {pkgs, ...}: {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
heroic gcc
rustc
cargo
nodejs
python313
busybox
]; ];
} }
+7
View File
@@ -0,0 +1,7 @@
{ pkgs, ... }: {
environment.systemPackages = with pkgs; [
firefox
];
programs.firefox.enable = true;
}
+5
View File
@@ -0,0 +1,5 @@
{ pkgs, ... }: {
fonts.packages = with pkgs; [
nerd-fonts.fira-code
];
}
+9
View File
@@ -0,0 +1,9 @@
{ ... }: {
programs.hyprland = {
enable = true;
# package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
# portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
xwayland.enable = true;
};
}
+13
View File
@@ -0,0 +1,13 @@
{
pkgs,
inputs,
system,
...
}: {
environment.systemPackages = [
pkgs.adw-gtk3
pkgs.colloid-icon-theme
pkgs.colloid-gtk-theme
];
}
-20
View File
@@ -1,20 +0,0 @@
{
pkgs,
username,
terminal,
...
}: {
users = {
defaultUserShell = pkgs.${terminal.termShell};
users = {
${username} = {
isNormalUser = true;
extraGroups = ["wheel" "networkmanager" "input"];
initialHashedPassword = "$6$Qab6SSvEJM2YRtVA$7Oyl7E3pp/FKtCC.2Tb2tyzp3yp7BFHFAKngUYJssQJ.v1Q2mqsgW9m7njpaKNcka2vyCwrnmw1R.YPlFqR0p1";
useDefaultShell = true;
packages = [
];
};
};
};
}
-23
View File
@@ -1,23 +0,0 @@
{
vpn,
username,
...
}: {
networking.wg-quick.interfaces = {
biscuit-default = {
address = ["10.2.0.2/32"];
# listenPort = 51820;
# FIXME change privateKey to variable and add env (make sure it is inaccessible!)
privateKeyFile = vpn.vpnSecretFile;
dns = ["10.2.0.1"];
peers = [
{
publicKey = "GbuOJ8Dho0iXlS0+ma2teQ4RxhBALWK6RB94qA1GZDA=";
allowedIPs = ["0.0.0.0/0"];
endpoint = "79.127.147.2:51820";
# persistentKeepAlive = 25;
}
];
};
};
}