First commit
This commit is contained in:
@@ -0,0 +1,161 @@
|
||||
##############################################
|
||||
# These files are just for reference.
|
||||
# If you want to change anything, edit the source files in:
|
||||
# ~/system-master/assets/conf
|
||||
#
|
||||
# Temporarily(!) testing can by editing this file, edit the file and reloading hyprshell
|
||||
# After that, run:
|
||||
# cd ~/system-master && emacs README.org --batch -f org-babel-tangle && git add . && git commit -m "Adjusted conf files" && sudo nixos-rebuild switch --flake .#<yourhost>
|
||||
#
|
||||
# If everything still works, you can use the same command but:
|
||||
# - keep "switch"
|
||||
# - and add a reboot:
|
||||
#
|
||||
# cd ~/system-master && sudo nixos-rebuild switch --flake .#<yourhost> && systemctl reboot
|
||||
#
|
||||
# Make sure the lines starting with: cd ~/system-master
|
||||
# are written as ONE single line.
|
||||
###############################################
|
||||
|
||||
|
||||
|
||||
# Keybindings #
|
||||
###############
|
||||
|
||||
$mainMod = SUPER
|
||||
|
||||
|
||||
# use walker to show exec menu
|
||||
bind = $mainMod, Space , exec, walker
|
||||
bind = $mainMod, P, pseudo
|
||||
bind = $mainMod, T, togglesplit
|
||||
|
||||
# grimblast
|
||||
bind = $mainMod SHIFT, p, exec, grimblast -n -f copysave active
|
||||
bind = $mainMod SHIFT, a, exec, grimblast -n -f copysave area
|
||||
bind = $mainMod ALT, p, exec, grimblast -n -f copysave output
|
||||
bind = $mainMod CTRL, p, exec, grimblast -n -f copysave screen
|
||||
|
||||
# Terminal / launcher / kill / reload
|
||||
bind = $mainMod, E, exec, thunar
|
||||
bind = $mainMod, RETURN, exec, kitty
|
||||
bind = $mainMod, D, exec, wofi --show drun
|
||||
bind = $mainMod, Q, killactive,
|
||||
bind = $mainMod SHIFT, Q, exit,
|
||||
bind = $mainMod SHIFT, R, exec, hyprctl reload
|
||||
|
||||
# Default browser
|
||||
bind = $mainMod, W, exec, flatpak run app.zen_browser.zen
|
||||
|
||||
# Switch windows
|
||||
bind = $mainMod, TAB, hyprexpo:expo, toggle
|
||||
bind = ALT, TAB, cyclenext
|
||||
bind = ALT SHIFT, TAB, cyclenext , prev
|
||||
|
||||
# Focus movement
|
||||
bind = $mainMod, H, movefocus, l
|
||||
bind = $mainMod, L, movefocus, r
|
||||
bind = $mainMod, K, movefocus, u
|
||||
bind = $mainMod, J, movefocus, d
|
||||
bind = $mainMod, left, movefocus, l
|
||||
bind = $mainMod, right, movefocus, r
|
||||
bind = $mainMod, up, movefocus, u
|
||||
bind = $mainMod, down, movefocus, d
|
||||
|
||||
# # Move windows
|
||||
bind = $mainMod SHIFT, H, movewindow, l
|
||||
bind = $mainMod SHIFT, L, movewindow, r
|
||||
bind = $mainMod SHIFT, K, movewindow, u
|
||||
bind = $mainMod SHIFT, J, movewindow, d
|
||||
bind = $mainMod SHIFT, left, movewindow, l
|
||||
bind = $mainMod SHIFT, right, movewindow, r
|
||||
bind = $mainMod SHIFT, up, movewindow, u
|
||||
bind = $mainMod SHIFT, down, movewindow, d
|
||||
|
||||
# Resize windows
|
||||
bind = $mainMod CTRL, H, resizeactive, -30 0
|
||||
bind = $mainMod CTRL, L, resizeactive, 30 0
|
||||
bind = $mainMod CTRL, K, resizeactive, 0 -30
|
||||
bind = $mainMod CTRL, J, resizeactive, 0 30
|
||||
|
||||
# Floating / fullscreen
|
||||
bind = $mainMod, V, togglefloating,
|
||||
bind = $mainMod, F, fullscreen, 0
|
||||
bind = $mainMod SHIFT, F, fullscreen, 1
|
||||
|
||||
# Workspaces
|
||||
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
|
||||
|
||||
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
||||
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
||||
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
||||
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
||||
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
||||
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
||||
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
||||
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
||||
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
||||
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
||||
|
||||
# Cycle workspaces
|
||||
bind = $mainMod, mouse_down, workspace, e+1
|
||||
bind = $mainMod, mouse_up, workspace, e-1
|
||||
|
||||
# Mouse drag
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
#########################
|
||||
# Screenshots
|
||||
#########################
|
||||
bind = $mainMod SHIFT, s, exec, grim -g "$(slurp)" - | wl-copy
|
||||
bind = , XF86Screenshot, exec, grim - | wl-copy
|
||||
|
||||
#########################
|
||||
# Audio (pamixer)
|
||||
#########################
|
||||
bind = , XF86AudioRaiseVolume, exec, pamixer -i 5
|
||||
bind = , XF86AudioLowerVolume, exec, pamixer -d 5
|
||||
bind = , XF86AudioMute, exec, pamixer -t
|
||||
bind = , XF86AudioMicMute, exec, pamixer --default-source -t
|
||||
|
||||
#########################
|
||||
# Media (playerctl)
|
||||
#########################
|
||||
bind = , XF86AudioPlay, exec, playerctl play-pause
|
||||
bind = , XF86AudioPause, exec, playerctl pause
|
||||
bind = , XF86AudioNext, exec, playerctl next
|
||||
bind = , XF86AudioPrev, exec, playerctl previous
|
||||
bind = , XF86AudioStop, exec, playerctl stop
|
||||
|
||||
#########################
|
||||
# Brightness (brightnessctl)
|
||||
#########################
|
||||
bind = , XF86MonBrightnessUp, exec, brightnessctl set +10%
|
||||
bind = , XF86MonBrightnessDown, exec, brightnessctl set 10%-
|
||||
bind = , XF86KbdBrightnessUp, exec, brightnessctl -d '*kbd_backlight*' set +10%
|
||||
bind = , XF86KbdBrightnessDown, exec, brightnessctl -d '*kbd_backlight*' set 10%-
|
||||
|
||||
#########################
|
||||
# Power / session
|
||||
#########################
|
||||
bind = , XF86Sleep, exec, systemctl suspend
|
||||
bind = , XF86PowerOff, exec, systemctl poweroff
|
||||
bind = , XF86WakeUp, exec, systemctl suspend
|
||||
|
||||
#########################
|
||||
# Start apps
|
||||
#########################
|
||||
bind = CTRL ALT, B, exec, flatpak run eu.betterbird.Betterbird
|
||||
bind = CTRL ALT, S, exec, spotify
|
||||
bind = CTRL ALT, z, exec, flatpak run app.zen_browser.zen --filesystem=home
|
||||
bind = CTRL ALT, k, exec, kate
|
||||
@@ -0,0 +1,16 @@
|
||||
general {
|
||||
lock_cmd = hyprlock
|
||||
after_sleep_cmd = hyprctl dispatch dpms on
|
||||
ignore_dbus_inhibit = false
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 600
|
||||
on-timeout = hyprlock
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 900
|
||||
on-timeout = hyprctl dispatch dpms off
|
||||
on-resume = hyprctl dispatch dpms on
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
##############################################
|
||||
# These files are just for reference.
|
||||
# If you want to change anything definitive, edit the source files in:
|
||||
# ~/system-master/assets/conf
|
||||
# Temporarily(!) testing can by editing this file, edit the file and reloading hyprshell
|
||||
#
|
||||
# After that, run:
|
||||
# cd ~/system-master && emacs README.org --batch -f org-babel-tangle && git add . && git commit -m "Adjusted conf files" && sudo nixos-rebuild switch --flake .#<yourhost>
|
||||
#
|
||||
# If everything still works, you can use the same command but:
|
||||
# - keep "switch"
|
||||
# - and add a reboot:
|
||||
#
|
||||
# cd ~/system-master && sudo nixos-rebuild switch --flake .#<yourhost> && systemctl reboot
|
||||
#
|
||||
# NOTE:
|
||||
# Make sure the lines starting with: cd ~/system-master
|
||||
# are written as ONE single line.
|
||||
###############################################
|
||||
|
||||
############################
|
||||
# Variables
|
||||
############################
|
||||
|
||||
# Colors (Hyprland "col" values commonly use rgba(aarrggbb)-style hex)
|
||||
# See Hyprland variable / type docs for color formats & bools. :contentReference[oaicite:2]{index=2}
|
||||
$base = rgba(1e1e2eff)
|
||||
$inactive = rgba(595959aa)
|
||||
$blue = rgba(33ccffee)
|
||||
$green = rgba(00ff99ee)
|
||||
|
||||
# Recommended for correct environment in systemd user session / portals. :contentReference[oaicite:4]{index=4}
|
||||
exec-once = dbus-update-activation-environment --systemd --all
|
||||
exec-once = uwsm app -- waybar
|
||||
|
||||
input {
|
||||
follow_mouse = 1
|
||||
kb_layout = us
|
||||
kb_options = ctrl:nocaps
|
||||
sensitivity = -0.5
|
||||
accel_profile = adaptive
|
||||
scroll_factor = 0.5
|
||||
touchpad {
|
||||
natural_scroll = yes
|
||||
scroll_factor = 0.5
|
||||
}
|
||||
}
|
||||
cursor {
|
||||
no_hardware_cursors = true
|
||||
}
|
||||
general {
|
||||
gaps_in = 2
|
||||
gaps_out = 4
|
||||
border_size = 2
|
||||
# Gradient syntax: color color angle (e.g. 45deg). :contentReference[oaicite:5]{index=5}
|
||||
col.active_border = $blue $green 45deg
|
||||
col.inactive_border = $inactive
|
||||
layout = dwindle
|
||||
resize_on_border = true
|
||||
extend_border_grab_area = 20 # Makes it easier to "grab" the edge
|
||||
}
|
||||
decoration {
|
||||
rounding = 5
|
||||
}
|
||||
animations {
|
||||
enabled = yes
|
||||
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
||||
animation = windows, 1, 7, myBezier
|
||||
animation = windowsOut, 1, 7, default, popin 80%
|
||||
animation = border, 1, 10, default
|
||||
animation = borderangle, 1, 8, default
|
||||
animation = fade, 1, 7, default
|
||||
animation = workspaces, 1, 6, default
|
||||
}
|
||||
dwindle {
|
||||
pseudotile = yes
|
||||
preserve_split = yes
|
||||
}
|
||||
misc {
|
||||
disable_hyprland_logo = false
|
||||
focus_on_activate = true
|
||||
}
|
||||
# Start required session helpers
|
||||
exec-once = hypridle
|
||||
exec-once = hyprpolkitagent
|
||||
# Lid close: lock only if no external monitor is connected
|
||||
bindl = , switch:on:Lid Switch, exec, ~/.config/hypr/scripts/lid-lock.sh
|
||||
# Lid open: turn DPMS back on (does not unlock)
|
||||
bindl = , switch:off:Lid Switch, exec, hyprctl dispatch dpms on
|
||||
|
||||
exec-once = systemd-run --user --scope --unit=elephant elephant
|
||||
@@ -0,0 +1,32 @@
|
||||
# ~/.config/hypr/hyprlock.conf
|
||||
|
||||
general {
|
||||
grace = 2
|
||||
ignore_empty_input = true
|
||||
}
|
||||
|
||||
background {
|
||||
path = ~/.config/hypr/lock.png
|
||||
blur_passes = 2
|
||||
blur_size = 6
|
||||
}
|
||||
|
||||
input-field {
|
||||
size = 320, 60
|
||||
outline_thickness = 2
|
||||
dots_size = 0.25
|
||||
dots_spacing = 0.20
|
||||
fade_on_empty = true
|
||||
placeholder_text = "Password"
|
||||
position = 0, -120
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
label {
|
||||
text = $TIME
|
||||
font_size = 72
|
||||
position = 0, 120
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
// Edit with `hyprshell config edit` <-- GUI app, resize!
|
||||
(
|
||||
version: 3,
|
||||
windows: (
|
||||
scale: 8.5,
|
||||
items_per_row: 5 ,
|
||||
overview: (
|
||||
launcher: (
|
||||
default_terminal: None,
|
||||
launch_modifier: "ctrl",
|
||||
width: 800,
|
||||
max_items: 5,
|
||||
show_when_empty: true,
|
||||
plugins: (
|
||||
applications: (
|
||||
run_cache_weeks: 8,
|
||||
show_execs: true,
|
||||
show_actions_submenu: true,
|
||||
),
|
||||
terminal: None,
|
||||
shell: None,
|
||||
websearch: None,
|
||||
calc: (),
|
||||
path: (),
|
||||
actions: (
|
||||
actions: [
|
||||
lock_screen,
|
||||
hibernate,
|
||||
logout,
|
||||
reboot,
|
||||
shutdown,
|
||||
suspend,
|
||||
custom(
|
||||
names: [
|
||||
"Kill",
|
||||
"Stop",
|
||||
],
|
||||
details: "Kill or stop a process by name",
|
||||
command: "pkill \"{}\" && notify-send hyprshell \"stopped {}\"",
|
||||
icon: "remove",
|
||||
),
|
||||
custom(
|
||||
names: [
|
||||
"Reload Hyprshell",
|
||||
],
|
||||
details: "Reload Hyprshell",
|
||||
command: "sleep 1; hyprshell socat \'\"Restart\"\'",
|
||||
icon: "system-restart",
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
key: "Super_L",
|
||||
modifier: "super",
|
||||
filter_by: [],
|
||||
hide_filtered: false,
|
||||
exclude_special_workspaces: "",
|
||||
),
|
||||
switch: (
|
||||
modifier: "alt",
|
||||
key: "Tab",
|
||||
filter_by: [
|
||||
current_monitor,
|
||||
],
|
||||
switch_workspaces: false,
|
||||
exclude_special_workspaces: "",
|
||||
),
|
||||
switch_2: None,
|
||||
),
|
||||
)
|
||||
@@ -0,0 +1,8 @@
|
||||
window {
|
||||
background: rgba(20, 20, 20, 0.92);
|
||||
border-radius: 18px;
|
||||
}
|
||||
|
||||
* {
|
||||
background-color: unset;
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# If ANY external monitor exists, do NOT lock on lid close (clamshell use-case).
|
||||
# Your internal panel is eDP-1.
|
||||
# Anything not starting with eDP is treated as external.
|
||||
|
||||
if hyprctl monitors -j | grep -q '"name":"[^"]\+"' ; then
|
||||
if hyprctl monitors -j | grep -q '"name":"DP-1"' ; then
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
# Generic: if any monitor is not eDP-1, assume external exists.
|
||||
if hyprctl monitors -j | grep -q '"name":"[^"]\+"' && hyprctl monitors -j | grep -vq '"name":"eDP-1"'; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
exec hyprlock
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.7 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 425 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 962 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 5.3 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 173 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 270 KiB |
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,41 @@
|
||||
##############################################
|
||||
# Wallpaper config (wpaperd, TOML)
|
||||
#
|
||||
# Source-of-truth in repo:
|
||||
# ~/system-master/assets/conf/desktop/wallpaper/wallpaper.conf
|
||||
#
|
||||
# Runtime override (user edits this):
|
||||
# ~/conf/desktop/wallpaper/wallpaper.conf
|
||||
#
|
||||
# Wallpapers are copied from repo to:
|
||||
# ~/wallpapers/
|
||||
# and by default loaded from:
|
||||
# ~/wallpapers/pictures
|
||||
##############################################
|
||||
|
||||
[default]
|
||||
# Directory to pick wallpapers from
|
||||
path = "~/nixos_conf/wallpaperstuff/pictures"
|
||||
|
||||
# Switch every 60 minutes
|
||||
duration = "5m"
|
||||
|
||||
# Random order (ascending/descending/random)
|
||||
sorting = "random"
|
||||
|
||||
# Include subfolders
|
||||
recursive = true
|
||||
|
||||
# How to fit wallpaper on screen
|
||||
mode = "stretch"
|
||||
|
||||
# Transition time in milliseconds
|
||||
transition-time = 2500
|
||||
|
||||
# Apply a "fade-like" transition (uses gl-transitions)
|
||||
[default.transition.dissolve]
|
||||
# (leave empty to use the transition defaults)
|
||||
|
||||
# Apply these defaults to any monitor not explicitly listed
|
||||
[any]
|
||||
# (inherits [default]; keep empty unless you want overrides)
|
||||
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"layer": "top",
|
||||
"height": 34,
|
||||
"modules-left": ["hyprland/workspaces", "hyprland/window"],
|
||||
"modules-right": [
|
||||
"idle_inhibitor",
|
||||
"pulseaudio",
|
||||
"network",
|
||||
"cpu",
|
||||
"memory",
|
||||
"temperature",
|
||||
"battery",
|
||||
"tray",
|
||||
"clock"
|
||||
],
|
||||
|
||||
"idle_inhibitor": {
|
||||
"format": "{icon}",
|
||||
"format-icons": { "activated": " ", "deactivated": " " }
|
||||
},
|
||||
|
||||
"pulseaudio": {
|
||||
"format": "{volume}% {icon}",
|
||||
"format-bluetooth": "{volume}% {icon}",
|
||||
"format-muted": "",
|
||||
"format-icons": {
|
||||
"headphones": "",
|
||||
"headset": "",
|
||||
"phone": "",
|
||||
"portab le": "",
|
||||
"default": ["", ""]
|
||||
},
|
||||
"on-click": "pavucontrol"
|
||||
},
|
||||
|
||||
"network": {
|
||||
"format-wifi": " ({bandwidthDownBits})",
|
||||
"format-ethernet": " ({bandwidthDownBits})",
|
||||
"format-disconnected": "Disconnected ⚠",
|
||||
"tooltip-format-wifi": "{essid} ({signalStrength}%)",
|
||||
"tooltip-format-ethernet": "{ifname}: {ipaddr}/{cidr}",
|
||||
"on-click": "impala"
|
||||
},
|
||||
|
||||
"cpu": { "format": "{usage}% ", "tooltip": false },
|
||||
"memory": { "format": "{percentage}% " },
|
||||
|
||||
"temperature": { "format": "{temperatureC}°C ", "tooltip": false },
|
||||
|
||||
"tray": { "spacing": 10, "icon-size": 14 },
|
||||
|
||||
"clock": { "format": "{:%a, %d %b %Y - %H:%M}", "tooltip": false },
|
||||
|
||||
"battery": {
|
||||
"bat": "BAT0",
|
||||
"states": { "good": 95, "warning": 30, "critical": 15 },
|
||||
"format": "{capacity}% {icon}",
|
||||
"format-charging": "{capacity}% ",
|
||||
"format-plugged": "{capacity}% ",
|
||||
"format-icons": ["", "", "", "", " "]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
* {
|
||||
font-family: Aporetic Sans Mono, Iosevka Nerd Font, Roboto, Helvetica, Arial, sans-serif;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background-color: @base;
|
||||
color: @text;
|
||||
transition-property: background-color;
|
||||
border-bottom: 0px solid rgba(0, 0, 0, 0);
|
||||
transition-duration: .5s;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 0 5px;
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
color: @text;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
background: @surface1;
|
||||
color: @text;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
background-color: @green;
|
||||
color: @base;
|
||||
box-shadow: inset 0 -3px @subtext1;
|
||||
}
|
||||
|
||||
#clock,
|
||||
#idle_inhibitor,
|
||||
#battery,
|
||||
#cpu,
|
||||
#memory,
|
||||
#temperature,
|
||||
#network,
|
||||
#pulseaudio,
|
||||
#tray {
|
||||
margin: 0 5px;
|
||||
padding: 0 2px;
|
||||
}
|
||||
|
||||
#idle_inhibitor.activated {
|
||||
background-color: @green;
|
||||
}
|
||||
|
||||
#battery.charging {
|
||||
color: @green;
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
to {
|
||||
background-color: #ffffff;
|
||||
color: black;
|
||||
}
|
||||
}
|
||||
|
||||
#battery.warning:not(.charging) {
|
||||
color: white;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
|
||||
#window,
|
||||
#workspaces {
|
||||
margin: 0 4px;
|
||||
}
|
||||
|
||||
.modules-left > widget:first-child > #workspaces {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.modules-right > widget:last-child > #workspaces {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
#network.disconnected {
|
||||
background-color: @red;
|
||||
}
|
||||
|
||||
#temperature.critical {
|
||||
background-color: @red;
|
||||
}
|
||||
Reference in New Issue
Block a user