Rename modules/home to modules/home-manager
This commit is contained in:
79
modules/home-manager/i3/default.nix
Normal file
79
modules/home-manager/i3/default.nix
Normal file
@ -0,0 +1,79 @@
|
||||
{
|
||||
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
|
||||
# as well as the libraries available from your flake's inputs.
|
||||
lib,
|
||||
# An instance of `pkgs` with your overlays and packages applied is also available.
|
||||
pkgs,
|
||||
# You also have access to your flake's inputs.
|
||||
inputs,
|
||||
|
||||
# Additional metadata is provided by Snowfall Lib.
|
||||
system, # The system architecture for this host (eg. `x86_64-linux`).
|
||||
target, # The Snowfall Lib target for this system (eg. `x86_64-iso`).
|
||||
format, # A normalized name for the system target (eg. `iso`).
|
||||
virtual, # A boolean to determine whether this system is a virtual target using nixos-generators.
|
||||
systems, # An attribute map of your defined hosts.
|
||||
|
||||
# All other arguments come from the module system.
|
||||
config,
|
||||
host,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.modules.i3;
|
||||
in
|
||||
{
|
||||
options.modules.i3 = {
|
||||
enable = mkOption { default = false; };
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
modules.rofi.enable = true;
|
||||
|
||||
services.dunst.enable = true;
|
||||
|
||||
programs = {
|
||||
i3status-rust = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
home.packages = with pkgs; [
|
||||
nitrogen
|
||||
xfce.xfce4-screenshooter
|
||||
pulseaudio # For pactl commands
|
||||
];
|
||||
xsession.enable = true; # Give gui programs access to sessionVariables
|
||||
# Prevent screen from going blank (check these settings with `xset q`)
|
||||
# And disable bell sound (b)
|
||||
xsession.initExtra = ''
|
||||
${pkgs.xorg.xset}/bin/xset s off
|
||||
${pkgs.xorg.xset}/bin/xset -dpms
|
||||
${pkgs.xorg.xset}/bin/xset b off
|
||||
'';
|
||||
xsession.windowManager.i3 = {
|
||||
enable = true;
|
||||
package = pkgs.i3-gaps;
|
||||
};
|
||||
|
||||
xsession.importedVariables = [ ];
|
||||
|
||||
# Overwrite default home-manager config file
|
||||
xdg.configFile."i3/config".source = lib.mkForce (
|
||||
if host == "kardorf" then ./i3/config-kardorf else ./i3/config
|
||||
);
|
||||
|
||||
home.file = {
|
||||
".config/i3/scripts" = {
|
||||
source = ./i3/scripts;
|
||||
recursive = true;
|
||||
};
|
||||
".config/i3/workspace-messaging.json".source = ./i3/workspace-chat-element-tele.json;
|
||||
".config/i3status-rust/config.toml".source = ./i3status-rust/config.toml;
|
||||
};
|
||||
|
||||
home.sessionPath = [ "/home/julian/.config/i3/scripts" ];
|
||||
};
|
||||
}
|
1
modules/home-manager/i3/i3-scrot.conf
Normal file
1
modules/home-manager/i3/i3-scrot.conf
Normal file
@ -0,0 +1 @@
|
||||
scrot_dir=~/Pictures/screenshots
|
314
modules/home-manager/i3/i3/config
Normal file
314
modules/home-manager/i3/i3/config
Normal file
@ -0,0 +1,314 @@
|
||||
# i3 config file (v4)
|
||||
#
|
||||
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
|
||||
|
||||
set $mod Mod4
|
||||
set $scripts /home/julian/.config/i3/scripts
|
||||
set $lock "i3lock --ignore-empty-password --color=000000"
|
||||
|
||||
# Font for window titles
|
||||
font pango:FuraCode Nerd Font 12
|
||||
|
||||
# xss-lock grabs a logind suspend inhibit lock and will use $lock to lock the
|
||||
# screen before suspend. Use loginctl lock-session to lock your screen.
|
||||
# exec --no-startup-id xss-lock --transfer-sleep-lock -- $lock --nofork
|
||||
|
||||
# Screen brightness controls
|
||||
bindsym XF86MonBrightnessUp exec "brightnessctl set 5%+"
|
||||
bindsym XF86MonBrightnessDown exec "brightnessctl set 5%-"
|
||||
|
||||
# Use pactl to adjust volume in PulseAudio.
|
||||
# set $refresh_i3status killall -SIGUSR1 i3status
|
||||
set $refresh_i3blocks pkill -RTMIN+1 i3blocks
|
||||
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3blocks
|
||||
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3blocks
|
||||
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3blocks
|
||||
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3blocks
|
||||
|
||||
# Use Mouse+$mod to drag floating windows to their wanted position
|
||||
floating_modifier $mod
|
||||
|
||||
# start a terminal
|
||||
bindsym $mod+Return exec $TERMINAL
|
||||
|
||||
# kill focused window
|
||||
bindsym $mod+Shift+q kill
|
||||
bindsym $mod+x kill
|
||||
|
||||
# Simulates alt+f4
|
||||
bindsym Mod1+F4 kill
|
||||
|
||||
# start program launcher
|
||||
bindsym $mod+d exec rofi -show run
|
||||
|
||||
# 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 / vertical orientation
|
||||
bindsym $mod+Shift+v split h
|
||||
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+Shift+w 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
|
||||
|
||||
# The middle button over a titlebar kills the window
|
||||
bindsym --release button2 kill
|
||||
|
||||
# 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+Ctrl+1 move container to workspace number $ws1
|
||||
bindsym $mod+Ctrl+2 move container to workspace number $ws2
|
||||
bindsym $mod+Ctrl+3 move container to workspace number $ws3
|
||||
bindsym $mod+Ctrl+4 move container to workspace number $ws4
|
||||
bindsym $mod+Ctrl+5 move container to workspace number $ws5
|
||||
bindsym $mod+Ctrl+6 move container to workspace number $ws6
|
||||
bindsym $mod+Ctrl+7 move container to workspace number $ws7
|
||||
bindsym $mod+Ctrl+8 move container to workspace number $ws8
|
||||
bindsym $mod+Ctrl+9 move container to workspace number $ws9
|
||||
bindsym $mod+Ctrl+0 move container to workspace number $ws10
|
||||
|
||||
# move focused container to workspace and follow
|
||||
bindsym $mod+Shift+1 move container to workspace number $ws1; workspace $ws1
|
||||
bindsym $mod+Shift+2 move container to workspace number $ws2; workspace $ws2
|
||||
bindsym $mod+Shift+3 move container to workspace number $ws3; workspace $ws3
|
||||
bindsym $mod+Shift+4 move container to workspace number $ws4; workspace $ws4
|
||||
bindsym $mod+Shift+5 move container to workspace number $ws5; workspace $ws5
|
||||
bindsym $mod+Shift+6 move container to workspace number $ws6; workspace $ws6
|
||||
bindsym $mod+Shift+7 move container to workspace number $ws7; workspace $ws7
|
||||
bindsym $mod+Shift+8 move container to workspace number $ws8; workspace $ws8
|
||||
bindsym $mod+Shift+9 move container to workspace number $ws9; workspace $ws9
|
||||
bindsym $mod+Shift+0 move container to workspace number $ws10; workspace $ws10
|
||||
|
||||
# Monitor config
|
||||
set $monitor_left "HDMI-1"
|
||||
set $monitor_right "eDP-1"
|
||||
|
||||
workspace $ws1 output $monitor_left
|
||||
workspace $ws2 output $monitor_left
|
||||
workspace $ws3 output $monitor_left
|
||||
workspace $ws4 output $monitor_left
|
||||
workspace $ws5 output $monitor_left
|
||||
workspace $ws6 output $monitor_right
|
||||
workspace $ws7 output $monitor_right
|
||||
workspace $ws8 output $monitor_right
|
||||
workspace $ws9 output $monitor_right
|
||||
workspace $ws10 output $monitor_right
|
||||
|
||||
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||
bindsym $mod+Shift+r restart
|
||||
|
||||
# resize window (you can also use the mouse for that)
|
||||
mode "resize" {
|
||||
# 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 10 px or 10 ppt
|
||||
bindsym j resize grow height 10 px or 10 ppt
|
||||
bindsym k resize shrink height 10 px or 10 ppt
|
||||
bindsym l 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"
|
||||
|
||||
bar {
|
||||
font pango:DejaVu Sans Mono, Font Awesome 15
|
||||
status_command i3status-rs
|
||||
position bottom
|
||||
|
||||
tray_output eDP-1
|
||||
}
|
||||
|
||||
|
||||
set $mode_system System (l) lock, (e) logout, (r) reboot, (s) shutdown
|
||||
mode "$mode_system" {
|
||||
bindsym l exec --no-startup-id $lock, mode "default"
|
||||
# logout
|
||||
bindsym e exec --no-startup-id i3-msg exit, mode "default"
|
||||
bindsym r exec --no-startup-id systemctl reboot, mode "default"
|
||||
bindsym s exec --no-startup-id systemctl poweroff, mode "default"
|
||||
bindsym h exec --no-startup-id $lock && systemctl hibernate, mode "default"
|
||||
bindsym Shift+s exec --no-startup-id $lock && systemctl suspend, mode "default"
|
||||
|
||||
# back to normal: Enter or Escape
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
bindsym $mod+Shift+e mode "$mode_system"
|
||||
|
||||
bindsym $mod+Tab exec --no-startup-id $lock
|
||||
|
||||
bindsym $mod+Print exec --no-startup-id "xfce4-screenshooter"
|
||||
|
||||
bindsym $mod+c exec qalculate-gtk
|
||||
bindsym $mod+Shift+p exec xwacomcalibrate
|
||||
bindsym $mod+e exec pcmanfm
|
||||
bindsym $mod+b exec firefox
|
||||
bindsym $mod+p exec $scripts/display-toggle-mirror
|
||||
|
||||
workspace_auto_back_and_forth yes
|
||||
|
||||
# default_border pixel
|
||||
default_border normal
|
||||
default_floating_border normal
|
||||
hide_edge_borders smart
|
||||
|
||||
show_marks no
|
||||
|
||||
# switch to workspace with urgent window automatically
|
||||
for_window [urgent=latest] focus
|
||||
|
||||
focus_on_window_activation focus
|
||||
|
||||
assign [class="firefox" title="Mozilla Firefox$"] workspace $ws1
|
||||
assign [class="TelegramDesktop"] workspace $ws9
|
||||
assign [class="Signal"] workspace $ws9
|
||||
assign [class="Rocket.Chat"] workspace $ws9
|
||||
assign [class="Element"] workspace $ws9
|
||||
assign [class="SchildiChat"] workspace $ws9
|
||||
assign [class="nheko"] workspace $ws9
|
||||
assign [class="thunderbird"] workspace $ws10
|
||||
# assign [class="zoom"] workspace $ws5
|
||||
assign [class="Zotero"] workspace $ws8
|
||||
|
||||
for_window [class="firefox" urgent="latest"] focus
|
||||
|
||||
for_window [title="Manjaro Settings Manager"] floating enable
|
||||
for_window [class="pamac-manager"] floating enable
|
||||
for_window [class="Pamac-updater"] floating enable
|
||||
for_window [class="Qalculate-gtk"] floating enable
|
||||
for_window [class="Gcolor3"] floating enable
|
||||
#for_window [class="zoom" title="Chat"] floating enable
|
||||
#for_window [class="Thunderbird" instance="Msgcompose"] floating enable
|
||||
#
|
||||
for_window [window_role=floating] floating enable
|
||||
|
||||
for_window [class="Viewnior"] border normal
|
||||
|
||||
########## Autostart applications ##########
|
||||
exec firefox
|
||||
|
||||
# exec --no-startup-id nm-applet
|
||||
# exec --no-startup-id blueman-applet
|
||||
# exec --no-startup-id nextcloud --background
|
||||
# exec --no-startup-id xfce4-screensaver
|
||||
# exec --no-startup-id /usr/bin/emacs --daemon
|
||||
|
||||
# Authentication agent
|
||||
# exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||
# exec --no-startup-id /usr/bin/env gnome-keyring-daemon --start
|
||||
|
||||
# Notify about software updates
|
||||
# exec --no-startup-id pamac-tray
|
||||
# exec --no-startup-id clipit
|
||||
# exec --no-startup-id xfce4-clipman
|
||||
|
||||
# Notify about kernel updates
|
||||
# exec --no-startup-id msm_notifier
|
||||
|
||||
# Audio
|
||||
# exec --no-startup-id start-pulseaudio-x11
|
||||
# exec --no-startup-id pa-applet
|
||||
|
||||
# Background
|
||||
exec --no-startup-id nitrogen --restore
|
||||
|
||||
# Adjust display temperature
|
||||
# exec --no-startup-id redshift
|
||||
|
||||
# Notifications
|
||||
# exec --no-startup-id /usr/lib/xfce4/notifyd/xfce4-notifyd
|
||||
|
||||
# exec --no-startup-id xautolock -time 10 -locker blurlock
|
||||
# exec_always --no-startup-id ff-theme-util
|
||||
# exec_always --no-startup-id fix_xcursor
|
||||
|
||||
exec_always --no-startup-id "$scripts/display-layoutpicker"
|
||||
|
||||
|
||||
#############################
|
||||
### settings for i3-gaps: ###
|
||||
#############################
|
||||
|
||||
# Set inner/outer gaps
|
||||
gaps inner 8
|
||||
gaps outer -2
|
||||
|
||||
# Smart gaps (gaps used if only more than one container on the workspace)
|
||||
smart_gaps on
|
||||
|
||||
# Smart borders (draw borders around container only if it is not the only container on this workspace)
|
||||
smart_borders on
|
314
modules/home-manager/i3/i3/config-kardorf
Normal file
314
modules/home-manager/i3/i3/config-kardorf
Normal file
@ -0,0 +1,314 @@
|
||||
# i3 config file (v4)
|
||||
#
|
||||
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
|
||||
|
||||
set $mod Mod4
|
||||
set $scripts ~/.config/i3/scripts
|
||||
set $lock "i3lock --ignore-empty-password --color=000000"
|
||||
|
||||
# Font for window titles
|
||||
font pango:FuraCode Nerd Font 12
|
||||
|
||||
# xss-lock grabs a logind suspend inhibit lock and will use $lock to lock the
|
||||
# screen before suspend. Use loginctl lock-session to lock your screen.
|
||||
exec --no-startup-id xss-lock --transfer-sleep-lock -- $lock --nofork
|
||||
|
||||
# Screen brightness controls
|
||||
# bindsym XF86MonBrightnessUp exec "xbacklight -inc 10; notify-send 'brightness up'"
|
||||
# bindsym XF86MonBrightnessDown exec "xbacklight -dec 10; notify-send 'brightness down'"
|
||||
|
||||
# Use pactl to adjust volume in PulseAudio.
|
||||
# set $refresh_i3status killall -SIGUSR1 i3status
|
||||
set $refresh_i3blocks pkill -RTMIN+1 i3blocks
|
||||
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3blocks
|
||||
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3blocks
|
||||
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3blocks
|
||||
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3blocks
|
||||
|
||||
# Use Mouse+$mod to drag floating windows to their wanted position
|
||||
floating_modifier $mod
|
||||
|
||||
# start a terminal
|
||||
bindsym $mod+Return exec kitty
|
||||
|
||||
# kill focused window
|
||||
bindsym $mod+Shift+q kill
|
||||
bindsym $mod+x kill
|
||||
|
||||
# Simulates alt+f4
|
||||
bindsym Mod1+F4 kill
|
||||
|
||||
# start program launcher
|
||||
bindsym $mod+d exec rofi -show run
|
||||
|
||||
# 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 / vertical orientation
|
||||
bindsym $mod+Shift+v split h
|
||||
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+Shift+w 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
|
||||
|
||||
# The middle button over a titlebar kills the window
|
||||
bindsym --release button2 kill
|
||||
|
||||
# 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+Ctrl+1 move container to workspace number $ws1
|
||||
bindsym $mod+Ctrl+2 move container to workspace number $ws2
|
||||
bindsym $mod+Ctrl+3 move container to workspace number $ws3
|
||||
bindsym $mod+Ctrl+4 move container to workspace number $ws4
|
||||
bindsym $mod+Ctrl+5 move container to workspace number $ws5
|
||||
bindsym $mod+Ctrl+6 move container to workspace number $ws6
|
||||
bindsym $mod+Ctrl+7 move container to workspace number $ws7
|
||||
bindsym $mod+Ctrl+8 move container to workspace number $ws8
|
||||
bindsym $mod+Ctrl+9 move container to workspace number $ws9
|
||||
bindsym $mod+Ctrl+0 move container to workspace number $ws10
|
||||
|
||||
# move focused container to workspace and follow
|
||||
bindsym $mod+Shift+1 move container to workspace number $ws1; workspace $ws1
|
||||
bindsym $mod+Shift+2 move container to workspace number $ws2; workspace $ws2
|
||||
bindsym $mod+Shift+3 move container to workspace number $ws3; workspace $ws3
|
||||
bindsym $mod+Shift+4 move container to workspace number $ws4; workspace $ws4
|
||||
bindsym $mod+Shift+5 move container to workspace number $ws5; workspace $ws5
|
||||
bindsym $mod+Shift+6 move container to workspace number $ws6; workspace $ws6
|
||||
bindsym $mod+Shift+7 move container to workspace number $ws7; workspace $ws7
|
||||
bindsym $mod+Shift+8 move container to workspace number $ws8; workspace $ws8
|
||||
bindsym $mod+Shift+9 move container to workspace number $ws9; workspace $ws9
|
||||
bindsym $mod+Shift+0 move container to workspace number $ws10; workspace $ws10
|
||||
|
||||
# Monitor config
|
||||
set $monitor_left "DVI-D-0"
|
||||
set $monitor_right "DVI-D-1"
|
||||
|
||||
workspace $ws1 output $monitor_left
|
||||
workspace $ws2 output $monitor_left
|
||||
workspace $ws3 output $monitor_left
|
||||
workspace $ws4 output $monitor_left
|
||||
workspace $ws5 output $monitor_left
|
||||
workspace $ws6 output $monitor_right
|
||||
workspace $ws7 output $monitor_right
|
||||
workspace $ws8 output $monitor_right
|
||||
workspace $ws9 output $monitor_right
|
||||
workspace $ws10 output $monitor_right
|
||||
|
||||
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||
bindsym $mod+Shift+r restart
|
||||
|
||||
# resize window (you can also use the mouse for that)
|
||||
mode "resize" {
|
||||
# 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 10 px or 10 ppt
|
||||
bindsym j resize grow height 10 px or 10 ppt
|
||||
bindsym k resize shrink height 10 px or 10 ppt
|
||||
bindsym l 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"
|
||||
|
||||
bar {
|
||||
font pango:DejaVu Sans Mono, Font Awesome 15
|
||||
status_command i3status-rs
|
||||
position bottom
|
||||
|
||||
tray_output DVI-D-0
|
||||
}
|
||||
|
||||
|
||||
set $mode_system System (l) lock, (e) logout, (r) reboot, (s) shutdown
|
||||
mode "$mode_system" {
|
||||
bindsym l exec --no-startup-id $lock, mode "default"
|
||||
bindsym e exec --no-startup-id i3-msg exit, mode "default" # logout
|
||||
bindsym r exec --no-startup-id systemctl reboot, mode "default"
|
||||
bindsym s exec --no-startup-id systemctl poweroff, mode "default"
|
||||
bindsym h exec --no-startup-id $lock && systemctl hibernate, mode "default"
|
||||
bindsym Shift+s exec --no-startup-id $lock && systemctl suspend, mode "default"
|
||||
|
||||
# back to normal: Enter or Escape
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
bindsym $mod+Shift+e mode "$mode_system"
|
||||
|
||||
bindsym $mod+Tab exec --no-startup-id $lock
|
||||
|
||||
bindsym $mod+Print exec --no-startup-id "xfce4-screenshooter"
|
||||
|
||||
bindsym $mod+c exec qalculate-gtk
|
||||
bindsym $mod+Shift+p exec xwacomcalibrate
|
||||
bindsym $mod+e exec pcmanfm
|
||||
bindsym $mod+Shift+c exec $scripts/jupyter-calculator
|
||||
bindsym $mod+b exec firefox
|
||||
bindsym $mod+p exec $scripts/display-toggle-mirror
|
||||
|
||||
workspace_auto_back_and_forth yes
|
||||
|
||||
# default_border pixel
|
||||
default_border normal
|
||||
default_floating_border normal
|
||||
hide_edge_borders smart
|
||||
|
||||
show_marks no
|
||||
|
||||
# switch to workspace with urgent window automatically
|
||||
for_window [urgent=latest] focus
|
||||
|
||||
focus_on_window_activation focus
|
||||
|
||||
assign [class="firefox" title="Mozilla Firefox$"] workspace $ws1
|
||||
assign [class="TelegramDesktop"] workspace $ws9
|
||||
assign [class="Signal"] workspace $ws9
|
||||
assign [class="Rocket.Chat"] workspace $ws9
|
||||
assign [class="Element"] workspace $ws9
|
||||
assign [class="SchildiChat"] workspace $ws9
|
||||
assign [class="thunderbird"] workspace $ws10
|
||||
# assign [class="zoom"] workspace $ws5
|
||||
assign [class="Zotero"] workspace $ws8
|
||||
|
||||
for_window [class="firefox" urgent="latest"] focus
|
||||
|
||||
for_window [title="Manjaro Settings Manager"] floating enable
|
||||
for_window [class="pamac-manager"] floating enable
|
||||
for_window [class="Pamac-updater"] floating enable
|
||||
for_window [class="Qalculate-gtk"] floating enable
|
||||
for_window [class="Gcolor3"] floating enable
|
||||
#for_window [class="zoom" title="Chat"] floating enable
|
||||
#for_window [class="Thunderbird" instance="Msgcompose"] floating enable
|
||||
#
|
||||
for_window [window_role=floating] floating enable
|
||||
|
||||
for_window [class="Viewnior"] border normal
|
||||
|
||||
########## Autostart applications ##########
|
||||
exec firefox
|
||||
|
||||
exec --no-startup-id nm-applet
|
||||
exec --no-startup-id blueman-applet
|
||||
exec --no-startup-id xfce4-power-manager
|
||||
exec --no-startup-id nextcloud --background
|
||||
# exec --no-startup-id xfce4-screensaver
|
||||
# exec --no-startup-id /usr/bin/emacs --daemon
|
||||
|
||||
# Authentication agent
|
||||
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||
exec --no-startup-id /usr/bin/env gnome-keyring-daemon --start
|
||||
|
||||
# Notify about software updates
|
||||
exec --no-startup-id pamac-tray
|
||||
exec --no-startup-id clipit
|
||||
# exec --no-startup-id xfce4-clipman
|
||||
|
||||
# Notify about kernel updates
|
||||
exec --no-startup-id msm_notifier
|
||||
|
||||
# Audio
|
||||
exec --no-startup-id start-pulseaudio-x11
|
||||
exec --no-startup-id pa-applet
|
||||
|
||||
# Background
|
||||
exec --no-startup-id nitrogen --restore
|
||||
|
||||
# Adjust display temperature
|
||||
exec --no-startup-id redshift
|
||||
|
||||
# Notifications
|
||||
exec --no-startup-id /usr/lib/xfce4/notifyd/xfce4-notifyd
|
||||
|
||||
# exec --no-startup-id xautolock -time 10 -locker blurlock
|
||||
exec_always --no-startup-id ff-theme-util
|
||||
exec_always --no-startup-id fix_xcursor
|
||||
|
||||
exec_always --no-startup-id "$scripts/display-layoutpicker"
|
||||
|
||||
|
||||
#############################
|
||||
### settings for i3-gaps: ###
|
||||
#############################
|
||||
|
||||
# Set inner/outer gaps
|
||||
gaps inner 8
|
||||
gaps outer -2
|
||||
|
||||
# Smart gaps (gaps used if only more than one container on the workspace)
|
||||
smart_gaps on
|
||||
|
||||
# Smart borders (draw borders around container only if it is not the only container on this workspace)
|
||||
smart_borders on
|
415
modules/home-manager/i3/i3/manjaro-default-config
Normal file
415
modules/home-manager/i3/i3/manjaro-default-config
Normal file
@ -0,0 +1,415 @@
|
||||
# i3 config file (v4)
|
||||
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
|
||||
|
||||
# Set mod key (Mod1=<Alt>, Mod4=<Super>)
|
||||
set $mod Mod4
|
||||
|
||||
# set default desktop layout (default is tiling)
|
||||
# workspace_layout tabbed <stacking|tabbed>
|
||||
|
||||
# Configure border style <normal|1pixel|pixel xx|none|pixel>
|
||||
default_border pixel 1
|
||||
default_floating_border normal
|
||||
|
||||
# Hide borders
|
||||
hide_edge_borders none
|
||||
|
||||
# change borders
|
||||
bindsym $mod+u border none
|
||||
bindsym $mod+y border pixel 1
|
||||
bindsym $mod+n border normal
|
||||
|
||||
# Font for window titles. Will also be used by the bar unless a different font
|
||||
# is used in the bar {} block below.
|
||||
font xft:URWGothic-Book 11
|
||||
|
||||
# Use Mouse+$mod to drag floating windows
|
||||
floating_modifier $mod
|
||||
|
||||
# start a terminal
|
||||
bindsym $mod+Return exec terminal
|
||||
|
||||
# kill focused window
|
||||
bindsym $mod+Shift+q kill
|
||||
|
||||
# start program launcher
|
||||
bindsym $mod+d exec --no-startup-id dmenu_recency
|
||||
|
||||
# launch categorized menu
|
||||
bindsym $mod+z exec --no-startup-id morc_menu
|
||||
|
||||
################################################################################################
|
||||
## sound-section - DO NOT EDIT if you wish to automatically upgrade Alsa -> Pulseaudio later! ##
|
||||
################################################################################################
|
||||
|
||||
#exec --no-startup-id volumeicon
|
||||
#bindsym $mod+Ctrl+m exec terminal -e 'alsamixer'
|
||||
exec --no-startup-id start-pulseaudio-x11
|
||||
exec --no-startup-id pa-applet
|
||||
bindsym $mod+Ctrl+m exec pavucontrol
|
||||
|
||||
################################################################################################
|
||||
|
||||
# Screen brightness controls
|
||||
# bindsym XF86MonBrightnessUp exec "xbacklight -inc 10; notify-send 'brightness up'"
|
||||
# bindsym XF86MonBrightnessDown exec "xbacklight -dec 10; notify-send 'brightness down'"
|
||||
|
||||
# Start Applications
|
||||
bindsym $mod+Ctrl+b exec terminal -e 'bmenu'
|
||||
bindsym $mod+F2 exec palemoon
|
||||
bindsym $mod+F3 exec pcmanfm
|
||||
# bindsym $mod+F3 exec ranger
|
||||
bindsym $mod+Shift+F3 exec pcmanfm_pkexec
|
||||
bindsym $mod+F5 exec terminal -e 'mocp'
|
||||
bindsym $mod+t exec --no-startup-id pkill picom
|
||||
bindsym $mod+Ctrl+t exec --no-startup-id picom -b
|
||||
bindsym $mod+Shift+d --release exec "killall dunst; exec notify-send 'restart dunst'"
|
||||
bindsym Print exec --no-startup-id i3-scrot
|
||||
bindsym $mod+Print --release exec --no-startup-id i3-scrot -w
|
||||
bindsym $mod+Shift+Print --release exec --no-startup-id i3-scrot -s
|
||||
bindsym $mod+Shift+h exec xdg-open /usr/share/doc/manjaro/i3_help.pdf
|
||||
bindsym $mod+Ctrl+x --release exec --no-startup-id xkill
|
||||
|
||||
# focus_follows_mouse no
|
||||
|
||||
# change focus
|
||||
bindsym $mod+j focus left
|
||||
bindsym $mod+k focus down
|
||||
bindsym $mod+l focus up
|
||||
bindsym $mod+semicolon 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+j move left
|
||||
bindsym $mod+Shift+k move down
|
||||
bindsym $mod+Shift+l move up
|
||||
bindsym $mod+Shift+semicolon 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
|
||||
|
||||
# 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
|
||||
|
||||
# split orientation
|
||||
bindsym $mod+h split h;exec notify-send 'tile horizontally'
|
||||
bindsym $mod+v split v;exec notify-send 'tile vertically'
|
||||
bindsym $mod+q split toggle
|
||||
|
||||
# toggle 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
|
||||
|
||||
# toggle sticky
|
||||
bindsym $mod+Shift+s sticky toggle
|
||||
|
||||
# focus the parent container
|
||||
bindsym $mod+a focus parent
|
||||
|
||||
# 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
|
||||
|
||||
#navigate workspaces next / previous
|
||||
bindsym $mod+Ctrl+Right workspace next
|
||||
bindsym $mod+Ctrl+Left workspace prev
|
||||
|
||||
# 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
|
||||
|
||||
# switch to workspace
|
||||
bindsym $mod+1 workspace $ws1
|
||||
bindsym $mod+2 workspace $ws2
|
||||
bindsym $mod+3 workspace $ws3
|
||||
bindsym $mod+4 workspace $ws4
|
||||
bindsym $mod+5 workspace $ws5
|
||||
bindsym $mod+6 workspace $ws6
|
||||
bindsym $mod+7 workspace $ws7
|
||||
bindsym $mod+8 workspace $ws8
|
||||
|
||||
# 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
|
||||
|
||||
# Move to workspace with focused container
|
||||
bindsym $mod+Shift+1 move container to workspace $ws1; workspace $ws1
|
||||
bindsym $mod+Shift+2 move container to workspace $ws2; workspace $ws2
|
||||
bindsym $mod+Shift+3 move container to workspace $ws3; workspace $ws3
|
||||
bindsym $mod+Shift+4 move container to workspace $ws4; workspace $ws4
|
||||
bindsym $mod+Shift+5 move container to workspace $ws5; workspace $ws5
|
||||
bindsym $mod+Shift+6 move container to workspace $ws6; workspace $ws6
|
||||
bindsym $mod+Shift+7 move container to workspace $ws7; workspace $ws7
|
||||
bindsym $mod+Shift+8 move container to workspace $ws8; workspace $ws8
|
||||
|
||||
# Open applications on specific workspaces
|
||||
# assign [class="Thunderbird"] $ws1
|
||||
# assign [class="Pale moon"] $ws2
|
||||
# assign [class="Pcmanfm"] $ws3
|
||||
# assign [class="Skype"] $ws5
|
||||
|
||||
# Open specific applications in floating mode
|
||||
for_window [title="alsamixer"] floating enable border pixel 1
|
||||
for_window [class="calamares"] floating enable border normal
|
||||
for_window [class="Clipgrab"] floating enable
|
||||
for_window [title="File Transfer*"] floating enable
|
||||
for_window [class="fpakman"] floating enable
|
||||
for_window [class="Galculator"] floating enable border pixel 1
|
||||
for_window [class="GParted"] floating enable border normal
|
||||
for_window [title="i3_help"] floating enable sticky enable border normal
|
||||
for_window [class="Lightdm-settings"] floating enable
|
||||
for_window [class="Lxappearance"] floating enable sticky enable border normal
|
||||
for_window [class="Manjaro-hello"] floating enable
|
||||
for_window [class="Manjaro Settings Manager"] floating enable border normal
|
||||
for_window [title="MuseScore: Play Panel"] floating enable
|
||||
for_window [class="Nitrogen"] floating enable sticky enable border normal
|
||||
for_window [class="Oblogout"] fullscreen enable
|
||||
for_window [class="octopi"] floating enable
|
||||
for_window [title="About Pale Moon"] floating enable
|
||||
for_window [class="Pamac-manager"] floating enable
|
||||
for_window [class="Pavucontrol"] floating enable
|
||||
for_window [class="qt5ct"] floating enable sticky enable border normal
|
||||
for_window [class="Qtconfig-qt4"] floating enable sticky enable border normal
|
||||
for_window [class="Simple-scan"] floating enable border normal
|
||||
for_window [class="(?i)System-config-printer.py"] floating enable border normal
|
||||
for_window [class="Skype"] floating enable border normal
|
||||
for_window [class="Timeset-gui"] floating enable border normal
|
||||
for_window [class="(?i)virtualbox"] floating enable border normal
|
||||
for_window [class="Xfburn"] floating enable
|
||||
|
||||
# switch to workspace with urgent window automatically
|
||||
for_window [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)
|
||||
bindsym $mod+Shift+r restart
|
||||
|
||||
# Set shut down, restart and locking features
|
||||
bindsym $mod+Shift+e mode "$mode_system"
|
||||
set $mode_system (l)ock, (e)xit, switch_(u)ser, (s)uspend, (h)ibernate, (r)eboot, (Shift+s)hutdown
|
||||
mode "$mode_system" {
|
||||
bindsym l exec --no-startup-id i3exit lock, mode "default"
|
||||
bindsym s exec --no-startup-id i3exit suspend, mode "default"
|
||||
bindsym u exec --no-startup-id i3exit switch_user, mode "default"
|
||||
bindsym e exec --no-startup-id i3exit logout, mode "default"
|
||||
bindsym h exec --no-startup-id i3exit hibernate, mode "default"
|
||||
bindsym r exec --no-startup-id i3exit reboot, mode "default"
|
||||
bindsym Shift+s exec --no-startup-id i3exit shutdown, mode "default"
|
||||
|
||||
# exit system mode: "Enter" or "Escape"
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
|
||||
# Resize window (you can also use the mouse for that)
|
||||
bindsym $mod+r mode "resize"
|
||||
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 j resize shrink width 5 px or 5 ppt
|
||||
bindsym k resize grow height 5 px or 5 ppt
|
||||
bindsym l resize shrink height 5 px or 5 ppt
|
||||
bindsym semicolon resize grow width 5 px or 5 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
|
||||
|
||||
# exit resize mode: Enter or Escape
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
|
||||
# Lock screen
|
||||
bindsym $mod+9 exec --no-startup-id blurlock
|
||||
|
||||
# Autostart applications
|
||||
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||
exec --no-startup-id nitrogen --restore; sleep 1; picom -b
|
||||
exec --no-startup-id manjaro-hello
|
||||
exec --no-startup-id nm-applet
|
||||
exec --no-startup-id xfce4-power-manager
|
||||
exec --no-startup-id pamac-tray
|
||||
exec --no-startup-id clipit
|
||||
exec --no-startup-id blueman-applet
|
||||
# exec_always --no-startup-id sbxkb
|
||||
exec --no-startup-id start_conky_maia
|
||||
# exec --no-startup-id start_conky_green
|
||||
exec --no-startup-id xautolock -time 10 -locker blurlock
|
||||
exec_always --no-startup-id ff-theme-util
|
||||
exec_always --no-startup-id fix_xcursor
|
||||
|
||||
# Color palette used for the terminal ( ~/.Xresources file )
|
||||
# Colors are gathered based on the documentation:
|
||||
# https://i3wm.org/docs/userguide.html#xresources
|
||||
# Change the variable name at the place you want to match the color
|
||||
# of your terminal like this:
|
||||
# [example]
|
||||
# If you want your bar to have the same background color as your
|
||||
# terminal background change the line 362 from:
|
||||
# background #14191D
|
||||
# to:
|
||||
# background $term_background
|
||||
# Same logic applied to everything else.
|
||||
set_from_resource $term_background background
|
||||
set_from_resource $term_foreground foreground
|
||||
set_from_resource $term_color0 color0
|
||||
set_from_resource $term_color1 color1
|
||||
set_from_resource $term_color2 color2
|
||||
set_from_resource $term_color3 color3
|
||||
set_from_resource $term_color4 color4
|
||||
set_from_resource $term_color5 color5
|
||||
set_from_resource $term_color6 color6
|
||||
set_from_resource $term_color7 color7
|
||||
set_from_resource $term_color8 color8
|
||||
set_from_resource $term_color9 color9
|
||||
set_from_resource $term_color10 color10
|
||||
set_from_resource $term_color11 color11
|
||||
set_from_resource $term_color12 color12
|
||||
set_from_resource $term_color13 color13
|
||||
set_from_resource $term_color14 color14
|
||||
set_from_resource $term_color15 color15
|
||||
|
||||
# Start i3bar to display a workspace bar (plus the system information i3status if available)
|
||||
bar {
|
||||
i3bar_command i3bar
|
||||
status_command i3status
|
||||
position bottom
|
||||
|
||||
## please set your primary output first. Example: 'xrandr --output eDP1 --primary'
|
||||
# tray_output primary
|
||||
# tray_output eDP1
|
||||
|
||||
bindsym button4 nop
|
||||
bindsym button5 nop
|
||||
# font xft:URWGothic-Book 11
|
||||
strip_workspace_numbers yes
|
||||
|
||||
colors {
|
||||
background #222D31
|
||||
statusline #F9FAF9
|
||||
separator #454947
|
||||
|
||||
# border backgr. text
|
||||
focused_workspace #F9FAF9 #16a085 #292F34
|
||||
active_workspace #595B5B #353836 #FDF6E3
|
||||
inactive_workspace #595B5B #222D31 #EEE8D5
|
||||
binding_mode #16a085 #2C2C2C #F9FAF9
|
||||
urgent_workspace #16a085 #FDF6E3 #E5201D
|
||||
}
|
||||
}
|
||||
|
||||
# hide/unhide i3status bar
|
||||
bindsym $mod+m bar mode toggle
|
||||
|
||||
# Theme colors
|
||||
# class border backgr. text indic. child_border
|
||||
client.focused #556064 #556064 #80FFF9 #FDF6E3
|
||||
client.focused_inactive #2F3D44 #2F3D44 #1ABC9C #454948
|
||||
client.unfocused #2F3D44 #2F3D44 #1ABC9C #454948
|
||||
client.urgent #CB4B16 #FDF6E3 #1ABC9C #268BD2
|
||||
client.placeholder #000000 #0c0c0c #ffffff #000000
|
||||
|
||||
client.background #2B2C2B
|
||||
|
||||
#############################
|
||||
### settings for i3-gaps: ###
|
||||
#############################
|
||||
|
||||
# Set inner/outer gaps
|
||||
gaps inner 14
|
||||
gaps outer -2
|
||||
|
||||
# Additionally, you can issue commands with the following syntax. This is useful to bind keys to changing the gap size.
|
||||
# gaps inner|outer current|all set|plus|minus <px>
|
||||
# gaps inner all set 10
|
||||
# gaps outer all plus 5
|
||||
|
||||
# Smart gaps (gaps used if only more than one container on the workspace)
|
||||
smart_gaps on
|
||||
|
||||
# Smart borders (draw borders around container only if it is not the only container on this workspace)
|
||||
# on|no_gaps (on=always activate and no_gaps=only activate if the gap size to the edge of the screen is 0)
|
||||
smart_borders on
|
||||
|
||||
# Press $mod+Shift+g to enter the gap mode. Choose o or i for modifying outer/inner gaps. Press one of + / - (in-/decrement for current workspace) or 0 (remove gaps for current workspace). If you also press Shift with these keys, the change will be global for all workspaces.
|
||||
set $mode_gaps Gaps: (o) outer, (i) inner
|
||||
set $mode_gaps_outer Outer Gaps: +|-|0 (local), Shift + +|-|0 (global)
|
||||
set $mode_gaps_inner Inner Gaps: +|-|0 (local), Shift + +|-|0 (global)
|
||||
bindsym $mod+Shift+g mode "$mode_gaps"
|
||||
|
||||
mode "$mode_gaps" {
|
||||
bindsym o mode "$mode_gaps_outer"
|
||||
bindsym i mode "$mode_gaps_inner"
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
mode "$mode_gaps_inner" {
|
||||
bindsym plus gaps inner current plus 5
|
||||
bindsym minus gaps inner current minus 5
|
||||
bindsym 0 gaps inner current set 0
|
||||
|
||||
bindsym Shift+plus gaps inner all plus 5
|
||||
bindsym Shift+minus gaps inner all minus 5
|
||||
bindsym Shift+0 gaps inner all set 0
|
||||
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
mode "$mode_gaps_outer" {
|
||||
bindsym plus gaps outer current plus 5
|
||||
bindsym minus gaps outer current minus 5
|
||||
bindsym 0 gaps outer current set 0
|
||||
|
||||
bindsym Shift+plus gaps outer all plus 5
|
||||
bindsym Shift+minus gaps outer all minus 5
|
||||
bindsym Shift+0 gaps outer all set 0
|
||||
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
11
modules/home-manager/i3/i3/scripts/display-layoutpicker
Executable file
11
modules/home-manager/i3/i3/scripts/display-layoutpicker
Executable file
@ -0,0 +1,11 @@
|
||||
#!/bin/sh
|
||||
|
||||
xrandr | grep -q "HDMI-1 connected"
|
||||
|
||||
if [ "$?" -eq "0" ]; then
|
||||
echo "Two screens available"
|
||||
~/.screenlayout/twoscreens.sh
|
||||
else
|
||||
echo "Only one screen available"
|
||||
~/.screenlayout/onescreen.sh
|
||||
fi
|
21
modules/home-manager/i3/i3/scripts/display-toggle-mirror
Executable file
21
modules/home-manager/i3/i3/scripts/display-toggle-mirror
Executable file
@ -0,0 +1,21 @@
|
||||
#!/bin/sh
|
||||
|
||||
xrandr | grep -q "HDMI-1 connected"
|
||||
|
||||
if [ "$?" -eq "0" ]; then
|
||||
echo "Two screens available"
|
||||
|
||||
MIRROR_FILE=~/.screenlayout/mirror-primary
|
||||
if [ -e "$MIRROR_FILE" ]; then
|
||||
echo "Mode set to mirror"
|
||||
rm "$MIRROR_FILE"
|
||||
~/.screenlayout/twoscreens-mirror.sh
|
||||
else
|
||||
echo "Mode set to left-right"
|
||||
touch "$MIRROR_FILE"
|
||||
~/.screenlayout/twoscreens.sh
|
||||
fi
|
||||
else
|
||||
echo "Only one screen available"
|
||||
~/.screenlayout/onescreen.sh
|
||||
fi
|
78
modules/home-manager/i3/i3/scripts/jupyter-calculator
Executable file
78
modules/home-manager/i3/i3/scripts/jupyter-calculator
Executable file
@ -0,0 +1,78 @@
|
||||
#!/bin/python3
|
||||
|
||||
import subprocess
|
||||
import time
|
||||
import psutil
|
||||
|
||||
NOTEBOOK_DIR = "~/jupyter-notebooks/"
|
||||
PORT = "8988"
|
||||
|
||||
def isOtherProcessRunning():
|
||||
process_count = 0
|
||||
for proc in psutil.process_iter():
|
||||
try:
|
||||
pinfo = proc.as_dict(attrs=['pid', 'name', 'create_time'])
|
||||
if "jupyter-calc" in pinfo['name'].lower():
|
||||
process_count += 1
|
||||
except (psutil.NoSuchProcess, psutil.AccessDenied , psutil.ZombieProcess) :
|
||||
pass
|
||||
return process_count > 1
|
||||
|
||||
def getNotebookPort(line):
|
||||
url = line.split(" :: ")[0]
|
||||
return url.split("localhost:")[1].split("/")[0]
|
||||
|
||||
def getNotebookToken(line):
|
||||
url = line.split(" :: ")[0]
|
||||
return url.split("token=")[1]
|
||||
|
||||
|
||||
def isNotebookRunning():
|
||||
answer = subprocess.check_output("jupyter notebook list", shell=True)
|
||||
lines = answer.decode("utf-8").split("\n")
|
||||
if lines[0] != "Currently running servers:":
|
||||
raise Exception("Invalid jupyter status message")
|
||||
|
||||
for i in range(1, len(lines) -1):
|
||||
if getNotebookPort(lines[i]) == PORT:
|
||||
return getNotebookToken(lines[i])
|
||||
return None
|
||||
|
||||
if __name__ == "__main__":
|
||||
try:
|
||||
if not isNotebookRunning():
|
||||
print("No notebook instance running. Starting it...")
|
||||
subprocess.Popen(f"jupyter notebook --notebook-dir={NOTEBOOK_DIR} --port={PORT} --no-browser", shell=True)
|
||||
else:
|
||||
print("Notebook instance already running.")
|
||||
|
||||
max_wait_seconds = 3
|
||||
delta_t_seconds = 0.1
|
||||
|
||||
current_wait_seconds = 0
|
||||
|
||||
token = ""
|
||||
while True:
|
||||
token = isNotebookRunning()
|
||||
if token:
|
||||
break
|
||||
|
||||
time.sleep(delta_t_seconds)
|
||||
current_wait_seconds += delta_t_seconds
|
||||
if current_wait_seconds >= max_wait_seconds:
|
||||
raise Exception(f"Maximum wait time of {max_wait_seconds} exceeded!")
|
||||
|
||||
subprocess.call(f"cp {NOTEBOOK_DIR}calculator_template.ipynb {NOTEBOOK_DIR}calculator.ipynb", shell=True)
|
||||
|
||||
# url = f"http://localhost:{PORT}/notebooks/calculator.ipynb?token={token}"
|
||||
url = f"http://localhost:{PORT}/?token={token}"
|
||||
|
||||
subprocess.call(f"$BROWSER '{url}'", shell=True)
|
||||
|
||||
finally:
|
||||
# TODO: not reliably working
|
||||
if not isOtherProcessRunning():
|
||||
try:
|
||||
subprocess.run(f"jupyter notebook stop {PORT}", shell=True)
|
||||
except Exception:
|
||||
pass
|
3
modules/home-manager/i3/i3/scripts/mymatlab.sh
Executable file
3
modules/home-manager/i3/i3/scripts/mymatlab.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
matlab -desktop -sd ~/dev/bachelor-thesis/simulation
|
27
modules/home-manager/i3/i3/scripts/open-messaging
Executable file
27
modules/home-manager/i3/i3/scripts/open-messaging
Executable file
@ -0,0 +1,27 @@
|
||||
#!/bin/sh
|
||||
|
||||
start_if_not_running()
|
||||
{
|
||||
program=$1
|
||||
pidof -sq $program
|
||||
if [ "$?" -eq "1" ]; then
|
||||
start_program $1
|
||||
else
|
||||
echo "$program is already running"
|
||||
fi
|
||||
}
|
||||
|
||||
start_program()
|
||||
{
|
||||
program=$1
|
||||
echo "Starting $program..."
|
||||
$program & > /dev/null
|
||||
}
|
||||
|
||||
i3-msg 'workspace 9; append_layout ~/.config/i3/workspace-messaging.json'
|
||||
start_program nheko
|
||||
sleep 0.1
|
||||
start_program telegram-desktop
|
||||
sleep 0.1
|
||||
start_program thunderbird
|
||||
sleep 0.1
|
20
modules/home-manager/i3/i3/scripts/pulse_popup
Executable file
20
modules/home-manager/i3/i3/scripts/pulse_popup
Executable file
@ -0,0 +1,20 @@
|
||||
#!/bin/sh
|
||||
|
||||
HDMI_SINK="alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_3__sink"
|
||||
LAPTOP_SINK="alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__sink"
|
||||
|
||||
HDMI_ICON=$(pactl info | grep -q $HDMI_SINK && echo "checkbox")
|
||||
LAPTOP_ICON=$(pactl info | grep -q $LAPTOP_SINK && echo "checkbox")
|
||||
|
||||
HDMI_VOLUME=$(pactl get-sink-volume $HDMI_SINK | head -n 1 | awk '{print $5}')
|
||||
LAPTOP_VOLUME=$(pactl get-sink-volume $LAPTOP_SINK | head -n 1 | awk '{print $5}')
|
||||
|
||||
read -r -d '' CONF <<EOF
|
||||
Open Pavucontrol,pavucontrol,pavucontrol
|
||||
|
||||
^sep()
|
||||
HDMI - $HDMI_VOLUME,pactl set-default-sink $HDMI_SINK,$HDMI_ICON
|
||||
Laptop - $LAPTOP_VOLUME,pactl set-default-sink $LAPTOP_SINK,$LAPTOP_ICON
|
||||
EOF
|
||||
|
||||
echo "$CONF" | jgmenu --simple
|
4
modules/home-manager/i3/i3/scripts/rofi_calc
Executable file
4
modules/home-manager/i3/i3/scripts/rofi_calc
Executable file
@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
LC_NUMERIC=en_US.utf8
|
||||
rofi -show calc -modi calc -no-show-match -no-sort -terse -calc-command "echo -n '{result}' | xclip"
|
6
modules/home-manager/i3/i3/scripts/setupZoom
Executable file
6
modules/home-manager/i3/i3/scripts/setupZoom
Executable file
@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
zoom &
|
||||
|
||||
#i3-msg "workspace --no-auto-back-and-forth 5; exec mousepad ~/Nextcloud/studium/zoom.txt"
|
||||
i3-msg "workspace --no-auto-back-and-forth 5; append_layout ~/.config/i3/workspace-zoom.json"
|
45
modules/home-manager/i3/i3/workspace-chat-element-tele.json
Normal file
45
modules/home-manager/i3/i3/workspace-chat-element-tele.json
Normal file
@ -0,0 +1,45 @@
|
||||
// vim:ts=4:sw=4:et
|
||||
{
|
||||
"border": "normal",
|
||||
"current_border_width": 2,
|
||||
"floating": "auto_off",
|
||||
"geometry": {
|
||||
"height": 996,
|
||||
"width": 937,
|
||||
"x": 1934,
|
||||
"y": 40
|
||||
},
|
||||
"marks": [],
|
||||
"name": "nheko",
|
||||
"percent": 0.5,
|
||||
"swallows": [
|
||||
{
|
||||
"class": "^nheko$"
|
||||
}
|
||||
],
|
||||
"type": "con"
|
||||
}
|
||||
|
||||
{
|
||||
"border": "none",
|
||||
"current_border_width": 2,
|
||||
"floating": "auto_off",
|
||||
"geometry": {
|
||||
"height": 1026,
|
||||
"width": 941,
|
||||
"x": 2887,
|
||||
"y": 12
|
||||
},
|
||||
"marks": [],
|
||||
"name": "Telegram",
|
||||
"percent": 0.5,
|
||||
"swallows": [
|
||||
{
|
||||
"class": "^TelegramDesktop$"
|
||||
// "instance": "^telegram\\-desktop$",
|
||||
// "machine": "^julian\\-aspi$",
|
||||
// "title": "^Telegram\\ \\(71\\)$"
|
||||
}
|
||||
],
|
||||
"type": "con"
|
||||
}
|
@ -0,0 +1,96 @@
|
||||
// vim:ts=4:sw=4:et
|
||||
{
|
||||
"border": "normal",
|
||||
"current_border_width": 2,
|
||||
"floating": "auto_off",
|
||||
"geometry": {
|
||||
"height": 996,
|
||||
"width": 937,
|
||||
"x": 1934,
|
||||
"y": 40
|
||||
},
|
||||
"marks": [],
|
||||
"name": "SchildiChat",
|
||||
"percent": 0.5,
|
||||
"swallows": [
|
||||
{
|
||||
"class": "^SchildiChat$"
|
||||
// "instance": "^schildichat$",
|
||||
// "machine": "^julian\\-aspi$",
|
||||
// "title": "^SchildiChat\\ \\*\\ \\|\\ Familie$",
|
||||
// "window_role": "^browser\\-window$"
|
||||
}
|
||||
],
|
||||
"type": "con"
|
||||
}
|
||||
|
||||
{
|
||||
// splitv split container with 2 children
|
||||
"border": "normal",
|
||||
"floating": "auto_off",
|
||||
"layout": "splitv",
|
||||
"marks": [],
|
||||
"percent": 0.5,
|
||||
"type": "con",
|
||||
"nodes": [
|
||||
{
|
||||
// splith split container with 1 children
|
||||
"border": "normal",
|
||||
"floating": "auto_off",
|
||||
"layout": "splith",
|
||||
"marks": [],
|
||||
"percent": 0.5,
|
||||
"type": "con",
|
||||
"nodes": [
|
||||
{
|
||||
"border": "none",
|
||||
"current_border_width": 2,
|
||||
"floating": "auto_off",
|
||||
"geometry": {
|
||||
"height": 1026,
|
||||
"width": 941,
|
||||
"x": 2887,
|
||||
"y": 12
|
||||
},
|
||||
"marks": [],
|
||||
"name": "Telegram",
|
||||
"percent": 1,
|
||||
"swallows": [
|
||||
{
|
||||
"class": "^TelegramDesktop$"
|
||||
// "instance": "^telegram\\-desktop$",
|
||||
// "machine": "^julian\\-aspi$",
|
||||
// "title": "^Telegram$"
|
||||
}
|
||||
],
|
||||
"type": "con"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"border": "normal",
|
||||
"current_border_width": 2,
|
||||
"floating": "auto_off",
|
||||
"geometry": {
|
||||
"height": 485,
|
||||
"width": 1904,
|
||||
"x": 1928,
|
||||
"y": 557
|
||||
},
|
||||
"marks": [],
|
||||
"name": "RocketChat",
|
||||
"percent": 0.5,
|
||||
"swallows": [
|
||||
{
|
||||
"class": "^Rocket\\.Chat$"
|
||||
// "instance": "^rocket\\.chat$",
|
||||
// "machine": "^julian\\-aspi$",
|
||||
// "title": "^ifiChat$",
|
||||
// "window_role": "^browser\\-window$"
|
||||
}
|
||||
],
|
||||
"type": "con"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
49
modules/home-manager/i3/i3/workspace-chat-schildi-tele.json
Normal file
49
modules/home-manager/i3/i3/workspace-chat-schildi-tele.json
Normal file
@ -0,0 +1,49 @@
|
||||
// vim:ts=4:sw=4:et
|
||||
{
|
||||
"border": "normal",
|
||||
"current_border_width": 2,
|
||||
"floating": "auto_off",
|
||||
"geometry": {
|
||||
"height": 996,
|
||||
"width": 937,
|
||||
"x": 1934,
|
||||
"y": 40
|
||||
},
|
||||
"marks": [],
|
||||
"name": "SchildiChat",
|
||||
"percent": 0.5,
|
||||
"swallows": [
|
||||
{
|
||||
"class": "^SchildiChat$"
|
||||
// "instance": "^schildichat$",
|
||||
// "machine": "^julian\\-aspi$",
|
||||
// "title": "^SchildiChat$",
|
||||
// "window_role": "^browser\\-window$"
|
||||
}
|
||||
],
|
||||
"type": "con"
|
||||
}
|
||||
|
||||
{
|
||||
"border": "none",
|
||||
"current_border_width": 2,
|
||||
"floating": "auto_off",
|
||||
"geometry": {
|
||||
"height": 1026,
|
||||
"width": 941,
|
||||
"x": 2887,
|
||||
"y": 12
|
||||
},
|
||||
"marks": [],
|
||||
"name": "Telegram",
|
||||
"percent": 0.5,
|
||||
"swallows": [
|
||||
{
|
||||
"class": "^TelegramDesktop$"
|
||||
// "instance": "^telegram\\-desktop$",
|
||||
// "machine": "^julian\\-aspi$",
|
||||
// "title": "^Telegram\\ \\(71\\)$"
|
||||
}
|
||||
],
|
||||
"type": "con"
|
||||
}
|
86
modules/home-manager/i3/i3/workspace-zoom.json
Normal file
86
modules/home-manager/i3/i3/workspace-zoom.json
Normal file
@ -0,0 +1,86 @@
|
||||
// vim:ts=4:sw=4:et
|
||||
{
|
||||
"border": "pixel",
|
||||
"current_border_width": 2,
|
||||
"floating": "auto_off",
|
||||
"geometry": {
|
||||
"height": 800,
|
||||
"width": 1188,
|
||||
"x": 246,
|
||||
"y": 125
|
||||
},
|
||||
"name": "Zoom Meeting",
|
||||
"percent": 0.8,
|
||||
"swallows": [
|
||||
{
|
||||
"class": "^zoom$",
|
||||
"instance": "^zoom$",
|
||||
"title": "^Zoom\\ Meeting$"
|
||||
}
|
||||
],
|
||||
"type": "con"
|
||||
}
|
||||
|
||||
{
|
||||
// splitv split container with 2 children
|
||||
"border": "pixel",
|
||||
"floating": "auto_off",
|
||||
"layout": "splitv",
|
||||
"percent": 0.2,
|
||||
"type": "con",
|
||||
"nodes": [
|
||||
{
|
||||
// splith split container with 1 children
|
||||
"border": "pixel",
|
||||
"floating": "auto_off",
|
||||
"layout": "splith",
|
||||
"percent": 0.5,
|
||||
"type": "con",
|
||||
"nodes": [
|
||||
{
|
||||
"border": "pixel",
|
||||
"current_border_width": 2,
|
||||
"floating": "auto_off",
|
||||
"geometry": {
|
||||
"height": 1002,
|
||||
"width": 220,
|
||||
"x": 1458,
|
||||
"y": 46
|
||||
},
|
||||
"name": "Participants",
|
||||
"percent": 1,
|
||||
"swallows": [
|
||||
{
|
||||
"class": "^zoom$",
|
||||
"instance": "^zoom$",
|
||||
"title": "^Participants"
|
||||
}
|
||||
],
|
||||
"type": "con"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"border": "pixel",
|
||||
"current_border_width": 2,
|
||||
"floating": "user_off",
|
||||
"geometry": {
|
||||
"height": 350,
|
||||
"width": 355,
|
||||
"x": 662,
|
||||
"y": 350
|
||||
},
|
||||
"name": "Chat",
|
||||
"percent": 0.5,
|
||||
"swallows": [
|
||||
{
|
||||
"class": "^zoom$",
|
||||
"instance": "^zoom$",
|
||||
"title": "^Chat$"
|
||||
}
|
||||
],
|
||||
"type": "con"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
47
modules/home-manager/i3/i3status-rust/config.toml
Normal file
47
modules/home-manager/i3/i3status-rust/config.toml
Normal file
@ -0,0 +1,47 @@
|
||||
[theme]
|
||||
theme = "dracula"
|
||||
|
||||
[icons]
|
||||
icons = "awesome4"
|
||||
|
||||
[[block]]
|
||||
block = "disk_space"
|
||||
path = "~"
|
||||
format = " $icon $available ($percentage) frei "
|
||||
info_type = "available"
|
||||
alert_unit = "GB"
|
||||
interval = 20
|
||||
warning = 20.0
|
||||
alert = 10.0
|
||||
|
||||
[[block]]
|
||||
block = "memory"
|
||||
format = " $icon $mem_used_percents "
|
||||
|
||||
[[block]]
|
||||
block = "cpu"
|
||||
interval = 1
|
||||
|
||||
[[block]]
|
||||
block = "net"
|
||||
# device = "enp1s0"
|
||||
#format = " $icon $speed_down;K*b $speed_up;K*b"
|
||||
interval = 5
|
||||
|
||||
[[block]]
|
||||
block = "sound"
|
||||
[[block.click]]
|
||||
button = "left"
|
||||
cmd = "pulseaudio-popup"
|
||||
|
||||
[[block]]
|
||||
block = "battery"
|
||||
interval = 10
|
||||
format = " $icon $percentage ($time) "
|
||||
not_charging_format = " $icon $percentage "
|
||||
if_command = "test -e /sys/class/power_supply/BAT1"
|
||||
|
||||
[[block]]
|
||||
block = "time"
|
||||
interval = 1
|
||||
format = " $icon $timestamp.datetime(f:'%a %d.%m %H:%M:%S') "
|
Reference in New Issue
Block a user