Compare commits
No commits in common. "c0c919be76a3c056e585c19417abd9d2638425ec" and "8ea0b0cd87eb5e7ee63295002b6ecd6088b02b7c" have entirely different histories.
c0c919be76
...
8ea0b0cd87
13 changed files with 60 additions and 153 deletions
14
flake.lock
generated
14
flake.lock
generated
|
@ -374,11 +374,11 @@
|
||||||
"xdph": "xdph"
|
"xdph": "xdph"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749657143,
|
"lastModified": 1749540031,
|
||||||
"narHash": "sha256-3MiuAUQBo9Luk0lNzNSuomx1WMMBua2feVjXNfg9Dws=",
|
"narHash": "sha256-11k6hq/4Tao2PNBFQpSNTlFFKmKGswL17caKuZIE0sM=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprland",
|
"repo": "hyprland",
|
||||||
"rev": "412c7dc7f79cb6b04af41692504e82d4417e6e13",
|
"rev": "6bdb1f413e4c592f73d91bef33dfb202503ef7ab",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -760,11 +760,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749674850,
|
"lastModified": 1749533342,
|
||||||
"narHash": "sha256-5V6Jmiyg820PCLwskW6gp1sojo0F8hze6eR/xgp2d4U=",
|
"narHash": "sha256-cQzKzqsPQmDBRDjcX4UFEQKNeAyibLIKkF+BBhE2JnI=",
|
||||||
"ref": "refs/heads/master",
|
"ref": "refs/heads/master",
|
||||||
"rev": "2a8479d635958e6c2ced68767001da4638b6f197",
|
"rev": "2b01a75679a03bd6557cf11c20b1588f436d6b94",
|
||||||
"revCount": 572,
|
"revCount": 571,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
||||||
},
|
},
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
modules = {
|
modules = {
|
||||||
wms.wayland.enable = true;
|
wms.wayland.enable = true;
|
||||||
desktops.hyprland.enable = false;
|
desktops.hyprland.enable = false;
|
||||||
|
desktops.niri.enable = true;
|
||||||
|
|
||||||
theming = {
|
theming = {
|
||||||
gtk.enable = true;
|
gtk.enable = true;
|
||||||
|
@ -35,8 +36,6 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
system = {
|
system = {
|
||||||
systemType = "laptop";
|
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
systemd-boot.enable = true;
|
systemd-boot.enable = true;
|
||||||
lanzaboote.enable = true;
|
lanzaboote.enable = true;
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
fselect
|
fselect
|
||||||
gcc
|
gcc
|
||||||
gh
|
gh
|
||||||
|
ghostty
|
||||||
grc
|
grc
|
||||||
gparted
|
gparted
|
||||||
git
|
git
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
{pkgs, ...}: {
|
{pkgs, ...}: let
|
||||||
|
in {
|
||||||
environment.systemPackages = builtins.attrValues {
|
environment.systemPackages = builtins.attrValues {
|
||||||
inherit
|
inherit
|
||||||
(pkgs)
|
(pkgs)
|
||||||
|
@ -16,9 +17,11 @@
|
||||||
difftastic
|
difftastic
|
||||||
dnsutils
|
dnsutils
|
||||||
devenv
|
devenv
|
||||||
|
element-desktop
|
||||||
evince
|
evince
|
||||||
gcc
|
gcc
|
||||||
gh
|
gh
|
||||||
|
ghostty
|
||||||
gnumake
|
gnumake
|
||||||
gparted
|
gparted
|
||||||
halloy
|
halloy
|
||||||
|
|
|
@ -5,10 +5,7 @@
|
||||||
}: let
|
}: let
|
||||||
inherit (builtins) elemAt;
|
inherit (builtins) elemAt;
|
||||||
inherit (lib.options) mkOption mkEnableOption;
|
inherit (lib.options) mkOption mkEnableOption;
|
||||||
inherit (lib.types) enum listOf str nullOr bool oneOf;
|
inherit (lib.types) enum listOf str nullOr bool package;
|
||||||
inherit (lib.lists) elem;
|
|
||||||
|
|
||||||
inherit (config.modules.system) systemType;
|
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
# configuration options for nixos activation scripts
|
# configuration options for nixos activation scripts
|
||||||
|
@ -47,7 +44,7 @@ in {
|
||||||
|
|
||||||
users = mkOption {
|
users = mkOption {
|
||||||
type = listOf str;
|
type = listOf str;
|
||||||
default = ["cr"];
|
default = ["charlie"];
|
||||||
description = "A list of users on the system.";
|
description = "A list of users on the system.";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -60,23 +57,6 @@ in {
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
systemType = mkOption {
|
|
||||||
type = nullOr (enum ["desktop" "laptop" "server"]);
|
|
||||||
default = null;
|
|
||||||
description = ''
|
|
||||||
The type of the current system. This is used to determine whether things like graphical
|
|
||||||
environments and power-saving programs should be installed or not.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
isGraphical = mkOption {
|
|
||||||
type = bool;
|
|
||||||
default = elem systemType ["desktop" "laptop"];
|
|
||||||
description = ''
|
|
||||||
Whether the current system is a graphical system.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
yubikeySupport = {
|
yubikeySupport = {
|
||||||
enable = mkEnableOption "yubikey support";
|
enable = mkEnableOption "yubikey support";
|
||||||
deviceType = mkOption {
|
deviceType = mkOption {
|
||||||
|
@ -92,7 +72,6 @@ in {
|
||||||
impermanence = {
|
impermanence = {
|
||||||
enable = mkEnableOption "Enable Impermanence";
|
enable = mkEnableOption "Enable Impermanence";
|
||||||
};
|
};
|
||||||
|
|
||||||
video = {
|
video = {
|
||||||
enable = mkEnableOption "video drivers and programs that require a graphical user interface";
|
enable = mkEnableOption "video drivers and programs that require a graphical user interface";
|
||||||
nvidia = mkEnableOption "Nvidia graphics drivers";
|
nvidia = mkEnableOption "Nvidia graphics drivers";
|
||||||
|
@ -113,6 +92,15 @@ in {
|
||||||
default = [];
|
default = [];
|
||||||
description = "A list of extra drivers to enable for printing";
|
description = "A list of extra drivers to enable for printing";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
"3d" = {
|
||||||
|
enable = mkEnableOption "3D printing suite";
|
||||||
|
extraPrograms = mkOption {
|
||||||
|
type = listOf package;
|
||||||
|
default = [];
|
||||||
|
description = "A list of extra programs to enable for 3D printing";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
}: let
|
}: let
|
||||||
inherit (builtins) elemAt;
|
inherit (builtins) elemAt;
|
||||||
inherit (lib.options) mkOption;
|
inherit (lib.options) mkOption;
|
||||||
inherit (lib.types) listOf str package;
|
inherit (lib.types) listOf str;
|
||||||
|
|
||||||
inherit (config.meta.mainUser) username;
|
inherit (config.meta.mainUser) username;
|
||||||
in {
|
in {
|
||||||
|
@ -27,7 +27,6 @@ in {
|
||||||
The main user for each system. This is the first element of the list of users by default.
|
The main user for each system. This is the first element of the list of users by default.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
gitSigningKey = mkOption {
|
gitSigningKey = mkOption {
|
||||||
type = str;
|
type = str;
|
||||||
description = ''
|
description = ''
|
||||||
|
@ -37,28 +36,9 @@ in {
|
||||||
ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBAAWEDj/Yib6Mqs016jx7rtecWpytwfVl28eoHtPYCM9TVLq81VIHJSN37lbkc/JjiXCdIJy2Ta3A3CVV5k3Z37NbgAu23oKA2OcHQNaRTLtqWlcBf9fk9suOkP1A3NzAqzivFpBnZm3ytaXwU8LBJqxOtNqZcFVruO6fZxJtg2uE34mAw==
|
ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBAAWEDj/Yib6Mqs016jx7rtecWpytwfVl28eoHtPYCM9TVLq81VIHJSN37lbkc/JjiXCdIJy2Ta3A3CVV5k3Z37NbgAu23oKA2OcHQNaRTLtqWlcBf9fk9suOkP1A3NzAqzivFpBnZm3ytaXwU8LBJqxOtNqZcFVruO6fZxJtg2uE34mAw==
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
# TODO: clean this up and move it somewhere else.
|
|
||||||
defaultShell = {
|
|
||||||
name = mkOption {
|
|
||||||
type = str;
|
|
||||||
default = "nushell";
|
|
||||||
description = ''
|
|
||||||
The default shell of a user. This is not the main system shell, but the shell used in terminals.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
package = mkOption {
|
|
||||||
type = package;
|
|
||||||
default = pkgs.nushell;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
config = {
|
config = {
|
||||||
programs.zsh = {
|
|
||||||
enable = true;
|
|
||||||
enableBashCompletion = true;
|
|
||||||
};
|
|
||||||
users = {
|
users = {
|
||||||
mutableUsers = true;
|
mutableUsers = true;
|
||||||
users = {
|
users = {
|
||||||
|
@ -73,7 +53,6 @@ in {
|
||||||
"nix"
|
"nix"
|
||||||
"docker"
|
"docker"
|
||||||
];
|
];
|
||||||
# shell = self.packages.${pkgs.stdenv.system}.fish;
|
|
||||||
shell = pkgs.zsh;
|
shell = pkgs.zsh;
|
||||||
# hashedPasswordFile = "/etc/passwords/cr";
|
# hashedPasswordFile = "/etc/passwords/cr";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,47 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (lib.lists) elem;
|
|
||||||
inherit (lib.meta) getExe;
|
|
||||||
|
|
||||||
inherit (config.meta.mainUser.defaultShell) name package;
|
|
||||||
inherit (config.modules.style.colorScheme) slug;
|
|
||||||
|
|
||||||
# Shell integration for ghostty only supports
|
|
||||||
# bash, fish and zsh for now.
|
|
||||||
shell-integration =
|
|
||||||
if elem name ["bash" "fish" "zsh"]
|
|
||||||
then name
|
|
||||||
else "none";
|
|
||||||
|
|
||||||
ghostty-settings = pkgs.writeText "config" ''
|
|
||||||
font-family = JetBrainsMono Nerd Font Mono
|
|
||||||
window-padding-x = 8
|
|
||||||
window-padding-y = 8
|
|
||||||
background-opacity = 0.85
|
|
||||||
gtk-single-instance = true
|
|
||||||
font-size = 14
|
|
||||||
theme = ${slug}
|
|
||||||
resize-overlay-duration = 0s
|
|
||||||
cursor-style-blink = false
|
|
||||||
|
|
||||||
shell-integration = ${shell-integration}
|
|
||||||
command = ${getExe package}
|
|
||||||
'';
|
|
||||||
|
|
||||||
ghostty-wrapped = pkgs.symlinkJoin {
|
|
||||||
name = "ghostty-wrapped";
|
|
||||||
paths = [pkgs.ghostty];
|
|
||||||
nativeBuildInputs = [pkgs.makeWrapper];
|
|
||||||
postBuild = ''
|
|
||||||
wrapProgram $out/bin/ghostty --add-flags "--config-file=${ghostty-settings}"
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
environment.systemPackages = builtins.attrValues {
|
|
||||||
inherit ghostty-wrapped;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -24,7 +24,7 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
keyboards.dell-keyboard = {
|
keyboards.dell-keyboard = {
|
||||||
devices = ["/dev/input/by-id/usb-Dell_Dell_USB_Keyboard-event-kbd"];
|
devices = ["/dev/input/by-path/usb-Dell_Dell_USB_Keyboard-event-kbd "];
|
||||||
config = builtins.readFile (./. + "/main.kbd");
|
config = builtins.readFile (./. + "/main.kbd");
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -79,6 +79,8 @@ environment {
|
||||||
}
|
}
|
||||||
// prefer no client side decorations
|
// prefer no client side decorations
|
||||||
prefer-no-csd
|
prefer-no-csd
|
||||||
|
// no saving screenshots
|
||||||
|
screenshot-path null
|
||||||
switch-events {
|
switch-events {
|
||||||
lid-close {
|
lid-close {
|
||||||
spawn "swaylock"
|
spawn "swaylock"
|
||||||
|
@ -106,12 +108,7 @@ window-rule {
|
||||||
open-on-workspace "browser"
|
open-on-workspace "browser"
|
||||||
}
|
}
|
||||||
window-rule {
|
window-rule {
|
||||||
match app-id="org.keepassxc.KeePassXC"
|
match app-id="^org\\.keepassxc\\.KeePassXC$"
|
||||||
block-out-from "screen-capture"
|
|
||||||
open-on-workspace "keepassxc"
|
|
||||||
}
|
|
||||||
window-rule {
|
|
||||||
match app-id="thunderbird"
|
|
||||||
block-out-from "screen-capture"
|
block-out-from "screen-capture"
|
||||||
open-on-workspace "keepassxc"
|
open-on-workspace "keepassxc"
|
||||||
}
|
}
|
||||||
|
@ -172,7 +169,7 @@ binds {
|
||||||
close-window
|
close-window
|
||||||
}
|
}
|
||||||
Mod+H {
|
Mod+H {
|
||||||
focus-column-or-monitor-left
|
focus-column-left
|
||||||
}
|
}
|
||||||
Mod+J {
|
Mod+J {
|
||||||
focus-window-or-workspace-down
|
focus-window-or-workspace-down
|
||||||
|
@ -181,10 +178,10 @@ binds {
|
||||||
focus-window-or-workspace-up
|
focus-window-or-workspace-up
|
||||||
}
|
}
|
||||||
Mod+L {
|
Mod+L {
|
||||||
focus-column-or-monitor-right
|
focus-column-right
|
||||||
}
|
}
|
||||||
Mod+Shift+H {
|
Mod+Shift+H {
|
||||||
move-column-left-or-to-monitor-left
|
move-column-left
|
||||||
}
|
}
|
||||||
Mod+Shift+J {
|
Mod+Shift+J {
|
||||||
move-window-down-or-to-workspace-down
|
move-window-down-or-to-workspace-down
|
||||||
|
@ -193,7 +190,7 @@ binds {
|
||||||
move-window-up-or-to-workspace-up
|
move-window-up-or-to-workspace-up
|
||||||
}
|
}
|
||||||
Mod+Shift+L {
|
Mod+Shift+L {
|
||||||
move-column-right-or-to-monitor-right
|
move-column-right
|
||||||
}
|
}
|
||||||
Mod+Home {
|
Mod+Home {
|
||||||
focus-column-first
|
focus-column-first
|
||||||
|
@ -408,13 +405,13 @@ binds {
|
||||||
toggle-overview
|
toggle-overview
|
||||||
}
|
}
|
||||||
Print {
|
Print {
|
||||||
screenshot write-to-disk=false
|
screenshot
|
||||||
}
|
}
|
||||||
Ctrl+Print {
|
Ctrl+Print {
|
||||||
screenshot-screen
|
screenshot-screen
|
||||||
}
|
}
|
||||||
Alt+Print {
|
Alt+Print {
|
||||||
screenshot write-to-disk=true
|
screenshot-window
|
||||||
}
|
}
|
||||||
Mod+Escape allow-inhibiting=false {
|
Mod+Escape allow-inhibiting=false {
|
||||||
toggle-keyboard-shortcuts-inhibit
|
toggle-keyboard-shortcuts-inhibit
|
||||||
|
|
|
@ -7,15 +7,10 @@
|
||||||
inherit (lib.modules) mkForce mkIf;
|
inherit (lib.modules) mkForce mkIf;
|
||||||
inherit (lib.options) mkEnableOption;
|
inherit (lib.options) mkEnableOption;
|
||||||
|
|
||||||
inherit (config.modules.system) isGraphical;
|
|
||||||
cfg = config.modules.desktops.niri;
|
cfg = config.modules.desktops.niri;
|
||||||
in {
|
in {
|
||||||
options.modules.desktops.niri.enable = mkEnableOption "Niri, a scolling tiling wayland compositor";
|
options.modules.desktops.niri.enable = mkEnableOption "Niri, a scolling tiling wayland compositor";
|
||||||
|
config = mkIf cfg.enable {
|
||||||
config =
|
|
||||||
mkIf (cfg.enable
|
|
||||||
|| isGraphical)
|
|
||||||
{
|
|
||||||
programs.niri = {
|
programs.niri = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.niri;
|
package = pkgs.niri;
|
||||||
|
@ -24,6 +19,7 @@ in {
|
||||||
# which is something I direly want to avoid.
|
# which is something I direly want to avoid.
|
||||||
services.gnome.gnome-keyring.enable = mkForce false;
|
services.gnome.gnome-keyring.enable = mkForce false;
|
||||||
|
|
||||||
|
# set niri's config location to /etc/niri/config.kdl.
|
||||||
environment.etc."niri/config.kdl".source = ./config.kdl;
|
environment.etc."niri/config.kdl".source = ./config.kdl;
|
||||||
|
|
||||||
environment.systemPackages = builtins.attrValues {
|
environment.systemPackages = builtins.attrValues {
|
||||||
|
|
|
@ -8,16 +8,7 @@ pkgs.writeTextDir "${vendorConf}/blox_config.fish"
|
||||||
''
|
''
|
||||||
# source ${pkgs.fishPlugins.sponge}/share/zsh-defer/zsh-defer.plugin.zsh
|
# source ${pkgs.fishPlugins.sponge}/share/zsh-defer/zsh-defer.plugin.zsh
|
||||||
${pkgs.atuin}/bin/atuin init fish | source
|
${pkgs.atuin}/bin/atuin init fish | source
|
||||||
bind up _atuin_bind_up
|
|
||||||
|
|
||||||
${pkgs.zoxide}/bin/zoxide init fish | source
|
${pkgs.zoxide}/bin/zoxide init fish | source
|
||||||
# abbr --erase cd &>/dev/null
|
|
||||||
# alias cd=__zoxide_z
|
|
||||||
|
|
||||||
# abbr --erase ci &>/dev/null
|
|
||||||
# alias ci=__zoxide_zi
|
|
||||||
|
|
||||||
|
|
||||||
${pkgs.starship}/bin/starship init fish | source
|
${pkgs.starship}/bin/starship init fish | source
|
||||||
${pkgs.direnv}/bin/direnv hook fish | source
|
${pkgs.direnv}/bin/direnv hook fish | source
|
||||||
${pkgs.pay-respects}/bin/pay-respects fish --alias f --nocnf | source
|
${pkgs.pay-respects}/bin/pay-respects fish --alias f --nocnf | source
|
||||||
|
|
|
@ -50,7 +50,7 @@ builtins.attrValues {
|
||||||
wget
|
wget
|
||||||
cpufetch
|
cpufetch
|
||||||
watchman
|
watchman
|
||||||
# yt-dlp # borked check phase
|
yt-dlp
|
||||||
tealdeer
|
tealdeer
|
||||||
hyperfine
|
hyperfine
|
||||||
imagemagick
|
imagemagick
|
||||||
|
|
|
@ -162,7 +162,7 @@
|
||||||
config = {
|
config = {
|
||||||
check = {
|
check = {
|
||||||
command = "clippy";
|
command = "clippy";
|
||||||
extraArgs = ["--" "-D" "clippy::pedantic" "-W" "clippy::nursery" "-W" "clippy::perf"];
|
extraArgs = ["--" "-W" "clippy::pedantic" "-W" "clippy::nursery" "-W" "clippy::perf"];
|
||||||
};
|
};
|
||||||
cargo.features = "all";
|
cargo.features = "all";
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue