mirror of
https://github.com/XNM1/linux-nixos-hyprland-config-dotfiles.git
synced 2025-09-15 09:45:58 +03:00
moved to Hypr ecosystem
This commit is contained in:
12
README.md
12
README.md
@@ -85,10 +85,10 @@ The showcased images do not reflect the latest version of the system's appearanc
|
||||
| Recorder | Wf-recorder |
|
||||
| Color Picker | Hyprpicker |
|
||||
| Clipboard | Wl-clipboard + Cliphist + Clipboard-jh |
|
||||
| Idle | Swayidle |
|
||||
| Lock | Swaylock |
|
||||
| Idle | Hypridle |
|
||||
| Lock | Hyprlock |
|
||||
| Logout menu | Wlogout |
|
||||
| Wallpaper | Wpaperd |
|
||||
| Wallpaper | Hyprpaper |
|
||||
| Graphical Boot | Plymouth + Catppuccin-plymouth |
|
||||
| Display Manager | Greetd + Tuigreet |
|
||||
| Containerization | Podman |
|
||||
@@ -182,7 +182,7 @@ And many other useful utilities. The full list can be found in the system config
|
||||
| SUPER + Y | Launch `youtube-music` |
|
||||
| SUPER + SHIFT + D | Launch `discord` |
|
||||
| SUPER + SHIFT + T | Launch `telegram` |
|
||||
| SUPER + SHIFT + L | Launch `swaylock` |
|
||||
| SUPER + SHIFT + L | Launch `hyprlock` |
|
||||
| SUPER + SHIFT + S | Take screenshot |
|
||||
| SUPER + E | Launch `swappy` to edit last taken screenshot |
|
||||
| SUPER + R | Record screen area (MP4) |
|
||||
@@ -276,9 +276,9 @@ Here are some tips to enhance your Rust experience on this system:
|
||||
This repo contains a NixOS configuration file (`nixos/yubikey.nix`) enabling:
|
||||
|
||||
- Yubikey authentication with pam_u2f
|
||||
- Passwordless login in greetd, sudo, ssh, and swaylock
|
||||
- Passwordless login in greetd, sudo, ssh, and hyprlock
|
||||
|
||||
🚨 Personal Recommendation: While convenient, using a Yubikey for display managers (like greetd) and screen lockers (like swaylock) without additional two-factor or multi-factor authentication (2FA/MFA) has risks. If your Yubikey is lost or stolen, someone could gain full system access before you reset keys. Yubikeys excel at protecting against online attacks but are less secure against offline attacks.
|
||||
🚨 Personal Recommendation: While convenient, using a Yubikey for display managers (like greetd) and screen lockers (like hyprlock) without additional two-factor or multi-factor authentication (2FA/MFA) has risks. If your Yubikey is lost or stolen, someone could gain full system access before you reset keys. Yubikeys excel at protecting against online attacks but are less secure against offline attacks.
|
||||
|
||||
🛡️ For enhanced security and a passwordless experience:
|
||||
You can consider a YubiKey Bio Series device. These keys support FIDO2/WebAuthn and FIDO U2F and has built in fingerprint scanner for strong authentication. Please note, they do not offer Smart card, OpenPGP, or OTP functionality.
|
||||
|
@@ -1,10 +1,3 @@
|
||||
function autostart
|
||||
pypr & \
|
||||
wpaperd & \
|
||||
waybar & \
|
||||
poweralertd & \
|
||||
wl-paste --watch cliphist store & \
|
||||
avizo-service & \
|
||||
systemctl --user start psi-notify &\
|
||||
swayidle -w
|
||||
pypr & hyprpaper & waybar & poweralertd & wl-paste --watch cliphist store & avizo-service & systemctl --user start psi-notify & hypridle -w
|
||||
end
|
||||
|
@@ -24,7 +24,7 @@ separator = "│"
|
||||
|
||||
[editor.lsp]
|
||||
display-messages = true
|
||||
# display-inlay-hints = true
|
||||
display-inlay-hints = true
|
||||
|
||||
# [editor.file-picker]
|
||||
# max-depth = 10
|
||||
|
34
home/.config/hypr/hypridle.conf
Normal file
34
home/.config/hypr/hypridle.conf
Normal file
@@ -0,0 +1,34 @@
|
||||
general {
|
||||
lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
|
||||
before_sleep_cmd = loginctl lock-session # lock before suspend.
|
||||
after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 180 # 3min.
|
||||
on-timeout = brightnessctl -s set 15% # set monitor backlight to minimum, avoid 0 on OLED monitor.
|
||||
on-resume = brightnessctl -r # monitor backlight restore.
|
||||
}
|
||||
|
||||
# turn off keyboard backlight, comment out this section if you dont have a keyboard backlight.
|
||||
listener {
|
||||
timeout = 180 # 3min.
|
||||
on-timeout = brightnessctl -sd platform::kbd_backlight set 0 # turn off keyboard backlight.
|
||||
on-resume = brightnessctl -rd platform::kbd_backlight # turn on keyboard backlight.
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 300 # 5min
|
||||
on-timeout = loginctl lock-session # lock screen when timeout has passed
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 350 # 5.83min
|
||||
on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
|
||||
on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired.
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 420 # 7min
|
||||
on-timeout = systemctl suspend # suspend pc
|
||||
}
|
@@ -74,7 +74,7 @@ decoration {
|
||||
shadow_offset = 0, 0
|
||||
shadow_render_power = 3
|
||||
col.shadow = $teal
|
||||
col.shadow_inactive = $base;
|
||||
col.shadow_inactive = 0xff$baseAlpha;
|
||||
|
||||
active_opacity = 0.7
|
||||
inactive_opacity = 0.7
|
||||
@@ -220,7 +220,7 @@ bind = $mainMod, Y, exec, youtube-music
|
||||
bind = $mainMod, D, exec, rofi -show drun
|
||||
bind = $mainMod SHIFT, D, exec, firejail --apparmor discord
|
||||
bind = $mainMod, ESCAPE, exec, fish -c wlogout_uniqe
|
||||
bind = $mainMod SHIFT, L, exec, swaylock
|
||||
bind = $mainMod SHIFT, L, exec, hyprlock
|
||||
bind = $mainMod SHIFT, S, exec, fish -c screenshot_to_clipboard
|
||||
bind = $mainMod, E, exec, fish -c screenshot_edit
|
||||
bind = $mainMod SHIFT, R, exec, fish -c record_screen_gif
|
||||
|
83
home/.config/hypr/hyprlock.conf
Normal file
83
home/.config/hypr/hyprlock.conf
Normal file
@@ -0,0 +1,83 @@
|
||||
source = $HOME/.config/hypr/macchiato.conf
|
||||
|
||||
$accent = $teal
|
||||
$accentAlpha = $tealAlpha
|
||||
$font = JetBrains Mono Regular
|
||||
|
||||
# GENERAL
|
||||
general {
|
||||
disable_loading_bar = true
|
||||
hide_cursor = true
|
||||
}
|
||||
|
||||
# BACKGROUND
|
||||
background {
|
||||
monitor =
|
||||
path = ~/background
|
||||
blur_passes = 2
|
||||
color = $base
|
||||
}
|
||||
|
||||
# TIME
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:30000] echo "$(date +"%R")"
|
||||
color = $text
|
||||
font_size = 90
|
||||
font_family = $font
|
||||
position = -130, -100
|
||||
halign = right
|
||||
valign = top
|
||||
shadow_passes = 2
|
||||
}
|
||||
|
||||
# DATE
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:43200000] echo "$(date +"%A, %d %B %Y")"
|
||||
color = $text
|
||||
font_size = 25
|
||||
font_family = $font
|
||||
position = -130, -250
|
||||
halign = right
|
||||
valign = top
|
||||
shadow_passes = 2
|
||||
}
|
||||
|
||||
# USER AVATAR
|
||||
image {
|
||||
monitor =
|
||||
path = ~/.face
|
||||
size = 100
|
||||
border_color = $accent
|
||||
rounding = -1
|
||||
|
||||
position = 0, 75
|
||||
halign = center
|
||||
valign = center
|
||||
shadow_passes = 2
|
||||
}
|
||||
|
||||
# INPUT FIELD
|
||||
input-field {
|
||||
monitor =
|
||||
size = 300, 60
|
||||
outline_thickness = 4
|
||||
dots_size = 0.2
|
||||
dots_spacing = 0.2
|
||||
dots_center = true
|
||||
outer_color = $accent
|
||||
inner_color = $surface0
|
||||
font_color = $text
|
||||
fade_on_empty = false
|
||||
placeholder_text = <span foreground="##$textAlpha"><i> Logged in as </i><span foreground="##$accentAlpha">$USER</span></span>
|
||||
hide_input = false
|
||||
check_color = $accent
|
||||
fail_color = $red
|
||||
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i>
|
||||
capslock_color = $yellow
|
||||
position = 0, -35
|
||||
halign = center
|
||||
valign = center
|
||||
shadow_passes = 2
|
||||
}
|
5
home/.config/hypr/hyprpaper.conf
Normal file
5
home/.config/hypr/hyprpaper.conf
Normal file
@@ -0,0 +1,5 @@
|
||||
preload = ~/background
|
||||
wallpaper = ,~/background
|
||||
|
||||
ipc = off
|
||||
splash = false
|
@@ -1,29 +1,78 @@
|
||||
$rosewater = 0xfff4dbd6
|
||||
$flamingo = 0xfff0c6c6
|
||||
$pink = 0xfff5bde6
|
||||
$mauve = 0xffc6a0f6
|
||||
$red = 0xffed8796
|
||||
$maroon = 0xffee99a0
|
||||
$peach = 0xfff5a97f
|
||||
$green = 0xffa6da95
|
||||
$teal = 0xff8bd5ca
|
||||
$sky = 0xff91d7e3
|
||||
$sapphire = 0xff7dc4e4
|
||||
$blue = 0xff8aadf4
|
||||
$lavender = 0xffb7bdf8
|
||||
|
||||
$text = 0xffcad3f5
|
||||
$subtext1 = 0xffb8c0e0
|
||||
$subtext0 = 0xffa5adcb
|
||||
$rosewater = rgb(f4dbd6)
|
||||
$rosewaterAlpha = f4dbd6
|
||||
|
||||
$overlay2 = 0xff939ab7
|
||||
$overlay1 = 0xff8087a2
|
||||
$overlay0 = 0xff6e738d
|
||||
$flamingo = rgb(f0c6c6)
|
||||
$flamingoAlpha = f0c6c6
|
||||
|
||||
$surface2 = 0xff5b6078
|
||||
$surface1 = 0xff494d64
|
||||
$surface0 = 0xff363a4f
|
||||
$pink = rgb(f5bde6)
|
||||
$pinkAlpha = f5bde6
|
||||
|
||||
$base = 0xff24273a
|
||||
$mantle = 0xff1e2030
|
||||
$crust = 0xff181926
|
||||
$mauve = rgb(c6a0f6)
|
||||
$mauveAlpha = c6a0f6
|
||||
|
||||
$red = rgb(ed8796)
|
||||
$redAlpha = ed8796
|
||||
|
||||
$maroon = rgb(ee99a0)
|
||||
$maroonAlpha = ee99a0
|
||||
|
||||
$peach = rgb(f5a97f)
|
||||
$peachAlpha = f5a97f
|
||||
|
||||
$yellow = rgb(eed49f)
|
||||
$yellowAlpha = eed49f
|
||||
|
||||
$green = rgb(a6da95)
|
||||
$greenAlpha = a6da95
|
||||
|
||||
$teal = rgb(8bd5ca)
|
||||
$tealAlpha = 8bd5ca
|
||||
|
||||
$sky = rgb(91d7e3)
|
||||
$skyAlpha = 91d7e3
|
||||
|
||||
$sapphire = rgb(7dc4e4)
|
||||
$sapphireAlpha = 7dc4e4
|
||||
|
||||
$blue = rgb(8aadf4)
|
||||
$blueAlpha = 8aadf4
|
||||
|
||||
$lavender = rgb(b7bdf8)
|
||||
$lavenderAlpha = b7bdf8
|
||||
|
||||
$text = rgb(cad3f5)
|
||||
$textAlpha = cad3f5
|
||||
|
||||
$subtext1 = rgb(b8c0e0)
|
||||
$subtext1Alpha = b8c0e0
|
||||
|
||||
$subtext0 = rgb(a5adcb)
|
||||
$subtext0Alpha = a5adcb
|
||||
|
||||
$overlay2 = rgb(939ab7)
|
||||
$overlay2Alpha = 939ab7
|
||||
|
||||
$overlay1 = rgb(8087a2)
|
||||
$overlay1Alpha = 8087a2
|
||||
|
||||
$overlay0 = rgb(6e738d)
|
||||
$overlay0Alpha = 6e738d
|
||||
|
||||
$surface2 = rgb(5b6078)
|
||||
$surface2Alpha = 5b6078
|
||||
|
||||
$surface1 = rgb(494d64)
|
||||
$surface1Alpha = 494d64
|
||||
|
||||
$surface0 = rgb(363a4f)
|
||||
$surface0Alpha = 363a4f
|
||||
|
||||
$base = rgb(24273a)
|
||||
$baseAlpha = 24273a
|
||||
|
||||
$mantle = rgb(1e2030)
|
||||
$mantleAlpha = 1e2030
|
||||
|
||||
$crust = rgb(181926)
|
||||
$crustAlpha = 181926
|
||||
|
@@ -1,5 +0,0 @@
|
||||
timeout 180 'brightnessctl -s && brightnessctl s 15%' resume 'brightnessctl -r'
|
||||
timeout 300 'swaylock'
|
||||
timeout 350 'brightnessctl s 0%' resume 'brightnessctl -r'
|
||||
timeout 420 'systemctl suspend'
|
||||
before-sleep 'swaylock'
|
@@ -1,33 +0,0 @@
|
||||
daemonize
|
||||
indicator
|
||||
clock
|
||||
screenshots
|
||||
|
||||
effect-blur=11x11
|
||||
effect-compose=1100,10;/home/xnm/.config/swaylock/rebecca.png
|
||||
effect-compose=20,0;40%x100%;/home/xnm/.config/swaylock/lucy.png
|
||||
font=JetBrains Mono
|
||||
indicator-radius=80
|
||||
indicator-thickness=8
|
||||
timestr=%I:%M %p
|
||||
datestr=%F
|
||||
|
||||
inside-color=#181926
|
||||
ring-color=#8bd5ca
|
||||
key-hl-color=#a6da95
|
||||
text-color=#cad3f5
|
||||
layout-text-color=#cad3f5
|
||||
layout-bg-color=#181926
|
||||
text-caps-lock-color=#cad3f5
|
||||
|
||||
inside-clear-color=#f4dbd6
|
||||
ring-clear-color=#f0c6c6
|
||||
text-clear-color=#1e2030
|
||||
|
||||
inside-ver-color=#91d7e3
|
||||
ring-ver-color=#7dc4e4
|
||||
text-ver-color=#1e2030
|
||||
|
||||
inside-wrong-color=#ee99a0
|
||||
ring-wrong-color=#ed8796
|
||||
text-wrong-color=#1e2030
|
Binary file not shown.
Before Width: | Height: | Size: 1.2 MiB |
Binary file not shown.
Before Width: | Height: | Size: 1.0 MiB |
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"label" : "lock",
|
||||
"action" : "swaylock",
|
||||
"action" : "hyprlock",
|
||||
"text" : "Lock",
|
||||
"keybind" : "l"
|
||||
}
|
||||
|
@@ -1,4 +0,0 @@
|
||||
[default]
|
||||
path = "~/Pictures/Wallpapers/"
|
||||
duration = "30m"
|
||||
# apply-shadow = true
|
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 1.7 MiB |
@@ -26,7 +26,7 @@
|
||||
./nix-settings.nix
|
||||
./nixpkgs.nix
|
||||
./gc.nix
|
||||
./auto-upgrade.nix
|
||||
# ./auto-upgrade.nix
|
||||
./linux-kernel.nix
|
||||
./screen.nix
|
||||
./display-manager.nix
|
||||
|
@@ -10,6 +10,9 @@
|
||||
pyprland
|
||||
hyprpicker
|
||||
hyprcursor
|
||||
hyprlock
|
||||
hypridle
|
||||
hyprpaper
|
||||
|
||||
wezterm
|
||||
cool-retro-term
|
||||
|
@@ -24,7 +24,7 @@
|
||||
];
|
||||
};
|
||||
services.fail2ban.enable = true;
|
||||
security.pam.services.swaylock = {};
|
||||
security.pam.services.hyprlock = {};
|
||||
# security.polkit.enable = true;
|
||||
programs.browserpass.enable = true;
|
||||
services.clamav = {
|
||||
|
@@ -30,8 +30,6 @@
|
||||
qt6.qtwayland
|
||||
psi-notify
|
||||
poweralertd
|
||||
swaylock-effects
|
||||
swayidle
|
||||
playerctl
|
||||
psmisc
|
||||
grim
|
||||
@@ -52,8 +50,6 @@
|
||||
dunst
|
||||
avizo
|
||||
wlogout
|
||||
wpaperd
|
||||
# swww
|
||||
gifsicle
|
||||
];
|
||||
}
|
||||
|
@@ -7,5 +7,6 @@
|
||||
awscli2
|
||||
cargo-lambda
|
||||
gnumake
|
||||
cmake
|
||||
];
|
||||
}
|
||||
|
@@ -15,6 +15,6 @@
|
||||
security.pam.services = {
|
||||
greetd.u2fAuth = true;
|
||||
sudo.u2fAuth = true;
|
||||
swaylock.u2fAuth = true;
|
||||
hyprlock.u2fAuth = true;
|
||||
};
|
||||
}
|
||||
|
Reference in New Issue
Block a user