Merge branch 'master' of github.com:pagedMov/nixos-config
This commit is contained in:
@@ -35,6 +35,11 @@ Currently there are two complete system configurations available. These are:
|
|||||||
* **Mercury** - My laptop configuration. My laptop is a pretty weak machine so this configuration is stripped down a bit.
|
* **Mercury** - My laptop configuration. My laptop is a pretty weak machine so this configuration is stripped down a bit.
|
||||||
The 'Xenon' config is my server configuration and is highly unlikely to be of use to anyone but me, as the setup has some very specific use-cases.
|
The 'Xenon' config is my server configuration and is highly unlikely to be of use to anyone but me, as the setup has some very specific use-cases.
|
||||||
|
|
||||||
|
## Modules
|
||||||
|
|
||||||
|
This config uses custom modules for the home-manager and system configurations. Basically every part of the configuration can be toggled using an option, and some configs have extra options as well.
|
||||||
|
All of the options declared in these modules can be found in the documentation under docs/options
|
||||||
|
|
||||||
## Scripts
|
## Scripts
|
||||||
|
|
||||||
```chpaper``` - opens a fzf window with filenames and previews of images in $FLAKEPATH/assets/wallpapers. Picking one replaces the existing wallpaper path in $FLAKEPATH/flake.nix with the one you chose.
|
```chpaper``` - opens a fzf window with filenames and previews of images in $FLAKEPATH/assets/wallpapers. Picking one replaces the existing wallpaper path in $FLAKEPATH/flake.nix with the one you chose.
|
||||||
|
|||||||
BIN
assets/sound/gitcheckout.wav
Normal file
BIN
assets/sound/gitcheckout.wav
Normal file
Binary file not shown.
230
docs/options/home_options.md
Normal file
230
docs/options/home_options.md
Normal file
@@ -0,0 +1,230 @@
|
|||||||
|
# Home-Manager Options
|
||||||
|
|
||||||
|
## homeFiles.enable
|
||||||
|
- Enables my declared files
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/files/neofetch.nix'
|
||||||
|
|
||||||
|
## hyprlandConfig.enable
|
||||||
|
- Enables my custom hyprland configuration
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/environment/hyprland.nix'
|
||||||
|
|
||||||
|
## autojumpConfig.enable
|
||||||
|
- Enables my autojump options
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/programs/autojump.nix'
|
||||||
|
|
||||||
|
## stylixHomeConfig.enable
|
||||||
|
- Enables my stylix home-manager options
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/environment/stylix.nix'
|
||||||
|
|
||||||
|
## waybarConfig.enable
|
||||||
|
- Enables my custom waybar configuration
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/environment/waybar.nix'
|
||||||
|
|
||||||
|
## gtkConfig.enable
|
||||||
|
- Enables my gtk configuration
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/environment/gtk.nix'
|
||||||
|
|
||||||
|
## spicetifyConfig.enable
|
||||||
|
- Enables my spicetify configuration
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/environment/spicetify.nix'
|
||||||
|
|
||||||
|
## starshipConfig.enable
|
||||||
|
- Enables my starship configuration
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/environment/starship.nix'
|
||||||
|
|
||||||
|
## btopConfig.enable
|
||||||
|
- Enables my btop configuration
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/programs/btop.nix'
|
||||||
|
|
||||||
|
## swayncConfig.enable
|
||||||
|
- Enables my swaync configuration
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/environment/swaync.nix'
|
||||||
|
|
||||||
|
## userPkgs.enable
|
||||||
|
- Enables my default user packages
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/environment/userpkgs.nix'
|
||||||
|
|
||||||
|
## cavaConfig.enable
|
||||||
|
- Enables my cava configuration
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/programs/cava.nix'
|
||||||
|
|
||||||
|
## ezaConfig.enable
|
||||||
|
- Enables my eza configuration
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/programs/eza.nix'
|
||||||
|
|
||||||
|
## firefoxConfig.enable
|
||||||
|
- Enables my firefox configuration
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/programs/firefox.nix'
|
||||||
|
|
||||||
|
## fuzzelConfig.enable
|
||||||
|
- Enables my fuzzel configuration
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/programs/fuzzel.nix'
|
||||||
|
|
||||||
|
## fzfConfig.enable
|
||||||
|
- Enables my fzf configuration
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/programs/fzf.nix'
|
||||||
|
|
||||||
|
## gitConfig.enable
|
||||||
|
- Enables my git configuration
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/programs/git.nix'
|
||||||
|
|
||||||
|
## kittyConfig.enable
|
||||||
|
- Enables my kitty configuration
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/programs/kitty.nix'
|
||||||
|
|
||||||
|
## yaziConfig.enable
|
||||||
|
- Enables my yazi configuration
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/programs/yazi.nix'
|
||||||
|
|
||||||
|
## zshConfig.enable
|
||||||
|
- Enables my zsh configuration
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/environment/zshell.nix'
|
||||||
|
|
||||||
|
## passConfig.enable
|
||||||
|
- Enables my password-store configuration
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/programs/password-store.nix'
|
||||||
|
|
||||||
|
## batConfig.enable
|
||||||
|
- Enables my bat configuration
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/programs/bat.nix'
|
||||||
|
|
||||||
|
## movScripts.enable
|
||||||
|
- Enables my custom script binaries
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/scripts/default.nix'
|
||||||
|
|
||||||
|
## movScripts.commandScripts
|
||||||
|
### enable
|
||||||
|
- Enables my custom command scripts
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/scripts/default.nix'
|
||||||
|
### invoke.enable
|
||||||
|
- Enables the invoke command
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/scripts/default.nix'
|
||||||
|
### runbg.enable
|
||||||
|
- Enables the runbg command
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/scripts/default.nix'
|
||||||
|
### splash.enable
|
||||||
|
- Enables the splash command
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/scripts/default.nix'
|
||||||
|
### toolbelt.enable
|
||||||
|
- Enables the toolbelt command
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/scripts/default.nix'
|
||||||
|
### viconf.enable
|
||||||
|
- Enables the viconf command
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/scripts/default.nix'
|
||||||
|
|
||||||
|
## movScripts.hyprlandControls
|
||||||
|
### enable
|
||||||
|
- Enables my hyprland control shortcut scripts
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/scripts/default.nix'
|
||||||
|
### chpaper.enable
|
||||||
|
- Enables the chpaper command
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/scripts/default.nix'
|
||||||
|
### scheck.enable
|
||||||
|
- Enables the scheck command
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/scripts/default.nix'
|
||||||
|
### chscheme.enable
|
||||||
|
- Enables the chscheme command
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/scripts/default.nix'
|
||||||
|
### keyring.enable
|
||||||
|
- Enables the keyring command
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/scripts/default.nix'
|
||||||
|
### moveonscreen.enable
|
||||||
|
- Enables the moveonscreen command
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/scripts/default.nix'
|
||||||
|
### switchmon.enable
|
||||||
|
- Enables the switchmon command
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/scripts/default.nix'
|
||||||
|
|
||||||
|
## movScripts.nixShortcuts
|
||||||
|
### enable
|
||||||
|
- Enables my NixOS aliases
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/scripts/default.nix'
|
||||||
|
### garbage-collect.enable
|
||||||
|
- Enables the garbage-collect command
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/scripts/default.nix'
|
||||||
|
### nsp.enable
|
||||||
|
- Enables the nsp command
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/scripts/default.nix'
|
||||||
|
### rebuild.enable
|
||||||
|
- Enables the rebuild command
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: true
|
||||||
|
- Defined in 'modules/home/scripts/default.nix'
|
||||||
79
docs/options/system_options.md
Normal file
79
docs/options/system_options.md
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
# System Options
|
||||||
|
|
||||||
|
## networkModule.enable
|
||||||
|
- Enables my network configuration
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: false
|
||||||
|
- Defined in 'modules/sys/hardware/network.nix'
|
||||||
|
|
||||||
|
## nixSettings.enable
|
||||||
|
- Enables my NixOS settings
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: false
|
||||||
|
- Defined in 'modules/sys/environment/nix.nix'
|
||||||
|
|
||||||
|
## bootLoader.enable
|
||||||
|
- Enables my bootloader settings
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: false
|
||||||
|
- Defined in 'modules/sys/hardware/bootloader.nix'
|
||||||
|
|
||||||
|
## issue.enable
|
||||||
|
- Enables my custom /etc/issue tty splash screen
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: false
|
||||||
|
- Defined in 'modules/sys/environment/issue.nix'
|
||||||
|
|
||||||
|
## sddmConfig.enable
|
||||||
|
- Enables my catppuccin-sddm configuration
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: false
|
||||||
|
- Defined in 'modules/sys/environment/sddm.nix'
|
||||||
|
|
||||||
|
## stylixConfig.enable
|
||||||
|
- Enables stylix for system theming
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: false
|
||||||
|
- Defined in 'modules/sys/environment/stylix.nix'
|
||||||
|
|
||||||
|
## gamingPkgs.enable
|
||||||
|
- Enables gaming-related packages
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: false
|
||||||
|
- Defined in 'modules/sys/software/gaming/gaming_pkgs.nix'
|
||||||
|
|
||||||
|
## steamConfig.enable
|
||||||
|
- Enables my Steam configuration
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: false
|
||||||
|
- Defined in 'modules/sys/software/gaming/steam.nix'
|
||||||
|
|
||||||
|
## sysPkgs.enable
|
||||||
|
- Installs my default system packages
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: false
|
||||||
|
- Defined in 'modules/sys/software/packages.nix'
|
||||||
|
|
||||||
|
## sysProgs.enable
|
||||||
|
- Enables
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: false
|
||||||
|
- Defined in 'modules/sys/software/programs.nix'
|
||||||
|
|
||||||
|
## sysServices.enable
|
||||||
|
- Description
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: false
|
||||||
|
- Defined in 'modules/sys/software/services.nix'
|
||||||
|
|
||||||
|
## virtConfig.enable
|
||||||
|
- Description
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: false
|
||||||
|
- Defined in 'modules/sys/software/virtualization.nix'
|
||||||
|
|
||||||
|
## powerProfiles.enable
|
||||||
|
- Description
|
||||||
|
- Type: Boolean
|
||||||
|
- Default: false
|
||||||
|
- Defined in 'modules/sys/hardware/powerprofiles.nix'
|
||||||
32
flake.lock
generated
32
flake.lock
generated
@@ -356,11 +356,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730016908,
|
"lastModified": 1730490306,
|
||||||
"narHash": "sha256-bFCxJco7d8IgmjfNExNz9knP8wvwbXU4s/d53KOK6U0=",
|
"narHash": "sha256-AvCVDswOUM9D368HxYD25RsSKp+5o0L0/JHADjLoD38=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "e83414058edd339148dc142a8437edb9450574c8",
|
"rev": "1743615b61c7285976f85b303a36cdf88a556503",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -472,11 +472,11 @@
|
|||||||
"xdph": "xdph"
|
"xdph": "xdph"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730373668,
|
"lastModified": 1730499652,
|
||||||
"narHash": "sha256-8p5JTUGFuhnyuF9lD98ioeE3zYaCmsizLWk4Y3KszAI=",
|
"narHash": "sha256-De3YRKpowtm15xN7hK0PdBpu96wwSyQE+qFoq9Gi6lM=",
|
||||||
"ref": "refs/heads/main",
|
"ref": "refs/heads/main",
|
||||||
"rev": "93b4478e70af6ffb08a4a66a6d0364c3296db296",
|
"rev": "32b18179dd789cde948c97eb3c2ebbdd6af36bf7",
|
||||||
"revCount": 5396,
|
"revCount": 5402,
|
||||||
"submodules": true,
|
"submodules": true,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/hyprwm/Hyprland"
|
"url": "https://github.com/hyprwm/Hyprland"
|
||||||
@@ -822,11 +822,11 @@
|
|||||||
"treefmt-nix": "treefmt-nix"
|
"treefmt-nix": "treefmt-nix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730368298,
|
"lastModified": 1730499477,
|
||||||
"narHash": "sha256-5z4pDqRSSovXPPtN1BNEJOkGoCd/XSYuCWh8AsvoTio=",
|
"narHash": "sha256-olt0Sx4alDxv3ko9BgbV3SsE2KQ/Tf0/Az1Fr9s2Y6U=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixvim",
|
"repo": "nixvim",
|
||||||
"rev": "42ea1626cb002fa759a6b1e2841bfc80a4e59615",
|
"rev": "356896f58dde22ee16481b7c954e340dceec340d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -837,11 +837,11 @@
|
|||||||
},
|
},
|
||||||
"nur": {
|
"nur": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730411166,
|
"lastModified": 1730540878,
|
||||||
"narHash": "sha256-o1JcjEnWhnxkkKXYN1gQeO53RUsQExFsgMOJ/FzuFX0=",
|
"narHash": "sha256-JYfoVW5lsfv4bo87U6mqbC3Jh+EBImU5iUsHJlOkyAI=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NUR",
|
"repo": "NUR",
|
||||||
"rev": "761c6a7d6859126681d206126ba26ec58306d068",
|
"rev": "57df81c2bcabc503171defb232a0e11710ddaaf9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -918,11 +918,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730348281,
|
"lastModified": 1730521028,
|
||||||
"narHash": "sha256-c5lP7JFqWlrEScvPXKxg7Z2+f5wdlznYZPjEa5jmEkw=",
|
"narHash": "sha256-vZtg4J+jOADDKgS+s821PeJiTXfawan8mzX3JM3xjqc=",
|
||||||
"owner": "gerg-l",
|
"owner": "gerg-l",
|
||||||
"repo": "spicetify-nix",
|
"repo": "spicetify-nix",
|
||||||
"rev": "22d250d6a4dcc492a2d8836d3f2c901a09e7cb76",
|
"rev": "191323d81e19efa0be5071e17263851e62f35685",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
@@ -67,6 +67,8 @@
|
|||||||
) {}
|
) {}
|
||||||
colors;
|
colors;
|
||||||
in {
|
in {
|
||||||
|
homeManagerModules.default = ./modules/home;
|
||||||
|
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
oganesson = nixpkgs.lib.nixosSystem {
|
oganesson = nixpkgs.lib.nixosSystem {
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
@@ -75,7 +77,8 @@
|
|||||||
};
|
};
|
||||||
inherit system;
|
inherit system;
|
||||||
modules = [
|
modules = [
|
||||||
./hosts/desktop
|
./hosts/desktop/config.nix
|
||||||
|
./modules/sys
|
||||||
stylix.nixosModules.stylix
|
stylix.nixosModules.stylix
|
||||||
nixvim.nixosModules.nixvim
|
nixvim.nixosModules.nixvim
|
||||||
nur.nixosModules.nur
|
nur.nixosModules.nur
|
||||||
@@ -88,7 +91,8 @@
|
|||||||
inherit self inputs scheme wallpaper username;
|
inherit self inputs scheme wallpaper username;
|
||||||
};
|
};
|
||||||
modules = [
|
modules = [
|
||||||
./hosts/laptop
|
./hosts/laptop/config.nix
|
||||||
|
./modules/sys
|
||||||
stylix.nixosModules.stylix
|
stylix.nixosModules.stylix
|
||||||
nixvim.nixosModules.nixvim
|
nixvim.nixosModules.nixvim
|
||||||
nur.nixosModules.nur
|
nur.nixosModules.nur
|
||||||
@@ -102,6 +106,7 @@
|
|||||||
};
|
};
|
||||||
modules = [
|
modules = [
|
||||||
./hosts/server
|
./hosts/server
|
||||||
|
./modules
|
||||||
stylix.nixosModules.stylix
|
stylix.nixosModules.stylix
|
||||||
nixvim.nixosModules.nixvim
|
nixvim.nixosModules.nixvim
|
||||||
nur.nixosModules.nur
|
nur.nixosModules.nur
|
||||||
|
|||||||
@@ -1,6 +1,25 @@
|
|||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
system.stateVersion = "24.05";
|
system.stateVersion = "24.05";
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
imports = [
|
||||||
|
./hardware.nix
|
||||||
|
./home.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
# My module options
|
||||||
|
networkModule.enable = true;
|
||||||
|
nixSettings.enable = true;
|
||||||
|
bootLoader.enable = true;
|
||||||
|
issue.enable = true;
|
||||||
|
sddmConfig.enable = true;
|
||||||
|
stylixConfig.enable = true;
|
||||||
|
gamingPkgs.enable = true;
|
||||||
|
steamConfig.enable = true;
|
||||||
|
sysPkgs.enable = true;
|
||||||
|
sysProgs.enable = true;
|
||||||
|
sysServices.enable = true;
|
||||||
|
virtConfig.enable = true;
|
||||||
|
|
||||||
nix = {
|
nix = {
|
||||||
settings = {
|
settings = {
|
||||||
auto-optimise-store = true;
|
auto-optimise-store = true;
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
host,
|
|
||||||
inputs,
|
|
||||||
username,
|
|
||||||
nur,
|
|
||||||
pkgs,
|
|
||||||
self,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = [
|
|
||||||
./../../modules/sys/configuration.nix
|
|
||||||
./hardware.nix
|
|
||||||
./settings.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
96
hosts/desktop/home.nix
Normal file
96
hosts/desktop/home.nix
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
{
|
||||||
|
host,
|
||||||
|
pkgs,
|
||||||
|
self,
|
||||||
|
inputs,
|
||||||
|
username,
|
||||||
|
wallpaper,
|
||||||
|
lib,
|
||||||
|
scheme,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
nur = config.nur;
|
||||||
|
in {
|
||||||
|
imports = [inputs.home-manager.nixosModules.home-manager];
|
||||||
|
home-manager = {
|
||||||
|
useUserPackages = true;
|
||||||
|
useGlobalPkgs = true;
|
||||||
|
backupFileExtension = "backup";
|
||||||
|
extraSpecialArgs = {inherit self inputs host wallpaper scheme username nur;};
|
||||||
|
users = {
|
||||||
|
${username} = {
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
imports = [
|
||||||
|
inputs.spicetify-nix.homeManagerModules.default
|
||||||
|
inputs.self.outputs.homeManagerModules.default
|
||||||
|
];
|
||||||
|
|
||||||
|
# My custom home-manager modules
|
||||||
|
|
||||||
|
# modules/home/files
|
||||||
|
homeFiles.enable = true;
|
||||||
|
|
||||||
|
# modules/home/environment
|
||||||
|
hyprlandConfig.enable = true;
|
||||||
|
autojumpConfig.enable = true;
|
||||||
|
stylixHomeConfig.enable = true;
|
||||||
|
waybarConfig.enable = true;
|
||||||
|
gtkConfig.enable = true;
|
||||||
|
spicetifyConfig.enable = true;
|
||||||
|
starshipConfig.enable = true;
|
||||||
|
|
||||||
|
# modules/home/programs
|
||||||
|
btopConfig.enable = true;
|
||||||
|
swayncConfig.enable = true;
|
||||||
|
userPkgs.enable = true;
|
||||||
|
cavaConfig.enable = true;
|
||||||
|
ezaConfig.enable = true;
|
||||||
|
firefoxConfig.enable = true;
|
||||||
|
fuzzelConfig.enable = true;
|
||||||
|
fzfConfig.enable = true;
|
||||||
|
gitConfig.enable = true;
|
||||||
|
kittyConfig.enable = true;
|
||||||
|
yaziConfig.enable = true;
|
||||||
|
zshConfig.enable = true;
|
||||||
|
passConfig.enable = true;
|
||||||
|
batConfig.enable = true;
|
||||||
|
|
||||||
|
# modules/home/scripts
|
||||||
|
movScripts.enable = true;
|
||||||
|
movScripts.commandScripts.enable = true;
|
||||||
|
movScripts.hyprlandControls.enable = true;
|
||||||
|
movScripts.nixShortcuts.enable = true;
|
||||||
|
|
||||||
|
dconf.settings = lib.mkIf config.virtConfig.enable {
|
||||||
|
"org/virt-manager/virt-manager/connections" = {
|
||||||
|
autoconnect = ["qemu:///system"];
|
||||||
|
uris = ["qemu:///system"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
home = {
|
||||||
|
username = "${username}";
|
||||||
|
homeDirectory = "/home/${username}";
|
||||||
|
stateVersion = "24.05";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
users = {
|
||||||
|
groups.persist = {};
|
||||||
|
users = {
|
||||||
|
root.initialPassword = "1234";
|
||||||
|
${username} = {
|
||||||
|
isNormalUser = true;
|
||||||
|
initialPassword = "1234";
|
||||||
|
shell = pkgs.zsh;
|
||||||
|
extraGroups = ["wheel" "persist" "libvirtd"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
security.sudo.extraConfig = ''
|
||||||
|
${username} ALL=(ALL) NOPASSWD: /etc/profiles/per-user/${username}/bin/rebuild
|
||||||
|
'';
|
||||||
|
nix.settings.allowed-users = ["${username}"];
|
||||||
|
}
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
boot = {
|
|
||||||
kernelModules = ["acpi_call"];
|
|
||||||
extraModulePackages = with config.boot.kernelPackages;
|
|
||||||
[
|
|
||||||
acpi_call
|
|
||||||
cpupower
|
|
||||||
]
|
|
||||||
++ [pkgs.cpupower-gui];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
47
hosts/laptop/config.nix
Normal file
47
hosts/laptop/config.nix
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
{pkgs, config, ...}: {
|
||||||
|
system.stateVersion = "24.05";
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
imports = [
|
||||||
|
./hardware.nix
|
||||||
|
./home.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
powerProfiles.enable = true;
|
||||||
|
boot = {
|
||||||
|
kernelModules = ["acpi_call"];
|
||||||
|
extraModulePackages = with config.boot.kernelPackages;
|
||||||
|
[
|
||||||
|
acpi_call
|
||||||
|
cpupower
|
||||||
|
]
|
||||||
|
++ [pkgs.cpupower-gui];
|
||||||
|
};
|
||||||
|
|
||||||
|
networkModule.enable = true;
|
||||||
|
nixSettings.enable = true;
|
||||||
|
bootLoader.enable = true;
|
||||||
|
issue.enable = true;
|
||||||
|
sddmConfig.enable = true;
|
||||||
|
stylixConfig.enable = true;
|
||||||
|
sysPkgs.enable = true;
|
||||||
|
sysProgs.enable = true;
|
||||||
|
sysServices.enable = true;
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
variables = {
|
||||||
|
PATH = "${pkgs.clang-tools}/bin:$PATH";
|
||||||
|
};
|
||||||
|
shells = with pkgs; [
|
||||||
|
zsh
|
||||||
|
bash
|
||||||
|
];
|
||||||
|
systemPackages = with pkgs; [
|
||||||
|
acpi
|
||||||
|
brightnessctl
|
||||||
|
cpupower-gui
|
||||||
|
powertop
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
{
|
|
||||||
host,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
self,
|
|
||||||
username,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = [
|
|
||||||
./../../modules/sys/configuration.nix
|
|
||||||
./hardware.nix
|
|
||||||
./boot.nix
|
|
||||||
./services.nix
|
|
||||||
./environment.nix
|
|
||||||
./settings.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
environment = {
|
|
||||||
variables = {
|
|
||||||
PATH = "${pkgs.clang-tools}/bin:$PATH";
|
|
||||||
};
|
|
||||||
shells = with pkgs; [
|
|
||||||
zsh
|
|
||||||
bash
|
|
||||||
];
|
|
||||||
systemPackages = with pkgs; [
|
|
||||||
acpi
|
|
||||||
brightnessctl
|
|
||||||
cpupower-gui
|
|
||||||
powertop
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
|
||||||
# and may be overwritten by future invocations. Please make changes
|
|
||||||
# to /etc/nixos/configuration.nix instead.
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
modulesPath,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = [
|
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"];
|
|
||||||
boot.initrd.kernelModules = [];
|
|
||||||
boot.kernelModules = ["kvm-amd"];
|
|
||||||
boot.extraModulePackages = [];
|
|
||||||
|
|
||||||
fileSystems."/" = {
|
|
||||||
device = "/dev/disk/by-partlabel/disk-main-root";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/nix" = {
|
|
||||||
device = "/dev/disk/by-partlabel/disk-main-nix";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/boot" = {
|
|
||||||
device = "/dev/disk/by-partlabel/disk-main-ESP";
|
|
||||||
fsType = "vfat";
|
|
||||||
options = ["fmask=0077" "dmask=0077"];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/home" = {
|
|
||||||
device = "/dev/disk/by-partlabel/disk-main-home";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
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.enp14s0.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.wlp15s0.useDHCP = lib.mkDefault true;
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
}
|
|
||||||
96
hosts/laptop/home.nix
Normal file
96
hosts/laptop/home.nix
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
{
|
||||||
|
host,
|
||||||
|
pkgs,
|
||||||
|
self,
|
||||||
|
inputs,
|
||||||
|
username,
|
||||||
|
wallpaper,
|
||||||
|
lib,
|
||||||
|
scheme,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
nur = config.nur;
|
||||||
|
in {
|
||||||
|
imports = [inputs.home-manager.nixosModules.home-manager];
|
||||||
|
home-manager = {
|
||||||
|
useUserPackages = true;
|
||||||
|
useGlobalPkgs = true;
|
||||||
|
backupFileExtension = "backup";
|
||||||
|
extraSpecialArgs = {inherit self inputs host wallpaper scheme username nur;};
|
||||||
|
users = {
|
||||||
|
${username} = {
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
imports = [
|
||||||
|
inputs.spicetify-nix.homeManagerModules.default
|
||||||
|
inputs.self.outputs.homeManagerModules.default
|
||||||
|
];
|
||||||
|
|
||||||
|
# My custom home-manager modules
|
||||||
|
|
||||||
|
# modules/home/files
|
||||||
|
homeFiles.enable = true;
|
||||||
|
|
||||||
|
# modules/home/environment
|
||||||
|
hyprlandConfig.enable = true;
|
||||||
|
autojumpConfig.enable = true;
|
||||||
|
stylixHomeConfig.enable = true;
|
||||||
|
waybarConfig.enable = true;
|
||||||
|
gtkConfig.enable = true;
|
||||||
|
spicetifyConfig.enable = true;
|
||||||
|
starshipConfig.enable = true;
|
||||||
|
|
||||||
|
# modules/home/programs
|
||||||
|
btopConfig.enable = true;
|
||||||
|
swayncConfig.enable = true;
|
||||||
|
userPkgs.enable = true;
|
||||||
|
cavaConfig.enable = true;
|
||||||
|
ezaConfig.enable = true;
|
||||||
|
firefoxConfig.enable = true;
|
||||||
|
fuzzelConfig.enable = true;
|
||||||
|
fzfConfig.enable = true;
|
||||||
|
gitConfig.enable = true;
|
||||||
|
kittyConfig.enable = true;
|
||||||
|
yaziConfig.enable = true;
|
||||||
|
zshConfig.enable = true;
|
||||||
|
passConfig.enable = true;
|
||||||
|
batConfig.enable = true;
|
||||||
|
|
||||||
|
# modules/home/scripts
|
||||||
|
movScripts.enable = true;
|
||||||
|
movScripts.commandScripts.enable = true;
|
||||||
|
movScripts.hyprlandControls.enable = true;
|
||||||
|
movScripts.nixShortcuts.enable = true;
|
||||||
|
|
||||||
|
dconf.settings = lib.mkIf config.virtConfig.enable {
|
||||||
|
"org/virt-manager/virt-manager/connections" = {
|
||||||
|
autoconnect = ["qemu:///system"];
|
||||||
|
uris = ["qemu:///system"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
home = {
|
||||||
|
username = "${username}";
|
||||||
|
homeDirectory = "/home/${username}";
|
||||||
|
stateVersion = "24.05";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
users = {
|
||||||
|
groups.persist = {};
|
||||||
|
users = {
|
||||||
|
root.initialPassword = "1234";
|
||||||
|
${username} = {
|
||||||
|
isNormalUser = true;
|
||||||
|
initialPassword = "1234";
|
||||||
|
shell = pkgs.zsh;
|
||||||
|
extraGroups = ["wheel" "persist" "libvirtd"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
security.sudo.extraConfig = ''
|
||||||
|
${username} ALL=(ALL) NOPASSWD: /etc/profiles/per-user/${username}/bin/rebuild
|
||||||
|
'';
|
||||||
|
nix.settings.allowed-users = ["${username}"];
|
||||||
|
}
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
services = {
|
|
||||||
keyd = {
|
|
||||||
enable = true;
|
|
||||||
keyboards.default = {
|
|
||||||
ids = ["*"];
|
|
||||||
settings.main = {
|
|
||||||
capslock = "esc";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
power-profiles-daemon.enable = true;
|
|
||||||
|
|
||||||
upower = {
|
|
||||||
enable = true;
|
|
||||||
percentageLow = 20;
|
|
||||||
percentageCritical = 5;
|
|
||||||
percentageAction = 3;
|
|
||||||
criticalPowerAction = "PowerOff";
|
|
||||||
};
|
|
||||||
|
|
||||||
tlp.settings = {
|
|
||||||
CPU_ENERGY_PERF_POLICY_ON_AC = "power";
|
|
||||||
CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
|
|
||||||
|
|
||||||
CPU_BOOST_ON_AC = 1;
|
|
||||||
CPU_BOOST_ON_BAT = 1;
|
|
||||||
|
|
||||||
CPU_HWP_DYN_BOOST_ON_AC = 1;
|
|
||||||
CPU_HWP_DYN_BOOST_ON_BAT = 1;
|
|
||||||
|
|
||||||
PLATFORM_PROFILE_ON_AC = "performance";
|
|
||||||
PLATFORM_PROFILE_ON_BAT = "performance";
|
|
||||||
|
|
||||||
INTEL_GPU_MIN_FREQ_ON_AC = 500;
|
|
||||||
INTEL_GPU_MIN_FREQ_ON_BAT = 500;
|
|
||||||
# INTEL_GPU_MAX_FREQ_ON_AC=0;
|
|
||||||
# INTEL_GPU_MAX_FREQ_ON_BAT=0;
|
|
||||||
# INTEL_GPU_BOOST_FREQ_ON_AC=0;
|
|
||||||
# INTEL_GPU_BOOST_FREQ_ON_BAT=0;
|
|
||||||
|
|
||||||
PCIE_ASPM_ON_AC = "default";
|
|
||||||
PCIE_ASPM_ON_BAT = "powersupersave";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
system.stateVersion = "24.05";
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
nix = {
|
|
||||||
settings = {
|
|
||||||
auto-optimise-store = true;
|
|
||||||
experimental-features = ["nix-command" "flakes"];
|
|
||||||
substituters = ["https://nix-gaming.cachix.org"];
|
|
||||||
};
|
|
||||||
gc = {
|
|
||||||
automatic = true;
|
|
||||||
dates = "weekly";
|
|
||||||
options = "--delete-older-than 7d";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
time.timeZone = "America/New_York";
|
|
||||||
i18n.defaultLocale = "en_US.UTF-8";
|
|
||||||
|
|
||||||
powerManagement.cpuFreqGovernor = "performance";
|
|
||||||
}
|
|
||||||
51
modules/home/default.nix
Normal file
51
modules/home/default.nix
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
{
|
||||||
|
inputs,
|
||||||
|
nixpkgs,
|
||||||
|
config,
|
||||||
|
self,
|
||||||
|
username,
|
||||||
|
host,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
./programs
|
||||||
|
./environment
|
||||||
|
./scripts
|
||||||
|
./files.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
# ./files
|
||||||
|
homeFiles.enable = lib.mkDefault false;
|
||||||
|
|
||||||
|
# ./environment
|
||||||
|
hyprlandConfig.enable = lib.mkDefault false;
|
||||||
|
autojumpConfig.enable = lib.mkDefault false;
|
||||||
|
stylixHomeConfig.enable = lib.mkDefault false;
|
||||||
|
waybarConfig.enable = lib.mkDefault false;
|
||||||
|
gtkConfig.enable = lib.mkDefault false;
|
||||||
|
spicetifyConfig.enable = lib.mkDefault false;
|
||||||
|
starshipConfig.enable = lib.mkDefault false;
|
||||||
|
|
||||||
|
# ./programs
|
||||||
|
btopConfig.enable = lib.mkDefault false;
|
||||||
|
swayncConfig.enable = lib.mkDefault false;
|
||||||
|
userPkgs.enable = lib.mkDefault false;
|
||||||
|
cavaConfig.enable = lib.mkDefault false;
|
||||||
|
ezaConfig.enable = lib.mkDefault false;
|
||||||
|
firefoxConfig.enable = lib.mkDefault false;
|
||||||
|
fuzzelConfig.enable = lib.mkDefault false;
|
||||||
|
fzfConfig.enable = lib.mkDefault false;
|
||||||
|
gitConfig.enable = lib.mkDefault false;
|
||||||
|
kittyConfig.enable = lib.mkDefault false;
|
||||||
|
yaziConfig.enable = lib.mkDefault false;
|
||||||
|
zshConfig.enable = lib.mkDefault false;
|
||||||
|
passConfig.enable = lib.mkDefault false;
|
||||||
|
batConfig.enable = lib.mkDefault false;
|
||||||
|
|
||||||
|
# ./scripts
|
||||||
|
movScripts.enable = lib.mkDefault false;
|
||||||
|
movScripts.commandScripts.enable = lib.mkDefault false;
|
||||||
|
movScripts.hyprlandControls.enable = lib.mkDefault false;
|
||||||
|
movScripts.nixShortcuts.enable = lib.mkDefault false;
|
||||||
|
}
|
||||||
@@ -9,14 +9,15 @@
|
|||||||
home-manager,
|
home-manager,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports =
|
imports = [
|
||||||
[(import ./gtk.nix)]
|
./gtk.nix
|
||||||
++ [(import ./spicetify.nix)]
|
./spicetify.nix
|
||||||
++ [(import ./stylix.nix)]
|
./stylix.nix
|
||||||
++ [(import ./starship.nix)]
|
./starship.nix
|
||||||
++ [(import ./userpkgs.nix)]
|
./userpkgs.nix
|
||||||
++ [(import ./zshell.nix)]
|
./zshell.nix
|
||||||
++ [(import ./swaync.nix)]
|
./swaync.nix
|
||||||
++ [(import ./waybar)]
|
./hyprland.nix
|
||||||
++ [(import ./hyprland)];
|
./waybar.nix
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,35 +1,36 @@
|
|||||||
{
|
{lib, config, pkgs, ... }: {
|
||||||
pkgs,
|
options = {
|
||||||
config,
|
gtkConfig.enable = lib.mkEnableOption "enable my gtk options";
|
||||||
...
|
};
|
||||||
}: {
|
config = lib.mkIf config.gtkConfig.enable {
|
||||||
fonts.fontconfig.enable = true;
|
fonts.fontconfig.enable = true;
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
(nerdfonts.override {
|
(nerdfonts.override {
|
||||||
fonts = [
|
fonts = [
|
||||||
"JetBrainsMono"
|
"JetBrainsMono"
|
||||||
"CascadiaCode"
|
"CascadiaCode"
|
||||||
"NerdFontsSymbolsOnly"
|
"NerdFontsSymbolsOnly"
|
||||||
];
|
];
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
gtk = {
|
gtk = {
|
||||||
enable = true;
|
enable = true;
|
||||||
iconTheme = {
|
iconTheme = {
|
||||||
name = "Papirus-Dark";
|
name = "Papirus-Dark";
|
||||||
package = pkgs.papirus-nord.override {
|
package = pkgs.papirus-nord.override {
|
||||||
accent = "frostblue4";
|
accent = "frostblue4";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
#cursorTheme = {
|
||||||
|
# name = "Bibata-Modern-Ice";
|
||||||
|
# package = pkgs.bibata-cursors;
|
||||||
|
# size = 16;
|
||||||
|
#};
|
||||||
|
#font = {
|
||||||
|
# name = "Iosevka Nerd Font";
|
||||||
|
# package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
|
||||||
|
#};
|
||||||
};
|
};
|
||||||
#cursorTheme = {
|
|
||||||
# name = "Bibata-Modern-Ice";
|
|
||||||
# package = pkgs.bibata-cursors;
|
|
||||||
# size = 16;
|
|
||||||
#};
|
|
||||||
#font = {
|
|
||||||
# name = "Iosevka Nerd Font";
|
|
||||||
# package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
|
|
||||||
#};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
242
modules/home/environment/hyprland.nix
Normal file
242
modules/home/environment/hyprland.nix
Normal file
@@ -0,0 +1,242 @@
|
|||||||
|
{inputs, pkgs, lib, config, username, host, ... }: let
|
||||||
|
desktop = host == "oganesson";
|
||||||
|
screenshot_bind =
|
||||||
|
if desktop
|
||||||
|
then [
|
||||||
|
# My laptop does not have a printscreen button
|
||||||
|
"super, print, exec, grimblast copy area"
|
||||||
|
]
|
||||||
|
else [
|
||||||
|
"super, insert, exec, grimblast copy area"
|
||||||
|
];
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
hyprlandConfig.enable = lib.mkEnableOption "enables my hyprland config";
|
||||||
|
};
|
||||||
|
config = lib.mkIf config.hyprlandConfig.enable {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
swaybg
|
||||||
|
inputs.hypr-contrib.packages.${pkgs.system}.grimblast
|
||||||
|
hyprpicker
|
||||||
|
grim
|
||||||
|
slurp
|
||||||
|
wl-clip-persist
|
||||||
|
wf-recorder
|
||||||
|
glib
|
||||||
|
wayland
|
||||||
|
direnv
|
||||||
|
];
|
||||||
|
systemd.user.targets.hyprland-session.Unit.Wants = ["xdg-desktop-autostart.target"];
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
xwayland = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
systemd.enable = true;
|
||||||
|
};
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
settings = {
|
||||||
|
monitor =
|
||||||
|
if (host == "oganesson")
|
||||||
|
then [
|
||||||
|
"DP-1, 1920x1080@144, 1920x0, 1"
|
||||||
|
"HDMI-A-1, 1920x1080, 0x0, 1"
|
||||||
|
]
|
||||||
|
else [
|
||||||
|
"eDP-1, 1600x900, 0x0, 1"
|
||||||
|
];
|
||||||
|
|
||||||
|
exec-once = [
|
||||||
|
"waybar &"
|
||||||
|
"swaync &"
|
||||||
|
"wl-paste --type text --watch cliphist store &"
|
||||||
|
"wl-paste --type image --watch cliphist store &"
|
||||||
|
"wl-clip-persist --clipboard both"
|
||||||
|
"systemctl --user import-environment &"
|
||||||
|
"hash dbus-update-activation-environment 2>/dev/null &"
|
||||||
|
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &"
|
||||||
|
"aplay /home/${username}/sound/sys/login.wav &"
|
||||||
|
];
|
||||||
|
|
||||||
|
workspace =
|
||||||
|
if desktop
|
||||||
|
then [
|
||||||
|
"1,persistent=true,monitor:HDMI-A-1"
|
||||||
|
"2,persistent=true,monitor:HDMI-A-1"
|
||||||
|
"3,persistent=true,monitor:HDMI-A-1"
|
||||||
|
"4,persistent=true,monitor:DP-1"
|
||||||
|
"5,persistent=true,monitor:DP-1"
|
||||||
|
"6,persistent=true,monitor:DP-1"
|
||||||
|
]
|
||||||
|
else [
|
||||||
|
"1,persistent=true,monitor:eDP-1"
|
||||||
|
"2,persistent=true,monitor:eDP-1"
|
||||||
|
"3,persistent=true,monitor:eDP-1"
|
||||||
|
"4,persistent=true,monitor:eDP-1"
|
||||||
|
];
|
||||||
|
|
||||||
|
env = [
|
||||||
|
"XDG_CONFIG_HOME,$HOME/.config"
|
||||||
|
"XDG_DATA_HOME,$HOME/.local/share"
|
||||||
|
"XDG_CACHE_HOME,$HOME/.cache"
|
||||||
|
];
|
||||||
|
layerrule = [
|
||||||
|
"blur,waybar"
|
||||||
|
"ignorezero,waybar"
|
||||||
|
"blur,launcher"
|
||||||
|
];
|
||||||
|
windowrule = [
|
||||||
|
"opacity 0.8,nemo"
|
||||||
|
];
|
||||||
|
|
||||||
|
input = {
|
||||||
|
kb_layout = "us";
|
||||||
|
follow_mouse = 1;
|
||||||
|
accel_profile = "flat";
|
||||||
|
force_no_accel = 1;
|
||||||
|
sensitivity = 0;
|
||||||
|
};
|
||||||
|
general = {
|
||||||
|
"$mainMod" = "super";
|
||||||
|
layout = "dwindle";
|
||||||
|
gaps_in = 4;
|
||||||
|
gaps_out = 8;
|
||||||
|
border_size = 2;
|
||||||
|
#"col.inactive_border" = "0xff${scheme.base01}";
|
||||||
|
#"col.active_border" = "0xff${scheme.base0F}";
|
||||||
|
border_part_of_window = false;
|
||||||
|
no_border_on_floating = false;
|
||||||
|
};
|
||||||
|
misc = {
|
||||||
|
disable_autoreload = true;
|
||||||
|
disable_hyprland_logo = true;
|
||||||
|
always_follow_on_dnd = true;
|
||||||
|
layers_hog_keyboard_focus = true;
|
||||||
|
animate_manual_resizes = false;
|
||||||
|
enable_swallow = true;
|
||||||
|
focus_on_activate = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
dwindle = {
|
||||||
|
no_gaps_when_only = false;
|
||||||
|
force_split = 0;
|
||||||
|
special_scale_factor = 1.0;
|
||||||
|
split_width_multiplier = 1.0;
|
||||||
|
use_active_for_splits = true;
|
||||||
|
pseudotile = "yes";
|
||||||
|
preserve_split = "yes";
|
||||||
|
};
|
||||||
|
|
||||||
|
master = {
|
||||||
|
new_status = "master";
|
||||||
|
special_scale_factor = 1;
|
||||||
|
no_gaps_when_only = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
decoration = {
|
||||||
|
rounding = 7;
|
||||||
|
# active_opacity = 0.90;
|
||||||
|
# inactive_opacity = 0.90;
|
||||||
|
# fullscreen_opacity = 1.0;
|
||||||
|
|
||||||
|
blur = {
|
||||||
|
enabled = true;
|
||||||
|
# size = 1;
|
||||||
|
# passes = 1;
|
||||||
|
size = 4;
|
||||||
|
passes = 1;
|
||||||
|
brightness = 1;
|
||||||
|
contrast = 1.400;
|
||||||
|
ignore_opacity = true;
|
||||||
|
popups = true;
|
||||||
|
noise = 0;
|
||||||
|
new_optimizations = true;
|
||||||
|
xray = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
drop_shadow = true;
|
||||||
|
|
||||||
|
shadow_ignore_window = true;
|
||||||
|
shadow_offset = "0 2";
|
||||||
|
shadow_range = 20;
|
||||||
|
shadow_render_power = 3;
|
||||||
|
};
|
||||||
|
|
||||||
|
animations = {
|
||||||
|
enabled = true;
|
||||||
|
|
||||||
|
bezier = [
|
||||||
|
"fluent_decel, 0, 0.2, 0.4, 1"
|
||||||
|
"easeOutCirc, 0, 0.55, 0.45, 1"
|
||||||
|
"easeOutCubic, 0.33, 1, 0.68, 1"
|
||||||
|
"easeinoutsine, 0.37, 0, 0.63, 1"
|
||||||
|
];
|
||||||
|
|
||||||
|
animation = [
|
||||||
|
# Windows
|
||||||
|
"windowsIn, 1, 3, easeOutCubic, popin 30%" # window open
|
||||||
|
"windowsOut, 1, 3, fluent_decel, popin 70%" # window close.
|
||||||
|
"windowsMove, 1, 2, easeinoutsine, slide" # everything in between, moving, dragging, resizing.
|
||||||
|
|
||||||
|
# Fade
|
||||||
|
"fadeIn, 1, 3, easeOutCubic" # fade in (open) -> layers and windows
|
||||||
|
"fadeOut, 1, 2, easeOutCubic" # fade out (close) -> layers and windows
|
||||||
|
"fadeSwitch, 0, 1, easeOutCirc" # fade on changing activewindow and its opacity
|
||||||
|
"fadeShadow, 1, 10, easeOutCirc" # fade on changing activewindow for shadows
|
||||||
|
"fadeDim, 1, 4, fluent_decel" # the easing of the dimming of inactive windows
|
||||||
|
"border, 1, 2.7, easeOutCirc" # for animating the border's color switch speed
|
||||||
|
"borderangle, 1, 30, fluent_decel, once" # for animating the border's gradient angle - styles: once (default), loop
|
||||||
|
"workspaces, 1, 4, easeOutCubic, fade" # styles: slide, slidevert, fade, slidefade, slidefadevert
|
||||||
|
];
|
||||||
|
|
||||||
|
bind =
|
||||||
|
[
|
||||||
|
"super, up, exec, pactl set-sink-volume @default_sink@ +10%"
|
||||||
|
"super, down, exec, pactl set-sink-volume @default_sink@ -10%"
|
||||||
|
"super, t, exec, swaync-client -t -sw"
|
||||||
|
"super, a, exec, firefox"
|
||||||
|
"super, q, exec, kitty --title Kitty"
|
||||||
|
"super shift, q, exec, [float;size 40% 30%;move onscreen cursor -50% -50%] kitty --title Kitty"
|
||||||
|
"super, c, killactive,"
|
||||||
|
"super, e, exec, nemo"
|
||||||
|
"super, p, exec, [float;size 40% 25%;move onscreen cursor] [ ! -f /tmp/keyringfile ] && kitty toolbelt"
|
||||||
|
"super shift, m, exit,"
|
||||||
|
"super, m, exec, fuzzel"
|
||||||
|
"super, r, exec, neovide"
|
||||||
|
"super, b, togglesplit, # dwindle"
|
||||||
|
"super, f, togglefloating"
|
||||||
|
"super, g, fullscreen"
|
||||||
|
"super, h, movefocus, l"
|
||||||
|
"super, l, movefocus, r"
|
||||||
|
"super, k, movefocus, u"
|
||||||
|
"super, j, movefocus, d"
|
||||||
|
"super shift, h, movewindow, l"
|
||||||
|
"super shift, l, movewindow, r"
|
||||||
|
"super shift, k, movewindow, u"
|
||||||
|
"super shift, j, movewindow, d"
|
||||||
|
"super, d, exec, switchmon"
|
||||||
|
"super, 1, exec, hyprctl 'dispatch workspace 1'"
|
||||||
|
"super, 2, exec, hyprctl 'dispatch workspace 2'"
|
||||||
|
"super, 3, exec, hyprctl 'dispatch workspace 3'"
|
||||||
|
"super, 4, exec, hyprctl 'dispatch workspace 4'"
|
||||||
|
"super, 5, exec, hyprctl 'dispatch workspace 5'"
|
||||||
|
"super, 6, exec, hyprctl 'dispatch workspace 6'"
|
||||||
|
"super shift, 1, movetoworkspace, 1"
|
||||||
|
"super shift, 2, movetoworkspace, 2"
|
||||||
|
"super shift, 3, movetoworkspace, 3"
|
||||||
|
"super shift, 4, movetoworkspace, 4"
|
||||||
|
"super shift, 5, movetoworkspace, 5"
|
||||||
|
"super shift, 6, movetoworkspace, 6"
|
||||||
|
"super, s, togglespecialworkspace, magic"
|
||||||
|
"super shift, s, movetoworkspace, special:magic"
|
||||||
|
]
|
||||||
|
++ screenshot_bind;
|
||||||
|
bindm = [
|
||||||
|
"super, mouse:272, movewindow"
|
||||||
|
"super, mouse:273, resizewindow"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,221 +0,0 @@
|
|||||||
{
|
|
||||||
username,
|
|
||||||
host,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
desktop = host == "oganesson";
|
|
||||||
screenshot_bind =
|
|
||||||
if desktop
|
|
||||||
then [
|
|
||||||
# My laptop does not have a printscreen button
|
|
||||||
"super, print, exec, grimblast copy area"
|
|
||||||
]
|
|
||||||
else [
|
|
||||||
"super, insert, exec, grimblast copy area"
|
|
||||||
];
|
|
||||||
in {
|
|
||||||
wayland.windowManager.hyprland = {
|
|
||||||
settings = {
|
|
||||||
monitor =
|
|
||||||
if (host == "oganesson")
|
|
||||||
then [
|
|
||||||
"DP-1, 1920x1080@144, 1920x0, 1"
|
|
||||||
"HDMI-A-1, 1920x1080, 0x0, 1"
|
|
||||||
]
|
|
||||||
else [
|
|
||||||
"eDP-1, 1600x900, 0x0, 1"
|
|
||||||
];
|
|
||||||
|
|
||||||
exec-once = [
|
|
||||||
"waybar &"
|
|
||||||
"swaync &"
|
|
||||||
"wl-paste --type text --watch cliphist store &"
|
|
||||||
"wl-paste --type image --watch cliphist store &"
|
|
||||||
"wl-clip-persist --clipboard both"
|
|
||||||
"systemctl --user import-environment &"
|
|
||||||
"hash dbus-update-activation-environment 2>/dev/null &"
|
|
||||||
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &"
|
|
||||||
"aplay /home/${username}/sound/sys/login.wav &"
|
|
||||||
];
|
|
||||||
|
|
||||||
workspace =
|
|
||||||
if desktop
|
|
||||||
then [
|
|
||||||
"1,persistent=true,monitor:HDMI-A-1"
|
|
||||||
"2,persistent=true,monitor:HDMI-A-1"
|
|
||||||
"3,persistent=true,monitor:HDMI-A-1"
|
|
||||||
"4,persistent=true,monitor:DP-1"
|
|
||||||
"5,persistent=true,monitor:DP-1"
|
|
||||||
"6,persistent=true,monitor:DP-1"
|
|
||||||
]
|
|
||||||
else [
|
|
||||||
"1,persistent=true,monitor:eDP-1"
|
|
||||||
"2,persistent=true,monitor:eDP-1"
|
|
||||||
"3,persistent=true,monitor:eDP-1"
|
|
||||||
"4,persistent=true,monitor:eDP-1"
|
|
||||||
];
|
|
||||||
|
|
||||||
env = [
|
|
||||||
"XDG_CONFIG_HOME,$HOME/.config"
|
|
||||||
"XDG_DATA_HOME,$HOME/.local/share"
|
|
||||||
"XDG_CACHE_HOME,$HOME/.cache"
|
|
||||||
];
|
|
||||||
layerrule = [
|
|
||||||
"blur,waybar"
|
|
||||||
"ignorezero,waybar"
|
|
||||||
"blur,launcher"
|
|
||||||
];
|
|
||||||
windowrule = [
|
|
||||||
"opacity 0.8,nemo"
|
|
||||||
];
|
|
||||||
|
|
||||||
input = {
|
|
||||||
kb_layout = "us";
|
|
||||||
follow_mouse = 1;
|
|
||||||
accel_profile = "flat";
|
|
||||||
force_no_accel = 1;
|
|
||||||
sensitivity = 0;
|
|
||||||
};
|
|
||||||
general = {
|
|
||||||
"$mainMod" = "super";
|
|
||||||
layout = "dwindle";
|
|
||||||
gaps_in = 4;
|
|
||||||
gaps_out = 8;
|
|
||||||
border_size = 2;
|
|
||||||
#"col.inactive_border" = "0xff${scheme.base01}";
|
|
||||||
#"col.active_border" = "0xff${scheme.base0F}";
|
|
||||||
border_part_of_window = false;
|
|
||||||
no_border_on_floating = false;
|
|
||||||
};
|
|
||||||
misc = {
|
|
||||||
disable_autoreload = true;
|
|
||||||
disable_hyprland_logo = true;
|
|
||||||
always_follow_on_dnd = true;
|
|
||||||
layers_hog_keyboard_focus = true;
|
|
||||||
animate_manual_resizes = false;
|
|
||||||
enable_swallow = true;
|
|
||||||
focus_on_activate = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
dwindle = {
|
|
||||||
no_gaps_when_only = false;
|
|
||||||
force_split = 0;
|
|
||||||
special_scale_factor = 1.0;
|
|
||||||
split_width_multiplier = 1.0;
|
|
||||||
use_active_for_splits = true;
|
|
||||||
pseudotile = "yes";
|
|
||||||
preserve_split = "yes";
|
|
||||||
};
|
|
||||||
|
|
||||||
master = {
|
|
||||||
new_status = "master";
|
|
||||||
special_scale_factor = 1;
|
|
||||||
no_gaps_when_only = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
decoration = {
|
|
||||||
rounding = 7;
|
|
||||||
# active_opacity = 0.90;
|
|
||||||
# inactive_opacity = 0.90;
|
|
||||||
# fullscreen_opacity = 1.0;
|
|
||||||
|
|
||||||
blur = {
|
|
||||||
enabled = true;
|
|
||||||
# size = 1;
|
|
||||||
# passes = 1;
|
|
||||||
size = 4;
|
|
||||||
passes = 1;
|
|
||||||
brightness = 1;
|
|
||||||
contrast = 1.400;
|
|
||||||
ignore_opacity = true;
|
|
||||||
popups = true;
|
|
||||||
noise = 0;
|
|
||||||
new_optimizations = true;
|
|
||||||
xray = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
drop_shadow = true;
|
|
||||||
|
|
||||||
shadow_ignore_window = true;
|
|
||||||
shadow_offset = "0 2";
|
|
||||||
shadow_range = 20;
|
|
||||||
shadow_render_power = 3;
|
|
||||||
};
|
|
||||||
|
|
||||||
animations = {
|
|
||||||
enabled = true;
|
|
||||||
|
|
||||||
bezier = [
|
|
||||||
"fluent_decel, 0, 0.2, 0.4, 1"
|
|
||||||
"easeOutCirc, 0, 0.55, 0.45, 1"
|
|
||||||
"easeOutCubic, 0.33, 1, 0.68, 1"
|
|
||||||
"easeinoutsine, 0.37, 0, 0.63, 1"
|
|
||||||
];
|
|
||||||
|
|
||||||
animation = [
|
|
||||||
# Windows
|
|
||||||
"windowsIn, 1, 3, easeOutCubic, popin 30%" # window open
|
|
||||||
"windowsOut, 1, 3, fluent_decel, popin 70%" # window close.
|
|
||||||
"windowsMove, 1, 2, easeinoutsine, slide" # everything in between, moving, dragging, resizing.
|
|
||||||
|
|
||||||
# Fade
|
|
||||||
"fadeIn, 1, 3, easeOutCubic" # fade in (open) -> layers and windows
|
|
||||||
"fadeOut, 1, 2, easeOutCubic" # fade out (close) -> layers and windows
|
|
||||||
"fadeSwitch, 0, 1, easeOutCirc" # fade on changing activewindow and its opacity
|
|
||||||
"fadeShadow, 1, 10, easeOutCirc" # fade on changing activewindow for shadows
|
|
||||||
"fadeDim, 1, 4, fluent_decel" # the easing of the dimming of inactive windows
|
|
||||||
"border, 1, 2.7, easeOutCirc" # for animating the border's color switch speed
|
|
||||||
"borderangle, 1, 30, fluent_decel, once" # for animating the border's gradient angle - styles: once (default), loop
|
|
||||||
"workspaces, 1, 4, easeOutCubic, fade" # styles: slide, slidevert, fade, slidefade, slidefadevert
|
|
||||||
];
|
|
||||||
|
|
||||||
bind =
|
|
||||||
[
|
|
||||||
"super, up, exec, pactl set-sink-volume @default_sink@ +10%"
|
|
||||||
"super, down, exec, pactl set-sink-volume @default_sink@ -10%"
|
|
||||||
"super, t, exec, swaync-client -t -sw"
|
|
||||||
"super, a, exec, firefox"
|
|
||||||
"super, q, exec, kitty --title Kitty"
|
|
||||||
"super shift, q, exec, [float;size 40% 30%;move onscreen cursor -50% -50%] kitty --title Kitty"
|
|
||||||
"super, c, killactive,"
|
|
||||||
"super, e, exec, nemo"
|
|
||||||
"super, p, exec, [float;size 40% 25%;move onscreen cursor] [ ! -f /tmp/keyringfile ] && kitty toolbelt"
|
|
||||||
"super shift, m, exit,"
|
|
||||||
"super, m, exec, fuzzel"
|
|
||||||
"super, r, exec, neovide"
|
|
||||||
"super, b, togglesplit, # dwindle"
|
|
||||||
"super, f, togglefloating"
|
|
||||||
"super, g, fullscreen"
|
|
||||||
"super, h, movefocus, l"
|
|
||||||
"super, l, movefocus, r"
|
|
||||||
"super, k, movefocus, u"
|
|
||||||
"super, j, movefocus, d"
|
|
||||||
"super shift, h, movewindow, l"
|
|
||||||
"super shift, l, movewindow, r"
|
|
||||||
"super shift, k, movewindow, u"
|
|
||||||
"super shift, j, movewindow, d"
|
|
||||||
"super, d, exec, switchmon"
|
|
||||||
"super, 1, exec, hyprctl 'dispatch workspace 1'"
|
|
||||||
"super, 2, exec, hyprctl 'dispatch workspace 2'"
|
|
||||||
"super, 3, exec, hyprctl 'dispatch workspace 3'"
|
|
||||||
"super, 4, exec, hyprctl 'dispatch workspace 4'"
|
|
||||||
"super, 5, exec, hyprctl 'dispatch workspace 5'"
|
|
||||||
"super, 6, exec, hyprctl 'dispatch workspace 6'"
|
|
||||||
"super shift, 1, movetoworkspace, 1"
|
|
||||||
"super shift, 2, movetoworkspace, 2"
|
|
||||||
"super shift, 3, movetoworkspace, 3"
|
|
||||||
"super shift, 4, movetoworkspace, 4"
|
|
||||||
"super shift, 5, movetoworkspace, 5"
|
|
||||||
"super shift, 6, movetoworkspace, 6"
|
|
||||||
"super, s, togglespecialworkspace, magic"
|
|
||||||
"super shift, s, movetoworkspace, special:magic"
|
|
||||||
]
|
|
||||||
++ screenshot_bind;
|
|
||||||
bindm = [
|
|
||||||
"super, mouse:272, movewindow"
|
|
||||||
"super, mouse:273, resizewindow"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
host,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports =
|
|
||||||
[(import ./hyprland.nix)]
|
|
||||||
++ [(import ./config.nix)];
|
|
||||||
}
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
swaybg
|
|
||||||
inputs.hypr-contrib.packages.${pkgs.system}.grimblast
|
|
||||||
hyprpicker
|
|
||||||
grim
|
|
||||||
slurp
|
|
||||||
wl-clip-persist
|
|
||||||
wf-recorder
|
|
||||||
glib
|
|
||||||
wayland
|
|
||||||
direnv
|
|
||||||
];
|
|
||||||
systemd.user.targets.hyprland-session.Unit.Wants = ["xdg-desktop-autostart.target"];
|
|
||||||
wayland.windowManager.hyprland = {
|
|
||||||
enable = true;
|
|
||||||
xwayland = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
systemd.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,43 +1,40 @@
|
|||||||
{
|
{lib, config, pkgs, inputs, scheme, ... }: let
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
scheme,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
|
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
|
||||||
in {
|
in {
|
||||||
nixpkgs.config.allowUnfreePredicate = pkg:
|
options = {
|
||||||
builtins.elem (lib.getName pkg) [
|
spicetifyConfig.enable = lib.mkEnableOption "enable my spicetify options";
|
||||||
"spotify"
|
};
|
||||||
];
|
config = lib.mkIf config.spicetifyConfig.enable {
|
||||||
|
nixpkgs.config.allowUnfreePredicate = pkg:
|
||||||
|
builtins.elem (lib.getName pkg) [
|
||||||
|
"spotify"
|
||||||
|
];
|
||||||
|
|
||||||
imports = [inputs.spicetify-nix.homeManagerModules.default];
|
programs.spicetify = {
|
||||||
|
enable = true;
|
||||||
|
enabledExtensions = with spicePkgs.extensions; [
|
||||||
|
adblock
|
||||||
|
hidePodcasts
|
||||||
|
shuffle # shuffle+ (special characters are sanitized out of extension names)
|
||||||
|
];
|
||||||
|
#colorScheme = "custom";
|
||||||
|
|
||||||
programs.spicetify = {
|
#customColorScheme = {
|
||||||
enable = true;
|
# text = scheme.base06;
|
||||||
enabledExtensions = with spicePkgs.extensions; [
|
# subtext = scheme.base04;
|
||||||
adblock
|
# sidebar-text = scheme.base04;
|
||||||
hidePodcasts
|
# main = scheme.base00;
|
||||||
shuffle # shuffle+ (special characters are sanitized out of extension names)
|
# sidebar = scheme.base01;
|
||||||
];
|
# shadow = scheme.base01;
|
||||||
#colorScheme = "custom";
|
# selected-row = scheme.base08;
|
||||||
|
# button = scheme.base0D;
|
||||||
#customColorScheme = {
|
# button-active = scheme.base0C;
|
||||||
# text = scheme.base06;
|
# button-disabled = scheme.base02;
|
||||||
# subtext = scheme.base04;
|
# tab-active = scheme.base0E;
|
||||||
# sidebar-text = scheme.base04;
|
# notification = scheme.base0A;
|
||||||
# main = scheme.base00;
|
# notification-error = scheme.base09;
|
||||||
# sidebar = scheme.base01;
|
# misc = scheme.base0F;
|
||||||
# shadow = scheme.base01;
|
#};
|
||||||
# selected-row = scheme.base08;
|
};
|
||||||
# button = scheme.base0D;
|
|
||||||
# button-active = scheme.base0C;
|
|
||||||
# button-disabled = scheme.base02;
|
|
||||||
# tab-active = scheme.base0E;
|
|
||||||
# notification = scheme.base0A;
|
|
||||||
# notification-error = scheme.base09;
|
|
||||||
# misc = scheme.base0F;
|
|
||||||
#};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,64 +1,65 @@
|
|||||||
{
|
{config, lib, inputs, ... }: {
|
||||||
lib,
|
options = {
|
||||||
inputs,
|
starshipConfig.enable = lib.mkEnableOption "enables my starship configuration";
|
||||||
...
|
};
|
||||||
}: {
|
config = lib.mkIf config.starshipConfig.enable {
|
||||||
programs.starship = {
|
programs.starship = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableZshIntegration = false;
|
enableZshIntegration = false;
|
||||||
settings = {
|
settings = {
|
||||||
add_newline = true;
|
add_newline = true;
|
||||||
right_format = "($custom)";
|
right_format = "($custom)";
|
||||||
|
|
||||||
format = lib.concatStrings [
|
format = lib.concatStrings [
|
||||||
"($username)($ssh_symbol)($hostname)(bold white)($cmd_duration)($character)"
|
"($ssh_symbol)($username)($hostname)(bold white)($cmd_duration)($character)"
|
||||||
"($git_branch)($git_status)($rust)($nix-shell)"
|
"($git_branch)($git_status)($rust)($nix-shell)"
|
||||||
"($directory)"
|
"($directory)"
|
||||||
"$line_break[ > ](bold #89b4fa)"
|
"$line_break[ > ](bold #89b4fa)"
|
||||||
];
|
];
|
||||||
|
|
||||||
username = {
|
username = {
|
||||||
show_always = true;
|
show_always = true;
|
||||||
style_user = "bold white";
|
style_user = "bold white";
|
||||||
format = "[$user]($style)";
|
format = "[$user]($style)";
|
||||||
};
|
};
|
||||||
directory = {
|
directory = {
|
||||||
format = "\n[$path](bold cyan)[/](bold green) ";
|
format = "\n[$path](bold cyan)[/](bold green) ";
|
||||||
style = "bold #b4befe";
|
style = "bold #b4befe";
|
||||||
};
|
};
|
||||||
|
|
||||||
character = {
|
character = {
|
||||||
success_symbol = "[ -> ](bold green)";
|
success_symbol = "[ -> ](bold green)";
|
||||||
error_symbol = "[ -> ✗](bold red)";
|
error_symbol = "[ -> ✗](bold red)";
|
||||||
# error_symbol = "[ ](bold #89dceb)[ ✗](bold red)";
|
# error_symbol = "[ ](bold #89dceb)[ ✗](bold red)";
|
||||||
};
|
};
|
||||||
|
|
||||||
cmd_duration = {
|
cmd_duration = {
|
||||||
format = "[ $duration]($style)";
|
format = "[ $duration]($style)";
|
||||||
disabled = false;
|
disabled = false;
|
||||||
style = "bg:none fg:#f9e2af";
|
style = "bg:none fg:#f9e2af";
|
||||||
show_notifications = false;
|
show_notifications = false;
|
||||||
min_time_to_notify = 60000;
|
min_time_to_notify = 60000;
|
||||||
};
|
};
|
||||||
|
|
||||||
git_branch = {
|
git_branch = {
|
||||||
format = "\non [$symbol$branch](bold purple)";
|
format = "\non [$symbol$branch](bold purple)";
|
||||||
symbol = " ";
|
symbol = " ";
|
||||||
truncation_length = 15;
|
truncation_length = 15;
|
||||||
style = "bold purple";
|
style = "bold purple";
|
||||||
};
|
};
|
||||||
|
|
||||||
hostname = {
|
hostname = {
|
||||||
ssh_symbol = "🌐";
|
ssh_symbol = "🌐";
|
||||||
ssh_only = false;
|
ssh_only = false;
|
||||||
format = "[$ssh_symbol](bold blue)[$hostname](bold red)";
|
format = "[@](bold blue)[$hostname](bold red)";
|
||||||
};
|
};
|
||||||
|
|
||||||
custom.shellver = {
|
custom.shellver = {
|
||||||
command = "zsh --version";
|
command = "zsh --version";
|
||||||
when = ''test $SHELL = "/run/current-system/sw/bin/zsh"'';
|
when = ''test $SHELL = "/run/current-system/sw/bin/zsh"'';
|
||||||
symbol = "";
|
symbol = "";
|
||||||
style = "bold magenta";
|
style = "bold magenta";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
{
|
{lib, config, pkgs, scheme, wallpaper, ... }: {
|
||||||
pkgs,
|
options = {
|
||||||
scheme,
|
stylixHomeConfig.enable = lib.mkEnableOption "enables my stylix Home-Manager options";
|
||||||
wallpaper,
|
};
|
||||||
...
|
config = lib.mkIf config.stylixHomeConfig.enable {
|
||||||
}: {
|
stylix = {
|
||||||
stylix = {
|
enable = true;
|
||||||
enable = true;
|
autoEnable = true;
|
||||||
autoEnable = true;
|
targets = {
|
||||||
targets = {
|
# fzf.enable = true;
|
||||||
# fzf.enable = true;
|
# kitty.enable = true;
|
||||||
# kitty.enable = true;
|
# vesktop.enable = true;
|
||||||
# vesktop.enable = true;
|
waybar.enable = false;
|
||||||
waybar.enable = false;
|
btop.enable = false;
|
||||||
btop.enable = false;
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,8 +1,4 @@
|
|||||||
{
|
{lib, config, pkgs, host, ... }: let
|
||||||
pkgs,
|
|
||||||
host,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
desktop = host == "oganesson";
|
desktop = host == "oganesson";
|
||||||
extraFigletFonts = pkgs.fetchFromGitHub {
|
extraFigletFonts = pkgs.fetchFromGitHub {
|
||||||
owner = "xero";
|
owner = "xero";
|
||||||
@@ -32,35 +28,40 @@
|
|||||||
]
|
]
|
||||||
else [];
|
else [];
|
||||||
in {
|
in {
|
||||||
home.packages = with pkgs;
|
options = {
|
||||||
[
|
userPkgs.enable = lib.mkEnableOption "enables my default user packages";
|
||||||
chafa
|
};
|
||||||
nemo
|
config = lib.mkIf config.userPkgs.enable {
|
||||||
flavours
|
home.packages = with pkgs;
|
||||||
ags
|
[
|
||||||
sassc
|
chafa
|
||||||
gtk3
|
nemo
|
||||||
sqlite
|
flavours
|
||||||
gimp
|
ags
|
||||||
imagemagick
|
sassc
|
||||||
yt-dlp
|
gtk3
|
||||||
vlc
|
sqlite
|
||||||
lolcat
|
gimp
|
||||||
speedtest-cli
|
imagemagick
|
||||||
vesktop
|
yt-dlp
|
||||||
qbittorrent
|
vlc
|
||||||
neovide
|
lolcat
|
||||||
zsh
|
speedtest-cli
|
||||||
zsh-syntax-highlighting
|
vesktop
|
||||||
zsh-history-substring-search
|
qbittorrent
|
||||||
zsh-autosuggestions
|
neovide
|
||||||
audacity
|
zsh
|
||||||
rustup
|
zsh-syntax-highlighting
|
||||||
libreoffice
|
zsh-history-substring-search
|
||||||
gtrash
|
zsh-autosuggestions
|
||||||
ripgrep
|
audacity
|
||||||
toilet-extrafonts
|
rustup
|
||||||
python3
|
libreoffice
|
||||||
]
|
gtrash
|
||||||
++ desktop_pkgs;
|
ripgrep
|
||||||
|
toilet-extrafonts
|
||||||
|
python3
|
||||||
|
]
|
||||||
|
++ desktop_pkgs;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
518
modules/home/environment/waybar.nix
Normal file
518
modules/home/environment/waybar.nix
Normal file
@@ -0,0 +1,518 @@
|
|||||||
|
{pkgs, scheme, host, lib, config, ...}:
|
||||||
|
|
||||||
|
let
|
||||||
|
desktop = host == "oganesson";
|
||||||
|
workspaces = {
|
||||||
|
format = "{icon}";
|
||||||
|
format-icons = {
|
||||||
|
"1" = "一";
|
||||||
|
"2" = "二";
|
||||||
|
"3" = "三";
|
||||||
|
"4" = "四";
|
||||||
|
"5" = "五";
|
||||||
|
"6" = "六";
|
||||||
|
};
|
||||||
|
persistent-workspaces =
|
||||||
|
if desktop
|
||||||
|
then {
|
||||||
|
"HDMI-A-1" = [1 2 3];
|
||||||
|
"DP-1" = [4 5 6];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
"eDP-1" = [1 2 3 4];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
bg = {
|
||||||
|
darkester = scheme.base00;
|
||||||
|
darkest = scheme.base01;
|
||||||
|
darker = scheme.base02;
|
||||||
|
dark = scheme.base03;
|
||||||
|
};
|
||||||
|
fg = {
|
||||||
|
lightester = scheme.base07;
|
||||||
|
lightest = scheme.base06;
|
||||||
|
lighter = scheme.base05;
|
||||||
|
light = scheme.base04;
|
||||||
|
};
|
||||||
|
colors = {
|
||||||
|
color0 = scheme.base08;
|
||||||
|
color1 = scheme.base09;
|
||||||
|
color2 = scheme.base0A;
|
||||||
|
color3 = scheme.base0B;
|
||||||
|
color4 = scheme.base0C;
|
||||||
|
color5 = scheme.base0D;
|
||||||
|
color6 = scheme.base0E;
|
||||||
|
color7 = scheme.base0F;
|
||||||
|
};
|
||||||
|
monitors =
|
||||||
|
if desktop
|
||||||
|
then [
|
||||||
|
"DP-1"
|
||||||
|
"HDMI-A-1"
|
||||||
|
]
|
||||||
|
else [
|
||||||
|
"eDP-1"
|
||||||
|
];
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
waybarConfig.enable = lib.mkEnableOption "enables my waybar configuration";
|
||||||
|
};
|
||||||
|
config = {
|
||||||
|
programs.waybar = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.waybar.overrideAttrs (oa: {
|
||||||
|
mesonFlags = (oa.mesonFlags or []) ++ ["-Dexperimental=true"];
|
||||||
|
});
|
||||||
|
settings = {
|
||||||
|
mainBar = {
|
||||||
|
layer = "bottom";
|
||||||
|
output = builtins.elemAt monitors 0;
|
||||||
|
position = "top";
|
||||||
|
name = "mainBar";
|
||||||
|
margin-left = 8;
|
||||||
|
margin-top = 5;
|
||||||
|
margin-right =
|
||||||
|
if desktop
|
||||||
|
then 8
|
||||||
|
else 5;
|
||||||
|
mode = "dock";
|
||||||
|
"gtk-layer-shell" = true;
|
||||||
|
|
||||||
|
modules-left = [
|
||||||
|
"hyprland/workspaces"
|
||||||
|
"cava"
|
||||||
|
];
|
||||||
|
modules-center = [
|
||||||
|
"hyprland/window"
|
||||||
|
];
|
||||||
|
modules-right = [
|
||||||
|
"group/hardware"
|
||||||
|
"clock"
|
||||||
|
"group/powerbtns"
|
||||||
|
];
|
||||||
|
|
||||||
|
"hyprland/workspaces" = workspaces;
|
||||||
|
|
||||||
|
cava = {
|
||||||
|
framerate = 30;
|
||||||
|
autosens = 1;
|
||||||
|
sensitivity = 1;
|
||||||
|
bars = 14;
|
||||||
|
lower_cutoff_freq = 50;
|
||||||
|
higher_cutoff_freq = 10000;
|
||||||
|
method = "pulse";
|
||||||
|
source = "auto";
|
||||||
|
hide_on_silence = true;
|
||||||
|
stereo = true;
|
||||||
|
reverse = true;
|
||||||
|
bar_delimiter = 0;
|
||||||
|
monstercat = false;
|
||||||
|
waves = false;
|
||||||
|
noise_reduction = 0.77;
|
||||||
|
input_delay = 2;
|
||||||
|
format-icons = ["▁" "▂" "▃" "▄" "▅" "▆" "▇" "█"];
|
||||||
|
};
|
||||||
|
|
||||||
|
"group/hardware" = {
|
||||||
|
orientation = "inherit";
|
||||||
|
modules = [
|
||||||
|
"custom/disk-icon"
|
||||||
|
"memory"
|
||||||
|
"cpu"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
"custom/disk-icon" = {
|
||||||
|
exec = ''
|
||||||
|
df /dev/disk/by-partlabel/disk-main-home /dev/disk/by-partlabel/disk-main-nix | awk '
|
||||||
|
function format(size) {
|
||||||
|
if (size >= 1024) return sprintf("%.1fTB", size / 1024)
|
||||||
|
else return sprintf("%.1fGB", size)
|
||||||
|
}
|
||||||
|
$6 == "/home" {
|
||||||
|
home_usage = $3 / 1024 / 1024
|
||||||
|
home_total = $2 / 1024 / 1024
|
||||||
|
home_percent = $5
|
||||||
|
sub(/%/,"",home_percent)
|
||||||
|
}
|
||||||
|
$6 == "/nix" {
|
||||||
|
nix_usage = $3 / 1024 / 1024
|
||||||
|
nix_total = $2 / 1024 / 1024
|
||||||
|
nix_percent = $5
|
||||||
|
}
|
||||||
|
END {
|
||||||
|
printf "{\"class\": \"disk-icon\", \"tooltip\": \"/home: %s / %s\\n/nix: %s / %s\", \"percentage\": \"%s\"}\n",
|
||||||
|
format(home_usage), format(home_total), format(nix_usage), format(nix_total), home_percent
|
||||||
|
}' | jq --unbuffered --compact-output
|
||||||
|
'';
|
||||||
|
interval = 60;
|
||||||
|
return-type = "json";
|
||||||
|
rotate = 270;
|
||||||
|
format = "{icon}";
|
||||||
|
format-icons = [
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
memory = {
|
||||||
|
interval = 1;
|
||||||
|
rotate = 270;
|
||||||
|
format = "{icon}";
|
||||||
|
format-icons = [
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
];
|
||||||
|
max-length = 10;
|
||||||
|
tooltip-format = "RAM: {used:0.1f} GB / {total:0.1f} GB";
|
||||||
|
};
|
||||||
|
|
||||||
|
cpu = {
|
||||||
|
interval = 1;
|
||||||
|
rotate = 270;
|
||||||
|
format = "{icon}";
|
||||||
|
format-icons = [
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
];
|
||||||
|
tooltip-format = "CPU: {usage:0.1f}%";
|
||||||
|
};
|
||||||
|
|
||||||
|
"custom/power" = {
|
||||||
|
on-click = "shutdown now";
|
||||||
|
tooltip = false;
|
||||||
|
format = " ";
|
||||||
|
};
|
||||||
|
|
||||||
|
"custom/logout" = {
|
||||||
|
on-click = "hyprctl dispatch exit";
|
||||||
|
tooltip = false;
|
||||||
|
format = " ";
|
||||||
|
};
|
||||||
|
|
||||||
|
"custom/reboot" = {
|
||||||
|
on-click = "reboot";
|
||||||
|
tooltip = false;
|
||||||
|
format = " ";
|
||||||
|
};
|
||||||
|
|
||||||
|
"group/powerbtns" = {
|
||||||
|
orientation = "horizontal";
|
||||||
|
drawer = {
|
||||||
|
transition-duration = 500;
|
||||||
|
children-class = "power-drawer";
|
||||||
|
transition-left-to-right = false;
|
||||||
|
};
|
||||||
|
modules = [
|
||||||
|
"custom/power"
|
||||||
|
"custom/logout"
|
||||||
|
"custom/reboot"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
clock = {
|
||||||
|
format = "{:%I:%M %p}";
|
||||||
|
tooltip = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
sideBar = {
|
||||||
|
layer = "bottom";
|
||||||
|
output =
|
||||||
|
if desktop
|
||||||
|
then builtins.elemAt monitors 1
|
||||||
|
else builtins.elemAt monitors 0;
|
||||||
|
position = "right";
|
||||||
|
margin-top = 8;
|
||||||
|
margin-right = 5;
|
||||||
|
margin-bottom = 8;
|
||||||
|
name = "sideBar";
|
||||||
|
mode = "dock";
|
||||||
|
"gtk-layer-shell" = true;
|
||||||
|
|
||||||
|
modules-left =
|
||||||
|
if desktop
|
||||||
|
then [
|
||||||
|
"hyprland/workspaces"
|
||||||
|
]
|
||||||
|
else [
|
||||||
|
"group/brightness"
|
||||||
|
"battery"
|
||||||
|
];
|
||||||
|
modules-center = [
|
||||||
|
];
|
||||||
|
modules-right = [
|
||||||
|
"network"
|
||||||
|
"group/audio"
|
||||||
|
];
|
||||||
|
|
||||||
|
"hyprland/workspaces" = workspaces;
|
||||||
|
|
||||||
|
"pulseaudio/slider" = {
|
||||||
|
orientation = "vertical";
|
||||||
|
};
|
||||||
|
|
||||||
|
"group/audio" = {
|
||||||
|
orientation = "vertical";
|
||||||
|
modules = [
|
||||||
|
"pulseaudio/slider"
|
||||||
|
"pulseaudio"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
pulseaudio = {
|
||||||
|
format = "{icon}";
|
||||||
|
format-muted = " ";
|
||||||
|
format-icons = {
|
||||||
|
default = [
|
||||||
|
" "
|
||||||
|
" "
|
||||||
|
];
|
||||||
|
};
|
||||||
|
on-click = "pactl set-sink-mute @DEFAULT_SINK@ toggle";
|
||||||
|
on-click-right = "hyprctl dispatch exec '[float;size 40% 55%] pavucontrol'";
|
||||||
|
};
|
||||||
|
|
||||||
|
network = {
|
||||||
|
interval = 30;
|
||||||
|
format-wifi = " ";
|
||||||
|
tooltip-format-wifi = "{essid} ({signalStrength}%)";
|
||||||
|
format-ethernet = " ";
|
||||||
|
tooltip-format-ethernet = "{ifname}";
|
||||||
|
format-disconnected = " ";
|
||||||
|
tooltip-format-disconnected = "Disconnected";
|
||||||
|
on-click = "hyprctl dispatch exec '[float;size 40% 55%] kitty nmtui'";
|
||||||
|
};
|
||||||
|
|
||||||
|
battery = {
|
||||||
|
bat = "BAT1";
|
||||||
|
interval = 1;
|
||||||
|
tooltip-format = "{capacity}%\nTil empty: {time}";
|
||||||
|
tooltip-format-charging = "{capacity}%\nTil full: {time}";
|
||||||
|
format = "{icon}";
|
||||||
|
format-icons = [
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
];
|
||||||
|
format-charging = "";
|
||||||
|
};
|
||||||
|
|
||||||
|
"group/brightness" = {
|
||||||
|
orientation = "vertical";
|
||||||
|
modules = [
|
||||||
|
"backlight"
|
||||||
|
"backlight/slider"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
backlight = {
|
||||||
|
format = "";
|
||||||
|
tooltip = "{percentage}%";
|
||||||
|
};
|
||||||
|
"backlight/slider" = {
|
||||||
|
min = 10;
|
||||||
|
max = 100;
|
||||||
|
orientation = "vertical";
|
||||||
|
rotate = 180;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
style = ''
|
||||||
|
* {
|
||||||
|
border: none;
|
||||||
|
border-radius: 0;
|
||||||
|
font-size: 16px;
|
||||||
|
font-family: "JetBrains Mono Nerd Font";
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
border-radius: 20px;
|
||||||
|
border: 3px solid #${colors.color7};
|
||||||
|
background: rgba(46,52,64,0.15);
|
||||||
|
margin: 20px;
|
||||||
|
}
|
||||||
|
window#waybar.empty #window {
|
||||||
|
background: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces {
|
||||||
|
margin: 3px;
|
||||||
|
background: #${bg.dark};
|
||||||
|
border-radius: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button:hover {
|
||||||
|
border-radius: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.active {
|
||||||
|
background: #${fg.lightester};
|
||||||
|
border-radius: 20px;
|
||||||
|
color: #${bg.darkest};
|
||||||
|
}
|
||||||
|
|
||||||
|
#cava {
|
||||||
|
background: #${bg.dark};
|
||||||
|
border-radius: 20px;
|
||||||
|
margin: 3px 3px 3px 6px;
|
||||||
|
padding: 0px 15px 0px 15px;
|
||||||
|
color: #${colors.color6};
|
||||||
|
}
|
||||||
|
|
||||||
|
#window {
|
||||||
|
margin: 3px;
|
||||||
|
background: #${bg.dark};
|
||||||
|
border-radius: 20px;
|
||||||
|
padding: 0 15px 0 15px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
#hardware {
|
||||||
|
margin: 3px;
|
||||||
|
padding: 0 10px 0 10px;
|
||||||
|
background: #${bg.dark};
|
||||||
|
border-radius: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-disk-icon, #cpu, #memory {
|
||||||
|
margin-bottom: 4px;
|
||||||
|
font-size: 20px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-disk-icon {
|
||||||
|
color: #${colors.color4};
|
||||||
|
}
|
||||||
|
|
||||||
|
#memory {
|
||||||
|
color: #${colors.color1};
|
||||||
|
}
|
||||||
|
|
||||||
|
#cpu {
|
||||||
|
color: #${colors.color3};
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock {
|
||||||
|
font-weight: bold;
|
||||||
|
background: #${bg.dark};
|
||||||
|
border-radius: 20px;
|
||||||
|
margin: 3px;
|
||||||
|
padding: 0 10px 0 10px;
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#powerbtns {
|
||||||
|
background: #${bg.dark};
|
||||||
|
border-radius: 20px;
|
||||||
|
margin: 3px;
|
||||||
|
padding: 0 5px 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-power {
|
||||||
|
color: #${colors.color0};
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-logout {
|
||||||
|
color: #${colors.color4};
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-reboot {
|
||||||
|
color: #${colors.color2};
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#audio {
|
||||||
|
background: #${bg.dark};
|
||||||
|
border-radius: 20px;
|
||||||
|
margin: 3px;
|
||||||
|
padding: 5px 0 10px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio {
|
||||||
|
color: #${colors.color4};
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#backlight-slider slider,
|
||||||
|
#pulseaudio-slider slider {
|
||||||
|
background: #${colors.color4};
|
||||||
|
background-color: transparent;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#backlight-slider trough,
|
||||||
|
#pulseaudio-slider trough {
|
||||||
|
min-width: 9px;
|
||||||
|
min-height: 90px;
|
||||||
|
border-radius: 8px;
|
||||||
|
background: #343434;
|
||||||
|
}
|
||||||
|
|
||||||
|
#backlight-slider highlight,
|
||||||
|
#pulseaudio-slider highlight {
|
||||||
|
border-radius: 8px;
|
||||||
|
background-color: #2096C0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network {
|
||||||
|
color: #${colors.color3};
|
||||||
|
font-size: 20px;
|
||||||
|
background: #${bg.dark};
|
||||||
|
border-radius: 20px;
|
||||||
|
margin: 3px;
|
||||||
|
padding: 5px 0 5px 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#brightness {
|
||||||
|
background: #${bg.dark};
|
||||||
|
border-radius: 20px;
|
||||||
|
margin: 3px;
|
||||||
|
padding: 10px 0px 5px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#backlight {
|
||||||
|
color: #${colors.color2};
|
||||||
|
font-size: 18px;
|
||||||
|
padding: 0 4px 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery {
|
||||||
|
color: #${colors.color4};
|
||||||
|
font-size: 20px;
|
||||||
|
background: #${bg.dark};
|
||||||
|
border-radius: 20px;
|
||||||
|
margin: 3px;
|
||||||
|
padding: 5px 0 5px 0px;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
imports =
|
|
||||||
[(import ./waybar.nix)]
|
|
||||||
++ [(import ./settings.nix)]
|
|
||||||
++ [(import ./style.nix)];
|
|
||||||
}
|
|
||||||
@@ -1,323 +0,0 @@
|
|||||||
{host, ...}:
|
|
||||||
# Grocery list:
|
|
||||||
# Clock
|
|
||||||
# CPU/MEM meters
|
|
||||||
# Home folder and Nix store storage tracking?
|
|
||||||
# Workspaces (per monitor would be nice)
|
|
||||||
# A separate bar for both monitors
|
|
||||||
# secondary monitor will have a vertical bar on the left side
|
|
||||||
# Can contain more info with two bars
|
|
||||||
let
|
|
||||||
desktop = host == "oganesson";
|
|
||||||
workspaces = {
|
|
||||||
format = "{icon}";
|
|
||||||
format-icons = {
|
|
||||||
"1" = "一";
|
|
||||||
"2" = "二";
|
|
||||||
"3" = "三";
|
|
||||||
"4" = "四";
|
|
||||||
"5" = "五";
|
|
||||||
"6" = "六";
|
|
||||||
};
|
|
||||||
persistent-workspaces =
|
|
||||||
if desktop
|
|
||||||
then {
|
|
||||||
"HDMI-A-1" = [1 2 3];
|
|
||||||
"DP-1" = [4 5 6];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
"eDP-1" = [1 2 3 4];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
monitors =
|
|
||||||
if desktop
|
|
||||||
then [
|
|
||||||
"DP-1"
|
|
||||||
"HDMI-A-1"
|
|
||||||
]
|
|
||||||
else [
|
|
||||||
"eDP-1"
|
|
||||||
];
|
|
||||||
in {
|
|
||||||
programs.waybar.settings.mainBar = {
|
|
||||||
layer = "bottom";
|
|
||||||
output = builtins.elemAt monitors 0;
|
|
||||||
position = "top";
|
|
||||||
name = "mainBar";
|
|
||||||
margin-left = 8;
|
|
||||||
margin-top = 5;
|
|
||||||
margin-right =
|
|
||||||
if desktop
|
|
||||||
then 8
|
|
||||||
else 5;
|
|
||||||
mode = "dock";
|
|
||||||
"gtk-layer-shell" = true;
|
|
||||||
|
|
||||||
modules-left = [
|
|
||||||
"hyprland/workspaces"
|
|
||||||
"cava"
|
|
||||||
];
|
|
||||||
modules-center = [
|
|
||||||
"hyprland/window"
|
|
||||||
];
|
|
||||||
modules-right = [
|
|
||||||
"group/hardware"
|
|
||||||
"clock"
|
|
||||||
"group/powerbtns"
|
|
||||||
];
|
|
||||||
|
|
||||||
"hyprland/workspaces" = workspaces;
|
|
||||||
|
|
||||||
cava = {
|
|
||||||
framerate = 30;
|
|
||||||
autosens = 1;
|
|
||||||
sensitivity = 1;
|
|
||||||
bars = 14;
|
|
||||||
lower_cutoff_freq = 50;
|
|
||||||
higher_cutoff_freq = 10000;
|
|
||||||
method = "pulse";
|
|
||||||
source = "auto";
|
|
||||||
hide_on_silence = true;
|
|
||||||
stereo = true;
|
|
||||||
reverse = true;
|
|
||||||
bar_delimiter = 0;
|
|
||||||
monstercat = false;
|
|
||||||
waves = false;
|
|
||||||
noise_reduction = 0.77;
|
|
||||||
input_delay = 2;
|
|
||||||
format-icons = ["▁" "▂" "▃" "▄" "▅" "▆" "▇" "█"];
|
|
||||||
};
|
|
||||||
|
|
||||||
"group/hardware" = {
|
|
||||||
orientation = "inherit";
|
|
||||||
modules = [
|
|
||||||
"custom/disk-icon"
|
|
||||||
"memory"
|
|
||||||
"cpu"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
"custom/disk-icon" = {
|
|
||||||
exec = ''
|
|
||||||
df /dev/disk/by-partlabel/disk-main-home /dev/disk/by-partlabel/disk-main-nix | awk '
|
|
||||||
function format(size) {
|
|
||||||
if (size >= 1024) return sprintf("%.1fTB", size / 1024)
|
|
||||||
else return sprintf("%.1fGB", size)
|
|
||||||
}
|
|
||||||
$6 == "/home" {
|
|
||||||
home_usage = $3 / 1024 / 1024
|
|
||||||
home_total = $2 / 1024 / 1024
|
|
||||||
home_percent = $5
|
|
||||||
sub(/%/,"",home_percent)
|
|
||||||
}
|
|
||||||
$6 == "/nix" {
|
|
||||||
nix_usage = $3 / 1024 / 1024
|
|
||||||
nix_total = $2 / 1024 / 1024
|
|
||||||
nix_percent = $5
|
|
||||||
}
|
|
||||||
END {
|
|
||||||
printf "{\"class\": \"disk-icon\", \"tooltip\": \"/home: %s / %s\\n/nix: %s / %s\", \"percentage\": \"%s\"}\n",
|
|
||||||
format(home_usage), format(home_total), format(nix_usage), format(nix_total), home_percent
|
|
||||||
}' | jq --unbuffered --compact-output
|
|
||||||
'';
|
|
||||||
interval = 60;
|
|
||||||
return-type = "json";
|
|
||||||
rotate = 270;
|
|
||||||
format = "{icon}";
|
|
||||||
format-icons = [
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
memory = {
|
|
||||||
interval = 1;
|
|
||||||
rotate = 270;
|
|
||||||
format = "{icon}";
|
|
||||||
format-icons = [
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
];
|
|
||||||
max-length = 10;
|
|
||||||
tooltip-format = "RAM: {used:0.1f} GB / {total:0.1f} GB";
|
|
||||||
};
|
|
||||||
|
|
||||||
cpu = {
|
|
||||||
interval = 1;
|
|
||||||
rotate = 270;
|
|
||||||
format = "{icon}";
|
|
||||||
format-icons = [
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
];
|
|
||||||
tooltip-format = "CPU: {usage:0.1f}%";
|
|
||||||
};
|
|
||||||
|
|
||||||
"custom/power" = {
|
|
||||||
on-click = "shutdown now";
|
|
||||||
tooltip = false;
|
|
||||||
format = " ";
|
|
||||||
};
|
|
||||||
|
|
||||||
"custom/logout" = {
|
|
||||||
on-click = "hyprctl dispatch exit";
|
|
||||||
tooltip = false;
|
|
||||||
format = " ";
|
|
||||||
};
|
|
||||||
|
|
||||||
"custom/reboot" = {
|
|
||||||
on-click = "reboot";
|
|
||||||
tooltip = false;
|
|
||||||
format = " ";
|
|
||||||
};
|
|
||||||
|
|
||||||
"group/powerbtns" = {
|
|
||||||
orientation = "horizontal";
|
|
||||||
drawer = {
|
|
||||||
transition-duration = 500;
|
|
||||||
children-class = "power-drawer";
|
|
||||||
transition-left-to-right = false;
|
|
||||||
};
|
|
||||||
modules = [
|
|
||||||
"custom/power"
|
|
||||||
"custom/logout"
|
|
||||||
"custom/reboot"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
clock = {
|
|
||||||
format = "{:%I:%M %p}";
|
|
||||||
tooltip = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# ------------------------------------------
|
|
||||||
|
|
||||||
programs.waybar.settings.sideBar = {
|
|
||||||
layer = "bottom";
|
|
||||||
output =
|
|
||||||
if desktop
|
|
||||||
then builtins.elemAt monitors 1
|
|
||||||
else builtins.elemAt monitors 0;
|
|
||||||
position = "right";
|
|
||||||
margin-top = 8;
|
|
||||||
margin-right = 5;
|
|
||||||
margin-bottom = 8;
|
|
||||||
name = "sideBar";
|
|
||||||
mode = "dock";
|
|
||||||
"gtk-layer-shell" = true;
|
|
||||||
|
|
||||||
modules-left =
|
|
||||||
if desktop
|
|
||||||
then [
|
|
||||||
"hyprland/workspaces"
|
|
||||||
]
|
|
||||||
else [
|
|
||||||
"group/brightness"
|
|
||||||
"battery"
|
|
||||||
];
|
|
||||||
modules-center = [
|
|
||||||
];
|
|
||||||
modules-right = [
|
|
||||||
"network"
|
|
||||||
"group/audio"
|
|
||||||
];
|
|
||||||
|
|
||||||
"hyprland/workspaces" = workspaces;
|
|
||||||
|
|
||||||
"pulseaudio/slider" = {
|
|
||||||
orientation = "vertical";
|
|
||||||
};
|
|
||||||
|
|
||||||
"group/audio" = {
|
|
||||||
orientation = "vertical";
|
|
||||||
modules = [
|
|
||||||
"pulseaudio/slider"
|
|
||||||
"pulseaudio"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
pulseaudio = {
|
|
||||||
format = "{icon}";
|
|
||||||
format-muted = " ";
|
|
||||||
format-icons = {
|
|
||||||
default = [
|
|
||||||
" "
|
|
||||||
" "
|
|
||||||
];
|
|
||||||
};
|
|
||||||
on-click = "pactl set-sink-mute @DEFAULT_SINK@ toggle";
|
|
||||||
on-click-right = "hyprctl dispatch exec '[float;size 40% 55%] pavucontrol'";
|
|
||||||
};
|
|
||||||
|
|
||||||
network = {
|
|
||||||
interval = 30;
|
|
||||||
format-wifi = " ";
|
|
||||||
tooltip-format-wifi = "{essid} ({signalStrength}%)";
|
|
||||||
format-ethernet = " ";
|
|
||||||
tooltip-format-ethernet = "{ifname}";
|
|
||||||
format-disconnected = " ";
|
|
||||||
tooltip-format-disconnected = "Disconnected";
|
|
||||||
on-click = "hyprctl dispatch exec '[float;size 40% 55%] kitty nmtui'";
|
|
||||||
};
|
|
||||||
|
|
||||||
battery = {
|
|
||||||
bat = "BAT1";
|
|
||||||
interval = 1;
|
|
||||||
tooltip-format = "{capacity}%\nTil empty: {time}";
|
|
||||||
tooltip-format-charging = "{capacity}%\nTil full: {time}";
|
|
||||||
format = "{icon}";
|
|
||||||
format-icons = [
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
];
|
|
||||||
format-charging = "";
|
|
||||||
};
|
|
||||||
|
|
||||||
"group/brightness" = {
|
|
||||||
orientation = "vertical";
|
|
||||||
modules = [
|
|
||||||
"backlight"
|
|
||||||
"backlight/slider"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
backlight = {
|
|
||||||
format = "";
|
|
||||||
tooltip = "{percentage}%";
|
|
||||||
};
|
|
||||||
"backlight/slider" = {
|
|
||||||
min = 10;
|
|
||||||
max = 100;
|
|
||||||
orientation = "vertical";
|
|
||||||
rotate = 180;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,195 +0,0 @@
|
|||||||
{scheme, ...}: let
|
|
||||||
bg = {
|
|
||||||
darkester = scheme.base00;
|
|
||||||
darkest = scheme.base01;
|
|
||||||
darker = scheme.base02;
|
|
||||||
dark = scheme.base03;
|
|
||||||
};
|
|
||||||
fg = {
|
|
||||||
lightester = scheme.base07;
|
|
||||||
lightest = scheme.base06;
|
|
||||||
lighter = scheme.base05;
|
|
||||||
light = scheme.base04;
|
|
||||||
};
|
|
||||||
colors = {
|
|
||||||
color0 = scheme.base08;
|
|
||||||
color1 = scheme.base09;
|
|
||||||
color2 = scheme.base0A;
|
|
||||||
color3 = scheme.base0B;
|
|
||||||
color4 = scheme.base0C;
|
|
||||||
color5 = scheme.base0D;
|
|
||||||
color6 = scheme.base0E;
|
|
||||||
color7 = scheme.base0F;
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
programs.waybar.style = ''
|
|
||||||
* {
|
|
||||||
border: none;
|
|
||||||
border-radius: 0;
|
|
||||||
font-size: 16px;
|
|
||||||
font-family: "JetBrains Mono Nerd Font";
|
|
||||||
}
|
|
||||||
|
|
||||||
window#waybar {
|
|
||||||
border-radius: 20px;
|
|
||||||
border: 3px solid #${colors.color7};
|
|
||||||
background: rgba(46,52,64,0.15);
|
|
||||||
margin: 20px;
|
|
||||||
}
|
|
||||||
window#waybar.empty #window {
|
|
||||||
background: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces {
|
|
||||||
margin: 3px;
|
|
||||||
background: #${bg.dark};
|
|
||||||
border-radius: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button:hover {
|
|
||||||
border-radius: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button.active {
|
|
||||||
background: #${fg.lightester};
|
|
||||||
border-radius: 20px;
|
|
||||||
color: #${bg.darkest};
|
|
||||||
}
|
|
||||||
|
|
||||||
#cava {
|
|
||||||
background: #${bg.dark};
|
|
||||||
border-radius: 20px;
|
|
||||||
margin: 3px 3px 3px 6px;
|
|
||||||
padding: 0px 15px 0px 15px;
|
|
||||||
color: #${colors.color6};
|
|
||||||
}
|
|
||||||
|
|
||||||
#window {
|
|
||||||
margin: 3px;
|
|
||||||
background: #${bg.dark};
|
|
||||||
border-radius: 20px;
|
|
||||||
padding: 0 15px 0 15px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
#hardware {
|
|
||||||
margin: 3px;
|
|
||||||
padding: 0 10px 0 10px;
|
|
||||||
background: #${bg.dark};
|
|
||||||
border-radius: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#custom-disk-icon, #cpu, #memory {
|
|
||||||
margin-bottom: 4px;
|
|
||||||
font-size: 20px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
#custom-disk-icon {
|
|
||||||
color: #${colors.color4};
|
|
||||||
}
|
|
||||||
|
|
||||||
#memory {
|
|
||||||
color: #${colors.color1};
|
|
||||||
}
|
|
||||||
|
|
||||||
#cpu {
|
|
||||||
color: #${colors.color3};
|
|
||||||
}
|
|
||||||
|
|
||||||
#clock {
|
|
||||||
font-weight: bold;
|
|
||||||
background: #${bg.dark};
|
|
||||||
border-radius: 20px;
|
|
||||||
margin: 3px;
|
|
||||||
padding: 0 10px 0 10px;
|
|
||||||
font-size: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#powerbtns {
|
|
||||||
background: #${bg.dark};
|
|
||||||
border-radius: 20px;
|
|
||||||
margin: 3px;
|
|
||||||
padding: 0 5px 0 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#custom-power {
|
|
||||||
color: #${colors.color0};
|
|
||||||
font-size: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#custom-logout {
|
|
||||||
color: #${colors.color4};
|
|
||||||
font-size: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#custom-reboot {
|
|
||||||
color: #${colors.color2};
|
|
||||||
font-size: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#audio {
|
|
||||||
background: #${bg.dark};
|
|
||||||
border-radius: 20px;
|
|
||||||
margin: 3px;
|
|
||||||
padding: 5px 0 10px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pulseaudio {
|
|
||||||
color: #${colors.color4};
|
|
||||||
font-size: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#backlight-slider slider,
|
|
||||||
#pulseaudio-slider slider {
|
|
||||||
background: #${colors.color4};
|
|
||||||
background-color: transparent;
|
|
||||||
box-shadow: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#backlight-slider trough,
|
|
||||||
#pulseaudio-slider trough {
|
|
||||||
min-width: 9px;
|
|
||||||
min-height: 90px;
|
|
||||||
border-radius: 8px;
|
|
||||||
background: #343434;
|
|
||||||
}
|
|
||||||
|
|
||||||
#backlight-slider highlight,
|
|
||||||
#pulseaudio-slider highlight {
|
|
||||||
border-radius: 8px;
|
|
||||||
background-color: #2096C0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#network {
|
|
||||||
color: #${colors.color3};
|
|
||||||
font-size: 20px;
|
|
||||||
background: #${bg.dark};
|
|
||||||
border-radius: 20px;
|
|
||||||
margin: 3px;
|
|
||||||
padding: 5px 0 5px 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#brightness {
|
|
||||||
background: #${bg.dark};
|
|
||||||
border-radius: 20px;
|
|
||||||
margin: 3px;
|
|
||||||
padding: 10px 0px 5px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#backlight {
|
|
||||||
color: #${colors.color2};
|
|
||||||
font-size: 18px;
|
|
||||||
padding: 0 4px 0 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#battery {
|
|
||||||
color: #${colors.color4};
|
|
||||||
font-size: 20px;
|
|
||||||
background: #${bg.dark};
|
|
||||||
border-radius: 20px;
|
|
||||||
margin: 3px;
|
|
||||||
padding: 5px 0 5px 0px;
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
programs.waybar = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
programs.waybar.package = pkgs.waybar.overrideAttrs (oa: {
|
|
||||||
mesonFlags = (oa.mesonFlags or []) ++ ["-Dexperimental=true"];
|
|
||||||
});
|
|
||||||
}
|
|
||||||
@@ -1,187 +1,201 @@
|
|||||||
{self, ...}: {
|
{lib, config, self, ...}: {
|
||||||
programs.zoxide = {
|
options = {
|
||||||
enable = true;
|
zshConfig.enable = lib.mkEnableOption "enables my zsh configuration";
|
||||||
enableZshIntegration = true;
|
|
||||||
};
|
};
|
||||||
programs.zsh = {
|
config = lib.mkIf config.zshConfig.enable {
|
||||||
enable = true;
|
programs.zoxide = {
|
||||||
|
|
||||||
sessionVariables = {
|
|
||||||
SOUNDS_ENABLED = "1";
|
|
||||||
EDITOR = "nvim";
|
|
||||||
SUDO_EDITOR = "nvim";
|
|
||||||
VISUAL = "nvim";
|
|
||||||
LANG = "en_US.UTF-8";
|
|
||||||
BROWSER = "firefox";
|
|
||||||
FLAKEPATH = "$HOME/.sysflake";
|
|
||||||
};
|
|
||||||
|
|
||||||
oh-my-zsh = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
plugins = ["git" "fzf"];
|
enableZshIntegration = true;
|
||||||
};
|
};
|
||||||
|
programs.zsh = {
|
||||||
enableCompletion = true;
|
|
||||||
history = {
|
|
||||||
path = "$HOME/.zsh_history";
|
|
||||||
save = 10000;
|
|
||||||
size = 10000;
|
|
||||||
share = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
autosuggestion = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
highlight = "fg=#4C566A,underline";
|
|
||||||
};
|
|
||||||
|
|
||||||
shellAliases = {
|
shellAliases = {
|
||||||
grep = "grep --color=auto";
|
grep = "grep --color=auto";
|
||||||
yazi = "y";
|
yazi = "y";
|
||||||
vi = "nvim";
|
vi = "nvim";
|
||||||
mv = "mv -v";
|
mv = "mv -v";
|
||||||
cp = "cp -vr";
|
cp = "cp -vr";
|
||||||
gt = "gtrash";
|
gt = "gtrash";
|
||||||
gtp = "playshellsound ${self}/assets/sound/rm.wav; gtrash put";
|
gtp = "playshellsound ${self}/assets/sound/rm.wav; gtrash put";
|
||||||
sr = "source ~/.zshrc";
|
sr = "source ~/.zshrc";
|
||||||
".." = "cd ..";
|
".." = "cd ..";
|
||||||
rm = "echo 'use \"gtp\" instead'";
|
rm = "echo 'use \"gtp\" instead'";
|
||||||
psg = "ps aux | grep -v grep | grep -i -e VSZ -e";
|
psg = "ps aux | grep -v grep | grep -i -e VSZ -e";
|
||||||
mkdir = "mkdir -p";
|
mkdir = "mkdir -p";
|
||||||
pk = "pkill -9 -f";
|
pk = "pkill -9 -f";
|
||||||
svcu = "systemctl --user";
|
svcu = "systemctl --user";
|
||||||
svc = "sudo systemctl";
|
svc = "sudo systemctl";
|
||||||
viflake = "nvim flake.nix";
|
viflake = "nvim flake.nix";
|
||||||
|
|
||||||
#git
|
#git
|
||||||
"ga" = "playshellsound ${self}/assets/sound/gitadd.wav; git add";
|
"ga" = "playshellsound ${self}/assets/sound/gitadd.wav; git add";
|
||||||
gcomm = "gitcommit_sfx";
|
gcomm = "gitcommit_sfx";
|
||||||
gpush = "gitpush_sfx";
|
gpush = "gitpush_sfx";
|
||||||
gpull = "gitpull_sfx";
|
gpull = "gitpull_sfx";
|
||||||
greb = "gitrebase_sfx";
|
greb = "gitrebase_sfx";
|
||||||
};
|
};
|
||||||
initExtra = ''
|
|
||||||
playshellsound() {
|
|
||||||
if [ $# -ne 1 ]; then
|
|
||||||
echo "Usage: playshellsound <path/to/sound>"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
if ! scheck; then
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
runbg aplay "$1"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
gitrebase_sfx() {
|
|
||||||
if git rebase "$@"; then
|
|
||||||
playshellsound ${self}/assets/sound/gitrebase.wav
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
playshellsound ${self}/assets/sound/error.wav
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
gitcommit_sfx() {
|
|
||||||
if git commit "$@"; then
|
|
||||||
playshellsound ${self}/assets/sound/gitcommit.wav
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
playshellsound ${self}/assets/sound/error.wav
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
gitpush_sfx() {
|
|
||||||
if git push "$@"; then
|
|
||||||
playshellsound ${self}/assets/sound/gitpush.wav
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
playshellsound ${self}/assets/sound/error.wav
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
gitpull_sfx() {
|
|
||||||
if git pull "$@"; then
|
|
||||||
playshellsound ${self}/assets/sound/gitpull.wav
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
playshellsound ${self}/assets/sound/error.wav
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
unalias ls
|
|
||||||
ls() {
|
|
||||||
eza -1 --group-directories-first --icons "$@"
|
|
||||||
playshellsound ${self}/assets/sound/ls.wav
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
mkcd() {
|
|
||||||
mkdir -p "$1" && cd "$1"
|
|
||||||
}
|
|
||||||
|
|
||||||
y() {
|
|
||||||
local tmp="$(mktemp -t "yazi-cwd.XXXXXX")"
|
|
||||||
yazi "$@" --cwd-file="$tmp"
|
|
||||||
if cwd="$(command cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
|
|
||||||
builtin cd -- "$cwd"
|
|
||||||
fi
|
|
||||||
rm -f -- "$tmp"
|
|
||||||
}
|
|
||||||
|
|
||||||
cd() {
|
|
||||||
local prev_sounds_enabled="$SOUNDS_ENABLED"
|
|
||||||
SOUNDS_ENABLED=0
|
|
||||||
eza -1 --group-directories-first --icons "$@"
|
|
||||||
SOUNDS_ENABLED=$prev_sounds_enabled
|
|
||||||
builtin cd "$@"
|
|
||||||
playshellsound /nix/store/7a9w7np3qrvmzxjbs7xj05qq2yccgfsj-source/assets/sound/cd.wav
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
if [ ! -e $HOME/.zsh_history ]; then
|
|
||||||
touch $HOME/.zsh_history
|
|
||||||
chmod 600 $HOME/.zsh_history
|
|
||||||
fi
|
|
||||||
setopt APPEND_HISTORY # Append history to the history file (don't overwrite)
|
|
||||||
setopt INC_APPEND_HISTORY # Append to the history file incrementally
|
|
||||||
setopt SHARE_HISTORY # Share history between all zsh sessions
|
|
||||||
|
|
||||||
sessionVariables = {
|
sessionVariables = {
|
||||||
setopt CORRECT
|
SOUNDS_ENABLED = "1";
|
||||||
setopt NO_NOMATCH
|
EDITOR = "nvim";
|
||||||
setopt LIST_PACKED
|
SUDO_EDITOR = "nvim";
|
||||||
setopt ALWAYS_TO_END
|
VISUAL = "nvim";
|
||||||
setopt GLOB_COMPLETE
|
LANG = "en_US.UTF-8";
|
||||||
setopt COMPLETE_ALIASES
|
BROWSER = "firefox";
|
||||||
setopt COMPLETE_IN_WORD
|
FLAKEPATH = "$HOME/.sysflake";
|
||||||
setopt AUTO_CD
|
};
|
||||||
setopt AUTO_CONTINUE
|
|
||||||
setopt LONG_LIST_JOBS
|
|
||||||
setopt HIST_VERIFY
|
|
||||||
setopt SHARE_HISTORY
|
|
||||||
setopt HIST_IGNORE_SPACE
|
|
||||||
setopt HIST_SAVE_NO_DUPS
|
|
||||||
setopt HIST_IGNORE_ALL_DUPS
|
|
||||||
setopt EXTENDED_GLOB
|
|
||||||
setopt TRANSIENT_RPROMPT
|
|
||||||
setopt INTERACTIVE_COMMENTS
|
|
||||||
|
|
||||||
autoload -U compinit # completion
|
oh-my-zsh = {
|
||||||
autoload -U terminfo # terminfo keys
|
enable = true;
|
||||||
zmodload -i zsh/complist # menu completion
|
plugins = ["git" "fzf"];
|
||||||
autoload -U promptinit # prompt
|
};
|
||||||
|
|
||||||
autoload -U up-line-or-beginning-search; zle -N up-line-or-beginning-search
|
enableCompletion = true;
|
||||||
autoload -U down-line-or-beginning-search; zle -N down-line-or-beginning-search
|
history = {
|
||||||
|
path = "$HOME/.zsh_history";
|
||||||
|
save = 10000;
|
||||||
|
size = 10000;
|
||||||
|
share = true;
|
||||||
|
};
|
||||||
|
|
||||||
bindkey -v
|
autosuggestion = {
|
||||||
type starship_zle-keymap-select >/dev/null || \
|
enable = true;
|
||||||
{
|
highlight = "fg=#4C566A,underline";
|
||||||
eval "$(starship init zsh)"
|
};
|
||||||
}
|
|
||||||
unalias ls
|
initExtra = ''
|
||||||
clear
|
playshellsound() {
|
||||||
splash
|
if [ $# -ne 1 ]; then
|
||||||
playshellsound ${self}/assets/sound/sh-source.wav
|
echo "Usage: playshellsound <path/to/sound>"
|
||||||
[ ! -f $FLAKEPATH/flake.nix ] && echo "WARNING: flake.nix not found at \$FLAKEPATH. Shell aliases for editing config files won't work correctly!" && echo "Edit the FLAKEPATH session variable in zshell.nix to point to the path where you saved the system configuration flake."
|
return 1
|
||||||
'';
|
fi
|
||||||
|
if ! scheck; then
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
runbg aplay "$1"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
gitcheckout_sfx() {
|
||||||
|
if git checkout "$@"; then
|
||||||
|
playshellsound ${self}/assets/sound/gitcheckout.wav
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
playshellsound ${self}/assets/sound/error.wav
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
gitrebase_sfx() {
|
||||||
|
if git rebase "$@"; then
|
||||||
|
playshellsound ${self}/assets/sound/gitrebase.wav
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
playshellsound ${self}/assets/sound/error.wav
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
gitcommit_sfx() {
|
||||||
|
if git commit "$@"; then
|
||||||
|
playshellsound ${self}/assets/sound/gitcommit.wav
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
playshellsound ${self}/assets/sound/error.wav
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
gitpush_sfx() {
|
||||||
|
if git push "$@"; then
|
||||||
|
playshellsound ${self}/assets/sound/gitpush.wav
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
playshellsound ${self}/assets/sound/error.wav
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
gitpull_sfx() {
|
||||||
|
if git pull "$@"; then
|
||||||
|
playshellsound ${self}/assets/sound/gitpull.wav
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
playshellsound ${self}/assets/sound/error.wav
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
unalias ls
|
||||||
|
ls() {
|
||||||
|
eza -1 --group-directories-first --icons "$@"
|
||||||
|
playshellsound ${self}/assets/sound/ls.wav
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
mkcd() {
|
||||||
|
mkdir -p "$1" && cd "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
y() {
|
||||||
|
local tmp="$(mktemp -t "yazi-cwd.XXXXXX")"
|
||||||
|
yazi "$@" --cwd-file="$tmp"
|
||||||
|
if cwd="$(command cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
|
||||||
|
builtin cd -- "$cwd"
|
||||||
|
fi
|
||||||
|
rm -f -- "$tmp"
|
||||||
|
}
|
||||||
|
|
||||||
|
cd() {
|
||||||
|
local prev_sounds_enabled="$SOUNDS_ENABLED"
|
||||||
|
SOUNDS_ENABLED=0
|
||||||
|
eza -1 --group-directories-first --icons "$@"
|
||||||
|
SOUNDS_ENABLED=$prev_sounds_enabled
|
||||||
|
builtin cd "$@"
|
||||||
|
playshellsound /nix/store/7a9w7np3qrvmzxjbs7xj05qq2yccgfsj-source/assets/sound/cd.wav
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
if [ ! -e $HOME/.zsh_history ]; then
|
||||||
|
touch $HOME/.zsh_history
|
||||||
|
chmod 600 $HOME/.zsh_history
|
||||||
|
fi
|
||||||
|
setopt APPEND_HISTORY # Append history to the history file (don't overwrite)
|
||||||
|
setopt INC_APPEND_HISTORY # Append to the history file incrementally
|
||||||
|
setopt SHARE_HISTORY # Share history between all zsh sessions
|
||||||
|
|
||||||
|
setopt CORRECT
|
||||||
|
setopt NO_NOMATCH
|
||||||
|
setopt LIST_PACKED
|
||||||
|
setopt ALWAYS_TO_END
|
||||||
|
setopt GLOB_COMPLETE
|
||||||
|
setopt COMPLETE_ALIASES
|
||||||
|
setopt COMPLETE_IN_WORD
|
||||||
|
setopt AUTO_CD
|
||||||
|
setopt AUTO_CONTINUE
|
||||||
|
setopt LONG_LIST_JOBS
|
||||||
|
setopt HIST_VERIFY
|
||||||
|
setopt SHARE_HISTORY
|
||||||
|
setopt HIST_IGNORE_SPACE
|
||||||
|
setopt HIST_SAVE_NO_DUPS
|
||||||
|
setopt HIST_IGNORE_ALL_DUPS
|
||||||
|
setopt EXTENDED_GLOB
|
||||||
|
setopt TRANSIENT_RPROMPT
|
||||||
|
setopt INTERACTIVE_COMMENTS
|
||||||
|
|
||||||
|
autoload -U compinit # completion
|
||||||
|
autoload -U terminfo # terminfo keys
|
||||||
|
zmodload -i zsh/complist # menu completion
|
||||||
|
autoload -U promptinit # prompt
|
||||||
|
|
||||||
|
autoload -U up-line-or-beginning-search; zle -N up-line-or-beginning-search
|
||||||
|
autoload -U down-line-or-beginning-search; zle -N down-line-or-beginning-search
|
||||||
|
|
||||||
|
bindkey -v
|
||||||
|
type starship_zle-keymap-select >/dev/null || \
|
||||||
|
{
|
||||||
|
eval "$(starship init zsh)"
|
||||||
|
}
|
||||||
|
unalias ls
|
||||||
|
clear
|
||||||
|
splash
|
||||||
|
playshellsound ${self}/assets/sound/sh-source.wav
|
||||||
|
[ ! -f $FLAKEPATH/flake.nix ] && echo "WARNING: flake.nix not found at \$FLAKEPATH. Shell aliases for editing config files won't work correctly!" && echo "Edit the FLAKEPATH session variable in zshell.nix to point to the path where you saved the system configuration flake."
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,109 +1,120 @@
|
|||||||
{self, ...}: {
|
{ lib, self, config, ... }:
|
||||||
home.file.".config/neofetch/config.conf".text = ''
|
|
||||||
username=$(whoami)
|
|
||||||
name_length=''${#username}
|
|
||||||
total_width=40
|
|
||||||
side_length=$(( (total_width - name_length - 2) / 2 ))
|
|
||||||
|
|
||||||
top_line=$(printf "─%.0s" $(seq 1 $side_length))
|
# This folder is for programs that do not have existing configuration modules in NixOS.
|
||||||
top_line="$top_line $username "
|
# Basically a to-do list for stuff I need to write my own modules for.
|
||||||
top_line+=$(printf "─%.0s" $(seq 1 $side_length))
|
{
|
||||||
|
options = {
|
||||||
|
homeFiles.enable = lib.mkEnableOption "enables declared custom files";
|
||||||
|
};
|
||||||
|
config = {
|
||||||
|
home.file = {
|
||||||
|
".config/neofetch/config.conf".text = ''
|
||||||
|
username=$(whoami)
|
||||||
|
name_length=''${#username}
|
||||||
|
total_width=40
|
||||||
|
side_length=$(( (total_width - name_length - 2) / 2 ))
|
||||||
|
|
||||||
if (( (total_width - name_length) % 2 != 0 )); then
|
top_line=$(printf "─%.0s" $(seq 1 $side_length))
|
||||||
top_line+="─"
|
top_line="$top_line $username "
|
||||||
fi
|
top_line+=$(printf "─%.0s" $(seq 1 $side_length))
|
||||||
|
|
||||||
print_info() {
|
if (( (total_width - name_length) % 2 != 0 )); then
|
||||||
prin "┌$top_line┐"
|
top_line+="─"
|
||||||
info " " distro
|
fi
|
||||||
info " " kernel
|
|
||||||
info " " wm
|
|
||||||
info " " shell
|
|
||||||
info " " term
|
|
||||||
info " " term_font
|
|
||||||
info " " packages
|
|
||||||
prin "└────────────────────────────────────────┘"
|
|
||||||
info cols
|
|
||||||
prin "\n \n \n \n \n ''${cl3} \n \n ''${cl5} \n \n ''${cl2} \n \n ''${cl6} \n \n ''${cl4} \n \n ''${cl1} \n \n ''${cl7} \n \n ''${cl0}"
|
|
||||||
}
|
|
||||||
|
|
||||||
kernel_shorthand="on"
|
print_info() {
|
||||||
distro_shorthand="on"
|
prin "┌$top_line┐"
|
||||||
os_arch="off"
|
info " " distro
|
||||||
uptime_shorthand="on"
|
info " " kernel
|
||||||
memory_percent="on"
|
info " " wm
|
||||||
package_managers="off"
|
info " " shell
|
||||||
shell_path="off"
|
info " " term
|
||||||
shell_version="on"
|
info " " term_font
|
||||||
speed_type="bios_limit"
|
info " " packages
|
||||||
speed_shorthand="on"
|
prin "└────────────────────────────────────────┘"
|
||||||
gtk_shorthand="on"
|
info cols
|
||||||
gtk2="on"
|
prin "\n \n \n \n \n ''${cl3} \n \n ''${cl5} \n \n ''${cl2} \n \n ''${cl6} \n \n ''${cl4} \n \n ''${cl1} \n \n ''${cl7} \n \n ''${cl0}"
|
||||||
gtk3="on"
|
}
|
||||||
colors=(distro)
|
|
||||||
bold="on"
|
|
||||||
underline_enabled="on"
|
|
||||||
underline_char="-"
|
|
||||||
separator=" "
|
|
||||||
color_blocks="off"
|
|
||||||
block_range=(0 15) # Colorblocks
|
|
||||||
|
|
||||||
# Colors for custom colorblocks
|
kernel_shorthand="on"
|
||||||
magenta="\033[1;35m"
|
distro_shorthand="on"
|
||||||
green="\033[1;32m"
|
os_arch="off"
|
||||||
white="\033[1;37m"
|
uptime_shorthand="on"
|
||||||
blue="\033[1;34m"
|
memory_percent="on"
|
||||||
red="\033[1;31m"
|
package_managers="off"
|
||||||
black="\033[1;40;30m"
|
shell_path="off"
|
||||||
yellow="\033[1;33m"
|
shell_version="on"
|
||||||
cyan="\033[1;36m"
|
speed_type="bios_limit"
|
||||||
reset="\033[0m"
|
speed_shorthand="on"
|
||||||
bgyellow="\033[1;43;33m"
|
gtk_shorthand="on"
|
||||||
bgwhite="\033[1;47;37m"
|
gtk2="on"
|
||||||
cl0="''${reset}"
|
gtk3="on"
|
||||||
cl1="''${magenta}"
|
colors=(distro)
|
||||||
cl2="''${green}"
|
bold="on"
|
||||||
cl3="''${white}"
|
underline_enabled="on"
|
||||||
cl4="''${blue}"
|
underline_char="-"
|
||||||
cl5="''${red}"
|
separator=" "
|
||||||
cl6="''${yellow}"
|
color_blocks="off"
|
||||||
cl7="''${cyan}"
|
block_range=(0 15) # Colorblocks
|
||||||
cl8="''${black}"
|
|
||||||
cl9="''${bgyellow}"
|
|
||||||
cl10="''${bgwhite}"
|
|
||||||
|
|
||||||
block_width=4
|
# Colors for custom colorblocks
|
||||||
block_height=1
|
magenta="\033[1;35m"
|
||||||
|
green="\033[1;32m"
|
||||||
|
white="\033[1;37m"
|
||||||
|
blue="\033[1;34m"
|
||||||
|
red="\033[1;31m"
|
||||||
|
black="\033[1;40;30m"
|
||||||
|
yellow="\033[1;33m"
|
||||||
|
cyan="\033[1;36m"
|
||||||
|
reset="\033[0m"
|
||||||
|
bgyellow="\033[1;43;33m"
|
||||||
|
bgwhite="\033[1;47;37m"
|
||||||
|
cl0="''${reset}"
|
||||||
|
cl1="''${magenta}"
|
||||||
|
cl2="''${green}"
|
||||||
|
cl3="''${white}"
|
||||||
|
cl4="''${blue}"
|
||||||
|
cl5="''${red}"
|
||||||
|
cl6="''${yellow}"
|
||||||
|
cl7="''${cyan}"
|
||||||
|
cl8="''${black}"
|
||||||
|
cl9="''${bgyellow}"
|
||||||
|
cl10="''${bgwhite}"
|
||||||
|
|
||||||
bar_char_elapsed="-"
|
block_width=4
|
||||||
bar_char_total="="
|
block_height=1
|
||||||
bar_border="on"
|
|
||||||
bar_length=15
|
|
||||||
bar_color_elapsed="distro"
|
|
||||||
bar_color_total="distro"
|
|
||||||
|
|
||||||
cpu_display="on"
|
bar_char_elapsed="-"
|
||||||
memory_display="on"
|
bar_char_total="="
|
||||||
battery_display="on"
|
bar_border="on"
|
||||||
disk_display="on"
|
bar_length=15
|
||||||
|
bar_color_elapsed="distro"
|
||||||
|
bar_color_total="distro"
|
||||||
|
|
||||||
image_backend="kitty"
|
cpu_display="on"
|
||||||
image_source="${self}/assets/images/nixos-logo.png"
|
memory_display="on"
|
||||||
image_size="250px"
|
battery_display="on"
|
||||||
image_loop="off"
|
disk_display="on"
|
||||||
|
|
||||||
aascii_distro="auto"
|
image_backend="kitty"
|
||||||
ascii_colors=(distro)
|
image_source="${self}/assets/images/nixos-logo.png"
|
||||||
ascii_bold="on"
|
image_size="250px"
|
||||||
|
image_loop="off"
|
||||||
|
|
||||||
crop_mode="normal"
|
aascii_distro="auto"
|
||||||
crop_offset="center"
|
ascii_colors=(distro)
|
||||||
|
ascii_bold="on"
|
||||||
|
|
||||||
gap=2
|
crop_mode="normal"
|
||||||
|
crop_offset="center"
|
||||||
|
|
||||||
yoffset=0
|
gap=2
|
||||||
xoffset=0
|
|
||||||
|
|
||||||
stdout="off"
|
yoffset=0
|
||||||
'';
|
xoffset=0
|
||||||
|
|
||||||
|
stdout="off"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,59 +0,0 @@
|
|||||||
{
|
|
||||||
host,
|
|
||||||
pkgs,
|
|
||||||
self,
|
|
||||||
inputs,
|
|
||||||
username,
|
|
||||||
wallpaper,
|
|
||||||
scheme,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
nur = config.nur;
|
|
||||||
desktop = (host == "oganesson");
|
|
||||||
in {
|
|
||||||
imports = [inputs.home-manager.nixosModules.home-manager];
|
|
||||||
home-manager = {
|
|
||||||
useUserPackages = true;
|
|
||||||
useGlobalPkgs = true;
|
|
||||||
backupFileExtension = "backup";
|
|
||||||
extraSpecialArgs = {inherit self inputs host wallpaper scheme username nur;};
|
|
||||||
users.${username} = {
|
|
||||||
dconf.settings = if desktop then {
|
|
||||||
"org/virt-manager/virt-manager/connections" = {
|
|
||||||
autoconnect = ["qemu:///system"];
|
|
||||||
uris = ["qemu:///system"];
|
|
||||||
};
|
|
||||||
} else {};
|
|
||||||
programs.home-manager.enable = true;
|
|
||||||
imports = [
|
|
||||||
./programs
|
|
||||||
./environment
|
|
||||||
./scripts
|
|
||||||
./files.nix
|
|
||||||
];
|
|
||||||
home = {
|
|
||||||
username = "${username}";
|
|
||||||
homeDirectory = "/home/${username}";
|
|
||||||
stateVersion = "24.05";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
users = {
|
|
||||||
groups.persist = {};
|
|
||||||
users = {
|
|
||||||
root.initialPassword = "1234";
|
|
||||||
${username} = {
|
|
||||||
isNormalUser = true;
|
|
||||||
initialPassword = "1234";
|
|
||||||
shell = pkgs.zsh;
|
|
||||||
extraGroups = ["wheel" "persist" "libvirtd"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
security.sudo.extraConfig = ''
|
|
||||||
${username} ALL=(ALL) NOPASSWD: /etc/profiles/per-user/${username}/bin/rebuild
|
|
||||||
'';
|
|
||||||
nix.settings.allowed-users = ["${username}"];
|
|
||||||
}
|
|
||||||
@@ -1,6 +1,11 @@
|
|||||||
{...}: {
|
{lib, config, ...}: {
|
||||||
programs.autojump = {
|
options = {
|
||||||
enable = true;
|
autojumpConfig.enable = lib.mkEnableOption "enables my autojump options";
|
||||||
enableZshIntegration = true;
|
};
|
||||||
|
config = lib.mkIf config.autojumpConfig.enable {
|
||||||
|
programs.autojump = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,13 @@
|
|||||||
{inputs, ...}: {
|
{lib, config, inputs, ...}: {
|
||||||
programs.bat = {
|
options = {
|
||||||
enable = true;
|
batConfig.enable = lib.mkEnableOption "enables my bat options";
|
||||||
config = {
|
};
|
||||||
pager = "less -FR";
|
config = lib.mkIf config.batConfig.enable {
|
||||||
|
programs.bat = {
|
||||||
|
enable = true;
|
||||||
|
config = {
|
||||||
|
pager = "less -FR";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,19 +1,24 @@
|
|||||||
{pkgs, ...}: {
|
{lib, config, pkgs, ...}: {
|
||||||
programs.btop = {
|
options = {
|
||||||
enable = true;
|
btopConfig.enable = lib.mkEnableOption "enables my btop config";
|
||||||
|
|
||||||
settings = {
|
|
||||||
update_ms = 500;
|
|
||||||
vim_keys = true;
|
|
||||||
color_theme = "nord";
|
|
||||||
theme_background = true;
|
|
||||||
temp_scale = "fahrenheit";
|
|
||||||
graph_symbol = "block";
|
|
||||||
disks_filter = "exclude=/boot /";
|
|
||||||
show_swap = false;
|
|
||||||
swap_disk = false;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
config = lib.mkIf config.btopConfig.enable {
|
||||||
|
programs.btop = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
home.packages = with pkgs; [nvtopPackages.intel];
|
settings = {
|
||||||
|
update_ms = 500;
|
||||||
|
vim_keys = true;
|
||||||
|
color_theme = "nord";
|
||||||
|
theme_background = true;
|
||||||
|
temp_scale = "fahrenheit";
|
||||||
|
graph_symbol = "block";
|
||||||
|
disks_filter = "exclude=/boot /";
|
||||||
|
show_swap = false;
|
||||||
|
swap_disk = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = with pkgs; [nvtopPackages.intel];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
{
|
{lib, config, inputs, pkgs, ... }: {
|
||||||
inputs,
|
options = {
|
||||||
pkgs,
|
cavaConfig.enable = lib.mkEnableOption "enables my cava settings";
|
||||||
...
|
};
|
||||||
}: {
|
config = lib.mkIf config.cavaConfig.enable {
|
||||||
programs.cava = {
|
programs.cava = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,14 @@
|
|||||||
{...}: {
|
{lib, config, ...}: {
|
||||||
programs.eza = {
|
options = {
|
||||||
enable = true;
|
ezaConfig.enable = lib.mkEnableOption "enables my eza options";
|
||||||
enableZshIntegration = false;
|
};
|
||||||
extraOptions = ["-1" "-h" "--group-directories-first"];
|
config = lib.mkIf config.ezaConfig.enable {
|
||||||
icons = "auto";
|
programs.eza = {
|
||||||
git = true;
|
enable = true;
|
||||||
|
enableZshIntegration = false;
|
||||||
|
extraOptions = ["-1" "-h" "--group-directories-first"];
|
||||||
|
icons = "auto";
|
||||||
|
git = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,127 +1,127 @@
|
|||||||
{
|
{lib, config, nur, username, self, ... }: {
|
||||||
nur,
|
options = {
|
||||||
username,
|
firefoxConfig.enable = lib.mkEnableOption "enables my firefox configuration";
|
||||||
self,
|
};
|
||||||
...
|
config = lib.mkIf config.firefoxConfig.enable {
|
||||||
}: {
|
programs.firefox = {
|
||||||
programs.firefox = {
|
enable = true;
|
||||||
enable = true;
|
policies = {
|
||||||
policies = {
|
DisableTelemetry = true;
|
||||||
DisableTelemetry = true;
|
DisableFirefoxStudies = true;
|
||||||
DisableFirefoxStudies = true;
|
EnableTrackingProtection = {
|
||||||
EnableTrackingProtection = {
|
Value = true;
|
||||||
Value = true;
|
Locked = true;
|
||||||
Locked = true;
|
Cryptomining = true;
|
||||||
Cryptomining = true;
|
Fingerprinting = true;
|
||||||
Fingerprinting = true;
|
};
|
||||||
|
DisablePocket = true;
|
||||||
|
DisableFirefoxAccounts = true;
|
||||||
|
DisableAccounts = true;
|
||||||
|
DisableFirefoxScreenshots = true;
|
||||||
|
OverrideFirstRunPage = "";
|
||||||
|
OverridePostUpdatePage = "";
|
||||||
|
DontCheckDefaultBrowser = true;
|
||||||
|
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
|
||||||
|
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
|
||||||
|
SearchBar = "unified"; # alternative: "separate" isDefault = true;
|
||||||
|
};
|
||||||
|
profiles.${username} = {
|
||||||
|
name = "${username}";
|
||||||
|
bookmarks = [
|
||||||
|
{
|
||||||
|
name = "Nix Sites";
|
||||||
|
toolbar = true;
|
||||||
|
bookmarks = [
|
||||||
|
{
|
||||||
|
name = "NixOS Wiki";
|
||||||
|
url = "https://nixos.wiki/wiki/Main_Page";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "Nixpkgs Reference Manual";
|
||||||
|
url = "https://nixos.org/manual/nixpkgs/stable/";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "NixOS Manual";
|
||||||
|
url = "https://nixos.org/manual/nixos/stable/";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "NixOS Options";
|
||||||
|
url = "https://search.nixos.org/options";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "Home Manager Options";
|
||||||
|
url = "https://home-manager-options.extranix.com/";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "Nixpkgs Package Search";
|
||||||
|
url = "https://search.nixos.org/packages";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "Noogle - Nixpkgs Function Docs";
|
||||||
|
url = "https://noogle.dev";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "Nixvim Docs";
|
||||||
|
url = "https://nix-community.github.io/nixvim/";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "Rust Manual";
|
||||||
|
url = "https://doc.rust-lang.org/book/ch01-03-hello-cargo.html";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "ChatGPT";
|
||||||
|
url = "https://chatgpt.com/";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "DataAnnotation";
|
||||||
|
url = "https://app.dataannotation.tech/users/sign_in";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "Nerd Fonts Cheatsheet";
|
||||||
|
url = "https://www.nerdfonts.com/cheat-sheet";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
extensions = with nur.repos.rycee.firefox-addons; [
|
||||||
|
darkreader
|
||||||
|
adnauseam
|
||||||
|
cookie-autodelete
|
||||||
|
disconnect
|
||||||
|
firefox-color
|
||||||
|
vimium
|
||||||
|
firenvim
|
||||||
|
privacy-badger
|
||||||
|
new-tab-override
|
||||||
|
];
|
||||||
|
extraConfig = ''
|
||||||
|
"browser.startup.homepage" = "${self}/glasshouse-desktop/home/firefox/homepage.html";
|
||||||
|
"browser.active_color" = "#EE0000";
|
||||||
|
"browser.active_color.dark" = "#FF6666";
|
||||||
|
"browser.anchor_color" = "#0000EE";
|
||||||
|
"browser.anchor_color.dark" = "#8C8CFF";
|
||||||
|
"browser.display.background_color" = "#FFFFFF";
|
||||||
|
"browser.display.background_color.dark" = "#1C1B22";
|
||||||
|
"browser.display.document_color_use" = "1";
|
||||||
|
"browser.display.foreground_color" = "#000000";
|
||||||
|
"browser.display.foreground_color.dark" = "#FBFBFE";
|
||||||
|
"browser.display.suppress_canvas_background_image_on_forced_colors" = "true";
|
||||||
|
"browser.display.use_system_colors" = "false";
|
||||||
|
"browser.newtabpage.activity-stream.newNewtabExperience.colors" = "#0090ED,#FF4F5F,#2AC3A2,#FF7139,#A172FF,#FFA437,#FF2A8A";
|
||||||
|
"browser.theme.colorway-closet" = "true";
|
||||||
|
"browser.theme.colorway-migration" = "true";
|
||||||
|
"browser.theme.windows.accent-color-in-tabs.enabled" = "false";
|
||||||
|
"browser.visited_color" = "#551A8B";
|
||||||
|
"browser.visited_color.dark" = "#FFADFF";
|
||||||
|
"browser.newtabpage.pinned" = [{
|
||||||
|
title = "Homepage";
|
||||||
|
url = "${self}/glasshouse-desktop/home/firefox/homepage.html";
|
||||||
|
}];
|
||||||
|
"devtools.defaultColorUnit" = "authored";
|
||||||
|
"editor.background_color" = "#FFFFFF";
|
||||||
|
"editor.use_custom_colors" = "false";
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
DisablePocket = true;
|
|
||||||
DisableFirefoxAccounts = true;
|
|
||||||
DisableAccounts = true;
|
|
||||||
DisableFirefoxScreenshots = true;
|
|
||||||
OverrideFirstRunPage = "";
|
|
||||||
OverridePostUpdatePage = "";
|
|
||||||
DontCheckDefaultBrowser = true;
|
|
||||||
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
|
|
||||||
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
|
|
||||||
SearchBar = "unified"; # alternative: "separate" isDefault = true;
|
|
||||||
};
|
|
||||||
profiles.${username} = {
|
|
||||||
name = "${username}";
|
|
||||||
bookmarks = [
|
|
||||||
{
|
|
||||||
name = "Nix Sites";
|
|
||||||
toolbar = true;
|
|
||||||
bookmarks = [
|
|
||||||
{
|
|
||||||
name = "NixOS Wiki";
|
|
||||||
url = "https://nixos.wiki/wiki/Main_Page";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "Nixpkgs Reference Manual";
|
|
||||||
url = "https://nixos.org/manual/nixpkgs/stable/";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "NixOS Manual";
|
|
||||||
url = "https://nixos.org/manual/nixos/stable/";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "NixOS Options";
|
|
||||||
url = "https://search.nixos.org/options";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "Home Manager Options";
|
|
||||||
url = "https://home-manager-options.extranix.com/";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "Nixpkgs Package Search";
|
|
||||||
url = "https://search.nixos.org/packages";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "Noogle - Nixpkgs Function Docs";
|
|
||||||
url = "https://noogle.dev";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "Nixvim Docs";
|
|
||||||
url = "https://nix-community.github.io/nixvim/";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "Rust Manual";
|
|
||||||
url = "https://doc.rust-lang.org/book/ch01-03-hello-cargo.html";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "ChatGPT";
|
|
||||||
url = "https://chatgpt.com/";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "DataAnnotation";
|
|
||||||
url = "https://app.dataannotation.tech/users/sign_in";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "Nerd Fonts Cheatsheet";
|
|
||||||
url = "https://www.nerdfonts.com/cheat-sheet";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
extensions = with nur.repos.rycee.firefox-addons; [
|
|
||||||
darkreader
|
|
||||||
adnauseam
|
|
||||||
cookie-autodelete
|
|
||||||
disconnect
|
|
||||||
firefox-color
|
|
||||||
vimium
|
|
||||||
firenvim
|
|
||||||
privacy-badger
|
|
||||||
new-tab-override
|
|
||||||
];
|
|
||||||
extraConfig = ''
|
|
||||||
"browser.startup.homepage" = "${self}/glasshouse-desktop/home/firefox/homepage.html";
|
|
||||||
"browser.active_color" = "#EE0000";
|
|
||||||
"browser.active_color.dark" = "#FF6666";
|
|
||||||
"browser.anchor_color" = "#0000EE";
|
|
||||||
"browser.anchor_color.dark" = "#8C8CFF";
|
|
||||||
"browser.display.background_color" = "#FFFFFF";
|
|
||||||
"browser.display.background_color.dark" = "#1C1B22";
|
|
||||||
"browser.display.document_color_use" = "1";
|
|
||||||
"browser.display.foreground_color" = "#000000";
|
|
||||||
"browser.display.foreground_color.dark" = "#FBFBFE";
|
|
||||||
"browser.display.suppress_canvas_background_image_on_forced_colors" = "true";
|
|
||||||
"browser.display.use_system_colors" = "false";
|
|
||||||
"browser.newtabpage.activity-stream.newNewtabExperience.colors" = "#0090ED,#FF4F5F,#2AC3A2,#FF7139,#A172FF,#FFA437,#FF2A8A";
|
|
||||||
"browser.theme.colorway-closet" = "true";
|
|
||||||
"browser.theme.colorway-migration" = "true";
|
|
||||||
"browser.theme.windows.accent-color-in-tabs.enabled" = "false";
|
|
||||||
"browser.visited_color" = "#551A8B";
|
|
||||||
"browser.visited_color.dark" = "#FFADFF";
|
|
||||||
"browser.newtabpage.pinned" = [{
|
|
||||||
title = "Homepage";
|
|
||||||
url = "${self}/glasshouse-desktop/home/firefox/homepage.html";
|
|
||||||
}];
|
|
||||||
"devtools.defaultColorUnit" = "authored";
|
|
||||||
"editor.background_color" = "#FFFFFF";
|
|
||||||
"editor.use_custom_colors" = "false";
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,23 +1,28 @@
|
|||||||
{lib, ...}: {
|
{config, lib, ...}: {
|
||||||
programs.fuzzel = {
|
options = {
|
||||||
enable = true;
|
fuzzelConfig.enable = lib.mkEnableOption "enables my fuzzel configuration";
|
||||||
settings = {
|
};
|
||||||
main = {
|
config = lib.mkIf config.fuzzelConfig.enable {
|
||||||
line-height = 25;
|
programs.fuzzel = {
|
||||||
fields = "name,generic,comment,categories,filename,keywords";
|
enable = true;
|
||||||
terminal = "kitty";
|
settings = {
|
||||||
prompt = "' ➜ '";
|
main = {
|
||||||
layer = "top";
|
line-height = 25;
|
||||||
lines = 10;
|
fields = "name,generic,comment,categories,filename,keywords";
|
||||||
width = 35;
|
terminal = "kitty";
|
||||||
horizontal-pad = 25;
|
prompt = "' ➜ '";
|
||||||
inner-pad = 5;
|
layer = "top";
|
||||||
|
lines = 10;
|
||||||
|
width = 35;
|
||||||
|
horizontal-pad = 25;
|
||||||
|
inner-pad = 5;
|
||||||
|
};
|
||||||
|
border = {
|
||||||
|
radius = 15;
|
||||||
|
width = 3;
|
||||||
|
};
|
||||||
|
colors.background = lib.mkForce "2e344080";
|
||||||
};
|
};
|
||||||
border = {
|
|
||||||
radius = 15;
|
|
||||||
width = 3;
|
|
||||||
};
|
|
||||||
colors.background = lib.mkForce "2e344080";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
{...}: {
|
{lib, config, ...}: {
|
||||||
programs.fzf = {
|
options = {
|
||||||
enable = true;
|
fzfConfig.enable = lib.mkEnableOption "enables my fzf options";
|
||||||
enableZshIntegration = true;
|
};
|
||||||
|
config = lib.mkIf config.fzfConfig.enable {
|
||||||
|
programs.fzf = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,12 @@
|
|||||||
{username, ...}: {
|
{lib, config, username, ...}: {
|
||||||
programs.git = {
|
options = {
|
||||||
enable = true;
|
gitConfig.enable = lib.mkEnableOption "enables my git configuration";
|
||||||
userEmail = "${username}@gmail.com";
|
};
|
||||||
userName = "${username}";
|
config = lib.mkIf config.gitConfig.enable {
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
userEmail = "${username}@gmail.com";
|
||||||
|
userName = "${username}";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,73 +1,74 @@
|
|||||||
{
|
{lib, config, pkgs, scheme, ... }: {
|
||||||
pkgs,
|
options = {
|
||||||
scheme,
|
kittyConfig.enable = lib.mkEnableOption "enables my kitty configuration";
|
||||||
...
|
};
|
||||||
}: {
|
config = lib.mkIf config.kittyConfig.enable {
|
||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
confirm_os_window_close = 0;
|
confirm_os_window_close = 0;
|
||||||
window_padding_width = 4;
|
window_padding_width = 4;
|
||||||
scrollback_lines = 10000;
|
scrollback_lines = 10000;
|
||||||
enable_audio_bell = false;
|
enable_audio_bell = false;
|
||||||
allow_remote_control = true;
|
allow_remote_control = true;
|
||||||
mouse_hide_wait = 60;
|
mouse_hide_wait = 60;
|
||||||
|
|
||||||
## Tabs
|
## Tabs
|
||||||
tab_title_template = "{index}";
|
tab_title_template = "{index}";
|
||||||
active_tab_font_style = "normal";
|
active_tab_font_style = "normal";
|
||||||
inactive_tab_font_style = "normal";
|
inactive_tab_font_style = "normal";
|
||||||
tab_bar_style = "powerline";
|
tab_bar_style = "powerline";
|
||||||
tab_powerline_style = "round";
|
tab_powerline_style = "round";
|
||||||
|
};
|
||||||
|
|
||||||
|
keybindings = {
|
||||||
|
## Tabs
|
||||||
|
"alt+1" = "goto_tab 1";
|
||||||
|
"alt+2" = "goto_tab 2";
|
||||||
|
"alt+3" = "goto_tab 3";
|
||||||
|
"alt+4" = "goto_tab 4";
|
||||||
|
|
||||||
|
## Unbind
|
||||||
|
"ctrl+shift+left" = "no_op";
|
||||||
|
"ctrl+shift+right" = "no_op";
|
||||||
|
};
|
||||||
|
|
||||||
|
extraConfig = ''
|
||||||
|
background #${scheme.base00}
|
||||||
|
foreground #${scheme.base05}
|
||||||
|
selection_background #${scheme.base05}
|
||||||
|
selection_foreground #${scheme.base00}
|
||||||
|
url_color #${scheme.base04}
|
||||||
|
cursor #${scheme.base05}
|
||||||
|
active_border_color #${scheme.base03}
|
||||||
|
inactive_border_color #${scheme.base01}
|
||||||
|
active_tab_background #${scheme.base00}
|
||||||
|
active_tab_foreground #${scheme.base05}
|
||||||
|
inactive_tab_background #${scheme.base01}
|
||||||
|
inactive_tab_foreground #${scheme.base04}
|
||||||
|
tab_bar_background #${scheme.base01}
|
||||||
|
|
||||||
|
# normal
|
||||||
|
color0 #${scheme.base01}
|
||||||
|
color1 #${scheme.base08}
|
||||||
|
color2 #${scheme.base0B}
|
||||||
|
color3 #${scheme.base0A}
|
||||||
|
color4 #${scheme.base0D}
|
||||||
|
color5 #${scheme.base0E}
|
||||||
|
color6 #${scheme.base0C}
|
||||||
|
color7 #${scheme.base05}
|
||||||
|
|
||||||
|
# bright
|
||||||
|
color8 #${scheme.base03}
|
||||||
|
color9 #${scheme.base09}
|
||||||
|
color10 #${scheme.base01}
|
||||||
|
color11 #${scheme.base02}
|
||||||
|
color12 #${scheme.base04}
|
||||||
|
color13 #${scheme.base06}
|
||||||
|
color14 #${scheme.base0F}
|
||||||
|
color15 #${scheme.base07}
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
keybindings = {
|
|
||||||
## Tabs
|
|
||||||
"alt+1" = "goto_tab 1";
|
|
||||||
"alt+2" = "goto_tab 2";
|
|
||||||
"alt+3" = "goto_tab 3";
|
|
||||||
"alt+4" = "goto_tab 4";
|
|
||||||
|
|
||||||
## Unbind
|
|
||||||
"ctrl+shift+left" = "no_op";
|
|
||||||
"ctrl+shift+right" = "no_op";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraConfig = ''
|
|
||||||
background #${scheme.base00}
|
|
||||||
foreground #${scheme.base05}
|
|
||||||
selection_background #${scheme.base05}
|
|
||||||
selection_foreground #${scheme.base00}
|
|
||||||
url_color #${scheme.base04}
|
|
||||||
cursor #${scheme.base05}
|
|
||||||
active_border_color #${scheme.base03}
|
|
||||||
inactive_border_color #${scheme.base01}
|
|
||||||
active_tab_background #${scheme.base00}
|
|
||||||
active_tab_foreground #${scheme.base05}
|
|
||||||
inactive_tab_background #${scheme.base01}
|
|
||||||
inactive_tab_foreground #${scheme.base04}
|
|
||||||
tab_bar_background #${scheme.base01}
|
|
||||||
|
|
||||||
# normal
|
|
||||||
color0 #${scheme.base01}
|
|
||||||
color1 #${scheme.base08}
|
|
||||||
color2 #${scheme.base0B}
|
|
||||||
color3 #${scheme.base0A}
|
|
||||||
color4 #${scheme.base0D}
|
|
||||||
color5 #${scheme.base0E}
|
|
||||||
color6 #${scheme.base0C}
|
|
||||||
color7 #${scheme.base05}
|
|
||||||
|
|
||||||
# bright
|
|
||||||
color8 #${scheme.base03}
|
|
||||||
color9 #${scheme.base09}
|
|
||||||
color10 #${scheme.base01}
|
|
||||||
color11 #${scheme.base02}
|
|
||||||
color12 #${scheme.base04}
|
|
||||||
color13 #${scheme.base06}
|
|
||||||
color14 #${scheme.base0F}
|
|
||||||
color15 #${scheme.base07}
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,15 @@
|
|||||||
{username, ...}: let
|
{lib, config, username, ...}: let
|
||||||
home = "/home/${username}";
|
home = "/home/${username}";
|
||||||
in {
|
in {
|
||||||
programs.password-store = {
|
options = {
|
||||||
enable = true;
|
passConfig.enable = lib.mkEnableOption "enables my pass config";
|
||||||
settings = {
|
};
|
||||||
PASSWORD_STORE_DIR = "${home}/.password-store";
|
config = lib.mkIf config.passConfig.enable {
|
||||||
|
programs.password-store = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
PASSWORD_STORE_DIR = "${home}/.password-store";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
{...}: {
|
{lib, config, ...}: {
|
||||||
programs.yazi = {
|
options = {
|
||||||
enable = true;
|
yaziConfig.enable = lib.mkEnableOption "enables my yazi config";
|
||||||
enableZshIntegration = true;
|
};
|
||||||
|
config = lib.mkIf config.yaziConfig.enable {
|
||||||
|
programs.yazi = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,70 +1,94 @@
|
|||||||
{
|
{
|
||||||
host,
|
host,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
self,
|
self,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
keyring = import ./wm-controls/keyring.nix {
|
keyring = import ./wm-controls/keyring.nix { inherit self pkgs; };
|
||||||
self = self;
|
invoke = import ./commands/invoke.nix { inherit self pkgs; };
|
||||||
pkgs = pkgs;
|
splash = import ./commands/splash.nix { inherit self pkgs; };
|
||||||
};
|
runbg = import ./commands/runbg.nix { inherit self pkgs; };
|
||||||
invoke = import ./commands/invoke.nix {
|
garbage-collect = import ./nix/garbage-collect.nix { inherit self pkgs; };
|
||||||
self = self;
|
nsp = import ./nix/nsp.nix { inherit self pkgs; };
|
||||||
pkgs = pkgs;
|
scheck = import ./wm-controls/s_check.nix { inherit self pkgs; };
|
||||||
};
|
switchmon = import ./wm-controls/switchmon.nix { inherit self pkgs; };
|
||||||
splash = import ./commands/splash.nix {
|
rebuild = import ./nix/rebuild.nix { inherit host self pkgs; };
|
||||||
self = self;
|
moveonscreen = import ./wm-controls/moveonscreen.nix { inherit pkgs; };
|
||||||
pkgs = pkgs;
|
toolbelt = import ./commands/toolbelt.nix { inherit pkgs; };
|
||||||
};
|
viconf = import ./commands/viconf.nix { inherit pkgs; };
|
||||||
scheck = import ./commands/s_check.nix {
|
chscheme = import ./wm-controls/chscheme.nix { inherit pkgs; };
|
||||||
self = self;
|
chpaper = import ./wm-controls/chpaper.nix { inherit pkgs; };
|
||||||
pkgs = pkgs;
|
scriptOverride =
|
||||||
};
|
doc:
|
||||||
runbg = import ./commands/runbg.nix {
|
group:
|
||||||
self = self;
|
name:
|
||||||
pkgs = pkgs;
|
lib.mkEnableOption
|
||||||
};
|
"${doc}" // {
|
||||||
garbage-collect = import ./nix/garbage-collect.nix {
|
default = config.movScripts.enable && config.movScripts.${group}.enable;
|
||||||
self = self;
|
};
|
||||||
pkgs = pkgs;
|
|
||||||
};
|
|
||||||
nsp = import ./nix/nsp.nix {
|
|
||||||
self = self;
|
|
||||||
pkgs = pkgs;
|
|
||||||
};
|
|
||||||
switchmon = import ./wm-controls/switchmon.nix {
|
|
||||||
self = self;
|
|
||||||
pkgs = pkgs;
|
|
||||||
};
|
|
||||||
rebuild = import ./nix/rebuild.nix {
|
|
||||||
host = host;
|
|
||||||
self = self;
|
|
||||||
pkgs = pkgs;
|
|
||||||
};
|
|
||||||
moveonscreen = import ./wm-controls/moveonscreen.nix {pkgs = pkgs;};
|
|
||||||
toolbelt = import ./commands/toolbelt.nix {pkgs = pkgs;};
|
|
||||||
viconf = import ./commands/viconf.nix {
|
|
||||||
pkgs = pkgs;
|
|
||||||
};
|
|
||||||
chscheme = import ./wm-controls/chscheme.nix {
|
|
||||||
pkgs = pkgs;
|
|
||||||
};
|
|
||||||
chpaper = import ./wm-controls/chpaper.nix {pkgs = pkgs;};
|
|
||||||
in {
|
in {
|
||||||
home.packages = [
|
options = {
|
||||||
chpaper
|
movScripts.enable = lib.mkEnableOption "Enables all pagedmov's scripts";
|
||||||
chscheme
|
|
||||||
keyring
|
# Enable or disable by group
|
||||||
garbage-collect
|
movScripts.commandScripts.enable =
|
||||||
invoke
|
lib.mkEnableOption "Enables all command scripts";
|
||||||
rebuild
|
movScripts.hyprlandControls.enable =
|
||||||
nsp
|
lib.mkEnableOption "Enables all Hyprland control scripts";
|
||||||
runbg
|
movScripts.nixShortcuts.enable =
|
||||||
scheck
|
lib.mkEnableOption "Enables all Nix shortcut scripts";
|
||||||
splash
|
|
||||||
switchmon
|
# Individual options using scriptOverride or mkEnableOption directly
|
||||||
moveonscreen
|
movScripts.commandScripts.invoke.enable =
|
||||||
toolbelt
|
scriptOverride "Enables the invoke command" "commandScripts" "invoke";
|
||||||
viconf
|
movScripts.commandScripts.runbg.enable =
|
||||||
];
|
scriptOverride "Enables the runbg command - written by FrostPhoenix" "commandScripts" "runbg";
|
||||||
|
movScripts.commandScripts.splash.enable =
|
||||||
|
scriptOverride "Enables the splash screen when opening a terminal" "commandScripts" "splash";
|
||||||
|
movScripts.commandScripts.toolbelt.enable =
|
||||||
|
scriptOverride "Enables the toolbelt command" "commandScripts" "toolbelt";
|
||||||
|
movScripts.commandScripts.viconf.enable =
|
||||||
|
scriptOverride "Enables the viconf command" "commandScripts" "viconf";
|
||||||
|
|
||||||
|
movScripts.hyprlandControls.chpaper.enable =
|
||||||
|
scriptOverride "Enables the chpaper command" "hyprlandControls" "chpaper";
|
||||||
|
movScripts.hyprlandControls.scheck.enable =
|
||||||
|
scriptOverride "Enables the scheck command" "hyprlandControls" "scheck";
|
||||||
|
movScripts.hyprlandControls.chscheme.enable =
|
||||||
|
scriptOverride "Enables the chscheme command" "hyprlandControls" "chscheme";
|
||||||
|
movScripts.hyprlandControls.keyring.enable =
|
||||||
|
scriptOverride "Enables the keyring command" "hyprlandControls" "keyring";
|
||||||
|
movScripts.hyprlandControls.moveonscreen.enable =
|
||||||
|
scriptOverride "Ensures floating windows remain on screen" "hyprlandControls" "moveonscreen";
|
||||||
|
movScripts.hyprlandControls.switchmon.enable =
|
||||||
|
scriptOverride "Moves cursor to the center of the second monitor" "hyprlandControls" "switchmon";
|
||||||
|
|
||||||
|
movScripts.nixShortcuts.garbage-collect.enable =
|
||||||
|
scriptOverride "Enables the garbage-collect script" "nixShortcuts" "garbage-collect";
|
||||||
|
movScripts.nixShortcuts.nsp.enable =
|
||||||
|
scriptOverride "Enables nsp as an alias for 'nix-shell -p'" "nixShortcuts" "nsp";
|
||||||
|
movScripts.nixShortcuts.rebuild.enable =
|
||||||
|
scriptOverride "Enables rebuild as an alias for 'sudo nixos-rebuild switch'" "nixShortcuts" "rebuild";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf config.movScripts.enable {
|
||||||
|
home.packages = lib.optionals config.movScripts.commandScripts.invoke.enable [ invoke ]
|
||||||
|
++ lib.optionals config.movScripts.commandScripts.runbg.enable [ runbg ]
|
||||||
|
++ lib.optionals config.movScripts.commandScripts.splash.enable [ splash ]
|
||||||
|
++ lib.optionals config.movScripts.commandScripts.toolbelt.enable [ toolbelt ]
|
||||||
|
++ lib.optionals config.movScripts.commandScripts.viconf.enable [ viconf ]
|
||||||
|
|
||||||
|
++ lib.optionals config.movScripts.hyprlandControls.chpaper.enable [ chpaper ]
|
||||||
|
++ lib.optionals config.movScripts.hyprlandControls.scheck.enable [ scheck ]
|
||||||
|
++ lib.optionals config.movScripts.hyprlandControls.chscheme.enable [ chscheme ]
|
||||||
|
++ lib.optionals config.movScripts.hyprlandControls.keyring.enable [ keyring ]
|
||||||
|
++ lib.optionals config.movScripts.hyprlandControls.moveonscreen.enable [ moveonscreen ]
|
||||||
|
++ lib.optionals config.movScripts.hyprlandControls.switchmon.enable [ switchmon ]
|
||||||
|
|
||||||
|
++ lib.optionals config.movScripts.nixShortcuts.garbage-collect.enable [ garbage-collect ]
|
||||||
|
++ lib.optionals config.movScripts.nixShortcuts.nsp.enable [ nsp ]
|
||||||
|
++ lib.optionals config.movScripts.nixShortcuts.rebuild.enable [ rebuild ];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
nixpkgs,
|
|
||||||
config,
|
|
||||||
self,
|
|
||||||
username,
|
|
||||||
host,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = [
|
|
||||||
./hardware
|
|
||||||
./software
|
|
||||||
./environment
|
|
||||||
../home/home-manager.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
30
modules/sys/default.nix
Normal file
30
modules/sys/default.nix
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
inputs,
|
||||||
|
nixpkgs,
|
||||||
|
config,
|
||||||
|
self,
|
||||||
|
username,
|
||||||
|
host,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
./hardware
|
||||||
|
./software
|
||||||
|
./environment
|
||||||
|
];
|
||||||
|
|
||||||
|
networkModule.enable = lib.mkDefault false;
|
||||||
|
nixSettings.enable = lib.mkDefault false;
|
||||||
|
bootLoader.enable = lib.mkDefault false;
|
||||||
|
issue.enable = lib.mkDefault false;
|
||||||
|
sddmConfig.enable = lib.mkDefault false;
|
||||||
|
stylixConfig.enable = lib.mkDefault false;
|
||||||
|
gamingPkgs.enable = lib.mkDefault false;
|
||||||
|
steamConfig.enable = lib.mkDefault false;
|
||||||
|
sysPkgs.enable = lib.mkDefault false;
|
||||||
|
sysProgs.enable = lib.mkDefault false;
|
||||||
|
sysServices.enable = lib.mkDefault false;
|
||||||
|
virtConfig.enable = lib.mkDefault false;
|
||||||
|
powerProfiles.enable = lib.mkDefault false;
|
||||||
|
}
|
||||||
@@ -11,5 +11,6 @@
|
|||||||
imports =
|
imports =
|
||||||
[(import ./sddm.nix)]
|
[(import ./sddm.nix)]
|
||||||
++ [(import ./issue.nix)]
|
++ [(import ./issue.nix)]
|
||||||
|
++ [(import ./nix.nix)]
|
||||||
++ [(import ./stylix.nix)];
|
++ [(import ./stylix.nix)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,29 +1,34 @@
|
|||||||
{...}: {
|
{lib, config, ...}: {
|
||||||
environment.etc."issue".text = ''
|
options = {
|
||||||
|
issue.enable = lib.mkEnableOption "enables custom /etc/issue splash screen for the tty";
|
||||||
|
};
|
||||||
|
config = lib.mkIf config.issue.enable {
|
||||||
|
environment.etc."issue".text = ''
|
||||||
|
|
||||||
\e[38;5;27m▓▓▓▓ \e[38;5;81m▒▒▒▒ ▒▒▒▒
|
\e[38;5;27m▓▓▓▓ \e[38;5;81m▒▒▒▒ ▒▒▒▒
|
||||||
\e[38;5;27m▓▓▓▓ \e[38;5;81m▒▒▒▒ ▒▒▒▒ \e[38;5;27m ▓▓▓
|
\e[38;5;27m▓▓▓▓ \e[38;5;81m▒▒▒▒ ▒▒▒▒ \e[38;5;27m ▓▓▓
|
||||||
\e[38;5;27m▓▓▓▓ \e[38;5;81m▒▒▒▒▒▒▒▒ \e[38;5;27m ▓▓▓ ▓▓ ▓▓▓▓▓ \e[38;5;81m ▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒
|
\e[38;5;27m▓▓▓▓ \e[38;5;81m▒▒▒▒▒▒▒▒ \e[38;5;27m ▓▓▓ ▓▓ ▓▓▓▓▓ \e[38;5;81m ▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒
|
||||||
\e[38;5;27m▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓\e[38;5;81m▒▒▒▒▒▒ \e[38;5;27m▓▓ \e[38;5;27m ▓▓▓▓▓ ▓▓▓▓ ▓▓▓ \e[38;5;81m ▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒
|
\e[38;5;27m▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓\e[38;5;81m▒▒▒▒▒▒ \e[38;5;27m▓▓ \e[38;5;27m ▓▓▓▓▓ ▓▓▓▓ ▓▓▓ \e[38;5;81m ▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒
|
||||||
\e[38;5;27m▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓\e[38;5;81m▒▒▒▒ \e[38;5;27m▓▓▓ \e[38;5;27m ▓▓▓▓▓▓ ▓▓▓▓ \e[38;5;81m ▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒ ▒▒▒▒▒
|
\e[38;5;27m▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓\e[38;5;81m▒▒▒▒ \e[38;5;27m▓▓▓ \e[38;5;27m ▓▓▓▓▓▓ ▓▓▓▓ \e[38;5;81m ▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒ ▒▒▒▒▒
|
||||||
\e[38;5;81m▒▒▒▒ \e[38;5;81m▒▒▒▒ \e[38;5;27m▓▓▓▓ \e[38;5;27m ▓▓▓▓▓▓▓ ▓▓▓▓ \e[38;5;81m ▒▒▒▒ ▒▒▒▒ ▒▒▒▒
|
\e[38;5;81m▒▒▒▒ \e[38;5;81m▒▒▒▒ \e[38;5;27m▓▓▓▓ \e[38;5;27m ▓▓▓▓▓▓▓ ▓▓▓▓ \e[38;5;81m ▒▒▒▒ ▒▒▒▒ ▒▒▒▒
|
||||||
\e[38;5;81m▒▒▒▒ \e[38;5;81m▒▒▒▒\e[38;5;27m▓▓▓▓ \e[38;5;27m ▓▓▓▓▓▓▓▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓ ▓▓▓ \e[38;5;81m ▒▒▒ ▒▒▒ ▒▒▒▒
|
\e[38;5;81m▒▒▒▒ \e[38;5;81m▒▒▒▒\e[38;5;27m▓▓▓▓ \e[38;5;27m ▓▓▓▓▓▓▓▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓ ▓▓▓ \e[38;5;81m ▒▒▒ ▒▒▒ ▒▒▒▒
|
||||||
\e[38;5;81m▒▒▒▒▒▒▒▒▒▒▒ \e[38;5;81m▒▒\e[38;5;27m▓▓▓▓ \e[38;5;27m ▓▓▓▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓▓ \e[38;5;81m ▒▒▒ ▒▒▒ ▒▒▒▒▒
|
\e[38;5;81m▒▒▒▒▒▒▒▒▒▒▒ \e[38;5;81m▒▒\e[38;5;27m▓▓▓▓ \e[38;5;27m ▓▓▓▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓▓ \e[38;5;81m ▒▒▒ ▒▒▒ ▒▒▒▒▒
|
||||||
\e[38;5;81m ▒▒▒▒▒▒▒▒▒\e[38;5;27m \e[38;5;27m▓▓▓▓▓▓▓▓▓ \e[38;5;27m ▓▓▓▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓ ▓▓▓▓ ▓▓▓▓ \e[38;5;81m ▒▒▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒
|
\e[38;5;81m ▒▒▒▒▒▒▒▒▒\e[38;5;27m \e[38;5;27m▓▓▓▓▓▓▓▓▓ \e[38;5;27m ▓▓▓▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓ ▓▓▓▓ ▓▓▓▓ \e[38;5;81m ▒▒▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒
|
||||||
\e[38;5;81m▒▒▒▒\e[38;5;27m▓▓ \e[38;5;27m▓▓▓▓▓▓▓▓▓▓▓ \e[38;5;27m ▓▓▓▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓ ▓▓▓▓▓▓▓▓ \e[38;5;81m ▒▒▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒
|
\e[38;5;81m▒▒▒▒\e[38;5;27m▓▓ \e[38;5;27m▓▓▓▓▓▓▓▓▓▓▓ \e[38;5;27m ▓▓▓▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓ ▓▓▓▓▓▓▓▓ \e[38;5;81m ▒▒▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒
|
||||||
\e[38;5;81m▒▒▒▒\e[38;5;27m▓▓▓▓ \e[38;5;27m▓▓▓▓ \e[38;5;27m ▓▓▓▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓ ▓▓▓▓▓▓ \e[38;5;81m ▒▒▒ ▒▒▒ ▒▒▒▒▒
|
\e[38;5;81m▒▒▒▒\e[38;5;27m▓▓▓▓ \e[38;5;27m▓▓▓▓ \e[38;5;27m ▓▓▓▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓ ▓▓▓▓▓▓ \e[38;5;81m ▒▒▒ ▒▒▒ ▒▒▒▒▒
|
||||||
\e[38;5;81m▒▒▒▒ \e[38;5;27m▓▓▓▓ \e[38;5;27m▓▓▓▓ \e[38;5;27m ▓▓▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓ ▓▓▓▓▓▓ \e[38;5;81m ▒▒▒ ▒▒▒ ▒▒▒▒
|
\e[38;5;81m▒▒▒▒ \e[38;5;27m▓▓▓▓ \e[38;5;27m▓▓▓▓ \e[38;5;27m ▓▓▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓ ▓▓▓▓▓▓ \e[38;5;81m ▒▒▒ ▒▒▒ ▒▒▒▒
|
||||||
\e[38;5;81m▒▒▒ \e[38;5;27m▓▓▓▓\e[38;5;81m▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ \e[38;5;27m ▓▓▓▓ ▓▓▓▓▓▓▓ ▓▓▓ ▓▓▓▓▓▓▓▓ \e[38;5;81m ▒▒▒▒ ▒▒▒▒ ▒▒▒▒
|
\e[38;5;81m▒▒▒ \e[38;5;27m▓▓▓▓\e[38;5;81m▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ \e[38;5;27m ▓▓▓▓ ▓▓▓▓▓▓▓ ▓▓▓ ▓▓▓▓▓▓▓▓ \e[38;5;81m ▒▒▒▒ ▒▒▒▒ ▒▒▒▒
|
||||||
\e[38;5;81m▒▒ \e[38;5;27m▓▓▓▓▓▓\e[38;5;81m▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ \e[38;5;27m ▓▓▓▓ ▓▓▓▓▓▓ ▓▓▓▓▓ ▓▓▓▓ ▓▓▓▓ \e[38;5;81m ▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒
|
\e[38;5;81m▒▒ \e[38;5;27m▓▓▓▓▓▓\e[38;5;81m▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ \e[38;5;27m ▓▓▓▓ ▓▓▓▓▓▓ ▓▓▓▓▓ ▓▓▓▓ ▓▓▓▓ \e[38;5;81m ▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒
|
||||||
\e[38;5;27m▓▓▓▓▓▓▓▓ \e[38;5;81m▒▒▒▒ \e[38;5;27m ▓▓▓▓ ▓▓▓▓▓ ▓▓▓▓▓ ▓▓▓▓ ▓▓▓▓ \e[38;5;81m ▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒
|
\e[38;5;27m▓▓▓▓▓▓▓▓ \e[38;5;81m▒▒▒▒ \e[38;5;27m ▓▓▓▓ ▓▓▓▓▓ ▓▓▓▓▓ ▓▓▓▓ ▓▓▓▓ \e[38;5;81m ▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒
|
||||||
\e[38;5;27m▓▓▓▓ ▓▓▓▓ \e[38;5;81m▒▒▒▒ \e[38;5;27m ▓▓ ▓▓▓ ▓▓▓ ▓▓▓ ▓▓▓ \e[38;5;81m ▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒
|
\e[38;5;27m▓▓▓▓ ▓▓▓▓ \e[38;5;81m▒▒▒▒ \e[38;5;27m ▓▓ ▓▓▓ ▓▓▓ ▓▓▓ ▓▓▓ \e[38;5;81m ▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒
|
||||||
\e[38;5;27m▓▓▓▓ ▓▓▓▓ \e[38;5;81m▒▒▒▒
|
\e[38;5;27m▓▓▓▓ ▓▓▓▓ \e[38;5;81m▒▒▒▒
|
||||||
|
|
||||||
\e[1;32mSystem Maintainer\e[0m: Kyler Clay
|
\e[1;32mSystem Maintainer\e[0m: Kyler Clay
|
||||||
\e[1;32mContact\e[0m: kylerclay@proton.me
|
\e[1;32mContact\e[0m: kylerclay@proton.me
|
||||||
470-403-8522
|
470-403-8522
|
||||||
|
|
||||||
Run '\e[1;35mnixos-help\e[0m' for the NixOS manual.
|
Run '\e[1;35mnixos-help\e[0m' for the NixOS manual.
|
||||||
Run '\e[1;35mHyprland\e[0m' to enter the desktop environment.
|
Run '\e[1;35mHyprland\e[0m' to enter the desktop environment.
|
||||||
'';
|
'';
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
21
modules/sys/environment/nix.nix
Normal file
21
modules/sys/environment/nix.nix
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{lib, config, ... }: {
|
||||||
|
options = {
|
||||||
|
nixSettings.enable = lib.mkEnableOption "enables my nixos settings";
|
||||||
|
};
|
||||||
|
config = lib.mkIf config.nixSettings.enable {
|
||||||
|
nix = {
|
||||||
|
settings = {
|
||||||
|
auto-optimise-store = true;
|
||||||
|
experimental-features = ["nix-command" "flakes"];
|
||||||
|
substituters = ["https://nix-gaming.cachix.org"];
|
||||||
|
};
|
||||||
|
gc = {
|
||||||
|
automatic = true;
|
||||||
|
dates = "weekly";
|
||||||
|
options = "--delete-older-than 7d";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
time.timeZone = "America/New_York";
|
||||||
|
i18n.defaultLocale = "en_US.UTF-8";
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,24 +1,30 @@
|
|||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
self,
|
self,
|
||||||
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
environment.systemPackages = [
|
options = {
|
||||||
(
|
sddmConfig.enable = lib.mkEnableOption "enables custom sddm configuration";
|
||||||
pkgs.catppuccin-sddm.override {
|
};
|
||||||
flavor = "mocha";
|
config = lib.mkIf config.sddmConfig.enable {
|
||||||
font = "JetBrains Mono Nerd Font";
|
environment.systemPackages = [
|
||||||
fontSize = "14";
|
(
|
||||||
loginBackground = true;
|
pkgs.catppuccin-sddm.override {
|
||||||
background = "${self}/assets/wallpapers/dark-waves.jpg";
|
flavor = "mocha";
|
||||||
}
|
font = "JetBrains Mono Nerd Font";
|
||||||
)
|
fontSize = "14";
|
||||||
];
|
loginBackground = true;
|
||||||
services.displayManager.sddm = {
|
background = "${self}/assets/wallpapers/dark-waves.jpg";
|
||||||
enable = true;
|
}
|
||||||
wayland.enable = true;
|
)
|
||||||
theme = "catppuccin-mocha";
|
];
|
||||||
package = pkgs.kdePackages.sddm;
|
services.displayManager.sddm = {
|
||||||
|
enable = true;
|
||||||
|
wayland.enable = true;
|
||||||
|
theme = "catppuccin-mocha";
|
||||||
|
package = pkgs.kdePackages.sddm;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,44 +2,51 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
scheme,
|
scheme,
|
||||||
wallpaper,
|
wallpaper,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
stylix = {
|
options = {
|
||||||
enable = true;
|
stylixConfig.enable = lib.mkEnableOption "enables custom stylix options";
|
||||||
base16Scheme = scheme;
|
};
|
||||||
image = wallpaper;
|
config = lib.mkIf config.stylixConfig.enable {
|
||||||
polarity = "dark";
|
stylix = {
|
||||||
autoEnable = true;
|
enable = true;
|
||||||
opacity.terminal = 0.5;
|
base16Scheme = scheme;
|
||||||
targets = {
|
image = wallpaper;
|
||||||
console.enable = true;
|
polarity = "dark";
|
||||||
feh.enable = true;
|
autoEnable = true;
|
||||||
grub.enable = true;
|
opacity.terminal = 0.5;
|
||||||
gtk.enable = true;
|
targets = {
|
||||||
nixos-icons.enable = true;
|
console.enable = true;
|
||||||
};
|
feh.enable = true;
|
||||||
cursor = {
|
grub.enable = true;
|
||||||
package = pkgs.bibata-cursors;
|
gtk.enable = true;
|
||||||
name = "Bibata-Modern-Ice";
|
nixos-icons.enable = true;
|
||||||
};
|
|
||||||
fonts = {
|
|
||||||
monospace = {
|
|
||||||
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};
|
|
||||||
name = "JetBrains Mono Nerd Font";
|
|
||||||
};
|
};
|
||||||
sansSerif = {
|
cursor = {
|
||||||
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};
|
package = pkgs.bibata-cursors;
|
||||||
name = "JetBrains Mono Nerd Font";
|
name = "Bibata-Modern-Ice";
|
||||||
};
|
};
|
||||||
serif = {
|
fonts = {
|
||||||
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};
|
monospace = {
|
||||||
name = "JetBrains Mono Nerd Font";
|
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};
|
||||||
};
|
name = "JetBrains Mono Nerd Font";
|
||||||
sizes = {
|
};
|
||||||
desktop = 10;
|
sansSerif = {
|
||||||
applications = 14;
|
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};
|
||||||
terminal = 14;
|
name = "JetBrains Mono Nerd Font";
|
||||||
popups = 16;
|
};
|
||||||
|
serif = {
|
||||||
|
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};
|
||||||
|
name = "JetBrains Mono Nerd Font";
|
||||||
|
};
|
||||||
|
sizes = {
|
||||||
|
desktop = 10;
|
||||||
|
applications = 14;
|
||||||
|
terminal = 14;
|
||||||
|
popups = 16;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,8 +1,14 @@
|
|||||||
{pkgs, ...}: {
|
{pkgs, lib, config, ...}: {
|
||||||
boot = {
|
options = {
|
||||||
loader.systemd-boot.enable = true;
|
# make this enabled by default!!!
|
||||||
loader.efi.canTouchEfiVariables = true;
|
bootLoader.enable = lib.mkEnableOption "enables bootloader config";
|
||||||
loader.systemd-boot.configurationLimit = 10;
|
};
|
||||||
kernelPackages = pkgs.linuxPackages_latest;
|
config = lib.mkIf config.bootLoader.enable {
|
||||||
|
boot = {
|
||||||
|
loader.systemd-boot.enable = true;
|
||||||
|
loader.efi.canTouchEfiVariables = true;
|
||||||
|
loader.systemd-boot.configurationLimit = 10;
|
||||||
|
kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,5 +10,6 @@
|
|||||||
}: {
|
}: {
|
||||||
imports =
|
imports =
|
||||||
[(import ./bootloader.nix)]
|
[(import ./bootloader.nix)]
|
||||||
++ [(import ./network.nix)];
|
++ [(import ./network.nix)]
|
||||||
|
++ [(import ./powerprofiles.nix)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,20 +1,24 @@
|
|||||||
{host, ...}: let
|
{host, lib, config, ...}: let
|
||||||
desktop = host == "oganesson";
|
desktop = host == "oganesson";
|
||||||
in {
|
in {
|
||||||
networking = {
|
options = {
|
||||||
networkmanager.enable = true;
|
networkModule.enable = lib.mkEnableOption "enables network configuration";
|
||||||
hostName =
|
};
|
||||||
if desktop
|
config = lib.mkIf config.networkModule.enable {
|
||||||
then "oganesson"
|
networking = {
|
||||||
else "mercury";
|
networkmanager.enable = true;
|
||||||
hosts = {
|
hostName =
|
||||||
"192.168.1.201" = ["glasshaus"];
|
if desktop
|
||||||
"192.168.1.111" = ["argon"];
|
then "oganesson"
|
||||||
"192.168.1.223" = ["mercury"];
|
else "mercury";
|
||||||
};
|
hosts = {
|
||||||
firewall = {
|
"192.168.1.201" = ["xenon"];
|
||||||
enable = true;
|
"192.168.1.111" = ["argon"];
|
||||||
allowedTCPPorts = [30000];
|
"192.168.1.223" = ["mercury"];
|
||||||
|
};
|
||||||
|
firewall = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
43
modules/sys/hardware/powerprofiles.nix
Normal file
43
modules/sys/hardware/powerprofiles.nix
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
{lib, config, ... }: {
|
||||||
|
options = {
|
||||||
|
powerProfiles.enable = lib.mkEnableOption "enables power profiles";
|
||||||
|
};
|
||||||
|
config = lib.mkIf config.powerProfiles.enable {
|
||||||
|
services = {
|
||||||
|
|
||||||
|
power-profiles-daemon.enable = true;
|
||||||
|
|
||||||
|
upower = {
|
||||||
|
enable = true;
|
||||||
|
percentageLow = 20;
|
||||||
|
percentageCritical = 5;
|
||||||
|
percentageAction = 3;
|
||||||
|
criticalPowerAction = "PowerOff";
|
||||||
|
};
|
||||||
|
|
||||||
|
tlp.settings = {
|
||||||
|
CPU_ENERGY_PERF_POLICY_ON_AC = "power";
|
||||||
|
CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
|
||||||
|
|
||||||
|
CPU_BOOST_ON_AC = 1;
|
||||||
|
CPU_BOOST_ON_BAT = 1;
|
||||||
|
|
||||||
|
CPU_HWP_DYN_BOOST_ON_AC = 1;
|
||||||
|
CPU_HWP_DYN_BOOST_ON_BAT = 1;
|
||||||
|
|
||||||
|
PLATFORM_PROFILE_ON_AC = "performance";
|
||||||
|
PLATFORM_PROFILE_ON_BAT = "performance";
|
||||||
|
|
||||||
|
INTEL_GPU_MIN_FREQ_ON_AC = 500;
|
||||||
|
INTEL_GPU_MIN_FREQ_ON_BAT = 500;
|
||||||
|
# INTEL_GPU_MAX_FREQ_ON_AC=0;
|
||||||
|
# INTEL_GPU_MAX_FREQ_ON_BAT=0;
|
||||||
|
# INTEL_GPU_BOOST_FREQ_ON_AC=0;
|
||||||
|
# INTEL_GPU_BOOST_FREQ_ON_BAT=0;
|
||||||
|
|
||||||
|
PCIE_ASPM_ON_AC = "default";
|
||||||
|
PCIE_ASPM_ON_BAT = "powersupersave";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -6,17 +6,13 @@
|
|||||||
username,
|
username,
|
||||||
host,
|
host,
|
||||||
...
|
...
|
||||||
}: let
|
}: {
|
||||||
desktop = host == "oganesson";
|
|
||||||
desktop_modules =
|
|
||||||
if desktop
|
|
||||||
then [(import ./virtualization.nix)] ++ [(import ./gaming)]
|
|
||||||
else [];
|
|
||||||
in {
|
|
||||||
imports =
|
imports =
|
||||||
[(import ./packages.nix)]
|
[(import ./packages.nix)]
|
||||||
++ [(import ./programs.nix)]
|
++ [(import ./programs.nix)]
|
||||||
++ [(import ./services.nix)]
|
++ [(import ./services.nix)]
|
||||||
++ [(import ./nixvim)]
|
++ [(import ./nixvim)]
|
||||||
++ desktop_modules;
|
++ [(import ./module-test.nix)]
|
||||||
|
++ [(import ./virtualization.nix)]
|
||||||
|
++ [(import ./gaming)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,10 @@
|
|||||||
{pkgs, ...}: {
|
{lib, config, pkgs, ...}: {
|
||||||
environment.systemPackages = with pkgs; [
|
options = {
|
||||||
snes9x-gtk
|
gamingPkgs.enable = lib.mkEnableOption "enables gaming packages";
|
||||||
];
|
};
|
||||||
|
config = lib.mkIf config.gamingPkgs.enable {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
snes9x-gtk
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
{...}: {
|
{lib, config, ...}: {
|
||||||
programs.steam = {
|
options = {
|
||||||
enable = true;
|
steamConfig.enable = lib.mkEnableOption "enables steam configuration";
|
||||||
remotePlay.openFirewall = true;
|
};
|
||||||
|
config = lib.mkIf config.steamConfig.enable {
|
||||||
|
programs.steam = {
|
||||||
|
enable = true;
|
||||||
|
remotePlay.openFirewall = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
11
modules/sys/software/module-test.nix
Normal file
11
modules/sys/software/module-test.nix
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{ pkgs, lib, config, ... }:
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
testmodule.enable = lib.mkEnableOption "enables test module";
|
||||||
|
};
|
||||||
|
config = lib.mkIf config.testmodule.enable {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
hello
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,79 +1,82 @@
|
|||||||
{
|
{lib, config, pkgs, inputs, ... }: {
|
||||||
pkgs,
|
options = {
|
||||||
inputs,
|
sysPkgs.enable = lib.mkEnableOption "enables default system packages";
|
||||||
...
|
};
|
||||||
}: {
|
config = lib.mkIf config.sysPkgs.enable {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
alejandra
|
alejandra
|
||||||
alsa-lib
|
alsa-lib
|
||||||
alsa-utils
|
alsa-utils
|
||||||
bc
|
bc
|
||||||
cava
|
cava
|
||||||
cabal-install
|
cabal-install
|
||||||
clang
|
clang
|
||||||
clang-tools
|
clang-tools
|
||||||
cliphist
|
cliphist
|
||||||
cmake
|
cmake
|
||||||
fail2ban
|
fail2ban
|
||||||
feh
|
feh
|
||||||
ffmpeg-full
|
ffmpeg-full
|
||||||
fuse
|
fuse
|
||||||
git
|
git
|
||||||
gnumake
|
gnumake
|
||||||
gst_all_1.gstreamer
|
gst_all_1.gstreamer
|
||||||
htop
|
htop
|
||||||
hyprland
|
hyprland-workspaces
|
||||||
hyprland-workspaces
|
hyprpicker
|
||||||
hyprpicker
|
imagemagick
|
||||||
imagemagick
|
inetutils
|
||||||
inetutils
|
kitty
|
||||||
kitty
|
libclang
|
||||||
libclang
|
libcxx
|
||||||
libcxx
|
lolcat
|
||||||
lolcat
|
lsof
|
||||||
lsof
|
lua-language-server
|
||||||
lua-language-server
|
luarocks
|
||||||
luarocks
|
mesa
|
||||||
mesa
|
mpd
|
||||||
mpd
|
mullvad
|
||||||
mullvad
|
mesa
|
||||||
mesa
|
neofetch
|
||||||
neofetch
|
nh
|
||||||
nh
|
nix-index
|
||||||
nix-index
|
nix-output-monitor
|
||||||
nix-output-monitor
|
nix-prefetch-scripts
|
||||||
nix-prefetch-scripts
|
nixos-option
|
||||||
nixos-option
|
nix-search-cli
|
||||||
nix-search-cli
|
nix-template
|
||||||
nvd
|
mkdocs
|
||||||
openssl
|
python3Packages.mkdocs-material
|
||||||
p7zip
|
nvd
|
||||||
jq
|
openssl
|
||||||
pamixer
|
p7zip
|
||||||
parted
|
jq
|
||||||
pavucontrol
|
pamixer
|
||||||
pkg-config
|
parted
|
||||||
playerctl
|
pavucontrol
|
||||||
protonmail-bridge
|
pkg-config
|
||||||
protontricks
|
playerctl
|
||||||
pyright
|
protonmail-bridge
|
||||||
socat
|
protontricks
|
||||||
sox
|
pyright
|
||||||
stress
|
socat
|
||||||
tor
|
sox
|
||||||
tree
|
stress
|
||||||
unrar
|
tor
|
||||||
unzip
|
tree
|
||||||
usbutils
|
unrar
|
||||||
vim
|
unzip
|
||||||
vscode-langservers-extracted
|
usbutils
|
||||||
vulkan-loader
|
vim
|
||||||
wget
|
vscode-langservers-extracted
|
||||||
wine
|
vulkan-loader
|
||||||
wl-clipboard
|
wget
|
||||||
xpad
|
wine
|
||||||
libnotify
|
wl-clipboard
|
||||||
file
|
xpad
|
||||||
libvirt-glib
|
libnotify
|
||||||
];
|
file
|
||||||
|
libvirt-glib
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,17 +1,22 @@
|
|||||||
{pkgs, ...}: {
|
{lib, config, pkgs, ...}: {
|
||||||
programs = {
|
options = {
|
||||||
hyprland.enable = true;
|
sysProgs.enable = lib.mkEnableOption "enables default system programs";
|
||||||
zsh.enable = true;
|
};
|
||||||
nix-ld = {
|
config = lib.mkIf config.sysProgs.enable {
|
||||||
enable = true;
|
programs = {
|
||||||
libraries = with pkgs; [
|
hyprland.enable = true;
|
||||||
stdenv.cc.cc
|
zsh.enable = true;
|
||||||
ffmpeg-full
|
nix-ld = {
|
||||||
];
|
enable = true;
|
||||||
};
|
libraries = with pkgs; [
|
||||||
gnupg.agent = {
|
stdenv.cc.cc
|
||||||
enable = true;
|
ffmpeg-full
|
||||||
enableSSHSupport = true;
|
];
|
||||||
|
};
|
||||||
|
gnupg.agent = {
|
||||||
|
enable = true;
|
||||||
|
enableSSHSupport = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,19 +1,33 @@
|
|||||||
{...}: {
|
{lib, config, ...}: {
|
||||||
services = {
|
options = {
|
||||||
pipewire = {
|
sysServices.enable = lib.mkEnableOption "enables default system services";
|
||||||
enable = true;
|
};
|
||||||
pulse.enable = true;
|
config = lib.mkIf config.sysServices.enable {
|
||||||
wireplumber.enable = true;
|
services = {
|
||||||
alsa.enable = true;
|
keyd = {
|
||||||
alsa.support32Bit = true;
|
enable = true;
|
||||||
};
|
keyboards.default = {
|
||||||
udev.enable = true;
|
ids = ["*"];
|
||||||
dbus.enable = true;
|
settings.main = {
|
||||||
mullvad-vpn.enable = true;
|
capslock = "esc";
|
||||||
blueman.enable = true;
|
};
|
||||||
openssh = {
|
};
|
||||||
enable = true;
|
};
|
||||||
allowSFTP = true;
|
pipewire = {
|
||||||
|
enable = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
wireplumber.enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
alsa.support32Bit = true;
|
||||||
|
};
|
||||||
|
udev.enable = true;
|
||||||
|
dbus.enable = true;
|
||||||
|
mullvad-vpn.enable = true;
|
||||||
|
blueman.enable = true;
|
||||||
|
openssh = {
|
||||||
|
enable = true;
|
||||||
|
allowSFTP = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,9 @@
|
|||||||
{username, ...}: {
|
{lib, config, username, ...}: {
|
||||||
virtualisation.libvirtd.enable = true;
|
options = {
|
||||||
programs.virt-manager.enable = true;
|
virtConfig.enable = lib.mkEnableOption "enables virtualization";
|
||||||
|
};
|
||||||
|
config = lib.mkIf config.virtConfig.enable {
|
||||||
|
virtualisation.libvirtd.enable = true;
|
||||||
|
programs.virt-manager.enable = true;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user