1
0
mirror of https://github.com/XNM1/linux-nixos-hyprland-config-dotfiles.git synced 2025-09-15 09:45:58 +03:00

feat: update hyprland, helix, bootloader and other configs

Changelog:
- autostart: remove hypridle from autostart script
- helix: add copilot LSP for Rust, JS/TS variants
- hyprland:
  - Refactor window rules with regex patterns
  - Update brightness controls for intel_backlight
  - Adjust pyprland scratchpad configurations
- bootloader:
  - Add i915 kernel modules
  - Disable initrd verbose logging
- greetd: update tuigreet command to use uwsm
- hyprland: enable hyprlock, hypridle services
- linux-kernel: add security hardening params
- ollama: add new LLM models (gemma3, deepcoder)
- utils: add sqlx-cli and kitty
- kitty: add config
- virtualisation:
  - Add lima, nerdctl
- vpn:
  - Enable mullvad VPN
  - Add mullvad and tor browsers
- stylus-themes: update to latest
This commit is contained in:
xnm
2025-04-21 18:52:02 +03:00
parent 1a4f6d28c8
commit 78d6258bfe
15 changed files with 2840 additions and 104 deletions

View File

@@ -1,3 +1,3 @@
function autostart
pypr & hyprpaper & waybar & poweralertd & wl-paste --type text --watch cliphist store & wl-paste --type image --watch cliphist store & wl-clip-persist --clipboard regular & avizo-service & systemctl --user start psi-notify & hypridle
pypr & hyprpaper & waybar & poweralertd -s & wl-paste --type text --watch cliphist store & wl-paste --type image --watch cliphist store & wl-clip-persist --clipboard regular & avizo-service & systemctl --user start psi-notify
end

View File

@@ -22,7 +22,7 @@ args = ["--stdio"]
[[language]]
name = "rust"
language-servers = [ "rust-analyzer" ]
language-servers = [ "rust-analyzer", "copilot" ]
[language-server.rust-analyzer.config]
checkOnSave = { command = "clippy" }
@@ -35,21 +35,25 @@ language-servers = [ "emmet-lsp", "vscode-html-language-server" ]
name = "javascript"
auto-format = true
indent = { tab-width = 4, unit = " " }
language-servers = [ "typescript-language-server", "copilot" ]
[[language]]
name = "jsx"
auto-format = true
indent = { tab-width = 4, unit = " " }
language-servers = [ "typescript-language-server", "copilot" ]
[[language]]
name = "typescript"
auto-format = true
indent = { tab-width = 4, unit = " " }
language-servers = [ "typescript-language-server", "copilot" ]
[[language]]
name = "tsx"
auto-format = true
indent = { tab-width = 4, unit = " " }
language-servers = [ "typescript-language-server", "copilot" ]
[[language]]
name = "config"

View File

