fixed merge conflicts
This commit is contained in:
commit
65c8116798
49 changed files with 814 additions and 92 deletions
6
flake.lock
generated
6
flake.lock
generated
|
@ -370,11 +370,11 @@
|
||||||
"xdph": "xdph"
|
"xdph": "xdph"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1712947921,
|
"lastModified": 1712969717,
|
||||||
"narHash": "sha256-tDnNWtr4y22Qoyneg0TKcIncaeZ/5v1V90gPrLIQd3A=",
|
"narHash": "sha256-vAtfM8lHOLjuHh/CTzSFUaCJp0qlAWttWimin3KoDXM=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "Hyprland",
|
"repo": "Hyprland",
|
||||||
"rev": "dd6fdf49d9deebfe792ab5cd0332432249922fa9",
|
"rev": "582d6233c802327fea45a14d146e7cbab5fe4b1e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
@ -37,4 +37,15 @@ in {
|
||||||
inputs.agenix.nixosModules.default
|
inputs.agenix.nixosModules.default
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
flocke = lib.nixosSystem {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
specialArgs = { inherit lib inputs self; };
|
||||||
|
modules = [
|
||||||
|
./dragyx/flocke
|
||||||
|
../modules
|
||||||
|
inputs.home-manager.nixosModules.home-manager
|
||||||
|
inputs.agenix.nixosModules.default
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
65
hosts/dragyx/common/packages.nix
Normal file
65
hosts/dragyx/common/packages.nix
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
# which default packages to use for the system
|
||||||
|
{ inputs, outputs, profile-config, pkgs, ...}:
|
||||||
|
|
||||||
|
let
|
||||||
|
python-packages = ps: with ps; [
|
||||||
|
pandas
|
||||||
|
numpy
|
||||||
|
opencv4
|
||||||
|
ipython
|
||||||
|
];
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# List packages installed in system profile. To search, run:
|
||||||
|
# $ nix search wget
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
(python3.withPackages python-packages)
|
||||||
|
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||||
|
neovim
|
||||||
|
eza # exa is unmaintained
|
||||||
|
hwinfo
|
||||||
|
zsh
|
||||||
|
git
|
||||||
|
broot
|
||||||
|
unzip
|
||||||
|
rsync
|
||||||
|
# neofetch
|
||||||
|
# fastfetch has the option to set a timeout for
|
||||||
|
# for each module, which makes it dramatically faster
|
||||||
|
# as counting the number of packages takes over 800 (!!!) ms,
|
||||||
|
# which makes it very unpleasant to use as default thing
|
||||||
|
# to display when starting a terminal
|
||||||
|
fastfetch
|
||||||
|
alacritty
|
||||||
|
wget
|
||||||
|
gnumake
|
||||||
|
zoxide
|
||||||
|
python3
|
||||||
|
nodejs
|
||||||
|
gcc
|
||||||
|
cargo
|
||||||
|
rustc
|
||||||
|
rust-analyzer
|
||||||
|
clippy
|
||||||
|
lsof
|
||||||
|
htop
|
||||||
|
okular
|
||||||
|
smartmontools
|
||||||
|
networkmanager
|
||||||
|
pkg-config
|
||||||
|
sof-firmware # audio
|
||||||
|
nix-index
|
||||||
|
# --------- optional
|
||||||
|
gnome.eog
|
||||||
|
sherlock
|
||||||
|
xfce.thunar
|
||||||
|
|
||||||
|
plocate
|
||||||
|
alsa-utils
|
||||||
|
|
||||||
|
# partition management
|
||||||
|
parted
|
||||||
|
gnufdisk
|
||||||
|
lapce
|
||||||
|
];
|
||||||
|
}
|
166
hosts/dragyx/flocke/configuration.nix
Normal file
166
hosts/dragyx/flocke/configuration.nix
Normal file
|
@ -0,0 +1,166 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
../../../options/common/pin-registry.nix
|
||||||
|
../../../options/common/preserve-system.nix
|
||||||
|
../../../options/desktop/fonts.nix
|
||||||
|
./packages.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
time.timeZone = "Europe/Zurich";
|
||||||
|
security.sudo.package = pkgs.sudo.override { withInsults = true; };
|
||||||
|
|
||||||
|
services.displayManager = {
|
||||||
|
sessionPackages = [ pkgs.hyprland ]; # pkgs.gnome.gnome-session.sessions ];
|
||||||
|
defaultSession = "hyprland";
|
||||||
|
sddm = {
|
||||||
|
enable = true;
|
||||||
|
wayland.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
hardware.bluetooth.enable = true;
|
||||||
|
hardware.bluetooth.powerOnBoot = true;
|
||||||
|
|
||||||
|
hardware.opengl.driSupport = true;
|
||||||
|
hardware.opengl.driSupport32Bit = true;
|
||||||
|
hardware.opengl.enable = true;
|
||||||
|
|
||||||
|
services.logrotate.checkConfig = false;
|
||||||
|
|
||||||
|
networking.hostName = "flocke"; # Define your hostname.
|
||||||
|
networking.hostId = "adf23c31";
|
||||||
|
networking.interfaces.wlp1s0.useDHCP = true;
|
||||||
|
networking.networkmanager.enable = true;
|
||||||
|
environment.systemPackages = with pkgs; [ networkmanager ]; # cli tool for managing connections
|
||||||
|
|
||||||
|
boot = {
|
||||||
|
kernelParams = [ ];
|
||||||
|
initrd.supportedFilesystems = [ "ext4" ];
|
||||||
|
supportedFilesystems = [ "ext4" ];
|
||||||
|
loader = {
|
||||||
|
efi.efiSysMountPoint = "/boot";
|
||||||
|
efi.canTouchEfiVariables = true;
|
||||||
|
grub = {
|
||||||
|
enable = true;
|
||||||
|
device = "nodev";
|
||||||
|
efiSupport = true;
|
||||||
|
enableCryptodisk = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
initrd.luks.devices = {
|
||||||
|
cryptroot = {
|
||||||
|
device = "/dev/disk/by-uuid/ec5ff3a1-9b39-4ba5-aa0f-19e898b4f6e8";
|
||||||
|
preLVM = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# see https://nixos.wiki/wiki/AMD_GPU
|
||||||
|
services.xserver.videoDrivers = [ "amdgpu" ];
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"L+ /opt/rocm/hip - - - - ${pkgs.rocmPackages.clr}"
|
||||||
|
];
|
||||||
|
hardware.opengl.extraPackages = with pkgs; [
|
||||||
|
rocmPackages.clr.icd
|
||||||
|
];
|
||||||
|
|
||||||
|
services.power-profiles-daemon.enable = false;
|
||||||
|
|
||||||
|
# stock nixos power management
|
||||||
|
powerManagement.enable = true;
|
||||||
|
|
||||||
|
services.tlp = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
CPU_SCALING_GOVERNOR_ON_AC = "performance";
|
||||||
|
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
|
||||||
|
|
||||||
|
CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
|
||||||
|
CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
|
||||||
|
|
||||||
|
CPU_MIN_PERF_ON_AC = 0;
|
||||||
|
CPU_MAX_PERF_ON_AC = 100;
|
||||||
|
CPU_MIN_PERF_ON_BAT = 0;
|
||||||
|
CPU_MAX_PERF_ON_BAT = 20;
|
||||||
|
|
||||||
|
#Optional helps save long term battery health
|
||||||
|
START_CHARGE_THRESH_BAT0 = 40; # 40 and bellow it starts to charge
|
||||||
|
STOP_CHARGE_THRESH_BAT0 = 85; # 80 and above it stops charging
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [ {
|
||||||
|
device = "/var/lib/swapfile";
|
||||||
|
size = 32*1024;
|
||||||
|
} ];
|
||||||
|
|
||||||
|
|
||||||
|
# be nice to your ssds
|
||||||
|
services.fstrim.enable = true;
|
||||||
|
# services.xserver.enable = pkgs.lib.mkForce false;
|
||||||
|
|
||||||
|
security.polkit.enable = true;
|
||||||
|
|
||||||
|
modules = {
|
||||||
|
other = {
|
||||||
|
system = rec {
|
||||||
|
hostname = "flocke";
|
||||||
|
username = "dragyx";
|
||||||
|
gitPath = "/home/${username}/repos/nichts";
|
||||||
|
monitors = [
|
||||||
|
{
|
||||||
|
name = "LaptopMain";
|
||||||
|
device = "eDP-1";
|
||||||
|
resolution = {
|
||||||
|
x = 2256;
|
||||||
|
y = 1504;
|
||||||
|
};
|
||||||
|
scale = 1.175;
|
||||||
|
refresh_rate = 60;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
home-manager = {
|
||||||
|
enable = true;
|
||||||
|
enableDirenv = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
programs = {
|
||||||
|
vesktop.enable = true;
|
||||||
|
btop.enable = true;
|
||||||
|
mpv.enable = true;
|
||||||
|
schizofox.enable = true;
|
||||||
|
obs.enable = true;
|
||||||
|
# neovim.enable = true;
|
||||||
|
git = {
|
||||||
|
enable = true;
|
||||||
|
userName = "Dragyx";
|
||||||
|
userEmail = "66752602+Dragyx@users.noreply.github.com";
|
||||||
|
defaultBranch = "main";
|
||||||
|
};
|
||||||
|
starship.enable = true;
|
||||||
|
zsh = {
|
||||||
|
enable = true;
|
||||||
|
profiling = false;
|
||||||
|
};
|
||||||
|
# badneovim.enable = true;
|
||||||
|
};
|
||||||
|
services = {
|
||||||
|
pipewire.enable = true;
|
||||||
|
};
|
||||||
|
WM.hyprland.enable = true;
|
||||||
|
};
|
||||||
|
# This value determines the NixOS release from which the default
|
||||||
|
# settings for stateful data, like file locations and database versions
|
||||||
|
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||||
|
# this value at the release version of the first install of this system.
|
||||||
|
# Before changing this value read the documentation for this option
|
||||||
|
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||||
|
system.stateVersion = "21.11"; # Did you read the comment?
|
||||||
|
}
|
8
hosts/dragyx/flocke/default.nix
Normal file
8
hosts/dragyx/flocke/default.nix
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
_: {
|
||||||
|
imports = [
|
||||||
|
../../../options/desktop/monitors.nix
|
||||||
|
./configuration.nix
|
||||||
|
./hardware-configuration.nix
|
||||||
|
# ./packages.nix
|
||||||
|
];
|
||||||
|
}
|
35
hosts/dragyx/flocke/hardware-configuration.nix
Normal file
35
hosts/dragyx/flocke/hardware-configuration.nix
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "sd_mod" ];
|
||||||
|
boot.initrd.kernelModules = [ "amdgpu" ];
|
||||||
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{ device = "/dev/disk/by-uuid/2aaba0f2-e8dc-4583-a81e-2d35cc238e79";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{ device = "/dev/disk/by-uuid/9D34-36F8";
|
||||||
|
fsType = "vfat";
|
||||||
|
};
|
||||||
|
|
||||||
|
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.wlp1s0.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
56
hosts/dragyx/flocke/packages.nix
Normal file
56
hosts/dragyx/flocke/packages.nix
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
# which default packages to use for the system
|
||||||
|
{ inputs, outputs, profile-config, pkgs, ...}:
|
||||||
|
|
||||||
|
let
|
||||||
|
python-packages = ps: with ps; [
|
||||||
|
pandas
|
||||||
|
numpy
|
||||||
|
opencv4
|
||||||
|
ipython
|
||||||
|
];
|
||||||
|
in
|
||||||
|
{
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
../common/packages.nix
|
||||||
|
];
|
||||||
|
# List packages installed in system profile. To search, run:
|
||||||
|
# $ nix search wget
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
|
||||||
|
# security audits
|
||||||
|
lynis
|
||||||
|
element-desktop
|
||||||
|
jetbrains.idea-community
|
||||||
|
baobab
|
||||||
|
amdvlk
|
||||||
|
texlive.combined.scheme-full
|
||||||
|
android-tools
|
||||||
|
signal-desktop
|
||||||
|
nextcloud-client
|
||||||
|
# etcher
|
||||||
|
vlc
|
||||||
|
audacity
|
||||||
|
thunderbird
|
||||||
|
eclipses.eclipse-java
|
||||||
|
openjdk
|
||||||
|
firefox
|
||||||
|
# pkgs.nordvpn # nur.repos.LuisChDev.nordvpn
|
||||||
|
material-icons
|
||||||
|
material-design-icons
|
||||||
|
libreoffice
|
||||||
|
gimp
|
||||||
|
spotify
|
||||||
|
okular
|
||||||
|
# minecraft
|
||||||
|
prismlauncher-unwrapped
|
||||||
|
glfw-wayland-minecraft
|
||||||
|
glxinfo
|
||||||
|
# window manager
|
||||||
|
flameshot
|
||||||
|
feh
|
||||||
|
# Animeeeeee!
|
||||||
|
ani-cli # The stable version is very outdated
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
|
@ -5,7 +5,7 @@
|
||||||
security.sudo.package = pkgs.sudo.override { withInsults = true; };
|
security.sudo.package = pkgs.sudo.override { withInsults = true; };
|
||||||
security.polkit.enable = true;
|
security.polkit.enable = true;
|
||||||
programs.kdeconnect.enable = true;
|
programs.kdeconnect.enable = true;
|
||||||
myOptions = {
|
modules = {
|
||||||
other = {
|
other = {
|
||||||
system = {
|
system = {
|
||||||
gitPath = "/home/lars/nichts";
|
gitPath = "/home/lars/nichts";
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ config, inputs, pkgs, ... }:
|
{ config, inputs, pkgs, ... }:
|
||||||
{
|
{
|
||||||
myOptions = {
|
modules = {
|
||||||
other = {
|
other = {
|
||||||
system = {
|
system = {
|
||||||
hostname = "dyonisos";
|
hostname = "dyonisos";
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ config, inputs, pkgs, ... }:
|
{ config, inputs, pkgs, ... }:
|
||||||
let
|
let
|
||||||
username = config.myOptions.other.system.username;
|
username = config.modules.other.system.username;
|
||||||
in {
|
in {
|
||||||
home-manager.users.${username} = {
|
home-manager.users.${username} = {
|
||||||
home.packages = let
|
home.packages = let
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
{ config, lib, inputs, pkgs, ... }:
|
{ config, lib, inputs, pkgs, ... }:
|
||||||
with lib; let
|
with lib; let
|
||||||
username = config.myOptions.other.system.username;
|
username = config.modules.other.system.username;
|
||||||
cfg = config.myOptions.hyprland;
|
cfg = config.modules.hyprland;
|
||||||
in {
|
in {
|
||||||
options.myOptions.hyprland.nvidia.enable = mkEnableOption "nvidia";
|
options.modules.hyprland.nvidia.enable = mkEnableOption "nvidia";
|
||||||
options.myOptions.hyprland = {
|
options.modules.hyprland = {
|
||||||
enable = mkEnableOption "hyprland";
|
enable = mkEnableOption "hyprland";
|
||||||
monitor = mkOption {
|
monitor = mkOption {
|
||||||
description = "hyprland monitor config";
|
description = "hyprland monitor config";
|
||||||
default = ",preferred,auto,1";
|
default = ",preferred,auto,1";
|
||||||
type = types.listof(types.str);
|
type = types.listOf(types.str);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -41,6 +41,9 @@ in {
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
# Monitor config
|
||||||
|
monitor = cfg.monitor;
|
||||||
|
|
||||||
"$mod" = "SUPER";
|
"$mod" = "SUPER";
|
||||||
|
|
||||||
input = {
|
input = {
|
||||||
|
@ -51,6 +54,10 @@ in {
|
||||||
"$mod, Q, killactive"
|
"$mod, Q, killactive"
|
||||||
"$mod, return, exec, alacritty"
|
"$mod, return, exec, alacritty"
|
||||||
"$mod SHIFT, return, exec, firefox"
|
"$mod SHIFT, return, exec, firefox"
|
||||||
|
"$mod SHIFT, m, exit"
|
||||||
|
|
||||||
|
# Application
|
||||||
|
"$mod SHIFT, c, exec, code --enable-features=UseOzonePlatform --ozone-platform=wayland --disable-gpu"
|
||||||
|
|
||||||
# Monitor management
|
# Monitor management
|
||||||
"$mod SHIFT, k, movecurrentworkspacetomonitor, DP-2"
|
"$mod SHIFT, k, movecurrentworkspacetomonitor, DP-2"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ config, inputs, pkgs, ... }:
|
{ config, inputs, pkgs, ... }:
|
||||||
{
|
{
|
||||||
myOptions = {
|
modules = {
|
||||||
other = {
|
other = {
|
||||||
system = {
|
system = {
|
||||||
hostname = "kronos";
|
hostname = "kronos";
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ config, inputs, pkgs, ... }:
|
{ config, inputs, pkgs, ... }:
|
||||||
let
|
let
|
||||||
username = config.myOptions.other.system.username;
|
username = config.modules.other.system.username;
|
||||||
in {
|
in {
|
||||||
home-manager.users.${username} = {
|
home-manager.users.${username} = {
|
||||||
home.packages = let
|
home.packages = let
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ config, inputs, pkgs, ... }:
|
{ config, inputs, pkgs, ... }:
|
||||||
let
|
let
|
||||||
username = config.myOptions.other.system.username;
|
username = config.modules.other.system.username;
|
||||||
in {
|
in {
|
||||||
home-manager.users.${username} = {
|
home-manager.users.${username} = {
|
||||||
home.packages = let
|
home.packages = let
|
||||||
|
@ -48,6 +48,8 @@ in {
|
||||||
tmux
|
tmux
|
||||||
firefox
|
firefox
|
||||||
kitty
|
kitty
|
||||||
|
nextcloud-client
|
||||||
|
vscode
|
||||||
grim
|
grim
|
||||||
slurp
|
slurp
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{ pkgs, lib, config, ... }:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.myOptions.programs.awesome;
|
cfg = config.modules.programs.awesome;
|
||||||
in {
|
in {
|
||||||
options.myOptions.programs.awesome.enable = mkEnableOption "awesome";
|
options.modules.programs.awesome.enable = mkEnableOption "awesome";
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
services.xserver = {
|
services.xserver = {
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
myOptions = {
|
modules = {
|
||||||
other = {
|
other = {
|
||||||
system = {
|
system = {
|
||||||
hostname = "mars";
|
hostname = "mars";
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
|
|
||||||
with lib; let
|
with lib; let
|
||||||
|
|
||||||
cfg = config.myOptions.programs.hypr.land;
|
cfg = config.modules.programs.hypr.land;
|
||||||
username = config.myOptions.other.system.username;
|
username = config.modules.other.system.username;
|
||||||
hmCfg = config.home-manager.users.${username};
|
hmCfg = config.home-manager.users.${username};
|
||||||
|
|
||||||
smwPresent = elem inputs.split-monitor-workspaces.packages.${pkgs.system}.split-monitor-workspaces cfg.extraPlugins;
|
smwPresent = elem inputs.split-monitor-workspaces.packages.${pkgs.system}.split-monitor-workspaces cfg.extraPlugins;
|
||||||
|
@ -13,7 +13,7 @@ with lib; let
|
||||||
inherit (inputs.hyprland.packages.${pkgs.system}) hyprland;
|
inherit (inputs.hyprland.packages.${pkgs.system}) hyprland;
|
||||||
inherit (inputs.hyprlock.packages.${pkgs.system}) hyprlock;
|
inherit (inputs.hyprlock.packages.${pkgs.system}) hyprlock;
|
||||||
in {
|
in {
|
||||||
options.myOptions.programs.hypr.land = {
|
options.modules.programs.hypr.land = {
|
||||||
enable = mkEnableOption "huperland";
|
enable = mkEnableOption "huperland";
|
||||||
startupSound = mkOption {
|
startupSound = mkOption {
|
||||||
type = with types; nullOr path;
|
type = with types; nullOr path;
|
||||||
|
@ -359,7 +359,7 @@ in {
|
||||||
"[workspace special:rog silent;tile] ${config.services.asusd.package}/bin/rog-control-center")
|
"[workspace special:rog silent;tile] ${config.services.asusd.package}/bin/rog-control-center")
|
||||||
"[workspace special:keepassxc silent;tile] ${pkgs.keepassxc}/bin/keepassxc"
|
"[workspace special:keepassxc silent;tile] ${pkgs.keepassxc}/bin/keepassxc"
|
||||||
|
|
||||||
(if config.myOptions.programs.foot.server then "sleep 0.5 && ${pkgs.systemd}/bin/systemctl --user restart foot.service" else ";")
|
(if config.modules.programs.foot.server then "sleep 0.5 && ${pkgs.systemd}/bin/systemctl --user restart foot.service" else ";")
|
||||||
|
|
||||||
"${hyprland}/bin/hyprctl setcursor Bibata-Modern-Classic 24"
|
"${hyprland}/bin/hyprctl setcursor Bibata-Modern-Classic 24"
|
||||||
|
|
||||||
|
|
|
@ -5,12 +5,12 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: with lib; let
|
}: with lib; let
|
||||||
cfg = config.myOptions.programs.hypr.lock;
|
cfg = config.modules.programs.hypr.lock;
|
||||||
username = config.myOptions.other.system.username;
|
username = config.modules.other.system.username;
|
||||||
|
|
||||||
text_color = "rgba(eae0e4FF)";
|
text_color = "rgba(eae0e4FF)";
|
||||||
in {
|
in {
|
||||||
options.myOptions.programs.hypr.lock = {
|
options.modules.programs.hypr.lock = {
|
||||||
enable = mkEnableOption "hiper zamek";
|
enable = mkEnableOption "hiper zamek";
|
||||||
extraSettings = mkOption {
|
extraSettings = mkOption {
|
||||||
type = types.attrs;
|
type = types.attrs;
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
{ pkgs, lib, config, callPackage, ... }:
|
{ pkgs, lib, config, callPackage, ... }:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.myOptions.programs.i3;
|
|
||||||
username = config.myOptions.other.system.username;
|
username = config.myOptions.other.system.username;
|
||||||
|
cfg = config.modules.programs.i3;
|
||||||
in {
|
in {
|
||||||
options.myOptions.programs.i3.enable = mkEnableOption "i3";
|
options.modules.programs.i3.enable = mkEnableOption "i3";
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
home-manager.users.${username}.xdg.configFile."i3/config".source = ./config;
|
home-manager.users.${username}.xdg.configFile."i3/config".source = ./config;
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{ config, inputs, pkgs, ... }:
|
{ config, inputs, pkgs, ... }:
|
||||||
let
|
let
|
||||||
fenix = inputs.fenix.packages.${pkgs.system};
|
fenix = inputs.fenix.packages.${pkgs.system};
|
||||||
|
username = config.modules.other.system.username;
|
||||||
in {
|
in {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
alacritty
|
alacritty
|
||||||
|
|
78
hosts/vali/mars/temp
Normal file
78
hosts/vali/mars/temp
Normal file
|
@ -0,0 +1,78 @@
|
||||||
|
{ config, inputs, pkgs, ... }:
|
||||||
|
let
|
||||||
|
username = config.myOptions.other.system.username;
|
||||||
|
in {
|
||||||
|
home-manager.users.${username} = {
|
||||||
|
home.packages = let
|
||||||
|
fenix = inputs.fenix.packages.${pkgs.system};
|
||||||
|
|
||||||
|
in with pkgs; [
|
||||||
|
alacritty
|
||||||
|
alsa-utils
|
||||||
|
asciinema
|
||||||
|
betterbird
|
||||||
|
bibata-cursors
|
||||||
|
dig
|
||||||
|
easyeffects
|
||||||
|
element-desktop
|
||||||
|
eza
|
||||||
|
fastfetch
|
||||||
|
(fenix.complete.withComponents [
|
||||||
|
"cargo"
|
||||||
|
"clippy"
|
||||||
|
"rust-src"
|
||||||
|
"rustc"
|
||||||
|
"rustfmt"
|
||||||
|
])
|
||||||
|
ffmpeg_6-full
|
||||||
|
flameshot
|
||||||
|
foot
|
||||||
|
gcc
|
||||||
|
gdb
|
||||||
|
grimblast
|
||||||
|
git
|
||||||
|
httpie
|
||||||
|
imagemagick
|
||||||
|
keepassxc
|
||||||
|
krita
|
||||||
|
lazygit
|
||||||
|
libreoffice-fresh
|
||||||
|
neofetch
|
||||||
|
neovim
|
||||||
|
networkmanagerapplet
|
||||||
|
nextcloud-client
|
||||||
|
pamixer
|
||||||
|
pavucontrol
|
||||||
|
pcmanfm
|
||||||
|
pfetch
|
||||||
|
playerctl
|
||||||
|
polkit
|
||||||
|
python3
|
||||||
|
qbittorrent
|
||||||
|
ripgrep
|
||||||
|
rustdesk
|
||||||
|
rofi
|
||||||
|
scc
|
||||||
|
sherlock
|
||||||
|
signal-desktop-beta
|
||||||
|
smartmontools
|
||||||
|
st
|
||||||
|
steam
|
||||||
|
strawberry.strawberry-wrapped
|
||||||
|
telegram-desktop
|
||||||
|
texliveFull
|
||||||
|
thunderbird
|
||||||
|
tor-browser-bundle-bin
|
||||||
|
trash-cli
|
||||||
|
tree
|
||||||
|
unzip
|
||||||
|
ventoy-full
|
||||||
|
vesktop
|
||||||
|
vlc
|
||||||
|
xclip
|
||||||
|
yt-dlp
|
||||||
|
zathura
|
||||||
|
zip
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
|
@ -3,5 +3,6 @@ _: {
|
||||||
./git.nix
|
./git.nix
|
||||||
./starship.nix
|
./starship.nix
|
||||||
./zsh.nix
|
./zsh.nix
|
||||||
|
./neovim.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,10 +4,10 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: with lib; let
|
}: with lib; let
|
||||||
cfg = config.myOptions.programs.git;
|
cfg = config.modules.programs.git;
|
||||||
username = config.myOptions.other.system.username;
|
username = config.modules.other.system.username;
|
||||||
in {
|
in {
|
||||||
options.myOptions.programs.git = {
|
options.modules.programs.git = {
|
||||||
enable = mkEnableOption "git";
|
enable = mkEnableOption "git";
|
||||||
userName = mkOption {
|
userName = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
|
|
35
modules/cli/neovim.nix
Normal file
35
modules/cli/neovim.nix
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
lazyvim-config = pkgs.fetchFromGitHub {
|
||||||
|
owner = "Dragyx";
|
||||||
|
repo = "lazyvim-config";
|
||||||
|
rev = "d799724f48199d81ca6c8abb5951860fbf8fa0df";
|
||||||
|
hash = "sha256-NF92CweRFQ1qZS8NXoTUEljazRGXgXS2AuDt5IWmwBc=";
|
||||||
|
};
|
||||||
|
cfg = config.modules.programs.neovim-old;
|
||||||
|
username = config.modules.other.system.username;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.modules.programs.neovim-old.enable = lib.mkEnableOption "neovim-old";
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
home-manager.users.${username} = {
|
||||||
|
home.packages = with pkgs; [ lazygit ripgrep fd gcc xclip rust-analyzer ];
|
||||||
|
programs.neovim = {
|
||||||
|
enable = true;
|
||||||
|
viAlias = true;
|
||||||
|
vimAlias = true;
|
||||||
|
defaultEditor = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.configFile."nvim" = {
|
||||||
|
enable = true;
|
||||||
|
source = lazyvim-config;
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
|
@ -3,16 +3,16 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: with lib; let
|
}: with lib; let
|
||||||
cfg = config.myOptions.programs.starship;
|
cfg = config.modules.programs.starship;
|
||||||
username = config.myOptions.other.system.username;
|
username = config.modules.other.system.username;
|
||||||
in {
|
in {
|
||||||
options.myOptions.programs.starship.enable = mkEnableOption "starship";
|
options.modules.programs.starship.enable = mkEnableOption "starship";
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
home-manager.users.${username} = {
|
home-manager.users.${username} = {
|
||||||
programs.starship = {
|
programs.starship = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableZshIntegration = config.myOptions.programs.zsh.enable;
|
enableZshIntegration = config.modules.programs.zsh.enable;
|
||||||
settings = {
|
settings = {
|
||||||
add_newline = false;
|
add_newline = false;
|
||||||
command_timeout = 1000;
|
command_timeout = 1000;
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.myOptions.programs.zsh;
|
cfg = config.modules.programs.zsh;
|
||||||
username = config.myOptions.other.system.username;
|
username = config.modules.other.system.username;
|
||||||
hostname = config.myOptions.other.system.hostname;
|
hostname = config.modules.other.system.hostname;
|
||||||
gitPath = config.myOptions.other.system.gitPath;
|
gitPath = config.modules.other.system.gitPath;
|
||||||
in {
|
in {
|
||||||
options.myOptions.programs.zsh = {
|
options.modules.programs.zsh = {
|
||||||
enable = mkEnableOption "zsh";
|
enable = mkEnableOption "zsh";
|
||||||
extraAliases = mkOption {
|
extraAliases = mkOption {
|
||||||
type = types.attrs;
|
type = types.attrs;
|
||||||
|
|
5
modules/gui/WM/default.nix
Normal file
5
modules/gui/WM/default.nix
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
_: {
|
||||||
|
imports = [
|
||||||
|
./hyprland.nix
|
||||||
|
];
|
||||||
|
}
|
179
modules/gui/WM/hyprland.nix
Normal file
179
modules/gui/WM/hyprland.nix
Normal file
|
@ -0,0 +1,179 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.modules.WM.hyprland;
|
||||||
|
username = config.modules.other.system.username;
|
||||||
|
monitors = config.modules.other.system.monitors;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.modules.WM.hyprland = {
|
||||||
|
enable = mkEnableOption "hyprland";
|
||||||
|
gnome-keyring = mkEnableOption "gnome-keyring";
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.xwayland.enable = true;
|
||||||
|
programs.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
services.gnome.gnome-keyring.enable = mkDefault cfg.gnome-keyring;
|
||||||
|
systemd.user.services.polkit-gnome-authentication-agent-1 = mkIf cfg.gnome-keyring {
|
||||||
|
description = "polkit-gnome-authentication-agent-1";
|
||||||
|
wantedBy = [ "graphical-session.target" ];
|
||||||
|
wants = [ "graphical-session.target" ];
|
||||||
|
after = [ "graphical-session.target" ];
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "simple";
|
||||||
|
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
|
||||||
|
Restart = "on-failure";
|
||||||
|
RestartSec = 1;
|
||||||
|
TimeoutStopSec = 10;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home-manager.users.${username} = {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
rofi
|
||||||
|
waybar
|
||||||
|
hyprpaper
|
||||||
|
hyprlock
|
||||||
|
hyprland
|
||||||
|
hyprshade
|
||||||
|
lxqt.lxqt-openssh-askpass
|
||||||
|
|
||||||
|
dunst
|
||||||
|
# wireplumber
|
||||||
|
xwayland
|
||||||
|
pciutils # lspci is needed by hyprland
|
||||||
|
dunst
|
||||||
|
swww
|
||||||
|
flameshot
|
||||||
|
bluetuith
|
||||||
|
brightnessctl
|
||||||
|
# needed for wayland copy / paste support in neovim
|
||||||
|
wl-clipboard
|
||||||
|
];
|
||||||
|
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
systemd.enable = true;
|
||||||
|
xwayland.enable = true;
|
||||||
|
settings = {
|
||||||
|
exec-once = [
|
||||||
|
"waybar"
|
||||||
|
] ++ (if cfg.gnome-keyring then ["${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"]
|
||||||
|
else []);
|
||||||
|
monitor = map (
|
||||||
|
m: "${m.device},${builtins.toString m.resolution.x}x${builtins.toString m.resolution.y}@${builtins.toString m.refresh_rate},${builtins.toString m.position.x}x${builtins.toString m.position.y},${builtins.toString m.scale},transform,${builtins.toString m.transform}"
|
||||||
|
) monitors; #TODO: default value
|
||||||
|
input = {
|
||||||
|
kb_layout = "us";
|
||||||
|
natural_scroll = true;
|
||||||
|
sensitivity = 0;
|
||||||
|
};
|
||||||
|
general = {
|
||||||
|
gaps_in = 2;
|
||||||
|
gaps_out = 1;
|
||||||
|
border_size = 1;
|
||||||
|
"col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
|
||||||
|
"col.inactive_border" = "rgba(595959aa)";
|
||||||
|
layout = "dwindle";
|
||||||
|
};
|
||||||
|
decoration.rounding = 5;
|
||||||
|
misc.disable_hyprland_logo = true;
|
||||||
|
animations = {
|
||||||
|
enabled = true;
|
||||||
|
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||||
|
|
||||||
|
bezier = ["myBezier, 0.05, 0.9, 0.1, 1.05"];
|
||||||
|
|
||||||
|
animation = [
|
||||||
|
"windowsOut, 1, 7, default, popin 80%"
|
||||||
|
"border, 1, 10, default"
|
||||||
|
"borderangle, 1, 8, default"
|
||||||
|
"fade, 1, 7, default"
|
||||||
|
"workspaces, 1, 6, default"
|
||||||
|
"windows, 1, 7, myBezier"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
gestures.workspace_swipe = true;
|
||||||
|
debug.enable_stdout_logs = true;
|
||||||
|
bind = [
|
||||||
|
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||||
|
"SUPER, RETURN, exec, alacritty"
|
||||||
|
"SUPER SHIFT, RETURN, exec, rofi -show drun"
|
||||||
|
"SUPER SHIFT, Q, killactive,"
|
||||||
|
"SUPER, M, exit, "
|
||||||
|
"SUPER, B, exec, firefox"
|
||||||
|
"SUPER, f, fullscreen"
|
||||||
|
"SUPER, E, exec, nautilus --new-window "
|
||||||
|
"SUPER, V, togglefloating, "
|
||||||
|
"SUPER, P, pseudo, # dwindle"
|
||||||
|
"SUPER, S, togglesplit, # dwindle"
|
||||||
|
"SUPER, C, exec, /home/vali/.config/wallpaper/colorscheme-setter"
|
||||||
|
",PRINT, exec, flameshot"
|
||||||
|
|
||||||
|
|
||||||
|
# Move focus with mainMod + arrow keys"
|
||||||
|
"SUPER, h, movefocus, l"
|
||||||
|
"SUPER, l, movefocus, r"
|
||||||
|
"SUPER, k, movefocus, u"
|
||||||
|
"SUPER, j, movefocus, d"
|
||||||
|
|
||||||
|
# move window to next / previous workspace"
|
||||||
|
"SUPER CTRL, h, movetoworkspace, -1"
|
||||||
|
"SUPER CTRL, l, movetoworkspace, +1"
|
||||||
|
|
||||||
|
# move to next / previous workspace"
|
||||||
|
"SUPER CTRL, h, workspace, -1"
|
||||||
|
"SUPER CTRL, l, workspace, +1"
|
||||||
|
|
||||||
|
|
||||||
|
# Switch workspaces with mainMod + [0-9]"
|
||||||
|
"SUPER, 1, workspace, 1"
|
||||||
|
"SUPER, 2, workspace, 2"
|
||||||
|
"SUPER, 3, workspace, 3"
|
||||||
|
"SUPER, 4, workspace, 4"
|
||||||
|
"SUPER, 5, workspace, 5"
|
||||||
|
"SUPER, 6, workspace, 6"
|
||||||
|
"SUPER, 7, workspace, 7"
|
||||||
|
"SUPER, 8, workspace, 8"
|
||||||
|
"SUPER, 9, workspace, 9"
|
||||||
|
"SUPER, 0, workspace, 10"
|
||||||
|
|
||||||
|
# Move active window to a workspace with mainMod + SHIFT + [0-9]"
|
||||||
|
"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 SHIFT, 7, movetoworkspace, 7"
|
||||||
|
"SUPER SHIFT, 8, movetoworkspace, 8"
|
||||||
|
"SUPER SHIFT, 9, movetoworkspace, 9"
|
||||||
|
"SUPER SHIFT, 0, movetoworkspace, 10"
|
||||||
|
|
||||||
|
# Scroll through existing workspaces with mainMod + scroll"
|
||||||
|
"SUPER, mouse_down, workspace, e+1"
|
||||||
|
"SUPER, mouse_up, workspace, e-1"
|
||||||
|
|
||||||
|
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||||
|
"SUPER, mouse:272, movewindow"
|
||||||
|
# "bindm = SUPER, mouse:273, resizewindow"
|
||||||
|
];
|
||||||
|
binde = [
|
||||||
|
",XF86MonBrightnessUp, exec, brightnessctl set 10%+"
|
||||||
|
",XF86MonBrightnessDown, exec, brightnessctl set 10%-"
|
||||||
|
# Example volume button that allows press and hold, volume limited to 150%"
|
||||||
|
",XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+"
|
||||||
|
# Example volume button that will activate even while an input inhibitor is active"
|
||||||
|
",XF86AudioLowerVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%-"
|
||||||
|
",XF86AudioMute, exec, $ wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -3,10 +3,10 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: with lib; let
|
}: with lib; let
|
||||||
cfg = config.myOptions.themes.cursor;
|
cfg = config.modules.themes.cursor;
|
||||||
username = config.myOptions.other.system.username;
|
username = config.modules.other.system.username;
|
||||||
in {
|
in {
|
||||||
options.myOptions.themes.cursor = {
|
options.modules.themes.cursor = {
|
||||||
enable = mkEnableOption "cursor theming";
|
enable = mkEnableOption "cursor theming";
|
||||||
package = mkOption {
|
package = mkOption {
|
||||||
description = "cursor theme package";
|
description = "cursor theme package";
|
||||||
|
|
|
@ -10,5 +10,6 @@ _: {
|
||||||
./obs.nix
|
./obs.nix
|
||||||
./foot.nix
|
./foot.nix
|
||||||
# ./vivado.nix
|
# ./vivado.nix
|
||||||
|
./WM
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,10 +5,10 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: with lib; let
|
}: with lib; let
|
||||||
cfg = config.myOptions.programs.foot;
|
cfg = config.modules.programs.foot;
|
||||||
username = config.myOptions.other.system.username;
|
username = config.modules.other.system.username;
|
||||||
in {
|
in {
|
||||||
options.myOptions.programs.foot = {
|
options.modules.programs.foot = {
|
||||||
enable = mkEnableOption "foot";
|
enable = mkEnableOption "foot";
|
||||||
server = mkEnableOption "foot server mode";
|
server = mkEnableOption "foot server mode";
|
||||||
};
|
};
|
||||||
|
|
|
@ -3,11 +3,11 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: with lib; let
|
}: with lib; let
|
||||||
cfg = config.myOptions.themes.gtk;
|
cfg = config.modules.themes.gtk;
|
||||||
username = config.myOptions.other.system.username;
|
username = config.modules.other.system.username;
|
||||||
hmCfg = config.home-manager.users.${username};
|
hmCfg = config.home-manager.users.${username};
|
||||||
in {
|
in {
|
||||||
options.myOptions.themes.gtk = {
|
options.modules.themes.gtk = {
|
||||||
enable = mkEnableOption "gtk theming";
|
enable = mkEnableOption "gtk theming";
|
||||||
name = mkOption {
|
name = mkOption {
|
||||||
description = "gtk theme name";
|
description = "gtk theme name";
|
||||||
|
|
|
@ -4,10 +4,10 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: with lib; let
|
}: with lib; let
|
||||||
cfg = config.myOptions.programs.mpv;
|
cfg = config.modules.programs.mpv;
|
||||||
username = config.myOptions.other.system.username;
|
username = config.modules.other.system.username;
|
||||||
in {
|
in {
|
||||||
options.myOptions.programs.mpv.enable = mkEnableOption "mpv";
|
options.modules.programs.mpv.enable = mkEnableOption "mpv";
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
home-manager.users.${username} = {
|
home-manager.users.${username} = {
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.myOptions.programs.obs;
|
cfg = config.modules.programs.obs;
|
||||||
username = config.myOptions.other.system.username;
|
username = config.modules.other.system.username;
|
||||||
in {
|
in {
|
||||||
options.myOptions.programs.obs.enable = mkEnableOption "obs";
|
options.modules.programs.obs.enable = mkEnableOption "obs";
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
home-manager.users.${username} = {
|
home-manager.users.${username} = {
|
||||||
|
|
|
@ -4,10 +4,10 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: with lib; let
|
}: with lib; let
|
||||||
cfg = config.myOptions.themes.qt;
|
cfg = config.modules.themes.qt;
|
||||||
username = config.myOptions.other.system.username;
|
username = config.modules.other.system.username;
|
||||||
in {
|
in {
|
||||||
options.myOptions.themes.qt = {
|
options.modules.themes.qt = {
|
||||||
enable = mkEnableOption "qt theming";
|
enable = mkEnableOption "qt theming";
|
||||||
name = mkOption {
|
name = mkOption {
|
||||||
description = "qt theme name";
|
description = "qt theme name";
|
||||||
|
|
0
modules/gui/rofi.nix
Normal file
0
modules/gui/rofi.nix
Normal file
|
@ -1,13 +1,9 @@
|
||||||
{
|
{ config, inputs, lib, ... }:
|
||||||
config,
|
with lib; let
|
||||||
inputs,
|
cfg = config.modules.programs.schizofox;
|
||||||
lib,
|
username = config.modules.other.system.username;
|
||||||
...
|
|
||||||
}: with lib; let
|
|
||||||
cfg = config.myOptions.programs.schizofox;
|
|
||||||
username = config.myOptions.other.system.username;
|
|
||||||
in {
|
in {
|
||||||
options.myOptions.programs.schizofox = {
|
options.modules.programs.schizofox = {
|
||||||
enable = mkEnableOption "schizofox";
|
enable = mkEnableOption "schizofox";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -4,15 +4,16 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: with lib; let
|
}: with lib; let
|
||||||
cfg = config.myOptions.programs.vesktop;
|
cfg = config.modules.programs.vesktop;
|
||||||
username = config.myOptions.other.system.username;
|
username = config.modules.other.system.username;
|
||||||
in {
|
in {
|
||||||
options.myOptions.programs.vesktop = {
|
options.modules.programs.vesktop = {
|
||||||
enable = mkEnableOption "vesktop";
|
enable = mkEnableOption "vesktop";
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
home-manager.users.${username} = {
|
home-manager.users.${username} = {
|
||||||
|
home.packages = with pkgs; [ vesktop ];
|
||||||
xdg.configFile."vesktop/settings.json".text = builtins.toJSON {
|
xdg.configFile."vesktop/settings.json".text = builtins.toJSON {
|
||||||
discordBranch = "ptb";
|
discordBranch = "ptb";
|
||||||
firstLaunch = false;
|
firstLaunch = false;
|
||||||
|
|
|
@ -6,11 +6,11 @@ let
|
||||||
desktopName = "Vivado";
|
desktopName = "Vivado";
|
||||||
exec = "${pkgs.nur.repos.lschuermann.vivado-2022_2}/bin/vivado";
|
exec = "${pkgs.nur.repos.lschuermann.vivado-2022_2}/bin/vivado";
|
||||||
};
|
};
|
||||||
cfg = with lib; [ config.myOptions.programs.vivado ];
|
cfg = with lib; [ config.modules.programs.vivado ];
|
||||||
username = with lib; [ config.myOptions.other.system.username ];
|
username = with lib; [ config.modules.other.system.username ];
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.myOptions.programs.vivado.enable = mkEnableOption "vivado";
|
options.modules.programs.vivado.enable = mkEnableOption "vivado";
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
home-manager.users.${username} = {
|
home-manager.users.${username} = {
|
||||||
|
|
|
@ -4,10 +4,10 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: with lib; let
|
}: with lib; let
|
||||||
cfg = config.myOptions.programs.zathura;
|
cfg = config.modules.programs.zathura;
|
||||||
username = config.myOptions.other.system.username;
|
username = config.modules.other.system.username;
|
||||||
in {
|
in {
|
||||||
options.myOptions.programs.zathura.enable = mkEnableOption "zathura";
|
options.modules.programs.zathura.enable = mkEnableOption "zathura";
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
home-manager.users.${username} = {
|
home-manager.users.${username} = {
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
{pkgs, lib, config, ...}:
|
{pkgs, lib, config, ...}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.myOptions.programs.displaymanager;
|
cfg = config.modules.programs.displaymanager;
|
||||||
in {
|
in {
|
||||||
options.myOptions.programs.displaymanager.enable = mkEnableOption "displaymanager";
|
options.modules.programs.displaymanager.enable = mkEnableOption "displaymanager";
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
services.xserver.displayManager = {
|
services.xserver.displayManager = {
|
||||||
|
|
|
@ -5,10 +5,10 @@
|
||||||
self,
|
self,
|
||||||
...
|
...
|
||||||
}: with lib; let
|
}: with lib; let
|
||||||
cfg = config.myOptions.other.home-manager;
|
cfg = config.modules.other.home-manager;
|
||||||
username = config.myOptions.other.system.username;
|
username = config.modules.other.system.username;
|
||||||
in {
|
in {
|
||||||
options.myOptions.other.home-manager = {
|
options.modules.other.home-manager = {
|
||||||
enable = mkEnableOption "home-manager";
|
enable = mkEnableOption "home-manager";
|
||||||
enableDirenv = mkEnableOption "direnv";
|
enableDirenv = mkEnableOption "direnv";
|
||||||
};
|
};
|
||||||
|
|
|
@ -3,9 +3,9 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: with lib; let
|
}: with lib; let
|
||||||
cfg = config.myOptions.other.system;
|
cfg = config.modules.other.system;
|
||||||
in {
|
in {
|
||||||
options.myOptions.other.system = {
|
options.modules.other.system = {
|
||||||
hostname = mkOption {
|
hostname = mkOption {
|
||||||
description = "hostname for this system";
|
description = "hostname for this system";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
username = config.myOptions.other.system.username;
|
username = config.modules.other.system.username;
|
||||||
hmCfg = config.home-manager.users.${username};
|
hmCfg = config.home-manager.users.${username};
|
||||||
|
|
||||||
primary_browser = "schizofox.desktop";
|
primary_browser = "schizofox.desktop";
|
||||||
|
@ -30,7 +30,7 @@ in {
|
||||||
XAUTHORITY = "\$XDG_RUNTIME_DIR/Xauthority";
|
XAUTHORITY = "\$XDG_RUNTIME_DIR/Xauthority";
|
||||||
};
|
};
|
||||||
*/
|
*/
|
||||||
myOptions.programs.zsh.extraAliases = {
|
modules.programs.zsh.extraAliases = {
|
||||||
gdb = "gdb -n -x ${hmCfg.xdg.configHome}/gdb/init";
|
gdb = "gdb -n -x ${hmCfg.xdg.configHome}/gdb/init";
|
||||||
pidgin = "pidgin --config=${hmCfg.xdg.dataHome}/purple";
|
pidgin = "pidgin --config=${hmCfg.xdg.dataHome}/purple";
|
||||||
svn = "svn --config-dir ${hmCfg.xdg.configHome}/subversion";
|
svn = "svn --config-dir ${hmCfg.xdg.configHome}/subversion";
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
{ config, lib, ... }:
|
{ config, lib, ... }:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.myOptions.services.pipewire;
|
cfg = config.modules.services.pipewire;
|
||||||
in {
|
in {
|
||||||
options.myOptions.services.pipewire.enable = mkEnableOption "pipewire";
|
options.modules.services.pipewire.enable = mkEnableOption "pipewire";
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
hardware.pulseaudio.enable = false;
|
hardware.pulseaudio.enable = false;
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
{ config, lib, ... }:
|
{ config, lib, ... }:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.myOptions.programs.btop;
|
cfg = config.modules.programs.btop;
|
||||||
username = config.myOptions.other.system.username;
|
username = config.modules.other.system.username;
|
||||||
in {
|
in {
|
||||||
options.myOptions.programs.btop.enable = mkEnableOption "btop";
|
options.modules.programs.btop.enable = mkEnableOption "btop";
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
home-manager.users.${username} = {
|
home-manager.users.${username} = {
|
||||||
|
|
|
@ -5,10 +5,10 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: with lib; let
|
}: with lib; let
|
||||||
cfg = config.myOptions.programs.neovim;
|
cfg = config.modules.programs.neovim;
|
||||||
username = config.myOptions.other.system.username;
|
username = config.modules.other.system.username;
|
||||||
in {
|
in {
|
||||||
options.myOptions.programs.neovim.enable = mkEnableOption "neovim";
|
options.modules.programs.neovim.enable = mkEnableOption "neovim";
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
nixpkgs.overlays = [ inputs.neovim-nightly-overlay.overlay ];
|
nixpkgs.overlays = [ inputs.neovim-nightly-overlay.overlay ];
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ config, lib, ... }:
|
{ config, lib, ... }:
|
||||||
let
|
let
|
||||||
username = config.myOptions.other.system.username;
|
username = config.modules.other.system.username;
|
||||||
in {
|
in {
|
||||||
networking = {
|
networking = {
|
||||||
networkmanager = {
|
networkmanager = {
|
||||||
|
|
75
options/desktop/monitors.nix
Normal file
75
options/desktop/monitors.nix
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
{
|
||||||
|
options.modules.other.system.monitors = mkOption {
|
||||||
|
description = "
|
||||||
|
List of monitors to use
|
||||||
|
";
|
||||||
|
default = [];
|
||||||
|
type = with types; types.listOf (submodule {
|
||||||
|
options = {
|
||||||
|
name = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
description = "Give your monitor a cute name";
|
||||||
|
default = "monitor0(I am lazy)";
|
||||||
|
};
|
||||||
|
device = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
description = "The actual device name of the monitor";
|
||||||
|
};
|
||||||
|
resolution = mkOption {
|
||||||
|
type = types.submodule {
|
||||||
|
options = {
|
||||||
|
x = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
description = "monitor width";
|
||||||
|
default = "1920";
|
||||||
|
};
|
||||||
|
y = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
description = "monitor height";
|
||||||
|
default = "1080";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
scale = mkOption {
|
||||||
|
type = types.number;
|
||||||
|
description = "monitor scale";
|
||||||
|
default = 1.0;
|
||||||
|
};
|
||||||
|
refresh_rate = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
description = "monitor refresh rate (in Hz)";
|
||||||
|
default = 60;
|
||||||
|
};
|
||||||
|
position = mkOption {
|
||||||
|
type = types.submodule {
|
||||||
|
options = {
|
||||||
|
x = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 0;
|
||||||
|
};
|
||||||
|
y = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
description = "absolute monitor posititon";
|
||||||
|
default = {
|
||||||
|
x = 0;
|
||||||
|
y = 0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
transform = mkOption {
|
||||||
|
type = types.ints.between 0 3;
|
||||||
|
description = "Rotation of the monitor counterclockwise";
|
||||||
|
default = 0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue