diff --git a/flake.lock b/flake.lock index d806604..22178b3 100644 --- a/flake.lock +++ b/flake.lock @@ -716,7 +716,8 @@ "nixpkgs": "nixpkgs_4", "nixpkgs-master": "nixpkgs-master", "nixpkgs-unstable": "nixpkgs-unstable", - "openstreetmap": "openstreetmap" + "openstreetmap": "openstreetmap", + "themes": "themes" } }, "systems": { @@ -749,6 +750,21 @@ "type": "github" } }, + "themes": { + "locked": { + "lastModified": 1715166503, + "narHash": "sha256-eG3+PTzJntnMrO9J2fCtshU+XX18uI8iIjDKU9NkJXA=", + "owner": "RGBCube", + "repo": "ThemeNix", + "rev": "c188d0d729841f71f576dfb544e70c0340bf52a8", + "type": "github" + }, + "original": { + "owner": "RGBCube", + "repo": "ThemeNix", + "type": "github" + } + }, "utils": { "inputs": { "systems": "systems_2" diff --git a/flake.nix b/flake.nix index 7c491b4..1a7c088 100644 --- a/flake.nix +++ b/flake.nix @@ -15,6 +15,8 @@ home-manager.url = "github:nix-community/home-manager/release-24.05"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; + themes.url = "github:RGBCube/ThemeNix"; + flake-parts.url = "github:hercules-ci/flake-parts"; nixos-flake.url = "github:srid/nixos-flake"; @@ -61,6 +63,7 @@ imports = [ inputs.nixos-flake.flakeModule ./public-keys.nix + ./theme.nix ./lib ./modules ./hosts diff --git a/hosts/default.nix b/hosts/default.nix index 6e19e96..86c38b7 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -1,5 +1,4 @@ { - withSystem, self, inputs, ... @@ -7,6 +6,7 @@ flake = { nixosConfigurations = { stroopwafel = self.nixos-flake.lib.mkLinuxSystem { + nixpkgs.hostPlatform = "x86_64-linux"; imports = [ inputs.impermanence.nixosModules.impermanence diff --git a/modules/graphical/.config/waybar/style.css b/modules/graphical/.config/waybar/style.css index f429fa6..06a021a 100644 --- a/modules/graphical/.config/waybar/style.css +++ b/modules/graphical/.config/waybar/style.css @@ -1,20 +1,3 @@ -@define-color base00 #1a181a; -@define-color base01 #2d2a2e; -@define-color base02 #303030; -@define-color base03 #949494; -@define-color base04 #d3d1d4; -@define-color base05 #e3e1e4; -@define-color base06 #303030; -@define-color base07 #ff5f5f; -@define-color base08 #f85e84; -@define-color base09 #df5923; -@define-color base0A #e5c463; -@define-color base0B #9ecd6f; -@define-color base0C #ef9062; -@define-color base0D #7accd7; -@define-color base0E #ab9df2; -@define-color base0F #d70000; - * { min-height: 0; border: none; diff --git a/modules/graphical/alacritty.nix b/modules/graphical/alacritty.nix index b80acc5..acb4a0d 100644 --- a/modules/graphical/alacritty.nix +++ b/modules/graphical/alacritty.nix @@ -1,4 +1,4 @@ -{ +{ flake, ...}: with flake.self.theme.with0x; { env = { TERM = "xterm-256color"; }; @@ -164,8 +164,8 @@ # Default colors primary = { - background = "0x1a181a"; - foreground = "0xe3e1e4"; + background = base00; + foreground = base05; }; # Cursor colors @@ -184,8 +184,8 @@ # Allowed values are CellForeground/CellBackground, which reference the # affected cell, or hexadecimal colors like #ff00ff. matches = { - foreground = "0xe5c463"; - background = "0x1a181a"; + foreground = base0A; + background = base00; }; focused_match = { foreground = "CellBackground"; @@ -203,58 +203,58 @@ # Allowed values are CellForeground/CellBackground, which reference the # affected cell, or hexadecimal colors like #ff00ff. selection = { - text = "0x1a181a"; - background = "0xf85e84"; + text = base00; + background = base08; }; # Normal colors normal = { - black = "0x1a181a"; - red = "0xf85e84"; - green = "0x9ecd6f"; - yellow = "0xe5c463"; - blue = "0x7accd7"; - magenta = "0xab9df2"; - cyan = "0xef9062"; - white = "0xe3e1e4"; + black = base00; + red = base08; + green = base09; + yellow = base0A; + blue = base0D; + magenta = base0E; + cyan = base0C; + white = base05; }; # Bright colors bright = { - black = "0x949494"; - red = "0xf85e84"; - green = "0x9ecd6f"; - yellow = "0xe5c463"; - blue = "0x7accd7"; - magenta = "0xab9df2"; - cyan = "0xef9062"; - white = "0xff5f5f"; + black = base00; + red = base08; + green = base09; + yellow = base0A; + blue = base0D; + magenta = base0E; + cyan = base0C; + white = base07; }; indexed_colors = [ { index = 16; - color = "0xdf5923"; + color = base09; } { index = 17; - color = "0xd70000"; + color = base0F; } { index = 18; - color = "0x2d2a2e"; + color = base01; } { index = 19; - color = "0x303030"; + color = base02; } { index = 20; - color = "0xd3d1d4"; + color = base04; } { index = 21; - color = "0x303030"; + color = base02; } ]; }; diff --git a/modules/graphical/default.nix b/modules/graphical/default.nix index aca4256..244f602 100644 --- a/modules/graphical/default.nix +++ b/modules/graphical/default.nix @@ -1,4 +1,4 @@ -{ +args@{ lib, config, pkgs, @@ -111,7 +111,7 @@ in { home-manager.users."${psCfg.user.name}" = { home.file."xinitrc".source = ./.xinitrc; - xdg.configFile."alacritty/alacritty.toml".source = tomlFormat.generate "alacritty.toml" (import ./alacritty.nix); + xdg.configFile."alacritty/alacritty.toml".source = tomlFormat.generate "alacritty.toml" ((import ./alacritty.nix) args); xdg.configFile."xmodmap".source = ./.config/xmodmap; xdg.configFile."user-dirs.dirs".source = ./.config/user-dirs.dirs; xdg.configFile."user-dirs.locale".source = ./.config/user-dirs.locale; @@ -119,6 +119,12 @@ in { xdg.configFile."libinput-gestures.conf".source = ./.config/libinput-gestures.conf; xdg.configFile."wallpaper.jpg".source = ./assets/wallpaper.jpg; + dconf.settings = { + "org/gnome/desktop/interface" = { + color-scheme = "prefer-dark"; + }; + }; + gtk = { enable = true; font.name = "Lato"; @@ -136,7 +142,7 @@ in { gtk-xft-hinting = "1"; gtk-xft-hintstyle = "hintfull"; gtk-xft-rgba = "rgb"; - gtk-application-prefer-dark-theme = "true"; + gtk-application-prefer-dark-theme = "1"; }; }; diff --git a/modules/graphical/mako.nix b/modules/graphical/mako.nix index e569fed..1bf5916 100644 --- a/modules/graphical/mako.nix +++ b/modules/graphical/mako.nix @@ -2,6 +2,7 @@ lib, config, pkgs, + flake, ... }: with lib; let @@ -10,20 +11,20 @@ in { home-manager.users."${psCfg.user.name}" = { services.mako = { enable = true; - extraConfig = '' + extraConfig = with flake.self.theme.withHashtag; '' padding=10 margin=5,5,0 default-timeout=5000 - background-color=#1a181a - text-color=#e3e1e4 - border-color=#ff5f5f + background-color=${base00} + text-color=${base05} + border-color=${base07} font=Hack 14 [urgency=high] - background-color=#ff5f5f - text-color=#1a181a - border-color=#1a181a + background-color=${base07} + text-color=${base00} + border-color=${base00} layer=overlay font=Hack 14 ''; diff --git a/modules/graphical/sway/config/config.d/colorscheme.conf b/modules/graphical/sway/config/config.d/colorscheme.conf deleted file mode 100644 index 3886c3d..0000000 --- a/modules/graphical/sway/config/config.d/colorscheme.conf +++ /dev/null @@ -1,19 +0,0 @@ -## Base16 Burn -# Author: Benjamin Bädorf - -set $base00 #1a181a -set $base01 #2d2a2e -set $base02 #303030 -set $base03 #949494 -set $base04 #d3d1d4 -set $base05 #e3e1e4 -set $base06 #303030 -set $base07 #ff5f5f -set $base08 #f85e84 -set $base09 #df5923 -set $base0A #e5c463 -set $base0B #9ecd6f -set $base0C #ef9062 -set $base0D #7accd7 -set $base0E #ab9df2 -set $base0F #d70000 diff --git a/modules/graphical/sway/config/config.d/mode_system.conf.nix b/modules/graphical/sway/config/config.d/mode_system.conf.nix index 7539d3f..68b6ebe 100644 --- a/modules/graphical/sway/config/config.d/mode_system.conf.nix +++ b/modules/graphical/sway/config/config.d/mode_system.conf.nix @@ -1,14 +1,12 @@ { pkgs, - psCfg, + config, ... -}: -with pkgs; - '' +}: with pkgs; '' # Set shut down, restart and locking features '' + ( - if psCfg.core.hibernation.enable + if config.pub-solar.core.hibernation.enable then '' set $mode_system (e)xit, (l)ock, (h)ibernate, (r)eboot, (Shift+s)hutdown '' @@ -24,7 +22,7 @@ with pkgs; bindsym l exec ${swaylock-bg}/bin/swaylock-bg, mode "default" '' + ( - if psCfg.core.hibernation.enable + if config.pub-solar.core.hibernation.enable then '' bindsym h exec ${systemd}/bin/systemctl hibernate, mode "default" '' diff --git a/modules/graphical/sway/config/config.d/theme.conf b/modules/graphical/sway/config/config.d/theme.conf.nix similarity index 62% rename from modules/graphical/sway/config/config.d/theme.conf rename to modules/graphical/sway/config/config.d/theme.conf.nix index eb4427a..a983e8c 100644 --- a/modules/graphical/sway/config/config.d/theme.conf +++ b/modules/graphical/sway/config/config.d/theme.conf.nix @@ -1,3 +1,21 @@ +{ flake, ... }: with flake.self.theme.withHashtag; '' +set $base00 ${base00} +set $base01 ${base01} +set $base02 ${base02} +set $base03 ${base03} +set $base04 ${base04} +set $base05 ${base05} +set $base06 ${base06} +set $base07 ${base07} +set $base08 ${base08} +set $base09 ${base09} +set $base0A ${base0A} +set $base0B ${base0B} +set $base0C ${base0C} +set $base0D ${base0D} +set $base0E ${base0E} +set $base0F ${base0F} + # Border BG Text Ind Child Border client.focused $base00 $base01 $base07 $base0D $base07 client.focused_inactive $base00 $base01 $base07 $base03 $base00 @@ -14,3 +32,4 @@ exec_always import-gtk-settings \ # Workaround to fix cursor scaling, see https://github.com/swaywm/sway/issues/4112 seat seat0 xcursor_theme Adwaita +'' diff --git a/modules/graphical/sway/config/config.nix b/modules/graphical/sway/config/config.nix index b811c30..18f9580 100644 --- a/modules/graphical/sway/config/config.nix +++ b/modules/graphical/sway/config/config.nix @@ -1,217 +1,225 @@ -{ +args@{ config, pkgs, ... -}: '' - # Default config for sway - # - # Copy this to ~/.config/sway/config and edit it to your liking. - # - # Read `man 5 sway` for a complete reference. +}: let + applications = builtins.readFile ./config.d/applications.conf; + custom-keybindings = builtins.readFile ./config.d/custom-keybindings.conf; + gaps = builtins.readFile ./config.d/gaps.conf; + mode-system = import ./config.d/mode_system.conf.nix args; + systemd = builtins.readFile ./config.d/systemd.conf; +in '' +# Default config for sway +# +# Copy this to ~/.config/sway/config and edit it to your liking. +# +# Read `man 5 sway` for a complete reference. - ### Variables - # - # Logo key. Use Mod1 for Alt. - set $mod Mod4 - # Home row direction keys, like vim - set $left j - set $down k - set $up i - set $right l - # Your preferred terminal emulator - set $term ${pkgs.alacritty}/bin/alacritty - # Your preferred application launcher - # Note: pass the final command to swaymsg so that the resulting window can be opened - # on the original workspace that the command was run on. - #set $menu dmenu_path | dmenu | xargs swaymsg exec bemenu-run --no-overlap +### Variables +# +# Logo key. Use Mod1 for Alt. +set $mod Mod4 +# Home row direction keys, like vim +set $left j +set $down k +set $up i +set $right l +# Your preferred terminal emulator +set $term ${pkgs.alacritty}/bin/alacritty +# Your preferred application launcher +# Note: pass the final command to swaymsg so that the resulting window can be opened +# on the original workspace that the command was run on. +#set $menu dmenu_path | dmenu | xargs swaymsg exec bemenu-run --no-overlap - default_border pixel 1 +default_border pixel 1 - ### Output configuration - # - # Default wallpaper (more resolutions are available in @datadir@/backgrounds/sway/) - output * bg ~/.config/wallpaper.jpg fill +### Key bindings +# +# Basics: +# + # Start a terminal + bindsym $mod+Return exec $term - ### Key bindings - # - # Basics: - # - # Start a terminal - bindsym $mod+Return exec $term + # Start a terminal + bindsym $mod+Shift+Return exec sh -c '$term --working-directory $(wcwd)' - # Start a terminal - bindsym $mod+Shift+Return exec sh -c '$term --working-directory $(wcwd)' + # Kill focused window + bindsym $mod+Shift+q kill - # Kill focused window - bindsym $mod+Shift+q kill + # Drag floating windows by holding down $mod and left mouse button. + # Resize them with right mouse button + $mod. + # Despite the name, also works for non-floating windows. + # Change normal to inverse to use left mouse button for resizing and right + # mouse button for dragging. + floating_modifier $mod normal - # Drag floating windows by holding down $mod and left mouse button. - # Resize them with right mouse button + $mod. - # Despite the name, also works for non-floating windows. - # Change normal to inverse to use left mouse button for resizing and right - # mouse button for dragging. - floating_modifier $mod normal + # Reload the configuration file + bindsym $mod+F5 reload - # Reload the configuration file - bindsym $mod+F5 reload +# +# Moving around: +# + # Move your focus around + bindsym $mod+$left focus left + bindsym $mod+$down focus down + bindsym $mod+$up focus up + bindsym $mod+$right focus right + # Or use $mod+[up|down|left|right] + bindsym $mod+Left focus left + bindsym $mod+Down focus down + bindsym $mod+Up focus up + bindsym $mod+Right focus right - # - # Moving around: - # - # Move your focus around - bindsym $mod+$left focus left - bindsym $mod+$down focus down - bindsym $mod+$up focus up - bindsym $mod+$right focus right - # Or use $mod+[up|down|left|right] - bindsym $mod+Left focus left - bindsym $mod+Down focus down - bindsym $mod+Up focus up - bindsym $mod+Right focus right - - # Move the focused window with the same, but add Shift - bindsym $mod+Shift+$left move left - bindsym $mod+Shift+$down move down - bindsym $mod+Shift+$up move up - bindsym $mod+Shift+$right move right - # Ditto, with arrow keys - bindsym $mod+Shift+Left move left - bindsym $mod+Shift+Down move down - bindsym $mod+Shift+Up move up - bindsym $mod+Shift+Right move right - # - # Workspaces: - # + # Move the focused window with the same, but add Shift + bindsym $mod+Shift+$left move left + bindsym $mod+Shift+$down move down + bindsym $mod+Shift+$up move up + bindsym $mod+Shift+$right move right + # Ditto, with arrow keys + bindsym $mod+Shift+Left move left + bindsym $mod+Shift+Down move down + bindsym $mod+Shift+Up move up + bindsym $mod+Shift+Right move right +# +# Workspaces: +# - # Workspace names - # to display names or symbols instead of plain workspace numbers you can use - # something like: set $ws1 1:mail - # set $ws2 2: - set $ws1 1 - set $ws2 2 - set $ws3 3 - set $ws4 4 - set $ws5 5 - set $ws6 6 - set $ws7 7 - set $ws8 8 - set $ws9 9 + # Workspace names + # to display names or symbols instead of plain workspace numbers you can use + # something like: set $ws1 1:mail + # set $ws2 2: + set $ws1 1 + set $ws2 2 + set $ws3 3 + set $ws4 4 + set $ws5 5 + set $ws6 6 + set $ws7 7 + set $ws8 8 + set $ws9 9 - # Switch to workspace - bindsym $mod+1 workspace 1 - bindsym $mod+2 workspace 2 - bindsym $mod+3 workspace 3 - bindsym $mod+4 workspace 4 - bindsym $mod+5 workspace 5 - bindsym $mod+6 workspace 6 - bindsym $mod+7 workspace 7 - bindsym $mod+8 workspace 8 - bindsym $mod+9 workspace 9 - # Move focused container to workspace - bindsym $mod+Ctrl+1 move container to workspace $ws1 - bindsym $mod+Ctrl+2 move container to workspace $ws2 - bindsym $mod+Ctrl+3 move container to workspace $ws3 - bindsym $mod+Ctrl+4 move container to workspace $ws4 - bindsym $mod+Ctrl+5 move container to workspace $ws5 - bindsym $mod+Ctrl+6 move container to workspace $ws6 - bindsym $mod+Ctrl+7 move container to workspace $ws7 - bindsym $mod+Ctrl+8 move container to workspace $ws8 - bindsym $mod+Ctrl+9 move container to workspace $ws9 - # Move focused container to workspace and move focus with it - bindsym $mod+Shift+1 move container to workspace 1; workspace $ws1 - bindsym $mod+Shift+2 move container to workspace 2; workspace $ws2 - bindsym $mod+Shift+3 move container to workspace 3; workspace $ws3 - bindsym $mod+Shift+4 move container to workspace 4; workspace $ws4 - bindsym $mod+Shift+5 move container to workspace 5; workspace $ws5 - bindsym $mod+Shift+6 move container to workspace 6; workspace $ws6 - bindsym $mod+Shift+7 move container to workspace 7; workspace $ws7 - bindsym $mod+Shift+8 move container to workspace 8; workspace $ws8 - bindsym $mod+Shift+9 move container to workspace 9; workspace $ws9 - # Note: workspaces can have any name you want, not just numbers. - # We just use 1-10 as the default. + # Switch to workspace + bindsym $mod+1 workspace 1 + bindsym $mod+2 workspace 2 + bindsym $mod+3 workspace 3 + bindsym $mod+4 workspace 4 + bindsym $mod+5 workspace 5 + bindsym $mod+6 workspace 6 + bindsym $mod+7 workspace 7 + bindsym $mod+8 workspace 8 + bindsym $mod+9 workspace 9 + # Move focused container to workspace + bindsym $mod+Ctrl+1 move container to workspace $ws1 + bindsym $mod+Ctrl+2 move container to workspace $ws2 + bindsym $mod+Ctrl+3 move container to workspace $ws3 + bindsym $mod+Ctrl+4 move container to workspace $ws4 + bindsym $mod+Ctrl+5 move container to workspace $ws5 + bindsym $mod+Ctrl+6 move container to workspace $ws6 + bindsym $mod+Ctrl+7 move container to workspace $ws7 + bindsym $mod+Ctrl+8 move container to workspace $ws8 + bindsym $mod+Ctrl+9 move container to workspace $ws9 + # Move focused container to workspace and move focus with it + bindsym $mod+Shift+1 move container to workspace 1; workspace $ws1 + bindsym $mod+Shift+2 move container to workspace 2; workspace $ws2 + bindsym $mod+Shift+3 move container to workspace 3; workspace $ws3 + bindsym $mod+Shift+4 move container to workspace 4; workspace $ws4 + bindsym $mod+Shift+5 move container to workspace 5; workspace $ws5 + bindsym $mod+Shift+6 move container to workspace 6; workspace $ws6 + bindsym $mod+Shift+7 move container to workspace 7; workspace $ws7 + bindsym $mod+Shift+8 move container to workspace 8; workspace $ws8 + bindsym $mod+Shift+9 move container to workspace 9; workspace $ws9 + # Note: workspaces can have any name you want, not just numbers. + # We just use 1-10 as the default. - #navigate workspaces next / previous - bindsym $mod+Ctrl+Right workspace next - bindsym $mod+Ctrl+Left workspace prev + #navigate workspaces next / previous + bindsym $mod+Ctrl+Right workspace next + bindsym $mod+Ctrl+Left workspace prev - # workspace back and forth (with/without active container) - workspace_auto_back_and_forth yes - bindsym $mod+b workspace back_and_forth - bindsym $mod+Shift+b move container to workspace back_and_forth; workspace back_and_forth + # workspace back and forth (with/without active container) + workspace_auto_back_and_forth yes + bindsym $mod+b workspace back_and_forth + bindsym $mod+Shift+b move container to workspace back_and_forth; workspace back_and_forth - # - # Layout stuff: - # - # Configure border style - default_border pixel 1 - default_floating_border normal +# +# Layout stuff: +# + # Configure border style + default_border pixel 1 + default_floating_border normal - # Hide borders - hide_edge_borders none + # Hide borders + hide_edge_borders none - # Font for window titles. Will also be used by the bar unless a different font - # is used in the bar {} block below. - font xft:Hack 16 + # Font for window titles. Will also be used by the bar unless a different font + # is used in the bar {} block below. + font xft:Hack 16 - # You can "split" the current object of your focus with - # $mod+b or $mod+v, for horizontal and vertical splits - # respectively. - bindsym $mod+h splith; exec notify-send 'tile horizontally' - bindsym $mod+v splitv; exec notify-send 'tile vertically' + # You can "split" the current object of your focus with + # $mod+b or $mod+v, for horizontal and vertical splits + # respectively. + bindsym $mod+h splith; exec notify-send 'tile horizontally' + bindsym $mod+v splitv; exec notify-send 'tile vertically' - # Switch the current container between different layout styles - bindsym $mod+s layout stacking - bindsym $mod+w layout tabbed - bindsym $mod+e layout toggle split + # Switch the current container between different layout styles + bindsym $mod+s layout stacking + bindsym $mod+w layout tabbed + bindsym $mod+e layout toggle split - # Make the current focus fullscreen - bindsym $mod+f fullscreen + # Make the current focus fullscreen + bindsym $mod+f fullscreen - # Toggle the current focus between tiling and floating mode - bindsym $mod+Shift+space floating toggle + # Toggle the current focus between tiling and floating mode + bindsym $mod+Shift+space floating toggle - # Swap focus between the tiling area and the floating area - bindsym $mod+t focus mode_toggle + # Swap focus between the tiling area and the floating area + bindsym $mod+t focus mode_toggle - # Move focus to the parent container - bindsym $mod+a focus parent - bindsym $mod+d focus child - # - # Scratchpad: - # - # Sway has a "scratchpad", which is a bag of holding for windows. - # You can send windows there and get them back later. + # Move focus to the parent container + bindsym $mod+a focus parent + bindsym $mod+d focus child +# +# Scratchpad: +# + # Sway has a "scratchpad", which is a bag of holding for windows. + # You can send windows there and get them back later. - # Move the currently focused window to the scratchpad - bindsym $mod+Shift+minus move scratchpad + # Move the currently focused window to the scratchpad + bindsym $mod+Shift+minus move scratchpad - # Show the next scratchpad window or hide the focused scratchpad window. - # If there are multiple scratchpad windows, this command cycles through them. - bindsym $mod+minus scratchpad show - # - # Resizing containers: - # - mode "resize" { - # left will shrink the containers width - # right will grow the containers width - # up will shrink the containers height - # down will grow the containers height - bindsym $left resize shrink width 10px - bindsym $down resize grow height 10px - bindsym $up resize shrink height 10px - bindsym $right resize grow width 10px + # Show the next scratchpad window or hide the focused scratchpad window. + # If there are multiple scratchpad windows, this command cycles through them. + bindsym $mod+minus scratchpad show +# +# Resizing containers: +# +mode "resize" { + # left will shrink the containers width + # right will grow the containers width + # up will shrink the containers height + # down will grow the containers height + bindsym $left resize shrink width 10px + bindsym $down resize grow height 10px + bindsym $up resize shrink height 10px + bindsym $right resize grow width 10px - # Ditto, with arrow keys - bindsym Left resize shrink width 10px - bindsym Down resize grow height 10px - bindsym Up resize shrink height 10px - bindsym Right resize grow width 10px + # Ditto, with arrow keys + bindsym Left resize shrink width 10px + bindsym Down resize grow height 10px + bindsym Up resize shrink height 10px + bindsym Right resize grow width 10px - # Return to default mode - bindsym Return mode "default" - bindsym Escape mode "default" - } - bindsym $mod+r mode "resize" + # Return to default mode + bindsym Return mode "default" + bindsym Escape mode "default" +} +bindsym $mod+r mode "resize" - include ~/.config/sway/config.d/*'' +${applications} +${gaps} +${custom-keybindings} +${mode-system} +${systemd} + +include ~/.config/sway/config.d/* +'' diff --git a/modules/graphical/sway/default.nix b/modules/graphical/sway/default.nix index 216edac..bba119f 100644 --- a/modules/graphical/sway/default.nix +++ b/modules/graphical/sway/default.nix @@ -1,4 +1,4 @@ -{ +args@{ lib, config, pkgs, @@ -77,14 +77,7 @@ in { systemd.user.services.xsettingsd = import ./xsettingsd.service.nix {inherit pkgs psCfg;}; systemd.user.targets.sway-session = import ./sway-session.target.nix {inherit pkgs psCfg;}; - xdg.configFile."sway/config".text = import ./config/config.nix {inherit config pkgs;}; - xdg.configFile."sway/config.d/colorscheme.conf".source = ./config/config.d/colorscheme.conf; - xdg.configFile."sway/config.d/theme.conf".source = ./config/config.d/theme.conf; - xdg.configFile."sway/config.d/gaps.conf".source = ./config/config.d/gaps.conf; - xdg.configFile."sway/config.d/custom-keybindings.conf".source = ./config/config.d/custom-keybindings.conf; - xdg.configFile."sway/config.d/mode_system.conf".text = import ./config/config.d/mode_system.conf.nix {inherit pkgs psCfg;}; - xdg.configFile."sway/config.d/applications.conf".source = ./config/config.d/applications.conf; - xdg.configFile."sway/config.d/systemd.conf".source = ./config/config.d/systemd.conf; + xdg.configFile."sway/config".text = import ./config/config.nix args; services.swayidle = with pkgs; { enable = true; diff --git a/modules/graphical/waybar.nix b/modules/graphical/waybar.nix index 99bb0ae..b09670a 100644 --- a/modules/graphical/waybar.nix +++ b/modules/graphical/waybar.nix @@ -2,13 +2,14 @@ lib, config, pkgs, + flake, ... }: with lib; let psCfg = config.pub-solar; in { home-manager.users."${psCfg.user.name}" = { - programs.waybar = { + programs.waybar = with flake.self.theme.withHashtag; { enable = true; settings.main = { layer = "top"; @@ -88,7 +89,25 @@ in { }; }; }; - style = builtins.readFile ./.config/waybar/style.css; + style = '' +@define-color base00 ${base00}; +@define-color base01 ${base01}; +@define-color base02 ${base02}; +@define-color base03 ${base03}; +@define-color base04 ${base04}; +@define-color base05 ${base05}; +@define-color base06 ${base06}; +@define-color base07 ${base07}; +@define-color base08 ${base08}; +@define-color base09 ${base09}; +@define-color base0A ${base0A}; +@define-color base0B ${base0B}; +@define-color base0C ${base0C}; +@define-color base0D ${base0D}; +@define-color base0E ${base0E}; +@define-color base0F ${base0F}; + + ''+ builtins.readFile ./.config/waybar/style.css; systemd.enable = true; systemd.target = "sway-session.target"; }; diff --git a/modules/terminal-life/default.nix b/modules/terminal-life/default.nix index fb4410d..1d4d905 100644 --- a/modules/terminal-life/default.nix +++ b/modules/terminal-life/default.nix @@ -2,6 +2,7 @@ lib, config, pkgs, + flake, ... }: with lib; let @@ -23,8 +24,8 @@ in { users.users."${psCfg.user.name}".packages = with pkgs; [ + tealdeer asciinema - bat blesh eza fd @@ -73,7 +74,7 @@ in { # starship.toml has sane defaults that can be changed there programs.starship = { enable = true; - settings = import ./starship.toml.nix; + settings = import ./starship.toml.nix flake.self.theme.withHashtag; }; programs.bash = import ./bash { diff --git a/modules/terminal-life/starship.toml.nix b/modules/terminal-life/starship.toml.nix index e05a1f4..b59438d 100644 --- a/modules/terminal-life/starship.toml.nix +++ b/modules/terminal-life/starship.toml.nix @@ -1,20 +1,20 @@ -{ - format = "$username$hostname$directory($git_branch$git_commit$git_state$git_status)($c$deno$golang$haskell$nodejs$php$python$ruby$rust$terraform[](fg:#F85E84 bg:#000000))($docker_context[](fg:#06969A))($container)$fill(\${custom.triton})$nix_shell$status[ |](fg:#F85E84)$line_break$character"; +theme: with theme; { + format = "$username$hostname$directory($git_branch$git_commit$git_state$git_status)($c$deno$golang$haskell$nodejs$php$python$ruby$rust$terraform[](fg:#F85E84 bg:${base00}))($docker_context[](fg:#06969A))($container)$fill(\${custom.triton})$nix_shell$status[ |](fg:#F85E84)$line_break$character"; # Disable the blank line at the start of the prompt add_newline = false; # You can also replace your username with a neat symbol like  to save some space username = { - style_user = "bg:#000000 fg:#F85E84"; - style_root = "bg:#F85E84 fg:#000000"; + style_user = "bg:${base00} fg:#F85E84"; + style_root = "bg:#F85E84 fg:${base00}"; format = ''[$user ]($style)''; }; hostname = { ssh_symbol = ""; trim_at = ""; - style = "bg:#000000 fg:#F85E84"; + style = "bg:${base00} fg:#F85E84"; }; character = { diff --git a/theme.nix b/theme.nix new file mode 100644 index 0000000..ed5359f --- /dev/null +++ b/theme.nix @@ -0,0 +1,27 @@ +{ + inputs, + ... +}: { + flake = { + theme = inputs.themes.custom { + "name" = "burn"; + "author" = "b12f"; + "base00" = "#1a181a"; + "base01" = "#2d2a2e"; + "base02" = "#303030"; + "base03" = "#949494"; + "base04" = "#d3d1d4"; + "base05" = "#e3e1e4"; + "base06" = "#303030"; + "base07" = "#ff5f5f"; + "base08" = "#f85e84"; + "base09" = "#df5923"; + "base0A" = "#e5c463"; + "base0B" = "#9ecd6f"; + "base0C" = "#ef9062"; + "base0D" = "#7accd7"; + "base0E" = "#ab9df2"; + "base0F" = "#d70000"; + }; + }; +}