pain and suffering
This commit is contained in:
commit
510db0f1d4
42 changed files with 2150 additions and 0 deletions
0
README.md
Normal file
0
README.md
Normal file
35
config/hypr/hypridle.conf
Normal file
35
config/hypr/hypridle.conf
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
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 = 150 # 2.5min.
|
||||
on-timeout = brightnessctl -s set 10 # 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 = 150 # 2.5min.
|
||||
on-timeout = brightnessctl -sd rgb:kbd_backlight set 0 # turn off keyboard backlight.
|
||||
on-resume = brightnessctl -rd rgb:kbd_backlight # turn on keyboard backlight.
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 300 # 5min
|
||||
on-timeout = loginctl lock-session # lock screen when timeout has passed
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 330 # 5.5min
|
||||
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 = 1800 # 30min
|
||||
on-timeout = systemctl suspend # suspend pc
|
||||
}
|
||||
354
config/hypr/hyprland.conf
Normal file
354
config/hypr/hyprland.conf
Normal file
|
|
@ -0,0 +1,354 @@
|
|||
# #######################################################################################
|
||||
# AUTOGENERATED HYPR CONFIG.
|
||||
# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT,
|
||||
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
|
||||
# #######################################################################################
|
||||
|
||||
#
|
||||
# Please note not all available settings / options are set here.
|
||||
# For a full list, see the wiki
|
||||
#
|
||||
|
||||
# autogenerated = 1 # remove this line to remove the warning
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||
monitor = eDP-1, 1920x1080@60.02000, 0x0, 1.00
|
||||
monitor = Virtual-1, 1920x1080,0x0, 1
|
||||
#monitor = DP-1, 1920x1080@60, 0x0, 1
|
||||
#monitor = HDMI-A-1, 1920x1080@60.02000, 0x0, 1
|
||||
#monitor
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
||||
|
||||
# Execute your favorite apps at launch
|
||||
#exec-once = garuda-welcome
|
||||
|
||||
# Add networkmanager applet to tray in waybar
|
||||
exec-once = nm-applet --indicator
|
||||
|
||||
# Set keyboard layout
|
||||
#exec-once = .local/bin/garuda-locale.sh
|
||||
exec-once = NetworkManager
|
||||
# Set monitor values. For own values, please comment with #
|
||||
#exec-once = .local/bin/mon.sh
|
||||
exec-once = swww-daemon
|
||||
# Source a file (multi-file configs)
|
||||
# source = ~/.config/hypr/myColors.conf
|
||||
|
||||
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
|
||||
input {
|
||||
kb_layout = us
|
||||
kb_variant =
|
||||
kb_model =
|
||||
kb_options =
|
||||
kb_rules =
|
||||
numlock_by_default= true
|
||||
follow_mouse = 1
|
||||
|
||||
touchpad {
|
||||
#natural_scroll = true
|
||||
tap-to-click = true
|
||||
disable_while_typing = true
|
||||
}
|
||||
|
||||
|
||||
sensitivity = -0.5 # -1.0 - 1.0, 0 means no modification.
|
||||
}
|
||||
|
||||
general {
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
|
||||
gaps_in = 5
|
||||
gaps_out = 10
|
||||
border_size = 2
|
||||
col.active_border = rgb(D3869B)
|
||||
|
||||
|
||||
col.inactive_border = rgba(595959aa)
|
||||
|
||||
layout = dwindle
|
||||
}
|
||||
|
||||
decoration {
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
|
||||
rounding = 10
|
||||
blur {
|
||||
enabled = true
|
||||
size = 5
|
||||
passes = 1
|
||||
}
|
||||
|
||||
# drop_shadow = true
|
||||
# shadow_range = 4
|
||||
# shadow_render_power = 3
|
||||
# col.shadow = rgba(1a1a1aee)
|
||||
}
|
||||
|
||||
animations {
|
||||
enabled = true
|
||||
|
||||
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||
|
||||
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
||||
|
||||
animation = windows, 1, 7, myBezier
|
||||
animation = windowsOut, 1, 2, default, popin 80%
|
||||
animation = border, 1, 2, default
|
||||
animation = fade, 1, 2, default
|
||||
animation = workspaces, 1, 2, default
|
||||
}
|
||||
|
||||
dwindle {
|
||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||
pseudotile = true # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
preserve_split = true # you probably want this
|
||||
}
|
||||
|
||||
master {
|
||||
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||
# new_is_master = true
|
||||
}
|
||||
|
||||
gestures {
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
|
||||
}
|
||||
misc {
|
||||
disable_hyprland_logo = true
|
||||
}
|
||||
# Example per-device config
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||
# executing for more
|
||||
|
||||
#device:epic mouse V1 {
|
||||
# sensitivity = -0.5
|
||||
#}
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||
# Example windowrule v1
|
||||
#windowrule = float, ^(kitty)$
|
||||
#windowrule = float, ^(garuda-assistant)$
|
||||
#windowrule = float, ^(garuda-boot-options)$
|
||||
#windowrule = float, ^(garuda-boot-repair)$
|
||||
#windowrule = float, ^(garuda-gamer)$
|
||||
#windowrule = float, ^(garuda-network-assistant)$
|
||||
#windowrule = float, ^(garuda-settings-manager)$
|
||||
#windowrule = float, ^(garuda-welcome)$
|
||||
|
||||
# Example windowrule v2
|
||||
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
||||
$mainMod = ALT
|
||||
|
||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||
bind = $mainMod SHIFT, R, exec, hyprctl reload
|
||||
#bind = $mainMod, 36, exec, footclient
|
||||
bind = $mainMod, E, exec, kitty
|
||||
bind = $mainMod, C, killactive,
|
||||
bind = $mainMod, M, exec, nwgbar
|
||||
bind = $mainMod, G, exec, /home/tulg/.config/looking-glass-client -F -f /dev/kvmfr0 -m 58
|
||||
bind = $mainMod SHIFT, O, togglefloating,
|
||||
bind = $mainMod, D, exec, wofi --show drun --allow-images -W 300 -H 500 -l 4
|
||||
bind = $mainMod SHIFT, D, exec, nwg-drawer -mb 10 -mr 10 -ml 10 -mt 10
|
||||
bind = $mainMod, P, pseudo, # dwindle
|
||||
bind = $mainMod SHIFT, P, togglesplit, # dwindle
|
||||
|
||||
# Mainmod + Function keys
|
||||
bind = $mainMod, F1, exec, firedragon
|
||||
bind = $mainMod, F2, exec, thunderbird
|
||||
bind = $mainMod, F3, exec, thunar
|
||||
bind = $mainMod, F4, exec, geany
|
||||
bind = $mainMod, F5, exec, github-desktop
|
||||
bind = $mainMod, F6, exec, gparted
|
||||
bind = $mainMod, F7, exec, inkscape
|
||||
bind = $mainMod, F8, exec, blender
|
||||
bind = $mainMod, F9, exec, meld
|
||||
bind = $mainMod, F10, exec, joplin-desktop
|
||||
bind = $mainMod, F11, exec, snapper-tools
|
||||
bind = $mainMod, F12, exec, galculator
|
||||
|
||||
# Move focus with mainMod + arrow keys
|
||||
bind = $mainMod, left, movefocus, l
|
||||
bind = $mainMod, H, movefocus, l
|
||||
bind = $mainMod, right, movefocus, r
|
||||
bind = $mainMod, L, movefocus, r
|
||||
bind = $mainMod, up, movefocus, u
|
||||
bind = $mainMod, K, movefocus, u
|
||||
bind = $mainMod, down, movefocus, d
|
||||
bind = $mainMod, J, movefocus, d
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
bind = $mainMod, 1, workspace, 1
|
||||
bind = $mainMod, 2, workspace, 2
|
||||
bind = $mainMod, 3, workspace, 3
|
||||
bind = $mainMod, 4, workspace, 4
|
||||
bind = $mainMod, 5, workspace, 5
|
||||
bind = $mainMod, 6, workspace, 6
|
||||
bind = $mainMod, 7, workspace, 7
|
||||
bind = $mainMod, 8, workspace, 8
|
||||
bind = $mainMod, 9, workspace, 9
|
||||
bind = $mainMod, 0, workspace, 10
|
||||
|
||||
# Move to workspace with focused container with ALT + SHIFT + [0-9]
|
||||
bind = ALT SHIFT, 1, movetoworkspace, 1
|
||||
bind = ALT SHIFT, 2, movetoworkspace, 2
|
||||
bind = ALT SHIFT, 3, movetoworkspace, 3
|
||||
bind = ALT SHIFT, 4, movetoworkspace, 4
|
||||
bind = ALT SHIFT, 5, movetoworkspace, 5
|
||||
bind = ALT SHIFT, 6, movetoworkspace, 6
|
||||
bind = ALT SHIFT, 7, movetoworkspace, 7
|
||||
bind = ALT SHIFT, 8, movetoworkspace, 8
|
||||
bind = ALT SHIFT, 9, movetoworkspace, 9
|
||||
bind = ALT SHIFT, 0, movetoworkspace, 10
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1
|
||||
bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2
|
||||
bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3
|
||||
bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4
|
||||
bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5
|
||||
bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6
|
||||
bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7
|
||||
bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8
|
||||
bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9
|
||||
bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
bind = $mainMod, mouse_down, workspace, e+1
|
||||
bind = $mainMod, mouse_up, workspace, e-1
|
||||
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
# background
|
||||
#exec-once = wpaperd
|
||||
|
||||
# status bar
|
||||
exec-once = waybar
|
||||
layerrule = blur , waybar
|
||||
layerrule = ignorezero , waybar
|
||||
|
||||
# set volume (laptops only and may or may not work on PCs)
|
||||
bind = ,122, exec, pactl set-sink-volume @DEFAULT_SINK@ -5%
|
||||
bind = ,123, exec, pactl set-sink-volume @DEFAULT_SINK@ +5%
|
||||
bind = ,121, exec, pactl set-sink-volume @DEFAULT_SINK@ 0%
|
||||
# other bindings
|
||||
#bind = $mainMod, E, exec, kitty
|
||||
bind = $mainMod, F, fullscreen
|
||||
bind = $mainMod, Q, exec, kitty lf
|
||||
bind = ,232,exec,brightnessctl -c backlight set 5%-
|
||||
bind = ,233,exec,brightnessctl -c backlight set +5%
|
||||
#bind = $mainMod SHIFT,C, exec, killall -9 wpaperd && wpaperd
|
||||
|
||||
# Screenshots:
|
||||
#
|
||||
# Change to swappy https://github.com/jtheoof/swappy
|
||||
# Old functions only commented out to make it easier for the user to change if necessary.
|
||||
|
||||
# Snip a selection and pipe to swappy
|
||||
bind = ,Print, exec, grim -g "$(slurp)" - | swappy -f -
|
||||
# Screenshot a window and pipe to swappy
|
||||
bind = CTRL, Print, exec, .config/hypr/scripts/screenshot_window.sh
|
||||
# Screenshot the current display and pipe to swappy
|
||||
bind = SHIFT, Print, exec, .config/hypr/scripts/screenshot_display.sh
|
||||
|
||||
# https://github.com/hyprwm/contrib/blob/main/grimblast/grimblast.1.scd
|
||||
# Print: All outputs
|
||||
# SHIFT+Print: Select area
|
||||
# $mainMod+Print: Current window
|
||||
# $mainMod+Shfit+Print: Current output
|
||||
#
|
||||
# bind = ,Print, exec, grimblast save screen && notify-send Screenshot captured
|
||||
# bind = SHIFT, Print, exec, grimblast save area && notify-send Selected\ area captured
|
||||
# bind = $mainMod, Print, exec, grimblast save active && notify-send Active\ window captured
|
||||
# bind = $mainMod SHIFT, Print, exec, grimblast output active && notify-send Output captured
|
||||
|
||||
# for resizing window
|
||||
# will switch to a submap called resize
|
||||
bind=$mainMod,R,submap,resize
|
||||
|
||||
# will start a submap called "resize"
|
||||
submap=resize
|
||||
|
||||
# sets repeatable binds for resizing the active window
|
||||
binde=,right,resizeactive,50 0
|
||||
binde=,L,resizeactive,50 0
|
||||
binde=,left,resizeactive,-50 0
|
||||
binde=,H,resizeactive,-50 0
|
||||
binde=,up,resizeactive,0 -50
|
||||
binde=,K,resizeactive,0 -50
|
||||
binde=,down,resizeactive,0 50
|
||||
binde=,J,resizeactive,0 50
|
||||
|
||||
# use reset to go back to the global submap
|
||||
bind=,escape,submap,reset
|
||||
|
||||
# will reset the submap, meaning end the current one and return to the global one
|
||||
submap=reset
|
||||
|
||||
# to move window
|
||||
bind = $mainMod SHIFT,up, movewindow, u
|
||||
bind = $mainMod SHIFT,K, movewindow, u
|
||||
bind = $mainMod SHIFT,down, movewindow, d
|
||||
bind = $mainMod SHIFT,J, movewindow, d
|
||||
bind = $mainMod SHIFT,left, movewindow, l
|
||||
bind = $mainMod SHIFT,H, movewindow, l
|
||||
bind = $mainMod SHIFT,right, movewindow, r
|
||||
bind = $mainMod SHIFT,L, movewindow, r
|
||||
|
||||
# other blurings
|
||||
blurls = wofi
|
||||
blurls = thunar
|
||||
blurls = gedit
|
||||
blurls = gtk-layer-shell # for nwg-drawer
|
||||
blurls = catfish
|
||||
# window rules
|
||||
#windowrule = opacity 0.85 override 0.85 override,^(thunar)$
|
||||
#windowrule = opacity 0.85 override 0.85 override,^(gedit)$
|
||||
#windowrule = opacity 0.85 override 0.85 override,^(catfish)$
|
||||
#windowrule = stayfocused, ^(wofi)$
|
||||
|
||||
# window rules with evaluation
|
||||
windowrulev2 = opacity 0.85 0.85,floating:1
|
||||
|
||||
exec-once = mako
|
||||
exec-once =/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||
exec-once = foot --server
|
||||
# experimental(might work might won't)
|
||||
|
||||
# pre executions (under development)
|
||||
#exec-once=exec xrdb -load ~/.Xresources
|
||||
|
||||
# Clipboard Manager
|
||||
exec-once = wl-paste --type text --watch cliphist store #Stores only text data
|
||||
exec-once = wl-paste --type image --watch cliphist store #Stores only image data
|
||||
bind = $mainMod, V, exec, cliphist list | wofi --dmenu | cliphist decode | wl-copy
|
||||
|
||||
# video play paues bindings
|
||||
bind=,172,exec,playerctl play-pause
|
||||
bind=,171,exec,playerctl next
|
||||
bind=,173,exec,playerctl previous
|
||||
|
||||
# Use gtk-settings
|
||||
exec-once = apply-gsettings
|
||||
exec-once = gsettings set org.gnome.desktop.interface cursor-theme BreezeX-RosePine-Linux
|
||||
exec-once = gsettings set org.gnome.desktop.interface cursor-size 28
|
||||
|
||||
env = HYPRCURSOR_THEME,rose-pine-hyprcursor
|
||||
env = HYPRCURSOR_SIZE,28
|
||||
|
||||
|
||||
|
||||
# Performance Tweaks (For less power consumption without sacrificing performance)
|
||||
# See : https://wiki.hyprland.org/Configuring/Performance/
|
||||
misc:vfr = true
|
||||
|
||||
# enable G-Hyprland
|
||||
bind = $mainMod SHIFT, G, exec, footclient -e ~/.local/bin/bear/implement_gum.sh enable
|
||||
# Install Garuda Hyprland
|
||||
bind = $mainMod, I, exec, .local/bin/calamares.sh
|
||||
|
||||
# Let the user customize this hyprstart script by overriding stuff in $hyprstart
|
||||
exec-once = .config/hypr/exec-hyprland
|
||||
85
config/hypr/hyprlock.conf
Normal file
85
config/hypr/hyprlock.conf
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
# background
|
||||
background {
|
||||
monitor =
|
||||
#path = screenshot
|
||||
path = /usr/share/wallpapers/garuda-wallpapers/Garuda-TilliDie-cube-105.png
|
||||
color = $background
|
||||
blur_passes = 2
|
||||
contrast = 1
|
||||
brightness = 0.5
|
||||
vibrancy = 0.2
|
||||
vibrancy_darkness = 0.2
|
||||
}
|
||||
|
||||
# general
|
||||
general {
|
||||
no_fade_in = true
|
||||
no_fade_out = true
|
||||
hide_cursor = false
|
||||
grace = 0
|
||||
disable_loading_bar = false
|
||||
}
|
||||
# animations
|
||||
animations {
|
||||
enabled = true
|
||||
}
|
||||
|
||||
# input field
|
||||
input-field {
|
||||
monitor =
|
||||
size = 250, 60
|
||||
outline_thickness = 2
|
||||
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
|
||||
dots_spacing = 0.35 # Scale of dots' absolute size, 0.0 - 1.0
|
||||
dots_center = true
|
||||
outer_color = rgba(236, 240, 15, 1)
|
||||
inner_color = rgba(240 , 204, 14, 1)
|
||||
font_color = $foreground
|
||||
fade_on_empty = false
|
||||
rounding = -1
|
||||
check_color = rgb(204, 136, 34)
|
||||
placeholder_text = <i><span foreground="##000000">Input Password...</span></i>
|
||||
hide_input = false
|
||||
position = 0, -200
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# date
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "$(date +"%A, %B %d")"
|
||||
color = rgba(242, 243, 244, 0.75)
|
||||
font_size = 22
|
||||
font_family = JetBrains Mono
|
||||
position = 0, 300
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# time
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "$(date +"%-I:%M")"
|
||||
color = rgba(242, 243, 244, 0.75)
|
||||
font_size = 95
|
||||
font_family = JetBrains Mono Extrabold
|
||||
position = 0, 200
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
|
||||
# things that can be played by user
|
||||
|
||||
Profile Picture
|
||||
image {
|
||||
monitor =
|
||||
path = /usr/share/logos/Hyprland_logo.png
|
||||
size = 200
|
||||
border_size = 2
|
||||
border_color = $foreground
|
||||
position = 0, 0
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
19
config/hypr/hyprstart
Executable file
19
config/hypr/hyprstart
Executable file
|
|
@ -0,0 +1,19 @@
|
|||
#!/bin/sh
|
||||
cd ~
|
||||
# user preferred settings
|
||||
|
||||
#cursor size
|
||||
export XCURSOR_SIZE=24
|
||||
|
||||
# text editor
|
||||
export MICRO_TRUECOLOR=1
|
||||
export EDITOR=/usr/bin/micro
|
||||
|
||||
#browser
|
||||
export BROWSER=firefox
|
||||
#terminal
|
||||
export TERM=kitty
|
||||
#mail
|
||||
export MAIL=thunderbird
|
||||
|
||||
# check /usr/local/bin/hyprstart
|
||||
0
config/hypr/monitors.conf
Normal file
0
config/hypr/monitors.conf
Normal file
11
config/hypr/scripts/idle_inhibitor.sh
Executable file
11
config/hypr/scripts/idle_inhibitor.sh
Executable file
|
|
@ -0,0 +1,11 @@
|
|||
#!/bin/bash
|
||||
|
||||
a=$(pidof hypridle)
|
||||
if [[ $a ]]
|
||||
then
|
||||
killall -9 hypridle
|
||||
notify-send "idle inhibitor activated"
|
||||
else
|
||||
notify-send "idle inhibitor deactivated"
|
||||
hypridle &> /dev/null
|
||||
fi
|
||||
29
config/hypr/scripts/lock.sh
Normal file
29
config/hypr/scripts/lock.sh
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
#!/bin/sh
|
||||
swaylock \
|
||||
--screenshots \
|
||||
--clock \
|
||||
--hide-keyboard-layout \
|
||||
--indicator \
|
||||
--indicator-radius 100 \
|
||||
--indicator-thickness 7 \
|
||||
--effect-blur 7x5 \
|
||||
--effect-vignette 0.5:0.5 \
|
||||
--ring-color cba6f7 \
|
||||
--ring-ver-color 89b4fa \
|
||||
--ring-wrong-color f38ba8 \
|
||||
--ring-clear-color a6e3a1 \
|
||||
--key-hl-color 1e1e2e \
|
||||
--bs-hl-color eba0ac \
|
||||
--text-color 11111b \
|
||||
--text-caps-lock-color 11111b \
|
||||
--line-color 00000000 \
|
||||
--line-ver-color 00000000 \
|
||||
--line-wrong-color 00000000 \
|
||||
--line-clear-color 00000000 \
|
||||
--separator-color 00000000 \
|
||||
--inside-color cba6f7 \
|
||||
--inside-ver-color 89b4fa\
|
||||
--inside-wrong-color f38ba8 \
|
||||
--inside-clear-color a6e3a1 \
|
||||
--grace 2 \
|
||||
--fade-in 0.2
|
||||
6
config/hypr/scripts/screenshot_display.sh
Executable file
6
config/hypr/scripts/screenshot_display.sh
Executable file
|
|
@ -0,0 +1,6 @@
|
|||
#!/bin/bash
|
||||
# .config/hypr/scripts/screenshot_display.sh
|
||||
# Screenshot the current display Shift+Print
|
||||
|
||||
output_id=$(hyprctl -j monitors | jq -r '.[] | select(.focused).name')
|
||||
grim -o $output_id - | swappy -f -
|
||||
5
config/hypr/scripts/screenshot_window.sh
Executable file
5
config/hypr/scripts/screenshot_window.sh
Executable file
|
|
@ -0,0 +1,5 @@
|
|||
#!/bin/bash
|
||||
# .config/hypr/scripts/screenshot_window.sh
|
||||
# Screenshot a window Ctrl+Print
|
||||
|
||||
grim -g "$(hyprctl -j activewindow | jq -r '.at + .size | "\(.[0]),\(.[1]) \(.[2])x\(.[3])"' | slurp)" - | swappy -f -
|
||||
0
config/hypr/workspaces.conf
Normal file
0
config/hypr/workspaces.conf
Normal file
53
config/kitty/current-theme.conf
Normal file
53
config/kitty/current-theme.conf
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
## name: Rosé Pine Moon
|
||||
## author: mvllow
|
||||
## license: MIT
|
||||
## upstream: https://github.com/rose-pine/kitty/blob/main/dist/rose-pine-moon.conf
|
||||
## blurb: All natural pine, faux fur and a bit of soho vibes for the classy minimalist
|
||||
|
||||
foreground #e0def4
|
||||
background #232136
|
||||
selection_foreground #e0def4
|
||||
selection_background #44415a
|
||||
|
||||
cursor #56526e
|
||||
cursor_text_color #e0def4
|
||||
|
||||
url_color #c4a7e7
|
||||
|
||||
active_tab_foreground #e0def4
|
||||
active_tab_background #393552
|
||||
inactive_tab_foreground #6e6a86
|
||||
inactive_tab_background #232136
|
||||
|
||||
# black
|
||||
color0 #393552
|
||||
color8 #6e6a86
|
||||
|
||||
# red
|
||||
color1 #eb6f92
|
||||
color9 #eb6f92
|
||||
|
||||
# green
|
||||
color2 #3e8fb0
|
||||
color10 #3e8fb0
|
||||
|
||||
# yellow
|
||||
color3 #f6c177
|
||||
color11 #f6c177
|
||||
|
||||
# blue
|
||||
color4 #9ccfd8
|
||||
color12 #9ccfd8
|
||||
|
||||
# magenta
|
||||
color5 #c4a7e7
|
||||
color13 #c4a7e7
|
||||
|
||||
# cyan
|
||||
color6 #ea9a97
|
||||
color14 #ea9a97
|
||||
|
||||
# white
|
||||
color7 #e0def4
|
||||
color15 #e0def4
|
||||
|
||||
53
config/kitty/dark-theme.auto.conf
Normal file
53
config/kitty/dark-theme.auto.conf
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
## name: Rosé Pine Moon
|
||||
## author: mvllow
|
||||
## license: MIT
|
||||
## upstream: https://github.com/rose-pine/kitty/blob/main/dist/rose-pine-moon.conf
|
||||
## blurb: All natural pine, faux fur and a bit of soho vibes for the classy minimalist
|
||||
|
||||
foreground #e0def4
|
||||
background #232136
|
||||
selection_foreground #e0def4
|
||||
selection_background #44415a
|
||||
|
||||
cursor #56526e
|
||||
cursor_text_color #e0def4
|
||||
|
||||
url_color #c4a7e7
|
||||
|
||||
active_tab_foreground #e0def4
|
||||
active_tab_background #393552
|
||||
inactive_tab_foreground #6e6a86
|
||||
inactive_tab_background #232136
|
||||
|
||||
# black
|
||||
color0 #393552
|
||||
color8 #6e6a86
|
||||
|
||||
# red
|
||||
color1 #eb6f92
|
||||
color9 #eb6f92
|
||||
|
||||
# green
|
||||
color2 #3e8fb0
|
||||
color10 #3e8fb0
|
||||
|
||||
# yellow
|
||||
color3 #f6c177
|
||||
color11 #f6c177
|
||||
|
||||
# blue
|
||||
color4 #9ccfd8
|
||||
color12 #9ccfd8
|
||||
|
||||
# magenta
|
||||
color5 #c4a7e7
|
||||
color13 #c4a7e7
|
||||
|
||||
# cyan
|
||||
color6 #ea9a97
|
||||
color14 #ea9a97
|
||||
|
||||
# white
|
||||
color7 #e0def4
|
||||
color15 #e0def4
|
||||
|
||||
8
config/kitty/kitty.conf
Normal file
8
config/kitty/kitty.conf
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
background_opacity 0.3
|
||||
enable_audio_bell no
|
||||
|
||||
|
||||
# BEGIN_KITTY_THEME
|
||||
# Rosé Pine Moon
|
||||
#include current-theme.conf
|
||||
# END_KITTY_THEME
|
||||
2
config/kitty/kitty.conf.bak
Normal file
2
config/kitty/kitty.conf.bak
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
background_opacity 0.3
|
||||
enable_audio_bell no
|
||||
BIN
config/lf/lf.tar.gz
Normal file
BIN
config/lf/lf.tar.gz
Normal file
Binary file not shown.
3
config/lf/lf_kitty_clean
Executable file
3
config/lf/lf_kitty_clean
Executable file
|
|
@ -0,0 +1,3 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
kitty +kitten icat --clear --stdin no --silent --transfer-mode file < /dev/null > /dev/tty
|
||||
13
config/lf/lf_kitty_preview
Executable file
13
config/lf/lf_kitty_preview
Executable file
|
|
@ -0,0 +1,13 @@
|
|||
#!/usr/bin/env bash
|
||||
file=$1
|
||||
w=$2
|
||||
h=$3
|
||||
x=$4
|
||||
y=$5
|
||||
|
||||
if [[ "$( file -Lb --mime-type "$file")" =~ ^image ]]; then
|
||||
kitty +kitten icat --silent --stdin no --transfer-mode file --place "${w}x${h}@${x}x${y}" "$file" < /dev/null > /dev/tty
|
||||
exit 1
|
||||
fi
|
||||
|
||||
pistol "$file"
|
||||
147
config/lf/lfrc
Normal file
147
config/lf/lfrc
Normal file
|
|
@ -0,0 +1,147 @@
|
|||
# interpreter for shell commands
|
||||
set shell zsh
|
||||
|
||||
# set '-eu' options for shell commands
|
||||
# These options are used to have safer shell commands. Option '-e' is used to
|
||||
# exit on error and option '-u' is used to give error for unset variables.
|
||||
# Option '-f' disables pathname expansion which can be useful when $f, $fs, and
|
||||
# $fx variables contain names with '*' or '?' characters. However, this option
|
||||
# is used selectively within individual commands as it can be limiting at
|
||||
# times.
|
||||
set shellopts '-eu'
|
||||
|
||||
# set internal field separator (IFS) to "\n" for shell commands
|
||||
# This is useful to automatically split file names in $fs and $fx properly
|
||||
# since default file separator used in these variables (i.e. 'filesep' option)
|
||||
# is newline. You need to consider the values of these options and create your
|
||||
# commands accordingly.
|
||||
set ifs "\n"
|
||||
|
||||
# leave some space at the top and the bottom of the screen
|
||||
set scrolloff 10
|
||||
|
||||
# Use the `dim` attribute instead of underline for the cursor in the preview pane
|
||||
set cursorpreviewfmt "\033[7;2m"
|
||||
|
||||
# use enter for shell commands
|
||||
map <enter> shell
|
||||
|
||||
# show the result of execution of previous commands
|
||||
map ` !true
|
||||
|
||||
# execute current file (must be executable)
|
||||
map x $$f
|
||||
map X !$f
|
||||
map D set hidden!
|
||||
map d set hidden!
|
||||
# dedicated keys for file opener actions
|
||||
map o &mimeopen $f
|
||||
map O $mimeopen --ask $f
|
||||
cmd nano ${{
|
||||
nano $f
|
||||
}}
|
||||
cmd open-with-cli $$@ nano
|
||||
#cmd open-with-cli $$@ $fx
|
||||
#map e push :open-with-cli<space> ## input application
|
||||
map e nano
|
||||
map w wp
|
||||
map bw wpm
|
||||
map br cd /run/media/tulg
|
||||
map bp cd /run/media/tulg/backup1/pogland/wallpapers/
|
||||
map c cd ~/.config/
|
||||
map f wppp
|
||||
cmd wp &{{
|
||||
swww img $f # To make sure our escape sequence still reaches stdout we pipe it to /dev/tty
|
||||
}}
|
||||
cmd wppp &{{
|
||||
swayimg $f # To make sure our escape sequence still reaches stdout we pipe it to /dev/tty
|
||||
}}
|
||||
cmd wpm &{{
|
||||
mv $f /run/media/tulg/backup1/pogland/wallpapers # To make sure our escape sequence still reaches stdout we pipe it to /dev/tty
|
||||
}}
|
||||
|
||||
cmd drives &{{
|
||||
cd /run/media/tulg # To make sure our escape sequence still reaches stdout we pipe it to /dev/tty
|
||||
}}
|
||||
cmd on-cd &{{
|
||||
# '&' commands run silently in background (which is what we want here),
|
||||
# but are not connected to stdout.
|
||||
|
||||
printf "\033]0; $(pwd | sed "s|$HOME|~|")\007" > /dev/tty # To make sure our escape sequence still reaches stdout we pipe it to /dev/tty
|
||||
}}
|
||||
|
||||
# also run at startup
|
||||
on-cd
|
||||
|
||||
# define a custom 'open' command
|
||||
# This command is called when current file is not a directory. You may want to
|
||||
# use either file extensions and/or mime types here. Below uses an editor for
|
||||
# text files and a file opener for the rest.
|
||||
cmd open &{{
|
||||
case $(file --mime-type -Lb $f) in
|
||||
text/*) lf -remote "send $id nano \$fx";;
|
||||
*) for f in $fx; do $OPENER $f > /dev/null 2> /dev/null & done;;
|
||||
esac
|
||||
}}
|
||||
|
||||
# mkdir command. See wiki if you want it to select created dir
|
||||
map a :push %mkdir<space>
|
||||
|
||||
# define a custom 'rename' command without prompt for overwrite
|
||||
# cmd rename %[ -e $1 ] && printf "file exists" || mv $f $1
|
||||
# map r push :rename<space>
|
||||
|
||||
# make sure trash folder exists
|
||||
# %mkdir -p ~/.trash
|
||||
|
||||
# move current file or selected files to trash folder
|
||||
# (also see 'man mv' for backup/overwrite options)
|
||||
cmd trash %set -f; mv $fx ~/.trash
|
||||
|
||||
# define a custom 'delete' command
|
||||
# cmd delete ${{
|
||||
# set -f
|
||||
# printf "$fx\n"
|
||||
# printf "delete?[y/n]"
|
||||
# read ans
|
||||
# [ "$ans" = "y" ] && rm -rf $fx
|
||||
# }}
|
||||
|
||||
# use '<delete>' key for either 'trash' or 'delete' command
|
||||
# map <delete> trash
|
||||
# map <delete> delete
|
||||
|
||||
# extract the current file with the right command
|
||||
# (xkcd link: https://xkcd.com/1168/)
|
||||
cmd extract ${{
|
||||
set -f
|
||||
case $f in
|
||||
*.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf $f;;
|
||||
*.tar.gz|*.tgz) tar xzvf $f;;
|
||||
*.tar.xz|*.txz) tar xJvf $f;;
|
||||
*.zip) unzip $f;;
|
||||
*.rar) unrar x $f;;
|
||||
*.7z) 7z x $f;;
|
||||
esac
|
||||
}}
|
||||
|
||||
# compress current file or selected files with tar and gunzip
|
||||
cmd tar ${{
|
||||
set -f
|
||||
mkdir $1
|
||||
cp -r $fx $1
|
||||
tar czf $1.tar.gz $1
|
||||
rm -rf $1
|
||||
}}
|
||||
|
||||
# compress current file or selected files with zip
|
||||
cmd zip ${{
|
||||
set -f
|
||||
mkdir $1
|
||||
cp -r $fx $1
|
||||
zip -r $1.zip $1
|
||||
rm -rf $1
|
||||
}}
|
||||
set preview
|
||||
set previewer ~/.config/lf/lf_kitty_preview
|
||||
set cleaner ~/.config/lf/lf_kitty_clean
|
||||
BIN
config/lorde_wallpaper_upscaled.jpg
Executable file
BIN
config/lorde_wallpaper_upscaled.jpg
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 21 MiB |
16
config/mako/config
Normal file
16
config/mako/config
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
anchor=top-right
|
||||
font=fira sans 10
|
||||
background-color=#232136
|
||||
text-color=#D3869B
|
||||
width=350
|
||||
margin=0,20,20
|
||||
padding=10
|
||||
border-size=1
|
||||
border-color=#232136
|
||||
border-radius=5
|
||||
default-timeout=10000
|
||||
group-by=summary
|
||||
icons=1
|
||||
|
||||
[grouped]
|
||||
format=<b>%s</b>\n%b
|
||||
176
config/waybar/config
Normal file
176
config/waybar/config
Normal file
|
|
@ -0,0 +1,176 @@
|
|||
{
|
||||
"layer": "top", // Waybar at top layer
|
||||
"position": "top", // Waybar position (top|bottom|left|right)
|
||||
"height": 40,
|
||||
"width":1920,
|
||||
"margin": "0 0 0 0",
|
||||
"spacing":0,
|
||||
|
||||
// Choose the order of the modules
|
||||
// Add according to your wishes: "custom/weather"
|
||||
|
||||
"modules-left": ["hyprland/workspaces", "hyprland/window"],
|
||||
"modules-center": ["custom/network_traffic"],
|
||||
"modules-right": ["backlight","temperature", "cpu", "memory", "battery", "pulseaudio", "network", "tray", "clock"],
|
||||
|
||||
// Modules configuration
|
||||
|
||||
"hyprland/workspaces": {
|
||||
"format": "{icon}",
|
||||
"on-click": "activate",
|
||||
"all-outputs": true,
|
||||
"sort-by-number": true,
|
||||
"format-icons": {
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4",
|
||||
"5": "5",
|
||||
"6": "6",
|
||||
"7": "7",
|
||||
"8": "8",
|
||||
"9": "9",
|
||||
"10": "10",
|
||||
"focused": "",
|
||||
"default": ""
|
||||
},
|
||||
"on-scroll-up": "hyprctl dispatch workspace e+1",
|
||||
"on-scroll-down": "hyprctl dispatch workspace e-1",
|
||||
},
|
||||
"hyprland/window": {
|
||||
"format": "{}",
|
||||
"icon":false,
|
||||
"icon-size" : 20
|
||||
},
|
||||
"idle_inhibitor": {
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"activated": "",
|
||||
"deactivated": ""
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
"icon-size": 20,
|
||||
"spacing": 5
|
||||
},
|
||||
"clock": {
|
||||
"tooltip-format": "<big>{:%A, %d.%B %Y }</big>\n<tt><small>{calendar}</small></tt>",
|
||||
"format": " {:%a %d %b %I:%M %p}", //12 hour format
|
||||
//"format": " {:%a %d %b %H:%M}", //24 hour format
|
||||
"format-alt": " {:%d/%m/%Y %H:%M:%S}",
|
||||
//"max-length": 200
|
||||
"interval": 1,
|
||||
"on-click": "~/.config/waybar/scripts/OCV",
|
||||
},
|
||||
"cpu": {
|
||||
"format": "🖳{usage}%",
|
||||
"on-click": "foot -e htop"
|
||||
},
|
||||
"memory": {
|
||||
"format": "🖴 {: >3}%",
|
||||
"on-click": "foot -e htop"
|
||||
},
|
||||
"temperature": {
|
||||
"thermal-zone": 7, // Check with: # cat /sys/class/hwmon/hwmon*/temp1_input
|
||||
"hwmon-path": "/sys/class/hwmon/hwmon7/temp1_input",
|
||||
"critical-threshold": 80,
|
||||
"format-critical": "{temperatureC}°C ",
|
||||
"format": "{temperatureC}°C "
|
||||
},
|
||||
"backlight": {
|
||||
// "device": "acpi_video1",
|
||||
"format": "{icon} {percent: >3}%",
|
||||
"format-icons": ["", ""],
|
||||
"on-scroll-down": "brightnessctl -c backlight set 1%-",
|
||||
"on-scroll-up": "brightnessctl -c backlight set +1%",
|
||||
"on-click": "~/.config/waybar/scripts/backlight-hint.sh"
|
||||
},
|
||||
"battery": {
|
||||
"states": {
|
||||
// "good": 95,
|
||||
"warning": 30,
|
||||
"critical": 15
|
||||
},
|
||||
"format": "{icon} {capacity: >3}%",
|
||||
"format-icons": ["", "", "", "", ""]
|
||||
// "format-good": "", // An empty format will hide the module
|
||||
// "format-full": "",
|
||||
//"format-icons": ["", "", "", "", "", "", "", "", "", ""]
|
||||
//"format": "‫{icon}‬ {capacity}%",
|
||||
//"format-icons": ["ﱉ","ﱊ","ﱌ","ﱍ","ﱋ"]
|
||||
},
|
||||
"network": {
|
||||
//"interface": "wlp0s20f3", // (Optional) To force the use of this interface "format-wifi": " {essid}",
|
||||
"format": "⚠Disabled",
|
||||
"format-wifi": "",
|
||||
"format-ethernet": "",
|
||||
"format-linked": "{ifname} (No IP)",
|
||||
"format-disconnected": "⚠Disabled",
|
||||
"format-alt": "{ifname}: {ipaddr}/{cidr}",
|
||||
"family": "ipv4",
|
||||
"tooltip-format-wifi": " {ifname} @ {essid}\nIP: {ipaddr}\nStrength: {signalStrength}%\nFreq: {frequency}MHz\nUp: {bandwidthUpBits} Down: {bandwidthDownBits}",
|
||||
"tooltip-format-ethernet": " {ifname}\nIP: {ipaddr}\n up: {bandwidthUpBits} down: {bandwidthDownBits}",
|
||||
//"min-length": 2,
|
||||
//"max-length": 2,
|
||||
"on-click": "nm-connection-editor"
|
||||
},
|
||||
"custom/updates": {
|
||||
"format": "{} {icon}",
|
||||
"return-type": "json",
|
||||
"format-icons": {
|
||||
"has-updates": "",
|
||||
"updated": "",
|
||||
"interval": 7200,
|
||||
},
|
||||
"exec-if": "which waybar-module-pacman-updates",
|
||||
"exec": "waybar-module-pacman-updates",
|
||||
"on-click": "foot -e update"
|
||||
},
|
||||
"custom/power": {
|
||||
"format":"⏻",
|
||||
"on-click": "nwgbar",
|
||||
"tooltip": false,
|
||||
},
|
||||
"custom/keyboard-layout": {
|
||||
"format": " Cheat", // Icon: keyboard
|
||||
"on-click": "~/.config/waybar/scripts/keyhint.sh",
|
||||
},
|
||||
"custom/launcher": {
|
||||
"format":" ",
|
||||
"on-click": "exec nwg-drawer -c 7 -is 70 -spacing 23",
|
||||
"tooltip": false,
|
||||
},
|
||||
"custom/network_traffic": {
|
||||
"exec": "~/.config/waybar/scripts/network_traffic.sh",
|
||||
"return-type": "json",
|
||||
"format-ethernet": "{icon} {ifname} ⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}", // optional
|
||||
},
|
||||
"pulseaudio": {
|
||||
"scroll-step": 3, // %, can be a float
|
||||
"format": "{icon} {volume}% {format_source}",
|
||||
"format-bluetooth": "{volume}% {icon} {format_source}",
|
||||
"format-bluetooth-muted": " {icon} {format_source}",
|
||||
"format-muted": " {format_source}",
|
||||
//"format-source": "{volume}% ",
|
||||
//"format-source-muted": "",
|
||||
"format-source": "",
|
||||
"format-source-muted": "",
|
||||
"format-icons": {
|
||||
"headphone": "",
|
||||
"hands-free": "",
|
||||
"headset": "",
|
||||
"phone": "",
|
||||
"portable": "",
|
||||
"car": "",
|
||||
"default": ["", "", ""]
|
||||
},
|
||||
"on-click": "pavucontrol",
|
||||
"on-click-right": "pactl set-source-mute @DEFAULT_SOURCE@ toggle"
|
||||
},
|
||||
// https://github.com/chubin/wttr.in
|
||||
"custom/weather": {
|
||||
"exec": "curl 'https://wttr.in/Essen?format=2'",
|
||||
"interval": 900,
|
||||
"on-click": "yad --html --uri='https://wttr.in/Essen' --center --fixed --width=1000 --height=680 --timeout=60 --timeout-indicator=right"
|
||||
},
|
||||
}
|
||||
BIN
config/waybar/launcher.png
Normal file
BIN
config/waybar/launcher.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.2 KiB |
9
config/waybar/scripts/OCV
Executable file
9
config/waybar/scripts/OCV
Executable file
|
|
@ -0,0 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
yad --width=400 --height=200 \
|
||||
--center \
|
||||
--fixed \
|
||||
--title="Calendar" \
|
||||
--no-buttons \
|
||||
yad \
|
||||
--calendar
|
||||
12
config/waybar/scripts/backlight-hint.sh
Executable file
12
config/waybar/scripts/backlight-hint.sh
Executable file
|
|
@ -0,0 +1,12 @@
|
|||
#!/bin/bash
|
||||
|
||||
yad --width=100 --height=100 \
|
||||
--center \
|
||||
--fixed \
|
||||
--title="Backlight" \
|
||||
--no-buttons \
|
||||
--timeout=10 \
|
||||
--timeout-indicator=bottom \
|
||||
yad \
|
||||
--text="\nScroll your mouse wheel to change \n the backlight of the monitor." \
|
||||
|
||||
7
config/waybar/scripts/cleanup_after_start.sh
Executable file
7
config/waybar/scripts/cleanup_after_start.sh
Executable file
|
|
@ -0,0 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
sleep 20
|
||||
hyprctl keyword windowrule "workspace unset,nmtui-colors"
|
||||
hyprctl keyword windowrule "workspace unset,calamares"
|
||||
hyprctl keyword windowrule "workspace unset,keyhint.sh"
|
||||
hyprctl keyword windowrule "workspace unset,firedragon"
|
||||
37
config/waybar/scripts/keyhint.sh
Executable file
37
config/waybar/scripts/keyhint.sh
Executable file
|
|
@ -0,0 +1,37 @@
|
|||
#!/bin/sh
|
||||
# "Change keyboard layout in" "~/.config/hypr/hyprland.conf" " " \
|
||||
|
||||
yad --width=530 --height=640 \
|
||||
--center \
|
||||
--fixed \
|
||||
--title="Garuda Hyprland Keybindings" \
|
||||
--no-buttons \
|
||||
--list \
|
||||
--column=Key: \
|
||||
--column=Description: \
|
||||
--column=Command: \
|
||||
--timeout=60 \
|
||||
--timeout-indicator=right \
|
||||
"ESC" "close this app" "" "=" "modkey" "(set mod Mod4)" \
|
||||
"+Shift+g" "G-hyprland" "implement G-Hyprland" \
|
||||
"+enter/+t" "Terminal" "(foot)" \
|
||||
"" "Application Menu" "(wofi)" \
|
||||
"+Shift+d" "Full Launcher" "(nwggrid)" \
|
||||
"+o" "" "Open Broswer" \
|
||||
"+n" "" "Open Files" \
|
||||
"+q" "close focused app" "(kill)" \
|
||||
"+v" "clipboard manager" "(cliphist)" \
|
||||
"+r" "Resize windows" "(resize)" \
|
||||
"Print" "screenshot" "(grimblast)" \
|
||||
"Shift+Print" "screenshot region" "(grimblast)" \
|
||||
"+Print" "screenshot window" "(grimblast)" \
|
||||
"+Shift+e" "power-menu" "(wofi)" \
|
||||
"+Shift+c" "Change wallpaper" "(wpaperd)" \
|
||||
"+f" "Fullscreen" "Toggles to full screen" \
|
||||
"+Shift+f" "fullscreenstate" "Behave full screen without full screen" \
|
||||
"+m" "maximize" "Hides all the windows other then focused window" \
|
||||
"+Shift+Spacebar" "Float" "Toggle windows to float" \
|
||||
"+p" "Dwindle effect" "pseudo" \
|
||||
"+Shift+p" "Dwindle effect" "toggle split" \
|
||||
"+i" "Calamares" "Install Garuda Hyprland" \
|
||||
"" "" " Window closed in 60 sec."\
|
||||
109
config/waybar/scripts/network_traffic.sh
Executable file
109
config/waybar/scripts/network_traffic.sh
Executable file
|
|
@ -0,0 +1,109 @@
|
|||
#!/bin/bash
|
||||
|
||||
# network_traffic.sh [-tPOLLING_INTERVAL] [NETWORK_INTERFACE...]
|
||||
|
||||
getopts t: __ && shift
|
||||
isecs=${OPTARG:-1}
|
||||
ifaces=($@)
|
||||
: ${rate_max:=1000000} # maximum transfer rate for {percent}, can be overridden setting the env var
|
||||
|
||||
# `snore` adapted from https://blog.dhampir.no/content/sleeping-without-a-subprocess-in-bash-and-how-to-sleep-forever
|
||||
# without MacOS workaround, TODO: with _snore_fd initialized separatedly, also i dont touch IFS so dont bother with it
|
||||
snore() {
|
||||
local IFS
|
||||
[[ -n "${_snore_fd:-}" ]] || { exec {_snore_fd}<> <(:); } 2>/dev/null
|
||||
read ${1:+-t "$1"} -u $_snore_fd || :
|
||||
}
|
||||
|
||||
human_readable() {
|
||||
local hrunits=( B K M G T P )
|
||||
local ndigits=${#1}
|
||||
local idxunit=$(( (2 + ndigits) / 3 - 1))
|
||||
local lentrim=$(( ndigits - (idxunit * 3 ) ))
|
||||
echo ${1::$lentrim}${hrunits[$idxunit]}
|
||||
}
|
||||
|
||||
exit_err() {
|
||||
printf '{"text": "⚠ %s", "tooltip": "%s", "class": "error"}\n' "$@"
|
||||
exit
|
||||
}
|
||||
|
||||
if test ${#ifaces[@]} -gt 0; then
|
||||
# sanity check the interface names
|
||||
for iface in ${ifaces[@]}; do
|
||||
test -h "/sys/class/net/${iface}" || exit_err "${iface}" "${iface} is not an existing network interface name"
|
||||
done
|
||||
else
|
||||
# default to all interfaces except `lo`
|
||||
ifaces=(/sys/class/net/*)
|
||||
ifaces=(${ifaces[@]##*/})
|
||||
ifaces=(${ifaces[@]^(eth|wlan|enp|wlp|eno)})
|
||||
fi
|
||||
|
||||
# sanity check polling interval
|
||||
if test ${isecs} -lt 1; then
|
||||
exit_err "${isecs}" "${isecs} is not a valid polling interval"
|
||||
fi
|
||||
# NOTE: `snore` would take a decimal interval but bash arithmetic does not
|
||||
#if test $(echo "${isecs} >= 0.2" |bc) -eq 0; then
|
||||
# exit_err "${isecs}" "${isecs} is not a valid polling interval"
|
||||
#fi
|
||||
|
||||
# NOTE: `/proc/net/dev` format is:
|
||||
# interface:
|
||||
# RX bytes packets errs drop fifo frame compressed multicast
|
||||
# TX bytes packets errs drop fifo colls carrier compressed
|
||||
|
||||
# NOTE: array items are:
|
||||
# 0=rx_bytes 1=rx_packets 2=rx_errs 3=rx_drop
|
||||
# 4=tx_bytes 5=tx_packets 6=tx_errs 7=tx_drop
|
||||
for iface in ${ifaces[@]} aggregate; do
|
||||
declare -a traffic_prev_${iface} traffic_curr_${iface} traffic_delt_${iface}
|
||||
declare -n traffic_prev=traffic_prev_${iface}
|
||||
declare -n traffic_curr=traffic_curr_${iface}
|
||||
declare -n traffic_delt=traffic_delt_${iface}
|
||||
traffic_prev=( 0 0 0 0 0 0 0 0 )
|
||||
traffic_curr=( 0 0 0 0 0 0 0 0 )
|
||||
traffic_delt=( 0 0 0 0 0 0 0 0 )
|
||||
done
|
||||
|
||||
# TODO: rearrange the loop, do not show bogus on first iteration
|
||||
while snore ${isecs} ;do
|
||||
tooltip=""
|
||||
traffic_delt_aggregate=( 0 0 0 0 0 0 0 0 )
|
||||
|
||||
readarray -s2 proc_net_dev </proc/net/dev
|
||||
while read -a data; do
|
||||
iface=${data[0]%:}
|
||||
test "${ifaces[*]}" = "${ifaces[*]//${iface}/}" && continue
|
||||
declare -n traffic_prev=traffic_prev_${iface}
|
||||
declare -n traffic_curr=traffic_curr_${iface}
|
||||
declare -n traffic_delt=traffic_delt_${iface}
|
||||
traffic_curr=(${data[@]:1:4} ${data[@]:9:4})
|
||||
#FIXME: tooltip is delayed one iteration wrt main display (but why?)
|
||||
#printf -v tooltip_hr_rx '%4s⇣' $(human_readable ${traffic_delt[0]})
|
||||
#printf -v tooltip_hr_tx '%4s⇡' $(human_readable ${traffic_delt[4]})
|
||||
#tooltip="${tooltip:+${tooltip}\r}${iface}\t${tooltip_hr_rx}\t${tooltip_hr_tx}"
|
||||
for i in {0..7}; do
|
||||
(( traffic_delt[i] = ( traffic_curr[i] - traffic_prev[i] ) / isecs ))
|
||||
(( traffic_delt_aggregate[i] += traffic_delt[i] ))
|
||||
done
|
||||
traffic_prev=(${traffic_curr[@]})
|
||||
done <<<"${proc_net_dev[@]}"
|
||||
|
||||
printf '{"text": "%4s⇣ %4s⇡", "tooltip": "%s", "percentage": %d}\n' \
|
||||
$(human_readable ${traffic_delt_aggregate[0]}) \
|
||||
$(human_readable ${traffic_delt_aggregate[4]}) \
|
||||
"${tooltip}" \
|
||||
$(( ( traffic_delt_aggregate[0] + traffic_delt_aggregate[4] ) / rate_max ))
|
||||
#printf '{"text": "%5s⇣ %5s⇡", "alt": "%s", "tooltip": "%s", "class": "%s", "percentage": %d }\n' $(human_readable ${traffic_delt[0]}) $(human_readable ${traffic_delt[4]}) '_alt' '_tooltip' '_class' 0
|
||||
done
|
||||
|
||||
|
||||
# NOTE: in waybar config (do NOT use "interval"):
|
||||
# "custom/network_traffic": {
|
||||
# "exec": "~/.config/waybar/scripts/network_traffic.sh",
|
||||
# "return-type": "json",
|
||||
# "format": "Speed: {}", // optional
|
||||
# },
|
||||
|
||||
187
config/waybar/style.css
Normal file
187
config/waybar/style.css
Normal file
|
|
@ -0,0 +1,187 @@
|
|||
/* =============================================================================
|
||||
*
|
||||
* Waybar configuration
|
||||
*
|
||||
* Configuration reference: https://github.com/Alexays/Waybar/wiki/Configuration
|
||||
*
|
||||
* =========================================================================== */
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* Keyframes
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
/*
|
||||
Polar Night
|
||||
nord0 #2e3440
|
||||
nord1 #3b4252
|
||||
nord2 #434c5e
|
||||
nord3 #4c566a
|
||||
Snow Storm
|
||||
nord4 #d8dee9
|
||||
nord5 #e5e9f0
|
||||
nord6 #eceff4
|
||||
Frost
|
||||
nord7 #8fbcbb
|
||||
nord8 #88c0d0
|
||||
nord9 #81a1c1
|
||||
nord10 #5e81ac
|
||||
Aurora
|
||||
nord11 #bf616a
|
||||
nord12 #d08770
|
||||
nord13 #ebcb8b
|
||||
nord14 #a3be8c
|
||||
nord15 #b48ead
|
||||
*/
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* Base styles
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
/* Reset all styles */
|
||||
|
||||
* {
|
||||
color:#a3be8c;
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
padding: 0 0;
|
||||
font-family:Symbols Nerd Font Mono;
|
||||
font-size: 15px;
|
||||
margin-right: 5px;
|
||||
margin-left: 5px;
|
||||
padding-bottom:2px;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background:rgba (0, 0, 0, 0.5);
|
||||
border-radius: 20px 20px 20px 20px;
|
||||
color: #D3869B;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 2px 0px;
|
||||
border-bottom: 2px;
|
||||
color: #D3869B;
|
||||
border-color: #d8dee9;
|
||||
border-style: solid;
|
||||
margin-top:2px;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
border-color: #D3869B;
|
||||
}
|
||||
|
||||
#clock, #battery, #cpu, #memory,#idle_inhibitor, #temperature,#custom-keyboard-layout, #backlight, #network, #pulseaudio, #tray, #window,#custom-launcher,#custom-power,#custom-updates ,#custom-network_traffic,#custom-weather{
|
||||
padding: 0 3px;
|
||||
border-bottom: 2px;
|
||||
border-style: solid;
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* Module styles
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
#clock {
|
||||
color:#a3be8c;
|
||||
}
|
||||
|
||||
#backlight {
|
||||
color: #ebcb8b;
|
||||
}
|
||||
|
||||
#battery {
|
||||
color: #d8dee9;
|
||||
}
|
||||
|
||||
#battery.charging {
|
||||
color: #81a1c1;
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
to {
|
||||
color: #4c566a;
|
||||
background-color: #eceff4;
|
||||
}
|
||||
}
|
||||
|
||||
#battery.critical:not(.charging) {
|
||||
background: #bf616a;
|
||||
color: #eceff4;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
|
||||
#cpu {
|
||||
color:#a3be8c ;
|
||||
}
|
||||
|
||||
#memory {
|
||||
color: #d3869b;
|
||||
}
|
||||
|
||||
#network.disabled {
|
||||
color:#bf616a;
|
||||
}
|
||||
|
||||
#network{
|
||||
color:#a3be8c;
|
||||
}
|
||||
|
||||
#network.disconnected {
|
||||
color: #bf616a;
|
||||
}
|
||||
|
||||
#pulseaudio {
|
||||
color: #b48ead;
|
||||
}
|
||||
|
||||
#pulseaudio.muted {
|
||||
color: #3b4252;
|
||||
}
|
||||
|
||||
#temperature {
|
||||
color: #8fbcbb;
|
||||
}
|
||||
|
||||
#temperature.critical {
|
||||
color: #bf616a;
|
||||
}
|
||||
|
||||
#idle_inhibitor {
|
||||
color: #ebcb8b;
|
||||
}
|
||||
|
||||
#tray {
|
||||
}
|
||||
|
||||
#custom-launcher{
|
||||
font-size: 20px;
|
||||
background-image: url('/home/tulg/.config/waybar/launcher.png');
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: contain;
|
||||
border-style: hidden;
|
||||
}
|
||||
|
||||
#custom-power{
|
||||
border-style: hidden;
|
||||
margin-top:2px;
|
||||
}
|
||||
|
||||
#window{
|
||||
border-style: hidden;
|
||||
margin-top:1px;
|
||||
color: #D3869B;
|
||||
}
|
||||
#custom-keyboard-layout{
|
||||
color:#d08770;
|
||||
}
|
||||
#custom-network_traffic{
|
||||
color:#d08770;
|
||||
}
|
||||
|
||||
|
||||
10
config/wofi/config
Normal file
10
config/wofi/config
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
location=middle
|
||||
show=drun
|
||||
width=650
|
||||
height=550
|
||||
always_parse_args=true
|
||||
show_all=true
|
||||
print_command=true
|
||||
layer=overlay
|
||||
insensitive=true
|
||||
prompt=
|
||||
8
config/wofi/config.screenshot
Normal file
8
config/wofi/config.screenshot
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
hide_search=true
|
||||
hide_scroll=true
|
||||
width=1
|
||||
show=dmenu
|
||||
lines=5
|
||||
location=centre
|
||||
x=870
|
||||
y=455
|
||||
51
config/wofi/style.css
Normal file
51
config/wofi/style.css
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
window {
|
||||
margin: 0px;
|
||||
background-color: #232136;
|
||||
border-radius: 0px;
|
||||
font-family:Symbols Nerd Font Mono;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
#input {
|
||||
margin: 3px;
|
||||
border-radius: 0px;
|
||||
border: none;
|
||||
border-radius: 0px;;
|
||||
color: #eb6f92;
|
||||
background-color: #232136;
|
||||
}
|
||||
|
||||
#inner-box {
|
||||
margin: 3px;
|
||||
border: none;
|
||||
color: #232136;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
#outer-box {
|
||||
margin: 8px;
|
||||
border: none;
|
||||
background-color: #232136;
|
||||
}
|
||||
|
||||
#scroll {
|
||||
margin: 0px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
#text {
|
||||
margin: 5px;
|
||||
border: none;
|
||||
color: #e0def4;
|
||||
}
|
||||
|
||||
#entry:selectd {
|
||||
color: #232136;
|
||||
border-radius: 0px;;
|
||||
background-color: #232136;
|
||||
}
|
||||
|
||||
#entry:selected * {
|
||||
color: #232136;
|
||||
border-radius: 0px;;
|
||||
}
|
||||
17
config/zen-rose-pine/rose-pine-dawn.css
Normal file
17
config/zen-rose-pine/rose-pine-dawn.css
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
* {
|
||||
--base: #faf4ed;
|
||||
--surface: #fffaf3;
|
||||
--overlay: #f2e9e1;
|
||||
--muted: #9893a5;
|
||||
--subtle: #797593;
|
||||
--text: #575279;
|
||||
--love: #b4637a;
|
||||
--gold: #ea9d34;
|
||||
--rose: #d7827e;
|
||||
--pine: #286983;
|
||||
--foam: #56949f;
|
||||
--iris: #907aa9;
|
||||
--highlightLow: #f4ede8;
|
||||
--highlightMed: #dfdad9;
|
||||
--highlightHigh: #cecacd;
|
||||
}
|
||||
17
config/zen-rose-pine/rose-pine-main.css
Normal file
17
config/zen-rose-pine/rose-pine-main.css
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
* {
|
||||
--base: #191724;
|
||||
--surface: #1f1d2e;
|
||||
--overlay: #26233a;
|
||||
--muted: #6e6a86;
|
||||
--subtle: #908caa;
|
||||
--text: #e0def4;
|
||||
--love: #eb6f92;
|
||||
--gold: #f6c177;
|
||||
--rose: #ebbcba;
|
||||
--pine: #31748f;
|
||||
--foam: #9ccfd8;
|
||||
--iris: #c4a7e7;
|
||||
--highlightLow: #21202e;
|
||||
--highlightMed: #403d52;
|
||||
--highlightHigh: #524f67;
|
||||
}
|
||||
17
config/zen-rose-pine/rose-pine-moon.css
Normal file
17
config/zen-rose-pine/rose-pine-moon.css
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
* {
|
||||
--base: #232136;
|
||||
--surface: #2a273f;
|
||||
--overlay: #393552;
|
||||
--muted: #6e6a86;
|
||||
--subtle: #908caa;
|
||||
--text: #e0def4;
|
||||
--love: #eb6f92;
|
||||
--gold: #f6c177;
|
||||
--rose: #ea9a97;
|
||||
--pine: #3e8fb0;
|
||||
--foam: #9ccfd8;
|
||||
--iris: #c4a7e7;
|
||||
--highlightLow: #2a283e;
|
||||
--highlightMed: #44415a;
|
||||
--highlightHigh: #56526e;
|
||||
}
|
||||
71
config/zen-rose-pine/userChrome.css
Normal file
71
config/zen-rose-pine/userChrome.css
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
@import "rose-pine-moon.css";
|
||||
|
||||
:root {
|
||||
--zen-colors-primary: var(--base) !important;
|
||||
--zen-primary-color: var(--base) !important;
|
||||
--zen-colors-secondary: var(--surface) !important;
|
||||
--zen-colors-tertiary: var(--overlay) !important;
|
||||
--zen-colors-border: var(--iris) !important;
|
||||
--toolbarbutton-icon-fill: var(--iris) !important;
|
||||
--lwt-text-color: var(--text) !important;
|
||||
--toolbar-field-color: var(--text) !important;
|
||||
--tab-selected-textcolor: var(--iris) !important;
|
||||
--toolbar-field-focus-color: var(--text) !important;
|
||||
--toolbar-color: var(--text) !important;
|
||||
--newtab-text-primary-color: var(--text) !important;
|
||||
--arrowpanel-color: var(--text) !important;
|
||||
--arrowpanel-background: var(--overlay) !important;
|
||||
--sidebar-text-color: var(--text) !important;
|
||||
--lwt-sidebar-text-color: var(--text) !important;
|
||||
--lwt-sidebar-background-color: var(--base) !important;
|
||||
--toolbar-bgcolor: var(--base) !important;
|
||||
--newtab-background-color: var(--overlay) !important;
|
||||
--zen-themed-toolbar-bg: var(--base) !important;
|
||||
--zen-main-browser-background: var(--base) !important;
|
||||
}
|
||||
|
||||
#permissions-granted-icon {
|
||||
color: #181825 !important;
|
||||
}
|
||||
|
||||
.sidebar-placesTree {
|
||||
background-color: var(--surface) !important;
|
||||
}
|
||||
|
||||
#zen-workspaces-button {
|
||||
background-color: var(--surface) !important;
|
||||
}
|
||||
|
||||
#urlbar-background {
|
||||
background-color: var(--surface) !important;
|
||||
}
|
||||
|
||||
.tab-background[selected=""] {
|
||||
background: var(--overlay) !important;
|
||||
}
|
||||
|
||||
.content-shortcuts {
|
||||
background-color: var(--surface) !important;
|
||||
border-color: #89b4fa !important;
|
||||
}
|
||||
|
||||
.urlbarView-url {
|
||||
color: var(--iris) !important;
|
||||
}
|
||||
|
||||
#zenEditBookmarkPanelFaviconContainer {
|
||||
background: var(--base) !important;
|
||||
}
|
||||
|
||||
toolbar .toolbarbutton-1 {
|
||||
&:not([disabled]) {
|
||||
&:is([open], [checked])
|
||||
> :is(
|
||||
.toolbarbutton-icon,
|
||||
.toolbarbutton-text,
|
||||
.toolbarbutton-badge-stack
|
||||
) {
|
||||
fill: var(--base);
|
||||
}
|
||||
}
|
||||
}
|
||||
8
config/zen-rose-pine/zen-themes.css
Normal file
8
config/zen-rose-pine/zen-themes.css
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
/* Zen Mods - Generated by ZenMods.
|
||||
* FILE GENERATED AT: Saturday, October 11, 2025 at 7:22:29 PM GMT+03:00
|
||||
* DO NOT EDIT THIS FILE DIRECTLY!
|
||||
* Your changes will be overwritten.
|
||||
* Instead, go to the preferences and edit the mods there.
|
||||
*/
|
||||
|
||||
/* End of Zen Mods */
|
||||
139
configuration.nix
Normal file
139
configuration.nix
Normal file
|
|
@ -0,0 +1,139 @@
|
|||
# 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, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ # Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
# Bootloader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
networking = {
|
||||
hostName = "virgil";
|
||||
nameservers = ["127.0.0.1" "::1"];
|
||||
};
|
||||
|
||||
services.dnscrypt-proxy2 = {
|
||||
enable = true;
|
||||
settings = {
|
||||
listen_addresses = ["127.0.0.1:53" "[::1]:53"];
|
||||
};
|
||||
};
|
||||
|
||||
services.zapret = {
|
||||
enable = true;
|
||||
params = [
|
||||
"--dpi-desync=fake"
|
||||
"--dpi-desync-ttl=8"
|
||||
];
|
||||
};
|
||||
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
|
||||
# Configure network proxy if necessary
|
||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||
|
||||
# Enable networking
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Istanbul";
|
||||
|
||||
# Select internationalisation properties.
|
||||
services.getty.autologinUser = "tulg";
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
};
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
users.users.tulg = {
|
||||
isNormalUser = true;
|
||||
description = "Tulga";
|
||||
extraGroups = [ "networkmanager" "wheel" ];
|
||||
packages = with pkgs; [];
|
||||
};
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||
# wget
|
||||
git
|
||||
rose-pine-gtk-theme
|
||||
];
|
||||
|
||||
# Some programs need SUID wrappers, can be configured further or are
|
||||
# started in user sessions.
|
||||
# programs.mtr.enable = true;
|
||||
# programs.gnupg.agent = {
|
||||
# enable = true;
|
||||
# enableSSHSupport = true;
|
||||
# };
|
||||
|
||||
# List services that you want to enable:
|
||||
|
||||
# Enable the OpenSSH daemon.
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
settings = {
|
||||
PasswordAuthentication = true;
|
||||
PermitRootLogin = "yes";
|
||||
};
|
||||
};
|
||||
fonts = {
|
||||
packages = with pkgs; [
|
||||
noto-fonts
|
||||
noto-fonts-cjk-sans
|
||||
noto-fonts-emoji
|
||||
nerd-fonts.symbols-only
|
||||
liberation_ttf
|
||||
font-awesome
|
||||
fira
|
||||
fira-sans
|
||||
fira-code
|
||||
fira-code-symbols
|
||||
];
|
||||
|
||||
enableDefaultPackages = true;
|
||||
fontconfig = {
|
||||
enable = true;
|
||||
defaultFonts = {
|
||||
sansSerif = [ "Fira Sans Regular" ];
|
||||
serif = [ "Fira Sans Regular" ];
|
||||
monospace = [ "Fira Mono Regular" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Open ports in the firewall.
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
# Or disable the firewall altogether.
|
||||
# networking.firewall.enable = false;
|
||||
users.users."root".openssh.authorizedKeys.keys = [
|
||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDIefprdYz4gFgBqGlrkycWcTYxFttQHRjDQmREtQTiGyqK1gQiB4z4Cbiayt7Emq224sbaobQPlNSyhlBCSo/Wf0bmZMz8NwNdwhFSkDnyD6LPaHg8fv9FXnWW0wBMl4oSD2wfGbMQBrecjgHXfJ64UiHyyhDllDDtWGgoY75wwfWHzX/NiGaEi0LHCQ8dsgp7H+BhssTkJPZbv6BJcA34yfb6dISjvW2S/QGKMwgYr9ArfGLUTWPbj+EbL7Bf9VsTFe9nP+FnYqEu4+oBIbY2heXWA+FCi0zxmMY4oYJxT5cJi1nffVOxboKLm4kIT93gv1WdcDiQDVdy5sJ1q0gJyiRt1HfJW4l8jn36VJ0FvdGmRliOTzSfeER0gbIsOcxeArHRV3ff/CoSocnSs0To5vFKgjlGwhdE8sJsqILgZnIoKwVvOXuDOz/RhbdBPpVsG7upk7bLJtLv9P5h0h/gUIWA1iktaYBSDL0UofjSrfNhZH6M0P+soIuooanSlVGivTlASw1pd+gjvebbc9ksvGZVqPQT0XegIvZkwfu8moERZUqv/xhNcyWTEGfFKoeHt5ub8Ac0LOe9Ak6N+p8xDjTdkmUgte5J/CNL1JL3JA/iqocAo+VvmIbPatbrOwUNcROOS3WeFg8MfNrbDyYCVNbZWAyM6wwfLB2fIUB2jw== tulg@highcommand" # content of authorized_keys file
|
||||
];
|
||||
users.users."tulg".openssh.authorizedKeys.keys = [
|
||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDIefprdYz4gFgBqGlrkycWcTYxFttQHRjDQmREtQTiGyqK1gQiB4z4Cbiayt7Emq224sbaobQPlNSyhlBCSo/Wf0bmZMz8NwNdwhFSkDnyD6LPaHg8fv9FXnWW0wBMl4oSD2wfGbMQBrecjgHXfJ64UiHyyhDllDDtWGgoY75wwfWHzX/NiGaEi0LHCQ8dsgp7H+BhssTkJPZbv6BJcA34yfb6dISjvW2S/QGKMwgYr9ArfGLUTWPbj+EbL7Bf9VsTFe9nP+FnYqEu4+oBIbY2heXWA+FCi0zxmMY4oYJxT5cJi1nffVOxboKLm4kIT93gv1WdcDiQDVdy5sJ1q0gJyiRt1HfJW4l8jn36VJ0FvdGmRliOTzSfeER0gbIsOcxeArHRV3ff/CoSocnSs0To5vFKgjlGwhdE8sJsqILgZnIoKwVvOXuDOz/RhbdBPpVsG7upk7bLJtLv9P5h0h/gUIWA1iktaYBSDL0UofjSrfNhZH6M0P+soIuooanSlVGivTlASw1pd+gjvebbc9ksvGZVqPQT0XegIvZkwfu8moERZUqv/xhNcyWTEGfFKoeHt5ub8Ac0LOe9Ak6N+p8xDjTdkmUgte5J/CNL1JL3JA/iqocAo+VvmIbPatbrOwUNcROOS3WeFg8MfNrbDyYCVNbZWAyM6wwfLB2fIUB2jw== tulg@highcommand" # content of authorized_keys file
|
||||
];
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||
# this value at the release version of the first install of this system.
|
||||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes"];
|
||||
services.displayManager.ly.enable = true;
|
||||
system.stateVersion = "25.05"; # Did you read the comment?
|
||||
|
||||
}
|
||||
193
flake.lock
generated
Normal file
193
flake.lock
generated
Normal file
|
|
@ -0,0 +1,193 @@
|
|||
{
|
||||
"nodes": {
|
||||
"base16-schemes": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696158499,
|
||||
"narHash": "sha256-5yIHgDTPjoX/3oDEfLSQ0eJZdFL1SaCfb9d6M0RmOTM=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-schemes",
|
||||
"rev": "a9112eaae86d9dd8ee6bb9445b664fba2f94037a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-schemes",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1760641408,
|
||||
"narHash": "sha256-Y086n2U0kN9HjOo+UScwQDS27gKMiIlT6vDehvlmdAg=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "847669dabf374d32a072bdab3f08cae7296ac011",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"zen-browser",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752603129,
|
||||
"narHash": "sha256-S+wmHhwNQ5Ru689L2Gu8n1OD6s9eU9n9mD827JNR+kw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "e8c19a3cec2814c754f031ab3ae7316b64da085b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-colors": {
|
||||
"inputs": {
|
||||
"base16-schemes": "base16-schemes",
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1707825078,
|
||||
"narHash": "sha256-hTfge2J2W+42SZ7VHXkf4kjU+qzFqPeC9k66jAUBMHk=",
|
||||
"owner": "misterio77",
|
||||
"repo": "nix-colors",
|
||||
"rev": "b01f024090d2c4fc3152cd0cf12027a7b8453ba1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "misterio77",
|
||||
"repo": "nix-colors",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1760524057,
|
||||
"narHash": "sha256-EVAqOteLBFmd7pKkb0+FIUyzTF61VKi7YmvP1tw4nEw=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "544961dfcce86422ba200ed9a0b00dd4b1486ec5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1697935651,
|
||||
"narHash": "sha256-qOfWjQ2JQSQL15KLh6D7xQhx0qgZlYZTYlcEiRuAMMw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "e1e11fdbb01113d85c7f41cada9d2847660e3902",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1760038930,
|
||||
"narHash": "sha256-Oncbh0UmHjSlxO7ErQDM3KM0A5/Znfofj2BSzlHLeVw=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "0b4defa2584313f3b781240b29d61f6f9f7e0df3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"home-manager": "home-manager",
|
||||
"nix-colors": "nix-colors",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"spicetify-nix": "spicetify-nix",
|
||||
"zen-browser": "zen-browser"
|
||||
}
|
||||
},
|
||||
"spicetify-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1760243311,
|
||||
"narHash": "sha256-LNrok211+WWlMGWqpGPpnGcnWhyo5SfvMv62uDiLzoI=",
|
||||
"owner": "Gerg-L",
|
||||
"repo": "spicetify-nix",
|
||||
"rev": "93f1d45e48191a0b24c5c15e5cf369566ff75be9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Gerg-L",
|
||||
"repo": "spicetify-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"zen-browser": {
|
||||
"inputs": {
|
||||
"home-manager": "home-manager_2",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1760646099,
|
||||
"narHash": "sha256-hFoiRU9tM0ilgZS4gSO00nbnsuTQoYGQBb8+5Vma3Og=",
|
||||
"owner": "0xc000022070",
|
||||
"repo": "zen-browser-flake",
|
||||
"rev": "f3fd50667a6ab075b1e7c406ff30c54684cefa16",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "0xc000022070",
|
||||
"repo": "zen-browser-flake",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
52
flake.nix
Normal file
52
flake.nix
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
{
|
||||
description = "NixOS configuration";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
spicetify-nix.url = "github:Gerg-L/spicetify-nix";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
nix-colors.url = "github:misterio77/nix-colors";
|
||||
zen-browser = {
|
||||
url = "github:0xc000022070/zen-browser-flake";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, home-manager, nix-colors, ... } @ inputs:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
in {
|
||||
nixosConfigurations.virgil = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
./configuration.nix
|
||||
home-manager.nixosModules.home-manager
|
||||
|
||||
{
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
|
||||
# Pass additional inputs to home-manager modules
|
||||
extraSpecialArgs = { inherit inputs nix-colors; };
|
||||
|
||||
backupFileExtension = "backup";
|
||||
|
||||
users.tulg = {
|
||||
imports = [ ./home.nix ];
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
37
hardware-configuration.nix
Normal file
37
hardware-configuration.nix
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
# 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 + "/profiles/qemu-guest.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "virtio_scsi" "sr_mod" "virtio_blk" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/10d6e759-3b2a-4593-b7c8-21b78352781d";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/3639-959D";
|
||||
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.enp1s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
}
|
||||
154
home.nix
Normal file
154
home.nix
Normal file
|
|
@ -0,0 +1,154 @@
|
|||
{ config, lib, pkgs, inputs, nix-colors, ... }:
|
||||
|
||||
let
|
||||
dots = "${config.home.homeDirectory}/nixdots/config";
|
||||
symlink = path: config.lib.file.mkOutOfStoreSymlink path;
|
||||
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.system};
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
inputs.zen-browser.homeModules.twilight
|
||||
inputs.spicetify-nix.homeManagerModules.default
|
||||
|
||||
];
|
||||
home.username = "tulg";
|
||||
home.homeDirectory = "/home/tulg";
|
||||
home.stateVersion = "25.05";
|
||||
home.packages = with pkgs; [
|
||||
networkmanagerapplet
|
||||
wdisplays
|
||||
nwg-look
|
||||
rose-pine-gtk-theme
|
||||
xfce.thunar
|
||||
arc-theme
|
||||
# spotify
|
||||
pavucontrol
|
||||
wl-clipboard
|
||||
hyprcursor
|
||||
parsec-bin
|
||||
file-roller
|
||||
hyprpolkitagent
|
||||
swww
|
||||
grim
|
||||
slurp
|
||||
lf
|
||||
pistol
|
||||
waybar
|
||||
wofi
|
||||
mako
|
||||
kitty
|
||||
vesktop
|
||||
libsForQt5.qtstyleplugin-kvantum
|
||||
libsForQt5.qt5ct
|
||||
rose-pine-kvantum
|
||||
];
|
||||
programs.vscode.enable = true;
|
||||
programs.zen-browser.enable = true;
|
||||
programs.zen-browser.policies = {
|
||||
DisableAppUpdate = true;
|
||||
DisableTelemetry = true;
|
||||
};
|
||||
|
||||
programs.spicetify = {
|
||||
enable = true;
|
||||
theme = spicePkgs.themes.ziro;
|
||||
colorScheme = "rose-pine-moon";
|
||||
};
|
||||
|
||||
xdg.configFile."hypr" = {
|
||||
source = symlink "${dots}/hypr";
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
xdg.configFile."waybar" = {
|
||||
source = symlink "${dots}/waybar";
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
xdg.configFile."kitty" = {
|
||||
source = symlink "${dots}/kitty";
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
xdg.configFile."wofi" = {
|
||||
source = symlink "${dots}/wofi";
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
xdg.configFile."mako" = {
|
||||
source = symlink "${dots}/mako";
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
xdg.configFile."lf" = {
|
||||
source = symlink "${dots}/lf";
|
||||
recursive = true;
|
||||
};
|
||||
programs.firefox.enable = true;
|
||||
programs.bash = {
|
||||
enable = true;
|
||||
shellAliases = {
|
||||
a = "echo ids";
|
||||
};
|
||||
};
|
||||
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "tulg";
|
||||
userEmail = "tulg@protonmail.ch";
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
|
||||
theme = {
|
||||
name = "Nordic-darker";
|
||||
package = pkgs.nordic;
|
||||
};
|
||||
|
||||
iconTheme = {
|
||||
name = "Papirus-Dark";
|
||||
package = pkgs.papirus-icon-theme;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
home.pointerCursor = {
|
||||
gtk.enable = true;
|
||||
x11.enable = true;
|
||||
package = pkgs.bibata-cursors;
|
||||
name = "Bibata-Modern-Classic";
|
||||
size = 16;
|
||||
};
|
||||
nixpkgs.config.qt5 = {
|
||||
enable = true;
|
||||
platformTheme = "qt5ct";
|
||||
style = {
|
||||
package = pkgs.rose-pine-kvantum;
|
||||
name = "Rose-pine";
|
||||
};
|
||||
};
|
||||
#
|
||||
#
|
||||
home.sessionVariables = {
|
||||
NIXOS_OZONE_WL = "1"; # hint Electron apps to use Wayland
|
||||
GTK_THEME = "rose-pine";
|
||||
QT_QPA_PLATFORMTHEME = "qt5ct";
|
||||
QT_QPA_PLATFORM = "wayland";
|
||||
};
|
||||
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
config.common.default = "*";
|
||||
xdgOpenUsePortal = true;
|
||||
extraPortals = [
|
||||
pkgs.xdg-desktop-portal-hyprland
|
||||
pkgs.xdg-desktop-portal-gtk
|
||||
];
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue