NixOS restructuring, move common imports to lib

This commit is contained in:
Gene Liverman 2024-12-08 00:36:28 -05:00
parent f95cc09e13
commit d72f1264b2
35 changed files with 33 additions and 92 deletions

View file

@ -0,0 +1,15 @@
{ config, pkgs, hostname, username, ... }: {
home.packages = with pkgs; [
home-manager
];
sops = {
age.keyFile = "${config.users.users.${username}.home}/.config/sops/age/keys.txt";
defaultSopsFile = ../hosts/${hostname}/secrets.yaml;
secrets = {
local_git_config.path = "${config.users.users.${username}.home}/.gitconfig-local";
local_private_env.path = "${config.users.users.${username}.home}/.private-env";
};
};
}

View file

@ -0,0 +1,3 @@
{ ... }: {
programs.hexchat.enable = true;
}

View file

@ -0,0 +1,3 @@
{ ... }: {
programs.pidgin.enable = true;
}

View file

@ -0,0 +1,30 @@
{ lib, pkgs, ... }: with lib.hm.gvariant; {
dconf.settings = {
"com/gexperts/Tilix/profiles/2b7c4080-0ddd-46c5-8f23-563fd3ba789d" = {
background-color = "#272822";
background-transparency-percent = 10;
badge-color-set = false;
bold-color-set = false;
cursor-colors-set = false;
font = "Hack Nerd Font Mono 12";
foreground-color = "#F8F8F2";
highlight-colors-set = false;
palette = [ "#272822" "#F92672" "#A6E22E" "#F4BF75" "#66D9EF" "#AE81FF" "#A1EFE4" "#F8F8F2" "#75715E" "#F92672" "#A6E22E" "#F4BF75" "#66D9EF" "#AE81FF" "#A1EFE4" "#F9F8F5" ];
use-system-font = false;
use-theme-colors = false;
visible-name = "Default";
};
};
home.file = {
".config/tilix/schemes/Beanbag-Mathias.json".source = ../../files/tilix/Beanbag-Mathias.json;
".config/tilix/schemes/Catppuccin-Frappe.json".source = (pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "tilix";
rev = "3fd05e03419321f2f2a6aad6da733b28be1765ef";
hash = "sha256-SI7QxQ+WBHzeuXbTye+s8pi4tDVZOV4Aa33mRYO276k=";
} + "/src/Catppuccin-Frappe.json");
};
}

View file

@ -0,0 +1,17 @@
{ pkgs, ... }: {
home.file = {
".config/waybar/config".source = ../../files/waybar/config;
".config/waybar/frappe.css".source = (pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "waybar";
rev = "f74ab1eecf2dcaf22569b396eed53b2b2fbe8aff";
hash = "sha256-WLJMA2X20E5PCPg0ZPtSop0bfmu+pLImP9t8A8V4QK8=";
} + "/themes/frappe.css");
".config/waybar/style.css".source = ../../files/waybar/style.css;
};
programs = {
# Using file in ../../files/waybar/ to configure waybar
waybar.enable = true;
};
}

View file

@ -0,0 +1,46 @@
{ ... }: {
home.file = {
".config/xfce4/terminal/accels.scm".source = ../../files/xfce4/terminal/accels.scm;
};
xfconf.settings = {
xfce4-terminal = {
"background-mode" = "TERMINAL_BACKGROUND_TRANSPARENT";
"background-darkness" = "0.90000000000000000";
"color-foreground" = "#e3e3ea";
"color-background" = "#08052b";
"color-cursor" = "#ff7f7f";
"color-cursor-use-default" = false;
"color-palette" = "#000000;#e52222;#a6e32d;#fc951e;#c48dff;#fa2573;#67d9f0;#f2f2f2;#555555;#ff5555;#55ff55;#ffff55;#5555ff;#ff55ff;#55ffff;#ffffff";
"font-name" = "Hack Nerd Font Mono 12";
"misc-always-show-tabs" = false;
"misc-bell" = false;
"misc-bell-urgent" = true;
"misc-borders-default" = true;
"misc-cursor-blinks" = false;
"misc-cursor-shape" = "TERMINAL_CURSOR_SHAPE_BLOCK";
"misc-default-geometry" = "120x24";
"misc-inherit-geometry" = false;
"misc-menubar-default" = true;
"misc-mouse-autohide" = false;
"misc-mouse-wheel-zoom" = true;
"misc-toolbar-default" = false;
"misc-confirm-close" = true;
"misc-cycle-tabs" = true;
"misc-tab-close-buttons" = true;
"misc-tab-close-middle-click" = true;
"misc-tab-position" = "GTK_POS_TOP";
"misc-highlight-urls" = true;
"misc-middle-click-opens-uri" = false;
"misc-copy-on-select" = false;
"misc-show-relaunch-dialog" = true;
"misc-rewrap-on-resize" = true;
"misc-slim-tabs" = true;
"misc-new-tab-adjacent" = false;
"misc-search-dialog-opacity" = "100";
"misc-show-unsafe-paste-dialog" = true;
"scrolling-unlimited" = true;
"title-initial" = "xfce4-terminal";
};
};
}

View file

@ -0,0 +1,20 @@
{ ... }: {
services = {
flatpak = {
enable = true;
packages = [
"im.riot.Riot"
"com.cassidyjames.butler"
"com.logseq.Logseq"
"com.vivaldi.Vivaldi"
"org.signal.Signal"
"org.telegram.desktop"
];
update.auto = {
enable = true;
onCalendar = "daily";
};
};
};
}

View file

@ -0,0 +1,17 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
fastfetch
];
programs = {
# Linux-specific aliases
zsh.shellAliases = {
nixboot = "sudo nixos-rebuild boot --flake ~/repos/dots && echo 'Time to reboot!'";
nixdiff = "cd ~/repos/dots && nixos-rebuild build --flake . && nvd diff /run/current-system result";
nixup = "sudo nixos-rebuild switch --flake ~/repos/dots";
uwgconnect = "nmcli dev wifi connect SecureWest password";
uwgforget = "nmcli connection delete SecureWest";
ykey = "sudo systemctl restart pcscd && sudo pkill -9 gpg-agent && source ~/.zshrc; ssh-add -L";
};
};
}

View file

@ -0,0 +1,17 @@
{ ... }: {
# Select internationalisation properties.
i18n = {
defaultLocale = "en_US.UTF-8";
extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
};
}

View file

@ -0,0 +1,26 @@
{ config, username, ... }: {
##########################################################################
# #
# This module sets up Let's Encrypt certs via a DNS challenge to Gandi #
# #
##########################################################################
security.acme = {
acceptTerms = true;
defaults = {
email = "lets-encrypt@technicalissues.us";
credentialFiles = { "GANDIV5_API_KEY_FILE" = "${config.sops.secrets.gandi_api.path}"; };
#credentialFiles = { "GANDIV5_PERSONAL_ACCESS_TOKEN_FILE" = gandi_dns_pat; };
dnsProvider = "gandiv5";
dnsResolver = "ns1.gandi.net";
# uncomment below for testing
#server = "https://acme-staging-v02.api.letsencrypt.org/directory";
};
};
sops = {
age.keyFile = "${config.users.users.${username}.home}/.config/sops/age/keys.txt";
secrets.gandi_api.sopsFile = ../secrets.yaml;
};
}

View file

@ -0,0 +1,28 @@
{ config, pkgs, ... }: {
environment.systemPackages = with pkgs; [
restic
];
sops.secrets = {
restic_env.sopsFile = ../secrets.yaml;
restic_repo.sopsFile = ../secrets.yaml;
restic_password.sopsFile = ../secrets.yaml;
};
services.restic.backups = {
daily = {
initialize = true;
environmentFile = config.sops.secrets.restic_env.path;
repositoryFile = config.sops.secrets.restic_repo.path;
passwordFile = config.sops.secrets.restic_password.path;
pruneOpts = [
"--keep-daily 7"
"--keep-weekly 5"
"--keep-monthly 6"
];
};
};
}

