From 9097974443e6ef33879fb1b497d4d6a3e0b2612c Mon Sep 17 00:00:00 2001 From: Alex Auvolat Date: Tue, 26 Dec 2023 21:48:41 +0100 Subject: add sway config --- nixos/common.nix | 1 + nixos/wayfire.nix | 4 + nixpkgs/kusanagi.nix | 1 + nixpkgs/wayfire.nix | 4 + sway/config | 214 ++++++++++++++++++++++++++++++++++++ waybar/config | 8 +- waybar/style.css | 301 +++++++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 529 insertions(+), 4 deletions(-) create mode 100644 sway/config create mode 100644 waybar/style.css diff --git a/nixos/common.nix b/nixos/common.nix index bd29c11..f71e3c7 100644 --- a/nixos/common.nix +++ b/nixos/common.nix @@ -170,6 +170,7 @@ profont symbola font-awesome + inconsolata ipafont kochi-substitute diff --git a/nixos/wayfire.nix b/nixos/wayfire.nix index 004ad43..d0e9803 100644 --- a/nixos/wayfire.nix +++ b/nixos/wayfire.nix @@ -15,5 +15,9 @@ waybar alacritty swaylock + + swayfx + swaybg + bemenu ]; } diff --git a/nixpkgs/kusanagi.nix b/nixpkgs/kusanagi.nix index 840e41b..b3a20bd 100644 --- a/nixpkgs/kusanagi.nix +++ b/nixpkgs/kusanagi.nix @@ -21,6 +21,7 @@ in { mklink /Z/lx/app/openssh ~/.ssh mklink /Z/lx/app/pass ~/.password-store + mklink /Z/lx/app/thunderbird ~/.thunderbird mklink /Z/lx/app/cargo ~/.cargo mklink /Z/lx/app/arduino/Arduino ~/Arduino diff --git a/nixpkgs/wayfire.nix b/nixpkgs/wayfire.nix index 191846b..3824327 100644 --- a/nixpkgs/wayfire.nix +++ b/nixpkgs/wayfire.nix @@ -3,6 +3,10 @@ home.file = { ".config/wayfire.ini".source = ../wayfire/wayfire.ini; + ".config/waybar/config".source = ../waybar/config; + ".config/waybar/style.css".source = ../waybar/style.css; + + ".config/sway/config".source = ../sway/config; }; } diff --git a/sway/config b/sway/config new file mode 100644 index 0000000..29c4b02 --- /dev/null +++ b/sway/config @@ -0,0 +1,214 @@ +xwayland enable + +#output '*' bg /home/lx/stuff/wallpaper/34812.jpg FILL pos 0 0 +output 'HDMI-A-2' pos 1920 0 + +seat '*' hide_cursor 5000 + +#input "*" xkb_file "/home/lx/.xkb/symbols/custom-fr" +input "*" xkb_layout 'fr-custom-lx' + + +client.focused #000000 #000000 #dddddd #000000 #000000 +client.focused_inactive #000000 #000000 #AAAAAA #000000 #000000 +client.unfocused #000000 #000000 #888888 #000000 #000000 +client.urgent #000000 #900000 #ffffff #900000 #900000 +client.background #000000 + +gaps outer 0 +gaps inner 8 + +set $mod Mod4 + +# font for window titles. ISO 10646 = Unicode +#font -misc-fixed-medium-r-normal--12-120-75-75-C-70-iso10646-1 +font pango:Inconsolata 15px + +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +# start a terminal +#bindsym $mod+Return exec i3-sensible-terminal +bindsym $mod+Return exec alacritty +#bindsym $mod+Return exec xfce4-terminal + +# bindsym $mod+Shift+X exec xscreensaver-command -lock +#bindsym $mod+Shift+X exec i3lock -d -c 111111 -I 5 +#bindsym $mod+Shift+X exec /home/lx/.i3/i3lock-dpms +bindsym $mod+Shift+X exec swaylock -c 111111 + +# music control +bindsym $mod+Shift+P exec mpc toggle +bindsym $mod+Shift+N exec mpc next +bindsym $mod+n exec makoctl dismiss -a + +bindsym $mod+Shift+S exec /home/lx/usr/bin/ss +bindsym $mod+Shift+M exec /home/lx/usr/bin/ms + +# kill focused window +bindsym $mod+Shift+Q kill + +# start dmenu (a program launcher) +bindsym $mod+p exec bemenu-run --fn 'Inconsolata' + +# change focus +bindsym $mod+h focus left +bindsym $mod+j focus down +bindsym $mod+k focus up +bindsym $mod+l focus right + +# alternatively, you can use the cursor keys: +bindsym $mod+Left focus left +bindsym $mod+Down focus down +bindsym $mod+Up focus up +bindsym $mod+Right focus right + +# move focused window +bindsym $mod+Shift+H move left +bindsym $mod+Shift+J move down +bindsym $mod+Shift+K move up +bindsym $mod+Shift+L move right + +# alternatively, you can use the cursor 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 + +# split in horizontal orientation +bindsym $mod+b split h + +# split in vertical orientation +bindsym $mod+v split v + +# enter fullscreen mode for the focused container +bindsym $mod+f fullscreen + +# change container layout (stacked, tabbed, default) +bindsym $mod+s layout stacking +bindsym $mod+z layout tabbed +bindsym $mod+e layout default + +# toggle tiling / floating +bindsym $mod+Shift+space floating toggle + +# change focus between tiling / floating windows +bindsym $mod+space focus mode_toggle + +# focus the parent container +bindsym $mod+q focus parent + +# focus the child container +#bindcode $mod+d focus child + +# switch to workspace +bindsym $mod+braceleft workspace 1 +bindsym $mod+eacute workspace 2 +bindsym $mod+quotedbl workspace 3 +bindsym $mod+apostrophe workspace 4 +bindsym $mod+parenleft workspace 5 +bindsym $mod+minus workspace 6 +bindsym $mod+dead_grave workspace 7 +bindsym $mod+underscore workspace 8 +bindsym $mod+ccedilla workspace 9 +bindsym $mod+braceright workspace 10 + +workspace_auto_back_and_forth yes + +# move focused container to workspace +bindsym $mod+1 move container to workspace 1 +bindsym $mod+2 move container to workspace 2 +bindsym $mod+3 move container to workspace 3 +bindsym $mod+4 move container to workspace 4 +bindsym $mod+5 move container to workspace 5 +bindsym $mod+6 move container to workspace 6 +bindsym $mod+7 move container to workspace 7 +bindsym $mod+8 move container to workspace 8 +bindsym $mod+9 move container to workspace 9 +bindsym $mod+0 move container to workspace 10 + +workspace 1 output HDMI-A-2 eDP-1 +workspace 2 output HDMI-A-2 eDP-1 +workspace 3 output HDMI-A-2 eDP-1 +workspace 4 output HDMI-A-2 eDP-1 +workspace 5 output HDMI-A-2 eDP-1 +workspace 6 output HDMI-A-2 eDP-1 +workspace 7 output HDMI-A-2 eDP-1 +workspace 8 output HDMI-A-2 eDP-1 +workspace 9 output HDMI-A-2 eDP-1 +workspace 10 output eDP-1 + +# reload the configuration file +bindsym $mod+Shift+C reload +# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) +bindsym $mod+Shift+R restart +# exit i3 (logs you out of your X session) +bindsym $mod+Shift+E exit + +default_border pixel 2 +bindsym $mod+t border normal +bindsym $mod+y border pixel 2 +bindsym $mod+u border none + +bindsym XF86MonBrightnessDown exec sudo brightnessctl set 10%- +bindsym XF86MonBrightnessUp exec sudo brightnessctl set +10% +bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle +bindsym XF86AudioRaiseVolume exec pactl set-sink-mute @DEFAULT_SINK@ false && pactl set-sink-volume @DEFAULT_SINK@ +5% +bindsym XF86AudioLowerVolume exec pactl set-sink-mute @DEFAULT_SINK@ false && pactl set-sink-volume @DEFAULT_SINK@ -5% + + + +# resize window (you can also use the mouse for that) +mode "resize" { + # These bindings trigger as soon as you enter the resize mode + + # Pressing left will shrink the window’s width. + # Pressing right will grow the window’s width. + # Pressing up will shrink the window’s height. + # Pressing down will grow the window’s height. + bindsym h resize shrink width 5 px or 5 ppt + bindsym j resize grow height 5 px or 5 ppt + bindsym k resize shrink height 5 px or 5 ppt + bindsym l resize grow width 5 px or 5 ppt + + # same bindings, but for the arrow keys + bindsym Left resize shrink width 5 px or 5 ppt + bindsym Down resize grow height 5 px or 5 ppt + bindsym Up resize shrink height 5 px or 5 ppt + bindsym Right resize grow width 5 px or 5 ppt + + # back to normal: Enter or Escape + bindsym Return mode "default" + bindsym Escape mode "default" +} + +bindsym $mod+r mode "resize" + +exec waybar + +#exec_always { +# dbus-update-activation-environment --systemd DBUS_SESSION_BUS_ADDRESS DISPLAY XAUTHORITY +# gsettings set org.gnome.desktop.interface gtk-theme 'Adwaita-dark' +# gsettings set org.gnome.desktop.interface font-name 'Cantarell 13' +# gsettings set org.gnome.desktop.interface icon-theme 'Arc' +#} + +#exec swayidle -w timeout 300 'swaylock -f -c 111111' timeout 310 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' before-sleep 'swaylock -f -c 111111' + +#exec mako +#exec_always /home/katchup/lab/wkwwin/script.sh +#exec xscreensaver -nosplash +#exec pulseaudio --start +#exec mpd +#exec ~/.i3/mpdscribble.sh +#exec_always xinput --set-prop 'HID 04d9:1133' 'Device Accel Constant Deceleration' 2 +#exec_always xinput --set-prop 'HID 04d9:1133' 'Device Accel Adaptive Deceleration' 2 +#exec_always xinput --set-prop 'HID 04d9:1133' 'Device Accel Velocity Scaling' 5 +#exec nm-applet +#exec nextcloud +#exec seafile-applet +#exec redshift-gtk -l 48.8567:2.3508 +#exec ~/.i3/notify-serv.sh +#exec xset -b # disable bell + + diff --git a/waybar/config b/waybar/config index 0bfdf65..bf8884f 100644 --- a/waybar/config +++ b/waybar/config @@ -1,12 +1,12 @@ { // "layer": "top", // Waybar at top layer - // "position": "bottom", // Waybar position (top|bottom|left|right) + "position": "bottom", // Waybar position (top|bottom|left|right) "height": 30, // Waybar height (to be removed for auto height) // "width": 1280, // Waybar width "spacing": 4, // Gaps between modules (4px) // Choose the order of the modules - "modules-left": ["sway/workspaces", "sway/mode", "sway/scratchpad", "custom/media"], - "modules-center": ["sway/window"], + "modules-left": ["sway/workspaces", "sway/mode", "sway/scratchpad", "sway/window"], + "modules-center": [], "modules-right": ["pulseaudio", "network", "cpu", "memory", "disk", "temperature", "keyboard-state", "battery#bat0", "battery#bat1", "clock", "tray"], // Modules configuration // "sway/workspaces": { @@ -154,7 +154,7 @@ // "scroll-step": 1, // %, can be a float "format": "{volume}% {icon} {format_source}", "format-bluetooth": "{volume}% {icon} {format_source}", - "format-bluetooth-muted": " {icon} {format_source}", + "format-bluetooth-muted": "🔇 {icon} {format_source}", "format-muted": " {format_source}", "format-source": "{volume}% ", "format-source-muted": "", diff --git a/waybar/style.css b/waybar/style.css new file mode 100644 index 0000000..8e675a0 --- /dev/null +++ b/waybar/style.css @@ -0,0 +1,301 @@ +* { + /* `otf-font-awesome` is required to be installed for icons */ + font-family: FontAwesome, "DejaVu Sans Mono", monospace; + font-size: 13px; +} + +window#waybar { + background-color: rgba(43, 48, 59, 0.5); + border-bottom: 3px solid rgba(100, 114, 125, 0.5); + color: #ffffff; + transition-property: background-color; + transition-duration: .5s; +} + +window#waybar.hidden { + opacity: 0.2; +} + +/* +window#waybar.empty { + background-color: transparent; +} +window#waybar.solo { + background-color: #FFFFFF; +} +*/ + +window#waybar.termite { + background-color: #3F3F3F; +} + +window#waybar.chromium { + background-color: #000000; + border: none; +} + +button { + /* Use box-shadow instead of border so the text isn't offset */ + box-shadow: inset 0 -3px transparent; + /* Avoid rounded borders under each button name */ + border: none; + border-radius: 0; +} + +/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ +button:hover { + background: inherit; + box-shadow: inset 0 -3px #ffffff; +} + +#workspaces button { + padding: 0 5px; + background-color: transparent; + color: #ffffff; +} + +#workspaces button:hover { + background: rgba(0, 0, 0, 0.2); +} + +#workspaces button.focused { + background-color: #64727D; + box-shadow: inset 0 -3px #ffffff; +} + +#workspaces button.urgent { + background-color: #eb4d4b; +} + +#mode { + background-color: #64727D; + border-bottom: 3px solid #ffffff; +} + +#clock, +#battery, +#cpu, +#memory, +#disk, +#temperature, +#backlight, +#network, +#pulseaudio, +#wireplumber, +#custom-media, +#tray, +#mode, +#idle_inhibitor, +#scratchpad, +#mpd { + padding: 0 10px; + color: #ffffff; +} + +#window, +#workspaces { + margin: 0 4px; +} + +/* If workspaces is the leftmost module, omit left margin */ +.modules-left > widget:first-child > #workspaces { + margin-left: 0; +} + +/* If workspaces is the rightmost module, omit right margin */ +.modules-right > widget:last-child > #workspaces { + margin-right: 0; +} + +#clock { + background-color: #64727D; +} + +#battery { + background-color: #ffffff; + color: #000000; +} + +#battery.charging, #battery.plugged { + color: #ffffff; + background-color: #26A65B; +} + +@keyframes blink { + to { + background-color: #ffffff; + color: #000000; + } +} + +#battery.critical:not(.charging) { + background-color: #f53c3c; + color: #ffffff; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +label:focus { + background-color: #000000; +} + +#cpu { + background-color: #2ecc71; + color: #000000; +} + +#memory { + background-color: #9b59b6; +} + +#disk { + background-color: #964B00; +} + +#backlight { + background-color: #90b1b1; +} + +#network { + background-color: #2980b9; +} + +#network.disconnected { + background-color: #f53c3c; +} + +#pulseaudio { + background-color: #f1c40f; + color: #000000; +} + +#pulseaudio.muted { + background-color: #90b1b1; + color: #2a5c45; +} + +#wireplumber { + background-color: #fff0f5; + color: #000000; +} + +#wireplumber.muted { + background-color: #f53c3c; +} + +#custom-media { + background-color: #66cc99; + color: #2a5c45; + min-width: 100px; +} + +#custom-media.custom-spotify { + background-color: #66cc99; +} + +#custom-media.custom-vlc { + background-color: #ffa000; +} + +#temperature { + background-color: #f0932b; +} + +#temperature.critical { + background-color: #eb4d4b; +} + +#tray { + background-color: #2980b9; +} + +#tray > .passive { + -gtk-icon-effect: dim; +} + +#tray > .needs-attention { + -gtk-icon-effect: highlight; + background-color: #eb4d4b; +} + +#idle_inhibitor { + background-color: #2d3436; +} + +#idle_inhibitor.activated { + background-color: #ecf0f1; + color: #2d3436; +} + +#mpd { + background-color: #66cc99; + color: #2a5c45; +} + +#mpd.disconnected { + background-color: #f53c3c; +} + +#mpd.stopped { + background-color: #90b1b1; +} + +#mpd.paused { + background-color: #51a37a; +} + +#language { + background: #00b093; + color: #740864; + padding: 0 5px; + margin: 0 5px; + min-width: 16px; +} + +#keyboard-state { + background: #97e1ad; + color: #000000; + padding: 0 0px; + margin: 0 5px; + min-width: 16px; +} + +#keyboard-state > label { + padding: 0 5px; +} + +#keyboard-state > label.locked { + background: rgba(0, 0, 0, 0.2); +} + +#scratchpad { + background: rgba(0, 0, 0, 0.2); +} + +#scratchpad.empty { + background-color: transparent; +} + +#privacy { + padding: 0; +} + +#privacy-item { + padding: 0 5px; + color: white; +} + +#privacy-item.screenshare { + background-color: #cf5700; +} + +#privacy-item.audio-in { + background-color: #1ca000; +} + +#privacy-item.audio-out { + background-color: #0069d4; +} -- cgit v1.2.3