Compare commits
5 commits
094af3fd01
...
a8a2686914
Author | SHA1 | Date | |
---|---|---|---|
a8a2686914 | |||
44c5a27387 | |||
96739c5979 | |||
fba64b7555 | |||
3f55567409 |
20 changed files with 725 additions and 54 deletions
70
flake.lock
generated
70
flake.lock
generated
|
@ -27,11 +27,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1741352980,
|
||||
"narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=",
|
||||
"lastModified": 1749398372,
|
||||
"narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9",
|
||||
"rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -83,11 +83,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1742569620,
|
||||
"narHash": "sha256-igC2cu+cPRB3E4QwKR+vGagyAtoyB+DrmWwDKm8jkaw=",
|
||||
"lastModified": 1750127463,
|
||||
"narHash": "sha256-K2xFtlD3PcKAZriOE3LaBLYmVfGQu+rIF4Jr1RFYR0Q=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "8a68f18e96bcab13e4f97bece61e6602298a3141",
|
||||
"rev": "28eef8722d1af18ca13e687dbf485e1c653a0402",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -110,16 +110,16 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1729958008,
|
||||
"narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=",
|
||||
"lastModified": 1748294338,
|
||||
"narHash": "sha256-FVO01jdmUNArzBS7NmaktLdGA5qA3lUMJ4B7a05Iynw=",
|
||||
"owner": "NuschtOS",
|
||||
"repo": "ixx",
|
||||
"rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb",
|
||||
"rev": "cc5f390f7caf265461d4aab37e98d2292ebbdb85",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NuschtOS",
|
||||
"ref": "v0.0.6",
|
||||
"ref": "v0.0.8",
|
||||
"repo": "ixx",
|
||||
"type": "github"
|
||||
}
|
||||
|
@ -130,11 +130,11 @@
|
|||
"rust-overlay": "rust-overlay_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1743033002,
|
||||
"narHash": "sha256-84TdCsIgDFDpgE9mXT/k0nxhTc7TgEfdfRia+hj//ow=",
|
||||
"lastModified": 1743051673,
|
||||
"narHash": "sha256-f3TLu0xUtxercSEWujoj3t2pivjHK8LiuR3k1xGgC4U=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "2e45f0205ae1d16a9b9b5b8417a262a558dc367f",
|
||||
"revCount": 146,
|
||||
"rev": "a36941c8aff79d7871a1d4768b8ddc8429ab4673",
|
||||
"revCount": 149,
|
||||
"type": "git",
|
||||
"url": "https://git.elnu.com/tegakituesday/ji-chan.git"
|
||||
},
|
||||
|
@ -209,11 +209,11 @@
|
|||
},
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1742422364,
|
||||
"narHash": "sha256-mNqIplmEohk5jRkqYqG19GA8MbQ/D4gQSK0Mu4LvfRQ=",
|
||||
"lastModified": 1750134718,
|
||||
"narHash": "sha256-v263g4GbxXv87hMXMCpjkIxd/viIF7p3JpJrwgKdNiI=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a84ebe20c6bc2ecbcfb000a50776219f48d134cc",
|
||||
"rev": "9e83b64f727c88a7711a2c463a7b16eedb69a84c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -225,11 +225,11 @@
|
|||
},
|
||||
"nixpkgs_6": {
|
||||
"locked": {
|
||||
"lastModified": 1742456341,
|
||||
"narHash": "sha256-yvdnTnROddjHxoQqrakUQWDZSzVchczfsuuMOxg476c=",
|
||||
"lastModified": 1749903597,
|
||||
"narHash": "sha256-jp0D4vzBcRKwNZwfY4BcWHemLGUs4JrS3X9w5k/JYDA=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "7344a3b78128f7b1765dba89060b015fb75431a7",
|
||||
"rev": "41da1e3ea8e23e094e5e3eeb1e6b830468a7399e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -243,14 +243,15 @@
|
|||
"inputs": {
|
||||
"flake-parts": "flake-parts",
|
||||
"nixpkgs": "nixpkgs_6",
|
||||
"nuschtosSearch": "nuschtosSearch"
|
||||
"nuschtosSearch": "nuschtosSearch",
|
||||
"systems": "systems_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1742559284,
|
||||
"narHash": "sha256-PSSjCCqpJPkCagkkdLODBVVonGxgwU5dN2CYlFPNVNw=",
|
||||
"lastModified": 1750187570,
|
||||
"narHash": "sha256-/SpLFjBt6mZQszhASi5bWxjx0xE7d3r0TfKSABhBgKE=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"rev": "c980271267ef146a6c30394c611a97e077471cf2",
|
||||
"rev": "b4750c46961be18d6cd61c121fa3f43082a64a3c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -269,11 +270,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1741886583,
|
||||
"narHash": "sha256-sScfYKtxp3CYv5fJcHQDvQjqBL+tPNQqS9yf9Putd+s=",
|
||||
"lastModified": 1749730855,
|
||||
"narHash": "sha256-L3x2nSlFkXkM6tQPLJP3oCBMIsRifhIDPMQQdHO5xWo=",
|
||||
"owner": "NuschtOS",
|
||||
"repo": "search",
|
||||
"rev": "2974bc5fa3441a319fba943f3ca41f7dcd1a1467",
|
||||
"rev": "8dfe5879dd009ff4742b668d9c699bc4b9761742",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -357,6 +358,21 @@
|
|||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_3": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
|
|
|
@ -14,18 +14,10 @@ in
|
|||
# Don't install dmenu, i3status, and i3lock
|
||||
extraPackages = lib.mkOverride 0 [];
|
||||
};
|
||||
displayManager = {
|
||||
lightdm = {
|
||||
enable = true;
|
||||
greeters.gtk = {
|
||||
enable = true;
|
||||
theme = theme.gtkTheme pkgs;
|
||||
};
|
||||
background = theme.wallpaper;
|
||||
};
|
||||
};
|
||||
};
|
||||
displayManager = {
|
||||
enable = true;
|
||||
sddm.enable = true;
|
||||
defaultSession = "none+i3";
|
||||
};
|
||||
udev.packages = [ pkgs.yubikey-personalization ];
|
||||
|
@ -34,16 +26,18 @@ in
|
|||
gvfs.enable = true; # For Trash
|
||||
};
|
||||
programs.hyprland.enable = true;
|
||||
programs.sway.enable = true;
|
||||
|
||||
xdg.portal.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [ yubioath-flutter ];
|
||||
# Needed mesa for whatever reason to get Discord to work on Wayland on my desktop
|
||||
environment.systemPackages = with pkgs; [ yubioath-flutter mesa ];
|
||||
|
||||
environment.sessionVariables = {
|
||||
# GTK Theme won't display with GTK4 (e.g. nautilus) otherwise
|
||||
# Doesn't work in some scenarios, such as open containing folder in Firefox, when declared in home.sessionVariables
|
||||
GTK_THEME = (theme.gtkTheme pkgs).name;
|
||||
# something something required for Electron apps on Wayland
|
||||
NIXOS_OZONE_WL = "1";
|
||||
};
|
||||
|
||||
# Enable OpenTabletDriver, GUI configurator is otd-gui
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
imports = [ (import ./hardware-configuration.nix) ];
|
||||
|
||||
services.xserver = {
|
||||
videoDrivers = [ "nvidia" ];
|
||||
videoDrivers = [ "nvidia-dkms" ];
|
||||
# nvidiaXineramaInfoOrder sets primary display
|
||||
# DFP-0 is default and would set left monitor, DVI-D-0, to be primary
|
||||
screenSection = ''
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
hardware.enableRedistributableFirmware = true;
|
||||
hardware.bluetooth.enable = true;
|
||||
hardware.nvidia.open = true;
|
||||
hardware.graphics.extraPackages = with pkgs; [ nvidia-vaapi-driver ];
|
||||
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
|
@ -22,7 +23,7 @@
|
|||
fsType = "ext4";
|
||||
};
|
||||
"/boot" = {
|
||||
device = "/dev/disk/by-label/boot";
|
||||
device = "/dev/sda5";
|
||||
fsType = "vfat";
|
||||
};
|
||||
# Prevent SCARLETT from auto-mounting
|
||||
|
|
|
@ -4,5 +4,6 @@
|
|||
imports = [
|
||||
(import ./apps.nix)
|
||||
(import ./i3)
|
||||
(import ./hypr)
|
||||
];
|
||||
}
|
||||
|
|
7
hosts/desktop/hypr/default.nix
Normal file
7
hosts/desktop/hypr/default.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
home.file = {
|
||||
".config/hypr/monitors.conf".source = ./monitors.conf;
|
||||
};
|
||||
}
|
39
hosts/desktop/hypr/monitors.conf
Normal file
39
hosts/desktop/hypr/monitors.conf
Normal file
|
@ -0,0 +1,39 @@
|
|||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||
monitor=HDMI-A-1, 1920x1080@100.05, 1080x420, 1
|
||||
monitor=DVI-D-1, 1920x1080@60.00, 0x0, 1, transform, 1
|
||||
monitor=DP-1, 1920x1080@60.04Hz, 1080x1500, 1
|
||||
|
||||
workspace = name:1, monitor:HDMI-A-1
|
||||
workspace = name:2, monitor:DVI-D-1
|
||||
workspace = name:3, monitor:DP-1
|
||||
|
||||
# See https://github.com/HyDE-Project/HyDE/blob/master/Configs/.config/hypr/nvidia.conf
|
||||
|
||||
# █▄░█ █░█ █ █▀▄ █ ▄▀█
|
||||
# █░▀█ ▀▄▀ █ █▄▀ █ █▀█
|
||||
|
||||
# Hyprland Nvidia Configuration
|
||||
# See https://wiki.hyprland.org/Nvidia/
|
||||
env = LIBVA_DRIVER_NAME,nvidia
|
||||
env = __GLX_VENDOR_LIBRARY_NAME,nvidia # Disable this if you have issues with screensharing
|
||||
|
||||
# If you want to try hardware cursors,
|
||||
# you can enable them by setting `cursor:no_hardware_cursors = false` ,
|
||||
# but it will require also enabling `cursor:allow_dumb_copy`
|
||||
# which may cause small to major hitches whenever the cursor shape changes.
|
||||
# If this is a problem on your system, keep hardware cursors disabled.
|
||||
cursor:no_hardware_cursors = true # Set to true to avoid hitches
|
||||
# cursor:allow_dumb_copy = true
|
||||
|
||||
# https://wiki.hyprland.org/Nvidia/#va-api-hardware-video-acceleration
|
||||
# Hardware video acceleration on Nvidia and Wayland is
|
||||
# possible with the nvidia-vaapi-driver.
|
||||
# This may solve specific issues in Electron apps.
|
||||
env = NVD_BACKEND,direct # Requires 'libva-nvidia-driver' package
|
||||
|
||||
# https://wiki.hyprland.org/Nvidia/#regarding-environment-variables
|
||||
# If you encounter crashes in Firefox, remove this line
|
||||
env = GBM_BACKEND,nvidia-drm
|
||||
|
||||
# If you have a multi-GPU setup and you are facing lag in external monitor.
|
||||
# See https://wiki.hyprland.org/Configuring/Multi-GPU/
|
|
@ -10,6 +10,7 @@ in
|
|||
#../modules/emacs
|
||||
../modules/fcitx5
|
||||
../modules/firefox
|
||||
../modules/hypr
|
||||
../modules/i3
|
||||
../modules/neovim
|
||||
../modules/picom
|
||||
|
@ -19,7 +20,6 @@ in
|
|||
../modules/startpage
|
||||
../modules/terminal
|
||||
../modules/todo-txt
|
||||
|
||||
#../modules/fantasia-archive
|
||||
];
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
imports = [
|
||||
(import ./apps.nix)
|
||||
(import ./i3)
|
||||
(import ./hypr)
|
||||
(import ../thinkpads/i3.nix)
|
||||
(import ../thinkpads/polybar.nix)
|
||||
];
|
||||
|
|
7
hosts/pang13/hypr/default.nix
Normal file
7
hosts/pang13/hypr/default.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
home.file = {
|
||||
".config/hypr/monitors.conf".source = ./monitors.conf;
|
||||
};
|
||||
}
|
4
hosts/pang13/hypr/monitors.conf
Normal file
4
hosts/pang13/hypr/monitors.conf
Normal file
|
@ -0,0 +1,4 @@
|
|||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||
monitor=eDP-1, 1920x1080@144, 1920x0, 1
|
||||
monitor=HDMI-A-1, 1920x1080@74.97, 0x0, 1
|
||||
monitor=DP-1, 1920x1080@60.04, 0x1080, 1
|
|
@ -5,7 +5,8 @@ with import ../theme; let
|
|||
in
|
||||
{
|
||||
i18n.inputMethod = {
|
||||
enabled = "fcitx5";
|
||||
enable = true;
|
||||
type = "fcitx5";
|
||||
fcitx5.addons = with pkgs; [
|
||||
(fcitx5-anthy.overrideAttrs (oldAttrs: {
|
||||
# bugged custom Nicola tables fixed in master
|
||||
|
@ -21,11 +22,14 @@ in
|
|||
};
|
||||
|
||||
home.file = {
|
||||
"${themeFolder}theme.conf".source = with colors; pkgs.substituteAll ({
|
||||
"${themeFolder}theme.conf".source = with colors; pkgs.replaceVarsWith ({
|
||||
src = ./theme.conf;
|
||||
background = "${bg1}80";
|
||||
highlight = bg0;
|
||||
} // colors);
|
||||
replacements = {
|
||||
background = "${bg1}80";
|
||||
highlight = bg0;
|
||||
inherit fg0 fg1;
|
||||
};
|
||||
});
|
||||
"${themeFolder}arrow.png".source = ./arrow.png;
|
||||
"${themeFolder}radio.png".source = ./radio.png;
|
||||
".config/fcitx5/conf/classicui.conf".text = "Theme=${theme}";
|
||||
|
|
16
modules/hypr/default.nix
Normal file
16
modules/hypr/default.nix
Normal file
|
@ -0,0 +1,16 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# hyprland itself enabled in desktop.nix
|
||||
home.packages = with pkgs; [
|
||||
hyprpaper
|
||||
waybar
|
||||
grimblast # screenshots
|
||||
];
|
||||
home.file = {
|
||||
".config/hypr/hyprland.conf".source = ./hypr/hyprland.conf;
|
||||
".config/hypr/hyprpaper.conf".source = ./hypr/hyprpaper.conf;
|
||||
".config/waybar/config.jsonc".source = ./waybar/config.jsonc;
|
||||
".config/waybar/style.css".source = ./waybar/style.css;
|
||||
};
|
||||
}
|
235
modules/hypr/hypr/hyprland.conf
Normal file
235
modules/hypr/hypr/hyprland.conf
Normal file
|
@ -0,0 +1,235 @@
|
|||
|
||||
########################################################################################
|
||||
# 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/
|
||||
source = monitors.conf
|
||||
|
||||
# Prevent X apps from being pixelated
|
||||
xwayland {
|
||||
force_zero_scaling = true
|
||||
}
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
||||
|
||||
# Execute your favorite apps at launch
|
||||
# exec-once = waybar & hyprpaper & firefox
|
||||
exec-once = waybar
|
||||
exec-once = hyprpaper
|
||||
exec-once = nm-applet
|
||||
exec-once = systemctl --user enable opentabletdriver.service --now
|
||||
|
||||
# Source a file (multi-file configs)
|
||||
# source = ~/.config/hypr/myColors.conf
|
||||
|
||||
# Some default env vars.
|
||||
env = XCURSOR_SIZE,24
|
||||
|
||||
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
|
||||
input {
|
||||
kb_layout = us
|
||||
kb_variant =
|
||||
kb_model =
|
||||
# kb_options = caps:swapescape
|
||||
kb_rules =
|
||||
|
||||
follow_mouse = 1
|
||||
|
||||
touchpad {
|
||||
natural_scroll = no
|
||||
}
|
||||
|
||||
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||
}
|
||||
|
||||
general {
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
|
||||
gaps_in = 6
|
||||
gaps_out = 12
|
||||
border_size = 2
|
||||
#col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
|
||||
col.active_border = rgb(a7c080)
|
||||
col.inactive_border = rgba(a7c08000)
|
||||
|
||||
layout = dwindle
|
||||
|
||||
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
||||
allow_tearing = false
|
||||
}
|
||||
|
||||
group {
|
||||
col.border_active = rgb(a7c080)
|
||||
col.border_inactive = rgba(a7c08000)
|
||||
|
||||
groupbar {
|
||||
col.active = rgb(a7c080)
|
||||
col.inactive = rgb(2e383c)
|
||||
}
|
||||
}
|
||||
|
||||
decoration {
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
|
||||
rounding = 10
|
||||
|
||||
blur {
|
||||
enabled = true
|
||||
size = 3
|
||||
passes = 1
|
||||
}
|
||||
|
||||
shadow {
|
||||
enabled = false
|
||||
}
|
||||
}
|
||||
|
||||
animations {
|
||||
enabled = yes
|
||||
|
||||
# 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, 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 = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
preserve_split = yes # you probably want this
|
||||
}
|
||||
|
||||
workspace = w[tv1], gapsout:0, gapsin:0, border:0, rounding:0
|
||||
workspace = f[1], gapsout:0, gapsin:0
|
||||
windowrule = bordersize 0, floating:0, onworkspace:w[tv1]
|
||||
windowrule = rounding 0, floating:0, onworkspace:w[tv1]
|
||||
windowrule = bordersize 0, floating:0, onworkspace:f[1]
|
||||
windowrule = rounding 0, floating:0, onworkspace:f[1]
|
||||
|
||||
master {
|
||||
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||
new_status = master
|
||||
}
|
||||
|
||||
gestures {
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
workspace_swipe = off
|
||||
}
|
||||
|
||||
misc {
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
force_default_wallpaper = 0 # Set to 0 to disable the anime mascot wallpapers
|
||||
disable_hyprland_logo = true
|
||||
}
|
||||
|
||||
|
||||
# Example windowrule v1
|
||||
# windowrule = float, ^(kitty)$
|
||||
# Example windowrule v2
|
||||
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
|
||||
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
||||
$mainMod = SUPER
|
||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||
bind = $mainMod, RETURN, exec, kitty
|
||||
bind = $mainMod SHIFT, Q, killactive,
|
||||
bind = $mainMod SHIFT, E, exit, <D-v>
|
||||
#bind = $mainMod, E, exec, dolphin
|
||||
bind = $mainMod SHIFT, SPACE, togglefloating,
|
||||
bindr = SUPER, SUPER_L, exec, rofi -show drun -theme
|
||||
bind = $mainMod, P, pseudo, # dwindle
|
||||
bind = $mainMod, J, togglesplit, # dwindle
|
||||
|
||||
# Modified from https://github.com/hyprwm/Hyprland/discussions/2617
|
||||
bind = , Print, exec, mkdir -p $HOME"/screenshots/full" && grimblast copysave output $HOME"/screenshots/full/"$(date +'%F-%T.png')
|
||||
bind = $mainMod, Print, exec, mkdir -p $HOME"/screenshots/area" && grimblast copysave area $HOME"/screenshots/area/"$(date +'%F-%T.png')
|
||||
bind = ALT, Print, exec, mkdir -p $HOME"/screenshots/active" && grimblast copysave active $HOME"/screenshots/active/"$(date +'%F-%T.png')
|
||||
|
||||
# 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
|
||||
|
||||
# Example special workspace (scratchpad)
|
||||
bind = $mainMod, MINUS, togglespecialworkspace, magic
|
||||
bind = $mainMod SHIFT, MINUS, movetoworkspace, special:magic
|
||||
|
||||
# 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
|
||||
|
||||
# Move/windows with keyboard
|
||||
bind = $mainMod SHIFT, LEFT, movewindow, l
|
||||
bind = $mainMod SHIFT, RIGHT, movewindow, r
|
||||
bind = $mainMod SHIFT, UP, movewindow, u
|
||||
bind = $mainMod SHIFT, DOWN, movewindow, d
|
||||
bind = $mainMod SHIFT CTRL, LEFT, movewindoworgroup, l
|
||||
bind = $mainMod SHIFT CTRL, RIGHT, movewindoworgroup, r
|
||||
bind = $mainMod SHIFT CTRL, UP, movewindoworgroup, u
|
||||
bind = $mainMod SHIFT CTRL, DOWN, movewindoworgroup, d
|
||||
|
||||
# Tabbing
|
||||
bind = $mainMod, w, togglegroup
|
||||
bind = $mainMod CTRL, UP, changegroupactive, f
|
||||
bind = $mainMod CTRL, RIGHT, changegroupactive, f
|
||||
bind = $mainMod CTRL, DOWN, changegroupactive, b
|
||||
bind = $mainMod CTRL, LEFT, changegroupactive, b
|
||||
|
||||
bind = $mainMod, F, fullscreen
|
||||
|
||||
windowrulev2 = stayfocused,class:(wofi)
|
||||
windowrulev2 = noborder,class:(wofi)
|
||||
|
||||
bindel = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
|
||||
bindel = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||
bindl = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
# Requires playerctl
|
||||
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPrev, exec, playerctl previous
|
||||
bindl = , XF86AudioNext, exec, playerctl next
|
2
modules/hypr/hypr/hyprpaper.conf
Normal file
2
modules/hypr/hypr/hyprpaper.conf
Normal file
|
@ -0,0 +1,2 @@
|
|||
preload = ~/.background-image
|
||||
wallpaper = , ~/.background-image
|
179
modules/hypr/waybar/config.jsonc
Normal file
179
modules/hypr/waybar/config.jsonc
Normal file
|
@ -0,0 +1,179 @@
|
|||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"height": 30,
|
||||
"spacing": 1,
|
||||
"margin": 0,
|
||||
"modules-left": ["hyprland/workspaces", "hyprland/window"],
|
||||
"modules-center": [],
|
||||
"modules-right": ["custom/weather", "disk", "memory", "cpu", "temperature", "battery", "pulseaudio", "clock", "tray"],
|
||||
|
||||
"hyprland/workspaces": {
|
||||
"disable-scroll": true,
|
||||
"all-outputs": false,
|
||||
"warp-on-scroll": false,
|
||||
"format": "{name}"
|
||||
},
|
||||
|
||||
"hyprland/window": {
|
||||
},
|
||||
|
||||
"custom/playerctl": {
|
||||
"format": " {}",
|
||||
"return-type": "json",
|
||||
"max-length": 40,
|
||||
"exec": "playerctl -a metadata --format '{\"text\": \"{{artist}} - {{markup_escape(title)}}\", \"tooltip\": \"{{playerName}} : {{artist}} - {{markup_escape(title)}}\", \"alt\": \"{{status}}\", \"class\": \"{{status}}\"}' -F",
|
||||
"on-click": "playerctl play-pause",
|
||||
"on-click-right": "playerctl next",
|
||||
},
|
||||
|
||||
"custom/weather": {
|
||||
"exec": "curl 'https://wttr.in/?format=1&m'",
|
||||
"interval": 600,
|
||||
"format": "{}",
|
||||
"tooltip": true
|
||||
},
|
||||
|
||||
"custom/updates": {
|
||||
"format": " {}",
|
||||
"exec": "checkupdates | wc -l",
|
||||
"interval": 3600,
|
||||
"on-click": "kitty -e sudo pacman -Syu",
|
||||
"signal": 8
|
||||
},
|
||||
|
||||
"custom/uptime": {
|
||||
"format": " {}",
|
||||
"exec": "uptime -p | sed 's/up //; s/ days/d/; s/ hours/h/; s/ minutes/m/'",
|
||||
"interval": 60
|
||||
},
|
||||
|
||||
"idle_inhibitor": {
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"activated": "",
|
||||
"deactivated": ""
|
||||
},
|
||||
"tooltip": true
|
||||
},
|
||||
|
||||
"clock": {
|
||||
"format": "{:%H:%M}",
|
||||
"format-alt": "{:%Y-%m-%d}",
|
||||
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
|
||||
"calendar": {
|
||||
"mode" : "month",
|
||||
"mode-mon-col" : 3,
|
||||
"weeks-pos" : "right",
|
||||
"on-scroll" : 1,
|
||||
"on-click-right": "mode",
|
||||
"format": {
|
||||
"months": "<span color='#d3c6aa'><b>{}</b></span>",
|
||||
"days": "<span color='#e67e80'>{}</span>",
|
||||
"weeks": "<span color='#a7c080'><b>W{}</b></span>",
|
||||
"weekdays": "<span color='#7fbbb3'><b>{}</b></span>",
|
||||
"today": "<span color='#dbbc7f'><b><u>{}</u></b></span>"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"on-click-right": "mode",
|
||||
"on-click-forward": "tz_up",
|
||||
"on-click-backward": "tz_down",
|
||||
"on-scroll-up": "shift_up",
|
||||
"on-scroll-down": "shift_down"
|
||||
}
|
||||
},
|
||||
|
||||
"cpu": {
|
||||
"format": "<span color=\"#a7c080\">CPU</span> {usage}%",
|
||||
"tooltip": true,
|
||||
"interval": 1,
|
||||
"on-click": "kitty -e htop"
|
||||
},
|
||||
|
||||
"memory": {
|
||||
"format": "<span color=\"#a7c080\">RAM</span> {}%",
|
||||
"interval": 1,
|
||||
"on-click": "kitty -e htop"
|
||||
},
|
||||
|
||||
"temperature": {
|
||||
"critical-threshold": 80,
|
||||
"format": "{temperatureC}°C",
|
||||
"format-icons": ["", "", ""],
|
||||
},
|
||||
|
||||
"battery": {
|
||||
"states": {
|
||||
"good": 95,
|
||||
"warning": 30,
|
||||
"critical": 15
|
||||
},
|
||||
"format": "{icon} {capacity}%",
|
||||
"format-charging": "<span color=\"#a7c080\"></span> {capacity}%",
|
||||
"format-plugged": "<span color=\"#a7c080\"></span> {capacity}%",
|
||||
"format-alt": "{icon} {time}",
|
||||
"format-icons": [
|
||||
"<span color=\"#e67e80\"></span>",
|
||||
"<span color=\"#e67e80\"></span>",
|
||||
"<span color=\"#e69875\"></span>",
|
||||
"<span color=\"#e69875\"></span>",
|
||||
"<span color=\"#dbbc7f\"></span>",
|
||||
"<span color=\"#dbbc7f\"></span>",
|
||||
"<span color=\"#a7c080\"></span>",
|
||||
"<span color=\"#a7c080\"></span>",
|
||||
"<span color=\"#a7c080\"></span>",
|
||||
"<span color=\"#a7c080\"></span>",
|
||||
"<span color=\"#a7c080\"></span>"
|
||||
]
|
||||
},
|
||||
|
||||
"network": {
|
||||
"format-wifi": " {essid} ({signalStrength}%)",
|
||||
"format-ethernet": " {ifname}",
|
||||
"format-linked": " {ifname} (No IP)",
|
||||
"format-disconnected": " Disconnected",
|
||||
"format-alt": "{ifname}: {ipaddr}/{cidr}",
|
||||
"tooltip-format": "{ifname}: {ipaddr}",
|
||||
"on-click": "kitty -e nmtui"
|
||||
},
|
||||
|
||||
"pulseaudio": {
|
||||
"format": "<span color=\"#a7c080\">{icon}</span> {volume}%",
|
||||
"format-bluetooth": "<span color=\"#a7c080\"></span> {volume}%",
|
||||
"format-bluetooth-muted": "<span color=\"#a7c080\"></span> {icon}",
|
||||
"format-muted": "",
|
||||
"format-icons": {
|
||||
"headphone": "",
|
||||
"hands-free": "",
|
||||
"headset": "",
|
||||
"phone": "",
|
||||
"portable": "",
|
||||
"car": "",
|
||||
"default": ["", "", ""]
|
||||
},
|
||||
"on-click": "pavucontrol",
|
||||
"on-click-right": "pactl set-sink-mute @DEFAULT_SINK@ toggle",
|
||||
"on-scroll-up": "pactl set-sink-volume @DEFAULT_SINK@ +2%",
|
||||
"on-scroll-down": "pactl set-sink-volume @DEFAULT_SINK@ -2%"
|
||||
},
|
||||
|
||||
"backlight": {
|
||||
"format": "{icon} {percent}%",
|
||||
"format-icons": ["", "", ""],
|
||||
"on-scroll-up": "brightnessctl set +5%",
|
||||
"on-scroll-down": "brightnessctl set 5%-"
|
||||
},
|
||||
|
||||
"disk": {
|
||||
"interval": 30,
|
||||
"format": "<span color=\"#a7c080\">{path}</span> {percentage_used}%",
|
||||
"path": "/",
|
||||
"on-click": "kitty -e gdu /"
|
||||
},
|
||||
|
||||
"tray": {
|
||||
"icon-size": 18,
|
||||
"spacing": 5
|
||||
}
|
||||
}
|
167
modules/hypr/waybar/style.css
Normal file
167
modules/hypr/waybar/style.css
Normal file
|
@ -0,0 +1,167 @@
|
|||
/*Colorschemes, there are Gruvbox, Tokyo Night, and Everforest by default. The way it works is whichever colorscheme section is defined last will be used. Here everforest is last, but put any one you want to use as the last one. ssdsssssssss*/
|
||||
|
||||
|
||||
/* Gruvbox Dark Colors */
|
||||
@define-color background #282828;
|
||||
@define-color background-light #3c3836;
|
||||
@define-color foreground #ebdbb2;
|
||||
@define-color black #32302f;
|
||||
@define-color red #cc241d;
|
||||
@define-color green #98971a;
|
||||
@define-color yellow #d79921;
|
||||
@define-color blue #458588;
|
||||
@define-color magenta #b16286;
|
||||
@define-color cyan #689d6a;
|
||||
@define-color white #ebdbb2;
|
||||
@define-color orange #d65d0e;
|
||||
|
||||
/* Tokyo Night */
|
||||
@define-color background #1a1b26;
|
||||
@define-color background-light #24283b;
|
||||
@define-color foreground #c0caf5;
|
||||
@define-color black #15161e;
|
||||
@define-color red #f7768e;
|
||||
@define-color green #9ece6a;
|
||||
@define-color yellow #e0af68;
|
||||
@define-color blue #7aa2f7;
|
||||
@define-color magenta #bb9af7;
|
||||
@define-color cyan #7dcfff;
|
||||
@define-color white #a9b1d6;
|
||||
@define-color orange #ff9e64;
|
||||
|
||||
|
||||
/* Everforest Dark Colors */
|
||||
@define-color background #2b3339;
|
||||
@define-color background-light #323c41;
|
||||
@define-color foreground #d3c6aa;
|
||||
@define-color black #3c474d;
|
||||
@define-color red #e67e80;
|
||||
@define-color green #a7c080;
|
||||
@define-color yellow #dbbc7f;
|
||||
@define-color blue #7fbbb3;
|
||||
@define-color magenta #d699b6;
|
||||
@define-color cyan #83c092;
|
||||
@define-color white #d3c6aa;
|
||||
@define-color orange #e69875;
|
||||
|
||||
@define-color background #2b3339;
|
||||
@define-color background rgba(43, 51, 57, 0.75);
|
||||
|
||||
/* Pastel TTY Colors */
|
||||
/*
|
||||
@define-color background #212121;
|
||||
@define-color background-light #3a3a3a;
|
||||
@define-color foreground #e0e0e0;
|
||||
@define-color black #5a5a5a;
|
||||
@define-color red #ff9a9e;
|
||||
@define-color green #b5e8a9;
|
||||
@define-color yellow #ffe6a7;
|
||||
@define-color blue #63a4ff;
|
||||
@define-color magenta #dda0dd;
|
||||
@define-color cyan #a3e8e8;
|
||||
@define-color white #ffffff;
|
||||
@define-color orange #ff8952;
|
||||
*/
|
||||
|
||||
|
||||
/* Module-specific colors */
|
||||
@define-color workspaces-color @foreground;
|
||||
@define-color workspaces-focused-bg @green;
|
||||
@define-color workspaces-focused-fg @cyan;
|
||||
@define-color workspaces-urgent-bg @red;
|
||||
@define-color workspaces-urgent-fg @black;
|
||||
|
||||
/* Text and border colors for modules */
|
||||
@define-color mode-color @orange;
|
||||
@define-color mpd-color @magenta;
|
||||
@define-color weather-color @magenta;
|
||||
@define-color playerctl-color @magenta;
|
||||
@define-color clock-color @blue;
|
||||
@define-color cpu-color @green;
|
||||
@define-color memory-color @magenta;
|
||||
@define-color temperature-color @yellow;
|
||||
@define-color temperature-critical-color @red;
|
||||
@define-color battery-color @cyan;
|
||||
@define-color battery-charging-color @green;
|
||||
@define-color battery-warning-color @yellow;
|
||||
@define-color battery-critical-color @red;
|
||||
@define-color network-color @blue;
|
||||
@define-color network-disconnected-color @red;
|
||||
@define-color pulseaudio-color @orange;
|
||||
@define-color pulseaudio-muted-color @red;
|
||||
@define-color backlight-color @yellow;
|
||||
@define-color disk-color @cyan;
|
||||
@define-color uptime-color @green;
|
||||
@define-color updates-color @orange;
|
||||
@define-color quote-color @green;
|
||||
@define-color idle-inhibitor-color @foreground;
|
||||
@define-color idle-inhibitor-active-color @red;
|
||||
|
||||
* {
|
||||
/* Base styling for all modules */
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
font-family: "Fira Code Nerd Font";
|
||||
font-size: 16px;
|
||||
min-height: 0;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background-color: transparent;
|
||||
color: @foreground;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Common module styling with border-bottom */
|
||||
#mode, #mpd, #custom-weather, #custom-playerctl, #clock, #cpu,
|
||||
#memory, #temperature, #battery, #network, #pulseaudio,
|
||||
#backlight, #disk, #custom-uptime, #custom-updates, #custom-quote,
|
||||
#idle_inhibitor, #tray, #workspaces, #window {
|
||||
padding: 0 10px;
|
||||
margin: 4px 2px;
|
||||
background-color: @background;
|
||||
border-radius: 30px;
|
||||
}
|
||||
|
||||
/* Workspaces styling */
|
||||
#workspaces button {
|
||||
padding: 0 5px;
|
||||
background-color: transparent;
|
||||
color: @workspaces-color;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
background: @background-light;
|
||||
box-shadow: inherit;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
box-shadow: inset 0 -2px @workspaces-focused-fg;
|
||||
color: @workspaces-focused-fg;
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
background-color: @workspaces-urgent-bg;
|
||||
color: @workspaces-urgent-fg;
|
||||
}
|
||||
|
||||
/* Module-specific styling */
|
||||
|
||||
#tray {
|
||||
background-color: transparent;
|
||||
padding: 0 10px;
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
#tray > .passive {
|
||||
-gtk-icon-effect: dim;
|
||||
}
|
||||
|
||||
#tray > .needs-attention {
|
||||
-gtk-icon-effect: highlight;
|
||||
color: @red;
|
||||
border-bottom-color: @red;
|
||||
}
|
|
@ -108,10 +108,7 @@ in with theme.colors; {
|
|||
"${mod}+Return" = "exec kitty";
|
||||
"${mod}+Shift+e" = "exec i3-msg exit"; # bypass default session exit confirmation menu
|
||||
"${mod}+space" = "exec i3-msg open"; # Open blank space
|
||||
"Mod1+Q" = let rofi-power = pkgs.substituteAll {
|
||||
src = ./power.sh;
|
||||
isExecutable = true;
|
||||
}; in "exec ${rofi-power}";
|
||||
"Mod1+Q" = "exec ${./power.sh}";
|
||||
"${mod}+a" = "exec com.github.alainm23.task-planner.quick-add";
|
||||
|
||||
# Audio controls
|
||||
|
|
|
@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
|
|||
sha256 = "93MP1Iw1eklC+IEQXAhzLHJ+qsDASm53qw7vUEtEstI=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-aBuaXckalcBcfr/snUy+8W9ZITehoeMCsGt/4yb2BxA=";
|
||||
cargoHash = "sha256-z0pLuWcfmFkV3xg+1XKmg/Zwvb3Ce8RpERCh1OjD+so=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "A simple CLI for fetching Plume Labs air quality info.";
|
||||
|
|
|
@ -8,7 +8,8 @@ in {
|
|||
enable = true;
|
||||
inherit theme;
|
||||
};
|
||||
home.file.".config/rofi/${theme}.rasi".source = pkgs.substituteAll ({
|
||||
home.file.".config/rofi/${theme}.rasi".source = pkgs.replaceVarsWith ({
|
||||
src = ./theme.rasi;
|
||||
} // _theme.colors);
|
||||
replacements = with _theme.colors; { inherit fg0 fg1 bg0 bg1 primary; };
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue