diff --git a/flake.lock b/flake.lock
index 72e2204..7d49532 100644
--- a/flake.lock
+++ b/flake.lock
@@ -1,5 +1,80 @@
{
"nodes": {
+ "banner": {
+ "inputs": {
+ "nixpkgs": [
+ "gtk-nix",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1669224926,
+ "narHash": "sha256-UK19yx8jNqbPfBZNUeJr2Sms7BhbDAUyJBF5w2CT6Hc=",
+ "owner": "the-argus",
+ "repo": "banner.nix",
+ "rev": "253556f4068f5cb9728e49ac42d630cdc0ccfd58",
+ "type": "github"
+ },
+ "original": {
+ "owner": "the-argus",
+ "repo": "banner.nix",
+ "type": "github"
+ }
+ },
+ "base16-schemes": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1689473676,
+ "narHash": "sha256-L0RhUr9+W5EPWBpLcmkKpUeCEWRs/kLzVMF3Vao2ZU0=",
+ "owner": "tinted-theming",
+ "repo": "base16-schemes",
+ "rev": "d95123ca6377cd849cfdce92c0a24406b0c6a789",
+ "type": "github"
+ },
+ "original": {
+ "owner": "tinted-theming",
+ "repo": "base16-schemes",
+ "type": "github"
+ }
+ },
+ "flake-utils": {
+ "inputs": {
+ "systems": "systems"
+ },
+ "locked": {
+ "lastModified": 1689068808,
+ "narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "type": "github"
+ }
+ },
+ "gtk-nix": {
+ "inputs": {
+ "banner": "banner",
+ "flake-utils": "flake-utils",
+ "nixpkgs": "nixpkgs"
+ },
+ "locked": {
+ "lastModified": 1692384535,
+ "narHash": "sha256-lFOEsDLV7kuEAcHS7HfyGewTcdSkzTxM+l3XwGhzLgU=",
+ "owner": "the-argus",
+ "repo": "gtk-nix",
+ "rev": "e77b9e68aa818b87389c682b4fd018ad451a85d3",
+ "type": "github"
+ },
+ "original": {
+ "owner": "the-argus",
+ "repo": "gtk-nix",
+ "type": "github"
+ }
+ },
"home-manager": {
"inputs": {
"nixpkgs": [
@@ -20,7 +95,56 @@
"type": "github"
}
},
+ "nix-colors": {
+ "inputs": {
+ "base16-schemes": "base16-schemes",
+ "nixpkgs-lib": "nixpkgs-lib"
+ },
+ "locked": {
+ "lastModified": 1695388192,
+ "narHash": "sha256-2jelpE7xK+4M7jZNyWL7QYOYegQLYBDQS5bvdo8XRUQ=",
+ "owner": "misterio77",
+ "repo": "nix-colors",
+ "rev": "37227f274b34a3b51649166deb94ce7fec2c6a4c",
+ "type": "github"
+ },
+ "original": {
+ "owner": "misterio77",
+ "repo": "nix-colors",
+ "type": "github"
+ }
+ },
"nixpkgs": {
+ "locked": {
+ "lastModified": 1692264070,
+ "narHash": "sha256-WepAkIL2UcHOj7JJiaFS/vxrA9lklQHv8p+xGL+7oQ0=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "42c25608aa2ad4e5d3716d8d63c606063513ba33",
+ "type": "github"
+ },
+ "original": {
+ "id": "nixpkgs",
+ "ref": "nixos-unstable",
+ "type": "indirect"
+ }
+ },
+ "nixpkgs-lib": {
+ "locked": {
+ "lastModified": 1694911725,
+ "narHash": "sha256-8YqI+YU1DGclEjHsnrrGfqsQg3Wyga1DfTbJrN3Ud0c=",
+ "owner": "nix-community",
+ "repo": "nixpkgs.lib",
+ "rev": "819180647f428a3826bfc917a54449da1e532ce0",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "nixpkgs.lib",
+ "type": "github"
+ }
+ },
+ "nixpkgs_2": {
"locked": {
"lastModified": 1703013332,
"narHash": "sha256-+tFNwMvlXLbJZXiMHqYq77z/RfmpfpiI3yjL6o/Zo9M=",
@@ -38,8 +162,25 @@
},
"root": {
"inputs": {
+ "gtk-nix": "gtk-nix",
"home-manager": "home-manager",
- "nixpkgs": "nixpkgs"
+ "nix-colors": "nix-colors",
+ "nixpkgs": "nixpkgs_2"
+ }
+ },
+ "systems": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
}
}
},
diff --git a/flake.nix b/flake.nix
index 819b0c0..508fd6a 100644
--- a/flake.nix
+++ b/flake.nix
@@ -9,8 +9,10 @@
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
+ nix-colors.url = "github:misterio77/nix-colors";
+ gtk-nix.url = "github:the-argus/gtk-nix";
};
- outputs = inputs @ { self, nixpkgs, home-manager }:
+ outputs = { nixpkgs, home-manager, ... }@inputs:
let
system = "x86_64-linux";
user = {
diff --git a/home-manager/firefox.nix b/home-manager/dots/firefox.nix
similarity index 100%
rename from home-manager/firefox.nix
rename to home-manager/dots/firefox.nix
diff --git a/home-manager/dots/foot.nix b/home-manager/dots/foot.nix
new file mode 100644
index 0000000..16b999f
--- /dev/null
+++ b/home-manager/dots/foot.nix
@@ -0,0 +1,32 @@
+{ pkgs, config, ... }:
+{
+ programs.foot = {
+ enable = true;
+ settings = {
+ main = {
+ font = "Comic Mono:size=11";
+ };
+ colors = {
+ alpha = 1.0;
+ foreground = "${config.colorScheme.colors.base0F}";
+ background = "${config.colorScheme.colors.base00}";
+ regular0 = "${config.colorScheme.colors.base00}";
+ regular1 = "${config.colorScheme.colors.base01}";
+ regular2 = "${config.colorScheme.colors.base02}";
+ regular3 = "${config.colorScheme.colors.base03}";
+ regular4 = "${config.colorScheme.colors.base04}";
+ regular5 = "${config.colorScheme.colors.base05}";
+ regular6 = "${config.colorScheme.colors.base06}";
+ regular7 = "${config.colorScheme.colors.base07}";
+ bright0 = "${config.colorScheme.colors.base08}";
+ bright1 = "${config.colorScheme.colors.base09}";
+ bright2 = "${config.colorScheme.colors.base0A}";
+ bright3 = "${config.colorScheme.colors.base0B}";
+ bright4 = "${config.colorScheme.colors.base0C}";
+ bright5 = "${config.colorScheme.colors.base0D}";
+ bright6 = "${config.colorScheme.colors.base0E}";
+ bright7 = "${config.colorScheme.colors.base0F}";
+ };
+ };
+ };
+}
diff --git a/home-manager/dots/gtk.nix b/home-manager/dots/gtk.nix
new file mode 100644
index 0000000..86939ad
--- /dev/null
+++ b/home-manager/dots/gtk.nix
@@ -0,0 +1,95 @@
+{ pkgs, config, ... }:
+{
+ gtk = {
+ enable = true;
+ font = {
+ name = "Comic Mono";
+ };
+ };
+ gtkNix = {
+ enable = true;
+ configuration = {
+ spacing-small = "0.3em";
+ spacing-medium = "0.6em";
+ spacing-large = "0.9em";
+ tint-weak = 0.3;
+ tint-medium = 0.6;
+ tint-strong = 0.9;
+ border-size = "0.2em";
+ radius = "0.5em";
+ disabled-opacity = 0.3;
+ };
+
+ defaultTransparency = 255;
+
+ # neither of these options are very useful. They're just so that if
+ # I forgot to make something configurable, you can override previous
+ # variable definitions.
+ extraConfigSCSS = '''';
+ extraColorSCSS = '''';
+
+ whites = let
+ mkWhite = alpha: "f0f0f3${alpha}";
+ in {
+ strongest = mkWhite "FF";
+ strong = mkWhite "DE";
+ moderate = mkWhite "57";
+ weak = mkWhite "24";
+ weakest = mkWhite "0F";
+ };
+ blacks = let
+ mkBlack = alpha: "191724${alpha}";
+ in {
+ strongest = mkBlack "FF";
+ strong = mkBlack "DE";
+ moderate = mkBlack "6B";
+ weak = mkBlack "26";
+ weakest = mkBlack "0F";
+ };
+
+ palette = rec {
+ # the banner palette format. can also be a path to a yaml file
+ # instead of attrs. this example is rose pine.
+ base00 = "${config.colorScheme.colors.base00}";
+ base01 = "${config.colorScheme.colors.base01}";
+ base02 = "${config.colorScheme.colors.base02}";
+ base03 = "${config.colorScheme.colors.base03}";
+ base04 = "${config.colorScheme.colors.base04}";
+ base05 = "${config.colorScheme.colors.base05}";
+ base06 = "${config.colorScheme.colors.base06}";
+ base07 = "${config.colorScheme.colors.base07}";
+ base08 = "${config.colorScheme.colors.base08}";
+ base09 = "${config.colorScheme.colors.base09}";
+ base10 = "${config.colorScheme.colors.base0A}";
+ base11 = "${config.colorScheme.colors.base0B}";
+ base12 = "${config.colorScheme.colors.base0C}";
+ base13 = "${config.colorScheme.colors.base0D}";
+ base14 = "${config.colorScheme.colors.base0E}";
+ base15 = "${config.colorScheme.colors.base0F}";
+ highlight = "${config.colorScheme.colors.base0E}";
+ hialt0 = "${config.colorScheme.colors.base0A}";
+ hialt1 = "${config.colorScheme.colors.base0E}";
+ hialt2 = "${config.colorScheme.colors.base0B}";
+ urgent = "${config.colorScheme.colors.base09}";
+ warn = "${config.colorScheme.colors.base0A}";
+ confirm = "${config.colorScheme.colors.base0D}";
+ link = "${config.colorScheme.colors.base0E}";
+ pfg-highlight = "${config.colorScheme.colors.base00}";
+ pfg-hialt0 = "${config.colorScheme.colors.base00}";
+ pfg-hialt1 = "${config.colorScheme.colors.base00}";
+ pfg-hialt2 = "${config.colorScheme.colors.base05}";
+ pfg-urgent = "${config.colorScheme.colors.base00}";
+ pfg-warn = "${config.colorScheme.colors.base00}";
+ pfg-confirm = "${config.colorScheme.colors.base00}";
+ pfg-link = "${config.colorScheme.colors.base00}";
+ ansi00 = "${config.colorScheme.colors.base03}";
+ ansi01 = "${config.colorScheme.colors.base09}";
+ ansi02 = "${config.colorScheme.colors.base0D}";
+ ansi03 = "${config.colorScheme.colors.base0A}";
+ ansi04 = "${config.colorScheme.colors.base0C}";
+ ansi05 = "${config.colorScheme.colors.base0E}";
+ ansi06 = "${config.colorScheme.colors.base0B}";
+ ansi07 = "${config.colorScheme.colors.base05}";
+ };
+ };
+}
diff --git a/home-manager/dots/mako.nix b/home-manager/dots/mako.nix
new file mode 100644
index 0000000..4ac2a37
--- /dev/null
+++ b/home-manager/dots/mako.nix
@@ -0,0 +1,28 @@
+{ pkgs, config, ... }:
+{
+ services.mako = {
+ enable = true;
+ backgroundColor = "#${config.colorScheme.colors.base01}";
+ borderColor = "#${config.colorScheme.colors.base0E}";
+ borderRadius = 5;
+ borderSize = 2;
+ textColor = "#${config.colorScheme.colors.base04}";
+ anchor = "top-right";
+ layer = "overlay";
+ maxVisible = 5;
+ font = "Comic Mono 12";
+ defaultTimeout = 10000;
+ extraConfig = ''
+ [urgency=low]
+ border-color=#${config.colorScheme.colors.base01}
+ text-color=#${config.colorScheme.colors.base07}
+ [urgency=normal]
+ border-color=#${config.colorScheme.colors.base0D}
+ text-color=#${config.colorScheme.colors.base04}
+ [urgency=high]
+ background-color=#${config.colorScheme.colors.base0E}
+ border-color=#${config.colorScheme.colors.base0E}
+ text-color=#${config.colorScheme.colors.base04}
+ '';
+ };
+}
diff --git a/home-manager/dots/river.nix b/home-manager/dots/river.nix
new file mode 100644
index 0000000..ece1c63
--- /dev/null
+++ b/home-manager/dots/river.nix
@@ -0,0 +1,168 @@
+{ pkgs, config, ... }:
+{
+ xdg.configFile = {
+ "init" = {
+ enable = true;
+ executable = true;
+ target = "river/init";
+ text = ''
+ #!/usr/bin/env sh
+ # See the river(1), riverctl(1), and rivertile(1) man pages for complete
+ # documentation.
+
+ # Variables
+ TERMINAL="foot"
+ LOCKSCREEN="swaylock"
+
+ # Autostart
+ riverctl spawn "way-displays -c $HOME/.config/way-displays/cfg.yaml"
+ riverctl spawn "swww init"
+ riverctl spawn "swww img $HOME/Pictures/wallpapers/bliss-night.png --transition-type simple"
+ riverctl spawn "wl-paste --type text --watch cliphist store"
+ riverctl spawn "wl-paste --type image --watch cliphist store"
+ riverctl spawn "mako"
+ riverctl spawn "mullvad-gui"
+
+ # Theme
+ riverctl background-color 0x${config.colorScheme.colors.base00}
+ riverctl border-color-focused 0x${config.colorScheme.colors.base0A}
+ riverctl border-color-unfocused 0x${config.colorScheme.colors.base00}
+
+ # Launch Shortcuts
+ riverctl map normal Super Return spawn "$TERMINAL tmux.sh"
+ riverctl map normal Super+Shift Return spawn "$TERMINAL"
+ riverctl map normal Super Space spawn "wmenu.sh"
+
+ # Focus Controls
+ riverctl map normal Super H send-layout-cmd rivertile "main-count +1"
+ riverctl map normal Super J focus-view next
+ riverctl map normal Super K focus-view previous
+ riverctl map normal Super L send-layout-cmd rivertile "main-count -1"
+ riverctl map normal Alt Tab focus-view next
+ riverctl map normal Alt+Shift Tab focus-view previous
+ riverctl map normal Super Tab focus-output next
+ riverctl map normal Super Bracketright focus-output next
+ riverctl map normal Super Bracketleft focus-output previous
+
+ # Move Controls
+ riverctl map normal Super+Shift H zoom
+ riverctl map normal Super+Shift J swap next
+ riverctl map normal Super+Shift K swap previous
+ riverctl map normal Super+Shift L spawn $LOCKSCREEN
+ riverctl map normal Super+Shift Tab send-to-output next
+ riverctl map normal Super+Shift Bracketright send-to-output next
+ riverctl map normal Super+Shift Bracketleft send-to-output previous
+
+ # Layout Controls
+ riverctl map normal Super+Alt H send-layout-cmd rivertile "main-ratio -0.05"
+ riverctl map normal Super+Alt L send-layout-cmd rivertile "main-ratio +0.05"
+ riverctl map normal Super I send-layout-cmd rivertile "main-count +1"
+ riverctl map normal Super D send-layout-cmd rivertile "main-count -1"
+ riverctl map normal Super Up send-layout-cmd rivertile "main-location top"
+ riverctl map normal Super Right send-layout-cmd rivertile "main-location right"
+ riverctl map normal Super Down send-layout-cmd rivertile "main-location bottom"
+ riverctl map normal Super Left send-layout-cmd rivertile "main-location left"
+
+ # Floating Controls
+ riverctl map normal Super F toggle-float
+ riverctl map normal Super+Control H move left 100
+ riverctl map normal Super+Control J move down 100
+ riverctl map normal Super+Control K move up 100
+ riverctl map normal Super+Control L move right 100
+ riverctl map normal Super+Shift+Control H snap left
+ riverctl map normal Super+Shift+Control J snap down
+ riverctl map normal Super+Shift+Control K snap up
+ riverctl map normal Super+Shift+Control L snap right
+ riverctl map normal Super+Alt+Shift H resize horizontal -100
+ riverctl map normal Super+Alt+Shift J resize vertical 100
+ riverctl map normal Super+Alt+Shift K resize vertical -100
+ riverctl map normal Super+Alt+Shift L resize horizontal 100
+ riverctl map-pointer normal Super BTN_LEFT move-view
+ riverctl map-pointer normal Super BTN_RIGHT resize-view
+
+ # Close focused view
+ riverctl map normal Super W close
+ riverctl map normal Super Q close
+ # Exit River
+ riverctl map normal Super+Shift Q exit
+
+ for i in $(seq 1 9)
+ do
+ tags=$((1 << ($i - 1)))
+
+ # Super+[1-9] to focus tag [0-8]
+ riverctl map normal Super $i spawn "riverctl set-focused-tags $tags; notify-send 'Tag $tags focus toggle';"
+
+ # Super+Shift+[1-9] to tag focused view with tag [0-8]
+ riverctl map normal Super+Shift $i spawn "riverctl set-view-tags $tags; riverctl set-focused-tags $tags; notify-send 'Tag $tags swap toggle';"
+
+ # Super+Control+[1-9] to toggle focus of tag [0-8]
+ riverctl map normal Super+Control $i spawn "riverctl toggle-focused-tags $tags; notify-send 'Tag $tags focus toggle';"
+
+ # Super+Shift+Control+[1-9] to toggle tag [0-8] of focused view
+ riverctl map normal Super+Shift+Control $i spawn "riverctl toggle-view-tags $tags; notiy-send 'Tag $tags assignment toggle';"
+ done
+
+ # Super+0 to focus all tags
+ # Super+Shift+0 to tag focused view with all tags
+ all_tags=$(((1 << 32) - 1))
+ riverctl map normal Super 0 spawn "riverctl set-focused-tags $all_tags; notify-send 'All tags focus toggle';"
+ riverctl map normal Super+Shift 0 spawn "riverctl set-view-tags $all_tags; notify-send 'All tags assignment toggle';"
+
+ # Toggle fullscreen
+ riverctl map normal None F11 toggle-fullscreen
+ riverctl map normal Super Z toggle-fullscreen
+
+ # Declare a passthrough mode. This mode has only a single mapping to return to
+ # normal mode. This makes it useful for testing a nested wayland compositor
+ riverctl declare-mode passthrough
+
+ # Super+F11 to enter passthrough mode
+ riverctl map normal Super F11 enter-mode passthrough
+
+ # Super+F11 to return to normal mode
+ riverctl map passthrough Super F11 enter-mode normal
+
+ # Various media key mapping examples for both normal and locked mode which do
+ # not have a modifier
+ for mode in normal locked
+ do
+ riverctl map $mode None XF86Eject spawn 'eject -T'
+
+ # Control pulse audio volume with pamixer (https://github.com/cdemoulins/pamixer)
+ riverctl map $mode None XF86AudioRaiseVolume spawn 'pamixer -i 5'
+ riverctl map $mode None XF86AudioLowerVolume spawn 'pamixer -d 5'
+ riverctl map $mode None XF86AudioMute spawn 'pamixer --toggle-mute'
+
+ # Control MPRIS aware media players with playerctl (https://github.com/altdesktop/playerctl)
+ riverctl map $mode None XF86AudioMedia spawn 'playerctl play-pause'
+ riverctl map $mode None XF86AudioPlay spawn 'playerctl play-pause'
+ riverctl map $mode None XF86AudioPrev spawn 'playerctl previous'
+ riverctl map $mode None XF86AudioNext spawn 'playerctl next'
+
+ # Control screen backlight brightness with light (https://github.com/haikarainen/light)
+ riverctl map $mode None XF86MonBrightnessUp spawn 'light -A 5'
+ riverctl map $mode None XF86MonBrightnessDown spawn 'light -U 5'
+ done
+
+ # Set keyboard repeat rate
+ riverctl set-repeat 50 300
+
+ # Make all views with an app-id that starts with "float" and title "foo" start floating.
+ riverctl rule-add -app-id 'float*' -title 'foo' float
+
+ # Make all views with app-id "bar" and any title use client-side decorations
+ riverctl rule-add -app-id "bar" csd
+
+ # Global Configuration Settings
+ riverctl default-layout rivertile
+ rivertile -view-padding 10 -outer-padding 10 &
+ riverctl attach-mode bottom
+ riverctl hide-cursor timeout 10000
+ riverctl hide-cursor when-typing enabled
+ riverctl set-cursor-warp on-focus-change
+ riverctl focus-follows-cursor always
+ '';
+ };
+ };
+}
diff --git a/home-manager/dots/special.nix b/home-manager/dots/special.nix
new file mode 100644
index 0000000..aab0995
--- /dev/null
+++ b/home-manager/dots/special.nix
@@ -0,0 +1,26 @@
+{ pkgs, config, ... }:
+{
+ xdg.configFile = {
+ "current_theme.xml" = {
+ enable = true;
+ text = ''
+ ${config.colorScheme.colors.base00}
+ ${config.colorScheme.colors.base01}
+ ${config.colorScheme.colors.base02}
+ ${config.colorScheme.colors.base03}
+ ${config.colorScheme.colors.base04}
+ ${config.colorScheme.colors.base05}
+ ${config.colorScheme.colors.base06}
+ ${config.colorScheme.colors.base07}
+ ${config.colorScheme.colors.base08}
+ ${config.colorScheme.colors.base09}
+ ${config.colorScheme.colors.base0A}
+ ${config.colorScheme.colors.base0B}
+ ${config.colorScheme.colors.base0C}
+ ${config.colorScheme.colors.base0D}
+ ${config.colorScheme.colors.base0E}
+ ${config.colorScheme.colors.base0F}
+ '';
+ };
+ };
+}
diff --git a/home-manager/dots/swappy.nix b/home-manager/dots/swappy.nix
new file mode 100644
index 0000000..6b1cad9
--- /dev/null
+++ b/home-manager/dots/swappy.nix
@@ -0,0 +1,15 @@
+{ pkgs, config, ... }:
+{
+ xdg.configFile = {
+ "swappy/config" = {
+ enable = true;
+ text = ''
+ [Default]
+ save_dir=$HOME/Pictures/screenshots
+ line_size=5
+ text_size=20
+ text_font=Comic Mono
+ '';
+ };
+ };
+}
diff --git a/home-manager/dots/swaylock.nix b/home-manager/dots/swaylock.nix
new file mode 100644
index 0000000..9e7e632
--- /dev/null
+++ b/home-manager/dots/swaylock.nix
@@ -0,0 +1,30 @@
+{ pkgs, config, ... }:
+{
+ programs.swaylock = {
+ enable = true;
+ settings = {
+ color = "${config.colorScheme.colors.base00}";
+ inside-color = "${config.colorScheme.colors.base01}";
+ line-color = "${config.colorScheme.colors.base01}";
+ ring-color = "${config.colorScheme.colors.base09}";
+ text-color = "${config.colorScheme.colors.base05}";
+ layout-bg-color = "${config.colorScheme.colors.base01}";
+ layout-text-color = "${config.colorScheme.colors.base05}";
+ inside-clear-color = "${config.colorScheme.colors.base04}";
+ line-clear-color = "${config.colorScheme.colors.base01}";
+ ring-clear-color = "${config.colorScheme.colors.base04}";
+ text-clear-color = "${config.colorScheme.colors.base01}";
+ inside-ver-color = "${config.colorScheme.colors.base09}";
+ line-ver-color = "${config.colorScheme.colors.base01}";
+ ring-ver-color = "${config.colorScheme.colors.base09}";
+ text-ver-color = "${config.colorScheme.colors.base01}";
+ inside-wrong-color = "${config.colorScheme.colors.base0B}";
+ line-wrong-color = "${config.colorScheme.colors.base01}";
+ ring-wrong-color = "${config.colorScheme.colors.base0B}";
+ text-wrong-color = "${config.colorScheme.colors.base01}";
+ bs-hl-color = "${config.colorScheme.colors.base0B}";
+ key-hl-color = "${config.colorScheme.colors.base02}";
+ text-caps-lock-color = "${config.colorScheme.colors.base05}";
+ };
+ };
+}
diff --git a/home-manager/dots/way-displays.nix b/home-manager/dots/way-displays.nix
new file mode 100644
index 0000000..16ffb1b
--- /dev/null
+++ b/home-manager/dots/way-displays.nix
@@ -0,0 +1,89 @@
+{ pkgs, config, ... }:
+{
+ xdg.configFile = {
+ "way-displays/cfg.yml" = {
+ enable = true;
+ text = ''
+ # Default cfg.yaml for way-displays.
+ # Copy this to ~/.config/way-displays/cfg.yaml and edit it to your liking.
+ #
+ # See https://github.com/alex-courtis/way-displays/blob/master/doc/CONFIGURATION.md
+
+
+ # Arrange displays in a ROW (default, left to right) or a COLUMN (top to bottom)
+ ARRANGE: ROW
+
+ # Align ROWs at the TOP (default), MIDDLE or BOTTOM
+ # Align COLUMNs at the LEFT (default), MIDDLE or RIGHT
+ ALIGN: TOP
+
+
+ # The default ORDER is simply the order in which the displays are discovered.
+ # Define your own.
+ ORDER:
+ - 'DP-1'
+ - 'DP-2'
+
+
+ # Enable scaling, overrides AUTO_SCALE and SCALE
+ SCALING: TRUE
+
+ # The default is to scale each display by DPI.
+ # This may be disabled and scale 1 will be used, unless a SCALE has been specified.
+ AUTO_SCALE: TRUE
+
+
+ # Auto scale may be overridden for each display.
+ SCALE:
+ #- NAME_DESC: 'monitor description'
+ # SCALE: 1.75
+
+ # Override the preferred mode.
+ # WARNING: this may result in an unusable display. See https://github.com/alex-courtis/way-displays#known-issues-with-workarounds
+ # for a possible workaround.
+ MODE:
+ # Resolution and refresh
+ #- NAME_DESC: HDMI-A-1
+ # WIDTH: 1920
+ # HEIGHT: 1080
+ # HZ: 60
+
+ # Resolution with highest refresh
+ #- NAME_DESC: 'monitor description'
+ # WIDTH: 2560
+ # HEIGHT: 1440
+
+ # Highest available
+ - NAME_DESC: DP-1
+ MAX: TRUE
+ - NAME_DESC: DP-2
+ MAX: TRUE
+
+ # Rotate or translate the display.
+ # 90, 180, 270, FLIPPED, FLIPPED-90, FLIPPED-180, FLIPPED-270
+ TRANSFORM:
+ # - NAME_DESC: 'monitor description'
+ # TRANSFORM: 270
+
+ # VRR / adaptive sync is enabled by default. Disable it per display.
+ VRR_OFF:
+ # - DP-2
+ # - '!.*my monitor.*'
+
+
+ # Laptop displays usually start with eDP e.g. eDP-1. This may be overridden if
+ # your laptop is different.
+ #LAPTOP_DISPLAY_PREFIX: 'eDP'
+
+
+ # One of: ERROR, WARNING, INFO (default), DEBUG
+ LOG_THRESHOLD: INFO
+
+
+ # Disable the specified displays.
+ DISABLED:
+ #- "eDP-1"
+ '';
+ };
+ };
+}
diff --git a/home-manager/gui.nix b/home-manager/gui.nix
index 0c3d6f5..28797f5 100644
--- a/home-manager/gui.nix
+++ b/home-manager/gui.nix
@@ -10,18 +10,4 @@
"${config.xdg.dataHome}/flatpak/exports/share"
];
};
- gtk = {
- enable = true;
- theme = {
- name = "Dracula";
- package = pkgs.dracula-theme;
- };
- iconTheme = {
- name = "Dracula-Icon-Theme";
- package = pkgs.dracula-icon-theme;
- };
- font = {
- name = "Comic Mono";
- };
- };
}
diff --git a/home-manager/wayland.nix b/home-manager/wayland.nix
index 446ac2d..5e331e4 100644
--- a/home-manager/wayland.nix
+++ b/home-manager/wayland.nix
@@ -2,38 +2,17 @@
{ config, lib, pkgs, inputs, user, ... }:
{
imports = [
+ inputs.nix-colors.homeManagerModules.default
+ inputs.gtk-nix.homeManagerModule
./gui.nix
+ ./dots/foot.nix
+ ./dots/mako.nix
+ ./dots/river.nix
+ ./dots/special.nix
+ ./dots/swappy.nix
+ ./dots/swaylock.nix
+ ./dots/way-displays.nix
];
- xdg.configFile = {
- "foot" = {
- source = ./dots/foot;
- target = "foot";
- recursive = true;
- };
- "mako" = {
- source = ./dots/mako;
- target = "mako";
- recursive = true;
- };
- "river" = {
- source = ./dots/river;
- target = "river";
- recursive = true;
- };
- "swappy" = {
- source = ./dots/swappy;
- target = "swappy";
- recursive = true;
- };
- "swaylock" = {
- source = ./dots/swaylock;
- target = "swaylock";
- recursive = true;
- };
- "way-displays" = {
- source = ./dots/way-displays;
- target = "way-displays";
- recursive = true;
- };
- };
+ colorScheme = inputs.nix-colors.colorSchemes.nord;
+ gtkNix.enable = true;
}
diff --git a/hosts/default.nix b/hosts/default.nix
index f8f238d..a90abe3 100644
--- a/hosts/default.nix
+++ b/hosts/default.nix
@@ -12,7 +12,7 @@
home-manager.nixosModules.home-manager {
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
- home-manager.extraSpecialArgs = { inherit user; };
+ home-manager.extraSpecialArgs = { inherit user inputs; };
home-manager.users.${user.name} = {
imports = [
../home-manager/wayland.nix
diff --git a/todo.md b/todo.md
index a2a8dc3..e9d773b 100644
--- a/todo.md
+++ b/todo.md
@@ -9,10 +9,8 @@
- [Homeage Git Repo](https://github.com/jordanisaacs/homeage)
- [Handling Secrets in NixOS](https://lgug2z.com/articles/handling-secrets-in-nixos-an-overview/)
- [NixOS Secrets Management](https://onion.tube/watch?v=G5f6GC7SnhU)
-- [ ] Implement [Stylix](https://danth.github.io/stylix/)
- [ ] Implement [MicroVM.nix](https://github.com/astro/microvm.nix)
- [ ] Figure out urlview and yank conflict with tmux plugins
-- [ ] Implement [Nix-Colors](https://youtube.com/watch?v=jO2o0IN0LPE)
- [ ] Fix autoupdate with remote flake repo
- [ ] Wayland monitors swap positions after turning off and turning back on
- [ ] GPG unlock prompt not happening on Wayland anymore