View file

@ -0,0 +1,11 @@
{ username, ... }: {
home.stateVersion = "23.11";
sops = {
defaultSopsFile = ./secrets.yaml;
secrets = {
local_git_config.path = "/Users/${username}/.gitconfig-local";
local_private_env.path = "/Users/${username}/.private-env";
};
};
}

View file

@ -0,0 +1,23 @@
local_git_config: ENC[AES256_GCM,data:9jIVTh6nqDGcKj716fyUuXy+6XtmeausivGSyCjZzRCJK57qEqDjmSE=,iv:K8Va81ikBySImejlq9BJAHfwKMZ87BId75HyX/fO73M=,tag:S8DH6Ue66YeQpY4QXBM7SQ==,type:str]
local_private_env: ""
tailscale_key: ENC[AES256_GCM,data:me57xxTIe9UUTMaS89FTZEH4q2PBjOkKnLU6gxtecttKG4NpxX8UhTRB9V9sUVHhOd9Ap6V1iHA=,iv:laPC5cs2BDzLgHvvvnXG7bhNsZkg/3NEskM2WNp45ys=,tag:FrlDqiaf0arcmZ2jfvadUA==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age1awdf9h0avajf57cudx0rjfmxu2wlxw8wf3sa7yvfk8rp4j6taecsu74x77
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBL3RFM2VkTy9IODJTeDJD
S1lSYlV6bi93Y0RFd3ZLRTZQblA0Vm5CdEFnCmU5QkVkdmx0cHQ1bjkxa2k1YTVp
dzluekNVNVhuY2dMVGp5ZUlFV1hkL1EKLS0tIENEdUUzaXdqbEpvV3picVc0Vlpx
U2RiQ1NML0k3R09DNnZMTVdpZkdKbjQK1S6OLzASOC9zcsRPVK4uLrfgjkyouECJ
rdM/gP2BCk9vLWuC+RVEKl7+H9PDQZv14NVYity6q3LqLNasEGjR3w==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2023-12-19T02:57:53Z"
mac: ENC[AES256_GCM,data:dzwtvFMDXtiC8dSLjzlgURt/Z9cg8vv90P5b8iV7nb5iKy8FyzCRamTacUCeWNwhXngxAKiHYqonDka8BjvBT1K9sgsz3x2miOfV97gt1DWyOV5Ai0LLp6QwB3rWGaMGWWBFEmJviv4iAE+RRCnhdJHVYQJqRf1BLCudv/VxbNs=,iv:mVnV2uhg/yPMvnNkimz9iFwcHA5hWyk4nrFEreco+fQ=,tag:+98Ww009PUChzirtnWZ8pA==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.8.1

View file

@ -0,0 +1,19 @@
{ username, ... }: {
home.stateVersion = "23.11";
programs = {
go = {
enable = true;
goPath = "go";
};
k9s.enable = true;
};
sops = {
defaultSopsFile = ./secrets.yaml;
secrets = {
local_git_config.path = "/Users/${username}/.gitconfig-local";
local_private_env.path = "/Users/${username}/.private-env";
};
};
}

View file

@ -0,0 +1,23 @@
tailscale_key: ENC[AES256_GCM,data:7XXDKJ/x/8F5HabD7dYE4OE8kLMUjkxCp5eBnVayErPpobo+/4P2DC6ZAUlnaxllHpFMPMQE82S4,iv:aRUvoHuwNa3kOnH38foY/dfZl3JH8LyQsZb2qDGACsM=,tag:YL3Dm66WuDIv8KwvYLfjUw==,type:str]
local_git_config: ENC[AES256_GCM,data:DC8DzFYGT0H/5t2QhtvSc65WMil+nhj6BUdYujnNqyQJVlRe5DgIgCu280/y,iv:cCWJ9PmqIB8udCVQJfb8w5rPYIq9CWB0smtv+jiLm/o=,tag:5eeaHfPr6Y6B30CB7Yidqw==,type:str]
local_private_env: ENC[AES256_GCM,data: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,iv:5QFo6plAER9KIfdgCPUZ6eoCj21ZNVMTPHzkFa9pyyM=,tag:jtSMqL/pWRTEAdBA65rAWw==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age1rt72txg22w8y3cdvq9w7zff0cas6xtkplpj36kxnevfnrtn82f6ss7yw7d
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTd1Rzb3dKZW45MUgzVVZV
RTVCb201dGthUWZTYXpJbks3anh5THBBbFFJCnl2TkdLQnVwM1RJSy9xNzQ3SURs
MWRZbm41dUJiUTNhN1VuSnRCbktvUzgKLS0tIFdTODVoRkhJSnBPM0o1dlhyUTlU
b3U5ZWtYNXgzQXljYU5DSlJkUitjUGMKMtV3Q3X9Hn/ILCm5Wf9rt5YezT76Nnrn
XYbIIVIglNfgaS4iVgQhMOPh+yLJ5P+swFSt6/vrDH72LUFA9YNxSw==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2024-01-24T20:32:57Z"
mac: ENC[AES256_GCM,data:XSC57mPGZcUDUFbK8cq/MBfWzuks6t2EH1gMRVGpDc622TpsYOEicTLWoFXJ8TkEcW5Yftg7/VLzvAnJPdkn2WYe9gER2PJTCfbwJIBXc0X+rUHvf+hYzawH6n2u46nxUXrGLtq0pttvPqzFtBpW359jTV0+F+li7KKNDq3cAKY=,iv:7jyOL3W9GgdUzisfHqzXM41oJyhpJVAFCnm1pybcFTI=,tag:nObBoCO+QFOCAa3bHb6mKQ==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.8.1

View file

@ -1,10 +1,5 @@
{ username, ... }: {
home.stateVersion = "23.11";
imports = [
../home.nix
../../common
../../common/all-gui.nix
];
programs = {
go = {

View file

@ -0,0 +1,30 @@
{ ... }: {
home.stateVersion = "24.05";
imports = [
../../common/all-gui.nix
../../common/linux/apps/tilix.nix
../../common/linux/apps/xfce4-terminal.nix
];
programs = {
vscode = {
enable = true;
};
wezterm = {
enable = true;
extraConfig = ''
-- This will hold the configuration.
local config = wezterm.config_builder()
-- This is where you actually apply your config choices
-- For example, changing the color scheme:
config.color_scheme = 'AdventureTime'
-- and finally, return the configuration to wezterm
return config
'';
};
};
}

View file

@ -0,0 +1,81 @@
{ hostname, pkgs, username, ... }: {
imports = [
../common/linux/internationalisation.nix
];
environment = {
shells = with pkgs; [ bash zsh ];
systemPackages = with pkgs; [
age
dconf2nix
file
iftop
inetutils
iotop
neofetch
python3
sops
ssh-to-age
sysstat
tailscale
unzip
wget
xidel
];
};
fonts.fontDir.enable = true;
fonts.packages = with pkgs; [
font-awesome
(nerdfonts.override {
fonts = [
"Hack"
"SourceCodePro"
];
})
];
networking.hostName = "${hostname}";
nix.settings = {
allowed-users = [ "${username}" ];
experimental-features = [
"flakes"
"nix-command"
];
# extra-substituters = [
# ];
# extra-trusted-public-keys = [
# ];
substituters = [
"https://cache.nixos.org" # default one
"https://cache.flox.dev"
"https://cosmic.cachix.org/"
"https://nixpkgs-terraform.cachix.org"
];
trusted-public-keys = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" # default one
"cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE="
"flox-cache-public-1:7F4OyH7ZCnFhcze3fJdfyXYLQw/aV7GEed86nQ7IsOs="
"nixpkgs-terraform.cachix.org-1:8Sit092rIdAVENA3ZVeH9hzSiqI/jng6JiCrQ1Dmusw="
];
trusted-users = [ "${username}" ];
};
programs = {
bandwhich.enable = true;
zsh.enable = true;
};
security.sudo.wheelNeedsPassword = false;
services = {
openssh.enable = true;
};
sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
time.timeZone = "America/New_York";
users.defaultUserShell = pkgs.zsh;
}

View file

@ -0,0 +1,3 @@
{ ... }: {
home.stateVersion = "24.05";
}

View file

@ -2,8 +2,8 @@
domain = "technicalissues.us";
in {
imports = [
../../../../system/common/linux/lets-encrypt.nix
../../../../system/common/linux/restic.nix
../../../common/linux/lets-encrypt.nix
../../../common/linux/restic.nix
./matrix-synapse.nix
./nginx.nix
];

View file

@ -0,0 +1,3 @@
{ ... }: {
home.stateVersion = "24.05";
}

View file

@ -118,6 +118,7 @@
description = "Gene Liverman";
extraGroups = [ "wheel" ];
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFvLaPTfG3r+bcbI6DV4l69UgJjnwmZNCQk79HXyf1Pt gene@rainbow-planet"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIp42X5DZ713+bgbOO+GXROufUFdxWo7NjJbGQ285x3N gene.liverman@ltnglobal.com"
];
};

View file

@ -0,0 +1,3 @@
{ ... }: {
home.stateVersion = "24.05";
}

View file

@ -9,8 +9,8 @@ in {
./hardware-configuration.nix
./containers/audiobookshelf.nix
./containers/psitransfer.nix
../../../system/common/linux/lets-encrypt.nix
../../../system/common/linux/restic.nix
../../common/linux/lets-encrypt.nix
../../common/linux/restic.nix
];
system.stateVersion = "23.11";

View file

@ -0,0 +1,3 @@
{ ... }: {
home.stateVersion = "23.11";
}

View file

@ -1,7 +1,7 @@
{ inputs, config, pkgs, username, ... }: {
imports = [
./hardware-configuration.nix
../../../system/common/linux/flatpaks.nix
../../common/linux/flatpaks.nix
];
system.stateVersion = "23.05";

View file

@ -0,0 +1,231 @@
{ pkgs, ... }: {
home.stateVersion = "23.11";
imports = [
../../common/all-gui.nix
../../common/linux/apps/hexchat.nix
../../common/linux/apps/pidgin.nix
../../common/linux/apps/tilix.nix
../../common/linux/apps/waybar.nix
../../common/linux/apps/xfce4-terminal.nix
];
home.file = {
".config/hypr/frappe.conf".source = (pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "hyprland";
rev = "99a88fd21fac270bd999d4a26cf0f4a4222c58be";
hash = "sha256-07B5QmQmsUKYf38oWU3+2C6KO4JvinuTwmW1Pfk8CT8=";
} + "/themes/frappe.conf");
};
programs.vscode = {
enable = true;
};
services.dunst = {
enable = true;
settings = {
global = {
frame_color = "#8CAAEE";
separator_color= "frame";
};
urgency_low = {
background = "#303446";
foreground = "#C6D0F5";
};
urgency_normal = {
background = "#303446";
foreground = "#C6D0F5";
};
urgency_critical = {
background = "#303446";
foreground = "#C6D0F5";
frame_color = "#EF9F76";
};
};
};
wayland.windowManager.hyprland = {
enable = true;
settings = {
# Catppuccin Theme
source = "~/.config/hypr/frappe.conf";
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor = ",preferred,auto,auto";
exec-once = [
"waybar & dunst & ulauncher"
# start polkit-kde-agent
"/nix/store/$(ls -la /nix/store | grep polkit-kde-agent | grep '^d' | awk '{print $9}')/libexec/polkit-kde-authentication-agent-1"
];
# Some default env vars.
env = "XCURSOR_SIZE,24";
input = {
follow_mouse = 1;
kb_layout = "us";
kb_variant = "";
kb_model = "";
kb_options = "";
kb_rules = "";
touchpad = {
natural_scroll = "no";
};
# -1.0 - 1.0, 0 means no modification.
sensitivity = 0;
};
general = {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
border_size = 2;
"col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
"col.inactive_border" = "rgba(595959aa)";
gaps_in = 5;
gaps_out = 20;
layout = "dwindle";
};
decoration = {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
blur = {
enabled = true;
size = 3;
passes = 1;
};
"col.shadow" = "rgba(1a1a1aee)";
drop_shadow = "yes";
rounding = 10;
shadow_range = 4;
shadow_render_power = 3;
};
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"
"windowsOut, 1, 7, default, popin 80%"
"border, 1, 10, default"
"borderangle, 1, 8, default"
"fade, 1, 7, default"
"workspaces, 1, 6, default"
];
};
dwindle = {
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
# master switch for pseudotiling.
# Enabling is bound to mainMod + P in the keybinds section below
pseudotile = "yes";
preserve_split = "yes"; # you probably want this
};
master = {
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
new_is_master = true;
};
gestures = {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = "off";
};
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
device = {
name = "epic-mouse-v1";
sensitivity = "-0.5";
};
# 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, T, exec, tilix"
"$mainMod, Return, exec, xfce4-terminal"
"$mainMod, F, exec, firefox"
"$mainMod, S, exec, slack"
"$mainMod, C, killactive,"
"$mainMod, M, exit,"
"$mainMod, E, exec, nautilus"
"$mainMod, V, togglefloating,"
"$mainMod, space, exec, ulauncher-toggle"
"$mainMod, P, pseudo," # dwindle
"$mainMod, J, togglesplit," # dwindle
# Move focus with mainMod + arrow keys
"$mainMod, left, movefocus, l"
"$mainMod, right, movefocus, r"
"$mainMod, up, movefocus, u"
"$mainMod, down, movefocus, d"
# Switch workspaces with mainMod + [0-9]
"$mainMod, 1, workspace, 1"
"$mainMod, 2, workspace, 2"
"$mainMod, 3, workspace, 3"
"$mainMod, 4, workspace, 4"
"$mainMod, 5, workspace, 5"
"$mainMod, 6, workspace, 6"
"$mainMod, 7, workspace, 7"
"$mainMod, 8, workspace, 8"
"$mainMod, 9, workspace, 9"
"$mainMod, 0, workspace, 10"
# Move active window to a workspace with mainMod + SHIFT + [0-9]
"$mainMod SHIFT, 1, movetoworkspace, 1"
"$mainMod SHIFT, 2, movetoworkspace, 2"
"$mainMod SHIFT, 3, movetoworkspace, 3"
"$mainMod SHIFT, 4, movetoworkspace, 4"
"$mainMod SHIFT, 5, movetoworkspace, 5"
"$mainMod SHIFT, 6, movetoworkspace, 6"
"$mainMod SHIFT, 7, movetoworkspace, 7"
"$mainMod SHIFT, 8, movetoworkspace, 8"
"$mainMod SHIFT, 9, movetoworkspace, 9"
"$mainMod SHIFT, 0, movetoworkspace, 10"
# Scroll through existing workspaces with mainMod + scroll
"$mainMod, mouse_down, workspace, e+1"
"$mainMod, mouse_up, workspace, e-1"
# Laptop keys along the top
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
", XF86MonBrightnessUp, exec, brightnessctl set +5%"
", XF86MonBrightnessDown, exec, brightnessctl set 5%-"
];
binde = [
# Example volume button that allows press and hold, volume limited to 100%
", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+"
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
];
bindm = [
# Move/resize windows with mainMod + LMB/RMB and dragging
"$mainMod, mouse:272, movewindow"
"$mainMod, mouse:273, resizewindow"
];
}; # end settings
}; # end hyprland
}