format everything
This commit is contained in:
parent
9c28397d38
commit
b54f3d54f1
37 changed files with 1185 additions and 1173 deletions
|
|
@ -1,47 +1,47 @@
|
||||||
{ config, pkgs, nix-colors, ... }:
|
{ config, pkgs, nix-colors, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
nix-colors.homeManagerModules.default
|
nix-colors.homeManagerModules.default
|
||||||
];
|
];
|
||||||
|
|
||||||
# colorScheme = nix-colors.colorSchemes.catppuccin-macchiato;
|
# colorScheme = nix-colors.colorSchemes.catppuccin-macchiato;
|
||||||
|
|
||||||
colorScheme = {
|
colorScheme = {
|
||||||
slug = "test";
|
slug = "test";
|
||||||
name = "TestScheme";
|
name = "TestScheme";
|
||||||
author = "Noa";
|
author = "Noa";
|
||||||
palette = {
|
palette = {
|
||||||
base00 = "#000000";
|
base00 = "#000000";
|
||||||
base01 = "#0000FF";
|
base01 = "#0000FF";
|
||||||
base02 = "#00FF00";
|
base02 = "#00FF00";
|
||||||
base03 = "#00FFFF";
|
base03 = "#00FFFF";
|
||||||
base04 = "#FF0000";
|
base04 = "#FF0000";
|
||||||
base05 = "#FF00FF";
|
base05 = "#FF00FF";
|
||||||
base06 = "#FFFF00";
|
base06 = "#FFFF00";
|
||||||
base07 = "#FFFFFF";
|
base07 = "#FFFFFF";
|
||||||
base08 = "#777777";
|
base08 = "#777777";
|
||||||
base09 = "#7777FF";
|
base09 = "#7777FF";
|
||||||
base0A = "#77FF77";
|
base0A = "#77FF77";
|
||||||
base0B = "#77FFFF";
|
base0B = "#77FFFF";
|
||||||
base0C = "#FF7777";
|
base0C = "#FF7777";
|
||||||
base0D = "#FF77FF";
|
base0D = "#FF77FF";
|
||||||
base0E = "#FFFF77";
|
base0E = "#FFFF77";
|
||||||
base0F = "#AAAAAA";
|
base0F = "#AAAAAA";
|
||||||
text = "#222222";
|
text = "#222222";
|
||||||
textInverted = "#DDDDDD";
|
textInverted = "#DDDDDD";
|
||||||
textMuted = "#DDDDDD";
|
textMuted = "#DDDDDD";
|
||||||
background = "#FFD2D2";
|
background = "#FFD2D2";
|
||||||
backgroundMuted = "#CCCCCC";
|
backgroundMuted = "#CCCCCC";
|
||||||
warn = "#FF0000";
|
warn = "#FF0000";
|
||||||
highlight = "#FBAF44";
|
highlight = "#FBAF44";
|
||||||
danger = "#F53C3C";
|
danger = "#F53C3C";
|
||||||
succes = "#5BBD63";
|
succes = "#5BBD63";
|
||||||
spotifyGreen = "#39A04A";
|
spotifyGreen = "#39A04A";
|
||||||
border = "#5F5F5F";
|
border = "#5F5F5F";
|
||||||
info = "#2CB6AF";
|
info = "#2CB6AF";
|
||||||
ok = "#38B148";
|
ok = "#38B148";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,22 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# (symlinkJoin {
|
# (symlinkJoin {
|
||||||
# name = "discord";
|
# name = "discord";
|
||||||
# paths = [
|
# paths = [
|
||||||
# (writeShellScriptBin "discord" ''${discord}/bin/discord --enable-features=UseOzonePlatform --ozone-platform=wayland'')
|
# (writeShellScriptBin "discord" ''${discord}/bin/discord --enable-features=UseOzonePlatform --ozone-platform=wayland'')
|
||||||
# (writeShellScriptBin "Discord" ''${discord}/bin/Discord --enable-features=UseOzonePlatform --ozone-platform=wayland'')
|
# (writeShellScriptBin "Discord" ''${discord}/bin/Discord --enable-features=UseOzonePlatform --ozone-platform=wayland'')
|
||||||
# discord
|
# discord
|
||||||
# ];
|
# ];
|
||||||
# })
|
# })
|
||||||
(symlinkJoin {
|
(symlinkJoin {
|
||||||
name = "vesktop";
|
name = "vesktop";
|
||||||
paths = [
|
paths = [
|
||||||
(writeShellScriptBin "vesktop" ''${vesktop}/bin/vesktop --enable-features=UseOzonePlatform --ozone-platform=wayland'')
|
(writeShellScriptBin "vesktop" ''${vesktop}/bin/vesktop --enable-features=UseOzonePlatform --ozone-platform=wayland'')
|
||||||
(writeShellScriptBin "Vesktop" ''${vesktop}/bin/Vesktop --enable-features=UseOzonePlatform --ozone-platform=wayland'')
|
(writeShellScriptBin "Vesktop" ''${vesktop}/bin/Vesktop --enable-features=UseOzonePlatform --ozone-platform=wayland'')
|
||||||
vesktop
|
vesktop
|
||||||
];
|
];
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,21 +1,21 @@
|
||||||
{ pkgs, lib, ... }:
|
{ pkgs, lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# needed for the nvim config, neovim itself is a system package already
|
# needed for the nvim config, neovim itself is a system package already
|
||||||
ripgrep
|
ripgrep
|
||||||
|
|
||||||
# TODO: find how I can make this build dependencies only
|
# TODO: find how I can make this build dependencies only
|
||||||
gnumake
|
gnumake
|
||||||
rustc
|
rustc
|
||||||
python3
|
python3
|
||||||
];
|
];
|
||||||
programs.neovim = {
|
programs.neovim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultEditor = true;
|
defaultEditor = true;
|
||||||
viAlias = true;
|
viAlias = true;
|
||||||
vimAlias = true;
|
vimAlias = true;
|
||||||
|
|
||||||
extraLuaConfig = lib.fileContents ./init.lua;
|
extraLuaConfig = lib.fileContents ./init.lua;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
{ config, pkgs, inputs, ... }:
|
{ config, pkgs, inputs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
services.spotifyd.enable = true;
|
services.spotifyd.enable = true;
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
(symlinkJoin {
|
(symlinkJoin {
|
||||||
name = "spotify";
|
name = "spotify";
|
||||||
paths = [
|
paths = [
|
||||||
(writeShellScriptBin "spotify" ''${spotify}/bin/spotify --enable-features=UseOzonePlatform --ozone-platform=wayland'')
|
(writeShellScriptBin "spotify" ''${spotify}/bin/spotify --enable-features=UseOzonePlatform --ozone-platform=wayland'')
|
||||||
spotify
|
spotify
|
||||||
];
|
];
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,8 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
[
|
||||||
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "nvme" "ahci" "xhci_pci" "usbhid" "usb_storage" "sd_mod" ];
|
boot.initrd.availableKernelModules = [ "nvme" "ahci" "xhci_pci" "usbhid" "usb_storage" "sd_mod" ];
|
||||||
|
|
@ -14,19 +15,22 @@
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" =
|
||||||
{ device = "/dev/disk/by-uuid/263716dd-52cb-4a91-ba0b-e39e492ed0e5";
|
{
|
||||||
|
device = "/dev/disk/by-uuid/263716dd-52cb-4a91-ba0b-e39e492ed0e5";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/boot" =
|
fileSystems."/boot" =
|
||||||
{ device = "/dev/disk/by-uuid/B08E-916D";
|
{
|
||||||
|
device = "/dev/disk/by-uuid/B08E-916D";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/home/noa/Sync" =
|
fileSystems."/home/noa/Sync" =
|
||||||
{ device = "/dev/disk/by-uuid/93a74173-8719-4be2-86b3-dc80588b9cf8";
|
{
|
||||||
fsType = "ext4";
|
device = "/dev/disk/by-uuid/93a74173-8719-4be2-86b3-dc80588b9cf8";
|
||||||
};
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
swapDevices = [ ];
|
swapDevices = [ ];
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,178 +1,178 @@
|
||||||
{ config, pkgs, inputs, lib, ... }:
|
{ config, pkgs, inputs, lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
[
|
[
|
||||||
../../modules/hyprland.nix
|
../../modules/hyprland.nix
|
||||||
../../modules/games
|
../../modules/games
|
||||||
../../modules/applications
|
../../modules/applications
|
||||||
../../common/nvim/nvim.nix
|
../../common/nvim/nvim.nix
|
||||||
../../common/discord/discord.nix
|
../../common/discord/discord.nix
|
||||||
../../common/spotify.nix
|
../../common/spotify.nix
|
||||||
];
|
];
|
||||||
# Home Manager needs a bit of information about you and the paths it should
|
# Home Manager needs a bit of information about you and the paths it should
|
||||||
# manage.
|
# manage.
|
||||||
home.username = "noa";
|
home.username = "noa";
|
||||||
home.homeDirectory = "/home/noa";
|
home.homeDirectory = "/home/noa";
|
||||||
|
|
||||||
# This value determines the Home Manager release that your configuration is
|
# This value determines the Home Manager release that your configuration is
|
||||||
# compatible with. This helps avoid breakage when a new Home Manager release
|
# compatible with. This helps avoid breakage when a new Home Manager release
|
||||||
# introduces backwards incompatible changes.
|
# introduces backwards incompatible changes.
|
||||||
#
|
#
|
||||||
# You should not change this value, even if you update Home Manager. If you do
|
# You should not change this value, even if you update Home Manager. If you do
|
||||||
# want to update the value, then make sure to first check the Home Manager
|
# want to update the value, then make sure to first check the Home Manager
|
||||||
# release notes.
|
# release notes.
|
||||||
home.stateVersion = "23.11"; # Please read the comment before changing.
|
home.stateVersion = "23.11"; # Please read the comment before changing.
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
modules = {
|
modules = {
|
||||||
hyprland.enable = true;
|
hyprland.enable = true;
|
||||||
games.enable = true;
|
games.enable = true;
|
||||||
apps = {
|
apps = {
|
||||||
enable = true;
|
enable = true;
|
||||||
git = {
|
git = {
|
||||||
name = "Noa Aarts";
|
name = "Noa Aarts";
|
||||||
email = "itepastra@gmail.com";
|
email = "itepastra@gmail.com";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# The home.packages option allows you to install Nix packages into your
|
# The home.packages option allows you to install Nix packages into your
|
||||||
# environment.
|
# environment.
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
file
|
file
|
||||||
unzip
|
unzip
|
||||||
zip
|
zip
|
||||||
|
|
||||||
dig
|
dig
|
||||||
mtr
|
mtr
|
||||||
|
|
||||||
obs-studio
|
obs-studio
|
||||||
wayvnc
|
wayvnc
|
||||||
|
|
||||||
signal-desktop
|
signal-desktop
|
||||||
|
|
||||||
btop
|
btop
|
||||||
|
|
||||||
dconf
|
dconf
|
||||||
pipewire
|
pipewire
|
||||||
lsd
|
lsd
|
||||||
|
|
||||||
lm_sensors
|
lm_sensors
|
||||||
|
|
||||||
# Programming langs
|
# Programming langs
|
||||||
go
|
go
|
||||||
nodejs
|
nodejs
|
||||||
opam
|
opam
|
||||||
stack
|
stack
|
||||||
cargo
|
cargo
|
||||||
gcc
|
gcc
|
||||||
|
|
||||||
bend
|
bend
|
||||||
|
|
||||||
localsend
|
localsend
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
||||||
# plain files is through 'home.file'.
|
# plain files is through 'home.file'.
|
||||||
home.file = {
|
home.file = {
|
||||||
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
|
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
|
||||||
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
|
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
|
||||||
# # symlink to the Nix store copy.
|
# # symlink to the Nix store copy.
|
||||||
# ".screenrc".source = dotfiles/screenrc;
|
# ".screenrc".source = dotfiles/screenrc;
|
||||||
|
|
||||||
# # You can also set the file content immediately.
|
# # You can also set the file content immediately.
|
||||||
# ".gradle/gradle.properties".text = ''
|
# ".gradle/gradle.properties".text = ''
|
||||||
# org.gradle.console=verbose
|
# org.gradle.console=verbose
|
||||||
# org.gradle.daemon.idletimeout=3600000
|
# org.gradle.daemon.idletimeout=3600000
|
||||||
# '';
|
# '';
|
||||||
};
|
};
|
||||||
|
|
||||||
# Home Manager can also manage your environment variables through
|
# Home Manager can also manage your environment variables through
|
||||||
# 'home.sessionVariables'. If you don't want to manage your shell through Home
|
# 'home.sessionVariables'. If you don't want to manage your shell through Home
|
||||||
# Manager then you have to manually source 'hm-session-vars.sh' located at
|
# Manager then you have to manually source 'hm-session-vars.sh' located at
|
||||||
# either
|
# either
|
||||||
#
|
#
|
||||||
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
|
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
|
||||||
#
|
#
|
||||||
# or
|
# or
|
||||||
#
|
#
|
||||||
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
|
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
|
||||||
#
|
#
|
||||||
# or
|
# or
|
||||||
#
|
#
|
||||||
# /etc/profiles/per-user/noa/etc/profile.d/hm-session-vars.sh
|
# /etc/profiles/per-user/noa/etc/profile.d/hm-session-vars.sh
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
EDITOR = "nvim";
|
EDITOR = "nvim";
|
||||||
TERM = "kitty";
|
TERM = "kitty";
|
||||||
GDK_BACKEND = "wayland,x11";
|
GDK_BACKEND = "wayland,x11";
|
||||||
QT_QPA_PLATFORM = "wayland;xcb";
|
QT_QPA_PLATFORM = "wayland;xcb";
|
||||||
CLUTTER_BACKEND = "wayland";
|
CLUTTER_BACKEND = "wayland";
|
||||||
XDG_CURRENT_DESKTOP = "Hyprland";
|
XDG_CURRENT_DESKTOP = "Hyprland";
|
||||||
XDG_SESSION_TYPE = "wayland";
|
XDG_SESSION_TYPE = "wayland";
|
||||||
XDG_SESSION_DESKTOP = "Hyprland";
|
XDG_SESSION_DESKTOP = "Hyprland";
|
||||||
WLR_NO_HARDWARE_CURSORS = "1";
|
WLR_NO_HARDWARE_CURSORS = "1";
|
||||||
};
|
};
|
||||||
|
|
||||||
xdg = {
|
xdg = {
|
||||||
enable = true;
|
enable = true;
|
||||||
userDirs = {
|
userDirs = {
|
||||||
enable = true;
|
enable = true;
|
||||||
createDirectories = true;
|
createDirectories = true;
|
||||||
};
|
};
|
||||||
portal = {
|
portal = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraPortals = [ pkgs.xdg-desktop-portal-hyprland ];
|
extraPortals = [ pkgs.xdg-desktop-portal-hyprland ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
dconf = {
|
dconf = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
"org/gnome/desktop/interface" = {
|
"org/gnome/desktop/interface" = {
|
||||||
color-scheme = "prefer-dark";
|
color-scheme = "prefer-dark";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
gtk = {
|
gtk = {
|
||||||
enable = true;
|
enable = true;
|
||||||
theme = {
|
theme = {
|
||||||
name = "Adwaita-dark";
|
name = "Adwaita-dark";
|
||||||
package = pkgs.gnome.gnome-themes-extra;
|
package = pkgs.gnome.gnome-themes-extra;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Let Home Manager install and manage itself.
|
# Let Home Manager install and manage itself.
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
programs.zsh.shellAliases.bzzt = ''nix-shell -p mpv --command "mpv ~/Videos/BZZZM.mp4"'';
|
programs.zsh.shellAliases.bzzt = ''nix-shell -p mpv --command "mpv ~/Videos/BZZZM.mp4"'';
|
||||||
|
|
||||||
home.pointerCursor =
|
home.pointerCursor =
|
||||||
let
|
let
|
||||||
getFrom = url: hash: name: {
|
getFrom = url: hash: name: {
|
||||||
gtk.enable = true;
|
gtk.enable = true;
|
||||||
x11.enable = true;
|
x11.enable = true;
|
||||||
name = name;
|
name = name;
|
||||||
size = 32;
|
size = 32;
|
||||||
package =
|
package =
|
||||||
pkgs.runCommand "moveUp" {} ''
|
pkgs.runCommand "moveUp" { } ''
|
||||||
mkdir -p $out/share/icons
|
mkdir -p $out/share/icons
|
||||||
ln -s ${pkgs.fetchzip {
|
ln -s ${pkgs.fetchzip {
|
||||||
url = url;
|
url = url;
|
||||||
hash = hash;
|
hash = hash;
|
||||||
}} $out/share/icons/${name}
|
}} $out/share/icons/${name}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
getFrom
|
getFrom
|
||||||
"https://github.com/ful1e5/Bibata_Cursor_Rainbow/releases/download/v1.1.2/Bibata-Rainbow-Modern.tar.gz"
|
"https://github.com/ful1e5/Bibata_Cursor_Rainbow/releases/download/v1.1.2/Bibata-Rainbow-Modern.tar.gz"
|
||||||
"sha256-Ps+IKPwQoRwO9Mqxwc/1nHhdBT2R25IoeHLKe48uHB8="
|
"sha256-Ps+IKPwQoRwO9Mqxwc/1nHhdBT2R25IoeHLKe48uHB8="
|
||||||
"Bibata-Rainbow-Modern";
|
"Bibata-Rainbow-Modern";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,97 +1,97 @@
|
||||||
{ config, pkgs, inputs, ... }:
|
{ config, pkgs, inputs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../../modules/applications
|
../../modules/applications
|
||||||
];
|
];
|
||||||
# Home Manager needs a bit of information about you and the paths it should
|
# Home Manager needs a bit of information about you and the paths it should
|
||||||
# manage.
|
# manage.
|
||||||
home.username = "root";
|
home.username = "root";
|
||||||
home.homeDirectory = "/root";
|
home.homeDirectory = "/root";
|
||||||
|
|
||||||
# This value determines the Home Manager release that your configuration is
|
# This value determines the Home Manager release that your configuration is
|
||||||
# compatible with. This helps avoid breakage when a new Home Manager release
|
# compatible with. This helps avoid breakage when a new Home Manager release
|
||||||
# introduces backwards incompatible changes.
|
# introduces backwards incompatible changes.
|
||||||
#
|
#
|
||||||
# You should not change this value, even if you update Home Manager. If you do
|
# You should not change this value, even if you update Home Manager. If you do
|
||||||
# want to update the value, then make sure to first check the Home Manager
|
# want to update the value, then make sure to first check the Home Manager
|
||||||
# release notes.
|
# release notes.
|
||||||
home.stateVersion = "23.11"; # Please read the comment before changing.
|
home.stateVersion = "23.11"; # Please read the comment before changing.
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
# The home.packages option allows you to install Nix packages into your
|
# The home.packages option allows you to install Nix packages into your
|
||||||
# environment.
|
# environment.
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
file
|
file
|
||||||
unzip
|
unzip
|
||||||
zip
|
zip
|
||||||
|
|
||||||
dig
|
dig
|
||||||
mtr
|
mtr
|
||||||
|
|
||||||
kitty
|
kitty
|
||||||
lsd
|
lsd
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
modules = {
|
modules = {
|
||||||
apps = {
|
apps = {
|
||||||
enable = true;
|
enable = true;
|
||||||
git = {
|
git = {
|
||||||
name = "Noa Auto";
|
name = "Noa Auto";
|
||||||
email = "itepastra@gmail.com";
|
email = "itepastra@gmail.com";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
||||||
# plain files is through 'home.file'.
|
# plain files is through 'home.file'.
|
||||||
home.file = {
|
home.file = {
|
||||||
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
|
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
|
||||||
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
|
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
|
||||||
# # symlink to the Nix store copy.
|
# # symlink to the Nix store copy.
|
||||||
# ".screenrc".source = dotfiles/screenrc;
|
# ".screenrc".source = dotfiles/screenrc;
|
||||||
|
|
||||||
# # You can also set the file content immediately.
|
# # You can also set the file content immediately.
|
||||||
# ".gradle/gradle.properties".text = ''
|
# ".gradle/gradle.properties".text = ''
|
||||||
# org.gradle.console=verbose
|
# org.gradle.console=verbose
|
||||||
# org.gradle.daemon.idletimeout=3600000
|
# org.gradle.daemon.idletimeout=3600000
|
||||||
# '';
|
# '';
|
||||||
};
|
};
|
||||||
|
|
||||||
# Home Manager can also manage your environment variables through
|
# Home Manager can also manage your environment variables through
|
||||||
# 'home.sessionVariables'. If you don't want to manage your shell through Home
|
# 'home.sessionVariables'. If you don't want to manage your shell through Home
|
||||||
# Manager then you have to manually source 'hm-session-vars.sh' located at
|
# Manager then you have to manually source 'hm-session-vars.sh' located at
|
||||||
# either
|
# either
|
||||||
#
|
#
|
||||||
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
|
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
|
||||||
#
|
#
|
||||||
# or
|
# or
|
||||||
#
|
#
|
||||||
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
|
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
|
||||||
#
|
#
|
||||||
# or
|
# or
|
||||||
#
|
#
|
||||||
# /etc/profiles/per-user/noa/etc/profile.d/hm-session-vars.sh
|
# /etc/profiles/per-user/noa/etc/profile.d/hm-session-vars.sh
|
||||||
#
|
#
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
EDITOR = "nvim";
|
EDITOR = "nvim";
|
||||||
TERM = "kitty";
|
TERM = "kitty";
|
||||||
};
|
};
|
||||||
|
|
||||||
xdg.userDirs.enable = true;
|
xdg.userDirs.enable = true;
|
||||||
xdg.userDirs.createDirectories = true;
|
xdg.userDirs.createDirectories = true;
|
||||||
|
|
||||||
dconf = {
|
dconf = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
"org/gnome/desktop/interface" = {
|
"org/gnome/desktop/interface" = {
|
||||||
color-scheme = "prefer-dark";
|
color-scheme = "prefer-dark";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Let Home Manager install and manage itself.
|
# Let Home Manager install and manage itself.
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,165 +5,166 @@
|
||||||
{ modulesPath, pkgs, inputs, lib, nix-colors, ... }:
|
{ modulesPath, pkgs, inputs, lib, nix-colors, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
[ # Include the results of the hardware scan.
|
[
|
||||||
./hardware-configuration.nix
|
# Include the results of the hardware scan.
|
||||||
inputs.home-manager.nixosModules.default
|
./hardware-configuration.nix
|
||||||
./disk-config.nix
|
inputs.home-manager.nixosModules.default
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
./disk-config.nix
|
||||||
(modulesPath + "/profiles/qemu-guest.nix")
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
];
|
(modulesPath + "/profiles/qemu-guest.nix")
|
||||||
|
];
|
||||||
|
|
||||||
# Use the systemd-boot EFI boot loader.
|
# Use the systemd-boot EFI boot loader.
|
||||||
boot.loader.systemd-boot.enable = true;
|
boot.loader.systemd-boot.enable = true;
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
# LOVE me some blob
|
# LOVE me some blob
|
||||||
hardware.enableRedistributableFirmware = true;
|
hardware.enableRedistributableFirmware = true;
|
||||||
hardware.enableAllFirmware = true;
|
hardware.enableAllFirmware = true;
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
hostName = "NoasServer"; # Define your hostname.
|
hostName = "NoasServer"; # Define your hostname.
|
||||||
networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
||||||
};
|
};
|
||||||
# Pick only one of the below networking options.
|
# Pick only one of the below networking options.
|
||||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||||
|
|
||||||
nix = {
|
nix = {
|
||||||
settings = {
|
settings = {
|
||||||
# auto optimise every so often
|
# auto optimise every so often
|
||||||
auto-optimise-store = true;
|
auto-optimise-store = true;
|
||||||
experimental-features = ["nix-command" "flakes"];
|
experimental-features = [ "nix-command" "flakes" ];
|
||||||
substituters = ["https://hyprland.cachix.org"];
|
substituters = [ "https://hyprland.cachix.org" ];
|
||||||
trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="];
|
trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ];
|
||||||
};
|
};
|
||||||
gc.automatic = false;
|
gc.automatic = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Set your time zone.
|
# Set your time zone.
|
||||||
time.timeZone = "Europe/Amsterdam";
|
time.timeZone = "Europe/Amsterdam";
|
||||||
|
|
||||||
# Select internationalisation properties.
|
# Select internationalisation properties.
|
||||||
i18n.defaultLocale = "en_US.UTF-8";
|
i18n.defaultLocale = "en_US.UTF-8";
|
||||||
|
|
||||||
i18n.extraLocaleSettings = {
|
i18n.extraLocaleSettings = {
|
||||||
LC_ADDRESS = "nl_NL.UTF-8";
|
LC_ADDRESS = "nl_NL.UTF-8";
|
||||||
LC_IDENTIFICATION = "nl_NL.UTF-8";
|
LC_IDENTIFICATION = "nl_NL.UTF-8";
|
||||||
LC_MEASUREMENT = "nl_NL.UTF-8";
|
LC_MEASUREMENT = "nl_NL.UTF-8";
|
||||||
LC_MONETARY = "nl_NL.UTF-8";
|
LC_MONETARY = "nl_NL.UTF-8";
|
||||||
LC_NAME = "nl_NL.UTF-8";
|
LC_NAME = "nl_NL.UTF-8";
|
||||||
LC_NUMERIC = "nl_NL.UTF-8";
|
LC_NUMERIC = "nl_NL.UTF-8";
|
||||||
LC_PAPER = "nl_NL.UTF-8";
|
LC_PAPER = "nl_NL.UTF-8";
|
||||||
LC_TELEPHONE = "nl_NL.UTF-8";
|
LC_TELEPHONE = "nl_NL.UTF-8";
|
||||||
LC_TIME = "nl_NL.UTF-8";
|
LC_TIME = "nl_NL.UTF-8";
|
||||||
};
|
};
|
||||||
# Configure network proxy if necessary
|
# Configure network proxy if necessary
|
||||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||||
|
|
||||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||||
users.defaultUserShell = pkgs.zsh;
|
users.defaultUserShell = pkgs.zsh;
|
||||||
users.users = {
|
users.users = {
|
||||||
root = {
|
root = {
|
||||||
openssh.authorizedKeys.keys = [
|
openssh.authorizedKeys.keys = [
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINWtje7dGqyrBY7PLq6DANvUR6yfungQNsXGkTO6PP6/ noa@NoasPCArch"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINWtje7dGqyrBY7PLq6DANvUR6yfungQNsXGkTO6PP6/ noa@NoasPCArch"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
noa = {
|
noa = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
|
extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
firefox
|
firefox
|
||||||
tree
|
tree
|
||||||
];
|
];
|
||||||
openssh.authorizedKeys.keys = [
|
openssh.authorizedKeys.keys = [
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINWtje7dGqyrBY7PLq6DANvUR6yfungQNsXGkTO6PP6/ noa@NoasPCArch"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINWtje7dGqyrBY7PLq6DANvUR6yfungQNsXGkTO6PP6/ noa@NoasPCArch"
|
||||||
];
|
];
|
||||||
hashedPassword = "$6$rounds=512400$g/s4dcRttXi4ux6c$Z6pKnhJXcWxv0TBSMtvJu5.piETdUBSgBVN7oDPKiQV.lbTYz1r.0XQLwMYxzcvaaX0DL6Iw/SEUTiC2M50wC/";
|
hashedPassword = "$6$rounds=512400$g/s4dcRttXi4ux6c$Z6pKnhJXcWxv0TBSMtvJu5.piETdUBSgBVN7oDPKiQV.lbTYz1r.0XQLwMYxzcvaaX0DL6Iw/SEUTiC2M50wC/";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Allow unfree packages
|
# Allow unfree packages
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
# List packages installed in system profile. To search, run:
|
# List packages installed in system profile. To search, run:
|
||||||
# $ nix search wget
|
# $ nix search wget
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
sddm
|
sddm
|
||||||
git
|
git
|
||||||
zsh
|
zsh
|
||||||
];
|
];
|
||||||
|
|
||||||
# Some programs need SUID wrappers, can be configured further or are
|
# Some programs need SUID wrappers, can be configured further or are
|
||||||
# started in user sessions.
|
# started in user sessions.
|
||||||
# programs.mtr.enable = true;
|
# programs.mtr.enable = true;
|
||||||
# programs.gnupg.agent = {
|
# programs.gnupg.agent = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
# enableSSHSupport = true;
|
# enableSSHSupport = true;
|
||||||
# };
|
# };
|
||||||
|
|
||||||
# Enable the OpenSSH daemon.
|
# Enable the OpenSSH daemon.
|
||||||
services.openssh.enable = true;
|
services.openssh.enable = true;
|
||||||
programs.zsh.enable = true;
|
programs.zsh.enable = true;
|
||||||
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
inherit inputs;
|
inherit inputs;
|
||||||
inherit nix-colors;
|
inherit nix-colors;
|
||||||
};
|
};
|
||||||
users = {
|
users = {
|
||||||
"noa" = import ./home.nix;
|
"noa" = import ./home.nix;
|
||||||
"root" = import ./root.nix;
|
"root" = import ./root.nix;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.timers."update-from-flake" = {
|
systemd.timers."update-from-flake" = {
|
||||||
wantedBy = [ "timers.target" ];
|
wantedBy = [ "timers.target" ];
|
||||||
timerConfig = {
|
timerConfig = {
|
||||||
OnCalendar = "daily";
|
OnCalendar = "daily";
|
||||||
Persistent = true;
|
Persistent = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services."update-from-flake" = {
|
systemd.services."update-from-flake" = {
|
||||||
path = with pkgs; [
|
path = with pkgs; [
|
||||||
nixos-rebuild
|
nixos-rebuild
|
||||||
];
|
];
|
||||||
script = ''nixos-rebuild switch --flake github:itepastra/nixconf'';
|
script = ''nixos-rebuild switch --flake github:itepastra/nixconf'';
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
User = "root";
|
User = "root";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Open ports in the firewall.
|
# Open ports in the firewall.
|
||||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||||
# Or disable the firewall altogether.
|
# Or disable the firewall altogether.
|
||||||
# networking.firewall.enable = false;
|
# networking.firewall.enable = false;
|
||||||
|
|
||||||
# Copy the NixOS configuration file and link it from the resulting system
|
# Copy the NixOS configuration file and link it from the resulting system
|
||||||
# (/run/current-system/configuration.nix). This is useful in case you
|
# (/run/current-system/configuration.nix). This is useful in case you
|
||||||
# accidentally delete configuration.nix.
|
# accidentally delete configuration.nix.
|
||||||
# system.copySystemConfiguration = true;
|
# system.copySystemConfiguration = true;
|
||||||
|
|
||||||
# This option defines the first version of NixOS you have installed on this particular machine,
|
# This option defines the first version of NixOS you have installed on this particular machine,
|
||||||
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
|
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
|
||||||
#
|
#
|
||||||
# Most users should NEVER change this value after the initial install, for any reason,
|
# Most users should NEVER change this value after the initial install, for any reason,
|
||||||
# even if you've upgraded your system to a new NixOS release.
|
# even if you've upgraded your system to a new NixOS release.
|
||||||
#
|
#
|
||||||
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
|
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
|
||||||
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
|
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
|
||||||
# to actually do that.
|
# to actually do that.
|
||||||
#
|
#
|
||||||
# This value being lower than the current NixOS release does NOT mean your system is
|
# This value being lower than the current NixOS release does NOT mean your system is
|
||||||
# out of date, out of support, or vulnerable.
|
# out of date, out of support, or vulnerable.
|
||||||
#
|
#
|
||||||
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
|
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
|
||||||
# and migrated your data accordingly.
|
# and migrated your data accordingly.
|
||||||
#
|
#
|
||||||
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
|
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
|
||||||
system.stateVersion = "24.05"; # Did you read the comment?
|
system.stateVersion = "24.05"; # Did you read the comment?
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,8 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
[
|
||||||
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" ];
|
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" ];
|
||||||
|
|
|
||||||
|
|
@ -1,105 +1,105 @@
|
||||||
{ config, pkgs, mineflake, inputs, ... }:
|
{ config, pkgs, mineflake, inputs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
[
|
[
|
||||||
../../modules/applications
|
../../modules/applications
|
||||||
../../common/nvim/nvim.nix
|
../../common/nvim/nvim.nix
|
||||||
];
|
];
|
||||||
# Home Manager needs a bit of information about you and the paths it should
|
# Home Manager needs a bit of information about you and the paths it should
|
||||||
# manage.
|
# manage.
|
||||||
home.username = "noa";
|
home.username = "noa";
|
||||||
home.homeDirectory = "/home/noa";
|
home.homeDirectory = "/home/noa";
|
||||||
|
|
||||||
# This value determines the Home Manager release that your configuration is
|
# This value determines the Home Manager release that your configuration is
|
||||||
# compatible with. This helps avoid breakage when a new Home Manager release
|
# compatible with. This helps avoid breakage when a new Home Manager release
|
||||||
# introduces backwards incompatible changes.
|
# introduces backwards incompatible changes.
|
||||||
#
|
#
|
||||||
# You should not change this value, even if you update Home Manager. If you do
|
# You should not change this value, even if you update Home Manager. If you do
|
||||||
# want to update the value, then make sure to first check the Home Manager
|
# want to update the value, then make sure to first check the Home Manager
|
||||||
# release notes.
|
# release notes.
|
||||||
home.stateVersion = "23.11"; # Please read the comment before changing.
|
home.stateVersion = "23.11"; # Please read the comment before changing.
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
# The home.packages option allows you to install Nix packages into your
|
# The home.packages option allows you to install Nix packages into your
|
||||||
# environment.
|
# environment.
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
file
|
file
|
||||||
unzip
|
unzip
|
||||||
zip
|
zip
|
||||||
|
|
||||||
dig
|
dig
|
||||||
mtr
|
mtr
|
||||||
|
|
||||||
btop
|
btop
|
||||||
lsd
|
lsd
|
||||||
|
|
||||||
lm_sensors
|
lm_sensors
|
||||||
|
|
||||||
# Programming langs
|
# Programming langs
|
||||||
go
|
go
|
||||||
nodejs
|
nodejs
|
||||||
];
|
];
|
||||||
|
|
||||||
modules = {
|
modules = {
|
||||||
apps.git = {
|
apps.git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
name = "Noa Aarts";
|
name = "Noa Aarts";
|
||||||
email = "itepastra@gmail.com";
|
email = "itepastra@gmail.com";
|
||||||
};
|
};
|
||||||
apps.zsh.enable = true;
|
apps.zsh.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
||||||
# plain files is through 'home.file'.
|
# plain files is through 'home.file'.
|
||||||
home.file = {
|
home.file = {
|
||||||
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
|
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
|
||||||
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
|
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
|
||||||
# # symlink to the Nix store copy.
|
# # symlink to the Nix store copy.
|
||||||
# ".screenrc".source = dotfiles/screenrc;
|
# ".screenrc".source = dotfiles/screenrc;
|
||||||
|
|
||||||
# # You can also set the file content immediately.
|
# # You can also set the file content immediately.
|
||||||
# ".gradle/gradle.properties".text = ''
|
# ".gradle/gradle.properties".text = ''
|
||||||
# org.gradle.console=verbose
|
# org.gradle.console=verbose
|
||||||
# org.gradle.daemon.idletimeout=3600000
|
# org.gradle.daemon.idletimeout=3600000
|
||||||
# '';
|
# '';
|
||||||
};
|
};
|
||||||
|
|
||||||
# Home Manager can also manage your environment variables through
|
# Home Manager can also manage your environment variables through
|
||||||
# 'home.sessionVariables'. If you don't want to manage your shell through Home
|
# 'home.sessionVariables'. If you don't want to manage your shell through Home
|
||||||
# Manager then you have to manually source 'hm-session-vars.sh' located at
|
# Manager then you have to manually source 'hm-session-vars.sh' located at
|
||||||
# either
|
# either
|
||||||
#
|
#
|
||||||
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
|
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
|
||||||
#
|
#
|
||||||
# or
|
# or
|
||||||
#
|
#
|
||||||
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
|
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
|
||||||
#
|
#
|
||||||
# or
|
# or
|
||||||
#
|
#
|
||||||
# /etc/profiles/per-user/noa/etc/profile.d/hm-session-vars.sh
|
# /etc/profiles/per-user/noa/etc/profile.d/hm-session-vars.sh
|
||||||
#
|
#
|
||||||
|
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
EDITOR = "nvim";
|
EDITOR = "nvim";
|
||||||
};
|
};
|
||||||
|
|
||||||
xdg = {
|
xdg = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
xdg.userDirs = {
|
xdg.userDirs = {
|
||||||
enable = true;
|
enable = true;
|
||||||
createDirectories = true;
|
createDirectories = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Let Home Manager install and manage itself.
|
# Let Home Manager install and manage itself.
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,77 +1,77 @@
|
||||||
{ config, pkgs, inputs, ... }:
|
{ config, pkgs, inputs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
[
|
[
|
||||||
../../common/nvim/nvim.nix
|
../../common/nvim/nvim.nix
|
||||||
];
|
];
|
||||||
# Home Manager needs a bit of information about you and the paths it should
|
# Home Manager needs a bit of information about you and the paths it should
|
||||||
# manage.
|
# manage.
|
||||||
home.username = "root";
|
home.username = "root";
|
||||||
home.homeDirectory = "/root";
|
home.homeDirectory = "/root";
|
||||||
|
|
||||||
# This value determines the Home Manager release that your configuration is
|
# This value determines the Home Manager release that your configuration is
|
||||||
# compatible with. This helps avoid breakage when a new Home Manager release
|
# compatible with. This helps avoid breakage when a new Home Manager release
|
||||||
# introduces backwards incompatible changes.
|
# introduces backwards incompatible changes.
|
||||||
#
|
#
|
||||||
# You should not change this value, even if you update Home Manager. If you do
|
# You should not change this value, even if you update Home Manager. If you do
|
||||||
# want to update the value, then make sure to first check the Home Manager
|
# want to update the value, then make sure to first check the Home Manager
|
||||||
# release notes.
|
# release notes.
|
||||||
home.stateVersion = "23.11"; # Please read the comment before changing.
|
home.stateVersion = "23.11"; # Please read the comment before changing.
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
# The home.packages option allows you to install Nix packages into your
|
# The home.packages option allows you to install Nix packages into your
|
||||||
# environment.
|
# environment.
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
file
|
file
|
||||||
unzip
|
unzip
|
||||||
zip
|
zip
|
||||||
|
|
||||||
dig
|
dig
|
||||||
mtr
|
mtr
|
||||||
|
|
||||||
lsd
|
lsd
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
||||||
# plain files is through 'home.file'.
|
# plain files is through 'home.file'.
|
||||||
home.file = {
|
home.file = {
|
||||||
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
|
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
|
||||||
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
|
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
|
||||||
# # symlink to the Nix store copy.
|
# # symlink to the Nix store copy.
|
||||||
# ".screenrc".source = dotfiles/screenrc;
|
# ".screenrc".source = dotfiles/screenrc;
|
||||||
|
|
||||||
# # You can also set the file content immediately.
|
# # You can also set the file content immediately.
|
||||||
# ".gradle/gradle.properties".text = ''
|
# ".gradle/gradle.properties".text = ''
|
||||||
# org.gradle.console=verbose
|
# org.gradle.console=verbose
|
||||||
# org.gradle.daemon.idletimeout=3600000
|
# org.gradle.daemon.idletimeout=3600000
|
||||||
# '';
|
# '';
|
||||||
};
|
};
|
||||||
|
|
||||||
# Home Manager can also manage your environment variables through
|
# Home Manager can also manage your environment variables through
|
||||||
# 'home.sessionVariables'. If you don't want to manage your shell through Home
|
# 'home.sessionVariables'. If you don't want to manage your shell through Home
|
||||||
# Manager then you have to manually source 'hm-session-vars.sh' located at
|
# Manager then you have to manually source 'hm-session-vars.sh' located at
|
||||||
# either
|
# either
|
||||||
#
|
#
|
||||||
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
|
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
|
||||||
#
|
#
|
||||||
# or
|
# or
|
||||||
#
|
#
|
||||||
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
|
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
|
||||||
#
|
#
|
||||||
# or
|
# or
|
||||||
#
|
#
|
||||||
# /etc/profiles/per-user/noa/etc/profile.d/hm-session-vars.sh
|
# /etc/profiles/per-user/noa/etc/profile.d/hm-session-vars.sh
|
||||||
#
|
#
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
EDITOR = "nvim";
|
EDITOR = "nvim";
|
||||||
};
|
};
|
||||||
|
|
||||||
xdg.userDirs.enable = true;
|
xdg.userDirs.enable = true;
|
||||||
xdg.userDirs.createDirectories = true;
|
xdg.userDirs.createDirectories = true;
|
||||||
|
|
||||||
# Let Home Manager install and manage itself.
|
# Let Home Manager install and manage itself.
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,28 +1,28 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
let
|
let
|
||||||
cfg = config.modules.apps;
|
cfg = config.modules.apps;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.modules.apps = {
|
options.modules.apps = {
|
||||||
enable = lib.mkEnableOption "enable desktop applications";
|
enable = lib.mkEnableOption "enable desktop applications";
|
||||||
};
|
};
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./firefox.nix
|
./firefox.nix
|
||||||
./git.nix
|
./git.nix
|
||||||
./kitty.nix
|
./kitty.nix
|
||||||
./zsh.nix
|
./zsh.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
modules.apps = {
|
modules.apps = {
|
||||||
firefox.enable = true;
|
firefox.enable = true;
|
||||||
git.enable = true;
|
git.enable = true;
|
||||||
kitty.enable = true;
|
kitty.enable = true;
|
||||||
zsh = {
|
zsh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableAliases = true;
|
enableAliases = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,17 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
let
|
let
|
||||||
cfg = config.modules.apps.firefox;
|
cfg = config.modules.apps.firefox;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.modules.apps.firefox = {
|
options.modules.apps.firefox = {
|
||||||
enable = lib.mkEnableOption "enable firefox";
|
enable = lib.mkEnableOption "enable firefox";
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
programs.firefox = {
|
programs.firefox = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# TODO: add some default firefox settings
|
# TODO: add some default firefox settings
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,34 +1,34 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
let
|
let
|
||||||
cfg = config.modules.apps.git;
|
cfg = config.modules.apps.git;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.modules.apps.git = {
|
options.modules.apps.git = {
|
||||||
enable = lib.mkEnableOption "enable git";
|
enable = lib.mkEnableOption "enable git";
|
||||||
name = lib.mkOption {
|
name = lib.mkOption {
|
||||||
example = "Jill Doe";
|
example = "Jill Doe";
|
||||||
description = "the git user Name";
|
description = "the git user Name";
|
||||||
type = lib.types.str;
|
type = lib.types.str;
|
||||||
};
|
};
|
||||||
email = lib.mkOption {
|
email = lib.mkOption {
|
||||||
example = "jilldoe@test.local";
|
example = "jilldoe@test.local";
|
||||||
description = "the git user Name";
|
description = "the git user Name";
|
||||||
type = lib.types.str;
|
type = lib.types.str;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
programs.git = {
|
programs.git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
userName = cfg.name;
|
userName = cfg.name;
|
||||||
userEmail = cfg.email;
|
userEmail = cfg.email;
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
init = { defaultBranch = "main"; };
|
init = { defaultBranch = "main"; };
|
||||||
safe.directory = "/etc/nixos";
|
safe.directory = "/etc/nixos";
|
||||||
pull.rebase = false;
|
pull.rebase = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,19 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
let
|
let
|
||||||
cfg = config.modules.apps.kitty;
|
cfg = config.modules.apps.kitty;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.modules.apps.kitty = {
|
options.modules.apps.kitty = {
|
||||||
enable = lib.mkEnableOption "enable the kitty terminal emulator";
|
enable = lib.mkEnableOption "enable the kitty terminal emulator";
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
confirm_os_window_close = 0;
|
confirm_os_window_close = 0;
|
||||||
};
|
};
|
||||||
shellIntegration.enableZshIntegration = true;
|
shellIntegration.enableZshIntegration = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,39 +1,39 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
let
|
let
|
||||||
cfg = config.modules.apps.zsh;
|
cfg = config.modules.apps.zsh;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.modules.apps.zsh = {
|
options.modules.apps.zsh = {
|
||||||
enable = lib.mkEnableOption "enable zsh with oh-my-zsh";
|
enable = lib.mkEnableOption "enable zsh with oh-my-zsh";
|
||||||
enableAliases = lib.mkEnableOption "whether to enable shellAliases";
|
enableAliases = lib.mkEnableOption "whether to enable shellAliases";
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
programs.direnv = {
|
programs.direnv = {
|
||||||
enable=true;
|
enable = true;
|
||||||
enableZshIntegration=true;
|
enableZshIntegration = true;
|
||||||
nix-direnv.enable=true;
|
nix-direnv.enable = true;
|
||||||
};
|
};
|
||||||
programs.zsh = {
|
programs.zsh = {
|
||||||
enable=true;
|
enable = true;
|
||||||
shellAliases = lib.mkIf cfg.enableAliases {
|
shellAliases = lib.mkIf cfg.enableAliases {
|
||||||
ll = "lsd -l";
|
ll = "lsd -l";
|
||||||
lt = "lsd -l --tree";
|
lt = "lsd -l --tree";
|
||||||
update = "nix flake update --commit-lock-file $HOME/nixos && sudo nixos-rebuild switch --flake $HOME/nixos";
|
update = "nix flake update --commit-lock-file $HOME/nixos && sudo nixos-rebuild switch --flake $HOME/nixos";
|
||||||
};
|
};
|
||||||
initExtra = ''
|
initExtra = ''
|
||||||
[[ ! -r /home/noa/.opam/opam-init/init.zsh ]] || source /home/noa/.opam/opam-init/init.zsh > /dev/null 2> /dev/null
|
[[ ! -r /home/noa/.opam/opam-init/init.zsh ]] || source /home/noa/.opam/opam-init/init.zsh > /dev/null 2> /dev/null
|
||||||
'';
|
'';
|
||||||
history = {
|
history = {
|
||||||
path = "${config.xdg.dataHome}/zsh/history";
|
path = "${config.xdg.dataHome}/zsh/history";
|
||||||
size = 10000;
|
size = 10000;
|
||||||
};
|
};
|
||||||
oh-my-zsh = {
|
oh-my-zsh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
plugins = [ "git" ];
|
plugins = [ "git" ];
|
||||||
theme = "frisk";
|
theme = "frisk";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,185 +1,190 @@
|
||||||
{ lib, config, pkgs, inputs, ... }:
|
{ lib, config, pkgs, inputs, ... }:
|
||||||
let
|
let
|
||||||
cfg = config.modules.automapaper;
|
cfg = config.modules.automapaper;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.modules.automapaper = {
|
options.modules.automapaper = {
|
||||||
enable = lib.mkEnableOption "enable automapaper";
|
enable = lib.mkEnableOption "enable automapaper";
|
||||||
hyprland = lib.mkEnableOption "enable hyprland exec-once integration";
|
hyprland = lib.mkEnableOption "enable hyprland exec-once integration";
|
||||||
configurations = lib.mkOption {
|
configurations = lib.mkOption {
|
||||||
description = "automapaper configurations per monitor";
|
description = "automapaper configurations per monitor";
|
||||||
type = with lib.types; attrsOf (submodule {
|
type = with lib.types; attrsOf (submodule {
|
||||||
options = {
|
options = {
|
||||||
init = lib.mkOption {
|
init = lib.mkOption {
|
||||||
type = str;
|
type = str;
|
||||||
description = "the shader executed to get the state for the initialisation, and re-initialisation steps";
|
description = "the shader executed to get the state for the initialisation, and re-initialisation steps";
|
||||||
};
|
};
|
||||||
state = lib.mkOption {
|
state = lib.mkOption {
|
||||||
type = str; # TODO: make filepath possible as well
|
type = str; # TODO: make filepath possible as well
|
||||||
description = "the shader executed to increment the state to the next generation";
|
description = "the shader executed to increment the state to the next generation";
|
||||||
};
|
};
|
||||||
display = lib.mkOption {
|
display = lib.mkOption {
|
||||||
type = str; # TODO: make filepath possible as well
|
type = str; # TODO: make filepath possible as well
|
||||||
description = "the shader executed to display the state to the monitor";
|
description = "the shader executed to display the state to the monitor";
|
||||||
};
|
};
|
||||||
horizontal = lib.mkOption {
|
horizontal = lib.mkOption {
|
||||||
type = int; # TODO: make filepath possible as well
|
type = int; # TODO: make filepath possible as well
|
||||||
description = "the amount of horizontal cells in the state";
|
description = "the amount of horizontal cells in the state";
|
||||||
};
|
};
|
||||||
vertical = lib.mkOption {
|
vertical = lib.mkOption {
|
||||||
type = int;
|
type = int;
|
||||||
description = "the amount of vertical cells in the state";
|
description = "the amount of vertical cells in the state";
|
||||||
};
|
};
|
||||||
tps = lib.mkOption {
|
tps = lib.mkOption {
|
||||||
type = int;
|
type = int;
|
||||||
description = "the target amount of ticks to simulate each second";
|
description = "the target amount of ticks to simulate each second";
|
||||||
};
|
};
|
||||||
cycles = lib.mkOption {
|
cycles = lib.mkOption {
|
||||||
type = int;
|
type = int;
|
||||||
description = "the amount of state increments before the init shader is called again";
|
description = "the amount of state increments before the init shader is called again";
|
||||||
};
|
};
|
||||||
frames_per_tick = lib.mkOption {
|
frames_per_tick = lib.mkOption {
|
||||||
type = int;
|
type = int;
|
||||||
description = "the amount of times to call the display shader for each iteration of the state shader";
|
description = "the amount of times to call the display shader for each iteration of the state shader";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable (
|
config = lib.mkIf cfg.enable (
|
||||||
let
|
let
|
||||||
displays = lib.attrsets.mapAttrs (displayName: displayConfig:
|
displays = lib.attrsets.mapAttrs
|
||||||
let
|
(displayName: displayConfig:
|
||||||
init = builtins.toFile "init.frag" displayConfig.init;
|
let
|
||||||
state = builtins.toFile "state.frag" displayConfig.state;
|
init = builtins.toFile "init.frag" displayConfig.init;
|
||||||
display = builtins.toFile "display.frag" displayConfig.display;
|
state = builtins.toFile "state.frag" displayConfig.state;
|
||||||
in
|
display = builtins.toFile "display.frag" displayConfig.display;
|
||||||
''
|
in
|
||||||
[display]
|
''
|
||||||
name="${displayName}"
|
[display]
|
||||||
horizontal=${builtins.toString displayConfig.horizontal}
|
name="${displayName}"
|
||||||
vertical=${builtins.toString displayConfig.vertical}
|
horizontal=${builtins.toString displayConfig.horizontal}
|
||||||
tps=${builtins.toString displayConfig.tps}
|
vertical=${builtins.toString displayConfig.vertical}
|
||||||
state_frag="${state}"
|
tps=${builtins.toString displayConfig.tps}
|
||||||
init_frag="${init}"
|
state_frag="${state}"
|
||||||
display_frag="${display}"
|
init_frag="${init}"
|
||||||
cycles=${builtins.toString displayConfig.cycles}
|
display_frag="${display}"
|
||||||
frames_per_tick=${builtins.toString displayConfig.frames_per_tick}
|
cycles=${builtins.toString displayConfig.cycles}
|
||||||
''
|
frames_per_tick=${builtins.toString displayConfig.frames_per_tick}
|
||||||
) cfg.configurations;
|
''
|
||||||
in {
|
)
|
||||||
modules.automapaper.configurations =
|
cfg.configurations;
|
||||||
let
|
in
|
||||||
conf = {
|
{
|
||||||
horizontal = 256;
|
modules.automapaper.configurations =
|
||||||
vertical = 144;
|
let
|
||||||
tps = 30;
|
conf = {
|
||||||
init = ''
|
horizontal = 256;
|
||||||
#version 310 es
|
vertical = 144;
|
||||||
precision highp float;
|
tps = 30;
|
||||||
|
init = ''
|
||||||
|
#version 310 es
|
||||||
|
precision highp float;
|
||||||
|
|
||||||
uniform float time;
|
uniform float time;
|
||||||
uniform vec2 resolution;
|
uniform vec2 resolution;
|
||||||
|
|
||||||
out vec4 stateColor;
|
out vec4 stateColor;
|
||||||
|
|
||||||
float PHI = 1.61803398874989484820459; // Φ = Golden Ratio
|
float PHI = 1.61803398874989484820459; // Φ = Golden Ratio
|
||||||
|
|
||||||
float gold_noise(in vec2 xy, in float seed){
|
float gold_noise(in vec2 xy, in float seed){
|
||||||
return fract(tan(distance(xy*PHI, xy)*seed)*xy.x);
|
return fract(tan(distance(xy*PHI, xy)*seed)*xy.x);
|
||||||
}
|
}
|
||||||
|
|
||||||
void main( void ) {
|
void main( void ) {
|
||||||
|
|
||||||
vec2 position = gl_FragCoord.xy;
|
vec2 position = gl_FragCoord.xy;
|
||||||
float color = gold_noise(position.xy, fract(time));
|
float color = gold_noise(position.xy, fract(time));
|
||||||
|
|
||||||
|
|
||||||
stateColor = vec4(step(0.3, color), 0,0,step(0.3, color));
|
stateColor = vec4(step(0.3, color), 0,0,step(0.3, color));
|
||||||
}'';
|
}'';
|
||||||
state= ''
|
state = ''
|
||||||
#version 310 es
|
#version 310 es
|
||||||
precision highp float;
|
precision highp float;
|
||||||
|
|
||||||
uniform sampler2D state;
|
uniform sampler2D state;
|
||||||
uniform vec2 scale;
|
uniform vec2 scale;
|
||||||
|
|
||||||
out vec4 stateColor;
|
out vec4 stateColor;
|
||||||
|
|
||||||
vec4 get(int x, int y) {
|
vec4 get(int x, int y) {
|
||||||
return texture(state, (gl_FragCoord.xy + vec2(x, y)) / scale);
|
return texture(state, (gl_FragCoord.xy + vec2(x, y)) / scale);
|
||||||
}
|
}
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
int sum = int(get(-1, -1).r +
|
int sum = int(get(-1, -1).r +
|
||||||
get(-1, 0).r +
|
get(-1, 0).r +
|
||||||
get(-1, 1).r +
|
get(-1, 1).r +
|
||||||
get( 0, -1).r +
|
get( 0, -1).r +
|
||||||
get( 0, 1).r +
|
get( 0, 1).r +
|
||||||
get( 1, -1).r +
|
get( 1, -1).r +
|
||||||
get( 1, 0).r +
|
get( 1, 0).r +
|
||||||
get( 1, 1).r);
|
get( 1, 1).r);
|
||||||
vec4 current = get(0,0);
|
vec4 current = get(0,0);
|
||||||
if (sum == 3) {
|
if (sum == 3) {
|
||||||
stateColor.r = 1.0;
|
stateColor.r = 1.0;
|
||||||
stateColor.g = 1.0;
|
stateColor.g = 1.0;
|
||||||
} else if (sum == 2) {
|
} else if (sum == 2) {
|
||||||
stateColor = current;
|
stateColor = current;
|
||||||
if (current.r == 0.0) {
|
if (current.r == 0.0) {
|
||||||
stateColor.g = max(current.g - 0.01, 0.0);
|
stateColor.g = max(current.g - 0.01, 0.0);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
stateColor = vec4(0.0, max(current.g - 0.01, 0.0), 0.0, 1.0);
|
stateColor = vec4(0.0, max(current.g - 0.01, 0.0), 0.0, 1.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
}'';
|
}'';
|
||||||
display = ''
|
display = ''
|
||||||
#version 310 es
|
#version 310 es
|
||||||
precision highp float;
|
precision highp float;
|
||||||
|
|
||||||
uniform sampler2D tex2D;
|
uniform sampler2D tex2D;
|
||||||
uniform sampler2D old2D;
|
uniform sampler2D old2D;
|
||||||
uniform ivec2 resolution;
|
uniform ivec2 resolution;
|
||||||
uniform float frame_part;
|
uniform float frame_part;
|
||||||
|
|
||||||
in highp vec2 texCoords;
|
in highp vec2 texCoords;
|
||||||
out vec4 stateColor;
|
out vec4 stateColor;
|
||||||
|
|
||||||
const vec4 bgColor = vec4(38.0/255.0, 5.0/255.0, 46.0/255.0, 1.0); // #26052e
|
const vec4 bgColor = vec4(38.0/255.0, 5.0/255.0, 46.0/255.0, 1.0); // #26052e
|
||||||
const vec4 fgColor = vec4(148.0/255.0, 15.0/255.0, 173.0/255.0, 1.0); // #950fad
|
const vec4 fgColor = vec4(148.0/255.0, 15.0/255.0, 173.0/255.0, 1.0); // #950fad
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
vec2 canvasSize = vec2(textureSize(tex2D, 0));
|
vec2 canvasSize = vec2(textureSize(tex2D, 0));
|
||||||
vec4 state = texture(tex2D, texCoords);
|
vec4 state = texture(tex2D, texCoords);
|
||||||
vec4 ostate = texture(old2D, texCoords);
|
vec4 ostate = texture(old2D, texCoords);
|
||||||
|
|
||||||
vec2 localCoords = fract(gl_FragCoord.xy / vec2(resolution) * canvasSize);
|
vec2 localCoords = fract(gl_FragCoord.xy / vec2(resolution) * canvasSize);
|
||||||
localCoords = localCoords - 0.5;
|
localCoords = localCoords - 0.5;
|
||||||
float dist = sqrt(dot(localCoords, localCoords));
|
float dist = sqrt(dot(localCoords, localCoords));
|
||||||
|
|
||||||
float size = smoothstep(0.0, 1.0, pow(mix(ostate.g,state.g, frame_part), 3.0)) * 0.35;
|
float size = smoothstep(0.0, 1.0, pow(mix(ostate.g,state.g, frame_part), 3.0)) * 0.35;
|
||||||
float mask = 1.0 - step(size, dist);
|
float mask = 1.0 - step(size, dist);
|
||||||
|
|
||||||
float brightness = mix(ostate.r,state.r, frame_part) + 0.2 * pow(mix(ostate.g,state.g, frame_part), 3.0);
|
float brightness = mix(ostate.r,state.r, frame_part) + 0.2 * pow(mix(ostate.g,state.g, frame_part), 3.0);
|
||||||
stateColor = mix(bgColor, fgColor, brightness * mask);
|
stateColor = mix(bgColor, fgColor, brightness * mask);
|
||||||
}'';
|
}'';
|
||||||
cycles = 2500;
|
cycles = 2500;
|
||||||
frames_per_tick = 1;
|
frames_per_tick = 1;
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
"DP-3" = conf;
|
"DP-3" = conf;
|
||||||
"DP-2" = conf;
|
"DP-2" = conf;
|
||||||
};
|
};
|
||||||
wayland.windowManager.hyprland.settings.exec-once = lib.mkIf cfg.hyprland (
|
wayland.windowManager.hyprland.settings.exec-once = lib.mkIf cfg.hyprland (
|
||||||
lib.mapAttrsToList (name: config:
|
lib.mapAttrsToList
|
||||||
"${
|
(name: config:
|
||||||
|
"${
|
||||||
inputs.automapaper.packages.${pkgs.system}.default
|
inputs.automapaper.packages.${pkgs.system}.default
|
||||||
}/bin/automapaper -C ${
|
}/bin/automapaper -C ${
|
||||||
builtins.toFile "${name}.toml" config
|
builtins.toFile "${name}.toml" config
|
||||||
}") displays
|
}")
|
||||||
);
|
displays
|
||||||
}
|
);
|
||||||
);
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
{ config, lib, pkgs, inputs, ... }:
|
{ config, lib, pkgs, inputs, ... }:
|
||||||
let
|
let
|
||||||
cfg = config.modules.dunst;
|
cfg = config.modules.dunst;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.modules.dunst = {
|
options.modules.dunst = {
|
||||||
enable = lib.mkEnableOption "enable dunst for notifications";
|
enable = lib.mkEnableOption "enable dunst for notifications";
|
||||||
};
|
};
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
services.dunst = {
|
services.dunst = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,18 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
let
|
let
|
||||||
cfg = config.modules.games;
|
cfg = config.modules.games;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.modules.games = {
|
options.modules.games = {
|
||||||
enable = lib.mkEnableOption "enable gaming services";
|
enable = lib.mkEnableOption "enable gaming services";
|
||||||
minecraft.enable = lib.mkEnableOption "enable minecraft";
|
minecraft.enable = lib.mkEnableOption "enable minecraft";
|
||||||
};
|
};
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./minecraft.nix
|
./minecraft.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
modules.games.minecraft.enable = true;
|
modules.games.minecraft.enable = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
let
|
let
|
||||||
cfg = config.modules.games.minecraft;
|
cfg = config.modules.games.minecraft;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
home.packages = [
|
home.packages = [
|
||||||
(pkgs.prismlauncher.override{withWaylandGLFW=true;})
|
(pkgs.prismlauncher.override { withWaylandGLFW = true; })
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,33 +1,33 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
options.modules.games.steam = {
|
options.modules.games.steam = {
|
||||||
enable = lib.mkEnableOption "enable steam";
|
enable = lib.mkEnableOption "enable steam";
|
||||||
};
|
};
|
||||||
config = lib.mkIf config.modules.games.steam.enable {
|
config = lib.mkIf config.modules.games.steam.enable {
|
||||||
programs = {
|
programs = {
|
||||||
steam = {
|
steam = {
|
||||||
enable = true;
|
enable = true;
|
||||||
remotePlay.openFirewall = true;
|
remotePlay.openFirewall = true;
|
||||||
gamescopeSession.enable = true;
|
gamescopeSession.enable = true;
|
||||||
dedicatedServer.openFirewall = true;
|
dedicatedServer.openFirewall = true;
|
||||||
|
|
||||||
package = pkgs.steam.override {
|
package = pkgs.steam.override {
|
||||||
extraPkgs = pkgs: with pkgs; [
|
extraPkgs = pkgs: with pkgs; [
|
||||||
xorg.libXcursor
|
xorg.libXcursor
|
||||||
xorg.libXi
|
xorg.libXi
|
||||||
xorg.libXinerama
|
xorg.libXinerama
|
||||||
xorg.libXScrnSaver
|
xorg.libXScrnSaver
|
||||||
libpng
|
libpng
|
||||||
libpulseaudio
|
libpulseaudio
|
||||||
libvorbis
|
libvorbis
|
||||||
stdenv.cc.cc.lib
|
stdenv.cc.cc.lib
|
||||||
libkrb5
|
libkrb5
|
||||||
keyutils
|
keyutils
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
gamemode.enable = true;
|
gamemode.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -30,127 +30,130 @@ in
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
modules = {
|
modules = {
|
||||||
automapaper = {
|
automapaper = {
|
||||||
enable = lib.mkDefault true;
|
enable = lib.mkDefault true;
|
||||||
hyprland = cfg.enable;
|
hyprland = cfg.enable;
|
||||||
};
|
};
|
||||||
waybar = {
|
waybar = {
|
||||||
modules = {
|
modules = {
|
||||||
left = [ "hyprland/workspaces" "tray" "hyprland/window" ];
|
left = [ "hyprland/workspaces" "tray" "hyprland/window" ];
|
||||||
center = [ "clock" ];
|
center = [ "clock" ];
|
||||||
right = [ "custom/vpn" "wireplumber" "network" "cpu" "memory" "custom/poweroff" ];
|
right = [ "custom/vpn" "wireplumber" "network" "cpu" "memory" "custom/poweroff" ];
|
||||||
};
|
};
|
||||||
enable = lib.mkDefault true;
|
enable = lib.mkDefault true;
|
||||||
};
|
};
|
||||||
wofi.enable = lib.mkDefault true;
|
wofi.enable = lib.mkDefault true;
|
||||||
dunst.enable = lib.mkDefault true;
|
dunst.enable = lib.mkDefault true;
|
||||||
};
|
};
|
||||||
# these are necessary for the config to function correctly
|
# these are necessary for the config to function correctly
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# I always want these with hyprland anyways
|
# I always want these with hyprland anyways
|
||||||
libnotify # to enable the notify-send command
|
libnotify # to enable the notify-send command
|
||||||
wl-clipboard # wl-copy and wl-paste
|
wl-clipboard # wl-copy and wl-paste
|
||||||
|
|
||||||
playerctl
|
playerctl
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
xdg.portal.configPackages = [ cfg.package ];
|
xdg.portal.configPackages = [ cfg.package ];
|
||||||
|
|
||||||
services.playerctld.enable = true;
|
services.playerctld.enable = true;
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = cfg.package;
|
package = cfg.package;
|
||||||
settings = {
|
settings = {
|
||||||
monitor = [
|
monitor = [
|
||||||
"DP-3,2560x1440@360,2560x0,1"
|
"DP-3,2560x1440@360,2560x0,1"
|
||||||
"DP-2,2560x1440@144,0x0,1"
|
"DP-2,2560x1440@144,0x0,1"
|
||||||
];
|
];
|
||||||
windowrulev2 = [
|
windowrulev2 = [
|
||||||
"opacity 1.0 0.6,class:^(kitty)$"
|
"opacity 1.0 0.6,class:^(kitty)$"
|
||||||
"stayfocused,class:^(wofi)$"
|
"stayfocused,class:^(wofi)$"
|
||||||
];
|
];
|
||||||
env = [
|
env = [
|
||||||
"WLR_NO_HARDWARE_CURSORS,1"
|
"WLR_NO_HARDWARE_CURSORS,1"
|
||||||
];
|
];
|
||||||
exec-once = [
|
exec-once = [
|
||||||
"${pkgs.waybar}/bin/waybar"
|
"${pkgs.waybar}/bin/waybar"
|
||||||
"${pkgs.dunst}/bin/dunst"
|
"${pkgs.dunst}/bin/dunst"
|
||||||
"${cfg.package}/bin/hyprctl dispatcher focusmonitor 1"
|
"${cfg.package}/bin/hyprctl dispatcher focusmonitor 1"
|
||||||
"${pkgs.hypridle}/bin/hypridle"
|
"${pkgs.hypridle}/bin/hypridle"
|
||||||
];
|
];
|
||||||
general = {
|
general = {
|
||||||
sensitivity = "1.2";
|
sensitivity = "1.2";
|
||||||
gaps_in = "2";
|
gaps_in = "2";
|
||||||
gaps_out = "3";
|
gaps_out = "3";
|
||||||
border_size = "3";
|
border_size = "3";
|
||||||
"col.active_border"="0xff950fad";
|
"col.active_border" = "0xff950fad";
|
||||||
"col.inactive_border"="0xff26052e";
|
"col.inactive_border" = "0xff26052e";
|
||||||
};
|
};
|
||||||
misc = {
|
misc = {
|
||||||
key_press_enables_dpms = true;
|
key_press_enables_dpms = true;
|
||||||
};
|
};
|
||||||
decoration = {
|
decoration = {
|
||||||
rounding = "6";
|
rounding = "6";
|
||||||
active_opacity = "1";
|
active_opacity = "1";
|
||||||
inactive_opacity = "1";
|
inactive_opacity = "1";
|
||||||
};
|
};
|
||||||
workspace = [
|
workspace = [
|
||||||
"DP-3,1"
|
"DP-3,1"
|
||||||
"DP-2,2"
|
"DP-2,2"
|
||||||
];
|
];
|
||||||
animations = {
|
animations = {
|
||||||
enabled = "1";
|
enabled = "1";
|
||||||
animation = [
|
animation = [
|
||||||
"windows,1,2,default"
|
"windows,1,2,default"
|
||||||
"border,1,10,default"
|
"border,1,10,default"
|
||||||
"fade,0,5,default"
|
"fade,0,5,default"
|
||||||
"workspaces,1,4,default"
|
"workspaces,1,4,default"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
"$mod" = "SUPER";
|
"$mod" = "SUPER";
|
||||||
bind = [
|
bind = [
|
||||||
"$mod,Return,exec,${cfg.terminal}/bin/${cfg.terminal.pname}"
|
"$mod,Return,exec,${cfg.terminal}/bin/${cfg.terminal.pname}"
|
||||||
"$mod,tab,cyclenext"
|
"$mod,tab,cyclenext"
|
||||||
"SUPERSHIFT,Q,killactive"
|
"SUPERSHIFT,Q,killactive"
|
||||||
"$mod,SPACE,exec,wofi-launch"
|
"$mod,SPACE,exec,wofi-launch"
|
||||||
"$mod,P,exec,wofi-power"
|
"$mod,P,exec,wofi-power"
|
||||||
"SUPERSHIFT,m,exit"
|
"SUPERSHIFT,m,exit"
|
||||||
"$mod,H,movefocus,l"
|
"$mod,H,movefocus,l"
|
||||||
"$mod,J,movefocus,u"
|
"$mod,J,movefocus,u"
|
||||||
"$mod,K,movefocus,d"
|
"$mod,K,movefocus,d"
|
||||||
"$mod,L,movefocus,r"
|
"$mod,L,movefocus,r"
|
||||||
"SUPERSHIFT,H,movewindow,l"
|
"SUPERSHIFT,H,movewindow,l"
|
||||||
"SUPERSHIFT,J,movewindow,u"
|
"SUPERSHIFT,J,movewindow,u"
|
||||||
"SUPERSHIFT,K,movewindow,d"
|
"SUPERSHIFT,K,movewindow,d"
|
||||||
"SUPERSHIFT,L,movewindow,r"
|
"SUPERSHIFT,L,movewindow,r"
|
||||||
"$mod,F,togglefloating"
|
"$mod,F,togglefloating"
|
||||||
"$mod,X,togglespecialworkspace"
|
"$mod,X,togglespecialworkspace"
|
||||||
"SUPERSHIFT,X,movetoworkspace,special"
|
"SUPERSHIFT,X,movetoworkspace,special"
|
||||||
"SUPERSHIFT,S,exec,${pkgs.hyprshot}/bin/hyprshot -m region --clipboard-only"
|
"SUPERSHIFT,S,exec,${pkgs.hyprshot}/bin/hyprshot -m region --clipboard-only"
|
||||||
"$mod,f11,fullscreen,0"
|
"$mod,f11,fullscreen,0"
|
||||||
",XF86AudioLowerVolume,exec,${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_SINK@ 1%-"
|
",XF86AudioLowerVolume,exec,${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_SINK@ 1%-"
|
||||||
",XF86AudioRaiseVolume,exec,${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_SINK@ 1%+"
|
",XF86AudioRaiseVolume,exec,${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_SINK@ 1%+"
|
||||||
",XF86AudioMute,exec,${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_SINK@ toggle"
|
",XF86AudioMute,exec,${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_SINK@ toggle"
|
||||||
",XF86AudioPlay,exec,${pkgs.playerctl}/bin/playerctl play-pause"
|
",XF86AudioPlay,exec,${pkgs.playerctl}/bin/playerctl play-pause"
|
||||||
",XF86AudioPrev,exec,${pkgs.playerctl}/bin/playerctl previous"
|
",XF86AudioPrev,exec,${pkgs.playerctl}/bin/playerctl previous"
|
||||||
",XF86AudioNext,exec,${pkgs.playerctl}/bin/playerctl next"
|
",XF86AudioNext,exec,${pkgs.playerctl}/bin/playerctl next"
|
||||||
]
|
]
|
||||||
++ (
|
++ (
|
||||||
builtins.concatLists (builtins.genList (
|
builtins.concatLists (builtins.genList
|
||||||
x: let
|
(
|
||||||
ws = builtins.toString (x);
|
x:
|
||||||
in [
|
let
|
||||||
"$mod,${ws},workspace,${ws}"
|
ws = builtins.toString (x);
|
||||||
"ALT,${ws},movetoworkspace,${ws}"
|
in
|
||||||
]
|
[
|
||||||
)
|
"$mod,${ws},workspace,${ws}"
|
||||||
10)
|
"ALT,${ws},movetoworkspace,${ws}"
|
||||||
);
|
]
|
||||||
bindm = [
|
)
|
||||||
"$mod,mouse:272,movewindow"
|
10)
|
||||||
"$mod,mouse:273,resizewindow"
|
);
|
||||||
];
|
bindm = [
|
||||||
};
|
"$mod,mouse:272,movewindow"
|
||||||
|
"$mod,mouse:273,resizewindow"
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
config:
|
config:
|
||||||
[ "hyprland/workspaces" "tray" "hyprland/window" ] ++
|
[ "hyprland/workspaces" "tray" "hyprland/window" ] ++
|
||||||
[ "clock" ] ++
|
[ "clock" ] ++
|
||||||
[ "custom/vpn" "wireplumber" "network" "cpu" "memory" "custom/poweroff" ]
|
[ "custom/vpn" "wireplumber" "network" "cpu" "memory" "custom/poweroff" ]
|
||||||
|
|
|
||||||
|
|
@ -12,15 +12,15 @@ in
|
||||||
modules = {
|
modules = {
|
||||||
left = lib.mkOption {
|
left = lib.mkOption {
|
||||||
type = with lib.types; listOf (enum [ ]);
|
type = with lib.types; listOf (enum [ ]);
|
||||||
default = [];
|
default = [ ];
|
||||||
};
|
};
|
||||||
center = lib.mkOption {
|
center = lib.mkOption {
|
||||||
type = with lib.types; listOf (enum [ ]);
|
type = with lib.types; listOf (enum [ ]);
|
||||||
default = [];
|
default = [ ];
|
||||||
};
|
};
|
||||||
right = lib.mkOption {
|
right = lib.mkOption {
|
||||||
type = with lib.types; listOf (enum [ ]);
|
type = with lib.types; listOf (enum [ ]);
|
||||||
default = [];
|
default = [ ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
config:
|
config:
|
||||||
builtins.map
|
builtins.map
|
||||||
(n: {name = n; value = {enable = true;}; })
|
(n: { name = n; value = { enable = true; }; })
|
||||||
(import ./allmodules.nix config)
|
(import ./allmodules.nix config)
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ in
|
||||||
hwmon-path = "/sys/class/hwmon/hwmon3/temp1_input";
|
hwmon-path = "/sys/class/hwmon/hwmon3/temp1_input";
|
||||||
critical-threshold = 80;
|
critical-threshold = 80;
|
||||||
format = "{temperatureC}°C {icon}";
|
format = "{temperatureC}°C {icon}";
|
||||||
format-icons = ["" "" ""];
|
format-icons = [ "" "" "" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ in
|
||||||
format = "{volume}% {icon}";
|
format = "{volume}% {icon}";
|
||||||
format-muted = "";
|
format-muted = "";
|
||||||
on-click = "helvum";
|
on-click = "helvum";
|
||||||
format-icons = ["" "" ""];
|
format-icons = [ "" "" "" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
220
modules/wofi.nix
220
modules/wofi.nix
|
|
@ -1,126 +1,124 @@
|
||||||
{ lib, config, pkgs, inputs, ... }:
|
{ lib, config, pkgs, inputs, ... }:
|
||||||
let
|
let
|
||||||
cfg = config.modules.wofi;
|
cfg = config.modules.wofi;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.modules.wofi = {
|
options.modules.wofi = {
|
||||||
enable = lib.mkEnableOption "enable wofi app launcher";
|
enable = lib.mkEnableOption "enable wofi app launcher";
|
||||||
};
|
};
|
||||||
imports = [
|
imports = [
|
||||||
../common/colors.nix
|
../common/colors.nix
|
||||||
];
|
];
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
(writeShellScriptBin "wofi-launch" ''
|
(writeShellScriptBin "wofi-launch" ''
|
||||||
${wofi}/bin/wofi --show drun
|
${wofi}/bin/wofi --show drun
|
||||||
'')
|
'')
|
||||||
(writeShellScriptBin "wofi-power" ''
|
(writeShellScriptBin "wofi-power" ''
|
||||||
lock="Lock"
|
lock="Lock"
|
||||||
poweroff="Poweroff"
|
poweroff="Poweroff"
|
||||||
reboot="Reboot"
|
reboot="Reboot"
|
||||||
sleep="Suspend"
|
sleep="Suspend"
|
||||||
|
|
||||||
selected_option=$(echo -e "$lock\n$sleep\n$reboot\n$poweroff" | wofi --dmenu -i -p "Powermenu")
|
selected_option=$(echo -e "$lock\n$sleep\n$reboot\n$poweroff" | wofi --dmenu -i -p "Powermenu")
|
||||||
|
|
||||||
if [ "$selected_option" == "$lock" ]
|
if [ "$selected_option" == "$lock" ]
|
||||||
then
|
then
|
||||||
echo "lock"
|
echo "lock"
|
||||||
swaylock
|
swaylock
|
||||||
elif [ "$selected_option" == "$poweroff" ]
|
elif [ "$selected_option" == "$poweroff" ]
|
||||||
then
|
then
|
||||||
echo "poweroff"
|
echo "poweroff"
|
||||||
poweroff
|
poweroff
|
||||||
elif [ "$selected_option" == "$reboot" ]
|
elif [ "$selected_option" == "$reboot" ]
|
||||||
then
|
then
|
||||||
echo "reboot"
|
echo "reboot"
|
||||||
reboot
|
reboot
|
||||||
elif [ "$selected_option" == "$sleep" ]
|
elif [ "$selected_option" == "$sleep" ]
|
||||||
then
|
then
|
||||||
echo "sleep"
|
echo "sleep"
|
||||||
suspend
|
suspend
|
||||||
else
|
else
|
||||||
echo "No match"
|
echo "No match"
|
||||||
fi
|
fi
|
||||||
'')
|
'')
|
||||||
];
|
];
|
||||||
programs.wofi = {
|
programs.wofi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = { };
|
||||||
|
style = ''
|
||||||
|
* {
|
||||||
|
outline: none;
|
||||||
|
outline-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
};
|
#window {
|
||||||
style = ''
|
margin: 10px;
|
||||||
* {
|
border: none;
|
||||||
outline: none;
|
background-color: #${config.colorScheme.palette.background};
|
||||||
outline-style: none;
|
border-radius: 10px;
|
||||||
}
|
font-family:
|
||||||
|
JetBrains Mono NF,
|
||||||
|
monospace;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
#window {
|
#outer-box {
|
||||||
margin: 10px;
|
margin: 10px;
|
||||||
border: none;
|
border: 2px #${config.colorScheme.palette.backgroundMuted};
|
||||||
background-color: #${config.colorScheme.palette.background};
|
border-radius: 10px;
|
||||||
border-radius: 10px;
|
background-color: transparent;
|
||||||
font-family:
|
}
|
||||||
JetBrains Mono NF,
|
|
||||||
monospace;
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#outer-box {
|
#input {
|
||||||
margin: 10px;
|
border: none;
|
||||||
border: 2px #${config.colorScheme.palette.backgroundMuted};
|
border-radius: 10px;
|
||||||
border-radius: 10px;
|
margin-left: 2px;
|
||||||
background-color: transparent;
|
color: #${config.colorScheme.palette.info};
|
||||||
}
|
outline-style: none;
|
||||||
|
background-color: #${config.colorScheme.palette.background};
|
||||||
|
}
|
||||||
|
|
||||||
#input {
|
#scroll {
|
||||||
border: none;
|
border: 10px solid #${config.colorScheme.palette.border};
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
margin-left: 2px;
|
/*padding-right: 10px;*/
|
||||||
color: #${config.colorScheme.palette.info};
|
outline: none;
|
||||||
outline-style: none;
|
background-color: #${config.colorScheme.palette.background};
|
||||||
background-color: #${config.colorScheme.palette.background};
|
}
|
||||||
}
|
|
||||||
|
|
||||||
#scroll {
|
#inner-box {
|
||||||
border: 10px solid #${config.colorScheme.palette.border};
|
border: none;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
/*padding-right: 10px;*/
|
background-color: transparent;
|
||||||
outline: none;
|
}
|
||||||
background-color: #${config.colorScheme.palette.background};
|
|
||||||
}
|
|
||||||
|
|
||||||
#inner-box {
|
#entry {
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 10px;
|
/*border-radius: 10px;
|
||||||
background-color: transparent;
|
margin-right: 15px;
|
||||||
}
|
margin-left: 15px;*/
|
||||||
|
padding-right: 10px;
|
||||||
|
padding-left: 10px;
|
||||||
|
color: #${config.colorScheme.palette.text};
|
||||||
|
background-color: #${config.colorScheme.palette.background};
|
||||||
|
}
|
||||||
|
#entry:selected {
|
||||||
|
border: none;
|
||||||
|
background-color: #${config.colorScheme.palette.info};
|
||||||
|
}
|
||||||
|
|
||||||
#entry {
|
#text:selected {
|
||||||
border: none;
|
border: none;
|
||||||
/*border-radius: 10px;
|
color: #${config.colorScheme.palette.textMuted};
|
||||||
margin-right: 15px;
|
}
|
||||||
margin-left: 15px;*/
|
|
||||||
padding-right: 10px;
|
|
||||||
padding-left: 10px;
|
|
||||||
color: #${config.colorScheme.palette.text};
|
|
||||||
background-color: #${config.colorScheme.palette.background};
|
|
||||||
}
|
|
||||||
#entry:selected {
|
|
||||||
border: none;
|
|
||||||
background-color: #${config.colorScheme.palette.info};
|
|
||||||
}
|
|
||||||
|
|
||||||
#text:selected {
|
#img {
|
||||||
border: none;
|
background-color: transparent;
|
||||||
color: #${config.colorScheme.palette.textMuted};
|
margin-right: 6px;
|
||||||
}
|
}
|
||||||
|
'';
|
||||||
#img {
|
};
|
||||||
background-color: transparent;
|
};
|
||||||
margin-right: 6px;
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue