diff --git a/.gitignore b/.gitignore index 21ee720..25a2012 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ git/.gitconfig-work home/ -nano/.cache/nano/* \ No newline at end of file +nano/.cache/nano/ +i3/.wallpapers/ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index fd16ba2..8388bb4 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -2,7 +2,7 @@ # See https://pre-commit.com/hooks.html for more hooks repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v3.2.0 + rev: v4.5.0 hooks: - id: trailing-whitespace - id: end-of-file-fixer diff --git a/alacritty/.config/alacritty/alacritty.toml b/alacritty/.config/alacritty/alacritty.toml index ce0a4b7..cd4dd0e 100644 --- a/alacritty/.config/alacritty/alacritty.toml +++ b/alacritty/.config/alacritty/alacritty.toml @@ -1,9 +1,11 @@ import = [ "~/.config/alacritty/alacritty-thems/dark_pride.toml", "~/.config/alacritty/alacritty-thems/dracula_plus.toml", - "~/.config/alacritty/hactatio.toml" + "~/.config/alacritty/hactario.toml" ] [env] TERM = "xterm-256color" +[font] +normal = { family = "Hack Nerd Font Mono" } diff --git a/alacritty/.config/alacritty/hactario.toml b/alacritty/.config/alacritty/hactario.toml index 7b5970d..dbf03bc 100644 --- a/alacritty/.config/alacritty/hactario.toml +++ b/alacritty/.config/alacritty/hactario.toml @@ -3,12 +3,16 @@ live_config_reload = true [window] dynamic_padding = true decorations = 'None' -opacity = 0.8 +opacity = 0.70 dynamic_title = true +[windows.class] +general = "alacritty" + [bell] animation = "EaseOutQuad" duration = 150 +color = "0xf8f8f2" [colors] draw_bold_text_with_bright_colors = true @@ -21,3 +25,12 @@ multiplier = 3 save_to_clipboard = true semantic_escape_chars = ",│`|:\"' ()[]{}<>\t" +[font] +size = 10.0 + +[font.normal] +family = "Hack Nerd Font Mono" + +[font.bold] +family = "Hack Nerd Font Mono" +style = "Bold" diff --git a/awesome/.config/awesome/rc.lua b/awesome/.config/awesome/rc.lua index 975a92f..c61ceca 100644 --- a/awesome/.config/awesome/rc.lua +++ b/awesome/.config/awesome/rc.lua @@ -52,7 +52,7 @@ beautiful.init(gears.filesystem.get_themes_dir() .. "default/theme.lua") -- This is used later as the default terminal and editor to run. -- terminal = "x-terminal-emulator" -terminal = "/home/qgodefro/.cargo/bin/alacritty" +terminal = "alacritty" editor = os.getenv("EDITOR") or "editor" editor_cmd = terminal .. " -e " .. editor @@ -594,5 +594,5 @@ client.connect_signal("focus", function(c) c.border_color = beautiful.border_foc client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end) -- }}} --- local battery = battery_widget:new({}) --- right_layout:add(battery.widget) +local battery = battery_widget:new({}) +right_layout:add(battery.widget) diff --git a/dunst/.config/dunst/dunstrc b/dunst/.config/dunst/dunstrc new file mode 100644 index 0000000..acefd5a --- /dev/null +++ b/dunst/.config/dunst/dunstrc @@ -0,0 +1,326 @@ +[global] + ### Display ### + + # Which monitor should the notifications be displayed on. + monitor = 2 + + # Display notification on focused monitor. Possible modes are: + # mouse: follow mouse pointer + # keyboard: follow window with keyboard focus + # none: don't follow anything + # + # "keyboard" needs a window manager that exports the + # _NET_ACTIVE_WINDOW property. + # This should be the case for almost all modern window managers. + # + # If this option is set to mouse or keyboard, the monitor option + # will be ignored. + follow = none + + # The geometry of the window: + # [{width}]x{height}[+/-{x}+/-{y}] + # The geometry of the message window. + # The height is measured in number of notifications everything else + # in pixels. If the width is omitted but the height is given + # ("-geometry x2"), the message window expands over the whole screen + # (dmenu-like). If width is 0, the window expands to the longest + # message displayed. A positive x is measured from the left, a + # negative from the right side of the screen. Y is measured from + # the top and down respectively. + # The width can be negative. In this case the actual width is the + # screen width minus the width defined in within the geometry option. + geometry = "300x5-30+20" + + # Show how many messages are currently hidden (because of geometry). + indicate_hidden = yes + + # Shrink window if it's smaller than the width. Will be ignored if + # width is 0. + shrink = no + + # The transparency of the window. Range: [0; 100]. + # This option will only work if a compositing window manager is + # present (e.g. xcompmgr, compiz, etc.). + transparency = 20 + + # The height of the entire notification. If the height is smaller + # than the font height and padding combined, it will be raised + # to the font height and padding. + notification_height = 0 + + # Draw a line of "separator_height" pixel height between two + # notifications. + # Set to 0 to disable. + separator_height = 6 + + # Padding between text and separator. + padding = 6 + + # Horizontal padding. + horizontal_padding = 8 + + # Defines width in pixels of frame around the notification window. + # Set to 0 to disable. + frame_width = 2 + + # Defines color of the frame around the notification window. + frame_color = "#6272A4" + + # Define a color for the separator. + # possible values are: + # * auto: dunst tries to find a color fitting to the background; + # * foreground: use the same color as the foreground; + # * frame: use the same color as the frame; + # * anything else will be interpreted as a X color. + separator_color = auto + + # Sort messages by urgency. + sort = yes + + # Don't remove messages, if the user is idle (no mouse or keyboard input) + # for longer than idle_threshold seconds. + # Set to 0 to disable. + # Transient notifications ignore this setting. + idle_threshold = 120 + + ### Text ### + + font = Hack 10 + + # The spacing between lines. If the height is smaller than the + # font height, it will get raised to the font height. + line_height = 0 + + # Possible values are: + # full: Allow a small subset of html markup in notifications: + # bold + # italic + # strikethrough + # underline + # + # For a complete reference see + # . + # + # strip: This setting is provided for compatibility with some broken + # clients that send markup even though it's not enabled on the + # server. Dunst will try to strip the markup but the parsing is + # simplistic so using this option outside of matching rules for + # specific applications *IS GREATLY DISCOURAGED*. + # + # no: Disable markup parsing, incoming notifications will be treated as + # plain text. Dunst will not advertise that it has the body-markup + # capability if this is set as a global setting. + # + # It's important to note that markup inside the format option will be parsed + # regardless of what this is set to. + markup = full + + # The format of the message. Possible variables are: + # %a appname + # %s summary + # %b body + # %i iconname (including its path) + # %I iconname (without its path) + # %p progress value if set ([ 0%] to [100%]) or nothing + # %n progress value if set without any extra characters + # %% Literal % + # Markup is allowed + format = "%s %a\n%b" + + # Alignment of message text. + # Possible values are "left", "center" and "right". + alignment = left + + # Show age of message if message is older than show_age_threshold + # seconds. + # Set to -1 to disable. + show_age_threshold = 60 + + # Split notifications into multiple lines if they don't fit into + # geometry. + word_wrap = yes + + # When word_wrap is set to no, specify where to ellipsize long lines. + # Possible values are "start", "middle" and "end". + ellipsize = middle + + # Ignore newlines '\n' in notifications. + ignore_newline = no + + # Merge multiple notifications with the same content + stack_duplicates = true + + # Hide the count of merged notifications with the same content + hide_duplicate_count = false + + # Display indicators for URLs (U) and actions (A). + show_indicators = yes + + ### Icons ### + + # Align icons left/right/off + icon_position = left + + # Scale larger icons down to this size, set to 0 to disable + max_icon_size = 128 + + # Paths to default icons. + icon_path = /run/current-system/sw/share/icons/hicolor/128x128/status:/run/current-system/sw/share/icons/hicolor/128x128/devices:/run/current-system/sw/share/icons/hicolor/128x128/actions:/usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/ + + ### History ### + + # Should a notification popped up from history be sticky or timeout + # as if it would normally do. + sticky_history = yes + + # Maximum amount of notifications kept in history + history_length = 20 + + ### Misc/Advanced ### + + # dmenu path. + dmenu = /run/current-system/sw/bin/dmenu -p dunst: + + # Browser for opening urls in context menu. + browser = /etc/profiles/per-user/hactario/bin/firefox -new-tab + + # Always run rule-defined scripts, even if the notification is suppressed + always_run_script = true + + # Define the title of the windows spawned by dunst + title = Dunst + + # Define the class of the windows spawned by dunst + class = Dunst + + # Print a notification on startup. + # This is mainly for error detection, since dbus (re-)starts dunst + # automatically after a crash. + startup_notification = true + + ### Legacy + + # Use the Xinerama extension instead of RandR for multi-monitor support. + # This setting is provided for compatibility with older nVidia drivers that + # do not support RandR and using it on systems that support RandR is highly + # discouraged. + # + # By enabling this setting dunst will not be able to detect when a monitor + # is connected or disconnected which might break follow mode if the screen + # layout changes. + force_xinerama = false + +# Experimental features that may or may not work correctly. Do not expect them +# to have a consistent behaviour across releases. +[experimental] + # Calculate the dpi to use on a per-monitor basis. + # If this setting is enabled the Xft.dpi value will be ignored and instead + # dunst will attempt to calculate an appropriate dpi value for each monitor + # using the resolution and physical size. This might be useful in setups + # where there are multiple screens with very different dpi values. + per_monitor_dpi = false + +[shortcuts] + + # Shortcuts are specified as [modifier+][modifier+]...key + # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2", + # "mod3" and "mod4" (windows-key). + # Xev might be helpful to find names for keys. + + # Close notification. + close = ctrl+mod1+space + + # Close all notifications. + close_all = ctrl+shift+space + + # Redisplay last message(s). + # On the US keyboard layout "grave" is normally above TAB and left + # of "1". Make sure this key actually exists on your keyboard layout, + # e.g. check output of 'xmodmap -pke' + history = ctrl+dead_acute + + # Context menu. + context = ctrl+shift+period + +[urgency_low] + # IMPORTANT: colors have to be defined in quotation marks. + # Otherwise the "#" and following would be interpreted as a comment. + background = "#282A36" + foreground = "#F8F8F2" + timeout = 10 + # Icon for notifications with low urgency, uncomment to enable + #icon = /path/to/icon + +[urgency_normal] + background = "#44475A" + foreground = "#F8F8F2" + timeout = 10 + # Icon for notifications with normal urgency, uncomment to enable + #icon = /path/to/icon + +[urgency_critical] + background = "#6272A4" + foreground = "#FF5555" + frame_color = "#FF5555" + timeout = 0 + # Icon for notifications with critical urgency, uncomment to enable + #icon = /path/to/icon + +# Every section that isn't one of the above is interpreted as a rules to +# override settings for certain messages. +# Messages can be matched by "appname", "summary", "body", "icon", "category", +# "msg_urgency" and you can override the "timeout", "urgency", "foreground", +# "background", "new_icon" and "format". +# Shell-like globbing will get expanded. +# +# SCRIPTING +# You can specify a script that gets run when the rule matches by +# setting the "script" option. +# The script will be called as follows: +# script appname summary body icon urgency +# where urgency can be "LOW", "NORMAL" or "CRITICAL". +# +# NOTE: if you don't want a notification to be displayed, set the format +# to "". +# NOTE: It might be helpful to run dunst -print in a terminal in order +# to find fitting options for rules. + +#[espeak] +# summary = "*" +# script = dunst_espeak.sh + +#[script-test] +# summary = "*script*" +# script = dunst_test.sh + +#[ignore] +# # This notification will not be displayed +# summary = "foobar" +# format = "" + +#[history-ignore] +# # This notification will not be saved in history +# summary = "foobar" +# history_ignore = yes + +#[signed_on] +# appname = Pidgin +# summary = "*signed on*" +# urgency = low +# +#[signed_off] +# appname = Pidgin +# summary = *signed off* +# urgency = low +# +#[says] +# appname = Pidgin +# summary = *says* +# urgency = critical +# +#[twitter] +# appname = Pidgin +# summary = *twitter.com* +# urgency = normal +# +# vim: ft=cfg \ No newline at end of file diff --git a/dunst/.config/dunst/spotify.sh b/dunst/.config/dunst/spotify.sh new file mode 100755 index 0000000..d495184 --- /dev/null +++ b/dunst/.config/dunst/spotify.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +/usr/bin/spotifycli --statusshort > ~/.config/i3status/spotify.log \ No newline at end of file diff --git a/flake.nix b/flake.nix index f496487..927e414 100644 --- a/flake.nix +++ b/flake.nix @@ -12,7 +12,7 @@ }; dotfiles = { url = "git.ood.ovh:hactarus/dotfiles"; - flake = false; + flake = true; }; outputs = { self, nixpkgs, home-manager, ... } @inputs: { homeConfigurations.foodogsquared = home-manager.lib.homeManagerConfiguration { diff --git a/helix/.config/helix/runtime b/helix/.config/helix/runtime index a90893a..c51ba96 120000 --- a/helix/.config/helix/runtime +++ b/helix/.config/helix/runtime @@ -1 +1 @@ -/home/qgodefro/projects/helix/runtime/ \ No newline at end of file +/etc/profiles/per-user/hactario/lib/runtime \ No newline at end of file diff --git a/i3/.config/config b/i3/.config/config new file mode 100644 index 0000000..d21dc90 --- /dev/null +++ b/i3/.config/config @@ -0,0 +1,246 @@ +#!#sh-like + +# i3 config file (v4) +# +# Please see https://i3wm.org/docs/userguide.html for a complete reference! +# +# This config file uses keycodes (bindsym) and was written for the QWERTY +# layout. +# +# To get a config file with the same key positions, but for your current +# layout, use the i3-config-wizard +# + +set $mod Mod4 +set $term wezterm + +# Font for window titles. Will also be used by the bar unless a different font +# is used in the bar {} block below. +#font pango:monospace 8 +font pango:Noto Sans 10 + +# This font is widely installed, provides lots of unicode glyphs, right-to-left +# text rendering and scalability on retina/hidpi displays (thanks to pango). +#font pango:DejaVu Sans Mono 8 + +# https://wiki.archlinux.org/title/Picom +# https://github.com/chjj/compton/issues/402 +# Inspect windows with: `xwininfo -tree -root` +exec --no-startup-id picom --backend=egl \ + --blur-method=dual_kawase --blur-strength=12 \ + --corner-radius=24 --rounded-corners-exclude='class_g = "Polybar" || class_g = "dmenu"' \ + --unredir-if-possible-delay=1000 \ + --shadow --shadow-exclude='class_g = "dmenu"' + +# Start XDG autostart .desktop files using dex. See also +# https://wiki.archlinux.org/index.php/XDG_Autostart +exec --no-startup-id dex --autostart --environment i3 + +# The combination of xss-lock, nm-applet and pactl is a popular choice, so +# they are included here as an example. Modify as you see fit. + +# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the +# screen before suspend. Use loginctl lock-session to lock your screen. +exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork + +# NetworkManager is the most popular way to manage wireless networks on Linux, +# and nm-applet is a desktop environment-independent system tray GUI for it. +exec --no-startup-id nm-applet + +exec --no-startup-id feh --bg-fill /home/nehu/Pictures/matcha-set.jpg + +exec --no-startup-id pipewire +exec --no-startup-id pipewire-pulse +exec --no-startup-id wireplumber + +# Focus with keyboard or by clicking only +focus_follows_mouse no + +default_border none +gaps inner 8 +gaps outer 0 + +# Use pactl to adjust volume in PulseAudio. +set $refresh_i3status killall -SIGUSR1 i3status +#bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status +#bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status +#bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status +#bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status +bindsym XF86KbdBrightnessUp exec sudo keyboard-backlight up +bindsym XF86KbdBrightnessDown exec sudo keyboard-backlight down +bindsym XF86AudioRaiseVolume exec pamixer -i 5 +bindsym XF86AudioLowerVolume exec pamixer -d 5 +bindsym XF86AudioMute exec pamixer --toggle-mute +bindsym XF86MonBrightnessDown exec sudo brightnessctl set 10%- +bindsym XF86MonBrightnessUp exec sudo brightnessctl set 10%+ + +# Switch between light/dark mode +# `darkman` doesn't seem to change the color-scheme value on sway, but `gettings` does... +bindsym $mod+XF86MonBrightnessDown exec gsettings set org.gnome.desktop.interface color-scheme prefer-dark +bindsym $mod+XF86MonBrightnessUp exec gsettings set org.gnome.desktop.interface color-scheme prefer-light + +bindsym $mod+Shift+s exec spectacle -f +#bindsym $mod+Shift+s exec flameshot full + +# use these keys for focus, movement, and resize directions when reaching for +# the arrows is not convenient +set $up l +set $down k +set $left j +set $right semicolon + +# use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +# move tiling windows via drag & drop by left-clicking into the title bar, +# or left-clicking anywhere into the window while holding the floating modifier. +tiling_drag modifier titlebar + +# start a terminal +bindsym $mod+Return exec $term +#bindsym $mod+Return exec i3-sensible-terminal + +# kill focused window +bindsym $mod+Shift+q kill +bindsym $mod+q kill + +# `i3-dmenu-desktop` is a wrapper around `dmenu` which only displays ".desktop" apps; +# override the `dmenu` command to match the polybar style +bindsym $mod+d exec --no-startup-id i3-dmenu-desktop \ + --dmenu="dmenu -i -nb #282A2E -sb #373B41 -sf #F0C674" + +# change focus +bindsym $mod+$left focus left +bindsym $mod+$down focus down +bindsym $mod+$up focus up +bindsym $mod+$right 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+$left move left +bindsym $mod+Shift+$down move down +bindsym $mod+Shift+$up move up +bindsym $mod+Shift+$right 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+h split h + +# split in vertical orientation +bindsym $mod+v split v + +# enter fullscreen mode for the focused container +bindsym $mod+f fullscreen toggle + +# change container layout (stacked, tabbed, toggle split) +bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+e layout toggle split + +# 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+a focus parent + +# focus the child container +#bindsym $mod+d focus child + +# 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 + +# Define names for default workspaces for which we configure key bindings later on. +# We use variables to avoid repeating the names in multiple places. +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" +set $ws10 "10" + +# switch to workspace +bindsym $mod+1 workspace number $ws1 +bindsym $mod+2 workspace number $ws2 +bindsym $mod+3 workspace number $ws3 +bindsym $mod+4 workspace number $ws4 +bindsym $mod+5 workspace number $ws5 +bindsym $mod+6 workspace number $ws6 +bindsym $mod+7 workspace number $ws7 +bindsym $mod+8 workspace number $ws8 +bindsym $mod+9 workspace number $ws9 +bindsym $mod+0 workspace number $ws10 + +# move focused container to workspace +bindsym $mod+Shift+1 move container to workspace number $ws1 +bindsym $mod+Shift+2 move container to workspace number $ws2 +bindsym $mod+Shift+3 move container to workspace number $ws3 +bindsym $mod+Shift+4 move container to workspace number $ws4 +bindsym $mod+Shift+5 move container to workspace number $ws5 +bindsym $mod+Shift+6 move container to workspace number $ws6 +bindsym $mod+Shift+7 move container to workspace number $ws7 +bindsym $mod+Shift+8 move container to workspace number $ws8 +bindsym $mod+Shift+9 move container to workspace number $ws9 +bindsym $mod+Shift+0 move container to workspace number $ws10 + +# 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 exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'" + +# 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 $left resize shrink width 10 px or 10 ppt + bindsym $down resize grow height 10 px or 10 ppt + bindsym $up resize shrink height 10 px or 10 ppt + bindsym $right resize grow width 10 px or 10 ppt + + # same bindings, but for the arrow keys + bindsym Left resize shrink width 10 px or 10 ppt + bindsym Down resize grow height 10 px or 10 ppt + bindsym Up resize shrink height 10 px or 10 ppt + bindsym Right resize grow width 10 px or 10 ppt + + # back to normal: Enter or Escape or $mod+r + bindsym Return mode "default" + bindsym Escape mode "default" + bindsym $mod+r mode "default" +} + +bindsym $mod+r mode "resize" + +# Start i3bar to display a workspace bar (plus the system information i3status +# finds out, if available) +#bar { +# i3bar_command polybar +# #status_command i3status +#} +exec_always --no-startup-id start-polybar diff --git a/i3/.config/config.keycodes b/i3/.config/config.keycodes new file mode 100644 index 0000000..7bc5d60 --- /dev/null +++ b/i3/.config/config.keycodes @@ -0,0 +1,189 @@ +# WARNING +# WARNING: This configuration file is a template for the i3-config-wizard to +# WARNING: generate a config which uses keysyms in your current layout. It does +# WARNING: not get loaded by i3. Please do not change it. +# WARNING + +# i3 config file (v4) +# +# Please see https://i3wm.org/docs/userguide.html for a complete reference! + +set $mod Mod1 + +# Font for window titles. Will also be used by the bar unless a different font +# is used in the bar {} block below. +font pango:monospace 8 + +# This font is widely installed, provides lots of unicode glyphs, right-to-left +# text rendering and scalability on retina/hidpi displays (thanks to pango). +#font pango:DejaVu Sans Mono 8 + +# Start XDG autostart .desktop files using dex. See also +# https://wiki.archlinux.org/index.php/XDG_Autostart +exec --no-startup-id dex --autostart --environment i3 + +# The combination of xss-lock, nm-applet and pactl is a popular choice, so +# they are included here as an example. Modify as you see fit. + +# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the +# screen before suspend. Use loginctl lock-session to lock your screen. +exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork + +# NetworkManager is the most popular way to manage wireless networks on Linux, +# and nm-applet is a desktop environment-independent system tray GUI for it. +exec --no-startup-id nm-applet + +# Use pactl to adjust volume in PulseAudio. +set $refresh_i3status killall -SIGUSR1 i3status +bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status +bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status +bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status +bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status + +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +# move tiling windows via drag & drop by left-clicking into the title bar, +# or left-clicking anywhere into the window while holding the floating modifier. +tiling_drag modifier titlebar + +# start a terminal +bindcode $mod+36 exec i3-sensible-terminal + +# kill focused window +bindcode $mod+Shift+24 kill + +# start dmenu (a program launcher) +bindcode $mod+40 exec --no-startup-id dmenu_run +# A more modern dmenu replacement is rofi: +# bindcode $mod+40 exec "rofi -modi drun,run -show drun" +# There also is i3-dmenu-desktop which only displays applications shipping a +# .desktop file. It is a wrapper around dmenu, so you need that installed. +# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop + +# change focus +bindcode $mod+44 focus left +bindcode $mod+45 focus down +bindcode $mod+46 focus up +bindcode $mod+47 focus right + +# alternatively, you can use the cursor keys: +bindcode $mod+113 focus left +bindcode $mod+116 focus down +bindcode $mod+111 focus up +bindcode $mod+114 focus right + +# move focused window +bindcode $mod+Shift+44 move left +bindcode $mod+Shift+45 move down +bindcode $mod+Shift+46 move up +bindcode $mod+Shift+47 move right + +# alternatively, you can use the cursor keys: +bindcode $mod+Shift+113 move left +bindcode $mod+Shift+116 move down +bindcode $mod+Shift+111 move up +bindcode $mod+Shift+114 move right + +# split in horizontal orientation +bindcode $mod+43 split h + +# split in vertical orientation +bindcode $mod+55 split v + +# enter fullscreen mode for the focused container +bindcode $mod+41 fullscreen toggle + +# change container layout (stacked, tabbed, toggle split) +bindcode $mod+39 layout stacking +bindcode $mod+25 layout tabbed +bindcode $mod+26 layout toggle split + +# toggle tiling / floating +bindcode $mod+Shift+65 floating toggle + +# change focus between tiling / floating windows +bindcode $mod+65 focus mode_toggle + +# focus the parent container +bindcode $mod+38 focus parent + +# focus the child container +#bindsym $mod+d focus child + +# Define names for default workspaces for which we configure key bindings later on. +# We use variables to avoid repeating the names in multiple places. +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" +set $ws10 "10" + +# switch to workspace +bindcode $mod+10 workspace number $ws1 +bindcode $mod+11 workspace number $ws2 +bindcode $mod+12 workspace number $ws3 +bindcode $mod+13 workspace number $ws4 +bindcode $mod+14 workspace number $ws5 +bindcode $mod+15 workspace number $ws6 +bindcode $mod+16 workspace number $ws7 +bindcode $mod+17 workspace number $ws8 +bindcode $mod+18 workspace number $ws9 +bindcode $mod+19 workspace number $ws10 + +# move focused container to workspace +bindcode $mod+Shift+10 move container to workspace number $ws1 +bindcode $mod+Shift+11 move container to workspace number $ws2 +bindcode $mod+Shift+12 move container to workspace number $ws3 +bindcode $mod+Shift+13 move container to workspace number $ws4 +bindcode $mod+Shift+14 move container to workspace number $ws5 +bindcode $mod+Shift+15 move container to workspace number $ws6 +bindcode $mod+Shift+16 move container to workspace number $ws7 +bindcode $mod+Shift+17 move container to workspace number $ws8 +bindcode $mod+Shift+18 move container to workspace number $ws9 +bindcode $mod+Shift+19 move container to workspace number $ws10 + +# reload the configuration file +bindcode $mod+Shift+54 reload +# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) +bindcode $mod+Shift+27 restart +# exit i3 (logs you out of your X session) +bindcode $mod+Shift+26 exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'" + +# 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. + bindcode 44 resize shrink width 10 px or 10 ppt + bindcode 45 resize grow height 10 px or 10 ppt + bindcode 46 resize shrink height 10 px or 10 ppt + bindcode 47 resize grow width 10 px or 10 ppt + + # same bindings, but for the arrow keys + bindcode 113 resize shrink width 10 px or 10 ppt + bindcode 116 resize grow height 10 px or 10 ppt + bindcode 111 resize shrink height 10 px or 10 ppt + bindcode 114 resize grow width 10 px or 10 ppt + + # back to normal: Enter or Escape or $mod+r + bindcode 36 mode "default" + bindcode 9 mode "default" + bindcode $mod+27 mode "default" +} + +bindcode $mod+27 mode "resize" + +# Start i3bar to display a workspace bar (plus the system information i3status +# finds out, if available) +bar { + status_command i3status +} diff --git a/i3/.config/i3/config b/i3/.config/i3/config index 3017f2b..e06d268 100644 --- a/i3/.config/i3/config +++ b/i3/.config/i3/config @@ -1,5 +1,5 @@ # This file has been auto-generated by i3-config-wizard(1). -# It will not be overwritten, so edit it as you like. +# It will 'FiraCode Nerd Font Mono'not be overwritten, so edit it as you like. # # Should you change your keyboard layout some time, delete # this file and re-run i3-config-wizard(1). @@ -13,7 +13,8 @@ set $mod Mod4 # Font for window titles. Will also be used by the bar unless a different font # is used in the bar {} block below. -font 'Hack Nerd Font Mono':monospace 8 +#font pango:monospace 8 +font pango:Hack Nerd Font Regular 12 # This font is widely installed, provides lots of unicode glyphs, right-to-left # text rendering and scalability on retina/hidpi displays (thanks to pango). @@ -28,7 +29,7 @@ exec --no-startup-id dex --autostart --environment i3 # xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the # screen before suspend. Use loginctl lock-session to lock your screen. -exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork +exec --no-startup-id xss-lock --transfer-sleep-lock -- ~/.config/i3/lock.sh --nofork # NetworkManager is the most popular way to manage wireless networks on Linux, # and nm-applet is a desktop environment-independent system tray GUI for it. @@ -40,13 +41,17 @@ bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status +bindsym XF86AudioPlay exec "spotifycli --playpause && spotifycli --statusshort > /var/log/scripts/spotify.log" +bindsym XF86AudioNext exec "spotifycli --next && spotifycli --statusshort > /var/log/scripts/spotify.log" +bindsym XF86AudioPrev exec "spotifycli --prev && spotifycli --statusshort > /var/log/scripts/spotify.log" + # Use Mouse+$mod to drag floating windows to their wanted position floating_modifier $mod # move tiling windows via drag & drop by left-clicking into the title bar, # or left-clicking anywhere into the window while holding the floating modifier. -# tiling_drag modifier titlebar +tiling_drag modifier titlebar # start a terminal bindsym $mod+Return exec /etc/profiles/per-user/hactario/bin/alacritty @@ -61,7 +66,7 @@ bindsym $mod+Shift+a kill # There also is i3-dmenu-desktop which only displays applications shipping a # .desktop file. It is a wrapper around dmenu, so you need that installed. # bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop -bindsym $mod+d exec "dmenu_run -nf '#F8F8F2' -nb '#282A36' -sb '#6272A4' -sf '#F8F8F2' -fn 'Hack-10.5' -p 'launch% '" +bindsym $mod+d exec "dmenu_run -nf '#F8F8F2' -nb '#282A36' -sb '#6272A4' -sf '#F8F8F2' -fn 'Hack-10.5' -l 5 -p '  '" # change focus bindsym $mod+j focus left @@ -115,16 +120,16 @@ bindsym $mod+q focus parent # Define names for default workspaces for which we configure key bindings later on. # We use variables to avoid repeating the names in multiple places. -set $ws1 "1:Chat" -set $ws2 "2:Main" -set $ws3 "3:Console" -set $ws4 "4" -set $ws5 "5" -set $ws6 "6" -set $ws7 "7" -set $ws8 "8" -set $ws9 "9:Spotify" -set $ws10 "10" +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: " +set $ws10 "10:󰕧 " # switch to workspace bindsym $mod+ampersand workspace number $ws1 @@ -150,6 +155,23 @@ bindsym $mod+Shift+exclam move container to workspace number $ws8 bindsym $mod+Shift+ccedilla move container to workspace number $ws9 bindsym $mod+Shift+agrave move container to workspace number $ws10 +set $monitor_main "DP-1-1" +set $monitor_vertical "DP-2" +set $monitor_integrated "eDP-1" + +workspace $ws1 output $monitor_main +workspace $ws2 output $monitor_main +workspace $ws3 output $monitor_main +workspace $ws4 output $monitor_main +workspace $ws5 output $monitor_main +workspace $ws6 output $monitor_main +workspace $ws7 output $monitor_vertical +workspace $ws8 output $monitor_vertical +workspace $ws9 output $monitor_integrated +workspace $ws10 output $monitor_integrated + +bindsym $mod+x [urgent=latest] focus + # reload the configuration file bindsym $mod+Shift+c reload # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) @@ -184,34 +206,32 @@ mode "resize" { bindsym $mod+r mode "resize" -# Start i3bar to display a workspace bar (plus the system information i3status -# finds out, if available) -bar { - font pango:Hack Nerd Font Mono, FontAwesome 10 - status_command i3status -c ~/.config/i3status/config - position bottom - workspace_buttons yes - # tray_output none - colors { - background #282A36 - statusline #F8F8F2 - separator #44475A - focused_workspace #44475A #44475A #F8F8F2 - active_workspace #282A36 #44475A #F8F8F2 - inactive_workspace #282A36 #282A36 #BFBFBF - urgent_workspace #FF5555 #FF5555 #F8F8F2 - binding_mode #FF5555 #FF5555 #F8F8F2 - } - bindsym --release button3 exec --no-startup-id import ~/screenshot-$(date +%F-%T).png -} +include ~/.config/i3/config.d/*.conf + client.focused #6272A4 #6272A4 #F8F8F2 #6272A4 #6272A4 client.focused_inactive #44475A #44475A #F8F8F2 #44475A #44475A client.unfocused #282A36 #282A36 #BFBFBF #282A36 #282A36 client.urgent #44475A #FF5555 #F8F8F2 #FF5555 #FF5555 client.placeholder #282A36 #282A36 #F8F8F2 #282A36 #282A36 - client.background #F8F8F2 -exec "setxkbmap -layout be" +bar { + font pango:'Hack Nerd Font Regular' 12 + position bottom + status_command i3status ~/.config/i3status-rust/config.toml + colors { + background #282A36 + statusline #F8F8F2 + separator #44475A + focused_workspace #44475A #44475A #F8F8F2 + active_workspace #282A36 #44475A #F8F8F2 + inactive_workspace #282A36 #282A36 #BFBFBF + urgent_workspace #FF5555 #FF5555 #F8F8F2 + binding_mode #FF5555 #FF5555 #F8F8F2 + } + bindsym --release button3 exec --no-startup-id import ~/screenshot-$(date +%F-%T).png +} +exec --no-startup-id feh --bg-fill ~/.dotfiles/i3/.wallpapers/mr-robot-hacker-10000x5625-15768.png +exec "setxkbmap -layout be" diff --git a/i3/.config/i3/config.d/assign.conf b/i3/.config/i3/config.d/assign.conf new file mode 100644 index 0000000..a4cc619 --- /dev/null +++ b/i3/.config/i3/config.d/assign.conf @@ -0,0 +1,25 @@ +# 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: " +# set $ws10 "10:󰕧 " + +assign [class="firefox"] $ws1 +assign [class="chromium-browser"] $ws8 +assign [class="chromium"] $ws8 +assign [class="Thunderbird"] $ws7 +assign [class="vscodium"] $ws3 +assign [class="Alacritty"] $ws2 +assign [class="Moonlight"] $ws6 +assign [class="plex-bin"] $ws5 +assign [class="vlc"] $ws5 +assign [class="Spotify"] $ws9 +assign [class="Spotify"] $ws9 + +for_window [class="Alert"] floating enable +for_window [class="dunst"] floating enable \ No newline at end of file diff --git a/i3/.config/i3/i3blocks.conf b/i3/.config/i3/i3blocks.conf index ae3843e..b6b8ddd 100644 --- a/i3/.config/i3/i3blocks.conf +++ b/i3/.config/i3/i3blocks.conf @@ -2,6 +2,4 @@ label=⚡ command=/run/current-system/sw/libexec/i3blocks/battery interval=10 -instance=1 - - +instance=1 \ No newline at end of file diff --git a/i3/.config/i3/lock.sh b/i3/.config/i3/lock.sh new file mode 100755 index 0000000..f415691 --- /dev/null +++ b/i3/.config/i3/lock.sh @@ -0,0 +1,37 @@ +#!/bin/sh + +BLANK='#F8F8F2' +CLEAR='#44475A' +DEFAULT='#6272A4' +TEXT='#6272A4' +WRONG='#44475A' +VERIFYING='#6272A4' + +i3lock \ +--insidever-color=$CLEAR \ +--ringver-color=$VERIFYING \ +\ +--insidewrong-color=$CLEAR \ +--ringwrong-color=$WRONG \ +\ +--inside-color=$BLANK \ +--ring-color=$DEFAULT \ +--line-color=$BLANK \ +--separator-color=$DEFAULT \ +\ +--verif-color=$TEXT \ +--wrong-color=$TEXT \ +--time-color=$TEXT \ +--date-color=$TEXT \ +--layout-color=$TEXT \ +--keyhl-color=$WRONG \ +--bshl-color=$WRONG \ +\ +--screen 1 \ +--blur 9 \ +--clock \ +--indicator \ +--time-str="%H:%M:%S" \ +--date-str="%A, %Y-%m-%d" \ +--keylayout 1 \ +${@} \ No newline at end of file diff --git a/i3/.config/i3status-rust/config.toml b/i3/.config/i3status-rust/config.toml index 1c0c0cc..c859c61 100644 --- a/i3/.config/i3status-rust/config.toml +++ b/i3/.config/i3status-rust/config.toml @@ -3,13 +3,10 @@ theme = "dracula" [icons] icons = "material-nf" - -[icons.overrides] -bat = [ - "| |", - "|¼|", - "|½|", - "|¾|", - "|X|", -] -bat_charging = "|^|" +[general] + colors = true + color_good = "#a3be8c" + color_degraded = "#ebcb8b" + color_bad = "#bf616a" + interval = 1 + separator = "*" diff --git a/i3/.config/i3status/config b/i3/.config/i3status/config index 6a26f3c..3b85c70 100644 --- a/i3/.config/i3status/config +++ b/i3/.config/i3status/config @@ -1,70 +1,63 @@ -# i3status configuration file. -# see "man i3status" for documentation. - -# It is important that this file is edited as UTF-8. -# The following line should contain a sharp s: -# ß -# If the above line is not correctly displayed, fix your editor first! - general { + // output_format = "i3bar" colors = true + // color_good = "#50FA7B" + // color_degraded = "#F1FA8C" + // color_bad = "#FF5555" color_good = "#a3be8c" color_degraded = "#ebcb8b" color_bad = "#bf616a" separator = "" output_format = "i3bar" interval = 5 + separator = "󰭆" } -order += "ipv6" -order += "wireless _first_" -order += "ethernet _first_" +// order += "ipv6" +order += "volume master" +order += "read_file spotify" +order += "disk /" +order += "disk /nix" order += "disk /home" -order += "load" -order += "memory" -order += "run_watch DHCP" -order += "run_watch VPNC" -order += "path_exists VPN" +// order += "run_watch DHCP" +// order += "run_watch VPNC" +// order += "path_exists VPN" +order += "wireless wlp2s0" +order += "ethernet enp0s31f6" +// order += "ethernet enp0s20f0u3c2" +order += "ethernet" order += "battery 0" order += "cpu_temperature 0" -order += "tztime local" -order += "tztime Montreal" +order += "tztime local"order += "tztime Montreal" order += "tztime Brussels" -wireless _first_ { - format_up = "W: (%quality at %essid) %ip (%speed)" - format_down = "W: down" +wireless wlp2s0 { + format_up = " (%quality at %essid, %bitrate) %ip" + format_down = "󱚵 " } -ethernet _first_ { - format_up = "E: %ip (%speed)" - format_down = "E: down" +ethernet enp0s31f6 { + format_up = "󰈀 %ip" + format_down = "󰈀 " } - - -battery all { - format = "%status %percentage %remaining" -} - -load { - format = "%1min" -} - -memory { - format = "%used | %available" - threshold_degraded = "1G" - format_degraded = "MEMORY < %available" +ethernet enp0s20f0u3c2 { + format_up = "󰈁 %ip" + format_down = "󰈁 " } battery 0 { - format = "%status %percentage %remaining %emptytime" - format_down = "No battery" - status_chr = "⚡ CHR" - status_bat = "🔋 BAT" - status_unk = "? UNK" - status_full = "☻ FULL" + format = "%status %percentage %remaining" + format_down = "" + last_full_capacity = true + integer_battery_capacity = true + low_threshold = 11 + threshold_type = percentage + hide_seconds = true + status_chr = " ⚡ " + status_bat = " 🪫 " + status_unk = " 🔌 " + status_full = " 🔋 " path = "/sys/class/power_supply/BAT%d/uevent" - low_threshold = 10 } run_watch DHCP { @@ -82,36 +75,54 @@ path_exists VPN { } tztime local { - format = "%Y-%m-%d %H:%M:%S" + format = "📅 %V %a 󰃭 %Y-%m-%d  %H:%M:%S %Z" hide_if_equals_localtime = true } tztime Brussels { - format = "%Y-%m-%d %H:%M:%S %Z" + format = "📅 %V %a 󰃭 %Y-%m-%d  %H:%M:%S %Z" timezone = "Europe/Brussels" } tztime Montreal { - format = "%H:%M %Z" + format = " %H:%M:%S %Z" timezone = "America/Montreal" hide_if_equals_localtime = true } load { - format = "%5min" + format = " %5min" } cpu_temperature 0 { - format = "T: %degrees °C" + format = "🌡️ %degrees" + path = "/sys/devices/platform/coretemp.0/hwmon/hwmon5/temp1_input" } memory { - format = "%used" + format = " %used" threshold_degraded = "10%" format_degraded = "MEMORY: %free" } disk "/" { - format = "%free" + format = " / %free" + prefix_type = custom + low_threshold = 20 + threshold_type = percentage_avail +} + +disk "/nix" { + format = "💻 /nix %free" + prefix_type = custom + low_threshold = 15 + threshold_type = percentage_avail +} + +disk "/home" { + format = "💾 /home %free" + prefix_type = custom + low_threshold = 10 + threshold_type = percentage_avail } disk "/home" { @@ -121,3 +132,17 @@ disk "/home" { read_file uptime { path = "/proc/uptime" } + +volume master { + format = "%volume 󰕾 " + format_muted = "󰖁 " + // device = "pulse:1"pavuc + device = "default" + mixer = "Master" + mixer_idx = 0 +} + +read_file spotify { + format = "🔊%content" + path = "~/.config/i3status/spotify.log" +} diff --git a/i3/.config/i3status/spotify.log b/i3/.config/i3status/spotify.log new file mode 100644 index 0000000..e69de29 diff --git a/i3/.wallpapers/mr-robot-hacker-10000x5625-15768.png b/i3/.wallpapers/mr-robot-hacker-10000x5625-15768.png new file mode 100644 index 0000000..ca3f854 Binary files /dev/null and b/i3/.wallpapers/mr-robot-hacker-10000x5625-15768.png differ diff --git a/nano/.nanorc b/nano/.nanorc index 9558520..ff2b0c5 100644 --- a/nano/.nanorc +++ b/nano/.nanorc @@ -59,7 +59,7 @@ set statuscolor brightwhite,red #set numbercolor magenta # set keycolor brightmagenta # set functioncolor magenta -include "/usr/share/nano/*.nanorc" +#include "/usr/share/nano/*.nanorc" # bind ^S savefile main # bind M-B cutwordleft main # bind M-N cutwordright main diff --git a/picom/.config/picom/picom.conf b/picom/.config/picom/picom.conf new file mode 100644 index 0000000..46ae2ae --- /dev/null +++ b/picom/.config/picom/picom.conf @@ -0,0 +1,14 @@ +# Default opacity of active windows. +active-opacity = 1.0; + +# Default opacity of inactive windows. +inactive-opacity = 1.0; + +# Opacity of window titlebars and borders. +frame-opacity = 1.0; + +# Application-specific settings; these override the default `active-opacity` +opacity-rule = [ + "95:class_g = 'Alacritty' && focused", + "80:class_g = 'Alacritty' && !focused" +]; diff --git a/polybar/.config/polybar/config.ini b/polybar/.config/polybar/config.ini new file mode 100644 index 0000000..264ecc7 --- /dev/null +++ b/polybar/.config/polybar/config.ini @@ -0,0 +1,336 @@ +;========================================================== +; +; +; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗ +; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗ +; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝ +; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗ +; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║ +; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ +; +; +; To learn more about how to configure Polybar +; go to https://github.com/polybar/polybar +; +; The README contains a lot of information +; +;========================================================== + +[colors] +background = #282A36 +background-alt = #BFBFBF +foreground = #F8F8F2 +primary = #F8F8F2 +secondary = #282A36 +alert = #44475A +disabled = #44475A + +[bar/main] +monitor = "DP-1-2" +# Last component is the vertical offset +#font-0 = Fira Code:size=10;4 +; font-0 = FiraMono Nerd Font:size=12;4 +#fc-match FontAwesome:pixelsize=14 FontAwesome.otf: "FontAwesome" "Regular" +; font-3 = FontAwesome:pixelsize=14;0 +#font-0 = Overpass Nerd Font,Overpass Nerd Font SemBd:size=10;4 +#font-0 = FiraCode:size=10;4 +#font-0 = Overpass Nerd Font:size=10;4 +#font-1 = Noto Sans:size=10;4 + +font-0 = fixed:pixelsize=12;1 +font-1 = unifont:fontformat=truetype:size=10:antialias=false;0 +font-2 = "FiraCode Nerd Font:pixelsize=12;1" +width = 100% +height = 16pt +radius = 0 + +#dpi = 192 + +background = ${colors.background} +foreground = ${colors.foreground} + +line-size = 2pt + +border-size = 0pt +border-color = #00000000 + +padding-left = 0 +padding-right = 1 + +module-margin = 1 + +separator = | +separator-foreground = ${colors.disabled} + +modules-left = xworkspaces xwindow +modules-right = filesystem pulseaudio xkeyboard memory cpu wlan eth battery date +#modules-right = pulseaudio wlan eth battery date + +cursor-click = pointer +cursor-scroll = ns-resize + +enable-ipc = true + +tray-position = right + +; wm-restack = generic +; wm-restack = bspwm +wm-restack = i3 + +; override-redirect = true + +[module/xworkspaces] +type = internal/xworkspaces + +label-active = %name% +label-active-background = ${colors.background-alt} +label-active-underline= ${colors.primary} +label-active-padding = 1 + +label-occupied = %name% +label-occupied-padding = 1 + +label-urgent = %name% +label-urgent-background = ${colors.alert} +label-urgent-padding = 1 + +label-empty = %name% +label-empty-foreground = ${colors.disabled} +label-empty-padding = 1 + +[module/xwindow] +type = internal/xwindow +label = %title:0:60:...% + +[module/filesystem] +type = internal/fs +interval = 25 + +mount-0 = / + +label-mounted = %{F#F0C674}%mountpoint%%{F-} %percentage_used%% + +label-unmounted = %mountpoint% not mounted +label-unmounted-foreground = ${colors.disabled} + +[module/pulseaudio] +type = internal/pulseaudio + +format-volume-prefix = " " +format-volume-prefix-foreground = ${colors.primary} +format-volume = + +label-volume = %percentage%% + +label-muted = " muted" +label-muted-foreground = ${colors.disabled} + +[module/xkeyboard] +type = internal/xkeyboard +blacklist-0 = num lock + +label-layout = %layout% +label-layout-foreground = ${colors.primary} + +label-indicator-padding = 2 +label-indicator-margin = 1 +label-indicator-foreground = ${colors.background} +label-indicator-background = ${colors.secondary} + +[module/memory] +type = internal/memory +interval = 2 +format-prefix = "RAM " +format-prefix-foreground = ${colors.primary} +label = %percentage_used:2%% + +[module/cpu] +type = internal/cpu +interval = 2 +format-prefix = "CPU " +format-prefix-foreground = ${colors.primary} +label = %percentage:2%% + +[network-base] +type = internal/network +interval = 5 +format-connected = +format-disconnected = + +[module/wlan] +inherit = network-base +interface-type = wireless +format-connected = +label-connected = %local_ip% +#label-connected = %{F#F0C674} %{F-} %local_ip% +#label-connected = %{F#F0C674}%ifname%%{F-} %essid% %local_ip% +label-disconnected = %{F#F0C674}%ifname%%{F#707880} disconnected  +ramp-signal-0 = %{F#F0C674}󰤯 %{F-} +ramp-signal-1 = %{F#F0C674}󰤟 %{F-} +ramp-signal-2 = %{F#F0C674}󰤢 %{F-} +ramp-signal-3 = %{F#F0C674}󰤥 %{F-} +ramp-signal-4 = %{F#F0C674}󰤨 %{F-} +ramp-signal-5 = %{F#F0C674} %{F-} + +[module/eth] +inherit = network-base +interface-type = wired +label-connected = %{F#F0C674}%ifname% 󱚽 %{F-} %local_ip% +#label-connected = %{F#F0C674}%ifname%%{F-} %local_ip% +label-disconnected = %{F#F0C674}%ifname%%{F#707880} disconnected + +[module/battery] +type = internal/battery +# $ ls -1 /sys/class/power_supply/ +battery = BAT0 +adapter = ADP1 +low-at = 15 + +# If an inotify event haven't been reported in this many +# seconds, manually poll for new values. +# +# Needed as a fallback for systems that don't report events +# on sysfs/procfs. +# +# Disable polling by setting the interval to 0. +# +# Default: 5 +#poll-interval = 5 + +# Available tags: +# (default) +# +# +# +format-charging = + +# Available tags: +# (default) +# +# +# +#format-discharging = +format-discharging = + +# Available tokens: +# %percentage% (default) - is set to 100 if full-at is reached +# %percentage_raw% +# %time% +# %consumption% (shows current charge rate in watts) +label-charging = %percentage%% +#label-charging = Charging %percentage%% + +# Available tokens: +# %percentage% (default) - is set to 100 if full-at is reached +# %percentage_raw% +# %time% +# %consumption% (shows current discharge rate in watts) +label-discharging = %percentage%% +#label-discharging = Discharging %percentage%% + +# Available tokens: +# %percentage% (default) - is set to 100 if full-at is reached +# %percentage_raw% +label-full = "%{F#F0C674}󰂅 %{F-}" + +# Available tokens: +# %percentage% (default) - is set to 100 if full-at is reached +# %percentage_raw% +# %time% +# %consumption% (shows current discharge rate in watts) +# New in version 3.6.0 +label-low = BATTERY LOW + +# Only applies if is used +ramp-capacity-0 = "%{F#F04020} %{F-}" +ramp-capacity-1 = "%{F#F0C674} %{F-}" +ramp-capacity-2 = "%{F#F0C674} %{F-}" +ramp-capacity-3 = "%{F#F0C674} %{F-}" +ramp-capacity-4 = "%{F#F0C674} %{F-}" + +# Only applies if is used +bar-capacity-width = 10 + +# Only applies if is used +animation-charging-0 = "%{F#F0C674}󰢜 %{F-}" +animation-charging-1 = "%{F#F0C674}󰂆 %{F-}" +animation-charging-2 = "%{F#F0C674}󰂈 %{F-}" +animation-charging-3 = "%{F#F0C674}󰂉 %{F-}" +animation-charging-4 = "%{F#F0C674}󰂊 %{F-}" +# Framerate in milliseconds +animation-charging-framerate = 750 + +# Only applies if is used +animation-discharging-0 = " " +animation-discharging-1 = " " +animation-discharging-2 = " " +animation-discharging-3 = " " +animation-discharging-4 = " " +# Framerate in milliseconds +animation-discharging-framerate = 500 + +[module/date] +type = internal/date +interval = 1 + +date = %H:%M +date-alt = %Y-%m-%d %H:%M:%S + +label = %date% +#label-foreground = ${colors.primary} + +[settings] +screenchange-reload = true +pseudo-transparency = true + +[module/i3] +type = internal/i3 + +; Only show workspaces defined on the same output as the bar +; +; Useful if you want to show monitor specific workspaces +; on different bars +; +; Default: false +pin-workspaces = false + +; Show urgent workspaces regardless of whether the workspace is actually hidden +; by pin-workspaces. +; +; Default: false +; New in version 3.6.0 +show-urgent = true + +; This will split the workspace name on ':' +; Default: false +strip-wsnumbers = true + +; Sort the workspaces by index instead of the default +; sorting that groups the workspaces by output +; Default: false +index-sort = true + +; Create click handler used to focus workspace +; Default: true +enable-click = false + +; Create scroll handlers used to cycle workspaces +; Default: true +enable-scroll = false + +; Wrap around when reaching the first/last workspace +; Default: true +wrapping-scroll = false + +; Set the scroll cycle direction +; Default: true +reverse-scroll = false + +; Use fuzzy (partial) matching for wc-icon. +; Example: code;♚ will apply the icon to all workspaces +; containing 'code' in the name +; Changed in version 3.7.0: Selects longest string match instead of the first match. +; Default: false +fuzzy-match = true + +; vim:ft=dosini diff --git a/setup.sh b/setup.sh index da22fa6..d1ba645 100755 --- a/setup.sh +++ b/setup.sh @@ -8,16 +8,20 @@ git submodule update # what directories should be installable by all users including the root user base=( + picom dracula + dunst git helix htop + i3 nano nix + polybar puppet ssh - i3 sway + i3 terminfo tmux vim diff --git a/zsh/.oh-my-zsh b/zsh/.oh-my-zsh index b5583a3..a72a264 160000 --- a/zsh/.oh-my-zsh +++ b/zsh/.oh-my-zsh @@ -1 +1 @@ -Subproject commit b5583a321644218702c4ef588934575f46a2159b +Subproject commit a72a26406ad3aa9a47c3f5227291bad23494bed0 diff --git a/zsh/.zshrc b/zsh/.zshrc index 0e01281..ec8c353 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -1,5 +1,6 @@ -export PATH=$HOME/bins/toolbox:$HOME/.cargo/bin:$HOME/.local/bin:/usr/local/bin:$HOME/.pyenv/bin:$HOME/hosting-run-scripts/:$PATH +export PATH=$HOME/bins/toolbox:$HOME/.cargo/bin:$HOME/.local/bin:/usr/local/bin:$HOME/hosting-run-scripts/:$PATH export ZSH=$HOME/.oh-my-zsh +source ~/hosting-run-scripts/rc-files/ovhrc # See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes ZSH_THEME="agnoster" HOST_COLOR=$(hostname -f | xxd -u -ps -s 5 -l 3 || 'FF0000') @@ -30,7 +31,7 @@ eval "$(pyenv init --path)" # Example format: plugins=(rails git textmate ruby lighthouse) # Add wisely, as too many plugins slow down shell startup. plugins=( -adb +#adb #ant #apache2-macports #arcanist @@ -88,7 +89,7 @@ docker-compose #eecms #emacs #ember-cli -emoji +#emoji #emoji-clock #emotty encode64 @@ -168,7 +169,6 @@ man #n98-magerun nanoc #ng -#nix #nmap node #nomad @@ -194,7 +194,7 @@ postgres #powify #profiles pyenv -pylint +#pylint python #rails #rake @@ -208,7 +208,7 @@ redis-cli #repo rsync #ruby -rust +#rust #rvm #safe-paste #sbt @@ -249,7 +249,7 @@ tmux #tmuxinator #torrent #tugboat -ubuntu +#ubuntu #urltools vagrant vault @@ -274,7 +274,7 @@ vault ) zstyle :omz:plugins:ssh-agent agent-forwarding on -zstyle :omz:plugins:ssh-agent identities $(hostname -f) +zstyle :omz:plugins:ssh-agent identities work_201909 zstyle :omz:plugins:ssh-agent lifetime 4h source $ZSH/oh-my-zsh.sh @@ -344,19 +344,10 @@ alias osc='openstack console log show' alias oss='openstack server' alias psa='ps auxwwwf' alias toph='top -cHd1' +alias vdir='vdir --color=auto' alias ip="ip --color" - -alias gw01='z3 gw01.infra.mps.gs.ovh.net' -alias hr-admin='z3 root@hr-admin.rungs.ovh' -alias public='z3 root@public01.infra.gs.ovh.net' -alias thot_cloudweb-robot-preprod='thot '\''wss://thot.ovh.com/tail/?tk=c89ec346-ce0d-4504-b69b-b3c216e91385'\''' -alias thot_reseller-robot-preprod='thot '\''wss://thot.ovh.com/tail/?tk=e4bdf746-d041-41d3-81a5-7e4629d3e507'\''' -alias m5='sm3 ovh@mozg-mutu5.ovh.ha.ovh.net' -alias melt='sm3 gs@mozg-meltingpot.ovh.ha.ovh.net' -alias mis='sm3 mozg-mis.ovh.ha.ovh.net' -alias logalert='sm3 --osh logovh --log alert | grep -E "MUTU|INTERNE|CLOUDWEB"' -alias evilssh='ssh sm3.ovh.net -- --osh selfForgetHostKey --host mis-reseller.lb.engine.ha.ovh.net --port 10666 && ssh -t sm3.ovh.net -- root@mis-reseller.lb.engine.ha.ovh.net -p 10666' -if [ -f ~/.webhosting/activate ]; then source ~/.webhosting/activate; fi +VAULT_ADDR="https://vault.ood.ovh:8200" +source ~/.webhosting/activate autoload -Uz compinit zstyle ':completion:*' menu select fpath+=~/.zfunc @@ -365,5 +356,4 @@ alias bat=batcat alias osm="openstack --os-cloud management_stack" alias osmb="openstack --os-cloud management_stack_sbg" alias osmd="openstack --os-cloud management_stack_de" -export BASTION_CONF_FILE=~/.config/ovh/bastion.env -VAULT_ADDR="https://vault.ood.ovh:8200" +export BASTION_CONF_FILE=~/.config/ovh/bastion.env \ No newline at end of file