@@ -164,24 +164,31 @@ device {
# Example windowrule v1
# windowrule = float, ^(kitty)$
windowrule = opaque, brave
windowrule = float, imv
windowrule = opaque, imv
windowrule = float, title:(Media viewer)
windowrule = opaque, title:(Media viewer)
windowrule = opaque, title:(YouTube Music)
windowrule = opaque, title:(qutebrowser)
windowrule = opaque, title:(Slack)
windowrule = opaque, telegram
windowrule = float, mpv
windowrule = opaque, mpv
windowrule = opaque, swappy
windowrule = center 1, swappy
windowrule = stayfocused, swappy
# windowrule = size 50% 50%, mpv
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
windowrule = float, title:.*mpv$
windowrule = opaque, title:.*mpv$
windowrule = size 50% 50%, title:.*mpv$
windowrule = float, content:video
windowrule = opaque, content:video
windowrule = size 50% 50%, content:video
windowrule = float, title:.*imv.*
windowrule = opaque, title:.*imv.*
windowrule = size 70% 70%, title:.*imv.*
windowrule = float, content:photo
windowrule = opaque, content:photo
windowrule = size 70% 70%, content:photo
windowrule = float, title:.*\.pdf$
windowrule = opaque, title:.*\.pdf$
windowrule = maximize, title:.*\.pdf$
windowrule = opaque, title:.*YouTube - Brave$
windowrule = opaque, title:swappy
windowrule = center 1, title:swappy
windowrule = stayfocused, title:swappy
windowrule = opaque, title:^TelegramDesktop$
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER
@@ -236,11 +243,11 @@ submap=reset
# Scrachpads
bind = $mainMod CTRL, T, exec, pypr toggle term
$dropterm = ^(wezterm_dropdown)$
$dropterm = title:^wezterm_dropdown$
windowrule = float, $dropterm
bind = $mainMod CTRL, V, exec, pypr toggle volume
$volume_sidemenu = ^(pavucontrol)$
$volume_sidemenu = title:^Volume Control$
windowrule = float, $volume_sidemenu
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
@@ -294,8 +301,8 @@ bind = , XF86AudioLowerVolume, exec, volumectl -u down
bind = , XF86AudioMute, exec, volumectl toggle-mute
bind = , XF86AudioMicMute, exec, volumectl -m toggle-mute
bind = , XF86MonBrightnessUp, exec, lightctl up
bind = , XF86MonBrightnessDown, exec, lightctl down
bind = , XF86MonBrightnessUp, exec, lightctl -D intel_backlight up
bind = , XF86MonBrightnessDown, exec, lightctl -D intel_backlight down
# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l

View File

@@ -8,7 +8,8 @@ plugins = [
]
[scratchpads.term]
command = "wezterm start --always-new-process --class wezterm_dropdown"
command = "wezterm start --always-new-process"
class = "wezterm_dropdown"
animation = "fromTop"
unfocus = "hide"
excludes = "*"
@@ -16,7 +17,7 @@ lazy = true
multi = false
[scratchpads.volume]
command = "pavucontrol --class volume_sidemenu"
command = "pavucontrol"
animation = "fromLeft"
class = "volume_sidemenu"
size = "40% 70%"

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -6,7 +6,10 @@
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.timeout = 2;
boot.initrd.enable = true;
boot.initrd.verbose = false;
boot.initrd.systemd.enable = true;
boot.initrd.availableKernelModules = [ "i915" ];
boot.initrd.kernelModules = [ "i915" ];
boot.consoleLogLevel = 3;
boot.plymouth = {
enable = true;

View File

@@ -6,12 +6,21 @@
enable = true;
settings = {
default_session = {
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --time-format '%I:%M %p | %a %h | %F' --cmd Hyprland";
command = "${pkgs.greetd.tuigreet}/bin/tuigreet \
--time --time-format '%I:%M %p | %a %h | %F' \
--cmd 'uwsm start hyprland'";
user = "greeter";
};
};
};
users.users.greeter = {
isNormalUser = false;
description = "greetd greeter user";
extraGroups = [ "video" "audio" ];
linger = true;
};
environment.systemPackages = with pkgs; [
greetd.tuigreet
];

View File

@@ -50,7 +50,7 @@
./mosh.nix
./firewall.nix
./dns.nix
# ./vpn.nix
./vpn.nix
./users.nix
./virtualisation.nix
./programming-languages.nix

View File

@@ -2,10 +2,16 @@
{
# Enable Hyprland
programs.hyprland.enable = true;
programs.hyprland = {
enable = true;
withUWSM = true;
};
environment.sessionVariables.NIXOS_OZONE_WL = "1";
environment.sessionVariables.WLR_NO_HARDWARE_CURSORS = "1";
programs.hyprlock.enable = true;
services.hypridle.enable = true;
environment.systemPackages = with pkgs; [
pyprland
hyprpicker
@@ -15,6 +21,7 @@
hyprpaper
inputs.wezterm.packages.${pkgs.system}.default
kitty
cool-retro-term
starship

View File

@@ -2,10 +2,18 @@
{
# Linux Kernel
security.forcePageTableIsolation = true;
security.lockKernelModules = true;
# security.protectKernelImage = true;
security.unprivilegedUsernsClone = true;
security.virtualisation.flushL1DataCache = "cond";
boot.kernelPackages = pkgs.linuxKernel.packages.linux_zen;
boot.kernelParams = [
"splash"
"quiet"
"splash"
"loglevel=3"
"rd.udev.log_priority=3"
"systemd.show_status=auto"
"fbcon=nodefer"
"vt.global_cursor_default=0"
"kernel.modules_disabled=1"

View File

@@ -4,7 +4,7 @@
services.ollama = {
enable = true;
loadModels = [ "llama3.2:3b" "llama3.2-vision:11b" "phi4:14b" "deepseek-r1:7b" "dolphin3:8b" "smallthinker:3b" "nomic-embed-text" ];
loadModels = [ "llama3.2:3b" "llama3.2-vision:11b" "phi4:14b" "deepseek-r1:7b" "dolphin3:8b" "smallthinker:3b" "nomic-embed-text" "gemma3:12b" "gemma3:27b" "deepcoder:14b" ];
acceleration = "cuda";
};

View File

@@ -14,5 +14,6 @@
surrealdb-migrations
surrealist
trunk
sqlx-cli
];
}

View File

@@ -1,6 +1,12 @@
{ pkgs, ... }:
{
# Enable Kasm
# services.kasmweb = {
# enable = true;
# listenPort = 9999;
# };
# Enable Containerd
# virtualisation.containerd.enable = true;
@@ -15,6 +21,7 @@
# };
# users.extraGroups.docker.members = [ "xnm" ];
# Enable Podman
virtualisation.podman = {
enable = true;
@@ -31,7 +38,7 @@
environment.systemPackages = with pkgs; [
nvidia-docker
# nerdctl
nerdctl
# firecracker
# firectl
@@ -39,6 +46,7 @@
distrobox
qemu
lima
podman-compose
podman-tui

View File

@@ -7,5 +7,8 @@
environment.systemPackages = with pkgs; [
mullvad-closest
mullvad-browser
tor-browser
];
}