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:
@@ -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
|
||||
|
@@ -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"
|
||||
|
@@ -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
|
||||
|
@@ -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%"
|
||||
|
2683
home/.config/kitty/kitty.conf
Normal file
2683
home/.config/kitty/kitty.conf
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -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;
|
||||
|
@@ -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";
|
||||
user = "greeter";
|
||||
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
|
||||
];
|
||||
|
@@ -50,7 +50,7 @@
|
||||
./mosh.nix
|
||||
./firewall.nix
|
||||
./dns.nix
|
||||
# ./vpn.nix
|
||||
./vpn.nix
|
||||
./users.nix
|
||||
./virtualisation.nix
|
||||
./programming-languages.nix
|
||||
|
@@ -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
|
||||
|
@@ -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"
|
||||
|
@@ -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";
|
||||
};
|
||||
|
||||
|
@@ -14,5 +14,6 @@
|
||||
surrealdb-migrations
|
||||
surrealist
|
||||
trunk
|
||||
sqlx-cli
|
||||
];
|
||||
}
|
||||
|
@@ -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
|
||||
|
@@ -7,5 +7,8 @@
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
mullvad-closest
|
||||
|
||||
mullvad-browser
|
||||
tor-browser
|
||||
];
|
||||
}
|
||||
|
Reference in New Issue
Block a user