reorg home-manager
|
@ -13,6 +13,7 @@ nix develop -c /etc/nixos/git/docs/setup.sh
|
||||||
![Gruv'd Hyprland](./docs/screenshot.png "Hyprland with a Gruvboxy theme")
|
![Gruv'd Hyprland](./docs/screenshot.png "Hyprland with a Gruvboxy theme")
|
||||||
---
|
---
|
||||||
# To Do List
|
# To Do List
|
||||||
|
* [ ] Reorganize Home-Manager
|
||||||
* [ ] Split configs into a common and host-specific config (see hyprland on nixos-vm-02 in home-manager for instance)
|
* [ ] Split configs into a common and host-specific config (see hyprland on nixos-vm-02 in home-manager for instance)
|
||||||
* Reduces duplicate configs
|
* Reduces duplicate configs
|
||||||
* [ ] Look into hosting a binary cache locally - [Link](https://nixos.wiki/wiki/Binary_Cache)
|
* [ ] Look into hosting a binary cache locally - [Link](https://nixos.wiki/wiki/Binary_Cache)
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
{
|
{ pkgs, theme, ... }: {
|
||||||
|
imports = [
|
||||||
|
./themes/${theme}/gnome-conf.nix
|
||||||
|
];
|
||||||
}
|
}
|
|
@ -3,12 +3,16 @@
|
||||||
".config/hypr/hyprland.conf" = {
|
".config/hypr/hyprland.conf" = {
|
||||||
enable = true;
|
enable = true;
|
||||||
text = ''
|
text = ''
|
||||||
layerrule = blur, waybar
|
# https://wiki.hyprland.org/Configuring/Variables/
|
||||||
|
env = GDK_SCALE,1
|
||||||
|
env = XCURSOR_SIZE,22
|
||||||
|
|
||||||
# unscale XWayland
|
# unscale XWayland
|
||||||
xwayland {
|
xwayland {
|
||||||
force_zero_scaling = true
|
force_zero_scaling = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
layerrule = blur, waybar
|
||||||
|
|
||||||
# nVidia Speficic Settings:
|
# nVidia Speficic Settings:
|
||||||
# https://wiki.hyprland.org/Nvidia/
|
# https://wiki.hyprland.org/Nvidia/
|
||||||
|
@ -169,54 +173,6 @@
|
||||||
# trigger when the switch is turning off
|
# trigger when the switch is turning off
|
||||||
bindl=,switch:off:1241ec0,exec,hyprctl keyword monitor "eDP-1, disable"
|
bindl=,switch:off:1241ec0,exec,hyprctl keyword monitor "eDP-1, disable"
|
||||||
|
|
||||||
# Laptop specific config
|
|
||||||
# Set up the FN keys:
|
|
||||||
|
|
||||||
# F1 - Mute
|
|
||||||
# bind = , XF86AudioMute, exec, amixer set Master toggle && swayosd --output-volume=mute-toggle
|
|
||||||
bind = , XF86AudioMute, exec, swayosd --output-volume=mute-toggle
|
|
||||||
|
|
||||||
# F2 - Volume Down
|
|
||||||
# binde = , XF86AudioLowerVolume, exec, amixer set Master 3%-
|
|
||||||
binde = , XF86AudioLowerVolume, exec, swayosd --output-volume=lower
|
|
||||||
|
|
||||||
# F3 - Volume Up
|
|
||||||
# binde = , XF86AudioRaiseVolume, exec, amixer set Master 3%+
|
|
||||||
binde = , XF86AudioRaiseVolume, exec, swayosd --output-volume=raise
|
|
||||||
|
|
||||||
# F4 - Mute Microphone
|
|
||||||
# bind = , XF86AudioMicMute, exec, amixer set Capture toggle
|
|
||||||
bind = , XF86AudioMicMute, exec, swayosd --input-volume=mute-toggle
|
|
||||||
|
|
||||||
# F5 - Brightness Down
|
|
||||||
# binde = , XF86MonBrightnessDown, exec, light -U 5
|
|
||||||
binde = , XF86MonBrightnessDown, exec, swayosd --brightness=lower
|
|
||||||
|
|
||||||
# F6 - Brightness Up
|
|
||||||
# binde = , XF86MonBrightnessUp, exec, light -A 5
|
|
||||||
binde = , XF86MonBrightnessUp, exec, swayosd --brightness=raise
|
|
||||||
|
|
||||||
# F7 - External Displays
|
|
||||||
# bind = , XF86
|
|
||||||
|
|
||||||
# F8 - Airplane Mode
|
|
||||||
# bind = , XF86
|
|
||||||
|
|
||||||
# F9 - Notifications?
|
|
||||||
# bind = , XF86
|
|
||||||
|
|
||||||
# F10 - Call Answer?
|
|
||||||
# bind = , XF86
|
|
||||||
|
|
||||||
# F11 - Call Hang Up?
|
|
||||||
# bind = , XF86
|
|
||||||
|
|
||||||
# F12 - Favorites?
|
|
||||||
# bind = , XF86
|
|
||||||
|
|
||||||
# Use rofi as an alt-tab switcher
|
|
||||||
# bind = ALT, TAB, exec, rofi -show window
|
|
||||||
|
|
||||||
# Resize
|
# Resize
|
||||||
bind = $mainMod, R, exec, notify-send "Entered resize mode. Press ESC to quit."
|
bind = $mainMod, R, exec, notify-send "Entered resize mode. Press ESC to quit."
|
||||||
bind = $mainMod, R, submap, resize
|
bind = $mainMod, R, submap, resize
|
||||||
|
@ -236,40 +192,4 @@
|
||||||
exec-once=bash ~/.config/hypr/start.sh
|
exec-once=bash ~/.config/hypr/start.sh
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
# Set the custom launcher script
|
|
||||||
".config/hypr/start.sh" = {
|
|
||||||
enable = true;
|
|
||||||
executable = true;
|
|
||||||
text = ''
|
|
||||||
#!/usr/bin/env bash
|
|
||||||
# https://wiki.hyprland.org/FAQ/#some-of-my-apps-take-a-really-long-time-to-open
|
|
||||||
dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &
|
|
||||||
|
|
||||||
# Set the wallpaper
|
|
||||||
swww init
|
|
||||||
|
|
||||||
# Waybar
|
|
||||||
waybar &
|
|
||||||
|
|
||||||
# Set up the idle management daemon
|
|
||||||
swayidle -w \
|
|
||||||
timeout 120 'swaylock -f && playerctl pause' \
|
|
||||||
timeout 180 'hyprctl dispatch dpms off' \
|
|
||||||
timeout 300 'systemctl suspend-then-hibernate' \
|
|
||||||
resume 'hyprctl dispatch dpms on' \
|
|
||||||
before-sleep 'swaylock -f' \
|
|
||||||
before-sleep 'playerctl pause' &
|
|
||||||
|
|
||||||
# Automatic device mounting
|
|
||||||
udiskie &
|
|
||||||
|
|
||||||
DIR=/etc/nixos/git/wallpapers/${theme}
|
|
||||||
IMG=`ls $DIR | shuf -n 1`
|
|
||||||
swww img $DIR/$IMG -t random &
|
|
||||||
|
|
||||||
# Notification listener
|
|
||||||
mako
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 5 KiB After Width: | Height: | Size: 5 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
@ -0,0 +1,44 @@
|
||||||
|
{ ... }: {
|
||||||
|
xdg.configFile."wlogout/layout" = {
|
||||||
|
enable = true;
|
||||||
|
target = "./wlogout/layout";
|
||||||
|
text = ''
|
||||||
|
{
|
||||||
|
"label" : "lock",
|
||||||
|
"action" : "swaylock",
|
||||||
|
"text" : "Lock",
|
||||||
|
"keybind" : "l"
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"label" : "hibernate",
|
||||||
|
"action" : "systemctl hibernate",
|
||||||
|
"text" : "Hibernate",
|
||||||
|
"keybind" : "h"
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"label" : "logout",
|
||||||
|
"action" : "loginctl terminate-user $USER",
|
||||||
|
"text" : "Logout",
|
||||||
|
"keybind" : "e"
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"label" : "shutdown",
|
||||||
|
"action" : "systemctl poweroff",
|
||||||
|
"text" : "Shutdown",
|
||||||
|
"keybind" : "s"
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"label" : "suspend",
|
||||||
|
"action" : "systemctl suspend",
|
||||||
|
"text" : "Suspend",
|
||||||
|
"keybind" : "u"
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"label" : "reboot",
|
||||||
|
"action" : "systemctl reboot",
|
||||||
|
"text" : "Reboot",
|
||||||
|
"keybind" : "r"
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,11 +1,10 @@
|
||||||
{ pkgs, theme, ... }: {
|
{ pkgs, theme, ... }: {
|
||||||
imports = [
|
imports = [
|
||||||
./${theme}/mako-conf.nix
|
./themes/${theme}
|
||||||
./${theme}/rofi-conf.nix
|
|
||||||
./${theme}/swaylock-conf.nix
|
|
||||||
./${theme}/wlogout-conf.nix
|
|
||||||
|
|
||||||
# GTK theme applied in home-manager/common/software/cli/bash.nix
|
# GTK theme applied in home-manager/common/software/cli/bash.nix
|
||||||
./swayosd-conf.nix
|
# Theme agnostic configs
|
||||||
|
./common/swayosd/swayosd-conf.nix
|
||||||
|
./common/waybar/scripts.nix
|
||||||
|
./common/hyprland/hyprland-conf.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
|
@ -1,92 +0,0 @@
|
||||||
{ ... }: {
|
|
||||||
xdg.configFile."wlogout/layout" = {
|
|
||||||
enable = true;
|
|
||||||
target = "./wlogout/layout";
|
|
||||||
text = ''
|
|
||||||
{
|
|
||||||
"label" : "lock",
|
|
||||||
"action" : "swaylock",
|
|
||||||
"text" : "Lock",
|
|
||||||
"keybind" : "l"
|
|
||||||
}
|
|
||||||
{
|
|
||||||
"label" : "hibernate",
|
|
||||||
"action" : "systemctl hibernate",
|
|
||||||
"text" : "Hibernate",
|
|
||||||
"keybind" : "h"
|
|
||||||
}
|
|
||||||
{
|
|
||||||
"label" : "logout",
|
|
||||||
"action" : "loginctl terminate-user $USER",
|
|
||||||
"text" : "Logout",
|
|
||||||
"keybind" : "e"
|
|
||||||
}
|
|
||||||
{
|
|
||||||
"label" : "shutdown",
|
|
||||||
"action" : "systemctl poweroff",
|
|
||||||
"text" : "Shutdown",
|
|
||||||
"keybind" : "s"
|
|
||||||
}
|
|
||||||
{
|
|
||||||
"label" : "suspend",
|
|
||||||
"action" : "systemctl suspend",
|
|
||||||
"text" : "Suspend",
|
|
||||||
"keybind" : "u"
|
|
||||||
}
|
|
||||||
{
|
|
||||||
"label" : "reboot",
|
|
||||||
"action" : "systemctl reboot",
|
|
||||||
"text" : "Reboot",
|
|
||||||
"keybind" : "r"
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
xdg.configFile."wlogout/style.css" = {
|
|
||||||
enable = true;
|
|
||||||
target = "./wlogout/style.css";
|
|
||||||
text = ''
|
|
||||||
* {
|
|
||||||
background-image: none;
|
|
||||||
}
|
|
||||||
window {
|
|
||||||
background-color: rgba(50, 48, 47, 0.8);
|
|
||||||
}
|
|
||||||
button {
|
|
||||||
color: #d5c4a1;
|
|
||||||
font-size: 0px;
|
|
||||||
border-radius: 5000px;
|
|
||||||
margin: 25px;
|
|
||||||
background-color: #1E1E1E;
|
|
||||||
border-style: solid;
|
|
||||||
border-width: 3px;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-position: center;
|
|
||||||
background-size: 25%;
|
|
||||||
}
|
|
||||||
|
|
||||||
button:active, button:hover {
|
|
||||||
background-color: #504945;
|
|
||||||
outline-style: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#lock {
|
|
||||||
background-image: url("/etc/nixos/git/home-manager/common/desktops/hyprland/default/wlogout/lock.png");
|
|
||||||
}
|
|
||||||
#logout {
|
|
||||||
background-image: url("/etc/nixos/git/home-manager/common/desktops/hyprland/default/wlogout/logout.png");
|
|
||||||
}
|
|
||||||
#suspend {
|
|
||||||
background-image: url("/etc/nixos/git/home-manager/common/desktops/hyprland/default/wlogout/suspend.png");
|
|
||||||
}
|
|
||||||
#hibernate {
|
|
||||||
background-image: url("/etc/nixos/git/home-manager/common/desktops/hyprland/default/wlogout/hibernate.png");
|
|
||||||
}
|
|
||||||
#shutdown {
|
|
||||||
background-image: url("/etc/nixos/git/home-manager/common/desktops/hyprland/default/wlogout/shutdown.png");
|
|
||||||
}
|
|
||||||
#reboot {
|
|
||||||
background-image: url("/etc/nixos/git/home-manager/common/desktops/hyprland/default/wlogout/reboot.png");
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
{ ... }: {
|
||||||
|
imports = [
|
||||||
|
./mako-conf.nix
|
||||||
|
./rofi-conf.nix
|
||||||
|
./swaylock-conf.nix
|
||||||
|
./waybar-conf.nix
|
||||||
|
./wlogout-conf.nix
|
||||||
|
];
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
{ ... }: {
|
||||||
|
xdg.configFile."wlogout/style.css" = {
|
||||||
|
enable = true;
|
||||||
|
target = "./wlogout/style.css";
|
||||||
|
text = ''
|
||||||
|
* {
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
window {
|
||||||
|
background-color: rgba(50, 48, 47, 0.8);
|
||||||
|
}
|
||||||
|
button {
|
||||||
|
color: #d5c4a1;
|
||||||
|
font-size: 0px;
|
||||||
|
border-radius: 5000px;
|
||||||
|
margin: 25px;
|
||||||
|
background-color: #1E1E1E;
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 3px;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center;
|
||||||
|
background-size: 25%;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:active, button:hover {
|
||||||
|
background-color: #504945;
|
||||||
|
outline-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#lock { background-image: url("/etc/nixos/git/home-manager/common/desktops/hyprland/common/wlogout/lock.png"); }
|
||||||
|
#logout { background-image: url("/etc/nixos/git/home-manager/common/desktops/hyprland/common/wlogout/logout.png"); }
|
||||||
|
#suspend { background-image: url("/etc/nixos/git/home-manager/common/desktops/hyprland/common/wlogout/suspend.png"); }
|
||||||
|
#hibernate { background-image: url("/etc/nixos/git/home-manager/common/desktops/hyprland/common/wlogout/hibernate.png"); }
|
||||||
|
#shutdown { background-image: url("/etc/nixos/git/home-manager/common/desktops/hyprland/common/wlogout/shutdown.png"); }
|
||||||
|
#reboot { background-image: url("/etc/nixos/git/home-manager/common/desktops/hyprland/common/wlogout/reboot.png"); }
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,6 +1,3 @@
|
||||||
{ hostname, username, ... }: {
|
{
|
||||||
imports = [
|
|
||||||
./gnome-conf.nix
|
|
||||||
# ./gnome-terminal-conf.nix
|
|
||||||
];
|
|
||||||
}
|
}
|
|
@ -1,39 +0,0 @@
|
||||||
{ ... }: {
|
|
||||||
programs.gnome-terminal = {
|
|
||||||
enable = true;
|
|
||||||
themeVariant = "system";
|
|
||||||
profile."Default" = {
|
|
||||||
boldIsBright = true;
|
|
||||||
cursorShape = "block";
|
|
||||||
font = "Jetbrains Regular Mono";
|
|
||||||
colors = {
|
|
||||||
# https://github.com/Gogh-Co/Gogh/blob/master/themes/Gruvbox%20Dark.yml
|
|
||||||
# highlight = [ ];
|
|
||||||
palette = [
|
|
||||||
"#282828" # Black (Host)
|
|
||||||
"#CC241D" # Red (Syntax string)
|
|
||||||
"#98971A" # Green (Command)
|
|
||||||
"#D79921" # Yellow (Command second)
|
|
||||||
"#458588" # Blue (Path)
|
|
||||||
"#B16286" # Magenta (Syntax var)
|
|
||||||
"#689D6A" # Cyan (Prompt)
|
|
||||||
"#A89984" # White
|
|
||||||
|
|
||||||
"#928374" # Bright Black
|
|
||||||
"#FB4934" # Bright Red (Command error)
|
|
||||||
"#B8BB26" # Bright Green (Exec)
|
|
||||||
"#FABD2F" # Bright Yellow
|
|
||||||
"#83A598" # Bright Blue (Folder)
|
|
||||||
"#D3869B" # Bright Magenta
|
|
||||||
"#8EC07C" # Bright Cyan
|
|
||||||
"#EBDBB2" # Bright White
|
|
||||||
|
|
||||||
"#282828" # Background
|
|
||||||
"#EBDBB2" # Foreground (Text)
|
|
||||||
|
|
||||||
"#EBDBB2" # Cursor
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,6 +1,97 @@
|
||||||
{ theme, ... }: {
|
{ theme, ... }: {
|
||||||
imports = [
|
home.file = {
|
||||||
./${theme}/hyprland-conf.nix
|
".config/hypr/hyprland.conf" = {
|
||||||
./${theme}/waybar-conf.nix
|
enable = true;
|
||||||
];
|
text = ''
|
||||||
}
|
|
||||||
|
# Laptop specific:
|
||||||
|
monitor=,highrr,auto,1.25
|
||||||
|
|
||||||
|
# Set up the FN keys:
|
||||||
|
|
||||||
|
# F1 - Mute
|
||||||
|
# bind = , XF86AudioMute, exec, amixer set Master toggle && swayosd --output-volume=mute-toggle
|
||||||
|
bind = , XF86AudioMute, exec, swayosd --output-volume=mute-toggle
|
||||||
|
|
||||||
|
# F2 - Volume Down
|
||||||
|
# binde = , XF86AudioLowerVolume, exec, amixer set Master 3%-
|
||||||
|
binde = , XF86AudioLowerVolume, exec, swayosd --output-volume=lower
|
||||||
|
|
||||||
|
# F3 - Volume Up
|
||||||
|
# binde = , XF86AudioRaiseVolume, exec, amixer set Master 3%+
|
||||||
|
binde = , XF86AudioRaiseVolume, exec, swayosd --output-volume=raise
|
||||||
|
|
||||||
|
# F4 - Mute Microphone
|
||||||
|
# bind = , XF86AudioMicMute, exec, amixer set Capture toggle
|
||||||
|
bind = , XF86AudioMicMute, exec, swayosd --input-volume=mute-toggle
|
||||||
|
|
||||||
|
# F5 - Brightness Down
|
||||||
|
# binde = , XF86MonBrightnessDown, exec, light -U 5
|
||||||
|
binde = , XF86MonBrightnessDown, exec, swayosd --brightness=lower
|
||||||
|
|
||||||
|
# F6 - Brightness Up
|
||||||
|
# binde = , XF86MonBrightnessUp, exec, light -A 5
|
||||||
|
binde = , XF86MonBrightnessUp, exec, swayosd --brightness=raise
|
||||||
|
|
||||||
|
# F7 - External Displays
|
||||||
|
# bind = , XF86
|
||||||
|
|
||||||
|
# F8 - Airplane Mode
|
||||||
|
# bind = , XF86
|
||||||
|
|
||||||
|
# F9 - Notifications?
|
||||||
|
# bind = , XF86
|
||||||
|
|
||||||
|
# F10 - Call Answer?
|
||||||
|
# bind = , XF86
|
||||||
|
|
||||||
|
# F11 - Call Hang Up?
|
||||||
|
# bind = , XF86
|
||||||
|
|
||||||
|
# F12 - Favorites?
|
||||||
|
# bind = , XF86
|
||||||
|
|
||||||
|
# Use rofi as an alt-tab switcher
|
||||||
|
# bind = ALT, TAB, exec, rofi -show window
|
||||||
|
|
||||||
|
# Start the config:
|
||||||
|
exec-once=bash ~/.config/hypr/start.sh
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
# Set the custom launcher script
|
||||||
|
".config/hypr/start.sh" = {
|
||||||
|
enable = true;
|
||||||
|
executable = true;
|
||||||
|
text = ''
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
# https://wiki.hyprland.org/FAQ/#some-of-my-apps-take-a-really-long-time-to-open
|
||||||
|
dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &
|
||||||
|
|
||||||
|
# Set the wallpaper
|
||||||
|
swww init
|
||||||
|
|
||||||
|
# Waybar
|
||||||
|
waybar &
|
||||||
|
|
||||||
|
# Set up the idle management daemon
|
||||||
|
swayidle -w \
|
||||||
|
timeout 120 'swaylock -f && playerctl pause' \
|
||||||
|
timeout 180 'hyprctl dispatch dpms off' \
|
||||||
|
timeout 300 'systemctl suspend-then-hibernate' \
|
||||||
|
resume 'hyprctl dispatch dpms on' \
|
||||||
|
before-sleep 'swaylock -f' \
|
||||||
|
before-sleep 'playerctl pause' &
|
||||||
|
|
||||||
|
# Automatic device mounting
|
||||||
|
udiskie &
|
||||||
|
|
||||||
|
DIR=/etc/nixos/git/wallpapers/${theme}
|
||||||
|
IMG=`ls $DIR | shuf -n 1`
|
||||||
|
swww img $DIR/$IMG -t random &
|
||||||
|
|
||||||
|
# Notification listener
|
||||||
|
mako
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
|
@ -1,282 +0,0 @@
|
||||||
{ theme, ... }: {
|
|
||||||
home.file = {
|
|
||||||
".config/hypr/hyprland.conf" = {
|
|
||||||
enable = true;
|
|
||||||
text = ''
|
|
||||||
layerrule = blur, waybar
|
|
||||||
|
|
||||||
# Laptop specific:
|
|
||||||
monitor=,highrr,auto,1.25
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/
|
|
||||||
env = GDK_SCALE,1
|
|
||||||
env = XCURSOR_SIZE,22
|
|
||||||
|
|
||||||
# unscale XWayland
|
|
||||||
xwayland {
|
|
||||||
force_zero_scaling = true
|
|
||||||
}
|
|
||||||
|
|
||||||
# nVidia Speficic Settings:
|
|
||||||
# https://wiki.hyprland.org/Nvidia/
|
|
||||||
# env = LIBVA_DRIVER_NAME,nvidia
|
|
||||||
# env = XDG_SESSION_TYPE,wayland
|
|
||||||
# env = GBM_BACKEND,nvidia-drm
|
|
||||||
# env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
|
||||||
env = WLR_NO_HARDWARE_CURSORS,1
|
|
||||||
|
|
||||||
general {
|
|
||||||
gaps_in = 10
|
|
||||||
gaps_out = 20
|
|
||||||
border_size = 3
|
|
||||||
# First six are color, last 2 are opacity
|
|
||||||
col.active_border = rgba(d5c4a1bb) # Gruvbox fg2, opacity bb
|
|
||||||
col.inactive_border = rgba(504945dd) # Gruvbox bg2, opacity aa
|
|
||||||
resize_on_border = true
|
|
||||||
extend_border_grab_area = 15
|
|
||||||
layout = dwindle
|
|
||||||
}
|
|
||||||
input {
|
|
||||||
kb_layout = us
|
|
||||||
follow_mouse = 1
|
|
||||||
touchpad {
|
|
||||||
natural_scroll = true
|
|
||||||
disable_while_typing = true
|
|
||||||
tap-to-click = true
|
|
||||||
clickfinger_behavior = true
|
|
||||||
drag_lock = true
|
|
||||||
}
|
|
||||||
sensitivity = 0
|
|
||||||
}
|
|
||||||
gestures {
|
|
||||||
# https://wiki.hyprland.org/0.24.1/Configuring/Keywords/#gestures
|
|
||||||
workspace_swipe = true
|
|
||||||
workspace_swipe_fingers = 3
|
|
||||||
workspace_swipe_numbered = false
|
|
||||||
}
|
|
||||||
misc {
|
|
||||||
disable_hyprland_logo = true
|
|
||||||
mouse_move_enables_dpms = true
|
|
||||||
key_press_enables_dpms = true
|
|
||||||
}
|
|
||||||
decoration {
|
|
||||||
rounding = 5
|
|
||||||
active_opacity = 0.9
|
|
||||||
inactive_opacity = 0.7
|
|
||||||
fullscreen_opacity = 0.9
|
|
||||||
drop_shadow = true
|
|
||||||
shadow_range = 4
|
|
||||||
shadow_render_power = 3
|
|
||||||
col.shadow = rgba(1a1a1aee)
|
|
||||||
blur {
|
|
||||||
size = 8
|
|
||||||
passes = 3
|
|
||||||
ignore_opacity = true
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
animations {
|
|
||||||
# https://wiki.hyprland.org/Configuring/Animations/
|
|
||||||
enabled = true
|
|
||||||
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 {
|
|
||||||
# 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
|
|
||||||
no_gaps_when_only = 1
|
|
||||||
|
|
||||||
}
|
|
||||||
master {
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
|
||||||
new_is_master = true
|
|
||||||
}
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
|
||||||
$mainMod = SUPER
|
|
||||||
|
|
||||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
|
||||||
bind = $mainMod, Q, exec, kitty
|
|
||||||
bind = $mainMod, C, killactive,
|
|
||||||
bind = $mainMod, M, exit,
|
|
||||||
bind = $mainMod, V, togglefloating,
|
|
||||||
bind = $mainMod, R, exec, wofi --show drun
|
|
||||||
bind = $mainMod, P, pseudo, # dwindle
|
|
||||||
bind = $mainMod, J, togglesplit, # dwindle
|
|
||||||
|
|
||||||
# Move focus with mainMod + arrow keys
|
|
||||||
# bind = $mainMod, left, movefocus, l
|
|
||||||
# bind = $mainMod, right, movefocus, r
|
|
||||||
# bind = $mainMod, up, movefocus, u
|
|
||||||
# bind = $mainMod, down, 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 active window to a workspace with mainMod + SHIFT + [0-9]
|
|
||||||
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
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
#############################################################################
|
|
||||||
# Custom keybinds
|
|
||||||
# Show Rofi on SUPER-SPACE
|
|
||||||
bind = $mainMod, space, exec, rofi -show drun -show-icons
|
|
||||||
# Take a screenshot with the Print key
|
|
||||||
bind = , Print, exec, grim -g "$(slurp)" | wl-copy -t image/png
|
|
||||||
|
|
||||||
# Move to the previous / next workspace with SUPER-LEFT and SUPER-RIGHT
|
|
||||||
bind = $mainMod , right, workspace, e+1
|
|
||||||
bind = $mainMod , left , workspace, e-1
|
|
||||||
bind = $mainMod SHIFT, right, movetoworkspace, e+1
|
|
||||||
bind = $mainMod SHIFT, left , movetoworkspace, e-1
|
|
||||||
|
|
||||||
# Launch various applications
|
|
||||||
bind = $mainMod, R, exec, ranger
|
|
||||||
bind = $mainMod, S, exec, steam
|
|
||||||
|
|
||||||
# Lock the screen, send to swaylock and pause music
|
|
||||||
bind = $mainMod, L, exec, swaylock && playerctl pause
|
|
||||||
|
|
||||||
# Lid closure:
|
|
||||||
# trigger when the switch is toggled
|
|
||||||
# bindl=,switch:[switch name],exec,swaylock
|
|
||||||
# trigger when the switch is turning on
|
|
||||||
bindl=,switch:on:1241ec0,exec,hyprctl keyword monitor "eDP-1, 2560x1600, 0x0, 1"
|
|
||||||
# trigger when the switch is turning off
|
|
||||||
bindl=,switch:off:1241ec0,exec,hyprctl keyword monitor "eDP-1, disable"
|
|
||||||
|
|
||||||
# Laptop specific config
|
|
||||||
# Set up the FN keys:
|
|
||||||
|
|
||||||
# F1 - Mute
|
|
||||||
# bind = , XF86AudioMute, exec, amixer set Master toggle && swayosd --output-volume=mute-toggle
|
|
||||||
bind = , XF86AudioMute, exec, swayosd --output-volume=mute-toggle
|
|
||||||
|
|
||||||
# F2 - Volume Down
|
|
||||||
# binde = , XF86AudioLowerVolume, exec, amixer set Master 3%-
|
|
||||||
binde = , XF86AudioLowerVolume, exec, swayosd --output-volume=lower
|
|
||||||
|
|
||||||
# F3 - Volume Up
|
|
||||||
# binde = , XF86AudioRaiseVolume, exec, amixer set Master 3%+
|
|
||||||
binde = , XF86AudioRaiseVolume, exec, swayosd --output-volume=raise
|
|
||||||
|
|
||||||
# F4 - Mute Microphone
|
|
||||||
# bind = , XF86AudioMicMute, exec, amixer set Capture toggle
|
|
||||||
bind = , XF86AudioMicMute, exec, swayosd --input-volume=mute-toggle
|
|
||||||
|
|
||||||
# F5 - Brightness Down
|
|
||||||
# binde = , XF86MonBrightnessDown, exec, light -U 5
|
|
||||||
binde = , XF86MonBrightnessDown, exec, swayosd --brightness=lower
|
|
||||||
|
|
||||||
# F6 - Brightness Up
|
|
||||||
# binde = , XF86MonBrightnessUp, exec, light -A 5
|
|
||||||
binde = , XF86MonBrightnessUp, exec, swayosd --brightness=raise
|
|
||||||
|
|
||||||
# F7 - External Displays
|
|
||||||
# bind = , XF86
|
|
||||||
|
|
||||||
# F8 - Airplane Mode
|
|
||||||
# bind = , XF86
|
|
||||||
|
|
||||||
# F9 - Notifications?
|
|
||||||
# bind = , XF86
|
|
||||||
|
|
||||||
# F10 - Call Answer?
|
|
||||||
# bind = , XF86
|
|
||||||
|
|
||||||
# F11 - Call Hang Up?
|
|
||||||
# bind = , XF86
|
|
||||||
|
|
||||||
# F12 - Favorites?
|
|
||||||
# bind = , XF86
|
|
||||||
|
|
||||||
# Use rofi as an alt-tab switcher
|
|
||||||
# bind = ALT, TAB, exec, rofi -show window
|
|
||||||
|
|
||||||
# Resize
|
|
||||||
bind = $mainMod, R, exec, notify-send "Entered resize mode. Press ESC to quit."
|
|
||||||
bind = $mainMod, R, submap, resize
|
|
||||||
submap = resize
|
|
||||||
binde = , H, resizeactive,-50 0
|
|
||||||
binde = , L, resizeactive,50 0
|
|
||||||
binde = , K, resizeactive,0 -50
|
|
||||||
binde = , J, resizeactive,0 50
|
|
||||||
binde = , left, resizeactive,-50 0
|
|
||||||
binde = , right, resizeactive,50 0
|
|
||||||
binde = , up, resizeactive,0 -50
|
|
||||||
binde = , down, resizeactive,0 50
|
|
||||||
bind = , escape, submap, reset
|
|
||||||
submap = reset
|
|
||||||
|
|
||||||
# Start the config:
|
|
||||||
exec-once=bash ~/.config/hypr/start.sh
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
# Set the custom launcher script
|
|
||||||
".config/hypr/start.sh" = {
|
|
||||||
enable = true;
|
|
||||||
executable = true;
|
|
||||||
text = ''
|
|
||||||
#!/usr/bin/env bash
|
|
||||||
# https://wiki.hyprland.org/FAQ/#some-of-my-apps-take-a-really-long-time-to-open
|
|
||||||
dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &
|
|
||||||
|
|
||||||
# Set the wallpaper
|
|
||||||
swww init
|
|
||||||
|
|
||||||
# Waybar
|
|
||||||
waybar &
|
|
||||||
|
|
||||||
# Set up the idle management daemon
|
|
||||||
swayidle -w \
|
|
||||||
timeout 120 'swaylock -f && playerctl pause' \
|
|
||||||
timeout 180 'hyprctl dispatch dpms off' \
|
|
||||||
timeout 300 'systemctl suspend-then-hibernate' \
|
|
||||||
resume 'hyprctl dispatch dpms on' \
|
|
||||||
before-sleep 'swaylock -f' \
|
|
||||||
before-sleep 'playerctl pause' &
|
|
||||||
|
|
||||||
# Automatic device mounting
|
|
||||||
udiskie &
|
|
||||||
|
|
||||||
DIR=/etc/nixos/git/wallpapers/${theme}
|
|
||||||
IMG=`ls $DIR | shuf -n 1`
|
|
||||||
swww img $DIR/$IMG -t random &
|
|
||||||
|
|
||||||
# Notification listener
|
|
||||||
mako
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,6 +1,3 @@
|
||||||
{ hostname, username, ... }: {
|
{
|
||||||
imports = [
|
|
||||||
./gnome-conf.nix
|
|
||||||
# ./gnome-terminal-conf.nix
|
|
||||||
];
|
|
||||||
}
|
}
|
|
@ -1,180 +0,0 @@
|
||||||
# Generated via dconf2nix: https://github.com/gvolpe/dconf2nix
|
|
||||||
{ lib, hostname, username, ... }: with lib.hm.gvariant;
|
|
||||||
let
|
|
||||||
# Day Variant
|
|
||||||
day-wallpaper = "file:///etc/nixos/git/wallpapers/gruvbox/wallpaper10.jpg";
|
|
||||||
day-gtk-theme = "vimix-doder";
|
|
||||||
day-shell-theme = "vimix-doder";
|
|
||||||
day-icon-theme = "Vimix-Doder";
|
|
||||||
|
|
||||||
# Night Variant
|
|
||||||
night-wallpaper = "file:///etc/nixos/git/wallpapers/gruvbox/wallpaper11.jpg";
|
|
||||||
night-gtk-theme = "Gruvbox-Dark-BL";
|
|
||||||
night-shell-theme = "Gruvbox-Dark-BL";
|
|
||||||
night-icon-theme = "Nordzy-yellow-dark";
|
|
||||||
|
|
||||||
in {
|
|
||||||
# Gnome GTK Settings
|
|
||||||
gtk.theme = "${night-gtk-theme}";
|
|
||||||
|
|
||||||
# Gnome DCONF Settings
|
|
||||||
dconf.settings = {
|
|
||||||
"apps/seahorse/listing" = {
|
|
||||||
keyrings-selected = [ "openssh:///home/${username}/.ssh" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/GWeather4" = {
|
|
||||||
temperature-unit = "centigrade";
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/Weather" = {
|
|
||||||
locations = "[<(uint32 2, <('Osaka International Airport', 'RJOO', false, [(0.60708368566759674, 2.3640484718263193)], @a(dd) [])>)>]";
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/clocks" = {
|
|
||||||
world-clocks = "[{'location': <(uint32 2, <('Los Angeles', 'KCQT', true, [(0.59370283970450188, -2.0644336110828618)], [(0.59432360095955872, -2.063741622941031)])>)>}, {'location': <(uint32 2, <('Dallas', 'KDAL', true, [(0.57338429251143708, -1.690448351049749)], [(0.57217226606568217, -1.6895950770317414)])>)>}, {'location': <(uint32 2, <('Washington', 'KDCA', true, [(0.67803131976116615, -1.3444998506811625)], [(0.67884776733195662, -1.344538230471414)])>)>}, {'location': <(uint32 2, <('Coordinated Universal Time (UTC)', '@UTC', false, @a(dd) [], @a(dd) [])>)>}]";
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/clocks/state/window" = {
|
|
||||||
maximized = false;
|
|
||||||
panel-id = "world";
|
|
||||||
size = mkTuple [ 870 690 ];
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/desktop/app-folders" = {
|
|
||||||
folder-children = [ "Utilities" "YaST" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/desktop/app-folders/folders/Utilities" = {
|
|
||||||
apps = [ "gnome-abrt.desktop" "gnome-system-log.desktop" "nm-connection-editor.desktop" "org.gnome.baobab.desktop" "org.gnome.Connections.desktop" "org.gnome.DejaDup.desktop" "org.gnome.Dictionary.desktop" "org.gnome.DiskUtility.desktop" "org.gnome.eog.desktop" "org.gnome.Evince.desktop" "org.gnome.FileRoller.desktop" "org.gnome.fonts.desktop" "org.gnome.seahorse.Application.desktop" "org.gnome.tweaks.desktop" "org.gnome.Usage.desktop" "vinagre.desktop" ];
|
|
||||||
categories = [ "X-GNOME-Utilities" ];
|
|
||||||
name = "X-GNOME-Utilities.directory";
|
|
||||||
translate = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/desktop/background" = {
|
|
||||||
picture-uri = "${day-wallpaper}";
|
|
||||||
picture-uri-dark = "${night-wallpaper}";
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/desktop/calendar" = {
|
|
||||||
show-weekdate = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/desktop/interface" = {
|
|
||||||
clock-show-date = true;
|
|
||||||
clock-show-weekday = false;
|
|
||||||
color-scheme = "prefer-dark";
|
|
||||||
document-font-name = "JetBrainsMonoNL Nerd Font 11";
|
|
||||||
font-antialiasing = "rgba";
|
|
||||||
font-hinting = "slight";
|
|
||||||
font-name = "JetBrainsMonoNL Nerd Font Propo Thin 11";
|
|
||||||
gtk-theme = "Gruvbox-Dark-BL";
|
|
||||||
icon-theme = "Nordzy-yellow-dark";
|
|
||||||
monospace-font-name = "JetBrainsMono Nerd Font 10";
|
|
||||||
show-battery-percentage = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
"org/gnome/desktop/notifications" = {
|
|
||||||
show-banners = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/desktop/peripherals/touchpad" = {
|
|
||||||
tap-to-click = true;
|
|
||||||
two-finger-scrolling-enabled = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/desktop/wm/preferences" = {
|
|
||||||
button-layout = "appmenu:minimize,maximize,close";
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/mutter" = {
|
|
||||||
edge-tiling = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/settings-daemon/plugins/color" = {
|
|
||||||
night-light-enabled = true;
|
|
||||||
night-light-temperature = mkUint32 3418;
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell" = {
|
|
||||||
app-picker-layout = "[{'org.gnome.Extensions.desktop': <{'position': <0>}>, 'htop.desktop': <{'position': <1>}>, 'nixos-manual.desktop': <{'position': <2>}>, 'nvidia-settings.desktop': <{'position': <3>}>, 'vlc.desktop': <{'position': <4>}>, 'xterm.desktop': <{'position': <5>}>, 'org.gnome.Settings.desktop': <{'position': <6>}>, 'org.gnome.Calculator.desktop': <{'position': <7>}>, 'org.gnome.clocks.desktop': <{'position': <8>}>, 'org.gnome.Contacts.desktop': <{'position': <9>}>, 'simple-scan.desktop': <{'position': <10>}>, 'yelp.desktop': <{'position': <11>}>, 'org.gnome.Calendar.desktop': <{'position': <12>}>, 'gnome-system-monitor.desktop': <{'position': <13>}>, 'org.gnome.TextEditor.desktop': <{'position': <14>}>, 'Utilities': <{'position': <15>}>, 'org.gnome.Weather.desktop': <{'position': <16>}>, 'org.gnome.Photos.desktop': <{'position': <17>}>}]";
|
|
||||||
disable-user-extensions = false;
|
|
||||||
disabled-extensions = [ "workspace-indicator@gnome-shell-extensions.gcampax.github.com" ];
|
|
||||||
enabled-extensions = [ "blur-my-shell@aunetx" "caffeine@patapon.info" "dash-to-dock@micxgx.gmail.com" "user-theme@gnome-shell-extensions.gcampax.github.com" "Vitals@CoreCoding.com" "tiling-assistant@leleat-on-github" "hibernate-status@dromi" "nightthemeswitcher@romainvigier.fr" ];
|
|
||||||
favorite-apps = [ "org.gnome.Nautilus.desktop" "firefox.desktop" "org.gnome.Console.desktop" "bitwarden.desktop" "steam.desktop" "net.lutris.Lutris.desktop" ];
|
|
||||||
welcome-dialog-last-shown-version = "44.2";
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/extensions/caffeine" = {
|
|
||||||
indicator-position-max = 3;
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/extensions/dash-to-dock" = {
|
|
||||||
apply-custom-theme = false;
|
|
||||||
background-opacity = 0.8;
|
|
||||||
custom-theme-shrink = true;
|
|
||||||
dance-urgent-applications = true;
|
|
||||||
dash-max-icon-size = 40;
|
|
||||||
disable-overview-on-startup = true;
|
|
||||||
dock-position = "BOTTOM";
|
|
||||||
height-fraction = 0.9;
|
|
||||||
icon-size-fixed = false;
|
|
||||||
isolate-workspaces = false;
|
|
||||||
show-icons-emblems = true;
|
|
||||||
show-icons-notifications-counter = true;
|
|
||||||
show-show-apps-button = false;
|
|
||||||
show-windows-preview = true;
|
|
||||||
transparency-mode = "FIXED";
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/extensions/nightthemeswitcher/gtk-variants" = {
|
|
||||||
enabled = true;
|
|
||||||
day = "${day-gtk-theme}";
|
|
||||||
night = "${night-gtk-theme}";
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/extensions/nightthemeswitcher/icon-variants" = {
|
|
||||||
enabled = true;
|
|
||||||
day = "${day-icon-theme}";
|
|
||||||
night = "${night-icon-theme}";
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/extensions/nightthemeswitcher/shell-variants" = {
|
|
||||||
enabled = true;
|
|
||||||
day = "${day-shell-theme}";
|
|
||||||
night = "${night-shell-theme}";
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/extensions/nightthemeswitcher/time" = {
|
|
||||||
manual-schedule = true;
|
|
||||||
nightthemeswitcher-ondemand-keybinding = [ "<Shift><Super>t" ];
|
|
||||||
sunset = 19.0;
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/weather" = {
|
|
||||||
automatic-location = true;
|
|
||||||
locations = "[<(uint32 2, <('Osaka International Airport', 'RJOO', false, [(0.60708368566759674, 2.3640484718263193)], @a(dd) [])>)>]";
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/tweaks" = {
|
|
||||||
show-extensions-notice = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gtk/gtk4/settings/file-chooser" = {
|
|
||||||
date-format = "regular";
|
|
||||||
location-mode = "path-bar";
|
|
||||||
show-hidden = false;
|
|
||||||
show-size-column = true;
|
|
||||||
show-type-column = true;
|
|
||||||
sidebar-width = 140;
|
|
||||||
sort-column = "name";
|
|
||||||
sort-directories-first = false;
|
|
||||||
sort-order = "ascending";
|
|
||||||
type-format = "category";
|
|
||||||
view-type = "list";
|
|
||||||
window-size = mkTuple [ 859 453 ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,39 +0,0 @@
|
||||||
{ ... }: {
|
|
||||||
programs.gnome-terminal = {
|
|
||||||
enable = true;
|
|
||||||
themeVariant = "system";
|
|
||||||
profile."Default" = {
|
|
||||||
boldIsBright = true;
|
|
||||||
cursorShape = "block";
|
|
||||||
font = "Jetbrains Regular Mono";
|
|
||||||
colors = {
|
|
||||||
# https://github.com/Gogh-Co/Gogh/blob/master/themes/Gruvbox%20Dark.yml
|
|
||||||
# highlight = [ ];
|
|
||||||
palette = [
|
|
||||||
"#282828" # Black (Host)
|
|
||||||
"#CC241D" # Red (Syntax string)
|
|
||||||
"#98971A" # Green (Command)
|
|
||||||
"#D79921" # Yellow (Command second)
|
|
||||||
"#458588" # Blue (Path)
|
|
||||||
"#B16286" # Magenta (Syntax var)
|
|
||||||
"#689D6A" # Cyan (Prompt)
|
|
||||||
"#A89984" # White
|
|
||||||
|
|
||||||
"#928374" # Bright Black
|
|
||||||
"#FB4934" # Bright Red (Command error)
|
|
||||||
"#B8BB26" # Bright Green (Exec)
|
|
||||||
"#FABD2F" # Bright Yellow
|
|
||||||
"#83A598" # Bright Blue (Folder)
|
|
||||||
"#D3869B" # Bright Magenta
|
|
||||||
"#8EC07C" # Bright Cyan
|
|
||||||
"#EBDBB2" # Bright White
|
|
||||||
|
|
||||||
"#282828" # Background
|
|
||||||
"#EBDBB2" # Foreground (Text)
|
|
||||||
|
|
||||||
"#EBDBB2" # Cursor
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,20 +1,3 @@
|
||||||
{ theme, ... }: {
|
{
|
||||||
imports = [
|
|
||||||
./${theme}/hyprland-conf.nix
|
|
||||||
./${theme}/waybar-conf.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
home.file = {
|
|
||||||
".config/hypr/hyprland.conf" = {
|
|
||||||
enable = true;
|
|
||||||
text = ''
|
|
||||||
# Laptop specific:
|
|
||||||
monitor=,highrr,auto,1
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/
|
|
||||||
env = GDK_SCALE,1
|
|
||||||
env = XCURSOR_SIZE,22
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
|
@ -1,270 +0,0 @@
|
||||||
{ ...}: {
|
|
||||||
imports = [ ../waybar/scripts.nix ];
|
|
||||||
|
|
||||||
home.file = {
|
|
||||||
# https://yewtu.be/watch?v=tWQB1NDDA9c
|
|
||||||
# https://github.com/DN-debug/waybar-examples
|
|
||||||
|
|
||||||
# Inspiration:
|
|
||||||
# https://github.com/Pipshag/dotfiles_gruvbox
|
|
||||||
|
|
||||||
# Font Search:
|
|
||||||
# https://www.nerdfonts.com/cheat-sheet
|
|
||||||
|
|
||||||
# Online CSS testing
|
|
||||||
# https://www.w3schools.com/css/tryit.asp?filename=trycss_border_round
|
|
||||||
|
|
||||||
# Waybar configuration
|
|
||||||
".config/waybar/config.jsonc" = {
|
|
||||||
enable = true;
|
|
||||||
executable = false;
|
|
||||||
text = ''
|
|
||||||
{
|
|
||||||
"layer": "top",
|
|
||||||
"position": "top",
|
|
||||||
"modules-left": [
|
|
||||||
"custom/wlogout",
|
|
||||||
"idle_inhibitor",
|
|
||||||
"clock",
|
|
||||||
"mpris",
|
|
||||||
],
|
|
||||||
"modules-center": [
|
|
||||||
"wlr/workspaces",
|
|
||||||
],
|
|
||||||
"modules-right": [
|
|
||||||
"pulseaudio",
|
|
||||||
"custom/tailscale",
|
|
||||||
"network",
|
|
||||||
"battery",
|
|
||||||
],
|
|
||||||
|
|
||||||
"custom/wlogout": {
|
|
||||||
"format": "",
|
|
||||||
"on-click": "wlogout"
|
|
||||||
},
|
|
||||||
|
|
||||||
"custom/tailscale": {
|
|
||||||
"format": "{icon} {}",
|
|
||||||
"exec": "$HOME/.config/waybar/scripts/tailscale.sh",
|
|
||||||
"exec-if": "pgrep tailscaled",
|
|
||||||
"return-type": "json",
|
|
||||||
"interval": 5,
|
|
||||||
"format-icons": {
|
|
||||||
"Running": "",
|
|
||||||
"Stopped": "",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"idle_inhibitor": {
|
|
||||||
"format": "{icon}",
|
|
||||||
"format-icons": {
|
|
||||||
"activated": "",
|
|
||||||
"deactivated": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"mpris": {
|
|
||||||
"format": "{player_icon} {dynamic}",
|
|
||||||
"format-paused": "{status_icon} <i>{dynamic}</i>",
|
|
||||||
"player-icons": { "default": "▶" },
|
|
||||||
"status-icons": { "paused": "⏸" },
|
|
||||||
},
|
|
||||||
|
|
||||||
"wlr/workspaces": {
|
|
||||||
"on-click": "activate",
|
|
||||||
},
|
|
||||||
|
|
||||||
"clock": {
|
|
||||||
"format": " {:%H:%M}",
|
|
||||||
"format-alt": " {:%A, %d %b, %Y}",
|
|
||||||
"tooltip-format": "<tt><small>{calendar}</small></tt>",
|
|
||||||
"calendar": {
|
|
||||||
"mode" : "month",
|
|
||||||
"mode-mon-col" : 3,
|
|
||||||
"weeks-pos" : "left",
|
|
||||||
"on-scroll" : 1,
|
|
||||||
"format": {
|
|
||||||
"months": "<span color='#e2cca9'><b>{}</b></span>",
|
|
||||||
"days": "<span color='#e2cca9'><b>{}</b></span>",
|
|
||||||
"weeks": "<span color='#b0b846'><b>W{}</b></span>",
|
|
||||||
"weekdays": "<span color='#e9b143'><b>{}</b></span>",
|
|
||||||
"today": "<span color='#f28534'><b><u>{}</u></b></span>"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"actions": {
|
|
||||||
"on-click-right": "kitty -e calcurse",
|
|
||||||
"on-click-middle": "mode",
|
|
||||||
"on-scroll-up": "shift_up",
|
|
||||||
"on-scroll-down": "shift_down"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"pulseaudio": {
|
|
||||||
"scroll-step": 1,
|
|
||||||
"format": "{icon} {format_source}",
|
|
||||||
"format-bluetooth": "<span foreground='#f2594b'>{volume}% {icon} {format_source}</span>",
|
|
||||||
"format-bluetooth-muted": " ",
|
|
||||||
"format-muted": " {format_source}",
|
|
||||||
"format-source": " <span foreground='#f2594b'></span>",
|
|
||||||
"format-source-muted": " ",
|
|
||||||
"format-icons": {
|
|
||||||
"headphone": "",
|
|
||||||
"headset": "",
|
|
||||||
"default": ["", "", ""]
|
|
||||||
},
|
|
||||||
"tooltip": false,
|
|
||||||
"on-click": "kitty -e pulsemixer",
|
|
||||||
},
|
|
||||||
|
|
||||||
"network": {
|
|
||||||
"format": "{ifname}",
|
|
||||||
"format-wifi": " {essid}",
|
|
||||||
"format-ethernet": " {ipaddr}",
|
|
||||||
"format-disconnected": "", // An empty format will hide the module.
|
|
||||||
"tooltip-format": "{ifname} via {gwaddr} ",
|
|
||||||
"tooltip-format-wifi": "{essid} ({signalStrength}%) ",
|
|
||||||
"tooltip-format-ethernet": "{ifname} ",
|
|
||||||
"tooltip-format-disconnected": "Disconnected",
|
|
||||||
"max-length": 50,
|
|
||||||
"on-click": "kitty --class=nmtui -e nmtui"
|
|
||||||
},
|
|
||||||
|
|
||||||
"battery": {
|
|
||||||
"tooltip": true,
|
|
||||||
"tooltip-format": "{time}",
|
|
||||||
"states": {
|
|
||||||
"warning": 35,
|
|
||||||
"critical": 20
|
|
||||||
},
|
|
||||||
"format": "{icon} {capacity}%",
|
|
||||||
"format-charging": " {capacity}%",
|
|
||||||
"format-plugged": " {capacity}%",
|
|
||||||
"format-icons": ["", "", "", "", ""]
|
|
||||||
},
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
# Waybar theming
|
|
||||||
".config/waybar/style.css" = {
|
|
||||||
enable = true;
|
|
||||||
executable = false;
|
|
||||||
text = ''
|
|
||||||
* {
|
|
||||||
border: none;
|
|
||||||
border-radius: 0;
|
|
||||||
font-family: JetbrainsMono Regular;
|
|
||||||
}
|
|
||||||
|
|
||||||
#waybar {
|
|
||||||
background-color: rgba(50, 48, 47, 0.8);
|
|
||||||
padding: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button.visible,
|
|
||||||
#workspaces button {
|
|
||||||
font-size: 1px;
|
|
||||||
border-radius: 50px;
|
|
||||||
padding: 0px 5px;
|
|
||||||
margin: 5px;
|
|
||||||
color: rgba(0, 0, 0, 0);
|
|
||||||
background-color: #282828;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button.active {
|
|
||||||
padding: 0px 15px;
|
|
||||||
background-color: #a89984;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button:hover,
|
|
||||||
#workspaces button.focused:hover,
|
|
||||||
#workspaces button.visible:hover {
|
|
||||||
background-color: #d5c4a1;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button.urgent {
|
|
||||||
background-color: #cc241d;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* General background
|
|
||||||
*/
|
|
||||||
#network,
|
|
||||||
#mpris,
|
|
||||||
#memory,
|
|
||||||
#backlight,
|
|
||||||
#cpu,
|
|
||||||
#pulseaudio,
|
|
||||||
#temperature,
|
|
||||||
#battery,
|
|
||||||
#tray,
|
|
||||||
#submap,
|
|
||||||
#clock,
|
|
||||||
#idle_inhibitor,
|
|
||||||
#custom-tailscale,
|
|
||||||
#custom-wlogout,
|
|
||||||
#window {
|
|
||||||
font-size: 16px;
|
|
||||||
padding: 0px 10px;
|
|
||||||
margin: 5px;
|
|
||||||
border-radius: 5px;
|
|
||||||
color: rgba(50, 48, 47, 0.8);
|
|
||||||
background-color: #a89984;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* General background
|
|
||||||
*/
|
|
||||||
#network button:hover,
|
|
||||||
#mpris button:hover,
|
|
||||||
#memory button:hover,
|
|
||||||
#backlight button:hover,
|
|
||||||
#cpu button:hover,
|
|
||||||
#pulseaudio button:hover,
|
|
||||||
#temperature button:hover,
|
|
||||||
#battery button:hover,
|
|
||||||
#tray button:hover,
|
|
||||||
#submap button:hover,
|
|
||||||
#clock button:hover,
|
|
||||||
#idle_inhibitor button:hover,
|
|
||||||
#custom-tailscale button:hover,
|
|
||||||
#custom-wlogout button:hover,
|
|
||||||
#window button:hover{
|
|
||||||
background-color: #d5c4a1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Warning plugins state
|
|
||||||
*/
|
|
||||||
#battery.warning {
|
|
||||||
background-color: #e9b143;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Critical plugins state
|
|
||||||
*/
|
|
||||||
#idle_inhibitor.activated,
|
|
||||||
#battery.critical,
|
|
||||||
#custom-tailscale.Stopped,
|
|
||||||
#network.disconnected {
|
|
||||||
color: #e2cca9;
|
|
||||||
background-color: #cc241d;
|
|
||||||
}
|
|
||||||
#battery.charging {
|
|
||||||
background-color: #98971a;
|
|
||||||
}
|
|
||||||
#battery.plugged {
|
|
||||||
background-color: #458588;
|
|
||||||
}
|
|
||||||
#pulseaudio.bluetooth {
|
|
||||||
background-color: #458588;
|
|
||||||
}
|
|
||||||
tooltip {
|
|
||||||
color: #e2cca9;
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,26 +0,0 @@
|
||||||
{...}: {
|
|
||||||
home.file = {
|
|
||||||
".config/waybar/scripts/tailscale.sh" = {
|
|
||||||
enable = true;
|
|
||||||
executable = true;
|
|
||||||
text = ''
|
|
||||||
#!/usr/bin/env bash
|
|
||||||
CLASS=`tailscale status --json | jq -r '.BackendState'`
|
|
||||||
# Known values: Running, Stopped
|
|
||||||
|
|
||||||
# Expected Output:
|
|
||||||
# {"text": "$text", "alt": "$alt", "tooltip": "$tooltip", "class": "$class", "percentage": $percentage }
|
|
||||||
# Different $Class depending on if TS is running or not
|
|
||||||
if [ $CLASS == "Running" ]; then
|
|
||||||
IP=`tailscale status --json | jq -r '.TailscaleIPs[0]'`
|
|
||||||
TOOLTIP="IP: $IP"
|
|
||||||
printf '{"class": "%s", "tooltip": "%s", "alt": "%s"}\n' "$CLASS" "$TOOLTIP" "$CLASS"
|
|
||||||
fi
|
|
||||||
if [ $CLASS == "Stopped" ]; then
|
|
||||||
TOOLTIP="Tailscale is not running"
|
|
||||||
printf '{"class": "%s", "tooltip": "%s", "alt": "%s"}\n' "$CLASS" "$TOOLTIP" "$CLASS"
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -37,11 +37,9 @@
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
# Game related things
|
# Game related things
|
||||||
gamemode
|
gamemode
|
||||||
|
|
||||||
# WINE
|
# WINE
|
||||||
wineWowPackages.stable
|
wineWowPackages.stable
|
||||||
winetricks
|
winetricks
|
||||||
wineWowPackages.waylandFull
|
wineWowPackages.waylandFull
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,5 +63,5 @@
|
||||||
} # partition 3 (SWAP)
|
} # partition 3 (SWAP)
|
||||||
]; # partitions
|
]; # partitions
|
||||||
}; # content
|
}; # content
|
||||||
}; # disko.devices.disk.sda
|
}; # disko.devices.disk.nvme0
|
||||||
} # root
|
} # root
|