Compare commits
No commits in common. "c3354e36097ab3fc30f37614dbd2f0cb440bc4e2" and "8be52370c8a77991de889cf21a6abde394540505" have entirely different histories.
c3354e3609
...
8be52370c8
0
LICENSE
Executable file → Normal file
31
README.md
Executable file → Normal file
|
@ -1,33 +1,6 @@
|
|||
# liminalOS
|
||||
# NixOS Configuration Files
|
||||
|
||||
This is a repository that implements liminalOS, my personal Linux distribution based on [NixOS](https://nixos.org/).
|
||||
|
||||
Traditional Linux distributions are either _rolling_ or _fixed_ release. liminalOS operates on a new kind of release schedule: _liminal_ release.
|
||||
|
||||
> **lim·i·nal**
|
||||
> 2. relating to a transitional or initial stage of a process.
|
||||
|
||||
Users who install liminalOS may feel a sense of eeriness similar to a [liminal space](<https://en.wikipedia.org/wiki/Liminal_space_(aesthetic)>) - the system has clearly been configured exactly according to someone's preferences and specifications, yet they stand alone in an empty OS, with the usual user nowhere to be found, and a home directory devoid of human presence. System updates are released at random times, and upon installing, it appears that someone has adjusted minute configuration details, yet no other users exist in the system.
|
||||
|
||||
## Installation guide
|
||||
|
||||
TBD. May use `deploy-rs` or the in-house [dartgun](https://github.com/youwen5/dartgun) tool for easy deployment.
|
||||
|
||||
## FAQ
|
||||
|
||||
### This looks like a collection of NixOS configuration files and modules. What makes it a distinct distribution?
|
||||
|
||||
Most Linux[^1] users will agree that any self-respecting distribution must include at least the following: installer, package manager, and some set of default packages. Therefore, anything that implements the aforementioned items must also be a Linux distribution.
|
||||
|
||||
liminalOS comes with the Nix package manager (nobody said you need a _unique_ package manager - Ubuntu and Debian are distinct distributions yet both use `apt`), a custom desktop environment composed of Waybar, Hyprland, rofi, as well as various applications installed by default, and [the means to generate an installer](https://nixos.wiki/wiki/Creating_a_NixOS_live_CD). Therefore, liminalOS is a Linux distribution. QED.[^2]
|
||||
|
||||
### Should I actually install this?
|
||||
|
||||
No.
|
||||
|
||||
[^1]: also known as GNU/Linux, GNU+Linux, Freedesktop/systemd/musl/busybox Linux, Linux+friends, etc
|
||||
|
||||
[^2]: disclaimer: this is unfortunately not actually how the converse works. A => B does not necessarily imply B => A. I hope this satiates the rigor-hungry mathematicians reading.
|
||||
This repository directly mirrors `/etc/nixos` on my main NixOS machine. In the future, it will be modularized to support deployment across multiple machines.
|
||||
|
||||
## Keybinds
|
||||
|
||||
|
|
0
users/youwen/common/neofetch.conf → config/neofetch.conf
Executable file → Normal file
58
flake.lock
|
@ -1,27 +1,5 @@
|
|||
{
|
||||
"nodes": {
|
||||
"apple-silicon": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1722469787,
|
||||
"narHash": "sha256-P20oAmbgXHl1E77TXPXiAj1Ntycc1mf7fZMI7X13VYw=",
|
||||
"owner": "tpwrules",
|
||||
"repo": "nixos-apple-silicon",
|
||||
"rev": "8a665fee82901878edaeb8ee120296a979db2dd2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tpwrules",
|
||||
"repo": "nixos-apple-silicon",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"bleedingpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1722979953,
|
||||
|
@ -92,21 +70,6 @@
|
|||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"locked": {
|
||||
"lastModified": 1688025799,
|
||||
"narHash": "sha256-ktpB4dRtnksm9F5WawoIkEneh1nrEvuxb5lJFt1iOyw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "flake-compat",
|
||||
"rev": "8bf105319d44f6b9f0d764efa4fdef9f1cc9ba1c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
|
@ -289,14 +252,14 @@
|
|||
"lanzaboote": {
|
||||
"inputs": {
|
||||
"crane": "crane",
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-parts": "flake-parts",
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"pre-commit-hooks-nix": "pre-commit-hooks-nix",
|
||||
"rust-overlay": "rust-overlay_2"
|
||||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1718178907,
|
||||
|
@ -497,7 +460,6 @@
|
|||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"apple-silicon": "apple-silicon",
|
||||
"bleedingpkgs": "bleedingpkgs",
|
||||
"catppuccin": "catppuccin",
|
||||
"home-manager": "home-manager",
|
||||
|
@ -512,22 +474,6 @@
|
|||
}
|
||||
},
|
||||
"rust-overlay": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1686795910,
|
||||
"narHash": "sha256-jDa40qRZ0GRQtP9EMZdf+uCbvzuLnJglTUI2JoHfWDc=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "5c2b97c0a9bc5217fc3dfb1555aae0fb756d99f9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"rust-overlay_2": {
|
||||
"inputs": {
|
||||
"flake-utils": [
|
||||
"lanzaboote",
|
||||
|
|
102
flake.nix
|
@ -32,79 +32,49 @@
|
|||
"https://git.lix.systems/lix-project/nixos-module/archive/2.90.0.tar.gz";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
apple-silicon = {
|
||||
url = "github:tpwrules/nixos-apple-silicon";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, home-manager, catppuccin, lanzaboote, stablepkgs
|
||||
, bleedingpkgs, lix-module, nix-darwin, nix-homebrew, apple-silicon, ...
|
||||
}@inputs: rec {
|
||||
, bleedingpkgs, lix-module, nix-darwin, nix-homebrew, ... }@inputs: rec {
|
||||
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt;
|
||||
nixosConfigurations = {
|
||||
demeter = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = { inherit inputs; };
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
./hosts/nixos
|
||||
./modules/nixos/gaming
|
||||
./modules/nixos/audio
|
||||
./modules/nixos/networking
|
||||
./modules/common/fonts
|
||||
nixosConfigurations.nixos = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = { inherit inputs; };
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
./modules/nixos/nixos-configuration.nix
|
||||
./modules/nixos/secureboot.nix
|
||||
./modules/nixos/gaming.nix
|
||||
./modules/nixos/audio.nix
|
||||
./modules/nixos/nvidia.nix
|
||||
./modules/nixos/networking.nix
|
||||
./modules/common/fonts.nix
|
||||
./machines/nixos/hardware-configuration.nix
|
||||
|
||||
catppuccin.nixosModules.catppuccin
|
||||
lix-module.nixosModules.default
|
||||
lanzaboote.nixosModules.lanzaboote
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.backupFileExtension = "backup";
|
||||
home-manager.users.youwen = {
|
||||
imports = [
|
||||
./users/youwen/linux/desktop
|
||||
./users/youwen/linux/packages/x86_64
|
||||
./users/youwen/linux/programs
|
||||
./users/youwen/common
|
||||
inputs.catppuccin.homeManagerModules.catppuccin
|
||||
];
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
callisto = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = { inherit inputs; };
|
||||
system = "aarch64-linux";
|
||||
modules = [
|
||||
./hosts/callisto
|
||||
./modules/nixos/audio
|
||||
./modules/nixos/networking
|
||||
./modules/common/fonts
|
||||
catppuccin.nixosModules.catppuccin
|
||||
|
||||
apple-silicon.nixosModules.apple-silicon-support
|
||||
catppuccin.nixosModules.catppuccin
|
||||
lix-module.nixosModules.default
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.backupFileExtension = "backup";
|
||||
home-manager.users.youwen = {
|
||||
imports = [
|
||||
./users/youwen/common
|
||||
./users/youwen/linux/laptop
|
||||
./users/youwen/linux/packages/aarch-64
|
||||
lix-module.nixosModules.default
|
||||
|
||||
inputs.catppuccin.homeManagerModules.catppuccin
|
||||
];
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
lanzaboote.nixosModules.lanzaboote
|
||||
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.backupFileExtension = "backup";
|
||||
home-manager.users.youwen = {
|
||||
imports = [
|
||||
./modules/home-manager/linux/linux-home.nix
|
||||
./modules/home-manager/linux/desktop.nix
|
||||
./modules/home-manager/linux/programs.nix
|
||||
./modules/home-manager/common/core.nix
|
||||
./modules/home-manager/linux/catppuccin.nix
|
||||
inputs.catppuccin.homeManagerModules.catppuccin
|
||||
];
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
formatter.aarch64-darwin = nixpkgs.legacyPackages.aarch64-darwin.nixfmt;
|
||||
formatter.aarch64-linux = nixpkgs.legacyPackages.aarch64-linux.nixfmt;
|
||||
# Build darwin flake using:
|
||||
# $ darwin-rebuild build --flake .#Youwens-MacBook-Pro
|
||||
darwinConfigurations."Youwens-MacBook-Pro" = nix-darwin.lib.darwinSystem {
|
||||
|
@ -116,8 +86,8 @@
|
|||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.youwen.imports = [
|
||||
./users/youwen/darwin/darwin-home.nix
|
||||
./users/youwen/common/core.nix
|
||||
./modules/home-manager/darwin/darwin-home.nix
|
||||
./modules/home-manager/common/core.nix
|
||||
];
|
||||
home-manager.backupFileExtension = "backup";
|
||||
|
||||
|
|
|
@ -1,196 +0,0 @@
|
|||
# Edit this configuration file to define what should be installed on
|
||||
# your system. Help is available in the configuration.nix(5) man page
|
||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||
|
||||
{ config, inputs, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [ # Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
# ./apple-silicon-support
|
||||
];
|
||||
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = false;
|
||||
|
||||
hardware.asahi = {
|
||||
peripheralFirmwareDirectory = ./firmware;
|
||||
useExperimentalGPUDriver = true;
|
||||
experimentalGPUInstallMode = "overlay";
|
||||
};
|
||||
|
||||
boot.extraModprobeConfig = ''
|
||||
options hid_apple iso_layout=0
|
||||
'';
|
||||
|
||||
boot.kernelParams = [ "apple_dcp.show_notch=1" ];
|
||||
|
||||
networking.hostName = "callisto"; # Define your hostname.
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
|
||||
networking.wireless.iwd = {
|
||||
enable = true;
|
||||
settings.General.EnableNetworkConfiguration = true;
|
||||
};
|
||||
|
||||
nixpkgs.overlays = [ inputs.apple-silicon.overlays.apple-silicon-overlay ];
|
||||
|
||||
programs.light.enable = true;
|
||||
|
||||
# Configure network proxy if necessary
|
||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||
|
||||
# Enable networking
|
||||
# networking.networkmanager.enable = true;
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "America/Los_Angeles";
|
||||
|
||||
# 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";
|
||||
};
|
||||
|
||||
# Enable the X11 windowing system.
|
||||
# You can disable this if you're only using the Wayland session.
|
||||
services.xserver.enable = false;
|
||||
|
||||
programs.nix-ld = {
|
||||
enable = true;
|
||||
libraries = with pkgs; [ icu xorg.libXtst xorg.libXi ];
|
||||
};
|
||||
|
||||
# Enable the KDE Plasma Desktop Environment.
|
||||
services.displayManager.sddm = {
|
||||
enable = true;
|
||||
wayland.enable = true;
|
||||
theme = "catppuccin-mocha";
|
||||
package = pkgs.kdePackages.sddm;
|
||||
};
|
||||
|
||||
# services.desktopManager.plasma6.enable = true;
|
||||
|
||||
# Configure keymap in X11
|
||||
services.xserver = {
|
||||
xkb.layout = "us";
|
||||
xkb.variant = "";
|
||||
};
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = true;
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
# services.xserver.libinput.enable = true;
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
users.users.youwen = {
|
||||
isNormalUser = true;
|
||||
description = "Youwen Wu";
|
||||
extraGroups = [ "networkmanager" "wheel" "nixos" "realtime" ];
|
||||
};
|
||||
|
||||
users.groups.realtime = { };
|
||||
|
||||
nix.settings = {
|
||||
trusted-users = [ "root" "youwen" ];
|
||||
experimental-features = [ "nix-command" "flakes" ];
|
||||
};
|
||||
|
||||
services.udev.extraRules = ''
|
||||
KERNEL=="cpu_dma_latency", GROUP="realtime"
|
||||
'';
|
||||
|
||||
security.pam.loginLimits = [
|
||||
{
|
||||
domain = "@realtime";
|
||||
type = "-";
|
||||
item = "rtprio";
|
||||
value = 98;
|
||||
}
|
||||
{
|
||||
domain = "@realtime";
|
||||
type = "-";
|
||||
item = "memlock";
|
||||
value = "unlimited";
|
||||
}
|
||||
{
|
||||
domain = "@realtime";
|
||||
type = "-";
|
||||
item = "nice";
|
||||
value = -11;
|
||||
}
|
||||
];
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
neovim
|
||||
wget
|
||||
git
|
||||
curl
|
||||
# librewolf
|
||||
# gnumake
|
||||
# clang
|
||||
# gcc
|
||||
# cachix
|
||||
# nodejs_22
|
||||
# cargo
|
||||
# rustc
|
||||
# gnupg
|
||||
# openssh
|
||||
# python3
|
||||
(pkgs.catppuccin-sddm.override { flavor = "mocha"; })
|
||||
# steam-run
|
||||
|
||||
# # deps for neovim compilation
|
||||
# lua51Packages.lua
|
||||
# lua51Packages.luarocks
|
||||
# tree-sitter
|
||||
];
|
||||
|
||||
environment.variables = {
|
||||
EDITOR = "nvim";
|
||||
NIX_AUTO_RUN = 1;
|
||||
};
|
||||
|
||||
# tells electron apps to use Wayland
|
||||
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||
|
||||
# Some programs need SUID wrappers, can be configured further or are
|
||||
# started in user sessions.
|
||||
# programs.mtr.enable = true;
|
||||
programs.gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
};
|
||||
|
||||
programs.dconf.enable = true;
|
||||
|
||||
programs.hyprland.enable = true;
|
||||
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||
# this value at the release version of the first install of this system.
|
||||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
system.stateVersion = "24.11"; # Did you read the comment?
|
||||
|
||||
programs.zsh.enable = false;
|
||||
programs.fish.enable = true;
|
||||
users.users.youwen.shell = pkgs.fish;
|
||||
}
|
|
@ -1,94 +0,0 @@
|
|||
# Edit this configuration file to define what should be installed on your system. Help is available in the configuration.nix(5) man page, on https://search.nixos.org/options and in
|
||||
# the NixOS manual (`nixos-help`).
|
||||
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{ imports =
|
||||
[ # Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
./apple-silicon-support
|
||||
];
|
||||
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = false;
|
||||
|
||||
hardware.asahi.peripheralFirmwareDirectory = ./firmware;
|
||||
|
||||
boot.extraModprobeConfig = ''
|
||||
options hid_apple iso_layout=0
|
||||
'';
|
||||
|
||||
networking.wireless.iwd = {
|
||||
enable = true;
|
||||
settings.General.EnableNetworkConfiguration = true;
|
||||
};
|
||||
|
||||
networking.hostName = "callisto"; # Define your hostname. Pick only one of the below networking options. networking.wireless.enable = true; # Enables wireless support via
|
||||
# wpa_supplicant. networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
||||
|
||||
Set your time zone. time.timeZone = "America/Amsterdam";
|
||||
|
||||
# Configure network proxy if necessary networking.proxy.default = "http://user:password@proxy:port/"; networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
# console = {
|
||||
# font = "Lat2-Terminus16"; keyMap = "us"; useXkbConfig = true; # use xkb.options in tty.
|
||||
# };
|
||||
|
||||
# Enable the X11 windowing system. services.xserver.enable = true;
|
||||
|
||||
|
||||
|
||||
|
||||
# Configure keymap in X11 services.xserver.xkb.layout = "us"; services.xserver.xkb.options = "eurosign:e,caps:escape";
|
||||
|
||||
# Enable CUPS to print documents. services.printing.enable = true;
|
||||
|
||||
# Enable sound. hardware.pulseaudio.enable = true; OR services.pipewire = {
|
||||
# enable = true; pulse.enable = true;
|
||||
# };
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager). services.libinput.enable = true;
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’. users.users.alice = {
|
||||
# isNormalUser = true; extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user. packages = with pkgs; [
|
||||
# firefox tree
|
||||
# ];
|
||||
# };
|
||||
|
||||
# List packages installed in system profile. To search, run: $ nix search wget environment.systemPackages = with pkgs; [
|
||||
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. wget
|
||||
# ];
|
||||
|
||||
# Some programs need SUID wrappers, can be configured further or are started in user sessions. programs.mtr.enable = true; programs.gnupg.agent = {
|
||||
# enable = true; enableSSHSupport = true;
|
||||
# };
|
||||
|
||||
# List services that you want to enable:
|
||||
|
||||
# Enable the OpenSSH daemon. services.openssh.enable = true;
|
||||
|
||||
# Open ports in the firewall. networking.firewall.allowedTCPPorts = [ ... ]; networking.firewall.allowedUDPPorts = [ ... ]; Or disable the firewall altogether.
|
||||
# networking.firewall.enable = false;
|
||||
|
||||
# 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. system.copySystemConfiguration = true;
|
||||
|
||||
# This option defines the first version of NixOS you have installed on this particular machine, and is used to maintain compatibility with application data (e.g. databases)
|
||||
# created on older NixOS versions.
|
||||
#
|
||||
# Most users should NEVER change this value after the initial install, for any reason, even if you've upgraded your system to a new NixOS release.
|
||||
#
|
||||
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from, so changing it will NOT upgrade your system - see
|
||||
# https://nixos.org/manual/nixos/stable/#sec-upgrading for how to actually do that.
|
||||
#
|
||||
# This value being lower than the current NixOS release does NOT mean your system is out of date, out of support, or vulnerable.
|
||||
#
|
||||
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, and migrated your data accordingly.
|
||||
#
|
||||
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
|
||||
system.stateVersion = "24.11"; # Did you read the comment?
|
||||
|
||||
}
|
||||
|
|
@ -1,35 +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 = [ "usb_storage" "sdhci_pci" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/bc88058e-6e3a-4987-b78e-e19cb5611608";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/852F-07F1";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0022" "dmask=0022" ];
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
# 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.wlan0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";
|
||||
}
|
0
modules/common/fonts/default.nix → modules/common/fonts.nix
Executable file → Normal file
0
modules/darwin/darwin-configuration.nix
Executable file → Normal file
0
modules/darwin/homebrew.nix
Executable file → Normal file
0
modules/darwin/yabai.nix
Executable file → Normal file
30
users/youwen/common/core.nix → modules/home-manager/common/core.nix
Executable file → Normal file
|
@ -1,6 +1,6 @@
|
|||
{ pkgs, ... }: {
|
||||
programs.bash.enable = true;
|
||||
programs.nushell = {
|
||||
programs.bash.enable = pkgs.lib.mkDefault true;
|
||||
programs.nushell = pkgs.lib.mkDefault {
|
||||
enable = true;
|
||||
configFile.text = ''
|
||||
$env.config = {
|
||||
|
@ -10,21 +10,21 @@
|
|||
'';
|
||||
};
|
||||
|
||||
programs.fzf = { enable = true; };
|
||||
programs.fzf = pkgs.lib.mkDefault { enable = true; };
|
||||
|
||||
programs.git = {
|
||||
programs.git = pkgs.lib.mkDefault {
|
||||
enable = true;
|
||||
userName = "Youwen Wu";
|
||||
userEmail = "youwenw@gmail.com";
|
||||
delta.enable = true;
|
||||
extraConfig = {
|
||||
init.defaultBranch = "main";
|
||||
commit.gpgsign = pkgs.lib.mkDefault "true";
|
||||
commit.gpgsign = "true";
|
||||
user.signingkey = "8F5E6C1AF90976CA7102917A865658ED1FE61EC3";
|
||||
};
|
||||
};
|
||||
|
||||
programs.lazygit = {
|
||||
programs.lazygit = pkgs.lib.mkDefault {
|
||||
enable = true;
|
||||
settings = {
|
||||
git.paging = {
|
||||
|
@ -34,28 +34,28 @@
|
|||
};
|
||||
};
|
||||
|
||||
programs.bat.enable = true;
|
||||
programs.bat.enable = pkgs.lib.mkDefault true;
|
||||
|
||||
programs.ripgrep.enable = true;
|
||||
programs.ripgrep.enable = pkgs.lib.mkDefault true;
|
||||
|
||||
programs.readline = {
|
||||
enable = true;
|
||||
extraConfig = "set editing-mode vi";
|
||||
};
|
||||
|
||||
programs.zoxide = {
|
||||
programs.zoxide = pkgs.lib.mkDefault {
|
||||
enable = true;
|
||||
# enableZshIntegration = true;
|
||||
enableFishIntegration = true;
|
||||
enableNushellIntegration = true;
|
||||
};
|
||||
|
||||
programs.gh = {
|
||||
programs.gh = pkgs.lib.mkDefault {
|
||||
enable = true;
|
||||
extensions = [ pkgs.github-copilot-cli ];
|
||||
};
|
||||
|
||||
programs.oh-my-posh = {
|
||||
programs.oh-my-posh = pkgs.lib.mkDefault {
|
||||
enable = true;
|
||||
# enableZshIntegration = true;
|
||||
enableFishIntegration = true;
|
||||
|
@ -124,9 +124,9 @@
|
|||
];
|
||||
};
|
||||
|
||||
programs.fd.enable = true;
|
||||
programs.fd.enable = pkgs.lib.mkDefault true;
|
||||
|
||||
programs.btop = {
|
||||
programs.btop = pkgs.lib.mkDefault {
|
||||
enable = true;
|
||||
settings = {
|
||||
color_theme = "tokyo-night";
|
||||
|
@ -135,13 +135,13 @@
|
|||
};
|
||||
};
|
||||
|
||||
programs.eza = {
|
||||
programs.eza = pkgs.lib.mkDefault {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
enableBashIntegration = true;
|
||||
};
|
||||
|
||||
programs.neovim = {
|
||||
programs.neovim = pkgs.lib.mkDefault {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
viAlias = true;
|
3
users/youwen/darwin/darwin-home.nix → modules/home-manager/darwin/darwin-home.nix
Executable file → Normal file
|
@ -19,7 +19,8 @@
|
|||
# xxx
|
||||
# '';
|
||||
|
||||
home.file.".config/neofetch/config.conf".source = ../common/neofetch.conf;
|
||||
home.file.".config/neofetch/config.conf".source =
|
||||
../../../config/neofetch.conf;
|
||||
|
||||
# Packages that should be installed to the user profile.
|
||||
home.packages = with pkgs; [
|
0
users/youwen/linux/theming/catppuccin.nix → modules/home-manager/linux/catppuccin.nix
Executable file → Normal file
55
modules/home-manager/linux/desktop.nix
Normal file
|
@ -0,0 +1,55 @@
|
|||
{ pkgs, ... }: {
|
||||
wayland.windowManager.hyprland = import ./hyprland-conf.nix;
|
||||
|
||||
# Audio effects and EQ tool
|
||||
services.easyeffects.enable = true;
|
||||
services.easyeffects.package = pkgs.easyeffects;
|
||||
|
||||
# Notification daemon
|
||||
services.dunst = {
|
||||
enable = true;
|
||||
catppuccin.enable = true;
|
||||
iconTheme = {
|
||||
name = "Papirus-Dark";
|
||||
package = pkgs.papirus-icon-theme;
|
||||
size = "32x32";
|
||||
};
|
||||
};
|
||||
|
||||
# Currently non-functional
|
||||
programs.wlogout.enable = true;
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
catppuccin.enable = true;
|
||||
cursorTheme = {
|
||||
name = "Bibata-Modern-Ice";
|
||||
size = 26;
|
||||
};
|
||||
iconTheme = { name = "Papirus-Dark"; };
|
||||
};
|
||||
|
||||
qt = {
|
||||
enable = true;
|
||||
platformTheme.name = "qtct";
|
||||
style.name = "kvantum";
|
||||
};
|
||||
|
||||
xdg.configFile = {
|
||||
"Kvantum/kvantum.kvconfig".text = ''
|
||||
[General]
|
||||
theme=GraphiteNordDark
|
||||
'';
|
||||
|
||||
"Kvantum/GraphiteNord".source =
|
||||
"${pkgs.graphite-kde-theme}/share/Kvantum/GraphiteNord";
|
||||
};
|
||||
|
||||
programs.rofi = {
|
||||
enable = true;
|
||||
package = pkgs.rofi-wayland;
|
||||
theme = "gruvbox-dark";
|
||||
};
|
||||
|
||||
programs.waybar = import ./waybar/waybar-conf.nix;
|
||||
}
|
208
modules/home-manager/linux/hyprland-conf.nix
Normal file
|
@ -0,0 +1,208 @@
|
|||
{
|
||||
enable = true;
|
||||
settings = {
|
||||
exec-once = [ "waypaper --restore" ];
|
||||
"$mod" = "SUPER";
|
||||
"$Left" = "Y";
|
||||
"$Right" = "O";
|
||||
"$Up" = "I";
|
||||
"$Down" = "U";
|
||||
env = [
|
||||
"HYPRCURSOR_THEME,Bibata-Modern-Ice"
|
||||
"HYPRCURSOR_SIZE,26"
|
||||
"XCURSOR_THEME,Bibata-Modern-Ice"
|
||||
"XCURSOR_SIZE,26"
|
||||
];
|
||||
bind = [
|
||||
# Application Keybinds
|
||||
"$mod, F, exec, librewolf"
|
||||
"$mod, T, exec, kitty"
|
||||
"$mod, E, exec, dolphin"
|
||||
"$mod, R, exec, pavucontrol"
|
||||
|
||||
# Window actions
|
||||
"$mod, Q, killactive"
|
||||
"$mod, W, togglefloating"
|
||||
"$mod, J, togglesplit"
|
||||
"$mod, Return, fullscreen"
|
||||
|
||||
# Move around
|
||||
"$mod, $Left, movefocus, l"
|
||||
"$mod, $Right, movefocus, r"
|
||||
"$mod, $Up, movefocus, u"
|
||||
"$mod, $Down, movefocus, d"
|
||||
|
||||
"$mod, 1, workspace, 1"
|
||||
"$mod, 2, workspace, 2"
|
||||
"$mod, 3, workspace, 3"
|
||||
"$mod, 4, workspace, 4"
|
||||
"$mod, 5, workspace, 5"
|
||||
"$mod, 6, workspace, 6"
|
||||
"$mod, 7, workspace, 7"
|
||||
"$mod, 8, workspace, 8"
|
||||
"$mod, 9, workspace, 9"
|
||||
"$mod, 0, workspace, 10"
|
||||
|
||||
"$mod, S, togglespecialworkspace"
|
||||
|
||||
# Move windows around
|
||||
"$mod+Shift+Ctrl, $Left, movewindow, l"
|
||||
"$mod+Shift+Ctrl, $Right, movewindow, r"
|
||||
"$mod+Shift+Ctrl, $Up, movewindow, u"
|
||||
"$mod+Shift+Ctrl, $Down, movewindow, d"
|
||||
|
||||
"$mod+Ctrl+Alt, $Right, movetoworkspace, r+1"
|
||||
"$mod+Ctrl+Alt, $Left, movetoworkspace, r-1"
|
||||
|
||||
"$mod+Ctrl, $Right, workspace, r+1"
|
||||
"$mod+Ctrl, $Left, workspace, r-1"
|
||||
|
||||
"$mod+Alt, S, movetoworkspacesilent, special"
|
||||
|
||||
# Utilities
|
||||
"$mod, Space, exec, pkill -x rofi || rofi -show drun" # Run rofi
|
||||
|
||||
''$mod, P, exec, grim -g "$(slurp)" - | swappy -f -'' # Screenshot
|
||||
|
||||
"$mod, Backspace, exec, wlogout" # Screenshot
|
||||
];
|
||||
bindm = [
|
||||
"$mod, mouse:272, movewindow"
|
||||
"$mod, mouse:273, resizewindow"
|
||||
"$mod, Z, movewindow"
|
||||
"$mod, X, resizewindow"
|
||||
];
|
||||
windowrulev2 = [
|
||||
"opacity 0.90 0.90,class:^(librewolf)$"
|
||||
"opacity 0.90 0.90,class:^(Brave-browser)$"
|
||||
"opacity 0.80 0.80,class:^(Steam)$"
|
||||
"opacity 0.80 0.80,class:^(steam)$"
|
||||
"opacity 0.80 0.80,class:^(steamwebhelper)$"
|
||||
"opacity 0.80 0.80,class:^(Spotify)$"
|
||||
"opacity 0.80 0.80,initialTitle:^(Spotify Premium)$"
|
||||
"opacity 0.80 0.80,initialTitle:^(Spotify Free)$"
|
||||
"opacity 0.80 0.80,class:^(code-oss)$"
|
||||
"opacity 0.80 0.80,class:^(Code)$"
|
||||
"opacity 0.80 0.80,class:^(code-url-handler)$"
|
||||
"opacity 0.80 0.80,class:^(code-insiders-url-handler)$"
|
||||
"opacity 0.80 0.80,class:^(kitty)$"
|
||||
"opacity 0.80 0.80,class:^(org.kde.dolphin)$"
|
||||
"opacity 0.80 0.80,class:^(org.kde.ark)$"
|
||||
"opacity 0.80 0.80,class:^(nwg-look)$"
|
||||
"opacity 0.80 0.80,class:^(qt5ct)$"
|
||||
"opacity 0.80 0.80,class:^(qt6ct)$"
|
||||
"opacity 0.80 0.80,class:^(kvantummanager)$"
|
||||
|
||||
"opacity 0.90 0.90,class:^(com.github.rafostar.Clapper)$ # Clapper-Gtk"
|
||||
"opacity 0.80 0.80,class:^(com.github.tchx84.Flatseal)$ # Flatseal-Gtk"
|
||||
"opacity 0.80 0.80,class:^(hu.kramo.Cartridges)$ # Cartridges-Gtk"
|
||||
"opacity 0.80 0.80,class:^(com.obsproject.Studio)$ # Obs-Qt"
|
||||
"opacity 0.80 0.80,class:^(gnome-boxes)$ # Boxes-Gtk"
|
||||
"opacity 0.80 0.80,class:^(discord)$ # Discord-Electron"
|
||||
"opacity 0.80 0.80,class:^(vesktop)$ # Vesktop-Electron"
|
||||
"opacity 0.80 0.80,class:^(ArmCord)$ # ArmCord-Electron"
|
||||
"opacity 0.80 0.80,class:^(app.drey.Warp)$ # Warp-Gtk"
|
||||
"opacity 0.80 0.80,class:^(net.davidotek.pupgui2)$ # ProtonUp-Qt"
|
||||
"opacity 0.80 0.80,class:^(yad)$ # Protontricks-Gtk"
|
||||
"opacity 0.80 0.80,class:^(signal)$ # Signal-Gtk"
|
||||
"opacity 0.80 0.80,class:^(io.github.alainm23.planify)$ # planify-Gtk"
|
||||
"opacity 0.80 0.80,class:^(io.gitlab.theevilskeleton.Upscaler)$ # Upscaler-Gtk"
|
||||
"opacity 0.80 0.80,class:^(com.github.unrud.VideoDownloader)$ # VideoDownloader-Gtk"
|
||||
"opacity 0.80 0.80,class:^(lutris)$ # Lutris game launcher"
|
||||
|
||||
"opacity 0.80 0.70,class:^(pavucontrol)$"
|
||||
"opacity 0.80 0.70,class:^(blueman-manager)$"
|
||||
"opacity 0.80 0.70,class:^(nm-applet)$"
|
||||
"opacity 0.80 0.70,class:^(nm-connection-editor)$"
|
||||
"opacity 0.80 0.70,class:^(org.kde.polkit-kde-authentication-agent-1)$"
|
||||
|
||||
"float,class:^(org.kde.dolphin)$,title:^(Progress Dialog — Dolphin)$"
|
||||
"float,class:^(org.kde.dolphin)$,title:^(Copying — Dolphin)$"
|
||||
"float,title:^(Picture-in-Picture)$"
|
||||
"float,class:^(librewolf)$,title:^(Library)$"
|
||||
"float,class:^(vlc)$"
|
||||
"float,class:^(kvantummanager)$"
|
||||
"float,class:^(qt5ct)$"
|
||||
"float,class:^(qt6ct)$"
|
||||
"float,class:^(nwg-look)$"
|
||||
"float,class:^(org.kde.ark)$"
|
||||
"float,class:^(com.github.rafostar.Clapper)$ # Clapper-Gtk"
|
||||
"float,class:^(app.drey.Warp)$ # Warp-Gtk"
|
||||
"float,class:^(net.davidotek.pupgui2)$ # ProtonUp-Qt"
|
||||
"float,class:^(yad)$ # Protontricks-Gtk"
|
||||
"float,class:^(eog)$ # Imageviewer-Gtk"
|
||||
"float,class:^(io.github.alainm23.planify)$ # planify-Gtk"
|
||||
"float,class:^(io.gitlab.theevilskeleton.Upscaler)$ # Upscaler-Gtk"
|
||||
"float,class:^(com.github.unrud.VideoDownloader)$ # VideoDownloader-Gkk"
|
||||
"float,class:^(pavucontrol)$"
|
||||
"float,class:^(blueman-manager)$"
|
||||
"float,class:^(nm-applet)$"
|
||||
"float,class:^(nm-connection-editor)$"
|
||||
"float,class:^(org.kde.polkit-kde-authentication-agent-1)$"
|
||||
"opacity 0.80 0.80,class:^(org.freedesktop.impl.portal.desktop.gtk)$"
|
||||
"opacity 0.80 0.80,class:^(org.freedesktop.impl.portal.desktop.hyprland)$"
|
||||
];
|
||||
layerrule = [
|
||||
"blur,rofi"
|
||||
"ignorezero,rofi"
|
||||
"blur,notifications"
|
||||
"ignorezero,notifications"
|
||||
"blur,swaync-notification-window"
|
||||
"ignorezero,swaync-notification-window"
|
||||
"blur,swaync-control-center"
|
||||
"ignorezero,swaync-control-center"
|
||||
"blur,logout_dialog"
|
||||
];
|
||||
monitor =
|
||||
[ "DP-1,2560x1440@165,1920x0,auto" "HDMI-A-1,1920x1080@60,0x0,1" ];
|
||||
dwindle = {
|
||||
pseudotile = "yes";
|
||||
preserve_split = "yes";
|
||||
};
|
||||
animations = {
|
||||
enabled = "yes";
|
||||
bezier = [
|
||||
"wind, 0.05, 0.9, 0.1, 1.05"
|
||||
"winIn, 0.1, 1.1, 0.1, 1.1"
|
||||
"winOut, 0.3, -0.3, 0, 1"
|
||||
"liner, 1, 1, 1, 1"
|
||||
];
|
||||
animation = [
|
||||
"windows, 1, 6, wind, slide"
|
||||
"windowsIn, 1, 6, winIn, slide"
|
||||
"windowsOut, 1, 5, winOut, slide"
|
||||
"windowsMove, 1, 5, wind, slide"
|
||||
"border, 1, 1, liner"
|
||||
"borderangle, 1, 30, liner, loop"
|
||||
"fade, 1, 10, default"
|
||||
"workspaces, 1, 5, wind"
|
||||
];
|
||||
};
|
||||
general = {
|
||||
gaps_in = "3";
|
||||
gaps_out = "8";
|
||||
border_size = "2";
|
||||
#
|
||||
# the dot is a hyprland name, not nix syntax, so we escape it
|
||||
"col.active_border" = "rgba(ca9ee6ff) rgba(f2d5cfff) 45deg";
|
||||
"col.inactive_border" = "rgba(b4befecc) rgba(6c7086cc) 45deg";
|
||||
layout = "dwindle";
|
||||
resize_on_border = "true";
|
||||
sensitivity = "0.5";
|
||||
};
|
||||
decoration = {
|
||||
rounding = "10";
|
||||
drop_shadow = "false";
|
||||
dim_special = "0.3";
|
||||
blur = {
|
||||
enabled = "yes";
|
||||
size = "6";
|
||||
passes = "3";
|
||||
new_optimizations = "on";
|
||||
ignore_opacity = "on";
|
||||
xray = "false";
|
||||
special = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -19,11 +19,69 @@
|
|||
# xxx
|
||||
# '';
|
||||
|
||||
home.file.".config/neofetch/config.conf".source = ../common/neofetch.conf;
|
||||
home.file.".config/neofetch/config.conf".source =
|
||||
../../../config/neofetch.conf;
|
||||
home.file.".wallpapers" = {
|
||||
source = ../../../wallpapers;
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
# Packages that should be installed to the user profile.
|
||||
home.packages = with pkgs; [
|
||||
neofetch
|
||||
|
||||
# archives
|
||||
zip
|
||||
xz
|
||||
unzip
|
||||
p7zip
|
||||
|
||||
# utils
|
||||
nurl # helps fetch git data for nixpkgs
|
||||
|
||||
# nix related
|
||||
#
|
||||
# it provides the command `nom` works just like `nix`
|
||||
# with more details log output
|
||||
nix-output-monitor
|
||||
|
||||
# system tools
|
||||
pciutils # lspci
|
||||
usbutils # lsusb
|
||||
|
||||
# desktop utils
|
||||
wl-clipboard
|
||||
grim
|
||||
slurp
|
||||
swappy
|
||||
pavucontrol
|
||||
swww
|
||||
waypaper
|
||||
|
||||
# desktop apps
|
||||
dolphin
|
||||
bitwarden-desktop
|
||||
thunderbird
|
||||
spotify
|
||||
vesktop
|
||||
signal-desktop
|
||||
modrinth-app
|
||||
lutris
|
||||
wine
|
||||
|
||||
# dev tools
|
||||
nodePackages_latest.pnpm
|
||||
rustfmt
|
||||
rust-analyzer
|
||||
|
||||
# desktop ricing
|
||||
bibata-cursors
|
||||
libsForQt5.qtstyleplugin-kvantum
|
||||
libsForQt5.qt5ct
|
||||
papirus-icon-theme
|
||||
libsForQt5.qt5ct
|
||||
];
|
||||
|
||||
# This value determines the home Manager release that your
|
||||
# configuration is compatible with. This helps avoid breakage
|
||||
# when a new home Manager release introduces backwards
|
||||
|
@ -34,29 +92,6 @@
|
|||
# the home Manager release notes for a list of state version
|
||||
# changes in each release.
|
||||
|
||||
# Audio effects and EQ tool
|
||||
services.easyeffects.enable = true;
|
||||
services.easyeffects.package = pkgs.easyeffects;
|
||||
|
||||
# Notification daemon
|
||||
services.dunst = {
|
||||
enable = true;
|
||||
catppuccin.enable = true;
|
||||
iconTheme = {
|
||||
name = "Papirus-Dark";
|
||||
package = pkgs.papirus-icon-theme;
|
||||
size = "32x32";
|
||||
};
|
||||
};
|
||||
|
||||
# Currently non-functional
|
||||
programs.wlogout.enable = true;
|
||||
programs.rofi = {
|
||||
enable = true;
|
||||
package = pkgs.rofi-wayland;
|
||||
theme = "gruvbox-dark";
|
||||
};
|
||||
|
||||
# Let home Manager install and manage itself.
|
||||
programs.home-manager.enable = true;
|
||||
}
|
89
modules/home-manager/linux/waybar/waybar-conf.nix
Normal file
|
@ -0,0 +1,89 @@
|
|||
{
|
||||
enable = true;
|
||||
settings = {
|
||||
mainBar = {
|
||||
layer = "top";
|
||||
position = "top";
|
||||
height = 24;
|
||||
width = 1600;
|
||||
reload-style-on-change = true;
|
||||
margin = "10px 0px 0px 0px";
|
||||
modules-left = [ "hyprland/window" "hyprland/workspaces" ];
|
||||
modules-right = [ "backlight" "group/adjustable" "custom/weather" ];
|
||||
modules-center = [ "network" "group/hardware" "clock" ];
|
||||
"hyprland/workspaces" = {
|
||||
active-only = false;
|
||||
all-outputs = false;
|
||||
format = "{icon}";
|
||||
persistent-workspaces = {
|
||||
eDP-1 = [ 1 ];
|
||||
DP-1 = [ 2 3 4 5 ];
|
||||
};
|
||||
};
|
||||
"group/hardware" = {
|
||||
orientation = "inherit";
|
||||
modules = [ "cpu" "memory" "battery" ];
|
||||
};
|
||||
"group/adjustable" = {
|
||||
orientation = "inherit";
|
||||
drawer = {
|
||||
transition-duration = 500;
|
||||
transition-left-to-right = true;
|
||||
};
|
||||
modules = [ "pulseaudio" "mpris" ];
|
||||
};
|
||||
"custom/weather" = {
|
||||
orientation = "horizontal";
|
||||
exec = ''curl wttr.in/?format="%l:%20%t"'';
|
||||
interval = 10;
|
||||
};
|
||||
cpu = {
|
||||
interval = 10;
|
||||
format = "{usage}% ";
|
||||
};
|
||||
memory = {
|
||||
interval = 10;
|
||||
format = "{percentage}% ";
|
||||
};
|
||||
# mpris = {
|
||||
# format-playing = " {title} ";
|
||||
# format-paused = " {title} ";
|
||||
# format-stopped = "Nothing Playing";
|
||||
# };
|
||||
tray = { spacing = 10; };
|
||||
clock = { format = "{:%a %b %d, %I:%M %p} "; };
|
||||
backlight = {
|
||||
device = "intel_backlight";
|
||||
format = "{percent}% {icon}";
|
||||
format-icons = [ "" "" ];
|
||||
};
|
||||
battery = {
|
||||
states = {
|
||||
good = 95;
|
||||
warning = 20;
|
||||
critical = 10;
|
||||
};
|
||||
format = "{capacity}% {icon}";
|
||||
format-icons = [ "" "" "" "" "" ];
|
||||
};
|
||||
"hyprland/window" = { format = "{class}"; };
|
||||
network = {
|
||||
format-wifi = "{essid} ";
|
||||
format-linked = "{ifname} (No IP) ";
|
||||
format-disconnected = "Disconnected ⚠";
|
||||
format-alt = "{ifname}: {ipaddr}/{cidr}";
|
||||
};
|
||||
pulseaudio = {
|
||||
format = "{volume}% {icon} {format_source}";
|
||||
format-bluetooth = "{volume}% {icon} {format_source}";
|
||||
format-bluetooth-muted = " {icon} {format_source}";
|
||||
format-muted = " {format_source}";
|
||||
format-source = "{volume}% ";
|
||||
format-source-muted = "";
|
||||
format-icons = { default = [ "" "" "" ]; };
|
||||
};
|
||||
};
|
||||
};
|
||||
style = ./waybar.css;
|
||||
systemd.enable = true;
|
||||
}
|
0
users/youwen/linux/waybar/desktop/waybar.css → modules/home-manager/linux/waybar/waybar.css
Executable file → Normal file
0
modules/nixos/audio/default.nix → modules/nixos/audio.nix
Executable file → Normal file
4
modules/nixos/gaming/default.nix → modules/nixos/gaming.nix
Executable file → Normal file
|
@ -22,10 +22,6 @@
|
|||
libvorbis
|
||||
stdenv.cc.cc.lib
|
||||
libkrb5
|
||||
(writeShellScriptBin "launch-gamescope" ''
|
||||
(sleep 1; pgrep gamescope| xargs renice -n -11 -p)&
|
||||
exec gamescope "$@"
|
||||
'')
|
||||
keyutils
|
||||
];
|
||||
};
|
0
modules/nixos/networking/default.nix → modules/nixos/networking.nix
Executable file → Normal file
|
@ -2,33 +2,24 @@
|
|||
# your system. Help is available in the configuration.nix(5) man page
|
||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||
|
||||
{ config, inputs, pkgs, lib, ... }:
|
||||
{ config, inputs, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [ # Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
# imports = [ # Include the results of the hardware scan.
|
||||
# ./hardware-configuration.nix
|
||||
# ];
|
||||
|
||||
# Bootloader.
|
||||
boot.loader = {
|
||||
efi.canTouchEfiVariables = true;
|
||||
timeout = 15;
|
||||
# Lanzaboote currently replaces the systemd-boot module.
|
||||
# This setting is usually set to true in configuration.nix
|
||||
# generated at installation time. So we force it to false
|
||||
# for now.
|
||||
systemd-boot = {
|
||||
enable = false;
|
||||
enable = true;
|
||||
consoleMode = "auto";
|
||||
};
|
||||
};
|
||||
|
||||
boot.lanzaboote = {
|
||||
enable = true;
|
||||
pkiBundle = "/etc/secureboot";
|
||||
};
|
||||
|
||||
networking.hostName = "demeter"; # Define your hostname.
|
||||
networking.hostName = "nixos"; # Define your hostname.
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
|
||||
# select kernel
|
||||
|
@ -78,20 +69,6 @@
|
|||
package = pkgs.kdePackages.sddm;
|
||||
};
|
||||
|
||||
hardware.nvidia = {
|
||||
modesetting.enable = true;
|
||||
powerManagement.enable = true;
|
||||
powerManagement.finegrained = false;
|
||||
open = false;
|
||||
nvidiaSettings = true;
|
||||
};
|
||||
|
||||
hardware.graphics.enable = true;
|
||||
|
||||
hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
|
||||
# services.desktopManager.plasma6.enable = true;
|
||||
|
||||
# Configure keymap in X11
|
||||
|
@ -110,41 +87,14 @@
|
|||
users.users.youwen = {
|
||||
isNormalUser = true;
|
||||
description = "Youwen Wu";
|
||||
extraGroups = [ "networkmanager" "wheel" "nixos" "realtime" ];
|
||||
extraGroups = [ "networkmanager" "wheel" "nixos" ];
|
||||
};
|
||||
|
||||
users.groups.realtime = { };
|
||||
|
||||
nix.settings = {
|
||||
trusted-users = [ "root" "youwen" ];
|
||||
experimental-features = [ "nix-command" "flakes" ];
|
||||
};
|
||||
|
||||
services.udev.extraRules = ''
|
||||
KERNEL=="cpu_dma_latency", GROUP="realtime"
|
||||
'';
|
||||
|
||||
security.pam.loginLimits = [
|
||||
{
|
||||
domain = "@realtime";
|
||||
type = "-";
|
||||
item = "rtprio";
|
||||
value = 98;
|
||||
}
|
||||
{
|
||||
domain = "@realtime";
|
||||
type = "-";
|
||||
item = "memlock";
|
||||
value = "unlimited";
|
||||
}
|
||||
{
|
||||
domain = "@realtime";
|
||||
type = "-";
|
||||
item = "nice";
|
||||
value = -11;
|
||||
}
|
||||
];
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
15
modules/nixos/nvidia.nix
Normal file
|
@ -0,0 +1,15 @@
|
|||
{ config, ... }: {
|
||||
hardware.nvidia = {
|
||||
modesetting.enable = true;
|
||||
powerManagement.enable = true;
|
||||
powerManagement.finegrained = false;
|
||||
open = false;
|
||||
nvidiaSettings = true;
|
||||
};
|
||||
|
||||
hardware.graphics.enable = true;
|
||||
|
||||
hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
}
|
17
modules/nixos/secureboot.nix
Normal file
|
@ -0,0 +1,17 @@
|
|||
({ pkgs, lib, ... }: {
|
||||
environment.systemPackages = [
|
||||
# For debugging and troubleshooting Secure Boot.
|
||||
pkgs.sbctl
|
||||
];
|
||||
|
||||
# Lanzaboote currently replaces the systemd-boot module.
|
||||
# This setting is usually set to true in configuration.nix
|
||||
# generated at installation time. So we force it to false
|
||||
# for now.
|
||||
boot.loader.systemd-boot.enable = lib.mkForce false;
|
||||
|
||||
boot.lanzaboote = {
|
||||
enable = true;
|
||||
pkiBundle = "/etc/secureboot";
|
||||
};
|
||||
})
|
|
@ -1 +0,0 @@
|
|||
{ imports = [ ./core.nix ]; }
|
|
@ -1,10 +0,0 @@
|
|||
{
|
||||
imports = [
|
||||
../theming
|
||||
../home.nix
|
||||
../programs
|
||||
../hyprland/desktop
|
||||
../waybar/desktop
|
||||
];
|
||||
}
|
||||
|
|
@ -1,210 +0,0 @@
|
|||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
settings = {
|
||||
exec-once = [ "waypaper --restore" ];
|
||||
"$mod" = "SUPER";
|
||||
"$Left" = "Y";
|
||||
"$Right" = "O";
|
||||
"$Up" = "I";
|
||||
"$Down" = "U";
|
||||
env = [
|
||||
"HYPRCURSOR_THEME,Bibata-Modern-Ice"
|
||||
"HYPRCURSOR_SIZE,26"
|
||||
"XCURSOR_THEME,Bibata-Modern-Ice"
|
||||
"XCURSOR_SIZE,26"
|
||||
];
|
||||
bind = [
|
||||
# Application Keybinds
|
||||
"$mod, F, exec, librewolf"
|
||||
"$mod, T, exec, kitty"
|
||||
"$mod, E, exec, dolphin"
|
||||
"$mod, R, exec, pavucontrol"
|
||||
|
||||
# Window actions
|
||||
"$mod, Q, killactive"
|
||||
"$mod, W, togglefloating"
|
||||
"$mod, J, togglesplit"
|
||||
"$mod, Return, fullscreen"
|
||||
|
||||
# Move around
|
||||
"$mod, $Left, movefocus, l"
|
||||
"$mod, $Right, movefocus, r"
|
||||
"$mod, $Up, movefocus, u"
|
||||
"$mod, $Down, movefocus, d"
|
||||
|
||||
"$mod, 1, workspace, 1"
|
||||
"$mod, 2, workspace, 2"
|
||||
"$mod, 3, workspace, 3"
|
||||
"$mod, 4, workspace, 4"
|
||||
"$mod, 5, workspace, 5"
|
||||
"$mod, 6, workspace, 6"
|
||||
"$mod, 7, workspace, 7"
|
||||
"$mod, 8, workspace, 8"
|
||||
"$mod, 9, workspace, 9"
|
||||
"$mod, 0, workspace, 10"
|
||||
|
||||
"$mod, S, togglespecialworkspace"
|
||||
|
||||
# Move windows around
|
||||
"$mod+Shift+Ctrl, $Left, movewindow, l"
|
||||
"$mod+Shift+Ctrl, $Right, movewindow, r"
|
||||
"$mod+Shift+Ctrl, $Up, movewindow, u"
|
||||
"$mod+Shift+Ctrl, $Down, movewindow, d"
|
||||
|
||||
"$mod+Ctrl+Alt, $Right, movetoworkspace, r+1"
|
||||
"$mod+Ctrl+Alt, $Left, movetoworkspace, r-1"
|
||||
|
||||
"$mod+Ctrl, $Right, workspace, r+1"
|
||||
"$mod+Ctrl, $Left, workspace, r-1"
|
||||
|
||||
"$mod+Alt, S, movetoworkspacesilent, special"
|
||||
|
||||
# Utilities
|
||||
"$mod, Space, exec, pkill -x rofi || rofi -show drun" # Run rofi
|
||||
|
||||
''$mod, P, exec, grim -g "$(slurp)" - | swappy -f -'' # Screenshot
|
||||
|
||||
"$mod, Backspace, exec, wlogout" # Screenshot
|
||||
];
|
||||
bindm = [
|
||||
"$mod, mouse:272, movewindow"
|
||||
"$mod, mouse:273, resizewindow"
|
||||
"$mod, Z, movewindow"
|
||||
"$mod, X, resizewindow"
|
||||
];
|
||||
windowrulev2 = [
|
||||
"opacity 0.90 0.90,class:^(librewolf)$"
|
||||
"opacity 0.90 0.90,class:^(Brave-browser)$"
|
||||
"opacity 0.80 0.80,class:^(Steam)$"
|
||||
"opacity 0.80 0.80,class:^(steam)$"
|
||||
"opacity 0.80 0.80,class:^(steamwebhelper)$"
|
||||
"opacity 0.80 0.80,class:^(Spotify)$"
|
||||
"opacity 0.80 0.80,initialTitle:^(Spotify Premium)$"
|
||||
"opacity 0.80 0.80,initialTitle:^(Spotify Free)$"
|
||||
"opacity 0.80 0.80,class:^(code-oss)$"
|
||||
"opacity 0.80 0.80,class:^(Code)$"
|
||||
"opacity 0.80 0.80,class:^(code-url-handler)$"
|
||||
"opacity 0.80 0.80,class:^(code-insiders-url-handler)$"
|
||||
"opacity 0.80 0.80,class:^(kitty)$"
|
||||
"opacity 0.80 0.80,class:^(org.kde.dolphin)$"
|
||||
"opacity 0.80 0.80,class:^(org.kde.ark)$"
|
||||
"opacity 0.80 0.80,class:^(nwg-look)$"
|
||||
"opacity 0.80 0.80,class:^(qt5ct)$"
|
||||
"opacity 0.80 0.80,class:^(qt6ct)$"
|
||||
"opacity 0.80 0.80,class:^(kvantummanager)$"
|
||||
|
||||
"opacity 0.90 0.90,class:^(com.github.rafostar.Clapper)$ # Clapper-Gtk"
|
||||
"opacity 0.80 0.80,class:^(com.github.tchx84.Flatseal)$ # Flatseal-Gtk"
|
||||
"opacity 0.80 0.80,class:^(hu.kramo.Cartridges)$ # Cartridges-Gtk"
|
||||
"opacity 0.80 0.80,class:^(com.obsproject.Studio)$ # Obs-Qt"
|
||||
"opacity 0.80 0.80,class:^(gnome-boxes)$ # Boxes-Gtk"
|
||||
"opacity 0.80 0.80,class:^(discord)$ # Discord-Electron"
|
||||
"opacity 0.80 0.80,class:^(vesktop)$ # Vesktop-Electron"
|
||||
"opacity 0.80 0.80,class:^(ArmCord)$ # ArmCord-Electron"
|
||||
"opacity 0.80 0.80,class:^(app.drey.Warp)$ # Warp-Gtk"
|
||||
"opacity 0.80 0.80,class:^(net.davidotek.pupgui2)$ # ProtonUp-Qt"
|
||||
"opacity 0.80 0.80,class:^(yad)$ # Protontricks-Gtk"
|
||||
"opacity 0.80 0.80,class:^(signal)$ # Signal-Gtk"
|
||||
"opacity 0.80 0.80,class:^(io.github.alainm23.planify)$ # planify-Gtk"
|
||||
"opacity 0.80 0.80,class:^(io.gitlab.theevilskeleton.Upscaler)$ # Upscaler-Gtk"
|
||||
"opacity 0.80 0.80,class:^(com.github.unrud.VideoDownloader)$ # VideoDownloader-Gtk"
|
||||
"opacity 0.80 0.80,class:^(lutris)$ # Lutris game launcher"
|
||||
|
||||
"opacity 0.80 0.70,class:^(pavucontrol)$"
|
||||
"opacity 0.80 0.70,class:^(blueman-manager)$"
|
||||
"opacity 0.80 0.70,class:^(nm-applet)$"
|
||||
"opacity 0.80 0.70,class:^(nm-connection-editor)$"
|
||||
"opacity 0.80 0.70,class:^(org.kde.polkit-kde-authentication-agent-1)$"
|
||||
|
||||
"float,class:^(org.kde.dolphin)$,title:^(Progress Dialog — Dolphin)$"
|
||||
"float,class:^(org.kde.dolphin)$,title:^(Copying — Dolphin)$"
|
||||
"float,title:^(Picture-in-Picture)$"
|
||||
"float,class:^(librewolf)$,title:^(Library)$"
|
||||
"float,class:^(vlc)$"
|
||||
"float,class:^(kvantummanager)$"
|
||||
"float,class:^(qt5ct)$"
|
||||
"float,class:^(qt6ct)$"
|
||||
"float,class:^(nwg-look)$"
|
||||
"float,class:^(org.kde.ark)$"
|
||||
"float,class:^(com.github.rafostar.Clapper)$ # Clapper-Gtk"
|
||||
"float,class:^(app.drey.Warp)$ # Warp-Gtk"
|
||||
"float,class:^(net.davidotek.pupgui2)$ # ProtonUp-Qt"
|
||||
"float,class:^(yad)$ # Protontricks-Gtk"
|
||||
"float,class:^(eog)$ # Imageviewer-Gtk"
|
||||
"float,class:^(io.github.alainm23.planify)$ # planify-Gtk"
|
||||
"float,class:^(io.gitlab.theevilskeleton.Upscaler)$ # Upscaler-Gtk"
|
||||
"float,class:^(com.github.unrud.VideoDownloader)$ # VideoDownloader-Gkk"
|
||||
"float,class:^(pavucontrol)$"
|
||||
"float,class:^(blueman-manager)$"
|
||||
"float,class:^(nm-applet)$"
|
||||
"float,class:^(nm-connection-editor)$"
|
||||
"float,class:^(org.kde.polkit-kde-authentication-agent-1)$"
|
||||
"opacity 0.80 0.80,class:^(org.freedesktop.impl.portal.desktop.gtk)$"
|
||||
"opacity 0.80 0.80,class:^(org.freedesktop.impl.portal.desktop.hyprland)$"
|
||||
];
|
||||
layerrule = [
|
||||
"blur,rofi"
|
||||
"ignorezero,rofi"
|
||||
"blur,notifications"
|
||||
"ignorezero,notifications"
|
||||
"blur,swaync-notification-window"
|
||||
"ignorezero,swaync-notification-window"
|
||||
"blur,swaync-control-center"
|
||||
"ignorezero,swaync-control-center"
|
||||
"blur,logout_dialog"
|
||||
];
|
||||
monitor =
|
||||
[ "DP-1,2560x1440@165,1920x0,auto" "HDMI-A-1,1920x1080@60,0x0,1" ];
|
||||
dwindle = {
|
||||
pseudotile = "yes";
|
||||
preserve_split = "yes";
|
||||
};
|
||||
animations = {
|
||||
enabled = "yes";
|
||||
bezier = [
|
||||
"wind, 0.05, 0.9, 0.1, 1.05"
|
||||
"winIn, 0.1, 1.1, 0.1, 1.1"
|
||||
"winOut, 0.3, -0.3, 0, 1"
|
||||
"liner, 1, 1, 1, 1"
|
||||
];
|
||||
animation = [
|
||||
"windows, 1, 6, wind, slide"
|
||||
"windowsIn, 1, 6, winIn, slide"
|
||||
"windowsOut, 1, 5, winOut, slide"
|
||||
"windowsMove, 1, 5, wind, slide"
|
||||
"border, 1, 1, liner"
|
||||
"borderangle, 1, 30, liner, loop"
|
||||
"fade, 1, 10, default"
|
||||
"workspaces, 1, 5, wind"
|
||||
];
|
||||
};
|
||||
general = {
|
||||
gaps_in = "3";
|
||||
gaps_out = "8";
|
||||
border_size = "2";
|
||||
#
|
||||
# the dot is a hyprland name, not nix syntax, so we escape it
|
||||
"col.active_border" = "rgba(ca9ee6ff) rgba(f2d5cfff) 45deg";
|
||||
"col.inactive_border" = "rgba(b4befecc) rgba(6c7086cc) 45deg";
|
||||
layout = "dwindle";
|
||||
resize_on_border = "true";
|
||||
sensitivity = "0.5";
|
||||
};
|
||||
decoration = {
|
||||
rounding = "10";
|
||||
drop_shadow = "false";
|
||||
dim_special = "0.3";
|
||||
blur = {
|
||||
enabled = "yes";
|
||||
size = "6";
|
||||
passes = "3";
|
||||
new_optimizations = "on";
|
||||
ignore_opacity = "on";
|
||||
xray = "false";
|
||||
special = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
{ imports = [ ../common.nix ]; }
|
|
@ -1,18 +0,0 @@
|
|||
{ lib, ... }:
|
||||
{
|
||||
imports = [ ../common.nix ];
|
||||
wayland.windowManager.hyprland.settings.input.touchpad = {
|
||||
natural_scroll = true;
|
||||
disable_while_typing = true;
|
||||
clickfinger_behavior = true;
|
||||
tap-to-click = false;
|
||||
scroll_factor = 0.5;
|
||||
};
|
||||
wayland.windowManager.hyprland.settings.general.sensitivity = lib.mkForce 1.0;
|
||||
wayland.windowManager.hyprland.settings.env = [
|
||||
"HYPRCURSOR_THEME,Bibata-Modern-Ice"
|
||||
"HYPRCURSOR_SIZE,24"
|
||||
"XCURSOR_THEME,Bibata-Modern-Ice"
|
||||
"XCURSOR_SIZE,24"
|
||||
];
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
../theming
|
||||
../home.nix
|
||||
../programs
|
||||
../hyprland/laptop
|
||||
../waybar/laptop
|
||||
];
|
||||
|
||||
# some overrides for laptop specifically
|
||||
programs.kitty.settings.font_size = pkgs.lib.mkForce 11;
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
{ pkgs, ... }:
|
||||
let createCommon = import ../common-packages.nix;
|
||||
in { home.packages = ((createCommon pkgs) ++ [ ]); }
|
|
@ -1,50 +0,0 @@
|
|||
pkgs:
|
||||
with pkgs; [
|
||||
neofetch
|
||||
|
||||
# archives
|
||||
zip
|
||||
xz
|
||||
unzip
|
||||
p7zip
|
||||
|
||||
# utils
|
||||
nurl # helps fetch git data for nixpkgs
|
||||
|
||||
# nix related
|
||||
#
|
||||
# it provides the command `nom` works just like `nix`
|
||||
# with more details log output
|
||||
nix-output-monitor
|
||||
|
||||
# system tools
|
||||
pciutils # lspci
|
||||
usbutils # lsusb
|
||||
|
||||
# desktop utils
|
||||
wl-clipboard
|
||||
grim
|
||||
slurp
|
||||
swappy
|
||||
pavucontrol
|
||||
swww
|
||||
waypaper
|
||||
|
||||
# desktop apps
|
||||
dolphin
|
||||
thunderbird
|
||||
vesktop
|
||||
signal-desktop
|
||||
|
||||
# dev tools
|
||||
nodePackages_latest.pnpm
|
||||
rustfmt
|
||||
rust-analyzer
|
||||
|
||||
# desktop ricing
|
||||
bibata-cursors
|
||||
libsForQt5.qtstyleplugin-kvantum
|
||||
libsForQt5.qt5ct
|
||||
papirus-icon-theme
|
||||
libsForQt5.qt5ct
|
||||
]
|
|
@ -1,12 +0,0 @@
|
|||
{ pkgs, ... }:
|
||||
let createCommon = import ../common-packages.nix;
|
||||
in {
|
||||
home.packages = ((createCommon pkgs) ++ (with pkgs; [
|
||||
spotify
|
||||
bitwarden-desktop
|
||||
modrinth-app
|
||||
lutris
|
||||
wine
|
||||
sbctl
|
||||
]));
|
||||
}
|
|
@ -1,30 +0,0 @@
|
|||
{ pkgs, ... }: {
|
||||
imports = [ ./catppuccin.nix ];
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
catppuccin.enable = true;
|
||||
cursorTheme = {
|
||||
name = "Bibata-Modern-Ice";
|
||||
size = 26;
|
||||
};
|
||||
iconTheme = { name = "Papirus-Dark"; };
|
||||
};
|
||||
|
||||
qt = {
|
||||
enable = true;
|
||||
platformTheme.name = "qtct";
|
||||
style.name = "kvantum";
|
||||
};
|
||||
|
||||
xdg.configFile = {
|
||||
"Kvantum/kvantum.kvconfig".text = ''
|
||||
[General]
|
||||
theme=GraphiteNordDark
|
||||
'';
|
||||
|
||||
"Kvantum/GraphiteNord".source =
|
||||
"${pkgs.graphite-kde-theme}/share/Kvantum/GraphiteNord";
|
||||
};
|
||||
|
||||
}
|
|
@ -1,91 +0,0 @@
|
|||
{
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
settings = {
|
||||
mainBar = {
|
||||
layer = "top";
|
||||
position = "top";
|
||||
height = 24;
|
||||
width = 1600;
|
||||
reload-style-on-change = true;
|
||||
margin = "10px 0px 0px 0px";
|
||||
modules-left = [ "hyprland/window" "hyprland/workspaces" ];
|
||||
modules-right = [ "backlight" "group/adjustable" "custom/weather" ];
|
||||
modules-center = [ "network" "group/hardware" "clock" ];
|
||||
"hyprland/workspaces" = {
|
||||
active-only = false;
|
||||
all-outputs = false;
|
||||
format = "{icon}";
|
||||
persistent-workspaces = {
|
||||
eDP-1 = [ 1 ];
|
||||
DP-1 = [ 2 3 4 5 ];
|
||||
};
|
||||
};
|
||||
"group/hardware" = {
|
||||
orientation = "inherit";
|
||||
modules = [ "cpu" "memory" "battery" ];
|
||||
};
|
||||
"group/adjustable" = {
|
||||
orientation = "inherit";
|
||||
drawer = {
|
||||
transition-duration = 500;
|
||||
transition-left-to-right = true;
|
||||
};
|
||||
modules = [ "pulseaudio" "mpris" ];
|
||||
};
|
||||
"custom/weather" = {
|
||||
orientation = "horizontal";
|
||||
exec = ''curl wttr.in/?format="%l:%20%t"'';
|
||||
interval = 10;
|
||||
};
|
||||
cpu = {
|
||||
interval = 10;
|
||||
format = "{usage}% ";
|
||||
};
|
||||
memory = {
|
||||
interval = 10;
|
||||
format = "{percentage}% ";
|
||||
};
|
||||
# mpris = {
|
||||
# format-playing = " {title} ";
|
||||
# format-paused = " {title} ";
|
||||
# format-stopped = "Nothing Playing";
|
||||
# };
|
||||
tray = { spacing = 10; };
|
||||
clock = { format = "{:%a %b %d, %I:%M %p} "; };
|
||||
backlight = {
|
||||
device = "intel_backlight";
|
||||
format = "{percent}% {icon}";
|
||||
format-icons = [ "" "" ];
|
||||
};
|
||||
battery = {
|
||||
states = {
|
||||
good = 95;
|
||||
warning = 20;
|
||||
critical = 10;
|
||||
};
|
||||
format = "{capacity}% {icon}";
|
||||
format-icons = [ "" "" "" "" "" ];
|
||||
};
|
||||
"hyprland/window" = { format = "{class}"; };
|
||||
network = {
|
||||
format-wifi = "{essid} ";
|
||||
format-linked = "{ifname} (No IP) ";
|
||||
format-disconnected = "Disconnected ⚠";
|
||||
format-alt = "{ifname}: {ipaddr}/{cidr}";
|
||||
};
|
||||
pulseaudio = {
|
||||
format = "{volume}% {icon} {format_source}";
|
||||
format-bluetooth = "{volume}% {icon} {format_source}";
|
||||
format-bluetooth-muted = " {icon} {format_source}";
|
||||
format-muted = " {format_source}";
|
||||
format-source = "{volume}% ";
|
||||
format-source-muted = "";
|
||||
format-icons = { default = [ "" "" "" ]; };
|
||||
};
|
||||
};
|
||||
};
|
||||
style = ./waybar.css;
|
||||
systemd.enable = true;
|
||||
};
|
||||
}
|
|
@ -1,93 +0,0 @@
|
|||
{
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
settings = {
|
||||
mainBar = {
|
||||
layer = "top";
|
||||
position = "top";
|
||||
height = 24;
|
||||
# width = 1000;
|
||||
reload-style-on-change = true;
|
||||
margin = "5px 0px 0px 0px";
|
||||
modules-left =
|
||||
[ "hyprland/window" "hyprland/workspaces" "network" "clock" ];
|
||||
modules-right =
|
||||
[ "group/hardware" "backlight" "group/adjustable" "custom/weather" ];
|
||||
# modules-center = [ "network" "group/hardware" "clock" ];
|
||||
"hyprland/workspaces" = {
|
||||
active-only = false;
|
||||
all-outputs = false;
|
||||
format = "{icon}";
|
||||
persistent-workspaces = {
|
||||
eDP-1 = [ 1 ];
|
||||
DP-1 = [ 2 3 4 5 ];
|
||||
};
|
||||
};
|
||||
"group/hardware" = {
|
||||
orientation = "inherit";
|
||||
modules = [ "cpu" "battery" ];
|
||||
};
|
||||
"group/adjustable" = {
|
||||
orientation = "inherit";
|
||||
drawer = {
|
||||
transition-duration = 500;
|
||||
transition-left-to-right = true;
|
||||
};
|
||||
modules = [ "pulseaudio" "mpris" ];
|
||||
};
|
||||
"custom/weather" = {
|
||||
orientation = "horizontal";
|
||||
exec = ''curl wttr.in/?format="%l:%20%t"'';
|
||||
interval = 10;
|
||||
};
|
||||
cpu = {
|
||||
interval = 10;
|
||||
format = "{usage}% ";
|
||||
};
|
||||
memory = {
|
||||
interval = 10;
|
||||
format = "{percentage}% ";
|
||||
};
|
||||
# mpris = {
|
||||
# format-playing = " {title} ";
|
||||
# format-paused = " {title} ";
|
||||
# format-stopped = "Nothing Playing";
|
||||
# };
|
||||
tray = { spacing = 10; };
|
||||
clock = { format = "{:%a %b %d, %I:%M %p} "; };
|
||||
backlight = {
|
||||
device = "intel_backlight";
|
||||
format = "{percent}% {icon}";
|
||||
format-icons = [ "" "" ];
|
||||
};
|
||||
battery = {
|
||||
states = {
|
||||
good = 95;
|
||||
warning = 20;
|
||||
critical = 10;
|
||||
};
|
||||
format = "{capacity}% {icon}";
|
||||
format-icons = [ "" "" "" "" "" ];
|
||||
};
|
||||
"hyprland/window" = { format = "{class}"; };
|
||||
network = {
|
||||
format-wifi = "{essid} ";
|
||||
format-linked = "{ifname} (No IP) ";
|
||||
format-disconnected = "Disconnected ⚠";
|
||||
format-alt = "{ifname}: {ipaddr}/{cidr}";
|
||||
};
|
||||
pulseaudio = {
|
||||
format = "{volume}% {icon} {format_source}";
|
||||
format-bluetooth = "{volume}% {icon} {format_source}";
|
||||
format-bluetooth-muted = " {icon} {format_source}";
|
||||
format-muted = " {format_source}";
|
||||
format-source = "{volume}% ";
|
||||
format-source-muted = "";
|
||||
format-icons = { default = [ "" "" "" ]; };
|
||||
};
|
||||
};
|
||||
};
|
||||
style = ./waybar.css;
|
||||
systemd.enable = true;
|
||||
};
|
||||
}
|
|
@ -1,108 +0,0 @@
|
|||
* {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
border-bottom: 0px solid #ffffff;
|
||||
background: transparent;
|
||||
transition-property: none;
|
||||
transition-duration: 0s;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
background: #24273a;
|
||||
padding: 0px 5px 0px 5px;
|
||||
margin: 0px 0px 0px 2px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
background: #24273a;
|
||||
padding: 0px 5px 0px 5px;
|
||||
margin: 0px 0px 0px 2px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#workspaces button,
|
||||
#workspaces button:hover {
|
||||
padding: 0;
|
||||
background-color: #24273a;
|
||||
/* color: @color4; */
|
||||
}
|
||||
#workspaces button.active,
|
||||
#workspaces button:hover {
|
||||
/* color: @color8; */
|
||||
}
|
||||
|
||||
#clock,
|
||||
#pulseaudio,
|
||||
#network,
|
||||
#battery,
|
||||
#tray,
|
||||
#mpris,
|
||||
#cpu,
|
||||
#memory,
|
||||
#temperature,
|
||||
#custom-weather,
|
||||
#window,
|
||||
#backlight {
|
||||
background-color: #24273a;
|
||||
/* color: @color4; */
|
||||
opacity: 1;
|
||||
border-radius: 5px;
|
||||
padding: 1px 10px 1px 10px;
|
||||
margin: 0px 5px 0px 0px;
|
||||
}
|
||||
#backlight {
|
||||
margin-right: 0px;
|
||||
padding-right: 3px;
|
||||
border-top-right-radius: 0px;
|
||||
border-bottom-right-radius: 0px;
|
||||
}
|
||||
#network {
|
||||
margin-left: 15px;
|
||||
padding-right: 15px;
|
||||
}
|
||||
#mpris {
|
||||
padding-left: 0px;
|
||||
margin-left: 0px;
|
||||
margin-right: 5px;
|
||||
padding-right: 0px;
|
||||
}
|
||||
#pulseaudio {
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
margin-left: 0px;
|
||||
margin-right: 5px;
|
||||
border-top-left-radius: 0px;
|
||||
border-bottom-left-radius: 0px;
|
||||
}
|
||||
#memory,
|
||||
#cpu {
|
||||
padding-right: 2px;
|
||||
border-top-right-radius: 0px;
|
||||
border-bottom-right-radius: 0px;
|
||||
border-right-width: 0px;
|
||||
}
|
||||
#memory,
|
||||
#battery {
|
||||
margin-left: 0px;
|
||||
padding-left: 2px;
|
||||
border-top-left-radius: 0px;
|
||||
border-bottom-left-radius: 0px;
|
||||
border-left-width: 0px;
|
||||
}
|
||||
#cpu {
|
||||
margin-right: 0px;
|
||||
}
|
||||
#battery {
|
||||
padding-right: 13px;
|
||||
}
|
||||
#custom-weather {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
#window {
|
||||
margin-right: 10px;
|
||||
margin-left: 10px;
|
||||
}
|
0
wallpapers/aesthetic/ign_colorful.png
Executable file → Normal file
Before Width: | Height: | Size: 2.1 MiB After Width: | Height: | Size: 2.1 MiB |
0
wallpapers/anime/frieren.jpg
Executable file → Normal file
Before Width: | Height: | Size: 9.6 MiB After Width: | Height: | Size: 9.6 MiB |
0
wallpapers/anime/kudou-chitose-normal.jpg
Executable file → Normal file
Before Width: | Height: | Size: 633 KiB After Width: | Height: | Size: 633 KiB |
0
wallpapers/anime/kudou-chitose-violet.png
Executable file → Normal file
Before Width: | Height: | Size: 1.6 MiB After Width: | Height: | Size: 1.6 MiB |
0
wallpapers/anime/nixos-sus-anime-wallpaper.png
Executable file → Normal file
Before Width: | Height: | Size: 3 MiB After Width: | Height: | Size: 3 MiB |
0
wallpapers/anime/nixos-sus-anime.png
Executable file → Normal file
Before Width: | Height: | Size: 529 KiB After Width: | Height: | Size: 529 KiB |
0
wallpapers/cityscapes/yellow_kyoto.jpg
Executable file → Normal file
Before Width: | Height: | Size: 11 MiB After Width: | Height: | Size: 11 MiB |
0
wallpapers/nixos/nix-neon.png
Executable file → Normal file
Before Width: | Height: | Size: 2.1 MiB After Width: | Height: | Size: 2.1 MiB |
0
wallpapers/nixos/nix-wallpaper.png
Executable file → Normal file
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 79 KiB |
0
wallpapers/nixos/nixos-ascii.png
Executable file → Normal file
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
0
wallpapers/nixos/nixos-declarative.jpg
Executable file → Normal file
Before Width: | Height: | Size: 235 KiB After Width: | Height: | Size: 235 KiB |
0
wallpapers/nixos/nixos-everforest.webp
Executable file → Normal file
Before Width: | Height: | Size: 83 KiB After Width: | Height: | Size: 83 KiB |
0
wallpapers/nixos/nixos-hm.png
Executable file → Normal file
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB |
0
wallpapers/nixos/nixos-wallpaper-catppuccin-macchiato.png
Executable file → Normal file
Before Width: | Height: | Size: 376 KiB After Width: | Height: | Size: 376 KiB |
0
wallpapers/retro/commodore.jpg
Executable file → Normal file
Before Width: | Height: | Size: 457 KiB After Width: | Height: | Size: 457 KiB |