added new usb system, started modularizing
This commit is contained in:
parent
58b0456f8c
commit
0a731ef17f
26
flake.nix
26
flake.nix
@ -53,13 +53,37 @@
|
|||||||
home-manager.extraSpecialArgs = { inherit inputs; };
|
home-manager.extraSpecialArgs = { inherit inputs; };
|
||||||
|
|
||||||
home-manager.users.remy.imports = [
|
home-manager.users.remy.imports = [
|
||||||
./users/remy.nix
|
./users/remy_spectre
|
||||||
inputs.nix-flatpak.homeManagerModules.nix-flatpak
|
inputs.nix-flatpak.homeManagerModules.nix-flatpak
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
nixosConfigurations.nichts = nixpkgs.lib.nixosSystem {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
specialArgs = { inherit inputs; };
|
||||||
|
|
||||||
|
modules = [
|
||||||
|
./hosts/lenovo-yoga-usb
|
||||||
|
stylix.nixosModules.stylix
|
||||||
|
inputs.superfreq.nixosModules.default
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
|
{
|
||||||
|
home-manager.useGlobalPkgs = true;
|
||||||
|
home-manager.useUserPackages = true;
|
||||||
|
home-manager.extraSpecialArgs = { inherit inputs; };
|
||||||
|
|
||||||
|
home-manager.users.remy.imports = [
|
||||||
|
./users/remy_yoga-usb
|
||||||
|
inputs.nix-flatpak.homeManagerModules.nix-flatpak
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
# nixosConfigurations.raspberry-pi = nixpkgs.lib.nixosSystem {
|
# nixosConfigurations.raspberry-pi = nixpkgs.lib.nixosSystem {
|
||||||
# system = "aarch64-linux";
|
# system = "aarch64-linux";
|
||||||
# modules = [
|
# modules = [
|
||||||
|
52
hosts/lenovo-yoga-usb/configuration.nix
Normal file
52
hosts/lenovo-yoga-usb/configuration.nix
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
# Edit this configuration file to define what should be installed on
|
||||||
|
# your system. Help is available in the configuration.nix(5) man page, on
|
||||||
|
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
|
||||||
|
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[ # Include the results of the hardware scan.
|
||||||
|
./hardware-configuration.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
# Use the "experimental" flakes for cleaner config
|
||||||
|
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
|
||||||
|
# Use latest kernel.
|
||||||
|
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
|
||||||
|
networking.hostName = "nichts";
|
||||||
|
# Pick only one of the below networking options.
|
||||||
|
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||||
|
# networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
||||||
|
|
||||||
|
# Set your time zone.
|
||||||
|
time.timeZone = "Europe/Berlin";
|
||||||
|
|
||||||
|
# Configure network proxy if necessary
|
||||||
|
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||||
|
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||||
|
|
||||||
|
# # Select internationalisation properties.
|
||||||
|
i18n.defaultLocale = "en_US.UTF-8";
|
||||||
|
# i18n.supportedLocales = [ "en_US.UTF-8" "de_DE.UTF-8" ];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||||
|
users.users.remy = {
|
||||||
|
isNormalUser = true;
|
||||||
|
extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
networking.networkmanager.wifi.powersave = true;
|
||||||
|
|
||||||
|
|
||||||
|
# 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?
|
||||||
|
}
|
||||||
|
|
25
hosts/lenovo-yoga-usb/default.nix
Normal file
25
hosts/lenovo-yoga-usb/default.nix
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
{lib, config, options, pkgs, ...}:
|
||||||
|
{
|
||||||
|
|
||||||
|
# Merge the configuration and hardware configuration
|
||||||
|
imports = [
|
||||||
|
./configuration.nix
|
||||||
|
./hardware-configuration.nix
|
||||||
|
../../modules/nixos/bluetooth.nix
|
||||||
|
../../modules/nixos/flakes.nix
|
||||||
|
../../modules/nixos/flatpak.nix
|
||||||
|
../../modules/nixos/fonts.nix
|
||||||
|
../../modules/nixos/hyprland.nix
|
||||||
|
../../modules/nixos/ld.nix
|
||||||
|
../../modules/nixos/monitoring.nix
|
||||||
|
../../modules/nixos/networking.nix
|
||||||
|
../../modules/nixos/nh.nix
|
||||||
|
../../modules/nixos/pipewire.nix
|
||||||
|
../../modules/nixos/podman.nix
|
||||||
|
../../modules/nixos/power.nix
|
||||||
|
../../modules/nixos/stylix.nix
|
||||||
|
../../modules/nixos/usb_config.nix
|
||||||
|
../../utils/binary-cache.nix
|
||||||
|
../../utils/garbage-collection.nix
|
||||||
|
];
|
||||||
|
}
|
40
hosts/lenovo-yoga-usb/hardware-configuration.nix
Normal file
40
hosts/lenovo-yoga-usb/hardware-configuration.nix
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
|
# and may be overwritten by future invocations. Please make changes
|
||||||
|
# to /etc/nixos/configuration.nix instead.
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "sd_mod" "sdhci_pci" ];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{ device = "/dev/disk/by-uuid/621498e8-64f6-4979-8489-3dc1d145e349";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.initrd.luks.devices."root-enc".device = "/dev/disk/by-uuid/156d0f15-397c-4bc6-8f57-026108975246";
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{ device = "/dev/disk/by-uuid/B2D0-672E";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [ "fmask=0022" "dmask=0022" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [ ];
|
||||||
|
|
||||||
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
# still possible to use this option, but it's recommended to use it in conjunction
|
||||||
|
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||||
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.wlp1s0.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
@ -3,7 +3,7 @@
|
|||||||
programs.vscode = {
|
programs.vscode = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# install vscode in a FHS environment to allow extensions with prebuilt binaries
|
# install vscode in a FHS environment to allow extensions with prebuilt binaries
|
||||||
package = pkgs.vscode.fhs;
|
# package = pkgs.vscode.fhs;
|
||||||
|
|
||||||
# profiles = {
|
# profiles = {
|
||||||
# default = {
|
# default = {
|
||||||
@ -18,9 +18,9 @@
|
|||||||
ms-python.isort
|
ms-python.isort
|
||||||
ms-python.debugpy
|
ms-python.debugpy
|
||||||
ms-python.vscode-pylance
|
ms-python.vscode-pylance
|
||||||
ms-toolsai.jupyter
|
# ms-toolsai.jupyter
|
||||||
ms-toolsai.vscode-jupyter-slideshow
|
# ms-toolsai.vscode-jupyter-slideshow
|
||||||
ms-toolsai.jupyter-renderers
|
# ms-toolsai.jupyter-renderers
|
||||||
|
|
||||||
# Nix language
|
# Nix language
|
||||||
jnoortheen.nix-ide
|
jnoortheen.nix-ide
|
||||||
@ -28,11 +28,17 @@
|
|||||||
# typst
|
# typst
|
||||||
myriad-dreamin.tinymist
|
myriad-dreamin.tinymist
|
||||||
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
||||||
|
{
|
||||||
|
name = "jupyter";
|
||||||
|
publisher = "ms-toolsai";
|
||||||
|
version = "2025.3.2025032101";
|
||||||
|
sha256 = "sha256-s2qEUl9J6EOije6MasZOnHErYs3NYXBqLSfMT03vEH0=";
|
||||||
|
}
|
||||||
{
|
{
|
||||||
name = "jupyter-hub";
|
name = "jupyter-hub";
|
||||||
publisher = "ms-toolsai";
|
publisher = "ms-toolsai";
|
||||||
version = "2024.10.1002831100";
|
version = "2024.10.1002831100";
|
||||||
sha256 = "sha256-3YF91Wgw5je040xPpLHPdxQIEAetpmDz6La7bw2JM+g=";
|
sha256 = "sha256-5IRczwXbYkDdYEOXvQnnH+HJNLvsRsrZ6fnoVCveqrs=";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -2,6 +2,6 @@
|
|||||||
{
|
{
|
||||||
home.packages = [
|
home.packages = [
|
||||||
# pdf viewer
|
# pdf viewer
|
||||||
pkgs.evince
|
pkgs.papers
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,35 @@
|
|||||||
{inputs, pkgs, ...}:
|
{inputs, pkgs, lib, config, ...}:
|
||||||
|
let
|
||||||
|
cfg = config.nix-config.hypr;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
|
|
||||||
|
options = {
|
||||||
|
nix-config.hypr.internal-screen.resolution = lib.mkOption { type = lib.types.str; };
|
||||||
|
nix-config.hypr.internal-screen.scale = lib.mkOption { type = lib.types.str; };
|
||||||
|
nix-config.hypr.browser = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "firefox";
|
||||||
|
description = "The browser to use in Hyprland.";
|
||||||
|
};
|
||||||
|
nix-config.hypr.launcher-cmd = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "wofi --show drun -n";
|
||||||
|
description = "The command to launch the application launcher in Hyprland.";
|
||||||
|
};
|
||||||
|
nix-config.hypr.ide = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "code";
|
||||||
|
description = "The IDE to use in Hyprland.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
home.packages = [
|
home.packages = [
|
||||||
pkgs.hyprshot
|
pkgs.hyprshot
|
||||||
pkgs.nautilus
|
pkgs.nautilus
|
||||||
pkgs.gnome-control-center
|
pkgs.gnome-control-center
|
||||||
|
pkgs.gnome-bluetooth # needed by gnome-control-center to manage bluetooth
|
||||||
pkgs.brightnessctl
|
pkgs.brightnessctl
|
||||||
pkgs.cliphist
|
pkgs.cliphist
|
||||||
pkgs.wl-clipboard
|
pkgs.wl-clipboard
|
||||||
@ -21,17 +46,14 @@
|
|||||||
systemd.enable = true;
|
systemd.enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
"$mod" = "SUPER";
|
"$mod" = "SUPER";
|
||||||
"$browser" = "firefox";
|
|
||||||
"$launcher-cmd" = "wofi --show drun -n";
|
|
||||||
"$ide" = "code";
|
|
||||||
|
|
||||||
# Global bindings
|
# Global bindings
|
||||||
bind = [
|
bind = [
|
||||||
# Launch applications
|
# Launch applications
|
||||||
"$mod, space, exec, $launcher-cmd"
|
"$mod, space, exec, ${cfg.launcher-cmd}"
|
||||||
"$mod, return, exec, kitty"
|
"$mod, return, exec, kitty"
|
||||||
"$mod, b, exec, $browser"
|
"$mod, b, exec, ${cfg.browser}"
|
||||||
"$mod, s, exec, $ide"
|
"$mod, s, exec, ${cfg.ide}"
|
||||||
"$mod, e, exec, nautilus"
|
"$mod, e, exec, nautilus"
|
||||||
|
|
||||||
# Lock screen
|
# Lock screen
|
||||||
@ -87,7 +109,6 @@
|
|||||||
"$mod, KP_Subtract, resizeactive, -2% -2%"
|
"$mod, KP_Subtract, resizeactive, -2% -2%"
|
||||||
"$mod, PLUS, resizeactive, 2% 2%"
|
"$mod, PLUS, resizeactive, 2% 2%"
|
||||||
"$mod, KP_Add, resizeactive, 2% 2%"
|
"$mod, KP_Add, resizeactive, 2% 2%"
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# lock-screen bindings
|
# lock-screen bindings
|
||||||
@ -191,7 +212,9 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
monitor = [
|
monitor = [
|
||||||
"eDP-1, 3840x2160, 0x0, 1.666667" # the internal laptop monitor
|
# the internal monitor, always at the "center"
|
||||||
|
"eDP-1, ${cfg.internal-screen.resolution}, 0x0, ${cfg.internal-screen.scale}"
|
||||||
|
|
||||||
# Samsung monitors at irchel (matching the description)
|
# Samsung monitors at irchel (matching the description)
|
||||||
# "desc:Samsung Electric Company LS27D80xU HK7X800803, 3840x2160, auto-up, 1.8"
|
# "desc:Samsung Electric Company LS27D80xU HK7X800803, 3840x2160, auto-up, 1.8"
|
||||||
"desc:Samsung Electric Company LS27D80xU HNAX600169, 2560x1440@59.95, auto-up, 1"
|
"desc:Samsung Electric Company LS27D80xU HNAX600169, 2560x1440@59.95, auto-up, 1"
|
||||||
@ -221,8 +244,8 @@
|
|||||||
# Touch gestures
|
# Touch gestures
|
||||||
pkgs.hyprlandPlugins.hyprgrass
|
pkgs.hyprlandPlugins.hyprgrass
|
||||||
];
|
];
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
services.swaync.enable = true;
|
services.swaync.enable = true;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
{inputs, pkgs, ...}:
|
{inputs, pkgs, lib, config, ...}:
|
||||||
|
let
|
||||||
|
cfg = config.nix-config.style;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
# required to autoload fonts from packages installed via Home Manager
|
# required to autoload fonts from packages installed via Home Manager
|
||||||
fonts.fontconfig.enable = true;
|
fonts.fontconfig.enable = true;
|
||||||
@ -14,14 +17,16 @@
|
|||||||
settings = {
|
settings = {
|
||||||
|
|
||||||
mainBar = {
|
mainBar = {
|
||||||
margin-top = 2;
|
|
||||||
margin-bottom = 2;
|
|
||||||
margin-left = 5;
|
|
||||||
margin-right = 5;
|
|
||||||
|
|
||||||
layer = "top";
|
layer = "top";
|
||||||
position = "top";
|
position = "top";
|
||||||
spacing = 5;
|
|
||||||
|
margin-top = 5;
|
||||||
|
# margin-bottom = 2;
|
||||||
|
# margin-left = 5;
|
||||||
|
# margin-right = 5;
|
||||||
|
|
||||||
|
# margin between the modules
|
||||||
|
spacing = 2;
|
||||||
|
|
||||||
modules-left = [
|
modules-left = [
|
||||||
"hyprland/workspaces"
|
"hyprland/workspaces"
|
||||||
@ -36,8 +41,8 @@
|
|||||||
modules-right = [
|
modules-right = [
|
||||||
"tray"
|
"tray"
|
||||||
"privacy"
|
"privacy"
|
||||||
"wireplumber"
|
|
||||||
"network"
|
"network"
|
||||||
|
"wireplumber"
|
||||||
"battery"
|
"battery"
|
||||||
"backlight"
|
"backlight"
|
||||||
"idle_inhibitor"
|
"idle_inhibitor"
|
||||||
@ -150,18 +155,29 @@
|
|||||||
return-type = "json";
|
return-type = "json";
|
||||||
exec-if = "which swaync-client";
|
exec-if = "which swaync-client";
|
||||||
exec = "swaync-client -swb";
|
exec = "swaync-client -swb";
|
||||||
on-click = "sleep 0.1 && task-waybar";
|
on-click = "swaync-client -t -sw";
|
||||||
|
on-click-right = "swaync-client -d -sw";
|
||||||
escape = true;
|
escape = true;
|
||||||
};
|
};
|
||||||
"network" = {
|
"network" = {
|
||||||
format = "";
|
format = "";
|
||||||
format-wifi = "{icon} {essid}";
|
format-ethernet = " {ipaddr}";
|
||||||
|
format-wifi = "{icon}";
|
||||||
format-icons = [ "" "" "" "" "" ];
|
format-icons = [ "" "" "" "" "" ];
|
||||||
format-ethernet = " {ipaddr}/{cidr}";
|
format-disconnected = "";
|
||||||
format-disconnected = "";
|
tooltip-format = " {ifname} via {gwaddr}";
|
||||||
tooltip-format = " {ifname} via {gwaddr}";
|
# TODO - don't escape the strings in the tooltip
|
||||||
tooltip-format-wifi = "SSID: {essid}({signalStrength}%), {frequency} MHz\nInterface: {ifname}\nIP: {ipaddr}\nGW: {gwaddr}\n\n<span color='#a6da95'>{bandwidthUpBits}</span>\t<span color='#ee99a0'>{bandwidthDownBits}</span>\t<span color='#c6a0f6'>{bandwidthTotalBits}</span>";
|
tooltip-format-wifi = ''
|
||||||
tooltip-format-ethernet = "{ifname} ";
|
{essid}({signalStrength}%), {frequency} GHz\nInterface: {ifname}
|
||||||
|
IP: {ipaddr} GW: {gwaddr}
|
||||||
|
|
||||||
|
<span color='#a6da95'>{bandwidthUpBits}</span> <span color='#ee99a0'>{bandwidthDownBits}</span> <span color='#c6a0f6'>{bandwidthTotalBits}</span>
|
||||||
|
'';
|
||||||
|
tooltip-format-ethernet = ''
|
||||||
|
{ifname} - {ipaddr}/{cidr}
|
||||||
|
|
||||||
|
<span color='#a6da95'>{bandwidthUpBits}</span> <span color='#ee99a0'>{bandwidthDownBits}</span> <span color='#c6a0f6'>{bandwidthTotalBits}</span>
|
||||||
|
'';
|
||||||
tooltip-format-disconnected = "Disconnected";
|
tooltip-format-disconnected = "Disconnected";
|
||||||
on-click = "XDG_CURRENT_DESKTOP=GNOME gnome-control-center wifi";
|
on-click = "XDG_CURRENT_DESKTOP=GNOME gnome-control-center wifi";
|
||||||
};
|
};
|
||||||
@ -192,22 +208,20 @@
|
|||||||
|
|
||||||
style = ''
|
style = ''
|
||||||
* {
|
* {
|
||||||
font-family: "FiraCode Nerd Font";
|
font-family: "${cfg.monospaceFont}";
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-size: 20px;
|
font-size: ${builtins.toString (cfg.fontSizes.desktop + 7)}px;
|
||||||
}
|
}
|
||||||
|
|
||||||
window#waybar {
|
window#waybar {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.module {
|
.module {
|
||||||
background: rgba(0, 0, 0, 0.6);
|
background: rgba(0, 0, 0, 0.6);
|
||||||
color: white;
|
color: white;
|
||||||
border-radius: 7px;
|
border-radius: 7px;
|
||||||
padding: 5px 5px 5px 5px;
|
padding: 5px 5px 5px 5px;
|
||||||
margin: 5px 0;
|
|
||||||
}
|
}
|
||||||
box.module button:hover {
|
box.module button:hover {
|
||||||
box-shadow: inset 0 -3px #ffffff;
|
box-shadow: inset 0 -3px #ffffff;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{pkgs, lib, ...}:
|
{pkgs, lib, config, ...}:
|
||||||
let
|
let
|
||||||
stylix = import ./stylix.nix { inherit pkgs; };
|
cfg = config.nix-config.style;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
@ -35,12 +35,12 @@ in
|
|||||||
# color15 = stylix.stylix.base16Scheme.base0F;
|
# color15 = stylix.stylix.base16Scheme.base0F;
|
||||||
|
|
||||||
# also reuse the background opacity by stylix
|
# also reuse the background opacity by stylix
|
||||||
background_opacity = stylix.stylix.opacity.terminal;
|
background_opacity = cfg.terminalOpacity;
|
||||||
|
|
||||||
background = "#000000";
|
background = "#000000";
|
||||||
|
|
||||||
font_family = stylix.stylix.fonts.monospace.name;
|
font_family = cfg.monospaceFont;
|
||||||
font_size = stylix.stylix.fonts.sizes.terminal;
|
font_size = cfg.fontSizes.terminal;
|
||||||
confirm_os_window_close = 0;
|
confirm_os_window_close = 0;
|
||||||
enable_audio_bell = false;
|
enable_audio_bell = false;
|
||||||
cursor_trail = 3;
|
cursor_trail = 3;
|
||||||
|
@ -1,5 +1,55 @@
|
|||||||
{pkgs, ...}:
|
{pkgs, config, lib, ...}:
|
||||||
|
let
|
||||||
|
cfg = config.nix-config.style;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
|
options.nix-config.style = {
|
||||||
|
cursor = {
|
||||||
|
size = lib.mkOption {
|
||||||
|
type = lib.types.int;
|
||||||
|
default = 35;
|
||||||
|
description = "Size of the cursor in pixels.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
fontSizes = {
|
||||||
|
applications = lib.mkOption {
|
||||||
|
type = lib.types.int;
|
||||||
|
default = 12;
|
||||||
|
description = "Font size for applications.";
|
||||||
|
};
|
||||||
|
desktop = lib.mkOption {
|
||||||
|
type = lib.types.int;
|
||||||
|
default = 12;
|
||||||
|
description = "Font size for desktop icons.";
|
||||||
|
};
|
||||||
|
popups = lib.mkOption {
|
||||||
|
type = lib.types.int;
|
||||||
|
default = 12;
|
||||||
|
description = "Font size for popups.";
|
||||||
|
};
|
||||||
|
terminal = lib.mkOption {
|
||||||
|
type = lib.types.int;
|
||||||
|
default = 12;
|
||||||
|
description = "Font size for terminal.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
terminalOpacity = lib.mkOption {
|
||||||
|
type = lib.types.float;
|
||||||
|
default = 0.8;
|
||||||
|
description = "Terminal default opacity";
|
||||||
|
};
|
||||||
|
|
||||||
|
monospaceFont = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "FiraCode Nerd Font Mono";
|
||||||
|
description = "Monospace font. Needs to be installed.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
config = {
|
||||||
|
|
||||||
stylix = {
|
stylix = {
|
||||||
# Stylix is already enabled since the system is configured to use it
|
# Stylix is already enabled since the system is configured to use it
|
||||||
# enable = true;
|
# enable = true;
|
||||||
@ -9,7 +59,7 @@
|
|||||||
cursor = {
|
cursor = {
|
||||||
package = pkgs.apple-cursor;
|
package = pkgs.apple-cursor;
|
||||||
name = "macOS";
|
name = "macOS";
|
||||||
size = 35;
|
size = cfg.cursor.size;
|
||||||
};
|
};
|
||||||
|
|
||||||
iconTheme = {
|
iconTheme = {
|
||||||
@ -35,7 +85,7 @@
|
|||||||
|
|
||||||
monospace = {
|
monospace = {
|
||||||
package = pkgs.nerdfonts.override { fonts = [ "FiraCode" ]; };
|
package = pkgs.nerdfonts.override { fonts = [ "FiraCode" ]; };
|
||||||
name = "FiraCode Nerd Font Mono";
|
name = cfg.monospaceFont;
|
||||||
};
|
};
|
||||||
|
|
||||||
emoji = {
|
emoji = {
|
||||||
@ -44,10 +94,10 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
sizes = {
|
sizes = {
|
||||||
applications = 12;
|
applications = cfg.fontSizes.applications;
|
||||||
desktop = 12;
|
desktop = cfg.fontSizes.desktop;
|
||||||
popups = 12;
|
popups = cfg.fontSizes.popups;
|
||||||
terminal = 12;
|
terminal = cfg.fontSizes.terminal;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -55,7 +105,7 @@
|
|||||||
applications = 1.0;
|
applications = 1.0;
|
||||||
desktop = 1.0;
|
desktop = 1.0;
|
||||||
popups = 0.9;
|
popups = 0.9;
|
||||||
terminal = 0.8;
|
terminal = cfg.terminalOpacity;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -93,4 +143,5 @@
|
|||||||
# kitty.enable = true;
|
# kitty.enable = true;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
{ config, pkgs, lib, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
let
|
let
|
||||||
stylix = import ./stylix.nix { inherit pkgs; };
|
cfg = config.nix-config.style;
|
||||||
|
in
|
||||||
in {
|
{
|
||||||
|
|
||||||
home.packages = with pkgs; [ wofi-emoji ];
|
home.packages = with pkgs; [ wofi-emoji ];
|
||||||
|
|
||||||
@ -52,14 +52,14 @@ in {
|
|||||||
|
|
||||||
style = ''
|
style = ''
|
||||||
* {
|
* {
|
||||||
font-family: ${stylix.stylix.fonts.sansSerif.name};
|
font-family: ${cfg.monospaceFont};
|
||||||
font-size: ${builtins.toString (stylix.stylix.fonts.sizes.applications + 10)}px;
|
font-size: ${builtins.toString (cfg.fontSizes.desktop + 8)}px;
|
||||||
color: ${stylix.stylix.base16Scheme.base04};
|
color: white;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
#window {
|
#window {
|
||||||
background: rgba(41, 46, 66, 0.5);
|
background: rgba(1, 1, 1, 0.5);
|
||||||
margin: auto;
|
margin: auto;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
}
|
}
|
||||||
|
@ -10,17 +10,17 @@
|
|||||||
];
|
];
|
||||||
hardware.bluetooth = {
|
hardware.bluetooth = {
|
||||||
enable = true;
|
enable = true;
|
||||||
powerOnBoot = true;
|
# powerOnBoot = true;
|
||||||
settings = {
|
# settings = {
|
||||||
General = {
|
# General = {
|
||||||
Name = "Nixtre";
|
# Name = "Nixtre";
|
||||||
ControllerMode = "dual";
|
# ControllerMode = "dual";
|
||||||
FastConnectable = "true";
|
# FastConnectable = "true";
|
||||||
Experimental = "true";
|
# Experimental = "true";
|
||||||
};
|
# };
|
||||||
Policy = {
|
# Policy = {
|
||||||
AutoEnable = "true";
|
# AutoEnable = "true";
|
||||||
};
|
# };
|
||||||
};
|
# };
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,13 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.nix-config;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
|
|
||||||
|
config = {
|
||||||
|
|
||||||
# Use hyprland as the main desktop environment but use gdm as desktop manager
|
# Use hyprland as the main desktop environment but use gdm as desktop manager
|
||||||
programs.hyprland = {
|
programs.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@ -24,4 +30,6 @@
|
|||||||
|
|
||||||
security.pam.services.gdm.enableGnomeKeyring = true;
|
security.pam.services.gdm.enableGnomeKeyring = true;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
17
modules/nixos/usb_config.nix
Normal file
17
modules/nixos/usb_config.nix
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
boot.loader.grub.enable = true;
|
||||||
|
|
||||||
|
boot.loader.grub.efiSupport = true;
|
||||||
|
# location at install time. Since the drive is a USB drive this is expcected to change on each device
|
||||||
|
boot.loader.grub.device = "/dev/sdb";
|
||||||
|
boot.loader.grub.efiInstallAsRemovable = true;
|
||||||
|
boot.loader.systemd-boot.enable = false;
|
||||||
|
|
||||||
|
boot.loader.efi.canTouchEfiVariables = false;
|
||||||
|
boot.tmp.useTmpfs = true;
|
||||||
|
}
|
@ -1,26 +1,5 @@
|
|||||||
{ config, pkgs, lib, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
with lib.hm.gvariant;
|
|
||||||
{
|
{
|
||||||
imports = [
|
|
||||||
../modules/home-manager/browser.nix
|
|
||||||
../modules/home-manager/code.nix
|
|
||||||
../modules/home-manager/dev.nix
|
|
||||||
../modules/home-manager/documents.nix
|
|
||||||
../modules/home-manager/fish.nix
|
|
||||||
../modules/home-manager/flatpaks.nix
|
|
||||||
../modules/home-manager/hypr
|
|
||||||
../modules/home-manager/keepassxc.nix
|
|
||||||
../modules/home-manager/kitty.nix
|
|
||||||
../modules/home-manager/kubectl.nix
|
|
||||||
../modules/home-manager/obsidian.nix
|
|
||||||
../modules/home-manager/owncloud-client.nix
|
|
||||||
../modules/home-manager/ssh.nix
|
|
||||||
../modules/home-manager/stylix.nix
|
|
||||||
../modules/home-manager/thunderbird.nix
|
|
||||||
../modules/home-manager/wofi.nix
|
|
||||||
../modules/home-manager/xdg-portals.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
## Home Manager configuration
|
## Home Manager configuration
|
||||||
home.stateVersion = "24.05";
|
home.stateVersion = "24.05";
|
||||||
# Let Home Manager install and manage itself.
|
# Let Home Manager install and manage itself.
|
||||||
|
38
users/remy_spectre/default.nix
Normal file
38
users/remy_spectre/default.nix
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
with lib.hm.gvariant;
|
||||||
|
{
|
||||||
|
config = {
|
||||||
|
nix-config = {
|
||||||
|
hypr = {
|
||||||
|
internal-screen = {
|
||||||
|
resolution = "3840x2160";
|
||||||
|
scale = "1.666667";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
../remy.nix
|
||||||
|
../../modules/home-manager/browser.nix
|
||||||
|
../../modules/home-manager/code.nix
|
||||||
|
../../modules/home-manager/dev.nix
|
||||||
|
../../modules/home-manager/documents.nix
|
||||||
|
../../modules/home-manager/fish.nix
|
||||||
|
../../modules/home-manager/flatpaks.nix
|
||||||
|
../../modules/home-manager/hypr
|
||||||
|
../../modules/home-manager/keepassxc.nix
|
||||||
|
../../modules/home-manager/kitty.nix
|
||||||
|
../../modules/home-manager/kubectl.nix
|
||||||
|
../../modules/home-manager/obsidian.nix
|
||||||
|
../../modules/home-manager/owncloud-client.nix
|
||||||
|
../../modules/home-manager/ssh.nix
|
||||||
|
../../modules/home-manager/stylix.nix
|
||||||
|
../../modules/home-manager/thunderbird.nix
|
||||||
|
../../modules/home-manager/wofi.nix
|
||||||
|
../../modules/home-manager/xdg-portals.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
38
users/remy_yoga-usb/default.nix
Normal file
38
users/remy_yoga-usb/default.nix
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
with lib.hm.gvariant;
|
||||||
|
{
|
||||||
|
config = {
|
||||||
|
nix-config = {
|
||||||
|
hypr = {
|
||||||
|
internal-screen = {
|
||||||
|
resolution = "2880x1800@90.00100";
|
||||||
|
scale = "1.666667";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
../remy.nix
|
||||||
|
../../modules/home-manager/browser.nix
|
||||||
|
../../modules/home-manager/code.nix
|
||||||
|
../../modules/home-manager/dev.nix
|
||||||
|
../../modules/home-manager/documents.nix
|
||||||
|
../../modules/home-manager/fish.nix
|
||||||
|
../../modules/home-manager/flatpaks.nix
|
||||||
|
../../modules/home-manager/hypr
|
||||||
|
../../modules/home-manager/keepassxc.nix
|
||||||
|
../../modules/home-manager/kitty.nix
|
||||||
|
../../modules/home-manager/kubectl.nix
|
||||||
|
../../modules/home-manager/obsidian.nix
|
||||||
|
../../modules/home-manager/owncloud-client.nix
|
||||||
|
../../modules/home-manager/ssh.nix
|
||||||
|
../../modules/home-manager/stylix.nix
|
||||||
|
../../modules/home-manager/thunderbird.nix
|
||||||
|
../../modules/home-manager/wofi.nix
|
||||||
|
../../modules/home-manager/xdg-portals.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user