From 6d21c917d5a00e15982362cc459b0a2b88e40aea Mon Sep 17 00:00:00 2001 From: Colin Date: Wed, 12 Jul 2023 10:03:58 +0000 Subject: [PATCH] sxmo: import the default sway config --- hosts/modules/gui/sway/default.nix | 17 ++- hosts/modules/gui/sxmo/default.nix | 11 ++ hosts/modules/gui/sxmo/sway-config | 216 +++++++++++++++++++++++++++++ 3 files changed, 235 insertions(+), 9 deletions(-) create mode 100644 hosts/modules/gui/sxmo/sway-config diff --git a/hosts/modules/gui/sway/default.nix b/hosts/modules/gui/sway/default.nix index bc178862..9b9924f0 100644 --- a/hosts/modules/gui/sway/default.nix +++ b/hosts/modules/gui/sway/default.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, sane-lib, ... }: +{ config, lib, pkgs, ... }: # docs: https://nixos.wiki/wiki/Sway with lib; @@ -134,18 +134,17 @@ in enable = true; wrapperFeatures.gtk = true; }; - sane.user.fs.".config/sway/config" = sane-lib.fs.wantedText - (import ./sway-config.nix { inherit config pkgs; }); + sane.user.fs.".config/sway/config".symlink.text = + import ./sway-config.nix { inherit config pkgs; }; - sane.user.fs.".config/waybar/config" = + sane.user.fs.".config/waybar/config".symlink.text = let waybar-config = import ./waybar-config.nix { inherit pkgs; }; - in sane-lib.fs.wantedSymlinkTo ( - (pkgs.formats.json {}).generate "waybar-config.json" waybar-config - ); + in + (pkgs.formats.json {}).generate "waybar-config.json" waybar-config; - sane.user.fs.".config/waybar/style.css" = sane-lib.fs.wantedText - (builtins.readFile ./waybar-style.css); + sane.user.fs.".config/waybar/style.css".symlink.text = + builtins.readFile ./waybar-style.css; }) ]; } diff --git a/hosts/modules/gui/sxmo/default.nix b/hosts/modules/gui/sxmo/default.nix index b8b2cbd3..1637bad7 100644 --- a/hosts/modules/gui/sxmo/default.nix +++ b/hosts/modules/gui/sxmo/default.nix @@ -203,6 +203,17 @@ in ${userConfig} ''; + sane.user.fs.".config/sway/config".symlink.text = builtins.readFile ./sway-config; + + # sane.user.fs.".config/waybar/config".symlink.text = + # let + # waybar-config = import ./waybar-config.nix { inherit pkgs; }; + # in + # (pkgs.formats.json {}).generate "waybar-config.json" waybar-config; + + # sane.user.fs.".config/waybar/style.css".symlink.text = + # builtins.readFile ./waybar-style.css; + ## greeter diff --git a/hosts/modules/gui/sxmo/sway-config b/hosts/modules/gui/sxmo/sway-config new file mode 100644 index 00000000..21d5a059 --- /dev/null +++ b/hosts/modules/gui/sxmo/sway-config @@ -0,0 +1,216 @@ +# Default config for sway +# configversion: 5eff902ecca36b4e75567322335cc81c +# +# 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 h +set $down j +set $up k +set $right l +# Your preferred terminal emulator +set $term sxmo_terminal.sh +# 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 bemenu-run + +font "Sxmo 10" + +exec_always sxmo_swayinitconf.sh + +exec_always dbus-update-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP + +mode "menu" { + bindsym --input-device=1:1:1c21800.lradc XF86AudioMute exec nothing # just a placeholder for "menu" mode +} + +### Key bindings +# +# Basics: +# + # Start a terminal + bindsym $mod+Return exec $term + + # Launch appmenu + bindsym $mod+p exec sxmo_appmenu.sh + + # Launch scripts menu + bindsym $mod+i exec sxmo_appmenu.sh scripts + + # Kill focused window + bindsym $mod+Shift+q kill + + # Start your launcher + bindsym $mod+d exec $menu + + # 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+Shift+c reload + + # Exit sway (logs you out of your Wayland session) + bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit' +# +# 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 + + # Move the focused workspace to output + bindsym $mod+Shift+Ctrl+$left move workspace output left + bindsym $mod+Shift+Ctrl+$down move workspace output down + bindsym $mod+Shift+Ctrl+$up move workspace output up + bindsym $mod+Shift+Ctrl+$right move workspace output right +# +# Workspaces: +# + # Switch to workspace + bindsym $mod+1 workspace number 1 + bindsym $mod+2 workspace number 2 + bindsym $mod+3 workspace number 3 + bindsym $mod+4 workspace number 4 + bindsym $mod+5 workspace number 5 + bindsym $mod+6 workspace number 6 + bindsym $mod+7 workspace number 7 + bindsym $mod+8 workspace number 8 + bindsym $mod+9 workspace number 9 + bindsym $mod+0 workspace number 10 + # Move focused container to workspace + bindsym $mod+Shift+1 move container to workspace number 1 + bindsym $mod+Shift+2 move container to workspace number 2 + bindsym $mod+Shift+3 move container to workspace number 3 + bindsym $mod+Shift+4 move container to workspace number 4 + bindsym $mod+Shift+5 move container to workspace number 5 + bindsym $mod+Shift+6 move container to workspace number 6 + bindsym $mod+Shift+7 move container to workspace number 7 + bindsym $mod+Shift+8 move container to workspace number 8 + bindsym $mod+Shift+9 move container to workspace number 9 + bindsym $mod+Shift+0 move container to workspace number 10 + # Note: workspaces can have any name you want, not just numbers. + # We just use 1-10 as the default. +# +# Layout stuff: +# + # You can "split" the current object of your focus with + # $mod+b or $mod+v, for horizontal and vertical splits + # respectively. + bindsym $mod+b splith + bindsym $mod+v splitv + + # 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 + + # 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+space focus mode_toggle + + # Move focus to the parent container + bindsym $mod+a focus parent +# +# 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 + + # 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 + + # Return to default mode + bindsym Return mode "default" + bindsym Escape mode "default" +} +bindsym $mod+r mode "resize" + +# +# Status Bar: +# +# Read `man 5 sway-bar` for more information about this section. +bar { + position top + + # When the status_command prints a new line to stdout, swaybar updates. + # The default just shows the current date and time. + status_command sxmo_status_watch.sh -o pango + + pango_markup enabled + + colors { + statusline #ffffff + background #323232 + inactive_workspace #32323200 #32323200 #5c5c5c + font "Sxmo" + } +} + +for_window [app_id="foot" title=".*sxmo/modem/.*/draft.txt.*"] resize set height 25 +for_window [title="megapixels"] inhibit_idle open + +default_border pixel 3 +titlebar_border_thickness 3 +hide_edge_borders smart + +include /etc/sway/config.d/* + +exec 'printf %s "$SWAYSOCK" > "$XDG_RUNTIME_DIR"/sxmo.swaysock' + +exec sxmo_hook_start.sh