HyprAnnoying
This commit is contained in:
parent
7836090a08
commit
26518bc33c
@ -1,16 +1,15 @@
|
|||||||
# Edit this configuration file to define what should be installed on
|
|
||||||
# your system. Help is available in the configuration.nix(5) man page
|
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
# Include the results of the hardware scan.
|
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
./system/gnome.nix
|
./system/nvidia.nix
|
||||||
|
./system/de/gdm.nix
|
||||||
|
./system/de/hypr/hyprland.nix
|
||||||
inputs.home-manager.nixosModules.default
|
inputs.home-manager.nixosModules.default
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -49,6 +48,16 @@
|
|||||||
# Enable CUPS to print documents.
|
# Enable CUPS to print documents.
|
||||||
services.printing.enable = true;
|
services.printing.enable = true;
|
||||||
|
|
||||||
|
# Flatpak (Basically just for discord)
|
||||||
|
services.flatpak.enable = true;
|
||||||
|
systemd.services.flatpak-repo = {
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
path = [ pkgs.flatpak ];
|
||||||
|
script = ''
|
||||||
|
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
# Enable sound with pipewire.
|
# Enable sound with pipewire.
|
||||||
services.pulseaudio.enable = false;
|
services.pulseaudio.enable = false;
|
||||||
security.rtkit.enable = true;
|
security.rtkit.enable = true;
|
||||||
@ -72,7 +81,10 @@
|
|||||||
users.users.javi = {
|
users.users.javi = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
description = "javi";
|
description = "javi";
|
||||||
extraGroups = ["networkmanager" "wheel"];
|
extraGroups = [
|
||||||
|
"networkmanager"
|
||||||
|
"wheel"
|
||||||
|
];
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
# thunderbird
|
# thunderbird
|
||||||
];
|
];
|
||||||
@ -94,10 +106,13 @@
|
|||||||
|
|
||||||
system.stateVersion = "25.05"; # Did you read the comment?
|
system.stateVersion = "25.05"; # Did you read the comment?
|
||||||
|
|
||||||
nix.settings.experimental-features = ["nix-command" "flakes"];
|
nix.settings.experimental-features = [
|
||||||
|
"nix-command"
|
||||||
|
"flakes"
|
||||||
|
];
|
||||||
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
extraSpecialArgs = {inherit inputs;};
|
extraSpecialArgs = { inherit inputs; };
|
||||||
users = {
|
users = {
|
||||||
"javi" = import ./home.nix;
|
"javi" = import ./home.nix;
|
||||||
};
|
};
|
||||||
|
33
flake.nix
33
flake.nix
@ -9,20 +9,23 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs =
|
||||||
self,
|
{
|
||||||
nixpkgs,
|
self,
|
||||||
...
|
nixpkgs,
|
||||||
} @ inputs: let
|
...
|
||||||
system = "x86_64-linux";
|
}@inputs:
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
let
|
||||||
in {
|
system = "x86_64-linux";
|
||||||
nixosConfigurations.default = nixpkgs.lib.nixosSystem {
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
specialArgs = {inherit inputs;};
|
in
|
||||||
modules = [
|
{
|
||||||
inputs.home-manager.nixosModules.default
|
nixosConfigurations.default = nixpkgs.lib.nixosSystem {
|
||||||
./configuration.nix
|
specialArgs = { inherit inputs; };
|
||||||
];
|
modules = [
|
||||||
|
inputs.home-manager.nixosModules.default
|
||||||
|
./configuration.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
53
hardware-configuration.nix
Executable file → Normal file
53
hardware-configuration.nix
Executable file → Normal file
@ -7,37 +7,66 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
modulesPath,
|
modulesPath,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = ["xhci_pci" "nvme" "usb_storage" "sd_mod"];
|
boot.initrd.availableKernelModules = [
|
||||||
boot.initrd.kernelModules = [];
|
"nvme"
|
||||||
boot.kernelModules = ["kvm-intel"];
|
"xhci_pci"
|
||||||
boot.extraModulePackages = [];
|
"ahci"
|
||||||
|
"usb_storage"
|
||||||
|
"usbhid"
|
||||||
|
"sd_mod"
|
||||||
|
];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
fileSystems."/" = {
|
fileSystems."/" = {
|
||||||
device = "/dev/disk/by-uuid/0c063318-1531-475e-b3bc-00bdd225dd45";
|
device = "/dev/disk/by-uuid/8f492948-4572-44d4-9da9-9394894320f4";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/boot" = {
|
fileSystems."/boot" = {
|
||||||
device = "/dev/disk/by-uuid/029C-659E";
|
device = "/dev/disk/by-uuid/EAA9-478C";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
options = ["fmask=0077" "dmask=0077"];
|
options = [
|
||||||
|
"fmask=0077"
|
||||||
|
"dmask=0077"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [];
|
fileSystems."/home" = {
|
||||||
|
device = "/dev/disk/by-uuid/6646d409-6417-4410-b3a0-fe6bafb2b9f3";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/tmp" = {
|
||||||
|
device = "/dev/disk/by-uuid/9fe1009a-f604-40ff-a13d-e78d9041397f";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/var/log" = {
|
||||||
|
device = "/dev/disk/by-uuid/9d39eb6d-09ab-4d66-8864-c19f9d59f620";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [
|
||||||
|
{ device = "/dev/disk/by-uuid/6fa52bf4-b1d9-468f-bc3a-f0c740e80c86"; }
|
||||||
|
];
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
# 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
|
# (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
|
# 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`.
|
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||||
networking.useDHCP = lib.mkDefault true;
|
networking.useDHCP = lib.mkDefault true;
|
||||||
# networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true;
|
# networking.interfaces.enp7s0.useDHCP = lib.mkDefault true;
|
||||||
# networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true;
|
# networking.interfaces.wlp6s0.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
}
|
}
|
||||||
|
82
home.nix
82
home.nix
@ -2,13 +2,15 @@
|
|||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./home/kitty.nix
|
./home/kitty.nix
|
||||||
./home/shell.nix
|
./home/shell.nix
|
||||||
./home/starship.nix
|
./home/starship.nix
|
||||||
./home/gnome.nix
|
|
||||||
./home/git.nix
|
./home/git.nix
|
||||||
|
./home/hyprland.nix
|
||||||
|
./home/util/darkmode.nix
|
||||||
];
|
];
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
# 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
|
||||||
@ -29,8 +31,8 @@
|
|||||||
# environment.
|
# environment.
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# Basics
|
# Basics
|
||||||
kitty
|
|
||||||
starship
|
starship
|
||||||
|
nautilus
|
||||||
|
|
||||||
# Terminal tools
|
# Terminal tools
|
||||||
yazi
|
yazi
|
||||||
@ -38,12 +40,13 @@
|
|||||||
fzf
|
fzf
|
||||||
bat
|
bat
|
||||||
eza
|
eza
|
||||||
|
jq
|
||||||
|
|
||||||
# Dev tools
|
# Dev tools
|
||||||
jetbrains.datagrip
|
jetbrains.datagrip
|
||||||
vscode
|
vscode
|
||||||
neovim
|
neovim
|
||||||
alejandra # Nix formatting
|
nixfmt # Nix formatting
|
||||||
|
|
||||||
# System tools
|
# System tools
|
||||||
btop
|
btop
|
||||||
@ -55,44 +58,47 @@
|
|||||||
|
|
||||||
# Media
|
# Media
|
||||||
mpc
|
mpc
|
||||||
|
|
||||||
# Apps
|
|
||||||
discord
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
# Environment variables
|
||||||
# plain files is through 'home.file'.
|
home.sessionVariables = {
|
||||||
home.file = {
|
EDITOR = "code";
|
||||||
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
|
BROWSER = "brave";
|
||||||
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
|
TERMINAL = "kitty";
|
||||||
# # symlink to the Nix store copy.
|
|
||||||
# ".screenrc".source = dotfiles/screenrc;
|
|
||||||
|
|
||||||
# # You can also set the file content immediately.
|
|
||||||
# ".gradle/gradle.properties".text = ''
|
|
||||||
# org.gradle.console=verbose
|
|
||||||
# org.gradle.daemon.idletimeout=3600000
|
|
||||||
# '';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Home Manager can also manage your environment variables through
|
# File associations
|
||||||
# 'home.sessionVariables'. These will be explicitly sourced when using a
|
xdg.mimeApps = {
|
||||||
# shell provided by Home Manager. If you don't want to manage your shell
|
enable = true;
|
||||||
# through Home Manager then you have to manually source 'hm-session-vars.sh'
|
defaultApplications = {
|
||||||
# located at either
|
"text/html" = "brave-browser.desktop";
|
||||||
#
|
"x-scheme-handler/http" = "brave-browser.desktop";
|
||||||
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
|
"x-scheme-handler/https" = "brave-browser.desktop";
|
||||||
#
|
"x-scheme-handler/about" = "brave-browser.desktop";
|
||||||
# or
|
"x-scheme-handler/unknown" = "brave-browser.desktop";
|
||||||
#
|
"application/pdf" = "org.gnome.Evince.desktop";
|
||||||
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
|
"text/plain" = "code.desktop";
|
||||||
#
|
"application/json" = "code.desktop";
|
||||||
# or
|
"application/javascript" = "code.desktop";
|
||||||
#
|
"text/x-php" = "code.desktop";
|
||||||
# /etc/profiles/per-user/javi/etc/profile.d/hm-session-vars.sh
|
};
|
||||||
#
|
};
|
||||||
home.sessionVariables = {
|
|
||||||
# EDITOR = "emacs";
|
# XDG directories
|
||||||
|
xdg = {
|
||||||
|
enable = true;
|
||||||
|
userDirs = {
|
||||||
|
enable = true;
|
||||||
|
createDirectories = true;
|
||||||
|
desktop = "${config.home.homeDirectory}/Desktop";
|
||||||
|
documents = "${config.home.homeDirectory}/Documents";
|
||||||
|
download = "${config.home.homeDirectory}/Downloads";
|
||||||
|
music = "${config.home.homeDirectory}/Music";
|
||||||
|
pictures = "${config.home.homeDirectory}/Pictures";
|
||||||
|
videos = "${config.home.homeDirectory}/Videos";
|
||||||
|
templates = "${config.home.homeDirectory}/Templates";
|
||||||
|
publicShare = "${config.home.homeDirectory}/Public";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Let Home Manager install and manage itself.
|
# Let Home Manager install and manage itself.
|
||||||
|
@ -2,7 +2,8 @@
|
|||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
# Development-specific configurations and tools
|
# Development-specific configurations and tools
|
||||||
|
|
||||||
# Node.js development
|
# Node.js development
|
||||||
@ -84,22 +85,22 @@
|
|||||||
keymap = {
|
keymap = {
|
||||||
manager.prepend_keymap = [
|
manager.prepend_keymap = [
|
||||||
{
|
{
|
||||||
on = ["<Esc>"];
|
on = [ "<Esc>" ];
|
||||||
run = "escape";
|
run = "escape";
|
||||||
desc = "Exit visual mode, clear selected, or cancel search";
|
desc = "Exit visual mode, clear selected, or cancel search";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = ["q"];
|
on = [ "q" ];
|
||||||
run = "quit";
|
run = "quit";
|
||||||
desc = "Exit the process";
|
desc = "Exit the process";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = ["Q"];
|
on = [ "Q" ];
|
||||||
run = "quit --no-cwd-file";
|
run = "quit --no-cwd-file";
|
||||||
desc = "Exit the process without writing cwd-file";
|
desc = "Exit the process without writing cwd-file";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = ["<C-q>"];
|
on = [ "<C-q>" ];
|
||||||
run = "close";
|
run = "close";
|
||||||
desc = "Close the current tab, or quit if it is last tab";
|
desc = "Close the current tab, or quit if it is last tab";
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,8 @@
|
|||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
home.packages = [
|
home.packages = [
|
||||||
pkgs.git
|
pkgs.git
|
||||||
];
|
];
|
||||||
|
@ -3,7 +3,8 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./gnome/keybinds.nix
|
./gnome/keybinds.nix
|
||||||
];
|
];
|
||||||
|
@ -3,35 +3,44 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
|
let
|
||||||
# Helper function to create custom keybindings
|
# Helper function to create custom keybindings
|
||||||
mkCustomKeybinding = index: {
|
mkCustomKeybinding =
|
||||||
name,
|
index:
|
||||||
command,
|
{
|
||||||
binding,
|
name,
|
||||||
}: {
|
command,
|
||||||
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom${toString index}" = {
|
binding,
|
||||||
inherit name command binding;
|
}:
|
||||||
|
{
|
||||||
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom${toString index}" = {
|
||||||
|
inherit name command binding;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
# Helper function to generate custom keybinding paths
|
# Helper function to generate custom keybinding paths
|
||||||
mkCustomKeybindingPaths = count:
|
mkCustomKeybindingPaths =
|
||||||
lib.genList (i: "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom${toString i}/") count;
|
count:
|
||||||
|
lib.genList (
|
||||||
|
i: "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom${toString i}/"
|
||||||
|
) count;
|
||||||
|
|
||||||
# Helper function to generate workspace keybindings
|
# Helper function to generate workspace keybindings
|
||||||
mkWorkspaceKeybindings = count:
|
mkWorkspaceKeybindings =
|
||||||
lib.genAttrs
|
count:
|
||||||
(lib.genList (i: "switch-to-workspace-${toString (i + 1)}") count)
|
lib.genAttrs (lib.genList (i: "switch-to-workspace-${toString (i + 1)}") count) (
|
||||||
(name: let
|
name:
|
||||||
num = lib.strings.removePrefix "switch-to-workspace-" name;
|
let
|
||||||
in ["<Super>${num}"]);
|
num = lib.strings.removePrefix "switch-to-workspace-" name;
|
||||||
|
in
|
||||||
|
[ "<Super>${num}" ]
|
||||||
|
);
|
||||||
|
|
||||||
# Helper function to disable application shortcuts
|
# Helper function to disable application shortcuts
|
||||||
mkDisableAppShortcuts = count:
|
mkDisableAppShortcuts =
|
||||||
lib.genAttrs
|
count:
|
||||||
(lib.genList (i: "switch-to-application-${toString (i + 1)}") count)
|
lib.genAttrs (lib.genList (i: "switch-to-application-${toString (i + 1)}") count) (name: [ ]);
|
||||||
(name: []);
|
|
||||||
|
|
||||||
# Define custom keybindings
|
# Define custom keybindings
|
||||||
customKeybindings = [
|
customKeybindings = [
|
||||||
@ -65,6 +74,11 @@
|
|||||||
command = "kitty --start-as=normal -- bash -ic 'proj'";
|
command = "kitty --start-as=normal -- bash -ic 'proj'";
|
||||||
binding = "<Control><Shift>p";
|
binding = "<Control><Shift>p";
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
name = "Open nix config";
|
||||||
|
command = "kitty --start-as=normal -- bash -ic 'code ~/nix && exit'";
|
||||||
|
binding = "<Super><Shift>n";
|
||||||
|
}
|
||||||
{
|
{
|
||||||
name = "ChatGPT";
|
name = "ChatGPT";
|
||||||
command = "brave --new-window --app=https://chatgpt.com";
|
command = "brave --new-window --app=https://chatgpt.com";
|
||||||
@ -83,37 +97,36 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
# Generate all custom keybinding settings
|
# Generate all custom keybinding settings
|
||||||
customKeybindingSettings =
|
customKeybindingSettings = lib.foldl lib.mergeAttrs { } (
|
||||||
lib.foldl lib.mergeAttrs {}
|
lib.imap0 (index: keybind: mkCustomKeybinding index keybind) customKeybindings
|
||||||
(lib.imap0 (index: keybind: mkCustomKeybinding index keybind) customKeybindings);
|
);
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
# GNOME desktop configuration (equivalent to your scripts/gnome/ files)
|
# GNOME desktop configuration (equivalent to your scripts/gnome/ files)
|
||||||
dconf.settings =
|
dconf.settings = lib.mergeAttrs {
|
||||||
lib.mergeAttrs {
|
# Window manager keybindings (from keybinds.sh)
|
||||||
# Window manager keybindings (from keybinds.sh)
|
"org/gnome/desktop/wm/keybindings" = lib.mergeAttrs {
|
||||||
"org/gnome/desktop/wm/keybindings" = lib.mergeAttrs {
|
close = [ "<Super>c" ];
|
||||||
close = ["<Super>c"];
|
maximize = [ "<Super>Up" ];
|
||||||
maximize = ["<Super>Up"];
|
toggle-fullscreen = [ "<Shift>F11" ];
|
||||||
toggle-fullscreen = ["<Shift>F11"];
|
} (mkWorkspaceKeybindings 6);
|
||||||
} (mkWorkspaceKeybindings 6);
|
|
||||||
|
|
||||||
# Workspace settings
|
# Workspace settings
|
||||||
"org/gnome/mutter" = {
|
"org/gnome/mutter" = {
|
||||||
dynamic-workspaces = false;
|
dynamic-workspaces = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
"org/gnome/desktop/wm/preferences" = {
|
"org/gnome/desktop/wm/preferences" = {
|
||||||
num-workspaces = 6;
|
num-workspaces = 6;
|
||||||
resize-with-right-button = true;
|
resize-with-right-button = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Disable Super+number for applications (to use for workspaces)
|
# Disable Super+number for applications (to use for workspaces)
|
||||||
"org/gnome/shell/keybindings" = mkDisableAppShortcuts 9;
|
"org/gnome/shell/keybindings" = mkDisableAppShortcuts 9;
|
||||||
|
|
||||||
# Custom keybindings (from your keybinds.sh)
|
# Custom keybindings (from your keybinds.sh)
|
||||||
"org/gnome/settings-daemon/plugins/media-keys" = {
|
"org/gnome/settings-daemon/plugins/media-keys" = {
|
||||||
custom-keybindings = mkCustomKeybindingPaths (lib.length customKeybindings);
|
custom-keybindings = mkCustomKeybindingPaths (lib.length customKeybindings);
|
||||||
};
|
};
|
||||||
}
|
} customKeybindingSettings;
|
||||||
customKeybindingSettings;
|
|
||||||
}
|
}
|
||||||
|
104
home/home.nix
104
home/home.nix
@ -1,104 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
inputs,
|
|
||||||
stable,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = [
|
|
||||||
./modules/shell.nix
|
|
||||||
./modules/git.nix
|
|
||||||
./modules/gnome.nix
|
|
||||||
./programs/vscode.nix
|
|
||||||
./programs/starship.nix
|
|
||||||
./programs/development.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
# Home Manager version
|
|
||||||
home.stateVersion = "24.05";
|
|
||||||
|
|
||||||
# User info
|
|
||||||
home = {
|
|
||||||
username = "javi";
|
|
||||||
homeDirectory = "/home/javi";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Let Home Manager manage itself
|
|
||||||
programs.home-manager.enable = true;
|
|
||||||
|
|
||||||
# User packages
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
# Terminal tools
|
|
||||||
yazi # File manager (replacing your yazi.sh script)
|
|
||||||
ripgrep # Better grep
|
|
||||||
fd # Better find
|
|
||||||
bat # Better cat
|
|
||||||
delta # Better git diff
|
|
||||||
|
|
||||||
# Development tools
|
|
||||||
jetbrains.datagrip # Database IDE (from your Ansible config)
|
|
||||||
|
|
||||||
# System monitoring
|
|
||||||
btop
|
|
||||||
neofetch
|
|
||||||
fastfetch
|
|
||||||
|
|
||||||
# Utilities
|
|
||||||
xclip
|
|
||||||
wl-clipboard
|
|
||||||
flameshot
|
|
||||||
|
|
||||||
# Archive tools
|
|
||||||
unzip
|
|
||||||
zip
|
|
||||||
p7zip
|
|
||||||
|
|
||||||
# Network tools
|
|
||||||
curl
|
|
||||||
wget
|
|
||||||
|
|
||||||
# Media
|
|
||||||
mpc
|
|
||||||
];
|
|
||||||
|
|
||||||
# XDG directories
|
|
||||||
xdg = {
|
|
||||||
enable = true;
|
|
||||||
userDirs = {
|
|
||||||
enable = true;
|
|
||||||
createDirectories = true;
|
|
||||||
desktop = "${config.home.homeDirectory}/Desktop";
|
|
||||||
documents = "${config.home.homeDirectory}/Documents";
|
|
||||||
download = "${config.home.homeDirectory}/Downloads";
|
|
||||||
music = "${config.home.homeDirectory}/Music";
|
|
||||||
pictures = "${config.home.homeDirectory}/Pictures";
|
|
||||||
videos = "${config.home.homeDirectory}/Videos";
|
|
||||||
templates = "${config.home.homeDirectory}/Templates";
|
|
||||||
publicShare = "${config.home.homeDirectory}/Public";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Environment variables
|
|
||||||
home.sessionVariables = {
|
|
||||||
EDITOR = "code";
|
|
||||||
BROWSER = "brave";
|
|
||||||
TERMINAL = "kitty";
|
|
||||||
};
|
|
||||||
|
|
||||||
# File associations
|
|
||||||
xdg.mimeApps = {
|
|
||||||
enable = true;
|
|
||||||
defaultApplications = {
|
|
||||||
"text/html" = "brave-browser.desktop";
|
|
||||||
"x-scheme-handler/http" = "brave-browser.desktop";
|
|
||||||
"x-scheme-handler/https" = "brave-browser.desktop";
|
|
||||||
"x-scheme-handler/about" = "brave-browser.desktop";
|
|
||||||
"x-scheme-handler/unknown" = "brave-browser.desktop";
|
|
||||||
"application/pdf" = "org.gnome.Evince.desktop";
|
|
||||||
"text/plain" = "code.desktop";
|
|
||||||
"application/json" = "code.desktop";
|
|
||||||
"application/javascript" = "code.desktop";
|
|
||||||
"text/x-php" = "code.desktop";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
148
home/hyprland.nix
Normal file
148
home/hyprland.nix
Normal file
@ -0,0 +1,148 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = [
|
||||||
|
pkgs.wofi
|
||||||
|
pkgs.hyprlock
|
||||||
|
pkgs.hyprpaper
|
||||||
|
];
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
./hyprland/hyprpaper.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
# Important for certain apps working
|
||||||
|
# and dark mode being respected
|
||||||
|
xdg.portal = {
|
||||||
|
enable = true;
|
||||||
|
extraPortals = [
|
||||||
|
pkgs.xdg-desktop-portal-gtk
|
||||||
|
pkgs.xdg-desktop-portal-hyprland
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
wayland.windowManager.hyprland.enable = true;
|
||||||
|
|
||||||
|
wayland.windowManager.hyprland.settings = {
|
||||||
|
"$mod" = "SUPER";
|
||||||
|
"$browser" = "brave";
|
||||||
|
"$terminal" = "kitty";
|
||||||
|
"$file_browser" = "nautilus";
|
||||||
|
"$webapp" = "$browser --new-window --app=";
|
||||||
|
|
||||||
|
monitor = [
|
||||||
|
"DP-5, 3440x1440@179.99, 0x0, 1"
|
||||||
|
];
|
||||||
|
|
||||||
|
general = {
|
||||||
|
layout = "master";
|
||||||
|
gaps_out = 5;
|
||||||
|
gaps_in = 5;
|
||||||
|
};
|
||||||
|
|
||||||
|
bind = [
|
||||||
|
# Start programs
|
||||||
|
"$mod, q, exec, $terminal"
|
||||||
|
"$mod SHIFT, o, exec, $browser"
|
||||||
|
"$mod SHIFT, p, exec, $browser --incognito"
|
||||||
|
"$mod, e, exec, $file_browser"
|
||||||
|
"$mod SHIFT, n, exec, kitty --start-as=normal -- bash -ic 'code ~/nix && exit'"
|
||||||
|
"$mod, RETURN, exec, $webapphttps://chatgpt.com"
|
||||||
|
|
||||||
|
# Window and workspace navigation
|
||||||
|
# Move between windows with vim keys
|
||||||
|
"$mod, h, movefocus, l"
|
||||||
|
"$mod, l, movefocus, r"
|
||||||
|
"$mod, k, movefocus, u"
|
||||||
|
"$mod, j, movefocus, d"
|
||||||
|
"$mod, c, killactive"
|
||||||
|
# Move between workspaces
|
||||||
|
"$mod ALT, l, movetoworkspace, r+1"
|
||||||
|
"$mod ALT, h, movetoworkspace, r-1"
|
||||||
|
"$mod SHIFT, l, workspace, r+1"
|
||||||
|
"$mod SHIFT, h, workspace, r-1"
|
||||||
|
# Window management
|
||||||
|
"$mod, 0, layoutmsg, rollnext"
|
||||||
|
|
||||||
|
"$mod, f, fullscreen, 0"
|
||||||
|
"$mod, v, togglefloating, active"
|
||||||
|
"$mod, SPACE, exec, wofi --show drun"
|
||||||
|
|
||||||
|
# ", Print, exec, grimblast copy area"
|
||||||
|
|
||||||
|
# "$mod, r, exec, kitty -- zsh -c 'exec yazi; exec zsh'"
|
||||||
|
# "$mod, b, exec, kitty -- zsh -c 'btop; exec zsh'"
|
||||||
|
# "$mod, y, exec, kitty --start-as=normal -- zsh -ic 'repos'"
|
||||||
|
# "$mod, i, exec, brave"
|
||||||
|
# "$mod, u, exec, kitty --start-as=normal -- zsh -ic 'home'"
|
||||||
|
|
||||||
|
"$mod SHIFT, s, togglespecialworkspace, comms"
|
||||||
|
# "$mod, v, togglespecialworkspace, special2"
|
||||||
|
|
||||||
|
# Log out
|
||||||
|
# "$mod, -, exec, hyprctl dispatch exit"
|
||||||
|
"$mod SHIFT ALT, x, exec, hyprctl dispatch exit"
|
||||||
|
|
||||||
|
# Shift+Print → select area and copy
|
||||||
|
"SHIFT, Print, exec, grimblast copy area"
|
||||||
|
|
||||||
|
# Ctrl+Print → select window and copy
|
||||||
|
"CTRL, Print, exec, grimblast copy active"
|
||||||
|
]
|
||||||
|
++ (
|
||||||
|
# workspaces
|
||||||
|
# binds $mod + [shift +] {1..9} to [move to] workspace {1..9}
|
||||||
|
builtins.concatLists (
|
||||||
|
builtins.genList (
|
||||||
|
i:
|
||||||
|
let
|
||||||
|
ws = i + 1;
|
||||||
|
in
|
||||||
|
[
|
||||||
|
"$mod, code:1${toString i}, workspace, ${toString ws}"
|
||||||
|
"$mod SHIFT, code:1${toString i}, movetoworkspace, ${toString ws}"
|
||||||
|
]
|
||||||
|
) 9
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
workspace = [
|
||||||
|
1
|
||||||
|
2
|
||||||
|
3
|
||||||
|
4
|
||||||
|
5
|
||||||
|
6
|
||||||
|
];
|
||||||
|
|
||||||
|
# Window rules
|
||||||
|
windowrulev2 = [
|
||||||
|
"opacity 0.85, class:^(Code)$"
|
||||||
|
];
|
||||||
|
|
||||||
|
decoration = {
|
||||||
|
blur = {
|
||||||
|
enabled = false;
|
||||||
|
size = 8;
|
||||||
|
passes = 2;
|
||||||
|
};
|
||||||
|
|
||||||
|
active_opacity = 1.0;
|
||||||
|
inactive_opacity = 1.0;
|
||||||
|
};
|
||||||
|
|
||||||
|
exec-once = [
|
||||||
|
"eval $(gnome-keyring-daemon --start --components=secrets,ssh,gpg)"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
wayland.windowManager.hyprland.plugins = [
|
||||||
|
# inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprbars
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
BIN
home/hyprland/background.png
Normal file
BIN
home/hyprland/background.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.3 MiB |
23
home/hyprland/hyprpaper.nix
Normal file
23
home/hyprland/hyprpaper.nix
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
services.hyprpaper = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
ipc = "on";
|
||||||
|
splash = false;
|
||||||
|
preload = [
|
||||||
|
"/home/javi/Documents/wallpapers/Fantasy-Landscape2.png"
|
||||||
|
];
|
||||||
|
|
||||||
|
wallpaper = [
|
||||||
|
", /home/javi/Documents/wallpapers/Fantasy-Landscape2.png"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -3,7 +3,8 @@
|
|||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
|
let
|
||||||
kittyConfig = ''
|
kittyConfig = ''
|
||||||
include current-theme.conf
|
include current-theme.conf
|
||||||
|
|
||||||
@ -16,16 +17,15 @@
|
|||||||
|
|
||||||
map ctrl+shift+t new_tab_with_cwd
|
map ctrl+shift+t new_tab_with_cwd
|
||||||
'';
|
'';
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
kitty
|
||||||
|
];
|
||||||
|
|
||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
extraConfig = kittyConfig;
|
extraConfig = kittyConfig;
|
||||||
|
|
||||||
# Optional: link extra files like `current-theme.conf`
|
|
||||||
# Add this if you have a custom theme file
|
|
||||||
# settings = {
|
|
||||||
# include = "~/.config/kitty/current-theme.conf";
|
|
||||||
# };
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,8 @@
|
|||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
# Bash configuration
|
# Bash configuration
|
||||||
programs.bash = {
|
programs.bash = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@ -19,9 +20,10 @@
|
|||||||
|
|
||||||
# Convenience
|
# Convenience
|
||||||
rp = "source ~/.bashrc";
|
rp = "source ~/.bashrc";
|
||||||
|
co = "code .";
|
||||||
|
|
||||||
# Nix
|
# Nix
|
||||||
rb = "sudo nixos-rebuild switch --flake $HOME/nixos-config#default";
|
rb = "sudo nixos-rebuild switch --flake $HOME/nix#default";
|
||||||
|
|
||||||
# Git shortcuts
|
# Git shortcuts
|
||||||
gs = "git status";
|
gs = "git status";
|
||||||
|
@ -2,7 +2,8 @@
|
|||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
# Starship prompt configuration (equivalent to your starship-prompt.sh)
|
# Starship prompt configuration (equivalent to your starship-prompt.sh)
|
||||||
programs.starship = {
|
programs.starship = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
33
home/util/darkmode.nix
Normal file
33
home/util/darkmode.nix
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
inputs,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
gtk = {
|
||||||
|
enable = true;
|
||||||
|
theme = {
|
||||||
|
name = "Adwaita-dark";
|
||||||
|
package = pkgs.gnome-themes-extra;
|
||||||
|
};
|
||||||
|
iconTheme = {
|
||||||
|
name = "Papirus-Dark";
|
||||||
|
package = pkgs.papirus-icon-theme;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
dconf.settings = {
|
||||||
|
"org/gnome/desktop/interface" = {
|
||||||
|
color-scheme = "prefer-dark";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Make Qt apps follow dark mode
|
||||||
|
home.sessionVariables = {
|
||||||
|
QT_QPA_PLATFORMTHEME = "gtk2";
|
||||||
|
QT_STYLE_OVERRIDE = "Adwaita-dark";
|
||||||
|
};
|
||||||
|
}
|
175
home/vscode.nix
175
home/vscode.nix
@ -2,181 +2,10 @@
|
|||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
programs.vscode = {
|
programs.vscode = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.vscode;
|
package = pkgs.vscode;
|
||||||
|
|
||||||
# Extensions (commonly used for development)
|
|
||||||
extensions = with pkgs.vscode-extensions; [
|
|
||||||
# Language support
|
|
||||||
ms-vscode.vscode-typescript-next
|
|
||||||
bradlc.vscode-tailwindcss
|
|
||||||
ms-python.python
|
|
||||||
ms-vscode.vscode-json
|
|
||||||
redhat.vscode-yaml
|
|
||||||
ms-vscode.vscode-css
|
|
||||||
|
|
||||||
# PHP
|
|
||||||
bmewburn.vscode-intelephense-client
|
|
||||||
xdebug.php-debug
|
|
||||||
|
|
||||||
# Git
|
|
||||||
eamodio.gitlens
|
|
||||||
mhutchie.git-graph
|
|
||||||
|
|
||||||
# Productivity
|
|
||||||
ms-vscode.vscode-eslint
|
|
||||||
esbenp.prettier-vscode
|
|
||||||
bradlc.vscode-tailwindcss
|
|
||||||
formulahendry.auto-rename-tag
|
|
||||||
ms-vscode.vscode-color-info
|
|
||||||
|
|
||||||
# Themes and appearance
|
|
||||||
pkief.material-icon-theme
|
|
||||||
zhuangtongfa.material-theme
|
|
||||||
|
|
||||||
# Docker
|
|
||||||
ms-azuretools.vscode-docker
|
|
||||||
|
|
||||||
# Remote development
|
|
||||||
ms-vscode-remote.remote-ssh
|
|
||||||
ms-vscode-remote.remote-containers
|
|
||||||
|
|
||||||
# Nix support
|
|
||||||
bbenoist.nix
|
|
||||||
jnoortheen.nix-ide
|
|
||||||
];
|
|
||||||
|
|
||||||
# User settings
|
|
||||||
userSettings = {
|
|
||||||
# Editor settings
|
|
||||||
"editor.fontSize" = 14;
|
|
||||||
"editor.fontFamily" = "'FiraCode Nerd Font', 'Droid Sans Mono', monospace";
|
|
||||||
"editor.fontLigatures" = true;
|
|
||||||
"editor.tabSize" = 2;
|
|
||||||
"editor.insertSpaces" = true;
|
|
||||||
"editor.wordWrap" = "on";
|
|
||||||
"editor.minimap.enabled" = false;
|
|
||||||
"editor.renderWhitespace" = "boundary";
|
|
||||||
"editor.rulers" = [80 120];
|
|
||||||
"editor.formatOnSave" = true;
|
|
||||||
"editor.codeActionsOnSave" = {
|
|
||||||
"source.fixAll.eslint" = "explicit";
|
|
||||||
"source.organizeImports" = "explicit";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Workbench
|
|
||||||
"workbench.colorTheme" = "Material Theme Darker High Contrast";
|
|
||||||
"workbench.iconTheme" = "material-icon-theme";
|
|
||||||
"workbench.startupEditor" = "newUntitledFile";
|
|
||||||
"workbench.sideBar.location" = "left";
|
|
||||||
|
|
||||||
# Files
|
|
||||||
"files.autoSave" = "onFocusChange";
|
|
||||||
"files.trimTrailingWhitespace" = true;
|
|
||||||
"files.insertFinalNewline" = true;
|
|
||||||
"files.exclude" = {
|
|
||||||
"**/node_modules" = true;
|
|
||||||
"**/vendor" = true;
|
|
||||||
"**/.git" = true;
|
|
||||||
"**/.svn" = true;
|
|
||||||
"**/.hg" = true;
|
|
||||||
"**/CVS" = true;
|
|
||||||
"**/.DS_Store" = true;
|
|
||||||
"**/Thumbs.db" = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Terminal
|
|
||||||
"terminal.integrated.fontFamily" = "'FiraCode Nerd Font'";
|
|
||||||
"terminal.integrated.fontSize" = 13;
|
|
||||||
"terminal.integrated.shell.linux" = "${pkgs.bash}/bin/bash";
|
|
||||||
|
|
||||||
# Git
|
|
||||||
"git.enableSmartCommit" = true;
|
|
||||||
"git.autofetch" = true;
|
|
||||||
"git.confirmSync" = false;
|
|
||||||
|
|
||||||
# Language-specific settings
|
|
||||||
"[javascript]" = {
|
|
||||||
"editor.defaultFormatter" = "esbenp.prettier-vscode";
|
|
||||||
};
|
|
||||||
"[typescript]" = {
|
|
||||||
"editor.defaultFormatter" = "esbenp.prettier-vscode";
|
|
||||||
};
|
|
||||||
"[json]" = {
|
|
||||||
"editor.defaultFormatter" = "esbenp.prettier-vscode";
|
|
||||||
};
|
|
||||||
"[html]" = {
|
|
||||||
"editor.defaultFormatter" = "esbenp.prettier-vscode";
|
|
||||||
};
|
|
||||||
"[css]" = {
|
|
||||||
"editor.defaultFormatter" = "esbenp.prettier-vscode";
|
|
||||||
};
|
|
||||||
"[php]" = {
|
|
||||||
"editor.defaultFormatter" = "bmewburn.vscode-intelephense-client";
|
|
||||||
};
|
|
||||||
"[nix]" = {
|
|
||||||
"editor.defaultFormatter" = "jnoortheen.nix-ide";
|
|
||||||
"editor.tabSize" = 2;
|
|
||||||
};
|
|
||||||
|
|
||||||
# PHP Intelephense
|
|
||||||
"intelephense.files.maxSize" = 5000000;
|
|
||||||
"intelephense.telemetry.enabled" = false;
|
|
||||||
|
|
||||||
# ESLint
|
|
||||||
"eslint.validate" = [
|
|
||||||
"javascript"
|
|
||||||
"javascriptreact"
|
|
||||||
"typescript"
|
|
||||||
"typescriptreact"
|
|
||||||
"vue"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Prettier
|
|
||||||
"prettier.singleQuote" = true;
|
|
||||||
"prettier.trailingComma" = "es5";
|
|
||||||
"prettier.tabWidth" = 2;
|
|
||||||
"prettier.semi" = true;
|
|
||||||
|
|
||||||
# Docker
|
|
||||||
"docker.showStartPage" = false;
|
|
||||||
|
|
||||||
# Telemetry
|
|
||||||
"telemetry.telemetryLevel" = "off";
|
|
||||||
"extensions.ignoreRecommendations" = true;
|
|
||||||
|
|
||||||
# Security
|
|
||||||
"security.workspace.trust.enabled" = false;
|
|
||||||
|
|
||||||
# Window
|
|
||||||
"window.titleBarStyle" = "custom";
|
|
||||||
"window.menuBarVisibility" = "toggle";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Keybindings
|
|
||||||
keybindings = [
|
|
||||||
{
|
|
||||||
key = "ctrl+shift+p";
|
|
||||||
command = "workbench.action.showCommands";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
key = "ctrl+p";
|
|
||||||
command = "workbench.action.quickOpen";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
key = "ctrl+shift+n";
|
|
||||||
command = "workbench.action.files.newUntitledFile";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
key = "ctrl+shift+f";
|
|
||||||
command = "workbench.action.findInFiles";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
key = "ctrl+`";
|
|
||||||
command = "workbench.action.terminal.toggleTerminal";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
14
system/de/gdm.nix
Normal file
14
system/de/gdm.nix
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
services.xserver = {
|
||||||
|
enable = true;
|
||||||
|
displayManager.gdm = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
17
system/de/hypr/hyprland.nix
Normal file
17
system/de/hypr/hyprland.nix
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
# Install hyprland and all the stuff it needs
|
||||||
|
programs.hyprland.enable = true;
|
||||||
|
programs.waybar.enable = true;
|
||||||
|
environment.sessionVariables.NIXOS_OZON_WL = "1";
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
hyprlock
|
||||||
|
];
|
||||||
|
}
|
15
system/de/sddm.nix
Normal file
15
system/de/sddm.nix
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
services.xserver = {
|
||||||
|
enable = true;
|
||||||
|
displayManager.sddm = {
|
||||||
|
enable = true;
|
||||||
|
wayland.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -3,9 +3,9 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
services.xserver.enable = true;
|
services.xserver.enable = true;
|
||||||
services.displayManager.gdm.enable = true;
|
|
||||||
services.desktopManager.gnome.enable = true;
|
services.desktopManager.gnome.enable = true;
|
||||||
|
|
||||||
# Configure keymap in X11
|
# Configure keymap in X11
|
||||||
|
25
system/nvidia.nix
Normal file
25
system/nvidia.nix
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
hardware.graphics = {
|
||||||
|
enable = true;
|
||||||
|
enable32Bit = true; # steam/wine
|
||||||
|
};
|
||||||
|
|
||||||
|
services.xserver.videoDrivers = [ "nvidia" ];
|
||||||
|
|
||||||
|
boot.blacklistedKernelModules = [ "nouveau" ];
|
||||||
|
|
||||||
|
hardware.nvidia = {
|
||||||
|
modesetting.enable = true;
|
||||||
|
nvidiaSettings = true;
|
||||||
|
open = true;
|
||||||
|
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||||
|
powerManagement.enable = false;
|
||||||
|
powerManagement.finegrained = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.kernelParams = [ "nvidia_drm.modeset=1" ];
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user