Compare commits
126 Commits
fb9939ef57
...
main
Author | SHA1 | Date | |
---|---|---|---|
b3d4865101
|
|||
bf7fef3181
|
|||
fbe6dbf84a
|
|||
6b71bb213e
|
|||
dc5ea719d7
|
|||
adbaed8256
|
|||
e603322c45
|
|||
4ad87a9d0a
|
|||
2b0334fdc0
|
|||
ee5ba9db09
|
|||
6228e9e269
|
|||
f643fe7cd5
|
|||
d0e26059f0
|
|||
f6adac8cf0
|
|||
8630ff4f3d
|
|||
52620a1de0
|
|||
6fa3538630
|
|||
26d52eadcc
|
|||
ee86571afd
|
|||
c1d9b5360e
|
|||
cf065675a7 | |||
5f2c3d241e | |||
5f30d3e55f | |||
5ee7cd1462 | |||
54dcfeac2f | |||
ab0cdd972b | |||
64fdf478e9 | |||
612cfd7b6b | |||
7564f7be9e | |||
b7b846007d | |||
7b35b606a6 | |||
cb7d690890 | |||
e58a33b54e | |||
dc4cf7fd77 | |||
c0dea56d8b | |||
eb08f3dee0 | |||
29ac4e123d | |||
a9d2a5d224 | |||
064172db50 | |||
1969fd1e14 | |||
f4dd67085e | |||
975677f962 | |||
5e047a7d97 | |||
b7ffcf5ec6 | |||
ea5c6db82f | |||
3e98345789 | |||
2c31aba8c8 | |||
a654e76961 | |||
98ef961f8e | |||
ac010bad8c | |||
29a785b79c | |||
cc2a427add | |||
f1e5c6c527 | |||
86db6c447b | |||
4046dcbb48 | |||
b435373a83 | |||
ae8269816d | |||
cac7ef8482 | |||
65fd7498d7 | |||
2fead2a1f8 | |||
b6416eecc7 | |||
bb55528d60 | |||
796808a38a | |||
963e2b1294 | |||
51f0e96488 | |||
9dde449cdd | |||
ce888c4527 | |||
c7bb70d901 | |||
8153599c99 | |||
dad74bcb36 | |||
53b357bae9 | |||
c9a41ac3ef | |||
33c00528c2 | |||
3b64c033f1 | |||
d6e2dca8cb | |||
76c7e69572 | |||
3c470b9a1b | |||
d2608f594e | |||
f2b4c60bad | |||
9cdee2278d | |||
7a11a8beae | |||
af7bab5ed9 | |||
a527dfd0c4 | |||
23a0839019 | |||
69bf951f13 | |||
de76251c18 | |||
18a2072070 | |||
8a769e3ed1 | |||
e778577c57 | |||
c428ff985d | |||
45109c95b5 | |||
eeb7ab6f83 | |||
279e97d215 | |||
3a84898308 | |||
30455c8709 | |||
bb1ec1cbce | |||
27cf08d271 | |||
4a81ea1e0c | |||
eaf4b88ee2 | |||
1988d45fbf | |||
034b693380 | |||
40b59c2cf6 | |||
053a6c744f | |||
2d365c49ab | |||
572c5987b2 | |||
6bdee3b1cf | |||
7abb2ddfdc | |||
b8bde251fd | |||
73bc4eaeb2 | |||
1ada9392b6 | |||
7b790129b7 | |||
02df8ea982 | |||
23f1665665 | |||
e9dec5a032 | |||
40bcf42094 | |||
66c4d33550 | |||
c174acb2c8 | |||
0af891a4aa | |||
b7a4ea44de | |||
2bd4c041b4 | |||
2c443ffaa1 | |||
4e55dfb0da | |||
3781a419d7 | |||
72200503dd | |||
7aa46e4b5a | |||
e3507e9373 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,2 +1 @@
|
||||
smb-secrets
|
||||
nixos-switch.log
|
||||
|
15
.sops.yaml
Normal file
15
.sops.yaml
Normal file
@@ -0,0 +1,15 @@
|
||||
keys:
|
||||
- &users:
|
||||
- &chase age19uwxm2gynhjl9m90gckrkh76m9hjut44ak6d8969y4swhz8ypyeqvfcaas
|
||||
- &hosts:
|
||||
- &anzu age1wdjujpvc2zd0g592a9gqa7qzz4pcans8m0tyq3m6eq9np9a3lg2s8kxf3h
|
||||
- &ichigo age1hpcyetyl0yrwxy0geem6z2u2kwl4hmckur7pnaaxwaylf8ata9vsv8j3wh
|
||||
- &kuromi age1culqt965xgweu5h6menrppf7eatq7at04z0n52t365f0nvlv043su5t2yl
|
||||
creation_rules:
|
||||
- path_regex: secrets.yaml$
|
||||
key_groups:
|
||||
- age:
|
||||
- *chase
|
||||
- *anzu
|
||||
- *ichigo
|
||||
- *kuromi
|
21
LICENSE
Normal file
21
LICENSE
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2025 chase
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
17
README.org
Normal file
17
README.org
Normal file
@@ -0,0 +1,17 @@
|
||||
#+TITLE: Nix Config Repository
|
||||
#+AUTHOR: chase
|
||||
#+LANGUAGE: en
|
||||
#+OPTIONS: toc:nil
|
||||
|
||||
Welcome to my Nix config repository!
|
||||
|
||||
Here you can find my config files. I have only been using NixOS since April 2025, so
|
||||
this is probably not that great of a reference.
|
||||
|
||||
|
||||
* Some Resources That Have Inspired This Config
|
||||
- https://nixos-and-flakes.thiscute.world/
|
||||
- https://github.com/kaleocheng/nix-dots/tree/master
|
||||
- https://gist.github.com/0atman/1a5133b842f929ba4c1e195ee67599d5
|
||||
- https://github.com/woioeow/hyprland-dotfiles/tree/main
|
||||
- https://github.com/HeinzDev/Hyprland-dotfiles
|
@@ -1,290 +0,0 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
# Bootloader.
|
||||
boot.loader.systemd-boot = {
|
||||
enable = true;
|
||||
configurationLimit = 10;
|
||||
};
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
# Garbage collection
|
||||
nix.gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 1w";
|
||||
};
|
||||
|
||||
# Optimize store
|
||||
nix.settings.auto-optimise-store = true;
|
||||
|
||||
# Use latest stable kernel
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
|
||||
# Allow power management
|
||||
powerManagement.enable = true;
|
||||
|
||||
# Firmware updates
|
||||
services.fwupd.enable = true;
|
||||
|
||||
# Enable networking
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# Enable Bluetooth
|
||||
hardware.bluetooth.enable = true;
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "America/New_York";
|
||||
|
||||
# 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 = "C.UTF-8";
|
||||
};
|
||||
|
||||
# Enable the KDE Plasma Desktop Environment.
|
||||
services.xserver.enable = true;
|
||||
services.displayManager.sddm = {
|
||||
enable = true;
|
||||
extraPackages = [pkgs.kdePackages.sddm-kcm];
|
||||
wayland.enable = true;
|
||||
enableHidpi = true;
|
||||
};
|
||||
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
environment.plasma6.excludePackages = with pkgs.kdePackages; [
|
||||
elisa
|
||||
kate
|
||||
];
|
||||
|
||||
# Cachix for Hyprland
|
||||
nix.settings = {
|
||||
substituters = ["https://hyprland.cachix.org"];
|
||||
trusted-substituters = ["https://hyprland.cachix.org"];
|
||||
trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="];
|
||||
};
|
||||
|
||||
# Hyprland
|
||||
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;
|
||||
};
|
||||
|
||||
# Catppuccin
|
||||
catppuccin = {
|
||||
enable = true;
|
||||
flavor = "mocha";
|
||||
sddm = {
|
||||
enable = true;
|
||||
background = "/home/chase/nixos-config/home/wallpaper.jpg";
|
||||
flavor = "mocha";
|
||||
font = "IBM Plex Sans";
|
||||
fontSize = "11";
|
||||
};
|
||||
};
|
||||
|
||||
# Enable graphics acceleration and AMDVLK
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
extraPackages = with pkgs; [
|
||||
amdvlk
|
||||
];
|
||||
extraPackages32 = with pkgs; [
|
||||
driversi686Linux.amdvlk
|
||||
];
|
||||
};
|
||||
|
||||
# Configure keymap
|
||||
console.keyMap = "jp106";
|
||||
|
||||
services.xserver.xkb = {
|
||||
layout = "jp";
|
||||
variant = "";
|
||||
};
|
||||
|
||||
i18n.inputMethod = {
|
||||
type = "fcitx5";
|
||||
enable = true;
|
||||
fcitx5.addons = with pkgs; [
|
||||
fcitx5-mozc
|
||||
kdePackages.fcitx5-qt
|
||||
];
|
||||
fcitx5.waylandFrontend = true;
|
||||
};
|
||||
|
||||
# Fonts
|
||||
fonts.packages = with pkgs; [
|
||||
ibm-plex
|
||||
liberation_ttf
|
||||
nerd-fonts.blex-mono
|
||||
noto-fonts
|
||||
noto-fonts-cjk-sans
|
||||
noto-fonts-emoji
|
||||
];
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = true;
|
||||
|
||||
# Enable sound with pipewire.
|
||||
services.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
# Enable Flakes
|
||||
nix.settings.experimental-features = ["nix-command" "flakes"];
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# Bash config
|
||||
programs.bash = {
|
||||
blesh.enable = true;
|
||||
};
|
||||
|
||||
# Define a user account
|
||||
users.users.chase = {
|
||||
isNormalUser = true;
|
||||
description = "Chase";
|
||||
extraGroups = ["networkmanager" "wheel"];
|
||||
};
|
||||
|
||||
# Install firefox
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
nativeMessagingHosts.packages = [pkgs.firefoxpwa];
|
||||
policies = {
|
||||
DisableTelemetry = true;
|
||||
DisableFirefoxAccounts = true;
|
||||
DisableFirefoxStudies = true;
|
||||
DisablePocket = true;
|
||||
};
|
||||
};
|
||||
|
||||
# Install git and enable cache
|
||||
programs.git = {
|
||||
enable = true;
|
||||
config = {
|
||||
init = {
|
||||
defaultBranch = "main";
|
||||
};
|
||||
credential = {
|
||||
helper = "cache --timeout 21600";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Install Neovim
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
configure = {
|
||||
customRC = ''
|
||||
set autoindent
|
||||
set number relativenumber
|
||||
set tabstop=4
|
||||
colorscheme catppuccin-mocha
|
||||
'';
|
||||
packages.myVimPackage = with pkgs.vimPlugins; {
|
||||
start = [catppuccin-nvim];
|
||||
};
|
||||
};
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
};
|
||||
|
||||
# Install Steam
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true;
|
||||
dedicatedServer.openFirewall = true;
|
||||
localNetworkGameTransfers.openFirewall = true;
|
||||
};
|
||||
|
||||
# List packages installed in system profile.
|
||||
environment.systemPackages = with pkgs; [
|
||||
alejandra
|
||||
bitwarden-cli
|
||||
bitwarden-desktop
|
||||
(catppuccin-kde.override {
|
||||
flavour = ["mocha"];
|
||||
accents = [
|
||||
"blue"
|
||||
"lavender"
|
||||
"pink"
|
||||
"sapphire"
|
||||
];
|
||||
winDecStyles = ["classic"];
|
||||
})
|
||||
cifs-utils
|
||||
firefoxpwa
|
||||
flashrom
|
||||
gcc
|
||||
nixd
|
||||
pciutils
|
||||
python3
|
||||
qemu
|
||||
rustup
|
||||
usbutils
|
||||
wget
|
||||
];
|
||||
|
||||
nix.nixPath = ["nixpkgs=${inputs.nixpkgs}"];
|
||||
|
||||
# ssh agent
|
||||
# programs.mtr.enable = true;
|
||||
programs.gnupg.agent.enable = true;
|
||||
|
||||
programs.ssh = {
|
||||
enableAskPassword = false;
|
||||
};
|
||||
|
||||
# List services that you want to enable:
|
||||
|
||||
services.fprintd.enable = true;
|
||||
|
||||
# security.polkit.enable = true;
|
||||
|
||||
# Enable the OpenSSH daemon.
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
settings = {
|
||||
PermitRootLogin = "no";
|
||||
PasswordAuthentication = false;
|
||||
KbdInteractiveAuthentication = false;
|
||||
};
|
||||
};
|
||||
|
||||
# Open ports in the firewall.
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
# Or disable the firewall altogether.
|
||||
# networking.firewall.enable = false;
|
||||
|
||||
# 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?
|
||||
}
|
370
flake.lock
generated
370
flake.lock
generated
@@ -20,11 +20,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1747864449,
|
||||
"narHash": "sha256-PIjVAWghZhr3L0EFM2UObhX84UQxIACbON0IC0zzSKA=",
|
||||
"lastModified": 1755946532,
|
||||
"narHash": "sha256-POePremlUY5GyA1zfbtic6XLxDaQcqHN6l+bIxdT5gc=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "aquamarine",
|
||||
"rev": "389372c5f4dc1ac0e7645ed29a35fd6d71672ef5",
|
||||
"rev": "81584dae2df6ac79f6b6dae0ecb7705e95129ada",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -38,11 +38,11 @@
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1748080874,
|
||||
"narHash": "sha256-sUebEzAkrY8Aq5G0GHFyRddmRNGP/a2iTtV7ISNvi/c=",
|
||||
"lastModified": 1756741629,
|
||||
"narHash": "sha256-n+mgH3NoQf8d1jd8cDp/9Mt++hhyuE3LO3ZAxzjWRZw=",
|
||||
"owner": "catppuccin",
|
||||
"repo": "nix",
|
||||
"rev": "0ba11b12be81f0849a89ed17ab635164ea8f0112",
|
||||
"rev": "cd22197da06df1eb6fabdaa2fc22c170c4f67382",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -51,7 +51,38 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"crane": {
|
||||
"locked": {
|
||||
"lastModified": 1731098351,
|
||||
"narHash": "sha256-HQkYvKvaLQqNa10KEFGgWHfMAbWBfFp+4cAgkut+NNE=",
|
||||
"owner": "ipetkov",
|
||||
"repo": "crane",
|
||||
"rev": "ef80ead953c1b28316cc3f8613904edc2eb90c28",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "ipetkov",
|
||||
"repo": "crane",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1747046372,
|
||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
@@ -68,6 +99,27 @@
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"lanzaboote",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1730504689,
|
||||
"narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "506278e768c2a08bec68eb62932193e341f55c90",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_2": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"nur",
|
||||
@@ -110,6 +162,28 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"lanzaboote",
|
||||
"pre-commit-hooks-nix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1709087332,
|
||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -117,15 +191,37 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1748925027,
|
||||
"narHash": "sha256-BJ0qRIdvt5aeqm3zg/5if7b5rruG05zrSX3UpLqjDRk=",
|
||||
"lastModified": 1756842514,
|
||||
"narHash": "sha256-XbtRMewPGJwTNhBC4pnBu3w/xT1XejvB0HfohC2Kga8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "cb809ec1ff15cf3237c6592af9bbc7e4d983e98c",
|
||||
"rev": "30fc1b532645a21e157b6e33e3f8b4c154f86382",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "master",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager-stable": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs-stable"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1756679287,
|
||||
"narHash": "sha256-Xd1vOeY9ccDf5VtVK12yM0FS6qqvfUop8UQlxEB+gTQ=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "07fc025fe10487dd80f2ec694f1cd790e752d0e8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-25.05",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
@@ -146,11 +242,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745948457,
|
||||
"narHash": "sha256-lzTV10FJTCGNtMdgW5YAhCAqezeAzKOd/97HbQK8GTU=",
|
||||
"lastModified": 1753964049,
|
||||
"narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprcursor",
|
||||
"rev": "ac903e80b33ba6a88df83d02232483d99f327573",
|
||||
"rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -175,11 +271,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745015490,
|
||||
"narHash": "sha256-apEJ9zoSzmslhJ2vOKFcXTMZLUFYzh1ghfB6Rbw3Low=",
|
||||
"lastModified": 1755678602,
|
||||
"narHash": "sha256-uEC5O/NIUNs1zmc1aH1+G3GRACbODjk2iS0ET5hXtuk=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprgraphics",
|
||||
"rev": "60754910946b4e2dc1377b967b7156cb989c5873",
|
||||
"rev": "157cc52065a104fc3b8fa542ae648b992421d1c7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -204,11 +300,11 @@
|
||||
"xdph": "xdph"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1748888571,
|
||||
"narHash": "sha256-iyZNR6VSJ4zlJ3hMt8+c3MHNeQrXDjsdwFlHdKDxc9A=",
|
||||
"lastModified": 1756811803,
|
||||
"narHash": "sha256-03zmDvAU+VLPWHv5uxfGVR6bs/SnCYeZ8hbedK/Eb/M=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "Hyprland",
|
||||
"rev": "b1d0a727cc594e5329c5971d73391c7529e1c80e",
|
||||
"rev": "127aab815908ecbd3db4d23f127d2e96b79855f9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -229,11 +325,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1743714874,
|
||||
"narHash": "sha256-yt8F7NhMFCFHUHy/lNjH/pjZyIDFNk52Q4tivQ31WFo=",
|
||||
"lastModified": 1749046714,
|
||||
"narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-protocols",
|
||||
"rev": "3a5c2bda1c1a4e55cc1330c782547695a93f05b2",
|
||||
"rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -261,11 +357,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1737634706,
|
||||
"narHash": "sha256-nGCibkfsXz7ARx5R+SnisRtMq21IQIhazp6viBU8I/A=",
|
||||
"lastModified": 1749154592,
|
||||
"narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-qt-support",
|
||||
"rev": "8810df502cdee755993cb803eba7b23f189db795",
|
||||
"rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -297,11 +393,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745951494,
|
||||
"narHash": "sha256-2dModE32doiyQMmd6EDAQeZnz+5LOs6KXyE0qX76WIg=",
|
||||
"lastModified": 1753819801,
|
||||
"narHash": "sha256-tHe6XeNeVeKapkNM3tcjW4RuD+tB2iwwoogWJOtsqTI=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-qtutils",
|
||||
"rev": "4be1d324faf8d6e82c2be9f8510d299984dfdd2e",
|
||||
"rev": "b308a818b9dcaa7ab8ccab891c1b84ebde2152bc",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -326,11 +422,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1747484975,
|
||||
"narHash": "sha256-+LAQ81HBwG0lwshHlWe0kfWg4KcChIPpnwtnwqmnoEU=",
|
||||
"lastModified": 1753622892,
|
||||
"narHash": "sha256-0K+A+gmOI8IklSg5It1nyRNv0kCNL51duwnhUO/B8JA=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"rev": "163c83b3db48a17c113729c220a60b94596c9291",
|
||||
"rev": "23f0debd2003f17bd65f851cd3f930cff8a8c809",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -351,11 +447,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1746635225,
|
||||
"narHash": "sha256-W9G9bb0zRYDBRseHbVez0J8qVpD5QbizX67H/vsudhM=",
|
||||
"lastModified": 1756117388,
|
||||
"narHash": "sha256-oRDel6pNl/T2tI+nc/USU9ZP9w08dxtl7hiZxa0C/Wc=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprutils",
|
||||
"rev": "674ea57373f08b7609ce93baff131117a0dfe70d",
|
||||
"rev": "b2ae3204845f5f2f79b4703b441252d8ad2ecfd0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -376,11 +472,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1747584298,
|
||||
"narHash": "sha256-PH9qZqWLHvSBQiUnA0NzAyQA3tu2no2z8kz0ZeHWj4w=",
|
||||
"lastModified": 1755184602,
|
||||
"narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprwayland-scanner",
|
||||
"rev": "e511882b9c2e1d7a75d45d8fddd2160daeafcbc3",
|
||||
"rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -389,13 +485,39 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"lanzaboote": {
|
||||
"inputs": {
|
||||
"crane": "crane",
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-parts": "flake-parts",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"pre-commit-hooks-nix": "pre-commit-hooks-nix",
|
||||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1737639419,
|
||||
"narHash": "sha256-AEEDktApTEZ5PZXNDkry2YV2k6t0dTgLPEmAZbnigXU=",
|
||||
"owner": "nix-community",
|
||||
"repo": "lanzaboote",
|
||||
"rev": "a65905a09e2c43ff63be8c0e86a93712361f871e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "v0.4.2",
|
||||
"repo": "lanzaboote",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1744463964,
|
||||
"narHash": "sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR+Xhw3kr/3Xd0GPTM=",
|
||||
"lastModified": 1756266583,
|
||||
"narHash": "sha256-cr748nSmpfvnhqSXPiCfUPxRz2FJnvf/RjJGvFfaCsM=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "2631b0b7abcea6e640ce31cd78ea58910d31e650",
|
||||
"rev": "8a6d5427d99ec71c64f0b93d45778c889005d9c2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -405,13 +527,45 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1748460289,
|
||||
"narHash": "sha256-7doLyJBzCllvqX4gszYtmZUToxKvMUrg45EUWaUYmBg=",
|
||||
"lastModified": 1730741070,
|
||||
"narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "96ec055edbe5ee227f28cdbc3f1ddf1df5965102",
|
||||
"rev": "d063c1dd113c91ab27959ba540c0d9753409edf3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-24.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable_2": {
|
||||
"locked": {
|
||||
"lastModified": 1756754095,
|
||||
"narHash": "sha256-9Rsn9XEWINExosFkKEqdp8EI6Mujr1gmQiyrEcts2ls=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "7c815e513adbf03c9098b2bd230c1e0525c8a7f9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-25.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1756266583,
|
||||
"narHash": "sha256-cr748nSmpfvnhqSXPiCfUPxRz2FJnvf/RjJGvFfaCsM=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "8a6d5427d99ec71c64f0b93d45778c889005d9c2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -423,11 +577,11 @@
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1748693115,
|
||||
"narHash": "sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8=",
|
||||
"lastModified": 1756787288,
|
||||
"narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "910796cabe436259a29a72e8d3f5e180fc6dfacc",
|
||||
"rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -439,18 +593,17 @@
|
||||
},
|
||||
"nur": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts",
|
||||
"flake-parts": "flake-parts_2",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1748935843,
|
||||
"narHash": "sha256-ZTbwljoJXgkGAPlYz0GIcNiXQNfPFHe2A0Dqe9KDyPA=",
|
||||
"lastModified": 1756875847,
|
||||
"narHash": "sha256-2L4kOvvCDUDBBBliCNiEXrYN0VqqkB0YHuOGckpp5X8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "032af0a65aa867a6209718033995f5ba73fee543",
|
||||
"rev": "bffccde9bd7869ab355b76d53fbc25ac1f7d37eb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -469,11 +622,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1748196248,
|
||||
"narHash": "sha256-1iHjsH6/5UOerJEoZKE+Gx1BgAoge/YcnUsOA4wQ/BU=",
|
||||
"lastModified": 1756632588,
|
||||
"narHash": "sha256-ydam6eggXf3ZwRutyCABwSbMAlX+5lW6w1SVZQ+kfSo=",
|
||||
"owner": "nix-community",
|
||||
"repo": "plasma-manager",
|
||||
"rev": "b7697abe89967839b273a863a3805345ea54ab56",
|
||||
"rev": "d47428e5390d6a5a8f764808a4db15929347cd77",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -492,11 +645,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1747372754,
|
||||
"narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=",
|
||||
"lastModified": 1755960406,
|
||||
"narHash": "sha256-RF7j6C1TmSTK9tYWO6CdEMtg6XZaUKcvZwOCD2SICZs=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46",
|
||||
"rev": "e891a93b193fcaf2fc8012d890dc7f0befe86ec2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -505,14 +658,86 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"pre-commit-hooks-nix": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"lanzaboote",
|
||||
"flake-compat"
|
||||
],
|
||||
"gitignore": "gitignore_2",
|
||||
"nixpkgs": [
|
||||
"lanzaboote",
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": "nixpkgs-stable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731363552,
|
||||
"narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=",
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"catppuccin": "catppuccin",
|
||||
"home-manager": "home-manager",
|
||||
"home-manager-stable": "home-manager-stable",
|
||||
"hyprland": "hyprland",
|
||||
"lanzaboote": "lanzaboote",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"nixpkgs-stable": "nixpkgs-stable_2",
|
||||
"nur": "nur",
|
||||
"plasma-manager": "plasma-manager"
|
||||
"plasma-manager": "plasma-manager",
|
||||
"sops-nix": "sops-nix"
|
||||
}
|
||||
},
|
||||
"rust-overlay": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"lanzaboote",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731897198,
|
||||
"narHash": "sha256-Ou7vLETSKwmE/HRQz4cImXXJBr/k9gp4J4z/PF8LzTE=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "0be641045af6d8666c11c2c40e45ffc9667839b5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"sops-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1754988908,
|
||||
"narHash": "sha256-t+voe2961vCgrzPFtZxha0/kmFSHFobzF00sT8p9h0U=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "3223c7a92724b5d804e9988c6b447a0d09017d48",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
@@ -530,27 +755,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"treefmt-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nur",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1733222881,
|
||||
"narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "49717b5af6f80172275d47a418c9719a31a78b53",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"xdph": {
|
||||
"inputs": {
|
||||
"hyprland-protocols": [
|
||||
@@ -579,11 +783,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745871725,
|
||||
"narHash": "sha256-M24SNc2flblWGXFkGQfqSlEOzAGZnMc9QG3GH4K/KbE=",
|
||||
"lastModified": 1755354946,
|
||||
"narHash": "sha256-zdov5f/GcoLQc9qYIS1dUTqtJMeDqmBmo59PAxze6e4=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "xdg-desktop-portal-hyprland",
|
||||
"rev": "76bbf1a6b1378e4ab5230bad00ad04bc287c969e",
|
||||
"rev": "a10726d6a8d0ef1a0c645378f983b6278c42eaa0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
153
flake.nix
153
flake.nix
@@ -1,18 +1,30 @@
|
||||
{
|
||||
description = "A simple NixOS flake";
|
||||
description = "SecureBoot-enabled NixOS config";
|
||||
|
||||
inputs = {
|
||||
# NixOS official package source, using unstable here
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.05";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/master";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
home-manager-stable = {
|
||||
url = "github:nix-community/home-manager/release-25.05";
|
||||
inputs.nixpkgs.follows = "nixpkgs-stable";
|
||||
};
|
||||
nur = {
|
||||
url = "github:nix-community/NUR";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
catppuccin.url = "github:catppuccin/nix";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
lanzaboote = {
|
||||
url = "github:nix-community/lanzaboote/v0.4.2";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
sops-nix = {
|
||||
url = "github:Mic92/sops-nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
catppuccin.url = "github:catppuccin/nix";
|
||||
hyprland.url = "github:hyprwm/Hyprland";
|
||||
plasma-manager = {
|
||||
url = "github:nix-community/plasma-manager";
|
||||
@@ -23,65 +35,94 @@
|
||||
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
catppuccin,
|
||||
lanzaboote,
|
||||
nur,
|
||||
home-manager,
|
||||
plasma-manager,
|
||||
sops-nix,
|
||||
...
|
||||
} @ inputs: {
|
||||
} @ inputs: let
|
||||
hosts = import ./hosts/hosts.nix;
|
||||
|
||||
# Make config for non-NixOS hosts
|
||||
mkHomeConfiguration = {
|
||||
host,
|
||||
nixpkgs,
|
||||
home-manager,
|
||||
modules ? [],
|
||||
}:
|
||||
home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = import nixpkgs {
|
||||
system = host.arch;
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
};
|
||||
overlays = [
|
||||
nur.overlay
|
||||
];
|
||||
};
|
||||
modules =
|
||||
[
|
||||
./hosts/${host.dir}/home.nix
|
||||
catppuccin.homeModules.catppuccin
|
||||
sops-nix.homeManagerModules.sops
|
||||
]
|
||||
++ modules;
|
||||
};
|
||||
|
||||
# Make config for NixOS hosts
|
||||
mkNixOSConfigurations = {
|
||||
host,
|
||||
nixpkgs,
|
||||
home-manager,
|
||||
modules ? [],
|
||||
}:
|
||||
nixpkgs.lib.nixosSystem {
|
||||
system = host.arch;
|
||||
specialArgs = {inherit inputs;};
|
||||
modules =
|
||||
[
|
||||
./hosts/${host.dir}/configuration.nix
|
||||
nur.modules.nixos.default
|
||||
catppuccin.nixosModules.catppuccin
|
||||
sops-nix.nixosModules.sops
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.backupFileExtension = "backup";
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.sharedModules = [
|
||||
plasma-manager.homeManagerModules.plasma-manager
|
||||
sops-nix.homeManagerModules.sops
|
||||
];
|
||||
home-manager.users."${host.user}".imports = [
|
||||
./hosts/${host.dir}/home.nix
|
||||
catppuccin.homeModules.catppuccin
|
||||
];
|
||||
}
|
||||
]
|
||||
++ modules;
|
||||
};
|
||||
in {
|
||||
# Please replace my-nixos with your hostname
|
||||
nixosConfigurations = {
|
||||
anzu = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {inherit inputs;};
|
||||
modules = [
|
||||
# Import the previous configuration.nix we used,
|
||||
# so the old configuration file still takes effect
|
||||
./configuration.nix
|
||||
./hosts/anzu/hardware-configuration.nix
|
||||
# Add NUR overlay
|
||||
nur.modules.nixos.default
|
||||
# Add catppuccin
|
||||
catppuccin.nixosModules.catppuccin
|
||||
# Add home-manager
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.backupFileExtension = "backup";
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.sharedModules = [plasma-manager.homeManagerModules.plasma-manager];
|
||||
home-manager.users.chase = {
|
||||
imports = [
|
||||
./home/home.nix
|
||||
catppuccin.homeModules.catppuccin
|
||||
];
|
||||
anzu = mkNixOSConfigurations {
|
||||
host = hosts.anzu;
|
||||
nixpkgs = inputs.nixpkgs;
|
||||
home-manager = inputs.home-manager;
|
||||
modules = [lanzaboote.nixosModules.lanzaboote];
|
||||
};
|
||||
}
|
||||
];
|
||||
ichigo = mkNixOSConfigurations {
|
||||
host = hosts.ichigo;
|
||||
nixpkgs = inputs.nixpkgs;
|
||||
home-manager = inputs.home-manager;
|
||||
modules = [];
|
||||
};
|
||||
ichigo = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {inherit inputs;};
|
||||
modules = [
|
||||
./configuration.nix
|
||||
./hosts/ichigo/hardware-configuration.nix
|
||||
nur.modules.nixos.default
|
||||
catppuccin.nixosModules.catppuccin
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.backupFileExtension = "backup";
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.sharedModules = [plasma-manager.homeManagerModules.plasma-manager];
|
||||
home-manager.users.chase = {
|
||||
imports = [
|
||||
./home/home.nix
|
||||
catppuccin.homeModules.catppuccin
|
||||
];
|
||||
};
|
||||
}
|
||||
];
|
||||
kuromi = mkNixOSConfigurations {
|
||||
host = hosts.kuromi;
|
||||
nixpkgs = inputs.nixpkgs-stable;
|
||||
home-manager = inputs.home-manager-stable;
|
||||
modules = [];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
7
home/README.org
Normal file
7
home/README.org
Normal file
@@ -0,0 +1,7 @@
|
||||
#+TITLE: Home Manager Config
|
||||
#+AUTHOR: chase
|
||||
#+LANGUAGE: en
|
||||
#+OPTIONS: toc:nil
|
||||
|
||||
* Wallpaper Source
|
||||
https://x.com/allwifeman/status/1513766332252098562
|
243
home/base.nix
Normal file
243
home/base.nix
Normal file
@@ -0,0 +1,243 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
home = {
|
||||
username = "chase";
|
||||
homeDirectory = "/home/chase";
|
||||
preferXdgDirectories = true;
|
||||
file = {
|
||||
"scripts" = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink ./scripts;
|
||||
recursive = true;
|
||||
};
|
||||
};
|
||||
sessionPath = [
|
||||
"$HOME/scripts"
|
||||
];
|
||||
sessionVariables = {
|
||||
# Aspell stuff
|
||||
ASPELL_CONF = "per-conf $XDG_CONFIG_HOME/aspell/aspell.conf; personal $XDG_DATA_HOME/aspell/en.pws; repl $XDG_DATA_HOME/aspell/en.prepl";
|
||||
# Bitwarden stuff
|
||||
BITWARDEN_SSH_AUTH_SOCK = "$XDG_RUNTIME_DIR/.bitwarden-ssh-agent.sock";
|
||||
SSH_AUTH_SOCK = "$XDG_RUNTIME_DIR/.bitwarden-ssh-agent.sock";
|
||||
ELECTRON_OZONE_PLATFORM_HINT = "wayland";
|
||||
# Java stuff
|
||||
_JAVA_OPTIONS = "-Djava.util.prefs.userRoot='$XDG_CONFIG_HOME'/java";
|
||||
# libx11 stuff
|
||||
XCOMPOSECACHE = "$XDG_CACHE_HOME/X11/xcompose";
|
||||
XCOMPOSEFILE = "$XDG_CONFIG_HOME/X11/xcompose";
|
||||
};
|
||||
shellAliases = {
|
||||
gs = "git status";
|
||||
"..." = "cd ../..";
|
||||
};
|
||||
};
|
||||
|
||||
xdg = {
|
||||
enable = true;
|
||||
userDirs.enable = true;
|
||||
configFile = {
|
||||
"emacs/early-init.el" = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink ./emacs/early-init.el;
|
||||
};
|
||||
"emacs/init.el" = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink ./emacs/init.el;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
catppuccin = {
|
||||
enable = true;
|
||||
flavor = "mocha";
|
||||
};
|
||||
|
||||
programs.bash = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
historyIgnore = [
|
||||
"ls"
|
||||
"ls -a"
|
||||
"ls -l"
|
||||
"ls -la"
|
||||
"cd"
|
||||
"exit"
|
||||
];
|
||||
};
|
||||
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
autosuggestion.enable = true;
|
||||
history = {
|
||||
append = true;
|
||||
extended = true;
|
||||
ignoreDups = true;
|
||||
ignorePatterns = [
|
||||
"ls *"
|
||||
"cd *"
|
||||
"gs"
|
||||
"exit"
|
||||
];
|
||||
};
|
||||
syntaxHighlighting.enable = true;
|
||||
};
|
||||
|
||||
programs.bat.enable = true;
|
||||
|
||||
programs.btop.enable = true;
|
||||
|
||||
programs.emacs = {
|
||||
enable = true;
|
||||
package = lib.mkDefault pkgs.emacs-nox;
|
||||
};
|
||||
|
||||
programs.fastfetch = {
|
||||
enable = true;
|
||||
settings = {
|
||||
logo = {
|
||||
source = "nixos_small";
|
||||
};
|
||||
display = {
|
||||
size = {
|
||||
binaryPrefix = "si";
|
||||
};
|
||||
color = "blue";
|
||||
separator = ": ";
|
||||
};
|
||||
modules = [
|
||||
"title"
|
||||
"separator"
|
||||
"os"
|
||||
"host"
|
||||
"uptime"
|
||||
"kernel"
|
||||
"packages"
|
||||
"lm"
|
||||
"de"
|
||||
"wm"
|
||||
"shell"
|
||||
"terminal"
|
||||
"terminalfont"
|
||||
{
|
||||
key = "Display";
|
||||
type = "display";
|
||||
}
|
||||
"cpu"
|
||||
"gpu"
|
||||
"memory"
|
||||
"swap"
|
||||
"disk"
|
||||
"datetime"
|
||||
"colors"
|
||||
"break"
|
||||
"player"
|
||||
"media"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
programs.fzf = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "chase";
|
||||
userEmail = "chase@cathoderaytube.net";
|
||||
extraConfig = {
|
||||
init.defaultBranch = "main";
|
||||
pull.rebase = true;
|
||||
};
|
||||
signing = {
|
||||
format = "ssh";
|
||||
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFSQX+s8Krl312DcnUtoEWOA2silcUnt5URtyVZz8Yek";
|
||||
signByDefault = true;
|
||||
};
|
||||
};
|
||||
|
||||
programs.git-credential-oauth.enable = true;
|
||||
|
||||
programs.gpg = {
|
||||
enable = true;
|
||||
homedir = "${config.xdg.dataHome}/gnupg";
|
||||
};
|
||||
|
||||
programs.htop.enable = true;
|
||||
|
||||
programs.rmpc = {
|
||||
enable = true;
|
||||
config = ''
|
||||
(
|
||||
enable_config_hot_reload: true,
|
||||
)
|
||||
'';
|
||||
};
|
||||
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
enableZshIntegration = true;
|
||||
settings = {
|
||||
line_break = {
|
||||
disabled = true;
|
||||
};
|
||||
username = {
|
||||
style_user = "bold blue";
|
||||
format = "[$user]($style)@";
|
||||
show_always = true;
|
||||
};
|
||||
hostname = {
|
||||
style = "bold cyan";
|
||||
format = "[$ssh_symbol$hostname]($style) ";
|
||||
ssh_only = false;
|
||||
};
|
||||
directory = {
|
||||
style = "bold green";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs.yazi = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
|
||||
programs.yt-dlp = {
|
||||
enable = true;
|
||||
settings = {
|
||||
cookies-from-browser = "firefox";
|
||||
write-description = true;
|
||||
write-info-json = true;
|
||||
embed-info-json = true;
|
||||
embed-chapters = true;
|
||||
embed-metadata = true;
|
||||
write-subs = true;
|
||||
embed-subs = true;
|
||||
sub-langs = "en.*,ja";
|
||||
write-thumbnail = true;
|
||||
embed-thumbnail = true;
|
||||
sponsorblock-mark = "all";
|
||||
};
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
aspell
|
||||
aspellDicts.en
|
||||
aspellDicts.en-computers
|
||||
aspellDicts.en-science
|
||||
ffmpeg
|
||||
font-awesome
|
||||
fortune
|
||||
imagemagick
|
||||
lm_sensors
|
||||
lolcat
|
||||
nerd-fonts.blex-mono
|
||||
texliveFull
|
||||
];
|
||||
}
|
@@ -4,115 +4,14 @@
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./plasma.nix
|
||||
./base.nix
|
||||
];
|
||||
|
||||
home = {
|
||||
username = "chase";
|
||||
homeDirectory = "/home/chase";
|
||||
preferXdgDirectories = true;
|
||||
stateVersion = "24.11";
|
||||
file = {
|
||||
"scripts" = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink ./scripts;
|
||||
recursive = true;
|
||||
};
|
||||
};
|
||||
sessionPath = [
|
||||
"$HOME/scripts"
|
||||
];
|
||||
shellAliases = {
|
||||
gs = "git status";
|
||||
"..." = "cd ../..";
|
||||
};
|
||||
};
|
||||
|
||||
xdg = {
|
||||
enable = true;
|
||||
userDirs.enable = true;
|
||||
configFile = {
|
||||
"emacs/early-init.el" = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink ./emacs/early-init.el;
|
||||
};
|
||||
"emacs/init.el" = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink ./emacs/init.el;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
catppuccin = {
|
||||
enable = true;
|
||||
flavor = "mocha";
|
||||
};
|
||||
|
||||
programs.bash = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
bashrcExtra = ''
|
||||
export SSH_AUTH_SOCK=/home/chase/.bitwarden-ssh-agent.sock
|
||||
'';
|
||||
historyIgnore = [
|
||||
"ls"
|
||||
"ls -a"
|
||||
"ls -l"
|
||||
"ls -la"
|
||||
"cd"
|
||||
"exit"
|
||||
];
|
||||
};
|
||||
|
||||
programs.bat.enable = true;
|
||||
|
||||
programs.emacs = {
|
||||
enable = true;
|
||||
package = pkgs.emacs-pgtk;
|
||||
};
|
||||
|
||||
programs.fastfetch = {
|
||||
enable = true;
|
||||
settings = {
|
||||
logo = {
|
||||
source = "nixos_small";
|
||||
};
|
||||
display = {
|
||||
size = {
|
||||
binaryPrefix = "si";
|
||||
};
|
||||
color = "blue";
|
||||
separator = ": ";
|
||||
};
|
||||
modules = [
|
||||
"title"
|
||||
"separator"
|
||||
"os"
|
||||
"host"
|
||||
"uptime"
|
||||
"kernel"
|
||||
"packages"
|
||||
"lm"
|
||||
"de"
|
||||
"wm"
|
||||
"shell"
|
||||
"terminal"
|
||||
"terminalfont"
|
||||
{
|
||||
key = "Display";
|
||||
type = "display";
|
||||
}
|
||||
"cpu"
|
||||
"gpu"
|
||||
"memory"
|
||||
"swap"
|
||||
"disk"
|
||||
"datetime"
|
||||
"colors"
|
||||
"break"
|
||||
"player"
|
||||
"media"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
nativeMessagingHosts = [pkgs.firefoxpwa];
|
||||
@@ -121,27 +20,91 @@
|
||||
id = 0;
|
||||
name = "default";
|
||||
isDefault = true;
|
||||
containers = {
|
||||
personal = {
|
||||
color = "purple";
|
||||
icon = "fingerprint";
|
||||
id = 1;
|
||||
};
|
||||
work = {
|
||||
color = "orange";
|
||||
icon = "briefcase";
|
||||
id = 2;
|
||||
};
|
||||
social = {
|
||||
color = "blue";
|
||||
icon = "chill";
|
||||
id = 3;
|
||||
};
|
||||
dev = {
|
||||
color = "green";
|
||||
icon = "circle";
|
||||
id = 4;
|
||||
};
|
||||
};
|
||||
containersForce = true;
|
||||
extensions = {
|
||||
force = true;
|
||||
packages = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||
awesome-rss
|
||||
betterttv
|
||||
bitwarden
|
||||
clearurls
|
||||
control-panel-for-twitter
|
||||
enhancer-for-youtube
|
||||
blocktube
|
||||
facebook-container
|
||||
flagfox
|
||||
hyperchat
|
||||
istilldontcareaboutcookies
|
||||
privacy-badger
|
||||
linkwarden
|
||||
livetl
|
||||
return-youtube-dislikes
|
||||
search-by-image
|
||||
sponsorblock
|
||||
tab-session-manager
|
||||
tampermonkey
|
||||
ublock-origin
|
||||
windscribe
|
||||
ytcfilter
|
||||
];
|
||||
settings = {
|
||||
"uBlock0@raymondhill.net" = {
|
||||
force = true;
|
||||
settings = {
|
||||
selectedFilterLists = [
|
||||
"ublock-filters"
|
||||
"ublock-badware"
|
||||
"ublock-privacy"
|
||||
"ublock-unbreak"
|
||||
"ublock-quick-fixes"
|
||||
"easylist"
|
||||
"easyprivacy"
|
||||
"urlhaus-1"
|
||||
"plowe-0"
|
||||
"fanboy-cookiemonster"
|
||||
"ublock-cookies-easylist"
|
||||
"adguard-cookies"
|
||||
"ublock-cookies-adguard"
|
||||
"ublock-annoyances"
|
||||
"https://git.traphouse.cathoderaytube.net/chase/ublock-filters/raw/branch/main/chase-all.txt"
|
||||
"user-filters"
|
||||
];
|
||||
importedLists = [
|
||||
"https://git.traphouse.cathoderaytube.net/chase/ublock-filters/raw/branch/main/chase-all.txt"
|
||||
];
|
||||
};
|
||||
};
|
||||
"Tab-Session-Manager@sienori" = {
|
||||
settings = {
|
||||
"startupBehavior" = ["previousSession"];
|
||||
"Settings" = {
|
||||
"startupBehavior" = "previousSession";
|
||||
"openButtonBehavior" = "openInCurrentWindow";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
settings = {
|
||||
"apz.gtk.touchpad_pinch.enabled" = false;
|
||||
"browser.formfill.enable" = false;
|
||||
"browser.ml.chat.enabled" = false;
|
||||
"browser.ml.chat.shortcuts" = false;
|
||||
@@ -156,23 +119,40 @@
|
||||
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
|
||||
"browser.newtabpage.activity-stream.system.showSponsored" = false;
|
||||
"browser.topsites.contile.enabled" = false;
|
||||
"browser.urlbar.trimURLs" = false;
|
||||
"browser.urlbar.unitConversion.enabled" = true;
|
||||
"dom.security.https_only_mode" = true;
|
||||
"extensions.formautofill.addresses.enabled" = false;
|
||||
"extensions.formautofill.creditCards.enabled" = false;
|
||||
"extensions.pocket.enabled" = false;
|
||||
"general.autoScroll" = true;
|
||||
"widget.use-xdg-desktop-portal.file-picker" = 1;
|
||||
"permissions.default.geo" = 2;
|
||||
"privacy.bounceTrackingProtection.mode" = 1;
|
||||
"privacy.fingerprintingProtection" = true;
|
||||
"privacy.trackingprotection.consentmanager.skip.pbmode.enabled" = false;
|
||||
"privacy.trackingprotection.emailtracking.enabled" = true;
|
||||
"privacy.trackingprotection.enabled" = true;
|
||||
"privacy.trackingprotection.socialtracking.enabled" = true;
|
||||
"signon.rememberSignons" = false;
|
||||
"widget.use-xdg-desktop-portal.file-picker" = 1;
|
||||
};
|
||||
search = {
|
||||
force = true;
|
||||
default = "SearX";
|
||||
order = ["SearX" "google"];
|
||||
engines = {
|
||||
"MELPA" = {
|
||||
urls = [
|
||||
{
|
||||
template = "https://melpa.org/#/?q={searchTerms}";
|
||||
}
|
||||
];
|
||||
definedAliases = ["@m"];
|
||||
};
|
||||
"Nix Packages" = {
|
||||
urls = [
|
||||
{
|
||||
template = "https://search.nixos.org/packages";
|
||||
template = "https://search.nixos.org/packages?channel=unstable";
|
||||
params = [
|
||||
{
|
||||
name = "type";
|
||||
@@ -199,39 +179,13 @@
|
||||
};
|
||||
};
|
||||
|
||||
programs.ghostty = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
installBatSyntax = true;
|
||||
installVimSyntax = true;
|
||||
settings = {
|
||||
font-family = "BlexMono Nerd Font";
|
||||
font-size = 11;
|
||||
};
|
||||
};
|
||||
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "chase";
|
||||
userEmail = "chase@cathoderaytube.net";
|
||||
extraConfig = {
|
||||
init.defaultBranch = "main";
|
||||
};
|
||||
};
|
||||
|
||||
programs.git-credential-oauth.enable = true;
|
||||
|
||||
programs.gpg = {
|
||||
enable = true;
|
||||
homedir = "${config.xdg.dataHome}/gnupg";
|
||||
};
|
||||
|
||||
programs.htop.enable = true;
|
||||
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
enableGitIntegration = true;
|
||||
shellIntegration.enableBashIntegration = true;
|
||||
shellIntegration = {
|
||||
enableBashIntegration = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
font = {
|
||||
name = "BlexMono Nerd Font";
|
||||
size = 11;
|
||||
@@ -246,91 +200,37 @@
|
||||
};
|
||||
scripts = [
|
||||
pkgs.mpvScripts.mpris
|
||||
pkgs.mpvScripts.sponsorblock
|
||||
];
|
||||
};
|
||||
|
||||
programs.obs-studio.enable = true;
|
||||
|
||||
programs.ranger.enable = true;
|
||||
|
||||
programs.rmpc = {
|
||||
programs.rofi = {
|
||||
enable = true;
|
||||
config = ''
|
||||
(
|
||||
enable_config_hot_reload: true,
|
||||
)
|
||||
'';
|
||||
};
|
||||
|
||||
# programs.senpai.enable = true;
|
||||
|
||||
# programs.sm64ex.enable = true;
|
||||
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
settings = {
|
||||
line_break = {
|
||||
disabled = true;
|
||||
};
|
||||
username = {
|
||||
style_user = "bold blue";
|
||||
format = "[$user]($style)@";
|
||||
show_always = true;
|
||||
};
|
||||
hostname = {
|
||||
style = "bold cyan";
|
||||
format = "[$ssh_symbol$hostname]($style) ";
|
||||
ssh_only = false;
|
||||
};
|
||||
directory = {
|
||||
style = "bold green";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs.texlive.enable = true;
|
||||
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
systemd = {
|
||||
enable = true;
|
||||
target = "hyprland-session.target";
|
||||
};
|
||||
};
|
||||
|
||||
programs.yazi = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
};
|
||||
|
||||
programs.yt-dlp = {
|
||||
enable = true;
|
||||
settings = {
|
||||
embed-thumbnail = true;
|
||||
};
|
||||
package = pkgs.rofi-wayland;
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
anki-bin
|
||||
audacity
|
||||
ffmpeg
|
||||
fortune
|
||||
gimp
|
||||
ibm-plex
|
||||
imagemagick
|
||||
kdePackages.kdenlive
|
||||
libnotify
|
||||
libreoffice
|
||||
logiops
|
||||
lolcat
|
||||
nerd-fonts.blex-mono
|
||||
openutau
|
||||
picard
|
||||
protonmail-bridge
|
||||
thunderbird
|
||||
ueberzugpp
|
||||
vcv-rack
|
||||
(pkgs.python3.withPackages (python-pkgs: [
|
||||
python-pkgs.python-lsp-server
|
||||
python-pkgs.python-lsp-ruff
|
||||
]))
|
||||
runelite
|
||||
thunderbird
|
||||
vcv-rack
|
||||
waybar
|
||||
waybar-mpris
|
||||
];
|
||||
|
||||
services.arrpc.enable = true;
|
||||
@@ -348,20 +248,6 @@
|
||||
defaultEditor = true;
|
||||
};
|
||||
|
||||
services.hyprpolkitagent.enable = true;
|
||||
|
||||
services.hyprsunset.enable = true;
|
||||
|
||||
services.hyprpaper = {
|
||||
enable = true;
|
||||
settings = {
|
||||
preload = ["/home/chase/nixos-config/home/wallpaper.jpg"];
|
||||
wallpaper = ["/home/chase/nixos-config/home/wallpaper.jpg"];
|
||||
};
|
||||
};
|
||||
|
||||
services.mako.enable = true;
|
||||
|
||||
services.mpd = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
@@ -389,11 +275,4 @@
|
||||
enable = true;
|
||||
mpd.useLocal = true;
|
||||
};
|
||||
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
package = null;
|
||||
portalPackage = null;
|
||||
systemd.enable = true;
|
||||
};
|
||||
}
|
@@ -40,7 +40,7 @@
|
||||
(load custom-file))
|
||||
|
||||
;; backup directory instead of loose files
|
||||
(setq backup-directory-alist '(("." . "~/.config/emacs/backups")))
|
||||
(setq backup-directory-alist '(("." . (expand-file-name "backups/" user-emacs-directory))))
|
||||
(setq backup-by-copying t)
|
||||
|
||||
;; defer package initialize
|
||||
@@ -49,11 +49,6 @@
|
||||
;; prevent resizing of the frame
|
||||
(setq frame-inhibit-implied-resize t)
|
||||
|
||||
;; no bars
|
||||
(menu-bar-mode -1)
|
||||
(tool-bar-mode -1)
|
||||
(scroll-bar-mode -1)
|
||||
|
||||
;; no startup screen
|
||||
(setq inhibit-startup-screen t)
|
||||
|
||||
|
@@ -3,6 +3,10 @@
|
||||
;;; Commentary:
|
||||
|
||||
;;; Code:
|
||||
;; Check Emacs version and warn if it is not supported
|
||||
(when (and (<= emacs-major-version 29) (< emacs-minor-version 4))
|
||||
(warn (format "This config is designed for Emacs 29+, please upgrade.")))
|
||||
|
||||
;; display startup time
|
||||
(defun chase/display-startup-time ()
|
||||
"Write init time and number of garbage collections to message buffer."
|
||||
@@ -11,17 +15,22 @@
|
||||
|
||||
(add-hook 'emacs-startup-hook #'chase/display-startup-time)
|
||||
|
||||
;; set repos and bootstrap use-package
|
||||
;; (require 'package)
|
||||
;; automatically create missing directories
|
||||
;; source: https://emacsredux.com/blog/2022/06/12/auto-create-missing-directories/
|
||||
(defun er-auto-create-missing-dirs ()
|
||||
"Create missing parent directories automatically when opening a file."
|
||||
(let ((target-dir (file-name-directory buffer-file-name)))
|
||||
(unless (file-exists-p target-dir)
|
||||
(make-directory target-dir t))))
|
||||
|
||||
;; (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
|
||||
(add-to-list 'find-file-not-found-functions #'er-auto-create-missing-dirs)
|
||||
|
||||
;; (package-initialize)
|
||||
;; no bars
|
||||
(add-hook 'window-setup-hook (lambda ()
|
||||
(menu-bar-mode -1)
|
||||
(tool-bar-mode -1)
|
||||
(scroll-bar-mode -1)))
|
||||
|
||||
;; (eval-when-compile
|
||||
;; (require 'use-package))
|
||||
|
||||
;;
|
||||
;; bootstrap straight
|
||||
(defvar bootstrap-version)
|
||||
(let ((bootstrap-file
|
||||
@@ -41,13 +50,10 @@
|
||||
|
||||
(setq straight-use-package-by-default t)
|
||||
|
||||
;; always install missing packages
|
||||
;; (require 'use-package-ensure)
|
||||
;; (setq use-package-always-ensure t)
|
||||
(setq use-package-always-demand t
|
||||
use-package-compute-statistics t)
|
||||
|
||||
(require 'bind-key)
|
||||
(use-package bind-key)
|
||||
|
||||
(use-package diminish)
|
||||
|
||||
@@ -56,16 +62,6 @@
|
||||
:config
|
||||
(add-hook 'after-init-hook #'benchmark-init/deactivate))
|
||||
|
||||
;; auto-update packages
|
||||
;; (use-package auto-package-update
|
||||
;; :custom
|
||||
;; (setq auto-package-update-delete-old-versions t
|
||||
;; auto-package-update-hide-results t
|
||||
;; auto-package-update-interval 7)
|
||||
;; :config
|
||||
;; (auto-package-update-maybe)
|
||||
;; (auto-package-update-at-time "09:30"))
|
||||
|
||||
;; set locale
|
||||
(set-language-environment "UTF-8")
|
||||
(prefer-coding-system 'utf-8-unix)
|
||||
@@ -116,6 +112,26 @@
|
||||
:config
|
||||
(evil-collection-init))
|
||||
|
||||
(use-package evil-surround
|
||||
:config
|
||||
(global-evil-surround-mode 1))
|
||||
|
||||
(use-package vertico
|
||||
:custom
|
||||
(vertico-cycle t)
|
||||
:init
|
||||
(vertico-mode))
|
||||
|
||||
(use-package savehist
|
||||
:init
|
||||
(savehist-mode))
|
||||
|
||||
(use-package orderless
|
||||
:custom
|
||||
(completion-styles '(orderless basic))
|
||||
(completion-category-defaults nil)
|
||||
(completion-category-overrides '((file (styles partial-completion)))))
|
||||
|
||||
;; prevent laggy icons
|
||||
(setq inhibit-compacting-font-caches t)
|
||||
|
||||
@@ -128,6 +144,11 @@
|
||||
:config
|
||||
(nerd-icons-completion-mode))
|
||||
|
||||
(use-package nerd-icons-corfu
|
||||
:after corfu
|
||||
:config
|
||||
(add-to-list 'corfu-margin-formatters #'nerd-icons-corfu-formatter))
|
||||
|
||||
(use-package nerd-icons-dired
|
||||
:hook
|
||||
(dired-mode . nerd-icons-dired-mode))
|
||||
@@ -159,14 +180,10 @@
|
||||
(column-number-mode)
|
||||
|
||||
;; line numbers, not quite everywhere
|
||||
(setq-default display-line-numbers-type 'relative)
|
||||
(add-hook 'prog-mode-hook #'display-line-numbers-mode)
|
||||
(add-hook 'text-mode #'display-line-numbers-mode)
|
||||
|
||||
;; center cursor
|
||||
;; (use-package centered-cursor-mode
|
||||
;; :config
|
||||
;; (global-centered-cursor-mode))
|
||||
|
||||
;; move cursor to new help windows
|
||||
(setq help-window-select t)
|
||||
|
||||
@@ -196,15 +213,17 @@
|
||||
(setq ibuffer-saved-filter-groups
|
||||
'(("Default"
|
||||
("Terminal" (name . "^\\*terminal\\*$"))
|
||||
("Nix" (mode . nix-ts-mode))
|
||||
("Code" (or
|
||||
(mode . c-ts-mode)
|
||||
(mode . c++-ts-mode)
|
||||
(mode . emacs-lisp-mode)
|
||||
(mode . js-ts-mode)
|
||||
(mode . makefile-gmake-mode)
|
||||
(mode . python-ts-mode)
|
||||
(mode . rust-ts-mode)))
|
||||
("Dired" (mode . dired-mode))
|
||||
("Org" (mode . org-mode))
|
||||
("Dired" (mode . dired-mode))
|
||||
("Magit" (name . "^magit"))
|
||||
("Emacs" (or
|
||||
(name . "^\\*Completions\\*$")
|
||||
@@ -215,10 +234,19 @@
|
||||
|
||||
(add-hook 'ibuffer-mode-hook
|
||||
(lambda ()
|
||||
(ibuffer-switch-to-saved-filter-groups "Default")))
|
||||
(ibuffer-switch-to-saved-filter-groups "Default")
|
||||
(ibuffer-auto-mode 1)))
|
||||
|
||||
;; make dired less messy
|
||||
(setf dired-kill-when-opening-new-dired-buffer t)
|
||||
|
||||
;; kill buffers
|
||||
(substitute-key-definition 'kill-buffer 'kill-buffer-and-window global-map)
|
||||
|
||||
;; git stuff
|
||||
(use-package magit)
|
||||
(use-package magit
|
||||
:config
|
||||
(setq magit-bury-buffer-function 'kill-buffer))
|
||||
|
||||
(use-package magit-todos
|
||||
:after magit)
|
||||
@@ -254,15 +282,26 @@
|
||||
:config
|
||||
(treemacs-load-theme "nerd-icons"))
|
||||
|
||||
;; company
|
||||
(use-package company
|
||||
:bind (:map company-active-map
|
||||
("C-n" . company-select-next)
|
||||
("C-p" . company-select-previous))
|
||||
;; corfu
|
||||
(use-package corfu
|
||||
:custom
|
||||
(corfu-cycle t)
|
||||
(corfu-auto t)
|
||||
(corfu-auto-prefix 2)
|
||||
(corfu-auto-delay 0.2)
|
||||
(corfu-quit-at-boundary 'separator)
|
||||
(corfu-echo-documentation 0.25)
|
||||
:init
|
||||
(global-company-mode)
|
||||
:config
|
||||
(setq company-idle-delay 0.1)) ;; faster autocomplete
|
||||
(when (>= emacs-major-version 30)
|
||||
(global-completion-preview-mode 1))
|
||||
(unless (display-graphic-p)
|
||||
(when (require 'corfu-terminal nil :noerror)
|
||||
(corfu-terminal-mode +1)))
|
||||
(global-corfu-mode 1)
|
||||
(corfu-history-mode 1))
|
||||
|
||||
;; license templates
|
||||
(use-package license-templates)
|
||||
|
||||
;; yasnippet config
|
||||
(use-package yasnippet
|
||||
@@ -271,8 +310,8 @@
|
||||
(prog-mode . yas-minor-mode)
|
||||
:config
|
||||
(setq yas-snippet-dirs
|
||||
'("~/.config/emacs/snippets" ;; personal
|
||||
"~/.config/emacs/work"))) ;; keep em separated
|
||||
'((expand-file-name "snippets/" user-emacs-directory) ;; personal
|
||||
(expand-file-name "work/" user-emacs-directory)))) ;; keep em separated
|
||||
|
||||
;; nix
|
||||
(use-package nix-ts-mode
|
||||
@@ -291,7 +330,7 @@
|
||||
(use-package python
|
||||
:defer t
|
||||
:config
|
||||
(setq python-flymake-command '("flake8" "-")))
|
||||
(setq python-flymake-command '("ruff" "--quiet" "--stdin-filename=stdin" "-")))
|
||||
|
||||
;; eglot
|
||||
(use-package eglot
|
||||
@@ -355,15 +394,6 @@
|
||||
(pdf-tools-install :no-query)
|
||||
(require 'pdf-occur))
|
||||
|
||||
;; ;; helm
|
||||
;; (use-package helm
|
||||
;; :config
|
||||
;; (global-set-key (kbd "M-x") #'helm-M-x)
|
||||
;; (global-set-key (kbd "C-x r b") #'helm-filtered-bookmarks)
|
||||
;; (global-set-key (kbd "C-x C-f") #'helm-find-files)
|
||||
;; (setq helm-ff-auto-update-initial-value 1)
|
||||
;; (helm-mode 1))
|
||||
|
||||
;; org stuff
|
||||
(use-package org
|
||||
:mode
|
||||
@@ -387,7 +417,11 @@
|
||||
|
||||
;; agenda
|
||||
(require 'find-lisp)
|
||||
(setq org-directory "~/org")
|
||||
(unless (file-exists-p "~/Documents/org")
|
||||
(make-directory "~/Documents/org" t))
|
||||
(setq org-directory "~/Documents/org")
|
||||
(unless (file-exists-p (expand-file-name "gtd/" org-directory))
|
||||
(make-directory (expand-file-name "gtd/" org-directory) t))
|
||||
(setq chase/org-agenda-directory
|
||||
(expand-file-name "gtd/" org-directory))
|
||||
(setq org-agenda-files
|
||||
@@ -396,7 +430,7 @@
|
||||
(setq org-capture-templates
|
||||
'(("i" "Inbox" entry (file "gtd/inbox.org")
|
||||
"* TODO %?\n")
|
||||
("n" "Note" entry (file "~/org/inbox.org")
|
||||
("n" "Note" entry (file "gtd/inbox.org")
|
||||
"* %? :NOTE:\n")))
|
||||
|
||||
;; TODO
|
||||
@@ -411,7 +445,7 @@
|
||||
(setq org-refile-allow-creating-parent-nodes 'confirm
|
||||
org-refile-targets '(("projects.org" . (:level . 1))))
|
||||
|
||||
;; source blocks
|
||||
;; source blocks
|
||||
(add-to-list 'org-structure-template-alist '("el" . "src emacs-lisp"))
|
||||
(add-to-list 'org-structure-template-alist '("py" . "src python"))
|
||||
(add-to-list 'org-structure-template-alist '("sh" . "src shell"))
|
||||
@@ -419,6 +453,9 @@
|
||||
(add-to-list 'org-structure-template-alist '("json" . "src json"))
|
||||
(add-to-list 'org-structure-template-alist '("yaml" . "src yaml"))
|
||||
|
||||
;; babel
|
||||
(add-to-list 'org-babel-load-languages '(shell . t))
|
||||
|
||||
;; fix yaml fontify
|
||||
(add-to-list 'org-src-lang-modes '("yaml" . yaml-ts))
|
||||
|
||||
@@ -427,10 +464,10 @@
|
||||
org-export-with-section-numbers nil)
|
||||
|
||||
;; LaTeX
|
||||
(setq org-latex-compiler "xelatex")
|
||||
(setq org-latex-listings 'minted
|
||||
org-latex-pdf-process
|
||||
'("latexmk -shell-escape -f -pdf -%latex -interaction=nonstopmode -output-directory=%o %f"))
|
||||
;;(setq org-latex-compiler "xelatex")
|
||||
;;(setq org-latex-listings 'minted
|
||||
;;org-latex-pdf-process
|
||||
;;'("latexmk -shell-escape -f -pdf -%latex -interaction=nonstopmode -output-directory=%o %f"))
|
||||
|
||||
(use-package evil-org
|
||||
:after org
|
||||
@@ -446,8 +483,6 @@
|
||||
|
||||
(use-package org-roam
|
||||
:after org
|
||||
:custom
|
||||
(org-roam-directory "~/org/roam")
|
||||
:bind
|
||||
(("C-c n l" . org-roam-buffer-toggle)
|
||||
("C-c n f" . org-roam-node-find)
|
||||
@@ -457,6 +492,10 @@
|
||||
;; Dailies
|
||||
("C-c n j" . org-roam-dailies-capture-today))
|
||||
:config
|
||||
(unless (file-exists-p (expand-file-name "roam/" org-directory))
|
||||
(make-directory (expand-file-name "roam/" org-directory) t))
|
||||
(setq org-roam-directory
|
||||
(expand-file-name "roam/" org-directory))
|
||||
(require 'org-roam-protocol)
|
||||
(require 'org-roam-export)
|
||||
(org-roam-db-autosync-mode)
|
||||
@@ -475,10 +514,10 @@
|
||||
(file+head "reference/${slug}.org" "#+title: ${title}\n${body}\n")
|
||||
:unnarrowed t))))
|
||||
|
||||
(use-package org-bullets
|
||||
(use-package org-superstar
|
||||
:after org
|
||||
:hook
|
||||
(org-mode . org-bullets-mode))
|
||||
(org-mode . org-superstar-mode))
|
||||
|
||||
(use-package org-appear
|
||||
:after org
|
||||
@@ -500,11 +539,13 @@
|
||||
:after org)
|
||||
|
||||
(use-package ox-moderncv
|
||||
:after org
|
||||
:straight
|
||||
(org-cv :type git :host gitlab :repo "Titan-C/org-cv"))
|
||||
:straight nil
|
||||
:load-path "~/org-cv/"
|
||||
;;(org-cv :type git :host gitlab :repo "Titan-C/org-cv"))
|
||||
:init (require 'ox-moderncv))
|
||||
|
||||
(use-package ox-hugocv
|
||||
|
||||
(use-package ox-hugocv
|
||||
:after org
|
||||
:straight
|
||||
(org-cv :type git :host gitlab :repo "Titan-C/org-cv")))
|
||||
@@ -518,11 +559,19 @@
|
||||
(use-package flyspell
|
||||
:defer t
|
||||
:hook
|
||||
(markdown-mode . flyspell-mode)
|
||||
(org-mode . flyspell-mode)
|
||||
:diminish flyspell-mode)
|
||||
|
||||
;; enlighten flymake to the load path
|
||||
(setq elisp-flymake-byte-compile-load-path load-path)
|
||||
;; flymake config
|
||||
(use-package flymake
|
||||
:straight nil
|
||||
:defer t
|
||||
:init
|
||||
(setq elisp-flymake-byte-compile-load-path load-path)
|
||||
:bind (:map global-map
|
||||
("M-n" . flymake-goto-next-error)
|
||||
("M-p" . flymake-goto-prev-error)))
|
||||
|
||||
;; windows printer
|
||||
(setq ps-printer-name t)
|
||||
@@ -532,24 +581,5 @@
|
||||
|
||||
(use-package emms)
|
||||
|
||||
;; exwm
|
||||
;; (use-package exwm
|
||||
;; :config
|
||||
;; (add-hook 'exwm-update-class-hook
|
||||
;; (lambda () (exwm-workspace-rename-buffer exwm-class-name)))
|
||||
;; (setq exwm-input-global-keys
|
||||
;; `(([?\s-r] . exwm-reset)
|
||||
;; ([?\s-w] . exwm-workspace-switch)
|
||||
;; ([?\s-&] . (lambda (cmd)
|
||||
;; (interactive (list (read-shell-command "$ ")))
|
||||
;; (start-process-shell-command cmd nil cmd)))
|
||||
;; ,@(mapcar (lambda (i)
|
||||
;; `(,(kbd (format "s-%d" i))
|
||||
;; (lambda ()
|
||||
;; (interactive)
|
||||
;; (exwm-workspace-switch-create ,i))))
|
||||
;; (number-sequence 0 9))))
|
||||
;; (exwm-enable))
|
||||
|
||||
(provide 'init)
|
||||
;;; init.el ends here
|
||||
|
222
home/hypr.nix
Normal file
222
home/hypr.nix
Normal file
@@ -0,0 +1,222 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
catppuccin = {
|
||||
waybar = {
|
||||
enable = false;
|
||||
# flavor = "mocha";
|
||||
# mode = "createLink";
|
||||
};
|
||||
hyprland = {
|
||||
enable = false;
|
||||
};
|
||||
};
|
||||
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
systemd = {
|
||||
enable = true;
|
||||
target = "hyprland-session.target";
|
||||
};
|
||||
style = ./waybar.css;
|
||||
settings = [{
|
||||
"layer" = "top";
|
||||
"position" = "top";
|
||||
modules-left = [
|
||||
"custom/launcher"
|
||||
"temperature"
|
||||
"mpd"
|
||||
];
|
||||
modules-center = [
|
||||
"clock"
|
||||
];
|
||||
modules-right = [
|
||||
"pulseaudio"
|
||||
"backlight"
|
||||
"memory"
|
||||
"cpu"
|
||||
"network"
|
||||
"custom/powermenu"
|
||||
"tray"
|
||||
];
|
||||
"custom/launcher" = {
|
||||
"format" = " ";
|
||||
"on-click" = "pkill rofi || rofi2";
|
||||
"on-click-middle" = "exec default_wall";
|
||||
"on-click-right" = "exec wallpaper_random";
|
||||
"tooltip" = false;
|
||||
};
|
||||
"pulseaudio" = {
|
||||
"scroll-step" = 1;
|
||||
"format" = "{icon} {volume}%";
|
||||
"format-muted" = " Muted";
|
||||
"format-icons" = {
|
||||
"default" = [ "" "" "" ];
|
||||
};
|
||||
"on-click" = "pamixer -t";
|
||||
"tooltip" = false;
|
||||
};
|
||||
"clock" = {
|
||||
"interval" = 1;
|
||||
"format" = "{:%H:%M}";
|
||||
"tooltip" = true;
|
||||
"tooltip-format"= "{:%Y-%m-%d}\n<tt>{calendar}</tt>";
|
||||
};
|
||||
"memory" = {
|
||||
"interval" = 1;
|
||||
"format" = " {percentage}%";
|
||||
"states" = {
|
||||
"warning" = 85;
|
||||
};
|
||||
};
|
||||
"cpu" = {
|
||||
"interval" = 1;
|
||||
"format" = " {usage}%";
|
||||
};
|
||||
"mpd" = {
|
||||
"max-length" = 25;
|
||||
"format" = "<span foreground='#bb9af7'></span> {title}";
|
||||
"format-paused" = " {title}";
|
||||
"format-stopped" = "<span foreground='#bb9af7'></span>";
|
||||
"format-disconnected" = "";
|
||||
"on-click" = "rmpc togglepause";
|
||||
"on-click-right" = "rmpc update";
|
||||
"on-click-middle" = "kitty --class='rmpc' rmpc ";
|
||||
"on-scroll-up" = "rmpc prev";
|
||||
"on-scroll-down" = "rmpc next";
|
||||
"smooth-scrolling-threshold" = 5;
|
||||
"tooltip-format" = "{title} - {artist} ({elapsedTime:%M:%S}/{totalTime:%H:%M:%S})";
|
||||
};
|
||||
"network" = {
|
||||
"format-disconnected" = "";
|
||||
"format-ethernet" = "";
|
||||
"format-linked" = " {essid} (No IP)";
|
||||
"format-wifi" = " {essid}";
|
||||
"interval" = 1;
|
||||
"tooltip" = false;
|
||||
};
|
||||
"custom/powermenu" = {
|
||||
"format" = "";
|
||||
"on-click" = "pkill rofi || ~/.config/rofi/powermenu/type-3/powermenu.sh";
|
||||
"tooltip" = false;
|
||||
};
|
||||
"tray" = {
|
||||
"icon-size" = 15;
|
||||
"spacing" = 5;
|
||||
};
|
||||
}];
|
||||
};
|
||||
|
||||
programs.hyprlock = {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
disable_loading_bar = true;
|
||||
grace = 3;
|
||||
hide_cursor = true;
|
||||
no_fade_in = false;
|
||||
};
|
||||
|
||||
background = [
|
||||
{
|
||||
path = "screenshot";
|
||||
blur_passes = 3;
|
||||
blur_size = 8;
|
||||
}
|
||||
];
|
||||
|
||||
input-field = [
|
||||
{
|
||||
size = "200, 50";
|
||||
position = "0, -80";
|
||||
monitor = "";
|
||||
dots_center = true;
|
||||
fade_on_empty = false;
|
||||
font_color = "rgb(202, 211, 245)";
|
||||
inner_color = "rgb(91, 96, 120)";
|
||||
outer_color = "rgb(24, 25, 38)";
|
||||
outline_thickness = 5;
|
||||
placeholder_text = "Enter password...";
|
||||
shadow_passes = 2;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
brightnessctl
|
||||
helvum
|
||||
];
|
||||
|
||||
services.hypridle = {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
lock_cmd = "pidof hyprlock || hyprlock";
|
||||
before_sleep_cmd = "loginctl lock-session";
|
||||
after_sleep_cmd = "hyprctl dispatch dpms on";
|
||||
ignore_dbus_inhibit = false;
|
||||
};
|
||||
|
||||
listener = [
|
||||
{
|
||||
timeout = 600;
|
||||
on-timeout = "loginctl lock-session";
|
||||
}
|
||||
{
|
||||
timeout = 900;
|
||||
on-timeout = "hyprctl dispatch dpms off";
|
||||
on-resume = "hyprctl dispatch dpms on";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
services.hyprpolkitagent.enable = true;
|
||||
|
||||
services.hyprsunset.enable = true;
|
||||
|
||||
services.hyprpaper = {
|
||||
enable = true;
|
||||
settings = {
|
||||
preload = ["/home/chase/nix-config/home/wallpaper.jpg"];
|
||||
wallpaper = ["/home/chase/nix-config/home/wallpaper.jpg"];
|
||||
};
|
||||
};
|
||||
|
||||
services.mako = {
|
||||
enable = true;
|
||||
settings = {
|
||||
actions = true;
|
||||
anchor = "top-right";
|
||||
background-color = "#1e1e2e";
|
||||
border-color = "#cba6f7";
|
||||
border-radius = 0;
|
||||
default-timeout = 0;
|
||||
font = "monospace 10";
|
||||
height = 100;
|
||||
width = 300;
|
||||
icons = true;
|
||||
ignore-timeout = false;
|
||||
layer = "top";
|
||||
margin = 10;
|
||||
markup = true;
|
||||
|
||||
# Section example
|
||||
"actionable=true" = {
|
||||
anchor = "top-right";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.network-manager-applet.enable = true;
|
||||
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = false;
|
||||
# package = null;
|
||||
# portalPackage = null;
|
||||
systemd.enable = true;
|
||||
};
|
||||
}
|
320
home/plasma.nix
320
home/plasma.nix
@@ -1,6 +1,71 @@
|
||||
{
|
||||
programs.plasma = {
|
||||
enable = true;
|
||||
fonts = {
|
||||
fixedWidth = {
|
||||
family = "BlexMono Nerd Font";
|
||||
pointSize = 11;
|
||||
};
|
||||
general = {
|
||||
family = "IBM Plex Sans";
|
||||
pointSize = 11;
|
||||
};
|
||||
menu = {
|
||||
family = "IBM Plex Sans";
|
||||
pointSize = 11;
|
||||
};
|
||||
small = {
|
||||
family = "IBM Plex Sans";
|
||||
pointSize = 8;
|
||||
};
|
||||
toolbar = {
|
||||
family = "IBM Plex Sans";
|
||||
pointSize = 11;
|
||||
};
|
||||
windowTitle = {
|
||||
family = "IBM Plex Sans";
|
||||
pointSize = 11;
|
||||
};
|
||||
};
|
||||
krunner = {
|
||||
historyBehavior = "disabled";
|
||||
position = "center";
|
||||
shortcuts.launch = "Meta+Space";
|
||||
};
|
||||
kscreenlocker = {
|
||||
appearance.wallpaper = "/home/chase/nix-config/home/wallpaper.jpg";
|
||||
};
|
||||
kwin = {
|
||||
effects = {
|
||||
desktopSwitching.animation = "slide";
|
||||
minimization.animation = "squash";
|
||||
shakeCursor.enable = true;
|
||||
};
|
||||
nightLight = {
|
||||
enable = true;
|
||||
location = {
|
||||
latitude = "39.70"; # not my house xD
|
||||
longitude = "-86.15";
|
||||
};
|
||||
mode = "location";
|
||||
temperature = {
|
||||
day = null;
|
||||
night = 4000;
|
||||
};
|
||||
transitionTime = 15;
|
||||
};
|
||||
virtualDesktops = {
|
||||
names = [
|
||||
"一"
|
||||
"二"
|
||||
"三"
|
||||
"四"
|
||||
"五"
|
||||
];
|
||||
number = 5;
|
||||
rows = 1;
|
||||
};
|
||||
};
|
||||
panels = [
|
||||
{
|
||||
floating = false;
|
||||
@@ -10,10 +75,23 @@
|
||||
location = "top";
|
||||
opacity = "opaque";
|
||||
widgets = [
|
||||
"org.kde.plasma.virtualdesktops"
|
||||
{
|
||||
name = "org.kde.plasma.pager";
|
||||
config = {
|
||||
General = {
|
||||
displayedText = "name";
|
||||
showWindowOutlines = false;
|
||||
};
|
||||
};
|
||||
}
|
||||
"org.kde.plasma.appmenu"
|
||||
"org.kde.plasma.panelspacer"
|
||||
"org.kde.plasma.digitalclock"
|
||||
{
|
||||
digitalClock = {
|
||||
calendar.firstDayOfWeek = "monday";
|
||||
time.format = "24h";
|
||||
};
|
||||
}
|
||||
"org.kde.plasma.panelspacer"
|
||||
"org.kde.plasma.systemtray"
|
||||
];
|
||||
@@ -26,237 +104,37 @@
|
||||
location = "bottom";
|
||||
opacity = "adaptive";
|
||||
widgets = [
|
||||
"org.kde.plasma.launchermenu"
|
||||
"org.kde.plasma.kicker"
|
||||
"org.kde.plasma.icontasks"
|
||||
];
|
||||
}
|
||||
];
|
||||
shortcuts = {
|
||||
kmix = {
|
||||
"decrease_volume" = "Volume Down";
|
||||
"decrease_volume_small" = "Shift+Volume Down";
|
||||
"increase_volume" = "Volume Up";
|
||||
"increase_volume_small" = "Shift+Volume Up";
|
||||
"mic_mute" = ["Microphone Mute" "" "Meta+Volume Mute\\, ,Microphone Mute" "Meta+Volume Mute,Mute Microphone"];
|
||||
"mute" = "Volume Mute";
|
||||
};
|
||||
kmserver = {
|
||||
"Lock Session" = ["Meta+L" "" "Screensaver\\, ,Meta+L" "Screensaver,Lock Session"];
|
||||
"Log Out" = "Ctrl+Alt+Del";
|
||||
};
|
||||
kwin = {
|
||||
"Kill Window" = "Meta+Ctrl+Esc";
|
||||
"Overview" = "Meta+W";
|
||||
"Show Desktop" = "Meta+D";
|
||||
"Switch to Desktop 1" = ["Ctrl+F1" "Meta+1,Ctrl+F1,Switch to Desktop 1"];
|
||||
"Switch to Desktop 2" = ["Ctrl+F2" "Meta+2,Ctrl+F2,Switch to Desktop 2"];
|
||||
"Switch to Desktop 3" = ["Meta+3" "Ctrl+F3,Ctrl+F3,Switch to Desktop 3"];
|
||||
"Switch to Desktop 4" = ["Meta+4" "Ctrl+F4,Ctrl+F4,Switch to Desktop 4"];
|
||||
"Switch to Desktop 5" = "Meta+5,,Switch to Desktop 5";
|
||||
"Walk Through Windows" = "Alt+Tab";
|
||||
"Walk Through Windows (Reverse)" = "Alt+Shift+Tab";
|
||||
"Window Close" = "Alt+F4";
|
||||
"Window Maximize" = "Meta+PgUp";
|
||||
"Window Minimize" = "Meta+PgDown";
|
||||
"Window One Desktop Down" = "Meta+Ctrl+Shift+Down";
|
||||
"Window One Desktop Up" = "Meta+Ctrl+Shift+Up";
|
||||
"Window One Desktop to the Left" = "Meta+Ctrl+Shift+Left";
|
||||
"Window One Desktop to the Right" = "Meta+Ctrl+Shift+Right";
|
||||
"Window Operations Menu" = "Alt+F3";
|
||||
"Window Quick Tile Bottom" = "Meta+Down";
|
||||
"Window Quick Tile Left" = "Meta+Left";
|
||||
"Window Quick Tile Right" = "Meta+Right";
|
||||
"Window Quick Tile Top" = "Meta+Up";
|
||||
"Window to Desktop 1" = "Meta+!,,Window to Desktop 1";
|
||||
"Window to Desktop 2" = "Meta+\",,Window to Desktop 2";
|
||||
"Window to Desktop 3" = "Meta+#,,Window to Desktop 3";
|
||||
"Window to Desktop 4" = "Meta+$,,Window to Desktop 4";
|
||||
"Window to Desktop 5" = "Meta+%,,Window to Desktop 5";
|
||||
"Window to Next Screen" = "Meta+Shift+Right";
|
||||
"Window to Previous Screen" = "Meta+Shift+Left";
|
||||
"disableInputCapture" = "Meta+Shift+Esc";
|
||||
"view_actual_size" = "Meta+0";
|
||||
"view_zoom_in" = ["Meta++" "" "Meta+=\\, Zoom In,Meta++" "Meta+=,Zoom In"];
|
||||
"view_zoom_out" = "Meta+-";
|
||||
};
|
||||
mediacontrol = {
|
||||
"nextmedia" = "Media Next";
|
||||
"pausemedia" = "Media Pause";
|
||||
"playpausemedia" = "Media Play";
|
||||
"previousmedia" = "Media Previous";
|
||||
"stopmedia" = "Media Stop";
|
||||
};
|
||||
org_kde_powerdevil = {
|
||||
"Decrease Keyboard Brightness" = "Keyboard Brightness Down";
|
||||
"Decrease Screen Brightness" = "Monitor Brightness Down";
|
||||
"Decrease Screen Brightness Small" = "Shift+Monitor Brightness Down";
|
||||
"Hibernate" = "Hibernate";
|
||||
"Increase Keyboard Brightness" = "Keyboard Brightness Up";
|
||||
"Increase Screen Brightness" = "Monitor Brightness Up";
|
||||
"Increase Screen Brightness Small" = "Shift+Monitor Brightness Up";
|
||||
"PowerDown" = "Power Down";
|
||||
"PowerOff" = "Power Off";
|
||||
"Sleep" = "Sleep";
|
||||
"Toggle Keyboard Backlight" = "Keyboard Light On/Off";
|
||||
"powerProfile" = ["Battery" "" "Meta+B\\, ,Battery" "Meta+B,Switch Power Profile"];
|
||||
"Switch to Desktop 1" = "Meta+1";
|
||||
"Switch to Desktop 2" = "Meta+2";
|
||||
"Switch to Desktop 3" = "Meta+3";
|
||||
"Switch to Desktop 4" = "Meta+4";
|
||||
"Switch to Desktop 5" = "Meta+5";
|
||||
"Window to Desktop 1" = "Meta+!";
|
||||
"Window to Desktop 2" = "Meta+\"";
|
||||
"Window to Desktop 3" = "Meta+#";
|
||||
"Window to Desktop 4" = "Meta+$";
|
||||
"Window to Desktop 5" = "Meta+%";
|
||||
};
|
||||
plasmashell = {
|
||||
"activate application launcher" = ["Meta" "" "Alt+F1\\, ,Meta" "Alt+F1,Activate Application Launcher"];
|
||||
"activate task manager entry 1" = "none,Meta+1,Activate Task Manager Entry 1";
|
||||
"activate task manager entry 2" = "none,Meta+2,Activate Task Manager Entry 2";
|
||||
"activate task manager entry 3" = "none,Meta+3,Activate Task Manager Entry 3";
|
||||
"activate task manager entry 4" = "none,Meta+4,Activate Task Manager Entry 4";
|
||||
"activate task manager entry 5" = "none,Meta+5,Activate Task Manager Entry 5";
|
||||
"clipboard_action" = "Meta+Ctrl+X";
|
||||
"cycle-panels" = "Meta+Alt+P";
|
||||
"manage activities" = "Meta+Q";
|
||||
"activate task manager entry 1" = ",none,Activate Task Manager Entry 1";
|
||||
"activate task manager entry 2" = ",none,Activate Task Manager Entry 2";
|
||||
"activate task manager entry 3" = ",none,Activate Task Manager Entry 3";
|
||||
"activate task manager entry 4" = ",none,Activate Task Manager Entry 4";
|
||||
"activate task manager entry 5" = ",none,Activate Task Manager Entry 5";
|
||||
"next activity" = ",none,Walk through activities";
|
||||
"previous activity" = ",none,Walk through activities (Reverse)";
|
||||
"show dashboard" = "Ctrl+F12";
|
||||
"show-on-mouse-pos" = "Meta+V";
|
||||
"stop current activity" = "Meta+S";
|
||||
};
|
||||
"services/com.mitchellh.ghostty.desktop"."_launch" = "Meta+X";
|
||||
"services/org.kde.krunner.desktop"."_launch" = ["Alt+Space" "Search" "Alt+F2" "Meta+Space"];
|
||||
"services/kitty.desktop"."_launch" = "Meta+X";
|
||||
};
|
||||
configFile = {
|
||||
baloofilerc = {
|
||||
"General"."dbVersion" = 2;
|
||||
"General"."exclude filters" = "*~,*.part,*.o,*.la,*.lo,*.loT,*.moc,moc_*.cpp,qrc_*.cpp,ui_*.h,cmake_install.cmake,CMakeCache.txt,CTestTestfile.cmake,libtool,config.status,confdefs.h,autom4te,conftest,confstat,Makefile.am,*.gcode,.ninja_deps,.ninja_log,build.ninja,*.csproj,*.m4,*.rej,*.gmo,*.pc,*.omf,*.aux,*.tmp,*.po,*.vm*,*.nvram,*.rcore,*.swp,*.swap,lzo,litmain.sh,*.orig,.histfile.*,.xsession-errors*,*.map,*.so,*.a,*.db,*.qrc,*.ini,*.init,*.img,*.vdi,*.vbox*,vbox.log,*.qcow2,*.vmdk,*.vhd,*.vhdx,*.sql,*.sql.gz,*.ytdl,*.tfstate*,*.class,*.pyc,*.pyo,*.elc,*.qmlc,*.jsc,*.fastq,*.fq,*.gb,*.fasta,*.fna,*.gbff,*.faa,po,CVS,.svn,.git,_darcs,.bzr,.hg,CMakeFiles,CMakeTmp,CMakeTmpQmake,.moc,.obj,.pch,.uic,.npm,.yarn,.yarn-cache,__pycache__,node_modules,node_packages,nbproject,.terraform,.venv,venv,core-dumps,lost+found";
|
||||
"General"."exclude filters version" = 9;
|
||||
};
|
||||
dolphinrc = {
|
||||
"General"."ViewPropsTimestamp" = "2025,4,28,12,11,21.343";
|
||||
"KFileDialog Settings"."Places Icons Auto-resize" = false;
|
||||
"KFileDialog Settings"."Places Icons Static Size" = 22;
|
||||
};
|
||||
kactivitymanagerdrc = {
|
||||
"activities"."0fb1d4a1-96e6-4dfd-909a-04b78f1e3845" = "Default";
|
||||
"main"."currentActivity" = "0fb1d4a1-96e6-4dfd-909a-04b78f1e3845";
|
||||
};
|
||||
kcminputrc = {
|
||||
"Libinput/1739/52839/SYNA0001:00 06CB:CE67 Mouse"."PointerAccelerationProfile" = 1;
|
||||
"Libinput/1739/52839/SYNA0001:00 06CB:CE67 Touchpad"."NaturalScroll" = true;
|
||||
};
|
||||
kded5rc = {
|
||||
"Module-browserintegrationreminder"."autoload" = false;
|
||||
"Module-device_automounter"."autoload" = false;
|
||||
};
|
||||
kdeglobals = {
|
||||
"DirSelect Dialog"."DirSelectDialog Size" = "816,573";
|
||||
"DirSelect Dialog"."Splitter State" = "\x00\x00\x00\xff\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x88\x00\x00\x02\xa8\x00\xff\xff\xff\xff\x01\x00\x00\x00\x01\x00";
|
||||
"General"."TerminalApplication" = "ghostty";
|
||||
"General"."TerminalService" = "com.mitchellh.ghostty.desktop";
|
||||
"General"."XftHintStyle" = "hintslight";
|
||||
"General"."XftSubPixel" = "none";
|
||||
"General"."fixed" = "BlexMono Nerd Font,10,-1,5,400,0,0,0,0,0,0,0,0,0,0,1";
|
||||
"General"."font" = "IBM Plex Sans,10,-1,5,400,0,0,0,0,0,0,0,0,0,0,1";
|
||||
"General"."menuFont" = "IBM Plex Sans,10,-1,5,400,0,0,0,0,0,0,0,0,0,0,1";
|
||||
"General"."smallestReadableFont" = "IBM Plex Sans,8,-1,5,400,0,0,0,0,0,0,0,0,0,0,1";
|
||||
"General"."toolBarFont" = "IBM Plex Sans,10,-1,5,400,0,0,0,0,0,0,0,0,0,0,1";
|
||||
"KFileDialog Settings"."Allow Expansion" = false;
|
||||
"KFileDialog Settings"."Automatically select filename extension" = true;
|
||||
"KFileDialog Settings"."Breadcrumb Navigation" = true;
|
||||
"KFileDialog Settings"."Decoration position" = 2;
|
||||
"KFileDialog Settings"."LocationCombo Completionmode" = 5;
|
||||
"KFileDialog Settings"."PathCombo Completionmode" = 5;
|
||||
"KFileDialog Settings"."Show Bookmarks" = false;
|
||||
"KFileDialog Settings"."Show Full Path" = false;
|
||||
"KFileDialog Settings"."Show Inline Previews" = true;
|
||||
"KFileDialog Settings"."Show Preview" = false;
|
||||
"KFileDialog Settings"."Show Speedbar" = true;
|
||||
"KFileDialog Settings"."Show hidden files" = false;
|
||||
"KFileDialog Settings"."Sort by" = "Name";
|
||||
"KFileDialog Settings"."Sort directories first" = true;
|
||||
"KFileDialog Settings"."Sort hidden files last" = false;
|
||||
"KFileDialog Settings"."Sort reversed" = false;
|
||||
"KFileDialog Settings"."Speedbar Width" = 140;
|
||||
"KFileDialog Settings"."View Style" = "DetailTree";
|
||||
"WM"."activeBackground" = "30,30,46";
|
||||
"WM"."activeBlend" = "205,214,244";
|
||||
"WM"."activeFont" = "IBM Plex Sans,10,-1,5,400,0,0,0,0,0,0,0,0,0,0,1";
|
||||
"WM"."activeForeground" = "205,214,244";
|
||||
"WM"."inactiveBackground" = "17,17,27";
|
||||
"WM"."inactiveBlend" = "166,173,200";
|
||||
"WM"."inactiveForeground" = "166,173,200";
|
||||
};
|
||||
krunnerrc = {
|
||||
"General"."FreeFloating" = true;
|
||||
"Plugins"."browserhistoryEnabled" = false;
|
||||
"Plugins"."browsertabsEnabled" = false;
|
||||
"Plugins"."krunner_appstreamEnabled" = false;
|
||||
"Plugins"."krunner_bookmarksrunnerEnabled" = false;
|
||||
"Plugins"."krunner_dictionaryEnabled" = false;
|
||||
"Plugins"."krunner_katesessionsEnabled" = false;
|
||||
"Plugins"."krunner_konsoleprofilesEnabled" = false;
|
||||
"Plugins"."krunner_sessionsEnabled" = false;
|
||||
"Plugins"."krunner_spellcheckEnabled" = false;
|
||||
"Plugins"."org.kde.activities2Enabled" = false;
|
||||
"Plugins/Favorites"."plugins" = "krunner_services,krunner_systemsettings,unitconverter";
|
||||
};
|
||||
kscreenlockerrc = {
|
||||
"Greeter/Wallpaper/org.kde.image/General"."Image" = "/home/chase/nixos-config/home/wallpaper.jpg";
|
||||
"Greeter/Wallpaper/org.kde.image/General"."PreviewImage" = "/home/chase/nixos-config/home/wallpaper.jpg";
|
||||
};
|
||||
kuriikwsfilterrc = {
|
||||
"General"."DefaultWebShortcut" = "duckduckgo";
|
||||
"General"."EnableWebShortcuts" = true;
|
||||
"General"."KeywordDelimiter" = ":";
|
||||
"General"."PreferredWebShortcuts" = "wikit,wikipedia,youtube";
|
||||
"General"."UsePreferredWebShortcutsOnly" = false;
|
||||
};
|
||||
kwalletrc = {
|
||||
"Wallet"."First Use" = false;
|
||||
};
|
||||
kwinrc = {
|
||||
"Activities/LastVirtualDesktop"."0fb1d4a1-96e6-4dfd-909a-04b78f1e3845" = "534ab25b-3c39-4cf8-888d-78309c6868bd";
|
||||
"Desktops"."Id_1" = "6d7bbeb1-6928-4f68-8c3b-7cbf20b2e2ce";
|
||||
"Desktops"."Id_2" = "a140557c-77d1-4905-9d1c-3f7308b7aebd";
|
||||
"Desktops"."Id_3" = "4e659bf3-b29d-4155-99fd-65c56d9fcf32";
|
||||
"Desktops"."Id_4" = "534ab25b-3c39-4cf8-888d-78309c6868bd";
|
||||
"Desktops"."Id_5" = "b9a709de-7e37-4778-ba03-5177c976b4c4";
|
||||
"Desktops"."Name_1" = "一";
|
||||
"Desktops"."Name_2" = "二";
|
||||
"Desktops"."Name_3" = "三";
|
||||
"Desktops"."Name_4" = "四";
|
||||
"Desktops"."Name_5" = "五";
|
||||
"Desktops"."Number" = 5;
|
||||
"Desktops"."Rows" = 1;
|
||||
"Tiling"."padding" = 4;
|
||||
"Tiling/07e6a9d6-7fe8-5aca-aa4d-fed79e8d901d"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
"Tiling/a4b67978-379f-5845-bb4c-dd8369bff4ca"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||
"Wayland"."InputMethod[$e]" = "/run/current-system/sw/share/applications/org.fcitx.Fcitx5.desktop";
|
||||
"Wayland"."InputMethod\x5b$e\x5d" = "/run/current-system/sw/share/applications/org.fcitx.Fcitx5.desktop";
|
||||
"Wayland"."VirtualKeyboardEnabled" = true;
|
||||
"Xwayland"."Scale" = 1.5;
|
||||
};
|
||||
kxkbrc = {
|
||||
"Layout"."DisplayNames" = "";
|
||||
"Layout"."LayoutList" = "jp";
|
||||
"Layout"."Model" = "jp106";
|
||||
"Layout"."Options" = "ctrl:swapcaps";
|
||||
"Layout"."ResetOldOptions" = true;
|
||||
"Layout"."Use" = true;
|
||||
"Layout"."VariantList" = "";
|
||||
};
|
||||
plasma-localerc = {
|
||||
"Formats"."LANG" = "en_US.UTF-8";
|
||||
"Formats"."LC_TIME" = "C";
|
||||
};
|
||||
plasmanotifyrc = {
|
||||
"Applications/firefox"."Seen" = true;
|
||||
"Applications/thunderbird"."Seen" = true;
|
||||
};
|
||||
plasmarc = {
|
||||
"Wallpapers"."usersWallpapers" = "/home/chase/nixos-config/home/wallpaper.jpg";
|
||||
};
|
||||
spectaclerc = {
|
||||
"GuiConfig"."captureMode" = 0;
|
||||
"ImageSave"."translatedScreenshotsFolder" = "Screenshots";
|
||||
"VideoSave"."translatedScreencastsFolder" = "Screencasts";
|
||||
};
|
||||
};
|
||||
dataFile = {
|
||||
workspace = {
|
||||
wallpaper = "/home/chase/nix-config/home/wallpaper.jpg";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@@ -6,7 +6,7 @@
|
||||
|
||||
set -e
|
||||
|
||||
pushd ~/nixos-config
|
||||
pushd ~/nix-config
|
||||
|
||||
if git diff --quiet; then
|
||||
echo "No changes detected, exiting."
|
||||
|
36
home/scripts/nixupdate
Executable file
36
home/scripts/nixupdate
Executable file
@@ -0,0 +1,36 @@
|
||||
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# NixOS update and rebuild script
|
||||
#
|
||||
# original by 0atman: https://gist.github.com/0atman/1a5133b842f929ba4c1e195ee67599d5
|
||||
|
||||
set -e
|
||||
|
||||
pushd ~/nix-config
|
||||
|
||||
nix flake update
|
||||
|
||||
if git diff --quiet; then
|
||||
echo "No changes detected, exiting."
|
||||
popd
|
||||
exit 0
|
||||
fi
|
||||
|
||||
alejandra . &>/dev/null \
|
||||
|| ( alejandra . ; echo "formatting failed!" && exit 1)
|
||||
|
||||
git diff -U0
|
||||
|
||||
echo "NixOS rebuilding..."
|
||||
|
||||
sudo nixos-rebuild switch --flake . &>nixos-switch.log \
|
||||
|| (cat nixos-switch.log | grep --color error && exit 1)
|
||||
|
||||
current=$(nixos-rebuild list-generations | grep current)
|
||||
|
||||
git commit -am "$current"
|
||||
|
||||
popd
|
||||
|
||||
notify-send -e "NixOS Rebuilt OK!" --icon=software-update-available
|
123
home/waybar.css
Normal file
123
home/waybar.css
Normal file
@@ -0,0 +1,123 @@
|
||||
* {
|
||||
font-family: "JetBrainsMono Nerd Font";
|
||||
font-size: 12pt;
|
||||
font-weight: bold;
|
||||
border-radius: 8px;
|
||||
transition-property: background-color;
|
||||
transition-duration: 0.5s;
|
||||
}
|
||||
@keyframes blink_red {
|
||||
to {
|
||||
background-color: rgb(242, 143, 173);
|
||||
color: rgb(26, 24, 38);
|
||||
}
|
||||
}
|
||||
.warning, .critical, .urgent {
|
||||
animation-name: blink_red;
|
||||
animation-duration: 1s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
window#waybar {
|
||||
background-color: transparent;
|
||||
}
|
||||
window > box {
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
margin-top: 5px;
|
||||
background-color: #1e1e2a;
|
||||
padding: 3px;
|
||||
padding-left:8px;
|
||||
border: 2px none #33ccff;
|
||||
}
|
||||
#workspaces {
|
||||
padding-left: 0px;
|
||||
padding-right: 4px;
|
||||
}
|
||||
#workspaces button {
|
||||
padding-top: 5px;
|
||||
padding-bottom: 5px;
|
||||
padding-left: 6px;
|
||||
padding-right: 6px;
|
||||
}
|
||||
#workspaces button.active {
|
||||
background-color: rgb(181, 232, 224);
|
||||
color: rgb(26, 24, 38);
|
||||
}
|
||||
#workspaces button.urgent {
|
||||
color: rgb(26, 24, 38);
|
||||
}
|
||||
#workspaces button:hover {
|
||||
background-color: rgb(248, 189, 150);
|
||||
color: rgb(26, 24, 38);
|
||||
}
|
||||
tooltip {
|
||||
background: rgb(48, 45, 65);
|
||||
}
|
||||
tooltip label {
|
||||
color: rgb(217, 224, 238);
|
||||
}
|
||||
#custom-launcher {
|
||||
font-size: 20px;
|
||||
padding-left: 8px;
|
||||
padding-right: 6px;
|
||||
color: #7ebae4;
|
||||
}
|
||||
#mode, #clock, #memory, #temperature,#cpu,#mpd, #custom-wall, #temperature, #backlight, #pulseaudio, #network, #battery, #custom-powermenu, #custom-cava-internal {
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
/* #mode { */
|
||||
/* margin-left: 10px; */
|
||||
/* background-color: rgb(248, 189, 150); */
|
||||
/* color: rgb(26, 24, 38); */
|
||||
/* } */
|
||||
#memory {
|
||||
color: rgb(181, 232, 224);
|
||||
}
|
||||
#cpu {
|
||||
color: rgb(245, 194, 231);
|
||||
}
|
||||
#clock {
|
||||
color: rgb(217, 224, 238);
|
||||
}
|
||||
/* #idle_inhibitor {
|
||||
color: rgb(221, 182, 242);
|
||||
}*/
|
||||
#custom-wall {
|
||||
color: #33ccff;
|
||||
}
|
||||
#temperature {
|
||||
color: rgb(150, 205, 251);
|
||||
}
|
||||
#backlight {
|
||||
color: rgb(248, 189, 150);
|
||||
}
|
||||
#pulseaudio {
|
||||
color: rgb(245, 224, 220);
|
||||
}
|
||||
#network {
|
||||
color: #ABE9B3;
|
||||
}
|
||||
#network.disconnected {
|
||||
color: rgb(255, 255, 255);
|
||||
}
|
||||
#custom-powermenu {
|
||||
color: rgb(242, 143, 173);
|
||||
padding-right: 8px;
|
||||
}
|
||||
#tray {
|
||||
padding-right: 8px;
|
||||
padding-left: 10px;
|
||||
}
|
||||
#mpd.paused {
|
||||
color: #414868;
|
||||
font-style: italic;
|
||||
}
|
||||
#mpd.stopped {
|
||||
background: transparent;
|
||||
}
|
||||
#mpd {
|
||||
color: #c0caf5;
|
||||
}
|
49
hosts/anzu/configuration.nix
Normal file
49
hosts/anzu/configuration.nix
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
../../nixos/desktop.nix
|
||||
../../nixos/plasma.nix
|
||||
../../nixos/hypr.nix
|
||||
];
|
||||
|
||||
hardware.graphics = {
|
||||
extraPackages = with pkgs; [
|
||||
amdvlk
|
||||
];
|
||||
extraPackages32 = with pkgs; [
|
||||
driversi686Linux.amdvlk
|
||||
];
|
||||
};
|
||||
|
||||
services.xserver.videoDrivers = [ "amdgpu" ];
|
||||
|
||||
boot.loader.systemd-boot.enable = lib.mkForce false;
|
||||
|
||||
boot.lanzaboote = {
|
||||
enable = true;
|
||||
pkiBundle = "/var/lib/sbctl";
|
||||
};
|
||||
|
||||
# Mount SMB share
|
||||
fileSystems."/mnt/share" = {
|
||||
device = "//haruko/share";
|
||||
fsType = "cifs";
|
||||
options = let
|
||||
automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s,user,users";
|
||||
credentials = "${config.sops.templates."smb-credentials".path}";
|
||||
in ["${automount_opts},credentials=${credentials},uid=1000,gid=100"];
|
||||
};
|
||||
|
||||
networking.wg-quick.interfaces = {
|
||||
wg0 = {
|
||||
configFile = "/home/chase/wg0.conf";
|
||||
};
|
||||
};
|
||||
|
||||
system.stateVersion = "24.11";
|
||||
}
|
@@ -1,7 +1,6 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}: {
|
||||
@@ -21,7 +20,7 @@
|
||||
boot.initrd.luks.devices."luks-9527937d-2d02-4feb-9a16-c9c417b33d0d".device = "/dev/disk/by-uuid/9527937d-2d02-4feb-9a16-c9c417b33d0d";
|
||||
|
||||
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "usb_storage" "sd_mod"];
|
||||
boot.initrd.kernelModules = [];
|
||||
boot.initrd.kernelModules = ["amdgpu"];
|
||||
boot.kernelModules = ["kvm-amd"];
|
||||
boot.extraModulePackages = [];
|
||||
|
||||
@@ -40,15 +39,6 @@
|
||||
{device = "/dev/disk/by-uuid/dd48a14e-2c90-465b-81a3-661d31ebf39f";}
|
||||
];
|
||||
|
||||
# Mount SMB share
|
||||
fileSystems."/mnt/share" = {
|
||||
device = "//haruko/share";
|
||||
fsType = "cifs";
|
||||
options = let
|
||||
automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s,user,users";
|
||||
in ["${automount_opts},credentials=/etc/nixos/smb-secrets,uid=1000,gid=100"];
|
||||
};
|
||||
|
||||
# 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
|
||||
@@ -59,4 +49,6 @@
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
|
||||
services.xserver.xkb.options = "ctrl:swapcaps";
|
||||
}
|
||||
|
13
hosts/anzu/home.nix
Normal file
13
hosts/anzu/home.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
../../home/desktop.nix
|
||||
../../home/hypr.nix
|
||||
../../home/plasma.nix
|
||||
];
|
||||
|
||||
home.stateVersion = "24.11";
|
||||
}
|
22
hosts/hosts.nix
Normal file
22
hosts/hosts.nix
Normal file
@@ -0,0 +1,22 @@
|
||||
let
|
||||
user = "chase";
|
||||
in {
|
||||
anzu = {
|
||||
hostname = "anzu";
|
||||
dir = "anzu";
|
||||
arch = "x86_64-Linux";
|
||||
user = user;
|
||||
};
|
||||
ichigo = {
|
||||
hostname = "ichigo";
|
||||
dir = "ichigo";
|
||||
arch = "x86_64-Linux";
|
||||
user = user;
|
||||
};
|
||||
kuromi = {
|
||||
hostname = "kuromi";
|
||||
dir = "kuromi";
|
||||
arch = "x86_64-Linux";
|
||||
user = user;
|
||||
};
|
||||
}
|
35
hosts/ichigo/configuration.nix
Normal file
35
hosts/ichigo/configuration.nix
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
../../nixos/desktop.nix
|
||||
../../nixos/plasma.nix
|
||||
../../nixos/hypr.nix
|
||||
];
|
||||
|
||||
hardware.graphics = {
|
||||
extraPackages = with pkgs; [
|
||||
amdvlk
|
||||
];
|
||||
extraPackages32 = with pkgs; [
|
||||
driversi686Linux.amdvlk
|
||||
];
|
||||
};
|
||||
|
||||
services.xserver.videoDrivers = [ "amdgpu" ];
|
||||
|
||||
# Mount SMB share
|
||||
fileSystems."/mnt/share" = {
|
||||
device = "//haruko/share";
|
||||
fsType = "cifs";
|
||||
options = let
|
||||
automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s,user,users";
|
||||
credentials = "${config.sops.templates."smb-credentials".path}";
|
||||
in ["${automount_opts},credentials=${credentials},uid=1000,gid=100"];
|
||||
};
|
||||
|
||||
system.stateVersion = "24.11";
|
||||
}
|
@@ -1,10 +1,6 @@
|
||||
# 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,
|
||||
...
|
||||
}: {
|
||||
@@ -15,8 +11,15 @@
|
||||
### this machine ###
|
||||
networking.hostName = "ichigo";
|
||||
|
||||
### hardware config ###
|
||||
|
||||
# encrypted root and swap
|
||||
boot.initrd.luks.devices."luks-d90b3a3d-bb12-4a29-a2b4-99487f0ff1ca".device = "/dev/disk/by-uuid/d90b3a3d-bb12-4a29-a2b4-99487f0ff1ca";
|
||||
|
||||
boot.initrd.luks.devices."luks-877310a4-b495-4060-9ee6-e7a841862f22".device = "/dev/disk/by-uuid/877310a4-b495-4060-9ee6-e7a841862f22";
|
||||
|
||||
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"];
|
||||
boot.initrd.kernelModules = [];
|
||||
boot.initrd.kernelModules = ["amdgpu"];
|
||||
boot.kernelModules = ["kvm-amd"];
|
||||
boot.extraModulePackages = [];
|
||||
|
||||
@@ -25,10 +28,6 @@
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
boot.initrd.luks.devices."luks-d90b3a3d-bb12-4a29-a2b4-99487f0ff1ca".device = "/dev/disk/by-uuid/d90b3a3d-bb12-4a29-a2b4-99487f0ff1ca";
|
||||
|
||||
boot.initrd.luks.devices."luks-877310a4-b495-4060-9ee6-e7a841862f22".device = "/dev/disk/by-uuid/877310a4-b495-4060-9ee6-e7a841862f22";
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/AA5A-18AD";
|
||||
fsType = "vfat";
|
||||
@@ -39,15 +38,6 @@
|
||||
{device = "/dev/disk/by-uuid/752114b2-c304-4670-aba8-7288954605bc";}
|
||||
];
|
||||
|
||||
# Mount SMB share
|
||||
fileSystems."/mnt/share" = {
|
||||
device = "//haruko/share";
|
||||
fsType = "cifs";
|
||||
options = let
|
||||
automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s,user,users";
|
||||
in ["${automount_opts},credentials=/etc/nixos/smb-secrets,uid=1000,gid=100"];
|
||||
};
|
||||
|
||||
# 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
|
||||
|
13
hosts/ichigo/home.nix
Normal file
13
hosts/ichigo/home.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
../../home/desktop.nix
|
||||
../../home/hypr.nix
|
||||
../../home/plasma.nix
|
||||
];
|
||||
|
||||
home.stateVersion = "24.11";
|
||||
}
|
18
hosts/kuromi/configuration.nix
Normal file
18
hosts/kuromi/configuration.nix
Normal file
@@ -0,0 +1,18 @@
|
||||
# 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,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
# Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
../../nixos/base.nix
|
||||
];
|
||||
|
||||
networking.hostName = "kuromi";
|
||||
|
||||
system.stateVersion = "25.05";
|
||||
}
|
44
hosts/kuromi/hardware-configuration.nix
Normal file
44
hosts/kuromi/hardware-configuration.nix
Normal file
@@ -0,0 +1,44 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = ["xhci_pci" "nvme" "usbhid" "usb_storage" "sd_mod" "sdhci_pci"];
|
||||
boot.initrd.kernelModules = [];
|
||||
boot.kernelModules = ["kvm-intel"];
|
||||
boot.extraModulePackages = [];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/612f8704-c020-4188-85a7-27127e9b9ff2";
|
||||
fsType = "btrfs";
|
||||
options = ["subvol=@"];
|
||||
};
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/2211-57BE";
|
||||
fsType = "vfat";
|
||||
options = ["fmask=0077" "dmask=0077"];
|
||||
};
|
||||
|
||||
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.eno0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
11
hosts/kuromi/home.nix
Normal file
11
hosts/kuromi/home.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
../../home/base.nix
|
||||
];
|
||||
|
||||
home.stateVersion = "25.05";
|
||||
}
|
244
nixos/base.nix
Normal file
244
nixos/base.nix
Normal file
@@ -0,0 +1,244 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
# Bootloader.
|
||||
boot.loader = {
|
||||
efi.canTouchEfiVariables = true;
|
||||
systemd-boot = {
|
||||
enable = true;
|
||||
configurationLimit = 5;
|
||||
};
|
||||
};
|
||||
|
||||
# Garbage collection
|
||||
nix = {
|
||||
gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 1w";
|
||||
};
|
||||
nixPath = ["nixpkgs=${inputs.nixpkgs}"];
|
||||
settings = {
|
||||
auto-optimise-store = true;
|
||||
download-buffer-size = 524288000;
|
||||
experimental-features = ["nix-command" "flakes"];
|
||||
};
|
||||
};
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "America/New_York";
|
||||
|
||||
# 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_GB.UTF-8";
|
||||
};
|
||||
|
||||
# Configure keymap
|
||||
console.keyMap = lib.mkDefault "jp106";
|
||||
|
||||
services.xserver.xkb = {
|
||||
layout = lib.mkDefault "jp";
|
||||
model = lib.mkDefault "jp106";
|
||||
};
|
||||
|
||||
# Allow power management
|
||||
powerManagement.enable = true;
|
||||
|
||||
# NetworkManager
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# Catppuccin
|
||||
catppuccin = {
|
||||
enable = true;
|
||||
flavor = "mocha";
|
||||
};
|
||||
|
||||
# Android debug tools
|
||||
programs.adb.enable = true;
|
||||
|
||||
# Bash config
|
||||
programs.bash = {
|
||||
blesh.enable = true;
|
||||
};
|
||||
|
||||
# zsh config
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
enableBashCompletion = true;
|
||||
autosuggestions.enable = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
};
|
||||
|
||||
# Define a user account
|
||||
users.users.chase = {
|
||||
isNormalUser = true;
|
||||
description = "Chase";
|
||||
extraGroups = [
|
||||
"adbusers"
|
||||
"audio"
|
||||
"cdrom"
|
||||
"dialout"
|
||||
"kvm"
|
||||
"networkmanager"
|
||||
"tss"
|
||||
"video"
|
||||
"wheel"
|
||||
];
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFSQX+s8Krl312DcnUtoEWOA2silcUnt5URtyVZz8Yek"
|
||||
];
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
|
||||
# Install git and enable cache
|
||||
programs.git = {
|
||||
enable = true;
|
||||
config = {
|
||||
init = {
|
||||
defaultBranch = "main";
|
||||
};
|
||||
credential = {
|
||||
helper = "cache --timeout 21600";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Install Neovim
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
configure = {
|
||||
customRC = ''
|
||||
set autoindent
|
||||
set number relativenumber
|
||||
set tabstop=4
|
||||
colorscheme catppuccin-mocha
|
||||
'';
|
||||
packages.myVimPackage = with pkgs.vimPlugins; {
|
||||
start = [catppuccin-nvim];
|
||||
};
|
||||
};
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
};
|
||||
|
||||
# ssh agent
|
||||
programs.gnupg.agent.enable = true;
|
||||
|
||||
programs.ssh = {
|
||||
enableAskPassword = false;
|
||||
};
|
||||
|
||||
sops = {
|
||||
defaultSopsFile = ../secrets.yaml;
|
||||
validateSopsFiles = false;
|
||||
age = {
|
||||
sshKeyPaths = ["/etc/ssh/ssh_host_ed25519_key"];
|
||||
keyFile = "/var/lib/sops-nix/key.txt";
|
||||
generateKey = true;
|
||||
};
|
||||
secrets = {
|
||||
"smb-username" = {};
|
||||
"smb-password" = {};
|
||||
};
|
||||
templates = {
|
||||
"smb-credentials".content = ''
|
||||
username=${config.sops.placeholder.smb-username}
|
||||
password=${config.sops.placeholder.smb-password}
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
# List packages installed in system profile.
|
||||
environment.systemPackages = with pkgs; [
|
||||
alejandra
|
||||
bitwarden-cli
|
||||
cifs-utils
|
||||
flashrom
|
||||
gcc
|
||||
nixd
|
||||
pam_u2f
|
||||
pciutils
|
||||
python3
|
||||
qemu
|
||||
rustup
|
||||
sbctl
|
||||
sops
|
||||
usbutils
|
||||
wget
|
||||
wireguard-tools
|
||||
yubikey-manager
|
||||
];
|
||||
|
||||
security.pam = lib.optionalAttrs pkgs.stdenv.isLinux {
|
||||
sshAgentAuth.enable = true;
|
||||
u2f = {
|
||||
enable = true;
|
||||
settings = {
|
||||
cue = false;
|
||||
authFile = "~/.config/Yubico/u2f_keys";
|
||||
};
|
||||
};
|
||||
services = {
|
||||
login.u2fAuth = true;
|
||||
sudo = {
|
||||
u2fAuth = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
security.tpm2 = {
|
||||
enable = true;
|
||||
pkcs11.enable = true;
|
||||
tctiEnvironment.enable = true;
|
||||
};
|
||||
|
||||
services.fstrim.enable = lib.mkDefault true;
|
||||
|
||||
# Firmware updates
|
||||
services.fwupd.enable = true;
|
||||
|
||||
# Enable the OpenSSH daemon.
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
settings = {
|
||||
PermitRootLogin = "no";
|
||||
PasswordAuthentication = false;
|
||||
KbdInteractiveAuthentication = false;
|
||||
};
|
||||
};
|
||||
|
||||
services.pcscd.enable = true;
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = true;
|
||||
|
||||
services.udev = {
|
||||
packages = with pkgs; [
|
||||
yubikey-personalization
|
||||
];
|
||||
extraRules = ''
|
||||
SUBSYSTEM=="usb", ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0202", MODE="0666", GROUP="dialout"
|
||||
'';
|
||||
};
|
||||
|
||||
services.yubikey-agent.enable = true;
|
||||
}
|
119
nixos/desktop.nix
Normal file
119
nixos/desktop.nix
Normal file
@@ -0,0 +1,119 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./base.nix
|
||||
];
|
||||
# Use latest stable kernel
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
|
||||
# Enable Bluetooth
|
||||
hardware.bluetooth.enable = true;
|
||||
|
||||
# Enable SDDM
|
||||
services.xserver.enable = true;
|
||||
services.displayManager.sddm = {
|
||||
enable = true;
|
||||
package = lib.mkDefault pkgs.kdePackages.sddm;
|
||||
extraPackages = [pkgs.kdePackages.sddm-kcm];
|
||||
wayland.enable = true;
|
||||
enableHidpi = true;
|
||||
};
|
||||
|
||||
# Catppuccin
|
||||
catppuccin = {
|
||||
sddm = {
|
||||
enable = true;
|
||||
background = "/home/chase/nix-config/home/wallpaper.jpg";
|
||||
flavor = "mocha";
|
||||
font = "IBM Plex Sans";
|
||||
fontSize = "11";
|
||||
};
|
||||
};
|
||||
|
||||
# Enable graphics
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
};
|
||||
|
||||
i18n.inputMethod = {
|
||||
type = "fcitx5";
|
||||
enable = true;
|
||||
fcitx5.addons = with pkgs; [
|
||||
fcitx5-mozc
|
||||
kdePackages.fcitx5-qt
|
||||
];
|
||||
fcitx5.waylandFrontend = true;
|
||||
};
|
||||
|
||||
# Fonts
|
||||
fonts = {
|
||||
packages = with pkgs; [
|
||||
corefonts
|
||||
font-awesome
|
||||
hachimarupop
|
||||
ibm-plex
|
||||
kanji-stroke-order-font
|
||||
liberation_ttf
|
||||
nerd-fonts.blex-mono
|
||||
nerd-fonts.jetbrains-mono
|
||||
noto-fonts
|
||||
noto-fonts-cjk-sans
|
||||
noto-fonts-emoji
|
||||
];
|
||||
fontconfig = {
|
||||
defaultFonts = {
|
||||
serif = ["IBM Plex Serif"];
|
||||
sansSerif = ["IBM Plex Sans"];
|
||||
monospace = ["BlexMono Nerd Font"];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Enable sound with pipewire.
|
||||
services.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
# Install firefox
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
nativeMessagingHosts.packages = [pkgs.firefoxpwa];
|
||||
policies = {
|
||||
DisableTelemetry = true;
|
||||
DisableFirefoxAccounts = true;
|
||||
DisableFirefoxStudies = true;
|
||||
DisablePocket = true;
|
||||
};
|
||||
};
|
||||
|
||||
# Install Steam
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true;
|
||||
dedicatedServer.openFirewall = true;
|
||||
localNetworkGameTransfers.openFirewall = true;
|
||||
};
|
||||
|
||||
# List packages installed in system profile.
|
||||
environment.systemPackages = with pkgs; [
|
||||
bitwarden-desktop
|
||||
firefoxpwa
|
||||
kdePackages.dolphin
|
||||
protonup-qt
|
||||
qpwgraph
|
||||
yubioath-flutter
|
||||
];
|
||||
|
||||
services.fprintd.enable = true;
|
||||
}
|
39
nixos/hypr.nix
Normal file
39
nixos/hypr.nix
Normal file
@@ -0,0 +1,39 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
# Cachix for Hyprland
|
||||
nix.settings = {
|
||||
substituters = ["https://hyprland.cachix.org"];
|
||||
trusted-substituters = ["https://hyprland.cachix.org"];
|
||||
trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="];
|
||||
};
|
||||
|
||||
# Hyprland
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
||||
portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
||||
withUWSM = true;
|
||||
xwayland.enable = true;
|
||||
};
|
||||
|
||||
programs.hyprlock.enable = true;
|
||||
|
||||
programs.uwsm = {
|
||||
enable = true;
|
||||
waylandCompositors = {
|
||||
hyprland = {
|
||||
prettyName = "Hyprland";
|
||||
comment = "Hyprland compositor managed by UWSM";
|
||||
binPath = "/run/current-system/sw/bin/Hyprland";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
security.pam.services.hyprlock = {};
|
||||
|
||||
services.hypridle.enable = true;
|
||||
}
|
24
nixos/plasma.nix
Normal file
24
nixos/plasma.nix
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
environment.plasma6.excludePackages = with pkgs.kdePackages; [
|
||||
elisa
|
||||
kate
|
||||
];
|
||||
|
||||
# List packages installed in system profile.
|
||||
environment.systemPackages = with pkgs; [
|
||||
(catppuccin-kde.override {
|
||||
flavour = ["mocha"];
|
||||
accents = [
|
||||
"blue"
|
||||
"lavender"
|
||||
"pink"
|
||||
"sapphire"
|
||||
];
|
||||
winDecStyles = ["classic"];
|
||||
})
|
||||
];
|
||||
}
|
44
secrets.yaml
Normal file
44
secrets.yaml
Normal file
@@ -0,0 +1,44 @@
|
||||
smb-username: ENC[AES256_GCM,data:pFkBi+c=,iv:JSRlBHBGMNZVZZuQaSHj/cpXOaxRV3xkG/OaTOjFDZc=,tag:ALMWCi+gAqt2HtSKGGaS5Q==,type:str]
|
||||
smb-password: ENC[AES256_GCM,data:LgxYSOZhj5DwvTwAoF0cLJezxYQ=,iv:is3PWEgvWmbFc39npdjD9qYrMo76wWAczZlo7LCoNf0=,tag:vanjCeI01KaL5STCSwxM/g==,type:str]
|
||||
sops:
|
||||
age:
|
||||
- recipient: age19uwxm2gynhjl9m90gckrkh76m9hjut44ak6d8969y4swhz8ypyeqvfcaas
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvT1pKc1VrVllURWozOXd1
|
||||
NURBT1haRlBkeHB3eTVabmhWMEI0a1JySDFjCkU3Ry9QaEpRTllaZlRZUllJOUtF
|
||||
U0ZtOFJRbmEwYnFwK1JRNkJQQXlVVnMKLS0tIGRBZTloenV2YkhGMllUSEx5UGlk
|
||||
emcvaGhuRStCRFBPY29UdmhPeUhqWDQKkabWErK0qtwVnWza7UfhmX9yfIZJC1XV
|
||||
MOsdxHryfilLFHhzOI2UGM2dzKlukNvHwAuJmoRkwjIj8Ugj1sU3nA==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1wdjujpvc2zd0g592a9gqa7qzz4pcans8m0tyq3m6eq9np9a3lg2s8kxf3h
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQbDBPVUFTcERIaEh4ZHp3
|
||||
aW1GQXlVQThyeDdVYzNYNHlqcFRIYVNpa2xNCmpMeml4REpsRDl1SU1pSm92SU1V
|
||||
OXNhUklhTGxRMTRTV3dlbENsTVlXTVEKLS0tICtzU3ZteFNCOEo3NmVwNE1ydHVM
|
||||
dFpJMXowc3h1MHdBYVZLc0Y5bXZoTUkKFs67JKeHhZiK2tAu7Poh4Fou5QYm8HXK
|
||||
r09HeCuiIfxjRuT1t8nRvRALdzOG6xNuPULs6aCdjpa/d0EvnXyw+w==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1hpcyetyl0yrwxy0geem6z2u2kwl4hmckur7pnaaxwaylf8ata9vsv8j3wh
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmb3oyWFBvdXIxRkNtL0xs
|
||||
aGNzQ0RERXB3TGFUOVBTQm5wOUlodkZiMXlvClFXR1Z0ZHpFa2RyUlYzL01Bb2RN
|
||||
UGZNREVqRU9ZRVhMQ3VMYUNKcUI4WTgKLS0tIDB5RmkzSTdwSTVUQjJMbklxeFM5
|
||||
M0s3QmI4MzNiVy8yNGE2TG01Z1paOWcKIGj+ofrO443CiK1n3J291KwnKqmG99+M
|
||||
1mYfFrvpx/yVTzt2Pk5ioTC+hzDWUHy1gR8vQTVTjGkhU8cBCzNR/w==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1culqt965xgweu5h6menrppf7eatq7at04z0n52t365f0nvlv043su5t2yl
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWOVQ2ZzhZT0pqZjIzQXp1
|
||||
dzBuVEcyYS9MSW8vdnFPT2p4NzJBZ3g2K0c4CmpqSC9XRFBsdUJsM1phckQ4aW5D
|
||||
RFZmTFJMSkR5VE9idzJMZGZzajFBWFEKLS0tIElnTXg5aUNQVE5qOGlxd00zY0NX
|
||||
ZGRES0oyeGZSRHBQU0RQNzNZd1VBZTAKhRXixVaTXhZrTmntLGaC9WIm/Ylm3tp7
|
||||
xQxZA8n5PRtqENa5Cj3jqJQS2gmwy5kixO9U6IHzMWntBE7zr/hKrQ==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2025-06-08T19:43:47Z"
|
||||
mac: ENC[AES256_GCM,data:9YpgBrJwWhz2utNPldpIU/ylaN2QfkSj1LvWa8sISSnuXvsBsZ8a+oNzuGDd5+Q1pSYtoiBt6viqZn65wp8x+kb9ZMJdsWoZZG2U1b3rHUsadOYarvwMVDoQ5TZFFjEOyzyCgT7ln6v1rfAKwL5LJ3Kjv6SRIb9dK51sDsVijhQ=,iv:yTlxgZoOdB7pu5iZKP+q1cXbDsTT5HgsWo4tkix8948=,tag:qJbiq+Fayx5L9V7to1ijvQ==,type:str]
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.10.2
|
Reference in New Issue
Block a user